@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
@@ -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;
@@ -1114,7 +1114,7 @@ let AuroHelpText$1 = class AuroHelpText extends i$2 {
1114
1114
  }
1115
1115
  };
1116
1116
 
1117
- var formkitVersion$1 = '202607160654';
1117
+ var formkitVersion$1 = '202607162024';
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 = '202607160654';
5283
+ var formkitVersion = '202607162024';
5284
5284
 
5285
5285
  let AuroElement$1 = class AuroElement extends i$2 {
5286
5286
  static get properties() {
@@ -5420,6 +5420,15 @@ class AuroDropdown extends AuroElement$1 {
5420
5420
  this.matchWidth = false;
5421
5421
  this.noHideOnThisFocusLoss = false;
5422
5422
 
5423
+ /**
5424
+ * When true, the dropdown skips its generic focus restoration on close.
5425
+ * Set by consumers (e.g. combobox) that manage their own focus routing
5426
+ * via setClearBtnFocus / setInputFocus / keyboard strategy.
5427
+ * Separate from noHideOnThisFocusLoss (which controls auto-close behavior).
5428
+ * @private
5429
+ */
5430
+ this.noFocusRestoreOnClose = false;
5431
+
5423
5432
  this.errorMessage = undefined; // TODO - check with Doug if there is still more to do here
5424
5433
 
5425
5434
  // Layout Config
@@ -5596,7 +5605,7 @@ class AuroDropdown extends AuroElement$1 {
5596
5605
  const assigned = slot.assignedElements();
5597
5606
  for (const el of assigned) {
5598
5607
  if (el.hasAttribute('disabled')) {
5599
- continue;
5608
+ continue; // eslint-disable-line no-continue
5600
5609
  }
5601
5610
  // Try finding a focusable descendant first (handles non-focusable
5602
5611
  // wrappers like <div> containing a <button>). If none found, try
@@ -5608,7 +5617,9 @@ class AuroDropdown extends AuroElement$1 {
5608
5617
  return;
5609
5618
  }
5610
5619
  el.focus();
5611
- return;
5620
+ if (document.activeElement === el) {
5621
+ return;
5622
+ }
5612
5623
  }
5613
5624
  }
5614
5625
  // Fallback: try DOM children (non-slotted content)
@@ -6068,7 +6079,7 @@ class AuroDropdown extends AuroElement$1 {
6068
6079
  }
6069
6080
 
6070
6081
  const eventType = event.detail.eventType || "unknown";
6071
- if (!this.isPopoverVisible && this.hasFocus && eventType === "keydown") {
6082
+ if (!this.isPopoverVisible && this.hasFocus && eventType === "keydown" && !this.noFocusRestoreOnClose) {
6072
6083
  this.focusTrigger();
6073
6084
  }
6074
6085
 
@@ -6076,9 +6087,9 @@ class AuroDropdown extends AuroElement$1 {
6076
6087
  // On Tab-driven close (eventType "focusloss"), let focus advance naturally
6077
6088
  // — restoring to the trigger would trap the user on this dropdown, forcing
6078
6089
  // an extra Tab to move on. Escape and outside-click still restore.
6079
- // When noHideOnThisFocusLoss is true, the consumer (e.g. combobox) manages
6090
+ // When noFocusRestoreOnClose is true, the consumer (e.g. combobox) manages
6080
6091
  // its own focus restoration — skip the generic trigger focus to avoid races.
6081
- if (!this.isPopoverVisible && eventType !== "focusloss" && !this.noHideOnThisFocusLoss) {
6092
+ if (!this.isPopoverVisible && eventType !== "focusloss" && !this.noFocusRestoreOnClose) {
6082
6093
  // wait til the bib gets fully closed and rendered
6083
6094
  setTimeout(() => {
6084
6095
  // Skip if the bib re-opened, or if focus moved intentionally outside the dropdown (not to body).
@@ -1114,7 +1114,7 @@ let AuroHelpText$1 = class AuroHelpText extends i$2 {
1114
1114
  }
1115
1115
  };
1116
1116
 
1117
- var formkitVersion$1 = '202607160654';
1117
+ var formkitVersion$1 = '202607162024';
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 = '202607160654';
5283
+ var formkitVersion = '202607162024';
5284
5284
 
5285
5285
  let AuroElement$1 = class AuroElement extends i$2 {
5286
5286
  static get properties() {
@@ -5420,6 +5420,15 @@ class AuroDropdown extends AuroElement$1 {
5420
5420
  this.matchWidth = false;
5421
5421
  this.noHideOnThisFocusLoss = false;
5422
5422
 
5423
+ /**
5424
+ * When true, the dropdown skips its generic focus restoration on close.
5425
+ * Set by consumers (e.g. combobox) that manage their own focus routing
5426
+ * via setClearBtnFocus / setInputFocus / keyboard strategy.
5427
+ * Separate from noHideOnThisFocusLoss (which controls auto-close behavior).
5428
+ * @private
5429
+ */
5430
+ this.noFocusRestoreOnClose = false;
5431
+
5423
5432
  this.errorMessage = undefined; // TODO - check with Doug if there is still more to do here
5424
5433
 
5425
5434
  // Layout Config
@@ -5596,7 +5605,7 @@ class AuroDropdown extends AuroElement$1 {
5596
5605
  const assigned = slot.assignedElements();
5597
5606
  for (const el of assigned) {
5598
5607
  if (el.hasAttribute('disabled')) {
5599
- continue;
5608
+ continue; // eslint-disable-line no-continue
5600
5609
  }
5601
5610
  // Try finding a focusable descendant first (handles non-focusable
5602
5611
  // wrappers like <div> containing a <button>). If none found, try
@@ -5608,7 +5617,9 @@ class AuroDropdown extends AuroElement$1 {
5608
5617
  return;
5609
5618
  }
5610
5619
  el.focus();
5611
- return;
5620
+ if (document.activeElement === el) {
5621
+ return;
5622
+ }
5612
5623
  }
5613
5624
  }
5614
5625
  // Fallback: try DOM children (non-slotted content)
@@ -6068,7 +6079,7 @@ class AuroDropdown extends AuroElement$1 {
6068
6079
  }
6069
6080
 
6070
6081
  const eventType = event.detail.eventType || "unknown";
6071
- if (!this.isPopoverVisible && this.hasFocus && eventType === "keydown") {
6082
+ if (!this.isPopoverVisible && this.hasFocus && eventType === "keydown" && !this.noFocusRestoreOnClose) {
6072
6083
  this.focusTrigger();
6073
6084
  }
6074
6085
 
@@ -6076,9 +6087,9 @@ class AuroDropdown extends AuroElement$1 {
6076
6087
  // On Tab-driven close (eventType "focusloss"), let focus advance naturally
6077
6088
  // — restoring to the trigger would trap the user on this dropdown, forcing
6078
6089
  // an extra Tab to move on. Escape and outside-click still restore.
6079
- // When noHideOnThisFocusLoss is true, the consumer (e.g. combobox) manages
6090
+ // When noFocusRestoreOnClose is true, the consumer (e.g. combobox) manages
6080
6091
  // its own focus restoration — skip the generic trigger focus to avoid races.
6081
- if (!this.isPopoverVisible && eventType !== "focusloss" && !this.noHideOnThisFocusLoss) {
6092
+ if (!this.isPopoverVisible && eventType !== "focusloss" && !this.noFocusRestoreOnClose) {
6082
6093
  // wait til the bib gets fully closed and rendered
6083
6094
  setTimeout(() => {
6084
6095
  // Skip if the bib re-opened, or if focus moved intentionally outside the dropdown (not to body).
@@ -1064,7 +1064,7 @@ let AuroHelpText$1 = class AuroHelpText extends LitElement {
1064
1064
  }
1065
1065
  };
1066
1066
 
1067
- var formkitVersion$1 = '202607160654';
1067
+ var formkitVersion$1 = '202607162024';
1068
1068
 
1069
1069
  // Copyright (c) 2026 Alaska Airlines. All rights reserved. Licensed under the Apache-2.0 license
1070
1070
  // See LICENSE in the project root for license information.
@@ -5212,7 +5212,7 @@ class AuroHelpText extends LitElement {
5212
5212
  }
5213
5213
  }
5214
5214
 
5215
- var formkitVersion = '202607160654';
5215
+ var formkitVersion = '202607162024';
5216
5216
 
5217
5217
  let AuroElement$1 = class AuroElement extends LitElement {
5218
5218
  static get properties() {
@@ -5352,6 +5352,15 @@ class AuroDropdown extends AuroElement$1 {
5352
5352
  this.matchWidth = false;
5353
5353
  this.noHideOnThisFocusLoss = false;
5354
5354
 
5355
+ /**
5356
+ * When true, the dropdown skips its generic focus restoration on close.
5357
+ * Set by consumers (e.g. combobox) that manage their own focus routing
5358
+ * via setClearBtnFocus / setInputFocus / keyboard strategy.
5359
+ * Separate from noHideOnThisFocusLoss (which controls auto-close behavior).
5360
+ * @private
5361
+ */
5362
+ this.noFocusRestoreOnClose = false;
5363
+
5355
5364
  this.errorMessage = undefined; // TODO - check with Doug if there is still more to do here
5356
5365
 
5357
5366
  // Layout Config
@@ -5528,7 +5537,7 @@ class AuroDropdown extends AuroElement$1 {
5528
5537
  const assigned = slot.assignedElements();
5529
5538
  for (const el of assigned) {
5530
5539
  if (el.hasAttribute('disabled')) {
5531
- continue;
5540
+ continue; // eslint-disable-line no-continue
5532
5541
  }
5533
5542
  // Try finding a focusable descendant first (handles non-focusable
5534
5543
  // wrappers like <div> containing a <button>). If none found, try
@@ -5540,7 +5549,9 @@ class AuroDropdown extends AuroElement$1 {
5540
5549
  return;
5541
5550
  }
5542
5551
  el.focus();
5543
- return;
5552
+ if (document.activeElement === el) {
5553
+ return;
5554
+ }
5544
5555
  }
5545
5556
  }
5546
5557
  // Fallback: try DOM children (non-slotted content)
@@ -6000,7 +6011,7 @@ class AuroDropdown extends AuroElement$1 {
6000
6011
  }
6001
6012
 
6002
6013
  const eventType = event.detail.eventType || "unknown";
6003
- if (!this.isPopoverVisible && this.hasFocus && eventType === "keydown") {
6014
+ if (!this.isPopoverVisible && this.hasFocus && eventType === "keydown" && !this.noFocusRestoreOnClose) {
6004
6015
  this.focusTrigger();
6005
6016
  }
6006
6017
 
@@ -6008,9 +6019,9 @@ class AuroDropdown extends AuroElement$1 {
6008
6019
  // On Tab-driven close (eventType "focusloss"), let focus advance naturally
6009
6020
  // — restoring to the trigger would trap the user on this dropdown, forcing
6010
6021
  // an extra Tab to move on. Escape and outside-click still restore.
6011
- // When noHideOnThisFocusLoss is true, the consumer (e.g. combobox) manages
6022
+ // When noFocusRestoreOnClose is true, the consumer (e.g. combobox) manages
6012
6023
  // its own focus restoration — skip the generic trigger focus to avoid races.
6013
- if (!this.isPopoverVisible && eventType !== "focusloss" && !this.noHideOnThisFocusLoss) {
6024
+ if (!this.isPopoverVisible && eventType !== "focusloss" && !this.noFocusRestoreOnClose) {
6014
6025
  // wait til the bib gets fully closed and rendered
6015
6026
  setTimeout(() => {
6016
6027
  // Skip if the bib re-opened, or if focus moved intentionally outside the dropdown (not to body).
@@ -1064,7 +1064,7 @@ let AuroHelpText$1 = class AuroHelpText extends LitElement {
1064
1064
  }
1065
1065
  };
1066
1066
 
1067
- var formkitVersion$1 = '202607160654';
1067
+ var formkitVersion$1 = '202607162024';
1068
1068
 
1069
1069
  // Copyright (c) 2026 Alaska Airlines. All rights reserved. Licensed under the Apache-2.0 license
1070
1070
  // See LICENSE in the project root for license information.
@@ -5212,7 +5212,7 @@ class AuroHelpText extends LitElement {
5212
5212
  }
5213
5213
  }
5214
5214
 
5215
- var formkitVersion = '202607160654';
5215
+ var formkitVersion = '202607162024';
5216
5216
 
5217
5217
  let AuroElement$1 = class AuroElement extends LitElement {
5218
5218
  static get properties() {
@@ -5352,6 +5352,15 @@ class AuroDropdown extends AuroElement$1 {
5352
5352
  this.matchWidth = false;
5353
5353
  this.noHideOnThisFocusLoss = false;
5354
5354
 
5355
+ /**
5356
+ * When true, the dropdown skips its generic focus restoration on close.
5357
+ * Set by consumers (e.g. combobox) that manage their own focus routing
5358
+ * via setClearBtnFocus / setInputFocus / keyboard strategy.
5359
+ * Separate from noHideOnThisFocusLoss (which controls auto-close behavior).
5360
+ * @private
5361
+ */
5362
+ this.noFocusRestoreOnClose = false;
5363
+
5355
5364
  this.errorMessage = undefined; // TODO - check with Doug if there is still more to do here
5356
5365
 
5357
5366
  // Layout Config
@@ -5528,7 +5537,7 @@ class AuroDropdown extends AuroElement$1 {
5528
5537
  const assigned = slot.assignedElements();
5529
5538
  for (const el of assigned) {
5530
5539
  if (el.hasAttribute('disabled')) {
5531
- continue;
5540
+ continue; // eslint-disable-line no-continue
5532
5541
  }
5533
5542
  // Try finding a focusable descendant first (handles non-focusable
5534
5543
  // wrappers like <div> containing a <button>). If none found, try
@@ -5540,7 +5549,9 @@ class AuroDropdown extends AuroElement$1 {
5540
5549
  return;
5541
5550
  }
5542
5551
  el.focus();
5543
- return;
5552
+ if (document.activeElement === el) {
5553
+ return;
5554
+ }
5544
5555
  }
5545
5556
  }
5546
5557
  // Fallback: try DOM children (non-slotted content)
@@ -6000,7 +6011,7 @@ class AuroDropdown extends AuroElement$1 {
6000
6011
  }
6001
6012
 
6002
6013
  const eventType = event.detail.eventType || "unknown";
6003
- if (!this.isPopoverVisible && this.hasFocus && eventType === "keydown") {
6014
+ if (!this.isPopoverVisible && this.hasFocus && eventType === "keydown" && !this.noFocusRestoreOnClose) {
6004
6015
  this.focusTrigger();
6005
6016
  }
6006
6017
 
@@ -6008,9 +6019,9 @@ class AuroDropdown extends AuroElement$1 {
6008
6019
  // On Tab-driven close (eventType "focusloss"), let focus advance naturally
6009
6020
  // — restoring to the trigger would trap the user on this dropdown, forcing
6010
6021
  // an extra Tab to move on. Escape and outside-click still restore.
6011
- // When noHideOnThisFocusLoss is true, the consumer (e.g. combobox) manages
6022
+ // When noFocusRestoreOnClose is true, the consumer (e.g. combobox) manages
6012
6023
  // its own focus restoration — skip the generic trigger focus to avoid races.
6013
- if (!this.isPopoverVisible && eventType !== "focusloss" && !this.noHideOnThisFocusLoss) {
6024
+ if (!this.isPopoverVisible && eventType !== "focusloss" && !this.noFocusRestoreOnClose) {
6014
6025
  // wait til the bib gets fully closed and rendered
6015
6026
  setTimeout(() => {
6016
6027
  // Skip if the bib re-opened, or if focus moved intentionally outside the dropdown (not to body).