@surveycake/rc
Version:
react component of surveycake
93 lines (92 loc) • 2.65 kB
TypeScript
import { ThemeContext } from '@emotion/core';
import { Interpolation } from 'emotion';
import { theme as defaultTheme } from './theme';
export declare type DefaultTheme = typeof defaultTheme;
export declare type ThemeColor = keyof DefaultTheme['color'];
/**
* @todo type friendly for custom theme.
*/
export declare type Theme = DefaultTheme & {
[key: string]: any;
};
export declare type DynamicStyle<K extends string> = (theme: Theme, deps: any[], classes: Classes<K>) => Interpolation;
export declare type Style<K extends string> = string | DynamicStyle<K>;
export declare type Styles<K extends string> = ReadonlyArray<[K, Style<K>]>;
export declare type Classes<K extends string> = {
[className in K]: string;
};
export { defaultTheme, ThemeContext };
export declare function useTheme(): {
color: {
primary: {
active: string;
default: string;
hover: string;
disabled: string;
background: string;
lightBackground: string;
};
secondary: {
active: string;
default: string;
hover: string;
disabled: string;
background: string;
};
thirdary: {
active: string;
default: string;
hover: string;
disabled: string;
background: string;
};
text: {
white: string;
B6: string;
B5: string;
B4: string;
B3: string;
B2: string;
B: string;
HB: string;
F: string;
};
semantic: {
success: string;
info: string;
warning: string;
error: string;
enterprise: string;
team: string;
pro: string;
};
};
typography: {
fontSize: {
h1: number;
h2: number;
h3: number;
h4: number;
h5: number;
h6: number;
p: number;
span: number;
div: number;
};
fontWeight: {
normal: number;
medium: number;
bold: number;
};
};
zIndex: {
mobileStepper: number;
speedDial: number;
appBar: number;
drawer: number;
modal: number;
snackbar: number;
tooltip: number;
};
};
export declare function makeStyles<K extends string>(styles: Styles<K>): (deps?: any[]) => Classes<K>;