{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "checkbox",
  "title": "Checkbox",
  "description": "An easily stylable checkbox component.",
  "dependencies": [
    "@base-ui/react",
    "lucide-react"
  ],
  "registryDependencies": [
    "utils"
  ],
  "files": [
    {
      "path": "registry/ui/checkbox.tsx",
      "content": "\"use client\";\n\nimport { Checkbox as BaseCheckbox } from \"@base-ui/react/checkbox\";\nimport { CheckIcon, MinusIcon } from \"lucide-react\";\n\nimport { cn } from \"@/registry/lib/utils\";\n\nfunction CheckboxRoot({ className, ...props }: BaseCheckbox.Root.Props) {\n  return (\n    <BaseCheckbox.Root\n      className={cn(className)}\n      data-slot=\"checkbox\"\n      {...props}\n    />\n  );\n}\n\nfunction CheckboxIndicator({\n  className,\n  ...props\n}: BaseCheckbox.Indicator.Props) {\n  return (\n    <BaseCheckbox.Indicator\n      className={cn(className)}\n      data-slot=\"checkbox-indicator\"\n      {...props}\n    />\n  );\n}\n\nfunction Checkbox({ className, ...props }: BaseCheckbox.Root.Props) {\n  return (\n    <BaseCheckbox.Root\n      className={cn(\n        \"peer inline-flex size-4 shrink-0 rounded-sm border border-input shadow-xs transition-shadow\",\n        \"data-checked:bg-primary data-checked:text-primary-foreground data-checked:border-primary\",\n        \"data-indeterminate:bg-primary data-indeterminate:text-primary-foreground data-indeterminate:border-primary\",\n        \"data-checked:focus-visible:outline-offset-2 data-checked:focus-visible:ring-primary/30\",\n        \"focus-visible:outline focus-visible:outline-ring focus-visible:ring-4 focus-visible:ring-ring/10\",\n        \"data-invalid:focus-visible:outline-destructive data-invalid:focus-visible:outline-offset-2 data-invalid:focus-visible:ring-destructive/30\",\n        \"data-disabled:cursor-not-allowed data-disabled:opacity-50\",\n        className,\n      )}\n      data-slot=\"checkbox\"\n      {...props}\n    >\n      <BaseCheckbox.Indicator\n        className=\"flex items-center justify-center text-current data-unchecked:hidden\"\n        data-slot=\"checkbox-indicator\"\n        render={(props, state) => (\n          <span {...props}>\n            {state.indeterminate ? (\n              <MinusIcon className=\"size-3.5\" />\n            ) : (\n              <CheckIcon className=\"size-3.5\" />\n            )}\n          </span>\n        )}\n      />\n    </BaseCheckbox.Root>\n  );\n}\n\nexport {\n  CheckboxRoot,\n  CheckboxIndicator,\n  // Composite component\n  Checkbox,\n};\n",
      "type": "registry:ui"
    }
  ],
  "type": "registry:ui"
}