@aurodesignsystem-dev/auro-formkit 0.0.0-pr1608.0 → 0.0.0-pr1608.2

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 (51) hide show
  1. package/components/checkbox/demo/accessibility.md +15 -4
  2. package/components/checkbox/demo/customize.min.js +40 -12
  3. package/components/checkbox/demo/getting-started.min.js +40 -12
  4. package/components/checkbox/demo/index.min.js +40 -12
  5. package/components/checkbox/dist/auro-checkbox-group.d.ts +19 -0
  6. package/components/checkbox/dist/index.js +40 -12
  7. package/components/checkbox/dist/registered.js +40 -12
  8. package/components/combobox/demo/customize.min.js +46 -4
  9. package/components/combobox/demo/getting-started.min.js +46 -4
  10. package/components/combobox/demo/index.min.js +46 -4
  11. package/components/combobox/dist/index.js +46 -4
  12. package/components/combobox/dist/registered.js +46 -4
  13. package/components/counter/demo/customize.min.js +339 -23
  14. package/components/counter/demo/getting-started.min.js +339 -23
  15. package/components/counter/demo/index.min.js +339 -23
  16. package/components/counter/dist/counterGroupKeyboardStrategy.d.ts +1 -0
  17. package/components/counter/dist/index.js +339 -23
  18. package/components/counter/dist/registered.js +339 -23
  19. package/components/datepicker/demo/customize.min.js +46 -4
  20. package/components/datepicker/demo/getting-started.min.js +46 -4
  21. package/components/datepicker/demo/index.min.js +46 -4
  22. package/components/datepicker/dist/index.js +46 -4
  23. package/components/datepicker/dist/registered.js +46 -4
  24. package/components/dropdown/demo/customize.min.js +44 -2
  25. package/components/dropdown/demo/getting-started.min.js +45 -3
  26. package/components/dropdown/demo/index.min.js +44 -2
  27. package/components/dropdown/dist/index.js +44 -2
  28. package/components/dropdown/dist/registered.js +44 -2
  29. package/components/form/demo/customize.min.js +556 -61
  30. package/components/form/demo/getting-started.min.js +556 -61
  31. package/components/form/demo/index.min.js +556 -61
  32. package/components/form/demo/registerDemoDeps.min.js +556 -61
  33. package/components/input/demo/customize.min.js +1 -1
  34. package/components/input/demo/getting-started.min.js +1 -1
  35. package/components/input/demo/index.min.js +1 -1
  36. package/components/input/dist/index.js +1 -1
  37. package/components/input/dist/registered.js +1 -1
  38. package/components/radio/demo/accessibility.md +15 -4
  39. package/components/radio/demo/customize.min.js +39 -14
  40. package/components/radio/demo/getting-started.min.js +39 -14
  41. package/components/radio/demo/index.min.js +39 -14
  42. package/components/radio/dist/auro-radio-group.d.ts +18 -0
  43. package/components/radio/dist/index.js +39 -14
  44. package/components/radio/dist/registered.js +39 -14
  45. package/components/select/demo/customize.min.js +45 -3
  46. package/components/select/demo/getting-started.min.js +45 -3
  47. package/components/select/demo/index.min.js +45 -3
  48. package/components/select/dist/index.js +45 -3
  49. package/components/select/dist/registered.js +45 -3
  50. package/custom-elements.json +1814 -1768
  51. package/package.json +3 -3
@@ -13521,7 +13521,7 @@ let AuroHelpText$8 = class AuroHelpText extends i$3 {
13521
13521
  }
13522
13522
  };
13523
13523
 
13524
- var formkitVersion$8 = '202609021913';
13524
+ var formkitVersion$8 = '202609030018';
13525
13525
 
13526
13526
  // Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
13527
13527
  // See LICENSE in the project root for license information.
@@ -28084,7 +28084,7 @@ let AuroBibtemplate$3 = class AuroBibtemplate extends i$3 {
28084
28084
  }
28085
28085
  };
28086
28086
 
28087
- var formkitVersion$2$1 = '202609021913';
28087
+ var formkitVersion$2$1 = '202609030018';
28088
28088
 
28089
28089
  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}
28090
28090
  `,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}}
@@ -31865,6 +31865,48 @@ const computePosition$4 = (reference, floating, options) => {
31865
31865
  });
31866
31866
  };
31867
31867
 
31868
+ /**
31869
+ * Generates a v4 UUID with a three-tier fallback for insecure contexts.
31870
+ *
31871
+ * Tier 1 (secure contexts): crypto.randomUUID() — native, fully random.
31872
+ * Tier 2 (insecure contexts): crypto.getRandomValues() — available on all
31873
+ * modern browsers regardless of secure-context status.
31874
+ * Tier 3 (last resort, no crypto API): new Date().getTime() — lower entropy,
31875
+ * but sufficient for element IDs where collision risk is negligible.
31876
+ *
31877
+ * See: https://w3c.github.io/webcrypto/#dom-crypto-randomuuid (secure-context restriction)
31878
+ */
31879
+ function generateUUID$3() {
31880
+ let uuid;
31881
+
31882
+ if (
31883
+ typeof crypto !== "undefined" &&
31884
+ typeof crypto.randomUUID === "function"
31885
+ ) {
31886
+ uuid = crypto.randomUUID();
31887
+ } else if (
31888
+ typeof crypto !== "undefined" &&
31889
+ typeof crypto.getRandomValues === "function"
31890
+ ) {
31891
+ const bytes = new Uint8Array(16);
31892
+ crypto.getRandomValues(bytes);
31893
+ bytes[6] = (bytes[6] & 0x0f) | 0x40;
31894
+ bytes[8] = (bytes[8] & 0x3f) | 0x80;
31895
+ const hex = Array.from(bytes).map((b) => b.toString(16).padStart(2, "0"));
31896
+ uuid = `${hex.slice(0, 4).join("")}-${hex.slice(4, 6).join("")}-${hex.slice(6, 8).join("")}-${hex.slice(8, 10).join("")}-${hex.slice(10).join("")}`;
31897
+ } else {
31898
+ let d = new Date().getTime();
31899
+ uuid = "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, (c) => {
31900
+ const r = (d % 16) | 0;
31901
+ d = (d - r) / 16 || new Date().getTime();
31902
+ return (c === "x" ? r : (r & 0x3) | 0x8).toString(16);
31903
+ });
31904
+ }
31905
+
31906
+ // CSS selectors require IDs starting with a letter; replace a leading digit with 'a'.
31907
+ return /^[0-9]/.test(uuid) ? `a${uuid.slice(1)}` : uuid;
31908
+ }
31909
+
31868
31910
  /* eslint-disable line-comment-position, no-inline-comments */
31869
31911
 
31870
31912
 
@@ -32883,7 +32925,7 @@ let AuroFloatingUI$3 = class AuroFloatingUI {
32883
32925
 
32884
32926
  this.id = element.getAttribute("id");
32885
32927
  if (!this.id) {
32886
- this.id = window.crypto.randomUUID();
32928
+ this.id = generateUUID$3();
32887
32929
  element.setAttribute("id", this.id);
32888
32930
  }
32889
32931
 
@@ -33928,7 +33970,7 @@ let AuroHelpText$2$1 = class AuroHelpText extends i$3 {
33928
33970
  }
33929
33971
  };
33930
33972
 
33931
- var formkitVersion$1$3 = '202609021913';
33973
+ var formkitVersion$1$3 = '202609030018';
33932
33974
 
33933
33975
  /**
33934
33976
  * AuroElement is the shared base class for layout-aware Auro form components.
@@ -47790,7 +47832,7 @@ let AuroHelpText$1$3 = class AuroHelpText extends i$3 {
47790
47832
  }
47791
47833
  };
47792
47834
 
47793
- var formkitVersion$7 = '202609021913';
47835
+ var formkitVersion$7 = '202609030018';
47794
47836
 
47795
47837
  // Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
47796
47838
  // See LICENSE in the project root for license information.
@@ -52896,7 +52938,7 @@ let AuroHelpText$1$2 = class AuroHelpText extends i$3 {
52896
52938
  }
52897
52939
  };
52898
52940
 
52899
- var formkitVersion$1$2 = '202609021913';
52941
+ var formkitVersion$1$2 = '202609030018';
52900
52942
 
52901
52943
  // Copyright (c) 2026 Alaska Airlines. All rights reserved. Licensed under the Apache-2.0 license
52902
52944
  // See LICENSE in the project root for license information.
@@ -55133,6 +55175,48 @@ const computePosition$3 = (reference, floating, options) => {
55133
55175
  });
55134
55176
  };
55135
55177
 
55178
+ /**
55179
+ * Generates a v4 UUID with a three-tier fallback for insecure contexts.
55180
+ *
55181
+ * Tier 1 (secure contexts): crypto.randomUUID() — native, fully random.
55182
+ * Tier 2 (insecure contexts): crypto.getRandomValues() — available on all
55183
+ * modern browsers regardless of secure-context status.
55184
+ * Tier 3 (last resort, no crypto API): new Date().getTime() — lower entropy,
55185
+ * but sufficient for element IDs where collision risk is negligible.
55186
+ *
55187
+ * See: https://w3c.github.io/webcrypto/#dom-crypto-randomuuid (secure-context restriction)
55188
+ */
55189
+ function generateUUID$2() {
55190
+ let uuid;
55191
+
55192
+ if (
55193
+ typeof crypto !== "undefined" &&
55194
+ typeof crypto.randomUUID === "function"
55195
+ ) {
55196
+ uuid = crypto.randomUUID();
55197
+ } else if (
55198
+ typeof crypto !== "undefined" &&
55199
+ typeof crypto.getRandomValues === "function"
55200
+ ) {
55201
+ const bytes = new Uint8Array(16);
55202
+ crypto.getRandomValues(bytes);
55203
+ bytes[6] = (bytes[6] & 0x0f) | 0x40;
55204
+ bytes[8] = (bytes[8] & 0x3f) | 0x80;
55205
+ const hex = Array.from(bytes).map((b) => b.toString(16).padStart(2, "0"));
55206
+ uuid = `${hex.slice(0, 4).join("")}-${hex.slice(4, 6).join("")}-${hex.slice(6, 8).join("")}-${hex.slice(8, 10).join("")}-${hex.slice(10).join("")}`;
55207
+ } else {
55208
+ let d = new Date().getTime();
55209
+ uuid = "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, (c) => {
55210
+ const r = (d % 16) | 0;
55211
+ d = (d - r) / 16 || new Date().getTime();
55212
+ return (c === "x" ? r : (r & 0x3) | 0x8).toString(16);
55213
+ });
55214
+ }
55215
+
55216
+ // CSS selectors require IDs starting with a letter; replace a leading digit with 'a'.
55217
+ return /^[0-9]/.test(uuid) ? `a${uuid.slice(1)}` : uuid;
55218
+ }
55219
+
55136
55220
  /* eslint-disable line-comment-position, no-inline-comments */
55137
55221
 
55138
55222
 
@@ -56151,7 +56235,7 @@ let AuroFloatingUI$2 = class AuroFloatingUI {
56151
56235
 
56152
56236
  this.id = element.getAttribute("id");
56153
56237
  if (!this.id) {
56154
- this.id = window.crypto.randomUUID();
56238
+ this.id = generateUUID$2();
56155
56239
  element.setAttribute("id", this.id);
56156
56240
  }
56157
56241
 
@@ -56235,7 +56319,7 @@ let AuroFloatingUI$2 = class AuroFloatingUI {
56235
56319
  };
56236
56320
 
56237
56321
  // Selectors for focusable elements
56238
- const FOCUSABLE_SELECTORS$3 = [
56322
+ const FOCUSABLE_SELECTORS$1$1 = [
56239
56323
  "a[href]",
56240
56324
  "button:not([disabled])",
56241
56325
  "textarea:not([disabled])",
@@ -56249,7 +56333,7 @@ const FOCUSABLE_SELECTORS$3 = [
56249
56333
  ];
56250
56334
 
56251
56335
  // List of custom components that are known to be focusable
56252
- const FOCUSABLE_COMPONENTS$3 = [
56336
+ const FOCUSABLE_COMPONENTS$1$1 = [
56253
56337
  "auro-checkbox",
56254
56338
  "auro-radio",
56255
56339
  "auro-dropdown",
@@ -56271,12 +56355,12 @@ const FOCUSABLE_COMPONENTS$3 = [
56271
56355
  * @param {HTMLElement} element The element to check for focusability.
56272
56356
  * @returns {boolean} True if the element is a focusable custom component, false otherwise.
56273
56357
  */
56274
- function isFocusableComponent$3(element) {
56358
+ function isFocusableComponent$1$1(element) {
56275
56359
  const componentName = element.tagName.toLowerCase();
56276
56360
 
56277
56361
  // Guard Clause: Element is a focusable component
56278
56362
  if (
56279
- !FOCUSABLE_COMPONENTS$3.some(
56363
+ !FOCUSABLE_COMPONENTS$1$1.some(
56280
56364
  (name) => element.hasAttribute(name) || componentName === name,
56281
56365
  )
56282
56366
  )
@@ -56300,7 +56384,7 @@ function isFocusableComponent$3(element) {
56300
56384
  * @param {HTMLElement} element The element whose tabindex to read.
56301
56385
  * @returns {?number} The numeric tabindex or null if missing/invalid.
56302
56386
  */
56303
- function getNumericTabIndex$3(element) {
56387
+ function getNumericTabIndex$1$1(element) {
56304
56388
  const raw = element.getAttribute("tabindex");
56305
56389
  if (raw == null) return null;
56306
56390
 
@@ -56316,7 +56400,7 @@ function getNumericTabIndex$3(element) {
56316
56400
  * @param {HTMLElement} container The container to search within
56317
56401
  * @returns {Array<HTMLElement>} An array of focusable elements within the container.
56318
56402
  */
56319
- function getFocusableElements$3(container) {
56403
+ function getFocusableElements$1$1(container) {
56320
56404
  // Get elements in DOM order by walking the tree
56321
56405
  const orderedFocusableElements = [];
56322
56406
 
@@ -56325,7 +56409,7 @@ function getFocusableElements$3(container) {
56325
56409
  // Check if current element is focusable
56326
56410
  if (root.nodeType === Node.ELEMENT_NODE) {
56327
56411
  // Check if this is a custom component that is focusable
56328
- const isComponentFocusable = isFocusableComponent$3(root);
56412
+ const isComponentFocusable = isFocusableComponent$1$1(root);
56329
56413
 
56330
56414
  if (isComponentFocusable) {
56331
56415
  // Add the component itself as a focusable element and don't traverse its shadow DOM
@@ -56334,7 +56418,7 @@ function getFocusableElements$3(container) {
56334
56418
  }
56335
56419
 
56336
56420
  // Check if the element itself matches any selector
56337
- for (const selector of FOCUSABLE_SELECTORS$3) {
56421
+ for (const selector of FOCUSABLE_SELECTORS$1$1) {
56338
56422
  if (root.matches?.(selector)) {
56339
56423
  orderedFocusableElements.push(root);
56340
56424
  break; // Once we know it's focusable, no need to check other selectors
@@ -56388,20 +56472,20 @@ function getFocusableElements$3(container) {
56388
56472
 
56389
56473
  // First extract elements with valid positive tabindex
56390
56474
  const elementsWithTabindex = uniqueElements.filter((el) => {
56391
- const tabindex = getNumericTabIndex$3(el);
56475
+ const tabindex = getNumericTabIndex$1$1(el);
56392
56476
  return tabindex !== null && tabindex > 0;
56393
56477
  });
56394
56478
 
56395
56479
  // Sort these elements by their tabindex value
56396
56480
  elementsWithTabindex.sort((a, b) => {
56397
- const aIndex = getNumericTabIndex$3(a) ?? 0;
56398
- const bIndex = getNumericTabIndex$3(b) ?? 0;
56481
+ const aIndex = getNumericTabIndex$1$1(a) ?? 0;
56482
+ const bIndex = getNumericTabIndex$1$1(b) ?? 0;
56399
56483
  return aIndex - bIndex;
56400
56484
  });
56401
56485
 
56402
56486
  // Elements without tabindex (preserving their original order)
56403
56487
  const elementsWithoutTabindex = uniqueElements.filter((el) => {
56404
- const tabindex = getNumericTabIndex$3(el);
56488
+ const tabindex = getNumericTabIndex$1$1(el);
56405
56489
 
56406
56490
  // Elements without tabindex or with tabindex of 0 stay in DOM order
56407
56491
  return tabindex === null || tabindex === 0;
@@ -57196,7 +57280,7 @@ let AuroHelpText$6 = class AuroHelpText extends i$3 {
57196
57280
  }
57197
57281
  };
57198
57282
 
57199
- var formkitVersion$6 = '202609021913';
57283
+ var formkitVersion$6 = '202609030018';
57200
57284
 
57201
57285
  /**
57202
57286
  * AuroElement is the shared base class for layout-aware Auro form components.
@@ -57496,7 +57580,7 @@ let AuroDropdown$2 = class AuroDropdown extends AuroElement$1$2 {
57496
57580
  */
57497
57581
  focus() {
57498
57582
  if (this.isPopoverVisible && this.bibContent) {
57499
- const focusables = getFocusableElements$3(this.bibContent);
57583
+ const focusables = getFocusableElements$1$1(this.bibContent);
57500
57584
  if (focusables.length > 0) {
57501
57585
  focusables[0].focus();
57502
57586
  }
@@ -57528,7 +57612,7 @@ let AuroDropdown$2 = class AuroDropdown extends AuroElement$1$2 {
57528
57612
  // wrappers like <div> containing a <button>). If none found, try
57529
57613
  // focusing the element directly (works for custom elements like
57530
57614
  // auro-input that have delegatesFocus or a custom focus() method).
57531
- const descendants = getFocusableElements$3(el);
57615
+ const descendants = getFocusableElements$1$1(el);
57532
57616
  if (descendants.length > 0) {
57533
57617
  descendants[0].focus();
57534
57618
  return;
@@ -57540,7 +57624,7 @@ let AuroDropdown$2 = class AuroDropdown extends AuroElement$1$2 {
57540
57624
  }
57541
57625
  }
57542
57626
  // Fallback: try DOM children (non-slotted content)
57543
- const focusables = getFocusableElements$3(this.trigger);
57627
+ const focusables = getFocusableElements$1$1(this.trigger);
57544
57628
  if (focusables.length > 0) {
57545
57629
  focusables[0].focus();
57546
57630
  }
@@ -58219,7 +58303,7 @@ let AuroDropdown$2 = class AuroDropdown extends AuroElement$1$2 {
58219
58303
  }
58220
58304
 
58221
58305
  // Collect focusable elements from the bib content.
58222
- const focusables = getFocusableElements$3(this.bibContent);
58306
+ const focusables = getFocusableElements$1$1(this.bibContent);
58223
58307
 
58224
58308
  // Fallback: try from slotted content directly
58225
58309
  if (!focusables.length) {
@@ -58228,7 +58312,7 @@ let AuroDropdown$2 = class AuroDropdown extends AuroElement$1$2 {
58228
58312
 
58229
58313
  for (const node of assignedNodes) {
58230
58314
  if (node.nodeType === Node.ELEMENT_NODE) {
58231
- focusables.push(...getFocusableElements$3(node));
58315
+ focusables.push(...getFocusableElements$1$1(node));
58232
58316
  }
58233
58317
  }
58234
58318
  }
@@ -58288,7 +58372,7 @@ let AuroDropdown$2 = class AuroDropdown extends AuroElement$1$2 {
58288
58372
 
58289
58373
  // Move initial focus into the bib content, matching FocusTrap behavior
58290
58374
  requestAnimationFrame(() => {
58291
- const focusables = getFocusableElements$3(this.bibContent);
58375
+ const focusables = getFocusableElements$1$1(this.bibContent);
58292
58376
  if (focusables.length) {
58293
58377
  focusables[0].focus();
58294
58378
  }
@@ -58301,7 +58385,7 @@ let AuroDropdown$2 = class AuroDropdown extends AuroElement$1$2 {
58301
58385
  // popover asynchronously — a synchronous focus() would target
58302
58386
  // zero-dimension elements and be silently ignored.
58303
58387
  requestAnimationFrame(() => {
58304
- const focusables = getFocusableElements$3(this.bibContent);
58388
+ const focusables = getFocusableElements$1$1(this.bibContent);
58305
58389
  if (focusables.length) {
58306
58390
  focusables[0].focus();
58307
58391
  }
@@ -58519,7 +58603,7 @@ let AuroDropdown$2 = class AuroDropdown extends AuroElement$1$2 {
58519
58603
  if (triggerContentNodes) {
58520
58604
 
58521
58605
  // See if any of them are focusable elements
58522
- this.triggerContentFocusable = triggerContentNodes.some((node) => getFocusableElements$3(node).length > 0);
58606
+ this.triggerContentFocusable = triggerContentNodes.some((node) => getFocusableElements$1$1(node).length > 0);
58523
58607
 
58524
58608
  // If any of them are focusable elements
58525
58609
  if (this.triggerContentFocusable) {
@@ -59281,9 +59365,241 @@ let AuroElement$4 = class AuroElement extends i$3 {
59281
59365
  }
59282
59366
  };
59283
59367
 
59368
+ // Selectors for focusable elements
59369
+ const FOCUSABLE_SELECTORS$3 = [
59370
+ "a[href]",
59371
+ "button:not([disabled])",
59372
+ "textarea:not([disabled])",
59373
+ "input:not([disabled])",
59374
+ "select:not([disabled])",
59375
+ '[role="tab"]:not([disabled])',
59376
+ '[role="link"]:not([disabled])',
59377
+ '[role="button"]:not([disabled])',
59378
+ '[tabindex]:not([tabindex="-1"])',
59379
+ '[contenteditable]:not([contenteditable="false"])',
59380
+ ];
59381
+
59382
+ // List of custom components that are known to be focusable
59383
+ const FOCUSABLE_COMPONENTS$3 = [
59384
+ "auro-checkbox",
59385
+ "auro-radio",
59386
+ "auro-dropdown",
59387
+ "auro-button",
59388
+ "auro-combobox",
59389
+ "auro-input",
59390
+ "auro-counter",
59391
+ // 'auro-menu', // Auro menu is not focusable by default, it uses a different interaction model
59392
+ "auro-select",
59393
+ "auro-datepicker",
59394
+ "auro-hyperlink",
59395
+ "auro-accordion",
59396
+ ];
59397
+
59398
+ /**
59399
+ * Determines if a given element is a custom focusable component.
59400
+ * Returns true if the element matches a known focusable component and is not disabled.
59401
+ *
59402
+ * @param {HTMLElement} element The element to check for focusability.
59403
+ * @returns {boolean} True if the element is a focusable custom component, false otherwise.
59404
+ */
59405
+ function isFocusableComponent$3(element) {
59406
+ const componentName = element.tagName.toLowerCase();
59407
+
59408
+ // Guard Clause: Element is a focusable component
59409
+ if (
59410
+ !FOCUSABLE_COMPONENTS$3.some(
59411
+ (name) => element.hasAttribute(name) || componentName === name,
59412
+ )
59413
+ )
59414
+ return false;
59415
+
59416
+ // Guard Clause: Element is not disabled
59417
+ if (element.hasAttribute("disabled")) return false;
59418
+
59419
+ // Guard Clause: The element is a hyperlink and has no href attribute
59420
+ if (componentName.match("hyperlink") && !element.hasAttribute("href"))
59421
+ return false;
59422
+
59423
+ // If all guard clauses pass, the element is a focusable component
59424
+ return true;
59425
+ }
59426
+
59427
+ /**
59428
+ * Safely get a numeric tabindex for an element.
59429
+ * Returns a number if the tabindex is a valid integer, otherwise null.
59430
+ *
59431
+ * @param {HTMLElement} element The element whose tabindex to read.
59432
+ * @returns {?number} The numeric tabindex or null if missing/invalid.
59433
+ */
59434
+ function getNumericTabIndex$3(element) {
59435
+ const raw = element.getAttribute("tabindex");
59436
+ if (raw == null) return null;
59437
+
59438
+ const value = Number.parseInt(raw, 10);
59439
+ return Number.isNaN(value) ? null : value;
59440
+ }
59441
+
59442
+ /**
59443
+ * Retrieves all focusable elements within the container in DOM order, including those in shadow DOM and slots.
59444
+ * Returns a unique, ordered array of elements that can receive focus.
59445
+ * Also sorts elements with tabindex first, preserving their order.
59446
+ *
59447
+ * @param {HTMLElement} container The container to search within
59448
+ * @returns {Array<HTMLElement>} An array of focusable elements within the container.
59449
+ */
59450
+ function getFocusableElements$3(container) {
59451
+ // Get elements in DOM order by walking the tree
59452
+ const orderedFocusableElements = [];
59453
+
59454
+ // Define a recursive function to collect focusable elements in DOM order
59455
+ const collectFocusableElements = (root) => {
59456
+ // Check if current element is focusable
59457
+ if (root.nodeType === Node.ELEMENT_NODE) {
59458
+ // Check if this is a custom component that is focusable
59459
+ const isComponentFocusable = isFocusableComponent$3(root);
59460
+
59461
+ if (isComponentFocusable) {
59462
+ // Add the component itself as a focusable element and don't traverse its shadow DOM
59463
+ orderedFocusableElements.push(root);
59464
+ return; // Skip traversing inside this component
59465
+ }
59466
+
59467
+ // Check if the element itself matches any selector
59468
+ for (const selector of FOCUSABLE_SELECTORS$3) {
59469
+ if (root.matches?.(selector)) {
59470
+ orderedFocusableElements.push(root);
59471
+ break; // Once we know it's focusable, no need to check other selectors
59472
+ }
59473
+ }
59474
+
59475
+ // Process shadow DOM only for non-Auro components
59476
+ if (root.shadowRoot) {
59477
+ // Process shadow DOM children in order
59478
+ if (root.shadowRoot.children) {
59479
+ Array.from(root.shadowRoot.children).forEach((child) => {
59480
+ collectFocusableElements(child);
59481
+ });
59482
+ }
59483
+ }
59484
+
59485
+ // Process slots and their assigned nodes in order
59486
+ if (root.tagName === "SLOT") {
59487
+ const assignedNodes = root.assignedNodes({ flatten: true });
59488
+ for (const node of assignedNodes) {
59489
+ collectFocusableElements(node);
59490
+ }
59491
+ } else {
59492
+ // Process light DOM children in order
59493
+ if (root.children) {
59494
+ Array.from(root.children).forEach((child) => {
59495
+ collectFocusableElements(child);
59496
+ });
59497
+ }
59498
+ }
59499
+ }
59500
+ };
59501
+
59502
+ // Start the traversal from the container
59503
+ collectFocusableElements(container);
59504
+
59505
+ // Remove duplicates that might have been collected through different paths
59506
+ // while preserving order
59507
+ const uniqueElements = [];
59508
+ const seen = new Set();
59509
+
59510
+ for (const element of orderedFocusableElements) {
59511
+ if (!seen.has(element)) {
59512
+ seen.add(element);
59513
+ uniqueElements.push(element);
59514
+ }
59515
+ }
59516
+
59517
+ // Move tab-indexed elements to the front while preserving their order
59518
+ // This ensures that elements with tabindex are prioritized in the focus order
59519
+
59520
+ // First extract elements with valid positive tabindex
59521
+ const elementsWithTabindex = uniqueElements.filter((el) => {
59522
+ const tabindex = getNumericTabIndex$3(el);
59523
+ return tabindex !== null && tabindex > 0;
59524
+ });
59525
+
59526
+ // Sort these elements by their tabindex value
59527
+ elementsWithTabindex.sort((a, b) => {
59528
+ const aIndex = getNumericTabIndex$3(a) ?? 0;
59529
+ const bIndex = getNumericTabIndex$3(b) ?? 0;
59530
+ return aIndex - bIndex;
59531
+ });
59532
+
59533
+ // Elements without tabindex (preserving their original order)
59534
+ const elementsWithoutTabindex = uniqueElements.filter((el) => {
59535
+ const tabindex = getNumericTabIndex$3(el);
59536
+
59537
+ // Elements without tabindex or with tabindex of 0 stay in DOM order
59538
+ return tabindex === null || tabindex === 0;
59539
+ });
59540
+
59541
+ // Combine both arrays with tabindex elements first
59542
+ const tabIndexedUniqueElements = [
59543
+ ...elementsWithTabindex,
59544
+ ...elementsWithoutTabindex,
59545
+ ];
59546
+
59547
+ return tabIndexedUniqueElements;
59548
+ }
59549
+
59284
59550
  // Copyright (c) 2026 Alaska Airlines. All rights reserved. Licensed under the Apache-2.0 license
59285
59551
  // See LICENSE in the project root for license information.
59286
59552
 
59553
+
59554
+ /**
59555
+ * Whether `el` is currently visible enough to receive focus. Prefers the
59556
+ * browser's `checkVisibility()`; otherwise combines a display/visibility check
59557
+ * with an ancestor-hidden probe that keeps position:fixed elements visible.
59558
+ * @param {Element} el - The element to test.
59559
+ * @returns {boolean}
59560
+ */
59561
+ function isVisibleForFocus$1(el) {
59562
+ if (typeof el.checkVisibility === 'function') {
59563
+ return el.checkVisibility();
59564
+ }
59565
+ const style = el.ownerDocument.defaultView.getComputedStyle(el);
59566
+ if (style.display === 'none' || style.visibility === 'hidden') {
59567
+ return false;
59568
+ }
59569
+ return el.offsetParent !== null || style.position === 'fixed';
59570
+ }
59571
+
59572
+ /**
59573
+ * Return the tab stop that comes before the counter-group in page tab order,
59574
+ * skipping any hidden entries the walker doesn't filter itself. The group host
59575
+ * itself is not a tab stop; its focusables (the internal dropdown and the
59576
+ * counters) are, so anchor the search on the group's earliest focusable.
59577
+ * @param {Element} component - The auro-counter-group host element.
59578
+ * @returns {Element|null}
59579
+ */
59580
+ function getPreviousTabStop$1(component) {
59581
+ const tabStops = getFocusableElements$3(component.ownerDocument.body);
59582
+ const counters = component.counters || [];
59583
+ const owned = [
59584
+ component,
59585
+ component.dropdown,
59586
+ ...counters
59587
+ ].filter(Boolean);
59588
+ let groupStart = tabStops.length;
59589
+ owned.forEach((node) => {
59590
+ const index = tabStops.indexOf(node);
59591
+ if (index >= 0 && index < groupStart) {
59592
+ groupStart = index;
59593
+ }
59594
+ });
59595
+ for (let index = groupStart - 1; index >= 0; index -= 1) {
59596
+ if (isVisibleForFocus$1(tabStops[index])) {
59597
+ return tabStops[index];
59598
+ }
59599
+ }
59600
+ return null;
59601
+ }
59602
+
59287
59603
  const counterGroupKeyboardStrategy = {
59288
59604
  Escape(component, evt) {
59289
59605
  if (!component.dropdown || !component.dropdown.isPopoverVisible) {
@@ -59297,6 +59613,48 @@ const counterGroupKeyboardStrategy = {
59297
59613
 
59298
59614
  component.dropdown.hide();
59299
59615
  },
59616
+
59617
+ Tab(component, evt, ctx) {
59618
+ // Forward Tab already exits past the bib content and the focusout handler
59619
+ // closes the bib. Fullscreen relies on the dialog's native focus trapping.
59620
+ if (!ctx.isExpanded || ctx.isModal || !evt.shiftKey) {
59621
+ return;
59622
+ }
59623
+
59624
+ // The trigger precedes the bib content in the flattened tab order, so a
59625
+ // native Shift+Tab off the first counter lands back on the trigger and
59626
+ // leaves the bib open. Only intercept when focus is on the first focusable
59627
+ // in the bib; otherwise let the browser move to the previous counter.
59628
+ // `composedPath()` reports the real event origin through every shadow
59629
+ // boundary, unlike `document.activeElement`, which retargets to the first
59630
+ // slotted counter and cannot tell the counters apart.
59631
+ const focusables = getFocusableElements$3(component.dropdown.bibContent);
59632
+ if (!focusables.length) {
59633
+ return;
59634
+ }
59635
+
59636
+ const path = evt.composedPath();
59637
+ const activeIndex = focusables.findIndex((el) => path.includes(el));
59638
+ if (activeIndex !== 0) {
59639
+ return;
59640
+ }
59641
+
59642
+ const previousTabStop = getPreviousTabStop$1(component);
59643
+
59644
+ // Always suppress the native Shift+Tab. Otherwise it fires against the bib
59645
+ // as it is torn down and lands focus on the trigger (which precedes the
59646
+ // first counter), re-opening the exact loop this handler prevents. When
59647
+ // nothing precedes the group, focus falls to the body instead of the
59648
+ // trigger, which reads as exiting the group backward.
59649
+ evt.preventDefault();
59650
+ component.hideBib();
59651
+
59652
+ if (!previousTabStop) {
59653
+ return;
59654
+ }
59655
+
59656
+ doubleRaf$2(() => previousTabStop.focus());
59657
+ },
59300
59658
  };
59301
59659
 
59302
59660
  /* eslint-disable lit/no-invalid-html, lit/binding-positions, max-lines, no-underscore-dangle, arrow-parens, no-confusing-arrow, curly, dot-location, no-inline-comments, line-comment-position,
@@ -61397,7 +61755,7 @@ let AuroHelpText$5 = class AuroHelpText extends i$3 {
61397
61755
  }
61398
61756
  };
61399
61757
 
61400
- var formkitVersion$5 = '202609021913';
61758
+ var formkitVersion$5 = '202609030018';
61401
61759
 
61402
61760
  // Copyright (c) Alaska Air. All right reserved. Licensed under the Apache-2.0 license
61403
61761
  // See LICENSE in the project root for license information.
@@ -61725,18 +62083,42 @@ class AuroRadioGroup extends i$3 {
61725
62083
  }
61726
62084
 
61727
62085
  if (changedProperties.has('validity')) {
61728
- if (this.validity && this.validity !== 'valid') {
61729
- this.items.forEach((el) => {
61730
- el.setAttribute('error', true);
61731
- el.setAttribute('aria-invalid', 'true');
61732
- });
62086
+ this.syncItemValidity();
62087
+ }
62088
+ }
62089
+
62090
+ /**
62091
+ * Whether the group is currently in an invalid state.
62092
+ * `validity` — not `error` — is the authoritative source: `validate()` resolves the
62093
+ * `error` attribute to `validity = 'customError'`, so `error` is already covered here.
62094
+ * Single definition of "invalid" for the whole component, consumed by `render()` and
62095
+ * `syncItemValidity()` so the fieldset and its children can never disagree.
62096
+ * @private
62097
+ * @returns {boolean}
62098
+ */
62099
+ get isInvalid() {
62100
+ return Boolean(this.validity && this.validity !== 'valid');
62101
+ }
62102
+
62103
+ /**
62104
+ * Method for mirroring the group's invalid state onto each radio input.
62105
+ * Has to be re-applied from `handleItems()` as well, because a slot change or a
62106
+ * reconnect can happen without `validity` itself changing.
62107
+ * @private
62108
+ * @returns {void}
62109
+ */
62110
+ syncItemValidity() {
62111
+ const invalid = this.isInvalid;
62112
+
62113
+ this.items.forEach((el) => {
62114
+ if (invalid) {
62115
+ el.setAttribute('error', true);
62116
+ el.setAttribute('aria-invalid', 'true');
61733
62117
  } else {
61734
- this.items.forEach((el) => {
61735
- el.removeAttribute('error');
61736
- el.removeAttribute('aria-invalid');
61737
- });
62118
+ el.removeAttribute('error');
62119
+ el.removeAttribute('aria-invalid');
61738
62120
  }
61739
- }
62121
+ });
61740
62122
  }
61741
62123
 
61742
62124
  /**
@@ -61792,8 +62174,9 @@ class AuroRadioGroup extends i$3 {
61792
62174
 
61793
62175
  this.items.forEach((el) => {
61794
62176
  el.required = this.required;
61795
- el.error = Boolean(this.error);
61796
62177
  });
62178
+
62179
+ this.syncItemValidity();
61797
62180
  }
61798
62181
 
61799
62182
  /**
@@ -61942,7 +62325,7 @@ class AuroRadioGroup extends i$3 {
61942
62325
  class="${e$2(groupClasses)}"
61943
62326
  part="radio-group"
61944
62327
  role="radiogroup"
61945
- aria-invalid="${o$4(this.validity && this.validity !== 'valid' ? 'true' : undefined)}"
62328
+ aria-invalid="${o$4(this.isInvalid ? 'true' : undefined)}"
61946
62329
  aria-describedby="${this.uniqueId}"
61947
62330
  >
61948
62331
  <legend class="${e$2(legendClasses)}">
@@ -61952,7 +62335,7 @@ class AuroRadioGroup extends i$3 {
61952
62335
  <slot @slotchange=${this.handleSlotChange}></slot>
61953
62336
  </fieldset>
61954
62337
 
61955
- ${!this.validity || this.validity === undefined || this.validity === 'valid'
62338
+ ${!this.isInvalid
61956
62339
  ? u$c`
61957
62340
  <${this.helpTextTag} id="${this.uniqueId}" appearance="${this.onDark ? 'inverse' : this.appearance}" part="helpText">
61958
62341
  <slot name="helpText"></slot>
@@ -63216,7 +63599,7 @@ let AuroHelpText$4 = class AuroHelpText extends i$3 {
63216
63599
  }
63217
63600
  };
63218
63601
 
63219
- var formkitVersion$4 = '202609021913';
63602
+ var formkitVersion$4 = '202609030018';
63220
63603
 
63221
63604
  // Copyright (c) 2026 Alaska Airlines. All rights reserved. Licensed under the Apache-2.0 license
63222
63605
  // See LICENSE in the project root for license information.
@@ -63549,6 +63932,42 @@ class AuroCheckboxGroup extends i$3 {
63549
63932
  this.handlePreselectedItems();
63550
63933
 
63551
63934
  this.validate();
63935
+ this.syncCheckboxValidity();
63936
+ }
63937
+
63938
+ /**
63939
+ * Whether the group is currently in an invalid state.
63940
+ * `validity` — not `error` — is the authoritative source: `validate()` resolves the
63941
+ * `error` attribute to `validity = 'customError'`, so `error` is already covered here.
63942
+ * Single definition of "invalid" for the whole component, consumed by `render()` and
63943
+ * `syncCheckboxValidity()` so the fieldset and its children can never disagree.
63944
+ * @private
63945
+ * @returns {boolean}
63946
+ */
63947
+ get isInvalid() {
63948
+ return Boolean(this.validity && this.validity !== 'valid');
63949
+ }
63950
+
63951
+ /**
63952
+ * Method for mirroring the group's invalid state onto each checkbox.
63953
+ * Has to be re-applied from `handleItems()` as well, because a slot change can happen
63954
+ * without `validity` itself changing — a checkbox slotted into an already-invalid
63955
+ * group would otherwise be missed.
63956
+ * @private
63957
+ * @returns {void}
63958
+ */
63959
+ syncCheckboxValidity() {
63960
+ const invalid = this.isInvalid;
63961
+
63962
+ this.checkboxes.forEach((el) => {
63963
+ if (invalid) {
63964
+ el.setAttribute('error', true);
63965
+ el.setAttribute('aria-invalid', 'true');
63966
+ } else {
63967
+ el.removeAttribute('error');
63968
+ el.removeAttribute('aria-invalid');
63969
+ }
63970
+ });
63552
63971
  }
63553
63972
 
63554
63973
  /**
@@ -63580,15 +63999,7 @@ class AuroCheckboxGroup extends i$3 {
63580
63999
  }
63581
64000
 
63582
64001
  if (changedProperties.has('validity')) {
63583
- this.checkboxes.forEach((el) => {
63584
- if (this.validity && this.validity !== 'valid') {
63585
- el.setAttribute('error', true);
63586
- el.setAttribute('aria-invalid', 'true');
63587
- } else {
63588
- el.removeAttribute('error');
63589
- el.removeAttribute('aria-invalid');
63590
- }
63591
- });
64002
+ this.syncCheckboxValidity();
63592
64003
  }
63593
64004
 
63594
64005
  if (changedProperties.has('required')) {
@@ -63632,7 +64043,7 @@ class AuroCheckboxGroup extends i$3 {
63632
64043
  return u$c`
63633
64044
  <fieldset
63634
64045
  class="${e$2(groupClasses)}"
63635
- aria-invalid="${o$4(this.validity && this.validity !== 'valid' ? 'true' : undefined)}"
64046
+ aria-invalid="${o$4(this.isInvalid ? 'true' : undefined)}"
63636
64047
  aria-describedby="${this.uniqueId}"
63637
64048
  >
63638
64049
  <legend>
@@ -63642,7 +64053,7 @@ class AuroCheckboxGroup extends i$3 {
63642
64053
  <slot @slotchange=${this.handleItems}></slot>
63643
64054
  </fieldset>
63644
64055
 
63645
- ${!this.validity || this.validity === undefined || this.validity === 'valid'
64056
+ ${!this.isInvalid
63646
64057
  ? u$c`
63647
64058
  <${this.helpTextTag} id="${this.uniqueId}" part="helpText" appearance="${this.onDark ? 'inverse' : this.appearance}">
63648
64059
  <slot name="helpText"></slot>
@@ -66585,6 +66996,48 @@ const computePosition$2 = (reference, floating, options) => {
66585
66996
  });
66586
66997
  };
66587
66998
 
66999
+ /**
67000
+ * Generates a v4 UUID with a three-tier fallback for insecure contexts.
67001
+ *
67002
+ * Tier 1 (secure contexts): crypto.randomUUID() — native, fully random.
67003
+ * Tier 2 (insecure contexts): crypto.getRandomValues() — available on all
67004
+ * modern browsers regardless of secure-context status.
67005
+ * Tier 3 (last resort, no crypto API): new Date().getTime() — lower entropy,
67006
+ * but sufficient for element IDs where collision risk is negligible.
67007
+ *
67008
+ * See: https://w3c.github.io/webcrypto/#dom-crypto-randomuuid (secure-context restriction)
67009
+ */
67010
+ function generateUUID$1() {
67011
+ let uuid;
67012
+
67013
+ if (
67014
+ typeof crypto !== "undefined" &&
67015
+ typeof crypto.randomUUID === "function"
67016
+ ) {
67017
+ uuid = crypto.randomUUID();
67018
+ } else if (
67019
+ typeof crypto !== "undefined" &&
67020
+ typeof crypto.getRandomValues === "function"
67021
+ ) {
67022
+ const bytes = new Uint8Array(16);
67023
+ crypto.getRandomValues(bytes);
67024
+ bytes[6] = (bytes[6] & 0x0f) | 0x40;
67025
+ bytes[8] = (bytes[8] & 0x3f) | 0x80;
67026
+ const hex = Array.from(bytes).map((b) => b.toString(16).padStart(2, "0"));
67027
+ uuid = `${hex.slice(0, 4).join("")}-${hex.slice(4, 6).join("")}-${hex.slice(6, 8).join("")}-${hex.slice(8, 10).join("")}-${hex.slice(10).join("")}`;
67028
+ } else {
67029
+ let d = new Date().getTime();
67030
+ uuid = "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, (c) => {
67031
+ const r = (d % 16) | 0;
67032
+ d = (d - r) / 16 || new Date().getTime();
67033
+ return (c === "x" ? r : (r & 0x3) | 0x8).toString(16);
67034
+ });
67035
+ }
67036
+
67037
+ // CSS selectors require IDs starting with a letter; replace a leading digit with 'a'.
67038
+ return /^[0-9]/.test(uuid) ? `a${uuid.slice(1)}` : uuid;
67039
+ }
67040
+
66588
67041
  /* eslint-disable line-comment-position, no-inline-comments */
66589
67042
 
66590
67043
 
@@ -67603,7 +68056,7 @@ let AuroFloatingUI$1 = class AuroFloatingUI {
67603
68056
 
67604
68057
  this.id = element.getAttribute("id");
67605
68058
  if (!this.id) {
67606
- this.id = window.crypto.randomUUID();
68059
+ this.id = generateUUID$1();
67607
68060
  element.setAttribute("id", this.id);
67608
68061
  }
67609
68062
 
@@ -68648,7 +69101,7 @@ let AuroHelpText$2 = class AuroHelpText extends i$3 {
68648
69101
  }
68649
69102
  };
68650
69103
 
68651
- var formkitVersion$2 = '202609021913';
69104
+ var formkitVersion$2 = '202609030018';
68652
69105
 
68653
69106
  /**
68654
69107
  * AuroElement is the shared base class for layout-aware Auro form components.
@@ -82510,7 +82963,7 @@ let AuroHelpText$1$1 = class AuroHelpText extends i$3 {
82510
82963
  }
82511
82964
  };
82512
82965
 
82513
- var formkitVersion$1$1 = '202609021913';
82966
+ var formkitVersion$1$1 = '202609030018';
82514
82967
 
82515
82968
  // Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
82516
82969
  // See LICENSE in the project root for license information.
@@ -83702,7 +84155,7 @@ let AuroBibtemplate$1 = class AuroBibtemplate extends i$3 {
83702
84155
  }
83703
84156
  };
83704
84157
 
83705
- var formkitVersion$3 = '202609021913';
84158
+ var formkitVersion$3 = '202609030018';
83706
84159
 
83707
84160
  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}`;
83708
84161
 
@@ -91176,6 +91629,48 @@ const computePosition = (reference, floating, options) => {
91176
91629
  });
91177
91630
  };
91178
91631
 
91632
+ /**
91633
+ * Generates a v4 UUID with a three-tier fallback for insecure contexts.
91634
+ *
91635
+ * Tier 1 (secure contexts): crypto.randomUUID() — native, fully random.
91636
+ * Tier 2 (insecure contexts): crypto.getRandomValues() — available on all
91637
+ * modern browsers regardless of secure-context status.
91638
+ * Tier 3 (last resort, no crypto API): new Date().getTime() — lower entropy,
91639
+ * but sufficient for element IDs where collision risk is negligible.
91640
+ *
91641
+ * See: https://w3c.github.io/webcrypto/#dom-crypto-randomuuid (secure-context restriction)
91642
+ */
91643
+ function generateUUID() {
91644
+ let uuid;
91645
+
91646
+ if (
91647
+ typeof crypto !== "undefined" &&
91648
+ typeof crypto.randomUUID === "function"
91649
+ ) {
91650
+ uuid = crypto.randomUUID();
91651
+ } else if (
91652
+ typeof crypto !== "undefined" &&
91653
+ typeof crypto.getRandomValues === "function"
91654
+ ) {
91655
+ const bytes = new Uint8Array(16);
91656
+ crypto.getRandomValues(bytes);
91657
+ bytes[6] = (bytes[6] & 0x0f) | 0x40;
91658
+ bytes[8] = (bytes[8] & 0x3f) | 0x80;
91659
+ const hex = Array.from(bytes).map((b) => b.toString(16).padStart(2, "0"));
91660
+ uuid = `${hex.slice(0, 4).join("")}-${hex.slice(4, 6).join("")}-${hex.slice(6, 8).join("")}-${hex.slice(8, 10).join("")}-${hex.slice(10).join("")}`;
91661
+ } else {
91662
+ let d = new Date().getTime();
91663
+ uuid = "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, (c) => {
91664
+ const r = (d % 16) | 0;
91665
+ d = (d - r) / 16 || new Date().getTime();
91666
+ return (c === "x" ? r : (r & 0x3) | 0x8).toString(16);
91667
+ });
91668
+ }
91669
+
91670
+ // CSS selectors require IDs starting with a letter; replace a leading digit with 'a'.
91671
+ return /^[0-9]/.test(uuid) ? `a${uuid.slice(1)}` : uuid;
91672
+ }
91673
+
91179
91674
  /* eslint-disable line-comment-position, no-inline-comments */
91180
91675
 
91181
91676
 
@@ -92194,7 +92689,7 @@ class AuroFloatingUI {
92194
92689
 
92195
92690
  this.id = element.getAttribute("id");
92196
92691
  if (!this.id) {
92197
- this.id = window.crypto.randomUUID();
92692
+ this.id = generateUUID();
92198
92693
  element.setAttribute("id", this.id);
92199
92694
  }
92200
92695
 
@@ -93239,7 +93734,7 @@ let AuroHelpText$1 = class AuroHelpText extends i$3 {
93239
93734
  }
93240
93735
  };
93241
93736
 
93242
- var formkitVersion$1 = '202609021913';
93737
+ var formkitVersion$1 = '202609030018';
93243
93738
 
93244
93739
  /**
93245
93740
  * AuroElement is the shared base class for layout-aware Auro form components.
@@ -95412,7 +95907,7 @@ class AuroHelpText extends i$3 {
95412
95907
  }
95413
95908
  }
95414
95909
 
95415
- var formkitVersion = '202609021913';
95910
+ var formkitVersion = '202609030018';
95416
95911
 
95417
95912
  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{max-width:100%}.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%;box-sizing:border-box;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{overflow:hidden;height:auto;text-overflow:ellipsis;white-space:nowrap}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}`;
95418
95913