import * as React from 'react'; import { cn } from '@/lib/utils/cn'; type SwitchProps = Omit, 'onChange'> & { checked?: boolean; defaultChecked?: boolean; disabled?: boolean; onCheckedChange?: (checked: boolean) => void; }; const Switch = React.forwardRef( ( { className, checked, defaultChecked = false, disabled, onCheckedChange, ...props }, ref, ) => { const [internalChecked, setInternalChecked] = React.useState(defaultChecked); const isControlled = checked !== undefined; const isChecked = isControlled ? checked : internalChecked; const updateChecked = React.useCallback( (nextChecked: boolean) => { if (!isControlled) { setInternalChecked(nextChecked); } onCheckedChange?.(nextChecked); }, [isControlled, onCheckedChange], ); return ( ); }, ); Switch.displayName = 'Switch'; export { Switch };