@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
@@ -12467,7 +12467,7 @@ let AuroHelpText$8 = class AuroHelpText extends i$2 {
12467
12467
  }
12468
12468
  };
12469
12469
 
12470
- var formkitVersion$8 = '202609021913';
12470
+ var formkitVersion$8 = '202609030018';
12471
12471
 
12472
12472
  // Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
12473
12473
  // See LICENSE in the project root for license information.
@@ -27030,7 +27030,7 @@ let AuroBibtemplate$3 = class AuroBibtemplate extends i$2 {
27030
27030
  }
27031
27031
  };
27032
27032
 
27033
- var formkitVersion$2$1 = '202609021913';
27033
+ var formkitVersion$2$1 = '202609030018';
27034
27034
 
27035
27035
  let l$1$2 = class l{generateElementName(t,e){let o=t;return o+="-",o+=e.replace(/[.]/g,"_"),o}generateTag(o,s,a){const r=this.generateElementName(o,s),i=i$5`${s$5(r)}`;return customElements.get(r)||customElements.define(r,class extends a{}),i}};let d$1$2 = class d{registerComponent(t,e){customElements.get(t)||customElements.define(t,class extends e{});}closestElement(t,e=this,o=(e,s=e&&e.closest(t))=>e&&e!==document&&e!==window?s||o(e.getRootNode().host):null){return o(e)}handleComponentTagRename(t,e){const o=e.toLowerCase();t.tagName.toLowerCase()!==o&&t.setAttribute(o,true);}elementMatch(t,e){const o=e.toLowerCase();return t.tagName.toLowerCase()===o||t.hasAttribute(o)}getSlotText(t,e){const o=t.shadowRoot?.querySelector(`slot[name="${e}"]`),s=(o?.assignedNodes({flatten:true})||[]).map(t=>t.textContent?.trim()).join(" ").trim();return s||null}};let h$1$2 = class h{registerComponent(t,e){customElements.get(t)||customElements.define(t,class extends e{});}closestElement(t,e=this,o=(e,s=e&&e.closest(t))=>e&&e!==document&&e!==window?s||o(e.getRootNode().host):null){return o(e)}handleComponentTagRename(t,e){const o=e.toLowerCase();t.tagName.toLowerCase()!==o&&t.setAttribute(o,true);}elementMatch(t,e){const o=e.toLowerCase();return t.tagName.toLowerCase()===o||t.hasAttribute(o)}};var c$1$3=i$4`:host{color:var(--ds-auro-loader-color)}:host>span{background-color:var(--ds-auro-loader-background-color);border-color:var(--ds-auro-loader-border-color)}:host([onlight]),:host([appearance=brand]){--ds-auro-loader-color: var(--ds-basic-color-brand-primary, #01426a)}:host([ondark]),:host([appearance=inverse]){--ds-auro-loader-color: var(--ds-basic-color-texticon-inverse, #ffffff)}:host([orbit])>span{--ds-auro-loader-background-color: transparent}:host([orbit])>span:nth-child(1){--ds-auro-loader-border-color: currentcolor;opacity:.25}:host([orbit])>span:nth-child(2){--ds-auro-loader-border-color: currentcolor;border-right-color:transparent;border-bottom-color:transparent;border-left-color:transparent}
27036
27036
  `,u$4$2=i$4`.body-default{font-size:var(--wcss-body-default-font-size, 1rem);line-height:var(--wcss-body-default-line-height, 1.5rem)}.body-default,.body-lg{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-weight, 450);letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-lg{font-size:var(--wcss-body-lg-font-size, 1.125rem);line-height:var(--wcss-body-lg-line-height, 1.625rem)}.body-sm{font-size:var(--wcss-body-sm-font-size, .875rem);line-height:var(--wcss-body-sm-line-height, 1.25rem)}.body-sm,.body-xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-weight, 450);letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-xs{font-size:var(--wcss-body-xs-font-size, .75rem);line-height:var(--wcss-body-xs-line-height, 1rem)}.body-2xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-size:var(--wcss-body-2xs-font-size, .625rem);font-weight:var(--wcss-body-weight, 450);letter-spacing:var(--wcss-body-letter-spacing, 0);line-height:var(--wcss-body-2xs-line-height, .875rem)}.display-2xl{font-family:var(--wcss-display-2xl-family, "AS Circular"),var(--wcss-display-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-2xl-font-size, clamp(3.5rem, 6vw, 5.375rem));font-weight:var(--wcss-display-2xl-weight, 300);letter-spacing:var(--wcss-display-2xl-letter-spacing, 0);line-height:var(--wcss-display-2xl-line-height, 1.3)}.display-xl{font-family:var(--wcss-display-xl-family, "AS Circular"),var(--wcss-display-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-xl-font-size, clamp(3rem, 5.3333333333vw, 4.5rem));font-weight:var(--wcss-display-xl-weight, 300);letter-spacing:var(--wcss-display-xl-letter-spacing, 0);line-height:var(--wcss-display-xl-line-height, 1.3)}.display-lg{font-family:var(--wcss-display-lg-family, "AS Circular"),var(--wcss-display-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-lg-font-size, clamp(2.75rem, 4.6666666667vw, 4rem));font-weight:var(--wcss-display-lg-weight, 300);letter-spacing:var(--wcss-display-lg-letter-spacing, 0);line-height:var(--wcss-display-lg-line-height, 1.3)}.display-md{font-family:var(--wcss-display-md-family, "AS Circular"),var(--wcss-display-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-md-font-size, clamp(2.5rem, 4vw, 3.5rem));font-weight:var(--wcss-display-md-weight, 300);letter-spacing:var(--wcss-display-md-letter-spacing, 0);line-height:var(--wcss-display-md-line-height, 1.3)}.display-sm{font-family:var(--wcss-display-sm-family, "AS Circular"),var(--wcss-display-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-sm-font-size, clamp(2rem, 3.6666666667vw, 3rem));font-weight:var(--wcss-display-sm-weight, 300);letter-spacing:var(--wcss-display-sm-letter-spacing, 0);line-height:var(--wcss-display-sm-line-height, 1.3)}.display-xs{font-family:var(--wcss-display-xs-family, "AS Circular"),var(--wcss-display-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-xs-font-size, clamp(1.75rem, 3vw, 2.375rem));font-weight:var(--wcss-display-xs-weight, 300);letter-spacing:var(--wcss-display-xs-letter-spacing, 0);line-height:var(--wcss-display-xs-line-height, 1.3)}.heading-xl{font-family:var(--wcss-heading-xl-family, "AS Circular"),var(--wcss-heading-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-xl-font-size, clamp(2rem, 3vw, 2.5rem));font-weight:var(--wcss-heading-xl-weight, 300);letter-spacing:var(--wcss-heading-xl-letter-spacing, 0);line-height:var(--wcss-heading-xl-line-height, 1.3)}.heading-lg{font-family:var(--wcss-heading-lg-family, "AS Circular"),var(--wcss-heading-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-lg-font-size, clamp(1.75rem, 2.6666666667vw, 2.25rem));font-weight:var(--wcss-heading-lg-weight, 300);letter-spacing:var(--wcss-heading-lg-letter-spacing, 0);line-height:var(--wcss-heading-lg-line-height, 1.3)}.heading-md{font-family:var(--wcss-heading-md-family, "AS Circular"),var(--wcss-heading-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-md-font-size, clamp(1.625rem, 2.3333333333vw, 1.75rem));font-weight:var(--wcss-heading-md-weight, 300);letter-spacing:var(--wcss-heading-md-letter-spacing, 0);line-height:var(--wcss-heading-md-line-height, 1.3)}.heading-sm{font-family:var(--wcss-heading-sm-family, "AS Circular"),var(--wcss-heading-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-sm-font-size, clamp(1.375rem, 2vw, 1.5rem));font-weight:var(--wcss-heading-sm-weight, 300);letter-spacing:var(--wcss-heading-sm-letter-spacing, 0);line-height:var(--wcss-heading-sm-line-height, 1.3)}.heading-xs{font-family:var(--wcss-heading-xs-family, "AS Circular"),var(--wcss-heading-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-xs-font-size, clamp(1.25rem, 1.6666666667vw, 1.25rem));font-weight:var(--wcss-heading-xs-weight, 450);letter-spacing:var(--wcss-heading-xs-letter-spacing, 0);line-height:var(--wcss-heading-xs-line-height, 1.3)}.heading-2xs{font-family:var(--wcss-heading-2xs-family, "AS Circular"),var(--wcss-heading-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-2xs-font-size, clamp(1.125rem, 1.5vw, 1.125rem));font-weight:var(--wcss-heading-2xs-weight, 450);letter-spacing:var(--wcss-heading-2xs-letter-spacing, 0);line-height:var(--wcss-heading-2xs-line-height, 1.3)}.accent-2xl{font-family:var(--wcss-accent-2xl-family, "Good OT"),var(--wcss-accent-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-2xl-font-size, clamp(2rem, 3.1666666667vw, 2.375rem));font-weight:var(--wcss-accent-2xl-weight, 450);letter-spacing:var(--wcss-accent-2xl-letter-spacing, .05em);line-height:var(--wcss-accent-2xl-line-height, 1)}.accent-2xl,.accent-xl{text-transform:uppercase}.accent-xl{font-family:var(--wcss-accent-xl-family, "Good OT"),var(--wcss-accent-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-xl-font-size, clamp(1.625rem, 2.3333333333vw, 2rem));font-weight:var(--wcss-accent-xl-weight, 450);letter-spacing:var(--wcss-accent-xl-letter-spacing, .05em);line-height:var(--wcss-accent-xl-line-height, 1.3)}.accent-lg{font-family:var(--wcss-accent-lg-family, "Good OT"),var(--wcss-accent-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-lg-font-size, clamp(1.5rem, 2.1666666667vw, 1.75rem));font-weight:var(--wcss-accent-lg-weight, 450);letter-spacing:var(--wcss-accent-lg-letter-spacing, .05em);line-height:var(--wcss-accent-lg-line-height, 1.3)}.accent-lg,.accent-md{text-transform:uppercase}.accent-md{font-family:var(--wcss-accent-md-family, "Good OT"),var(--wcss-accent-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-md-font-size, clamp(1.375rem, 1.8333333333vw, 1.5rem));font-weight:var(--wcss-accent-md-weight, 500);letter-spacing:var(--wcss-accent-md-letter-spacing, .05em);line-height:var(--wcss-accent-md-line-height, 1.3)}.accent-sm{font-family:var(--wcss-accent-sm-family, "Good OT"),var(--wcss-accent-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-sm-font-size, clamp(1.125rem, 1.5vw, 1.25rem));font-weight:var(--wcss-accent-sm-weight, 500);letter-spacing:var(--wcss-accent-sm-letter-spacing, .05em);line-height:var(--wcss-accent-sm-line-height, 1.3)}.accent-sm,.accent-xs{text-transform:uppercase}.accent-xs{font-family:var(--wcss-accent-xs-family, "Good OT"),var(--wcss-accent-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-xs-font-size, clamp(1rem, 1.3333333333vw, 1rem));font-weight:var(--wcss-accent-xs-weight, 500);letter-spacing:var(--wcss-accent-xs-letter-spacing, .1em);line-height:var(--wcss-accent-xs-line-height, 1.3)}.accent-2xs{font-family:var(--wcss-accent-2xs-family, "Good OT"),var(--wcss-accent-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-2xs-font-size, clamp(.875rem, 1.1666666667vw, .875rem));font-weight:var(--wcss-accent-2xs-weight, 450);letter-spacing:var(--wcss-accent-2xs-letter-spacing, .1em);line-height:var(--wcss-accent-2xs-line-height, 1.3);text-transform:uppercase}:focus:not(:focus-visible){outline:3px solid transparent}:host,:host>span{position:relative}:host{width:2rem;height:2rem;display:inline-block;font-size:0}:host>span{position:absolute;display:inline-block;float:none;top:0;left:0;width:2rem;height:2rem;border-radius:100%;border-style:solid;border-width:0;box-sizing:border-box}:host([xs]),:host([xs])>span{width:1.2rem;height:1.2rem}:host([sm]),:host([sm])>span{width:3rem;height:3rem}:host([md]),:host([md])>span{width:5rem;height:5rem}:host([lg]),:host([lg])>span{width:8rem;height:8rem}:host{--margin: .375rem;--margin-xs: .2rem;--margin-sm: .5rem;--margin-md: .75rem;--margin-lg: 1rem}:host([pulse]),:host([pulse])>span{position:relative}:host([pulse]){width:calc(3rem + var(--margin) * 6);height:calc(1rem + var(--margin) * 2)}:host([pulse])>span{width:1rem;height:1rem;margin:var(--margin);animation:pulse 1.5s ease infinite}:host([pulse][xs]){width:calc(1.95rem + var(--margin-xs) * 6);height:calc(.65rem + var(--margin-xs) * 2)}:host([pulse][xs])>span{margin:var(--margin-xs);width:.65rem;height:.65rem}:host([pulse][sm]){width:calc(6rem + var(--margin-sm) * 6);height:calc(2rem + var(--margin-sm) * 2)}:host([pulse][sm])>span{margin:var(--margin-sm);width:2rem;height:2rem}:host([pulse][md]){width:calc(9rem + var(--margin-md) * 6);height:calc(3rem + var(--margin-md) * 2)}:host([pulse][md])>span{margin:var(--margin-md);width:3rem;height:3rem}:host([pulse][lg]){width:calc(15rem + var(--margin-lg) * 6);height:calc(5rem + var(--margin-lg) * 2)}:host([pulse][lg])>span{margin:var(--margin-lg);width:5rem;height:5rem}:host([pulse])>span:nth-child(1){animation-delay:-.4s}:host([pulse])>span:nth-child(2){animation-delay:-.2s}:host([pulse])>span:nth-child(3){animation-delay:0ms}@keyframes pulse{0%,to{opacity:.1;transform:scale(.9)}50%{opacity:1;transform:scale(1.1)}}:host([orbit]),:host([orbit])>span{opacity:1}:host([orbit])>span{border-width:5px}:host([orbit])>span:nth-child(2){animation:orbit 2s linear infinite}:host([orbit][sm])>span{border-width:8px}:host([orbit][md])>span{border-width:13px}:host([orbit][lg])>span{border-width:21px}@keyframes orbit{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host([ringworm])>svg{animation:rotate 2s linear infinite;height:100%;width:100%;stroke:currentcolor;stroke-width:8}:host([ringworm]) .path{stroke-dashoffset:0;animation:ringworm 1.5s ease-in-out infinite;stroke-linecap:round}@keyframes rotate{to{transform:rotate(360deg)}}@keyframes ringworm{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:89,200;stroke-dashoffset:-35px}to{stroke-dasharray:89,200;stroke-dashoffset:-124px}}:host([laser]){position:static;width:100%;display:block;height:0;overflow:hidden;font-size:unset}:host([laser])>span{position:fixed;width:100%;height:.25rem;border-radius:0;z-index:100}:host([laser])>span:nth-child(1){border-color:currentcolor;opacity:.25}:host([laser])>span:nth-child(2){border-color:currentcolor;animation:laser 2s linear infinite;opacity:1;width:50%}:host([laser][sm])>span:nth-child(2){width:20%}:host([laser][md])>span:nth-child(2){width:30%}:host([laser][lg])>span:nth-child(2){width:50%;animation-duration:1.5s}:host([laser][xl])>span:nth-child(2){width:80%;animation-duration:1.5s}@keyframes laser{0%{left:-100%}to{left:110%}}:host>.no-animation{display:none}@media (prefers-reduced-motion: reduce){:host{display:flex;align-items:center;justify-content:center}:host>span{opacity:1}:host>.loader{display:none}:host>svg{display:none}:host>.no-animation{display:block}}
@@ -30811,6 +30811,48 @@ const computePosition$4 = (reference, floating, options) => {
30811
30811
  });
30812
30812
  };
30813
30813
 
30814
+ /**
30815
+ * Generates a v4 UUID with a three-tier fallback for insecure contexts.
30816
+ *
30817
+ * Tier 1 (secure contexts): crypto.randomUUID() — native, fully random.
30818
+ * Tier 2 (insecure contexts): crypto.getRandomValues() — available on all
30819
+ * modern browsers regardless of secure-context status.
30820
+ * Tier 3 (last resort, no crypto API): new Date().getTime() — lower entropy,
30821
+ * but sufficient for element IDs where collision risk is negligible.
30822
+ *
30823
+ * See: https://w3c.github.io/webcrypto/#dom-crypto-randomuuid (secure-context restriction)
30824
+ */
30825
+ function generateUUID$3() {
30826
+ let uuid;
30827
+
30828
+ if (
30829
+ typeof crypto !== "undefined" &&
30830
+ typeof crypto.randomUUID === "function"
30831
+ ) {
30832
+ uuid = crypto.randomUUID();
30833
+ } else if (
30834
+ typeof crypto !== "undefined" &&
30835
+ typeof crypto.getRandomValues === "function"
30836
+ ) {
30837
+ const bytes = new Uint8Array(16);
30838
+ crypto.getRandomValues(bytes);
30839
+ bytes[6] = (bytes[6] & 0x0f) | 0x40;
30840
+ bytes[8] = (bytes[8] & 0x3f) | 0x80;
30841
+ const hex = Array.from(bytes).map((b) => b.toString(16).padStart(2, "0"));
30842
+ 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("")}`;
30843
+ } else {
30844
+ let d = new Date().getTime();
30845
+ uuid = "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, (c) => {
30846
+ const r = (d % 16) | 0;
30847
+ d = (d - r) / 16 || new Date().getTime();
30848
+ return (c === "x" ? r : (r & 0x3) | 0x8).toString(16);
30849
+ });
30850
+ }
30851
+
30852
+ // CSS selectors require IDs starting with a letter; replace a leading digit with 'a'.
30853
+ return /^[0-9]/.test(uuid) ? `a${uuid.slice(1)}` : uuid;
30854
+ }
30855
+
30814
30856
  /* eslint-disable line-comment-position, no-inline-comments */
30815
30857
 
30816
30858
 
@@ -31829,7 +31871,7 @@ let AuroFloatingUI$3 = class AuroFloatingUI {
31829
31871
 
31830
31872
  this.id = element.getAttribute("id");
31831
31873
  if (!this.id) {
31832
- this.id = window.crypto.randomUUID();
31874
+ this.id = generateUUID$3();
31833
31875
  element.setAttribute("id", this.id);
31834
31876
  }
31835
31877
 
@@ -32874,7 +32916,7 @@ let AuroHelpText$2$1 = class AuroHelpText extends i$2 {
32874
32916
  }
32875
32917
  };
32876
32918
 
32877
- var formkitVersion$1$3 = '202609021913';
32919
+ var formkitVersion$1$3 = '202609030018';
32878
32920
 
32879
32921
  /**
32880
32922
  * AuroElement is the shared base class for layout-aware Auro form components.
@@ -46736,7 +46778,7 @@ let AuroHelpText$1$3 = class AuroHelpText extends i$2 {
46736
46778
  }
46737
46779
  };
46738
46780
 
46739
- var formkitVersion$7 = '202609021913';
46781
+ var formkitVersion$7 = '202609030018';
46740
46782
 
46741
46783
  // Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
46742
46784
  // See LICENSE in the project root for license information.
@@ -51842,7 +51884,7 @@ let AuroHelpText$1$2 = class AuroHelpText extends i$2 {
51842
51884
  }
51843
51885
  };
51844
51886
 
51845
- var formkitVersion$1$2 = '202609021913';
51887
+ var formkitVersion$1$2 = '202609030018';
51846
51888
 
51847
51889
  // Copyright (c) 2026 Alaska Airlines. All rights reserved. Licensed under the Apache-2.0 license
51848
51890
  // See LICENSE in the project root for license information.
@@ -54079,6 +54121,48 @@ const computePosition$3 = (reference, floating, options) => {
54079
54121
  });
54080
54122
  };
54081
54123
 
54124
+ /**
54125
+ * Generates a v4 UUID with a three-tier fallback for insecure contexts.
54126
+ *
54127
+ * Tier 1 (secure contexts): crypto.randomUUID() — native, fully random.
54128
+ * Tier 2 (insecure contexts): crypto.getRandomValues() — available on all
54129
+ * modern browsers regardless of secure-context status.
54130
+ * Tier 3 (last resort, no crypto API): new Date().getTime() — lower entropy,
54131
+ * but sufficient for element IDs where collision risk is negligible.
54132
+ *
54133
+ * See: https://w3c.github.io/webcrypto/#dom-crypto-randomuuid (secure-context restriction)
54134
+ */
54135
+ function generateUUID$2() {
54136
+ let uuid;
54137
+
54138
+ if (
54139
+ typeof crypto !== "undefined" &&
54140
+ typeof crypto.randomUUID === "function"
54141
+ ) {
54142
+ uuid = crypto.randomUUID();
54143
+ } else if (
54144
+ typeof crypto !== "undefined" &&
54145
+ typeof crypto.getRandomValues === "function"
54146
+ ) {
54147
+ const bytes = new Uint8Array(16);
54148
+ crypto.getRandomValues(bytes);
54149
+ bytes[6] = (bytes[6] & 0x0f) | 0x40;
54150
+ bytes[8] = (bytes[8] & 0x3f) | 0x80;
54151
+ const hex = Array.from(bytes).map((b) => b.toString(16).padStart(2, "0"));
54152
+ 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("")}`;
54153
+ } else {
54154
+ let d = new Date().getTime();
54155
+ uuid = "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, (c) => {
54156
+ const r = (d % 16) | 0;
54157
+ d = (d - r) / 16 || new Date().getTime();
54158
+ return (c === "x" ? r : (r & 0x3) | 0x8).toString(16);
54159
+ });
54160
+ }
54161
+
54162
+ // CSS selectors require IDs starting with a letter; replace a leading digit with 'a'.
54163
+ return /^[0-9]/.test(uuid) ? `a${uuid.slice(1)}` : uuid;
54164
+ }
54165
+
54082
54166
  /* eslint-disable line-comment-position, no-inline-comments */
54083
54167
 
54084
54168
 
@@ -55097,7 +55181,7 @@ let AuroFloatingUI$2 = class AuroFloatingUI {
55097
55181
 
55098
55182
  this.id = element.getAttribute("id");
55099
55183
  if (!this.id) {
55100
- this.id = window.crypto.randomUUID();
55184
+ this.id = generateUUID$2();
55101
55185
  element.setAttribute("id", this.id);
55102
55186
  }
55103
55187
 
@@ -55181,7 +55265,7 @@ let AuroFloatingUI$2 = class AuroFloatingUI {
55181
55265
  };
55182
55266
 
55183
55267
  // Selectors for focusable elements
55184
- const FOCUSABLE_SELECTORS$3 = [
55268
+ const FOCUSABLE_SELECTORS$1$1 = [
55185
55269
  "a[href]",
55186
55270
  "button:not([disabled])",
55187
55271
  "textarea:not([disabled])",
@@ -55195,7 +55279,7 @@ const FOCUSABLE_SELECTORS$3 = [
55195
55279
  ];
55196
55280
 
55197
55281
  // List of custom components that are known to be focusable
55198
- const FOCUSABLE_COMPONENTS$3 = [
55282
+ const FOCUSABLE_COMPONENTS$1$1 = [
55199
55283
  "auro-checkbox",
55200
55284
  "auro-radio",
55201
55285
  "auro-dropdown",
@@ -55217,12 +55301,12 @@ const FOCUSABLE_COMPONENTS$3 = [
55217
55301
  * @param {HTMLElement} element The element to check for focusability.
55218
55302
  * @returns {boolean} True if the element is a focusable custom component, false otherwise.
55219
55303
  */
55220
- function isFocusableComponent$3(element) {
55304
+ function isFocusableComponent$1$1(element) {
55221
55305
  const componentName = element.tagName.toLowerCase();
55222
55306
 
55223
55307
  // Guard Clause: Element is a focusable component
55224
55308
  if (
55225
- !FOCUSABLE_COMPONENTS$3.some(
55309
+ !FOCUSABLE_COMPONENTS$1$1.some(
55226
55310
  (name) => element.hasAttribute(name) || componentName === name,
55227
55311
  )
55228
55312
  )
@@ -55246,7 +55330,7 @@ function isFocusableComponent$3(element) {
55246
55330
  * @param {HTMLElement} element The element whose tabindex to read.
55247
55331
  * @returns {?number} The numeric tabindex or null if missing/invalid.
55248
55332
  */
55249
- function getNumericTabIndex$3(element) {
55333
+ function getNumericTabIndex$1$1(element) {
55250
55334
  const raw = element.getAttribute("tabindex");
55251
55335
  if (raw == null) return null;
55252
55336
 
@@ -55262,7 +55346,7 @@ function getNumericTabIndex$3(element) {
55262
55346
  * @param {HTMLElement} container The container to search within
55263
55347
  * @returns {Array<HTMLElement>} An array of focusable elements within the container.
55264
55348
  */
55265
- function getFocusableElements$3(container) {
55349
+ function getFocusableElements$1$1(container) {
55266
55350
  // Get elements in DOM order by walking the tree
55267
55351
  const orderedFocusableElements = [];
55268
55352
 
@@ -55271,7 +55355,7 @@ function getFocusableElements$3(container) {
55271
55355
  // Check if current element is focusable
55272
55356
  if (root.nodeType === Node.ELEMENT_NODE) {
55273
55357
  // Check if this is a custom component that is focusable
55274
- const isComponentFocusable = isFocusableComponent$3(root);
55358
+ const isComponentFocusable = isFocusableComponent$1$1(root);
55275
55359
 
55276
55360
  if (isComponentFocusable) {
55277
55361
  // Add the component itself as a focusable element and don't traverse its shadow DOM
@@ -55280,7 +55364,7 @@ function getFocusableElements$3(container) {
55280
55364
  }
55281
55365
 
55282
55366
  // Check if the element itself matches any selector
55283
- for (const selector of FOCUSABLE_SELECTORS$3) {
55367
+ for (const selector of FOCUSABLE_SELECTORS$1$1) {
55284
55368
  if (root.matches?.(selector)) {
55285
55369
  orderedFocusableElements.push(root);
55286
55370
  break; // Once we know it's focusable, no need to check other selectors
@@ -55334,20 +55418,20 @@ function getFocusableElements$3(container) {
55334
55418
 
55335
55419
  // First extract elements with valid positive tabindex
55336
55420
  const elementsWithTabindex = uniqueElements.filter((el) => {
55337
- const tabindex = getNumericTabIndex$3(el);
55421
+ const tabindex = getNumericTabIndex$1$1(el);
55338
55422
  return tabindex !== null && tabindex > 0;
55339
55423
  });
55340
55424
 
55341
55425
  // Sort these elements by their tabindex value
55342
55426
  elementsWithTabindex.sort((a, b) => {
55343
- const aIndex = getNumericTabIndex$3(a) ?? 0;
55344
- const bIndex = getNumericTabIndex$3(b) ?? 0;
55427
+ const aIndex = getNumericTabIndex$1$1(a) ?? 0;
55428
+ const bIndex = getNumericTabIndex$1$1(b) ?? 0;
55345
55429
  return aIndex - bIndex;
55346
55430
  });
55347
55431
 
55348
55432
  // Elements without tabindex (preserving their original order)
55349
55433
  const elementsWithoutTabindex = uniqueElements.filter((el) => {
55350
- const tabindex = getNumericTabIndex$3(el);
55434
+ const tabindex = getNumericTabIndex$1$1(el);
55351
55435
 
55352
55436
  // Elements without tabindex or with tabindex of 0 stay in DOM order
55353
55437
  return tabindex === null || tabindex === 0;
@@ -56142,7 +56226,7 @@ let AuroHelpText$6 = class AuroHelpText extends i$2 {
56142
56226
  }
56143
56227
  };
56144
56228
 
56145
- var formkitVersion$6 = '202609021913';
56229
+ var formkitVersion$6 = '202609030018';
56146
56230
 
56147
56231
  /**
56148
56232
  * AuroElement is the shared base class for layout-aware Auro form components.
@@ -56442,7 +56526,7 @@ let AuroDropdown$2 = class AuroDropdown extends AuroElement$1$2 {
56442
56526
  */
56443
56527
  focus() {
56444
56528
  if (this.isPopoverVisible && this.bibContent) {
56445
- const focusables = getFocusableElements$3(this.bibContent);
56529
+ const focusables = getFocusableElements$1$1(this.bibContent);
56446
56530
  if (focusables.length > 0) {
56447
56531
  focusables[0].focus();
56448
56532
  }
@@ -56474,7 +56558,7 @@ let AuroDropdown$2 = class AuroDropdown extends AuroElement$1$2 {
56474
56558
  // wrappers like <div> containing a <button>). If none found, try
56475
56559
  // focusing the element directly (works for custom elements like
56476
56560
  // auro-input that have delegatesFocus or a custom focus() method).
56477
- const descendants = getFocusableElements$3(el);
56561
+ const descendants = getFocusableElements$1$1(el);
56478
56562
  if (descendants.length > 0) {
56479
56563
  descendants[0].focus();
56480
56564
  return;
@@ -56486,7 +56570,7 @@ let AuroDropdown$2 = class AuroDropdown extends AuroElement$1$2 {
56486
56570
  }
56487
56571
  }
56488
56572
  // Fallback: try DOM children (non-slotted content)
56489
- const focusables = getFocusableElements$3(this.trigger);
56573
+ const focusables = getFocusableElements$1$1(this.trigger);
56490
56574
  if (focusables.length > 0) {
56491
56575
  focusables[0].focus();
56492
56576
  }
@@ -57165,7 +57249,7 @@ let AuroDropdown$2 = class AuroDropdown extends AuroElement$1$2 {
57165
57249
  }
57166
57250
 
57167
57251
  // Collect focusable elements from the bib content.
57168
- const focusables = getFocusableElements$3(this.bibContent);
57252
+ const focusables = getFocusableElements$1$1(this.bibContent);
57169
57253
 
57170
57254
  // Fallback: try from slotted content directly
57171
57255
  if (!focusables.length) {
@@ -57174,7 +57258,7 @@ let AuroDropdown$2 = class AuroDropdown extends AuroElement$1$2 {
57174
57258
 
57175
57259
  for (const node of assignedNodes) {
57176
57260
  if (node.nodeType === Node.ELEMENT_NODE) {
57177
- focusables.push(...getFocusableElements$3(node));
57261
+ focusables.push(...getFocusableElements$1$1(node));
57178
57262
  }
57179
57263
  }
57180
57264
  }
@@ -57234,7 +57318,7 @@ let AuroDropdown$2 = class AuroDropdown extends AuroElement$1$2 {
57234
57318
 
57235
57319
  // Move initial focus into the bib content, matching FocusTrap behavior
57236
57320
  requestAnimationFrame(() => {
57237
- const focusables = getFocusableElements$3(this.bibContent);
57321
+ const focusables = getFocusableElements$1$1(this.bibContent);
57238
57322
  if (focusables.length) {
57239
57323
  focusables[0].focus();
57240
57324
  }
@@ -57247,7 +57331,7 @@ let AuroDropdown$2 = class AuroDropdown extends AuroElement$1$2 {
57247
57331
  // popover asynchronously — a synchronous focus() would target
57248
57332
  // zero-dimension elements and be silently ignored.
57249
57333
  requestAnimationFrame(() => {
57250
- const focusables = getFocusableElements$3(this.bibContent);
57334
+ const focusables = getFocusableElements$1$1(this.bibContent);
57251
57335
  if (focusables.length) {
57252
57336
  focusables[0].focus();
57253
57337
  }
@@ -57465,7 +57549,7 @@ let AuroDropdown$2 = class AuroDropdown extends AuroElement$1$2 {
57465
57549
  if (triggerContentNodes) {
57466
57550
 
57467
57551
  // See if any of them are focusable elements
57468
- this.triggerContentFocusable = triggerContentNodes.some((node) => getFocusableElements$3(node).length > 0);
57552
+ this.triggerContentFocusable = triggerContentNodes.some((node) => getFocusableElements$1$1(node).length > 0);
57469
57553
 
57470
57554
  // If any of them are focusable elements
57471
57555
  if (this.triggerContentFocusable) {
@@ -58227,9 +58311,241 @@ let AuroElement$4 = class AuroElement extends i$2 {
58227
58311
  }
58228
58312
  };
58229
58313
 
58314
+ // Selectors for focusable elements
58315
+ const FOCUSABLE_SELECTORS$3 = [
58316
+ "a[href]",
58317
+ "button:not([disabled])",
58318
+ "textarea:not([disabled])",
58319
+ "input:not([disabled])",
58320
+ "select:not([disabled])",
58321
+ '[role="tab"]:not([disabled])',
58322
+ '[role="link"]:not([disabled])',
58323
+ '[role="button"]:not([disabled])',
58324
+ '[tabindex]:not([tabindex="-1"])',
58325
+ '[contenteditable]:not([contenteditable="false"])',
58326
+ ];
58327
+
58328
+ // List of custom components that are known to be focusable
58329
+ const FOCUSABLE_COMPONENTS$3 = [
58330
+ "auro-checkbox",
58331
+ "auro-radio",
58332
+ "auro-dropdown",
58333
+ "auro-button",
58334
+ "auro-combobox",
58335
+ "auro-input",
58336
+ "auro-counter",
58337
+ // 'auro-menu', // Auro menu is not focusable by default, it uses a different interaction model
58338
+ "auro-select",
58339
+ "auro-datepicker",
58340
+ "auro-hyperlink",
58341
+ "auro-accordion",
58342
+ ];
58343
+
58344
+ /**
58345
+ * Determines if a given element is a custom focusable component.
58346
+ * Returns true if the element matches a known focusable component and is not disabled.
58347
+ *
58348
+ * @param {HTMLElement} element The element to check for focusability.
58349
+ * @returns {boolean} True if the element is a focusable custom component, false otherwise.
58350
+ */
58351
+ function isFocusableComponent$3(element) {
58352
+ const componentName = element.tagName.toLowerCase();
58353
+
58354
+ // Guard Clause: Element is a focusable component
58355
+ if (
58356
+ !FOCUSABLE_COMPONENTS$3.some(
58357
+ (name) => element.hasAttribute(name) || componentName === name,
58358
+ )
58359
+ )
58360
+ return false;
58361
+
58362
+ // Guard Clause: Element is not disabled
58363
+ if (element.hasAttribute("disabled")) return false;
58364
+
58365
+ // Guard Clause: The element is a hyperlink and has no href attribute
58366
+ if (componentName.match("hyperlink") && !element.hasAttribute("href"))
58367
+ return false;
58368
+
58369
+ // If all guard clauses pass, the element is a focusable component
58370
+ return true;
58371
+ }
58372
+
58373
+ /**
58374
+ * Safely get a numeric tabindex for an element.
58375
+ * Returns a number if the tabindex is a valid integer, otherwise null.
58376
+ *
58377
+ * @param {HTMLElement} element The element whose tabindex to read.
58378
+ * @returns {?number} The numeric tabindex or null if missing/invalid.
58379
+ */
58380
+ function getNumericTabIndex$3(element) {
58381
+ const raw = element.getAttribute("tabindex");
58382
+ if (raw == null) return null;
58383
+
58384
+ const value = Number.parseInt(raw, 10);
58385
+ return Number.isNaN(value) ? null : value;
58386
+ }
58387
+
58388
+ /**
58389
+ * Retrieves all focusable elements within the container in DOM order, including those in shadow DOM and slots.
58390
+ * Returns a unique, ordered array of elements that can receive focus.
58391
+ * Also sorts elements with tabindex first, preserving their order.
58392
+ *
58393
+ * @param {HTMLElement} container The container to search within
58394
+ * @returns {Array<HTMLElement>} An array of focusable elements within the container.
58395
+ */
58396
+ function getFocusableElements$3(container) {
58397
+ // Get elements in DOM order by walking the tree
58398
+ const orderedFocusableElements = [];
58399
+
58400
+ // Define a recursive function to collect focusable elements in DOM order
58401
+ const collectFocusableElements = (root) => {
58402
+ // Check if current element is focusable
58403
+ if (root.nodeType === Node.ELEMENT_NODE) {
58404
+ // Check if this is a custom component that is focusable
58405
+ const isComponentFocusable = isFocusableComponent$3(root);
58406
+
58407
+ if (isComponentFocusable) {
58408
+ // Add the component itself as a focusable element and don't traverse its shadow DOM
58409
+ orderedFocusableElements.push(root);
58410
+ return; // Skip traversing inside this component
58411
+ }
58412
+
58413
+ // Check if the element itself matches any selector
58414
+ for (const selector of FOCUSABLE_SELECTORS$3) {
58415
+ if (root.matches?.(selector)) {
58416
+ orderedFocusableElements.push(root);
58417
+ break; // Once we know it's focusable, no need to check other selectors
58418
+ }
58419
+ }
58420
+
58421
+ // Process shadow DOM only for non-Auro components
58422
+ if (root.shadowRoot) {
58423
+ // Process shadow DOM children in order
58424
+ if (root.shadowRoot.children) {
58425
+ Array.from(root.shadowRoot.children).forEach((child) => {
58426
+ collectFocusableElements(child);
58427
+ });
58428
+ }
58429
+ }
58430
+
58431
+ // Process slots and their assigned nodes in order
58432
+ if (root.tagName === "SLOT") {
58433
+ const assignedNodes = root.assignedNodes({ flatten: true });
58434
+ for (const node of assignedNodes) {
58435
+ collectFocusableElements(node);
58436
+ }
58437
+ } else {
58438
+ // Process light DOM children in order
58439
+ if (root.children) {
58440
+ Array.from(root.children).forEach((child) => {
58441
+ collectFocusableElements(child);
58442
+ });
58443
+ }
58444
+ }
58445
+ }
58446
+ };
58447
+
58448
+ // Start the traversal from the container
58449
+ collectFocusableElements(container);
58450
+
58451
+ // Remove duplicates that might have been collected through different paths
58452
+ // while preserving order
58453
+ const uniqueElements = [];
58454
+ const seen = new Set();
58455
+
58456
+ for (const element of orderedFocusableElements) {
58457
+ if (!seen.has(element)) {
58458
+ seen.add(element);
58459
+ uniqueElements.push(element);
58460
+ }
58461
+ }
58462
+
58463
+ // Move tab-indexed elements to the front while preserving their order
58464
+ // This ensures that elements with tabindex are prioritized in the focus order
58465
+
58466
+ // First extract elements with valid positive tabindex
58467
+ const elementsWithTabindex = uniqueElements.filter((el) => {
58468
+ const tabindex = getNumericTabIndex$3(el);
58469
+ return tabindex !== null && tabindex > 0;
58470
+ });
58471
+
58472
+ // Sort these elements by their tabindex value
58473
+ elementsWithTabindex.sort((a, b) => {
58474
+ const aIndex = getNumericTabIndex$3(a) ?? 0;
58475
+ const bIndex = getNumericTabIndex$3(b) ?? 0;
58476
+ return aIndex - bIndex;
58477
+ });
58478
+
58479
+ // Elements without tabindex (preserving their original order)
58480
+ const elementsWithoutTabindex = uniqueElements.filter((el) => {
58481
+ const tabindex = getNumericTabIndex$3(el);
58482
+
58483
+ // Elements without tabindex or with tabindex of 0 stay in DOM order
58484
+ return tabindex === null || tabindex === 0;
58485
+ });
58486
+
58487
+ // Combine both arrays with tabindex elements first
58488
+ const tabIndexedUniqueElements = [
58489
+ ...elementsWithTabindex,
58490
+ ...elementsWithoutTabindex,
58491
+ ];
58492
+
58493
+ return tabIndexedUniqueElements;
58494
+ }
58495
+
58230
58496
  // Copyright (c) 2026 Alaska Airlines. All rights reserved. Licensed under the Apache-2.0 license
58231
58497
  // See LICENSE in the project root for license information.
58232
58498
 
58499
+
58500
+ /**
58501
+ * Whether `el` is currently visible enough to receive focus. Prefers the
58502
+ * browser's `checkVisibility()`; otherwise combines a display/visibility check
58503
+ * with an ancestor-hidden probe that keeps position:fixed elements visible.
58504
+ * @param {Element} el - The element to test.
58505
+ * @returns {boolean}
58506
+ */
58507
+ function isVisibleForFocus$1(el) {
58508
+ if (typeof el.checkVisibility === 'function') {
58509
+ return el.checkVisibility();
58510
+ }
58511
+ const style = el.ownerDocument.defaultView.getComputedStyle(el);
58512
+ if (style.display === 'none' || style.visibility === 'hidden') {
58513
+ return false;
58514
+ }
58515
+ return el.offsetParent !== null || style.position === 'fixed';
58516
+ }
58517
+
58518
+ /**
58519
+ * Return the tab stop that comes before the counter-group in page tab order,
58520
+ * skipping any hidden entries the walker doesn't filter itself. The group host
58521
+ * itself is not a tab stop; its focusables (the internal dropdown and the
58522
+ * counters) are, so anchor the search on the group's earliest focusable.
58523
+ * @param {Element} component - The auro-counter-group host element.
58524
+ * @returns {Element|null}
58525
+ */
58526
+ function getPreviousTabStop$1(component) {
58527
+ const tabStops = getFocusableElements$3(component.ownerDocument.body);
58528
+ const counters = component.counters || [];
58529
+ const owned = [
58530
+ component,
58531
+ component.dropdown,
58532
+ ...counters
58533
+ ].filter(Boolean);
58534
+ let groupStart = tabStops.length;
58535
+ owned.forEach((node) => {
58536
+ const index = tabStops.indexOf(node);
58537
+ if (index >= 0 && index < groupStart) {
58538
+ groupStart = index;
58539
+ }
58540
+ });
58541
+ for (let index = groupStart - 1; index >= 0; index -= 1) {
58542
+ if (isVisibleForFocus$1(tabStops[index])) {
58543
+ return tabStops[index];
58544
+ }
58545
+ }
58546
+ return null;
58547
+ }
58548
+
58233
58549
  const counterGroupKeyboardStrategy = {
58234
58550
  Escape(component, evt) {
58235
58551
  if (!component.dropdown || !component.dropdown.isPopoverVisible) {
@@ -58243,6 +58559,48 @@ const counterGroupKeyboardStrategy = {
58243
58559
 
58244
58560
  component.dropdown.hide();
58245
58561
  },
58562
+
58563
+ Tab(component, evt, ctx) {
58564
+ // Forward Tab already exits past the bib content and the focusout handler
58565
+ // closes the bib. Fullscreen relies on the dialog's native focus trapping.
58566
+ if (!ctx.isExpanded || ctx.isModal || !evt.shiftKey) {
58567
+ return;
58568
+ }
58569
+
58570
+ // The trigger precedes the bib content in the flattened tab order, so a
58571
+ // native Shift+Tab off the first counter lands back on the trigger and
58572
+ // leaves the bib open. Only intercept when focus is on the first focusable
58573
+ // in the bib; otherwise let the browser move to the previous counter.
58574
+ // `composedPath()` reports the real event origin through every shadow
58575
+ // boundary, unlike `document.activeElement`, which retargets to the first
58576
+ // slotted counter and cannot tell the counters apart.
58577
+ const focusables = getFocusableElements$3(component.dropdown.bibContent);
58578
+ if (!focusables.length) {
58579
+ return;
58580
+ }
58581
+
58582
+ const path = evt.composedPath();
58583
+ const activeIndex = focusables.findIndex((el) => path.includes(el));
58584
+ if (activeIndex !== 0) {
58585
+ return;
58586
+ }
58587
+
58588
+ const previousTabStop = getPreviousTabStop$1(component);
58589
+
58590
+ // Always suppress the native Shift+Tab. Otherwise it fires against the bib
58591
+ // as it is torn down and lands focus on the trigger (which precedes the
58592
+ // first counter), re-opening the exact loop this handler prevents. When
58593
+ // nothing precedes the group, focus falls to the body instead of the
58594
+ // trigger, which reads as exiting the group backward.
58595
+ evt.preventDefault();
58596
+ component.hideBib();
58597
+
58598
+ if (!previousTabStop) {
58599
+ return;
58600
+ }
58601
+
58602
+ doubleRaf$2(() => previousTabStop.focus());
58603
+ },
58246
58604
  };
58247
58605
 
58248
58606
  /* 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,
@@ -60343,7 +60701,7 @@ let AuroHelpText$5 = class AuroHelpText extends i$2 {
60343
60701
  }
60344
60702
  };
60345
60703
 
60346
- var formkitVersion$5 = '202609021913';
60704
+ var formkitVersion$5 = '202609030018';
60347
60705
 
60348
60706
  // Copyright (c) Alaska Air. All right reserved. Licensed under the Apache-2.0 license
60349
60707
  // See LICENSE in the project root for license information.
@@ -60671,18 +61029,42 @@ class AuroRadioGroup extends i$2 {
60671
61029
  }
60672
61030
 
60673
61031
  if (changedProperties.has('validity')) {
60674
- if (this.validity && this.validity !== 'valid') {
60675
- this.items.forEach((el) => {
60676
- el.setAttribute('error', true);
60677
- el.setAttribute('aria-invalid', 'true');
60678
- });
61032
+ this.syncItemValidity();
61033
+ }
61034
+ }
61035
+
61036
+ /**
61037
+ * Whether the group is currently in an invalid state.
61038
+ * `validity` — not `error` — is the authoritative source: `validate()` resolves the
61039
+ * `error` attribute to `validity = 'customError'`, so `error` is already covered here.
61040
+ * Single definition of "invalid" for the whole component, consumed by `render()` and
61041
+ * `syncItemValidity()` so the fieldset and its children can never disagree.
61042
+ * @private
61043
+ * @returns {boolean}
61044
+ */
61045
+ get isInvalid() {
61046
+ return Boolean(this.validity && this.validity !== 'valid');
61047
+ }
61048
+
61049
+ /**
61050
+ * Method for mirroring the group's invalid state onto each radio input.
61051
+ * Has to be re-applied from `handleItems()` as well, because a slot change or a
61052
+ * reconnect can happen without `validity` itself changing.
61053
+ * @private
61054
+ * @returns {void}
61055
+ */
61056
+ syncItemValidity() {
61057
+ const invalid = this.isInvalid;
61058
+
61059
+ this.items.forEach((el) => {
61060
+ if (invalid) {
61061
+ el.setAttribute('error', true);
61062
+ el.setAttribute('aria-invalid', 'true');
60679
61063
  } else {
60680
- this.items.forEach((el) => {
60681
- el.removeAttribute('error');
60682
- el.removeAttribute('aria-invalid');
60683
- });
61064
+ el.removeAttribute('error');
61065
+ el.removeAttribute('aria-invalid');
60684
61066
  }
60685
- }
61067
+ });
60686
61068
  }
60687
61069
 
60688
61070
  /**
@@ -60738,8 +61120,9 @@ class AuroRadioGroup extends i$2 {
60738
61120
 
60739
61121
  this.items.forEach((el) => {
60740
61122
  el.required = this.required;
60741
- el.error = Boolean(this.error);
60742
61123
  });
61124
+
61125
+ this.syncItemValidity();
60743
61126
  }
60744
61127
 
60745
61128
  /**
@@ -60888,7 +61271,7 @@ class AuroRadioGroup extends i$2 {
60888
61271
  class="${e$2(groupClasses)}"
60889
61272
  part="radio-group"
60890
61273
  role="radiogroup"
60891
- aria-invalid="${o$4(this.validity && this.validity !== 'valid' ? 'true' : undefined)}"
61274
+ aria-invalid="${o$4(this.isInvalid ? 'true' : undefined)}"
60892
61275
  aria-describedby="${this.uniqueId}"
60893
61276
  >
60894
61277
  <legend class="${e$2(legendClasses)}">
@@ -60898,7 +61281,7 @@ class AuroRadioGroup extends i$2 {
60898
61281
  <slot @slotchange=${this.handleSlotChange}></slot>
60899
61282
  </fieldset>
60900
61283
 
60901
- ${!this.validity || this.validity === undefined || this.validity === 'valid'
61284
+ ${!this.isInvalid
60902
61285
  ? u$d`
60903
61286
  <${this.helpTextTag} id="${this.uniqueId}" appearance="${this.onDark ? 'inverse' : this.appearance}" part="helpText">
60904
61287
  <slot name="helpText"></slot>
@@ -62162,7 +62545,7 @@ let AuroHelpText$4 = class AuroHelpText extends i$2 {
62162
62545
  }
62163
62546
  };
62164
62547
 
62165
- var formkitVersion$4 = '202609021913';
62548
+ var formkitVersion$4 = '202609030018';
62166
62549
 
62167
62550
  // Copyright (c) 2026 Alaska Airlines. All rights reserved. Licensed under the Apache-2.0 license
62168
62551
  // See LICENSE in the project root for license information.
@@ -62495,6 +62878,42 @@ class AuroCheckboxGroup extends i$2 {
62495
62878
  this.handlePreselectedItems();
62496
62879
 
62497
62880
  this.validate();
62881
+ this.syncCheckboxValidity();
62882
+ }
62883
+
62884
+ /**
62885
+ * Whether the group is currently in an invalid state.
62886
+ * `validity` — not `error` — is the authoritative source: `validate()` resolves the
62887
+ * `error` attribute to `validity = 'customError'`, so `error` is already covered here.
62888
+ * Single definition of "invalid" for the whole component, consumed by `render()` and
62889
+ * `syncCheckboxValidity()` so the fieldset and its children can never disagree.
62890
+ * @private
62891
+ * @returns {boolean}
62892
+ */
62893
+ get isInvalid() {
62894
+ return Boolean(this.validity && this.validity !== 'valid');
62895
+ }
62896
+
62897
+ /**
62898
+ * Method for mirroring the group's invalid state onto each checkbox.
62899
+ * Has to be re-applied from `handleItems()` as well, because a slot change can happen
62900
+ * without `validity` itself changing — a checkbox slotted into an already-invalid
62901
+ * group would otherwise be missed.
62902
+ * @private
62903
+ * @returns {void}
62904
+ */
62905
+ syncCheckboxValidity() {
62906
+ const invalid = this.isInvalid;
62907
+
62908
+ this.checkboxes.forEach((el) => {
62909
+ if (invalid) {
62910
+ el.setAttribute('error', true);
62911
+ el.setAttribute('aria-invalid', 'true');
62912
+ } else {
62913
+ el.removeAttribute('error');
62914
+ el.removeAttribute('aria-invalid');
62915
+ }
62916
+ });
62498
62917
  }
62499
62918
 
62500
62919
  /**
@@ -62526,15 +62945,7 @@ class AuroCheckboxGroup extends i$2 {
62526
62945
  }
62527
62946
 
62528
62947
  if (changedProperties.has('validity')) {
62529
- this.checkboxes.forEach((el) => {
62530
- if (this.validity && this.validity !== 'valid') {
62531
- el.setAttribute('error', true);
62532
- el.setAttribute('aria-invalid', 'true');
62533
- } else {
62534
- el.removeAttribute('error');
62535
- el.removeAttribute('aria-invalid');
62536
- }
62537
- });
62948
+ this.syncCheckboxValidity();
62538
62949
  }
62539
62950
 
62540
62951
  if (changedProperties.has('required')) {
@@ -62578,7 +62989,7 @@ class AuroCheckboxGroup extends i$2 {
62578
62989
  return u$d`
62579
62990
  <fieldset
62580
62991
  class="${e$2(groupClasses)}"
62581
- aria-invalid="${o$4(this.validity && this.validity !== 'valid' ? 'true' : undefined)}"
62992
+ aria-invalid="${o$4(this.isInvalid ? 'true' : undefined)}"
62582
62993
  aria-describedby="${this.uniqueId}"
62583
62994
  >
62584
62995
  <legend>
@@ -62588,7 +62999,7 @@ class AuroCheckboxGroup extends i$2 {
62588
62999
  <slot @slotchange=${this.handleItems}></slot>
62589
63000
  </fieldset>
62590
63001
 
62591
- ${!this.validity || this.validity === undefined || this.validity === 'valid'
63002
+ ${!this.isInvalid
62592
63003
  ? u$d`
62593
63004
  <${this.helpTextTag} id="${this.uniqueId}" part="helpText" appearance="${this.onDark ? 'inverse' : this.appearance}">
62594
63005
  <slot name="helpText"></slot>
@@ -65531,6 +65942,48 @@ const computePosition$2 = (reference, floating, options) => {
65531
65942
  });
65532
65943
  };
65533
65944
 
65945
+ /**
65946
+ * Generates a v4 UUID with a three-tier fallback for insecure contexts.
65947
+ *
65948
+ * Tier 1 (secure contexts): crypto.randomUUID() — native, fully random.
65949
+ * Tier 2 (insecure contexts): crypto.getRandomValues() — available on all
65950
+ * modern browsers regardless of secure-context status.
65951
+ * Tier 3 (last resort, no crypto API): new Date().getTime() — lower entropy,
65952
+ * but sufficient for element IDs where collision risk is negligible.
65953
+ *
65954
+ * See: https://w3c.github.io/webcrypto/#dom-crypto-randomuuid (secure-context restriction)
65955
+ */
65956
+ function generateUUID$1() {
65957
+ let uuid;
65958
+
65959
+ if (
65960
+ typeof crypto !== "undefined" &&
65961
+ typeof crypto.randomUUID === "function"
65962
+ ) {
65963
+ uuid = crypto.randomUUID();
65964
+ } else if (
65965
+ typeof crypto !== "undefined" &&
65966
+ typeof crypto.getRandomValues === "function"
65967
+ ) {
65968
+ const bytes = new Uint8Array(16);
65969
+ crypto.getRandomValues(bytes);
65970
+ bytes[6] = (bytes[6] & 0x0f) | 0x40;
65971
+ bytes[8] = (bytes[8] & 0x3f) | 0x80;
65972
+ const hex = Array.from(bytes).map((b) => b.toString(16).padStart(2, "0"));
65973
+ 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("")}`;
65974
+ } else {
65975
+ let d = new Date().getTime();
65976
+ uuid = "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, (c) => {
65977
+ const r = (d % 16) | 0;
65978
+ d = (d - r) / 16 || new Date().getTime();
65979
+ return (c === "x" ? r : (r & 0x3) | 0x8).toString(16);
65980
+ });
65981
+ }
65982
+
65983
+ // CSS selectors require IDs starting with a letter; replace a leading digit with 'a'.
65984
+ return /^[0-9]/.test(uuid) ? `a${uuid.slice(1)}` : uuid;
65985
+ }
65986
+
65534
65987
  /* eslint-disable line-comment-position, no-inline-comments */
65535
65988
 
65536
65989
 
@@ -66549,7 +67002,7 @@ let AuroFloatingUI$1 = class AuroFloatingUI {
66549
67002
 
66550
67003
  this.id = element.getAttribute("id");
66551
67004
  if (!this.id) {
66552
- this.id = window.crypto.randomUUID();
67005
+ this.id = generateUUID$1();
66553
67006
  element.setAttribute("id", this.id);
66554
67007
  }
66555
67008
 
@@ -67594,7 +68047,7 @@ let AuroHelpText$2 = class AuroHelpText extends i$2 {
67594
68047
  }
67595
68048
  };
67596
68049
 
67597
- var formkitVersion$2 = '202609021913';
68050
+ var formkitVersion$2 = '202609030018';
67598
68051
 
67599
68052
  /**
67600
68053
  * AuroElement is the shared base class for layout-aware Auro form components.
@@ -81456,7 +81909,7 @@ let AuroHelpText$1$1 = class AuroHelpText extends i$2 {
81456
81909
  }
81457
81910
  };
81458
81911
 
81459
- var formkitVersion$1$1 = '202609021913';
81912
+ var formkitVersion$1$1 = '202609030018';
81460
81913
 
81461
81914
  // Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
81462
81915
  // See LICENSE in the project root for license information.
@@ -82648,7 +83101,7 @@ let AuroBibtemplate$1 = class AuroBibtemplate extends i$2 {
82648
83101
  }
82649
83102
  };
82650
83103
 
82651
- var formkitVersion$3 = '202609021913';
83104
+ var formkitVersion$3 = '202609030018';
82652
83105
 
82653
83106
  var styleCss$1$3 = i$4`.util_displayInline{display:inline}.util_displayInlineBlock{display:inline-block}.util_displayBlock{display:block}.util_displayFlex{display:flex}.util_displayHidden{display:none}.util_displayHiddenVisually{position:absolute;overflow:hidden;clip:rect(1px, 1px, 1px, 1px);width:1px;height:1px;padding:0;border:0}:host{display:block;text-align:left}:host [auro-dropdown]{--ds-auro-dropdown-trigger-background-color: transparent}:host #inputInBib::part(wrapper){box-shadow:none}:host #inputInBib::part(accent-left){display:none}:host([layout*=classic]) [auro-input]{width:100%}:host([layout*=classic]) [auro-input]::part(helpText){display:none}:host([layout*=classic]) #slotHolder{display:none}`;
82654
83107
 
@@ -90122,6 +90575,48 @@ const computePosition = (reference, floating, options) => {
90122
90575
  });
90123
90576
  };
90124
90577
 
90578
+ /**
90579
+ * Generates a v4 UUID with a three-tier fallback for insecure contexts.
90580
+ *
90581
+ * Tier 1 (secure contexts): crypto.randomUUID() — native, fully random.
90582
+ * Tier 2 (insecure contexts): crypto.getRandomValues() — available on all
90583
+ * modern browsers regardless of secure-context status.
90584
+ * Tier 3 (last resort, no crypto API): new Date().getTime() — lower entropy,
90585
+ * but sufficient for element IDs where collision risk is negligible.
90586
+ *
90587
+ * See: https://w3c.github.io/webcrypto/#dom-crypto-randomuuid (secure-context restriction)
90588
+ */
90589
+ function generateUUID() {
90590
+ let uuid;
90591
+
90592
+ if (
90593
+ typeof crypto !== "undefined" &&
90594
+ typeof crypto.randomUUID === "function"
90595
+ ) {
90596
+ uuid = crypto.randomUUID();
90597
+ } else if (
90598
+ typeof crypto !== "undefined" &&
90599
+ typeof crypto.getRandomValues === "function"
90600
+ ) {
90601
+ const bytes = new Uint8Array(16);
90602
+ crypto.getRandomValues(bytes);
90603
+ bytes[6] = (bytes[6] & 0x0f) | 0x40;
90604
+ bytes[8] = (bytes[8] & 0x3f) | 0x80;
90605
+ const hex = Array.from(bytes).map((b) => b.toString(16).padStart(2, "0"));
90606
+ 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("")}`;
90607
+ } else {
90608
+ let d = new Date().getTime();
90609
+ uuid = "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, (c) => {
90610
+ const r = (d % 16) | 0;
90611
+ d = (d - r) / 16 || new Date().getTime();
90612
+ return (c === "x" ? r : (r & 0x3) | 0x8).toString(16);
90613
+ });
90614
+ }
90615
+
90616
+ // CSS selectors require IDs starting with a letter; replace a leading digit with 'a'.
90617
+ return /^[0-9]/.test(uuid) ? `a${uuid.slice(1)}` : uuid;
90618
+ }
90619
+
90125
90620
  /* eslint-disable line-comment-position, no-inline-comments */
90126
90621
 
90127
90622
 
@@ -91140,7 +91635,7 @@ class AuroFloatingUI {
91140
91635
 
91141
91636
  this.id = element.getAttribute("id");
91142
91637
  if (!this.id) {
91143
- this.id = window.crypto.randomUUID();
91638
+ this.id = generateUUID();
91144
91639
  element.setAttribute("id", this.id);
91145
91640
  }
91146
91641
 
@@ -92185,7 +92680,7 @@ let AuroHelpText$1 = class AuroHelpText extends i$2 {
92185
92680
  }
92186
92681
  };
92187
92682
 
92188
- var formkitVersion$1 = '202609021913';
92683
+ var formkitVersion$1 = '202609030018';
92189
92684
 
92190
92685
  /**
92191
92686
  * AuroElement is the shared base class for layout-aware Auro form components.
@@ -94358,7 +94853,7 @@ class AuroHelpText extends i$2 {
94358
94853
  }
94359
94854
  }
94360
94855
 
94361
- var formkitVersion = '202609021913';
94856
+ var formkitVersion = '202609030018';
94362
94857
 
94363
94858
  var styleCss = i$4`.util_displayInline{display:inline}.util_displayInlineBlock{display:inline-block}.util_displayBlock{display:block}.util_displayFlex{display:flex}.util_displayHidden{display:none}.util_displayHiddenVisually{position:absolute;overflow:hidden;clip:rect(1px, 1px, 1px, 1px);width:1px;height:1px;padding:0;border:0}.body-default{font-size:var(--wcss-body-default-font-size, 1rem);font-weight:var(--wcss-body-default-weight, );line-height:var(--wcss-body-default-line-height, 1.5rem)}.body-default,.body-default-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-default-emphasized{font-size:var(--wcss-body-default-emphasized-font-size, 1rem);font-weight:var(--wcss-body-default-emphasized-weight, );line-height:var(--wcss-body-default-emphasized-line-height, 1.5rem)}.body-lg{font-size:var(--wcss-body-lg-font-size, 1.125rem);font-weight:var(--wcss-body-lg-weight, );line-height:var(--wcss-body-lg-line-height, 1.625rem)}.body-lg,.body-lg-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-lg-emphasized{font-size:var(--wcss-body-lg-emphasized-font-size, 1.125rem);font-weight:var(--wcss-body-lg-emphasized-weight, );line-height:var(--wcss-body-lg-emphasized-line-height, 1.625rem)}.body-sm{font-size:var(--wcss-body-sm-font-size, 0.875rem);font-weight:var(--wcss-body-sm-weight, );line-height:var(--wcss-body-sm-line-height, 1.25rem)}.body-sm,.body-sm-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-sm-emphasized{font-size:var(--wcss-body-sm-emphasized-font-size, 0.875rem);font-weight:var(--wcss-body-sm-emphasized-weight, );line-height:var(--wcss-body-sm-emphasized-line-height, 1.25rem)}.body-xs{font-size:var(--wcss-body-xs-font-size, 0.75rem);font-weight:var(--wcss-body-xs-weight, );line-height:var(--wcss-body-xs-line-height, 1rem)}.body-xs,.body-xs-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-xs-emphasized{font-size:var(--wcss-body-xs-emphasized-font-size, 0.75rem);font-weight:var(--wcss-body-xs-emphasized-weight, );line-height:var(--wcss-body-xs-emphasized-line-height, 1rem)}.body-2xs{font-size:var(--wcss-body-2xs-font-size, 0.625rem);font-weight:var(--wcss-body-2xs-weight, );line-height:var(--wcss-body-2xs-line-height, 0.875rem)}.body-2xs,.body-2xs-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-2xs-emphasized{font-size:var(--wcss-body-2xs-emphasized-font-size, 0.625rem);font-weight:var(--wcss-body-2xs-emphasized-weight, );line-height:var(--wcss-body-2xs-emphasized-line-height, 0.875rem)}.display-2xl{font-family:var(--wcss-display-2xl-family, "AS Circular"),var(--wcss-display-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-2xl-font-size, clamp(3.5rem, 6vw, 5.375rem));font-weight:var(--wcss-display-2xl-weight, 300);letter-spacing:var(--wcss-display-2xl-letter-spacing, 0);line-height:var(--wcss-display-2xl-line-height, 1.3)}.display-xl{font-family:var(--wcss-display-xl-family, "AS Circular"),var(--wcss-display-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-xl-font-size, clamp(3rem, 5.3333333333vw, 4.5rem));font-weight:var(--wcss-display-xl-weight, 300);letter-spacing:var(--wcss-display-xl-letter-spacing, 0);line-height:var(--wcss-display-xl-line-height, 1.3)}.display-lg{font-family:var(--wcss-display-lg-family, "AS Circular"),var(--wcss-display-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-lg-font-size, clamp(2.75rem, 4.6666666667vw, 4rem));font-weight:var(--wcss-display-lg-weight, 300);letter-spacing:var(--wcss-display-lg-letter-spacing, 0);line-height:var(--wcss-display-lg-line-height, 1.3)}.display-md{font-family:var(--wcss-display-md-family, "AS Circular"),var(--wcss-display-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-md-font-size, clamp(2.5rem, 4vw, 3.5rem));font-weight:var(--wcss-display-md-weight, 300);letter-spacing:var(--wcss-display-md-letter-spacing, 0);line-height:var(--wcss-display-md-line-height, 1.3)}.display-sm{font-family:var(--wcss-display-sm-family, "AS Circular"),var(--wcss-display-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-sm-font-size, clamp(2rem, 3.6666666667vw, 3rem));font-weight:var(--wcss-display-sm-weight, 300);letter-spacing:var(--wcss-display-sm-letter-spacing, 0);line-height:var(--wcss-display-sm-line-height, 1.3)}.display-xs{font-family:var(--wcss-display-xs-family, "AS Circular"),var(--wcss-display-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-xs-font-size, clamp(1.75rem, 3vw, 2.375rem));font-weight:var(--wcss-display-xs-weight, 300);letter-spacing:var(--wcss-display-xs-letter-spacing, 0);line-height:var(--wcss-display-xs-line-height, 1.3)}.heading-xl{font-family:var(--wcss-heading-xl-family, "AS Circular"),var(--wcss-heading-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-xl-font-size, clamp(2rem, 3vw, 2.5rem));font-weight:var(--wcss-heading-xl-weight, 300);letter-spacing:var(--wcss-heading-xl-letter-spacing, 0);line-height:var(--wcss-heading-xl-line-height, 1.3)}.heading-lg{font-family:var(--wcss-heading-lg-family, "AS Circular"),var(--wcss-heading-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-lg-font-size, clamp(1.75rem, 2.6666666667vw, 2.25rem));font-weight:var(--wcss-heading-lg-weight, 300);letter-spacing:var(--wcss-heading-lg-letter-spacing, 0);line-height:var(--wcss-heading-lg-line-height, 1.3)}.heading-md{font-family:var(--wcss-heading-md-family, "AS Circular"),var(--wcss-heading-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-md-font-size, clamp(1.625rem, 2.3333333333vw, 1.75rem));font-weight:var(--wcss-heading-md-weight, 300);letter-spacing:var(--wcss-heading-md-letter-spacing, 0);line-height:var(--wcss-heading-md-line-height, 1.3)}.heading-sm{font-family:var(--wcss-heading-sm-family, "AS Circular"),var(--wcss-heading-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-sm-font-size, clamp(1.375rem, 2vw, 1.5rem));font-weight:var(--wcss-heading-sm-weight, 300);letter-spacing:var(--wcss-heading-sm-letter-spacing, 0);line-height:var(--wcss-heading-sm-line-height, 1.3)}.heading-xs{font-family:var(--wcss-heading-xs-family, "AS Circular"),var(--wcss-heading-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-xs-font-size, clamp(1.25rem, 1.6666666667vw, 1.25rem));font-weight:var(--wcss-heading-xs-weight, 300);letter-spacing:var(--wcss-heading-xs-letter-spacing, 0);line-height:var(--wcss-heading-xs-line-height, 1.3)}.heading-2xs{font-family:var(--wcss-heading-2xs-family, "AS Circular"),var(--wcss-heading-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-2xs-font-size, clamp(1.125rem, 1.5vw, 1.125rem));font-weight:var(--wcss-heading-2xs-weight, 300);letter-spacing:var(--wcss-heading-2xs-letter-spacing, 0);line-height:var(--wcss-heading-2xs-line-height, 1.3)}.accent-2xl{font-family:var(--wcss-accent-2xl-family, "Good OT"),var(--wcss-accent-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-2xl-font-size, clamp(2rem, 3.1666666667vw, 2.375rem));font-weight:var(--wcss-accent-2xl-weight, 450);letter-spacing:var(--wcss-accent-2xl-letter-spacing, 0.05em);line-height:var(--wcss-accent-2xl-line-height, 1)}.accent-2xl,.accent-xl{text-transform:uppercase}.accent-xl{font-family:var(--wcss-accent-xl-family, "Good OT"),var(--wcss-accent-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-xl-font-size, clamp(1.625rem, 2.3333333333vw, 2rem));font-weight:var(--wcss-accent-xl-weight, 450);letter-spacing:var(--wcss-accent-xl-letter-spacing, 0.05em);line-height:var(--wcss-accent-xl-line-height, 1.3)}.accent-lg{font-family:var(--wcss-accent-lg-family, "Good OT"),var(--wcss-accent-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-lg-font-size, clamp(1.5rem, 2.1666666667vw, 1.75rem));font-weight:var(--wcss-accent-lg-weight, 450);letter-spacing:var(--wcss-accent-lg-letter-spacing, 0.05em);line-height:var(--wcss-accent-lg-line-height, 1.3)}.accent-lg,.accent-md{text-transform:uppercase}.accent-md{font-family:var(--wcss-accent-md-family, "Good OT"),var(--wcss-accent-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-md-font-size, clamp(1.375rem, 1.8333333333vw, 1.5rem));font-weight:var(--wcss-accent-md-weight, 500);letter-spacing:var(--wcss-accent-md-letter-spacing, 0.05em);line-height:var(--wcss-accent-md-line-height, 1.3)}.accent-sm{font-family:var(--wcss-accent-sm-family, "Good OT"),var(--wcss-accent-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-sm-font-size, clamp(1.125rem, 1.5vw, 1.25rem));font-weight:var(--wcss-accent-sm-weight, 500);letter-spacing:var(--wcss-accent-sm-letter-spacing, 0.05em);line-height:var(--wcss-accent-sm-line-height, 1.3)}.accent-sm,.accent-xs{text-transform:uppercase}.accent-xs{font-family:var(--wcss-accent-xs-family, "Good OT"),var(--wcss-accent-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-xs-font-size, clamp(1rem, 1.3333333333vw, 1rem));font-weight:var(--wcss-accent-xs-weight, 500);letter-spacing:var(--wcss-accent-xs-letter-spacing, 0.1em);line-height:var(--wcss-accent-xs-line-height, 1.3)}.accent-2xs{font-family:var(--wcss-accent-2xs-family, "Good OT"),var(--wcss-accent-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-2xs-font-size, clamp(0.875rem, 1.1666666667vw, 0.875rem));font-weight:var(--wcss-accent-2xs-weight, 450);letter-spacing:var(--wcss-accent-2xs-letter-spacing, 0.1em);line-height:var(--wcss-accent-2xs-line-height, 1.3);text-transform:uppercase}[auro-dropdown]{--ds-auro-dropdown-trigger-border-color: var(--ds-auro-select-border-color);--ds-auro-dropdown-trigger-background-color: var(--ds-auro-select-background-color);--ds-auro-dropdown-trigger-container-color: var(--ds-auro-select-background-color);--ds-auro-dropdown-trigger-outline-color: var(--ds-auro-select-outline-color)}:host{display:inline-block;text-align:left;vertical-align:top}:host([layout*=emphasized]) [auro-dropdown],:host([layout*=snowflake]) [auro-dropdown]{--ds-auro-select-border-color: transparent}:host([layout*=emphasized]) .mainContent,:host([layout*=snowflake]) .mainContent{text-align:center}.mainContent{position:relative;display:flex;overflow:hidden;flex:1;flex-direction:column;align-items:center;justify-content:center}.valueContainer{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}`;
94364
94859