@aurodesignsystem-dev/auro-formkit 0.0.0-pr1553.1 → 0.0.0-pr1554.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) 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 +48 -14
  7. package/components/combobox/demo/getting-started.min.js +48 -14
  8. package/components/combobox/demo/index.min.js +48 -14
  9. package/components/combobox/dist/index.js +48 -14
  10. package/components/combobox/dist/registered.js +48 -14
  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/customize.min.js +13 -4
  16. package/components/datepicker/demo/index.min.js +13 -4
  17. package/components/datepicker/dist/index.js +13 -4
  18. package/components/datepicker/dist/registered.js +13 -4
  19. package/components/dropdown/demo/customize.min.js +1 -1
  20. package/components/dropdown/demo/getting-started.min.js +1 -1
  21. package/components/dropdown/demo/index.min.js +1 -1
  22. package/components/dropdown/dist/index.js +1 -1
  23. package/components/dropdown/dist/registered.js +1 -1
  24. package/components/form/demo/customize.min.js +78 -26
  25. package/components/form/demo/getting-started.min.js +78 -26
  26. package/components/form/demo/index.min.js +78 -26
  27. package/components/form/demo/registerDemoDeps.min.js +78 -26
  28. package/components/input/demo/customize.min.js +11 -2
  29. package/components/input/demo/getting-started.min.js +11 -2
  30. package/components/input/demo/index.min.js +11 -2
  31. package/components/input/dist/index.js +11 -2
  32. package/components/input/dist/registered.js +11 -2
  33. package/components/radio/demo/customize.min.js +1 -1
  34. package/components/radio/demo/getting-started.min.js +1 -1
  35. package/components/radio/demo/index.min.js +1 -1
  36. package/components/radio/dist/index.js +1 -1
  37. package/components/radio/dist/registered.js +1 -1
  38. package/components/select/demo/customize.min.js +2 -2
  39. package/components/select/demo/getting-started.min.js +2 -2
  40. package/components/select/demo/index.min.js +2 -2
  41. package/components/select/dist/index.js +2 -2
  42. package/components/select/dist/registered.js +2 -2
  43. package/package.json +1 -1
@@ -1275,7 +1275,7 @@ class AuroHelpText extends i$2 {
1275
1275
  }
1276
1276
  }
1277
1277
 
1278
- var formkitVersion = '202607102138';
1278
+ var formkitVersion = '202607152206';
1279
1279
 
1280
1280
  // Copyright (c) 2026 Alaska Airlines. All rights reserved. Licensed under the Apache-2.0 license
1281
1281
  // See LICENSE in the project root for license information.
@@ -1275,7 +1275,7 @@ class AuroHelpText extends i$2 {
1275
1275
  }
1276
1276
  }
1277
1277
 
1278
- var formkitVersion = '202607102138';
1278
+ var formkitVersion = '202607152206';
1279
1279
 
1280
1280
  // Copyright (c) 2026 Alaska Airlines. All rights reserved. Licensed under the Apache-2.0 license
1281
1281
  // See LICENSE in the project root for license information.
@@ -1275,7 +1275,7 @@ class AuroHelpText extends i$2 {
1275
1275
  }
1276
1276
  }
1277
1277
 
1278
- var formkitVersion = '202607102138';
1278
+ var formkitVersion = '202607152206';
1279
1279
 
1280
1280
  // Copyright (c) 2026 Alaska Airlines. All rights reserved. Licensed under the Apache-2.0 license
1281
1281
  // See LICENSE in the project root for license information.
@@ -1228,7 +1228,7 @@ class AuroHelpText extends LitElement {
1228
1228
  }
1229
1229
  }
1230
1230
 
1231
- var formkitVersion = '202607102138';
1231
+ var formkitVersion = '202607152206';
1232
1232
 
1233
1233
  // Copyright (c) 2026 Alaska Airlines. All rights reserved. Licensed under the Apache-2.0 license
1234
1234
  // See LICENSE in the project root for license information.
@@ -1228,7 +1228,7 @@ class AuroHelpText extends LitElement {
1228
1228
  }
1229
1229
  }
1230
1230
 
1231
- var formkitVersion = '202607102138';
1231
+ var formkitVersion = '202607152206';
1232
1232
 
1233
1233
  // Copyright (c) 2026 Alaska Airlines. All rights reserved. Licensed under the Apache-2.0 license
1234
1234
  // See LICENSE in the project root for license information.
@@ -4971,7 +4971,7 @@ let AuroHelpText$2 = class AuroHelpText extends i$3 {
4971
4971
  }
4972
4972
  };
4973
4973
 
4974
- var formkitVersion$2 = '202607102138';
4974
+ var formkitVersion$2 = '202607152206';
4975
4975
 
4976
4976
  let AuroElement$2 = class AuroElement extends i$3 {
4977
4977
  static get properties() {
@@ -18600,7 +18600,7 @@ let AuroHelpText$1 = class AuroHelpText extends i$3 {
18600
18600
  }
18601
18601
  };
18602
18602
 
18603
- var formkitVersion$1 = '202607102138';
18603
+ var formkitVersion$1 = '202607152206';
18604
18604
 
18605
18605
  // Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
18606
18606
  // See LICENSE in the project root for license information.
@@ -18891,7 +18891,16 @@ class AuroInput extends BaseInput {
18891
18891
  // directly to auro-input's light DOM alongside the forwarder still
18892
18892
  // counts as content. The prior nodes[0].tagName === 'SLOT' recursion
18893
18893
  // discarded any siblings past the forwarder.
18894
- const slot = this.shadowRoot.querySelector('slot[name="displayValue"]');
18894
+ const slot = this.shadowRoot?.querySelector('slot[name="displayValue"]');
18895
+ if (!slot) {
18896
+ // Shadow root not yet rendered — fall back to checking light-DOM
18897
+ // children so hasDisplayValueContent isn't stuck false after an
18898
+ // early call from auro-combobox during mount.
18899
+ this.hasDisplayValueContent = Boolean(
18900
+ this.querySelector('[slot="displayValue"]:not(slot)')
18901
+ );
18902
+ return;
18903
+ }
18895
18904
  const nodes = slot.assignedNodes({ flatten: true });
18896
18905
 
18897
18906
  this.hasDisplayValueContent = nodes.length > 0;
@@ -19721,7 +19730,7 @@ class AuroBibtemplate extends i$3 {
19721
19730
  }
19722
19731
  }
19723
19732
 
19724
- var formkitVersion = '202607102138';
19733
+ var formkitVersion = '202607152206';
19725
19734
 
19726
19735
  var styleCss$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}`;
19727
19736
 
@@ -20758,14 +20767,28 @@ class AuroCombobox extends AuroElement {
20758
20767
  const displayValueEl = this.menu.optionSelected.querySelector("[slot='displayValue']");
20759
20768
  if (displayValueEl) {
20760
20769
  this.input.appendChild(displayValueEl.cloneNode(true));
20761
- // auro-input's hasDisplayValueContent is non-reactive; nudge it to
20762
- // re-evaluate the slot and re-render so the displayValue wrapper
20763
- // gets its hasContent class. Without this, the apple/icon stays
20764
- // hidden when input.value is set in the same tick as the append.
20765
- if (typeof this.input.checkDisplayValueSlotChange === 'function') {
20766
- this.input.checkDisplayValueSlotChange();
20767
- this.input.requestUpdate();
20768
- }
20770
+ }
20771
+
20772
+ // auro-input's hasDisplayValueContent is non-reactive; nudge it to
20773
+ // re-evaluate the slot and re-render so the displayValue wrapper
20774
+ // gets its hasContent class. Without this, the apple/icon stays
20775
+ // hidden when input.value is set in the same tick as the append.
20776
+ if (typeof this.input.checkDisplayValueSlotChange === 'function') {
20777
+ this.input.checkDisplayValueSlotChange();
20778
+ this.input.requestUpdate();
20779
+ }
20780
+ } else if (this.value) {
20781
+ // No optionSelected yet (e.g. setMenuValue was called but the menu's
20782
+ // auroMenu-selectedOption event hasn't fired yet, or we're on remount
20783
+ // with no options loaded). Synthesize a displayValue from the value so
20784
+ // the overlay isn't blank.
20785
+ const syntheticDV = document.createElement('span');
20786
+ syntheticDV.setAttribute('slot', 'displayValue');
20787
+ syntheticDV.textContent = this.value;
20788
+ this.input.appendChild(syntheticDV);
20789
+ if (typeof this.input.checkDisplayValueSlotChange === 'function') {
20790
+ this.input.checkDisplayValueSlotChange();
20791
+ this.input.requestUpdate();
20769
20792
  }
20770
20793
  }
20771
20794
 
@@ -21515,6 +21538,15 @@ class AuroCombobox extends AuroElement {
21515
21538
  * @returns {void}
21516
21539
  */
21517
21540
  handleTriggerInputValueChange(event) {
21541
+ // Clear a stale _programmaticFilterRefresh when the user is genuinely
21542
+ // interacting. On mount, updated('value') sets the flag, but the early
21543
+ // return at `this.value === this.input.value` exits before clearing it.
21544
+ // Without this, the first keystroke after mount fails to set _userTyped
21545
+ // and the bib doesn't open.
21546
+ if (this._programmaticFilterRefresh && this.componentHasFocus) {
21547
+ this._programmaticFilterRefresh = false;
21548
+ }
21549
+
21518
21550
  // 'input' fires for every user-initiated value change — typing, paste,
21519
21551
  // IME composition end, dead-key composition, drag-drop. Flip _userTyped
21520
21552
  // here so updated('availableOptions') auto-opens the bib for sources
@@ -21554,10 +21586,12 @@ class AuroCombobox extends AuroElement {
21554
21586
  inputResolver: (comp, ctx) => (ctx.isModal && comp.inputInBib ? comp.inputInBib : comp.input),
21555
21587
  });
21556
21588
 
21557
- this.addEventListener('focusin', () => {
21589
+ this.addEventListener('focusin', (event) => {
21558
21590
  this.touched = true;
21559
21591
 
21560
- this.focus();
21592
+ if (event.composedPath()[0] === this) {
21593
+ this.focus();
21594
+ }
21561
21595
  });
21562
21596
 
21563
21597
  this.addEventListener('auroFormElement-validated', (evt) => {
@@ -4971,7 +4971,7 @@ let AuroHelpText$2 = class AuroHelpText extends i$3 {
4971
4971
  }
4972
4972
  };
4973
4973
 
4974
- var formkitVersion$2 = '202607102138';
4974
+ var formkitVersion$2 = '202607152206';
4975
4975
 
4976
4976
  let AuroElement$2 = class AuroElement extends i$3 {
4977
4977
  static get properties() {
@@ -18600,7 +18600,7 @@ let AuroHelpText$1 = class AuroHelpText extends i$3 {
18600
18600
  }
18601
18601
  };
18602
18602
 
18603
- var formkitVersion$1 = '202607102138';
18603
+ var formkitVersion$1 = '202607152206';
18604
18604
 
18605
18605
  // Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
18606
18606
  // See LICENSE in the project root for license information.
@@ -18891,7 +18891,16 @@ class AuroInput extends BaseInput {
18891
18891
  // directly to auro-input's light DOM alongside the forwarder still
18892
18892
  // counts as content. The prior nodes[0].tagName === 'SLOT' recursion
18893
18893
  // discarded any siblings past the forwarder.
18894
- const slot = this.shadowRoot.querySelector('slot[name="displayValue"]');
18894
+ const slot = this.shadowRoot?.querySelector('slot[name="displayValue"]');
18895
+ if (!slot) {
18896
+ // Shadow root not yet rendered — fall back to checking light-DOM
18897
+ // children so hasDisplayValueContent isn't stuck false after an
18898
+ // early call from auro-combobox during mount.
18899
+ this.hasDisplayValueContent = Boolean(
18900
+ this.querySelector('[slot="displayValue"]:not(slot)')
18901
+ );
18902
+ return;
18903
+ }
18895
18904
  const nodes = slot.assignedNodes({ flatten: true });
18896
18905
 
18897
18906
  this.hasDisplayValueContent = nodes.length > 0;
@@ -19721,7 +19730,7 @@ class AuroBibtemplate extends i$3 {
19721
19730
  }
19722
19731
  }
19723
19732
 
19724
- var formkitVersion = '202607102138';
19733
+ var formkitVersion = '202607152206';
19725
19734
 
19726
19735
  var styleCss$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}`;
19727
19736
 
@@ -20758,14 +20767,28 @@ class AuroCombobox extends AuroElement {
20758
20767
  const displayValueEl = this.menu.optionSelected.querySelector("[slot='displayValue']");
20759
20768
  if (displayValueEl) {
20760
20769
  this.input.appendChild(displayValueEl.cloneNode(true));
20761
- // auro-input's hasDisplayValueContent is non-reactive; nudge it to
20762
- // re-evaluate the slot and re-render so the displayValue wrapper
20763
- // gets its hasContent class. Without this, the apple/icon stays
20764
- // hidden when input.value is set in the same tick as the append.
20765
- if (typeof this.input.checkDisplayValueSlotChange === 'function') {
20766
- this.input.checkDisplayValueSlotChange();
20767
- this.input.requestUpdate();
20768
- }
20770
+ }
20771
+
20772
+ // auro-input's hasDisplayValueContent is non-reactive; nudge it to
20773
+ // re-evaluate the slot and re-render so the displayValue wrapper
20774
+ // gets its hasContent class. Without this, the apple/icon stays
20775
+ // hidden when input.value is set in the same tick as the append.
20776
+ if (typeof this.input.checkDisplayValueSlotChange === 'function') {
20777
+ this.input.checkDisplayValueSlotChange();
20778
+ this.input.requestUpdate();
20779
+ }
20780
+ } else if (this.value) {
20781
+ // No optionSelected yet (e.g. setMenuValue was called but the menu's
20782
+ // auroMenu-selectedOption event hasn't fired yet, or we're on remount
20783
+ // with no options loaded). Synthesize a displayValue from the value so
20784
+ // the overlay isn't blank.
20785
+ const syntheticDV = document.createElement('span');
20786
+ syntheticDV.setAttribute('slot', 'displayValue');
20787
+ syntheticDV.textContent = this.value;
20788
+ this.input.appendChild(syntheticDV);
20789
+ if (typeof this.input.checkDisplayValueSlotChange === 'function') {
20790
+ this.input.checkDisplayValueSlotChange();
20791
+ this.input.requestUpdate();
20769
20792
  }
20770
20793
  }
20771
20794
 
@@ -21515,6 +21538,15 @@ class AuroCombobox extends AuroElement {
21515
21538
  * @returns {void}
21516
21539
  */
21517
21540
  handleTriggerInputValueChange(event) {
21541
+ // Clear a stale _programmaticFilterRefresh when the user is genuinely
21542
+ // interacting. On mount, updated('value') sets the flag, but the early
21543
+ // return at `this.value === this.input.value` exits before clearing it.
21544
+ // Without this, the first keystroke after mount fails to set _userTyped
21545
+ // and the bib doesn't open.
21546
+ if (this._programmaticFilterRefresh && this.componentHasFocus) {
21547
+ this._programmaticFilterRefresh = false;
21548
+ }
21549
+
21518
21550
  // 'input' fires for every user-initiated value change — typing, paste,
21519
21551
  // IME composition end, dead-key composition, drag-drop. Flip _userTyped
21520
21552
  // here so updated('availableOptions') auto-opens the bib for sources
@@ -21554,10 +21586,12 @@ class AuroCombobox extends AuroElement {
21554
21586
  inputResolver: (comp, ctx) => (ctx.isModal && comp.inputInBib ? comp.inputInBib : comp.input),
21555
21587
  });
21556
21588
 
21557
- this.addEventListener('focusin', () => {
21589
+ this.addEventListener('focusin', (event) => {
21558
21590
  this.touched = true;
21559
21591
 
21560
- this.focus();
21592
+ if (event.composedPath()[0] === this) {
21593
+ this.focus();
21594
+ }
21561
21595
  });
21562
21596
 
21563
21597
  this.addEventListener('auroFormElement-validated', (evt) => {
@@ -4986,7 +4986,7 @@ let AuroHelpText$2 = class AuroHelpText extends i$3 {
4986
4986
  }
4987
4987
  };
4988
4988
 
4989
- var formkitVersion$2 = '202607102138';
4989
+ var formkitVersion$2 = '202607152206';
4990
4990
 
4991
4991
  let AuroElement$2 = class AuroElement extends i$3 {
4992
4992
  static get properties() {
@@ -18615,7 +18615,7 @@ let AuroHelpText$1 = class AuroHelpText extends i$3 {
18615
18615
  }
18616
18616
  };
18617
18617
 
18618
- var formkitVersion$1 = '202607102138';
18618
+ var formkitVersion$1 = '202607152206';
18619
18619
 
18620
18620
  // Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
18621
18621
  // See LICENSE in the project root for license information.
@@ -18906,7 +18906,16 @@ class AuroInput extends BaseInput {
18906
18906
  // directly to auro-input's light DOM alongside the forwarder still
18907
18907
  // counts as content. The prior nodes[0].tagName === 'SLOT' recursion
18908
18908
  // discarded any siblings past the forwarder.
18909
- const slot = this.shadowRoot.querySelector('slot[name="displayValue"]');
18909
+ const slot = this.shadowRoot?.querySelector('slot[name="displayValue"]');
18910
+ if (!slot) {
18911
+ // Shadow root not yet rendered — fall back to checking light-DOM
18912
+ // children so hasDisplayValueContent isn't stuck false after an
18913
+ // early call from auro-combobox during mount.
18914
+ this.hasDisplayValueContent = Boolean(
18915
+ this.querySelector('[slot="displayValue"]:not(slot)')
18916
+ );
18917
+ return;
18918
+ }
18910
18919
  const nodes = slot.assignedNodes({ flatten: true });
18911
18920
 
18912
18921
  this.hasDisplayValueContent = nodes.length > 0;
@@ -19736,7 +19745,7 @@ class AuroBibtemplate extends i$3 {
19736
19745
  }
19737
19746
  }
19738
19747
 
19739
- var formkitVersion = '202607102138';
19748
+ var formkitVersion = '202607152206';
19740
19749
 
19741
19750
  var styleCss$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}`;
19742
19751
 
@@ -20773,14 +20782,28 @@ class AuroCombobox extends AuroElement {
20773
20782
  const displayValueEl = this.menu.optionSelected.querySelector("[slot='displayValue']");
20774
20783
  if (displayValueEl) {
20775
20784
  this.input.appendChild(displayValueEl.cloneNode(true));
20776
- // auro-input's hasDisplayValueContent is non-reactive; nudge it to
20777
- // re-evaluate the slot and re-render so the displayValue wrapper
20778
- // gets its hasContent class. Without this, the apple/icon stays
20779
- // hidden when input.value is set in the same tick as the append.
20780
- if (typeof this.input.checkDisplayValueSlotChange === 'function') {
20781
- this.input.checkDisplayValueSlotChange();
20782
- this.input.requestUpdate();
20783
- }
20785
+ }
20786
+
20787
+ // auro-input's hasDisplayValueContent is non-reactive; nudge it to
20788
+ // re-evaluate the slot and re-render so the displayValue wrapper
20789
+ // gets its hasContent class. Without this, the apple/icon stays
20790
+ // hidden when input.value is set in the same tick as the append.
20791
+ if (typeof this.input.checkDisplayValueSlotChange === 'function') {
20792
+ this.input.checkDisplayValueSlotChange();
20793
+ this.input.requestUpdate();
20794
+ }
20795
+ } else if (this.value) {
20796
+ // No optionSelected yet (e.g. setMenuValue was called but the menu's
20797
+ // auroMenu-selectedOption event hasn't fired yet, or we're on remount
20798
+ // with no options loaded). Synthesize a displayValue from the value so
20799
+ // the overlay isn't blank.
20800
+ const syntheticDV = document.createElement('span');
20801
+ syntheticDV.setAttribute('slot', 'displayValue');
20802
+ syntheticDV.textContent = this.value;
20803
+ this.input.appendChild(syntheticDV);
20804
+ if (typeof this.input.checkDisplayValueSlotChange === 'function') {
20805
+ this.input.checkDisplayValueSlotChange();
20806
+ this.input.requestUpdate();
20784
20807
  }
20785
20808
  }
20786
20809
 
@@ -21530,6 +21553,15 @@ class AuroCombobox extends AuroElement {
21530
21553
  * @returns {void}
21531
21554
  */
21532
21555
  handleTriggerInputValueChange(event) {
21556
+ // Clear a stale _programmaticFilterRefresh when the user is genuinely
21557
+ // interacting. On mount, updated('value') sets the flag, but the early
21558
+ // return at `this.value === this.input.value` exits before clearing it.
21559
+ // Without this, the first keystroke after mount fails to set _userTyped
21560
+ // and the bib doesn't open.
21561
+ if (this._programmaticFilterRefresh && this.componentHasFocus) {
21562
+ this._programmaticFilterRefresh = false;
21563
+ }
21564
+
21533
21565
  // 'input' fires for every user-initiated value change — typing, paste,
21534
21566
  // IME composition end, dead-key composition, drag-drop. Flip _userTyped
21535
21567
  // here so updated('availableOptions') auto-opens the bib for sources
@@ -21569,10 +21601,12 @@ class AuroCombobox extends AuroElement {
21569
21601
  inputResolver: (comp, ctx) => (ctx.isModal && comp.inputInBib ? comp.inputInBib : comp.input),
21570
21602
  });
21571
21603
 
21572
- this.addEventListener('focusin', () => {
21604
+ this.addEventListener('focusin', (event) => {
21573
21605
  this.touched = true;
21574
21606
 
21575
- this.focus();
21607
+ if (event.composedPath()[0] === this) {
21608
+ this.focus();
21609
+ }
21576
21610
  });
21577
21611
 
21578
21612
  this.addEventListener('auroFormElement-validated', (evt) => {
@@ -4904,7 +4904,7 @@ let AuroHelpText$2 = class AuroHelpText extends LitElement {
4904
4904
  }
4905
4905
  };
4906
4906
 
4907
- var formkitVersion$2 = '202607102138';
4907
+ var formkitVersion$2 = '202607152206';
4908
4908
 
4909
4909
  let AuroElement$2 = class AuroElement extends LitElement {
4910
4910
  static get properties() {
@@ -18526,7 +18526,7 @@ let AuroHelpText$1 = class AuroHelpText extends LitElement {
18526
18526
  }
18527
18527
  };
18528
18528
 
18529
- var formkitVersion$1 = '202607102138';
18529
+ var formkitVersion$1 = '202607152206';
18530
18530
 
18531
18531
  // Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
18532
18532
  // See LICENSE in the project root for license information.
@@ -18817,7 +18817,16 @@ class AuroInput extends BaseInput {
18817
18817
  // directly to auro-input's light DOM alongside the forwarder still
18818
18818
  // counts as content. The prior nodes[0].tagName === 'SLOT' recursion
18819
18819
  // discarded any siblings past the forwarder.
18820
- const slot = this.shadowRoot.querySelector('slot[name="displayValue"]');
18820
+ const slot = this.shadowRoot?.querySelector('slot[name="displayValue"]');
18821
+ if (!slot) {
18822
+ // Shadow root not yet rendered — fall back to checking light-DOM
18823
+ // children so hasDisplayValueContent isn't stuck false after an
18824
+ // early call from auro-combobox during mount.
18825
+ this.hasDisplayValueContent = Boolean(
18826
+ this.querySelector('[slot="displayValue"]:not(slot)')
18827
+ );
18828
+ return;
18829
+ }
18821
18830
  const nodes = slot.assignedNodes({ flatten: true });
18822
18831
 
18823
18832
  this.hasDisplayValueContent = nodes.length > 0;
@@ -19647,7 +19656,7 @@ class AuroBibtemplate extends LitElement {
19647
19656
  }
19648
19657
  }
19649
19658
 
19650
- var formkitVersion = '202607102138';
19659
+ var formkitVersion = '202607152206';
19651
19660
 
19652
19661
  var styleCss$1 = css`.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}`;
19653
19662
 
@@ -20684,14 +20693,28 @@ class AuroCombobox extends AuroElement {
20684
20693
  const displayValueEl = this.menu.optionSelected.querySelector("[slot='displayValue']");
20685
20694
  if (displayValueEl) {
20686
20695
  this.input.appendChild(displayValueEl.cloneNode(true));
20687
- // auro-input's hasDisplayValueContent is non-reactive; nudge it to
20688
- // re-evaluate the slot and re-render so the displayValue wrapper
20689
- // gets its hasContent class. Without this, the apple/icon stays
20690
- // hidden when input.value is set in the same tick as the append.
20691
- if (typeof this.input.checkDisplayValueSlotChange === 'function') {
20692
- this.input.checkDisplayValueSlotChange();
20693
- this.input.requestUpdate();
20694
- }
20696
+ }
20697
+
20698
+ // auro-input's hasDisplayValueContent is non-reactive; nudge it to
20699
+ // re-evaluate the slot and re-render so the displayValue wrapper
20700
+ // gets its hasContent class. Without this, the apple/icon stays
20701
+ // hidden when input.value is set in the same tick as the append.
20702
+ if (typeof this.input.checkDisplayValueSlotChange === 'function') {
20703
+ this.input.checkDisplayValueSlotChange();
20704
+ this.input.requestUpdate();
20705
+ }
20706
+ } else if (this.value) {
20707
+ // No optionSelected yet (e.g. setMenuValue was called but the menu's
20708
+ // auroMenu-selectedOption event hasn't fired yet, or we're on remount
20709
+ // with no options loaded). Synthesize a displayValue from the value so
20710
+ // the overlay isn't blank.
20711
+ const syntheticDV = document.createElement('span');
20712
+ syntheticDV.setAttribute('slot', 'displayValue');
20713
+ syntheticDV.textContent = this.value;
20714
+ this.input.appendChild(syntheticDV);
20715
+ if (typeof this.input.checkDisplayValueSlotChange === 'function') {
20716
+ this.input.checkDisplayValueSlotChange();
20717
+ this.input.requestUpdate();
20695
20718
  }
20696
20719
  }
20697
20720
 
@@ -21441,6 +21464,15 @@ class AuroCombobox extends AuroElement {
21441
21464
  * @returns {void}
21442
21465
  */
21443
21466
  handleTriggerInputValueChange(event) {
21467
+ // Clear a stale _programmaticFilterRefresh when the user is genuinely
21468
+ // interacting. On mount, updated('value') sets the flag, but the early
21469
+ // return at `this.value === this.input.value` exits before clearing it.
21470
+ // Without this, the first keystroke after mount fails to set _userTyped
21471
+ // and the bib doesn't open.
21472
+ if (this._programmaticFilterRefresh && this.componentHasFocus) {
21473
+ this._programmaticFilterRefresh = false;
21474
+ }
21475
+
21444
21476
  // 'input' fires for every user-initiated value change — typing, paste,
21445
21477
  // IME composition end, dead-key composition, drag-drop. Flip _userTyped
21446
21478
  // here so updated('availableOptions') auto-opens the bib for sources
@@ -21480,10 +21512,12 @@ class AuroCombobox extends AuroElement {
21480
21512
  inputResolver: (comp, ctx) => (ctx.isModal && comp.inputInBib ? comp.inputInBib : comp.input),
21481
21513
  });
21482
21514
 
21483
- this.addEventListener('focusin', () => {
21515
+ this.addEventListener('focusin', (event) => {
21484
21516
  this.touched = true;
21485
21517
 
21486
- this.focus();
21518
+ if (event.composedPath()[0] === this) {
21519
+ this.focus();
21520
+ }
21487
21521
  });
21488
21522
 
21489
21523
  this.addEventListener('auroFormElement-validated', (evt) => {
@@ -4904,7 +4904,7 @@ let AuroHelpText$2 = class AuroHelpText extends LitElement {
4904
4904
  }
4905
4905
  };
4906
4906
 
4907
- var formkitVersion$2 = '202607102138';
4907
+ var formkitVersion$2 = '202607152206';
4908
4908
 
4909
4909
  let AuroElement$2 = class AuroElement extends LitElement {
4910
4910
  static get properties() {
@@ -18526,7 +18526,7 @@ let AuroHelpText$1 = class AuroHelpText extends LitElement {
18526
18526
  }
18527
18527
  };
18528
18528
 
18529
- var formkitVersion$1 = '202607102138';
18529
+ var formkitVersion$1 = '202607152206';
18530
18530
 
18531
18531
  // Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
18532
18532
  // See LICENSE in the project root for license information.
@@ -18817,7 +18817,16 @@ class AuroInput extends BaseInput {
18817
18817
  // directly to auro-input's light DOM alongside the forwarder still
18818
18818
  // counts as content. The prior nodes[0].tagName === 'SLOT' recursion
18819
18819
  // discarded any siblings past the forwarder.
18820
- const slot = this.shadowRoot.querySelector('slot[name="displayValue"]');
18820
+ const slot = this.shadowRoot?.querySelector('slot[name="displayValue"]');
18821
+ if (!slot) {
18822
+ // Shadow root not yet rendered — fall back to checking light-DOM
18823
+ // children so hasDisplayValueContent isn't stuck false after an
18824
+ // early call from auro-combobox during mount.
18825
+ this.hasDisplayValueContent = Boolean(
18826
+ this.querySelector('[slot="displayValue"]:not(slot)')
18827
+ );
18828
+ return;
18829
+ }
18821
18830
  const nodes = slot.assignedNodes({ flatten: true });
18822
18831
 
18823
18832
  this.hasDisplayValueContent = nodes.length > 0;
@@ -19647,7 +19656,7 @@ class AuroBibtemplate extends LitElement {
19647
19656
  }
19648
19657
  }
19649
19658
 
19650
- var formkitVersion = '202607102138';
19659
+ var formkitVersion = '202607152206';
19651
19660
 
19652
19661
  var styleCss$1 = css`.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}`;
19653
19662
 
@@ -20684,14 +20693,28 @@ class AuroCombobox extends AuroElement {
20684
20693
  const displayValueEl = this.menu.optionSelected.querySelector("[slot='displayValue']");
20685
20694
  if (displayValueEl) {
20686
20695
  this.input.appendChild(displayValueEl.cloneNode(true));
20687
- // auro-input's hasDisplayValueContent is non-reactive; nudge it to
20688
- // re-evaluate the slot and re-render so the displayValue wrapper
20689
- // gets its hasContent class. Without this, the apple/icon stays
20690
- // hidden when input.value is set in the same tick as the append.
20691
- if (typeof this.input.checkDisplayValueSlotChange === 'function') {
20692
- this.input.checkDisplayValueSlotChange();
20693
- this.input.requestUpdate();
20694
- }
20696
+ }
20697
+
20698
+ // auro-input's hasDisplayValueContent is non-reactive; nudge it to
20699
+ // re-evaluate the slot and re-render so the displayValue wrapper
20700
+ // gets its hasContent class. Without this, the apple/icon stays
20701
+ // hidden when input.value is set in the same tick as the append.
20702
+ if (typeof this.input.checkDisplayValueSlotChange === 'function') {
20703
+ this.input.checkDisplayValueSlotChange();
20704
+ this.input.requestUpdate();
20705
+ }
20706
+ } else if (this.value) {
20707
+ // No optionSelected yet (e.g. setMenuValue was called but the menu's
20708
+ // auroMenu-selectedOption event hasn't fired yet, or we're on remount
20709
+ // with no options loaded). Synthesize a displayValue from the value so
20710
+ // the overlay isn't blank.
20711
+ const syntheticDV = document.createElement('span');
20712
+ syntheticDV.setAttribute('slot', 'displayValue');
20713
+ syntheticDV.textContent = this.value;
20714
+ this.input.appendChild(syntheticDV);
20715
+ if (typeof this.input.checkDisplayValueSlotChange === 'function') {
20716
+ this.input.checkDisplayValueSlotChange();
20717
+ this.input.requestUpdate();
20695
20718
  }
20696
20719
  }
20697
20720
 
@@ -21441,6 +21464,15 @@ class AuroCombobox extends AuroElement {
21441
21464
  * @returns {void}
21442
21465
  */
21443
21466
  handleTriggerInputValueChange(event) {
21467
+ // Clear a stale _programmaticFilterRefresh when the user is genuinely
21468
+ // interacting. On mount, updated('value') sets the flag, but the early
21469
+ // return at `this.value === this.input.value` exits before clearing it.
21470
+ // Without this, the first keystroke after mount fails to set _userTyped
21471
+ // and the bib doesn't open.
21472
+ if (this._programmaticFilterRefresh && this.componentHasFocus) {
21473
+ this._programmaticFilterRefresh = false;
21474
+ }
21475
+
21444
21476
  // 'input' fires for every user-initiated value change — typing, paste,
21445
21477
  // IME composition end, dead-key composition, drag-drop. Flip _userTyped
21446
21478
  // here so updated('availableOptions') auto-opens the bib for sources
@@ -21480,10 +21512,12 @@ class AuroCombobox extends AuroElement {
21480
21512
  inputResolver: (comp, ctx) => (ctx.isModal && comp.inputInBib ? comp.inputInBib : comp.input),
21481
21513
  });
21482
21514
 
21483
- this.addEventListener('focusin', () => {
21515
+ this.addEventListener('focusin', (event) => {
21484
21516
  this.touched = true;
21485
21517
 
21486
- this.focus();
21518
+ if (event.composedPath()[0] === this) {
21519
+ this.focus();
21520
+ }
21487
21521
  });
21488
21522
 
21489
21523
  this.addEventListener('auroFormElement-validated', (evt) => {
@@ -1114,7 +1114,7 @@ let AuroHelpText$1 = class AuroHelpText extends i$2 {
1114
1114
  }
1115
1115
  };
1116
1116
 
1117
- var formkitVersion$1 = '202607102138';
1117
+ var formkitVersion$1 = '202607152206';
1118
1118
 
1119
1119
  // Copyright (c) 2026 Alaska Airlines. All rights reserved. Licensed under the Apache-2.0 license
1120
1120
  // See LICENSE in the project root for license information.
@@ -5280,7 +5280,7 @@ class AuroHelpText extends i$2 {
5280
5280
  }
5281
5281
  }
5282
5282
 
5283
- var formkitVersion = '202607102138';
5283
+ var formkitVersion = '202607152206';
5284
5284
 
5285
5285
  let AuroElement$1 = class AuroElement extends i$2 {
5286
5286
  static get properties() {
@@ -1114,7 +1114,7 @@ let AuroHelpText$1 = class AuroHelpText extends i$2 {
1114
1114
  }
1115
1115
  };
1116
1116
 
1117
- var formkitVersion$1 = '202607102138';
1117
+ var formkitVersion$1 = '202607152206';
1118
1118
 
1119
1119
  // Copyright (c) 2026 Alaska Airlines. All rights reserved. Licensed under the Apache-2.0 license
1120
1120
  // See LICENSE in the project root for license information.
@@ -5280,7 +5280,7 @@ class AuroHelpText extends i$2 {
5280
5280
  }
5281
5281
  }
5282
5282
 
5283
- var formkitVersion = '202607102138';
5283
+ var formkitVersion = '202607152206';
5284
5284
 
5285
5285
  let AuroElement$1 = class AuroElement extends i$2 {
5286
5286
  static get properties() {