@aurodesignsystem-dev/auro-formkit 0.0.0-pr1524.0 → 0.0.0-pr1530.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (51) hide show
  1. package/components/checkbox/demo/customize.min.js +1 -1
  2. package/components/checkbox/demo/getting-started.min.js +1 -1
  3. package/components/checkbox/demo/index.min.js +1 -1
  4. package/components/checkbox/dist/index.js +1 -1
  5. package/components/checkbox/dist/registered.js +1 -1
  6. package/components/combobox/demo/customize.min.js +25 -67
  7. package/components/combobox/demo/getting-started.min.js +25 -67
  8. package/components/combobox/demo/index.min.js +25 -67
  9. package/components/combobox/dist/auro-combobox.d.ts +0 -2
  10. package/components/combobox/dist/index.js +25 -67
  11. package/components/combobox/dist/registered.js +25 -67
  12. package/components/counter/demo/customize.min.js +2 -2
  13. package/components/counter/demo/index.min.js +2 -2
  14. package/components/counter/dist/index.js +2 -2
  15. package/components/counter/dist/registered.js +2 -2
  16. package/components/datepicker/demo/accessibility.md +12 -3
  17. package/components/datepicker/demo/api.md +1 -1
  18. package/components/datepicker/demo/customize.min.js +121 -34
  19. package/components/datepicker/demo/index.min.js +121 -34
  20. package/components/datepicker/demo/voiceover.md +1 -1
  21. package/components/datepicker/dist/auro-calendar-cell.d.ts +2 -0
  22. package/components/datepicker/dist/auro-calendar.d.ts +17 -2
  23. package/components/datepicker/dist/auro-datepicker.d.ts +9 -1
  24. package/components/datepicker/dist/index.js +121 -34
  25. package/components/datepicker/dist/registered.js +121 -34
  26. package/components/dropdown/demo/customize.min.js +1 -1
  27. package/components/dropdown/demo/getting-started.min.js +1 -1
  28. package/components/dropdown/demo/index.min.js +1 -1
  29. package/components/dropdown/dist/index.js +1 -1
  30. package/components/dropdown/dist/registered.js +1 -1
  31. package/components/form/demo/customize.min.js +170 -123
  32. package/components/form/demo/getting-started.min.js +170 -123
  33. package/components/form/demo/index.min.js +170 -123
  34. package/components/form/demo/registerDemoDeps.min.js +170 -123
  35. package/components/input/demo/customize.min.js +19 -17
  36. package/components/input/demo/getting-started.min.js +19 -17
  37. package/components/input/demo/index.min.js +19 -17
  38. package/components/input/dist/index.js +19 -17
  39. package/components/input/dist/registered.js +19 -17
  40. package/components/radio/demo/customize.min.js +1 -1
  41. package/components/radio/demo/getting-started.min.js +1 -1
  42. package/components/radio/demo/index.min.js +1 -1
  43. package/components/radio/dist/index.js +1 -1
  44. package/components/radio/dist/registered.js +1 -1
  45. package/components/select/demo/customize.min.js +2 -2
  46. package/components/select/demo/getting-started.min.js +2 -2
  47. package/components/select/demo/index.min.js +2 -2
  48. package/components/select/dist/index.js +2 -2
  49. package/components/select/dist/registered.js +2 -2
  50. package/custom-elements.json +5 -19
  51. package/package.json +1 -1
@@ -11602,17 +11602,14 @@ let BaseInput$2 = class BaseInput extends AuroElement$6 {
11602
11602
  * @returns {void}
11603
11603
  */
11604
11604
  notifyValueChanged() {
11605
- // This echoes Lit's reactive value update (and handleClickClear's
11606
- // programmatic clear) — it is NOT a fresh user-input event. Mark it
11607
- // `isProgrammatic` so consumers (e.g. auro-combobox) can distinguish
11608
- // it from genuine user typing and skip clobbering their own
11609
- // programmatic state during init-time renders.
11610
- const inputEvent = new Event('input', {
11605
+ let inputEvent = null;
11606
+
11607
+ inputEvent = new Event('input', {
11611
11608
  bubbles: true,
11612
11609
  composed: true,
11613
11610
  });
11614
- inputEvent.isProgrammatic = true;
11615
11611
 
11612
+ // Dispatched event to alert outside shadow DOM context of event firing.
11616
11613
  this.dispatchEvent(inputEvent);
11617
11614
  }
11618
11615
 
@@ -12325,7 +12322,7 @@ let AuroHelpText$8 = class AuroHelpText extends i$2 {
12325
12322
  }
12326
12323
  };
12327
12324
 
12328
- var formkitVersion$8 = '202607020031';
12325
+ var formkitVersion$8 = '202607021905';
12329
12326
 
12330
12327
  // Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
12331
12328
  // See LICENSE in the project root for license information.
@@ -12611,15 +12608,20 @@ let AuroInput$2 = class AuroInput extends BaseInput$2 {
12611
12608
  * @returns {void}
12612
12609
  */
12613
12610
  checkDisplayValueSlotChange() {
12614
- // flatten:true resolves through auro-combobox's forwarding slot
12615
- // (<slot name="displayValue" slot="displayValue">) so a clone appended
12616
- // directly to auro-input's light DOM alongside the forwarder still
12617
- // counts as content. The prior nodes[0].tagName === 'SLOT' recursion
12618
- // discarded any siblings past the forwarder.
12619
- const slot = this.shadowRoot.querySelector('slot[name="displayValue"]');
12620
- const nodes = slot.assignedNodes({ flatten: true });
12611
+ let nodes = this.shadowRoot.querySelector('slot[name="displayValue"]').assignedNodes();
12621
12612
 
12622
- this.hasDisplayValueContent = nodes.length > 0;
12613
+ // Handle when DisplayValue is multi-level slot content (e.g. combobox passing displayValue to input)
12614
+ if (nodes && nodes[0] && nodes[0].tagName === 'SLOT') {
12615
+ nodes = nodes[0].assignedNodes();
12616
+ }
12617
+
12618
+ let hasContent = false;
12619
+
12620
+ if (nodes.length > 0) {
12621
+ hasContent = true;
12622
+ }
12623
+
12624
+ this.hasDisplayValueContent = hasContent;
12623
12625
  }
12624
12626
 
12625
12627
  firstUpdated() {
@@ -25289,9 +25291,20 @@ class AuroCalendarCell extends i$2 {
25289
25291
  const calendar = this.runtimeUtils.closestElement('auro-formkit-calendar', calendarMonth);
25290
25292
 
25291
25293
  if (!calendar) {
25292
- setTimeout(() => this.firstUpdated(), 0);
25294
+ // Retry on the next event-loop turn to give the ancestor chain a chance
25295
+ // to attach — but cap attempts so a permanently detached cell doesn't
25296
+ // spin forever. 10 turns is far more than any observed race needs.
25297
+ this._firstUpdatedRetries = (this._firstUpdatedRetries || 0) + 1;
25298
+ if (this._firstUpdatedRetries > 10) { // eslint-disable-line no-magic-numbers
25299
+ return;
25300
+ }
25301
+ this._firstUpdatedRetryTimer = setTimeout(() => {
25302
+ this._firstUpdatedRetryTimer = null;
25303
+ this.firstUpdated();
25304
+ }, 0);
25293
25305
  return;
25294
25306
  }
25307
+ this._firstUpdatedRetries = 0;
25295
25308
  this.calendar = calendar;
25296
25309
  this.datepicker = calendar.datepicker;
25297
25310
  this._slotContentHandler = () => {
@@ -25319,6 +25332,10 @@ class AuroCalendarCell extends i$2 {
25319
25332
  if (this.datepicker && this._slotContentHandler) {
25320
25333
  this.datepicker.removeEventListener('auroDatePicker-newSlotContent', this._slotContentHandler);
25321
25334
  }
25335
+ if (this._firstUpdatedRetryTimer) {
25336
+ clearTimeout(this._firstUpdatedRetryTimer);
25337
+ this._firstUpdatedRetryTimer = null;
25338
+ }
25322
25339
  }
25323
25340
 
25324
25341
  /**
@@ -26690,7 +26707,7 @@ let AuroBibtemplate$3 = class AuroBibtemplate extends i$2 {
26690
26707
  }
26691
26708
  };
26692
26709
 
26693
- var formkitVersion$2$1 = '202607020031';
26710
+ var formkitVersion$2$1 = '202607021905';
26694
26711
 
26695
26712
  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}
26696
26713
  `,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}}
@@ -27407,8 +27424,19 @@ class AuroCalendar extends RangeDatepicker {
27407
27424
  /**
27408
27425
  * Returns a memoized Set of blackout timestamps (seconds) drawn from both
27409
27426
  * the legacy `disabledDays` array and the datepicker's ISO `blackoutDates`.
27410
- * The cache invalidates when either source array's reference changes, which
27411
- * matches Lit's own reactive identity semantics for array properties.
27427
+ *
27428
+ * The cache invalidates on **reference identity** only when the
27429
+ * consumer reassigns the array (`el.blackoutDates = [...]`), matching
27430
+ * Lit's own reactivity semantics for array properties. In-place mutations
27431
+ * on the existing array (`push`, `splice`, index assignment) will NOT
27432
+ * invalidate the cache and the new entries will be silently ignored.
27433
+ * Consumers must reassign to update — see the JSDoc on
27434
+ * `auro-datepicker.blackoutDates` for the recommended pattern.
27435
+ *
27436
+ * A shallow-equality tier was considered but rejected: it would run
27437
+ * O(N) work on every cell render (this method is called per-cell via
27438
+ * `isBlackout()`) and still wouldn't catch same-length value swaps,
27439
+ * offering a false sense of safety.
27412
27440
  * @private
27413
27441
  * @returns {Set<Number>}
27414
27442
  */
@@ -27589,7 +27617,21 @@ class AuroCalendar extends RangeDatepicker {
27589
27617
  // rendered month(s) first so a single-month calendar does not pick a date
27590
27618
  // that has no DOM cell. Determine the visible range based on centralDate and
27591
27619
  // the number of rendered months.
27592
- const renderedMonths = Math.max(this.numCalendars, 1);
27620
+ //
27621
+ // numCalendars is assigned during renderAllCalendars(), which runs after
27622
+ // updated() — so the visible-change handler's eager computeActiveDate()
27623
+ // call arrives with numCalendars still undefined. Math.max(undefined, 1)
27624
+ // is NaN, which would silently skip the visible-month scan below. Fall
27625
+ // back to maximumRenderableMonths' desktop default (1 for non-range,
27626
+ // 2 for range) so the scan window is correctly sized on first open.
27627
+ let renderedMonths = null;
27628
+
27629
+ if (Number.isFinite(this.numCalendars) && this.numCalendars > 0) {
27630
+ renderedMonths = this.numCalendars;
27631
+ } else {
27632
+ renderedMonths = this.noRange ? 1 : 2;
27633
+ }
27634
+
27593
27635
  const visibleAnchor = this.centralDateObject ?? new Date(now * 1000);
27594
27636
  const visMonthStart = new Date(visibleAnchor.getFullYear(), visibleAnchor.getMonth(), 1);
27595
27637
  visMonthStart.setHours(0, 0, 0, 0);
@@ -27859,6 +27901,8 @@ class AuroCalendar extends RangeDatepicker {
27859
27901
  let targetIndex = -1;
27860
27902
  if (direction === 'next') {
27861
27903
  targetIndex = currentIndex + 1;
27904
+ } else if (direction === 'prev') {
27905
+ targetIndex = currentIndex - 1;
27862
27906
  }
27863
27907
 
27864
27908
  if (targetIndex >= 0 && targetIndex < allCells.length) {
@@ -28463,6 +28507,10 @@ class AuroCalendar extends RangeDatepicker {
28463
28507
  * originally tried aria-live="polite" here, but VoiceOver treats
28464
28508
  * polite as "wait until idle" — which never happens during active
28465
28509
  * keyboard navigation — so the announcements were silently dropped.
28510
+ *
28511
+ * This is a documented deviation from WCAG 2.1 SC 4.1.3, which
28512
+ * prefers `polite` for status messages. See the "Documented
28513
+ * Deviation" section in components/datepicker/docs/pages/accessibility.md.
28466
28514
  * @private
28467
28515
  * @param {String} dateStr - The localized date string to announce.
28468
28516
  * @returns {void}
@@ -32508,7 +32556,7 @@ let AuroHelpText$2$1 = class AuroHelpText extends i$2 {
32508
32556
  }
32509
32557
  };
32510
32558
 
32511
- var formkitVersion$1$3 = '202607020031';
32559
+ var formkitVersion$1$3 = '202607021905';
32512
32560
 
32513
32561
  let AuroElement$2$2 = class AuroElement extends i$2 {
32514
32562
  static get properties() {
@@ -45390,17 +45438,14 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
45390
45438
  * @returns {void}
45391
45439
  */
45392
45440
  notifyValueChanged() {
45393
- // This echoes Lit's reactive value update (and handleClickClear's
45394
- // programmatic clear) — it is NOT a fresh user-input event. Mark it
45395
- // `isProgrammatic` so consumers (e.g. auro-combobox) can distinguish
45396
- // it from genuine user typing and skip clobbering their own
45397
- // programmatic state during init-time renders.
45398
- const inputEvent = new Event('input', {
45441
+ let inputEvent = null;
45442
+
45443
+ inputEvent = new Event('input', {
45399
45444
  bubbles: true,
45400
45445
  composed: true,
45401
45446
  });
45402
- inputEvent.isProgrammatic = true;
45403
45447
 
45448
+ // Dispatched event to alert outside shadow DOM context of event firing.
45404
45449
  this.dispatchEvent(inputEvent);
45405
45450
  }
45406
45451
 
@@ -46113,7 +46158,7 @@ let AuroHelpText$1$3 = class AuroHelpText extends i$2 {
46113
46158
  }
46114
46159
  };
46115
46160
 
46116
- var formkitVersion$7 = '202607020031';
46161
+ var formkitVersion$7 = '202607021905';
46117
46162
 
46118
46163
  // Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
46119
46164
  // See LICENSE in the project root for license information.
@@ -46399,15 +46444,20 @@ let AuroInput$1 = class AuroInput extends BaseInput$1 {
46399
46444
  * @returns {void}
46400
46445
  */
46401
46446
  checkDisplayValueSlotChange() {
46402
- // flatten:true resolves through auro-combobox's forwarding slot
46403
- // (<slot name="displayValue" slot="displayValue">) so a clone appended
46404
- // directly to auro-input's light DOM alongside the forwarder still
46405
- // counts as content. The prior nodes[0].tagName === 'SLOT' recursion
46406
- // discarded any siblings past the forwarder.
46407
- const slot = this.shadowRoot.querySelector('slot[name="displayValue"]');
46408
- const nodes = slot.assignedNodes({ flatten: true });
46447
+ let nodes = this.shadowRoot.querySelector('slot[name="displayValue"]').assignedNodes();
46448
+
46449
+ // Handle when DisplayValue is multi-level slot content (e.g. combobox passing displayValue to input)
46450
+ if (nodes && nodes[0] && nodes[0].tagName === 'SLOT') {
46451
+ nodes = nodes[0].assignedNodes();
46452
+ }
46409
46453
 
46410
- this.hasDisplayValueContent = nodes.length > 0;
46454
+ let hasContent = false;
46455
+
46456
+ if (nodes.length > 0) {
46457
+ hasContent = true;
46458
+ }
46459
+
46460
+ this.hasDisplayValueContent = hasContent;
46411
46461
  }
46412
46462
 
46413
46463
  firstUpdated() {
@@ -47485,6 +47535,15 @@ const datepickerKeyboardStrategy = {
47485
47535
  evt.stopPropagation();
47486
47536
  evt.preventDefault();
47487
47537
 
47538
+ // Signal to the visibility-change handler in auro-datepicker.js that
47539
+ // focus should be restored to the trigger regardless of hasFocus.
47540
+ // hidePopover() (desktop non-modal path) does not auto-restore focus,
47541
+ // and hiding the grid's popover ancestor drops focus to <body>. That
47542
+ // synchronously fires focusout on the datepicker host — clearing
47543
+ // hasFocus — before updated() runs, which would otherwise skip the
47544
+ // input refocus. Native <dialog>.close() (modal path) restores focus
47545
+ // itself, but the flag is harmless there.
47546
+ component._restoreFocusOnClose = true;
47488
47547
  component.hideBib();
47489
47548
  },
47490
47549
 
@@ -47758,6 +47817,14 @@ class AuroDatePicker extends AuroElement$5 {
47758
47817
 
47759
47818
  /**
47760
47819
  * Array of dates that cannot be selected. Dates should be in ISO format (YYYY-MM-DD).
47820
+ *
47821
+ * **Immutable update required.** The datepicker treats this array as
47822
+ * immutable and memoizes a lookup Set keyed on the array's reference
47823
+ * identity — matching Lit's own reactivity semantics for array
47824
+ * properties. In-place mutations (`blackoutDates.push(...)`,
47825
+ * `blackoutDates[i] = ...`, `blackoutDates.splice(...)`) will not
47826
+ * invalidate the cache and the new entries will be silently ignored.
47827
+ * To update, reassign the property: `el.blackoutDates = [...el.blackoutDates, '2024-12-25']`.
47761
47828
  */
47762
47829
  blackoutDates: {
47763
47830
  type: Array,
@@ -48643,12 +48710,13 @@ class AuroDatePicker extends AuroElement$5 {
48643
48710
  this.calendar.activeCellDate = null;
48644
48711
 
48645
48712
  // Show the month containing the selected date (or today) instead of
48646
- // whichever month the user last navigated to.
48713
+ // whichever month the user last navigated to. Route through
48714
+ // updateCentralDate so centralDate stays first-of-month.
48647
48715
  // Respect consumer-provided centralDate/calendarStartDate if no value is set.
48648
48716
  if (this.valueObject) {
48649
- this.centralDate = this.value;
48717
+ this.calendarRenderUtil.updateCentralDate(this, this.value);
48650
48718
  } else if (!this.centralDate && !this.calendarStartDate && !this.minDate) {
48651
- this.centralDate = dateFormatter$1.toISOFormatString(new Date());
48719
+ this.calendarRenderUtil.updateCentralDate(this, new Date());
48652
48720
  }
48653
48721
  }
48654
48722
 
@@ -48706,8 +48774,15 @@ class AuroDatePicker extends AuroElement$5 {
48706
48774
  // Always clear the inert flag. Only restore focus to the input when the datepicker
48707
48775
  // still has focus (e.g. Escape, date selected) — not when the user tabbed away,
48708
48776
  // which would pull them back and require extra Tab presses to escape.
48777
+ //
48778
+ // `_restoreFocusOnClose` is set by the Escape handler in
48779
+ // datepickerKeyboardStrategy.js to force restore even when hasFocus
48780
+ // has already been cleared — hidePopover() (desktop non-modal path)
48781
+ // can drop focus to <body> before this update fires.
48709
48782
  this.dropdown.trigger.inert = false;
48710
- if (this.hasFocus) {
48783
+ const shouldRestoreFocus = this.hasFocus || this._restoreFocusOnClose;
48784
+ this._restoreFocusOnClose = false;
48785
+ if (shouldRestoreFocus) {
48711
48786
  requestAnimationFrame(() => {
48712
48787
  if (!this.dropdown.isPopoverVisible) {
48713
48788
  this.inputList[0].focus();
@@ -49153,6 +49228,18 @@ class AuroDatePicker extends AuroElement$5 {
49153
49228
  this.calendar.requestUpdate();
49154
49229
  this.dispatchEvent(new CustomEvent('auroDatePicker-newSlotContent'));
49155
49230
  }
49231
+
49232
+ // Range invariant: if a value change (from click or programmatic) has
49233
+ // moved start past end, clear valueEnd here so both properties land in
49234
+ // the SAME reactive cycle. Doing it in updated() would schedule a
49235
+ // second cycle after cellClickActive/wasCellClick has already been
49236
+ // consumed by the value branch, leaving the valueEnd branch to run
49237
+ // with a stale handshake and racing with any intervening programmatic
49238
+ // value assignments.
49239
+ if ((changedProperties.has('value') || changedProperties.has('valueEnd')) &&
49240
+ this.valueObject && this.valueEndObject && this.valueObject > this.valueEndObject) {
49241
+ this.valueEnd = undefined;
49242
+ }
49156
49243
  }
49157
49244
 
49158
49245
  updated(changedProperties) {
@@ -49220,8 +49307,12 @@ class AuroDatePicker extends AuroElement$5 {
49220
49307
 
49221
49308
  if (this.value && this.value.length === this.inputList[0].lengthForType && !(this.wasCellClick && this.range)) {
49222
49309
  // Skip centralDate update when user clicked a cell in range mode
49223
- // to prevent the displayed months from shifting
49224
- this.centralDate = this.value;
49310
+ // to prevent the displayed months from shifting. Route through
49311
+ // updateCentralDate so centralDate stays first-of-month — direct
49312
+ // assignment of the raw value briefly holds a mid-month string
49313
+ // and violates the invariant that observers (e.g. calendar sync)
49314
+ // rely on.
49315
+ this.calendarRenderUtil.updateCentralDate(this, this.value);
49225
49316
  }
49226
49317
 
49227
49318
  this.setHasValue();
@@ -49279,8 +49370,10 @@ class AuroDatePicker extends AuroElement$5 {
49279
49370
 
49280
49371
  if (this.valueEnd && this.valueEnd.length === this.inputList[1].lengthForType && !this.wasCellClick) {
49281
49372
  // Skip centralDate update when user clicked a cell in range mode
49282
- // to prevent the displayed months from shifting
49283
- this.centralDate = this.valueEnd;
49373
+ // to prevent the displayed months from shifting. Route through
49374
+ // updateCentralDate to preserve the first-of-month invariant
49375
+ // (see matching comment in the value branch above).
49376
+ this.calendarRenderUtil.updateCentralDate(this, this.valueEnd);
49284
49377
  }
49285
49378
 
49286
49379
  this.validate();
@@ -49304,10 +49397,6 @@ class AuroDatePicker extends AuroElement$5 {
49304
49397
  this.validation.validate(lastInput, true);
49305
49398
  }
49306
49399
 
49307
- if (this.valueObject && this.valueEndObject && this.valueObject > this.valueEndObject) {
49308
- this.valueEnd = undefined;
49309
- }
49310
-
49311
49400
  // This resets the datepicker when the minDate is set to a new value that is
49312
49401
  // a later date than the current value date
49313
49402
  if (changedProperties.has('minDate') && this.minDate) {
@@ -50990,7 +51079,7 @@ let AuroHelpText$1$2 = class AuroHelpText extends i$2 {
50990
51079
  }
50991
51080
  };
50992
51081
 
50993
- var formkitVersion$1$2 = '202607020031';
51082
+ var formkitVersion$1$2 = '202607021905';
50994
51083
 
50995
51084
  // Copyright (c) 2026 Alaska Airlines. All rights reserved. Licensed under the Apache-2.0 license
50996
51085
  // See LICENSE in the project root for license information.
@@ -55318,7 +55407,7 @@ let AuroHelpText$6 = class AuroHelpText extends i$2 {
55318
55407
  }
55319
55408
  };
55320
55409
 
55321
- var formkitVersion$6 = '202607020031';
55410
+ var formkitVersion$6 = '202607021905';
55322
55411
 
55323
55412
  let AuroElement$1$2 = class AuroElement extends i$2 {
55324
55413
  static get properties() {
@@ -59298,7 +59387,7 @@ let AuroHelpText$5 = class AuroHelpText extends i$2 {
59298
59387
  }
59299
59388
  };
59300
59389
 
59301
- var formkitVersion$5 = '202607020031';
59390
+ var formkitVersion$5 = '202607021905';
59302
59391
 
59303
59392
  // Copyright (c) Alaska Air. All right reserved. Licensed under the Apache-2.0 license
59304
59393
  // See LICENSE in the project root for license information.
@@ -61063,7 +61152,7 @@ let AuroHelpText$4 = class AuroHelpText extends i$2 {
61063
61152
  }
61064
61153
  };
61065
61154
 
61066
- var formkitVersion$4 = '202607020031';
61155
+ var formkitVersion$4 = '202607021905';
61067
61156
 
61068
61157
  // Copyright (c) 2026 Alaska Airlines. All rights reserved. Licensed under the Apache-2.0 license
61069
61158
  // See LICENSE in the project root for license information.
@@ -66284,7 +66373,7 @@ let AuroHelpText$2 = class AuroHelpText extends i$2 {
66284
66373
  }
66285
66374
  };
66286
66375
 
66287
- var formkitVersion$2 = '202607020031';
66376
+ var formkitVersion$2 = '202607021905';
66288
66377
 
66289
66378
  let AuroElement$2$1 = class AuroElement extends i$2 {
66290
66379
  static get properties() {
@@ -79166,17 +79255,14 @@ class BaseInput extends AuroElement$1$1 {
79166
79255
  * @returns {void}
79167
79256
  */
79168
79257
  notifyValueChanged() {
79169
- // This echoes Lit's reactive value update (and handleClickClear's
79170
- // programmatic clear) — it is NOT a fresh user-input event. Mark it
79171
- // `isProgrammatic` so consumers (e.g. auro-combobox) can distinguish
79172
- // it from genuine user typing and skip clobbering their own
79173
- // programmatic state during init-time renders.
79174
- const inputEvent = new Event('input', {
79258
+ let inputEvent = null;
79259
+
79260
+ inputEvent = new Event('input', {
79175
79261
  bubbles: true,
79176
79262
  composed: true,
79177
79263
  });
79178
- inputEvent.isProgrammatic = true;
79179
79264
 
79265
+ // Dispatched event to alert outside shadow DOM context of event firing.
79180
79266
  this.dispatchEvent(inputEvent);
79181
79267
  }
79182
79268
 
@@ -79889,7 +79975,7 @@ let AuroHelpText$1$1 = class AuroHelpText extends i$2 {
79889
79975
  }
79890
79976
  };
79891
79977
 
79892
- var formkitVersion$1$1 = '202607020031';
79978
+ var formkitVersion$1$1 = '202607021905';
79893
79979
 
79894
79980
  // Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
79895
79981
  // See LICENSE in the project root for license information.
@@ -80175,15 +80261,20 @@ class AuroInput extends BaseInput {
80175
80261
  * @returns {void}
80176
80262
  */
80177
80263
  checkDisplayValueSlotChange() {
80178
- // flatten:true resolves through auro-combobox's forwarding slot
80179
- // (<slot name="displayValue" slot="displayValue">) so a clone appended
80180
- // directly to auro-input's light DOM alongside the forwarder still
80181
- // counts as content. The prior nodes[0].tagName === 'SLOT' recursion
80182
- // discarded any siblings past the forwarder.
80183
- const slot = this.shadowRoot.querySelector('slot[name="displayValue"]');
80184
- const nodes = slot.assignedNodes({ flatten: true });
80264
+ let nodes = this.shadowRoot.querySelector('slot[name="displayValue"]').assignedNodes();
80185
80265
 
80186
- this.hasDisplayValueContent = nodes.length > 0;
80266
+ // Handle when DisplayValue is multi-level slot content (e.g. combobox passing displayValue to input)
80267
+ if (nodes && nodes[0] && nodes[0].tagName === 'SLOT') {
80268
+ nodes = nodes[0].assignedNodes();
80269
+ }
80270
+
80271
+ let hasContent = false;
80272
+
80273
+ if (nodes.length > 0) {
80274
+ hasContent = true;
80275
+ }
80276
+
80277
+ this.hasDisplayValueContent = hasContent;
80187
80278
  }
80188
80279
 
80189
80280
  firstUpdated() {
@@ -81010,7 +81101,7 @@ let AuroBibtemplate$1 = class AuroBibtemplate extends i$2 {
81010
81101
  }
81011
81102
  };
81012
81103
 
81013
- var formkitVersion$3 = '202607020031';
81104
+ var formkitVersion$3 = '202607021905';
81014
81105
 
81015
81106
  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}`;
81016
81107
 
@@ -82109,11 +82200,9 @@ class AuroCombobox extends AuroElement$3 {
82109
82200
  /**
82110
82201
  * Processes hidden state of all menu options and determines if there are any available options not hidden.
82111
82202
  * @private
82112
- * @param {object} [root0={}] - Optional flag bag.
82113
- * @param {boolean} [root0.preferComboboxValue=false] - When true, a match on `this.value` wins the tie-break over `this.input.value` (used by handleSlotChange on mount / re-mount).
82114
82203
  * @returns {void}
82115
82204
  */
82116
- handleMenuOptions({ preferComboboxValue = false } = {}) {
82205
+ handleMenuOptions() {
82117
82206
  this.generateOptionsArray();
82118
82207
  this.availableOptions = [];
82119
82208
  // Single source of truth for the menu's filter/highlight token per call.
@@ -82134,20 +82223,8 @@ class AuroCombobox extends AuroElement$3 {
82134
82223
  option.setAttribute('aria-posinset', index + 1);
82135
82224
  });
82136
82225
 
82137
- // On mount/re-mount (via handleSlotChange), prefer the framework-set
82138
- // `this.value` when it matches a menu option. Covers SPA preselect and
82139
- // consumer swap patterns (e.g. Svelte `{#key}` re-mount) where
82140
- // `this.value` is authoritative but `this.input.value` may be empty or
82141
- // carry stale typed text from another field. Do NOT enable this in the
82142
- // event-driven path — user clears would be undone by re-syncing to the
82143
- // previous combobox.value.
82144
- const valueMatches = preferComboboxValue &&
82145
- this.value &&
82146
- this.menu.options &&
82147
- this.menu.options.some((opt) => opt.value === this.value);
82148
- const matchValue = valueMatches ? this.value : this.input.value;
82149
- if (matchValue && this.menu.options && this.menu.options.some((opt) => opt.value === matchValue)) {
82150
- this.setMenuValue(matchValue);
82226
+ if (this.input.value && this.menu.options && this.menu.options.some((opt) => opt.value === this.input.value)) {
82227
+ this.setMenuValue(this.input.value);
82151
82228
  this.syncValuesAndStates();
82152
82229
  }
82153
82230
 
@@ -82583,21 +82660,7 @@ class AuroCombobox extends AuroElement$3 {
82583
82660
  this.optionActive = evt.detail;
82584
82661
 
82585
82662
  if (this.input) {
82586
- // Defer to after this optionActive assignment flushes through Lit:
82587
- // the template binds `.a11yActivedescendant` on the trigger input,
82588
- // which propagates to auro-input.updated() → setAttribute(
82589
- // 'aria-activedescendant', id) on the internal <input>. That
82590
- // setAttribute call clears the reflected ariaActiveDescendantElement
82591
- // property, so setting the ref first (synchronously here) gets
82592
- // clobbered. Awaiting updateComplete lets the attribute write finish
82593
- // first; the element reference then sticks and screen readers can
82594
- // cross the shadow-DOM boundary to the auro-menuoption in light DOM.
82595
- const targetOption = this.optionActive;
82596
- this.updateComplete.then(() => {
82597
- if (this.input && this.optionActive === targetOption) {
82598
- this.input.setActiveDescendant(targetOption);
82599
- }
82600
- });
82663
+ this.input.setActiveDescendant(this.optionActive);
82601
82664
  }
82602
82665
 
82603
82666
  // In fullscreen mode the menu sits inside a nested <dialog> shadow root,
@@ -82734,18 +82797,6 @@ class AuroCombobox extends AuroElement$3 {
82734
82797
  }
82735
82798
  }
82736
82799
 
82737
- // SPA preselect guard: on init render, auro-input's notifyValueChanged
82738
- // echoes an empty value through as an isProgrammatic input event before
82739
- // the framework-set combobox.value has propagated down to the input.
82740
- // Without this bail, the `this.value = this.input.value` below clobbers
82741
- // the framework value with '' and clear() wipes optionSelected. Scoped
82742
- // to the exact shape of that echo (isProgrammatic + non-empty combobox
82743
- // value + empty input.value) so it doesn't affect the swap/typed paths
82744
- // where value/input already track each other through the sync helpers.
82745
- if (event && event.isProgrammatic && this.value && !this.input.value) {
82746
- return;
82747
- }
82748
-
82749
82800
  this.value = this.input.value;
82750
82801
 
82751
82802
  // Ignore re-entrant input events caused by programmatic value sets.
@@ -83178,11 +83229,7 @@ class AuroCombobox extends AuroElement$3 {
83178
83229
  }
83179
83230
  });
83180
83231
 
83181
- // Slot change (mount/re-mount): pass `preferComboboxValue` so that a
83182
- // framework-set `this.value` wins over any stale `input.value` when
83183
- // matching against the newly-available options. Fixes the display
83184
- // for SPA preselect and Svelte `{#key}` re-mount swap patterns.
83185
- this.handleMenuOptions({ preferComboboxValue: true });
83232
+ this.handleMenuOptions();
83186
83233
 
83187
83234
  break;
83188
83235
 
@@ -89890,7 +89937,7 @@ let AuroHelpText$1 = class AuroHelpText extends i$2 {
89890
89937
  }
89891
89938
  };
89892
89939
 
89893
- var formkitVersion$1 = '202607020031';
89940
+ var formkitVersion$1 = '202607021905';
89894
89941
 
89895
89942
  class AuroElement extends i$2 {
89896
89943
  static get properties() {
@@ -91929,7 +91976,7 @@ class AuroHelpText extends i$2 {
91929
91976
  }
91930
91977
  }
91931
91978
 
91932
- var formkitVersion = '202607020031';
91979
+ var formkitVersion = '202607021905';
91933
91980
 
91934
91981
  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}`;
91935
91982