UNPKG

@omnia/fx

Version:

Provide Omnia Fx typings and tooling for clientside Omnia development.

38 lines (37 loc) 2.06 kB
import { types } from "typestyle"; import { NestedCSSPropertiesExtends } from "@omnia/fx/models"; type CSSClassNames<T extends string> = { [P in T]?: string | any; }; type CSSClasses<K extends keyof any> = CustomRecord<K, types.NestedCSSProperties>; type CSSClassesExtends<K extends string> = CustomRecord<K, NestedCSSPropertiesExtends>; type CustomRecord<K extends keyof any, T> = { [P in K]?: T | ((...args: any[]) => T); }; export declare module StyleFlow { export function define<TCSSClasses extends CSSClasses<any> = any>(targetCSSClasses: TCSSClasses, classes?: TCSSClasses, prefixClassName?: string): TCSSClasses; export function override<T extends CSSClassesExtends<string>>(target: T): InternalStyleFlow.StyleOverride<T>; export function use<Names extends string = any>(targetCSSClasses: CSSClassesExtends<Names>, ...mergeCSSClasses: Array<CSSClassesExtends<Names>>): CSSClassNames<Names>; /** * Takes CSSProperties and registers it to a global selector (body, html, etc.) */ export function stylesheet(selector: string, ...objects: types.NestedCSSProperties[]): void; module InternalStyleFlow { function define<Names extends string = any, TCSSClasses extends CSSClasses<Names> = any>(target: TCSSClasses, classes?: TCSSClasses, prefixClassName?: string): TCSSClasses; function override<T>(target: T): StyleOverride<T>; function use<Names extends string = any>(target: CSSClassesExtends<Names>, ...mergeCSSClasses: Array<CSSClassesExtends<Names>>): CSSClassNames<Names>; function stylesheet(selector: string, ...objects: types.NestedCSSProperties[]): void; class StyleOverride<T> { private target; constructor(target: T); define<K extends keyof T>(classes: T, /** * This influence the order of the nodes, be nice, use ordering with gap -100, 0, 100, 200 So other extensions etc can inject between */ weight?: number): void; } } export {}; } export {};