blob: 84526ff1d676c16280298da031c8ece0ad333331 [file] [log] [blame]
giod0026612025-05-08 13:00:36 +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";
gio9b2d4962025-05-07 04:59:39 +00005
6const Checkbox = React.forwardRef<
giod0026612025-05-08 13:00:36 +00007 React.ElementRef<typeof CheckboxPrimitive.Root>,
8 React.ComponentPropsWithoutRef<typeof CheckboxPrimitive.Root>
gio9b2d4962025-05-07 04:59:39 +00009>(({ className, ...props }, ref) => (
giod0026612025-05-08 13:00:36 +000010 <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 className={cn("flex items-center justify-center text-current")}>
19 <CheckIcon className="h-4 w-4" />
20 </CheckboxPrimitive.Indicator>
21 </CheckboxPrimitive.Root>
22));
23Checkbox.displayName = CheckboxPrimitive.Root.displayName;
gio9b2d4962025-05-07 04:59:39 +000024
giod0026612025-05-08 13:00:36 +000025export { Checkbox };