@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
@@ -11700,9 +11700,10 @@ let DomHandler$3 = class DomHandler {
11700
11700
  let BaseInput$2 = class BaseInput extends AuroElement$6 {
11701
11701
 
11702
11702
  // Delegate focus to the native <input> inside the shadow root so that
11703
- // showModal()'s dialog focusing steps reach the input element.
11704
- // This keeps the mobile virtual keyboard open when the fullscreen dialog
11705
- // opens, because the browser sees an input-to-input focus transfer.
11703
+ // clicking anywhere on the input wrapper focuses the native input, and
11704
+ // programmatic .focus() calls on elements in the shadow DOM work correctly.
11705
+ // The initial-load focus theft was caused by the static `autofocus`
11706
+ // attribute on the bib input (now conditional), not by delegatesFocus.
11706
11707
  static get shadowRootOptions() {
11707
11708
  return {
11708
11709
  ...AuroElement$6.shadowRootOptions,
@@ -13379,7 +13380,7 @@ let AuroHelpText$8 = class AuroHelpText extends i$3 {
13379
13380
  }
13380
13381
  };
13381
13382
 
13382
- var formkitVersion$8 = '202607102309';
13383
+ var formkitVersion$8 = '202607161943';
13383
13384
 
13384
13385
  // Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
13385
13386
  // See LICENSE in the project root for license information.
@@ -13665,15 +13666,50 @@ let AuroInput$2 = class AuroInput extends BaseInput$2 {
13665
13666
  * @returns {void}
13666
13667
  */
13667
13668
  checkDisplayValueSlotChange() {
13668
- // flatten:true resolves through auro-combobox's forwarding slot
13669
- // (<slot name="displayValue" slot="displayValue">) so a clone appended
13670
- // directly to auro-input's light DOM alongside the forwarder still
13671
- // counts as content. The prior nodes[0].tagName === 'SLOT' recursion
13672
- // discarded any siblings past the forwarder.
13673
- const slot = this.shadowRoot.querySelector('slot[name="displayValue"]');
13669
+ const slot = this.shadowRoot?.querySelector('slot[name="displayValue"]');
13670
+ if (!slot) {
13671
+ // Shadow slot not yet rendered fall back to checking light-DOM
13672
+ // children so hasDisplayValueContent isn't stuck false when called
13673
+ // before firstUpdated (e.g. from auro-combobox during mount).
13674
+ // Check for any element (including custom elements like <auro-icon>
13675
+ // that render via shadow DOM with no text content).
13676
+ const lightDomNodes = Array.from(this.querySelectorAll('[slot="displayValue"]:not(slot)'));
13677
+ const hasContent = lightDomNodes.some((node) => (
13678
+ node.textContent.trim().length > 0 ||
13679
+ node.children.length > 0 ||
13680
+ node.shadowRoot !== null
13681
+ ));
13682
+ if (this.hasDisplayValueContent !== hasContent) {
13683
+ this.hasDisplayValueContent = hasContent;
13684
+ this.requestUpdate();
13685
+ }
13686
+ return;
13687
+ }
13674
13688
  const nodes = slot.assignedNodes({ flatten: true });
13675
13689
 
13676
- this.hasDisplayValueContent = nodes.length > 0;
13690
+ // Check for actual visible content, not just node existence.
13691
+ // An empty <span slot="displayValue"></span> forwarded from the
13692
+ // consumer should not be treated as "has content" — it causes the
13693
+ // displayValue wrapper to render (with hasContent class) but show
13694
+ // nothing, blocking the combobox's synthetic displayValue from
13695
+ // being visible on preset/deeplink load.
13696
+ // Custom elements (e.g. <auro-icon>) that render via shadow DOM are
13697
+ // treated as content even when they have no text or light-DOM children.
13698
+ const hasContent = nodes.some((node) => {
13699
+ if (node.nodeType === Node.TEXT_NODE) {
13700
+ return node.textContent.trim().length > 0;
13701
+ }
13702
+ if (node.nodeType === Node.ELEMENT_NODE) {
13703
+ return node.textContent.trim().length > 0 ||
13704
+ node.children.length > 0 ||
13705
+ node.shadowRoot !== null;
13706
+ }
13707
+ return false;
13708
+ });
13709
+ if (this.hasDisplayValueContent !== hasContent) {
13710
+ this.hasDisplayValueContent = hasContent;
13711
+ this.requestUpdate();
13712
+ }
13677
13713
  }
13678
13714
 
13679
13715
  firstUpdated() {
@@ -27776,7 +27812,7 @@ let AuroBibtemplate$3 = class AuroBibtemplate extends i$3 {
27776
27812
  }
27777
27813
  };
27778
27814
 
27779
- var formkitVersion$2$1 = '202607102309';
27815
+ var formkitVersion$2$1 = '202607161943';
27780
27816
 
27781
27817
  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$2`${s$3(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$6`: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}
27782
27818
  `,u$4$2=i$6`.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}}
@@ -33504,7 +33540,7 @@ let AuroHelpText$2$1 = class AuroHelpText extends i$3 {
33504
33540
  }
33505
33541
  };
33506
33542
 
33507
- var formkitVersion$1$3 = '202607102309';
33543
+ var formkitVersion$1$3 = '202607161943';
33508
33544
 
33509
33545
  let AuroElement$2$2 = class AuroElement extends i$3 {
33510
33546
  static get properties() {
@@ -33633,7 +33669,6 @@ let AuroDropdown$3 = class AuroDropdown extends AuroElement$2$2 {
33633
33669
  static get shadowRootOptions() {
33634
33670
  return {
33635
33671
  ...AuroElement$2$2.shadowRootOptions,
33636
- delegatesFocus: true,
33637
33672
  };
33638
33673
  }
33639
33674
 
@@ -33645,6 +33680,15 @@ let AuroDropdown$3 = class AuroDropdown extends AuroElement$2$2 {
33645
33680
  this.matchWidth = false;
33646
33681
  this.noHideOnThisFocusLoss = false;
33647
33682
 
33683
+ /**
33684
+ * When true, the dropdown skips its generic focus restoration on close.
33685
+ * Set by consumers (e.g. combobox) that manage their own focus routing
33686
+ * via setClearBtnFocus / setInputFocus / keyboard strategy.
33687
+ * Separate from noHideOnThisFocusLoss (which controls auto-close behavior).
33688
+ * @private
33689
+ */
33690
+ this.noFocusRestoreOnClose = false;
33691
+
33648
33692
  this.errorMessage = undefined; // TODO - check with Doug if there is still more to do here
33649
33693
 
33650
33694
  // Layout Config
@@ -33800,7 +33844,49 @@ let AuroDropdown$3 = class AuroDropdown extends AuroElement$2$2 {
33800
33844
  focusables[0].focus();
33801
33845
  }
33802
33846
  } else {
33847
+ this.focusTrigger();
33848
+ }
33849
+ }
33850
+
33851
+ /**
33852
+ * Focus the trigger content. When the trigger wrapper itself is focusable
33853
+ * (has tabindex), focus it directly. Otherwise, focus the first focusable
33854
+ * element slotted into the trigger slot (e.g. the auro-input).
33855
+ * @private
33856
+ */
33857
+ focusTrigger() {
33858
+ if (this.trigger.hasAttribute('tabindex')) {
33803
33859
  this.trigger.focus();
33860
+ } else {
33861
+ // Slotted content isn't a DOM child of the trigger div, so
33862
+ // getFocusableElements can't find it. Query assigned nodes directly.
33863
+ const slot = this.trigger.querySelector('slot[name="trigger"]');
33864
+ if (slot) {
33865
+ const assigned = slot.assignedElements();
33866
+ for (const el of assigned) {
33867
+ if (el.hasAttribute('disabled')) {
33868
+ continue;
33869
+ }
33870
+ // Try finding a focusable descendant first (handles non-focusable
33871
+ // wrappers like <div> containing a <button>). If none found, try
33872
+ // focusing the element directly (works for custom elements like
33873
+ // auro-input that have delegatesFocus or a custom focus() method).
33874
+ const descendants = getFocusableElements$4(el);
33875
+ if (descendants.length > 0) {
33876
+ descendants[0].focus();
33877
+ return;
33878
+ }
33879
+ el.focus();
33880
+ if (document.activeElement === el) {
33881
+ return;
33882
+ }
33883
+ }
33884
+ }
33885
+ // Fallback: try DOM children (non-slotted content)
33886
+ const focusables = getFocusableElements$4(this.trigger);
33887
+ if (focusables.length > 0) {
33888
+ focusables[0].focus();
33889
+ }
33804
33890
  }
33805
33891
  }
33806
33892
 
@@ -34253,15 +34339,17 @@ let AuroDropdown$3 = class AuroDropdown extends AuroElement$2$2 {
34253
34339
  }
34254
34340
 
34255
34341
  const eventType = event.detail.eventType || "unknown";
34256
- if (!this.isPopoverVisible && this.hasFocus && eventType === "keydown") {
34257
- this.trigger.focus();
34342
+ if (!this.isPopoverVisible && this.hasFocus && eventType === "keydown" && !this.noFocusRestoreOnClose) {
34343
+ this.focusTrigger();
34258
34344
  }
34259
34345
 
34260
34346
 
34261
34347
  // On Tab-driven close (eventType "focusloss"), let focus advance naturally
34262
34348
  // — restoring to the trigger would trap the user on this dropdown, forcing
34263
34349
  // an extra Tab to move on. Escape and outside-click still restore.
34264
- if (!this.isPopoverVisible && eventType !== "focusloss") {
34350
+ // When noFocusRestoreOnClose is true, the consumer (e.g. combobox) manages
34351
+ // its own focus restoration — skip the generic trigger focus to avoid races.
34352
+ if (!this.isPopoverVisible && eventType !== "focusloss" && !this.noFocusRestoreOnClose) {
34265
34353
  // wait til the bib gets fully closed and rendered
34266
34354
  setTimeout(() => {
34267
34355
  // Skip if the bib re-opened, or if focus moved intentionally outside the dropdown (not to body).
@@ -34273,7 +34361,7 @@ let AuroDropdown$3 = class AuroDropdown extends AuroElement$2$2 {
34273
34361
  return;
34274
34362
  }
34275
34363
  // Restore focus to the trigger.
34276
- this.trigger.focus();
34364
+ this.focusTrigger();
34277
34365
  });
34278
34366
  }
34279
34367
  }
@@ -45447,9 +45535,10 @@ let DomHandler$2 = class DomHandler {
45447
45535
  let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
45448
45536
 
45449
45537
  // Delegate focus to the native <input> inside the shadow root so that
45450
- // showModal()'s dialog focusing steps reach the input element.
45451
- // This keeps the mobile virtual keyboard open when the fullscreen dialog
45452
- // opens, because the browser sees an input-to-input focus transfer.
45538
+ // clicking anywhere on the input wrapper focuses the native input, and
45539
+ // programmatic .focus() calls on elements in the shadow DOM work correctly.
45540
+ // The initial-load focus theft was caused by the static `autofocus`
45541
+ // attribute on the bib input (now conditional), not by delegatesFocus.
45453
45542
  static get shadowRootOptions() {
45454
45543
  return {
45455
45544
  ...AuroElement$1$3.shadowRootOptions,
@@ -47126,7 +47215,7 @@ let AuroHelpText$1$3 = class AuroHelpText extends i$3 {
47126
47215
  }
47127
47216
  };
47128
47217
 
47129
- var formkitVersion$7 = '202607102309';
47218
+ var formkitVersion$7 = '202607161943';
47130
47219
 
47131
47220
  // Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
47132
47221
  // See LICENSE in the project root for license information.
@@ -47412,15 +47501,50 @@ let AuroInput$1 = class AuroInput extends BaseInput$1 {
47412
47501
  * @returns {void}
47413
47502
  */
47414
47503
  checkDisplayValueSlotChange() {
47415
- // flatten:true resolves through auro-combobox's forwarding slot
47416
- // (<slot name="displayValue" slot="displayValue">) so a clone appended
47417
- // directly to auro-input's light DOM alongside the forwarder still
47418
- // counts as content. The prior nodes[0].tagName === 'SLOT' recursion
47419
- // discarded any siblings past the forwarder.
47420
- const slot = this.shadowRoot.querySelector('slot[name="displayValue"]');
47504
+ const slot = this.shadowRoot?.querySelector('slot[name="displayValue"]');
47505
+ if (!slot) {
47506
+ // Shadow slot not yet rendered fall back to checking light-DOM
47507
+ // children so hasDisplayValueContent isn't stuck false when called
47508
+ // before firstUpdated (e.g. from auro-combobox during mount).
47509
+ // Check for any element (including custom elements like <auro-icon>
47510
+ // that render via shadow DOM with no text content).
47511
+ const lightDomNodes = Array.from(this.querySelectorAll('[slot="displayValue"]:not(slot)'));
47512
+ const hasContent = lightDomNodes.some((node) => (
47513
+ node.textContent.trim().length > 0 ||
47514
+ node.children.length > 0 ||
47515
+ node.shadowRoot !== null
47516
+ ));
47517
+ if (this.hasDisplayValueContent !== hasContent) {
47518
+ this.hasDisplayValueContent = hasContent;
47519
+ this.requestUpdate();
47520
+ }
47521
+ return;
47522
+ }
47421
47523
  const nodes = slot.assignedNodes({ flatten: true });
47422
47524
 
47423
- this.hasDisplayValueContent = nodes.length > 0;
47525
+ // Check for actual visible content, not just node existence.
47526
+ // An empty <span slot="displayValue"></span> forwarded from the
47527
+ // consumer should not be treated as "has content" — it causes the
47528
+ // displayValue wrapper to render (with hasContent class) but show
47529
+ // nothing, blocking the combobox's synthetic displayValue from
47530
+ // being visible on preset/deeplink load.
47531
+ // Custom elements (e.g. <auro-icon>) that render via shadow DOM are
47532
+ // treated as content even when they have no text or light-DOM children.
47533
+ const hasContent = nodes.some((node) => {
47534
+ if (node.nodeType === Node.TEXT_NODE) {
47535
+ return node.textContent.trim().length > 0;
47536
+ }
47537
+ if (node.nodeType === Node.ELEMENT_NODE) {
47538
+ return node.textContent.trim().length > 0 ||
47539
+ node.children.length > 0 ||
47540
+ node.shadowRoot !== null;
47541
+ }
47542
+ return false;
47543
+ });
47544
+ if (this.hasDisplayValueContent !== hasContent) {
47545
+ this.hasDisplayValueContent = hasContent;
47546
+ this.requestUpdate();
47547
+ }
47424
47548
  }
47425
47549
 
47426
47550
  firstUpdated() {
@@ -52067,7 +52191,7 @@ let AuroHelpText$1$2 = class AuroHelpText extends i$3 {
52067
52191
  }
52068
52192
  };
52069
52193
 
52070
- var formkitVersion$1$2 = '202607102309';
52194
+ var formkitVersion$1$2 = '202607161943';
52071
52195
 
52072
52196
  // Copyright (c) 2026 Alaska Airlines. All rights reserved. Licensed under the Apache-2.0 license
52073
52197
  // See LICENSE in the project root for license information.
@@ -56215,7 +56339,7 @@ let AuroHelpText$6 = class AuroHelpText extends i$3 {
56215
56339
  }
56216
56340
  };
56217
56341
 
56218
- var formkitVersion$6 = '202607102309';
56342
+ var formkitVersion$6 = '202607161943';
56219
56343
 
56220
56344
  let AuroElement$1$2 = class AuroElement extends i$3 {
56221
56345
  static get properties() {
@@ -56344,7 +56468,6 @@ let AuroDropdown$2 = class AuroDropdown extends AuroElement$1$2 {
56344
56468
  static get shadowRootOptions() {
56345
56469
  return {
56346
56470
  ...AuroElement$1$2.shadowRootOptions,
56347
- delegatesFocus: true,
56348
56471
  };
56349
56472
  }
56350
56473
 
@@ -56356,6 +56479,15 @@ let AuroDropdown$2 = class AuroDropdown extends AuroElement$1$2 {
56356
56479
  this.matchWidth = false;
56357
56480
  this.noHideOnThisFocusLoss = false;
56358
56481
 
56482
+ /**
56483
+ * When true, the dropdown skips its generic focus restoration on close.
56484
+ * Set by consumers (e.g. combobox) that manage their own focus routing
56485
+ * via setClearBtnFocus / setInputFocus / keyboard strategy.
56486
+ * Separate from noHideOnThisFocusLoss (which controls auto-close behavior).
56487
+ * @private
56488
+ */
56489
+ this.noFocusRestoreOnClose = false;
56490
+
56359
56491
  this.errorMessage = undefined; // TODO - check with Doug if there is still more to do here
56360
56492
 
56361
56493
  // Layout Config
@@ -56511,7 +56643,49 @@ let AuroDropdown$2 = class AuroDropdown extends AuroElement$1$2 {
56511
56643
  focusables[0].focus();
56512
56644
  }
56513
56645
  } else {
56646
+ this.focusTrigger();
56647
+ }
56648
+ }
56649
+
56650
+ /**
56651
+ * Focus the trigger content. When the trigger wrapper itself is focusable
56652
+ * (has tabindex), focus it directly. Otherwise, focus the first focusable
56653
+ * element slotted into the trigger slot (e.g. the auro-input).
56654
+ * @private
56655
+ */
56656
+ focusTrigger() {
56657
+ if (this.trigger.hasAttribute('tabindex')) {
56514
56658
  this.trigger.focus();
56659
+ } else {
56660
+ // Slotted content isn't a DOM child of the trigger div, so
56661
+ // getFocusableElements can't find it. Query assigned nodes directly.
56662
+ const slot = this.trigger.querySelector('slot[name="trigger"]');
56663
+ if (slot) {
56664
+ const assigned = slot.assignedElements();
56665
+ for (const el of assigned) {
56666
+ if (el.hasAttribute('disabled')) {
56667
+ continue;
56668
+ }
56669
+ // Try finding a focusable descendant first (handles non-focusable
56670
+ // wrappers like <div> containing a <button>). If none found, try
56671
+ // focusing the element directly (works for custom elements like
56672
+ // auro-input that have delegatesFocus or a custom focus() method).
56673
+ const descendants = getFocusableElements$3(el);
56674
+ if (descendants.length > 0) {
56675
+ descendants[0].focus();
56676
+ return;
56677
+ }
56678
+ el.focus();
56679
+ if (document.activeElement === el) {
56680
+ return;
56681
+ }
56682
+ }
56683
+ }
56684
+ // Fallback: try DOM children (non-slotted content)
56685
+ const focusables = getFocusableElements$3(this.trigger);
56686
+ if (focusables.length > 0) {
56687
+ focusables[0].focus();
56688
+ }
56515
56689
  }
56516
56690
  }
56517
56691
 
@@ -56964,15 +57138,17 @@ let AuroDropdown$2 = class AuroDropdown extends AuroElement$1$2 {
56964
57138
  }
56965
57139
 
56966
57140
  const eventType = event.detail.eventType || "unknown";
56967
- if (!this.isPopoverVisible && this.hasFocus && eventType === "keydown") {
56968
- this.trigger.focus();
57141
+ if (!this.isPopoverVisible && this.hasFocus && eventType === "keydown" && !this.noFocusRestoreOnClose) {
57142
+ this.focusTrigger();
56969
57143
  }
56970
57144
 
56971
57145
 
56972
57146
  // On Tab-driven close (eventType "focusloss"), let focus advance naturally
56973
57147
  // — restoring to the trigger would trap the user on this dropdown, forcing
56974
57148
  // an extra Tab to move on. Escape and outside-click still restore.
56975
- if (!this.isPopoverVisible && eventType !== "focusloss") {
57149
+ // When noFocusRestoreOnClose is true, the consumer (e.g. combobox) manages
57150
+ // its own focus restoration — skip the generic trigger focus to avoid races.
57151
+ if (!this.isPopoverVisible && eventType !== "focusloss" && !this.noFocusRestoreOnClose) {
56976
57152
  // wait til the bib gets fully closed and rendered
56977
57153
  setTimeout(() => {
56978
57154
  // Skip if the bib re-opened, or if focus moved intentionally outside the dropdown (not to body).
@@ -56984,7 +57160,7 @@ let AuroDropdown$2 = class AuroDropdown extends AuroElement$1$2 {
56984
57160
  return;
56985
57161
  }
56986
57162
  // Restore focus to the trigger.
56987
- this.trigger.focus();
57163
+ this.focusTrigger();
56988
57164
  });
56989
57165
  }
56990
57166
  }
@@ -60212,7 +60388,7 @@ let AuroHelpText$5 = class AuroHelpText extends i$3 {
60212
60388
  }
60213
60389
  };
60214
60390
 
60215
- var formkitVersion$5 = '202607102309';
60391
+ var formkitVersion$5 = '202607161943';
60216
60392
 
60217
60393
  // Copyright (c) Alaska Air. All right reserved. Licensed under the Apache-2.0 license
60218
60394
  // See LICENSE in the project root for license information.
@@ -61977,7 +62153,7 @@ let AuroHelpText$4 = class AuroHelpText extends i$3 {
61977
62153
  }
61978
62154
  };
61979
62155
 
61980
- var formkitVersion$4 = '202607102309';
62156
+ var formkitVersion$4 = '202607161943';
61981
62157
 
61982
62158
  // Copyright (c) 2026 Alaska Airlines. All rights reserved. Licensed under the Apache-2.0 license
61983
62159
  // See LICENSE in the project root for license information.
@@ -67290,7 +67466,7 @@ let AuroHelpText$2 = class AuroHelpText extends i$3 {
67290
67466
  }
67291
67467
  };
67292
67468
 
67293
- var formkitVersion$2 = '202607102309';
67469
+ var formkitVersion$2 = '202607161943';
67294
67470
 
67295
67471
  let AuroElement$2$1 = class AuroElement extends i$3 {
67296
67472
  static get properties() {
@@ -67419,7 +67595,6 @@ let AuroDropdown$1 = class AuroDropdown extends AuroElement$2$1 {
67419
67595
  static get shadowRootOptions() {
67420
67596
  return {
67421
67597
  ...AuroElement$2$1.shadowRootOptions,
67422
- delegatesFocus: true,
67423
67598
  };
67424
67599
  }
67425
67600
 
@@ -67431,6 +67606,15 @@ let AuroDropdown$1 = class AuroDropdown extends AuroElement$2$1 {
67431
67606
  this.matchWidth = false;
67432
67607
  this.noHideOnThisFocusLoss = false;
67433
67608
 
67609
+ /**
67610
+ * When true, the dropdown skips its generic focus restoration on close.
67611
+ * Set by consumers (e.g. combobox) that manage their own focus routing
67612
+ * via setClearBtnFocus / setInputFocus / keyboard strategy.
67613
+ * Separate from noHideOnThisFocusLoss (which controls auto-close behavior).
67614
+ * @private
67615
+ */
67616
+ this.noFocusRestoreOnClose = false;
67617
+
67434
67618
  this.errorMessage = undefined; // TODO - check with Doug if there is still more to do here
67435
67619
 
67436
67620
  // Layout Config
@@ -67586,7 +67770,49 @@ let AuroDropdown$1 = class AuroDropdown extends AuroElement$2$1 {
67586
67770
  focusables[0].focus();
67587
67771
  }
67588
67772
  } else {
67773
+ this.focusTrigger();
67774
+ }
67775
+ }
67776
+
67777
+ /**
67778
+ * Focus the trigger content. When the trigger wrapper itself is focusable
67779
+ * (has tabindex), focus it directly. Otherwise, focus the first focusable
67780
+ * element slotted into the trigger slot (e.g. the auro-input).
67781
+ * @private
67782
+ */
67783
+ focusTrigger() {
67784
+ if (this.trigger.hasAttribute('tabindex')) {
67589
67785
  this.trigger.focus();
67786
+ } else {
67787
+ // Slotted content isn't a DOM child of the trigger div, so
67788
+ // getFocusableElements can't find it. Query assigned nodes directly.
67789
+ const slot = this.trigger.querySelector('slot[name="trigger"]');
67790
+ if (slot) {
67791
+ const assigned = slot.assignedElements();
67792
+ for (const el of assigned) {
67793
+ if (el.hasAttribute('disabled')) {
67794
+ continue;
67795
+ }
67796
+ // Try finding a focusable descendant first (handles non-focusable
67797
+ // wrappers like <div> containing a <button>). If none found, try
67798
+ // focusing the element directly (works for custom elements like
67799
+ // auro-input that have delegatesFocus or a custom focus() method).
67800
+ const descendants = getFocusableElements$2(el);
67801
+ if (descendants.length > 0) {
67802
+ descendants[0].focus();
67803
+ return;
67804
+ }
67805
+ el.focus();
67806
+ if (document.activeElement === el) {
67807
+ return;
67808
+ }
67809
+ }
67810
+ }
67811
+ // Fallback: try DOM children (non-slotted content)
67812
+ const focusables = getFocusableElements$2(this.trigger);
67813
+ if (focusables.length > 0) {
67814
+ focusables[0].focus();
67815
+ }
67590
67816
  }
67591
67817
  }
67592
67818
 
@@ -68039,15 +68265,17 @@ let AuroDropdown$1 = class AuroDropdown extends AuroElement$2$1 {
68039
68265
  }
68040
68266
 
68041
68267
  const eventType = event.detail.eventType || "unknown";
68042
- if (!this.isPopoverVisible && this.hasFocus && eventType === "keydown") {
68043
- this.trigger.focus();
68268
+ if (!this.isPopoverVisible && this.hasFocus && eventType === "keydown" && !this.noFocusRestoreOnClose) {
68269
+ this.focusTrigger();
68044
68270
  }
68045
68271
 
68046
68272
 
68047
68273
  // On Tab-driven close (eventType "focusloss"), let focus advance naturally
68048
68274
  // — restoring to the trigger would trap the user on this dropdown, forcing
68049
68275
  // an extra Tab to move on. Escape and outside-click still restore.
68050
- if (!this.isPopoverVisible && eventType !== "focusloss") {
68276
+ // When noFocusRestoreOnClose is true, the consumer (e.g. combobox) manages
68277
+ // its own focus restoration — skip the generic trigger focus to avoid races.
68278
+ if (!this.isPopoverVisible && eventType !== "focusloss" && !this.noFocusRestoreOnClose) {
68051
68279
  // wait til the bib gets fully closed and rendered
68052
68280
  setTimeout(() => {
68053
68281
  // Skip if the bib re-opened, or if focus moved intentionally outside the dropdown (not to body).
@@ -68059,7 +68287,7 @@ let AuroDropdown$1 = class AuroDropdown extends AuroElement$2$1 {
68059
68287
  return;
68060
68288
  }
68061
68289
  // Restore focus to the trigger.
68062
- this.trigger.focus();
68290
+ this.focusTrigger();
68063
68291
  });
68064
68292
  }
68065
68293
  }
@@ -79233,9 +79461,10 @@ class DomHandler {
79233
79461
  class BaseInput extends AuroElement$1$1 {
79234
79462
 
79235
79463
  // Delegate focus to the native <input> inside the shadow root so that
79236
- // showModal()'s dialog focusing steps reach the input element.
79237
- // This keeps the mobile virtual keyboard open when the fullscreen dialog
79238
- // opens, because the browser sees an input-to-input focus transfer.
79464
+ // clicking anywhere on the input wrapper focuses the native input, and
79465
+ // programmatic .focus() calls on elements in the shadow DOM work correctly.
79466
+ // The initial-load focus theft was caused by the static `autofocus`
79467
+ // attribute on the bib input (now conditional), not by delegatesFocus.
79239
79468
  static get shadowRootOptions() {
79240
79469
  return {
79241
79470
  ...AuroElement$1$1.shadowRootOptions,
@@ -80912,7 +81141,7 @@ let AuroHelpText$1$1 = class AuroHelpText extends i$3 {
80912
81141
  }
80913
81142
  };
80914
81143
 
80915
- var formkitVersion$1$1 = '202607102309';
81144
+ var formkitVersion$1$1 = '202607161943';
80916
81145
 
80917
81146
  // Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
80918
81147
  // See LICENSE in the project root for license information.
@@ -81198,15 +81427,50 @@ class AuroInput extends BaseInput {
81198
81427
  * @returns {void}
81199
81428
  */
81200
81429
  checkDisplayValueSlotChange() {
81201
- // flatten:true resolves through auro-combobox's forwarding slot
81202
- // (<slot name="displayValue" slot="displayValue">) so a clone appended
81203
- // directly to auro-input's light DOM alongside the forwarder still
81204
- // counts as content. The prior nodes[0].tagName === 'SLOT' recursion
81205
- // discarded any siblings past the forwarder.
81206
- const slot = this.shadowRoot.querySelector('slot[name="displayValue"]');
81430
+ const slot = this.shadowRoot?.querySelector('slot[name="displayValue"]');
81431
+ if (!slot) {
81432
+ // Shadow slot not yet rendered fall back to checking light-DOM
81433
+ // children so hasDisplayValueContent isn't stuck false when called
81434
+ // before firstUpdated (e.g. from auro-combobox during mount).
81435
+ // Check for any element (including custom elements like <auro-icon>
81436
+ // that render via shadow DOM with no text content).
81437
+ const lightDomNodes = Array.from(this.querySelectorAll('[slot="displayValue"]:not(slot)'));
81438
+ const hasContent = lightDomNodes.some((node) => (
81439
+ node.textContent.trim().length > 0 ||
81440
+ node.children.length > 0 ||
81441
+ node.shadowRoot !== null
81442
+ ));
81443
+ if (this.hasDisplayValueContent !== hasContent) {
81444
+ this.hasDisplayValueContent = hasContent;
81445
+ this.requestUpdate();
81446
+ }
81447
+ return;
81448
+ }
81207
81449
  const nodes = slot.assignedNodes({ flatten: true });
81208
81450
 
81209
- this.hasDisplayValueContent = nodes.length > 0;
81451
+ // Check for actual visible content, not just node existence.
81452
+ // An empty <span slot="displayValue"></span> forwarded from the
81453
+ // consumer should not be treated as "has content" — it causes the
81454
+ // displayValue wrapper to render (with hasContent class) but show
81455
+ // nothing, blocking the combobox's synthetic displayValue from
81456
+ // being visible on preset/deeplink load.
81457
+ // Custom elements (e.g. <auro-icon>) that render via shadow DOM are
81458
+ // treated as content even when they have no text or light-DOM children.
81459
+ const hasContent = nodes.some((node) => {
81460
+ if (node.nodeType === Node.TEXT_NODE) {
81461
+ return node.textContent.trim().length > 0;
81462
+ }
81463
+ if (node.nodeType === Node.ELEMENT_NODE) {
81464
+ return node.textContent.trim().length > 0 ||
81465
+ node.children.length > 0 ||
81466
+ node.shadowRoot !== null;
81467
+ }
81468
+ return false;
81469
+ });
81470
+ if (this.hasDisplayValueContent !== hasContent) {
81471
+ this.hasDisplayValueContent = hasContent;
81472
+ this.requestUpdate();
81473
+ }
81210
81474
  }
81211
81475
 
81212
81476
  firstUpdated() {
@@ -82033,7 +82297,7 @@ let AuroBibtemplate$1 = class AuroBibtemplate extends i$3 {
82033
82297
  }
82034
82298
  };
82035
82299
 
82036
- var formkitVersion$3 = '202607102309';
82300
+ var formkitVersion$3 = '202607161943';
82037
82301
 
82038
82302
  var styleCss$1$3 = i$6`.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}`;
82039
82303
 
@@ -83070,14 +83334,34 @@ class AuroCombobox extends AuroElement$3 {
83070
83334
  const displayValueEl = this.menu.optionSelected.querySelector("[slot='displayValue']");
83071
83335
  if (displayValueEl) {
83072
83336
  this.input.appendChild(displayValueEl.cloneNode(true));
83073
- // auro-input's hasDisplayValueContent is non-reactive; nudge it to
83074
- // re-evaluate the slot and re-render so the displayValue wrapper
83075
- // gets its hasContent class. Without this, the apple/icon stays
83076
- // hidden when input.value is set in the same tick as the append.
83077
- if (typeof this.input.checkDisplayValueSlotChange === 'function') {
83078
- this.input.checkDisplayValueSlotChange();
83079
- this.input.requestUpdate();
83080
- }
83337
+ }
83338
+
83339
+ // auro-input's hasDisplayValueContent is non-reactive; nudge it to
83340
+ // re-evaluate the slot and re-render so the displayValue wrapper
83341
+ // gets its hasContent class. Without this, the apple/icon stays
83342
+ // hidden when input.value is set in the same tick as the append.
83343
+ if (typeof this.input.checkDisplayValueSlotChange === 'function') {
83344
+ this.input.checkDisplayValueSlotChange();
83345
+ }
83346
+ } else if (this.value) {
83347
+ // No optionSelected yet (e.g. setMenuValue was called but the menu's
83348
+ // auroMenu-selectedOption event hasn't fired yet, or we're on remount
83349
+ // with no options loaded). Synthesize a displayValue from the value so
83350
+ // the overlay isn't blank.
83351
+ //
83352
+ // NOTE: This renders the raw machine value (e.g. "SEA"), not the
83353
+ // human-readable label (e.g. "Seattle, WA"). For consumers where
83354
+ // value ≠ label, this produces a brief flash of the raw value until
83355
+ // the option elements load and updateTriggerTextDisplay re-runs with
83356
+ // the correct label. This is intentionally preferred over a blank
83357
+ // state — the displayValueInTrigger.remove() cleanup above ensures
83358
+ // this placeholder is replaced once the real option is available.
83359
+ const syntheticDV = document.createElement('span');
83360
+ syntheticDV.setAttribute('slot', 'displayValue');
83361
+ syntheticDV.textContent = this.value;
83362
+ this.input.appendChild(syntheticDV);
83363
+ if (typeof this.input.checkDisplayValueSlotChange === 'function') {
83364
+ this.input.checkDisplayValueSlotChange();
83081
83365
  }
83082
83366
  }
83083
83367
 
@@ -83250,6 +83534,10 @@ class AuroCombobox extends AuroElement$3 {
83250
83534
  // from combobox's light DOM and won't be detected by dropdown's contains() check.
83251
83535
  this.dropdown.noHideOnThisFocusLoss = true;
83252
83536
 
83537
+ // Suppress the dropdown's generic focus restoration on close — the combobox
83538
+ // manages its own focus via setClearBtnFocus / setInputFocus / keyboard strategy.
83539
+ this.dropdown.noFocusRestoreOnClose = true;
83540
+
83253
83541
  // Listen for the ID to be added to the dropdown so we can capture it and use it for accessibility.
83254
83542
  this.dropdown.addEventListener('auroDropdown-idAdded', (event) => {
83255
83543
  this.dropdownId = event.detail.id;
@@ -83323,7 +83611,11 @@ class AuroCombobox extends AuroElement$3 {
83323
83611
  // after the dropdown layout settles.
83324
83612
 
83325
83613
  doubleRaf$1(() => {
83326
- this.setInputFocus();
83614
+ // Guard: skip if the dropdown closed before this rAF fired
83615
+ // (e.g. user selected an option immediately after the bib opened).
83616
+ if (this.dropdownOpen) {
83617
+ this.setInputFocus();
83618
+ }
83327
83619
  if (this._inFullscreenTransition) {
83328
83620
  this._inFullscreenTransition = false;
83329
83621
  }
@@ -83370,7 +83662,9 @@ class AuroCombobox extends AuroElement$3 {
83370
83662
  }
83371
83663
 
83372
83664
  this._scheduleTimer(() => {
83373
- this.setInputFocus();
83665
+ if (this.dropdown.isPopoverVisible) {
83666
+ this.setInputFocus();
83667
+ }
83374
83668
  }, 0);
83375
83669
  });
83376
83670
  }
@@ -83379,14 +83673,19 @@ class AuroCombobox extends AuroElement$3 {
83379
83673
  * @private
83380
83674
  */
83381
83675
  setClearBtnFocus() {
83382
- const clearBtn = this.input.shadowRoot.querySelector('.clearBtn');
83383
- if (clearBtn) {
83384
- // Wait for the element to fully render across
83385
- // multiple Lit update cycles before moving focus
83386
- doubleRaf$1(() => {
83676
+ doubleRaf$1(() => {
83677
+ // First establish focus inside the input's shadow root.
83678
+ // Without this, clearBtn.focus() silently fails when focus is on
83679
+ // document.body (e.g. after a click selection closes the bib dialog).
83680
+ // delegatesFocus on BaseInput routes this to the native <input>.
83681
+ this.input.focus();
83682
+
83683
+ // Now move focus to the clear button within the same shadow root.
83684
+ const clearBtn = this.input.shadowRoot.querySelector('.clearBtn');
83685
+ if (clearBtn) {
83387
83686
  clearBtn.focus();
83388
- });
83389
- }
83687
+ }
83688
+ });
83390
83689
  }
83391
83690
 
83392
83691
  /**
@@ -83597,6 +83896,9 @@ class AuroCombobox extends AuroElement$3 {
83597
83896
  // only — fresh user selections take the existing hideBib path.
83598
83897
  if (isEcho && this.menu.optionSelected) {
83599
83898
  this._programmaticFilterRefresh = true;
83899
+ this.updateComplete.then(() => {
83900
+ this._programmaticFilterRefresh = false;
83901
+ });
83600
83902
  }
83601
83903
  });
83602
83904
 
@@ -83849,10 +84151,6 @@ class AuroCombobox extends AuroElement$3 {
83849
84151
  if (this.dropdown.isBibFullscreen && this.input.value && this.input.value.length > 0 && this.dropdown.isPopoverVisible) {
83850
84152
  this.setInputFocus();
83851
84153
  }
83852
-
83853
- if (this._programmaticFilterRefresh) {
83854
- this._programmaticFilterRefresh = false;
83855
- }
83856
84154
  }
83857
84155
 
83858
84156
  /**
@@ -83866,10 +84164,12 @@ class AuroCombobox extends AuroElement$3 {
83866
84164
  inputResolver: (comp, ctx) => (ctx.isModal && comp.inputInBib ? comp.inputInBib : comp.input),
83867
84165
  });
83868
84166
 
83869
- this.addEventListener('focusin', () => {
84167
+ this.addEventListener('focusin', (event) => {
83870
84168
  this.touched = true;
83871
84169
 
83872
- this.focus();
84170
+ if (event.composedPath()[0] === this) {
84171
+ this.focus();
84172
+ }
83873
84173
  });
83874
84174
 
83875
84175
  this.addEventListener('auroFormElement-validated', (evt) => {
@@ -84049,6 +84349,12 @@ class AuroCombobox extends AuroElement$3 {
84049
84349
  // setting the flag unconditionally here masks the user-typed open path.
84050
84350
  if (!this._userTyped) {
84051
84351
  this._programmaticFilterRefresh = true;
84352
+ // Self-clear after this update cycle completes. This collapses
84353
+ // the previous scattered clear-points into one and prevents the
84354
+ // flag from surviving into the next user interaction.
84355
+ this.updateComplete.then(() => {
84356
+ this._programmaticFilterRefresh = false;
84357
+ });
84052
84358
  }
84053
84359
 
84054
84360
  if (this.input.value !== this.value) {
@@ -84138,10 +84444,6 @@ class AuroCombobox extends AuroElement$3 {
84138
84444
  } else if (!this.dropdown.isBibFullscreen) {
84139
84445
  this.hideBib();
84140
84446
  }
84141
-
84142
- if (this._programmaticFilterRefresh) {
84143
- this._programmaticFilterRefresh = false;
84144
- }
84145
84447
  }
84146
84448
 
84147
84449
  if (changedProperties.has('error')) {
@@ -84323,7 +84625,7 @@ class AuroCombobox extends AuroElement$3 {
84323
84625
  <slot @slotchange="${this.handleSlotChange}"></slot>
84324
84626
  <${this.inputTag}
84325
84627
  id="inputInBib"
84326
- autofocus
84628
+ ?autofocus="${this.dropdownOpen && this.dropdown?.isBibFullscreen}"
84327
84629
  @input="${this.handleInputValueChange}"
84328
84630
  .a11yActivedescendant="${this.dropdownOpen && this.optionActive ? this.optionActive.id : undefined}"
84329
84631
  .a11yControls=${`${this.dropdownId}-floater-bib`}
@@ -90854,7 +91156,7 @@ let AuroHelpText$1 = class AuroHelpText extends i$3 {
90854
91156
  }
90855
91157
  };
90856
91158
 
90857
- var formkitVersion$1 = '202607102309';
91159
+ var formkitVersion$1 = '202607161943';
90858
91160
 
90859
91161
  class AuroElement extends i$3 {
90860
91162
  static get properties() {
@@ -90983,7 +91285,6 @@ class AuroDropdown extends AuroElement {
90983
91285
  static get shadowRootOptions() {
90984
91286
  return {
90985
91287
  ...AuroElement.shadowRootOptions,
90986
- delegatesFocus: true,
90987
91288
  };
90988
91289
  }
90989
91290
 
@@ -90995,6 +91296,15 @@ class AuroDropdown extends AuroElement {
90995
91296
  this.matchWidth = false;
90996
91297
  this.noHideOnThisFocusLoss = false;
90997
91298
 
91299
+ /**
91300
+ * When true, the dropdown skips its generic focus restoration on close.
91301
+ * Set by consumers (e.g. combobox) that manage their own focus routing
91302
+ * via setClearBtnFocus / setInputFocus / keyboard strategy.
91303
+ * Separate from noHideOnThisFocusLoss (which controls auto-close behavior).
91304
+ * @private
91305
+ */
91306
+ this.noFocusRestoreOnClose = false;
91307
+
90998
91308
  this.errorMessage = undefined; // TODO - check with Doug if there is still more to do here
90999
91309
 
91000
91310
  // Layout Config
@@ -91150,7 +91460,49 @@ class AuroDropdown extends AuroElement {
91150
91460
  focusables[0].focus();
91151
91461
  }
91152
91462
  } else {
91463
+ this.focusTrigger();
91464
+ }
91465
+ }
91466
+
91467
+ /**
91468
+ * Focus the trigger content. When the trigger wrapper itself is focusable
91469
+ * (has tabindex), focus it directly. Otherwise, focus the first focusable
91470
+ * element slotted into the trigger slot (e.g. the auro-input).
91471
+ * @private
91472
+ */
91473
+ focusTrigger() {
91474
+ if (this.trigger.hasAttribute('tabindex')) {
91153
91475
  this.trigger.focus();
91476
+ } else {
91477
+ // Slotted content isn't a DOM child of the trigger div, so
91478
+ // getFocusableElements can't find it. Query assigned nodes directly.
91479
+ const slot = this.trigger.querySelector('slot[name="trigger"]');
91480
+ if (slot) {
91481
+ const assigned = slot.assignedElements();
91482
+ for (const el of assigned) {
91483
+ if (el.hasAttribute('disabled')) {
91484
+ continue;
91485
+ }
91486
+ // Try finding a focusable descendant first (handles non-focusable
91487
+ // wrappers like <div> containing a <button>). If none found, try
91488
+ // focusing the element directly (works for custom elements like
91489
+ // auro-input that have delegatesFocus or a custom focus() method).
91490
+ const descendants = getFocusableElements(el);
91491
+ if (descendants.length > 0) {
91492
+ descendants[0].focus();
91493
+ return;
91494
+ }
91495
+ el.focus();
91496
+ if (document.activeElement === el) {
91497
+ return;
91498
+ }
91499
+ }
91500
+ }
91501
+ // Fallback: try DOM children (non-slotted content)
91502
+ const focusables = getFocusableElements(this.trigger);
91503
+ if (focusables.length > 0) {
91504
+ focusables[0].focus();
91505
+ }
91154
91506
  }
91155
91507
  }
91156
91508
 
@@ -91603,15 +91955,17 @@ class AuroDropdown extends AuroElement {
91603
91955
  }
91604
91956
 
91605
91957
  const eventType = event.detail.eventType || "unknown";
91606
- if (!this.isPopoverVisible && this.hasFocus && eventType === "keydown") {
91607
- this.trigger.focus();
91958
+ if (!this.isPopoverVisible && this.hasFocus && eventType === "keydown" && !this.noFocusRestoreOnClose) {
91959
+ this.focusTrigger();
91608
91960
  }
91609
91961
 
91610
91962
 
91611
91963
  // On Tab-driven close (eventType "focusloss"), let focus advance naturally
91612
91964
  // — restoring to the trigger would trap the user on this dropdown, forcing
91613
91965
  // an extra Tab to move on. Escape and outside-click still restore.
91614
- if (!this.isPopoverVisible && eventType !== "focusloss") {
91966
+ // When noFocusRestoreOnClose is true, the consumer (e.g. combobox) manages
91967
+ // its own focus restoration — skip the generic trigger focus to avoid races.
91968
+ if (!this.isPopoverVisible && eventType !== "focusloss" && !this.noFocusRestoreOnClose) {
91615
91969
  // wait til the bib gets fully closed and rendered
91616
91970
  setTimeout(() => {
91617
91971
  // Skip if the bib re-opened, or if focus moved intentionally outside the dropdown (not to body).
@@ -91623,7 +91977,7 @@ class AuroDropdown extends AuroElement {
91623
91977
  return;
91624
91978
  }
91625
91979
  // Restore focus to the trigger.
91626
- this.trigger.focus();
91980
+ this.focusTrigger();
91627
91981
  });
91628
91982
  }
91629
91983
  }
@@ -92897,7 +93251,7 @@ class AuroHelpText extends i$3 {
92897
93251
  }
92898
93252
  }
92899
93253
 
92900
- var formkitVersion = '202607102309';
93254
+ var formkitVersion = '202607161943';
92901
93255
 
92902
93256
  var styleCss = i$6`.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}`;
92903
93257