import React from "react"; export type CSSVariable = `--${string}`; export type StyleAttribute = React.CSSProperties | (React.CSSProperties & Record); type DataAttributes = object | Record<`data-${string}`, string | boolean>; export type Attributes = (TagName extends keyof React.JSX.IntrinsicElements ? React.JSX.IntrinsicElements[TagName] : React.HTMLAttributes) & DataAttributes & { style?: StyleAttribute; }; export type Viewport = "s" | "m" | "l" | "xl"; export type ResponsiveOnly = { [key in Viewport]?: T; } & (T extends object ? { [K in Exclude]?: never; } : Record); export type Responsive = T | ResponsiveOnly; /** * Form handlers */ type ChangeHandlerArgs = Value extends boolean ? { name: string; value?: string; checked: Value; event?: Event; } : { name: string; value: Value; event?: Event; }; export type ChangeHandler> = (args: ChangeHandlerArgs) => void; /** * Theming */ export type ColorMode = "light" | "dark"; export type Theme = string | string[]; export {};