@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
@@ -12643,17 +12643,14 @@ let BaseInput$2 = class BaseInput extends AuroElement$6 {
12643
12643
  * @returns {void}
12644
12644
  */
12645
12645
  notifyValueChanged() {
12646
- // This echoes Lit's reactive value update (and handleClickClear's
12647
- // programmatic clear) — it is NOT a fresh user-input event. Mark it
12648
- // `isProgrammatic` so consumers (e.g. auro-combobox) can distinguish
12649
- // it from genuine user typing and skip clobbering their own
12650
- // programmatic state during init-time renders.
12651
- const inputEvent = new Event('input', {
12646
+ let inputEvent = null;
12647
+
12648
+ inputEvent = new Event('input', {
12652
12649
  bubbles: true,
12653
12650
  composed: true,
12654
12651
  });
12655
- inputEvent.isProgrammatic = true;
12656
12652
 
12653
+ // Dispatched event to alert outside shadow DOM context of event firing.
12657
12654
  this.dispatchEvent(inputEvent);
12658
12655
  }
12659
12656
 
@@ -13366,7 +13363,7 @@ let AuroHelpText$8 = class AuroHelpText extends i$3 {
13366
13363
  }
13367
13364
  };
13368
13365
 
13369
- var formkitVersion$8 = '202607020031';
13366
+ var formkitVersion$8 = '202607021905';
13370
13367
 
13371
13368
  // Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
13372
13369
  // See LICENSE in the project root for license information.
@@ -13652,15 +13649,20 @@ let AuroInput$2 = class AuroInput extends BaseInput$2 {
13652
13649
  * @returns {void}
13653
13650
  */
13654
13651
  checkDisplayValueSlotChange() {
13655
- // flatten:true resolves through auro-combobox's forwarding slot
13656
- // (<slot name="displayValue" slot="displayValue">) so a clone appended
13657
- // directly to auro-input's light DOM alongside the forwarder still
13658
- // counts as content. The prior nodes[0].tagName === 'SLOT' recursion
13659
- // discarded any siblings past the forwarder.
13660
- const slot = this.shadowRoot.querySelector('slot[name="displayValue"]');
13661
- const nodes = slot.assignedNodes({ flatten: true });
13652
+ let nodes = this.shadowRoot.querySelector('slot[name="displayValue"]').assignedNodes();
13662
13653
 
13663
- this.hasDisplayValueContent = nodes.length > 0;
13654
+ // Handle when DisplayValue is multi-level slot content (e.g. combobox passing displayValue to input)
13655
+ if (nodes && nodes[0] && nodes[0].tagName === 'SLOT') {
13656
+ nodes = nodes[0].assignedNodes();
13657
+ }
13658
+
13659
+ let hasContent = false;
13660
+
13661
+ if (nodes.length > 0) {
13662
+ hasContent = true;
13663
+ }
13664
+
13665
+ this.hasDisplayValueContent = hasContent;
13664
13666
  }
13665
13667
 
13666
13668
  firstUpdated() {
@@ -26330,9 +26332,20 @@ class AuroCalendarCell extends i$3 {
26330
26332
  const calendar = this.runtimeUtils.closestElement('auro-formkit-calendar', calendarMonth);
26331
26333
 
26332
26334
  if (!calendar) {
26333
- setTimeout(() => this.firstUpdated(), 0);
26335
+ // Retry on the next event-loop turn to give the ancestor chain a chance
26336
+ // to attach — but cap attempts so a permanently detached cell doesn't
26337
+ // spin forever. 10 turns is far more than any observed race needs.
26338
+ this._firstUpdatedRetries = (this._firstUpdatedRetries || 0) + 1;
26339
+ if (this._firstUpdatedRetries > 10) { // eslint-disable-line no-magic-numbers
26340
+ return;
26341
+ }
26342
+ this._firstUpdatedRetryTimer = setTimeout(() => {
26343
+ this._firstUpdatedRetryTimer = null;
26344
+ this.firstUpdated();
26345
+ }, 0);
26334
26346
  return;
26335
26347
  }
26348
+ this._firstUpdatedRetries = 0;
26336
26349
  this.calendar = calendar;
26337
26350
  this.datepicker = calendar.datepicker;
26338
26351
  this._slotContentHandler = () => {
@@ -26360,6 +26373,10 @@ class AuroCalendarCell extends i$3 {
26360
26373
  if (this.datepicker && this._slotContentHandler) {
26361
26374
  this.datepicker.removeEventListener('auroDatePicker-newSlotContent', this._slotContentHandler);
26362
26375
  }
26376
+ if (this._firstUpdatedRetryTimer) {
26377
+ clearTimeout(this._firstUpdatedRetryTimer);
26378
+ this._firstUpdatedRetryTimer = null;
26379
+ }
26363
26380
  }
26364
26381
 
26365
26382
  /**
@@ -27731,7 +27748,7 @@ let AuroBibtemplate$3 = class AuroBibtemplate extends i$3 {
27731
27748
  }
27732
27749
  };
27733
27750
 
27734
- var formkitVersion$2$1 = '202607020031';
27751
+ var formkitVersion$2$1 = '202607021905';
27735
27752
 
27736
27753
  let l$1$2 = class l{generateElementName(t,e){let o=t;return o+="-",o+=e.replace(/[.]/g,"_"),o}generateTag(o,s,a){const r=this.generateElementName(o,s),i=i$2`${s$3(r)}`;return customElements.get(r)||customElements.define(r,class extends a{}),i}};let d$1$2 = class d{registerComponent(t,e){customElements.get(t)||customElements.define(t,class extends e{});}closestElement(t,e=this,o=(e,s=e&&e.closest(t))=>e&&e!==document&&e!==window?s||o(e.getRootNode().host):null){return o(e)}handleComponentTagRename(t,e){const o=e.toLowerCase();t.tagName.toLowerCase()!==o&&t.setAttribute(o,true);}elementMatch(t,e){const o=e.toLowerCase();return t.tagName.toLowerCase()===o||t.hasAttribute(o)}getSlotText(t,e){const o=t.shadowRoot?.querySelector(`slot[name="${e}"]`),s=(o?.assignedNodes({flatten:true})||[]).map(t=>t.textContent?.trim()).join(" ").trim();return s||null}};let h$1$2 = class h{registerComponent(t,e){customElements.get(t)||customElements.define(t,class extends e{});}closestElement(t,e=this,o=(e,s=e&&e.closest(t))=>e&&e!==document&&e!==window?s||o(e.getRootNode().host):null){return o(e)}handleComponentTagRename(t,e){const o=e.toLowerCase();t.tagName.toLowerCase()!==o&&t.setAttribute(o,true);}elementMatch(t,e){const o=e.toLowerCase();return t.tagName.toLowerCase()===o||t.hasAttribute(o)}};var c$1$3=i$6`:host{color:var(--ds-auro-loader-color)}:host>span{background-color:var(--ds-auro-loader-background-color);border-color:var(--ds-auro-loader-border-color)}:host([onlight]),:host([appearance=brand]){--ds-auro-loader-color: var(--ds-basic-color-brand-primary, #01426a)}:host([ondark]),:host([appearance=inverse]){--ds-auro-loader-color: var(--ds-basic-color-texticon-inverse, #ffffff)}:host([orbit])>span{--ds-auro-loader-background-color: transparent}:host([orbit])>span:nth-child(1){--ds-auro-loader-border-color: currentcolor;opacity:.25}:host([orbit])>span:nth-child(2){--ds-auro-loader-border-color: currentcolor;border-right-color:transparent;border-bottom-color:transparent;border-left-color:transparent}
27737
27754
  `,u$4$2=i$6`.body-default{font-size:var(--wcss-body-default-font-size, 1rem);line-height:var(--wcss-body-default-line-height, 1.5rem)}.body-default,.body-lg{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-weight, 450);letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-lg{font-size:var(--wcss-body-lg-font-size, 1.125rem);line-height:var(--wcss-body-lg-line-height, 1.625rem)}.body-sm{font-size:var(--wcss-body-sm-font-size, .875rem);line-height:var(--wcss-body-sm-line-height, 1.25rem)}.body-sm,.body-xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-weight, 450);letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-xs{font-size:var(--wcss-body-xs-font-size, .75rem);line-height:var(--wcss-body-xs-line-height, 1rem)}.body-2xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-size:var(--wcss-body-2xs-font-size, .625rem);font-weight:var(--wcss-body-weight, 450);letter-spacing:var(--wcss-body-letter-spacing, 0);line-height:var(--wcss-body-2xs-line-height, .875rem)}.display-2xl{font-family:var(--wcss-display-2xl-family, "AS Circular"),var(--wcss-display-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-2xl-font-size, clamp(3.5rem, 6vw, 5.375rem));font-weight:var(--wcss-display-2xl-weight, 300);letter-spacing:var(--wcss-display-2xl-letter-spacing, 0);line-height:var(--wcss-display-2xl-line-height, 1.3)}.display-xl{font-family:var(--wcss-display-xl-family, "AS Circular"),var(--wcss-display-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-xl-font-size, clamp(3rem, 5.3333333333vw, 4.5rem));font-weight:var(--wcss-display-xl-weight, 300);letter-spacing:var(--wcss-display-xl-letter-spacing, 0);line-height:var(--wcss-display-xl-line-height, 1.3)}.display-lg{font-family:var(--wcss-display-lg-family, "AS Circular"),var(--wcss-display-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-lg-font-size, clamp(2.75rem, 4.6666666667vw, 4rem));font-weight:var(--wcss-display-lg-weight, 300);letter-spacing:var(--wcss-display-lg-letter-spacing, 0);line-height:var(--wcss-display-lg-line-height, 1.3)}.display-md{font-family:var(--wcss-display-md-family, "AS Circular"),var(--wcss-display-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-md-font-size, clamp(2.5rem, 4vw, 3.5rem));font-weight:var(--wcss-display-md-weight, 300);letter-spacing:var(--wcss-display-md-letter-spacing, 0);line-height:var(--wcss-display-md-line-height, 1.3)}.display-sm{font-family:var(--wcss-display-sm-family, "AS Circular"),var(--wcss-display-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-sm-font-size, clamp(2rem, 3.6666666667vw, 3rem));font-weight:var(--wcss-display-sm-weight, 300);letter-spacing:var(--wcss-display-sm-letter-spacing, 0);line-height:var(--wcss-display-sm-line-height, 1.3)}.display-xs{font-family:var(--wcss-display-xs-family, "AS Circular"),var(--wcss-display-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-xs-font-size, clamp(1.75rem, 3vw, 2.375rem));font-weight:var(--wcss-display-xs-weight, 300);letter-spacing:var(--wcss-display-xs-letter-spacing, 0);line-height:var(--wcss-display-xs-line-height, 1.3)}.heading-xl{font-family:var(--wcss-heading-xl-family, "AS Circular"),var(--wcss-heading-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-xl-font-size, clamp(2rem, 3vw, 2.5rem));font-weight:var(--wcss-heading-xl-weight, 300);letter-spacing:var(--wcss-heading-xl-letter-spacing, 0);line-height:var(--wcss-heading-xl-line-height, 1.3)}.heading-lg{font-family:var(--wcss-heading-lg-family, "AS Circular"),var(--wcss-heading-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-lg-font-size, clamp(1.75rem, 2.6666666667vw, 2.25rem));font-weight:var(--wcss-heading-lg-weight, 300);letter-spacing:var(--wcss-heading-lg-letter-spacing, 0);line-height:var(--wcss-heading-lg-line-height, 1.3)}.heading-md{font-family:var(--wcss-heading-md-family, "AS Circular"),var(--wcss-heading-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-md-font-size, clamp(1.625rem, 2.3333333333vw, 1.75rem));font-weight:var(--wcss-heading-md-weight, 300);letter-spacing:var(--wcss-heading-md-letter-spacing, 0);line-height:var(--wcss-heading-md-line-height, 1.3)}.heading-sm{font-family:var(--wcss-heading-sm-family, "AS Circular"),var(--wcss-heading-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-sm-font-size, clamp(1.375rem, 2vw, 1.5rem));font-weight:var(--wcss-heading-sm-weight, 300);letter-spacing:var(--wcss-heading-sm-letter-spacing, 0);line-height:var(--wcss-heading-sm-line-height, 1.3)}.heading-xs{font-family:var(--wcss-heading-xs-family, "AS Circular"),var(--wcss-heading-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-xs-font-size, clamp(1.25rem, 1.6666666667vw, 1.25rem));font-weight:var(--wcss-heading-xs-weight, 450);letter-spacing:var(--wcss-heading-xs-letter-spacing, 0);line-height:var(--wcss-heading-xs-line-height, 1.3)}.heading-2xs{font-family:var(--wcss-heading-2xs-family, "AS Circular"),var(--wcss-heading-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-2xs-font-size, clamp(1.125rem, 1.5vw, 1.125rem));font-weight:var(--wcss-heading-2xs-weight, 450);letter-spacing:var(--wcss-heading-2xs-letter-spacing, 0);line-height:var(--wcss-heading-2xs-line-height, 1.3)}.accent-2xl{font-family:var(--wcss-accent-2xl-family, "Good OT"),var(--wcss-accent-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-2xl-font-size, clamp(2rem, 3.1666666667vw, 2.375rem));font-weight:var(--wcss-accent-2xl-weight, 450);letter-spacing:var(--wcss-accent-2xl-letter-spacing, .05em);line-height:var(--wcss-accent-2xl-line-height, 1)}.accent-2xl,.accent-xl{text-transform:uppercase}.accent-xl{font-family:var(--wcss-accent-xl-family, "Good OT"),var(--wcss-accent-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-xl-font-size, clamp(1.625rem, 2.3333333333vw, 2rem));font-weight:var(--wcss-accent-xl-weight, 450);letter-spacing:var(--wcss-accent-xl-letter-spacing, .05em);line-height:var(--wcss-accent-xl-line-height, 1.3)}.accent-lg{font-family:var(--wcss-accent-lg-family, "Good OT"),var(--wcss-accent-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-lg-font-size, clamp(1.5rem, 2.1666666667vw, 1.75rem));font-weight:var(--wcss-accent-lg-weight, 450);letter-spacing:var(--wcss-accent-lg-letter-spacing, .05em);line-height:var(--wcss-accent-lg-line-height, 1.3)}.accent-lg,.accent-md{text-transform:uppercase}.accent-md{font-family:var(--wcss-accent-md-family, "Good OT"),var(--wcss-accent-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-md-font-size, clamp(1.375rem, 1.8333333333vw, 1.5rem));font-weight:var(--wcss-accent-md-weight, 500);letter-spacing:var(--wcss-accent-md-letter-spacing, .05em);line-height:var(--wcss-accent-md-line-height, 1.3)}.accent-sm{font-family:var(--wcss-accent-sm-family, "Good OT"),var(--wcss-accent-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-sm-font-size, clamp(1.125rem, 1.5vw, 1.25rem));font-weight:var(--wcss-accent-sm-weight, 500);letter-spacing:var(--wcss-accent-sm-letter-spacing, .05em);line-height:var(--wcss-accent-sm-line-height, 1.3)}.accent-sm,.accent-xs{text-transform:uppercase}.accent-xs{font-family:var(--wcss-accent-xs-family, "Good OT"),var(--wcss-accent-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-xs-font-size, clamp(1rem, 1.3333333333vw, 1rem));font-weight:var(--wcss-accent-xs-weight, 500);letter-spacing:var(--wcss-accent-xs-letter-spacing, .1em);line-height:var(--wcss-accent-xs-line-height, 1.3)}.accent-2xs{font-family:var(--wcss-accent-2xs-family, "Good OT"),var(--wcss-accent-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-2xs-font-size, clamp(.875rem, 1.1666666667vw, .875rem));font-weight:var(--wcss-accent-2xs-weight, 450);letter-spacing:var(--wcss-accent-2xs-letter-spacing, .1em);line-height:var(--wcss-accent-2xs-line-height, 1.3);text-transform:uppercase}:focus:not(:focus-visible){outline:3px solid transparent}:host,:host>span{position:relative}:host{width:2rem;height:2rem;display:inline-block;font-size:0}:host>span{position:absolute;display:inline-block;float:none;top:0;left:0;width:2rem;height:2rem;border-radius:100%;border-style:solid;border-width:0;box-sizing:border-box}:host([xs]),:host([xs])>span{width:1.2rem;height:1.2rem}:host([sm]),:host([sm])>span{width:3rem;height:3rem}:host([md]),:host([md])>span{width:5rem;height:5rem}:host([lg]),:host([lg])>span{width:8rem;height:8rem}:host{--margin: .375rem;--margin-xs: .2rem;--margin-sm: .5rem;--margin-md: .75rem;--margin-lg: 1rem}:host([pulse]),:host([pulse])>span{position:relative}:host([pulse]){width:calc(3rem + var(--margin) * 6);height:calc(1rem + var(--margin) * 2)}:host([pulse])>span{width:1rem;height:1rem;margin:var(--margin);animation:pulse 1.5s ease infinite}:host([pulse][xs]){width:calc(1.95rem + var(--margin-xs) * 6);height:calc(.65rem + var(--margin-xs) * 2)}:host([pulse][xs])>span{margin:var(--margin-xs);width:.65rem;height:.65rem}:host([pulse][sm]){width:calc(6rem + var(--margin-sm) * 6);height:calc(2rem + var(--margin-sm) * 2)}:host([pulse][sm])>span{margin:var(--margin-sm);width:2rem;height:2rem}:host([pulse][md]){width:calc(9rem + var(--margin-md) * 6);height:calc(3rem + var(--margin-md) * 2)}:host([pulse][md])>span{margin:var(--margin-md);width:3rem;height:3rem}:host([pulse][lg]){width:calc(15rem + var(--margin-lg) * 6);height:calc(5rem + var(--margin-lg) * 2)}:host([pulse][lg])>span{margin:var(--margin-lg);width:5rem;height:5rem}:host([pulse])>span:nth-child(1){animation-delay:-.4s}:host([pulse])>span:nth-child(2){animation-delay:-.2s}:host([pulse])>span:nth-child(3){animation-delay:0ms}@keyframes pulse{0%,to{opacity:.1;transform:scale(.9)}50%{opacity:1;transform:scale(1.1)}}:host([orbit]),:host([orbit])>span{opacity:1}:host([orbit])>span{border-width:5px}:host([orbit])>span:nth-child(2){animation:orbit 2s linear infinite}:host([orbit][sm])>span{border-width:8px}:host([orbit][md])>span{border-width:13px}:host([orbit][lg])>span{border-width:21px}@keyframes orbit{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host([ringworm])>svg{animation:rotate 2s linear infinite;height:100%;width:100%;stroke:currentcolor;stroke-width:8}:host([ringworm]) .path{stroke-dashoffset:0;animation:ringworm 1.5s ease-in-out infinite;stroke-linecap:round}@keyframes rotate{to{transform:rotate(360deg)}}@keyframes ringworm{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:89,200;stroke-dashoffset:-35px}to{stroke-dasharray:89,200;stroke-dashoffset:-124px}}:host([laser]){position:static;width:100%;display:block;height:0;overflow:hidden;font-size:unset}:host([laser])>span{position:fixed;width:100%;height:.25rem;border-radius:0;z-index:100}:host([laser])>span:nth-child(1){border-color:currentcolor;opacity:.25}:host([laser])>span:nth-child(2){border-color:currentcolor;animation:laser 2s linear infinite;opacity:1;width:50%}:host([laser][sm])>span:nth-child(2){width:20%}:host([laser][md])>span:nth-child(2){width:30%}:host([laser][lg])>span:nth-child(2){width:50%;animation-duration:1.5s}:host([laser][xl])>span:nth-child(2){width:80%;animation-duration:1.5s}@keyframes laser{0%{left:-100%}to{left:110%}}:host>.no-animation{display:none}@media (prefers-reduced-motion: reduce){:host{display:flex;align-items:center;justify-content:center}:host>span{opacity:1}:host>.loader{display:none}:host>svg{display:none}:host>.no-animation{display:block}}
@@ -28448,8 +28465,19 @@ class AuroCalendar extends RangeDatepicker {
28448
28465
  /**
28449
28466
  * Returns a memoized Set of blackout timestamps (seconds) drawn from both
28450
28467
  * the legacy `disabledDays` array and the datepicker's ISO `blackoutDates`.
28451
- * The cache invalidates when either source array's reference changes, which
28452
- * matches Lit's own reactive identity semantics for array properties.
28468
+ *
28469
+ * The cache invalidates on **reference identity** only when the
28470
+ * consumer reassigns the array (`el.blackoutDates = [...]`), matching
28471
+ * Lit's own reactivity semantics for array properties. In-place mutations
28472
+ * on the existing array (`push`, `splice`, index assignment) will NOT
28473
+ * invalidate the cache and the new entries will be silently ignored.
28474
+ * Consumers must reassign to update — see the JSDoc on
28475
+ * `auro-datepicker.blackoutDates` for the recommended pattern.
28476
+ *
28477
+ * A shallow-equality tier was considered but rejected: it would run
28478
+ * O(N) work on every cell render (this method is called per-cell via
28479
+ * `isBlackout()`) and still wouldn't catch same-length value swaps,
28480
+ * offering a false sense of safety.
28453
28481
  * @private
28454
28482
  * @returns {Set<Number>}
28455
28483
  */
@@ -28630,7 +28658,21 @@ class AuroCalendar extends RangeDatepicker {
28630
28658
  // rendered month(s) first so a single-month calendar does not pick a date
28631
28659
  // that has no DOM cell. Determine the visible range based on centralDate and
28632
28660
  // the number of rendered months.
28633
- const renderedMonths = Math.max(this.numCalendars, 1);
28661
+ //
28662
+ // numCalendars is assigned during renderAllCalendars(), which runs after
28663
+ // updated() — so the visible-change handler's eager computeActiveDate()
28664
+ // call arrives with numCalendars still undefined. Math.max(undefined, 1)
28665
+ // is NaN, which would silently skip the visible-month scan below. Fall
28666
+ // back to maximumRenderableMonths' desktop default (1 for non-range,
28667
+ // 2 for range) so the scan window is correctly sized on first open.
28668
+ let renderedMonths = null;
28669
+
28670
+ if (Number.isFinite(this.numCalendars) && this.numCalendars > 0) {
28671
+ renderedMonths = this.numCalendars;
28672
+ } else {
28673
+ renderedMonths = this.noRange ? 1 : 2;
28674
+ }
28675
+
28634
28676
  const visibleAnchor = this.centralDateObject ?? new Date(now * 1000);
28635
28677
  const visMonthStart = new Date(visibleAnchor.getFullYear(), visibleAnchor.getMonth(), 1);
28636
28678
  visMonthStart.setHours(0, 0, 0, 0);
@@ -28900,6 +28942,8 @@ class AuroCalendar extends RangeDatepicker {
28900
28942
  let targetIndex = -1;
28901
28943
  if (direction === 'next') {
28902
28944
  targetIndex = currentIndex + 1;
28945
+ } else if (direction === 'prev') {
28946
+ targetIndex = currentIndex - 1;
28903
28947
  }
28904
28948
 
28905
28949
  if (targetIndex >= 0 && targetIndex < allCells.length) {
@@ -29504,6 +29548,10 @@ class AuroCalendar extends RangeDatepicker {
29504
29548
  * originally tried aria-live="polite" here, but VoiceOver treats
29505
29549
  * polite as "wait until idle" — which never happens during active
29506
29550
  * keyboard navigation — so the announcements were silently dropped.
29551
+ *
29552
+ * This is a documented deviation from WCAG 2.1 SC 4.1.3, which
29553
+ * prefers `polite` for status messages. See the "Documented
29554
+ * Deviation" section in components/datepicker/docs/pages/accessibility.md.
29507
29555
  * @private
29508
29556
  * @param {String} dateStr - The localized date string to announce.
29509
29557
  * @returns {void}
@@ -33549,7 +33597,7 @@ let AuroHelpText$2$1 = class AuroHelpText extends i$3 {
33549
33597
  }
33550
33598
  };
33551
33599
 
33552
- var formkitVersion$1$3 = '202607020031';
33600
+ var formkitVersion$1$3 = '202607021905';
33553
33601
 
33554
33602
  let AuroElement$2$2 = class AuroElement extends i$3 {
33555
33603
  static get properties() {
@@ -46431,17 +46479,14 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
46431
46479
  * @returns {void}
46432
46480
  */
46433
46481
  notifyValueChanged() {
46434
- // This echoes Lit's reactive value update (and handleClickClear's
46435
- // programmatic clear) — it is NOT a fresh user-input event. Mark it
46436
- // `isProgrammatic` so consumers (e.g. auro-combobox) can distinguish
46437
- // it from genuine user typing and skip clobbering their own
46438
- // programmatic state during init-time renders.
46439
- const inputEvent = new Event('input', {
46482
+ let inputEvent = null;
46483
+
46484
+ inputEvent = new Event('input', {
46440
46485
  bubbles: true,
46441
46486
  composed: true,
46442
46487
  });
46443
- inputEvent.isProgrammatic = true;
46444
46488
 
46489
+ // Dispatched event to alert outside shadow DOM context of event firing.
46445
46490
  this.dispatchEvent(inputEvent);
46446
46491
  }
46447
46492
 
@@ -47154,7 +47199,7 @@ let AuroHelpText$1$3 = class AuroHelpText extends i$3 {
47154
47199
  }
47155
47200
  };
47156
47201
 
47157
- var formkitVersion$7 = '202607020031';
47202
+ var formkitVersion$7 = '202607021905';
47158
47203
 
47159
47204
  // Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
47160
47205
  // See LICENSE in the project root for license information.
@@ -47440,15 +47485,20 @@ let AuroInput$1 = class AuroInput extends BaseInput$1 {
47440
47485
  * @returns {void}
47441
47486
  */
47442
47487
  checkDisplayValueSlotChange() {
47443
- // flatten:true resolves through auro-combobox's forwarding slot
47444
- // (<slot name="displayValue" slot="displayValue">) so a clone appended
47445
- // directly to auro-input's light DOM alongside the forwarder still
47446
- // counts as content. The prior nodes[0].tagName === 'SLOT' recursion
47447
- // discarded any siblings past the forwarder.
47448
- const slot = this.shadowRoot.querySelector('slot[name="displayValue"]');
47449
- const nodes = slot.assignedNodes({ flatten: true });
47488
+ let nodes = this.shadowRoot.querySelector('slot[name="displayValue"]').assignedNodes();
47489
+
47490
+ // Handle when DisplayValue is multi-level slot content (e.g. combobox passing displayValue to input)
47491
+ if (nodes && nodes[0] && nodes[0].tagName === 'SLOT') {
47492
+ nodes = nodes[0].assignedNodes();
47493
+ }
47450
47494
 
47451
- this.hasDisplayValueContent = nodes.length > 0;
47495
+ let hasContent = false;
47496
+
47497
+ if (nodes.length > 0) {
47498
+ hasContent = true;
47499
+ }
47500
+
47501
+ this.hasDisplayValueContent = hasContent;
47452
47502
  }
47453
47503
 
47454
47504
  firstUpdated() {
@@ -48526,6 +48576,15 @@ const datepickerKeyboardStrategy = {
48526
48576
  evt.stopPropagation();
48527
48577
  evt.preventDefault();
48528
48578
 
48579
+ // Signal to the visibility-change handler in auro-datepicker.js that
48580
+ // focus should be restored to the trigger regardless of hasFocus.
48581
+ // hidePopover() (desktop non-modal path) does not auto-restore focus,
48582
+ // and hiding the grid's popover ancestor drops focus to <body>. That
48583
+ // synchronously fires focusout on the datepicker host — clearing
48584
+ // hasFocus — before updated() runs, which would otherwise skip the
48585
+ // input refocus. Native <dialog>.close() (modal path) restores focus
48586
+ // itself, but the flag is harmless there.
48587
+ component._restoreFocusOnClose = true;
48529
48588
  component.hideBib();
48530
48589
  },
48531
48590
 
@@ -48799,6 +48858,14 @@ class AuroDatePicker extends AuroElement$5 {
48799
48858
 
48800
48859
  /**
48801
48860
  * Array of dates that cannot be selected. Dates should be in ISO format (YYYY-MM-DD).
48861
+ *
48862
+ * **Immutable update required.** The datepicker treats this array as
48863
+ * immutable and memoizes a lookup Set keyed on the array's reference
48864
+ * identity — matching Lit's own reactivity semantics for array
48865
+ * properties. In-place mutations (`blackoutDates.push(...)`,
48866
+ * `blackoutDates[i] = ...`, `blackoutDates.splice(...)`) will not
48867
+ * invalidate the cache and the new entries will be silently ignored.
48868
+ * To update, reassign the property: `el.blackoutDates = [...el.blackoutDates, '2024-12-25']`.
48802
48869
  */
48803
48870
  blackoutDates: {
48804
48871
  type: Array,
@@ -49684,12 +49751,13 @@ class AuroDatePicker extends AuroElement$5 {
49684
49751
  this.calendar.activeCellDate = null;
49685
49752
 
49686
49753
  // Show the month containing the selected date (or today) instead of
49687
- // whichever month the user last navigated to.
49754
+ // whichever month the user last navigated to. Route through
49755
+ // updateCentralDate so centralDate stays first-of-month.
49688
49756
  // Respect consumer-provided centralDate/calendarStartDate if no value is set.
49689
49757
  if (this.valueObject) {
49690
- this.centralDate = this.value;
49758
+ this.calendarRenderUtil.updateCentralDate(this, this.value);
49691
49759
  } else if (!this.centralDate && !this.calendarStartDate && !this.minDate) {
49692
- this.centralDate = dateFormatter$1.toISOFormatString(new Date());
49760
+ this.calendarRenderUtil.updateCentralDate(this, new Date());
49693
49761
  }
49694
49762
  }
49695
49763
 
@@ -49747,8 +49815,15 @@ class AuroDatePicker extends AuroElement$5 {
49747
49815
  // Always clear the inert flag. Only restore focus to the input when the datepicker
49748
49816
  // still has focus (e.g. Escape, date selected) — not when the user tabbed away,
49749
49817
  // which would pull them back and require extra Tab presses to escape.
49818
+ //
49819
+ // `_restoreFocusOnClose` is set by the Escape handler in
49820
+ // datepickerKeyboardStrategy.js to force restore even when hasFocus
49821
+ // has already been cleared — hidePopover() (desktop non-modal path)
49822
+ // can drop focus to <body> before this update fires.
49750
49823
  this.dropdown.trigger.inert = false;
49751
- if (this.hasFocus) {
49824
+ const shouldRestoreFocus = this.hasFocus || this._restoreFocusOnClose;
49825
+ this._restoreFocusOnClose = false;
49826
+ if (shouldRestoreFocus) {
49752
49827
  requestAnimationFrame(() => {
49753
49828
  if (!this.dropdown.isPopoverVisible) {
49754
49829
  this.inputList[0].focus();
@@ -50194,6 +50269,18 @@ class AuroDatePicker extends AuroElement$5 {
50194
50269
  this.calendar.requestUpdate();
50195
50270
  this.dispatchEvent(new CustomEvent('auroDatePicker-newSlotContent'));
50196
50271
  }
50272
+
50273
+ // Range invariant: if a value change (from click or programmatic) has
50274
+ // moved start past end, clear valueEnd here so both properties land in
50275
+ // the SAME reactive cycle. Doing it in updated() would schedule a
50276
+ // second cycle after cellClickActive/wasCellClick has already been
50277
+ // consumed by the value branch, leaving the valueEnd branch to run
50278
+ // with a stale handshake and racing with any intervening programmatic
50279
+ // value assignments.
50280
+ if ((changedProperties.has('value') || changedProperties.has('valueEnd')) &&
50281
+ this.valueObject && this.valueEndObject && this.valueObject > this.valueEndObject) {
50282
+ this.valueEnd = undefined;
50283
+ }
50197
50284
  }
50198
50285
 
50199
50286
  updated(changedProperties) {
@@ -50261,8 +50348,12 @@ class AuroDatePicker extends AuroElement$5 {
50261
50348
 
50262
50349
  if (this.value && this.value.length === this.inputList[0].lengthForType && !(this.wasCellClick && this.range)) {
50263
50350
  // Skip centralDate update when user clicked a cell in range mode
50264
- // to prevent the displayed months from shifting
50265
- this.centralDate = this.value;
50351
+ // to prevent the displayed months from shifting. Route through
50352
+ // updateCentralDate so centralDate stays first-of-month — direct
50353
+ // assignment of the raw value briefly holds a mid-month string
50354
+ // and violates the invariant that observers (e.g. calendar sync)
50355
+ // rely on.
50356
+ this.calendarRenderUtil.updateCentralDate(this, this.value);
50266
50357
  }
50267
50358
 
50268
50359
  this.setHasValue();
@@ -50320,8 +50411,10 @@ class AuroDatePicker extends AuroElement$5 {
50320
50411
 
50321
50412
  if (this.valueEnd && this.valueEnd.length === this.inputList[1].lengthForType && !this.wasCellClick) {
50322
50413
  // Skip centralDate update when user clicked a cell in range mode
50323
- // to prevent the displayed months from shifting
50324
- this.centralDate = this.valueEnd;
50414
+ // to prevent the displayed months from shifting. Route through
50415
+ // updateCentralDate to preserve the first-of-month invariant
50416
+ // (see matching comment in the value branch above).
50417
+ this.calendarRenderUtil.updateCentralDate(this, this.valueEnd);
50325
50418
  }
50326
50419
 
50327
50420
  this.validate();
@@ -50345,10 +50438,6 @@ class AuroDatePicker extends AuroElement$5 {
50345
50438
  this.validation.validate(lastInput, true);
50346
50439
  }
50347
50440
 
50348
- if (this.valueObject && this.valueEndObject && this.valueObject > this.valueEndObject) {
50349
- this.valueEnd = undefined;
50350
- }
50351
-
50352
50441
  // This resets the datepicker when the minDate is set to a new value that is
50353
50442
  // a later date than the current value date
50354
50443
  if (changedProperties.has('minDate') && this.minDate) {
@@ -52031,7 +52120,7 @@ let AuroHelpText$1$2 = class AuroHelpText extends i$3 {
52031
52120
  }
52032
52121
  };
52033
52122
 
52034
- var formkitVersion$1$2 = '202607020031';
52123
+ var formkitVersion$1$2 = '202607021905';
52035
52124
 
52036
52125
  // Copyright (c) 2026 Alaska Airlines. All rights reserved. Licensed under the Apache-2.0 license
52037
52126
  // See LICENSE in the project root for license information.
@@ -56359,7 +56448,7 @@ let AuroHelpText$6 = class AuroHelpText extends i$3 {
56359
56448
  }
56360
56449
  };
56361
56450
 
56362
- var formkitVersion$6 = '202607020031';
56451
+ var formkitVersion$6 = '202607021905';
56363
56452
 
56364
56453
  let AuroElement$1$2 = class AuroElement extends i$3 {
56365
56454
  static get properties() {
@@ -60339,7 +60428,7 @@ let AuroHelpText$5 = class AuroHelpText extends i$3 {
60339
60428
  }
60340
60429
  };
60341
60430
 
60342
- var formkitVersion$5 = '202607020031';
60431
+ var formkitVersion$5 = '202607021905';
60343
60432
 
60344
60433
  // Copyright (c) Alaska Air. All right reserved. Licensed under the Apache-2.0 license
60345
60434
  // See LICENSE in the project root for license information.
@@ -62104,7 +62193,7 @@ let AuroHelpText$4 = class AuroHelpText extends i$3 {
62104
62193
  }
62105
62194
  };
62106
62195
 
62107
- var formkitVersion$4 = '202607020031';
62196
+ var formkitVersion$4 = '202607021905';
62108
62197
 
62109
62198
  // Copyright (c) 2026 Alaska Airlines. All rights reserved. Licensed under the Apache-2.0 license
62110
62199
  // See LICENSE in the project root for license information.
@@ -67325,7 +67414,7 @@ let AuroHelpText$2 = class AuroHelpText extends i$3 {
67325
67414
  }
67326
67415
  };
67327
67416
 
67328
- var formkitVersion$2 = '202607020031';
67417
+ var formkitVersion$2 = '202607021905';
67329
67418
 
67330
67419
  let AuroElement$2$1 = class AuroElement extends i$3 {
67331
67420
  static get properties() {
@@ -80207,17 +80296,14 @@ class BaseInput extends AuroElement$1$1 {
80207
80296
  * @returns {void}
80208
80297
  */
80209
80298
  notifyValueChanged() {
80210
- // This echoes Lit's reactive value update (and handleClickClear's
80211
- // programmatic clear) — it is NOT a fresh user-input event. Mark it
80212
- // `isProgrammatic` so consumers (e.g. auro-combobox) can distinguish
80213
- // it from genuine user typing and skip clobbering their own
80214
- // programmatic state during init-time renders.
80215
- const inputEvent = new Event('input', {
80299
+ let inputEvent = null;
80300
+
80301
+ inputEvent = new Event('input', {
80216
80302
  bubbles: true,
80217
80303
  composed: true,
80218
80304
  });
80219
- inputEvent.isProgrammatic = true;
80220
80305
 
80306
+ // Dispatched event to alert outside shadow DOM context of event firing.
80221
80307
  this.dispatchEvent(inputEvent);
80222
80308
  }
80223
80309
 
@@ -80930,7 +81016,7 @@ let AuroHelpText$1$1 = class AuroHelpText extends i$3 {
80930
81016
  }
80931
81017
  };
80932
81018
 
80933
- var formkitVersion$1$1 = '202607020031';
81019
+ var formkitVersion$1$1 = '202607021905';
80934
81020
 
80935
81021
  // Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
80936
81022
  // See LICENSE in the project root for license information.
@@ -81216,15 +81302,20 @@ class AuroInput extends BaseInput {
81216
81302
  * @returns {void}
81217
81303
  */
81218
81304
  checkDisplayValueSlotChange() {
81219
- // flatten:true resolves through auro-combobox's forwarding slot
81220
- // (<slot name="displayValue" slot="displayValue">) so a clone appended
81221
- // directly to auro-input's light DOM alongside the forwarder still
81222
- // counts as content. The prior nodes[0].tagName === 'SLOT' recursion
81223
- // discarded any siblings past the forwarder.
81224
- const slot = this.shadowRoot.querySelector('slot[name="displayValue"]');
81225
- const nodes = slot.assignedNodes({ flatten: true });
81305
+ let nodes = this.shadowRoot.querySelector('slot[name="displayValue"]').assignedNodes();
81226
81306
 
81227
- this.hasDisplayValueContent = nodes.length > 0;
81307
+ // Handle when DisplayValue is multi-level slot content (e.g. combobox passing displayValue to input)
81308
+ if (nodes && nodes[0] && nodes[0].tagName === 'SLOT') {
81309
+ nodes = nodes[0].assignedNodes();
81310
+ }
81311
+
81312
+ let hasContent = false;
81313
+
81314
+ if (nodes.length > 0) {
81315
+ hasContent = true;
81316
+ }
81317
+
81318
+ this.hasDisplayValueContent = hasContent;
81228
81319
  }
81229
81320
 
81230
81321
  firstUpdated() {
@@ -82051,7 +82142,7 @@ let AuroBibtemplate$1 = class AuroBibtemplate extends i$3 {
82051
82142
  }
82052
82143
  };
82053
82144
 
82054
- var formkitVersion$3 = '202607020031';
82145
+ var formkitVersion$3 = '202607021905';
82055
82146
 
82056
82147
  var styleCss$1$3 = i$6`.util_displayInline{display:inline}.util_displayInlineBlock{display:inline-block}.util_displayBlock{display:block}.util_displayFlex{display:flex}.util_displayHidden{display:none}.util_displayHiddenVisually{position:absolute;overflow:hidden;clip:rect(1px, 1px, 1px, 1px);width:1px;height:1px;padding:0;border:0}:host{display:block;text-align:left}:host [auro-dropdown]{--ds-auro-dropdown-trigger-background-color: transparent}:host #inputInBib::part(wrapper){box-shadow:none}:host #inputInBib::part(accent-left){display:none}:host([layout*=classic]) [auro-input]{width:100%}:host([layout*=classic]) [auro-input]::part(helpText){display:none}:host([layout*=classic]) #slotHolder{display:none}`;
82057
82148
 
@@ -83150,11 +83241,9 @@ class AuroCombobox extends AuroElement$3 {
83150
83241
  /**
83151
83242
  * Processes hidden state of all menu options and determines if there are any available options not hidden.
83152
83243
  * @private
83153
- * @param {object} [root0={}] - Optional flag bag.
83154
- * @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).
83155
83244
  * @returns {void}
83156
83245
  */
83157
- handleMenuOptions({ preferComboboxValue = false } = {}) {
83246
+ handleMenuOptions() {
83158
83247
  this.generateOptionsArray();
83159
83248
  this.availableOptions = [];
83160
83249
  // Single source of truth for the menu's filter/highlight token per call.
@@ -83175,20 +83264,8 @@ class AuroCombobox extends AuroElement$3 {
83175
83264
  option.setAttribute('aria-posinset', index + 1);
83176
83265
  });
83177
83266
 
83178
- // On mount/re-mount (via handleSlotChange), prefer the framework-set
83179
- // `this.value` when it matches a menu option. Covers SPA preselect and
83180
- // consumer swap patterns (e.g. Svelte `{#key}` re-mount) where
83181
- // `this.value` is authoritative but `this.input.value` may be empty or
83182
- // carry stale typed text from another field. Do NOT enable this in the
83183
- // event-driven path — user clears would be undone by re-syncing to the
83184
- // previous combobox.value.
83185
- const valueMatches = preferComboboxValue &&
83186
- this.value &&
83187
- this.menu.options &&
83188
- this.menu.options.some((opt) => opt.value === this.value);
83189
- const matchValue = valueMatches ? this.value : this.input.value;
83190
- if (matchValue && this.menu.options && this.menu.options.some((opt) => opt.value === matchValue)) {
83191
- this.setMenuValue(matchValue);
83267
+ if (this.input.value && this.menu.options && this.menu.options.some((opt) => opt.value === this.input.value)) {
83268
+ this.setMenuValue(this.input.value);
83192
83269
  this.syncValuesAndStates();
83193
83270
  }
83194
83271
 
@@ -83624,21 +83701,7 @@ class AuroCombobox extends AuroElement$3 {
83624
83701
  this.optionActive = evt.detail;
83625
83702
 
83626
83703
  if (this.input) {
83627
- // Defer to after this optionActive assignment flushes through Lit:
83628
- // the template binds `.a11yActivedescendant` on the trigger input,
83629
- // which propagates to auro-input.updated() → setAttribute(
83630
- // 'aria-activedescendant', id) on the internal <input>. That
83631
- // setAttribute call clears the reflected ariaActiveDescendantElement
83632
- // property, so setting the ref first (synchronously here) gets
83633
- // clobbered. Awaiting updateComplete lets the attribute write finish
83634
- // first; the element reference then sticks and screen readers can
83635
- // cross the shadow-DOM boundary to the auro-menuoption in light DOM.
83636
- const targetOption = this.optionActive;
83637
- this.updateComplete.then(() => {
83638
- if (this.input && this.optionActive === targetOption) {
83639
- this.input.setActiveDescendant(targetOption);
83640
- }
83641
- });
83704
+ this.input.setActiveDescendant(this.optionActive);
83642
83705
  }
83643
83706
 
83644
83707
  // In fullscreen mode the menu sits inside a nested <dialog> shadow root,
@@ -83775,18 +83838,6 @@ class AuroCombobox extends AuroElement$3 {
83775
83838
  }
83776
83839
  }
83777
83840
 
83778
- // SPA preselect guard: on init render, auro-input's notifyValueChanged
83779
- // echoes an empty value through as an isProgrammatic input event before
83780
- // the framework-set combobox.value has propagated down to the input.
83781
- // Without this bail, the `this.value = this.input.value` below clobbers
83782
- // the framework value with '' and clear() wipes optionSelected. Scoped
83783
- // to the exact shape of that echo (isProgrammatic + non-empty combobox
83784
- // value + empty input.value) so it doesn't affect the swap/typed paths
83785
- // where value/input already track each other through the sync helpers.
83786
- if (event && event.isProgrammatic && this.value && !this.input.value) {
83787
- return;
83788
- }
83789
-
83790
83841
  this.value = this.input.value;
83791
83842
 
83792
83843
  // Ignore re-entrant input events caused by programmatic value sets.
@@ -84219,11 +84270,7 @@ class AuroCombobox extends AuroElement$3 {
84219
84270
  }
84220
84271
  });
84221
84272
 
84222
- // Slot change (mount/re-mount): pass `preferComboboxValue` so that a
84223
- // framework-set `this.value` wins over any stale `input.value` when
84224
- // matching against the newly-available options. Fixes the display
84225
- // for SPA preselect and Svelte `{#key}` re-mount swap patterns.
84226
- this.handleMenuOptions({ preferComboboxValue: true });
84273
+ this.handleMenuOptions();
84227
84274
 
84228
84275
  break;
84229
84276
 
@@ -90931,7 +90978,7 @@ let AuroHelpText$1 = class AuroHelpText extends i$3 {
90931
90978
  }
90932
90979
  };
90933
90980
 
90934
- var formkitVersion$1 = '202607020031';
90981
+ var formkitVersion$1 = '202607021905';
90935
90982
 
90936
90983
  class AuroElement extends i$3 {
90937
90984
  static get properties() {
@@ -92970,7 +93017,7 @@ class AuroHelpText extends i$3 {
92970
93017
  }
92971
93018
  }
92972
93019
 
92973
- var formkitVersion = '202607020031';
93020
+ var formkitVersion = '202607021905';
92974
93021
 
92975
93022
  var styleCss = i$6`.util_displayInline{display:inline}.util_displayInlineBlock{display:inline-block}.util_displayBlock{display:block}.util_displayFlex{display:flex}.util_displayHidden{display:none}.util_displayHiddenVisually{position:absolute;overflow:hidden;clip:rect(1px, 1px, 1px, 1px);width:1px;height:1px;padding:0;border:0}.body-default{font-size:var(--wcss-body-default-font-size, 1rem);font-weight:var(--wcss-body-default-weight, );line-height:var(--wcss-body-default-line-height, 1.5rem)}.body-default,.body-default-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-default-emphasized{font-size:var(--wcss-body-default-emphasized-font-size, 1rem);font-weight:var(--wcss-body-default-emphasized-weight, );line-height:var(--wcss-body-default-emphasized-line-height, 1.5rem)}.body-lg{font-size:var(--wcss-body-lg-font-size, 1.125rem);font-weight:var(--wcss-body-lg-weight, );line-height:var(--wcss-body-lg-line-height, 1.625rem)}.body-lg,.body-lg-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-lg-emphasized{font-size:var(--wcss-body-lg-emphasized-font-size, 1.125rem);font-weight:var(--wcss-body-lg-emphasized-weight, );line-height:var(--wcss-body-lg-emphasized-line-height, 1.625rem)}.body-sm{font-size:var(--wcss-body-sm-font-size, 0.875rem);font-weight:var(--wcss-body-sm-weight, );line-height:var(--wcss-body-sm-line-height, 1.25rem)}.body-sm,.body-sm-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-sm-emphasized{font-size:var(--wcss-body-sm-emphasized-font-size, 0.875rem);font-weight:var(--wcss-body-sm-emphasized-weight, );line-height:var(--wcss-body-sm-emphasized-line-height, 1.25rem)}.body-xs{font-size:var(--wcss-body-xs-font-size, 0.75rem);font-weight:var(--wcss-body-xs-weight, );line-height:var(--wcss-body-xs-line-height, 1rem)}.body-xs,.body-xs-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-xs-emphasized{font-size:var(--wcss-body-xs-emphasized-font-size, 0.75rem);font-weight:var(--wcss-body-xs-emphasized-weight, );line-height:var(--wcss-body-xs-emphasized-line-height, 1rem)}.body-2xs{font-size:var(--wcss-body-2xs-font-size, 0.625rem);font-weight:var(--wcss-body-2xs-weight, );line-height:var(--wcss-body-2xs-line-height, 0.875rem)}.body-2xs,.body-2xs-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-2xs-emphasized{font-size:var(--wcss-body-2xs-emphasized-font-size, 0.625rem);font-weight:var(--wcss-body-2xs-emphasized-weight, );line-height:var(--wcss-body-2xs-emphasized-line-height, 0.875rem)}.display-2xl{font-family:var(--wcss-display-2xl-family, "AS Circular"),var(--wcss-display-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-2xl-font-size, clamp(3.5rem, 6vw, 5.375rem));font-weight:var(--wcss-display-2xl-weight, 300);letter-spacing:var(--wcss-display-2xl-letter-spacing, 0);line-height:var(--wcss-display-2xl-line-height, 1.3)}.display-xl{font-family:var(--wcss-display-xl-family, "AS Circular"),var(--wcss-display-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-xl-font-size, clamp(3rem, 5.3333333333vw, 4.5rem));font-weight:var(--wcss-display-xl-weight, 300);letter-spacing:var(--wcss-display-xl-letter-spacing, 0);line-height:var(--wcss-display-xl-line-height, 1.3)}.display-lg{font-family:var(--wcss-display-lg-family, "AS Circular"),var(--wcss-display-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-lg-font-size, clamp(2.75rem, 4.6666666667vw, 4rem));font-weight:var(--wcss-display-lg-weight, 300);letter-spacing:var(--wcss-display-lg-letter-spacing, 0);line-height:var(--wcss-display-lg-line-height, 1.3)}.display-md{font-family:var(--wcss-display-md-family, "AS Circular"),var(--wcss-display-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-md-font-size, clamp(2.5rem, 4vw, 3.5rem));font-weight:var(--wcss-display-md-weight, 300);letter-spacing:var(--wcss-display-md-letter-spacing, 0);line-height:var(--wcss-display-md-line-height, 1.3)}.display-sm{font-family:var(--wcss-display-sm-family, "AS Circular"),var(--wcss-display-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-sm-font-size, clamp(2rem, 3.6666666667vw, 3rem));font-weight:var(--wcss-display-sm-weight, 300);letter-spacing:var(--wcss-display-sm-letter-spacing, 0);line-height:var(--wcss-display-sm-line-height, 1.3)}.display-xs{font-family:var(--wcss-display-xs-family, "AS Circular"),var(--wcss-display-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-xs-font-size, clamp(1.75rem, 3vw, 2.375rem));font-weight:var(--wcss-display-xs-weight, 300);letter-spacing:var(--wcss-display-xs-letter-spacing, 0);line-height:var(--wcss-display-xs-line-height, 1.3)}.heading-xl{font-family:var(--wcss-heading-xl-family, "AS Circular"),var(--wcss-heading-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-xl-font-size, clamp(2rem, 3vw, 2.5rem));font-weight:var(--wcss-heading-xl-weight, 300);letter-spacing:var(--wcss-heading-xl-letter-spacing, 0);line-height:var(--wcss-heading-xl-line-height, 1.3)}.heading-lg{font-family:var(--wcss-heading-lg-family, "AS Circular"),var(--wcss-heading-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-lg-font-size, clamp(1.75rem, 2.6666666667vw, 2.25rem));font-weight:var(--wcss-heading-lg-weight, 300);letter-spacing:var(--wcss-heading-lg-letter-spacing, 0);line-height:var(--wcss-heading-lg-line-height, 1.3)}.heading-md{font-family:var(--wcss-heading-md-family, "AS Circular"),var(--wcss-heading-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-md-font-size, clamp(1.625rem, 2.3333333333vw, 1.75rem));font-weight:var(--wcss-heading-md-weight, 300);letter-spacing:var(--wcss-heading-md-letter-spacing, 0);line-height:var(--wcss-heading-md-line-height, 1.3)}.heading-sm{font-family:var(--wcss-heading-sm-family, "AS Circular"),var(--wcss-heading-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-sm-font-size, clamp(1.375rem, 2vw, 1.5rem));font-weight:var(--wcss-heading-sm-weight, 300);letter-spacing:var(--wcss-heading-sm-letter-spacing, 0);line-height:var(--wcss-heading-sm-line-height, 1.3)}.heading-xs{font-family:var(--wcss-heading-xs-family, "AS Circular"),var(--wcss-heading-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-xs-font-size, clamp(1.25rem, 1.6666666667vw, 1.25rem));font-weight:var(--wcss-heading-xs-weight, 300);letter-spacing:var(--wcss-heading-xs-letter-spacing, 0);line-height:var(--wcss-heading-xs-line-height, 1.3)}.heading-2xs{font-family:var(--wcss-heading-2xs-family, "AS Circular"),var(--wcss-heading-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-2xs-font-size, clamp(1.125rem, 1.5vw, 1.125rem));font-weight:var(--wcss-heading-2xs-weight, 300);letter-spacing:var(--wcss-heading-2xs-letter-spacing, 0);line-height:var(--wcss-heading-2xs-line-height, 1.3)}.accent-2xl{font-family:var(--wcss-accent-2xl-family, "Good OT"),var(--wcss-accent-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-2xl-font-size, clamp(2rem, 3.1666666667vw, 2.375rem));font-weight:var(--wcss-accent-2xl-weight, 450);letter-spacing:var(--wcss-accent-2xl-letter-spacing, 0.05em);line-height:var(--wcss-accent-2xl-line-height, 1)}.accent-2xl,.accent-xl{text-transform:uppercase}.accent-xl{font-family:var(--wcss-accent-xl-family, "Good OT"),var(--wcss-accent-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-xl-font-size, clamp(1.625rem, 2.3333333333vw, 2rem));font-weight:var(--wcss-accent-xl-weight, 450);letter-spacing:var(--wcss-accent-xl-letter-spacing, 0.05em);line-height:var(--wcss-accent-xl-line-height, 1.3)}.accent-lg{font-family:var(--wcss-accent-lg-family, "Good OT"),var(--wcss-accent-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-lg-font-size, clamp(1.5rem, 2.1666666667vw, 1.75rem));font-weight:var(--wcss-accent-lg-weight, 450);letter-spacing:var(--wcss-accent-lg-letter-spacing, 0.05em);line-height:var(--wcss-accent-lg-line-height, 1.3)}.accent-lg,.accent-md{text-transform:uppercase}.accent-md{font-family:var(--wcss-accent-md-family, "Good OT"),var(--wcss-accent-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-md-font-size, clamp(1.375rem, 1.8333333333vw, 1.5rem));font-weight:var(--wcss-accent-md-weight, 500);letter-spacing:var(--wcss-accent-md-letter-spacing, 0.05em);line-height:var(--wcss-accent-md-line-height, 1.3)}.accent-sm{font-family:var(--wcss-accent-sm-family, "Good OT"),var(--wcss-accent-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-sm-font-size, clamp(1.125rem, 1.5vw, 1.25rem));font-weight:var(--wcss-accent-sm-weight, 500);letter-spacing:var(--wcss-accent-sm-letter-spacing, 0.05em);line-height:var(--wcss-accent-sm-line-height, 1.3)}.accent-sm,.accent-xs{text-transform:uppercase}.accent-xs{font-family:var(--wcss-accent-xs-family, "Good OT"),var(--wcss-accent-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-xs-font-size, clamp(1rem, 1.3333333333vw, 1rem));font-weight:var(--wcss-accent-xs-weight, 500);letter-spacing:var(--wcss-accent-xs-letter-spacing, 0.1em);line-height:var(--wcss-accent-xs-line-height, 1.3)}.accent-2xs{font-family:var(--wcss-accent-2xs-family, "Good OT"),var(--wcss-accent-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-2xs-font-size, clamp(0.875rem, 1.1666666667vw, 0.875rem));font-weight:var(--wcss-accent-2xs-weight, 450);letter-spacing:var(--wcss-accent-2xs-letter-spacing, 0.1em);line-height:var(--wcss-accent-2xs-line-height, 1.3);text-transform:uppercase}[auro-dropdown]{--ds-auro-dropdown-trigger-border-color: var(--ds-auro-select-border-color);--ds-auro-dropdown-trigger-background-color: var(--ds-auro-select-background-color);--ds-auro-dropdown-trigger-container-color: var(--ds-auro-select-background-color);--ds-auro-dropdown-trigger-outline-color: var(--ds-auro-select-outline-color)}:host{display:inline-block;text-align:left;vertical-align:top}:host([layout*=emphasized]) [auro-dropdown],:host([layout*=snowflake]) [auro-dropdown]{--ds-auro-select-border-color: transparent}:host([layout*=emphasized]) .mainContent,:host([layout*=snowflake]) .mainContent{text-align:center}.mainContent{position:relative;display:flex;overflow:hidden;flex:1;flex-direction:column;align-items:center;justify-content:center}.valueContainer [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}`;
92976
93023