@aurodesignsystem-dev/auro-formkit 0.0.0-pr1530.1 → 0.0.0-pr1530.2

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 (50) 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 +42 -29
  7. package/components/combobox/demo/getting-started.min.js +42 -29
  8. package/components/combobox/demo/index.min.js +42 -29
  9. package/components/combobox/dist/index.js +42 -29
  10. package/components/combobox/dist/registered.js +42 -29
  11. package/components/counter/demo/customize.min.js +2 -2
  12. package/components/counter/demo/index.min.js +2 -2
  13. package/components/counter/dist/index.js +2 -2
  14. package/components/counter/dist/registered.js +2 -2
  15. package/components/datepicker/demo/accessibility.md +4 -4
  16. package/components/datepicker/demo/customize.min.js +42 -29
  17. package/components/datepicker/demo/index.min.js +42 -29
  18. package/components/datepicker/demo/keyboard-behavior.md +3 -3
  19. package/components/datepicker/demo/voiceover.md +3 -3
  20. package/components/datepicker/demo/why-datepicker.md +2 -2
  21. package/components/datepicker/dist/index.js +42 -29
  22. package/components/datepicker/dist/registered.js +42 -29
  23. package/components/dropdown/demo/customize.min.js +1 -1
  24. package/components/dropdown/demo/getting-started.min.js +1 -1
  25. package/components/dropdown/demo/index.min.js +1 -1
  26. package/components/dropdown/dist/index.js +1 -1
  27. package/components/dropdown/dist/registered.js +1 -1
  28. package/components/form/demo/customize.min.js +190 -105
  29. package/components/form/demo/getting-started.min.js +190 -105
  30. package/components/form/demo/index.min.js +190 -105
  31. package/components/form/demo/registerDemoDeps.min.js +190 -105
  32. package/components/input/demo/customize.min.js +40 -27
  33. package/components/input/demo/getting-started.min.js +40 -27
  34. package/components/input/demo/index.min.js +40 -27
  35. package/components/input/dist/base-input.d.ts +20 -4
  36. package/components/input/dist/index.js +40 -27
  37. package/components/input/dist/registered.js +40 -27
  38. package/components/radio/demo/customize.min.js +1 -1
  39. package/components/radio/demo/getting-started.min.js +1 -1
  40. package/components/radio/demo/index.min.js +1 -1
  41. package/components/radio/dist/index.js +1 -1
  42. package/components/radio/dist/registered.js +1 -1
  43. package/components/select/demo/customize.min.js +62 -16
  44. package/components/select/demo/getting-started.min.js +62 -16
  45. package/components/select/demo/index.min.js +62 -16
  46. package/components/select/dist/auro-select.d.ts +6 -0
  47. package/components/select/dist/index.js +62 -16
  48. package/components/select/dist/registered.js +62 -16
  49. package/custom-elements.json +98 -44
  50. package/package.json +1 -1
@@ -11769,14 +11769,16 @@ let BaseInput$2 = class BaseInput extends AuroElement$6 {
11769
11769
  this.label = 'Input label is undefined';
11770
11770
  this.layout = 'classic';
11771
11771
  this.locale = 'en-US';
11772
+ this._format = undefined;
11773
+
11774
+ /** @private */
11775
+ this._userSetFormat = false;
11772
11776
  this.max = undefined;
11773
11777
  this.maxLength = undefined;
11774
11778
  this.min = undefined;
11775
11779
  this.minLength = undefined;
11776
11780
  this.noValidate = false;
11777
11781
  this.onDark = false;
11778
- // Raw values returned from the input mask before model normalization.
11779
- this._rawMaskValue = undefined;
11780
11782
  this.required = false;
11781
11783
  this.setCustomValidityForType = undefined;
11782
11784
  // Credit Card is intentionally excluded — its mask manages the cursor
@@ -11934,7 +11936,8 @@ let BaseInput$2 = class BaseInput extends AuroElement$6 {
11934
11936
  */
11935
11937
  format: {
11936
11938
  type: String,
11937
- reflect: true
11939
+ reflect: true,
11940
+ noAccessor: true
11938
11941
  },
11939
11942
 
11940
11943
  /**
@@ -12272,6 +12275,34 @@ let BaseInput$2 = class BaseInput extends AuroElement$6 {
12272
12275
  return this.max && dateFormatter$3.isValidDate(this.max) ? dateFormatter$3.stringToDateInstance(this.max) : undefined;
12273
12276
  }
12274
12277
 
12278
+ get format() {
12279
+ return this._format;
12280
+ }
12281
+
12282
+ /**
12283
+ * Overrides LitElement's generated accessor so we can track whether the
12284
+ * consumer explicitly set `format`. Locale-derived updates use
12285
+ * `_setFormatFromLocale` instead, which skips this flag.
12286
+ */
12287
+ set format(value) {
12288
+ const oldValue = this._format;
12289
+ this._format = value ? value.toLowerCase() : value;
12290
+ this._userSetFormat = Boolean(value);
12291
+ this.requestUpdate('format', oldValue);
12292
+ }
12293
+
12294
+ /**
12295
+ * Sets format without marking it as user-set. Used by locale auto-derive
12296
+ * so that a subsequent locale change can still update the format.
12297
+ * @private
12298
+ * @param {string} value
12299
+ */
12300
+ _setFormatFromLocale(value) {
12301
+ const oldValue = this._format;
12302
+ this._format = value ? value.toLowerCase() : value;
12303
+ this.requestUpdate('format', oldValue);
12304
+ }
12305
+
12275
12306
  connectedCallback() {
12276
12307
  super.connectedCallback();
12277
12308
 
@@ -12319,15 +12350,6 @@ let BaseInput$2 = class BaseInput extends AuroElement$6 {
12319
12350
 
12320
12351
  this.inputId = this.id ? `${this.id}-input` : window.crypto.randomUUID();
12321
12352
 
12322
- // Normalize the format token to lowercase so case-mixed values supplied
12323
- // via attribute (e.g. `format="MM/DD/YYYY"`) hit the `dateFormatMap`
12324
- // lookup inside `setCustomHelpTextMessage`. Without this, an uppercase
12325
- // format silently misses the map and leaves `setCustomValidityForType`
12326
- // unset.
12327
- if (this.format) {
12328
- this.format = this.format.toLowerCase();
12329
- }
12330
-
12331
12353
  // use validity message override if declared when initializing the component
12332
12354
  if (this.hasAttribute('setCustomValidity')) {
12333
12355
  this.ValidityMessageOverride = this.setCustomValidity;
@@ -12434,12 +12456,10 @@ let BaseInput$2 = class BaseInput extends AuroElement$6 {
12434
12456
  updated(changedProperties) {
12435
12457
  super.updated(changedProperties);
12436
12458
 
12437
- // When locale changes without an explicit format override, derive format from the new locale.
12438
- // Only runs if the current format is still the previous locale's default (not user-overridden).
12459
+ // When locale changes, auto-derive format unless the consumer explicitly set one.
12439
12460
  if (changedProperties.has('locale') && !changedProperties.has('format') && this.type === 'date') {
12440
- const previousLocaleFormat = getDateFormatFromLocale$3(changedProperties.get('locale'));
12441
- if (!this.format || this.format.toLowerCase() === previousLocaleFormat) {
12442
- this.format = getDateFormatFromLocale$3(this.locale);
12461
+ if (!this._userSetFormat) {
12462
+ this._setFormatFromLocale(getDateFormatFromLocale$3(this.locale));
12443
12463
  }
12444
12464
  }
12445
12465
 
@@ -12610,9 +12630,6 @@ let BaseInput$2 = class BaseInput extends AuroElement$6 {
12610
12630
  this.maskInstance.on('accept', () => {
12611
12631
  if (this._configuringMask) return;
12612
12632
  this.value = this.util.toModelValue(this.maskInstance.value, this.format);
12613
- if (this.type === "date") {
12614
- this._rawMaskValue = this.maskInstance.value;
12615
- }
12616
12633
  });
12617
12634
 
12618
12635
  // Mask fires 'complete' on the restore step below for any value that
@@ -12620,9 +12637,6 @@ let BaseInput$2 = class BaseInput extends AuroElement$6 {
12620
12637
  this.maskInstance.on('complete', () => {
12621
12638
  if (this._configuringMask) return;
12622
12639
  this.value = this.util.toModelValue(this.maskInstance.value, this.format);
12623
- if (this.type === "date") {
12624
- this._rawMaskValue = this.maskInstance.value;
12625
- }
12626
12640
  });
12627
12641
 
12628
12642
  // Write existingValue through the mask (not the input directly) so
@@ -12859,8 +12873,7 @@ let BaseInput$2 = class BaseInput extends AuroElement$6 {
12859
12873
 
12860
12874
  // Set default date format if type=date and no format is defined
12861
12875
  if (this.type === "date" && !this.format) {
12862
- // Use locale to determine default date format
12863
- this.format = this.util.getDateMaskFromLocale().toLowerCase();
12876
+ this._setFormatFromLocale(this.util.getDateMaskFromLocale().toLowerCase());
12864
12877
  this.util.updateFormat(this.format);
12865
12878
  }
12866
12879
  }
@@ -12889,7 +12902,7 @@ let BaseInput$2 = class BaseInput extends AuroElement$6 {
12889
12902
  const creditCard = this.matchInputValueToCreditCard();
12890
12903
  const previousFormat = this.format;
12891
12904
 
12892
- this.format = creditCard.maskFormat;
12905
+ this._setFormatFromLocale(creditCard.maskFormat);
12893
12906
 
12894
12907
  this.maxLength = creditCard.formatLength;
12895
12908
  this.minLength = creditCard.formatMinLength;
@@ -13363,7 +13376,7 @@ let AuroHelpText$8 = class AuroHelpText extends i$3 {
13363
13376
  }
13364
13377
  };
13365
13378
 
13366
- var formkitVersion$8 = '202607022134';
13379
+ var formkitVersion$8 = '202607022225';
13367
13380
 
13368
13381
  // Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
13369
13382
  // See LICENSE in the project root for license information.
@@ -27765,7 +27778,7 @@ let AuroBibtemplate$3 = class AuroBibtemplate extends i$3 {
27765
27778
  }
27766
27779
  };
27767
27780
 
27768
- var formkitVersion$2$1 = '202607022134';
27781
+ var formkitVersion$2$1 = '202607022225';
27769
27782
 
27770
27783
  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}
27771
27784
  `,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}}
@@ -33658,7 +33671,7 @@ let AuroHelpText$2$1 = class AuroHelpText extends i$3 {
33658
33671
  }
33659
33672
  };
33660
33673
 
33661
- var formkitVersion$1$3 = '202607022134';
33674
+ var formkitVersion$1$3 = '202607022225';
33662
33675
 
33663
33676
  let AuroElement$2$2 = class AuroElement extends i$3 {
33664
33677
  static get properties() {
@@ -45666,14 +45679,16 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
45666
45679
  this.label = 'Input label is undefined';
45667
45680
  this.layout = 'classic';
45668
45681
  this.locale = 'en-US';
45682
+ this._format = undefined;
45683
+
45684
+ /** @private */
45685
+ this._userSetFormat = false;
45669
45686
  this.max = undefined;
45670
45687
  this.maxLength = undefined;
45671
45688
  this.min = undefined;
45672
45689
  this.minLength = undefined;
45673
45690
  this.noValidate = false;
45674
45691
  this.onDark = false;
45675
- // Raw values returned from the input mask before model normalization.
45676
- this._rawMaskValue = undefined;
45677
45692
  this.required = false;
45678
45693
  this.setCustomValidityForType = undefined;
45679
45694
  // Credit Card is intentionally excluded — its mask manages the cursor
@@ -45831,7 +45846,8 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
45831
45846
  */
45832
45847
  format: {
45833
45848
  type: String,
45834
- reflect: true
45849
+ reflect: true,
45850
+ noAccessor: true
45835
45851
  },
45836
45852
 
45837
45853
  /**
@@ -46169,6 +46185,34 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
46169
46185
  return this.max && dateFormatter$2.isValidDate(this.max) ? dateFormatter$2.stringToDateInstance(this.max) : undefined;
46170
46186
  }
46171
46187
 
46188
+ get format() {
46189
+ return this._format;
46190
+ }
46191
+
46192
+ /**
46193
+ * Overrides LitElement's generated accessor so we can track whether the
46194
+ * consumer explicitly set `format`. Locale-derived updates use
46195
+ * `_setFormatFromLocale` instead, which skips this flag.
46196
+ */
46197
+ set format(value) {
46198
+ const oldValue = this._format;
46199
+ this._format = value ? value.toLowerCase() : value;
46200
+ this._userSetFormat = Boolean(value);
46201
+ this.requestUpdate('format', oldValue);
46202
+ }
46203
+
46204
+ /**
46205
+ * Sets format without marking it as user-set. Used by locale auto-derive
46206
+ * so that a subsequent locale change can still update the format.
46207
+ * @private
46208
+ * @param {string} value
46209
+ */
46210
+ _setFormatFromLocale(value) {
46211
+ const oldValue = this._format;
46212
+ this._format = value ? value.toLowerCase() : value;
46213
+ this.requestUpdate('format', oldValue);
46214
+ }
46215
+
46172
46216
  connectedCallback() {
46173
46217
  super.connectedCallback();
46174
46218
 
@@ -46216,15 +46260,6 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
46216
46260
 
46217
46261
  this.inputId = this.id ? `${this.id}-input` : window.crypto.randomUUID();
46218
46262
 
46219
- // Normalize the format token to lowercase so case-mixed values supplied
46220
- // via attribute (e.g. `format="MM/DD/YYYY"`) hit the `dateFormatMap`
46221
- // lookup inside `setCustomHelpTextMessage`. Without this, an uppercase
46222
- // format silently misses the map and leaves `setCustomValidityForType`
46223
- // unset.
46224
- if (this.format) {
46225
- this.format = this.format.toLowerCase();
46226
- }
46227
-
46228
46263
  // use validity message override if declared when initializing the component
46229
46264
  if (this.hasAttribute('setCustomValidity')) {
46230
46265
  this.ValidityMessageOverride = this.setCustomValidity;
@@ -46331,12 +46366,10 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
46331
46366
  updated(changedProperties) {
46332
46367
  super.updated(changedProperties);
46333
46368
 
46334
- // When locale changes without an explicit format override, derive format from the new locale.
46335
- // Only runs if the current format is still the previous locale's default (not user-overridden).
46369
+ // When locale changes, auto-derive format unless the consumer explicitly set one.
46336
46370
  if (changedProperties.has('locale') && !changedProperties.has('format') && this.type === 'date') {
46337
- const previousLocaleFormat = getDateFormatFromLocale$2(changedProperties.get('locale'));
46338
- if (!this.format || this.format.toLowerCase() === previousLocaleFormat) {
46339
- this.format = getDateFormatFromLocale$2(this.locale);
46371
+ if (!this._userSetFormat) {
46372
+ this._setFormatFromLocale(getDateFormatFromLocale$2(this.locale));
46340
46373
  }
46341
46374
  }
46342
46375
 
@@ -46507,9 +46540,6 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
46507
46540
  this.maskInstance.on('accept', () => {
46508
46541
  if (this._configuringMask) return;
46509
46542
  this.value = this.util.toModelValue(this.maskInstance.value, this.format);
46510
- if (this.type === "date") {
46511
- this._rawMaskValue = this.maskInstance.value;
46512
- }
46513
46543
  });
46514
46544
 
46515
46545
  // Mask fires 'complete' on the restore step below for any value that
@@ -46517,9 +46547,6 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
46517
46547
  this.maskInstance.on('complete', () => {
46518
46548
  if (this._configuringMask) return;
46519
46549
  this.value = this.util.toModelValue(this.maskInstance.value, this.format);
46520
- if (this.type === "date") {
46521
- this._rawMaskValue = this.maskInstance.value;
46522
- }
46523
46550
  });
46524
46551
 
46525
46552
  // Write existingValue through the mask (not the input directly) so
@@ -46756,8 +46783,7 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
46756
46783
 
46757
46784
  // Set default date format if type=date and no format is defined
46758
46785
  if (this.type === "date" && !this.format) {
46759
- // Use locale to determine default date format
46760
- this.format = this.util.getDateMaskFromLocale().toLowerCase();
46786
+ this._setFormatFromLocale(this.util.getDateMaskFromLocale().toLowerCase());
46761
46787
  this.util.updateFormat(this.format);
46762
46788
  }
46763
46789
  }
@@ -46786,7 +46812,7 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
46786
46812
  const creditCard = this.matchInputValueToCreditCard();
46787
46813
  const previousFormat = this.format;
46788
46814
 
46789
- this.format = creditCard.maskFormat;
46815
+ this._setFormatFromLocale(creditCard.maskFormat);
46790
46816
 
46791
46817
  this.maxLength = creditCard.formatLength;
46792
46818
  this.minLength = creditCard.formatMinLength;
@@ -47260,7 +47286,7 @@ let AuroHelpText$1$3 = class AuroHelpText extends i$3 {
47260
47286
  }
47261
47287
  };
47262
47288
 
47263
- var formkitVersion$7 = '202607022134';
47289
+ var formkitVersion$7 = '202607022225';
47264
47290
 
47265
47291
  // Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
47266
47292
  // See LICENSE in the project root for license information.
@@ -52181,7 +52207,7 @@ let AuroHelpText$1$2 = class AuroHelpText extends i$3 {
52181
52207
  }
52182
52208
  };
52183
52209
 
52184
- var formkitVersion$1$2 = '202607022134';
52210
+ var formkitVersion$1$2 = '202607022225';
52185
52211
 
52186
52212
  // Copyright (c) 2026 Alaska Airlines. All rights reserved. Licensed under the Apache-2.0 license
52187
52213
  // See LICENSE in the project root for license information.
@@ -56509,7 +56535,7 @@ let AuroHelpText$6 = class AuroHelpText extends i$3 {
56509
56535
  }
56510
56536
  };
56511
56537
 
56512
- var formkitVersion$6 = '202607022134';
56538
+ var formkitVersion$6 = '202607022225';
56513
56539
 
56514
56540
  let AuroElement$1$2 = class AuroElement extends i$3 {
56515
56541
  static get properties() {
@@ -60489,7 +60515,7 @@ let AuroHelpText$5 = class AuroHelpText extends i$3 {
60489
60515
  }
60490
60516
  };
60491
60517
 
60492
- var formkitVersion$5 = '202607022134';
60518
+ var formkitVersion$5 = '202607022225';
60493
60519
 
60494
60520
  // Copyright (c) Alaska Air. All right reserved. Licensed under the Apache-2.0 license
60495
60521
  // See LICENSE in the project root for license information.
@@ -62254,7 +62280,7 @@ let AuroHelpText$4 = class AuroHelpText extends i$3 {
62254
62280
  }
62255
62281
  };
62256
62282
 
62257
- var formkitVersion$4 = '202607022134';
62283
+ var formkitVersion$4 = '202607022225';
62258
62284
 
62259
62285
  // Copyright (c) 2026 Alaska Airlines. All rights reserved. Licensed under the Apache-2.0 license
62260
62286
  // See LICENSE in the project root for license information.
@@ -67475,7 +67501,7 @@ let AuroHelpText$2 = class AuroHelpText extends i$3 {
67475
67501
  }
67476
67502
  };
67477
67503
 
67478
- var formkitVersion$2 = '202607022134';
67504
+ var formkitVersion$2 = '202607022225';
67479
67505
 
67480
67506
  let AuroElement$2$1 = class AuroElement extends i$3 {
67481
67507
  static get properties() {
@@ -79483,14 +79509,16 @@ class BaseInput extends AuroElement$1$1 {
79483
79509
  this.label = 'Input label is undefined';
79484
79510
  this.layout = 'classic';
79485
79511
  this.locale = 'en-US';
79512
+ this._format = undefined;
79513
+
79514
+ /** @private */
79515
+ this._userSetFormat = false;
79486
79516
  this.max = undefined;
79487
79517
  this.maxLength = undefined;
79488
79518
  this.min = undefined;
79489
79519
  this.minLength = undefined;
79490
79520
  this.noValidate = false;
79491
79521
  this.onDark = false;
79492
- // Raw values returned from the input mask before model normalization.
79493
- this._rawMaskValue = undefined;
79494
79522
  this.required = false;
79495
79523
  this.setCustomValidityForType = undefined;
79496
79524
  // Credit Card is intentionally excluded — its mask manages the cursor
@@ -79648,7 +79676,8 @@ class BaseInput extends AuroElement$1$1 {
79648
79676
  */
79649
79677
  format: {
79650
79678
  type: String,
79651
- reflect: true
79679
+ reflect: true,
79680
+ noAccessor: true
79652
79681
  },
79653
79682
 
79654
79683
  /**
@@ -79986,6 +80015,34 @@ class BaseInput extends AuroElement$1$1 {
79986
80015
  return this.max && dateFormatter.isValidDate(this.max) ? dateFormatter.stringToDateInstance(this.max) : undefined;
79987
80016
  }
79988
80017
 
80018
+ get format() {
80019
+ return this._format;
80020
+ }
80021
+
80022
+ /**
80023
+ * Overrides LitElement's generated accessor so we can track whether the
80024
+ * consumer explicitly set `format`. Locale-derived updates use
80025
+ * `_setFormatFromLocale` instead, which skips this flag.
80026
+ */
80027
+ set format(value) {
80028
+ const oldValue = this._format;
80029
+ this._format = value ? value.toLowerCase() : value;
80030
+ this._userSetFormat = Boolean(value);
80031
+ this.requestUpdate('format', oldValue);
80032
+ }
80033
+
80034
+ /**
80035
+ * Sets format without marking it as user-set. Used by locale auto-derive
80036
+ * so that a subsequent locale change can still update the format.
80037
+ * @private
80038
+ * @param {string} value
80039
+ */
80040
+ _setFormatFromLocale(value) {
80041
+ const oldValue = this._format;
80042
+ this._format = value ? value.toLowerCase() : value;
80043
+ this.requestUpdate('format', oldValue);
80044
+ }
80045
+
79989
80046
  connectedCallback() {
79990
80047
  super.connectedCallback();
79991
80048
 
@@ -80033,15 +80090,6 @@ class BaseInput extends AuroElement$1$1 {
80033
80090
 
80034
80091
  this.inputId = this.id ? `${this.id}-input` : window.crypto.randomUUID();
80035
80092
 
80036
- // Normalize the format token to lowercase so case-mixed values supplied
80037
- // via attribute (e.g. `format="MM/DD/YYYY"`) hit the `dateFormatMap`
80038
- // lookup inside `setCustomHelpTextMessage`. Without this, an uppercase
80039
- // format silently misses the map and leaves `setCustomValidityForType`
80040
- // unset.
80041
- if (this.format) {
80042
- this.format = this.format.toLowerCase();
80043
- }
80044
-
80045
80093
  // use validity message override if declared when initializing the component
80046
80094
  if (this.hasAttribute('setCustomValidity')) {
80047
80095
  this.ValidityMessageOverride = this.setCustomValidity;
@@ -80148,12 +80196,10 @@ class BaseInput extends AuroElement$1$1 {
80148
80196
  updated(changedProperties) {
80149
80197
  super.updated(changedProperties);
80150
80198
 
80151
- // When locale changes without an explicit format override, derive format from the new locale.
80152
- // Only runs if the current format is still the previous locale's default (not user-overridden).
80199
+ // When locale changes, auto-derive format unless the consumer explicitly set one.
80153
80200
  if (changedProperties.has('locale') && !changedProperties.has('format') && this.type === 'date') {
80154
- const previousLocaleFormat = getDateFormatFromLocale(changedProperties.get('locale'));
80155
- if (!this.format || this.format.toLowerCase() === previousLocaleFormat) {
80156
- this.format = getDateFormatFromLocale(this.locale);
80201
+ if (!this._userSetFormat) {
80202
+ this._setFormatFromLocale(getDateFormatFromLocale(this.locale));
80157
80203
  }
80158
80204
  }
80159
80205
 
@@ -80324,9 +80370,6 @@ class BaseInput extends AuroElement$1$1 {
80324
80370
  this.maskInstance.on('accept', () => {
80325
80371
  if (this._configuringMask) return;
80326
80372
  this.value = this.util.toModelValue(this.maskInstance.value, this.format);
80327
- if (this.type === "date") {
80328
- this._rawMaskValue = this.maskInstance.value;
80329
- }
80330
80373
  });
80331
80374
 
80332
80375
  // Mask fires 'complete' on the restore step below for any value that
@@ -80334,9 +80377,6 @@ class BaseInput extends AuroElement$1$1 {
80334
80377
  this.maskInstance.on('complete', () => {
80335
80378
  if (this._configuringMask) return;
80336
80379
  this.value = this.util.toModelValue(this.maskInstance.value, this.format);
80337
- if (this.type === "date") {
80338
- this._rawMaskValue = this.maskInstance.value;
80339
- }
80340
80380
  });
80341
80381
 
80342
80382
  // Write existingValue through the mask (not the input directly) so
@@ -80573,8 +80613,7 @@ class BaseInput extends AuroElement$1$1 {
80573
80613
 
80574
80614
  // Set default date format if type=date and no format is defined
80575
80615
  if (this.type === "date" && !this.format) {
80576
- // Use locale to determine default date format
80577
- this.format = this.util.getDateMaskFromLocale().toLowerCase();
80616
+ this._setFormatFromLocale(this.util.getDateMaskFromLocale().toLowerCase());
80578
80617
  this.util.updateFormat(this.format);
80579
80618
  }
80580
80619
  }
@@ -80603,7 +80642,7 @@ class BaseInput extends AuroElement$1$1 {
80603
80642
  const creditCard = this.matchInputValueToCreditCard();
80604
80643
  const previousFormat = this.format;
80605
80644
 
80606
- this.format = creditCard.maskFormat;
80645
+ this._setFormatFromLocale(creditCard.maskFormat);
80607
80646
 
80608
80647
  this.maxLength = creditCard.formatLength;
80609
80648
  this.minLength = creditCard.formatMinLength;
@@ -81077,7 +81116,7 @@ let AuroHelpText$1$1 = class AuroHelpText extends i$3 {
81077
81116
  }
81078
81117
  };
81079
81118
 
81080
- var formkitVersion$1$1 = '202607022134';
81119
+ var formkitVersion$1$1 = '202607022225';
81081
81120
 
81082
81121
  // Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
81083
81122
  // See LICENSE in the project root for license information.
@@ -82203,7 +82242,7 @@ let AuroBibtemplate$1 = class AuroBibtemplate extends i$3 {
82203
82242
  }
82204
82243
  };
82205
82244
 
82206
- var formkitVersion$3 = '202607022134';
82245
+ var formkitVersion$3 = '202607022225';
82207
82246
 
82208
82247
  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}`;
82209
82248
 
@@ -86980,9 +87019,6 @@ function navigateArrow(component, direction, options = {}) {
86980
87019
  * @param {HTMLElement | null | undefined} menu - The auro-menu element.
86981
87020
  * @returns {Array<HTMLElement>} Non-disabled options, empty array when none.
86982
87021
  */
86983
- function getEnabledOptions(menu) {
86984
- return (menu?.options || []).filter((option) => !option.disabled);
86985
- }
86986
87022
 
86987
87023
  /**
86988
87024
  * Returns the active (selectable + visible) options for type-ahead navigation.
@@ -87052,8 +87088,10 @@ const selectKeyboardStrategy = {
87052
87088
  End(component, evt, ctx) {
87053
87089
  evt.preventDefault();
87054
87090
  evt.stopPropagation();
87055
- // `pop()` is safe here: getEnabledOptions returns a fresh filtered array.
87056
- const lastOption = getEnabledOptions(component.menu).pop();
87091
+ // `pop()` is safe here: getActiveOptions returns a fresh filtered array.
87092
+ // Uses "active" (not "enabled") so hidden and static rows — which a screen
87093
+ // reader must not announce as focused — are skipped.
87094
+ const lastOption = getActiveOptions(component.menu).pop();
87057
87095
  if (!lastOption) {
87058
87096
  return;
87059
87097
  }
@@ -87084,7 +87122,7 @@ const selectKeyboardStrategy = {
87084
87122
  Home(component, evt, ctx) {
87085
87123
  evt.preventDefault();
87086
87124
  evt.stopPropagation();
87087
- const [firstOption] = getEnabledOptions(component.menu);
87125
+ const [firstOption] = getActiveOptions(component.menu);
87088
87126
  if (!firstOption) {
87089
87127
  return;
87090
87128
  }
@@ -87109,6 +87147,15 @@ const selectKeyboardStrategy = {
87109
87147
  },
87110
87148
 
87111
87149
  default(component, evt, ctx) {
87150
+ // Ignore keys chorded with Ctrl/Meta/Alt so browser/OS shortcuts
87151
+ // (Cmd+C, Ctrl+V, Alt+X, Cmd+Space, …) don't leak into typeahead
87152
+ // or toggle the bib. Native <select> ignores modified keys.
87153
+ // ArrowUp/ArrowDown handle modifier+arrow explicitly above; this
87154
+ // guard only affects the default (printable/Space) branch.
87155
+ if (evt.ctrlKey || evt.metaKey || evt.altKey) {
87156
+ return;
87157
+ }
87158
+
87112
87159
  // Space resolves to either typeahead-buffer extension or bib toggle
87113
87160
  // depending on whether a type-ahead buffer is active. Mirrors native
87114
87161
  // <select> and the WAI-ARIA APG Listbox guidance: mid-typeahead space
@@ -91039,7 +91086,7 @@ let AuroHelpText$1 = class AuroHelpText extends i$3 {
91039
91086
  }
91040
91087
  };
91041
91088
 
91042
- var formkitVersion$1 = '202607022134';
91089
+ var formkitVersion$1 = '202607022225';
91043
91090
 
91044
91091
  class AuroElement extends i$3 {
91045
91092
  static get properties() {
@@ -93078,7 +93125,7 @@ class AuroHelpText extends i$3 {
93078
93125
  }
93079
93126
  }
93080
93127
 
93081
- var formkitVersion = '202607022134';
93128
+ var formkitVersion = '202607022225';
93082
93129
 
93083
93130
  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}`;
93084
93131
 
@@ -93642,8 +93689,11 @@ class AuroSelect extends AuroElement$1 {
93642
93689
  } else if (this.multiSelect && Array.isArray(this.optionSelected) && this.optionSelected.length > 0) {
93643
93690
  this.menu.updateActiveOption(this.optionSelected[0]);
93644
93691
  } else {
93645
- // If no activeOption has yet to be set, then make the first enabled option active by default
93646
- const [firstActive] = getEnabledOptions(this.menu);
93692
+ // If no activeOption has yet to be set, make the first active option
93693
+ // (non-disabled, non-hidden, non-static) active by default. "Active" —
93694
+ // not just "enabled" — so hidden rows and static placeholders never
93695
+ // land in aria-activedescendant on open.
93696
+ const [firstActive] = getActiveOptions(this.menu);
93647
93697
  this.menu.updateActiveOption(firstActive);
93648
93698
  }
93649
93699
  }
@@ -93889,6 +93939,12 @@ class AuroSelect extends AuroElement$1 {
93889
93939
 
93890
93940
  /**
93891
93941
  * Binds all behavior needed to the menu after rendering.
93942
+ *
93943
+ * The `<auro-menu>` reference is captured once and not re-targeted on
93944
+ * `slotchange`. Runtime option mutations are covered via
93945
+ * `auroMenu-optionsChange`, so swap options inside the menu freely; do not
93946
+ * swap the `<auro-menu>` element itself under a live select — remount the
93947
+ * parent `<auro-select>` instead.
93892
93948
  * @private
93893
93949
  * @returns {void}
93894
93950
  */
@@ -93947,6 +94003,15 @@ class AuroSelect extends AuroElement$1 {
93947
94003
  if (this.menu.optionSelected !== undefined) {
93948
94004
  return;
93949
94005
  }
94006
+ // Skip when the select is already cleared (valueless click with no
94007
+ // prior selection): value/optionSelected are already empty and there
94008
+ // is no stale trigger text to refresh, so updateDisplayedValue would
94009
+ // just churn the DOM and request a needless dropdown re-render.
94010
+ const hasStaleState = this.value !== undefined ||
94011
+ (this.multiSelect ? this.optionSelected?.length > 0 : this.optionSelected !== undefined);
94012
+ if (!hasStaleState) {
94013
+ return;
94014
+ }
93950
94015
  this.value = undefined;
93951
94016
  this.optionSelected = this.multiSelect ? [] : undefined;
93952
94017
  // The trigger label is rendered imperatively into #value, so a property
@@ -93976,10 +94041,15 @@ class AuroSelect extends AuroElement$1 {
93976
94041
  if (this.dropdown.isPopoverVisible) {
93977
94042
  announceToScreenReader(this._getAnnouncementRoot(), message);
93978
94043
  } else {
93979
- // Typeahead-on-closed fires this event before `show()` flips
93980
- // isPopoverVisible. Defer so the announcement targets the bib's
93981
- // live region once the fullscreen <dialog> opens otherwise it
93982
- // lands in the host root, which is inert under the active modal.
94044
+ // Typeahead-on-closed calls updateActiveOption() before show(), so
94045
+ // this handler runs with isPopoverVisible still false. queueMicrotask
94046
+ // is safe because show() showBib() flips isPopoverVisible and
94047
+ // dialog.showModal() both run synchronously in the same task; the
94048
+ // microtask queue only drains once _handleTypeahead unwinds, by
94049
+ // which point _getAnnouncementRoot() resolves to the bib's shadow
94050
+ // root inside the now-open modal. Do NOT switch to auroDropdown-toggled
94051
+ // — it fires before showModal(), landing the announcement in the
94052
+ // host root while the dialog is still not-yet-modal.
93983
94053
  queueMicrotask(() => announceToScreenReader(this._getAnnouncementRoot(), message));
93984
94054
  }
93985
94055
  }
@@ -94373,6 +94443,13 @@ class AuroSelect extends AuroElement$1 {
94373
94443
  }
94374
94444
 
94375
94445
  if (changedProperties.has('value')) {
94446
+ // A value change ends the current interaction — whether it came from a
94447
+ // user commit, programmatic assignment, or reset(). Clear the buffer so
94448
+ // a stale prefix does not concatenate onto the next keystroke while the
94449
+ // host still has focus (the blur listener would otherwise be the only
94450
+ // focus-retained clear point, and hideBib() below does not blur).
94451
+ this._clearTypeaheadBuffer();
94452
+
94376
94453
  this.setMenuValue(this.value);
94377
94454
 
94378
94455
  this._updateNativeSelect();
@@ -94428,6 +94505,9 @@ class AuroSelect extends AuroElement$1 {
94428
94505
  * @returns {void}
94429
94506
  */
94430
94507
  reset() {
94508
+ // Defense-in-depth: updated()'s value-change branch also clears, but
94509
+ // reset-to-same-value (e.g. undefined → undefined) skips that path.
94510
+ this._clearTypeaheadBuffer();
94431
94511
  this.menu.reset();
94432
94512
  this.validation.reset(this);
94433
94513
  }
@@ -94450,8 +94530,13 @@ class AuroSelect extends AuroElement$1 {
94450
94530
  // Hidden native <select> has no `multiple` attribute, so any change it fires
94451
94531
  // is a single raw value — applying it in multiSelect mode would collapse the
94452
94532
  // JSON-array `value` shape. Bfcache/autofill can reach this on a name-bearing
94453
- // form control even with aria-hidden/tabindex=-1.
94454
- if (this.multiSelect) return;
94533
+ // form control even with aria-hidden/tabindex=-1, so revert to the expected
94534
+ // mirror (formattedValue[0]) rather than letting the native select drift and
94535
+ // silently submit the autofilled scalar under `name`.
94536
+ if (this.multiSelect) {
94537
+ this._updateNativeSelect();
94538
+ return;
94539
+ }
94455
94540
 
94456
94541
  const selectedOption = event.target.options[event.target.selectedIndex];
94457
94542
  if (!selectedOption) return;