@aurodesignsystem-dev/auro-formkit 0.0.0-pr1554.10 → 0.0.0-pr1554.12

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 (44) 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 -20
  7. package/components/combobox/demo/getting-started.min.js +37 -20
  8. package/components/combobox/demo/index.min.js +37 -20
  9. package/components/combobox/dist/index.js +37 -20
  10. package/components/combobox/dist/registered.js +37 -20
  11. package/components/counter/demo/customize.min.js +12 -9
  12. package/components/counter/demo/index.min.js +12 -9
  13. package/components/counter/dist/index.js +12 -9
  14. package/components/counter/dist/registered.js +12 -9
  15. package/components/datepicker/demo/customize.min.js +13 -13
  16. package/components/datepicker/demo/index.min.js +13 -13
  17. package/components/datepicker/dist/index.js +13 -13
  18. package/components/datepicker/dist/registered.js +13 -13
  19. package/components/dropdown/demo/customize.min.js +11 -8
  20. package/components/dropdown/demo/getting-started.min.js +11 -8
  21. package/components/dropdown/demo/index.min.js +11 -8
  22. package/components/dropdown/dist/index.js +11 -8
  23. package/components/dropdown/dist/registered.js +11 -8
  24. package/components/form/demo/customize.min.js +77 -57
  25. package/components/form/demo/getting-started.min.js +77 -57
  26. package/components/form/demo/index.min.js +77 -57
  27. package/components/form/demo/registerDemoDeps.min.js +77 -57
  28. package/components/input/demo/customize.min.js +1 -4
  29. package/components/input/demo/getting-started.min.js +1 -4
  30. package/components/input/demo/index.min.js +1 -4
  31. package/components/input/dist/index.js +1 -4
  32. package/components/input/dist/registered.js +1 -4
  33. package/components/radio/demo/customize.min.js +1 -1
  34. package/components/radio/demo/getting-started.min.js +1 -1
  35. package/components/radio/demo/index.min.js +1 -1
  36. package/components/radio/dist/index.js +1 -1
  37. package/components/radio/dist/registered.js +1 -1
  38. package/components/select/demo/customize.min.js +12 -9
  39. package/components/select/demo/getting-started.min.js +12 -9
  40. package/components/select/demo/index.min.js +12 -9
  41. package/components/select/dist/index.js +12 -9
  42. package/components/select/dist/registered.js +12 -9
  43. package/custom-elements.json +1521 -1521
  44. package/package.json +1 -1
@@ -1275,7 +1275,7 @@ class AuroHelpText extends i$2 {
1275
1275
  }
1276
1276
  }
1277
1277
 
1278
- var formkitVersion = '202607160655';
1278
+ var formkitVersion = '202607160725';
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 = '202607160655';
1278
+ var formkitVersion = '202607160725';
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 = '202607160655';
1278
+ var formkitVersion = '202607160725';
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 = '202607160655';
1231
+ var formkitVersion = '202607160725';
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 = '202607160655';
1231
+ var formkitVersion = '202607160725';
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 = '202607160655';
4974
+ var formkitVersion$2 = '202607160725';
4975
4975
 
4976
4976
  let AuroElement$2 = class AuroElement extends i$3 {
4977
4977
  static get properties() {
@@ -5284,22 +5284,25 @@ class AuroDropdown extends AuroElement$2 {
5284
5284
  // getFocusableElements can't find it. Query assigned nodes directly.
5285
5285
  const slot = this.trigger.querySelector('slot[name="trigger"]');
5286
5286
  if (slot) {
5287
- const assigned = slot.assignedElements();
5287
+ const assigned = slot.assignedElements({ flatten: true });
5288
5288
  for (const el of assigned) {
5289
5289
  if (el.hasAttribute('disabled')) {
5290
5290
  continue;
5291
5291
  }
5292
- // Try finding a focusable descendant first (handles non-focusable
5293
- // wrappers like <div> containing a <button>). If none found, try
5294
- // focusing the element directly (works for custom elements like
5295
- // auro-input that have delegatesFocus or a custom focus() method).
5292
+
5293
+ // Try focusing a focusable descendant first (handles non-focusable wrappers).
5296
5294
  const descendants = getFocusableElements(el);
5297
5295
  if (descendants.length > 0) {
5298
5296
  descendants[0].focus();
5299
5297
  return;
5300
5298
  }
5299
+
5300
+ // Otherwise, try focusing the assigned element itself. Only stop if focus moved.
5301
+ const prevActive = document.activeElement;
5301
5302
  el.focus();
5302
- return;
5303
+ if (document.activeElement !== prevActive) {
5304
+ return;
5305
+ }
5303
5306
  }
5304
5307
  }
5305
5308
  // Fallback: try DOM children (non-slotted content)
@@ -5759,7 +5762,7 @@ class AuroDropdown extends AuroElement$2 {
5759
5762
  }
5760
5763
 
5761
5764
  const eventType = event.detail.eventType || "unknown";
5762
- if (!this.isPopoverVisible && this.hasFocus && eventType === "keydown") {
5765
+ if (!this.isPopoverVisible && this.hasFocus && eventType === "keydown" && !this.noHideOnThisFocusLoss) {
5763
5766
  this.focusTrigger();
5764
5767
  }
5765
5768
 
@@ -18642,7 +18645,7 @@ let AuroHelpText$1 = class AuroHelpText extends i$3 {
18642
18645
  }
18643
18646
  };
18644
18647
 
18645
- var formkitVersion$1 = '202607160655';
18648
+ var formkitVersion$1 = '202607160725';
18646
18649
 
18647
18650
  // Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
18648
18651
  // See LICENSE in the project root for license information.
@@ -18941,7 +18944,6 @@ class AuroInput extends BaseInput {
18941
18944
  lightDomContent.children.length > 0 ||
18942
18945
  lightDomContent.shadowRoot !== null
18943
18946
  ));
18944
- this.requestUpdate();
18945
18947
  return;
18946
18948
  }
18947
18949
  const nodes = slot.assignedNodes({ flatten: true });
@@ -18965,8 +18967,6 @@ class AuroInput extends BaseInput {
18965
18967
  }
18966
18968
  return false;
18967
18969
  });
18968
-
18969
- this.requestUpdate();
18970
18970
  }
18971
18971
 
18972
18972
  firstUpdated() {
@@ -19793,7 +19793,7 @@ class AuroBibtemplate extends i$3 {
19793
19793
  }
19794
19794
  }
19795
19795
 
19796
- var formkitVersion = '202607160655';
19796
+ var formkitVersion = '202607160725';
19797
19797
 
19798
19798
  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}`;
19799
19799
 
@@ -20850,13 +20850,30 @@ class AuroCombobox extends AuroElement {
20850
20850
  // human-readable label (e.g. "Seattle, WA"). For consumers where
20851
20851
  // value ≠ label, this produces a brief flash of the raw value until
20852
20852
  // the option elements load and updateTriggerTextDisplay re-runs with
20853
- // the correct label. This is intentionally preferred over a blank
20854
- // state — the displayValueInTrigger.remove() cleanup above ensures
20855
- // this placeholder is replaced once the real option is available.
20856
- const syntheticDV = document.createElement('span');
20857
- syntheticDV.setAttribute('slot', 'displayValue');
20858
- syntheticDV.textContent = this.value;
20859
- this.input.appendChild(syntheticDV);
20853
+ // the correct label.
20854
+
20855
+ // Avoid adding synthetic content when a consumer already provides
20856
+ // displayValue content via the forwarded slot.
20857
+ const forwarderSlot = this.input.querySelector('slot[name="displayValue"][slot="displayValue"]');
20858
+ const hasSlottedDisplayValue = Boolean(forwarderSlot?.assignedNodes({ flatten: true }).some((node) => {
20859
+ if (node.nodeType === Node.TEXT_NODE) {
20860
+ return node.textContent.trim().length > 0;
20861
+ }
20862
+ if (node.nodeType === Node.ELEMENT_NODE) {
20863
+ return node.textContent.trim().length > 0 ||
20864
+ node.children.length > 0 ||
20865
+ node.shadowRoot !== null;
20866
+ }
20867
+ return false;
20868
+ }));
20869
+
20870
+ if (!hasSlottedDisplayValue) {
20871
+ const syntheticDV = document.createElement('span');
20872
+ syntheticDV.setAttribute('slot', 'displayValue');
20873
+ syntheticDV.textContent = this.value;
20874
+ this.input.appendChild(syntheticDV);
20875
+ }
20876
+
20860
20877
  if (typeof this.input.checkDisplayValueSlotChange === 'function') {
20861
20878
  this.input.checkDisplayValueSlotChange();
20862
20879
  this.input.requestUpdate();
@@ -4971,7 +4971,7 @@ let AuroHelpText$2 = class AuroHelpText extends i$3 {
4971
4971
  }
4972
4972
  };
4973
4973
 
4974
- var formkitVersion$2 = '202607160655';
4974
+ var formkitVersion$2 = '202607160725';
4975
4975
 
4976
4976
  let AuroElement$2 = class AuroElement extends i$3 {
4977
4977
  static get properties() {
@@ -5284,22 +5284,25 @@ class AuroDropdown extends AuroElement$2 {
5284
5284
  // getFocusableElements can't find it. Query assigned nodes directly.
5285
5285
  const slot = this.trigger.querySelector('slot[name="trigger"]');
5286
5286
  if (slot) {
5287
- const assigned = slot.assignedElements();
5287
+ const assigned = slot.assignedElements({ flatten: true });
5288
5288
  for (const el of assigned) {
5289
5289
  if (el.hasAttribute('disabled')) {
5290
5290
  continue;
5291
5291
  }
5292
- // Try finding a focusable descendant first (handles non-focusable
5293
- // wrappers like <div> containing a <button>). If none found, try
5294
- // focusing the element directly (works for custom elements like
5295
- // auro-input that have delegatesFocus or a custom focus() method).
5292
+
5293
+ // Try focusing a focusable descendant first (handles non-focusable wrappers).
5296
5294
  const descendants = getFocusableElements(el);
5297
5295
  if (descendants.length > 0) {
5298
5296
  descendants[0].focus();
5299
5297
  return;
5300
5298
  }
5299
+
5300
+ // Otherwise, try focusing the assigned element itself. Only stop if focus moved.
5301
+ const prevActive = document.activeElement;
5301
5302
  el.focus();
5302
- return;
5303
+ if (document.activeElement !== prevActive) {
5304
+ return;
5305
+ }
5303
5306
  }
5304
5307
  }
5305
5308
  // Fallback: try DOM children (non-slotted content)
@@ -5759,7 +5762,7 @@ class AuroDropdown extends AuroElement$2 {
5759
5762
  }
5760
5763
 
5761
5764
  const eventType = event.detail.eventType || "unknown";
5762
- if (!this.isPopoverVisible && this.hasFocus && eventType === "keydown") {
5765
+ if (!this.isPopoverVisible && this.hasFocus && eventType === "keydown" && !this.noHideOnThisFocusLoss) {
5763
5766
  this.focusTrigger();
5764
5767
  }
5765
5768
 
@@ -18642,7 +18645,7 @@ let AuroHelpText$1 = class AuroHelpText extends i$3 {
18642
18645
  }
18643
18646
  };
18644
18647
 
18645
- var formkitVersion$1 = '202607160655';
18648
+ var formkitVersion$1 = '202607160725';
18646
18649
 
18647
18650
  // Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
18648
18651
  // See LICENSE in the project root for license information.
@@ -18941,7 +18944,6 @@ class AuroInput extends BaseInput {
18941
18944
  lightDomContent.children.length > 0 ||
18942
18945
  lightDomContent.shadowRoot !== null
18943
18946
  ));
18944
- this.requestUpdate();
18945
18947
  return;
18946
18948
  }
18947
18949
  const nodes = slot.assignedNodes({ flatten: true });
@@ -18965,8 +18967,6 @@ class AuroInput extends BaseInput {
18965
18967
  }
18966
18968
  return false;
18967
18969
  });
18968
-
18969
- this.requestUpdate();
18970
18970
  }
18971
18971
 
18972
18972
  firstUpdated() {
@@ -19793,7 +19793,7 @@ class AuroBibtemplate extends i$3 {
19793
19793
  }
19794
19794
  }
19795
19795
 
19796
- var formkitVersion = '202607160655';
19796
+ var formkitVersion = '202607160725';
19797
19797
 
19798
19798
  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}`;
19799
19799
 
@@ -20850,13 +20850,30 @@ class AuroCombobox extends AuroElement {
20850
20850
  // human-readable label (e.g. "Seattle, WA"). For consumers where
20851
20851
  // value ≠ label, this produces a brief flash of the raw value until
20852
20852
  // the option elements load and updateTriggerTextDisplay re-runs with
20853
- // the correct label. This is intentionally preferred over a blank
20854
- // state — the displayValueInTrigger.remove() cleanup above ensures
20855
- // this placeholder is replaced once the real option is available.
20856
- const syntheticDV = document.createElement('span');
20857
- syntheticDV.setAttribute('slot', 'displayValue');
20858
- syntheticDV.textContent = this.value;
20859
- this.input.appendChild(syntheticDV);
20853
+ // the correct label.
20854
+
20855
+ // Avoid adding synthetic content when a consumer already provides
20856
+ // displayValue content via the forwarded slot.
20857
+ const forwarderSlot = this.input.querySelector('slot[name="displayValue"][slot="displayValue"]');
20858
+ const hasSlottedDisplayValue = Boolean(forwarderSlot?.assignedNodes({ flatten: true }).some((node) => {
20859
+ if (node.nodeType === Node.TEXT_NODE) {
20860
+ return node.textContent.trim().length > 0;
20861
+ }
20862
+ if (node.nodeType === Node.ELEMENT_NODE) {
20863
+ return node.textContent.trim().length > 0 ||
20864
+ node.children.length > 0 ||
20865
+ node.shadowRoot !== null;
20866
+ }
20867
+ return false;
20868
+ }));
20869
+
20870
+ if (!hasSlottedDisplayValue) {
20871
+ const syntheticDV = document.createElement('span');
20872
+ syntheticDV.setAttribute('slot', 'displayValue');
20873
+ syntheticDV.textContent = this.value;
20874
+ this.input.appendChild(syntheticDV);
20875
+ }
20876
+
20860
20877
  if (typeof this.input.checkDisplayValueSlotChange === 'function') {
20861
20878
  this.input.checkDisplayValueSlotChange();
20862
20879
  this.input.requestUpdate();
@@ -4986,7 +4986,7 @@ let AuroHelpText$2 = class AuroHelpText extends i$3 {
4986
4986
  }
4987
4987
  };
4988
4988
 
4989
- var formkitVersion$2 = '202607160655';
4989
+ var formkitVersion$2 = '202607160725';
4990
4990
 
4991
4991
  let AuroElement$2 = class AuroElement extends i$3 {
4992
4992
  static get properties() {
@@ -5299,22 +5299,25 @@ class AuroDropdown extends AuroElement$2 {
5299
5299
  // getFocusableElements can't find it. Query assigned nodes directly.
5300
5300
  const slot = this.trigger.querySelector('slot[name="trigger"]');
5301
5301
  if (slot) {
5302
- const assigned = slot.assignedElements();
5302
+ const assigned = slot.assignedElements({ flatten: true });
5303
5303
  for (const el of assigned) {
5304
5304
  if (el.hasAttribute('disabled')) {
5305
5305
  continue;
5306
5306
  }
5307
- // Try finding a focusable descendant first (handles non-focusable
5308
- // wrappers like <div> containing a <button>). If none found, try
5309
- // focusing the element directly (works for custom elements like
5310
- // auro-input that have delegatesFocus or a custom focus() method).
5307
+
5308
+ // Try focusing a focusable descendant first (handles non-focusable wrappers).
5311
5309
  const descendants = getFocusableElements(el);
5312
5310
  if (descendants.length > 0) {
5313
5311
  descendants[0].focus();
5314
5312
  return;
5315
5313
  }
5314
+
5315
+ // Otherwise, try focusing the assigned element itself. Only stop if focus moved.
5316
+ const prevActive = document.activeElement;
5316
5317
  el.focus();
5317
- return;
5318
+ if (document.activeElement !== prevActive) {
5319
+ return;
5320
+ }
5318
5321
  }
5319
5322
  }
5320
5323
  // Fallback: try DOM children (non-slotted content)
@@ -5774,7 +5777,7 @@ class AuroDropdown extends AuroElement$2 {
5774
5777
  }
5775
5778
 
5776
5779
  const eventType = event.detail.eventType || "unknown";
5777
- if (!this.isPopoverVisible && this.hasFocus && eventType === "keydown") {
5780
+ if (!this.isPopoverVisible && this.hasFocus && eventType === "keydown" && !this.noHideOnThisFocusLoss) {
5778
5781
  this.focusTrigger();
5779
5782
  }
5780
5783
 
@@ -18657,7 +18660,7 @@ let AuroHelpText$1 = class AuroHelpText extends i$3 {
18657
18660
  }
18658
18661
  };
18659
18662
 
18660
- var formkitVersion$1 = '202607160655';
18663
+ var formkitVersion$1 = '202607160725';
18661
18664
 
18662
18665
  // Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
18663
18666
  // See LICENSE in the project root for license information.
@@ -18956,7 +18959,6 @@ class AuroInput extends BaseInput {
18956
18959
  lightDomContent.children.length > 0 ||
18957
18960
  lightDomContent.shadowRoot !== null
18958
18961
  ));
18959
- this.requestUpdate();
18960
18962
  return;
18961
18963
  }
18962
18964
  const nodes = slot.assignedNodes({ flatten: true });
@@ -18980,8 +18982,6 @@ class AuroInput extends BaseInput {
18980
18982
  }
18981
18983
  return false;
18982
18984
  });
18983
-
18984
- this.requestUpdate();
18985
18985
  }
18986
18986
 
18987
18987
  firstUpdated() {
@@ -19808,7 +19808,7 @@ class AuroBibtemplate extends i$3 {
19808
19808
  }
19809
19809
  }
19810
19810
 
19811
- var formkitVersion = '202607160655';
19811
+ var formkitVersion = '202607160725';
19812
19812
 
19813
19813
  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}`;
19814
19814
 
@@ -20865,13 +20865,30 @@ class AuroCombobox extends AuroElement {
20865
20865
  // human-readable label (e.g. "Seattle, WA"). For consumers where
20866
20866
  // value ≠ label, this produces a brief flash of the raw value until
20867
20867
  // the option elements load and updateTriggerTextDisplay re-runs with
20868
- // the correct label. This is intentionally preferred over a blank
20869
- // state — the displayValueInTrigger.remove() cleanup above ensures
20870
- // this placeholder is replaced once the real option is available.
20871
- const syntheticDV = document.createElement('span');
20872
- syntheticDV.setAttribute('slot', 'displayValue');
20873
- syntheticDV.textContent = this.value;
20874
- this.input.appendChild(syntheticDV);
20868
+ // the correct label.
20869
+
20870
+ // Avoid adding synthetic content when a consumer already provides
20871
+ // displayValue content via the forwarded slot.
20872
+ const forwarderSlot = this.input.querySelector('slot[name="displayValue"][slot="displayValue"]');
20873
+ const hasSlottedDisplayValue = Boolean(forwarderSlot?.assignedNodes({ flatten: true }).some((node) => {
20874
+ if (node.nodeType === Node.TEXT_NODE) {
20875
+ return node.textContent.trim().length > 0;
20876
+ }
20877
+ if (node.nodeType === Node.ELEMENT_NODE) {
20878
+ return node.textContent.trim().length > 0 ||
20879
+ node.children.length > 0 ||
20880
+ node.shadowRoot !== null;
20881
+ }
20882
+ return false;
20883
+ }));
20884
+
20885
+ if (!hasSlottedDisplayValue) {
20886
+ const syntheticDV = document.createElement('span');
20887
+ syntheticDV.setAttribute('slot', 'displayValue');
20888
+ syntheticDV.textContent = this.value;
20889
+ this.input.appendChild(syntheticDV);
20890
+ }
20891
+
20875
20892
  if (typeof this.input.checkDisplayValueSlotChange === 'function') {
20876
20893
  this.input.checkDisplayValueSlotChange();
20877
20894
  this.input.requestUpdate();
@@ -4904,7 +4904,7 @@ let AuroHelpText$2 = class AuroHelpText extends LitElement {
4904
4904
  }
4905
4905
  };
4906
4906
 
4907
- var formkitVersion$2 = '202607160655';
4907
+ var formkitVersion$2 = '202607160725';
4908
4908
 
4909
4909
  let AuroElement$2 = class AuroElement extends LitElement {
4910
4910
  static get properties() {
@@ -5217,22 +5217,25 @@ class AuroDropdown extends AuroElement$2 {
5217
5217
  // getFocusableElements can't find it. Query assigned nodes directly.
5218
5218
  const slot = this.trigger.querySelector('slot[name="trigger"]');
5219
5219
  if (slot) {
5220
- const assigned = slot.assignedElements();
5220
+ const assigned = slot.assignedElements({ flatten: true });
5221
5221
  for (const el of assigned) {
5222
5222
  if (el.hasAttribute('disabled')) {
5223
5223
  continue;
5224
5224
  }
5225
- // Try finding a focusable descendant first (handles non-focusable
5226
- // wrappers like <div> containing a <button>). If none found, try
5227
- // focusing the element directly (works for custom elements like
5228
- // auro-input that have delegatesFocus or a custom focus() method).
5225
+
5226
+ // Try focusing a focusable descendant first (handles non-focusable wrappers).
5229
5227
  const descendants = getFocusableElements(el);
5230
5228
  if (descendants.length > 0) {
5231
5229
  descendants[0].focus();
5232
5230
  return;
5233
5231
  }
5232
+
5233
+ // Otherwise, try focusing the assigned element itself. Only stop if focus moved.
5234
+ const prevActive = document.activeElement;
5234
5235
  el.focus();
5235
- return;
5236
+ if (document.activeElement !== prevActive) {
5237
+ return;
5238
+ }
5236
5239
  }
5237
5240
  }
5238
5241
  // Fallback: try DOM children (non-slotted content)
@@ -5692,7 +5695,7 @@ class AuroDropdown extends AuroElement$2 {
5692
5695
  }
5693
5696
 
5694
5697
  const eventType = event.detail.eventType || "unknown";
5695
- if (!this.isPopoverVisible && this.hasFocus && eventType === "keydown") {
5698
+ if (!this.isPopoverVisible && this.hasFocus && eventType === "keydown" && !this.noHideOnThisFocusLoss) {
5696
5699
  this.focusTrigger();
5697
5700
  }
5698
5701
 
@@ -18568,7 +18571,7 @@ let AuroHelpText$1 = class AuroHelpText extends LitElement {
18568
18571
  }
18569
18572
  };
18570
18573
 
18571
- var formkitVersion$1 = '202607160655';
18574
+ var formkitVersion$1 = '202607160725';
18572
18575
 
18573
18576
  // Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
18574
18577
  // See LICENSE in the project root for license information.
@@ -18867,7 +18870,6 @@ class AuroInput extends BaseInput {
18867
18870
  lightDomContent.children.length > 0 ||
18868
18871
  lightDomContent.shadowRoot !== null
18869
18872
  ));
18870
- this.requestUpdate();
18871
18873
  return;
18872
18874
  }
18873
18875
  const nodes = slot.assignedNodes({ flatten: true });
@@ -18891,8 +18893,6 @@ class AuroInput extends BaseInput {
18891
18893
  }
18892
18894
  return false;
18893
18895
  });
18894
-
18895
- this.requestUpdate();
18896
18896
  }
18897
18897
 
18898
18898
  firstUpdated() {
@@ -19719,7 +19719,7 @@ class AuroBibtemplate extends LitElement {
19719
19719
  }
19720
19720
  }
19721
19721
 
19722
- var formkitVersion = '202607160655';
19722
+ var formkitVersion = '202607160725';
19723
19723
 
19724
19724
  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}`;
19725
19725
 
@@ -20776,13 +20776,30 @@ class AuroCombobox extends AuroElement {
20776
20776
  // human-readable label (e.g. "Seattle, WA"). For consumers where
20777
20777
  // value ≠ label, this produces a brief flash of the raw value until
20778
20778
  // the option elements load and updateTriggerTextDisplay re-runs with
20779
- // the correct label. This is intentionally preferred over a blank
20780
- // state — the displayValueInTrigger.remove() cleanup above ensures
20781
- // this placeholder is replaced once the real option is available.
20782
- const syntheticDV = document.createElement('span');
20783
- syntheticDV.setAttribute('slot', 'displayValue');
20784
- syntheticDV.textContent = this.value;
20785
- this.input.appendChild(syntheticDV);
20779
+ // the correct label.
20780
+
20781
+ // Avoid adding synthetic content when a consumer already provides
20782
+ // displayValue content via the forwarded slot.
20783
+ const forwarderSlot = this.input.querySelector('slot[name="displayValue"][slot="displayValue"]');
20784
+ const hasSlottedDisplayValue = Boolean(forwarderSlot?.assignedNodes({ flatten: true }).some((node) => {
20785
+ if (node.nodeType === Node.TEXT_NODE) {
20786
+ return node.textContent.trim().length > 0;
20787
+ }
20788
+ if (node.nodeType === Node.ELEMENT_NODE) {
20789
+ return node.textContent.trim().length > 0 ||
20790
+ node.children.length > 0 ||
20791
+ node.shadowRoot !== null;
20792
+ }
20793
+ return false;
20794
+ }));
20795
+
20796
+ if (!hasSlottedDisplayValue) {
20797
+ const syntheticDV = document.createElement('span');
20798
+ syntheticDV.setAttribute('slot', 'displayValue');
20799
+ syntheticDV.textContent = this.value;
20800
+ this.input.appendChild(syntheticDV);
20801
+ }
20802
+
20786
20803
  if (typeof this.input.checkDisplayValueSlotChange === 'function') {
20787
20804
  this.input.checkDisplayValueSlotChange();
20788
20805
  this.input.requestUpdate();
@@ -4904,7 +4904,7 @@ let AuroHelpText$2 = class AuroHelpText extends LitElement {
4904
4904
  }
4905
4905
  };
4906
4906
 
4907
- var formkitVersion$2 = '202607160655';
4907
+ var formkitVersion$2 = '202607160725';
4908
4908
 
4909
4909
  let AuroElement$2 = class AuroElement extends LitElement {
4910
4910
  static get properties() {
@@ -5217,22 +5217,25 @@ class AuroDropdown extends AuroElement$2 {
5217
5217
  // getFocusableElements can't find it. Query assigned nodes directly.
5218
5218
  const slot = this.trigger.querySelector('slot[name="trigger"]');
5219
5219
  if (slot) {
5220
- const assigned = slot.assignedElements();
5220
+ const assigned = slot.assignedElements({ flatten: true });
5221
5221
  for (const el of assigned) {
5222
5222
  if (el.hasAttribute('disabled')) {
5223
5223
  continue;
5224
5224
  }
5225
- // Try finding a focusable descendant first (handles non-focusable
5226
- // wrappers like <div> containing a <button>). If none found, try
5227
- // focusing the element directly (works for custom elements like
5228
- // auro-input that have delegatesFocus or a custom focus() method).
5225
+
5226
+ // Try focusing a focusable descendant first (handles non-focusable wrappers).
5229
5227
  const descendants = getFocusableElements(el);
5230
5228
  if (descendants.length > 0) {
5231
5229
  descendants[0].focus();
5232
5230
  return;
5233
5231
  }
5232
+
5233
+ // Otherwise, try focusing the assigned element itself. Only stop if focus moved.
5234
+ const prevActive = document.activeElement;
5234
5235
  el.focus();
5235
- return;
5236
+ if (document.activeElement !== prevActive) {
5237
+ return;
5238
+ }
5236
5239
  }
5237
5240
  }
5238
5241
  // Fallback: try DOM children (non-slotted content)
@@ -5692,7 +5695,7 @@ class AuroDropdown extends AuroElement$2 {
5692
5695
  }
5693
5696
 
5694
5697
  const eventType = event.detail.eventType || "unknown";
5695
- if (!this.isPopoverVisible && this.hasFocus && eventType === "keydown") {
5698
+ if (!this.isPopoverVisible && this.hasFocus && eventType === "keydown" && !this.noHideOnThisFocusLoss) {
5696
5699
  this.focusTrigger();
5697
5700
  }
5698
5701
 
@@ -18568,7 +18571,7 @@ let AuroHelpText$1 = class AuroHelpText extends LitElement {
18568
18571
  }
18569
18572
  };
18570
18573
 
18571
- var formkitVersion$1 = '202607160655';
18574
+ var formkitVersion$1 = '202607160725';
18572
18575
 
18573
18576
  // Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
18574
18577
  // See LICENSE in the project root for license information.
@@ -18867,7 +18870,6 @@ class AuroInput extends BaseInput {
18867
18870
  lightDomContent.children.length > 0 ||
18868
18871
  lightDomContent.shadowRoot !== null
18869
18872
  ));
18870
- this.requestUpdate();
18871
18873
  return;
18872
18874
  }
18873
18875
  const nodes = slot.assignedNodes({ flatten: true });
@@ -18891,8 +18893,6 @@ class AuroInput extends BaseInput {
18891
18893
  }
18892
18894
  return false;
18893
18895
  });
18894
-
18895
- this.requestUpdate();
18896
18896
  }
18897
18897
 
18898
18898
  firstUpdated() {
@@ -19719,7 +19719,7 @@ class AuroBibtemplate extends LitElement {
19719
19719
  }
19720
19720
  }
19721
19721
 
19722
- var formkitVersion = '202607160655';
19722
+ var formkitVersion = '202607160725';
19723
19723
 
19724
19724
  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}`;
19725
19725
 
@@ -20776,13 +20776,30 @@ class AuroCombobox extends AuroElement {
20776
20776
  // human-readable label (e.g. "Seattle, WA"). For consumers where
20777
20777
  // value ≠ label, this produces a brief flash of the raw value until
20778
20778
  // the option elements load and updateTriggerTextDisplay re-runs with
20779
- // the correct label. This is intentionally preferred over a blank
20780
- // state — the displayValueInTrigger.remove() cleanup above ensures
20781
- // this placeholder is replaced once the real option is available.
20782
- const syntheticDV = document.createElement('span');
20783
- syntheticDV.setAttribute('slot', 'displayValue');
20784
- syntheticDV.textContent = this.value;
20785
- this.input.appendChild(syntheticDV);
20779
+ // the correct label.
20780
+
20781
+ // Avoid adding synthetic content when a consumer already provides
20782
+ // displayValue content via the forwarded slot.
20783
+ const forwarderSlot = this.input.querySelector('slot[name="displayValue"][slot="displayValue"]');
20784
+ const hasSlottedDisplayValue = Boolean(forwarderSlot?.assignedNodes({ flatten: true }).some((node) => {
20785
+ if (node.nodeType === Node.TEXT_NODE) {
20786
+ return node.textContent.trim().length > 0;
20787
+ }
20788
+ if (node.nodeType === Node.ELEMENT_NODE) {
20789
+ return node.textContent.trim().length > 0 ||
20790
+ node.children.length > 0 ||
20791
+ node.shadowRoot !== null;
20792
+ }
20793
+ return false;
20794
+ }));
20795
+
20796
+ if (!hasSlottedDisplayValue) {
20797
+ const syntheticDV = document.createElement('span');
20798
+ syntheticDV.setAttribute('slot', 'displayValue');
20799
+ syntheticDV.textContent = this.value;
20800
+ this.input.appendChild(syntheticDV);
20801
+ }
20802
+
20786
20803
  if (typeof this.input.checkDisplayValueSlotChange === 'function') {
20787
20804
  this.input.checkDisplayValueSlotChange();
20788
20805
  this.input.requestUpdate();