@aurodesignsystem-dev/auro-formkit 0.0.0-pr1503.2 → 0.0.0-pr1505.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 (62) hide show
  1. package/components/checkbox/demo/customize.min.js +2 -2
  2. package/components/checkbox/demo/getting-started.min.js +2 -2
  3. package/components/checkbox/demo/index.min.js +2 -2
  4. package/components/checkbox/dist/index.js +2 -2
  5. package/components/checkbox/dist/registered.js +2 -2
  6. package/components/combobox/demo/customize.md +7 -3
  7. package/components/combobox/demo/customize.min.js +1450 -1662
  8. package/components/combobox/demo/getting-started.min.js +1450 -1662
  9. package/components/combobox/demo/index.min.js +1450 -1662
  10. package/components/combobox/dist/auro-combobox.d.ts +5 -0
  11. package/components/combobox/dist/index.js +504 -141
  12. package/components/combobox/dist/registered.js +504 -141
  13. package/components/counter/demo/customize.min.js +3 -3
  14. package/components/counter/demo/index.min.js +3 -3
  15. package/components/counter/dist/index.js +3 -3
  16. package/components/counter/dist/registered.js +3 -3
  17. package/components/datepicker/demo/api.md +2 -0
  18. package/components/datepicker/demo/customize.md +195 -33
  19. package/components/datepicker/demo/customize.min.js +145 -60
  20. package/components/datepicker/demo/index.min.js +137 -59
  21. package/components/datepicker/dist/index.js +137 -59
  22. package/components/datepicker/dist/registered.js +137 -59
  23. package/components/datepicker/dist/src/auro-datepicker.d.ts +2 -0
  24. package/components/dropdown/demo/customize.min.js +1 -1
  25. package/components/dropdown/demo/getting-started.min.js +1 -1
  26. package/components/dropdown/demo/index.min.js +1 -1
  27. package/components/dropdown/dist/index.js +1 -1
  28. package/components/dropdown/dist/registered.js +1 -1
  29. package/components/form/demo/customize.min.js +2209 -2237
  30. package/components/form/demo/getting-started.min.js +2209 -2237
  31. package/components/form/demo/index.min.js +2209 -2237
  32. package/components/form/demo/registerDemoDeps.min.js +2207 -2235
  33. package/components/input/demo/customize.md +56 -55
  34. package/components/input/demo/customize.min.js +131 -56
  35. package/components/input/demo/getting-started.min.js +131 -56
  36. package/components/input/demo/index.md +2 -2
  37. package/components/input/demo/index.min.js +131 -56
  38. package/components/input/dist/base-input.d.ts +16 -0
  39. package/components/input/dist/index.js +131 -56
  40. package/components/input/dist/registered.js +131 -56
  41. package/components/menu/demo/api.md +41 -45
  42. package/components/menu/demo/customize.md +0 -28
  43. package/components/menu/demo/index.min.js +779 -1354
  44. package/components/menu/dist/auro-menu.d.ts +95 -110
  45. package/components/menu/dist/auro-menuoption.d.ts +32 -138
  46. package/components/menu/dist/index.js +753 -1308
  47. package/components/menu/dist/registered.js +765 -1308
  48. package/components/radio/demo/customize.min.js +2 -2
  49. package/components/radio/demo/getting-started.min.js +2 -2
  50. package/components/radio/demo/index.min.js +2 -2
  51. package/components/radio/dist/index.js +2 -2
  52. package/components/radio/dist/registered.js +2 -2
  53. package/components/select/demo/customize.md +7 -3
  54. package/components/select/demo/customize.min.js +1072 -1616
  55. package/components/select/demo/getting-started.min.js +1072 -1616
  56. package/components/select/demo/index.min.js +1072 -1616
  57. package/components/select/dist/index.js +46 -15
  58. package/components/select/dist/registered.js +46 -15
  59. package/components/select/dist/selectUtils.d.ts +12 -0
  60. package/custom-elements.json +384 -1022
  61. package/package.json +1 -3
  62. package/components/menu/dist/auro-menu.context.d.ts +0 -238
@@ -623,7 +623,7 @@ class AuroFormValidation {
623
623
  } else if (this.runtimeUtils.elementMatch(elem, 'auro-input') && elem.errorMessage === '') {
624
624
  const input = elem.renderRoot.querySelector('input');
625
625
 
626
- if (input.validationMessage.length > 0) {
626
+ if (input && input.validationMessage.length > 0) {
627
627
  elem.errorMessage = input.validationMessage;
628
628
  }
629
629
  } else if (this.runtimeUtils.elementMatch(elem, 'auro-combobox') && elem.errorMessage === '') {
@@ -835,6 +835,21 @@ function navigateArrow(component, direction, options = {}) {
835
835
  }
836
836
  }
837
837
 
838
+ /**
839
+ * Returns the enabled (non-disabled) options for a menu, safely.
840
+ *
841
+ * Auro-menu's `options` getter returns `undefined` when the menu has no items
842
+ * (initItems sets `items` to undefined for empty menus). Callers that reach for
843
+ * `.find()` / `[...spread]` would otherwise crash; this helper normalizes the
844
+ * empty case to `[]` so array methods are always safe.
845
+ *
846
+ * @param {HTMLElement | null | undefined} menu - The auro-menu element.
847
+ * @returns {Array<HTMLElement>} Non-disabled options, empty array when none.
848
+ */
849
+ function getEnabledOptions(menu) {
850
+ return (menu?.options || []).filter((option) => !option.disabled);
851
+ }
852
+
838
853
  /* eslint-disable new-cap */
839
854
 
840
855
  const selectKeyboardStrategy = {
@@ -883,7 +898,8 @@ const selectKeyboardStrategy = {
883
898
  }
884
899
  evt.preventDefault();
885
900
  evt.stopPropagation();
886
- const lastOption = [...component.menu.menuService.menuOptions].reverse().find((option) => !option.disabled);
901
+ // `pop()` is safe here: getEnabledOptions returns a fresh filtered array.
902
+ const lastOption = getEnabledOptions(component.menu).pop();
887
903
  if (lastOption) {
888
904
  component.menu.updateActiveOption(lastOption);
889
905
  }
@@ -905,7 +921,7 @@ const selectKeyboardStrategy = {
905
921
  }
906
922
  evt.preventDefault();
907
923
  evt.stopPropagation();
908
- const firstOption = component.menu.menuService.menuOptions.find((option) => !option.disabled);
924
+ const [firstOption] = getEnabledOptions(component.menu);
909
925
  if (firstOption) {
910
926
  component.menu.updateActiveOption(firstOption);
911
927
  }
@@ -4846,7 +4862,7 @@ let AuroHelpText$1 = class AuroHelpText extends LitElement {
4846
4862
  }
4847
4863
  };
4848
4864
 
4849
- var formkitVersion$1 = '202606151650';
4865
+ var formkitVersion$1 = '202606171946';
4850
4866
 
4851
4867
  class AuroElement extends LitElement {
4852
4868
  static get properties() {
@@ -6859,7 +6875,7 @@ class AuroHelpText extends LitElement {
6859
6875
  }
6860
6876
  }
6861
6877
 
6862
- var formkitVersion = '202606151650';
6878
+ var formkitVersion = '202606171946';
6863
6879
 
6864
6880
  var styleCss = 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}.body-default{font-size:var(--wcss-body-default-font-size, 1rem);font-weight:var(--wcss-body-default-weight, );line-height:var(--wcss-body-default-line-height, 1.5rem)}.body-default,.body-default-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-default-emphasized{font-size:var(--wcss-body-default-emphasized-font-size, 1rem);font-weight:var(--wcss-body-default-emphasized-weight, );line-height:var(--wcss-body-default-emphasized-line-height, 1.5rem)}.body-lg{font-size:var(--wcss-body-lg-font-size, 1.125rem);font-weight:var(--wcss-body-lg-weight, );line-height:var(--wcss-body-lg-line-height, 1.625rem)}.body-lg,.body-lg-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-lg-emphasized{font-size:var(--wcss-body-lg-emphasized-font-size, 1.125rem);font-weight:var(--wcss-body-lg-emphasized-weight, );line-height:var(--wcss-body-lg-emphasized-line-height, 1.625rem)}.body-sm{font-size:var(--wcss-body-sm-font-size, 0.875rem);font-weight:var(--wcss-body-sm-weight, );line-height:var(--wcss-body-sm-line-height, 1.25rem)}.body-sm,.body-sm-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-sm-emphasized{font-size:var(--wcss-body-sm-emphasized-font-size, 0.875rem);font-weight:var(--wcss-body-sm-emphasized-weight, );line-height:var(--wcss-body-sm-emphasized-line-height, 1.25rem)}.body-xs{font-size:var(--wcss-body-xs-font-size, 0.75rem);font-weight:var(--wcss-body-xs-weight, );line-height:var(--wcss-body-xs-line-height, 1rem)}.body-xs,.body-xs-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-xs-emphasized{font-size:var(--wcss-body-xs-emphasized-font-size, 0.75rem);font-weight:var(--wcss-body-xs-emphasized-weight, );line-height:var(--wcss-body-xs-emphasized-line-height, 1rem)}.body-2xs{font-size:var(--wcss-body-2xs-font-size, 0.625rem);font-weight:var(--wcss-body-2xs-weight, );line-height:var(--wcss-body-2xs-line-height, 0.875rem)}.body-2xs,.body-2xs-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-2xs-emphasized{font-size:var(--wcss-body-2xs-emphasized-font-size, 0.625rem);font-weight:var(--wcss-body-2xs-emphasized-weight, );line-height:var(--wcss-body-2xs-emphasized-line-height, 0.875rem)}.display-2xl{font-family:var(--wcss-display-2xl-family, "AS Circular"),var(--wcss-display-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-2xl-font-size, clamp(3.5rem, 6vw, 5.375rem));font-weight:var(--wcss-display-2xl-weight, 300);letter-spacing:var(--wcss-display-2xl-letter-spacing, 0);line-height:var(--wcss-display-2xl-line-height, 1.3)}.display-xl{font-family:var(--wcss-display-xl-family, "AS Circular"),var(--wcss-display-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-xl-font-size, clamp(3rem, 5.3333333333vw, 4.5rem));font-weight:var(--wcss-display-xl-weight, 300);letter-spacing:var(--wcss-display-xl-letter-spacing, 0);line-height:var(--wcss-display-xl-line-height, 1.3)}.display-lg{font-family:var(--wcss-display-lg-family, "AS Circular"),var(--wcss-display-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-lg-font-size, clamp(2.75rem, 4.6666666667vw, 4rem));font-weight:var(--wcss-display-lg-weight, 300);letter-spacing:var(--wcss-display-lg-letter-spacing, 0);line-height:var(--wcss-display-lg-line-height, 1.3)}.display-md{font-family:var(--wcss-display-md-family, "AS Circular"),var(--wcss-display-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-md-font-size, clamp(2.5rem, 4vw, 3.5rem));font-weight:var(--wcss-display-md-weight, 300);letter-spacing:var(--wcss-display-md-letter-spacing, 0);line-height:var(--wcss-display-md-line-height, 1.3)}.display-sm{font-family:var(--wcss-display-sm-family, "AS Circular"),var(--wcss-display-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-sm-font-size, clamp(2rem, 3.6666666667vw, 3rem));font-weight:var(--wcss-display-sm-weight, 300);letter-spacing:var(--wcss-display-sm-letter-spacing, 0);line-height:var(--wcss-display-sm-line-height, 1.3)}.display-xs{font-family:var(--wcss-display-xs-family, "AS Circular"),var(--wcss-display-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-xs-font-size, clamp(1.75rem, 3vw, 2.375rem));font-weight:var(--wcss-display-xs-weight, 300);letter-spacing:var(--wcss-display-xs-letter-spacing, 0);line-height:var(--wcss-display-xs-line-height, 1.3)}.heading-xl{font-family:var(--wcss-heading-xl-family, "AS Circular"),var(--wcss-heading-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-xl-font-size, clamp(2rem, 3vw, 2.5rem));font-weight:var(--wcss-heading-xl-weight, 300);letter-spacing:var(--wcss-heading-xl-letter-spacing, 0);line-height:var(--wcss-heading-xl-line-height, 1.3)}.heading-lg{font-family:var(--wcss-heading-lg-family, "AS Circular"),var(--wcss-heading-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-lg-font-size, clamp(1.75rem, 2.6666666667vw, 2.25rem));font-weight:var(--wcss-heading-lg-weight, 300);letter-spacing:var(--wcss-heading-lg-letter-spacing, 0);line-height:var(--wcss-heading-lg-line-height, 1.3)}.heading-md{font-family:var(--wcss-heading-md-family, "AS Circular"),var(--wcss-heading-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-md-font-size, clamp(1.625rem, 2.3333333333vw, 1.75rem));font-weight:var(--wcss-heading-md-weight, 300);letter-spacing:var(--wcss-heading-md-letter-spacing, 0);line-height:var(--wcss-heading-md-line-height, 1.3)}.heading-sm{font-family:var(--wcss-heading-sm-family, "AS Circular"),var(--wcss-heading-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-sm-font-size, clamp(1.375rem, 2vw, 1.5rem));font-weight:var(--wcss-heading-sm-weight, 300);letter-spacing:var(--wcss-heading-sm-letter-spacing, 0);line-height:var(--wcss-heading-sm-line-height, 1.3)}.heading-xs{font-family:var(--wcss-heading-xs-family, "AS Circular"),var(--wcss-heading-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-xs-font-size, clamp(1.25rem, 1.6666666667vw, 1.25rem));font-weight:var(--wcss-heading-xs-weight, 300);letter-spacing:var(--wcss-heading-xs-letter-spacing, 0);line-height:var(--wcss-heading-xs-line-height, 1.3)}.heading-2xs{font-family:var(--wcss-heading-2xs-family, "AS Circular"),var(--wcss-heading-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-2xs-font-size, clamp(1.125rem, 1.5vw, 1.125rem));font-weight:var(--wcss-heading-2xs-weight, 300);letter-spacing:var(--wcss-heading-2xs-letter-spacing, 0);line-height:var(--wcss-heading-2xs-line-height, 1.3)}.accent-2xl{font-family:var(--wcss-accent-2xl-family, "Good OT"),var(--wcss-accent-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-2xl-font-size, clamp(2rem, 3.1666666667vw, 2.375rem));font-weight:var(--wcss-accent-2xl-weight, 450);letter-spacing:var(--wcss-accent-2xl-letter-spacing, 0.05em);line-height:var(--wcss-accent-2xl-line-height, 1)}.accent-2xl,.accent-xl{text-transform:uppercase}.accent-xl{font-family:var(--wcss-accent-xl-family, "Good OT"),var(--wcss-accent-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-xl-font-size, clamp(1.625rem, 2.3333333333vw, 2rem));font-weight:var(--wcss-accent-xl-weight, 450);letter-spacing:var(--wcss-accent-xl-letter-spacing, 0.05em);line-height:var(--wcss-accent-xl-line-height, 1.3)}.accent-lg{font-family:var(--wcss-accent-lg-family, "Good OT"),var(--wcss-accent-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-lg-font-size, clamp(1.5rem, 2.1666666667vw, 1.75rem));font-weight:var(--wcss-accent-lg-weight, 450);letter-spacing:var(--wcss-accent-lg-letter-spacing, 0.05em);line-height:var(--wcss-accent-lg-line-height, 1.3)}.accent-lg,.accent-md{text-transform:uppercase}.accent-md{font-family:var(--wcss-accent-md-family, "Good OT"),var(--wcss-accent-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-md-font-size, clamp(1.375rem, 1.8333333333vw, 1.5rem));font-weight:var(--wcss-accent-md-weight, 500);letter-spacing:var(--wcss-accent-md-letter-spacing, 0.05em);line-height:var(--wcss-accent-md-line-height, 1.3)}.accent-sm{font-family:var(--wcss-accent-sm-family, "Good OT"),var(--wcss-accent-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-sm-font-size, clamp(1.125rem, 1.5vw, 1.25rem));font-weight:var(--wcss-accent-sm-weight, 500);letter-spacing:var(--wcss-accent-sm-letter-spacing, 0.05em);line-height:var(--wcss-accent-sm-line-height, 1.3)}.accent-sm,.accent-xs{text-transform:uppercase}.accent-xs{font-family:var(--wcss-accent-xs-family, "Good OT"),var(--wcss-accent-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-xs-font-size, clamp(1rem, 1.3333333333vw, 1rem));font-weight:var(--wcss-accent-xs-weight, 500);letter-spacing:var(--wcss-accent-xs-letter-spacing, 0.1em);line-height:var(--wcss-accent-xs-line-height, 1.3)}.accent-2xs{font-family:var(--wcss-accent-2xs-family, "Good OT"),var(--wcss-accent-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-2xs-font-size, clamp(0.875rem, 1.1666666667vw, 0.875rem));font-weight:var(--wcss-accent-2xs-weight, 450);letter-spacing:var(--wcss-accent-2xs-letter-spacing, 0.1em);line-height:var(--wcss-accent-2xs-line-height, 1.3);text-transform:uppercase}[auro-dropdown]{--ds-auro-dropdown-trigger-border-color: var(--ds-auro-select-border-color);--ds-auro-dropdown-trigger-background-color: var(--ds-auro-select-background-color);--ds-auro-dropdown-trigger-container-color: var(--ds-auro-select-background-color);--ds-auro-dropdown-trigger-outline-color: var(--ds-auro-select-outline-color)}:host{display:inline-block;text-align:left;vertical-align:top}:host([layout*=emphasized]) [auro-dropdown],:host([layout*=snowflake]) [auro-dropdown]{--ds-auro-select-border-color: transparent}:host([layout*=emphasized]) .mainContent,:host([layout*=snowflake]) .mainContent{text-align:center}.mainContent{position:relative;display:flex;overflow:hidden;flex:1;flex-direction:column;align-items:center;justify-content:center}.valueContainer [slot=displayValue]{display:none}.accents{display:flex;flex-direction:row;align-items:center;justify-content:center}::slotted([slot=typeIcon]){margin-right:var(--ds-size-100, 0.5rem)}.displayValue{display:block}.displayValue:not(.force){display:none}.displayValue:not(.force).hasContent:is(.withValue):not(.hasFocus){display:block}.triggerContent{display:flex;width:100%;align-items:center;justify-content:center}:host([layout*=emphasized]) .triggerContent{padding:0 var(--ds-size-100, 0.5rem) 0 var(--ds-size-300, 1.5rem)}:host([layout*=snowflake]) .triggerContent{padding:0 var(--ds-size-100, 0.5rem) 0 var(--ds-size-200, 1rem)}:host([layout*=snowflake]) label{padding-block:var(--ds-size-25, 0.125rem)}:host([layout*=classic]) .triggerContent{padding:0 var(--ds-size-100, 0.5rem)}:host([layout*=classic]) .mainContent{align-items:start}:host([layout*=classic]) label{overflow:hidden;cursor:text;text-overflow:ellipsis;white-space:nowrap}:host([layout*=classic]) .value{height:auto}label{color:var(--ds-auro-select-label-text-color)}:host(:is([validity]:not([validity=valid]))) [auro-dropdown]{--ds-auro-select-border-color: var(--ds-basic-color-status-error, #e31f26);--ds-auro-select-outline-color: var(--ds-basic-color-status-error, #e31f26);--ds-auro-dropdown-helptext-text-color: var(--ds-basic-color-texticon-default, #2a2a2a)}:host([ondark]:is([validity]:not([validity=valid]))) [auro-dropdown],:host([appearance=inverse]:is([validity]:not([validity=valid]))) [auro-dropdown]{--ds-auro-select-border-color: var(--ds-advanced-color-state-error-inverse, #f9a4a8);--ds-auro-select-outline-color: var(--ds-advanced-color-state-error-inverse, #f9a4a8);--ds-auro-dropdown-helptext-text-color: var(--ds-basic-color-texticon-inverse, #ffffff)}#slotHolder{display:none}:host([fluid]){width:100%}:host([disabled]){pointer-events:none;user-select:none}:host([disabled]:not([ondark])) [auro-dropdown],:host([disabled]:not([appearance=inverse])) [auro-dropdown]{--ds-auro-select-border-color: var(--ds-basic-color-border-subtle, #dddddd)}:host(:not([layout*=classic])[disabled][ondark]) [auro-dropdown],:host(:not([layout*=classic])[disabled][appearance=inverse]) [auro-dropdown]{--ds-auro-select-border-color: transparent}`;
6865
6881
 
@@ -7411,7 +7427,7 @@ class AuroSelect extends AuroElement$1 {
7411
7427
  this.menu.updateActiveOption(this.optionSelected[0]);
7412
7428
  } else {
7413
7429
  // If no activeOption has yet to be set, then make the first enabled option active by default
7414
- const firstActive = this.menu.menuService.menuOptions.find((option) => !option.disabled);
7430
+ const [firstActive] = getEnabledOptions(this.menu);
7415
7431
  this.menu.updateActiveOption(firstActive);
7416
7432
  }
7417
7433
  }
@@ -7635,12 +7651,23 @@ class AuroSelect extends AuroElement$1 {
7635
7651
  this.menu.multiSelect = this.multiSelect;
7636
7652
  }
7637
7653
 
7654
+ // Menu's items are populated by initItems() during its firstUpdated/slotchange.
7655
+ // Since the parent select's firstUpdated runs before the child menu's, call initItems()
7656
+ // here so renderNativeSelect can render the native <option> list on first paint.
7657
+ if (typeof this.menu.initItems === 'function') {
7658
+ this.menu.initItems();
7659
+ }
7638
7660
  this.options = this.menu.options;
7639
7661
  this.updateOptionPositions();
7640
7662
  this.menu.addEventListener("auroMenu-loadingChange", (event) => this.handleMenuLoadingChange(event));
7641
7663
 
7642
- this.menu.addEventListener("auroMenu-deselectPrevented", () => {
7643
- this.hideBib();
7664
+ this.menu.addEventListener("auroMenu-selectValueFailure", () => {
7665
+ this.value = undefined;
7666
+ this.optionSelected = this.multiSelect ? [] : undefined;
7667
+ // The trigger label is rendered imperatively into #value, so a property
7668
+ // change alone won't clear it. Refresh so stale text doesn't linger when
7669
+ // a runtime value change fails to match any option.
7670
+ this.updateDisplayedValue();
7644
7671
  });
7645
7672
 
7646
7673
  this.menu.addEventListener('auroMenu-activatedOption', (evt) => {
@@ -7662,16 +7689,20 @@ class AuroSelect extends AuroElement$1 {
7662
7689
  }
7663
7690
  });
7664
7691
 
7665
- this.menu.addEventListener('auroMenu-selectedOption', (event) => {
7692
+ this.menu.addEventListener('auroMenu-selectedOption', () => {
7666
7693
 
7667
7694
  // Update the displayed value
7668
7695
  this.updateDisplayedValue();
7669
7696
 
7670
- const options = event.detail.options || [];
7697
+ this.value = this.menu.value;
7671
7698
 
7672
- this.value = event.detail.stringValue;
7673
-
7674
- this.optionSelected = this.multiSelect ? options : options[0];
7699
+ // Clone the multiselect array so external mutation of select.optionSelected
7700
+ // can't reach back into menu's internal state through a shared reference.
7701
+ let nextSelected = this.menu.optionSelected;
7702
+ if (this.multiSelect) {
7703
+ nextSelected = Array.isArray(nextSelected) ? [...nextSelected] : [];
7704
+ }
7705
+ this.optionSelected = nextSelected;
7675
7706
 
7676
7707
  if (this.dropdown.isPopoverVisible && !this.multiSelect) {
7677
7708
  this.dropdown.hide();
@@ -7680,7 +7711,7 @@ class AuroSelect extends AuroElement$1 {
7680
7711
 
7681
7712
  // Announce the selection after the dropdown closes so it isn't
7682
7713
  // overridden by VoiceOver's "collapsed" announcement from aria-expanded.
7683
- const selectedValue = event.detail.stringValue;
7714
+ const selectedValue = this.menu.currentLabel;
7684
7715
  const announcementDelay = 300;
7685
7716
  setTimeout(() => {
7686
7717
  announceToScreenReader(this._getAnnouncementRoot(), `${selectedValue}, selected`);
@@ -7876,7 +7907,7 @@ class AuroSelect extends AuroElement$1 {
7876
7907
 
7877
7908
  setMenuValue(value) {
7878
7909
  if (!this.menu) return;
7879
- this.menu.value = value;
7910
+ this.menu.selectByValue(value);
7880
7911
  }
7881
7912
 
7882
7913
  /**
@@ -623,7 +623,7 @@ class AuroFormValidation {
623
623
  } else if (this.runtimeUtils.elementMatch(elem, 'auro-input') && elem.errorMessage === '') {
624
624
  const input = elem.renderRoot.querySelector('input');
625
625
 
626
- if (input.validationMessage.length > 0) {
626
+ if (input && input.validationMessage.length > 0) {
627
627
  elem.errorMessage = input.validationMessage;
628
628
  }
629
629
  } else if (this.runtimeUtils.elementMatch(elem, 'auro-combobox') && elem.errorMessage === '') {
@@ -835,6 +835,21 @@ function navigateArrow(component, direction, options = {}) {
835
835
  }
836
836
  }
837
837
 
838
+ /**
839
+ * Returns the enabled (non-disabled) options for a menu, safely.
840
+ *
841
+ * Auro-menu's `options` getter returns `undefined` when the menu has no items
842
+ * (initItems sets `items` to undefined for empty menus). Callers that reach for
843
+ * `.find()` / `[...spread]` would otherwise crash; this helper normalizes the
844
+ * empty case to `[]` so array methods are always safe.
845
+ *
846
+ * @param {HTMLElement | null | undefined} menu - The auro-menu element.
847
+ * @returns {Array<HTMLElement>} Non-disabled options, empty array when none.
848
+ */
849
+ function getEnabledOptions(menu) {
850
+ return (menu?.options || []).filter((option) => !option.disabled);
851
+ }
852
+
838
853
  /* eslint-disable new-cap */
839
854
 
840
855
  const selectKeyboardStrategy = {
@@ -883,7 +898,8 @@ const selectKeyboardStrategy = {
883
898
  }
884
899
  evt.preventDefault();
885
900
  evt.stopPropagation();
886
- const lastOption = [...component.menu.menuService.menuOptions].reverse().find((option) => !option.disabled);
901
+ // `pop()` is safe here: getEnabledOptions returns a fresh filtered array.
902
+ const lastOption = getEnabledOptions(component.menu).pop();
887
903
  if (lastOption) {
888
904
  component.menu.updateActiveOption(lastOption);
889
905
  }
@@ -905,7 +921,7 @@ const selectKeyboardStrategy = {
905
921
  }
906
922
  evt.preventDefault();
907
923
  evt.stopPropagation();
908
- const firstOption = component.menu.menuService.menuOptions.find((option) => !option.disabled);
924
+ const [firstOption] = getEnabledOptions(component.menu);
909
925
  if (firstOption) {
910
926
  component.menu.updateActiveOption(firstOption);
911
927
  }
@@ -4846,7 +4862,7 @@ let AuroHelpText$1 = class AuroHelpText extends LitElement {
4846
4862
  }
4847
4863
  };
4848
4864
 
4849
- var formkitVersion$1 = '202606151650';
4865
+ var formkitVersion$1 = '202606171946';
4850
4866
 
4851
4867
  class AuroElement extends LitElement {
4852
4868
  static get properties() {
@@ -6859,7 +6875,7 @@ class AuroHelpText extends LitElement {
6859
6875
  }
6860
6876
  }
6861
6877
 
6862
- var formkitVersion = '202606151650';
6878
+ var formkitVersion = '202606171946';
6863
6879
 
6864
6880
  var styleCss = 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}.body-default{font-size:var(--wcss-body-default-font-size, 1rem);font-weight:var(--wcss-body-default-weight, );line-height:var(--wcss-body-default-line-height, 1.5rem)}.body-default,.body-default-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-default-emphasized{font-size:var(--wcss-body-default-emphasized-font-size, 1rem);font-weight:var(--wcss-body-default-emphasized-weight, );line-height:var(--wcss-body-default-emphasized-line-height, 1.5rem)}.body-lg{font-size:var(--wcss-body-lg-font-size, 1.125rem);font-weight:var(--wcss-body-lg-weight, );line-height:var(--wcss-body-lg-line-height, 1.625rem)}.body-lg,.body-lg-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-lg-emphasized{font-size:var(--wcss-body-lg-emphasized-font-size, 1.125rem);font-weight:var(--wcss-body-lg-emphasized-weight, );line-height:var(--wcss-body-lg-emphasized-line-height, 1.625rem)}.body-sm{font-size:var(--wcss-body-sm-font-size, 0.875rem);font-weight:var(--wcss-body-sm-weight, );line-height:var(--wcss-body-sm-line-height, 1.25rem)}.body-sm,.body-sm-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-sm-emphasized{font-size:var(--wcss-body-sm-emphasized-font-size, 0.875rem);font-weight:var(--wcss-body-sm-emphasized-weight, );line-height:var(--wcss-body-sm-emphasized-line-height, 1.25rem)}.body-xs{font-size:var(--wcss-body-xs-font-size, 0.75rem);font-weight:var(--wcss-body-xs-weight, );line-height:var(--wcss-body-xs-line-height, 1rem)}.body-xs,.body-xs-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-xs-emphasized{font-size:var(--wcss-body-xs-emphasized-font-size, 0.75rem);font-weight:var(--wcss-body-xs-emphasized-weight, );line-height:var(--wcss-body-xs-emphasized-line-height, 1rem)}.body-2xs{font-size:var(--wcss-body-2xs-font-size, 0.625rem);font-weight:var(--wcss-body-2xs-weight, );line-height:var(--wcss-body-2xs-line-height, 0.875rem)}.body-2xs,.body-2xs-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-2xs-emphasized{font-size:var(--wcss-body-2xs-emphasized-font-size, 0.625rem);font-weight:var(--wcss-body-2xs-emphasized-weight, );line-height:var(--wcss-body-2xs-emphasized-line-height, 0.875rem)}.display-2xl{font-family:var(--wcss-display-2xl-family, "AS Circular"),var(--wcss-display-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-2xl-font-size, clamp(3.5rem, 6vw, 5.375rem));font-weight:var(--wcss-display-2xl-weight, 300);letter-spacing:var(--wcss-display-2xl-letter-spacing, 0);line-height:var(--wcss-display-2xl-line-height, 1.3)}.display-xl{font-family:var(--wcss-display-xl-family, "AS Circular"),var(--wcss-display-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-xl-font-size, clamp(3rem, 5.3333333333vw, 4.5rem));font-weight:var(--wcss-display-xl-weight, 300);letter-spacing:var(--wcss-display-xl-letter-spacing, 0);line-height:var(--wcss-display-xl-line-height, 1.3)}.display-lg{font-family:var(--wcss-display-lg-family, "AS Circular"),var(--wcss-display-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-lg-font-size, clamp(2.75rem, 4.6666666667vw, 4rem));font-weight:var(--wcss-display-lg-weight, 300);letter-spacing:var(--wcss-display-lg-letter-spacing, 0);line-height:var(--wcss-display-lg-line-height, 1.3)}.display-md{font-family:var(--wcss-display-md-family, "AS Circular"),var(--wcss-display-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-md-font-size, clamp(2.5rem, 4vw, 3.5rem));font-weight:var(--wcss-display-md-weight, 300);letter-spacing:var(--wcss-display-md-letter-spacing, 0);line-height:var(--wcss-display-md-line-height, 1.3)}.display-sm{font-family:var(--wcss-display-sm-family, "AS Circular"),var(--wcss-display-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-sm-font-size, clamp(2rem, 3.6666666667vw, 3rem));font-weight:var(--wcss-display-sm-weight, 300);letter-spacing:var(--wcss-display-sm-letter-spacing, 0);line-height:var(--wcss-display-sm-line-height, 1.3)}.display-xs{font-family:var(--wcss-display-xs-family, "AS Circular"),var(--wcss-display-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-xs-font-size, clamp(1.75rem, 3vw, 2.375rem));font-weight:var(--wcss-display-xs-weight, 300);letter-spacing:var(--wcss-display-xs-letter-spacing, 0);line-height:var(--wcss-display-xs-line-height, 1.3)}.heading-xl{font-family:var(--wcss-heading-xl-family, "AS Circular"),var(--wcss-heading-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-xl-font-size, clamp(2rem, 3vw, 2.5rem));font-weight:var(--wcss-heading-xl-weight, 300);letter-spacing:var(--wcss-heading-xl-letter-spacing, 0);line-height:var(--wcss-heading-xl-line-height, 1.3)}.heading-lg{font-family:var(--wcss-heading-lg-family, "AS Circular"),var(--wcss-heading-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-lg-font-size, clamp(1.75rem, 2.6666666667vw, 2.25rem));font-weight:var(--wcss-heading-lg-weight, 300);letter-spacing:var(--wcss-heading-lg-letter-spacing, 0);line-height:var(--wcss-heading-lg-line-height, 1.3)}.heading-md{font-family:var(--wcss-heading-md-family, "AS Circular"),var(--wcss-heading-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-md-font-size, clamp(1.625rem, 2.3333333333vw, 1.75rem));font-weight:var(--wcss-heading-md-weight, 300);letter-spacing:var(--wcss-heading-md-letter-spacing, 0);line-height:var(--wcss-heading-md-line-height, 1.3)}.heading-sm{font-family:var(--wcss-heading-sm-family, "AS Circular"),var(--wcss-heading-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-sm-font-size, clamp(1.375rem, 2vw, 1.5rem));font-weight:var(--wcss-heading-sm-weight, 300);letter-spacing:var(--wcss-heading-sm-letter-spacing, 0);line-height:var(--wcss-heading-sm-line-height, 1.3)}.heading-xs{font-family:var(--wcss-heading-xs-family, "AS Circular"),var(--wcss-heading-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-xs-font-size, clamp(1.25rem, 1.6666666667vw, 1.25rem));font-weight:var(--wcss-heading-xs-weight, 300);letter-spacing:var(--wcss-heading-xs-letter-spacing, 0);line-height:var(--wcss-heading-xs-line-height, 1.3)}.heading-2xs{font-family:var(--wcss-heading-2xs-family, "AS Circular"),var(--wcss-heading-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-2xs-font-size, clamp(1.125rem, 1.5vw, 1.125rem));font-weight:var(--wcss-heading-2xs-weight, 300);letter-spacing:var(--wcss-heading-2xs-letter-spacing, 0);line-height:var(--wcss-heading-2xs-line-height, 1.3)}.accent-2xl{font-family:var(--wcss-accent-2xl-family, "Good OT"),var(--wcss-accent-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-2xl-font-size, clamp(2rem, 3.1666666667vw, 2.375rem));font-weight:var(--wcss-accent-2xl-weight, 450);letter-spacing:var(--wcss-accent-2xl-letter-spacing, 0.05em);line-height:var(--wcss-accent-2xl-line-height, 1)}.accent-2xl,.accent-xl{text-transform:uppercase}.accent-xl{font-family:var(--wcss-accent-xl-family, "Good OT"),var(--wcss-accent-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-xl-font-size, clamp(1.625rem, 2.3333333333vw, 2rem));font-weight:var(--wcss-accent-xl-weight, 450);letter-spacing:var(--wcss-accent-xl-letter-spacing, 0.05em);line-height:var(--wcss-accent-xl-line-height, 1.3)}.accent-lg{font-family:var(--wcss-accent-lg-family, "Good OT"),var(--wcss-accent-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-lg-font-size, clamp(1.5rem, 2.1666666667vw, 1.75rem));font-weight:var(--wcss-accent-lg-weight, 450);letter-spacing:var(--wcss-accent-lg-letter-spacing, 0.05em);line-height:var(--wcss-accent-lg-line-height, 1.3)}.accent-lg,.accent-md{text-transform:uppercase}.accent-md{font-family:var(--wcss-accent-md-family, "Good OT"),var(--wcss-accent-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-md-font-size, clamp(1.375rem, 1.8333333333vw, 1.5rem));font-weight:var(--wcss-accent-md-weight, 500);letter-spacing:var(--wcss-accent-md-letter-spacing, 0.05em);line-height:var(--wcss-accent-md-line-height, 1.3)}.accent-sm{font-family:var(--wcss-accent-sm-family, "Good OT"),var(--wcss-accent-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-sm-font-size, clamp(1.125rem, 1.5vw, 1.25rem));font-weight:var(--wcss-accent-sm-weight, 500);letter-spacing:var(--wcss-accent-sm-letter-spacing, 0.05em);line-height:var(--wcss-accent-sm-line-height, 1.3)}.accent-sm,.accent-xs{text-transform:uppercase}.accent-xs{font-family:var(--wcss-accent-xs-family, "Good OT"),var(--wcss-accent-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-xs-font-size, clamp(1rem, 1.3333333333vw, 1rem));font-weight:var(--wcss-accent-xs-weight, 500);letter-spacing:var(--wcss-accent-xs-letter-spacing, 0.1em);line-height:var(--wcss-accent-xs-line-height, 1.3)}.accent-2xs{font-family:var(--wcss-accent-2xs-family, "Good OT"),var(--wcss-accent-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-2xs-font-size, clamp(0.875rem, 1.1666666667vw, 0.875rem));font-weight:var(--wcss-accent-2xs-weight, 450);letter-spacing:var(--wcss-accent-2xs-letter-spacing, 0.1em);line-height:var(--wcss-accent-2xs-line-height, 1.3);text-transform:uppercase}[auro-dropdown]{--ds-auro-dropdown-trigger-border-color: var(--ds-auro-select-border-color);--ds-auro-dropdown-trigger-background-color: var(--ds-auro-select-background-color);--ds-auro-dropdown-trigger-container-color: var(--ds-auro-select-background-color);--ds-auro-dropdown-trigger-outline-color: var(--ds-auro-select-outline-color)}:host{display:inline-block;text-align:left;vertical-align:top}:host([layout*=emphasized]) [auro-dropdown],:host([layout*=snowflake]) [auro-dropdown]{--ds-auro-select-border-color: transparent}:host([layout*=emphasized]) .mainContent,:host([layout*=snowflake]) .mainContent{text-align:center}.mainContent{position:relative;display:flex;overflow:hidden;flex:1;flex-direction:column;align-items:center;justify-content:center}.valueContainer [slot=displayValue]{display:none}.accents{display:flex;flex-direction:row;align-items:center;justify-content:center}::slotted([slot=typeIcon]){margin-right:var(--ds-size-100, 0.5rem)}.displayValue{display:block}.displayValue:not(.force){display:none}.displayValue:not(.force).hasContent:is(.withValue):not(.hasFocus){display:block}.triggerContent{display:flex;width:100%;align-items:center;justify-content:center}:host([layout*=emphasized]) .triggerContent{padding:0 var(--ds-size-100, 0.5rem) 0 var(--ds-size-300, 1.5rem)}:host([layout*=snowflake]) .triggerContent{padding:0 var(--ds-size-100, 0.5rem) 0 var(--ds-size-200, 1rem)}:host([layout*=snowflake]) label{padding-block:var(--ds-size-25, 0.125rem)}:host([layout*=classic]) .triggerContent{padding:0 var(--ds-size-100, 0.5rem)}:host([layout*=classic]) .mainContent{align-items:start}:host([layout*=classic]) label{overflow:hidden;cursor:text;text-overflow:ellipsis;white-space:nowrap}:host([layout*=classic]) .value{height:auto}label{color:var(--ds-auro-select-label-text-color)}:host(:is([validity]:not([validity=valid]))) [auro-dropdown]{--ds-auro-select-border-color: var(--ds-basic-color-status-error, #e31f26);--ds-auro-select-outline-color: var(--ds-basic-color-status-error, #e31f26);--ds-auro-dropdown-helptext-text-color: var(--ds-basic-color-texticon-default, #2a2a2a)}:host([ondark]:is([validity]:not([validity=valid]))) [auro-dropdown],:host([appearance=inverse]:is([validity]:not([validity=valid]))) [auro-dropdown]{--ds-auro-select-border-color: var(--ds-advanced-color-state-error-inverse, #f9a4a8);--ds-auro-select-outline-color: var(--ds-advanced-color-state-error-inverse, #f9a4a8);--ds-auro-dropdown-helptext-text-color: var(--ds-basic-color-texticon-inverse, #ffffff)}#slotHolder{display:none}:host([fluid]){width:100%}:host([disabled]){pointer-events:none;user-select:none}:host([disabled]:not([ondark])) [auro-dropdown],:host([disabled]:not([appearance=inverse])) [auro-dropdown]{--ds-auro-select-border-color: var(--ds-basic-color-border-subtle, #dddddd)}:host(:not([layout*=classic])[disabled][ondark]) [auro-dropdown],:host(:not([layout*=classic])[disabled][appearance=inverse]) [auro-dropdown]{--ds-auro-select-border-color: transparent}`;
6865
6881
 
@@ -7411,7 +7427,7 @@ class AuroSelect extends AuroElement$1 {
7411
7427
  this.menu.updateActiveOption(this.optionSelected[0]);
7412
7428
  } else {
7413
7429
  // If no activeOption has yet to be set, then make the first enabled option active by default
7414
- const firstActive = this.menu.menuService.menuOptions.find((option) => !option.disabled);
7430
+ const [firstActive] = getEnabledOptions(this.menu);
7415
7431
  this.menu.updateActiveOption(firstActive);
7416
7432
  }
7417
7433
  }
@@ -7635,12 +7651,23 @@ class AuroSelect extends AuroElement$1 {
7635
7651
  this.menu.multiSelect = this.multiSelect;
7636
7652
  }
7637
7653
 
7654
+ // Menu's items are populated by initItems() during its firstUpdated/slotchange.
7655
+ // Since the parent select's firstUpdated runs before the child menu's, call initItems()
7656
+ // here so renderNativeSelect can render the native <option> list on first paint.
7657
+ if (typeof this.menu.initItems === 'function') {
7658
+ this.menu.initItems();
7659
+ }
7638
7660
  this.options = this.menu.options;
7639
7661
  this.updateOptionPositions();
7640
7662
  this.menu.addEventListener("auroMenu-loadingChange", (event) => this.handleMenuLoadingChange(event));
7641
7663
 
7642
- this.menu.addEventListener("auroMenu-deselectPrevented", () => {
7643
- this.hideBib();
7664
+ this.menu.addEventListener("auroMenu-selectValueFailure", () => {
7665
+ this.value = undefined;
7666
+ this.optionSelected = this.multiSelect ? [] : undefined;
7667
+ // The trigger label is rendered imperatively into #value, so a property
7668
+ // change alone won't clear it. Refresh so stale text doesn't linger when
7669
+ // a runtime value change fails to match any option.
7670
+ this.updateDisplayedValue();
7644
7671
  });
7645
7672
 
7646
7673
  this.menu.addEventListener('auroMenu-activatedOption', (evt) => {
@@ -7662,16 +7689,20 @@ class AuroSelect extends AuroElement$1 {
7662
7689
  }
7663
7690
  });
7664
7691
 
7665
- this.menu.addEventListener('auroMenu-selectedOption', (event) => {
7692
+ this.menu.addEventListener('auroMenu-selectedOption', () => {
7666
7693
 
7667
7694
  // Update the displayed value
7668
7695
  this.updateDisplayedValue();
7669
7696
 
7670
- const options = event.detail.options || [];
7697
+ this.value = this.menu.value;
7671
7698
 
7672
- this.value = event.detail.stringValue;
7673
-
7674
- this.optionSelected = this.multiSelect ? options : options[0];
7699
+ // Clone the multiselect array so external mutation of select.optionSelected
7700
+ // can't reach back into menu's internal state through a shared reference.
7701
+ let nextSelected = this.menu.optionSelected;
7702
+ if (this.multiSelect) {
7703
+ nextSelected = Array.isArray(nextSelected) ? [...nextSelected] : [];
7704
+ }
7705
+ this.optionSelected = nextSelected;
7675
7706
 
7676
7707
  if (this.dropdown.isPopoverVisible && !this.multiSelect) {
7677
7708
  this.dropdown.hide();
@@ -7680,7 +7711,7 @@ class AuroSelect extends AuroElement$1 {
7680
7711
 
7681
7712
  // Announce the selection after the dropdown closes so it isn't
7682
7713
  // overridden by VoiceOver's "collapsed" announcement from aria-expanded.
7683
- const selectedValue = event.detail.stringValue;
7714
+ const selectedValue = this.menu.currentLabel;
7684
7715
  const announcementDelay = 300;
7685
7716
  setTimeout(() => {
7686
7717
  announceToScreenReader(this._getAnnouncementRoot(), `${selectedValue}, selected`);
@@ -7876,7 +7907,7 @@ class AuroSelect extends AuroElement$1 {
7876
7907
 
7877
7908
  setMenuValue(value) {
7878
7909
  if (!this.menu) return;
7879
- this.menu.value = value;
7910
+ this.menu.selectByValue(value);
7880
7911
  }
7881
7912
 
7882
7913
  /**
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Returns the enabled (non-disabled) options for a menu, safely.
3
+ *
4
+ * Auro-menu's `options` getter returns `undefined` when the menu has no items
5
+ * (initItems sets `items` to undefined for empty menus). Callers that reach for
6
+ * `.find()` / `[...spread]` would otherwise crash; this helper normalizes the
7
+ * empty case to `[]` so array methods are always safe.
8
+ *
9
+ * @param {HTMLElement | null | undefined} menu - The auro-menu element.
10
+ * @returns {Array<HTMLElement>} Non-disabled options, empty array when none.
11
+ */
12
+ export function getEnabledOptions(menu: HTMLElement | null | undefined): Array<HTMLElement>;