@xcritical/theme
Version:
233 lines (161 loc) • 6.64 kB
TypeScript
import * as CSS_2 from 'csstype';
import { FlattenSimpleInterpolation } from 'styled-components';
import { MicroMemoize } from 'micro-memoize';
export declare type AllType = any;
declare type ArrayOfStringsOrNumbers = (number | string)[];
export declare const BDAZZLED_BLUE = "#2F6690";
export declare const BLACK = " #000";
export declare const BLACK_CHAROCOAL = "#31394C";
export declare const BLACK_RAISIN = "#212734";
export declare const BLUE = "#0078FF";
export declare const BRIGHT_RED = "#dc3545";
export declare const BRONZE = "#C67C3B";
export declare const CHAROCOAL = "#31394C";
export declare const colors: {
WHITE: string;
BLUE: string;
TEAL_BLUE: string;
ORANGE: string;
ROSE_MADDER: string;
GREEN: string;
JUNGLE_GREEN: string;
PORTLAND_ORANGE: string;
VERDIGRIS: string;
GOLDENROD: string;
PURPLE: string;
BDAZZLED_BLUE: string;
PINK: string;
RED: string;
BRONZE: string;
TIFFANY: string;
YELLOW: string;
ORCHID: string;
BLACK: string;
BLACK_RAISIN: string;
DEFAULT: string;
BLACK_CHAROCOAL: string;
CHAROCOAL: string;
PAYNES_GRAY: string;
GRAY: string;
GRAY_BLUE: string;
DARK_LIME: string;
BRIGHT_RED: string;
VIVID_YELLOW: string;
STRONG_CYAN: string;
GRAY_LIGHT: string;
PRIMARY: string;
SECONDARY: string;
SUCCESS: string;
DANGER: string;
WARNING: string;
INFO: string;
DARK: string;
LIGHT: string;
};
export declare const compileAppearanceTheme: MicroMemoize.Memoized<(namespace: string, defaultTheme: ITheme, theme: IThemeNamespace, appearanceName: string, baseAppearanceName: string) => ITheme>;
export declare const DANGER = "#dc3545";
export declare const DARK = "#3D465E";
export declare const DARK_LIME = "#28a745";
export declare const DEFAULT = "#212734";
export declare const getAppearancePath: (appearanceName?: string, propertyPath?: OneOrManyString | undefined) => string[];
export declare function getAppearanceTheme<T>(namespace: string, defaultTheme: ITheme | ITheme<T>): IApperanceStateFunc<T>;
export declare const getFontObj: ({ size, weight, lineHeight, lineHeightRatio, }?: IFont) => React.CSSProperties;
export declare const getFontStyle: ({ size, weight, lineHeight, lineHeightRatio, }: IFont) => FlattenSimpleInterpolation;
export declare function getStatesTheme<T>(theme: T, stateName: string, baseState?: string): IFuncStateTheme<T>;
export declare const getThemedState: (namespace: string, defaultTheme: ITheme) => MicroMemoize.Memoized<(theme: IThemeNamespace<any> | undefined, propertyPath: OneOrManyString | undefined) => ITheme>;
export declare const GOLDENROD = "#D5A021";
export declare const GRAY = "#F0F0F0";
export declare const GRAY_BLUE = "#5a6268";
export declare const GRAY_LIGHT = "#f8f9fa";
export declare const GREEN = "#2DD070";
export declare interface IAppearance<T> {
[namespace: string]: IThemeBase<T>;
}
export declare interface IApperanceStateFunc<T> {
(theme: IThemeNamespace, appearanceName: string, propertyPath?: string | string[], baseAppearanceName?: string): ITheme | ITheme<T>;
}
export declare interface IBorder {
width?: number;
style?: string;
color?: string;
}
export declare interface IBorderRadius {
topLeft?: number;
topRight?: number;
bottomRight?: number;
bottomLeft?: number;
}
export declare interface ICSSProperties extends CSS_2.Properties<string | number | any> {
[key: string]: string | number | any | undefined;
}
export declare type ICSSWideKeyword = 'initial' | 'inherit' | 'unset';
export declare type IFilteredPath = string[];
export declare interface IFont {
size?: number | string;
weight?: ICSSWideKeyword | 'normal' | 'bold' | 'bolder' | 'lighter' | 100 | 200 | 300 | 400 | 500 | 600 | 700 | 800 | 900;
lineHeight?: string;
lineHeightRatio?: number;
}
declare interface IFuncStateTheme<T = ITheme> {
(propertyPath?: string, defaultValue?: any): T;
}
export declare interface IHtmlActionStates<T> {
hover?: T;
active?: T;
disabled?: T;
selected?: T;
focus?: T;
invalid?: T;
}
export declare interface IIndentation {
top?: number;
right?: number;
bottom?: number;
left?: number;
}
export declare interface IIsRTL {
isRTL?: boolean;
}
export declare const INFO = "#17a2b8";
export declare interface IReturnThemeFunction<T, TProp = [], TValue = any> {
(theme: IThemeNamespace<ITheme<T>>, appearance: string, baseAppearance: string, ...props: TProp[]): TValue;
}
export declare type ITheme<T = ICSSProperties | any> = Pick<IThemeBase<T>, Exclude<keyof IThemeBase<T>, 'appearance'>> & {
appearance?: IAppearance<T>;
};
export declare type IThemeBase<T> = T & IHtmlActionStates<T>;
export declare interface IThemeNamespace<T = ICSSProperties | any> {
[namespace: string]: ITheme<T> | IThemeBase<T>;
}
export declare interface ITransition {
property?: string;
duration?: OneOrManyString;
timingFunction?: string;
delay?: OneOrManyString;
}
export declare const JUNGLE_GREEN = "#1B998B";
export declare const LIGHT = "#f8f9fa";
export declare const mergeBaseTheme: MicroMemoize.Memoized<(namespace: string, defaultTheme: ITheme, theme: IThemeNamespace) => ITheme>;
export declare type OneOrManyString = string | string[];
export declare const ORANGE = "#FF8F00";
export declare const ORCHID = "#B959FF";
export declare const PAYNES_GRAY = "#3D465E";
export declare const PINK = "#FF004F";
export declare const PORTLAND_ORANGE = "#F46036";
export declare const PRIMARY = "#0078FF";
export declare const PURPLE = "#5A51DE";
export declare const RED = "#E3111A";
export declare const ROSE_MADDER = "#E71D36";
export declare const rtlSide: (isRTL: boolean, property: string) => string;
export declare const rtlSwapper: (isRTL: boolean, left: number | string, right: number | string) => ArrayOfStringsOrNumbers;
export declare const SECONDARY = "#5a6268";
export declare const STRONG_CYAN = "#17a2b8";
export declare const SUCCESS = "#28a745";
export declare const TEAL_BLUE = "#00CAFF";
export declare const TIFFANY = "#1ACEB3";
export declare const VERDIGRIS = "#5ABCB9";
export declare const VIVID_YELLOW = "#ffc107";
export declare const WARNING = "#ffc107";
export declare const WHITE = "#FFFFFF";
export declare const YELLOW = "#FFC800";
export { }