@aurodesignsystem-dev/auro-formkit 0.0.0-pr1554.2 → 0.0.0-pr1554.21
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 +54 -13
- package/components/combobox/demo/getting-started.min.js +54 -13
- package/components/combobox/demo/index.min.js +54 -13
- package/components/combobox/dist/index.js +54 -13
- package/components/combobox/dist/registered.js +54 -13
- package/components/counter/demo/customize.min.js +31 -9
- package/components/counter/demo/index.min.js +31 -9
- package/components/counter/dist/index.js +31 -9
- package/components/counter/dist/registered.js +31 -9
- package/components/datepicker/demo/customize.min.js +50 -11
- package/components/datepicker/demo/index.min.js +50 -11
- package/components/datepicker/dist/index.js +50 -11
- package/components/datepicker/dist/registered.js +50 -11
- package/components/dropdown/demo/customize.min.js +30 -8
- package/components/dropdown/demo/getting-started.min.js +30 -8
- package/components/dropdown/demo/index.min.js +30 -8
- package/components/dropdown/dist/auro-dropdown.d.ts +8 -0
- package/components/dropdown/dist/index.js +30 -8
- package/components/dropdown/dist/registered.js +30 -8
- package/components/form/demo/customize.min.js +187 -46
- package/components/form/demo/getting-started.min.js +187 -46
- package/components/form/demo/index.min.js +187 -46
- package/components/form/demo/registerDemoDeps.min.js +187 -46
- package/components/input/demo/customize.min.js +19 -2
- package/components/input/demo/getting-started.min.js +19 -2
- package/components/input/demo/index.min.js +19 -2
- package/components/input/dist/index.js +19 -2
- package/components/input/dist/registered.js +19 -2
- 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 +31 -9
- package/components/select/demo/getting-started.min.js +31 -9
- package/components/select/demo/index.min.js +31 -9
- package/components/select/dist/index.js +31 -9
- package/components/select/dist/registered.js +31 -9
- package/custom-elements.json +10 -0
- package/package.json +1 -1
|
@@ -13669,7 +13669,7 @@ class AuroBibtemplate extends LitElement {
|
|
|
13669
13669
|
}
|
|
13670
13670
|
}
|
|
13671
13671
|
|
|
13672
|
-
var formkitVersion$2 = '
|
|
13672
|
+
var formkitVersion$2 = '202607160836';
|
|
13673
13673
|
|
|
13674
13674
|
let l$1 = class l{generateElementName(t,e){let o=t;return o+="-",o+=e.replace(/[.]/g,"_"),o}generateTag(o,s,a){const r=this.generateElementName(o,s),i=literal`${unsafeStatic(r)}`;return customElements.get(r)||customElements.define(r,class extends a{}),i}};let d$1 = class d{registerComponent(t,e){customElements.get(t)||customElements.define(t,class extends e{});}closestElement(t,e=this,o=(e,s=e&&e.closest(t))=>e&&e!==document&&e!==window?s||o(e.getRootNode().host):null){return o(e)}handleComponentTagRename(t,e){const o=e.toLowerCase();t.tagName.toLowerCase()!==o&&t.setAttribute(o,true);}elementMatch(t,e){const o=e.toLowerCase();return t.tagName.toLowerCase()===o||t.hasAttribute(o)}getSlotText(t,e){const o=t.shadowRoot?.querySelector(`slot[name="${e}"]`),s=(o?.assignedNodes({flatten:true})||[]).map(t=>t.textContent?.trim()).join(" ").trim();return s||null}};let h$1 = class h{registerComponent(t,e){customElements.get(t)||customElements.define(t,class extends e{});}closestElement(t,e=this,o=(e,s=e&&e.closest(t))=>e&&e!==document&&e!==window?s||o(e.getRootNode().host):null){return o(e)}handleComponentTagRename(t,e){const o=e.toLowerCase();t.tagName.toLowerCase()!==o&&t.setAttribute(o,true);}elementMatch(t,e){const o=e.toLowerCase();return t.tagName.toLowerCase()===o||t.hasAttribute(o)}};var c$1=css`:host{color:var(--ds-auro-loader-color)}:host>span{background-color:var(--ds-auro-loader-background-color);border-color:var(--ds-auro-loader-border-color)}:host([onlight]),:host([appearance=brand]){--ds-auro-loader-color: var(--ds-basic-color-brand-primary, #01426a)}:host([ondark]),:host([appearance=inverse]){--ds-auro-loader-color: var(--ds-basic-color-texticon-inverse, #ffffff)}:host([orbit])>span{--ds-auro-loader-background-color: transparent}:host([orbit])>span:nth-child(1){--ds-auro-loader-border-color: currentcolor;opacity:.25}:host([orbit])>span:nth-child(2){--ds-auro-loader-border-color: currentcolor;border-right-color:transparent;border-bottom-color:transparent;border-left-color:transparent}
|
|
13675
13675
|
`,u$4=css`.body-default{font-size:var(--wcss-body-default-font-size, 1rem);line-height:var(--wcss-body-default-line-height, 1.5rem)}.body-default,.body-lg{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-weight, 450);letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-lg{font-size:var(--wcss-body-lg-font-size, 1.125rem);line-height:var(--wcss-body-lg-line-height, 1.625rem)}.body-sm{font-size:var(--wcss-body-sm-font-size, .875rem);line-height:var(--wcss-body-sm-line-height, 1.25rem)}.body-sm,.body-xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-weight, 450);letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-xs{font-size:var(--wcss-body-xs-font-size, .75rem);line-height:var(--wcss-body-xs-line-height, 1rem)}.body-2xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-size:var(--wcss-body-2xs-font-size, .625rem);font-weight:var(--wcss-body-weight, 450);letter-spacing:var(--wcss-body-letter-spacing, 0);line-height:var(--wcss-body-2xs-line-height, .875rem)}.display-2xl{font-family:var(--wcss-display-2xl-family, "AS Circular"),var(--wcss-display-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-2xl-font-size, clamp(3.5rem, 6vw, 5.375rem));font-weight:var(--wcss-display-2xl-weight, 300);letter-spacing:var(--wcss-display-2xl-letter-spacing, 0);line-height:var(--wcss-display-2xl-line-height, 1.3)}.display-xl{font-family:var(--wcss-display-xl-family, "AS Circular"),var(--wcss-display-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-xl-font-size, clamp(3rem, 5.3333333333vw, 4.5rem));font-weight:var(--wcss-display-xl-weight, 300);letter-spacing:var(--wcss-display-xl-letter-spacing, 0);line-height:var(--wcss-display-xl-line-height, 1.3)}.display-lg{font-family:var(--wcss-display-lg-family, "AS Circular"),var(--wcss-display-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-lg-font-size, clamp(2.75rem, 4.6666666667vw, 4rem));font-weight:var(--wcss-display-lg-weight, 300);letter-spacing:var(--wcss-display-lg-letter-spacing, 0);line-height:var(--wcss-display-lg-line-height, 1.3)}.display-md{font-family:var(--wcss-display-md-family, "AS Circular"),var(--wcss-display-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-md-font-size, clamp(2.5rem, 4vw, 3.5rem));font-weight:var(--wcss-display-md-weight, 300);letter-spacing:var(--wcss-display-md-letter-spacing, 0);line-height:var(--wcss-display-md-line-height, 1.3)}.display-sm{font-family:var(--wcss-display-sm-family, "AS Circular"),var(--wcss-display-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-sm-font-size, clamp(2rem, 3.6666666667vw, 3rem));font-weight:var(--wcss-display-sm-weight, 300);letter-spacing:var(--wcss-display-sm-letter-spacing, 0);line-height:var(--wcss-display-sm-line-height, 1.3)}.display-xs{font-family:var(--wcss-display-xs-family, "AS Circular"),var(--wcss-display-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-xs-font-size, clamp(1.75rem, 3vw, 2.375rem));font-weight:var(--wcss-display-xs-weight, 300);letter-spacing:var(--wcss-display-xs-letter-spacing, 0);line-height:var(--wcss-display-xs-line-height, 1.3)}.heading-xl{font-family:var(--wcss-heading-xl-family, "AS Circular"),var(--wcss-heading-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-xl-font-size, clamp(2rem, 3vw, 2.5rem));font-weight:var(--wcss-heading-xl-weight, 300);letter-spacing:var(--wcss-heading-xl-letter-spacing, 0);line-height:var(--wcss-heading-xl-line-height, 1.3)}.heading-lg{font-family:var(--wcss-heading-lg-family, "AS Circular"),var(--wcss-heading-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-lg-font-size, clamp(1.75rem, 2.6666666667vw, 2.25rem));font-weight:var(--wcss-heading-lg-weight, 300);letter-spacing:var(--wcss-heading-lg-letter-spacing, 0);line-height:var(--wcss-heading-lg-line-height, 1.3)}.heading-md{font-family:var(--wcss-heading-md-family, "AS Circular"),var(--wcss-heading-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-md-font-size, clamp(1.625rem, 2.3333333333vw, 1.75rem));font-weight:var(--wcss-heading-md-weight, 300);letter-spacing:var(--wcss-heading-md-letter-spacing, 0);line-height:var(--wcss-heading-md-line-height, 1.3)}.heading-sm{font-family:var(--wcss-heading-sm-family, "AS Circular"),var(--wcss-heading-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-sm-font-size, clamp(1.375rem, 2vw, 1.5rem));font-weight:var(--wcss-heading-sm-weight, 300);letter-spacing:var(--wcss-heading-sm-letter-spacing, 0);line-height:var(--wcss-heading-sm-line-height, 1.3)}.heading-xs{font-family:var(--wcss-heading-xs-family, "AS Circular"),var(--wcss-heading-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-xs-font-size, clamp(1.25rem, 1.6666666667vw, 1.25rem));font-weight:var(--wcss-heading-xs-weight, 450);letter-spacing:var(--wcss-heading-xs-letter-spacing, 0);line-height:var(--wcss-heading-xs-line-height, 1.3)}.heading-2xs{font-family:var(--wcss-heading-2xs-family, "AS Circular"),var(--wcss-heading-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-2xs-font-size, clamp(1.125rem, 1.5vw, 1.125rem));font-weight:var(--wcss-heading-2xs-weight, 450);letter-spacing:var(--wcss-heading-2xs-letter-spacing, 0);line-height:var(--wcss-heading-2xs-line-height, 1.3)}.accent-2xl{font-family:var(--wcss-accent-2xl-family, "Good OT"),var(--wcss-accent-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-2xl-font-size, clamp(2rem, 3.1666666667vw, 2.375rem));font-weight:var(--wcss-accent-2xl-weight, 450);letter-spacing:var(--wcss-accent-2xl-letter-spacing, .05em);line-height:var(--wcss-accent-2xl-line-height, 1)}.accent-2xl,.accent-xl{text-transform:uppercase}.accent-xl{font-family:var(--wcss-accent-xl-family, "Good OT"),var(--wcss-accent-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-xl-font-size, clamp(1.625rem, 2.3333333333vw, 2rem));font-weight:var(--wcss-accent-xl-weight, 450);letter-spacing:var(--wcss-accent-xl-letter-spacing, .05em);line-height:var(--wcss-accent-xl-line-height, 1.3)}.accent-lg{font-family:var(--wcss-accent-lg-family, "Good OT"),var(--wcss-accent-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-lg-font-size, clamp(1.5rem, 2.1666666667vw, 1.75rem));font-weight:var(--wcss-accent-lg-weight, 450);letter-spacing:var(--wcss-accent-lg-letter-spacing, .05em);line-height:var(--wcss-accent-lg-line-height, 1.3)}.accent-lg,.accent-md{text-transform:uppercase}.accent-md{font-family:var(--wcss-accent-md-family, "Good OT"),var(--wcss-accent-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-md-font-size, clamp(1.375rem, 1.8333333333vw, 1.5rem));font-weight:var(--wcss-accent-md-weight, 500);letter-spacing:var(--wcss-accent-md-letter-spacing, .05em);line-height:var(--wcss-accent-md-line-height, 1.3)}.accent-sm{font-family:var(--wcss-accent-sm-family, "Good OT"),var(--wcss-accent-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-sm-font-size, clamp(1.125rem, 1.5vw, 1.25rem));font-weight:var(--wcss-accent-sm-weight, 500);letter-spacing:var(--wcss-accent-sm-letter-spacing, .05em);line-height:var(--wcss-accent-sm-line-height, 1.3)}.accent-sm,.accent-xs{text-transform:uppercase}.accent-xs{font-family:var(--wcss-accent-xs-family, "Good OT"),var(--wcss-accent-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-xs-font-size, clamp(1rem, 1.3333333333vw, 1rem));font-weight:var(--wcss-accent-xs-weight, 500);letter-spacing:var(--wcss-accent-xs-letter-spacing, .1em);line-height:var(--wcss-accent-xs-line-height, 1.3)}.accent-2xs{font-family:var(--wcss-accent-2xs-family, "Good OT"),var(--wcss-accent-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-2xs-font-size, clamp(.875rem, 1.1666666667vw, .875rem));font-weight:var(--wcss-accent-2xs-weight, 450);letter-spacing:var(--wcss-accent-2xs-letter-spacing, .1em);line-height:var(--wcss-accent-2xs-line-height, 1.3);text-transform:uppercase}:focus:not(:focus-visible){outline:3px solid transparent}:host,:host>span{position:relative}:host{width:2rem;height:2rem;display:inline-block;font-size:0}:host>span{position:absolute;display:inline-block;float:none;top:0;left:0;width:2rem;height:2rem;border-radius:100%;border-style:solid;border-width:0;box-sizing:border-box}:host([xs]),:host([xs])>span{width:1.2rem;height:1.2rem}:host([sm]),:host([sm])>span{width:3rem;height:3rem}:host([md]),:host([md])>span{width:5rem;height:5rem}:host([lg]),:host([lg])>span{width:8rem;height:8rem}:host{--margin: .375rem;--margin-xs: .2rem;--margin-sm: .5rem;--margin-md: .75rem;--margin-lg: 1rem}:host([pulse]),:host([pulse])>span{position:relative}:host([pulse]){width:calc(3rem + var(--margin) * 6);height:calc(1rem + var(--margin) * 2)}:host([pulse])>span{width:1rem;height:1rem;margin:var(--margin);animation:pulse 1.5s ease infinite}:host([pulse][xs]){width:calc(1.95rem + var(--margin-xs) * 6);height:calc(.65rem + var(--margin-xs) * 2)}:host([pulse][xs])>span{margin:var(--margin-xs);width:.65rem;height:.65rem}:host([pulse][sm]){width:calc(6rem + var(--margin-sm) * 6);height:calc(2rem + var(--margin-sm) * 2)}:host([pulse][sm])>span{margin:var(--margin-sm);width:2rem;height:2rem}:host([pulse][md]){width:calc(9rem + var(--margin-md) * 6);height:calc(3rem + var(--margin-md) * 2)}:host([pulse][md])>span{margin:var(--margin-md);width:3rem;height:3rem}:host([pulse][lg]){width:calc(15rem + var(--margin-lg) * 6);height:calc(5rem + var(--margin-lg) * 2)}:host([pulse][lg])>span{margin:var(--margin-lg);width:5rem;height:5rem}:host([pulse])>span:nth-child(1){animation-delay:-.4s}:host([pulse])>span:nth-child(2){animation-delay:-.2s}:host([pulse])>span:nth-child(3){animation-delay:0ms}@keyframes pulse{0%,to{opacity:.1;transform:scale(.9)}50%{opacity:1;transform:scale(1.1)}}:host([orbit]),:host([orbit])>span{opacity:1}:host([orbit])>span{border-width:5px}:host([orbit])>span:nth-child(2){animation:orbit 2s linear infinite}:host([orbit][sm])>span{border-width:8px}:host([orbit][md])>span{border-width:13px}:host([orbit][lg])>span{border-width:21px}@keyframes orbit{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host([ringworm])>svg{animation:rotate 2s linear infinite;height:100%;width:100%;stroke:currentcolor;stroke-width:8}:host([ringworm]) .path{stroke-dashoffset:0;animation:ringworm 1.5s ease-in-out infinite;stroke-linecap:round}@keyframes rotate{to{transform:rotate(360deg)}}@keyframes ringworm{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:89,200;stroke-dashoffset:-35px}to{stroke-dasharray:89,200;stroke-dashoffset:-124px}}:host([laser]){position:static;width:100%;display:block;height:0;overflow:hidden;font-size:unset}:host([laser])>span{position:fixed;width:100%;height:.25rem;border-radius:0;z-index:100}:host([laser])>span:nth-child(1){border-color:currentcolor;opacity:.25}:host([laser])>span:nth-child(2){border-color:currentcolor;animation:laser 2s linear infinite;opacity:1;width:50%}:host([laser][sm])>span:nth-child(2){width:20%}:host([laser][md])>span:nth-child(2){width:30%}:host([laser][lg])>span:nth-child(2){width:50%;animation-duration:1.5s}:host([laser][xl])>span:nth-child(2){width:80%;animation-duration:1.5s}@keyframes laser{0%{left:-100%}to{left:110%}}:host>.no-animation{display:none}@media (prefers-reduced-motion: reduce){:host{display:flex;align-items:center;justify-content:center}:host>span{opacity:1}:host>.loader{display:none}:host>svg{display:none}:host>.no-animation{display:block}}
|
|
@@ -19397,7 +19397,7 @@ let AuroHelpText$2 = class AuroHelpText extends LitElement {
|
|
|
19397
19397
|
}
|
|
19398
19398
|
};
|
|
19399
19399
|
|
|
19400
|
-
var formkitVersion$1 = '
|
|
19400
|
+
var formkitVersion$1 = '202607160836';
|
|
19401
19401
|
|
|
19402
19402
|
let AuroElement$2 = class AuroElement extends LitElement {
|
|
19403
19403
|
static get properties() {
|
|
@@ -19537,6 +19537,15 @@ class AuroDropdown extends AuroElement$2 {
|
|
|
19537
19537
|
this.matchWidth = false;
|
|
19538
19538
|
this.noHideOnThisFocusLoss = false;
|
|
19539
19539
|
|
|
19540
|
+
/**
|
|
19541
|
+
* When true, the dropdown skips its generic focus restoration on close.
|
|
19542
|
+
* Intended for internal consumer coordination (e.g. auro-combobox), not as a
|
|
19543
|
+
* declarative attribute.
|
|
19544
|
+
* Separate from noHideOnThisFocusLoss (which controls auto-close behavior).
|
|
19545
|
+
* @private
|
|
19546
|
+
*/
|
|
19547
|
+
this.noFocusRestoreOnClose = false;
|
|
19548
|
+
|
|
19540
19549
|
this.errorMessage = undefined; // TODO - check with Doug if there is still more to do here
|
|
19541
19550
|
|
|
19542
19551
|
// Layout Config
|
|
@@ -19711,10 +19720,23 @@ class AuroDropdown extends AuroElement$2 {
|
|
|
19711
19720
|
const slot = this.trigger.querySelector('slot[name="trigger"]');
|
|
19712
19721
|
if (slot) {
|
|
19713
19722
|
const assigned = slot.assignedElements();
|
|
19714
|
-
const
|
|
19715
|
-
|
|
19716
|
-
|
|
19717
|
-
|
|
19723
|
+
for (const el of assigned) {
|
|
19724
|
+
if (el.hasAttribute('disabled')) {
|
|
19725
|
+
continue;
|
|
19726
|
+
}
|
|
19727
|
+
// Try finding a focusable descendant first (handles non-focusable
|
|
19728
|
+
// wrappers like <div> containing a <button>). If none found, try
|
|
19729
|
+
// focusing the element directly (works for custom elements like
|
|
19730
|
+
// auro-input that have delegatesFocus or a custom focus() method).
|
|
19731
|
+
const descendants = getFocusableElements(el);
|
|
19732
|
+
if (descendants.length > 0) {
|
|
19733
|
+
descendants[0].focus();
|
|
19734
|
+
return;
|
|
19735
|
+
}
|
|
19736
|
+
el.focus();
|
|
19737
|
+
if (document.activeElement === el) {
|
|
19738
|
+
return;
|
|
19739
|
+
}
|
|
19718
19740
|
}
|
|
19719
19741
|
}
|
|
19720
19742
|
// Fallback: try DOM children (non-slotted content)
|
|
@@ -20174,7 +20196,7 @@ class AuroDropdown extends AuroElement$2 {
|
|
|
20174
20196
|
}
|
|
20175
20197
|
|
|
20176
20198
|
const eventType = event.detail.eventType || "unknown";
|
|
20177
|
-
if (!this.isPopoverVisible && this.hasFocus && eventType === "keydown") {
|
|
20199
|
+
if (!this.isPopoverVisible && this.hasFocus && eventType === "keydown" && !this.noFocusRestoreOnClose) {
|
|
20178
20200
|
this.focusTrigger();
|
|
20179
20201
|
}
|
|
20180
20202
|
|
|
@@ -20182,9 +20204,9 @@ class AuroDropdown extends AuroElement$2 {
|
|
|
20182
20204
|
// On Tab-driven close (eventType "focusloss"), let focus advance naturally
|
|
20183
20205
|
// — restoring to the trigger would trap the user on this dropdown, forcing
|
|
20184
20206
|
// an extra Tab to move on. Escape and outside-click still restore.
|
|
20185
|
-
// When
|
|
20207
|
+
// When noFocusRestoreOnClose is true, the consumer (e.g. combobox) manages
|
|
20186
20208
|
// its own focus restoration — skip the generic trigger focus to avoid races.
|
|
20187
|
-
if (!this.isPopoverVisible && eventType !== "focusloss" && !this.
|
|
20209
|
+
if (!this.isPopoverVisible && eventType !== "focusloss" && !this.noFocusRestoreOnClose) {
|
|
20188
20210
|
// wait til the bib gets fully closed and rendered
|
|
20189
20211
|
setTimeout(() => {
|
|
20190
20212
|
// Skip if the bib re-opened, or if focus moved intentionally outside the dropdown (not to body).
|
|
@@ -33050,7 +33072,7 @@ let AuroHelpText$1 = class AuroHelpText extends LitElement {
|
|
|
33050
33072
|
}
|
|
33051
33073
|
};
|
|
33052
33074
|
|
|
33053
|
-
var formkitVersion = '
|
|
33075
|
+
var formkitVersion = '202607160836';
|
|
33054
33076
|
|
|
33055
33077
|
// Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
|
|
33056
33078
|
// See LICENSE in the project root for license information.
|
|
@@ -33338,6 +33360,18 @@ class AuroInput extends BaseInput {
|
|
|
33338
33360
|
checkDisplayValueSlotChange() {
|
|
33339
33361
|
const slot = this.shadowRoot?.querySelector('slot[name="displayValue"]');
|
|
33340
33362
|
if (!slot) {
|
|
33363
|
+
// Shadow slot not yet rendered — fall back to checking light-DOM
|
|
33364
|
+
// children so hasDisplayValueContent isn't stuck false when called
|
|
33365
|
+
// before firstUpdated (e.g. from auro-combobox during mount).
|
|
33366
|
+
// Check for any element (including custom elements like <auro-icon>
|
|
33367
|
+
// that render via shadow DOM with no text content).
|
|
33368
|
+
const lightDomNodes = Array.from(this.querySelectorAll('[slot="displayValue"]:not(slot)'));
|
|
33369
|
+
this.hasDisplayValueContent = lightDomNodes.some((node) => (
|
|
33370
|
+
node.textContent.trim().length > 0 ||
|
|
33371
|
+
node.children.length > 0 ||
|
|
33372
|
+
node.shadowRoot !== null
|
|
33373
|
+
));
|
|
33374
|
+
this.requestUpdate();
|
|
33341
33375
|
return;
|
|
33342
33376
|
}
|
|
33343
33377
|
const nodes = slot.assignedNodes({ flatten: true });
|
|
@@ -33348,15 +33382,20 @@ class AuroInput extends BaseInput {
|
|
|
33348
33382
|
// displayValue wrapper to render (with hasContent class) but show
|
|
33349
33383
|
// nothing, blocking the combobox's synthetic displayValue from
|
|
33350
33384
|
// being visible on preset/deeplink load.
|
|
33385
|
+
// Custom elements (e.g. <auro-icon>) that render via shadow DOM are
|
|
33386
|
+
// treated as content even when they have no text or light-DOM children.
|
|
33351
33387
|
this.hasDisplayValueContent = nodes.some((node) => {
|
|
33352
33388
|
if (node.nodeType === Node.TEXT_NODE) {
|
|
33353
33389
|
return node.textContent.trim().length > 0;
|
|
33354
33390
|
}
|
|
33355
33391
|
if (node.nodeType === Node.ELEMENT_NODE) {
|
|
33356
|
-
return node.textContent.trim().length > 0 ||
|
|
33392
|
+
return node.textContent.trim().length > 0 ||
|
|
33393
|
+
node.children.length > 0 ||
|
|
33394
|
+
node.shadowRoot !== null;
|
|
33357
33395
|
}
|
|
33358
33396
|
return false;
|
|
33359
33397
|
});
|
|
33398
|
+
this.requestUpdate();
|
|
33360
33399
|
}
|
|
33361
33400
|
|
|
33362
33401
|
firstUpdated() {
|
|
@@ -3777,7 +3777,7 @@ class AuroHelpText extends i {
|
|
|
3777
3777
|
}
|
|
3778
3778
|
}
|
|
3779
3779
|
|
|
3780
|
-
var formkitVersion = '
|
|
3780
|
+
var formkitVersion = '202607160836';
|
|
3781
3781
|
|
|
3782
3782
|
class AuroElement extends i {
|
|
3783
3783
|
static get properties() {
|
|
@@ -3917,6 +3917,15 @@ class AuroDropdown extends AuroElement {
|
|
|
3917
3917
|
this.matchWidth = false;
|
|
3918
3918
|
this.noHideOnThisFocusLoss = false;
|
|
3919
3919
|
|
|
3920
|
+
/**
|
|
3921
|
+
* When true, the dropdown skips its generic focus restoration on close.
|
|
3922
|
+
* Intended for internal consumer coordination (e.g. auro-combobox), not as a
|
|
3923
|
+
* declarative attribute.
|
|
3924
|
+
* Separate from noHideOnThisFocusLoss (which controls auto-close behavior).
|
|
3925
|
+
* @private
|
|
3926
|
+
*/
|
|
3927
|
+
this.noFocusRestoreOnClose = false;
|
|
3928
|
+
|
|
3920
3929
|
this.errorMessage = undefined; // TODO - check with Doug if there is still more to do here
|
|
3921
3930
|
|
|
3922
3931
|
// Layout Config
|
|
@@ -4091,10 +4100,23 @@ class AuroDropdown extends AuroElement {
|
|
|
4091
4100
|
const slot = this.trigger.querySelector('slot[name="trigger"]');
|
|
4092
4101
|
if (slot) {
|
|
4093
4102
|
const assigned = slot.assignedElements();
|
|
4094
|
-
const
|
|
4095
|
-
|
|
4096
|
-
|
|
4097
|
-
|
|
4103
|
+
for (const el of assigned) {
|
|
4104
|
+
if (el.hasAttribute('disabled')) {
|
|
4105
|
+
continue;
|
|
4106
|
+
}
|
|
4107
|
+
// Try finding a focusable descendant first (handles non-focusable
|
|
4108
|
+
// wrappers like <div> containing a <button>). If none found, try
|
|
4109
|
+
// focusing the element directly (works for custom elements like
|
|
4110
|
+
// auro-input that have delegatesFocus or a custom focus() method).
|
|
4111
|
+
const descendants = getFocusableElements(el);
|
|
4112
|
+
if (descendants.length > 0) {
|
|
4113
|
+
descendants[0].focus();
|
|
4114
|
+
return;
|
|
4115
|
+
}
|
|
4116
|
+
el.focus();
|
|
4117
|
+
if (document.activeElement === el) {
|
|
4118
|
+
return;
|
|
4119
|
+
}
|
|
4098
4120
|
}
|
|
4099
4121
|
}
|
|
4100
4122
|
// Fallback: try DOM children (non-slotted content)
|
|
@@ -4554,7 +4576,7 @@ class AuroDropdown extends AuroElement {
|
|
|
4554
4576
|
}
|
|
4555
4577
|
|
|
4556
4578
|
const eventType = event.detail.eventType || "unknown";
|
|
4557
|
-
if (!this.isPopoverVisible && this.hasFocus && eventType === "keydown") {
|
|
4579
|
+
if (!this.isPopoverVisible && this.hasFocus && eventType === "keydown" && !this.noFocusRestoreOnClose) {
|
|
4558
4580
|
this.focusTrigger();
|
|
4559
4581
|
}
|
|
4560
4582
|
|
|
@@ -4562,9 +4584,9 @@ class AuroDropdown extends AuroElement {
|
|
|
4562
4584
|
// On Tab-driven close (eventType "focusloss"), let focus advance naturally
|
|
4563
4585
|
// — restoring to the trigger would trap the user on this dropdown, forcing
|
|
4564
4586
|
// an extra Tab to move on. Escape and outside-click still restore.
|
|
4565
|
-
// When
|
|
4587
|
+
// When noFocusRestoreOnClose is true, the consumer (e.g. combobox) manages
|
|
4566
4588
|
// its own focus restoration — skip the generic trigger focus to avoid races.
|
|
4567
|
-
if (!this.isPopoverVisible && eventType !== "focusloss" && !this.
|
|
4589
|
+
if (!this.isPopoverVisible && eventType !== "focusloss" && !this.noFocusRestoreOnClose) {
|
|
4568
4590
|
// wait til the bib gets fully closed and rendered
|
|
4569
4591
|
setTimeout(() => {
|
|
4570
4592
|
// Skip if the bib re-opened, or if focus moved intentionally outside the dropdown (not to body).
|
|
@@ -3777,7 +3777,7 @@ class AuroHelpText extends i {
|
|
|
3777
3777
|
}
|
|
3778
3778
|
}
|
|
3779
3779
|
|
|
3780
|
-
var formkitVersion = '
|
|
3780
|
+
var formkitVersion = '202607160836';
|
|
3781
3781
|
|
|
3782
3782
|
class AuroElement extends i {
|
|
3783
3783
|
static get properties() {
|
|
@@ -3917,6 +3917,15 @@ class AuroDropdown extends AuroElement {
|
|
|
3917
3917
|
this.matchWidth = false;
|
|
3918
3918
|
this.noHideOnThisFocusLoss = false;
|
|
3919
3919
|
|
|
3920
|
+
/**
|
|
3921
|
+
* When true, the dropdown skips its generic focus restoration on close.
|
|
3922
|
+
* Intended for internal consumer coordination (e.g. auro-combobox), not as a
|
|
3923
|
+
* declarative attribute.
|
|
3924
|
+
* Separate from noHideOnThisFocusLoss (which controls auto-close behavior).
|
|
3925
|
+
* @private
|
|
3926
|
+
*/
|
|
3927
|
+
this.noFocusRestoreOnClose = false;
|
|
3928
|
+
|
|
3920
3929
|
this.errorMessage = undefined; // TODO - check with Doug if there is still more to do here
|
|
3921
3930
|
|
|
3922
3931
|
// Layout Config
|
|
@@ -4091,10 +4100,23 @@ class AuroDropdown extends AuroElement {
|
|
|
4091
4100
|
const slot = this.trigger.querySelector('slot[name="trigger"]');
|
|
4092
4101
|
if (slot) {
|
|
4093
4102
|
const assigned = slot.assignedElements();
|
|
4094
|
-
const
|
|
4095
|
-
|
|
4096
|
-
|
|
4097
|
-
|
|
4103
|
+
for (const el of assigned) {
|
|
4104
|
+
if (el.hasAttribute('disabled')) {
|
|
4105
|
+
continue;
|
|
4106
|
+
}
|
|
4107
|
+
// Try finding a focusable descendant first (handles non-focusable
|
|
4108
|
+
// wrappers like <div> containing a <button>). If none found, try
|
|
4109
|
+
// focusing the element directly (works for custom elements like
|
|
4110
|
+
// auro-input that have delegatesFocus or a custom focus() method).
|
|
4111
|
+
const descendants = getFocusableElements(el);
|
|
4112
|
+
if (descendants.length > 0) {
|
|
4113
|
+
descendants[0].focus();
|
|
4114
|
+
return;
|
|
4115
|
+
}
|
|
4116
|
+
el.focus();
|
|
4117
|
+
if (document.activeElement === el) {
|
|
4118
|
+
return;
|
|
4119
|
+
}
|
|
4098
4120
|
}
|
|
4099
4121
|
}
|
|
4100
4122
|
// Fallback: try DOM children (non-slotted content)
|
|
@@ -4554,7 +4576,7 @@ class AuroDropdown extends AuroElement {
|
|
|
4554
4576
|
}
|
|
4555
4577
|
|
|
4556
4578
|
const eventType = event.detail.eventType || "unknown";
|
|
4557
|
-
if (!this.isPopoverVisible && this.hasFocus && eventType === "keydown") {
|
|
4579
|
+
if (!this.isPopoverVisible && this.hasFocus && eventType === "keydown" && !this.noFocusRestoreOnClose) {
|
|
4558
4580
|
this.focusTrigger();
|
|
4559
4581
|
}
|
|
4560
4582
|
|
|
@@ -4562,9 +4584,9 @@ class AuroDropdown extends AuroElement {
|
|
|
4562
4584
|
// On Tab-driven close (eventType "focusloss"), let focus advance naturally
|
|
4563
4585
|
// — restoring to the trigger would trap the user on this dropdown, forcing
|
|
4564
4586
|
// an extra Tab to move on. Escape and outside-click still restore.
|
|
4565
|
-
// When
|
|
4587
|
+
// When noFocusRestoreOnClose is true, the consumer (e.g. combobox) manages
|
|
4566
4588
|
// its own focus restoration — skip the generic trigger focus to avoid races.
|
|
4567
|
-
if (!this.isPopoverVisible && eventType !== "focusloss" && !this.
|
|
4589
|
+
if (!this.isPopoverVisible && eventType !== "focusloss" && !this.noFocusRestoreOnClose) {
|
|
4568
4590
|
// wait til the bib gets fully closed and rendered
|
|
4569
4591
|
setTimeout(() => {
|
|
4570
4592
|
// Skip if the bib re-opened, or if focus moved intentionally outside the dropdown (not to body).
|
|
@@ -3804,7 +3804,7 @@ class AuroHelpText extends i {
|
|
|
3804
3804
|
}
|
|
3805
3805
|
}
|
|
3806
3806
|
|
|
3807
|
-
var formkitVersion = '
|
|
3807
|
+
var formkitVersion = '202607160836';
|
|
3808
3808
|
|
|
3809
3809
|
class AuroElement extends i {
|
|
3810
3810
|
static get properties() {
|
|
@@ -3944,6 +3944,15 @@ class AuroDropdown extends AuroElement {
|
|
|
3944
3944
|
this.matchWidth = false;
|
|
3945
3945
|
this.noHideOnThisFocusLoss = false;
|
|
3946
3946
|
|
|
3947
|
+
/**
|
|
3948
|
+
* When true, the dropdown skips its generic focus restoration on close.
|
|
3949
|
+
* Intended for internal consumer coordination (e.g. auro-combobox), not as a
|
|
3950
|
+
* declarative attribute.
|
|
3951
|
+
* Separate from noHideOnThisFocusLoss (which controls auto-close behavior).
|
|
3952
|
+
* @private
|
|
3953
|
+
*/
|
|
3954
|
+
this.noFocusRestoreOnClose = false;
|
|
3955
|
+
|
|
3947
3956
|
this.errorMessage = undefined; // TODO - check with Doug if there is still more to do here
|
|
3948
3957
|
|
|
3949
3958
|
// Layout Config
|
|
@@ -4118,10 +4127,23 @@ class AuroDropdown extends AuroElement {
|
|
|
4118
4127
|
const slot = this.trigger.querySelector('slot[name="trigger"]');
|
|
4119
4128
|
if (slot) {
|
|
4120
4129
|
const assigned = slot.assignedElements();
|
|
4121
|
-
const
|
|
4122
|
-
|
|
4123
|
-
|
|
4124
|
-
|
|
4130
|
+
for (const el of assigned) {
|
|
4131
|
+
if (el.hasAttribute('disabled')) {
|
|
4132
|
+
continue;
|
|
4133
|
+
}
|
|
4134
|
+
// Try finding a focusable descendant first (handles non-focusable
|
|
4135
|
+
// wrappers like <div> containing a <button>). If none found, try
|
|
4136
|
+
// focusing the element directly (works for custom elements like
|
|
4137
|
+
// auro-input that have delegatesFocus or a custom focus() method).
|
|
4138
|
+
const descendants = getFocusableElements(el);
|
|
4139
|
+
if (descendants.length > 0) {
|
|
4140
|
+
descendants[0].focus();
|
|
4141
|
+
return;
|
|
4142
|
+
}
|
|
4143
|
+
el.focus();
|
|
4144
|
+
if (document.activeElement === el) {
|
|
4145
|
+
return;
|
|
4146
|
+
}
|
|
4125
4147
|
}
|
|
4126
4148
|
}
|
|
4127
4149
|
// Fallback: try DOM children (non-slotted content)
|
|
@@ -4581,7 +4603,7 @@ class AuroDropdown extends AuroElement {
|
|
|
4581
4603
|
}
|
|
4582
4604
|
|
|
4583
4605
|
const eventType = event.detail.eventType || "unknown";
|
|
4584
|
-
if (!this.isPopoverVisible && this.hasFocus && eventType === "keydown") {
|
|
4606
|
+
if (!this.isPopoverVisible && this.hasFocus && eventType === "keydown" && !this.noFocusRestoreOnClose) {
|
|
4585
4607
|
this.focusTrigger();
|
|
4586
4608
|
}
|
|
4587
4609
|
|
|
@@ -4589,9 +4611,9 @@ class AuroDropdown extends AuroElement {
|
|
|
4589
4611
|
// On Tab-driven close (eventType "focusloss"), let focus advance naturally
|
|
4590
4612
|
// — restoring to the trigger would trap the user on this dropdown, forcing
|
|
4591
4613
|
// an extra Tab to move on. Escape and outside-click still restore.
|
|
4592
|
-
// When
|
|
4614
|
+
// When noFocusRestoreOnClose is true, the consumer (e.g. combobox) manages
|
|
4593
4615
|
// its own focus restoration — skip the generic trigger focus to avoid races.
|
|
4594
|
-
if (!this.isPopoverVisible && eventType !== "focusloss" && !this.
|
|
4616
|
+
if (!this.isPopoverVisible && eventType !== "focusloss" && !this.noFocusRestoreOnClose) {
|
|
4595
4617
|
// wait til the bib gets fully closed and rendered
|
|
4596
4618
|
setTimeout(() => {
|
|
4597
4619
|
// Skip if the bib re-opened, or if focus moved intentionally outside the dropdown (not to body).
|
|
@@ -267,6 +267,14 @@ export class AuroDropdown extends AuroElement {
|
|
|
267
267
|
isBibFullscreen: boolean;
|
|
268
268
|
matchWidth: boolean;
|
|
269
269
|
noHideOnThisFocusLoss: boolean;
|
|
270
|
+
/**
|
|
271
|
+
* When true, the dropdown skips its generic focus restoration on close.
|
|
272
|
+
* Intended for internal consumer coordination (e.g. auro-combobox), not as a
|
|
273
|
+
* declarative attribute.
|
|
274
|
+
* Separate from noHideOnThisFocusLoss (which controls auto-close behavior).
|
|
275
|
+
* @private
|
|
276
|
+
*/
|
|
277
|
+
private noFocusRestoreOnClose;
|
|
270
278
|
errorMessage: any;
|
|
271
279
|
layout: any;
|
|
272
280
|
shape: any;
|
|
@@ -3709,7 +3709,7 @@ class AuroHelpText extends LitElement {
|
|
|
3709
3709
|
}
|
|
3710
3710
|
}
|
|
3711
3711
|
|
|
3712
|
-
var formkitVersion = '
|
|
3712
|
+
var formkitVersion = '202607160836';
|
|
3713
3713
|
|
|
3714
3714
|
class AuroElement extends LitElement {
|
|
3715
3715
|
static get properties() {
|
|
@@ -3849,6 +3849,15 @@ class AuroDropdown extends AuroElement {
|
|
|
3849
3849
|
this.matchWidth = false;
|
|
3850
3850
|
this.noHideOnThisFocusLoss = false;
|
|
3851
3851
|
|
|
3852
|
+
/**
|
|
3853
|
+
* When true, the dropdown skips its generic focus restoration on close.
|
|
3854
|
+
* Intended for internal consumer coordination (e.g. auro-combobox), not as a
|
|
3855
|
+
* declarative attribute.
|
|
3856
|
+
* Separate from noHideOnThisFocusLoss (which controls auto-close behavior).
|
|
3857
|
+
* @private
|
|
3858
|
+
*/
|
|
3859
|
+
this.noFocusRestoreOnClose = false;
|
|
3860
|
+
|
|
3852
3861
|
this.errorMessage = undefined; // TODO - check with Doug if there is still more to do here
|
|
3853
3862
|
|
|
3854
3863
|
// Layout Config
|
|
@@ -4023,10 +4032,23 @@ class AuroDropdown extends AuroElement {
|
|
|
4023
4032
|
const slot = this.trigger.querySelector('slot[name="trigger"]');
|
|
4024
4033
|
if (slot) {
|
|
4025
4034
|
const assigned = slot.assignedElements();
|
|
4026
|
-
const
|
|
4027
|
-
|
|
4028
|
-
|
|
4029
|
-
|
|
4035
|
+
for (const el of assigned) {
|
|
4036
|
+
if (el.hasAttribute('disabled')) {
|
|
4037
|
+
continue;
|
|
4038
|
+
}
|
|
4039
|
+
// Try finding a focusable descendant first (handles non-focusable
|
|
4040
|
+
// wrappers like <div> containing a <button>). If none found, try
|
|
4041
|
+
// focusing the element directly (works for custom elements like
|
|
4042
|
+
// auro-input that have delegatesFocus or a custom focus() method).
|
|
4043
|
+
const descendants = getFocusableElements(el);
|
|
4044
|
+
if (descendants.length > 0) {
|
|
4045
|
+
descendants[0].focus();
|
|
4046
|
+
return;
|
|
4047
|
+
}
|
|
4048
|
+
el.focus();
|
|
4049
|
+
if (document.activeElement === el) {
|
|
4050
|
+
return;
|
|
4051
|
+
}
|
|
4030
4052
|
}
|
|
4031
4053
|
}
|
|
4032
4054
|
// Fallback: try DOM children (non-slotted content)
|
|
@@ -4486,7 +4508,7 @@ class AuroDropdown extends AuroElement {
|
|
|
4486
4508
|
}
|
|
4487
4509
|
|
|
4488
4510
|
const eventType = event.detail.eventType || "unknown";
|
|
4489
|
-
if (!this.isPopoverVisible && this.hasFocus && eventType === "keydown") {
|
|
4511
|
+
if (!this.isPopoverVisible && this.hasFocus && eventType === "keydown" && !this.noFocusRestoreOnClose) {
|
|
4490
4512
|
this.focusTrigger();
|
|
4491
4513
|
}
|
|
4492
4514
|
|
|
@@ -4494,9 +4516,9 @@ class AuroDropdown extends AuroElement {
|
|
|
4494
4516
|
// On Tab-driven close (eventType "focusloss"), let focus advance naturally
|
|
4495
4517
|
// — restoring to the trigger would trap the user on this dropdown, forcing
|
|
4496
4518
|
// an extra Tab to move on. Escape and outside-click still restore.
|
|
4497
|
-
// When
|
|
4519
|
+
// When noFocusRestoreOnClose is true, the consumer (e.g. combobox) manages
|
|
4498
4520
|
// its own focus restoration — skip the generic trigger focus to avoid races.
|
|
4499
|
-
if (!this.isPopoverVisible && eventType !== "focusloss" && !this.
|
|
4521
|
+
if (!this.isPopoverVisible && eventType !== "focusloss" && !this.noFocusRestoreOnClose) {
|
|
4500
4522
|
// wait til the bib gets fully closed and rendered
|
|
4501
4523
|
setTimeout(() => {
|
|
4502
4524
|
// Skip if the bib re-opened, or if focus moved intentionally outside the dropdown (not to body).
|
|
@@ -3709,7 +3709,7 @@ class AuroHelpText extends LitElement {
|
|
|
3709
3709
|
}
|
|
3710
3710
|
}
|
|
3711
3711
|
|
|
3712
|
-
var formkitVersion = '
|
|
3712
|
+
var formkitVersion = '202607160836';
|
|
3713
3713
|
|
|
3714
3714
|
class AuroElement extends LitElement {
|
|
3715
3715
|
static get properties() {
|
|
@@ -3849,6 +3849,15 @@ class AuroDropdown extends AuroElement {
|
|
|
3849
3849
|
this.matchWidth = false;
|
|
3850
3850
|
this.noHideOnThisFocusLoss = false;
|
|
3851
3851
|
|
|
3852
|
+
/**
|
|
3853
|
+
* When true, the dropdown skips its generic focus restoration on close.
|
|
3854
|
+
* Intended for internal consumer coordination (e.g. auro-combobox), not as a
|
|
3855
|
+
* declarative attribute.
|
|
3856
|
+
* Separate from noHideOnThisFocusLoss (which controls auto-close behavior).
|
|
3857
|
+
* @private
|
|
3858
|
+
*/
|
|
3859
|
+
this.noFocusRestoreOnClose = false;
|
|
3860
|
+
|
|
3852
3861
|
this.errorMessage = undefined; // TODO - check with Doug if there is still more to do here
|
|
3853
3862
|
|
|
3854
3863
|
// Layout Config
|
|
@@ -4023,10 +4032,23 @@ class AuroDropdown extends AuroElement {
|
|
|
4023
4032
|
const slot = this.trigger.querySelector('slot[name="trigger"]');
|
|
4024
4033
|
if (slot) {
|
|
4025
4034
|
const assigned = slot.assignedElements();
|
|
4026
|
-
const
|
|
4027
|
-
|
|
4028
|
-
|
|
4029
|
-
|
|
4035
|
+
for (const el of assigned) {
|
|
4036
|
+
if (el.hasAttribute('disabled')) {
|
|
4037
|
+
continue;
|
|
4038
|
+
}
|
|
4039
|
+
// Try finding a focusable descendant first (handles non-focusable
|
|
4040
|
+
// wrappers like <div> containing a <button>). If none found, try
|
|
4041
|
+
// focusing the element directly (works for custom elements like
|
|
4042
|
+
// auro-input that have delegatesFocus or a custom focus() method).
|
|
4043
|
+
const descendants = getFocusableElements(el);
|
|
4044
|
+
if (descendants.length > 0) {
|
|
4045
|
+
descendants[0].focus();
|
|
4046
|
+
return;
|
|
4047
|
+
}
|
|
4048
|
+
el.focus();
|
|
4049
|
+
if (document.activeElement === el) {
|
|
4050
|
+
return;
|
|
4051
|
+
}
|
|
4030
4052
|
}
|
|
4031
4053
|
}
|
|
4032
4054
|
// Fallback: try DOM children (non-slotted content)
|
|
@@ -4486,7 +4508,7 @@ class AuroDropdown extends AuroElement {
|
|
|
4486
4508
|
}
|
|
4487
4509
|
|
|
4488
4510
|
const eventType = event.detail.eventType || "unknown";
|
|
4489
|
-
if (!this.isPopoverVisible && this.hasFocus && eventType === "keydown") {
|
|
4511
|
+
if (!this.isPopoverVisible && this.hasFocus && eventType === "keydown" && !this.noFocusRestoreOnClose) {
|
|
4490
4512
|
this.focusTrigger();
|
|
4491
4513
|
}
|
|
4492
4514
|
|
|
@@ -4494,9 +4516,9 @@ class AuroDropdown extends AuroElement {
|
|
|
4494
4516
|
// On Tab-driven close (eventType "focusloss"), let focus advance naturally
|
|
4495
4517
|
// — restoring to the trigger would trap the user on this dropdown, forcing
|
|
4496
4518
|
// an extra Tab to move on. Escape and outside-click still restore.
|
|
4497
|
-
// When
|
|
4519
|
+
// When noFocusRestoreOnClose is true, the consumer (e.g. combobox) manages
|
|
4498
4520
|
// its own focus restoration — skip the generic trigger focus to avoid races.
|
|
4499
|
-
if (!this.isPopoverVisible && eventType !== "focusloss" && !this.
|
|
4521
|
+
if (!this.isPopoverVisible && eventType !== "focusloss" && !this.noFocusRestoreOnClose) {
|
|
4500
4522
|
// wait til the bib gets fully closed and rendered
|
|
4501
4523
|
setTimeout(() => {
|
|
4502
4524
|
// Skip if the bib re-opened, or if focus moved intentionally outside the dropdown (not to body).
|