@vonage/vivid 5.7.0 → 5.8.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 (48) hide show
  1. package/bundled/definition19.cjs +3 -4
  2. package/bundled/definition19.js +35 -52
  3. package/bundled/definition8.cjs +1 -1
  4. package/bundled/definition8.js +1 -1
  5. package/bundled/listbox.cjs +1 -1
  6. package/bundled/listbox.js +49 -22
  7. package/bundled/localized.cjs +1 -1
  8. package/bundled/localized.js +8 -9
  9. package/bundled/vivid-element.cjs +1 -1
  10. package/bundled/vivid-element.js +1 -1
  11. package/checkbox/definition.cjs +1 -1
  12. package/checkbox/definition.js +1 -1
  13. package/contextual-help/definition.cjs +1 -0
  14. package/contextual-help/definition.js +1 -1
  15. package/custom-elements.json +217 -251
  16. package/index.cjs +4 -0
  17. package/index.js +1 -0
  18. package/lib/components.d.ts +1 -0
  19. package/lib/contextual-help/definition.d.ts +2 -0
  20. package/lib/rich-text-editor/locale.d.ts +0 -1
  21. package/lib/tag-name-map.d.ts +2 -1
  22. package/locales/de-DE.cjs +0 -1
  23. package/locales/de-DE.js +0 -1
  24. package/locales/en-GB.cjs +0 -1
  25. package/locales/en-GB.js +0 -1
  26. package/locales/en-US.cjs +0 -1
  27. package/locales/en-US.js +0 -1
  28. package/locales/ja-JP.cjs +0 -1
  29. package/locales/ja-JP.js +0 -1
  30. package/locales/zh-CN.cjs +0 -1
  31. package/locales/zh-CN.js +0 -1
  32. package/package.json +6 -10
  33. package/rich-text-editor/definition.cjs +1 -1
  34. package/rich-text-editor/definition.js +1 -1
  35. package/rich-text-editor/index.cjs +1 -1
  36. package/rich-text-editor/index.js +1 -1
  37. package/select/definition.cjs +27 -15
  38. package/select/definition.js +27 -15
  39. package/shared/foundation/listbox/listbox.d.ts +0 -1
  40. package/tag/definition.cjs +1 -1
  41. package/tag/definition.js +1 -1
  42. package/tag/index.cjs +1 -1
  43. package/tag/index.js +1 -1
  44. package/unbundled/listbox.cjs +29 -2
  45. package/unbundled/listbox.js +29 -2
  46. package/unbundled/vivid-element.cjs +1 -1
  47. package/unbundled/vivid-element.js +1 -1
  48. package/vivid.api.json +104 -0
package/tag/index.cjs CHANGED
@@ -1,4 +1,4 @@
1
- "use strict";const _=require("../bundled/definition2.cjs"),e=require("../bundled/vivid-element.cjs"),v=require("../bundled/affix.cjs"),d=require("../bundled/delegates-aria.cjs"),u=require("../bundled/localized.cjs"),s=require("../bundled/when.cjs"),f=require("../bundled/class-names.cjs");var m=Object.defineProperty,c=(r,o,t,i)=>{for(var a=void 0,n=r.length-1,p;n>=0;n--)(p=r[n])&&(a=p(o,t,a)||a);return a&&m(o,t,a),a};class l extends u.Localized(d.DelegatesAria(v.AffixIcon(e.VividElement))){constructor(){super(...arguments),this.removable=!1,this.disabled=!1,this.selectable=!1,this.selected=!1,this.#a=()=>{!this.selectable||this.disabled||(this.selected=!this.selected,this.$emit("selected-change"))}}remove(){!this.removable||this.selectable||(this.$emit("removed"),this.parentElement&&this.parentElement.removeChild(this))}#a;handleKeydown(o){return(o.key==="Enter"||o.key===" ")&&(o.preventDefault(),this.#a()),(o.key==="Delete"||o.key==="Backspace")&&(o.preventDefault(),this.remove()),!0}handleClick(){this.#a()}}c([e.attr],l.prototype,"connotation");c([e.attr],l.prototype,"shape");c([e.attr],l.prototype,"appearance");c([e.attr],l.prototype,"label");c([e.attr({mode:"boolean"})],l.prototype,"removable");c([e.attr({mode:"boolean"})],l.prototype,"disabled");c([e.attr({mode:"boolean"})],l.prototype,"selectable");c([e.attr({mode:"boolean"})],l.prototype,"selected");const h=".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}@media (hover: hover){.base: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: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: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.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.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.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:active:where(:not(.disabled,:disabled)){--_appearance-color-text: var(--_connotation-color-contrast);--_appearance-color-fill: var(--_connotation-color-dim);--_appearance-color-outline: transparent}.base: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: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.active:where(:not(.disabled,:disabled)){--_appearance-color-text: var(--_connotation-color-contrast);--_appearance-color-fill: var(--_connotation-color-dim);--_appearance-color-outline: transparent}.base.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.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:disabled{--_appearance-color-text: var(--vvd-color-neutral-300);--_appearance-color-fill: var(--vvd-color-neutral-100);--_appearance-color-outline: transparent}.base:disabled.appearance-duotone{--_appearance-color-text: var(--vvd-color-neutral-300);--_appearance-color-fill: transparent;--_appearance-color-outline: var(--vvd-color-neutral-100)}.base: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.disabled{--_appearance-color-text: var(--vvd-color-neutral-300);--_appearance-color-fill: var(--vvd-color-neutral-100);--_appearance-color-outline: transparent}.base.disabled.appearance-duotone{--_appearance-color-text: var(--vvd-color-neutral-300);--_appearance-color-fill: transparent;--_appearance-color-outline: var(--vvd-color-neutral-100)}.base.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.selected:where(:not(.disabled,:disabled)){--_appearance-color-text: var(--_connotation-color-contrast);--_appearance-color-fill: var(--_connotation-color-pale);--_appearance-color-outline: transparent}.base.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.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;border:none;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(--focus-stroke-color, 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(--focus-stroke-color, 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))}",b=({connotation:r,appearance:o,shape:t,disabled:i,selectable:a,removable:n,selected:p})=>f.classNames("base",["disabled",i],["selectable",a],["selected",a&&p],["removable",n&&!a],[`connotation-${r}`,!!r],[`appearance-${o}`,!!o],[`shape-${t}`,!!t]);function g(r){return e.html`
1
+ "use strict";const _=require("../bundled/definition2.cjs"),e=require("../bundled/vivid-element.cjs"),v=require("../bundled/affix.cjs"),d=require("../bundled/delegates-aria.cjs"),u=require("../bundled/localized.cjs"),s=require("../bundled/when.cjs"),f=require("../bundled/class-names.cjs");var m=Object.defineProperty,c=(r,o,t,i)=>{for(var a=void 0,n=r.length-1,p;n>=0;n--)(p=r[n])&&(a=p(o,t,a)||a);return a&&m(o,t,a),a};class l extends u.Localized(d.DelegatesAria(v.AffixIcon(e.VividElement))){constructor(){super(...arguments),this.removable=!1,this.disabled=!1,this.selectable=!1,this.selected=!1,this.#a=()=>{!this.selectable||this.disabled||(this.selected=!this.selected,this.$emit("selected-change"))}}remove(){!this.removable||this.selectable||(this.$emit("removed"),this.parentElement&&this.parentElement.removeChild(this))}#a;handleKeydown(o){return(o.key==="Enter"||o.key===" ")&&(o.preventDefault(),this.#a()),(o.key==="Delete"||o.key==="Backspace")&&(o.preventDefault(),this.remove()),!0}handleClick(){this.#a()}}c([e.attr],l.prototype,"connotation");c([e.attr],l.prototype,"shape");c([e.attr],l.prototype,"appearance");c([e.attr],l.prototype,"label");c([e.attr({mode:"boolean"})],l.prototype,"removable");c([e.attr({mode:"boolean"})],l.prototype,"disabled");c([e.attr({mode:"boolean"})],l.prototype,"selectable");c([e.attr({mode:"boolean"})],l.prototype,"selected");const h=".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}@media (hover: hover){.base:hover:where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--_connotation-color-contrast);--_appearance-color-fill: var(--_connotation-color-dim);--_appearance-color-outline: transparent}.base: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: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.hover:where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--_connotation-color-contrast);--_appearance-color-fill: var(--_connotation-color-dim);--_appearance-color-outline: transparent}.base.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.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:active:where(:not(.disabled,:disabled)){--_appearance-color-text: var(--_connotation-color-contrast);--_appearance-color-fill: var(--_connotation-color-pale);--_appearance-color-outline: transparent}.base: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: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.active:where(:not(.disabled,:disabled)){--_appearance-color-text: var(--_connotation-color-contrast);--_appearance-color-fill: var(--_connotation-color-pale);--_appearance-color-outline: transparent}.base.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.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:disabled{--_appearance-color-text: var(--vvd-color-neutral-300);--_appearance-color-fill: var(--vvd-color-neutral-100);--_appearance-color-outline: transparent}.base:disabled.appearance-duotone{--_appearance-color-text: var(--vvd-color-neutral-300);--_appearance-color-fill: transparent;--_appearance-color-outline: var(--vvd-color-neutral-100)}.base: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.disabled{--_appearance-color-text: var(--vvd-color-neutral-300);--_appearance-color-fill: var(--vvd-color-neutral-100);--_appearance-color-outline: transparent}.base.disabled.appearance-duotone{--_appearance-color-text: var(--vvd-color-neutral-300);--_appearance-color-fill: transparent;--_appearance-color-outline: var(--vvd-color-neutral-100)}.base.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.selected:where(:not(.disabled,:disabled)){--_appearance-color-text: var(--_connotation-color-primary-text);--_appearance-color-fill: var(--_connotation-color-primary);--_appearance-color-outline: transparent}.base.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.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;border:none;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(--focus-stroke-color, 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(--focus-stroke-color, 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))}",b=({connotation:r,appearance:o,shape:t,disabled:i,selectable:a,removable:n,selected:p})=>f.classNames("base",["disabled",i],["selectable",a],["selected",a&&p],["removable",n&&!a],[`connotation-${r}`,!!r],[`appearance-${o}`,!!o],[`shape-${t}`,!!t]);function g(r){return e.html`
2
2
  <button
3
3
  class="dismiss-button"
4
4
  aria-label="${o=>o.locale.tag.remove(o.label)}"
package/tag/index.js CHANGED
@@ -51,7 +51,7 @@ c([
51
51
  c([
52
52
  l({ mode: "boolean" })
53
53
  ], n.prototype, "selected");
54
- const C = ".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}@media (hover: hover){.base: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: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: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.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.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.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:active:where(:not(.disabled,:disabled)){--_appearance-color-text: var(--_connotation-color-contrast);--_appearance-color-fill: var(--_connotation-color-dim);--_appearance-color-outline: transparent}.base: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: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.active:where(:not(.disabled,:disabled)){--_appearance-color-text: var(--_connotation-color-contrast);--_appearance-color-fill: var(--_connotation-color-dim);--_appearance-color-outline: transparent}.base.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.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:disabled{--_appearance-color-text: var(--vvd-color-neutral-300);--_appearance-color-fill: var(--vvd-color-neutral-100);--_appearance-color-outline: transparent}.base:disabled.appearance-duotone{--_appearance-color-text: var(--vvd-color-neutral-300);--_appearance-color-fill: transparent;--_appearance-color-outline: var(--vvd-color-neutral-100)}.base: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.disabled{--_appearance-color-text: var(--vvd-color-neutral-300);--_appearance-color-fill: var(--vvd-color-neutral-100);--_appearance-color-outline: transparent}.base.disabled.appearance-duotone{--_appearance-color-text: var(--vvd-color-neutral-300);--_appearance-color-fill: transparent;--_appearance-color-outline: var(--vvd-color-neutral-100)}.base.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.selected:where(:not(.disabled,:disabled)){--_appearance-color-text: var(--_connotation-color-contrast);--_appearance-color-fill: var(--_connotation-color-pale);--_appearance-color-outline: transparent}.base.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.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;border:none;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(--focus-stroke-color, 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(--focus-stroke-color, 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))}", b = ({
54
+ const C = ".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}@media (hover: hover){.base:hover:where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--_connotation-color-contrast);--_appearance-color-fill: var(--_connotation-color-dim);--_appearance-color-outline: transparent}.base: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: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.hover:where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--_connotation-color-contrast);--_appearance-color-fill: var(--_connotation-color-dim);--_appearance-color-outline: transparent}.base.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.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:active:where(:not(.disabled,:disabled)){--_appearance-color-text: var(--_connotation-color-contrast);--_appearance-color-fill: var(--_connotation-color-pale);--_appearance-color-outline: transparent}.base: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: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.active:where(:not(.disabled,:disabled)){--_appearance-color-text: var(--_connotation-color-contrast);--_appearance-color-fill: var(--_connotation-color-pale);--_appearance-color-outline: transparent}.base.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.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:disabled{--_appearance-color-text: var(--vvd-color-neutral-300);--_appearance-color-fill: var(--vvd-color-neutral-100);--_appearance-color-outline: transparent}.base:disabled.appearance-duotone{--_appearance-color-text: var(--vvd-color-neutral-300);--_appearance-color-fill: transparent;--_appearance-color-outline: var(--vvd-color-neutral-100)}.base: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.disabled{--_appearance-color-text: var(--vvd-color-neutral-300);--_appearance-color-fill: var(--vvd-color-neutral-100);--_appearance-color-outline: transparent}.base.disabled.appearance-duotone{--_appearance-color-text: var(--vvd-color-neutral-300);--_appearance-color-fill: transparent;--_appearance-color-outline: var(--vvd-color-neutral-100)}.base.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.selected:where(:not(.disabled,:disabled)){--_appearance-color-text: var(--_connotation-color-primary-text);--_appearance-color-fill: var(--_connotation-color-primary);--_appearance-color-outline: transparent}.base.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.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;border:none;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(--focus-stroke-color, 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(--focus-stroke-color, 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))}", b = ({
55
55
  connotation: e,
56
56
  appearance: o,
57
57
  shape: r,
@@ -159,6 +159,13 @@ const _Listbox = class _Listbox extends vividElement.VividElement {
159
159
  const re = new RegExp(`^${pattern}`, "gi");
160
160
  return this.options.filter((o) => o.text.trim().match(re));
161
161
  }
162
+ /**
163
+ * Finds the index of the next non-disabled option starting from the given index.
164
+ *
165
+ * @param fromIndex - The index to start searching from (inclusive)
166
+ * @returns The index of the next selectable option, or -1 if none found
167
+ * @internal
168
+ */
162
169
  getNextSelectableIndex(fromIndex) {
163
170
  const nextSelectableOption = this.options.reduce(
164
171
  (nextSelectableOption2, thisOption, index) => !nextSelectableOption2 && !thisOption.disabled && index >= fromIndex ? thisOption : nextSelectableOption2,
@@ -166,6 +173,20 @@ const _Listbox = class _Listbox extends vividElement.VividElement {
166
173
  );
167
174
  return this.options.indexOf(nextSelectableOption);
168
175
  }
176
+ /**
177
+ * Finds the index of the previous non-disabled option starting from the given index.
178
+ *
179
+ * @param fromIndex - The index to start searching from (inclusive)
180
+ * @returns The index of the previous selectable option, or -1 if none found
181
+ * @internal
182
+ */
183
+ getPreviousSelectableIndex(fromIndex) {
184
+ const previousSelectableOption = this.options.reduceRight(
185
+ (previousSelectableOption2, thisOption, index) => !previousSelectableOption2 && !thisOption.disabled && index <= fromIndex ? thisOption : previousSelectableOption2,
186
+ null
187
+ );
188
+ return this.options.indexOf(previousSelectableOption);
189
+ }
169
190
  /**
170
191
  * Handles external changes to child options.
171
192
  *
@@ -344,7 +365,10 @@ const _Listbox = class _Listbox extends vividElement.VividElement {
344
365
  selectNextOption() {
345
366
  /* v8 ignore else -- @preserve */
346
367
  if (!this.disabled && this.selectedIndex < this.options.length - 1) {
347
- this.selectedIndex += 1;
368
+ const nextIndex = this.getNextSelectableIndex(this.selectedIndex + 1);
369
+ if (nextIndex !== -1) {
370
+ this.selectedIndex = nextIndex;
371
+ }
348
372
  }
349
373
  }
350
374
  /**
@@ -355,7 +379,10 @@ const _Listbox = class _Listbox extends vividElement.VividElement {
355
379
  selectPreviousOption() {
356
380
  /* v8 ignore else -- @preserve */
357
381
  if (!this.disabled && this.selectedIndex > 0) {
358
- this.selectedIndex = this.selectedIndex - 1;
382
+ const prevIndex = this.getPreviousSelectableIndex(this.selectedIndex - 1);
383
+ if (prevIndex !== -1) {
384
+ this.selectedIndex = prevIndex;
385
+ }
359
386
  }
360
387
  }
361
388
  /// For this options change, determine if selectedIndex should change based on defaultSelected. Otherwise, returns null.
@@ -157,6 +157,13 @@ const _Listbox = class _Listbox extends VividElement {
157
157
  const re = new RegExp(`^${pattern}`, "gi");
158
158
  return this.options.filter((o) => o.text.trim().match(re));
159
159
  }
160
+ /**
161
+ * Finds the index of the next non-disabled option starting from the given index.
162
+ *
163
+ * @param fromIndex - The index to start searching from (inclusive)
164
+ * @returns The index of the next selectable option, or -1 if none found
165
+ * @internal
166
+ */
160
167
  getNextSelectableIndex(fromIndex) {
161
168
  const nextSelectableOption = this.options.reduce(
162
169
  (nextSelectableOption2, thisOption, index) => !nextSelectableOption2 && !thisOption.disabled && index >= fromIndex ? thisOption : nextSelectableOption2,
@@ -164,6 +171,20 @@ const _Listbox = class _Listbox extends VividElement {
164
171
  );
165
172
  return this.options.indexOf(nextSelectableOption);
166
173
  }
174
+ /**
175
+ * Finds the index of the previous non-disabled option starting from the given index.
176
+ *
177
+ * @param fromIndex - The index to start searching from (inclusive)
178
+ * @returns The index of the previous selectable option, or -1 if none found
179
+ * @internal
180
+ */
181
+ getPreviousSelectableIndex(fromIndex) {
182
+ const previousSelectableOption = this.options.reduceRight(
183
+ (previousSelectableOption2, thisOption, index) => !previousSelectableOption2 && !thisOption.disabled && index <= fromIndex ? thisOption : previousSelectableOption2,
184
+ null
185
+ );
186
+ return this.options.indexOf(previousSelectableOption);
187
+ }
167
188
  /**
168
189
  * Handles external changes to child options.
169
190
  *
@@ -342,7 +363,10 @@ const _Listbox = class _Listbox extends VividElement {
342
363
  selectNextOption() {
343
364
  /* v8 ignore else -- @preserve */
344
365
  if (!this.disabled && this.selectedIndex < this.options.length - 1) {
345
- this.selectedIndex += 1;
366
+ const nextIndex = this.getNextSelectableIndex(this.selectedIndex + 1);
367
+ if (nextIndex !== -1) {
368
+ this.selectedIndex = nextIndex;
369
+ }
346
370
  }
347
371
  }
348
372
  /**
@@ -353,7 +377,10 @@ const _Listbox = class _Listbox extends VividElement {
353
377
  selectPreviousOption() {
354
378
  /* v8 ignore else -- @preserve */
355
379
  if (!this.disabled && this.selectedIndex > 0) {
356
- this.selectedIndex = this.selectedIndex - 1;
380
+ const prevIndex = this.getPreviousSelectableIndex(this.selectedIndex - 1);
381
+ if (prevIndex !== -1) {
382
+ this.selectedIndex = prevIndex;
383
+ }
357
384
  }
358
385
  }
359
386
  /// For this options change, determine if selectedIndex should change based on defaultSelected. Otherwise, returns null.
@@ -268,7 +268,7 @@ const ReplacedPropHandling = (Base) => {
268
268
 
269
269
  class VividElement extends AriaMixin(ReplacedPropHandling(fastElement.FASTElement)) {
270
270
  static {
271
- this.VIVID_VERSION = "5.7.0";
271
+ this.VIVID_VERSION = "5.8.0";
272
272
  }
273
273
  /**
274
274
  * Add data-vvd-component attribute with component name globally,
@@ -266,7 +266,7 @@ const ReplacedPropHandling = (Base) => {
266
266
 
267
267
  class VividElement extends AriaMixin(ReplacedPropHandling(FASTElement)) {
268
268
  static {
269
- this.VIVID_VERSION = "5.7.0";
269
+ this.VIVID_VERSION = "5.8.0";
270
270
  }
271
271
  /**
272
272
  * Add data-vvd-component attribute with component name globally,
package/vivid.api.json CHANGED
@@ -4570,6 +4570,47 @@
4570
4570
  ],
4571
4571
  "name": "registerCombobox"
4572
4572
  },
4573
+ {
4574
+ "kind": "Function",
4575
+ "canonicalReference": "@vonage/vivid!registerContextualHelp:function(1)",
4576
+ "docComment": "",
4577
+ "excerptTokens": [
4578
+ {
4579
+ "kind": "Content",
4580
+ "text": "registerContextualHelp: (prefix?: "
4581
+ },
4582
+ {
4583
+ "kind": "Content",
4584
+ "text": "string"
4585
+ },
4586
+ {
4587
+ "kind": "Content",
4588
+ "text": ") => "
4589
+ },
4590
+ {
4591
+ "kind": "Content",
4592
+ "text": "void"
4593
+ }
4594
+ ],
4595
+ "fileUrlPath": "dist/lib/contextual-help/definition.d.ts",
4596
+ "returnTypeTokenRange": {
4597
+ "startIndex": 3,
4598
+ "endIndex": 4
4599
+ },
4600
+ "releaseTag": "Public",
4601
+ "overloadIndex": 1,
4602
+ "parameters": [
4603
+ {
4604
+ "parameterName": "prefix",
4605
+ "parameterTypeTokenRange": {
4606
+ "startIndex": 1,
4607
+ "endIndex": 2
4608
+ },
4609
+ "isOptional": true
4610
+ }
4611
+ ],
4612
+ "name": "registerContextualHelp"
4613
+ },
4573
4614
  {
4574
4615
  "kind": "Function",
4575
4616
  "canonicalReference": "@vonage/vivid!registerDataGrid:function(1)",
@@ -14127,6 +14168,69 @@
14127
14168
  },
14128
14169
  "implementsTokenRanges": []
14129
14170
  },
14171
+ {
14172
+ "kind": "Class",
14173
+ "canonicalReference": "@vonage/vivid!VwcContextualHelpElement:class",
14174
+ "docComment": "",
14175
+ "excerptTokens": [
14176
+ {
14177
+ "kind": "Content",
14178
+ "text": "export declare class ContextualHelp extends "
14179
+ },
14180
+ {
14181
+ "kind": "Reference",
14182
+ "text": "VividElement",
14183
+ "canonicalReference": "@vonage/vivid!~VividElement:class"
14184
+ },
14185
+ {
14186
+ "kind": "Content",
14187
+ "text": " "
14188
+ }
14189
+ ],
14190
+ "fileUrlPath": "dist/lib/contextual-help/contextual-help.d.ts",
14191
+ "releaseTag": "Public",
14192
+ "isAbstract": false,
14193
+ "name": "VwcContextualHelpElement",
14194
+ "preserveMemberOrder": false,
14195
+ "members": [
14196
+ {
14197
+ "kind": "Property",
14198
+ "canonicalReference": "@vonage/vivid!VwcContextualHelpElement#placement:member",
14199
+ "docComment": "",
14200
+ "excerptTokens": [
14201
+ {
14202
+ "kind": "Content",
14203
+ "text": "placement?: "
14204
+ },
14205
+ {
14206
+ "kind": "Reference",
14207
+ "text": "Placement",
14208
+ "canonicalReference": "@floating-ui/utils!Placement:type"
14209
+ },
14210
+ {
14211
+ "kind": "Content",
14212
+ "text": ";"
14213
+ }
14214
+ ],
14215
+ "isReadonly": false,
14216
+ "isOptional": true,
14217
+ "releaseTag": "Public",
14218
+ "name": "placement",
14219
+ "propertyTypeTokenRange": {
14220
+ "startIndex": 1,
14221
+ "endIndex": 2
14222
+ },
14223
+ "isStatic": false,
14224
+ "isProtected": false,
14225
+ "isAbstract": false
14226
+ }
14227
+ ],
14228
+ "extendsTokenRange": {
14229
+ "startIndex": 1,
14230
+ "endIndex": 2
14231
+ },
14232
+ "implementsTokenRanges": []
14233
+ },
14130
14234
  {
14131
14235
  "kind": "Class",
14132
14236
  "canonicalReference": "@vonage/vivid!VwcDataGridCellElement:class",