@paperbits/common
Version:
Paperbits common components.
77 lines (63 loc) • 2.5 kB
text/typescript
import { StateBagContract } from "./stateBagContract";
import { LocalStyles } from "./localStyles";
import { VariationContract } from "./variationContract";
import { StyleModel } from "./styleModel";
import { Style, StyleSheet, StyleManager, StyleDefinition } from "./";
/**
* A utility for compiling style definitions.
*/
export interface StyleCompiler {
/**
* Returns class name(s) by color style key.
* @param colorKey {string} Unique style identifier.
*/
getClassNameByColorKey(colorKey: string): string;
/**
* Returns CSS class name(s) for style key.
* @param key {string} Unique style identifier.
*/
getClassNameByStyleKeyAsync(key: string): Promise<string>;
/**
* Returns CSS class name(s) for local styles.
* @param contract
*/
getClassNamesForLocalStylesAsync(contract: LocalStyles): Promise<string>;
/**
* Converts style contract into style model.
* @param contract {VariationContract} Style contract.
*/
getStyleModelAsync(contract: LocalStyles, styleManager?: StyleManager): Promise<StyleModel>;
/**
* Converts variation style contract into style.
* @param contract {VariationContract} Variation style contract.
* @param componentName {string} Component name, e.g. "button".
* @param variationName {string} Style variation name, e.g. "primary".
*/
getVariationStyle(contract: VariationContract, componentName: string, variationName?: string): Promise<Style>;
/**
* Returns compiled font styles.
*/
getFontsStylesCss(): Promise<string>;
/**
* Converts states style contract into style.
* @param states {StateBagContract} Bag of state contracts.
* @param stateName {string} Name of the state, e.g. "hover", "active".
*/
getStateStyle(states: StateBagContract, stateName: string): Promise<Style>;
/**
* Returns theme style sheet;
*/
getStyleSheet(topBreakpoint?: string): Promise<StyleSheet>;
/**
* Returns compiled theme style sheet.
*/
compileCss(): Promise<string>;
setStyles(styles: any): void;
getIconFontStylesCss(): Promise<string>;
/**
* Returns icon CSS class name for specified icon key.
* @param iconKey Icon key.
*/
getIconClassName(iconKey: string): string;
backfillLocalStyles(localStyles: LocalStyles, styleDefinition: StyleDefinition): void;
}