Scrapboard.org client
at main 31 lines 1.2 kB view raw
1"use client" 2 3import * as React from "react" 4import * as SwitchPrimitive from "@radix-ui/react-switch" 5 6import { cn } from "@/lib/utils" 7 8function Switch({ 9 className, 10 ...props 11}: React.ComponentProps<typeof SwitchPrimitive.Root>) { 12 return ( 13 <SwitchPrimitive.Root 14 data-slot="switch" 15 className={cn( 16 "peer data-[state=checked]:bg-primary data-[state=unchecked]:bg-input focus-visible:border-ring focus-visible:ring-ring/50 dark:data-[state=unchecked]:bg-input/80 inline-flex h-[1.15rem] w-8 shrink-0 items-center rounded-full border border-transparent shadow-xs transition-all outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50", 17 className 18 )} 19 {...props} 20 > 21 <SwitchPrimitive.Thumb 22 data-slot="switch-thumb" 23 className={cn( 24 "bg-background dark:data-[state=unchecked]:bg-foreground dark:data-[state=checked]:bg-primary-foreground pointer-events-none block size-4 rounded-full ring-0 transition-transform data-[state=checked]:translate-x-[calc(100%-2px)] data-[state=unchecked]:translate-x-0" 25 )} 26 /> 27 </SwitchPrimitive.Root> 28 ) 29} 30 31export { Switch }