{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "checkbox-06",
  "title": "Select all",
  "description": "Parent checkbox with an indeterminate mixed state.",
  "dependencies": [],
  "registryDependencies": [
    "checkbox",
    "label"
  ],
  "files": [
    {
      "path": "registry/patterns/checkbox/checkbox-06.tsx",
      "content": "'use client'\n\nimport { Checkbox } from '@/components/ui/checkbox'\nimport { Label } from '@/components/ui/label'\nimport { useState } from 'react'\n\nconst permissions = [\n  { id: 'read', label: 'Read' },\n  { id: 'write', label: 'Write' },\n  { id: 'delete', label: 'Delete' },\n]\n\nexport function Checkbox06() {\n  const [checked, setChecked] = useState<Record<string, boolean>>({\n    read: true,\n    write: false,\n    delete: false,\n  })\n\n  const values = Object.values(checked)\n  const allChecked = values.every(Boolean)\n  const someChecked = values.some(Boolean)\n\n  const toggleAll = (next: boolean) =>\n    setChecked({ read: next, write: next, delete: next })\n\n  return (\n    <div className=\"flex w-full max-w-xs flex-col gap-3\">\n      <div className=\"flex items-center gap-3 border-b pb-3\">\n        <Checkbox\n          id=\"checkbox-06-all\"\n          checked={allChecked}\n          indeterminate={someChecked && !allChecked}\n          onCheckedChange={(value) => toggleAll(value === true)}\n        />\n        <Label htmlFor=\"checkbox-06-all\" className=\"font-medium\">\n          Select all permissions\n        </Label>\n      </div>\n      <div className=\"flex flex-col gap-3 pl-6\">\n        {permissions.map((permission) => (\n          <div key={permission.id} className=\"flex items-center gap-3\">\n            <Checkbox\n              id={`checkbox-06-${permission.id}`}\n              checked={checked[permission.id]}\n              onCheckedChange={(value) =>\n                setChecked((prev) => ({\n                  ...prev,\n                  [permission.id]: value === true,\n                }))\n              }\n            />\n            <Label htmlFor={`checkbox-06-${permission.id}`}>\n              {permission.label}\n            </Label>\n          </div>\n        ))}\n      </div>\n    </div>\n  )\n}\n",
      "type": "registry:component",
      "target": "components/flx/patterns/checkbox/checkbox-06.tsx"
    }
  ],
  "type": "registry:block"
}