{ "$schema": "https://ui.shadcn.com/schema/registry-item.json", "name": "radio-group", "type": "registry:ui", "title": "Radio Group", "files": [ { "path": "ui/radio-group.tsrx", "type": "registry:ui", "target": "components/ui/radio-group.tsrx", "content": "// Base UI base radio-group — runs on @octanejs/base-ui's `RadioGroup` plus `Radio`.\n//\n// PART MAPPING DIFFERS FROM RADIX. Radix nests everything under one namespace\n// (RadioGroup.Root / .Item / .Indicator); Base UI splits the group from the item, so the item\n// is `Radio.Root` from a separate subpath and the indicator is `Radio.Indicator`. The exported\n// component names and every data-slot stay as shadcn defines them, so consumers see no\n// difference — this is wiring, not API.\n//\n// `disabled:` becomes `data-disabled:` for the same reason as checkbox and switch: Radio.Root\n// renders a ``, which is never `:disabled`, so the pseudo-class variant could\n// never match. The primitive publishes `data-disabled` instead.\n//\n// THE ROOT MUST CARRY ITS OWN DISPLAY, and this is the second consequence of that same ``.\n// Radix's radio root is a `