@aurodesignsystem-dev/auro-formkit 0.0.0-pr1554.18 → 0.0.0-pr1554.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) 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 +12 -54
  7. package/components/combobox/demo/getting-started.min.js +12 -54
  8. package/components/combobox/demo/index.min.js +12 -54
  9. package/components/combobox/dist/index.js +12 -54
  10. package/components/combobox/dist/registered.js +12 -54
  11. package/components/counter/demo/customize.min.js +9 -31
  12. package/components/counter/demo/index.min.js +9 -31
  13. package/components/counter/dist/index.js +9 -31
  14. package/components/counter/dist/registered.js +9 -31
  15. package/components/datepicker/demo/customize.min.js +11 -50
  16. package/components/datepicker/demo/index.min.js +11 -50
  17. package/components/datepicker/dist/index.js +11 -50
  18. package/components/datepicker/dist/registered.js +11 -50
  19. package/components/dropdown/demo/api.md +0 -1
  20. package/components/dropdown/demo/customize.min.js +8 -30
  21. package/components/dropdown/demo/getting-started.min.js +8 -30
  22. package/components/dropdown/demo/index.min.js +8 -30
  23. package/components/dropdown/dist/auro-dropdown.d.ts +0 -8
  24. package/components/dropdown/dist/index.js +8 -30
  25. package/components/dropdown/dist/registered.js +8 -30
  26. package/components/form/demo/customize.min.js +45 -187
  27. package/components/form/demo/getting-started.min.js +45 -187
  28. package/components/form/demo/index.min.js +45 -187
  29. package/components/form/demo/registerDemoDeps.min.js +45 -187
  30. package/components/input/demo/customize.min.js +2 -19
  31. package/components/input/demo/getting-started.min.js +2 -19
  32. package/components/input/demo/index.min.js +2 -19
  33. package/components/input/dist/index.js +2 -19
  34. package/components/input/dist/registered.js +2 -19
  35. package/components/radio/demo/customize.min.js +1 -1
  36. package/components/radio/demo/getting-started.min.js +1 -1
  37. package/components/radio/demo/index.min.js +1 -1
  38. package/components/radio/dist/index.js +1 -1
  39. package/components/radio/dist/registered.js +1 -1
  40. package/components/select/demo/customize.min.js +9 -31
  41. package/components/select/demo/getting-started.min.js +9 -31
  42. package/components/select/demo/index.min.js +9 -31
  43. package/components/select/dist/index.js +9 -31
  44. package/components/select/dist/registered.js +9 -31
  45. package/custom-elements.json +1517 -1527
  46. 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 = '202607160828';
4907
+ var formkitVersion$2 = '202607160501';
4908
4908
 
4909
4909
  let AuroElement$2 = class AuroElement extends LitElement {
4910
4910
  static get properties() {
@@ -5044,15 +5044,6 @@ 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
- * @public
5053
- */
5054
- this.noFocusRestoreOnClose = false;
5055
-
5056
5047
  this.errorMessage = undefined; // TODO - check with Doug if there is still more to do here
5057
5048
 
5058
5049
  // Layout Config
@@ -5227,23 +5218,10 @@ class AuroDropdown extends AuroElement$2 {
5227
5218
  const slot = this.trigger.querySelector('slot[name="trigger"]');
5228
5219
  if (slot) {
5229
5220
  const assigned = slot.assignedElements();
5230
- for (const el of assigned) {
5231
- if (el.hasAttribute('disabled')) {
5232
- continue;
5233
- }
5234
- // Try finding a focusable descendant first (handles non-focusable
5235
- // wrappers like <div> containing a <button>). If none found, try
5236
- // focusing the element directly (works for custom elements like
5237
- // auro-input that have delegatesFocus or a custom focus() method).
5238
- const descendants = getFocusableElements(el);
5239
- if (descendants.length > 0) {
5240
- descendants[0].focus();
5241
- return;
5242
- }
5243
- el.focus();
5244
- if (document.activeElement === el) {
5245
- return;
5246
- }
5221
+ const focusable = assigned.find((el) => !el.hasAttribute('disabled'));
5222
+ if (focusable) {
5223
+ focusable.focus();
5224
+ return;
5247
5225
  }
5248
5226
  }
5249
5227
  // Fallback: try DOM children (non-slotted content)
@@ -5703,7 +5681,7 @@ class AuroDropdown extends AuroElement$2 {
5703
5681
  }
5704
5682
 
5705
5683
  const eventType = event.detail.eventType || "unknown";
5706
- if (!this.isPopoverVisible && this.hasFocus && eventType === "keydown" && !this.noFocusRestoreOnClose) {
5684
+ if (!this.isPopoverVisible && this.hasFocus && eventType === "keydown") {
5707
5685
  this.focusTrigger();
5708
5686
  }
5709
5687
 
@@ -5711,9 +5689,9 @@ class AuroDropdown extends AuroElement$2 {
5711
5689
  // On Tab-driven close (eventType "focusloss"), let focus advance naturally
5712
5690
  // — restoring to the trigger would trap the user on this dropdown, forcing
5713
5691
  // an extra Tab to move on. Escape and outside-click still restore.
5714
- // When noFocusRestoreOnClose is true, the consumer (e.g. combobox) manages
5692
+ // When noHideOnThisFocusLoss is true, the consumer (e.g. combobox) manages
5715
5693
  // its own focus restoration — skip the generic trigger focus to avoid races.
5716
- if (!this.isPopoverVisible && eventType !== "focusloss" && !this.noFocusRestoreOnClose) {
5694
+ if (!this.isPopoverVisible && eventType !== "focusloss" && !this.noHideOnThisFocusLoss) {
5717
5695
  // wait til the bib gets fully closed and rendered
5718
5696
  setTimeout(() => {
5719
5697
  // Skip if the bib re-opened, or if focus moved intentionally outside the dropdown (not to body).
@@ -18579,7 +18557,7 @@ let AuroHelpText$1 = class AuroHelpText extends LitElement {
18579
18557
  }
18580
18558
  };
18581
18559
 
18582
- var formkitVersion$1 = '202607160828';
18560
+ var formkitVersion$1 = '202607160501';
18583
18561
 
18584
18562
  // Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
18585
18563
  // See LICENSE in the project root for license information.
@@ -18867,18 +18845,6 @@ class AuroInput extends BaseInput {
18867
18845
  checkDisplayValueSlotChange() {
18868
18846
  const slot = this.shadowRoot?.querySelector('slot[name="displayValue"]');
18869
18847
  if (!slot) {
18870
- // Shadow slot not yet rendered — fall back to checking light-DOM
18871
- // children so hasDisplayValueContent isn't stuck false when called
18872
- // before firstUpdated (e.g. from auro-combobox during mount).
18873
- // Check for any element (including custom elements like <auro-icon>
18874
- // that render via shadow DOM with no text content).
18875
- const lightDomNodes = Array.from(this.querySelectorAll('[slot="displayValue"]:not(slot)'));
18876
- this.hasDisplayValueContent = lightDomNodes.some((node) => (
18877
- node.textContent.trim().length > 0 ||
18878
- node.children.length > 0 ||
18879
- node.shadowRoot !== null
18880
- ));
18881
- this.requestUpdate();
18882
18848
  return;
18883
18849
  }
18884
18850
  const nodes = slot.assignedNodes({ flatten: true });
@@ -18889,20 +18855,15 @@ class AuroInput extends BaseInput {
18889
18855
  // displayValue wrapper to render (with hasContent class) but show
18890
18856
  // nothing, blocking the combobox's synthetic displayValue from
18891
18857
  // being visible on preset/deeplink load.
18892
- // Custom elements (e.g. <auro-icon>) that render via shadow DOM are
18893
- // treated as content even when they have no text or light-DOM children.
18894
18858
  this.hasDisplayValueContent = nodes.some((node) => {
18895
18859
  if (node.nodeType === Node.TEXT_NODE) {
18896
18860
  return node.textContent.trim().length > 0;
18897
18861
  }
18898
18862
  if (node.nodeType === Node.ELEMENT_NODE) {
18899
- return node.textContent.trim().length > 0 ||
18900
- node.children.length > 0 ||
18901
- node.shadowRoot !== null;
18863
+ return node.textContent.trim().length > 0 || node.children.length > 0;
18902
18864
  }
18903
18865
  return false;
18904
18866
  });
18905
- this.requestUpdate();
18906
18867
  }
18907
18868
 
18908
18869
  firstUpdated() {
@@ -19729,7 +19690,7 @@ class AuroBibtemplate extends LitElement {
19729
19690
  }
19730
19691
  }
19731
19692
 
19732
- var formkitVersion = '202607160828';
19693
+ var formkitVersion = '202607160501';
19733
19694
 
19734
19695
  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}`;
19735
19696
 
@@ -20774,6 +20735,7 @@ class AuroCombobox extends AuroElement {
20774
20735
  // hidden when input.value is set in the same tick as the append.
20775
20736
  if (typeof this.input.checkDisplayValueSlotChange === 'function') {
20776
20737
  this.input.checkDisplayValueSlotChange();
20738
+ this.input.requestUpdate();
20777
20739
  }
20778
20740
  } else if (this.value) {
20779
20741
  // No optionSelected yet (e.g. setMenuValue was called but the menu's
@@ -20967,10 +20929,6 @@ class AuroCombobox extends AuroElement {
20967
20929
  // from combobox's light DOM and won't be detected by dropdown's contains() check.
20968
20930
  this.dropdown.noHideOnThisFocusLoss = true;
20969
20931
 
20970
- // Suppress the dropdown's generic focus restoration on close — the combobox
20971
- // manages its own focus via setClearBtnFocus / setInputFocus / keyboard strategy.
20972
- this.dropdown.noFocusRestoreOnClose = true;
20973
-
20974
20932
  // Listen for the ID to be added to the dropdown so we can capture it and use it for accessibility.
20975
20933
  this.dropdown.addEventListener('auroDropdown-idAdded', (event) => {
20976
20934
  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 = '202607160828';
1117
+ var formkitVersion$1 = '202607160501';
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 = '202607160828';
5283
+ var formkitVersion = '202607160501';
5284
5284
 
5285
5285
  let AuroElement$1 = class AuroElement extends i$2 {
5286
5286
  static get properties() {
@@ -5420,15 +5420,6 @@ 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
- * @public
5429
- */
5430
- this.noFocusRestoreOnClose = false;
5431
-
5432
5423
  this.errorMessage = undefined; // TODO - check with Doug if there is still more to do here
5433
5424
 
5434
5425
  // Layout Config
@@ -5603,23 +5594,10 @@ class AuroDropdown extends AuroElement$1 {
5603
5594
  const slot = this.trigger.querySelector('slot[name="trigger"]');
5604
5595
  if (slot) {
5605
5596
  const assigned = slot.assignedElements();
5606
- for (const el of assigned) {
5607
- if (el.hasAttribute('disabled')) {
5608
- continue;
5609
- }
5610
- // Try finding a focusable descendant first (handles non-focusable
5611
- // wrappers like <div> containing a <button>). If none found, try
5612
- // focusing the element directly (works for custom elements like
5613
- // auro-input that have delegatesFocus or a custom focus() method).
5614
- const descendants = getFocusableElements(el);
5615
- if (descendants.length > 0) {
5616
- descendants[0].focus();
5617
- return;
5618
- }
5619
- el.focus();
5620
- if (document.activeElement === el) {
5621
- return;
5622
- }
5597
+ const focusable = assigned.find((el) => !el.hasAttribute('disabled'));
5598
+ if (focusable) {
5599
+ focusable.focus();
5600
+ return;
5623
5601
  }
5624
5602
  }
5625
5603
  // Fallback: try DOM children (non-slotted content)
@@ -6079,7 +6057,7 @@ class AuroDropdown extends AuroElement$1 {
6079
6057
  }
6080
6058
 
6081
6059
  const eventType = event.detail.eventType || "unknown";
6082
- if (!this.isPopoverVisible && this.hasFocus && eventType === "keydown" && !this.noFocusRestoreOnClose) {
6060
+ if (!this.isPopoverVisible && this.hasFocus && eventType === "keydown") {
6083
6061
  this.focusTrigger();
6084
6062
  }
6085
6063
 
@@ -6087,9 +6065,9 @@ class AuroDropdown extends AuroElement$1 {
6087
6065
  // On Tab-driven close (eventType "focusloss"), let focus advance naturally
6088
6066
  // — restoring to the trigger would trap the user on this dropdown, forcing
6089
6067
  // an extra Tab to move on. Escape and outside-click still restore.
6090
- // When noFocusRestoreOnClose is true, the consumer (e.g. combobox) manages
6068
+ // When noHideOnThisFocusLoss is true, the consumer (e.g. combobox) manages
6091
6069
  // its own focus restoration — skip the generic trigger focus to avoid races.
6092
- if (!this.isPopoverVisible && eventType !== "focusloss" && !this.noFocusRestoreOnClose) {
6070
+ if (!this.isPopoverVisible && eventType !== "focusloss" && !this.noHideOnThisFocusLoss) {
6093
6071
  // wait til the bib gets fully closed and rendered
6094
6072
  setTimeout(() => {
6095
6073
  // 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 = '202607160828';
1117
+ var formkitVersion$1 = '202607160501';
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 = '202607160828';
5283
+ var formkitVersion = '202607160501';
5284
5284
 
5285
5285
  let AuroElement$1 = class AuroElement extends i$2 {
5286
5286
  static get properties() {
@@ -5420,15 +5420,6 @@ 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
- * @public
5429
- */
5430
- this.noFocusRestoreOnClose = false;
5431
-
5432
5423
  this.errorMessage = undefined; // TODO - check with Doug if there is still more to do here
5433
5424
 
5434
5425
  // Layout Config
@@ -5603,23 +5594,10 @@ class AuroDropdown extends AuroElement$1 {
5603
5594
  const slot = this.trigger.querySelector('slot[name="trigger"]');
5604
5595
  if (slot) {
5605
5596
  const assigned = slot.assignedElements();
5606
- for (const el of assigned) {
5607
- if (el.hasAttribute('disabled')) {
5608
- continue;
5609
- }
5610
- // Try finding a focusable descendant first (handles non-focusable
5611
- // wrappers like <div> containing a <button>). If none found, try
5612
- // focusing the element directly (works for custom elements like
5613
- // auro-input that have delegatesFocus or a custom focus() method).
5614
- const descendants = getFocusableElements(el);
5615
- if (descendants.length > 0) {
5616
- descendants[0].focus();
5617
- return;
5618
- }
5619
- el.focus();
5620
- if (document.activeElement === el) {
5621
- return;
5622
- }
5597
+ const focusable = assigned.find((el) => !el.hasAttribute('disabled'));
5598
+ if (focusable) {
5599
+ focusable.focus();
5600
+ return;
5623
5601
  }
5624
5602
  }
5625
5603
  // Fallback: try DOM children (non-slotted content)
@@ -6079,7 +6057,7 @@ class AuroDropdown extends AuroElement$1 {
6079
6057
  }
6080
6058
 
6081
6059
  const eventType = event.detail.eventType || "unknown";
6082
- if (!this.isPopoverVisible && this.hasFocus && eventType === "keydown" && !this.noFocusRestoreOnClose) {
6060
+ if (!this.isPopoverVisible && this.hasFocus && eventType === "keydown") {
6083
6061
  this.focusTrigger();
6084
6062
  }
6085
6063
 
@@ -6087,9 +6065,9 @@ class AuroDropdown extends AuroElement$1 {
6087
6065
  // On Tab-driven close (eventType "focusloss"), let focus advance naturally
6088
6066
  // — restoring to the trigger would trap the user on this dropdown, forcing
6089
6067
  // an extra Tab to move on. Escape and outside-click still restore.
6090
- // When noFocusRestoreOnClose is true, the consumer (e.g. combobox) manages
6068
+ // When noHideOnThisFocusLoss is true, the consumer (e.g. combobox) manages
6091
6069
  // its own focus restoration — skip the generic trigger focus to avoid races.
6092
- if (!this.isPopoverVisible && eventType !== "focusloss" && !this.noFocusRestoreOnClose) {
6070
+ if (!this.isPopoverVisible && eventType !== "focusloss" && !this.noHideOnThisFocusLoss) {
6093
6071
  // wait til the bib gets fully closed and rendered
6094
6072
  setTimeout(() => {
6095
6073
  // 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 = '202607160828';
1067
+ var formkitVersion$1 = '202607160501';
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 = '202607160828';
5215
+ var formkitVersion = '202607160501';
5216
5216
 
5217
5217
  let AuroElement$1 = class AuroElement extends LitElement {
5218
5218
  static get properties() {
@@ -5352,15 +5352,6 @@ 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
- * @public
5361
- */
5362
- this.noFocusRestoreOnClose = false;
5363
-
5364
5355
  this.errorMessage = undefined; // TODO - check with Doug if there is still more to do here
5365
5356
 
5366
5357
  // Layout Config
@@ -5535,23 +5526,10 @@ class AuroDropdown extends AuroElement$1 {
5535
5526
  const slot = this.trigger.querySelector('slot[name="trigger"]');
5536
5527
  if (slot) {
5537
5528
  const assigned = slot.assignedElements();
5538
- for (const el of assigned) {
5539
- if (el.hasAttribute('disabled')) {
5540
- continue;
5541
- }
5542
- // Try finding a focusable descendant first (handles non-focusable
5543
- // wrappers like <div> containing a <button>). If none found, try
5544
- // focusing the element directly (works for custom elements like
5545
- // auro-input that have delegatesFocus or a custom focus() method).
5546
- const descendants = getFocusableElements(el);
5547
- if (descendants.length > 0) {
5548
- descendants[0].focus();
5549
- return;
5550
- }
5551
- el.focus();
5552
- if (document.activeElement === el) {
5553
- return;
5554
- }
5529
+ const focusable = assigned.find((el) => !el.hasAttribute('disabled'));
5530
+ if (focusable) {
5531
+ focusable.focus();
5532
+ return;
5555
5533
  }
5556
5534
  }
5557
5535
  // Fallback: try DOM children (non-slotted content)
@@ -6011,7 +5989,7 @@ class AuroDropdown extends AuroElement$1 {
6011
5989
  }
6012
5990
 
6013
5991
  const eventType = event.detail.eventType || "unknown";
6014
- if (!this.isPopoverVisible && this.hasFocus && eventType === "keydown" && !this.noFocusRestoreOnClose) {
5992
+ if (!this.isPopoverVisible && this.hasFocus && eventType === "keydown") {
6015
5993
  this.focusTrigger();
6016
5994
  }
6017
5995
 
@@ -6019,9 +5997,9 @@ class AuroDropdown extends AuroElement$1 {
6019
5997
  // On Tab-driven close (eventType "focusloss"), let focus advance naturally
6020
5998
  // — restoring to the trigger would trap the user on this dropdown, forcing
6021
5999
  // an extra Tab to move on. Escape and outside-click still restore.
6022
- // When noFocusRestoreOnClose is true, the consumer (e.g. combobox) manages
6000
+ // When noHideOnThisFocusLoss is true, the consumer (e.g. combobox) manages
6023
6001
  // its own focus restoration — skip the generic trigger focus to avoid races.
6024
- if (!this.isPopoverVisible && eventType !== "focusloss" && !this.noFocusRestoreOnClose) {
6002
+ if (!this.isPopoverVisible && eventType !== "focusloss" && !this.noHideOnThisFocusLoss) {
6025
6003
  // wait til the bib gets fully closed and rendered
6026
6004
  setTimeout(() => {
6027
6005
  // 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 = '202607160828';
1067
+ var formkitVersion$1 = '202607160501';
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 = '202607160828';
5215
+ var formkitVersion = '202607160501';
5216
5216
 
5217
5217
  let AuroElement$1 = class AuroElement extends LitElement {
5218
5218
  static get properties() {
@@ -5352,15 +5352,6 @@ 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
- * @public
5361
- */
5362
- this.noFocusRestoreOnClose = false;
5363
-
5364
5355
  this.errorMessage = undefined; // TODO - check with Doug if there is still more to do here
5365
5356
 
5366
5357
  // Layout Config
@@ -5535,23 +5526,10 @@ class AuroDropdown extends AuroElement$1 {
5535
5526
  const slot = this.trigger.querySelector('slot[name="trigger"]');
5536
5527
  if (slot) {
5537
5528
  const assigned = slot.assignedElements();
5538
- for (const el of assigned) {
5539
- if (el.hasAttribute('disabled')) {
5540
- continue;
5541
- }
5542
- // Try finding a focusable descendant first (handles non-focusable
5543
- // wrappers like <div> containing a <button>). If none found, try
5544
- // focusing the element directly (works for custom elements like
5545
- // auro-input that have delegatesFocus or a custom focus() method).
5546
- const descendants = getFocusableElements(el);
5547
- if (descendants.length > 0) {
5548
- descendants[0].focus();
5549
- return;
5550
- }
5551
- el.focus();
5552
- if (document.activeElement === el) {
5553
- return;
5554
- }
5529
+ const focusable = assigned.find((el) => !el.hasAttribute('disabled'));
5530
+ if (focusable) {
5531
+ focusable.focus();
5532
+ return;
5555
5533
  }
5556
5534
  }
5557
5535
  // Fallback: try DOM children (non-slotted content)
@@ -6011,7 +5989,7 @@ class AuroDropdown extends AuroElement$1 {
6011
5989
  }
6012
5990
 
6013
5991
  const eventType = event.detail.eventType || "unknown";
6014
- if (!this.isPopoverVisible && this.hasFocus && eventType === "keydown" && !this.noFocusRestoreOnClose) {
5992
+ if (!this.isPopoverVisible && this.hasFocus && eventType === "keydown") {
6015
5993
  this.focusTrigger();
6016
5994
  }
6017
5995
 
@@ -6019,9 +5997,9 @@ class AuroDropdown extends AuroElement$1 {
6019
5997
  // On Tab-driven close (eventType "focusloss"), let focus advance naturally
6020
5998
  // — restoring to the trigger would trap the user on this dropdown, forcing
6021
5999
  // an extra Tab to move on. Escape and outside-click still restore.
6022
- // When noFocusRestoreOnClose is true, the consumer (e.g. combobox) manages
6000
+ // When noHideOnThisFocusLoss is true, the consumer (e.g. combobox) manages
6023
6001
  // its own focus restoration — skip the generic trigger focus to avoid races.
6024
- if (!this.isPopoverVisible && eventType !== "focusloss" && !this.noFocusRestoreOnClose) {
6002
+ if (!this.isPopoverVisible && eventType !== "focusloss" && !this.noHideOnThisFocusLoss) {
6025
6003
  // wait til the bib gets fully closed and rendered
6026
6004
  setTimeout(() => {
6027
6005
  // Skip if the bib re-opened, or if focus moved intentionally outside the dropdown (not to body).
@@ -13717,7 +13717,7 @@ class AuroBibtemplate extends i$1 {
13717
13717
  }
13718
13718
  }
13719
13719
 
13720
- var formkitVersion$2 = '202607160828';
13720
+ var formkitVersion$2 = '202607160501';
13721
13721
 
13722
13722
  let l$1 = class l{generateElementName(t,e){let o=t;return o+="-",o+=e.replace(/[.]/g,"_"),o}generateTag(o,s,a){const r=this.generateElementName(o,s),i=i$5`${s$5(r)}`;return customElements.get(r)||customElements.define(r,class extends a{}),i}};let d$1 = class d{registerComponent(t,e){customElements.get(t)||customElements.define(t,class extends e{});}closestElement(t,e=this,o=(e,s=e&&e.closest(t))=>e&&e!==document&&e!==window?s||o(e.getRootNode().host):null){return o(e)}handleComponentTagRename(t,e){const o=e.toLowerCase();t.tagName.toLowerCase()!==o&&t.setAttribute(o,true);}elementMatch(t,e){const o=e.toLowerCase();return t.tagName.toLowerCase()===o||t.hasAttribute(o)}getSlotText(t,e){const o=t.shadowRoot?.querySelector(`slot[name="${e}"]`),s=(o?.assignedNodes({flatten:true})||[]).map(t=>t.textContent?.trim()).join(" ").trim();return s||null}};let h$4 = class h{registerComponent(t,e){customElements.get(t)||customElements.define(t,class extends e{});}closestElement(t,e=this,o=(e,s=e&&e.closest(t))=>e&&e!==document&&e!==window?s||o(e.getRootNode().host):null){return o(e)}handleComponentTagRename(t,e){const o=e.toLowerCase();t.tagName.toLowerCase()!==o&&t.setAttribute(o,true);}elementMatch(t,e){const o=e.toLowerCase();return t.tagName.toLowerCase()===o||t.hasAttribute(o)}};var c$3=i$3`:host{color:var(--ds-auro-loader-color)}:host>span{background-color:var(--ds-auro-loader-background-color);border-color:var(--ds-auro-loader-border-color)}:host([onlight]),:host([appearance=brand]){--ds-auro-loader-color: var(--ds-basic-color-brand-primary, #01426a)}:host([ondark]),:host([appearance=inverse]){--ds-auro-loader-color: var(--ds-basic-color-texticon-inverse, #ffffff)}:host([orbit])>span{--ds-auro-loader-background-color: transparent}:host([orbit])>span:nth-child(1){--ds-auro-loader-border-color: currentcolor;opacity:.25}:host([orbit])>span:nth-child(2){--ds-auro-loader-border-color: currentcolor;border-right-color:transparent;border-bottom-color:transparent;border-left-color:transparent}
13723
13723
  `,u$6=i$3`.body-default{font-size:var(--wcss-body-default-font-size, 1rem);line-height:var(--wcss-body-default-line-height, 1.5rem)}.body-default,.body-lg{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-weight, 450);letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-lg{font-size:var(--wcss-body-lg-font-size, 1.125rem);line-height:var(--wcss-body-lg-line-height, 1.625rem)}.body-sm{font-size:var(--wcss-body-sm-font-size, .875rem);line-height:var(--wcss-body-sm-line-height, 1.25rem)}.body-sm,.body-xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-weight, 450);letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-xs{font-size:var(--wcss-body-xs-font-size, .75rem);line-height:var(--wcss-body-xs-line-height, 1rem)}.body-2xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-size:var(--wcss-body-2xs-font-size, .625rem);font-weight:var(--wcss-body-weight, 450);letter-spacing:var(--wcss-body-letter-spacing, 0);line-height:var(--wcss-body-2xs-line-height, .875rem)}.display-2xl{font-family:var(--wcss-display-2xl-family, "AS Circular"),var(--wcss-display-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-2xl-font-size, clamp(3.5rem, 6vw, 5.375rem));font-weight:var(--wcss-display-2xl-weight, 300);letter-spacing:var(--wcss-display-2xl-letter-spacing, 0);line-height:var(--wcss-display-2xl-line-height, 1.3)}.display-xl{font-family:var(--wcss-display-xl-family, "AS Circular"),var(--wcss-display-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-xl-font-size, clamp(3rem, 5.3333333333vw, 4.5rem));font-weight:var(--wcss-display-xl-weight, 300);letter-spacing:var(--wcss-display-xl-letter-spacing, 0);line-height:var(--wcss-display-xl-line-height, 1.3)}.display-lg{font-family:var(--wcss-display-lg-family, "AS Circular"),var(--wcss-display-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-lg-font-size, clamp(2.75rem, 4.6666666667vw, 4rem));font-weight:var(--wcss-display-lg-weight, 300);letter-spacing:var(--wcss-display-lg-letter-spacing, 0);line-height:var(--wcss-display-lg-line-height, 1.3)}.display-md{font-family:var(--wcss-display-md-family, "AS Circular"),var(--wcss-display-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-md-font-size, clamp(2.5rem, 4vw, 3.5rem));font-weight:var(--wcss-display-md-weight, 300);letter-spacing:var(--wcss-display-md-letter-spacing, 0);line-height:var(--wcss-display-md-line-height, 1.3)}.display-sm{font-family:var(--wcss-display-sm-family, "AS Circular"),var(--wcss-display-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-sm-font-size, clamp(2rem, 3.6666666667vw, 3rem));font-weight:var(--wcss-display-sm-weight, 300);letter-spacing:var(--wcss-display-sm-letter-spacing, 0);line-height:var(--wcss-display-sm-line-height, 1.3)}.display-xs{font-family:var(--wcss-display-xs-family, "AS Circular"),var(--wcss-display-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-xs-font-size, clamp(1.75rem, 3vw, 2.375rem));font-weight:var(--wcss-display-xs-weight, 300);letter-spacing:var(--wcss-display-xs-letter-spacing, 0);line-height:var(--wcss-display-xs-line-height, 1.3)}.heading-xl{font-family:var(--wcss-heading-xl-family, "AS Circular"),var(--wcss-heading-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-xl-font-size, clamp(2rem, 3vw, 2.5rem));font-weight:var(--wcss-heading-xl-weight, 300);letter-spacing:var(--wcss-heading-xl-letter-spacing, 0);line-height:var(--wcss-heading-xl-line-height, 1.3)}.heading-lg{font-family:var(--wcss-heading-lg-family, "AS Circular"),var(--wcss-heading-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-lg-font-size, clamp(1.75rem, 2.6666666667vw, 2.25rem));font-weight:var(--wcss-heading-lg-weight, 300);letter-spacing:var(--wcss-heading-lg-letter-spacing, 0);line-height:var(--wcss-heading-lg-line-height, 1.3)}.heading-md{font-family:var(--wcss-heading-md-family, "AS Circular"),var(--wcss-heading-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-md-font-size, clamp(1.625rem, 2.3333333333vw, 1.75rem));font-weight:var(--wcss-heading-md-weight, 300);letter-spacing:var(--wcss-heading-md-letter-spacing, 0);line-height:var(--wcss-heading-md-line-height, 1.3)}.heading-sm{font-family:var(--wcss-heading-sm-family, "AS Circular"),var(--wcss-heading-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-sm-font-size, clamp(1.375rem, 2vw, 1.5rem));font-weight:var(--wcss-heading-sm-weight, 300);letter-spacing:var(--wcss-heading-sm-letter-spacing, 0);line-height:var(--wcss-heading-sm-line-height, 1.3)}.heading-xs{font-family:var(--wcss-heading-xs-family, "AS Circular"),var(--wcss-heading-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-xs-font-size, clamp(1.25rem, 1.6666666667vw, 1.25rem));font-weight:var(--wcss-heading-xs-weight, 450);letter-spacing:var(--wcss-heading-xs-letter-spacing, 0);line-height:var(--wcss-heading-xs-line-height, 1.3)}.heading-2xs{font-family:var(--wcss-heading-2xs-family, "AS Circular"),var(--wcss-heading-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-2xs-font-size, clamp(1.125rem, 1.5vw, 1.125rem));font-weight:var(--wcss-heading-2xs-weight, 450);letter-spacing:var(--wcss-heading-2xs-letter-spacing, 0);line-height:var(--wcss-heading-2xs-line-height, 1.3)}.accent-2xl{font-family:var(--wcss-accent-2xl-family, "Good OT"),var(--wcss-accent-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-2xl-font-size, clamp(2rem, 3.1666666667vw, 2.375rem));font-weight:var(--wcss-accent-2xl-weight, 450);letter-spacing:var(--wcss-accent-2xl-letter-spacing, .05em);line-height:var(--wcss-accent-2xl-line-height, 1)}.accent-2xl,.accent-xl{text-transform:uppercase}.accent-xl{font-family:var(--wcss-accent-xl-family, "Good OT"),var(--wcss-accent-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-xl-font-size, clamp(1.625rem, 2.3333333333vw, 2rem));font-weight:var(--wcss-accent-xl-weight, 450);letter-spacing:var(--wcss-accent-xl-letter-spacing, .05em);line-height:var(--wcss-accent-xl-line-height, 1.3)}.accent-lg{font-family:var(--wcss-accent-lg-family, "Good OT"),var(--wcss-accent-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-lg-font-size, clamp(1.5rem, 2.1666666667vw, 1.75rem));font-weight:var(--wcss-accent-lg-weight, 450);letter-spacing:var(--wcss-accent-lg-letter-spacing, .05em);line-height:var(--wcss-accent-lg-line-height, 1.3)}.accent-lg,.accent-md{text-transform:uppercase}.accent-md{font-family:var(--wcss-accent-md-family, "Good OT"),var(--wcss-accent-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-md-font-size, clamp(1.375rem, 1.8333333333vw, 1.5rem));font-weight:var(--wcss-accent-md-weight, 500);letter-spacing:var(--wcss-accent-md-letter-spacing, .05em);line-height:var(--wcss-accent-md-line-height, 1.3)}.accent-sm{font-family:var(--wcss-accent-sm-family, "Good OT"),var(--wcss-accent-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-sm-font-size, clamp(1.125rem, 1.5vw, 1.25rem));font-weight:var(--wcss-accent-sm-weight, 500);letter-spacing:var(--wcss-accent-sm-letter-spacing, .05em);line-height:var(--wcss-accent-sm-line-height, 1.3)}.accent-sm,.accent-xs{text-transform:uppercase}.accent-xs{font-family:var(--wcss-accent-xs-family, "Good OT"),var(--wcss-accent-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-xs-font-size, clamp(1rem, 1.3333333333vw, 1rem));font-weight:var(--wcss-accent-xs-weight, 500);letter-spacing:var(--wcss-accent-xs-letter-spacing, .1em);line-height:var(--wcss-accent-xs-line-height, 1.3)}.accent-2xs{font-family:var(--wcss-accent-2xs-family, "Good OT"),var(--wcss-accent-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-2xs-font-size, clamp(.875rem, 1.1666666667vw, .875rem));font-weight:var(--wcss-accent-2xs-weight, 450);letter-spacing:var(--wcss-accent-2xs-letter-spacing, .1em);line-height:var(--wcss-accent-2xs-line-height, 1.3);text-transform:uppercase}:focus:not(:focus-visible){outline:3px solid transparent}:host,:host>span{position:relative}:host{width:2rem;height:2rem;display:inline-block;font-size:0}:host>span{position:absolute;display:inline-block;float:none;top:0;left:0;width:2rem;height:2rem;border-radius:100%;border-style:solid;border-width:0;box-sizing:border-box}:host([xs]),:host([xs])>span{width:1.2rem;height:1.2rem}:host([sm]),:host([sm])>span{width:3rem;height:3rem}:host([md]),:host([md])>span{width:5rem;height:5rem}:host([lg]),:host([lg])>span{width:8rem;height:8rem}:host{--margin: .375rem;--margin-xs: .2rem;--margin-sm: .5rem;--margin-md: .75rem;--margin-lg: 1rem}:host([pulse]),:host([pulse])>span{position:relative}:host([pulse]){width:calc(3rem + var(--margin) * 6);height:calc(1rem + var(--margin) * 2)}:host([pulse])>span{width:1rem;height:1rem;margin:var(--margin);animation:pulse 1.5s ease infinite}:host([pulse][xs]){width:calc(1.95rem + var(--margin-xs) * 6);height:calc(.65rem + var(--margin-xs) * 2)}:host([pulse][xs])>span{margin:var(--margin-xs);width:.65rem;height:.65rem}:host([pulse][sm]){width:calc(6rem + var(--margin-sm) * 6);height:calc(2rem + var(--margin-sm) * 2)}:host([pulse][sm])>span{margin:var(--margin-sm);width:2rem;height:2rem}:host([pulse][md]){width:calc(9rem + var(--margin-md) * 6);height:calc(3rem + var(--margin-md) * 2)}:host([pulse][md])>span{margin:var(--margin-md);width:3rem;height:3rem}:host([pulse][lg]){width:calc(15rem + var(--margin-lg) * 6);height:calc(5rem + var(--margin-lg) * 2)}:host([pulse][lg])>span{margin:var(--margin-lg);width:5rem;height:5rem}:host([pulse])>span:nth-child(1){animation-delay:-.4s}:host([pulse])>span:nth-child(2){animation-delay:-.2s}:host([pulse])>span:nth-child(3){animation-delay:0ms}@keyframes pulse{0%,to{opacity:.1;transform:scale(.9)}50%{opacity:1;transform:scale(1.1)}}:host([orbit]),:host([orbit])>span{opacity:1}:host([orbit])>span{border-width:5px}:host([orbit])>span:nth-child(2){animation:orbit 2s linear infinite}:host([orbit][sm])>span{border-width:8px}:host([orbit][md])>span{border-width:13px}:host([orbit][lg])>span{border-width:21px}@keyframes orbit{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host([ringworm])>svg{animation:rotate 2s linear infinite;height:100%;width:100%;stroke:currentcolor;stroke-width:8}:host([ringworm]) .path{stroke-dashoffset:0;animation:ringworm 1.5s ease-in-out infinite;stroke-linecap:round}@keyframes rotate{to{transform:rotate(360deg)}}@keyframes ringworm{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:89,200;stroke-dashoffset:-35px}to{stroke-dasharray:89,200;stroke-dashoffset:-124px}}:host([laser]){position:static;width:100%;display:block;height:0;overflow:hidden;font-size:unset}:host([laser])>span{position:fixed;width:100%;height:.25rem;border-radius:0;z-index:100}:host([laser])>span:nth-child(1){border-color:currentcolor;opacity:.25}:host([laser])>span:nth-child(2){border-color:currentcolor;animation:laser 2s linear infinite;opacity:1;width:50%}:host([laser][sm])>span:nth-child(2){width:20%}:host([laser][md])>span:nth-child(2){width:30%}:host([laser][lg])>span:nth-child(2){width:50%;animation-duration:1.5s}:host([laser][xl])>span:nth-child(2){width:80%;animation-duration:1.5s}@keyframes laser{0%{left:-100%}to{left:110%}}:host>.no-animation{display:none}@media (prefers-reduced-motion: reduce){:host{display:flex;align-items:center;justify-content:center}:host>span{opacity:1}:host>.loader{display:none}:host>svg{display:none}:host>.no-animation{display:block}}
@@ -19469,7 +19469,7 @@ let AuroHelpText$2 = class AuroHelpText extends i$1 {
19469
19469
  }
19470
19470
  };
19471
19471
 
19472
- var formkitVersion$1 = '202607160828';
19472
+ var formkitVersion$1 = '202607160501';
19473
19473
 
19474
19474
  let AuroElement$2 = class AuroElement extends i$1 {
19475
19475
  static get properties() {
@@ -19609,15 +19609,6 @@ class AuroDropdown extends AuroElement$2 {
19609
19609
  this.matchWidth = false;
19610
19610
  this.noHideOnThisFocusLoss = false;
19611
19611
 
19612
- /**
19613
- * When true, the dropdown skips its generic focus restoration on close.
19614
- * Set by consumers (e.g. combobox) that manage their own focus routing
19615
- * via setClearBtnFocus / setInputFocus / keyboard strategy.
19616
- * Separate from noHideOnThisFocusLoss (which controls auto-close behavior).
19617
- * @public
19618
- */
19619
- this.noFocusRestoreOnClose = false;
19620
-
19621
19612
  this.errorMessage = undefined; // TODO - check with Doug if there is still more to do here
19622
19613
 
19623
19614
  // Layout Config
@@ -19792,23 +19783,10 @@ class AuroDropdown extends AuroElement$2 {
19792
19783
  const slot = this.trigger.querySelector('slot[name="trigger"]');
19793
19784
  if (slot) {
19794
19785
  const assigned = slot.assignedElements();
19795
- for (const el of assigned) {
19796
- if (el.hasAttribute('disabled')) {
19797
- continue;
19798
- }
19799
- // Try finding a focusable descendant first (handles non-focusable
19800
- // wrappers like <div> containing a <button>). If none found, try
19801
- // focusing the element directly (works for custom elements like
19802
- // auro-input that have delegatesFocus or a custom focus() method).
19803
- const descendants = getFocusableElements(el);
19804
- if (descendants.length > 0) {
19805
- descendants[0].focus();
19806
- return;
19807
- }
19808
- el.focus();
19809
- if (document.activeElement === el) {
19810
- return;
19811
- }
19786
+ const focusable = assigned.find((el) => !el.hasAttribute('disabled'));
19787
+ if (focusable) {
19788
+ focusable.focus();
19789
+ return;
19812
19790
  }
19813
19791
  }
19814
19792
  // Fallback: try DOM children (non-slotted content)
@@ -20268,7 +20246,7 @@ class AuroDropdown extends AuroElement$2 {
20268
20246
  }
20269
20247
 
20270
20248
  const eventType = event.detail.eventType || "unknown";
20271
- if (!this.isPopoverVisible && this.hasFocus && eventType === "keydown" && !this.noFocusRestoreOnClose) {
20249
+ if (!this.isPopoverVisible && this.hasFocus && eventType === "keydown") {
20272
20250
  this.focusTrigger();
20273
20251
  }
20274
20252
 
@@ -20276,9 +20254,9 @@ class AuroDropdown extends AuroElement$2 {
20276
20254
  // On Tab-driven close (eventType "focusloss"), let focus advance naturally
20277
20255
  // — restoring to the trigger would trap the user on this dropdown, forcing
20278
20256
  // an extra Tab to move on. Escape and outside-click still restore.
20279
- // When noFocusRestoreOnClose is true, the consumer (e.g. combobox) manages
20257
+ // When noHideOnThisFocusLoss is true, the consumer (e.g. combobox) manages
20280
20258
  // its own focus restoration — skip the generic trigger focus to avoid races.
20281
- if (!this.isPopoverVisible && eventType !== "focusloss" && !this.noFocusRestoreOnClose) {
20259
+ if (!this.isPopoverVisible && eventType !== "focusloss" && !this.noHideOnThisFocusLoss) {
20282
20260
  // wait til the bib gets fully closed and rendered
20283
20261
  setTimeout(() => {
20284
20262
  // Skip if the bib re-opened, or if focus moved intentionally outside the dropdown (not to body).
@@ -33151,7 +33129,7 @@ let AuroHelpText$1 = class AuroHelpText extends i$1 {
33151
33129
  }
33152
33130
  };
33153
33131
 
33154
- var formkitVersion = '202607160828';
33132
+ var formkitVersion = '202607160501';
33155
33133
 
33156
33134
  // Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
33157
33135
  // See LICENSE in the project root for license information.
@@ -33439,18 +33417,6 @@ class AuroInput extends BaseInput {
33439
33417
  checkDisplayValueSlotChange() {
33440
33418
  const slot = this.shadowRoot?.querySelector('slot[name="displayValue"]');
33441
33419
  if (!slot) {
33442
- // Shadow slot not yet rendered — fall back to checking light-DOM
33443
- // children so hasDisplayValueContent isn't stuck false when called
33444
- // before firstUpdated (e.g. from auro-combobox during mount).
33445
- // Check for any element (including custom elements like <auro-icon>
33446
- // that render via shadow DOM with no text content).
33447
- const lightDomNodes = Array.from(this.querySelectorAll('[slot="displayValue"]:not(slot)'));
33448
- this.hasDisplayValueContent = lightDomNodes.some((node) => (
33449
- node.textContent.trim().length > 0 ||
33450
- node.children.length > 0 ||
33451
- node.shadowRoot !== null
33452
- ));
33453
- this.requestUpdate();
33454
33420
  return;
33455
33421
  }
33456
33422
  const nodes = slot.assignedNodes({ flatten: true });
@@ -33461,20 +33427,15 @@ class AuroInput extends BaseInput {
33461
33427
  // displayValue wrapper to render (with hasContent class) but show
33462
33428
  // nothing, blocking the combobox's synthetic displayValue from
33463
33429
  // being visible on preset/deeplink load.
33464
- // Custom elements (e.g. <auro-icon>) that render via shadow DOM are
33465
- // treated as content even when they have no text or light-DOM children.
33466
33430
  this.hasDisplayValueContent = nodes.some((node) => {
33467
33431
  if (node.nodeType === Node.TEXT_NODE) {
33468
33432
  return node.textContent.trim().length > 0;
33469
33433
  }
33470
33434
  if (node.nodeType === Node.ELEMENT_NODE) {
33471
- return node.textContent.trim().length > 0 ||
33472
- node.children.length > 0 ||
33473
- node.shadowRoot !== null;
33435
+ return node.textContent.trim().length > 0 || node.children.length > 0;
33474
33436
  }
33475
33437
  return false;
33476
33438
  });
33477
- this.requestUpdate();
33478
33439
  }
33479
33440
 
33480
33441
  firstUpdated() {