@aurodesignsystem-dev/auro-formkit 0.0.0-pr1507.0 → 0.0.0-pr1509.0

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 (61) hide show
  1. package/components/checkbox/demo/customize.html +1 -2
  2. package/components/checkbox/demo/customize.min.js +1 -1
  3. package/components/checkbox/demo/getting-started.min.js +1 -1
  4. package/components/checkbox/demo/index.min.js +1 -1
  5. package/components/checkbox/dist/index.js +1 -1
  6. package/components/checkbox/dist/registered.js +1 -1
  7. package/components/combobox/demo/customize.html +1 -2
  8. package/components/combobox/demo/customize.md +108 -132
  9. package/components/combobox/demo/customize.min.js +30 -21
  10. package/components/combobox/demo/getting-started.min.js +30 -21
  11. package/components/combobox/demo/index.min.js +30 -21
  12. package/components/combobox/dist/index.js +30 -21
  13. package/components/combobox/dist/registered.js +30 -21
  14. package/components/counter/demo/customize.min.js +10 -2
  15. package/components/counter/demo/index.min.js +10 -2
  16. package/components/counter/dist/index.js +10 -2
  17. package/components/counter/dist/registered.js +10 -2
  18. package/components/datepicker/demo/api.md +2 -0
  19. package/components/datepicker/demo/customize.js +0 -2
  20. package/components/datepicker/demo/customize.md +138 -38
  21. package/components/datepicker/demo/customize.min.js +36 -22
  22. package/components/datepicker/demo/index.min.js +36 -4
  23. package/components/datepicker/dist/index.js +36 -4
  24. package/components/datepicker/dist/registered.js +36 -4
  25. package/components/datepicker/dist/src/auro-datepicker.d.ts +2 -0
  26. package/components/dropdown/demo/customize.min.js +9 -1
  27. package/components/dropdown/demo/getting-started.min.js +9 -1
  28. package/components/dropdown/demo/index.min.js +9 -1
  29. package/components/dropdown/dist/auro-dropdown.d.ts +1 -0
  30. package/components/dropdown/dist/index.js +9 -1
  31. package/components/dropdown/dist/registered.js +9 -1
  32. package/components/form/demo/customize.html +6 -6
  33. package/components/form/demo/customize.js +19 -0
  34. package/components/form/demo/customize.md +203 -51
  35. package/components/form/demo/customize.min.js +542 -69
  36. package/components/form/demo/getting-started.min.js +470 -69
  37. package/components/form/demo/index.min.js +470 -69
  38. package/components/form/demo/registerDemoDeps.min.js +107 -32
  39. package/components/form/dist/auro-form.d.ts +122 -4
  40. package/components/form/dist/index.js +363 -37
  41. package/components/form/dist/registered.js +363 -37
  42. package/components/input/demo/customize.html +1 -2
  43. package/components/input/demo/customize.md +54 -53
  44. package/components/input/demo/customize.min.js +19 -1
  45. package/components/input/demo/getting-started.min.js +19 -1
  46. package/components/input/demo/index.min.js +19 -1
  47. package/components/input/dist/index.js +19 -1
  48. package/components/input/dist/registered.js +19 -1
  49. package/components/radio/demo/customize.min.js +1 -1
  50. package/components/radio/demo/getting-started.min.js +1 -1
  51. package/components/radio/demo/index.min.js +1 -1
  52. package/components/radio/dist/index.js +1 -1
  53. package/components/radio/dist/registered.js +1 -1
  54. package/components/select/demo/customize.html +1 -2
  55. package/components/select/demo/customize.min.js +10 -2
  56. package/components/select/demo/getting-started.min.js +10 -2
  57. package/components/select/demo/index.min.js +10 -2
  58. package/components/select/dist/index.js +10 -2
  59. package/components/select/dist/registered.js +10 -2
  60. package/custom-elements.json +1557 -1428
  61. package/package.json +1 -1
@@ -4873,7 +4873,7 @@ let AuroHelpText$2 = class AuroHelpText extends i$3 {
4873
4873
  }
4874
4874
  };
4875
4875
 
4876
- var formkitVersion$2 = '202606192121';
4876
+ var formkitVersion$2 = '202606232113';
4877
4877
 
4878
4878
  let AuroElement$2 = class AuroElement extends i$3 {
4879
4879
  static get properties() {
@@ -5824,6 +5824,14 @@ class AuroDropdown extends AuroElement$2 {
5824
5824
  };
5825
5825
  this.addEventListener('keydown', this._bibTabHandler);
5826
5826
 
5827
+ // Suppress AuroFloatingUI's auto-hide-on-focus-loss while the
5828
+ // desktopModal trap owns focus management. Without this, the very
5829
+ // first focus move into the bib (from the RAF below) triggers
5830
+ // handleFocusLoss → hideBib, tearing down the trap before the
5831
+ // user can press Tab.
5832
+ this._priorNoHideOnFocusLoss = this.noHideOnThisFocusLoss;
5833
+ this.noHideOnThisFocusLoss = true;
5834
+
5827
5835
  // Move initial focus into the bib content, matching FocusTrap behavior
5828
5836
  requestAnimationFrame(() => {
5829
5837
  const focusables = getFocusableElements(this.bibContent);
@@ -17405,6 +17413,11 @@ class BaseInput extends AuroElement$1 {
17405
17413
  }
17406
17414
 
17407
17415
  // add attribute for query selectors when auro-input is registered under a custom name
17416
+ // COVERAGE: the body of this branch is unreachable in WTR — connectedCallback
17417
+ // performs the same `setAttribute('auro-input', '')` earlier (see L665-667),
17418
+ // so by the time firstUpdated runs the attribute is already present and the
17419
+ // `!hasAttribute('auro-input')` guard is false. Retained as a defensive
17420
+ // safety net in case connectedCallback is ever short-circuited.
17408
17421
  if (this.tagName.toLowerCase() !== 'auro-input' && !this.hasAttribute('auro-input')) {
17409
17422
  this.setAttribute('auro-input', '');
17410
17423
  }
@@ -17494,6 +17507,13 @@ class BaseInput extends AuroElement$1 {
17494
17507
 
17495
17508
  if (typeToI18n.includes(this.type)) {
17496
17509
  this.setCustomValidityForType = i18n(this.lang, this.type);
17510
+ // COVERAGE: this `else if` branch is unreachable in WTR. connectedCallback
17511
+ // (L682) calls configureDataForType, which at L1266-1268 assigns
17512
+ // `this.format = this.util.getDateMaskFromLocale().toLowerCase()` for any
17513
+ // type=date input whose `format` attribute is unset. That runs before
17514
+ // firstUpdated invokes setCustomHelpTextMessage, so `!this.format` is
17515
+ // always false here. Retained as a defensive fallback; the whole function
17516
+ // is @deprecated per AB#1557296 and slated for removal.
17497
17517
  } else if (!this.format && this.type === 'date') {
17498
17518
  this.setCustomValidityForType = i18n(this.lang, 'dateMMDDYYYY');
17499
17519
  } else if (this.dateFormatMap[this.format]) {
@@ -17971,6 +17991,12 @@ class BaseInput extends AuroElement$1 {
17971
17991
  */
17972
17992
  get placeholderStr() {
17973
17993
  if (!this.placeholder && this.type === 'date') {
17994
+ // COVERAGE: the `'MM/DD/YYYY'` literal fallback is unreachable in WTR.
17995
+ // connectedCallback (L682) calls configureDataForType, which at L1266-1268
17996
+ // assigns `this.format = this.util.getDateMaskFromLocale().toLowerCase()`
17997
+ // when type=date and format is unset. That runs before the first render
17998
+ // reads this getter, so the ternary's truthy arm always wins. Retained
17999
+ // as a defensive fallback for direct getter calls before connection.
17974
18000
  return this.format ? this.format.toUpperCase() : 'MM/DD/YYYY';
17975
18001
  }
17976
18002
  return this.placeholder || "";
@@ -18462,7 +18488,7 @@ let AuroHelpText$1 = class AuroHelpText extends i$3 {
18462
18488
  }
18463
18489
  };
18464
18490
 
18465
- var formkitVersion$1 = '202606192121';
18491
+ var formkitVersion$1 = '202606232113';
18466
18492
 
18467
18493
  // Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
18468
18494
  // See LICENSE in the project root for license information.
@@ -19583,7 +19609,7 @@ class AuroBibtemplate extends i$3 {
19583
19609
  }
19584
19610
  }
19585
19611
 
19586
- var formkitVersion = '202606192121';
19612
+ var formkitVersion = '202606232113';
19587
19613
 
19588
19614
  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}`;
19589
19615
 
@@ -20934,24 +20960,7 @@ class AuroCombobox extends AuroElement {
20934
20960
  nativeInput.setSelectionRange(len, len);
20935
20961
  }
20936
20962
  } else {
20937
- // Safety net for the strategy-change setTimeout: a viewport-crossing
20938
- // fullscreen→floating switch can close the dialog and leave focus on
20939
- // body. Every other Branch 2 callsite already has focus on the input
20940
- // via the focusin → this.focus() redirect (L1448-1452), so this is a
20941
- // no-op in the common case.
20942
- if (!this.input.componentHasFocus) {
20943
- this.input.focus();
20944
- }
20945
-
20946
- // Park the trigger native input's caret at end-of-text every time the
20947
- // popover opens. Chrome focuses the native via the floating <label for="…">
20948
- // overlay on click and resets selection to [0, 0]; no JS fires between
20949
- // mousedown and selectionchange, so we restore the caret here.
20950
- const triggerNativeInput = this.input.inputElement;
20951
- if (triggerNativeInput && triggerNativeInput.value) {
20952
- const len = triggerNativeInput.value.length;
20953
- triggerNativeInput.setSelectionRange(len, len);
20954
- }
20963
+ this.input.focus();
20955
20964
  }
20956
20965
  }
20957
20966
 
@@ -4873,7 +4873,7 @@ let AuroHelpText$2 = class AuroHelpText extends i$3 {
4873
4873
  }
4874
4874
  };
4875
4875
 
4876
- var formkitVersion$2 = '202606192121';
4876
+ var formkitVersion$2 = '202606232113';
4877
4877
 
4878
4878
  let AuroElement$2 = class AuroElement extends i$3 {
4879
4879
  static get properties() {
@@ -5824,6 +5824,14 @@ class AuroDropdown extends AuroElement$2 {
5824
5824
  };
5825
5825
  this.addEventListener('keydown', this._bibTabHandler);
5826
5826
 
5827
+ // Suppress AuroFloatingUI's auto-hide-on-focus-loss while the
5828
+ // desktopModal trap owns focus management. Without this, the very
5829
+ // first focus move into the bib (from the RAF below) triggers
5830
+ // handleFocusLoss → hideBib, tearing down the trap before the
5831
+ // user can press Tab.
5832
+ this._priorNoHideOnFocusLoss = this.noHideOnThisFocusLoss;
5833
+ this.noHideOnThisFocusLoss = true;
5834
+
5827
5835
  // Move initial focus into the bib content, matching FocusTrap behavior
5828
5836
  requestAnimationFrame(() => {
5829
5837
  const focusables = getFocusableElements(this.bibContent);
@@ -17405,6 +17413,11 @@ class BaseInput extends AuroElement$1 {
17405
17413
  }
17406
17414
 
17407
17415
  // add attribute for query selectors when auro-input is registered under a custom name
17416
+ // COVERAGE: the body of this branch is unreachable in WTR — connectedCallback
17417
+ // performs the same `setAttribute('auro-input', '')` earlier (see L665-667),
17418
+ // so by the time firstUpdated runs the attribute is already present and the
17419
+ // `!hasAttribute('auro-input')` guard is false. Retained as a defensive
17420
+ // safety net in case connectedCallback is ever short-circuited.
17408
17421
  if (this.tagName.toLowerCase() !== 'auro-input' && !this.hasAttribute('auro-input')) {
17409
17422
  this.setAttribute('auro-input', '');
17410
17423
  }
@@ -17494,6 +17507,13 @@ class BaseInput extends AuroElement$1 {
17494
17507
 
17495
17508
  if (typeToI18n.includes(this.type)) {
17496
17509
  this.setCustomValidityForType = i18n(this.lang, this.type);
17510
+ // COVERAGE: this `else if` branch is unreachable in WTR. connectedCallback
17511
+ // (L682) calls configureDataForType, which at L1266-1268 assigns
17512
+ // `this.format = this.util.getDateMaskFromLocale().toLowerCase()` for any
17513
+ // type=date input whose `format` attribute is unset. That runs before
17514
+ // firstUpdated invokes setCustomHelpTextMessage, so `!this.format` is
17515
+ // always false here. Retained as a defensive fallback; the whole function
17516
+ // is @deprecated per AB#1557296 and slated for removal.
17497
17517
  } else if (!this.format && this.type === 'date') {
17498
17518
  this.setCustomValidityForType = i18n(this.lang, 'dateMMDDYYYY');
17499
17519
  } else if (this.dateFormatMap[this.format]) {
@@ -17971,6 +17991,12 @@ class BaseInput extends AuroElement$1 {
17971
17991
  */
17972
17992
  get placeholderStr() {
17973
17993
  if (!this.placeholder && this.type === 'date') {
17994
+ // COVERAGE: the `'MM/DD/YYYY'` literal fallback is unreachable in WTR.
17995
+ // connectedCallback (L682) calls configureDataForType, which at L1266-1268
17996
+ // assigns `this.format = this.util.getDateMaskFromLocale().toLowerCase()`
17997
+ // when type=date and format is unset. That runs before the first render
17998
+ // reads this getter, so the ternary's truthy arm always wins. Retained
17999
+ // as a defensive fallback for direct getter calls before connection.
17974
18000
  return this.format ? this.format.toUpperCase() : 'MM/DD/YYYY';
17975
18001
  }
17976
18002
  return this.placeholder || "";
@@ -18462,7 +18488,7 @@ let AuroHelpText$1 = class AuroHelpText extends i$3 {
18462
18488
  }
18463
18489
  };
18464
18490
 
18465
- var formkitVersion$1 = '202606192121';
18491
+ var formkitVersion$1 = '202606232113';
18466
18492
 
18467
18493
  // Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
18468
18494
  // See LICENSE in the project root for license information.
@@ -19583,7 +19609,7 @@ class AuroBibtemplate extends i$3 {
19583
19609
  }
19584
19610
  }
19585
19611
 
19586
- var formkitVersion = '202606192121';
19612
+ var formkitVersion = '202606232113';
19587
19613
 
19588
19614
  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}`;
19589
19615
 
@@ -20934,24 +20960,7 @@ class AuroCombobox extends AuroElement {
20934
20960
  nativeInput.setSelectionRange(len, len);
20935
20961
  }
20936
20962
  } else {
20937
- // Safety net for the strategy-change setTimeout: a viewport-crossing
20938
- // fullscreen→floating switch can close the dialog and leave focus on
20939
- // body. Every other Branch 2 callsite already has focus on the input
20940
- // via the focusin → this.focus() redirect (L1448-1452), so this is a
20941
- // no-op in the common case.
20942
- if (!this.input.componentHasFocus) {
20943
- this.input.focus();
20944
- }
20945
-
20946
- // Park the trigger native input's caret at end-of-text every time the
20947
- // popover opens. Chrome focuses the native via the floating <label for="…">
20948
- // overlay on click and resets selection to [0, 0]; no JS fires between
20949
- // mousedown and selectionchange, so we restore the caret here.
20950
- const triggerNativeInput = this.input.inputElement;
20951
- if (triggerNativeInput && triggerNativeInput.value) {
20952
- const len = triggerNativeInput.value.length;
20953
- triggerNativeInput.setSelectionRange(len, len);
20954
- }
20963
+ this.input.focus();
20955
20964
  }
20956
20965
  }
20957
20966
 
@@ -4888,7 +4888,7 @@ let AuroHelpText$2 = class AuroHelpText extends i$3 {
4888
4888
  }
4889
4889
  };
4890
4890
 
4891
- var formkitVersion$2 = '202606192121';
4891
+ var formkitVersion$2 = '202606232113';
4892
4892
 
4893
4893
  let AuroElement$2 = class AuroElement extends i$3 {
4894
4894
  static get properties() {
@@ -5839,6 +5839,14 @@ class AuroDropdown extends AuroElement$2 {
5839
5839
  };
5840
5840
  this.addEventListener('keydown', this._bibTabHandler);
5841
5841
 
5842
+ // Suppress AuroFloatingUI's auto-hide-on-focus-loss while the
5843
+ // desktopModal trap owns focus management. Without this, the very
5844
+ // first focus move into the bib (from the RAF below) triggers
5845
+ // handleFocusLoss → hideBib, tearing down the trap before the
5846
+ // user can press Tab.
5847
+ this._priorNoHideOnFocusLoss = this.noHideOnThisFocusLoss;
5848
+ this.noHideOnThisFocusLoss = true;
5849
+
5842
5850
  // Move initial focus into the bib content, matching FocusTrap behavior
5843
5851
  requestAnimationFrame(() => {
5844
5852
  const focusables = getFocusableElements(this.bibContent);
@@ -17420,6 +17428,11 @@ class BaseInput extends AuroElement$1 {
17420
17428
  }
17421
17429
 
17422
17430
  // add attribute for query selectors when auro-input is registered under a custom name
17431
+ // COVERAGE: the body of this branch is unreachable in WTR — connectedCallback
17432
+ // performs the same `setAttribute('auro-input', '')` earlier (see L665-667),
17433
+ // so by the time firstUpdated runs the attribute is already present and the
17434
+ // `!hasAttribute('auro-input')` guard is false. Retained as a defensive
17435
+ // safety net in case connectedCallback is ever short-circuited.
17423
17436
  if (this.tagName.toLowerCase() !== 'auro-input' && !this.hasAttribute('auro-input')) {
17424
17437
  this.setAttribute('auro-input', '');
17425
17438
  }
@@ -17509,6 +17522,13 @@ class BaseInput extends AuroElement$1 {
17509
17522
 
17510
17523
  if (typeToI18n.includes(this.type)) {
17511
17524
  this.setCustomValidityForType = i18n(this.lang, this.type);
17525
+ // COVERAGE: this `else if` branch is unreachable in WTR. connectedCallback
17526
+ // (L682) calls configureDataForType, which at L1266-1268 assigns
17527
+ // `this.format = this.util.getDateMaskFromLocale().toLowerCase()` for any
17528
+ // type=date input whose `format` attribute is unset. That runs before
17529
+ // firstUpdated invokes setCustomHelpTextMessage, so `!this.format` is
17530
+ // always false here. Retained as a defensive fallback; the whole function
17531
+ // is @deprecated per AB#1557296 and slated for removal.
17512
17532
  } else if (!this.format && this.type === 'date') {
17513
17533
  this.setCustomValidityForType = i18n(this.lang, 'dateMMDDYYYY');
17514
17534
  } else if (this.dateFormatMap[this.format]) {
@@ -17986,6 +18006,12 @@ class BaseInput extends AuroElement$1 {
17986
18006
  */
17987
18007
  get placeholderStr() {
17988
18008
  if (!this.placeholder && this.type === 'date') {
18009
+ // COVERAGE: the `'MM/DD/YYYY'` literal fallback is unreachable in WTR.
18010
+ // connectedCallback (L682) calls configureDataForType, which at L1266-1268
18011
+ // assigns `this.format = this.util.getDateMaskFromLocale().toLowerCase()`
18012
+ // when type=date and format is unset. That runs before the first render
18013
+ // reads this getter, so the ternary's truthy arm always wins. Retained
18014
+ // as a defensive fallback for direct getter calls before connection.
17989
18015
  return this.format ? this.format.toUpperCase() : 'MM/DD/YYYY';
17990
18016
  }
17991
18017
  return this.placeholder || "";
@@ -18477,7 +18503,7 @@ let AuroHelpText$1 = class AuroHelpText extends i$3 {
18477
18503
  }
18478
18504
  };
18479
18505
 
18480
- var formkitVersion$1 = '202606192121';
18506
+ var formkitVersion$1 = '202606232113';
18481
18507
 
18482
18508
  // Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
18483
18509
  // See LICENSE in the project root for license information.
@@ -19598,7 +19624,7 @@ class AuroBibtemplate extends i$3 {
19598
19624
  }
19599
19625
  }
19600
19626
 
19601
- var formkitVersion = '202606192121';
19627
+ var formkitVersion = '202606232113';
19602
19628
 
19603
19629
  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}`;
19604
19630
 
@@ -20949,24 +20975,7 @@ class AuroCombobox extends AuroElement {
20949
20975
  nativeInput.setSelectionRange(len, len);
20950
20976
  }
20951
20977
  } else {
20952
- // Safety net for the strategy-change setTimeout: a viewport-crossing
20953
- // fullscreen→floating switch can close the dialog and leave focus on
20954
- // body. Every other Branch 2 callsite already has focus on the input
20955
- // via the focusin → this.focus() redirect (L1448-1452), so this is a
20956
- // no-op in the common case.
20957
- if (!this.input.componentHasFocus) {
20958
- this.input.focus();
20959
- }
20960
-
20961
- // Park the trigger native input's caret at end-of-text every time the
20962
- // popover opens. Chrome focuses the native via the floating <label for="…">
20963
- // overlay on click and resets selection to [0, 0]; no JS fires between
20964
- // mousedown and selectionchange, so we restore the caret here.
20965
- const triggerNativeInput = this.input.inputElement;
20966
- if (triggerNativeInput && triggerNativeInput.value) {
20967
- const len = triggerNativeInput.value.length;
20968
- triggerNativeInput.setSelectionRange(len, len);
20969
- }
20978
+ this.input.focus();
20970
20979
  }
20971
20980
  }
20972
20981
 
@@ -4806,7 +4806,7 @@ let AuroHelpText$2 = class AuroHelpText extends LitElement {
4806
4806
  }
4807
4807
  };
4808
4808
 
4809
- var formkitVersion$2 = '202606192121';
4809
+ var formkitVersion$2 = '202606232113';
4810
4810
 
4811
4811
  let AuroElement$2 = class AuroElement extends LitElement {
4812
4812
  static get properties() {
@@ -5757,6 +5757,14 @@ class AuroDropdown extends AuroElement$2 {
5757
5757
  };
5758
5758
  this.addEventListener('keydown', this._bibTabHandler);
5759
5759
 
5760
+ // Suppress AuroFloatingUI's auto-hide-on-focus-loss while the
5761
+ // desktopModal trap owns focus management. Without this, the very
5762
+ // first focus move into the bib (from the RAF below) triggers
5763
+ // handleFocusLoss → hideBib, tearing down the trap before the
5764
+ // user can press Tab.
5765
+ this._priorNoHideOnFocusLoss = this.noHideOnThisFocusLoss;
5766
+ this.noHideOnThisFocusLoss = true;
5767
+
5760
5768
  // Move initial focus into the bib content, matching FocusTrap behavior
5761
5769
  requestAnimationFrame(() => {
5762
5770
  const focusables = getFocusableElements(this.bibContent);
@@ -17331,6 +17339,11 @@ class BaseInput extends AuroElement$1 {
17331
17339
  }
17332
17340
 
17333
17341
  // add attribute for query selectors when auro-input is registered under a custom name
17342
+ // COVERAGE: the body of this branch is unreachable in WTR — connectedCallback
17343
+ // performs the same `setAttribute('auro-input', '')` earlier (see L665-667),
17344
+ // so by the time firstUpdated runs the attribute is already present and the
17345
+ // `!hasAttribute('auro-input')` guard is false. Retained as a defensive
17346
+ // safety net in case connectedCallback is ever short-circuited.
17334
17347
  if (this.tagName.toLowerCase() !== 'auro-input' && !this.hasAttribute('auro-input')) {
17335
17348
  this.setAttribute('auro-input', '');
17336
17349
  }
@@ -17420,6 +17433,13 @@ class BaseInput extends AuroElement$1 {
17420
17433
 
17421
17434
  if (typeToI18n.includes(this.type)) {
17422
17435
  this.setCustomValidityForType = i18n(this.lang, this.type);
17436
+ // COVERAGE: this `else if` branch is unreachable in WTR. connectedCallback
17437
+ // (L682) calls configureDataForType, which at L1266-1268 assigns
17438
+ // `this.format = this.util.getDateMaskFromLocale().toLowerCase()` for any
17439
+ // type=date input whose `format` attribute is unset. That runs before
17440
+ // firstUpdated invokes setCustomHelpTextMessage, so `!this.format` is
17441
+ // always false here. Retained as a defensive fallback; the whole function
17442
+ // is @deprecated per AB#1557296 and slated for removal.
17423
17443
  } else if (!this.format && this.type === 'date') {
17424
17444
  this.setCustomValidityForType = i18n(this.lang, 'dateMMDDYYYY');
17425
17445
  } else if (this.dateFormatMap[this.format]) {
@@ -17897,6 +17917,12 @@ class BaseInput extends AuroElement$1 {
17897
17917
  */
17898
17918
  get placeholderStr() {
17899
17919
  if (!this.placeholder && this.type === 'date') {
17920
+ // COVERAGE: the `'MM/DD/YYYY'` literal fallback is unreachable in WTR.
17921
+ // connectedCallback (L682) calls configureDataForType, which at L1266-1268
17922
+ // assigns `this.format = this.util.getDateMaskFromLocale().toLowerCase()`
17923
+ // when type=date and format is unset. That runs before the first render
17924
+ // reads this getter, so the ternary's truthy arm always wins. Retained
17925
+ // as a defensive fallback for direct getter calls before connection.
17900
17926
  return this.format ? this.format.toUpperCase() : 'MM/DD/YYYY';
17901
17927
  }
17902
17928
  return this.placeholder || "";
@@ -18388,7 +18414,7 @@ let AuroHelpText$1 = class AuroHelpText extends LitElement {
18388
18414
  }
18389
18415
  };
18390
18416
 
18391
- var formkitVersion$1 = '202606192121';
18417
+ var formkitVersion$1 = '202606232113';
18392
18418
 
18393
18419
  // Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
18394
18420
  // See LICENSE in the project root for license information.
@@ -19509,7 +19535,7 @@ class AuroBibtemplate extends LitElement {
19509
19535
  }
19510
19536
  }
19511
19537
 
19512
- var formkitVersion = '202606192121';
19538
+ var formkitVersion = '202606232113';
19513
19539
 
19514
19540
  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}`;
19515
19541
 
@@ -20860,24 +20886,7 @@ class AuroCombobox extends AuroElement {
20860
20886
  nativeInput.setSelectionRange(len, len);
20861
20887
  }
20862
20888
  } else {
20863
- // Safety net for the strategy-change setTimeout: a viewport-crossing
20864
- // fullscreen→floating switch can close the dialog and leave focus on
20865
- // body. Every other Branch 2 callsite already has focus on the input
20866
- // via the focusin → this.focus() redirect (L1448-1452), so this is a
20867
- // no-op in the common case.
20868
- if (!this.input.componentHasFocus) {
20869
- this.input.focus();
20870
- }
20871
-
20872
- // Park the trigger native input's caret at end-of-text every time the
20873
- // popover opens. Chrome focuses the native via the floating <label for="…">
20874
- // overlay on click and resets selection to [0, 0]; no JS fires between
20875
- // mousedown and selectionchange, so we restore the caret here.
20876
- const triggerNativeInput = this.input.inputElement;
20877
- if (triggerNativeInput && triggerNativeInput.value) {
20878
- const len = triggerNativeInput.value.length;
20879
- triggerNativeInput.setSelectionRange(len, len);
20880
- }
20889
+ this.input.focus();
20881
20890
  }
20882
20891
  }
20883
20892
 
@@ -4806,7 +4806,7 @@ let AuroHelpText$2 = class AuroHelpText extends LitElement {
4806
4806
  }
4807
4807
  };
4808
4808
 
4809
- var formkitVersion$2 = '202606192121';
4809
+ var formkitVersion$2 = '202606232113';
4810
4810
 
4811
4811
  let AuroElement$2 = class AuroElement extends LitElement {
4812
4812
  static get properties() {
@@ -5757,6 +5757,14 @@ class AuroDropdown extends AuroElement$2 {
5757
5757
  };
5758
5758
  this.addEventListener('keydown', this._bibTabHandler);
5759
5759
 
5760
+ // Suppress AuroFloatingUI's auto-hide-on-focus-loss while the
5761
+ // desktopModal trap owns focus management. Without this, the very
5762
+ // first focus move into the bib (from the RAF below) triggers
5763
+ // handleFocusLoss → hideBib, tearing down the trap before the
5764
+ // user can press Tab.
5765
+ this._priorNoHideOnFocusLoss = this.noHideOnThisFocusLoss;
5766
+ this.noHideOnThisFocusLoss = true;
5767
+
5760
5768
  // Move initial focus into the bib content, matching FocusTrap behavior
5761
5769
  requestAnimationFrame(() => {
5762
5770
  const focusables = getFocusableElements(this.bibContent);
@@ -17331,6 +17339,11 @@ class BaseInput extends AuroElement$1 {
17331
17339
  }
17332
17340
 
17333
17341
  // add attribute for query selectors when auro-input is registered under a custom name
17342
+ // COVERAGE: the body of this branch is unreachable in WTR — connectedCallback
17343
+ // performs the same `setAttribute('auro-input', '')` earlier (see L665-667),
17344
+ // so by the time firstUpdated runs the attribute is already present and the
17345
+ // `!hasAttribute('auro-input')` guard is false. Retained as a defensive
17346
+ // safety net in case connectedCallback is ever short-circuited.
17334
17347
  if (this.tagName.toLowerCase() !== 'auro-input' && !this.hasAttribute('auro-input')) {
17335
17348
  this.setAttribute('auro-input', '');
17336
17349
  }
@@ -17420,6 +17433,13 @@ class BaseInput extends AuroElement$1 {
17420
17433
 
17421
17434
  if (typeToI18n.includes(this.type)) {
17422
17435
  this.setCustomValidityForType = i18n(this.lang, this.type);
17436
+ // COVERAGE: this `else if` branch is unreachable in WTR. connectedCallback
17437
+ // (L682) calls configureDataForType, which at L1266-1268 assigns
17438
+ // `this.format = this.util.getDateMaskFromLocale().toLowerCase()` for any
17439
+ // type=date input whose `format` attribute is unset. That runs before
17440
+ // firstUpdated invokes setCustomHelpTextMessage, so `!this.format` is
17441
+ // always false here. Retained as a defensive fallback; the whole function
17442
+ // is @deprecated per AB#1557296 and slated for removal.
17423
17443
  } else if (!this.format && this.type === 'date') {
17424
17444
  this.setCustomValidityForType = i18n(this.lang, 'dateMMDDYYYY');
17425
17445
  } else if (this.dateFormatMap[this.format]) {
@@ -17897,6 +17917,12 @@ class BaseInput extends AuroElement$1 {
17897
17917
  */
17898
17918
  get placeholderStr() {
17899
17919
  if (!this.placeholder && this.type === 'date') {
17920
+ // COVERAGE: the `'MM/DD/YYYY'` literal fallback is unreachable in WTR.
17921
+ // connectedCallback (L682) calls configureDataForType, which at L1266-1268
17922
+ // assigns `this.format = this.util.getDateMaskFromLocale().toLowerCase()`
17923
+ // when type=date and format is unset. That runs before the first render
17924
+ // reads this getter, so the ternary's truthy arm always wins. Retained
17925
+ // as a defensive fallback for direct getter calls before connection.
17900
17926
  return this.format ? this.format.toUpperCase() : 'MM/DD/YYYY';
17901
17927
  }
17902
17928
  return this.placeholder || "";
@@ -18388,7 +18414,7 @@ let AuroHelpText$1 = class AuroHelpText extends LitElement {
18388
18414
  }
18389
18415
  };
18390
18416
 
18391
- var formkitVersion$1 = '202606192121';
18417
+ var formkitVersion$1 = '202606232113';
18392
18418
 
18393
18419
  // Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
18394
18420
  // See LICENSE in the project root for license information.
@@ -19509,7 +19535,7 @@ class AuroBibtemplate extends LitElement {
19509
19535
  }
19510
19536
  }
19511
19537
 
19512
- var formkitVersion = '202606192121';
19538
+ var formkitVersion = '202606232113';
19513
19539
 
19514
19540
  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}`;
19515
19541
 
@@ -20860,24 +20886,7 @@ class AuroCombobox extends AuroElement {
20860
20886
  nativeInput.setSelectionRange(len, len);
20861
20887
  }
20862
20888
  } else {
20863
- // Safety net for the strategy-change setTimeout: a viewport-crossing
20864
- // fullscreen→floating switch can close the dialog and leave focus on
20865
- // body. Every other Branch 2 callsite already has focus on the input
20866
- // via the focusin → this.focus() redirect (L1448-1452), so this is a
20867
- // no-op in the common case.
20868
- if (!this.input.componentHasFocus) {
20869
- this.input.focus();
20870
- }
20871
-
20872
- // Park the trigger native input's caret at end-of-text every time the
20873
- // popover opens. Chrome focuses the native via the floating <label for="…">
20874
- // overlay on click and resets selection to [0, 0]; no JS fires between
20875
- // mousedown and selectionchange, so we restore the caret here.
20876
- const triggerNativeInput = this.input.inputElement;
20877
- if (triggerNativeInput && triggerNativeInput.value) {
20878
- const len = triggerNativeInput.value.length;
20879
- triggerNativeInput.setSelectionRange(len, len);
20880
- }
20889
+ this.input.focus();
20881
20890
  }
20882
20891
  }
20883
20892
 
@@ -1099,7 +1099,7 @@ let AuroHelpText$1 = class AuroHelpText extends i$2 {
1099
1099
  }
1100
1100
  };
1101
1101
 
1102
- var formkitVersion$1 = '202606192121';
1102
+ var formkitVersion$1 = '202606232113';
1103
1103
 
1104
1104
  // Copyright (c) 2026 Alaska Airlines. All rights reserved. Licensed under the Apache-2.0 license
1105
1105
  // See LICENSE in the project root for license information.
@@ -5445,7 +5445,7 @@ class AuroHelpText extends i$2 {
5445
5445
  }
5446
5446
  }
5447
5447
 
5448
- var formkitVersion = '202606192121';
5448
+ var formkitVersion = '202606232113';
5449
5449
 
5450
5450
  let AuroElement$1 = class AuroElement extends i$2 {
5451
5451
  static get properties() {
@@ -6396,6 +6396,14 @@ class AuroDropdown extends AuroElement$1 {
6396
6396
  };
6397
6397
  this.addEventListener('keydown', this._bibTabHandler);
6398
6398
 
6399
+ // Suppress AuroFloatingUI's auto-hide-on-focus-loss while the
6400
+ // desktopModal trap owns focus management. Without this, the very
6401
+ // first focus move into the bib (from the RAF below) triggers
6402
+ // handleFocusLoss → hideBib, tearing down the trap before the
6403
+ // user can press Tab.
6404
+ this._priorNoHideOnFocusLoss = this.noHideOnThisFocusLoss;
6405
+ this.noHideOnThisFocusLoss = true;
6406
+
6399
6407
  // Move initial focus into the bib content, matching FocusTrap behavior
6400
6408
  requestAnimationFrame(() => {
6401
6409
  const focusables = getFocusableElements(this.bibContent);
@@ -1099,7 +1099,7 @@ let AuroHelpText$1 = class AuroHelpText extends i$2 {
1099
1099
  }
1100
1100
  };
1101
1101
 
1102
- var formkitVersion$1 = '202606192121';
1102
+ var formkitVersion$1 = '202606232113';
1103
1103
 
1104
1104
  // Copyright (c) 2026 Alaska Airlines. All rights reserved. Licensed under the Apache-2.0 license
1105
1105
  // See LICENSE in the project root for license information.
@@ -5445,7 +5445,7 @@ class AuroHelpText extends i$2 {
5445
5445
  }
5446
5446
  }
5447
5447
 
5448
- var formkitVersion = '202606192121';
5448
+ var formkitVersion = '202606232113';
5449
5449
 
5450
5450
  let AuroElement$1 = class AuroElement extends i$2 {
5451
5451
  static get properties() {
@@ -6396,6 +6396,14 @@ class AuroDropdown extends AuroElement$1 {
6396
6396
  };
6397
6397
  this.addEventListener('keydown', this._bibTabHandler);
6398
6398
 
6399
+ // Suppress AuroFloatingUI's auto-hide-on-focus-loss while the
6400
+ // desktopModal trap owns focus management. Without this, the very
6401
+ // first focus move into the bib (from the RAF below) triggers
6402
+ // handleFocusLoss → hideBib, tearing down the trap before the
6403
+ // user can press Tab.
6404
+ this._priorNoHideOnFocusLoss = this.noHideOnThisFocusLoss;
6405
+ this.noHideOnThisFocusLoss = true;
6406
+
6399
6407
  // Move initial focus into the bib content, matching FocusTrap behavior
6400
6408
  requestAnimationFrame(() => {
6401
6409
  const focusables = getFocusableElements(this.bibContent);
@@ -1049,7 +1049,7 @@ let AuroHelpText$1 = class AuroHelpText extends LitElement {
1049
1049
  }
1050
1050
  };
1051
1051
 
1052
- var formkitVersion$1 = '202606192121';
1052
+ var formkitVersion$1 = '202606232113';
1053
1053
 
1054
1054
  // Copyright (c) 2026 Alaska Airlines. All rights reserved. Licensed under the Apache-2.0 license
1055
1055
  // See LICENSE in the project root for license information.
@@ -5377,7 +5377,7 @@ class AuroHelpText extends LitElement {
5377
5377
  }
5378
5378
  }
5379
5379
 
5380
- var formkitVersion = '202606192121';
5380
+ var formkitVersion = '202606232113';
5381
5381
 
5382
5382
  let AuroElement$1 = class AuroElement extends LitElement {
5383
5383
  static get properties() {
@@ -6328,6 +6328,14 @@ class AuroDropdown extends AuroElement$1 {
6328
6328
  };
6329
6329
  this.addEventListener('keydown', this._bibTabHandler);
6330
6330
 
6331
+ // Suppress AuroFloatingUI's auto-hide-on-focus-loss while the
6332
+ // desktopModal trap owns focus management. Without this, the very
6333
+ // first focus move into the bib (from the RAF below) triggers
6334
+ // handleFocusLoss → hideBib, tearing down the trap before the
6335
+ // user can press Tab.
6336
+ this._priorNoHideOnFocusLoss = this.noHideOnThisFocusLoss;
6337
+ this.noHideOnThisFocusLoss = true;
6338
+
6331
6339
  // Move initial focus into the bib content, matching FocusTrap behavior
6332
6340
  requestAnimationFrame(() => {
6333
6341
  const focusables = getFocusableElements(this.bibContent);
@@ -1049,7 +1049,7 @@ let AuroHelpText$1 = class AuroHelpText extends LitElement {
1049
1049
  }
1050
1050
  };
1051
1051
 
1052
- var formkitVersion$1 = '202606192121';
1052
+ var formkitVersion$1 = '202606232113';
1053
1053
 
1054
1054
  // Copyright (c) 2026 Alaska Airlines. All rights reserved. Licensed under the Apache-2.0 license
1055
1055
  // See LICENSE in the project root for license information.
@@ -5377,7 +5377,7 @@ class AuroHelpText extends LitElement {
5377
5377
  }
5378
5378
  }
5379
5379
 
5380
- var formkitVersion = '202606192121';
5380
+ var formkitVersion = '202606232113';
5381
5381
 
5382
5382
  let AuroElement$1 = class AuroElement extends LitElement {
5383
5383
  static get properties() {
@@ -6328,6 +6328,14 @@ class AuroDropdown extends AuroElement$1 {
6328
6328
  };
6329
6329
  this.addEventListener('keydown', this._bibTabHandler);
6330
6330
 
6331
+ // Suppress AuroFloatingUI's auto-hide-on-focus-loss while the
6332
+ // desktopModal trap owns focus management. Without this, the very
6333
+ // first focus move into the bib (from the RAF below) triggers
6334
+ // handleFocusLoss → hideBib, tearing down the trap before the
6335
+ // user can press Tab.
6336
+ this._priorNoHideOnFocusLoss = this.noHideOnThisFocusLoss;
6337
+ this.noHideOnThisFocusLoss = true;
6338
+
6331
6339
  // Move initial focus into the bib content, matching FocusTrap behavior
6332
6340
  requestAnimationFrame(() => {
6333
6341
  const focusables = getFocusableElements(this.bibContent);