@vonage/vivid 3.1.0 → 3.1.2

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 (73) hide show
  1. package/README.md +2 -2
  2. package/custom-elements.json +0 -8
  3. package/data-grid/index.js +2 -2
  4. package/index.js +18 -16
  5. package/lib/components.d.ts +1 -0
  6. package/number-field/index.js +18 -448
  7. package/package.json +4 -4
  8. package/progress/index.js +1 -1
  9. package/progress-ring/index.js +1 -1
  10. package/radio/index.js +1 -1
  11. package/radio-group/index.js +2 -1
  12. package/select/index.js +1 -1
  13. package/shared/aria2.js +9 -0
  14. package/shared/definition.js +1 -1
  15. package/shared/definition11.js +1 -1
  16. package/shared/definition12.js +44 -35
  17. package/shared/definition13.js +1 -1
  18. package/shared/definition14.js +1 -1
  19. package/shared/definition16.js +1 -1
  20. package/shared/definition17.js +1 -1
  21. package/shared/definition18.js +589 -527
  22. package/shared/definition19.js +1 -1
  23. package/shared/definition2.js +1 -1
  24. package/shared/definition20.js +24 -28
  25. package/shared/definition21.js +1 -1
  26. package/shared/definition22.js +1 -1
  27. package/shared/definition23.js +1 -1
  28. package/shared/definition25.js +1 -1
  29. package/shared/definition27.js +1 -1
  30. package/shared/definition29.js +1 -1
  31. package/shared/definition30.js +1 -1
  32. package/shared/definition31.js +1 -1
  33. package/shared/definition32.js +432 -76
  34. package/shared/definition33.js +76 -59
  35. package/shared/definition34.js +67 -35
  36. package/shared/definition35.js +31 -421
  37. package/shared/definition36.js +357 -555
  38. package/shared/definition37.js +618 -70
  39. package/shared/definition38.js +70 -572
  40. package/shared/definition39.js +527 -81
  41. package/shared/definition4.js +1 -1
  42. package/shared/definition40.js +127 -47
  43. package/shared/definition41.js +51 -16
  44. package/shared/definition42.js +17 -425
  45. package/shared/definition43.js +367 -209
  46. package/shared/definition44.js +248 -85
  47. package/shared/definition45.js +110 -68
  48. package/shared/definition46.js +77 -0
  49. package/shared/definition5.js +1 -1
  50. package/shared/definition6.js +1 -1
  51. package/shared/definition7.js +1 -1
  52. package/shared/definition8.js +1 -1
  53. package/shared/definition9.js +1 -1
  54. package/shared/form-elements.js +1 -1
  55. package/shared/icon.js +18 -6
  56. package/shared/index.js +10 -19
  57. package/shared/patterns/form-elements/form-elements.d.ts +2 -2
  58. package/shared/text-field.js +1 -1
  59. package/side-drawer/index.js +1 -1
  60. package/slider/index.js +2 -1
  61. package/styles/core/all.css +1 -1
  62. package/styles/core/theme.css +1 -1
  63. package/styles/core/typography.css +1 -1
  64. package/styles/tokens/theme-dark.css +4 -4
  65. package/styles/tokens/theme-light.css +4 -4
  66. package/switch/index.js +1 -1
  67. package/tab/index.js +1 -1
  68. package/tab-panel/index.js +1 -1
  69. package/tabs/index.js +3 -3
  70. package/text-area/index.js +1 -1
  71. package/text-field/index.js +1 -1
  72. package/tooltip/index.js +1 -1
  73. package/vivid.api.json +164 -0
@@ -1,435 +1,45 @@
1
- import { F as FoundationElement, _ as __decorate, a as attr, o as observable, b as __metadata, h as html, r as registerFactory } from './index.js';
2
- import { D as Direction, g as getDirection } from './direction.js';
3
- import { h as keyArrowRight, i as keyArrowLeft, A as ArrowKeys, c as keyArrowUp, b as keyArrowDown, d as keyEnter } from './key-codes.js';
4
- import { O as Orientation } from './aria.js';
1
+ import { h as html, r as registerFactory } from './index.js';
2
+ import { f as focusRegistries } from './definition4.js';
5
3
  import { R as Radio } from './radio.js';
6
- import { s as slotted, e as elements } from './slotted.js';
4
+ import { f as focusTemplateFactory } from './focus2.js';
7
5
  import { w as when } from './when.js';
6
+ import { c as classNames } from './class-names.js';
8
7
 
9
- /**
10
- * An Radio Group Custom HTML Element.
11
- * Implements the {@link https://www.w3.org/TR/wai-aria-1.1/#radiogroup | ARIA radiogroup }.
12
- *
13
- * @slot label - The slot for the label
14
- * @slot - The default slot for radio buttons
15
- * @csspart positioning-region - The positioning region for laying out the radios
16
- * @fires change - Fires a custom 'change' event when the value changes
17
- *
18
- * @public
19
- */
20
- class RadioGroup$1 extends FoundationElement {
21
- constructor() {
22
- super(...arguments);
23
- /**
24
- * The orientation of the group
25
- *
26
- * @public
27
- * @remarks
28
- * HTML Attribute: orientation
29
- */
30
- this.orientation = Orientation.horizontal;
31
- this.radioChangeHandler = (e) => {
32
- const changedRadio = e.target;
33
- if (changedRadio.checked) {
34
- this.slottedRadioButtons.forEach((radio) => {
35
- if (radio !== changedRadio) {
36
- radio.checked = false;
37
- if (!this.isInsideFoundationToolbar) {
38
- radio.setAttribute("tabindex", "-1");
39
- }
40
- }
41
- });
42
- this.selectedRadio = changedRadio;
43
- this.value = changedRadio.value;
44
- changedRadio.setAttribute("tabindex", "0");
45
- this.focusedRadio = changedRadio;
46
- }
47
- e.stopPropagation();
48
- };
49
- this.moveToRadioByIndex = (group, index) => {
50
- const radio = group[index];
51
- if (!this.isInsideToolbar) {
52
- radio.setAttribute("tabindex", "0");
53
- if (radio.readOnly) {
54
- this.slottedRadioButtons.forEach((nextRadio) => {
55
- if (nextRadio !== radio) {
56
- nextRadio.setAttribute("tabindex", "-1");
57
- }
58
- });
59
- }
60
- else {
61
- radio.checked = true;
62
- this.selectedRadio = radio;
63
- }
64
- }
65
- this.focusedRadio = radio;
66
- radio.focus();
67
- };
68
- this.moveRightOffGroup = () => {
69
- var _a;
70
- (_a = this.nextElementSibling) === null || _a === void 0 ? void 0 : _a.focus();
71
- };
72
- this.moveLeftOffGroup = () => {
73
- var _a;
74
- (_a = this.previousElementSibling) === null || _a === void 0 ? void 0 : _a.focus();
75
- };
76
- /**
77
- * @internal
78
- */
79
- this.focusOutHandler = (e) => {
80
- const group = this.slottedRadioButtons;
81
- const radio = e.target;
82
- const index = radio !== null ? group.indexOf(radio) : 0;
83
- const focusedIndex = this.focusedRadio
84
- ? group.indexOf(this.focusedRadio)
85
- : -1;
86
- if ((focusedIndex === 0 && index === focusedIndex) ||
87
- (focusedIndex === group.length - 1 && focusedIndex === index)) {
88
- if (!this.selectedRadio) {
89
- this.focusedRadio = group[0];
90
- this.focusedRadio.setAttribute("tabindex", "0");
91
- group.forEach((nextRadio) => {
92
- if (nextRadio !== this.focusedRadio) {
93
- nextRadio.setAttribute("tabindex", "-1");
94
- }
95
- });
96
- }
97
- else {
98
- this.focusedRadio = this.selectedRadio;
99
- if (!this.isInsideFoundationToolbar) {
100
- this.selectedRadio.setAttribute("tabindex", "0");
101
- group.forEach((nextRadio) => {
102
- if (nextRadio !== this.selectedRadio) {
103
- nextRadio.setAttribute("tabindex", "-1");
104
- }
105
- });
106
- }
107
- }
108
- }
109
- return true;
110
- };
111
- /**
112
- * @internal
113
- */
114
- this.clickHandler = (e) => {
115
- const radio = e.target;
116
- if (radio) {
117
- const group = this.slottedRadioButtons;
118
- if (radio.checked || group.indexOf(radio) === 0) {
119
- radio.setAttribute("tabindex", "0");
120
- this.selectedRadio = radio;
121
- }
122
- else {
123
- radio.setAttribute("tabindex", "-1");
124
- this.selectedRadio = null;
125
- }
126
- this.focusedRadio = radio;
127
- }
128
- e.preventDefault();
129
- };
130
- this.shouldMoveOffGroupToTheRight = (index, group, key) => {
131
- return index === group.length && this.isInsideToolbar && key === keyArrowRight;
132
- };
133
- this.shouldMoveOffGroupToTheLeft = (group, key) => {
134
- const index = this.focusedRadio ? group.indexOf(this.focusedRadio) - 1 : 0;
135
- return index < 0 && this.isInsideToolbar && key === keyArrowLeft;
136
- };
137
- this.checkFocusedRadio = () => {
138
- if (this.focusedRadio !== null &&
139
- !this.focusedRadio.readOnly &&
140
- !this.focusedRadio.checked) {
141
- this.focusedRadio.checked = true;
142
- this.focusedRadio.setAttribute("tabindex", "0");
143
- this.focusedRadio.focus();
144
- this.selectedRadio = this.focusedRadio;
145
- }
146
- };
147
- this.moveRight = (e) => {
148
- const group = this.slottedRadioButtons;
149
- let index = 0;
150
- index = this.focusedRadio ? group.indexOf(this.focusedRadio) + 1 : 1;
151
- if (this.shouldMoveOffGroupToTheRight(index, group, e.key)) {
152
- this.moveRightOffGroup();
153
- return;
154
- }
155
- else if (index === group.length) {
156
- index = 0;
157
- }
158
- /* looping to get to next radio that is not disabled */
159
- /* matching native radio/radiogroup which does not select an item if there is only 1 in the group */
160
- while (index < group.length && group.length > 1) {
161
- if (!group[index].disabled) {
162
- this.moveToRadioByIndex(group, index);
163
- break;
164
- }
165
- else if (this.focusedRadio && index === group.indexOf(this.focusedRadio)) {
166
- break;
167
- }
168
- else if (index + 1 >= group.length) {
169
- if (this.isInsideToolbar) {
170
- break;
171
- }
172
- else {
173
- index = 0;
174
- }
175
- }
176
- else {
177
- index += 1;
178
- }
179
- }
180
- };
181
- this.moveLeft = (e) => {
182
- const group = this.slottedRadioButtons;
183
- let index = 0;
184
- index = this.focusedRadio ? group.indexOf(this.focusedRadio) - 1 : 0;
185
- index = index < 0 ? group.length - 1 : index;
186
- if (this.shouldMoveOffGroupToTheLeft(group, e.key)) {
187
- this.moveLeftOffGroup();
188
- return;
189
- }
190
- /* looping to get to next radio that is not disabled */
191
- while (index >= 0 && group.length > 1) {
192
- if (!group[index].disabled) {
193
- this.moveToRadioByIndex(group, index);
194
- break;
195
- }
196
- else if (this.focusedRadio && index === group.indexOf(this.focusedRadio)) {
197
- break;
198
- }
199
- else if (index - 1 < 0) {
200
- index = group.length - 1;
201
- }
202
- else {
203
- index -= 1;
204
- }
205
- }
206
- };
207
- /**
208
- * keyboard handling per https://w3c.github.io/aria-practices/#for-radio-groups-not-contained-in-a-toolbar
209
- * navigation is different when there is an ancestor with role='toolbar'
210
- *
211
- * @internal
212
- */
213
- this.keydownHandler = (e) => {
214
- const key = e.key;
215
- if (key in ArrowKeys && this.isInsideFoundationToolbar) {
216
- return true;
217
- }
218
- switch (key) {
219
- case keyEnter: {
220
- this.checkFocusedRadio();
221
- break;
222
- }
223
- case keyArrowRight:
224
- case keyArrowDown: {
225
- if (this.direction === Direction.ltr) {
226
- this.moveRight(e);
227
- }
228
- else {
229
- this.moveLeft(e);
230
- }
231
- break;
232
- }
233
- case keyArrowLeft:
234
- case keyArrowUp: {
235
- if (this.direction === Direction.ltr) {
236
- this.moveLeft(e);
237
- }
238
- else {
239
- this.moveRight(e);
240
- }
241
- break;
242
- }
243
- default: {
244
- return true;
245
- }
246
- }
247
- };
248
- }
249
- readOnlyChanged() {
250
- if (this.slottedRadioButtons !== undefined) {
251
- this.slottedRadioButtons.forEach((radio) => {
252
- if (this.readOnly) {
253
- radio.readOnly = true;
254
- }
255
- else {
256
- radio.readOnly = false;
257
- }
258
- });
259
- }
260
- }
261
- disabledChanged() {
262
- if (this.slottedRadioButtons !== undefined) {
263
- this.slottedRadioButtons.forEach((radio) => {
264
- if (this.disabled) {
265
- radio.disabled = true;
266
- }
267
- else {
268
- radio.disabled = false;
269
- }
270
- });
271
- }
272
- }
273
- nameChanged() {
274
- if (this.slottedRadioButtons) {
275
- this.slottedRadioButtons.forEach((radio) => {
276
- radio.setAttribute("name", this.name);
277
- });
278
- }
279
- }
280
- valueChanged() {
281
- if (this.slottedRadioButtons) {
282
- this.slottedRadioButtons.forEach((radio) => {
283
- if (radio.value === this.value) {
284
- radio.checked = true;
285
- this.selectedRadio = radio;
286
- }
287
- });
288
- }
289
- this.$emit("change");
290
- }
291
- slottedRadioButtonsChanged(oldValue, newValue) {
292
- if (this.slottedRadioButtons && this.slottedRadioButtons.length > 0) {
293
- this.setupRadioButtons();
294
- }
295
- }
296
- get parentToolbar() {
297
- return this.closest('[role="toolbar"]');
298
- }
299
- get isInsideToolbar() {
300
- var _a;
301
- return ((_a = this.parentToolbar) !== null && _a !== void 0 ? _a : false);
302
- }
303
- get isInsideFoundationToolbar() {
304
- var _a;
305
- return !!((_a = this.parentToolbar) === null || _a === void 0 ? void 0 : _a["$fastController"]);
306
- }
307
- /**
308
- * @internal
309
- */
310
- connectedCallback() {
311
- super.connectedCallback();
312
- this.direction = getDirection(this);
313
- this.setupRadioButtons();
314
- }
315
- disconnectedCallback() {
316
- this.slottedRadioButtons.forEach((radio) => {
317
- radio.removeEventListener("change", this.radioChangeHandler);
318
- });
319
- }
320
- setupRadioButtons() {
321
- const checkedRadios = this.slottedRadioButtons.filter((radio) => {
322
- return radio.hasAttribute("checked");
323
- });
324
- const numberOfCheckedRadios = checkedRadios ? checkedRadios.length : 0;
325
- if (numberOfCheckedRadios > 1) {
326
- const lastCheckedRadio = checkedRadios[numberOfCheckedRadios - 1];
327
- lastCheckedRadio.checked = true;
328
- }
329
- let foundMatchingVal = false;
330
- this.slottedRadioButtons.forEach((radio) => {
331
- if (this.name !== undefined) {
332
- radio.setAttribute("name", this.name);
333
- }
334
- if (this.disabled) {
335
- radio.disabled = true;
336
- }
337
- if (this.readOnly) {
338
- radio.readOnly = true;
339
- }
340
- if (this.value && this.value === radio.value) {
341
- this.selectedRadio = radio;
342
- this.focusedRadio = radio;
343
- radio.checked = true;
344
- radio.setAttribute("tabindex", "0");
345
- foundMatchingVal = true;
346
- }
347
- else {
348
- if (!this.isInsideFoundationToolbar) {
349
- radio.setAttribute("tabindex", "-1");
350
- }
351
- radio.checked = false;
352
- }
353
- radio.addEventListener("change", this.radioChangeHandler);
354
- });
355
- if (this.value === undefined && this.slottedRadioButtons.length > 0) {
356
- const checkedRadios = this.slottedRadioButtons.filter((radio) => {
357
- return radio.hasAttribute("checked");
358
- });
359
- const numberOfCheckedRadios = checkedRadios !== null ? checkedRadios.length : 0;
360
- if (numberOfCheckedRadios > 0 && !foundMatchingVal) {
361
- const lastCheckedRadio = checkedRadios[numberOfCheckedRadios - 1];
362
- lastCheckedRadio.checked = true;
363
- this.focusedRadio = lastCheckedRadio;
364
- lastCheckedRadio.setAttribute("tabindex", "0");
365
- }
366
- else {
367
- this.slottedRadioButtons[0].setAttribute("tabindex", "0");
368
- this.focusedRadio = this.slottedRadioButtons[0];
369
- }
370
- }
371
- }
372
- }
373
- __decorate([
374
- attr({ attribute: "readonly", mode: "boolean" })
375
- ], RadioGroup$1.prototype, "readOnly", void 0);
376
- __decorate([
377
- attr({ attribute: "disabled", mode: "boolean" })
378
- ], RadioGroup$1.prototype, "disabled", void 0);
379
- __decorate([
380
- attr
381
- ], RadioGroup$1.prototype, "name", void 0);
382
- __decorate([
383
- attr
384
- ], RadioGroup$1.prototype, "value", void 0);
385
- __decorate([
386
- attr
387
- ], RadioGroup$1.prototype, "orientation", void 0);
388
- __decorate([
389
- observable
390
- ], RadioGroup$1.prototype, "childItems", void 0);
391
- __decorate([
392
- observable
393
- ], RadioGroup$1.prototype, "slottedRadioButtons", void 0);
394
-
395
- var css_248z = "/**\n * Do not edit directly\n * Generated on Fri, 03 Feb 2023 15:57:56 GMT\n */\n.positioning-region {\n display: flex;\n flex-wrap: wrap;\n gap: 8px;\n}\n.positioning-region.vertical {\n flex-direction: column;\n}\nlabel + .positioning-region {\n margin-block-start: 8px;\n}\n\nlabel {\n color: var(--vvd-color-canvas-text);\n font: var(--vvd-typography-base);\n}";
396
-
397
- class RadioGroup extends RadioGroup$1 {}
398
- __decorate([attr, __metadata("design:type", String)], RadioGroup.prototype, "label", void 0);
8
+ var css_248z = "/**\n * Do not edit directly\n * Generated on Wed, 15 Feb 2023 11:31:49 GMT\n */\n@supports selector(:focus-visible) {\n :host(:focus) {\n outline: none;\n }\n}\n.base {\n display: inline-flex;\n align-items: center;\n cursor: pointer;\n gap: 8px;\n}\n.base {\n --_connotation-color-primary: var(--vvd-color-canvas-text);\n --_connotation-color-firm: var(--vvd-color-canvas-text);\n --_connotation-color-faint: var(--vvd-color-neutral-50);\n --_connotation-color-soft: var(--vvd-color-neutral-100);\n}\n.base {\n --_appearance-color-text: var(--_connotation-color-firm);\n --_appearance-color-fill: transparent;\n --_appearance-color-outline: var(--_connotation-color-firm);\n}\n.base:where(:hover, .hover):where(:not(:disabled, .disabled, .readonly)) {\n --_appearance-color-text: var(--_connotation-color-firm);\n --_appearance-color-fill: var(--_connotation-color-faint);\n --_appearance-color-outline: var(--_connotation-color-firm);\n}\n.base:where(:active, .active):where(:not(:disabled, .disabled)) {\n --_appearance-color-text: var(--_connotation-color-firm);\n --_appearance-color-fill: var(--_connotation-color-soft);\n --_appearance-color-outline: var(--_connotation-color-firm);\n}\n.base:where(:checked, .checked):where(:not(:disabled, .disabled)) {\n --_appearance-color-text: var(--_connotation-color-primary);\n --_appearance-color-fill: transparent;\n --_appearance-color-outline: var(--_connotation-color-primary);\n}\n.base:where(:checked, .checked):where(:hover, .hover) {\n --_appearance-color-text: var(--_connotation-color-primary);\n --_appearance-color-fill: var(--_connotation-color-faint);\n --_appearance-color-outline: var(--_connotation-color-primary);\n}\n.base:where(:disabled, .disabled) {\n --_appearance-color-text: var(--vvd-color-neutral-400);\n --_appearance-color-fill: transparent;\n --_appearance-color-outline: var(--vvd-color-neutral-400);\n}\n.base:where(.readonly):where(:not(:disabled, .disabled)) {\n --_appearance-color-text: var(--vvd-color-neutral-400);\n --_appearance-color-fill: transparent;\n --_appearance-color-outline: var(--vvd-color-neutral-400);\n}\n@supports (user-select: none) {\n .base {\n user-select: none;\n }\n}\n.base.disabled {\n cursor: not-allowed;\n pointer-events: none;\n}\n\n.control {\n position: relative;\n flex-shrink: 0;\n background-color: var(--_appearance-color-fill);\n block-size: calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density, 0), 2) - 20));\n border-radius: 50%;\n box-shadow: inset 0 0 0 2px var(--_appearance-color-outline);\n inline-size: calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density, 0), 2) - 20));\n}\n.control::after {\n position: absolute;\n background-color: var(--_appearance-color-text);\n border-radius: inherit;\n content: \"\";\n inset: 5px;\n}\n.base:not(.checked) .control::after {\n display: none;\n}\n\nlabel {\n color: var(--vvd-color-canvas-text);\n cursor: pointer;\n font: var(--vvd-typography-base);\n}\n\n.focus-indicator {\n --focus-inset: -3px;\n --focus-stroke-gap-color: transparent;\n border-radius: 50%;\n}\n:host(:not(:focus-visible)) .focus-indicator {\n display: none;\n}";
399
9
 
400
10
  let _ = t => t,
401
11
  _t,
402
12
  _t2;
403
- const RadioGroupTemplate = context => {
13
+ const getClasses = ({
14
+ checked,
15
+ readOnly,
16
+ disabled
17
+ }) => classNames('base', ['checked', Boolean(checked)], ['readonly', Boolean(readOnly)], ['disabled', Boolean(disabled)]);
18
+ const RadioTemplate = context => {
19
+ const focusTemplate = focusTemplateFactory(context);
404
20
  return html(_t || (_t = _`
405
- <template
406
- role="radiogroup"
407
- aria-disabled="${0}"
408
- aria-readonly="${0}"
409
- aria-orientation="${0}"
410
- @click="${0}"
411
- @keydown="${0}"
412
- @focusout="${0}"
413
- >
414
-
21
+ <span class="${0}"
22
+ role="radio"
23
+ aria-checked="${0}"
24
+ aria-required="${0}"
25
+ aria-disabled="${0}"
26
+ @keypress="${0}"
27
+ @click="${0}"
28
+ >
29
+ <div class="control">
415
30
  ${0}
416
-
417
- <div class="positioning-region ${0}">
418
- <slot ${0}></slot>
419
- </div>
420
- </template>
421
- `), x => x.disabled, x => x.readOnly, x => x.orientation, (x, c) => x.clickHandler(c.event), (x, c) => x.keydownHandler(c.event), (x, c) => x.focusOutHandler(c.event), when(x => x.label, html(_t2 || (_t2 = _`<label>${0}</label>`), x => x.label)), x => x.orientation === Orientation.horizontal ? 'horizontal' : 'vertical', slotted({
422
- property: 'slottedRadioButtons',
423
- filter: elements(context.tagFor(Radio))
424
- }));
31
+ </div>
32
+ ${0}
33
+ </span>
34
+ `), getClasses, x => x.checked, x => x.required, x => x.disabled, (x, c) => x.keypressHandler(c.event), (x, c) => x.clickHandler(c.event), () => focusTemplate, when(x => x.label, html(_t2 || (_t2 = _`<label class="label">${0}</label>`), x => x.label)));
425
35
  };
426
36
 
427
- const radioGroupDefinition = RadioGroup.compose({
428
- baseName: 'radio-group',
429
- template: RadioGroupTemplate,
37
+ const radioDefinition = Radio.compose({
38
+ baseName: 'radio',
39
+ template: RadioTemplate,
430
40
  styles: css_248z
431
41
  });
432
- const radioGroupRegistries = [radioGroupDefinition()];
433
- const registerRadioGroup = registerFactory(radioGroupRegistries);
42
+ const radioRegistries = [radioDefinition(), ...focusRegistries];
43
+ const registerRadio = registerFactory(radioRegistries);
434
44
 
435
- export { radioGroupDefinition as a, radioGroupRegistries as b, registerRadioGroup as r };
45
+ export { radioDefinition as a, radioRegistries as b, registerRadio as r };