{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "radio-group",
  "type": "registry:ui",
  "title": "Radio group",
  "description": "Accessible radio group on Base UI with keyboard navigation, a springy checked dot, larger hit areas, and invalid and disabled states. A shadcn-style drop in.",
  "dependencies": [
    "@base-ui/react"
  ],
  "registryDependencies": [
    "utils"
  ],
  "files": [
    {
      "path": "registry/ui/radio-group.tsx",
      "type": "registry:ui",
      "target": "components/ui/radio-group.tsx",
      "content": "\"use client\"\n\nimport { Radio as RadioPrimitive } from \"@base-ui/react/radio\"\nimport { RadioGroup as RadioGroupPrimitive } from \"@base-ui/react/radio-group\"\nimport { cn } from \"@/lib/utils\"\n\nfunction RadioGroup({ className, ...props }: RadioGroupPrimitive.Props) {\n  return (\n    <RadioGroupPrimitive\n      data-slot=\"radio-group\"\n      className={cn(\"grid w-full gap-2.5\", className)}\n      {...props}\n    />\n  )\n}\n\nfunction RadioGroupItem({ className, ...props }: RadioPrimitive.Root.Props) {\n  return (\n    <RadioPrimitive.Root\n      data-slot=\"radio-group-item\"\n      className={cn(\n        \"group/radio-group-item peer relative flex aspect-square size-4 shrink-0 cursor-pointer items-center justify-center rounded-full outline-none\",\n        \"border border-border-strong bg-surface shadow-xs\",\n        \"transition-[background-color,border-color] duration-[70ms] ease-hairline\",\n        \"after:absolute after:-inset-3\",\n        \"hover:border-fg-subtle\",\n        \"focus-visible:ring-2 focus-visible:ring-accent focus-visible:ring-offset-2 focus-visible:ring-offset-bg\",\n        \"data-checked:border-accent data-checked:bg-accent data-checked:shadow-ink\",\n        \"aria-invalid:border-danger\",\n        \"data-disabled:cursor-not-allowed data-disabled:opacity-45\",\n        className\n      )}\n      {...props}\n    >\n      <RadioPrimitive.Indicator\n        data-slot=\"radio-group-indicator\"\n        keepMounted\n        className=\"flex items-center justify-center\"\n      >\n        <span className=\"size-1.5 scale-0 rounded-full bg-on-accent transition-transform duration-200 ease-spring group-data-checked/radio-group-item:scale-100\" />\n      </RadioPrimitive.Indicator>\n    </RadioPrimitive.Root>\n  )\n}\n\nexport { RadioGroup, RadioGroupItem }\n"
    }
  ]
}
