blob: 8d02b287f9c8efb1bd549666331de22f9f85d57b [file] [log] [blame]
gio9b2d4962025-05-07 04:59:39 +00001import * as React from "react"
2import * as CheckboxPrimitive from "@radix-ui/react-checkbox"
3import { cn } from "@/lib/utils"
4import { CheckIcon } from "@radix-ui/react-icons"
5
6const Checkbox = React.forwardRef<
7 React.ElementRef<typeof CheckboxPrimitive.Root>,
8 React.ComponentPropsWithoutRef<typeof CheckboxPrimitive.Root>
9>(({ className, ...props }, ref) => (
10 <CheckboxPrimitive.Root
11 ref={ref}
12 className={cn(
13 "peer h-4 w-4 shrink-0 rounded-sm border border-primary shadow focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground",
14 className
15 )}
16 {...props}
17 >
18 <CheckboxPrimitive.Indicator
19 className={cn("flex items-center justify-center text-current")}
20 >
21 <CheckIcon className="h-4 w-4" />
22 </CheckboxPrimitive.Indicator>
23 </CheckboxPrimitive.Root>
24))
25Checkbox.displayName = CheckboxPrimitive.Root.displayName
26
27export { Checkbox }