@aurodesignsystem/auro-formkit 6.0.0 → 6.0.1

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 (46) hide show
  1. package/CHANGELOG.md +5 -240
  2. package/components/checkbox/demo/customize.min.js +1 -1
  3. package/components/checkbox/demo/getting-started.min.js +1 -1
  4. package/components/checkbox/demo/index.min.js +1 -1
  5. package/components/checkbox/dist/index.js +1 -1
  6. package/components/checkbox/dist/registered.js +1 -1
  7. package/components/combobox/demo/customize.min.js +172 -46
  8. package/components/combobox/demo/getting-started.min.js +172 -46
  9. package/components/combobox/demo/index.min.js +172 -46
  10. package/components/combobox/dist/index.js +172 -46
  11. package/components/combobox/dist/registered.js +172 -46
  12. package/components/counter/demo/customize.min.js +59 -7
  13. package/components/counter/demo/index.min.js +59 -7
  14. package/components/counter/dist/index.js +59 -7
  15. package/components/counter/dist/registered.js +59 -7
  16. package/components/datepicker/demo/customize.min.js +106 -18
  17. package/components/datepicker/demo/index.min.js +106 -18
  18. package/components/datepicker/dist/index.js +106 -18
  19. package/components/datepicker/dist/registered.js +106 -18
  20. package/components/dropdown/demo/customize.min.js +58 -6
  21. package/components/dropdown/demo/getting-started.min.js +58 -6
  22. package/components/dropdown/demo/index.min.js +58 -6
  23. package/components/dropdown/dist/auro-dropdown.d.ts +16 -1
  24. package/components/dropdown/dist/index.js +58 -6
  25. package/components/dropdown/dist/registered.js +58 -6
  26. package/components/form/demo/customize.min.js +445 -91
  27. package/components/form/demo/getting-started.min.js +445 -91
  28. package/components/form/demo/index.min.js +445 -91
  29. package/components/form/demo/registerDemoDeps.min.js +445 -91
  30. package/components/input/demo/customize.min.js +47 -11
  31. package/components/input/demo/getting-started.min.js +47 -11
  32. package/components/input/demo/index.min.js +47 -11
  33. package/components/input/dist/index.js +47 -11
  34. package/components/input/dist/registered.js +47 -11
  35. package/components/radio/demo/customize.min.js +1 -1
  36. package/components/radio/demo/getting-started.min.js +1 -1
  37. package/components/radio/demo/index.min.js +1 -1
  38. package/components/radio/dist/index.js +1 -1
  39. package/components/radio/dist/registered.js +1 -1
  40. package/components/select/demo/customize.min.js +59 -7
  41. package/components/select/demo/getting-started.min.js +59 -7
  42. package/components/select/demo/index.min.js +59 -7
  43. package/components/select/dist/index.js +59 -7
  44. package/components/select/dist/registered.js +59 -7
  45. package/custom-elements.json +1500 -1484
  46. package/package.json +1 -1
@@ -10659,9 +10659,10 @@ let DomHandler$3 = class DomHandler {
10659
10659
  let BaseInput$2 = class BaseInput extends AuroElement$6 {
10660
10660
 
10661
10661
  // Delegate focus to the native <input> inside the shadow root so that
10662
- // showModal()'s dialog focusing steps reach the input element.
10663
- // This keeps the mobile virtual keyboard open when the fullscreen dialog
10664
- // opens, because the browser sees an input-to-input focus transfer.
10662
+ // clicking anywhere on the input wrapper focuses the native input, and
10663
+ // programmatic .focus() calls on elements in the shadow DOM work correctly.
10664
+ // The initial-load focus theft was caused by the static `autofocus`
10665
+ // attribute on the bib input (now conditional), not by delegatesFocus.
10665
10666
  static get shadowRootOptions() {
10666
10667
  return {
10667
10668
  ...AuroElement$6.shadowRootOptions,
@@ -12338,7 +12339,7 @@ let AuroHelpText$8 = class AuroHelpText extends i$2 {
12338
12339
  }
12339
12340
  };
12340
12341
 
12341
- var formkitVersion$8 = '202607102309';
12342
+ var formkitVersion$8 = '202607161943';
12342
12343
 
12343
12344
  // Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
12344
12345
  // See LICENSE in the project root for license information.
@@ -12624,15 +12625,50 @@ let AuroInput$2 = class AuroInput extends BaseInput$2 {
12624
12625
  * @returns {void}
12625
12626
  */
12626
12627
  checkDisplayValueSlotChange() {
12627
- // flatten:true resolves through auro-combobox's forwarding slot
12628
- // (<slot name="displayValue" slot="displayValue">) so a clone appended
12629
- // directly to auro-input's light DOM alongside the forwarder still
12630
- // counts as content. The prior nodes[0].tagName === 'SLOT' recursion
12631
- // discarded any siblings past the forwarder.
12632
- const slot = this.shadowRoot.querySelector('slot[name="displayValue"]');
12628
+ const slot = this.shadowRoot?.querySelector('slot[name="displayValue"]');
12629
+ if (!slot) {
12630
+ // Shadow slot not yet rendered fall back to checking light-DOM
12631
+ // children so hasDisplayValueContent isn't stuck false when called
12632
+ // before firstUpdated (e.g. from auro-combobox during mount).
12633
+ // Check for any element (including custom elements like <auro-icon>
12634
+ // that render via shadow DOM with no text content).
12635
+ const lightDomNodes = Array.from(this.querySelectorAll('[slot="displayValue"]:not(slot)'));
12636
+ const hasContent = lightDomNodes.some((node) => (
12637
+ node.textContent.trim().length > 0 ||
12638
+ node.children.length > 0 ||
12639
+ node.shadowRoot !== null
12640
+ ));
12641
+ if (this.hasDisplayValueContent !== hasContent) {
12642
+ this.hasDisplayValueContent = hasContent;
12643
+ this.requestUpdate();
12644
+ }
12645
+ return;
12646
+ }
12633
12647
  const nodes = slot.assignedNodes({ flatten: true });
12634
12648
 
12635
- this.hasDisplayValueContent = nodes.length > 0;
12649
+ // Check for actual visible content, not just node existence.
12650
+ // An empty <span slot="displayValue"></span> forwarded from the
12651
+ // consumer should not be treated as "has content" — it causes the
12652
+ // displayValue wrapper to render (with hasContent class) but show
12653
+ // nothing, blocking the combobox's synthetic displayValue from
12654
+ // being visible on preset/deeplink load.
12655
+ // Custom elements (e.g. <auro-icon>) that render via shadow DOM are
12656
+ // treated as content even when they have no text or light-DOM children.
12657
+ const hasContent = nodes.some((node) => {
12658
+ if (node.nodeType === Node.TEXT_NODE) {
12659
+ return node.textContent.trim().length > 0;
12660
+ }
12661
+ if (node.nodeType === Node.ELEMENT_NODE) {
12662
+ return node.textContent.trim().length > 0 ||
12663
+ node.children.length > 0 ||
12664
+ node.shadowRoot !== null;
12665
+ }
12666
+ return false;
12667
+ });
12668
+ if (this.hasDisplayValueContent !== hasContent) {
12669
+ this.hasDisplayValueContent = hasContent;
12670
+ this.requestUpdate();
12671
+ }
12636
12672
  }
12637
12673
 
12638
12674
  firstUpdated() {
@@ -26735,7 +26771,7 @@ let AuroBibtemplate$3 = class AuroBibtemplate extends i$2 {
26735
26771
  }
26736
26772
  };
26737
26773
 
26738
- var formkitVersion$2$1 = '202607102309';
26774
+ var formkitVersion$2$1 = '202607161943';
26739
26775
 
26740
26776
  let l$1$2 = 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=i$5`${s$5(r)}`;return customElements.get(r)||customElements.define(r,class extends a{}),i}};let d$1$2 = 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}"]`),s=(o?.assignedNodes({flatten:true})||[]).map(t=>t.textContent?.trim()).join(" ").trim();return s||null}};let h$1$2 = 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$3=i$4`: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]),:host([appearance=brand]){--ds-auro-loader-color: var(--ds-basic-color-brand-primary, #01426a)}:host([ondark]),:host([appearance=inverse]){--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}
26741
26777
  `,u$4$2=i$4`.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;box-sizing:border-box}: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:calc(1rem + var(--margin) * 2)}:host([pulse])>span{width:1rem;height:1rem;margin:var(--margin);animation:pulse 1.5s ease infinite}:host([pulse][xs]){width:calc(1.95rem + var(--margin-xs) * 6);height:calc(.65rem + var(--margin-xs) * 2)}:host([pulse][xs])>span{margin:var(--margin-xs);width:.65rem;height:.65rem}:host([pulse][sm]){width:calc(6rem + var(--margin-sm) * 6);height:calc(2rem + var(--margin-sm) * 2)}:host([pulse][sm])>span{margin:var(--margin-sm);width:2rem;height:2rem}:host([pulse][md]){width:calc(9rem + var(--margin-md) * 6);height:calc(3rem + var(--margin-md) * 2)}:host([pulse][md])>span{margin:var(--margin-md);width:3rem;height:3rem}:host([pulse][lg]){width:calc(15rem + var(--margin-lg) * 6);height:calc(5rem + var(--margin-lg) * 2)}: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}}
@@ -32463,7 +32499,7 @@ let AuroHelpText$2$1 = class AuroHelpText extends i$2 {
32463
32499
  }
32464
32500
  };
32465
32501
 
32466
- var formkitVersion$1$3 = '202607102309';
32502
+ var formkitVersion$1$3 = '202607161943';
32467
32503
 
32468
32504
  let AuroElement$2$2 = class AuroElement extends i$2 {
32469
32505
  static get properties() {
@@ -32592,7 +32628,6 @@ let AuroDropdown$3 = class AuroDropdown extends AuroElement$2$2 {
32592
32628
  static get shadowRootOptions() {
32593
32629
  return {
32594
32630
  ...AuroElement$2$2.shadowRootOptions,
32595
- delegatesFocus: true,
32596
32631
  };
32597
32632
  }
32598
32633
 
@@ -32604,6 +32639,15 @@ let AuroDropdown$3 = class AuroDropdown extends AuroElement$2$2 {
32604
32639
  this.matchWidth = false;
32605
32640
  this.noHideOnThisFocusLoss = false;
32606
32641
 
32642
+ /**
32643
+ * When true, the dropdown skips its generic focus restoration on close.
32644
+ * Set by consumers (e.g. combobox) that manage their own focus routing
32645
+ * via setClearBtnFocus / setInputFocus / keyboard strategy.
32646
+ * Separate from noHideOnThisFocusLoss (which controls auto-close behavior).
32647
+ * @private
32648
+ */
32649
+ this.noFocusRestoreOnClose = false;
32650
+
32607
32651
  this.errorMessage = undefined; // TODO - check with Doug if there is still more to do here
32608
32652
 
32609
32653
  // Layout Config
@@ -32759,7 +32803,49 @@ let AuroDropdown$3 = class AuroDropdown extends AuroElement$2$2 {
32759
32803
  focusables[0].focus();
32760
32804
  }
32761
32805
  } else {
32806
+ this.focusTrigger();
32807
+ }
32808
+ }
32809
+
32810
+ /**
32811
+ * Focus the trigger content. When the trigger wrapper itself is focusable
32812
+ * (has tabindex), focus it directly. Otherwise, focus the first focusable
32813
+ * element slotted into the trigger slot (e.g. the auro-input).
32814
+ * @private
32815
+ */
32816
+ focusTrigger() {
32817
+ if (this.trigger.hasAttribute('tabindex')) {
32762
32818
  this.trigger.focus();
32819
+ } else {
32820
+ // Slotted content isn't a DOM child of the trigger div, so
32821
+ // getFocusableElements can't find it. Query assigned nodes directly.
32822
+ const slot = this.trigger.querySelector('slot[name="trigger"]');
32823
+ if (slot) {
32824
+ const assigned = slot.assignedElements();
32825
+ for (const el of assigned) {
32826
+ if (el.hasAttribute('disabled')) {
32827
+ continue;
32828
+ }
32829
+ // Try finding a focusable descendant first (handles non-focusable
32830
+ // wrappers like <div> containing a <button>). If none found, try
32831
+ // focusing the element directly (works for custom elements like
32832
+ // auro-input that have delegatesFocus or a custom focus() method).
32833
+ const descendants = getFocusableElements$4(el);
32834
+ if (descendants.length > 0) {
32835
+ descendants[0].focus();
32836
+ return;
32837
+ }
32838
+ el.focus();
32839
+ if (document.activeElement === el) {
32840
+ return;
32841
+ }
32842
+ }
32843
+ }
32844
+ // Fallback: try DOM children (non-slotted content)
32845
+ const focusables = getFocusableElements$4(this.trigger);
32846
+ if (focusables.length > 0) {
32847
+ focusables[0].focus();
32848
+ }
32763
32849
  }
32764
32850
  }
32765
32851
 
@@ -33212,15 +33298,17 @@ let AuroDropdown$3 = class AuroDropdown extends AuroElement$2$2 {
33212
33298
  }
33213
33299
 
33214
33300
  const eventType = event.detail.eventType || "unknown";
33215
- if (!this.isPopoverVisible && this.hasFocus && eventType === "keydown") {
33216
- this.trigger.focus();
33301
+ if (!this.isPopoverVisible && this.hasFocus && eventType === "keydown" && !this.noFocusRestoreOnClose) {
33302
+ this.focusTrigger();
33217
33303
  }
33218
33304
 
33219
33305
 
33220
33306
  // On Tab-driven close (eventType "focusloss"), let focus advance naturally
33221
33307
  // — restoring to the trigger would trap the user on this dropdown, forcing
33222
33308
  // an extra Tab to move on. Escape and outside-click still restore.
33223
- if (!this.isPopoverVisible && eventType !== "focusloss") {
33309
+ // When noFocusRestoreOnClose is true, the consumer (e.g. combobox) manages
33310
+ // its own focus restoration — skip the generic trigger focus to avoid races.
33311
+ if (!this.isPopoverVisible && eventType !== "focusloss" && !this.noFocusRestoreOnClose) {
33224
33312
  // wait til the bib gets fully closed and rendered
33225
33313
  setTimeout(() => {
33226
33314
  // Skip if the bib re-opened, or if focus moved intentionally outside the dropdown (not to body).
@@ -33232,7 +33320,7 @@ let AuroDropdown$3 = class AuroDropdown extends AuroElement$2$2 {
33232
33320
  return;
33233
33321
  }
33234
33322
  // Restore focus to the trigger.
33235
- this.trigger.focus();
33323
+ this.focusTrigger();
33236
33324
  });
33237
33325
  }
33238
33326
  }
@@ -44406,9 +44494,10 @@ let DomHandler$2 = class DomHandler {
44406
44494
  let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
44407
44495
 
44408
44496
  // Delegate focus to the native <input> inside the shadow root so that
44409
- // showModal()'s dialog focusing steps reach the input element.
44410
- // This keeps the mobile virtual keyboard open when the fullscreen dialog
44411
- // opens, because the browser sees an input-to-input focus transfer.
44497
+ // clicking anywhere on the input wrapper focuses the native input, and
44498
+ // programmatic .focus() calls on elements in the shadow DOM work correctly.
44499
+ // The initial-load focus theft was caused by the static `autofocus`
44500
+ // attribute on the bib input (now conditional), not by delegatesFocus.
44412
44501
  static get shadowRootOptions() {
44413
44502
  return {
44414
44503
  ...AuroElement$1$3.shadowRootOptions,
@@ -46085,7 +46174,7 @@ let AuroHelpText$1$3 = class AuroHelpText extends i$2 {
46085
46174
  }
46086
46175
  };
46087
46176
 
46088
- var formkitVersion$7 = '202607102309';
46177
+ var formkitVersion$7 = '202607161943';
46089
46178
 
46090
46179
  // Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
46091
46180
  // See LICENSE in the project root for license information.
@@ -46371,15 +46460,50 @@ let AuroInput$1 = class AuroInput extends BaseInput$1 {
46371
46460
  * @returns {void}
46372
46461
  */
46373
46462
  checkDisplayValueSlotChange() {
46374
- // flatten:true resolves through auro-combobox's forwarding slot
46375
- // (<slot name="displayValue" slot="displayValue">) so a clone appended
46376
- // directly to auro-input's light DOM alongside the forwarder still
46377
- // counts as content. The prior nodes[0].tagName === 'SLOT' recursion
46378
- // discarded any siblings past the forwarder.
46379
- const slot = this.shadowRoot.querySelector('slot[name="displayValue"]');
46463
+ const slot = this.shadowRoot?.querySelector('slot[name="displayValue"]');
46464
+ if (!slot) {
46465
+ // Shadow slot not yet rendered fall back to checking light-DOM
46466
+ // children so hasDisplayValueContent isn't stuck false when called
46467
+ // before firstUpdated (e.g. from auro-combobox during mount).
46468
+ // Check for any element (including custom elements like <auro-icon>
46469
+ // that render via shadow DOM with no text content).
46470
+ const lightDomNodes = Array.from(this.querySelectorAll('[slot="displayValue"]:not(slot)'));
46471
+ const hasContent = lightDomNodes.some((node) => (
46472
+ node.textContent.trim().length > 0 ||
46473
+ node.children.length > 0 ||
46474
+ node.shadowRoot !== null
46475
+ ));
46476
+ if (this.hasDisplayValueContent !== hasContent) {
46477
+ this.hasDisplayValueContent = hasContent;
46478
+ this.requestUpdate();
46479
+ }
46480
+ return;
46481
+ }
46380
46482
  const nodes = slot.assignedNodes({ flatten: true });
46381
46483
 
46382
- this.hasDisplayValueContent = nodes.length > 0;
46484
+ // Check for actual visible content, not just node existence.
46485
+ // An empty <span slot="displayValue"></span> forwarded from the
46486
+ // consumer should not be treated as "has content" — it causes the
46487
+ // displayValue wrapper to render (with hasContent class) but show
46488
+ // nothing, blocking the combobox's synthetic displayValue from
46489
+ // being visible on preset/deeplink load.
46490
+ // Custom elements (e.g. <auro-icon>) that render via shadow DOM are
46491
+ // treated as content even when they have no text or light-DOM children.
46492
+ const hasContent = nodes.some((node) => {
46493
+ if (node.nodeType === Node.TEXT_NODE) {
46494
+ return node.textContent.trim().length > 0;
46495
+ }
46496
+ if (node.nodeType === Node.ELEMENT_NODE) {
46497
+ return node.textContent.trim().length > 0 ||
46498
+ node.children.length > 0 ||
46499
+ node.shadowRoot !== null;
46500
+ }
46501
+ return false;
46502
+ });
46503
+ if (this.hasDisplayValueContent !== hasContent) {
46504
+ this.hasDisplayValueContent = hasContent;
46505
+ this.requestUpdate();
46506
+ }
46383
46507
  }
46384
46508
 
46385
46509
  firstUpdated() {
@@ -51026,7 +51150,7 @@ let AuroHelpText$1$2 = class AuroHelpText extends i$2 {
51026
51150
  }
51027
51151
  };
51028
51152
 
51029
- var formkitVersion$1$2 = '202607102309';
51153
+ var formkitVersion$1$2 = '202607161943';
51030
51154
 
51031
51155
  // Copyright (c) 2026 Alaska Airlines. All rights reserved. Licensed under the Apache-2.0 license
51032
51156
  // See LICENSE in the project root for license information.
@@ -55174,7 +55298,7 @@ let AuroHelpText$6 = class AuroHelpText extends i$2 {
55174
55298
  }
55175
55299
  };
55176
55300
 
55177
- var formkitVersion$6 = '202607102309';
55301
+ var formkitVersion$6 = '202607161943';
55178
55302
 
55179
55303
  let AuroElement$1$2 = class AuroElement extends i$2 {
55180
55304
  static get properties() {
@@ -55303,7 +55427,6 @@ let AuroDropdown$2 = class AuroDropdown extends AuroElement$1$2 {
55303
55427
  static get shadowRootOptions() {
55304
55428
  return {
55305
55429
  ...AuroElement$1$2.shadowRootOptions,
55306
- delegatesFocus: true,
55307
55430
  };
55308
55431
  }
55309
55432
 
@@ -55315,6 +55438,15 @@ let AuroDropdown$2 = class AuroDropdown extends AuroElement$1$2 {
55315
55438
  this.matchWidth = false;
55316
55439
  this.noHideOnThisFocusLoss = false;
55317
55440
 
55441
+ /**
55442
+ * When true, the dropdown skips its generic focus restoration on close.
55443
+ * Set by consumers (e.g. combobox) that manage their own focus routing
55444
+ * via setClearBtnFocus / setInputFocus / keyboard strategy.
55445
+ * Separate from noHideOnThisFocusLoss (which controls auto-close behavior).
55446
+ * @private
55447
+ */
55448
+ this.noFocusRestoreOnClose = false;
55449
+
55318
55450
  this.errorMessage = undefined; // TODO - check with Doug if there is still more to do here
55319
55451
 
55320
55452
  // Layout Config
@@ -55470,7 +55602,49 @@ let AuroDropdown$2 = class AuroDropdown extends AuroElement$1$2 {
55470
55602
  focusables[0].focus();
55471
55603
  }
55472
55604
  } else {
55605
+ this.focusTrigger();
55606
+ }
55607
+ }
55608
+
55609
+ /**
55610
+ * Focus the trigger content. When the trigger wrapper itself is focusable
55611
+ * (has tabindex), focus it directly. Otherwise, focus the first focusable
55612
+ * element slotted into the trigger slot (e.g. the auro-input).
55613
+ * @private
55614
+ */
55615
+ focusTrigger() {
55616
+ if (this.trigger.hasAttribute('tabindex')) {
55473
55617
  this.trigger.focus();
55618
+ } else {
55619
+ // Slotted content isn't a DOM child of the trigger div, so
55620
+ // getFocusableElements can't find it. Query assigned nodes directly.
55621
+ const slot = this.trigger.querySelector('slot[name="trigger"]');
55622
+ if (slot) {
55623
+ const assigned = slot.assignedElements();
55624
+ for (const el of assigned) {
55625
+ if (el.hasAttribute('disabled')) {
55626
+ continue;
55627
+ }
55628
+ // Try finding a focusable descendant first (handles non-focusable
55629
+ // wrappers like <div> containing a <button>). If none found, try
55630
+ // focusing the element directly (works for custom elements like
55631
+ // auro-input that have delegatesFocus or a custom focus() method).
55632
+ const descendants = getFocusableElements$3(el);
55633
+ if (descendants.length > 0) {
55634
+ descendants[0].focus();
55635
+ return;
55636
+ }
55637
+ el.focus();
55638
+ if (document.activeElement === el) {
55639
+ return;
55640
+ }
55641
+ }
55642
+ }
55643
+ // Fallback: try DOM children (non-slotted content)
55644
+ const focusables = getFocusableElements$3(this.trigger);
55645
+ if (focusables.length > 0) {
55646
+ focusables[0].focus();
55647
+ }
55474
55648
  }
55475
55649
  }
55476
55650
 
@@ -55923,15 +56097,17 @@ let AuroDropdown$2 = class AuroDropdown extends AuroElement$1$2 {
55923
56097
  }
55924
56098
 
55925
56099
  const eventType = event.detail.eventType || "unknown";
55926
- if (!this.isPopoverVisible && this.hasFocus && eventType === "keydown") {
55927
- this.trigger.focus();
56100
+ if (!this.isPopoverVisible && this.hasFocus && eventType === "keydown" && !this.noFocusRestoreOnClose) {
56101
+ this.focusTrigger();
55928
56102
  }
55929
56103
 
55930
56104
 
55931
56105
  // On Tab-driven close (eventType "focusloss"), let focus advance naturally
55932
56106
  // — restoring to the trigger would trap the user on this dropdown, forcing
55933
56107
  // an extra Tab to move on. Escape and outside-click still restore.
55934
- if (!this.isPopoverVisible && eventType !== "focusloss") {
56108
+ // When noFocusRestoreOnClose is true, the consumer (e.g. combobox) manages
56109
+ // its own focus restoration — skip the generic trigger focus to avoid races.
56110
+ if (!this.isPopoverVisible && eventType !== "focusloss" && !this.noFocusRestoreOnClose) {
55935
56111
  // wait til the bib gets fully closed and rendered
55936
56112
  setTimeout(() => {
55937
56113
  // Skip if the bib re-opened, or if focus moved intentionally outside the dropdown (not to body).
@@ -55943,7 +56119,7 @@ let AuroDropdown$2 = class AuroDropdown extends AuroElement$1$2 {
55943
56119
  return;
55944
56120
  }
55945
56121
  // Restore focus to the trigger.
55946
- this.trigger.focus();
56122
+ this.focusTrigger();
55947
56123
  });
55948
56124
  }
55949
56125
  }
@@ -59171,7 +59347,7 @@ let AuroHelpText$5 = class AuroHelpText extends i$2 {
59171
59347
  }
59172
59348
  };
59173
59349
 
59174
- var formkitVersion$5 = '202607102309';
59350
+ var formkitVersion$5 = '202607161943';
59175
59351
 
59176
59352
  // Copyright (c) Alaska Air. All right reserved. Licensed under the Apache-2.0 license
59177
59353
  // See LICENSE in the project root for license information.
@@ -60936,7 +61112,7 @@ let AuroHelpText$4 = class AuroHelpText extends i$2 {
60936
61112
  }
60937
61113
  };
60938
61114
 
60939
- var formkitVersion$4 = '202607102309';
61115
+ var formkitVersion$4 = '202607161943';
60940
61116
 
60941
61117
  // Copyright (c) 2026 Alaska Airlines. All rights reserved. Licensed under the Apache-2.0 license
60942
61118
  // See LICENSE in the project root for license information.
@@ -66249,7 +66425,7 @@ let AuroHelpText$2 = class AuroHelpText extends i$2 {
66249
66425
  }
66250
66426
  };
66251
66427
 
66252
- var formkitVersion$2 = '202607102309';
66428
+ var formkitVersion$2 = '202607161943';
66253
66429
 
66254
66430
  let AuroElement$2$1 = class AuroElement extends i$2 {
66255
66431
  static get properties() {
@@ -66378,7 +66554,6 @@ let AuroDropdown$1 = class AuroDropdown extends AuroElement$2$1 {
66378
66554
  static get shadowRootOptions() {
66379
66555
  return {
66380
66556
  ...AuroElement$2$1.shadowRootOptions,
66381
- delegatesFocus: true,
66382
66557
  };
66383
66558
  }
66384
66559
 
@@ -66390,6 +66565,15 @@ let AuroDropdown$1 = class AuroDropdown extends AuroElement$2$1 {
66390
66565
  this.matchWidth = false;
66391
66566
  this.noHideOnThisFocusLoss = false;
66392
66567
 
66568
+ /**
66569
+ * When true, the dropdown skips its generic focus restoration on close.
66570
+ * Set by consumers (e.g. combobox) that manage their own focus routing
66571
+ * via setClearBtnFocus / setInputFocus / keyboard strategy.
66572
+ * Separate from noHideOnThisFocusLoss (which controls auto-close behavior).
66573
+ * @private
66574
+ */
66575
+ this.noFocusRestoreOnClose = false;
66576
+
66393
66577
  this.errorMessage = undefined; // TODO - check with Doug if there is still more to do here
66394
66578
 
66395
66579
  // Layout Config
@@ -66545,7 +66729,49 @@ let AuroDropdown$1 = class AuroDropdown extends AuroElement$2$1 {
66545
66729
  focusables[0].focus();
66546
66730
  }
66547
66731
  } else {
66732
+ this.focusTrigger();
66733
+ }
66734
+ }
66735
+
66736
+ /**
66737
+ * Focus the trigger content. When the trigger wrapper itself is focusable
66738
+ * (has tabindex), focus it directly. Otherwise, focus the first focusable
66739
+ * element slotted into the trigger slot (e.g. the auro-input).
66740
+ * @private
66741
+ */
66742
+ focusTrigger() {
66743
+ if (this.trigger.hasAttribute('tabindex')) {
66548
66744
  this.trigger.focus();
66745
+ } else {
66746
+ // Slotted content isn't a DOM child of the trigger div, so
66747
+ // getFocusableElements can't find it. Query assigned nodes directly.
66748
+ const slot = this.trigger.querySelector('slot[name="trigger"]');
66749
+ if (slot) {
66750
+ const assigned = slot.assignedElements();
66751
+ for (const el of assigned) {
66752
+ if (el.hasAttribute('disabled')) {
66753
+ continue;
66754
+ }
66755
+ // Try finding a focusable descendant first (handles non-focusable
66756
+ // wrappers like <div> containing a <button>). If none found, try
66757
+ // focusing the element directly (works for custom elements like
66758
+ // auro-input that have delegatesFocus or a custom focus() method).
66759
+ const descendants = getFocusableElements$2(el);
66760
+ if (descendants.length > 0) {
66761
+ descendants[0].focus();
66762
+ return;
66763
+ }
66764
+ el.focus();
66765
+ if (document.activeElement === el) {
66766
+ return;
66767
+ }
66768
+ }
66769
+ }
66770
+ // Fallback: try DOM children (non-slotted content)
66771
+ const focusables = getFocusableElements$2(this.trigger);
66772
+ if (focusables.length > 0) {
66773
+ focusables[0].focus();
66774
+ }
66549
66775
  }
66550
66776
  }
66551
66777
 
@@ -66998,15 +67224,17 @@ let AuroDropdown$1 = class AuroDropdown extends AuroElement$2$1 {
66998
67224
  }
66999
67225
 
67000
67226
  const eventType = event.detail.eventType || "unknown";
67001
- if (!this.isPopoverVisible && this.hasFocus && eventType === "keydown") {
67002
- this.trigger.focus();
67227
+ if (!this.isPopoverVisible && this.hasFocus && eventType === "keydown" && !this.noFocusRestoreOnClose) {
67228
+ this.focusTrigger();
67003
67229
  }
67004
67230
 
67005
67231
 
67006
67232
  // On Tab-driven close (eventType "focusloss"), let focus advance naturally
67007
67233
  // — restoring to the trigger would trap the user on this dropdown, forcing
67008
67234
  // an extra Tab to move on. Escape and outside-click still restore.
67009
- if (!this.isPopoverVisible && eventType !== "focusloss") {
67235
+ // When noFocusRestoreOnClose is true, the consumer (e.g. combobox) manages
67236
+ // its own focus restoration — skip the generic trigger focus to avoid races.
67237
+ if (!this.isPopoverVisible && eventType !== "focusloss" && !this.noFocusRestoreOnClose) {
67010
67238
  // wait til the bib gets fully closed and rendered
67011
67239
  setTimeout(() => {
67012
67240
  // Skip if the bib re-opened, or if focus moved intentionally outside the dropdown (not to body).
@@ -67018,7 +67246,7 @@ let AuroDropdown$1 = class AuroDropdown extends AuroElement$2$1 {
67018
67246
  return;
67019
67247
  }
67020
67248
  // Restore focus to the trigger.
67021
- this.trigger.focus();
67249
+ this.focusTrigger();
67022
67250
  });
67023
67251
  }
67024
67252
  }
@@ -78192,9 +78420,10 @@ class DomHandler {
78192
78420
  class BaseInput extends AuroElement$1$1 {
78193
78421
 
78194
78422
  // Delegate focus to the native <input> inside the shadow root so that
78195
- // showModal()'s dialog focusing steps reach the input element.
78196
- // This keeps the mobile virtual keyboard open when the fullscreen dialog
78197
- // opens, because the browser sees an input-to-input focus transfer.
78423
+ // clicking anywhere on the input wrapper focuses the native input, and
78424
+ // programmatic .focus() calls on elements in the shadow DOM work correctly.
78425
+ // The initial-load focus theft was caused by the static `autofocus`
78426
+ // attribute on the bib input (now conditional), not by delegatesFocus.
78198
78427
  static get shadowRootOptions() {
78199
78428
  return {
78200
78429
  ...AuroElement$1$1.shadowRootOptions,
@@ -79871,7 +80100,7 @@ let AuroHelpText$1$1 = class AuroHelpText extends i$2 {
79871
80100
  }
79872
80101
  };
79873
80102
 
79874
- var formkitVersion$1$1 = '202607102309';
80103
+ var formkitVersion$1$1 = '202607161943';
79875
80104
 
79876
80105
  // Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
79877
80106
  // See LICENSE in the project root for license information.
@@ -80157,15 +80386,50 @@ class AuroInput extends BaseInput {
80157
80386
  * @returns {void}
80158
80387
  */
80159
80388
  checkDisplayValueSlotChange() {
80160
- // flatten:true resolves through auro-combobox's forwarding slot
80161
- // (<slot name="displayValue" slot="displayValue">) so a clone appended
80162
- // directly to auro-input's light DOM alongside the forwarder still
80163
- // counts as content. The prior nodes[0].tagName === 'SLOT' recursion
80164
- // discarded any siblings past the forwarder.
80165
- const slot = this.shadowRoot.querySelector('slot[name="displayValue"]');
80389
+ const slot = this.shadowRoot?.querySelector('slot[name="displayValue"]');
80390
+ if (!slot) {
80391
+ // Shadow slot not yet rendered fall back to checking light-DOM
80392
+ // children so hasDisplayValueContent isn't stuck false when called
80393
+ // before firstUpdated (e.g. from auro-combobox during mount).
80394
+ // Check for any element (including custom elements like <auro-icon>
80395
+ // that render via shadow DOM with no text content).
80396
+ const lightDomNodes = Array.from(this.querySelectorAll('[slot="displayValue"]:not(slot)'));
80397
+ const hasContent = lightDomNodes.some((node) => (
80398
+ node.textContent.trim().length > 0 ||
80399
+ node.children.length > 0 ||
80400
+ node.shadowRoot !== null
80401
+ ));
80402
+ if (this.hasDisplayValueContent !== hasContent) {
80403
+ this.hasDisplayValueContent = hasContent;
80404
+ this.requestUpdate();
80405
+ }
80406
+ return;
80407
+ }
80166
80408
  const nodes = slot.assignedNodes({ flatten: true });
80167
80409
 
80168
- this.hasDisplayValueContent = nodes.length > 0;
80410
+ // Check for actual visible content, not just node existence.
80411
+ // An empty <span slot="displayValue"></span> forwarded from the
80412
+ // consumer should not be treated as "has content" — it causes the
80413
+ // displayValue wrapper to render (with hasContent class) but show
80414
+ // nothing, blocking the combobox's synthetic displayValue from
80415
+ // being visible on preset/deeplink load.
80416
+ // Custom elements (e.g. <auro-icon>) that render via shadow DOM are
80417
+ // treated as content even when they have no text or light-DOM children.
80418
+ const hasContent = nodes.some((node) => {
80419
+ if (node.nodeType === Node.TEXT_NODE) {
80420
+ return node.textContent.trim().length > 0;
80421
+ }
80422
+ if (node.nodeType === Node.ELEMENT_NODE) {
80423
+ return node.textContent.trim().length > 0 ||
80424
+ node.children.length > 0 ||
80425
+ node.shadowRoot !== null;
80426
+ }
80427
+ return false;
80428
+ });
80429
+ if (this.hasDisplayValueContent !== hasContent) {
80430
+ this.hasDisplayValueContent = hasContent;
80431
+ this.requestUpdate();
80432
+ }
80169
80433
  }
80170
80434
 
80171
80435
  firstUpdated() {
@@ -80992,7 +81256,7 @@ let AuroBibtemplate$1 = class AuroBibtemplate extends i$2 {
80992
81256
  }
80993
81257
  };
80994
81258
 
80995
- var formkitVersion$3 = '202607102309';
81259
+ var formkitVersion$3 = '202607161943';
80996
81260
 
80997
81261
  var styleCss$1$3 = i$4`.util_displayInline{display:inline}.util_displayInlineBlock{display:inline-block}.util_displayBlock{display:block}.util_displayFlex{display:flex}.util_displayHidden{display:none}.util_displayHiddenVisually{position:absolute;overflow:hidden;clip:rect(1px, 1px, 1px, 1px);width:1px;height:1px;padding:0;border:0}:host{display:block;text-align:left}:host [auro-dropdown]{--ds-auro-dropdown-trigger-background-color: transparent}:host #inputInBib::part(wrapper){box-shadow:none}:host #inputInBib::part(accent-left){display:none}:host([layout*=classic]) [auro-input]{width:100%}:host([layout*=classic]) [auro-input]::part(helpText){display:none}:host([layout*=classic]) #slotHolder{display:none}`;
80998
81262
 
@@ -82029,14 +82293,34 @@ class AuroCombobox extends AuroElement$3 {
82029
82293
  const displayValueEl = this.menu.optionSelected.querySelector("[slot='displayValue']");
82030
82294
  if (displayValueEl) {
82031
82295
  this.input.appendChild(displayValueEl.cloneNode(true));
82032
- // auro-input's hasDisplayValueContent is non-reactive; nudge it to
82033
- // re-evaluate the slot and re-render so the displayValue wrapper
82034
- // gets its hasContent class. Without this, the apple/icon stays
82035
- // hidden when input.value is set in the same tick as the append.
82036
- if (typeof this.input.checkDisplayValueSlotChange === 'function') {
82037
- this.input.checkDisplayValueSlotChange();
82038
- this.input.requestUpdate();
82039
- }
82296
+ }
82297
+
82298
+ // auro-input's hasDisplayValueContent is non-reactive; nudge it to
82299
+ // re-evaluate the slot and re-render so the displayValue wrapper
82300
+ // gets its hasContent class. Without this, the apple/icon stays
82301
+ // hidden when input.value is set in the same tick as the append.
82302
+ if (typeof this.input.checkDisplayValueSlotChange === 'function') {
82303
+ this.input.checkDisplayValueSlotChange();
82304
+ }
82305
+ } else if (this.value) {
82306
+ // No optionSelected yet (e.g. setMenuValue was called but the menu's
82307
+ // auroMenu-selectedOption event hasn't fired yet, or we're on remount
82308
+ // with no options loaded). Synthesize a displayValue from the value so
82309
+ // the overlay isn't blank.
82310
+ //
82311
+ // NOTE: This renders the raw machine value (e.g. "SEA"), not the
82312
+ // human-readable label (e.g. "Seattle, WA"). For consumers where
82313
+ // value ≠ label, this produces a brief flash of the raw value until
82314
+ // the option elements load and updateTriggerTextDisplay re-runs with
82315
+ // the correct label. This is intentionally preferred over a blank
82316
+ // state — the displayValueInTrigger.remove() cleanup above ensures
82317
+ // this placeholder is replaced once the real option is available.
82318
+ const syntheticDV = document.createElement('span');
82319
+ syntheticDV.setAttribute('slot', 'displayValue');
82320
+ syntheticDV.textContent = this.value;
82321
+ this.input.appendChild(syntheticDV);
82322
+ if (typeof this.input.checkDisplayValueSlotChange === 'function') {
82323
+ this.input.checkDisplayValueSlotChange();
82040
82324
  }
82041
82325
  }
82042
82326
 
@@ -82209,6 +82493,10 @@ class AuroCombobox extends AuroElement$3 {
82209
82493
  // from combobox's light DOM and won't be detected by dropdown's contains() check.
82210
82494
  this.dropdown.noHideOnThisFocusLoss = true;
82211
82495
 
82496
+ // Suppress the dropdown's generic focus restoration on close — the combobox
82497
+ // manages its own focus via setClearBtnFocus / setInputFocus / keyboard strategy.
82498
+ this.dropdown.noFocusRestoreOnClose = true;
82499
+
82212
82500
  // Listen for the ID to be added to the dropdown so we can capture it and use it for accessibility.
82213
82501
  this.dropdown.addEventListener('auroDropdown-idAdded', (event) => {
82214
82502
  this.dropdownId = event.detail.id;
@@ -82282,7 +82570,11 @@ class AuroCombobox extends AuroElement$3 {
82282
82570
  // after the dropdown layout settles.
82283
82571
 
82284
82572
  doubleRaf$1(() => {
82285
- this.setInputFocus();
82573
+ // Guard: skip if the dropdown closed before this rAF fired
82574
+ // (e.g. user selected an option immediately after the bib opened).
82575
+ if (this.dropdownOpen) {
82576
+ this.setInputFocus();
82577
+ }
82286
82578
  if (this._inFullscreenTransition) {
82287
82579
  this._inFullscreenTransition = false;
82288
82580
  }
@@ -82329,7 +82621,9 @@ class AuroCombobox extends AuroElement$3 {
82329
82621
  }
82330
82622
 
82331
82623
  this._scheduleTimer(() => {
82332
- this.setInputFocus();
82624
+ if (this.dropdown.isPopoverVisible) {
82625
+ this.setInputFocus();
82626
+ }
82333
82627
  }, 0);
82334
82628
  });
82335
82629
  }
@@ -82338,14 +82632,19 @@ class AuroCombobox extends AuroElement$3 {
82338
82632
  * @private
82339
82633
  */
82340
82634
  setClearBtnFocus() {
82341
- const clearBtn = this.input.shadowRoot.querySelector('.clearBtn');
82342
- if (clearBtn) {
82343
- // Wait for the element to fully render across
82344
- // multiple Lit update cycles before moving focus
82345
- doubleRaf$1(() => {
82635
+ doubleRaf$1(() => {
82636
+ // First establish focus inside the input's shadow root.
82637
+ // Without this, clearBtn.focus() silently fails when focus is on
82638
+ // document.body (e.g. after a click selection closes the bib dialog).
82639
+ // delegatesFocus on BaseInput routes this to the native <input>.
82640
+ this.input.focus();
82641
+
82642
+ // Now move focus to the clear button within the same shadow root.
82643
+ const clearBtn = this.input.shadowRoot.querySelector('.clearBtn');
82644
+ if (clearBtn) {
82346
82645
  clearBtn.focus();
82347
- });
82348
- }
82646
+ }
82647
+ });
82349
82648
  }
82350
82649
 
82351
82650
  /**
@@ -82556,6 +82855,9 @@ class AuroCombobox extends AuroElement$3 {
82556
82855
  // only — fresh user selections take the existing hideBib path.
82557
82856
  if (isEcho && this.menu.optionSelected) {
82558
82857
  this._programmaticFilterRefresh = true;
82858
+ this.updateComplete.then(() => {
82859
+ this._programmaticFilterRefresh = false;
82860
+ });
82559
82861
  }
82560
82862
  });
82561
82863
 
@@ -82808,10 +83110,6 @@ class AuroCombobox extends AuroElement$3 {
82808
83110
  if (this.dropdown.isBibFullscreen && this.input.value && this.input.value.length > 0 && this.dropdown.isPopoverVisible) {
82809
83111
  this.setInputFocus();
82810
83112
  }
82811
-
82812
- if (this._programmaticFilterRefresh) {
82813
- this._programmaticFilterRefresh = false;
82814
- }
82815
83113
  }
82816
83114
 
82817
83115
  /**
@@ -82825,10 +83123,12 @@ class AuroCombobox extends AuroElement$3 {
82825
83123
  inputResolver: (comp, ctx) => (ctx.isModal && comp.inputInBib ? comp.inputInBib : comp.input),
82826
83124
  });
82827
83125
 
82828
- this.addEventListener('focusin', () => {
83126
+ this.addEventListener('focusin', (event) => {
82829
83127
  this.touched = true;
82830
83128
 
82831
- this.focus();
83129
+ if (event.composedPath()[0] === this) {
83130
+ this.focus();
83131
+ }
82832
83132
  });
82833
83133
 
82834
83134
  this.addEventListener('auroFormElement-validated', (evt) => {
@@ -83008,6 +83308,12 @@ class AuroCombobox extends AuroElement$3 {
83008
83308
  // setting the flag unconditionally here masks the user-typed open path.
83009
83309
  if (!this._userTyped) {
83010
83310
  this._programmaticFilterRefresh = true;
83311
+ // Self-clear after this update cycle completes. This collapses
83312
+ // the previous scattered clear-points into one and prevents the
83313
+ // flag from surviving into the next user interaction.
83314
+ this.updateComplete.then(() => {
83315
+ this._programmaticFilterRefresh = false;
83316
+ });
83011
83317
  }
83012
83318
 
83013
83319
  if (this.input.value !== this.value) {
@@ -83097,10 +83403,6 @@ class AuroCombobox extends AuroElement$3 {
83097
83403
  } else if (!this.dropdown.isBibFullscreen) {
83098
83404
  this.hideBib();
83099
83405
  }
83100
-
83101
- if (this._programmaticFilterRefresh) {
83102
- this._programmaticFilterRefresh = false;
83103
- }
83104
83406
  }
83105
83407
 
83106
83408
  if (changedProperties.has('error')) {
@@ -83282,7 +83584,7 @@ class AuroCombobox extends AuroElement$3 {
83282
83584
  <slot @slotchange="${this.handleSlotChange}"></slot>
83283
83585
  <${this.inputTag}
83284
83586
  id="inputInBib"
83285
- autofocus
83587
+ ?autofocus="${this.dropdownOpen && this.dropdown?.isBibFullscreen}"
83286
83588
  @input="${this.handleInputValueChange}"
83287
83589
  .a11yActivedescendant="${this.dropdownOpen && this.optionActive ? this.optionActive.id : undefined}"
83288
83590
  .a11yControls=${`${this.dropdownId}-floater-bib`}
@@ -89813,7 +90115,7 @@ let AuroHelpText$1 = class AuroHelpText extends i$2 {
89813
90115
  }
89814
90116
  };
89815
90117
 
89816
- var formkitVersion$1 = '202607102309';
90118
+ var formkitVersion$1 = '202607161943';
89817
90119
 
89818
90120
  class AuroElement extends i$2 {
89819
90121
  static get properties() {
@@ -89942,7 +90244,6 @@ class AuroDropdown extends AuroElement {
89942
90244
  static get shadowRootOptions() {
89943
90245
  return {
89944
90246
  ...AuroElement.shadowRootOptions,
89945
- delegatesFocus: true,
89946
90247
  };
89947
90248
  }
89948
90249
 
@@ -89954,6 +90255,15 @@ class AuroDropdown extends AuroElement {
89954
90255
  this.matchWidth = false;
89955
90256
  this.noHideOnThisFocusLoss = false;
89956
90257
 
90258
+ /**
90259
+ * When true, the dropdown skips its generic focus restoration on close.
90260
+ * Set by consumers (e.g. combobox) that manage their own focus routing
90261
+ * via setClearBtnFocus / setInputFocus / keyboard strategy.
90262
+ * Separate from noHideOnThisFocusLoss (which controls auto-close behavior).
90263
+ * @private
90264
+ */
90265
+ this.noFocusRestoreOnClose = false;
90266
+
89957
90267
  this.errorMessage = undefined; // TODO - check with Doug if there is still more to do here
89958
90268
 
89959
90269
  // Layout Config
@@ -90109,7 +90419,49 @@ class AuroDropdown extends AuroElement {
90109
90419
  focusables[0].focus();
90110
90420
  }
90111
90421
  } else {
90422
+ this.focusTrigger();
90423
+ }
90424
+ }
90425
+
90426
+ /**
90427
+ * Focus the trigger content. When the trigger wrapper itself is focusable
90428
+ * (has tabindex), focus it directly. Otherwise, focus the first focusable
90429
+ * element slotted into the trigger slot (e.g. the auro-input).
90430
+ * @private
90431
+ */
90432
+ focusTrigger() {
90433
+ if (this.trigger.hasAttribute('tabindex')) {
90112
90434
  this.trigger.focus();
90435
+ } else {
90436
+ // Slotted content isn't a DOM child of the trigger div, so
90437
+ // getFocusableElements can't find it. Query assigned nodes directly.
90438
+ const slot = this.trigger.querySelector('slot[name="trigger"]');
90439
+ if (slot) {
90440
+ const assigned = slot.assignedElements();
90441
+ for (const el of assigned) {
90442
+ if (el.hasAttribute('disabled')) {
90443
+ continue;
90444
+ }
90445
+ // Try finding a focusable descendant first (handles non-focusable
90446
+ // wrappers like <div> containing a <button>). If none found, try
90447
+ // focusing the element directly (works for custom elements like
90448
+ // auro-input that have delegatesFocus or a custom focus() method).
90449
+ const descendants = getFocusableElements(el);
90450
+ if (descendants.length > 0) {
90451
+ descendants[0].focus();
90452
+ return;
90453
+ }
90454
+ el.focus();
90455
+ if (document.activeElement === el) {
90456
+ return;
90457
+ }
90458
+ }
90459
+ }
90460
+ // Fallback: try DOM children (non-slotted content)
90461
+ const focusables = getFocusableElements(this.trigger);
90462
+ if (focusables.length > 0) {
90463
+ focusables[0].focus();
90464
+ }
90113
90465
  }
90114
90466
  }
90115
90467
 
@@ -90562,15 +90914,17 @@ class AuroDropdown extends AuroElement {
90562
90914
  }
90563
90915
 
90564
90916
  const eventType = event.detail.eventType || "unknown";
90565
- if (!this.isPopoverVisible && this.hasFocus && eventType === "keydown") {
90566
- this.trigger.focus();
90917
+ if (!this.isPopoverVisible && this.hasFocus && eventType === "keydown" && !this.noFocusRestoreOnClose) {
90918
+ this.focusTrigger();
90567
90919
  }
90568
90920
 
90569
90921
 
90570
90922
  // On Tab-driven close (eventType "focusloss"), let focus advance naturally
90571
90923
  // — restoring to the trigger would trap the user on this dropdown, forcing
90572
90924
  // an extra Tab to move on. Escape and outside-click still restore.
90573
- if (!this.isPopoverVisible && eventType !== "focusloss") {
90925
+ // When noFocusRestoreOnClose is true, the consumer (e.g. combobox) manages
90926
+ // its own focus restoration — skip the generic trigger focus to avoid races.
90927
+ if (!this.isPopoverVisible && eventType !== "focusloss" && !this.noFocusRestoreOnClose) {
90574
90928
  // wait til the bib gets fully closed and rendered
90575
90929
  setTimeout(() => {
90576
90930
  // Skip if the bib re-opened, or if focus moved intentionally outside the dropdown (not to body).
@@ -90582,7 +90936,7 @@ class AuroDropdown extends AuroElement {
90582
90936
  return;
90583
90937
  }
90584
90938
  // Restore focus to the trigger.
90585
- this.trigger.focus();
90939
+ this.focusTrigger();
90586
90940
  });
90587
90941
  }
90588
90942
  }
@@ -91856,7 +92210,7 @@ class AuroHelpText extends i$2 {
91856
92210
  }
91857
92211
  }
91858
92212
 
91859
- var formkitVersion = '202607102309';
92213
+ var formkitVersion = '202607161943';
91860
92214
 
91861
92215
  var styleCss = i$4`.util_displayInline{display:inline}.util_displayInlineBlock{display:inline-block}.util_displayBlock{display:block}.util_displayFlex{display:flex}.util_displayHidden{display:none}.util_displayHiddenVisually{position:absolute;overflow:hidden;clip:rect(1px, 1px, 1px, 1px);width:1px;height:1px;padding:0;border:0}.body-default{font-size:var(--wcss-body-default-font-size, 1rem);font-weight:var(--wcss-body-default-weight, );line-height:var(--wcss-body-default-line-height, 1.5rem)}.body-default,.body-default-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-default-emphasized{font-size:var(--wcss-body-default-emphasized-font-size, 1rem);font-weight:var(--wcss-body-default-emphasized-weight, );line-height:var(--wcss-body-default-emphasized-line-height, 1.5rem)}.body-lg{font-size:var(--wcss-body-lg-font-size, 1.125rem);font-weight:var(--wcss-body-lg-weight, );line-height:var(--wcss-body-lg-line-height, 1.625rem)}.body-lg,.body-lg-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-lg-emphasized{font-size:var(--wcss-body-lg-emphasized-font-size, 1.125rem);font-weight:var(--wcss-body-lg-emphasized-weight, );line-height:var(--wcss-body-lg-emphasized-line-height, 1.625rem)}.body-sm{font-size:var(--wcss-body-sm-font-size, 0.875rem);font-weight:var(--wcss-body-sm-weight, );line-height:var(--wcss-body-sm-line-height, 1.25rem)}.body-sm,.body-sm-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-sm-emphasized{font-size:var(--wcss-body-sm-emphasized-font-size, 0.875rem);font-weight:var(--wcss-body-sm-emphasized-weight, );line-height:var(--wcss-body-sm-emphasized-line-height, 1.25rem)}.body-xs{font-size:var(--wcss-body-xs-font-size, 0.75rem);font-weight:var(--wcss-body-xs-weight, );line-height:var(--wcss-body-xs-line-height, 1rem)}.body-xs,.body-xs-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-xs-emphasized{font-size:var(--wcss-body-xs-emphasized-font-size, 0.75rem);font-weight:var(--wcss-body-xs-emphasized-weight, );line-height:var(--wcss-body-xs-emphasized-line-height, 1rem)}.body-2xs{font-size:var(--wcss-body-2xs-font-size, 0.625rem);font-weight:var(--wcss-body-2xs-weight, );line-height:var(--wcss-body-2xs-line-height, 0.875rem)}.body-2xs,.body-2xs-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-2xs-emphasized{font-size:var(--wcss-body-2xs-emphasized-font-size, 0.625rem);font-weight:var(--wcss-body-2xs-emphasized-weight, );line-height:var(--wcss-body-2xs-emphasized-line-height, 0.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, 300);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, 300);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, 0.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, 0.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, 0.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, 0.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, 0.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, 0.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(0.875rem, 1.1666666667vw, 0.875rem));font-weight:var(--wcss-accent-2xs-weight, 450);letter-spacing:var(--wcss-accent-2xs-letter-spacing, 0.1em);line-height:var(--wcss-accent-2xs-line-height, 1.3);text-transform:uppercase}[auro-dropdown]{--ds-auro-dropdown-trigger-border-color: var(--ds-auro-select-border-color);--ds-auro-dropdown-trigger-background-color: var(--ds-auro-select-background-color);--ds-auro-dropdown-trigger-container-color: var(--ds-auro-select-background-color);--ds-auro-dropdown-trigger-outline-color: var(--ds-auro-select-outline-color)}:host{display:inline-block;text-align:left;vertical-align:top}:host([layout*=emphasized]) [auro-dropdown],:host([layout*=snowflake]) [auro-dropdown]{--ds-auro-select-border-color: transparent}:host([layout*=emphasized]) .mainContent,:host([layout*=snowflake]) .mainContent{text-align:center}.mainContent{position:relative;display:flex;overflow:hidden;flex:1;flex-direction:column;align-items:center;justify-content:center}.valueContainer [slot=displayValue]{display:none}.accents{display:flex;flex-direction:row;align-items:center;justify-content:center}::slotted([slot=typeIcon]){margin-right:var(--ds-size-100, 0.5rem)}.displayValue{display:block}.displayValue:not(.force){display:none}.displayValue:not(.force).hasContent:is(.withValue):not(.hasFocus){display:block}.triggerContent{display:flex;width:100%;align-items:center;justify-content:center}:host([layout*=emphasized]) .triggerContent{padding:0 var(--ds-size-100, 0.5rem) 0 var(--ds-size-300, 1.5rem)}:host([layout*=snowflake]) .triggerContent{padding:0 var(--ds-size-100, 0.5rem) 0 var(--ds-size-200, 1rem)}:host([layout*=snowflake]) label{padding-block:var(--ds-size-25, 0.125rem)}:host([layout*=classic]) .triggerContent{padding:0 var(--ds-size-100, 0.5rem)}:host([layout*=classic]) .mainContent{align-items:start}:host([layout*=classic]) label{overflow:hidden;cursor:text;text-overflow:ellipsis;white-space:nowrap}:host([layout*=classic]) .value{height:auto}label{color:var(--ds-auro-select-label-text-color)}:host(:is([validity]:not([validity=valid]))) [auro-dropdown]{--ds-auro-select-border-color: var(--ds-basic-color-status-error, #e31f26);--ds-auro-select-outline-color: var(--ds-basic-color-status-error, #e31f26);--ds-auro-dropdown-helptext-text-color: var(--ds-basic-color-texticon-default, #2a2a2a)}:host([ondark]:is([validity]:not([validity=valid]))) [auro-dropdown],:host([appearance=inverse]:is([validity]:not([validity=valid]))) [auro-dropdown]{--ds-auro-select-border-color: var(--ds-advanced-color-state-error-inverse, #f9a4a8);--ds-auro-select-outline-color: var(--ds-advanced-color-state-error-inverse, #f9a4a8);--ds-auro-dropdown-helptext-text-color: var(--ds-basic-color-texticon-inverse, #ffffff)}#slotHolder{display:none}:host([fluid]){width:100%}:host([disabled]){pointer-events:none;user-select:none}:host([disabled]:not([ondark])) [auro-dropdown],:host([disabled]:not([appearance=inverse])) [auro-dropdown]{--ds-auro-select-border-color: var(--ds-basic-color-border-subtle, #dddddd)}:host(:not([layout*=classic])[disabled][ondark]) [auro-dropdown],:host(:not([layout*=classic])[disabled][appearance=inverse]) [auro-dropdown]{--ds-auro-select-border-color: transparent}`;
91862
92216