@vonage/vivid 4.30.0 → 4.31.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 (51) hide show
  1. package/custom-elements.json +13 -3
  2. package/lib/badge/badge.d.ts +1 -1
  3. package/lib/date-picker/date-picker.d.ts +2 -2
  4. package/lib/date-time-picker/date-time-picker.d.ts +3 -3
  5. package/lib/time-picker/time-picker.d.ts +2 -2
  6. package/lib/toggletip/locale.d.ts +3 -0
  7. package/lib/toggletip/toggletip.d.ts +347 -10
  8. package/locales/de-DE.cjs +6 -0
  9. package/locales/de-DE.js +6 -0
  10. package/locales/en-GB.cjs +6 -0
  11. package/locales/en-GB.js +6 -0
  12. package/locales/en-US.cjs +6 -0
  13. package/locales/en-US.js +6 -0
  14. package/locales/ja-JP.cjs +6 -0
  15. package/locales/ja-JP.js +6 -0
  16. package/locales/zh-CN.cjs +6 -0
  17. package/locales/zh-CN.js +6 -0
  18. package/package.json +1 -1
  19. package/shared/anchored.js +1 -1
  20. package/shared/definition13.cjs +1 -1
  21. package/shared/definition13.js +1 -1
  22. package/shared/definition15.cjs +1 -1
  23. package/shared/definition15.js +1 -1
  24. package/shared/definition31.cjs +1 -1
  25. package/shared/definition31.js +1 -1
  26. package/shared/definition5.cjs +1 -1
  27. package/shared/definition5.js +1 -1
  28. package/shared/definition56.cjs +5 -4
  29. package/shared/definition56.js +5 -4
  30. package/shared/definition60.cjs +7 -6
  31. package/shared/definition60.js +7 -6
  32. package/shared/localization/Locale.d.ts +2 -0
  33. package/shared/picker-field/mixins/single-date-picker.d.ts +2 -2
  34. package/shared/picker-field/mixins/single-value-picker.d.ts +1 -1
  35. package/shared/picker-field/mixins/time-selection-picker.d.ts +2 -2
  36. package/shared/picker-field/mixins/time-selection-picker.template.d.ts +2 -2
  37. package/shared/single-date-picker.cjs +1 -1
  38. package/shared/single-date-picker.js +1 -1
  39. package/shared/single-value-picker.cjs +22 -21
  40. package/shared/single-value-picker.js +22 -21
  41. package/shared/time-selection-picker.template.cjs +2 -1
  42. package/shared/time-selection-picker.template.js +2 -1
  43. package/shared/vivid-element.cjs +1 -1
  44. package/shared/vivid-element.js +1 -1
  45. package/styles/core/all.css +1 -1
  46. package/styles/core/theme.css +1 -1
  47. package/styles/core/typography.css +1 -1
  48. package/styles/tokens/theme-dark.css +4 -4
  49. package/styles/tokens/theme-light.css +4 -4
  50. package/styles/tokens/vivid-2-compat.css +1 -1
  51. package/vivid.api.json +10 -1
@@ -539,7 +539,7 @@ class Calendar extends vividElement.VividElement {
539
539
  constructor() {
540
540
  super(...arguments);
541
541
  this.hour12 = false;
542
- this.stickyMode = enums.Sticky.None;
542
+ this.stickyMode = enums.Sticky.All;
543
543
  /**
544
544
  * @internal
545
545
  */
@@ -537,7 +537,7 @@ class Calendar extends VividElement {
537
537
  constructor() {
538
538
  super(...arguments);
539
539
  this.hour12 = false;
540
- this.stickyMode = Sticky.None;
540
+ this.stickyMode = Sticky.All;
541
541
  /**
542
542
  * @internal
543
543
  */
@@ -169,7 +169,7 @@ const CheckboxTemplate = (context) => {
169
169
  >
170
170
  <div class="control">
171
171
  ${when.when(
172
- (x) => x.checked,
172
+ (x) => x.checked && !x.indeterminate,
173
173
  vividElement.html`<${iconTag} name="check-solid" class="icon"></${iconTag}>`
174
174
  )}
175
175
  ${when.when(
@@ -167,7 +167,7 @@ const CheckboxTemplate = (context) => {
167
167
  >
168
168
  <div class="control">
169
169
  ${when(
170
- (x) => x.checked,
170
+ (x) => x.checked && !x.indeterminate,
171
171
  html`<${iconTag} name="check-solid" class="icon"></${iconTag}>`
172
172
  )}
173
173
  ${when(
@@ -211,7 +211,7 @@ class Menu extends anchored.Anchored(delegatesAria.DelegatesAria(vividElement.Vi
211
211
  }
212
212
  }
213
213
  get #triggerBehaviour() {
214
- return this.trigger ?? "legacy";
214
+ return this.trigger ?? "auto";
215
215
  }
216
216
  openChanged(_, newValue) {
217
217
  if (newValue) {
@@ -209,7 +209,7 @@ class Menu extends Anchored(DelegatesAria(VividElement)) {
209
209
  }
210
210
  }
211
211
  get #triggerBehaviour() {
212
- return this.trigger ?? "legacy";
212
+ return this.trigger ?? "auto";
213
213
  }
214
214
  openChanged(_, newValue) {
215
215
  if (newValue) {
@@ -379,7 +379,7 @@ const AudioPlayerTemplate = (context) => {
379
379
  ${when.when(
380
380
  (x) => Boolean(x.playbackRates),
381
381
  vividElement.html`
382
- <${menuTag} class="playback-rates" trigger="auto" placement="top-start" auto-dismiss id="playback-menu" position-strategy="absolute">
382
+ <${menuTag} class="playback-rates" placement="top-start" auto-dismiss id="playback-menu" position-strategy="absolute">
383
383
  <${buttonTag} id="playback-open-button"
384
384
  class="playback-button"
385
385
  slot="anchor"
@@ -377,7 +377,7 @@ const AudioPlayerTemplate = (context) => {
377
377
  ${when(
378
378
  (x) => Boolean(x.playbackRates),
379
379
  html`
380
- <${menuTag} class="playback-rates" trigger="auto" placement="top-start" auto-dismiss id="playback-menu" position-strategy="absolute">
380
+ <${menuTag} class="playback-rates" placement="top-start" auto-dismiss id="playback-menu" position-strategy="absolute">
381
381
  <${buttonTag} id="playback-open-button"
382
382
  class="playback-button"
383
383
  slot="anchor"
@@ -78,7 +78,7 @@ __decorateClass([
78
78
  vividElement.attr({ mode: "boolean" })
79
79
  ], Tag.prototype, "selected");
80
80
 
81
- const styles = ".base.connotation-cta{--_connotation-color-primary: var(--vvd-tag-cta-primary, var(--vvd-color-cta-500));--_connotation-color-primary-text: var(--vvd-tag-cta-primary-text, var(--vvd-color-canvas));--_connotation-color-soft: var(--vvd-tag-cta-soft, var(--vvd-color-cta-100));--_connotation-color-contrast: var(--vvd-tag-cta-contrast, var(--vvd-color-cta-800));--_connotation-color-pale: var(--vvd-tag-cta-pale, var(--vvd-color-cta-300));--_connotation-color-fierce: var(--vvd-tag-cta-fierce, var(--vvd-color-cta-700));--_connotation-color-firm: var(--vvd-tag-cta-firm, var(--vvd-color-cta-600));--_connotation-color-firm-all: var(--vvd-tag-cta-firm-all, var(--vvd-color-cta-600));--_connotation-color-faint: var(--vvd-tag-cta-faint, var(--vvd-color-cta-50));--_connotation-color-dim: var(--vvd-tag-cta-dim, var(--vvd-color-cta-200))}.base:not(.connotation-cta){--_connotation-color-primary: var(--vvd-tag-accent-primary, var(--vvd-color-canvas-text));--_connotation-color-primary-text: var(--vvd-tag-accent-primary-text, var(--vvd-color-canvas));--_connotation-color-soft: var(--vvd-tag-accent-soft, var(--vvd-color-neutral-100));--_connotation-color-contrast: var(--vvd-tag-accent-contrast, var(--vvd-color-neutral-800));--_connotation-color-pale: var(--vvd-tag-accent-pale, var(--vvd-color-neutral-300));--_connotation-color-fierce: var(--vvd-tag-accent-fierce, var(--vvd-color-neutral-700));--_connotation-color-firm: var(--vvd-tag-accent-firm, var(--vvd-color-canvas-text));--_connotation-color-firm-all: var(--vvd-tag-accent-firm-all, var(--vvd-color-neutral-600));--_connotation-color-faint: var(--vvd-tag-accent-faint, var(--vvd-color-neutral-50));--_connotation-color-dim: var(--vvd-tag-accent-dim, var(--vvd-color-neutral-200))}.base{--_appearance-color-text: var(--_connotation-color-contrast);--_appearance-color-fill: var(--_connotation-color-soft);--_appearance-color-outline: transparent}.base.appearance-duotone{--_appearance-color-text: var(--_connotation-color-firm-all);--_appearance-color-fill: transparent;--_appearance-color-outline: var(--_connotation-color-pale)}.base.appearance-subtle-light{--_appearance-color-text: var(--_connotation-color-contrast);--_appearance-color-fill: color-mix(in srgb, var(--_connotation-color-primary), transparent 85%);--_appearance-color-outline: transparent}.base:where(.hover,:hover):where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--_connotation-color-contrast);--_appearance-color-fill: var(--_connotation-color-faint);--_appearance-color-outline: transparent}.base:where(.hover,:hover):where(:not(.disabled,:disabled,.readonly)).appearance-duotone{--_appearance-color-text: var(--_connotation-color-firm-all);--_appearance-color-fill: transparent;--_appearance-color-outline: var(--_connotation-color-firm-all)}.base:where(.hover,:hover):where(:not(.disabled,:disabled,.readonly)).appearance-subtle-light{--_appearance-color-text: var(--_connotation-color-contrast);--_appearance-color-fill: color-mix(in srgb, var(--_connotation-color-primary), transparent 75%);--_appearance-color-outline: transparent}.base:where(.active,:active):where(:not(.disabled,:disabled)){--_appearance-color-text: var(--_connotation-color-contrast);--_appearance-color-fill: var(--_connotation-color-dim);--_appearance-color-outline: transparent}.base:where(.active,:active):where(:not(.disabled,:disabled)).appearance-duotone{--_appearance-color-text: var(--_connotation-color-firm-all);--_appearance-color-fill: var(--_connotation-color-faint);--_appearance-color-outline: var(--_connotation-color-pale)}.base:where(.active,:active):where(:not(.disabled,:disabled)).appearance-subtle-light{--_appearance-color-text: var(--_connotation-color-contrast);--_appearance-color-fill: color-mix(in srgb, var(--_connotation-color-primary), transparent 65%);--_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: transparent}.base:where(.disabled,:disabled).appearance-duotone{--_appearance-color-text: var(--vvd-color-neutral-300);--_appearance-color-fill: transparent;--_appearance-color-outline: var(--vvd-color-neutral-100)}.base:where(.disabled,:disabled).appearance-subtle-light{--_appearance-color-text: var(--vvd-color-neutral-300);--_appearance-color-fill: var(--vvd-color-neutral-100);--_appearance-color-outline: transparent}.base:where(.selected):where(:not(.disabled,:disabled)){--_appearance-color-text: var(--_connotation-color-contrast);--_appearance-color-fill: var(--_connotation-color-pale);--_appearance-color-outline: transparent}.base:where(.selected):where(:not(.disabled,:disabled)).appearance-duotone{--_appearance-color-text: var(--_connotation-color-firm-all);--_appearance-color-fill: var(--_connotation-color-soft);--_appearance-color-outline: var(--_connotation-color-pale)}.base:where(.selected):where(:not(.disabled,:disabled)).appearance-subtle-light{--_appearance-color-text: var(--vvd-color-canvas);--_appearance-color-fill: var(--_connotation-color-firm);--_appearance-color-outline: transparent}.base{--tag-block-size: calc(1px*(24 + 4*clamp(-1, var(--vvd-size-density, 0), 2))) ;position:relative;display:inline-flex;box-sizing:border-box;align-items:center;background-color:var(--_appearance-color-fill);block-size:var(--tag-block-size);box-shadow:inset 0 0 0 1px var(--_appearance-color-outline);color:var(--_appearance-color-text);column-gap:8px;font:var(--vvd-typography-base-bold);max-inline-size:100%;padding-inline:8px;vertical-align:middle}.base:not(.shape-pill){border-radius:4px}.base.shape-pill{border-radius:16px}.base:focus-visible{--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 (user-select: none){.base{user-select:none}}.base:not(.disabled){cursor:pointer}.base.disabled{cursor:not-allowed;pointer-events:none}.base.removable{cursor:auto}.label{overflow:hidden;max-inline-size:100%;text-overflow:ellipsis;white-space:nowrap}slot[name=icon]{font-size:calc(var(--tag-block-size) / 1.5);line-height:1}.dismiss-button{display:flex;align-items:center;padding:0;border:none;border-radius:inherit;background-color:var(--_appearance-color-fill);cursor:pointer}.dismiss-button:focus{--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))}";
81
+ const styles = ".base.connotation-cta{--_connotation-color-primary: var(--vvd-tag-cta-primary, var(--vvd-color-cta-500));--_connotation-color-primary-text: var(--vvd-tag-cta-primary-text, var(--vvd-color-canvas));--_connotation-color-soft: var(--vvd-tag-cta-soft, var(--vvd-color-cta-100));--_connotation-color-contrast: var(--vvd-tag-cta-contrast, var(--vvd-color-cta-800));--_connotation-color-pale: var(--vvd-tag-cta-pale, var(--vvd-color-cta-300));--_connotation-color-fierce: var(--vvd-tag-cta-fierce, var(--vvd-color-cta-700));--_connotation-color-firm: var(--vvd-tag-cta-firm, var(--vvd-color-cta-600));--_connotation-color-firm-all: var(--vvd-tag-cta-firm-all, var(--vvd-color-cta-600));--_connotation-color-faint: var(--vvd-tag-cta-faint, var(--vvd-color-cta-50));--_connotation-color-dim: var(--vvd-tag-cta-dim, var(--vvd-color-cta-200))}.base:not(.connotation-cta){--_connotation-color-primary: var(--vvd-tag-accent-primary, var(--vvd-color-canvas-text));--_connotation-color-primary-text: var(--vvd-tag-accent-primary-text, var(--vvd-color-canvas));--_connotation-color-soft: var(--vvd-tag-accent-soft, var(--vvd-color-neutral-100));--_connotation-color-contrast: var(--vvd-tag-accent-contrast, var(--vvd-color-neutral-800));--_connotation-color-pale: var(--vvd-tag-accent-pale, var(--vvd-color-neutral-300));--_connotation-color-fierce: var(--vvd-tag-accent-fierce, var(--vvd-color-neutral-700));--_connotation-color-firm: var(--vvd-tag-accent-firm, var(--vvd-color-canvas-text));--_connotation-color-firm-all: var(--vvd-tag-accent-firm-all, var(--vvd-color-neutral-600));--_connotation-color-faint: var(--vvd-tag-accent-faint, var(--vvd-color-neutral-50));--_connotation-color-dim: var(--vvd-tag-accent-dim, var(--vvd-color-neutral-200))}.base{--_appearance-color-text: var(--_connotation-color-contrast);--_appearance-color-fill: var(--_connotation-color-soft);--_appearance-color-outline: transparent}.base.appearance-duotone{--_appearance-color-text: var(--_connotation-color-firm-all);--_appearance-color-fill: transparent;--_appearance-color-outline: var(--_connotation-color-pale)}.base.appearance-subtle-light{--_appearance-color-text: var(--_connotation-color-contrast);--_appearance-color-fill: color-mix(in srgb, var(--_connotation-color-primary), transparent 85%);--_appearance-color-outline: transparent}.base:where(.hover,:hover):where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--_connotation-color-contrast);--_appearance-color-fill: var(--_connotation-color-faint);--_appearance-color-outline: transparent}.base:where(.hover,:hover):where(:not(.disabled,:disabled,.readonly)).appearance-duotone{--_appearance-color-text: var(--_connotation-color-firm-all);--_appearance-color-fill: transparent;--_appearance-color-outline: var(--_connotation-color-firm-all)}.base:where(.hover,:hover):where(:not(.disabled,:disabled,.readonly)).appearance-subtle-light{--_appearance-color-text: var(--_connotation-color-contrast);--_appearance-color-fill: color-mix(in srgb, var(--_connotation-color-primary), transparent 75%);--_appearance-color-outline: transparent}.base:where(.active,:active):where(:not(.disabled,:disabled)){--_appearance-color-text: var(--_connotation-color-contrast);--_appearance-color-fill: var(--_connotation-color-dim);--_appearance-color-outline: transparent}.base:where(.active,:active):where(:not(.disabled,:disabled)).appearance-duotone{--_appearance-color-text: var(--_connotation-color-firm-all);--_appearance-color-fill: var(--_connotation-color-faint);--_appearance-color-outline: var(--_connotation-color-pale)}.base:where(.active,:active):where(:not(.disabled,:disabled)).appearance-subtle-light{--_appearance-color-text: var(--_connotation-color-contrast);--_appearance-color-fill: color-mix(in srgb, var(--_connotation-color-primary), transparent 65%);--_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: transparent}.base:where(.disabled,:disabled).appearance-duotone{--_appearance-color-text: var(--vvd-color-neutral-300);--_appearance-color-fill: transparent;--_appearance-color-outline: var(--vvd-color-neutral-100)}.base:where(.disabled,:disabled).appearance-subtle-light{--_appearance-color-text: var(--vvd-color-neutral-300);--_appearance-color-fill: var(--vvd-color-neutral-100);--_appearance-color-outline: transparent}.base:where(.selected):where(:not(.disabled,:disabled)){--_appearance-color-text: var(--_connotation-color-contrast);--_appearance-color-fill: var(--_connotation-color-pale);--_appearance-color-outline: transparent}.base:where(.selected):where(:not(.disabled,:disabled)).appearance-duotone{--_appearance-color-text: var(--_connotation-color-firm-all);--_appearance-color-fill: var(--_connotation-color-soft);--_appearance-color-outline: var(--_connotation-color-pale)}.base:where(.selected):where(:not(.disabled,:disabled)).appearance-subtle-light{--_appearance-color-text: var(--vvd-color-canvas);--_appearance-color-fill: var(--_connotation-color-firm);--_appearance-color-outline: transparent}.base{--tag-block-size: calc(1px*(24 + 4*clamp(-1, var(--vvd-size-density, 0), 2))) ;position:relative;display:inline-flex;box-sizing:border-box;align-items:center;background-color:var(--_appearance-color-fill);block-size:var(--tag-block-size);box-shadow:inset 0 0 0 1px var(--_appearance-color-outline);color:var(--_appearance-color-text);column-gap:8px;font:var(--vvd-typography-base-bold);max-inline-size:100%;padding-inline:8px;vertical-align:middle}.base:not(.shape-pill){border-radius:4px}.base.shape-pill{border-radius:16px}.base:focus-visible{--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 (user-select: none){.base{user-select:none}}.base:not(.disabled){cursor:pointer}.base.disabled{cursor:not-allowed;pointer-events:none}.base.removable{cursor:auto;padding-inline:8px 1px}.label{overflow:hidden;max-inline-size:100%;text-overflow:ellipsis;white-space:nowrap}slot[name=icon]{font-size:calc(var(--tag-block-size) / 1.5);line-height:1}.dismiss-button{position:relative;display:flex;align-items:center;padding:4px;border:none;border-radius:inherit;background-color:var(--_appearance-color-fill);cursor:pointer;inset-inline-start:-4px}.dismiss-button:focus{--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))}";
82
82
 
83
83
  const getClasses = ({
84
84
  connotation,
@@ -100,12 +100,13 @@ const getClasses = ({
100
100
  );
101
101
  function renderDismissButton(iconTag) {
102
102
  return vividElement.html`
103
- <span
103
+ <button
104
104
  class="dismiss-button"
105
105
  aria-label="${(x) => x.locale.tag.remove(x.label)}"
106
+ ?disabled="${(x) => x.disabled}"
106
107
  @click="${(x) => x.remove()}">
107
108
  <${iconTag} name="close-line"></${iconTag}>
108
- </span>`;
109
+ </button>`;
109
110
  }
110
111
  const tagTemplate = (context) => {
111
112
  const affixIconTemplate = affix.affixIconTemplateFactory(context);
@@ -115,7 +116,7 @@ const tagTemplate = (context) => {
115
116
  ${delegatesAria.delegateAria({
116
117
  role: "option",
117
118
  ariaDisabled: (x) => x.disabled,
118
- ariaSelected: (x) => x.selectable
119
+ ariaSelected: (x) => x.selected && x.selectable
119
120
  })}
120
121
  tabindex="${(x) => x.disabled || x.removable ? null : 0}"
121
122
  @keydown="${(x, c) => x.handleKeydown(c.event)}"
@@ -76,7 +76,7 @@ __decorateClass([
76
76
  attr({ mode: "boolean" })
77
77
  ], Tag.prototype, "selected");
78
78
 
79
- const styles = ".base.connotation-cta{--_connotation-color-primary: var(--vvd-tag-cta-primary, var(--vvd-color-cta-500));--_connotation-color-primary-text: var(--vvd-tag-cta-primary-text, var(--vvd-color-canvas));--_connotation-color-soft: var(--vvd-tag-cta-soft, var(--vvd-color-cta-100));--_connotation-color-contrast: var(--vvd-tag-cta-contrast, var(--vvd-color-cta-800));--_connotation-color-pale: var(--vvd-tag-cta-pale, var(--vvd-color-cta-300));--_connotation-color-fierce: var(--vvd-tag-cta-fierce, var(--vvd-color-cta-700));--_connotation-color-firm: var(--vvd-tag-cta-firm, var(--vvd-color-cta-600));--_connotation-color-firm-all: var(--vvd-tag-cta-firm-all, var(--vvd-color-cta-600));--_connotation-color-faint: var(--vvd-tag-cta-faint, var(--vvd-color-cta-50));--_connotation-color-dim: var(--vvd-tag-cta-dim, var(--vvd-color-cta-200))}.base:not(.connotation-cta){--_connotation-color-primary: var(--vvd-tag-accent-primary, var(--vvd-color-canvas-text));--_connotation-color-primary-text: var(--vvd-tag-accent-primary-text, var(--vvd-color-canvas));--_connotation-color-soft: var(--vvd-tag-accent-soft, var(--vvd-color-neutral-100));--_connotation-color-contrast: var(--vvd-tag-accent-contrast, var(--vvd-color-neutral-800));--_connotation-color-pale: var(--vvd-tag-accent-pale, var(--vvd-color-neutral-300));--_connotation-color-fierce: var(--vvd-tag-accent-fierce, var(--vvd-color-neutral-700));--_connotation-color-firm: var(--vvd-tag-accent-firm, var(--vvd-color-canvas-text));--_connotation-color-firm-all: var(--vvd-tag-accent-firm-all, var(--vvd-color-neutral-600));--_connotation-color-faint: var(--vvd-tag-accent-faint, var(--vvd-color-neutral-50));--_connotation-color-dim: var(--vvd-tag-accent-dim, var(--vvd-color-neutral-200))}.base{--_appearance-color-text: var(--_connotation-color-contrast);--_appearance-color-fill: var(--_connotation-color-soft);--_appearance-color-outline: transparent}.base.appearance-duotone{--_appearance-color-text: var(--_connotation-color-firm-all);--_appearance-color-fill: transparent;--_appearance-color-outline: var(--_connotation-color-pale)}.base.appearance-subtle-light{--_appearance-color-text: var(--_connotation-color-contrast);--_appearance-color-fill: color-mix(in srgb, var(--_connotation-color-primary), transparent 85%);--_appearance-color-outline: transparent}.base:where(.hover,:hover):where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--_connotation-color-contrast);--_appearance-color-fill: var(--_connotation-color-faint);--_appearance-color-outline: transparent}.base:where(.hover,:hover):where(:not(.disabled,:disabled,.readonly)).appearance-duotone{--_appearance-color-text: var(--_connotation-color-firm-all);--_appearance-color-fill: transparent;--_appearance-color-outline: var(--_connotation-color-firm-all)}.base:where(.hover,:hover):where(:not(.disabled,:disabled,.readonly)).appearance-subtle-light{--_appearance-color-text: var(--_connotation-color-contrast);--_appearance-color-fill: color-mix(in srgb, var(--_connotation-color-primary), transparent 75%);--_appearance-color-outline: transparent}.base:where(.active,:active):where(:not(.disabled,:disabled)){--_appearance-color-text: var(--_connotation-color-contrast);--_appearance-color-fill: var(--_connotation-color-dim);--_appearance-color-outline: transparent}.base:where(.active,:active):where(:not(.disabled,:disabled)).appearance-duotone{--_appearance-color-text: var(--_connotation-color-firm-all);--_appearance-color-fill: var(--_connotation-color-faint);--_appearance-color-outline: var(--_connotation-color-pale)}.base:where(.active,:active):where(:not(.disabled,:disabled)).appearance-subtle-light{--_appearance-color-text: var(--_connotation-color-contrast);--_appearance-color-fill: color-mix(in srgb, var(--_connotation-color-primary), transparent 65%);--_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: transparent}.base:where(.disabled,:disabled).appearance-duotone{--_appearance-color-text: var(--vvd-color-neutral-300);--_appearance-color-fill: transparent;--_appearance-color-outline: var(--vvd-color-neutral-100)}.base:where(.disabled,:disabled).appearance-subtle-light{--_appearance-color-text: var(--vvd-color-neutral-300);--_appearance-color-fill: var(--vvd-color-neutral-100);--_appearance-color-outline: transparent}.base:where(.selected):where(:not(.disabled,:disabled)){--_appearance-color-text: var(--_connotation-color-contrast);--_appearance-color-fill: var(--_connotation-color-pale);--_appearance-color-outline: transparent}.base:where(.selected):where(:not(.disabled,:disabled)).appearance-duotone{--_appearance-color-text: var(--_connotation-color-firm-all);--_appearance-color-fill: var(--_connotation-color-soft);--_appearance-color-outline: var(--_connotation-color-pale)}.base:where(.selected):where(:not(.disabled,:disabled)).appearance-subtle-light{--_appearance-color-text: var(--vvd-color-canvas);--_appearance-color-fill: var(--_connotation-color-firm);--_appearance-color-outline: transparent}.base{--tag-block-size: calc(1px*(24 + 4*clamp(-1, var(--vvd-size-density, 0), 2))) ;position:relative;display:inline-flex;box-sizing:border-box;align-items:center;background-color:var(--_appearance-color-fill);block-size:var(--tag-block-size);box-shadow:inset 0 0 0 1px var(--_appearance-color-outline);color:var(--_appearance-color-text);column-gap:8px;font:var(--vvd-typography-base-bold);max-inline-size:100%;padding-inline:8px;vertical-align:middle}.base:not(.shape-pill){border-radius:4px}.base.shape-pill{border-radius:16px}.base:focus-visible{--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 (user-select: none){.base{user-select:none}}.base:not(.disabled){cursor:pointer}.base.disabled{cursor:not-allowed;pointer-events:none}.base.removable{cursor:auto}.label{overflow:hidden;max-inline-size:100%;text-overflow:ellipsis;white-space:nowrap}slot[name=icon]{font-size:calc(var(--tag-block-size) / 1.5);line-height:1}.dismiss-button{display:flex;align-items:center;padding:0;border:none;border-radius:inherit;background-color:var(--_appearance-color-fill);cursor:pointer}.dismiss-button:focus{--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))}";
79
+ const styles = ".base.connotation-cta{--_connotation-color-primary: var(--vvd-tag-cta-primary, var(--vvd-color-cta-500));--_connotation-color-primary-text: var(--vvd-tag-cta-primary-text, var(--vvd-color-canvas));--_connotation-color-soft: var(--vvd-tag-cta-soft, var(--vvd-color-cta-100));--_connotation-color-contrast: var(--vvd-tag-cta-contrast, var(--vvd-color-cta-800));--_connotation-color-pale: var(--vvd-tag-cta-pale, var(--vvd-color-cta-300));--_connotation-color-fierce: var(--vvd-tag-cta-fierce, var(--vvd-color-cta-700));--_connotation-color-firm: var(--vvd-tag-cta-firm, var(--vvd-color-cta-600));--_connotation-color-firm-all: var(--vvd-tag-cta-firm-all, var(--vvd-color-cta-600));--_connotation-color-faint: var(--vvd-tag-cta-faint, var(--vvd-color-cta-50));--_connotation-color-dim: var(--vvd-tag-cta-dim, var(--vvd-color-cta-200))}.base:not(.connotation-cta){--_connotation-color-primary: var(--vvd-tag-accent-primary, var(--vvd-color-canvas-text));--_connotation-color-primary-text: var(--vvd-tag-accent-primary-text, var(--vvd-color-canvas));--_connotation-color-soft: var(--vvd-tag-accent-soft, var(--vvd-color-neutral-100));--_connotation-color-contrast: var(--vvd-tag-accent-contrast, var(--vvd-color-neutral-800));--_connotation-color-pale: var(--vvd-tag-accent-pale, var(--vvd-color-neutral-300));--_connotation-color-fierce: var(--vvd-tag-accent-fierce, var(--vvd-color-neutral-700));--_connotation-color-firm: var(--vvd-tag-accent-firm, var(--vvd-color-canvas-text));--_connotation-color-firm-all: var(--vvd-tag-accent-firm-all, var(--vvd-color-neutral-600));--_connotation-color-faint: var(--vvd-tag-accent-faint, var(--vvd-color-neutral-50));--_connotation-color-dim: var(--vvd-tag-accent-dim, var(--vvd-color-neutral-200))}.base{--_appearance-color-text: var(--_connotation-color-contrast);--_appearance-color-fill: var(--_connotation-color-soft);--_appearance-color-outline: transparent}.base.appearance-duotone{--_appearance-color-text: var(--_connotation-color-firm-all);--_appearance-color-fill: transparent;--_appearance-color-outline: var(--_connotation-color-pale)}.base.appearance-subtle-light{--_appearance-color-text: var(--_connotation-color-contrast);--_appearance-color-fill: color-mix(in srgb, var(--_connotation-color-primary), transparent 85%);--_appearance-color-outline: transparent}.base:where(.hover,:hover):where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--_connotation-color-contrast);--_appearance-color-fill: var(--_connotation-color-faint);--_appearance-color-outline: transparent}.base:where(.hover,:hover):where(:not(.disabled,:disabled,.readonly)).appearance-duotone{--_appearance-color-text: var(--_connotation-color-firm-all);--_appearance-color-fill: transparent;--_appearance-color-outline: var(--_connotation-color-firm-all)}.base:where(.hover,:hover):where(:not(.disabled,:disabled,.readonly)).appearance-subtle-light{--_appearance-color-text: var(--_connotation-color-contrast);--_appearance-color-fill: color-mix(in srgb, var(--_connotation-color-primary), transparent 75%);--_appearance-color-outline: transparent}.base:where(.active,:active):where(:not(.disabled,:disabled)){--_appearance-color-text: var(--_connotation-color-contrast);--_appearance-color-fill: var(--_connotation-color-dim);--_appearance-color-outline: transparent}.base:where(.active,:active):where(:not(.disabled,:disabled)).appearance-duotone{--_appearance-color-text: var(--_connotation-color-firm-all);--_appearance-color-fill: var(--_connotation-color-faint);--_appearance-color-outline: var(--_connotation-color-pale)}.base:where(.active,:active):where(:not(.disabled,:disabled)).appearance-subtle-light{--_appearance-color-text: var(--_connotation-color-contrast);--_appearance-color-fill: color-mix(in srgb, var(--_connotation-color-primary), transparent 65%);--_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: transparent}.base:where(.disabled,:disabled).appearance-duotone{--_appearance-color-text: var(--vvd-color-neutral-300);--_appearance-color-fill: transparent;--_appearance-color-outline: var(--vvd-color-neutral-100)}.base:where(.disabled,:disabled).appearance-subtle-light{--_appearance-color-text: var(--vvd-color-neutral-300);--_appearance-color-fill: var(--vvd-color-neutral-100);--_appearance-color-outline: transparent}.base:where(.selected):where(:not(.disabled,:disabled)){--_appearance-color-text: var(--_connotation-color-contrast);--_appearance-color-fill: var(--_connotation-color-pale);--_appearance-color-outline: transparent}.base:where(.selected):where(:not(.disabled,:disabled)).appearance-duotone{--_appearance-color-text: var(--_connotation-color-firm-all);--_appearance-color-fill: var(--_connotation-color-soft);--_appearance-color-outline: var(--_connotation-color-pale)}.base:where(.selected):where(:not(.disabled,:disabled)).appearance-subtle-light{--_appearance-color-text: var(--vvd-color-canvas);--_appearance-color-fill: var(--_connotation-color-firm);--_appearance-color-outline: transparent}.base{--tag-block-size: calc(1px*(24 + 4*clamp(-1, var(--vvd-size-density, 0), 2))) ;position:relative;display:inline-flex;box-sizing:border-box;align-items:center;background-color:var(--_appearance-color-fill);block-size:var(--tag-block-size);box-shadow:inset 0 0 0 1px var(--_appearance-color-outline);color:var(--_appearance-color-text);column-gap:8px;font:var(--vvd-typography-base-bold);max-inline-size:100%;padding-inline:8px;vertical-align:middle}.base:not(.shape-pill){border-radius:4px}.base.shape-pill{border-radius:16px}.base:focus-visible{--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 (user-select: none){.base{user-select:none}}.base:not(.disabled){cursor:pointer}.base.disabled{cursor:not-allowed;pointer-events:none}.base.removable{cursor:auto;padding-inline:8px 1px}.label{overflow:hidden;max-inline-size:100%;text-overflow:ellipsis;white-space:nowrap}slot[name=icon]{font-size:calc(var(--tag-block-size) / 1.5);line-height:1}.dismiss-button{position:relative;display:flex;align-items:center;padding:4px;border:none;border-radius:inherit;background-color:var(--_appearance-color-fill);cursor:pointer;inset-inline-start:-4px}.dismiss-button:focus{--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))}";
80
80
 
81
81
  const getClasses = ({
82
82
  connotation,
@@ -98,12 +98,13 @@ const getClasses = ({
98
98
  );
99
99
  function renderDismissButton(iconTag) {
100
100
  return html`
101
- <span
101
+ <button
102
102
  class="dismiss-button"
103
103
  aria-label="${(x) => x.locale.tag.remove(x.label)}"
104
+ ?disabled="${(x) => x.disabled}"
104
105
  @click="${(x) => x.remove()}">
105
106
  <${iconTag} name="close-line"></${iconTag}>
106
- </span>`;
107
+ </button>`;
107
108
  }
108
109
  const tagTemplate = (context) => {
109
110
  const affixIconTemplate = affixIconTemplateFactory(context);
@@ -113,7 +114,7 @@ const tagTemplate = (context) => {
113
114
  ${delegateAria({
114
115
  role: "option",
115
116
  ariaDisabled: (x) => x.disabled,
116
- ariaSelected: (x) => x.selectable
117
+ ariaSelected: (x) => x.selected && x.selectable
117
118
  })}
118
119
  tabindex="${(x) => x.disabled || x.removable ? null : 0}"
119
120
  @keydown="${(x, c) => x.handleKeydown(c.event)}"
@@ -3,6 +3,7 @@
3
3
  const definition = require('./definition67.cjs');
4
4
  const vividElement = require('./vivid-element.cjs');
5
5
  const anchored = require('./anchored.cjs');
6
+ const localized = require('./localized.cjs');
6
7
  const index = require('./index.cjs');
7
8
  const classNames = require('./class-names.cjs');
8
9
  const when = require('./when.cjs');
@@ -18,10 +19,10 @@ var __decorateClass = (decorators, target, key, kind) => {
18
19
  if (result) __defProp(target, key, result);
19
20
  return result;
20
21
  };
21
- class Toggletip extends anchored.Anchored(vividElement.VividElement) {
22
+ class Toggletip extends localized.Localized(anchored.Anchored(vividElement.VividElement)) {
22
23
  constructor() {
23
24
  super(...arguments);
24
- this.#ANCHOR_ARIA_LABEL_SUFFIX = " ; Show more information";
25
+ this.#originalAriaLabel = null;
25
26
  this.alternate = false;
26
27
  this.placement = "right";
27
28
  this.open = false;
@@ -39,7 +40,7 @@ class Toggletip extends anchored.Anchored(vividElement.VividElement) {
39
40
  }
40
41
  };
41
42
  }
42
- #ANCHOR_ARIA_LABEL_SUFFIX;
43
+ #originalAriaLabel;
43
44
  openChanged(oldValue, newValue) {
44
45
  if (oldValue === void 0) return;
45
46
  if (newValue) {
@@ -69,7 +70,8 @@ class Toggletip extends anchored.Anchored(vividElement.VividElement) {
69
70
  }
70
71
  #setupAnchor(a) {
71
72
  a.addEventListener("click", this.#openIfClosed, true);
72
- a.ariaLabel = (a.ariaLabel ?? "") + this.#ANCHOR_ARIA_LABEL_SUFFIX;
73
+ this.#originalAriaLabel = a.ariaLabel;
74
+ a.ariaLabel = `${this.locale.toggletip.anchorLabel(a.ariaLabel || "")}`;
73
75
  this.#updateAnchor(a);
74
76
  }
75
77
  #updateAnchor(a) {
@@ -78,8 +80,7 @@ class Toggletip extends anchored.Anchored(vividElement.VividElement) {
78
80
  }
79
81
  #cleanupAnchor(a) {
80
82
  a.removeEventListener("click", this.#openIfClosed, true);
81
- if (a.ariaLabel)
82
- a.ariaLabel = a.ariaLabel.replace(this.#ANCHOR_ARIA_LABEL_SUFFIX, "");
83
+ if (a.ariaLabel) a.ariaLabel = this.#originalAriaLabel;
83
84
  a.removeAttribute("aria-expanded");
84
85
  a.removeAttribute("data-expanded");
85
86
  }
@@ -1,6 +1,7 @@
1
1
  import { P as Popup, p as popupDefinition } from './definition67.js';
2
2
  import { D as DOM, V as VividElement, a as attr, h as html, d as createRegisterFunction, f as defineVividComponent } from './vivid-element.js';
3
3
  import { A as Anchored, a as anchorSlotTemplateFactory } from './anchored.js';
4
+ import { L as Localized } from './localized.js';
4
5
  import { h as handleEscapeKeyAndStopPropogation } from './index.js';
5
6
  import { c as classNames } from './class-names.js';
6
7
  import { w as when } from './when.js';
@@ -16,10 +17,10 @@ var __decorateClass = (decorators, target, key, kind) => {
16
17
  if (result) __defProp(target, key, result);
17
18
  return result;
18
19
  };
19
- class Toggletip extends Anchored(VividElement) {
20
+ class Toggletip extends Localized(Anchored(VividElement)) {
20
21
  constructor() {
21
22
  super(...arguments);
22
- this.#ANCHOR_ARIA_LABEL_SUFFIX = " ; Show more information";
23
+ this.#originalAriaLabel = null;
23
24
  this.alternate = false;
24
25
  this.placement = "right";
25
26
  this.open = false;
@@ -37,7 +38,7 @@ class Toggletip extends Anchored(VividElement) {
37
38
  }
38
39
  };
39
40
  }
40
- #ANCHOR_ARIA_LABEL_SUFFIX;
41
+ #originalAriaLabel;
41
42
  openChanged(oldValue, newValue) {
42
43
  if (oldValue === void 0) return;
43
44
  if (newValue) {
@@ -67,7 +68,8 @@ class Toggletip extends Anchored(VividElement) {
67
68
  }
68
69
  #setupAnchor(a) {
69
70
  a.addEventListener("click", this.#openIfClosed, true);
70
- a.ariaLabel = (a.ariaLabel ?? "") + this.#ANCHOR_ARIA_LABEL_SUFFIX;
71
+ this.#originalAriaLabel = a.ariaLabel;
72
+ a.ariaLabel = `${this.locale.toggletip.anchorLabel(a.ariaLabel || "")}`;
71
73
  this.#updateAnchor(a);
72
74
  }
73
75
  #updateAnchor(a) {
@@ -76,8 +78,7 @@ class Toggletip extends Anchored(VividElement) {
76
78
  }
77
79
  #cleanupAnchor(a) {
78
80
  a.removeEventListener("click", this.#openIfClosed, true);
79
- if (a.ariaLabel)
80
- a.ariaLabel = a.ariaLabel.replace(this.#ANCHOR_ARIA_LABEL_SUFFIX, "");
81
+ if (a.ariaLabel) a.ariaLabel = this.#originalAriaLabel;
81
82
  a.removeAttribute("aria-expanded");
82
83
  a.removeAttribute("data-expanded");
83
84
  }
@@ -22,6 +22,7 @@ import type { DataGridLocale } from '../../lib/data-grid/locale';
22
22
  import type { PaginationLocale } from '../../lib/pagination/locale';
23
23
  import type { TagLocale } from '../../lib/tag/locale';
24
24
  import type { Connotation } from '../../lib/enums';
25
+ import type { ToggletipLocale } from '../../lib/toggletip/locale';
25
26
  type ConnotationAnnoncementLocale = {
26
27
  [key in Connotation as `${key}Icon`]: string;
27
28
  };
@@ -54,5 +55,6 @@ export interface Locale {
54
55
  dataGrid: DataGridLocale;
55
56
  pagination: PaginationLocale;
56
57
  tag: TagLocale;
58
+ toggletip: ToggletipLocale;
57
59
  }
58
60
  export {};
@@ -814,7 +814,7 @@ export declare const SingleDatePickerMixin: <T_6 extends AbstractConstructor<{
814
814
  _isInternalValueUpdate: boolean;
815
815
  valueChanged(previous: string, next: string): void;
816
816
  _updatePresentationValue(): void;
817
- _updateValueDueToUserInteraction(newValue: string): void;
817
+ _updateValueDueToUserInteraction(newValue: string, isIntermediateUpdate: boolean): void;
818
818
  _onTextFieldChange(): void;
819
819
  _onTextFieldInput(event: Event): void;
820
820
  _isPresentationValueInvalid(): boolean;
@@ -2391,6 +2391,6 @@ export declare const SingleDatePickerMixin: <T_6 extends AbstractConstructor<{
2391
2391
  _toPresentationValue(value: string): string;
2392
2392
  _parsePresentationValue(presentationValue: string): string;
2393
2393
  _isInternalValueUpdate: boolean;
2394
- _updateValueDueToUserInteraction(newValue: string): void;
2394
+ _updateValueDueToUserInteraction(newValue: string, isIntermediateUpdate: boolean): void;
2395
2395
  _isPresentationValueInvalid(): boolean;
2396
2396
  }) & T_6;
@@ -7,7 +7,7 @@ export declare const SingleValuePicker: <T extends AbstractConstructor<PickerFie
7
7
  _isInternalValueUpdate: boolean;
8
8
  valueChanged(previous: string, next: string): void;
9
9
  _updatePresentationValue(): void;
10
- _updateValueDueToUserInteraction(newValue: string): void;
10
+ _updateValueDueToUserInteraction(newValue: string, isIntermediateUpdate: boolean): void;
11
11
  _onTextFieldChange(): void;
12
12
  _onTextFieldInput(event: Event): void;
13
13
  _isPresentationValueInvalid(): boolean;
@@ -9,7 +9,7 @@ export declare const TimeSelectionPicker: <T_5 extends AbstractConstructor<{
9
9
  _isInternalValueUpdate: boolean;
10
10
  valueChanged(previous: string, next: string): void;
11
11
  _updatePresentationValue(): void;
12
- _updateValueDueToUserInteraction(newValue: string): void;
12
+ _updateValueDueToUserInteraction(newValue: string, isIntermediateUpdate: boolean): void;
13
13
  _onTextFieldChange(): void;
14
14
  _onTextFieldInput(event: Event): void;
15
15
  _isPresentationValueInvalid(): boolean;
@@ -802,7 +802,7 @@ export declare const TimeSelectionPicker: <T_5 extends AbstractConstructor<{
802
802
  _isInternalValueUpdate: boolean;
803
803
  valueChanged: ((previous: string, next: string) => void) & ((_previous: string, _next: string) => void) & ((_previous: string, _next: string) => void);
804
804
  _updatePresentationValue: (() => void) & (() => void);
805
- _updateValueDueToUserInteraction(newValue: string): void;
805
+ _updateValueDueToUserInteraction(newValue: string, isIntermediateUpdate: boolean): void;
806
806
  _onTextFieldChange: (() => void) & (() => void);
807
807
  _onTextFieldInput: ((event: Event) => void) & ((event: Event) => void);
808
808
  _isPresentationValueInvalid(): boolean;
@@ -29,7 +29,7 @@ export declare const TimeSelectionPickerTemplate: (context: VividElementDefiniti
29
29
  _isInternalValueUpdate: boolean;
30
30
  valueChanged: ((previous: string, next: string) => void) & ((_previous: string, _next: string) => void) & ((_previous: string, _next: string) => void);
31
31
  _updatePresentationValue: (() => void) & (() => void);
32
- _updateValueDueToUserInteraction(newValue: string): void;
32
+ _updateValueDueToUserInteraction(newValue: string, isIntermediateUpdate: boolean): void;
33
33
  _onTextFieldChange: (() => void) & (() => void);
34
34
  _onTextFieldInput: ((event: Event) => void) & ((event: Event) => void);
35
35
  _isPresentationValueInvalid(): boolean;
@@ -797,7 +797,7 @@ export declare const TimeSelectionPickerTemplate: (context: VividElementDefiniti
797
797
  _isInternalValueUpdate: boolean;
798
798
  valueChanged(previous: string, next: string): void;
799
799
  _updatePresentationValue(): void;
800
- _updateValueDueToUserInteraction(newValue: string): void;
800
+ _updateValueDueToUserInteraction(newValue: string, isIntermediateUpdate: boolean): void;
801
801
  _onTextFieldChange(): void;
802
802
  _onTextFieldInput(event: Event): void;
803
803
  _isPresentationValueInvalid(): boolean;
@@ -15,7 +15,7 @@ const SingleDatePickerMixin = (Base) => {
15
15
  * @internal
16
16
  */
17
17
  _onDateClick(date) {
18
- this._updateValueDueToUserInteraction(this._withUpdatedDate(date));
18
+ this._updateValueDueToUserInteraction(this._withUpdatedDate(date), false);
19
19
  }
20
20
  /**
21
21
  * @internal
@@ -13,7 +13,7 @@ const SingleDatePickerMixin = (Base) => {
13
13
  * @internal
14
14
  */
15
15
  _onDateClick(date) {
16
- this._updateValueDueToUserInteraction(this._withUpdatedDate(date));
16
+ this._updateValueDueToUserInteraction(this._withUpdatedDate(date), false);
17
17
  }
18
18
  /**
19
19
  * @internal
@@ -37,27 +37,34 @@ const SingleValuePicker = (Base) => {
37
37
  /**
38
38
  * @internal
39
39
  */
40
- _updateValueDueToUserInteraction(newValue) {
41
- this.value = newValue;
42
- this.$emit("change");
43
- this.$emit("input");
40
+ _updateValueDueToUserInteraction(newValue, isIntermediateUpdate) {
41
+ if (this.value !== newValue) {
42
+ this._isInternalValueUpdate = true;
43
+ this.value = newValue;
44
+ this._isInternalValueUpdate = false;
45
+ this.$emit("input");
46
+ }
47
+ if (!isIntermediateUpdate) {
48
+ this._updatePresentationValue();
49
+ this.$emit("change");
50
+ }
44
51
  }
45
52
  /**
46
53
  * @internal
47
54
  */
48
55
  _onTextFieldChange() {
49
56
  if (this._presentationValue === "") {
50
- this.value = "";
51
- this.$emit("change");
57
+ this._updateValueDueToUserInteraction("", false);
52
58
  return;
53
59
  }
54
60
  try {
55
- this.value = this._parsePresentationValue(this._presentationValue);
56
- this.$emit("change");
61
+ this._updateValueDueToUserInteraction(
62
+ this._parsePresentationValue(this._presentationValue),
63
+ false
64
+ );
57
65
  } catch (_) {
58
66
  const invalidPresentationValue = this._presentationValue;
59
- this.value = "";
60
- this.$emit("change");
67
+ this._updateValueDueToUserInteraction("", false);
61
68
  this._presentationValue = invalidPresentationValue;
62
69
  return;
63
70
  }
@@ -67,24 +74,18 @@ const SingleValuePicker = (Base) => {
67
74
  */
68
75
  _onTextFieldInput(event) {
69
76
  super._onTextFieldInput(event);
70
- this._isInternalValueUpdate = true;
71
77
  if (this._presentationValue === "") {
72
- this.value = "";
73
- this.$emit("input");
78
+ this._updateValueDueToUserInteraction("", true);
74
79
  return;
75
80
  }
76
81
  try {
77
- const parsedValue = this._parsePresentationValue(
78
- this._presentationValue
82
+ this._updateValueDueToUserInteraction(
83
+ this._parsePresentationValue(this._presentationValue),
84
+ true
79
85
  );
80
- if (this.value !== parsedValue) {
81
- this.value = parsedValue;
82
- this.$emit("input");
83
- }
84
86
  } catch (_) {
85
87
  return;
86
88
  }
87
- this._isInternalValueUpdate = false;
88
89
  }
89
90
  /**
90
91
  * @internal
@@ -104,7 +105,7 @@ const SingleValuePicker = (Base) => {
104
105
  * @internal
105
106
  */
106
107
  _onClearClick() {
107
- this._updateValueDueToUserInteraction("");
108
+ this._updateValueDueToUserInteraction("", false);
108
109
  super._onClearClick();
109
110
  }
110
111
  }
@@ -35,27 +35,34 @@ const SingleValuePicker = (Base) => {
35
35
  /**
36
36
  * @internal
37
37
  */
38
- _updateValueDueToUserInteraction(newValue) {
39
- this.value = newValue;
40
- this.$emit("change");
41
- this.$emit("input");
38
+ _updateValueDueToUserInteraction(newValue, isIntermediateUpdate) {
39
+ if (this.value !== newValue) {
40
+ this._isInternalValueUpdate = true;
41
+ this.value = newValue;
42
+ this._isInternalValueUpdate = false;
43
+ this.$emit("input");
44
+ }
45
+ if (!isIntermediateUpdate) {
46
+ this._updatePresentationValue();
47
+ this.$emit("change");
48
+ }
42
49
  }
43
50
  /**
44
51
  * @internal
45
52
  */
46
53
  _onTextFieldChange() {
47
54
  if (this._presentationValue === "") {
48
- this.value = "";
49
- this.$emit("change");
55
+ this._updateValueDueToUserInteraction("", false);
50
56
  return;
51
57
  }
52
58
  try {
53
- this.value = this._parsePresentationValue(this._presentationValue);
54
- this.$emit("change");
59
+ this._updateValueDueToUserInteraction(
60
+ this._parsePresentationValue(this._presentationValue),
61
+ false
62
+ );
55
63
  } catch (_) {
56
64
  const invalidPresentationValue = this._presentationValue;
57
- this.value = "";
58
- this.$emit("change");
65
+ this._updateValueDueToUserInteraction("", false);
59
66
  this._presentationValue = invalidPresentationValue;
60
67
  return;
61
68
  }
@@ -65,24 +72,18 @@ const SingleValuePicker = (Base) => {
65
72
  */
66
73
  _onTextFieldInput(event) {
67
74
  super._onTextFieldInput(event);
68
- this._isInternalValueUpdate = true;
69
75
  if (this._presentationValue === "") {
70
- this.value = "";
71
- this.$emit("input");
76
+ this._updateValueDueToUserInteraction("", true);
72
77
  return;
73
78
  }
74
79
  try {
75
- const parsedValue = this._parsePresentationValue(
76
- this._presentationValue
80
+ this._updateValueDueToUserInteraction(
81
+ this._parsePresentationValue(this._presentationValue),
82
+ true
77
83
  );
78
- if (this.value !== parsedValue) {
79
- this.value = parsedValue;
80
- this.$emit("input");
81
- }
82
84
  } catch (_) {
83
85
  return;
84
86
  }
85
- this._isInternalValueUpdate = false;
86
87
  }
87
88
  /**
88
89
  * @internal
@@ -102,7 +103,7 @@ const SingleValuePicker = (Base) => {
102
103
  * @internal
103
104
  */
104
105
  _onClearClick() {
105
- this._updateValueDueToUserInteraction("");
106
+ this._updateValueDueToUserInteraction("", false);
106
107
  super._onClearClick();
107
108
  }
108
109
  }
@@ -600,7 +600,8 @@ const TimeSelectionPicker = (Base) => {
600
600
  */
601
601
  _onInlineTimePickerChange(event) {
602
602
  this._updateValueDueToUserInteraction(
603
- this._withUpdatedTime(event.detail)
603
+ this._withUpdatedTime(event.detail),
604
+ false
604
605
  );
605
606
  }
606
607
  /**
@@ -598,7 +598,8 @@ const TimeSelectionPicker = (Base) => {
598
598
  */
599
599
  _onInlineTimePickerChange(event) {
600
600
  this._updateValueDueToUserInteraction(
601
- this._withUpdatedTime(event.detail)
601
+ this._withUpdatedTime(event.detail),
602
+ false
602
603
  );
603
604
  }
604
605
  /**
@@ -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.30.0";
2737
+ this.VIVID_VERSION = "4.31.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.30.0";
2735
+ this.VIVID_VERSION = "4.31.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, 14 Aug 2025 08:21:38 GMT
3
+ * Generated on Thu, 14 Aug 2025 08:21:43 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, 14 Aug 2025 08:21:38 GMT
3
+ * Generated on Thu, 14 Aug 2025 08:21:43 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, 14 Aug 2025 08:21:38 GMT
3
+ * Generated on Thu, 14 Aug 2025 08:21:43 GMT
4
4
  */
5
5
  .vvd-root:root {
6
6
  --vvd-size-font-scale-base: 1rem;