{ "$schema": "https://ui.shadcn.com/schema/registry-item.json", "name": "checkbox", "title": "Checkbox", "description": "A neumorphic checkbox component with multiple sizes.", "dependencies": [ "@base-ui/react", "@phosphor-icons/react", "class-variance-authority" ], "registryDependencies": ["utils"], "files": [ { "path": "src/components/ui/checkbox.tsx", "content": "import { Checkbox as BaseCheckbox } from \"@base-ui/react/checkbox\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { Check, Minus } from \"@phosphor-icons/react/dist/ssr\";\nimport type { ComponentProps } from \"react\";\nimport { cn } from \"@/lib/utils\";\n\nconst checkboxVariants = cva(\n [\n \"flex items-center justify-center bg-surface transition-all duration-150\",\n \"shadow-neu-xs hover:shadow-neu-sm\",\n \"border border-foreground/20\",\n \"data-[checked]:shadow-neu-pressed-xs data-[checked]:border-primary\",\n \"data-[disabled]:opacity-50 data-[disabled]:cursor-not-allowed data-[disabled]:shadow-none\",\n \"focus-visible:outline-2 focus-visible:outline-primary focus-visible:outline-offset-2\",\n ],\n {\n variants: {\n size: {\n sm: \"w-4 h-4 rounded\",\n md: \"w-5 h-5 rounded-md\",\n lg: \"w-6 h-6 rounded-lg\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n },\n);\n\nconst iconSizes = {\n sm: 12,\n md: 14,\n lg: 18,\n} as const;\n\nexport type CheckboxProps = ComponentProps &\n VariantProps;\n\nexport default function Checkbox({\n className,\n size = \"md\",\n children,\n ...props\n}: CheckboxProps) {\n return (\n \n \n {props.indeterminate ? (\n \n ) : (\n \n )}\n \n \n );\n}\n\nexport { checkboxVariants };\n", "type": "registry:ui" } ], "type": "registry:ui" }