/* eslint-disable */ import type { ConditionalValue, Nested } from './conditions'; import type { PropertiesFallback } from './csstype'; import type { SystemProperties, CssVarProperties } from './style-props'; type String = string & {} type Number = number & {} export type Pretty = { [K in keyof T]: T[K] } & {} export type DistributiveOmit = T extends unknown ? Omit : never export type DistributiveUnion = { [K in keyof T]: K extends keyof U ? U[K] | T[K] : T[K] } & DistributiveOmit export type Assign = { [K in keyof T]: K extends keyof U ? U[K] : T[K] } & U /* ----------------------------------------------------------------------------- * Native css properties * -----------------------------------------------------------------------------*/ export type CssProperty = keyof PropertiesFallback export interface CssProperties extends PropertiesFallback, CssVarProperties {} export interface CssKeyframes { [name: string]: { [time: string]: CssProperties } } /* ----------------------------------------------------------------------------- * Conditional css properties * -----------------------------------------------------------------------------*/ interface GenericProperties { [key: string]: ConditionalValue } /* ----------------------------------------------------------------------------- * Native css props * -----------------------------------------------------------------------------*/ export type NestedCssProperties = Nested export type SystemStyleObject = Nested export interface GlobalStyleObject { [selector: string]: SystemStyleObject } export interface ExtendableGlobalStyleObject { [selector: string]: SystemStyleObject | undefined extend?: GlobalStyleObject | undefined } type FilterStyleObject

= { [K in P]?: K extends keyof SystemStyleObject ? SystemStyleObject[K] : unknown } export type CompositionStyleObject = Nested & CssVarProperties> /* ----------------------------------------------------------------------------- * Jsx style props * -----------------------------------------------------------------------------*/ interface WithCss { css?: SystemStyleObject } type StyleProps = SystemStyleObject & WithCss export type JsxStyleProps = StyleProps & WithCss export interface PatchedHTMLProps { htmlWidth?: string | number htmlHeight?: string | number htmlTranslate?: 'yes' | 'no' | undefined htmlContent?: string } export type OmittedHTMLProps = 'color' | 'translate' | 'transition' | 'width' | 'height' | 'content' type WithHTMLProps = DistributiveOmit & PatchedHTMLProps export type JsxHTMLProps, P extends Record = {}> = Assign< WithHTMLProps, P >