{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "radio-group",
  "title": "Radio Group",
  "author": "AniBT <https://anibt.net>",
  "description": "AniBT candy radio: 18px paper discs; the chosen one is candy with a white dot.",
  "dependencies": [
    "radix-ui"
  ],
  "registryDependencies": [
    "@anibt/theme"
  ],
  "files": [
    {
      "path": "registry/anibt/ui/radio-group.tsx",
      "content": "\"use client\"\n\nimport * as React from \"react\"\nimport { RadioGroup as RadioGroupPrimitive } from \"radix-ui\"\n\nimport { cn } from \"@/lib/utils\"\n\n/**\n * RadioGroup — A's candy radio (AniBT 「贴纸手账」).\n *\n * An 18px paper disc inside a 1.5px `--input` ring (pink under the pointer);\n * the chosen one is candy with a white dot that pops in, the same fill as a\n * ticked checkbox, so a column of options reads at a glance. Focus is the\n * 2px `--ring` outline outside the disc; disabled is the sunk well with a\n * grey dot. Arrow keys move the choice (Radix roving focus).\n */\nfunction RadioGroup({ className, ...props }: React.ComponentProps<typeof RadioGroupPrimitive.Root>) {\n  return <RadioGroupPrimitive.Root data-slot=\"radio-group\" className={cn(\"grid w-full gap-3\", className)} {...props} />\n}\n\nfunction RadioGroupItem({ className, ...props }: React.ComponentProps<typeof RadioGroupPrimitive.Item>) {\n  return (\n    <RadioGroupPrimitive.Item\n      data-slot=\"radio-group-item\"\n      className={cn(\n        \"group/radio peer relative inline-flex aspect-square size-[18px] shrink-0 items-center justify-center rounded-full bg-card shadow-[inset_0_0_0_1.5px_var(--input)] outline-hidden transition-[background-color,box-shadow] duration-150 after:absolute after:-inset-2\",\n        \"enabled:hover:shadow-[inset_0_0_0_1.5px_var(--anibt-wash-line)]\",\n        \"data-[state=checked]:bg-anibt-candy-edge data-[state=checked]:bg-(image:--anibt-candy) data-[state=checked]:shadow-[0_1px_0_var(--anibt-candy-edge)]\",\n        \"focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-ring focus-visible:outline-solid\",\n        \"aria-invalid:outline-2 aria-invalid:outline-offset-2 aria-invalid:outline-anibt-danger-fill aria-invalid:outline-solid\",\n        \"disabled:cursor-not-allowed disabled:bg-muted disabled:shadow-[inset_0_0_0_1.5px_var(--border)] disabled:data-[state=checked]:bg-anibt-deep2 disabled:data-[state=checked]:bg-none disabled:data-[state=checked]:shadow-[inset_0_0_0_1.5px_var(--border)]\",\n        className\n      )}\n      {...props}\n    >\n      <RadioGroupPrimitive.Indicator data-slot=\"radio-group-indicator\" className=\"flex items-center justify-center\">\n        <span className=\"block size-2 animate-anibt-pop rounded-full bg-white group-disabled/radio:bg-muted-foreground\" />\n      </RadioGroupPrimitive.Indicator>\n    </RadioGroupPrimitive.Item>\n  )\n}\n\nexport { RadioGroup, RadioGroupItem }\n",
      "type": "registry:ui"
    }
  ],
  "categories": [
    "forms"
  ],
  "type": "registry:ui"
}