{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "extends": "none",
  "name": "radio",
  "title": "radio",
  "description": "radio",
  "dependencies": [
    "react-aria-components",
    "cn"
  ],
  "registryDependencies": [
    "https://intentui.com/r/primitive",
    "https://intentui.com/r/field"
  ],
  "files": [
    {
      "path": "src/components/ui/radio.tsx",
      "content": "\"use client\"\n\nimport { composeRenderProps } from \"react-aria-components/composeRenderProps\"\nimport {\n  RadioButton,\n  type RadioButtonProps,\n  RadioField as RadioFieldPrimitive,\n  type RadioFieldProps,\n  RadioGroup as RadioGroupPrimitive,\n  type RadioGroupProps,\n} from \"react-aria-components/RadioGroup\"\nimport { cn } from \"cn\"\nimport { cx } from \"@/lib/primitive\"\nimport { Label } from \"@/components/ui/field\"\n\nexport function RadioGroup({ className, ...props }: RadioGroupProps) {\n  return (\n    <RadioGroupPrimitive\n      {...props}\n      data-slot=\"control\"\n      className={cx(\n        \"space-y-3 has-[[slot=description]]:not-has-[[slot=errorMessage]]:space-y-6 *:data-[slot=label]:font-medium\",\n        className\n      )}\n    />\n  )\n}\n\nexport function RadioField({ className, ...props }: RadioFieldProps) {\n  return (\n    <RadioFieldPrimitive\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        \"**: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      data-slot=\"control\"\n    />\n  )\n}\n\nexport function Radio({ className, children, ...props }: RadioButtonProps) {\n  return (\n    <RadioButton\n      data-slot=\"control\"\n      className={cx(\"group gap-x-3 inline-flex col-span-full focus:outline-hidden \", className)}\n      {...props}\n    >\n      {composeRenderProps(children, (children, { isSelected, isInvalid }) => {\n        return (\n          <>\n            <span\n              data-slot=\"indicator\"\n              className={cn([\n                \"relative col-start-1 row-start-1 mt-0.75 sm:mt-1 inset-ring inset-ring-input isolate flex size-4.5 shrink-0 items-center justify-center rounded-full bg-(--control-bg,transparent) text-background transition before:absolute before:inset-auto before:size-2 before:shrink-0 before:rounded-full before:content-[''] hover:before:bg-muted-foreground/20 sm:size-4 sm:before:size-1.7\",\n                \"in-disabled:bg-muted\",\n                \"group-focus-visible:ring-2 group-focus-visible:ring-ring group-focus-visible:ring-offset-2 group-focus-visible:ring-offset-background\",\n                isSelected && [\n                  \"inset-ring-(--radio-ring,var(--color-ring)) bg-(--radio-bg,var(--color-primary)) text-(--radio-foreground,var(--color-primary-foreground)) before:bg-background hover:before:bg-muted/90\",\n                  \"group-invalid:inset-ring-danger-subtle-foreground/70 group-invalid:bg-danger group-invalid:text-danger-foreground\",\n                ],\n                isInvalid &&\n                  \"inset-ring-danger-subtle-foreground/70 bg-danger-subtle/5 text-danger-foreground ring-danger-subtle-foreground/20\",\n              ])}\n            />\n            <Label data-slot=\"control-label\" elementType=\"span\">\n              {children}\n            </Label>\n          </>\n        )\n      })}\n    </RadioButton>\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"
}