@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
|
@@ -13521,7 +13521,7 @@ let AuroHelpText$8 = class AuroHelpText extends i$3 {
|
|
|
13521
13521
|
}
|
|
13522
13522
|
};
|
|
13523
13523
|
|
|
13524
|
-
var formkitVersion$8 = '
|
|
13524
|
+
var formkitVersion$8 = '202609022200';
|
|
13525
13525
|
|
|
13526
13526
|
// Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
|
|
13527
13527
|
// See LICENSE in the project root for license information.
|
|
@@ -28084,7 +28084,7 @@ let AuroBibtemplate$3 = class AuroBibtemplate extends i$3 {
|
|
|
28084
28084
|
}
|
|
28085
28085
|
};
|
|
28086
28086
|
|
|
28087
|
-
var formkitVersion$2$1 = '
|
|
28087
|
+
var formkitVersion$2$1 = '202609022200';
|
|
28088
28088
|
|
|
28089
28089
|
let l$1$2 = class l{generateElementName(t,e){let o=t;return o+="-",o+=e.replace(/[.]/g,"_"),o}generateTag(o,s,a){const r=this.generateElementName(o,s),i=i$2`${s$3(r)}`;return customElements.get(r)||customElements.define(r,class extends a{}),i}};let d$1$2 = class d{registerComponent(t,e){customElements.get(t)||customElements.define(t,class extends e{});}closestElement(t,e=this,o=(e,s=e&&e.closest(t))=>e&&e!==document&&e!==window?s||o(e.getRootNode().host):null){return o(e)}handleComponentTagRename(t,e){const o=e.toLowerCase();t.tagName.toLowerCase()!==o&&t.setAttribute(o,true);}elementMatch(t,e){const o=e.toLowerCase();return t.tagName.toLowerCase()===o||t.hasAttribute(o)}getSlotText(t,e){const o=t.shadowRoot?.querySelector(`slot[name="${e}"]`),s=(o?.assignedNodes({flatten:true})||[]).map(t=>t.textContent?.trim()).join(" ").trim();return s||null}};let h$1$2 = class h{registerComponent(t,e){customElements.get(t)||customElements.define(t,class extends e{});}closestElement(t,e=this,o=(e,s=e&&e.closest(t))=>e&&e!==document&&e!==window?s||o(e.getRootNode().host):null){return o(e)}handleComponentTagRename(t,e){const o=e.toLowerCase();t.tagName.toLowerCase()!==o&&t.setAttribute(o,true);}elementMatch(t,e){const o=e.toLowerCase();return t.tagName.toLowerCase()===o||t.hasAttribute(o)}};var c$1$3=i$6`:host{color:var(--ds-auro-loader-color)}:host>span{background-color:var(--ds-auro-loader-background-color);border-color:var(--ds-auro-loader-border-color)}:host([onlight]),:host([appearance=brand]){--ds-auro-loader-color: var(--ds-basic-color-brand-primary, #01426a)}:host([ondark]),:host([appearance=inverse]){--ds-auro-loader-color: var(--ds-basic-color-texticon-inverse, #ffffff)}:host([orbit])>span{--ds-auro-loader-background-color: transparent}:host([orbit])>span:nth-child(1){--ds-auro-loader-border-color: currentcolor;opacity:.25}:host([orbit])>span:nth-child(2){--ds-auro-loader-border-color: currentcolor;border-right-color:transparent;border-bottom-color:transparent;border-left-color:transparent}
|
|
28090
28090
|
`,u$4$2=i$6`.body-default{font-size:var(--wcss-body-default-font-size, 1rem);line-height:var(--wcss-body-default-line-height, 1.5rem)}.body-default,.body-lg{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-weight, 450);letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-lg{font-size:var(--wcss-body-lg-font-size, 1.125rem);line-height:var(--wcss-body-lg-line-height, 1.625rem)}.body-sm{font-size:var(--wcss-body-sm-font-size, .875rem);line-height:var(--wcss-body-sm-line-height, 1.25rem)}.body-sm,.body-xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-weight, 450);letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-xs{font-size:var(--wcss-body-xs-font-size, .75rem);line-height:var(--wcss-body-xs-line-height, 1rem)}.body-2xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-size:var(--wcss-body-2xs-font-size, .625rem);font-weight:var(--wcss-body-weight, 450);letter-spacing:var(--wcss-body-letter-spacing, 0);line-height:var(--wcss-body-2xs-line-height, .875rem)}.display-2xl{font-family:var(--wcss-display-2xl-family, "AS Circular"),var(--wcss-display-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-2xl-font-size, clamp(3.5rem, 6vw, 5.375rem));font-weight:var(--wcss-display-2xl-weight, 300);letter-spacing:var(--wcss-display-2xl-letter-spacing, 0);line-height:var(--wcss-display-2xl-line-height, 1.3)}.display-xl{font-family:var(--wcss-display-xl-family, "AS Circular"),var(--wcss-display-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-xl-font-size, clamp(3rem, 5.3333333333vw, 4.5rem));font-weight:var(--wcss-display-xl-weight, 300);letter-spacing:var(--wcss-display-xl-letter-spacing, 0);line-height:var(--wcss-display-xl-line-height, 1.3)}.display-lg{font-family:var(--wcss-display-lg-family, "AS Circular"),var(--wcss-display-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-lg-font-size, clamp(2.75rem, 4.6666666667vw, 4rem));font-weight:var(--wcss-display-lg-weight, 300);letter-spacing:var(--wcss-display-lg-letter-spacing, 0);line-height:var(--wcss-display-lg-line-height, 1.3)}.display-md{font-family:var(--wcss-display-md-family, "AS Circular"),var(--wcss-display-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-md-font-size, clamp(2.5rem, 4vw, 3.5rem));font-weight:var(--wcss-display-md-weight, 300);letter-spacing:var(--wcss-display-md-letter-spacing, 0);line-height:var(--wcss-display-md-line-height, 1.3)}.display-sm{font-family:var(--wcss-display-sm-family, "AS Circular"),var(--wcss-display-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-sm-font-size, clamp(2rem, 3.6666666667vw, 3rem));font-weight:var(--wcss-display-sm-weight, 300);letter-spacing:var(--wcss-display-sm-letter-spacing, 0);line-height:var(--wcss-display-sm-line-height, 1.3)}.display-xs{font-family:var(--wcss-display-xs-family, "AS Circular"),var(--wcss-display-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-xs-font-size, clamp(1.75rem, 3vw, 2.375rem));font-weight:var(--wcss-display-xs-weight, 300);letter-spacing:var(--wcss-display-xs-letter-spacing, 0);line-height:var(--wcss-display-xs-line-height, 1.3)}.heading-xl{font-family:var(--wcss-heading-xl-family, "AS Circular"),var(--wcss-heading-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-xl-font-size, clamp(2rem, 3vw, 2.5rem));font-weight:var(--wcss-heading-xl-weight, 300);letter-spacing:var(--wcss-heading-xl-letter-spacing, 0);line-height:var(--wcss-heading-xl-line-height, 1.3)}.heading-lg{font-family:var(--wcss-heading-lg-family, "AS Circular"),var(--wcss-heading-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-lg-font-size, clamp(1.75rem, 2.6666666667vw, 2.25rem));font-weight:var(--wcss-heading-lg-weight, 300);letter-spacing:var(--wcss-heading-lg-letter-spacing, 0);line-height:var(--wcss-heading-lg-line-height, 1.3)}.heading-md{font-family:var(--wcss-heading-md-family, "AS Circular"),var(--wcss-heading-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-md-font-size, clamp(1.625rem, 2.3333333333vw, 1.75rem));font-weight:var(--wcss-heading-md-weight, 300);letter-spacing:var(--wcss-heading-md-letter-spacing, 0);line-height:var(--wcss-heading-md-line-height, 1.3)}.heading-sm{font-family:var(--wcss-heading-sm-family, "AS Circular"),var(--wcss-heading-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-sm-font-size, clamp(1.375rem, 2vw, 1.5rem));font-weight:var(--wcss-heading-sm-weight, 300);letter-spacing:var(--wcss-heading-sm-letter-spacing, 0);line-height:var(--wcss-heading-sm-line-height, 1.3)}.heading-xs{font-family:var(--wcss-heading-xs-family, "AS Circular"),var(--wcss-heading-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-xs-font-size, clamp(1.25rem, 1.6666666667vw, 1.25rem));font-weight:var(--wcss-heading-xs-weight, 450);letter-spacing:var(--wcss-heading-xs-letter-spacing, 0);line-height:var(--wcss-heading-xs-line-height, 1.3)}.heading-2xs{font-family:var(--wcss-heading-2xs-family, "AS Circular"),var(--wcss-heading-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-2xs-font-size, clamp(1.125rem, 1.5vw, 1.125rem));font-weight:var(--wcss-heading-2xs-weight, 450);letter-spacing:var(--wcss-heading-2xs-letter-spacing, 0);line-height:var(--wcss-heading-2xs-line-height, 1.3)}.accent-2xl{font-family:var(--wcss-accent-2xl-family, "Good OT"),var(--wcss-accent-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-2xl-font-size, clamp(2rem, 3.1666666667vw, 2.375rem));font-weight:var(--wcss-accent-2xl-weight, 450);letter-spacing:var(--wcss-accent-2xl-letter-spacing, .05em);line-height:var(--wcss-accent-2xl-line-height, 1)}.accent-2xl,.accent-xl{text-transform:uppercase}.accent-xl{font-family:var(--wcss-accent-xl-family, "Good OT"),var(--wcss-accent-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-xl-font-size, clamp(1.625rem, 2.3333333333vw, 2rem));font-weight:var(--wcss-accent-xl-weight, 450);letter-spacing:var(--wcss-accent-xl-letter-spacing, .05em);line-height:var(--wcss-accent-xl-line-height, 1.3)}.accent-lg{font-family:var(--wcss-accent-lg-family, "Good OT"),var(--wcss-accent-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-lg-font-size, clamp(1.5rem, 2.1666666667vw, 1.75rem));font-weight:var(--wcss-accent-lg-weight, 450);letter-spacing:var(--wcss-accent-lg-letter-spacing, .05em);line-height:var(--wcss-accent-lg-line-height, 1.3)}.accent-lg,.accent-md{text-transform:uppercase}.accent-md{font-family:var(--wcss-accent-md-family, "Good OT"),var(--wcss-accent-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-md-font-size, clamp(1.375rem, 1.8333333333vw, 1.5rem));font-weight:var(--wcss-accent-md-weight, 500);letter-spacing:var(--wcss-accent-md-letter-spacing, .05em);line-height:var(--wcss-accent-md-line-height, 1.3)}.accent-sm{font-family:var(--wcss-accent-sm-family, "Good OT"),var(--wcss-accent-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-sm-font-size, clamp(1.125rem, 1.5vw, 1.25rem));font-weight:var(--wcss-accent-sm-weight, 500);letter-spacing:var(--wcss-accent-sm-letter-spacing, .05em);line-height:var(--wcss-accent-sm-line-height, 1.3)}.accent-sm,.accent-xs{text-transform:uppercase}.accent-xs{font-family:var(--wcss-accent-xs-family, "Good OT"),var(--wcss-accent-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-xs-font-size, clamp(1rem, 1.3333333333vw, 1rem));font-weight:var(--wcss-accent-xs-weight, 500);letter-spacing:var(--wcss-accent-xs-letter-spacing, .1em);line-height:var(--wcss-accent-xs-line-height, 1.3)}.accent-2xs{font-family:var(--wcss-accent-2xs-family, "Good OT"),var(--wcss-accent-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-2xs-font-size, clamp(.875rem, 1.1666666667vw, .875rem));font-weight:var(--wcss-accent-2xs-weight, 450);letter-spacing:var(--wcss-accent-2xs-letter-spacing, .1em);line-height:var(--wcss-accent-2xs-line-height, 1.3);text-transform:uppercase}:focus:not(:focus-visible){outline:3px solid transparent}:host,:host>span{position:relative}:host{width:2rem;height:2rem;display:inline-block;font-size:0}:host>span{position:absolute;display:inline-block;float:none;top:0;left:0;width:2rem;height:2rem;border-radius:100%;border-style:solid;border-width:0;box-sizing:border-box}:host([xs]),:host([xs])>span{width:1.2rem;height:1.2rem}:host([sm]),:host([sm])>span{width:3rem;height:3rem}:host([md]),:host([md])>span{width:5rem;height:5rem}:host([lg]),:host([lg])>span{width:8rem;height:8rem}:host{--margin: .375rem;--margin-xs: .2rem;--margin-sm: .5rem;--margin-md: .75rem;--margin-lg: 1rem}:host([pulse]),:host([pulse])>span{position:relative}:host([pulse]){width:calc(3rem + var(--margin) * 6);height:calc(1rem + var(--margin) * 2)}:host([pulse])>span{width:1rem;height:1rem;margin:var(--margin);animation:pulse 1.5s ease infinite}:host([pulse][xs]){width:calc(1.95rem + var(--margin-xs) * 6);height:calc(.65rem + var(--margin-xs) * 2)}:host([pulse][xs])>span{margin:var(--margin-xs);width:.65rem;height:.65rem}:host([pulse][sm]){width:calc(6rem + var(--margin-sm) * 6);height:calc(2rem + var(--margin-sm) * 2)}:host([pulse][sm])>span{margin:var(--margin-sm);width:2rem;height:2rem}:host([pulse][md]){width:calc(9rem + var(--margin-md) * 6);height:calc(3rem + var(--margin-md) * 2)}:host([pulse][md])>span{margin:var(--margin-md);width:3rem;height:3rem}:host([pulse][lg]){width:calc(15rem + var(--margin-lg) * 6);height:calc(5rem + var(--margin-lg) * 2)}:host([pulse][lg])>span{margin:var(--margin-lg);width:5rem;height:5rem}:host([pulse])>span:nth-child(1){animation-delay:-.4s}:host([pulse])>span:nth-child(2){animation-delay:-.2s}:host([pulse])>span:nth-child(3){animation-delay:0ms}@keyframes pulse{0%,to{opacity:.1;transform:scale(.9)}50%{opacity:1;transform:scale(1.1)}}:host([orbit]),:host([orbit])>span{opacity:1}:host([orbit])>span{border-width:5px}:host([orbit])>span:nth-child(2){animation:orbit 2s linear infinite}:host([orbit][sm])>span{border-width:8px}:host([orbit][md])>span{border-width:13px}:host([orbit][lg])>span{border-width:21px}@keyframes orbit{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host([ringworm])>svg{animation:rotate 2s linear infinite;height:100%;width:100%;stroke:currentcolor;stroke-width:8}:host([ringworm]) .path{stroke-dashoffset:0;animation:ringworm 1.5s ease-in-out infinite;stroke-linecap:round}@keyframes rotate{to{transform:rotate(360deg)}}@keyframes ringworm{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:89,200;stroke-dashoffset:-35px}to{stroke-dasharray:89,200;stroke-dashoffset:-124px}}:host([laser]){position:static;width:100%;display:block;height:0;overflow:hidden;font-size:unset}:host([laser])>span{position:fixed;width:100%;height:.25rem;border-radius:0;z-index:100}:host([laser])>span:nth-child(1){border-color:currentcolor;opacity:.25}:host([laser])>span:nth-child(2){border-color:currentcolor;animation:laser 2s linear infinite;opacity:1;width:50%}:host([laser][sm])>span:nth-child(2){width:20%}:host([laser][md])>span:nth-child(2){width:30%}:host([laser][lg])>span:nth-child(2){width:50%;animation-duration:1.5s}:host([laser][xl])>span:nth-child(2){width:80%;animation-duration:1.5s}@keyframes laser{0%{left:-100%}to{left:110%}}:host>.no-animation{display:none}@media (prefers-reduced-motion: reduce){:host{display:flex;align-items:center;justify-content:center}:host>span{opacity:1}:host>.loader{display:none}:host>svg{display:none}:host>.no-animation{display:block}}
|
|
@@ -31865,6 +31865,48 @@ const computePosition$4 = (reference, floating, options) => {
|
|
|
31865
31865
|
});
|
|
31866
31866
|
};
|
|
31867
31867
|
|
|
31868
|
+
/**
|
|
31869
|
+
* Generates a v4 UUID with a three-tier fallback for insecure contexts.
|
|
31870
|
+
*
|
|
31871
|
+
* Tier 1 (secure contexts): crypto.randomUUID() — native, fully random.
|
|
31872
|
+
* Tier 2 (insecure contexts): crypto.getRandomValues() — available on all
|
|
31873
|
+
* modern browsers regardless of secure-context status.
|
|
31874
|
+
* Tier 3 (last resort, no crypto API): new Date().getTime() — lower entropy,
|
|
31875
|
+
* but sufficient for element IDs where collision risk is negligible.
|
|
31876
|
+
*
|
|
31877
|
+
* See: https://w3c.github.io/webcrypto/#dom-crypto-randomuuid (secure-context restriction)
|
|
31878
|
+
*/
|
|
31879
|
+
function generateUUID$3() {
|
|
31880
|
+
let uuid;
|
|
31881
|
+
|
|
31882
|
+
if (
|
|
31883
|
+
typeof crypto !== "undefined" &&
|
|
31884
|
+
typeof crypto.randomUUID === "function"
|
|
31885
|
+
) {
|
|
31886
|
+
uuid = crypto.randomUUID();
|
|
31887
|
+
} else if (
|
|
31888
|
+
typeof crypto !== "undefined" &&
|
|
31889
|
+
typeof crypto.getRandomValues === "function"
|
|
31890
|
+
) {
|
|
31891
|
+
const bytes = new Uint8Array(16);
|
|
31892
|
+
crypto.getRandomValues(bytes);
|
|
31893
|
+
bytes[6] = (bytes[6] & 0x0f) | 0x40;
|
|
31894
|
+
bytes[8] = (bytes[8] & 0x3f) | 0x80;
|
|
31895
|
+
const hex = Array.from(bytes).map((b) => b.toString(16).padStart(2, "0"));
|
|
31896
|
+
uuid = `${hex.slice(0, 4).join("")}-${hex.slice(4, 6).join("")}-${hex.slice(6, 8).join("")}-${hex.slice(8, 10).join("")}-${hex.slice(10).join("")}`;
|
|
31897
|
+
} else {
|
|
31898
|
+
let d = new Date().getTime();
|
|
31899
|
+
uuid = "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, (c) => {
|
|
31900
|
+
const r = (d % 16) | 0;
|
|
31901
|
+
d = (d - r) / 16 || new Date().getTime();
|
|
31902
|
+
return (c === "x" ? r : (r & 0x3) | 0x8).toString(16);
|
|
31903
|
+
});
|
|
31904
|
+
}
|
|
31905
|
+
|
|
31906
|
+
// CSS selectors require IDs starting with a letter; replace a leading digit with 'a'.
|
|
31907
|
+
return /^[0-9]/.test(uuid) ? `a${uuid.slice(1)}` : uuid;
|
|
31908
|
+
}
|
|
31909
|
+
|
|
31868
31910
|
/* eslint-disable line-comment-position, no-inline-comments */
|
|
31869
31911
|
|
|
31870
31912
|
|
|
@@ -32883,7 +32925,7 @@ let AuroFloatingUI$3 = class AuroFloatingUI {
|
|
|
32883
32925
|
|
|
32884
32926
|
this.id = element.getAttribute("id");
|
|
32885
32927
|
if (!this.id) {
|
|
32886
|
-
this.id =
|
|
32928
|
+
this.id = generateUUID$3();
|
|
32887
32929
|
element.setAttribute("id", this.id);
|
|
32888
32930
|
}
|
|
32889
32931
|
|
|
@@ -33928,7 +33970,7 @@ let AuroHelpText$2$1 = class AuroHelpText extends i$3 {
|
|
|
33928
33970
|
}
|
|
33929
33971
|
};
|
|
33930
33972
|
|
|
33931
|
-
var formkitVersion$1$3 = '
|
|
33973
|
+
var formkitVersion$1$3 = '202609022200';
|
|
33932
33974
|
|
|
33933
33975
|
/**
|
|
33934
33976
|
* AuroElement is the shared base class for layout-aware Auro form components.
|
|
@@ -47790,7 +47832,7 @@ let AuroHelpText$1$3 = class AuroHelpText extends i$3 {
|
|
|
47790
47832
|
}
|
|
47791
47833
|
};
|
|
47792
47834
|
|
|
47793
|
-
var formkitVersion$7 = '
|
|
47835
|
+
var formkitVersion$7 = '202609022200';
|
|
47794
47836
|
|
|
47795
47837
|
// Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
|
|
47796
47838
|
// See LICENSE in the project root for license information.
|
|
@@ -49407,6 +49449,14 @@ class AuroDatePicker extends AuroElement$5 {
|
|
|
49407
49449
|
*/
|
|
49408
49450
|
this.hasFocus = false;
|
|
49409
49451
|
|
|
49452
|
+
/**
|
|
49453
|
+
* Tracks whether the current open cycle promoted the fullscreen bib via
|
|
49454
|
+
* showModal(). Used by the close handler to decide whether native <dialog>
|
|
49455
|
+
* focus restoration will fire (see the auroDropdown-toggled handler).
|
|
49456
|
+
* @private
|
|
49457
|
+
*/
|
|
49458
|
+
this._bibOpenedAsModal = false;
|
|
49459
|
+
|
|
49410
49460
|
/**
|
|
49411
49461
|
* @private
|
|
49412
49462
|
*/
|
|
@@ -50462,6 +50512,15 @@ class AuroDatePicker extends AuroElement$5 {
|
|
|
50462
50512
|
// a top-layer popover where :focus-within on the dropdown host returns false).
|
|
50463
50513
|
this.dropdown.noHideOnThisFocusLoss = true;
|
|
50464
50514
|
|
|
50515
|
+
// Suppress the dropdown's generic focus restoration on close — the
|
|
50516
|
+
// datepicker manages its own focus in the auroDropdown-toggled handler
|
|
50517
|
+
// below (respecting hasFocus / _restoreFocusOnClose, and deferring to the
|
|
50518
|
+
// fullscreen dialog's native restoration on touch devices). Without this,
|
|
50519
|
+
// the dropdown's setTimeout(focusTrigger) fires a second, gesture-decoupled
|
|
50520
|
+
// programmatic focus on close, which on iOS Safari swallows the user's next
|
|
50521
|
+
// tap and forces a second tap to reopen the calendar (AB#1634252).
|
|
50522
|
+
this.dropdown.noFocusRestoreOnClose = true;
|
|
50523
|
+
|
|
50465
50524
|
// Pass label text to the dropdown bib for accessible dialog naming.
|
|
50466
50525
|
// Without this, the fullscreen <dialog> has no accessible name and
|
|
50467
50526
|
// screen readers announce it as just "dialog" with no context.
|
|
@@ -50533,6 +50592,16 @@ class AuroDatePicker extends AuroElement$5 {
|
|
|
50533
50592
|
bibEl.close();
|
|
50534
50593
|
bibEl.open(true);
|
|
50535
50594
|
|
|
50595
|
+
// Record that this open cycle actually promoted the dialog via
|
|
50596
|
+
// showModal(). The close handler relies on this — not the broader
|
|
50597
|
+
// isBibFullscreen flag — to decide whether native <dialog> focus
|
|
50598
|
+
// restoration will occur, because isBibFullscreen is set
|
|
50599
|
+
// synchronously in showBib() while this open(true) runs a
|
|
50600
|
+
// microtask later. If the bib is closed before this resolves,
|
|
50601
|
+
// showModal() never fires and there is no native restoration to
|
|
50602
|
+
// defer to.
|
|
50603
|
+
this._bibOpenedAsModal = true;
|
|
50604
|
+
|
|
50536
50605
|
doubleRaf$3(() => {
|
|
50537
50606
|
this.focusActiveCellWhenReady();
|
|
50538
50607
|
});
|
|
@@ -50564,7 +50633,27 @@ class AuroDatePicker extends AuroElement$5 {
|
|
|
50564
50633
|
this.dropdown.trigger.inert = false;
|
|
50565
50634
|
const shouldRestoreFocus = this.hasFocus || this._restoreFocusOnClose;
|
|
50566
50635
|
this._restoreFocusOnClose = false;
|
|
50567
|
-
|
|
50636
|
+
// On coarse-pointer (touch) devices closing the fullscreen modal, rely
|
|
50637
|
+
// on the <dialog>'s native focus restoration instead of forcing focus
|
|
50638
|
+
// back onto the input. showModal() returns focus to the trigger anchor
|
|
50639
|
+
// as part of the closing gesture, so a11y focus is preserved. Re-running
|
|
50640
|
+
// .focus() here is a gesture-decoupled programmatic focus that iOS
|
|
50641
|
+
// Safari penalizes: it swallows the user's next tap, so reopening the
|
|
50642
|
+
// calendar takes two taps instead of one (AB#1634252). Fine-pointer
|
|
50643
|
+
// (desktop) layouts keep the explicit restore for keyboard/SR
|
|
50644
|
+
// correctness, and non-fullscreen bibs (no showModal, no native
|
|
50645
|
+
// restoration) always restore explicitly.
|
|
50646
|
+
//
|
|
50647
|
+
// Gate on `_bibOpenedAsModal` — set only after the actual showModal()
|
|
50648
|
+
// promotion (open(true)) — rather than `isBibFullscreen`, which is true
|
|
50649
|
+
// as soon as the fullscreen layout is chosen but before the modal is
|
|
50650
|
+
// promoted. If the bib is closed before that async promotion runs, no
|
|
50651
|
+
// native restoration will occur, so we must still restore explicitly.
|
|
50652
|
+
const bibWasModal = this._bibOpenedAsModal;
|
|
50653
|
+
this._bibOpenedAsModal = false;
|
|
50654
|
+
const useNativeFocusRestoration =
|
|
50655
|
+
bibWasModal && window.matchMedia('(pointer: coarse)').matches;
|
|
50656
|
+
if (shouldRestoreFocus && !useNativeFocusRestoration) {
|
|
50568
50657
|
requestAnimationFrame(() => {
|
|
50569
50658
|
if (!this.dropdown.isPopoverVisible) {
|
|
50570
50659
|
this.inputList[0].focus();
|
|
@@ -52896,7 +52985,7 @@ let AuroHelpText$1$2 = class AuroHelpText extends i$3 {
|
|
|
52896
52985
|
}
|
|
52897
52986
|
};
|
|
52898
52987
|
|
|
52899
|
-
var formkitVersion$1$2 = '
|
|
52988
|
+
var formkitVersion$1$2 = '202609022200';
|
|
52900
52989
|
|
|
52901
52990
|
// Copyright (c) 2026 Alaska Airlines. All rights reserved. Licensed under the Apache-2.0 license
|
|
52902
52991
|
// See LICENSE in the project root for license information.
|
|
@@ -55133,6 +55222,48 @@ const computePosition$3 = (reference, floating, options) => {
|
|
|
55133
55222
|
});
|
|
55134
55223
|
};
|
|
55135
55224
|
|
|
55225
|
+
/**
|
|
55226
|
+
* Generates a v4 UUID with a three-tier fallback for insecure contexts.
|
|
55227
|
+
*
|
|
55228
|
+
* Tier 1 (secure contexts): crypto.randomUUID() — native, fully random.
|
|
55229
|
+
* Tier 2 (insecure contexts): crypto.getRandomValues() — available on all
|
|
55230
|
+
* modern browsers regardless of secure-context status.
|
|
55231
|
+
* Tier 3 (last resort, no crypto API): new Date().getTime() — lower entropy,
|
|
55232
|
+
* but sufficient for element IDs where collision risk is negligible.
|
|
55233
|
+
*
|
|
55234
|
+
* See: https://w3c.github.io/webcrypto/#dom-crypto-randomuuid (secure-context restriction)
|
|
55235
|
+
*/
|
|
55236
|
+
function generateUUID$2() {
|
|
55237
|
+
let uuid;
|
|
55238
|
+
|
|
55239
|
+
if (
|
|
55240
|
+
typeof crypto !== "undefined" &&
|
|
55241
|
+
typeof crypto.randomUUID === "function"
|
|
55242
|
+
) {
|
|
55243
|
+
uuid = crypto.randomUUID();
|
|
55244
|
+
} else if (
|
|
55245
|
+
typeof crypto !== "undefined" &&
|
|
55246
|
+
typeof crypto.getRandomValues === "function"
|
|
55247
|
+
) {
|
|
55248
|
+
const bytes = new Uint8Array(16);
|
|
55249
|
+
crypto.getRandomValues(bytes);
|
|
55250
|
+
bytes[6] = (bytes[6] & 0x0f) | 0x40;
|
|
55251
|
+
bytes[8] = (bytes[8] & 0x3f) | 0x80;
|
|
55252
|
+
const hex = Array.from(bytes).map((b) => b.toString(16).padStart(2, "0"));
|
|
55253
|
+
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("")}`;
|
|
55254
|
+
} else {
|
|
55255
|
+
let d = new Date().getTime();
|
|
55256
|
+
uuid = "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, (c) => {
|
|
55257
|
+
const r = (d % 16) | 0;
|
|
55258
|
+
d = (d - r) / 16 || new Date().getTime();
|
|
55259
|
+
return (c === "x" ? r : (r & 0x3) | 0x8).toString(16);
|
|
55260
|
+
});
|
|
55261
|
+
}
|
|
55262
|
+
|
|
55263
|
+
// CSS selectors require IDs starting with a letter; replace a leading digit with 'a'.
|
|
55264
|
+
return /^[0-9]/.test(uuid) ? `a${uuid.slice(1)}` : uuid;
|
|
55265
|
+
}
|
|
55266
|
+
|
|
55136
55267
|
/* eslint-disable line-comment-position, no-inline-comments */
|
|
55137
55268
|
|
|
55138
55269
|
|
|
@@ -56151,7 +56282,7 @@ let AuroFloatingUI$2 = class AuroFloatingUI {
|
|
|
56151
56282
|
|
|
56152
56283
|
this.id = element.getAttribute("id");
|
|
56153
56284
|
if (!this.id) {
|
|
56154
|
-
this.id =
|
|
56285
|
+
this.id = generateUUID$2();
|
|
56155
56286
|
element.setAttribute("id", this.id);
|
|
56156
56287
|
}
|
|
56157
56288
|
|
|
@@ -56235,7 +56366,7 @@ let AuroFloatingUI$2 = class AuroFloatingUI {
|
|
|
56235
56366
|
};
|
|
56236
56367
|
|
|
56237
56368
|
// Selectors for focusable elements
|
|
56238
|
-
const FOCUSABLE_SELECTORS$
|
|
56369
|
+
const FOCUSABLE_SELECTORS$1$1 = [
|
|
56239
56370
|
"a[href]",
|
|
56240
56371
|
"button:not([disabled])",
|
|
56241
56372
|
"textarea:not([disabled])",
|
|
@@ -56249,7 +56380,7 @@ const FOCUSABLE_SELECTORS$3 = [
|
|
|
56249
56380
|
];
|
|
56250
56381
|
|
|
56251
56382
|
// List of custom components that are known to be focusable
|
|
56252
|
-
const FOCUSABLE_COMPONENTS$
|
|
56383
|
+
const FOCUSABLE_COMPONENTS$1$1 = [
|
|
56253
56384
|
"auro-checkbox",
|
|
56254
56385
|
"auro-radio",
|
|
56255
56386
|
"auro-dropdown",
|
|
@@ -56271,12 +56402,12 @@ const FOCUSABLE_COMPONENTS$3 = [
|
|
|
56271
56402
|
* @param {HTMLElement} element The element to check for focusability.
|
|
56272
56403
|
* @returns {boolean} True if the element is a focusable custom component, false otherwise.
|
|
56273
56404
|
*/
|
|
56274
|
-
function isFocusableComponent$
|
|
56405
|
+
function isFocusableComponent$1$1(element) {
|
|
56275
56406
|
const componentName = element.tagName.toLowerCase();
|
|
56276
56407
|
|
|
56277
56408
|
// Guard Clause: Element is a focusable component
|
|
56278
56409
|
if (
|
|
56279
|
-
!FOCUSABLE_COMPONENTS$
|
|
56410
|
+
!FOCUSABLE_COMPONENTS$1$1.some(
|
|
56280
56411
|
(name) => element.hasAttribute(name) || componentName === name,
|
|
56281
56412
|
)
|
|
56282
56413
|
)
|
|
@@ -56300,7 +56431,7 @@ function isFocusableComponent$3(element) {
|
|
|
56300
56431
|
* @param {HTMLElement} element The element whose tabindex to read.
|
|
56301
56432
|
* @returns {?number} The numeric tabindex or null if missing/invalid.
|
|
56302
56433
|
*/
|
|
56303
|
-
function getNumericTabIndex$
|
|
56434
|
+
function getNumericTabIndex$1$1(element) {
|
|
56304
56435
|
const raw = element.getAttribute("tabindex");
|
|
56305
56436
|
if (raw == null) return null;
|
|
56306
56437
|
|
|
@@ -56316,7 +56447,7 @@ function getNumericTabIndex$3(element) {
|
|
|
56316
56447
|
* @param {HTMLElement} container The container to search within
|
|
56317
56448
|
* @returns {Array<HTMLElement>} An array of focusable elements within the container.
|
|
56318
56449
|
*/
|
|
56319
|
-
function getFocusableElements$
|
|
56450
|
+
function getFocusableElements$1$1(container) {
|
|
56320
56451
|
// Get elements in DOM order by walking the tree
|
|
56321
56452
|
const orderedFocusableElements = [];
|
|
56322
56453
|
|
|
@@ -56325,7 +56456,7 @@ function getFocusableElements$3(container) {
|
|
|
56325
56456
|
// Check if current element is focusable
|
|
56326
56457
|
if (root.nodeType === Node.ELEMENT_NODE) {
|
|
56327
56458
|
// Check if this is a custom component that is focusable
|
|
56328
|
-
const isComponentFocusable = isFocusableComponent$
|
|
56459
|
+
const isComponentFocusable = isFocusableComponent$1$1(root);
|
|
56329
56460
|
|
|
56330
56461
|
if (isComponentFocusable) {
|
|
56331
56462
|
// Add the component itself as a focusable element and don't traverse its shadow DOM
|
|
@@ -56334,7 +56465,7 @@ function getFocusableElements$3(container) {
|
|
|
56334
56465
|
}
|
|
56335
56466
|
|
|
56336
56467
|
// Check if the element itself matches any selector
|
|
56337
|
-
for (const selector of FOCUSABLE_SELECTORS$
|
|
56468
|
+
for (const selector of FOCUSABLE_SELECTORS$1$1) {
|
|
56338
56469
|
if (root.matches?.(selector)) {
|
|
56339
56470
|
orderedFocusableElements.push(root);
|
|
56340
56471
|
break; // Once we know it's focusable, no need to check other selectors
|
|
@@ -56388,20 +56519,20 @@ function getFocusableElements$3(container) {
|
|
|
56388
56519
|
|
|
56389
56520
|
// First extract elements with valid positive tabindex
|
|
56390
56521
|
const elementsWithTabindex = uniqueElements.filter((el) => {
|
|
56391
|
-
const tabindex = getNumericTabIndex$
|
|
56522
|
+
const tabindex = getNumericTabIndex$1$1(el);
|
|
56392
56523
|
return tabindex !== null && tabindex > 0;
|
|
56393
56524
|
});
|
|
56394
56525
|
|
|
56395
56526
|
// Sort these elements by their tabindex value
|
|
56396
56527
|
elementsWithTabindex.sort((a, b) => {
|
|
56397
|
-
const aIndex = getNumericTabIndex$
|
|
56398
|
-
const bIndex = getNumericTabIndex$
|
|
56528
|
+
const aIndex = getNumericTabIndex$1$1(a) ?? 0;
|
|
56529
|
+
const bIndex = getNumericTabIndex$1$1(b) ?? 0;
|
|
56399
56530
|
return aIndex - bIndex;
|
|
56400
56531
|
});
|
|
56401
56532
|
|
|
56402
56533
|
// Elements without tabindex (preserving their original order)
|
|
56403
56534
|
const elementsWithoutTabindex = uniqueElements.filter((el) => {
|
|
56404
|
-
const tabindex = getNumericTabIndex$
|
|
56535
|
+
const tabindex = getNumericTabIndex$1$1(el);
|
|
56405
56536
|
|
|
56406
56537
|
// Elements without tabindex or with tabindex of 0 stay in DOM order
|
|
56407
56538
|
return tabindex === null || tabindex === 0;
|
|
@@ -57196,7 +57327,7 @@ let AuroHelpText$6 = class AuroHelpText extends i$3 {
|
|
|
57196
57327
|
}
|
|
57197
57328
|
};
|
|
57198
57329
|
|
|
57199
|
-
var formkitVersion$6 = '
|
|
57330
|
+
var formkitVersion$6 = '202609022200';
|
|
57200
57331
|
|
|
57201
57332
|
/**
|
|
57202
57333
|
* AuroElement is the shared base class for layout-aware Auro form components.
|
|
@@ -57496,7 +57627,7 @@ let AuroDropdown$2 = class AuroDropdown extends AuroElement$1$2 {
|
|
|
57496
57627
|
*/
|
|
57497
57628
|
focus() {
|
|
57498
57629
|
if (this.isPopoverVisible && this.bibContent) {
|
|
57499
|
-
const focusables = getFocusableElements$
|
|
57630
|
+
const focusables = getFocusableElements$1$1(this.bibContent);
|
|
57500
57631
|
if (focusables.length > 0) {
|
|
57501
57632
|
focusables[0].focus();
|
|
57502
57633
|
}
|
|
@@ -57528,7 +57659,7 @@ let AuroDropdown$2 = class AuroDropdown extends AuroElement$1$2 {
|
|
|
57528
57659
|
// wrappers like <div> containing a <button>). If none found, try
|
|
57529
57660
|
// focusing the element directly (works for custom elements like
|
|
57530
57661
|
// auro-input that have delegatesFocus or a custom focus() method).
|
|
57531
|
-
const descendants = getFocusableElements$
|
|
57662
|
+
const descendants = getFocusableElements$1$1(el);
|
|
57532
57663
|
if (descendants.length > 0) {
|
|
57533
57664
|
descendants[0].focus();
|
|
57534
57665
|
return;
|
|
@@ -57540,7 +57671,7 @@ let AuroDropdown$2 = class AuroDropdown extends AuroElement$1$2 {
|
|
|
57540
57671
|
}
|
|
57541
57672
|
}
|
|
57542
57673
|
// Fallback: try DOM children (non-slotted content)
|
|
57543
|
-
const focusables = getFocusableElements$
|
|
57674
|
+
const focusables = getFocusableElements$1$1(this.trigger);
|
|
57544
57675
|
if (focusables.length > 0) {
|
|
57545
57676
|
focusables[0].focus();
|
|
57546
57677
|
}
|
|
@@ -58219,7 +58350,7 @@ let AuroDropdown$2 = class AuroDropdown extends AuroElement$1$2 {
|
|
|
58219
58350
|
}
|
|
58220
58351
|
|
|
58221
58352
|
// Collect focusable elements from the bib content.
|
|
58222
|
-
const focusables = getFocusableElements$
|
|
58353
|
+
const focusables = getFocusableElements$1$1(this.bibContent);
|
|
58223
58354
|
|
|
58224
58355
|
// Fallback: try from slotted content directly
|
|
58225
58356
|
if (!focusables.length) {
|
|
@@ -58228,7 +58359,7 @@ let AuroDropdown$2 = class AuroDropdown extends AuroElement$1$2 {
|
|
|
58228
58359
|
|
|
58229
58360
|
for (const node of assignedNodes) {
|
|
58230
58361
|
if (node.nodeType === Node.ELEMENT_NODE) {
|
|
58231
|
-
focusables.push(...getFocusableElements$
|
|
58362
|
+
focusables.push(...getFocusableElements$1$1(node));
|
|
58232
58363
|
}
|
|
58233
58364
|
}
|
|
58234
58365
|
}
|
|
@@ -58288,7 +58419,7 @@ let AuroDropdown$2 = class AuroDropdown extends AuroElement$1$2 {
|
|
|
58288
58419
|
|
|
58289
58420
|
// Move initial focus into the bib content, matching FocusTrap behavior
|
|
58290
58421
|
requestAnimationFrame(() => {
|
|
58291
|
-
const focusables = getFocusableElements$
|
|
58422
|
+
const focusables = getFocusableElements$1$1(this.bibContent);
|
|
58292
58423
|
if (focusables.length) {
|
|
58293
58424
|
focusables[0].focus();
|
|
58294
58425
|
}
|
|
@@ -58301,7 +58432,7 @@ let AuroDropdown$2 = class AuroDropdown extends AuroElement$1$2 {
|
|
|
58301
58432
|
// popover asynchronously — a synchronous focus() would target
|
|
58302
58433
|
// zero-dimension elements and be silently ignored.
|
|
58303
58434
|
requestAnimationFrame(() => {
|
|
58304
|
-
const focusables = getFocusableElements$
|
|
58435
|
+
const focusables = getFocusableElements$1$1(this.bibContent);
|
|
58305
58436
|
if (focusables.length) {
|
|
58306
58437
|
focusables[0].focus();
|
|
58307
58438
|
}
|
|
@@ -58519,7 +58650,7 @@ let AuroDropdown$2 = class AuroDropdown extends AuroElement$1$2 {
|
|
|
58519
58650
|
if (triggerContentNodes) {
|
|
58520
58651
|
|
|
58521
58652
|
// See if any of them are focusable elements
|
|
58522
|
-
this.triggerContentFocusable = triggerContentNodes.some((node) => getFocusableElements$
|
|
58653
|
+
this.triggerContentFocusable = triggerContentNodes.some((node) => getFocusableElements$1$1(node).length > 0);
|
|
58523
58654
|
|
|
58524
58655
|
// If any of them are focusable elements
|
|
58525
58656
|
if (this.triggerContentFocusable) {
|
|
@@ -59281,9 +59412,241 @@ let AuroElement$4 = class AuroElement extends i$3 {
|
|
|
59281
59412
|
}
|
|
59282
59413
|
};
|
|
59283
59414
|
|
|
59415
|
+
// Selectors for focusable elements
|
|
59416
|
+
const FOCUSABLE_SELECTORS$3 = [
|
|
59417
|
+
"a[href]",
|
|
59418
|
+
"button:not([disabled])",
|
|
59419
|
+
"textarea:not([disabled])",
|
|
59420
|
+
"input:not([disabled])",
|
|
59421
|
+
"select:not([disabled])",
|
|
59422
|
+
'[role="tab"]:not([disabled])',
|
|
59423
|
+
'[role="link"]:not([disabled])',
|
|
59424
|
+
'[role="button"]:not([disabled])',
|
|
59425
|
+
'[tabindex]:not([tabindex="-1"])',
|
|
59426
|
+
'[contenteditable]:not([contenteditable="false"])',
|
|
59427
|
+
];
|
|
59428
|
+
|
|
59429
|
+
// List of custom components that are known to be focusable
|
|
59430
|
+
const FOCUSABLE_COMPONENTS$3 = [
|
|
59431
|
+
"auro-checkbox",
|
|
59432
|
+
"auro-radio",
|
|
59433
|
+
"auro-dropdown",
|
|
59434
|
+
"auro-button",
|
|
59435
|
+
"auro-combobox",
|
|
59436
|
+
"auro-input",
|
|
59437
|
+
"auro-counter",
|
|
59438
|
+
// 'auro-menu', // Auro menu is not focusable by default, it uses a different interaction model
|
|
59439
|
+
"auro-select",
|
|
59440
|
+
"auro-datepicker",
|
|
59441
|
+
"auro-hyperlink",
|
|
59442
|
+
"auro-accordion",
|
|
59443
|
+
];
|
|
59444
|
+
|
|
59445
|
+
/**
|
|
59446
|
+
* Determines if a given element is a custom focusable component.
|
|
59447
|
+
* Returns true if the element matches a known focusable component and is not disabled.
|
|
59448
|
+
*
|
|
59449
|
+
* @param {HTMLElement} element The element to check for focusability.
|
|
59450
|
+
* @returns {boolean} True if the element is a focusable custom component, false otherwise.
|
|
59451
|
+
*/
|
|
59452
|
+
function isFocusableComponent$3(element) {
|
|
59453
|
+
const componentName = element.tagName.toLowerCase();
|
|
59454
|
+
|
|
59455
|
+
// Guard Clause: Element is a focusable component
|
|
59456
|
+
if (
|
|
59457
|
+
!FOCUSABLE_COMPONENTS$3.some(
|
|
59458
|
+
(name) => element.hasAttribute(name) || componentName === name,
|
|
59459
|
+
)
|
|
59460
|
+
)
|
|
59461
|
+
return false;
|
|
59462
|
+
|
|
59463
|
+
// Guard Clause: Element is not disabled
|
|
59464
|
+
if (element.hasAttribute("disabled")) return false;
|
|
59465
|
+
|
|
59466
|
+
// Guard Clause: The element is a hyperlink and has no href attribute
|
|
59467
|
+
if (componentName.match("hyperlink") && !element.hasAttribute("href"))
|
|
59468
|
+
return false;
|
|
59469
|
+
|
|
59470
|
+
// If all guard clauses pass, the element is a focusable component
|
|
59471
|
+
return true;
|
|
59472
|
+
}
|
|
59473
|
+
|
|
59474
|
+
/**
|
|
59475
|
+
* Safely get a numeric tabindex for an element.
|
|
59476
|
+
* Returns a number if the tabindex is a valid integer, otherwise null.
|
|
59477
|
+
*
|
|
59478
|
+
* @param {HTMLElement} element The element whose tabindex to read.
|
|
59479
|
+
* @returns {?number} The numeric tabindex or null if missing/invalid.
|
|
59480
|
+
*/
|
|
59481
|
+
function getNumericTabIndex$3(element) {
|
|
59482
|
+
const raw = element.getAttribute("tabindex");
|
|
59483
|
+
if (raw == null) return null;
|
|
59484
|
+
|
|
59485
|
+
const value = Number.parseInt(raw, 10);
|
|
59486
|
+
return Number.isNaN(value) ? null : value;
|
|
59487
|
+
}
|
|
59488
|
+
|
|
59489
|
+
/**
|
|
59490
|
+
* Retrieves all focusable elements within the container in DOM order, including those in shadow DOM and slots.
|
|
59491
|
+
* Returns a unique, ordered array of elements that can receive focus.
|
|
59492
|
+
* Also sorts elements with tabindex first, preserving their order.
|
|
59493
|
+
*
|
|
59494
|
+
* @param {HTMLElement} container The container to search within
|
|
59495
|
+
* @returns {Array<HTMLElement>} An array of focusable elements within the container.
|
|
59496
|
+
*/
|
|
59497
|
+
function getFocusableElements$3(container) {
|
|
59498
|
+
// Get elements in DOM order by walking the tree
|
|
59499
|
+
const orderedFocusableElements = [];
|
|
59500
|
+
|
|
59501
|
+
// Define a recursive function to collect focusable elements in DOM order
|
|
59502
|
+
const collectFocusableElements = (root) => {
|
|
59503
|
+
// Check if current element is focusable
|
|
59504
|
+
if (root.nodeType === Node.ELEMENT_NODE) {
|
|
59505
|
+
// Check if this is a custom component that is focusable
|
|
59506
|
+
const isComponentFocusable = isFocusableComponent$3(root);
|
|
59507
|
+
|
|
59508
|
+
if (isComponentFocusable) {
|
|
59509
|
+
// Add the component itself as a focusable element and don't traverse its shadow DOM
|
|
59510
|
+
orderedFocusableElements.push(root);
|
|
59511
|
+
return; // Skip traversing inside this component
|
|
59512
|
+
}
|
|
59513
|
+
|
|
59514
|
+
// Check if the element itself matches any selector
|
|
59515
|
+
for (const selector of FOCUSABLE_SELECTORS$3) {
|
|
59516
|
+
if (root.matches?.(selector)) {
|
|
59517
|
+
orderedFocusableElements.push(root);
|
|
59518
|
+
break; // Once we know it's focusable, no need to check other selectors
|
|
59519
|
+
}
|
|
59520
|
+
}
|
|
59521
|
+
|
|
59522
|
+
// Process shadow DOM only for non-Auro components
|
|
59523
|
+
if (root.shadowRoot) {
|
|
59524
|
+
// Process shadow DOM children in order
|
|
59525
|
+
if (root.shadowRoot.children) {
|
|
59526
|
+
Array.from(root.shadowRoot.children).forEach((child) => {
|
|
59527
|
+
collectFocusableElements(child);
|
|
59528
|
+
});
|
|
59529
|
+
}
|
|
59530
|
+
}
|
|
59531
|
+
|
|
59532
|
+
// Process slots and their assigned nodes in order
|
|
59533
|
+
if (root.tagName === "SLOT") {
|
|
59534
|
+
const assignedNodes = root.assignedNodes({ flatten: true });
|
|
59535
|
+
for (const node of assignedNodes) {
|
|
59536
|
+
collectFocusableElements(node);
|
|
59537
|
+
}
|
|
59538
|
+
} else {
|
|
59539
|
+
// Process light DOM children in order
|
|
59540
|
+
if (root.children) {
|
|
59541
|
+
Array.from(root.children).forEach((child) => {
|
|
59542
|
+
collectFocusableElements(child);
|
|
59543
|
+
});
|
|
59544
|
+
}
|
|
59545
|
+
}
|
|
59546
|
+
}
|
|
59547
|
+
};
|
|
59548
|
+
|
|
59549
|
+
// Start the traversal from the container
|
|
59550
|
+
collectFocusableElements(container);
|
|
59551
|
+
|
|
59552
|
+
// Remove duplicates that might have been collected through different paths
|
|
59553
|
+
// while preserving order
|
|
59554
|
+
const uniqueElements = [];
|
|
59555
|
+
const seen = new Set();
|
|
59556
|
+
|
|
59557
|
+
for (const element of orderedFocusableElements) {
|
|
59558
|
+
if (!seen.has(element)) {
|
|
59559
|
+
seen.add(element);
|
|
59560
|
+
uniqueElements.push(element);
|
|
59561
|
+
}
|
|
59562
|
+
}
|
|
59563
|
+
|
|
59564
|
+
// Move tab-indexed elements to the front while preserving their order
|
|
59565
|
+
// This ensures that elements with tabindex are prioritized in the focus order
|
|
59566
|
+
|
|
59567
|
+
// First extract elements with valid positive tabindex
|
|
59568
|
+
const elementsWithTabindex = uniqueElements.filter((el) => {
|
|
59569
|
+
const tabindex = getNumericTabIndex$3(el);
|
|
59570
|
+
return tabindex !== null && tabindex > 0;
|
|
59571
|
+
});
|
|
59572
|
+
|
|
59573
|
+
// Sort these elements by their tabindex value
|
|
59574
|
+
elementsWithTabindex.sort((a, b) => {
|
|
59575
|
+
const aIndex = getNumericTabIndex$3(a) ?? 0;
|
|
59576
|
+
const bIndex = getNumericTabIndex$3(b) ?? 0;
|
|
59577
|
+
return aIndex - bIndex;
|
|
59578
|
+
});
|
|
59579
|
+
|
|
59580
|
+
// Elements without tabindex (preserving their original order)
|
|
59581
|
+
const elementsWithoutTabindex = uniqueElements.filter((el) => {
|
|
59582
|
+
const tabindex = getNumericTabIndex$3(el);
|
|
59583
|
+
|
|
59584
|
+
// Elements without tabindex or with tabindex of 0 stay in DOM order
|
|
59585
|
+
return tabindex === null || tabindex === 0;
|
|
59586
|
+
});
|
|
59587
|
+
|
|
59588
|
+
// Combine both arrays with tabindex elements first
|
|
59589
|
+
const tabIndexedUniqueElements = [
|
|
59590
|
+
...elementsWithTabindex,
|
|
59591
|
+
...elementsWithoutTabindex,
|
|
59592
|
+
];
|
|
59593
|
+
|
|
59594
|
+
return tabIndexedUniqueElements;
|
|
59595
|
+
}
|
|
59596
|
+
|
|
59284
59597
|
// Copyright (c) 2026 Alaska Airlines. All rights reserved. Licensed under the Apache-2.0 license
|
|
59285
59598
|
// See LICENSE in the project root for license information.
|
|
59286
59599
|
|
|
59600
|
+
|
|
59601
|
+
/**
|
|
59602
|
+
* Whether `el` is currently visible enough to receive focus. Prefers the
|
|
59603
|
+
* browser's `checkVisibility()`; otherwise combines a display/visibility check
|
|
59604
|
+
* with an ancestor-hidden probe that keeps position:fixed elements visible.
|
|
59605
|
+
* @param {Element} el - The element to test.
|
|
59606
|
+
* @returns {boolean}
|
|
59607
|
+
*/
|
|
59608
|
+
function isVisibleForFocus$1(el) {
|
|
59609
|
+
if (typeof el.checkVisibility === 'function') {
|
|
59610
|
+
return el.checkVisibility();
|
|
59611
|
+
}
|
|
59612
|
+
const style = el.ownerDocument.defaultView.getComputedStyle(el);
|
|
59613
|
+
if (style.display === 'none' || style.visibility === 'hidden') {
|
|
59614
|
+
return false;
|
|
59615
|
+
}
|
|
59616
|
+
return el.offsetParent !== null || style.position === 'fixed';
|
|
59617
|
+
}
|
|
59618
|
+
|
|
59619
|
+
/**
|
|
59620
|
+
* Return the tab stop that comes before the counter-group in page tab order,
|
|
59621
|
+
* skipping any hidden entries the walker doesn't filter itself. The group host
|
|
59622
|
+
* itself is not a tab stop; its focusables (the internal dropdown and the
|
|
59623
|
+
* counters) are, so anchor the search on the group's earliest focusable.
|
|
59624
|
+
* @param {Element} component - The auro-counter-group host element.
|
|
59625
|
+
* @returns {Element|null}
|
|
59626
|
+
*/
|
|
59627
|
+
function getPreviousTabStop$1(component) {
|
|
59628
|
+
const tabStops = getFocusableElements$3(component.ownerDocument.body);
|
|
59629
|
+
const counters = component.counters || [];
|
|
59630
|
+
const owned = [
|
|
59631
|
+
component,
|
|
59632
|
+
component.dropdown,
|
|
59633
|
+
...counters
|
|
59634
|
+
].filter(Boolean);
|
|
59635
|
+
let groupStart = tabStops.length;
|
|
59636
|
+
owned.forEach((node) => {
|
|
59637
|
+
const index = tabStops.indexOf(node);
|
|
59638
|
+
if (index >= 0 && index < groupStart) {
|
|
59639
|
+
groupStart = index;
|
|
59640
|
+
}
|
|
59641
|
+
});
|
|
59642
|
+
for (let index = groupStart - 1; index >= 0; index -= 1) {
|
|
59643
|
+
if (isVisibleForFocus$1(tabStops[index])) {
|
|
59644
|
+
return tabStops[index];
|
|
59645
|
+
}
|
|
59646
|
+
}
|
|
59647
|
+
return null;
|
|
59648
|
+
}
|
|
59649
|
+
|
|
59287
59650
|
const counterGroupKeyboardStrategy = {
|
|
59288
59651
|
Escape(component, evt) {
|
|
59289
59652
|
if (!component.dropdown || !component.dropdown.isPopoverVisible) {
|
|
@@ -59297,6 +59660,48 @@ const counterGroupKeyboardStrategy = {
|
|
|
59297
59660
|
|
|
59298
59661
|
component.dropdown.hide();
|
|
59299
59662
|
},
|
|
59663
|
+
|
|
59664
|
+
Tab(component, evt, ctx) {
|
|
59665
|
+
// Forward Tab already exits past the bib content and the focusout handler
|
|
59666
|
+
// closes the bib. Fullscreen relies on the dialog's native focus trapping.
|
|
59667
|
+
if (!ctx.isExpanded || ctx.isModal || !evt.shiftKey) {
|
|
59668
|
+
return;
|
|
59669
|
+
}
|
|
59670
|
+
|
|
59671
|
+
// The trigger precedes the bib content in the flattened tab order, so a
|
|
59672
|
+
// native Shift+Tab off the first counter lands back on the trigger and
|
|
59673
|
+
// leaves the bib open. Only intercept when focus is on the first focusable
|
|
59674
|
+
// in the bib; otherwise let the browser move to the previous counter.
|
|
59675
|
+
// `composedPath()` reports the real event origin through every shadow
|
|
59676
|
+
// boundary, unlike `document.activeElement`, which retargets to the first
|
|
59677
|
+
// slotted counter and cannot tell the counters apart.
|
|
59678
|
+
const focusables = getFocusableElements$3(component.dropdown.bibContent);
|
|
59679
|
+
if (!focusables.length) {
|
|
59680
|
+
return;
|
|
59681
|
+
}
|
|
59682
|
+
|
|
59683
|
+
const path = evt.composedPath();
|
|
59684
|
+
const activeIndex = focusables.findIndex((el) => path.includes(el));
|
|
59685
|
+
if (activeIndex !== 0) {
|
|
59686
|
+
return;
|
|
59687
|
+
}
|
|
59688
|
+
|
|
59689
|
+
const previousTabStop = getPreviousTabStop$1(component);
|
|
59690
|
+
|
|
59691
|
+
// Always suppress the native Shift+Tab. Otherwise it fires against the bib
|
|
59692
|
+
// as it is torn down and lands focus on the trigger (which precedes the
|
|
59693
|
+
// first counter), re-opening the exact loop this handler prevents. When
|
|
59694
|
+
// nothing precedes the group, focus falls to the body instead of the
|
|
59695
|
+
// trigger, which reads as exiting the group backward.
|
|
59696
|
+
evt.preventDefault();
|
|
59697
|
+
component.hideBib();
|
|
59698
|
+
|
|
59699
|
+
if (!previousTabStop) {
|
|
59700
|
+
return;
|
|
59701
|
+
}
|
|
59702
|
+
|
|
59703
|
+
doubleRaf$2(() => previousTabStop.focus());
|
|
59704
|
+
},
|
|
59300
59705
|
};
|
|
59301
59706
|
|
|
59302
59707
|
/* 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,
|
|
@@ -61381,7 +61786,7 @@ let AuroHelpText$5 = class AuroHelpText extends i$3 {
|
|
|
61381
61786
|
}
|
|
61382
61787
|
};
|
|
61383
61788
|
|
|
61384
|
-
var formkitVersion$5 = '
|
|
61789
|
+
var formkitVersion$5 = '202609022200';
|
|
61385
61790
|
|
|
61386
61791
|
// Copyright (c) Alaska Air. All right reserved. Licensed under the Apache-2.0 license
|
|
61387
61792
|
// See LICENSE in the project root for license information.
|
|
@@ -63175,7 +63580,7 @@ let AuroHelpText$4 = class AuroHelpText extends i$3 {
|
|
|
63175
63580
|
}
|
|
63176
63581
|
};
|
|
63177
63582
|
|
|
63178
|
-
var formkitVersion$4 = '
|
|
63583
|
+
var formkitVersion$4 = '202609022200';
|
|
63179
63584
|
|
|
63180
63585
|
// Copyright (c) 2026 Alaska Airlines. All rights reserved. Licensed under the Apache-2.0 license
|
|
63181
63586
|
// See LICENSE in the project root for license information.
|
|
@@ -66539,6 +66944,48 @@ const computePosition$2 = (reference, floating, options) => {
|
|
|
66539
66944
|
});
|
|
66540
66945
|
};
|
|
66541
66946
|
|
|
66947
|
+
/**
|
|
66948
|
+
* Generates a v4 UUID with a three-tier fallback for insecure contexts.
|
|
66949
|
+
*
|
|
66950
|
+
* Tier 1 (secure contexts): crypto.randomUUID() — native, fully random.
|
|
66951
|
+
* Tier 2 (insecure contexts): crypto.getRandomValues() — available on all
|
|
66952
|
+
* modern browsers regardless of secure-context status.
|
|
66953
|
+
* Tier 3 (last resort, no crypto API): new Date().getTime() — lower entropy,
|
|
66954
|
+
* but sufficient for element IDs where collision risk is negligible.
|
|
66955
|
+
*
|
|
66956
|
+
* See: https://w3c.github.io/webcrypto/#dom-crypto-randomuuid (secure-context restriction)
|
|
66957
|
+
*/
|
|
66958
|
+
function generateUUID$1() {
|
|
66959
|
+
let uuid;
|
|
66960
|
+
|
|
66961
|
+
if (
|
|
66962
|
+
typeof crypto !== "undefined" &&
|
|
66963
|
+
typeof crypto.randomUUID === "function"
|
|
66964
|
+
) {
|
|
66965
|
+
uuid = crypto.randomUUID();
|
|
66966
|
+
} else if (
|
|
66967
|
+
typeof crypto !== "undefined" &&
|
|
66968
|
+
typeof crypto.getRandomValues === "function"
|
|
66969
|
+
) {
|
|
66970
|
+
const bytes = new Uint8Array(16);
|
|
66971
|
+
crypto.getRandomValues(bytes);
|
|
66972
|
+
bytes[6] = (bytes[6] & 0x0f) | 0x40;
|
|
66973
|
+
bytes[8] = (bytes[8] & 0x3f) | 0x80;
|
|
66974
|
+
const hex = Array.from(bytes).map((b) => b.toString(16).padStart(2, "0"));
|
|
66975
|
+
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("")}`;
|
|
66976
|
+
} else {
|
|
66977
|
+
let d = new Date().getTime();
|
|
66978
|
+
uuid = "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, (c) => {
|
|
66979
|
+
const r = (d % 16) | 0;
|
|
66980
|
+
d = (d - r) / 16 || new Date().getTime();
|
|
66981
|
+
return (c === "x" ? r : (r & 0x3) | 0x8).toString(16);
|
|
66982
|
+
});
|
|
66983
|
+
}
|
|
66984
|
+
|
|
66985
|
+
// CSS selectors require IDs starting with a letter; replace a leading digit with 'a'.
|
|
66986
|
+
return /^[0-9]/.test(uuid) ? `a${uuid.slice(1)}` : uuid;
|
|
66987
|
+
}
|
|
66988
|
+
|
|
66542
66989
|
/* eslint-disable line-comment-position, no-inline-comments */
|
|
66543
66990
|
|
|
66544
66991
|
|
|
@@ -67557,7 +68004,7 @@ let AuroFloatingUI$1 = class AuroFloatingUI {
|
|
|
67557
68004
|
|
|
67558
68005
|
this.id = element.getAttribute("id");
|
|
67559
68006
|
if (!this.id) {
|
|
67560
|
-
this.id =
|
|
68007
|
+
this.id = generateUUID$1();
|
|
67561
68008
|
element.setAttribute("id", this.id);
|
|
67562
68009
|
}
|
|
67563
68010
|
|
|
@@ -68602,7 +69049,7 @@ let AuroHelpText$2 = class AuroHelpText extends i$3 {
|
|
|
68602
69049
|
}
|
|
68603
69050
|
};
|
|
68604
69051
|
|
|
68605
|
-
var formkitVersion$2 = '
|
|
69052
|
+
var formkitVersion$2 = '202609022200';
|
|
68606
69053
|
|
|
68607
69054
|
/**
|
|
68608
69055
|
* AuroElement is the shared base class for layout-aware Auro form components.
|
|
@@ -82464,7 +82911,7 @@ let AuroHelpText$1$1 = class AuroHelpText extends i$3 {
|
|
|
82464
82911
|
}
|
|
82465
82912
|
};
|
|
82466
82913
|
|
|
82467
|
-
var formkitVersion$1$1 = '
|
|
82914
|
+
var formkitVersion$1$1 = '202609022200';
|
|
82468
82915
|
|
|
82469
82916
|
// Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
|
|
82470
82917
|
// See LICENSE in the project root for license information.
|
|
@@ -83656,7 +84103,7 @@ let AuroBibtemplate$1 = class AuroBibtemplate extends i$3 {
|
|
|
83656
84103
|
}
|
|
83657
84104
|
};
|
|
83658
84105
|
|
|
83659
|
-
var formkitVersion$3 = '
|
|
84106
|
+
var formkitVersion$3 = '202609022200';
|
|
83660
84107
|
|
|
83661
84108
|
var styleCss$1$3 = i$6`.util_displayInline{display:inline}.util_displayInlineBlock{display:inline-block}.util_displayBlock{display:block}.util_displayFlex{display:flex}.util_displayHidden{display:none}.util_displayHiddenVisually{position:absolute;overflow:hidden;clip:rect(1px, 1px, 1px, 1px);width:1px;height:1px;padding:0;border:0}:host{display:block;text-align:left}:host [auro-dropdown]{--ds-auro-dropdown-trigger-background-color: transparent}:host #inputInBib::part(wrapper){box-shadow:none}:host #inputInBib::part(accent-left){display:none}:host([layout*=classic]) [auro-input]{width:100%}:host([layout*=classic]) [auro-input]::part(helpText){display:none}:host([layout*=classic]) #slotHolder{display:none}`;
|
|
83662
84109
|
|
|
@@ -84097,6 +84544,11 @@ class AuroCombobox extends AuroElement$3 {
|
|
|
84097
84544
|
this.behavior = "suggestion";
|
|
84098
84545
|
this.clearBtnFocused = false;
|
|
84099
84546
|
|
|
84547
|
+
// One-shot: set when the input's clear button is activated so the
|
|
84548
|
+
// SPA-preselect guard in handleInputValueChange doesn't swallow the
|
|
84549
|
+
// genuine clear (AB#1634257).
|
|
84550
|
+
this._clearBtnActivated = false;
|
|
84551
|
+
|
|
84100
84552
|
// Defaults that effect the overall layout of the combobox
|
|
84101
84553
|
this.checkmark = false;
|
|
84102
84554
|
this.dvInputOnly = false;
|
|
@@ -85054,6 +85506,13 @@ class AuroCombobox extends AuroElement$3 {
|
|
|
85054
85506
|
this.bibtemplate = this.dropdown.querySelector(this.bibtemplateTag._$litStatic$);
|
|
85055
85507
|
this.inputInBib = this.bibtemplate.querySelector(this.inputTag._$litStatic$);
|
|
85056
85508
|
|
|
85509
|
+
// Mirror the trigger's clear-button tracking onto the fullscreen bib input
|
|
85510
|
+
// so clearing there also fully resets the combobox (AB#1634257). See
|
|
85511
|
+
// trackClearBtnActivation for why this must run in the capture phase.
|
|
85512
|
+
if (this.inputInBib && this.inputInBib !== this.input) {
|
|
85513
|
+
this.trackClearBtnActivation(this.inputInBib);
|
|
85514
|
+
}
|
|
85515
|
+
|
|
85057
85516
|
// Pass label text to the dropdown bib for accessible dialog naming
|
|
85058
85517
|
const labelElement = this.querySelector('[slot="label"]');
|
|
85059
85518
|
if (labelElement) {
|
|
@@ -85439,6 +85898,52 @@ class AuroCombobox extends AuroElement$3 {
|
|
|
85439
85898
|
this.clearBtnFocused = false;
|
|
85440
85899
|
}
|
|
85441
85900
|
});
|
|
85901
|
+
|
|
85902
|
+
this.trackClearBtnActivation(this.input);
|
|
85903
|
+
}
|
|
85904
|
+
|
|
85905
|
+
/**
|
|
85906
|
+
* Flags genuine clear-button activations on an auro-input so the SPA-preselect
|
|
85907
|
+
* guard in handleInputValueChange doesn't swallow them.
|
|
85908
|
+
*
|
|
85909
|
+
* The auro-input clear button fires an `isProgrammatic` input event (via
|
|
85910
|
+
* notifyValueChanged) that is indistinguishable in shape from the
|
|
85911
|
+
* SPA-preselect echo that guard bails on (isProgrammatic + set value + empty
|
|
85912
|
+
* input). Without this one-shot flag, clicking clear would leave
|
|
85913
|
+
* this.value/optionSelected stale (AB#1634257).
|
|
85914
|
+
*
|
|
85915
|
+
* Delegated on the shadow root so it works regardless of when .clearBtn
|
|
85916
|
+
* renders (it only exists after a value is set), and covers both real clicks
|
|
85917
|
+
* and programmatic clearBtn.click() (which no focusin precedes). Registered in
|
|
85918
|
+
* the CAPTURE phase so the flag is set BEFORE the button's own @click
|
|
85919
|
+
* (handleClickClear) fires its synchronous input event — which is when
|
|
85920
|
+
* handleInputValueChange reads the flag.
|
|
85921
|
+
* @private
|
|
85922
|
+
* @param {Element} inputEl - The auro-input whose clear button to track.
|
|
85923
|
+
* @returns {void}
|
|
85924
|
+
*/
|
|
85925
|
+
trackClearBtnActivation(inputEl) {
|
|
85926
|
+
if (!inputEl || !inputEl.shadowRoot) {
|
|
85927
|
+
return;
|
|
85928
|
+
}
|
|
85929
|
+
inputEl.shadowRoot.addEventListener('click', (event) => {
|
|
85930
|
+
if (event.target.closest('.clearBtn')) {
|
|
85931
|
+
this._clearBtnActivated = true;
|
|
85932
|
+
|
|
85933
|
+
// Bound the flag's lifetime to this synchronous clear -> input window.
|
|
85934
|
+
// auro-input's handleClickClear fires its input event synchronously
|
|
85935
|
+
// (before any macrotask runs), so handleInputValueChange consumes the
|
|
85936
|
+
// flag first and this reset is a harmless no-op. It only does real work
|
|
85937
|
+
// if that input event never arrives (e.g. auro-input throws mid-clear),
|
|
85938
|
+
// guaranteeing the flag can't survive to be misread as a genuine clear
|
|
85939
|
+
// by a later unrelated event such as an SPA-preselect echo (AB#1634257).
|
|
85940
|
+
// Scheduled via _scheduleTimer so disconnectedCallback cancels it if the
|
|
85941
|
+
// component tears down inside that window.
|
|
85942
|
+
this._scheduleTimer(() => {
|
|
85943
|
+
this._clearBtnActivated = false;
|
|
85944
|
+
}, 0);
|
|
85945
|
+
}
|
|
85946
|
+
}, true);
|
|
85442
85947
|
}
|
|
85443
85948
|
|
|
85444
85949
|
/**
|
|
@@ -85480,6 +85985,17 @@ class AuroCombobox extends AuroElement$3 {
|
|
|
85480
85985
|
* @returns {void}
|
|
85481
85986
|
*/
|
|
85482
85987
|
handleInputValueChange(event) {
|
|
85988
|
+
// Consume the one-shot clear-button flag on EVERY entry, before any branch
|
|
85989
|
+
// below can early-return. trackClearBtnActivation sets it in the capture
|
|
85990
|
+
// phase right before auro-input's clear button fires its synchronous input
|
|
85991
|
+
// event; reading and immediately clearing it here guarantees the flag never
|
|
85992
|
+
// survives a handleInputValueChange call to leak into a later event (e.g.
|
|
85993
|
+
// the bib branch bailing at _syncingDisplayValue, or an SPA-preselect echo)
|
|
85994
|
+
// where it would defeat the guard below. Held in a local so that guard can
|
|
85995
|
+
// still tell a genuine clear from the init-render echo (AB#1634257).
|
|
85996
|
+
const clearBtnActivated = this._clearBtnActivated;
|
|
85997
|
+
this._clearBtnActivated = false;
|
|
85998
|
+
|
|
85483
85999
|
// When the event comes from the fullscreen bib input, sync the value to
|
|
85484
86000
|
// the trigger input. Setting trigger.value triggers Lit's updated()
|
|
85485
86001
|
// (async, microtask) which fires notifyValueChanged() → another 'input'
|
|
@@ -85527,7 +86043,12 @@ class AuroCombobox extends AuroElement$3 {
|
|
|
85527
86043
|
// to the exact shape of that echo (isProgrammatic + non-empty combobox
|
|
85528
86044
|
// value + empty input.value) so it doesn't affect the swap/typed paths
|
|
85529
86045
|
// where value/input already track each other through the sync helpers.
|
|
85530
|
-
|
|
86046
|
+
// The clear button's echo has the same shape (isProgrammatic + set value +
|
|
86047
|
+
// empty input) but is a genuine user clear that MUST reset this.value and
|
|
86048
|
+
// optionSelected below. clearBtnActivated (consumed at the top of this
|
|
86049
|
+
// method) is true only for that genuine clear, so only the real
|
|
86050
|
+
// SPA-preselect echo bails (AB#1634257).
|
|
86051
|
+
if (event && event.isProgrammatic && this.value && !this.input.value && !clearBtnActivated) {
|
|
85531
86052
|
return;
|
|
85532
86053
|
}
|
|
85533
86054
|
|
|
@@ -85672,6 +86193,14 @@ class AuroCombobox extends AuroElement$3 {
|
|
|
85672
86193
|
// retry would otherwise keep rescheduling itself indefinitely.
|
|
85673
86194
|
this._pendingTimers.forEach((id) => clearTimeout(id));
|
|
85674
86195
|
this._pendingTimers.clear();
|
|
86196
|
+
|
|
86197
|
+
// Cancelling the timers above drops the macrotask that would have reset
|
|
86198
|
+
// _clearBtnActivated, so reset it here too. Otherwise a disconnect inside
|
|
86199
|
+
// the clear-click -> macrotask window strands the flag `true`; instance
|
|
86200
|
+
// state survives reconnect, and the first matching input event (including
|
|
86201
|
+
// an SPA-preselect echo) would then bypass the guard in
|
|
86202
|
+
// handleInputValueChange and silently clear value/optionSelected (AB#1634257).
|
|
86203
|
+
this._clearBtnActivated = false;
|
|
85675
86204
|
}
|
|
85676
86205
|
|
|
85677
86206
|
firstUpdated() {
|
|
@@ -85770,6 +86299,14 @@ class AuroCombobox extends AuroElement$3 {
|
|
|
85770
86299
|
}
|
|
85771
86300
|
if (this.menu.value || this.menu.optionSelected) {
|
|
85772
86301
|
this.menu.reset();
|
|
86302
|
+
} else {
|
|
86303
|
+
// The menu's selection properties are already cleared, but option
|
|
86304
|
+
// elements can still carry a stale `selected` attribute (e.g. the menu
|
|
86305
|
+
// options were rebuilt after the value was set, orphaning the DOM from
|
|
86306
|
+
// the now-null optionSelected). reset() is skipped above in that case,
|
|
86307
|
+
// so re-sync the option DOM directly to guarantee no option renders as
|
|
86308
|
+
// selected once the field is cleared (AB#1634259).
|
|
86309
|
+
this.menu.clearSelection();
|
|
85773
86310
|
}
|
|
85774
86311
|
} finally {
|
|
85775
86312
|
this._clearing = false;
|
|
@@ -87404,6 +87941,22 @@ class AuroMenu extends AuroElement$2 {
|
|
|
87404
87941
|
this.value = undefined;
|
|
87405
87942
|
this._selectedKey = undefined;
|
|
87406
87943
|
this._index = -1;
|
|
87944
|
+
|
|
87945
|
+
// Eagerly sync the option DOM to the now-empty selection. Nulling the
|
|
87946
|
+
// reactive properties above normally schedules updated() → updateItemsState,
|
|
87947
|
+
// but that only runs when a property actually changes. If an option still
|
|
87948
|
+
// carries a stale `selected`/`aria-selected` attribute while these
|
|
87949
|
+
// properties are already undefined (e.g. options were rebuilt after a value
|
|
87950
|
+
// was set), no re-render fires and the option keeps rendering as selected.
|
|
87951
|
+
// Strip that state now so no option looks selected after a clear (AB#1634259).
|
|
87952
|
+
// Intentionally leaves `active`/`optionActive` untouched so a highlighted
|
|
87953
|
+
// option remains keyboard-re-selectable after emptying the value (AB#1606433).
|
|
87954
|
+
this.updateItemsState(new Map([
|
|
87955
|
+
[
|
|
87956
|
+
'optionSelected',
|
|
87957
|
+
true
|
|
87958
|
+
]
|
|
87959
|
+
]));
|
|
87407
87960
|
}
|
|
87408
87961
|
|
|
87409
87962
|
/**
|
|
@@ -91024,6 +91577,48 @@ const computePosition = (reference, floating, options) => {
|
|
|
91024
91577
|
});
|
|
91025
91578
|
};
|
|
91026
91579
|
|
|
91580
|
+
/**
|
|
91581
|
+
* Generates a v4 UUID with a three-tier fallback for insecure contexts.
|
|
91582
|
+
*
|
|
91583
|
+
* Tier 1 (secure contexts): crypto.randomUUID() — native, fully random.
|
|
91584
|
+
* Tier 2 (insecure contexts): crypto.getRandomValues() — available on all
|
|
91585
|
+
* modern browsers regardless of secure-context status.
|
|
91586
|
+
* Tier 3 (last resort, no crypto API): new Date().getTime() — lower entropy,
|
|
91587
|
+
* but sufficient for element IDs where collision risk is negligible.
|
|
91588
|
+
*
|
|
91589
|
+
* See: https://w3c.github.io/webcrypto/#dom-crypto-randomuuid (secure-context restriction)
|
|
91590
|
+
*/
|
|
91591
|
+
function generateUUID() {
|
|
91592
|
+
let uuid;
|
|
91593
|
+
|
|
91594
|
+
if (
|
|
91595
|
+
typeof crypto !== "undefined" &&
|
|
91596
|
+
typeof crypto.randomUUID === "function"
|
|
91597
|
+
) {
|
|
91598
|
+
uuid = crypto.randomUUID();
|
|
91599
|
+
} else if (
|
|
91600
|
+
typeof crypto !== "undefined" &&
|
|
91601
|
+
typeof crypto.getRandomValues === "function"
|
|
91602
|
+
) {
|
|
91603
|
+
const bytes = new Uint8Array(16);
|
|
91604
|
+
crypto.getRandomValues(bytes);
|
|
91605
|
+
bytes[6] = (bytes[6] & 0x0f) | 0x40;
|
|
91606
|
+
bytes[8] = (bytes[8] & 0x3f) | 0x80;
|
|
91607
|
+
const hex = Array.from(bytes).map((b) => b.toString(16).padStart(2, "0"));
|
|
91608
|
+
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("")}`;
|
|
91609
|
+
} else {
|
|
91610
|
+
let d = new Date().getTime();
|
|
91611
|
+
uuid = "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, (c) => {
|
|
91612
|
+
const r = (d % 16) | 0;
|
|
91613
|
+
d = (d - r) / 16 || new Date().getTime();
|
|
91614
|
+
return (c === "x" ? r : (r & 0x3) | 0x8).toString(16);
|
|
91615
|
+
});
|
|
91616
|
+
}
|
|
91617
|
+
|
|
91618
|
+
// CSS selectors require IDs starting with a letter; replace a leading digit with 'a'.
|
|
91619
|
+
return /^[0-9]/.test(uuid) ? `a${uuid.slice(1)}` : uuid;
|
|
91620
|
+
}
|
|
91621
|
+
|
|
91027
91622
|
/* eslint-disable line-comment-position, no-inline-comments */
|
|
91028
91623
|
|
|
91029
91624
|
|
|
@@ -92042,7 +92637,7 @@ class AuroFloatingUI {
|
|
|
92042
92637
|
|
|
92043
92638
|
this.id = element.getAttribute("id");
|
|
92044
92639
|
if (!this.id) {
|
|
92045
|
-
this.id =
|
|
92640
|
+
this.id = generateUUID();
|
|
92046
92641
|
element.setAttribute("id", this.id);
|
|
92047
92642
|
}
|
|
92048
92643
|
|
|
@@ -93087,7 +93682,7 @@ let AuroHelpText$1 = class AuroHelpText extends i$3 {
|
|
|
93087
93682
|
}
|
|
93088
93683
|
};
|
|
93089
93684
|
|
|
93090
|
-
var formkitVersion$1 = '
|
|
93685
|
+
var formkitVersion$1 = '202609022200';
|
|
93091
93686
|
|
|
93092
93687
|
/**
|
|
93093
93688
|
* AuroElement is the shared base class for layout-aware Auro form components.
|
|
@@ -95260,7 +95855,7 @@ class AuroHelpText extends i$3 {
|
|
|
95260
95855
|
}
|
|
95261
95856
|
}
|
|
95262
95857
|
|
|
95263
|
-
var formkitVersion = '
|
|
95858
|
+
var formkitVersion = '202609022200';
|
|
95264
95859
|
|
|
95265
95860
|
var styleCss = i$6`.util_displayInline{display:inline}.util_displayInlineBlock{display:inline-block}.util_displayBlock{display:block}.util_displayFlex{display:flex}.util_displayHidden{display:none}.util_displayHiddenVisually{position:absolute;overflow:hidden;clip:rect(1px, 1px, 1px, 1px);width:1px;height:1px;padding:0;border:0}.body-default{font-size:var(--wcss-body-default-font-size, 1rem);font-weight:var(--wcss-body-default-weight, );line-height:var(--wcss-body-default-line-height, 1.5rem)}.body-default,.body-default-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-default-emphasized{font-size:var(--wcss-body-default-emphasized-font-size, 1rem);font-weight:var(--wcss-body-default-emphasized-weight, );line-height:var(--wcss-body-default-emphasized-line-height, 1.5rem)}.body-lg{font-size:var(--wcss-body-lg-font-size, 1.125rem);font-weight:var(--wcss-body-lg-weight, );line-height:var(--wcss-body-lg-line-height, 1.625rem)}.body-lg,.body-lg-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-lg-emphasized{font-size:var(--wcss-body-lg-emphasized-font-size, 1.125rem);font-weight:var(--wcss-body-lg-emphasized-weight, );line-height:var(--wcss-body-lg-emphasized-line-height, 1.625rem)}.body-sm{font-size:var(--wcss-body-sm-font-size, 0.875rem);font-weight:var(--wcss-body-sm-weight, );line-height:var(--wcss-body-sm-line-height, 1.25rem)}.body-sm,.body-sm-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-sm-emphasized{font-size:var(--wcss-body-sm-emphasized-font-size, 0.875rem);font-weight:var(--wcss-body-sm-emphasized-weight, );line-height:var(--wcss-body-sm-emphasized-line-height, 1.25rem)}.body-xs{font-size:var(--wcss-body-xs-font-size, 0.75rem);font-weight:var(--wcss-body-xs-weight, );line-height:var(--wcss-body-xs-line-height, 1rem)}.body-xs,.body-xs-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-xs-emphasized{font-size:var(--wcss-body-xs-emphasized-font-size, 0.75rem);font-weight:var(--wcss-body-xs-emphasized-weight, );line-height:var(--wcss-body-xs-emphasized-line-height, 1rem)}.body-2xs{font-size:var(--wcss-body-2xs-font-size, 0.625rem);font-weight:var(--wcss-body-2xs-weight, );line-height:var(--wcss-body-2xs-line-height, 0.875rem)}.body-2xs,.body-2xs-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-2xs-emphasized{font-size:var(--wcss-body-2xs-emphasized-font-size, 0.625rem);font-weight:var(--wcss-body-2xs-emphasized-weight, );line-height:var(--wcss-body-2xs-emphasized-line-height, 0.875rem)}.display-2xl{font-family:var(--wcss-display-2xl-family, "AS Circular"),var(--wcss-display-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-2xl-font-size, clamp(3.5rem, 6vw, 5.375rem));font-weight:var(--wcss-display-2xl-weight, 300);letter-spacing:var(--wcss-display-2xl-letter-spacing, 0);line-height:var(--wcss-display-2xl-line-height, 1.3)}.display-xl{font-family:var(--wcss-display-xl-family, "AS Circular"),var(--wcss-display-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-xl-font-size, clamp(3rem, 5.3333333333vw, 4.5rem));font-weight:var(--wcss-display-xl-weight, 300);letter-spacing:var(--wcss-display-xl-letter-spacing, 0);line-height:var(--wcss-display-xl-line-height, 1.3)}.display-lg{font-family:var(--wcss-display-lg-family, "AS Circular"),var(--wcss-display-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-lg-font-size, clamp(2.75rem, 4.6666666667vw, 4rem));font-weight:var(--wcss-display-lg-weight, 300);letter-spacing:var(--wcss-display-lg-letter-spacing, 0);line-height:var(--wcss-display-lg-line-height, 1.3)}.display-md{font-family:var(--wcss-display-md-family, "AS Circular"),var(--wcss-display-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-md-font-size, clamp(2.5rem, 4vw, 3.5rem));font-weight:var(--wcss-display-md-weight, 300);letter-spacing:var(--wcss-display-md-letter-spacing, 0);line-height:var(--wcss-display-md-line-height, 1.3)}.display-sm{font-family:var(--wcss-display-sm-family, "AS Circular"),var(--wcss-display-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-sm-font-size, clamp(2rem, 3.6666666667vw, 3rem));font-weight:var(--wcss-display-sm-weight, 300);letter-spacing:var(--wcss-display-sm-letter-spacing, 0);line-height:var(--wcss-display-sm-line-height, 1.3)}.display-xs{font-family:var(--wcss-display-xs-family, "AS Circular"),var(--wcss-display-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-xs-font-size, clamp(1.75rem, 3vw, 2.375rem));font-weight:var(--wcss-display-xs-weight, 300);letter-spacing:var(--wcss-display-xs-letter-spacing, 0);line-height:var(--wcss-display-xs-line-height, 1.3)}.heading-xl{font-family:var(--wcss-heading-xl-family, "AS Circular"),var(--wcss-heading-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-xl-font-size, clamp(2rem, 3vw, 2.5rem));font-weight:var(--wcss-heading-xl-weight, 300);letter-spacing:var(--wcss-heading-xl-letter-spacing, 0);line-height:var(--wcss-heading-xl-line-height, 1.3)}.heading-lg{font-family:var(--wcss-heading-lg-family, "AS Circular"),var(--wcss-heading-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-lg-font-size, clamp(1.75rem, 2.6666666667vw, 2.25rem));font-weight:var(--wcss-heading-lg-weight, 300);letter-spacing:var(--wcss-heading-lg-letter-spacing, 0);line-height:var(--wcss-heading-lg-line-height, 1.3)}.heading-md{font-family:var(--wcss-heading-md-family, "AS Circular"),var(--wcss-heading-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-md-font-size, clamp(1.625rem, 2.3333333333vw, 1.75rem));font-weight:var(--wcss-heading-md-weight, 300);letter-spacing:var(--wcss-heading-md-letter-spacing, 0);line-height:var(--wcss-heading-md-line-height, 1.3)}.heading-sm{font-family:var(--wcss-heading-sm-family, "AS Circular"),var(--wcss-heading-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-sm-font-size, clamp(1.375rem, 2vw, 1.5rem));font-weight:var(--wcss-heading-sm-weight, 300);letter-spacing:var(--wcss-heading-sm-letter-spacing, 0);line-height:var(--wcss-heading-sm-line-height, 1.3)}.heading-xs{font-family:var(--wcss-heading-xs-family, "AS Circular"),var(--wcss-heading-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-xs-font-size, clamp(1.25rem, 1.6666666667vw, 1.25rem));font-weight:var(--wcss-heading-xs-weight, 300);letter-spacing:var(--wcss-heading-xs-letter-spacing, 0);line-height:var(--wcss-heading-xs-line-height, 1.3)}.heading-2xs{font-family:var(--wcss-heading-2xs-family, "AS Circular"),var(--wcss-heading-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-2xs-font-size, clamp(1.125rem, 1.5vw, 1.125rem));font-weight:var(--wcss-heading-2xs-weight, 300);letter-spacing:var(--wcss-heading-2xs-letter-spacing, 0);line-height:var(--wcss-heading-2xs-line-height, 1.3)}.accent-2xl{font-family:var(--wcss-accent-2xl-family, "Good OT"),var(--wcss-accent-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-2xl-font-size, clamp(2rem, 3.1666666667vw, 2.375rem));font-weight:var(--wcss-accent-2xl-weight, 450);letter-spacing:var(--wcss-accent-2xl-letter-spacing, 0.05em);line-height:var(--wcss-accent-2xl-line-height, 1)}.accent-2xl,.accent-xl{text-transform:uppercase}.accent-xl{font-family:var(--wcss-accent-xl-family, "Good OT"),var(--wcss-accent-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-xl-font-size, clamp(1.625rem, 2.3333333333vw, 2rem));font-weight:var(--wcss-accent-xl-weight, 450);letter-spacing:var(--wcss-accent-xl-letter-spacing, 0.05em);line-height:var(--wcss-accent-xl-line-height, 1.3)}.accent-lg{font-family:var(--wcss-accent-lg-family, "Good OT"),var(--wcss-accent-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-lg-font-size, clamp(1.5rem, 2.1666666667vw, 1.75rem));font-weight:var(--wcss-accent-lg-weight, 450);letter-spacing:var(--wcss-accent-lg-letter-spacing, 0.05em);line-height:var(--wcss-accent-lg-line-height, 1.3)}.accent-lg,.accent-md{text-transform:uppercase}.accent-md{font-family:var(--wcss-accent-md-family, "Good OT"),var(--wcss-accent-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-md-font-size, clamp(1.375rem, 1.8333333333vw, 1.5rem));font-weight:var(--wcss-accent-md-weight, 500);letter-spacing:var(--wcss-accent-md-letter-spacing, 0.05em);line-height:var(--wcss-accent-md-line-height, 1.3)}.accent-sm{font-family:var(--wcss-accent-sm-family, "Good OT"),var(--wcss-accent-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-sm-font-size, clamp(1.125rem, 1.5vw, 1.25rem));font-weight:var(--wcss-accent-sm-weight, 500);letter-spacing:var(--wcss-accent-sm-letter-spacing, 0.05em);line-height:var(--wcss-accent-sm-line-height, 1.3)}.accent-sm,.accent-xs{text-transform:uppercase}.accent-xs{font-family:var(--wcss-accent-xs-family, "Good OT"),var(--wcss-accent-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-xs-font-size, clamp(1rem, 1.3333333333vw, 1rem));font-weight:var(--wcss-accent-xs-weight, 500);letter-spacing:var(--wcss-accent-xs-letter-spacing, 0.1em);line-height:var(--wcss-accent-xs-line-height, 1.3)}.accent-2xs{font-family:var(--wcss-accent-2xs-family, "Good OT"),var(--wcss-accent-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-2xs-font-size, clamp(0.875rem, 1.1666666667vw, 0.875rem));font-weight:var(--wcss-accent-2xs-weight, 450);letter-spacing:var(--wcss-accent-2xs-letter-spacing, 0.1em);line-height:var(--wcss-accent-2xs-line-height, 1.3);text-transform:uppercase}[auro-dropdown]{--ds-auro-dropdown-trigger-border-color: var(--ds-auro-select-border-color);--ds-auro-dropdown-trigger-background-color: var(--ds-auro-select-background-color);--ds-auro-dropdown-trigger-container-color: var(--ds-auro-select-background-color);--ds-auro-dropdown-trigger-outline-color: var(--ds-auro-select-outline-color)}:host{display:inline-block;text-align:left;vertical-align:top}:host([layout*=emphasized]) [auro-dropdown],:host([layout*=snowflake]) [auro-dropdown]{--ds-auro-select-border-color: transparent}:host([layout*=emphasized]) .mainContent,:host([layout*=snowflake]) .mainContent{text-align:center}.mainContent{position:relative;display:flex;overflow:hidden;flex:1;flex-direction:column;align-items:center;justify-content:center}.valueContainer{max-width:100%}.accents{display:flex;flex-direction:row;align-items:center;justify-content:center}::slotted([slot=typeIcon]){margin-right:var(--ds-size-100, 0.5rem)}.displayValue{display:block}.displayValue:not(.force){display:none}.displayValue:not(.force).hasContent:is(.withValue):not(.hasFocus){display:block}.triggerContent{display:flex;width:100%;box-sizing:border-box;align-items:center;justify-content:center}:host([layout*=emphasized]) .triggerContent{padding:0 var(--ds-size-100, 0.5rem) 0 var(--ds-size-300, 1.5rem)}:host([layout*=snowflake]) .triggerContent{padding:0 var(--ds-size-100, 0.5rem) 0 var(--ds-size-200, 1rem)}:host([layout*=snowflake]) label{padding-block:var(--ds-size-25, 0.125rem)}:host([layout*=classic]) .triggerContent{padding:0 var(--ds-size-100, 0.5rem)}:host([layout*=classic]) .mainContent{align-items:start}:host([layout*=classic]) label{overflow:hidden;cursor:text;text-overflow:ellipsis;white-space:nowrap}:host([layout*=classic]) .value{overflow:hidden;height:auto;text-overflow:ellipsis;white-space:nowrap}label{color:var(--ds-auro-select-label-text-color)}:host(:is([validity]:not([validity=valid]))) [auro-dropdown]{--ds-auro-select-border-color: var(--ds-basic-color-status-error, #e31f26);--ds-auro-select-outline-color: var(--ds-basic-color-status-error, #e31f26);--ds-auro-dropdown-helptext-text-color: var(--ds-basic-color-texticon-default, #2a2a2a)}:host([ondark]:is([validity]:not([validity=valid]))) [auro-dropdown],:host([appearance=inverse]:is([validity]:not([validity=valid]))) [auro-dropdown]{--ds-auro-select-border-color: var(--ds-advanced-color-state-error-inverse, #f9a4a8);--ds-auro-select-outline-color: var(--ds-advanced-color-state-error-inverse, #f9a4a8);--ds-auro-dropdown-helptext-text-color: var(--ds-basic-color-texticon-inverse, #ffffff)}#slotHolder{display:none}:host([fluid]){width:100%}:host([disabled]){pointer-events:none;user-select:none}:host([disabled]:not([ondark])) [auro-dropdown],:host([disabled]:not([appearance=inverse])) [auro-dropdown]{--ds-auro-select-border-color: var(--ds-basic-color-border-subtle, #dddddd)}:host(:not([layout*=classic])[disabled][ondark]) [auro-dropdown],:host(:not([layout*=classic])[disabled][appearance=inverse]) [auro-dropdown]{--ds-auro-select-border-color: transparent}`;
|
|
95266
95861
|
|