{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "extends": "none",
  "name": "checkbox",
  "title": "checkbox",
  "description": "checkbox",
  "dependencies": [
    "@heroicons/react",
    "react-aria-components",
    "cn"
  ],
  "registryDependencies": [
    "https://intentui.com/r/primitive",
    "https://intentui.com/r/field"
  ],
  "files": [
    {
      "path": "src/components/ui/checkbox.tsx",
      "content": "\"use client\"\n\nimport { CheckIcon, MinusIcon } from \"@heroicons/react/20/solid\"\nimport {\n  CheckboxButton,\n  type CheckboxButtonProps,\n  CheckboxField as CheckboxFieldPrimitive,\n  type CheckboxFieldProps,\n} from \"react-aria-components/Checkbox\"\nimport {\n  CheckboxGroup as CheckboxGroupPrimitive,\n  type CheckboxGroupProps,\n} from \"react-aria-components/CheckboxGroup\"\nimport { composeRenderProps } from \"react-aria-components/composeRenderProps\"\nimport { cn } from \"cn\"\nimport { cx } from \"@/lib/primitive\"\nimport { Label } from \"@/components/ui/field\"\n\nexport function CheckboxGroup({ className, ...props }: CheckboxGroupProps) {\n  return (\n    <CheckboxGroupPrimitive\n      {...props}\n      data-slot=\"control\"\n      className={cx(\n        \"space-y-3 has-[[slot=description]]:not-has-[[slot=errorMessage]]:space-y-6 has-[[slot=description]]:**:data-[slot=label]:font-medium **:[[slot=description]]:block\",\n        className\n      )}\n    />\n  )\n}\n\nexport function CheckboxField({ className, ...props }: CheckboxFieldProps) {\n  return (\n    <CheckboxFieldPrimitive\n      data-slot=\"control\"\n      {...props}\n      className={cx(\n        \"grid grid-cols-[1.125rem_1fr] gap-x-3 gap-y-1 sm:grid-cols-[1rem_1fr]\",\n        \"*:data-[slot=control]:col-start-1 *:data-[slot=control]:row-start-1 *:data-[slot=control]:mt-0.75 sm:*:data-[slot=control]:mt-1\",\n        \"*:[[slot=errorMessage]]:col-span-full\",\n        \"**:data-[slot=control-label]:col-start-2 **:data-[slot=control-label]:row-start-1\",\n        \"*:[[slot=description]]:col-start-2 *:[[slot=description]]:row-start-2\",\n        \"has-[[slot=description]]:**:data-[slot=control-label]:font-medium\",\n        className\n      )}\n    />\n  )\n}\n\nexport function Checkbox({ className, ...props }: CheckboxButtonProps) {\n  return (\n    <CheckboxButton\n      className={cx(\"group gap-x-3 inline-flex col-span-full focus:outline-hidden\", className)}\n      {...props}\n    >\n      {composeRenderProps(\n        props.children,\n        (children, { isSelected, isIndeterminate, isInvalid }) => {\n          const indicator = isIndeterminate ? (\n            <MinusIcon data-slot=\"check-indicator\" />\n          ) : isSelected ? (\n            <CheckIcon data-slot=\"check-indicator\" />\n          ) : null\n\n          return (\n            <div\n              className={cn(\n                \"grid grid-cols-[1.125rem_1fr] items-center gap-y-1 has-data-[slot=control-label]:gap-x-3 sm:grid-cols-[1rem_1fr]\"\n              )}\n            >\n              <span\n                data-slot=\"indicator\"\n                className={cn([\n                  \"col-start-1 row-start-1 relative inset-ring inset-ring-input isolate flex shrink-0 items-center justify-center rounded bg-(--control-bg,transparent) text-background transition group-hover:inset-ring-muted-foreground/30 group-focus-visible:inset-ring-ring\",\n                  \"size-4.5 *:data-[slot=check-indicator]:size-4 sm:size-4 sm:*:data-[slot=check-indicator]:size-3.5\",\n                  \"in-disabled:bg-muted\",\n                  (isSelected || isIndeterminate) && [\n                    \"inset-ring-(--checkbox-ring,var(--color-ring)) bg-(--checkbox-bg,var(--color-primary)) text-(--checkbox-foreground,var(--color-primary-foreground))\",\n                    \"group-invalid:inset-ring/70 group-invalid:bg-danger group-invalid:text-danger-foreground dark:group-invalid:inset-ring-danger-subtle-foreground/70\",\n                  ],\n                  isInvalid &&\n                    \"inset-ring-danger-subtle-foreground/70 bg-danger-subtle/5 text-danger-foreground ring-danger-subtle-foreground/20 group-hover:inset-ring-danger-subtle-foreground/70\",\n                ])}\n              >\n                {indicator}\n              </span>\n              <Label\n                className=\"col-start-2 row-start-1\"\n                data-slot=\"control-label\"\n                elementType=\"span\"\n              >\n                {children}\n              </Label>\n            </div>\n          )\n        }\n      )}\n    </CheckboxButton>\n  )\n}\n",
      "type": "registry:ui"
    }
  ],
  "cssVars": {
    "theme": {
      "color-danger-subtle": "var(--danger-subtle)",
      "color-danger-subtle-foreground": "var(--danger-subtle-foreground)"
    },
    "light": {
      "danger-subtle": "oklch(0.637 0.237 25.331 / 0.15)",
      "danger-subtle-foreground": "oklch(0.505 0.213 27.518)"
    },
    "dark": {
      "danger-subtle": "oklch(0.637 0.237 25.331 / 0.1)",
      "danger-subtle-foreground": "oklch(0.704 0.191 22.216)"
    }
  },
  "type": "registry:ui"
}