import { ReactNode } from 'react'; /** * Size variants for the Switch component */ export type SwitchSize = 'sm' | 'md' | 'lg'; /** * Props for the Switch component */ export interface SwitchProps { /** * Whether the switch is checked (controlled mode) */ checked?: boolean; /** * Default checked state (uncontrolled mode) */ defaultChecked?: boolean; /** * Callback fired when the switch is toggled */ onChange?: (checked: boolean, event: React.MouseEvent | React.KeyboardEvent) => void; /** * Whether the switch is disabled */ disabled?: boolean; /** * Optional label to display next to the switch */ label?: ReactNode; /** * Position of the label relative to the switch * @default 'right' */ labelPosition?: 'left' | 'right'; /** * Size variant for the switch * @default 'md' */ size?: SwitchSize; /** * Name attribute for the hidden input */ name?: string; /** * ID attribute for the switch */ id?: string; /** * Accessible label for the switch (used when no visible label is provided) */ 'aria-label'?: string; /** * Error message to display below the switch */ errorMessage?: ReactNode; /** * Assistive message to display below the switch */ assistiveMessage?: ReactNode; /** * Icon to display on the left side of the switch */ leftIcon?: ReactNode; /** * Icon to display on the right side of the switch */ rightIcon?: ReactNode; /** * Custom className for the switch wrapper */ className?: string; /** * Test ID for testing purposes (deprecated, use dataTestId) */ 'data-testid'?: string; /** * Test identifier for automated testing */ dataTestId?: string; /** * Data identifier for ib-ui compatibility */ dataId?: string; /** * Custom accent color for the toggle track when checked. * When provided, this color will be used instead of the theme's highlight color. * Useful for dynamic theming based on connected apps or custom branding. */ accentColor?: string; } //# sourceMappingURL=Switch.types.d.ts.map