@cocoar/vue-ui 3.1.0 → 3.2.0-beta.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (179) hide show
  1. package/dist/components/checkbox/CoarCheckbox.vue.d.ts +1 -1
  2. package/dist/components/checkbox/CoarCheckbox.vue.d.ts.map +1 -1
  3. package/dist/components/code-block/CoarCodeBlock.vue.d.ts +1 -1
  4. package/dist/components/code-block/CoarCodeBlock.vue.d.ts.map +1 -1
  5. package/dist/components/data-list/CoarDataList.vue.d.ts +158 -0
  6. package/dist/components/data-list/CoarDataList.vue.d.ts.map +1 -0
  7. package/dist/components/data-list/CoarDataListToolbar.vue.d.ts +30 -0
  8. package/dist/components/data-list/CoarDataListToolbar.vue.d.ts.map +1 -0
  9. package/dist/components/data-list/data-list-builder.d.ts +288 -0
  10. package/dist/components/data-list/data-list-builder.d.ts.map +1 -0
  11. package/dist/components/data-list/index.d.ts +12 -0
  12. package/dist/components/data-list/index.d.ts.map +1 -0
  13. package/dist/components/data-list/internal/compare.d.ts +14 -0
  14. package/dist/components/data-list/internal/compare.d.ts.map +1 -0
  15. package/dist/components/data-list/internal/reorder-core.d.ts +46 -0
  16. package/dist/components/data-list/internal/reorder-core.d.ts.map +1 -0
  17. package/dist/components/data-list/internal/search.d.ts +16 -0
  18. package/dist/components/data-list/internal/search.d.ts.map +1 -0
  19. package/dist/components/data-list/internal/useDataListLines.d.ts +92 -0
  20. package/dist/components/data-list/internal/useDataListLines.d.ts.map +1 -0
  21. package/dist/components/data-list/internal/useDataListReorder.d.ts +68 -0
  22. package/dist/components/data-list/internal/useDataListReorder.d.ts.map +1 -0
  23. package/dist/components/data-list/internal/useSearchHighlight.d.ts +19 -0
  24. package/dist/components/data-list/internal/useSearchHighlight.d.ts.map +1 -0
  25. package/dist/components/data-list/types.d.ts +185 -0
  26. package/dist/components/data-list/types.d.ts.map +1 -0
  27. package/dist/components/data-list/useDataListModel.d.ts +79 -0
  28. package/dist/components/data-list/useDataListModel.d.ts.map +1 -0
  29. package/dist/components/date-time/_shared/maskito-config.d.ts +7 -2
  30. package/dist/components/date-time/_shared/maskito-config.d.ts.map +1 -1
  31. package/dist/components/date-time/_shared/time-helpers.d.ts +11 -4
  32. package/dist/components/date-time/_shared/time-helpers.d.ts.map +1 -1
  33. package/dist/components/date-time/_shared/use-date-picker-base.d.ts +1 -1
  34. package/dist/components/date-time/plain-date-picker/CoarPlainDatePicker.vue.d.ts +1 -1
  35. package/dist/components/date-time/plain-date-picker/CoarPlainDatePicker.vue.d.ts.map +1 -1
  36. package/dist/components/date-time/plain-date-time-picker/CoarPlainDateTimePicker.vue.d.ts +1 -1
  37. package/dist/components/date-time/plain-date-time-picker/CoarPlainDateTimePicker.vue.d.ts.map +1 -1
  38. package/dist/components/date-time/zoned-date-time-picker/CoarZonedDateTimePicker.vue.d.ts +1 -1
  39. package/dist/components/date-time/zoned-date-time-picker/CoarZonedDateTimePicker.vue.d.ts.map +1 -1
  40. package/dist/components/dual-listbox/CoarDualListbox.vue.d.ts +3 -0
  41. package/dist/components/dual-listbox/CoarDualListbox.vue.d.ts.map +1 -1
  42. package/dist/components/form-field/CoarFormField.vue.d.ts +1 -1
  43. package/dist/components/form-field/CoarFormField.vue.d.ts.map +1 -1
  44. package/dist/components/icon/CoarIcon.vue.d.ts +2 -2
  45. package/dist/components/icon/CoarIcon.vue.d.ts.map +1 -1
  46. package/dist/components/listbox/CoarListbox.vue.d.ts +7 -0
  47. package/dist/components/listbox/CoarListbox.vue.d.ts.map +1 -1
  48. package/dist/components/number-input/CoarNumberInput.vue.d.ts +1 -1
  49. package/dist/components/number-input/CoarNumberInput.vue.d.ts.map +1 -1
  50. package/dist/components/otp-input/CoarOtpInput.vue.d.ts +1 -1
  51. package/dist/components/otp-input/CoarOtpInput.vue.d.ts.map +1 -1
  52. package/dist/components/password-input/CoarPasswordInput.vue.d.ts +1 -1
  53. package/dist/components/password-input/CoarPasswordInput.vue.d.ts.map +1 -1
  54. package/dist/components/switch/CoarSwitch.vue.d.ts +1 -1
  55. package/dist/components/switch/CoarSwitch.vue.d.ts.map +1 -1
  56. package/dist/components/text-input/CoarTextInput.vue.d.ts +1 -1
  57. package/dist/components/text-input/CoarTextInput.vue.d.ts.map +1 -1
  58. package/dist/composables/dragRegistry.d.ts +12 -0
  59. package/dist/composables/dragRegistry.d.ts.map +1 -1
  60. package/dist/composables/index.d.ts +2 -2
  61. package/dist/composables/index.d.ts.map +1 -1
  62. package/dist/composables/useDragDrop.d.ts +62 -6
  63. package/dist/composables/useDragDrop.d.ts.map +1 -1
  64. package/dist/composables/useVirtualList.d.ts +21 -1
  65. package/dist/composables/useVirtualList.d.ts.map +1 -1
  66. package/dist/index.css +1 -1
  67. package/dist/index.d.ts +4 -2
  68. package/dist/index.d.ts.map +1 -1
  69. package/dist/index.js +4508 -2039
  70. package/package.json +5 -3
  71. package/skills/cocoar-vue-ui/SKILL.md +244 -0
  72. package/skills/cocoar-vue-ui/references/components/avatar.md +178 -0
  73. package/skills/cocoar-vue-ui/references/components/badge.md +290 -0
  74. package/skills/cocoar-vue-ui/references/components/breadcrumb.md +238 -0
  75. package/skills/cocoar-vue-ui/references/components/button.md +252 -0
  76. package/skills/cocoar-vue-ui/references/components/calendar/agenda-view.md +353 -0
  77. package/skills/cocoar-vue-ui/references/components/calendar/coar-calendar.md +1645 -0
  78. package/skills/cocoar-vue-ui/references/components/calendar/day-view.md +361 -0
  79. package/skills/cocoar-vue-ui/references/components/calendar/index.md +312 -0
  80. package/skills/cocoar-vue-ui/references/components/calendar/month-view.md +475 -0
  81. package/skills/cocoar-vue-ui/references/components/calendar/performance.md +186 -0
  82. package/skills/cocoar-vue-ui/references/components/calendar/timeline-view.md +301 -0
  83. package/skills/cocoar-vue-ui/references/components/calendar/week-view.md +382 -0
  84. package/skills/cocoar-vue-ui/references/components/calendar/work-week-view.md +145 -0
  85. package/skills/cocoar-vue-ui/references/components/calendar/year-view.md +63 -0
  86. package/skills/cocoar-vue-ui/references/components/card.md +151 -0
  87. package/skills/cocoar-vue-ui/references/components/checkbox-group.md +103 -0
  88. package/skills/cocoar-vue-ui/references/components/checkbox.md +279 -0
  89. package/skills/cocoar-vue-ui/references/components/code-block.md +241 -0
  90. package/skills/cocoar-vue-ui/references/components/context-menu.md +355 -0
  91. package/skills/cocoar-vue-ui/references/components/data-grid/checkbox.md +213 -0
  92. package/skills/cocoar-vue-ui/references/components/data-grid/date-columns.md +272 -0
  93. package/skills/cocoar-vue-ui/references/components/data-grid/editing.md +236 -0
  94. package/skills/cocoar-vue-ui/references/components/data-grid/multi-select.md +193 -0
  95. package/skills/cocoar-vue-ui/references/components/data-grid/number.md +147 -0
  96. package/skills/cocoar-vue-ui/references/components/data-grid/select.md +202 -0
  97. package/skills/cocoar-vue-ui/references/components/data-grid/text.md +127 -0
  98. package/skills/cocoar-vue-ui/references/components/data-grid.md +1225 -0
  99. package/skills/cocoar-vue-ui/references/components/data-list.md +2121 -0
  100. package/skills/cocoar-vue-ui/references/components/date-or-time-picker.md +200 -0
  101. package/skills/cocoar-vue-ui/references/components/date-picker.md +203 -0
  102. package/skills/cocoar-vue-ui/references/components/date-time-picker.md +154 -0
  103. package/skills/cocoar-vue-ui/references/components/date-views.md +212 -0
  104. package/skills/cocoar-vue-ui/references/components/dialog.md +148 -0
  105. package/skills/cocoar-vue-ui/references/components/divider.md +157 -0
  106. package/skills/cocoar-vue-ui/references/components/document-viewer/annotations.md +400 -0
  107. package/skills/cocoar-vue-ui/references/components/document-viewer/coar-document-viewer.md +327 -0
  108. package/skills/cocoar-vue-ui/references/components/document-viewer/index.md +234 -0
  109. package/skills/cocoar-vue-ui/references/components/document-viewer/toolbar.md +221 -0
  110. package/skills/cocoar-vue-ui/references/components/drag-drop.md +267 -0
  111. package/skills/cocoar-vue-ui/references/components/dual-listbox.md +449 -0
  112. package/skills/cocoar-vue-ui/references/components/file-explorer/asset-store.md +327 -0
  113. package/skills/cocoar-vue-ui/references/components/file-explorer/in-memory-store.md +176 -0
  114. package/skills/cocoar-vue-ui/references/components/file-explorer/index.md +311 -0
  115. package/skills/cocoar-vue-ui/references/components/file-explorer/use-file-explorer.md +300 -0
  116. package/skills/cocoar-vue-ui/references/components/form-field.md +1025 -0
  117. package/skills/cocoar-vue-ui/references/components/fragment-parser.md +298 -0
  118. package/skills/cocoar-vue-ui/references/components/link.md +235 -0
  119. package/skills/cocoar-vue-ui/references/components/listbox.md +575 -0
  120. package/skills/cocoar-vue-ui/references/components/map/editor.md +448 -0
  121. package/skills/cocoar-vue-ui/references/components/map/index.md +351 -0
  122. package/skills/cocoar-vue-ui/references/components/markdown-diagrams.md +210 -0
  123. package/skills/cocoar-vue-ui/references/components/markdown-editor.md +1478 -0
  124. package/skills/cocoar-vue-ui/references/components/markdown-embeds.md +387 -0
  125. package/skills/cocoar-vue-ui/references/components/markdown-form.md +447 -0
  126. package/skills/cocoar-vue-ui/references/components/markdown.md +276 -0
  127. package/skills/cocoar-vue-ui/references/components/menu.md +380 -0
  128. package/skills/cocoar-vue-ui/references/components/mermaid.md +172 -0
  129. package/skills/cocoar-vue-ui/references/components/navbar.md +147 -0
  130. package/skills/cocoar-vue-ui/references/components/note.md +96 -0
  131. package/skills/cocoar-vue-ui/references/components/notice.md +131 -0
  132. package/skills/cocoar-vue-ui/references/components/number-input.md +215 -0
  133. package/skills/cocoar-vue-ui/references/components/otp-input.md +324 -0
  134. package/skills/cocoar-vue-ui/references/components/page-builder/authoring-contract.md +271 -0
  135. package/skills/cocoar-vue-ui/references/components/page-builder/coar-page-builder.md +476 -0
  136. package/skills/cocoar-vue-ui/references/components/page-builder/coar-page-renderer.md +677 -0
  137. package/skills/cocoar-vue-ui/references/components/page-builder/custom-elements.md +441 -0
  138. package/skills/cocoar-vue-ui/references/components/page-builder/idp-integration.md +122 -0
  139. package/skills/cocoar-vue-ui/references/components/page-builder/index.md +573 -0
  140. package/skills/cocoar-vue-ui/references/components/pagination.md +150 -0
  141. package/skills/cocoar-vue-ui/references/components/panel-layout.md +372 -0
  142. package/skills/cocoar-vue-ui/references/components/password-input.md +175 -0
  143. package/skills/cocoar-vue-ui/references/components/popconfirm.md +186 -0
  144. package/skills/cocoar-vue-ui/references/components/popover.md +173 -0
  145. package/skills/cocoar-vue-ui/references/components/progress-bar.md +178 -0
  146. package/skills/cocoar-vue-ui/references/components/radio-group.md +225 -0
  147. package/skills/cocoar-vue-ui/references/components/script-editor.md +1271 -0
  148. package/skills/cocoar-vue-ui/references/components/segmented-control.md +238 -0
  149. package/skills/cocoar-vue-ui/references/components/select.md +463 -0
  150. package/skills/cocoar-vue-ui/references/components/sidebar.md +421 -0
  151. package/skills/cocoar-vue-ui/references/components/spinner.md +132 -0
  152. package/skills/cocoar-vue-ui/references/components/switch.md +195 -0
  153. package/skills/cocoar-vue-ui/references/components/table.md +170 -0
  154. package/skills/cocoar-vue-ui/references/components/tabs.md +382 -0
  155. package/skills/cocoar-vue-ui/references/components/tag.md +178 -0
  156. package/skills/cocoar-vue-ui/references/components/text-input.md +256 -0
  157. package/skills/cocoar-vue-ui/references/components/toast.md +160 -0
  158. package/skills/cocoar-vue-ui/references/components/tooltip.md +121 -0
  159. package/skills/cocoar-vue-ui/references/components/transitions.md +193 -0
  160. package/skills/cocoar-vue-ui/references/components/tree.md +2388 -0
  161. package/skills/cocoar-vue-ui/references/components/virtual-list.md +212 -0
  162. package/skills/cocoar-vue-ui/references/components/wizard.md +251 -0
  163. package/skills/cocoar-vue-ui/references/components/zoned-date-time-picker.md +177 -0
  164. package/skills/cocoar-vue-ui/references/foundations/colors.md +708 -0
  165. package/skills/cocoar-vue-ui/references/foundations/design-principles.md +115 -0
  166. package/skills/cocoar-vue-ui/references/foundations/icons.md +381 -0
  167. package/skills/cocoar-vue-ui/references/foundations/localization/formatting.md +530 -0
  168. package/skills/cocoar-vue-ui/references/foundations/localization/setup.md +86 -0
  169. package/skills/cocoar-vue-ui/references/foundations/localization/timezones.md +182 -0
  170. package/skills/cocoar-vue-ui/references/foundations/localization/translations.md +305 -0
  171. package/skills/cocoar-vue-ui/references/foundations/motion.md +549 -0
  172. package/skills/cocoar-vue-ui/references/foundations/spacing.md +330 -0
  173. package/skills/cocoar-vue-ui/references/foundations/theming.md +140 -0
  174. package/skills/cocoar-vue-ui/references/foundations/typography.md +206 -0
  175. package/skills/cocoar-vue-ui/references/guide/error-handling.md +162 -0
  176. package/skills/cocoar-vue-ui/references/guide/getting-started.md +119 -0
  177. package/skills/cocoar-vue-ui/references/guide/migration-page-builder-3.md +207 -0
  178. package/skills/cocoar-vue-ui/references/guide/migration.md +140 -0
  179. package/skills/cocoar-vue-ui/references/guide/theming.md +98 -0
@@ -0,0 +1,225 @@
1
+ <!-- Generated from apps/docs/components/radio-group.md by apps/docs/scripts/sync-skill.mjs. Do not edit; edit the docs page. -->
2
+
3
+ # Radio Group
4
+
5
+ When users must pick exactly one option from a small set of mutually exclusive choices, a radio group is the right tool. Each option is visible at a glance, unlike a select dropdown, which makes radios ideal when the list is short (roughly 2--5 items).
6
+
7
+ ```ts
8
+ import { CoarRadioGroup, CoarRadioButton } from '@cocoar/vue-ui';
9
+ ```
10
+
11
+ ## Horizontal
12
+
13
+ Switch to `orientation="horizontal"` when labels are short and there are only a few choices.
14
+
15
+ **Demo — `radio-group/demos/RadioGroupHorizontal.vue`**
16
+
17
+ ```vue
18
+ <template>
19
+ <div style="display: flex; flex-direction: column; gap: 12px;">
20
+ <CoarRadioGroup v-model="size" name="button-size" label="Button Size" orientation="horizontal">
21
+ <CoarRadioButton value="xs">XS</CoarRadioButton>
22
+ <CoarRadioButton value="s">S</CoarRadioButton>
23
+ <CoarRadioButton value="m">M</CoarRadioButton>
24
+ <CoarRadioButton value="l">L</CoarRadioButton>
25
+ </CoarRadioGroup>
26
+ <span style="font-size: 13px; color: #64748b;">Selected: {{ size }}</span>
27
+ </div>
28
+ </template>
29
+
30
+ <script setup lang="ts">
31
+ import { ref } from 'vue';
32
+ import { CoarRadioGroup, CoarRadioButton } from '@cocoar/vue-ui';
33
+
34
+ const size = ref('m');
35
+ </script>
36
+ ```
37
+
38
+ ## Vertical (Default)
39
+
40
+ The default vertical layout stacks options for easy scanning -- works well with longer labels or more than 4 choices.
41
+
42
+ **Demo — `radio-group/demos/RadioGroupVertical.vue`**
43
+
44
+ ```vue
45
+ <template>
46
+ <div style="display: flex; flex-direction: column; gap: 12px;">
47
+ <CoarRadioGroup v-model="color" name="preferred-color" label="Preferred Color">
48
+ <CoarRadioButton value="red">Red — Passionate and energetic</CoarRadioButton>
49
+ <CoarRadioButton value="blue">Blue — Calm and trustworthy</CoarRadioButton>
50
+ <CoarRadioButton value="green">Green — Fresh and natural</CoarRadioButton>
51
+ <CoarRadioButton value="purple">Purple — Creative and luxurious</CoarRadioButton>
52
+ </CoarRadioGroup>
53
+ <span style="font-size: 13px; color: #64748b;">Selected: {{ color || 'none' }}</span>
54
+ </div>
55
+ </template>
56
+
57
+ <script setup lang="ts">
58
+ import { ref } from 'vue';
59
+ import { CoarRadioGroup, CoarRadioButton } from '@cocoar/vue-ui';
60
+
61
+ const color = ref('');
62
+ </script>
63
+ ```
64
+
65
+ ## States
66
+
67
+ Mark the group as `required` to show an asterisk. Wrap in `CoarFormField` to display validation messages.
68
+
69
+ **Demo — `radio-group/demos/RadioGroupStates.vue`**
70
+
71
+ ```vue
72
+ <template>
73
+ <div style="display: flex; flex-direction: column; gap: 16px;">
74
+ <CoarRadioGroup :model-value="'a'" name="required-group" label="Required Group" :required="true">
75
+ <CoarRadioButton value="a">Option A</CoarRadioButton>
76
+ <CoarRadioButton value="b">Option B</CoarRadioButton>
77
+ </CoarRadioGroup>
78
+ <CoarFormField error="Please select an option">
79
+ <CoarRadioGroup :model-value="''" name="with-error" label="With Error">
80
+ <CoarRadioButton value="a">Option A</CoarRadioButton>
81
+ <CoarRadioButton value="b">Option B</CoarRadioButton>
82
+ </CoarRadioGroup>
83
+ </CoarFormField>
84
+ </div>
85
+ </template>
86
+
87
+ <script setup lang="ts">
88
+ import { CoarRadioGroup, CoarRadioButton, CoarFormField } from '@cocoar/vue-ui';
89
+ </script>
90
+ ```
91
+
92
+ ## Label Position
93
+
94
+ Place the label text before or after the radio control with the `labelPosition` prop on the group. All radio buttons inherit the setting.
95
+
96
+ **Demo — `radio-group/demos/RadioGroupLabelPosition.vue`**
97
+
98
+ ```vue
99
+ <template>
100
+ <div style="display: flex; gap: 48px;">
101
+ <CoarRadioGroup v-model="a" name="pos-after" label="Label after (default)">
102
+ <CoarRadioButton value="email">Email</CoarRadioButton>
103
+ <CoarRadioButton value="sms">SMS</CoarRadioButton>
104
+ <CoarRadioButton value="push">Push</CoarRadioButton>
105
+ </CoarRadioGroup>
106
+
107
+ <CoarRadioGroup v-model="b" name="pos-before" label="Label before" label-position="before">
108
+ <CoarRadioButton value="email">Email</CoarRadioButton>
109
+ <CoarRadioButton value="sms">SMS</CoarRadioButton>
110
+ <CoarRadioButton value="push">Push</CoarRadioButton>
111
+ </CoarRadioGroup>
112
+ </div>
113
+ </template>
114
+
115
+ <script setup lang="ts">
116
+ import { ref } from 'vue';
117
+ import { CoarRadioGroup, CoarRadioButton } from '@cocoar/vue-ui';
118
+
119
+ const a = ref('email');
120
+ const b = ref('email');
121
+ </script>
122
+ ```
123
+
124
+ ## Disabled Buttons
125
+
126
+ Individual `CoarRadioButton` options can be disabled while the rest of the group stays interactive -- useful for temporarily unavailable plans or tiers.
127
+
128
+ **Demo — `radio-group/demos/RadioGroupDisabled.vue`**
129
+
130
+ ```vue
131
+ <template>
132
+ <div>
133
+ <CoarRadioGroup v-model="plan" name="plan" label="Plan">
134
+ <CoarRadioButton value="free">Free</CoarRadioButton>
135
+ <CoarRadioButton value="pro">Pro</CoarRadioButton>
136
+ <CoarRadioButton value="enterprise" :disabled="true">Enterprise (Coming Soon)</CoarRadioButton>
137
+ </CoarRadioGroup>
138
+ </div>
139
+ </template>
140
+
141
+ <script setup lang="ts">
142
+ import { ref } from 'vue';
143
+ import { CoarRadioGroup, CoarRadioButton } from '@cocoar/vue-ui';
144
+
145
+ const plan = ref('free');
146
+ </script>
147
+ ```
148
+
149
+ ## Sizes
150
+
151
+ Four sizes that stay in step with every other Cocoar form control.
152
+
153
+ **Demo — `radio-group/demos/RadioGroupSizes.vue`**
154
+
155
+ ```vue
156
+ <template>
157
+ <div style="display: flex; flex-direction: column; gap: 16px;">
158
+ <CoarRadioGroup :model-value="'a'" name="size-xs" label="Extra-small" size="xs">
159
+ <CoarRadioButton value="a">Option A</CoarRadioButton>
160
+ <CoarRadioButton value="b">Option B</CoarRadioButton>
161
+ </CoarRadioGroup>
162
+ <CoarRadioGroup :model-value="'a'" name="size-s" label="Small" size="s">
163
+ <CoarRadioButton value="a">Option A</CoarRadioButton>
164
+ <CoarRadioButton value="b">Option B</CoarRadioButton>
165
+ </CoarRadioGroup>
166
+ <CoarRadioGroup :model-value="'a'" name="size-m" label="Medium (default)" size="m">
167
+ <CoarRadioButton value="a">Option A</CoarRadioButton>
168
+ <CoarRadioButton value="b">Option B</CoarRadioButton>
169
+ </CoarRadioGroup>
170
+ <CoarRadioGroup :model-value="'a'" name="size-l" label="Large" size="l">
171
+ <CoarRadioButton value="a">Option A</CoarRadioButton>
172
+ <CoarRadioButton value="b">Option B</CoarRadioButton>
173
+ </CoarRadioGroup>
174
+ </div>
175
+ </template>
176
+
177
+ <script setup lang="ts">
178
+ import { CoarRadioGroup, CoarRadioButton } from '@cocoar/vue-ui';
179
+ </script>
180
+ ```
181
+
182
+ ## Accessibility
183
+
184
+ ### Keyboard Navigation
185
+
186
+ | Key | Action |
187
+ |-----|--------|
188
+ | `Tab` | Move focus into / out of radio group |
189
+ | `Arrow Left` / `Arrow Up` | Select previous option |
190
+ | `Arrow Right` / `Arrow Down` | Select next option |
191
+ | `Space` | Select focused option |
192
+
193
+ > **Info**
194
+ >
195
+ > Only one radio button in a group receives tab focus. Arrow keys move selection between options within the group.
196
+
197
+ ### Screen Reader Support
198
+
199
+ - Group label announced when entering the group
200
+ - Each option's label announces on focus
201
+ - Selected state properly communicated
202
+ - Disabled options announced as unavailable
203
+
204
+ ## API
205
+
206
+ ### CoarRadioGroup Props
207
+
208
+ | Prop | Type | Default | Description |
209
+ |------|------|---------|-------------|
210
+ | `v-model` | `unknown` | `undefined` | Currently selected value |
211
+ | `name` | `string` | — | **Required.** HTML name for the radio inputs |
212
+ | `label` | `string` | `''` | Group accessible label |
213
+ | `orientation` | `'horizontal' \| 'vertical'` | `'vertical'` | Layout direction |
214
+ | `size` | `'xs' \| 's' \| 'm' \| 'l'` | `'m'` | Radio button size |
215
+ | `labelPosition` | `'before' \| 'after'` | `'after'` | Label position for all radio buttons |
216
+ | `disabled` | `boolean` | `false` | Disable all radio buttons |
217
+ | `required` | `boolean` | `false` | Mark as required |
218
+ | `error` | `boolean` | `false` | Error state (auto-injected from `CoarFormField`) |
219
+
220
+ ### CoarRadioButton Props
221
+
222
+ | Prop | Type | Default | Description |
223
+ |------|------|---------|-------------|
224
+ | `value` | `unknown` | -- | Value emitted when selected |
225
+ | `disabled` | `boolean` | `false` | Disable this option |