@aurodesignsystem-dev/auro-formkit 0.0.0-pr1554.9 → 0.0.0-pr1555.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 (45) 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 +37 -16
  7. package/components/combobox/demo/getting-started.min.js +37 -16
  8. package/components/combobox/demo/index.min.js +37 -16
  9. package/components/combobox/dist/index.js +37 -16
  10. package/components/combobox/dist/registered.js +37 -16
  11. package/components/counter/demo/customize.min.js +18 -7
  12. package/components/counter/demo/index.min.js +18 -7
  13. package/components/counter/dist/index.js +18 -7
  14. package/components/counter/dist/registered.js +18 -7
  15. package/components/datepicker/demo/customize.min.js +36 -17
  16. package/components/datepicker/demo/index.min.js +36 -17
  17. package/components/datepicker/dist/index.js +36 -17
  18. package/components/datepicker/dist/registered.js +36 -17
  19. package/components/dropdown/demo/customize.min.js +17 -6
  20. package/components/dropdown/demo/getting-started.min.js +17 -6
  21. package/components/dropdown/demo/index.min.js +17 -6
  22. package/components/dropdown/dist/auro-dropdown.d.ts +8 -0
  23. package/components/dropdown/dist/index.js +17 -6
  24. package/components/dropdown/dist/registered.js +17 -6
  25. package/components/form/demo/customize.min.js +126 -56
  26. package/components/form/demo/getting-started.min.js +126 -56
  27. package/components/form/demo/index.min.js +126 -56
  28. package/components/form/demo/registerDemoDeps.min.js +126 -56
  29. package/components/input/demo/customize.min.js +15 -7
  30. package/components/input/demo/getting-started.min.js +15 -7
  31. package/components/input/demo/index.min.js +15 -7
  32. package/components/input/dist/index.js +15 -7
  33. package/components/input/dist/registered.js +15 -7
  34. package/components/radio/demo/customize.min.js +1 -1
  35. package/components/radio/demo/getting-started.min.js +1 -1
  36. package/components/radio/demo/index.min.js +1 -1
  37. package/components/radio/dist/index.js +1 -1
  38. package/components/radio/dist/registered.js +1 -1
  39. package/components/select/demo/customize.min.js +18 -7
  40. package/components/select/demo/getting-started.min.js +18 -7
  41. package/components/select/demo/index.min.js +18 -7
  42. package/components/select/dist/index.js +18 -7
  43. package/components/select/dist/registered.js +18 -7
  44. package/custom-elements.json +1527 -1517
  45. package/package.json +1 -1
@@ -1275,7 +1275,7 @@ class AuroHelpText extends i$2 {
1275
1275
  }
1276
1276
  }
1277
1277
 
1278
- var formkitVersion = '202607160654';
1278
+ var formkitVersion = '202607162024';
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 = '202607160654';
1278
+ var formkitVersion = '202607162024';
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 = '202607160654';
1278
+ var formkitVersion = '202607162024';
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 = '202607160654';
1231
+ var formkitVersion = '202607162024';
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 = '202607160654';
1231
+ var formkitVersion = '202607162024';
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 = '202607160654';
4974
+ var formkitVersion$2 = '202607162024';
4975
4975
 
4976
4976
  let AuroElement$2 = class AuroElement extends i$3 {
4977
4977
  static get properties() {
@@ -5111,6 +5111,15 @@ class AuroDropdown extends AuroElement$2 {
5111
5111
  this.matchWidth = false;
5112
5112
  this.noHideOnThisFocusLoss = false;
5113
5113
 
5114
+ /**
5115
+ * When true, the dropdown skips its generic focus restoration on close.
5116
+ * Set by consumers (e.g. combobox) that manage their own focus routing
5117
+ * via setClearBtnFocus / setInputFocus / keyboard strategy.
5118
+ * Separate from noHideOnThisFocusLoss (which controls auto-close behavior).
5119
+ * @private
5120
+ */
5121
+ this.noFocusRestoreOnClose = false;
5122
+
5114
5123
  this.errorMessage = undefined; // TODO - check with Doug if there is still more to do here
5115
5124
 
5116
5125
  // Layout Config
@@ -5287,7 +5296,7 @@ class AuroDropdown extends AuroElement$2 {
5287
5296
  const assigned = slot.assignedElements();
5288
5297
  for (const el of assigned) {
5289
5298
  if (el.hasAttribute('disabled')) {
5290
- continue;
5299
+ continue; // eslint-disable-line no-continue
5291
5300
  }
5292
5301
  // Try finding a focusable descendant first (handles non-focusable
5293
5302
  // wrappers like <div> containing a <button>). If none found, try
@@ -5299,7 +5308,9 @@ class AuroDropdown extends AuroElement$2 {
5299
5308
  return;
5300
5309
  }
5301
5310
  el.focus();
5302
- return;
5311
+ if (document.activeElement === el) {
5312
+ return;
5313
+ }
5303
5314
  }
5304
5315
  }
5305
5316
  // Fallback: try DOM children (non-slotted content)
@@ -5759,7 +5770,7 @@ class AuroDropdown extends AuroElement$2 {
5759
5770
  }
5760
5771
 
5761
5772
  const eventType = event.detail.eventType || "unknown";
5762
- if (!this.isPopoverVisible && this.hasFocus && eventType === "keydown") {
5773
+ if (!this.isPopoverVisible && this.hasFocus && eventType === "keydown" && !this.noFocusRestoreOnClose) {
5763
5774
  this.focusTrigger();
5764
5775
  }
5765
5776
 
@@ -5767,9 +5778,9 @@ class AuroDropdown extends AuroElement$2 {
5767
5778
  // On Tab-driven close (eventType "focusloss"), let focus advance naturally
5768
5779
  // — restoring to the trigger would trap the user on this dropdown, forcing
5769
5780
  // an extra Tab to move on. Escape and outside-click still restore.
5770
- // When noHideOnThisFocusLoss is true, the consumer (e.g. combobox) manages
5781
+ // When noFocusRestoreOnClose is true, the consumer (e.g. combobox) manages
5771
5782
  // its own focus restoration — skip the generic trigger focus to avoid races.
5772
- if (!this.isPopoverVisible && eventType !== "focusloss" && !this.noHideOnThisFocusLoss) {
5783
+ if (!this.isPopoverVisible && eventType !== "focusloss" && !this.noFocusRestoreOnClose) {
5773
5784
  // wait til the bib gets fully closed and rendered
5774
5785
  setTimeout(() => {
5775
5786
  // Skip if the bib re-opened, or if focus moved intentionally outside the dropdown (not to body).
@@ -18642,7 +18653,7 @@ let AuroHelpText$1 = class AuroHelpText extends i$3 {
18642
18653
  }
18643
18654
  };
18644
18655
 
18645
- var formkitVersion$1 = '202607160654';
18656
+ var formkitVersion$1 = '202607162024';
18646
18657
 
18647
18658
  // Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
18648
18659
  // See LICENSE in the project root for license information.
@@ -18935,12 +18946,16 @@ class AuroInput extends BaseInput {
18935
18946
  // before firstUpdated (e.g. from auro-combobox during mount).
18936
18947
  // Check for any element (including custom elements like <auro-icon>
18937
18948
  // that render via shadow DOM with no text content).
18938
- const lightDomContent = this.querySelector('[slot="displayValue"]:not(slot)');
18939
- this.hasDisplayValueContent = Boolean(lightDomContent && (
18940
- lightDomContent.textContent.trim().length > 0 ||
18941
- lightDomContent.children.length > 0 ||
18942
- lightDomContent.shadowRoot !== null
18949
+ const lightDomNodes = Array.from(this.querySelectorAll('[slot="displayValue"]:not(slot)'));
18950
+ const hasContent = lightDomNodes.some((node) => (
18951
+ node.textContent.trim().length > 0 ||
18952
+ node.children.length > 0 ||
18953
+ node.shadowRoot !== null
18943
18954
  ));
18955
+ if (this.hasDisplayValueContent !== hasContent) {
18956
+ this.hasDisplayValueContent = hasContent;
18957
+ this.requestUpdate();
18958
+ }
18944
18959
  return;
18945
18960
  }
18946
18961
  const nodes = slot.assignedNodes({ flatten: true });
@@ -18953,7 +18968,7 @@ class AuroInput extends BaseInput {
18953
18968
  // being visible on preset/deeplink load.
18954
18969
  // Custom elements (e.g. <auro-icon>) that render via shadow DOM are
18955
18970
  // treated as content even when they have no text or light-DOM children.
18956
- this.hasDisplayValueContent = nodes.some((node) => {
18971
+ const hasContent = nodes.some((node) => {
18957
18972
  if (node.nodeType === Node.TEXT_NODE) {
18958
18973
  return node.textContent.trim().length > 0;
18959
18974
  }
@@ -18964,6 +18979,10 @@ class AuroInput extends BaseInput {
18964
18979
  }
18965
18980
  return false;
18966
18981
  });
18982
+ if (this.hasDisplayValueContent !== hasContent) {
18983
+ this.hasDisplayValueContent = hasContent;
18984
+ this.requestUpdate();
18985
+ }
18967
18986
  }
18968
18987
 
18969
18988
  firstUpdated() {
@@ -19790,7 +19809,7 @@ class AuroBibtemplate extends i$3 {
19790
19809
  }
19791
19810
  }
19792
19811
 
19793
- var formkitVersion = '202607160654';
19812
+ var formkitVersion = '202607162024';
19794
19813
 
19795
19814
  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}`;
19796
19815
 
@@ -20835,7 +20854,6 @@ class AuroCombobox extends AuroElement {
20835
20854
  // hidden when input.value is set in the same tick as the append.
20836
20855
  if (typeof this.input.checkDisplayValueSlotChange === 'function') {
20837
20856
  this.input.checkDisplayValueSlotChange();
20838
- this.input.requestUpdate();
20839
20857
  }
20840
20858
  } else if (this.value) {
20841
20859
  // No optionSelected yet (e.g. setMenuValue was called but the menu's
@@ -20856,7 +20874,6 @@ class AuroCombobox extends AuroElement {
20856
20874
  this.input.appendChild(syntheticDV);
20857
20875
  if (typeof this.input.checkDisplayValueSlotChange === 'function') {
20858
20876
  this.input.checkDisplayValueSlotChange();
20859
- this.input.requestUpdate();
20860
20877
  }
20861
20878
  }
20862
20879
 
@@ -21029,6 +21046,10 @@ class AuroCombobox extends AuroElement {
21029
21046
  // from combobox's light DOM and won't be detected by dropdown's contains() check.
21030
21047
  this.dropdown.noHideOnThisFocusLoss = true;
21031
21048
 
21049
+ // Suppress the dropdown's generic focus restoration on close — the combobox
21050
+ // manages its own focus via setClearBtnFocus / setInputFocus / keyboard strategy.
21051
+ this.dropdown.noFocusRestoreOnClose = true;
21052
+
21032
21053
  // Listen for the ID to be added to the dropdown so we can capture it and use it for accessibility.
21033
21054
  this.dropdown.addEventListener('auroDropdown-idAdded', (event) => {
21034
21055
  this.dropdownId = event.detail.id;
@@ -4971,7 +4971,7 @@ let AuroHelpText$2 = class AuroHelpText extends i$3 {
4971
4971
  }
4972
4972
  };
4973
4973
 
4974
- var formkitVersion$2 = '202607160654';
4974
+ var formkitVersion$2 = '202607162024';
4975
4975
 
4976
4976
  let AuroElement$2 = class AuroElement extends i$3 {
4977
4977
  static get properties() {
@@ -5111,6 +5111,15 @@ class AuroDropdown extends AuroElement$2 {
5111
5111
  this.matchWidth = false;
5112
5112
  this.noHideOnThisFocusLoss = false;
5113
5113
 
5114
+ /**
5115
+ * When true, the dropdown skips its generic focus restoration on close.
5116
+ * Set by consumers (e.g. combobox) that manage their own focus routing
5117
+ * via setClearBtnFocus / setInputFocus / keyboard strategy.
5118
+ * Separate from noHideOnThisFocusLoss (which controls auto-close behavior).
5119
+ * @private
5120
+ */
5121
+ this.noFocusRestoreOnClose = false;
5122
+
5114
5123
  this.errorMessage = undefined; // TODO - check with Doug if there is still more to do here
5115
5124
 
5116
5125
  // Layout Config
@@ -5287,7 +5296,7 @@ class AuroDropdown extends AuroElement$2 {
5287
5296
  const assigned = slot.assignedElements();
5288
5297
  for (const el of assigned) {
5289
5298
  if (el.hasAttribute('disabled')) {
5290
- continue;
5299
+ continue; // eslint-disable-line no-continue
5291
5300
  }
5292
5301
  // Try finding a focusable descendant first (handles non-focusable
5293
5302
  // wrappers like <div> containing a <button>). If none found, try
@@ -5299,7 +5308,9 @@ class AuroDropdown extends AuroElement$2 {
5299
5308
  return;
5300
5309
  }
5301
5310
  el.focus();
5302
- return;
5311
+ if (document.activeElement === el) {
5312
+ return;
5313
+ }
5303
5314
  }
5304
5315
  }
5305
5316
  // Fallback: try DOM children (non-slotted content)
@@ -5759,7 +5770,7 @@ class AuroDropdown extends AuroElement$2 {
5759
5770
  }
5760
5771
 
5761
5772
  const eventType = event.detail.eventType || "unknown";
5762
- if (!this.isPopoverVisible && this.hasFocus && eventType === "keydown") {
5773
+ if (!this.isPopoverVisible && this.hasFocus && eventType === "keydown" && !this.noFocusRestoreOnClose) {
5763
5774
  this.focusTrigger();
5764
5775
  }
5765
5776
 
@@ -5767,9 +5778,9 @@ class AuroDropdown extends AuroElement$2 {
5767
5778
  // On Tab-driven close (eventType "focusloss"), let focus advance naturally
5768
5779
  // — restoring to the trigger would trap the user on this dropdown, forcing
5769
5780
  // an extra Tab to move on. Escape and outside-click still restore.
5770
- // When noHideOnThisFocusLoss is true, the consumer (e.g. combobox) manages
5781
+ // When noFocusRestoreOnClose is true, the consumer (e.g. combobox) manages
5771
5782
  // its own focus restoration — skip the generic trigger focus to avoid races.
5772
- if (!this.isPopoverVisible && eventType !== "focusloss" && !this.noHideOnThisFocusLoss) {
5783
+ if (!this.isPopoverVisible && eventType !== "focusloss" && !this.noFocusRestoreOnClose) {
5773
5784
  // wait til the bib gets fully closed and rendered
5774
5785
  setTimeout(() => {
5775
5786
  // Skip if the bib re-opened, or if focus moved intentionally outside the dropdown (not to body).
@@ -18642,7 +18653,7 @@ let AuroHelpText$1 = class AuroHelpText extends i$3 {
18642
18653
  }
18643
18654
  };
18644
18655
 
18645
- var formkitVersion$1 = '202607160654';
18656
+ var formkitVersion$1 = '202607162024';
18646
18657
 
18647
18658
  // Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
18648
18659
  // See LICENSE in the project root for license information.
@@ -18935,12 +18946,16 @@ class AuroInput extends BaseInput {
18935
18946
  // before firstUpdated (e.g. from auro-combobox during mount).
18936
18947
  // Check for any element (including custom elements like <auro-icon>
18937
18948
  // that render via shadow DOM with no text content).
18938
- const lightDomContent = this.querySelector('[slot="displayValue"]:not(slot)');
18939
- this.hasDisplayValueContent = Boolean(lightDomContent && (
18940
- lightDomContent.textContent.trim().length > 0 ||
18941
- lightDomContent.children.length > 0 ||
18942
- lightDomContent.shadowRoot !== null
18949
+ const lightDomNodes = Array.from(this.querySelectorAll('[slot="displayValue"]:not(slot)'));
18950
+ const hasContent = lightDomNodes.some((node) => (
18951
+ node.textContent.trim().length > 0 ||
18952
+ node.children.length > 0 ||
18953
+ node.shadowRoot !== null
18943
18954
  ));
18955
+ if (this.hasDisplayValueContent !== hasContent) {
18956
+ this.hasDisplayValueContent = hasContent;
18957
+ this.requestUpdate();
18958
+ }
18944
18959
  return;
18945
18960
  }
18946
18961
  const nodes = slot.assignedNodes({ flatten: true });
@@ -18953,7 +18968,7 @@ class AuroInput extends BaseInput {
18953
18968
  // being visible on preset/deeplink load.
18954
18969
  // Custom elements (e.g. <auro-icon>) that render via shadow DOM are
18955
18970
  // treated as content even when they have no text or light-DOM children.
18956
- this.hasDisplayValueContent = nodes.some((node) => {
18971
+ const hasContent = nodes.some((node) => {
18957
18972
  if (node.nodeType === Node.TEXT_NODE) {
18958
18973
  return node.textContent.trim().length > 0;
18959
18974
  }
@@ -18964,6 +18979,10 @@ class AuroInput extends BaseInput {
18964
18979
  }
18965
18980
  return false;
18966
18981
  });
18982
+ if (this.hasDisplayValueContent !== hasContent) {
18983
+ this.hasDisplayValueContent = hasContent;
18984
+ this.requestUpdate();
18985
+ }
18967
18986
  }
18968
18987
 
18969
18988
  firstUpdated() {
@@ -19790,7 +19809,7 @@ class AuroBibtemplate extends i$3 {
19790
19809
  }
19791
19810
  }
19792
19811
 
19793
- var formkitVersion = '202607160654';
19812
+ var formkitVersion = '202607162024';
19794
19813
 
19795
19814
  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}`;
19796
19815
 
@@ -20835,7 +20854,6 @@ class AuroCombobox extends AuroElement {
20835
20854
  // hidden when input.value is set in the same tick as the append.
20836
20855
  if (typeof this.input.checkDisplayValueSlotChange === 'function') {
20837
20856
  this.input.checkDisplayValueSlotChange();
20838
- this.input.requestUpdate();
20839
20857
  }
20840
20858
  } else if (this.value) {
20841
20859
  // No optionSelected yet (e.g. setMenuValue was called but the menu's
@@ -20856,7 +20874,6 @@ class AuroCombobox extends AuroElement {
20856
20874
  this.input.appendChild(syntheticDV);
20857
20875
  if (typeof this.input.checkDisplayValueSlotChange === 'function') {
20858
20876
  this.input.checkDisplayValueSlotChange();
20859
- this.input.requestUpdate();
20860
20877
  }
20861
20878
  }
20862
20879
 
@@ -21029,6 +21046,10 @@ class AuroCombobox extends AuroElement {
21029
21046
  // from combobox's light DOM and won't be detected by dropdown's contains() check.
21030
21047
  this.dropdown.noHideOnThisFocusLoss = true;
21031
21048
 
21049
+ // Suppress the dropdown's generic focus restoration on close — the combobox
21050
+ // manages its own focus via setClearBtnFocus / setInputFocus / keyboard strategy.
21051
+ this.dropdown.noFocusRestoreOnClose = true;
21052
+
21032
21053
  // Listen for the ID to be added to the dropdown so we can capture it and use it for accessibility.
21033
21054
  this.dropdown.addEventListener('auroDropdown-idAdded', (event) => {
21034
21055
  this.dropdownId = event.detail.id;
@@ -4986,7 +4986,7 @@ let AuroHelpText$2 = class AuroHelpText extends i$3 {
4986
4986
  }
4987
4987
  };
4988
4988
 
4989
- var formkitVersion$2 = '202607160654';
4989
+ var formkitVersion$2 = '202607162024';
4990
4990
 
4991
4991
  let AuroElement$2 = class AuroElement extends i$3 {
4992
4992
  static get properties() {
@@ -5126,6 +5126,15 @@ class AuroDropdown extends AuroElement$2 {
5126
5126
  this.matchWidth = false;
5127
5127
  this.noHideOnThisFocusLoss = false;
5128
5128
 
5129
+ /**
5130
+ * When true, the dropdown skips its generic focus restoration on close.
5131
+ * Set by consumers (e.g. combobox) that manage their own focus routing
5132
+ * via setClearBtnFocus / setInputFocus / keyboard strategy.
5133
+ * Separate from noHideOnThisFocusLoss (which controls auto-close behavior).
5134
+ * @private
5135
+ */
5136
+ this.noFocusRestoreOnClose = false;
5137
+
5129
5138
  this.errorMessage = undefined; // TODO - check with Doug if there is still more to do here
5130
5139
 
5131
5140
  // Layout Config
@@ -5302,7 +5311,7 @@ class AuroDropdown extends AuroElement$2 {
5302
5311
  const assigned = slot.assignedElements();
5303
5312
  for (const el of assigned) {
5304
5313
  if (el.hasAttribute('disabled')) {
5305
- continue;
5314
+ continue; // eslint-disable-line no-continue
5306
5315
  }
5307
5316
  // Try finding a focusable descendant first (handles non-focusable
5308
5317
  // wrappers like <div> containing a <button>). If none found, try
@@ -5314,7 +5323,9 @@ class AuroDropdown extends AuroElement$2 {
5314
5323
  return;
5315
5324
  }
5316
5325
  el.focus();
5317
- return;
5326
+ if (document.activeElement === el) {
5327
+ return;
5328
+ }
5318
5329
  }
5319
5330
  }
5320
5331
  // Fallback: try DOM children (non-slotted content)
@@ -5774,7 +5785,7 @@ class AuroDropdown extends AuroElement$2 {
5774
5785
  }
5775
5786
 
5776
5787
  const eventType = event.detail.eventType || "unknown";
5777
- if (!this.isPopoverVisible && this.hasFocus && eventType === "keydown") {
5788
+ if (!this.isPopoverVisible && this.hasFocus && eventType === "keydown" && !this.noFocusRestoreOnClose) {
5778
5789
  this.focusTrigger();
5779
5790
  }
5780
5791
 
@@ -5782,9 +5793,9 @@ class AuroDropdown extends AuroElement$2 {
5782
5793
  // On Tab-driven close (eventType "focusloss"), let focus advance naturally
5783
5794
  // — restoring to the trigger would trap the user on this dropdown, forcing
5784
5795
  // an extra Tab to move on. Escape and outside-click still restore.
5785
- // When noHideOnThisFocusLoss is true, the consumer (e.g. combobox) manages
5796
+ // When noFocusRestoreOnClose is true, the consumer (e.g. combobox) manages
5786
5797
  // its own focus restoration — skip the generic trigger focus to avoid races.
5787
- if (!this.isPopoverVisible && eventType !== "focusloss" && !this.noHideOnThisFocusLoss) {
5798
+ if (!this.isPopoverVisible && eventType !== "focusloss" && !this.noFocusRestoreOnClose) {
5788
5799
  // wait til the bib gets fully closed and rendered
5789
5800
  setTimeout(() => {
5790
5801
  // Skip if the bib re-opened, or if focus moved intentionally outside the dropdown (not to body).
@@ -18657,7 +18668,7 @@ let AuroHelpText$1 = class AuroHelpText extends i$3 {
18657
18668
  }
18658
18669
  };
18659
18670
 
18660
- var formkitVersion$1 = '202607160654';
18671
+ var formkitVersion$1 = '202607162024';
18661
18672
 
18662
18673
  // Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
18663
18674
  // See LICENSE in the project root for license information.
@@ -18950,12 +18961,16 @@ class AuroInput extends BaseInput {
18950
18961
  // before firstUpdated (e.g. from auro-combobox during mount).
18951
18962
  // Check for any element (including custom elements like <auro-icon>
18952
18963
  // that render via shadow DOM with no text content).
18953
- const lightDomContent = this.querySelector('[slot="displayValue"]:not(slot)');
18954
- this.hasDisplayValueContent = Boolean(lightDomContent && (
18955
- lightDomContent.textContent.trim().length > 0 ||
18956
- lightDomContent.children.length > 0 ||
18957
- lightDomContent.shadowRoot !== null
18964
+ const lightDomNodes = Array.from(this.querySelectorAll('[slot="displayValue"]:not(slot)'));
18965
+ const hasContent = lightDomNodes.some((node) => (
18966
+ node.textContent.trim().length > 0 ||
18967
+ node.children.length > 0 ||
18968
+ node.shadowRoot !== null
18958
18969
  ));
18970
+ if (this.hasDisplayValueContent !== hasContent) {
18971
+ this.hasDisplayValueContent = hasContent;
18972
+ this.requestUpdate();
18973
+ }
18959
18974
  return;
18960
18975
  }
18961
18976
  const nodes = slot.assignedNodes({ flatten: true });
@@ -18968,7 +18983,7 @@ class AuroInput extends BaseInput {
18968
18983
  // being visible on preset/deeplink load.
18969
18984
  // Custom elements (e.g. <auro-icon>) that render via shadow DOM are
18970
18985
  // treated as content even when they have no text or light-DOM children.
18971
- this.hasDisplayValueContent = nodes.some((node) => {
18986
+ const hasContent = nodes.some((node) => {
18972
18987
  if (node.nodeType === Node.TEXT_NODE) {
18973
18988
  return node.textContent.trim().length > 0;
18974
18989
  }
@@ -18979,6 +18994,10 @@ class AuroInput extends BaseInput {
18979
18994
  }
18980
18995
  return false;
18981
18996
  });
18997
+ if (this.hasDisplayValueContent !== hasContent) {
18998
+ this.hasDisplayValueContent = hasContent;
18999
+ this.requestUpdate();
19000
+ }
18982
19001
  }
18983
19002
 
18984
19003
  firstUpdated() {
@@ -19805,7 +19824,7 @@ class AuroBibtemplate extends i$3 {
19805
19824
  }
19806
19825
  }
19807
19826
 
19808
- var formkitVersion = '202607160654';
19827
+ var formkitVersion = '202607162024';
19809
19828
 
19810
19829
  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}`;
19811
19830
 
@@ -20850,7 +20869,6 @@ class AuroCombobox extends AuroElement {
20850
20869
  // hidden when input.value is set in the same tick as the append.
20851
20870
  if (typeof this.input.checkDisplayValueSlotChange === 'function') {
20852
20871
  this.input.checkDisplayValueSlotChange();
20853
- this.input.requestUpdate();
20854
20872
  }
20855
20873
  } else if (this.value) {
20856
20874
  // No optionSelected yet (e.g. setMenuValue was called but the menu's
@@ -20871,7 +20889,6 @@ class AuroCombobox extends AuroElement {
20871
20889
  this.input.appendChild(syntheticDV);
20872
20890
  if (typeof this.input.checkDisplayValueSlotChange === 'function') {
20873
20891
  this.input.checkDisplayValueSlotChange();
20874
- this.input.requestUpdate();
20875
20892
  }
20876
20893
  }
20877
20894
 
@@ -21044,6 +21061,10 @@ class AuroCombobox extends AuroElement {
21044
21061
  // from combobox's light DOM and won't be detected by dropdown's contains() check.
21045
21062
  this.dropdown.noHideOnThisFocusLoss = true;
21046
21063
 
21064
+ // Suppress the dropdown's generic focus restoration on close — the combobox
21065
+ // manages its own focus via setClearBtnFocus / setInputFocus / keyboard strategy.
21066
+ this.dropdown.noFocusRestoreOnClose = true;
21067
+
21047
21068
  // Listen for the ID to be added to the dropdown so we can capture it and use it for accessibility.
21048
21069
  this.dropdown.addEventListener('auroDropdown-idAdded', (event) => {
21049
21070
  this.dropdownId = event.detail.id;
@@ -4904,7 +4904,7 @@ let AuroHelpText$2 = class AuroHelpText extends LitElement {
4904
4904
  }
4905
4905
  };
4906
4906
 
4907
- var formkitVersion$2 = '202607160654';
4907
+ var formkitVersion$2 = '202607162024';
4908
4908
 
4909
4909
  let AuroElement$2 = class AuroElement extends LitElement {
4910
4910
  static get properties() {
@@ -5044,6 +5044,15 @@ class AuroDropdown extends AuroElement$2 {
5044
5044
  this.matchWidth = false;
5045
5045
  this.noHideOnThisFocusLoss = false;
5046
5046
 
5047
+ /**
5048
+ * When true, the dropdown skips its generic focus restoration on close.
5049
+ * Set by consumers (e.g. combobox) that manage their own focus routing
5050
+ * via setClearBtnFocus / setInputFocus / keyboard strategy.
5051
+ * Separate from noHideOnThisFocusLoss (which controls auto-close behavior).
5052
+ * @private
5053
+ */
5054
+ this.noFocusRestoreOnClose = false;
5055
+
5047
5056
  this.errorMessage = undefined; // TODO - check with Doug if there is still more to do here
5048
5057
 
5049
5058
  // Layout Config
@@ -5220,7 +5229,7 @@ class AuroDropdown extends AuroElement$2 {
5220
5229
  const assigned = slot.assignedElements();
5221
5230
  for (const el of assigned) {
5222
5231
  if (el.hasAttribute('disabled')) {
5223
- continue;
5232
+ continue; // eslint-disable-line no-continue
5224
5233
  }
5225
5234
  // Try finding a focusable descendant first (handles non-focusable
5226
5235
  // wrappers like <div> containing a <button>). If none found, try
@@ -5232,7 +5241,9 @@ class AuroDropdown extends AuroElement$2 {
5232
5241
  return;
5233
5242
  }
5234
5243
  el.focus();
5235
- return;
5244
+ if (document.activeElement === el) {
5245
+ return;
5246
+ }
5236
5247
  }
5237
5248
  }
5238
5249
  // Fallback: try DOM children (non-slotted content)
@@ -5692,7 +5703,7 @@ class AuroDropdown extends AuroElement$2 {
5692
5703
  }
5693
5704
 
5694
5705
  const eventType = event.detail.eventType || "unknown";
5695
- if (!this.isPopoverVisible && this.hasFocus && eventType === "keydown") {
5706
+ if (!this.isPopoverVisible && this.hasFocus && eventType === "keydown" && !this.noFocusRestoreOnClose) {
5696
5707
  this.focusTrigger();
5697
5708
  }
5698
5709
 
@@ -5700,9 +5711,9 @@ class AuroDropdown extends AuroElement$2 {
5700
5711
  // On Tab-driven close (eventType "focusloss"), let focus advance naturally
5701
5712
  // — restoring to the trigger would trap the user on this dropdown, forcing
5702
5713
  // an extra Tab to move on. Escape and outside-click still restore.
5703
- // When noHideOnThisFocusLoss is true, the consumer (e.g. combobox) manages
5714
+ // When noFocusRestoreOnClose is true, the consumer (e.g. combobox) manages
5704
5715
  // its own focus restoration — skip the generic trigger focus to avoid races.
5705
- if (!this.isPopoverVisible && eventType !== "focusloss" && !this.noHideOnThisFocusLoss) {
5716
+ if (!this.isPopoverVisible && eventType !== "focusloss" && !this.noFocusRestoreOnClose) {
5706
5717
  // wait til the bib gets fully closed and rendered
5707
5718
  setTimeout(() => {
5708
5719
  // Skip if the bib re-opened, or if focus moved intentionally outside the dropdown (not to body).
@@ -18568,7 +18579,7 @@ let AuroHelpText$1 = class AuroHelpText extends LitElement {
18568
18579
  }
18569
18580
  };
18570
18581
 
18571
- var formkitVersion$1 = '202607160654';
18582
+ var formkitVersion$1 = '202607162024';
18572
18583
 
18573
18584
  // Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
18574
18585
  // See LICENSE in the project root for license information.
@@ -18861,12 +18872,16 @@ class AuroInput extends BaseInput {
18861
18872
  // before firstUpdated (e.g. from auro-combobox during mount).
18862
18873
  // Check for any element (including custom elements like <auro-icon>
18863
18874
  // that render via shadow DOM with no text content).
18864
- const lightDomContent = this.querySelector('[slot="displayValue"]:not(slot)');
18865
- this.hasDisplayValueContent = Boolean(lightDomContent && (
18866
- lightDomContent.textContent.trim().length > 0 ||
18867
- lightDomContent.children.length > 0 ||
18868
- lightDomContent.shadowRoot !== null
18875
+ const lightDomNodes = Array.from(this.querySelectorAll('[slot="displayValue"]:not(slot)'));
18876
+ const hasContent = lightDomNodes.some((node) => (
18877
+ node.textContent.trim().length > 0 ||
18878
+ node.children.length > 0 ||
18879
+ node.shadowRoot !== null
18869
18880
  ));
18881
+ if (this.hasDisplayValueContent !== hasContent) {
18882
+ this.hasDisplayValueContent = hasContent;
18883
+ this.requestUpdate();
18884
+ }
18870
18885
  return;
18871
18886
  }
18872
18887
  const nodes = slot.assignedNodes({ flatten: true });
@@ -18879,7 +18894,7 @@ class AuroInput extends BaseInput {
18879
18894
  // being visible on preset/deeplink load.
18880
18895
  // Custom elements (e.g. <auro-icon>) that render via shadow DOM are
18881
18896
  // treated as content even when they have no text or light-DOM children.
18882
- this.hasDisplayValueContent = nodes.some((node) => {
18897
+ const hasContent = nodes.some((node) => {
18883
18898
  if (node.nodeType === Node.TEXT_NODE) {
18884
18899
  return node.textContent.trim().length > 0;
18885
18900
  }
@@ -18890,6 +18905,10 @@ class AuroInput extends BaseInput {
18890
18905
  }
18891
18906
  return false;
18892
18907
  });
18908
+ if (this.hasDisplayValueContent !== hasContent) {
18909
+ this.hasDisplayValueContent = hasContent;
18910
+ this.requestUpdate();
18911
+ }
18893
18912
  }
18894
18913
 
18895
18914
  firstUpdated() {
@@ -19716,7 +19735,7 @@ class AuroBibtemplate extends LitElement {
19716
19735
  }
19717
19736
  }
19718
19737
 
19719
- var formkitVersion = '202607160654';
19738
+ var formkitVersion = '202607162024';
19720
19739
 
19721
19740
  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}`;
19722
19741
 
@@ -20761,7 +20780,6 @@ class AuroCombobox extends AuroElement {
20761
20780
  // hidden when input.value is set in the same tick as the append.
20762
20781
  if (typeof this.input.checkDisplayValueSlotChange === 'function') {
20763
20782
  this.input.checkDisplayValueSlotChange();
20764
- this.input.requestUpdate();
20765
20783
  }
20766
20784
  } else if (this.value) {
20767
20785
  // No optionSelected yet (e.g. setMenuValue was called but the menu's
@@ -20782,7 +20800,6 @@ class AuroCombobox extends AuroElement {
20782
20800
  this.input.appendChild(syntheticDV);
20783
20801
  if (typeof this.input.checkDisplayValueSlotChange === 'function') {
20784
20802
  this.input.checkDisplayValueSlotChange();
20785
- this.input.requestUpdate();
20786
20803
  }
20787
20804
  }
20788
20805
 
@@ -20955,6 +20972,10 @@ class AuroCombobox extends AuroElement {
20955
20972
  // from combobox's light DOM and won't be detected by dropdown's contains() check.
20956
20973
  this.dropdown.noHideOnThisFocusLoss = true;
20957
20974
 
20975
+ // Suppress the dropdown's generic focus restoration on close — the combobox
20976
+ // manages its own focus via setClearBtnFocus / setInputFocus / keyboard strategy.
20977
+ this.dropdown.noFocusRestoreOnClose = true;
20978
+
20958
20979
  // Listen for the ID to be added to the dropdown so we can capture it and use it for accessibility.
20959
20980
  this.dropdown.addEventListener('auroDropdown-idAdded', (event) => {
20960
20981
  this.dropdownId = event.detail.id;