UNPKG

material-ui-cordova

Version:

React components that implement Google's Material Design.

39 lines (31 loc) 1.26 kB
import * as React from 'react'; import { Theme } from './createMuiTheme'; /** * This is basically the API of JSS. It defines a Map<string, CSS>, * where * * - the `keys` are the class (names) that will be created * - the `values` are objects that represent CSS rules (`React.CSSProperties`). */ export type StyleRules<ClassKey extends string = string> = Record<ClassKey, React.CSSProperties>; export type StyleRulesCallback<ClassKey extends string = string> = (theme: Theme) => StyleRules<ClassKey>; export interface WithStylesOptions { flip?: boolean; withTheme?: boolean; name?: string; } export type ClassNameMap<ClassKey extends string = string> = Record<ClassKey, string>; export interface WithStyles<ClassKey extends string = string> { classes: ClassNameMap<ClassKey> theme?: Theme } export interface StyledComponentProps<ClassKey extends string = string> { classes?: Partial<ClassNameMap<ClassKey>>; innerRef?: React.Ref<any>; } export default function withStyles<ClassKey extends string>( style: StyleRules<ClassKey> | StyleRulesCallback<ClassKey>, options?: WithStylesOptions ): <P>( component: React.ComponentType<P & WithStyles<ClassKey>> ) => React.ComponentType<P & StyledComponentProps<ClassKey>>;