mirror of
https://github.com/ant-design/ant-design.git
synced 2026-02-09 02:49:18 +08:00
52 lines
1.6 KiB
TypeScript
52 lines
1.6 KiB
TypeScript
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<SeedToken, MapToken>;
|
|
};
|
|
};
|
|
|
|
export interface DesignTokenProviderProps {
|
|
token: Partial<AliasToken>;
|
|
theme?: Theme<SeedToken, MapToken>;
|
|
components?: ComponentsToken;
|
|
/** Just merge `token` & `override` at top to save perf */
|
|
override: { override: Partial<AliasToken> } & 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 = () => (
|
|
* <ConfigProvider theme={{ zeroRuntime: true }}>
|
|
* <App />
|
|
* </ConfigProvider>
|
|
*);
|
|
* ```
|
|
*/
|
|
zeroRuntime?: boolean;
|
|
}
|
|
|
|
export const DesignTokenContext = React.createContext<DesignTokenProviderProps>(defaultConfig);
|