profileShare

rasmusjy / roundtable

Read-only snapshot

No repository description.

main default branch 181 files Expires Sep 13, 2026, 9:06 AM
switch.tsx 1,127 bytes
1 'use client';
2
3 import * as SwitchPrimitives from '@radix-ui/react-switch';
4 import * as React from 'react';
5 import { cn } from '@/lib/utils';
6
7 const Switch = React.forwardRef<
8 React.ElementRef<typeof SwitchPrimitives.Root>,
9 React.ComponentPropsWithoutRef<typeof SwitchPrimitives.Root>
10 >(({ className, ...props }, ref) => (
11 <SwitchPrimitives.Root
12 className={cn(
13 'peer inline-flex h-5 w-9 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-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input',
14 className,
15 )}
16 {...props}
17 ref={ref}
18 >
19 <SwitchPrimitives.Thumb className="pointer-events-none block h-4 w-4 rounded-full bg-background shadow-lg ring-0 transition-transform data-[state=checked]:translate-x-4 data-[state=unchecked]:translate-x-0" />
20 </SwitchPrimitives.Root>
21 ));
22 Switch.displayName = SwitchPrimitives.Root.displayName;
23
24 export { Switch };
25