"use client"; import { cn } from "@core/lib/utils"; import * as React from "react"; export interface CustomCheckboxProps { id: string; name?: string; label: string; checked?: boolean; onChange?: (checked: boolean) => void; variant?: "primary" | "info" | "error"; disabled?: boolean; error?: string; } const CustomCheckbox = React.forwardRef( ( { id, name, label, checked, onChange, variant = "primary", disabled, error, }, ref ) => { const finalVariant = error ? "error" : variant; return (
onChange?.(e.target.checked)} disabled={disabled} ref={ref} className={cn( "peer h-5 w-5 cursor-pointer appearance-none rounded border-2 transition-all duration-200 checked:border-0 disabled:cursor-not-allowed disabled:opacity-50", { "border-blue-600 checked:bg-blue-600": finalVariant === "primary" && !disabled, "border-cyan-600 checked:bg-cyan-600": finalVariant === "info" && !disabled, "border-red-600 checked:bg-red-600": finalVariant === "error" && !disabled, "border-gray-300 checked:bg-gray-400": disabled, } )} />
{error && (

{error}

)}
); } ); CustomCheckbox.displayName = "CustomCheckbox"; export { CustomCheckbox };