effcss
Version:
Self-confident CSS-in-JS
90 lines (89 loc) • 2.13 kB
TypeScript
type TOptBool = boolean | undefined;
/**
* Style root
*/
type TStyleRoot = {
adoptedStyleSheets: CSSStyleSheet[];
};
/**
* Style manager
*/
export type TManager = {
/**
* Get stylesheet by key
* @param key - stylesheet key
*/
get(key?: string): CSSStyleSheet | undefined;
/**
* Get all stylesheets dictionary
*/
all(): Record<string, CSSStyleSheet>;
/**
* Add stylesheet
* @param key - stylesheet key
* @param stylesheet - CSSStylesheet
*/
add(key: string, stylesheet: CSSStyleSheet): TOptBool;
/**
* Hydrate stylesheet
* @param key - stylesheet key
*/
hydrate(key: string): string | undefined;
/**
* Remove stylesheet
* @param key - stylesheet key
* @returns `true` if stylesheet is removed
*/
remove(key: string): TOptBool;
/**
* Remove all stylesheets
*/
removeAll(): void;
/**
* Pack styles into CSSStyleSheet and add it into stylesheet dictionary
* @param key - stylesheet key
* @param styles - stylesheet content
*/
pack(key: string, styles: string): TOptBool;
/**
* Is stylesheet on
* @param key - stylesheet key
*/
status(key?: string): boolean;
/**
* Switch stylesheet on
* @param key - stylesheet key
*/
on(...keys: (string | undefined)[]): void;
/**
* Switch stylesheet off
* @param key - stylesheet key
*/
off(...keys: (string | undefined)[]): void;
/**
* Register style root
* @param consumer - style root
*/
register(consumer: TStyleRoot): void;
/**
* Unregister style root
* @param consumer - style root
*/
unregister(consumer: TStyleRoot): void;
};
/**
* Create {@link TManager | style manager}
* @param params - manager params
* @returns TManager
*/
export declare function createManager({ initStyles, emulate }?: {
initStyles?: {
dataset?: {
effcss?: string;
};
disabled: boolean;
textContent: string | null;
}[];
emulate?: boolean;
}): TManager;
export {};