import { useState, useEffect, useId } from "react"; import { Check } from "lucide-react"; import { Label } from "@components/UI/Label.tsx"; import { cn } from "@core/utils/cn.ts"; interface CheckboxProps { checked?: boolean; onChange?: (checked: boolean) => void; className?: string; labelClassName?: string; id?: string; children?: React.ReactNode; disabled?: boolean; required?: boolean; name?: string; } export function Checkbox({ checked, onChange, className, labelClassName, id: propId, children, disabled = false, required = false, name, ...rest }: CheckboxProps) { const generatedId = useId(); const id = propId || generatedId; const [isChecked, setIsChecked] = useState(checked || false); // Make sure setIsChecked state updates with checked useEffect(() => { setIsChecked(checked || false); }, [checked]); const handleToggle = () => { if (disabled) return; const newChecked = !isChecked; setIsChecked(newChecked); onChange?.(newChecked); }; return (