@vonage/vivid 3.39.0 → 3.41.0

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 (182) hide show
  1. package/accordion/index.js +2 -2
  2. package/accordion-item/index.js +2 -2
  3. package/alert/index.js +7 -5
  4. package/audio-player/index.js +33 -0
  5. package/avatar/index.js +2 -2
  6. package/badge/index.js +2 -2
  7. package/banner/index.js +9 -5
  8. package/breadcrumb/index.js +1 -1
  9. package/breadcrumb-item/index.js +3 -3
  10. package/button/index.js +5 -4
  11. package/calendar/index.js +1 -1
  12. package/calendar-event/index.js +1 -1
  13. package/card/index.js +4 -3
  14. package/checkbox/index.js +3 -3
  15. package/combobox/index.js +9 -7
  16. package/custom-elements.json +809 -5
  17. package/data-grid/index.js +3 -2
  18. package/date-picker/index.js +11 -9
  19. package/date-range-picker/index.js +11 -9
  20. package/dialog/index.js +10 -6
  21. package/divider/index.js +1 -1
  22. package/elevation/index.js +1 -1
  23. package/empty-state/index.js +2 -2
  24. package/fab/index.js +3 -3
  25. package/file-picker/index.js +6 -5
  26. package/focus/index.js +1 -1
  27. package/header/index.js +2 -2
  28. package/icon/index.js +1 -1
  29. package/index.js +60 -55
  30. package/layout/index.js +1 -1
  31. package/lib/alert/alert.d.ts +3 -1
  32. package/lib/alert/locale.d.ts +3 -0
  33. package/lib/audio-player/audio-player.d.ts +17 -0
  34. package/lib/audio-player/audio-player.template.d.ts +4 -0
  35. package/lib/audio-player/definition.d.ts +4 -0
  36. package/lib/audio-player/locale.d.ts +5 -0
  37. package/lib/banner/banner.d.ts +3 -1
  38. package/lib/banner/locale.d.ts +3 -0
  39. package/lib/card/card.d.ts +3 -0
  40. package/lib/card/card.template.d.ts +1 -1
  41. package/lib/card/definition.d.ts +1 -0
  42. package/lib/checkbox/checkbox.d.ts +2 -0
  43. package/lib/components.d.ts +2 -0
  44. package/lib/dialog/dialog.d.ts +4 -0
  45. package/lib/dialog/locale.d.ts +3 -0
  46. package/lib/enums.d.ts +2 -1
  47. package/lib/menu/menu.d.ts +1 -0
  48. package/lib/number-field/locale.d.ts +4 -0
  49. package/lib/number-field/number-field.d.ts +4 -2
  50. package/lib/progress/progress.d.ts +1 -0
  51. package/lib/progress-ring/progress-ring.d.ts +1 -0
  52. package/lib/radio/radio.d.ts +1 -0
  53. package/lib/selectable-box/definition.d.ts +3 -0
  54. package/lib/selectable-box/selectable-box.d.ts +12 -0
  55. package/lib/selectable-box/selectable-box.template.d.ts +4 -0
  56. package/lib/slider/definition.d.ts +1 -0
  57. package/lib/slider/slider.d.ts +5 -0
  58. package/lib/split-button/locale.d.ts +3 -0
  59. package/lib/split-button/split-button.d.ts +3 -1
  60. package/lib/text-area/text-area.d.ts +3 -0
  61. package/lib/text-field/text-field.d.ts +5 -2
  62. package/listbox/index.js +5 -4
  63. package/locales/en-GB.js +21 -0
  64. package/locales/en-US.js +21 -0
  65. package/locales/ja-JP.js +21 -0
  66. package/locales/zh-CN.js +21 -0
  67. package/menu/index.js +9 -8
  68. package/menu-item/index.js +3 -3
  69. package/nav/index.js +1 -1
  70. package/nav-disclosure/index.js +3 -3
  71. package/nav-item/index.js +3 -3
  72. package/note/index.js +2 -2
  73. package/number-field/index.js +8 -6
  74. package/option/index.js +3 -3
  75. package/package.json +1 -1
  76. package/pagination/index.js +6 -5
  77. package/popup/index.js +7 -6
  78. package/progress/index.js +1 -1
  79. package/progress-ring/index.js +1 -1
  80. package/radio/index.js +2 -2
  81. package/radio-group/index.js +2 -2
  82. package/select/index.js +10 -8
  83. package/selectable-box/index.js +23 -0
  84. package/shared/Reflector.js +65 -0
  85. package/shared/date-picker/calendar/segment.d.ts +21 -0
  86. package/shared/date-picker/date-picker-base.d.ts +1 -0
  87. package/shared/definition.js +3 -3
  88. package/shared/definition10.js +89 -227
  89. package/shared/definition11.js +151 -29
  90. package/shared/definition12.js +37 -766
  91. package/shared/definition13.js +747 -106
  92. package/shared/definition14.js +122 -192
  93. package/shared/definition15.js +156 -664
  94. package/shared/definition16.js +576 -1123
  95. package/shared/definition17.js +1278 -143
  96. package/shared/definition18.js +64 -298
  97. package/shared/definition19.js +358 -211
  98. package/shared/definition2.js +2 -2
  99. package/shared/definition20.js +259 -67
  100. package/shared/definition21.js +66 -58
  101. package/shared/definition22.js +43 -84
  102. package/shared/definition23.js +76 -2352
  103. package/shared/definition24.js +2362 -45
  104. package/shared/definition25.js +63 -27
  105. package/shared/definition26.js +24 -51
  106. package/shared/definition27.js +36 -813
  107. package/shared/definition28.js +837 -49
  108. package/shared/definition29.js +52 -89
  109. package/shared/definition3.js +1 -1
  110. package/shared/definition30.js +88 -24
  111. package/shared/definition31.js +25 -12
  112. package/shared/definition32.js +12 -52
  113. package/shared/definition33.js +28 -487
  114. package/shared/definition34.js +442 -197
  115. package/shared/definition35.js +260 -185
  116. package/shared/definition36.js +188 -69
  117. package/shared/definition37.js +72 -52
  118. package/shared/definition38.js +65 -421
  119. package/shared/definition39.js +435 -35
  120. package/shared/definition4.js +44 -16
  121. package/shared/definition40.js +32 -680
  122. package/shared/definition41.js +661 -77
  123. package/shared/definition42.js +103 -555
  124. package/shared/definition43.js +76 -103
  125. package/shared/definition44.js +522 -87
  126. package/shared/definition45.js +133 -22
  127. package/shared/definition46.js +131 -58
  128. package/shared/definition47.js +16 -501
  129. package/shared/definition48.js +69 -23
  130. package/shared/definition49.js +477 -108
  131. package/shared/definition5.js +160 -44
  132. package/shared/definition50.js +25 -271
  133. package/shared/definition51.js +103 -122
  134. package/shared/definition52.js +277 -122
  135. package/shared/definition53.js +274 -103
  136. package/shared/definition54.js +126 -71
  137. package/shared/definition55.js +128 -294
  138. package/shared/definition56.js +91 -13
  139. package/shared/definition57.js +298 -39
  140. package/shared/definition58.js +11 -175
  141. package/shared/definition59.js +47 -0
  142. package/shared/definition6.js +43 -33
  143. package/shared/definition60.js +181 -0
  144. package/shared/definition7.js +39 -105
  145. package/shared/definition8.js +122 -38
  146. package/shared/definition9.js +56 -89
  147. package/shared/enums.js +72 -0
  148. package/shared/icon.js +2 -2
  149. package/shared/index2.js +28 -1
  150. package/shared/key-codes.js +1 -1
  151. package/shared/key-codes2.js +9 -0
  152. package/shared/listbox.js +3 -8
  153. package/shared/localization/Locale.d.ts +12 -0
  154. package/shared/patterns/form-elements/form-elements.d.ts +6 -6
  155. package/shared/presentationDate.js +196 -143
  156. package/shared/radio.js +7 -0
  157. package/shared/text-field.js +1 -1
  158. package/shared/utils/Reflector.d.ts +8 -0
  159. package/shared/utils/randomId.d.ts +1 -0
  160. package/side-drawer/index.js +1 -1
  161. package/slider/index.js +3 -3
  162. package/split-button/index.js +6 -3
  163. package/style.css +889 -722
  164. package/styles/core/all.css +1 -1
  165. package/styles/core/theme.css +1 -1
  166. package/styles/core/typography.css +1 -1
  167. package/styles/tokens/theme-dark.css +4 -4
  168. package/styles/tokens/theme-light.css +4 -4
  169. package/styles/tokens/vivid-2-compat.css +1 -1
  170. package/switch/index.js +3 -3
  171. package/tab/index.js +3 -3
  172. package/tab-panel/index.js +1 -1
  173. package/tabs/index.js +5 -5
  174. package/tag/index.js +3 -3
  175. package/tag-group/index.js +1 -1
  176. package/text-area/index.js +4 -3
  177. package/text-field/index.js +4 -3
  178. package/toggletip/index.js +8 -7
  179. package/tooltip/index.js +8 -7
  180. package/tree-item/index.js +3 -3
  181. package/tree-view/index.js +1 -1
  182. package/vivid.api.json +392 -0
@@ -1,399 +1,9 @@
1
- import { F as FoundationElement, _ as __decorate, a as attr, o as observable, 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, e as keyArrowUp, d as keyArrowDown, k as keyEnter } from './key-codes.js';
4
- import { O as Orientation } from './aria.js';
5
- import { R as Radio } from './radio.js';
6
- import { O as Orientation$1 } from './aria2.js';
7
- import { s as slotted, e as elements } from './slotted.js';
1
+ import { a as attr, h as html, r as registerFactory } from './index.js';
2
+ import { B as BaseProgress } from './base-progress.js';
8
3
  import { w as when } from './when.js';
4
+ import { c as classNames } from './class-names.js';
9
5
 
10
- /**
11
- * An Radio Group Custom HTML Element.
12
- * Implements the {@link https://www.w3.org/TR/wai-aria-1.1/#radiogroup | ARIA radiogroup }.
13
- *
14
- * @slot label - The slot for the label
15
- * @slot - The default slot for radio buttons
16
- * @csspart positioning-region - The positioning region for laying out the radios
17
- * @fires change - Fires a custom 'change' event when the value changes
18
- *
19
- * @public
20
- */
21
- let RadioGroup$1 = class RadioGroup extends FoundationElement {
22
- constructor() {
23
- super(...arguments);
24
- /**
25
- * The orientation of the group
26
- *
27
- * @public
28
- * @remarks
29
- * HTML Attribute: orientation
30
- */
31
- this.orientation = Orientation.horizontal;
32
- this.radioChangeHandler = (e) => {
33
- const changedRadio = e.target;
34
- if (changedRadio.checked) {
35
- this.slottedRadioButtons.forEach((radio) => {
36
- if (radio !== changedRadio) {
37
- radio.checked = false;
38
- if (!this.isInsideFoundationToolbar) {
39
- radio.setAttribute("tabindex", "-1");
40
- }
41
- }
42
- });
43
- this.selectedRadio = changedRadio;
44
- this.value = changedRadio.value;
45
- changedRadio.setAttribute("tabindex", "0");
46
- this.focusedRadio = changedRadio;
47
- }
48
- e.stopPropagation();
49
- };
50
- this.moveToRadioByIndex = (group, index) => {
51
- const radio = group[index];
52
- if (!this.isInsideToolbar) {
53
- radio.setAttribute("tabindex", "0");
54
- if (radio.readOnly) {
55
- this.slottedRadioButtons.forEach((nextRadio) => {
56
- if (nextRadio !== radio) {
57
- nextRadio.setAttribute("tabindex", "-1");
58
- }
59
- });
60
- }
61
- else {
62
- radio.checked = true;
63
- this.selectedRadio = radio;
64
- }
65
- }
66
- this.focusedRadio = radio;
67
- radio.focus();
68
- };
69
- this.moveRightOffGroup = () => {
70
- var _a;
71
- (_a = this.nextElementSibling) === null || _a === void 0 ? void 0 : _a.focus();
72
- };
73
- this.moveLeftOffGroup = () => {
74
- var _a;
75
- (_a = this.previousElementSibling) === null || _a === void 0 ? void 0 : _a.focus();
76
- };
77
- /**
78
- * @internal
79
- */
80
- this.focusOutHandler = (e) => {
81
- const group = this.slottedRadioButtons;
82
- const radio = e.target;
83
- const index = radio !== null ? group.indexOf(radio) : 0;
84
- const focusedIndex = this.focusedRadio
85
- ? group.indexOf(this.focusedRadio)
86
- : -1;
87
- if ((focusedIndex === 0 && index === focusedIndex) ||
88
- (focusedIndex === group.length - 1 && focusedIndex === index)) {
89
- if (!this.selectedRadio) {
90
- this.focusedRadio = group[0];
91
- this.focusedRadio.setAttribute("tabindex", "0");
92
- group.forEach((nextRadio) => {
93
- if (nextRadio !== this.focusedRadio) {
94
- nextRadio.setAttribute("tabindex", "-1");
95
- }
96
- });
97
- }
98
- else {
99
- this.focusedRadio = this.selectedRadio;
100
- if (!this.isInsideFoundationToolbar) {
101
- this.selectedRadio.setAttribute("tabindex", "0");
102
- group.forEach((nextRadio) => {
103
- if (nextRadio !== this.selectedRadio) {
104
- nextRadio.setAttribute("tabindex", "-1");
105
- }
106
- });
107
- }
108
- }
109
- }
110
- return true;
111
- };
112
- /**
113
- * @internal
114
- */
115
- this.clickHandler = (e) => {
116
- const radio = e.target;
117
- if (radio) {
118
- const group = this.slottedRadioButtons;
119
- if (radio.checked || group.indexOf(radio) === 0) {
120
- radio.setAttribute("tabindex", "0");
121
- this.selectedRadio = radio;
122
- }
123
- else {
124
- radio.setAttribute("tabindex", "-1");
125
- this.selectedRadio = null;
126
- }
127
- this.focusedRadio = radio;
128
- }
129
- e.preventDefault();
130
- };
131
- this.shouldMoveOffGroupToTheRight = (index, group, key) => {
132
- return index === group.length && this.isInsideToolbar && key === keyArrowRight;
133
- };
134
- this.shouldMoveOffGroupToTheLeft = (group, key) => {
135
- const index = this.focusedRadio ? group.indexOf(this.focusedRadio) - 1 : 0;
136
- return index < 0 && this.isInsideToolbar && key === keyArrowLeft;
137
- };
138
- this.checkFocusedRadio = () => {
139
- if (this.focusedRadio !== null &&
140
- !this.focusedRadio.readOnly &&
141
- !this.focusedRadio.checked) {
142
- this.focusedRadio.checked = true;
143
- this.focusedRadio.setAttribute("tabindex", "0");
144
- this.focusedRadio.focus();
145
- this.selectedRadio = this.focusedRadio;
146
- }
147
- };
148
- this.moveRight = (e) => {
149
- const group = this.slottedRadioButtons;
150
- let index = 0;
151
- index = this.focusedRadio ? group.indexOf(this.focusedRadio) + 1 : 1;
152
- if (this.shouldMoveOffGroupToTheRight(index, group, e.key)) {
153
- this.moveRightOffGroup();
154
- return;
155
- }
156
- else if (index === group.length) {
157
- index = 0;
158
- }
159
- /* looping to get to next radio that is not disabled */
160
- /* matching native radio/radiogroup which does not select an item if there is only 1 in the group */
161
- while (index < group.length && group.length > 1) {
162
- if (!group[index].disabled) {
163
- this.moveToRadioByIndex(group, index);
164
- break;
165
- }
166
- else if (this.focusedRadio && index === group.indexOf(this.focusedRadio)) {
167
- break;
168
- }
169
- else if (index + 1 >= group.length) {
170
- if (this.isInsideToolbar) {
171
- break;
172
- }
173
- else {
174
- index = 0;
175
- }
176
- }
177
- else {
178
- index += 1;
179
- }
180
- }
181
- };
182
- this.moveLeft = (e) => {
183
- const group = this.slottedRadioButtons;
184
- let index = 0;
185
- index = this.focusedRadio ? group.indexOf(this.focusedRadio) - 1 : 0;
186
- index = index < 0 ? group.length - 1 : index;
187
- if (this.shouldMoveOffGroupToTheLeft(group, e.key)) {
188
- this.moveLeftOffGroup();
189
- return;
190
- }
191
- /* looping to get to next radio that is not disabled */
192
- while (index >= 0 && group.length > 1) {
193
- if (!group[index].disabled) {
194
- this.moveToRadioByIndex(group, index);
195
- break;
196
- }
197
- else if (this.focusedRadio && index === group.indexOf(this.focusedRadio)) {
198
- break;
199
- }
200
- else if (index - 1 < 0) {
201
- index = group.length - 1;
202
- }
203
- else {
204
- index -= 1;
205
- }
206
- }
207
- };
208
- /**
209
- * keyboard handling per https://w3c.github.io/aria-practices/#for-radio-groups-not-contained-in-a-toolbar
210
- * navigation is different when there is an ancestor with role='toolbar'
211
- *
212
- * @internal
213
- */
214
- this.keydownHandler = (e) => {
215
- const key = e.key;
216
- if (key in ArrowKeys && this.isInsideFoundationToolbar) {
217
- return true;
218
- }
219
- switch (key) {
220
- case keyEnter: {
221
- this.checkFocusedRadio();
222
- break;
223
- }
224
- case keyArrowRight:
225
- case keyArrowDown: {
226
- if (this.direction === Direction.ltr) {
227
- this.moveRight(e);
228
- }
229
- else {
230
- this.moveLeft(e);
231
- }
232
- break;
233
- }
234
- case keyArrowLeft:
235
- case keyArrowUp: {
236
- if (this.direction === Direction.ltr) {
237
- this.moveLeft(e);
238
- }
239
- else {
240
- this.moveRight(e);
241
- }
242
- break;
243
- }
244
- default: {
245
- return true;
246
- }
247
- }
248
- };
249
- }
250
- readOnlyChanged() {
251
- if (this.slottedRadioButtons !== undefined) {
252
- this.slottedRadioButtons.forEach((radio) => {
253
- if (this.readOnly) {
254
- radio.readOnly = true;
255
- }
256
- else {
257
- radio.readOnly = false;
258
- }
259
- });
260
- }
261
- }
262
- disabledChanged() {
263
- if (this.slottedRadioButtons !== undefined) {
264
- this.slottedRadioButtons.forEach((radio) => {
265
- if (this.disabled) {
266
- radio.disabled = true;
267
- }
268
- else {
269
- radio.disabled = false;
270
- }
271
- });
272
- }
273
- }
274
- nameChanged() {
275
- if (this.slottedRadioButtons) {
276
- this.slottedRadioButtons.forEach((radio) => {
277
- radio.setAttribute("name", this.name);
278
- });
279
- }
280
- }
281
- valueChanged() {
282
- if (this.slottedRadioButtons) {
283
- this.slottedRadioButtons.forEach((radio) => {
284
- if (radio.value === this.value) {
285
- radio.checked = true;
286
- this.selectedRadio = radio;
287
- }
288
- });
289
- }
290
- this.$emit("change");
291
- }
292
- slottedRadioButtonsChanged(oldValue, newValue) {
293
- if (this.slottedRadioButtons && this.slottedRadioButtons.length > 0) {
294
- this.setupRadioButtons();
295
- }
296
- }
297
- get parentToolbar() {
298
- return this.closest('[role="toolbar"]');
299
- }
300
- get isInsideToolbar() {
301
- var _a;
302
- return ((_a = this.parentToolbar) !== null && _a !== void 0 ? _a : false);
303
- }
304
- get isInsideFoundationToolbar() {
305
- var _a;
306
- return !!((_a = this.parentToolbar) === null || _a === void 0 ? void 0 : _a["$fastController"]);
307
- }
308
- /**
309
- * @internal
310
- */
311
- connectedCallback() {
312
- super.connectedCallback();
313
- this.direction = getDirection(this);
314
- this.setupRadioButtons();
315
- }
316
- disconnectedCallback() {
317
- this.slottedRadioButtons.forEach((radio) => {
318
- radio.removeEventListener("change", this.radioChangeHandler);
319
- });
320
- }
321
- setupRadioButtons() {
322
- const checkedRadios = this.slottedRadioButtons.filter((radio) => {
323
- return radio.hasAttribute("checked");
324
- });
325
- const numberOfCheckedRadios = checkedRadios ? checkedRadios.length : 0;
326
- if (numberOfCheckedRadios > 1) {
327
- const lastCheckedRadio = checkedRadios[numberOfCheckedRadios - 1];
328
- lastCheckedRadio.checked = true;
329
- }
330
- let foundMatchingVal = false;
331
- this.slottedRadioButtons.forEach((radio) => {
332
- if (this.name !== undefined) {
333
- radio.setAttribute("name", this.name);
334
- }
335
- if (this.disabled) {
336
- radio.disabled = true;
337
- }
338
- if (this.readOnly) {
339
- radio.readOnly = true;
340
- }
341
- if (this.value && this.value === radio.value) {
342
- this.selectedRadio = radio;
343
- this.focusedRadio = radio;
344
- radio.checked = true;
345
- radio.setAttribute("tabindex", "0");
346
- foundMatchingVal = true;
347
- }
348
- else {
349
- if (!this.isInsideFoundationToolbar) {
350
- radio.setAttribute("tabindex", "-1");
351
- }
352
- radio.checked = false;
353
- }
354
- radio.addEventListener("change", this.radioChangeHandler);
355
- });
356
- if (this.value === undefined && this.slottedRadioButtons.length > 0) {
357
- const checkedRadios = this.slottedRadioButtons.filter((radio) => {
358
- return radio.hasAttribute("checked");
359
- });
360
- const numberOfCheckedRadios = checkedRadios !== null ? checkedRadios.length : 0;
361
- if (numberOfCheckedRadios > 0 && !foundMatchingVal) {
362
- const lastCheckedRadio = checkedRadios[numberOfCheckedRadios - 1];
363
- lastCheckedRadio.checked = true;
364
- this.focusedRadio = lastCheckedRadio;
365
- lastCheckedRadio.setAttribute("tabindex", "0");
366
- }
367
- else {
368
- this.slottedRadioButtons[0].setAttribute("tabindex", "0");
369
- this.focusedRadio = this.slottedRadioButtons[0];
370
- }
371
- }
372
- }
373
- };
374
- __decorate([
375
- attr({ attribute: "readonly", mode: "boolean" })
376
- ], RadioGroup$1.prototype, "readOnly", void 0);
377
- __decorate([
378
- attr({ attribute: "disabled", mode: "boolean" })
379
- ], RadioGroup$1.prototype, "disabled", void 0);
380
- __decorate([
381
- attr
382
- ], RadioGroup$1.prototype, "name", void 0);
383
- __decorate([
384
- attr
385
- ], RadioGroup$1.prototype, "value", void 0);
386
- __decorate([
387
- attr
388
- ], RadioGroup$1.prototype, "orientation", void 0);
389
- __decorate([
390
- observable
391
- ], RadioGroup$1.prototype, "childItems", void 0);
392
- __decorate([
393
- observable
394
- ], RadioGroup$1.prototype, "slottedRadioButtons", void 0);
395
-
396
- const styles = "/**\n * Do not edit directly\n * Generated on Tue, 17 Oct 2023 15:27:52 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}";
6
+ const styles = "/**\n * Do not edit directly\n * Generated on Wed, 22 Nov 2023 16:09:43 GMT\n */\n.base {\n height: 6px;\n align-items: center;\n margin: 0;\n outline: none;\n}\n.base:not(.connotation-pacific).connotation-cta {\n /* @cssprop [--vvd-progress-cta-primary=var(--vvd-color-cta-500)] */\n --_connotation-color-primary: var(--vvd-progress-cta-primary, var(--vvd-color-cta-500));\n /* @cssprop [--vvd-progress-cta-soft=var(--vvd-color-cta-100)] */\n --_connotation-color-soft: var(--vvd-progress-cta-soft, var(--vvd-color-cta-100));\n}\n.base:not(.connotation-pacific).connotation-alert {\n /* @cssprop [--vvd-progress-alert-primary=var(--vvd-color-alert-500)] */\n --_connotation-color-primary: var(--vvd-progress-alert-primary, var(--vvd-color-alert-500));\n /* @cssprop [--vvd-progress-alert-soft=var(--vvd-color-alert-100)] */\n --_connotation-color-soft: var(--vvd-progress-alert-soft, var(--vvd-color-alert-100));\n}\n.base:not(.connotation-pacific).connotation-success {\n /* @cssprop [--vvd-progress-success-primary=var(--vvd-color-success-500)] */\n --_connotation-color-primary: var(--vvd-progress-success-primary, var(--vvd-color-success-500));\n /* @cssprop [--vvd-progress-success-soft=var(--vvd-color-success-100)] */\n --_connotation-color-soft: var(--vvd-progress-success-soft, var(--vvd-color-success-100));\n}\n.base:not(.connotation-pacific):not(.connotation-cta, .connotation-alert, .connotation-success) {\n /* @cssprop [--vvd-progress-accent-primary=var(--vvd-color-canvas-text)] */\n --_connotation-color-primary: var(--vvd-progress-accent-primary, var(--vvd-color-canvas-text));\n /* @cssprop [--vvd-progress-accent-soft=var(--vvd-color-neutral-100)] */\n --_connotation-color-soft: var(--vvd-progress-accent-soft, var(--vvd-color-neutral-100));\n}\n.base:not(.connotation-pacific) {\n --_appearance-color-text: var(--_connotation-color-contrast);\n --_appearance-color-fill: var(--_connotation-color-soft);\n --_appearance-color-outline: transparent;\n}\n.base.connotation-pacific {\n --_connotation-color-primary: linear-gradient(to right, var(--vvd-color-information-200), var(--vvd-color-cta-600));\n}\n\n.progress {\n position: relative;\n display: flex;\n overflow: hidden;\n align-items: center;\n block-size: 100%;\n inline-size: 100%;\n /* Shape */\n}\n.base:not(.connotation-pacific) .progress {\n background-color: var(--_appearance-color-fill);\n}\n.base.connotation-pacific .progress {\n background-color: var(--vvd-color-neutral-100);\n}\n.base:not(.shape-sharp) .progress {\n border-radius: 3px;\n}\n\n.indeterminate {\n display: flex;\n background-color: var(--_connotation-color-primary);\n block-size: 100%;\n border-radius: inherit;\n inline-size: 100%;\n}\n\n.determinate {\n background-color: var(--_connotation-color-primary);\n block-size: 100%;\n border-radius: inherit;\n transition: all 0.2s ease-in-out;\n}\n.connotation-pacific .determinate {\n background-image: var(--_connotation-color-primary);\n}\n.reverse .determinate {\n position: absolute;\n right: 0;\n}\n.paused .determinate {\n background: var(--vvd-color-neutral-300);\n}\n\n.indicator-1 {\n animation: indeterminate-1 2s infinite;\n inline-size: 30%;\n}\n\n.indicator-2 {\n animation: indeterminate-2 2s infinite;\n inline-size: 60%;\n}\n\n.indicator-1,\n.indicator-2 {\n position: absolute;\n animation-timing-function: cubic-bezier(0.4, 0, 0.6, 1);\n background-color: var(--vvd-color-neutral-100);\n block-size: 100%;\n opacity: 0;\n}\n.connotation-pacific .indicator-1,\n.connotation-pacific .indicator-2 {\n background-image: var(--_connotation-color-primary);\n}\n.paused .indicator-1,\n.paused .indicator-2 {\n animation-play-state: paused;\n background-color: var(--_connotation-color-primary);\n}\n.reverse .indicator-1,\n.reverse .indicator-2 {\n animation-direction: reverse;\n}\n\n@keyframes indeterminate-1 {\n 0% {\n opacity: 1;\n transform: translateX(-100%);\n }\n 70% {\n opacity: 1;\n transform: translateX(300%);\n }\n 70.01% {\n opacity: 0;\n }\n 100% {\n opacity: 0;\n transform: translateX(300%);\n }\n}\n@keyframes indeterminate-2 {\n 0% {\n opacity: 0;\n transform: translateX(-150%);\n }\n 29.99% {\n opacity: 0;\n }\n 30% {\n opacity: 1;\n transform: translateX(-150%);\n }\n 100% {\n opacity: 1;\n transform: translateX(166.66%);\n }\n}";
397
7
 
398
8
  var __defProp = Object.defineProperty;
399
9
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
@@ -406,39 +16,73 @@ var __decorateClass = (decorators, target, key, kind) => {
406
16
  __defProp(target, key, result);
407
17
  return result;
408
18
  };
409
- class RadioGroup extends RadioGroup$1 {
19
+ class Progress extends BaseProgress {
20
+ constructor() {
21
+ super(...arguments);
22
+ this.ariaLabel = null;
23
+ this.reverse = false;
24
+ }
410
25
  }
411
26
  __decorateClass([
412
- attr
413
- ], RadioGroup.prototype, "label", 2);
27
+ attr({ attribute: "aria-label" })
28
+ ], Progress.prototype, "ariaLabel", 2);
29
+ __decorateClass([
30
+ attr()
31
+ ], Progress.prototype, "shape", 2);
32
+ __decorateClass([
33
+ attr()
34
+ ], Progress.prototype, "connotation", 2);
35
+ __decorateClass([
36
+ attr({ mode: "boolean" })
37
+ ], Progress.prototype, "reverse", 2);
414
38
 
415
- const RadioGroupTemplate = (context) => {
39
+ const getClasses = ({
40
+ connotation,
41
+ shape,
42
+ reverse,
43
+ paused
44
+ }) => classNames(
45
+ "base",
46
+ [`connotation-${connotation}`, Boolean(connotation)],
47
+ [`shape-${shape}`, Boolean(shape)],
48
+ ["reverse", Boolean(reverse)],
49
+ ["paused", Boolean(paused)]
50
+ );
51
+ function determinate() {
416
52
  return html`
417
- <template
418
- role="radiogroup"
419
- aria-disabled="${(x) => x.disabled}"
420
- aria-readonly="${(x) => x.readOnly}"
421
- aria-orientation="${(x) => x.orientation}"
422
- @click="${(x, c) => x.clickHandler(c.event)}"
423
- @keydown="${(x, c) => x.keydownHandler(c.event)}"
424
- @focusout="${(x, c) => x.focusOutHandler(c.event)}"
425
- >
426
-
427
- ${when((x) => x.label, html`<label>${(x) => x.label}</label>`)}
428
-
429
- <div class="positioning-region ${(x) => x.orientation === Orientation$1.horizontal ? "horizontal" : "vertical"}">
430
- <slot ${slotted({ property: "slottedRadioButtons", filter: elements(context.tagFor(Radio)) })}></slot>
431
- </div>
432
- </template>
433
- `;
53
+ <span class="determinate" style="width: ${(x) => x.percentComplete}%"></span>`;
54
+ }
55
+ function indeterminate() {
56
+ return html`
57
+ <span class="indeterminate" name="indeterminate">
58
+ <span class="indicator-1"></span>
59
+ <span class="indicator-2"></span>
60
+ </span>`;
61
+ }
62
+ const ProgressTemplate = (_) => {
63
+ return html`<template role="${(x) => x.ariaLabel ? "presentation" : null}">
64
+ <div
65
+ role="progressbar"
66
+ aria-label="${(x) => x.ariaLabel}"
67
+ aria-valuenow="${(x) => x.value}"
68
+ aria-valuemin="${(x) => x.min}"
69
+ aria-valuemax="${(x) => x.max}"
70
+ class="${getClasses}"
71
+ >
72
+ <div class="progress">
73
+ ${when((x) => typeof x.value === "number", determinate())}
74
+ ${when((x) => typeof x.value !== "number", indeterminate())}
75
+ </div>
76
+ </div>
77
+ </template>`;
434
78
  };
435
79
 
436
- const radioGroupDefinition = RadioGroup.compose({
437
- baseName: "radio-group",
438
- template: RadioGroupTemplate,
80
+ const progressDefinition = Progress.compose({
81
+ baseName: "progress",
82
+ template: ProgressTemplate,
439
83
  styles
440
84
  });
441
- const radioGroupRegistries = [radioGroupDefinition()];
442
- const registerRadioGroup = registerFactory(radioGroupRegistries);
85
+ const progressRegistries = [progressDefinition()];
86
+ const registerProgress = registerFactory(progressRegistries);
443
87
 
444
- export { radioGroupRegistries as a, registerRadioGroup as b, radioGroupDefinition as r };
88
+ export { progressRegistries as a, progressDefinition as p, registerProgress as r };