@aurodesignsystem-dev/auro-formkit 0.0.0-pr1604.0 → 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.
- package/components/checkbox/demo/customize.min.js +1 -1
- package/components/checkbox/demo/getting-started.min.js +1 -1
- package/components/checkbox/demo/index.min.js +1 -1
- package/components/checkbox/dist/index.js +1 -1
- package/components/checkbox/dist/registered.js +1 -1
- package/components/combobox/demo/customize.min.js +153 -5
- package/components/combobox/demo/getting-started.min.js +153 -5
- package/components/combobox/demo/index.min.js +153 -5
- package/components/combobox/dist/auro-combobox.d.ts +22 -0
- package/components/combobox/dist/index.js +137 -5
- package/components/combobox/dist/registered.js +137 -5
- package/components/counter/demo/customize.min.js +339 -23
- package/components/counter/demo/getting-started.min.js +339 -23
- package/components/counter/demo/index.min.js +339 -23
- package/components/counter/dist/counterGroupKeyboardStrategy.d.ts +1 -0
- package/components/counter/dist/index.js +339 -23
- package/components/counter/dist/registered.js +339 -23
- package/components/datepicker/demo/customize.min.js +94 -5
- package/components/datepicker/demo/getting-started.min.js +94 -5
- package/components/datepicker/demo/index.min.js +94 -5
- package/components/datepicker/dist/auro-datepicker.d.ts +7 -0
- package/components/datepicker/dist/index.js +94 -5
- package/components/datepicker/dist/registered.js +94 -5
- package/components/dropdown/demo/customize.min.js +44 -2
- package/components/dropdown/demo/getting-started.min.js +45 -3
- package/components/dropdown/demo/index.min.js +44 -2
- package/components/dropdown/dist/index.js +44 -2
- package/components/dropdown/dist/registered.js +44 -2
- package/components/form/demo/customize.min.js +634 -39
- package/components/form/demo/getting-started.min.js +634 -39
- package/components/form/demo/index.min.js +634 -39
- package/components/form/demo/registerDemoDeps.min.js +634 -39
- package/components/input/demo/customize.min.js +1 -1
- package/components/input/demo/getting-started.min.js +1 -1
- package/components/input/demo/index.min.js +1 -1
- package/components/input/dist/index.js +1 -1
- package/components/input/dist/registered.js +1 -1
- package/components/menu/demo/index.min.js +16 -0
- package/components/menu/dist/index.js +16 -0
- package/components/menu/dist/registered.js +16 -0
- package/components/radio/demo/customize.min.js +1 -1
- package/components/radio/demo/getting-started.min.js +1 -1
- package/components/radio/demo/index.min.js +1 -1
- package/components/radio/dist/index.js +1 -1
- package/components/radio/dist/registered.js +1 -1
- package/components/select/demo/customize.min.js +61 -3
- package/components/select/demo/getting-started.min.js +61 -3
- package/components/select/demo/index.min.js +61 -3
- package/components/select/dist/index.js +45 -3
- package/components/select/dist/registered.js +45 -3
- package/custom-elements.json +31 -1
- package/package.json +3 -3
|
@@ -13777,7 +13777,7 @@ class AuroBibtemplate extends LitElement {
|
|
|
13777
13777
|
}
|
|
13778
13778
|
}
|
|
13779
13779
|
|
|
13780
|
-
var formkitVersion$2 = '
|
|
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 =
|
|
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 = '
|
|
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 = '
|
|
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
|
-
|
|
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 = '
|
|
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 =
|
|
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 = '
|
|
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 = '
|
|
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
|
-
|
|
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 =
|
|
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 = '
|
|
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 =
|
|
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 = '
|
|
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 = '
|
|
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 =
|
|
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 = '
|
|
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 =
|
|
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 = '
|
|
3846
|
+
var formkitVersion = '202609022200';
|
|
3805
3847
|
|
|
3806
3848
|
/**
|
|
3807
3849
|
* AuroElement is the shared base class for layout-aware Auro form components.
|