@vonage/vivid 4.26.0 → 4.28.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 (131) hide show
  1. package/custom-elements.json +2398 -2120
  2. package/lib/accordion-item/accordion-item.d.ts +1 -1
  3. package/lib/alert/alert.d.ts +3 -3
  4. package/lib/audio-player/audio-player.d.ts +2 -2
  5. package/lib/avatar/avatar.d.ts +393 -1
  6. package/lib/avatar/avatar.template.d.ts +2 -2
  7. package/lib/badge/badge.d.ts +1 -1
  8. package/lib/banner/banner.d.ts +3 -3
  9. package/lib/button/button.d.ts +3 -3
  10. package/lib/checkbox/checkbox.d.ts +7 -7
  11. package/lib/combobox/combobox.d.ts +8 -8
  12. package/lib/data-grid/data-grid-cell.d.ts +2 -2
  13. package/lib/date-picker/date-picker.d.ts +71 -71
  14. package/lib/date-picker/date-picker.template.d.ts +1 -1
  15. package/lib/date-range-picker/date-range-picker.d.ts +42 -42
  16. package/lib/date-range-picker/date-range-picker.template.d.ts +1 -1
  17. package/lib/date-time-picker/date-time-picker.d.ts +60 -60
  18. package/lib/date-time-picker/date-time-picker.template.d.ts +1 -1
  19. package/lib/dial-pad/dial-pad.d.ts +2 -2
  20. package/lib/dialog/dialog.d.ts +2 -2
  21. package/lib/fab/fab.d.ts +1 -1
  22. package/lib/file-picker/file-picker.d.ts +7 -7
  23. package/lib/menu/menu.d.ts +1 -1
  24. package/lib/menu-item/menu-item.d.ts +1 -1
  25. package/lib/nav-disclosure/nav-disclosure.d.ts +1 -1
  26. package/lib/nav-item/nav-item.d.ts +1 -1
  27. package/lib/note/note.d.ts +1 -1
  28. package/lib/number-field/number-field.d.ts +10 -10
  29. package/lib/option/option.d.ts +1 -1
  30. package/lib/pagination/pagination.d.ts +2 -2
  31. package/lib/radio/radio.d.ts +3 -3
  32. package/lib/radio-group/radio-group.d.ts +3 -3
  33. package/lib/range-slider/range-slider.d.ts +4 -4
  34. package/lib/rich-text-editor/menubar/menubar.d.ts +2 -2
  35. package/lib/rich-text-editor/rich-text-editor.d.ts +2 -2
  36. package/lib/searchable-select/locale.d.ts +1 -1
  37. package/lib/searchable-select/option-tag.d.ts +2 -2
  38. package/lib/searchable-select/searchable-select.d.ts +10 -10
  39. package/lib/select/select.d.ts +8 -8
  40. package/lib/slider/slider.d.ts +3 -3
  41. package/lib/split-button/split-button.d.ts +3 -3
  42. package/lib/switch/switch.d.ts +1 -1
  43. package/lib/tab/tab.d.ts +3 -3
  44. package/lib/tag/locale.d.ts +3 -0
  45. package/lib/tag/tag.d.ts +341 -4
  46. package/lib/text-area/text-area.d.ts +10 -10
  47. package/lib/text-field/text-field.d.ts +11 -11
  48. package/lib/time-picker/time-picker.d.ts +19 -19
  49. package/lib/toggletip/toggletip.d.ts +1 -1
  50. package/lib/tooltip/tooltip.d.ts +1 -1
  51. package/lib/tree-item/tree-item.d.ts +1 -1
  52. package/lib/video-player/video-player.d.ts +2 -2
  53. package/locales/de-DE.cjs +19 -2
  54. package/locales/de-DE.js +19 -2
  55. package/locales/en-GB.cjs +19 -2
  56. package/locales/en-GB.js +19 -2
  57. package/locales/en-US.cjs +19 -2
  58. package/locales/en-US.js +19 -2
  59. package/locales/ja-JP.cjs +19 -2
  60. package/locales/ja-JP.js +19 -2
  61. package/locales/zh-CN.cjs +19 -2
  62. package/locales/zh-CN.js +19 -2
  63. package/package.json +73 -45
  64. package/shared/calendar-picker.template.cjs +48 -22
  65. package/shared/calendar-picker.template.js +48 -22
  66. package/shared/definition17.cjs +3 -3
  67. package/shared/definition17.js +3 -3
  68. package/shared/definition18.cjs +8 -1
  69. package/shared/definition18.js +8 -1
  70. package/shared/definition19.cjs +9 -2
  71. package/shared/definition19.js +9 -2
  72. package/shared/definition2.cjs +1 -1
  73. package/shared/definition2.js +1 -1
  74. package/shared/definition20.cjs +3 -1
  75. package/shared/definition20.js +3 -1
  76. package/shared/definition28.cjs +2 -2
  77. package/shared/definition28.js +2 -2
  78. package/shared/definition30.cjs +3 -2
  79. package/shared/definition30.js +3 -2
  80. package/shared/definition31.cjs +5 -1
  81. package/shared/definition31.js +5 -1
  82. package/shared/definition36.cjs +1 -1
  83. package/shared/definition36.js +1 -1
  84. package/shared/definition4.cjs +1 -1
  85. package/shared/definition4.js +1 -1
  86. package/shared/definition41.cjs +1 -1
  87. package/shared/definition41.js +1 -1
  88. package/shared/definition44.cjs +129 -117
  89. package/shared/definition44.js +130 -118
  90. package/shared/definition45.cjs +15 -5
  91. package/shared/definition45.js +15 -5
  92. package/shared/definition49.cjs +4 -4
  93. package/shared/definition49.js +4 -4
  94. package/shared/definition54.cjs +2 -2
  95. package/shared/definition54.js +2 -2
  96. package/shared/definition56.cjs +5 -4
  97. package/shared/definition56.js +5 -4
  98. package/shared/definition57.cjs +1 -1
  99. package/shared/definition57.js +1 -1
  100. package/shared/definition58.cjs +1 -1
  101. package/shared/definition58.js +1 -1
  102. package/shared/definition59.cjs +3 -1
  103. package/shared/definition59.js +3 -1
  104. package/shared/definition6.cjs +45 -12
  105. package/shared/definition6.js +45 -12
  106. package/shared/definition64.cjs +136 -38
  107. package/shared/definition64.js +136 -38
  108. package/shared/definition67.cjs +27 -14
  109. package/shared/definition67.js +27 -14
  110. package/shared/form-associated.cjs +4 -0
  111. package/shared/form-associated.js +4 -0
  112. package/shared/localization/Locale.d.ts +2 -0
  113. package/shared/picker-field/mixins/calendar-picker.d.ts +1 -1
  114. package/shared/picker-field/mixins/calendar-picker.locale.d.ts +5 -0
  115. package/shared/picker-field/mixins/calendar-picker.template.d.ts +1 -1
  116. package/shared/picker-field/mixins/calendar-segments/segment.d.ts +1 -0
  117. package/shared/picker-field/mixins/inline-time-picker/inline-time-picker.d.ts +1 -0
  118. package/shared/picker-field/mixins/min-max-calendar-picker.d.ts +2 -2
  119. package/shared/picker-field/mixins/single-date-picker.d.ts +1 -1
  120. package/shared/time-selection-picker.template.cjs +71 -22
  121. package/shared/time-selection-picker.template.js +71 -22
  122. package/shared/vivid-element.cjs +1 -1
  123. package/shared/vivid-element.js +1 -1
  124. package/styles/core/all.css +5 -5
  125. package/styles/core/theme.css +2 -2
  126. package/styles/core/typography.css +4 -4
  127. package/styles/fonts/spezia-variable.css +15 -15
  128. package/styles/tokens/theme-dark.css +4 -4
  129. package/styles/tokens/theme-light.css +4 -4
  130. package/styles/tokens/vivid-2-compat.css +1 -1
  131. package/vivid.api.json +241 -211
@@ -3,11 +3,12 @@
3
3
  const vividElement = require('./vivid-element.cjs');
4
4
  const divider = require('./divider.cjs');
5
5
  const definition = require('./definition11.cjs');
6
+ const definition$1 = require('./definition66.cjs');
6
7
  const repeat = require('./repeat.cjs');
7
8
  const when = require('./when.cjs');
8
9
  const classNames = require('./class-names.cjs');
9
10
 
10
- const calendarStyles = ".segments{display:inline-flex;gap:24px}.segment{display:flex;flex-direction:column;gap:12px}.segment .header{display:flex;align-items:center;padding-block:8px}.segment .title{display:flex;flex-grow:1;justify-content:center}.segment .title-action{border-radius:8px;block-size:24px;font:var(--vvd-typography-base-extended);padding-inline:8px}.calendar{display:flex;flex-direction:column;margin-top:8px;gap:4px}.calendar .calendar-separator{margin-inline:10px}.calendar .calendar-weekdays{display:flex;justify-content:center}.calendar .calendar-weekday{display:inline-flex;align-items:center;justify-content:center;block-size:16px;font:var(--vvd-typography-base-condensed);inline-size:40px}.calendar .calendar-week{display:flex;justify-content:center}.calendar .calendar-day{display:inline-flex;align-items:center;justify-content:center;border-radius:50%;aspect-ratio:1/1;block-size:28px;font:var(--vvd-typography-base);margin-inline:6px}.calendar .calendar-day.start,.calendar .calendar-day.end{border:2px solid var(--vvd-color-cta-50);background-color:var(--vvd-color-cta-200)}.calendar:focus-visible .calendar .calendar-day.start,.calendar:focus-visible .calendar .calendar-day.end{border-width:3px}.calendar .calendar-day:before,.calendar .calendar-day:after{position:absolute;z-index:-1;display:block;width:20px;height:28px}.calendar .calendar-day:before{right:50%}.calendar .calendar-day:after{left:50%}.calendar .calendar-day.range:before,.calendar .calendar-day.range:after{background-color:var(--vvd-color-cta-50)}.calendar .calendar-day.range:not(.start):before,.calendar .calendar-day.range:not(.end):after{content:\"\"}.calendar .calendar-day.outside-month,.calendar .calendar-day:disabled{color:var(--vvd-color-neutral-400)}.months-separator{margin-inline:-12px}.month-grid{display:flex;flex-direction:column;gap:34px}.month-grid .months-row{display:flex;justify-content:center;gap:29px}.month-grid .month{display:inline-flex;align-items:center;justify-content:center;border-radius:50%;aspect-ratio:1/1;block-size:48px;font:var(--vvd-typography-base-extended);text-transform:uppercase}.month-grid .month:disabled{color:var(--vvd-color-neutral-400)}.button{--_connotation-color-primary: var(--vvd-date-picker-accent-primary, var(--vvd-color-canvas-text));--_connotation-color-firm: var(--vvd-date-picker-accent-firm, var(--vvd-color-canvas-text));--_connotation-color-faint: var(--vvd-date-picker-accent-faint, var(--vvd-color-neutral-50));--_connotation-color-soft: var(--vvd-date-picker-accent-soft, var(--vvd-color-neutral-100));--_connotation-color-dim: var(--vvd-date-picker-accent-dim, var(--vvd-color-neutral-200));--_connotation-color-pale: var(--vvd-date-picker-accent-pale, var(--vvd-color-neutral-300))}.button{--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: transparent;--_appearance-color-outline: transparent}.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}.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}.button:where(.selected):where(:not(.disabled,:disabled)){--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: var(--_connotation-color-soft);--_appearance-color-outline: transparent}.button:where(.selected):where(.hover,:hover):where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: var(--_connotation-color-dim);--_appearance-color-outline: transparent}.button:where(.selected):where(.disabled,:disabled){--_appearance-color-text: var(--vvd-color-neutral-300);--_appearance-color-fill: var(--vvd-color-neutral-200);--_appearance-color-outline: transparent}.button{position:relative;padding:0;border:none;background-color:var(--_appearance-color-fill);color:var(--_appearance-color-text);cursor:pointer}.button:focus-visible{--focus-stroke-gap-color: transparent;color:var(--vvd-color-canvas-text);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))}.button:focus-visible.start,.button:focus-visible.end{border-width:3px}.button.current{border:1px solid var(--vvd-color-neutral-200)}.button:disabled{cursor:not-allowed}";
11
+ const calendarStyles = ".segments{display:inline-flex;gap:24px}.segment{display:flex;flex-direction:column;gap:12px}.segment .header{--focus-stroke-gap-color: transparent;display:flex;align-items:center;padding-block:8px}.segment .header: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))}.segment .title{display:flex;flex-grow:1;justify-content:center}.segment .title-action{border-radius:8px;block-size:24px;font:var(--vvd-typography-base-extended);padding-inline:8px}.calendar{display:flex;flex-direction:column;margin-top:8px;gap:4px}.calendar .calendar-separator{margin-inline:10px}.calendar .calendar-weekdays{display:flex;justify-content:center}.calendar .calendar-weekday{display:inline-flex;align-items:center;justify-content:center;block-size:16px;font:var(--vvd-typography-base-condensed);inline-size:40px}.calendar .calendar-week{display:flex;justify-content:center}.calendar .calendar-day{display:inline-flex;align-items:center;justify-content:center;border-radius:50%;aspect-ratio:1/1;block-size:28px;font:var(--vvd-typography-base);margin-inline:6px}.calendar .calendar-day.start,.calendar .calendar-day.end{border:2px solid var(--vvd-color-cta-50);background-color:var(--vvd-color-cta-200)}.calendar:focus-visible .calendar .calendar-day.start,.calendar:focus-visible .calendar .calendar-day.end{border-width:3px}.calendar .calendar-day:before,.calendar .calendar-day:after{position:absolute;z-index:-1;display:block;width:20px;height:28px}.calendar .calendar-day:before{right:50%}.calendar .calendar-day:after{left:50%}.calendar .calendar-day.range:before,.calendar .calendar-day.range:after{background-color:var(--vvd-color-cta-50)}.calendar .calendar-day.range:not(.start):before,.calendar .calendar-day.range:not(.end):after{content:\"\"}.calendar .calendar-day.outside-month,.calendar .calendar-day:disabled{color:var(--vvd-color-neutral-400)}.months-separator{margin-inline:-12px}.month-grid{display:flex;flex-direction:column;gap:34px}.month-grid .months-row{display:flex;justify-content:center;gap:29px}.month-grid .month{display:inline-flex;align-items:center;justify-content:center;border-radius:50%;aspect-ratio:1/1;block-size:48px;font:var(--vvd-typography-base-extended);text-transform:uppercase}.month-grid .month:disabled{color:var(--vvd-color-neutral-400)}.button{--_connotation-color-primary: var(--vvd-date-picker-accent-primary, var(--vvd-color-canvas-text));--_connotation-color-firm: var(--vvd-date-picker-accent-firm, var(--vvd-color-canvas-text));--_connotation-color-faint: var(--vvd-date-picker-accent-faint, var(--vvd-color-neutral-50));--_connotation-color-soft: var(--vvd-date-picker-accent-soft, var(--vvd-color-neutral-100));--_connotation-color-dim: var(--vvd-date-picker-accent-dim, var(--vvd-color-neutral-200));--_connotation-color-pale: var(--vvd-date-picker-accent-pale, var(--vvd-color-neutral-300))}.button{--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: transparent;--_appearance-color-outline: transparent}.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}.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}.button:where(.selected):where(:not(.disabled,:disabled)){--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: var(--_connotation-color-soft);--_appearance-color-outline: transparent}.button:where(.selected):where(.hover,:hover):where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: var(--_connotation-color-dim);--_appearance-color-outline: transparent}.button:where(.selected):where(.disabled,:disabled){--_appearance-color-text: var(--vvd-color-neutral-300);--_appearance-color-fill: var(--vvd-color-neutral-200);--_appearance-color-outline: transparent}.button{position:relative;padding:0;border:none;background-color:var(--_appearance-color-fill);color:var(--_appearance-color-text);cursor:pointer}.button:disabled{cursor:not-allowed}.button:focus:not(.title-action),.button.title-action:focus-visible{--focus-stroke-gap-color: transparent;color:var(--vvd-color-canvas-text);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))}.button:focus:not(.title-action).start,.button:focus:not(.title-action).end,.button.title-action:focus-visible.start,.button.title-action:focus-visible.end{border-width:3px}.button.current{border:1px solid var(--vvd-color-neutral-200)}";
11
12
 
12
13
  /**
13
14
  * @name toDate
@@ -5686,11 +5687,10 @@ const CalendarPicker = (Base) => {
5686
5687
  super._onPickerButtonClick();
5687
5688
  if (this._popupOpen) {
5688
5689
  vividElement.DOM.processUpdates();
5689
- const tabbableDate = this._tabbableDate;
5690
- if (tabbableDate)
5691
- this.shadowRoot.querySelector(
5692
- `[data-date="${tabbableDate}"]`
5693
- ).focus();
5690
+ const headerElement = this._dialogEl.querySelector(
5691
+ ".header"
5692
+ );
5693
+ headerElement?.focus();
5694
5694
  }
5695
5695
  }
5696
5696
  // --- Calendar header ---
@@ -5775,6 +5775,9 @@ const CalendarPicker = (Base) => {
5775
5775
  type: "month-picker",
5776
5776
  title: `${this._monthPickerYear}`,
5777
5777
  titleClickable: true,
5778
+ titleAriaLabel: this.locale.calendarPicker.showCalendarForMonthLabel(
5779
+ `${this.locale.calendarPicker.months.name[this._selectedMonth.month]} ${this._selectedMonth.year}`
5780
+ ),
5778
5781
  prevYearButton: true,
5779
5782
  nextYearButton: true,
5780
5783
  months: buildMonthPickerGrid(
@@ -5793,6 +5796,9 @@ const CalendarPicker = (Base) => {
5793
5796
  type: "calendar",
5794
5797
  title: `${this.locale.calendarPicker.months.name[month.month]} ${month.year}`,
5795
5798
  titleClickable: isSingle,
5799
+ titleAriaLabel: this.locale.calendarPicker.changeMonthLabel(
5800
+ `${this.locale.calendarPicker.months.name[month.month]} ${month.year}`
5801
+ ),
5796
5802
  prevYearButton: isFirst && isSingle,
5797
5803
  prevMonthButton: isFirst,
5798
5804
  nextMonthButton: isLast,
@@ -6051,7 +6057,7 @@ const MinMaxCalendarPicker = (SuperClass) => {
6051
6057
 
6052
6058
  function renderDialogHeader(context) {
6053
6059
  const buttonTag = context.tagFor(definition.Button);
6054
- return vividElement.html` <div class="header">
6060
+ return vividElement.html`<div class="header" tabindex="-1">
6055
6061
  ${when.when(
6056
6062
  (x) => x.prevYearButton,
6057
6063
  vividElement.html`
@@ -6089,6 +6095,7 @@ function renderDialogHeader(context) {
6089
6095
  id="${(x) => `grid-label-${x.id}`}"
6090
6096
  class="title-action button"
6091
6097
  aria-live="polite"
6098
+ aria-label="${(x) => x.titleAriaLabel}"
6092
6099
  @click="${(_, c) => c.parent._onTitleActionClick()}"
6093
6100
  >
6094
6101
  ${(x) => x.title}
@@ -6141,6 +6148,7 @@ function renderDialogHeader(context) {
6141
6148
  }
6142
6149
  function renderCalendarGrid(context) {
6143
6150
  const dividerTag = context.tagFor(divider.Divider);
6151
+ const visuallyHiddenTag = context.tagFor(definition$1.VisuallyHidden);
6144
6152
  return vividElement.html`
6145
6153
  <div
6146
6154
  class='calendar'
@@ -6212,17 +6220,10 @@ function renderCalendarGrid(context) {
6212
6220
  ?disabled="${(x, c) => !c.parentContext.parentContext.parent._isDateInValidRange(
6213
6221
  x.date
6214
6222
  )}"
6215
- tabindex="${(x, c) => x.date === c.parentContext.parentContext.parent._tabbableDate ? 2 : -1}"
6216
- aria-selected="${(x, c) => c.parentContext.parentContext.parent._isDateAriaSelected(
6217
- x.date
6218
- )}"
6223
+ tabindex="${(x, c) => x.date === c.parentContext.parentContext.parent._tabbableDate ? 1 : -1}"
6219
6224
  data-date="${(x) => x.date}"
6220
- @click="${(x, c) => c.parentContext.parentContext.parent._onDateClick(
6221
- x.date
6222
- )}"
6223
- @focus="${(x, c) => c.parentContext.parentContext.parent._onDateFocus(
6224
- x.date
6225
- )}"
6225
+ @click="${(x, c) => c.parentContext.parentContext.parent._onDateClick(x.date)}"
6226
+ @focus="${(x, c) => c.parentContext.parentContext.parent._onDateFocus(x.date)}"
6226
6227
  @mouseenter="${(x, c) => c.parentContext.parentContext.parent._onDateMouseEnter(
6227
6228
  x.date
6228
6229
  )}"
@@ -6235,6 +6236,21 @@ function renderCalendarGrid(context) {
6235
6236
  )}"
6236
6237
  >
6237
6238
  ${(x) => x.label}
6239
+ <${visuallyHiddenTag}>${(x, c) => {
6240
+ const picker = c.parentContext.parentContext.parent;
6241
+ const announcements = [];
6242
+ if (x.date === picker._currentDate) {
6243
+ announcements.push(
6244
+ picker.locale.calendarPicker.todayLabel
6245
+ );
6246
+ }
6247
+ if (picker._isDateAriaSelected(x.date)) {
6248
+ announcements.push(
6249
+ picker.locale.calendarPicker.selectedLabel
6250
+ );
6251
+ }
6252
+ return announcements.join(" ");
6253
+ }}</${visuallyHiddenTag}>
6238
6254
  </button>
6239
6255
  </span>`
6240
6256
  )}
@@ -6246,6 +6262,7 @@ function renderCalendarGrid(context) {
6246
6262
  }
6247
6263
  function renderMonthPickerGrid(context) {
6248
6264
  const dividerTag = context.tagFor(divider.Divider);
6265
+ const visuallyHiddenTag = context.tagFor(definition$1.VisuallyHidden);
6249
6266
  return vividElement.html`
6250
6267
  <${dividerTag}
6251
6268
  class='months-separator'
@@ -6286,12 +6303,8 @@ function renderMonthPickerGrid(context) {
6286
6303
  tabindex="${(x, c) => c.parentContext.parentContext.parent._tabbableMonth && areMonthsEqual(
6287
6304
  x.month,
6288
6305
  c.parentContext.parentContext.parent._tabbableMonth
6289
- ) ? 2 : -1}"
6306
+ ) ? 1 : -1}"
6290
6307
  aria-label="${(x) => x.monthName}"
6291
- aria-selected="${(x, c) => areMonthsEqual(
6292
- x.month,
6293
- c.parentContext.parentContext.parent._selectedMonth
6294
- )}"
6295
6308
  data-month="${(x) => monthToStr(x.month)}"
6296
6309
  ?disabled="${(x, c) => !c.parentContext.parentContext.parent._isMonthInValidRange(
6297
6310
  x.month
@@ -6308,6 +6321,19 @@ function renderMonthPickerGrid(context) {
6308
6321
  )}"
6309
6322
  >
6310
6323
  ${(x) => x.label}
6324
+ <${visuallyHiddenTag}>${(x, c) => {
6325
+ const picker = c.parentContext.parentContext.parent;
6326
+ const announcements = [];
6327
+ if (areMonthsEqual(x.month, picker._currentMonth)) {
6328
+ announcements.push(picker.locale.calendarPicker.currentLabel);
6329
+ }
6330
+ if (areMonthsEqual(x.month, picker._selectedMonth)) {
6331
+ announcements.push(
6332
+ picker.locale.calendarPicker.selectedLabel
6333
+ );
6334
+ }
6335
+ return announcements.join(" ");
6336
+ }}</${visuallyHiddenTag}>
6311
6337
  </button>
6312
6338
  </span>
6313
6339
  `
@@ -1,11 +1,12 @@
1
1
  import { o as observable, v as volatile, D as DOM, a as attr, h as html } from './vivid-element.js';
2
2
  import { D as Divider } from './divider.js';
3
3
  import { B as Button } from './definition11.js';
4
+ import { V as VisuallyHidden } from './definition66.js';
4
5
  import { r as repeat } from './repeat.js';
5
6
  import { w as when } from './when.js';
6
7
  import { c as classNames } from './class-names.js';
7
8
 
8
- const calendarStyles = ".segments{display:inline-flex;gap:24px}.segment{display:flex;flex-direction:column;gap:12px}.segment .header{display:flex;align-items:center;padding-block:8px}.segment .title{display:flex;flex-grow:1;justify-content:center}.segment .title-action{border-radius:8px;block-size:24px;font:var(--vvd-typography-base-extended);padding-inline:8px}.calendar{display:flex;flex-direction:column;margin-top:8px;gap:4px}.calendar .calendar-separator{margin-inline:10px}.calendar .calendar-weekdays{display:flex;justify-content:center}.calendar .calendar-weekday{display:inline-flex;align-items:center;justify-content:center;block-size:16px;font:var(--vvd-typography-base-condensed);inline-size:40px}.calendar .calendar-week{display:flex;justify-content:center}.calendar .calendar-day{display:inline-flex;align-items:center;justify-content:center;border-radius:50%;aspect-ratio:1/1;block-size:28px;font:var(--vvd-typography-base);margin-inline:6px}.calendar .calendar-day.start,.calendar .calendar-day.end{border:2px solid var(--vvd-color-cta-50);background-color:var(--vvd-color-cta-200)}.calendar:focus-visible .calendar .calendar-day.start,.calendar:focus-visible .calendar .calendar-day.end{border-width:3px}.calendar .calendar-day:before,.calendar .calendar-day:after{position:absolute;z-index:-1;display:block;width:20px;height:28px}.calendar .calendar-day:before{right:50%}.calendar .calendar-day:after{left:50%}.calendar .calendar-day.range:before,.calendar .calendar-day.range:after{background-color:var(--vvd-color-cta-50)}.calendar .calendar-day.range:not(.start):before,.calendar .calendar-day.range:not(.end):after{content:\"\"}.calendar .calendar-day.outside-month,.calendar .calendar-day:disabled{color:var(--vvd-color-neutral-400)}.months-separator{margin-inline:-12px}.month-grid{display:flex;flex-direction:column;gap:34px}.month-grid .months-row{display:flex;justify-content:center;gap:29px}.month-grid .month{display:inline-flex;align-items:center;justify-content:center;border-radius:50%;aspect-ratio:1/1;block-size:48px;font:var(--vvd-typography-base-extended);text-transform:uppercase}.month-grid .month:disabled{color:var(--vvd-color-neutral-400)}.button{--_connotation-color-primary: var(--vvd-date-picker-accent-primary, var(--vvd-color-canvas-text));--_connotation-color-firm: var(--vvd-date-picker-accent-firm, var(--vvd-color-canvas-text));--_connotation-color-faint: var(--vvd-date-picker-accent-faint, var(--vvd-color-neutral-50));--_connotation-color-soft: var(--vvd-date-picker-accent-soft, var(--vvd-color-neutral-100));--_connotation-color-dim: var(--vvd-date-picker-accent-dim, var(--vvd-color-neutral-200));--_connotation-color-pale: var(--vvd-date-picker-accent-pale, var(--vvd-color-neutral-300))}.button{--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: transparent;--_appearance-color-outline: transparent}.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}.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}.button:where(.selected):where(:not(.disabled,:disabled)){--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: var(--_connotation-color-soft);--_appearance-color-outline: transparent}.button:where(.selected):where(.hover,:hover):where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: var(--_connotation-color-dim);--_appearance-color-outline: transparent}.button:where(.selected):where(.disabled,:disabled){--_appearance-color-text: var(--vvd-color-neutral-300);--_appearance-color-fill: var(--vvd-color-neutral-200);--_appearance-color-outline: transparent}.button{position:relative;padding:0;border:none;background-color:var(--_appearance-color-fill);color:var(--_appearance-color-text);cursor:pointer}.button:focus-visible{--focus-stroke-gap-color: transparent;color:var(--vvd-color-canvas-text);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))}.button:focus-visible.start,.button:focus-visible.end{border-width:3px}.button.current{border:1px solid var(--vvd-color-neutral-200)}.button:disabled{cursor:not-allowed}";
9
+ const calendarStyles = ".segments{display:inline-flex;gap:24px}.segment{display:flex;flex-direction:column;gap:12px}.segment .header{--focus-stroke-gap-color: transparent;display:flex;align-items:center;padding-block:8px}.segment .header: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))}.segment .title{display:flex;flex-grow:1;justify-content:center}.segment .title-action{border-radius:8px;block-size:24px;font:var(--vvd-typography-base-extended);padding-inline:8px}.calendar{display:flex;flex-direction:column;margin-top:8px;gap:4px}.calendar .calendar-separator{margin-inline:10px}.calendar .calendar-weekdays{display:flex;justify-content:center}.calendar .calendar-weekday{display:inline-flex;align-items:center;justify-content:center;block-size:16px;font:var(--vvd-typography-base-condensed);inline-size:40px}.calendar .calendar-week{display:flex;justify-content:center}.calendar .calendar-day{display:inline-flex;align-items:center;justify-content:center;border-radius:50%;aspect-ratio:1/1;block-size:28px;font:var(--vvd-typography-base);margin-inline:6px}.calendar .calendar-day.start,.calendar .calendar-day.end{border:2px solid var(--vvd-color-cta-50);background-color:var(--vvd-color-cta-200)}.calendar:focus-visible .calendar .calendar-day.start,.calendar:focus-visible .calendar .calendar-day.end{border-width:3px}.calendar .calendar-day:before,.calendar .calendar-day:after{position:absolute;z-index:-1;display:block;width:20px;height:28px}.calendar .calendar-day:before{right:50%}.calendar .calendar-day:after{left:50%}.calendar .calendar-day.range:before,.calendar .calendar-day.range:after{background-color:var(--vvd-color-cta-50)}.calendar .calendar-day.range:not(.start):before,.calendar .calendar-day.range:not(.end):after{content:\"\"}.calendar .calendar-day.outside-month,.calendar .calendar-day:disabled{color:var(--vvd-color-neutral-400)}.months-separator{margin-inline:-12px}.month-grid{display:flex;flex-direction:column;gap:34px}.month-grid .months-row{display:flex;justify-content:center;gap:29px}.month-grid .month{display:inline-flex;align-items:center;justify-content:center;border-radius:50%;aspect-ratio:1/1;block-size:48px;font:var(--vvd-typography-base-extended);text-transform:uppercase}.month-grid .month:disabled{color:var(--vvd-color-neutral-400)}.button{--_connotation-color-primary: var(--vvd-date-picker-accent-primary, var(--vvd-color-canvas-text));--_connotation-color-firm: var(--vvd-date-picker-accent-firm, var(--vvd-color-canvas-text));--_connotation-color-faint: var(--vvd-date-picker-accent-faint, var(--vvd-color-neutral-50));--_connotation-color-soft: var(--vvd-date-picker-accent-soft, var(--vvd-color-neutral-100));--_connotation-color-dim: var(--vvd-date-picker-accent-dim, var(--vvd-color-neutral-200));--_connotation-color-pale: var(--vvd-date-picker-accent-pale, var(--vvd-color-neutral-300))}.button{--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: transparent;--_appearance-color-outline: transparent}.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}.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}.button:where(.selected):where(:not(.disabled,:disabled)){--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: var(--_connotation-color-soft);--_appearance-color-outline: transparent}.button:where(.selected):where(.hover,:hover):where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: var(--_connotation-color-dim);--_appearance-color-outline: transparent}.button:where(.selected):where(.disabled,:disabled){--_appearance-color-text: var(--vvd-color-neutral-300);--_appearance-color-fill: var(--vvd-color-neutral-200);--_appearance-color-outline: transparent}.button{position:relative;padding:0;border:none;background-color:var(--_appearance-color-fill);color:var(--_appearance-color-text);cursor:pointer}.button:disabled{cursor:not-allowed}.button:focus:not(.title-action),.button.title-action:focus-visible{--focus-stroke-gap-color: transparent;color:var(--vvd-color-canvas-text);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))}.button:focus:not(.title-action).start,.button:focus:not(.title-action).end,.button.title-action:focus-visible.start,.button.title-action:focus-visible.end{border-width:3px}.button.current{border:1px solid var(--vvd-color-neutral-200)}";
9
10
 
10
11
  /**
11
12
  * @name toDate
@@ -5684,11 +5685,10 @@ const CalendarPicker = (Base) => {
5684
5685
  super._onPickerButtonClick();
5685
5686
  if (this._popupOpen) {
5686
5687
  DOM.processUpdates();
5687
- const tabbableDate = this._tabbableDate;
5688
- if (tabbableDate)
5689
- this.shadowRoot.querySelector(
5690
- `[data-date="${tabbableDate}"]`
5691
- ).focus();
5688
+ const headerElement = this._dialogEl.querySelector(
5689
+ ".header"
5690
+ );
5691
+ headerElement?.focus();
5692
5692
  }
5693
5693
  }
5694
5694
  // --- Calendar header ---
@@ -5773,6 +5773,9 @@ const CalendarPicker = (Base) => {
5773
5773
  type: "month-picker",
5774
5774
  title: `${this._monthPickerYear}`,
5775
5775
  titleClickable: true,
5776
+ titleAriaLabel: this.locale.calendarPicker.showCalendarForMonthLabel(
5777
+ `${this.locale.calendarPicker.months.name[this._selectedMonth.month]} ${this._selectedMonth.year}`
5778
+ ),
5776
5779
  prevYearButton: true,
5777
5780
  nextYearButton: true,
5778
5781
  months: buildMonthPickerGrid(
@@ -5791,6 +5794,9 @@ const CalendarPicker = (Base) => {
5791
5794
  type: "calendar",
5792
5795
  title: `${this.locale.calendarPicker.months.name[month.month]} ${month.year}`,
5793
5796
  titleClickable: isSingle,
5797
+ titleAriaLabel: this.locale.calendarPicker.changeMonthLabel(
5798
+ `${this.locale.calendarPicker.months.name[month.month]} ${month.year}`
5799
+ ),
5794
5800
  prevYearButton: isFirst && isSingle,
5795
5801
  prevMonthButton: isFirst,
5796
5802
  nextMonthButton: isLast,
@@ -6049,7 +6055,7 @@ const MinMaxCalendarPicker = (SuperClass) => {
6049
6055
 
6050
6056
  function renderDialogHeader(context) {
6051
6057
  const buttonTag = context.tagFor(Button);
6052
- return html` <div class="header">
6058
+ return html`<div class="header" tabindex="-1">
6053
6059
  ${when(
6054
6060
  (x) => x.prevYearButton,
6055
6061
  html`
@@ -6087,6 +6093,7 @@ function renderDialogHeader(context) {
6087
6093
  id="${(x) => `grid-label-${x.id}`}"
6088
6094
  class="title-action button"
6089
6095
  aria-live="polite"
6096
+ aria-label="${(x) => x.titleAriaLabel}"
6090
6097
  @click="${(_, c) => c.parent._onTitleActionClick()}"
6091
6098
  >
6092
6099
  ${(x) => x.title}
@@ -6139,6 +6146,7 @@ function renderDialogHeader(context) {
6139
6146
  }
6140
6147
  function renderCalendarGrid(context) {
6141
6148
  const dividerTag = context.tagFor(Divider);
6149
+ const visuallyHiddenTag = context.tagFor(VisuallyHidden);
6142
6150
  return html`
6143
6151
  <div
6144
6152
  class='calendar'
@@ -6210,17 +6218,10 @@ function renderCalendarGrid(context) {
6210
6218
  ?disabled="${(x, c) => !c.parentContext.parentContext.parent._isDateInValidRange(
6211
6219
  x.date
6212
6220
  )}"
6213
- tabindex="${(x, c) => x.date === c.parentContext.parentContext.parent._tabbableDate ? 2 : -1}"
6214
- aria-selected="${(x, c) => c.parentContext.parentContext.parent._isDateAriaSelected(
6215
- x.date
6216
- )}"
6221
+ tabindex="${(x, c) => x.date === c.parentContext.parentContext.parent._tabbableDate ? 1 : -1}"
6217
6222
  data-date="${(x) => x.date}"
6218
- @click="${(x, c) => c.parentContext.parentContext.parent._onDateClick(
6219
- x.date
6220
- )}"
6221
- @focus="${(x, c) => c.parentContext.parentContext.parent._onDateFocus(
6222
- x.date
6223
- )}"
6223
+ @click="${(x, c) => c.parentContext.parentContext.parent._onDateClick(x.date)}"
6224
+ @focus="${(x, c) => c.parentContext.parentContext.parent._onDateFocus(x.date)}"
6224
6225
  @mouseenter="${(x, c) => c.parentContext.parentContext.parent._onDateMouseEnter(
6225
6226
  x.date
6226
6227
  )}"
@@ -6233,6 +6234,21 @@ function renderCalendarGrid(context) {
6233
6234
  )}"
6234
6235
  >
6235
6236
  ${(x) => x.label}
6237
+ <${visuallyHiddenTag}>${(x, c) => {
6238
+ const picker = c.parentContext.parentContext.parent;
6239
+ const announcements = [];
6240
+ if (x.date === picker._currentDate) {
6241
+ announcements.push(
6242
+ picker.locale.calendarPicker.todayLabel
6243
+ );
6244
+ }
6245
+ if (picker._isDateAriaSelected(x.date)) {
6246
+ announcements.push(
6247
+ picker.locale.calendarPicker.selectedLabel
6248
+ );
6249
+ }
6250
+ return announcements.join(" ");
6251
+ }}</${visuallyHiddenTag}>
6236
6252
  </button>
6237
6253
  </span>`
6238
6254
  )}
@@ -6244,6 +6260,7 @@ function renderCalendarGrid(context) {
6244
6260
  }
6245
6261
  function renderMonthPickerGrid(context) {
6246
6262
  const dividerTag = context.tagFor(Divider);
6263
+ const visuallyHiddenTag = context.tagFor(VisuallyHidden);
6247
6264
  return html`
6248
6265
  <${dividerTag}
6249
6266
  class='months-separator'
@@ -6284,12 +6301,8 @@ function renderMonthPickerGrid(context) {
6284
6301
  tabindex="${(x, c) => c.parentContext.parentContext.parent._tabbableMonth && areMonthsEqual(
6285
6302
  x.month,
6286
6303
  c.parentContext.parentContext.parent._tabbableMonth
6287
- ) ? 2 : -1}"
6304
+ ) ? 1 : -1}"
6288
6305
  aria-label="${(x) => x.monthName}"
6289
- aria-selected="${(x, c) => areMonthsEqual(
6290
- x.month,
6291
- c.parentContext.parentContext.parent._selectedMonth
6292
- )}"
6293
6306
  data-month="${(x) => monthToStr(x.month)}"
6294
6307
  ?disabled="${(x, c) => !c.parentContext.parentContext.parent._isMonthInValidRange(
6295
6308
  x.month
@@ -6306,6 +6319,19 @@ function renderMonthPickerGrid(context) {
6306
6319
  )}"
6307
6320
  >
6308
6321
  ${(x) => x.label}
6322
+ <${visuallyHiddenTag}>${(x, c) => {
6323
+ const picker = c.parentContext.parentContext.parent;
6324
+ const announcements = [];
6325
+ if (areMonthsEqual(x.month, picker._currentMonth)) {
6326
+ announcements.push(picker.locale.calendarPicker.currentLabel);
6327
+ }
6328
+ if (areMonthsEqual(x.month, picker._selectedMonth)) {
6329
+ announcements.push(
6330
+ picker.locale.calendarPicker.selectedLabel
6331
+ );
6332
+ }
6333
+ return announcements.join(" ");
6334
+ }}</${visuallyHiddenTag}>
6309
6335
  </button>
6310
6336
  </span>
6311
6337
  `
@@ -75,7 +75,7 @@ const defaultHeaderCellContentsTemplate = vividElement.html`
75
75
  class DataGridCell extends localized.Localized(vividElement.VividElement) {
76
76
  constructor() {
77
77
  super(...arguments);
78
- // eslint-disable-next-line @nrwl/nx/workspace/no-attribute-default-value
78
+ // eslint-disable-next-line @repo/repo/no-attribute-default-value
79
79
  this.cellType = DataGridCellTypes.default;
80
80
  this.rowData = null;
81
81
  this.columnDefinition = null;
@@ -373,7 +373,7 @@ var __decorateClass$1 = (decorators, target, key, kind) => {
373
373
  class DataGridRow extends vividElement.VividElement {
374
374
  constructor() {
375
375
  super(...arguments);
376
- // eslint-disable-next-line @nrwl/nx/workspace/no-attribute-default-value
376
+ // eslint-disable-next-line @repo/repo/no-attribute-default-value
377
377
  this.rowType = DataGridRowTypes.default;
378
378
  this.rowData = null;
379
379
  this.columnDefinitions = null;
@@ -588,7 +588,7 @@ const _DataGrid = class _DataGrid extends vividElement.VividElement {
588
588
  constructor() {
589
589
  super();
590
590
  this.noTabbing = false;
591
- // eslint-disable-next-line @nrwl/nx/workspace/no-attribute-default-value
591
+ // eslint-disable-next-line @repo/repo/no-attribute-default-value
592
592
  this.generateHeader = GenerateHeaderOptions.default;
593
593
  this.rowsData = [];
594
594
  this.columnDefinitions = null;
@@ -73,7 +73,7 @@ const defaultHeaderCellContentsTemplate = html`
73
73
  class DataGridCell extends Localized(VividElement) {
74
74
  constructor() {
75
75
  super(...arguments);
76
- // eslint-disable-next-line @nrwl/nx/workspace/no-attribute-default-value
76
+ // eslint-disable-next-line @repo/repo/no-attribute-default-value
77
77
  this.cellType = DataGridCellTypes.default;
78
78
  this.rowData = null;
79
79
  this.columnDefinition = null;
@@ -371,7 +371,7 @@ var __decorateClass$1 = (decorators, target, key, kind) => {
371
371
  class DataGridRow extends VividElement {
372
372
  constructor() {
373
373
  super(...arguments);
374
- // eslint-disable-next-line @nrwl/nx/workspace/no-attribute-default-value
374
+ // eslint-disable-next-line @repo/repo/no-attribute-default-value
375
375
  this.rowType = DataGridRowTypes.default;
376
376
  this.rowData = null;
377
377
  this.columnDefinitions = null;
@@ -586,7 +586,7 @@ const _DataGrid = class _DataGrid extends VividElement {
586
586
  constructor() {
587
587
  super();
588
588
  this.noTabbing = false;
589
- // eslint-disable-next-line @nrwl/nx/workspace/no-attribute-default-value
589
+ // eslint-disable-next-line @repo/repo/no-attribute-default-value
590
590
  this.generateHeader = GenerateHeaderOptions.default;
591
591
  this.rowsData = [];
592
592
  this.columnDefinitions = null;
@@ -7,6 +7,7 @@ const definition$3 = require('./definition23.cjs');
7
7
  const pickerField_template = require('./picker-field.template.cjs');
8
8
  const calendarPicker_template = require('./calendar-picker.template.cjs');
9
9
  const vividElement = require('./vivid-element.cjs');
10
+ const definition$4 = require('./definition66.cjs');
10
11
  const singleValuePicker = require('./single-value-picker.cjs');
11
12
  const singleDatePicker = require('./single-date-picker.cjs');
12
13
 
@@ -127,7 +128,13 @@ const datePickerDefinition = vividElement.defineVividComponent(
127
128
  "date-picker",
128
129
  DatePicker,
129
130
  DatePickerTemplate,
130
- [definition.buttonDefinition, definition$1.popupDefinition, definition$2.textFieldDefinition, definition$3.dividerDefinition],
131
+ [
132
+ definition.buttonDefinition,
133
+ definition$1.popupDefinition,
134
+ definition$2.textFieldDefinition,
135
+ definition$3.dividerDefinition,
136
+ definition$4.visuallyHiddenDefinition
137
+ ],
131
138
  {
132
139
  styles: [pickerField_template.pickerFieldStyles, calendarPicker_template.calendarStyles],
133
140
  shadowOptions: {
@@ -5,6 +5,7 @@ import { d as dividerDefinition } from './definition23.js';
5
5
  import { a as PickerField, P as PickerFieldTemplate, p as pickerFieldStyles } from './picker-field.template.js';
6
6
  import { M as MinMaxCalendarPicker, C as CalendarPicker, i as isValidDateStr, f as formatPresentationDate, p as parsePresentationDate, a as CalendarPickerTemplate, c as calendarStyles } from './calendar-picker.template.js';
7
7
  import { v as volatile, d as createRegisterFunction, f as defineVividComponent } from './vivid-element.js';
8
+ import { v as visuallyHiddenDefinition } from './definition66.js';
8
9
  import { S as SingleValuePicker } from './single-value-picker.js';
9
10
  import { S as SingleDatePickerMixin } from './single-date-picker.js';
10
11
 
@@ -125,7 +126,13 @@ const datePickerDefinition = defineVividComponent(
125
126
  "date-picker",
126
127
  DatePicker,
127
128
  DatePickerTemplate,
128
- [buttonDefinition, popupDefinition, textFieldDefinition, dividerDefinition],
129
+ [
130
+ buttonDefinition,
131
+ popupDefinition,
132
+ textFieldDefinition,
133
+ dividerDefinition,
134
+ visuallyHiddenDefinition
135
+ ],
129
136
  {
130
137
  styles: [pickerFieldStyles, calendarStyles],
131
138
  shadowOptions: {
@@ -7,6 +7,7 @@ const definition$3 = require('./definition23.cjs');
7
7
  const vividElement = require('./vivid-element.cjs');
8
8
  const pickerField_template = require('./picker-field.template.cjs');
9
9
  const calendarPicker_template = require('./calendar-picker.template.cjs');
10
+ const definition$4 = require('./definition66.cjs');
10
11
 
11
12
  const formatRange = (from, to) => {
12
13
  return `${from} – ${to}`;
@@ -220,7 +221,7 @@ class DateRangePicker extends calendarPicker_template.MinMaxCalendarPicker(
220
221
  * @internal
221
222
  */
222
223
  _isDateAriaSelected(date) {
223
- return date === this.start || date === this.end;
224
+ return this._isDateInSelectedRange(date);
224
225
  }
225
226
  /**
226
227
  * @internal
@@ -440,7 +441,13 @@ const dateRangePickerDefinition = vividElement.defineVividComponent(
440
441
  "date-range-picker",
441
442
  DateRangePicker,
442
443
  DateRangePickerTemplate,
443
- [definition.buttonDefinition, definition$1.popupDefinition, definition$2.textFieldDefinition, definition$3.dividerDefinition],
444
+ [
445
+ definition.buttonDefinition,
446
+ definition$1.popupDefinition,
447
+ definition$2.textFieldDefinition,
448
+ definition$3.dividerDefinition,
449
+ definition$4.visuallyHiddenDefinition
450
+ ],
444
451
  {
445
452
  styles: [pickerField_template.pickerFieldStyles, calendarPicker_template.calendarStyles],
446
453
  shadowOptions: {
@@ -5,6 +5,7 @@ import { d as dividerDefinition } from './definition23.js';
5
5
  import { a as attr, o as observable, v as volatile, d as createRegisterFunction, f as defineVividComponent } from './vivid-element.js';
6
6
  import { a as PickerField, P as PickerFieldTemplate, p as pickerFieldStyles } from './picker-field.template.js';
7
7
  import { f as formatPresentationDate, p as parsePresentationDate, M as MinMaxCalendarPicker, C as CalendarPicker, i as isValidDateStr, b as compareDateStr, a as CalendarPickerTemplate, c as calendarStyles } from './calendar-picker.template.js';
8
+ import { v as visuallyHiddenDefinition } from './definition66.js';
8
9
 
9
10
  const formatRange = (from, to) => {
10
11
  return `${from} – ${to}`;
@@ -218,7 +219,7 @@ class DateRangePicker extends MinMaxCalendarPicker(
218
219
  * @internal
219
220
  */
220
221
  _isDateAriaSelected(date) {
221
- return date === this.start || date === this.end;
222
+ return this._isDateInSelectedRange(date);
222
223
  }
223
224
  /**
224
225
  * @internal
@@ -438,7 +439,13 @@ const dateRangePickerDefinition = defineVividComponent(
438
439
  "date-range-picker",
439
440
  DateRangePicker,
440
441
  DateRangePickerTemplate,
441
- [buttonDefinition, popupDefinition, textFieldDefinition, dividerDefinition],
442
+ [
443
+ buttonDefinition,
444
+ popupDefinition,
445
+ textFieldDefinition,
446
+ dividerDefinition,
447
+ visuallyHiddenDefinition
448
+ ],
442
449
  {
443
450
  styles: [pickerFieldStyles, calendarStyles],
444
451
  shadowOptions: {
@@ -31,7 +31,7 @@ const AccordionExpandMode$1 = {
31
31
  class Accordion extends vividElement.VividElement {
32
32
  constructor() {
33
33
  super(...arguments);
34
- /* eslint-disable-next-line @nrwl/nx/workspace/no-attribute-default-value */
34
+ /* eslint-disable-next-line @repo/repo/no-attribute-default-value */
35
35
  this.expandmode = AccordionExpandMode$1.single;
36
36
  this.activeItemIndex = 0;
37
37
  this.change = () => {
@@ -29,7 +29,7 @@ const AccordionExpandMode$1 = {
29
29
  class Accordion extends VividElement {
30
30
  constructor() {
31
31
  super(...arguments);
32
- /* eslint-disable-next-line @nrwl/nx/workspace/no-attribute-default-value */
32
+ /* eslint-disable-next-line @repo/repo/no-attribute-default-value */
33
33
  this.expandmode = AccordionExpandMode$1.single;
34
34
  this.activeItemIndex = 0;
35
35
  this.change = () => {
@@ -8,6 +8,7 @@ const pickerField_template = require('./picker-field.template.cjs');
8
8
  const calendarPicker_template = require('./calendar-picker.template.cjs');
9
9
  const vividElement = require('./vivid-element.cjs');
10
10
  const timeSelectionPicker_template = require('./time-selection-picker.template.cjs');
11
+ const definition$4 = require('./definition66.cjs');
11
12
  const singleValuePicker = require('./single-value-picker.cjs');
12
13
  const singleDatePicker = require('./single-date-picker.cjs');
13
14
 
@@ -262,7 +263,8 @@ const dateTimePickerDefinition = vividElement.defineVividComponent(
262
263
  definition$1.popupDefinition,
263
264
  definition$2.textFieldDefinition,
264
265
  definition$3.dividerDefinition,
265
- timeSelectionPicker_template.inlineTimePickerDefinition
266
+ timeSelectionPicker_template.inlineTimePickerDefinition,
267
+ definition$4.visuallyHiddenDefinition
266
268
  ],
267
269
  {
268
270
  styles: [pickerField_template.pickerFieldStyles, calendarPicker_template.calendarStyles, styles],
@@ -6,6 +6,7 @@ import { a as PickerField, P as PickerFieldTemplate, p as pickerFieldStyles } fr
6
6
  import { i as isValidDateStr, f as formatPresentationDate, p as parsePresentationDate, C as CalendarPicker, d as currentDateStr, b as compareDateStr, V as ValidDateFilter, a as CalendarPickerTemplate, c as calendarStyles } from './calendar-picker.template.js';
7
7
  import { a as attr, h as html, d as createRegisterFunction, f as defineVividComponent } from './vivid-element.js';
8
8
  import { b as isValidTimeStr, f as formatPresentationTime, p as parsePresentationTime, c as TimeSelectionPicker, d as compareTimeStr, V as ValidTimeFilter, a as TimeSelectionPickerTemplate, i as inlineTimePickerDefinition } from './time-selection-picker.template.js';
9
+ import { v as visuallyHiddenDefinition } from './definition66.js';
9
10
  import { S as SingleValuePicker } from './single-value-picker.js';
10
11
  import { S as SingleDatePickerMixin } from './single-date-picker.js';
11
12
 
@@ -260,7 +261,8 @@ const dateTimePickerDefinition = defineVividComponent(
260
261
  popupDefinition,
261
262
  textFieldDefinition,
262
263
  dividerDefinition,
263
- inlineTimePickerDefinition
264
+ inlineTimePickerDefinition,
265
+ visuallyHiddenDefinition
264
266
  ],
265
267
  {
266
268
  styles: [pickerFieldStyles, calendarStyles, styles],
@@ -134,8 +134,8 @@ var memoizeWith = /*#__PURE__*/_has._curry2(function memoizeWith(keyGen, fn) {
134
134
  });
135
135
  });
136
136
 
137
- const ICONS_BASE_URL = "https://icon.resources.vonage.com";
138
- const ICONS_VERSION = "4.6.6";
137
+ const ICONS_BASE_URL = 'https://icon.resources.vonage.com';
138
+ const ICONS_VERSION = '4.6.8';
139
139
 
140
140
  const numberConverter = {
141
141
  toView(value) {
@@ -132,8 +132,8 @@ var memoizeWith = /*#__PURE__*/_curry2(function memoizeWith(keyGen, fn) {
132
132
  });
133
133
  });
134
134
 
135
- const ICONS_BASE_URL = "https://icon.resources.vonage.com";
136
- const ICONS_VERSION = "4.6.6";
135
+ const ICONS_BASE_URL = 'https://icon.resources.vonage.com';
136
+ const ICONS_VERSION = '4.6.8';
137
137
 
138
138
  const numberConverter = {
139
139
  toView(value) {
@@ -9,7 +9,7 @@ const slotted = require('./slotted.cjs');
9
9
  const classNames = require('./class-names.cjs');
10
10
  const when = require('./when.cjs');
11
11
 
12
- const styles = ":host(:focus-visible){outline:none}:host([disabled]){pointer-events:none}.base{--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: transparent;--_appearance-color-outline: transparent}.base: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}.base:where(.disabled,:disabled){--_appearance-color-text: var(--vvd-color-neutral-300);--_appearance-color-fill: transparent;--_appearance-color-outline: transparent}.base: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}.base:where(.selected):where(:not(.disabled,:disabled)){--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: var(--_connotation-color-soft);--_appearance-color-outline: transparent}.base:where(.selected):where(.hover,:hover):where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: var(--_connotation-color-dim);--_appearance-color-outline: transparent}.base.connotation-cta{--_connotation-color-primary: var(--vvd-menu-item-cta-primary, var(--vvd-color-cta-500));--_connotation-color-primary-text: var(--vvd-menu-item-cta-primary-text, var(--vvd-color-canvas));--_connotation-color-primary-increment: var(--vvd-menu-item-cta-primary-increment, var(--vvd-color-cta-600));--_connotation-color-firm: var(--vvd-menu-item-cta-firm, var(--vvd-color-cta-600));--_connotation-color-faint: var(--vvd-menu-item-cta-faint, var(--vvd-color-cta-50));--_connotation-color-soft: var(--vvd-menu-item-cta-soft, var(--vvd-color-cta-100));--_connotation-color-pale: var(--vvd-menu-item-cta-pale, var(--vvd-color-cta-300));--_connotation-color-dim: var(--vvd-menu-item-cta-dim, var(--vvd-color-cta-200))}.base:not(.connotation-cta){--_connotation-color-primary: var(--vvd-menu-item-accent-primary, var(--vvd-color-canvas-text));--_connotation-color-primary-text: var(--vvd-menu-item-accent-primary-text, var(--vvd-color-canvas));--_connotation-color-primary-increment: var(--vvd-menu-item-accent-primary-increment, var(--vvd-color-neutral-800));--_connotation-color-firm: var(--vvd-menu-item-accent-firm, var(--vvd-color-canvas-text));--_connotation-color-faint: var(--vvd-menu-item-accent-faint, var(--vvd-color-neutral-50));--_connotation-color-soft: var(--vvd-menu-item-accent-soft, var(--vvd-color-neutral-100));--_connotation-color-pale: var(--vvd-menu-item-accent-pale, var(--vvd-color-neutral-300));--_connotation-color-dim: var(--vvd-menu-item-accent-dim, var(--vvd-color-neutral-200))}.base{display:flex;box-sizing:border-box;align-items:center;background-color:var(--_appearance-color-fill);box-shadow:inset 0 0 0 1px var(--_appearance-color-outline);inline-size:100%}.base:not(.two-lines){gap:12px;min-block-size:calc(1px*(40 + 4*clamp(-1,var(--vvd-size-density, 0),2)));padding-block:8px;padding-inline:12px}.base.two-lines{padding:12px;gap:16px;min-block-size:calc(1px*(40 + 4*clamp(-1,var(--vvd-size-density, 0),2)) + 1px*(24 + 4*clamp(-1,var(--vvd-size-density, 0),2)))}@supports (user-select: none){.base{user-select:none}}.base:not(.disabled){cursor:pointer}:host(:not([role=presentation]):focus-visible) .base{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));--focus-stroke-gap-color: transparent}.icon{flex-shrink:0;font-size:calc(1px*(40 + 4*clamp(-1,var(--vvd-size-density, 0),2))/2);line-height:1}.action,.decorative{display:flex;place-content:center}.action{color:var(--_appearance-color-text)}.base.trailing .action,.base.has-meta .action{order:2}:host(:not([check-appearance],[checked],[disabled])) .action{color:var(--vvd-color-neutral-500)}.base:not(.disabled) .decorative{color:var(--vvd-color-neutral-600)}.base.disabled .decorative{color:var(--vvd-color-neutral-200)}.base.has-meta .decorative{order:1}.chevron{order:3}.text{display:flex;overflow:hidden;flex-direction:column;gap:4px;margin-inline-end:auto}.text-primary,.text-secondary{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;font:var(--vvd-typography-base)}.text-primary{font:var(--vvd-typography-base);-webkit-line-clamp:var(--text-primary-line-clamp, 1)}.base:not(.disabled) .text-primary{color:var(--vvd-color-canvas-text)}.base.disabled .text-primary{color:var(--_appearance-color-text)}.base.two-lines .text-primary{font:var(--vvd-typography-base-bold)}.text-secondary{color:var(--vvd-color-neutral-800);font:var(--vvd-typography-base-condensed);-webkit-line-clamp:var(--text-secondary-line-clamp, 1)}.base.two-lines .text-secondary{color:var(--vvd-color-neutral-600)}.base.disabled .text-secondary{color:var(--_appearance-color-text)}.base.selected:not(.disabled) .text-secondary{color:var(--vvd-color-neutral-800)}:host([internal-part]) .text-primary{font:var(--_text-primary-custom-size, var--vvd-typography-base)}";
12
+ const styles = ":host(:focus-visible){outline:none}:host([disabled]){pointer-events:none}.base{--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: transparent;--_appearance-color-outline: transparent}.base: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}.base:where(.disabled,:disabled){--_appearance-color-text: var(--vvd-color-neutral-300);--_appearance-color-fill: transparent;--_appearance-color-outline: transparent}.base: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}.base:where(.selected):where(:not(.disabled,:disabled)){--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: var(--_connotation-color-soft);--_appearance-color-outline: transparent}.base:where(.selected):where(.hover,:hover):where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: var(--_connotation-color-dim);--_appearance-color-outline: transparent}.base.connotation-cta{--_connotation-color-primary: var(--vvd-menu-item-cta-primary, var(--vvd-color-cta-500));--_connotation-color-primary-text: var(--vvd-menu-item-cta-primary-text, var(--vvd-color-canvas));--_connotation-color-primary-increment: var(--vvd-menu-item-cta-primary-increment, var(--vvd-color-cta-600));--_connotation-color-firm: var(--vvd-menu-item-cta-firm, var(--vvd-color-cta-600));--_connotation-color-faint: var(--vvd-menu-item-cta-faint, var(--vvd-color-cta-50));--_connotation-color-soft: var(--vvd-menu-item-cta-soft, var(--vvd-color-cta-100));--_connotation-color-pale: var(--vvd-menu-item-cta-pale, var(--vvd-color-cta-300));--_connotation-color-dim: var(--vvd-menu-item-cta-dim, var(--vvd-color-cta-200))}.base:not(.connotation-cta){--_connotation-color-primary: var(--vvd-menu-item-accent-primary, var(--vvd-color-canvas-text));--_connotation-color-primary-text: var(--vvd-menu-item-accent-primary-text, var(--vvd-color-canvas));--_connotation-color-primary-increment: var(--vvd-menu-item-accent-primary-increment, var(--vvd-color-neutral-800));--_connotation-color-firm: var(--vvd-menu-item-accent-firm, var(--vvd-color-canvas-text));--_connotation-color-faint: var(--vvd-menu-item-accent-faint, var(--vvd-color-neutral-50));--_connotation-color-soft: var(--vvd-menu-item-accent-soft, var(--vvd-color-neutral-100));--_connotation-color-pale: var(--vvd-menu-item-accent-pale, var(--vvd-color-neutral-300));--_connotation-color-dim: var(--vvd-menu-item-accent-dim, var(--vvd-color-neutral-200))}.base{--_menu-item-padding-inline: calc(1px*(40 + 4*clamp(-1, var(--vvd-size-density, 0), 2))*.4) }.base{display:flex;box-sizing:border-box;align-items:center;border-radius:8px;background-color:var(--_appearance-color-fill);box-shadow:inset 0 0 0 1px var(--_appearance-color-outline);inline-size:100%}.base:not(.two-lines){gap:12px;min-block-size:calc(1px*(40 + 4*clamp(-1,var(--vvd-size-density, 0),2)));padding-block:8px;padding-inline:var(--_menu-item-padding-inline)}.base.two-lines{gap:16px;min-block-size:calc(1px*(40 + 4*clamp(-1,var(--vvd-size-density, 0),2)) + 1px*(24 + 4*clamp(-1,var(--vvd-size-density, 0),2)));padding-block:12px;padding-inline:var(--_menu-item-padding-inline)}@supports (user-select: none){.base{user-select:none}}.base:not(.disabled){cursor:pointer}:host(:not([role=presentation]):focus-visible) .base{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));--focus-stroke-gap-color: transparent}.icon{flex-shrink:0;font-size:calc(1px*(40 + 4*clamp(-1,var(--vvd-size-density, 0),2))/2);line-height:1}.action,.decorative{display:flex;place-content:center}.action{color:var(--_appearance-color-text)}.base.trailing .action,.base.has-meta .action{order:2}:host(:not([check-appearance],[checked],[disabled])) .action{color:var(--vvd-color-neutral-500)}.base:not(.disabled) .decorative{color:var(--vvd-color-neutral-600)}.base.disabled .decorative{color:var(--vvd-color-neutral-200)}.base.has-meta .decorative{order:1}.chevron{order:3}.text{display:flex;overflow:hidden;flex-direction:column;gap:4px;margin-inline-end:auto}.text-primary,.text-secondary{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;font:var(--vvd-typography-base)}.text-primary{font:var(--vvd-typography-base);-webkit-line-clamp:var(--text-primary-line-clamp, 1)}.base:not(.disabled) .text-primary{color:var(--vvd-color-canvas-text)}.base.disabled .text-primary{color:var(--_appearance-color-text)}.base.two-lines .text-primary{font:var(--vvd-typography-base-bold)}.text-secondary{color:var(--vvd-color-neutral-800);font:var(--vvd-typography-base-condensed);-webkit-line-clamp:var(--text-secondary-line-clamp, 1)}.base.two-lines .text-secondary{color:var(--vvd-color-neutral-600)}.base.disabled .text-secondary{color:var(--_appearance-color-text)}.base.selected:not(.disabled) .text-secondary{color:var(--vvd-color-neutral-800)}:host([internal-part]) .text-primary{font:var(--_text-primary-custom-size, var--vvd-typography-base)}";
13
13
 
14
14
  const MenuItemRole = {
15
15
  menuitem: "menuitem",
@@ -30,7 +30,7 @@ var __decorateClass = (decorators, target, key, kind) => {
30
30
  class MenuItem extends hostSemantics.HostSemantics(affix.AffixIcon(vividElement.VividElement)) {
31
31
  constructor() {
32
32
  super();
33
- // eslint-disable-next-line @nrwl/nx/workspace/no-attribute-default-value
33
+ // eslint-disable-next-line @repo/repo/no-attribute-default-value
34
34
  this.role = MenuItemRole.menuitem;
35
35
  this.checked = false;
36
36
  /**
@@ -174,6 +174,7 @@ class MenuItem extends hostSemantics.HostSemantics(affix.AffixIcon(vividElement.
174
174
  this.submenu.anchor = this;
175
175
  this.submenu.placement = "right-start";
176
176
  this.submenu.collapseExpandedItem = () => this.#collapseExpandedItem();
177
+ this.submenu._popupOffset = 5;
177
178
  }
178
179
  }
179
180
  /**