@aurodesignsystem-dev/auro-formkit 0.0.0-pr1318.3 → 0.0.0-pr1318.5

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 (38) hide show
  1. package/components/checkbox/demo/api.min.js +1 -1
  2. package/components/checkbox/demo/index.min.js +1 -1
  3. package/components/checkbox/dist/index.js +1 -1
  4. package/components/checkbox/dist/registered.js +1 -1
  5. package/components/combobox/demo/api.min.js +52 -6
  6. package/components/combobox/demo/index.min.js +52 -6
  7. package/components/combobox/dist/auro-combobox.d.ts +1 -1
  8. package/components/combobox/dist/index.js +52 -6
  9. package/components/combobox/dist/registered.js +52 -6
  10. package/components/counter/demo/api.min.js +17 -3
  11. package/components/counter/demo/index.min.js +17 -3
  12. package/components/counter/dist/index.js +17 -3
  13. package/components/counter/dist/registered.js +17 -3
  14. package/components/datepicker/demo/api.min.js +32 -4
  15. package/components/datepicker/demo/index.min.js +32 -4
  16. package/components/datepicker/dist/index.js +32 -4
  17. package/components/datepicker/dist/registered.js +32 -4
  18. package/components/dropdown/demo/api.min.js +16 -2
  19. package/components/dropdown/demo/index.min.js +16 -2
  20. package/components/dropdown/dist/auro-dropdown.d.ts +9 -0
  21. package/components/dropdown/dist/index.js +16 -2
  22. package/components/dropdown/dist/registered.js +16 -2
  23. package/components/input/demo/api.min.js +15 -1
  24. package/components/input/demo/index.min.js +15 -1
  25. package/components/input/dist/base-input.d.ts +9 -0
  26. package/components/input/dist/index.js +15 -1
  27. package/components/input/dist/registered.js +15 -1
  28. package/components/radio/demo/api.min.js +1 -1
  29. package/components/radio/demo/index.min.js +1 -1
  30. package/components/radio/dist/index.js +1 -1
  31. package/components/radio/dist/registered.js +1 -1
  32. package/components/select/demo/api.min.js +56 -11
  33. package/components/select/demo/index.min.js +56 -11
  34. package/components/select/dist/auro-select.d.ts +7 -0
  35. package/components/select/dist/index.js +56 -11
  36. package/components/select/dist/registered.js +56 -11
  37. package/custom-elements.json +83 -1
  38. package/package.json +9 -3
@@ -1687,7 +1687,7 @@ class AuroHelpText extends i$2 {
1687
1687
  }
1688
1688
  }
1689
1689
 
1690
- var formkitVersion = '202602032229';
1690
+ var formkitVersion = '202602050140';
1691
1691
 
1692
1692
  // Copyright (c) 2026 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
1693
1693
  // See LICENSE in the project root for license information.
@@ -1679,7 +1679,7 @@ class AuroHelpText extends i$2 {
1679
1679
  }
1680
1680
  }
1681
1681
 
1682
- var formkitVersion = '202602032229';
1682
+ var formkitVersion = '202602050140';
1683
1683
 
1684
1684
  // Copyright (c) 2026 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
1685
1685
  // See LICENSE in the project root for license information.
@@ -1632,7 +1632,7 @@ class AuroHelpText extends LitElement {
1632
1632
  }
1633
1633
  }
1634
1634
 
1635
- var formkitVersion = '202602032229';
1635
+ var formkitVersion = '202602050140';
1636
1636
 
1637
1637
  // Copyright (c) 2026 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
1638
1638
  // See LICENSE in the project root for license information.
@@ -1632,7 +1632,7 @@ class AuroHelpText extends LitElement {
1632
1632
  }
1633
1633
  }
1634
1634
 
1635
- var formkitVersion = '202602032229';
1635
+ var formkitVersion = '202602050140';
1636
1636
 
1637
1637
  // Copyright (c) 2026 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
1638
1638
  // See LICENSE in the project root for license information.
@@ -4375,7 +4375,7 @@ let AuroHelpText$2 = class AuroHelpText extends i$4 {
4375
4375
  }
4376
4376
  };
4377
4377
 
4378
- var formkitVersion$2 = '202602032229';
4378
+ var formkitVersion$2 = '202602050140';
4379
4379
 
4380
4380
  let AuroElement$2 = class AuroElement extends i$4 {
4381
4381
  static get properties() {
@@ -4662,6 +4662,20 @@ class AuroDropdown extends AuroElement$2 {
4662
4662
  }
4663
4663
  }
4664
4664
 
4665
+ /**
4666
+ * Sets the active descendant element for accessibility.
4667
+ * Uses ariaActiveDescendantElement to cross shadow DOM boundaries.
4668
+ * This function is used in components that contain `auro-dropdown` to set the active descendant.
4669
+ * @private
4670
+ * @param {HTMLElement|null} element - The element to set as the active descendant, or null to clear.
4671
+ * @returns {void}
4672
+ */
4673
+ setActiveDescendant(element) {
4674
+ if (this.trigger) {
4675
+ this.trigger.ariaActiveDescendantElement = element;
4676
+ }
4677
+ }
4678
+
4665
4679
  // function to define props used within the scope of this component
4666
4680
  static get properties() {
4667
4681
  return {
@@ -5305,7 +5319,7 @@ class AuroDropdown extends AuroElement$2 {
5305
5319
  tabindex="${o(this.triggerContentFocusable ? undefined : this.tabIndex)}"
5306
5320
  role="${o(this.triggerContentFocusable ? undefined : this.a11yRole)}"
5307
5321
  aria-expanded="${o(this.a11yRole === 'button' || this.triggerContentFocusable ? undefined : this.isPopoverVisible)}"
5308
- aria-controls="${o(this.a11yRole === 'button' || this.triggerContentFocusable ? undefined : this.dropdownId)}"
5322
+ aria-controls="${o(this.a11yRole === 'button' || this.triggerContentFocusable ? undefined : `${this.dropdownId}-floater-bib`)}"
5309
5323
  aria-labelledby="${o(this.triggerContentFocusable ? undefined : 'triggerLabel')}"
5310
5324
  @focusin="${this.handleFocusin}"
5311
5325
  @blur="${this.handleFocusOut}">
@@ -11372,6 +11386,20 @@ class BaseInput extends AuroElement$1 {
11372
11386
  return activeEl;
11373
11387
  }
11374
11388
 
11389
+ /**
11390
+ * Sets the active descendant element for accessibility.
11391
+ * Uses ariaActiveDescendantElement to cross shadow DOM boundaries.
11392
+ * This function is used in components that contain `auro-input` to set the active descendant.
11393
+ * @private
11394
+ * @param {HTMLElement|null} element - The element to set as the active descendant, or null to clear.
11395
+ * @returns {void}
11396
+ */
11397
+ setActiveDescendant(element) {
11398
+ if (this.inputElement) {
11399
+ this.inputElement.ariaActiveDescendantElement = element;
11400
+ }
11401
+ }
11402
+
11375
11403
  /**
11376
11404
  * Validates value.
11377
11405
  * @param {boolean} [force=false] - Whether to force validation.
@@ -11993,7 +12021,7 @@ let AuroHelpText$1 = class AuroHelpText extends i$4 {
11993
12021
  }
11994
12022
  };
11995
12023
 
11996
- var formkitVersion$1 = '202602032229';
12024
+ var formkitVersion$1 = '202602050140';
11997
12025
 
11998
12026
  // Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
11999
12027
  // See LICENSE in the project root for license information.
@@ -13018,7 +13046,7 @@ class AuroBibtemplate extends i$4 {
13018
13046
  }
13019
13047
  }
13020
13048
 
13021
- var formkitVersion = '202602032229';
13049
+ var formkitVersion = '202602050140';
13022
13050
 
13023
13051
  var styleCss$3 = i$7`.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}`;
13024
13052
 
@@ -13782,7 +13810,7 @@ class AuroCombobox extends AuroElement {
13782
13810
  },
13783
13811
 
13784
13812
  /**
13785
- * Specifies the currently active option.
13813
+ * Specifies the currently active/highlighted `auro-menuoption`.
13786
13814
  * @private
13787
13815
  */
13788
13816
  optionActive: {
@@ -14019,6 +14047,12 @@ class AuroCombobox extends AuroElement {
14019
14047
  this.dropdownOpen = ev.detail.expanded;
14020
14048
  this.updateMenuShapeSize();
14021
14049
 
14050
+ // Clear aria-activedescendant when dropdown closes
14051
+ if (!this.dropdownOpen && this.input) {
14052
+ this.input.setActiveDescendant(null);
14053
+ this.optionActive = null;
14054
+ }
14055
+
14022
14056
  // wait a frame in case the bib gets hide immediately after showing because there is no value
14023
14057
  setTimeout(() => {
14024
14058
  if (this.componentHasFocus) {
@@ -14118,6 +14152,13 @@ class AuroCombobox extends AuroElement {
14118
14152
  */
14119
14153
  configureMenu() {
14120
14154
  this.menu = this.querySelector('auro-menu, [auro-menu]');
14155
+
14156
+ const labelElement = this.querySelector('span[slot="label"]');
14157
+
14158
+ if (labelElement) {
14159
+ this.menu.setAttribute('aria-label', labelElement.textContent);
14160
+ }
14161
+
14121
14162
  this.defaultMenuShape = this.menu.getAttribute('shape');
14122
14163
 
14123
14164
  // racing condition on custom-combobox with custom-menu
@@ -14174,6 +14215,10 @@ class AuroCombobox extends AuroElement {
14174
14215
  this.menu.addEventListener('auroMenu-activatedOption', (evt) => {
14175
14216
  this.optionActive = evt.detail;
14176
14217
 
14218
+ if (this.input) {
14219
+ this.input.setActiveDescendant(this.optionActive);
14220
+ }
14221
+
14177
14222
  this.optionActive.scrollIntoView({
14178
14223
  alignToTop: false,
14179
14224
  block: "nearest",
@@ -14241,6 +14286,7 @@ class AuroCombobox extends AuroElement {
14241
14286
 
14242
14287
  this.menu.matchWord = this.input.value;
14243
14288
  this.optionActive = null;
14289
+ this.input.setActiveDescendant(null);
14244
14290
 
14245
14291
  if (!this.input.value) {
14246
14292
  this.clear();
@@ -14669,7 +14715,7 @@ class AuroCombobox extends AuroElement {
14669
14715
  <${this.inputTag}
14670
14716
  id="inputInBib"
14671
14717
  @input="${this.handleInputValueChange}"
14672
- .a11yControls="${this.dropdownId}"
14718
+ .a11yControls=${`${this.dropdownId}-floater-bib`}
14673
14719
  .autocomplete="${this.autocomplete}"
14674
14720
  .format="${this.format}"
14675
14721
  .inputmode="${this.inputmode}"
@@ -4312,7 +4312,7 @@ let AuroHelpText$2 = class AuroHelpText extends i$4 {
4312
4312
  }
4313
4313
  };
4314
4314
 
4315
- var formkitVersion$2 = '202602032229';
4315
+ var formkitVersion$2 = '202602050140';
4316
4316
 
4317
4317
  let AuroElement$2 = class AuroElement extends i$4 {
4318
4318
  static get properties() {
@@ -4599,6 +4599,20 @@ class AuroDropdown extends AuroElement$2 {
4599
4599
  }
4600
4600
  }
4601
4601
 
4602
+ /**
4603
+ * Sets the active descendant element for accessibility.
4604
+ * Uses ariaActiveDescendantElement to cross shadow DOM boundaries.
4605
+ * This function is used in components that contain `auro-dropdown` to set the active descendant.
4606
+ * @private
4607
+ * @param {HTMLElement|null} element - The element to set as the active descendant, or null to clear.
4608
+ * @returns {void}
4609
+ */
4610
+ setActiveDescendant(element) {
4611
+ if (this.trigger) {
4612
+ this.trigger.ariaActiveDescendantElement = element;
4613
+ }
4614
+ }
4615
+
4602
4616
  // function to define props used within the scope of this component
4603
4617
  static get properties() {
4604
4618
  return {
@@ -5242,7 +5256,7 @@ class AuroDropdown extends AuroElement$2 {
5242
5256
  tabindex="${o(this.triggerContentFocusable ? undefined : this.tabIndex)}"
5243
5257
  role="${o(this.triggerContentFocusable ? undefined : this.a11yRole)}"
5244
5258
  aria-expanded="${o(this.a11yRole === 'button' || this.triggerContentFocusable ? undefined : this.isPopoverVisible)}"
5245
- aria-controls="${o(this.a11yRole === 'button' || this.triggerContentFocusable ? undefined : this.dropdownId)}"
5259
+ aria-controls="${o(this.a11yRole === 'button' || this.triggerContentFocusable ? undefined : `${this.dropdownId}-floater-bib`)}"
5246
5260
  aria-labelledby="${o(this.triggerContentFocusable ? undefined : 'triggerLabel')}"
5247
5261
  @focusin="${this.handleFocusin}"
5248
5262
  @blur="${this.handleFocusOut}">
@@ -11309,6 +11323,20 @@ class BaseInput extends AuroElement$1 {
11309
11323
  return activeEl;
11310
11324
  }
11311
11325
 
11326
+ /**
11327
+ * Sets the active descendant element for accessibility.
11328
+ * Uses ariaActiveDescendantElement to cross shadow DOM boundaries.
11329
+ * This function is used in components that contain `auro-input` to set the active descendant.
11330
+ * @private
11331
+ * @param {HTMLElement|null} element - The element to set as the active descendant, or null to clear.
11332
+ * @returns {void}
11333
+ */
11334
+ setActiveDescendant(element) {
11335
+ if (this.inputElement) {
11336
+ this.inputElement.ariaActiveDescendantElement = element;
11337
+ }
11338
+ }
11339
+
11312
11340
  /**
11313
11341
  * Validates value.
11314
11342
  * @param {boolean} [force=false] - Whether to force validation.
@@ -11930,7 +11958,7 @@ let AuroHelpText$1 = class AuroHelpText extends i$4 {
11930
11958
  }
11931
11959
  };
11932
11960
 
11933
- var formkitVersion$1 = '202602032229';
11961
+ var formkitVersion$1 = '202602050140';
11934
11962
 
11935
11963
  // Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
11936
11964
  // See LICENSE in the project root for license information.
@@ -12955,7 +12983,7 @@ class AuroBibtemplate extends i$4 {
12955
12983
  }
12956
12984
  }
12957
12985
 
12958
- var formkitVersion = '202602032229';
12986
+ var formkitVersion = '202602050140';
12959
12987
 
12960
12988
  var styleCss$3 = i$7`.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}`;
12961
12989
 
@@ -13719,7 +13747,7 @@ class AuroCombobox extends AuroElement {
13719
13747
  },
13720
13748
 
13721
13749
  /**
13722
- * Specifies the currently active option.
13750
+ * Specifies the currently active/highlighted `auro-menuoption`.
13723
13751
  * @private
13724
13752
  */
13725
13753
  optionActive: {
@@ -13956,6 +13984,12 @@ class AuroCombobox extends AuroElement {
13956
13984
  this.dropdownOpen = ev.detail.expanded;
13957
13985
  this.updateMenuShapeSize();
13958
13986
 
13987
+ // Clear aria-activedescendant when dropdown closes
13988
+ if (!this.dropdownOpen && this.input) {
13989
+ this.input.setActiveDescendant(null);
13990
+ this.optionActive = null;
13991
+ }
13992
+
13959
13993
  // wait a frame in case the bib gets hide immediately after showing because there is no value
13960
13994
  setTimeout(() => {
13961
13995
  if (this.componentHasFocus) {
@@ -14055,6 +14089,13 @@ class AuroCombobox extends AuroElement {
14055
14089
  */
14056
14090
  configureMenu() {
14057
14091
  this.menu = this.querySelector('auro-menu, [auro-menu]');
14092
+
14093
+ const labelElement = this.querySelector('span[slot="label"]');
14094
+
14095
+ if (labelElement) {
14096
+ this.menu.setAttribute('aria-label', labelElement.textContent);
14097
+ }
14098
+
14058
14099
  this.defaultMenuShape = this.menu.getAttribute('shape');
14059
14100
 
14060
14101
  // racing condition on custom-combobox with custom-menu
@@ -14111,6 +14152,10 @@ class AuroCombobox extends AuroElement {
14111
14152
  this.menu.addEventListener('auroMenu-activatedOption', (evt) => {
14112
14153
  this.optionActive = evt.detail;
14113
14154
 
14155
+ if (this.input) {
14156
+ this.input.setActiveDescendant(this.optionActive);
14157
+ }
14158
+
14114
14159
  this.optionActive.scrollIntoView({
14115
14160
  alignToTop: false,
14116
14161
  block: "nearest",
@@ -14178,6 +14223,7 @@ class AuroCombobox extends AuroElement {
14178
14223
 
14179
14224
  this.menu.matchWord = this.input.value;
14180
14225
  this.optionActive = null;
14226
+ this.input.setActiveDescendant(null);
14181
14227
 
14182
14228
  if (!this.input.value) {
14183
14229
  this.clear();
@@ -14606,7 +14652,7 @@ class AuroCombobox extends AuroElement {
14606
14652
  <${this.inputTag}
14607
14653
  id="inputInBib"
14608
14654
  @input="${this.handleInputValueChange}"
14609
- .a11yControls="${this.dropdownId}"
14655
+ .a11yControls=${`${this.dropdownId}-floater-bib`}
14610
14656
  .autocomplete="${this.autocomplete}"
14611
14657
  .format="${this.format}"
14612
14658
  .inputmode="${this.inputmode}"
@@ -293,7 +293,7 @@ export class AuroCombobox extends AuroElement {
293
293
  */
294
294
  fullscreenBreakpoint: "xs" | "sm" | "md" | "lg" | "xl" | "disabled";
295
295
  /**
296
- * Specifies the currently active option.
296
+ * Specifies the currently active/highlighted `auro-menuoption`.
297
297
  * @private
298
298
  */
299
299
  optionActive: {
@@ -4249,7 +4249,7 @@ let AuroHelpText$2 = class AuroHelpText extends LitElement {
4249
4249
  }
4250
4250
  };
4251
4251
 
4252
- var formkitVersion$2 = '202602032229';
4252
+ var formkitVersion$2 = '202602050140';
4253
4253
 
4254
4254
  let AuroElement$2 = class AuroElement extends LitElement {
4255
4255
  static get properties() {
@@ -4536,6 +4536,20 @@ class AuroDropdown extends AuroElement$2 {
4536
4536
  }
4537
4537
  }
4538
4538
 
4539
+ /**
4540
+ * Sets the active descendant element for accessibility.
4541
+ * Uses ariaActiveDescendantElement to cross shadow DOM boundaries.
4542
+ * This function is used in components that contain `auro-dropdown` to set the active descendant.
4543
+ * @private
4544
+ * @param {HTMLElement|null} element - The element to set as the active descendant, or null to clear.
4545
+ * @returns {void}
4546
+ */
4547
+ setActiveDescendant(element) {
4548
+ if (this.trigger) {
4549
+ this.trigger.ariaActiveDescendantElement = element;
4550
+ }
4551
+ }
4552
+
4539
4553
  // function to define props used within the scope of this component
4540
4554
  static get properties() {
4541
4555
  return {
@@ -5179,7 +5193,7 @@ class AuroDropdown extends AuroElement$2 {
5179
5193
  tabindex="${ifDefined(this.triggerContentFocusable ? undefined : this.tabIndex)}"
5180
5194
  role="${ifDefined(this.triggerContentFocusable ? undefined : this.a11yRole)}"
5181
5195
  aria-expanded="${ifDefined(this.a11yRole === 'button' || this.triggerContentFocusable ? undefined : this.isPopoverVisible)}"
5182
- aria-controls="${ifDefined(this.a11yRole === 'button' || this.triggerContentFocusable ? undefined : this.dropdownId)}"
5196
+ aria-controls="${ifDefined(this.a11yRole === 'button' || this.triggerContentFocusable ? undefined : `${this.dropdownId}-floater-bib`)}"
5183
5197
  aria-labelledby="${ifDefined(this.triggerContentFocusable ? undefined : 'triggerLabel')}"
5184
5198
  @focusin="${this.handleFocusin}"
5185
5199
  @blur="${this.handleFocusOut}">
@@ -11239,6 +11253,20 @@ class BaseInput extends AuroElement$1 {
11239
11253
  return activeEl;
11240
11254
  }
11241
11255
 
11256
+ /**
11257
+ * Sets the active descendant element for accessibility.
11258
+ * Uses ariaActiveDescendantElement to cross shadow DOM boundaries.
11259
+ * This function is used in components that contain `auro-input` to set the active descendant.
11260
+ * @private
11261
+ * @param {HTMLElement|null} element - The element to set as the active descendant, or null to clear.
11262
+ * @returns {void}
11263
+ */
11264
+ setActiveDescendant(element) {
11265
+ if (this.inputElement) {
11266
+ this.inputElement.ariaActiveDescendantElement = element;
11267
+ }
11268
+ }
11269
+
11242
11270
  /**
11243
11271
  * Validates value.
11244
11272
  * @param {boolean} [force=false] - Whether to force validation.
@@ -11860,7 +11888,7 @@ let AuroHelpText$1 = class AuroHelpText extends LitElement {
11860
11888
  }
11861
11889
  };
11862
11890
 
11863
- var formkitVersion$1 = '202602032229';
11891
+ var formkitVersion$1 = '202602050140';
11864
11892
 
11865
11893
  // Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
11866
11894
  // See LICENSE in the project root for license information.
@@ -12885,7 +12913,7 @@ class AuroBibtemplate extends LitElement {
12885
12913
  }
12886
12914
  }
12887
12915
 
12888
- var formkitVersion = '202602032229';
12916
+ var formkitVersion = '202602050140';
12889
12917
 
12890
12918
  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}`;
12891
12919
 
@@ -13649,7 +13677,7 @@ class AuroCombobox extends AuroElement {
13649
13677
  },
13650
13678
 
13651
13679
  /**
13652
- * Specifies the currently active option.
13680
+ * Specifies the currently active/highlighted `auro-menuoption`.
13653
13681
  * @private
13654
13682
  */
13655
13683
  optionActive: {
@@ -13886,6 +13914,12 @@ class AuroCombobox extends AuroElement {
13886
13914
  this.dropdownOpen = ev.detail.expanded;
13887
13915
  this.updateMenuShapeSize();
13888
13916
 
13917
+ // Clear aria-activedescendant when dropdown closes
13918
+ if (!this.dropdownOpen && this.input) {
13919
+ this.input.setActiveDescendant(null);
13920
+ this.optionActive = null;
13921
+ }
13922
+
13889
13923
  // wait a frame in case the bib gets hide immediately after showing because there is no value
13890
13924
  setTimeout(() => {
13891
13925
  if (this.componentHasFocus) {
@@ -13985,6 +14019,13 @@ class AuroCombobox extends AuroElement {
13985
14019
  */
13986
14020
  configureMenu() {
13987
14021
  this.menu = this.querySelector('auro-menu, [auro-menu]');
14022
+
14023
+ const labelElement = this.querySelector('span[slot="label"]');
14024
+
14025
+ if (labelElement) {
14026
+ this.menu.setAttribute('aria-label', labelElement.textContent);
14027
+ }
14028
+
13988
14029
  this.defaultMenuShape = this.menu.getAttribute('shape');
13989
14030
 
13990
14031
  // racing condition on custom-combobox with custom-menu
@@ -14041,6 +14082,10 @@ class AuroCombobox extends AuroElement {
14041
14082
  this.menu.addEventListener('auroMenu-activatedOption', (evt) => {
14042
14083
  this.optionActive = evt.detail;
14043
14084
 
14085
+ if (this.input) {
14086
+ this.input.setActiveDescendant(this.optionActive);
14087
+ }
14088
+
14044
14089
  this.optionActive.scrollIntoView({
14045
14090
  alignToTop: false,
14046
14091
  block: "nearest",
@@ -14108,6 +14153,7 @@ class AuroCombobox extends AuroElement {
14108
14153
 
14109
14154
  this.menu.matchWord = this.input.value;
14110
14155
  this.optionActive = null;
14156
+ this.input.setActiveDescendant(null);
14111
14157
 
14112
14158
  if (!this.input.value) {
14113
14159
  this.clear();
@@ -14536,7 +14582,7 @@ class AuroCombobox extends AuroElement {
14536
14582
  <${this.inputTag}
14537
14583
  id="inputInBib"
14538
14584
  @input="${this.handleInputValueChange}"
14539
- .a11yControls="${this.dropdownId}"
14585
+ .a11yControls=${`${this.dropdownId}-floater-bib`}
14540
14586
  .autocomplete="${this.autocomplete}"
14541
14587
  .format="${this.format}"
14542
14588
  .inputmode="${this.inputmode}"
@@ -4249,7 +4249,7 @@ let AuroHelpText$2 = class AuroHelpText extends LitElement {
4249
4249
  }
4250
4250
  };
4251
4251
 
4252
- var formkitVersion$2 = '202602032229';
4252
+ var formkitVersion$2 = '202602050140';
4253
4253
 
4254
4254
  let AuroElement$2 = class AuroElement extends LitElement {
4255
4255
  static get properties() {
@@ -4536,6 +4536,20 @@ class AuroDropdown extends AuroElement$2 {
4536
4536
  }
4537
4537
  }
4538
4538
 
4539
+ /**
4540
+ * Sets the active descendant element for accessibility.
4541
+ * Uses ariaActiveDescendantElement to cross shadow DOM boundaries.
4542
+ * This function is used in components that contain `auro-dropdown` to set the active descendant.
4543
+ * @private
4544
+ * @param {HTMLElement|null} element - The element to set as the active descendant, or null to clear.
4545
+ * @returns {void}
4546
+ */
4547
+ setActiveDescendant(element) {
4548
+ if (this.trigger) {
4549
+ this.trigger.ariaActiveDescendantElement = element;
4550
+ }
4551
+ }
4552
+
4539
4553
  // function to define props used within the scope of this component
4540
4554
  static get properties() {
4541
4555
  return {
@@ -5179,7 +5193,7 @@ class AuroDropdown extends AuroElement$2 {
5179
5193
  tabindex="${ifDefined(this.triggerContentFocusable ? undefined : this.tabIndex)}"
5180
5194
  role="${ifDefined(this.triggerContentFocusable ? undefined : this.a11yRole)}"
5181
5195
  aria-expanded="${ifDefined(this.a11yRole === 'button' || this.triggerContentFocusable ? undefined : this.isPopoverVisible)}"
5182
- aria-controls="${ifDefined(this.a11yRole === 'button' || this.triggerContentFocusable ? undefined : this.dropdownId)}"
5196
+ aria-controls="${ifDefined(this.a11yRole === 'button' || this.triggerContentFocusable ? undefined : `${this.dropdownId}-floater-bib`)}"
5183
5197
  aria-labelledby="${ifDefined(this.triggerContentFocusable ? undefined : 'triggerLabel')}"
5184
5198
  @focusin="${this.handleFocusin}"
5185
5199
  @blur="${this.handleFocusOut}">
@@ -11239,6 +11253,20 @@ class BaseInput extends AuroElement$1 {
11239
11253
  return activeEl;
11240
11254
  }
11241
11255
 
11256
+ /**
11257
+ * Sets the active descendant element for accessibility.
11258
+ * Uses ariaActiveDescendantElement to cross shadow DOM boundaries.
11259
+ * This function is used in components that contain `auro-input` to set the active descendant.
11260
+ * @private
11261
+ * @param {HTMLElement|null} element - The element to set as the active descendant, or null to clear.
11262
+ * @returns {void}
11263
+ */
11264
+ setActiveDescendant(element) {
11265
+ if (this.inputElement) {
11266
+ this.inputElement.ariaActiveDescendantElement = element;
11267
+ }
11268
+ }
11269
+
11242
11270
  /**
11243
11271
  * Validates value.
11244
11272
  * @param {boolean} [force=false] - Whether to force validation.
@@ -11860,7 +11888,7 @@ let AuroHelpText$1 = class AuroHelpText extends LitElement {
11860
11888
  }
11861
11889
  };
11862
11890
 
11863
- var formkitVersion$1 = '202602032229';
11891
+ var formkitVersion$1 = '202602050140';
11864
11892
 
11865
11893
  // Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
11866
11894
  // See LICENSE in the project root for license information.
@@ -12885,7 +12913,7 @@ class AuroBibtemplate extends LitElement {
12885
12913
  }
12886
12914
  }
12887
12915
 
12888
- var formkitVersion = '202602032229';
12916
+ var formkitVersion = '202602050140';
12889
12917
 
12890
12918
  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}`;
12891
12919
 
@@ -13649,7 +13677,7 @@ class AuroCombobox extends AuroElement {
13649
13677
  },
13650
13678
 
13651
13679
  /**
13652
- * Specifies the currently active option.
13680
+ * Specifies the currently active/highlighted `auro-menuoption`.
13653
13681
  * @private
13654
13682
  */
13655
13683
  optionActive: {
@@ -13886,6 +13914,12 @@ class AuroCombobox extends AuroElement {
13886
13914
  this.dropdownOpen = ev.detail.expanded;
13887
13915
  this.updateMenuShapeSize();
13888
13916
 
13917
+ // Clear aria-activedescendant when dropdown closes
13918
+ if (!this.dropdownOpen && this.input) {
13919
+ this.input.setActiveDescendant(null);
13920
+ this.optionActive = null;
13921
+ }
13922
+
13889
13923
  // wait a frame in case the bib gets hide immediately after showing because there is no value
13890
13924
  setTimeout(() => {
13891
13925
  if (this.componentHasFocus) {
@@ -13985,6 +14019,13 @@ class AuroCombobox extends AuroElement {
13985
14019
  */
13986
14020
  configureMenu() {
13987
14021
  this.menu = this.querySelector('auro-menu, [auro-menu]');
14022
+
14023
+ const labelElement = this.querySelector('span[slot="label"]');
14024
+
14025
+ if (labelElement) {
14026
+ this.menu.setAttribute('aria-label', labelElement.textContent);
14027
+ }
14028
+
13988
14029
  this.defaultMenuShape = this.menu.getAttribute('shape');
13989
14030
 
13990
14031
  // racing condition on custom-combobox with custom-menu
@@ -14041,6 +14082,10 @@ class AuroCombobox extends AuroElement {
14041
14082
  this.menu.addEventListener('auroMenu-activatedOption', (evt) => {
14042
14083
  this.optionActive = evt.detail;
14043
14084
 
14085
+ if (this.input) {
14086
+ this.input.setActiveDescendant(this.optionActive);
14087
+ }
14088
+
14044
14089
  this.optionActive.scrollIntoView({
14045
14090
  alignToTop: false,
14046
14091
  block: "nearest",
@@ -14108,6 +14153,7 @@ class AuroCombobox extends AuroElement {
14108
14153
 
14109
14154
  this.menu.matchWord = this.input.value;
14110
14155
  this.optionActive = null;
14156
+ this.input.setActiveDescendant(null);
14111
14157
 
14112
14158
  if (!this.input.value) {
14113
14159
  this.clear();
@@ -14536,7 +14582,7 @@ class AuroCombobox extends AuroElement {
14536
14582
  <${this.inputTag}
14537
14583
  id="inputInBib"
14538
14584
  @input="${this.handleInputValueChange}"
14539
- .a11yControls="${this.dropdownId}"
14585
+ .a11yControls=${`${this.dropdownId}-floater-bib`}
14540
14586
  .autocomplete="${this.autocomplete}"
14541
14587
  .format="${this.format}"
14542
14588
  .inputmode="${this.inputmode}"
@@ -1442,7 +1442,7 @@ let AuroHelpText$1 = class AuroHelpText extends i$2 {
1442
1442
  }
1443
1443
  };
1444
1444
 
1445
- var formkitVersion$1 = '202602032229';
1445
+ var formkitVersion$1 = '202602050140';
1446
1446
 
1447
1447
  // Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
1448
1448
  // See LICENSE in the project root for license information.
@@ -5135,7 +5135,7 @@ class AuroHelpText extends i$2 {
5135
5135
  }
5136
5136
  }
5137
5137
 
5138
- var formkitVersion = '202602032229';
5138
+ var formkitVersion = '202602050140';
5139
5139
 
5140
5140
  let AuroElement$1 = class AuroElement extends i$2 {
5141
5141
  static get properties() {
@@ -5422,6 +5422,20 @@ class AuroDropdown extends AuroElement$1 {
5422
5422
  }
5423
5423
  }
5424
5424
 
5425
+ /**
5426
+ * Sets the active descendant element for accessibility.
5427
+ * Uses ariaActiveDescendantElement to cross shadow DOM boundaries.
5428
+ * This function is used in components that contain `auro-dropdown` to set the active descendant.
5429
+ * @private
5430
+ * @param {HTMLElement|null} element - The element to set as the active descendant, or null to clear.
5431
+ * @returns {void}
5432
+ */
5433
+ setActiveDescendant(element) {
5434
+ if (this.trigger) {
5435
+ this.trigger.ariaActiveDescendantElement = element;
5436
+ }
5437
+ }
5438
+
5425
5439
  // function to define props used within the scope of this component
5426
5440
  static get properties() {
5427
5441
  return {
@@ -6065,7 +6079,7 @@ class AuroDropdown extends AuroElement$1 {
6065
6079
  tabindex="${o$2(this.triggerContentFocusable ? undefined : this.tabIndex)}"
6066
6080
  role="${o$2(this.triggerContentFocusable ? undefined : this.a11yRole)}"
6067
6081
  aria-expanded="${o$2(this.a11yRole === 'button' || this.triggerContentFocusable ? undefined : this.isPopoverVisible)}"
6068
- aria-controls="${o$2(this.a11yRole === 'button' || this.triggerContentFocusable ? undefined : this.dropdownId)}"
6082
+ aria-controls="${o$2(this.a11yRole === 'button' || this.triggerContentFocusable ? undefined : `${this.dropdownId}-floater-bib`)}"
6069
6083
  aria-labelledby="${o$2(this.triggerContentFocusable ? undefined : 'triggerLabel')}"
6070
6084
  @focusin="${this.handleFocusin}"
6071
6085
  @blur="${this.handleFocusOut}">