|
import * as React from 'react'; |
|
import * as SwitchPrimitives from '@radix-ui/react-switch'; |
|
|
|
import { cn } from '../../utils'; |
|
|
|
const Switch = React.forwardRef< |
|
React.ElementRef<typeof SwitchPrimitives.Root>, |
|
React.ComponentPropsWithoutRef<typeof SwitchPrimitives.Root> |
|
>(({ className, ...props }, ref) => ( |
|
<SwitchPrimitives.Root |
|
className={cn( |
|
'focus-visible:ring-ring focus-visible:ring-offset-background peer inline-flex h-[24px] w-[44px] shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-green-600 data-[state=unchecked]:bg-gray-200', |
|
className, |
|
)} |
|
{...props} |
|
ref={ref} |
|
> |
|
<SwitchPrimitives.Thumb |
|
className={cn( |
|
'pointer-events-none block h-5 w-5 rounded-full bg-white shadow-[0_1px_2px_rgba(0,0,0,0.45)] transition-transform data-[state=checked]:translate-x-5 data-[state=unchecked]:translate-x-0', |
|
)} |
|
/> |
|
</SwitchPrimitives.Root> |
|
)); |
|
Switch.displayName = SwitchPrimitives.Root.displayName; |
|
|
|
export { Switch }; |
|
|