import { Switch as SwitchPrimitive } from '@base-ui/react/switch'; import * as React from 'react'; import { type FieldProps } from '../_shared/index.js'; /** Color variants for the standard switch */ type ColorVariant = 'primary' | 'secondary' | 'warning' | 'info' | 'success' | 'destructive'; /** Theme variants that render theme toggle UIs */ type ThemeVariant = 'theme-gradient' | 'theme-switch' | 'theme-pill' | 'theme-segmented'; /** All switch variants */ export type SwitchVariant = ColorVariant | ThemeVariant; interface SwitchControlProps extends Omit { size?: 'sm' | 'md' | 'lg'; variant?: SwitchVariant; /** Visual style of the switch (solid = filled track, outline = bordered track). Only applies to color variants. */ switchStyle?: 'solid' | 'outline'; withIcon?: boolean; thumbIconOn?: React.ReactNode; thumbIconOff?: React.ReactNode; showOnOff?: boolean; onLabel?: string; offLabel?: string; label?: React.ReactNode; description?: string; labelPosition?: 'left' | 'right'; /** Layout orientation for label (theme variants only) */ orientation?: 'horizontal' | 'vertical'; checked?: boolean; defaultChecked?: boolean; onCheckedChange?: (checked: boolean) => void; } export interface SwitchProps extends Omit, Omit { /** Label text or ReactNode (inline with switch, or in FieldLabel when field props are set) */ label?: React.ReactNode; /** Description text (inline below label, or in FieldDescription when field props are set) */ description?: React.ReactNode; } declare const Switch: React.ForwardRefExoticComponent & React.RefAttributes>; export { Switch };