@aurodesignsystem-dev/auro-formkit 0.0.0-pr1624.0 → 0.0.0-pr1624.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. package/components/checkbox/demo/customize.min.js +7 -3
  2. package/components/checkbox/demo/getting-started.min.js +7 -3
  3. package/components/checkbox/demo/index.min.js +7 -3
  4. package/components/checkbox/dist/index.js +7 -3
  5. package/components/checkbox/dist/registered.js +7 -3
  6. package/components/combobox/demo/customize.min.js +139 -21
  7. package/components/combobox/demo/getting-started.min.js +139 -21
  8. package/components/combobox/demo/index.min.js +139 -21
  9. package/components/combobox/dist/auro-combobox.d.ts +14 -0
  10. package/components/combobox/dist/index.js +47 -9
  11. package/components/combobox/dist/registered.js +47 -9
  12. package/components/counter/demo/customize.min.js +8 -4
  13. package/components/counter/demo/getting-started.min.js +8 -4
  14. package/components/counter/demo/index.min.js +8 -4
  15. package/components/counter/dist/index.js +8 -4
  16. package/components/counter/dist/registered.js +8 -4
  17. package/components/datepicker/demo/customize.min.js +15 -7
  18. package/components/datepicker/demo/getting-started.min.js +15 -7
  19. package/components/datepicker/demo/index.min.js +15 -7
  20. package/components/datepicker/dist/index.js +15 -7
  21. package/components/datepicker/dist/registered.js +15 -7
  22. package/components/dropdown/demo/customize.min.js +1 -1
  23. package/components/dropdown/demo/getting-started.min.js +8 -4
  24. package/components/dropdown/demo/index.min.js +1 -1
  25. package/components/dropdown/dist/index.js +1 -1
  26. package/components/dropdown/dist/registered.js +1 -1
  27. package/components/form/demo/customize.min.js +201 -54
  28. package/components/form/demo/getting-started.min.js +201 -54
  29. package/components/form/demo/index.min.js +201 -54
  30. package/components/form/demo/registerDemoDeps.min.js +201 -54
  31. package/components/input/demo/customize.min.js +7 -3
  32. package/components/input/demo/getting-started.min.js +7 -3
  33. package/components/input/demo/index.min.js +7 -3
  34. package/components/input/dist/index.js +7 -3
  35. package/components/input/dist/registered.js +7 -3
  36. package/components/menu/demo/api.md +1 -1
  37. package/components/menu/demo/index.min.js +92 -12
  38. package/components/menu/dist/auro-menu-utils.d.ts +15 -2
  39. package/components/menu/dist/auro-menu.d.ts +1 -1
  40. package/components/menu/dist/index.js +92 -12
  41. package/components/menu/dist/registered.js +92 -12
  42. package/components/radio/demo/customize.min.js +7 -3
  43. package/components/radio/demo/getting-started.min.js +7 -3
  44. package/components/radio/demo/index.min.js +7 -3
  45. package/components/radio/dist/index.js +7 -3
  46. package/components/radio/dist/registered.js +7 -3
  47. package/components/select/demo/customize.min.js +110 -25
  48. package/components/select/demo/getting-started.min.js +110 -25
  49. package/components/select/demo/index.min.js +110 -25
  50. package/components/select/dist/index.js +18 -13
  51. package/components/select/dist/registered.js +18 -13
  52. package/custom-elements.json +1547 -1500
  53. package/package.json +1 -1
@@ -460,7 +460,11 @@ let AuroFormValidation$1 = class AuroFormValidation {
460
460
  ( elem.touched || (!elem.touched && typeof elem.value !== "undefined") )
461
461
  );
462
462
 
463
- if (elem.hasAttribute('error')) {
463
+ // auro-counter-group derives its error state solely from its child counters,
464
+ // so an `error` attribute on the group itself is ignored.
465
+ const hasCustomError = elem.hasAttribute('error') && !this.runtimeUtils.elementMatch(elem, 'auro-counter-group');
466
+
467
+ if (hasCustomError) {
464
468
  elem.validity = 'customError';
465
469
  elem.errorMessage = elem.setCustomValidityCustomError || elem.error || elem.setCustomValidity || '';
466
470
  validationShouldRun = false;
@@ -555,7 +559,7 @@ let AuroFormValidation$1 = class AuroFormValidation {
555
559
  }
556
560
  }
557
561
 
558
- if (validationShouldRun || elem.hasAttribute('error')) {
562
+ if (validationShouldRun || hasCustomError) {
559
563
  // Use the validity message override if it is declared
560
564
  if (elem.validity && elem.validity !== 'valid' && elem.ValidityMessageOverride) {
561
565
  elem.errorMessage = elem.ValidityMessageOverride;
@@ -5108,7 +5112,7 @@ let AuroHelpText$2 = class AuroHelpText extends i$3 {
5108
5112
  }
5109
5113
  };
5110
5114
 
5111
- var formkitVersion$2 = '202610051839';
5115
+ var formkitVersion$2 = '202610071520';
5112
5116
 
5113
5117
  /**
5114
5118
  * AuroElement is the shared base class for layout-aware Auro form components.
@@ -10997,7 +11001,11 @@ class AuroFormValidation {
10997
11001
  ( elem.touched || (!elem.touched && typeof elem.value !== "undefined") )
10998
11002
  );
10999
11003
 
11000
- if (elem.hasAttribute('error')) {
11004
+ // auro-counter-group derives its error state solely from its child counters,
11005
+ // so an `error` attribute on the group itself is ignored.
11006
+ const hasCustomError = elem.hasAttribute('error') && !this.runtimeUtils.elementMatch(elem, 'auro-counter-group');
11007
+
11008
+ if (hasCustomError) {
11001
11009
  elem.validity = 'customError';
11002
11010
  elem.errorMessage = elem.setCustomValidityCustomError || elem.error || elem.setCustomValidity || '';
11003
11011
  validationShouldRun = false;
@@ -11092,7 +11100,7 @@ class AuroFormValidation {
11092
11100
  }
11093
11101
  }
11094
11102
 
11095
- if (validationShouldRun || elem.hasAttribute('error')) {
11103
+ if (validationShouldRun || hasCustomError) {
11096
11104
  // Use the validity message override if it is declared
11097
11105
  if (elem.validity && elem.validity !== 'valid' && elem.ValidityMessageOverride) {
11098
11106
  elem.errorMessage = elem.ValidityMessageOverride;
@@ -18977,7 +18985,7 @@ let AuroHelpText$1 = class AuroHelpText extends i$3 {
18977
18985
  }
18978
18986
  };
18979
18987
 
18980
- var formkitVersion$1 = '202610051839';
18988
+ var formkitVersion$1 = '202610071520';
18981
18989
 
18982
18990
  // Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
18983
18991
  // See LICENSE in the project root for license information.
@@ -20193,7 +20201,7 @@ class AuroBibtemplate extends i$3 {
20193
20201
  }
20194
20202
  }
20195
20203
 
20196
- var formkitVersion = '202610051839';
20204
+ var formkitVersion = '202610071520';
20197
20205
 
20198
20206
  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}`;
20199
20207
 
@@ -21166,13 +21174,43 @@ class AuroCombobox extends AuroElement {
21166
21174
  AuroLibraryRuntimeUtils$4.prototype.registerComponent(name, AuroCombobox);
21167
21175
  }
21168
21176
 
21177
+ /**
21178
+ * Checks whether an option's own `disabled` or any ancestor `auro-menu`'s
21179
+ * `disabled` (root or a nested submenu the option is slotted inside)
21180
+ * applies. A menu never writes `disabled` onto its options (AB#1566578),
21181
+ * so an ancestor's disabled state has to be resolved at check-time by
21182
+ * walking up, mirroring `auro-menu`'s own `isOptionInteractive()`/
21183
+ * `isSelectableByValue()` — duplicated here rather than imported since
21184
+ * `auro-combobox` only ever talks to `auro-menu` through its public DOM
21185
+ * contract, not its internal module.
21186
+ * @private
21187
+ * @param {HTMLElement} option - The option to check.
21188
+ * @returns {boolean} True if the option or any ancestor menu is disabled.
21189
+ */
21190
+ isOptionOrAncestorMenuDisabled(option) {
21191
+ if (option.disabled) {
21192
+ return true;
21193
+ }
21194
+
21195
+ let ancestor = option.closest('auro-menu, [auro-menu]');
21196
+
21197
+ while (ancestor) {
21198
+ if (ancestor.disabled) {
21199
+ return true;
21200
+ }
21201
+ ancestor = ancestor.parentElement ? ancestor.parentElement.closest('auro-menu, [auro-menu]') : null;
21202
+ }
21203
+
21204
+ return false;
21205
+ }
21206
+
21169
21207
  /**
21170
21208
  * Mark the first available (non-hidden), enabled option as `active`.
21171
21209
  * @private
21172
21210
  * @returns {void}
21173
21211
  */
21174
21212
  activateFirstEnabledAvailableOption() {
21175
- const firstEnabledOptionIndex = this.availableOptions.findIndex((opt) => !opt.disabled && !opt.hasAttribute('nomatch'));
21213
+ const firstEnabledOptionIndex = this.availableOptions.findIndex((opt) => !this.isOptionOrAncestorMenuDisabled(opt) && !opt.hasAttribute('nomatch'));
21176
21214
  this.updateActiveOption(firstEnabledOptionIndex);
21177
21215
  }
21178
21216
 
@@ -21186,7 +21224,7 @@ class AuroCombobox extends AuroElement {
21186
21224
 
21187
21225
  // Work backwards through the available options array to find the last enabled option
21188
21226
  for (let index = this.availableOptions.length - 1; index >= 0; index -= 1) {
21189
- if (!this.availableOptions[index].disabled && !this.availableOptions[index].hasAttribute('nomatch')) {
21227
+ if (!this.isOptionOrAncestorMenuDisabled(this.availableOptions[index]) && !this.availableOptions[index].hasAttribute('nomatch')) {
21190
21228
  lastEnabledOptionIndex = index;
21191
21229
  break;
21192
21230
  }
@@ -22767,9 +22805,9 @@ class AuroCombobox extends AuroElement {
22767
22805
  }
22768
22806
  }
22769
22807
 
22770
- var styleCss$1 = i$6`:focus:not(:focus-visible){outline:3px solid transparent}.body-default{font-variant-ligatures:none;font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-default-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-default-font-size, 1rem);line-height:var(--wcss-body-default-line-height, 1.5rem)}.body-default-emphasized{font-variant-ligatures:none;font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-default-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-default-emphasized-font-size, 1rem);line-height:var(--wcss-body-default-emphasized-line-height, 1.5rem)}.body-lg{font-variant-ligatures:none;font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-lg-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-lg-font-size, 1.125rem);line-height:var(--wcss-body-lg-line-height, 1.625rem)}.body-lg-emphasized{font-variant-ligatures:none;font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-lg-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-lg-emphasized-font-size, 1.125rem);line-height:var(--wcss-body-lg-emphasized-line-height, 1.625rem)}.body-sm{font-variant-ligatures:none;font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-sm-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-sm-font-size, 0.875rem);line-height:var(--wcss-body-sm-line-height, 1.25rem)}.body-sm-emphasized{font-variant-ligatures:none;font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-sm-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-sm-emphasized-font-size, 0.875rem);line-height:var(--wcss-body-sm-emphasized-line-height, 1.25rem)}.body-xs{font-variant-ligatures:none;font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-xs-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-xs-font-size, 0.75rem);line-height:var(--wcss-body-xs-line-height, 1rem)}.body-xs-emphasized{font-variant-ligatures:none;font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-xs-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-xs-emphasized-font-size, 0.75rem);line-height:var(--wcss-body-xs-emphasized-line-height, 1rem)}.body-2xs{font-variant-ligatures:none;font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-2xs-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-2xs-font-size, 0.625rem);line-height:var(--wcss-body-2xs-line-height, 0.875rem)}.body-2xs-emphasized{font-variant-ligatures:none;font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-2xs-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-2xs-emphasized-font-size, 0.625rem);line-height:var(--wcss-body-2xs-emphasized-line-height, 0.875rem)}.display-2xl{font-variant-ligatures:none;font-family:var(--wcss-display-2xl-family, "AS Circular"),var(--wcss-display-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-2xl-weight, 300);line-height:var(--wcss-display-2xl-line-height, 1.3);font-size:var(--wcss-display-2xl-font-size, clamp(3.5rem, 6vw, 5.375rem));letter-spacing:var(--wcss-display-2xl-letter-spacing, 0)}.display-xl{font-variant-ligatures:none;font-family:var(--wcss-display-xl-family, "AS Circular"),var(--wcss-display-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-xl-weight, 300);line-height:var(--wcss-display-xl-line-height, 1.3);font-size:var(--wcss-display-xl-font-size, clamp(3rem, 5.3333333333vw, 4.5rem));letter-spacing:var(--wcss-display-xl-letter-spacing, 0)}.display-lg{font-variant-ligatures:none;font-family:var(--wcss-display-lg-family, "AS Circular"),var(--wcss-display-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-lg-weight, 300);line-height:var(--wcss-display-lg-line-height, 1.3);font-size:var(--wcss-display-lg-font-size, clamp(2.75rem, 4.6666666667vw, 4rem));letter-spacing:var(--wcss-display-lg-letter-spacing, 0)}.display-md{font-variant-ligatures:none;font-family:var(--wcss-display-md-family, "AS Circular"),var(--wcss-display-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-md-weight, 300);line-height:var(--wcss-display-md-line-height, 1.3);font-size:var(--wcss-display-md-font-size, clamp(2.5rem, 4vw, 3.5rem));letter-spacing:var(--wcss-display-md-letter-spacing, 0)}.display-sm{font-variant-ligatures:none;font-family:var(--wcss-display-sm-family, "AS Circular"),var(--wcss-display-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-sm-weight, 300);line-height:var(--wcss-display-sm-line-height, 1.3);font-size:var(--wcss-display-sm-font-size, clamp(2rem, 3.6666666667vw, 3rem));letter-spacing:var(--wcss-display-sm-letter-spacing, 0)}.display-xs{font-variant-ligatures:none;font-family:var(--wcss-display-xs-family, "AS Circular"),var(--wcss-display-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-xs-weight, 300);line-height:var(--wcss-display-xs-line-height, 1.3);font-size:var(--wcss-display-xs-font-size, clamp(1.75rem, 3vw, 2.375rem));letter-spacing:var(--wcss-display-xs-letter-spacing, 0)}.heading-xl{font-variant-ligatures:none;font-family:var(--wcss-heading-xl-family, "AS Circular"),var(--wcss-heading-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-xl-weight, 300);line-height:var(--wcss-heading-xl-line-height, 1.3);font-size:var(--wcss-heading-xl-font-size, clamp(2rem, 3vw, 2.5rem));letter-spacing:var(--wcss-heading-xl-letter-spacing, 0)}.heading-lg{font-variant-ligatures:none;font-family:var(--wcss-heading-lg-family, "AS Circular"),var(--wcss-heading-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-lg-weight, 300);line-height:var(--wcss-heading-lg-line-height, 1.3);font-size:var(--wcss-heading-lg-font-size, clamp(1.75rem, 2.6666666667vw, 2.25rem));letter-spacing:var(--wcss-heading-lg-letter-spacing, 0)}.heading-md{font-variant-ligatures:none;font-family:var(--wcss-heading-md-family, "AS Circular"),var(--wcss-heading-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-md-weight, 300);line-height:var(--wcss-heading-md-line-height, 1.3);font-size:var(--wcss-heading-md-font-size, clamp(1.625rem, 2.3333333333vw, 1.75rem));letter-spacing:var(--wcss-heading-md-letter-spacing, 0)}.heading-sm{font-variant-ligatures:none;font-family:var(--wcss-heading-sm-family, "AS Circular"),var(--wcss-heading-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-sm-weight, 300);line-height:var(--wcss-heading-sm-line-height, 1.3);font-size:var(--wcss-heading-sm-font-size, clamp(1.375rem, 2vw, 1.5rem));letter-spacing:var(--wcss-heading-sm-letter-spacing, 0)}.heading-xs{font-variant-ligatures:none;font-family:var(--wcss-heading-xs-family, "AS Circular"),var(--wcss-heading-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-xs-weight, 300);line-height:var(--wcss-heading-xs-line-height, 1.3);font-size:var(--wcss-heading-xs-font-size, clamp(1.25rem, 1.6666666667vw, 1.25rem));letter-spacing:var(--wcss-heading-xs-letter-spacing, 0)}.heading-2xs{font-variant-ligatures:none;font-family:var(--wcss-heading-2xs-family, "AS Circular"),var(--wcss-heading-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-2xs-weight, 300);line-height:var(--wcss-heading-2xs-line-height, 1.3);font-size:var(--wcss-heading-2xs-font-size, clamp(1.125rem, 1.5vw, 1.125rem));letter-spacing:var(--wcss-heading-2xs-letter-spacing, 0)}.accent-2xl{font-variant-ligatures:none;font-family:var(--wcss-accent-2xl-family, "Good OT"),var(--wcss-accent-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-2xl-weight, 450);line-height:var(--wcss-accent-2xl-line-height, 1);font-size:var(--wcss-accent-2xl-font-size, clamp(2rem, 3.1666666667vw, 2.375rem));letter-spacing:var(--wcss-accent-2xl-letter-spacing, 0.05em);text-transform:uppercase}.accent-xl{font-variant-ligatures:none;font-family:var(--wcss-accent-xl-family, "Good OT"),var(--wcss-accent-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-xl-weight, 450);line-height:var(--wcss-accent-xl-line-height, 1.3);font-size:var(--wcss-accent-xl-font-size, clamp(1.625rem, 2.3333333333vw, 2rem));letter-spacing:var(--wcss-accent-xl-letter-spacing, 0.05em);text-transform:uppercase}.accent-lg{font-variant-ligatures:none;font-family:var(--wcss-accent-lg-family, "Good OT"),var(--wcss-accent-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-lg-weight, 450);line-height:var(--wcss-accent-lg-line-height, 1.3);font-size:var(--wcss-accent-lg-font-size, clamp(1.5rem, 2.1666666667vw, 1.75rem));letter-spacing:var(--wcss-accent-lg-letter-spacing, 0.05em);text-transform:uppercase}.accent-md{font-variant-ligatures:none;font-family:var(--wcss-accent-md-family, "Good OT"),var(--wcss-accent-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-md-weight, 500);line-height:var(--wcss-accent-md-line-height, 1.3);font-size:var(--wcss-accent-md-font-size, clamp(1.375rem, 1.8333333333vw, 1.5rem));letter-spacing:var(--wcss-accent-md-letter-spacing, 0.05em);text-transform:uppercase}.accent-sm{font-variant-ligatures:none;font-family:var(--wcss-accent-sm-family, "Good OT"),var(--wcss-accent-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-sm-weight, 500);line-height:var(--wcss-accent-sm-line-height, 1.3);font-size:var(--wcss-accent-sm-font-size, clamp(1.125rem, 1.5vw, 1.25rem));letter-spacing:var(--wcss-accent-sm-letter-spacing, 0.05em);text-transform:uppercase}.accent-xs{font-variant-ligatures:none;font-family:var(--wcss-accent-xs-family, "Good OT"),var(--wcss-accent-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-xs-weight, 500);line-height:var(--wcss-accent-xs-line-height, 1.3);font-size:var(--wcss-accent-xs-font-size, clamp(1rem, 1.3333333333vw, 1rem));letter-spacing:var(--wcss-accent-xs-letter-spacing, 0.1em);text-transform:uppercase}.accent-2xs{font-variant-ligatures:none;font-family:var(--wcss-accent-2xs-family, "Good OT"),var(--wcss-accent-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-2xs-weight, 450);line-height:var(--wcss-accent-2xs-line-height, 1.3);font-size:var(--wcss-accent-2xs-font-size, clamp(0.875rem, 1.1666666667vw, 0.875rem));letter-spacing:var(--wcss-accent-2xs-letter-spacing, 0.1em);text-transform:uppercase}:host{display:block;line-height:0;overflow-y:auto}:host .menuWrapper{box-sizing:border-box;display:flex;flex-direction:column;width:100%;margin:0;padding:0}:host ::slotted(hr){box-sizing:content-box !important;height:0 !important;overflow:visible !important;margin:var(--ds-size-100, 0.5rem) 0 !important;border-width:0 !important;border-top-width:1px !important;border-top-style:solid !important}:host [loadingplaceholder]{padding:var(--ds-size-150, 0.75rem) 0}:host [loadingplaceholder].empty{opacity:0;position:absolute}:host [loadingplaceholder] .loadingWrapper{display:flex;align-items:center;justify-content:center;gap:var(--ds-size-150, 0.75rem)}:host([root]) .menuWrapper.lg{padding:var(--ds-size-150, 0.75rem);gap:var(--ds-size-50, 0.25rem)}:host([root]) .menuWrapper.xl{padding:var(--ds-size-200, 1rem);gap:var(--ds-size-100, 0.5rem)}`;
22808
+ var styleCss$1 = i$6`:focus:not(:focus-visible){outline:3px solid transparent}.body-default{font-variant-ligatures:none;font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-default-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-default-font-size, 1rem);line-height:var(--wcss-body-default-line-height, 1.5rem)}.body-default-emphasized{font-variant-ligatures:none;font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-default-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-default-emphasized-font-size, 1rem);line-height:var(--wcss-body-default-emphasized-line-height, 1.5rem)}.body-lg{font-variant-ligatures:none;font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-lg-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-lg-font-size, 1.125rem);line-height:var(--wcss-body-lg-line-height, 1.625rem)}.body-lg-emphasized{font-variant-ligatures:none;font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-lg-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-lg-emphasized-font-size, 1.125rem);line-height:var(--wcss-body-lg-emphasized-line-height, 1.625rem)}.body-sm{font-variant-ligatures:none;font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-sm-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-sm-font-size, 0.875rem);line-height:var(--wcss-body-sm-line-height, 1.25rem)}.body-sm-emphasized{font-variant-ligatures:none;font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-sm-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-sm-emphasized-font-size, 0.875rem);line-height:var(--wcss-body-sm-emphasized-line-height, 1.25rem)}.body-xs{font-variant-ligatures:none;font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-xs-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-xs-font-size, 0.75rem);line-height:var(--wcss-body-xs-line-height, 1rem)}.body-xs-emphasized{font-variant-ligatures:none;font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-xs-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-xs-emphasized-font-size, 0.75rem);line-height:var(--wcss-body-xs-emphasized-line-height, 1rem)}.body-2xs{font-variant-ligatures:none;font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-2xs-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-2xs-font-size, 0.625rem);line-height:var(--wcss-body-2xs-line-height, 0.875rem)}.body-2xs-emphasized{font-variant-ligatures:none;font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-2xs-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-2xs-emphasized-font-size, 0.625rem);line-height:var(--wcss-body-2xs-emphasized-line-height, 0.875rem)}.display-2xl{font-variant-ligatures:none;font-family:var(--wcss-display-2xl-family, "AS Circular"),var(--wcss-display-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-2xl-weight, 300);line-height:var(--wcss-display-2xl-line-height, 1.3);font-size:var(--wcss-display-2xl-font-size, clamp(3.5rem, 6vw, 5.375rem));letter-spacing:var(--wcss-display-2xl-letter-spacing, 0)}.display-xl{font-variant-ligatures:none;font-family:var(--wcss-display-xl-family, "AS Circular"),var(--wcss-display-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-xl-weight, 300);line-height:var(--wcss-display-xl-line-height, 1.3);font-size:var(--wcss-display-xl-font-size, clamp(3rem, 5.3333333333vw, 4.5rem));letter-spacing:var(--wcss-display-xl-letter-spacing, 0)}.display-lg{font-variant-ligatures:none;font-family:var(--wcss-display-lg-family, "AS Circular"),var(--wcss-display-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-lg-weight, 300);line-height:var(--wcss-display-lg-line-height, 1.3);font-size:var(--wcss-display-lg-font-size, clamp(2.75rem, 4.6666666667vw, 4rem));letter-spacing:var(--wcss-display-lg-letter-spacing, 0)}.display-md{font-variant-ligatures:none;font-family:var(--wcss-display-md-family, "AS Circular"),var(--wcss-display-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-md-weight, 300);line-height:var(--wcss-display-md-line-height, 1.3);font-size:var(--wcss-display-md-font-size, clamp(2.5rem, 4vw, 3.5rem));letter-spacing:var(--wcss-display-md-letter-spacing, 0)}.display-sm{font-variant-ligatures:none;font-family:var(--wcss-display-sm-family, "AS Circular"),var(--wcss-display-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-sm-weight, 300);line-height:var(--wcss-display-sm-line-height, 1.3);font-size:var(--wcss-display-sm-font-size, clamp(2rem, 3.6666666667vw, 3rem));letter-spacing:var(--wcss-display-sm-letter-spacing, 0)}.display-xs{font-variant-ligatures:none;font-family:var(--wcss-display-xs-family, "AS Circular"),var(--wcss-display-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-xs-weight, 300);line-height:var(--wcss-display-xs-line-height, 1.3);font-size:var(--wcss-display-xs-font-size, clamp(1.75rem, 3vw, 2.375rem));letter-spacing:var(--wcss-display-xs-letter-spacing, 0)}.heading-xl{font-variant-ligatures:none;font-family:var(--wcss-heading-xl-family, "AS Circular"),var(--wcss-heading-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-xl-weight, 300);line-height:var(--wcss-heading-xl-line-height, 1.3);font-size:var(--wcss-heading-xl-font-size, clamp(2rem, 3vw, 2.5rem));letter-spacing:var(--wcss-heading-xl-letter-spacing, 0)}.heading-lg{font-variant-ligatures:none;font-family:var(--wcss-heading-lg-family, "AS Circular"),var(--wcss-heading-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-lg-weight, 300);line-height:var(--wcss-heading-lg-line-height, 1.3);font-size:var(--wcss-heading-lg-font-size, clamp(1.75rem, 2.6666666667vw, 2.25rem));letter-spacing:var(--wcss-heading-lg-letter-spacing, 0)}.heading-md{font-variant-ligatures:none;font-family:var(--wcss-heading-md-family, "AS Circular"),var(--wcss-heading-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-md-weight, 300);line-height:var(--wcss-heading-md-line-height, 1.3);font-size:var(--wcss-heading-md-font-size, clamp(1.625rem, 2.3333333333vw, 1.75rem));letter-spacing:var(--wcss-heading-md-letter-spacing, 0)}.heading-sm{font-variant-ligatures:none;font-family:var(--wcss-heading-sm-family, "AS Circular"),var(--wcss-heading-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-sm-weight, 300);line-height:var(--wcss-heading-sm-line-height, 1.3);font-size:var(--wcss-heading-sm-font-size, clamp(1.375rem, 2vw, 1.5rem));letter-spacing:var(--wcss-heading-sm-letter-spacing, 0)}.heading-xs{font-variant-ligatures:none;font-family:var(--wcss-heading-xs-family, "AS Circular"),var(--wcss-heading-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-xs-weight, 300);line-height:var(--wcss-heading-xs-line-height, 1.3);font-size:var(--wcss-heading-xs-font-size, clamp(1.25rem, 1.6666666667vw, 1.25rem));letter-spacing:var(--wcss-heading-xs-letter-spacing, 0)}.heading-2xs{font-variant-ligatures:none;font-family:var(--wcss-heading-2xs-family, "AS Circular"),var(--wcss-heading-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-2xs-weight, 300);line-height:var(--wcss-heading-2xs-line-height, 1.3);font-size:var(--wcss-heading-2xs-font-size, clamp(1.125rem, 1.5vw, 1.125rem));letter-spacing:var(--wcss-heading-2xs-letter-spacing, 0)}.accent-2xl{font-variant-ligatures:none;font-family:var(--wcss-accent-2xl-family, "Good OT"),var(--wcss-accent-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-2xl-weight, 450);line-height:var(--wcss-accent-2xl-line-height, 1);font-size:var(--wcss-accent-2xl-font-size, clamp(2rem, 3.1666666667vw, 2.375rem));letter-spacing:var(--wcss-accent-2xl-letter-spacing, 0.05em);text-transform:uppercase}.accent-xl{font-variant-ligatures:none;font-family:var(--wcss-accent-xl-family, "Good OT"),var(--wcss-accent-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-xl-weight, 450);line-height:var(--wcss-accent-xl-line-height, 1.3);font-size:var(--wcss-accent-xl-font-size, clamp(1.625rem, 2.3333333333vw, 2rem));letter-spacing:var(--wcss-accent-xl-letter-spacing, 0.05em);text-transform:uppercase}.accent-lg{font-variant-ligatures:none;font-family:var(--wcss-accent-lg-family, "Good OT"),var(--wcss-accent-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-lg-weight, 450);line-height:var(--wcss-accent-lg-line-height, 1.3);font-size:var(--wcss-accent-lg-font-size, clamp(1.5rem, 2.1666666667vw, 1.75rem));letter-spacing:var(--wcss-accent-lg-letter-spacing, 0.05em);text-transform:uppercase}.accent-md{font-variant-ligatures:none;font-family:var(--wcss-accent-md-family, "Good OT"),var(--wcss-accent-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-md-weight, 500);line-height:var(--wcss-accent-md-line-height, 1.3);font-size:var(--wcss-accent-md-font-size, clamp(1.375rem, 1.8333333333vw, 1.5rem));letter-spacing:var(--wcss-accent-md-letter-spacing, 0.05em);text-transform:uppercase}.accent-sm{font-variant-ligatures:none;font-family:var(--wcss-accent-sm-family, "Good OT"),var(--wcss-accent-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-sm-weight, 500);line-height:var(--wcss-accent-sm-line-height, 1.3);font-size:var(--wcss-accent-sm-font-size, clamp(1.125rem, 1.5vw, 1.25rem));letter-spacing:var(--wcss-accent-sm-letter-spacing, 0.05em);text-transform:uppercase}.accent-xs{font-variant-ligatures:none;font-family:var(--wcss-accent-xs-family, "Good OT"),var(--wcss-accent-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-xs-weight, 500);line-height:var(--wcss-accent-xs-line-height, 1.3);font-size:var(--wcss-accent-xs-font-size, clamp(1rem, 1.3333333333vw, 1rem));letter-spacing:var(--wcss-accent-xs-letter-spacing, 0.1em);text-transform:uppercase}.accent-2xs{font-variant-ligatures:none;font-family:var(--wcss-accent-2xs-family, "Good OT"),var(--wcss-accent-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-2xs-weight, 450);line-height:var(--wcss-accent-2xs-line-height, 1.3);font-size:var(--wcss-accent-2xs-font-size, clamp(0.875rem, 1.1666666667vw, 0.875rem));letter-spacing:var(--wcss-accent-2xs-letter-spacing, 0.1em);text-transform:uppercase}:host{display:block;line-height:0;overflow-y:auto}:host .menuWrapper{box-sizing:border-box;display:flex;flex-direction:column;width:100%;margin:0;padding:0}:host ::slotted(hr){box-sizing:content-box !important;height:0 !important;overflow:visible !important;margin:var(--ds-size-100, 0.5rem) 0 !important;border-width:0 !important;border-top-width:1px !important;border-top-style:solid !important}:host [loadingplaceholder]{padding:var(--ds-size-150, 0.75rem) 0}:host [loadingplaceholder].empty{opacity:0;position:absolute}:host [loadingplaceholder] .loadingWrapper{display:flex;align-items:center;justify-content:center;gap:var(--ds-size-150, 0.75rem)}:host([root]) .menuWrapper.lg{padding:var(--ds-size-150, 0.75rem);gap:var(--ds-size-50, 0.25rem)}:host([root]) .menuWrapper.xl{padding:var(--ds-size-200, 1rem);gap:var(--ds-size-100, 0.5rem)}:host([disabled]) .menuWrapper{pointer-events:none}`;
22771
22809
 
22772
- var colorCss$1 = i$6`:host ::slotted(hr){border-top-color:var(--ds-auro-menu-divider-color)}[loadingplaceholder] slot[name=loadingIcon]{color:var(--ds-auro-menu-loader-color)}[loadingplaceholder] slot[name=loadingText]{color:var(--ds-auro-menu-loader-text-color)}`;
22810
+ var colorCss$1 = i$6`:host ::slotted(hr){border-top-color:var(--ds-auro-menu-divider-color)}[loadingplaceholder] slot[name=loadingIcon]{color:var(--ds-auro-menu-loader-color)}[loadingplaceholder] slot[name=loadingText]{color:var(--ds-auro-menu-loader-text-color)}:host([disabled]){--ds-auro-menuoption-container-color: var(--ds-basic-color-surface-default, #ffffff);--ds-auro-menuoption-text-color: var(--ds-basic-color-texticon-disabled, #d0d0d0);--ds-auro-menuoption-icon-color: var(--ds-basic-color-texticon-disabled, #d0d0d0)}:host([disabled]) ::slotted(auro-menuoption),:host([disabled]) ::slotted([auro-menuoption]){--ds-auro-menuoption-container-color: var(--ds-basic-color-surface-default, #ffffff) !important;--ds-auro-menuoption-text-color: var(--ds-basic-color-texticon-disabled, #d0d0d0) !important;--ds-auro-menuoption-icon-color: var(--ds-basic-color-texticon-disabled, #d0d0d0) !important}`;
22773
22811
 
22774
22812
  var tokensCss = i$6`:host{--ds-auro-menu-divider-color: var(--ds-basic-color-border-divider, rgba(0, 0, 0, 0.15));--ds-auro-menu-loader-color: var(--ds-basic-color-brand-primary, #01426a);--ds-auro-menu-loader-text-color: var(--ds-basic-color-texticon-default, #2a2a2a);--ds-auro-menuoption-container-color: transparent;--ds-auro-menuoption-container-border-color: var(--ds-auro-menuoption-container-color);--ds-auro-menuoption-icon-color: transparent;--ds-auro-menuoption-text-color: var(--ds-basic-color-texticon-default, #2a2a2a)}`;
22775
22813
 
@@ -22789,6 +22827,31 @@ function serializeMultiSelectValue(values) {
22789
22827
  return values && values.length > 0 ? JSON.stringify(values) : undefined;
22790
22828
  }
22791
22829
 
22830
+ /**
22831
+ * Walks up through every ancestor `auro-menu` (root and any nested submenus
22832
+ * the option is slotted inside) and checks whether any of them is disabled.
22833
+ * A menu's `disabled` is never written onto its options (AB#1566578), so an
22834
+ * option's interactivity must be resolved at check-time against its owning
22835
+ * menu chain instead of a mutated attribute. Exported so every "is this
22836
+ * option interactive" check agrees — `auro-menuoption`'s `isActive` getter
22837
+ * uses it too (consumed by `auro-select`/`auro-combobox`), not just this
22838
+ * module's own `isOptionInteractive`/`isSelectableByValue`.
22839
+ * @param {HTMLElement} option - The option to check.
22840
+ * @returns {boolean} True if any ancestor menu (root or nested) is disabled.
22841
+ */
22842
+ function hasDisabledAncestorMenu(option) {
22843
+ let ancestor = option.closest('auro-menu, [auro-menu]');
22844
+
22845
+ while (ancestor) {
22846
+ if (ancestor.disabled) {
22847
+ return true;
22848
+ }
22849
+ ancestor = ancestor.parentElement ? ancestor.parentElement.closest('auro-menu, [auro-menu]') : null;
22850
+ }
22851
+
22852
+ return false;
22853
+ }
22854
+
22792
22855
  /**
22793
22856
  * Validates if an option can be interacted with.
22794
22857
  * @private
@@ -22798,21 +22861,23 @@ function serializeMultiSelectValue(values) {
22798
22861
  function isOptionInteractive(option) {
22799
22862
  return !option.hasAttribute('hidden') &&
22800
22863
  !option.hasAttribute('disabled') &&
22801
- !option.hasAttribute('static');
22864
+ !option.hasAttribute('static') &&
22865
+ !hasDisabledAncestorMenu(option);
22802
22866
  }
22803
22867
 
22804
22868
  /**
22805
22869
  * Validates if an option may be selected by matching a programmatic value.
22806
22870
  * Unlike `isOptionInteractive`, `hidden` is allowed: the combobox toggles
22807
22871
  * `hidden` as its type-ahead filter, so a filtered-out option is still a
22808
- * valid programmatic selection. Only disabled and static options — which are
22809
- * never selectable — are rejected.
22872
+ * valid programmatic selection. Disabled (its own or an ancestor menu's) and
22873
+ * static options — which are never selectable — are rejected.
22810
22874
  * @param {HTMLElement} option - The option to check.
22811
22875
  * @returns {boolean} True if option can be selected by value.
22812
22876
  */
22813
22877
  function isSelectableByValue(option) {
22814
22878
  return !option.hasAttribute('disabled') &&
22815
- !option.hasAttribute('static');
22879
+ !option.hasAttribute('static') &&
22880
+ !hasDisabledAncestorMenu(option);
22816
22881
  }
22817
22882
 
22818
22883
  /* eslint-disable no-underscore-dangle */
@@ -23094,7 +23159,7 @@ class AuroMenu extends AuroElement {
23094
23159
  },
23095
23160
 
23096
23161
  /**
23097
- * When true, the entire menu and all options are disabled.
23162
+ * When true, the entire menu is disabled: options render inert (not focusable, keyboard-navigable, or selectable, and visually disabled) without changing any option's own `disabled` state.
23098
23163
  */
23099
23164
  disabled: {
23100
23165
  type: Boolean,
@@ -23666,9 +23731,21 @@ class AuroMenu extends AuroElement {
23666
23731
  }
23667
23732
  }
23668
23733
 
23669
- // Update disabled state
23734
+ // Announce menu-level disabled to assistive tech. `disabled` is never
23735
+ // written onto the option (AB#1566578), but aria-disabled has to be
23736
+ // pushed proactively — unlike interactivity checks, AT reads it
23737
+ // directly off the DOM rather than through a JS getter. Only clear it
23738
+ // on re-enable when the option isn't itself authored `disabled` AND no
23739
+ // other ancestor menu in its chain is still disabled — `this.items` is
23740
+ // a deep query, so toggling an unrelated root back on must not strip
23741
+ // aria-disabled from a nested submenu's options that are still
23742
+ // independently disabled.
23670
23743
  if (changedProperties.has('disabled')) {
23671
- option.disabled = this.disabled;
23744
+ if (this.disabled) {
23745
+ option.setAttribute('aria-disabled', 'true');
23746
+ } else if (!option.disabled && !hasDisabledAncestorMenu(option)) {
23747
+ option.removeAttribute('aria-disabled');
23748
+ }
23672
23749
  }
23673
23750
  });
23674
23751
 
@@ -23732,6 +23809,22 @@ class AuroMenu extends AuroElement {
23732
23809
  ]));
23733
23810
  }
23734
23811
 
23812
+ // Options slotted in (or re-initialized) while the menu is already
23813
+ // disabled never went through the `disabled`-change branch that pushes
23814
+ // `aria-disabled` (AB#1566578) — re-apply it here the same way
23815
+ // `noCheckmark` already re-applies above. Only the `true` case needs
23816
+ // replaying: re-enabling the menu already clears existing items via the
23817
+ // normal `disabled`-change path, and a newly-added item that isn't
23818
+ // disabled has no `aria-disabled` to clear yet.
23819
+ if (this.disabled) {
23820
+ this.updateItemsState(new Map([
23821
+ [
23822
+ 'disabled',
23823
+ true
23824
+ ]
23825
+ ]));
23826
+ }
23827
+
23735
23828
  this.dispatchEvent(new CustomEvent('auroMenu-optionsChange', {
23736
23829
  detail: {
23737
23830
  options: this.items
@@ -23969,6 +24062,13 @@ class AuroMenu extends AuroElement {
23969
24062
  * @private
23970
24063
  */
23971
24064
  makeSelection() {
24065
+ // A disabled menu is inert — called directly by auro-select/auro-combobox
24066
+ // keyboard strategies as well as this menu's own handleKeyDown, so the
24067
+ // guard lives here rather than only at the keydown entry point.
24068
+ if (this.disabled) {
24069
+ return;
24070
+ }
24071
+
23972
24072
  if (!this.items) {
23973
24073
  this.initItems();
23974
24074
  }
@@ -24087,6 +24187,15 @@ class AuroMenu extends AuroElement {
24087
24187
  */
24088
24188
  handleOptionHover(event) {
24089
24189
  const option = event.detail;
24190
+
24191
+ // `pointer-events: none` normally keeps a real hover from ever reaching
24192
+ // a disabled-ancestor option, but this guard protects the few paths
24193
+ // that don't rely on pointer hit-testing (a synthetic `mouseover`
24194
+ // dispatch, test automation) from still activating it.
24195
+ if (!option || !isOptionInteractive(option)) {
24196
+ return;
24197
+ }
24198
+
24090
24199
  if (this.items) {
24091
24200
  const idx = this.items.indexOf(option);
24092
24201
  if (idx >= 0) {
@@ -24124,6 +24233,11 @@ class AuroMenu extends AuroElement {
24124
24233
  * @param {string} direction - 'up' or 'down'.
24125
24234
  */
24126
24235
  navigateOptions(direction) {
24236
+ // A disabled menu is inert — no option becomes active via keyboard.
24237
+ if (this.disabled) {
24238
+ return;
24239
+ }
24240
+
24127
24241
  // Return early if no items exist
24128
24242
  if (!this.items || !this.items.length) {
24129
24243
  return;
@@ -24512,7 +24626,8 @@ class AuroMenuOption extends AuroElement {
24512
24626
  get isActive() {
24513
24627
  return !this.hasAttribute('hidden') &&
24514
24628
  !this.disabled &&
24515
- !this.hasAttribute('static');
24629
+ !this.hasAttribute('static') &&
24630
+ !hasDisabledAncestorMenu(this);
24516
24631
  }
24517
24632
 
24518
24633
  connectedCallback() {
@@ -24563,7 +24678,10 @@ class AuroMenuOption extends AuroElement {
24563
24678
  if (changedProperties.has('disabled')) {
24564
24679
  if (this.disabled) {
24565
24680
  this.setAttribute('aria-disabled', 'true');
24566
- } else {
24681
+ } else if (!hasDisabledAncestorMenu(this)) {
24682
+ // Authored `disabled` just turned off, but if an ancestor menu is
24683
+ // still disabled (AB#1566578) this option is still inert — don't
24684
+ // clear the announcement a still-disabled ancestor is responsible for.
24567
24685
  this.removeAttribute('aria-disabled');
24568
24686
  }
24569
24687
  }
@@ -24595,7 +24713,7 @@ class AuroMenuOption extends AuroElement {
24595
24713
  * @private
24596
24714
  */
24597
24715
  handleClick() {
24598
- if (!this.disabled) {
24716
+ if (!this.disabled && !hasDisabledAncestorMenu(this)) {
24599
24717
  // Pure event emitter: the parent menu owns selection state and will
24600
24718
  // update `selected` via setSelected(). Toggling here desyncs the option
24601
24719
  // UI from auro-menu.optionSelected (e.g. single-select re-click on the