@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
@@ -1,215 +0,0 @@
1
- # GENERATED by packages/build-tools/src/aiSpecGenerator.mjs — do not edit by hand.
2
- # Authored inputs live in ai/_authored/auro-counter.overlay.yaml
3
- component: auro-counter
4
- version: 0.0.0
5
- summary: Numeric stepper with increment/decrement buttons; composes into a counter-group. Native closest is <input type="number"> or a role="spinbutton" with real +/- buttons.
6
- generatedFrom:
7
- cem: custom-elements.json#auro-counter
8
- cssRecipe: components/counter/demo/css-only.md
9
- overlay: ai/_authored/auro-counter.overlay.yaml
10
- sourceOfTruth:
11
- component: components/counter/src/auro-counter.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
- .counter {
19
- display: inline-flex;
20
- align-items: center;
21
- gap: var(--ds-size-200, 1rem);
22
- font-family: var(--ds-font-family-default, sans-serif);
23
- }
24
-
25
- .counter__button {
26
- appearance: none;
27
- -webkit-appearance: none;
28
- width: var(--ds-size-400, 2rem);
29
- height: var(--ds-size-400, 2rem);
30
- border: 1px solid var(--ds-color-border-ui-default, #6e767f);
31
- border-radius: 50%;
32
- background-color: var(--ds-color-container-primary-default, #ffffff);
33
- color: var(--ds-color-text-primary-default, #00467f);
34
- font-size: var(--ds-size-300, 1.5rem);
35
- line-height: 1;
36
- cursor: pointer;
37
- display: inline-flex;
38
- align-items: center;
39
- justify-content: center;
40
- }
41
-
42
- .counter__button:focus-visible {
43
- outline: 2px solid var(--ds-color-border-active-default, #01426a);
44
- outline-offset: 2px;
45
- }
46
-
47
- .counter__button:disabled {
48
- cursor: not-allowed;
49
- opacity: 0.5;
50
- }
51
-
52
- .counter__value {
53
- appearance: textfield;
54
- -moz-appearance: textfield;
55
- width: var(--ds-size-500, 2.5rem);
56
- border: none;
57
- background: transparent;
58
- text-align: center;
59
- font-size: var(--ds-size-300, 1.5rem);
60
- color: var(--ds-color-text-primary-default, #2a2a2a);
61
- }
62
-
63
- .counter__value::-webkit-outer-spin-button,
64
- .counter__value::-webkit-inner-spin-button {
65
- -webkit-appearance: none;
66
- margin: 0;
67
- }
68
- api:
69
- attributes:
70
- - name: appearance
71
- tier: wc-only
72
- default: '''default'''
73
- description: Defines whether the component will be on lighter or darker backgrounds.
74
- - name: defaultSlot
75
- tier: wc-only
76
- description: The default slot content.
77
- - name: disabled
78
- tier: core
79
- native: disabled
80
- description: Indicates if the counter is disabled.
81
- - name: disableMax
82
- tier: enhanced
83
- description: Group will attach to counter to disable the increment button.
84
- - name: disableMin
85
- tier: enhanced
86
- description: Group will attach to counter to disable the decrement button.
87
- - name: error
88
- tier: wc-only
89
- description: Error state and message.
90
- - name: max
91
- tier: core
92
- native: max
93
- description: The maximum value for the counter.
94
- - name: min
95
- tier: core
96
- native: min
97
- description: The minimum value for the counter.
98
- - name: onDark
99
- tier: wc-only
100
- description: DEPRECATED - use `appearance="inverse"` instead.
101
- - name: validity
102
- tier: wc-only
103
- description: The validity state of the counter.
104
- - name: value
105
- tier: core
106
- native: value
107
- description: Sets the value of the counter.
108
- slots:
109
- - name: default
110
- tier: core
111
- description: Main label content for the counter.
112
- - name: ariaLabel.minus
113
- tier: core
114
- description: Accessible label for the decrement button.
115
- - name: ariaLabel.plus
116
- tier: core
117
- description: Accessible label for the increment button.
118
- - name: helpText
119
- tier: core
120
- description: Help text content for the counter.
121
- - name: description
122
- tier: core
123
- description: Descriptive content for the counter.
124
- events:
125
- - name: input
126
- tier: core
127
- methods:
128
- - name: _initializeDefaults
129
- tier: wc-only
130
- - name: register
131
- tier: wc-only
132
- - name: increment
133
- tier: wc-only
134
- - name: decrement
135
- tier: wc-only
136
- - name: validate
137
- tier: wc-only
138
- behavior:
139
- a11y:
140
- - Every control MUST have a programmatically associated <label> (for/id or wrapping).
141
- - Link help text via aria-describedby so it is announced after the label.
142
- - Reflect invalid state with aria-invalid="true|false" on the control.
143
- - Render validation errors with role="alert" aria-live="assertive" so they announce immediately.
144
- - Use <input type="number"> with an associated <label>, or role="spinbutton" with aria-valuenow/valuemin/valuemax.
145
- - The minus/plus controls are real <button>s with accessible names (see the ariaLabel.minus / ariaLabel.plus slots).
146
- keyboard:
147
- - All interactive affordances are real, focusable elements in DOM order.
148
- - Arrow Up/Down increment and decrement the value (native on number input).
149
- validation:
150
- - Clamp to min/max and disable the relevant button at the bounds; expose range errors with role="alert".
151
- gaps:
152
- - id: increment-and-decrement-button-wiring
153
- feature: Increment and decrement button wiring
154
- guidance: auro-counter exposes increment() and decrement() methods and handles all click wiring between its buttons and the displayed value.
155
- - id: automatic-min-max-button-disabling
156
- feature: Automatic min/max button disabling
157
- guidance: auro-counter automatically disables the decrement button when the value is at min and the increment button when the value is at max, providing a clear visual signal that further changes are not allowed.
158
- - id: group-level-min-max-coordination
159
- feature: Group-level min/max coordination
160
- guidance: auro-counter-group supports min and max properties that apply to the total of all child counters.
161
- - id: coordinated-value-object-and-total
162
- feature: Coordinated value object and total
163
- guidance: auro-counter-group exposes a single value property as an object keyed by each counter's name, along with a separate total property for the aggregate sum.
164
- - id: spinbutton-aria-semantics
165
- feature: Spinbutton ARIA semantics
166
- guidance: auro-counter renders a role="spinbutton" element with aria-valuemin, aria-valuemax, aria-valuenow, aria-valuetext, and aria-labelledby so assistive technology announces the value as a spinbutton — the role most screen readers expect for stepper controls.
167
- - id: validation-and-error-messaging
168
- feature: Validation and error messaging
169
- guidance: auro-counter integrates with @aurodesignsystem/form-validation to expose a validity property, an error attribute, and a help text region that switches to an alert with role="alert" and aria-live="assertive" when invalid.
170
- - id: keyboard-strategy
171
- feature: Keyboard strategy
172
- guidance: auro-counter and auro-counter-group install dedicated keyboard strategies that handle Arrow keys, Home/End, and tab order across the +/− buttons and the spinbutton, including ordered traversal of every counter inside a group.
173
- - id: disabled-state-and-propagation
174
- feature: Disabled state and propagation
175
- guidance: auro-counter exposes a single disabled attribute that disables both buttons and removes the spinbutton from the tab order, and auro-counter-group propagates appearance and theming to all child counters.
176
- - id: dropdown-layout
177
- feature: Dropdown layout
178
- guidance: auro-counter-group supports an isDropdown mode that renders the group inside an Auro dropdown with a trigger, value text, fullscreen breakpoint behavior, and configurable placement.
179
- - id: form-integration-events
180
- feature: Form integration events
181
- guidance: auro-counter dispatches input events with a structured detail.value, and auro-counter-group dispatches input events carrying both detail.total and detail.value plus auroFormElement-validated events so a parent auro-form can coordinate validation.
182
- - id: multi-brand-theming
183
- feature: Multi-brand theming
184
- guidance: auro-counter consumes Auro design tokens through its component logic, so it automatically picks up brand-specific theming when token packages are swapped.
185
- examples:
186
- - id: basic-counter
187
- html: |-
188
- <div class="counter">
189
- <label for="passengers">Passengers</label>
190
- <button type="button" class="counter__button" aria-label="Decrease passengers">&minus;</button>
191
- <input id="passengers" class="counter__value" type="number" min="0" max="9" step="1" value="0" />
192
- <button type="button" class="counter__button" aria-label="Increase passengers">+</button>
193
- </div>
194
- - id: group-of-counters
195
- html: |-
196
- <fieldset>
197
- <legend>Travelers</legend>
198
- <div class="counter">
199
- <label for="adults">Adults</label>
200
- <button type="button" class="counter__button" aria-label="Decrease adults">&minus;</button>
201
- <input id="adults" class="counter__value" type="number" min="1" max="9" step="1" value="1" />
202
- <button type="button" class="counter__button" aria-label="Increase adults">+</button>
203
- </div>
204
- <div class="counter">
205
- <label for="children">Children</label>
206
- <button type="button" class="counter__button" aria-label="Decrease children">&minus;</button>
207
- <input id="children" class="counter__value" type="number" min="0" max="8" step="1" value="0" />
208
- <button type="button" class="counter__button" aria-label="Increase children">+</button>
209
- </div>
210
- </fieldset>
211
- verify:
212
- - every color, size, spacing, radius, and font value uses var(--ds-*)
213
- - each control has an associated <label>
214
- - controls with aria-invalid="true" have a role="alert" message referenced by aria-describedby
215
- - 'axe: label, aria-valid-attr-value, color-contrast pass'
@@ -1,395 +0,0 @@
1
- # GENERATED by packages/build-tools/src/aiSpecGenerator.mjs — do not edit by hand.
2
- # Authored inputs live in ai/_authored/auro-datepicker.overlay.yaml
3
- component: auro-datepicker
4
- version: 0.0.0
5
- summary: 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).
6
- generatedFrom:
7
- cem: custom-elements.json#auro-datepicker
8
- cssRecipe: components/datepicker/demo/css-only.md
9
- overlay: ai/_authored/auro-datepicker.overlay.yaml
10
- sourceOfTruth:
11
- component: components/datepicker/src/auro-datepicker.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
- .datepicker {
19
- appearance: none;
20
- -webkit-appearance: none;
21
- width: 100%;
22
- height: var(--ds-size-600, 3rem);
23
- padding: 0 var(--ds-size-200, 1rem);
24
- border: 1px solid var(--ds-color-border-ui-default, #6e767f);
25
- border-radius: var(--ds-border-radius, 4px);
26
- background-color: var(--ds-color-container-primary-default, #ffffff);
27
- color: var(--ds-color-text-primary-default, #1d252c);
28
- font-family: var(--ds-font-family-default, sans-serif);
29
- font-size: var(--ds-text-body-default-size, 1rem);
30
- line-height: var(--ds-text-body-default-height, 1.5);
31
- cursor: pointer;
32
- }
33
-
34
- .datepicker:focus-visible {
35
- outline: 2px solid var(--ds-color-border-active-default, #01426a);
36
- outline-offset: 2px;
37
- }
38
-
39
- .datepicker:disabled {
40
- cursor: not-allowed;
41
- opacity: 0.5;
42
- }
43
-
44
- .datepicker:invalid {
45
- border-color: var(--ds-color-border-error-default, #d50000);
46
- }
47
- api:
48
- attributes:
49
- - name: appearance
50
- tier: wc-only
51
- default: '"default"'
52
- description: Defines whether the component will be on lighter or darker backgrounds.
53
- - name: autoPlacement
54
- tier: wc-only
55
- default: 'false'
56
- description: If declared, bib's position will be automatically calculated where to appear.
57
- - name: blackoutDates
58
- tier: wc-only
59
- default: '[]'
60
- description: Array of dates that cannot be selected.
61
- - name: blackoutLabel
62
- tier: wc-only
63
- default: '''unavailable'''
64
- description: Label announced for blackout (disabled but in-range) date cells.
65
- - name: calendarEndDate
66
- tier: wc-only
67
- default: undefined
68
- description: The last date that may be displayed in the calendar.
69
- - name: calendarGridLabel
70
- tier: wc-only
71
- default: '''Calendar days of the month'''
72
- description: Accessible label for the calendar grid containing the days of the month.
73
- - name: calendarFocusDate
74
- tier: wc-only
75
- description: The date that will first be visually rendered to the user in the calendar.
76
- - name: calendarStartDate
77
- tier: wc-only
78
- default: undefined
79
- description: The first date that may be displayed in the calendar.
80
- - name: centralDate
81
- tier: wc-only
82
- description: The date that determines the currently visible month.
83
- - name: disabled
84
- tier: core
85
- native: disabled
86
- default: 'false'
87
- description: If set, disables the datepicker.
88
- - name: dvInputOnly
89
- tier: wc-only
90
- default: 'false'
91
- description: If defined, the display value slot content will only mask the HTML5 input element.
92
- - name: error
93
- tier: wc-only
94
- description: When defined, sets persistent validity to `customError` and sets the validation message to the attribute value.
95
- - name: format
96
- tier: wc-only
97
- description: Specifies the date format.
98
- - name: locale
99
- tier: enhanced
100
- description: Defines the locale of the element.
101
- - name: fullscreenBreakpoint
102
- tier: wc-only
103
- default: '''sm'''
104
- description: Defines the screen size breakpoint at which the dropdown switches to fullscreen mode on mobile.
105
- - name: hasAllValues
106
- tier: enhanced
107
- default: 'false'
108
- - name: hasFocus
109
- tier: enhanced
110
- default: 'false'
111
- - name: hasValue
112
- tier: enhanced
113
- default: 'false'
114
- - name: inputmode
115
- tier: core
116
- native: inputmode
117
- description: Exposes inputmode attribute for input.
118
- - name: largeFullscreenHeadline
119
- tier: wc-only
120
- default: 'false'
121
- description: If declared, make bib.fullscreen.headline in HeadingDisplay.
122
- - name: layout
123
- tier: wc-only
124
- default: '''classic'''
125
- description: Sets the layout of the datepicker.
126
- - name: maxDate
127
- tier: core
128
- native: max
129
- description: Maximum date.
130
- - name: minDate
131
- tier: core
132
- native: min
133
- description: Minimum date.
134
- - name: monthFirst
135
- tier: wc-only
136
- - name: monthNames
137
- tier: wc-only
138
- description: Names of all 12 months to render in the calendar.
139
- - name: navLabelNextMonth
140
- tier: wc-only
141
- default: '''Next month'''
142
- description: Accessible label for the next month navigation button.
143
- - name: navLabelPrevMonth
144
- tier: wc-only
145
- default: '''Previous month'''
146
- description: Accessible label for the previous month navigation button.
147
- - name: noFlip
148
- tier: wc-only
149
- default: 'false'
150
- description: If declared, the bib will NOT flip to an alternate position when there isn't enough space in the specified `placement`.
151
- - name: noValidate
152
- tier: wc-only
153
- default: 'false'
154
- description: If set, disables auto-validation on blur.
155
- - name: offset
156
- tier: wc-only
157
- default: '0'
158
- description: Gap between the trigger element and bib.
159
- - name: onDark
160
- tier: wc-only
161
- default: 'false'
162
- description: DEPRECATED - use `appearance="inverse"` instead.
163
- - name: placeholder
164
- tier: core
165
- native: placeholder
166
- description: Placeholder text to display in the input(s) when no value is set.
167
- - name: placeholderEndDate
168
- tier: enhanced
169
- description: Optional placeholder text to display in the second input when using date range.
170
- - name: placement
171
- tier: wc-only
172
- default: '''bottom-start'''
173
- description: Position where the bib should appear relative to the trigger.
174
- - name: range
175
- tier: wc-only
176
- default: 'false'
177
- description: If set, turns on date range functionality in auro-calendar.
178
- - name: rangeLabelAfterRange
179
- tier: enhanced
180
- default: '''after range'''
181
- description: Label announced for cells after a fully selected range (both `dateFrom` and `dateTo` are set).
182
- - name: rangeLabelBeforeRange
183
- tier: enhanced
184
- default: '''before range'''
185
- description: Label announced for cells before the range start.
186
- - name: rangeLabelEnd
187
- tier: enhanced
188
- default: '''range end'''
189
- description: Label announced for the range end date cell.
190
- - name: rangeLabelEndPreview
191
- tier: enhanced
192
- default: '''previewing range end'''
193
- description: Label announced for the focused cell while previewing a range end (dateFrom set, dateTo not yet selected).
194
- - name: rangeLabelInRange
195
- tier: enhanced
196
- default: '''in range'''
197
- description: Label announced for cells within the selected range.
198
- - name: rangeLabelStart
199
- tier: enhanced
200
- default: '''range start'''
201
- description: Label announced for the range start date cell.
202
- - name: referenceDates
203
- tier: wc-only
204
- description: Dates that the user should have for reference as part of their decision-making when selecting a date.
205
- - name: required
206
- tier: core
207
- native: required
208
- default: 'false'
209
- description: Populates the `required` attribute on the input.
210
- - name: setCustomValidity
211
- tier: wc-only
212
- description: Sets a custom help text message to display for all validityStates.
213
- - name: setCustomValidityCustomError
214
- tier: enhanced
215
- description: Custom help text message to display when validity = `customError`.
216
- - name: setCustomValidityRangeOverflow
217
- tier: enhanced
218
- description: Custom help text message to display when validity = `rangeOverflow`.
219
- - name: setCustomValidityRangeUnderflow
220
- tier: enhanced
221
- description: Custom help text message to display when validity = `rangeUnderflow`.
222
- - name: setCustomValidityValueMissing
223
- tier: enhanced
224
- description: Custom help text message to display when validity = `valueMissing`.
225
- - name: shift
226
- tier: wc-only
227
- default: 'false'
228
- description: If declared, the dropdown will shift its position to avoid being cut off by the viewport.
229
- - name: stacked
230
- tier: wc-only
231
- default: 'false'
232
- description: Set true to make datepicker stacked style.
233
- - name: validity
234
- tier: wc-only
235
- default: undefined
236
- description: Specifies the `validityState` this element is in.
237
- - name: value
238
- tier: core
239
- native: value (on a native <input type="date">)
240
- default: undefined
241
- description: Value selected for the datepicker.
242
- - name: valueEnd
243
- tier: wc-only
244
- default: undefined
245
- description: Value selected for the second datepicker when using date range.
246
- - name: shape
247
- tier: wc-only
248
- - name: size
249
- tier: enhanced
250
- - name: ondark
251
- tier: wc-only
252
- slots:
253
- - name: helpText
254
- tier: core
255
- description: Defines the content of the helpText.
256
- - name: ariaLabel.bib.close
257
- tier: core
258
- description: Sets aria-label on close button in fullscreen bib
259
- - name: ariaLabel.input.clear
260
- tier: core
261
- description: Sets aria-label on clear button
262
- - name: bib.fullscreen.headline
263
- tier: core
264
- description: Defines the headline to display above bib.fullscreen.dateLabels in the mobile layout.
265
- - name: bib.fullscreen.dateLabel
266
- tier: core
267
- description: '**DEPRECATED** - Use `bib.fullscreen.fromLabel` instead.'
268
- - name: bib.fullscreen.fromLabel
269
- tier: core
270
- description: Defines the content to display above the first input in the mobile layout.
271
- - name: bib.fullscreen.toLabel
272
- tier: core
273
- description: Defines the content to display above the second input in the mobile layout when `range` is true.
274
- - name: label
275
- tier: core
276
- description: Defines the label content for the entire datepicker when `layout="snowflake"`.
277
- - name: toLabel
278
- tier: core
279
- description: Defines the label content for the second input when the `range` attribute is used.
280
- - name: fromLabel
281
- tier: core
282
- description: Defines the label content for the first input.
283
- - name: optionalFromLabel
284
- tier: core
285
- description: Overrides the "(optional)" text rendered next to the first input's label when the datepicker is not `required`.
286
- - name: optionalToLabel
287
- tier: core
288
- description: Overrides the "(optional)" text rendered next to the second input's label when `range` is set and the datepicker is not `required`.
289
- - name: date_YYYY_MM_DD
290
- tier: core
291
- description: Defines the content to display in the auro-calendar-cell for the specified date.
292
- - name: popover_YYYY_MM_DD
293
- tier: core
294
- description: Defines the content to display in the auro-calendar-cell popover for the specified date.
295
- events:
296
- - name: input
297
- tier: core
298
- - name: auroDatePicker-toggled
299
- tier: wc-only
300
- description: Notifies that the calendar dropdown has been opened/closed.
301
- - name: auroDatePicker-monthChanged
302
- tier: wc-only
303
- description: Notifies that the visible calendar month(s) have changed.
304
- - name: auroDatePicker-newSlotContent
305
- tier: wc-only
306
- description: Notifies that new slot content has been added to the datepicker.
307
- - name: auroFormElement-validated
308
- tier: wc-only
309
- description: Notifies that the component value(s) have been validated.
310
- methods:
311
- - name: register
312
- tier: wc-only
313
- - name: focus
314
- tier: wc-only
315
- - name: hideBib
316
- tier: wc-only
317
- - name: showBib
318
- tier: wc-only
319
- - name: resetInputs
320
- tier: wc-only
321
- - name: reset
322
- tier: wc-only
323
- - name: clear
324
- tier: wc-only
325
- - name: validate
326
- tier: wc-only
327
- - name: resetShapeClasses
328
- tier: wc-only
329
- - name: resetLayoutClasses
330
- tier: wc-only
331
- - name: updateComponentArchitecture
332
- tier: wc-only
333
- behavior:
334
- a11y:
335
- - Every control MUST have a programmatically associated <label> (for/id or wrapping).
336
- - Link help text via aria-describedby so it is announced after the label.
337
- - Reflect invalid state with aria-invalid="true|false" on the control.
338
- - Render validation errors with role="alert" aria-live="assertive" so they announce immediately.
339
- - Label the date input; the calendar popup is a dialog containing a grid (role="grid") of day cells.
340
- - Provide accessible names for the previous/next month navigation and announce the selected date(s).
341
- keyboard:
342
- - All interactive affordances are real, focusable elements in DOM order.
343
- - Arrow keys move between days, PageUp/PageDown change month, Enter selects, Esc closes.
344
- validation:
345
- - Range selection, blackout dates, and min/max beyond a single value are scripted; native <input type="date"> only supports min/max on one date.
346
- gaps:
347
- - id: accessibility
348
- feature: Accessibility
349
- guidance: Native date inputs vary widely across browsers and platforms, with inconsistent screen reader announcements, keyboard behavior, and focus management.
350
- - id: date-range-selection
351
- feature: Date range selection
352
- guidance: HTML has no native concept of a date range picker.
353
- - id: blackout-dates
354
- feature: Blackout dates
355
- guidance: Native date inputs have no mechanism to mark specific dates as unavailable.
356
- - id: custom-validation
357
- feature: Custom validation
358
- guidance: Native date validation is limited to required, min, and max, and error messages are browser-controlled.
359
- - id: responsive-layout
360
- feature: Responsive layout
361
- guidance: Native date inputs render a small, browser-controlled popup that cannot be styled or repositioned.
362
- - id: localization
363
- feature: Localization
364
- guidance: Native <input type="date"> follows the browser's locale for display format but offers no control over month names, navigation labels, or ARIA text.
365
- - id: custom-cell-content
366
- feature: Custom cell content
367
- guidance: Native date inputs render a fixed grid of numbers, with no way to add prices, icons, or supplementary information to individual dates.
368
- - id: design-system-integration
369
- feature: Design system integration
370
- guidance: A native <input type="date"> cannot be styled to match a design system — shadow DOM browser controls resist CSS customization and the calendar popup is entirely outside author control.
371
- examples:
372
- - id: basic-date-input
373
- html: |-
374
- <label>
375
- Departure date
376
- <input type="date" class="datepicker" name="departure" />
377
- </label>
378
- - id: date-range-using-two-inputs
379
- html: |-
380
- <fieldset>
381
- <legend>Travel dates</legend>
382
- <label>
383
- Departure
384
- <input type="date" class="datepicker" name="departure" id="departure" />
385
- </label>
386
- <label>
387
- Return
388
- <input type="date" class="datepicker" name="return" id="return" />
389
- </label>
390
- </fieldset>
391
- verify:
392
- - every color, size, spacing, radius, and font value uses var(--ds-*)
393
- - each control has an associated <label>
394
- - controls with aria-invalid="true" have a role="alert" message referenced by aria-describedby
395
- - 'axe: label, aria-valid-attr-value, color-contrast pass'