import React from 'react'; import type { Theme } from '@ant-design/cssinjs'; import type { AliasToken, MapToken, OverrideToken, SeedToken } from './interface'; import defaultSeedToken from './themes/seed'; export { default as defaultTheme } from './themes/default/theme'; // ================================ Context ================================= // To ensure snapshot stable. We disable hashed in test env. export const defaultConfig = { token: defaultSeedToken, override: { override: defaultSeedToken }, hashed: true, }; export type ComponentsToken = { [key in keyof OverrideToken]?: OverrideToken[key] & { theme?: Theme; }; }; export interface DesignTokenProviderProps { token: Partial; theme?: Theme; components?: ComponentsToken; /** Just merge `token` & `override` at top to save perf */ override: { override: Partial } & ComponentsToken; hashed?: string | boolean; cssVar?: { prefix?: string; key?: string }; /** * @descCN 开启零运行时模式,不会在运行时产生样式,需要手动引入 CSS 文件。 * @descEN Enable zero-runtime mode, which will not generate style at runtime, need to import additional CSS file. * @default true * @since 6.0.0 * @example * ```tsx * import { ConfigProvider } from 'antd'; * import 'antd/dist/antd.css'; * * const Demo = () => ( * * * *); * ``` */ zeroRuntime?: boolean; } export const DesignTokenContext = React.createContext(defaultConfig);