UNPKG

@chakra-ui/react

Version:

Responsive and accessible React UI components built with React and Emotion

48 lines (47 loc) 1.87 kB
import type { PropertiesFallback } from "csstype"; import type { Conditions } from "./generated/conditions.gen"; import type { CssVarProperties, SystemProperties } from "./generated/system.gen"; import type { AnySelector, Selectors } from "./selectors"; type String = string & {}; type Number = number & {}; export type CssProperty = keyof PropertiesFallback; export interface CssProperties extends PropertiesFallback<String | Number>, CssVarProperties { initialLetterAlign?: String; } export interface CssKeyframes { [name: string]: { [time: string]: CssProperties; }; } export type KeyframeIdentityFn = (keyframes: CssKeyframes) => CssKeyframes; export type Condition = keyof Conditions; export type ConditionalValue<V> = V | Array<V | null> | { [K in keyof Conditions]?: ConditionalValue<V>; }; export type Nested<P> = P & { [K in Selectors]?: Nested<P>; } & { [K in AnySelector]?: Nested<P>; } & { [K in keyof Conditions]?: Nested<P>; }; export type MinimalNested<P> = { [K in keyof Conditions]?: Nested<P>; }; export type NestedCssProperties = Nested<CssProperties>; export type SystemStyleObject = Nested<SystemProperties & CssVarProperties>; export type SystemStyleIdentityFn = (style: SystemStyleObject) => SystemStyleObject; export interface GlobalStyleObject { [selector: string]: SystemStyleObject; } export type GlobalStyleIdentityFn = (global: GlobalStyleObject) => GlobalStyleObject; type FilterStyleObject<P extends string> = { [K in P]?: K extends keyof SystemStyleObject ? SystemStyleObject[K] : unknown; }; export type CompositionStyleObject<Property extends string> = Nested<FilterStyleObject<Property> & CssVarProperties>; interface WithCss { css?: SystemStyleObject; } type StyleProps = SystemProperties & MinimalNested<SystemStyleObject>; export type JsxStyleProps = StyleProps & WithCss; export {};