@aurodesignsystem-dev/auro-formkit 0.0.0-pr1578.0 → 0.0.0-pr1581.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/ai/README.md +142 -0
- package/ai/_a11y-baseline.md +27 -0
- package/ai/_authored/_defaults.overlay.yaml +81 -0
- package/ai/_authored/auro-checkbox.overlay.yaml +22 -0
- package/ai/_authored/auro-combobox.overlay.yaml +37 -0
- package/ai/_authored/auro-counter.overlay.yaml +23 -0
- package/ai/_authored/auro-datepicker.overlay.yaml +44 -0
- package/ai/_authored/auro-dropdown.overlay.yaml +35 -0
- package/ai/_authored/auro-form.overlay.yaml +12 -0
- package/ai/_authored/auro-input.overlay.yaml +33 -0
- package/ai/_authored/auro-menu.overlay.yaml +21 -0
- package/ai/_authored/auro-radio.overlay.yaml +19 -0
- package/ai/_authored/auro-select.overlay.yaml +37 -0
- package/ai/_prompt-template.md +33 -0
- package/ai/llms.txt +26 -0
- package/ai/specs/auro-checkbox.spec.yaml +181 -0
- package/ai/specs/auro-combobox.spec.yaml +349 -0
- package/ai/specs/auro-counter.spec.yaml +215 -0
- package/ai/specs/auro-datepicker.spec.yaml +395 -0
- package/ai/specs/auro-dropdown.spec.yaml +295 -0
- package/ai/specs/auro-form.spec.yaml +148 -0
- package/ai/specs/auro-input.spec.yaml +392 -0
- package/ai/specs/auro-menu.spec.yaml +213 -0
- package/ai/specs/auro-radio.spec.yaml +184 -0
- package/ai/specs/auro-select.spec.yaml +324 -0
- 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 +12 -3
- package/components/combobox/demo/getting-started.min.js +12 -3
- package/components/combobox/demo/index.min.js +12 -3
- package/components/combobox/dist/index.js +12 -3
- package/components/combobox/dist/registered.js +12 -3
- package/components/counter/demo/customize.min.js +12 -3
- package/components/counter/demo/index.min.js +12 -3
- package/components/counter/dist/index.js +12 -3
- package/components/counter/dist/registered.js +12 -3
- package/components/datepicker/demo/customize.min.js +12 -3
- package/components/datepicker/demo/index.min.js +12 -3
- package/components/datepicker/dist/index.js +12 -3
- package/components/datepicker/dist/registered.js +12 -3
- package/components/dropdown/demo/customize.min.js +10 -1
- package/components/dropdown/demo/getting-started.min.js +11 -2
- package/components/dropdown/demo/index.min.js +10 -1
- package/components/dropdown/dist/index.js +10 -1
- package/components/dropdown/dist/registered.js +10 -1
- package/components/form/demo/customize.min.js +50 -14
- package/components/form/demo/getting-started.min.js +50 -14
- package/components/form/demo/index.min.js +50 -14
- package/components/form/demo/registerDemoDeps.min.js +50 -14
- package/components/input/demo/customize.min.js +1 -1
- package/components/input/demo/getting-started.min.js +1 -1
- package/components/input/demo/index.min.js +1 -1
- package/components/input/dist/index.js +1 -1
- package/components/input/dist/registered.js +1 -1
- 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 +11 -2
- package/components/select/demo/getting-started.min.js +11 -2
- package/components/select/demo/index.min.js +11 -2
- package/components/select/dist/index.js +11 -2
- package/components/select/dist/registered.js +11 -2
- package/custom-elements.json +1521 -1521
- package/package.json +6 -3
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
# GENERATED by packages/build-tools/src/aiSpecGenerator.mjs — do not edit by hand.
|
|
2
|
+
# Authored inputs live in ai/_authored/auro-radio.overlay.yaml
|
|
3
|
+
component: auro-radio
|
|
4
|
+
version: 0.0.0
|
|
5
|
+
summary: 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.
|
|
6
|
+
generatedFrom:
|
|
7
|
+
cem: custom-elements.json#auro-radio
|
|
8
|
+
cssRecipe: components/radio/demo/css-only.md
|
|
9
|
+
overlay: ai/_authored/auro-radio.overlay.yaml
|
|
10
|
+
sourceOfTruth:
|
|
11
|
+
component: components/radio/src/auro-radio.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
|
+
.radio {
|
|
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: 50%;
|
|
25
|
+
background-color: var(--ds-color-container-primary-default, #ffffff);
|
|
26
|
+
cursor: pointer;
|
|
27
|
+
vertical-align: middle;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
.radio: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'%3E%3Ccircle cx='12' cy='12' r='5' fill='white'/%3E%3C/svg%3E");
|
|
34
|
+
background-repeat: no-repeat;
|
|
35
|
+
background-position: center;
|
|
36
|
+
background-size: 100%;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
.radio:focus-visible {
|
|
40
|
+
outline: 2px solid var(--ds-color-border-active-default, #01426a);
|
|
41
|
+
outline-offset: 2px;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
.radio: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 radio button will be filled.
|
|
58
|
+
- name: disabled
|
|
59
|
+
tier: core
|
|
60
|
+
native: disabled
|
|
61
|
+
description: If set to true, the radio button will be non-clickable.
|
|
62
|
+
- name: error
|
|
63
|
+
tier: wc-only
|
|
64
|
+
description: If set to true, sets an error state on the radio button.
|
|
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: label
|
|
70
|
+
tier: enhanced
|
|
71
|
+
native: associate a <label> via for/id (label is not a native attribute)
|
|
72
|
+
description: Label for the radio button.
|
|
73
|
+
- name: name
|
|
74
|
+
tier: core
|
|
75
|
+
native: name
|
|
76
|
+
description: Name for the radio button group.
|
|
77
|
+
- name: onDark
|
|
78
|
+
tier: wc-only
|
|
79
|
+
description: DEPRECATED - use `appearance="inverse"` instead.
|
|
80
|
+
- name: required
|
|
81
|
+
tier: core
|
|
82
|
+
native: required
|
|
83
|
+
description: Defines element as required.
|
|
84
|
+
- name: role
|
|
85
|
+
tier: enhanced
|
|
86
|
+
description: Don't add to api.md since changing of this can easily break a11y.
|
|
87
|
+
- name: value
|
|
88
|
+
tier: core
|
|
89
|
+
native: value
|
|
90
|
+
description: The value of the radio button.
|
|
91
|
+
slots: []
|
|
92
|
+
events:
|
|
93
|
+
- name: toggleSelected
|
|
94
|
+
tier: core
|
|
95
|
+
description: Notifies that the component has toggled the checked/selected state.
|
|
96
|
+
- name: focusSelected
|
|
97
|
+
tier: core
|
|
98
|
+
description: Notifies that the component has gained focus.
|
|
99
|
+
- name: auroRadio-blur
|
|
100
|
+
tier: wc-only
|
|
101
|
+
description: Notifies that the component has lost focus.
|
|
102
|
+
- name: resetRadio
|
|
103
|
+
tier: core
|
|
104
|
+
description: Notifies that the component has reset the checked/selected state.
|
|
105
|
+
- name: auroRadio-selected
|
|
106
|
+
tier: wc-only
|
|
107
|
+
description: Notifies that the component has been marked as checked/selected.
|
|
108
|
+
- name: change
|
|
109
|
+
tier: core
|
|
110
|
+
description: (Deprecated) Notifies when checked value is changed.
|
|
111
|
+
- name: input
|
|
112
|
+
tier: core
|
|
113
|
+
description: Notifies when when checked value is changed by user's interface.
|
|
114
|
+
methods:
|
|
115
|
+
- name: _initializeDefaults
|
|
116
|
+
tier: wc-only
|
|
117
|
+
- name: register
|
|
118
|
+
tier: wc-only
|
|
119
|
+
- name: reset
|
|
120
|
+
tier: wc-only
|
|
121
|
+
behavior:
|
|
122
|
+
a11y:
|
|
123
|
+
- Every control MUST have a programmatically associated <label> (for/id or wrapping).
|
|
124
|
+
- Link help text via aria-describedby so it is announced after the label.
|
|
125
|
+
- Reflect invalid state with aria-invalid="true|false" on the control.
|
|
126
|
+
- Render validation errors with role="alert" aria-live="assertive" so they announce immediately.
|
|
127
|
+
- Use native <input type="radio"> elements that share the same `name` to form one group.
|
|
128
|
+
- Wrap the group in a <fieldset> with a <legend> as the group label.
|
|
129
|
+
keyboard:
|
|
130
|
+
- All interactive affordances are real, focusable elements in DOM order.
|
|
131
|
+
- Arrow keys move selection within the group; only the checked radio is in the tab order (native roving).
|
|
132
|
+
validation:
|
|
133
|
+
- Mark one radio in the group `required` to require a selection (native).
|
|
134
|
+
gaps:
|
|
135
|
+
- id: group-level-validation
|
|
136
|
+
feature: Group-level validation
|
|
137
|
+
guidance: auro-radio-group supports a required attribute that validates "one radio in the group must be selected." Native HTML required on a radio input enforces the same constraint, but the validation message surfaces on a single input rather than being coordinated across the group.
|
|
138
|
+
- id: custom-validation-messages
|
|
139
|
+
feature: Custom validation messages
|
|
140
|
+
guidance: auro-radio-group exposes setCustomValidity and setCustomValidityValueMissing for fully customizable error messages per validity state.
|
|
141
|
+
- id: touched-state-tracking
|
|
142
|
+
feature: Touched-state tracking
|
|
143
|
+
guidance: auro-radio-group tracks a touched state so validation errors only appear after the user has interacted with the group.
|
|
144
|
+
- id: coordinated-value-property
|
|
145
|
+
feature: Coordinated value property
|
|
146
|
+
guidance: auro-radio-group exposes a single value property that reflects the selected radio's value and dispatches a single change event when that value changes.
|
|
147
|
+
- id: automatic-label-binding
|
|
148
|
+
feature: Automatic label binding
|
|
149
|
+
guidance: auro-radio automatically associates slot content as the accessible label, eliminating the need for <label for> wiring or wrapping <label> elements.
|
|
150
|
+
- id: disabled-propagation
|
|
151
|
+
feature: Disabled propagation
|
|
152
|
+
guidance: auro-radio-group propagates a single disabled attribute to all child radios.
|
|
153
|
+
- id: form-integration-events
|
|
154
|
+
feature: Form integration events
|
|
155
|
+
guidance: auro-radio-group dispatches auroFormElement-validated events so parent auro-form elements can coordinate validation across all child fields.
|
|
156
|
+
- id: horizontal-layout
|
|
157
|
+
feature: Horizontal layout
|
|
158
|
+
guidance: auro-radio-group supports a horizontal attribute for compact groups of up to three items, with spacing and alignment handled by the component.
|
|
159
|
+
- id: reset-behavior
|
|
160
|
+
feature: Reset behavior
|
|
161
|
+
guidance: auro-radio-group provides a single reset() method that clears the selection and resets validation state in one call.
|
|
162
|
+
- id: multi-brand-theming
|
|
163
|
+
feature: Multi-brand theming
|
|
164
|
+
guidance: auro-radio consumes Auro design tokens through its component logic, so it automatically picks up brand-specific theming when token packages are swapped.
|
|
165
|
+
examples:
|
|
166
|
+
- id: basic-radio
|
|
167
|
+
html: |-
|
|
168
|
+
<label>
|
|
169
|
+
<input type="radio" class="radio" name="subscribe" value="yes" />
|
|
170
|
+
Subscribe to updates
|
|
171
|
+
</label>
|
|
172
|
+
- id: group-of-radios
|
|
173
|
+
html: |-
|
|
174
|
+
<fieldset>
|
|
175
|
+
<legend>Choose a delivery method</legend>
|
|
176
|
+
<label><input type="radio" class="radio" name="delivery" value="email" /> Email</label>
|
|
177
|
+
<label><input type="radio" class="radio" name="delivery" value="sms" /> SMS</label>
|
|
178
|
+
<label><input type="radio" class="radio" name="delivery" value="push" /> Push notification</label>
|
|
179
|
+
</fieldset>
|
|
180
|
+
verify:
|
|
181
|
+
- every color, size, spacing, radius, and font value uses var(--ds-*)
|
|
182
|
+
- each control has an associated <label>
|
|
183
|
+
- controls with aria-invalid="true" have a role="alert" message referenced by aria-describedby
|
|
184
|
+
- 'axe: label, aria-valid-attr-value, color-contrast pass'
|
|
@@ -0,0 +1,324 @@
|
|
|
1
|
+
# GENERATED by packages/build-tools/src/aiSpecGenerator.mjs — do not edit by hand.
|
|
2
|
+
# Authored inputs live in ai/_authored/auro-select.overlay.yaml
|
|
3
|
+
component: auro-select
|
|
4
|
+
version: 0.0.0
|
|
5
|
+
summary: Select control (wraps auro-dropdown + auro-menu). Native equivalent is a <select> with <option>/<optgroup>; the option panel cannot be styled natively.
|
|
6
|
+
generatedFrom:
|
|
7
|
+
cem: custom-elements.json#auro-select
|
|
8
|
+
cssRecipe: components/select/demo/css-only.md
|
|
9
|
+
overlay: ai/_authored/auro-select.overlay.yaml
|
|
10
|
+
sourceOfTruth:
|
|
11
|
+
component: components/select/src/auro-select.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
|
+
.select {
|
|
19
|
+
appearance: none;
|
|
20
|
+
-webkit-appearance: none;
|
|
21
|
+
-moz-appearance: none;
|
|
22
|
+
width: 100%;
|
|
23
|
+
min-height: var(--ds-size-600, 3rem);
|
|
24
|
+
padding: var(--ds-size-100, 0.5rem) var(--ds-size-400, 2rem) var(--ds-size-100, 0.5rem) var(--ds-size-200, 1rem);
|
|
25
|
+
border: 1px solid var(--ds-color-border-ui-default, #6e767f);
|
|
26
|
+
border-radius: var(--ds-border-radius, 4px);
|
|
27
|
+
background-color: var(--ds-color-container-primary-default, #ffffff);
|
|
28
|
+
color: var(--ds-color-text-primary-default, #1d1d1d);
|
|
29
|
+
font-family: inherit;
|
|
30
|
+
font-size: 1rem;
|
|
31
|
+
line-height: 1.5;
|
|
32
|
+
cursor: pointer;
|
|
33
|
+
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231d1d1d' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
|
|
34
|
+
background-repeat: no-repeat;
|
|
35
|
+
background-position: right var(--ds-size-150, 0.75rem) center;
|
|
36
|
+
background-size: var(--ds-size-200, 1rem);
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
.select:focus-visible {
|
|
40
|
+
outline: 2px solid var(--ds-color-border-active-default, #01426a);
|
|
41
|
+
outline-offset: 2px;
|
|
42
|
+
border-color: var(--ds-color-border-active-default, #01426a);
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
.select:disabled {
|
|
46
|
+
cursor: not-allowed;
|
|
47
|
+
opacity: 0.5;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
.select:invalid {
|
|
51
|
+
border-color: var(--ds-color-border-error-default, #d6371e);
|
|
52
|
+
}
|
|
53
|
+
api:
|
|
54
|
+
attributes:
|
|
55
|
+
- name: appearance
|
|
56
|
+
tier: wc-only
|
|
57
|
+
default: '''default'''
|
|
58
|
+
description: Defines whether the component will be on lighter or darker backgrounds.
|
|
59
|
+
- name: autoPlacement
|
|
60
|
+
tier: wc-only
|
|
61
|
+
default: 'false'
|
|
62
|
+
description: If declared, bib's position will be automatically calculated where to appear.
|
|
63
|
+
- name: autocomplete
|
|
64
|
+
tier: core
|
|
65
|
+
native: autocomplete
|
|
66
|
+
description: If declared, sets the autocomplete attribute for the select element.
|
|
67
|
+
- name: disabled
|
|
68
|
+
tier: core
|
|
69
|
+
native: disabled
|
|
70
|
+
description: When attribute is present, element shows disabled state.
|
|
71
|
+
- name: error
|
|
72
|
+
tier: wc-only
|
|
73
|
+
description: When defined, sets persistent validity to `customError` and sets `setCustomValidity` = attribute value.
|
|
74
|
+
- name: flexMenuWidth
|
|
75
|
+
tier: wc-only
|
|
76
|
+
description: If declared, make the width of the bib match the width of the content, rather than the trigger.
|
|
77
|
+
- name: fluid
|
|
78
|
+
tier: wc-only
|
|
79
|
+
description: When attribute is present, element will be 100% width of container element.
|
|
80
|
+
- name: forceDisplayValue
|
|
81
|
+
tier: wc-only
|
|
82
|
+
default: 'false'
|
|
83
|
+
description: If declared, the label and value will be visually hidden and the displayValue will render 100% of the time.
|
|
84
|
+
- name: fullscreenBreakpoint
|
|
85
|
+
tier: wc-only
|
|
86
|
+
default: '''sm'''
|
|
87
|
+
description: Defines the screen size breakpoint at which the dropdown switches to fullscreen mode on mobile.
|
|
88
|
+
- name: isPopoverVisible
|
|
89
|
+
tier: wc-only
|
|
90
|
+
- name: largeFullscreenHeadline
|
|
91
|
+
tier: wc-only
|
|
92
|
+
description: If declared, make bib.fullscreen.headline in HeadingDisplay.
|
|
93
|
+
- name: layout
|
|
94
|
+
tier: wc-only
|
|
95
|
+
default: '''classic'''
|
|
96
|
+
description: Determines the overall layout of the select component.
|
|
97
|
+
- name: matchWidth
|
|
98
|
+
tier: wc-only
|
|
99
|
+
default: 'false'
|
|
100
|
+
description: If declared, the popover and trigger will be set to the same width.
|
|
101
|
+
- name: multiselect
|
|
102
|
+
tier: core
|
|
103
|
+
native: multiple
|
|
104
|
+
description: Sets multi-select mode, allowing multiple options to be selected at once.
|
|
105
|
+
- name: name
|
|
106
|
+
tier: core
|
|
107
|
+
native: name
|
|
108
|
+
description: The name for the select element.
|
|
109
|
+
- name: noCheckmark
|
|
110
|
+
tier: wc-only
|
|
111
|
+
description: When true, checkmark on selected option will no longer be present.
|
|
112
|
+
- name: noFlip
|
|
113
|
+
tier: wc-only
|
|
114
|
+
default: 'false'
|
|
115
|
+
description: If declared, the bib will NOT flip to an alternate position when there isn't enough space in the specified `placement`.
|
|
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 menuOption.
|
|
129
|
+
- name: placeholder
|
|
130
|
+
tier: core
|
|
131
|
+
native: placeholder
|
|
132
|
+
description: Define custom placeholder text.
|
|
133
|
+
- name: placement
|
|
134
|
+
tier: wc-only
|
|
135
|
+
default: '''bottom-start'''
|
|
136
|
+
description: Position where the bib should appear relative to the trigger.
|
|
137
|
+
- name: required
|
|
138
|
+
tier: core
|
|
139
|
+
native: required
|
|
140
|
+
description: Populates the `required` attribute on the element.
|
|
141
|
+
- name: setCustomValidity
|
|
142
|
+
tier: wc-only
|
|
143
|
+
description: Sets a custom help text message to display for all validityStates.
|
|
144
|
+
- name: setCustomValidityCustomError
|
|
145
|
+
tier: enhanced
|
|
146
|
+
description: Custom help text message to display when validity = `customError`.
|
|
147
|
+
- name: setCustomValidityValueMissing
|
|
148
|
+
tier: enhanced
|
|
149
|
+
description: Custom help text message to display when validity = `valueMissing`.
|
|
150
|
+
- name: shape
|
|
151
|
+
tier: wc-only
|
|
152
|
+
description: Determines the shape of the dropdown bib.
|
|
153
|
+
- name: shift
|
|
154
|
+
tier: wc-only
|
|
155
|
+
default: 'false'
|
|
156
|
+
description: If set, the dropdown will shift its position to avoid being cut off by the viewport.
|
|
157
|
+
- name: size
|
|
158
|
+
tier: enhanced
|
|
159
|
+
description: Determines the size of the dropdown bib.
|
|
160
|
+
- name: typeaheadTimeoutMs
|
|
161
|
+
tier: wc-only
|
|
162
|
+
default: '500'
|
|
163
|
+
description: Milliseconds of keyboard inactivity before the type-ahead buffer resets.
|
|
164
|
+
- name: validity
|
|
165
|
+
tier: wc-only
|
|
166
|
+
description: Specifies the `validityState` this element is in.
|
|
167
|
+
- name: value
|
|
168
|
+
tier: core
|
|
169
|
+
native: value
|
|
170
|
+
description: Value selected for the component.
|
|
171
|
+
- name: ondark
|
|
172
|
+
tier: wc-only
|
|
173
|
+
slots:
|
|
174
|
+
- name: (default)
|
|
175
|
+
tier: core
|
|
176
|
+
description: Default slot for the menu content.
|
|
177
|
+
- name: ariaLabel.bib.close
|
|
178
|
+
tier: core
|
|
179
|
+
description: Sets aria-label on close button in fullscreen bib
|
|
180
|
+
- name: bib.fullscreen.headline
|
|
181
|
+
tier: core
|
|
182
|
+
description: Defines the headline to display above menu-options
|
|
183
|
+
- name: label
|
|
184
|
+
tier: core
|
|
185
|
+
description: Defines the content of the label.
|
|
186
|
+
- name: optionalLabel
|
|
187
|
+
tier: core
|
|
188
|
+
description: Allows overriding the optional display text "(optional)", which appears next to the label.
|
|
189
|
+
- name: helpText
|
|
190
|
+
tier: core
|
|
191
|
+
description: Defines the content of the helpText.
|
|
192
|
+
- name: valueText
|
|
193
|
+
tier: core
|
|
194
|
+
description: Dropdown value text display.
|
|
195
|
+
- name: displayValue
|
|
196
|
+
tier: wc-only
|
|
197
|
+
description: Allows custom HTML content to display the selected value when select is not focused.
|
|
198
|
+
events:
|
|
199
|
+
- name: auroSelect-valueSet
|
|
200
|
+
tier: wc-only
|
|
201
|
+
description: Notifies that the component has a new value set.
|
|
202
|
+
- name: input
|
|
203
|
+
tier: core
|
|
204
|
+
description: Notifies every time the value prop of the element is changed.
|
|
205
|
+
- name: auroFormElement-validated
|
|
206
|
+
tier: wc-only
|
|
207
|
+
description: Notifies that the `validity` and `errorMessage` values have changed.
|
|
208
|
+
methods:
|
|
209
|
+
- name: register
|
|
210
|
+
tier: wc-only
|
|
211
|
+
- name: updateActiveOption
|
|
212
|
+
tier: wc-only
|
|
213
|
+
- name: hideBib
|
|
214
|
+
tier: wc-only
|
|
215
|
+
- name: showBib
|
|
216
|
+
tier: wc-only
|
|
217
|
+
- name: setMenuValue
|
|
218
|
+
tier: wc-only
|
|
219
|
+
- name: reset
|
|
220
|
+
tier: wc-only
|
|
221
|
+
- name: validate
|
|
222
|
+
tier: wc-only
|
|
223
|
+
- name: resetShapeClasses
|
|
224
|
+
tier: wc-only
|
|
225
|
+
- name: resetLayoutClasses
|
|
226
|
+
tier: wc-only
|
|
227
|
+
- name: updateComponentArchitecture
|
|
228
|
+
tier: wc-only
|
|
229
|
+
behavior:
|
|
230
|
+
a11y:
|
|
231
|
+
- Every control MUST have a programmatically associated <label> (for/id or wrapping).
|
|
232
|
+
- Link help text via aria-describedby so it is announced after the label.
|
|
233
|
+
- Reflect invalid state with aria-invalid="true|false" on the control.
|
|
234
|
+
- Render validation errors with role="alert" aria-live="assertive" so they announce immediately.
|
|
235
|
+
- Use a native <select> with an associated <label>; group options with <optgroup label="...">.
|
|
236
|
+
- Multi-select uses the native `multiple` attribute.
|
|
237
|
+
keyboard:
|
|
238
|
+
- All interactive affordances are real, focusable elements in DOM order.
|
|
239
|
+
- Type-ahead, Up/Down, and Home/End are provided natively by <select>.
|
|
240
|
+
validation:
|
|
241
|
+
- Set `required` on <select> with an empty-value first <option> to enforce a selection natively.
|
|
242
|
+
gaps:
|
|
243
|
+
- id: stylable-dropdown-panel
|
|
244
|
+
feature: Stylable dropdown panel
|
|
245
|
+
guidance: auro-select renders its dropdown panel (the "bib") as part of the component, so option spacing, borders, elevation, and selected-state styling all match the Auro design system.
|
|
246
|
+
- id: rich-option-content
|
|
247
|
+
feature: Rich option content
|
|
248
|
+
guidance: auro-select accepts auro-menuoption children whose default slot can contain any HTML — icons, two-line descriptions, badges, or custom markup.
|
|
249
|
+
- id: custom-display-value
|
|
250
|
+
feature: Custom display value
|
|
251
|
+
guidance: auro-select exposes a displayValue slot and a forceDisplayValue attribute so the collapsed trigger can show formatted content (markup, icons, a different string than the selected option's label).
|
|
252
|
+
- id: custom-validation-messages
|
|
253
|
+
feature: Custom validation messages
|
|
254
|
+
guidance: auro-select exposes setCustomValidity, setCustomValidityValueMissing, setCustomValidityCustomError, and an error attribute for fully customizable error messages per validity state.
|
|
255
|
+
- id: help-text-and-error-slots
|
|
256
|
+
feature: Help text and error slots
|
|
257
|
+
guidance: auro-select provides a helpText slot that renders below the trigger and automatically swaps to the active validation message when the field is invalid.
|
|
258
|
+
- id: multi-select-with-checkmarks
|
|
259
|
+
feature: Multi-select with checkmarks
|
|
260
|
+
guidance: auro-select supports a multiSelect attribute that keeps the dropdown open between selections, renders checkmarks next to chosen options, and exposes the selection as an array via optionSelected.
|
|
261
|
+
- id: type-ahead-navigation
|
|
262
|
+
feature: Type-ahead navigation
|
|
263
|
+
guidance: auro-select implements its own keyboard strategy (see selectKeyboardStrategy.js) for type-ahead matching, arrow-key navigation, and focus management that is consistent across browsers.
|
|
264
|
+
- id: mobile-fullscreen-behavior
|
|
265
|
+
feature: Mobile fullscreen behavior
|
|
266
|
+
guidance: auro-select automatically switches its dropdown to a fullscreen sheet on small viewports via the fullscreenBreakpoint attribute, with a configurable headline slot (bib.fullscreen.headline) and close-button label.
|
|
267
|
+
- id: placement-and-layout-control
|
|
268
|
+
feature: Placement and layout control
|
|
269
|
+
guidance: auro-select supports placement, autoPlacement, noFlip, shift, offset, matchWidth, and flexMenuWidth attributes to control where and how the dropdown opens.
|
|
270
|
+
- id: aria-wiring
|
|
271
|
+
feature: ARIA wiring
|
|
272
|
+
guidance: auro-select manages the ARIA relationships between the trigger, label, help text, listbox, and active option automatically.
|
|
273
|
+
- id: value-sync-and-events
|
|
274
|
+
feature: Value sync and events
|
|
275
|
+
guidance: auro-select exposes a single value property plus an optionSelected reference to the chosen option element, and dispatches auroSelect-valueSet, input, and auroFormElement-validated events for integration with auro-form.
|
|
276
|
+
- id: touched-state-tracking
|
|
277
|
+
feature: Touched-state tracking
|
|
278
|
+
guidance: auro-select tracks a touched state so validation errors only appear after the user has interacted with the field.
|
|
279
|
+
- id: reset-behavior
|
|
280
|
+
feature: Reset behavior
|
|
281
|
+
guidance: auro-select provides a single reset() method that clears the value and resets validation state in one call.
|
|
282
|
+
- id: layout-and-shape-variants
|
|
283
|
+
feature: Layout and shape variants
|
|
284
|
+
guidance: auro-select supports layout (classic, emphasized, snowflake) and shape (classic, pill, pill-left, pill-right, snowflake) attributes for design-system-aligned visual variants.
|
|
285
|
+
- id: multi-brand-theming
|
|
286
|
+
feature: Multi-brand theming
|
|
287
|
+
guidance: auro-select consumes Auro design tokens through its component logic, so it automatically picks up brand-specific theming when token packages are swapped.
|
|
288
|
+
examples:
|
|
289
|
+
- id: basic-select
|
|
290
|
+
html: |-
|
|
291
|
+
<label for="destination">Destination</label>
|
|
292
|
+
<select id="destination" name="destination" class="select">
|
|
293
|
+
<option value="">Choose a destination</option>
|
|
294
|
+
<option value="sea">Seattle</option>
|
|
295
|
+
<option value="pdx">Portland</option>
|
|
296
|
+
<option value="anc">Anchorage</option>
|
|
297
|
+
</select>
|
|
298
|
+
- id: select-with-optgroup
|
|
299
|
+
html: |-
|
|
300
|
+
<label for="airport">Airport</label>
|
|
301
|
+
<select id="airport" name="airport" class="select">
|
|
302
|
+
<optgroup label="Pacific Northwest">
|
|
303
|
+
<option value="sea">Seattle</option>
|
|
304
|
+
<option value="pdx">Portland</option>
|
|
305
|
+
</optgroup>
|
|
306
|
+
<optgroup label="Alaska">
|
|
307
|
+
<option value="anc">Anchorage</option>
|
|
308
|
+
<option value="fai">Fairbanks</option>
|
|
309
|
+
</optgroup>
|
|
310
|
+
</select>
|
|
311
|
+
- id: multiple-select
|
|
312
|
+
html: |-
|
|
313
|
+
<label for="preferences">Travel preferences</label>
|
|
314
|
+
<select id="preferences" name="preferences" class="select" multiple size="4">
|
|
315
|
+
<option value="window">Window seat</option>
|
|
316
|
+
<option value="aisle">Aisle seat</option>
|
|
317
|
+
<option value="meal">Special meal</option>
|
|
318
|
+
<option value="early">Early boarding</option>
|
|
319
|
+
</select>
|
|
320
|
+
verify:
|
|
321
|
+
- every color, size, spacing, radius, and font value uses var(--ds-*)
|
|
322
|
+
- each control has an associated <label>
|
|
323
|
+
- controls with aria-invalid="true" have a role="alert" message referenced by aria-describedby
|
|
324
|
+
- 'axe: label, aria-valid-attr-value, color-contrast pass'
|
|
@@ -1275,7 +1275,7 @@ class AuroHelpText extends i$2 {
|
|
|
1275
1275
|
}
|
|
1276
1276
|
}
|
|
1277
1277
|
|
|
1278
|
-
var formkitVersion = '
|
|
1278
|
+
var formkitVersion = '202608071813';
|
|
1279
1279
|
|
|
1280
1280
|
// Copyright (c) 2026 Alaska Airlines. All rights reserved. Licensed under the Apache-2.0 license
|
|
1281
1281
|
// See LICENSE in the project root for license information.
|
|
@@ -1275,7 +1275,7 @@ class AuroHelpText extends i$2 {
|
|
|
1275
1275
|
}
|
|
1276
1276
|
}
|
|
1277
1277
|
|
|
1278
|
-
var formkitVersion = '
|
|
1278
|
+
var formkitVersion = '202608071813';
|
|
1279
1279
|
|
|
1280
1280
|
// Copyright (c) 2026 Alaska Airlines. All rights reserved. Licensed under the Apache-2.0 license
|
|
1281
1281
|
// See LICENSE in the project root for license information.
|
|
@@ -1275,7 +1275,7 @@ class AuroHelpText extends i$2 {
|
|
|
1275
1275
|
}
|
|
1276
1276
|
}
|
|
1277
1277
|
|
|
1278
|
-
var formkitVersion = '
|
|
1278
|
+
var formkitVersion = '202608071813';
|
|
1279
1279
|
|
|
1280
1280
|
// Copyright (c) 2026 Alaska Airlines. All rights reserved. Licensed under the Apache-2.0 license
|
|
1281
1281
|
// See LICENSE in the project root for license information.
|
|
@@ -1228,7 +1228,7 @@ class AuroHelpText extends LitElement {
|
|
|
1228
1228
|
}
|
|
1229
1229
|
}
|
|
1230
1230
|
|
|
1231
|
-
var formkitVersion = '
|
|
1231
|
+
var formkitVersion = '202608071813';
|
|
1232
1232
|
|
|
1233
1233
|
// Copyright (c) 2026 Alaska Airlines. All rights reserved. Licensed under the Apache-2.0 license
|
|
1234
1234
|
// See LICENSE in the project root for license information.
|
|
@@ -1228,7 +1228,7 @@ class AuroHelpText extends LitElement {
|
|
|
1228
1228
|
}
|
|
1229
1229
|
}
|
|
1230
1230
|
|
|
1231
|
-
var formkitVersion = '
|
|
1231
|
+
var formkitVersion = '202608071813';
|
|
1232
1232
|
|
|
1233
1233
|
// Copyright (c) 2026 Alaska Airlines. All rights reserved. Licensed under the Apache-2.0 license
|
|
1234
1234
|
// See LICENSE in the project root for license information.
|
|
@@ -4977,7 +4977,7 @@ let AuroHelpText$2 = class AuroHelpText extends i$3 {
|
|
|
4977
4977
|
}
|
|
4978
4978
|
};
|
|
4979
4979
|
|
|
4980
|
-
var formkitVersion$2 = '
|
|
4980
|
+
var formkitVersion$2 = '202608071813';
|
|
4981
4981
|
|
|
4982
4982
|
let AuroElement$2 = class AuroElement extends i$3 {
|
|
4983
4983
|
static get properties() {
|
|
@@ -5679,6 +5679,15 @@ class AuroDropdown extends AuroElement$2 {
|
|
|
5679
5679
|
|
|
5680
5680
|
connectedCallback() {
|
|
5681
5681
|
super.connectedCallback();
|
|
5682
|
+
// Re-register trigger event listeners removed by floater.disconnect() in
|
|
5683
|
+
// disconnectedCallback(). Fires when a parent element (e.g. auro-drawer)
|
|
5684
|
+
// moves this element to a new DOM location. firstUpdated() won't re-run,
|
|
5685
|
+
// so without this the trigger click/keydown handlers are permanently gone.
|
|
5686
|
+
// Guard on floater.element so this is a no-op on the initial connect
|
|
5687
|
+
// (before firstUpdated() has called configure()).
|
|
5688
|
+
if (this.floater?.element) {
|
|
5689
|
+
this.floater.configure(this, 'auroDropdown', !this.disableKeyboardHandling);
|
|
5690
|
+
}
|
|
5682
5691
|
}
|
|
5683
5692
|
|
|
5684
5693
|
disconnectedCallback() {
|
|
@@ -18666,7 +18675,7 @@ let AuroHelpText$1 = class AuroHelpText extends i$3 {
|
|
|
18666
18675
|
}
|
|
18667
18676
|
};
|
|
18668
18677
|
|
|
18669
|
-
var formkitVersion$1 = '
|
|
18678
|
+
var formkitVersion$1 = '202608071813';
|
|
18670
18679
|
|
|
18671
18680
|
// Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
|
|
18672
18681
|
// See LICENSE in the project root for license information.
|
|
@@ -19822,7 +19831,7 @@ class AuroBibtemplate extends i$3 {
|
|
|
19822
19831
|
}
|
|
19823
19832
|
}
|
|
19824
19833
|
|
|
19825
|
-
var formkitVersion = '
|
|
19834
|
+
var formkitVersion = '202608071813';
|
|
19826
19835
|
|
|
19827
19836
|
var styleCss$3 = i$6`.util_displayInline{display:inline}.util_displayInlineBlock{display:inline-block}.util_displayBlock{display:block}.util_displayFlex{display:flex}.util_displayHidden{display:none}.util_displayHiddenVisually{position:absolute;overflow:hidden;clip:rect(1px, 1px, 1px, 1px);width:1px;height:1px;padding:0;border:0}:host{display:block;text-align:left}:host [auro-dropdown]{--ds-auro-dropdown-trigger-background-color: transparent}:host #inputInBib::part(wrapper){box-shadow:none}:host #inputInBib::part(accent-left){display:none}:host([layout*=classic]) [auro-input]{width:100%}:host([layout*=classic]) [auro-input]::part(helpText){display:none}:host([layout*=classic]) #slotHolder{display:none}`;
|
|
19828
19837
|
|
|
@@ -4977,7 +4977,7 @@ let AuroHelpText$2 = class AuroHelpText extends i$3 {
|
|
|
4977
4977
|
}
|
|
4978
4978
|
};
|
|
4979
4979
|
|
|
4980
|
-
var formkitVersion$2 = '
|
|
4980
|
+
var formkitVersion$2 = '202608071813';
|
|
4981
4981
|
|
|
4982
4982
|
let AuroElement$2 = class AuroElement extends i$3 {
|
|
4983
4983
|
static get properties() {
|
|
@@ -5679,6 +5679,15 @@ class AuroDropdown extends AuroElement$2 {
|
|
|
5679
5679
|
|
|
5680
5680
|
connectedCallback() {
|
|
5681
5681
|
super.connectedCallback();
|
|
5682
|
+
// Re-register trigger event listeners removed by floater.disconnect() in
|
|
5683
|
+
// disconnectedCallback(). Fires when a parent element (e.g. auro-drawer)
|
|
5684
|
+
// moves this element to a new DOM location. firstUpdated() won't re-run,
|
|
5685
|
+
// so without this the trigger click/keydown handlers are permanently gone.
|
|
5686
|
+
// Guard on floater.element so this is a no-op on the initial connect
|
|
5687
|
+
// (before firstUpdated() has called configure()).
|
|
5688
|
+
if (this.floater?.element) {
|
|
5689
|
+
this.floater.configure(this, 'auroDropdown', !this.disableKeyboardHandling);
|
|
5690
|
+
}
|
|
5682
5691
|
}
|
|
5683
5692
|
|
|
5684
5693
|
disconnectedCallback() {
|
|
@@ -18666,7 +18675,7 @@ let AuroHelpText$1 = class AuroHelpText extends i$3 {
|
|
|
18666
18675
|
}
|
|
18667
18676
|
};
|
|
18668
18677
|
|
|
18669
|
-
var formkitVersion$1 = '
|
|
18678
|
+
var formkitVersion$1 = '202608071813';
|
|
18670
18679
|
|
|
18671
18680
|
// Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
|
|
18672
18681
|
// See LICENSE in the project root for license information.
|
|
@@ -19822,7 +19831,7 @@ class AuroBibtemplate extends i$3 {
|
|
|
19822
19831
|
}
|
|
19823
19832
|
}
|
|
19824
19833
|
|
|
19825
|
-
var formkitVersion = '
|
|
19834
|
+
var formkitVersion = '202608071813';
|
|
19826
19835
|
|
|
19827
19836
|
var styleCss$3 = i$6`.util_displayInline{display:inline}.util_displayInlineBlock{display:inline-block}.util_displayBlock{display:block}.util_displayFlex{display:flex}.util_displayHidden{display:none}.util_displayHiddenVisually{position:absolute;overflow:hidden;clip:rect(1px, 1px, 1px, 1px);width:1px;height:1px;padding:0;border:0}:host{display:block;text-align:left}:host [auro-dropdown]{--ds-auro-dropdown-trigger-background-color: transparent}:host #inputInBib::part(wrapper){box-shadow:none}:host #inputInBib::part(accent-left){display:none}:host([layout*=classic]) [auro-input]{width:100%}:host([layout*=classic]) [auro-input]::part(helpText){display:none}:host([layout*=classic]) #slotHolder{display:none}`;
|
|
19828
19837
|
|