@vonage/vivid 4.25.0 → 4.26.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 (149) hide show
  1. package/custom-elements.json +1496 -386
  2. package/lib/accordion-item/accordion-item.d.ts +1 -1
  3. package/lib/action-group/action-group.d.ts +1 -1
  4. package/lib/alert/alert.d.ts +2 -2
  5. package/lib/audio-player/audio-player.d.ts +1 -1
  6. package/lib/badge/badge.d.ts +1 -1
  7. package/lib/banner/banner.d.ts +3 -3
  8. package/lib/breadcrumb/breadcrumb.d.ts +1 -1
  9. package/lib/breadcrumb-item/breadcrumb-item.d.ts +1 -1
  10. package/lib/button/button.d.ts +3 -3
  11. package/lib/calendar/calendar.d.ts +2 -0
  12. package/lib/calendar-event/calendar-event.d.ts +1 -1
  13. package/lib/card/card.d.ts +1 -1
  14. package/lib/checkbox/checkbox.d.ts +3 -3
  15. package/lib/combobox/combobox.d.ts +3 -3
  16. package/lib/data-grid/data-grid-cell.d.ts +4 -2
  17. package/lib/data-grid/data-grid-row.d.ts +1 -0
  18. package/lib/data-grid/data-grid.d.ts +1 -1
  19. package/lib/date-picker/date-picker.d.ts +4 -4
  20. package/lib/date-range-picker/date-range-picker.d.ts +2 -2
  21. package/lib/date-time-picker/date-time-picker.d.ts +4 -4
  22. package/lib/dial-pad/dial-pad.d.ts +1 -1
  23. package/lib/dialog/dialog.d.ts +3 -2
  24. package/lib/divider/divider.d.ts +1 -1
  25. package/lib/fab/fab.d.ts +1 -1
  26. package/lib/file-picker/file-picker.d.ts +3 -3
  27. package/lib/header/header.d.ts +1 -1
  28. package/lib/menu/menu.d.ts +1 -1
  29. package/lib/menu-item/menu-item.d.ts +2 -2
  30. package/lib/nav/nav.d.ts +1 -1
  31. package/lib/nav-disclosure/nav-disclosure.d.ts +2 -2
  32. package/lib/nav-item/nav-item.d.ts +2 -2
  33. package/lib/note/note.d.ts +1 -1
  34. package/lib/number-field/locale.d.ts +3 -2
  35. package/lib/number-field/number-field.d.ts +5 -5
  36. package/lib/option/option.d.ts +2 -2
  37. package/lib/pagination/locale.d.ts +5 -0
  38. package/lib/pagination/pagination.d.ts +341 -2
  39. package/lib/popup/popup.d.ts +1 -0
  40. package/lib/progress/progress.d.ts +1 -1
  41. package/lib/progress-ring/progress-ring.d.ts +1 -1
  42. package/lib/radio-group/radio-group.d.ts +1 -1
  43. package/lib/range-slider/range-slider.d.ts +1 -1
  44. package/lib/rich-text-editor/menubar/menubar.d.ts +1 -1
  45. package/lib/rich-text-editor/rich-text-editor.d.ts +1 -1
  46. package/lib/searchable-select/option-tag.d.ts +1 -1
  47. package/lib/searchable-select/searchable-select.d.ts +5 -5
  48. package/lib/select/select.d.ts +4 -4
  49. package/lib/selectable-box/selectable-box.d.ts +1 -1
  50. package/lib/slider/slider.d.ts +2 -2
  51. package/lib/split-button/split-button.d.ts +3 -3
  52. package/lib/switch/switch.d.ts +1 -1
  53. package/lib/tab/tab.d.ts +3 -3
  54. package/lib/tab-panel/tab-panel.d.ts +1 -1
  55. package/lib/tag/tag.d.ts +2 -2
  56. package/lib/tag-group/tag-group.d.ts +1 -1
  57. package/lib/text-area/text-area.d.ts +4 -4
  58. package/lib/text-field/text-field.d.ts +5 -5
  59. package/lib/time-picker/time-picker.d.ts +2 -2
  60. package/lib/tree-item/tree-item.d.ts +2 -2
  61. package/lib/tree-view/tree-view.d.ts +1 -1
  62. package/lib/video-player/video-player.d.ts +1 -1
  63. package/locales/de-DE.cjs +21 -3
  64. package/locales/de-DE.js +21 -3
  65. package/locales/en-GB.cjs +21 -3
  66. package/locales/en-GB.js +21 -3
  67. package/locales/en-US.cjs +21 -3
  68. package/locales/en-US.js +21 -3
  69. package/locales/ja-JP.cjs +21 -3
  70. package/locales/ja-JP.js +21 -3
  71. package/locales/zh-CN.cjs +21 -3
  72. package/locales/zh-CN.js +21 -3
  73. package/package.json +1 -1
  74. package/shared/aria/delegates-aria.d.ts +1 -1
  75. package/shared/aria/host-semantics.d.ts +1 -1
  76. package/shared/definition.cjs +19 -3
  77. package/shared/definition.js +20 -4
  78. package/shared/definition11.cjs +1 -1
  79. package/shared/definition11.js +1 -1
  80. package/shared/definition13.cjs +25 -0
  81. package/shared/definition13.js +26 -1
  82. package/shared/definition15.cjs +1 -1
  83. package/shared/definition15.js +1 -1
  84. package/shared/definition16.cjs +1 -1
  85. package/shared/definition16.js +1 -1
  86. package/shared/definition17.cjs +601 -521
  87. package/shared/definition17.js +599 -519
  88. package/shared/definition21.cjs +2 -2
  89. package/shared/definition21.js +2 -2
  90. package/shared/definition22.cjs +9 -3
  91. package/shared/definition22.js +9 -3
  92. package/shared/definition28.cjs +1 -1
  93. package/shared/definition28.js +1 -1
  94. package/shared/definition3.cjs +1 -1
  95. package/shared/definition3.js +1 -1
  96. package/shared/definition31.cjs +1 -1
  97. package/shared/definition31.js +1 -1
  98. package/shared/definition32.cjs +1 -1
  99. package/shared/definition32.js +1 -1
  100. package/shared/definition36.cjs +40 -29
  101. package/shared/definition36.js +33 -22
  102. package/shared/definition38.cjs +30 -23
  103. package/shared/definition38.js +30 -23
  104. package/shared/definition42.cjs +2 -2
  105. package/shared/definition42.js +2 -2
  106. package/shared/definition45.cjs +2 -2
  107. package/shared/definition45.js +2 -2
  108. package/shared/definition46.cjs +1 -1
  109. package/shared/definition46.js +1 -1
  110. package/shared/definition49.cjs +2 -2
  111. package/shared/definition49.js +2 -2
  112. package/shared/definition63.cjs +2 -2
  113. package/shared/definition63.js +2 -2
  114. package/shared/definition67.cjs +9 -1
  115. package/shared/definition67.js +10 -2
  116. package/shared/feedback/feedback-message.d.ts +1 -1
  117. package/shared/feedback/mixins.d.ts +2 -2
  118. package/shared/foundation/button/button.d.ts +1 -1
  119. package/shared/foundation/vivid-element/vivid-element.d.ts +2 -0
  120. package/shared/key-codes.js +1 -1
  121. package/shared/localization/Locale.d.ts +2 -0
  122. package/shared/mixins.cjs +4 -1
  123. package/shared/mixins.js +4 -1
  124. package/shared/patterns/affix.d.ts +2 -2
  125. package/shared/patterns/char-count/char-count.d.ts +1 -1
  126. package/shared/patterns/form-elements/with-success-text.d.ts +1 -1
  127. package/shared/patterns/linkable.d.ts +1 -1
  128. package/shared/patterns/localized.d.ts +1 -1
  129. package/shared/patterns/trapped-focus.d.ts +1 -1
  130. package/shared/picker-field/mixins/calendar-picker.d.ts +1 -1
  131. package/shared/picker-field/mixins/calendar-picker.template.d.ts +1 -1
  132. package/shared/picker-field/mixins/inline-time-picker/inline-time-picker.d.ts +1 -1
  133. package/shared/picker-field/mixins/min-max-calendar-picker.d.ts +2 -2
  134. package/shared/picker-field/mixins/single-date-picker.d.ts +3 -3
  135. package/shared/picker-field/mixins/single-value-picker.d.ts +1 -1
  136. package/shared/picker-field/mixins/time-selection-picker.d.ts +2 -2
  137. package/shared/picker-field/mixins/time-selection-picker.template.d.ts +2 -2
  138. package/shared/picker-field/picker-field.d.ts +3 -3
  139. package/shared/picker-field.template.cjs +13 -13
  140. package/shared/picker-field.template.js +13 -13
  141. package/shared/vivid-element.cjs +11 -1
  142. package/shared/vivid-element.js +11 -1
  143. package/styles/core/all.css +1 -1
  144. package/styles/core/theme.css +1 -1
  145. package/styles/core/typography.css +1 -1
  146. package/styles/tokens/theme-dark.css +4 -4
  147. package/styles/tokens/theme-light.css +4 -4
  148. package/styles/tokens/vivid-2-compat.css +1 -1
  149. package/vivid.api.json +154 -66
package/locales/en-GB.js CHANGED
@@ -150,8 +150,18 @@ const enGB = {
150
150
  dismissButtonLabel: "Close"
151
151
  },
152
152
  numberField: {
153
- incrementButtonLabel: "Increment",
154
- decrementButtonLabel: "Decrement"
153
+ incrementButtonLabel: (
154
+ /* istanbul ignore next */
155
+ (step) => step === 1 ? "Increase value" : `Increase value by ${step}`
156
+ ),
157
+ decrementButtonLabel: (
158
+ /* istanbul ignore next */
159
+ (step) => step === 1 ? "Decrease value" : `Decrease value by ${step}`
160
+ ),
161
+ updatedValueAnnouncement: (
162
+ /* istanbul ignore next */
163
+ (value) => `Updated value: ${value}`
164
+ )
155
165
  },
156
166
  splitButton: {
157
167
  showMoreActionsLabel: "Show more actions"
@@ -163,7 +173,7 @@ const enGB = {
163
173
  },
164
174
  dialPad: {
165
175
  inputLabel: "Phone number",
166
- deleteButtonLabel: "Delete",
176
+ deleteButtonLabel: "Delete last digit",
167
177
  callButtonLabel: "Call",
168
178
  endCallButtonLabel: "End call",
169
179
  digitOneLabel: "1",
@@ -248,6 +258,14 @@ const enGB = {
248
258
  cell: {
249
259
  selected: "Selected"
250
260
  }
261
+ },
262
+ pagination: {
263
+ previousPageLabel: "Go to previous page",
264
+ nextPageLabel: "Go to next page",
265
+ goToPageLabel: (
266
+ /* istanbul ignore next */
267
+ (index) => `Go to page ${index}`
268
+ )
251
269
  }
252
270
  };
253
271
 
package/locales/en-US.cjs CHANGED
@@ -320,8 +320,18 @@ const enUS = {
320
320
  dismissButtonLabel: "Close"
321
321
  },
322
322
  numberField: {
323
- incrementButtonLabel: "Increment",
324
- decrementButtonLabel: "Decrement"
323
+ incrementButtonLabel: (
324
+ /* istanbul ignore next */
325
+ (step) => step === 1 ? "Increase value" : `Increase value by ${step}`
326
+ ),
327
+ decrementButtonLabel: (
328
+ /* istanbul ignore next */
329
+ (step) => step === 1 ? "Decrease value" : `Decrease value by ${step}`
330
+ ),
331
+ updatedValueAnnouncement: (
332
+ /* istanbul ignore next */
333
+ (value) => `Updated value: ${value}`
334
+ )
325
335
  },
326
336
  splitButton: {
327
337
  showMoreActionsLabel: "Show more actions"
@@ -333,7 +343,7 @@ const enUS = {
333
343
  },
334
344
  dialPad: {
335
345
  inputLabel: "Phone number",
336
- deleteButtonLabel: "Delete",
346
+ deleteButtonLabel: "Delete last digit",
337
347
  callButtonLabel: "Call",
338
348
  endCallButtonLabel: "End call",
339
349
  digitOneLabel: "1",
@@ -418,6 +428,14 @@ const enUS = {
418
428
  cell: {
419
429
  selected: "Selected"
420
430
  }
431
+ },
432
+ pagination: {
433
+ previousPageLabel: "Go to previous page",
434
+ nextPageLabel: "Go to next page",
435
+ goToPageLabel: (
436
+ /* istanbul ignore next */
437
+ (index) => `Go to page ${index}`
438
+ )
421
439
  }
422
440
  };
423
441
 
package/locales/en-US.js CHANGED
@@ -318,8 +318,18 @@ const enUS = {
318
318
  dismissButtonLabel: "Close"
319
319
  },
320
320
  numberField: {
321
- incrementButtonLabel: "Increment",
322
- decrementButtonLabel: "Decrement"
321
+ incrementButtonLabel: (
322
+ /* istanbul ignore next */
323
+ (step) => step === 1 ? "Increase value" : `Increase value by ${step}`
324
+ ),
325
+ decrementButtonLabel: (
326
+ /* istanbul ignore next */
327
+ (step) => step === 1 ? "Decrease value" : `Decrease value by ${step}`
328
+ ),
329
+ updatedValueAnnouncement: (
330
+ /* istanbul ignore next */
331
+ (value) => `Updated value: ${value}`
332
+ )
323
333
  },
324
334
  splitButton: {
325
335
  showMoreActionsLabel: "Show more actions"
@@ -331,7 +341,7 @@ const enUS = {
331
341
  },
332
342
  dialPad: {
333
343
  inputLabel: "Phone number",
334
- deleteButtonLabel: "Delete",
344
+ deleteButtonLabel: "Delete last digit",
335
345
  callButtonLabel: "Call",
336
346
  endCallButtonLabel: "End call",
337
347
  digitOneLabel: "1",
@@ -416,6 +426,14 @@ const enUS = {
416
426
  cell: {
417
427
  selected: "Selected"
418
428
  }
429
+ },
430
+ pagination: {
431
+ previousPageLabel: "Go to previous page",
432
+ nextPageLabel: "Go to next page",
433
+ goToPageLabel: (
434
+ /* istanbul ignore next */
435
+ (index) => `Go to page ${index}`
436
+ )
419
437
  }
420
438
  };
421
439
 
package/locales/ja-JP.cjs CHANGED
@@ -319,8 +319,18 @@ const jaJP = {
319
319
  dismissButtonLabel: "閉じる"
320
320
  },
321
321
  numberField: {
322
- incrementButtonLabel: "増加",
323
- decrementButtonLabel: "減少"
322
+ incrementButtonLabel: (
323
+ /* istanbul ignore next */
324
+ (step) => step === 1 ? "価値を高める" : `値を${step}増加`
325
+ ),
326
+ decrementButtonLabel: (
327
+ /* istanbul ignore next */
328
+ (step) => step === 1 ? "値を下げる" : `値を${step}減らす`
329
+ ),
330
+ updatedValueAnnouncement: (
331
+ /* istanbul ignore next */
332
+ (value) => `更新された値: ${value}`
333
+ )
324
334
  },
325
335
  splitButton: {
326
336
  showMoreActionsLabel: "その他の操作を表示"
@@ -332,7 +342,7 @@ const jaJP = {
332
342
  },
333
343
  dialPad: {
334
344
  inputLabel: "電話番号",
335
- deleteButtonLabel: "消去",
345
+ deleteButtonLabel: "最後の桁を削除",
336
346
  callButtonLabel: "電話",
337
347
  endCallButtonLabel: "通話終了",
338
348
  digitOneLabel: "1",
@@ -417,6 +427,14 @@ const jaJP = {
417
427
  cell: {
418
428
  selected: "選択済み"
419
429
  }
430
+ },
431
+ pagination: {
432
+ previousPageLabel: "前のページへ",
433
+ nextPageLabel: "次のページへ",
434
+ goToPageLabel: (
435
+ /* istanbul ignore next */
436
+ (index) => `${index}ページへ`
437
+ )
420
438
  }
421
439
  };
422
440
 
package/locales/ja-JP.js CHANGED
@@ -317,8 +317,18 @@ const jaJP = {
317
317
  dismissButtonLabel: "閉じる"
318
318
  },
319
319
  numberField: {
320
- incrementButtonLabel: "増加",
321
- decrementButtonLabel: "減少"
320
+ incrementButtonLabel: (
321
+ /* istanbul ignore next */
322
+ (step) => step === 1 ? "価値を高める" : `値を${step}増加`
323
+ ),
324
+ decrementButtonLabel: (
325
+ /* istanbul ignore next */
326
+ (step) => step === 1 ? "値を下げる" : `値を${step}減らす`
327
+ ),
328
+ updatedValueAnnouncement: (
329
+ /* istanbul ignore next */
330
+ (value) => `更新された値: ${value}`
331
+ )
322
332
  },
323
333
  splitButton: {
324
334
  showMoreActionsLabel: "その他の操作を表示"
@@ -330,7 +340,7 @@ const jaJP = {
330
340
  },
331
341
  dialPad: {
332
342
  inputLabel: "電話番号",
333
- deleteButtonLabel: "消去",
343
+ deleteButtonLabel: "最後の桁を削除",
334
344
  callButtonLabel: "電話",
335
345
  endCallButtonLabel: "通話終了",
336
346
  digitOneLabel: "1",
@@ -415,6 +425,14 @@ const jaJP = {
415
425
  cell: {
416
426
  selected: "選択済み"
417
427
  }
428
+ },
429
+ pagination: {
430
+ previousPageLabel: "前のページへ",
431
+ nextPageLabel: "次のページへ",
432
+ goToPageLabel: (
433
+ /* istanbul ignore next */
434
+ (index) => `${index}ページへ`
435
+ )
418
436
  }
419
437
  };
420
438
 
package/locales/zh-CN.cjs CHANGED
@@ -321,8 +321,18 @@ const zhCN = {
321
321
  dismissButtonLabel: "关"
322
322
  },
323
323
  numberField: {
324
- incrementButtonLabel: "增量",
325
- decrementButtonLabel: "递减"
324
+ incrementButtonLabel: (
325
+ /* istanbul ignore next */
326
+ (step) => step === 1 ? "增加价值" : `价值增加 ${step}`
327
+ ),
328
+ decrementButtonLabel: (
329
+ /* istanbul ignore next */
330
+ (step) => step === 1 ? "减少价值" : `值减少 ${step}`
331
+ ),
332
+ updatedValueAnnouncement: (
333
+ /* istanbul ignore next */
334
+ (value) => `更新值:${value}`
335
+ )
326
336
  },
327
337
  splitButton: {
328
338
  showMoreActionsLabel: "显示更多操作"
@@ -334,7 +344,7 @@ const zhCN = {
334
344
  },
335
345
  dialPad: {
336
346
  inputLabel: "电话号码",
337
- deleteButtonLabel: "删除",
347
+ deleteButtonLabel: "删除最后一位数字",
338
348
  callButtonLabel: "称呼",
339
349
  endCallButtonLabel: "结束通话",
340
350
  digitOneLabel: "1",
@@ -419,6 +429,14 @@ const zhCN = {
419
429
  cell: {
420
430
  selected: "已选择"
421
431
  }
432
+ },
433
+ pagination: {
434
+ previousPageLabel: "转至上一页",
435
+ nextPageLabel: "转至下一页",
436
+ goToPageLabel: (
437
+ /* istanbul ignore next */
438
+ (index) => `转至第 ${index} 页`
439
+ )
422
440
  }
423
441
  };
424
442
 
package/locales/zh-CN.js CHANGED
@@ -319,8 +319,18 @@ const zhCN = {
319
319
  dismissButtonLabel: "关"
320
320
  },
321
321
  numberField: {
322
- incrementButtonLabel: "增量",
323
- decrementButtonLabel: "递减"
322
+ incrementButtonLabel: (
323
+ /* istanbul ignore next */
324
+ (step) => step === 1 ? "增加价值" : `价值增加 ${step}`
325
+ ),
326
+ decrementButtonLabel: (
327
+ /* istanbul ignore next */
328
+ (step) => step === 1 ? "减少价值" : `值减少 ${step}`
329
+ ),
330
+ updatedValueAnnouncement: (
331
+ /* istanbul ignore next */
332
+ (value) => `更新值:${value}`
333
+ )
324
334
  },
325
335
  splitButton: {
326
336
  showMoreActionsLabel: "显示更多操作"
@@ -332,7 +342,7 @@ const zhCN = {
332
342
  },
333
343
  dialPad: {
334
344
  inputLabel: "电话号码",
335
- deleteButtonLabel: "删除",
345
+ deleteButtonLabel: "删除最后一位数字",
336
346
  callButtonLabel: "称呼",
337
347
  endCallButtonLabel: "结束通话",
338
348
  digitOneLabel: "1",
@@ -417,6 +427,14 @@ const zhCN = {
417
427
  cell: {
418
428
  selected: "已选择"
419
429
  }
430
+ },
431
+ pagination: {
432
+ previousPageLabel: "转至上一页",
433
+ nextPageLabel: "转至下一页",
434
+ goToPageLabel: (
435
+ /* istanbul ignore next */
436
+ (index) => `转至第 ${index} 页`
437
+ )
420
438
  }
421
439
  };
422
440
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vonage/vivid",
3
- "version": "4.25.0",
3
+ "version": "4.26.0",
4
4
  "type": "module",
5
5
  "module": "./index.js",
6
6
  "main": "./index.cjs",
@@ -9,10 +9,10 @@ export declare function delegateAria<T>(boundProperties?: BoundAriaProperties<T>
9
9
  export declare const DelegatesAria: <T extends Constructor<VividElement>>(Base: T) => {
10
10
  new (...args: any[]): {
11
11
  _vividAriaBehaviour: "delegate";
12
+ connectedCallback(): void;
12
13
  specialHandling: boolean;
13
14
  readonly $fastController: import("@microsoft/fast-element").Controller;
14
15
  $emit(type: string, detail?: any, options?: Omit<CustomEventInit<any>, "detail"> | undefined): boolean | void;
15
- connectedCallback(): void;
16
16
  disconnectedCallback(): void;
17
17
  attributeChangedCallback(name: string, oldValue: string, newValue: string): void;
18
18
  accessKey: string;
@@ -6,10 +6,10 @@ export declare function applyHostSemantics<T>(boundProperties?: BoundAriaPropert
6
6
  export declare const HostSemantics: <T extends Constructor<VividElement>>(Base: T) => {
7
7
  new (...args: any[]): {
8
8
  _vividAriaBehaviour: "host";
9
+ connectedCallback(): void;
9
10
  specialHandling: boolean;
10
11
  readonly $fastController: import("@microsoft/fast-element").Controller;
11
12
  $emit(type: string, detail?: any, options?: Omit<CustomEventInit<any>, "detail"> | undefined): boolean | void;
12
- connectedCallback(): void;
13
13
  disconnectedCallback(): void;
14
14
  attributeChangedCallback(name: string, oldValue: string, newValue: string): void;
15
15
  accessKey: string;
@@ -4,6 +4,7 @@ const vividElement = require('./vivid-element.cjs');
4
4
  const definition = require('./definition28.cjs');
5
5
  const affix = require('./affix.cjs');
6
6
  const ref = require('./ref.cjs');
7
+ const slotted = require('./slotted.cjs');
7
8
  const when = require('./when.cjs');
8
9
 
9
10
  const styles = ":host{--_vvd-accordion-item-accent-firm-wrapper: var( --vvd-accordion-item-accent-firm )}.heading-button{--vvd-accordion-item-accent-firm: var( --_vvd-accordion-item-accent-firm-wrapper, var(--vvd-accordion-item-accent-primary) )}:host{display:flex;box-sizing:border-box;flex-direction:column}.heading-container{margin:0}.heading-button{--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: transparent;--_appearance-color-outline: transparent}.heading-button:where(.hover,:hover):where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: var(--_connotation-color-faint);--_appearance-color-outline: transparent}.heading-button:where(.active,:active):where(:not(.disabled,:disabled)){--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: var(--_connotation-color-soft);--_appearance-color-outline: transparent}.heading-button{--_connotation-color-faint: var(--vvd-accordion-item-accent-faint, var(--vvd-color-neutral-50));--_connotation-color-soft: var(--vvd-accordion-item-accent-soft, var(--vvd-color-neutral-100));--_connotation-color-firm: var(--vvd-accordion-item-accent-firm, var(--vvd-color-canvas-text))}.heading-button{--focus-stroke-gap-color: transparent;display:flex;width:100%;align-items:center;padding:16px;border:none;background-color:var(--_appearance-color-fill);color:var(--_appearance-color-text);cursor:pointer;text-align:left}.heading-button:focus-visible{box-shadow:0 0 0 4px color-mix(in srgb,var(--vvd-color-cta-500),transparent 85%),inset 0 0 0 3px var(--focus-stroke-gap-color, currentColor);outline:1px solid var(--focus-stroke-color, var(--vvd-color-cta-500));outline-offset:calc(-1px - var(--focus-inset, 0px))}.heading-button.size-condensed{font:var(--vvd-typography-base-extended-bold);gap:12px}.heading-button:not(.size-condensed){font:var(--vvd-typography-heading-4);gap:16px}.heading-content{flex:auto}.meta{overflow:hidden;max-width:var(--accordion-item-meta-inline-size, 20%);flex-shrink:0;color:var(--vvd-color-neutral-600);text-align:end;text-overflow:ellipsis;white-space:nowrap}.heading-button:not(.size-condensed) .meta{font:var(--vvd-typography-base-bold)}.heading-button.size-condensed .meta{font:var(--vvd-typography-base-condensed-bold)}.region{display:none;padding:8px 32px 24px 16px}.region:not(.size-condensed).padded{padding-inline-start:52px}:host([expanded]) .region{display:block}.region.size-condensed.padded{padding-inline-start:44px}slot[name=icon]{color:var(--vvd-color-neutral-600)}.heading-button:not(.size-condensed) slot[name=icon]{font:inherit}.heading-button.size-condensed slot[name=icon]{font:var(--vvd-typography-base-extended)}:host(:not([icon-trailing])) slot[name=icon]:last-of-type{color:var(--_appearance-color-text)}";
@@ -52,12 +53,18 @@ __decorateClass([
52
53
  __decorateClass([
53
54
  vividElement.attr
54
55
  ], AccordionItem.prototype, "heading");
56
+ __decorateClass([
57
+ vividElement.observable
58
+ ], AccordionItem.prototype, "_headingSlottedContent");
55
59
  __decorateClass([
56
60
  vividElement.attr({ mode: "boolean", attribute: "no-indicator" })
57
61
  ], AccordionItem.prototype, "noIndicator");
58
62
  __decorateClass([
59
63
  vividElement.attr
60
64
  ], AccordionItem.prototype, "meta");
65
+ __decorateClass([
66
+ vividElement.observable
67
+ ], AccordionItem.prototype, "_metaSlottedContent");
61
68
  __decorateClass([
62
69
  vividElement.attr
63
70
  ], AccordionItem.prototype, "size");
@@ -77,13 +84,22 @@ const header = (context, hTag) => {
77
84
 
78
85
  ${(x) => !x.iconTrailing ? affixIconTemplate(x.icon, affix.IconWrapper.Slot) : null}
79
86
 
80
- <span class="heading-content">${(x) => x.heading}</span>
87
+ <span class="heading-content">
88
+ <slot name="heading" ${slotted.slotted("_headingSlottedContent")}></slot>
89
+ ${when.when(
90
+ (x) => x.heading && !x._headingSlottedContent?.length,
91
+ vividElement.html`${(x) => x.heading}`
92
+ )}
93
+ </span>
81
94
 
82
- ${when.when((x) => x.meta, vividElement.html`<span class="meta">${(x) => x.meta}</span>`)}
95
+ <span class="meta">
96
+ <slot name="meta" ${slotted.slotted("_metaSlottedContent")}></slot>
97
+ ${when.when((x) => x.meta && !x._metaSlottedContent?.length, vividElement.html`${(x) => x.meta}`)}
98
+ </span>
83
99
 
84
100
  ${(x) => x.icon && x.iconTrailing ? affixIconTemplate(x.icon) : null}
85
101
  ${(x) => !(x.icon && x.iconTrailing) && !x.noIndicator ? affixIconTemplate(
86
- x.expanded ? "chevron-up-solid" : "chevron-down-solid"
102
+ x.expanded ? "chevron-up-line" : "chevron-down-line"
87
103
  ) : null}
88
104
 
89
105
  </button>
@@ -1,7 +1,8 @@
1
- import { V as VividElement, a as attr, n as nullableNumberConverter, h as html, d as createRegisterFunction, f as defineVividComponent } from './vivid-element.js';
1
+ import { V as VividElement, a as attr, n as nullableNumberConverter, o as observable, h as html, d as createRegisterFunction, f as defineVividComponent } from './vivid-element.js';
2
2
  import { i as iconDefinition } from './definition28.js';
3
3
  import { A as AffixIconWithTrailing, a as affixIconTemplateFactory, I as IconWrapper } from './affix.js';
4
4
  import { r as ref } from './ref.js';
5
+ import { s as slotted } from './slotted.js';
5
6
  import { w as when } from './when.js';
6
7
 
7
8
  const styles = ":host{--_vvd-accordion-item-accent-firm-wrapper: var( --vvd-accordion-item-accent-firm )}.heading-button{--vvd-accordion-item-accent-firm: var( --_vvd-accordion-item-accent-firm-wrapper, var(--vvd-accordion-item-accent-primary) )}:host{display:flex;box-sizing:border-box;flex-direction:column}.heading-container{margin:0}.heading-button{--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: transparent;--_appearance-color-outline: transparent}.heading-button:where(.hover,:hover):where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: var(--_connotation-color-faint);--_appearance-color-outline: transparent}.heading-button:where(.active,:active):where(:not(.disabled,:disabled)){--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: var(--_connotation-color-soft);--_appearance-color-outline: transparent}.heading-button{--_connotation-color-faint: var(--vvd-accordion-item-accent-faint, var(--vvd-color-neutral-50));--_connotation-color-soft: var(--vvd-accordion-item-accent-soft, var(--vvd-color-neutral-100));--_connotation-color-firm: var(--vvd-accordion-item-accent-firm, var(--vvd-color-canvas-text))}.heading-button{--focus-stroke-gap-color: transparent;display:flex;width:100%;align-items:center;padding:16px;border:none;background-color:var(--_appearance-color-fill);color:var(--_appearance-color-text);cursor:pointer;text-align:left}.heading-button:focus-visible{box-shadow:0 0 0 4px color-mix(in srgb,var(--vvd-color-cta-500),transparent 85%),inset 0 0 0 3px var(--focus-stroke-gap-color, currentColor);outline:1px solid var(--focus-stroke-color, var(--vvd-color-cta-500));outline-offset:calc(-1px - var(--focus-inset, 0px))}.heading-button.size-condensed{font:var(--vvd-typography-base-extended-bold);gap:12px}.heading-button:not(.size-condensed){font:var(--vvd-typography-heading-4);gap:16px}.heading-content{flex:auto}.meta{overflow:hidden;max-width:var(--accordion-item-meta-inline-size, 20%);flex-shrink:0;color:var(--vvd-color-neutral-600);text-align:end;text-overflow:ellipsis;white-space:nowrap}.heading-button:not(.size-condensed) .meta{font:var(--vvd-typography-base-bold)}.heading-button.size-condensed .meta{font:var(--vvd-typography-base-condensed-bold)}.region{display:none;padding:8px 32px 24px 16px}.region:not(.size-condensed).padded{padding-inline-start:52px}:host([expanded]) .region{display:block}.region.size-condensed.padded{padding-inline-start:44px}slot[name=icon]{color:var(--vvd-color-neutral-600)}.heading-button:not(.size-condensed) slot[name=icon]{font:inherit}.heading-button.size-condensed slot[name=icon]{font:var(--vvd-typography-base-extended)}:host(:not([icon-trailing])) slot[name=icon]:last-of-type{color:var(--_appearance-color-text)}";
@@ -50,12 +51,18 @@ __decorateClass([
50
51
  __decorateClass([
51
52
  attr
52
53
  ], AccordionItem.prototype, "heading");
54
+ __decorateClass([
55
+ observable
56
+ ], AccordionItem.prototype, "_headingSlottedContent");
53
57
  __decorateClass([
54
58
  attr({ mode: "boolean", attribute: "no-indicator" })
55
59
  ], AccordionItem.prototype, "noIndicator");
56
60
  __decorateClass([
57
61
  attr
58
62
  ], AccordionItem.prototype, "meta");
63
+ __decorateClass([
64
+ observable
65
+ ], AccordionItem.prototype, "_metaSlottedContent");
59
66
  __decorateClass([
60
67
  attr
61
68
  ], AccordionItem.prototype, "size");
@@ -75,13 +82,22 @@ const header = (context, hTag) => {
75
82
 
76
83
  ${(x) => !x.iconTrailing ? affixIconTemplate(x.icon, IconWrapper.Slot) : null}
77
84
 
78
- <span class="heading-content">${(x) => x.heading}</span>
85
+ <span class="heading-content">
86
+ <slot name="heading" ${slotted("_headingSlottedContent")}></slot>
87
+ ${when(
88
+ (x) => x.heading && !x._headingSlottedContent?.length,
89
+ html`${(x) => x.heading}`
90
+ )}
91
+ </span>
79
92
 
80
- ${when((x) => x.meta, html`<span class="meta">${(x) => x.meta}</span>`)}
93
+ <span class="meta">
94
+ <slot name="meta" ${slotted("_metaSlottedContent")}></slot>
95
+ ${when((x) => x.meta && !x._metaSlottedContent?.length, html`${(x) => x.meta}`)}
96
+ </span>
81
97
 
82
98
  ${(x) => x.icon && x.iconTrailing ? affixIconTemplate(x.icon) : null}
83
99
  ${(x) => !(x.icon && x.iconTrailing) && !x.noIndicator ? affixIconTemplate(
84
- x.expanded ? "chevron-up-solid" : "chevron-down-solid"
100
+ x.expanded ? "chevron-up-line" : "chevron-down-line"
85
101
  ) : null}
86
102
 
87
103
  </button>
@@ -160,7 +160,7 @@ const buttonContent = (context) => {
160
160
  vividElement.html`<span class="text" aria-hidden="true">${(x) => x.label}</span>`
161
161
  )}
162
162
  <span class="sr-only"
163
- >${(x) => x.pending ? x.locale.button.pendingLabel : x.label ?? x.ariaLabel}</span
163
+ >${(x) => x.pending ? x.locale.button.pendingLabel : x.ariaLabel ?? x.label}</span
164
164
  >
165
165
  </span>
166
166
  ${when.when((x) => x.dropdownIndicator, chevronTemplate)}`;
@@ -158,7 +158,7 @@ const buttonContent = (context) => {
158
158
  html`<span class="text" aria-hidden="true">${(x) => x.label}</span>`
159
159
  )}
160
160
  <span class="sr-only"
161
- >${(x) => x.pending ? x.locale.button.pendingLabel : x.label ?? x.ariaLabel}</span
161
+ >${(x) => x.pending ? x.locale.button.pendingLabel : x.ariaLabel ?? x.label}</span
162
162
  >
163
163
  </span>
164
164
  ${when((x) => x.dropdownIndicator, chevronTemplate)}`;
@@ -527,6 +527,14 @@ var __decorateClass = (decorators, target, key, kind) => {
527
527
  if (result) __defProp(target, key, result);
528
528
  return result;
529
529
  };
530
+ const isScrollable = (node) => {
531
+ const overflowY = window.getComputedStyle(node).overflowY;
532
+ const overflowX = window.getComputedStyle(node).overflowX;
533
+ return {
534
+ vertical: (overflowY === "auto" || overflowY === "scroll") && node.scrollHeight > node.clientHeight,
535
+ horizontal: (overflowX === "auto" || overflowX === "scroll") && node.scrollWidth > node.clientWidth
536
+ };
537
+ };
530
538
  class Calendar extends vividElement.VividElement {
531
539
  constructor() {
532
540
  super(...arguments);
@@ -613,6 +621,23 @@ class Calendar extends vividElement.VividElement {
613
621
  }
614
622
  return !isArrow;
615
623
  }
624
+ connectedCallback() {
625
+ super.connectedCallback();
626
+ this.initializeScrollPosition();
627
+ }
628
+ initializeScrollPosition() {
629
+ if (!isScrollable(this).vertical) {
630
+ return;
631
+ }
632
+ const initialScrollHour = 8;
633
+ const rowHeight = this.scrollHeight / this._hours;
634
+ const scrollPosition = rowHeight * (initialScrollHour - 1);
635
+ vividElement.DOM.queueUpdate(() => {
636
+ this.scrollTo({
637
+ top: scrollPosition
638
+ });
639
+ });
640
+ }
616
641
  }
617
642
  __decorateClass([
618
643
  vividElement.attr
@@ -1,4 +1,4 @@
1
- import { V as VividElement, a as attr, h as html, d as createRegisterFunction, f as defineVividComponent } from './vivid-element.js';
1
+ import { V as VividElement, D as DOM, a as attr, h as html, d as createRegisterFunction, f as defineVividComponent } from './vivid-element.js';
2
2
  import { d as Sticky } from './enums.js';
3
3
  import { C as CalendarEvent } from './calendar-event.js';
4
4
  import { b as _has, _ as _curry1, a as _curry2 } from './_has.js';
@@ -525,6 +525,14 @@ var __decorateClass = (decorators, target, key, kind) => {
525
525
  if (result) __defProp(target, key, result);
526
526
  return result;
527
527
  };
528
+ const isScrollable = (node) => {
529
+ const overflowY = window.getComputedStyle(node).overflowY;
530
+ const overflowX = window.getComputedStyle(node).overflowX;
531
+ return {
532
+ vertical: (overflowY === "auto" || overflowY === "scroll") && node.scrollHeight > node.clientHeight,
533
+ horizontal: (overflowX === "auto" || overflowX === "scroll") && node.scrollWidth > node.clientWidth
534
+ };
535
+ };
528
536
  class Calendar extends VividElement {
529
537
  constructor() {
530
538
  super(...arguments);
@@ -611,6 +619,23 @@ class Calendar extends VividElement {
611
619
  }
612
620
  return !isArrow;
613
621
  }
622
+ connectedCallback() {
623
+ super.connectedCallback();
624
+ this.initializeScrollPosition();
625
+ }
626
+ initializeScrollPosition() {
627
+ if (!isScrollable(this).vertical) {
628
+ return;
629
+ }
630
+ const initialScrollHour = 8;
631
+ const rowHeight = this.scrollHeight / this._hours;
632
+ const scrollPosition = rowHeight * (initialScrollHour - 1);
633
+ DOM.queueUpdate(() => {
634
+ this.scrollTo({
635
+ top: scrollPosition
636
+ });
637
+ });
638
+ }
614
639
  }
615
640
  __decorateClass([
616
641
  attr
@@ -124,7 +124,7 @@ __decorateClass([
124
124
  vividElement.observable
125
125
  ], Checkbox.prototype, "defaultSlottedNodes");
126
126
  __decorateClass([
127
- vividElement.observable
127
+ vividElement.attr({ attribute: "indeterminate", mode: "boolean" })
128
128
  ], Checkbox.prototype, "indeterminate");
129
129
  __decorateClass([
130
130
  vividElement.observable
@@ -122,7 +122,7 @@ __decorateClass([
122
122
  observable
123
123
  ], Checkbox.prototype, "defaultSlottedNodes");
124
124
  __decorateClass([
125
- observable
125
+ attr({ attribute: "indeterminate", mode: "boolean" })
126
126
  ], Checkbox.prototype, "indeterminate");
127
127
  __decorateClass([
128
128
  observable
@@ -160,7 +160,7 @@ class Combobox extends mixins.WithFeedback(
160
160
  }
161
161
  if (this.open) {
162
162
  const capturedOption = e.target.closest(
163
- `option,[role=option]`
163
+ `option,[role=option],[data-vvd-component=option]`
164
164
  );
165
165
  if (!capturedOption || capturedOption.disabled) {
166
166
  return;
@@ -158,7 +158,7 @@ class Combobox extends WithFeedback(
158
158
  }
159
159
  if (this.open) {
160
160
  const capturedOption = e.target.closest(
161
- `option,[role=option]`
161
+ `option,[role=option],[data-vvd-component=option]`
162
162
  );
163
163
  if (!capturedOption || capturedOption.disabled) {
164
164
  return;