{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "radio",
  "title": "Radio",
  "description": "An easily stylable radio button component.",
  "dependencies": [
    "@base-ui/react",
    "lucide-react"
  ],
  "registryDependencies": [
    "utils"
  ],
  "files": [
    {
      "path": "registry/ui/radio.tsx",
      "content": "\"use client\";\n\nimport { Radio as BaseRadio } from \"@base-ui/react/radio\";\nimport { RadioGroup as BaseRadioGroup } from \"@base-ui/react/radio-group\";\nimport { CircleIcon } from \"lucide-react\";\nimport { cn } from \"@/registry/lib/utils\";\n\nfunction RadioGroup({ className, ...props }: BaseRadioGroup.Props) {\n  return (\n    <BaseRadioGroup\n      className={cn(\"grid gap-3\", className)}\n      data-slot=\"radio-group\"\n      {...props}\n    />\n  );\n}\n\nfunction RadioRoot({ className, ...props }: BaseRadio.Root.Props) {\n  return (\n    <BaseRadio.Root\n      className={cn(\"rounded-full\", className)}\n      data-slot=\"radio\"\n      {...props}\n    />\n  );\n}\n\nfunction RadioIndicator({ className, ...props }: BaseRadio.Indicator.Props) {\n  return (\n    <BaseRadio.Indicator\n      className={cn(\"data-unchecked:hidden\", className)}\n      data-slot=\"radio-indicator\"\n      {...props}\n    />\n  );\n}\n\nfunction Radio({ className, ...props }: BaseRadio.Root.Props) {\n  return (\n    <BaseRadio.Root\n      className={cn(\n        \"bg-transparent border-input text-primary dark:bg-input/30\",\n        \"flex aspect-square size-4 shrink-0 items-center justify-center\",\n        \"rounded-full border shadow-xs\",\n        \"transition-[color,box-shadow]\",\n        \"focus-visible:outline focus-visible:outline-ring focus-visible:ring-4 focus-visible:ring-ring/10\",\n        \"aria-invalid:border-destructive aria-invalid:ring-4 aria-invalid:ring-destructive/10\",\n        \"disabled:cursor-not-allowed disabled:opacity-50\",\n        className,\n      )}\n      data-slot=\"radio\"\n      {...props}\n    >\n      <BaseRadio.Indicator\n        className=\"flex items-center justify-center data-[unchecked]:hidden\"\n        data-slot=\"radio-group-indicator\"\n      >\n        <CircleIcon className=\"size-2 fill-primary\" />\n      </BaseRadio.Indicator>\n    </BaseRadio.Root>\n  );\n}\n\nexport {\n  RadioGroup,\n  RadioRoot,\n  RadioIndicator,\n  // Composite component\n  Radio,\n};\n",
      "type": "registry:ui"
    }
  ],
  "type": "registry:ui"
}