@aurodesignsystem-dev/auro-formkit 0.0.0-pr1604.1 → 0.0.0-pr1605.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (52) hide show
  1. package/components/checkbox/demo/customize.min.js +1 -1
  2. package/components/checkbox/demo/getting-started.min.js +1 -1
  3. package/components/checkbox/demo/index.min.js +1 -1
  4. package/components/checkbox/dist/index.js +1 -1
  5. package/components/checkbox/dist/registered.js +1 -1
  6. package/components/combobox/demo/customize.min.js +153 -5
  7. package/components/combobox/demo/getting-started.min.js +153 -5
  8. package/components/combobox/demo/index.min.js +153 -5
  9. package/components/combobox/dist/auro-combobox.d.ts +22 -0
  10. package/components/combobox/dist/index.js +137 -5
  11. package/components/combobox/dist/registered.js +137 -5
  12. package/components/counter/demo/customize.min.js +339 -23
  13. package/components/counter/demo/getting-started.min.js +339 -23
  14. package/components/counter/demo/index.min.js +339 -23
  15. package/components/counter/dist/counterGroupKeyboardStrategy.d.ts +1 -0
  16. package/components/counter/dist/index.js +339 -23
  17. package/components/counter/dist/registered.js +339 -23
  18. package/components/datepicker/demo/customize.min.js +94 -5
  19. package/components/datepicker/demo/getting-started.min.js +94 -5
  20. package/components/datepicker/demo/index.min.js +94 -5
  21. package/components/datepicker/dist/auro-datepicker.d.ts +7 -0
  22. package/components/datepicker/dist/index.js +94 -5
  23. package/components/datepicker/dist/registered.js +94 -5
  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 +634 -39
  30. package/components/form/demo/getting-started.min.js +634 -39
  31. package/components/form/demo/index.min.js +634 -39
  32. package/components/form/demo/registerDemoDeps.min.js +634 -39
  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/menu/demo/index.min.js +16 -0
  39. package/components/menu/dist/index.js +16 -0
  40. package/components/menu/dist/registered.js +16 -0
  41. package/components/radio/demo/customize.min.js +1 -1
  42. package/components/radio/demo/getting-started.min.js +1 -1
  43. package/components/radio/demo/index.min.js +1 -1
  44. package/components/radio/dist/index.js +1 -1
  45. package/components/radio/dist/registered.js +1 -1
  46. package/components/select/demo/customize.min.js +61 -3
  47. package/components/select/demo/getting-started.min.js +61 -3
  48. package/components/select/demo/index.min.js +61 -3
  49. package/components/select/dist/index.js +45 -3
  50. package/components/select/dist/registered.js +45 -3
  51. package/custom-elements.json +1521 -1491
  52. package/package.json +3 -3
@@ -13777,7 +13777,7 @@ class AuroBibtemplate extends LitElement {
13777
13777
  }
13778
13778
  }
13779
13779
 
13780
- var formkitVersion$2 = '202609012101';
13780
+ var formkitVersion$2 = '202609022200';
13781
13781
 
13782
13782
  let l$1 = class l{generateElementName(t,e){let o=t;return o+="-",o+=e.replace(/[.]/g,"_"),o}generateTag(o,s,a){const r=this.generateElementName(o,s),i=literal`${unsafeStatic(r)}`;return customElements.get(r)||customElements.define(r,class extends a{}),i}};let d$1 = class d{registerComponent(t,e){customElements.get(t)||customElements.define(t,class extends e{});}closestElement(t,e=this,o=(e,s=e&&e.closest(t))=>e&&e!==document&&e!==window?s||o(e.getRootNode().host):null){return o(e)}handleComponentTagRename(t,e){const o=e.toLowerCase();t.tagName.toLowerCase()!==o&&t.setAttribute(o,true);}elementMatch(t,e){const o=e.toLowerCase();return t.tagName.toLowerCase()===o||t.hasAttribute(o)}getSlotText(t,e){const o=t.shadowRoot?.querySelector(`slot[name="${e}"]`),s=(o?.assignedNodes({flatten:true})||[]).map(t=>t.textContent?.trim()).join(" ").trim();return s||null}};let h$1 = class h{registerComponent(t,e){customElements.get(t)||customElements.define(t,class extends e{});}closestElement(t,e=this,o=(e,s=e&&e.closest(t))=>e&&e!==document&&e!==window?s||o(e.getRootNode().host):null){return o(e)}handleComponentTagRename(t,e){const o=e.toLowerCase();t.tagName.toLowerCase()!==o&&t.setAttribute(o,true);}elementMatch(t,e){const o=e.toLowerCase();return t.tagName.toLowerCase()===o||t.hasAttribute(o)}};var c$1=css`:host{color:var(--ds-auro-loader-color)}:host>span{background-color:var(--ds-auro-loader-background-color);border-color:var(--ds-auro-loader-border-color)}:host([onlight]),: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}
13783
13783
  `,u$4=css`.body-default{font-size:var(--wcss-body-default-font-size, 1rem);line-height:var(--wcss-body-default-line-height, 1.5rem)}.body-default,.body-lg{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-weight, 450);letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-lg{font-size:var(--wcss-body-lg-font-size, 1.125rem);line-height:var(--wcss-body-lg-line-height, 1.625rem)}.body-sm{font-size:var(--wcss-body-sm-font-size, .875rem);line-height:var(--wcss-body-sm-line-height, 1.25rem)}.body-sm,.body-xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-weight, 450);letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-xs{font-size:var(--wcss-body-xs-font-size, .75rem);line-height:var(--wcss-body-xs-line-height, 1rem)}.body-2xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-size:var(--wcss-body-2xs-font-size, .625rem);font-weight:var(--wcss-body-weight, 450);letter-spacing:var(--wcss-body-letter-spacing, 0);line-height:var(--wcss-body-2xs-line-height, .875rem)}.display-2xl{font-family:var(--wcss-display-2xl-family, "AS Circular"),var(--wcss-display-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-2xl-font-size, clamp(3.5rem, 6vw, 5.375rem));font-weight:var(--wcss-display-2xl-weight, 300);letter-spacing:var(--wcss-display-2xl-letter-spacing, 0);line-height:var(--wcss-display-2xl-line-height, 1.3)}.display-xl{font-family:var(--wcss-display-xl-family, "AS Circular"),var(--wcss-display-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-xl-font-size, clamp(3rem, 5.3333333333vw, 4.5rem));font-weight:var(--wcss-display-xl-weight, 300);letter-spacing:var(--wcss-display-xl-letter-spacing, 0);line-height:var(--wcss-display-xl-line-height, 1.3)}.display-lg{font-family:var(--wcss-display-lg-family, "AS Circular"),var(--wcss-display-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-lg-font-size, clamp(2.75rem, 4.6666666667vw, 4rem));font-weight:var(--wcss-display-lg-weight, 300);letter-spacing:var(--wcss-display-lg-letter-spacing, 0);line-height:var(--wcss-display-lg-line-height, 1.3)}.display-md{font-family:var(--wcss-display-md-family, "AS Circular"),var(--wcss-display-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-md-font-size, clamp(2.5rem, 4vw, 3.5rem));font-weight:var(--wcss-display-md-weight, 300);letter-spacing:var(--wcss-display-md-letter-spacing, 0);line-height:var(--wcss-display-md-line-height, 1.3)}.display-sm{font-family:var(--wcss-display-sm-family, "AS Circular"),var(--wcss-display-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-sm-font-size, clamp(2rem, 3.6666666667vw, 3rem));font-weight:var(--wcss-display-sm-weight, 300);letter-spacing:var(--wcss-display-sm-letter-spacing, 0);line-height:var(--wcss-display-sm-line-height, 1.3)}.display-xs{font-family:var(--wcss-display-xs-family, "AS Circular"),var(--wcss-display-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-xs-font-size, clamp(1.75rem, 3vw, 2.375rem));font-weight:var(--wcss-display-xs-weight, 300);letter-spacing:var(--wcss-display-xs-letter-spacing, 0);line-height:var(--wcss-display-xs-line-height, 1.3)}.heading-xl{font-family:var(--wcss-heading-xl-family, "AS Circular"),var(--wcss-heading-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-xl-font-size, clamp(2rem, 3vw, 2.5rem));font-weight:var(--wcss-heading-xl-weight, 300);letter-spacing:var(--wcss-heading-xl-letter-spacing, 0);line-height:var(--wcss-heading-xl-line-height, 1.3)}.heading-lg{font-family:var(--wcss-heading-lg-family, "AS Circular"),var(--wcss-heading-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-lg-font-size, clamp(1.75rem, 2.6666666667vw, 2.25rem));font-weight:var(--wcss-heading-lg-weight, 300);letter-spacing:var(--wcss-heading-lg-letter-spacing, 0);line-height:var(--wcss-heading-lg-line-height, 1.3)}.heading-md{font-family:var(--wcss-heading-md-family, "AS Circular"),var(--wcss-heading-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-md-font-size, clamp(1.625rem, 2.3333333333vw, 1.75rem));font-weight:var(--wcss-heading-md-weight, 300);letter-spacing:var(--wcss-heading-md-letter-spacing, 0);line-height:var(--wcss-heading-md-line-height, 1.3)}.heading-sm{font-family:var(--wcss-heading-sm-family, "AS Circular"),var(--wcss-heading-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-sm-font-size, clamp(1.375rem, 2vw, 1.5rem));font-weight:var(--wcss-heading-sm-weight, 300);letter-spacing:var(--wcss-heading-sm-letter-spacing, 0);line-height:var(--wcss-heading-sm-line-height, 1.3)}.heading-xs{font-family:var(--wcss-heading-xs-family, "AS Circular"),var(--wcss-heading-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-xs-font-size, clamp(1.25rem, 1.6666666667vw, 1.25rem));font-weight:var(--wcss-heading-xs-weight, 450);letter-spacing:var(--wcss-heading-xs-letter-spacing, 0);line-height:var(--wcss-heading-xs-line-height, 1.3)}.heading-2xs{font-family:var(--wcss-heading-2xs-family, "AS Circular"),var(--wcss-heading-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-2xs-font-size, clamp(1.125rem, 1.5vw, 1.125rem));font-weight:var(--wcss-heading-2xs-weight, 450);letter-spacing:var(--wcss-heading-2xs-letter-spacing, 0);line-height:var(--wcss-heading-2xs-line-height, 1.3)}.accent-2xl{font-family:var(--wcss-accent-2xl-family, "Good OT"),var(--wcss-accent-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-2xl-font-size, clamp(2rem, 3.1666666667vw, 2.375rem));font-weight:var(--wcss-accent-2xl-weight, 450);letter-spacing:var(--wcss-accent-2xl-letter-spacing, .05em);line-height:var(--wcss-accent-2xl-line-height, 1)}.accent-2xl,.accent-xl{text-transform:uppercase}.accent-xl{font-family:var(--wcss-accent-xl-family, "Good OT"),var(--wcss-accent-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-xl-font-size, clamp(1.625rem, 2.3333333333vw, 2rem));font-weight:var(--wcss-accent-xl-weight, 450);letter-spacing:var(--wcss-accent-xl-letter-spacing, .05em);line-height:var(--wcss-accent-xl-line-height, 1.3)}.accent-lg{font-family:var(--wcss-accent-lg-family, "Good OT"),var(--wcss-accent-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-lg-font-size, clamp(1.5rem, 2.1666666667vw, 1.75rem));font-weight:var(--wcss-accent-lg-weight, 450);letter-spacing:var(--wcss-accent-lg-letter-spacing, .05em);line-height:var(--wcss-accent-lg-line-height, 1.3)}.accent-lg,.accent-md{text-transform:uppercase}.accent-md{font-family:var(--wcss-accent-md-family, "Good OT"),var(--wcss-accent-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-md-font-size, clamp(1.375rem, 1.8333333333vw, 1.5rem));font-weight:var(--wcss-accent-md-weight, 500);letter-spacing:var(--wcss-accent-md-letter-spacing, .05em);line-height:var(--wcss-accent-md-line-height, 1.3)}.accent-sm{font-family:var(--wcss-accent-sm-family, "Good OT"),var(--wcss-accent-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-sm-font-size, clamp(1.125rem, 1.5vw, 1.25rem));font-weight:var(--wcss-accent-sm-weight, 500);letter-spacing:var(--wcss-accent-sm-letter-spacing, .05em);line-height:var(--wcss-accent-sm-line-height, 1.3)}.accent-sm,.accent-xs{text-transform:uppercase}.accent-xs{font-family:var(--wcss-accent-xs-family, "Good OT"),var(--wcss-accent-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-xs-font-size, clamp(1rem, 1.3333333333vw, 1rem));font-weight:var(--wcss-accent-xs-weight, 500);letter-spacing:var(--wcss-accent-xs-letter-spacing, .1em);line-height:var(--wcss-accent-xs-line-height, 1.3)}.accent-2xs{font-family:var(--wcss-accent-2xs-family, "Good OT"),var(--wcss-accent-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-2xs-font-size, clamp(.875rem, 1.1666666667vw, .875rem));font-weight:var(--wcss-accent-2xs-weight, 450);letter-spacing:var(--wcss-accent-2xs-letter-spacing, .1em);line-height:var(--wcss-accent-2xs-line-height, 1.3);text-transform:uppercase}:focus:not(:focus-visible){outline:3px solid transparent}:host,:host>span{position:relative}:host{width:2rem;height:2rem;display:inline-block;font-size:0}:host>span{position:absolute;display:inline-block;float:none;top:0;left:0;width:2rem;height:2rem;border-radius:100%;border-style:solid;border-width:0;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}}
@@ -17558,6 +17558,48 @@ const computePosition = (reference, floating, options) => {
17558
17558
  });
17559
17559
  };
17560
17560
 
17561
+ /**
17562
+ * Generates a v4 UUID with a three-tier fallback for insecure contexts.
17563
+ *
17564
+ * Tier 1 (secure contexts): crypto.randomUUID() — native, fully random.
17565
+ * Tier 2 (insecure contexts): crypto.getRandomValues() — available on all
17566
+ * modern browsers regardless of secure-context status.
17567
+ * Tier 3 (last resort, no crypto API): new Date().getTime() — lower entropy,
17568
+ * but sufficient for element IDs where collision risk is negligible.
17569
+ *
17570
+ * See: https://w3c.github.io/webcrypto/#dom-crypto-randomuuid (secure-context restriction)
17571
+ */
17572
+ function generateUUID() {
17573
+ let uuid;
17574
+
17575
+ if (
17576
+ typeof crypto !== "undefined" &&
17577
+ typeof crypto.randomUUID === "function"
17578
+ ) {
17579
+ uuid = crypto.randomUUID();
17580
+ } else if (
17581
+ typeof crypto !== "undefined" &&
17582
+ typeof crypto.getRandomValues === "function"
17583
+ ) {
17584
+ const bytes = new Uint8Array(16);
17585
+ crypto.getRandomValues(bytes);
17586
+ bytes[6] = (bytes[6] & 0x0f) | 0x40;
17587
+ bytes[8] = (bytes[8] & 0x3f) | 0x80;
17588
+ const hex = Array.from(bytes).map((b) => b.toString(16).padStart(2, "0"));
17589
+ 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("")}`;
17590
+ } else {
17591
+ let d = new Date().getTime();
17592
+ uuid = "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, (c) => {
17593
+ const r = (d % 16) | 0;
17594
+ d = (d - r) / 16 || new Date().getTime();
17595
+ return (c === "x" ? r : (r & 0x3) | 0x8).toString(16);
17596
+ });
17597
+ }
17598
+
17599
+ // CSS selectors require IDs starting with a letter; replace a leading digit with 'a'.
17600
+ return /^[0-9]/.test(uuid) ? `a${uuid.slice(1)}` : uuid;
17601
+ }
17602
+
17561
17603
  /* eslint-disable line-comment-position, no-inline-comments */
17562
17604
 
17563
17605
 
@@ -18576,7 +18618,7 @@ class AuroFloatingUI {
18576
18618
 
18577
18619
  this.id = element.getAttribute("id");
18578
18620
  if (!this.id) {
18579
- this.id = window.crypto.randomUUID();
18621
+ this.id = generateUUID();
18580
18622
  element.setAttribute("id", this.id);
18581
18623
  }
18582
18624
 
@@ -19621,7 +19663,7 @@ let AuroHelpText$2 = class AuroHelpText extends LitElement {
19621
19663
  }
19622
19664
  };
19623
19665
 
19624
- var formkitVersion$1 = '202609012101';
19666
+ var formkitVersion$1 = '202609022200';
19625
19667
 
19626
19668
  /**
19627
19669
  * AuroElement is the shared base class for layout-aware Auro form components.
@@ -33483,7 +33525,7 @@ let AuroHelpText$1 = class AuroHelpText extends LitElement {
33483
33525
  }
33484
33526
  };
33485
33527
 
33486
- var formkitVersion = '202609012101';
33528
+ var formkitVersion = '202609022200';
33487
33529
 
33488
33530
  // Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
33489
33531
  // See LICENSE in the project root for license information.
@@ -35100,6 +35142,14 @@ class AuroDatePicker extends AuroElement {
35100
35142
  */
35101
35143
  this.hasFocus = false;
35102
35144
 
35145
+ /**
35146
+ * Tracks whether the current open cycle promoted the fullscreen bib via
35147
+ * showModal(). Used by the close handler to decide whether native <dialog>
35148
+ * focus restoration will fire (see the auroDropdown-toggled handler).
35149
+ * @private
35150
+ */
35151
+ this._bibOpenedAsModal = false;
35152
+
35103
35153
  /**
35104
35154
  * @private
35105
35155
  */
@@ -36155,6 +36205,15 @@ class AuroDatePicker extends AuroElement {
36155
36205
  // a top-layer popover where :focus-within on the dropdown host returns false).
36156
36206
  this.dropdown.noHideOnThisFocusLoss = true;
36157
36207
 
36208
+ // Suppress the dropdown's generic focus restoration on close — the
36209
+ // datepicker manages its own focus in the auroDropdown-toggled handler
36210
+ // below (respecting hasFocus / _restoreFocusOnClose, and deferring to the
36211
+ // fullscreen dialog's native restoration on touch devices). Without this,
36212
+ // the dropdown's setTimeout(focusTrigger) fires a second, gesture-decoupled
36213
+ // programmatic focus on close, which on iOS Safari swallows the user's next
36214
+ // tap and forces a second tap to reopen the calendar (AB#1634252).
36215
+ this.dropdown.noFocusRestoreOnClose = true;
36216
+
36158
36217
  // Pass label text to the dropdown bib for accessible dialog naming.
36159
36218
  // Without this, the fullscreen <dialog> has no accessible name and
36160
36219
  // screen readers announce it as just "dialog" with no context.
@@ -36226,6 +36285,16 @@ class AuroDatePicker extends AuroElement {
36226
36285
  bibEl.close();
36227
36286
  bibEl.open(true);
36228
36287
 
36288
+ // Record that this open cycle actually promoted the dialog via
36289
+ // showModal(). The close handler relies on this — not the broader
36290
+ // isBibFullscreen flag — to decide whether native <dialog> focus
36291
+ // restoration will occur, because isBibFullscreen is set
36292
+ // synchronously in showBib() while this open(true) runs a
36293
+ // microtask later. If the bib is closed before this resolves,
36294
+ // showModal() never fires and there is no native restoration to
36295
+ // defer to.
36296
+ this._bibOpenedAsModal = true;
36297
+
36229
36298
  doubleRaf(() => {
36230
36299
  this.focusActiveCellWhenReady();
36231
36300
  });
@@ -36257,7 +36326,27 @@ class AuroDatePicker extends AuroElement {
36257
36326
  this.dropdown.trigger.inert = false;
36258
36327
  const shouldRestoreFocus = this.hasFocus || this._restoreFocusOnClose;
36259
36328
  this._restoreFocusOnClose = false;
36260
- if (shouldRestoreFocus) {
36329
+ // On coarse-pointer (touch) devices closing the fullscreen modal, rely
36330
+ // on the <dialog>'s native focus restoration instead of forcing focus
36331
+ // back onto the input. showModal() returns focus to the trigger anchor
36332
+ // as part of the closing gesture, so a11y focus is preserved. Re-running
36333
+ // .focus() here is a gesture-decoupled programmatic focus that iOS
36334
+ // Safari penalizes: it swallows the user's next tap, so reopening the
36335
+ // calendar takes two taps instead of one (AB#1634252). Fine-pointer
36336
+ // (desktop) layouts keep the explicit restore for keyboard/SR
36337
+ // correctness, and non-fullscreen bibs (no showModal, no native
36338
+ // restoration) always restore explicitly.
36339
+ //
36340
+ // Gate on `_bibOpenedAsModal` — set only after the actual showModal()
36341
+ // promotion (open(true)) — rather than `isBibFullscreen`, which is true
36342
+ // as soon as the fullscreen layout is chosen but before the modal is
36343
+ // promoted. If the bib is closed before that async promotion runs, no
36344
+ // native restoration will occur, so we must still restore explicitly.
36345
+ const bibWasModal = this._bibOpenedAsModal;
36346
+ this._bibOpenedAsModal = false;
36347
+ const useNativeFocusRestoration =
36348
+ bibWasModal && window.matchMedia('(pointer: coarse)').matches;
36349
+ if (shouldRestoreFocus && !useNativeFocusRestoration) {
36261
36350
  requestAnimationFrame(() => {
36262
36351
  if (!this.dropdown.isPopoverVisible) {
36263
36352
  this.inputList[0].focus();
@@ -13777,7 +13777,7 @@ class AuroBibtemplate extends LitElement {
13777
13777
  }
13778
13778
  }
13779
13779
 
13780
- var formkitVersion$2 = '202609012101';
13780
+ var formkitVersion$2 = '202609022200';
13781
13781
 
13782
13782
  let l$1 = class l{generateElementName(t,e){let o=t;return o+="-",o+=e.replace(/[.]/g,"_"),o}generateTag(o,s,a){const r=this.generateElementName(o,s),i=literal`${unsafeStatic(r)}`;return customElements.get(r)||customElements.define(r,class extends a{}),i}};let d$1 = class d{registerComponent(t,e){customElements.get(t)||customElements.define(t,class extends e{});}closestElement(t,e=this,o=(e,s=e&&e.closest(t))=>e&&e!==document&&e!==window?s||o(e.getRootNode().host):null){return o(e)}handleComponentTagRename(t,e){const o=e.toLowerCase();t.tagName.toLowerCase()!==o&&t.setAttribute(o,true);}elementMatch(t,e){const o=e.toLowerCase();return t.tagName.toLowerCase()===o||t.hasAttribute(o)}getSlotText(t,e){const o=t.shadowRoot?.querySelector(`slot[name="${e}"]`),s=(o?.assignedNodes({flatten:true})||[]).map(t=>t.textContent?.trim()).join(" ").trim();return s||null}};let h$1 = class h{registerComponent(t,e){customElements.get(t)||customElements.define(t,class extends e{});}closestElement(t,e=this,o=(e,s=e&&e.closest(t))=>e&&e!==document&&e!==window?s||o(e.getRootNode().host):null){return o(e)}handleComponentTagRename(t,e){const o=e.toLowerCase();t.tagName.toLowerCase()!==o&&t.setAttribute(o,true);}elementMatch(t,e){const o=e.toLowerCase();return t.tagName.toLowerCase()===o||t.hasAttribute(o)}};var c$1=css`:host{color:var(--ds-auro-loader-color)}:host>span{background-color:var(--ds-auro-loader-background-color);border-color:var(--ds-auro-loader-border-color)}:host([onlight]),: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}
13783
13783
  `,u$4=css`.body-default{font-size:var(--wcss-body-default-font-size, 1rem);line-height:var(--wcss-body-default-line-height, 1.5rem)}.body-default,.body-lg{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-weight, 450);letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-lg{font-size:var(--wcss-body-lg-font-size, 1.125rem);line-height:var(--wcss-body-lg-line-height, 1.625rem)}.body-sm{font-size:var(--wcss-body-sm-font-size, .875rem);line-height:var(--wcss-body-sm-line-height, 1.25rem)}.body-sm,.body-xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-weight, 450);letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-xs{font-size:var(--wcss-body-xs-font-size, .75rem);line-height:var(--wcss-body-xs-line-height, 1rem)}.body-2xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-size:var(--wcss-body-2xs-font-size, .625rem);font-weight:var(--wcss-body-weight, 450);letter-spacing:var(--wcss-body-letter-spacing, 0);line-height:var(--wcss-body-2xs-line-height, .875rem)}.display-2xl{font-family:var(--wcss-display-2xl-family, "AS Circular"),var(--wcss-display-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-2xl-font-size, clamp(3.5rem, 6vw, 5.375rem));font-weight:var(--wcss-display-2xl-weight, 300);letter-spacing:var(--wcss-display-2xl-letter-spacing, 0);line-height:var(--wcss-display-2xl-line-height, 1.3)}.display-xl{font-family:var(--wcss-display-xl-family, "AS Circular"),var(--wcss-display-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-xl-font-size, clamp(3rem, 5.3333333333vw, 4.5rem));font-weight:var(--wcss-display-xl-weight, 300);letter-spacing:var(--wcss-display-xl-letter-spacing, 0);line-height:var(--wcss-display-xl-line-height, 1.3)}.display-lg{font-family:var(--wcss-display-lg-family, "AS Circular"),var(--wcss-display-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-lg-font-size, clamp(2.75rem, 4.6666666667vw, 4rem));font-weight:var(--wcss-display-lg-weight, 300);letter-spacing:var(--wcss-display-lg-letter-spacing, 0);line-height:var(--wcss-display-lg-line-height, 1.3)}.display-md{font-family:var(--wcss-display-md-family, "AS Circular"),var(--wcss-display-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-md-font-size, clamp(2.5rem, 4vw, 3.5rem));font-weight:var(--wcss-display-md-weight, 300);letter-spacing:var(--wcss-display-md-letter-spacing, 0);line-height:var(--wcss-display-md-line-height, 1.3)}.display-sm{font-family:var(--wcss-display-sm-family, "AS Circular"),var(--wcss-display-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-sm-font-size, clamp(2rem, 3.6666666667vw, 3rem));font-weight:var(--wcss-display-sm-weight, 300);letter-spacing:var(--wcss-display-sm-letter-spacing, 0);line-height:var(--wcss-display-sm-line-height, 1.3)}.display-xs{font-family:var(--wcss-display-xs-family, "AS Circular"),var(--wcss-display-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-xs-font-size, clamp(1.75rem, 3vw, 2.375rem));font-weight:var(--wcss-display-xs-weight, 300);letter-spacing:var(--wcss-display-xs-letter-spacing, 0);line-height:var(--wcss-display-xs-line-height, 1.3)}.heading-xl{font-family:var(--wcss-heading-xl-family, "AS Circular"),var(--wcss-heading-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-xl-font-size, clamp(2rem, 3vw, 2.5rem));font-weight:var(--wcss-heading-xl-weight, 300);letter-spacing:var(--wcss-heading-xl-letter-spacing, 0);line-height:var(--wcss-heading-xl-line-height, 1.3)}.heading-lg{font-family:var(--wcss-heading-lg-family, "AS Circular"),var(--wcss-heading-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-lg-font-size, clamp(1.75rem, 2.6666666667vw, 2.25rem));font-weight:var(--wcss-heading-lg-weight, 300);letter-spacing:var(--wcss-heading-lg-letter-spacing, 0);line-height:var(--wcss-heading-lg-line-height, 1.3)}.heading-md{font-family:var(--wcss-heading-md-family, "AS Circular"),var(--wcss-heading-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-md-font-size, clamp(1.625rem, 2.3333333333vw, 1.75rem));font-weight:var(--wcss-heading-md-weight, 300);letter-spacing:var(--wcss-heading-md-letter-spacing, 0);line-height:var(--wcss-heading-md-line-height, 1.3)}.heading-sm{font-family:var(--wcss-heading-sm-family, "AS Circular"),var(--wcss-heading-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-sm-font-size, clamp(1.375rem, 2vw, 1.5rem));font-weight:var(--wcss-heading-sm-weight, 300);letter-spacing:var(--wcss-heading-sm-letter-spacing, 0);line-height:var(--wcss-heading-sm-line-height, 1.3)}.heading-xs{font-family:var(--wcss-heading-xs-family, "AS Circular"),var(--wcss-heading-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-xs-font-size, clamp(1.25rem, 1.6666666667vw, 1.25rem));font-weight:var(--wcss-heading-xs-weight, 450);letter-spacing:var(--wcss-heading-xs-letter-spacing, 0);line-height:var(--wcss-heading-xs-line-height, 1.3)}.heading-2xs{font-family:var(--wcss-heading-2xs-family, "AS Circular"),var(--wcss-heading-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-2xs-font-size, clamp(1.125rem, 1.5vw, 1.125rem));font-weight:var(--wcss-heading-2xs-weight, 450);letter-spacing:var(--wcss-heading-2xs-letter-spacing, 0);line-height:var(--wcss-heading-2xs-line-height, 1.3)}.accent-2xl{font-family:var(--wcss-accent-2xl-family, "Good OT"),var(--wcss-accent-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-2xl-font-size, clamp(2rem, 3.1666666667vw, 2.375rem));font-weight:var(--wcss-accent-2xl-weight, 450);letter-spacing:var(--wcss-accent-2xl-letter-spacing, .05em);line-height:var(--wcss-accent-2xl-line-height, 1)}.accent-2xl,.accent-xl{text-transform:uppercase}.accent-xl{font-family:var(--wcss-accent-xl-family, "Good OT"),var(--wcss-accent-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-xl-font-size, clamp(1.625rem, 2.3333333333vw, 2rem));font-weight:var(--wcss-accent-xl-weight, 450);letter-spacing:var(--wcss-accent-xl-letter-spacing, .05em);line-height:var(--wcss-accent-xl-line-height, 1.3)}.accent-lg{font-family:var(--wcss-accent-lg-family, "Good OT"),var(--wcss-accent-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-lg-font-size, clamp(1.5rem, 2.1666666667vw, 1.75rem));font-weight:var(--wcss-accent-lg-weight, 450);letter-spacing:var(--wcss-accent-lg-letter-spacing, .05em);line-height:var(--wcss-accent-lg-line-height, 1.3)}.accent-lg,.accent-md{text-transform:uppercase}.accent-md{font-family:var(--wcss-accent-md-family, "Good OT"),var(--wcss-accent-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-md-font-size, clamp(1.375rem, 1.8333333333vw, 1.5rem));font-weight:var(--wcss-accent-md-weight, 500);letter-spacing:var(--wcss-accent-md-letter-spacing, .05em);line-height:var(--wcss-accent-md-line-height, 1.3)}.accent-sm{font-family:var(--wcss-accent-sm-family, "Good OT"),var(--wcss-accent-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-sm-font-size, clamp(1.125rem, 1.5vw, 1.25rem));font-weight:var(--wcss-accent-sm-weight, 500);letter-spacing:var(--wcss-accent-sm-letter-spacing, .05em);line-height:var(--wcss-accent-sm-line-height, 1.3)}.accent-sm,.accent-xs{text-transform:uppercase}.accent-xs{font-family:var(--wcss-accent-xs-family, "Good OT"),var(--wcss-accent-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-xs-font-size, clamp(1rem, 1.3333333333vw, 1rem));font-weight:var(--wcss-accent-xs-weight, 500);letter-spacing:var(--wcss-accent-xs-letter-spacing, .1em);line-height:var(--wcss-accent-xs-line-height, 1.3)}.accent-2xs{font-family:var(--wcss-accent-2xs-family, "Good OT"),var(--wcss-accent-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-2xs-font-size, clamp(.875rem, 1.1666666667vw, .875rem));font-weight:var(--wcss-accent-2xs-weight, 450);letter-spacing:var(--wcss-accent-2xs-letter-spacing, .1em);line-height:var(--wcss-accent-2xs-line-height, 1.3);text-transform:uppercase}:focus:not(:focus-visible){outline:3px solid transparent}:host,:host>span{position:relative}:host{width:2rem;height:2rem;display:inline-block;font-size:0}:host>span{position:absolute;display:inline-block;float:none;top:0;left:0;width:2rem;height:2rem;border-radius:100%;border-style:solid;border-width:0;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}}
@@ -17558,6 +17558,48 @@ const computePosition = (reference, floating, options) => {
17558
17558
  });
17559
17559
  };
17560
17560
 
17561
+ /**
17562
+ * Generates a v4 UUID with a three-tier fallback for insecure contexts.
17563
+ *
17564
+ * Tier 1 (secure contexts): crypto.randomUUID() — native, fully random.
17565
+ * Tier 2 (insecure contexts): crypto.getRandomValues() — available on all
17566
+ * modern browsers regardless of secure-context status.
17567
+ * Tier 3 (last resort, no crypto API): new Date().getTime() — lower entropy,
17568
+ * but sufficient for element IDs where collision risk is negligible.
17569
+ *
17570
+ * See: https://w3c.github.io/webcrypto/#dom-crypto-randomuuid (secure-context restriction)
17571
+ */
17572
+ function generateUUID() {
17573
+ let uuid;
17574
+
17575
+ if (
17576
+ typeof crypto !== "undefined" &&
17577
+ typeof crypto.randomUUID === "function"
17578
+ ) {
17579
+ uuid = crypto.randomUUID();
17580
+ } else if (
17581
+ typeof crypto !== "undefined" &&
17582
+ typeof crypto.getRandomValues === "function"
17583
+ ) {
17584
+ const bytes = new Uint8Array(16);
17585
+ crypto.getRandomValues(bytes);
17586
+ bytes[6] = (bytes[6] & 0x0f) | 0x40;
17587
+ bytes[8] = (bytes[8] & 0x3f) | 0x80;
17588
+ const hex = Array.from(bytes).map((b) => b.toString(16).padStart(2, "0"));
17589
+ 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("")}`;
17590
+ } else {
17591
+ let d = new Date().getTime();
17592
+ uuid = "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, (c) => {
17593
+ const r = (d % 16) | 0;
17594
+ d = (d - r) / 16 || new Date().getTime();
17595
+ return (c === "x" ? r : (r & 0x3) | 0x8).toString(16);
17596
+ });
17597
+ }
17598
+
17599
+ // CSS selectors require IDs starting with a letter; replace a leading digit with 'a'.
17600
+ return /^[0-9]/.test(uuid) ? `a${uuid.slice(1)}` : uuid;
17601
+ }
17602
+
17561
17603
  /* eslint-disable line-comment-position, no-inline-comments */
17562
17604
 
17563
17605
 
@@ -18576,7 +18618,7 @@ class AuroFloatingUI {
18576
18618
 
18577
18619
  this.id = element.getAttribute("id");
18578
18620
  if (!this.id) {
18579
- this.id = window.crypto.randomUUID();
18621
+ this.id = generateUUID();
18580
18622
  element.setAttribute("id", this.id);
18581
18623
  }
18582
18624
 
@@ -19621,7 +19663,7 @@ let AuroHelpText$2 = class AuroHelpText extends LitElement {
19621
19663
  }
19622
19664
  };
19623
19665
 
19624
- var formkitVersion$1 = '202609012101';
19666
+ var formkitVersion$1 = '202609022200';
19625
19667
 
19626
19668
  /**
19627
19669
  * AuroElement is the shared base class for layout-aware Auro form components.
@@ -33483,7 +33525,7 @@ let AuroHelpText$1 = class AuroHelpText extends LitElement {
33483
33525
  }
33484
33526
  };
33485
33527
 
33486
- var formkitVersion = '202609012101';
33528
+ var formkitVersion = '202609022200';
33487
33529
 
33488
33530
  // Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
33489
33531
  // See LICENSE in the project root for license information.
@@ -35100,6 +35142,14 @@ class AuroDatePicker extends AuroElement {
35100
35142
  */
35101
35143
  this.hasFocus = false;
35102
35144
 
35145
+ /**
35146
+ * Tracks whether the current open cycle promoted the fullscreen bib via
35147
+ * showModal(). Used by the close handler to decide whether native <dialog>
35148
+ * focus restoration will fire (see the auroDropdown-toggled handler).
35149
+ * @private
35150
+ */
35151
+ this._bibOpenedAsModal = false;
35152
+
35103
35153
  /**
35104
35154
  * @private
35105
35155
  */
@@ -36155,6 +36205,15 @@ class AuroDatePicker extends AuroElement {
36155
36205
  // a top-layer popover where :focus-within on the dropdown host returns false).
36156
36206
  this.dropdown.noHideOnThisFocusLoss = true;
36157
36207
 
36208
+ // Suppress the dropdown's generic focus restoration on close — the
36209
+ // datepicker manages its own focus in the auroDropdown-toggled handler
36210
+ // below (respecting hasFocus / _restoreFocusOnClose, and deferring to the
36211
+ // fullscreen dialog's native restoration on touch devices). Without this,
36212
+ // the dropdown's setTimeout(focusTrigger) fires a second, gesture-decoupled
36213
+ // programmatic focus on close, which on iOS Safari swallows the user's next
36214
+ // tap and forces a second tap to reopen the calendar (AB#1634252).
36215
+ this.dropdown.noFocusRestoreOnClose = true;
36216
+
36158
36217
  // Pass label text to the dropdown bib for accessible dialog naming.
36159
36218
  // Without this, the fullscreen <dialog> has no accessible name and
36160
36219
  // screen readers announce it as just "dialog" with no context.
@@ -36226,6 +36285,16 @@ class AuroDatePicker extends AuroElement {
36226
36285
  bibEl.close();
36227
36286
  bibEl.open(true);
36228
36287
 
36288
+ // Record that this open cycle actually promoted the dialog via
36289
+ // showModal(). The close handler relies on this — not the broader
36290
+ // isBibFullscreen flag — to decide whether native <dialog> focus
36291
+ // restoration will occur, because isBibFullscreen is set
36292
+ // synchronously in showBib() while this open(true) runs a
36293
+ // microtask later. If the bib is closed before this resolves,
36294
+ // showModal() never fires and there is no native restoration to
36295
+ // defer to.
36296
+ this._bibOpenedAsModal = true;
36297
+
36229
36298
  doubleRaf(() => {
36230
36299
  this.focusActiveCellWhenReady();
36231
36300
  });
@@ -36257,7 +36326,27 @@ class AuroDatePicker extends AuroElement {
36257
36326
  this.dropdown.trigger.inert = false;
36258
36327
  const shouldRestoreFocus = this.hasFocus || this._restoreFocusOnClose;
36259
36328
  this._restoreFocusOnClose = false;
36260
- if (shouldRestoreFocus) {
36329
+ // On coarse-pointer (touch) devices closing the fullscreen modal, rely
36330
+ // on the <dialog>'s native focus restoration instead of forcing focus
36331
+ // back onto the input. showModal() returns focus to the trigger anchor
36332
+ // as part of the closing gesture, so a11y focus is preserved. Re-running
36333
+ // .focus() here is a gesture-decoupled programmatic focus that iOS
36334
+ // Safari penalizes: it swallows the user's next tap, so reopening the
36335
+ // calendar takes two taps instead of one (AB#1634252). Fine-pointer
36336
+ // (desktop) layouts keep the explicit restore for keyboard/SR
36337
+ // correctness, and non-fullscreen bibs (no showModal, no native
36338
+ // restoration) always restore explicitly.
36339
+ //
36340
+ // Gate on `_bibOpenedAsModal` — set only after the actual showModal()
36341
+ // promotion (open(true)) — rather than `isBibFullscreen`, which is true
36342
+ // as soon as the fullscreen layout is chosen but before the modal is
36343
+ // promoted. If the bib is closed before that async promotion runs, no
36344
+ // native restoration will occur, so we must still restore explicitly.
36345
+ const bibWasModal = this._bibOpenedAsModal;
36346
+ this._bibOpenedAsModal = false;
36347
+ const useNativeFocusRestoration =
36348
+ bibWasModal && window.matchMedia('(pointer: coarse)').matches;
36349
+ if (shouldRestoreFocus && !useNativeFocusRestoration) {
36261
36350
  requestAnimationFrame(() => {
36262
36351
  if (!this.dropdown.isPopoverVisible) {
36263
36352
  this.inputList[0].focus();
@@ -1775,6 +1775,48 @@ const computePosition = (reference, floating, options) => {
1775
1775
  });
1776
1776
  };
1777
1777
 
1778
+ /**
1779
+ * Generates a v4 UUID with a three-tier fallback for insecure contexts.
1780
+ *
1781
+ * Tier 1 (secure contexts): crypto.randomUUID() — native, fully random.
1782
+ * Tier 2 (insecure contexts): crypto.getRandomValues() — available on all
1783
+ * modern browsers regardless of secure-context status.
1784
+ * Tier 3 (last resort, no crypto API): new Date().getTime() — lower entropy,
1785
+ * but sufficient for element IDs where collision risk is negligible.
1786
+ *
1787
+ * See: https://w3c.github.io/webcrypto/#dom-crypto-randomuuid (secure-context restriction)
1788
+ */
1789
+ function generateUUID() {
1790
+ let uuid;
1791
+
1792
+ if (
1793
+ typeof crypto !== "undefined" &&
1794
+ typeof crypto.randomUUID === "function"
1795
+ ) {
1796
+ uuid = crypto.randomUUID();
1797
+ } else if (
1798
+ typeof crypto !== "undefined" &&
1799
+ typeof crypto.getRandomValues === "function"
1800
+ ) {
1801
+ const bytes = new Uint8Array(16);
1802
+ crypto.getRandomValues(bytes);
1803
+ bytes[6] = (bytes[6] & 0x0f) | 0x40;
1804
+ bytes[8] = (bytes[8] & 0x3f) | 0x80;
1805
+ const hex = Array.from(bytes).map((b) => b.toString(16).padStart(2, "0"));
1806
+ 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("")}`;
1807
+ } else {
1808
+ let d = new Date().getTime();
1809
+ uuid = "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, (c) => {
1810
+ const r = (d % 16) | 0;
1811
+ d = (d - r) / 16 || new Date().getTime();
1812
+ return (c === "x" ? r : (r & 0x3) | 0x8).toString(16);
1813
+ });
1814
+ }
1815
+
1816
+ // CSS selectors require IDs starting with a letter; replace a leading digit with 'a'.
1817
+ return /^[0-9]/.test(uuid) ? `a${uuid.slice(1)}` : uuid;
1818
+ }
1819
+
1778
1820
  /* eslint-disable line-comment-position, no-inline-comments */
1779
1821
 
1780
1822
 
@@ -2793,7 +2835,7 @@ class AuroFloatingUI {
2793
2835
 
2794
2836
  this.id = element.getAttribute("id");
2795
2837
  if (!this.id) {
2796
- this.id = window.crypto.randomUUID();
2838
+ this.id = generateUUID();
2797
2839
  element.setAttribute("id", this.id);
2798
2840
  }
2799
2841
 
@@ -3869,7 +3911,7 @@ class AuroHelpText extends i {
3869
3911
  }
3870
3912
  }
3871
3913
 
3872
- var formkitVersion = '202609012101';
3914
+ var formkitVersion = '202609022200';
3873
3915
 
3874
3916
  /**
3875
3917
  * AuroElement is the shared base class for layout-aware Auro form components.
@@ -1775,6 +1775,48 @@ const computePosition = (reference, floating, options) => {
1775
1775
  });
1776
1776
  };
1777
1777
 
1778
+ /**
1779
+ * Generates a v4 UUID with a three-tier fallback for insecure contexts.
1780
+ *
1781
+ * Tier 1 (secure contexts): crypto.randomUUID() — native, fully random.
1782
+ * Tier 2 (insecure contexts): crypto.getRandomValues() — available on all
1783
+ * modern browsers regardless of secure-context status.
1784
+ * Tier 3 (last resort, no crypto API): new Date().getTime() — lower entropy,
1785
+ * but sufficient for element IDs where collision risk is negligible.
1786
+ *
1787
+ * See: https://w3c.github.io/webcrypto/#dom-crypto-randomuuid (secure-context restriction)
1788
+ */
1789
+ function generateUUID() {
1790
+ let uuid;
1791
+
1792
+ if (
1793
+ typeof crypto !== "undefined" &&
1794
+ typeof crypto.randomUUID === "function"
1795
+ ) {
1796
+ uuid = crypto.randomUUID();
1797
+ } else if (
1798
+ typeof crypto !== "undefined" &&
1799
+ typeof crypto.getRandomValues === "function"
1800
+ ) {
1801
+ const bytes = new Uint8Array(16);
1802
+ crypto.getRandomValues(bytes);
1803
+ bytes[6] = (bytes[6] & 0x0f) | 0x40;
1804
+ bytes[8] = (bytes[8] & 0x3f) | 0x80;
1805
+ const hex = Array.from(bytes).map((b) => b.toString(16).padStart(2, "0"));
1806
+ 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("")}`;
1807
+ } else {
1808
+ let d = new Date().getTime();
1809
+ uuid = "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, (c) => {
1810
+ const r = (d % 16) | 0;
1811
+ d = (d - r) / 16 || new Date().getTime();
1812
+ return (c === "x" ? r : (r & 0x3) | 0x8).toString(16);
1813
+ });
1814
+ }
1815
+
1816
+ // CSS selectors require IDs starting with a letter; replace a leading digit with 'a'.
1817
+ return /^[0-9]/.test(uuid) ? `a${uuid.slice(1)}` : uuid;
1818
+ }
1819
+
1778
1820
  /* eslint-disable line-comment-position, no-inline-comments */
1779
1821
 
1780
1822
 
@@ -2793,7 +2835,7 @@ class AuroFloatingUI {
2793
2835
 
2794
2836
  this.id = element.getAttribute("id");
2795
2837
  if (!this.id) {
2796
- this.id = window.crypto.randomUUID();
2838
+ this.id = generateUUID();
2797
2839
  element.setAttribute("id", this.id);
2798
2840
  }
2799
2841
 
@@ -3869,7 +3911,7 @@ let AuroHelpText$1 = class AuroHelpText extends i {
3869
3911
  }
3870
3912
  };
3871
3913
 
3872
- var formkitVersion$1 = '202609012101';
3914
+ var formkitVersion$1 = '202609022200';
3873
3915
 
3874
3916
  /**
3875
3917
  * AuroElement is the shared base class for layout-aware Auro form components.
@@ -17738,7 +17780,7 @@ class AuroHelpText extends i {
17738
17780
  }
17739
17781
  }
17740
17782
 
17741
- var formkitVersion = '202609012101';
17783
+ var formkitVersion = '202609022200';
17742
17784
 
17743
17785
  // Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
17744
17786
  // See LICENSE in the project root for license information.
@@ -1802,6 +1802,48 @@ const computePosition = (reference, floating, options) => {
1802
1802
  });
1803
1803
  };
1804
1804
 
1805
+ /**
1806
+ * Generates a v4 UUID with a three-tier fallback for insecure contexts.
1807
+ *
1808
+ * Tier 1 (secure contexts): crypto.randomUUID() — native, fully random.
1809
+ * Tier 2 (insecure contexts): crypto.getRandomValues() — available on all
1810
+ * modern browsers regardless of secure-context status.
1811
+ * Tier 3 (last resort, no crypto API): new Date().getTime() — lower entropy,
1812
+ * but sufficient for element IDs where collision risk is negligible.
1813
+ *
1814
+ * See: https://w3c.github.io/webcrypto/#dom-crypto-randomuuid (secure-context restriction)
1815
+ */
1816
+ function generateUUID() {
1817
+ let uuid;
1818
+
1819
+ if (
1820
+ typeof crypto !== "undefined" &&
1821
+ typeof crypto.randomUUID === "function"
1822
+ ) {
1823
+ uuid = crypto.randomUUID();
1824
+ } else if (
1825
+ typeof crypto !== "undefined" &&
1826
+ typeof crypto.getRandomValues === "function"
1827
+ ) {
1828
+ const bytes = new Uint8Array(16);
1829
+ crypto.getRandomValues(bytes);
1830
+ bytes[6] = (bytes[6] & 0x0f) | 0x40;
1831
+ bytes[8] = (bytes[8] & 0x3f) | 0x80;
1832
+ const hex = Array.from(bytes).map((b) => b.toString(16).padStart(2, "0"));
1833
+ 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("")}`;
1834
+ } else {
1835
+ let d = new Date().getTime();
1836
+ uuid = "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, (c) => {
1837
+ const r = (d % 16) | 0;
1838
+ d = (d - r) / 16 || new Date().getTime();
1839
+ return (c === "x" ? r : (r & 0x3) | 0x8).toString(16);
1840
+ });
1841
+ }
1842
+
1843
+ // CSS selectors require IDs starting with a letter; replace a leading digit with 'a'.
1844
+ return /^[0-9]/.test(uuid) ? `a${uuid.slice(1)}` : uuid;
1845
+ }
1846
+
1805
1847
  /* eslint-disable line-comment-position, no-inline-comments */
1806
1848
 
1807
1849
 
@@ -2820,7 +2862,7 @@ class AuroFloatingUI {
2820
2862
 
2821
2863
  this.id = element.getAttribute("id");
2822
2864
  if (!this.id) {
2823
- this.id = window.crypto.randomUUID();
2865
+ this.id = generateUUID();
2824
2866
  element.setAttribute("id", this.id);
2825
2867
  }
2826
2868
 
@@ -3896,7 +3938,7 @@ class AuroHelpText extends i {
3896
3938
  }
3897
3939
  }
3898
3940
 
3899
- var formkitVersion = '202609012101';
3941
+ var formkitVersion = '202609022200';
3900
3942
 
3901
3943
  /**
3902
3944
  * AuroElement is the shared base class for layout-aware Auro form components.
@@ -1738,6 +1738,48 @@ const computePosition = (reference, floating, options) => {
1738
1738
  });
1739
1739
  };
1740
1740
 
1741
+ /**
1742
+ * Generates a v4 UUID with a three-tier fallback for insecure contexts.
1743
+ *
1744
+ * Tier 1 (secure contexts): crypto.randomUUID() — native, fully random.
1745
+ * Tier 2 (insecure contexts): crypto.getRandomValues() — available on all
1746
+ * modern browsers regardless of secure-context status.
1747
+ * Tier 3 (last resort, no crypto API): new Date().getTime() — lower entropy,
1748
+ * but sufficient for element IDs where collision risk is negligible.
1749
+ *
1750
+ * See: https://w3c.github.io/webcrypto/#dom-crypto-randomuuid (secure-context restriction)
1751
+ */
1752
+ function generateUUID() {
1753
+ let uuid;
1754
+
1755
+ if (
1756
+ typeof crypto !== "undefined" &&
1757
+ typeof crypto.randomUUID === "function"
1758
+ ) {
1759
+ uuid = crypto.randomUUID();
1760
+ } else if (
1761
+ typeof crypto !== "undefined" &&
1762
+ typeof crypto.getRandomValues === "function"
1763
+ ) {
1764
+ const bytes = new Uint8Array(16);
1765
+ crypto.getRandomValues(bytes);
1766
+ bytes[6] = (bytes[6] & 0x0f) | 0x40;
1767
+ bytes[8] = (bytes[8] & 0x3f) | 0x80;
1768
+ const hex = Array.from(bytes).map((b) => b.toString(16).padStart(2, "0"));
1769
+ 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("")}`;
1770
+ } else {
1771
+ let d = new Date().getTime();
1772
+ uuid = "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, (c) => {
1773
+ const r = (d % 16) | 0;
1774
+ d = (d - r) / 16 || new Date().getTime();
1775
+ return (c === "x" ? r : (r & 0x3) | 0x8).toString(16);
1776
+ });
1777
+ }
1778
+
1779
+ // CSS selectors require IDs starting with a letter; replace a leading digit with 'a'.
1780
+ return /^[0-9]/.test(uuid) ? `a${uuid.slice(1)}` : uuid;
1781
+ }
1782
+
1741
1783
  /* eslint-disable line-comment-position, no-inline-comments */
1742
1784
 
1743
1785
 
@@ -2756,7 +2798,7 @@ class AuroFloatingUI {
2756
2798
 
2757
2799
  this.id = element.getAttribute("id");
2758
2800
  if (!this.id) {
2759
- this.id = window.crypto.randomUUID();
2801
+ this.id = generateUUID();
2760
2802
  element.setAttribute("id", this.id);
2761
2803
  }
2762
2804
 
@@ -3801,7 +3843,7 @@ class AuroHelpText extends LitElement {
3801
3843
  }
3802
3844
  }
3803
3845
 
3804
- var formkitVersion = '202609012101';
3846
+ var formkitVersion = '202609022200';
3805
3847
 
3806
3848
  /**
3807
3849
  * AuroElement is the shared base class for layout-aware Auro form components.