@aurodesignsystem/auro-formkit 5.8.1 → 5.9.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 (50) hide show
  1. package/CHANGELOG.md +7 -15
  2. package/components/checkbox/demo/api.min.js +1 -1
  3. package/components/checkbox/demo/index.min.js +1 -1
  4. package/components/checkbox/dist/index.js +1 -1
  5. package/components/checkbox/dist/registered.js +1 -1
  6. package/components/combobox/demo/api.md +7 -6
  7. package/components/combobox/demo/api.min.js +1651 -987
  8. package/components/combobox/demo/index.min.js +1651 -987
  9. package/components/combobox/dist/auro-combobox.d.ts +9 -8
  10. package/components/combobox/dist/index.js +86 -85
  11. package/components/combobox/dist/registered.js +86 -85
  12. package/components/counter/demo/api.min.js +2 -2
  13. package/components/counter/demo/index.min.js +2 -2
  14. package/components/counter/dist/index.js +2 -2
  15. package/components/counter/dist/registered.js +2 -2
  16. package/components/datepicker/demo/api.min.js +4 -3
  17. package/components/datepicker/demo/index.min.js +4 -3
  18. package/components/datepicker/dist/index.js +4 -3
  19. package/components/datepicker/dist/registered.js +4 -3
  20. package/components/dropdown/demo/api.min.js +1 -1
  21. package/components/dropdown/demo/index.min.js +1 -1
  22. package/components/dropdown/dist/index.js +1 -1
  23. package/components/dropdown/dist/registered.js +1 -1
  24. package/components/input/demo/api.min.js +2 -1
  25. package/components/input/demo/index.min.js +2 -1
  26. package/components/input/dist/index.js +2 -1
  27. package/components/input/dist/registered.js +2 -1
  28. package/components/menu/demo/api.js +4 -0
  29. package/components/menu/demo/api.md +271 -26
  30. package/components/menu/demo/api.min.js +1591 -863
  31. package/components/menu/demo/index.html +1 -0
  32. package/components/menu/demo/index.js +2 -0
  33. package/components/menu/demo/index.md +95 -1
  34. package/components/menu/demo/index.min.js +1524 -810
  35. package/components/menu/dist/auro-menu.context.d.ts +222 -0
  36. package/components/menu/dist/auro-menu.d.ts +93 -53
  37. package/components/menu/dist/auro-menuoption.d.ts +115 -13
  38. package/components/menu/dist/index.js +1441 -798
  39. package/components/menu/dist/registered.js +1440 -809
  40. package/components/radio/demo/api.min.js +1 -1
  41. package/components/radio/demo/index.min.js +1 -1
  42. package/components/radio/dist/index.js +1 -1
  43. package/components/radio/dist/registered.js +1 -1
  44. package/components/select/demo/api.md +8 -7
  45. package/components/select/demo/api.min.js +1573 -1006
  46. package/components/select/demo/index.min.js +1573 -1006
  47. package/components/select/dist/auro-select.d.ts +11 -35
  48. package/components/select/dist/index.js +64 -160
  49. package/components/select/dist/registered.js +64 -160
  50. package/package.json +2 -1
@@ -11343,7 +11343,7 @@ class AuroBibtemplate extends LitElement {
11343
11343
  }
11344
11344
  }
11345
11345
 
11346
- var formkitVersion$2 = '202511110110';
11346
+ var formkitVersion$2 = '202511191711';
11347
11347
 
11348
11348
  let l$1 = class l{generateElementName(t,e){let o=t;return o+="-",o+=e.replace(/[.]/g,"_"),o}generateTag(o,s,a){const r=this.generateElementName(o,s),i=literal`${unsafeStatic(r)}`;return customElements.get(r)||customElements.define(r,class extends a{}),i}};let d$1 = class d{registerComponent(t,e){customElements.get(t)||customElements.define(t,class extends e{});}closestElement(t,e=this,o=(e,s=e&&e.closest(t))=>e&&e!==document&&e!==window?s||o(e.getRootNode().host):null){return o(e)}handleComponentTagRename(t,e){const o=e.toLowerCase();t.tagName.toLowerCase()!==o&&t.setAttribute(o,true);}elementMatch(t,e){const o=e.toLowerCase();return t.tagName.toLowerCase()===o||t.hasAttribute(o)}getSlotText(t,e){const o=t.shadowRoot?.querySelector(`slot[name="${e}"]`);return (o?.assignedNodes({flatten:true})||[]).map(t=>t.textContent?.trim()).join(" ").trim()||null}};let h$1 = class h{registerComponent(t,e){customElements.get(t)||customElements.define(t,class extends e{});}closestElement(t,e=this,o=(e,s=e&&e.closest(t))=>e&&e!==document&&e!==window?s||o(e.getRootNode().host):null){return o(e)}handleComponentTagRename(t,e){const o=e.toLowerCase();t.tagName.toLowerCase()!==o&&t.setAttribute(o,true);}elementMatch(t,e){const o=e.toLowerCase();return t.tagName.toLowerCase()===o||t.hasAttribute(o)}};var c$1=css`:host{color:var(--ds-auro-loader-color)}:host>span{background-color:var(--ds-auro-loader-background-color);border-color:var(--ds-auro-loader-border-color)}:host([onlight]){--ds-auro-loader-color: var(--ds-basic-color-brand-primary, #01426a)}:host([ondark]){--ds-auro-loader-color: var(--ds-basic-color-texticon-inverse, #ffffff)}:host([orbit])>span{--ds-auro-loader-background-color: transparent}:host([orbit])>span:nth-child(1){--ds-auro-loader-border-color: currentcolor;opacity:.25}:host([orbit])>span:nth-child(2){--ds-auro-loader-border-color: currentcolor;border-right-color:transparent;border-bottom-color:transparent;border-left-color:transparent}
11349
11349
  `,u$4=css`.body-default{font-size:var(--wcss-body-default-font-size, 1rem);line-height:var(--wcss-body-default-line-height, 1.5rem)}.body-default,.body-lg{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-weight, 450);letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-lg{font-size:var(--wcss-body-lg-font-size, 1.125rem);line-height:var(--wcss-body-lg-line-height, 1.625rem)}.body-sm{font-size:var(--wcss-body-sm-font-size, .875rem);line-height:var(--wcss-body-sm-line-height, 1.25rem)}.body-sm,.body-xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-weight, 450);letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-xs{font-size:var(--wcss-body-xs-font-size, .75rem);line-height:var(--wcss-body-xs-line-height, 1rem)}.body-2xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-size:var(--wcss-body-2xs-font-size, .625rem);font-weight:var(--wcss-body-weight, 450);letter-spacing:var(--wcss-body-letter-spacing, 0);line-height:var(--wcss-body-2xs-line-height, .875rem)}.display-2xl{font-family:var(--wcss-display-2xl-family, "AS Circular"),var(--wcss-display-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-2xl-font-size, clamp(3.5rem, 6vw, 5.375rem));font-weight:var(--wcss-display-2xl-weight, 300);letter-spacing:var(--wcss-display-2xl-letter-spacing, 0);line-height:var(--wcss-display-2xl-line-height, 1.3)}.display-xl{font-family:var(--wcss-display-xl-family, "AS Circular"),var(--wcss-display-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-xl-font-size, clamp(3rem, 5.3333333333vw, 4.5rem));font-weight:var(--wcss-display-xl-weight, 300);letter-spacing:var(--wcss-display-xl-letter-spacing, 0);line-height:var(--wcss-display-xl-line-height, 1.3)}.display-lg{font-family:var(--wcss-display-lg-family, "AS Circular"),var(--wcss-display-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-lg-font-size, clamp(2.75rem, 4.6666666667vw, 4rem));font-weight:var(--wcss-display-lg-weight, 300);letter-spacing:var(--wcss-display-lg-letter-spacing, 0);line-height:var(--wcss-display-lg-line-height, 1.3)}.display-md{font-family:var(--wcss-display-md-family, "AS Circular"),var(--wcss-display-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-md-font-size, clamp(2.5rem, 4vw, 3.5rem));font-weight:var(--wcss-display-md-weight, 300);letter-spacing:var(--wcss-display-md-letter-spacing, 0);line-height:var(--wcss-display-md-line-height, 1.3)}.display-sm{font-family:var(--wcss-display-sm-family, "AS Circular"),var(--wcss-display-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-sm-font-size, clamp(2rem, 3.6666666667vw, 3rem));font-weight:var(--wcss-display-sm-weight, 300);letter-spacing:var(--wcss-display-sm-letter-spacing, 0);line-height:var(--wcss-display-sm-line-height, 1.3)}.display-xs{font-family:var(--wcss-display-xs-family, "AS Circular"),var(--wcss-display-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-xs-font-size, clamp(1.75rem, 3vw, 2.375rem));font-weight:var(--wcss-display-xs-weight, 300);letter-spacing:var(--wcss-display-xs-letter-spacing, 0);line-height:var(--wcss-display-xs-line-height, 1.3)}.heading-xl{font-family:var(--wcss-heading-xl-family, "AS Circular"),var(--wcss-heading-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-xl-font-size, clamp(2rem, 3vw, 2.5rem));font-weight:var(--wcss-heading-xl-weight, 300);letter-spacing:var(--wcss-heading-xl-letter-spacing, 0);line-height:var(--wcss-heading-xl-line-height, 1.3)}.heading-lg{font-family:var(--wcss-heading-lg-family, "AS Circular"),var(--wcss-heading-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-lg-font-size, clamp(1.75rem, 2.6666666667vw, 2.25rem));font-weight:var(--wcss-heading-lg-weight, 300);letter-spacing:var(--wcss-heading-lg-letter-spacing, 0);line-height:var(--wcss-heading-lg-line-height, 1.3)}.heading-md{font-family:var(--wcss-heading-md-family, "AS Circular"),var(--wcss-heading-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-md-font-size, clamp(1.625rem, 2.3333333333vw, 1.75rem));font-weight:var(--wcss-heading-md-weight, 300);letter-spacing:var(--wcss-heading-md-letter-spacing, 0);line-height:var(--wcss-heading-md-line-height, 1.3)}.heading-sm{font-family:var(--wcss-heading-sm-family, "AS Circular"),var(--wcss-heading-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-sm-font-size, clamp(1.375rem, 2vw, 1.5rem));font-weight:var(--wcss-heading-sm-weight, 300);letter-spacing:var(--wcss-heading-sm-letter-spacing, 0);line-height:var(--wcss-heading-sm-line-height, 1.3)}.heading-xs{font-family:var(--wcss-heading-xs-family, "AS Circular"),var(--wcss-heading-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-xs-font-size, clamp(1.25rem, 1.6666666667vw, 1.25rem));font-weight:var(--wcss-heading-xs-weight, 450);letter-spacing:var(--wcss-heading-xs-letter-spacing, 0);line-height:var(--wcss-heading-xs-line-height, 1.3)}.heading-2xs{font-family:var(--wcss-heading-2xs-family, "AS Circular"),var(--wcss-heading-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-2xs-font-size, clamp(1.125rem, 1.5vw, 1.125rem));font-weight:var(--wcss-heading-2xs-weight, 450);letter-spacing:var(--wcss-heading-2xs-letter-spacing, 0);line-height:var(--wcss-heading-2xs-line-height, 1.3)}.accent-2xl{font-family:var(--wcss-accent-2xl-family, "Good OT"),var(--wcss-accent-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-2xl-font-size, clamp(2rem, 3.1666666667vw, 2.375rem));font-weight:var(--wcss-accent-2xl-weight, 450);letter-spacing:var(--wcss-accent-2xl-letter-spacing, .05em);line-height:var(--wcss-accent-2xl-line-height, 1)}.accent-2xl,.accent-xl{text-transform:uppercase}.accent-xl{font-family:var(--wcss-accent-xl-family, "Good OT"),var(--wcss-accent-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-xl-font-size, clamp(1.625rem, 2.3333333333vw, 2rem));font-weight:var(--wcss-accent-xl-weight, 450);letter-spacing:var(--wcss-accent-xl-letter-spacing, .05em);line-height:var(--wcss-accent-xl-line-height, 1.3)}.accent-lg{font-family:var(--wcss-accent-lg-family, "Good OT"),var(--wcss-accent-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-lg-font-size, clamp(1.5rem, 2.1666666667vw, 1.75rem));font-weight:var(--wcss-accent-lg-weight, 450);letter-spacing:var(--wcss-accent-lg-letter-spacing, .05em);line-height:var(--wcss-accent-lg-line-height, 1.3)}.accent-lg,.accent-md{text-transform:uppercase}.accent-md{font-family:var(--wcss-accent-md-family, "Good OT"),var(--wcss-accent-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-md-font-size, clamp(1.375rem, 1.8333333333vw, 1.5rem));font-weight:var(--wcss-accent-md-weight, 500);letter-spacing:var(--wcss-accent-md-letter-spacing, .05em);line-height:var(--wcss-accent-md-line-height, 1.3)}.accent-sm{font-family:var(--wcss-accent-sm-family, "Good OT"),var(--wcss-accent-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-sm-font-size, clamp(1.125rem, 1.5vw, 1.25rem));font-weight:var(--wcss-accent-sm-weight, 500);letter-spacing:var(--wcss-accent-sm-letter-spacing, .05em);line-height:var(--wcss-accent-sm-line-height, 1.3)}.accent-sm,.accent-xs{text-transform:uppercase}.accent-xs{font-family:var(--wcss-accent-xs-family, "Good OT"),var(--wcss-accent-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-xs-font-size, clamp(1rem, 1.3333333333vw, 1rem));font-weight:var(--wcss-accent-xs-weight, 500);letter-spacing:var(--wcss-accent-xs-letter-spacing, .1em);line-height:var(--wcss-accent-xs-line-height, 1.3)}.accent-2xs{font-family:var(--wcss-accent-2xs-family, "Good OT"),var(--wcss-accent-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-2xs-font-size, clamp(.875rem, 1.1666666667vw, .875rem));font-weight:var(--wcss-accent-2xs-weight, 450);letter-spacing:var(--wcss-accent-2xs-letter-spacing, .1em);line-height:var(--wcss-accent-2xs-line-height, 1.3);text-transform:uppercase}:focus:not(:focus-visible){outline:3px solid transparent}:host,:host>span{position:relative}:host{width:2rem;height:2rem;display:inline-block;font-size:0}:host>span{position:absolute;display:inline-block;float:none;top:0;left:0;width:2rem;height:2rem;border-radius:100%;border-style:solid;border-width:0}:host([xs]),:host([xs])>span{width:1.2rem;height:1.2rem}:host([sm]),:host([sm])>span{width:3rem;height:3rem}:host([md]),:host([md])>span{width:5rem;height:5rem}:host([lg]),:host([lg])>span{width:8rem;height:8rem}:host{--margin: .375rem;--margin-xs: .2rem;--margin-sm: .5rem;--margin-md: .75rem;--margin-lg: 1rem}:host([pulse]),:host([pulse])>span{position:relative}:host([pulse]){width:calc(3rem + var(--margin) * 6);height:1.5rem}:host([pulse])>span{width:1rem;height:1rem;margin:var(--margin);animation:pulse 1.5s ease infinite}:host([pulse][xs]){width:calc(2.55rem + var(--margin-xs) * 6);height:1.55rem}:host([pulse][xs])>span{margin:var(--margin-xs);width:.65rem;height:.65rem}:host([pulse][sm]){width:calc(6rem + var(--margin-sm) * 6);height:2.5rem}:host([pulse][sm])>span{margin:var(--margin-sm);width:2rem;height:2rem}:host([pulse][md]){width:calc(9rem + var(--margin-md) * 6);height:3.5rem}:host([pulse][md])>span{margin:var(--margin-md);width:3rem;height:3rem}:host([pulse][lg]){width:calc(15rem + var(--margin-lg) * 6);height:5.5rem}:host([pulse][lg])>span{margin:var(--margin-lg);width:5rem;height:5rem}:host([pulse])>span:nth-child(1){animation-delay:-.4s}:host([pulse])>span:nth-child(2){animation-delay:-.2s}:host([pulse])>span:nth-child(3){animation-delay:0ms}@keyframes pulse{0%,to{opacity:.1;transform:scale(.9)}50%{opacity:1;transform:scale(1.1)}}:host([orbit]),:host([orbit])>span{opacity:1}:host([orbit])>span{border-width:5px}:host([orbit])>span:nth-child(2){animation:orbit 2s linear infinite}:host([orbit][sm])>span{border-width:8px}:host([orbit][md])>span{border-width:13px}:host([orbit][lg])>span{border-width:21px}@keyframes orbit{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host([ringworm])>svg{animation:rotate 2s linear infinite;height:100%;width:100%;stroke:currentcolor;stroke-width:8}:host([ringworm]) .path{stroke-dashoffset:0;animation:ringworm 1.5s ease-in-out infinite;stroke-linecap:round}@keyframes rotate{to{transform:rotate(360deg)}}@keyframes ringworm{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:89,200;stroke-dashoffset:-35px}to{stroke-dasharray:89,200;stroke-dashoffset:-124px}}:host([laser]){position:static;width:100%;display:block;height:0;overflow:hidden;font-size:unset}:host([laser])>span{position:fixed;width:100%;height:.25rem;border-radius:0;z-index:100}:host([laser])>span:nth-child(1){border-color:currentcolor;opacity:.25}:host([laser])>span:nth-child(2){border-color:currentcolor;animation:laser 2s linear infinite;opacity:1;width:50%}:host([laser][sm])>span:nth-child(2){width:20%}:host([laser][md])>span:nth-child(2){width:30%}:host([laser][lg])>span:nth-child(2){width:50%;animation-duration:1.5s}:host([laser][xl])>span:nth-child(2){width:80%;animation-duration:1.5s}@keyframes laser{0%{left:-100%}to{left:110%}}:host>.no-animation{display:none}@media (prefers-reduced-motion: reduce){:host{display:flex;align-items:center;justify-content:center}:host>span{opacity:1}:host>.loader{display:none}:host>svg{display:none}:host>.no-animation{display:block}}
@@ -14884,7 +14884,7 @@ let AuroHelpText$2 = class AuroHelpText extends LitElement {
14884
14884
  }
14885
14885
  };
14886
14886
 
14887
- var formkitVersion$1 = '202511110110';
14887
+ var formkitVersion$1 = '202511191711';
14888
14888
 
14889
14889
  let AuroElement$2 = class AuroElement extends LitElement {
14890
14890
  static get properties() {
@@ -21572,6 +21572,7 @@ class BaseInput extends AuroElement$1 {
21572
21572
  const inputEvent = new InputEvent('input', {
21573
21573
  bubbles: true,
21574
21574
  composed: true,
21575
+ cancelable: false
21575
21576
  });
21576
21577
  inputEvent.isProgrammatic = true;
21577
21578
  this.dispatchEvent(inputEvent);
@@ -22501,7 +22502,7 @@ let AuroHelpText$1 = class AuroHelpText extends LitElement {
22501
22502
  }
22502
22503
  };
22503
22504
 
22504
- var formkitVersion = '202511110110';
22505
+ var formkitVersion = '202511191711';
22505
22506
 
22506
22507
  // Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
22507
22508
  // See LICENSE in the project root for license information.
@@ -3207,7 +3207,7 @@ class AuroHelpText extends i {
3207
3207
  }
3208
3208
  }
3209
3209
 
3210
- var formkitVersion = '202511110110';
3210
+ var formkitVersion = '202511191711';
3211
3211
 
3212
3212
  class AuroElement extends i {
3213
3213
  static get properties() {
@@ -3182,7 +3182,7 @@ class AuroHelpText extends i {
3182
3182
  }
3183
3183
  }
3184
3184
 
3185
- var formkitVersion = '202511110110';
3185
+ var formkitVersion = '202511191711';
3186
3186
 
3187
3187
  class AuroElement extends i {
3188
3188
  static get properties() {
@@ -3118,7 +3118,7 @@ class AuroHelpText extends LitElement {
3118
3118
  }
3119
3119
  }
3120
3120
 
3121
- var formkitVersion = '202511110110';
3121
+ var formkitVersion = '202511191711';
3122
3122
 
3123
3123
  class AuroElement extends LitElement {
3124
3124
  static get properties() {
@@ -3118,7 +3118,7 @@ class AuroHelpText extends LitElement {
3118
3118
  }
3119
3119
  }
3120
3120
 
3121
- var formkitVersion = '202511110110';
3121
+ var formkitVersion = '202511191711';
3122
3122
 
3123
3123
  class AuroElement extends LitElement {
3124
3124
  static get properties() {
@@ -5800,6 +5800,7 @@ class BaseInput extends AuroElement {
5800
5800
  const inputEvent = new InputEvent('input', {
5801
5801
  bubbles: true,
5802
5802
  composed: true,
5803
+ cancelable: false
5803
5804
  });
5804
5805
  inputEvent.isProgrammatic = true;
5805
5806
  this.dispatchEvent(inputEvent);
@@ -6729,7 +6730,7 @@ class AuroHelpText extends i$2 {
6729
6730
  }
6730
6731
  }
6731
6732
 
6732
- var formkitVersion = '202511110110';
6733
+ var formkitVersion = '202511191711';
6733
6734
 
6734
6735
  // Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
6735
6736
  // See LICENSE in the project root for license information.
@@ -5725,6 +5725,7 @@ class BaseInput extends AuroElement {
5725
5725
  const inputEvent = new InputEvent('input', {
5726
5726
  bubbles: true,
5727
5727
  composed: true,
5728
+ cancelable: false
5728
5729
  });
5729
5730
  inputEvent.isProgrammatic = true;
5730
5731
  this.dispatchEvent(inputEvent);
@@ -6654,7 +6655,7 @@ class AuroHelpText extends i$2 {
6654
6655
  }
6655
6656
  }
6656
6657
 
6657
- var formkitVersion = '202511110110';
6658
+ var formkitVersion = '202511191711';
6658
6659
 
6659
6660
  // Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
6660
6661
  // See LICENSE in the project root for license information.
@@ -5649,6 +5649,7 @@ class BaseInput extends AuroElement {
5649
5649
  const inputEvent = new InputEvent('input', {
5650
5650
  bubbles: true,
5651
5651
  composed: true,
5652
+ cancelable: false
5652
5653
  });
5653
5654
  inputEvent.isProgrammatic = true;
5654
5655
  this.dispatchEvent(inputEvent);
@@ -6578,7 +6579,7 @@ class AuroHelpText extends LitElement {
6578
6579
  }
6579
6580
  }
6580
6581
 
6581
- var formkitVersion = '202511110110';
6582
+ var formkitVersion = '202511191711';
6582
6583
 
6583
6584
  // Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
6584
6585
  // See LICENSE in the project root for license information.
@@ -5649,6 +5649,7 @@ class BaseInput extends AuroElement {
5649
5649
  const inputEvent = new InputEvent('input', {
5650
5650
  bubbles: true,
5651
5651
  composed: true,
5652
+ cancelable: false
5652
5653
  });
5653
5654
  inputEvent.isProgrammatic = true;
5654
5655
  this.dispatchEvent(inputEvent);
@@ -6578,7 +6579,7 @@ class AuroHelpText extends LitElement {
6578
6579
  }
6579
6580
  }
6580
6581
 
6581
- var formkitVersion = '202511110110';
6582
+ var formkitVersion = '202511191711';
6582
6583
 
6583
6584
  // Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
6584
6585
  // See LICENSE in the project root for license information.
@@ -4,6 +4,8 @@ import { auroMenuResetExample } from '../apiExamples/reset';
4
4
  import { auroMenuMatchWordExample } from '../apiExamples/matchWord';
5
5
  import { auroMenuCustomEventExample } from '../apiExamples/customEvent';
6
6
  import { auroMenuLoadingExample } from '../apiExamples/loading';
7
+ import { initSelectAllMatchingOptionsExample } from '../apiExamples/selectAllMatchingOptions.js';
8
+ import { initKeysExample } from '../apiExamples/keys.js';
7
9
  import '../src/registered.js';
8
10
 
9
11
  export function initExamples(initCount) {
@@ -15,6 +17,8 @@ export function initExamples(initCount) {
15
17
  auroMenuMatchWordExample();
16
18
  auroMenuCustomEventExample();
17
19
  auroMenuLoadingExample();
20
+ initSelectAllMatchingOptionsExample();
21
+ initKeysExample();
18
22
  } catch (err) {
19
23
  if (initCount <= 20) {
20
24
  // setTimeout handles issue where content is sometimes loaded after the functions get called
@@ -7,25 +7,32 @@ The auro-menu element provides users a way to select from a list of options.
7
7
 
8
8
  ## Properties
9
9
 
10
- | Property | Attribute | Type | Default | Description |
11
- |-------------------------|------------------|-----------------------------------|-------------|--------------------------------------------------|
12
- | [disabled](#disabled) | `disabled` | `boolean` | | When true, the entire menu and all options are disabled; |
13
- | [hasLoadingPlaceholder](#hasLoadingPlaceholder) | | `boolean` | | Indicates whether the menu has a loadingIcon or loadingText to render when in a loading state. |
14
- | [layout](#layout) | | `string` | | |
15
- | [loading](#loading) | `loading` | `boolean` | false | When true, displays a loading state using the loadingIcon and loadingText slots if provided. |
16
- | [matchWord](#matchWord) | `matchword` | `string` | "undefined" | Specifies a string used to highlight matched string parts in options. |
17
- | [multiSelect](#multiSelect) | `multiselect` | `boolean` | false | When true, the selected option can be multiple options. |
18
- | [noCheckmark](#noCheckmark) | `nocheckmark` | `boolean` | false | When true, selected option will not show the checkmark. |
19
- | [optionActive](#optionActive) | `optionactive` | `object` | "undefined" | Specifies the current active menuOption. |
20
- | [optionSelected](#optionSelected) | `optionSelected` | `HTMLElement\|Array<HTMLElement>` | "undefined" | An array of currently selected menu options, type `HTMLElement` by default. In multi-select mode, `optionSelected` is an array of HTML elements. |
21
- | [value](#value) | `value` | `string` | "undefined" | Value selected for the component. |
10
+ | Property | Attribute | Modifiers | Type | Default | Description |
11
+ |----------------------------|----------------------------|-----------|-----------------------------------|-------------|--------------------------------------------------|
12
+ | [allowDeselect](#allowDeselect) | `allowDeselect` | | `boolean` | false | Allows deselecting an already selected option when clicked again in single-select mode. |
13
+ | [disabled](#disabled) | `disabled` | | `boolean` | | When true, the entire menu and all options are disabled; |
14
+ | [hasLoadingPlaceholder](#hasLoadingPlaceholder) | | | `boolean` | | Indicates whether the menu has a loadingIcon or loadingText to render when in a loading state. |
15
+ | [index](#index) | | | `number` | | |
16
+ | [items](#items) | | readonly | `HTMLElement[]` | | |
17
+ | [layout](#layout) | | | `string` | | |
18
+ | [loading](#loading) | `loading` | | `boolean` | false | When true, displays a loading state using the loadingIcon and loadingText slots if provided. |
19
+ | [matchWord](#matchWord) | `matchword` | | `string` | "undefined" | Specifies a string used to highlight matched string parts in options. |
20
+ | [multiSelect](#multiSelect) | `multiselect` | | `boolean` | false | When true, the selected option can be multiple options. |
21
+ | [noCheckmark](#noCheckmark) | `nocheckmark` | | `boolean` | false | When true, selected option will not show the checkmark. |
22
+ | [optionActive](#optionActive) | `optionactive` | | `object` | "undefined" | Specifies the current active menuOption. |
23
+ | [optionSelected](#optionSelected) | `optionSelected` | | `HTMLElement\|Array<HTMLElement>` | "undefined" | An array of currently selected menu options, type `HTMLElement` by default. In multi-select mode, `optionSelected` is an array of HTML elements. |
24
+ | [options](#options) | | readonly | `array` | | Available menu options |
25
+ | [selectAllMatchingOptions](#selectAllMatchingOptions) | `selectAllMatchingOptions` | | `boolean` | false | When true, selects all options that match the provided value/key when setting value and multiselect is enabled. |
26
+ | [selectedOption](#selectedOption) | | readonly | `HTMLElement \| null` | | Gets the first selected option, or null if none. |
27
+ | [selectedOptions](#selectedOptions) | | readonly | `HTMLElement[]` | | Gets the currently selected options. |
28
+ | [value](#value) | `value` | | `string` | "undefined" | Value selected for the component. |
22
29
 
23
30
  ## Methods
24
31
 
25
- | Method | Type | Description |
26
- |----------------------|-------------------------|--------------------------------------------------|
27
- | [reset](#reset) | `(): void` | Resets the menu to its initial state.<br />This is the only way to return value to undefined. |
28
- | [updateActiveOption](#updateActiveOption) | `(index: number): void` | Updates the active option state and dispatches events.<br /><br />**index**: Index of the option to make active. |
32
+ | Method | Type | Description |
33
+ |----------------------|-------------------------------|--------------------------------------------------|
34
+ | [reset](#reset) | `(): void` | Resets the menu to its initial state.<br />This is the only way to return value to undefined. |
35
+ | [updateActiveOption](#updateActiveOption) | `(option: HTMLElement): void` | Updates the currently active option in the menu.<br /><br />**option**: The option to set as active. |
29
36
 
30
37
  ## Events
31
38
 
@@ -34,6 +41,7 @@ The auro-menu element provides users a way to select from a list of options.
34
41
  | `auroMenu-activatedOption` | `CustomEvent<Element>` | Notifies that a menuoption has been made `active`. |
35
42
  | `auroMenu-customEventFired` | `CustomEvent<any>` | Notifies that a custom event has been fired. |
36
43
  | `auroMenu-loadingChange` | `CustomEvent<{ loading: boolean; hasLoadingPlaceholder: boolean; }>` | Notifies when the loading attribute is changed. |
44
+ | `auroMenu-optionsChange` | `CustomEvent<{ options: any; }>` | |
37
45
  | `auroMenu-selectValueFailure` | `CustomEvent<any>` | Notifies that an attempt to select a menuoption by matching a value has failed. |
38
46
  | `auroMenu-selectValueReset` | `CustomEvent<any>` | Notifies that the component value has been reset. |
39
47
  | `auroMenu-selectedOption` | `CustomEvent<any>` | Notifies that a new menuoption selection has been made. |
@@ -58,19 +66,38 @@ The auro-menu element provides users a way to define a menu option.
58
66
 
59
67
  ## Properties
60
68
 
61
- | Property | Attribute | Type | Default | Description |
62
- |---------------|---------------|-----------|---------|--------------------------------------------------|
63
- | [disabled](#disabled) | `disabled` | `Boolean` | false | When true specifies that the menuoption is disabled. |
64
- | [iconTag](#iconTag) | | `string` | | |
65
- | [layout](#layout) | | `string` | | |
66
- | [nocheckmark](#nocheckmark) | `nocheckmark` | `boolean` | false | |
67
- | [selected](#selected) | `selected` | `Boolean` | false | Specifies that an option is selected. |
68
- | [value](#value) | `value` | `String` | | Specifies the value to be sent to a server. |
69
+ | Property | Attribute | Modifiers | Type | Default | Description |
70
+ |---------------|---------------|-----------|-----------|---------|--------------------------------------------------|
71
+ | [disabled](#disabled) | `disabled` | | `Boolean` | false | When true specifies that the menuoption is disabled. |
72
+ | [event](#event) | `event` | | `string` | | |
73
+ | [iconTag](#iconTag) | | | `string` | | |
74
+ | [isActive](#isActive) | | readonly | `boolean` | | Returns whether the menu option is currently active and selectable.<br />An option is considered active if it is not hidden, not disabled, and not static. |
75
+ | [key](#key) | `key` | | `string` | | |
76
+ | [layout](#layout) | | | `string` | | |
77
+ | [matchWord](#matchWord) | `matchWord` | | `string` | | |
78
+ | [menuService](#menuService) | `menuService` | | `object` | null | |
79
+ | [nocheckmark](#nocheckmark) | `nocheckmark` | | `boolean` | false | |
80
+ | [selected](#selected) | `selected` | | `Boolean` | false | Specifies that an option is selected. |
81
+ | [tabIndex](#tabIndex) | `tabIndex` | | `number` | | |
82
+ | [unsubscribe](#unsubscribe) | | | | null | |
83
+ | [value](#value) | `value` | | `String` | | Specifies the value to be sent to a server. |
84
+
85
+ ## Methods
86
+
87
+ | Method | Type | Description |
88
+ |-----------------------|-------------------------------|--------------------------------------------------|
89
+ | [attachTo](#attachTo) | `(service: Object): void` | Attaches this menu option to a menu service and subscribes to its events.<br />This method enables the option to participate in menu selection and highlighting logic.<br /><br />**service**: The menu service instance to attach to. |
90
+ | [bindEvents](#bindEvents) | `(): void` | Sets up event listeners for user interaction with the menu option.<br />This function enables click and mouse enter events to trigger selection and highlighting logic. |
91
+ | [handleMenuChange](#handleMenuChange) | `(event: Object): void` | Handles changes from the menu service and updates the option's state.<br />This function synchronizes the option's properties and selection/highlight state with menu events.<br /><br />**event**: The event object from the menu service. |
92
+ | [setInternalSelected](#setInternalSelected) | `(isSelected: boolean): void` | Updates the internal selected state of the menu option bypassing 'updated' and triggers custom events if selected.<br />This function ensures the option's selection state is synchronized with menu logic and notifies listeners.<br /><br />**isSelected**: Whether the option should be marked as selected. |
93
+ | [setSelected](#setSelected) | `(isSelected: boolean): void` | Sets the selected state of the menu option.<br />This function updates whether the option is currently selected.<br /><br />**isSelected**: Whether the option should be marked as selected. |
94
+ | [updateActive](#updateActive) | `(isActive: boolean): void` | Updates the active state and visual highlighting of the menu option.<br />This function toggles the option's active status and applies or removes the active CSS class.<br /><br />**isActive**: Whether the option should be marked as active. |
69
95
 
70
96
  ## Events
71
97
 
72
98
  | Event | Type | Description |
73
99
  |----------------------------|---------------------|--------------------------------------------------|
100
+ | `auroMenuOption-click` | `CustomEvent<this>` | |
74
101
  | `auroMenuOption-mouseover` | `CustomEvent<this>` | Notifies that this option has been hovered over. |
75
102
 
76
103
  ## Slots
@@ -113,8 +140,138 @@ The auro-menu element provides users a way to define a menu option.
113
140
  <!-- AURO-GENERATED-CONTENT:END -->
114
141
  </auro-accordion>
115
142
 
143
+ ### Using Keys
144
+
145
+ When setting the `value` property, matches are actually performed on the value of the `key` property of the `auro-menuoption` and not the `value` property. By default, the value of `key` is equal to the value of the `value` property. However, for advanced use cases, the `key` value can be overriden to allow for more specific matches.
146
+
147
+ In the below example, there is a list of "popular" options at the top, with the same values repeated underneath. To allow more specific selections, we can add a `key` attribute to the top options to allow them to be more specifically selected, or to prevent them from interfering with matches on the lower options.
148
+
149
+ In the below example, setting the value of the menu `'stops'` will select the bottom-most option with the value `'stops'`, and setting the value of menu to `'stops-top'` will select the top-most option with the value `'stops'` since the key now differs from the value. In either case, the resulting value of the menu will be `'stops'` because the resulting value of the menu is based on the `value` property and not the `key` property.
150
+
151
+ Due to a limitation with Lit change detection to the `value` property, if multiple options with the same exist and one is selected, you must first clear the current value before attempting to select another option with the same value, even if the keys are unique. See code example below.
152
+
153
+ _Note: Since the value passed to the `value` property when programmatically setting it is overwritten with the proper derived value once the menu has updated, note that it will take one lifecycle before the `value` property is updated to the value that represents the actual menu state._
154
+
155
+ <div class="exampleWrapper">
156
+ <!-- AURO-GENERATED-CONTENT:START (FILE:src=./../apiExamples/keys.html) -->
157
+ <!-- The below content is automatically added from ./../apiExamples/keys.html -->
158
+ <auro-button id="stopsTopButton">Call `menu.value = 'stops-top'`</auro-button>
159
+ <auro-button id="stopsButton">Call `menu.value = 'stops'`</auro-button>
160
+ <auro-menu id="keys-menu">
161
+ <auro-menuoption value="stops" key="stops-top">Stops</auro-menuoption>
162
+ <auro-menuoption value="price" key="price-top">Price</auro-menuoption>
163
+ <hr>
164
+ <auro-menuoption value="duration">Duration</auro-menuoption>
165
+ <auro-menuoption value="departure">Departure</auro-menuoption>
166
+ <auro-menuoption value="arrival">Arrival</auro-menuoption>
167
+ <auro-menuoption value="stops">Stops</auro-menuoption>
168
+ <auro-menuoption value="price">Price</auro-menuoption>
169
+ </auro-menu>
170
+ <p id="output" class="body-sm"></p>
171
+ <!-- AURO-GENERATED-CONTENT:END -->
172
+ </div>
173
+ <auro-accordion alignRight>
174
+ <span slot="trigger">See code</span>
175
+ <!-- AURO-GENERATED-CONTENT:START (CODE:src=./../apiExamples/keys.html) -->
176
+ <!-- The below code snippet is automatically added from ./../apiExamples/keys.html -->
177
+
178
+ ```html
179
+ <auro-button id="stopsTopButton">Call `menu.value = 'stops-top'`</auro-button>
180
+ <auro-button id="stopsButton">Call `menu.value = 'stops'`</auro-button>
181
+ <auro-menu id="keys-menu">
182
+ <auro-menuoption value="stops" key="stops-top">Stops</auro-menuoption>
183
+ <auro-menuoption value="price" key="price-top">Price</auro-menuoption>
184
+ <hr>
185
+ <auro-menuoption value="duration">Duration</auro-menuoption>
186
+ <auro-menuoption value="departure">Departure</auro-menuoption>
187
+ <auro-menuoption value="arrival">Arrival</auro-menuoption>
188
+ <auro-menuoption value="stops">Stops</auro-menuoption>
189
+ <auro-menuoption value="price">Price</auro-menuoption>
190
+ </auro-menu>
191
+ <p id="output" class="body-sm"></p>
192
+ ```
193
+ <!-- AURO-GENERATED-CONTENT:END -->
194
+ <!-- AURO-GENERATED-CONTENT:START (CODE:src=./../apiExamples/keys.js) -->
195
+ <!-- The below code snippet is automatically added from ./../apiExamples/keys.js -->
196
+
197
+ ```js
198
+ export function initKeysExample() {
199
+ const menu = document.getElementById('keys-menu');
200
+ const stopsButton = document.getElementById('stopsButton');
201
+ const stopsTopButton = document.getElementById('stopsTopButton');
202
+ const output = document.getElementById('output');
203
+
204
+ const createConsoleEntry = (message) => {
205
+ const node = document.createElement('span');
206
+ node.innerHTML = message;
207
+ output.appendChild(node);
208
+ output.appendChild(document.createElement('br'));
209
+ };
210
+
211
+ const resetConsole = () => {
212
+ output.innerHTML = '';
213
+ };
214
+
215
+ const updateMenuValue = (value) => {
216
+ resetConsole();
217
+ createConsoleEntry(`Setting menu.value: <em>"${value}"</em>`);
218
+ menu.value = '';
219
+ menu.value = value;
220
+ createConsoleEntry(`menu.value before next lifecycle: <em>"${menu.value}"</em>`);
221
+ setTimeout(() => {
222
+ createConsoleEntry(`menu.value after lifecycle: <em>"${menu.value}"</em>`);
223
+ });
224
+ };
225
+
226
+ stopsButton.addEventListener('click', () => {
227
+ updateMenuValue('stops');
228
+ });
229
+
230
+ stopsTopButton.addEventListener('click', () => {
231
+ updateMenuValue('stops-top');
232
+ });
233
+ };
234
+ ```
235
+ <!-- AURO-GENERATED-CONTENT:END -->
236
+ </auro-accordion>
237
+
116
238
  ### Attribute Examples
117
239
 
240
+ #### allowDeselect
241
+
242
+ When set, the `allowDeselect` attribute allows the user to click on a selected menu option again to deselect it when the menu is not in multi-select mode.
243
+
244
+ When the menu is in multi-select mode, this attribute has no effect and the user will be able to deselect the last remaining selected option.
245
+
246
+ <div class="exampleWrapper">
247
+ <!-- AURO-GENERATED-CONTENT:START (FILE:src=./../apiExamples/allowDeselect.html) -->
248
+ <!-- The below content is automatically added from ./../apiExamples/allowDeselect.html -->
249
+ <auro-menu allowDeselect>
250
+ <auro-menuoption value="stops">Stops</auro-menuoption>
251
+ <auro-menuoption value="price">Price</auro-menuoption>
252
+ <auro-menuoption value="duration">Duration</auro-menuoption>
253
+ <auro-menuoption value="departure">Departure</auro-menuoption>
254
+ <auro-menuoption value="arrival">Arrival</auro-menuoption>
255
+ </auro-menu>
256
+ <!-- AURO-GENERATED-CONTENT:END -->
257
+ </div>
258
+ <auro-accordion alignRight>
259
+ <span slot="trigger">See code</span>
260
+ <!-- AURO-GENERATED-CONTENT:START (CODE:src=./../apiExamples/allowDeselect.html) -->
261
+ <!-- The below code snippet is automatically added from ./../apiExamples/allowDeselect.html -->
262
+
263
+ ```html
264
+ <auro-menu allowDeselect>
265
+ <auro-menuoption value="stops">Stops</auro-menuoption>
266
+ <auro-menuoption value="price">Price</auro-menuoption>
267
+ <auro-menuoption value="duration">Duration</auro-menuoption>
268
+ <auro-menuoption value="departure">Departure</auro-menuoption>
269
+ <auro-menuoption value="arrival">Arrival</auro-menuoption>
270
+ </auro-menu>
271
+ ```
272
+ <!-- AURO-GENERATED-CONTENT:END -->
273
+ </auro-accordion>
274
+
118
275
  #### noCheckmark<a name="noCheckmark"></a>
119
276
  Applying the `noCheckmark` attribute will prevent the check icon from being shown on the selected option. The left padding to reserve space for the checkmark is also removed.
120
277
 
@@ -310,8 +467,17 @@ export function auroMenuMatchWordExample() {
310
467
  <!-- AURO-GENERATED-CONTENT:END -->
311
468
  </auro-accordion>
312
469
 
313
- ### Multi Select<a name="multiSelect"></a>
314
- The `auro-menu` supports a multi-select option. To use, place the `multiselect` attribute on the `<auro-menu>` element tag. When applied, the `value` attribute will become an Array versus String value.
470
+ ### Multi-Select<a name="multiSelect"></a>
471
+ The `auro-menu` supports a multi-select option. To use, place the `multiselect` attribute on the `<auro-menu>` element tag or update the `multiselect` property programmatically.
472
+
473
+ In multi-select mode, the `value` property will always return a valid JSON string that contains an array of selected values, e.g. `'["stops","duration","arrival"]'`, when accessed.
474
+
475
+ The value of the menu may be set via multiple methods when in multi-select mode:
476
+ - Programmatically or via attribute by passing a valid JSON string that can be parsed using `JSON.parse`.
477
+ - Programmatically or via attribute by passing a single matching value in a string, e.g. `"stops"`.
478
+ - Programmatically by passing an array of string values, e.g. `["stops","duration","arrival"]`.
479
+
480
+ _Note: Other methods of setting the value may work but are not officially supported and may stop working unexpectedly._
315
481
 
316
482
  <div class="exampleWrapper">
317
483
  <!-- AURO-GENERATED-CONTENT:START (FILE:src=./../apiExamples/multiSelect.html) -->
@@ -342,6 +508,85 @@ The `auro-menu` supports a multi-select option. To use, place the `multiselect`
342
508
  <!-- AURO-GENERATED-CONTENT:END -->
343
509
  </auro-accordion>
344
510
 
511
+ #### Optional Flag - `selectAllMatchingOptions`
512
+
513
+ When this flag is set on the `auro-menu` tag, when the value is set, any option with a matching key will be selected, even when multiple options with that key exist.
514
+
515
+ If not set, only the first matching option will be selected.
516
+
517
+ <div class="exampleWrapper">
518
+ <!-- AURO-GENERATED-CONTENT:START (FILE:src=./../apiExamples/selectAllMatchingOptions.html) -->
519
+ <!-- The below content is automatically added from ./../apiExamples/selectAllMatchingOptions.html -->
520
+ <p>With <code>selectAllMatchingOptions</code> enabled:</p>
521
+ <auro-button id="selectAllBtn">Set <code>menu.value</code> to <code>'stops'</code></auro-button>
522
+ <auro-button id="resetAllBtn">Reset Menu</auro-button>
523
+ <auro-menu multiselect selectAllMatchingOptions id="selectAllMenu">
524
+ <auro-menuoption value="stops">Stops</auro-menuoption>
525
+ <auro-menuoption value="price">Price</auro-menuoption>
526
+ <hr>
527
+ <auro-menuoption value="duration">Duration</auro-menuoption>
528
+ <auro-menuoption value="departure">Departure</auro-menuoption>
529
+ <auro-menuoption value="arrival">Arrival</auro-menuoption>
530
+ <auro-menuoption value="stops">Stops</auro-menuoption>
531
+ <auro-menuoption value="price">Price</auro-menuoption>
532
+ </auro-menu>
533
+ <br/>
534
+ <br/>
535
+ <br/>
536
+ <p>Without <code>selectAllMatchingOptions</code> enabled:</p>
537
+ <auro-button id="selectFirstBtn">Set <code>menu.value</code> to <code>'stops'</code></auro-button>
538
+ <auro-button id="resetFirstBtn">Reset Menu</auro-button>
539
+ <auro-menu multiselect id="selectFirstMenu">
540
+ <auro-menuoption value="stops">Stops</auro-menuoption>
541
+ <auro-menuoption value="price">Price</auro-menuoption>
542
+ <hr>
543
+ <auro-menuoption value="duration">Duration</auro-menuoption>
544
+ <auro-menuoption value="departure">Departure</auro-menuoption>
545
+ <auro-menuoption value="arrival">Arrival</auro-menuoption>
546
+ <auro-menuoption value="stops">Stops</auro-menuoption>
547
+ <auro-menuoption value="price">Price</auro-menuoption>
548
+ </auro-menu>
549
+ <!-- AURO-GENERATED-CONTENT:END -->
550
+ </div>
551
+ <auro-accordion alignRight>
552
+ <span slot="trigger">See code</span>
553
+ <!-- AURO-GENERATED-CONTENT:START (CODE:src=./../apiExamples/selectAllMatchingOptions.html) -->
554
+ <!-- The below code snippet is automatically added from ./../apiExamples/selectAllMatchingOptions.html -->
555
+
556
+ ```html
557
+ <p>With <code>selectAllMatchingOptions</code> enabled:</p>
558
+ <auro-button id="selectAllBtn">Set <code>menu.value</code> to <code>'stops'</code></auro-button>
559
+ <auro-button id="resetAllBtn">Reset Menu</auro-button>
560
+ <auro-menu multiselect selectAllMatchingOptions id="selectAllMenu">
561
+ <auro-menuoption value="stops">Stops</auro-menuoption>
562
+ <auro-menuoption value="price">Price</auro-menuoption>
563
+ <hr>
564
+ <auro-menuoption value="duration">Duration</auro-menuoption>
565
+ <auro-menuoption value="departure">Departure</auro-menuoption>
566
+ <auro-menuoption value="arrival">Arrival</auro-menuoption>
567
+ <auro-menuoption value="stops">Stops</auro-menuoption>
568
+ <auro-menuoption value="price">Price</auro-menuoption>
569
+ </auro-menu>
570
+ <br/>
571
+ <br/>
572
+ <br/>
573
+ <p>Without <code>selectAllMatchingOptions</code> enabled:</p>
574
+ <auro-button id="selectFirstBtn">Set <code>menu.value</code> to <code>'stops'</code></auro-button>
575
+ <auro-button id="resetFirstBtn">Reset Menu</auro-button>
576
+ <auro-menu multiselect id="selectFirstMenu">
577
+ <auro-menuoption value="stops">Stops</auro-menuoption>
578
+ <auro-menuoption value="price">Price</auro-menuoption>
579
+ <hr>
580
+ <auro-menuoption value="duration">Duration</auro-menuoption>
581
+ <auro-menuoption value="departure">Departure</auro-menuoption>
582
+ <auro-menuoption value="arrival">Arrival</auro-menuoption>
583
+ <auro-menuoption value="stops">Stops</auro-menuoption>
584
+ <auro-menuoption value="price">Price</auro-menuoption>
585
+ </auro-menu>
586
+ ```
587
+ <!-- AURO-GENERATED-CONTENT:END -->
588
+ </auro-accordion>
589
+
345
590
  #### Loading<a name="loading"></a>
346
591
  While content is loading, the menu can either remain empty or display a loading placeholder
347
592