@aurodesignsystem-dev/auro-formkit 0.0.0-pr1489.5 → 0.0.0-pr1489.7
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 +249 -125
- package/components/checkbox/demo/getting-started.min.js +249 -125
- package/components/checkbox/demo/index.min.js +249 -125
- package/components/checkbox/demo/styles.min.css +1 -1
- package/components/checkbox/dist/index.js +249 -125
- package/components/checkbox/dist/registered.js +249 -125
- package/components/combobox/demo/customize.min.js +523 -262
- package/components/combobox/demo/getting-started.min.js +523 -262
- package/components/combobox/demo/index.min.js +523 -262
- package/components/combobox/demo/styles.min.css +1 -1
- package/components/combobox/dist/index.js +523 -262
- package/components/combobox/dist/registered.js +523 -262
- package/components/counter/demo/customize.min.js +271 -134
- package/components/counter/demo/index.min.js +271 -134
- package/components/counter/demo/styles.min.css +1 -1
- package/components/counter/dist/index.js +249 -125
- package/components/counter/dist/registered.js +249 -125
- package/components/datepicker/demo/accessibility.md +9 -6
- package/components/datepicker/demo/api.md +1 -1
- package/components/datepicker/demo/customize.min.js +1636 -656
- package/components/datepicker/demo/index.md +31 -3
- package/components/datepicker/demo/index.min.js +1652 -661
- package/components/datepicker/demo/keyboard-behavior.md +16 -16
- package/components/datepicker/demo/styles.min.css +1 -1
- package/components/datepicker/demo/voiceover.md +5 -3
- package/components/datepicker/demo/why-datepicker.md +2 -2
- package/components/datepicker/dist/index.js +1640 -660
- package/components/datepicker/dist/registered.js +1640 -660
- package/components/datepicker/dist/src/auro-calendar-cell.d.ts +52 -17
- package/components/datepicker/dist/src/auro-calendar-month.d.ts +12 -4
- package/components/datepicker/dist/src/auro-calendar.d.ts +161 -8
- package/components/datepicker/dist/src/auro-datepicker.d.ts +77 -79
- package/components/dropdown/demo/customize.min.js +22 -9
- package/components/dropdown/demo/getting-started.min.js +22 -9
- package/components/dropdown/demo/index.min.js +22 -9
- package/components/dropdown/demo/styles.min.css +1 -1
- package/components/dropdown/dist/auro-dropdown.d.ts +3 -2
- package/components/dropdown/dist/index.js +22 -9
- package/components/dropdown/dist/registered.js +22 -9
- package/components/form/demo/customize.min.js +3459 -1572
- package/components/form/demo/getting-started.min.js +3459 -1572
- package/components/form/demo/index.min.js +3459 -1572
- package/components/form/demo/registerDemoDeps.min.js +3459 -1572
- package/components/form/demo/styles.min.css +1 -1
- package/components/input/demo/customize.min.js +249 -125
- package/components/input/demo/getting-started.min.js +249 -125
- package/components/input/demo/index.min.js +249 -125
- package/components/input/demo/styles.min.css +1 -1
- package/components/input/dist/index.js +249 -125
- package/components/input/dist/registered.js +249 -125
- package/components/menu/demo/styles.min.css +1 -1
- package/components/radio/demo/customize.min.js +249 -125
- package/components/radio/demo/getting-started.min.js +249 -125
- package/components/radio/demo/index.min.js +249 -125
- package/components/radio/demo/styles.min.css +1 -1
- package/components/radio/dist/index.js +249 -125
- package/components/radio/dist/registered.js +249 -125
- package/components/select/demo/customize.min.js +271 -134
- package/components/select/demo/getting-started.min.js +271 -134
- package/components/select/demo/index.min.js +271 -134
- package/components/select/demo/styles.min.css +1 -1
- package/components/select/dist/index.js +271 -134
- package/components/select/dist/registered.js +271 -134
- package/custom-elements.json +500 -178
- package/package.json +8 -8
|
@@ -6,9 +6,6 @@ export class AuroCalendarCell extends LitElement {
|
|
|
6
6
|
selected: {
|
|
7
7
|
type: BooleanConstructor;
|
|
8
8
|
};
|
|
9
|
-
hovered: {
|
|
10
|
-
type: BooleanConstructor;
|
|
11
|
-
};
|
|
12
9
|
dateTo: {
|
|
13
10
|
type: StringConstructor;
|
|
14
11
|
};
|
|
@@ -31,9 +28,6 @@ export class AuroCalendarCell extends LitElement {
|
|
|
31
28
|
disabledDays: {
|
|
32
29
|
type: ArrayConstructor;
|
|
33
30
|
};
|
|
34
|
-
hoveredDate: {
|
|
35
|
-
type: StringConstructor;
|
|
36
|
-
};
|
|
37
31
|
isCurrentDate: {
|
|
38
32
|
type: BooleanConstructor;
|
|
39
33
|
};
|
|
@@ -46,10 +40,6 @@ export class AuroCalendarCell extends LitElement {
|
|
|
46
40
|
renderForDateSlot: {
|
|
47
41
|
type: BooleanConstructor;
|
|
48
42
|
};
|
|
49
|
-
active: {
|
|
50
|
-
type: BooleanConstructor;
|
|
51
|
-
reflect: boolean;
|
|
52
|
-
};
|
|
53
43
|
hasPopoverContent: {
|
|
54
44
|
type: BooleanConstructor;
|
|
55
45
|
};
|
|
@@ -57,7 +47,6 @@ export class AuroCalendarCell extends LitElement {
|
|
|
57
47
|
static get styles(): import("lit").CSSResult[];
|
|
58
48
|
day: any;
|
|
59
49
|
selected: boolean;
|
|
60
|
-
hovered: boolean;
|
|
61
50
|
dateTo: any;
|
|
62
51
|
dateFrom: any;
|
|
63
52
|
month: any;
|
|
@@ -65,7 +54,6 @@ export class AuroCalendarCell extends LitElement {
|
|
|
65
54
|
max: any;
|
|
66
55
|
disabled: boolean;
|
|
67
56
|
disabledDays: any[];
|
|
68
|
-
hoveredDate: any;
|
|
69
57
|
isCurrentDate: boolean;
|
|
70
58
|
_locale: any;
|
|
71
59
|
dateStr: string | null;
|
|
@@ -77,11 +65,12 @@ export class AuroCalendarCell extends LitElement {
|
|
|
77
65
|
set locale(value: any);
|
|
78
66
|
get locale(): any;
|
|
79
67
|
/**
|
|
80
|
-
* Handles selected
|
|
68
|
+
* Handles selected state of the calendar cell when the selection changes.
|
|
69
|
+
* Also clears any imperative range preview classes so classMap is the
|
|
70
|
+
* sole source of truth after a selection update.
|
|
81
71
|
* @private
|
|
82
72
|
* @param {Number} dateFrom - Depart date.
|
|
83
73
|
* @param {Number} dateTo - Return date.
|
|
84
|
-
* @param {Number} hoveredDate - Hovered date.
|
|
85
74
|
* @param {Object} day - An object containing the dateFrom and day of month values.
|
|
86
75
|
* @returns {void}
|
|
87
76
|
*/
|
|
@@ -94,11 +83,21 @@ export class AuroCalendarCell extends LitElement {
|
|
|
94
83
|
private handleTap;
|
|
95
84
|
/**
|
|
96
85
|
* Handles user hover events and dispatches a custom event.
|
|
97
|
-
*
|
|
86
|
+
* Does NOT set any reactive properties — the range preview is handled
|
|
87
|
+
* imperatively by the calendar component to avoid O(N) re-renders.
|
|
98
88
|
* @private
|
|
99
89
|
* @returns {void}
|
|
100
90
|
*/
|
|
101
91
|
private handleHover;
|
|
92
|
+
/**
|
|
93
|
+
* Handles focus events on the cell button.
|
|
94
|
+
* Dispatches a lightweight event for the calendar to handle SR
|
|
95
|
+
* announcements and range preview updates without triggering
|
|
96
|
+
* any Lit lifecycle updates.
|
|
97
|
+
* @private
|
|
98
|
+
* @returns {void}
|
|
99
|
+
*/
|
|
100
|
+
private handleFocus;
|
|
102
101
|
/**
|
|
103
102
|
* Checks if the current date is outside the valid min/max range.
|
|
104
103
|
* Out-of-range cells are not focusable and are hidden from screen readers.
|
|
@@ -185,9 +184,9 @@ export class AuroCalendarCell extends LitElement {
|
|
|
185
184
|
*/
|
|
186
185
|
private isLastHoveredDate;
|
|
187
186
|
/**
|
|
188
|
-
* Checks if the current date is a
|
|
187
|
+
* Checks if the current date is a referenced date.
|
|
189
188
|
* @param {Object} dateStr - The date string in MM_DD_YYYY format.
|
|
190
|
-
* @returns Boolean - True if the date is a
|
|
189
|
+
* @returns Boolean - True if the date is a referenced date.
|
|
191
190
|
*/
|
|
192
191
|
isReferenceDate(dateStr: Object): boolean;
|
|
193
192
|
/**
|
|
@@ -212,6 +211,7 @@ export class AuroCalendarCell extends LitElement {
|
|
|
212
211
|
firstUpdated(): void;
|
|
213
212
|
datepicker: any;
|
|
214
213
|
_slotContentHandler: (() => void) | undefined;
|
|
214
|
+
_cachedButton: Element | null | undefined;
|
|
215
215
|
calendarMonth: any;
|
|
216
216
|
/**
|
|
217
217
|
* Configures the popover instance with the calendar month boundary.
|
|
@@ -223,11 +223,46 @@ export class AuroCalendarCell extends LitElement {
|
|
|
223
223
|
private configurePopover;
|
|
224
224
|
auroPopover: any;
|
|
225
225
|
updated(properties: any): void;
|
|
226
|
+
/**
|
|
227
|
+
* Updates ARIA attributes on the host element so that
|
|
228
|
+
* ariaActiveDescendantElement can expose cell info to the SR.
|
|
229
|
+
* @private
|
|
230
|
+
* @returns {void}
|
|
231
|
+
*/
|
|
232
|
+
private updateHostAria;
|
|
226
233
|
/**
|
|
227
234
|
* Programmatically focuses the cell's interactive button element.
|
|
235
|
+
* Uses focusVisible: true so the :focus-visible ring appears even when
|
|
236
|
+
* the bib was opened via mouse click (which sets mouse input modality).
|
|
228
237
|
* @returns {void}
|
|
229
238
|
*/
|
|
230
239
|
focusButton(): void;
|
|
240
|
+
/**
|
|
241
|
+
* Imperatively marks this cell as active without triggering a Lit re-render.
|
|
242
|
+
* Note: buttons stay tabindex="-1" because the grid uses aria-activedescendant.
|
|
243
|
+
* @returns {void}
|
|
244
|
+
*/
|
|
245
|
+
setActive(): void;
|
|
246
|
+
/**
|
|
247
|
+
* Imperatively marks this cell as inactive without triggering a Lit re-render.
|
|
248
|
+
* @returns {void}
|
|
249
|
+
*/
|
|
250
|
+
clearActive(): void;
|
|
251
|
+
/**
|
|
252
|
+
* Updates range preview classes imperatively (no Lit re-render).
|
|
253
|
+
* Called by the calendar component when the hovered date changes
|
|
254
|
+
* during range selection (dateFrom set, dateTo not yet set).
|
|
255
|
+
* @param {Number} hoveredDate - Unix timestamp of the currently hovered/focused date.
|
|
256
|
+
* @param {Number} dateFrom - Unix timestamp of the selected departure date.
|
|
257
|
+
* @returns {void}
|
|
258
|
+
*/
|
|
259
|
+
updateRangePreviewClasses(hoveredDate: number, dateFrom: number): void;
|
|
260
|
+
/**
|
|
261
|
+
* Clears all imperative range preview classes from the cell button.
|
|
262
|
+
* Called when a selection occurs so classMap becomes the sole source of truth.
|
|
263
|
+
* @returns {void}
|
|
264
|
+
*/
|
|
265
|
+
clearRangePreviewClasses(): void;
|
|
231
266
|
renderCellButton(): import("lit-html").TemplateResult;
|
|
232
267
|
render(): import("lit-html").TemplateResult;
|
|
233
268
|
}
|
|
@@ -37,12 +37,20 @@ export class AuroCalendarMonth extends RangeDatepickerCalendar {
|
|
|
37
37
|
*/
|
|
38
38
|
getFocusableCells(): any[];
|
|
39
39
|
/**
|
|
40
|
-
*
|
|
41
|
-
*
|
|
40
|
+
* Overrides the base class handler to prevent setting `this.hoveredDate`
|
|
41
|
+
* as a reactive property. Instead, just dispatches the event upward so
|
|
42
|
+
* the calendar can handle range preview imperatively.
|
|
42
43
|
* @private
|
|
43
|
-
* @param {
|
|
44
|
+
* @param {CustomEvent} event - The date-is-hovered event from a cell.
|
|
44
45
|
* @returns {void}
|
|
45
46
|
*/
|
|
46
|
-
private
|
|
47
|
+
private handleDateHovered;
|
|
48
|
+
/**
|
|
49
|
+
* Dispatches a bubbling event when the mouse leaves the date grid body
|
|
50
|
+
* so the parent calendar can clear the range hover preview.
|
|
51
|
+
* @private
|
|
52
|
+
* @returns {void}
|
|
53
|
+
*/
|
|
54
|
+
private handleTbodyMouseLeave;
|
|
47
55
|
}
|
|
48
56
|
import { RangeDatepickerCalendar } from './vendor/wc-range-datepicker/range-datepicker-calendar.js';
|
|
@@ -129,6 +129,12 @@ export class AuroCalendar extends RangeDatepicker {
|
|
|
129
129
|
* @private
|
|
130
130
|
*/
|
|
131
131
|
private activeCellDate;
|
|
132
|
+
/**
|
|
133
|
+
* Whether the #calendarGrid wrapper currently has focus.
|
|
134
|
+
* Used to determine whether the visualFocus ring should be shown.
|
|
135
|
+
* @private
|
|
136
|
+
*/
|
|
137
|
+
private _gridHasFocus;
|
|
132
138
|
/**
|
|
133
139
|
* @private
|
|
134
140
|
*/
|
|
@@ -154,16 +160,40 @@ export class AuroCalendar extends RangeDatepicker {
|
|
|
154
160
|
*/
|
|
155
161
|
private buttonTag;
|
|
156
162
|
dropdown: any;
|
|
163
|
+
/**
|
|
164
|
+
* Unique instance ID for the live region element.
|
|
165
|
+
* @private
|
|
166
|
+
*/
|
|
167
|
+
private _calendarInstanceId;
|
|
168
|
+
/**
|
|
169
|
+
* Updates the month and year when the user navigates to the previous calendar month.
|
|
170
|
+
* @private
|
|
171
|
+
* @param {Object} [options] - Optional settings.
|
|
172
|
+
* @param {boolean} [options.skipActiveUpdate=false] - When true, skip the active cell
|
|
173
|
+
* recomputation. Used by arrow key handlers that manage the active cell themselves.
|
|
174
|
+
* @returns {void}
|
|
175
|
+
*/
|
|
176
|
+
private handlePrevMonth;
|
|
177
|
+
/**
|
|
178
|
+
* Updates the month and year when the user navigates to the next calendar month.
|
|
179
|
+
* @private
|
|
180
|
+
* @param {Object} [options] - Optional settings.
|
|
181
|
+
* @param {boolean} [options.skipActiveUpdate=false] - When true, skip the active cell
|
|
182
|
+
* recomputation. Used by arrow key handlers that manage the active cell themselves.
|
|
183
|
+
* @returns {void}
|
|
184
|
+
*/
|
|
185
|
+
private handleNextMonth;
|
|
157
186
|
/**
|
|
158
187
|
* Announces the current month and year via the live region after navigation.
|
|
159
188
|
* @private
|
|
160
189
|
* @returns {void}
|
|
161
190
|
*/
|
|
162
191
|
private announceMonthChange;
|
|
192
|
+
_focusAnnounceTimer: any;
|
|
163
193
|
/**
|
|
164
|
-
*
|
|
165
|
-
*
|
|
166
|
-
*
|
|
194
|
+
* Updates the active cell after month navigation (prev/next buttons).
|
|
195
|
+
* Always moves the active cell to the first enabled date in the newly
|
|
196
|
+
* visible months so that tabbing back to the grid lands on an enabled cell.
|
|
167
197
|
* @private
|
|
168
198
|
* @returns {void}
|
|
169
199
|
*/
|
|
@@ -201,17 +231,32 @@ export class AuroCalendar extends RangeDatepicker {
|
|
|
201
231
|
private getAllFocusableCells;
|
|
202
232
|
/**
|
|
203
233
|
* Sets the active cell across all months. Only one cell has tabindex="0" at a time.
|
|
234
|
+
* Uses imperative DOM manipulation — no Lit re-render triggered.
|
|
235
|
+
* Also updates ariaActiveDescendantElement on the grid wrapper so
|
|
236
|
+
* screen readers announce the active cell without moving DOM focus.
|
|
204
237
|
* @param {Number} date - Unix timestamp of the cell to activate.
|
|
205
238
|
* @returns {void}
|
|
206
239
|
*/
|
|
207
240
|
setActiveCell(date: number): void;
|
|
208
241
|
/**
|
|
209
|
-
* Focuses the
|
|
210
|
-
*
|
|
211
|
-
*
|
|
242
|
+
* Focuses the calendar grid wrapper and sets the active cell.
|
|
243
|
+
* DOM focus stays on the grid wrapper; the aria-live region
|
|
244
|
+
* tells the screen reader which cell is "active".
|
|
212
245
|
* @returns {void}
|
|
213
246
|
*/
|
|
214
247
|
focusActiveCell(): void;
|
|
248
|
+
/**
|
|
249
|
+
* Shows the activeCell ring when the grid gains focus.
|
|
250
|
+
* @private
|
|
251
|
+
* @returns {void}
|
|
252
|
+
*/
|
|
253
|
+
private handleGridFocusIn;
|
|
254
|
+
/**
|
|
255
|
+
* Hides the activeCell ring when the grid loses focus.
|
|
256
|
+
* @private
|
|
257
|
+
* @returns {void}
|
|
258
|
+
*/
|
|
259
|
+
private handleGridFocusOut;
|
|
215
260
|
/**
|
|
216
261
|
* Computes the initial active date from data properties alone — no DOM required.
|
|
217
262
|
* Priority:
|
|
@@ -223,7 +268,7 @@ export class AuroCalendar extends RangeDatepicker {
|
|
|
223
268
|
* 5b. First enabled date scanning forward from finite min (unbounded max)
|
|
224
269
|
* 5c. First enabled date scanning backward from finite max (unbounded min)
|
|
225
270
|
* 6. First in-range date (even if blackout) so focus can land somewhere
|
|
226
|
-
* 7.
|
|
271
|
+
* 7. Undefined — no valid target.
|
|
227
272
|
*
|
|
228
273
|
* @private
|
|
229
274
|
* @param {Object} [options] - Optional settings.
|
|
@@ -233,6 +278,24 @@ export class AuroCalendar extends RangeDatepicker {
|
|
|
233
278
|
* @returns {Number|undefined} Unix timestamp (seconds) of the date to activate, or undefined.
|
|
234
279
|
*/
|
|
235
280
|
private computeActiveDate;
|
|
281
|
+
/**
|
|
282
|
+
* Checks if a target date (unix seconds) is within the configured [min, max] range.
|
|
283
|
+
* Returns false if the date falls outside the range, preventing navigation
|
|
284
|
+
* to months where all dates are disabled.
|
|
285
|
+
* @private
|
|
286
|
+
* @param {Number} targetTs - Unix timestamp in seconds.
|
|
287
|
+
* @returns {Boolean} True if the date is within range.
|
|
288
|
+
*/
|
|
289
|
+
private isDateInRange;
|
|
290
|
+
/**
|
|
291
|
+
* Handles arrow key navigation on the calendar grid wrapper.
|
|
292
|
+
* Focus stays on the grid wrapper; only ariaActiveDescendantElement
|
|
293
|
+
* and the visual active-cell indicator change.
|
|
294
|
+
* @private
|
|
295
|
+
* @param {KeyboardEvent} event - The keyboard event.
|
|
296
|
+
* @returns {void}
|
|
297
|
+
*/
|
|
298
|
+
private handleGridKeyDown;
|
|
236
299
|
/**
|
|
237
300
|
* Handles cross-month boundary navigation events from month components.
|
|
238
301
|
* @private
|
|
@@ -247,6 +310,60 @@ export class AuroCalendar extends RangeDatepicker {
|
|
|
247
310
|
* @returns {void}
|
|
248
311
|
*/
|
|
249
312
|
private handleCellActivate;
|
|
313
|
+
/**
|
|
314
|
+
* Handles focus events from calendar cells.
|
|
315
|
+
* Updates the live region with an SR announcement and triggers
|
|
316
|
+
* the imperative range preview if applicable.
|
|
317
|
+
* @private
|
|
318
|
+
* @param {CustomEvent} event - The calendar-cell-focused event.
|
|
319
|
+
* @returns {void}
|
|
320
|
+
*/
|
|
321
|
+
private handleCellFocused;
|
|
322
|
+
/**
|
|
323
|
+
* Builds a full SR announcement string for a focused cell date.
|
|
324
|
+
* Includes the localized date, range position, popover content,
|
|
325
|
+
* and blackout status.
|
|
326
|
+
* @private
|
|
327
|
+
* @param {Number} date - Unix timestamp (seconds) of the focused cell.
|
|
328
|
+
* @returns {String} The announcement string.
|
|
329
|
+
*/
|
|
330
|
+
private buildFocusAnnouncement;
|
|
331
|
+
/**
|
|
332
|
+
* Determines the range position label for a given date.
|
|
333
|
+
* @private
|
|
334
|
+
* @param {Number} date - Unix timestamp (seconds).
|
|
335
|
+
* @returns {String|null} The range position label, or null.
|
|
336
|
+
*/
|
|
337
|
+
private getRangePositionLabel;
|
|
338
|
+
/**
|
|
339
|
+
* Checks whether a given date is a blackout date.
|
|
340
|
+
* @private
|
|
341
|
+
* @param {Number} dateTs - Unix timestamp (seconds).
|
|
342
|
+
* @returns {Boolean} True if the date is blacked out.
|
|
343
|
+
*/
|
|
344
|
+
private isDateBlackout;
|
|
345
|
+
/**
|
|
346
|
+
* Updates the range preview classes imperatively across all cells.
|
|
347
|
+
* Only active when in range mode with dateFrom set and dateTo not yet set.
|
|
348
|
+
* @private
|
|
349
|
+
* @param {Number} hoveredDate - Unix timestamp of the hovered/focused date.
|
|
350
|
+
* @returns {void}
|
|
351
|
+
*/
|
|
352
|
+
private updateRangePreview;
|
|
353
|
+
/**
|
|
354
|
+
* Clears range preview classes from all cells.
|
|
355
|
+
* @private
|
|
356
|
+
* @returns {void}
|
|
357
|
+
*/
|
|
358
|
+
private clearRangePreview;
|
|
359
|
+
/**
|
|
360
|
+
* Overrides the base class handler to prevent setting `this.hoveredDate`
|
|
361
|
+
* as a reactive property. Instead, handles the range preview imperatively.
|
|
362
|
+
* @private
|
|
363
|
+
* @param {CustomEvent} event - The hovered-date-changed event from a month.
|
|
364
|
+
* @returns {void}
|
|
365
|
+
*/
|
|
366
|
+
private hoveredDateChanged;
|
|
250
367
|
/**
|
|
251
368
|
* Scrolls the calendar to ensure the month containing the active cell is visible.
|
|
252
369
|
* @private
|
|
@@ -254,12 +371,48 @@ export class AuroCalendar extends RangeDatepicker {
|
|
|
254
371
|
*/
|
|
255
372
|
private scrollToActiveCell;
|
|
256
373
|
/**
|
|
257
|
-
*
|
|
374
|
+
* Returns (and lazily creates) an aria-live region inside the dropdown's
|
|
375
|
+
* <dialog> element. This placement is critical for two reasons:
|
|
376
|
+
*
|
|
377
|
+
* 1. Inside the dialog's accessible scope — dialog.showModal() makes
|
|
378
|
+
* everything outside the top-layer dialog inert, and desktop modal
|
|
379
|
+
* mode uses _setPageInert() on document.body siblings. A live region
|
|
380
|
+
* on document.body would be invisible to screen readers in both cases.
|
|
381
|
+
*
|
|
382
|
+
* 2. Not nested in shadow DOM — Chrome inconsistently observes aria-live
|
|
383
|
+
* mutations inside shadow DOM across machines and versions. The dialog
|
|
384
|
+
* element is only one shadow root deep (the dropdown bib's shadow DOM),
|
|
385
|
+
* which Chrome handles reliably. The calendar's own shadow DOM (nested
|
|
386
|
+
* inside the bib via slotting) is two+ levels deep and unreliable.
|
|
387
|
+
*
|
|
388
|
+
* @private
|
|
389
|
+
* @returns {HTMLElement} The live region element.
|
|
390
|
+
*/
|
|
391
|
+
private getOrCreateLiveRegion;
|
|
392
|
+
_liveRegion: any;
|
|
393
|
+
_announceRafId: any;
|
|
394
|
+
/**
|
|
395
|
+
* Announces a date selection or focus change via the live region.
|
|
396
|
+
* Uses requestAnimationFrame to ensure the clear and set happen in
|
|
397
|
+
* separate rendering frames — Chrome may coalesce synchronous or
|
|
398
|
+
* microtask-deferred mutations into a single accessibility tree update.
|
|
258
399
|
* @private
|
|
259
400
|
* @param {String} dateStr - The localized date string to announce.
|
|
260
401
|
* @returns {void}
|
|
261
402
|
*/
|
|
262
403
|
private announceSelection;
|
|
404
|
+
/**
|
|
405
|
+
* Debounced version of announceSelection for focus navigation.
|
|
406
|
+
* Uses the assertive live region with a 150ms debounce so only the
|
|
407
|
+
* final cell after rapid arrow-key traversal is announced. We
|
|
408
|
+
* originally tried aria-live="polite" here, but VoiceOver treats
|
|
409
|
+
* polite as "wait until idle" — which never happens during active
|
|
410
|
+
* keyboard navigation — so the announcements were silently dropped.
|
|
411
|
+
* @private
|
|
412
|
+
* @param {String} dateStr - The localized date string to announce.
|
|
413
|
+
* @returns {void}
|
|
414
|
+
*/
|
|
415
|
+
private announceFocusDebounced;
|
|
263
416
|
/**
|
|
264
417
|
* Formats a Unix timestamp (seconds) as a localized date string for SR announcements.
|
|
265
418
|
* @private
|
|
@@ -39,13 +39,10 @@ export class AuroDatePicker extends AuroElement {
|
|
|
39
39
|
static get properties(): {
|
|
40
40
|
/**
|
|
41
41
|
* Defines whether the component will be on lighter or darker backgrounds.
|
|
42
|
-
* @
|
|
42
|
+
* @type {'default' | 'inverse'}
|
|
43
43
|
* @default 'default'
|
|
44
44
|
*/
|
|
45
|
-
appearance:
|
|
46
|
-
type: StringConstructor;
|
|
47
|
-
reflect: boolean;
|
|
48
|
-
};
|
|
45
|
+
appearance: "default" | "inverse";
|
|
49
46
|
/**
|
|
50
47
|
* If declared, bib's position will be automatically calculated where to appear.
|
|
51
48
|
* @default false
|
|
@@ -54,6 +51,20 @@ export class AuroDatePicker extends AuroElement {
|
|
|
54
51
|
type: BooleanConstructor;
|
|
55
52
|
reflect: boolean;
|
|
56
53
|
};
|
|
54
|
+
/**
|
|
55
|
+
* Array of dates that cannot be selected. Dates should be in ISO format (YYYY-MM-DD).
|
|
56
|
+
*/
|
|
57
|
+
blackoutDates: {
|
|
58
|
+
type: ArrayConstructor;
|
|
59
|
+
reflect: boolean;
|
|
60
|
+
};
|
|
61
|
+
/**
|
|
62
|
+
* Label announced for blackout (disabled but in-range) date cells.
|
|
63
|
+
*/
|
|
64
|
+
blackoutLabel: {
|
|
65
|
+
type: StringConstructor;
|
|
66
|
+
reflect: boolean;
|
|
67
|
+
};
|
|
57
68
|
/**
|
|
58
69
|
* The last date that may be displayed in the calendar.
|
|
59
70
|
*/
|
|
@@ -102,24 +113,6 @@ export class AuroDatePicker extends AuroElement {
|
|
|
102
113
|
type: StringConstructor;
|
|
103
114
|
reflect: boolean;
|
|
104
115
|
};
|
|
105
|
-
hasFocus: {
|
|
106
|
-
type: BooleanConstructor;
|
|
107
|
-
reflect: boolean;
|
|
108
|
-
};
|
|
109
|
-
/**
|
|
110
|
-
* @private
|
|
111
|
-
*/
|
|
112
|
-
hasValue: {
|
|
113
|
-
type: BooleanConstructor;
|
|
114
|
-
reflect: boolean;
|
|
115
|
-
};
|
|
116
|
-
/**
|
|
117
|
-
* @private
|
|
118
|
-
*/
|
|
119
|
-
hasAllValues: {
|
|
120
|
-
type: BooleanConstructor;
|
|
121
|
-
reflect: boolean;
|
|
122
|
-
};
|
|
123
116
|
/**
|
|
124
117
|
* Specifies the date format. The default is `mm/dd/yyyy`.
|
|
125
118
|
*/
|
|
@@ -136,6 +129,24 @@ export class AuroDatePicker extends AuroElement {
|
|
|
136
129
|
* @default 'sm'
|
|
137
130
|
*/
|
|
138
131
|
fullscreenBreakpoint: "xs" | "sm" | "md" | "lg" | "xl" | "disabled";
|
|
132
|
+
/**
|
|
133
|
+
* @private
|
|
134
|
+
*/
|
|
135
|
+
hasAllValues: {
|
|
136
|
+
type: BooleanConstructor;
|
|
137
|
+
reflect: boolean;
|
|
138
|
+
};
|
|
139
|
+
hasFocus: {
|
|
140
|
+
type: BooleanConstructor;
|
|
141
|
+
reflect: boolean;
|
|
142
|
+
};
|
|
143
|
+
/**
|
|
144
|
+
* @private
|
|
145
|
+
*/
|
|
146
|
+
hasValue: {
|
|
147
|
+
type: BooleanConstructor;
|
|
148
|
+
reflect: boolean;
|
|
149
|
+
};
|
|
139
150
|
/** Exposes inputmode attribute for input. */
|
|
140
151
|
inputmode: {
|
|
141
152
|
type: StringConstructor;
|
|
@@ -170,6 +181,12 @@ export class AuroDatePicker extends AuroElement {
|
|
|
170
181
|
type: StringConstructor;
|
|
171
182
|
reflect: boolean;
|
|
172
183
|
};
|
|
184
|
+
/**
|
|
185
|
+
* @private
|
|
186
|
+
*/
|
|
187
|
+
monthFirst: {
|
|
188
|
+
type: BooleanConstructor;
|
|
189
|
+
};
|
|
173
190
|
/**
|
|
174
191
|
* Names of all 12 months to render in the calendar, used for localization of date string in mobile layout.
|
|
175
192
|
*/
|
|
@@ -177,23 +194,24 @@ export class AuroDatePicker extends AuroElement {
|
|
|
177
194
|
type: ArrayConstructor;
|
|
178
195
|
};
|
|
179
196
|
/**
|
|
180
|
-
*
|
|
197
|
+
* Accessible label for the next month navigation button.
|
|
181
198
|
*/
|
|
182
|
-
|
|
183
|
-
type:
|
|
199
|
+
navLabelNextMonth: {
|
|
200
|
+
type: StringConstructor;
|
|
201
|
+
reflect: boolean;
|
|
184
202
|
};
|
|
185
203
|
/**
|
|
186
|
-
*
|
|
187
|
-
* when there isn't enough space in the specified `placement`.
|
|
204
|
+
* Accessible label for the previous month navigation button.
|
|
188
205
|
*/
|
|
189
|
-
|
|
190
|
-
type:
|
|
206
|
+
navLabelPrevMonth: {
|
|
207
|
+
type: StringConstructor;
|
|
191
208
|
reflect: boolean;
|
|
192
209
|
};
|
|
193
210
|
/**
|
|
194
|
-
* If declared, the
|
|
211
|
+
* If declared, the bib will NOT flip to an alternate position
|
|
212
|
+
* when there isn't enough space in the specified `placement`.
|
|
195
213
|
*/
|
|
196
|
-
|
|
214
|
+
noFlip: {
|
|
197
215
|
type: BooleanConstructor;
|
|
198
216
|
reflect: boolean;
|
|
199
217
|
};
|
|
@@ -249,16 +267,9 @@ export class AuroDatePicker extends AuroElement {
|
|
|
249
267
|
reflect: boolean;
|
|
250
268
|
};
|
|
251
269
|
/**
|
|
252
|
-
* Label announced for the range start
|
|
253
|
-
*/
|
|
254
|
-
rangeLabelStart: {
|
|
255
|
-
type: StringConstructor;
|
|
256
|
-
reflect: boolean;
|
|
257
|
-
};
|
|
258
|
-
/**
|
|
259
|
-
* Label announced for the range end date cell.
|
|
270
|
+
* Label announced for cells after the range (or after start when no end is selected).
|
|
260
271
|
*/
|
|
261
|
-
|
|
272
|
+
rangeLabelAfterRange: {
|
|
262
273
|
type: StringConstructor;
|
|
263
274
|
reflect: boolean;
|
|
264
275
|
};
|
|
@@ -270,44 +281,23 @@ export class AuroDatePicker extends AuroElement {
|
|
|
270
281
|
reflect: boolean;
|
|
271
282
|
};
|
|
272
283
|
/**
|
|
273
|
-
* Label announced for
|
|
274
|
-
*/
|
|
275
|
-
rangeLabelInRange: {
|
|
276
|
-
type: StringConstructor;
|
|
277
|
-
reflect: boolean;
|
|
278
|
-
};
|
|
279
|
-
/**
|
|
280
|
-
* Label announced for cells after the range (or after start when no end is selected).
|
|
281
|
-
*/
|
|
282
|
-
rangeLabelAfterRange: {
|
|
283
|
-
type: StringConstructor;
|
|
284
|
-
reflect: boolean;
|
|
285
|
-
};
|
|
286
|
-
/**
|
|
287
|
-
* Array of dates that cannot be selected. Dates should be in ISO format (YYYY-MM-DD).
|
|
288
|
-
*/
|
|
289
|
-
blackoutDates: {
|
|
290
|
-
type: ArrayConstructor;
|
|
291
|
-
reflect: boolean;
|
|
292
|
-
};
|
|
293
|
-
/**
|
|
294
|
-
* Label announced for blackout (disabled but in-range) date cells.
|
|
284
|
+
* Label announced for the range end date cell.
|
|
295
285
|
*/
|
|
296
|
-
|
|
286
|
+
rangeLabelEnd: {
|
|
297
287
|
type: StringConstructor;
|
|
298
288
|
reflect: boolean;
|
|
299
289
|
};
|
|
300
290
|
/**
|
|
301
|
-
*
|
|
291
|
+
* Label announced for cells within the selected range.
|
|
302
292
|
*/
|
|
303
|
-
|
|
293
|
+
rangeLabelInRange: {
|
|
304
294
|
type: StringConstructor;
|
|
305
295
|
reflect: boolean;
|
|
306
296
|
};
|
|
307
297
|
/**
|
|
308
|
-
*
|
|
298
|
+
* Label announced for the range start date cell.
|
|
309
299
|
*/
|
|
310
|
-
|
|
300
|
+
rangeLabelStart: {
|
|
311
301
|
type: StringConstructor;
|
|
312
302
|
reflect: boolean;
|
|
313
303
|
};
|
|
@@ -357,6 +347,13 @@ export class AuroDatePicker extends AuroElement {
|
|
|
357
347
|
setCustomValidityValueMissing: {
|
|
358
348
|
type: StringConstructor;
|
|
359
349
|
};
|
|
350
|
+
/**
|
|
351
|
+
* If declared, the dropdown will shift its position to avoid being cut off by the viewport.
|
|
352
|
+
*/
|
|
353
|
+
shift: {
|
|
354
|
+
type: BooleanConstructor;
|
|
355
|
+
reflect: boolean;
|
|
356
|
+
};
|
|
360
357
|
/**
|
|
361
358
|
* Set true to make datepicker stacked style.
|
|
362
359
|
*/
|
|
@@ -364,6 +361,15 @@ export class AuroDatePicker extends AuroElement {
|
|
|
364
361
|
type: BooleanConstructor;
|
|
365
362
|
reflect: boolean;
|
|
366
363
|
};
|
|
364
|
+
/**
|
|
365
|
+
* Indicates whether the datepicker is in a dirty state (has been interacted with).
|
|
366
|
+
* @private
|
|
367
|
+
*/
|
|
368
|
+
touched: {
|
|
369
|
+
type: BooleanConstructor;
|
|
370
|
+
reflect: boolean;
|
|
371
|
+
attribute: boolean;
|
|
372
|
+
};
|
|
367
373
|
/**
|
|
368
374
|
* Specifies the `validityState` this element is in.
|
|
369
375
|
*/
|
|
@@ -383,15 +389,6 @@ export class AuroDatePicker extends AuroElement {
|
|
|
383
389
|
valueEnd: {
|
|
384
390
|
type: StringConstructor;
|
|
385
391
|
};
|
|
386
|
-
/**
|
|
387
|
-
* Indicates whether the datepicker is in a dirty state (has been interacted with).
|
|
388
|
-
* @private
|
|
389
|
-
*/
|
|
390
|
-
touched: {
|
|
391
|
-
type: BooleanConstructor;
|
|
392
|
-
reflect: boolean;
|
|
393
|
-
attribute: boolean;
|
|
394
|
-
};
|
|
395
392
|
};
|
|
396
393
|
static get styles(): import("lit").CSSResult[];
|
|
397
394
|
/**
|
|
@@ -507,7 +504,7 @@ export class AuroDatePicker extends AuroElement {
|
|
|
507
504
|
/**
|
|
508
505
|
* Handles click on the clear button.
|
|
509
506
|
* @private
|
|
510
|
-
* @param {MouseEvent} event
|
|
507
|
+
* @param {MouseEvent} event - The mouse event from the clear button click.
|
|
511
508
|
* @returns {void}
|
|
512
509
|
*/
|
|
513
510
|
private handleClearClick;
|
|
@@ -538,8 +535,9 @@ export class AuroDatePicker extends AuroElement {
|
|
|
538
535
|
*/
|
|
539
536
|
private get displayValueFontClass();
|
|
540
537
|
/**
|
|
541
|
-
* @private
|
|
542
538
|
* Common display value wrapper classes.
|
|
539
|
+
* @private
|
|
540
|
+
* @returns {Object} Class map for Lit's classMap directive.
|
|
543
541
|
*/
|
|
544
542
|
private get commonDisplayValueWrapperClasses();
|
|
545
543
|
/**
|