Openstatus www.openstatus.dev
at 4c0f4c00a38753a5d0dfd7e7b7b7706dec6f1503 31 lines 1.2 kB view raw
1"use client"; 2 3import * as SwitchPrimitive from "@radix-ui/react-switch"; 4import type * as React from "react"; 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 inline-flex h-[1.15rem] w-8 shrink-0 items-center rounded-full border border-transparent shadow-xs outline-none transition-all focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input dark:data-[state=unchecked]:bg-input/80", 17 className, 18 )} 19 {...props} 20 > 21 <SwitchPrimitive.Thumb 22 data-slot="switch-thumb" 23 className={cn( 24 "pointer-events-none block size-4 rounded-full bg-background ring-0 transition-transform data-[state=checked]:translate-x-[calc(100%-2px)] data-[state=unchecked]:translate-x-0 dark:data-[state=checked]:bg-primary-foreground dark:data-[state=unchecked]:bg-foreground", 25 )} 26 /> 27 </SwitchPrimitive.Root> 28 ); 29} 30 31export { Switch };