@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.
- 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 +1521 -1491
- package/package.json +3 -3
|
@@ -12467,7 +12467,7 @@ let AuroHelpText$8 = class AuroHelpText extends i$2 {
|
|
|
12467
12467
|
}
|
|
12468
12468
|
};
|
|
12469
12469
|
|
|
12470
|
-
var formkitVersion$8 = '
|
|
12470
|
+
var formkitVersion$8 = '202609022200';
|
|
12471
12471
|
|
|
12472
12472
|
// Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
|
|
12473
12473
|
// See LICENSE in the project root for license information.
|
|
@@ -27030,7 +27030,7 @@ let AuroBibtemplate$3 = class AuroBibtemplate extends i$2 {
|
|
|
27030
27030
|
}
|
|
27031
27031
|
};
|
|
27032
27032
|
|
|
27033
|
-
var formkitVersion$2$1 = '
|
|
27033
|
+
var formkitVersion$2$1 = '202609022200';
|
|
27034
27034
|
|
|
27035
27035
|
let l$1$2 = class l{generateElementName(t,e){let o=t;return o+="-",o+=e.replace(/[.]/g,"_"),o}generateTag(o,s,a){const r=this.generateElementName(o,s),i=i$5`${s$5(r)}`;return customElements.get(r)||customElements.define(r,class extends a{}),i}};let d$1$2 = class d{registerComponent(t,e){customElements.get(t)||customElements.define(t,class extends e{});}closestElement(t,e=this,o=(e,s=e&&e.closest(t))=>e&&e!==document&&e!==window?s||o(e.getRootNode().host):null){return o(e)}handleComponentTagRename(t,e){const o=e.toLowerCase();t.tagName.toLowerCase()!==o&&t.setAttribute(o,true);}elementMatch(t,e){const o=e.toLowerCase();return t.tagName.toLowerCase()===o||t.hasAttribute(o)}getSlotText(t,e){const o=t.shadowRoot?.querySelector(`slot[name="${e}"]`),s=(o?.assignedNodes({flatten:true})||[]).map(t=>t.textContent?.trim()).join(" ").trim();return s||null}};let h$1$2 = class h{registerComponent(t,e){customElements.get(t)||customElements.define(t,class extends e{});}closestElement(t,e=this,o=(e,s=e&&e.closest(t))=>e&&e!==document&&e!==window?s||o(e.getRootNode().host):null){return o(e)}handleComponentTagRename(t,e){const o=e.toLowerCase();t.tagName.toLowerCase()!==o&&t.setAttribute(o,true);}elementMatch(t,e){const o=e.toLowerCase();return t.tagName.toLowerCase()===o||t.hasAttribute(o)}};var c$1$3=i$4`:host{color:var(--ds-auro-loader-color)}:host>span{background-color:var(--ds-auro-loader-background-color);border-color:var(--ds-auro-loader-border-color)}:host([onlight]),:host([appearance=brand]){--ds-auro-loader-color: var(--ds-basic-color-brand-primary, #01426a)}:host([ondark]),:host([appearance=inverse]){--ds-auro-loader-color: var(--ds-basic-color-texticon-inverse, #ffffff)}:host([orbit])>span{--ds-auro-loader-background-color: transparent}:host([orbit])>span:nth-child(1){--ds-auro-loader-border-color: currentcolor;opacity:.25}:host([orbit])>span:nth-child(2){--ds-auro-loader-border-color: currentcolor;border-right-color:transparent;border-bottom-color:transparent;border-left-color:transparent}
|
|
27036
27036
|
`,u$4$2=i$4`.body-default{font-size:var(--wcss-body-default-font-size, 1rem);line-height:var(--wcss-body-default-line-height, 1.5rem)}.body-default,.body-lg{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-weight, 450);letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-lg{font-size:var(--wcss-body-lg-font-size, 1.125rem);line-height:var(--wcss-body-lg-line-height, 1.625rem)}.body-sm{font-size:var(--wcss-body-sm-font-size, .875rem);line-height:var(--wcss-body-sm-line-height, 1.25rem)}.body-sm,.body-xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-weight, 450);letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-xs{font-size:var(--wcss-body-xs-font-size, .75rem);line-height:var(--wcss-body-xs-line-height, 1rem)}.body-2xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-size:var(--wcss-body-2xs-font-size, .625rem);font-weight:var(--wcss-body-weight, 450);letter-spacing:var(--wcss-body-letter-spacing, 0);line-height:var(--wcss-body-2xs-line-height, .875rem)}.display-2xl{font-family:var(--wcss-display-2xl-family, "AS Circular"),var(--wcss-display-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-2xl-font-size, clamp(3.5rem, 6vw, 5.375rem));font-weight:var(--wcss-display-2xl-weight, 300);letter-spacing:var(--wcss-display-2xl-letter-spacing, 0);line-height:var(--wcss-display-2xl-line-height, 1.3)}.display-xl{font-family:var(--wcss-display-xl-family, "AS Circular"),var(--wcss-display-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-xl-font-size, clamp(3rem, 5.3333333333vw, 4.5rem));font-weight:var(--wcss-display-xl-weight, 300);letter-spacing:var(--wcss-display-xl-letter-spacing, 0);line-height:var(--wcss-display-xl-line-height, 1.3)}.display-lg{font-family:var(--wcss-display-lg-family, "AS Circular"),var(--wcss-display-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-lg-font-size, clamp(2.75rem, 4.6666666667vw, 4rem));font-weight:var(--wcss-display-lg-weight, 300);letter-spacing:var(--wcss-display-lg-letter-spacing, 0);line-height:var(--wcss-display-lg-line-height, 1.3)}.display-md{font-family:var(--wcss-display-md-family, "AS Circular"),var(--wcss-display-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-md-font-size, clamp(2.5rem, 4vw, 3.5rem));font-weight:var(--wcss-display-md-weight, 300);letter-spacing:var(--wcss-display-md-letter-spacing, 0);line-height:var(--wcss-display-md-line-height, 1.3)}.display-sm{font-family:var(--wcss-display-sm-family, "AS Circular"),var(--wcss-display-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-sm-font-size, clamp(2rem, 3.6666666667vw, 3rem));font-weight:var(--wcss-display-sm-weight, 300);letter-spacing:var(--wcss-display-sm-letter-spacing, 0);line-height:var(--wcss-display-sm-line-height, 1.3)}.display-xs{font-family:var(--wcss-display-xs-family, "AS Circular"),var(--wcss-display-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-xs-font-size, clamp(1.75rem, 3vw, 2.375rem));font-weight:var(--wcss-display-xs-weight, 300);letter-spacing:var(--wcss-display-xs-letter-spacing, 0);line-height:var(--wcss-display-xs-line-height, 1.3)}.heading-xl{font-family:var(--wcss-heading-xl-family, "AS Circular"),var(--wcss-heading-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-xl-font-size, clamp(2rem, 3vw, 2.5rem));font-weight:var(--wcss-heading-xl-weight, 300);letter-spacing:var(--wcss-heading-xl-letter-spacing, 0);line-height:var(--wcss-heading-xl-line-height, 1.3)}.heading-lg{font-family:var(--wcss-heading-lg-family, "AS Circular"),var(--wcss-heading-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-lg-font-size, clamp(1.75rem, 2.6666666667vw, 2.25rem));font-weight:var(--wcss-heading-lg-weight, 300);letter-spacing:var(--wcss-heading-lg-letter-spacing, 0);line-height:var(--wcss-heading-lg-line-height, 1.3)}.heading-md{font-family:var(--wcss-heading-md-family, "AS Circular"),var(--wcss-heading-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-md-font-size, clamp(1.625rem, 2.3333333333vw, 1.75rem));font-weight:var(--wcss-heading-md-weight, 300);letter-spacing:var(--wcss-heading-md-letter-spacing, 0);line-height:var(--wcss-heading-md-line-height, 1.3)}.heading-sm{font-family:var(--wcss-heading-sm-family, "AS Circular"),var(--wcss-heading-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-sm-font-size, clamp(1.375rem, 2vw, 1.5rem));font-weight:var(--wcss-heading-sm-weight, 300);letter-spacing:var(--wcss-heading-sm-letter-spacing, 0);line-height:var(--wcss-heading-sm-line-height, 1.3)}.heading-xs{font-family:var(--wcss-heading-xs-family, "AS Circular"),var(--wcss-heading-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-xs-font-size, clamp(1.25rem, 1.6666666667vw, 1.25rem));font-weight:var(--wcss-heading-xs-weight, 450);letter-spacing:var(--wcss-heading-xs-letter-spacing, 0);line-height:var(--wcss-heading-xs-line-height, 1.3)}.heading-2xs{font-family:var(--wcss-heading-2xs-family, "AS Circular"),var(--wcss-heading-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-2xs-font-size, clamp(1.125rem, 1.5vw, 1.125rem));font-weight:var(--wcss-heading-2xs-weight, 450);letter-spacing:var(--wcss-heading-2xs-letter-spacing, 0);line-height:var(--wcss-heading-2xs-line-height, 1.3)}.accent-2xl{font-family:var(--wcss-accent-2xl-family, "Good OT"),var(--wcss-accent-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-2xl-font-size, clamp(2rem, 3.1666666667vw, 2.375rem));font-weight:var(--wcss-accent-2xl-weight, 450);letter-spacing:var(--wcss-accent-2xl-letter-spacing, .05em);line-height:var(--wcss-accent-2xl-line-height, 1)}.accent-2xl,.accent-xl{text-transform:uppercase}.accent-xl{font-family:var(--wcss-accent-xl-family, "Good OT"),var(--wcss-accent-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-xl-font-size, clamp(1.625rem, 2.3333333333vw, 2rem));font-weight:var(--wcss-accent-xl-weight, 450);letter-spacing:var(--wcss-accent-xl-letter-spacing, .05em);line-height:var(--wcss-accent-xl-line-height, 1.3)}.accent-lg{font-family:var(--wcss-accent-lg-family, "Good OT"),var(--wcss-accent-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-lg-font-size, clamp(1.5rem, 2.1666666667vw, 1.75rem));font-weight:var(--wcss-accent-lg-weight, 450);letter-spacing:var(--wcss-accent-lg-letter-spacing, .05em);line-height:var(--wcss-accent-lg-line-height, 1.3)}.accent-lg,.accent-md{text-transform:uppercase}.accent-md{font-family:var(--wcss-accent-md-family, "Good OT"),var(--wcss-accent-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-md-font-size, clamp(1.375rem, 1.8333333333vw, 1.5rem));font-weight:var(--wcss-accent-md-weight, 500);letter-spacing:var(--wcss-accent-md-letter-spacing, .05em);line-height:var(--wcss-accent-md-line-height, 1.3)}.accent-sm{font-family:var(--wcss-accent-sm-family, "Good OT"),var(--wcss-accent-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-sm-font-size, clamp(1.125rem, 1.5vw, 1.25rem));font-weight:var(--wcss-accent-sm-weight, 500);letter-spacing:var(--wcss-accent-sm-letter-spacing, .05em);line-height:var(--wcss-accent-sm-line-height, 1.3)}.accent-sm,.accent-xs{text-transform:uppercase}.accent-xs{font-family:var(--wcss-accent-xs-family, "Good OT"),var(--wcss-accent-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-xs-font-size, clamp(1rem, 1.3333333333vw, 1rem));font-weight:var(--wcss-accent-xs-weight, 500);letter-spacing:var(--wcss-accent-xs-letter-spacing, .1em);line-height:var(--wcss-accent-xs-line-height, 1.3)}.accent-2xs{font-family:var(--wcss-accent-2xs-family, "Good OT"),var(--wcss-accent-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-2xs-font-size, clamp(.875rem, 1.1666666667vw, .875rem));font-weight:var(--wcss-accent-2xs-weight, 450);letter-spacing:var(--wcss-accent-2xs-letter-spacing, .1em);line-height:var(--wcss-accent-2xs-line-height, 1.3);text-transform:uppercase}:focus:not(:focus-visible){outline:3px solid transparent}:host,:host>span{position:relative}:host{width:2rem;height:2rem;display:inline-block;font-size:0}:host>span{position:absolute;display:inline-block;float:none;top:0;left:0;width:2rem;height:2rem;border-radius:100%;border-style:solid;border-width:0;box-sizing:border-box}:host([xs]),:host([xs])>span{width:1.2rem;height:1.2rem}:host([sm]),:host([sm])>span{width:3rem;height:3rem}:host([md]),:host([md])>span{width:5rem;height:5rem}:host([lg]),:host([lg])>span{width:8rem;height:8rem}:host{--margin: .375rem;--margin-xs: .2rem;--margin-sm: .5rem;--margin-md: .75rem;--margin-lg: 1rem}:host([pulse]),:host([pulse])>span{position:relative}:host([pulse]){width:calc(3rem + var(--margin) * 6);height:calc(1rem + var(--margin) * 2)}:host([pulse])>span{width:1rem;height:1rem;margin:var(--margin);animation:pulse 1.5s ease infinite}:host([pulse][xs]){width:calc(1.95rem + var(--margin-xs) * 6);height:calc(.65rem + var(--margin-xs) * 2)}:host([pulse][xs])>span{margin:var(--margin-xs);width:.65rem;height:.65rem}:host([pulse][sm]){width:calc(6rem + var(--margin-sm) * 6);height:calc(2rem + var(--margin-sm) * 2)}:host([pulse][sm])>span{margin:var(--margin-sm);width:2rem;height:2rem}:host([pulse][md]){width:calc(9rem + var(--margin-md) * 6);height:calc(3rem + var(--margin-md) * 2)}:host([pulse][md])>span{margin:var(--margin-md);width:3rem;height:3rem}:host([pulse][lg]){width:calc(15rem + var(--margin-lg) * 6);height:calc(5rem + var(--margin-lg) * 2)}:host([pulse][lg])>span{margin:var(--margin-lg);width:5rem;height:5rem}:host([pulse])>span:nth-child(1){animation-delay:-.4s}:host([pulse])>span:nth-child(2){animation-delay:-.2s}:host([pulse])>span:nth-child(3){animation-delay:0ms}@keyframes pulse{0%,to{opacity:.1;transform:scale(.9)}50%{opacity:1;transform:scale(1.1)}}:host([orbit]),:host([orbit])>span{opacity:1}:host([orbit])>span{border-width:5px}:host([orbit])>span:nth-child(2){animation:orbit 2s linear infinite}:host([orbit][sm])>span{border-width:8px}:host([orbit][md])>span{border-width:13px}:host([orbit][lg])>span{border-width:21px}@keyframes orbit{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host([ringworm])>svg{animation:rotate 2s linear infinite;height:100%;width:100%;stroke:currentcolor;stroke-width:8}:host([ringworm]) .path{stroke-dashoffset:0;animation:ringworm 1.5s ease-in-out infinite;stroke-linecap:round}@keyframes rotate{to{transform:rotate(360deg)}}@keyframes ringworm{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:89,200;stroke-dashoffset:-35px}to{stroke-dasharray:89,200;stroke-dashoffset:-124px}}:host([laser]){position:static;width:100%;display:block;height:0;overflow:hidden;font-size:unset}:host([laser])>span{position:fixed;width:100%;height:.25rem;border-radius:0;z-index:100}:host([laser])>span:nth-child(1){border-color:currentcolor;opacity:.25}:host([laser])>span:nth-child(2){border-color:currentcolor;animation:laser 2s linear infinite;opacity:1;width:50%}:host([laser][sm])>span:nth-child(2){width:20%}:host([laser][md])>span:nth-child(2){width:30%}:host([laser][lg])>span:nth-child(2){width:50%;animation-duration:1.5s}:host([laser][xl])>span:nth-child(2){width:80%;animation-duration:1.5s}@keyframes laser{0%{left:-100%}to{left:110%}}:host>.no-animation{display:none}@media (prefers-reduced-motion: reduce){:host{display:flex;align-items:center;justify-content:center}:host>span{opacity:1}:host>.loader{display:none}:host>svg{display:none}:host>.no-animation{display:block}}
|
|
@@ -30811,6 +30811,48 @@ const computePosition$4 = (reference, floating, options) => {
|
|
|
30811
30811
|
});
|
|
30812
30812
|
};
|
|
30813
30813
|
|
|
30814
|
+
/**
|
|
30815
|
+
* Generates a v4 UUID with a three-tier fallback for insecure contexts.
|
|
30816
|
+
*
|
|
30817
|
+
* Tier 1 (secure contexts): crypto.randomUUID() — native, fully random.
|
|
30818
|
+
* Tier 2 (insecure contexts): crypto.getRandomValues() — available on all
|
|
30819
|
+
* modern browsers regardless of secure-context status.
|
|
30820
|
+
* Tier 3 (last resort, no crypto API): new Date().getTime() — lower entropy,
|
|
30821
|
+
* but sufficient for element IDs where collision risk is negligible.
|
|
30822
|
+
*
|
|
30823
|
+
* See: https://w3c.github.io/webcrypto/#dom-crypto-randomuuid (secure-context restriction)
|
|
30824
|
+
*/
|
|
30825
|
+
function generateUUID$3() {
|
|
30826
|
+
let uuid;
|
|
30827
|
+
|
|
30828
|
+
if (
|
|
30829
|
+
typeof crypto !== "undefined" &&
|
|
30830
|
+
typeof crypto.randomUUID === "function"
|
|
30831
|
+
) {
|
|
30832
|
+
uuid = crypto.randomUUID();
|
|
30833
|
+
} else if (
|
|
30834
|
+
typeof crypto !== "undefined" &&
|
|
30835
|
+
typeof crypto.getRandomValues === "function"
|
|
30836
|
+
) {
|
|
30837
|
+
const bytes = new Uint8Array(16);
|
|
30838
|
+
crypto.getRandomValues(bytes);
|
|
30839
|
+
bytes[6] = (bytes[6] & 0x0f) | 0x40;
|
|
30840
|
+
bytes[8] = (bytes[8] & 0x3f) | 0x80;
|
|
30841
|
+
const hex = Array.from(bytes).map((b) => b.toString(16).padStart(2, "0"));
|
|
30842
|
+
uuid = `${hex.slice(0, 4).join("")}-${hex.slice(4, 6).join("")}-${hex.slice(6, 8).join("")}-${hex.slice(8, 10).join("")}-${hex.slice(10).join("")}`;
|
|
30843
|
+
} else {
|
|
30844
|
+
let d = new Date().getTime();
|
|
30845
|
+
uuid = "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, (c) => {
|
|
30846
|
+
const r = (d % 16) | 0;
|
|
30847
|
+
d = (d - r) / 16 || new Date().getTime();
|
|
30848
|
+
return (c === "x" ? r : (r & 0x3) | 0x8).toString(16);
|
|
30849
|
+
});
|
|
30850
|
+
}
|
|
30851
|
+
|
|
30852
|
+
// CSS selectors require IDs starting with a letter; replace a leading digit with 'a'.
|
|
30853
|
+
return /^[0-9]/.test(uuid) ? `a${uuid.slice(1)}` : uuid;
|
|
30854
|
+
}
|
|
30855
|
+
|
|
30814
30856
|
/* eslint-disable line-comment-position, no-inline-comments */
|
|
30815
30857
|
|
|
30816
30858
|
|
|
@@ -31829,7 +31871,7 @@ let AuroFloatingUI$3 = class AuroFloatingUI {
|
|
|
31829
31871
|
|
|
31830
31872
|
this.id = element.getAttribute("id");
|
|
31831
31873
|
if (!this.id) {
|
|
31832
|
-
this.id =
|
|
31874
|
+
this.id = generateUUID$3();
|
|
31833
31875
|
element.setAttribute("id", this.id);
|
|
31834
31876
|
}
|
|
31835
31877
|
|
|
@@ -32874,7 +32916,7 @@ let AuroHelpText$2$1 = class AuroHelpText extends i$2 {
|
|
|
32874
32916
|
}
|
|
32875
32917
|
};
|
|
32876
32918
|
|
|
32877
|
-
var formkitVersion$1$3 = '
|
|
32919
|
+
var formkitVersion$1$3 = '202609022200';
|
|
32878
32920
|
|
|
32879
32921
|
/**
|
|
32880
32922
|
* AuroElement is the shared base class for layout-aware Auro form components.
|
|
@@ -46736,7 +46778,7 @@ let AuroHelpText$1$3 = class AuroHelpText extends i$2 {
|
|
|
46736
46778
|
}
|
|
46737
46779
|
};
|
|
46738
46780
|
|
|
46739
|
-
var formkitVersion$7 = '
|
|
46781
|
+
var formkitVersion$7 = '202609022200';
|
|
46740
46782
|
|
|
46741
46783
|
// Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
|
|
46742
46784
|
// See LICENSE in the project root for license information.
|
|
@@ -48353,6 +48395,14 @@ class AuroDatePicker extends AuroElement$5 {
|
|
|
48353
48395
|
*/
|
|
48354
48396
|
this.hasFocus = false;
|
|
48355
48397
|
|
|
48398
|
+
/**
|
|
48399
|
+
* Tracks whether the current open cycle promoted the fullscreen bib via
|
|
48400
|
+
* showModal(). Used by the close handler to decide whether native <dialog>
|
|
48401
|
+
* focus restoration will fire (see the auroDropdown-toggled handler).
|
|
48402
|
+
* @private
|
|
48403
|
+
*/
|
|
48404
|
+
this._bibOpenedAsModal = false;
|
|
48405
|
+
|
|
48356
48406
|
/**
|
|
48357
48407
|
* @private
|
|
48358
48408
|
*/
|
|
@@ -49408,6 +49458,15 @@ class AuroDatePicker extends AuroElement$5 {
|
|
|
49408
49458
|
// a top-layer popover where :focus-within on the dropdown host returns false).
|
|
49409
49459
|
this.dropdown.noHideOnThisFocusLoss = true;
|
|
49410
49460
|
|
|
49461
|
+
// Suppress the dropdown's generic focus restoration on close — the
|
|
49462
|
+
// datepicker manages its own focus in the auroDropdown-toggled handler
|
|
49463
|
+
// below (respecting hasFocus / _restoreFocusOnClose, and deferring to the
|
|
49464
|
+
// fullscreen dialog's native restoration on touch devices). Without this,
|
|
49465
|
+
// the dropdown's setTimeout(focusTrigger) fires a second, gesture-decoupled
|
|
49466
|
+
// programmatic focus on close, which on iOS Safari swallows the user's next
|
|
49467
|
+
// tap and forces a second tap to reopen the calendar (AB#1634252).
|
|
49468
|
+
this.dropdown.noFocusRestoreOnClose = true;
|
|
49469
|
+
|
|
49411
49470
|
// Pass label text to the dropdown bib for accessible dialog naming.
|
|
49412
49471
|
// Without this, the fullscreen <dialog> has no accessible name and
|
|
49413
49472
|
// screen readers announce it as just "dialog" with no context.
|
|
@@ -49479,6 +49538,16 @@ class AuroDatePicker extends AuroElement$5 {
|
|
|
49479
49538
|
bibEl.close();
|
|
49480
49539
|
bibEl.open(true);
|
|
49481
49540
|
|
|
49541
|
+
// Record that this open cycle actually promoted the dialog via
|
|
49542
|
+
// showModal(). The close handler relies on this — not the broader
|
|
49543
|
+
// isBibFullscreen flag — to decide whether native <dialog> focus
|
|
49544
|
+
// restoration will occur, because isBibFullscreen is set
|
|
49545
|
+
// synchronously in showBib() while this open(true) runs a
|
|
49546
|
+
// microtask later. If the bib is closed before this resolves,
|
|
49547
|
+
// showModal() never fires and there is no native restoration to
|
|
49548
|
+
// defer to.
|
|
49549
|
+
this._bibOpenedAsModal = true;
|
|
49550
|
+
|
|
49482
49551
|
doubleRaf$3(() => {
|
|
49483
49552
|
this.focusActiveCellWhenReady();
|
|
49484
49553
|
});
|
|
@@ -49510,7 +49579,27 @@ class AuroDatePicker extends AuroElement$5 {
|
|
|
49510
49579
|
this.dropdown.trigger.inert = false;
|
|
49511
49580
|
const shouldRestoreFocus = this.hasFocus || this._restoreFocusOnClose;
|
|
49512
49581
|
this._restoreFocusOnClose = false;
|
|
49513
|
-
|
|
49582
|
+
// On coarse-pointer (touch) devices closing the fullscreen modal, rely
|
|
49583
|
+
// on the <dialog>'s native focus restoration instead of forcing focus
|
|
49584
|
+
// back onto the input. showModal() returns focus to the trigger anchor
|
|
49585
|
+
// as part of the closing gesture, so a11y focus is preserved. Re-running
|
|
49586
|
+
// .focus() here is a gesture-decoupled programmatic focus that iOS
|
|
49587
|
+
// Safari penalizes: it swallows the user's next tap, so reopening the
|
|
49588
|
+
// calendar takes two taps instead of one (AB#1634252). Fine-pointer
|
|
49589
|
+
// (desktop) layouts keep the explicit restore for keyboard/SR
|
|
49590
|
+
// correctness, and non-fullscreen bibs (no showModal, no native
|
|
49591
|
+
// restoration) always restore explicitly.
|
|
49592
|
+
//
|
|
49593
|
+
// Gate on `_bibOpenedAsModal` — set only after the actual showModal()
|
|
49594
|
+
// promotion (open(true)) — rather than `isBibFullscreen`, which is true
|
|
49595
|
+
// as soon as the fullscreen layout is chosen but before the modal is
|
|
49596
|
+
// promoted. If the bib is closed before that async promotion runs, no
|
|
49597
|
+
// native restoration will occur, so we must still restore explicitly.
|
|
49598
|
+
const bibWasModal = this._bibOpenedAsModal;
|
|
49599
|
+
this._bibOpenedAsModal = false;
|
|
49600
|
+
const useNativeFocusRestoration =
|
|
49601
|
+
bibWasModal && window.matchMedia('(pointer: coarse)').matches;
|
|
49602
|
+
if (shouldRestoreFocus && !useNativeFocusRestoration) {
|
|
49514
49603
|
requestAnimationFrame(() => {
|
|
49515
49604
|
if (!this.dropdown.isPopoverVisible) {
|
|
49516
49605
|
this.inputList[0].focus();
|
|
@@ -51842,7 +51931,7 @@ let AuroHelpText$1$2 = class AuroHelpText extends i$2 {
|
|
|
51842
51931
|
}
|
|
51843
51932
|
};
|
|
51844
51933
|
|
|
51845
|
-
var formkitVersion$1$2 = '
|
|
51934
|
+
var formkitVersion$1$2 = '202609022200';
|
|
51846
51935
|
|
|
51847
51936
|
// Copyright (c) 2026 Alaska Airlines. All rights reserved. Licensed under the Apache-2.0 license
|
|
51848
51937
|
// See LICENSE in the project root for license information.
|
|
@@ -54079,6 +54168,48 @@ const computePosition$3 = (reference, floating, options) => {
|
|
|
54079
54168
|
});
|
|
54080
54169
|
};
|
|
54081
54170
|
|
|
54171
|
+
/**
|
|
54172
|
+
* Generates a v4 UUID with a three-tier fallback for insecure contexts.
|
|
54173
|
+
*
|
|
54174
|
+
* Tier 1 (secure contexts): crypto.randomUUID() — native, fully random.
|
|
54175
|
+
* Tier 2 (insecure contexts): crypto.getRandomValues() — available on all
|
|
54176
|
+
* modern browsers regardless of secure-context status.
|
|
54177
|
+
* Tier 3 (last resort, no crypto API): new Date().getTime() — lower entropy,
|
|
54178
|
+
* but sufficient for element IDs where collision risk is negligible.
|
|
54179
|
+
*
|
|
54180
|
+
* See: https://w3c.github.io/webcrypto/#dom-crypto-randomuuid (secure-context restriction)
|
|
54181
|
+
*/
|
|
54182
|
+
function generateUUID$2() {
|
|
54183
|
+
let uuid;
|
|
54184
|
+
|
|
54185
|
+
if (
|
|
54186
|
+
typeof crypto !== "undefined" &&
|
|
54187
|
+
typeof crypto.randomUUID === "function"
|
|
54188
|
+
) {
|
|
54189
|
+
uuid = crypto.randomUUID();
|
|
54190
|
+
} else if (
|
|
54191
|
+
typeof crypto !== "undefined" &&
|
|
54192
|
+
typeof crypto.getRandomValues === "function"
|
|
54193
|
+
) {
|
|
54194
|
+
const bytes = new Uint8Array(16);
|
|
54195
|
+
crypto.getRandomValues(bytes);
|
|
54196
|
+
bytes[6] = (bytes[6] & 0x0f) | 0x40;
|
|
54197
|
+
bytes[8] = (bytes[8] & 0x3f) | 0x80;
|
|
54198
|
+
const hex = Array.from(bytes).map((b) => b.toString(16).padStart(2, "0"));
|
|
54199
|
+
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("")}`;
|
|
54200
|
+
} else {
|
|
54201
|
+
let d = new Date().getTime();
|
|
54202
|
+
uuid = "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, (c) => {
|
|
54203
|
+
const r = (d % 16) | 0;
|
|
54204
|
+
d = (d - r) / 16 || new Date().getTime();
|
|
54205
|
+
return (c === "x" ? r : (r & 0x3) | 0x8).toString(16);
|
|
54206
|
+
});
|
|
54207
|
+
}
|
|
54208
|
+
|
|
54209
|
+
// CSS selectors require IDs starting with a letter; replace a leading digit with 'a'.
|
|
54210
|
+
return /^[0-9]/.test(uuid) ? `a${uuid.slice(1)}` : uuid;
|
|
54211
|
+
}
|
|
54212
|
+
|
|
54082
54213
|
/* eslint-disable line-comment-position, no-inline-comments */
|
|
54083
54214
|
|
|
54084
54215
|
|
|
@@ -55097,7 +55228,7 @@ let AuroFloatingUI$2 = class AuroFloatingUI {
|
|
|
55097
55228
|
|
|
55098
55229
|
this.id = element.getAttribute("id");
|
|
55099
55230
|
if (!this.id) {
|
|
55100
|
-
this.id =
|
|
55231
|
+
this.id = generateUUID$2();
|
|
55101
55232
|
element.setAttribute("id", this.id);
|
|
55102
55233
|
}
|
|
55103
55234
|
|
|
@@ -55181,7 +55312,7 @@ let AuroFloatingUI$2 = class AuroFloatingUI {
|
|
|
55181
55312
|
};
|
|
55182
55313
|
|
|
55183
55314
|
// Selectors for focusable elements
|
|
55184
|
-
const FOCUSABLE_SELECTORS$
|
|
55315
|
+
const FOCUSABLE_SELECTORS$1$1 = [
|
|
55185
55316
|
"a[href]",
|
|
55186
55317
|
"button:not([disabled])",
|
|
55187
55318
|
"textarea:not([disabled])",
|
|
@@ -55195,7 +55326,7 @@ const FOCUSABLE_SELECTORS$3 = [
|
|
|
55195
55326
|
];
|
|
55196
55327
|
|
|
55197
55328
|
// List of custom components that are known to be focusable
|
|
55198
|
-
const FOCUSABLE_COMPONENTS$
|
|
55329
|
+
const FOCUSABLE_COMPONENTS$1$1 = [
|
|
55199
55330
|
"auro-checkbox",
|
|
55200
55331
|
"auro-radio",
|
|
55201
55332
|
"auro-dropdown",
|
|
@@ -55217,12 +55348,12 @@ const FOCUSABLE_COMPONENTS$3 = [
|
|
|
55217
55348
|
* @param {HTMLElement} element The element to check for focusability.
|
|
55218
55349
|
* @returns {boolean} True if the element is a focusable custom component, false otherwise.
|
|
55219
55350
|
*/
|
|
55220
|
-
function isFocusableComponent$
|
|
55351
|
+
function isFocusableComponent$1$1(element) {
|
|
55221
55352
|
const componentName = element.tagName.toLowerCase();
|
|
55222
55353
|
|
|
55223
55354
|
// Guard Clause: Element is a focusable component
|
|
55224
55355
|
if (
|
|
55225
|
-
!FOCUSABLE_COMPONENTS$
|
|
55356
|
+
!FOCUSABLE_COMPONENTS$1$1.some(
|
|
55226
55357
|
(name) => element.hasAttribute(name) || componentName === name,
|
|
55227
55358
|
)
|
|
55228
55359
|
)
|
|
@@ -55246,7 +55377,7 @@ function isFocusableComponent$3(element) {
|
|
|
55246
55377
|
* @param {HTMLElement} element The element whose tabindex to read.
|
|
55247
55378
|
* @returns {?number} The numeric tabindex or null if missing/invalid.
|
|
55248
55379
|
*/
|
|
55249
|
-
function getNumericTabIndex$
|
|
55380
|
+
function getNumericTabIndex$1$1(element) {
|
|
55250
55381
|
const raw = element.getAttribute("tabindex");
|
|
55251
55382
|
if (raw == null) return null;
|
|
55252
55383
|
|
|
@@ -55262,7 +55393,7 @@ function getNumericTabIndex$3(element) {
|
|
|
55262
55393
|
* @param {HTMLElement} container The container to search within
|
|
55263
55394
|
* @returns {Array<HTMLElement>} An array of focusable elements within the container.
|
|
55264
55395
|
*/
|
|
55265
|
-
function getFocusableElements$
|
|
55396
|
+
function getFocusableElements$1$1(container) {
|
|
55266
55397
|
// Get elements in DOM order by walking the tree
|
|
55267
55398
|
const orderedFocusableElements = [];
|
|
55268
55399
|
|
|
@@ -55271,7 +55402,7 @@ function getFocusableElements$3(container) {
|
|
|
55271
55402
|
// Check if current element is focusable
|
|
55272
55403
|
if (root.nodeType === Node.ELEMENT_NODE) {
|
|
55273
55404
|
// Check if this is a custom component that is focusable
|
|
55274
|
-
const isComponentFocusable = isFocusableComponent$
|
|
55405
|
+
const isComponentFocusable = isFocusableComponent$1$1(root);
|
|
55275
55406
|
|
|
55276
55407
|
if (isComponentFocusable) {
|
|
55277
55408
|
// Add the component itself as a focusable element and don't traverse its shadow DOM
|
|
@@ -55280,7 +55411,7 @@ function getFocusableElements$3(container) {
|
|
|
55280
55411
|
}
|
|
55281
55412
|
|
|
55282
55413
|
// Check if the element itself matches any selector
|
|
55283
|
-
for (const selector of FOCUSABLE_SELECTORS$
|
|
55414
|
+
for (const selector of FOCUSABLE_SELECTORS$1$1) {
|
|
55284
55415
|
if (root.matches?.(selector)) {
|
|
55285
55416
|
orderedFocusableElements.push(root);
|
|
55286
55417
|
break; // Once we know it's focusable, no need to check other selectors
|
|
@@ -55334,20 +55465,20 @@ function getFocusableElements$3(container) {
|
|
|
55334
55465
|
|
|
55335
55466
|
// First extract elements with valid positive tabindex
|
|
55336
55467
|
const elementsWithTabindex = uniqueElements.filter((el) => {
|
|
55337
|
-
const tabindex = getNumericTabIndex$
|
|
55468
|
+
const tabindex = getNumericTabIndex$1$1(el);
|
|
55338
55469
|
return tabindex !== null && tabindex > 0;
|
|
55339
55470
|
});
|
|
55340
55471
|
|
|
55341
55472
|
// Sort these elements by their tabindex value
|
|
55342
55473
|
elementsWithTabindex.sort((a, b) => {
|
|
55343
|
-
const aIndex = getNumericTabIndex$
|
|
55344
|
-
const bIndex = getNumericTabIndex$
|
|
55474
|
+
const aIndex = getNumericTabIndex$1$1(a) ?? 0;
|
|
55475
|
+
const bIndex = getNumericTabIndex$1$1(b) ?? 0;
|
|
55345
55476
|
return aIndex - bIndex;
|
|
55346
55477
|
});
|
|
55347
55478
|
|
|
55348
55479
|
// Elements without tabindex (preserving their original order)
|
|
55349
55480
|
const elementsWithoutTabindex = uniqueElements.filter((el) => {
|
|
55350
|
-
const tabindex = getNumericTabIndex$
|
|
55481
|
+
const tabindex = getNumericTabIndex$1$1(el);
|
|
55351
55482
|
|
|
55352
55483
|
// Elements without tabindex or with tabindex of 0 stay in DOM order
|
|
55353
55484
|
return tabindex === null || tabindex === 0;
|
|
@@ -56142,7 +56273,7 @@ let AuroHelpText$6 = class AuroHelpText extends i$2 {
|
|
|
56142
56273
|
}
|
|
56143
56274
|
};
|
|
56144
56275
|
|
|
56145
|
-
var formkitVersion$6 = '
|
|
56276
|
+
var formkitVersion$6 = '202609022200';
|
|
56146
56277
|
|
|
56147
56278
|
/**
|
|
56148
56279
|
* AuroElement is the shared base class for layout-aware Auro form components.
|
|
@@ -56442,7 +56573,7 @@ let AuroDropdown$2 = class AuroDropdown extends AuroElement$1$2 {
|
|
|
56442
56573
|
*/
|
|
56443
56574
|
focus() {
|
|
56444
56575
|
if (this.isPopoverVisible && this.bibContent) {
|
|
56445
|
-
const focusables = getFocusableElements$
|
|
56576
|
+
const focusables = getFocusableElements$1$1(this.bibContent);
|
|
56446
56577
|
if (focusables.length > 0) {
|
|
56447
56578
|
focusables[0].focus();
|
|
56448
56579
|
}
|
|
@@ -56474,7 +56605,7 @@ let AuroDropdown$2 = class AuroDropdown extends AuroElement$1$2 {
|
|
|
56474
56605
|
// wrappers like <div> containing a <button>). If none found, try
|
|
56475
56606
|
// focusing the element directly (works for custom elements like
|
|
56476
56607
|
// auro-input that have delegatesFocus or a custom focus() method).
|
|
56477
|
-
const descendants = getFocusableElements$
|
|
56608
|
+
const descendants = getFocusableElements$1$1(el);
|
|
56478
56609
|
if (descendants.length > 0) {
|
|
56479
56610
|
descendants[0].focus();
|
|
56480
56611
|
return;
|
|
@@ -56486,7 +56617,7 @@ let AuroDropdown$2 = class AuroDropdown extends AuroElement$1$2 {
|
|
|
56486
56617
|
}
|
|
56487
56618
|
}
|
|
56488
56619
|
// Fallback: try DOM children (non-slotted content)
|
|
56489
|
-
const focusables = getFocusableElements$
|
|
56620
|
+
const focusables = getFocusableElements$1$1(this.trigger);
|
|
56490
56621
|
if (focusables.length > 0) {
|
|
56491
56622
|
focusables[0].focus();
|
|
56492
56623
|
}
|
|
@@ -57165,7 +57296,7 @@ let AuroDropdown$2 = class AuroDropdown extends AuroElement$1$2 {
|
|
|
57165
57296
|
}
|
|
57166
57297
|
|
|
57167
57298
|
// Collect focusable elements from the bib content.
|
|
57168
|
-
const focusables = getFocusableElements$
|
|
57299
|
+
const focusables = getFocusableElements$1$1(this.bibContent);
|
|
57169
57300
|
|
|
57170
57301
|
// Fallback: try from slotted content directly
|
|
57171
57302
|
if (!focusables.length) {
|
|
@@ -57174,7 +57305,7 @@ let AuroDropdown$2 = class AuroDropdown extends AuroElement$1$2 {
|
|
|
57174
57305
|
|
|
57175
57306
|
for (const node of assignedNodes) {
|
|
57176
57307
|
if (node.nodeType === Node.ELEMENT_NODE) {
|
|
57177
|
-
focusables.push(...getFocusableElements$
|
|
57308
|
+
focusables.push(...getFocusableElements$1$1(node));
|
|
57178
57309
|
}
|
|
57179
57310
|
}
|
|
57180
57311
|
}
|
|
@@ -57234,7 +57365,7 @@ let AuroDropdown$2 = class AuroDropdown extends AuroElement$1$2 {
|
|
|
57234
57365
|
|
|
57235
57366
|
// Move initial focus into the bib content, matching FocusTrap behavior
|
|
57236
57367
|
requestAnimationFrame(() => {
|
|
57237
|
-
const focusables = getFocusableElements$
|
|
57368
|
+
const focusables = getFocusableElements$1$1(this.bibContent);
|
|
57238
57369
|
if (focusables.length) {
|
|
57239
57370
|
focusables[0].focus();
|
|
57240
57371
|
}
|
|
@@ -57247,7 +57378,7 @@ let AuroDropdown$2 = class AuroDropdown extends AuroElement$1$2 {
|
|
|
57247
57378
|
// popover asynchronously — a synchronous focus() would target
|
|
57248
57379
|
// zero-dimension elements and be silently ignored.
|
|
57249
57380
|
requestAnimationFrame(() => {
|
|
57250
|
-
const focusables = getFocusableElements$
|
|
57381
|
+
const focusables = getFocusableElements$1$1(this.bibContent);
|
|
57251
57382
|
if (focusables.length) {
|
|
57252
57383
|
focusables[0].focus();
|
|
57253
57384
|
}
|
|
@@ -57465,7 +57596,7 @@ let AuroDropdown$2 = class AuroDropdown extends AuroElement$1$2 {
|
|
|
57465
57596
|
if (triggerContentNodes) {
|
|
57466
57597
|
|
|
57467
57598
|
// See if any of them are focusable elements
|
|
57468
|
-
this.triggerContentFocusable = triggerContentNodes.some((node) => getFocusableElements$
|
|
57599
|
+
this.triggerContentFocusable = triggerContentNodes.some((node) => getFocusableElements$1$1(node).length > 0);
|
|
57469
57600
|
|
|
57470
57601
|
// If any of them are focusable elements
|
|
57471
57602
|
if (this.triggerContentFocusable) {
|
|
@@ -58227,9 +58358,241 @@ let AuroElement$4 = class AuroElement extends i$2 {
|
|
|
58227
58358
|
}
|
|
58228
58359
|
};
|
|
58229
58360
|
|
|
58361
|
+
// Selectors for focusable elements
|
|
58362
|
+
const FOCUSABLE_SELECTORS$3 = [
|
|
58363
|
+
"a[href]",
|
|
58364
|
+
"button:not([disabled])",
|
|
58365
|
+
"textarea:not([disabled])",
|
|
58366
|
+
"input:not([disabled])",
|
|
58367
|
+
"select:not([disabled])",
|
|
58368
|
+
'[role="tab"]:not([disabled])',
|
|
58369
|
+
'[role="link"]:not([disabled])',
|
|
58370
|
+
'[role="button"]:not([disabled])',
|
|
58371
|
+
'[tabindex]:not([tabindex="-1"])',
|
|
58372
|
+
'[contenteditable]:not([contenteditable="false"])',
|
|
58373
|
+
];
|
|
58374
|
+
|
|
58375
|
+
// List of custom components that are known to be focusable
|
|
58376
|
+
const FOCUSABLE_COMPONENTS$3 = [
|
|
58377
|
+
"auro-checkbox",
|
|
58378
|
+
"auro-radio",
|
|
58379
|
+
"auro-dropdown",
|
|
58380
|
+
"auro-button",
|
|
58381
|
+
"auro-combobox",
|
|
58382
|
+
"auro-input",
|
|
58383
|
+
"auro-counter",
|
|
58384
|
+
// 'auro-menu', // Auro menu is not focusable by default, it uses a different interaction model
|
|
58385
|
+
"auro-select",
|
|
58386
|
+
"auro-datepicker",
|
|
58387
|
+
"auro-hyperlink",
|
|
58388
|
+
"auro-accordion",
|
|
58389
|
+
];
|
|
58390
|
+
|
|
58391
|
+
/**
|
|
58392
|
+
* Determines if a given element is a custom focusable component.
|
|
58393
|
+
* Returns true if the element matches a known focusable component and is not disabled.
|
|
58394
|
+
*
|
|
58395
|
+
* @param {HTMLElement} element The element to check for focusability.
|
|
58396
|
+
* @returns {boolean} True if the element is a focusable custom component, false otherwise.
|
|
58397
|
+
*/
|
|
58398
|
+
function isFocusableComponent$3(element) {
|
|
58399
|
+
const componentName = element.tagName.toLowerCase();
|
|
58400
|
+
|
|
58401
|
+
// Guard Clause: Element is a focusable component
|
|
58402
|
+
if (
|
|
58403
|
+
!FOCUSABLE_COMPONENTS$3.some(
|
|
58404
|
+
(name) => element.hasAttribute(name) || componentName === name,
|
|
58405
|
+
)
|
|
58406
|
+
)
|
|
58407
|
+
return false;
|
|
58408
|
+
|
|
58409
|
+
// Guard Clause: Element is not disabled
|
|
58410
|
+
if (element.hasAttribute("disabled")) return false;
|
|
58411
|
+
|
|
58412
|
+
// Guard Clause: The element is a hyperlink and has no href attribute
|
|
58413
|
+
if (componentName.match("hyperlink") && !element.hasAttribute("href"))
|
|
58414
|
+
return false;
|
|
58415
|
+
|
|
58416
|
+
// If all guard clauses pass, the element is a focusable component
|
|
58417
|
+
return true;
|
|
58418
|
+
}
|
|
58419
|
+
|
|
58420
|
+
/**
|
|
58421
|
+
* Safely get a numeric tabindex for an element.
|
|
58422
|
+
* Returns a number if the tabindex is a valid integer, otherwise null.
|
|
58423
|
+
*
|
|
58424
|
+
* @param {HTMLElement} element The element whose tabindex to read.
|
|
58425
|
+
* @returns {?number} The numeric tabindex or null if missing/invalid.
|
|
58426
|
+
*/
|
|
58427
|
+
function getNumericTabIndex$3(element) {
|
|
58428
|
+
const raw = element.getAttribute("tabindex");
|
|
58429
|
+
if (raw == null) return null;
|
|
58430
|
+
|
|
58431
|
+
const value = Number.parseInt(raw, 10);
|
|
58432
|
+
return Number.isNaN(value) ? null : value;
|
|
58433
|
+
}
|
|
58434
|
+
|
|
58435
|
+
/**
|
|
58436
|
+
* Retrieves all focusable elements within the container in DOM order, including those in shadow DOM and slots.
|
|
58437
|
+
* Returns a unique, ordered array of elements that can receive focus.
|
|
58438
|
+
* Also sorts elements with tabindex first, preserving their order.
|
|
58439
|
+
*
|
|
58440
|
+
* @param {HTMLElement} container The container to search within
|
|
58441
|
+
* @returns {Array<HTMLElement>} An array of focusable elements within the container.
|
|
58442
|
+
*/
|
|
58443
|
+
function getFocusableElements$3(container) {
|
|
58444
|
+
// Get elements in DOM order by walking the tree
|
|
58445
|
+
const orderedFocusableElements = [];
|
|
58446
|
+
|
|
58447
|
+
// Define a recursive function to collect focusable elements in DOM order
|
|
58448
|
+
const collectFocusableElements = (root) => {
|
|
58449
|
+
// Check if current element is focusable
|
|
58450
|
+
if (root.nodeType === Node.ELEMENT_NODE) {
|
|
58451
|
+
// Check if this is a custom component that is focusable
|
|
58452
|
+
const isComponentFocusable = isFocusableComponent$3(root);
|
|
58453
|
+
|
|
58454
|
+
if (isComponentFocusable) {
|
|
58455
|
+
// Add the component itself as a focusable element and don't traverse its shadow DOM
|
|
58456
|
+
orderedFocusableElements.push(root);
|
|
58457
|
+
return; // Skip traversing inside this component
|
|
58458
|
+
}
|
|
58459
|
+
|
|
58460
|
+
// Check if the element itself matches any selector
|
|
58461
|
+
for (const selector of FOCUSABLE_SELECTORS$3) {
|
|
58462
|
+
if (root.matches?.(selector)) {
|
|
58463
|
+
orderedFocusableElements.push(root);
|
|
58464
|
+
break; // Once we know it's focusable, no need to check other selectors
|
|
58465
|
+
}
|
|
58466
|
+
}
|
|
58467
|
+
|
|
58468
|
+
// Process shadow DOM only for non-Auro components
|
|
58469
|
+
if (root.shadowRoot) {
|
|
58470
|
+
// Process shadow DOM children in order
|
|
58471
|
+
if (root.shadowRoot.children) {
|
|
58472
|
+
Array.from(root.shadowRoot.children).forEach((child) => {
|
|
58473
|
+
collectFocusableElements(child);
|
|
58474
|
+
});
|
|
58475
|
+
}
|
|
58476
|
+
}
|
|
58477
|
+
|
|
58478
|
+
// Process slots and their assigned nodes in order
|
|
58479
|
+
if (root.tagName === "SLOT") {
|
|
58480
|
+
const assignedNodes = root.assignedNodes({ flatten: true });
|
|
58481
|
+
for (const node of assignedNodes) {
|
|
58482
|
+
collectFocusableElements(node);
|
|
58483
|
+
}
|
|
58484
|
+
} else {
|
|
58485
|
+
// Process light DOM children in order
|
|
58486
|
+
if (root.children) {
|
|
58487
|
+
Array.from(root.children).forEach((child) => {
|
|
58488
|
+
collectFocusableElements(child);
|
|
58489
|
+
});
|
|
58490
|
+
}
|
|
58491
|
+
}
|
|
58492
|
+
}
|
|
58493
|
+
};
|
|
58494
|
+
|
|
58495
|
+
// Start the traversal from the container
|
|
58496
|
+
collectFocusableElements(container);
|
|
58497
|
+
|
|
58498
|
+
// Remove duplicates that might have been collected through different paths
|
|
58499
|
+
// while preserving order
|
|
58500
|
+
const uniqueElements = [];
|
|
58501
|
+
const seen = new Set();
|
|
58502
|
+
|
|
58503
|
+
for (const element of orderedFocusableElements) {
|
|
58504
|
+
if (!seen.has(element)) {
|
|
58505
|
+
seen.add(element);
|
|
58506
|
+
uniqueElements.push(element);
|
|
58507
|
+
}
|
|
58508
|
+
}
|
|
58509
|
+
|
|
58510
|
+
// Move tab-indexed elements to the front while preserving their order
|
|
58511
|
+
// This ensures that elements with tabindex are prioritized in the focus order
|
|
58512
|
+
|
|
58513
|
+
// First extract elements with valid positive tabindex
|
|
58514
|
+
const elementsWithTabindex = uniqueElements.filter((el) => {
|
|
58515
|
+
const tabindex = getNumericTabIndex$3(el);
|
|
58516
|
+
return tabindex !== null && tabindex > 0;
|
|
58517
|
+
});
|
|
58518
|
+
|
|
58519
|
+
// Sort these elements by their tabindex value
|
|
58520
|
+
elementsWithTabindex.sort((a, b) => {
|
|
58521
|
+
const aIndex = getNumericTabIndex$3(a) ?? 0;
|
|
58522
|
+
const bIndex = getNumericTabIndex$3(b) ?? 0;
|
|
58523
|
+
return aIndex - bIndex;
|
|
58524
|
+
});
|
|
58525
|
+
|
|
58526
|
+
// Elements without tabindex (preserving their original order)
|
|
58527
|
+
const elementsWithoutTabindex = uniqueElements.filter((el) => {
|
|
58528
|
+
const tabindex = getNumericTabIndex$3(el);
|
|
58529
|
+
|
|
58530
|
+
// Elements without tabindex or with tabindex of 0 stay in DOM order
|
|
58531
|
+
return tabindex === null || tabindex === 0;
|
|
58532
|
+
});
|
|
58533
|
+
|
|
58534
|
+
// Combine both arrays with tabindex elements first
|
|
58535
|
+
const tabIndexedUniqueElements = [
|
|
58536
|
+
...elementsWithTabindex,
|
|
58537
|
+
...elementsWithoutTabindex,
|
|
58538
|
+
];
|
|
58539
|
+
|
|
58540
|
+
return tabIndexedUniqueElements;
|
|
58541
|
+
}
|
|
58542
|
+
|
|
58230
58543
|
// Copyright (c) 2026 Alaska Airlines. All rights reserved. Licensed under the Apache-2.0 license
|
|
58231
58544
|
// See LICENSE in the project root for license information.
|
|
58232
58545
|
|
|
58546
|
+
|
|
58547
|
+
/**
|
|
58548
|
+
* Whether `el` is currently visible enough to receive focus. Prefers the
|
|
58549
|
+
* browser's `checkVisibility()`; otherwise combines a display/visibility check
|
|
58550
|
+
* with an ancestor-hidden probe that keeps position:fixed elements visible.
|
|
58551
|
+
* @param {Element} el - The element to test.
|
|
58552
|
+
* @returns {boolean}
|
|
58553
|
+
*/
|
|
58554
|
+
function isVisibleForFocus$1(el) {
|
|
58555
|
+
if (typeof el.checkVisibility === 'function') {
|
|
58556
|
+
return el.checkVisibility();
|
|
58557
|
+
}
|
|
58558
|
+
const style = el.ownerDocument.defaultView.getComputedStyle(el);
|
|
58559
|
+
if (style.display === 'none' || style.visibility === 'hidden') {
|
|
58560
|
+
return false;
|
|
58561
|
+
}
|
|
58562
|
+
return el.offsetParent !== null || style.position === 'fixed';
|
|
58563
|
+
}
|
|
58564
|
+
|
|
58565
|
+
/**
|
|
58566
|
+
* Return the tab stop that comes before the counter-group in page tab order,
|
|
58567
|
+
* skipping any hidden entries the walker doesn't filter itself. The group host
|
|
58568
|
+
* itself is not a tab stop; its focusables (the internal dropdown and the
|
|
58569
|
+
* counters) are, so anchor the search on the group's earliest focusable.
|
|
58570
|
+
* @param {Element} component - The auro-counter-group host element.
|
|
58571
|
+
* @returns {Element|null}
|
|
58572
|
+
*/
|
|
58573
|
+
function getPreviousTabStop$1(component) {
|
|
58574
|
+
const tabStops = getFocusableElements$3(component.ownerDocument.body);
|
|
58575
|
+
const counters = component.counters || [];
|
|
58576
|
+
const owned = [
|
|
58577
|
+
component,
|
|
58578
|
+
component.dropdown,
|
|
58579
|
+
...counters
|
|
58580
|
+
].filter(Boolean);
|
|
58581
|
+
let groupStart = tabStops.length;
|
|
58582
|
+
owned.forEach((node) => {
|
|
58583
|
+
const index = tabStops.indexOf(node);
|
|
58584
|
+
if (index >= 0 && index < groupStart) {
|
|
58585
|
+
groupStart = index;
|
|
58586
|
+
}
|
|
58587
|
+
});
|
|
58588
|
+
for (let index = groupStart - 1; index >= 0; index -= 1) {
|
|
58589
|
+
if (isVisibleForFocus$1(tabStops[index])) {
|
|
58590
|
+
return tabStops[index];
|
|
58591
|
+
}
|
|
58592
|
+
}
|
|
58593
|
+
return null;
|
|
58594
|
+
}
|
|
58595
|
+
|
|
58233
58596
|
const counterGroupKeyboardStrategy = {
|
|
58234
58597
|
Escape(component, evt) {
|
|
58235
58598
|
if (!component.dropdown || !component.dropdown.isPopoverVisible) {
|
|
@@ -58243,6 +58606,48 @@ const counterGroupKeyboardStrategy = {
|
|
|
58243
58606
|
|
|
58244
58607
|
component.dropdown.hide();
|
|
58245
58608
|
},
|
|
58609
|
+
|
|
58610
|
+
Tab(component, evt, ctx) {
|
|
58611
|
+
// Forward Tab already exits past the bib content and the focusout handler
|
|
58612
|
+
// closes the bib. Fullscreen relies on the dialog's native focus trapping.
|
|
58613
|
+
if (!ctx.isExpanded || ctx.isModal || !evt.shiftKey) {
|
|
58614
|
+
return;
|
|
58615
|
+
}
|
|
58616
|
+
|
|
58617
|
+
// The trigger precedes the bib content in the flattened tab order, so a
|
|
58618
|
+
// native Shift+Tab off the first counter lands back on the trigger and
|
|
58619
|
+
// leaves the bib open. Only intercept when focus is on the first focusable
|
|
58620
|
+
// in the bib; otherwise let the browser move to the previous counter.
|
|
58621
|
+
// `composedPath()` reports the real event origin through every shadow
|
|
58622
|
+
// boundary, unlike `document.activeElement`, which retargets to the first
|
|
58623
|
+
// slotted counter and cannot tell the counters apart.
|
|
58624
|
+
const focusables = getFocusableElements$3(component.dropdown.bibContent);
|
|
58625
|
+
if (!focusables.length) {
|
|
58626
|
+
return;
|
|
58627
|
+
}
|
|
58628
|
+
|
|
58629
|
+
const path = evt.composedPath();
|
|
58630
|
+
const activeIndex = focusables.findIndex((el) => path.includes(el));
|
|
58631
|
+
if (activeIndex !== 0) {
|
|
58632
|
+
return;
|
|
58633
|
+
}
|
|
58634
|
+
|
|
58635
|
+
const previousTabStop = getPreviousTabStop$1(component);
|
|
58636
|
+
|
|
58637
|
+
// Always suppress the native Shift+Tab. Otherwise it fires against the bib
|
|
58638
|
+
// as it is torn down and lands focus on the trigger (which precedes the
|
|
58639
|
+
// first counter), re-opening the exact loop this handler prevents. When
|
|
58640
|
+
// nothing precedes the group, focus falls to the body instead of the
|
|
58641
|
+
// trigger, which reads as exiting the group backward.
|
|
58642
|
+
evt.preventDefault();
|
|
58643
|
+
component.hideBib();
|
|
58644
|
+
|
|
58645
|
+
if (!previousTabStop) {
|
|
58646
|
+
return;
|
|
58647
|
+
}
|
|
58648
|
+
|
|
58649
|
+
doubleRaf$2(() => previousTabStop.focus());
|
|
58650
|
+
},
|
|
58246
58651
|
};
|
|
58247
58652
|
|
|
58248
58653
|
/* eslint-disable lit/no-invalid-html, lit/binding-positions, max-lines, no-underscore-dangle, arrow-parens, no-confusing-arrow, curly, dot-location, no-inline-comments, line-comment-position,
|
|
@@ -60327,7 +60732,7 @@ let AuroHelpText$5 = class AuroHelpText extends i$2 {
|
|
|
60327
60732
|
}
|
|
60328
60733
|
};
|
|
60329
60734
|
|
|
60330
|
-
var formkitVersion$5 = '
|
|
60735
|
+
var formkitVersion$5 = '202609022200';
|
|
60331
60736
|
|
|
60332
60737
|
// Copyright (c) Alaska Air. All right reserved. Licensed under the Apache-2.0 license
|
|
60333
60738
|
// See LICENSE in the project root for license information.
|
|
@@ -62121,7 +62526,7 @@ let AuroHelpText$4 = class AuroHelpText extends i$2 {
|
|
|
62121
62526
|
}
|
|
62122
62527
|
};
|
|
62123
62528
|
|
|
62124
|
-
var formkitVersion$4 = '
|
|
62529
|
+
var formkitVersion$4 = '202609022200';
|
|
62125
62530
|
|
|
62126
62531
|
// Copyright (c) 2026 Alaska Airlines. All rights reserved. Licensed under the Apache-2.0 license
|
|
62127
62532
|
// See LICENSE in the project root for license information.
|
|
@@ -65485,6 +65890,48 @@ const computePosition$2 = (reference, floating, options) => {
|
|
|
65485
65890
|
});
|
|
65486
65891
|
};
|
|
65487
65892
|
|
|
65893
|
+
/**
|
|
65894
|
+
* Generates a v4 UUID with a three-tier fallback for insecure contexts.
|
|
65895
|
+
*
|
|
65896
|
+
* Tier 1 (secure contexts): crypto.randomUUID() — native, fully random.
|
|
65897
|
+
* Tier 2 (insecure contexts): crypto.getRandomValues() — available on all
|
|
65898
|
+
* modern browsers regardless of secure-context status.
|
|
65899
|
+
* Tier 3 (last resort, no crypto API): new Date().getTime() — lower entropy,
|
|
65900
|
+
* but sufficient for element IDs where collision risk is negligible.
|
|
65901
|
+
*
|
|
65902
|
+
* See: https://w3c.github.io/webcrypto/#dom-crypto-randomuuid (secure-context restriction)
|
|
65903
|
+
*/
|
|
65904
|
+
function generateUUID$1() {
|
|
65905
|
+
let uuid;
|
|
65906
|
+
|
|
65907
|
+
if (
|
|
65908
|
+
typeof crypto !== "undefined" &&
|
|
65909
|
+
typeof crypto.randomUUID === "function"
|
|
65910
|
+
) {
|
|
65911
|
+
uuid = crypto.randomUUID();
|
|
65912
|
+
} else if (
|
|
65913
|
+
typeof crypto !== "undefined" &&
|
|
65914
|
+
typeof crypto.getRandomValues === "function"
|
|
65915
|
+
) {
|
|
65916
|
+
const bytes = new Uint8Array(16);
|
|
65917
|
+
crypto.getRandomValues(bytes);
|
|
65918
|
+
bytes[6] = (bytes[6] & 0x0f) | 0x40;
|
|
65919
|
+
bytes[8] = (bytes[8] & 0x3f) | 0x80;
|
|
65920
|
+
const hex = Array.from(bytes).map((b) => b.toString(16).padStart(2, "0"));
|
|
65921
|
+
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("")}`;
|
|
65922
|
+
} else {
|
|
65923
|
+
let d = new Date().getTime();
|
|
65924
|
+
uuid = "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, (c) => {
|
|
65925
|
+
const r = (d % 16) | 0;
|
|
65926
|
+
d = (d - r) / 16 || new Date().getTime();
|
|
65927
|
+
return (c === "x" ? r : (r & 0x3) | 0x8).toString(16);
|
|
65928
|
+
});
|
|
65929
|
+
}
|
|
65930
|
+
|
|
65931
|
+
// CSS selectors require IDs starting with a letter; replace a leading digit with 'a'.
|
|
65932
|
+
return /^[0-9]/.test(uuid) ? `a${uuid.slice(1)}` : uuid;
|
|
65933
|
+
}
|
|
65934
|
+
|
|
65488
65935
|
/* eslint-disable line-comment-position, no-inline-comments */
|
|
65489
65936
|
|
|
65490
65937
|
|
|
@@ -66503,7 +66950,7 @@ let AuroFloatingUI$1 = class AuroFloatingUI {
|
|
|
66503
66950
|
|
|
66504
66951
|
this.id = element.getAttribute("id");
|
|
66505
66952
|
if (!this.id) {
|
|
66506
|
-
this.id =
|
|
66953
|
+
this.id = generateUUID$1();
|
|
66507
66954
|
element.setAttribute("id", this.id);
|
|
66508
66955
|
}
|
|
66509
66956
|
|
|
@@ -67548,7 +67995,7 @@ let AuroHelpText$2 = class AuroHelpText extends i$2 {
|
|
|
67548
67995
|
}
|
|
67549
67996
|
};
|
|
67550
67997
|
|
|
67551
|
-
var formkitVersion$2 = '
|
|
67998
|
+
var formkitVersion$2 = '202609022200';
|
|
67552
67999
|
|
|
67553
68000
|
/**
|
|
67554
68001
|
* AuroElement is the shared base class for layout-aware Auro form components.
|
|
@@ -81410,7 +81857,7 @@ let AuroHelpText$1$1 = class AuroHelpText extends i$2 {
|
|
|
81410
81857
|
}
|
|
81411
81858
|
};
|
|
81412
81859
|
|
|
81413
|
-
var formkitVersion$1$1 = '
|
|
81860
|
+
var formkitVersion$1$1 = '202609022200';
|
|
81414
81861
|
|
|
81415
81862
|
// Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
|
|
81416
81863
|
// See LICENSE in the project root for license information.
|
|
@@ -82602,7 +83049,7 @@ let AuroBibtemplate$1 = class AuroBibtemplate extends i$2 {
|
|
|
82602
83049
|
}
|
|
82603
83050
|
};
|
|
82604
83051
|
|
|
82605
|
-
var formkitVersion$3 = '
|
|
83052
|
+
var formkitVersion$3 = '202609022200';
|
|
82606
83053
|
|
|
82607
83054
|
var styleCss$1$3 = i$4`.util_displayInline{display:inline}.util_displayInlineBlock{display:inline-block}.util_displayBlock{display:block}.util_displayFlex{display:flex}.util_displayHidden{display:none}.util_displayHiddenVisually{position:absolute;overflow:hidden;clip:rect(1px, 1px, 1px, 1px);width:1px;height:1px;padding:0;border:0}:host{display:block;text-align:left}:host [auro-dropdown]{--ds-auro-dropdown-trigger-background-color: transparent}:host #inputInBib::part(wrapper){box-shadow:none}:host #inputInBib::part(accent-left){display:none}:host([layout*=classic]) [auro-input]{width:100%}:host([layout*=classic]) [auro-input]::part(helpText){display:none}:host([layout*=classic]) #slotHolder{display:none}`;
|
|
82608
83055
|
|
|
@@ -83043,6 +83490,11 @@ class AuroCombobox extends AuroElement$3 {
|
|
|
83043
83490
|
this.behavior = "suggestion";
|
|
83044
83491
|
this.clearBtnFocused = false;
|
|
83045
83492
|
|
|
83493
|
+
// One-shot: set when the input's clear button is activated so the
|
|
83494
|
+
// SPA-preselect guard in handleInputValueChange doesn't swallow the
|
|
83495
|
+
// genuine clear (AB#1634257).
|
|
83496
|
+
this._clearBtnActivated = false;
|
|
83497
|
+
|
|
83046
83498
|
// Defaults that effect the overall layout of the combobox
|
|
83047
83499
|
this.checkmark = false;
|
|
83048
83500
|
this.dvInputOnly = false;
|
|
@@ -84000,6 +84452,13 @@ class AuroCombobox extends AuroElement$3 {
|
|
|
84000
84452
|
this.bibtemplate = this.dropdown.querySelector(this.bibtemplateTag._$litStatic$);
|
|
84001
84453
|
this.inputInBib = this.bibtemplate.querySelector(this.inputTag._$litStatic$);
|
|
84002
84454
|
|
|
84455
|
+
// Mirror the trigger's clear-button tracking onto the fullscreen bib input
|
|
84456
|
+
// so clearing there also fully resets the combobox (AB#1634257). See
|
|
84457
|
+
// trackClearBtnActivation for why this must run in the capture phase.
|
|
84458
|
+
if (this.inputInBib && this.inputInBib !== this.input) {
|
|
84459
|
+
this.trackClearBtnActivation(this.inputInBib);
|
|
84460
|
+
}
|
|
84461
|
+
|
|
84003
84462
|
// Pass label text to the dropdown bib for accessible dialog naming
|
|
84004
84463
|
const labelElement = this.querySelector('[slot="label"]');
|
|
84005
84464
|
if (labelElement) {
|
|
@@ -84385,6 +84844,52 @@ class AuroCombobox extends AuroElement$3 {
|
|
|
84385
84844
|
this.clearBtnFocused = false;
|
|
84386
84845
|
}
|
|
84387
84846
|
});
|
|
84847
|
+
|
|
84848
|
+
this.trackClearBtnActivation(this.input);
|
|
84849
|
+
}
|
|
84850
|
+
|
|
84851
|
+
/**
|
|
84852
|
+
* Flags genuine clear-button activations on an auro-input so the SPA-preselect
|
|
84853
|
+
* guard in handleInputValueChange doesn't swallow them.
|
|
84854
|
+
*
|
|
84855
|
+
* The auro-input clear button fires an `isProgrammatic` input event (via
|
|
84856
|
+
* notifyValueChanged) that is indistinguishable in shape from the
|
|
84857
|
+
* SPA-preselect echo that guard bails on (isProgrammatic + set value + empty
|
|
84858
|
+
* input). Without this one-shot flag, clicking clear would leave
|
|
84859
|
+
* this.value/optionSelected stale (AB#1634257).
|
|
84860
|
+
*
|
|
84861
|
+
* Delegated on the shadow root so it works regardless of when .clearBtn
|
|
84862
|
+
* renders (it only exists after a value is set), and covers both real clicks
|
|
84863
|
+
* and programmatic clearBtn.click() (which no focusin precedes). Registered in
|
|
84864
|
+
* the CAPTURE phase so the flag is set BEFORE the button's own @click
|
|
84865
|
+
* (handleClickClear) fires its synchronous input event — which is when
|
|
84866
|
+
* handleInputValueChange reads the flag.
|
|
84867
|
+
* @private
|
|
84868
|
+
* @param {Element} inputEl - The auro-input whose clear button to track.
|
|
84869
|
+
* @returns {void}
|
|
84870
|
+
*/
|
|
84871
|
+
trackClearBtnActivation(inputEl) {
|
|
84872
|
+
if (!inputEl || !inputEl.shadowRoot) {
|
|
84873
|
+
return;
|
|
84874
|
+
}
|
|
84875
|
+
inputEl.shadowRoot.addEventListener('click', (event) => {
|
|
84876
|
+
if (event.target.closest('.clearBtn')) {
|
|
84877
|
+
this._clearBtnActivated = true;
|
|
84878
|
+
|
|
84879
|
+
// Bound the flag's lifetime to this synchronous clear -> input window.
|
|
84880
|
+
// auro-input's handleClickClear fires its input event synchronously
|
|
84881
|
+
// (before any macrotask runs), so handleInputValueChange consumes the
|
|
84882
|
+
// flag first and this reset is a harmless no-op. It only does real work
|
|
84883
|
+
// if that input event never arrives (e.g. auro-input throws mid-clear),
|
|
84884
|
+
// guaranteeing the flag can't survive to be misread as a genuine clear
|
|
84885
|
+
// by a later unrelated event such as an SPA-preselect echo (AB#1634257).
|
|
84886
|
+
// Scheduled via _scheduleTimer so disconnectedCallback cancels it if the
|
|
84887
|
+
// component tears down inside that window.
|
|
84888
|
+
this._scheduleTimer(() => {
|
|
84889
|
+
this._clearBtnActivated = false;
|
|
84890
|
+
}, 0);
|
|
84891
|
+
}
|
|
84892
|
+
}, true);
|
|
84388
84893
|
}
|
|
84389
84894
|
|
|
84390
84895
|
/**
|
|
@@ -84426,6 +84931,17 @@ class AuroCombobox extends AuroElement$3 {
|
|
|
84426
84931
|
* @returns {void}
|
|
84427
84932
|
*/
|
|
84428
84933
|
handleInputValueChange(event) {
|
|
84934
|
+
// Consume the one-shot clear-button flag on EVERY entry, before any branch
|
|
84935
|
+
// below can early-return. trackClearBtnActivation sets it in the capture
|
|
84936
|
+
// phase right before auro-input's clear button fires its synchronous input
|
|
84937
|
+
// event; reading and immediately clearing it here guarantees the flag never
|
|
84938
|
+
// survives a handleInputValueChange call to leak into a later event (e.g.
|
|
84939
|
+
// the bib branch bailing at _syncingDisplayValue, or an SPA-preselect echo)
|
|
84940
|
+
// where it would defeat the guard below. Held in a local so that guard can
|
|
84941
|
+
// still tell a genuine clear from the init-render echo (AB#1634257).
|
|
84942
|
+
const clearBtnActivated = this._clearBtnActivated;
|
|
84943
|
+
this._clearBtnActivated = false;
|
|
84944
|
+
|
|
84429
84945
|
// When the event comes from the fullscreen bib input, sync the value to
|
|
84430
84946
|
// the trigger input. Setting trigger.value triggers Lit's updated()
|
|
84431
84947
|
// (async, microtask) which fires notifyValueChanged() → another 'input'
|
|
@@ -84473,7 +84989,12 @@ class AuroCombobox extends AuroElement$3 {
|
|
|
84473
84989
|
// to the exact shape of that echo (isProgrammatic + non-empty combobox
|
|
84474
84990
|
// value + empty input.value) so it doesn't affect the swap/typed paths
|
|
84475
84991
|
// where value/input already track each other through the sync helpers.
|
|
84476
|
-
|
|
84992
|
+
// The clear button's echo has the same shape (isProgrammatic + set value +
|
|
84993
|
+
// empty input) but is a genuine user clear that MUST reset this.value and
|
|
84994
|
+
// optionSelected below. clearBtnActivated (consumed at the top of this
|
|
84995
|
+
// method) is true only for that genuine clear, so only the real
|
|
84996
|
+
// SPA-preselect echo bails (AB#1634257).
|
|
84997
|
+
if (event && event.isProgrammatic && this.value && !this.input.value && !clearBtnActivated) {
|
|
84477
84998
|
return;
|
|
84478
84999
|
}
|
|
84479
85000
|
|
|
@@ -84618,6 +85139,14 @@ class AuroCombobox extends AuroElement$3 {
|
|
|
84618
85139
|
// retry would otherwise keep rescheduling itself indefinitely.
|
|
84619
85140
|
this._pendingTimers.forEach((id) => clearTimeout(id));
|
|
84620
85141
|
this._pendingTimers.clear();
|
|
85142
|
+
|
|
85143
|
+
// Cancelling the timers above drops the macrotask that would have reset
|
|
85144
|
+
// _clearBtnActivated, so reset it here too. Otherwise a disconnect inside
|
|
85145
|
+
// the clear-click -> macrotask window strands the flag `true`; instance
|
|
85146
|
+
// state survives reconnect, and the first matching input event (including
|
|
85147
|
+
// an SPA-preselect echo) would then bypass the guard in
|
|
85148
|
+
// handleInputValueChange and silently clear value/optionSelected (AB#1634257).
|
|
85149
|
+
this._clearBtnActivated = false;
|
|
84621
85150
|
}
|
|
84622
85151
|
|
|
84623
85152
|
firstUpdated() {
|
|
@@ -84716,6 +85245,14 @@ class AuroCombobox extends AuroElement$3 {
|
|
|
84716
85245
|
}
|
|
84717
85246
|
if (this.menu.value || this.menu.optionSelected) {
|
|
84718
85247
|
this.menu.reset();
|
|
85248
|
+
} else {
|
|
85249
|
+
// The menu's selection properties are already cleared, but option
|
|
85250
|
+
// elements can still carry a stale `selected` attribute (e.g. the menu
|
|
85251
|
+
// options were rebuilt after the value was set, orphaning the DOM from
|
|
85252
|
+
// the now-null optionSelected). reset() is skipped above in that case,
|
|
85253
|
+
// so re-sync the option DOM directly to guarantee no option renders as
|
|
85254
|
+
// selected once the field is cleared (AB#1634259).
|
|
85255
|
+
this.menu.clearSelection();
|
|
84719
85256
|
}
|
|
84720
85257
|
} finally {
|
|
84721
85258
|
this._clearing = false;
|
|
@@ -86350,6 +86887,22 @@ class AuroMenu extends AuroElement$2 {
|
|
|
86350
86887
|
this.value = undefined;
|
|
86351
86888
|
this._selectedKey = undefined;
|
|
86352
86889
|
this._index = -1;
|
|
86890
|
+
|
|
86891
|
+
// Eagerly sync the option DOM to the now-empty selection. Nulling the
|
|
86892
|
+
// reactive properties above normally schedules updated() → updateItemsState,
|
|
86893
|
+
// but that only runs when a property actually changes. If an option still
|
|
86894
|
+
// carries a stale `selected`/`aria-selected` attribute while these
|
|
86895
|
+
// properties are already undefined (e.g. options were rebuilt after a value
|
|
86896
|
+
// was set), no re-render fires and the option keeps rendering as selected.
|
|
86897
|
+
// Strip that state now so no option looks selected after a clear (AB#1634259).
|
|
86898
|
+
// Intentionally leaves `active`/`optionActive` untouched so a highlighted
|
|
86899
|
+
// option remains keyboard-re-selectable after emptying the value (AB#1606433).
|
|
86900
|
+
this.updateItemsState(new Map([
|
|
86901
|
+
[
|
|
86902
|
+
'optionSelected',
|
|
86903
|
+
true
|
|
86904
|
+
]
|
|
86905
|
+
]));
|
|
86353
86906
|
}
|
|
86354
86907
|
|
|
86355
86908
|
/**
|
|
@@ -89970,6 +90523,48 @@ const computePosition = (reference, floating, options) => {
|
|
|
89970
90523
|
});
|
|
89971
90524
|
};
|
|
89972
90525
|
|
|
90526
|
+
/**
|
|
90527
|
+
* Generates a v4 UUID with a three-tier fallback for insecure contexts.
|
|
90528
|
+
*
|
|
90529
|
+
* Tier 1 (secure contexts): crypto.randomUUID() — native, fully random.
|
|
90530
|
+
* Tier 2 (insecure contexts): crypto.getRandomValues() — available on all
|
|
90531
|
+
* modern browsers regardless of secure-context status.
|
|
90532
|
+
* Tier 3 (last resort, no crypto API): new Date().getTime() — lower entropy,
|
|
90533
|
+
* but sufficient for element IDs where collision risk is negligible.
|
|
90534
|
+
*
|
|
90535
|
+
* See: https://w3c.github.io/webcrypto/#dom-crypto-randomuuid (secure-context restriction)
|
|
90536
|
+
*/
|
|
90537
|
+
function generateUUID() {
|
|
90538
|
+
let uuid;
|
|
90539
|
+
|
|
90540
|
+
if (
|
|
90541
|
+
typeof crypto !== "undefined" &&
|
|
90542
|
+
typeof crypto.randomUUID === "function"
|
|
90543
|
+
) {
|
|
90544
|
+
uuid = crypto.randomUUID();
|
|
90545
|
+
} else if (
|
|
90546
|
+
typeof crypto !== "undefined" &&
|
|
90547
|
+
typeof crypto.getRandomValues === "function"
|
|
90548
|
+
) {
|
|
90549
|
+
const bytes = new Uint8Array(16);
|
|
90550
|
+
crypto.getRandomValues(bytes);
|
|
90551
|
+
bytes[6] = (bytes[6] & 0x0f) | 0x40;
|
|
90552
|
+
bytes[8] = (bytes[8] & 0x3f) | 0x80;
|
|
90553
|
+
const hex = Array.from(bytes).map((b) => b.toString(16).padStart(2, "0"));
|
|
90554
|
+
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("")}`;
|
|
90555
|
+
} else {
|
|
90556
|
+
let d = new Date().getTime();
|
|
90557
|
+
uuid = "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, (c) => {
|
|
90558
|
+
const r = (d % 16) | 0;
|
|
90559
|
+
d = (d - r) / 16 || new Date().getTime();
|
|
90560
|
+
return (c === "x" ? r : (r & 0x3) | 0x8).toString(16);
|
|
90561
|
+
});
|
|
90562
|
+
}
|
|
90563
|
+
|
|
90564
|
+
// CSS selectors require IDs starting with a letter; replace a leading digit with 'a'.
|
|
90565
|
+
return /^[0-9]/.test(uuid) ? `a${uuid.slice(1)}` : uuid;
|
|
90566
|
+
}
|
|
90567
|
+
|
|
89973
90568
|
/* eslint-disable line-comment-position, no-inline-comments */
|
|
89974
90569
|
|
|
89975
90570
|
|
|
@@ -90988,7 +91583,7 @@ class AuroFloatingUI {
|
|
|
90988
91583
|
|
|
90989
91584
|
this.id = element.getAttribute("id");
|
|
90990
91585
|
if (!this.id) {
|
|
90991
|
-
this.id =
|
|
91586
|
+
this.id = generateUUID();
|
|
90992
91587
|
element.setAttribute("id", this.id);
|
|
90993
91588
|
}
|
|
90994
91589
|
|
|
@@ -92033,7 +92628,7 @@ let AuroHelpText$1 = class AuroHelpText extends i$2 {
|
|
|
92033
92628
|
}
|
|
92034
92629
|
};
|
|
92035
92630
|
|
|
92036
|
-
var formkitVersion$1 = '
|
|
92631
|
+
var formkitVersion$1 = '202609022200';
|
|
92037
92632
|
|
|
92038
92633
|
/**
|
|
92039
92634
|
* AuroElement is the shared base class for layout-aware Auro form components.
|
|
@@ -94206,7 +94801,7 @@ class AuroHelpText extends i$2 {
|
|
|
94206
94801
|
}
|
|
94207
94802
|
}
|
|
94208
94803
|
|
|
94209
|
-
var formkitVersion = '
|
|
94804
|
+
var formkitVersion = '202609022200';
|
|
94210
94805
|
|
|
94211
94806
|
var styleCss = i$4`.util_displayInline{display:inline}.util_displayInlineBlock{display:inline-block}.util_displayBlock{display:block}.util_displayFlex{display:flex}.util_displayHidden{display:none}.util_displayHiddenVisually{position:absolute;overflow:hidden;clip:rect(1px, 1px, 1px, 1px);width:1px;height:1px;padding:0;border:0}.body-default{font-size:var(--wcss-body-default-font-size, 1rem);font-weight:var(--wcss-body-default-weight, );line-height:var(--wcss-body-default-line-height, 1.5rem)}.body-default,.body-default-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-default-emphasized{font-size:var(--wcss-body-default-emphasized-font-size, 1rem);font-weight:var(--wcss-body-default-emphasized-weight, );line-height:var(--wcss-body-default-emphasized-line-height, 1.5rem)}.body-lg{font-size:var(--wcss-body-lg-font-size, 1.125rem);font-weight:var(--wcss-body-lg-weight, );line-height:var(--wcss-body-lg-line-height, 1.625rem)}.body-lg,.body-lg-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-lg-emphasized{font-size:var(--wcss-body-lg-emphasized-font-size, 1.125rem);font-weight:var(--wcss-body-lg-emphasized-weight, );line-height:var(--wcss-body-lg-emphasized-line-height, 1.625rem)}.body-sm{font-size:var(--wcss-body-sm-font-size, 0.875rem);font-weight:var(--wcss-body-sm-weight, );line-height:var(--wcss-body-sm-line-height, 1.25rem)}.body-sm,.body-sm-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-sm-emphasized{font-size:var(--wcss-body-sm-emphasized-font-size, 0.875rem);font-weight:var(--wcss-body-sm-emphasized-weight, );line-height:var(--wcss-body-sm-emphasized-line-height, 1.25rem)}.body-xs{font-size:var(--wcss-body-xs-font-size, 0.75rem);font-weight:var(--wcss-body-xs-weight, );line-height:var(--wcss-body-xs-line-height, 1rem)}.body-xs,.body-xs-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-xs-emphasized{font-size:var(--wcss-body-xs-emphasized-font-size, 0.75rem);font-weight:var(--wcss-body-xs-emphasized-weight, );line-height:var(--wcss-body-xs-emphasized-line-height, 1rem)}.body-2xs{font-size:var(--wcss-body-2xs-font-size, 0.625rem);font-weight:var(--wcss-body-2xs-weight, );line-height:var(--wcss-body-2xs-line-height, 0.875rem)}.body-2xs,.body-2xs-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-2xs-emphasized{font-size:var(--wcss-body-2xs-emphasized-font-size, 0.625rem);font-weight:var(--wcss-body-2xs-emphasized-weight, );line-height:var(--wcss-body-2xs-emphasized-line-height, 0.875rem)}.display-2xl{font-family:var(--wcss-display-2xl-family, "AS Circular"),var(--wcss-display-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-2xl-font-size, clamp(3.5rem, 6vw, 5.375rem));font-weight:var(--wcss-display-2xl-weight, 300);letter-spacing:var(--wcss-display-2xl-letter-spacing, 0);line-height:var(--wcss-display-2xl-line-height, 1.3)}.display-xl{font-family:var(--wcss-display-xl-family, "AS Circular"),var(--wcss-display-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-xl-font-size, clamp(3rem, 5.3333333333vw, 4.5rem));font-weight:var(--wcss-display-xl-weight, 300);letter-spacing:var(--wcss-display-xl-letter-spacing, 0);line-height:var(--wcss-display-xl-line-height, 1.3)}.display-lg{font-family:var(--wcss-display-lg-family, "AS Circular"),var(--wcss-display-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-lg-font-size, clamp(2.75rem, 4.6666666667vw, 4rem));font-weight:var(--wcss-display-lg-weight, 300);letter-spacing:var(--wcss-display-lg-letter-spacing, 0);line-height:var(--wcss-display-lg-line-height, 1.3)}.display-md{font-family:var(--wcss-display-md-family, "AS Circular"),var(--wcss-display-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-md-font-size, clamp(2.5rem, 4vw, 3.5rem));font-weight:var(--wcss-display-md-weight, 300);letter-spacing:var(--wcss-display-md-letter-spacing, 0);line-height:var(--wcss-display-md-line-height, 1.3)}.display-sm{font-family:var(--wcss-display-sm-family, "AS Circular"),var(--wcss-display-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-sm-font-size, clamp(2rem, 3.6666666667vw, 3rem));font-weight:var(--wcss-display-sm-weight, 300);letter-spacing:var(--wcss-display-sm-letter-spacing, 0);line-height:var(--wcss-display-sm-line-height, 1.3)}.display-xs{font-family:var(--wcss-display-xs-family, "AS Circular"),var(--wcss-display-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-xs-font-size, clamp(1.75rem, 3vw, 2.375rem));font-weight:var(--wcss-display-xs-weight, 300);letter-spacing:var(--wcss-display-xs-letter-spacing, 0);line-height:var(--wcss-display-xs-line-height, 1.3)}.heading-xl{font-family:var(--wcss-heading-xl-family, "AS Circular"),var(--wcss-heading-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-xl-font-size, clamp(2rem, 3vw, 2.5rem));font-weight:var(--wcss-heading-xl-weight, 300);letter-spacing:var(--wcss-heading-xl-letter-spacing, 0);line-height:var(--wcss-heading-xl-line-height, 1.3)}.heading-lg{font-family:var(--wcss-heading-lg-family, "AS Circular"),var(--wcss-heading-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-lg-font-size, clamp(1.75rem, 2.6666666667vw, 2.25rem));font-weight:var(--wcss-heading-lg-weight, 300);letter-spacing:var(--wcss-heading-lg-letter-spacing, 0);line-height:var(--wcss-heading-lg-line-height, 1.3)}.heading-md{font-family:var(--wcss-heading-md-family, "AS Circular"),var(--wcss-heading-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-md-font-size, clamp(1.625rem, 2.3333333333vw, 1.75rem));font-weight:var(--wcss-heading-md-weight, 300);letter-spacing:var(--wcss-heading-md-letter-spacing, 0);line-height:var(--wcss-heading-md-line-height, 1.3)}.heading-sm{font-family:var(--wcss-heading-sm-family, "AS Circular"),var(--wcss-heading-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-sm-font-size, clamp(1.375rem, 2vw, 1.5rem));font-weight:var(--wcss-heading-sm-weight, 300);letter-spacing:var(--wcss-heading-sm-letter-spacing, 0);line-height:var(--wcss-heading-sm-line-height, 1.3)}.heading-xs{font-family:var(--wcss-heading-xs-family, "AS Circular"),var(--wcss-heading-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-xs-font-size, clamp(1.25rem, 1.6666666667vw, 1.25rem));font-weight:var(--wcss-heading-xs-weight, 300);letter-spacing:var(--wcss-heading-xs-letter-spacing, 0);line-height:var(--wcss-heading-xs-line-height, 1.3)}.heading-2xs{font-family:var(--wcss-heading-2xs-family, "AS Circular"),var(--wcss-heading-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-2xs-font-size, clamp(1.125rem, 1.5vw, 1.125rem));font-weight:var(--wcss-heading-2xs-weight, 300);letter-spacing:var(--wcss-heading-2xs-letter-spacing, 0);line-height:var(--wcss-heading-2xs-line-height, 1.3)}.accent-2xl{font-family:var(--wcss-accent-2xl-family, "Good OT"),var(--wcss-accent-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-2xl-font-size, clamp(2rem, 3.1666666667vw, 2.375rem));font-weight:var(--wcss-accent-2xl-weight, 450);letter-spacing:var(--wcss-accent-2xl-letter-spacing, 0.05em);line-height:var(--wcss-accent-2xl-line-height, 1)}.accent-2xl,.accent-xl{text-transform:uppercase}.accent-xl{font-family:var(--wcss-accent-xl-family, "Good OT"),var(--wcss-accent-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-xl-font-size, clamp(1.625rem, 2.3333333333vw, 2rem));font-weight:var(--wcss-accent-xl-weight, 450);letter-spacing:var(--wcss-accent-xl-letter-spacing, 0.05em);line-height:var(--wcss-accent-xl-line-height, 1.3)}.accent-lg{font-family:var(--wcss-accent-lg-family, "Good OT"),var(--wcss-accent-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-lg-font-size, clamp(1.5rem, 2.1666666667vw, 1.75rem));font-weight:var(--wcss-accent-lg-weight, 450);letter-spacing:var(--wcss-accent-lg-letter-spacing, 0.05em);line-height:var(--wcss-accent-lg-line-height, 1.3)}.accent-lg,.accent-md{text-transform:uppercase}.accent-md{font-family:var(--wcss-accent-md-family, "Good OT"),var(--wcss-accent-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-md-font-size, clamp(1.375rem, 1.8333333333vw, 1.5rem));font-weight:var(--wcss-accent-md-weight, 500);letter-spacing:var(--wcss-accent-md-letter-spacing, 0.05em);line-height:var(--wcss-accent-md-line-height, 1.3)}.accent-sm{font-family:var(--wcss-accent-sm-family, "Good OT"),var(--wcss-accent-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-sm-font-size, clamp(1.125rem, 1.5vw, 1.25rem));font-weight:var(--wcss-accent-sm-weight, 500);letter-spacing:var(--wcss-accent-sm-letter-spacing, 0.05em);line-height:var(--wcss-accent-sm-line-height, 1.3)}.accent-sm,.accent-xs{text-transform:uppercase}.accent-xs{font-family:var(--wcss-accent-xs-family, "Good OT"),var(--wcss-accent-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-xs-font-size, clamp(1rem, 1.3333333333vw, 1rem));font-weight:var(--wcss-accent-xs-weight, 500);letter-spacing:var(--wcss-accent-xs-letter-spacing, 0.1em);line-height:var(--wcss-accent-xs-line-height, 1.3)}.accent-2xs{font-family:var(--wcss-accent-2xs-family, "Good OT"),var(--wcss-accent-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-2xs-font-size, clamp(0.875rem, 1.1666666667vw, 0.875rem));font-weight:var(--wcss-accent-2xs-weight, 450);letter-spacing:var(--wcss-accent-2xs-letter-spacing, 0.1em);line-height:var(--wcss-accent-2xs-line-height, 1.3);text-transform:uppercase}[auro-dropdown]{--ds-auro-dropdown-trigger-border-color: var(--ds-auro-select-border-color);--ds-auro-dropdown-trigger-background-color: var(--ds-auro-select-background-color);--ds-auro-dropdown-trigger-container-color: var(--ds-auro-select-background-color);--ds-auro-dropdown-trigger-outline-color: var(--ds-auro-select-outline-color)}:host{display:inline-block;text-align:left;vertical-align:top}:host([layout*=emphasized]) [auro-dropdown],:host([layout*=snowflake]) [auro-dropdown]{--ds-auro-select-border-color: transparent}:host([layout*=emphasized]) .mainContent,:host([layout*=snowflake]) .mainContent{text-align:center}.mainContent{position:relative;display:flex;overflow:hidden;flex:1;flex-direction:column;align-items:center;justify-content:center}.valueContainer{max-width:100%}.accents{display:flex;flex-direction:row;align-items:center;justify-content:center}::slotted([slot=typeIcon]){margin-right:var(--ds-size-100, 0.5rem)}.displayValue{display:block}.displayValue:not(.force){display:none}.displayValue:not(.force).hasContent:is(.withValue):not(.hasFocus){display:block}.triggerContent{display:flex;width:100%;box-sizing:border-box;align-items:center;justify-content:center}:host([layout*=emphasized]) .triggerContent{padding:0 var(--ds-size-100, 0.5rem) 0 var(--ds-size-300, 1.5rem)}:host([layout*=snowflake]) .triggerContent{padding:0 var(--ds-size-100, 0.5rem) 0 var(--ds-size-200, 1rem)}:host([layout*=snowflake]) label{padding-block:var(--ds-size-25, 0.125rem)}:host([layout*=classic]) .triggerContent{padding:0 var(--ds-size-100, 0.5rem)}:host([layout*=classic]) .mainContent{align-items:start}:host([layout*=classic]) label{overflow:hidden;cursor:text;text-overflow:ellipsis;white-space:nowrap}:host([layout*=classic]) .value{overflow:hidden;height:auto;text-overflow:ellipsis;white-space:nowrap}label{color:var(--ds-auro-select-label-text-color)}:host(:is([validity]:not([validity=valid]))) [auro-dropdown]{--ds-auro-select-border-color: var(--ds-basic-color-status-error, #e31f26);--ds-auro-select-outline-color: var(--ds-basic-color-status-error, #e31f26);--ds-auro-dropdown-helptext-text-color: var(--ds-basic-color-texticon-default, #2a2a2a)}:host([ondark]:is([validity]:not([validity=valid]))) [auro-dropdown],:host([appearance=inverse]:is([validity]:not([validity=valid]))) [auro-dropdown]{--ds-auro-select-border-color: var(--ds-advanced-color-state-error-inverse, #f9a4a8);--ds-auro-select-outline-color: var(--ds-advanced-color-state-error-inverse, #f9a4a8);--ds-auro-dropdown-helptext-text-color: var(--ds-basic-color-texticon-inverse, #ffffff)}#slotHolder{display:none}:host([fluid]){width:100%}:host([disabled]){pointer-events:none;user-select:none}:host([disabled]:not([ondark])) [auro-dropdown],:host([disabled]:not([appearance=inverse])) [auro-dropdown]{--ds-auro-select-border-color: var(--ds-basic-color-border-subtle, #dddddd)}:host(:not([layout*=classic])[disabled][ondark]) [auro-dropdown],:host(:not([layout*=classic])[disabled][appearance=inverse]) [auro-dropdown]{--ds-auro-select-border-color: transparent}`;
|
|
94212
94807
|
|