Openstatus www.openstatus.dev
at 4ee8f50e37873ebf4d80dbb5bc76fdb40a01a3ea 29 lines 1.2 kB view raw
1"use client"; 2 3import * as SwitchPrimitives from "@radix-ui/react-switch"; 4import * as React from "react"; 5 6import { cn } from "../lib/utils"; 7 8const Switch = React.forwardRef< 9 React.ElementRef<typeof SwitchPrimitives.Root>, 10 React.ComponentPropsWithoutRef<typeof SwitchPrimitives.Root> 11>(({ className, ...props }, ref) => ( 12 <SwitchPrimitives.Root 13 className={cn( 14 "focus-visible:ring-ring focus-visible:ring-offset-background data-[state=checked]:bg-primary data-[state=unchecked]:bg-input peer inline-flex h-[24px] w-[44px] shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent transition-colors focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50", 15 className, 16 )} 17 {...props} 18 ref={ref} 19 > 20 <SwitchPrimitives.Thumb 21 className={cn( 22 "bg-background pointer-events-none block h-5 w-5 rounded-full shadow-lg ring-0 transition-transform data-[state=checked]:translate-x-5 data-[state=unchecked]:translate-x-0", 23 )} 24 /> 25 </SwitchPrimitives.Root> 26)); 27Switch.displayName = SwitchPrimitives.Root.displayName; 28 29export { Switch };