@vonage/vivid 4.27.0 → 4.29.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 (79) hide show
  1. package/custom-elements.json +357 -80
  2. package/lib/audio-player/audio-player.d.ts +4 -3
  3. package/lib/data-grid/data-grid.d.ts +2 -0
  4. package/lib/data-grid/locale.d.ts +1 -0
  5. package/lib/date-picker/date-picker.d.ts +4 -2
  6. package/lib/date-time-picker/date-time-picker.d.ts +6 -3
  7. package/lib/divider/definition.d.ts +1 -0
  8. package/lib/divider/divider.d.ts +5 -1
  9. package/lib/option/option.d.ts +4 -7
  10. package/lib/rich-text-editor/facades/prose-mirror-vivid.schema.d.ts +2 -1
  11. package/lib/rich-text-editor/facades/vivid-prose-mirror.facade.d.ts +2 -2
  12. package/lib/rich-text-editor/image-placeholder/definition.d.ts +2 -0
  13. package/lib/rich-text-editor/image-placeholder/image-placeholder.d.ts +7 -0
  14. package/lib/rich-text-editor/image-placeholder/image-placeholder.template.d.ts +4 -0
  15. package/lib/rich-text-editor/menubar/consts.d.ts +2 -2
  16. package/lib/rich-text-editor/menubar/definition.d.ts +2 -2
  17. package/lib/rich-text-editor/menubar/menubar.d.ts +2 -2
  18. package/lib/rich-text-editor/menubar/menubar.template.d.ts +2 -2
  19. package/lib/rich-text-editor/rich-text-editor.d.ts +1 -0
  20. package/lib/time-picker/time-picker.d.ts +4 -2
  21. package/locales/de-DE.cjs +2 -1
  22. package/locales/de-DE.js +2 -1
  23. package/locales/en-GB.cjs +2 -1
  24. package/locales/en-GB.js +2 -1
  25. package/locales/en-US.cjs +2 -1
  26. package/locales/en-US.js +2 -1
  27. package/locales/ja-JP.cjs +2 -1
  28. package/locales/ja-JP.js +2 -1
  29. package/locales/zh-CN.cjs +2 -1
  30. package/locales/zh-CN.js +2 -1
  31. package/package.json +2 -1
  32. package/shared/calendar-picker.template.cjs +8 -9
  33. package/shared/calendar-picker.template.js +8 -9
  34. package/shared/definition16.cjs +33 -30
  35. package/shared/definition16.js +33 -30
  36. package/shared/definition17.cjs +137 -1
  37. package/shared/definition17.js +138 -2
  38. package/shared/definition23.cjs +12 -7
  39. package/shared/definition23.js +12 -7
  40. package/shared/definition30.cjs +2 -1
  41. package/shared/definition30.js +2 -1
  42. package/shared/definition31.cjs +5 -1
  43. package/shared/definition31.js +5 -1
  44. package/shared/definition36.cjs +1 -1
  45. package/shared/definition36.js +1 -1
  46. package/shared/definition44.cjs +184 -55
  47. package/shared/definition44.js +184 -55
  48. package/shared/definition45.cjs +12 -5
  49. package/shared/definition45.js +12 -5
  50. package/shared/definition5.cjs +86 -30
  51. package/shared/definition5.js +86 -30
  52. package/shared/definition61.cjs +11 -0
  53. package/shared/definition61.js +11 -0
  54. package/shared/definition64.cjs +1 -1
  55. package/shared/definition64.js +1 -1
  56. package/shared/divider.cjs +7 -2
  57. package/shared/divider.js +7 -2
  58. package/shared/option.cjs +36 -38
  59. package/shared/option.js +37 -39
  60. package/shared/picker-field/mixins/inline-time-picker/inline-time-picker.d.ts +1 -0
  61. package/shared/picker-field/mixins/single-date-picker.d.ts +4 -2
  62. package/shared/picker-field/mixins/single-value-picker.d.ts +2 -1
  63. package/shared/picker-field/mixins/time-selection-picker.d.ts +4 -2
  64. package/shared/picker-field/mixins/time-selection-picker.template.d.ts +4 -2
  65. package/shared/single-value-picker.cjs +40 -6
  66. package/shared/single-value-picker.js +40 -6
  67. package/shared/text-field.cjs +1 -1
  68. package/shared/text-field.js +1 -1
  69. package/shared/time-selection-picker.template.cjs +71 -22
  70. package/shared/time-selection-picker.template.js +71 -22
  71. package/shared/vivid-element.cjs +1 -1
  72. package/shared/vivid-element.js +1 -1
  73. package/styles/core/all.css +1 -1
  74. package/styles/core/theme.css +1 -1
  75. package/styles/core/typography.css +1 -1
  76. package/styles/tokens/theme-dark.css +4 -4
  77. package/styles/tokens/theme-light.css +4 -4
  78. package/styles/tokens/vivid-2-compat.css +1 -1
  79. package/vivid.api.json +211 -126
@@ -1,3 +1,3 @@
1
- const styles = ":host{display:inline-block}.base{--_appearance-color-text: var(--vvd-color-canvas-text);--_appearance-color-fill: var(--vvd-color-canvas);--_appearance-color-outline: var(--vvd-color-neutral-500)}.base.appearance-ghost{--_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(--vvd-color-canvas-text);--_appearance-color-fill: var(--vvd-color-canvas);--_appearance-color-outline: var(--vvd-color-neutral-700)}.base:where(.hover,:hover):where(:not(.disabled,:disabled,.readonly)).appearance-ghost{--_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: var(--vvd-color-neutral-100);--_appearance-color-outline: var(--vvd-color-neutral-300)}.base:where(.disabled,:disabled).appearance-ghost{--_appearance-color-text: var(--vvd-color-neutral-300);--_appearance-color-fill: transparent;--_appearance-color-outline: transparent}.base:where(.readonly):where(:not(.disabled,:disabled)){--_appearance-color-text: var(--vvd-color-canvas-text);--_appearance-color-fill: var(--vvd-color-neutral-200);--_appearance-color-outline: var(--vvd-color-neutral-400)}.base:where(.readonly):where(:not(.disabled,:disabled)).appearance-ghost{--_appearance-color-text: var(--vvd-color-neutral-600);--_appearance-color-fill: transparent;--_appearance-color-outline: transparent}.base:where(.error):where(:not(.disabled,:disabled)){--_appearance-color-text: notSet;--_appearance-color-fill: var(--vvd-color-alert-50);--_appearance-color-outline: var(--vvd-color-alert-500)}.base:where(.error):where(:not(.disabled,:disabled)).appearance-ghost{--_appearance-color-text: notSet;--_appearance-color-fill: var(--vvd-color-alert-50);--_appearance-color-outline: transparent}.base:where(.success):where(:not(.disabled,:disabled)){--_appearance-color-text: notSet;--_appearance-color-fill: var(--vvd-color-success-50);--_appearance-color-outline: var(--vvd-color-success-500)}.base:where(.success):where(:not(.disabled,:disabled)).appearance-ghost{--_appearance-color-text: notSet;--_appearance-color-fill: var(--vvd-color-success-50);--_appearance-color-outline: transparent}.base{--_connotation-color-primary: var(--vvd-text-field-accent-primary, var(--vvd-color-canvas-text));--_connotation-color-primary-text: var(--vvd-text-field-accent-primary-text, var(--vvd-color-canvas));--_connotation-color-primary-increment: var(--vvd-text-field-accent-primary-increment, var(--vvd-color-neutral-800));--_connotation-color-intermediate: var(--vvd-text-field-accent-intermediate, var(--vvd-color-neutral-500));--_connotation-color-firm: var(--vvd-text-field-accent-firm, var(--vvd-color-canvas-text));--_connotation-color-fierce: var(--vvd-text-field-accent-fierce, var(--vvd-color-neutral-700));--_connotation-color-faint: var(--vvd-text-field-accent-faint, var(--vvd-color-neutral-50));--_connotation-color-soft: var(--vvd-text-field-accent-soft, var(--vvd-color-neutral-100))}.base{--_text-field-gutter-start: calc(1px*(40 + 4*clamp(-1, var(--vvd-size-density, 0), 2))*.4) ;--_text-field-gutter-end: calc(1px*(40 + 4*clamp(-1, var(--vvd-size-density, 0), 2))*.4) ;--_text-field-icon-size: calc(1px*(40 + 4*clamp(-1, var(--vvd-size-density, 0), 2))/2) ;--_text-field-block-size: calc(1px*(40 + 4*clamp(-1, var(--vvd-size-density, 0), 2))) ;--_text-field-border-radius: 8px;--_text-field-pill-border-radius: 24px;display:inline-grid;width:100%;gap:4px;grid-template-columns:min-content 1fr max-content}.base.size-condensed{--_text-field-gutter-start: calc(1px*(24 + 4*clamp(-1, var(--vvd-size-density, 0), 2))/2) ;--_text-field-gutter-end: calc(1px*(24 + 4*clamp(-1, var(--vvd-size-density, 0), 2))/2) ;--_text-field-icon-size: calc(1px*(32 + 4*clamp(-1, var(--vvd-size-density, 0), 2))/2) ;--_text-field-block-size: calc(1px*(32 + 4*clamp(-1, var(--vvd-size-density, 0), 2))) ;--_text-field-border-radius: 4px}@supports (user-select: none){.base{user-select:none}}.base:not(.disabled){--_low-ink-color: var(--vvd-color-neutral-600)}.base.disabled{--_low-ink-color: var(--_appearance-color-text)}.label:not(slot),.label::slotted(label){box-sizing:initial!important;padding:initial!important;margin:initial!important;color:var(--vvd-color-canvas-text)!important;contain:inline-size!important;font:var(--vvd-typography-base);grid-column:1/4;grid-row:1}.char-count+.label:not(slot),.char-count+.label::slotted(label){grid-column:1/3}.char-count{color:var(--_low-ink-color);font:var(--vvd-typography-base);grid-column:3/4}.fieldset{position:relative;display:flex;align-items:center;background-color:var(--_appearance-color-fill);font:var(--vvd-typography-base);grid-column:1/4;padding-block:0;transition:color .2s,background-color .2s}.fieldset:after{position:absolute;display:block;border-radius:inherit;block-size:100%;box-shadow:inset 0 0 0 1px var(--_appearance-color-outline);content:\"\";inline-size:100%;pointer-events:none;transition:box-shadow .2s}.fieldset:focus-visible{outline:none}.base>.fieldset{block-size:var(--_text-field-block-size)}.base:not(.shape-pill) .fieldset{border-radius:var(--_text-field-border-radius)}.base.shape-pill .fieldset{border-radius:var(--_text-field-pill-border-radius)}.wrapper{border-radius:inherit;block-size:100%;inline-size:100%}.control{border-radius:inherit;text-align:start}.control:not(slot),.control::slotted(input){width:100%!important;box-sizing:border-box!important;border:0 none!important;border-radius:inherit!important;margin:initial!important;appearance:none!important;background-color:transparent!important;block-size:100%!important;color:inherit!important;font:inherit;outline:transparent;padding-block:0!important;padding-inline:var(--_text-field-gutter-start) var(--_text-field-gutter-end)!important;text-align:inherit}.control:not(slot):disabled,.control::slotted(input:disabled){cursor:not-allowed!important;opacity:1!important;-webkit-text-fill-color:var(--_appearance-color-text)!important}.control:not(slot)::placeholder{opacity:1!important;-webkit-text-fill-color:var(--_low-ink-color)!important}.control::slotted(input:-webkit-autofill),.control:not(slot):-webkit-autofill{-webkit-box-shadow:0 0 0 1000px var(--_appearance-color-fill) inset;-webkit-text-fill-color:var(--_appearance-color-text)!important}.has-icon .control:not(slot),.has-icon .control::slotted(input){padding-inline-start:calc(var(--_text-field-icon-size) + var(--_text-field-gutter-start) * 2)!important}.icon{position:absolute;z-index:1;color:var(--_low-ink-color);font-size:var(--_text-field-icon-size);inset-block-start:50%;inset-inline-start:calc(100% + var(--_text-field-gutter-start));line-height:1;transform:translateY(-50%)}.leading-items-wrapper{position:relative}.base.no-leading .leading-items-wrapper{display:none}.action-items-wrapper{margin-inline-end:4px}.base:not(.action-items) .action-items-wrapper{display:none}@supports selector(:has(*)){.fieldset:has(.wrapper .control:focus-within):after{--focus-stroke-gap-color: transparent;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))}}@supports not selector(:has(*)){.wrapper:focus-within:after{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;position:absolute;z-index:1;display:block;border-radius:inherit;content:\"\";inset:0;pointer-events:none}}:host([internal-part]) .fieldset{background-color:transparent;font:var(--vvd-typography-heading-4);line-height:1.1}:host([internal-part]) .fieldset:not(:focus-within):after{block-size:1px;inset-block-end:0}@supports selector(:has(*)){:host([internal-part]) .fieldset:has(.action-items-wrapper:focus-within):after{block-size:1px;inset-block-end:0}}:host([internal-part]) .control{text-align:center}slot[name=_mirrored-helper-text]{display:none}";
1
+ const styles = ":host{display:inline-block}.base{--_appearance-color-text: var(--vvd-color-canvas-text);--_appearance-color-fill: var(--vvd-color-canvas);--_appearance-color-outline: var(--vvd-color-neutral-500)}.base.appearance-ghost{--_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(--vvd-color-canvas-text);--_appearance-color-fill: var(--vvd-color-canvas);--_appearance-color-outline: var(--vvd-color-neutral-700)}.base:where(.hover,:hover):where(:not(.disabled,:disabled,.readonly)).appearance-ghost{--_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: var(--vvd-color-neutral-100);--_appearance-color-outline: var(--vvd-color-neutral-300)}.base:where(.disabled,:disabled).appearance-ghost{--_appearance-color-text: var(--vvd-color-neutral-300);--_appearance-color-fill: transparent;--_appearance-color-outline: transparent}.base:where(.readonly):where(:not(.disabled,:disabled)){--_appearance-color-text: var(--vvd-color-canvas-text);--_appearance-color-fill: var(--vvd-color-neutral-200);--_appearance-color-outline: var(--vvd-color-neutral-400)}.base:where(.readonly):where(:not(.disabled,:disabled)).appearance-ghost{--_appearance-color-text: var(--vvd-color-neutral-600);--_appearance-color-fill: transparent;--_appearance-color-outline: transparent}.base:where(.error):where(:not(.disabled,:disabled)){--_appearance-color-text: notSet;--_appearance-color-fill: var(--vvd-color-alert-50);--_appearance-color-outline: var(--vvd-color-alert-500)}.base:where(.error):where(:not(.disabled,:disabled)).appearance-ghost{--_appearance-color-text: notSet;--_appearance-color-fill: var(--vvd-color-alert-50);--_appearance-color-outline: transparent}.base:where(.success):where(:not(.disabled,:disabled)){--_appearance-color-text: notSet;--_appearance-color-fill: var(--vvd-color-success-50);--_appearance-color-outline: var(--vvd-color-success-500)}.base:where(.success):where(:not(.disabled,:disabled)).appearance-ghost{--_appearance-color-text: notSet;--_appearance-color-fill: var(--vvd-color-success-50);--_appearance-color-outline: transparent}.base{--_connotation-color-primary: var(--vvd-text-field-accent-primary, var(--vvd-color-canvas-text));--_connotation-color-primary-text: var(--vvd-text-field-accent-primary-text, var(--vvd-color-canvas));--_connotation-color-primary-increment: var(--vvd-text-field-accent-primary-increment, var(--vvd-color-neutral-800));--_connotation-color-intermediate: var(--vvd-text-field-accent-intermediate, var(--vvd-color-neutral-500));--_connotation-color-firm: var(--vvd-text-field-accent-firm, var(--vvd-color-canvas-text));--_connotation-color-fierce: var(--vvd-text-field-accent-fierce, var(--vvd-color-neutral-700));--_connotation-color-faint: var(--vvd-text-field-accent-faint, var(--vvd-color-neutral-50));--_connotation-color-soft: var(--vvd-text-field-accent-soft, var(--vvd-color-neutral-100))}.base{--_text-field-gutter-start: calc(1px*(40 + 4*clamp(-1, var(--vvd-size-density, 0), 2))*.4) ;--_text-field-gutter-end: calc(1px*(40 + 4*clamp(-1, var(--vvd-size-density, 0), 2))*.4) ;--_text-field-icon-size: calc(1px*(40 + 4*clamp(-1, var(--vvd-size-density, 0), 2))/2) ;--_text-field-block-size: calc(1px*(40 + 4*clamp(-1, var(--vvd-size-density, 0), 2))) ;--_text-field-border-radius: 8px;--_text-field-pill-border-radius: 24px;display:inline-grid;width:100%;gap:4px;grid-template-columns:min-content 1fr max-content}.base.size-condensed{--_text-field-gutter-start: calc(1px*(24 + 4*clamp(-1, var(--vvd-size-density, 0), 2))/2) ;--_text-field-gutter-end: calc(1px*(24 + 4*clamp(-1, var(--vvd-size-density, 0), 2))/2) ;--_text-field-icon-size: calc(1px*(32 + 4*clamp(-1, var(--vvd-size-density, 0), 2))/2) ;--_text-field-block-size: calc(1px*(32 + 4*clamp(-1, var(--vvd-size-density, 0), 2))) ;--_text-field-border-radius: 4px}@supports (user-select: none){.base{user-select:none}}.base:not(.disabled){--_low-ink-color: var(--vvd-color-neutral-600)}.base.disabled{--_low-ink-color: var(--_appearance-color-text)}.label:not(slot),.label::slotted(label){box-sizing:initial!important;padding:initial!important;margin:initial!important;color:var(--vvd-color-canvas-text)!important;contain:inline-size!important;font:var(--vvd-typography-base);grid-column:1/4;grid-row:1}.char-count+.label:not(slot),.char-count+.label::slotted(label){grid-column:1/3}.char-count{color:var(--_low-ink-color);font:var(--vvd-typography-base);grid-column:3/4}.fieldset{position:relative;display:flex;align-items:center;background-color:var(--_appearance-color-fill);font:var(--vvd-typography-base);grid-column:1/4;padding-block:0;transition:color .2s,background-color .2s}.fieldset:after{position:absolute;display:block;border-radius:inherit;block-size:100%;box-shadow:inset 0 0 0 1px var(--_appearance-color-outline);content:\"\";inline-size:100%;pointer-events:none;transition:box-shadow .2s}.fieldset:focus-visible{outline:none}.base>.fieldset{block-size:var(--_text-field-block-size)}.base:not(.shape-pill) .fieldset{border-radius:var(--_text-field-border-radius)}.base.shape-pill .fieldset{border-radius:var(--_text-field-pill-border-radius)}.wrapper{border-radius:inherit;block-size:100%;inline-size:100%}.control{border-radius:inherit;text-align:start}.control:not(slot),.control::slotted(input){width:100%!important;box-sizing:border-box!important;border:0 none!important;border-radius:inherit!important;margin:initial!important;appearance:none!important;background-color:transparent!important;block-size:100%!important;color:inherit!important;font:inherit;outline:transparent;padding-block:0!important;padding-inline:var(--_text-field-gutter-start) var(--_text-field-gutter-end)!important;text-align:inherit}.control:not(slot):disabled,.control::slotted(input:disabled){cursor:not-allowed!important;opacity:1!important;-webkit-text-fill-color:var(--_appearance-color-text)!important}.control:not(slot)::placeholder{opacity:1!important;-webkit-text-fill-color:var(--_low-ink-color)!important}.control::slotted(input:-webkit-autofill),.control:not(slot):-webkit-autofill{-webkit-box-shadow:0 0 0 1000px var(--_appearance-color-fill) inset;-webkit-text-fill-color:var(--_appearance-color-text)!important}.has-icon .control:not(slot),.has-icon .control::slotted(input){padding-inline-start:calc(var(--_text-field-icon-size) + var(--_text-field-gutter-start) * 2)!important}.icon{position:absolute;z-index:1;color:var(--_low-ink-color);font-size:var(--_text-field-icon-size);inset-block-start:50%;inset-inline-start:calc(100% + var(--_text-field-gutter-start));line-height:1;transform:translateY(-50%)}.leading-items-wrapper{position:relative}.base.no-leading .leading-items-wrapper{display:none}.action-items-wrapper{margin-inline-end:4px}.base:not(.action-items) .action-items-wrapper{display:none}@supports selector(:has(*)){.base:not(.has-activedescendant) .fieldset:has(.wrapper .control:focus-within):after{--focus-stroke-gap-color: transparent;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))}}@supports not selector(:has(*)){.base:not(.has-activedescendant) .wrapper:focus-within:after{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;position:absolute;z-index:1;display:block;border-radius:inherit;content:\"\";inset:0;pointer-events:none}}:host([internal-part]) .fieldset{background-color:transparent;font:var(--vvd-typography-heading-4);line-height:1.1}:host([internal-part]) .fieldset:not(:focus-within):after{block-size:1px;inset-block-end:0}@supports selector(:has(*)){:host([internal-part]) .fieldset:has(.action-items-wrapper:focus-within):after{block-size:1px;inset-block-end:0}}:host([internal-part]) .control{text-align:center}slot[name=_mirrored-helper-text]{display:none}";
2
2
 
3
3
  export { styles as s };
@@ -217,8 +217,10 @@ const shouldDisplay12hClock = (x) => x.clock === "12h";
217
217
  const onPickerOptionClick = (x, column, optionValue) => {
218
218
  emitChange(x, column.updatedValue(x, optionValue));
219
219
  scrollToOption(x, column.id, optionValue, "start");
220
- const nextPickerEl = x.shadowRoot.querySelector(
221
- `#${column.id} + .picker`
220
+ const currentPicker = x.shadowRoot.querySelector(`#${column.id}`)?.closest(".picker-wrapper");
221
+ const nextPickerWrapper = currentPicker?.nextElementSibling;
222
+ const nextPickerEl = nextPickerWrapper?.querySelector(
223
+ ".picker"
222
224
  );
223
225
  if (nextPickerEl) {
224
226
  nextPickerEl.focus();
@@ -243,6 +245,7 @@ const onPickerKeyDown = (x, column, event) => {
243
245
  const newValue = options[newIndex].value;
244
246
  emitChange(x, column.updatedValue(x, newValue));
245
247
  scrollToOption(x, column.id, newValue, "nearest");
248
+ x._clearFocusedClasses();
246
249
  }
247
250
  return true;
248
251
  };
@@ -262,6 +265,7 @@ const onBaseKeyDown = (x, event) => {
262
265
  if (x.shadowRoot.activeElement !== terminalElement) {
263
266
  pickerField_template.ignoreEventInFocusTraps(event);
264
267
  }
268
+ x._applyFocusedClass();
265
269
  }
266
270
  return true;
267
271
  };
@@ -269,36 +273,40 @@ const emitChange = (x, time) => {
269
273
  x.$emit("change", time, { bubbles: false, composed: false });
270
274
  };
271
275
  const renderPicker = (column) => {
272
- return vividElement.html`<ul
273
- id="${column.id}"
274
- class="picker"
275
- role="listbox"
276
- tabindex="0"
277
- aria-label="${column.getLabel}"
278
- aria-activedescendant="${(x) => column.getSelectedOptionValue(x) ? `${column.id}-${column.getSelectedOptionValue(x)}` : void 0}"
279
- @keydown="${(x, c) => onPickerKeyDown(x, column, c.event)}"
280
- >
281
- ${repeat.repeat(
276
+ return vividElement.html`<div class="picker-wrapper">
277
+ <ul
278
+ id="${column.id}"
279
+ class="picker"
280
+ role="listbox"
281
+ tabindex="0"
282
+ aria-label="${column.getLabel}"
283
+ aria-activedescendant="${(x) => column.getSelectedOptionValue(x) ? `${column.id}-${column.getSelectedOptionValue(x)}` : void 0}"
284
+ @keydown="${(x, c) => onPickerKeyDown(x, column, c.event)}"
285
+ >
286
+ ${repeat.repeat(
282
287
  (x) => column.getOptions(x),
283
288
  vividElement.html`<li
284
- id="${(x) => `${column.id}-${x.value}`}"
285
- class="${(x, c) => classNames.classNames("option", [
289
+ id="${(x) => `${column.id}-${x.value}`}"
290
+ class="${(x, c) => classNames.classNames("option", [
286
291
  "selected",
287
292
  column.getSelectedOptionValue(c.parent) === x.value
288
293
  ])}"
289
- aria-selected="${(x, c) => column.getSelectedOptionValue(c.parent) === x.value}"
290
- role="option"
291
- @click="${(x, c) => onPickerOptionClick(c.parent, column, x.value)}"
292
- >
293
- ${(x) => x.label}
294
- </li>`
294
+ aria-selected="${(x, c) => column.getSelectedOptionValue(c.parent) === x.value}"
295
+ role="option"
296
+ @click="${(x, c) => onPickerOptionClick(c.parent, column, x.value)}"
297
+ >
298
+ ${(x) => x.label}
299
+ </li>`
295
300
  )}
296
- </ul>`;
301
+ </ul>
302
+ </div>`;
297
303
  };
298
304
  const InlineTimePickerTemplate = () => {
299
305
  return vividElement.html`<div
300
306
  class="time-pickers"
301
307
  @keydown="${(x, { event }) => onBaseKeyDown(x, event)}"
308
+ @focusout="${(x) => x._onFocusOut()}"
309
+ @pointerdown="${(x) => x._onPointerDown()}"
302
310
  >
303
311
  ${renderPicker(HoursColumn)} ${renderPicker(MinutesColumn)}
304
312
  ${when.when(shouldDisplaySecondsPicker, renderPicker(SecondsColumn))}
@@ -320,6 +328,19 @@ class InlineTimePicker extends localized.Localized(vividElement.VividElement) {
320
328
  super(...arguments);
321
329
  this.minutesStep = 1;
322
330
  this.clock = "24h";
331
+ this.focusedPickerClass = "focused";
332
+ /**
333
+ * @internal
334
+ */
335
+ this._onFocusOut = () => {
336
+ this._clearFocusedClasses();
337
+ };
338
+ /**
339
+ * @internal
340
+ */
341
+ this._onPointerDown = () => {
342
+ this._clearFocusedClasses();
343
+ };
323
344
  }
324
345
  valueChanged(_, newValue) {
325
346
  if (newValue !== void 0 && !isValidTimeStr(newValue)) {
@@ -365,6 +386,34 @@ class InlineTimePicker extends localized.Localized(vividElement.VividElement) {
365
386
  ".picker"
366
387
  );
367
388
  firstFocusableElement.focus(options);
389
+ this._applyFocusedClass();
390
+ }
391
+ /**
392
+ * @internal
393
+ * Apply 'focused' class to the wrapper element of an active picker
394
+ */
395
+ _applyFocusedClass() {
396
+ const pickers = this.shadowRoot.querySelectorAll(".picker");
397
+ requestAnimationFrame(() => {
398
+ const active = this.shadowRoot.activeElement;
399
+ pickers.forEach((el) => {
400
+ if (el === active) {
401
+ el.parentElement?.classList.add(this.focusedPickerClass);
402
+ } else {
403
+ el.parentElement?.classList.remove(this.focusedPickerClass);
404
+ }
405
+ });
406
+ });
407
+ }
408
+ /**
409
+ * @internal
410
+ * Clear 'focused' classes from all pickers wrappers
411
+ */
412
+ _clearFocusedClasses() {
413
+ const pickers = this.shadowRoot.querySelectorAll(".picker");
414
+ pickers.forEach((el) => {
415
+ el.parentElement?.classList.remove(this.focusedPickerClass);
416
+ });
368
417
  }
369
418
  }
370
419
  __decorateClass$2([
@@ -386,7 +435,7 @@ __decorateClass$2([
386
435
  vividElement.observable
387
436
  ], InlineTimePicker.prototype, "max");
388
437
 
389
- const styles = ":host{display:inline-block}.time-pickers{display:flex;overflow:hidden;justify-content:center;padding:4px;block-size:calc(28px * var(--_inline-time-picker-num-options-visible) + 4px * (var(--_inline-time-picker-num-options-visible) - 1));gap:4px}.time-pickers .picker{position:relative;display:flex;overflow:hidden;flex-direction:column;padding:0;border-radius:4px;margin:0;gap:4px;inline-size:50px;list-style:none}.time-pickers .picker:hover{overflow-y:auto}.time-pickers .picker:after{display:block;flex-shrink:0;block-size:calc(28px * (var(--_inline-time-picker-num-options-visible) - 1) + 4px * (var(--_inline-time-picker-num-options-visible) - 1 - 1));content:\"\"}.time-pickers .picker:focus-visible{--focus-stroke-gap-color: transparent;--focus-inset: -2px;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))}.time-pickers .option{--_connotation-color-primary: var(--vvd-time-picker-accent-primary, var(--vvd-color-canvas-text));--_connotation-color-firm: var(--vvd-time-picker-accent-firm, var(--vvd-color-canvas-text));--_connotation-color-faint: var(--vvd-time-picker-accent-faint, var(--vvd-color-neutral-50));--_connotation-color-soft: var(--vvd-time-picker-accent-soft, var(--vvd-color-neutral-100));--_connotation-color-dim: var(--vvd-time-picker-accent-dim, var(--vvd-color-neutral-200));--_connotation-color-pale: var(--vvd-time-picker-accent-pale, var(--vvd-color-neutral-300))}.time-pickers .option{--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: transparent;--_appearance-color-outline: transparent}.time-pickers .option: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}.time-pickers .option: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}.time-pickers .option:where(.selected):where(:not(.disabled,:disabled)){--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: var(--_connotation-color-soft);--_appearance-color-outline: transparent}.time-pickers .option: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}.time-pickers .option: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}.time-pickers .option{display:flex;flex-shrink:0;align-items:center;justify-content:center;border-radius:4px;background-color:var(--_appearance-color-fill);block-size:28px;color:var(--_appearance-color-text);cursor:pointer;font:var(--vvd-typography-base);inline-size:50px}";
438
+ const styles = ":host{display:inline-block}.time-pickers{display:flex;overflow:hidden;justify-content:center;padding:4px;block-size:calc(28px * var(--_inline-time-picker-num-options-visible) + 4px * (var(--_inline-time-picker-num-options-visible) - 1));gap:4px}.time-pickers .picker-wrapper{position:relative;display:flex;flex-direction:column;border-radius:4px}.time-pickers .picker-wrapper.focused{--focus-stroke-gap-color: transparent;--focus-inset: -2px;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))}.time-pickers .picker{position:relative;display:flex;overflow:hidden scroll;flex-direction:column;padding:0 4px;border-radius:4px;margin:0 -4px;gap:4px;inline-size:50px;list-style:none;scrollbar-width:none}.time-pickers .picker:hover{scrollbar-width:auto}.time-pickers .picker:after{display:block;flex-shrink:0;block-size:calc(28px * (var(--_inline-time-picker-num-options-visible) - 1) + 4px * (var(--_inline-time-picker-num-options-visible) - 1 - 1));content:\"\"}.time-pickers .picker:focus-visible{outline:none}.time-pickers .option{--_connotation-color-primary: var(--vvd-time-picker-accent-primary, var(--vvd-color-canvas-text));--_connotation-color-firm: var(--vvd-time-picker-accent-firm, var(--vvd-color-canvas-text));--_connotation-color-faint: var(--vvd-time-picker-accent-faint, var(--vvd-color-neutral-50));--_connotation-color-soft: var(--vvd-time-picker-accent-soft, var(--vvd-color-neutral-100));--_connotation-color-dim: var(--vvd-time-picker-accent-dim, var(--vvd-color-neutral-200));--_connotation-color-pale: var(--vvd-time-picker-accent-pale, var(--vvd-color-neutral-300))}.time-pickers .option{--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: transparent;--_appearance-color-outline: transparent}.time-pickers .option: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}.time-pickers .option: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}.time-pickers .option:where(.selected):where(:not(.disabled,:disabled)){--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: var(--_connotation-color-soft);--_appearance-color-outline: transparent}.time-pickers .option: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}.time-pickers .option: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}.time-pickers .option{display:flex;flex-shrink:0;align-items:center;justify-content:center;border-radius:4px;background-color:var(--_appearance-color-fill);block-size:28px;color:var(--_appearance-color-text);cursor:pointer;font:var(--vvd-typography-base);inline-size:50px}.time-pickers .picker-wrapper:not(.focused) .picker:focus-visible .option.selected{--focus-stroke-gap-color: transparent;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))}";
390
439
 
391
440
  const inlineTimePickerDefinition = vividElement.defineVividComponent(
392
441
  "inline-time-picker",
@@ -215,8 +215,10 @@ const shouldDisplay12hClock = (x) => x.clock === "12h";
215
215
  const onPickerOptionClick = (x, column, optionValue) => {
216
216
  emitChange(x, column.updatedValue(x, optionValue));
217
217
  scrollToOption(x, column.id, optionValue, "start");
218
- const nextPickerEl = x.shadowRoot.querySelector(
219
- `#${column.id} + .picker`
218
+ const currentPicker = x.shadowRoot.querySelector(`#${column.id}`)?.closest(".picker-wrapper");
219
+ const nextPickerWrapper = currentPicker?.nextElementSibling;
220
+ const nextPickerEl = nextPickerWrapper?.querySelector(
221
+ ".picker"
220
222
  );
221
223
  if (nextPickerEl) {
222
224
  nextPickerEl.focus();
@@ -241,6 +243,7 @@ const onPickerKeyDown = (x, column, event) => {
241
243
  const newValue = options[newIndex].value;
242
244
  emitChange(x, column.updatedValue(x, newValue));
243
245
  scrollToOption(x, column.id, newValue, "nearest");
246
+ x._clearFocusedClasses();
244
247
  }
245
248
  return true;
246
249
  };
@@ -260,6 +263,7 @@ const onBaseKeyDown = (x, event) => {
260
263
  if (x.shadowRoot.activeElement !== terminalElement) {
261
264
  ignoreEventInFocusTraps(event);
262
265
  }
266
+ x._applyFocusedClass();
263
267
  }
264
268
  return true;
265
269
  };
@@ -267,36 +271,40 @@ const emitChange = (x, time) => {
267
271
  x.$emit("change", time, { bubbles: false, composed: false });
268
272
  };
269
273
  const renderPicker = (column) => {
270
- return html`<ul
271
- id="${column.id}"
272
- class="picker"
273
- role="listbox"
274
- tabindex="0"
275
- aria-label="${column.getLabel}"
276
- aria-activedescendant="${(x) => column.getSelectedOptionValue(x) ? `${column.id}-${column.getSelectedOptionValue(x)}` : void 0}"
277
- @keydown="${(x, c) => onPickerKeyDown(x, column, c.event)}"
278
- >
279
- ${repeat(
274
+ return html`<div class="picker-wrapper">
275
+ <ul
276
+ id="${column.id}"
277
+ class="picker"
278
+ role="listbox"
279
+ tabindex="0"
280
+ aria-label="${column.getLabel}"
281
+ aria-activedescendant="${(x) => column.getSelectedOptionValue(x) ? `${column.id}-${column.getSelectedOptionValue(x)}` : void 0}"
282
+ @keydown="${(x, c) => onPickerKeyDown(x, column, c.event)}"
283
+ >
284
+ ${repeat(
280
285
  (x) => column.getOptions(x),
281
286
  html`<li
282
- id="${(x) => `${column.id}-${x.value}`}"
283
- class="${(x, c) => classNames("option", [
287
+ id="${(x) => `${column.id}-${x.value}`}"
288
+ class="${(x, c) => classNames("option", [
284
289
  "selected",
285
290
  column.getSelectedOptionValue(c.parent) === x.value
286
291
  ])}"
287
- aria-selected="${(x, c) => column.getSelectedOptionValue(c.parent) === x.value}"
288
- role="option"
289
- @click="${(x, c) => onPickerOptionClick(c.parent, column, x.value)}"
290
- >
291
- ${(x) => x.label}
292
- </li>`
292
+ aria-selected="${(x, c) => column.getSelectedOptionValue(c.parent) === x.value}"
293
+ role="option"
294
+ @click="${(x, c) => onPickerOptionClick(c.parent, column, x.value)}"
295
+ >
296
+ ${(x) => x.label}
297
+ </li>`
293
298
  )}
294
- </ul>`;
299
+ </ul>
300
+ </div>`;
295
301
  };
296
302
  const InlineTimePickerTemplate = () => {
297
303
  return html`<div
298
304
  class="time-pickers"
299
305
  @keydown="${(x, { event }) => onBaseKeyDown(x, event)}"
306
+ @focusout="${(x) => x._onFocusOut()}"
307
+ @pointerdown="${(x) => x._onPointerDown()}"
300
308
  >
301
309
  ${renderPicker(HoursColumn)} ${renderPicker(MinutesColumn)}
302
310
  ${when(shouldDisplaySecondsPicker, renderPicker(SecondsColumn))}
@@ -318,6 +326,19 @@ class InlineTimePicker extends Localized(VividElement) {
318
326
  super(...arguments);
319
327
  this.minutesStep = 1;
320
328
  this.clock = "24h";
329
+ this.focusedPickerClass = "focused";
330
+ /**
331
+ * @internal
332
+ */
333
+ this._onFocusOut = () => {
334
+ this._clearFocusedClasses();
335
+ };
336
+ /**
337
+ * @internal
338
+ */
339
+ this._onPointerDown = () => {
340
+ this._clearFocusedClasses();
341
+ };
321
342
  }
322
343
  valueChanged(_, newValue) {
323
344
  if (newValue !== void 0 && !isValidTimeStr(newValue)) {
@@ -363,6 +384,34 @@ class InlineTimePicker extends Localized(VividElement) {
363
384
  ".picker"
364
385
  );
365
386
  firstFocusableElement.focus(options);
387
+ this._applyFocusedClass();
388
+ }
389
+ /**
390
+ * @internal
391
+ * Apply 'focused' class to the wrapper element of an active picker
392
+ */
393
+ _applyFocusedClass() {
394
+ const pickers = this.shadowRoot.querySelectorAll(".picker");
395
+ requestAnimationFrame(() => {
396
+ const active = this.shadowRoot.activeElement;
397
+ pickers.forEach((el) => {
398
+ if (el === active) {
399
+ el.parentElement?.classList.add(this.focusedPickerClass);
400
+ } else {
401
+ el.parentElement?.classList.remove(this.focusedPickerClass);
402
+ }
403
+ });
404
+ });
405
+ }
406
+ /**
407
+ * @internal
408
+ * Clear 'focused' classes from all pickers wrappers
409
+ */
410
+ _clearFocusedClasses() {
411
+ const pickers = this.shadowRoot.querySelectorAll(".picker");
412
+ pickers.forEach((el) => {
413
+ el.parentElement?.classList.remove(this.focusedPickerClass);
414
+ });
366
415
  }
367
416
  }
368
417
  __decorateClass$2([
@@ -384,7 +433,7 @@ __decorateClass$2([
384
433
  observable
385
434
  ], InlineTimePicker.prototype, "max");
386
435
 
387
- const styles = ":host{display:inline-block}.time-pickers{display:flex;overflow:hidden;justify-content:center;padding:4px;block-size:calc(28px * var(--_inline-time-picker-num-options-visible) + 4px * (var(--_inline-time-picker-num-options-visible) - 1));gap:4px}.time-pickers .picker{position:relative;display:flex;overflow:hidden;flex-direction:column;padding:0;border-radius:4px;margin:0;gap:4px;inline-size:50px;list-style:none}.time-pickers .picker:hover{overflow-y:auto}.time-pickers .picker:after{display:block;flex-shrink:0;block-size:calc(28px * (var(--_inline-time-picker-num-options-visible) - 1) + 4px * (var(--_inline-time-picker-num-options-visible) - 1 - 1));content:\"\"}.time-pickers .picker:focus-visible{--focus-stroke-gap-color: transparent;--focus-inset: -2px;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))}.time-pickers .option{--_connotation-color-primary: var(--vvd-time-picker-accent-primary, var(--vvd-color-canvas-text));--_connotation-color-firm: var(--vvd-time-picker-accent-firm, var(--vvd-color-canvas-text));--_connotation-color-faint: var(--vvd-time-picker-accent-faint, var(--vvd-color-neutral-50));--_connotation-color-soft: var(--vvd-time-picker-accent-soft, var(--vvd-color-neutral-100));--_connotation-color-dim: var(--vvd-time-picker-accent-dim, var(--vvd-color-neutral-200));--_connotation-color-pale: var(--vvd-time-picker-accent-pale, var(--vvd-color-neutral-300))}.time-pickers .option{--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: transparent;--_appearance-color-outline: transparent}.time-pickers .option: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}.time-pickers .option: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}.time-pickers .option:where(.selected):where(:not(.disabled,:disabled)){--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: var(--_connotation-color-soft);--_appearance-color-outline: transparent}.time-pickers .option: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}.time-pickers .option: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}.time-pickers .option{display:flex;flex-shrink:0;align-items:center;justify-content:center;border-radius:4px;background-color:var(--_appearance-color-fill);block-size:28px;color:var(--_appearance-color-text);cursor:pointer;font:var(--vvd-typography-base);inline-size:50px}";
436
+ const styles = ":host{display:inline-block}.time-pickers{display:flex;overflow:hidden;justify-content:center;padding:4px;block-size:calc(28px * var(--_inline-time-picker-num-options-visible) + 4px * (var(--_inline-time-picker-num-options-visible) - 1));gap:4px}.time-pickers .picker-wrapper{position:relative;display:flex;flex-direction:column;border-radius:4px}.time-pickers .picker-wrapper.focused{--focus-stroke-gap-color: transparent;--focus-inset: -2px;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))}.time-pickers .picker{position:relative;display:flex;overflow:hidden scroll;flex-direction:column;padding:0 4px;border-radius:4px;margin:0 -4px;gap:4px;inline-size:50px;list-style:none;scrollbar-width:none}.time-pickers .picker:hover{scrollbar-width:auto}.time-pickers .picker:after{display:block;flex-shrink:0;block-size:calc(28px * (var(--_inline-time-picker-num-options-visible) - 1) + 4px * (var(--_inline-time-picker-num-options-visible) - 1 - 1));content:\"\"}.time-pickers .picker:focus-visible{outline:none}.time-pickers .option{--_connotation-color-primary: var(--vvd-time-picker-accent-primary, var(--vvd-color-canvas-text));--_connotation-color-firm: var(--vvd-time-picker-accent-firm, var(--vvd-color-canvas-text));--_connotation-color-faint: var(--vvd-time-picker-accent-faint, var(--vvd-color-neutral-50));--_connotation-color-soft: var(--vvd-time-picker-accent-soft, var(--vvd-color-neutral-100));--_connotation-color-dim: var(--vvd-time-picker-accent-dim, var(--vvd-color-neutral-200));--_connotation-color-pale: var(--vvd-time-picker-accent-pale, var(--vvd-color-neutral-300))}.time-pickers .option{--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: transparent;--_appearance-color-outline: transparent}.time-pickers .option: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}.time-pickers .option: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}.time-pickers .option:where(.selected):where(:not(.disabled,:disabled)){--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: var(--_connotation-color-soft);--_appearance-color-outline: transparent}.time-pickers .option: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}.time-pickers .option: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}.time-pickers .option{display:flex;flex-shrink:0;align-items:center;justify-content:center;border-radius:4px;background-color:var(--_appearance-color-fill);block-size:28px;color:var(--_appearance-color-text);cursor:pointer;font:var(--vvd-typography-base);inline-size:50px}.time-pickers .picker-wrapper:not(.focused) .picker:focus-visible .option.selected{--focus-stroke-gap-color: transparent;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))}";
388
437
 
389
438
  const inlineTimePickerDefinition = defineVividComponent(
390
439
  "inline-time-picker",
@@ -2734,7 +2734,7 @@ const ReplacedPropHandling = (Base) => {
2734
2734
 
2735
2735
  class VividElement extends AriaMixin(ReplacedPropHandling(FASTElement)) {
2736
2736
  static {
2737
- this.VIVID_VERSION = "4.27.0";
2737
+ this.VIVID_VERSION = "4.29.0";
2738
2738
  }
2739
2739
  /**
2740
2740
  * Add data-vvd-component attribute with component name globally,
@@ -2732,7 +2732,7 @@ const ReplacedPropHandling = (Base) => {
2732
2732
 
2733
2733
  class VividElement extends AriaMixin(ReplacedPropHandling(FASTElement)) {
2734
2734
  static {
2735
- this.VIVID_VERSION = "4.27.0";
2735
+ this.VIVID_VERSION = "4.29.0";
2736
2736
  }
2737
2737
  /**
2738
2738
  * Add data-vvd-component attribute with component name globally,
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Do not edit directly
3
- * Generated on Thu, 26 Jun 2025 11:10:08 GMT
3
+ * Generated on Fri, 25 Jul 2025 10:55:57 GMT
4
4
  */
5
5
  .vvd-root {
6
6
  background-color: var(--vvd-color-canvas);
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Do not edit directly
3
- * Generated on Thu, 26 Jun 2025 11:10:08 GMT
3
+ * Generated on Fri, 25 Jul 2025 10:55:57 GMT
4
4
  */
5
5
  .vvd-root {
6
6
  background-color: var(--vvd-color-canvas);
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Do not edit directly
3
- * Generated on Thu, 26 Jun 2025 11:10:08 GMT
3
+ * Generated on Fri, 25 Jul 2025 10:55:57 GMT
4
4
  */
5
5
  .vvd-root:root {
6
6
  --vvd-size-font-scale-base: 1rem;
@@ -1,18 +1,18 @@
1
1
  /**
2
2
  * Do not edit directly
3
- * Generated on Thu, 26 Jun 2025 11:10:08 GMT
3
+ * Generated on Fri, 25 Jul 2025 10:55:57 GMT
4
4
  */
5
5
  /**
6
6
  * Do not edit directly
7
- * Generated on Thu, 26 Jun 2025 11:10:08 GMT
7
+ * Generated on Fri, 25 Jul 2025 10:55:57 GMT
8
8
  */
9
9
  /**
10
10
  * Do not edit directly
11
- * Generated on Thu, 26 Jun 2025 11:10:08 GMT
11
+ * Generated on Fri, 25 Jul 2025 10:55:57 GMT
12
12
  */
13
13
  /**
14
14
  * Do not edit directly
15
- * Generated on Thu, 26 Jun 2025 11:10:08 GMT
15
+ * Generated on Fri, 25 Jul 2025 10:55:57 GMT
16
16
  */
17
17
  @property --vvd-size-density {
18
18
  syntax: "<integer>";
@@ -1,18 +1,18 @@
1
1
  /**
2
2
  * Do not edit directly
3
- * Generated on Thu, 26 Jun 2025 11:10:08 GMT
3
+ * Generated on Fri, 25 Jul 2025 10:55:57 GMT
4
4
  */
5
5
  /**
6
6
  * Do not edit directly
7
- * Generated on Thu, 26 Jun 2025 11:10:08 GMT
7
+ * Generated on Fri, 25 Jul 2025 10:55:57 GMT
8
8
  */
9
9
  /**
10
10
  * Do not edit directly
11
- * Generated on Thu, 26 Jun 2025 11:10:08 GMT
11
+ * Generated on Fri, 25 Jul 2025 10:55:57 GMT
12
12
  */
13
13
  /**
14
14
  * Do not edit directly
15
- * Generated on Thu, 26 Jun 2025 11:10:08 GMT
15
+ * Generated on Fri, 25 Jul 2025 10:55:57 GMT
16
16
  */
17
17
  @property --vvd-size-density {
18
18
  syntax: "<integer>";
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Do not edit directly
3
- * Generated on Thu, 26 Jun 2025 11:10:08 GMT
3
+ * Generated on Fri, 25 Jul 2025 10:55:57 GMT
4
4
  */
5
5
  .vvd-root, ::part(vvd-root),
6
6
  .vvd-theme-alternate, ::part(vvd-theme-alternate) {