@aurodesignsystem-dev/auro-formkit 0.0.0-pr1448.0 → 0.0.0-pr1451.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 (163) hide show
  1. package/components/checkbox/demo/api.md +201 -221
  2. package/components/checkbox/demo/api.min.js +1 -1
  3. package/components/checkbox/demo/index.md +21 -23
  4. package/components/checkbox/demo/index.min.js +1 -1
  5. package/components/checkbox/demo/keyboard-behavior.md +39 -0
  6. package/components/checkbox/demo/readme.md +23 -35
  7. package/components/checkbox/dist/auro-checkbox-group.d.ts +6 -6
  8. package/components/checkbox/dist/auro-checkbox.d.ts +8 -8
  9. package/components/checkbox/dist/index.js +1 -1
  10. package/components/checkbox/dist/registered.js +1 -1
  11. package/components/combobox/README.md +13 -3
  12. package/components/combobox/demo/accessibility.html +57 -0
  13. package/components/combobox/demo/accessibility.md +77 -0
  14. package/components/combobox/demo/api.html +24 -0
  15. package/components/combobox/demo/api.md +1613 -1685
  16. package/components/combobox/demo/api.min.js +15 -21
  17. package/components/combobox/demo/design.html +83 -0
  18. package/components/combobox/demo/design.md +283 -0
  19. package/components/combobox/demo/index.html +49 -16
  20. package/components/combobox/demo/index.js +3 -2
  21. package/components/combobox/demo/index.md +861 -185
  22. package/components/combobox/demo/index.min.js +41 -22
  23. package/components/combobox/demo/install.html +84 -0
  24. package/components/combobox/demo/install.js +24 -0
  25. package/components/combobox/demo/install.md +100 -0
  26. package/components/combobox/demo/install.min.js +17991 -0
  27. package/components/combobox/demo/{keyboardBehavior.html → keyboard-behavior.html} +2 -1
  28. package/components/combobox/demo/keyboard-behavior.md +276 -0
  29. package/components/combobox/demo/layout.md +112 -0
  30. package/components/combobox/demo/readme.html +25 -1
  31. package/components/combobox/demo/readme.md +50 -52
  32. package/components/combobox/demo/styles.css +141 -0
  33. package/components/combobox/demo/voiceover.html +66 -0
  34. package/components/combobox/demo/voiceover.md +118 -0
  35. package/components/combobox/dist/auro-combobox.d.ts +36 -36
  36. package/components/combobox/dist/index.js +12 -17
  37. package/components/combobox/dist/registered.js +12 -17
  38. package/components/counter/demo/api.md +751 -819
  39. package/components/counter/demo/api.min.js +2 -2
  40. package/components/counter/demo/index.md +35 -39
  41. package/components/counter/demo/index.min.js +2 -2
  42. package/components/counter/demo/keyboard-behavior.md +127 -0
  43. package/components/counter/demo/readme.md +39 -51
  44. package/components/counter/dist/auro-counter-group.d.ts +2 -2
  45. package/components/counter/dist/auro-counter.d.ts +10 -10
  46. package/components/counter/dist/index.js +2 -2
  47. package/components/counter/dist/registered.js +2 -2
  48. package/components/datepicker/demo/api.md +827 -931
  49. package/components/datepicker/demo/api.min.js +4 -4
  50. package/components/datepicker/demo/index.md +79 -87
  51. package/components/datepicker/demo/index.min.js +4 -4
  52. package/components/datepicker/demo/keyboard-behavior.md +19 -0
  53. package/components/datepicker/demo/readme.md +19 -31
  54. package/components/datepicker/dist/index.js +4 -4
  55. package/components/datepicker/dist/registered.js +4 -4
  56. package/components/datepicker/dist/{auro-calendar-cell.d.ts → src/auro-calendar-cell.d.ts} +2 -2
  57. package/components/datepicker/dist/{auro-datepicker.d.ts → src/auro-datepicker.d.ts} +13 -13
  58. package/components/datepicker/dist/{utilities.d.ts → src/utilities.d.ts} +4 -4
  59. package/components/datepicker/dist/{utilitiesCalendar.d.ts → src/utilitiesCalendar.d.ts} +3 -3
  60. package/components/datepicker/dist/{vendor → src/vendor}/wc-range-datepicker/range-datepicker-calendar.d.ts +2 -2
  61. package/components/datepicker/dist/{vendor → src/vendor}/wc-range-datepicker/range-datepicker.d.ts +1 -1
  62. package/components/dropdown/demo/api.md +795 -851
  63. package/components/dropdown/demo/api.min.js +1 -1
  64. package/components/dropdown/demo/index.md +145 -155
  65. package/components/dropdown/demo/index.min.js +1 -1
  66. package/components/dropdown/demo/keyboard-behavior.md +72 -0
  67. package/components/dropdown/demo/readme.md +39 -51
  68. package/components/dropdown/dist/auro-dropdown.d.ts +22 -22
  69. package/components/dropdown/dist/auro-dropdownBib.d.ts +3 -3
  70. package/components/dropdown/dist/dropdownBibKeyboardStrategy.d.ts +1 -1
  71. package/components/dropdown/dist/index.js +1 -1
  72. package/components/dropdown/dist/registered.js +1 -1
  73. package/components/form/demo/api.md +173 -179
  74. package/components/form/demo/api.min.js +27 -33
  75. package/components/form/demo/index.md +27 -33
  76. package/components/form/demo/index.min.js +27 -33
  77. package/components/form/demo/keyboard-behavior.md +38 -0
  78. package/components/form/demo/readme.md +14 -28
  79. package/components/input/demo/api.md +572 -664
  80. package/components/input/demo/api.min.js +2 -2
  81. package/components/input/demo/index.md +93 -99
  82. package/components/input/demo/index.min.js +2 -2
  83. package/components/input/demo/keyboard-behavior.md +25 -0
  84. package/components/input/demo/readme.md +17 -29
  85. package/components/input/dist/auro-input.d.ts +1 -1
  86. package/components/input/dist/base-input.d.ts +29 -29
  87. package/components/input/dist/index.js +2 -2
  88. package/components/input/dist/registered.js +2 -2
  89. package/components/menu/demo/api.md +745 -789
  90. package/components/menu/demo/api.min.js +3 -4
  91. package/components/menu/demo/index.md +35 -37
  92. package/components/menu/demo/index.min.js +3 -4
  93. package/components/menu/demo/keyboard-behavior.md +18 -0
  94. package/components/menu/demo/readme.md +23 -35
  95. package/components/menu/dist/auro-menu-utils.d.ts +1 -1
  96. package/components/menu/dist/auro-menu.context.d.ts +3 -3
  97. package/components/menu/dist/auro-menu.d.ts +5 -5
  98. package/components/menu/dist/auro-menuoption.d.ts +6 -6
  99. package/components/menu/dist/index.js +3 -4
  100. package/components/menu/dist/registered.js +3 -4
  101. package/components/radio/demo/api.md +318 -350
  102. package/components/radio/demo/api.min.js +1 -1
  103. package/components/radio/demo/index.md +25 -29
  104. package/components/radio/demo/index.min.js +1 -1
  105. package/components/radio/demo/keyboard-behavior.md +72 -0
  106. package/components/radio/demo/readme.md +21 -33
  107. package/components/radio/dist/auro-radio-group.d.ts +9 -9
  108. package/components/radio/dist/auro-radio.d.ts +8 -8
  109. package/components/radio/dist/index.js +1 -1
  110. package/components/radio/dist/registered.js +1 -1
  111. package/components/select/README.md +12 -1
  112. package/components/select/demo/accessibility.html +65 -0
  113. package/components/select/demo/accessibility.md +76 -0
  114. package/components/select/demo/api.md +1713 -1793
  115. package/components/select/demo/api.min.js +5 -6
  116. package/components/select/demo/index.html +247 -37
  117. package/components/select/demo/index.md +225 -345
  118. package/components/select/demo/index.min.js +5 -6
  119. package/components/select/demo/keyboard-behavior.md +39 -0
  120. package/components/select/demo/layout.html +59 -0
  121. package/components/select/demo/layout.md +299 -0
  122. package/components/select/demo/readme.md +45 -46
  123. package/components/select/demo/voiceover.html +65 -0
  124. package/components/select/demo/voiceover.md +183 -0
  125. package/components/select/dist/auro-select.d.ts +11 -11
  126. package/components/select/dist/index.js +2 -2
  127. package/components/select/dist/registered.js +2 -2
  128. package/custom-elements.json +13 -11
  129. package/package.json +26 -26
  130. package/components/checkbox/demo/keyboardBehavior.md +0 -0
  131. package/components/combobox/demo/keyboardBehavior.md +0 -281
  132. package/components/counter/demo/keyboardBehavior.md +0 -127
  133. package/components/datepicker/demo/keyboardBehavior.md +0 -19
  134. package/components/dropdown/demo/keyboardBehavior.md +0 -77
  135. package/components/form/demo/keyboardBehavior.md +0 -0
  136. package/components/input/demo/keyboardBehavior.md +0 -0
  137. package/components/menu/demo/keyboardBehavior.md +0 -0
  138. package/components/radio/demo/keyboardBehavior.md +0 -0
  139. package/components/select/demo/keyboardBehavior.md +0 -245
  140. /package/components/datepicker/dist/{auro-calendar-month.d.ts → src/auro-calendar-month.d.ts} +0 -0
  141. /package/components/datepicker/dist/{auro-calendar.d.ts → src/auro-calendar.d.ts} +0 -0
  142. /package/components/datepicker/dist/{buttonVersion.d.ts → src/buttonVersion.d.ts} +0 -0
  143. /package/components/datepicker/dist/{datepickerKeyboardStrategy.d.ts → src/datepickerKeyboardStrategy.d.ts} +0 -0
  144. /package/components/datepicker/dist/{iconVersion.d.ts → src/iconVersion.d.ts} +0 -0
  145. /package/components/datepicker/dist/{index.d.ts → src/index.d.ts} +0 -0
  146. /package/components/datepicker/dist/{popoverVersion.d.ts → src/popoverVersion.d.ts} +0 -0
  147. /package/components/datepicker/dist/{styles → src/styles}/classic/color-css.d.ts +0 -0
  148. /package/components/datepicker/dist/{styles → src/styles}/classic/style-css.d.ts +0 -0
  149. /package/components/datepicker/dist/{styles → src/styles}/color-calendar-css.d.ts +0 -0
  150. /package/components/datepicker/dist/{styles → src/styles}/color-cell-css.d.ts +0 -0
  151. /package/components/datepicker/dist/{styles → src/styles}/color-css.d.ts +0 -0
  152. /package/components/datepicker/dist/{styles → src/styles}/color-month-css.d.ts +0 -0
  153. /package/components/datepicker/dist/{styles → src/styles}/shapeSize-css.d.ts +0 -0
  154. /package/components/datepicker/dist/{styles → src/styles}/snowflake/color-css.d.ts +0 -0
  155. /package/components/datepicker/dist/{styles → src/styles}/snowflake/style-css.d.ts +0 -0
  156. /package/components/datepicker/dist/{styles → src/styles}/style-auro-calendar-cell-css.d.ts +0 -0
  157. /package/components/datepicker/dist/{styles → src/styles}/style-auro-calendar-css.d.ts +0 -0
  158. /package/components/datepicker/dist/{styles → src/styles}/style-auro-calendar-month-css.d.ts +0 -0
  159. /package/components/datepicker/dist/{styles → src/styles}/style-css.d.ts +0 -0
  160. /package/components/datepicker/dist/{styles → src/styles}/tokens-css.d.ts +0 -0
  161. /package/components/datepicker/dist/{utilitiesCalendarRender.d.ts → src/utilitiesCalendarRender.d.ts} +0 -0
  162. /package/components/datepicker/dist/{vendor → src/vendor}/wc-range-datepicker/day.d.ts +0 -0
  163. /package/components/datepicker/dist/{vendor → src/vendor}/wc-range-datepicker/range-datepicker-cell.d.ts +0 -0
@@ -1,196 +1,872 @@
1
- <!--
2
- THIS PAGE'S CONTENT SHOULD BE KEPT MINIMAL.
3
- ONLY ADD EXAMPLES THAT ARE TRULY NECESSARY FOR THE INDEX PAGE — THE BASIC EXAMPLE IS USUALLY ENOUGH.
4
- ALL OTHER EXAMPLES SHOULD GO IN THE API DOCUMENTATION.
5
- -->
6
-
7
- # Combobox
8
-
1
+ <auro-header level="1" id="overview">Combobox - Overview and UX Guide</auro-header>
2
+ <div class="contentWrapper">
3
+ <nav>
4
+ <auro-nav anchorNavContent=".scrollWrapper">
5
+ <span slot="mobileToggleCollapsed">View More</span>
6
+ <span slot="mobileToggleExpanded">View Less</span>
7
+ <auro-anchorlink fluid href="#description">Description</auro-anchorlink>
8
+ <auro-anchorlink fluid href="#userStories">User Stories</auro-anchorlink>
9
+ <auro-anchorlink fluid href="#select" class="level2 body-xs">Select an Option</auro-anchorlink>
10
+ <auro-anchorlink fluid href="#presetValue" class="level2 body-xs">Preset Value</auro-anchorlink>
11
+ <auro-anchorlink fluid href="#autocomplete" class="level2 body-xs">Autocomplete</auro-anchorlink>
12
+ <auro-anchorlink fluid href="#clearValue" class="level2 body-xs">Clear Value</auro-anchorlink>
13
+ <auro-anchorlink fluid href="#skipSelection" class="level2 body-xs">Skip Selection</auro-anchorlink>
14
+ <auro-anchorlink fluid href="#swapValues" class="level2 body-xs">Swap Values</auro-anchorlink>
15
+ <auro-anchorlink fluid href="#viewport" class="level2 body-xs">Viewport Size</auro-anchorlink>
16
+ <auro-anchorlink fluid href="#customization">Customization</auro-anchorlink>
17
+ <auro-anchorlink fluid href="#inputType" class="level2 body-xs">Input Type</auro-anchorlink>
18
+ <auro-anchorlink fluid href="#inputMode" class="level2 body-xs">Input Mode</auro-anchorlink>
19
+ <auro-anchorlink fluid href="#checkmarks" class="level2 body-xs">Checkmarks</auro-anchorlink>
20
+ <auro-anchorlink fluid href="#disableComponent" class="level2 body-xs">Disable Component</auro-anchorlink>
21
+ <auro-anchorlink fluid href="#disableOptions" class="level2 body-xs">Disable Option(s)</auro-anchorlink>
22
+ <auro-anchorlink fluid href="#requireSelection" class="level2 body-xs">Require Selection</auro-anchorlink>
23
+ <auro-anchorlink fluid href="#forceError" class="level2 body-xs">Force Error State</auro-anchorlink>
24
+ <auro-anchorlink fluid href="#customValidation" class="level2 body-xs">Custom Validation</auro-anchorlink>
25
+ <auro-anchorlink fluid href="#displayValue" class="level2 body-xs">Display Value</auro-anchorlink>
26
+ <auro-anchorlink fluid href="#dynamicMenu" class="level2 body-xs">Dynamic Menu</auro-anchorlink>
27
+ <auro-anchorlink fluid href="#bibPlacement" class="level2 body-xs">Bib Placement</auro-anchorlink>
28
+ <auro-anchorlink fluid href="#noFlip" class="level2 body-xs">No Flip</auro-anchorlink>
29
+ </auro-nav>
30
+ </nav>
31
+ <div class="mainContent">
32
+ <div class="scrollWrapper">
33
+ <auro-header level="2" id="description">Description</auro-header>
9
34
  <!-- AURO-GENERATED-CONTENT:START (FILE:src=./../docs/partials/description.md) -->
10
35
  <!-- The below content is automatically added from ./../docs/partials/description.md -->
11
- `<auro-combobox>` is the combination of [dropdown](http://auro.alaskaair.com/components/auro/dropdown), [input](http://auro.alaskaair.com/components/auro/input), and [menu](http://auro.alaskaair.com/components/auro/menu) and allows users to filter search results from a predefined list as they type. When the user starts typing in the text input, a dropdown of a menu shows up to display options that match the user’s search.
12
-
13
- By default, `auro-combobox` behaves as a suggestion list. This means any value may be typed into the combobox and the menu list presented effectively provides sample or suggestion options. With the use of the `persistInput` attribute the `auro-combobox` behaves as a filter of menu options. In this mode. typing into the input field will execute the filter but will not set the `value` of the combobox. The combobox value is set by selecting a menu option. Clicking the `X` clear button in the input will remove the current value of the HTML5 input causing the menu filter to reset as well as remove the current value of the combobox.
14
- <!-- AURO-GENERATED-CONTENT:END -->
15
-
16
- ## Use Cases
17
-
18
- <!-- AURO-GENERATED-CONTENT:START (FILE:src=./../docs/partials/useCases.md) -->
19
- <!-- The below content is automatically added from ./../docs/partials/useCases.md -->
20
- The `<auro-combobox>` element should be used in situations where users may:
21
-
22
- * Search
23
- * Airports: user looks for a specific airport by searching for the city name or airport code
24
- * Site wide: user searches for a topic site wide and combobox makes suggestions on searchable results
25
- * Filter
26
- * Options: user chooses filters for their search by using combobox
27
- * Select
28
- * Quantity: user types a quantity to select an option within a range (for example, the user may be limited to 2-34)
29
- <!-- AURO-GENERATED-CONTENT:END -->
30
-
31
- ## Example(s)
32
-
33
- ### Basic
34
-
36
+ <p><code>&lt;auro-combobox&gt;</code> combines a text input with a filterable dropdown menu, letting users either type a value or pick one from a list. As the user types, the menu narrows to show only matching options.</p>
37
+ <p>The component supports two modes:</p>
38
+ <ul>
39
+ <li><strong>Suggestion (default)</strong> — The user may type any value. The menu provides suggestions but does not restrict input.</li>
40
+ <li><strong>Filter</strong> — The user must select from the menu. Typing filters the available options but does not set the component's value. The value is only set when a menu option is selected.</li>
41
+ </ul>
42
+ <p>Common use cases:</p>
43
+ <ul>
44
+ <li><strong>Airport or city search</strong> Type a city name or airport code to filter a long list of destinations.</li>
45
+ <li><strong>Country or region selection</strong> Quickly find and select from a large set of geographic options.</li>
46
+ <li><strong>Autocomplete fields</strong> — Provide type-ahead suggestions for form fields where the set of valid values is known.</li>
47
+ <li><strong>Search with suggestions</strong> — Offer recommended results while still allowing freeform input.</li>
48
+ </ul>
49
+ <!-- AURO-GENERATED-CONTENT:END -->
35
50
  <div class="exampleWrapper">
36
- <!-- AURO-GENERATED-CONTENT:START (FILE:src=./../apiExamples/basic.html) -->
37
- <!-- The below content is automatically added from ./../apiExamples/basic.html -->
38
- <auro-combobox>
39
- <span slot="ariaLabel.bib.close">Close combobox</span>
40
- <span slot="ariaLabel.input.clear">Clear All</span>
41
- <span slot="bib.fullscreen.headline">Bib Header</span>
42
- <span slot="label">Name</span>
43
- <auro-menu>
44
- <auro-menuoption value="Apples" id="option-0">Apples</auro-menuoption>
45
- <auro-menuoption value="Oranges" id="option-1">Oranges</auro-menuoption>
46
- <auro-menuoption value="Peaches" id="option-2">Peaches</auro-menuoption>
47
- <auro-menuoption value="Grapes" id="option-3">Grapes</auro-menuoption>
48
- <auro-menuoption value="Cherries" id="option-4">Cherries</auro-menuoption>
49
- <auro-menuoption static nomatch>No matching option</auro-menuoption>
50
- </auro-menu>
51
- </auro-combobox>
52
- <!-- AURO-GENERATED-CONTENT:END -->
53
- </div>
51
+ <!-- AURO-GENERATED-CONTENT:START (FILE:src=./../apiExamples/basic.html) -->
52
+ <!-- The below content is automatically added from ./../apiExamples/basic.html -->
53
+ <auro-combobox>
54
+ <span slot="ariaLabel.bib.close">Close combobox</span>
55
+ <span slot="ariaLabel.input.clear">Clear All</span>
56
+ <span slot="bib.fullscreen.headline">Bib Header</span>
57
+ <span slot="label">Name</span>
58
+ <auro-menu>
59
+ <auro-menuoption value="Apples" id="option-0">Apples</auro-menuoption>
60
+ <auro-menuoption value="Oranges" id="option-1">Oranges</auro-menuoption>
61
+ <auro-menuoption value="Peaches" id="option-2">Peaches</auro-menuoption>
62
+ <auro-menuoption value="Grapes" id="option-3">Grapes</auro-menuoption>
63
+ <auro-menuoption value="Cherries" id="option-4">Cherries</auro-menuoption>
64
+ <auro-menuoption static nomatch>No matching option</auro-menuoption>
65
+ </auro-menu>
66
+ </auro-combobox>
67
+ <!-- AURO-GENERATED-CONTENT:END -->
68
+ </div>
54
69
  <auro-accordion alignRight>
55
- <span slot="trigger">See code</span>
70
+ <span slot="trigger">See code</span>
56
71
  <!-- AURO-GENERATED-CONTENT:START (CODE:src=./../apiExamples/basic.html) -->
57
- <!-- The below code snippet is automatically added from ./../apiExamples/basic.html -->
58
-
59
- ```html
72
+ <!-- The below code snippet is automatically added from ./../apiExamples/basic.html -->
73
+ <pre class="language-html"><code class="language-html">&lt;auro-combobox&gt;
74
+ &lt;span slot="ariaLabel.bib.close"&gt;Close combobox&lt;/span&gt;
75
+ &lt;span slot="ariaLabel.input.clear"&gt;Clear All&lt;/span&gt;
76
+ &lt;span slot="bib.fullscreen.headline"&gt;Bib Header&lt;/span&gt;
77
+ &lt;span slot="label"&gt;Name&lt;/span&gt;
78
+ &lt;auro-menu&gt;
79
+ &lt;auro-menuoption value="Apples" id="option-0"&gt;Apples&lt;/auro-menuoption&gt;
80
+ &lt;auro-menuoption value="Oranges" id="option-1"&gt;Oranges&lt;/auro-menuoption&gt;
81
+ &lt;auro-menuoption value="Peaches" id="option-2"&gt;Peaches&lt;/auro-menuoption&gt;
82
+ &lt;auro-menuoption value="Grapes" id="option-3"&gt;Grapes&lt;/auro-menuoption&gt;
83
+ &lt;auro-menuoption value="Cherries" id="option-4"&gt;Cherries&lt;/auro-menuoption&gt;
84
+ &lt;auro-menuoption static nomatch&gt;No matching option&lt;/auro-menuoption&gt;
85
+ &lt;/auro-menu&gt;
86
+ &lt;/auro-combobox&gt;</code></pre>
87
+ <!-- AURO-GENERATED-CONTENT:END -->
88
+ </auro-accordion>
89
+ <section>
90
+ <auro-header level="2" id="userStories">User Stories</auro-header>
91
+ <!-- AURO-GENERATED-CONTENT:START (FILE:src=./../docs/partials/userStories.md) -->
92
+ <!-- The below content is automatically added from ./../docs/partials/userStories.md -->
93
+ <auro-header level="3" id="select">Select an option from the list</auro-header>
94
+ <ol>
95
+ <li>
96
+ Move focus to the auro-combobox element
97
+ </li>
98
+ <li>
99
+ Begin typing into the input
100
+ <div class="note">
101
+ <p>
102
+ The bib will not open until the user types at least one character into the input. Clicking or tapping the trigger alone does not open the bib. Once the input has a value, the user may click or tap the trigger to open or close the bib.
103
+ </p>
104
+ <p>
105
+ While in desktop view the list of options will render in a dropdown style bib that appears below the trigger. The bib may render above the trigger if there is not enough space in the viewport below the trigger.
106
+ </p>
107
+ <p>
108
+ While in mobile device view the list of options will appear in a fullscreen modal dialog. Focus will shift to the input field inside the dialog.
109
+ </p>
110
+ <p>
111
+ As the user types, the options are filtered to show only matching results.
112
+ </p>
113
+ </div>
114
+ </li>
115
+ <li>
116
+ Choose an option
117
+ <div class="note">
118
+ <p>
119
+ The guest may navigate through the list of options to make their choice. An option may become active through pointer hover, keyboard navigation (e.g., arrow keys), or assistive technologies that emulate keyboard navigation through gestures.
120
+ </p>
121
+ </div>
122
+ </li>
123
+ <li>
124
+ Select the option
125
+ <div class="note">
126
+ <p>
127
+ Any previously selected option will be un-selected. The current active option may be selected through click, tap or keyboard events (e.g. <code>Enter</code> or <code>Tab</code> while focus is within the component).
128
+ </p>
129
+ </div>
130
+ </li>
131
+ </ol>
132
+ <auro-header level="4" id="filtering">Filtering and match highlighting</auro-header>
133
+ <p>As the user types into the input, the component filters the list of options and highlights the matching text.</p>
134
+ <ol>
135
+ <li>The typed value is compared against the text content of each option (case-insensitive). Only options whose text contains the typed value are shown; all others are hidden.</li>
136
+ <li>Within each visible option, the portion of text that matches the typed value is wrapped in <code>&lt;strong&gt;</code> tags to visually emphasize the match.</li>
137
+ <li>If no options match the typed value, the bib is hidden. However, if a <code>nomatch</code> option is defined, it will be displayed instead.</li>
138
+ </ol>
139
+ <p>The following option attributes modify filtering behavior:</p>
140
+ <ul>
141
+ <li><strong><code>suggest</code></strong> — Provides additional text to match against beyond the option's visible text content. For example, an option displaying "Oranges" with <code>suggest="apples"</code> will also match when the user types "apples".</li>
142
+ <li><strong><code>persistent</code></strong> — The option is always shown regardless of the current filter value.</li>
143
+ <li><strong><code>static</code></strong> — The option is always hidden from filtered results and only shown when the input is empty.</li>
144
+ <li><strong><code>nomatch</code></strong> — The option is shown only when no other options match the typed value (e.g., "No results found").</li>
145
+ </ul>
146
+ <div class="note">
147
+ <strong>Note:</strong> Filtering can be disabled entirely by setting the <code>noFilter</code> attribute on the combobox. When <code>noFilter</code> is set, all options remain visible regardless of the typed value. Match highlighting still applies. This is useful when menu options are dynamically generated via an API call as the user types into the input, since the server is already returning only relevant results.
148
+ </div>
149
+ <auro-header level="3" id="presetValue">Preset the value</auro-header>
150
+ <p>In some cases it is necessary to preset the value of the component as part of the initial render.</p>
151
+ <p>When a value is preset, the matching option in the menu will be marked as both <code>active</code> and <code>selected</code>, and the input will display the corresponding text.</p>
152
+ <p>If a preset value does not match any option, the component value is preserved and displayed in the input, but no menu option will be marked as selected. In suggestion mode, this value is treated as valid freeform input. In filter mode, the value will fail validation if the component is <code>required</code>.</p>
153
+ <auro-header level="3" id="autocomplete">Autocomplete</auro-header>
154
+ <p>The component supports the use of <auro-hyperlink href="https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Attributes/autocomplete">autocomplete</auro-hyperlink> configuration through HTML attributes.</p>
155
+ <auro-header level="3" id="clearValue">Clear the value</auro-header>
156
+ <p>When the input has a value, a clear button will appear inside the input. Clicking or tapping the clear button will reset the component to its initial empty state.</p>
157
+ <ol>
158
+ <li>The input value is cleared</li>
159
+ <li>The selected option is deselected</li>
160
+ <li>The component value is reset to <code>undefined</code></li>
161
+ <li>The bib is closed if it was open</li>
162
+ </ol>
163
+ <div class="note">
164
+ <strong>Note:</strong> If the component is <code>required</code>, clearing the value and moving focus away from the component will trigger validation and render the error state.
165
+ </div>
166
+ <auro-header level="3" id="skipSelection">Close the list of options without making a selection</auro-header>
167
+ <ol>
168
+ <li>Move focus to the auro-combobox element</li>
169
+ <li>Begin typing into the input to open the bib</li>
170
+ <li>Navigate the list of options but do not make a selection</li>
171
+ <li>Collapse the bib
172
+ <div class="note">
173
+ <p>The guest may collapse the bib without making any selection. Example methods include clicking or tapping outside of the component or hitting the <code>Escape</code> key.</p>
174
+ </div>
175
+ </li>
176
+ </ol>
177
+ <auro-header level="3" id="swapValues">Swap values between two comboboxes</auro-header>
178
+ <p>Two combobox instances can have their values swapped programmatically. This is a common pattern in travel search forms where the user needs to reverse origin and destination.</p>
179
+ <ol>
180
+ <li>Select a value in one or both comboboxes</li>
181
+ <li>Click the swap button between them
182
+ <div class="note">
183
+ <p>The values of the two comboboxes are exchanged. Each combobox updates its input and selected option to reflect the other's previous value.</p>
184
+ </div>
185
+ </li>
186
+ </ol>
187
+ <div class="exampleWrapper">
188
+ <!-- AURO-GENERATED-CONTENT:START (FILE:src=./../apiExamples/swap-value.html) -->
189
+ <!-- The below content is automatically added from ./../apiExamples/swap-value.html -->
190
+ <div id="swapExample">
191
+ <auro-combobox id="swapExampleLeft">
192
+ <span slot="bib.fullscreen.headline">Left Combobox Header</span>
193
+ <span slot="label">Name</span>
194
+ <auro-menu>
195
+ <auro-menuoption value="Apples" id="option-0">Apples</auro-menuoption>
196
+ <auro-menuoption value="Oranges" id="option-1">Oranges</auro-menuoption>
197
+ <auro-menuoption value="Peaches" id="option-2">Peaches</auro-menuoption>
198
+ <auro-menuoption value="Grapes" id="option-3">Grapes</auro-menuoption>
199
+ <auro-menuoption value="Cherries" id="option-4">Cherries</auro-menuoption>
200
+ <auro-menuoption static nomatch>No matching option</auro-menuoption>
201
+ </auro-menu>
202
+ </auro-combobox>
203
+ <auro-button id="swapExampleBtn" iconOnly>
204
+ <auro-icon
205
+ customColor
206
+ category="terminal"
207
+ name="round-trip-arrows">
208
+ </auro-icon>
209
+ </auro-button>
210
+ <auro-combobox id="swapExampleRight">
211
+ <span slot="bib.fullscreen.headline">Right Combobox Header</span>
212
+ <span slot="label">Name</span>
213
+ <auro-menu>
214
+ <auro-menuoption value="Apples" id="option-0">Apples</auro-menuoption>
215
+ <auro-menuoption value="Oranges" id="option-1">Oranges</auro-menuoption>
216
+ <auro-menuoption value="Peaches" id="option-2">Peaches</auro-menuoption>
217
+ <auro-menuoption value="Grapes" id="option-3">Grapes</auro-menuoption>
218
+ <auro-menuoption value="Cherries" id="option-4">Cherries</auro-menuoption>
219
+ <auro-menuoption static nomatch>No matching option</auro-menuoption>
220
+ </auro-menu>
221
+ </auro-combobox>
222
+ </div>
223
+ <style>
224
+ #swapExample {
225
+ display: flex;
226
+ flex-direction: row;
227
+ align-items: center;
228
+ }
229
+ #swapExampleLeft,
230
+ #swapExampleRight {
231
+ flex: 1;
232
+ }
233
+ #swapExampleBtn {
234
+ margin: 0 5px;
235
+ }
236
+ </style>
237
+ <!-- AURO-GENERATED-CONTENT:END -->
238
+ </div>
239
+ <auro-accordion alignRight>
240
+ <span slot="trigger">See code</span>
241
+ <!-- AURO-GENERATED-CONTENT:START (CODE:src=./../apiExamples/swap-value.html) -->
242
+ <!-- The below code snippet is automatically added from ./../apiExamples/swap-value.html -->
243
+ <pre class="language-html"><code class="language-html">&lt;div id="swapExample"&gt;
244
+ &lt;auro-combobox id="swapExampleLeft"&gt;
245
+ &lt;span slot="bib.fullscreen.headline"&gt;Left Combobox Header&lt;/span&gt;
246
+ &lt;span slot="label"&gt;Name&lt;/span&gt;
247
+ &lt;auro-menu&gt;
248
+ &lt;auro-menuoption value="Apples" id="option-0"&gt;Apples&lt;/auro-menuoption&gt;
249
+ &lt;auro-menuoption value="Oranges" id="option-1"&gt;Oranges&lt;/auro-menuoption&gt;
250
+ &lt;auro-menuoption value="Peaches" id="option-2"&gt;Peaches&lt;/auro-menuoption&gt;
251
+ &lt;auro-menuoption value="Grapes" id="option-3"&gt;Grapes&lt;/auro-menuoption&gt;
252
+ &lt;auro-menuoption value="Cherries" id="option-4"&gt;Cherries&lt;/auro-menuoption&gt;
253
+ &lt;auro-menuoption static nomatch&gt;No matching option&lt;/auro-menuoption&gt;
254
+ &lt;/auro-menu&gt;
255
+ &lt;/auro-combobox&gt;
256
+ &lt;auro-button id="swapExampleBtn" iconOnly&gt;
257
+ &lt;auro-icon
258
+ customColor
259
+ category="terminal"
260
+ name="round-trip-arrows"&gt;
261
+ &lt;/auro-icon&gt;
262
+ &lt;/auro-button&gt;
263
+ &lt;auro-combobox id="swapExampleRight"&gt;
264
+ &lt;span slot="bib.fullscreen.headline"&gt;Right Combobox Header&lt;/span&gt;
265
+ &lt;span slot="label"&gt;Name&lt;/span&gt;
266
+ &lt;auro-menu&gt;
267
+ &lt;auro-menuoption value="Apples" id="option-0"&gt;Apples&lt;/auro-menuoption&gt;
268
+ &lt;auro-menuoption value="Oranges" id="option-1"&gt;Oranges&lt;/auro-menuoption&gt;
269
+ &lt;auro-menuoption value="Peaches" id="option-2"&gt;Peaches&lt;/auro-menuoption&gt;
270
+ &lt;auro-menuoption value="Grapes" id="option-3"&gt;Grapes&lt;/auro-menuoption&gt;
271
+ &lt;auro-menuoption value="Cherries" id="option-4"&gt;Cherries&lt;/auro-menuoption&gt;
272
+ &lt;auro-menuoption static nomatch&gt;No matching option&lt;/auro-menuoption&gt;
273
+ &lt;/auro-menu&gt;
274
+ &lt;/auro-combobox&gt;
275
+ &lt;/div&gt;
276
+ &lt;style&gt;
277
+ #swapExample {
278
+ display: flex;
279
+ flex-direction: row;
280
+ align-items: center;
281
+ }
282
+ #swapExampleLeft,
283
+ #swapExampleRight {
284
+ flex: 1;
285
+ }
286
+ #swapExampleBtn {
287
+ margin: 0 5px;
288
+ }
289
+ &lt;/style&gt;</code></pre>
290
+ <!-- AURO-GENERATED-CONTENT:END -->
291
+ <!-- AURO-GENERATED-CONTENT:START (CODE:src=./../apiExamples/swap-value.js) -->
292
+ <!-- The below code snippet is automatically added from ./../apiExamples/swap-value.js -->
293
+ <pre class="language-js"><code class="language-js">export function swapValueExample() {
294
+ const btn = document.querySelector('#swapExampleBtn');
295
+ const comboboxOne = document.querySelector('#swapExampleLeft');
296
+ const comboboxTwo = document.querySelector('#swapExampleRight');
297
+
298
+ btn.addEventListener('click', () =&gt; {
299
+ const valueOne = comboboxOne.value;
300
+ const valueTwo = comboboxTwo.value;
301
+
302
+ comboboxOne.value = valueTwo;
303
+ comboboxTwo.value = valueOne;
304
+ });
305
+ }</code></pre>
306
+ <!-- AURO-GENERATED-CONTENT:END -->
307
+ </auro-accordion>
308
+ <auro-header level="3" id="viewport">Change Viewport Size</auro-header>
309
+ <p>The guest may change the size of their viewport (e.g. resize their desktop browser window, rotate their mobile device). In some cases, this may cause a re-render of the component while the option list is expanded. It is possible that the viewport size change will cause the option list to change from a popover bib to a fullscreen modal or vice versa while the bib is open.</p>
310
+ <auro-header level="4" id="us9a">Popover to Modal</auro-header>
311
+ <p>While in a popover display state with the bib open, focus will be on the input. After switching to the fullscreen modal dialog, focus will move to the input field inside the dialog.</p>
312
+ <auro-header level="4" id="us9b">Modal to Popover</auro-header>
313
+ <p>While in a fullscreen modal display state with the bib open, focus will be on the input field inside the dialog. After switching to the popover, focus will move to the trigger input.</p>
314
+ <!-- AURO-GENERATED-CONTENT:END -->
315
+ </section>
316
+ <section>
317
+ <auro-header level="2" id="customization">Customization</auro-header>
318
+ <!-- AURO-GENERATED-CONTENT:START (FILE:src=./../docs/partials/customization.md) -->
319
+ <!-- The below content is automatically added from ./../docs/partials/customization.md -->
320
+ <auro-header level="3" id="inputType">Input type formatting</auro-header>
321
+ <p>The <code>type</code> attribute can be set on the combobox to apply input formatting and validation to the trigger input. This is passed directly to the underlying <code>auro-input</code> element.</p>
322
+ <p>Supported types:</p>
323
+ <ul>
324
+ <li><strong><code>credit-card</code></strong> — Applies credit card number formatting with automatic grouping (e.g., <code>4147 2000 0000 0000</code>).</li>
325
+ <li><strong><code>number</code></strong> — Restricts input to numeric values.</li>
326
+ <li><strong><code>email</code></strong> — Applies email validation.</li>
327
+ <li><strong><code>password</code></strong> — Masks the input value.</li>
328
+ <li><strong><code>tel</code></strong> — Applies telephone number formatting.</li>
329
+ </ul>
330
+ <p>For date formatting, use the <code>type="date"</code> attribute. The default format is <code>MM/DD/YYYY</code>. Alternative date formats can be specified with the <code>format</code> attribute (e.g., <code>format="MM/YYYY"</code>).</p>
331
+ <div class="exampleWrapper">
332
+ <!-- AURO-GENERATED-CONTENT:START (FILE:src=./../apiExamples/type_tel.html) -->
333
+ <!-- The below content is automatically added from ./../apiExamples/type_tel.html -->
334
+ <auro-combobox type="tel">
335
+ <span slot="bib.fullscreen.headline">Phone Number</span>
336
+ <span slot="label">Phone Number</span>
337
+ <auro-menu>
338
+ <auro-menuoption value="+1 (206) 555-1234" id="option-tel-0">+1 (206) 555-1234</auro-menuoption>
339
+ <auro-menuoption value="+1 (425) 555-9876" id="option-tel-1">+1 (425) 555-9876</auro-menuoption>
340
+ <auro-menuoption value="+1 (360) 555-4321" id="option-tel-2">+1 (360) 555-4321</auro-menuoption>
341
+ <auro-menuoption value="+1 (509) 555-6789" id="option-tel-3">+1 (509) 555-6789</auro-menuoption>
342
+ <auro-menuoption static nomatch>No matching number</auro-menuoption>
343
+ </auro-menu>
344
+ </auro-combobox>
345
+ <!-- AURO-GENERATED-CONTENT:END -->
346
+ </div>
347
+ <auro-accordion alignRight>
348
+ <span slot="trigger">See code</span>
349
+ <!-- AURO-GENERATED-CONTENT:START (CODE:src=./../apiExamples/type_tel.html) -->
350
+ <!-- The below code snippet is automatically added from ./../apiExamples/type_tel.html -->
351
+ <pre class="language-html"><code class="language-html">&lt;auro-combobox type="tel"&gt;
352
+ &lt;span slot="bib.fullscreen.headline"&gt;Phone Number&lt;/span&gt;
353
+ &lt;span slot="label"&gt;Phone Number&lt;/span&gt;
354
+ &lt;auro-menu&gt;
355
+ &lt;auro-menuoption value="+1 (206) 555-1234" id="option-tel-0"&gt;+1 (206) 555-1234&lt;/auro-menuoption&gt;
356
+ &lt;auro-menuoption value="+1 (425) 555-9876" id="option-tel-1"&gt;+1 (425) 555-9876&lt;/auro-menuoption&gt;
357
+ &lt;auro-menuoption value="+1 (360) 555-4321" id="option-tel-2"&gt;+1 (360) 555-4321&lt;/auro-menuoption&gt;
358
+ &lt;auro-menuoption value="+1 (509) 555-6789" id="option-tel-3"&gt;+1 (509) 555-6789&lt;/auro-menuoption&gt;
359
+ &lt;auro-menuoption static nomatch&gt;No matching number&lt;/auro-menuoption&gt;
360
+ &lt;/auro-menu&gt;
361
+ &lt;/auro-combobox&gt;</code></pre>
362
+ <!-- AURO-GENERATED-CONTENT:END -->
363
+ </auro-accordion>
364
+ <auro-header level="3" id="inputMode">Set the input mode</auro-header>
365
+ <p>The <code>inputmode</code> attribute controls the virtual keyboard displayed on mobile devices when the input is focused. This is passed directly to the underlying HTML <code>input</code> element via the <code>inputmode</code> attribute.</p>
366
+ <p>Supported values include <code>text</code>, <code>numeric</code>, <code>decimal</code>, <code>tel</code>, <code>email</code>, <code>url</code>, <code>search</code>, and <code>none</code>. See the <auro-hyperlink href="https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Global_attributes/inputmode">MDN inputmode reference</auro-hyperlink> for details on each mode.</p>
367
+ <p>When the <code>type</code> attribute is set to <code>credit-card</code>, <code>tel</code>, <code>date</code>, or <code>number</code>, the input mode defaults to <code>numeric</code> if not explicitly set. For all other types the browser default applies.</p>
368
+ <div class="exampleWrapper">
369
+ <!-- AURO-GENERATED-CONTENT:START (FILE:src=./../apiExamples/inputmode.html) -->
370
+ <!-- The below content is automatically added from ./../apiExamples/inputmode.html -->
371
+ <auro-combobox inputmode="numeric">
372
+ <span slot="bib.fullscreen.headline">Bib Header</span>
373
+ <span slot="label">Name</span>
374
+ <auro-menu>
375
+ <auro-menuoption value="1" id="option-0">1</auro-menuoption>
376
+ <auro-menuoption value="2" id="option-1">2</auro-menuoption>
377
+ <auro-menuoption value="3" id="option-2">3</auro-menuoption>
378
+ <auro-menuoption value="4" id="option-3">4</auro-menuoption>
379
+ <auro-menuoption value="5" id="option-4">5</auro-menuoption>
380
+ <auro-menuoption static nomatch>No matching option</auro-menuoption>
381
+ </auro-menu>
382
+ </auro-combobox>
383
+ <!-- AURO-GENERATED-CONTENT:END -->
384
+ </div>
385
+ <auro-accordion alignRight>
386
+ <span slot="trigger">See code</span>
387
+ <!-- AURO-GENERATED-CONTENT:START (CODE:src=./../apiExamples/inputmode.html) -->
388
+ <!-- The below code snippet is automatically added from ./../apiExamples/inputmode.html -->
389
+ <pre class="language-html"><code class="language-html">&lt;auro-combobox inputmode="numeric"&gt;
390
+ &lt;span slot="bib.fullscreen.headline"&gt;Bib Header&lt;/span&gt;
391
+ &lt;span slot="label"&gt;Name&lt;/span&gt;
392
+ &lt;auro-menu&gt;
393
+ &lt;auro-menuoption value="1" id="option-0"&gt;1&lt;/auro-menuoption&gt;
394
+ &lt;auro-menuoption value="2" id="option-1"&gt;2&lt;/auro-menuoption&gt;
395
+ &lt;auro-menuoption value="3" id="option-2"&gt;3&lt;/auro-menuoption&gt;
396
+ &lt;auro-menuoption value="4" id="option-3"&gt;4&lt;/auro-menuoption&gt;
397
+ &lt;auro-menuoption value="5" id="option-4"&gt;5&lt;/auro-menuoption&gt;
398
+ &lt;auro-menuoption static nomatch&gt;No matching option&lt;/auro-menuoption&gt;
399
+ &lt;/auro-menu&gt;
400
+ &lt;/auro-combobox&gt;</code></pre>
401
+ <!-- AURO-GENERATED-CONTENT:END -->
402
+ </auro-accordion>
403
+ <auro-header level="3" id="checkmarks">Checkmark indicators on selected options</auro-header>
404
+ <p>By default, the combobox does not display checkmarks on selected options. To show a checkmark next to the currently selected option, set the <code>checkmark</code> attribute on the combobox.</p>
405
+ <p>When <code>checkmark</code> is not set, the <code>nocheckmark</code> attribute is applied to the menu internally, hiding the checkmark indicator.</p>
406
+ <div class="exampleWrapper">
407
+ <!-- AURO-GENERATED-CONTENT:START (FILE:src=./../apiExamples/checkmark.html) -->
408
+ <!-- The below content is automatically added from ./../apiExamples/checkmark.html -->
409
+ <auro-combobox checkmark>
410
+ <span slot="bib.fullscreen.headline">Bib Header</span>
411
+ <span slot="label">Name</span>
412
+ <auro-menu>
413
+ <auro-menuoption value="Apples" id="option-0">Apples</auro-menuoption>
414
+ <auro-menuoption value="Oranges" id="option-1">Oranges</auro-menuoption>
415
+ <auro-menuoption value="Peaches" id="option-2">Peaches</auro-menuoption>
416
+ <auro-menuoption value="Grapes" id="option-3">Grapes</auro-menuoption>
417
+ <auro-menuoption value="Cherries" id="option-4">Cherries</auro-menuoption>
418
+ <auro-menuoption static nomatch>No matching option</auro-menuoption>
419
+ </auro-menu>
420
+ </auro-combobox>
421
+ <!-- AURO-GENERATED-CONTENT:END -->
422
+ </div>
423
+ <auro-accordion alignRight>
424
+ <span slot="trigger">See code</span>
425
+ <!-- AURO-GENERATED-CONTENT:START (CODE:src=./../apiExamples/checkmark.html) -->
426
+ <!-- The below code snippet is automatically added from ./../apiExamples/checkmark.html -->
427
+ <pre class="language-html"><code class="language-html">&lt;auro-combobox checkmark&gt;
428
+ &lt;span slot="bib.fullscreen.headline"&gt;Bib Header&lt;/span&gt;
429
+ &lt;span slot="label"&gt;Name&lt;/span&gt;
430
+ &lt;auro-menu&gt;
431
+ &lt;auro-menuoption value="Apples" id="option-0"&gt;Apples&lt;/auro-menuoption&gt;
432
+ &lt;auro-menuoption value="Oranges" id="option-1"&gt;Oranges&lt;/auro-menuoption&gt;
433
+ &lt;auro-menuoption value="Peaches" id="option-2"&gt;Peaches&lt;/auro-menuoption&gt;
434
+ &lt;auro-menuoption value="Grapes" id="option-3"&gt;Grapes&lt;/auro-menuoption&gt;
435
+ &lt;auro-menuoption value="Cherries" id="option-4"&gt;Cherries&lt;/auro-menuoption&gt;
436
+ &lt;auro-menuoption static nomatch&gt;No matching option&lt;/auro-menuoption&gt;
437
+ &lt;/auro-menu&gt;
438
+ &lt;/auro-combobox&gt;</code></pre>
439
+ <!-- AURO-GENERATED-CONTENT:END -->
440
+ </auro-accordion>
441
+ <auro-header level="3" id="disableComponent">Disable Component</auro-header>
442
+ <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>
443
+ <p>When the component is disabled and part of a form, the components value is still included in the form submission.</p>
444
+ <p class="note">
445
+ <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.
446
+ </p>
447
+ <div class="exampleWrapper">
448
+ <!-- AURO-GENERATED-CONTENT:START (FILE:src=./../apiExamples/disabled.html) -->
449
+ <!-- The below content is automatically added from ./../apiExamples/disabled.html -->
450
+ <auro-combobox disabled>
451
+ <span slot="bib.fullscreen.headline">Bib Header</span>
452
+ <span slot="label">Name</span>
453
+ <auro-menu>
454
+ <auro-menuoption value="Apples" id="option-0">Apples</auro-menuoption>
455
+ <auro-menuoption value="Oranges" id="option-1">Oranges</auro-menuoption>
456
+ <auro-menuoption value="Peaches" id="option-2">Peaches</auro-menuoption>
457
+ <auro-menuoption value="Grapes" id="option-3">Grapes</auro-menuoption>
458
+ <auro-menuoption value="Cherries" id="option-4">Cherries</auro-menuoption>
459
+ <auro-menuoption static nomatch>No matching option</auro-menuoption>
460
+ </auro-menu>
461
+ </auro-combobox>
462
+ <!-- AURO-GENERATED-CONTENT:END -->
463
+ </div>
464
+ <auro-accordion alignRight>
465
+ <span slot="trigger">See code</span>
466
+ <!-- AURO-GENERATED-CONTENT:START (CODE:src=./../apiExamples/disabled.html) -->
467
+ <!-- The below code snippet is automatically added from ./../apiExamples/disabled.html -->
468
+ <pre class="language-html"><code class="language-html">&lt;auro-combobox disabled&gt;
469
+ &lt;span slot="bib.fullscreen.headline"&gt;Bib Header&lt;/span&gt;
470
+ &lt;span slot="label"&gt;Name&lt;/span&gt;
471
+ &lt;auro-menu&gt;
472
+ &lt;auro-menuoption value="Apples" id="option-0"&gt;Apples&lt;/auro-menuoption&gt;
473
+ &lt;auro-menuoption value="Oranges" id="option-1"&gt;Oranges&lt;/auro-menuoption&gt;
474
+ &lt;auro-menuoption value="Peaches" id="option-2"&gt;Peaches&lt;/auro-menuoption&gt;
475
+ &lt;auro-menuoption value="Grapes" id="option-3"&gt;Grapes&lt;/auro-menuoption&gt;
476
+ &lt;auro-menuoption value="Cherries" id="option-4"&gt;Cherries&lt;/auro-menuoption&gt;
477
+ &lt;auro-menuoption static nomatch&gt;No matching option&lt;/auro-menuoption&gt;
478
+ &lt;/auro-menu&gt;
479
+ &lt;/auro-combobox&gt;</code></pre>
480
+ <!-- AURO-GENERATED-CONTENT:END -->
481
+ </auro-accordion>
482
+ <auro-header level="3" id="disableOptions">Disable Option(s)</auro-header>
483
+ <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>
484
+ <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>
485
+ <p class="note">
486
+ <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>).
487
+ </p>
488
+ <p class="note">
489
+ <strong>Note:</strong> marking all options as disabled is not supported. Disable the component instead.
490
+ </p>
491
+ <div class="exampleWrapper">
492
+ <!-- AURO-GENERATED-CONTENT:START (FILE:src=./../apiExamples/disabled-option.html) -->
493
+ <!-- The below content is automatically added from ./../apiExamples/disabled-option.html -->
60
494
  <auro-combobox>
61
- <span slot="ariaLabel.bib.close">Close combobox</span>
62
- <span slot="ariaLabel.input.clear">Clear All</span>
63
- <span slot="bib.fullscreen.headline">Bib Header</span>
64
- <span slot="label">Name</span>
65
- <auro-menu>
66
- <auro-menuoption value="Apples" id="option-0">Apples</auro-menuoption>
67
- <auro-menuoption value="Oranges" id="option-1">Oranges</auro-menuoption>
68
- <auro-menuoption value="Peaches" id="option-2">Peaches</auro-menuoption>
69
- <auro-menuoption value="Grapes" id="option-3">Grapes</auro-menuoption>
70
- <auro-menuoption value="Cherries" id="option-4">Cherries</auro-menuoption>
71
- <auro-menuoption static nomatch>No matching option</auro-menuoption>
72
- </auro-menu>
73
- </auro-combobox>
74
- ```
75
- <!-- AURO-GENERATED-CONTENT:END -->
76
- </auro-accordion>
77
-
78
- ### Layouts
79
-
80
- #### Emphasized
81
-
82
- Use `layout="emphasized"` to apply the emphasized style to the combobox. This layout is designed for use on light backgrounds.
83
-
495
+ <span slot="bib.fullscreen.headline">Bib Header</span>
496
+ <span slot="label">Name</span>
497
+ <auro-menu>
498
+ <auro-menuoption value="Apples" id="option-0">Apples</auro-menuoption>
499
+ <auro-menuoption value="Oranges" id="option-1" disabled>Oranges</auro-menuoption>
500
+ <auro-menuoption value="Peaches" id="option-2">Peaches</auro-menuoption>
501
+ <auro-menuoption value="Grapes" id="option-3">Grapes</auro-menuoption>
502
+ <auro-menuoption value="Cherries" id="option-4" disabled>Cherries</auro-menuoption>
503
+ <auro-menuoption static nomatch>No matching option</auro-menuoption>
504
+ </auro-menu>
505
+ </auro-combobox>
506
+ <!-- AURO-GENERATED-CONTENT:END -->
507
+ </div>
508
+ <auro-accordion alignRight>
509
+ <span slot="trigger">See code</span>
510
+ <!-- AURO-GENERATED-CONTENT:START (CODE:src=./../apiExamples/disabled-option.html) -->
511
+ <!-- The below code snippet is automatically added from ./../apiExamples/disabled-option.html -->
512
+ <pre class="language-html"><code class="language-html">&lt;auro-combobox&gt;
513
+ &lt;span slot="bib.fullscreen.headline"&gt;Bib Header&lt;/span&gt;
514
+ &lt;span slot="label"&gt;Name&lt;/span&gt;
515
+ &lt;auro-menu&gt;
516
+ &lt;auro-menuoption value="Apples" id="option-0"&gt;Apples&lt;/auro-menuoption&gt;
517
+ &lt;auro-menuoption value="Oranges" id="option-1" disabled&gt;Oranges&lt;/auro-menuoption&gt;
518
+ &lt;auro-menuoption value="Peaches" id="option-2"&gt;Peaches&lt;/auro-menuoption&gt;
519
+ &lt;auro-menuoption value="Grapes" id="option-3"&gt;Grapes&lt;/auro-menuoption&gt;
520
+ &lt;auro-menuoption value="Cherries" id="option-4" disabled&gt;Cherries&lt;/auro-menuoption&gt;
521
+ &lt;auro-menuoption static nomatch&gt;No matching option&lt;/auro-menuoption&gt;
522
+ &lt;/auro-menu&gt;
523
+ &lt;/auro-combobox&gt;</code></pre>
524
+ <!-- AURO-GENERATED-CONTENT:END -->
525
+ </auro-accordion>
526
+ <auro-header level="3" id="requireSelection">Require selection of an option</auro-header>
527
+ <p>Certain use cases may require the guest to make a selection from the component in order to continue the intended work flow (e.g. form submission).</p>
528
+ <p>The validation behavior when the component is marked <code>required</code> depends on the <code>behavior</code> mode:</p>
529
+ <ul>
530
+ <li><strong>Suggestion mode (default):</strong> Any typed input satisfies the <code>required</code> constraint. The user does not need to select a menu option — typing a value is sufficient.</li>
531
+ <li><strong>Filter mode (<code>behavior="filter"</code>):</strong> The user must select an option from the menu. Typed input alone does not satisfy the <code>required</code> constraint.</li>
532
+ </ul>
533
+ <p>When using filter mode and the component is marked required:</p>
534
+ <ol>
535
+ <li>Move focus to the auro-combobox element</li>
536
+ <li>Begin typing into the input to open the bib</li>
537
+ <li>Navigate the list of options</li>
538
+ <li>
539
+ Collapse the bib without making a selection
540
+ <p class="note">
541
+ <p>This will re-render the component in a state reflecting the validation error. To resolve the error, the guest may continue to the following steps.</p>
542
+ </p>
543
+ </li>
544
+ <li>Activate the trigger</li>
545
+ <li>Navigate the list of options marking any option as active</li>
546
+ <li>
547
+ Select the active option
548
+ <p class="note">
549
+ <p>This will re-render the component and the validation error state will be removed.</p>
550
+ </p>
551
+ </li>
552
+ </ol>
553
+ <div class="exampleWrapper">
554
+ <!-- AURO-GENERATED-CONTENT:START (FILE:src=./../apiExamples/required.html) -->
555
+ <!-- The below content is automatically added from ./../apiExamples/required.html -->
556
+ <auro-combobox required>
557
+ <span slot="bib.fullscreen.headline">Bib Header</span>
558
+ <span slot="label">Name</span>
559
+ <auro-menu>
560
+ <auro-menuoption value="Apples" id="option-0">Apples</auro-menuoption>
561
+ <auro-menuoption value="Oranges" id="option-1">Oranges</auro-menuoption>
562
+ <auro-menuoption value="Peaches" id="option-2">Peaches</auro-menuoption>
563
+ <auro-menuoption value="Grapes" id="option-3">Grapes</auro-menuoption>
564
+ <auro-menuoption value="Cherries" id="option-4">Cherries</auro-menuoption>
565
+ <auro-menuoption value="Prefer Alaska" id="option-5">Prefer Alaska</auro-menuoption>
566
+ <auro-menuoption static nomatch>No matching option</auro-menuoption>
567
+ </auro-menu>
568
+ </auro-combobox>
569
+ <!-- AURO-GENERATED-CONTENT:END -->
570
+ </div>
571
+ <auro-accordion alignRight>
572
+ <span slot="trigger">See code</span>
573
+ <!-- AURO-GENERATED-CONTENT:START (CODE:src=./../apiExamples/required.html) -->
574
+ <!-- The below code snippet is automatically added from ./../apiExamples/required.html -->
575
+ <pre class="language-html"><code class="language-html">&lt;auro-combobox required&gt;
576
+ &lt;span slot="bib.fullscreen.headline"&gt;Bib Header&lt;/span&gt;
577
+ &lt;span slot="label"&gt;Name&lt;/span&gt;
578
+ &lt;auro-menu&gt;
579
+ &lt;auro-menuoption value="Apples" id="option-0"&gt;Apples&lt;/auro-menuoption&gt;
580
+ &lt;auro-menuoption value="Oranges" id="option-1"&gt;Oranges&lt;/auro-menuoption&gt;
581
+ &lt;auro-menuoption value="Peaches" id="option-2"&gt;Peaches&lt;/auro-menuoption&gt;
582
+ &lt;auro-menuoption value="Grapes" id="option-3"&gt;Grapes&lt;/auro-menuoption&gt;
583
+ &lt;auro-menuoption value="Cherries" id="option-4"&gt;Cherries&lt;/auro-menuoption&gt;
584
+ &lt;auro-menuoption value="Prefer Alaska" id="option-5"&gt;Prefer Alaska&lt;/auro-menuoption&gt;
585
+ &lt;auro-menuoption static nomatch&gt;No matching option&lt;/auro-menuoption&gt;
586
+ &lt;/auro-menu&gt;
587
+ &lt;/auro-combobox&gt;</code></pre>
588
+ <!-- AURO-GENERATED-CONTENT:END -->
589
+ </auro-accordion>
590
+ <auro-header level="3" id="forceError">Force an error state</auro-header>
591
+ <p>The <code>error</code> attribute can be set on the combobox to force the component into a <code>customError</code> validity state. When defined, the component will render in its error state regardless of the current input or selection.</p>
592
+ <p>The value of the <code>error</code> attribute is used as the validation error message displayed below the input. If the <code>setCustomValidityCustomError</code> property is also defined, its value will be used as the error message instead.</p>
593
+ <p>Setting the <code>error</code> attribute also propagates the error state to the underlying <code>auro-input</code> element. Removing the <code>error</code> attribute clears the forced error state and re-evaluates validation normally.</p>
594
+ <div class="exampleWrapper">
595
+ <!-- AURO-GENERATED-CONTENT:START (FILE:src=./../apiExamples/error.html) -->
596
+ <!-- The below content is automatically added from ./../apiExamples/error.html -->
597
+ <auro-combobox error="Custom error message">
598
+ <span slot="bib.fullscreen.headline">Bib Header</span>
599
+ <span slot="label">Name</span>
600
+ <auro-menu>
601
+ <auro-menuoption value="Apples" id="option-0">Apples</auro-menuoption>
602
+ <auro-menuoption value="Oranges" id="option-1">Oranges</auro-menuoption>
603
+ <auro-menuoption value="Peaches" id="option-2">Peaches</auro-menuoption>
604
+ <auro-menuoption value="Grapes" id="option-3">Grapes</auro-menuoption>
605
+ <auro-menuoption value="Cherries" id="option-4">Cherries</auro-menuoption>
606
+ <auro-menuoption value="Prefer Alaska" id="option-5">Prefer Alaska</auro-menuoption>
607
+ <auro-menuoption static nomatch>No matching option</auro-menuoption>
608
+ </auro-menu>
609
+ </auro-combobox>
610
+ <!-- AURO-GENERATED-CONTENT:END -->
611
+ </div>
612
+ <auro-accordion alignRight>
613
+ <span slot="trigger">See code</span>
614
+ <!-- AURO-GENERATED-CONTENT:START (CODE:src=./../apiExamples/error.html) -->
615
+ <!-- The below code snippet is automatically added from ./../apiExamples/error.html -->
616
+ <pre class="language-html"><code class="language-html">&lt;auro-combobox error="Custom error message"&gt;
617
+ &lt;span slot="bib.fullscreen.headline"&gt;Bib Header&lt;/span&gt;
618
+ &lt;span slot="label"&gt;Name&lt;/span&gt;
619
+ &lt;auro-menu&gt;
620
+ &lt;auro-menuoption value="Apples" id="option-0"&gt;Apples&lt;/auro-menuoption&gt;
621
+ &lt;auro-menuoption value="Oranges" id="option-1"&gt;Oranges&lt;/auro-menuoption&gt;
622
+ &lt;auro-menuoption value="Peaches" id="option-2"&gt;Peaches&lt;/auro-menuoption&gt;
623
+ &lt;auro-menuoption value="Grapes" id="option-3"&gt;Grapes&lt;/auro-menuoption&gt;
624
+ &lt;auro-menuoption value="Cherries" id="option-4"&gt;Cherries&lt;/auro-menuoption&gt;
625
+ &lt;auro-menuoption value="Prefer Alaska" id="option-5"&gt;Prefer Alaska&lt;/auro-menuoption&gt;
626
+ &lt;auro-menuoption static nomatch&gt;No matching option&lt;/auro-menuoption&gt;
627
+ &lt;/auro-menu&gt;
628
+ &lt;/auro-combobox&gt;</code></pre>
629
+ <!-- AURO-GENERATED-CONTENT:END -->
630
+ </auro-accordion>
631
+ <auro-header level="3" id="customValidation">Custom validation messages</auro-header>
632
+ <p>The combobox provides several properties to customize the error messages displayed for different validation states. When a validation error occurs, the component checks for a state-specific message first, then falls back to the general <code>setCustomValidity</code> message.</p>
633
+ <ul>
634
+ <li><strong><code>setCustomValidity</code></strong> — Sets a fallback error message displayed for any validation error. This message is used when no state-specific message is defined.</li>
635
+ <li><strong><code>setCustomValidityCustomError</code></strong> — Displayed when the <code>error</code> attribute is set on the component, putting it into a <code>customError</code> validity state. If not defined, the value of the <code>error</code> attribute is used as the message.</li>
636
+ <li><strong><code>setCustomValidityValueMissing</code></strong> — Displayed when the component is <code>required</code> and the user leaves it empty (<code>valueMissing</code> validity state).</li>
637
+ <li><strong><code>setCustomValidityValueMissingFilter</code></strong> — Displayed when <code>behavior="filter"</code> and the user types into the input but does not select a menu option. This is a more specific <code>valueMissing</code> state that indicates the user needs to choose from the available options, not just type a value.</li>
638
+ </ul>
639
+ <p>The priority order for error messages is: state-specific property &gt; <code>setCustomValidity</code> &gt; default browser message. Default messages are provided by the browser and are pre-localized to the language the browser is running in.</p>
84
640
  <div class="exampleWrapper">
85
- <!-- AURO-GENERATED-CONTENT:START (FILE:src=./../apiExamples/emphasized/basic.html) -->
86
- <!-- The below content is automatically added from ./../apiExamples/emphasized/basic.html -->
87
- <auro-combobox layout="emphasized" value="Oranges" shape="pill" size="xl" placeholder="Placeholder content" required style="width: 249px;">
88
- <span slot="ariaLabel.bib.close">Close combobox</span>
89
- <span slot="ariaLabel.input.clear">Clear All</span>
90
- <span slot="bib.fullscreen.headline">Bib Header</span>
91
- <span slot="label">Name</span>
92
- <auro-menu>
93
- <auro-menuoption value="Apples" id="option-0">Apples</auro-menuoption>
94
- <auro-menuoption value="Oranges" id="option-1">Oranges</auro-menuoption>
95
- <auro-menuoption value="Peaches" id="option-2">Peaches</auro-menuoption>
96
- <auro-menuoption value="Grapes" id="option-3">Grapes</auro-menuoption>
97
- <auro-menuoption value="Cherries" id="option-4">Cherries</auro-menuoption>
98
- <auro-menuoption static nomatch>No matching option</auro-menuoption>
99
- </auro-menu>
100
- <span slot="helpText">
101
- Help text - Lorem ipsum solar lorem ipsum solar
102
- </span>
103
- <span slot="displayValue">
104
- <div>
105
- <div class="mainText">Apples</div>
106
- <div class="subText">Fruit</div>
107
- </div>
108
- </span>
109
- </auro-combobox>
110
- <!-- AURO-GENERATED-CONTENT:END -->
111
- </div>
641
+ <!-- AURO-GENERATED-CONTENT:START (FILE:src=./../apiExamples/custom-validity-message.html) -->
642
+ <!-- The below content is automatically added from ./../apiExamples/custom-validity-message.html -->
643
+ <auro-combobox required setCustomValidityValueMissing="Custom value missing message.">
644
+ <span slot="bib.fullscreen.headline">Bib Header</span>
645
+ <span slot="label">Name</span>
646
+ <auro-menu>
647
+ <auro-menuoption value="Apples" id="option-0">Apples</auro-menuoption>
648
+ <auro-menuoption value="Oranges" id="option-1">Oranges</auro-menuoption>
649
+ <auro-menuoption value="Peaches" id="option-2">Peaches</auro-menuoption>
650
+ <auro-menuoption value="Grapes" id="option-3">Grapes</auro-menuoption>
651
+ <auro-menuoption value="Cherries" id="option-4">Cherries</auro-menuoption>
652
+ <auro-menuoption value="Prefer Alaska" id="option-5">Prefer Alaska</auro-menuoption>
653
+ <auro-menuoption static nomatch>No matching option</auro-menuoption>
654
+ </auro-menu>
655
+ </auro-combobox>
656
+ <!-- AURO-GENERATED-CONTENT:END -->
657
+ </div>
112
658
  <auro-accordion alignRight>
113
- <span slot="trigger">See code</span>
114
- <!-- AURO-GENERATED-CONTENT:START (CODE:src=./../apiExamples/emphasized/basic.html) -->
115
- <!-- The below code snippet is automatically added from ./../apiExamples/emphasized/basic.html -->
116
-
117
- ```html
118
- <auro-combobox layout="emphasized" value="Oranges" shape="pill" size="xl" placeholder="Placeholder content" required style="width: 249px;">
119
- <span slot="ariaLabel.bib.close">Close combobox</span>
120
- <span slot="ariaLabel.input.clear">Clear All</span>
121
- <span slot="bib.fullscreen.headline">Bib Header</span>
122
- <span slot="label">Name</span>
123
- <auro-menu>
124
- <auro-menuoption value="Apples" id="option-0">Apples</auro-menuoption>
125
- <auro-menuoption value="Oranges" id="option-1">Oranges</auro-menuoption>
126
- <auro-menuoption value="Peaches" id="option-2">Peaches</auro-menuoption>
127
- <auro-menuoption value="Grapes" id="option-3">Grapes</auro-menuoption>
128
- <auro-menuoption value="Cherries" id="option-4">Cherries</auro-menuoption>
129
- <auro-menuoption static nomatch>No matching option</auro-menuoption>
130
- </auro-menu>
131
- <span slot="helpText">
132
- Help text - Lorem ipsum solar lorem ipsum solar
133
- </span>
134
- <span slot="displayValue">
135
- <div>
136
- <div class="mainText">Apples</div>
137
- <div class="subText">Fruit</div>
138
- </div>
139
- </span>
140
- </auro-combobox>
141
- ```
142
- <!-- AURO-GENERATED-CONTENT:END -->
143
- </auro-accordion>
144
-
145
- #### Snowflake
146
-
147
- Use `layout="snowflake"`, with `shape="snowflake"` and `appearance="inverse"` to apply the snowflake style to the combobox. This layout is designed for use on dark backgrounds.
148
-
659
+ <span slot="trigger">See code</span>
660
+ <!-- AURO-GENERATED-CONTENT:START (CODE:src=./../apiExamples/custom-validity-message.html) -->
661
+ <!-- The below code snippet is automatically added from ./../apiExamples/custom-validity-message.html -->
662
+ <pre class="language-html"><code class="language-html">&lt;auro-combobox required setCustomValidityValueMissing="Custom value missing message."&gt;
663
+ &lt;span slot="bib.fullscreen.headline"&gt;Bib Header&lt;/span&gt;
664
+ &lt;span slot="label"&gt;Name&lt;/span&gt;
665
+ &lt;auro-menu&gt;
666
+ &lt;auro-menuoption value="Apples" id="option-0"&gt;Apples&lt;/auro-menuoption&gt;
667
+ &lt;auro-menuoption value="Oranges" id="option-1"&gt;Oranges&lt;/auro-menuoption&gt;
668
+ &lt;auro-menuoption value="Peaches" id="option-2"&gt;Peaches&lt;/auro-menuoption&gt;
669
+ &lt;auro-menuoption value="Grapes" id="option-3"&gt;Grapes&lt;/auro-menuoption&gt;
670
+ &lt;auro-menuoption value="Cherries" id="option-4"&gt;Cherries&lt;/auro-menuoption&gt;
671
+ &lt;auro-menuoption value="Prefer Alaska" id="option-5"&gt;Prefer Alaska&lt;/auro-menuoption&gt;
672
+ &lt;auro-menuoption static nomatch&gt;No matching option&lt;/auro-menuoption&gt;
673
+ &lt;/auro-menu&gt;
674
+ &lt;/auro-combobox&gt;</code></pre>
675
+ <!-- AURO-GENERATED-CONTENT:END -->
676
+ </auro-accordion>
677
+ <auro-header level="3" id="displayValue">Custom display value</auro-header>
678
+ <p>Menu options may include a <code>displayValue</code> slot to define custom HTML content that is shown in the trigger input when that option is selected and the input is not focused. This allows the trigger to render different content for the selected value than what is displayed for the option in the menu.</p>
679
+ <p>When the user focuses the input to type, the custom display value is hidden and the standard text input is shown. When focus leaves the input, the custom display value reappears.</p>
680
+ <p>To define a custom display value, add a <code>slot="displayValue"</code> element inside the <code>auro-menuoption</code>:</p>
681
+ <pre class="language-html">
682
+ <code class="language-html">
683
+ &lt;auro-menuoption value="SEA"&gt;
684
+ Seattle (SEA)
685
+ &lt;span slot="displayValue"&gt;
686
+ SEA
687
+ &lt;/span&gt;
688
+ &lt;/auro-menuoption&gt;
689
+ </code>
690
+ </pre>
691
+ <p class="note">
692
+ <strong>Note:</strong> The <code>displayValue</code> slot only works with the <code>snowflake</code> and <code>emphasized</code> layouts. By default, the display value masks both the input and label. Set the <code>dvInputOnly</code> attribute on the combobox to only mask the input, leaving the label visible.
693
+ </p>
149
694
  <div class="exampleWrapper--ondark">
150
- <!-- AURO-GENERATED-CONTENT:START (FILE:src=./../apiExamples/snowflake/basic.html) -->
151
- <!-- The below content is automatically added from ./../apiExamples/snowflake/basic.html -->
152
- <auro-combobox layout="snowflake" shape="snowflake" size="lg" placeholder="Placeholder content" required appearance="inverse" style="width: 249px;">
153
- <span slot="ariaLabel.bib.close">Close combobox</span>
154
- <span slot="ariaLabel.input.clear">Clear All</span>
155
- <span slot="bib.fullscreen.headline">Bib Header</span>
156
- <span slot="label">Name</span>
157
- <auro-menu>
158
- <auro-menuoption value="Apples" id="option-0">Apples</auro-menuoption>
159
- <auro-menuoption value="Oranges" id="option-1">Oranges</auro-menuoption>
160
- <auro-menuoption value="Peaches" id="option-2">Peaches</auro-menuoption>
161
- <auro-menuoption value="Grapes" id="option-3">Grapes</auro-menuoption>
162
- <auro-menuoption value="Cherries" id="option-4">Cherries</auro-menuoption>
163
- <auro-menuoption static nomatch>No matching option</auro-menuoption>
164
- </auro-menu>
165
- <span slot="helpText">
166
- Help text - Lorem ipsum solar lorem ipsum solar
167
- </span>
168
- </auro-combobox>
169
- <!-- AURO-GENERATED-CONTENT:END -->
170
- </div>
695
+ <!-- AURO-GENERATED-CONTENT:START (FILE:src=./../apiExamples/display-value.html) -->
696
+ <!-- The below content is automatically added from ./../apiExamples/display-value.html -->
697
+ <auro-combobox layout="snowflake" shape="snowflake" size="xl" appearance="inverse" value="Apples">
698
+ <span slot="bib.fullscreen.headline">Bib Header</span>
699
+ <span slot="label">Name</span>
700
+ <auro-menu>
701
+ <auro-menuoption value="Apples" id="option-0">
702
+ Apples
703
+ <span slot="displayValue">🍎</span>
704
+ </auro-menuoption>
705
+ <auro-menuoption value="Oranges" id="option-1">
706
+ Oranges
707
+ <span slot="displayValue">🍊</span>
708
+ </auro-menuoption>
709
+ <auro-menuoption value="Peaches" id="option-2">
710
+ Peaches
711
+ <span slot="displayValue">🍑</span>
712
+ </auro-menuoption>
713
+ <auro-menuoption value="Grapes" id="option-3">
714
+ Grapes
715
+ <span slot="displayValue">🍇</span>
716
+ </auro-menuoption>
717
+ <auro-menuoption value="Cherries" id="option-4">
718
+ Cherries
719
+ <span slot="displayValue">🍒</span>
720
+ </auro-menuoption>
721
+ <auro-menuoption static nomatch>No matching option</auro-menuoption>
722
+ </auro-menu>
723
+ </auro-combobox>
724
+ <!-- AURO-GENERATED-CONTENT:END -->
725
+ </div>
726
+ <auro-accordion alignRight>
727
+ <span slot="trigger">See code</span>
728
+ <!-- AURO-GENERATED-CONTENT:START (CODE:src=./../apiExamples/display-value.html) -->
729
+ <!-- The below code snippet is automatically added from ./../apiExamples/display-value.html -->
730
+ <pre class="language-html"><code class="language-html">&lt;auro-combobox layout="snowflake" shape="snowflake" size="xl" appearance="inverse" value="Apples"&gt;
731
+ &lt;span slot="bib.fullscreen.headline"&gt;Bib Header&lt;/span&gt;
732
+ &lt;span slot="label"&gt;Name&lt;/span&gt;
733
+ &lt;auro-menu&gt;
734
+ &lt;auro-menuoption value="Apples" id="option-0"&gt;
735
+ Apples
736
+ &lt;span slot="displayValue"&gt;🍎&lt;/span&gt;
737
+ &lt;/auro-menuoption&gt;
738
+ &lt;auro-menuoption value="Oranges" id="option-1"&gt;
739
+ Oranges
740
+ &lt;span slot="displayValue"&gt;🍊&lt;/span&gt;
741
+ &lt;/auro-menuoption&gt;
742
+ &lt;auro-menuoption value="Peaches" id="option-2"&gt;
743
+ Peaches
744
+ &lt;span slot="displayValue"&gt;🍑&lt;/span&gt;
745
+ &lt;/auro-menuoption&gt;
746
+ &lt;auro-menuoption value="Grapes" id="option-3"&gt;
747
+ Grapes
748
+ &lt;span slot="displayValue"&gt;🍇&lt;/span&gt;
749
+ &lt;/auro-menuoption&gt;
750
+ &lt;auro-menuoption value="Cherries" id="option-4"&gt;
751
+ Cherries
752
+ &lt;span slot="displayValue"&gt;🍒&lt;/span&gt;
753
+ &lt;/auro-menuoption&gt;
754
+ &lt;auro-menuoption static nomatch&gt;No matching option&lt;/auro-menuoption&gt;
755
+ &lt;/auro-menu&gt;
756
+ &lt;/auro-combobox&gt;</code></pre>
757
+ <!-- AURO-GENERATED-CONTENT:END -->
758
+ </auro-accordion>
759
+ <auro-header level="3" id="dynamicMenu">Dynamically generated menu options</auro-header>
760
+ <p>The combobox supports dynamically populating menu options based on what the user types. This is useful for API-driven scenarios such as airport search, address lookup, or any case where the full set of options is not known ahead of time.</p>
761
+ <ol>
762
+ <li>Listen for the <code>inputValue</code> event on the combobox to receive the current typed value</li>
763
+ <li>Set the <code>loading</code> attribute on the <code>auro-menu</code> while the API request is in progress. This keeps the bib open and displays a loading indicator if one is defined. To display a loading indicator, the menu must contain slotted content for <code>loadingText</code> and/or <code>loadingIcon</code>:
764
+ <pre class="language-html">
765
+ <code class="language-html">
766
+ &lt;auro-menu loading&gt;
767
+ &lt;span slot="loadingText"&gt;Searching...&lt;/span&gt;
768
+ &lt;span slot="loadingIcon"&gt;
769
+ &lt;auro-loader orbit sm&gt;&lt;/auro-loader&gt;
770
+ &lt;/span&gt;
771
+ &lt;/auro-menu&gt;
772
+ </code>
773
+ </pre>
774
+ <p>If neither slot is provided, the bib will be hidden while loading and will reopen automatically when the <code>loading</code> attribute is removed and options are available.</p>
775
+ </p>
776
+ </li>
777
+ <li>When the API response is received, replace the <code>auro-menuoption</code> elements inside the menu with the new results and remove the <code>loading</code> attribute</li>
778
+ </ol>
779
+ <p class="note">
780
+ <strong>Note:</strong> When using dynamically generated options, set the <code>noFilter</code> attribute on the combobox so the component does not apply its own client-side filtering on top of the server-provided results.
781
+ </p>
782
+ <auro-header level="3" id="bibPlacement">Set bib placement</auro-header>
783
+ <p>The <code>placement</code> attribute controls where the bib appears relative to the trigger. The default placement is <code>bottom-start</code>.</p>
784
+ <p>Supported values:</p>
785
+ <ul>
786
+ <li><code>top</code>, <code>top-start</code>, <code>top-end</code></li>
787
+ <li><code>right</code>, <code>right-start</code>, <code>right-end</code></li>
788
+ <li><code>bottom</code>, <code>bottom-start</code>, <code>bottom-end</code></li>
789
+ <li><code>left</code>, <code>left-start</code>, <code>left-end</code></li>
790
+ </ul>
791
+ <p>When the <code>autoPlacement</code> attribute is set, the bib will automatically calculate the best position to appear based on available viewport space, overriding the <code>placement</code> value.</p>
792
+ <div class="exampleWrapper">
793
+ <!-- AURO-GENERATED-CONTENT:START (FILE:src=./../apiExamples/placement.html) -->
794
+ <!-- The below content is automatically added from ./../apiExamples/placement.html -->
795
+ <auro-combobox placement="top-start">
796
+ <span slot="bib.fullscreen.headline">Bib Header</span>
797
+ <span slot="label">Name</span>
798
+ <span slot="helpText">Bib placed above the trigger</span>
799
+ <auro-menu>
800
+ <auro-menuoption value="Apples" id="option-0">Apples</auro-menuoption>
801
+ <auro-menuoption value="Oranges" id="option-1">Oranges</auro-menuoption>
802
+ <auro-menuoption value="Peaches" id="option-2">Peaches</auro-menuoption>
803
+ <auro-menuoption value="Grapes" id="option-3">Grapes</auro-menuoption>
804
+ <auro-menuoption value="Cherries" id="option-4">Cherries</auro-menuoption>
805
+ <auro-menuoption static nomatch>No matching option</auro-menuoption>
806
+ </auro-menu>
807
+ </auro-combobox>
808
+ <!-- AURO-GENERATED-CONTENT:END -->
809
+ </div>
810
+ <auro-accordion alignRight>
811
+ <span slot="trigger">See code</span>
812
+ <!-- AURO-GENERATED-CONTENT:START (CODE:src=./../apiExamples/placement.html) -->
813
+ <!-- The below code snippet is automatically added from ./../apiExamples/placement.html -->
814
+ <pre class="language-html"><code class="language-html">&lt;auro-combobox placement="top-start"&gt;
815
+ &lt;span slot="bib.fullscreen.headline"&gt;Bib Header&lt;/span&gt;
816
+ &lt;span slot="label"&gt;Name&lt;/span&gt;
817
+ &lt;span slot="helpText"&gt;Bib placed above the trigger&lt;/span&gt;
818
+ &lt;auro-menu&gt;
819
+ &lt;auro-menuoption value="Apples" id="option-0"&gt;Apples&lt;/auro-menuoption&gt;
820
+ &lt;auro-menuoption value="Oranges" id="option-1"&gt;Oranges&lt;/auro-menuoption&gt;
821
+ &lt;auro-menuoption value="Peaches" id="option-2"&gt;Peaches&lt;/auro-menuoption&gt;
822
+ &lt;auro-menuoption value="Grapes" id="option-3"&gt;Grapes&lt;/auro-menuoption&gt;
823
+ &lt;auro-menuoption value="Cherries" id="option-4"&gt;Cherries&lt;/auro-menuoption&gt;
824
+ &lt;auro-menuoption static nomatch&gt;No matching option&lt;/auro-menuoption&gt;
825
+ &lt;/auro-menu&gt;
826
+ &lt;/auro-combobox&gt;</code></pre>
827
+ <!-- AURO-GENERATED-CONTENT:END -->
828
+ </auro-accordion>
829
+ <auro-header level="3" id="noFlip">Prevent bib from flipping position</auro-header>
830
+ <p>The bib defaults to <code>bottom-start</code> placement, rendering below and aligned to the start of the trigger. When there is not enough space in the viewport below the trigger, the bib will automatically flip to appear above it. Setting the <code>noFlip</code> attribute on the combobox prevents this behavior, keeping the bib anchored to its configured <code>placement</code> regardless of available space.</p>
831
+ <div class="exampleWrapper">
832
+ <!-- AURO-GENERATED-CONTENT:START (FILE:src=./../apiExamples/noflip.html) -->
833
+ <!-- The below content is automatically added from ./../apiExamples/noflip.html -->
834
+ <auro-combobox noFlip>
835
+ <span slot="bib.fullscreen.headline">Bib Header</span>
836
+ <span slot="label">Name</span>
837
+ <span slot="helpText">Bib will not flip position</span>
838
+ <auro-menu>
839
+ <auro-menuoption value="Apples" id="option-0">Apples</auro-menuoption>
840
+ <auro-menuoption value="Oranges" id="option-1">Oranges</auro-menuoption>
841
+ <auro-menuoption value="Peaches" id="option-2">Peaches</auro-menuoption>
842
+ <auro-menuoption value="Grapes" id="option-3">Grapes</auro-menuoption>
843
+ <auro-menuoption value="Cherries" id="option-4">Cherries</auro-menuoption>
844
+ <auro-menuoption static nomatch>No matching option</auro-menuoption>
845
+ </auro-menu>
846
+ </auro-combobox>
847
+ <!-- AURO-GENERATED-CONTENT:END -->
848
+ </div>
171
849
  <auro-accordion alignRight>
172
- <span slot="trigger">See code</span>
173
- <!-- AURO-GENERATED-CONTENT:START (CODE:src=./../apiExamples/snowflake/basic.html) -->
174
- <!-- The below code snippet is automatically added from ./../apiExamples/snowflake/basic.html -->
175
-
176
- ```html
177
- <auro-combobox layout="snowflake" shape="snowflake" size="lg" placeholder="Placeholder content" required appearance="inverse" style="width: 249px;">
178
- <span slot="ariaLabel.bib.close">Close combobox</span>
179
- <span slot="ariaLabel.input.clear">Clear All</span>
180
- <span slot="bib.fullscreen.headline">Bib Header</span>
181
- <span slot="label">Name</span>
182
- <auro-menu>
183
- <auro-menuoption value="Apples" id="option-0">Apples</auro-menuoption>
184
- <auro-menuoption value="Oranges" id="option-1">Oranges</auro-menuoption>
185
- <auro-menuoption value="Peaches" id="option-2">Peaches</auro-menuoption>
186
- <auro-menuoption value="Grapes" id="option-3">Grapes</auro-menuoption>
187
- <auro-menuoption value="Cherries" id="option-4">Cherries</auro-menuoption>
188
- <auro-menuoption static nomatch>No matching option</auro-menuoption>
189
- </auro-menu>
190
- <span slot="helpText">
191
- Help text - Lorem ipsum solar lorem ipsum solar
192
- </span>
193
- </auro-combobox>
194
- ```
195
- <!-- AURO-GENERATED-CONTENT:END -->
850
+ <span slot="trigger">See code</span>
851
+ <!-- AURO-GENERATED-CONTENT:START (CODE:src=./../apiExamples/noflip.html) -->
852
+ <!-- The below code snippet is automatically added from ./../apiExamples/noflip.html -->
853
+ <pre class="language-html"><code class="language-html">&lt;auro-combobox noFlip&gt;
854
+ &lt;span slot="bib.fullscreen.headline"&gt;Bib Header&lt;/span&gt;
855
+ &lt;span slot="label"&gt;Name&lt;/span&gt;
856
+ &lt;span slot="helpText"&gt;Bib will not flip position&lt;/span&gt;
857
+ &lt;auro-menu&gt;
858
+ &lt;auro-menuoption value="Apples" id="option-0"&gt;Apples&lt;/auro-menuoption&gt;
859
+ &lt;auro-menuoption value="Oranges" id="option-1"&gt;Oranges&lt;/auro-menuoption&gt;
860
+ &lt;auro-menuoption value="Peaches" id="option-2"&gt;Peaches&lt;/auro-menuoption&gt;
861
+ &lt;auro-menuoption value="Grapes" id="option-3"&gt;Grapes&lt;/auro-menuoption&gt;
862
+ &lt;auro-menuoption value="Cherries" id="option-4"&gt;Cherries&lt;/auro-menuoption&gt;
863
+ &lt;auro-menuoption static nomatch&gt;No matching option&lt;/auro-menuoption&gt;
864
+ &lt;/auro-menu&gt;
865
+ &lt;/auro-combobox&gt;</code></pre>
866
+ <!-- AURO-GENERATED-CONTENT:END -->
196
867
  </auro-accordion>
868
+ <!-- AURO-GENERATED-CONTENT:END -->
869
+ </section>
870
+ </div>
871
+ </div>
872
+ </div>