UNPKG

@chakra-ui/react

Version:

Responsive and accessible React UI components built with React and Emotion

1,381 lines (1,092 loc) • 37.4 kB
import type { RecipeDefinition, SlotRecipeDefinition, SystemRecipeFn, SystemSlotRecipeFn } from "../recipe.types" import type { ConditionalValue } from "../css.types" export interface BadgeVariant { /** @default "subtle" */ variant?: "solid" | "subtle" | "outline" | "surface" | "plain" /** @default "sm" */ size?: "xs" | "sm" | "md" | "lg" } export type BadgeVariantProps = { [K in keyof BadgeVariant]?: ConditionalValue<BadgeVariant[K]> | undefined } export type BadgeVariantMap = { [K in keyof BadgeVariant]: Array<BadgeVariant[K]> } export interface ButtonVariant { /** @default "md" */ size?: "2xs" | "xs" | "sm" | "md" | "lg" | "xl" | "2xl" /** @default "solid" */ variant?: "solid" | "subtle" | "surface" | "outline" | "ghost" | "plain" } export type ButtonVariantProps = { [K in keyof ButtonVariant]?: ConditionalValue<ButtonVariant[K]> | undefined } export type ButtonVariantMap = { [K in keyof ButtonVariant]: Array<ButtonVariant[K]> } export interface CodeVariant { /** @default "subtle" */ variant?: "solid" | "subtle" | "outline" | "surface" | "plain" /** @default "sm" */ size?: "xs" | "sm" | "md" | "lg" } export type CodeVariantProps = { [K in keyof CodeVariant]?: ConditionalValue<CodeVariant[K]> | undefined } export type CodeVariantMap = { [K in keyof CodeVariant]: Array<CodeVariant[K]> } export interface ContainerVariant { centerContent?: boolean fluid?: boolean } export type ContainerVariantProps = { [K in keyof ContainerVariant]?: ConditionalValue<ContainerVariant[K]> | undefined } export type ContainerVariantMap = { [K in keyof ContainerVariant]: Array<ContainerVariant[K]> } export interface HeadingVariant { /** @default "xl" */ size?: "xs" | "sm" | "md" | "lg" | "xl" | "2xl" | "3xl" | "4xl" | "5xl" | "6xl" | "7xl" } export type HeadingVariantProps = { [K in keyof HeadingVariant]?: ConditionalValue<HeadingVariant[K]> | undefined } export type HeadingVariantMap = { [K in keyof HeadingVariant]: Array<HeadingVariant[K]> } export interface InputVariant { /** @default "md" */ size?: "2xs" | "xs" | "sm" | "md" | "lg" | "xl" | "2xl" /** @default "outline" */ variant?: "outline" | "subtle" | "flushed" } export type InputVariantProps = { [K in keyof InputVariant]?: ConditionalValue<InputVariant[K]> | undefined } export type InputVariantMap = { [K in keyof InputVariant]: Array<InputVariant[K]> } export interface InputAddonVariant { /** @default "md" */ size?: "2xs" | "xs" | "sm" | "md" | "lg" | "xl" | "2xl" /** @default "outline" */ variant?: "outline" | "subtle" | "flushed" } export type InputAddonVariantProps = { [K in keyof InputAddonVariant]?: ConditionalValue<InputAddonVariant[K]> | undefined } export type InputAddonVariantMap = { [K in keyof InputAddonVariant]: Array<InputAddonVariant[K]> } export interface KbdVariant { /** @default "raised" */ variant?: "raised" | "outline" | "subtle" | "plain" /** @default "md" */ size?: "sm" | "md" | "lg" } export type KbdVariantProps = { [K in keyof KbdVariant]?: ConditionalValue<KbdVariant[K]> | undefined } export type KbdVariantMap = { [K in keyof KbdVariant]: Array<KbdVariant[K]> } export interface LinkVariant { /** @default "plain" */ variant?: "underline" | "plain" } export type LinkVariantProps = { [K in keyof LinkVariant]?: ConditionalValue<LinkVariant[K]> | undefined } export type LinkVariantMap = { [K in keyof LinkVariant]: Array<LinkVariant[K]> } export interface MarkVariant { variant?: "subtle" | "solid" | "text" | "plain" } export type MarkVariantProps = { [K in keyof MarkVariant]?: ConditionalValue<MarkVariant[K]> | undefined } export type MarkVariantMap = { [K in keyof MarkVariant]: Array<MarkVariant[K]> } export interface SeparatorVariant { /** @default "solid" */ variant?: "solid" | "dashed" | "dotted" /** @default "horizontal" */ orientation?: "vertical" | "horizontal" /** @default "sm" */ size?: "xs" | "sm" | "md" | "lg" } export type SeparatorVariantProps = { [K in keyof SeparatorVariant]?: ConditionalValue<SeparatorVariant[K]> | undefined } export type SeparatorVariantMap = { [K in keyof SeparatorVariant]: Array<SeparatorVariant[K]> } export interface SkeletonVariant { /** @default true */ loading?: boolean /** @default "pulse" */ variant?: "pulse" | "shine" | "none" } export type SkeletonVariantProps = { [K in keyof SkeletonVariant]?: ConditionalValue<SkeletonVariant[K]> | undefined } export type SkeletonVariantMap = { [K in keyof SkeletonVariant]: Array<SkeletonVariant[K]> } export interface SkipNavLinkVariant {} export type SkipNavLinkVariantProps = { [K in keyof SkipNavLinkVariant]?: ConditionalValue<SkipNavLinkVariant[K]> | undefined } export type SkipNavLinkVariantMap = { [K in keyof SkipNavLinkVariant]: Array<SkipNavLinkVariant[K]> } export interface SpinnerVariant { /** @default "md" */ size?: "inherit" | "xs" | "sm" | "md" | "lg" | "xl" } export type SpinnerVariantProps = { [K in keyof SpinnerVariant]?: ConditionalValue<SpinnerVariant[K]> | undefined } export type SpinnerVariantMap = { [K in keyof SpinnerVariant]: Array<SpinnerVariant[K]> } export interface TextareaVariant { /** @default "md" */ size?: "xs" | "sm" | "md" | "lg" | "xl" /** @default "outline" */ variant?: "outline" | "subtle" | "flushed" } export type TextareaVariantProps = { [K in keyof TextareaVariant]?: ConditionalValue<TextareaVariant[K]> | undefined } export type TextareaVariantMap = { [K in keyof TextareaVariant]: Array<TextareaVariant[K]> } export interface IconVariant { /** @default "inherit" */ size?: "inherit" | "xs" | "sm" | "md" | "lg" | "xl" | "2xl" } export type IconVariantProps = { [K in keyof IconVariant]?: ConditionalValue<IconVariant[K]> | undefined } export type IconVariantMap = { [K in keyof IconVariant]: Array<IconVariant[K]> } export interface CheckmarkVariant { /** @default "md" */ size?: "xs" | "sm" | "md" | "lg" /** @default "solid" */ variant?: "solid" | "outline" | "subtle" | "plain" | "inverted" } export type CheckmarkVariantProps = { [K in keyof CheckmarkVariant]?: ConditionalValue<CheckmarkVariant[K]> | undefined } export type CheckmarkVariantMap = { [K in keyof CheckmarkVariant]: Array<CheckmarkVariant[K]> } export interface RadiomarkVariant { /** @default "solid" */ variant?: "solid" | "subtle" | "outline" | "inverted" /** @default "md" */ size?: "xs" | "sm" | "md" | "lg" } export type RadiomarkVariantProps = { [K in keyof RadiomarkVariant]?: ConditionalValue<RadiomarkVariant[K]> | undefined } export type RadiomarkVariantMap = { [K in keyof RadiomarkVariant]: Array<RadiomarkVariant[K]> } export interface ColorSwatchVariant { /** @default "md" */ size?: "2xs" | "xs" | "sm" | "md" | "lg" | "xl" | "2xl" | "inherit" | "full" /** @default "rounded" */ shape?: "square" | "circle" | "rounded" } export type ColorSwatchVariantProps = { [K in keyof ColorSwatchVariant]?: ConditionalValue<ColorSwatchVariant[K]> | undefined } export type ColorSwatchVariantMap = { [K in keyof ColorSwatchVariant]: Array<ColorSwatchVariant[K]> } export interface ConfigRecipes { badge: SystemRecipeFn<BadgeVariantProps, BadgeVariantMap> button: SystemRecipeFn<ButtonVariantProps, ButtonVariantMap> code: SystemRecipeFn<CodeVariantProps, CodeVariantMap> container: SystemRecipeFn<ContainerVariantProps, ContainerVariantMap> heading: SystemRecipeFn<HeadingVariantProps, HeadingVariantMap> input: SystemRecipeFn<InputVariantProps, InputVariantMap> inputAddon: SystemRecipeFn<InputAddonVariantProps, InputAddonVariantMap> kbd: SystemRecipeFn<KbdVariantProps, KbdVariantMap> link: SystemRecipeFn<LinkVariantProps, LinkVariantMap> mark: SystemRecipeFn<MarkVariantProps, MarkVariantMap> separator: SystemRecipeFn<SeparatorVariantProps, SeparatorVariantMap> skeleton: SystemRecipeFn<SkeletonVariantProps, SkeletonVariantMap> skipNavLink: SystemRecipeFn<SkipNavLinkVariantProps, SkipNavLinkVariantMap> spinner: SystemRecipeFn<SpinnerVariantProps, SpinnerVariantMap> textarea: SystemRecipeFn<TextareaVariantProps, TextareaVariantMap> icon: SystemRecipeFn<IconVariantProps, IconVariantMap> checkmark: SystemRecipeFn<CheckmarkVariantProps, CheckmarkVariantMap> radiomark: SystemRecipeFn<RadiomarkVariantProps, RadiomarkVariantMap> colorSwatch: SystemRecipeFn<ColorSwatchVariantProps, ColorSwatchVariantMap> } // Accordion export type AccordionSlot = "root" | "item" | "itemTrigger" | "itemContent" | "itemIndicator" | "itemBody" export interface AccordionVariant { /** @default "outline" */ variant?: "outline" | "subtle" | "enclosed" | "plain" /** @default "md" */ size?: "sm" | "md" | "lg" } export type AccordionVariantProps = { [K in keyof AccordionVariant]?: ConditionalValue<AccordionVariant[K]> | undefined } export type AccordionVariantMap = { [K in keyof AccordionVariant]: Array<AccordionVariant[K]> } // ActionBar export type ActionBarSlot = "positioner" | "content" | "separator" | "selectionTrigger" | "closeTrigger" export interface ActionBarVariant {} export type ActionBarVariantProps = { [K in keyof ActionBarVariant]?: ConditionalValue<ActionBarVariant[K]> | undefined } export type ActionBarVariantMap = { [K in keyof ActionBarVariant]: Array<ActionBarVariant[K]> } // Alert export type AlertSlot = "title" | "description" | "root" | "indicator" | "content" export interface AlertVariant { /** @default "info" */ status?: "info" | "warning" | "success" | "error" | "neutral" inline?: boolean /** @default "subtle" */ variant?: "subtle" | "surface" | "outline" | "solid" /** @default "md" */ size?: "sm" | "md" | "lg" } export type AlertVariantProps = { [K in keyof AlertVariant]?: ConditionalValue<AlertVariant[K]> | undefined } export type AlertVariantMap = { [K in keyof AlertVariant]: Array<AlertVariant[K]> } // Avatar export type AvatarSlot = "root" | "image" | "fallback" export interface AvatarVariant { /** @default "md" */ size?: "full" | "2xs" | "xs" | "sm" | "md" | "lg" | "xl" | "2xl" /** @default "subtle" */ variant?: "solid" | "subtle" | "outline" /** @default "full" */ shape?: "square" | "rounded" | "full" borderless?: boolean } export type AvatarVariantProps = { [K in keyof AvatarVariant]?: ConditionalValue<AvatarVariant[K]> | undefined } export type AvatarVariantMap = { [K in keyof AvatarVariant]: Array<AvatarVariant[K]> } // Blockquote export type BlockquoteSlot = "root" | "icon" | "content" | "caption" export interface BlockquoteVariant { /** @default "start" */ justify?: "start" | "center" | "end" /** @default "subtle" */ variant?: "subtle" | "solid" | "plain" } export type BlockquoteVariantProps = { [K in keyof BlockquoteVariant]?: ConditionalValue<BlockquoteVariant[K]> | undefined } export type BlockquoteVariantMap = { [K in keyof BlockquoteVariant]: Array<BlockquoteVariant[K]> } // Breadcrumb export type BreadcrumbSlot = "link" | "currentLink" | "item" | "list" | "root" | "ellipsis" | "separator" export interface BreadcrumbVariant { /** @default "plain" */ variant?: "underline" | "plain" /** @default "md" */ size?: "sm" | "md" | "lg" } export type BreadcrumbVariantProps = { [K in keyof BreadcrumbVariant]?: ConditionalValue<BreadcrumbVariant[K]> | undefined } export type BreadcrumbVariantMap = { [K in keyof BreadcrumbVariant]: Array<BreadcrumbVariant[K]> } // Card export type CardSlot = "root" | "header" | "body" | "footer" | "title" | "description" export interface CardVariant { /** @default "md" */ size?: "sm" | "md" | "lg" /** @default "outline" */ variant?: "elevated" | "outline" | "subtle" } export type CardVariantProps = { [K in keyof CardVariant]?: ConditionalValue<CardVariant[K]> | undefined } export type CardVariantMap = { [K in keyof CardVariant]: Array<CardVariant[K]> } // Checkbox export type CheckboxSlot = "root" | "label" | "control" | "indicator" | "group" export interface CheckboxVariant { /** @default "md" */ size?: "xs" | "sm" | "md" | "lg" /** @default "solid" */ variant?: "outline" | "solid" | "subtle" } export type CheckboxVariantProps = { [K in keyof CheckboxVariant]?: ConditionalValue<CheckboxVariant[K]> | undefined } export type CheckboxVariantMap = { [K in keyof CheckboxVariant]: Array<CheckboxVariant[K]> } // CheckboxCard export type CheckboxCardSlot = "root" | "control" | "label" | "description" | "addon" | "indicator" | "content" export interface CheckboxCardVariant { /** @default "md" */ size?: "sm" | "md" | "lg" /** @default "outline" */ variant?: "surface" | "subtle" | "outline" | "solid" justify?: "start" | "end" | "center" /** @default "start" */ align?: "start" | "end" | "center" /** @default "horizontal" */ orientation?: "vertical" | "horizontal" } export type CheckboxCardVariantProps = { [K in keyof CheckboxCardVariant]?: ConditionalValue<CheckboxCardVariant[K]> | undefined } export type CheckboxCardVariantMap = { [K in keyof CheckboxCardVariant]: Array<CheckboxCardVariant[K]> } // Collapsible export type CollapsibleSlot = "root" | "trigger" | "content" | "indicator" export interface CollapsibleVariant {} export type CollapsibleVariantProps = { [K in keyof CollapsibleVariant]?: ConditionalValue<CollapsibleVariant[K]> | undefined } export type CollapsibleVariantMap = { [K in keyof CollapsibleVariant]: Array<CollapsibleVariant[K]> } // DataList export type DataListSlot = "root" | "item" | "itemLabel" | "itemValue" export interface DataListVariant { /** @default "vertical" */ orientation?: "horizontal" | "vertical" /** @default "md" */ size?: "sm" | "md" | "lg" /** @default "subtle" */ variant?: "subtle" | "bold" } export type DataListVariantProps = { [K in keyof DataListVariant]?: ConditionalValue<DataListVariant[K]> | undefined } export type DataListVariantMap = { [K in keyof DataListVariant]: Array<DataListVariant[K]> } // Dialog export type DialogSlot = | "trigger" | "backdrop" | "positioner" | "content" | "title" | "description" | "closeTrigger" | "header" | "body" | "footer" | "backdrop" export interface DialogVariant { /** @default "top" */ placement?: "center" | "top" | "bottom" /** @default "outside" */ scrollBehavior?: "inside" | "outside" /** @default "md" */ size?: "xs" | "sm" | "md" | "lg" | "xl" | "cover" | "full" /** @default "scale" */ motionPreset?: "scale" | "slide-in-bottom" | "slide-in-top" | "slide-in-left" | "slide-in-right" | "none" } export type DialogVariantProps = { [K in keyof DialogVariant]?: ConditionalValue<DialogVariant[K]> | undefined } export type DialogVariantMap = { [K in keyof DialogVariant]: Array<DialogVariant[K]> } // Drawer export type DrawerSlot = | "trigger" | "backdrop" | "positioner" | "content" | "title" | "description" | "closeTrigger" | "header" | "body" | "footer" | "backdrop" export interface DrawerVariant { /** @default "xs" */ size?: "xs" | "sm" | "md" | "lg" | "xl" | "full" /** @default "end" */ placement?: "start" | "end" | "top" | "bottom" contained?: boolean } export type DrawerVariantProps = { [K in keyof DrawerVariant]?: ConditionalValue<DrawerVariant[K]> | undefined } export type DrawerVariantMap = { [K in keyof DrawerVariant]: Array<DrawerVariant[K]> } // Editable export type EditableSlot = "root" | "area" | "label" | "preview" | "input" | "editTrigger" | "submitTrigger" | "cancelTrigger" | "control" | "textarea" export interface EditableVariant { /** @default "md" */ size?: "sm" | "md" | "lg" } export type EditableVariantProps = { [K in keyof EditableVariant]?: ConditionalValue<EditableVariant[K]> | undefined } export type EditableVariantMap = { [K in keyof EditableVariant]: Array<EditableVariant[K]> } // EmptyState export type EmptyStateSlot = "root" | "content" | "indicator" | "title" | "description" export interface EmptyStateVariant { /** @default "md" */ size?: "sm" | "md" | "lg" } export type EmptyStateVariantProps = { [K in keyof EmptyStateVariant]?: ConditionalValue<EmptyStateVariant[K]> | undefined } export type EmptyStateVariantMap = { [K in keyof EmptyStateVariant]: Array<EmptyStateVariant[K]> } // Field export type FieldSlot = "root" | "errorText" | "helperText" | "input" | "label" | "select" | "textarea" | "requiredIndicator" | "requiredIndicator" export interface FieldVariant { /** @default "vertical" */ orientation?: "vertical" | "horizontal" } export type FieldVariantProps = { [K in keyof FieldVariant]?: ConditionalValue<FieldVariant[K]> | undefined } export type FieldVariantMap = { [K in keyof FieldVariant]: Array<FieldVariant[K]> } // Fieldset export type FieldsetSlot = "root" | "errorText" | "helperText" | "legend" | "content" export interface FieldsetVariant { /** @default "md" */ size?: "sm" | "md" | "lg" } export type FieldsetVariantProps = { [K in keyof FieldsetVariant]?: ConditionalValue<FieldsetVariant[K]> | undefined } export type FieldsetVariantMap = { [K in keyof FieldsetVariant]: Array<FieldsetVariant[K]> } // FileUpload export type FileUploadSlot = | "root" | "dropzone" | "item" | "itemDeleteTrigger" | "itemGroup" | "itemName" | "itemPreview" | "itemPreviewImage" | "itemSizeText" | "label" | "trigger" | "clearTrigger" | "itemContent" | "dropzoneContent" | "fileText" export interface FileUploadVariant {} export type FileUploadVariantProps = { [K in keyof FileUploadVariant]?: ConditionalValue<FileUploadVariant[K]> | undefined } export type FileUploadVariantMap = { [K in keyof FileUploadVariant]: Array<FileUploadVariant[K]> } // HoverCard export type HoverCardSlot = "arrow" | "arrowTip" | "trigger" | "positioner" | "content" export interface HoverCardVariant { /** @default "md" */ size?: "xs" | "sm" | "md" | "lg" } export type HoverCardVariantProps = { [K in keyof HoverCardVariant]?: ConditionalValue<HoverCardVariant[K]> | undefined } export type HoverCardVariantMap = { [K in keyof HoverCardVariant]: Array<HoverCardVariant[K]> } // List export type ListSlot = "root" | "item" | "indicator" export interface ListVariant { /** @default "marker" */ variant?: "marker" | "plain" align?: "center" | "start" | "end" } export type ListVariantProps = { [K in keyof ListVariant]?: ConditionalValue<ListVariant[K]> | undefined } export type ListVariantMap = { [K in keyof ListVariant]: Array<ListVariant[K]> } // Menu export type MenuSlot = | "arrow" | "arrowTip" | "content" | "contextTrigger" | "indicator" | "item" | "itemGroup" | "itemGroupLabel" | "itemIndicator" | "itemText" | "positioner" | "separator" | "trigger" | "triggerItem" | "itemCommand" export interface MenuVariant { /** @default "subtle" */ variant?: "subtle" | "solid" /** @default "md" */ size?: "sm" | "md" } export type MenuVariantProps = { [K in keyof MenuVariant]?: ConditionalValue<MenuVariant[K]> | undefined } export type MenuVariantMap = { [K in keyof MenuVariant]: Array<MenuVariant[K]> } // NativeSelect export type NativeSelectSlot = "root" | "field" | "indicator" export interface NativeSelectVariant { /** @default "outline" */ variant?: "outline" | "subtle" | "plain" /** @default "md" */ size?: "xs" | "sm" | "md" | "lg" | "xl" } export type NativeSelectVariantProps = { [K in keyof NativeSelectVariant]?: ConditionalValue<NativeSelectVariant[K]> | undefined } export type NativeSelectVariantMap = { [K in keyof NativeSelectVariant]: Array<NativeSelectVariant[K]> } // NumberInput export type NumberInputSlot = "root" | "label" | "input" | "control" | "valueText" | "incrementTrigger" | "decrementTrigger" | "scrubber" export interface NumberInputVariant { /** @default "md" */ size?: "xs" | "sm" | "md" | "lg" /** @default "outline" */ variant?: "outline" | "subtle" | "flushed" } export type NumberInputVariantProps = { [K in keyof NumberInputVariant]?: ConditionalValue<NumberInputVariant[K]> | undefined } export type NumberInputVariantMap = { [K in keyof NumberInputVariant]: Array<NumberInputVariant[K]> } // PinInput export type PinInputSlot = "root" | "label" | "input" | "control" export interface PinInputVariant { /** @default "md" */ size?: "2xs" | "xs" | "sm" | "md" | "lg" | "xl" | "2xl" /** @default "outline" */ variant?: "outline" | "subtle" | "flushed" attached?: boolean } export type PinInputVariantProps = { [K in keyof PinInputVariant]?: ConditionalValue<PinInputVariant[K]> | undefined } export type PinInputVariantMap = { [K in keyof PinInputVariant]: Array<PinInputVariant[K]> } // Popover export type PopoverSlot = | "arrow" | "arrowTip" | "anchor" | "trigger" | "indicator" | "positioner" | "content" | "title" | "description" | "closeTrigger" | "header" | "body" | "footer" export interface PopoverVariant { /** @default "md" */ size?: "xs" | "sm" | "md" | "lg" } export type PopoverVariantProps = { [K in keyof PopoverVariant]?: ConditionalValue<PopoverVariant[K]> | undefined } export type PopoverVariantMap = { [K in keyof PopoverVariant]: Array<PopoverVariant[K]> } // Progress export type ProgressSlot = "root" | "label" | "track" | "range" | "valueText" | "view" | "circle" | "circleTrack" | "circleRange" export interface ProgressVariant { /** @default "outline" */ variant?: "outline" | "subtle" /** @default "rounded" */ shape?: "square" | "rounded" | "full" striped?: boolean animated?: boolean /** @default "md" */ size?: "xs" | "sm" | "md" | "lg" | "xl" } export type ProgressVariantProps = { [K in keyof ProgressVariant]?: ConditionalValue<ProgressVariant[K]> | undefined } export type ProgressVariantMap = { [K in keyof ProgressVariant]: Array<ProgressVariant[K]> } // ProgressCircle export type ProgressCircleSlot = "root" | "label" | "track" | "range" | "valueText" | "view" | "circle" | "circleTrack" | "circleRange" export interface ProgressCircleVariant { /** @default "md" */ size?: "xs" | "sm" | "md" | "lg" | "xl" } export type ProgressCircleVariantProps = { [K in keyof ProgressCircleVariant]?: ConditionalValue<ProgressCircleVariant[K]> | undefined } export type ProgressCircleVariantMap = { [K in keyof ProgressCircleVariant]: Array<ProgressCircleVariant[K]> } // RadioCard export type RadioCardSlot = | "root" | "label" | "item" | "itemText" | "itemControl" | "indicator" | "itemAddon" | "itemIndicator" | "itemContent" | "itemDescription" export interface RadioCardVariant { /** @default "md" */ size?: "sm" | "md" | "lg" /** @default "outline" */ variant?: "surface" | "subtle" | "outline" | "solid" justify?: "start" | "end" | "center" /** @default "start" */ align?: "start" | "end" | "center" /** @default "horizontal" */ orientation?: "vertical" | "horizontal" } export type RadioCardVariantProps = { [K in keyof RadioCardVariant]?: ConditionalValue<RadioCardVariant[K]> | undefined } export type RadioCardVariantMap = { [K in keyof RadioCardVariant]: Array<RadioCardVariant[K]> } // RadioGroup export type RadioGroupSlot = "root" | "label" | "item" | "itemText" | "itemControl" | "indicator" | "itemAddon" | "itemIndicator" export interface RadioGroupVariant { /** @default "solid" */ variant?: "outline" | "subtle" | "solid" /** @default "md" */ size?: "xs" | "sm" | "md" | "lg" } export type RadioGroupVariantProps = { [K in keyof RadioGroupVariant]?: ConditionalValue<RadioGroupVariant[K]> | undefined } export type RadioGroupVariantMap = { [K in keyof RadioGroupVariant]: Array<RadioGroupVariant[K]> } // RatingGroup export type RatingGroupSlot = "root" | "label" | "item" | "control" | "itemIndicator" export interface RatingGroupVariant { /** @default "md" */ size?: "xs" | "sm" | "md" | "lg" } export type RatingGroupVariantProps = { [K in keyof RatingGroupVariant]?: ConditionalValue<RatingGroupVariant[K]> | undefined } export type RatingGroupVariantMap = { [K in keyof RatingGroupVariant]: Array<RatingGroupVariant[K]> } // SegmentGroup export type SegmentGroupSlot = "root" | "label" | "item" | "itemText" | "itemControl" | "indicator" export interface SegmentGroupVariant { /** @default "md" */ size?: "xs" | "sm" | "md" | "lg" } export type SegmentGroupVariantProps = { [K in keyof SegmentGroupVariant]?: ConditionalValue<SegmentGroupVariant[K]> | undefined } export type SegmentGroupVariantMap = { [K in keyof SegmentGroupVariant]: Array<SegmentGroupVariant[K]> } // Select export type SelectSlot = | "label" | "positioner" | "trigger" | "indicator" | "clearTrigger" | "item" | "itemText" | "itemIndicator" | "itemGroup" | "itemGroupLabel" | "list" | "content" | "root" | "control" | "valueText" | "indicatorGroup" export interface SelectVariant { /** @default "outline" */ variant?: "outline" | "subtle" /** @default "md" */ size?: "xs" | "sm" | "md" | "lg" } export type SelectVariantProps = { [K in keyof SelectVariant]?: ConditionalValue<SelectVariant[K]> | undefined } export type SelectVariantMap = { [K in keyof SelectVariant]: Array<SelectVariant[K]> } // Slider export type SliderSlot = | "root" | "label" | "thumb" | "valueText" | "track" | "range" | "control" | "markerGroup" | "marker" | "draggingIndicator" | "markerIndicator" export interface SliderVariant { /** @default "md" */ size?: "sm" | "md" | "lg" /** @default "outline" */ variant?: "outline" | "solid" /** @default "horizontal" */ orientation?: "vertical" | "horizontal" } export type SliderVariantProps = { [K in keyof SliderVariant]?: ConditionalValue<SliderVariant[K]> | undefined } export type SliderVariantMap = { [K in keyof SliderVariant]: Array<SliderVariant[K]> } // Stat export type StatSlot = "root" | "label" | "helpText" | "valueText" | "valueUnit" | "indicator" export interface StatVariant { /** @default "md" */ size?: "sm" | "md" | "lg" } export type StatVariantProps = { [K in keyof StatVariant]?: ConditionalValue<StatVariant[K]> | undefined } export type StatVariantMap = { [K in keyof StatVariant]: Array<StatVariant[K]> } // Steps export type StepsSlot = | "root" | "list" | "item" | "trigger" | "indicator" | "separator" | "content" | "title" | "description" | "nextTrigger" | "prevTrigger" | "progress" export interface StepsVariant { /** @default "horizontal" */ orientation?: "vertical" | "horizontal" /** @default "solid" */ variant?: "solid" | "subtle" /** @default "md" */ size?: "xs" | "sm" | "md" | "lg" } export type StepsVariantProps = { [K in keyof StepsVariant]?: ConditionalValue<StepsVariant[K]> | undefined } export type StepsVariantMap = { [K in keyof StepsVariant]: Array<StepsVariant[K]> } // Switch export type SwitchSlot = "root" | "label" | "control" | "thumb" | "indicator" export interface SwitchVariant { /** @default "solid" */ variant?: "solid" | "raised" /** @default "md" */ size?: "xs" | "sm" | "md" | "lg" } export type SwitchVariantProps = { [K in keyof SwitchVariant]?: ConditionalValue<SwitchVariant[K]> | undefined } export type SwitchVariantMap = { [K in keyof SwitchVariant]: Array<SwitchVariant[K]> } // Table export type TableSlot = "root" | "header" | "body" | "row" | "columnHeader" | "cell" | "footer" | "caption" export interface TableVariant { interactive?: boolean stickyHeader?: boolean striped?: boolean showColumnBorder?: boolean /** @default "line" */ variant?: "line" | "outline" /** @default "md" */ size?: "sm" | "md" | "lg" } export type TableVariantProps = { [K in keyof TableVariant]?: ConditionalValue<TableVariant[K]> | undefined } export type TableVariantMap = { [K in keyof TableVariant]: Array<TableVariant[K]> } // Tabs export type TabsSlot = "root" | "trigger" | "list" | "content" | "contentGroup" | "indicator" export interface TabsVariant { fitted?: boolean justify?: "start" | "center" | "end" /** @default "md" */ size?: "sm" | "md" | "lg" /** @default "line" */ variant?: "line" | "subtle" | "enclosed" | "outline" | "plain" } export type TabsVariantProps = { [K in keyof TabsVariant]?: ConditionalValue<TabsVariant[K]> | undefined } export type TabsVariantMap = { [K in keyof TabsVariant]: Array<TabsVariant[K]> } // Tag export type TagSlot = "root" | "label" | "closeTrigger" | "startElement" | "endElement" export interface TagVariant { /** @default "md" */ size?: "sm" | "md" | "lg" | "xl" /** @default "surface" */ variant?: "subtle" | "solid" | "outline" | "surface" } export type TagVariantProps = { [K in keyof TagVariant]?: ConditionalValue<TagVariant[K]> | undefined } export type TagVariantMap = { [K in keyof TagVariant]: Array<TagVariant[K]> } // Toast export type ToastSlot = "root" | "title" | "description" | "indicator" | "closeTrigger" | "actionTrigger" export interface ToastVariant {} export type ToastVariantProps = { [K in keyof ToastVariant]?: ConditionalValue<ToastVariant[K]> | undefined } export type ToastVariantMap = { [K in keyof ToastVariant]: Array<ToastVariant[K]> } // Tooltip export type TooltipSlot = "trigger" | "arrow" | "arrowTip" | "positioner" | "content" export interface TooltipVariant {} export type TooltipVariantProps = { [K in keyof TooltipVariant]?: ConditionalValue<TooltipVariant[K]> | undefined } export type TooltipVariantMap = { [K in keyof TooltipVariant]: Array<TooltipVariant[K]> } // Status export type StatusSlot = "root" | "indicator" export interface StatusVariant { /** @default "md" */ size?: "sm" | "md" | "lg" } export type StatusVariantProps = { [K in keyof StatusVariant]?: ConditionalValue<StatusVariant[K]> | undefined } export type StatusVariantMap = { [K in keyof StatusVariant]: Array<StatusVariant[K]> } // Timeline export type TimelineSlot = "root" | "item" | "content" | "separator" | "indicator" | "connector" | "title" | "description" export interface TimelineVariant { /** @default "solid" */ variant?: "subtle" | "solid" | "outline" | "plain" /** @default "md" */ size?: "sm" | "md" | "lg" | "xl" } export type TimelineVariantProps = { [K in keyof TimelineVariant]?: ConditionalValue<TimelineVariant[K]> | undefined } export type TimelineVariantMap = { [K in keyof TimelineVariant]: Array<TimelineVariant[K]> } // ColorPicker export type ColorPickerSlot = | "root" | "label" | "control" | "trigger" | "positioner" | "content" | "area" | "areaThumb" | "valueText" | "areaBackground" | "channelSlider" | "channelSliderLabel" | "channelSliderTrack" | "channelSliderThumb" | "channelSliderValueText" | "channelInput" | "transparencyGrid" | "swatchGroup" | "swatchTrigger" | "swatchIndicator" | "swatch" | "eyeDropperTrigger" | "formatTrigger" | "formatSelect" | "view" | "channelText" export interface ColorPickerVariant { /** @default "md" */ size?: "2xs" | "xs" | "sm" | "md" | "lg" | "xl" | "2xl" /** @default "outline" */ variant?: "outline" | "subtle" } export type ColorPickerVariantProps = { [K in keyof ColorPickerVariant]?: ConditionalValue<ColorPickerVariant[K]> | undefined } export type ColorPickerVariantMap = { [K in keyof ColorPickerVariant]: Array<ColorPickerVariant[K]> } // QrCode export type QrCodeSlot = "root" | "frame" | "pattern" | "overlay" | "downloadTrigger" export interface QrCodeVariant { /** @default "md" */ size?: "2xs" | "xs" | "sm" | "md" | "lg" | "xl" | "2xl" | "full" } export type QrCodeVariantProps = { [K in keyof QrCodeVariant]?: ConditionalValue<QrCodeVariant[K]> | undefined } export type QrCodeVariantMap = { [K in keyof QrCodeVariant]: Array<QrCodeVariant[K]> } export interface ConfigSlotRecipes { accordion: SystemSlotRecipeFn<AccordionSlot, AccordionVariantProps, AccordionVariantMap> actionBar: SystemSlotRecipeFn<ActionBarSlot, ActionBarVariantProps, ActionBarVariantMap> alert: SystemSlotRecipeFn<AlertSlot, AlertVariantProps, AlertVariantMap> avatar: SystemSlotRecipeFn<AvatarSlot, AvatarVariantProps, AvatarVariantMap> blockquote: SystemSlotRecipeFn<BlockquoteSlot, BlockquoteVariantProps, BlockquoteVariantMap> breadcrumb: SystemSlotRecipeFn<BreadcrumbSlot, BreadcrumbVariantProps, BreadcrumbVariantMap> card: SystemSlotRecipeFn<CardSlot, CardVariantProps, CardVariantMap> checkbox: SystemSlotRecipeFn<CheckboxSlot, CheckboxVariantProps, CheckboxVariantMap> checkboxCard: SystemSlotRecipeFn<CheckboxCardSlot, CheckboxCardVariantProps, CheckboxCardVariantMap> collapsible: SystemSlotRecipeFn<CollapsibleSlot, CollapsibleVariantProps, CollapsibleVariantMap> dataList: SystemSlotRecipeFn<DataListSlot, DataListVariantProps, DataListVariantMap> dialog: SystemSlotRecipeFn<DialogSlot, DialogVariantProps, DialogVariantMap> drawer: SystemSlotRecipeFn<DrawerSlot, DrawerVariantProps, DrawerVariantMap> editable: SystemSlotRecipeFn<EditableSlot, EditableVariantProps, EditableVariantMap> emptyState: SystemSlotRecipeFn<EmptyStateSlot, EmptyStateVariantProps, EmptyStateVariantMap> field: SystemSlotRecipeFn<FieldSlot, FieldVariantProps, FieldVariantMap> fieldset: SystemSlotRecipeFn<FieldsetSlot, FieldsetVariantProps, FieldsetVariantMap> fileUpload: SystemSlotRecipeFn<FileUploadSlot, FileUploadVariantProps, FileUploadVariantMap> hoverCard: SystemSlotRecipeFn<HoverCardSlot, HoverCardVariantProps, HoverCardVariantMap> list: SystemSlotRecipeFn<ListSlot, ListVariantProps, ListVariantMap> menu: SystemSlotRecipeFn<MenuSlot, MenuVariantProps, MenuVariantMap> nativeSelect: SystemSlotRecipeFn<NativeSelectSlot, NativeSelectVariantProps, NativeSelectVariantMap> numberInput: SystemSlotRecipeFn<NumberInputSlot, NumberInputVariantProps, NumberInputVariantMap> pinInput: SystemSlotRecipeFn<PinInputSlot, PinInputVariantProps, PinInputVariantMap> popover: SystemSlotRecipeFn<PopoverSlot, PopoverVariantProps, PopoverVariantMap> progress: SystemSlotRecipeFn<ProgressSlot, ProgressVariantProps, ProgressVariantMap> progressCircle: SystemSlotRecipeFn<ProgressCircleSlot, ProgressCircleVariantProps, ProgressCircleVariantMap> radioCard: SystemSlotRecipeFn<RadioCardSlot, RadioCardVariantProps, RadioCardVariantMap> radioGroup: SystemSlotRecipeFn<RadioGroupSlot, RadioGroupVariantProps, RadioGroupVariantMap> ratingGroup: SystemSlotRecipeFn<RatingGroupSlot, RatingGroupVariantProps, RatingGroupVariantMap> segmentGroup: SystemSlotRecipeFn<SegmentGroupSlot, SegmentGroupVariantProps, SegmentGroupVariantMap> select: SystemSlotRecipeFn<SelectSlot, SelectVariantProps, SelectVariantMap> slider: SystemSlotRecipeFn<SliderSlot, SliderVariantProps, SliderVariantMap> stat: SystemSlotRecipeFn<StatSlot, StatVariantProps, StatVariantMap> steps: SystemSlotRecipeFn<StepsSlot, StepsVariantProps, StepsVariantMap> switch: SystemSlotRecipeFn<SwitchSlot, SwitchVariantProps, SwitchVariantMap> table: SystemSlotRecipeFn<TableSlot, TableVariantProps, TableVariantMap> tabs: SystemSlotRecipeFn<TabsSlot, TabsVariantProps, TabsVariantMap> tag: SystemSlotRecipeFn<TagSlot, TagVariantProps, TagVariantMap> toast: SystemSlotRecipeFn<ToastSlot, ToastVariantProps, ToastVariantMap> tooltip: SystemSlotRecipeFn<TooltipSlot, TooltipVariantProps, TooltipVariantMap> status: SystemSlotRecipeFn<StatusSlot, StatusVariantProps, StatusVariantMap> timeline: SystemSlotRecipeFn<TimelineSlot, TimelineVariantProps, TimelineVariantMap> colorPicker: SystemSlotRecipeFn<ColorPickerSlot, ColorPickerVariantProps, ColorPickerVariantMap> qrCode: SystemSlotRecipeFn<QrCodeSlot, QrCodeVariantProps, QrCodeVariantMap> } export interface ConfigRecipeSlots { accordion: AccordionSlot actionBar: ActionBarSlot alert: AlertSlot avatar: AvatarSlot blockquote: BlockquoteSlot breadcrumb: BreadcrumbSlot card: CardSlot checkbox: CheckboxSlot checkboxCard: CheckboxCardSlot collapsible: CollapsibleSlot dataList: DataListSlot dialog: DialogSlot drawer: DrawerSlot editable: EditableSlot emptyState: EmptyStateSlot field: FieldSlot fieldset: FieldsetSlot fileUpload: FileUploadSlot hoverCard: HoverCardSlot list: ListSlot menu: MenuSlot nativeSelect: NativeSelectSlot numberInput: NumberInputSlot pinInput: PinInputSlot popover: PopoverSlot progress: ProgressSlot progressCircle: ProgressCircleSlot radioCard: RadioCardSlot radioGroup: RadioGroupSlot ratingGroup: RatingGroupSlot segmentGroup: SegmentGroupSlot select: SelectSlot slider: SliderSlot stat: StatSlot steps: StepsSlot switch: SwitchSlot table: TableSlot tabs: TabsSlot tag: TagSlot toast: ToastSlot tooltip: TooltipSlot status: StatusSlot timeline: TimelineSlot colorPicker: ColorPickerSlot qrCode: QrCodeSlot } export type SlotRecipeRecord<T, K> = T extends keyof ConfigRecipeSlots ? Record<ConfigRecipeSlots[T], K> : Record<string, K> export type SlotRecipeProps<T> = T extends keyof ConfigSlotRecipes ? ConfigSlotRecipes[T]["__type"] & { recipe?: SlotRecipeDefinition } : { recipe?: SlotRecipeDefinition } export type RecipeProps<T> = T extends keyof ConfigRecipes ? ConfigRecipes[T]["__type"] & { recipe?: RecipeDefinition } : { recipe?: RecipeDefinition }