@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.
- package/components/checkbox/demo/customize.min.js +1 -1
- package/components/checkbox/demo/getting-started.min.js +1 -1
- package/components/checkbox/demo/index.min.js +1 -1
- package/components/checkbox/dist/index.js +1 -1
- package/components/checkbox/dist/registered.js +1 -1
- package/components/combobox/demo/customize.min.js +15 -6
- package/components/combobox/demo/getting-started.min.js +15 -6
- package/components/combobox/demo/index.min.js +15 -6
- package/components/combobox/dist/index.js +15 -6
- package/components/combobox/dist/registered.js +15 -6
- package/components/counter/demo/customize.min.js +2 -2
- package/components/counter/demo/index.min.js +2 -2
- package/components/counter/dist/index.js +2 -2
- package/components/counter/dist/registered.js +2 -2
- package/components/datepicker/demo/customize.min.js +15 -6
- package/components/datepicker/demo/index.min.js +15 -6
- package/components/datepicker/dist/index.js +15 -6
- package/components/datepicker/dist/registered.js +15 -6
- package/components/dropdown/demo/customize.min.js +1 -1
- package/components/dropdown/demo/getting-started.min.js +14 -5
- package/components/dropdown/demo/index.min.js +1 -1
- package/components/dropdown/dist/index.js +1 -1
- package/components/dropdown/dist/registered.js +1 -1
- package/components/form/demo/customize.min.js +49 -22
- package/components/form/demo/getting-started.min.js +49 -22
- package/components/form/demo/index.min.js +49 -22
- package/components/form/demo/registerDemoDeps.min.js +49 -22
- package/components/input/demo/api.md +1 -1
- package/components/input/demo/customize.md +1 -1
- package/components/input/demo/customize.min.js +13 -4
- package/components/input/demo/getting-started.min.js +13 -4
- package/components/input/demo/index.min.js +13 -4
- package/components/input/dist/base-input.d.ts +2 -0
- package/components/input/dist/index.js +13 -4
- package/components/input/dist/registered.js +13 -4
- package/components/radio/demo/customize.min.js +1 -1
- package/components/radio/demo/getting-started.min.js +1 -1
- package/components/radio/demo/index.min.js +1 -1
- package/components/radio/dist/index.js +1 -1
- package/components/radio/dist/registered.js +1 -1
- package/components/select/demo/customize.min.js +2 -2
- package/components/select/demo/getting-started.min.js +2 -2
- package/components/select/demo/index.min.js +2 -2
- package/components/select/dist/index.js +2 -2
- package/components/select/dist/registered.js +2 -2
- package/custom-elements.json +4 -4
- package/package.json +3 -6
- package/ai/README.md +0 -142
- package/ai/_a11y-baseline.md +0 -27
- package/ai/_authored/_defaults.overlay.yaml +0 -81
- package/ai/_authored/auro-checkbox.overlay.yaml +0 -22
- package/ai/_authored/auro-combobox.overlay.yaml +0 -37
- package/ai/_authored/auro-counter.overlay.yaml +0 -23
- package/ai/_authored/auro-datepicker.overlay.yaml +0 -44
- package/ai/_authored/auro-dropdown.overlay.yaml +0 -35
- package/ai/_authored/auro-form.overlay.yaml +0 -12
- package/ai/_authored/auro-input.overlay.yaml +0 -33
- package/ai/_authored/auro-menu.overlay.yaml +0 -21
- package/ai/_authored/auro-radio.overlay.yaml +0 -19
- package/ai/_authored/auro-select.overlay.yaml +0 -37
- package/ai/_prompt-template.md +0 -33
- package/ai/llms.txt +0 -26
- package/ai/specs/auro-checkbox.spec.yaml +0 -181
- package/ai/specs/auro-combobox.spec.yaml +0 -349
- package/ai/specs/auro-counter.spec.yaml +0 -215
- package/ai/specs/auro-datepicker.spec.yaml +0 -395
- package/ai/specs/auro-dropdown.spec.yaml +0 -295
- package/ai/specs/auro-form.spec.yaml +0 -148
- package/ai/specs/auro-input.spec.yaml +0 -392
- package/ai/specs/auro-menu.spec.yaml +0 -213
- package/ai/specs/auro-radio.spec.yaml +0 -184
- 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'
|