@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
@@ -1,4 +1,4 @@
1
- "use strict";const g=require("./definition9.cjs"),$=require("./definition2.cjs"),m=require("./definition12.cjs"),r=require("./vivid-element.cjs"),y=require("./mixins.cjs"),k=require("./listbox.cjs"),_=require("./host-semantics.cjs"),C=require("./form-associated.cjs"),h=require("./numbers.cjs"),A=require("./with-contextual-help.cjs"),D=require("./with-error-text.cjs"),E=require("./with-success-text.cjs"),H=require("./form-element.cjs"),v=require("./affix.cjs"),V=require("./strings.cjs"),s=require("./key-codes.cjs"),q=require("./definition3.cjs"),F=require("./index.cjs"),x=require("./ref.cjs"),u=require("./when.cjs"),f=require("./slotted.cjs"),T=require("./class-names.cjs");var z=Object.defineProperty,L=Object.getOwnPropertyDescriptor,c=(n,e,t,o)=>{for(var a=o>1?void 0:o?L(e,t):e,l=n.length-1,d;l>=0;l--)(d=n[l])&&(a=(o?d(e,t,a):d(a))||a);return o&&a&&z(e,t,a),a};class i extends y.WithLightDOMFeedback(A.WithContextualHelp(D.WithErrorText(E.WithSuccessText(H.FormElement(_.HostSemantics(v.AffixIconWithTrailing(C.FormAssociated(k.Listbox)))))))){constructor(){super(...arguments),this.proxy=document.createElement("select"),this.activeIndex=-1,this.rangeStartIndex=-1,this.open=!1,this.listboxId=V.uniqueId("listbox-"),this.maxHeight=0,this.fixedDropdown=!1,this._feedbackWrapper=null}get activeOption(){return this.options[this.activeIndex]}get checkedOptions(){return this.options.filter(e=>e.checked)}get firstSelectedOptionIndex(){return this.options.indexOf(this.firstSelectedOption)}activeIndexChanged(e,t){this._activeDescendant=this.options[t]?.id??"",this.focusAndScrollOptionIntoView()}checkActiveIndex(){const e=this.activeOption;/* v8 ignore else -- @preserve */e&&(e.checked=!0)}checkFirstOption(e){if(e){/* v8 ignore else -- @preserve */this.rangeStartIndex===-1&&(this.rangeStartIndex=this.activeIndex+1),this.options.forEach((t,o)=>{t.checked=h.inRange(o,this.rangeStartIndex)})}else this.uncheckAllOptions();this.activeIndex=0,this.checkActiveIndex()}checkLastOption(e){if(e){/* v8 ignore else -- @preserve */this.rangeStartIndex===-1&&(this.rangeStartIndex=this.activeIndex),this.options.forEach((t,o)=>{t.checked=h.inRange(o,this.rangeStartIndex,this.length)})}else this.uncheckAllOptions();this.activeIndex=this.length-1,this.checkActiveIndex()}checkNextOption(e){if(e){/* v8 ignore else -- @preserve */this.rangeStartIndex===-1&&(this.rangeStartIndex=this.activeIndex),this.options.forEach((t,o)=>{t.checked=h.inRange(o,this.rangeStartIndex,this.activeIndex+1)})}else this.uncheckAllOptions();this.activeIndex+=this.activeIndex<this.length-1?1:0,this.checkActiveIndex()}checkPreviousOption(e){if(e){/* v8 ignore else -- @preserve */this.rangeStartIndex===-1&&(this.rangeStartIndex=this.activeIndex);/* v8 ignore else -- @preserve */this.checkedOptions.length===1&&(this.rangeStartIndex+=1),this.options.forEach((t,o)=>{t.checked=h.inRange(o,this.activeIndex,this.rangeStartIndex)})}else this.uncheckAllOptions();this.activeIndex-=this.activeIndex>0?1:0,this.checkActiveIndex()}focusAndScrollOptionIntoView(){super.focusAndScrollOptionIntoView(this.activeOption)}focusinHandler(e){if(!this.multiple)return super.focusinHandler(e);/* v8 ignore else -- @preserve */!this.shouldSkipFocus&&e.target===e.currentTarget&&(this.uncheckAllOptions(),this.activeIndex===-1&&(this.activeIndex=this.firstSelectedOptionIndex!==-1?this.firstSelectedOptionIndex:0),this.checkActiveIndex(),this.setSelectedOptions(),this.focusAndScrollOptionIntoView()),this.shouldSkipFocus=!1}setSelectedOptions(){if(!this.multiple){super.setSelectedOptions();return}/* v8 ignore else -- @preserve */this.$fastController.isConnected&&this.options&&(this.selectedOptions=this.options.filter(e=>e.selected),this.focusAndScrollOptionIntoView())}toggleSelectedForAllCheckedOptions(){const e=this.checkedOptions.filter(o=>!o.disabled),t=!e.every(o=>o.selected);e.forEach(o=>o.selected=t),this.selectedIndex=this.options.indexOf(e[e.length-1]),this.setSelectedOptions(),this.updateValue(!0)}typeaheadBufferChanged(e,t){if(!this.multiple){super.typeaheadBufferChanged(e,t);return}/* v8 ignore if -- @preserve */if(this.$fastController.isConnected){const o=this.getTypeaheadMatches(),a=this.options.indexOf(o[0]);a>-1&&(this.activeIndex=a,this.uncheckAllOptions(),this.checkActiveIndex()),this.typeaheadExpired=!1}}uncheckAllOptions(e=!1){this.options.forEach(t=>t.checked=!1);/* v8 ignore else -- @preserve */e||(this.rangeStartIndex=-1)}openChanged(e,t){if(!this.collapsible)return;if(this.open){this.focusAndScrollOptionIntoView(),this.indexWhenOpened=this.selectedIndex,r.Updates.enqueue(()=>this.focus());return}const o=e===!0&&t===!1,a=this.indexWhenOpened!==this.selectedIndex;o&&a&&this.updateValue(!0)}get collapsible(){return!this.multiple}valueChanged(e,t){const o=this.options.findIndex(d=>d.value===t),a=this._validSelectedIndex(o),l=this.options[a]?.value??"";this.selectedIndex!==a&&(this.selectedIndex=a),t===l&&(super.valueChanged(e,t),this.updateDisplayValue())}updateValue(e){this.$fastController.isConnected&&(this.value=this.firstSelectedOption?.value??""),e&&(this.$emit("input"),this.$emit("change",this,{bubbles:!0,composed:void 0}))}selectedIndexChanged(e,t){super.selectedIndexChanged(e,t),this.updateValue()}clickHandler(e){if(this.disabled||this._isFromContextualHelp(e))return;const t=e.target.closest("option,[role=option],[data-vvd-component=option]");if(!(t&&t.disabled))return this.multiple?(this.uncheckAllOptions(),this.activeIndex=this.options.indexOf(t),this.checkActiveIndex(),this.toggleSelectedForAllCheckedOptions()):super.clickHandler(e),this.collapsible&&(this.open=!this.open),!0}focusoutHandler(e){if(this.multiple&&this.uncheckAllOptions(),!this.open)return!0;const t=e.relatedTarget;if(this.isSameNode(t)){this.focus();return}/* v8 ignore else -- @preserve */this.options.includes(t)||(this.open=!1,this.indexWhenOpened!==this.selectedIndex&&this.updateValue(!0))}handleChange(e,t){super.handleChange(e,t),t==="value"&&this.updateValue()}mousedownHandler(e){return e.offsetX>=0&&e.offsetX<=this.listbox.scrollWidth?super.mousedownHandler(e):this.collapsible}multipleChanged(e,t){this.options.forEach(o=>{o.checked=t?!1:void 0}),this.setSelectedOptions();/* v8 ignore if -- @preserve */this.proxy&&(this.proxy.multiple=t)}selectedOptionsChanged(e,t){super.selectedOptionsChanged(e,t),this.options.forEach((o,a)=>{const l=this.proxy.options.item(a);l&&(l.selected=o.selected)})}setProxyOptions(){/* v8 ignore else -- @preserve */this.proxy instanceof HTMLSelectElement&&this.options&&(this.proxy.length=0,this.options.forEach(e=>{const t=e.proxy||(e instanceof HTMLOptionElement?e.cloneNode():null);t&&this.proxy.options.add(t)}))}multipleKeydownHandler(e){if(this.disabled)return;const{key:t,shiftKey:o}=e;switch(this.shouldSkipFocus=!1,t){case s.keyHome:{this.checkFirstOption(o);return}case s.keyArrowDown:{this.checkNextOption(o);return}case s.keyArrowUp:{this.checkPreviousOption(o);return}case s.keyEnd:{this.checkLastOption(o);return}case s.keyTab:{this.focusAndScrollOptionIntoView();return}case s.keyEscape:{this.uncheckAllOptions(),this.checkActiveIndex();return}case s.keySpace:{e.preventDefault();/* v8 ignore else -- @preserve */if(this.typeaheadExpired){this.toggleSelectedForAllCheckedOptions();return}}default:{/* v8 ignore else -- @preserve */t.length===1&&this.handleTypeAhead(`${t}`);return}}}keydownHandler(e){const t=this.selectedIndex;switch(this.multiple?this.multipleKeydownHandler(e):super.keydownHandler(e),e.key){case s.keySpace:{e.preventDefault(),this.collapsible&&this.typeaheadExpired&&(this.open=!this.open);break}case s.keyHome:case s.keyEnd:{e.preventDefault();break}case s.keyEnter:{e.preventDefault(),this.open=!this.open;break}case s.keyEscape:{this.collapsible&&this.open&&(e.preventDefault(),this.open=!1);break}case s.keyTab:return this.collapsible&&this.open&&(e.preventDefault(),this.open=!1),!0}return this.collapsible&&!this.open&&this.selectedIndex!==t&&this.updateValue(!0),!(e.key===s.keyArrowDown||e.key===s.keyArrowUp)}connectedCallback(){super.connectedCallback(),this.addEventListener("focusout",this.focusoutHandler),this.addEventListener("contentchange",this.updateDisplayValue)}disconnectedCallback(){this.removeEventListener("focusout",this.focusoutHandler),this.removeEventListener("contentchange",this.updateDisplayValue),super.disconnectedCallback()}updateDisplayValue(){this.collapsible&&r.Observable.notify(this,"displayValue")}get displayValue(){return r.Observable.track(this,"displayValue"),this.firstSelectedOption?.getAttribute("label")??this.firstSelectedOption?.text??this.placeholder??""}_newDefaultSelectedIndex(e,t,o){const a=super._newDefaultSelectedIndex(e,t,o);if(a===null&&o===-1&&!this.placeholder){const l=this.getNextSelectableIndex(0);if(l!==-1)return l}return a}_isDefaultSelected(e){return super._isDefaultSelected(e)||e.value===this.initialValue}slottedOptionsChanged(e,t){this.options.forEach(a=>{r.Observable.getNotifier(a).unsubscribe(this,"value")}),super.slottedOptionsChanged(e,t),this.options.forEach(a=>{r.Observable.getNotifier(a).subscribe(this,"value")}),this.setProxyOptions(),this.updateValue();const o=this.getAttribute("scale")||this.scale;t.forEach(a=>{o&&(a.setAttribute("scale",o),a.scale=o)}),this.proxy.value=this.value,this.validate()}formResetCallback(){this.setProxyOptions(),this.selectedIndex=this._newDefaultSelectedIndex([],this.options,-1)??-1}}c([r.observable],i.prototype,"activeIndex",2);c([r.attr({mode:"boolean"})],i.prototype,"multiple",2);c([r.attr({attribute:"open",mode:"boolean"})],i.prototype,"open",2);c([r.volatile],i.prototype,"collapsible",1);c([r.observable],i.prototype,"control",2);c([r.observable],i.prototype,"maxHeight",2);c([r.observable],i.prototype,"_anchor",2);c([r.attr()],i.prototype,"scale",2);c([r.attr],i.prototype,"appearance",2);c([r.attr],i.prototype,"shape",2);c([r.attr({mode:"boolean",attribute:"fixed-dropdown"})],i.prototype,"fixedDropdown",2);c([r.attr],i.prototype,"placeholder",2);c([r.observable],i.prototype,"_feedbackWrapper",2);c([r.observable],i.prototype,"metaSlottedContent",2);const W=".label-wrapper{display:flex;flex-direction:row;align-items:center;gap:var(--label-wrapper-gap, 4px)}.label-wrapper[hidden]{display:none}.label:not(slot),.label::slotted(label){flex:0 1 auto}.chevron{display:flex;flex-shrink:0;font:var(--vvd-typography-base-extended);transform:rotate(0);transition:transform .2s}:host([data-expanded=true]) .chevron,:host([open]) .chevron{transform:rotate(180deg)}:host(:focus-visible){outline:none}:host{display:inline-flex;flex-direction:column;gap:4px;--_low-ink-color: var(--vvd-color-neutral-600);--focus-stroke-gap-color: transparent}:host([disabled]){--_low-ink-color: var(--vvd-color-neutral-400);cursor:not-allowed}.label{color:var(--vvd-color-canvas-text);font:var(--vvd-typography-base)}.control{--_appearance-color-text: var(--vvd-color-canvas-text);--_appearance-color-fill: var(--vvd-color-canvas);--_appearance-color-outline: var(--vvd-color-neutral-500)}.control.appearance-ghost{--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: transparent;--_appearance-color-outline: transparent}@media (hover: hover){.control:hover:where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--vvd-color-canvas-text);--_appearance-color-fill: var(--vvd-color-canvas);--_appearance-color-outline: var(--vvd-color-neutral-700)}.control:hover:where(:not(.disabled,:disabled,.readonly)).appearance-ghost{--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: var(--_connotation-color-faint);--_appearance-color-outline: transparent}}.control.hover:where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--vvd-color-canvas-text);--_appearance-color-fill: var(--vvd-color-canvas);--_appearance-color-outline: var(--vvd-color-neutral-700)}.control.hover:where(:not(.disabled,:disabled,.readonly)).appearance-ghost{--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: var(--_connotation-color-faint);--_appearance-color-outline: transparent}.control:disabled{--_appearance-color-text: var(--vvd-color-neutral-300);--_appearance-color-fill: var(--vvd-color-neutral-100);--_appearance-color-outline: var(--vvd-color-neutral-300)}.control:disabled.appearance-ghost{--_appearance-color-text: var(--vvd-color-neutral-300);--_appearance-color-fill: transparent;--_appearance-color-outline: transparent}.control.disabled{--_appearance-color-text: var(--vvd-color-neutral-300);--_appearance-color-fill: var(--vvd-color-neutral-100);--_appearance-color-outline: var(--vvd-color-neutral-300)}.control.disabled.appearance-ghost{--_appearance-color-text: var(--vvd-color-neutral-300);--_appearance-color-fill: transparent;--_appearance-color-outline: transparent}.control.readonly:where(:not(.disabled,:disabled)){--_appearance-color-text: var(--vvd-color-canvas-text);--_appearance-color-fill: var(--vvd-color-neutral-200);--_appearance-color-outline: var(--vvd-color-neutral-400)}.control.readonly:where(:not(.disabled,:disabled)).appearance-ghost{--_appearance-color-text: var(--vvd-color-neutral-600);--_appearance-color-fill: transparent;--_appearance-color-outline: transparent}.control.error:where(:not(.disabled,:disabled)){--_appearance-color-text: notSet;--_appearance-color-fill: var(--vvd-color-alert-50);--_appearance-color-outline: var(--vvd-color-alert-500)}.control.error:where(:not(.disabled,:disabled)).appearance-ghost{--_appearance-color-text: notSet;--_appearance-color-fill: var(--vvd-color-alert-50);--_appearance-color-outline: transparent}.control.success:where(:not(.disabled,:disabled)){--_appearance-color-text: notSet;--_appearance-color-fill: var(--vvd-color-success-50);--_appearance-color-outline: var(--vvd-color-success-500)}.control.success:where(:not(.disabled,:disabled)).appearance-ghost{--_appearance-color-text: notSet;--_appearance-color-fill: var(--vvd-color-success-50);--_appearance-color-outline: transparent}.control{--_connotation-color-primary: var(--vvd-select-accent-primary, var(--vvd-color-canvas-text));--_connotation-color-primary-text: var(--vvd-select-accent-primary-text, var(--vvd-color-canvas));--_connotation-color-primary-increment: var(--vvd-select-accent-primary-increment, var(--vvd-color-neutral-800));--_connotation-color-intermediate: var(--vvd-select-accent-intermediate, var(--vvd-color-neutral-500));--_connotation-color-faint: var(--vvd-select-accent-faint, var(--vvd-color-neutral-50));--_connotation-color-soft: var(--vvd-select-accent-soft, var(--vvd-color-neutral-100));--_connotation-color-firm: var(--vvd-select-accent-firm, var(--vvd-color-canvas-text));--_connotation-color-fierce: var(--vvd-select-accent-fierce, var(--vvd-color-neutral-700))}.control{border-radius:var(--_select-control-border-radius);block-size:var(--_select-block-size);padding-inline:var(--_select-padding-inline)}.control{--_select-icon-size: calc(1px*(40 + 4*clamp(-1, var(--vvd-size-density, 0), 2))/2) ;--_select-block-size: calc(1px*(40 + 4*clamp(-1, var(--vvd-size-density, 0), 2))) ;--_select-padding-inline: calc(1px*(40 + 4*clamp(-1, var(--vvd-size-density, 0), 2))*.4) ;display:flex;align-items:center;justify-content:space-between;background-color:var(--_appearance-color-fill);box-shadow:inset 0 0 0 1px var(--_appearance-color-outline);color:var(--_appearance-color-text);font:var(--vvd-typography-base);gap:8px;transition:box-shadow .2s,background-color .2s}.control.size-condensed{--_select-icon-size: calc(1px*(40 + 4*clamp(-1, var(--vvd-size-density, 0), 2))*.4) ;--_select-block-size: calc(1px*(32 + 4*clamp(-1, var(--vvd-size-density, 0), 2))) ;--_select-padding-inline: calc(1px*(24 + 4*clamp(-1, var(--vvd-size-density, 0), 2))/2) }.control.size-condensed:not(.shape-pill){--_select-control-border-radius: 4px}.control-wrapper{position:relative}.control:not(.disabled){cursor:pointer}.control.disabled{pointer-events:none}.control:not(.shape-pill){--_select-control-border-radius: 8px}.control.shape-pill{--_select-control-border-radius: 24px}.listbox{display:flex;max-height:var(--select-height, 408px);flex-direction:column;padding:4px;gap:2px;overflow-y:auto}:host([multiple]:focus-visible) .listbox{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));border-radius:8px}.selected-value{display:flex;overflow:hidden;flex-grow:1;align-items:center;column-gap:12px;white-space:nowrap}.selected-value .text{overflow:hidden;max-inline-size:100%;text-overflow:ellipsis}.control.shows-placeholder .selected-value .text{color:var(--vvd-color-neutral-600)}.selected-value slot[name=icon]{flex:0 0 var(--_select-icon-size);font-size:var(--_select-icon-size);line-height:1}.control.has-meta .selected-value{padding-inline-end:8px}.feedback-wrapper{display:contents}::part(popup-base){inline-size:max-content;min-inline-size:var(--_select-fixed-width, 100%)}:host([multiple]) ::part(popup-base){position:static}:host(:focus-within) .control:not(.has-activedescendant){--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))}:host(:not([multiple])) ::slotted([data-vvd-component=option][current-selected]){border-radius:8px;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));--focus-stroke-gap-color: transparent}",P=({shape:n,disabled:e,appearance:t,metaSlottedContent:o,errorValidationMessage:a,successText:l,placeholder:d,value:w,scale:b,_activeDescendant:O,open:S})=>T.classNames(["has-activedescendant",!!O&&S],["disabled",e],[`appearance-${t}`,!!t],[`shape-${n}`,!!n],["has-meta",!!o?.length],["error",!!a],["success",!!l],["shows-placeholder",!!d&&!w],[`size-${b}`,!!b]);function B(){return r.html` <label
1
+ "use strict";const g=require("./definition9.cjs"),$=require("./definition2.cjs"),m=require("./definition12.cjs"),r=require("./vivid-element.cjs"),y=require("./mixins.cjs"),k=require("./listbox.cjs"),_=require("./host-semantics.cjs"),C=require("./form-associated.cjs"),h=require("./numbers.cjs"),A=require("./with-contextual-help.cjs"),D=require("./with-error-text.cjs"),E=require("./with-success-text.cjs"),H=require("./form-element.cjs"),v=require("./affix.cjs"),V=require("./strings.cjs"),s=require("./key-codes.cjs"),q=require("./definition3.cjs"),F=require("./index.cjs"),x=require("./ref.cjs"),u=require("./when.cjs"),f=require("./slotted.cjs"),T=require("./class-names.cjs");var z=Object.defineProperty,L=Object.getOwnPropertyDescriptor,c=(n,e,t,o)=>{for(var a=o>1?void 0:o?L(e,t):e,l=n.length-1,d;l>=0;l--)(d=n[l])&&(a=(o?d(e,t,a):d(a))||a);return o&&a&&z(e,t,a),a};class i extends y.WithLightDOMFeedback(A.WithContextualHelp(D.WithErrorText(E.WithSuccessText(H.FormElement(_.HostSemantics(v.AffixIconWithTrailing(C.FormAssociated(k.Listbox)))))))){constructor(){super(...arguments),this.proxy=document.createElement("select"),this.activeIndex=-1,this.rangeStartIndex=-1,this.open=!1,this.listboxId=V.uniqueId("listbox-"),this.maxHeight=0,this.fixedDropdown=!1,this._feedbackWrapper=null}get activeOption(){return this.options[this.activeIndex]}get checkedOptions(){return this.options.filter(e=>e.checked)}get firstSelectedOptionIndex(){return this.options.indexOf(this.firstSelectedOption)}activeIndexChanged(e,t){this._activeDescendant=this.options[t]?.id??"",this.focusAndScrollOptionIntoView()}checkActiveIndex(){const e=this.activeOption;/* v8 ignore else -- @preserve */e&&(e.checked=!0)}checkFirstOption(e){const t=this.getNextSelectableIndex(0);t!==-1&&(e?(this.rangeStartIndex===-1&&(this.rangeStartIndex=this.activeIndex),this.options.forEach((o,a)=>{o.checked=h.inRange(a,t,this.rangeStartIndex+1)&&!o.disabled})):this.uncheckAllOptions(),this.activeIndex=t,this.checkActiveIndex())}checkLastOption(e){const t=this.getPreviousSelectableIndex(this.length-1);t!==-1&&(e?(this.rangeStartIndex===-1&&(this.rangeStartIndex=this.activeIndex),this.options.forEach((o,a)=>{o.checked=h.inRange(a,this.rangeStartIndex,t+1)&&!o.disabled})):this.uncheckAllOptions(),this.activeIndex=t,this.checkActiveIndex())}checkNextOption(e){const t=this.getNextSelectableIndex(this.activeIndex+1);t!==-1&&(e?(this.rangeStartIndex===-1&&(this.rangeStartIndex=this.activeIndex),this.options.forEach((o,a)=>{o.checked=h.inRange(a,this.rangeStartIndex,t+1)&&!o.disabled})):this.uncheckAllOptions(),this.activeIndex=t,this.checkActiveIndex())}checkPreviousOption(e){const t=this.getPreviousSelectableIndex(this.activeIndex-1);t!==-1&&(e?(this.rangeStartIndex===-1&&(this.rangeStartIndex=this.activeIndex),this.checkedOptions.length===1&&(this.rangeStartIndex+=1),this.options.forEach((o,a)=>{o.checked=h.inRange(a,t,this.rangeStartIndex+1)&&!o.disabled})):this.uncheckAllOptions(),this.activeIndex=t,this.checkActiveIndex())}focusAndScrollOptionIntoView(){super.focusAndScrollOptionIntoView(this.activeOption)}focusinHandler(e){if(!this.multiple)return super.focusinHandler(e);/* v8 ignore else -- @preserve */!this.shouldSkipFocus&&e.target===e.currentTarget&&(this.uncheckAllOptions(),this.activeIndex===-1&&(this.activeIndex=this.firstSelectedOptionIndex!==-1?this.firstSelectedOptionIndex:0),this.checkActiveIndex(),this.setSelectedOptions(),this.focusAndScrollOptionIntoView()),this.shouldSkipFocus=!1}setSelectedOptions(){if(!this.multiple){super.setSelectedOptions();return}/* v8 ignore else -- @preserve */this.$fastController.isConnected&&this.options&&(this.selectedOptions=this.options.filter(e=>e.selected),this.focusAndScrollOptionIntoView())}toggleSelectedForAllCheckedOptions(){const e=this.checkedOptions.filter(o=>!o.disabled),t=!e.every(o=>o.selected);e.forEach(o=>o.selected=t),this.selectedIndex=this.options.indexOf(e[e.length-1]),this.setSelectedOptions(),this.updateValue(!0)}typeaheadBufferChanged(e,t){if(!this.multiple){super.typeaheadBufferChanged(e,t);return}/* v8 ignore if -- @preserve */if(this.$fastController.isConnected){const o=this.getTypeaheadMatches(),a=this.options.indexOf(o[0]);a>-1&&(this.activeIndex=a,this.uncheckAllOptions(),this.checkActiveIndex()),this.typeaheadExpired=!1}}uncheckAllOptions(e=!1){this.options.forEach(t=>t.checked=!1);/* v8 ignore else -- @preserve */e||(this.rangeStartIndex=-1)}openChanged(e,t){if(!this.collapsible)return;if(this.open){this.focusAndScrollOptionIntoView(),this.indexWhenOpened=this.selectedIndex,r.Updates.enqueue(()=>this.focus());return}const o=e===!0&&t===!1,a=this.indexWhenOpened!==this.selectedIndex;o&&a&&this.updateValue(!0)}get collapsible(){return!this.multiple}valueChanged(e,t){const o=this.options.findIndex(d=>d.value===t),a=this._validSelectedIndex(o),l=this.options[a]?.value??"";this.selectedIndex!==a&&(this.selectedIndex=a),t===l&&(super.valueChanged(e,t),this.updateDisplayValue())}updateValue(e){this.$fastController.isConnected&&(this.value=this.firstSelectedOption?.value??""),e&&(this.$emit("input"),this.$emit("change",this,{bubbles:!0,composed:void 0}))}selectedIndexChanged(e,t){super.selectedIndexChanged(e,t),this.updateValue()}clickHandler(e){if(this.disabled||this._isFromContextualHelp(e))return;const t=e.target.closest("option,[role=option],[data-vvd-component=option]");if(!(t&&t.disabled))return this.multiple?(this.uncheckAllOptions(),this.activeIndex=this.options.indexOf(t),this.checkActiveIndex(),this.toggleSelectedForAllCheckedOptions()):super.clickHandler(e),this.collapsible&&(this.open=!this.open),!0}focusoutHandler(e){if(this.multiple&&this.uncheckAllOptions(),!this.open)return!0;const t=e.relatedTarget;if(this.isSameNode(t)){this.focus();return}/* v8 ignore else -- @preserve */this.options.includes(t)||(this.open=!1,this.indexWhenOpened!==this.selectedIndex&&this.updateValue(!0))}handleChange(e,t){super.handleChange(e,t),t==="value"&&this.updateValue()}mousedownHandler(e){return e.offsetX>=0&&e.offsetX<=this.listbox.scrollWidth?super.mousedownHandler(e):this.collapsible}multipleChanged(e,t){this.options.forEach(o=>{o.checked=t?!1:void 0}),this.setSelectedOptions();/* v8 ignore if -- @preserve */this.proxy&&(this.proxy.multiple=t)}selectedOptionsChanged(e,t){super.selectedOptionsChanged(e,t),this.options.forEach((o,a)=>{const l=this.proxy.options.item(a);l&&(l.selected=o.selected)})}setProxyOptions(){/* v8 ignore else -- @preserve */this.proxy instanceof HTMLSelectElement&&this.options&&(this.proxy.length=0,this.options.forEach(e=>{const t=e.proxy||(e instanceof HTMLOptionElement?e.cloneNode():null);t&&this.proxy.options.add(t)}))}multipleKeydownHandler(e){if(this.disabled)return;const{key:t,shiftKey:o}=e;switch(this.shouldSkipFocus=!1,t){case s.keyHome:{this.checkFirstOption(o);return}case s.keyArrowDown:{this.checkNextOption(o);return}case s.keyArrowUp:{this.checkPreviousOption(o);return}case s.keyEnd:{this.checkLastOption(o);return}case s.keyTab:{this.focusAndScrollOptionIntoView();return}case s.keyEscape:{this.uncheckAllOptions(),this.checkActiveIndex();return}case s.keySpace:{e.preventDefault();/* v8 ignore else -- @preserve */if(this.typeaheadExpired){this.toggleSelectedForAllCheckedOptions();return}}default:{/* v8 ignore else -- @preserve */t.length===1&&this.handleTypeAhead(`${t}`);return}}}keydownHandler(e){const t=this.selectedIndex;switch(this.multiple?this.multipleKeydownHandler(e):super.keydownHandler(e),e.key){case s.keySpace:{e.preventDefault(),this.collapsible&&this.typeaheadExpired&&(this.open=!this.open);break}case s.keyHome:case s.keyEnd:{e.preventDefault();break}case s.keyEnter:{e.preventDefault(),this.open=!this.open;break}case s.keyEscape:{this.collapsible&&this.open&&(e.preventDefault(),this.open=!1);break}case s.keyTab:return this.collapsible&&this.open&&(e.preventDefault(),this.open=!1),!0}return this.collapsible&&!this.open&&this.selectedIndex!==t&&this.updateValue(!0),!(e.key===s.keyArrowDown||e.key===s.keyArrowUp)}connectedCallback(){super.connectedCallback(),this.addEventListener("focusout",this.focusoutHandler),this.addEventListener("contentchange",this.updateDisplayValue)}disconnectedCallback(){this.removeEventListener("focusout",this.focusoutHandler),this.removeEventListener("contentchange",this.updateDisplayValue),super.disconnectedCallback()}updateDisplayValue(){this.collapsible&&r.Observable.notify(this,"displayValue")}get displayValue(){return r.Observable.track(this,"displayValue"),this.firstSelectedOption?.getAttribute("label")??this.firstSelectedOption?.text??this.placeholder??""}_newDefaultSelectedIndex(e,t,o){const a=super._newDefaultSelectedIndex(e,t,o);if(a===null&&o===-1&&!this.placeholder){const l=this.getNextSelectableIndex(0);if(l!==-1)return l}return a}_isDefaultSelected(e){return super._isDefaultSelected(e)||e.value===this.initialValue}slottedOptionsChanged(e,t){this.options.forEach(a=>{r.Observable.getNotifier(a).unsubscribe(this,"value")}),super.slottedOptionsChanged(e,t),this.options.forEach(a=>{r.Observable.getNotifier(a).subscribe(this,"value")}),this.setProxyOptions(),this.updateValue();const o=this.getAttribute("scale")||this.scale;t.forEach(a=>{o&&(a.setAttribute("scale",o),a.scale=o)}),this.proxy.value=this.value,this.validate()}formResetCallback(){this.setProxyOptions(),this.selectedIndex=this._newDefaultSelectedIndex([],this.options,-1)??-1}}c([r.observable],i.prototype,"activeIndex",2);c([r.attr({mode:"boolean"})],i.prototype,"multiple",2);c([r.attr({attribute:"open",mode:"boolean"})],i.prototype,"open",2);c([r.volatile],i.prototype,"collapsible",1);c([r.observable],i.prototype,"control",2);c([r.observable],i.prototype,"maxHeight",2);c([r.observable],i.prototype,"_anchor",2);c([r.attr()],i.prototype,"scale",2);c([r.attr],i.prototype,"appearance",2);c([r.attr],i.prototype,"shape",2);c([r.attr({mode:"boolean",attribute:"fixed-dropdown"})],i.prototype,"fixedDropdown",2);c([r.attr],i.prototype,"placeholder",2);c([r.observable],i.prototype,"_feedbackWrapper",2);c([r.observable],i.prototype,"metaSlottedContent",2);const P=".label-wrapper{display:flex;flex-direction:row;align-items:center;gap:var(--label-wrapper-gap, 4px)}.label-wrapper[hidden]{display:none}.label:not(slot),.label::slotted(label){flex:0 1 auto}.chevron{display:flex;flex-shrink:0;font:var(--vvd-typography-base-extended);transform:rotate(0);transition:transform .2s}:host([data-expanded=true]) .chevron,:host([open]) .chevron{transform:rotate(180deg)}:host(:focus-visible){outline:none}:host{display:inline-flex;flex-direction:column;gap:4px;--_low-ink-color: var(--vvd-color-neutral-600);--focus-stroke-gap-color: transparent}:host([disabled]){--_low-ink-color: var(--vvd-color-neutral-400);cursor:not-allowed}.label{color:var(--vvd-color-canvas-text);font:var(--vvd-typography-base)}.control{--_appearance-color-text: var(--vvd-color-canvas-text);--_appearance-color-fill: var(--vvd-color-canvas);--_appearance-color-outline: var(--vvd-color-neutral-500)}.control.appearance-ghost{--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: transparent;--_appearance-color-outline: transparent}@media (hover: hover){.control:hover:where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--vvd-color-canvas-text);--_appearance-color-fill: var(--vvd-color-canvas);--_appearance-color-outline: var(--vvd-color-neutral-700)}.control:hover:where(:not(.disabled,:disabled,.readonly)).appearance-ghost{--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: var(--_connotation-color-faint);--_appearance-color-outline: transparent}}.control.hover:where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--vvd-color-canvas-text);--_appearance-color-fill: var(--vvd-color-canvas);--_appearance-color-outline: var(--vvd-color-neutral-700)}.control.hover:where(:not(.disabled,:disabled,.readonly)).appearance-ghost{--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: var(--_connotation-color-faint);--_appearance-color-outline: transparent}.control:disabled{--_appearance-color-text: var(--vvd-color-neutral-300);--_appearance-color-fill: var(--vvd-color-neutral-100);--_appearance-color-outline: var(--vvd-color-neutral-300)}.control:disabled.appearance-ghost{--_appearance-color-text: var(--vvd-color-neutral-300);--_appearance-color-fill: transparent;--_appearance-color-outline: transparent}.control.disabled{--_appearance-color-text: var(--vvd-color-neutral-300);--_appearance-color-fill: var(--vvd-color-neutral-100);--_appearance-color-outline: var(--vvd-color-neutral-300)}.control.disabled.appearance-ghost{--_appearance-color-text: var(--vvd-color-neutral-300);--_appearance-color-fill: transparent;--_appearance-color-outline: transparent}.control.readonly:where(:not(.disabled,:disabled)){--_appearance-color-text: var(--vvd-color-canvas-text);--_appearance-color-fill: var(--vvd-color-neutral-200);--_appearance-color-outline: var(--vvd-color-neutral-400)}.control.readonly:where(:not(.disabled,:disabled)).appearance-ghost{--_appearance-color-text: var(--vvd-color-neutral-600);--_appearance-color-fill: transparent;--_appearance-color-outline: transparent}.control.error:where(:not(.disabled,:disabled)){--_appearance-color-text: notSet;--_appearance-color-fill: var(--vvd-color-alert-50);--_appearance-color-outline: var(--vvd-color-alert-500)}.control.error:where(:not(.disabled,:disabled)).appearance-ghost{--_appearance-color-text: notSet;--_appearance-color-fill: var(--vvd-color-alert-50);--_appearance-color-outline: transparent}.control.success:where(:not(.disabled,:disabled)){--_appearance-color-text: notSet;--_appearance-color-fill: var(--vvd-color-success-50);--_appearance-color-outline: var(--vvd-color-success-500)}.control.success:where(:not(.disabled,:disabled)).appearance-ghost{--_appearance-color-text: notSet;--_appearance-color-fill: var(--vvd-color-success-50);--_appearance-color-outline: transparent}.control{--_connotation-color-primary: var(--vvd-select-accent-primary, var(--vvd-color-canvas-text));--_connotation-color-primary-text: var(--vvd-select-accent-primary-text, var(--vvd-color-canvas));--_connotation-color-primary-increment: var(--vvd-select-accent-primary-increment, var(--vvd-color-neutral-800));--_connotation-color-intermediate: var(--vvd-select-accent-intermediate, var(--vvd-color-neutral-500));--_connotation-color-faint: var(--vvd-select-accent-faint, var(--vvd-color-neutral-50));--_connotation-color-soft: var(--vvd-select-accent-soft, var(--vvd-color-neutral-100));--_connotation-color-firm: var(--vvd-select-accent-firm, var(--vvd-color-canvas-text));--_connotation-color-fierce: var(--vvd-select-accent-fierce, var(--vvd-color-neutral-700))}.control{border-radius:var(--_select-control-border-radius);block-size:var(--_select-block-size);padding-inline:var(--_select-padding-inline)}.control{--_select-icon-size: calc(1px*(40 + 4*clamp(-1, var(--vvd-size-density, 0), 2))/2) ;--_select-block-size: calc(1px*(40 + 4*clamp(-1, var(--vvd-size-density, 0), 2))) ;--_select-padding-inline: calc(1px*(40 + 4*clamp(-1, var(--vvd-size-density, 0), 2))*.4) ;display:flex;align-items:center;justify-content:space-between;background-color:var(--_appearance-color-fill);box-shadow:inset 0 0 0 1px var(--_appearance-color-outline);color:var(--_appearance-color-text);font:var(--vvd-typography-base);gap:8px;transition:box-shadow .2s,background-color .2s}.control.size-condensed{--_select-icon-size: calc(1px*(40 + 4*clamp(-1, var(--vvd-size-density, 0), 2))*.4) ;--_select-block-size: calc(1px*(32 + 4*clamp(-1, var(--vvd-size-density, 0), 2))) ;--_select-padding-inline: calc(1px*(24 + 4*clamp(-1, var(--vvd-size-density, 0), 2))/2) }.control.size-condensed:not(.shape-pill){--_select-control-border-radius: 4px}.control-wrapper{position:relative}.control:not(.disabled){cursor:pointer}.control.disabled{pointer-events:none}.control:not(.shape-pill){--_select-control-border-radius: 8px}.control.shape-pill{--_select-control-border-radius: 24px}.listbox{display:flex;max-height:var(--select-height, 408px);flex-direction:column;padding:4px;gap:2px;overflow-y:auto}:host([multiple]:focus-visible) .listbox{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));border-radius:8px}.selected-value{display:flex;overflow:hidden;flex-grow:1;align-items:center;column-gap:12px;white-space:nowrap}.selected-value .text{overflow:hidden;max-inline-size:100%;text-overflow:ellipsis}.control.shows-placeholder .selected-value .text{color:var(--vvd-color-neutral-600)}.selected-value slot[name=icon]{flex:0 0 var(--_select-icon-size);font-size:var(--_select-icon-size);line-height:1}.control.has-meta .selected-value{padding-inline-end:8px}.feedback-wrapper{display:contents}::part(popup-base){inline-size:max-content;min-inline-size:var(--_select-fixed-width, 100%)}:host([multiple]) ::part(popup-base){position:static}:host(:focus-within) .control:not(.has-activedescendant){--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))}:host(:not([multiple])) ::slotted([data-vvd-component=option][current-selected]){border-radius:8px;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));--focus-stroke-gap-color: transparent}",W=({shape:n,disabled:e,appearance:t,metaSlottedContent:o,errorValidationMessage:a,successText:l,placeholder:d,value:w,scale:b,_activeDescendant:O,open:S})=>T.classNames(["has-activedescendant",!!O&&S],["disabled",e],[`appearance-${t}`,!!t],[`shape-${n}`,!!n],["has-meta",!!o?.length],["error",!!a],["success",!!l],["shows-placeholder",!!d&&!w],[`size-${b}`,!!b]);function B(){return r.html` <label
2
2
  for="${n=>n.multiple?null:"control"}"
3
3
  class="label"
4
4
  id="label"
@@ -7,7 +7,7 @@
7
7
  </label>`}function N(n){const e=n.tagFor(m.ListboxOption);return r.html`
8
8
  <${e} text="${t=>t.placeholder}" hidden disabled>
9
9
  </${e}>`}function M(n){const e=v.affixIconTemplateFactory(n),t=q.chevronTemplateFactory(n);return r.html` <div
10
- class="control ${P}"
10
+ class="control ${W}"
11
11
  ${x.ref("_anchor")}
12
12
  id="control"
13
13
  ?disabled="${o=>o.disabled}"
@@ -49,7 +49,6 @@
49
49
  </div>
50
50
  `}function p(n){return(e,t)=>t.event.composedPath().includes(e._feedbackWrapper)?!0:n(e,t.event)}const j=n=>r.html`
51
51
  <template
52
- class="base"
53
52
  ${_.applyHostSemantics({role:"combobox",ariaLabel:e=>e.ariaLabel??e.label,ariaHasPopup:e=>e.collapsible?"listbox":"false",ariaExpanded:e=>e.open,ariaDisabled:e=>e.disabled})}
54
53
  aria-controls="${e=>e.listboxId}"
55
54
  aria-activedescendant="${e=>e.open?e._activeDescendant:null}"
@@ -66,4 +65,4 @@
66
65
  ${e=>e._getFeedbackTemplate(n)}
67
66
  </div>
68
67
  </template>
69
- `,I=r.defineVividComponent("select",i,j,[g.popupDefinition,$.iconDefinition,m.listboxOptionDefinition,y.feedbackMessageDefinition],{styles:W}),U=r.createRegisterFunction(I);exports.Select=i;exports.registerSelect=U;exports.selectDefinition=I;
68
+ `,I=r.defineVividComponent("select",i,j,[g.popupDefinition,$.iconDefinition,m.listboxOptionDefinition,y.feedbackMessageDefinition],{styles:P}),U=r.createRegisterFunction(I);exports.Select=i;exports.registerSelect=U;exports.selectDefinition=I;
@@ -1,7 +1,7 @@
1
1
  import { P as D, p as H } from "./definition9.js";
2
2
  import { i as E } from "./definition2.js";
3
3
  import { L as V, l as F } from "./definition12.js";
4
- import { U as z, O as u, o as p, a as c, v as T, h, c as W, d as L } from "./vivid-element.js";
4
+ import { U as z, O as u, o as d, a as c, v as T, h, c as W, d as L } from "./vivid-element.js";
5
5
  import { a as P, f as B } from "./mixins.js";
6
6
  import { L as S } from "./listbox.js";
7
7
  import { H as N, a as M } from "./host-semantics.js";
@@ -95,14 +95,10 @@ class l extends P(
95
95
  * @internal
96
96
  */
97
97
  checkFirstOption(e) {
98
- if (e) {
99
- /* v8 ignore else -- @preserve */
100
- this.rangeStartIndex === -1 && (this.rangeStartIndex = this.activeIndex + 1), this.options.forEach((t, o) => {
101
- t.checked = v(o, this.rangeStartIndex);
102
- });
103
- } else
104
- this.uncheckAllOptions();
105
- this.activeIndex = 0, this.checkActiveIndex();
98
+ const t = this.getNextSelectableIndex(0);
99
+ t !== -1 && (e ? (this.rangeStartIndex === -1 && (this.rangeStartIndex = this.activeIndex), this.options.forEach((o, a) => {
100
+ o.checked = v(a, t, this.rangeStartIndex + 1) && !o.disabled;
101
+ })) : this.uncheckAllOptions(), this.activeIndex = t, this.checkActiveIndex());
106
102
  }
107
103
  /**
108
104
  * Decrements the active index and sets the matching option as checked.
@@ -115,14 +111,12 @@ class l extends P(
115
111
  * @internal
116
112
  */
117
113
  checkLastOption(e) {
118
- if (e) {
119
- /* v8 ignore else -- @preserve */
120
- this.rangeStartIndex === -1 && (this.rangeStartIndex = this.activeIndex), this.options.forEach((t, o) => {
121
- t.checked = v(o, this.rangeStartIndex, this.length);
122
- });
123
- } else
124
- this.uncheckAllOptions();
125
- this.activeIndex = this.length - 1, this.checkActiveIndex();
114
+ const t = this.getPreviousSelectableIndex(
115
+ this.length - 1
116
+ );
117
+ t !== -1 && (e ? (this.rangeStartIndex === -1 && (this.rangeStartIndex = this.activeIndex), this.options.forEach((o, a) => {
118
+ o.checked = v(a, this.rangeStartIndex, t + 1) && !o.disabled;
119
+ })) : this.uncheckAllOptions(), this.activeIndex = t, this.checkActiveIndex());
126
120
  }
127
121
  /**
128
122
  * Increments the active index and marks the matching option as checked.
@@ -135,14 +129,10 @@ class l extends P(
135
129
  * @internal
136
130
  */
137
131
  checkNextOption(e) {
138
- if (e) {
139
- /* v8 ignore else -- @preserve */
140
- this.rangeStartIndex === -1 && (this.rangeStartIndex = this.activeIndex), this.options.forEach((t, o) => {
141
- t.checked = v(o, this.rangeStartIndex, this.activeIndex + 1);
142
- });
143
- } else
144
- this.uncheckAllOptions();
145
- this.activeIndex += this.activeIndex < this.length - 1 ? 1 : 0, this.checkActiveIndex();
132
+ const t = this.getNextSelectableIndex(this.activeIndex + 1);
133
+ t !== -1 && (e ? (this.rangeStartIndex === -1 && (this.rangeStartIndex = this.activeIndex), this.options.forEach((o, a) => {
134
+ o.checked = v(a, this.rangeStartIndex, t + 1) && !o.disabled;
135
+ })) : this.uncheckAllOptions(), this.activeIndex = t, this.checkActiveIndex());
146
136
  }
147
137
  /**
148
138
  * Decrements the active index and marks the matching option as checked.
@@ -155,16 +145,10 @@ class l extends P(
155
145
  * @internal
156
146
  */
157
147
  checkPreviousOption(e) {
158
- if (e) {
159
- /* v8 ignore else -- @preserve */
160
- this.rangeStartIndex === -1 && (this.rangeStartIndex = this.activeIndex);
161
- /* v8 ignore else -- @preserve */
162
- this.checkedOptions.length === 1 && (this.rangeStartIndex += 1), this.options.forEach((t, o) => {
163
- t.checked = v(o, this.activeIndex, this.rangeStartIndex);
164
- });
165
- } else
166
- this.uncheckAllOptions();
167
- this.activeIndex -= this.activeIndex > 0 ? 1 : 0, this.checkActiveIndex();
148
+ const t = this.getPreviousSelectableIndex(this.activeIndex - 1);
149
+ t !== -1 && (e ? (this.rangeStartIndex === -1 && (this.rangeStartIndex = this.activeIndex), this.checkedOptions.length === 1 && (this.rangeStartIndex += 1), this.options.forEach((o, a) => {
150
+ o.checked = v(a, t, this.rangeStartIndex + 1) && !o.disabled;
151
+ })) : this.uncheckAllOptions(), this.activeIndex = t, this.checkActiveIndex());
168
152
  }
169
153
  /**
170
154
  * @internal
@@ -512,7 +496,7 @@ class l extends P(
512
496
  }
513
497
  }
514
498
  i([
515
- p
499
+ d
516
500
  ], l.prototype, "activeIndex", 2);
517
501
  i([
518
502
  c({ mode: "boolean" })
@@ -524,13 +508,13 @@ i([
524
508
  T
525
509
  ], l.prototype, "collapsible", 1);
526
510
  i([
527
- p
511
+ d
528
512
  ], l.prototype, "control", 2);
529
513
  i([
530
- p
514
+ d
531
515
  ], l.prototype, "maxHeight", 2);
532
516
  i([
533
- p
517
+ d
534
518
  ], l.prototype, "_anchor", 2);
535
519
  i([
536
520
  c()
@@ -548,10 +532,10 @@ i([
548
532
  c
549
533
  ], l.prototype, "placeholder", 2);
550
534
  i([
551
- p
535
+ d
552
536
  ], l.prototype, "_feedbackWrapper", 2);
553
537
  i([
554
- p
538
+ d
555
539
  ], l.prototype, "metaSlottedContent", 2);
556
540
  const re = ".label-wrapper{display:flex;flex-direction:row;align-items:center;gap:var(--label-wrapper-gap, 4px)}.label-wrapper[hidden]{display:none}.label:not(slot),.label::slotted(label){flex:0 1 auto}.chevron{display:flex;flex-shrink:0;font:var(--vvd-typography-base-extended);transform:rotate(0);transition:transform .2s}:host([data-expanded=true]) .chevron,:host([open]) .chevron{transform:rotate(180deg)}:host(:focus-visible){outline:none}:host{display:inline-flex;flex-direction:column;gap:4px;--_low-ink-color: var(--vvd-color-neutral-600);--focus-stroke-gap-color: transparent}:host([disabled]){--_low-ink-color: var(--vvd-color-neutral-400);cursor:not-allowed}.label{color:var(--vvd-color-canvas-text);font:var(--vvd-typography-base)}.control{--_appearance-color-text: var(--vvd-color-canvas-text);--_appearance-color-fill: var(--vvd-color-canvas);--_appearance-color-outline: var(--vvd-color-neutral-500)}.control.appearance-ghost{--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: transparent;--_appearance-color-outline: transparent}@media (hover: hover){.control:hover:where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--vvd-color-canvas-text);--_appearance-color-fill: var(--vvd-color-canvas);--_appearance-color-outline: var(--vvd-color-neutral-700)}.control:hover:where(:not(.disabled,:disabled,.readonly)).appearance-ghost{--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: var(--_connotation-color-faint);--_appearance-color-outline: transparent}}.control.hover:where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--vvd-color-canvas-text);--_appearance-color-fill: var(--vvd-color-canvas);--_appearance-color-outline: var(--vvd-color-neutral-700)}.control.hover:where(:not(.disabled,:disabled,.readonly)).appearance-ghost{--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: var(--_connotation-color-faint);--_appearance-color-outline: transparent}.control:disabled{--_appearance-color-text: var(--vvd-color-neutral-300);--_appearance-color-fill: var(--vvd-color-neutral-100);--_appearance-color-outline: var(--vvd-color-neutral-300)}.control:disabled.appearance-ghost{--_appearance-color-text: var(--vvd-color-neutral-300);--_appearance-color-fill: transparent;--_appearance-color-outline: transparent}.control.disabled{--_appearance-color-text: var(--vvd-color-neutral-300);--_appearance-color-fill: var(--vvd-color-neutral-100);--_appearance-color-outline: var(--vvd-color-neutral-300)}.control.disabled.appearance-ghost{--_appearance-color-text: var(--vvd-color-neutral-300);--_appearance-color-fill: transparent;--_appearance-color-outline: transparent}.control.readonly:where(:not(.disabled,:disabled)){--_appearance-color-text: var(--vvd-color-canvas-text);--_appearance-color-fill: var(--vvd-color-neutral-200);--_appearance-color-outline: var(--vvd-color-neutral-400)}.control.readonly:where(:not(.disabled,:disabled)).appearance-ghost{--_appearance-color-text: var(--vvd-color-neutral-600);--_appearance-color-fill: transparent;--_appearance-color-outline: transparent}.control.error:where(:not(.disabled,:disabled)){--_appearance-color-text: notSet;--_appearance-color-fill: var(--vvd-color-alert-50);--_appearance-color-outline: var(--vvd-color-alert-500)}.control.error:where(:not(.disabled,:disabled)).appearance-ghost{--_appearance-color-text: notSet;--_appearance-color-fill: var(--vvd-color-alert-50);--_appearance-color-outline: transparent}.control.success:where(:not(.disabled,:disabled)){--_appearance-color-text: notSet;--_appearance-color-fill: var(--vvd-color-success-50);--_appearance-color-outline: var(--vvd-color-success-500)}.control.success:where(:not(.disabled,:disabled)).appearance-ghost{--_appearance-color-text: notSet;--_appearance-color-fill: var(--vvd-color-success-50);--_appearance-color-outline: transparent}.control{--_connotation-color-primary: var(--vvd-select-accent-primary, var(--vvd-color-canvas-text));--_connotation-color-primary-text: var(--vvd-select-accent-primary-text, var(--vvd-color-canvas));--_connotation-color-primary-increment: var(--vvd-select-accent-primary-increment, var(--vvd-color-neutral-800));--_connotation-color-intermediate: var(--vvd-select-accent-intermediate, var(--vvd-color-neutral-500));--_connotation-color-faint: var(--vvd-select-accent-faint, var(--vvd-color-neutral-50));--_connotation-color-soft: var(--vvd-select-accent-soft, var(--vvd-color-neutral-100));--_connotation-color-firm: var(--vvd-select-accent-firm, var(--vvd-color-canvas-text));--_connotation-color-fierce: var(--vvd-select-accent-fierce, var(--vvd-color-neutral-700))}.control{border-radius:var(--_select-control-border-radius);block-size:var(--_select-block-size);padding-inline:var(--_select-padding-inline)}.control{--_select-icon-size: calc(1px*(40 + 4*clamp(-1, var(--vvd-size-density, 0), 2))/2) ;--_select-block-size: calc(1px*(40 + 4*clamp(-1, var(--vvd-size-density, 0), 2))) ;--_select-padding-inline: calc(1px*(40 + 4*clamp(-1, var(--vvd-size-density, 0), 2))*.4) ;display:flex;align-items:center;justify-content:space-between;background-color:var(--_appearance-color-fill);box-shadow:inset 0 0 0 1px var(--_appearance-color-outline);color:var(--_appearance-color-text);font:var(--vvd-typography-base);gap:8px;transition:box-shadow .2s,background-color .2s}.control.size-condensed{--_select-icon-size: calc(1px*(40 + 4*clamp(-1, var(--vvd-size-density, 0), 2))*.4) ;--_select-block-size: calc(1px*(32 + 4*clamp(-1, var(--vvd-size-density, 0), 2))) ;--_select-padding-inline: calc(1px*(24 + 4*clamp(-1, var(--vvd-size-density, 0), 2))/2) }.control.size-condensed:not(.shape-pill){--_select-control-border-radius: 4px}.control-wrapper{position:relative}.control:not(.disabled){cursor:pointer}.control.disabled{pointer-events:none}.control:not(.shape-pill){--_select-control-border-radius: 8px}.control.shape-pill{--_select-control-border-radius: 24px}.listbox{display:flex;max-height:var(--select-height, 408px);flex-direction:column;padding:4px;gap:2px;overflow-y:auto}:host([multiple]:focus-visible) .listbox{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));border-radius:8px}.selected-value{display:flex;overflow:hidden;flex-grow:1;align-items:center;column-gap:12px;white-space:nowrap}.selected-value .text{overflow:hidden;max-inline-size:100%;text-overflow:ellipsis}.control.shows-placeholder .selected-value .text{color:var(--vvd-color-neutral-600)}.selected-value slot[name=icon]{flex:0 0 var(--_select-icon-size);font-size:var(--_select-icon-size);line-height:1}.control.has-meta .selected-value{padding-inline-end:8px}.feedback-wrapper{display:contents}::part(popup-base){inline-size:max-content;min-inline-size:var(--_select-fixed-width, 100%)}:host([multiple]) ::part(popup-base){position:static}:host(:focus-within) .control:not(.has-activedescendant){--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))}:host(:not([multiple])) ::slotted([data-vvd-component=option][current-selected]){border-radius:8px;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));--focus-stroke-gap-color: transparent}", ne = ({
557
541
  shape: r,
@@ -610,7 +594,7 @@ function se(r) {
610
594
  function ce(r) {
611
595
  return r.open && r.fixedDropdown ? `--_select-fixed-width: ${Math.round(r.getBoundingClientRect().width)}px` : null;
612
596
  }
613
- function pe(r) {
597
+ function de(r) {
614
598
  const e = r.tagFor(D);
615
599
  return h`
616
600
  <div class="label-wrapper" ?hidden=${(t) => !t.label && !t._hasContextualHelp}>
@@ -647,12 +631,11 @@ function pe(r) {
647
631
  </div>
648
632
  `;
649
633
  }
650
- function d(r) {
634
+ function p(r) {
651
635
  return (e, t) => t.event.composedPath().includes(e._feedbackWrapper) ? !0 : r(e, t.event);
652
636
  }
653
- const de = (r) => h`
637
+ const pe = (r) => h`
654
638
  <template
655
- class="base"
656
639
  ${M({
657
640
  role: "combobox",
658
641
  ariaLabel: (e) => e.ariaLabel ?? e.label,
@@ -664,17 +647,17 @@ const de = (r) => h`
664
647
  aria-activedescendant="${(e) => e.open ? e._activeDescendant : null}"
665
648
  aria-describedby="${(e) => e._feedbackDescribedBy}"
666
649
  tabindex="${(e) => e.disabled ? null : "0"}"
667
- @click="${d((e, t) => e.clickHandler(t))}"
668
- @focusin="${d((e, t) => e.focusinHandler(t))}"
669
- @focusout="${d(
650
+ @click="${p((e, t) => e.clickHandler(t))}"
651
+ @focusin="${p((e, t) => e.focusinHandler(t))}"
652
+ @focusout="${p(
670
653
  (e, t) => e.focusoutHandler(t)
671
654
  )}"
672
- @keydown="${d((e, t) => (e.open && ee(t), e.keydownHandler(t)))}"
673
- @mousedown="${d(
655
+ @keydown="${p((e, t) => (e.open && ee(t), e.keydownHandler(t)))}"
656
+ @mousedown="${p(
674
657
  (e, t) => e.mousedownHandler(t)
675
658
  )}"
676
659
  >
677
- ${pe(r)}
660
+ ${de(r)}
678
661
  <div class="feedback-wrapper" ${b("_feedbackWrapper")}>
679
662
  ${(e) => e._getFeedbackTemplate(r)}
680
663
  </div>
@@ -682,7 +665,7 @@ const de = (r) => h`
682
665
  `, he = L(
683
666
  "select",
684
667
  l,
685
- de,
668
+ pe,
686
669
  [
687
670
  H,
688
671
  E,
@@ -1,4 +1,4 @@
1
- "use strict";const v=require("./definition2.cjs"),o=require("./vivid-element.cjs"),p=require("./mixins.cjs"),h=require("./delegates-aria.cjs"),x=require("./form-associated.cjs"),f=require("./with-error-text.cjs"),k=require("./with-success-text.cjs"),y=require("./form-element.cjs"),d=require("./when.cjs"),_=require("./slotted.cjs"),g=require("./class-names.cjs"),C=':host{display:inline-flex;flex-direction:column;gap:4px;vertical-align:middle;--_low-ink-color: var(--vvd-color-neutral-600)}:host([disabled]){cursor:not-allowed}.base.connotation-cta{--_connotation-color-primary: var(--vvd-checkbox-cta-primary, var(--vvd-color-cta-500));--_connotation-color-primary-text: var(--vvd-checkbox-cta-primary-text, var(--vvd-color-canvas));--_connotation-color-primary-increment: var(--vvd-checkbox-cta-primary-increment, var(--vvd-color-cta-600));--_connotation-color-fierce: var(--vvd-checkbox-cta-fierce, var(--vvd-color-cta-700));--_connotation-color-intermediate: var(--vvd-checkbox-cta-intermediate, var(--vvd-color-cta-500));--_connotation-color-firm: var(--vvd-checkbox-cta-firm, var(--vvd-color-cta-600))}.base:not(.connotation-cta){--_connotation-color-primary: var(--vvd-checkbox-accent-primary, var(--vvd-color-canvas-text));--_connotation-color-primary-text: var(--vvd-checkbox-accent-primary-text, var(--vvd-color-canvas));--_connotation-color-primary-increment: var(--vvd-checkbox-accent-primary-increment, var(--vvd-color-neutral-800));--_connotation-color-fierce: var(--vvd-checkbox-accent-fierce, var(--vvd-color-neutral-700));--_connotation-color-intermediate: var(--vvd-checkbox-accent-intermediate, var(--vvd-color-neutral-500));--_connotation-color-firm: var(--vvd-checkbox-accent-firm, var(--vvd-color-canvas-text))}.base{--_appearance-color-text: var(--vvd-color-canvas-text);--_appearance-color-fill: var(--vvd-color-canvas);--_appearance-color-outline: var(--vvd-color-neutral-500)}@media (hover: hover){.base:hover:where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--vvd-color-canvas-text);--_appearance-color-fill: var(--vvd-color-canvas);--_appearance-color-outline: var(--vvd-color-neutral-700)}}.base.hover:where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--vvd-color-canvas-text);--_appearance-color-fill: var(--vvd-color-canvas);--_appearance-color-outline: var(--vvd-color-neutral-700)}.base:checked:where(:not(.disabled,:disabled)){--_appearance-color-text: var(--_connotation-color-primary-text);--_appearance-color-fill: var(--_connotation-color-primary);--_appearance-color-outline: var(--_connotation-color-primary)}.base.checked:where(:not(.disabled,:disabled)){--_appearance-color-text: var(--_connotation-color-primary-text);--_appearance-color-fill: var(--_connotation-color-primary);--_appearance-color-outline: var(--_connotation-color-primary)}@media (hover: hover){.base:checked:hover:where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--_connotation-color-primary-text);--_appearance-color-fill: var(--_connotation-color-primary-increment);--_appearance-color-outline: var(--_connotation-color-primary-increment)}}.base.checked.hover:where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--_connotation-color-primary-text);--_appearance-color-fill: var(--_connotation-color-primary-increment);--_appearance-color-outline: var(--_connotation-color-primary-increment)}.base:disabled{--_appearance-color-text: var(--vvd-color-neutral-300);--_appearance-color-fill: var(--vvd-color-neutral-100);--_appearance-color-outline: var(--vvd-color-neutral-300)}.base.disabled{--_appearance-color-text: var(--vvd-color-neutral-300);--_appearance-color-fill: var(--vvd-color-neutral-100);--_appearance-color-outline: var(--vvd-color-neutral-300)}.base.readonly:where(:not(.disabled,:disabled)){--_appearance-color-text: var(--vvd-color-canvas-text);--_appearance-color-fill: var(--vvd-color-neutral-200);--_appearance-color-outline: var(--vvd-color-neutral-400)}.base{display:inline-flex;align-items:center;gap:8px;vertical-align:middle}.base:focus-visible{outline:none}@supports (user-select: none){.base{user-select:none}}.base:not(.disabled){cursor:pointer}.base.disabled{pointer-events:none}.control{position:relative;display:flex;flex-shrink:0;align-items:center;justify-content:center;border-radius:4px;background-color:var(--_appearance-color-fill);block-size:calc(1px*(20 + 4*clamp(-1,var(--vvd-size-density, 0),2)));box-shadow:inset 0 0 0 2px var(--_appearance-color-outline);color:var(--_appearance-color-text);inline-size:calc(1px*(20 + 4*clamp(-1,var(--vvd-size-density, 0),2)))}.base:focus-visible .control{--focus-stroke-gap-color: transparent}.base:focus-visible .control:after{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));position:absolute;display:block;border-radius:var(--focus-border-radius, inherit);block-size:calc(100% + var(--focus-block-size-addition, 4px));content:"";inline-size:calc(100% + var(--focus-block-size-addition, 4px));inset-block-start:50%;inset-inline-start:50%;transform:translate(-50%,-50%)}.base.error:not(.checked) .control{background-color:var(--vvd-color-canvas);box-shadow:inset 0 0 0 2px var(--vvd-color-alert-500)}.indicator{font-size:calc(1px*(20 + 4*clamp(-1,var(--vvd-size-density, 0),2)) - 4px)}.base:not(.checked) .indicator.checkmark{display:none}.base.checked .indicator.minus,.base:not(.indeterminate) .indicator.minus{display:none}label{display:flex;flex-wrap:wrap;align-items:center;color:var(--vvd-color-canvas-text);column-gap:4px;cursor:pointer;font:var(--vvd-typography-base)}.hide-label label{display:none}.icon{font-size:calc(1px*(20 + 4*clamp(-1,var(--vvd-size-density, 0),2))*.6);line-height:1}';var w=Object.defineProperty,i=(r,a,e,c)=>{for(var t=void 0,l=r.length-1,s;l>=0;l--)(s=r[l])&&(t=s(a,e,t)||t);return t&&w(a,e,t),t};const $=" ";class n extends h.DelegatesAria(p.WithFeedback(f.WithErrorText(k.WithSuccessText(y.FormElement(x.CheckableFormAssociated(o.VividElement)))))){constructor(){super(),this.tabindex=null,this.proxy=document.createElement("input"),this.initialValue="on",this.defaultSlottedNodes=[],this.indeterminate=!1,this.keypressHandler=a=>{if(a.target instanceof HTMLAnchorElement)return!0;if(!this.disabled&&!this.readOnly)switch(a.key){case $:this.indeterminate&&(this.indeterminate=!1),this.checked=!this.checked;break}return!1},this.clickHandler=a=>a.target instanceof HTMLAnchorElement?!0:(!this.disabled&&!this.readOnly&&(this.indeterminate&&(this.indeterminate=!1),this.checked=!this.checked),!1),this.proxy.setAttribute("type","checkbox")}readOnlyChanged(){/* v8 ignore if -- @preserve */this.proxy instanceof HTMLInputElement&&(this.proxy.readOnly=this.readOnly)}ariaCheckedChanged(a,e){super.ariaCheckedChanged(a,e),this.ariaChecked==="mixed"?this.indeterminate=!0:(this.indeterminate=!1,this.checked=this.ariaChecked==="true")}checkedChanged(a,e){super.checkedChanged(a,e),this.ariaChecked=e==!0?"true":"false",a!==void 0&&this.$emit("input")}}i([o.attr({attribute:"tabindex"})],n.prototype,"tabindex");i([o.attr],n.prototype,"connotation");i([o.attr({attribute:"readonly",mode:"boolean"})],n.prototype,"readOnly");i([o.observable],n.prototype,"defaultSlottedNodes");i([o.attr({attribute:"indeterminate",mode:"boolean"})],n.prototype,"indeterminate");i([o.observable],n.prototype,"slottedContent");const q=({connotation:r,readOnly:a,checked:e,disabled:c,indeterminate:t,errorValidationMessage:l,successText:s,label:u,slottedContent:m})=>g.classNames("base",[`connotation-${r}`,!!r],["readonly",!!a],["checked",!!e||!!t],["disabled",!!c],["error connotation-alert",!!l],["success connotation-success",!!s],["hide-label",!u&&!m?.length]),z=r=>{const a=r.tagFor(v.Icon);return o.html`<template>
1
+ "use strict";const v=require("./definition2.cjs"),o=require("./vivid-element.cjs"),p=require("./mixins.cjs"),h=require("./delegates-aria.cjs"),x=require("./form-associated.cjs"),f=require("./with-error-text.cjs"),k=require("./with-success-text.cjs"),y=require("./form-element.cjs"),d=require("./when.cjs"),_=require("./slotted.cjs"),g=require("./class-names.cjs"),C=':host{display:inline-flex;flex-direction:column;gap:4px;vertical-align:middle;--_low-ink-color: var(--vvd-color-neutral-600)}:host([disabled]){cursor:not-allowed}.base.connotation-cta{--_connotation-color-primary: var(--vvd-checkbox-cta-primary, var(--vvd-color-cta-500));--_connotation-color-primary-text: var(--vvd-checkbox-cta-primary-text, var(--vvd-color-canvas));--_connotation-color-primary-increment: var(--vvd-checkbox-cta-primary-increment, var(--vvd-color-cta-600));--_connotation-color-fierce: var(--vvd-checkbox-cta-fierce, var(--vvd-color-cta-700));--_connotation-color-intermediate: var(--vvd-checkbox-cta-intermediate, var(--vvd-color-cta-500));--_connotation-color-firm: var(--vvd-checkbox-cta-firm, var(--vvd-color-cta-600))}.base:not(.connotation-cta){--_connotation-color-primary: var(--vvd-checkbox-accent-primary, var(--vvd-color-canvas-text));--_connotation-color-primary-text: var(--vvd-checkbox-accent-primary-text, var(--vvd-color-canvas));--_connotation-color-primary-increment: var(--vvd-checkbox-accent-primary-increment, var(--vvd-color-neutral-800));--_connotation-color-fierce: var(--vvd-checkbox-accent-fierce, var(--vvd-color-neutral-700));--_connotation-color-intermediate: var(--vvd-checkbox-accent-intermediate, var(--vvd-color-neutral-500));--_connotation-color-firm: var(--vvd-checkbox-accent-firm, var(--vvd-color-canvas-text))}.base{--_appearance-color-text: var(--vvd-color-canvas-text);--_appearance-color-fill: var(--vvd-color-canvas);--_appearance-color-outline: var(--vvd-color-neutral-500)}@media (hover: hover){.base:hover:where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--vvd-color-canvas-text);--_appearance-color-fill: var(--vvd-color-canvas);--_appearance-color-outline: var(--vvd-color-neutral-700)}}.base.hover:where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--vvd-color-canvas-text);--_appearance-color-fill: var(--vvd-color-canvas);--_appearance-color-outline: var(--vvd-color-neutral-700)}.base:checked:where(:not(.disabled,:disabled)){--_appearance-color-text: var(--_connotation-color-primary-text);--_appearance-color-fill: var(--_connotation-color-primary);--_appearance-color-outline: var(--_connotation-color-primary)}.base.checked:where(:not(.disabled,:disabled)){--_appearance-color-text: var(--_connotation-color-primary-text);--_appearance-color-fill: var(--_connotation-color-primary);--_appearance-color-outline: var(--_connotation-color-primary)}@media (hover: hover){.base:checked:hover:where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--_connotation-color-primary-text);--_appearance-color-fill: var(--_connotation-color-primary-increment);--_appearance-color-outline: var(--_connotation-color-primary-increment)}}.base.checked.hover:where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--_connotation-color-primary-text);--_appearance-color-fill: var(--_connotation-color-primary-increment);--_appearance-color-outline: var(--_connotation-color-primary-increment)}.base:disabled{--_appearance-color-text: var(--vvd-color-neutral-300);--_appearance-color-fill: var(--vvd-color-neutral-100);--_appearance-color-outline: var(--vvd-color-neutral-300)}.base.disabled{--_appearance-color-text: var(--vvd-color-neutral-300);--_appearance-color-fill: var(--vvd-color-neutral-100);--_appearance-color-outline: var(--vvd-color-neutral-300)}.base.readonly:where(:not(.disabled,:disabled)){--_appearance-color-text: var(--vvd-color-canvas-text);--_appearance-color-fill: var(--vvd-color-neutral-200);--_appearance-color-outline: var(--vvd-color-neutral-400)}.base{display:inline-flex;align-items:start;gap:8px;vertical-align:middle}.base:focus-visible{outline:none}@supports (user-select: none){.base{user-select:none}}.base:not(.disabled){cursor:pointer}.base.disabled{pointer-events:none}.control{position:relative;display:flex;flex-shrink:0;align-items:center;justify-content:center;border-radius:4px;background-color:var(--_appearance-color-fill);block-size:calc(1px*(20 + 4*clamp(-1,var(--vvd-size-density, 0),2)));box-shadow:inset 0 0 0 2px var(--_appearance-color-outline);color:var(--_appearance-color-text);inline-size:calc(1px*(20 + 4*clamp(-1,var(--vvd-size-density, 0),2)))}.base:focus-visible .control{--focus-stroke-gap-color: transparent}.base:focus-visible .control:after{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));position:absolute;display:block;border-radius:var(--focus-border-radius, inherit);block-size:calc(100% + var(--focus-block-size-addition, 4px));content:"";inline-size:calc(100% + var(--focus-block-size-addition, 4px));inset-block-start:50%;inset-inline-start:50%;transform:translate(-50%,-50%)}.base.error:not(.checked) .control{background-color:var(--vvd-color-canvas);box-shadow:inset 0 0 0 2px var(--vvd-color-alert-500)}.indicator{font-size:calc(1px*(20 + 4*clamp(-1,var(--vvd-size-density, 0),2)) - 4px)}.base:not(.checked) .indicator.checkmark{display:none}.base.checked .indicator.minus,.base:not(.indeterminate) .indicator.minus{display:none}label{display:flex;flex-wrap:wrap;align-items:center;color:var(--vvd-color-canvas-text);column-gap:4px;cursor:pointer;font:var(--vvd-typography-base)}.hide-label label{display:none}.icon{font-size:calc(1px*(20 + 4*clamp(-1,var(--vvd-size-density, 0),2))*.6);line-height:1}';var w=Object.defineProperty,i=(r,a,e,c)=>{for(var t=void 0,l=r.length-1,s;l>=0;l--)(s=r[l])&&(t=s(a,e,t)||t);return t&&w(a,e,t),t};const $=" ";class n extends h.DelegatesAria(p.WithFeedback(f.WithErrorText(k.WithSuccessText(y.FormElement(x.CheckableFormAssociated(o.VividElement)))))){constructor(){super(),this.tabindex=null,this.proxy=document.createElement("input"),this.initialValue="on",this.defaultSlottedNodes=[],this.indeterminate=!1,this.keypressHandler=a=>{if(a.target instanceof HTMLAnchorElement)return!0;if(!this.disabled&&!this.readOnly)switch(a.key){case $:this.indeterminate&&(this.indeterminate=!1),this.checked=!this.checked;break}return!1},this.clickHandler=a=>a.target instanceof HTMLAnchorElement?!0:(!this.disabled&&!this.readOnly&&(this.indeterminate&&(this.indeterminate=!1),this.checked=!this.checked),!1),this.proxy.setAttribute("type","checkbox")}readOnlyChanged(){/* v8 ignore if -- @preserve */this.proxy instanceof HTMLInputElement&&(this.proxy.readOnly=this.readOnly)}ariaCheckedChanged(a,e){super.ariaCheckedChanged(a,e),this.ariaChecked==="mixed"?this.indeterminate=!0:(this.indeterminate=!1,this.checked=this.ariaChecked==="true")}checkedChanged(a,e){super.checkedChanged(a,e),this.ariaChecked=e==!0?"true":"false",a!==void 0&&this.$emit("input")}}i([o.attr({attribute:"tabindex"})],n.prototype,"tabindex");i([o.attr],n.prototype,"connotation");i([o.attr({attribute:"readonly",mode:"boolean"})],n.prototype,"readOnly");i([o.observable],n.prototype,"defaultSlottedNodes");i([o.attr({attribute:"indeterminate",mode:"boolean"})],n.prototype,"indeterminate");i([o.observable],n.prototype,"slottedContent");const q=({connotation:r,readOnly:a,checked:e,disabled:c,indeterminate:t,errorValidationMessage:l,successText:s,label:u,slottedContent:m})=>g.classNames("base",[`connotation-${r}`,!!r],["readonly",!!a],["checked",!!e||!!t],["disabled",!!c],["error connotation-alert",!!l],["success connotation-success",!!s],["hide-label",!u&&!m?.length]),z=r=>{const a=r.tagFor(v.Icon);return o.html`<template>
2
2
  <div
3
3
  class="${q}"
4
4
  aria-describedby="${e=>e._feedbackDescribedBy}"
@@ -9,7 +9,7 @@ import { F as O } from "./form-element.js";
9
9
  import { w as v } from "./when.js";
10
10
  import { s as F } from "./slotted.js";
11
11
  import { c as T } from "./class-names.js";
12
- const B = ':host{display:inline-flex;flex-direction:column;gap:4px;vertical-align:middle;--_low-ink-color: var(--vvd-color-neutral-600)}:host([disabled]){cursor:not-allowed}.base.connotation-cta{--_connotation-color-primary: var(--vvd-checkbox-cta-primary, var(--vvd-color-cta-500));--_connotation-color-primary-text: var(--vvd-checkbox-cta-primary-text, var(--vvd-color-canvas));--_connotation-color-primary-increment: var(--vvd-checkbox-cta-primary-increment, var(--vvd-color-cta-600));--_connotation-color-fierce: var(--vvd-checkbox-cta-fierce, var(--vvd-color-cta-700));--_connotation-color-intermediate: var(--vvd-checkbox-cta-intermediate, var(--vvd-color-cta-500));--_connotation-color-firm: var(--vvd-checkbox-cta-firm, var(--vvd-color-cta-600))}.base:not(.connotation-cta){--_connotation-color-primary: var(--vvd-checkbox-accent-primary, var(--vvd-color-canvas-text));--_connotation-color-primary-text: var(--vvd-checkbox-accent-primary-text, var(--vvd-color-canvas));--_connotation-color-primary-increment: var(--vvd-checkbox-accent-primary-increment, var(--vvd-color-neutral-800));--_connotation-color-fierce: var(--vvd-checkbox-accent-fierce, var(--vvd-color-neutral-700));--_connotation-color-intermediate: var(--vvd-checkbox-accent-intermediate, var(--vvd-color-neutral-500));--_connotation-color-firm: var(--vvd-checkbox-accent-firm, var(--vvd-color-canvas-text))}.base{--_appearance-color-text: var(--vvd-color-canvas-text);--_appearance-color-fill: var(--vvd-color-canvas);--_appearance-color-outline: var(--vvd-color-neutral-500)}@media (hover: hover){.base:hover:where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--vvd-color-canvas-text);--_appearance-color-fill: var(--vvd-color-canvas);--_appearance-color-outline: var(--vvd-color-neutral-700)}}.base.hover:where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--vvd-color-canvas-text);--_appearance-color-fill: var(--vvd-color-canvas);--_appearance-color-outline: var(--vvd-color-neutral-700)}.base:checked:where(:not(.disabled,:disabled)){--_appearance-color-text: var(--_connotation-color-primary-text);--_appearance-color-fill: var(--_connotation-color-primary);--_appearance-color-outline: var(--_connotation-color-primary)}.base.checked:where(:not(.disabled,:disabled)){--_appearance-color-text: var(--_connotation-color-primary-text);--_appearance-color-fill: var(--_connotation-color-primary);--_appearance-color-outline: var(--_connotation-color-primary)}@media (hover: hover){.base:checked:hover:where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--_connotation-color-primary-text);--_appearance-color-fill: var(--_connotation-color-primary-increment);--_appearance-color-outline: var(--_connotation-color-primary-increment)}}.base.checked.hover:where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--_connotation-color-primary-text);--_appearance-color-fill: var(--_connotation-color-primary-increment);--_appearance-color-outline: var(--_connotation-color-primary-increment)}.base:disabled{--_appearance-color-text: var(--vvd-color-neutral-300);--_appearance-color-fill: var(--vvd-color-neutral-100);--_appearance-color-outline: var(--vvd-color-neutral-300)}.base.disabled{--_appearance-color-text: var(--vvd-color-neutral-300);--_appearance-color-fill: var(--vvd-color-neutral-100);--_appearance-color-outline: var(--vvd-color-neutral-300)}.base.readonly:where(:not(.disabled,:disabled)){--_appearance-color-text: var(--vvd-color-canvas-text);--_appearance-color-fill: var(--vvd-color-neutral-200);--_appearance-color-outline: var(--vvd-color-neutral-400)}.base{display:inline-flex;align-items:center;gap:8px;vertical-align:middle}.base:focus-visible{outline:none}@supports (user-select: none){.base{user-select:none}}.base:not(.disabled){cursor:pointer}.base.disabled{pointer-events:none}.control{position:relative;display:flex;flex-shrink:0;align-items:center;justify-content:center;border-radius:4px;background-color:var(--_appearance-color-fill);block-size:calc(1px*(20 + 4*clamp(-1,var(--vvd-size-density, 0),2)));box-shadow:inset 0 0 0 2px var(--_appearance-color-outline);color:var(--_appearance-color-text);inline-size:calc(1px*(20 + 4*clamp(-1,var(--vvd-size-density, 0),2)))}.base:focus-visible .control{--focus-stroke-gap-color: transparent}.base:focus-visible .control:after{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));position:absolute;display:block;border-radius:var(--focus-border-radius, inherit);block-size:calc(100% + var(--focus-block-size-addition, 4px));content:"";inline-size:calc(100% + var(--focus-block-size-addition, 4px));inset-block-start:50%;inset-inline-start:50%;transform:translate(-50%,-50%)}.base.error:not(.checked) .control{background-color:var(--vvd-color-canvas);box-shadow:inset 0 0 0 2px var(--vvd-color-alert-500)}.indicator{font-size:calc(1px*(20 + 4*clamp(-1,var(--vvd-size-density, 0),2)) - 4px)}.base:not(.checked) .indicator.checkmark{display:none}.base.checked .indicator.minus,.base:not(.indeterminate) .indicator.minus{display:none}label{display:flex;flex-wrap:wrap;align-items:center;color:var(--vvd-color-canvas-text);column-gap:4px;cursor:pointer;font:var(--vvd-typography-base)}.hide-label label{display:none}.icon{font-size:calc(1px*(20 + 4*clamp(-1,var(--vvd-size-density, 0),2))*.6);line-height:1}';
12
+ const B = ':host{display:inline-flex;flex-direction:column;gap:4px;vertical-align:middle;--_low-ink-color: var(--vvd-color-neutral-600)}:host([disabled]){cursor:not-allowed}.base.connotation-cta{--_connotation-color-primary: var(--vvd-checkbox-cta-primary, var(--vvd-color-cta-500));--_connotation-color-primary-text: var(--vvd-checkbox-cta-primary-text, var(--vvd-color-canvas));--_connotation-color-primary-increment: var(--vvd-checkbox-cta-primary-increment, var(--vvd-color-cta-600));--_connotation-color-fierce: var(--vvd-checkbox-cta-fierce, var(--vvd-color-cta-700));--_connotation-color-intermediate: var(--vvd-checkbox-cta-intermediate, var(--vvd-color-cta-500));--_connotation-color-firm: var(--vvd-checkbox-cta-firm, var(--vvd-color-cta-600))}.base:not(.connotation-cta){--_connotation-color-primary: var(--vvd-checkbox-accent-primary, var(--vvd-color-canvas-text));--_connotation-color-primary-text: var(--vvd-checkbox-accent-primary-text, var(--vvd-color-canvas));--_connotation-color-primary-increment: var(--vvd-checkbox-accent-primary-increment, var(--vvd-color-neutral-800));--_connotation-color-fierce: var(--vvd-checkbox-accent-fierce, var(--vvd-color-neutral-700));--_connotation-color-intermediate: var(--vvd-checkbox-accent-intermediate, var(--vvd-color-neutral-500));--_connotation-color-firm: var(--vvd-checkbox-accent-firm, var(--vvd-color-canvas-text))}.base{--_appearance-color-text: var(--vvd-color-canvas-text);--_appearance-color-fill: var(--vvd-color-canvas);--_appearance-color-outline: var(--vvd-color-neutral-500)}@media (hover: hover){.base:hover:where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--vvd-color-canvas-text);--_appearance-color-fill: var(--vvd-color-canvas);--_appearance-color-outline: var(--vvd-color-neutral-700)}}.base.hover:where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--vvd-color-canvas-text);--_appearance-color-fill: var(--vvd-color-canvas);--_appearance-color-outline: var(--vvd-color-neutral-700)}.base:checked:where(:not(.disabled,:disabled)){--_appearance-color-text: var(--_connotation-color-primary-text);--_appearance-color-fill: var(--_connotation-color-primary);--_appearance-color-outline: var(--_connotation-color-primary)}.base.checked:where(:not(.disabled,:disabled)){--_appearance-color-text: var(--_connotation-color-primary-text);--_appearance-color-fill: var(--_connotation-color-primary);--_appearance-color-outline: var(--_connotation-color-primary)}@media (hover: hover){.base:checked:hover:where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--_connotation-color-primary-text);--_appearance-color-fill: var(--_connotation-color-primary-increment);--_appearance-color-outline: var(--_connotation-color-primary-increment)}}.base.checked.hover:where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--_connotation-color-primary-text);--_appearance-color-fill: var(--_connotation-color-primary-increment);--_appearance-color-outline: var(--_connotation-color-primary-increment)}.base:disabled{--_appearance-color-text: var(--vvd-color-neutral-300);--_appearance-color-fill: var(--vvd-color-neutral-100);--_appearance-color-outline: var(--vvd-color-neutral-300)}.base.disabled{--_appearance-color-text: var(--vvd-color-neutral-300);--_appearance-color-fill: var(--vvd-color-neutral-100);--_appearance-color-outline: var(--vvd-color-neutral-300)}.base.readonly:where(:not(.disabled,:disabled)){--_appearance-color-text: var(--vvd-color-canvas-text);--_appearance-color-fill: var(--vvd-color-neutral-200);--_appearance-color-outline: var(--vvd-color-neutral-400)}.base{display:inline-flex;align-items:start;gap:8px;vertical-align:middle}.base:focus-visible{outline:none}@supports (user-select: none){.base{user-select:none}}.base:not(.disabled){cursor:pointer}.base.disabled{pointer-events:none}.control{position:relative;display:flex;flex-shrink:0;align-items:center;justify-content:center;border-radius:4px;background-color:var(--_appearance-color-fill);block-size:calc(1px*(20 + 4*clamp(-1,var(--vvd-size-density, 0),2)));box-shadow:inset 0 0 0 2px var(--_appearance-color-outline);color:var(--_appearance-color-text);inline-size:calc(1px*(20 + 4*clamp(-1,var(--vvd-size-density, 0),2)))}.base:focus-visible .control{--focus-stroke-gap-color: transparent}.base:focus-visible .control:after{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));position:absolute;display:block;border-radius:var(--focus-border-radius, inherit);block-size:calc(100% + var(--focus-block-size-addition, 4px));content:"";inline-size:calc(100% + var(--focus-block-size-addition, 4px));inset-block-start:50%;inset-inline-start:50%;transform:translate(-50%,-50%)}.base.error:not(.checked) .control{background-color:var(--vvd-color-canvas);box-shadow:inset 0 0 0 2px var(--vvd-color-alert-500)}.indicator{font-size:calc(1px*(20 + 4*clamp(-1,var(--vvd-size-density, 0),2)) - 4px)}.base:not(.checked) .indicator.checkmark{display:none}.base.checked .indicator.minus,.base:not(.indeterminate) .indicator.minus{display:none}label{display:flex;flex-wrap:wrap;align-items:center;color:var(--vvd-color-canvas-text);column-gap:4px;cursor:pointer;font:var(--vvd-typography-base)}.hide-label label{display:none}.icon{font-size:calc(1px*(20 + 4*clamp(-1,var(--vvd-size-density, 0),2))*.6);line-height:1}';
13
13
  var D = Object.defineProperty, c = (o, a, e, n) => {
14
14
  for (var r = void 0, i = o.length - 1, l; i >= 0; i--)
15
15
  (l = o[i]) && (r = l(a, e, r) || r);
@@ -1 +1 @@
1
- "use strict";const p=require("./definition12.cjs"),o=require("./vivid-element.cjs"),d=require("./key-codes.cjs"),u=require("./strings.cjs");function f(r,e){let t=r.length;for(;t--;)if(e(r[t],t,r))return t;return-1}var x=Object.defineProperty,a=(r,e,t,i)=>{for(var s=void 0,n=r.length-1,c;n>=0;n--)(c=r[n])&&(s=c(e,t,s)||s);return s&&x(e,t,s),s};const l=class h extends o.VividElement{constructor(){super(...arguments),this._options=[],this.selectedIndex=-1,this.selectedOptions=[],this.shouldSkipFocus=!1,this.typeaheadBuffer="",this.typeaheadExpired=!0,this.typeaheadTimeout=-1,this._activeDescendant=null}get firstSelectedOption(){return this.selectedOptions[0]??null}get length(){return this.options.length}get options(){return o.Observable.track(this,"options"),this._options}set options(e){const t=this._options;if(this._options=e,o.Observable.notify(this,"options"),this.$fastController.isConnected){const i=this._newDefaultSelectedIndex(t,e,this.selectedIndex);i!==null&&(this.selectedIndex=i)}}static{this.slottedOptionFilter=e=>p.isListboxOption(e)&&!e.hidden}static{this.TYPE_AHEAD_TIMEOUT_MS=1e3}clickHandler(e){const t=e.target.closest("option,[role=option],[data-vvd-component=option]");if(t&&!t.disabled)return this.selectedIndex=this.options.indexOf(t),!0}focusAndScrollOptionIntoView(e=this.firstSelectedOption){this.contains(document.activeElement)&&e!==null&&(e.focus(),requestAnimationFrame(()=>{e.scrollIntoView({block:"nearest"})}))}focusinHandler(e){!this.shouldSkipFocus&&e.target===e.currentTarget&&(this.setSelectedOptions(),this.focusAndScrollOptionIntoView()),this.shouldSkipFocus=!1}getTypeaheadMatches(){const e=this.typeaheadBuffer.replace(/[.*+\-?^${}()|[\]\\]/g,"\\$&"),t=new RegExp(`^${e}`,"gi");return this.options.filter(i=>i.text.trim().match(t))}getNextSelectableIndex(e){const t=this.options.reduce((i,s,n)=>!i&&!s.disabled&&n>=e?s:i,null);return this.options.indexOf(t)}handleChange(e,t){switch(t){case"selected":{/* v8 ignore else -- @preserve */h.slottedOptionFilter(e)&&(this.selectedIndex=this.options.indexOf(e)),this.setSelectedOptions();break}}}handleTypeAhead(e){/* v8 ignore else -- @preserve */this.typeaheadTimeout&&window.clearTimeout(this.typeaheadTimeout),this.typeaheadTimeout=window.setTimeout(()=>this.typeaheadExpired=!0,h.TYPE_AHEAD_TIMEOUT_MS),this.typeaheadBuffer=`${this.typeaheadExpired?"":this.typeaheadBuffer}${e}`}keydownHandler(e){if(this.disabled)return!0;this.shouldSkipFocus=!1;const t=e.key;switch(t){case d.keyHome:{/* v8 ignore else -- @preserve */e.shiftKey||(e.preventDefault(),this.selectFirstOption());break}case d.keyArrowDown:{/* v8 ignore else -- @preserve */e.shiftKey||(e.preventDefault(),this.selectNextOption());break}case d.keyArrowUp:{/* v8 ignore else -- @preserve */e.shiftKey||(e.preventDefault(),this.selectPreviousOption());break}case d.keyEnd:{e.preventDefault(),this.selectLastOption();break}case d.keyTab:return this.focusAndScrollOptionIntoView(),!0;case d.keyEnter:case d.keyEscape:return!0;case d.keySpace:{/* v8 ignore else -- @preserve */if(this.typeaheadExpired)return!0}default:{/* v8 ignore else -- @preserve */return t.length===1&&this.handleTypeAhead(`${t}`),!0}}}mousedownHandler(e){return this.shouldSkipFocus=!this.contains(document.activeElement),!0}selectedIndexChanged(e,t){const i=this._validSelectedIndex(t);if(t!==i){this.selectedIndex=i;return}this.setSelectedOptions()}_validSelectedIndex(e){return e>this.options.length-1||e<-1?-1:e}selectedOptionsChanged(e,t){const i=t.filter(h.slottedOptionFilter);this.options.forEach(s=>{const n=o.Observable.getNotifier(s);n.unsubscribe(this,"selected"),s.selected=i.includes(s),n.subscribe(this,"selected")})}selectFirstOption(){/* v8 ignore else -- @preserve */this.disabled||(this.selectedIndex=this.options.findIndex(e=>!e.disabled))}selectLastOption(){/* v8 ignore else -- @preserve */this.disabled||(this.selectedIndex=f(this.options,e=>!e.disabled))}selectNextOption(){/* v8 ignore else -- @preserve */!this.disabled&&this.selectedIndex<this.options.length-1&&(this.selectedIndex+=1)}selectPreviousOption(){/* v8 ignore else -- @preserve */!this.disabled&&this.selectedIndex>0&&(this.selectedIndex=this.selectedIndex-1)}_newDefaultSelectedIndex(e,t,i){for(const[s,n]of t.entries())if(this._isDefaultSelected(n)&&!e.includes(n))return s;return null}_isDefaultSelected(e){return e.defaultSelected}setSelectedOptions(){this.selectedOptions=this.selectedIndex!==-1?[this.options[this.selectedIndex]]:[],this._activeDescendant=this.firstSelectedOption?.id??"",this.focusAndScrollOptionIntoView()}slottedOptionsChanged(e,t){this.options=t.reduce((s,n)=>{/* v8 ignore else -- @preserve */return p.isListboxOption(n)&&s.push(n),s},[]);const i=`${this.options.length}`;this.options.forEach((s,n)=>{s.id||(s.id=u.uniqueId("option-")),s.ariaPosInSet=`${n+1}`,s.ariaSetSize=i})}typeaheadBufferChanged(e,t){if(this.$fastController.isConnected){const i=this.getTypeaheadMatches();/* v8 ignore else -- @preserve */if(i.length){const s=this.options.indexOf(i[0]);/* v8 ignore else -- @preserve */s>-1&&(this.selectedIndex=s)}this.typeaheadExpired=!1}}};a([o.attr({mode:"boolean"})],l.prototype,"disabled");a([o.observable],l.prototype,"selectedIndex");a([o.observable],l.prototype,"selectedOptions");a([o.observable],l.prototype,"slottedOptions");a([o.observable],l.prototype,"typeaheadBuffer");a([o.observable],l.prototype,"_activeDescendant");let b=l;exports.Listbox=b;
1
+ "use strict";const p=require("./definition12.cjs"),o=require("./vivid-element.cjs"),d=require("./key-codes.cjs"),u=require("./strings.cjs");function f(r,e){let t=r.length;for(;t--;)if(e(r[t],t,r))return t;return-1}var x=Object.defineProperty,a=(r,e,t,i)=>{for(var s=void 0,n=r.length-1,h;n>=0;n--)(h=r[n])&&(s=h(e,t,s)||s);return s&&x(e,t,s),s};const l=class c extends o.VividElement{constructor(){super(...arguments),this._options=[],this.selectedIndex=-1,this.selectedOptions=[],this.shouldSkipFocus=!1,this.typeaheadBuffer="",this.typeaheadExpired=!0,this.typeaheadTimeout=-1,this._activeDescendant=null}get firstSelectedOption(){return this.selectedOptions[0]??null}get length(){return this.options.length}get options(){return o.Observable.track(this,"options"),this._options}set options(e){const t=this._options;if(this._options=e,o.Observable.notify(this,"options"),this.$fastController.isConnected){const i=this._newDefaultSelectedIndex(t,e,this.selectedIndex);i!==null&&(this.selectedIndex=i)}}static{this.slottedOptionFilter=e=>p.isListboxOption(e)&&!e.hidden}static{this.TYPE_AHEAD_TIMEOUT_MS=1e3}clickHandler(e){const t=e.target.closest("option,[role=option],[data-vvd-component=option]");if(t&&!t.disabled)return this.selectedIndex=this.options.indexOf(t),!0}focusAndScrollOptionIntoView(e=this.firstSelectedOption){this.contains(document.activeElement)&&e!==null&&(e.focus(),requestAnimationFrame(()=>{e.scrollIntoView({block:"nearest"})}))}focusinHandler(e){!this.shouldSkipFocus&&e.target===e.currentTarget&&(this.setSelectedOptions(),this.focusAndScrollOptionIntoView()),this.shouldSkipFocus=!1}getTypeaheadMatches(){const e=this.typeaheadBuffer.replace(/[.*+\-?^${}()|[\]\\]/g,"\\$&"),t=new RegExp(`^${e}`,"gi");return this.options.filter(i=>i.text.trim().match(t))}getNextSelectableIndex(e){const t=this.options.reduce((i,s,n)=>!i&&!s.disabled&&n>=e?s:i,null);return this.options.indexOf(t)}getPreviousSelectableIndex(e){const t=this.options.reduceRight((i,s,n)=>!i&&!s.disabled&&n<=e?s:i,null);return this.options.indexOf(t)}handleChange(e,t){switch(t){case"selected":{/* v8 ignore else -- @preserve */c.slottedOptionFilter(e)&&(this.selectedIndex=this.options.indexOf(e)),this.setSelectedOptions();break}}}handleTypeAhead(e){/* v8 ignore else -- @preserve */this.typeaheadTimeout&&window.clearTimeout(this.typeaheadTimeout),this.typeaheadTimeout=window.setTimeout(()=>this.typeaheadExpired=!0,c.TYPE_AHEAD_TIMEOUT_MS),this.typeaheadBuffer=`${this.typeaheadExpired?"":this.typeaheadBuffer}${e}`}keydownHandler(e){if(this.disabled)return!0;this.shouldSkipFocus=!1;const t=e.key;switch(t){case d.keyHome:{/* v8 ignore else -- @preserve */e.shiftKey||(e.preventDefault(),this.selectFirstOption());break}case d.keyArrowDown:{/* v8 ignore else -- @preserve */e.shiftKey||(e.preventDefault(),this.selectNextOption());break}case d.keyArrowUp:{/* v8 ignore else -- @preserve */e.shiftKey||(e.preventDefault(),this.selectPreviousOption());break}case d.keyEnd:{e.preventDefault(),this.selectLastOption();break}case d.keyTab:return this.focusAndScrollOptionIntoView(),!0;case d.keyEnter:case d.keyEscape:return!0;case d.keySpace:{/* v8 ignore else -- @preserve */if(this.typeaheadExpired)return!0}default:{/* v8 ignore else -- @preserve */return t.length===1&&this.handleTypeAhead(`${t}`),!0}}}mousedownHandler(e){return this.shouldSkipFocus=!this.contains(document.activeElement),!0}selectedIndexChanged(e,t){const i=this._validSelectedIndex(t);if(t!==i){this.selectedIndex=i;return}this.setSelectedOptions()}_validSelectedIndex(e){return e>this.options.length-1||e<-1?-1:e}selectedOptionsChanged(e,t){const i=t.filter(c.slottedOptionFilter);this.options.forEach(s=>{const n=o.Observable.getNotifier(s);n.unsubscribe(this,"selected"),s.selected=i.includes(s),n.subscribe(this,"selected")})}selectFirstOption(){/* v8 ignore else -- @preserve */this.disabled||(this.selectedIndex=this.options.findIndex(e=>!e.disabled))}selectLastOption(){/* v8 ignore else -- @preserve */this.disabled||(this.selectedIndex=f(this.options,e=>!e.disabled))}selectNextOption(){/* v8 ignore else -- @preserve */if(!this.disabled&&this.selectedIndex<this.options.length-1){const e=this.getNextSelectableIndex(this.selectedIndex+1);e!==-1&&(this.selectedIndex=e)}}selectPreviousOption(){/* v8 ignore else -- @preserve */if(!this.disabled&&this.selectedIndex>0){const e=this.getPreviousSelectableIndex(this.selectedIndex-1);e!==-1&&(this.selectedIndex=e)}}_newDefaultSelectedIndex(e,t,i){for(const[s,n]of t.entries())if(this._isDefaultSelected(n)&&!e.includes(n))return s;return null}_isDefaultSelected(e){return e.defaultSelected}setSelectedOptions(){this.selectedOptions=this.selectedIndex!==-1?[this.options[this.selectedIndex]]:[],this._activeDescendant=this.firstSelectedOption?.id??"",this.focusAndScrollOptionIntoView()}slottedOptionsChanged(e,t){this.options=t.reduce((s,n)=>{/* v8 ignore else -- @preserve */return p.isListboxOption(n)&&s.push(n),s},[]);const i=`${this.options.length}`;this.options.forEach((s,n)=>{s.id||(s.id=u.uniqueId("option-")),s.ariaPosInSet=`${n+1}`,s.ariaSetSize=i})}typeaheadBufferChanged(e,t){if(this.$fastController.isConnected){const i=this.getTypeaheadMatches();/* v8 ignore else -- @preserve */if(i.length){const s=this.options.indexOf(i[0]);/* v8 ignore else -- @preserve */s>-1&&(this.selectedIndex=s)}this.typeaheadExpired=!1}}};a([o.attr({mode:"boolean"})],l.prototype,"disabled");a([o.observable],l.prototype,"selectedIndex");a([o.observable],l.prototype,"selectedOptions");a([o.observable],l.prototype,"slottedOptions");a([o.observable],l.prototype,"typeaheadBuffer");a([o.observable],l.prototype,"_activeDescendant");let b=l;exports.Listbox=b;
@@ -1,20 +1,20 @@
1
1
  import { i as p } from "./definition12.js";
2
- import { V as u, O as h, a as f, o as a } from "./vivid-element.js";
3
- import { l as x, d as O, f as y, m as I, k as b, c as S, b as g, a as m } from "./key-codes.js";
4
- import { u as _ } from "./strings.js";
5
- function k(d, e) {
2
+ import { V as u, O as h, a as f, o as r } from "./vivid-element.js";
3
+ import { l as x, d as I, f as O, m as y, k as b, c as S, b as g, a as v } from "./key-codes.js";
4
+ import { u as m } from "./strings.js";
5
+ function _(d, e) {
6
6
  let t = d.length;
7
7
  for (; t--; )
8
8
  if (e(d[t], t, d))
9
9
  return t;
10
10
  return -1;
11
11
  }
12
- var v = Object.defineProperty, l = (d, e, t, i) => {
12
+ var k = Object.defineProperty, l = (d, e, t, i) => {
13
13
  for (var s = void 0, n = d.length - 1, c; n >= 0; n--)
14
14
  (c = d[n]) && (s = c(e, t, s) || s);
15
- return s && v(e, t, s), s;
15
+ return s && k(e, t, s), s;
16
16
  };
17
- const o = class r extends u {
17
+ const o = class a extends u {
18
18
  constructor() {
19
19
  super(...arguments), this._options = [], this.selectedIndex = -1, this.selectedOptions = [], this.shouldSkipFocus = !1, this.typeaheadBuffer = "", this.typeaheadExpired = !0, this.typeaheadTimeout = -1, this._activeDescendant = null;
20
20
  }
@@ -104,6 +104,13 @@ const o = class r extends u {
104
104
  ), t = new RegExp(`^${e}`, "gi");
105
105
  return this.options.filter((i) => i.text.trim().match(t));
106
106
  }
107
+ /**
108
+ * Finds the index of the next non-disabled option starting from the given index.
109
+ *
110
+ * @param fromIndex - The index to start searching from (inclusive)
111
+ * @returns The index of the next selectable option, or -1 if none found
112
+ * @internal
113
+ */
107
114
  getNextSelectableIndex(e) {
108
115
  const t = this.options.reduce(
109
116
  (i, s, n) => !i && !s.disabled && n >= e ? s : i,
@@ -111,6 +118,20 @@ const o = class r extends u {
111
118
  );
112
119
  return this.options.indexOf(t);
113
120
  }
121
+ /**
122
+ * Finds the index of the previous non-disabled option starting from the given index.
123
+ *
124
+ * @param fromIndex - The index to start searching from (inclusive)
125
+ * @returns The index of the previous selectable option, or -1 if none found
126
+ * @internal
127
+ */
128
+ getPreviousSelectableIndex(e) {
129
+ const t = this.options.reduceRight(
130
+ (i, s, n) => !i && !s.disabled && n <= e ? s : i,
131
+ null
132
+ );
133
+ return this.options.indexOf(t);
134
+ }
114
135
  /**
115
136
  * Handles external changes to child options.
116
137
  *
@@ -123,7 +144,7 @@ const o = class r extends u {
123
144
  switch (t) {
124
145
  case "selected": {
125
146
  /* v8 ignore else -- @preserve */
126
- r.slottedOptionFilter(e) && (this.selectedIndex = this.options.indexOf(e)), this.setSelectedOptions();
147
+ a.slottedOptionFilter(e) && (this.selectedIndex = this.options.indexOf(e)), this.setSelectedOptions();
127
148
  break;
128
149
  }
129
150
  }
@@ -142,7 +163,7 @@ const o = class r extends u {
142
163
  /* v8 ignore else -- @preserve */
143
164
  this.typeaheadTimeout && window.clearTimeout(this.typeaheadTimeout), this.typeaheadTimeout = window.setTimeout(
144
165
  () => this.typeaheadExpired = !0,
145
- r.TYPE_AHEAD_TIMEOUT_MS
166
+ a.TYPE_AHEAD_TIMEOUT_MS
146
167
  ), this.typeaheadBuffer = `${this.typeaheadExpired ? "" : this.typeaheadBuffer}${e}`;
147
168
  }
148
169
  /**
@@ -156,7 +177,7 @@ const o = class r extends u {
156
177
  this.shouldSkipFocus = !1;
157
178
  const t = e.key;
158
179
  switch (t) {
159
- case m: {
180
+ case v: {
160
181
  /* v8 ignore else -- @preserve */
161
182
  e.shiftKey || (e.preventDefault(), this.selectFirstOption());
162
183
  break;
@@ -175,10 +196,10 @@ const o = class r extends u {
175
196
  e.preventDefault(), this.selectLastOption();
176
197
  break;
177
198
  }
178
- case I:
179
- return this.focusAndScrollOptionIntoView(), !0;
180
199
  case y:
200
+ return this.focusAndScrollOptionIntoView(), !0;
181
201
  case O:
202
+ case I:
182
203
  return !0;
183
204
  case x: {
184
205
  /* v8 ignore else -- @preserve */
@@ -225,7 +246,7 @@ const o = class r extends u {
225
246
  * @internal
226
247
  */
227
248
  selectedOptionsChanged(e, t) {
228
- const i = t.filter(r.slottedOptionFilter);
249
+ const i = t.filter(a.slottedOptionFilter);
229
250
  this.options.forEach((s) => {
230
251
  const n = h.getNotifier(s);
231
252
  n.unsubscribe(this, "selected"), s.selected = i.includes(s), n.subscribe(this, "selected");
@@ -247,7 +268,7 @@ const o = class r extends u {
247
268
  */
248
269
  selectLastOption() {
249
270
  /* v8 ignore else -- @preserve */
250
- this.disabled || (this.selectedIndex = k(this.options, (e) => !e.disabled));
271
+ this.disabled || (this.selectedIndex = _(this.options, (e) => !e.disabled));
251
272
  }
252
273
  /**
253
274
  * Moves focus to the next selectable option.
@@ -256,7 +277,10 @@ const o = class r extends u {
256
277
  */
257
278
  selectNextOption() {
258
279
  /* v8 ignore else -- @preserve */
259
- !this.disabled && this.selectedIndex < this.options.length - 1 && (this.selectedIndex += 1);
280
+ if (!this.disabled && this.selectedIndex < this.options.length - 1) {
281
+ const e = this.getNextSelectableIndex(this.selectedIndex + 1);
282
+ e !== -1 && (this.selectedIndex = e);
283
+ }
260
284
  }
261
285
  /**
262
286
  * Moves focus to the previous selectable option.
@@ -265,7 +289,10 @@ const o = class r extends u {
265
289
  */
266
290
  selectPreviousOption() {
267
291
  /* v8 ignore else -- @preserve */
268
- !this.disabled && this.selectedIndex > 0 && (this.selectedIndex = this.selectedIndex - 1);
292
+ if (!this.disabled && this.selectedIndex > 0) {
293
+ const e = this.getPreviousSelectableIndex(this.selectedIndex - 1);
294
+ e !== -1 && (this.selectedIndex = e);
295
+ }
269
296
  }
270
297
  /// For this options change, determine if selectedIndex should change based on defaultSelected. Otherwise, returns null.
271
298
  _newDefaultSelectedIndex(e, t, i) {
@@ -298,7 +325,7 @@ const o = class r extends u {
298
325
  }, []);
299
326
  const i = `${this.options.length}`;
300
327
  this.options.forEach((s, n) => {
301
- s.id || (s.id = _("option-")), s.ariaPosInSet = `${n + 1}`, s.ariaSetSize = i;
328
+ s.id || (s.id = m("option-")), s.ariaPosInSet = `${n + 1}`, s.ariaSetSize = i;
302
329
  });
303
330
  }
304
331
  /**
@@ -323,19 +350,19 @@ l([
323
350
  f({ mode: "boolean" })
324
351
  ], o.prototype, "disabled");
325
352
  l([
326
- a
353
+ r
327
354
  ], o.prototype, "selectedIndex");
328
355
  l([
329
- a
356
+ r
330
357
  ], o.prototype, "selectedOptions");
331
358
  l([
332
- a
359
+ r
333
360
  ], o.prototype, "slottedOptions");
334
361
  l([
335
- a
362
+ r
336
363
  ], o.prototype, "typeaheadBuffer");
337
364
  l([
338
- a
365
+ r
339
366
  ], o.prototype, "_activeDescendant");
340
367
  let A = o;
341
368
  export {