@aurodesignsystem/auro-formkit 6.0.0 → 6.0.1
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/CHANGELOG.md +5 -240
- 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 +172 -46
- package/components/combobox/demo/getting-started.min.js +172 -46
- package/components/combobox/demo/index.min.js +172 -46
- package/components/combobox/dist/index.js +172 -46
- package/components/combobox/dist/registered.js +172 -46
- package/components/counter/demo/customize.min.js +59 -7
- package/components/counter/demo/index.min.js +59 -7
- package/components/counter/dist/index.js +59 -7
- package/components/counter/dist/registered.js +59 -7
- package/components/datepicker/demo/customize.min.js +106 -18
- package/components/datepicker/demo/index.min.js +106 -18
- package/components/datepicker/dist/index.js +106 -18
- package/components/datepicker/dist/registered.js +106 -18
- package/components/dropdown/demo/customize.min.js +58 -6
- package/components/dropdown/demo/getting-started.min.js +58 -6
- package/components/dropdown/demo/index.min.js +58 -6
- package/components/dropdown/dist/auro-dropdown.d.ts +16 -1
- package/components/dropdown/dist/index.js +58 -6
- package/components/dropdown/dist/registered.js +58 -6
- package/components/form/demo/customize.min.js +445 -91
- package/components/form/demo/getting-started.min.js +445 -91
- package/components/form/demo/index.min.js +445 -91
- package/components/form/demo/registerDemoDeps.min.js +445 -91
- package/components/input/demo/customize.min.js +47 -11
- package/components/input/demo/getting-started.min.js +47 -11
- package/components/input/demo/index.min.js +47 -11
- package/components/input/dist/index.js +47 -11
- package/components/input/dist/registered.js +47 -11
- 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 +59 -7
- package/components/select/demo/getting-started.min.js +59 -7
- package/components/select/demo/index.min.js +59 -7
- package/components/select/dist/index.js +59 -7
- package/components/select/dist/registered.js +59 -7
- package/custom-elements.json +1500 -1484
- package/package.json +1 -1
|
@@ -10659,9 +10659,10 @@ let DomHandler$3 = class DomHandler {
|
|
|
10659
10659
|
let BaseInput$2 = class BaseInput extends AuroElement$6 {
|
|
10660
10660
|
|
|
10661
10661
|
// Delegate focus to the native <input> inside the shadow root so that
|
|
10662
|
-
//
|
|
10663
|
-
//
|
|
10664
|
-
//
|
|
10662
|
+
// clicking anywhere on the input wrapper focuses the native input, and
|
|
10663
|
+
// programmatic .focus() calls on elements in the shadow DOM work correctly.
|
|
10664
|
+
// The initial-load focus theft was caused by the static `autofocus`
|
|
10665
|
+
// attribute on the bib input (now conditional), not by delegatesFocus.
|
|
10665
10666
|
static get shadowRootOptions() {
|
|
10666
10667
|
return {
|
|
10667
10668
|
...AuroElement$6.shadowRootOptions,
|
|
@@ -12338,7 +12339,7 @@ let AuroHelpText$8 = class AuroHelpText extends i$2 {
|
|
|
12338
12339
|
}
|
|
12339
12340
|
};
|
|
12340
12341
|
|
|
12341
|
-
var formkitVersion$8 = '
|
|
12342
|
+
var formkitVersion$8 = '202607161943';
|
|
12342
12343
|
|
|
12343
12344
|
// Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
|
|
12344
12345
|
// See LICENSE in the project root for license information.
|
|
@@ -12624,15 +12625,50 @@ let AuroInput$2 = class AuroInput extends BaseInput$2 {
|
|
|
12624
12625
|
* @returns {void}
|
|
12625
12626
|
*/
|
|
12626
12627
|
checkDisplayValueSlotChange() {
|
|
12627
|
-
|
|
12628
|
-
|
|
12629
|
-
|
|
12630
|
-
|
|
12631
|
-
|
|
12632
|
-
|
|
12628
|
+
const slot = this.shadowRoot?.querySelector('slot[name="displayValue"]');
|
|
12629
|
+
if (!slot) {
|
|
12630
|
+
// Shadow slot not yet rendered — fall back to checking light-DOM
|
|
12631
|
+
// children so hasDisplayValueContent isn't stuck false when called
|
|
12632
|
+
// before firstUpdated (e.g. from auro-combobox during mount).
|
|
12633
|
+
// Check for any element (including custom elements like <auro-icon>
|
|
12634
|
+
// that render via shadow DOM with no text content).
|
|
12635
|
+
const lightDomNodes = Array.from(this.querySelectorAll('[slot="displayValue"]:not(slot)'));
|
|
12636
|
+
const hasContent = lightDomNodes.some((node) => (
|
|
12637
|
+
node.textContent.trim().length > 0 ||
|
|
12638
|
+
node.children.length > 0 ||
|
|
12639
|
+
node.shadowRoot !== null
|
|
12640
|
+
));
|
|
12641
|
+
if (this.hasDisplayValueContent !== hasContent) {
|
|
12642
|
+
this.hasDisplayValueContent = hasContent;
|
|
12643
|
+
this.requestUpdate();
|
|
12644
|
+
}
|
|
12645
|
+
return;
|
|
12646
|
+
}
|
|
12633
12647
|
const nodes = slot.assignedNodes({ flatten: true });
|
|
12634
12648
|
|
|
12635
|
-
|
|
12649
|
+
// Check for actual visible content, not just node existence.
|
|
12650
|
+
// An empty <span slot="displayValue"></span> forwarded from the
|
|
12651
|
+
// consumer should not be treated as "has content" — it causes the
|
|
12652
|
+
// displayValue wrapper to render (with hasContent class) but show
|
|
12653
|
+
// nothing, blocking the combobox's synthetic displayValue from
|
|
12654
|
+
// being visible on preset/deeplink load.
|
|
12655
|
+
// Custom elements (e.g. <auro-icon>) that render via shadow DOM are
|
|
12656
|
+
// treated as content even when they have no text or light-DOM children.
|
|
12657
|
+
const hasContent = nodes.some((node) => {
|
|
12658
|
+
if (node.nodeType === Node.TEXT_NODE) {
|
|
12659
|
+
return node.textContent.trim().length > 0;
|
|
12660
|
+
}
|
|
12661
|
+
if (node.nodeType === Node.ELEMENT_NODE) {
|
|
12662
|
+
return node.textContent.trim().length > 0 ||
|
|
12663
|
+
node.children.length > 0 ||
|
|
12664
|
+
node.shadowRoot !== null;
|
|
12665
|
+
}
|
|
12666
|
+
return false;
|
|
12667
|
+
});
|
|
12668
|
+
if (this.hasDisplayValueContent !== hasContent) {
|
|
12669
|
+
this.hasDisplayValueContent = hasContent;
|
|
12670
|
+
this.requestUpdate();
|
|
12671
|
+
}
|
|
12636
12672
|
}
|
|
12637
12673
|
|
|
12638
12674
|
firstUpdated() {
|
|
@@ -26735,7 +26771,7 @@ let AuroBibtemplate$3 = class AuroBibtemplate extends i$2 {
|
|
|
26735
26771
|
}
|
|
26736
26772
|
};
|
|
26737
26773
|
|
|
26738
|
-
var formkitVersion$2$1 = '
|
|
26774
|
+
var formkitVersion$2$1 = '202607161943';
|
|
26739
26775
|
|
|
26740
26776
|
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}
|
|
26741
26777
|
`,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}}
|
|
@@ -32463,7 +32499,7 @@ let AuroHelpText$2$1 = class AuroHelpText extends i$2 {
|
|
|
32463
32499
|
}
|
|
32464
32500
|
};
|
|
32465
32501
|
|
|
32466
|
-
var formkitVersion$1$3 = '
|
|
32502
|
+
var formkitVersion$1$3 = '202607161943';
|
|
32467
32503
|
|
|
32468
32504
|
let AuroElement$2$2 = class AuroElement extends i$2 {
|
|
32469
32505
|
static get properties() {
|
|
@@ -32592,7 +32628,6 @@ let AuroDropdown$3 = class AuroDropdown extends AuroElement$2$2 {
|
|
|
32592
32628
|
static get shadowRootOptions() {
|
|
32593
32629
|
return {
|
|
32594
32630
|
...AuroElement$2$2.shadowRootOptions,
|
|
32595
|
-
delegatesFocus: true,
|
|
32596
32631
|
};
|
|
32597
32632
|
}
|
|
32598
32633
|
|
|
@@ -32604,6 +32639,15 @@ let AuroDropdown$3 = class AuroDropdown extends AuroElement$2$2 {
|
|
|
32604
32639
|
this.matchWidth = false;
|
|
32605
32640
|
this.noHideOnThisFocusLoss = false;
|
|
32606
32641
|
|
|
32642
|
+
/**
|
|
32643
|
+
* When true, the dropdown skips its generic focus restoration on close.
|
|
32644
|
+
* Set by consumers (e.g. combobox) that manage their own focus routing
|
|
32645
|
+
* via setClearBtnFocus / setInputFocus / keyboard strategy.
|
|
32646
|
+
* Separate from noHideOnThisFocusLoss (which controls auto-close behavior).
|
|
32647
|
+
* @private
|
|
32648
|
+
*/
|
|
32649
|
+
this.noFocusRestoreOnClose = false;
|
|
32650
|
+
|
|
32607
32651
|
this.errorMessage = undefined; // TODO - check with Doug if there is still more to do here
|
|
32608
32652
|
|
|
32609
32653
|
// Layout Config
|
|
@@ -32759,7 +32803,49 @@ let AuroDropdown$3 = class AuroDropdown extends AuroElement$2$2 {
|
|
|
32759
32803
|
focusables[0].focus();
|
|
32760
32804
|
}
|
|
32761
32805
|
} else {
|
|
32806
|
+
this.focusTrigger();
|
|
32807
|
+
}
|
|
32808
|
+
}
|
|
32809
|
+
|
|
32810
|
+
/**
|
|
32811
|
+
* Focus the trigger content. When the trigger wrapper itself is focusable
|
|
32812
|
+
* (has tabindex), focus it directly. Otherwise, focus the first focusable
|
|
32813
|
+
* element slotted into the trigger slot (e.g. the auro-input).
|
|
32814
|
+
* @private
|
|
32815
|
+
*/
|
|
32816
|
+
focusTrigger() {
|
|
32817
|
+
if (this.trigger.hasAttribute('tabindex')) {
|
|
32762
32818
|
this.trigger.focus();
|
|
32819
|
+
} else {
|
|
32820
|
+
// Slotted content isn't a DOM child of the trigger div, so
|
|
32821
|
+
// getFocusableElements can't find it. Query assigned nodes directly.
|
|
32822
|
+
const slot = this.trigger.querySelector('slot[name="trigger"]');
|
|
32823
|
+
if (slot) {
|
|
32824
|
+
const assigned = slot.assignedElements();
|
|
32825
|
+
for (const el of assigned) {
|
|
32826
|
+
if (el.hasAttribute('disabled')) {
|
|
32827
|
+
continue;
|
|
32828
|
+
}
|
|
32829
|
+
// Try finding a focusable descendant first (handles non-focusable
|
|
32830
|
+
// wrappers like <div> containing a <button>). If none found, try
|
|
32831
|
+
// focusing the element directly (works for custom elements like
|
|
32832
|
+
// auro-input that have delegatesFocus or a custom focus() method).
|
|
32833
|
+
const descendants = getFocusableElements$4(el);
|
|
32834
|
+
if (descendants.length > 0) {
|
|
32835
|
+
descendants[0].focus();
|
|
32836
|
+
return;
|
|
32837
|
+
}
|
|
32838
|
+
el.focus();
|
|
32839
|
+
if (document.activeElement === el) {
|
|
32840
|
+
return;
|
|
32841
|
+
}
|
|
32842
|
+
}
|
|
32843
|
+
}
|
|
32844
|
+
// Fallback: try DOM children (non-slotted content)
|
|
32845
|
+
const focusables = getFocusableElements$4(this.trigger);
|
|
32846
|
+
if (focusables.length > 0) {
|
|
32847
|
+
focusables[0].focus();
|
|
32848
|
+
}
|
|
32763
32849
|
}
|
|
32764
32850
|
}
|
|
32765
32851
|
|
|
@@ -33212,15 +33298,17 @@ let AuroDropdown$3 = class AuroDropdown extends AuroElement$2$2 {
|
|
|
33212
33298
|
}
|
|
33213
33299
|
|
|
33214
33300
|
const eventType = event.detail.eventType || "unknown";
|
|
33215
|
-
if (!this.isPopoverVisible && this.hasFocus && eventType === "keydown") {
|
|
33216
|
-
this.
|
|
33301
|
+
if (!this.isPopoverVisible && this.hasFocus && eventType === "keydown" && !this.noFocusRestoreOnClose) {
|
|
33302
|
+
this.focusTrigger();
|
|
33217
33303
|
}
|
|
33218
33304
|
|
|
33219
33305
|
|
|
33220
33306
|
// On Tab-driven close (eventType "focusloss"), let focus advance naturally
|
|
33221
33307
|
// — restoring to the trigger would trap the user on this dropdown, forcing
|
|
33222
33308
|
// an extra Tab to move on. Escape and outside-click still restore.
|
|
33223
|
-
|
|
33309
|
+
// When noFocusRestoreOnClose is true, the consumer (e.g. combobox) manages
|
|
33310
|
+
// its own focus restoration — skip the generic trigger focus to avoid races.
|
|
33311
|
+
if (!this.isPopoverVisible && eventType !== "focusloss" && !this.noFocusRestoreOnClose) {
|
|
33224
33312
|
// wait til the bib gets fully closed and rendered
|
|
33225
33313
|
setTimeout(() => {
|
|
33226
33314
|
// Skip if the bib re-opened, or if focus moved intentionally outside the dropdown (not to body).
|
|
@@ -33232,7 +33320,7 @@ let AuroDropdown$3 = class AuroDropdown extends AuroElement$2$2 {
|
|
|
33232
33320
|
return;
|
|
33233
33321
|
}
|
|
33234
33322
|
// Restore focus to the trigger.
|
|
33235
|
-
this.
|
|
33323
|
+
this.focusTrigger();
|
|
33236
33324
|
});
|
|
33237
33325
|
}
|
|
33238
33326
|
}
|
|
@@ -44406,9 +44494,10 @@ let DomHandler$2 = class DomHandler {
|
|
|
44406
44494
|
let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
|
|
44407
44495
|
|
|
44408
44496
|
// Delegate focus to the native <input> inside the shadow root so that
|
|
44409
|
-
//
|
|
44410
|
-
//
|
|
44411
|
-
//
|
|
44497
|
+
// clicking anywhere on the input wrapper focuses the native input, and
|
|
44498
|
+
// programmatic .focus() calls on elements in the shadow DOM work correctly.
|
|
44499
|
+
// The initial-load focus theft was caused by the static `autofocus`
|
|
44500
|
+
// attribute on the bib input (now conditional), not by delegatesFocus.
|
|
44412
44501
|
static get shadowRootOptions() {
|
|
44413
44502
|
return {
|
|
44414
44503
|
...AuroElement$1$3.shadowRootOptions,
|
|
@@ -46085,7 +46174,7 @@ let AuroHelpText$1$3 = class AuroHelpText extends i$2 {
|
|
|
46085
46174
|
}
|
|
46086
46175
|
};
|
|
46087
46176
|
|
|
46088
|
-
var formkitVersion$7 = '
|
|
46177
|
+
var formkitVersion$7 = '202607161943';
|
|
46089
46178
|
|
|
46090
46179
|
// Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
|
|
46091
46180
|
// See LICENSE in the project root for license information.
|
|
@@ -46371,15 +46460,50 @@ let AuroInput$1 = class AuroInput extends BaseInput$1 {
|
|
|
46371
46460
|
* @returns {void}
|
|
46372
46461
|
*/
|
|
46373
46462
|
checkDisplayValueSlotChange() {
|
|
46374
|
-
|
|
46375
|
-
|
|
46376
|
-
|
|
46377
|
-
|
|
46378
|
-
|
|
46379
|
-
|
|
46463
|
+
const slot = this.shadowRoot?.querySelector('slot[name="displayValue"]');
|
|
46464
|
+
if (!slot) {
|
|
46465
|
+
// Shadow slot not yet rendered — fall back to checking light-DOM
|
|
46466
|
+
// children so hasDisplayValueContent isn't stuck false when called
|
|
46467
|
+
// before firstUpdated (e.g. from auro-combobox during mount).
|
|
46468
|
+
// Check for any element (including custom elements like <auro-icon>
|
|
46469
|
+
// that render via shadow DOM with no text content).
|
|
46470
|
+
const lightDomNodes = Array.from(this.querySelectorAll('[slot="displayValue"]:not(slot)'));
|
|
46471
|
+
const hasContent = lightDomNodes.some((node) => (
|
|
46472
|
+
node.textContent.trim().length > 0 ||
|
|
46473
|
+
node.children.length > 0 ||
|
|
46474
|
+
node.shadowRoot !== null
|
|
46475
|
+
));
|
|
46476
|
+
if (this.hasDisplayValueContent !== hasContent) {
|
|
46477
|
+
this.hasDisplayValueContent = hasContent;
|
|
46478
|
+
this.requestUpdate();
|
|
46479
|
+
}
|
|
46480
|
+
return;
|
|
46481
|
+
}
|
|
46380
46482
|
const nodes = slot.assignedNodes({ flatten: true });
|
|
46381
46483
|
|
|
46382
|
-
|
|
46484
|
+
// Check for actual visible content, not just node existence.
|
|
46485
|
+
// An empty <span slot="displayValue"></span> forwarded from the
|
|
46486
|
+
// consumer should not be treated as "has content" — it causes the
|
|
46487
|
+
// displayValue wrapper to render (with hasContent class) but show
|
|
46488
|
+
// nothing, blocking the combobox's synthetic displayValue from
|
|
46489
|
+
// being visible on preset/deeplink load.
|
|
46490
|
+
// Custom elements (e.g. <auro-icon>) that render via shadow DOM are
|
|
46491
|
+
// treated as content even when they have no text or light-DOM children.
|
|
46492
|
+
const hasContent = nodes.some((node) => {
|
|
46493
|
+
if (node.nodeType === Node.TEXT_NODE) {
|
|
46494
|
+
return node.textContent.trim().length > 0;
|
|
46495
|
+
}
|
|
46496
|
+
if (node.nodeType === Node.ELEMENT_NODE) {
|
|
46497
|
+
return node.textContent.trim().length > 0 ||
|
|
46498
|
+
node.children.length > 0 ||
|
|
46499
|
+
node.shadowRoot !== null;
|
|
46500
|
+
}
|
|
46501
|
+
return false;
|
|
46502
|
+
});
|
|
46503
|
+
if (this.hasDisplayValueContent !== hasContent) {
|
|
46504
|
+
this.hasDisplayValueContent = hasContent;
|
|
46505
|
+
this.requestUpdate();
|
|
46506
|
+
}
|
|
46383
46507
|
}
|
|
46384
46508
|
|
|
46385
46509
|
firstUpdated() {
|
|
@@ -51026,7 +51150,7 @@ let AuroHelpText$1$2 = class AuroHelpText extends i$2 {
|
|
|
51026
51150
|
}
|
|
51027
51151
|
};
|
|
51028
51152
|
|
|
51029
|
-
var formkitVersion$1$2 = '
|
|
51153
|
+
var formkitVersion$1$2 = '202607161943';
|
|
51030
51154
|
|
|
51031
51155
|
// Copyright (c) 2026 Alaska Airlines. All rights reserved. Licensed under the Apache-2.0 license
|
|
51032
51156
|
// See LICENSE in the project root for license information.
|
|
@@ -55174,7 +55298,7 @@ let AuroHelpText$6 = class AuroHelpText extends i$2 {
|
|
|
55174
55298
|
}
|
|
55175
55299
|
};
|
|
55176
55300
|
|
|
55177
|
-
var formkitVersion$6 = '
|
|
55301
|
+
var formkitVersion$6 = '202607161943';
|
|
55178
55302
|
|
|
55179
55303
|
let AuroElement$1$2 = class AuroElement extends i$2 {
|
|
55180
55304
|
static get properties() {
|
|
@@ -55303,7 +55427,6 @@ let AuroDropdown$2 = class AuroDropdown extends AuroElement$1$2 {
|
|
|
55303
55427
|
static get shadowRootOptions() {
|
|
55304
55428
|
return {
|
|
55305
55429
|
...AuroElement$1$2.shadowRootOptions,
|
|
55306
|
-
delegatesFocus: true,
|
|
55307
55430
|
};
|
|
55308
55431
|
}
|
|
55309
55432
|
|
|
@@ -55315,6 +55438,15 @@ let AuroDropdown$2 = class AuroDropdown extends AuroElement$1$2 {
|
|
|
55315
55438
|
this.matchWidth = false;
|
|
55316
55439
|
this.noHideOnThisFocusLoss = false;
|
|
55317
55440
|
|
|
55441
|
+
/**
|
|
55442
|
+
* When true, the dropdown skips its generic focus restoration on close.
|
|
55443
|
+
* Set by consumers (e.g. combobox) that manage their own focus routing
|
|
55444
|
+
* via setClearBtnFocus / setInputFocus / keyboard strategy.
|
|
55445
|
+
* Separate from noHideOnThisFocusLoss (which controls auto-close behavior).
|
|
55446
|
+
* @private
|
|
55447
|
+
*/
|
|
55448
|
+
this.noFocusRestoreOnClose = false;
|
|
55449
|
+
|
|
55318
55450
|
this.errorMessage = undefined; // TODO - check with Doug if there is still more to do here
|
|
55319
55451
|
|
|
55320
55452
|
// Layout Config
|
|
@@ -55470,7 +55602,49 @@ let AuroDropdown$2 = class AuroDropdown extends AuroElement$1$2 {
|
|
|
55470
55602
|
focusables[0].focus();
|
|
55471
55603
|
}
|
|
55472
55604
|
} else {
|
|
55605
|
+
this.focusTrigger();
|
|
55606
|
+
}
|
|
55607
|
+
}
|
|
55608
|
+
|
|
55609
|
+
/**
|
|
55610
|
+
* Focus the trigger content. When the trigger wrapper itself is focusable
|
|
55611
|
+
* (has tabindex), focus it directly. Otherwise, focus the first focusable
|
|
55612
|
+
* element slotted into the trigger slot (e.g. the auro-input).
|
|
55613
|
+
* @private
|
|
55614
|
+
*/
|
|
55615
|
+
focusTrigger() {
|
|
55616
|
+
if (this.trigger.hasAttribute('tabindex')) {
|
|
55473
55617
|
this.trigger.focus();
|
|
55618
|
+
} else {
|
|
55619
|
+
// Slotted content isn't a DOM child of the trigger div, so
|
|
55620
|
+
// getFocusableElements can't find it. Query assigned nodes directly.
|
|
55621
|
+
const slot = this.trigger.querySelector('slot[name="trigger"]');
|
|
55622
|
+
if (slot) {
|
|
55623
|
+
const assigned = slot.assignedElements();
|
|
55624
|
+
for (const el of assigned) {
|
|
55625
|
+
if (el.hasAttribute('disabled')) {
|
|
55626
|
+
continue;
|
|
55627
|
+
}
|
|
55628
|
+
// Try finding a focusable descendant first (handles non-focusable
|
|
55629
|
+
// wrappers like <div> containing a <button>). If none found, try
|
|
55630
|
+
// focusing the element directly (works for custom elements like
|
|
55631
|
+
// auro-input that have delegatesFocus or a custom focus() method).
|
|
55632
|
+
const descendants = getFocusableElements$3(el);
|
|
55633
|
+
if (descendants.length > 0) {
|
|
55634
|
+
descendants[0].focus();
|
|
55635
|
+
return;
|
|
55636
|
+
}
|
|
55637
|
+
el.focus();
|
|
55638
|
+
if (document.activeElement === el) {
|
|
55639
|
+
return;
|
|
55640
|
+
}
|
|
55641
|
+
}
|
|
55642
|
+
}
|
|
55643
|
+
// Fallback: try DOM children (non-slotted content)
|
|
55644
|
+
const focusables = getFocusableElements$3(this.trigger);
|
|
55645
|
+
if (focusables.length > 0) {
|
|
55646
|
+
focusables[0].focus();
|
|
55647
|
+
}
|
|
55474
55648
|
}
|
|
55475
55649
|
}
|
|
55476
55650
|
|
|
@@ -55923,15 +56097,17 @@ let AuroDropdown$2 = class AuroDropdown extends AuroElement$1$2 {
|
|
|
55923
56097
|
}
|
|
55924
56098
|
|
|
55925
56099
|
const eventType = event.detail.eventType || "unknown";
|
|
55926
|
-
if (!this.isPopoverVisible && this.hasFocus && eventType === "keydown") {
|
|
55927
|
-
this.
|
|
56100
|
+
if (!this.isPopoverVisible && this.hasFocus && eventType === "keydown" && !this.noFocusRestoreOnClose) {
|
|
56101
|
+
this.focusTrigger();
|
|
55928
56102
|
}
|
|
55929
56103
|
|
|
55930
56104
|
|
|
55931
56105
|
// On Tab-driven close (eventType "focusloss"), let focus advance naturally
|
|
55932
56106
|
// — restoring to the trigger would trap the user on this dropdown, forcing
|
|
55933
56107
|
// an extra Tab to move on. Escape and outside-click still restore.
|
|
55934
|
-
|
|
56108
|
+
// When noFocusRestoreOnClose is true, the consumer (e.g. combobox) manages
|
|
56109
|
+
// its own focus restoration — skip the generic trigger focus to avoid races.
|
|
56110
|
+
if (!this.isPopoverVisible && eventType !== "focusloss" && !this.noFocusRestoreOnClose) {
|
|
55935
56111
|
// wait til the bib gets fully closed and rendered
|
|
55936
56112
|
setTimeout(() => {
|
|
55937
56113
|
// Skip if the bib re-opened, or if focus moved intentionally outside the dropdown (not to body).
|
|
@@ -55943,7 +56119,7 @@ let AuroDropdown$2 = class AuroDropdown extends AuroElement$1$2 {
|
|
|
55943
56119
|
return;
|
|
55944
56120
|
}
|
|
55945
56121
|
// Restore focus to the trigger.
|
|
55946
|
-
this.
|
|
56122
|
+
this.focusTrigger();
|
|
55947
56123
|
});
|
|
55948
56124
|
}
|
|
55949
56125
|
}
|
|
@@ -59171,7 +59347,7 @@ let AuroHelpText$5 = class AuroHelpText extends i$2 {
|
|
|
59171
59347
|
}
|
|
59172
59348
|
};
|
|
59173
59349
|
|
|
59174
|
-
var formkitVersion$5 = '
|
|
59350
|
+
var formkitVersion$5 = '202607161943';
|
|
59175
59351
|
|
|
59176
59352
|
// Copyright (c) Alaska Air. All right reserved. Licensed under the Apache-2.0 license
|
|
59177
59353
|
// See LICENSE in the project root for license information.
|
|
@@ -60936,7 +61112,7 @@ let AuroHelpText$4 = class AuroHelpText extends i$2 {
|
|
|
60936
61112
|
}
|
|
60937
61113
|
};
|
|
60938
61114
|
|
|
60939
|
-
var formkitVersion$4 = '
|
|
61115
|
+
var formkitVersion$4 = '202607161943';
|
|
60940
61116
|
|
|
60941
61117
|
// Copyright (c) 2026 Alaska Airlines. All rights reserved. Licensed under the Apache-2.0 license
|
|
60942
61118
|
// See LICENSE in the project root for license information.
|
|
@@ -66249,7 +66425,7 @@ let AuroHelpText$2 = class AuroHelpText extends i$2 {
|
|
|
66249
66425
|
}
|
|
66250
66426
|
};
|
|
66251
66427
|
|
|
66252
|
-
var formkitVersion$2 = '
|
|
66428
|
+
var formkitVersion$2 = '202607161943';
|
|
66253
66429
|
|
|
66254
66430
|
let AuroElement$2$1 = class AuroElement extends i$2 {
|
|
66255
66431
|
static get properties() {
|
|
@@ -66378,7 +66554,6 @@ let AuroDropdown$1 = class AuroDropdown extends AuroElement$2$1 {
|
|
|
66378
66554
|
static get shadowRootOptions() {
|
|
66379
66555
|
return {
|
|
66380
66556
|
...AuroElement$2$1.shadowRootOptions,
|
|
66381
|
-
delegatesFocus: true,
|
|
66382
66557
|
};
|
|
66383
66558
|
}
|
|
66384
66559
|
|
|
@@ -66390,6 +66565,15 @@ let AuroDropdown$1 = class AuroDropdown extends AuroElement$2$1 {
|
|
|
66390
66565
|
this.matchWidth = false;
|
|
66391
66566
|
this.noHideOnThisFocusLoss = false;
|
|
66392
66567
|
|
|
66568
|
+
/**
|
|
66569
|
+
* When true, the dropdown skips its generic focus restoration on close.
|
|
66570
|
+
* Set by consumers (e.g. combobox) that manage their own focus routing
|
|
66571
|
+
* via setClearBtnFocus / setInputFocus / keyboard strategy.
|
|
66572
|
+
* Separate from noHideOnThisFocusLoss (which controls auto-close behavior).
|
|
66573
|
+
* @private
|
|
66574
|
+
*/
|
|
66575
|
+
this.noFocusRestoreOnClose = false;
|
|
66576
|
+
|
|
66393
66577
|
this.errorMessage = undefined; // TODO - check with Doug if there is still more to do here
|
|
66394
66578
|
|
|
66395
66579
|
// Layout Config
|
|
@@ -66545,7 +66729,49 @@ let AuroDropdown$1 = class AuroDropdown extends AuroElement$2$1 {
|
|
|
66545
66729
|
focusables[0].focus();
|
|
66546
66730
|
}
|
|
66547
66731
|
} else {
|
|
66732
|
+
this.focusTrigger();
|
|
66733
|
+
}
|
|
66734
|
+
}
|
|
66735
|
+
|
|
66736
|
+
/**
|
|
66737
|
+
* Focus the trigger content. When the trigger wrapper itself is focusable
|
|
66738
|
+
* (has tabindex), focus it directly. Otherwise, focus the first focusable
|
|
66739
|
+
* element slotted into the trigger slot (e.g. the auro-input).
|
|
66740
|
+
* @private
|
|
66741
|
+
*/
|
|
66742
|
+
focusTrigger() {
|
|
66743
|
+
if (this.trigger.hasAttribute('tabindex')) {
|
|
66548
66744
|
this.trigger.focus();
|
|
66745
|
+
} else {
|
|
66746
|
+
// Slotted content isn't a DOM child of the trigger div, so
|
|
66747
|
+
// getFocusableElements can't find it. Query assigned nodes directly.
|
|
66748
|
+
const slot = this.trigger.querySelector('slot[name="trigger"]');
|
|
66749
|
+
if (slot) {
|
|
66750
|
+
const assigned = slot.assignedElements();
|
|
66751
|
+
for (const el of assigned) {
|
|
66752
|
+
if (el.hasAttribute('disabled')) {
|
|
66753
|
+
continue;
|
|
66754
|
+
}
|
|
66755
|
+
// Try finding a focusable descendant first (handles non-focusable
|
|
66756
|
+
// wrappers like <div> containing a <button>). If none found, try
|
|
66757
|
+
// focusing the element directly (works for custom elements like
|
|
66758
|
+
// auro-input that have delegatesFocus or a custom focus() method).
|
|
66759
|
+
const descendants = getFocusableElements$2(el);
|
|
66760
|
+
if (descendants.length > 0) {
|
|
66761
|
+
descendants[0].focus();
|
|
66762
|
+
return;
|
|
66763
|
+
}
|
|
66764
|
+
el.focus();
|
|
66765
|
+
if (document.activeElement === el) {
|
|
66766
|
+
return;
|
|
66767
|
+
}
|
|
66768
|
+
}
|
|
66769
|
+
}
|
|
66770
|
+
// Fallback: try DOM children (non-slotted content)
|
|
66771
|
+
const focusables = getFocusableElements$2(this.trigger);
|
|
66772
|
+
if (focusables.length > 0) {
|
|
66773
|
+
focusables[0].focus();
|
|
66774
|
+
}
|
|
66549
66775
|
}
|
|
66550
66776
|
}
|
|
66551
66777
|
|
|
@@ -66998,15 +67224,17 @@ let AuroDropdown$1 = class AuroDropdown extends AuroElement$2$1 {
|
|
|
66998
67224
|
}
|
|
66999
67225
|
|
|
67000
67226
|
const eventType = event.detail.eventType || "unknown";
|
|
67001
|
-
if (!this.isPopoverVisible && this.hasFocus && eventType === "keydown") {
|
|
67002
|
-
this.
|
|
67227
|
+
if (!this.isPopoverVisible && this.hasFocus && eventType === "keydown" && !this.noFocusRestoreOnClose) {
|
|
67228
|
+
this.focusTrigger();
|
|
67003
67229
|
}
|
|
67004
67230
|
|
|
67005
67231
|
|
|
67006
67232
|
// On Tab-driven close (eventType "focusloss"), let focus advance naturally
|
|
67007
67233
|
// — restoring to the trigger would trap the user on this dropdown, forcing
|
|
67008
67234
|
// an extra Tab to move on. Escape and outside-click still restore.
|
|
67009
|
-
|
|
67235
|
+
// When noFocusRestoreOnClose is true, the consumer (e.g. combobox) manages
|
|
67236
|
+
// its own focus restoration — skip the generic trigger focus to avoid races.
|
|
67237
|
+
if (!this.isPopoverVisible && eventType !== "focusloss" && !this.noFocusRestoreOnClose) {
|
|
67010
67238
|
// wait til the bib gets fully closed and rendered
|
|
67011
67239
|
setTimeout(() => {
|
|
67012
67240
|
// Skip if the bib re-opened, or if focus moved intentionally outside the dropdown (not to body).
|
|
@@ -67018,7 +67246,7 @@ let AuroDropdown$1 = class AuroDropdown extends AuroElement$2$1 {
|
|
|
67018
67246
|
return;
|
|
67019
67247
|
}
|
|
67020
67248
|
// Restore focus to the trigger.
|
|
67021
|
-
this.
|
|
67249
|
+
this.focusTrigger();
|
|
67022
67250
|
});
|
|
67023
67251
|
}
|
|
67024
67252
|
}
|
|
@@ -78192,9 +78420,10 @@ class DomHandler {
|
|
|
78192
78420
|
class BaseInput extends AuroElement$1$1 {
|
|
78193
78421
|
|
|
78194
78422
|
// Delegate focus to the native <input> inside the shadow root so that
|
|
78195
|
-
//
|
|
78196
|
-
//
|
|
78197
|
-
//
|
|
78423
|
+
// clicking anywhere on the input wrapper focuses the native input, and
|
|
78424
|
+
// programmatic .focus() calls on elements in the shadow DOM work correctly.
|
|
78425
|
+
// The initial-load focus theft was caused by the static `autofocus`
|
|
78426
|
+
// attribute on the bib input (now conditional), not by delegatesFocus.
|
|
78198
78427
|
static get shadowRootOptions() {
|
|
78199
78428
|
return {
|
|
78200
78429
|
...AuroElement$1$1.shadowRootOptions,
|
|
@@ -79871,7 +80100,7 @@ let AuroHelpText$1$1 = class AuroHelpText extends i$2 {
|
|
|
79871
80100
|
}
|
|
79872
80101
|
};
|
|
79873
80102
|
|
|
79874
|
-
var formkitVersion$1$1 = '
|
|
80103
|
+
var formkitVersion$1$1 = '202607161943';
|
|
79875
80104
|
|
|
79876
80105
|
// Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
|
|
79877
80106
|
// See LICENSE in the project root for license information.
|
|
@@ -80157,15 +80386,50 @@ class AuroInput extends BaseInput {
|
|
|
80157
80386
|
* @returns {void}
|
|
80158
80387
|
*/
|
|
80159
80388
|
checkDisplayValueSlotChange() {
|
|
80160
|
-
|
|
80161
|
-
|
|
80162
|
-
|
|
80163
|
-
|
|
80164
|
-
|
|
80165
|
-
|
|
80389
|
+
const slot = this.shadowRoot?.querySelector('slot[name="displayValue"]');
|
|
80390
|
+
if (!slot) {
|
|
80391
|
+
// Shadow slot not yet rendered — fall back to checking light-DOM
|
|
80392
|
+
// children so hasDisplayValueContent isn't stuck false when called
|
|
80393
|
+
// before firstUpdated (e.g. from auro-combobox during mount).
|
|
80394
|
+
// Check for any element (including custom elements like <auro-icon>
|
|
80395
|
+
// that render via shadow DOM with no text content).
|
|
80396
|
+
const lightDomNodes = Array.from(this.querySelectorAll('[slot="displayValue"]:not(slot)'));
|
|
80397
|
+
const hasContent = lightDomNodes.some((node) => (
|
|
80398
|
+
node.textContent.trim().length > 0 ||
|
|
80399
|
+
node.children.length > 0 ||
|
|
80400
|
+
node.shadowRoot !== null
|
|
80401
|
+
));
|
|
80402
|
+
if (this.hasDisplayValueContent !== hasContent) {
|
|
80403
|
+
this.hasDisplayValueContent = hasContent;
|
|
80404
|
+
this.requestUpdate();
|
|
80405
|
+
}
|
|
80406
|
+
return;
|
|
80407
|
+
}
|
|
80166
80408
|
const nodes = slot.assignedNodes({ flatten: true });
|
|
80167
80409
|
|
|
80168
|
-
|
|
80410
|
+
// Check for actual visible content, not just node existence.
|
|
80411
|
+
// An empty <span slot="displayValue"></span> forwarded from the
|
|
80412
|
+
// consumer should not be treated as "has content" — it causes the
|
|
80413
|
+
// displayValue wrapper to render (with hasContent class) but show
|
|
80414
|
+
// nothing, blocking the combobox's synthetic displayValue from
|
|
80415
|
+
// being visible on preset/deeplink load.
|
|
80416
|
+
// Custom elements (e.g. <auro-icon>) that render via shadow DOM are
|
|
80417
|
+
// treated as content even when they have no text or light-DOM children.
|
|
80418
|
+
const hasContent = nodes.some((node) => {
|
|
80419
|
+
if (node.nodeType === Node.TEXT_NODE) {
|
|
80420
|
+
return node.textContent.trim().length > 0;
|
|
80421
|
+
}
|
|
80422
|
+
if (node.nodeType === Node.ELEMENT_NODE) {
|
|
80423
|
+
return node.textContent.trim().length > 0 ||
|
|
80424
|
+
node.children.length > 0 ||
|
|
80425
|
+
node.shadowRoot !== null;
|
|
80426
|
+
}
|
|
80427
|
+
return false;
|
|
80428
|
+
});
|
|
80429
|
+
if (this.hasDisplayValueContent !== hasContent) {
|
|
80430
|
+
this.hasDisplayValueContent = hasContent;
|
|
80431
|
+
this.requestUpdate();
|
|
80432
|
+
}
|
|
80169
80433
|
}
|
|
80170
80434
|
|
|
80171
80435
|
firstUpdated() {
|
|
@@ -80992,7 +81256,7 @@ let AuroBibtemplate$1 = class AuroBibtemplate extends i$2 {
|
|
|
80992
81256
|
}
|
|
80993
81257
|
};
|
|
80994
81258
|
|
|
80995
|
-
var formkitVersion$3 = '
|
|
81259
|
+
var formkitVersion$3 = '202607161943';
|
|
80996
81260
|
|
|
80997
81261
|
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}`;
|
|
80998
81262
|
|
|
@@ -82029,14 +82293,34 @@ class AuroCombobox extends AuroElement$3 {
|
|
|
82029
82293
|
const displayValueEl = this.menu.optionSelected.querySelector("[slot='displayValue']");
|
|
82030
82294
|
if (displayValueEl) {
|
|
82031
82295
|
this.input.appendChild(displayValueEl.cloneNode(true));
|
|
82032
|
-
|
|
82033
|
-
|
|
82034
|
-
|
|
82035
|
-
|
|
82036
|
-
|
|
82037
|
-
|
|
82038
|
-
|
|
82039
|
-
|
|
82296
|
+
}
|
|
82297
|
+
|
|
82298
|
+
// auro-input's hasDisplayValueContent is non-reactive; nudge it to
|
|
82299
|
+
// re-evaluate the slot and re-render so the displayValue wrapper
|
|
82300
|
+
// gets its hasContent class. Without this, the apple/icon stays
|
|
82301
|
+
// hidden when input.value is set in the same tick as the append.
|
|
82302
|
+
if (typeof this.input.checkDisplayValueSlotChange === 'function') {
|
|
82303
|
+
this.input.checkDisplayValueSlotChange();
|
|
82304
|
+
}
|
|
82305
|
+
} else if (this.value) {
|
|
82306
|
+
// No optionSelected yet (e.g. setMenuValue was called but the menu's
|
|
82307
|
+
// auroMenu-selectedOption event hasn't fired yet, or we're on remount
|
|
82308
|
+
// with no options loaded). Synthesize a displayValue from the value so
|
|
82309
|
+
// the overlay isn't blank.
|
|
82310
|
+
//
|
|
82311
|
+
// NOTE: This renders the raw machine value (e.g. "SEA"), not the
|
|
82312
|
+
// human-readable label (e.g. "Seattle, WA"). For consumers where
|
|
82313
|
+
// value ≠ label, this produces a brief flash of the raw value until
|
|
82314
|
+
// the option elements load and updateTriggerTextDisplay re-runs with
|
|
82315
|
+
// the correct label. This is intentionally preferred over a blank
|
|
82316
|
+
// state — the displayValueInTrigger.remove() cleanup above ensures
|
|
82317
|
+
// this placeholder is replaced once the real option is available.
|
|
82318
|
+
const syntheticDV = document.createElement('span');
|
|
82319
|
+
syntheticDV.setAttribute('slot', 'displayValue');
|
|
82320
|
+
syntheticDV.textContent = this.value;
|
|
82321
|
+
this.input.appendChild(syntheticDV);
|
|
82322
|
+
if (typeof this.input.checkDisplayValueSlotChange === 'function') {
|
|
82323
|
+
this.input.checkDisplayValueSlotChange();
|
|
82040
82324
|
}
|
|
82041
82325
|
}
|
|
82042
82326
|
|
|
@@ -82209,6 +82493,10 @@ class AuroCombobox extends AuroElement$3 {
|
|
|
82209
82493
|
// from combobox's light DOM and won't be detected by dropdown's contains() check.
|
|
82210
82494
|
this.dropdown.noHideOnThisFocusLoss = true;
|
|
82211
82495
|
|
|
82496
|
+
// Suppress the dropdown's generic focus restoration on close — the combobox
|
|
82497
|
+
// manages its own focus via setClearBtnFocus / setInputFocus / keyboard strategy.
|
|
82498
|
+
this.dropdown.noFocusRestoreOnClose = true;
|
|
82499
|
+
|
|
82212
82500
|
// Listen for the ID to be added to the dropdown so we can capture it and use it for accessibility.
|
|
82213
82501
|
this.dropdown.addEventListener('auroDropdown-idAdded', (event) => {
|
|
82214
82502
|
this.dropdownId = event.detail.id;
|
|
@@ -82282,7 +82570,11 @@ class AuroCombobox extends AuroElement$3 {
|
|
|
82282
82570
|
// after the dropdown layout settles.
|
|
82283
82571
|
|
|
82284
82572
|
doubleRaf$1(() => {
|
|
82285
|
-
this
|
|
82573
|
+
// Guard: skip if the dropdown closed before this rAF fired
|
|
82574
|
+
// (e.g. user selected an option immediately after the bib opened).
|
|
82575
|
+
if (this.dropdownOpen) {
|
|
82576
|
+
this.setInputFocus();
|
|
82577
|
+
}
|
|
82286
82578
|
if (this._inFullscreenTransition) {
|
|
82287
82579
|
this._inFullscreenTransition = false;
|
|
82288
82580
|
}
|
|
@@ -82329,7 +82621,9 @@ class AuroCombobox extends AuroElement$3 {
|
|
|
82329
82621
|
}
|
|
82330
82622
|
|
|
82331
82623
|
this._scheduleTimer(() => {
|
|
82332
|
-
this.
|
|
82624
|
+
if (this.dropdown.isPopoverVisible) {
|
|
82625
|
+
this.setInputFocus();
|
|
82626
|
+
}
|
|
82333
82627
|
}, 0);
|
|
82334
82628
|
});
|
|
82335
82629
|
}
|
|
@@ -82338,14 +82632,19 @@ class AuroCombobox extends AuroElement$3 {
|
|
|
82338
82632
|
* @private
|
|
82339
82633
|
*/
|
|
82340
82634
|
setClearBtnFocus() {
|
|
82341
|
-
|
|
82342
|
-
|
|
82343
|
-
//
|
|
82344
|
-
//
|
|
82345
|
-
|
|
82635
|
+
doubleRaf$1(() => {
|
|
82636
|
+
// First establish focus inside the input's shadow root.
|
|
82637
|
+
// Without this, clearBtn.focus() silently fails when focus is on
|
|
82638
|
+
// document.body (e.g. after a click selection closes the bib dialog).
|
|
82639
|
+
// delegatesFocus on BaseInput routes this to the native <input>.
|
|
82640
|
+
this.input.focus();
|
|
82641
|
+
|
|
82642
|
+
// Now move focus to the clear button within the same shadow root.
|
|
82643
|
+
const clearBtn = this.input.shadowRoot.querySelector('.clearBtn');
|
|
82644
|
+
if (clearBtn) {
|
|
82346
82645
|
clearBtn.focus();
|
|
82347
|
-
}
|
|
82348
|
-
}
|
|
82646
|
+
}
|
|
82647
|
+
});
|
|
82349
82648
|
}
|
|
82350
82649
|
|
|
82351
82650
|
/**
|
|
@@ -82556,6 +82855,9 @@ class AuroCombobox extends AuroElement$3 {
|
|
|
82556
82855
|
// only — fresh user selections take the existing hideBib path.
|
|
82557
82856
|
if (isEcho && this.menu.optionSelected) {
|
|
82558
82857
|
this._programmaticFilterRefresh = true;
|
|
82858
|
+
this.updateComplete.then(() => {
|
|
82859
|
+
this._programmaticFilterRefresh = false;
|
|
82860
|
+
});
|
|
82559
82861
|
}
|
|
82560
82862
|
});
|
|
82561
82863
|
|
|
@@ -82808,10 +83110,6 @@ class AuroCombobox extends AuroElement$3 {
|
|
|
82808
83110
|
if (this.dropdown.isBibFullscreen && this.input.value && this.input.value.length > 0 && this.dropdown.isPopoverVisible) {
|
|
82809
83111
|
this.setInputFocus();
|
|
82810
83112
|
}
|
|
82811
|
-
|
|
82812
|
-
if (this._programmaticFilterRefresh) {
|
|
82813
|
-
this._programmaticFilterRefresh = false;
|
|
82814
|
-
}
|
|
82815
83113
|
}
|
|
82816
83114
|
|
|
82817
83115
|
/**
|
|
@@ -82825,10 +83123,12 @@ class AuroCombobox extends AuroElement$3 {
|
|
|
82825
83123
|
inputResolver: (comp, ctx) => (ctx.isModal && comp.inputInBib ? comp.inputInBib : comp.input),
|
|
82826
83124
|
});
|
|
82827
83125
|
|
|
82828
|
-
this.addEventListener('focusin', () => {
|
|
83126
|
+
this.addEventListener('focusin', (event) => {
|
|
82829
83127
|
this.touched = true;
|
|
82830
83128
|
|
|
82831
|
-
|
|
83129
|
+
if (event.composedPath()[0] === this) {
|
|
83130
|
+
this.focus();
|
|
83131
|
+
}
|
|
82832
83132
|
});
|
|
82833
83133
|
|
|
82834
83134
|
this.addEventListener('auroFormElement-validated', (evt) => {
|
|
@@ -83008,6 +83308,12 @@ class AuroCombobox extends AuroElement$3 {
|
|
|
83008
83308
|
// setting the flag unconditionally here masks the user-typed open path.
|
|
83009
83309
|
if (!this._userTyped) {
|
|
83010
83310
|
this._programmaticFilterRefresh = true;
|
|
83311
|
+
// Self-clear after this update cycle completes. This collapses
|
|
83312
|
+
// the previous scattered clear-points into one and prevents the
|
|
83313
|
+
// flag from surviving into the next user interaction.
|
|
83314
|
+
this.updateComplete.then(() => {
|
|
83315
|
+
this._programmaticFilterRefresh = false;
|
|
83316
|
+
});
|
|
83011
83317
|
}
|
|
83012
83318
|
|
|
83013
83319
|
if (this.input.value !== this.value) {
|
|
@@ -83097,10 +83403,6 @@ class AuroCombobox extends AuroElement$3 {
|
|
|
83097
83403
|
} else if (!this.dropdown.isBibFullscreen) {
|
|
83098
83404
|
this.hideBib();
|
|
83099
83405
|
}
|
|
83100
|
-
|
|
83101
|
-
if (this._programmaticFilterRefresh) {
|
|
83102
|
-
this._programmaticFilterRefresh = false;
|
|
83103
|
-
}
|
|
83104
83406
|
}
|
|
83105
83407
|
|
|
83106
83408
|
if (changedProperties.has('error')) {
|
|
@@ -83282,7 +83584,7 @@ class AuroCombobox extends AuroElement$3 {
|
|
|
83282
83584
|
<slot @slotchange="${this.handleSlotChange}"></slot>
|
|
83283
83585
|
<${this.inputTag}
|
|
83284
83586
|
id="inputInBib"
|
|
83285
|
-
autofocus
|
|
83587
|
+
?autofocus="${this.dropdownOpen && this.dropdown?.isBibFullscreen}"
|
|
83286
83588
|
@input="${this.handleInputValueChange}"
|
|
83287
83589
|
.a11yActivedescendant="${this.dropdownOpen && this.optionActive ? this.optionActive.id : undefined}"
|
|
83288
83590
|
.a11yControls=${`${this.dropdownId}-floater-bib`}
|
|
@@ -89813,7 +90115,7 @@ let AuroHelpText$1 = class AuroHelpText extends i$2 {
|
|
|
89813
90115
|
}
|
|
89814
90116
|
};
|
|
89815
90117
|
|
|
89816
|
-
var formkitVersion$1 = '
|
|
90118
|
+
var formkitVersion$1 = '202607161943';
|
|
89817
90119
|
|
|
89818
90120
|
class AuroElement extends i$2 {
|
|
89819
90121
|
static get properties() {
|
|
@@ -89942,7 +90244,6 @@ class AuroDropdown extends AuroElement {
|
|
|
89942
90244
|
static get shadowRootOptions() {
|
|
89943
90245
|
return {
|
|
89944
90246
|
...AuroElement.shadowRootOptions,
|
|
89945
|
-
delegatesFocus: true,
|
|
89946
90247
|
};
|
|
89947
90248
|
}
|
|
89948
90249
|
|
|
@@ -89954,6 +90255,15 @@ class AuroDropdown extends AuroElement {
|
|
|
89954
90255
|
this.matchWidth = false;
|
|
89955
90256
|
this.noHideOnThisFocusLoss = false;
|
|
89956
90257
|
|
|
90258
|
+
/**
|
|
90259
|
+
* When true, the dropdown skips its generic focus restoration on close.
|
|
90260
|
+
* Set by consumers (e.g. combobox) that manage their own focus routing
|
|
90261
|
+
* via setClearBtnFocus / setInputFocus / keyboard strategy.
|
|
90262
|
+
* Separate from noHideOnThisFocusLoss (which controls auto-close behavior).
|
|
90263
|
+
* @private
|
|
90264
|
+
*/
|
|
90265
|
+
this.noFocusRestoreOnClose = false;
|
|
90266
|
+
|
|
89957
90267
|
this.errorMessage = undefined; // TODO - check with Doug if there is still more to do here
|
|
89958
90268
|
|
|
89959
90269
|
// Layout Config
|
|
@@ -90109,7 +90419,49 @@ class AuroDropdown extends AuroElement {
|
|
|
90109
90419
|
focusables[0].focus();
|
|
90110
90420
|
}
|
|
90111
90421
|
} else {
|
|
90422
|
+
this.focusTrigger();
|
|
90423
|
+
}
|
|
90424
|
+
}
|
|
90425
|
+
|
|
90426
|
+
/**
|
|
90427
|
+
* Focus the trigger content. When the trigger wrapper itself is focusable
|
|
90428
|
+
* (has tabindex), focus it directly. Otherwise, focus the first focusable
|
|
90429
|
+
* element slotted into the trigger slot (e.g. the auro-input).
|
|
90430
|
+
* @private
|
|
90431
|
+
*/
|
|
90432
|
+
focusTrigger() {
|
|
90433
|
+
if (this.trigger.hasAttribute('tabindex')) {
|
|
90112
90434
|
this.trigger.focus();
|
|
90435
|
+
} else {
|
|
90436
|
+
// Slotted content isn't a DOM child of the trigger div, so
|
|
90437
|
+
// getFocusableElements can't find it. Query assigned nodes directly.
|
|
90438
|
+
const slot = this.trigger.querySelector('slot[name="trigger"]');
|
|
90439
|
+
if (slot) {
|
|
90440
|
+
const assigned = slot.assignedElements();
|
|
90441
|
+
for (const el of assigned) {
|
|
90442
|
+
if (el.hasAttribute('disabled')) {
|
|
90443
|
+
continue;
|
|
90444
|
+
}
|
|
90445
|
+
// Try finding a focusable descendant first (handles non-focusable
|
|
90446
|
+
// wrappers like <div> containing a <button>). If none found, try
|
|
90447
|
+
// focusing the element directly (works for custom elements like
|
|
90448
|
+
// auro-input that have delegatesFocus or a custom focus() method).
|
|
90449
|
+
const descendants = getFocusableElements(el);
|
|
90450
|
+
if (descendants.length > 0) {
|
|
90451
|
+
descendants[0].focus();
|
|
90452
|
+
return;
|
|
90453
|
+
}
|
|
90454
|
+
el.focus();
|
|
90455
|
+
if (document.activeElement === el) {
|
|
90456
|
+
return;
|
|
90457
|
+
}
|
|
90458
|
+
}
|
|
90459
|
+
}
|
|
90460
|
+
// Fallback: try DOM children (non-slotted content)
|
|
90461
|
+
const focusables = getFocusableElements(this.trigger);
|
|
90462
|
+
if (focusables.length > 0) {
|
|
90463
|
+
focusables[0].focus();
|
|
90464
|
+
}
|
|
90113
90465
|
}
|
|
90114
90466
|
}
|
|
90115
90467
|
|
|
@@ -90562,15 +90914,17 @@ class AuroDropdown extends AuroElement {
|
|
|
90562
90914
|
}
|
|
90563
90915
|
|
|
90564
90916
|
const eventType = event.detail.eventType || "unknown";
|
|
90565
|
-
if (!this.isPopoverVisible && this.hasFocus && eventType === "keydown") {
|
|
90566
|
-
this.
|
|
90917
|
+
if (!this.isPopoverVisible && this.hasFocus && eventType === "keydown" && !this.noFocusRestoreOnClose) {
|
|
90918
|
+
this.focusTrigger();
|
|
90567
90919
|
}
|
|
90568
90920
|
|
|
90569
90921
|
|
|
90570
90922
|
// On Tab-driven close (eventType "focusloss"), let focus advance naturally
|
|
90571
90923
|
// — restoring to the trigger would trap the user on this dropdown, forcing
|
|
90572
90924
|
// an extra Tab to move on. Escape and outside-click still restore.
|
|
90573
|
-
|
|
90925
|
+
// When noFocusRestoreOnClose is true, the consumer (e.g. combobox) manages
|
|
90926
|
+
// its own focus restoration — skip the generic trigger focus to avoid races.
|
|
90927
|
+
if (!this.isPopoverVisible && eventType !== "focusloss" && !this.noFocusRestoreOnClose) {
|
|
90574
90928
|
// wait til the bib gets fully closed and rendered
|
|
90575
90929
|
setTimeout(() => {
|
|
90576
90930
|
// Skip if the bib re-opened, or if focus moved intentionally outside the dropdown (not to body).
|
|
@@ -90582,7 +90936,7 @@ class AuroDropdown extends AuroElement {
|
|
|
90582
90936
|
return;
|
|
90583
90937
|
}
|
|
90584
90938
|
// Restore focus to the trigger.
|
|
90585
|
-
this.
|
|
90939
|
+
this.focusTrigger();
|
|
90586
90940
|
});
|
|
90587
90941
|
}
|
|
90588
90942
|
}
|
|
@@ -91856,7 +92210,7 @@ class AuroHelpText extends i$2 {
|
|
|
91856
92210
|
}
|
|
91857
92211
|
}
|
|
91858
92212
|
|
|
91859
|
-
var formkitVersion = '
|
|
92213
|
+
var formkitVersion = '202607161943';
|
|
91860
92214
|
|
|
91861
92215
|
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 [slot=displayValue]{display:none}.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%;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{height:auto}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}`;
|
|
91862
92216
|
|