@aurodesignsystem-dev/auro-formkit 0.0.0-pr1541.4 → 0.0.0-pr1542.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 (71) hide show
  1. package/components/checkbox/demo/customize.min.js +1 -1
  2. package/components/checkbox/demo/getting-started.min.js +1 -1
  3. package/components/checkbox/demo/index.min.js +1 -1
  4. package/components/checkbox/dist/index.js +1 -1
  5. package/components/checkbox/dist/registered.js +1 -1
  6. package/components/combobox/demo/api.md +2 -2
  7. package/components/combobox/demo/customize.md +1 -1
  8. package/components/combobox/demo/customize.min.js +40 -90
  9. package/components/combobox/demo/getting-started.min.js +40 -90
  10. package/components/combobox/demo/index.md +0 -1
  11. package/components/combobox/demo/index.min.js +40 -90
  12. package/components/combobox/demo/keyboard-behavior.md +1 -4
  13. package/components/combobox/dist/auro-combobox.d.ts +3 -1
  14. package/components/combobox/dist/index.js +23 -4
  15. package/components/combobox/dist/registered.js +23 -4
  16. package/components/counter/demo/customize.min.js +2 -2
  17. package/components/counter/demo/index.min.js +2 -2
  18. package/components/counter/dist/index.js +2 -2
  19. package/components/counter/dist/registered.js +2 -2
  20. package/components/datepicker/demo/customize.min.js +3 -3
  21. package/components/datepicker/demo/index.min.js +3 -3
  22. package/components/datepicker/dist/index.js +3 -3
  23. package/components/datepicker/dist/registered.js +3 -3
  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 +51 -105
  30. package/components/form/demo/getting-started.min.js +51 -105
  31. package/components/form/demo/index.min.js +51 -105
  32. package/components/form/demo/registerDemoDeps.min.js +51 -105
  33. package/components/input/demo/customize.min.js +1 -1
  34. package/components/input/demo/getting-started.min.js +1 -1
  35. package/components/input/demo/index.min.js +1 -1
  36. package/components/input/dist/index.js +1 -1
  37. package/components/input/dist/registered.js +1 -1
  38. package/components/menu/demo/accessibility.md +4 -4
  39. package/components/menu/demo/api.md +19 -26
  40. package/components/menu/demo/css-only.md +19 -26
  41. package/components/menu/demo/customize.md +47 -307
  42. package/components/menu/demo/design.md +1 -1
  43. package/components/menu/demo/getting-started.md +7 -144
  44. package/components/menu/demo/index.min.js +18 -213
  45. package/components/menu/demo/keyboard-behavior.md +4 -83
  46. package/components/menu/demo/voiceover.md +3 -3
  47. package/components/menu/demo/why-menu.md +9 -8
  48. package/components/menu/dist/auro-menu-utils.d.ts +0 -19
  49. package/components/menu/dist/auro-menu.d.ts +7 -3
  50. package/components/menu/dist/auro-menuoption.d.ts +0 -12
  51. package/components/menu/dist/index.js +17 -86
  52. package/components/menu/dist/registered.js +17 -86
  53. package/components/radio/demo/customize.min.js +1 -1
  54. package/components/radio/demo/getting-started.min.js +1 -1
  55. package/components/radio/demo/index.min.js +1 -1
  56. package/components/radio/dist/index.js +1 -1
  57. package/components/radio/dist/registered.js +1 -1
  58. package/components/select/demo/api.md +2 -2
  59. package/components/select/demo/customize.md +2 -5
  60. package/components/select/demo/customize.min.js +20 -93
  61. package/components/select/demo/design.md +10 -10
  62. package/components/select/demo/getting-started.md +1 -1
  63. package/components/select/demo/getting-started.min.js +20 -93
  64. package/components/select/demo/index.md +2 -2
  65. package/components/select/demo/index.min.js +20 -93
  66. package/components/select/demo/keyboard-behavior.md +18 -49
  67. package/components/select/dist/auro-select.d.ts +2 -6
  68. package/components/select/dist/index.js +3 -7
  69. package/components/select/dist/registered.js +3 -7
  70. package/custom-elements.json +1514 -1599
  71. package/package.json +1 -1
@@ -40,7 +40,7 @@ The `auro-select` element is a wrapper for auro-dropdown and auro-menu to create
40
40
  | `size` | `size` | `'lg' \| 'xl'` | | Determines the size of the dropdown bib. Only the `emphasized` layout supports size=`xl`, while all other layouts support size=`lg`. |
41
41
  | `typeaheadTimeoutMs` | `typeaheadTimeoutMs` | `number` | "500" | Milliseconds of keyboard inactivity before the type-ahead buffer resets.<br />Increase for users who type slowly. |
42
42
  | `validity` | `validity` | `string` | | Specifies the `validityState` this element is in. |
43
- | `value` | `value` | `string` | | Value selected for the component. When set programmatically or as a preset attribute, the value must match a selectable option. If it matches an option marked `disabled` or `static`, the selection is rejected: `value` and `optionSelected` are cleared to `undefined`. `hidden` options remain selectable by value. |
43
+ | `value` | `value` | `string` | | Value selected for the component. |
44
44
 
45
45
  ## Methods
46
46
 
@@ -48,7 +48,7 @@ The `auro-select` element is a wrapper for auro-dropdown and auro-menu to create
48
48
  |----------------------|----------------------------------------|--------------------------------------------------|
49
49
  | `hideBib` | `(): void` | Hides the dropdown bib if its open. |
50
50
  | `reset` | `(): void` | Resets component to initial state. |
51
- | `setMenuValue` | `(value: string): void` | Sets the selected value by matching it against the menu options. Options marked `disabled` or `static` are not selectable: if the value matches one, the selection is rejected and `value`/`optionSelected` are cleared to `undefined`. `hidden` options remain selectable.<br /><br />**value**: The value to match against the menu options. |
51
+ | `setMenuValue` | `(value: any): void` | |
52
52
  | `showBib` | `(): void` | Shows the dropdown bib if there are options to show. |
53
53
  | `updateActiveOption` | `(index: number): void` | Updates the active option in the menu.<br /><br />**index**: Index of the option to make active. |
54
54
  | `validate` | `(force?: boolean \| undefined): void` | Validates value.<br /><br />**force**: Whether to force validation. |
@@ -796,7 +796,7 @@
796
796
  <!-- AURO-GENERATED-CONTENT:START (FILE:src=./../docs/partials/customize/typeahead.md) -->
797
797
  <!-- The below content is automatically added from ./../docs/partials/customize/typeahead.md -->
798
798
  <p>Type-ahead lets a guest jump to an option by typing. As keys are pressed, the active option advances to the first enabled option whose <strong>displayed text</strong> starts with the buffered keystrokes — following the <auro-hyperlink href="https://www.w3.org/WAI/ARIA/apg/patterns/listbox/">WAI-ARIA Listbox pattern</auro-hyperlink>, and mirroring native HTML <code>&lt;select&gt;</code> behavior. Matching uses the rendered text rather than the <code>value</code> attribute.</p>
799
- <p>The <code>typeaheadTimeoutMs</code> attribute (default <code>500</code>) controls how long the buffer persists between keystrokes. Repeating the same character cycles through every enabled option starting with it; <code>disabled</code>, <code>hidden</code>, and <code>static</code> options are skipped.</p>
799
+ <p>The <code>typeaheadTimeoutMs</code> attribute (default <code>500</code>) controls how long the buffer persists between keystrokes. Repeating the same character cycles through every enabled option starting with it; disabled options are skipped.</p>
800
800
  <div class="note">
801
801
  <strong>Note:</strong> The <kbd>Space</kbd> key is context-sensitive. When the type-ahead buffer is empty it toggles the bib open or closed, matching the rest of <code>&lt;auro-select&gt;</code>. When the buffer is active it extends the buffer instead, so multi-word options such as "San Francisco" can be matched by typing <kbd>s</kbd>, <kbd>a</kbd>, <kbd>n</kbd>, <kbd>Space</kbd>, <kbd>f</kbd>.
802
802
  </div>
@@ -864,7 +864,7 @@
864
864
  </auro-accordion>
865
865
  <auro-header level="3" id="disableComponent">Disable Component</auro-header>
866
866
  <p>The entire component may be disabled. When disabled, the component will render to reflect the state, may not receive focus nor react to any key or pointer events.</p>
867
- <p>When the component is disabled and part of a form, the component's value is not included in the form submission (matching native HTML behavior for disabled form controls).</p>
867
+ <p>When the component is disabled and part of a form, the components value is still included in the form submission.</p>
868
868
  <p class="note">
869
869
  <strong>Note:</strong> If the component is marked as both <strong>invalid</strong> and <code>disabled</code>, the <strong>invalid</strong> state UI/UX and functional behavior are ignored. The <code>disabled</code> UI/UX and functional behavior works normally.
870
870
  </p>
@@ -907,9 +907,6 @@
907
907
  <p>The component may be rendered with one or more <code>disabled</code> options. When navigating the list of options with the keyboard or assistive technology to mark the next or previous option as active, disabled options will be skipped, jumping to the next enabled option.</p>
908
908
  <p>While using the pointer to mark options as active, hovering over disabled options will be ignored and the previous active option will remain active.</p>
909
909
  <p class="note">
910
- <strong>Note:</strong> Setting the component <code>value</code> to one that matches a <code>disabled</code> or <code>static</code> option — whether via the <code>value</code> attribute or programmatic assignment (e.g. <code>el.value = 'x'</code>) — is rejected: <code>value</code> and <code>optionSelected</code> are cleared to <code>undefined</code>. A value matching a <code>hidden</code> option is still applied.
911
- </p>
912
- <p class="note">
913
910
  <strong>Note:</strong> If the currently <code>selected</code> option is marked as <code>disabled</code>, the component value is reset to <code>undefined</code> and the component validation workflow is performed (e.g., if the component instance is <code>required</code> it will set <code>validity="valueMissing".</code>).
914
911
  </p>
915
912
  <p class="note">
@@ -4995,7 +4995,7 @@ let AuroHelpText$1 = class AuroHelpText extends i$2 {
4995
4995
  }
4996
4996
  };
4997
4997
 
4998
- var formkitVersion$1 = '202607082038';
4998
+ var formkitVersion$1 = '202607082142';
4999
4999
 
5000
5000
  class AuroElement extends i$2 {
5001
5001
  static get properties() {
@@ -7034,7 +7034,7 @@ class AuroHelpText extends i$2 {
7034
7034
  }
7035
7035
  }
7036
7036
 
7037
- var formkitVersion = '202607082038';
7037
+ var formkitVersion = '202607082142';
7038
7038
 
7039
7039
  var styleCss$2 = i$5`.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}`;
7040
7040
 
@@ -7476,7 +7476,7 @@ class AuroSelect extends AuroElement$1 {
7476
7476
  },
7477
7477
 
7478
7478
  /**
7479
- * Value selected for the component. When set programmatically or as a preset attribute, the value must match a selectable option. If it matches an option marked `disabled` or `static`, the selection is rejected: `value` and `optionSelected` are cleared to `undefined`. `hidden` options remain selectable by value.
7479
+ * Value selected for the component.
7480
7480
  */
7481
7481
  value: {
7482
7482
  type: String,
@@ -8296,10 +8296,6 @@ class AuroSelect extends AuroElement$1 {
8296
8296
  this._observeLabelChanges();
8297
8297
  }
8298
8298
 
8299
- /**
8300
- * Sets the selected value by matching it against the menu options. Options marked `disabled` or `static` are not selectable: if the value matches one, the selection is rejected and `value`/`optionSelected` are cleared to `undefined`. `hidden` options remain selectable.
8301
- * @param {string} value - The value to match against the menu options.
8302
- */
8303
8299
  setMenuValue(value) {
8304
8300
  if (!this.menu) return;
8305
8301
  this.menu.selectByValue(value);
@@ -8827,18 +8823,6 @@ var tokensCss = i$5`:host{--ds-auro-menu-divider-color: var(--ds-basic-color-bor
8827
8823
  // See LICENSE in the project root for license information.
8828
8824
 
8829
8825
 
8830
- /**
8831
- * Serializes a multi-select value array back into the String `value` property.
8832
- * An empty (or missing) array collapses to `undefined` so an emptied selection
8833
- * clears `value` rather than reflecting a `"[]"` attribute.
8834
- * @private
8835
- * @param {Array<string>|undefined} values - The selected values.
8836
- * @returns {string|undefined} JSON string of the values, or undefined when empty.
8837
- */
8838
- function serializeMultiSelectValue(values) {
8839
- return values && values.length > 0 ? JSON.stringify(values) : undefined;
8840
- }
8841
-
8842
8826
  /**
8843
8827
  * Validates if an option can be interacted with.
8844
8828
  * @private
@@ -8851,20 +8835,6 @@ function isOptionInteractive(option) {
8851
8835
  !option.hasAttribute('static');
8852
8836
  }
8853
8837
 
8854
- /**
8855
- * Validates if an option may be selected by matching a programmatic value.
8856
- * Unlike `isOptionInteractive`, `hidden` is allowed: the combobox toggles
8857
- * `hidden` as its type-ahead filter, so a filtered-out option is still a
8858
- * valid programmatic selection. Only disabled and static options — which are
8859
- * never selectable — are rejected.
8860
- * @param {HTMLElement} option - The option to check.
8861
- * @returns {boolean} True if option can be selected by value.
8862
- */
8863
- function isSelectableByValue(option) {
8864
- return !option.hasAttribute('disabled') &&
8865
- !option.hasAttribute('static');
8866
- }
8867
-
8868
8838
  /**
8869
8839
  * Helper method to dispatch custom events.
8870
8840
  * @param {HTMLElement} element - Element to dispatch event from.
@@ -9034,7 +9004,6 @@ class AuroMenu extends AuroElement$1 {
9034
9004
 
9035
9005
  /**
9036
9006
  * Specifies the current active menuOption.
9037
- * @readonly
9038
9007
  */
9039
9008
  optionActive: {
9040
9009
  type: Object,
@@ -9042,18 +9011,15 @@ class AuroMenu extends AuroElement$1 {
9042
9011
  },
9043
9012
 
9044
9013
  /**
9045
- * The currently selected menu option(s). In single-select mode this is a single `HTMLElement` (or `undefined` when nothing is selected). In multi-select mode this is an array of `HTMLElement`s.
9046
- * @readonly
9014
+ * An array of currently selected menu options, type `HTMLElement` by default. In multi-select mode, `optionSelected` is an array of HTML elements.
9047
9015
  */
9048
9016
  optionSelected: {
9049
9017
  // Allow HTMLElement, HTMLElement[] arrays and undefined
9050
- type: Object,
9051
- attribute: false
9018
+ type: Object
9052
9019
  },
9053
9020
 
9054
9021
  /**
9055
9022
  * The value of the selected option. In multi-select mode, this is a JSON stringified array of selected option values.
9056
- * Options marked `disabled` or `static` are not selectable by value; `hidden` options remain selectable. In single-select mode, if the value matches a non-selectable option the selection is cleared (`optionSelected` becomes `undefined`) and `auroMenu-selectValueFailure` is dispatched. In multi-select mode, non-selectable entries are dropped from the value and the remaining selectable entries are selected; `auroMenu-selectValueFailure` is dispatched only when none of the entries match a selectable option.
9057
9023
  */
9058
9024
  value: {
9059
9025
  type: String,
@@ -9177,7 +9143,7 @@ class AuroMenu extends AuroElement$1 {
9177
9143
  }
9178
9144
 
9179
9145
  /**
9180
- * Selects options by value. Options marked `disabled` or `static` are not selectable; `hidden` options remain selectable. In single-select mode, if the value matches a non-selectable option the selection is cleared and `auroMenu-selectValueFailure` is dispatched. In multi-select mode, non-selectable entries are dropped and the remaining selectable entries are selected; `auroMenu-selectValueFailure` is dispatched only when none of the entries match a selectable option. Passing `undefined`, `null`, an empty string, or an empty array clears the selection without dispatching a failure.
9146
+ * Selects options by value.
9181
9147
  * @param {string|string[]|undefined|null} value - The value(s) to select.
9182
9148
  * @public
9183
9149
  */
@@ -9262,11 +9228,6 @@ class AuroMenu extends AuroElement$1 {
9262
9228
  this.initItems();
9263
9229
  }
9264
9230
 
9265
- // Set when reconciliation reassigns `value` below. That reassignment schedules a
9266
- // second updated() cycle, so the `event`-attribute dispatch is deferred to that
9267
- // cycle to avoid firing option custom events twice on the same selection.
9268
- let valueReconciled = false;
9269
-
9270
9231
  // Handle null/undefined/empty case — empty/whitespace strings clear selection
9271
9232
  // consistently with selectByValue(''), and avoid downstream `.includes('')` matches.
9272
9233
  if (this.value === undefined || this.value === null || (typeof this.value === 'string' && this.value.trim() === '')) {
@@ -9279,31 +9240,11 @@ class AuroMenu extends AuroElement$1 {
9279
9240
  // Defensive default: `formattedValue` can be undefined for unexpected value types,
9280
9241
  // and calling `.includes` on undefined would throw during reconciliation.
9281
9242
  const valueArray = this.formattedValue || [];
9282
- const matchingOptions = this.items ? this.items.filter((item) => isSelectableByValue(item) && valueArray.includes(item.value)) : [];
9243
+ const matchingOptions = this.items ? this.items.filter((item) => valueArray.includes(item.value)) : [];
9283
9244
  newSelected = matchingOptions.length > 0 ? matchingOptions : undefined;
9284
-
9285
- // Reconcile `value` with the selectable set. Drop only entries whose option is
9286
- // loaded but non-selectable (disabled/static) — leaving them would desync `value`
9287
- // from `optionSelected`, and the toggle handlers rebuild `value` from `formattedValue`,
9288
- // so the rejected entry would resurface on the next select/deselect. Entries with no
9289
- // matching item yet are preserved so async preselection still works once options render.
9290
- const rejectedValues = this.items
9291
- ? this.items.filter((item) => !isSelectableByValue(item) && valueArray.includes(item.value)).map((item) => item.value)
9292
- : [];
9293
- if (rejectedValues.length > 0) {
9294
- const reconciled = valueArray.filter((val) => !rejectedValues.includes(val));
9295
- this.value = serializeMultiSelectValue(reconciled);
9296
- valueReconciled = true;
9297
- }
9298
9245
  } else {
9299
- // In single-select mode, this.value should be a string. Reject
9300
- // disabled/static options so a programmatic value pointing at a
9301
- // non-selectable option falls through to the no-match path below
9302
- // (dispatching auroMenu-selectValueFailure) instead of pinning it.
9303
- // `hidden` is intentionally NOT excluded: the combobox toggles
9304
- // `hidden` as its type-ahead filter, so a filtered-out option is
9305
- // still a valid programmatic selection.
9306
- const matchingOption = this.items ? this.items.find((item) => isSelectableByValue(item) && item.value === this.value) : undefined;
9246
+ // In single-select mode, this.value should be a string
9247
+ const matchingOption = this.items ? this.items.find((item) => item.value === this.value) : undefined;
9307
9248
 
9308
9249
  if (matchingOption) {
9309
9250
  newSelected = matchingOption;
@@ -9345,9 +9286,8 @@ class AuroMenu extends AuroElement$1 {
9345
9286
  ]
9346
9287
  ]));
9347
9288
 
9348
- // Notify of changes. Skip when reconciliation just reassigned `value`: the
9349
- // follow-on update cycle re-runs this branch and fires the events exactly once.
9350
- if (this.optionSelected !== undefined && !valueReconciled) {
9289
+ // Notify of changes
9290
+ if (this.optionSelected !== undefined) {
9351
9291
  const selected = Array.isArray(this.optionSelected) ? this.optionSelected : [this.optionSelected];
9352
9292
  selected.forEach((opt) => {
9353
9293
  if (opt.hasAttribute('event')) {
@@ -9560,7 +9500,7 @@ class AuroMenu extends AuroElement$1 {
9560
9500
  const currentSelected = this.optionSelected || [];
9561
9501
 
9562
9502
  if (!currentValue.includes(option.value)) {
9563
- this.value = serializeMultiSelectValue([
9503
+ this.value = JSON.stringify([
9564
9504
  ...currentValue,
9565
9505
  option.value
9566
9506
  ]);
@@ -9586,9 +9526,15 @@ class AuroMenu extends AuroElement$1 {
9586
9526
  */
9587
9527
  handleDeselectState(option) {
9588
9528
  if (this.multiSelect) {
9589
- // Remove this option from array; an empty result collapses `value` to undefined.
9529
+ // Remove this option from array
9590
9530
  const newFormattedValue = (this.formattedValue || []).filter((val) => val !== option.value);
9591
- this.value = serializeMultiSelectValue(newFormattedValue);
9531
+
9532
+ // If array is empty after removal, set back to undefined
9533
+ if (newFormattedValue && newFormattedValue.length === 0) {
9534
+ this.value = undefined;
9535
+ } else {
9536
+ this.value = JSON.stringify(newFormattedValue);
9537
+ }
9592
9538
 
9593
9539
  this.optionSelected = this.optionSelected.filter((val) => val !== option);
9594
9540
  if (this.optionSelected.length === 0) {
@@ -9635,11 +9581,6 @@ class AuroMenu extends AuroElement$1 {
9635
9581
  this.optionSelected = undefined;
9636
9582
  this._index = -1;
9637
9583
 
9638
- // Clear active option state so a follow-up open/navigation starts fresh
9639
- // rather than reusing a stale reference from before the reset.
9640
- this.items?.forEach((item) => item.classList.remove('active'));
9641
- this.optionActive = undefined;
9642
-
9643
9584
  // Reset UI state
9644
9585
  this.updateItemsState(new Map([
9645
9586
  [
@@ -10049,7 +9990,6 @@ let menuOptionIdCounter = 0;
10049
9990
  * The `auro-menuoption` element provides users a way to define a menu option.
10050
9991
  * @customElement auro-menuoption
10051
9992
  *
10052
- * @attr {Boolean} static - When present, marks the option as non-interactive — it renders but is skipped during keyboard navigation and cannot be selected. Useful for section headers, informational rows inside a menu, or attaching event listeners.
10053
9993
  * @slot default - The default slot for the menu option text.
10054
9994
  *
10055
9995
  * @event auroMenuOption-mouseover - Notifies that this option has been hovered over.
@@ -10079,7 +10019,6 @@ class AuroMenuOption extends AuroElement$1 {
10079
10019
  this.noCheckmark = false;
10080
10020
  this.disabled = false;
10081
10021
  this.noMatch = false;
10082
- this.persistent = false;
10083
10022
 
10084
10023
  /**
10085
10024
  * @private
@@ -10101,12 +10040,6 @@ class AuroMenuOption extends AuroElement$1 {
10101
10040
  type: Boolean,
10102
10041
  reflect: true
10103
10042
  },
10104
-
10105
- /**
10106
- * **Deprecated.** Use the `value` attribute on `auro-menu` to set the selected option when the menu renders (or call `menu.selectByValue(value)` programmatically). Support for the child-level `selected` attribute will be removed in a future major release.
10107
- *
10108
- * @deprecated Use the `value` attribute on `auro-menu` instead.
10109
- */
10110
10043
  selected: {
10111
10044
  type: Boolean,
10112
10045
  reflect: true
@@ -10141,12 +10074,6 @@ class AuroMenuOption extends AuroElement$1 {
10141
10074
  reflect: true,
10142
10075
  attribute: 'nomatch'
10143
10076
  },
10144
-
10145
- /** When true, this option is excluded from `matchWord` DOM rewriting — useful for utility rows (e.g., "Add new…") that must render identically regardless of the current filter. */
10146
- persistent: {
10147
- type: Boolean,
10148
- reflect: true
10149
- },
10150
10077
  };
10151
10078
  }
10152
10079
 
@@ -340,19 +340,19 @@
340
340
  <span slot="helpText">Help Text</span>
341
341
  <auro-menu nocheckmark>
342
342
  <auro-menuoption value="flights">
343
- <auro-icon category="terminal" name="plane-diag-stroke" customcolor></auro-icon> Flights
343
+ <auro-icon category="terminal" name="plane-diag-stroke" customColor></auro-icon> Flights
344
344
  </auro-menuoption>
345
345
  <auro-menuoption value="cars">
346
- <auro-icon category="destination" name="car-rental-stroke" customcolor></auro-icon> Cars
346
+ <auro-icon category="destination" name="car-rental-stroke" customColor></auro-icon> Cars
347
347
  </auro-menuoption>
348
348
  <auro-menuoption value="hotels">
349
- <auro-icon category="destination" name="hotel-stroke" customcolor></auro-icon> Hotels
349
+ <auro-icon category="destination" name="hotel-stroke" customColor></auro-icon> Hotels
350
350
  </auro-menuoption>
351
351
  <auro-menuoption value="packages">
352
- <auro-icon category="shop" name="gift-stroke" customcolor></auro-icon> Packages
352
+ <auro-icon category="shop" name="gift-stroke" customColor></auro-icon> Packages
353
353
  </auro-menuoption>
354
354
  <auro-menuoption value="cruises">
355
- <auro-icon category="in-flight" name="boarding" customcolor></auro-icon> Cruises
355
+ <auro-icon category="in-flight" name="boarding" customColor></auro-icon> Cruises
356
356
  </auro-menuoption>
357
357
  </auro-menu>
358
358
  </auro-select>
@@ -368,19 +368,19 @@
368
368
  &lt;span slot="helpText"&gt;Help Text&lt;/span&gt;
369
369
  &lt;auro-menu nocheckmark&gt;
370
370
  &lt;auro-menuoption value="flights"&gt;
371
- &lt;auro-icon category="terminal" name="plane-diag-stroke" customcolor&gt;&lt;/auro-icon&gt; Flights
371
+ &lt;auro-icon category="terminal" name="plane-diag-stroke" customColor&gt;&lt;/auro-icon&gt; Flights
372
372
  &lt;/auro-menuoption&gt;
373
373
  &lt;auro-menuoption value="cars"&gt;
374
- &lt;auro-icon category="destination" name="car-rental-stroke" customcolor&gt;&lt;/auro-icon&gt; Cars
374
+ &lt;auro-icon category="destination" name="car-rental-stroke" customColor&gt;&lt;/auro-icon&gt; Cars
375
375
  &lt;/auro-menuoption&gt;
376
376
  &lt;auro-menuoption value="hotels"&gt;
377
- &lt;auro-icon category="destination" name="hotel-stroke" customcolor&gt;&lt;/auro-icon&gt; Hotels
377
+ &lt;auro-icon category="destination" name="hotel-stroke" customColor&gt;&lt;/auro-icon&gt; Hotels
378
378
  &lt;/auro-menuoption&gt;
379
379
  &lt;auro-menuoption value="packages"&gt;
380
- &lt;auro-icon category="shop" name="gift-stroke" customcolor&gt;&lt;/auro-icon&gt; Packages
380
+ &lt;auro-icon category="shop" name="gift-stroke" customColor&gt;&lt;/auro-icon&gt; Packages
381
381
  &lt;/auro-menuoption&gt;
382
382
  &lt;auro-menuoption value="cruises"&gt;
383
- &lt;auro-icon category="in-flight" name="boarding" customcolor&gt;&lt;/auro-icon&gt; Cruises
383
+ &lt;auro-icon category="in-flight" name="boarding" customColor&gt;&lt;/auro-icon&gt; Cruises
384
384
  &lt;/auro-menuoption&gt;
385
385
  &lt;/auro-menu&gt;
386
386
  &lt;/auro-select&gt;</code></pre>
@@ -390,7 +390,7 @@ Ensure your `tsconfig.json` uses `"moduleResolution": "bundler"` so TypeScript c
390
390
  <auro-header level="3" id="validity">validity</auro-header>
391
391
  <p>Returns the current <code>validityState</code> of the component as a string. Possible values include <code>"valid"</code>, <code>"valueMissing"</code>, and <code>"customError"</code>.</p>
392
392
  <auro-header level="3" id="value">value</auro-header>
393
- <p>Gets or sets the selected value of the select. When set programmatically, the component will attempt to match and select the corresponding menu option. If the value matches an option marked <code>disabled</code> or <code>static</code>, the selection is rejected and <code>value</code> is cleared to <code>undefined</code>. <code>hidden</code> options remain selectable by value.</p>
393
+ <p>Gets or sets the selected value of the select. When set programmatically, the component will attempt to match and select the corresponding menu option.</p>
394
394
  </section>
395
395
  <section>
396
396
  <auro-header level="2" id="publicFunctions">Functions</auro-header>