@aurodesignsystem-dev/auro-formkit 0.0.0-pr1581.0 → 0.0.0-pr1582.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 (72) 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/customize.min.js +15 -6
  7. package/components/combobox/demo/getting-started.min.js +15 -6
  8. package/components/combobox/demo/index.min.js +15 -6
  9. package/components/combobox/dist/index.js +15 -6
  10. package/components/combobox/dist/registered.js +15 -6
  11. package/components/counter/demo/customize.min.js +2 -2
  12. package/components/counter/demo/index.min.js +2 -2
  13. package/components/counter/dist/index.js +2 -2
  14. package/components/counter/dist/registered.js +2 -2
  15. package/components/datepicker/demo/customize.min.js +15 -6
  16. package/components/datepicker/demo/index.min.js +15 -6
  17. package/components/datepicker/dist/index.js +15 -6
  18. package/components/datepicker/dist/registered.js +15 -6
  19. package/components/dropdown/demo/customize.min.js +1 -1
  20. package/components/dropdown/demo/getting-started.min.js +14 -5
  21. package/components/dropdown/demo/index.min.js +1 -1
  22. package/components/dropdown/dist/index.js +1 -1
  23. package/components/dropdown/dist/registered.js +1 -1
  24. package/components/form/demo/customize.min.js +49 -22
  25. package/components/form/demo/getting-started.min.js +49 -22
  26. package/components/form/demo/index.min.js +49 -22
  27. package/components/form/demo/registerDemoDeps.min.js +49 -22
  28. package/components/input/demo/api.md +1 -1
  29. package/components/input/demo/customize.md +1 -1
  30. package/components/input/demo/customize.min.js +13 -4
  31. package/components/input/demo/getting-started.min.js +13 -4
  32. package/components/input/demo/index.min.js +13 -4
  33. package/components/input/dist/base-input.d.ts +2 -0
  34. package/components/input/dist/index.js +13 -4
  35. package/components/input/dist/registered.js +13 -4
  36. package/components/radio/demo/customize.min.js +1 -1
  37. package/components/radio/demo/getting-started.min.js +1 -1
  38. package/components/radio/demo/index.min.js +1 -1
  39. package/components/radio/dist/index.js +1 -1
  40. package/components/radio/dist/registered.js +1 -1
  41. package/components/select/demo/customize.min.js +2 -2
  42. package/components/select/demo/getting-started.min.js +2 -2
  43. package/components/select/demo/index.min.js +2 -2
  44. package/components/select/dist/index.js +2 -2
  45. package/components/select/dist/registered.js +2 -2
  46. package/custom-elements.json +4 -4
  47. package/package.json +3 -6
  48. package/ai/README.md +0 -142
  49. package/ai/_a11y-baseline.md +0 -27
  50. package/ai/_authored/_defaults.overlay.yaml +0 -81
  51. package/ai/_authored/auro-checkbox.overlay.yaml +0 -22
  52. package/ai/_authored/auro-combobox.overlay.yaml +0 -37
  53. package/ai/_authored/auro-counter.overlay.yaml +0 -23
  54. package/ai/_authored/auro-datepicker.overlay.yaml +0 -44
  55. package/ai/_authored/auro-dropdown.overlay.yaml +0 -35
  56. package/ai/_authored/auro-form.overlay.yaml +0 -12
  57. package/ai/_authored/auro-input.overlay.yaml +0 -33
  58. package/ai/_authored/auro-menu.overlay.yaml +0 -21
  59. package/ai/_authored/auro-radio.overlay.yaml +0 -19
  60. package/ai/_authored/auro-select.overlay.yaml +0 -37
  61. package/ai/_prompt-template.md +0 -33
  62. package/ai/llms.txt +0 -26
  63. package/ai/specs/auro-checkbox.spec.yaml +0 -181
  64. package/ai/specs/auro-combobox.spec.yaml +0 -349
  65. package/ai/specs/auro-counter.spec.yaml +0 -215
  66. package/ai/specs/auro-datepicker.spec.yaml +0 -395
  67. package/ai/specs/auro-dropdown.spec.yaml +0 -295
  68. package/ai/specs/auro-form.spec.yaml +0 -148
  69. package/ai/specs/auro-input.spec.yaml +0 -392
  70. package/ai/specs/auro-menu.spec.yaml +0 -213
  71. package/ai/specs/auro-radio.spec.yaml +0 -184
  72. package/ai/specs/auro-select.spec.yaml +0 -324
package/ai/llms.txt DELETED
@@ -1,26 +0,0 @@
1
- # Auro FormKit — AI Implementation Standard
2
-
3
- > Reimplement Auro form components in plain HTML/CSS/JS using Auro design
4
- > tokens, for teams that cannot consume the web components. Specs are generated
5
- > from source on every release, so they never drift from the real component.
6
-
7
- ## Non-negotiable rules
8
- - Style ONLY with Auro `--ds-*` tokens via `var(--ds-x, fallback)`; never bare hex/px.
9
- - Every control needs an associated `<label>` and full ARIA wiring.
10
- - `tier: wc-only` features are NOT reproducible in plain HTML — report, never fake.
11
-
12
- ## Component specs
13
- - [auro-checkbox](https://cdn.jsdelivr.net/npm/@aurodesignsystem/auro-formkit@latest/ai/specs/auro-checkbox.spec.yaml): Checkbox for selecting one or more options; also composes into a checkbox-group for grouped selection. Native equivalent is <input type="checkbox"> + <label>.
14
- - [auro-combobox](https://cdn.jsdelivr.net/npm/@aurodesignsystem/auro-formkit@latest/ai/specs/auro-combobox.spec.yaml): Combobox — a text input that filters a listbox of options. The web platform has no full equivalent; the closest is <input list> + <datalist>, which cannot style the option panel or render rich option content.
15
- - [auro-counter](https://cdn.jsdelivr.net/npm/@aurodesignsystem/auro-formkit@latest/ai/specs/auro-counter.spec.yaml): Numeric stepper with increment/decrement buttons; composes into a counter-group. Native closest is <input type="number"> or a role="spinbutton" with real +/- buttons.
16
- - [auro-datepicker](https://cdn.jsdelivr.net/npm/@aurodesignsystem/auro-formkit@latest/ai/specs/auro-datepicker.spec.yaml): Date / date-range picker — a text input plus a calendar popup. Native closest is <input type="date"> (single date only; no range or blackout dates, and the browser's picker cannot be styled with Auro tokens).
17
- - [auro-dropdown](https://cdn.jsdelivr.net/npm/@aurodesignsystem/auro-formkit@latest/ai/specs/auro-dropdown.spec.yaml): Generic disclosure — a trigger that toggles a bib/panel of content. Native closest is <details>/<summary> or a <button> with aria-expanded controlling a region.
18
- - [auro-form](https://cdn.jsdelivr.net/npm/@aurodesignsystem/auro-formkit@latest/ai/specs/auro-form.spec.yaml): Form coordinator that validates and manages child fields. Native equivalent is the <form> element with native submit/reset and constraint validation.
19
- - [auro-input](https://cdn.jsdelivr.net/npm/@aurodesignsystem/auro-formkit@latest/ai/specs/auro-input.spec.yaml): Single-line text input (types text, email, password, number) with built-in validation, required/error states, and a bordered theme.
20
- - [auro-menu](https://cdn.jsdelivr.net/npm/@aurodesignsystem/auro-formkit@latest/ai/specs/auro-menu.spec.yaml): Selectable option list; native closest is a <ul role="listbox"> with role="option" items, or the <option>s inside a native <select>.
21
- - [auro-radio](https://cdn.jsdelivr.net/npm/@aurodesignsystem/auro-formkit@latest/ai/specs/auro-radio.spec.yaml): Radio button for selecting exactly one option from a set; composes into a radio-group. Native equivalent is a set of <input type="radio"> sharing a name.
22
- - [auro-select](https://cdn.jsdelivr.net/npm/@aurodesignsystem/auro-formkit@latest/ai/specs/auro-select.spec.yaml): Select control (wraps auro-dropdown + auro-menu). Native equivalent is a <select> with <option>/<optgroup>; the option panel cannot be styled natively.
23
-
24
- ## Global contracts
25
- - [Prompt template](https://cdn.jsdelivr.net/npm/@aurodesignsystem/auro-formkit@latest/ai/_prompt-template.md)
26
- - [Accessibility baseline](https://cdn.jsdelivr.net/npm/@aurodesignsystem/auro-formkit@latest/ai/_a11y-baseline.md)
@@ -1,181 +0,0 @@
1
- # GENERATED by packages/build-tools/src/aiSpecGenerator.mjs — do not edit by hand.
2
- # Authored inputs live in ai/_authored/auro-checkbox.overlay.yaml
3
- component: auro-checkbox
4
- version: 0.0.0
5
- summary: Checkbox for selecting one or more options; also composes into a checkbox-group for grouped selection. Native equivalent is <input type="checkbox"> + <label>.
6
- generatedFrom:
7
- cem: custom-elements.json#auro-checkbox
8
- cssRecipe: components/checkbox/demo/css-only.md
9
- overlay: ai/_authored/auro-checkbox.overlay.yaml
10
- sourceOfTruth:
11
- component: components/checkbox/src/auro-checkbox.js
12
- visual:
13
- tokensImport: ./node_modules/@aurodesignsystem/design-tokens/dist/tokens/CSSCustomProperties.css
14
- rule: NEVER hardcode a hex, px, rem, or font-family value. Every visual value MUST be an Auro --ds-* token via var(--ds-token, fallback). Literal values are allowed only as the second argument (fallback) of var().
15
- css: |-
16
- @import "./node_modules/@aurodesignsystem/design-tokens/dist/tokens/CSSCustomProperties.css";
17
-
18
- .checkbox {
19
- appearance: none;
20
- -webkit-appearance: none;
21
- width: var(--ds-size-300, 1.5rem);
22
- height: var(--ds-size-300, 1.5rem);
23
- border: 1px solid var(--ds-color-border-ui-default, #6e767f);
24
- border-radius: var(--ds-border-radius, 4px);
25
- background-color: var(--ds-color-container-primary-default, #ffffff);
26
- cursor: pointer;
27
- vertical-align: middle;
28
- }
29
-
30
- .checkbox:checked {
31
- background-color: var(--ds-color-container-ui-selected-default, #01426a);
32
- border-color: var(--ds-color-border-ui-selected-default, #01426a);
33
- background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3'%3E%3Cpolyline points='5 12 10 17 19 8'/%3E%3C/svg%3E");
34
- background-repeat: no-repeat;
35
- background-position: center;
36
- background-size: 80%;
37
- }
38
-
39
- .checkbox:focus-visible {
40
- outline: 2px solid var(--ds-color-border-active-default, #01426a);
41
- outline-offset: 2px;
42
- }
43
-
44
- .checkbox:disabled {
45
- cursor: not-allowed;
46
- opacity: 0.5;
47
- }
48
- api:
49
- attributes:
50
- - name: appearance
51
- tier: wc-only
52
- default: '''default'''
53
- description: Defines whether the component will be on lighter or darker backgrounds.
54
- - name: checked
55
- tier: core
56
- native: checked
57
- description: If set to true, the checkbox will be filled with a checkmark.
58
- - name: disabled
59
- tier: core
60
- native: disabled
61
- description: If set to true, the checkbox will not be clickable.
62
- - name: error
63
- tier: wc-only
64
- description: If set to true, the checkbox will be displayed with an error state.
65
- - name: id
66
- tier: core
67
- native: id
68
- description: The id global attribute defines an identifier (ID) which must be unique in the whole document.
69
- - name: name
70
- tier: core
71
- native: name
72
- description: Accepts any string and is used to identify related checkboxes when submitting form data.
73
- - name: onDark
74
- tier: wc-only
75
- description: DEPRECATED - use `appearance="inverse"` instead.
76
- - name: value
77
- tier: core
78
- native: value
79
- description: Sets the element's input value.
80
- - name: tabindex
81
- tier: core
82
- native: tabindex
83
- description: The tabindex attribute for the checkbox.
84
- - name: aria-checked
85
- tier: enhanced
86
- description: The aria-checked attribute for the checkbox.
87
- - name: aria-disabled
88
- tier: enhanced
89
- description: The aria-disabled attribute for the checkbox.
90
- - name: role
91
- tier: enhanced
92
- description: The ARIA role for the element.
93
- slots:
94
- - name: default
95
- tier: core
96
- description: The default slot for the checkbox label.
97
- events:
98
- - name: auroCheckbox-input
99
- tier: wc-only
100
- - name: auroCheckbox-focusin
101
- tier: wc-only
102
- - name: auroCheckbox-focusout
103
- tier: wc-only
104
- - name: change
105
- tier: core
106
- description: (Deprecated) Notifies when checked value is changed.
107
- - name: input
108
- tier: core
109
- description: Notifies when when checked value is changed by user's interface.
110
- methods:
111
- - name: _initializeDefaults
112
- tier: wc-only
113
- - name: register
114
- tier: wc-only
115
- - name: reset
116
- tier: wc-only
117
- behavior:
118
- a11y:
119
- - Every control MUST have a programmatically associated <label> (for/id or wrapping).
120
- - Link help text via aria-describedby so it is announced after the label.
121
- - Reflect invalid state with aria-invalid="true|false" on the control.
122
- - Render validation errors with role="alert" aria-live="assertive" so they announce immediately.
123
- - Use a native <input type="checkbox"> with an associated <label>.
124
- - Group related checkboxes in a <fieldset> with a <legend> as the group label.
125
- - Reflect checked state natively; do not add aria-checked to a native checkbox.
126
- keyboard:
127
- - All interactive affordances are real, focusable elements in DOM order.
128
- - Space toggles the focused checkbox (native).
129
- validation:
130
- - Group-level "select at least one" is not native — script it and expose the error with role="alert".
131
- gaps:
132
- - id: group-level-validation
133
- feature: Group-level validation
134
- guidance: auro-checkbox-group supports a required attribute that validates "at least one checkbox in the group must be selected." Native HTML has no equivalent — required on individual checkboxes only enforces that that specific checkbox is checked.
135
- - id: custom-validation-messages
136
- feature: Custom validation messages
137
- guidance: auro-checkbox-group exposes setCustomValidity and setCustomValidityValueMissing for fully customizable error messages per validity state.
138
- - id: touched-state-tracking
139
- feature: Touched-state tracking
140
- guidance: auro-checkbox-group tracks a touched state so validation errors only appear after the user has interacted with the group.
141
- - id: coordinated-value-array
142
- feature: Coordinated value array
143
- guidance: auro-checkbox-group exposes a single value property that reflects the array of checked items in the group.
144
- - id: automatic-label-binding
145
- feature: Automatic label binding
146
- guidance: auro-checkbox automatically associates slot content as the accessible label, eliminating the need for <label for> wiring or wrapping <label> elements.
147
- - id: disabled-propagation
148
- feature: Disabled propagation
149
- guidance: auro-checkbox-group propagates a single disabled attribute to all child checkboxes.
150
- - id: form-integration-events
151
- feature: Form integration events
152
- guidance: auro-checkbox-group dispatches auroFormElement-validated events so parent auro-form elements can coordinate validation across all child fields.
153
- - id: horizontal-layout
154
- feature: Horizontal layout
155
- guidance: auro-checkbox-group supports a horizontal attribute for compact groups of up to three items, with spacing and alignment handled by the component.
156
- - id: reset-behavior
157
- feature: Reset behavior
158
- guidance: auro-checkbox-group provides a single reset() method that clears all checkboxes and resets validation state in one call.
159
- - id: multi-brand-theming
160
- feature: Multi-brand theming
161
- guidance: auro-checkbox consumes Auro design tokens through its component logic, so it automatically picks up brand-specific theming when token packages are swapped.
162
- examples:
163
- - id: basic-checkbox
164
- html: |-
165
- <label>
166
- <input type="checkbox" class="checkbox" name="terms" value="agree" />
167
- I agree to the terms
168
- </label>
169
- - id: group-of-checkboxes
170
- html: |-
171
- <fieldset>
172
- <legend>Select your preferences</legend>
173
- <label><input type="checkbox" class="checkbox" name="prefs" value="email" /> Email</label>
174
- <label><input type="checkbox" class="checkbox" name="prefs" value="sms" /> SMS</label>
175
- <label><input type="checkbox" class="checkbox" name="prefs" value="push" /> Push notifications</label>
176
- </fieldset>
177
- verify:
178
- - every color, size, spacing, radius, and font value uses var(--ds-*)
179
- - each control has an associated <label>
180
- - controls with aria-invalid="true" have a role="alert" message referenced by aria-describedby
181
- - 'axe: label, aria-valid-attr-value, color-contrast pass'
@@ -1,349 +0,0 @@
1
- # GENERATED by packages/build-tools/src/aiSpecGenerator.mjs — do not edit by hand.
2
- # Authored inputs live in ai/_authored/auro-combobox.overlay.yaml
3
- component: auro-combobox
4
- version: 0.0.0
5
- summary: Combobox — a text input that filters a listbox of options. The web platform has no full equivalent; the closest is <input list> + <datalist>, which cannot style the option panel or render rich option content.
6
- generatedFrom:
7
- cem: custom-elements.json#auro-combobox
8
- cssRecipe: components/combobox/demo/css-only.md
9
- overlay: ai/_authored/auro-combobox.overlay.yaml
10
- sourceOfTruth:
11
- component: components/combobox/src/auro-combobox.js
12
- visual:
13
- tokensImport: ./node_modules/@aurodesignsystem/design-tokens/dist/tokens/CSSCustomProperties.css
14
- rule: NEVER hardcode a hex, px, rem, or font-family value. Every visual value MUST be an Auro --ds-* token via var(--ds-token, fallback). Literal values are allowed only as the second argument (fallback) of var().
15
- css: |-
16
- @import "./node_modules/@aurodesignsystem/design-tokens/dist/tokens/CSSCustomProperties.css";
17
-
18
- .combobox {
19
- display: inline-block;
20
- position: relative;
21
- width: 100%;
22
- }
23
-
24
- .combobox-label {
25
- display: block;
26
- font-size: var(--ds-size-150, 0.75rem);
27
- color: var(--ds-color-text-secondary-default, #6e767f);
28
- margin-bottom: var(--ds-size-50, 0.25rem);
29
- }
30
-
31
- .combobox-input {
32
- appearance: none;
33
- -webkit-appearance: none;
34
- width: 100%;
35
- height: var(--ds-size-600, 3rem);
36
- padding: 0 var(--ds-size-200, 1rem);
37
- font-size: var(--ds-size-200, 1rem);
38
- color: var(--ds-color-text-primary-default, #00256c);
39
- background-color: var(--ds-color-container-primary-default, #ffffff);
40
- border: 1px solid var(--ds-color-border-ui-default, #6e767f);
41
- border-radius: var(--ds-border-radius, 4px);
42
- box-sizing: border-box;
43
- }
44
-
45
- .combobox-input:focus-visible {
46
- outline: 2px solid var(--ds-color-border-active-default, #01426a);
47
- outline-offset: 2px;
48
- border-color: var(--ds-color-border-active-default, #01426a);
49
- }
50
-
51
- .combobox-input:disabled {
52
- cursor: not-allowed;
53
- opacity: 0.5;
54
- background-color: var(--ds-color-container-disabled-default, #f2f3f5);
55
- }
56
-
57
- .combobox-input[aria-invalid="true"] {
58
- border-color: var(--ds-color-border-error-default, #d23153);
59
- }
60
- api:
61
- attributes:
62
- - name: appearance
63
- tier: wc-only
64
- default: '''default'''
65
- description: Defines whether the component will be on lighter or darker backgrounds.
66
- - name: autocomplete
67
- tier: core
68
- native: autocomplete
69
- description: An enumerated attribute that defines what the user agent can suggest for autofill.
70
- - name: autoPlacement
71
- tier: wc-only
72
- description: If declared, bib's position will be automatically calculated where to appear.
73
- - name: availableOptions
74
- tier: wc-only
75
- description: Array of available options to display in the dropdown.
76
- - name: behavior
77
- tier: wc-only
78
- default: '''suggestion'''
79
- description: Sets the behavior of the combobox, "filter" or "suggestion".
80
- - name: checkmark
81
- tier: wc-only
82
- description: When attribute is present auro-menu will apply check marks to selected options.
83
- - name: disabled
84
- tier: core
85
- native: disabled
86
- description: If set, disables the combobox.
87
- - name: dvInputOnly
88
- tier: wc-only
89
- description: If defined, the display value slot content will only mask the HTML5 input element.
90
- - name: error
91
- tier: wc-only
92
- description: When defined, sets persistent validity to `customError` and sets the validation message to the attribute value.
93
- - name: format
94
- tier: wc-only
95
- description: Specifies the input mask format.
96
- - name: inputmode
97
- tier: core
98
- native: inputmode
99
- description: Exposes inputmode attribute for input.
100
- - name: layout
101
- tier: wc-only
102
- default: '''classic'''
103
- description: Sets the layout of the combobox.
104
- - name: matchWidth
105
- tier: wc-only
106
- description: If declared, the popover and trigger will be set to the same width.
107
- - name: noFilter
108
- tier: wc-only
109
- description: If set, combobox will not filter menuoptions based on input.
110
- - name: noFlip
111
- tier: wc-only
112
- description: If declared, the bib will NOT flip to an alternate position when there isn't enough space in the specified `placement`.
113
- - name: shift
114
- tier: wc-only
115
- description: If declared, the dropdown will shift its position to avoid being cut off by the viewport.
116
- - name: noValidate
117
- tier: wc-only
118
- description: If set, disables auto-validation on blur.
119
- - name: offset
120
- tier: wc-only
121
- default: '0'
122
- description: Gap between the trigger element and bib.
123
- - name: onDark
124
- tier: wc-only
125
- description: DEPRECATED - use `appearance="inverse"` instead.
126
- - name: optionSelected
127
- tier: wc-only
128
- description: Specifies the current selected option.
129
- - name: persistInput
130
- tier: wc-only
131
- description: If declared, selecting a menu option will not change the input value.
132
- - name: placement
133
- tier: wc-only
134
- default: '''bottom-start'''
135
- description: Position where the bib should appear relative to the trigger.
136
- - name: placeholder
137
- tier: core
138
- native: placeholder
139
- description: Define custom placeholder text, only supported by date input formats.
140
- - name: required
141
- tier: core
142
- native: required
143
- description: Populates the `required` attribute on the input.
144
- - name: setCustomValidity
145
- tier: wc-only
146
- description: Sets a custom help text message to display for all validityStates.
147
- - name: setCustomValidityCustomError
148
- tier: enhanced
149
- description: Custom help text message to display when validity = `customError`.
150
- - name: setCustomValidityValueMissing
151
- tier: enhanced
152
- description: Custom help text message to display when validity = `valueMissing`.
153
- - name: setCustomValidityValueMissingFilter
154
- tier: enhanced
155
- description: Custom help text message to display when validity = `valueMissing` due to the user not choosing a menu option when behavior = "filter".
156
- - name: triggerIcon
157
- tier: wc-only
158
- description: If set, the `icon` attribute will be applied to the trigger `auro-input` element.
159
- - name: type
160
- tier: core
161
- native: type
162
- description: Applies the defined value as the type attribute on `auro-input`.
163
- - name: typedValue
164
- tier: wc-only
165
- description: Specifies the value of the input element within the combobox.
166
- - name: validity
167
- tier: wc-only
168
- description: Specifies the `validityState` this element is in.
169
- - name: value
170
- tier: core
171
- native: value
172
- description: Value selected for the dropdown menu.
173
- - name: largeFullscreenHeadline
174
- tier: wc-only
175
- description: If declared, make bib.fullscreen.headline in HeadingDisplay.
176
- - name: fullscreenBreakpoint
177
- tier: wc-only
178
- default: '''sm'''
179
- description: Defines the screen size breakpointat which the dropdown switches to fullscreen mode on mobile.
180
- - name: shape
181
- tier: wc-only
182
- - name: size
183
- tier: enhanced
184
- - name: ondark
185
- tier: wc-only
186
- slots:
187
- - name: (default)
188
- tier: core
189
- description: Default slot for the menu content.
190
- - name: optionalLabel
191
- tier: core
192
- description: Allows overriding the optional display text "(optional)", which appears next to the label.
193
- - name: ariaLabel.input.clear
194
- tier: core
195
- description: Sets aria-label on clear button
196
- - name: ariaLabel.bib.close
197
- tier: core
198
- description: Sets aria-label on close button in fullscreen bib
199
- - name: bib.fullscreen.headline
200
- tier: core
201
- description: Defines the headline to display above menu-options
202
- - name: label
203
- tier: core
204
- description: Defines the content of the label.
205
- - name: helpText
206
- tier: core
207
- description: Defines the content of the helpText.
208
- - name: displayValue
209
- tier: wc-only
210
- description: Allows custom HTML content to display the selected value when the combobox is not focused.
211
- events:
212
- - name: inputValue
213
- tier: core
214
- description: Notifies that the components internal HTML5 input value has changed.
215
- - name: input
216
- tier: core
217
- description: Notifies that the component has a new value set.
218
- - name: auroCombobox-valueSet
219
- tier: wc-only
220
- description: (Deprecated) Notifies that the component has a new value set.
221
- - name: auroFormElement-validated
222
- tier: wc-only
223
- description: Notifies that the component value(s) have been validated.
224
- methods:
225
- - name: isValid
226
- tier: wc-only
227
- - name: register
228
- tier: wc-only
229
- - name: hideBib
230
- tier: wc-only
231
- - name: showBib
232
- tier: wc-only
233
- - name: focus
234
- tier: wc-only
235
- - name: setMenuValue
236
- tier: wc-only
237
- - name: reset
238
- tier: wc-only
239
- - name: clear
240
- tier: wc-only
241
- - name: validate
242
- tier: wc-only
243
- - name: updateActiveOption
244
- tier: wc-only
245
- - name: resetShapeClasses
246
- tier: wc-only
247
- - name: resetLayoutClasses
248
- tier: wc-only
249
- - name: updateComponentArchitecture
250
- tier: wc-only
251
- behavior:
252
- a11y:
253
- - Every control MUST have a programmatically associated <label> (for/id or wrapping).
254
- - Link help text via aria-describedby so it is announced after the label.
255
- - Reflect invalid state with aria-invalid="true|false" on the control.
256
- - Render validation errors with role="alert" aria-live="assertive" so they announce immediately.
257
- - The input has role="combobox", aria-expanded, aria-controls pointing to the listbox id, and aria-activedescendant pointing to the highlighted option.
258
- - The listbox uses role="listbox" with role="option" children and aria-selected on the chosen option.
259
- keyboard:
260
- - All interactive affordances are real, focusable elements in DOM order.
261
- - Down opens/enters the list; Up/Down move the active option; Enter selects; Esc closes.
262
- validation:
263
- - Enforce "must select a listed option" in script; native <datalist> does not restrict input to its options.
264
- gaps:
265
- - id: filter-vs-suggestion-behavior
266
- feature: Filter vs. suggestion behavior
267
- guidance: auro-combobox exposes a behavior attribute ("filter" or "suggestion") that controls whether the user must select a menu option or may submit a freeform typed value.
268
- - id: custom-filtering-and-matching
269
- feature: Custom filtering and matching
270
- guidance: auro-combobox filters options against the typed value and supports a suggest attribute on each menu option for additional matching keywords, plus persistent, static, and nomatch options that change how the list reacts to input.
271
- - id: highlighted-match-text
272
- feature: Highlighted match text
273
- guidance: auro-combobox passes the typed value to auro-menu as a matchWord so the matching substring is visually highlighted in each option.
274
- - id: custom-validation-messages
275
- feature: Custom validation messages
276
- guidance: auro-combobox exposes setCustomValidity, setCustomValidityCustomError, setCustomValidityValueMissing, and setCustomValidityValueMissingFilter for fully customizable error messages per validity state, including a distinct message for "did not pick a value from the list" when behavior="filter".
277
- - id: touched-state-tracking
278
- feature: Touched-state tracking
279
- guidance: auro-combobox tracks a touched state so validation errors only appear after the user has interacted with the field.
280
- - id: keyboard-navigation-and-aria
281
- feature: Keyboard navigation and ARIA
282
- guidance: 'auro-combobox implements the WAI-ARIA combobox pattern: role="combobox" on the input, aria-expanded, aria-controls, aria-activedescendant, and aria-setsize/aria-posinset on each option, plus arrow-key navigation, Home/End, Escape to close, and Enter to select.'
283
- - id: screen-reader-announcements
284
- feature: Screen reader announcements
285
- guidance: auro-combobox dispatches live-region announcements when an option becomes active ("Seattle, not selected, 1 of 5") and when an option is selected, including special handling for fullscreen dialog mode where the trigger is inert.
286
- - id: mobile-fullscreen-presentation
287
- feature: Mobile fullscreen presentation
288
- guidance: auro-combobox automatically switches to a fullscreen dialog at a configurable fullscreenBreakpoint for mobile-friendly input, including iOS virtual keyboard retention logic so the keyboard stays visible across the trigger-to-dialog transition.
289
- - id: rich-option-content-and-display-value
290
- feature: Rich option content and display value
291
- guidance: auro-combobox works with auro-menuoption elements that can contain markup, icons, and a displayValue slot that lets the visible trigger content differ from the underlying value (paired with persistInput for advanced filter UIs).
292
- - id: coordinated-value-and-option-selected-state
293
- feature: Coordinated value and option-selected state
294
- guidance: auro-combobox exposes both value (the selected option's value) and optionSelected (a reference to the chosen auro-menuoption element), and fires input and inputValue events with structured detail.
295
- - id: form-integration-events
296
- feature: Form integration events
297
- guidance: auro-combobox dispatches auroFormElement-validated events so parent auro-form elements can coordinate validation across all child fields.
298
- - id: reset-behavior
299
- feature: Reset behavior
300
- guidance: auro-combobox provides reset() and clear() methods that clear the input, menu selection, validation state, and touched flag in one call.
301
- - id: layouts-shapes-and-sizes
302
- feature: Layouts, shapes, and sizes
303
- guidance: auro-combobox supports layout (classic, emphasized, snowflake), shape, and size attributes that coordinate the appearance of the trigger, dropdown, and menu options together.
304
- - id: multi-brand-theming
305
- feature: Multi-brand theming
306
- guidance: auro-combobox consumes Auro design tokens through its component logic, so it automatically picks up brand-specific theming when token packages are swapped.
307
- examples:
308
- - id: basic-combobox
309
- html: |-
310
- <label class="combobox">
311
- <span class="combobox-label">Departure airport</span>
312
- <input
313
- type="text"
314
- class="combobox-input"
315
- name="departure"
316
- list="airport-options"
317
- autocomplete="off" />
318
- <datalist id="airport-options">
319
- <option value="Seattle (SEA)"></option>
320
- <option value="Portland (PDX)"></option>
321
- <option value="San Francisco (SFO)"></option>
322
- <option value="Los Angeles (LAX)"></option>
323
- </datalist>
324
- </label>
325
- - id: required-combobox-in-a-form
326
- html: |-
327
- <form>
328
- <label class="combobox">
329
- <span class="combobox-label">Destination</span>
330
- <input
331
- type="text"
332
- class="combobox-input"
333
- name="destination"
334
- list="destination-options"
335
- required
336
- autocomplete="off" />
337
- <datalist id="destination-options">
338
- <option value="Anchorage (ANC)"></option>
339
- <option value="Fairbanks (FAI)"></option>
340
- <option value="Juneau (JNU)"></option>
341
- </datalist>
342
- </label>
343
- <button type="submit">Search</button>
344
- </form>
345
- verify:
346
- - every color, size, spacing, radius, and font value uses var(--ds-*)
347
- - each control has an associated <label>
348
- - controls with aria-invalid="true" have a role="alert" message referenced by aria-describedby
349
- - 'axe: label, aria-valid-attr-value, color-contrast pass'