@b-design/ui-console-menu
Version:
React component for Alibaba Cloud.
56 lines • 1.84 kB
TypeScript
interface IDefineCssVar {
default?: string;
desc?: string;
}
interface IDefineCssVars {
[name: string]: IDefineCssVar;
}
export declare class CssVar implements IDefineCssVar {
name: string;
default: string | undefined;
desc: string | undefined;
constructor(opts: {
name: string;
default?: string;
desc?: string;
});
get consume(): string;
get consumeStyled(): (props: any) => string;
}
export interface ICssVars {
[name: string]: CssVar;
}
declare type GetCssVars<Definition extends IDefineCssVars> = {
[Name in keyof Definition]: CssVar;
};
declare type IStyleObjecy<CssVars extends ICssVars> = {
[Name in keyof CssVars]: string | undefined;
};
declare type OverWriteCssVars<CssVars extends ICssVars> = {
[Name in keyof CssVars]?: string;
};
declare type GetOverwritten<CssVars extends ICssVars, Overwrite extends OverWriteCssVars<CssVars>> = {
[Name in keyof CssVars]: CssVar;
} & {
[Name in keyof Overwrite]: CssVar;
};
export declare class CssVarTheme<CssVars extends ICssVars> {
private _vars;
private constructor();
static create<Definition extends IDefineCssVars>(definitions: Definition): CssVarTheme<GetCssVars<Definition>>;
overwrite<Overwrite extends OverWriteCssVars<CssVars>>(overwrite: OverWriteCssVars<CssVars> & NoExtraProperties<OverWriteCssVars<CssVars>, Overwrite>): CssVarTheme<GetOverwritten<CssVars, Overwrite>>;
/**
* 主题变量集合
*/
get vars(): CssVars;
/**
* 产生主题变量定义,即name->value映射
*/
values(): IStyleObjecy<CssVars>;
}
declare type Impossible<K extends keyof any> = {
[P in K]: never;
};
declare type NoExtraProperties<T, U extends T = T> = U & Impossible<Exclude<keyof U, keyof T>>;
export {};
//# sourceMappingURL=define-css-var.d.ts.map