{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "radio-group",
  "title": "Radio-group",
  "description": "A radio-group component.",
  "files": [
    {
      "path": "registry/default/radio-group/radio-group.tsx",
      "content": "import * as React from \"react\";\nimport { Radio } from \"@base-ui/react/radio\";\nimport { RadioGroup as BaseRadioGroup } from \"@base-ui/react/radio-group\";\n\nimport { cn } from \"@/lib/utils\";\n\nfunction RadioGroup({\n  className,\n  ...props\n}: React.ComponentProps<typeof BaseRadioGroup>) {\n  return (\n    <BaseRadioGroup\n      data-slot=\"radio-group\"\n      className={cn(\"grid gap-3\", className)}\n      {...props}\n    />\n  );\n}\n\nfunction RadioGroupItem({\n  className,\n  variant = \"default\",\n  ...props\n}: React.ComponentProps<typeof Radio.Root> & {\n  variant?: \"default\" | \"elevated\";\n}) {\n  return (\n    <Radio.Root\n      data-slot=\"radio-group-item\"\n      className={cn(\n        \"group relative inline-flex size-4 shrink-0 items-center justify-center rounded-full\",\n        \"focus-visible:outline-ring/50 ease-out-expo outline-0 outline-offset-0 outline-transparent transition-[outline-width,outline-offset,outline-color] duration-150 outline-solid focus-visible:outline-2 focus-visible:outline-offset-2\",\n        \"disabled:cursor-not-allowed disabled:opacity-60\",\n        \"aria-invalid:outline-destructive/50 aria-invalid:outline-2 aria-invalid:outline-offset-2 aria-invalid:outline-solid\",\n        // bg-clip-padding keeps the border on the substrate (matches Input);\n        // Indicator uses -inset-px to cover the border when selected.\n        \"border bg-clip-padding\",\n        variant === \"default\" ? \"bg-input\" : \"bg-input-elevated\",\n        className,\n      )}\n      {...props}\n    >\n      <Radio.Indicator\n        className={cn(\n          \"bg-primary before:bg-primary-foreground absolute -inset-px z-1 flex items-center justify-center rounded-full\",\n          \"ease-out-expo transition-opacity duration-150\",\n          \"data-starting-style:opacity-0\",\n          \"data-ending-style:opacity-0\",\n          \"before:ease-out-expo before:size-full before:origin-center before:scale-50 before:rounded-full before:transition-[scale] before:duration-250 before:content-['']\",\n          \"data-starting-style:before:scale-100\",\n          \"data-ending-style:before:scale-100\",\n        )}\n      />\n    </Radio.Root>\n  );\n}\n\nexport { RadioGroup, RadioGroupItem };\n",
      "type": "registry:ui",
      "target": "components/ui/cubby-ui/radio-group.tsx"
    }
  ],
  "type": "registry:ui"
}