@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.
Files changed (65) hide show
  1. package/components/checkbox/demo/customize.min.js +249 -125
  2. package/components/checkbox/demo/getting-started.min.js +249 -125
  3. package/components/checkbox/demo/index.min.js +249 -125
  4. package/components/checkbox/demo/styles.min.css +1 -1
  5. package/components/checkbox/dist/index.js +249 -125
  6. package/components/checkbox/dist/registered.js +249 -125
  7. package/components/combobox/demo/customize.min.js +523 -262
  8. package/components/combobox/demo/getting-started.min.js +523 -262
  9. package/components/combobox/demo/index.min.js +523 -262
  10. package/components/combobox/demo/styles.min.css +1 -1
  11. package/components/combobox/dist/index.js +523 -262
  12. package/components/combobox/dist/registered.js +523 -262
  13. package/components/counter/demo/customize.min.js +271 -134
  14. package/components/counter/demo/index.min.js +271 -134
  15. package/components/counter/demo/styles.min.css +1 -1
  16. package/components/counter/dist/index.js +249 -125
  17. package/components/counter/dist/registered.js +249 -125
  18. package/components/datepicker/demo/accessibility.md +9 -6
  19. package/components/datepicker/demo/api.md +1 -1
  20. package/components/datepicker/demo/customize.min.js +1636 -656
  21. package/components/datepicker/demo/index.md +31 -3
  22. package/components/datepicker/demo/index.min.js +1652 -661
  23. package/components/datepicker/demo/keyboard-behavior.md +16 -16
  24. package/components/datepicker/demo/styles.min.css +1 -1
  25. package/components/datepicker/demo/voiceover.md +5 -3
  26. package/components/datepicker/demo/why-datepicker.md +2 -2
  27. package/components/datepicker/dist/index.js +1640 -660
  28. package/components/datepicker/dist/registered.js +1640 -660
  29. package/components/datepicker/dist/src/auro-calendar-cell.d.ts +52 -17
  30. package/components/datepicker/dist/src/auro-calendar-month.d.ts +12 -4
  31. package/components/datepicker/dist/src/auro-calendar.d.ts +161 -8
  32. package/components/datepicker/dist/src/auro-datepicker.d.ts +77 -79
  33. package/components/dropdown/demo/customize.min.js +22 -9
  34. package/components/dropdown/demo/getting-started.min.js +22 -9
  35. package/components/dropdown/demo/index.min.js +22 -9
  36. package/components/dropdown/demo/styles.min.css +1 -1
  37. package/components/dropdown/dist/auro-dropdown.d.ts +3 -2
  38. package/components/dropdown/dist/index.js +22 -9
  39. package/components/dropdown/dist/registered.js +22 -9
  40. package/components/form/demo/customize.min.js +3459 -1572
  41. package/components/form/demo/getting-started.min.js +3459 -1572
  42. package/components/form/demo/index.min.js +3459 -1572
  43. package/components/form/demo/registerDemoDeps.min.js +3459 -1572
  44. package/components/form/demo/styles.min.css +1 -1
  45. package/components/input/demo/customize.min.js +249 -125
  46. package/components/input/demo/getting-started.min.js +249 -125
  47. package/components/input/demo/index.min.js +249 -125
  48. package/components/input/demo/styles.min.css +1 -1
  49. package/components/input/dist/index.js +249 -125
  50. package/components/input/dist/registered.js +249 -125
  51. package/components/menu/demo/styles.min.css +1 -1
  52. package/components/radio/demo/customize.min.js +249 -125
  53. package/components/radio/demo/getting-started.min.js +249 -125
  54. package/components/radio/demo/index.min.js +249 -125
  55. package/components/radio/demo/styles.min.css +1 -1
  56. package/components/radio/dist/index.js +249 -125
  57. package/components/radio/dist/registered.js +249 -125
  58. package/components/select/demo/customize.min.js +271 -134
  59. package/components/select/demo/getting-started.min.js +271 -134
  60. package/components/select/demo/index.min.js +271 -134
  61. package/components/select/demo/styles.min.css +1 -1
  62. package/components/select/dist/index.js +271 -134
  63. package/components/select/dist/registered.js +271 -134
  64. package/custom-elements.json +500 -178
  65. package/package.json +8 -8
@@ -25,109 +25,236 @@ const t$2={ATTRIBUTE:1,CHILD:2},e$5=t=>(...e)=>({_$litDirective$:t,values:e});le
25
25
  * SPDX-License-Identifier: BSD-3-Clause
26
26
  */const e$4=e$5(class extends i$4{constructor(t){if(super(t),t.type!==t$2.ATTRIBUTE||"class"!==t.name||t.strings?.length>2)throw Error("`classMap()` can only be used in the `class` attribute and must be the only part in the attribute.")}render(t){return " "+Object.keys(t).filter(s=>t[s]).join(" ")+" "}update(s,[i]){if(void 0===this.st){this.st=new Set,void 0!==s.strings&&(this.nt=new Set(s.strings.join(" ").split(/\s/).filter(t=>""!==t)));for(const t in i)i[t]&&!this.nt?.has(t)&&this.st.add(t);return this.render(i)}const r=s.element.classList;for(const t of this.st)t in i||(r.remove(t),this.st.delete(t));for(const t in i){const s=!!i[t];s===this.st.has(t)||this.nt?.has(t)||(s?(r.add(t),this.st.add(t)):(r.remove(t),this.st.delete(t)));}return E$1}});
27
27
 
28
- let DateFormatter$1 = class DateFormatter {
28
+ /**
29
+ * @description Splits a date string into its parts according to the provided format. Does NOT validate that the result is a real calendar date — use `parseDate` when validation is required.
30
+ * @param {string} dateStr - Date string to parse.
31
+ * @param {string} format - Date format to parse.
32
+ * @returns {{ month?: string, day?: string, year?: string }|undefined}
33
+ */
34
+ function getDateParts$1(dateStr, format) {
35
+ if (!dateStr) {
36
+ return undefined;
37
+ }
29
38
 
30
- constructor() {
39
+ const formatSeparatorMatch = format.match(/[/.-]/);
40
+ let valueParts;
41
+ let formatParts;
31
42
 
32
- /**
33
- * @description Parses a date string into its components.
34
- * @param {string} dateStr - Date string to parse.
35
- * @param {string} format - Date format to parse.
36
- * @returns {Object<key["month" | "day" | "year"]: number>|undefined}
37
- */
38
- this.parseDate = (dateStr, format = 'mm/dd/yyyy') => {
43
+ if (formatSeparatorMatch) {
44
+ const separator = formatSeparatorMatch[0];
45
+ valueParts = dateStr.split(separator);
46
+ formatParts = format.split(separator);
47
+ } else {
48
+ if (dateStr.match(/[/.-]/)) {
49
+ throw new Error(
50
+ "AuroDatepickerUtilities | parseDate: Date string has no separators",
51
+ );
52
+ }
39
53
 
40
- // Guard Clause: Date string is defined
41
- if (!dateStr) {
42
- return undefined;
43
- }
54
+ if (dateStr.length !== format.length) {
55
+ throw new Error(
56
+ "AuroDatepickerUtilities | parseDate: Date string and format length do not match",
57
+ );
58
+ }
44
59
 
45
- // Assume the separator is a "/" a defined in our code base
46
- const separator = '/';
60
+ valueParts = [dateStr];
61
+ formatParts = [format];
62
+ }
47
63
 
48
- // Get the parts of the date and format
49
- const valueParts = dateStr.split(separator);
50
- const formatParts = format.split(separator);
64
+ if (valueParts.length !== formatParts.length) {
65
+ throw new Error(
66
+ `AuroDatepickerUtilities | parseDate: Date string and format do not match : ${dateStr} vs ${format}`,
67
+ );
68
+ }
51
69
 
52
- // Check if the value and format have the correct number of parts
53
- if (valueParts.length !== formatParts.length) {
54
- throw new Error('AuroDatepickerUtilities | parseDate: Date string and format length do not match');
55
- }
70
+ const result = formatParts.reduce((acc, part, index) => {
71
+ const value = valueParts[index];
56
72
 
57
- // Holds the result to be returned
58
- const result = formatParts.reduce((acc, part, index) => {
59
- const value = valueParts[index];
73
+ if (/m/iu.test(part) && part.length === value.length) {
74
+ acc.month = value;
75
+ } else if (/d/iu.test(part) && part.length === value.length) {
76
+ acc.day = value;
77
+ } else if (/y/iu.test(part) && part.length === value.length) {
78
+ acc.year = value;
79
+ }
60
80
 
61
- if ((/m/iu).test(part)) {
62
- acc.month = value;
63
- } else if ((/d/iu).test(part)) {
64
- acc.day = value;
65
- } else if ((/y/iu).test(part)) {
66
- acc.year = value;
67
- }
81
+ return acc;
82
+ }, {});
68
83
 
69
- return acc;
70
- }, {});
84
+ if (!result.month && !result.day && !result.year) {
85
+ throw new Error(
86
+ "AuroDatepickerUtilities | parseDate: Unable to parse date string",
87
+ );
88
+ }
71
89
 
72
- // If we found all the parts, return the result
73
- if (result.month && result.year) {
74
- return result;
75
- }
90
+ return result;
91
+ }
76
92
 
77
- // Throw an error to let the dev know we were unable to parse the date string
78
- throw new Error('AuroDatepickerUtilities | parseDate: Unable to parse date string');
79
- };
93
+ function isCalendarDate$1(year, month, day) {
94
+ let yearNumber = Number(year);
95
+ const monthNumber = Number(month);
96
+ const dayNumber = Number(day);
80
97
 
81
- /**
82
- * Convert a date object to string format.
83
- * @param {Object} date - Date to convert to string.
84
- * @param {String} locale - Optional locale to use for the date string. Defaults to user's locale.
85
- * @returns {String} Returns the date as a string.
86
- */
87
- this.getDateAsString = (date, locale = undefined) => date.toLocaleDateString(locale, {
88
- year: "numeric",
89
- month: "2-digit",
90
- day: "2-digit",
91
- });
98
+ if (
99
+ !Number.isInteger(yearNumber) ||
100
+ !Number.isInteger(monthNumber) ||
101
+ !Number.isInteger(dayNumber)
102
+ ) {
103
+ return false;
104
+ }
92
105
 
93
- /**
94
- * Converts a date string to a North American date format.
95
- * @param {String} dateStr - Date to validate.
96
- * @param {String} format - Date format to validate against.
97
- * @returns {Boolean}
98
- */
99
- this.toNorthAmericanFormat = (dateStr, format) => {
106
+ // Handle 2-digit years by converting them to 4-digit years based on a cutoff. This allows for parsing of 2-digit year formats while still validating the resulting date.
107
+ if (yearNumber < 100 && yearNumber >= 50) {
108
+ yearNumber += 1900;
109
+ } else if (yearNumber < 50) {
110
+ yearNumber += 2000;
111
+ }
100
112
 
101
- if (format === 'mm/dd/yyyy') {
102
- return dateStr;
103
- }
113
+ const stringified = `${String(yearNumber).padStart(4, "0")}-${String(monthNumber).padStart(2, "0")}-${String(dayNumber).padStart(2, "0")}`;
114
+ const date = new Date(stringified.replace(/[.-]/g, "/"));
104
115
 
105
- const parsedDate = this.parseDate(dateStr, format);
116
+ return (
117
+ !Number.isNaN(date.getTime()) && toISOFormatString$1(date) === stringified
118
+ );
119
+ }
106
120
 
107
- if (!parsedDate) {
108
- throw new Error('AuroDatepickerUtilities | toNorthAmericanFormat: Unable to parse date string');
109
- }
121
+ /**
122
+ * @description Parses a date string into its components and validates that the result is a real calendar date. Use `getDateParts` instead when raw splitting without validation is needed (e.g. for in-progress input).
123
+ *
124
+ * Partial formats are supported: components absent from `format` default to `year → "0"`,
125
+ * `month → "01"`, `day → "01"` for calendar validation only. The returned object contains
126
+ * only the fields actually present in the format string — missing fields are never injected.
127
+ * @param {string} dateStr - Date string to parse.
128
+ * @param {string} format - Date format to parse.
129
+ * @returns {{ month?: string, day?: string, year?: string }|undefined}
130
+ * @throws {Error} Throws when the parsed result does not represent a valid calendar date.
131
+ */
132
+ function parseDate$1(dateStr, format = "mm/dd/yyyy") {
133
+ if (!dateStr || !format) {
134
+ return undefined;
135
+ }
136
+ const result = getDateParts$1(dateStr.trim(), format);
110
137
 
111
- const { month, day, year } = parsedDate;
138
+ if (!result) {
139
+ return undefined;
140
+ }
112
141
 
113
- const dateParts = [];
114
- if (month) {
115
- dateParts.push(month);
116
- }
142
+ const lowerFormat = format.toLowerCase();
143
+ const year = lowerFormat.includes("yy") ? result.year : "0";
144
+ const month = lowerFormat.includes("mm") ? result.month : "01";
145
+ const day = lowerFormat.includes("dd") ? result.day : "01";
117
146
 
118
- if (day) {
119
- dateParts.push(day);
120
- }
147
+ if (isCalendarDate$1(year, month, day)) {
148
+ return result;
149
+ }
121
150
 
122
- if (year) {
123
- dateParts.push(year);
124
- }
151
+ throw new Error(
152
+ `AuroDatepickerUtilities | parseDate: Date string is not a valid date ${JSON.stringify(result)} with format ${format}`,
153
+ );
154
+ }
125
155
 
126
- return dateParts.join('/');
127
- };
156
+ /**
157
+ * Convert a date object to string format.
158
+ * @param {Object} date - Date to convert to string.
159
+ * @param {String} locale - Optional locale to use for the date string. Defaults to user's locale.
160
+ * @returns {String} Returns the date as a string.
161
+ */
162
+ function getDateAsString$1(date, locale = undefined) {
163
+ return date.toLocaleDateString(locale, {
164
+ year: "numeric",
165
+ month: "2-digit",
166
+ day: "2-digit",
167
+ });
168
+ }
169
+
170
+ /**
171
+ * Converts a date string to a North American date format.
172
+ * @param {String} dateStr - Date to validate.
173
+ * @param {String} format - Date format to validate against.
174
+ * @returns {String}
175
+ */
176
+ function toNorthAmericanFormat$3(dateStr, format) {
177
+ if (format === "mm/dd/yyyy") {
178
+ return dateStr;
179
+ }
180
+
181
+ const parsedDate = parseDate$1(dateStr, format);
182
+
183
+ if (!parsedDate) {
184
+ throw new Error(
185
+ "AuroDatepickerUtilities | toNorthAmericanFormat: Unable to parse date string",
186
+ );
187
+ }
188
+
189
+ const { month, day, year } = parsedDate;
190
+
191
+ return [month, day, year].filter(Boolean).join("/");
192
+ }
193
+
194
+ /**
195
+ * Validates that a date string matches the provided format and represents a real calendar date.
196
+ *
197
+ * @param {string} dateStr - Date string to validate.
198
+ * @param {string} [format="yyyy-mm-dd"] - Format of the date string.
199
+ * @returns {boolean} True when the date string is valid for the provided format, otherwise false.
200
+ */
201
+ function isValidDate$1(dateStr, format = "yyyy-mm-dd") {
202
+ try {
203
+ if (typeof dateStr !== "string" || !dateStr || format?.length < 8) {
204
+ return false;
205
+ }
206
+
207
+ if (parseDate$1(dateStr, format)) {
208
+ return true;
209
+ }
210
+ } catch (error) {
211
+ return false;
212
+ }
213
+ return false;
214
+ }
215
+
216
+ /**
217
+ * Converts a JavaScript Date instance to a simple ISO-like date string. This returns only the calendar date portion without any time or timezone information.
218
+ *
219
+ * @param {Date} date - Date instance to convert to an ISO-like string.
220
+ * @returns {string} A string in the format "yyyy-mm-dd" representing the provided date.
221
+ * @throws {Error} Throws an error when the input is not a valid Date instance.
222
+ */
223
+ function toISOFormatString$1(date) {
224
+ if (!(date instanceof Date) || Number.isNaN(date.getTime())) {
225
+ throw new Error(
226
+ "AuroDatepickerUtilities | toISOFormatString: Input must be a valid Date instance",
227
+ );
228
+ }
229
+ return `${String(date.getFullYear()).padStart(4, "0")}-${String(date.getMonth() + 1).padStart(2, "0")}-${String(date.getDate()).padStart(2, "0")}`;
230
+ }
231
+
232
+ /**
233
+ * Converts a date string into a JavaScript Date instance. This method supports ISO formatted strings and other formats that can be parsed by the formatter.
234
+ *
235
+ * @param {String} dateStr - Date string to convert into a Date object.
236
+ * @param {String} format - Date format used to parse the string when it is not in ISO format.
237
+ * @returns {Date|null} Returns a Date instance for valid input or null for non-string input.
238
+ * @throws {Error} Throws when parsing fails for non-ISO string input.
239
+ */
240
+ function stringToDateInstance$1(dateStr, format = "yyyy-mm-dd") {
241
+ if (typeof dateStr !== "string") {
242
+ return null;
128
243
  }
244
+
245
+ const { month, day, year } = parseDate$1(dateStr, format);
246
+ return new Date(`${year}/${month}/${day}`);
247
+ }
248
+
249
+ const dateFormatter$1 = {
250
+ parseDate: parseDate$1,
251
+ getDateParts: getDateParts$1,
252
+ getDateAsString: getDateAsString$1,
253
+ toNorthAmericanFormat: toNorthAmericanFormat$3,
254
+ isValidDate: isValidDate$1,
255
+ toISOFormatString: toISOFormatString$1,
256
+ stringToDateInstance: stringToDateInstance$1,
129
257
  };
130
- const dateFormatter$1 = new DateFormatter$1();
131
258
 
132
259
  // filepath: dateConstraints.mjs
133
260
  const DATE_UTIL_CONSTRAINTS$1 = {
@@ -199,12 +326,11 @@ let AuroDateUtilitiesBase$1 = class AuroDateUtilitiesBase {
199
326
  /* eslint-disable no-magic-numbers */
200
327
 
201
328
  let AuroDateUtilities$1 = class AuroDateUtilities extends AuroDateUtilitiesBase$1 {
202
-
203
329
  /**
204
330
  * Returns the current century.
205
331
  * @returns {String} The current century.
206
332
  */
207
- getCentury () {
333
+ getCentury() {
208
334
  return String(new Date().getFullYear()).slice(0, 2);
209
335
  }
210
336
 
@@ -213,14 +339,12 @@ let AuroDateUtilities$1 = class AuroDateUtilities extends AuroDateUtilitiesBase$
213
339
  * @param {String} year - The year to convert to four digits.
214
340
  * @returns {String} The four digit year.
215
341
  */
216
- getFourDigitYear (year) {
217
-
342
+ getFourDigitYear(year) {
218
343
  const strYear = String(year).trim();
219
344
  return strYear.length <= 2 ? this.getCentury() + strYear : strYear;
220
345
  }
221
346
 
222
347
  constructor() {
223
-
224
348
  super();
225
349
 
226
350
  /**
@@ -229,7 +353,8 @@ let AuroDateUtilities$1 = class AuroDateUtilities extends AuroDateUtilitiesBase$
229
353
  * @param {Object} date2 - Second date to compare.
230
354
  * @returns {Boolean} Returns true if the dates match.
231
355
  */
232
- this.datesMatch = (date1, date2) => new Date(date1).getTime() === new Date(date2).getTime();
356
+ this.datesMatch = (date1, date2) =>
357
+ new Date(date1).getTime() === new Date(date2).getTime();
233
358
 
234
359
  /**
235
360
  * Returns true if value passed in is a valid date.
@@ -238,53 +363,41 @@ let AuroDateUtilities$1 = class AuroDateUtilities extends AuroDateUtilitiesBase$
238
363
  * @returns {Boolean}
239
364
  */
240
365
  this.validDateStr = (date, format) => {
241
-
242
366
  // The length we expect the date string to be
243
- const dateStrLength = format.length;
367
+ const dateStrLength = format?.length || 0;
244
368
 
245
369
  // Guard Clause: Date and format are defined
246
370
  if (typeof date === "undefined" || typeof format === "undefined") {
247
- throw new Error('AuroDatepickerUtilities | validateDateStr: Date and format are required');
371
+ throw new Error(
372
+ "AuroDatepickerUtilities | validateDateStr: Date and format are required",
373
+ );
248
374
  }
249
375
 
250
376
  // Guard Clause: Date should be of type string
251
377
  if (typeof date !== "string") {
252
- throw new Error('AuroDatepickerUtilities | validateDateStr: Date must be a string');
378
+ throw new Error(
379
+ "AuroDatepickerUtilities | validateDateStr: Date must be a string",
380
+ );
253
381
  }
254
382
 
255
383
  // Guard Clause: Format should be of type string
256
384
  if (typeof format !== "string") {
257
- throw new Error('AuroDatepickerUtilities | validateDateStr: Format must be a string');
385
+ throw new Error(
386
+ "AuroDatepickerUtilities | validateDateStr: Format must be a string",
387
+ );
258
388
  }
259
389
 
260
390
  // Guard Clause: Length is what we expect it to be
261
391
  if (date.length !== dateStrLength) {
262
392
  return false;
263
393
  }
264
- // Get a formatted date string and parse it
265
- const dateParts = dateFormatter$1.parseDate(date, format);
266
-
267
- // Guard Clause: Date parse succeeded
268
- if (!dateParts) {
269
- return false;
270
- }
271
-
272
- // Create the expected date string based on the date parts
273
- const expectedDateStr = `${dateParts.month}/${dateParts.day || "01"}/${this.getFourDigitYear(dateParts.year)}`;
274
-
275
- // Generate a date object that we will extract a string date from to compare to the passed in date string
276
- const dateObj = new Date(this.getFourDigitYear(dateParts.year), dateParts.month - 1, dateParts.day || 1);
277
-
278
- // Get the date string of the date object we created from the string date
279
- const actualDateStr = dateFormatter$1.getDateAsString(dateObj, "en-US");
280
394
 
281
- // Guard Clause: Generated date matches date string input
282
- if (expectedDateStr !== actualDateStr) {
395
+ // Get a formatted date string and parse and validate it
396
+ try {
397
+ return Boolean(dateFormatter$1.parseDate(date, format));
398
+ } catch (error) {
283
399
  return false;
284
400
  }
285
-
286
- // If we passed all other checks, we can assume the date is valid
287
- return true;
288
401
  };
289
402
 
290
403
  /**
@@ -294,10 +407,11 @@ let AuroDateUtilities$1 = class AuroDateUtilities extends AuroDateUtilitiesBase$
294
407
  * @returns {boolean}
295
408
  */
296
409
  this.dateAndFormatMatch = (value, format) => {
297
-
298
410
  // Ensure we have both values we need to do the comparison
299
411
  if (!value || !format) {
300
- throw new Error('AuroFormValidation | dateFormatMatch: value and format are required');
412
+ throw new Error(
413
+ "AuroFormValidation | dateFormatMatch: value and format are required",
414
+ );
301
415
  }
302
416
 
303
417
  // If the lengths are different, they cannot match
@@ -306,11 +420,10 @@ let AuroDateUtilities$1 = class AuroDateUtilities extends AuroDateUtilitiesBase$
306
420
  }
307
421
 
308
422
  // Get the parts of the date
309
- const dateParts = dateFormatter$1.parseDate(value, format);
423
+ const dateParts = dateFormatter$1.getDateParts(value, format);
310
424
 
311
425
  // Validator for day
312
426
  const dayValueIsValid = (day) => {
313
-
314
427
  // Guard clause: if there is no day in the dateParts, we can ignore this check.
315
428
  if (!dateParts.day) {
316
429
  return true;
@@ -326,7 +439,9 @@ let AuroDateUtilities$1 = class AuroDateUtilities extends AuroDateUtilitiesBase$
326
439
 
327
440
  // Guard clause: ensure day is a valid integer
328
441
  if (Number.isNaN(numDay)) {
329
- throw new Error('AuroDatepickerUtilities | dayValueIsValid: Unable to parse day value integer');
442
+ throw new Error(
443
+ "AuroDatepickerUtilities | dayValueIsValid: Unable to parse day value integer",
444
+ );
330
445
  }
331
446
 
332
447
  // Guard clause: ensure day is within the valid range
@@ -340,6 +455,10 @@ let AuroDateUtilities$1 = class AuroDateUtilities extends AuroDateUtilitiesBase$
340
455
 
341
456
  // Validator for month
342
457
  const monthValueIsValid = (month) => {
458
+ // Guard clause: if there is no month in the dateParts, we can ignore this check.
459
+ if (!dateParts.month) {
460
+ return true;
461
+ }
343
462
 
344
463
  // Guard clause: ensure month exists.
345
464
  if (!month) {
@@ -351,7 +470,9 @@ let AuroDateUtilities$1 = class AuroDateUtilities extends AuroDateUtilitiesBase$
351
470
 
352
471
  // Guard clause: ensure month is a valid integer
353
472
  if (Number.isNaN(numMonth)) {
354
- throw new Error('AuroDatepickerUtilities | monthValueIsValid: Unable to parse month value integer');
473
+ throw new Error(
474
+ "AuroDatepickerUtilities | monthValueIsValid: Unable to parse month value integer",
475
+ );
355
476
  }
356
477
 
357
478
  // Guard clause: ensure month is within the valid range
@@ -365,6 +486,10 @@ let AuroDateUtilities$1 = class AuroDateUtilities extends AuroDateUtilitiesBase$
365
486
 
366
487
  // Validator for year
367
488
  const yearIsValid = (_year) => {
489
+ // Guard clause: if there is no year in the dateParts, we can ignore this check.
490
+ if (!dateParts.year) {
491
+ return true;
492
+ }
368
493
 
369
494
  // Guard clause: ensure year exists.
370
495
  if (!_year) {
@@ -379,7 +504,9 @@ let AuroDateUtilities$1 = class AuroDateUtilities extends AuroDateUtilitiesBase$
379
504
 
380
505
  // Guard clause: ensure year is a valid integer
381
506
  if (Number.isNaN(numYear)) {
382
- throw new Error('AuroDatepickerUtilities | yearValueIsValid: Unable to parse year value integer');
507
+ throw new Error(
508
+ "AuroDatepickerUtilities | yearValueIsValid: Unable to parse year value integer",
509
+ );
383
510
  }
384
511
 
385
512
  // Guard clause: ensure year is within the valid range
@@ -395,7 +522,7 @@ let AuroDateUtilities$1 = class AuroDateUtilities extends AuroDateUtilitiesBase$
395
522
  const checks = [
396
523
  monthValueIsValid(dateParts.month),
397
524
  dayValueIsValid(dateParts.day),
398
- yearIsValid(dateParts.year)
525
+ yearIsValid(dateParts.year),
399
526
  ];
400
527
 
401
528
  // If any of the checks failed, the date format does not match and the result is invalid
@@ -429,10 +556,7 @@ const {
429
556
  } = dateUtilities$1;
430
557
 
431
558
  const {
432
- toNorthAmericanFormat: toNorthAmericanFormat$1,
433
- parseDate: parseDate$1,
434
- getDateAsString: getDateAsString$1
435
- } = dateFormatter$1;
559
+ toNorthAmericanFormat: toNorthAmericanFormat$2} = dateFormatter$1;
436
560
 
437
561
  // Copyright (c) Alaska Air. All right reserved. Licensed under the Apache-2.0 license
438
562
  // See LICENSE in the project root for license information.
@@ -752,13 +876,13 @@ let AuroFormValidation$1 = class AuroFormValidation {
752
876
  }
753
877
 
754
878
  // Perform the rest of the validation
755
- const formattedValue = toNorthAmericanFormat$1(elem.value, elem.format);
879
+ const formattedValue = toNorthAmericanFormat$2(elem.value, elem.format);
756
880
  const valueDate = new Date(formattedValue);
757
881
 
758
882
  // // Validate max date
759
883
  if (elem.max?.length === elem.lengthForType) {
760
884
 
761
- const maxDate = new Date(toNorthAmericanFormat$1(elem.max, elem.format));
885
+ const maxDate = new Date(toNorthAmericanFormat$2(elem.max, elem.format));
762
886
 
763
887
  if (valueDate > maxDate) {
764
888
  elem.validity = 'rangeOverflow';
@@ -769,7 +893,7 @@ let AuroFormValidation$1 = class AuroFormValidation {
769
893
 
770
894
  // Validate min date
771
895
  if (elem.min?.length === elem.lengthForType) {
772
- const minDate = new Date(toNorthAmericanFormat$1(elem.min, elem.format));
896
+ const minDate = new Date(toNorthAmericanFormat$2(elem.min, elem.format));
773
897
 
774
898
  if (valueDate < minDate) {
775
899
  elem.validity = 'rangeUnderflow';
@@ -1327,11 +1451,7 @@ class UtilitiesCalendarRender {
1327
1451
 
1328
1452
  // 3. If we didn't get a count early, restrict based on min/max date.
1329
1453
  if (!calendarCount && elem.minDate && elem.maxDate) {
1330
- const monthsInRange = this.util.monthDiff(new Date(elem.minDate), new Date(elem.maxDate));
1331
-
1332
- if (monthsInRange < maxRenderableMonths) {
1333
- calendarCount = monthsInRange;
1334
- }
1454
+ calendarCount = this.util.monthDiff(new Date(elem.minDate), new Date(elem.maxDate));
1335
1455
  }
1336
1456
 
1337
1457
  if (elem.numCalendars !== calendarCount) {
@@ -1379,7 +1499,6 @@ class UtilitiesCalendarRender {
1379
1499
  .max="${elem.max}"
1380
1500
  ?noRange="${elem.noRange}"
1381
1501
  .monthFirst="${elem.monthFirst}"
1382
- .hoveredDate="${elem.hoveredDate}"
1383
1502
  .dateTo="${elem.dateTo}"
1384
1503
  .dateFrom="${elem.dateFrom}"
1385
1504
  .locale="${elem.locale}"
@@ -1411,49 +1530,6 @@ var snowflakeStyle = i$3`:host([layout*=snowflake]) [auro-input]{flex:1;text-ali
1411
1530
 
1412
1531
  var snowflakeColors = i$3`:host([layout=snowflake]) [auro-dropdown]:not(:is([error],.hasFocus)){--ds-auro-dropdown-trigger-border-color: transparent}`;
1413
1532
 
1414
- var styleCss$7 = i$3`.body-default{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-default-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-default-font-size, 1rem);line-height:var(--wcss-body-default-line-height, 1.5rem)}.body-default-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-default-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-default-emphasized-font-size, 1rem);line-height:var(--wcss-body-default-emphasized-line-height, 1.5rem)}.body-lg{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-lg-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-lg-font-size, 1.125rem);line-height:var(--wcss-body-lg-line-height, 1.625rem)}.body-lg-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-lg-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-lg-emphasized-font-size, 1.125rem);line-height:var(--wcss-body-lg-emphasized-line-height, 1.625rem)}.body-sm{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-sm-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-sm-font-size, 0.875rem);line-height:var(--wcss-body-sm-line-height, 1.25rem)}.body-sm-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-sm-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-sm-emphasized-font-size, 0.875rem);line-height:var(--wcss-body-sm-emphasized-line-height, 1.25rem)}.body-xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-xs-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-xs-font-size, 0.75rem);line-height:var(--wcss-body-xs-line-height, 1rem)}.body-xs-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-xs-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-xs-emphasized-font-size, 0.75rem);line-height:var(--wcss-body-xs-emphasized-line-height, 1rem)}.body-2xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-2xs-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-2xs-font-size, 0.625rem);line-height:var(--wcss-body-2xs-line-height, 0.875rem)}.body-2xs-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-2xs-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-2xs-emphasized-font-size, 0.625rem);line-height:var(--wcss-body-2xs-emphasized-line-height, 0.875rem)}.display-2xl{font-family:var(--wcss-display-2xl-family, "AS Circular"),var(--wcss-display-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-2xl-weight, 300);line-height:var(--wcss-display-2xl-line-height, 1.3);font-size:var(--wcss-display-2xl-font-size, clamp(3.5rem, 6vw, 5.375rem));letter-spacing:var(--wcss-display-2xl-letter-spacing, 0)}.display-xl{font-family:var(--wcss-display-xl-family, "AS Circular"),var(--wcss-display-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-xl-weight, 300);line-height:var(--wcss-display-xl-line-height, 1.3);font-size:var(--wcss-display-xl-font-size, clamp(3rem, 5.3333333333vw, 4.5rem));letter-spacing:var(--wcss-display-xl-letter-spacing, 0)}.display-lg{font-family:var(--wcss-display-lg-family, "AS Circular"),var(--wcss-display-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-lg-weight, 300);line-height:var(--wcss-display-lg-line-height, 1.3);font-size:var(--wcss-display-lg-font-size, clamp(2.75rem, 4.6666666667vw, 4rem));letter-spacing:var(--wcss-display-lg-letter-spacing, 0)}.display-md{font-family:var(--wcss-display-md-family, "AS Circular"),var(--wcss-display-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-md-weight, 300);line-height:var(--wcss-display-md-line-height, 1.3);font-size:var(--wcss-display-md-font-size, clamp(2.5rem, 4vw, 3.5rem));letter-spacing:var(--wcss-display-md-letter-spacing, 0)}.display-sm{font-family:var(--wcss-display-sm-family, "AS Circular"),var(--wcss-display-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-sm-weight, 300);line-height:var(--wcss-display-sm-line-height, 1.3);font-size:var(--wcss-display-sm-font-size, clamp(2rem, 3.6666666667vw, 3rem));letter-spacing:var(--wcss-display-sm-letter-spacing, 0)}.display-xs{font-family:var(--wcss-display-xs-family, "AS Circular"),var(--wcss-display-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-xs-weight, 300);line-height:var(--wcss-display-xs-line-height, 1.3);font-size:var(--wcss-display-xs-font-size, clamp(1.75rem, 3vw, 2.375rem));letter-spacing:var(--wcss-display-xs-letter-spacing, 0)}.heading-xl{font-family:var(--wcss-heading-xl-family, "AS Circular"),var(--wcss-heading-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-xl-weight, 300);line-height:var(--wcss-heading-xl-line-height, 1.3);font-size:var(--wcss-heading-xl-font-size, clamp(2rem, 3vw, 2.5rem));letter-spacing:var(--wcss-heading-xl-letter-spacing, 0)}.heading-lg{font-family:var(--wcss-heading-lg-family, "AS Circular"),var(--wcss-heading-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-lg-weight, 300);line-height:var(--wcss-heading-lg-line-height, 1.3);font-size:var(--wcss-heading-lg-font-size, clamp(1.75rem, 2.6666666667vw, 2.25rem));letter-spacing:var(--wcss-heading-lg-letter-spacing, 0)}.heading-md{font-family:var(--wcss-heading-md-family, "AS Circular"),var(--wcss-heading-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-md-weight, 300);line-height:var(--wcss-heading-md-line-height, 1.3);font-size:var(--wcss-heading-md-font-size, clamp(1.625rem, 2.3333333333vw, 1.75rem));letter-spacing:var(--wcss-heading-md-letter-spacing, 0)}.heading-sm{font-family:var(--wcss-heading-sm-family, "AS Circular"),var(--wcss-heading-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-sm-weight, 300);line-height:var(--wcss-heading-sm-line-height, 1.3);font-size:var(--wcss-heading-sm-font-size, clamp(1.375rem, 2vw, 1.5rem));letter-spacing:var(--wcss-heading-sm-letter-spacing, 0)}.heading-xs{font-family:var(--wcss-heading-xs-family, "AS Circular"),var(--wcss-heading-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-xs-weight, 300);line-height:var(--wcss-heading-xs-line-height, 1.3);font-size:var(--wcss-heading-xs-font-size, clamp(1.25rem, 1.6666666667vw, 1.25rem));letter-spacing:var(--wcss-heading-xs-letter-spacing, 0)}.heading-2xs{font-family:var(--wcss-heading-2xs-family, "AS Circular"),var(--wcss-heading-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-2xs-weight, 300);line-height:var(--wcss-heading-2xs-line-height, 1.3);font-size:var(--wcss-heading-2xs-font-size, clamp(1.125rem, 1.5vw, 1.125rem));letter-spacing:var(--wcss-heading-2xs-letter-spacing, 0)}.accent-2xl{font-family:var(--wcss-accent-2xl-family, "Good OT"),var(--wcss-accent-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-2xl-weight, 450);line-height:var(--wcss-accent-2xl-line-height, 1);font-size:var(--wcss-accent-2xl-font-size, clamp(2rem, 3.1666666667vw, 2.375rem));letter-spacing:var(--wcss-accent-2xl-letter-spacing, 0.05em);text-transform:uppercase}.accent-xl{font-family:var(--wcss-accent-xl-family, "Good OT"),var(--wcss-accent-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-xl-weight, 450);line-height:var(--wcss-accent-xl-line-height, 1.3);font-size:var(--wcss-accent-xl-font-size, clamp(1.625rem, 2.3333333333vw, 2rem));letter-spacing:var(--wcss-accent-xl-letter-spacing, 0.05em);text-transform:uppercase}.accent-lg{font-family:var(--wcss-accent-lg-family, "Good OT"),var(--wcss-accent-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-lg-weight, 450);line-height:var(--wcss-accent-lg-line-height, 1.3);font-size:var(--wcss-accent-lg-font-size, clamp(1.5rem, 2.1666666667vw, 1.75rem));letter-spacing:var(--wcss-accent-lg-letter-spacing, 0.05em);text-transform:uppercase}.accent-md{font-family:var(--wcss-accent-md-family, "Good OT"),var(--wcss-accent-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-md-weight, 500);line-height:var(--wcss-accent-md-line-height, 1.3);font-size:var(--wcss-accent-md-font-size, clamp(1.375rem, 1.8333333333vw, 1.5rem));letter-spacing:var(--wcss-accent-md-letter-spacing, 0.05em);text-transform:uppercase}.accent-sm{font-family:var(--wcss-accent-sm-family, "Good OT"),var(--wcss-accent-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-sm-weight, 500);line-height:var(--wcss-accent-sm-line-height, 1.3);font-size:var(--wcss-accent-sm-font-size, clamp(1.125rem, 1.5vw, 1.25rem));letter-spacing:var(--wcss-accent-sm-letter-spacing, 0.05em);text-transform:uppercase}.accent-xs{font-family:var(--wcss-accent-xs-family, "Good OT"),var(--wcss-accent-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-xs-weight, 500);line-height:var(--wcss-accent-xs-line-height, 1.3);font-size:var(--wcss-accent-xs-font-size, clamp(1rem, 1.3333333333vw, 1rem));letter-spacing:var(--wcss-accent-xs-letter-spacing, 0.1em);text-transform:uppercase}.accent-2xs{font-family:var(--wcss-accent-2xs-family, "Good OT"),var(--wcss-accent-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-2xs-weight, 450);line-height:var(--wcss-accent-2xs-line-height, 1.3);font-size:var(--wcss-accent-2xs-font-size, clamp(0.875rem, 1.1666666667vw, 0.875rem));letter-spacing:var(--wcss-accent-2xs-letter-spacing, 0.1em);text-transform:uppercase}:host{--calendar-width: 336px;--mobile-footer-height: 150px;--mobile-header-height: 68px;--desktop-footer-height: 80px;height:100vh;height:100dvh}.calendars{display:flex;flex-direction:row}.calendarNavButtons{position:absolute;z-index:1;top:var(--ds-size-200, 1rem);right:var(--ds-size-50, 0.25rem);left:var(--ds-size-50, 0.25rem)}.calendarNavBtn{display:flex;width:var(--ds-size-500, 2.5rem);height:var(--ds-size-500, 2.5rem);align-items:center;justify-content:center;border-width:1px;border-style:solid;border-radius:50%;cursor:pointer}.prevMonth,.nextMonth{position:absolute;top:0}.prevMonth{left:0}.nextMonth{right:0}.headerActions{padding:0 var(--ds-size-200, 1rem)}.mobileHeader{width:100%;height:var(--mobile-header-height);z-index:1;align-items:center;flex-direction:row}.headerDateFrom,.headerDateTo{display:flex;height:var(--mobile-header-height);flex:1;flex-direction:column;justify-content:center;padding:0 var(--ds-size-150, 0.75rem) 0 var(--ds-size-200, 1rem)}.mobileDateLabel{padding:var(--ds-size-25, 0.125rem) 0}.mobileFooter{display:none;width:100%;align-items:flex-end;flex-direction:column;justify-content:flex-end}.mobileFooterActions{position:relative;bottom:0;left:50%;display:none;width:calc(100% - var(--ds-size-200, 1rem)*2);align-items:flex-end;flex-direction:column;justify-content:flex-end;padding:var(--ds-size-150) calc(var(--ds-size-200, 1rem));transform:translateX(-50%)}.mobileFooterActions auro-button{width:100%}.calendarWrapper.hasFooter{padding-bottom:var(--desktop-footer-height)}:host([isfullscreen]){width:100%;max-height:100dvh;overflow:hidden}:host([isfullscreen]) .prevMonth,:host([isfullscreen]) .nextMonth{display:none}:host([isfullscreen]) .mobileHeader,:host([isfullscreen]) .mobileFooter,:host([isfullscreen]) .mobileFooterActions{display:flex}:host([isfullscreen]) .calendarWrapper{display:flex;flex-direction:column}:host([isfullscreen]) .calendars{display:flex;flex-direction:column;flex:1;align-items:center;width:100%;overscroll-behavior:contain}:host([isfullscreen]) .calendars:after{display:block;width:100%;height:var(--mobile-footer-height);content:""}.sr-only{position:absolute;overflow:hidden;clip:rect(0, 0, 0, 0);width:1px;height:1px;margin:-1px;padding:0;border:0;white-space:nowrap}`;
1415
-
1416
- var colorCss$7 = i$3`.calendarNavBtn{border-color:var(--ds-auro-calendar-nav-btn-border-color);background-color:var(--ds-auro-calendar-nav-btn-container-color);color:var(--ds-auro-calendar-nav-btn-chevron-color)}.calendarNavBtn:hover{--ds-auro-calendar-nav-btn-container-color: var(--ds-advanced-color-state-background-hover, #f2f2f2);--ds-auro-calendar-nav-btn-border-color: var(--ds-basic-color-brand-primary, #01426a)}.calendarNavBtn:focus{--ds-auro-calendar-nav-btn-border-color: var(--ds-basic-color-brand-primary, #01426a)}.calendarNavBtn:active{--ds-auro-calendar-nav-btn-border-color: var(--ds-basic-color-brand-primary, #01426a);box-shadow:inset 0 0 0 1px var(--ds-auro-calendar-nav-btn-border-color)}.mobileHeader{background-color:var(--ds-auro-calendar-mobile-header-container-color)}.mobileDateLabel{color:var(--ds-auro-calendar-mobile-header-text-color)}:host(:not([noRange])) .headerDateTo:after{background-color:var(--ds-auro-calendar-mobile-header-divider-color)}::slotted([slot="bib.fullscreen.fromStr"]),::slotted([slot=mobileDateToStr]){color:var(--ds-auro-datepicker-placeholder-color)}@media screen and (max-width: 576px){.calendarNavBtn{--ds-auro-calendar-nav-btn-border-color: var(--ds-basic-color-brand-primary, #01426a)}}`;
1417
-
1418
- var styleCss$6 = i$3`:focus:not(:focus-visible){outline:3px solid transparent}.body-default{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-default-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-default-font-size, 1rem);line-height:var(--wcss-body-default-line-height, 1.5rem)}.body-default-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-default-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-default-emphasized-font-size, 1rem);line-height:var(--wcss-body-default-emphasized-line-height, 1.5rem)}.body-lg{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-lg-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-lg-font-size, 1.125rem);line-height:var(--wcss-body-lg-line-height, 1.625rem)}.body-lg-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-lg-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-lg-emphasized-font-size, 1.125rem);line-height:var(--wcss-body-lg-emphasized-line-height, 1.625rem)}.body-sm{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-sm-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-sm-font-size, 0.875rem);line-height:var(--wcss-body-sm-line-height, 1.25rem)}.body-sm-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-sm-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-sm-emphasized-font-size, 0.875rem);line-height:var(--wcss-body-sm-emphasized-line-height, 1.25rem)}.body-xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-xs-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-xs-font-size, 0.75rem);line-height:var(--wcss-body-xs-line-height, 1rem)}.body-xs-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-xs-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-xs-emphasized-font-size, 0.75rem);line-height:var(--wcss-body-xs-emphasized-line-height, 1rem)}.body-2xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-2xs-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-2xs-font-size, 0.625rem);line-height:var(--wcss-body-2xs-line-height, 0.875rem)}.body-2xs-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-2xs-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-2xs-emphasized-font-size, 0.625rem);line-height:var(--wcss-body-2xs-emphasized-line-height, 0.875rem)}.display-2xl{font-family:var(--wcss-display-2xl-family, "AS Circular"),var(--wcss-display-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-2xl-weight, 300);line-height:var(--wcss-display-2xl-line-height, 1.3);font-size:var(--wcss-display-2xl-font-size, clamp(3.5rem, 6vw, 5.375rem));letter-spacing:var(--wcss-display-2xl-letter-spacing, 0)}.display-xl{font-family:var(--wcss-display-xl-family, "AS Circular"),var(--wcss-display-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-xl-weight, 300);line-height:var(--wcss-display-xl-line-height, 1.3);font-size:var(--wcss-display-xl-font-size, clamp(3rem, 5.3333333333vw, 4.5rem));letter-spacing:var(--wcss-display-xl-letter-spacing, 0)}.display-lg{font-family:var(--wcss-display-lg-family, "AS Circular"),var(--wcss-display-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-lg-weight, 300);line-height:var(--wcss-display-lg-line-height, 1.3);font-size:var(--wcss-display-lg-font-size, clamp(2.75rem, 4.6666666667vw, 4rem));letter-spacing:var(--wcss-display-lg-letter-spacing, 0)}.display-md{font-family:var(--wcss-display-md-family, "AS Circular"),var(--wcss-display-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-md-weight, 300);line-height:var(--wcss-display-md-line-height, 1.3);font-size:var(--wcss-display-md-font-size, clamp(2.5rem, 4vw, 3.5rem));letter-spacing:var(--wcss-display-md-letter-spacing, 0)}.display-sm{font-family:var(--wcss-display-sm-family, "AS Circular"),var(--wcss-display-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-sm-weight, 300);line-height:var(--wcss-display-sm-line-height, 1.3);font-size:var(--wcss-display-sm-font-size, clamp(2rem, 3.6666666667vw, 3rem));letter-spacing:var(--wcss-display-sm-letter-spacing, 0)}.display-xs{font-family:var(--wcss-display-xs-family, "AS Circular"),var(--wcss-display-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-xs-weight, 300);line-height:var(--wcss-display-xs-line-height, 1.3);font-size:var(--wcss-display-xs-font-size, clamp(1.75rem, 3vw, 2.375rem));letter-spacing:var(--wcss-display-xs-letter-spacing, 0)}.heading-xl{font-family:var(--wcss-heading-xl-family, "AS Circular"),var(--wcss-heading-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-xl-weight, 300);line-height:var(--wcss-heading-xl-line-height, 1.3);font-size:var(--wcss-heading-xl-font-size, clamp(2rem, 3vw, 2.5rem));letter-spacing:var(--wcss-heading-xl-letter-spacing, 0)}.heading-lg{font-family:var(--wcss-heading-lg-family, "AS Circular"),var(--wcss-heading-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-lg-weight, 300);line-height:var(--wcss-heading-lg-line-height, 1.3);font-size:var(--wcss-heading-lg-font-size, clamp(1.75rem, 2.6666666667vw, 2.25rem));letter-spacing:var(--wcss-heading-lg-letter-spacing, 0)}.heading-md{font-family:var(--wcss-heading-md-family, "AS Circular"),var(--wcss-heading-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-md-weight, 300);line-height:var(--wcss-heading-md-line-height, 1.3);font-size:var(--wcss-heading-md-font-size, clamp(1.625rem, 2.3333333333vw, 1.75rem));letter-spacing:var(--wcss-heading-md-letter-spacing, 0)}.heading-sm{font-family:var(--wcss-heading-sm-family, "AS Circular"),var(--wcss-heading-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-sm-weight, 300);line-height:var(--wcss-heading-sm-line-height, 1.3);font-size:var(--wcss-heading-sm-font-size, clamp(1.375rem, 2vw, 1.5rem));letter-spacing:var(--wcss-heading-sm-letter-spacing, 0)}.heading-xs{font-family:var(--wcss-heading-xs-family, "AS Circular"),var(--wcss-heading-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-xs-weight, 300);line-height:var(--wcss-heading-xs-line-height, 1.3);font-size:var(--wcss-heading-xs-font-size, clamp(1.25rem, 1.6666666667vw, 1.25rem));letter-spacing:var(--wcss-heading-xs-letter-spacing, 0)}.heading-2xs{font-family:var(--wcss-heading-2xs-family, "AS Circular"),var(--wcss-heading-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-2xs-weight, 300);line-height:var(--wcss-heading-2xs-line-height, 1.3);font-size:var(--wcss-heading-2xs-font-size, clamp(1.125rem, 1.5vw, 1.125rem));letter-spacing:var(--wcss-heading-2xs-letter-spacing, 0)}.accent-2xl{font-family:var(--wcss-accent-2xl-family, "Good OT"),var(--wcss-accent-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-2xl-weight, 450);line-height:var(--wcss-accent-2xl-line-height, 1);font-size:var(--wcss-accent-2xl-font-size, clamp(2rem, 3.1666666667vw, 2.375rem));letter-spacing:var(--wcss-accent-2xl-letter-spacing, 0.05em);text-transform:uppercase}.accent-xl{font-family:var(--wcss-accent-xl-family, "Good OT"),var(--wcss-accent-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-xl-weight, 450);line-height:var(--wcss-accent-xl-line-height, 1.3);font-size:var(--wcss-accent-xl-font-size, clamp(1.625rem, 2.3333333333vw, 2rem));letter-spacing:var(--wcss-accent-xl-letter-spacing, 0.05em);text-transform:uppercase}.accent-lg{font-family:var(--wcss-accent-lg-family, "Good OT"),var(--wcss-accent-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-lg-weight, 450);line-height:var(--wcss-accent-lg-line-height, 1.3);font-size:var(--wcss-accent-lg-font-size, clamp(1.5rem, 2.1666666667vw, 1.75rem));letter-spacing:var(--wcss-accent-lg-letter-spacing, 0.05em);text-transform:uppercase}.accent-md{font-family:var(--wcss-accent-md-family, "Good OT"),var(--wcss-accent-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-md-weight, 500);line-height:var(--wcss-accent-md-line-height, 1.3);font-size:var(--wcss-accent-md-font-size, clamp(1.375rem, 1.8333333333vw, 1.5rem));letter-spacing:var(--wcss-accent-md-letter-spacing, 0.05em);text-transform:uppercase}.accent-sm{font-family:var(--wcss-accent-sm-family, "Good OT"),var(--wcss-accent-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-sm-weight, 500);line-height:var(--wcss-accent-sm-line-height, 1.3);font-size:var(--wcss-accent-sm-font-size, clamp(1.125rem, 1.5vw, 1.25rem));letter-spacing:var(--wcss-accent-sm-letter-spacing, 0.05em);text-transform:uppercase}.accent-xs{font-family:var(--wcss-accent-xs-family, "Good OT"),var(--wcss-accent-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-xs-weight, 500);line-height:var(--wcss-accent-xs-line-height, 1.3);font-size:var(--wcss-accent-xs-font-size, clamp(1rem, 1.3333333333vw, 1rem));letter-spacing:var(--wcss-accent-xs-letter-spacing, 0.1em);text-transform:uppercase}.accent-2xs{font-family:var(--wcss-accent-2xs-family, "Good OT"),var(--wcss-accent-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-2xs-weight, 450);line-height:var(--wcss-accent-2xs-line-height, 1.3);font-size:var(--wcss-accent-2xs-font-size, clamp(0.875rem, 1.1666666667vw, 0.875rem));letter-spacing:var(--wcss-accent-2xs-letter-spacing, 0.1em);text-transform:uppercase}:host{position:relative;display:block;width:calc(100% - var(--ds-size-200, 1rem) - var(--ds-size-200, 1rem));margin:0 var(--ds-size-200, 1rem)}@media screen and (min-width: 576px){:host{width:336px;padding:var(--ds-size-200, 1rem)}}@media screen and (min-width: 576px){:host(:not(:last-of-type)):after{position:absolute;top:var(--ds-size-200, 1rem);right:calc(-1*var(--ds-size-200, 1rem));height:calc(100% - var(--ds-size-200, 1rem) - var(--ds-size-200, 1rem));display:block;width:1px;content:""}}.header{display:flex;height:var(--ds-size-500, 2.5rem);margin-bottom:var(--ds-size-150, 0.75rem);align-items:center;flex-direction:row;text-align:center}.headerTitle{display:flex;align-items:center;flex:1;flex-direction:row;justify-content:center}.headerTitle div:first-child{margin-right:var(--ds-size-100, 0.5rem)}.calendarNavBtn{position:relative;display:flex;width:var(--ds-size-500, 2.5rem);height:var(--ds-size-500, 2.5rem);align-items:center;justify-content:center;border-width:1px;border-style:solid;border-radius:50%;cursor:pointer}.table{width:100%;border-collapse:collapse}.thead{margin-bottom:var(--ds-size-100, 0.5rem)}.th{display:flex;flex:1;align-items:center;justify-content:center}.th abbr{text-decoration:none}.tbody{width:100%;transition:all 0ms;transform:translateX(0)}@media screen and (min-width: 576px){.tbody{height:384px}}.td{flex:1;margin:0;padding:0}.tr{display:flex;flex-direction:row;width:100%}`;
1419
-
1420
- var colorCss$6 = i$3`:focus:not(:focus-visible){outline:3px solid transparent}:host{background-color:var(--ds-auro-calendar-month-container-color)}@media screen and (min-width: 576px){:host(:not(:last-of-type)):after{background-color:var(--ds-auro-calendar-month-divider-color)}}.header{color:var(--ds-auro-calendar-month-header-color)}`;
1421
-
1422
- /******************************************************************************
1423
- Copyright (c) Microsoft Corporation.
1424
-
1425
- Permission to use, copy, modify, and/or distribute this software for any
1426
- purpose with or without fee is hereby granted.
1427
-
1428
- THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
1429
- REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
1430
- AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
1431
- INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
1432
- LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
1433
- OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
1434
- PERFORMANCE OF THIS SOFTWARE.
1435
- ***************************************************************************** */
1436
- /* global Reflect, Promise, SuppressedError, Symbol, Iterator */
1437
-
1438
-
1439
- function __decorate(decorators, target, key, desc) {
1440
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
1441
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
1442
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
1443
- return c > 3 && r && Object.defineProperty(target, key, r), r;
1444
- }
1445
-
1446
- typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
1447
- var e = new Error(message);
1448
- return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
1449
- };
1450
-
1451
- /**
1452
- * @license
1453
- * Copyright 2017 Google LLC
1454
- * SPDX-License-Identifier: BSD-3-Clause
1455
- */const o$4={attribute:true,type:String,converter:u$9,reflect:false,hasChanged:f$8},r$4=(t=o$4,e,r)=>{const{kind:n,metadata:i}=r;let s=globalThis.litPropertyMetadata.get(i);if(void 0===s&&globalThis.litPropertyMetadata.set(i,s=new Map),"setter"===n&&((t=Object.create(t)).wrapped=true),s.set(r.name,t),"accessor"===n){const{name:o}=r;return {set(r){const n=e.get.call(this);e.set.call(this,r),this.requestUpdate(o,n,t,true,r);},init(e){return void 0!==e&&this.C(o,void 0,t,e),e}}}if("setter"===n){const{name:o}=r;return function(r){const n=this[o];e.call(this,r),this.requestUpdate(o,n,t,true,r);}}throw Error("Unsupported decorator location: "+n)};function n$4(t){return (e,o)=>"object"==typeof o?r$4(t,e,o):((t,e,o)=>{const r=e.hasOwnProperty(o);return e.constructor.createProperty(o,t),r?Object.getOwnPropertyDescriptor(e,o):void 0})(t,e,o)}
1456
-
1457
1533
  /**
1458
1534
  * @module constants
1459
1535
  * @summary Useful constants
@@ -7208,6 +7284,49 @@ function subYears(date, amount, options) {
7208
7284
  return addYears(date, -1, options);
7209
7285
  }
7210
7286
 
7287
+ var styleCss$7 = i$3`.body-default{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-default-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-default-font-size, 1rem);line-height:var(--wcss-body-default-line-height, 1.5rem)}.body-default-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-default-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-default-emphasized-font-size, 1rem);line-height:var(--wcss-body-default-emphasized-line-height, 1.5rem)}.body-lg{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-lg-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-lg-font-size, 1.125rem);line-height:var(--wcss-body-lg-line-height, 1.625rem)}.body-lg-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-lg-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-lg-emphasized-font-size, 1.125rem);line-height:var(--wcss-body-lg-emphasized-line-height, 1.625rem)}.body-sm{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-sm-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-sm-font-size, 0.875rem);line-height:var(--wcss-body-sm-line-height, 1.25rem)}.body-sm-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-sm-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-sm-emphasized-font-size, 0.875rem);line-height:var(--wcss-body-sm-emphasized-line-height, 1.25rem)}.body-xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-xs-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-xs-font-size, 0.75rem);line-height:var(--wcss-body-xs-line-height, 1rem)}.body-xs-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-xs-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-xs-emphasized-font-size, 0.75rem);line-height:var(--wcss-body-xs-emphasized-line-height, 1rem)}.body-2xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-2xs-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-2xs-font-size, 0.625rem);line-height:var(--wcss-body-2xs-line-height, 0.875rem)}.body-2xs-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-2xs-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-2xs-emphasized-font-size, 0.625rem);line-height:var(--wcss-body-2xs-emphasized-line-height, 0.875rem)}.display-2xl{font-family:var(--wcss-display-2xl-family, "AS Circular"),var(--wcss-display-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-2xl-weight, 300);line-height:var(--wcss-display-2xl-line-height, 1.3);font-size:var(--wcss-display-2xl-font-size, clamp(3.5rem, 6vw, 5.375rem));letter-spacing:var(--wcss-display-2xl-letter-spacing, 0)}.display-xl{font-family:var(--wcss-display-xl-family, "AS Circular"),var(--wcss-display-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-xl-weight, 300);line-height:var(--wcss-display-xl-line-height, 1.3);font-size:var(--wcss-display-xl-font-size, clamp(3rem, 5.3333333333vw, 4.5rem));letter-spacing:var(--wcss-display-xl-letter-spacing, 0)}.display-lg{font-family:var(--wcss-display-lg-family, "AS Circular"),var(--wcss-display-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-lg-weight, 300);line-height:var(--wcss-display-lg-line-height, 1.3);font-size:var(--wcss-display-lg-font-size, clamp(2.75rem, 4.6666666667vw, 4rem));letter-spacing:var(--wcss-display-lg-letter-spacing, 0)}.display-md{font-family:var(--wcss-display-md-family, "AS Circular"),var(--wcss-display-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-md-weight, 300);line-height:var(--wcss-display-md-line-height, 1.3);font-size:var(--wcss-display-md-font-size, clamp(2.5rem, 4vw, 3.5rem));letter-spacing:var(--wcss-display-md-letter-spacing, 0)}.display-sm{font-family:var(--wcss-display-sm-family, "AS Circular"),var(--wcss-display-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-sm-weight, 300);line-height:var(--wcss-display-sm-line-height, 1.3);font-size:var(--wcss-display-sm-font-size, clamp(2rem, 3.6666666667vw, 3rem));letter-spacing:var(--wcss-display-sm-letter-spacing, 0)}.display-xs{font-family:var(--wcss-display-xs-family, "AS Circular"),var(--wcss-display-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-xs-weight, 300);line-height:var(--wcss-display-xs-line-height, 1.3);font-size:var(--wcss-display-xs-font-size, clamp(1.75rem, 3vw, 2.375rem));letter-spacing:var(--wcss-display-xs-letter-spacing, 0)}.heading-xl{font-family:var(--wcss-heading-xl-family, "AS Circular"),var(--wcss-heading-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-xl-weight, 300);line-height:var(--wcss-heading-xl-line-height, 1.3);font-size:var(--wcss-heading-xl-font-size, clamp(2rem, 3vw, 2.5rem));letter-spacing:var(--wcss-heading-xl-letter-spacing, 0)}.heading-lg{font-family:var(--wcss-heading-lg-family, "AS Circular"),var(--wcss-heading-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-lg-weight, 300);line-height:var(--wcss-heading-lg-line-height, 1.3);font-size:var(--wcss-heading-lg-font-size, clamp(1.75rem, 2.6666666667vw, 2.25rem));letter-spacing:var(--wcss-heading-lg-letter-spacing, 0)}.heading-md{font-family:var(--wcss-heading-md-family, "AS Circular"),var(--wcss-heading-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-md-weight, 300);line-height:var(--wcss-heading-md-line-height, 1.3);font-size:var(--wcss-heading-md-font-size, clamp(1.625rem, 2.3333333333vw, 1.75rem));letter-spacing:var(--wcss-heading-md-letter-spacing, 0)}.heading-sm{font-family:var(--wcss-heading-sm-family, "AS Circular"),var(--wcss-heading-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-sm-weight, 300);line-height:var(--wcss-heading-sm-line-height, 1.3);font-size:var(--wcss-heading-sm-font-size, clamp(1.375rem, 2vw, 1.5rem));letter-spacing:var(--wcss-heading-sm-letter-spacing, 0)}.heading-xs{font-family:var(--wcss-heading-xs-family, "AS Circular"),var(--wcss-heading-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-xs-weight, 300);line-height:var(--wcss-heading-xs-line-height, 1.3);font-size:var(--wcss-heading-xs-font-size, clamp(1.25rem, 1.6666666667vw, 1.25rem));letter-spacing:var(--wcss-heading-xs-letter-spacing, 0)}.heading-2xs{font-family:var(--wcss-heading-2xs-family, "AS Circular"),var(--wcss-heading-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-2xs-weight, 300);line-height:var(--wcss-heading-2xs-line-height, 1.3);font-size:var(--wcss-heading-2xs-font-size, clamp(1.125rem, 1.5vw, 1.125rem));letter-spacing:var(--wcss-heading-2xs-letter-spacing, 0)}.accent-2xl{font-family:var(--wcss-accent-2xl-family, "Good OT"),var(--wcss-accent-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-2xl-weight, 450);line-height:var(--wcss-accent-2xl-line-height, 1);font-size:var(--wcss-accent-2xl-font-size, clamp(2rem, 3.1666666667vw, 2.375rem));letter-spacing:var(--wcss-accent-2xl-letter-spacing, 0.05em);text-transform:uppercase}.accent-xl{font-family:var(--wcss-accent-xl-family, "Good OT"),var(--wcss-accent-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-xl-weight, 450);line-height:var(--wcss-accent-xl-line-height, 1.3);font-size:var(--wcss-accent-xl-font-size, clamp(1.625rem, 2.3333333333vw, 2rem));letter-spacing:var(--wcss-accent-xl-letter-spacing, 0.05em);text-transform:uppercase}.accent-lg{font-family:var(--wcss-accent-lg-family, "Good OT"),var(--wcss-accent-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-lg-weight, 450);line-height:var(--wcss-accent-lg-line-height, 1.3);font-size:var(--wcss-accent-lg-font-size, clamp(1.5rem, 2.1666666667vw, 1.75rem));letter-spacing:var(--wcss-accent-lg-letter-spacing, 0.05em);text-transform:uppercase}.accent-md{font-family:var(--wcss-accent-md-family, "Good OT"),var(--wcss-accent-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-md-weight, 500);line-height:var(--wcss-accent-md-line-height, 1.3);font-size:var(--wcss-accent-md-font-size, clamp(1.375rem, 1.8333333333vw, 1.5rem));letter-spacing:var(--wcss-accent-md-letter-spacing, 0.05em);text-transform:uppercase}.accent-sm{font-family:var(--wcss-accent-sm-family, "Good OT"),var(--wcss-accent-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-sm-weight, 500);line-height:var(--wcss-accent-sm-line-height, 1.3);font-size:var(--wcss-accent-sm-font-size, clamp(1.125rem, 1.5vw, 1.25rem));letter-spacing:var(--wcss-accent-sm-letter-spacing, 0.05em);text-transform:uppercase}.accent-xs{font-family:var(--wcss-accent-xs-family, "Good OT"),var(--wcss-accent-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-xs-weight, 500);line-height:var(--wcss-accent-xs-line-height, 1.3);font-size:var(--wcss-accent-xs-font-size, clamp(1rem, 1.3333333333vw, 1rem));letter-spacing:var(--wcss-accent-xs-letter-spacing, 0.1em);text-transform:uppercase}.accent-2xs{font-family:var(--wcss-accent-2xs-family, "Good OT"),var(--wcss-accent-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-2xs-weight, 450);line-height:var(--wcss-accent-2xs-line-height, 1.3);font-size:var(--wcss-accent-2xs-font-size, clamp(0.875rem, 1.1666666667vw, 0.875rem));letter-spacing:var(--wcss-accent-2xs-letter-spacing, 0.1em);text-transform:uppercase}:host{--calendar-width: 336px;--mobile-footer-height: 150px;--mobile-header-height: 68px;--desktop-footer-height: 80px;height:100vh;height:100dvh}.calendars{display:flex;flex-direction:row}.calendars:focus{outline:none}.calendarNavButtons{position:absolute;z-index:1;top:var(--ds-size-200, 1rem);right:var(--ds-size-50, 0.25rem);left:var(--ds-size-50, 0.25rem)}.calendarNavBtn{display:flex;width:var(--ds-size-500, 2.5rem);height:var(--ds-size-500, 2.5rem);align-items:center;justify-content:center;border-width:1px;border-style:solid;border-radius:50%;cursor:pointer}.prevMonth,.nextMonth{position:absolute;top:0}.prevMonth{left:0}.nextMonth{right:0}.headerActions{padding:0 var(--ds-size-200, 1rem)}.mobileHeader{width:100%;height:var(--mobile-header-height);z-index:1;align-items:center;flex-direction:row}.headerDateFrom,.headerDateTo{display:flex;height:var(--mobile-header-height);flex:1;flex-direction:column;justify-content:center;padding:0 var(--ds-size-150, 0.75rem) 0 var(--ds-size-200, 1rem)}.mobileDateLabel{padding:var(--ds-size-25, 0.125rem) 0}.mobileFooter{display:none;width:100%;align-items:flex-end;flex-direction:column;justify-content:flex-end}.mobileFooterActions{position:relative;bottom:0;left:50%;display:none;width:calc(100% - var(--ds-size-200, 1rem)*2);align-items:flex-end;flex-direction:column;justify-content:flex-end;padding:var(--ds-size-150) calc(var(--ds-size-200, 1rem));transform:translateX(-50%)}.mobileFooterActions auro-button{width:100%}.calendarWrapper.hasFooter{padding-bottom:var(--desktop-footer-height)}:host([isfullscreen]){width:100%;max-height:100dvh;overflow:hidden}:host([isfullscreen]) .prevMonth,:host([isfullscreen]) .nextMonth{display:none}:host([isfullscreen]) .mobileHeader,:host([isfullscreen]) .mobileFooter,:host([isfullscreen]) .mobileFooterActions{display:flex}:host([isfullscreen]) .calendarWrapper{display:flex;flex-direction:column}:host([isfullscreen]) .calendars{display:flex;flex-direction:column;flex:1;align-items:center;width:100%;overscroll-behavior:contain}:host([isfullscreen]) .calendars:after{display:block;width:100%;height:var(--mobile-footer-height);content:""}.sr-only{position:absolute;overflow:hidden;clip:rect(0, 0, 0, 0);width:1px;height:1px;margin:-1px;padding:0;border:0;white-space:nowrap}`;
7288
+
7289
+ var colorCss$7 = i$3`.calendarNavBtn{border-color:var(--ds-auro-calendar-nav-btn-border-color);background-color:var(--ds-auro-calendar-nav-btn-container-color);color:var(--ds-auro-calendar-nav-btn-chevron-color)}.calendarNavBtn:hover{--ds-auro-calendar-nav-btn-container-color: var(--ds-advanced-color-state-background-hover, #f2f2f2);--ds-auro-calendar-nav-btn-border-color: var(--ds-basic-color-brand-primary, #01426a)}.calendarNavBtn:focus{--ds-auro-calendar-nav-btn-border-color: var(--ds-basic-color-brand-primary, #01426a)}.calendarNavBtn:active{--ds-auro-calendar-nav-btn-border-color: var(--ds-basic-color-brand-primary, #01426a);box-shadow:inset 0 0 0 1px var(--ds-auro-calendar-nav-btn-border-color)}.mobileHeader{background-color:var(--ds-auro-calendar-mobile-header-container-color)}.mobileDateLabel{color:var(--ds-auro-calendar-mobile-header-text-color)}:host(:not([noRange])) .headerDateTo:after{background-color:var(--ds-auro-calendar-mobile-header-divider-color)}::slotted([slot="bib.fullscreen.fromStr"]),::slotted([slot=mobileDateToStr]){color:var(--ds-auro-datepicker-placeholder-color)}@media screen and (max-width: 576px){.calendarNavBtn{--ds-auro-calendar-nav-btn-border-color: var(--ds-basic-color-brand-primary, #01426a)}}`;
7290
+
7291
+ var styleCss$6 = i$3`:focus:not(:focus-visible){outline:3px solid transparent}.body-default{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-default-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-default-font-size, 1rem);line-height:var(--wcss-body-default-line-height, 1.5rem)}.body-default-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-default-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-default-emphasized-font-size, 1rem);line-height:var(--wcss-body-default-emphasized-line-height, 1.5rem)}.body-lg{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-lg-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-lg-font-size, 1.125rem);line-height:var(--wcss-body-lg-line-height, 1.625rem)}.body-lg-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-lg-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-lg-emphasized-font-size, 1.125rem);line-height:var(--wcss-body-lg-emphasized-line-height, 1.625rem)}.body-sm{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-sm-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-sm-font-size, 0.875rem);line-height:var(--wcss-body-sm-line-height, 1.25rem)}.body-sm-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-sm-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-sm-emphasized-font-size, 0.875rem);line-height:var(--wcss-body-sm-emphasized-line-height, 1.25rem)}.body-xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-xs-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-xs-font-size, 0.75rem);line-height:var(--wcss-body-xs-line-height, 1rem)}.body-xs-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-xs-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-xs-emphasized-font-size, 0.75rem);line-height:var(--wcss-body-xs-emphasized-line-height, 1rem)}.body-2xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-2xs-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-2xs-font-size, 0.625rem);line-height:var(--wcss-body-2xs-line-height, 0.875rem)}.body-2xs-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-2xs-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-2xs-emphasized-font-size, 0.625rem);line-height:var(--wcss-body-2xs-emphasized-line-height, 0.875rem)}.display-2xl{font-family:var(--wcss-display-2xl-family, "AS Circular"),var(--wcss-display-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-2xl-weight, 300);line-height:var(--wcss-display-2xl-line-height, 1.3);font-size:var(--wcss-display-2xl-font-size, clamp(3.5rem, 6vw, 5.375rem));letter-spacing:var(--wcss-display-2xl-letter-spacing, 0)}.display-xl{font-family:var(--wcss-display-xl-family, "AS Circular"),var(--wcss-display-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-xl-weight, 300);line-height:var(--wcss-display-xl-line-height, 1.3);font-size:var(--wcss-display-xl-font-size, clamp(3rem, 5.3333333333vw, 4.5rem));letter-spacing:var(--wcss-display-xl-letter-spacing, 0)}.display-lg{font-family:var(--wcss-display-lg-family, "AS Circular"),var(--wcss-display-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-lg-weight, 300);line-height:var(--wcss-display-lg-line-height, 1.3);font-size:var(--wcss-display-lg-font-size, clamp(2.75rem, 4.6666666667vw, 4rem));letter-spacing:var(--wcss-display-lg-letter-spacing, 0)}.display-md{font-family:var(--wcss-display-md-family, "AS Circular"),var(--wcss-display-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-md-weight, 300);line-height:var(--wcss-display-md-line-height, 1.3);font-size:var(--wcss-display-md-font-size, clamp(2.5rem, 4vw, 3.5rem));letter-spacing:var(--wcss-display-md-letter-spacing, 0)}.display-sm{font-family:var(--wcss-display-sm-family, "AS Circular"),var(--wcss-display-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-sm-weight, 300);line-height:var(--wcss-display-sm-line-height, 1.3);font-size:var(--wcss-display-sm-font-size, clamp(2rem, 3.6666666667vw, 3rem));letter-spacing:var(--wcss-display-sm-letter-spacing, 0)}.display-xs{font-family:var(--wcss-display-xs-family, "AS Circular"),var(--wcss-display-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-xs-weight, 300);line-height:var(--wcss-display-xs-line-height, 1.3);font-size:var(--wcss-display-xs-font-size, clamp(1.75rem, 3vw, 2.375rem));letter-spacing:var(--wcss-display-xs-letter-spacing, 0)}.heading-xl{font-family:var(--wcss-heading-xl-family, "AS Circular"),var(--wcss-heading-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-xl-weight, 300);line-height:var(--wcss-heading-xl-line-height, 1.3);font-size:var(--wcss-heading-xl-font-size, clamp(2rem, 3vw, 2.5rem));letter-spacing:var(--wcss-heading-xl-letter-spacing, 0)}.heading-lg{font-family:var(--wcss-heading-lg-family, "AS Circular"),var(--wcss-heading-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-lg-weight, 300);line-height:var(--wcss-heading-lg-line-height, 1.3);font-size:var(--wcss-heading-lg-font-size, clamp(1.75rem, 2.6666666667vw, 2.25rem));letter-spacing:var(--wcss-heading-lg-letter-spacing, 0)}.heading-md{font-family:var(--wcss-heading-md-family, "AS Circular"),var(--wcss-heading-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-md-weight, 300);line-height:var(--wcss-heading-md-line-height, 1.3);font-size:var(--wcss-heading-md-font-size, clamp(1.625rem, 2.3333333333vw, 1.75rem));letter-spacing:var(--wcss-heading-md-letter-spacing, 0)}.heading-sm{font-family:var(--wcss-heading-sm-family, "AS Circular"),var(--wcss-heading-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-sm-weight, 300);line-height:var(--wcss-heading-sm-line-height, 1.3);font-size:var(--wcss-heading-sm-font-size, clamp(1.375rem, 2vw, 1.5rem));letter-spacing:var(--wcss-heading-sm-letter-spacing, 0)}.heading-xs{font-family:var(--wcss-heading-xs-family, "AS Circular"),var(--wcss-heading-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-xs-weight, 300);line-height:var(--wcss-heading-xs-line-height, 1.3);font-size:var(--wcss-heading-xs-font-size, clamp(1.25rem, 1.6666666667vw, 1.25rem));letter-spacing:var(--wcss-heading-xs-letter-spacing, 0)}.heading-2xs{font-family:var(--wcss-heading-2xs-family, "AS Circular"),var(--wcss-heading-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-2xs-weight, 300);line-height:var(--wcss-heading-2xs-line-height, 1.3);font-size:var(--wcss-heading-2xs-font-size, clamp(1.125rem, 1.5vw, 1.125rem));letter-spacing:var(--wcss-heading-2xs-letter-spacing, 0)}.accent-2xl{font-family:var(--wcss-accent-2xl-family, "Good OT"),var(--wcss-accent-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-2xl-weight, 450);line-height:var(--wcss-accent-2xl-line-height, 1);font-size:var(--wcss-accent-2xl-font-size, clamp(2rem, 3.1666666667vw, 2.375rem));letter-spacing:var(--wcss-accent-2xl-letter-spacing, 0.05em);text-transform:uppercase}.accent-xl{font-family:var(--wcss-accent-xl-family, "Good OT"),var(--wcss-accent-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-xl-weight, 450);line-height:var(--wcss-accent-xl-line-height, 1.3);font-size:var(--wcss-accent-xl-font-size, clamp(1.625rem, 2.3333333333vw, 2rem));letter-spacing:var(--wcss-accent-xl-letter-spacing, 0.05em);text-transform:uppercase}.accent-lg{font-family:var(--wcss-accent-lg-family, "Good OT"),var(--wcss-accent-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-lg-weight, 450);line-height:var(--wcss-accent-lg-line-height, 1.3);font-size:var(--wcss-accent-lg-font-size, clamp(1.5rem, 2.1666666667vw, 1.75rem));letter-spacing:var(--wcss-accent-lg-letter-spacing, 0.05em);text-transform:uppercase}.accent-md{font-family:var(--wcss-accent-md-family, "Good OT"),var(--wcss-accent-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-md-weight, 500);line-height:var(--wcss-accent-md-line-height, 1.3);font-size:var(--wcss-accent-md-font-size, clamp(1.375rem, 1.8333333333vw, 1.5rem));letter-spacing:var(--wcss-accent-md-letter-spacing, 0.05em);text-transform:uppercase}.accent-sm{font-family:var(--wcss-accent-sm-family, "Good OT"),var(--wcss-accent-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-sm-weight, 500);line-height:var(--wcss-accent-sm-line-height, 1.3);font-size:var(--wcss-accent-sm-font-size, clamp(1.125rem, 1.5vw, 1.25rem));letter-spacing:var(--wcss-accent-sm-letter-spacing, 0.05em);text-transform:uppercase}.accent-xs{font-family:var(--wcss-accent-xs-family, "Good OT"),var(--wcss-accent-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-xs-weight, 500);line-height:var(--wcss-accent-xs-line-height, 1.3);font-size:var(--wcss-accent-xs-font-size, clamp(1rem, 1.3333333333vw, 1rem));letter-spacing:var(--wcss-accent-xs-letter-spacing, 0.1em);text-transform:uppercase}.accent-2xs{font-family:var(--wcss-accent-2xs-family, "Good OT"),var(--wcss-accent-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-2xs-weight, 450);line-height:var(--wcss-accent-2xs-line-height, 1.3);font-size:var(--wcss-accent-2xs-font-size, clamp(0.875rem, 1.1666666667vw, 0.875rem));letter-spacing:var(--wcss-accent-2xs-letter-spacing, 0.1em);text-transform:uppercase}:host{position:relative;display:block;width:calc(100% - var(--ds-size-200, 1rem) - var(--ds-size-200, 1rem));margin:0 var(--ds-size-200, 1rem)}@media screen and (min-width: 576px){:host{width:336px;padding:var(--ds-size-200, 1rem) var(--ds-size-200, 1rem) 0}}@media screen and (min-width: 576px){:host(:not(:last-of-type)):after{position:absolute;top:var(--ds-size-200, 1rem);right:calc(-1*var(--ds-size-200, 1rem));height:calc(100% - var(--ds-size-200, 1rem) - var(--ds-size-200, 1rem));display:block;width:1px;content:""}}.header{display:flex;height:var(--ds-size-500, 2.5rem);margin-bottom:var(--ds-size-150, 0.75rem);align-items:center;flex-direction:row;text-align:center}.headerTitle{display:flex;align-items:center;flex:1;flex-direction:row;justify-content:center}.headerTitle div:first-child{margin-right:var(--ds-size-100, 0.5rem)}.calendarNavBtn{position:relative;display:flex;width:var(--ds-size-500, 2.5rem);height:var(--ds-size-500, 2.5rem);align-items:center;justify-content:center;border-width:1px;border-style:solid;border-radius:50%;cursor:pointer}.table{width:100%;border-collapse:collapse}.thead{margin-bottom:var(--ds-size-100, 0.5rem)}.th{display:flex;flex:1;align-items:center;justify-content:center}.th abbr{text-decoration:none}.tbody{width:100%;transition:all 0ms;transform:translateX(0)}@media screen and (min-width: 576px){.tbody{height:336px}}.td{flex:1;margin:0;padding:0}.tr{display:flex;flex-direction:row;width:100%;border-radius:10px;overflow:hidden}.tr:not(:last-of-type){margin-bottom:var(--ds-size-100, 0.5rem)}`;
7292
+
7293
+ var colorCss$6 = i$3`:focus:not(:focus-visible){outline:3px solid transparent}:host{background-color:var(--ds-auro-calendar-month-container-color)}@media screen and (min-width: 576px){:host(:not(:last-of-type)):after{background-color:var(--ds-auro-calendar-month-divider-color)}}.header{color:var(--ds-auro-calendar-month-header-color)}`;
7294
+
7295
+ /******************************************************************************
7296
+ Copyright (c) Microsoft Corporation.
7297
+
7298
+ Permission to use, copy, modify, and/or distribute this software for any
7299
+ purpose with or without fee is hereby granted.
7300
+
7301
+ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
7302
+ REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
7303
+ AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
7304
+ INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
7305
+ LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
7306
+ OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
7307
+ PERFORMANCE OF THIS SOFTWARE.
7308
+ ***************************************************************************** */
7309
+ /* global Reflect, Promise, SuppressedError, Symbol, Iterator */
7310
+
7311
+
7312
+ function __decorate(decorators, target, key, desc) {
7313
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
7314
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
7315
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
7316
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7317
+ }
7318
+
7319
+ typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
7320
+ var e = new Error(message);
7321
+ return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
7322
+ };
7323
+
7324
+ /**
7325
+ * @license
7326
+ * Copyright 2017 Google LLC
7327
+ * SPDX-License-Identifier: BSD-3-Clause
7328
+ */const o$4={attribute:true,type:String,converter:u$9,reflect:false,hasChanged:f$8},r$4=(t=o$4,e,r)=>{const{kind:n,metadata:i}=r;let s=globalThis.litPropertyMetadata.get(i);if(void 0===s&&globalThis.litPropertyMetadata.set(i,s=new Map),"setter"===n&&((t=Object.create(t)).wrapped=true),s.set(r.name,t),"accessor"===n){const{name:o}=r;return {set(r){const n=e.get.call(this);e.set.call(this,r),this.requestUpdate(o,n,t,true,r);},init(e){return void 0!==e&&this.C(o,void 0,t,e),e}}}if("setter"===n){const{name:o}=r;return function(r){const n=this[o];e.call(this,r),this.requestUpdate(o,n,t,true,r);}}throw Error("Unsupported decorator location: "+n)};function n$4(t){return (e,o)=>"object"==typeof o?r$4(t,e,o):((t,e,o)=>{const r=e.hasOwnProperty(o);return e.constructor.createProperty(o,t),r?Object.getOwnPropertyDescriptor(e,o):void 0})(t,e,o)}
7329
+
7211
7330
  class RangeDatepickerCell extends i$1 {
7212
7331
  constructor() {
7213
7332
  super(...arguments);
@@ -7930,9 +8049,9 @@ __decorate([n$4({ type: Array })], RangeDatepickerCalendar.prototype, "dayNamesO
7930
8049
  __decorate([n$4({ type: Array })], RangeDatepickerCalendar.prototype, "daysOfMonth", void 0);
7931
8050
  AuroLibraryRuntimeUtils$5.prototype.registerComponent('wc-range-datepicker-calendar', RangeDatepickerCalendar);
7932
8051
 
7933
- var styleCss$5 = i$3`.body-default{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-default-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-default-font-size, 1rem);line-height:var(--wcss-body-default-line-height, 1.5rem)}.body-default-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-default-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-default-emphasized-font-size, 1rem);line-height:var(--wcss-body-default-emphasized-line-height, 1.5rem)}.body-lg{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-lg-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-lg-font-size, 1.125rem);line-height:var(--wcss-body-lg-line-height, 1.625rem)}.body-lg-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-lg-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-lg-emphasized-font-size, 1.125rem);line-height:var(--wcss-body-lg-emphasized-line-height, 1.625rem)}.body-sm{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-sm-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-sm-font-size, 0.875rem);line-height:var(--wcss-body-sm-line-height, 1.25rem)}.body-sm-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-sm-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-sm-emphasized-font-size, 0.875rem);line-height:var(--wcss-body-sm-emphasized-line-height, 1.25rem)}.body-xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-xs-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-xs-font-size, 0.75rem);line-height:var(--wcss-body-xs-line-height, 1rem)}.body-xs-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-xs-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-xs-emphasized-font-size, 0.75rem);line-height:var(--wcss-body-xs-emphasized-line-height, 1rem)}.body-2xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-2xs-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-2xs-font-size, 0.625rem);line-height:var(--wcss-body-2xs-line-height, 0.875rem)}.body-2xs-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-2xs-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-2xs-emphasized-font-size, 0.625rem);line-height:var(--wcss-body-2xs-emphasized-line-height, 0.875rem)}.display-2xl{font-family:var(--wcss-display-2xl-family, "AS Circular"),var(--wcss-display-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-2xl-weight, 300);line-height:var(--wcss-display-2xl-line-height, 1.3);font-size:var(--wcss-display-2xl-font-size, clamp(3.5rem, 6vw, 5.375rem));letter-spacing:var(--wcss-display-2xl-letter-spacing, 0)}.display-xl{font-family:var(--wcss-display-xl-family, "AS Circular"),var(--wcss-display-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-xl-weight, 300);line-height:var(--wcss-display-xl-line-height, 1.3);font-size:var(--wcss-display-xl-font-size, clamp(3rem, 5.3333333333vw, 4.5rem));letter-spacing:var(--wcss-display-xl-letter-spacing, 0)}.display-lg{font-family:var(--wcss-display-lg-family, "AS Circular"),var(--wcss-display-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-lg-weight, 300);line-height:var(--wcss-display-lg-line-height, 1.3);font-size:var(--wcss-display-lg-font-size, clamp(2.75rem, 4.6666666667vw, 4rem));letter-spacing:var(--wcss-display-lg-letter-spacing, 0)}.display-md{font-family:var(--wcss-display-md-family, "AS Circular"),var(--wcss-display-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-md-weight, 300);line-height:var(--wcss-display-md-line-height, 1.3);font-size:var(--wcss-display-md-font-size, clamp(2.5rem, 4vw, 3.5rem));letter-spacing:var(--wcss-display-md-letter-spacing, 0)}.display-sm{font-family:var(--wcss-display-sm-family, "AS Circular"),var(--wcss-display-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-sm-weight, 300);line-height:var(--wcss-display-sm-line-height, 1.3);font-size:var(--wcss-display-sm-font-size, clamp(2rem, 3.6666666667vw, 3rem));letter-spacing:var(--wcss-display-sm-letter-spacing, 0)}.display-xs{font-family:var(--wcss-display-xs-family, "AS Circular"),var(--wcss-display-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-xs-weight, 300);line-height:var(--wcss-display-xs-line-height, 1.3);font-size:var(--wcss-display-xs-font-size, clamp(1.75rem, 3vw, 2.375rem));letter-spacing:var(--wcss-display-xs-letter-spacing, 0)}.heading-xl{font-family:var(--wcss-heading-xl-family, "AS Circular"),var(--wcss-heading-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-xl-weight, 300);line-height:var(--wcss-heading-xl-line-height, 1.3);font-size:var(--wcss-heading-xl-font-size, clamp(2rem, 3vw, 2.5rem));letter-spacing:var(--wcss-heading-xl-letter-spacing, 0)}.heading-lg{font-family:var(--wcss-heading-lg-family, "AS Circular"),var(--wcss-heading-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-lg-weight, 300);line-height:var(--wcss-heading-lg-line-height, 1.3);font-size:var(--wcss-heading-lg-font-size, clamp(1.75rem, 2.6666666667vw, 2.25rem));letter-spacing:var(--wcss-heading-lg-letter-spacing, 0)}.heading-md{font-family:var(--wcss-heading-md-family, "AS Circular"),var(--wcss-heading-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-md-weight, 300);line-height:var(--wcss-heading-md-line-height, 1.3);font-size:var(--wcss-heading-md-font-size, clamp(1.625rem, 2.3333333333vw, 1.75rem));letter-spacing:var(--wcss-heading-md-letter-spacing, 0)}.heading-sm{font-family:var(--wcss-heading-sm-family, "AS Circular"),var(--wcss-heading-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-sm-weight, 300);line-height:var(--wcss-heading-sm-line-height, 1.3);font-size:var(--wcss-heading-sm-font-size, clamp(1.375rem, 2vw, 1.5rem));letter-spacing:var(--wcss-heading-sm-letter-spacing, 0)}.heading-xs{font-family:var(--wcss-heading-xs-family, "AS Circular"),var(--wcss-heading-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-xs-weight, 300);line-height:var(--wcss-heading-xs-line-height, 1.3);font-size:var(--wcss-heading-xs-font-size, clamp(1.25rem, 1.6666666667vw, 1.25rem));letter-spacing:var(--wcss-heading-xs-letter-spacing, 0)}.heading-2xs{font-family:var(--wcss-heading-2xs-family, "AS Circular"),var(--wcss-heading-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-2xs-weight, 300);line-height:var(--wcss-heading-2xs-line-height, 1.3);font-size:var(--wcss-heading-2xs-font-size, clamp(1.125rem, 1.5vw, 1.125rem));letter-spacing:var(--wcss-heading-2xs-letter-spacing, 0)}.accent-2xl{font-family:var(--wcss-accent-2xl-family, "Good OT"),var(--wcss-accent-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-2xl-weight, 450);line-height:var(--wcss-accent-2xl-line-height, 1);font-size:var(--wcss-accent-2xl-font-size, clamp(2rem, 3.1666666667vw, 2.375rem));letter-spacing:var(--wcss-accent-2xl-letter-spacing, 0.05em);text-transform:uppercase}.accent-xl{font-family:var(--wcss-accent-xl-family, "Good OT"),var(--wcss-accent-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-xl-weight, 450);line-height:var(--wcss-accent-xl-line-height, 1.3);font-size:var(--wcss-accent-xl-font-size, clamp(1.625rem, 2.3333333333vw, 2rem));letter-spacing:var(--wcss-accent-xl-letter-spacing, 0.05em);text-transform:uppercase}.accent-lg{font-family:var(--wcss-accent-lg-family, "Good OT"),var(--wcss-accent-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-lg-weight, 450);line-height:var(--wcss-accent-lg-line-height, 1.3);font-size:var(--wcss-accent-lg-font-size, clamp(1.5rem, 2.1666666667vw, 1.75rem));letter-spacing:var(--wcss-accent-lg-letter-spacing, 0.05em);text-transform:uppercase}.accent-md{font-family:var(--wcss-accent-md-family, "Good OT"),var(--wcss-accent-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-md-weight, 500);line-height:var(--wcss-accent-md-line-height, 1.3);font-size:var(--wcss-accent-md-font-size, clamp(1.375rem, 1.8333333333vw, 1.5rem));letter-spacing:var(--wcss-accent-md-letter-spacing, 0.05em);text-transform:uppercase}.accent-sm{font-family:var(--wcss-accent-sm-family, "Good OT"),var(--wcss-accent-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-sm-weight, 500);line-height:var(--wcss-accent-sm-line-height, 1.3);font-size:var(--wcss-accent-sm-font-size, clamp(1.125rem, 1.5vw, 1.25rem));letter-spacing:var(--wcss-accent-sm-letter-spacing, 0.05em);text-transform:uppercase}.accent-xs{font-family:var(--wcss-accent-xs-family, "Good OT"),var(--wcss-accent-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-xs-weight, 500);line-height:var(--wcss-accent-xs-line-height, 1.3);font-size:var(--wcss-accent-xs-font-size, clamp(1rem, 1.3333333333vw, 1rem));letter-spacing:var(--wcss-accent-xs-letter-spacing, 0.1em);text-transform:uppercase}.accent-2xs{font-family:var(--wcss-accent-2xs-family, "Good OT"),var(--wcss-accent-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-2xs-weight, 450);line-height:var(--wcss-accent-2xs-line-height, 1.3);font-size:var(--wcss-accent-2xs-font-size, clamp(0.875rem, 1.1666666667vw, 0.875rem));letter-spacing:var(--wcss-accent-2xs-letter-spacing, 0.1em);text-transform:uppercase}@media screen and (max-width: 576px){:host{display:flex;justify-content:center}}.day{position:relative;width:var(--ds-size-500, 2.5rem);height:calc(var(--ds-size-700, 3.5rem) - 2px);padding:0;border-width:1px;border-style:solid;border-radius:var(--ds-size-300, 1.5rem);cursor:pointer;user-select:none}.day:focus-visible{outline:2px solid var(--ds-basic-color-border-default, #959595);outline-offset:2px}.day.disabled{cursor:default !important;pointer-events:none}.day.blackout{cursor:default}.day.reference{box-shadow:inset 0 0 0 2px var(--ds-advanced-color-shared-background, #ffffff)}.day.inRange::before{position:absolute;z-index:-1;top:50%;left:50%;display:block;width:14.2857142857vw;height:var(--ds-size-600, 3rem);content:"";transform:translate(-50%, -50%)}@media screen and (min-width: 576px){.day.inRange::before{width:var(--ds-size-600, 3rem)}}.day.rangeDepartDate::before{position:absolute;z-index:-1;top:50%;left:50%;display:block;width:14.2857142857vw;height:var(--ds-size-600, 3rem);content:"";transform:translate(-50%, -50%);width:7.1428571429vw;transform:translate(0%, -50%)}@media screen and (min-width: 576px){.day.rangeDepartDate::before{width:calc(var(--ds-size-600, 3rem)/2)}}.day.rangeReturnDate::before,.day.lastHoveredDate::before{position:absolute;z-index:-1;top:50%;left:50%;display:block;width:14.2857142857vw;height:var(--ds-size-600, 3rem);content:"";transform:translate(-50%, -50%);width:7.1428571429vw;transform:translate(-100%, -50%)}@media screen and (min-width: 576px){.day.rangeReturnDate::before,.day.lastHoveredDate::before{width:calc(var(--ds-size-600, 3rem)/2)}}.dateSlot{display:flex;flex-direction:column}.srOnly{position:absolute;overflow:hidden;width:1px;height:1px;padding:0;border:0;clip:rect(0, 0, 0, 0);white-space:nowrap}::slotted([slot^=date_]){position:absolute;top:80%;left:50%;width:100%;white-space:nowrap;transform:translate(-50%, -50%)}::slotted(auro-icon){max-height:24px;max-width:24px}:host([renderForDateSlot]) .buttonWrapper{position:relative;width:100%;top:5px}:host([renderForDateSlot]) .currentDayMarker{position:relative;padding-bottom:5px;top:-8px}@media screen and (min-width: 576px){.day{width:var(--ds-size-600, 3rem);height:var(--ds-size-800, 4rem)}.day:hover{cursor:pointer}}`;
8052
+ var styleCss$5 = i$3`.body-default{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-default-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-default-font-size, 1rem);line-height:var(--wcss-body-default-line-height, 1.5rem)}.body-default-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-default-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-default-emphasized-font-size, 1rem);line-height:var(--wcss-body-default-emphasized-line-height, 1.5rem)}.body-lg{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-lg-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-lg-font-size, 1.125rem);line-height:var(--wcss-body-lg-line-height, 1.625rem)}.body-lg-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-lg-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-lg-emphasized-font-size, 1.125rem);line-height:var(--wcss-body-lg-emphasized-line-height, 1.625rem)}.body-sm{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-sm-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-sm-font-size, 0.875rem);line-height:var(--wcss-body-sm-line-height, 1.25rem)}.body-sm-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-sm-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-sm-emphasized-font-size, 0.875rem);line-height:var(--wcss-body-sm-emphasized-line-height, 1.25rem)}.body-xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-xs-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-xs-font-size, 0.75rem);line-height:var(--wcss-body-xs-line-height, 1rem)}.body-xs-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-xs-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-xs-emphasized-font-size, 0.75rem);line-height:var(--wcss-body-xs-emphasized-line-height, 1rem)}.body-2xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-2xs-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-2xs-font-size, 0.625rem);line-height:var(--wcss-body-2xs-line-height, 0.875rem)}.body-2xs-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-2xs-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-2xs-emphasized-font-size, 0.625rem);line-height:var(--wcss-body-2xs-emphasized-line-height, 0.875rem)}.display-2xl{font-family:var(--wcss-display-2xl-family, "AS Circular"),var(--wcss-display-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-2xl-weight, 300);line-height:var(--wcss-display-2xl-line-height, 1.3);font-size:var(--wcss-display-2xl-font-size, clamp(3.5rem, 6vw, 5.375rem));letter-spacing:var(--wcss-display-2xl-letter-spacing, 0)}.display-xl{font-family:var(--wcss-display-xl-family, "AS Circular"),var(--wcss-display-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-xl-weight, 300);line-height:var(--wcss-display-xl-line-height, 1.3);font-size:var(--wcss-display-xl-font-size, clamp(3rem, 5.3333333333vw, 4.5rem));letter-spacing:var(--wcss-display-xl-letter-spacing, 0)}.display-lg{font-family:var(--wcss-display-lg-family, "AS Circular"),var(--wcss-display-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-lg-weight, 300);line-height:var(--wcss-display-lg-line-height, 1.3);font-size:var(--wcss-display-lg-font-size, clamp(2.75rem, 4.6666666667vw, 4rem));letter-spacing:var(--wcss-display-lg-letter-spacing, 0)}.display-md{font-family:var(--wcss-display-md-family, "AS Circular"),var(--wcss-display-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-md-weight, 300);line-height:var(--wcss-display-md-line-height, 1.3);font-size:var(--wcss-display-md-font-size, clamp(2.5rem, 4vw, 3.5rem));letter-spacing:var(--wcss-display-md-letter-spacing, 0)}.display-sm{font-family:var(--wcss-display-sm-family, "AS Circular"),var(--wcss-display-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-sm-weight, 300);line-height:var(--wcss-display-sm-line-height, 1.3);font-size:var(--wcss-display-sm-font-size, clamp(2rem, 3.6666666667vw, 3rem));letter-spacing:var(--wcss-display-sm-letter-spacing, 0)}.display-xs{font-family:var(--wcss-display-xs-family, "AS Circular"),var(--wcss-display-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-xs-weight, 300);line-height:var(--wcss-display-xs-line-height, 1.3);font-size:var(--wcss-display-xs-font-size, clamp(1.75rem, 3vw, 2.375rem));letter-spacing:var(--wcss-display-xs-letter-spacing, 0)}.heading-xl{font-family:var(--wcss-heading-xl-family, "AS Circular"),var(--wcss-heading-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-xl-weight, 300);line-height:var(--wcss-heading-xl-line-height, 1.3);font-size:var(--wcss-heading-xl-font-size, clamp(2rem, 3vw, 2.5rem));letter-spacing:var(--wcss-heading-xl-letter-spacing, 0)}.heading-lg{font-family:var(--wcss-heading-lg-family, "AS Circular"),var(--wcss-heading-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-lg-weight, 300);line-height:var(--wcss-heading-lg-line-height, 1.3);font-size:var(--wcss-heading-lg-font-size, clamp(1.75rem, 2.6666666667vw, 2.25rem));letter-spacing:var(--wcss-heading-lg-letter-spacing, 0)}.heading-md{font-family:var(--wcss-heading-md-family, "AS Circular"),var(--wcss-heading-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-md-weight, 300);line-height:var(--wcss-heading-md-line-height, 1.3);font-size:var(--wcss-heading-md-font-size, clamp(1.625rem, 2.3333333333vw, 1.75rem));letter-spacing:var(--wcss-heading-md-letter-spacing, 0)}.heading-sm{font-family:var(--wcss-heading-sm-family, "AS Circular"),var(--wcss-heading-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-sm-weight, 300);line-height:var(--wcss-heading-sm-line-height, 1.3);font-size:var(--wcss-heading-sm-font-size, clamp(1.375rem, 2vw, 1.5rem));letter-spacing:var(--wcss-heading-sm-letter-spacing, 0)}.heading-xs{font-family:var(--wcss-heading-xs-family, "AS Circular"),var(--wcss-heading-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-xs-weight, 300);line-height:var(--wcss-heading-xs-line-height, 1.3);font-size:var(--wcss-heading-xs-font-size, clamp(1.25rem, 1.6666666667vw, 1.25rem));letter-spacing:var(--wcss-heading-xs-letter-spacing, 0)}.heading-2xs{font-family:var(--wcss-heading-2xs-family, "AS Circular"),var(--wcss-heading-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-2xs-weight, 300);line-height:var(--wcss-heading-2xs-line-height, 1.3);font-size:var(--wcss-heading-2xs-font-size, clamp(1.125rem, 1.5vw, 1.125rem));letter-spacing:var(--wcss-heading-2xs-letter-spacing, 0)}.accent-2xl{font-family:var(--wcss-accent-2xl-family, "Good OT"),var(--wcss-accent-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-2xl-weight, 450);line-height:var(--wcss-accent-2xl-line-height, 1);font-size:var(--wcss-accent-2xl-font-size, clamp(2rem, 3.1666666667vw, 2.375rem));letter-spacing:var(--wcss-accent-2xl-letter-spacing, 0.05em);text-transform:uppercase}.accent-xl{font-family:var(--wcss-accent-xl-family, "Good OT"),var(--wcss-accent-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-xl-weight, 450);line-height:var(--wcss-accent-xl-line-height, 1.3);font-size:var(--wcss-accent-xl-font-size, clamp(1.625rem, 2.3333333333vw, 2rem));letter-spacing:var(--wcss-accent-xl-letter-spacing, 0.05em);text-transform:uppercase}.accent-lg{font-family:var(--wcss-accent-lg-family, "Good OT"),var(--wcss-accent-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-lg-weight, 450);line-height:var(--wcss-accent-lg-line-height, 1.3);font-size:var(--wcss-accent-lg-font-size, clamp(1.5rem, 2.1666666667vw, 1.75rem));letter-spacing:var(--wcss-accent-lg-letter-spacing, 0.05em);text-transform:uppercase}.accent-md{font-family:var(--wcss-accent-md-family, "Good OT"),var(--wcss-accent-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-md-weight, 500);line-height:var(--wcss-accent-md-line-height, 1.3);font-size:var(--wcss-accent-md-font-size, clamp(1.375rem, 1.8333333333vw, 1.5rem));letter-spacing:var(--wcss-accent-md-letter-spacing, 0.05em);text-transform:uppercase}.accent-sm{font-family:var(--wcss-accent-sm-family, "Good OT"),var(--wcss-accent-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-sm-weight, 500);line-height:var(--wcss-accent-sm-line-height, 1.3);font-size:var(--wcss-accent-sm-font-size, clamp(1.125rem, 1.5vw, 1.25rem));letter-spacing:var(--wcss-accent-sm-letter-spacing, 0.05em);text-transform:uppercase}.accent-xs{font-family:var(--wcss-accent-xs-family, "Good OT"),var(--wcss-accent-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-xs-weight, 500);line-height:var(--wcss-accent-xs-line-height, 1.3);font-size:var(--wcss-accent-xs-font-size, clamp(1rem, 1.3333333333vw, 1rem));letter-spacing:var(--wcss-accent-xs-letter-spacing, 0.1em);text-transform:uppercase}.accent-2xs{font-family:var(--wcss-accent-2xs-family, "Good OT"),var(--wcss-accent-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-2xs-weight, 450);line-height:var(--wcss-accent-2xs-line-height, 1.3);font-size:var(--wcss-accent-2xs-font-size, clamp(0.875rem, 1.1666666667vw, 0.875rem));letter-spacing:var(--wcss-accent-2xs-letter-spacing, 0.1em);text-transform:uppercase}@media screen and (max-width: 576px){:host{display:flex;justify-content:center}}.day{position:relative;width:48px;height:56px;padding:0;border-width:2px;border-style:solid;border-radius:10px;cursor:pointer;user-select:none}.day:focus-visible{outline:none;background-color:unset}.day.activeCell{outline-width:2px;outline-style:solid;outline-offset:-4px}.day.disabled{cursor:default !important;pointer-events:none}.day.blackout{cursor:pointer}.day.reference:after{position:absolute;top:-2px;left:-2px;display:block;width:calc(100% + 2px);height:calc(100% + 2px);box-sizing:content-box;border-radius:10px;border-style:solid;border-width:1px;content:""}.day.inRange::before{position:absolute;z-index:-1;top:-2px;left:-2px;display:block;width:calc(100% + 4px);height:calc(100% + 4px);box-sizing:content-box;content:""}.day.rangeDepartDate::before{position:absolute;z-index:-1;top:-2px;left:-2px;display:block;width:calc(100% + 4px);height:calc(100% + 4px);box-sizing:content-box;content:""}.day.rangeReturnDate::before,.day.lastHoveredDate::before{position:absolute;z-index:-1;top:-2px;left:-2px;display:block;width:calc(100% + 4px);height:calc(100% + 4px);box-sizing:content-box;content:"";border-radius:0 10px 10px 0;overflow:hidden}.day.firstDayOfMonth::before{border-radius:10px 0 0 10px;overflow:hidden}.day.lastDayOfMonth::before{border-radius:0 10px 10px 0;overflow:hidden}.buttonWrapper{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%}.dateSlot{display:block}::slotted([slot^=date_]){width:100%;white-space:nowrap}::slotted(auro-icon){max-height:24px;max-width:24px}:host([renderForDateSlot]) .buttonWrapper{position:relative;width:100%;height:100%}:host([renderForDateSlot]) .currentDayMarker{position:relative}`;
7934
8053
 
7935
- var colorCss$5 = i$3`:host ::slotted([slot^=date_]){color:var(--ds-auro-calendar-cell-price-text-color)}:host ::slotted([slot^=date_][highlight]){--ds-auro-calendar-cell-price-text-color: var(--ds-basic-color-status-success, #447a1f)}:host .day{border-color:var(--ds-auro-calendar-cell-border-color);background-color:var(--ds-auro-calendar-cell-container-color);color:var(--ds-auro-calendar-cell-text-color)}:host .day:focus-visible:not(.selected){--ds-auro-calendar-cell-container-color: var(--ds-auro-calendar-cell-in-range-color)}:host .day.selected{--ds-auro-calendar-cell-container-color: var(--ds-advanced-color-state-selected, #01426a);--ds-auro-calendar-cell-text-color: var(--ds-basic-color-texticon-inverse, #ffffff);--ds-auro-calendar-cell-price-text-color: var(--ds-basic-color-texticon-inverse, #ffffff)}:host .day.selected ::slotted([slot^=date_][highlight]){--ds-auro-calendar-cell-price-text-color: var(--ds-basic-color-status-success-subtle, #d6eac7)}:host .day.selected:hover{--ds-auro-calendar-cell-container-color: var(--ds-advanced-color-state-selected-hover, #00274a);--ds-auro-calendar-cell-text-color: var(--ds-basic-color-texticon-inverse, #ffffff)}:host .day.reference{--ds-auro-calendar-cell-border-color: var(--ds-basic-color-border-default, #959595)}:host .day.reference:not(.selected):not(.disabled){--ds-auro-calendar-cell-text-color: var(--ds-basic-color-texticon-muted, #676767)}:host .day.reference.selected{--ds-auro-calendar-cell-text-color: var(--ds-basic-color-texticon-inverse, #ffffff)}:host .day:hover{--ds-auro-calendar-cell-container-color: var(--ds-advanced-color-state-background-hover, #f2f2f2);--ds-auro-calendar-cell-text-color: var(--ds-basic-color-texticon-default, #2a2a2a)}:host .day.disabled{--ds-auro-calendar-cell-container-color: transparent;--ds-auro-calendar-cell-text-color: var(--ds-basic-color-texticon-disabled, #d0d0d0);--ds-auro-calendar-cell-price-text-color: var(--ds-basic-color-texticon-disabled, #d0d0d0)}:host .day.blackout{--ds-auro-calendar-cell-container-color: transparent;--ds-auro-calendar-cell-text-color: var(--ds-basic-color-texticon-disabled, #d0d0d0);--ds-auro-calendar-cell-price-text-color: var(--ds-basic-color-texticon-disabled, #d0d0d0)}:host .day.inRange:before,:host .day.rangeDepartDate:before,:host .day.rangeReturnDate:before,:host .day.lastHoveredDate:before{background-color:var(--ds-auro-calendar-cell-in-range-color)}:host .day.sameDateTrip:before{--ds-auro-calendar-cell-in-range-color: transparent}`;
8054
+ var colorCss$5 = i$3`:host ::slotted([slot^=date_]){color:var(--ds-auro-calendar-cell-price-text-color)}:host ::slotted([slot^=date_][highlight]){--ds-auro-calendar-cell-price-text-color: var(--ds-basic-color-status-success, #447a1f)}:host .day{border-color:var(--ds-auro-calendar-cell-border-color);background-color:var(--ds-auro-calendar-cell-container-color);color:var(--ds-auro-calendar-cell-text-color)}:host .day.activeCell:not(.selected){--ds-auro-calendar-cell-container-color: var(--ds-auro-calendar-cell-in-range-color);border-color:var(--ds-advanced-color-state-selected);outline-color:var(--ds-auro-calendar-cell-container-color)}:host .day.selected{--ds-auro-calendar-cell-container-color: var(--ds-advanced-color-state-selected, #01426a);--ds-auro-calendar-cell-text-color: var(--ds-basic-color-texticon-inverse, #ffffff);--ds-auro-calendar-cell-price-text-color: var(--ds-basic-color-texticon-inverse, #ffffff)}:host .day.selected ::slotted([slot^=date_][highlight]){--ds-auro-calendar-cell-price-text-color: var(--ds-basic-color-status-success-subtle, #d6eac7)}:host .day.selected:hover{--ds-auro-calendar-cell-container-color: var(--ds-advanced-color-state-selected-hover, #00274a);--ds-auro-calendar-cell-text-color: var(--ds-basic-color-texticon-inverse, #ffffff)}:host .day.reference:after{border-color:var(--ds-basic-color-border-default, #959595);box-shadow:inset 0 0 0 2px var(--ds-basic-color-surface-default, #ffffff)}:host .day.reference:hover::after{box-shadow:inset 0 0 0 2px var(--ds-advanced-color-shared-background-muted, #f7f7f7)}:host .day:hover{--ds-auro-calendar-cell-container-color: var(--ds-advanced-color-state-background-hover, #f2f2f2);--ds-auro-calendar-cell-text-color: var(--ds-basic-color-texticon-default, #2a2a2a)}:host .day.disabled{--ds-auro-calendar-cell-container-color: transparent;--ds-auro-calendar-cell-text-color: var(--ds-basic-color-texticon-disabled, #d0d0d0);--ds-auro-calendar-cell-price-text-color: var(--ds-basic-color-texticon-disabled, #d0d0d0)}:host .day.blackout{--ds-auro-calendar-cell-container-color: transparent;--ds-auro-calendar-cell-text-color: var(--ds-basic-color-texticon-disabled, #d0d0d0);--ds-auro-calendar-cell-price-text-color: var(--ds-basic-color-texticon-disabled, #d0d0d0)}:host .day.inRange:before,:host .day.rangeDepartDate:before,:host .day.rangeReturnDate:before,:host .day.lastHoveredDate:before{background-color:var(--ds-auro-calendar-cell-in-range-color)}:host .day.sameDateTrip:before{--ds-auro-calendar-cell-in-range-color: transparent}`;
7936
8055
 
7937
8056
  let s$2 = class s{registerComponent(e,t){customElements.get(e)||customElements.define(e,class extends t{});}closestElement(e,t=this,i=(t,s=t&&t.closest(e))=>t&&t!==document&&t!==window?s||i(t.getRootNode().host):null){return i(t)}handleComponentTagRename(e,t){const i=t.toLowerCase();e.tagName.toLowerCase()!==i&&e.setAttribute(i,true);}elementMatch(e,t){const i=t.toLowerCase();return e.tagName.toLowerCase()===i||e.hasAttribute(i)}getSlotText(e,t){const i=e.shadowRoot?.querySelector(`slot[name="${t}"]`);return (i?.assignedNodes({flatten:true})||[]).map(e=>e.textContent?.trim()).join(" ").trim()||null}};var r$3="top",o$3="bottom",n$3="right",a="left",l$3="auto",c$5=[r$3,o$3,n$3,a],p$7="start",d$3="end",f$7="viewport",h$6="popper",u$8=c$5.reduce(function(e,t){return e.concat([t+"-"+p$7,t+"-"+d$3])},[]),m$7=[].concat(c$5,[l$3]).reduce(function(e,t){return e.concat([t,t+"-"+p$7,t+"-"+d$3])},[]),g$6=["beforeRead","read","afterRead","beforeMain","main","afterMain","beforeWrite","write","afterWrite"];function v$4(e){return e?(e.nodeName||"").toLowerCase():null}function y$6(e){if(null==e)return window;if("[object Window]"!==e.toString()){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function w$6(e){return e instanceof y$6(e).Element||e instanceof Element}function b$3(e){return e instanceof y$6(e).HTMLElement||e instanceof HTMLElement}function x$3(e){return "undefined"!=typeof ShadowRoot&&(e instanceof y$6(e).ShadowRoot||e instanceof ShadowRoot)}var S$3={name:"applyStyles",enabled:true,phase:"write",fn:function(e){var t=e.state;Object.keys(t.elements).forEach(function(e){var i=t.styles[e]||{},s=t.attributes[e]||{},r=t.elements[e];b$3(r)&&v$4(r)&&(Object.assign(r.style,i),Object.keys(s).forEach(function(e){var t=s[e];false===t?r.removeAttribute(e):r.setAttribute(e,true===t?"":t);}));});},effect:function(e){var t=e.state,i={popper:{position:t.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(t.elements.popper.style,i.popper),t.styles=i,t.elements.arrow&&Object.assign(t.elements.arrow.style,i.arrow),function(){Object.keys(t.elements).forEach(function(e){var s=t.elements[e],r=t.attributes[e]||{},o=Object.keys(t.styles.hasOwnProperty(e)?t.styles[e]:i[e]).reduce(function(e,t){return e[t]="",e},{});b$3(s)&&v$4(s)&&(Object.assign(s.style,o),Object.keys(r).forEach(function(e){s.removeAttribute(e);}));});}},requires:["computeStyles"]};function _$4(e){return e.split("-")[0]}var A$3=Math.max,O=Math.min,k$6=Math.round;function T$3(){var e=navigator.userAgentData;return null!=e&&e.brands&&Array.isArray(e.brands)?e.brands.map(function(e){return e.brand+"/"+e.version}).join(" "):navigator.userAgent}function z$6(){return !/^((?!chrome|android).)*safari/i.test(T$3())}function E(e,t,i){ void 0===t&&(t=false),void 0===i&&(i=false);var s=e.getBoundingClientRect(),r=1,o=1;t&&b$3(e)&&(r=e.offsetWidth>0&&k$6(s.width)/e.offsetWidth||1,o=e.offsetHeight>0&&k$6(s.height)/e.offsetHeight||1);var n=(w$6(e)?y$6(e):window).visualViewport,a=!z$6()&&i,l=(s.left+(a&&n?n.offsetLeft:0))/r,c=(s.top+(a&&n?n.offsetTop:0))/o,p=s.width/r,d=s.height/o;return {width:p,height:d,top:c,right:l+p,bottom:c+d,left:l,x:l,y:c}}function M$7(e){var t=E(e),i=e.offsetWidth,s=e.offsetHeight;return Math.abs(t.width-i)<=1&&(i=t.width),Math.abs(t.height-s)<=1&&(s=t.height),{x:e.offsetLeft,y:e.offsetTop,width:i,height:s}}function B$3(e,t){var i=t.getRootNode&&t.getRootNode();if(e.contains(t))return true;if(i&&x$3(i)){var s=t;do{if(s&&e.isSameNode(s))return true;s=s.parentNode||s.host;}while(s)}return false}function L(e){return y$6(e).getComputedStyle(e)}function R$3(e){return ["table","td","th"].indexOf(v$4(e))>=0}function H$3(e){return ((w$6(e)?e.ownerDocument:e.document)||window.document).documentElement}function C$3(e){return "html"===v$4(e)?e:e.assignedSlot||e.parentNode||(x$3(e)?e.host:null)||H$3(e)}function D(e){return b$3(e)&&"fixed"!==L(e).position?e.offsetParent:null}function N$3(e){for(var t=y$6(e),i=D(e);i&&R$3(i)&&"static"===L(i).position;)i=D(i);return i&&("html"===v$4(i)||"body"===v$4(i)&&"static"===L(i).position)?t:i||function(e){var t=/firefox/i.test(T$3());if(/Trident/i.test(T$3())&&b$3(e)&&"fixed"===L(e).position)return null;var i=C$3(e);for(x$3(i)&&(i=i.host);b$3(i)&&["html","body"].indexOf(v$4(i))<0;){var s=L(i);if("none"!==s.transform||"none"!==s.perspective||"paint"===s.contain||-1!==["transform","perspective"].indexOf(s.willChange)||t&&"filter"===s.willChange||t&&s.filter&&"none"!==s.filter)return i;i=i.parentNode;}return null}(e)||t}function P(e){return ["top","bottom"].indexOf(e)>=0?"x":"y"}function j(e,t,i){return A$3(e,O(t,i))}function I(e){return Object.assign({},{top:0,right:0,bottom:0,left:0},e)}function q$3(e,t){return t.reduce(function(t,i){return t[i]=e,t},{})}var F={name:"arrow",enabled:true,phase:"main",fn:function(e){var t,i=e.state,s=e.name,l=e.options,p=i.elements.arrow,d=i.modifiersData.popperOffsets,f=_$4(i.placement),h=P(f),u=[a,n$3].indexOf(f)>=0?"height":"width";if(p&&d){var m=function(e,t){return I("number"!=typeof(e="function"==typeof e?e(Object.assign({},t.rects,{placement:t.placement})):e)?e:q$3(e,c$5))}(l.padding,i),g=M$7(p),v="y"===h?r$3:a,y="y"===h?o$3:n$3,w=i.rects.reference[u]+i.rects.reference[h]-d[h]-i.rects.popper[u],b=d[h]-i.rects.reference[h],x=N$3(p),S=x?"y"===h?x.clientHeight||0:x.clientWidth||0:0,A=w/2-b/2,O=m[v],k=S-g[u]-m[y],T=S/2-g[u]/2+A,z=j(O,T,k),E=h;i.modifiersData[s]=((t={})[E]=z,t.centerOffset=z-T,t);}},effect:function(e){var t=e.state,i=e.options.element,s=void 0===i?"[data-popper-arrow]":i;null!=s&&("string"!=typeof s||(s=t.elements.popper.querySelector(s)))&&B$3(t.elements.popper,s)&&(t.elements.arrow=s);},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function U$3(e){return e.split("-")[1]}var V={top:"auto",right:"auto",bottom:"auto",left:"auto"};function W(e){var t,i=e.popper,s=e.popperRect,l=e.placement,c=e.variation,p=e.offsets,f=e.position,h=e.gpuAcceleration,u=e.adaptive,m=e.roundOffsets,g=e.isFixed,v=p.x,w=void 0===v?0:v,b=p.y,x=void 0===b?0:b,S="function"==typeof m?m({x:w,y:x}):{x:w,y:x};w=S.x,x=S.y;var _=p.hasOwnProperty("x"),A=p.hasOwnProperty("y"),O=a,T=r$3,z=window;if(u){var E=N$3(i),M="clientHeight",B="clientWidth";if(E===y$6(i)&&"static"!==L(E=H$3(i)).position&&"absolute"===f&&(M="scrollHeight",B="scrollWidth"),l===r$3||(l===a||l===n$3)&&c===d$3)T=o$3,x-=(g&&E===z&&z.visualViewport?z.visualViewport.height:E[M])-s.height,x*=h?1:-1;if(l===a||(l===r$3||l===o$3)&&c===d$3)O=n$3,w-=(g&&E===z&&z.visualViewport?z.visualViewport.width:E[B])-s.width,w*=h?1:-1;}var R,C=Object.assign({position:f},u&&V),D=true===m?function(e,t){var i=e.x,s=e.y,r=t.devicePixelRatio||1;return {x:k$6(i*r)/r||0,y:k$6(s*r)/r||0}}({x:w,y:x},y$6(i)):{x:w,y:x};return w=D.x,x=D.y,h?Object.assign({},C,((R={})[T]=A?"0":"",R[O]=_?"0":"",R.transform=(z.devicePixelRatio||1)<=1?"translate("+w+"px, "+x+"px)":"translate3d("+w+"px, "+x+"px, 0)",R)):Object.assign({},C,((t={})[T]=A?x+"px":"",t[O]=_?w+"px":"",t.transform="",t))}var X={passive:true};var $={left:"right",right:"left",bottom:"top",top:"bottom"};function G(e){return e.replace(/left|right|bottom|top/g,function(e){return $[e]})}var K={start:"end",end:"start"};function Y(e){return e.replace(/start|end/g,function(e){return K[e]})}function J(e){var t=y$6(e);return {scrollLeft:t.pageXOffset,scrollTop:t.pageYOffset}}function Q(e){return E(H$3(e)).left+J(e).scrollLeft}function Z(e){var t=L(e),i=t.overflow,s=t.overflowX,r=t.overflowY;return /auto|scroll|overlay|hidden/.test(i+r+s)}function ee(e){return ["html","body","#document"].indexOf(v$4(e))>=0?e.ownerDocument.body:b$3(e)&&Z(e)?e:ee(C$3(e))}function te(e,t){var i;void 0===t&&(t=[]);var s=ee(e),r=s===(null==(i=e.ownerDocument)?void 0:i.body),o=y$6(s),n=r?[o].concat(o.visualViewport||[],Z(s)?s:[]):s,a=t.concat(n);return r?a:a.concat(te(C$3(n)))}function ie(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function se(e,t,i){return t===f$7?ie(function(e,t){var i=y$6(e),s=H$3(e),r=i.visualViewport,o=s.clientWidth,n=s.clientHeight,a=0,l=0;if(r){o=r.width,n=r.height;var c=z$6();(c||!c&&"fixed"===t)&&(a=r.offsetLeft,l=r.offsetTop);}return {width:o,height:n,x:a+Q(e),y:l}}(e,i)):w$6(t)?function(e,t){var i=E(e,false,"fixed"===t);return i.top=i.top+e.clientTop,i.left=i.left+e.clientLeft,i.bottom=i.top+e.clientHeight,i.right=i.left+e.clientWidth,i.width=e.clientWidth,i.height=e.clientHeight,i.x=i.left,i.y=i.top,i}(t,i):ie(function(e){var t,i=H$3(e),s=J(e),r=null==(t=e.ownerDocument)?void 0:t.body,o=A$3(i.scrollWidth,i.clientWidth,r?r.scrollWidth:0,r?r.clientWidth:0),n=A$3(i.scrollHeight,i.clientHeight,r?r.scrollHeight:0,r?r.clientHeight:0),a=-s.scrollLeft+Q(e),l=-s.scrollTop;return "rtl"===L(r||i).direction&&(a+=A$3(i.clientWidth,r?r.clientWidth:0)-o),{width:o,height:n,x:a,y:l}}(H$3(e)))}function re(e,t,i,s){var r="clippingParents"===t?function(e){var t=te(C$3(e)),i=["absolute","fixed"].indexOf(L(e).position)>=0&&b$3(e)?N$3(e):e;return w$6(i)?t.filter(function(e){return w$6(e)&&B$3(e,i)&&"body"!==v$4(e)}):[]}(e):[].concat(t),o=[].concat(r,[i]),n=o[0],a=o.reduce(function(t,i){var r=se(e,i,s);return t.top=A$3(r.top,t.top),t.right=O(r.right,t.right),t.bottom=O(r.bottom,t.bottom),t.left=A$3(r.left,t.left),t},se(e,n,s));return a.width=a.right-a.left,a.height=a.bottom-a.top,a.x=a.left,a.y=a.top,a}function oe(e){var t,i=e.reference,s=e.element,l=e.placement,c=l?_$4(l):null,f=l?U$3(l):null,h=i.x+i.width/2-s.width/2,u=i.y+i.height/2-s.height/2;switch(c){case r$3:t={x:h,y:i.y-s.height};break;case o$3:t={x:h,y:i.y+i.height};break;case n$3:t={x:i.x+i.width,y:u};break;case a:t={x:i.x-s.width,y:u};break;default:t={x:i.x,y:i.y};}var m=c?P(c):null;if(null!=m){var g="y"===m?"height":"width";switch(f){case p$7:t[m]=t[m]-(i[g]/2-s[g]/2);break;case d$3:t[m]=t[m]+(i[g]/2-s[g]/2);}}return t}function ne(e,t){ void 0===t&&(t={});var i=t,s=i.placement,a=void 0===s?e.placement:s,l=i.strategy,p=void 0===l?e.strategy:l,d=i.boundary,u=void 0===d?"clippingParents":d,m=i.rootBoundary,g=void 0===m?f$7:m,v=i.elementContext,y=void 0===v?h$6:v,b=i.altBoundary,x=void 0!==b&&b,S=i.padding,_=void 0===S?0:S,A=I("number"!=typeof _?_:q$3(_,c$5)),O=y===h$6?"reference":h$6,k=e.rects.popper,T=e.elements[x?O:y],z=re(w$6(T)?T:T.contextElement||H$3(e.elements.popper),u,g,p),M=E(e.elements.reference),B=oe({reference:M,element:k,placement:a}),L=ie(Object.assign({},k,B)),R=y===h$6?L:M,C={top:z.top-R.top+A.top,bottom:R.bottom-z.bottom+A.bottom,left:z.left-R.left+A.left,right:R.right-z.right+A.right},D=e.modifiersData.offset;if(y===h$6&&D){var N=D[a];Object.keys(C).forEach(function(e){var t=[n$3,o$3].indexOf(e)>=0?1:-1,i=[r$3,o$3].indexOf(e)>=0?"y":"x";C[e]+=N[i]*t;});}return C}function ae(e,t){ void 0===t&&(t={});var i=t,s=i.placement,r=i.boundary,o=i.rootBoundary,n=i.padding,a=i.flipVariations,l=i.allowedAutoPlacements,p=void 0===l?m$7:l,d=U$3(s),f=d?a?u$8:u$8.filter(function(e){return U$3(e)===d}):c$5,h=f.filter(function(e){return p.indexOf(e)>=0});0===h.length&&(h=f);var g=h.reduce(function(t,i){return t[i]=ne(e,{placement:i,boundary:r,rootBoundary:o,padding:n})[_$4(i)],t},{});return Object.keys(g).sort(function(e,t){return g[e]-g[t]})}var le={name:"flip",enabled:true,phase:"main",fn:function(e){var t=e.state,i=e.options,s=e.name;if(!t.modifiersData[s]._skip){for(var c=i.mainAxis,d=void 0===c||c,f=i.altAxis,h=void 0===f||f,u=i.fallbackPlacements,m=i.padding,g=i.boundary,v=i.rootBoundary,y=i.altBoundary,w=i.flipVariations,b=void 0===w||w,x=i.allowedAutoPlacements,S=t.options.placement,A=_$4(S),O=u||(A===S||!b?[G(S)]:function(e){if(_$4(e)===l$3)return [];var t=G(e);return [Y(e),t,Y(t)]}(S)),k=[S].concat(O).reduce(function(e,i){return e.concat(_$4(i)===l$3?ae(t,{placement:i,boundary:g,rootBoundary:v,padding:m,flipVariations:b,allowedAutoPlacements:x}):i)},[]),T=t.rects.reference,z=t.rects.popper,E=new Map,M=true,B=k[0],L=0;L<k.length;L++){var R=k[L],H=_$4(R),C=U$3(R)===p$7,D=[r$3,o$3].indexOf(H)>=0,N=D?"width":"height",P=ne(t,{placement:R,boundary:g,rootBoundary:v,altBoundary:y,padding:m}),j=D?C?n$3:a:C?o$3:r$3;T[N]>z[N]&&(j=G(j));var I=G(j),q=[];if(d&&q.push(P[H]<=0),h&&q.push(P[j]<=0,P[I]<=0),q.every(function(e){return e})){B=R,M=false;break}E.set(R,q);}if(M)for(var F=function(e){var t=k.find(function(t){var i=E.get(t);if(i)return i.slice(0,e).every(function(e){return e})});if(t)return B=t,"break"},V=b?3:1;V>0;V--){if("break"===F(V))break}t.placement!==B&&(t.modifiersData[s]._skip=true,t.placement=B,t.reset=true);}},requiresIfExists:["offset"],data:{_skip:false}};function ce(e,t,i){return void 0===i&&(i={x:0,y:0}),{top:e.top-t.height-i.y,right:e.right-t.width+i.x,bottom:e.bottom-t.height+i.y,left:e.left-t.width-i.x}}function pe(e){return [r$3,n$3,o$3,a].some(function(t){return e[t]>=0})}var de={name:"offset",enabled:true,phase:"main",requires:["popperOffsets"],fn:function(e){var t=e.state,i=e.options,s=e.name,o=i.offset,l=void 0===o?[0,0]:o,c=m$7.reduce(function(e,i){return e[i]=function(e,t,i){var s=_$4(e),o=[a,r$3].indexOf(s)>=0?-1:1,l="function"==typeof i?i(Object.assign({},t,{placement:e})):i,c=l[0],p=l[1];return c=c||0,p=(p||0)*o,[a,n$3].indexOf(s)>=0?{x:p,y:c}:{x:c,y:p}}(i,t.rects,l),e},{}),p=c[t.placement],d=p.x,f=p.y;null!=t.modifiersData.popperOffsets&&(t.modifiersData.popperOffsets.x+=d,t.modifiersData.popperOffsets.y+=f),t.modifiersData[s]=c;}};var fe={name:"preventOverflow",enabled:true,phase:"main",fn:function(e){var t=e.state,i=e.options,s=e.name,l=i.mainAxis,c=void 0===l||l,d=i.altAxis,f=void 0!==d&&d,h=i.boundary,u=i.rootBoundary,m=i.altBoundary,g=i.padding,v=i.tether,y=void 0===v||v,w=i.tetherOffset,b=void 0===w?0:w,x=ne(t,{boundary:h,rootBoundary:u,padding:g,altBoundary:m}),S=_$4(t.placement),k=U$3(t.placement),T=!k,z=P(S),E="x"===z?"y":"x",B=t.modifiersData.popperOffsets,L=t.rects.reference,R=t.rects.popper,H="function"==typeof b?b(Object.assign({},t.rects,{placement:t.placement})):b,C="number"==typeof H?{mainAxis:H,altAxis:H}:Object.assign({mainAxis:0,altAxis:0},H),D=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,I={x:0,y:0};if(B){if(c){var q,F="y"===z?r$3:a,V="y"===z?o$3:n$3,W="y"===z?"height":"width",X=B[z],$=X+x[F],G=X-x[V],K=y?-R[W]/2:0,Y=k===p$7?L[W]:R[W],J=k===p$7?-R[W]:-L[W],Q=t.elements.arrow,Z=y&&Q?M$7(Q):{width:0,height:0},ee=t.modifiersData["arrow#persistent"]?t.modifiersData["arrow#persistent"].padding:{top:0,right:0,bottom:0,left:0},te=ee[F],ie=ee[V],se=j(0,L[W],Z[W]),re=T?L[W]/2-K-se-te-C.mainAxis:Y-se-te-C.mainAxis,oe=T?-L[W]/2+K+se+ie+C.mainAxis:J+se+ie+C.mainAxis,ae=t.elements.arrow&&N$3(t.elements.arrow),le=ae?"y"===z?ae.clientTop||0:ae.clientLeft||0:0,ce=null!=(q=null==D?void 0:D[z])?q:0,pe=X+oe-ce,de=j(y?O($,X+re-ce-le):$,X,y?A$3(G,pe):G);B[z]=de,I[z]=de-X;}if(f){var fe,he="x"===z?r$3:a,ue="x"===z?o$3:n$3,me=B[E],ge="y"===E?"height":"width",ve=me+x[he],ye=me-x[ue],we=-1!==[r$3,a].indexOf(S),be=null!=(fe=null==D?void 0:D[E])?fe:0,xe=we?ve:me-L[ge]-R[ge]-be+C.altAxis,Se=we?me+L[ge]+R[ge]-be-C.altAxis:ye,_e=y&&we?function(e,t,i){var s=j(e,t,i);return s>i?i:s}(xe,me,Se):j(y?xe:ve,me,y?Se:ye);B[E]=_e,I[E]=_e-me;}t.modifiersData[s]=I;}},requiresIfExists:["offset"]};function he(e,t,i){ void 0===i&&(i=false);var s,r,o=b$3(t),n=b$3(t)&&function(e){var t=e.getBoundingClientRect(),i=k$6(t.width)/e.offsetWidth||1,s=k$6(t.height)/e.offsetHeight||1;return 1!==i||1!==s}(t),a=H$3(t),l=E(e,n,i),c={scrollLeft:0,scrollTop:0},p={x:0,y:0};return (o||!o&&!i)&&(("body"!==v$4(t)||Z(a))&&(c=(s=t)!==y$6(s)&&b$3(s)?{scrollLeft:(r=s).scrollLeft,scrollTop:r.scrollTop}:J(s)),b$3(t)?((p=E(t,true)).x+=t.clientLeft,p.y+=t.clientTop):a&&(p.x=Q(a))),{x:l.left+c.scrollLeft-p.x,y:l.top+c.scrollTop-p.y,width:l.width,height:l.height}}function ue(e){var t=new Map,i=new Set,s=[];function r(e){i.add(e.name),[].concat(e.requires||[],e.requiresIfExists||[]).forEach(function(e){if(!i.has(e)){var s=t.get(e);s&&r(s);}}),s.push(e);}return e.forEach(function(e){t.set(e.name,e);}),e.forEach(function(e){i.has(e.name)||r(e);}),s}var me={placement:"bottom",modifiers:[],strategy:"absolute"};function ge(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];return !t.some(function(e){return !(e&&"function"==typeof e.getBoundingClientRect)})}function ve(e){ void 0===e&&(e={});var t=e,i=t.defaultModifiers,s=void 0===i?[]:i,r=t.defaultOptions,o=void 0===r?me:r;return function(e,t,i){ void 0===i&&(i=o);var r,n,a={placement:"bottom",orderedModifiers:[],options:Object.assign({},me,o),modifiersData:{},elements:{reference:e,popper:t},attributes:{},styles:{}},l=[],c=false,p={state:a,setOptions:function(i){var r="function"==typeof i?i(a.options):i;d(),a.options=Object.assign({},o,a.options,r),a.scrollParents={reference:w$6(e)?te(e):e.contextElement?te(e.contextElement):[],popper:te(t)};var n,c,f=function(e){var t=ue(e);return g$6.reduce(function(e,i){return e.concat(t.filter(function(e){return e.phase===i}))},[])}((n=[].concat(s,a.options.modifiers),c=n.reduce(function(e,t){var i=e[t.name];return e[t.name]=i?Object.assign({},i,t,{options:Object.assign({},i.options,t.options),data:Object.assign({},i.data,t.data)}):t,e},{}),Object.keys(c).map(function(e){return c[e]})));return a.orderedModifiers=f.filter(function(e){return e.enabled}),a.orderedModifiers.forEach(function(e){var t=e.name,i=e.options,s=void 0===i?{}:i,r=e.effect;if("function"==typeof r){var o=r({state:a,name:t,instance:p,options:s}),n=function(){};l.push(o||n);}}),p.update()},forceUpdate:function(){if(!c){var e=a.elements,t=e.reference,i=e.popper;if(ge(t,i)){a.rects={reference:he(t,N$3(i),"fixed"===a.options.strategy),popper:M$7(i)},a.reset=false,a.placement=a.options.placement,a.orderedModifiers.forEach(function(e){return a.modifiersData[e.name]=Object.assign({},e.data)});for(var s=0;s<a.orderedModifiers.length;s++)if(true!==a.reset){var r=a.orderedModifiers[s],o=r.fn,n=r.options,l=void 0===n?{}:n,d=r.name;"function"==typeof o&&(a=o({state:a,options:l,name:d,instance:p})||a);}else a.reset=false,s=-1;}}},update:(r=function(){return new Promise(function(e){p.forceUpdate(),e(a);})},function(){return n||(n=new Promise(function(e){Promise.resolve().then(function(){n=void 0,e(r());});})),n}),destroy:function(){d(),c=true;}};if(!ge(e,t))return p;function d(){l.forEach(function(e){return e()}),l=[];}return p.setOptions(i).then(function(e){!c&&i.onFirstUpdate&&i.onFirstUpdate(e);}),p}}var ye=ve({defaultModifiers:[{name:"eventListeners",enabled:true,phase:"write",fn:function(){},effect:function(e){var t=e.state,i=e.instance,s=e.options,r=s.scroll,o=void 0===r||r,n=s.resize,a=void 0===n||n,l=y$6(t.elements.popper),c=[].concat(t.scrollParents.reference,t.scrollParents.popper);return o&&c.forEach(function(e){e.addEventListener("scroll",i.update,X);}),a&&l.addEventListener("resize",i.update,X),function(){o&&c.forEach(function(e){e.removeEventListener("scroll",i.update,X);}),a&&l.removeEventListener("resize",i.update,X);}},data:{}},{name:"popperOffsets",enabled:true,phase:"read",fn:function(e){var t=e.state,i=e.name;t.modifiersData[i]=oe({reference:t.rects.reference,element:t.rects.popper,placement:t.placement});},data:{}},{name:"computeStyles",enabled:true,phase:"beforeWrite",fn:function(e){var t=e.state,i=e.options,s=i.gpuAcceleration,r=void 0===s||s,o=i.adaptive,n=void 0===o||o,a=i.roundOffsets,l=void 0===a||a,c={placement:_$4(t.placement),variation:U$3(t.placement),popper:t.elements.popper,popperRect:t.rects.popper,gpuAcceleration:r,isFixed:"fixed"===t.options.strategy};null!=t.modifiersData.popperOffsets&&(t.styles.popper=Object.assign({},t.styles.popper,W(Object.assign({},c,{offsets:t.modifiersData.popperOffsets,position:t.options.strategy,adaptive:n,roundOffsets:l})))),null!=t.modifiersData.arrow&&(t.styles.arrow=Object.assign({},t.styles.arrow,W(Object.assign({},c,{offsets:t.modifiersData.arrow,position:"absolute",adaptive:false,roundOffsets:l})))),t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-placement":t.placement});},data:{}},S$3,de,le,fe,F,{name:"hide",enabled:true,phase:"main",requiresIfExists:["preventOverflow"],fn:function(e){var t=e.state,i=e.name,s=t.rects.reference,r=t.rects.popper,o=t.modifiersData.preventOverflow,n=ne(t,{elementContext:"reference"}),a=ne(t,{altBoundary:true}),l=ce(n,s),c=ce(a,r,o),p=pe(l),d=pe(c);t.modifiersData[i]={referenceClippingOffsets:l,popperEscapeOffsets:c,isReferenceHidden:p,hasPopperEscaped:d},t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-reference-hidden":p,"data-popper-escaped":d});}}]});class we{constructor(e,t,i,s){this.anchor=e,this.popover=t,this.boundaryElement=this.setBoundary(s),this.options={placement:i,visibleClass:"data-show"},this.popover.classList.remove(this.options.visibleClass);}setBoundary(e){return "string"==typeof e?document.querySelector(e)||document.body:e||document.body}show(){this.popper&&this.popper.destroy(),this.popper=ye(this.anchor,this.popover,{tooltip:this.anchor,placement:this.options.placement,modifiers:[{name:"offset",options:{offset:[0,18]}},{name:"preventOverflow",options:{mainAxis:true,boundary:this.boundaryElement,rootBoundary:"document",padding:16}}]});}triggerUpdate(){this.popper.update();}hide(){this.popover.classList.remove(this.options.visibleClass);}}var be=i$3`::slotted(*):not([onDark]),::slotted(*):not([appearance=inverse]){color:var(--ds-auro-popover-text-color)}.popover{background-color:var(--ds-auro-popover-container-color);box-shadow:var(--ds-auro-popover-boxshadow-color)}.arrow:before{background-color:var(--ds-auro-popover-container-color);box-shadow:2px 2px 1px 0 var(--ds-auro-popover-boxshadow-color)}
7938
8057
  `,xe=i$3`.body-default{font-size:var(--wcss-body-default-font-size, 1rem);line-height:var(--wcss-body-default-line-height, 1.5rem)}.body-default,.body-lg{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-weight, 450);letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-lg{font-size:var(--wcss-body-lg-font-size, 1.125rem);line-height:var(--wcss-body-lg-line-height, 1.625rem)}.body-sm{font-size:var(--wcss-body-sm-font-size, .875rem);line-height:var(--wcss-body-sm-line-height, 1.25rem)}.body-sm,.body-xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-weight, 450);letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-xs{font-size:var(--wcss-body-xs-font-size, .75rem);line-height:var(--wcss-body-xs-line-height, 1rem)}.body-2xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-size:var(--wcss-body-2xs-font-size, .625rem);font-weight:var(--wcss-body-weight, 450);letter-spacing:var(--wcss-body-letter-spacing, 0);line-height:var(--wcss-body-2xs-line-height, .875rem)}.display-2xl{font-family:var(--wcss-display-2xl-family, "AS Circular"),var(--wcss-display-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-2xl-font-size, clamp(3.5rem, 6vw, 5.375rem));font-weight:var(--wcss-display-2xl-weight, 300);letter-spacing:var(--wcss-display-2xl-letter-spacing, 0);line-height:var(--wcss-display-2xl-line-height, 1.3)}.display-xl{font-family:var(--wcss-display-xl-family, "AS Circular"),var(--wcss-display-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-xl-font-size, clamp(3rem, 5.3333333333vw, 4.5rem));font-weight:var(--wcss-display-xl-weight, 300);letter-spacing:var(--wcss-display-xl-letter-spacing, 0);line-height:var(--wcss-display-xl-line-height, 1.3)}.display-lg{font-family:var(--wcss-display-lg-family, "AS Circular"),var(--wcss-display-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-lg-font-size, clamp(2.75rem, 4.6666666667vw, 4rem));font-weight:var(--wcss-display-lg-weight, 300);letter-spacing:var(--wcss-display-lg-letter-spacing, 0);line-height:var(--wcss-display-lg-line-height, 1.3)}.display-md{font-family:var(--wcss-display-md-family, "AS Circular"),var(--wcss-display-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-md-font-size, clamp(2.5rem, 4vw, 3.5rem));font-weight:var(--wcss-display-md-weight, 300);letter-spacing:var(--wcss-display-md-letter-spacing, 0);line-height:var(--wcss-display-md-line-height, 1.3)}.display-sm{font-family:var(--wcss-display-sm-family, "AS Circular"),var(--wcss-display-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-sm-font-size, clamp(2rem, 3.6666666667vw, 3rem));font-weight:var(--wcss-display-sm-weight, 300);letter-spacing:var(--wcss-display-sm-letter-spacing, 0);line-height:var(--wcss-display-sm-line-height, 1.3)}.display-xs{font-family:var(--wcss-display-xs-family, "AS Circular"),var(--wcss-display-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-xs-font-size, clamp(1.75rem, 3vw, 2.375rem));font-weight:var(--wcss-display-xs-weight, 300);letter-spacing:var(--wcss-display-xs-letter-spacing, 0);line-height:var(--wcss-display-xs-line-height, 1.3)}.heading-xl{font-family:var(--wcss-heading-xl-family, "AS Circular"),var(--wcss-heading-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-xl-font-size, clamp(2rem, 3vw, 2.5rem));font-weight:var(--wcss-heading-xl-weight, 300);letter-spacing:var(--wcss-heading-xl-letter-spacing, 0);line-height:var(--wcss-heading-xl-line-height, 1.3)}.heading-lg{font-family:var(--wcss-heading-lg-family, "AS Circular"),var(--wcss-heading-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-lg-font-size, clamp(1.75rem, 2.6666666667vw, 2.25rem));font-weight:var(--wcss-heading-lg-weight, 300);letter-spacing:var(--wcss-heading-lg-letter-spacing, 0);line-height:var(--wcss-heading-lg-line-height, 1.3)}.heading-md{font-family:var(--wcss-heading-md-family, "AS Circular"),var(--wcss-heading-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-md-font-size, clamp(1.625rem, 2.3333333333vw, 1.75rem));font-weight:var(--wcss-heading-md-weight, 300);letter-spacing:var(--wcss-heading-md-letter-spacing, 0);line-height:var(--wcss-heading-md-line-height, 1.3)}.heading-sm{font-family:var(--wcss-heading-sm-family, "AS Circular"),var(--wcss-heading-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-sm-font-size, clamp(1.375rem, 2vw, 1.5rem));font-weight:var(--wcss-heading-sm-weight, 300);letter-spacing:var(--wcss-heading-sm-letter-spacing, 0);line-height:var(--wcss-heading-sm-line-height, 1.3)}.heading-xs{font-family:var(--wcss-heading-xs-family, "AS Circular"),var(--wcss-heading-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-xs-font-size, clamp(1.25rem, 1.6666666667vw, 1.25rem));font-weight:var(--wcss-heading-xs-weight, 450);letter-spacing:var(--wcss-heading-xs-letter-spacing, 0);line-height:var(--wcss-heading-xs-line-height, 1.3)}.heading-2xs{font-family:var(--wcss-heading-2xs-family, "AS Circular"),var(--wcss-heading-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-2xs-font-size, clamp(1.125rem, 1.5vw, 1.125rem));font-weight:var(--wcss-heading-2xs-weight, 450);letter-spacing:var(--wcss-heading-2xs-letter-spacing, 0);line-height:var(--wcss-heading-2xs-line-height, 1.3)}.accent-2xl{font-family:var(--wcss-accent-2xl-family, "Good OT"),var(--wcss-accent-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-2xl-font-size, clamp(2rem, 3.1666666667vw, 2.375rem));font-weight:var(--wcss-accent-2xl-weight, 450);letter-spacing:var(--wcss-accent-2xl-letter-spacing, .05em);line-height:var(--wcss-accent-2xl-line-height, 1)}.accent-2xl,.accent-xl{text-transform:uppercase}.accent-xl{font-family:var(--wcss-accent-xl-family, "Good OT"),var(--wcss-accent-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-xl-font-size, clamp(1.625rem, 2.3333333333vw, 2rem));font-weight:var(--wcss-accent-xl-weight, 450);letter-spacing:var(--wcss-accent-xl-letter-spacing, .05em);line-height:var(--wcss-accent-xl-line-height, 1.3)}.accent-lg{font-family:var(--wcss-accent-lg-family, "Good OT"),var(--wcss-accent-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-lg-font-size, clamp(1.5rem, 2.1666666667vw, 1.75rem));font-weight:var(--wcss-accent-lg-weight, 450);letter-spacing:var(--wcss-accent-lg-letter-spacing, .05em);line-height:var(--wcss-accent-lg-line-height, 1.3)}.accent-lg,.accent-md{text-transform:uppercase}.accent-md{font-family:var(--wcss-accent-md-family, "Good OT"),var(--wcss-accent-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-md-font-size, clamp(1.375rem, 1.8333333333vw, 1.5rem));font-weight:var(--wcss-accent-md-weight, 500);letter-spacing:var(--wcss-accent-md-letter-spacing, .05em);line-height:var(--wcss-accent-md-line-height, 1.3)}.accent-sm{font-family:var(--wcss-accent-sm-family, "Good OT"),var(--wcss-accent-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-sm-font-size, clamp(1.125rem, 1.5vw, 1.25rem));font-weight:var(--wcss-accent-sm-weight, 500);letter-spacing:var(--wcss-accent-sm-letter-spacing, .05em);line-height:var(--wcss-accent-sm-line-height, 1.3)}.accent-sm,.accent-xs{text-transform:uppercase}.accent-xs{font-family:var(--wcss-accent-xs-family, "Good OT"),var(--wcss-accent-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-xs-font-size, clamp(1rem, 1.3333333333vw, 1rem));font-weight:var(--wcss-accent-xs-weight, 500);letter-spacing:var(--wcss-accent-xs-letter-spacing, .1em);line-height:var(--wcss-accent-xs-line-height, 1.3)}.accent-2xs{font-family:var(--wcss-accent-2xs-family, "Good OT"),var(--wcss-accent-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-2xs-font-size, clamp(.875rem, 1.1666666667vw, .875rem));font-weight:var(--wcss-accent-2xs-weight, 450);letter-spacing:var(--wcss-accent-2xs-letter-spacing, .1em);line-height:var(--wcss-accent-2xs-line-height, 1.3);text-transform:uppercase}:focus:not(:focus-visible){outline:3px solid transparent}.util_displayInline{display:inline}.util_displayInlineBlock{display:inline-block}.util_displayBlock{display:block}.util_displayFlex{display:flex}.util_displayHidden,:host(:not([data-show])) .popover,:host([disabled]) .popover,:host([addSpace]) :host(:not([data-show])) .popover{display:none}.util_displayHiddenVisually{position:absolute;overflow:hidden;clip:rect(1px,1px,1px,1px);width:1px;height:1px;padding:0;border:0}.util_insetNone{padding:0}.util_insetXxxs{padding:.125rem}.util_insetXxxs--stretch{padding:.25rem .125rem}.util_insetXxxs--squish{padding:0 .125rem}.util_insetXxs{padding:.25rem}.util_insetXxs--stretch{padding:.375rem .25rem}.util_insetXxs--squish{padding:.125rem .25rem}.util_insetXs{padding:.5rem}.util_insetXs--stretch{padding:.75rem .5rem}.util_insetXs--squish{padding:.25rem .5rem}.util_insetSm{padding:.75rem}.util_insetSm--stretch{padding:1.125rem .75rem}.util_insetSm--squish{padding:.375rem .75rem}.util_insetMd{padding:1rem}.util_insetMd--stretch{padding:1.5rem 1rem}.util_insetMd--squish{padding:.5rem 1rem}.util_insetLg{padding:1.5rem}.util_insetLg--stretch{padding:2.25rem 1.5rem}.util_insetLg--squish{padding:.75rem 1.5rem}.util_insetXl{padding:2rem}.util_insetXl--stretch{padding:3rem 2rem}.util_insetXl--squish{padding:1rem 2rem}.util_insetXxl{padding:3rem}.util_insetXxl--stretch{padding:4.5rem 3rem}.util_insetXxl--squish{padding:1.5rem 3rem}.util_insetXxxl{padding:4rem}.util_insetXxxl--stretch{padding:6rem 4rem}.util_insetXxxl--squish{padding:2rem 4rem}::slotted(*){white-space:normal}::slotted(*:hover){cursor:pointer}[data-trigger-placement]::slotted(*:hover){position:relative}[data-trigger-placement]::slotted(*:hover):before{position:absolute;left:0;display:block;width:100%;height:calc(var(--ds-size-200, 1rem) + var(--ds-size-50, .25rem));content:""}[data-trigger-placement^=top]::slotted(*:hover):before{top:calc(-1 * (var(--ds-size-200, 1rem) + var(--ds-size-50, .25rem)))}[data-trigger-placement^=bottom]::slotted(*:hover):before{bottom:calc(-1 * (var(--ds-size-200, 1rem) + var(--ds-size-50, .25rem)))}:host([data-show]) .popover{z-index:var(--ds-depth-tooltip, 400)}:host([removeSpace]) .popover{margin:calc(-1 * (var(--ds-size-50, .25rem) + 1px)) 0!important}:host([addSpace]) .popover{margin:var(--ds-size-200, 1rem) 0!important}:host([addSpace]) [data-trigger-placement]::slotted(*:hover):before{height:var(--ds-size-500, 2.5rem)}:host([addSpace]) [data-trigger-placement^=top]::slotted(*:hover):before{top:calc(-1 * var(--ds-size-500, 2.5rem))}:host([addSpace]) [data-trigger-placement^=bottom]::slotted(*:hover):before{bottom:calc(-1 * var(--ds-size-500, 2.5rem))}.popover{display:inline-block;max-width:calc(100% - var(--ds-size-400, 2rem));border-radius:var(--ds-border-radius, .375rem)}@media screen and (min-width:576px){.popover{max-width:50%}}@media screen and (min-width:768px){.popover{max-width:40%}}@media screen and (min-width:1024px){.popover{max-width:27rem}}[data-popper-placement^=top]>.arrow{bottom:calc(-1 * (var(--ds-size-100, .5rem) + var(--ds-size-25, .125rem)))}[data-popper-placement^=top]>.arrow:before{top:calc(-1 * var(--ds-size-200, 1rem));left:calc(-1 * var(--ds-size-75, .375rem));transform:rotate(45deg)}[data-popper-placement^=bottom]>.arrow{top:calc(-1 * (var(--ds-size-100, .5rem) + var(--ds-size-25, .125rem)))}[data-popper-placement^=bottom]>.arrow:before{top:var(--ds-size-50, .25rem);right:calc(-1 * var(--ds-size-200, 1rem));transform:rotate(-135deg)}.arrow{position:relative;margin-top:-var(--ds-size-100,.5rem)}.arrow:before{position:absolute;width:var(--ds-size-150, .75rem);height:var(--ds-size-150, .75rem);content:""}
@@ -7955,7 +8074,7 @@ let s$2 = class s{registerComponent(e,t){customElements.get(e)||customElements.d
7955
8074
 
7956
8075
  var popoverVersion = '6.0.1';
7957
8076
 
7958
- /* eslint-disable curly, max-lines, no-underscore-dangle, no-magic-numbers, no-underscore-dangle, max-params, no-void, init-declarations, no-extra-parens, arrow-parens, max-lines, line-comment-position, no-inline-comments, lit/binding-positions, lit/no-invalid-html */
8077
+ /* eslint-disable curly, max-lines, no-underscore-dangle, no-magic-numbers, no-underscore-dangle, max-params, no-extra-parens, arrow-parens, max-lines, line-comment-position, no-inline-comments, lit/binding-positions, lit/no-invalid-html */
7959
8078
 
7960
8079
  class AuroCalendarCell extends i$1 {
7961
8080
  constructor() {
@@ -7963,7 +8082,6 @@ class AuroCalendarCell extends i$1 {
7963
8082
 
7964
8083
  this.day = null;
7965
8084
  this.selected = false;
7966
- this.hovered = false;
7967
8085
  this.dateTo = null;
7968
8086
  this.dateFrom = null;
7969
8087
  this.month = null;
@@ -7971,7 +8089,6 @@ class AuroCalendarCell extends i$1 {
7971
8089
  this.max = null;
7972
8090
  this.disabled = false;
7973
8091
  this.disabledDays = [];
7974
- this.hoveredDate = null;
7975
8092
  this.isCurrentDate = false;
7976
8093
  this._locale = null;
7977
8094
  this.dateStr = null;
@@ -7996,7 +8113,6 @@ class AuroCalendarCell extends i$1 {
7996
8113
  // ...super.properties,
7997
8114
  day: { type: Object },
7998
8115
  selected: { type: Boolean },
7999
- hovered: { type: Boolean },
8000
8116
  dateTo: { type: String },
8001
8117
  dateFrom: { type: String },
8002
8118
  month: { type: String },
@@ -8007,15 +8123,10 @@ class AuroCalendarCell extends i$1 {
8007
8123
  reflect: true
8008
8124
  },
8009
8125
  disabledDays: { type: Array },
8010
- hoveredDate: { type: String },
8011
8126
  isCurrentDate: { type: Boolean },
8012
8127
  locale: { type: Object },
8013
8128
  dateStr: { type: String },
8014
8129
  renderForDateSlot: { type: Boolean },
8015
- active: {
8016
- type: Boolean,
8017
- reflect: true
8018
- },
8019
8130
  hasPopoverContent: { type: Boolean }
8020
8131
  };
8021
8132
  }
@@ -8040,17 +8151,17 @@ class AuroCalendarCell extends i$1 {
8040
8151
  }
8041
8152
 
8042
8153
  /**
8043
- * Handles selected and hovered states of the calendar cell when the date changes.
8154
+ * Handles selected state of the calendar cell when the selection changes.
8155
+ * Also clears any imperative range preview classes so classMap is the
8156
+ * sole source of truth after a selection update.
8044
8157
  * @private
8045
8158
  * @param {Number} dateFrom - Depart date.
8046
8159
  * @param {Number} dateTo - Return date.
8047
- * @param {Number} hoveredDate - Hovered date.
8048
8160
  * @param {Object} day - An object containing the dateFrom and day of month values.
8049
8161
  * @returns {void}
8050
8162
  */
8051
- dateChanged(dateFrom, dateTo, hoveredDate, day) {
8163
+ dateChanged(dateFrom, dateTo, day) {
8052
8164
  this.selected = false;
8053
- this.hovered = false;
8054
8165
 
8055
8166
  const parsedDateFrom = parseInt(dateFrom, 10);
8056
8167
  const parsedDateTo = parseInt(dateTo, 10);
@@ -8062,10 +8173,6 @@ class AuroCalendarCell extends i$1 {
8062
8173
  if (day.date === departTimestamp || day.date === returnTimestamp) {
8063
8174
  this.selected = true;
8064
8175
  }
8065
-
8066
- if (((hoveredDate === day.date || day.date < hoveredDate) && day.date > parsedDateFrom && !parsedDateTo && !Number.isNaN(parsedDateFrom) && parsedDateFrom !== undefined && !this.selected) || (day.date > parsedDateFrom && day.date < parsedDateTo)) {
8067
- this.hovered = true;
8068
- }
8069
8176
  }
8070
8177
  }
8071
8178
 
@@ -8091,16 +8198,30 @@ class AuroCalendarCell extends i$1 {
8091
8198
 
8092
8199
  /**
8093
8200
  * Handles user hover events and dispatches a custom event.
8094
- * Always dispatches for range pickers so the preview updates correctly.
8201
+ * Does NOT set any reactive properties the range preview is handled
8202
+ * imperatively by the calendar component to avoid O(N) re-renders.
8095
8203
  * @private
8096
8204
  * @returns {void}
8097
8205
  */
8098
8206
  handleHover() {
8099
- this.hovered = true;
8100
-
8101
- let _a;
8102
8207
  this.dispatchEvent(new CustomEvent('date-is-hovered', {
8103
- detail: { date: (_a = this.day) === null || _a === void 0 ? void 0 : _a.date },
8208
+ detail: { date: this.day?.date },
8209
+ }));
8210
+ }
8211
+
8212
+ /**
8213
+ * Handles focus events on the cell button.
8214
+ * Dispatches a lightweight event for the calendar to handle SR
8215
+ * announcements and range preview updates without triggering
8216
+ * any Lit lifecycle updates.
8217
+ * @private
8218
+ * @returns {void}
8219
+ */
8220
+ handleFocus() {
8221
+ this.dispatchEvent(new CustomEvent('calendar-cell-focused', {
8222
+ bubbles: true,
8223
+ composed: true,
8224
+ detail: { date: this.day?.date },
8104
8225
  }));
8105
8226
  }
8106
8227
 
@@ -8114,7 +8235,7 @@ class AuroCalendarCell extends i$1 {
8114
8235
  * @returns {Boolean} - True if the date is out of range.
8115
8236
  */
8116
8237
  isOutOfRange(day, min, max) {
8117
- if (day && day.date != null) {
8238
+ if (day && day.date !== null && day.date !== undefined) {
8118
8239
  return day.date < min || day.date > max;
8119
8240
  }
8120
8241
  return false;
@@ -8127,13 +8248,13 @@ class AuroCalendarCell extends i$1 {
8127
8248
  * @returns {Boolean} - True if the date is a blackout date.
8128
8249
  */
8129
8250
  isBlackout() {
8130
- if (!this.day || this.day.date == null || this.isOutOfRange(this.day, this.min, this.max)) {
8251
+ if (!this.day || this.day.date === null || this.day.date === undefined || this.isOutOfRange(this.day, this.min, this.max)) {
8131
8252
  return false;
8132
8253
  }
8133
8254
 
8134
8255
  // Check against disabledDays timestamps (legacy path)
8135
8256
  if (Array.isArray(this.disabledDays) && this.disabledDays.length > 0) {
8136
- if (this.disabledDays.findIndex(d => parseInt(d, 10) === this.day.date) !== -1) {
8257
+ if (this.disabledDays.findIndex(dd => parseInt(dd, 10) === this.day.date) !== -1) {
8137
8258
  return true;
8138
8259
  }
8139
8260
  }
@@ -8215,12 +8336,26 @@ class AuroCalendarCell extends i$1 {
8215
8336
 
8216
8337
  let label = dateFormatter.format(date);
8217
8338
 
8339
+ // Append date slot content (e.g. prices) so it is announced with the date.
8340
+ if (this.renderForDateSlot) {
8341
+ const dateSlotEl = this.querySelector(`[slot="date_${this.dateStr}"]`);
8342
+ if (dateSlotEl) {
8343
+ const text = dateSlotEl.innerText?.trim();
8344
+ if (text) {
8345
+ label += `, ${text}`;
8346
+ }
8347
+ }
8348
+ }
8349
+
8218
8350
  // appending popover content here so that it gets read in a logical order with the other date content.
8219
8351
  if (this.hasPopoverContent) {
8220
- label += `, ${this.querySelector(`[slot="popover_${this.dateStr}"]`).innerText.trim()}`;
8352
+ const popoverEl = this.querySelector(`[slot="popover_${this.dateStr}"]`);
8353
+ if (popoverEl) {
8354
+ label += `, ${popoverEl.innerText.trim()}`;
8355
+ }
8221
8356
  }
8222
8357
 
8223
- // Append range position if in range mode
8358
+ // Append range position label for range datepickers
8224
8359
  const rangePosition = this.getRangePosition();
8225
8360
  if (rangePosition) {
8226
8361
  label += `, ${rangePosition}`;
@@ -8331,12 +8466,12 @@ class AuroCalendarCell extends i$1 {
8331
8466
  }
8332
8467
 
8333
8468
  /**
8334
- * Checks if the current date is a highlighted date.
8469
+ * Checks if the current date is a referenced date.
8335
8470
  * @param {Object} dateStr - The date string in MM_DD_YYYY format.
8336
- * @returns Boolean - True if the date is a highlighted date.
8471
+ * @returns Boolean - True if the date is a referenced date.
8337
8472
  */
8338
8473
  isReferenceDate(dateStr) {
8339
- // If the datepicker has highlighted dates specified
8474
+ // If the datepicker has referenced dates specified
8340
8475
  if (this.datepicker && this.datepicker.hasAttribute('referenceDates')) {
8341
8476
 
8342
8477
  // Get the referenceDates attribute from the datepicker
@@ -8450,6 +8585,11 @@ class AuroCalendarCell extends i$1 {
8450
8585
  };
8451
8586
  this.datepicker.addEventListener('auroDatePicker-newSlotContent', this._slotContentHandler);
8452
8587
 
8588
+ // Cache button reference for imperative class manipulation.
8589
+ this.updateComplete.then(() => {
8590
+ this._cachedButton = this.shadowRoot.querySelector('button.day');
8591
+ });
8592
+
8453
8593
  // Trigger an initial update now that `this.datepicker` is assigned so
8454
8594
  // cells reflect blackout/slot state that was configured before first render.
8455
8595
  this.requestUpdate();
@@ -8481,13 +8621,26 @@ class AuroCalendarCell extends i$1 {
8481
8621
  }
8482
8622
 
8483
8623
  updated(properties) {
8484
- if (properties.has('dateFrom') || properties.has('dateTo') || properties.has('hoveredDate') || properties.has('day')) {
8485
- this.dateChanged(this.dateFrom, this.dateTo, this.hoveredDate, this.day);
8624
+ if (properties.has('dateFrom') || properties.has('dateTo') || properties.has('day')) {
8625
+ this.dateChanged(this.dateFrom, this.dateTo, this.day);
8486
8626
  }
8487
8627
 
8488
- if (this.day) {
8628
+ if (properties.has('day') && this.day) {
8489
8629
  this.setDateSlotName();
8490
8630
  this.handleSlotContent();
8631
+
8632
+ // Re-cache button reference when the day changes (cell may have re-rendered).
8633
+ this.updateComplete.then(() => {
8634
+ this._cachedButton = this.shadowRoot.querySelector('button.day');
8635
+ });
8636
+
8637
+ // Update host-level aria attributes for ariaActiveDescendantElement.
8638
+ this.updateHostAria();
8639
+ }
8640
+
8641
+ // Update host aria when selection changes (aria-selected, range labels)
8642
+ if (properties.has('dateFrom') || properties.has('dateTo') || properties.has('selected')) {
8643
+ this.updateHostAria();
8491
8644
  }
8492
8645
 
8493
8646
  // Configure popover when it first becomes rendered
@@ -8497,64 +8650,165 @@ class AuroCalendarCell extends i$1 {
8497
8650
  }
8498
8651
 
8499
8652
  /**
8500
- * Programmatically focuses the cell's interactive button element.
8653
+ * Updates ARIA attributes on the host element so that
8654
+ * ariaActiveDescendantElement can expose cell info to the SR.
8655
+ * @private
8656
+ * @returns {void}
8657
+ */
8658
+ updateHostAria() {
8659
+ if (!this.day || this.day.date === undefined) return;
8660
+
8661
+ const outOfRange = this.isOutOfRange(this.day, this.min, this.max);
8662
+ if (outOfRange) {
8663
+ this.removeAttribute('role');
8664
+ this.removeAttribute('aria-label');
8665
+ return;
8666
+ }
8667
+
8668
+ // The host acts as the gridcell for ariaActiveDescendantElement.
8669
+ this.setAttribute('role', 'gridcell');
8670
+ this.setAttribute('aria-label', this.getAriaLabel());
8671
+ this.setAttribute('aria-selected', this.selected ? 'true' : 'false');
8672
+
8673
+ if (this.isBlackout()) {
8674
+ this.setAttribute('aria-disabled', 'true');
8675
+ } else {
8676
+ this.removeAttribute('aria-disabled');
8677
+ }
8678
+ }
8679
+
8680
+ /**
8681
+ * Programmatically focuses the cell's interactive button element.
8682
+ * Uses focusVisible: true so the :focus-visible ring appears even when
8683
+ * the bib was opened via mouse click (which sets mouse input modality).
8501
8684
  * @returns {void}
8502
8685
  */
8503
8686
  focusButton() {
8504
- const button = this.shadowRoot.querySelector('button:not([aria-hidden])');
8687
+ const button = this._cachedButton || this.shadowRoot.querySelector('button:not([aria-hidden])');
8505
8688
  if (button) {
8506
- button.focus();
8689
+ button.focus({ focusVisible: true });
8690
+ }
8691
+ }
8692
+
8693
+ /**
8694
+ * Imperatively marks this cell as active without triggering a Lit re-render.
8695
+ * Note: buttons stay tabindex="-1" because the grid uses aria-activedescendant.
8696
+ * @returns {void}
8697
+ */
8698
+ setActive() {
8699
+ this.active = true;
8700
+
8701
+ // Show the popover when this cell becomes active via keyboard navigation.
8702
+ if (this.auroPopover) {
8703
+ this.auroPopover.toggleShow();
8704
+ }
8705
+ }
8706
+
8707
+ /**
8708
+ * Imperatively marks this cell as inactive without triggering a Lit re-render.
8709
+ * @returns {void}
8710
+ */
8711
+ clearActive() {
8712
+ this.active = false;
8713
+ const btn = this._cachedButton || this.shadowRoot.querySelector('button.day');
8714
+ if (btn) {
8715
+ btn.classList.remove('activeCell');
8716
+ }
8717
+
8718
+ // Hide the popover when this cell loses active state.
8719
+ if (this.auroPopover) {
8720
+ this.auroPopover.toggleHide();
8507
8721
  }
8508
8722
  }
8509
8723
 
8724
+ /**
8725
+ * Updates range preview classes imperatively (no Lit re-render).
8726
+ * Called by the calendar component when the hovered date changes
8727
+ * during range selection (dateFrom set, dateTo not yet set).
8728
+ * @param {Number} hoveredDate - Unix timestamp of the currently hovered/focused date.
8729
+ * @param {Number} dateFrom - Unix timestamp of the selected departure date.
8730
+ * @returns {void}
8731
+ */
8732
+ updateRangePreviewClasses(hoveredDate, dateFrom) {
8733
+ const btn = this._cachedButton;
8734
+ if (!btn || !this.day) return;
8735
+
8736
+ const dayDate = this.day.date;
8737
+ const departTimestamp = startOfDay(dateFrom * 1000) / 1000;
8738
+ const isInRange = dayDate > departTimestamp && dayDate < hoveredDate;
8739
+ const isLastHovered = dayDate === hoveredDate && hoveredDate > departTimestamp;
8740
+ const isDepartWithPreview = dayDate === departTimestamp && hoveredDate > departTimestamp;
8741
+
8742
+ btn.classList.toggle('inRange', isInRange);
8743
+ btn.classList.toggle('lastHoveredDate', isLastHovered);
8744
+ btn.classList.toggle('rangeDepartDate', isDepartWithPreview);
8745
+ }
8746
+
8747
+ /**
8748
+ * Clears all imperative range preview classes from the cell button.
8749
+ * Called when a selection occurs so classMap becomes the sole source of truth.
8750
+ * @returns {void}
8751
+ */
8752
+ clearRangePreviewClasses() {
8753
+ const btn = this._cachedButton;
8754
+ if (!btn) return;
8755
+
8756
+ btn.classList.remove('inRange', 'lastHoveredDate', 'rangeDepartDate');
8757
+ }
8758
+
8510
8759
  renderCellButton() {
8511
8760
  const outOfRange = this.isOutOfRange(this.day, this.min, this.max);
8512
- const role = outOfRange ? 'presentation' : 'gridcell';
8513
8761
  const blackout = this.isBlackout();
8514
8762
 
8763
+ // Static and selection-driven classes only. Hover-driven classes
8764
+ // (inRange, lastHoveredDate, rangeDepartDate during preview) are
8765
+ // managed imperatively via updateRangePreviewClasses() to avoid
8766
+ // O(N) Lit re-renders on every focus/hover event.
8767
+ const isFirstDay = this.day?.title === 1;
8768
+ const isLastDay = this.day?.date && (() => {
8769
+ const dt = new Date(this.day.date * 1000);
8770
+ return dt.getDate() === new Date(dt.getFullYear(), dt.getMonth() + 1, 0).getDate();
8771
+ })();
8772
+
8515
8773
  const buttonClasses = {
8516
8774
  'day': true,
8517
- 'body-lg': true,
8775
+ 'body-default': true,
8518
8776
  'currentDate': this.isCurrentDate,
8519
8777
  'selected': this.selected,
8520
- 'inRange': this.datepicker?.hasAttribute('range') && this.hovered && this.isInRange(this.day, this.dateFrom, this.dateTo),
8521
- 'lastHoveredDate': this.isLastHoveredDate(this.day, this.dateFrom, this.dateTo, this.hoveredDate) && this.datepicker && this.datepicker.hasAttribute('range'),
8778
+ 'inRange': this.datepicker?.hasAttribute('range') && this.dateTo && this.isInRange(this.day, this.dateFrom, this.dateTo),
8522
8779
  'disabled': outOfRange,
8523
- 'blackout': blackout,
8524
- 'rangeDepartDate': this.datepicker?.hasAttribute('range') && this.isDepartDate(this.day, this.dateFrom) && (this.hoveredDate > this.dateFrom || this.dateTo),
8780
+ blackout,
8781
+ 'rangeDepartDate': this.datepicker?.hasAttribute('range') && this.isDepartDate(this.day, this.dateFrom) && this.dateTo,
8525
8782
  'rangeReturnDate': this.datepicker?.hasAttribute('range') && this.isReturnDate(this.day, this.dateFrom, this.dateTo),
8526
8783
  'reference': this.isReferenceDate(this.dateStr),
8527
- 'sameDateTrip': this.datepicker?.hasAttribute('range') && this.dateFrom === this.dateTo
8784
+ 'sameDateTrip': this.datepicker?.hasAttribute('range') && this.dateFrom === this.dateTo,
8785
+ 'firstDayOfMonth': isFirstDay,
8786
+ 'lastDayOfMonth': isLastDay,
8528
8787
  };
8529
8788
 
8530
8789
  return u$a`
8531
8790
  <button
8532
8791
  slot="trigger"
8533
8792
  id="${this.getCellId()}"
8534
- role="${role}"
8535
8793
  @click="${outOfRange ? undefined : this.handleTap}"
8536
8794
  @mouseover="${outOfRange ? undefined : this.handleHover}"
8537
- @focus="${outOfRange ? undefined : this.handleHover}"
8795
+ @focus="${outOfRange ? undefined : this.handleFocus}"
8538
8796
  class="${e$4(buttonClasses)}"
8539
8797
  ?disabled="${outOfRange}"
8540
- aria-disabled="${blackout ? 'true' : A$4}"
8541
8798
  aria-hidden="${outOfRange ? 'true' : A$4}"
8542
- aria-selected="${this.selected ? 'true' : 'false'}"
8543
- aria-current="${this.isCurrentDate ? 'date' : A$4}"
8544
- tabindex="${this.active ? '0' : '-1'}">
8545
- <span class="srOnly">${this.getAriaLabel()}</span>
8799
+ tabindex="-1">
8546
8800
  <div class="buttonWrapper" aria-hidden="true">
8547
8801
  <div class="currentDayMarker">${this.day?.title || A$4}</div>
8548
- </div>
8549
- <div class="dateSlot body-2xs" part="dateSlot" ?hidden="${!this.renderForDateSlot}">
8550
- <slot name="date_${this.dateStr}"></slot>
8802
+ <div class="dateSlot body-2xs" part="dateSlot" aria-hidden="true" ?hidden="${!this.renderForDateSlot}">
8803
+ <slot name="date_${this.dateStr}"></slot>
8804
+ </div>
8551
8805
  </div>
8552
8806
  </button>
8553
8807
  `;
8554
8808
  }
8555
8809
 
8556
8810
  render() {
8557
- const hasPopoverContent = this.hasPopoverContent;
8811
+ const { hasPopoverContent } = this;
8558
8812
 
8559
8813
  if (hasPopoverContent) {
8560
8814
  return u$a`
@@ -8684,7 +8938,7 @@ class AuroCalendarMonth extends RangeDatepickerCalendar {
8684
8938
  */
8685
8939
  renderDayOfWeek(dayOfWeek, index) {
8686
8940
  const fullName = this.dayFullNames ? this.dayFullNames[index] : dayOfWeek;
8687
- return b$5`<div class="th body-default" role="columnheader"><abbr title="${fullName}">${dayOfWeek}</abbr></div>`;
8941
+ return b$5`<div class="th body-default"><abbr title="${fullName}">${dayOfWeek}</abbr></div>`;
8688
8942
  }
8689
8943
 
8690
8944
  /**
@@ -8693,92 +8947,39 @@ class AuroCalendarMonth extends RangeDatepickerCalendar {
8693
8947
  */
8694
8948
  getFocusableCells() {
8695
8949
  const cells = Array.from(this.shadowRoot.querySelectorAll('auro-formkit-calendar-cell'));
8696
- return cells.filter(cell => {
8697
- if (!cell.day) return false;
8950
+ return cells.filter((cell) => {
8951
+ if (!cell.day) {
8952
+ return false;
8953
+ }
8698
8954
  return !cell.isOutOfRange(cell.day, cell.min, cell.max);
8699
8955
  });
8700
8956
  }
8701
8957
 
8702
8958
  /**
8703
- * Handles arrow key navigation within the month grid.
8704
- * Dispatches a cross-month navigation event when the boundary is reached.
8959
+ * Overrides the base class handler to prevent setting `this.hoveredDate`
8960
+ * as a reactive property. Instead, just dispatches the event upward so
8961
+ * the calendar can handle range preview imperatively.
8705
8962
  * @private
8706
- * @param {KeyboardEvent} event - The keyboard event.
8963
+ * @param {CustomEvent} event - The date-is-hovered event from a cell.
8707
8964
  * @returns {void}
8708
8965
  */
8709
- handleGridKeyDown(event) {
8710
- const { key } = event;
8711
- const arrowKeys = ['ArrowRight', 'ArrowLeft', 'ArrowDown', 'ArrowUp'];
8712
-
8713
- if (!arrowKeys.includes(key)) return;
8714
-
8715
- event.preventDefault();
8716
-
8717
- const focusableCells = this.getFocusableCells();
8718
- if (focusableCells.length === 0) return;
8719
-
8720
- // Find the currently active cell within this month
8721
- const activeCell = focusableCells.find(cell => cell.active);
8722
- if (!activeCell) return;
8723
-
8724
- const activeIndex = focusableCells.indexOf(activeCell);
8725
- let targetCell = null;
8726
-
8727
- if (key === 'ArrowRight') {
8728
- if (activeIndex < focusableCells.length - 1) {
8729
- targetCell = focusableCells[activeIndex + 1];
8730
- } else {
8731
- // At end of month, request cross-month navigation
8732
- this.dispatchEvent(new CustomEvent('calendar-month-boundary', {
8733
- bubbles: true,
8734
- composed: true,
8735
- detail: { direction: 'next', fromDate: activeCell.day.date, key }
8736
- }));
8737
- return;
8738
- }
8739
- } else if (key === 'ArrowLeft') {
8740
- if (activeIndex > 0) {
8741
- targetCell = focusableCells[activeIndex - 1];
8742
- } else {
8743
- // At start of month, request cross-month navigation
8744
- this.dispatchEvent(new CustomEvent('calendar-month-boundary', {
8745
- bubbles: true,
8746
- composed: true,
8747
- detail: { direction: 'prev', fromDate: activeCell.day.date, key }
8748
- }));
8749
- return;
8750
- }
8751
- } else if (key === 'ArrowDown' || key === 'ArrowUp') {
8752
- // Find the target day (same day-of-week, +/- 7 days)
8753
- // Use Date arithmetic instead of fixed seconds to handle DST correctly
8754
- const increment = key === 'ArrowDown' ? 7 : -7;
8755
- const currentDate = new Date(activeCell.day.date * 1000);
8756
- currentDate.setDate(currentDate.getDate() + increment);
8757
- currentDate.setHours(0, 0, 0, 0);
8758
- const targetDate = Math.floor(currentDate.getTime() / 1000);
8759
-
8760
- // Look for the target date in this month's focusable cells
8761
- targetCell = focusableCells.find(cell => cell.day.date === targetDate);
8762
-
8763
- if (!targetCell) {
8764
- // Target is in another month or all cells in that direction are disabled
8765
- const direction = key === 'ArrowDown' ? 'next' : 'prev';
8766
- this.dispatchEvent(new CustomEvent('calendar-month-boundary', {
8767
- bubbles: true,
8768
- composed: true,
8769
- detail: { direction, fromDate: activeCell.day.date, key }
8770
- }));
8771
- return;
8772
- }
8773
- }
8966
+ handleDateHovered(event) {
8967
+ this.dispatchEvent(new CustomEvent('hovered-date-changed', {
8968
+ detail: { value: event.detail.date },
8969
+ }));
8970
+ }
8774
8971
 
8775
- if (targetCell) {
8776
- this.dispatchEvent(new CustomEvent('calendar-cell-activate', {
8777
- bubbles: true,
8778
- composed: true,
8779
- detail: { date: targetCell.day.date }
8780
- }));
8781
- }
8972
+ /**
8973
+ * Dispatches a bubbling event when the mouse leaves the date grid body
8974
+ * so the parent calendar can clear the range hover preview.
8975
+ * @private
8976
+ * @returns {void}
8977
+ */
8978
+ handleTbodyMouseLeave() {
8979
+ this.dispatchEvent(new CustomEvent('calendar-month-mouseleave', {
8980
+ bubbles: true,
8981
+ composed: true,
8982
+ }));
8782
8983
  }
8783
8984
 
8784
8985
  renderWeek(week) {
@@ -8797,7 +8998,6 @@ class AuroCalendarMonth extends RangeDatepickerCalendar {
8797
8998
  .min="${this.min}"
8798
8999
  .max="${this.max}"
8799
9000
  .month="${this.month}"
8800
- .hoveredDate="${this.hoveredDate}"
8801
9001
  .dateTo="${this.dateTo}"
8802
9002
  .dateFrom="${this.dateFrom}"
8803
9003
  .locale="${this.locale}"
@@ -8819,10 +9019,10 @@ class AuroCalendarMonth extends RangeDatepickerCalendar {
8819
9019
  var _a, _b;
8820
9020
 
8821
9021
  return b$5 `
8822
- <div aria-labelledby="${this.getHeadingId()}">
9022
+ <div>
8823
9023
  <div class="header">
8824
9024
  ${this.renderPrevButton()}
8825
- <div class="headerTitle heading-xs" id="${this.getHeadingId()}" aria-live="polite" aria-atomic="true">
9025
+ <div class="headerTitle heading-xs" id="${this.getHeadingId()}" aria-hidden="true">
8826
9026
  ${this.monthFirst ? b$5`
8827
9027
  <div>${this.computeCurrentMonthName(this.month)}</div>
8828
9028
  <div>${this.renderYear()}</div>
@@ -8834,13 +9034,13 @@ class AuroCalendarMonth extends RangeDatepickerCalendar {
8834
9034
  ${this.renderNextButton()}
8835
9035
  </div>
8836
9036
 
8837
- <div class="table" role="grid" aria-labelledby="${this.getHeadingId()}" @keydown="${this.handleGridKeyDown}">
8838
- <div class="thead" role="rowgroup">
8839
- <div class="tr" role="row">
9037
+ <div class="table" role="grid">
9038
+ <div class="thead" aria-hidden="true">
9039
+ <div class="tr">
8840
9040
  ${(_a = this.dayNamesOfTheWeek) === null || _a === void 0 ? void 0 : _a.map((dayNameOfWeek, index) => this.renderDayOfWeek(dayNameOfWeek, index))}
8841
9041
  </div>
8842
9042
  </div>
8843
- <div class="tbody" role="rowgroup">
9043
+ <div class="tbody" role="rowgroup" @mouseleave="${this.handleTbodyMouseLeave}">
8844
9044
  ${(_b = this.daysOfMonth) === null || _b === void 0 ? void 0 : _b.map(week => this.renderWeek(week))}
8845
9045
  </div>
8846
9046
  </div>
@@ -9658,7 +9858,7 @@ class AuroBibtemplate extends i$1 {
9658
9858
  }
9659
9859
  }
9660
9860
 
9661
- var formkitVersion$2 = '202606011922';
9861
+ var formkitVersion$2 = '202606022350';
9662
9862
 
9663
9863
  let l$1 = class l{generateElementName(t,e){let o=t;return o+="-",o+=e.replace(/[.]/g,"_"),o}generateTag(o,s,a){const r=this.generateElementName(o,s),i=i$5`${s$5(r)}`;return customElements.get(r)||customElements.define(r,class extends a{}),i}};let d$1 = class d{registerComponent(t,e){customElements.get(t)||customElements.define(t,class extends e{});}closestElement(t,e=this,o=(e,s=e&&e.closest(t))=>e&&e!==document&&e!==window?s||o(e.getRootNode().host):null){return o(e)}handleComponentTagRename(t,e){const o=e.toLowerCase();t.tagName.toLowerCase()!==o&&t.setAttribute(o,true);}elementMatch(t,e){const o=e.toLowerCase();return t.tagName.toLowerCase()===o||t.hasAttribute(o)}getSlotText(t,e){const o=t.shadowRoot?.querySelector(`slot[name="${e}"]`),s=(o?.assignedNodes({flatten:true})||[]).map(t=>t.textContent?.trim()).join(" ").trim();return s||null}};let h$4 = class h{registerComponent(t,e){customElements.get(t)||customElements.define(t,class extends e{});}closestElement(t,e=this,o=(e,s=e&&e.closest(t))=>e&&e!==document&&e!==window?s||o(e.getRootNode().host):null){return o(e)}handleComponentTagRename(t,e){const o=e.toLowerCase();t.tagName.toLowerCase()!==o&&t.setAttribute(o,true);}elementMatch(t,e){const o=e.toLowerCase();return t.tagName.toLowerCase()===o||t.hasAttribute(o)}};var c$3=i$3`:host{color:var(--ds-auro-loader-color)}:host>span{background-color:var(--ds-auro-loader-background-color);border-color:var(--ds-auro-loader-border-color)}:host([onlight]),:host([appearance=brand]){--ds-auro-loader-color: var(--ds-basic-color-brand-primary, #01426a)}:host([ondark]),:host([appearance=inverse]){--ds-auro-loader-color: var(--ds-basic-color-texticon-inverse, #ffffff)}:host([orbit])>span{--ds-auro-loader-background-color: transparent}:host([orbit])>span:nth-child(1){--ds-auro-loader-border-color: currentcolor;opacity:.25}:host([orbit])>span:nth-child(2){--ds-auro-loader-border-color: currentcolor;border-right-color:transparent;border-bottom-color:transparent;border-left-color:transparent}
9664
9864
  `,u$6=i$3`.body-default{font-size:var(--wcss-body-default-font-size, 1rem);line-height:var(--wcss-body-default-line-height, 1.5rem)}.body-default,.body-lg{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-weight, 450);letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-lg{font-size:var(--wcss-body-lg-font-size, 1.125rem);line-height:var(--wcss-body-lg-line-height, 1.625rem)}.body-sm{font-size:var(--wcss-body-sm-font-size, .875rem);line-height:var(--wcss-body-sm-line-height, 1.25rem)}.body-sm,.body-xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-weight, 450);letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-xs{font-size:var(--wcss-body-xs-font-size, .75rem);line-height:var(--wcss-body-xs-line-height, 1rem)}.body-2xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-size:var(--wcss-body-2xs-font-size, .625rem);font-weight:var(--wcss-body-weight, 450);letter-spacing:var(--wcss-body-letter-spacing, 0);line-height:var(--wcss-body-2xs-line-height, .875rem)}.display-2xl{font-family:var(--wcss-display-2xl-family, "AS Circular"),var(--wcss-display-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-2xl-font-size, clamp(3.5rem, 6vw, 5.375rem));font-weight:var(--wcss-display-2xl-weight, 300);letter-spacing:var(--wcss-display-2xl-letter-spacing, 0);line-height:var(--wcss-display-2xl-line-height, 1.3)}.display-xl{font-family:var(--wcss-display-xl-family, "AS Circular"),var(--wcss-display-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-xl-font-size, clamp(3rem, 5.3333333333vw, 4.5rem));font-weight:var(--wcss-display-xl-weight, 300);letter-spacing:var(--wcss-display-xl-letter-spacing, 0);line-height:var(--wcss-display-xl-line-height, 1.3)}.display-lg{font-family:var(--wcss-display-lg-family, "AS Circular"),var(--wcss-display-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-lg-font-size, clamp(2.75rem, 4.6666666667vw, 4rem));font-weight:var(--wcss-display-lg-weight, 300);letter-spacing:var(--wcss-display-lg-letter-spacing, 0);line-height:var(--wcss-display-lg-line-height, 1.3)}.display-md{font-family:var(--wcss-display-md-family, "AS Circular"),var(--wcss-display-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-md-font-size, clamp(2.5rem, 4vw, 3.5rem));font-weight:var(--wcss-display-md-weight, 300);letter-spacing:var(--wcss-display-md-letter-spacing, 0);line-height:var(--wcss-display-md-line-height, 1.3)}.display-sm{font-family:var(--wcss-display-sm-family, "AS Circular"),var(--wcss-display-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-sm-font-size, clamp(2rem, 3.6666666667vw, 3rem));font-weight:var(--wcss-display-sm-weight, 300);letter-spacing:var(--wcss-display-sm-letter-spacing, 0);line-height:var(--wcss-display-sm-line-height, 1.3)}.display-xs{font-family:var(--wcss-display-xs-family, "AS Circular"),var(--wcss-display-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-xs-font-size, clamp(1.75rem, 3vw, 2.375rem));font-weight:var(--wcss-display-xs-weight, 300);letter-spacing:var(--wcss-display-xs-letter-spacing, 0);line-height:var(--wcss-display-xs-line-height, 1.3)}.heading-xl{font-family:var(--wcss-heading-xl-family, "AS Circular"),var(--wcss-heading-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-xl-font-size, clamp(2rem, 3vw, 2.5rem));font-weight:var(--wcss-heading-xl-weight, 300);letter-spacing:var(--wcss-heading-xl-letter-spacing, 0);line-height:var(--wcss-heading-xl-line-height, 1.3)}.heading-lg{font-family:var(--wcss-heading-lg-family, "AS Circular"),var(--wcss-heading-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-lg-font-size, clamp(1.75rem, 2.6666666667vw, 2.25rem));font-weight:var(--wcss-heading-lg-weight, 300);letter-spacing:var(--wcss-heading-lg-letter-spacing, 0);line-height:var(--wcss-heading-lg-line-height, 1.3)}.heading-md{font-family:var(--wcss-heading-md-family, "AS Circular"),var(--wcss-heading-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-md-font-size, clamp(1.625rem, 2.3333333333vw, 1.75rem));font-weight:var(--wcss-heading-md-weight, 300);letter-spacing:var(--wcss-heading-md-letter-spacing, 0);line-height:var(--wcss-heading-md-line-height, 1.3)}.heading-sm{font-family:var(--wcss-heading-sm-family, "AS Circular"),var(--wcss-heading-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-sm-font-size, clamp(1.375rem, 2vw, 1.5rem));font-weight:var(--wcss-heading-sm-weight, 300);letter-spacing:var(--wcss-heading-sm-letter-spacing, 0);line-height:var(--wcss-heading-sm-line-height, 1.3)}.heading-xs{font-family:var(--wcss-heading-xs-family, "AS Circular"),var(--wcss-heading-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-xs-font-size, clamp(1.25rem, 1.6666666667vw, 1.25rem));font-weight:var(--wcss-heading-xs-weight, 450);letter-spacing:var(--wcss-heading-xs-letter-spacing, 0);line-height:var(--wcss-heading-xs-line-height, 1.3)}.heading-2xs{font-family:var(--wcss-heading-2xs-family, "AS Circular"),var(--wcss-heading-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-2xs-font-size, clamp(1.125rem, 1.5vw, 1.125rem));font-weight:var(--wcss-heading-2xs-weight, 450);letter-spacing:var(--wcss-heading-2xs-letter-spacing, 0);line-height:var(--wcss-heading-2xs-line-height, 1.3)}.accent-2xl{font-family:var(--wcss-accent-2xl-family, "Good OT"),var(--wcss-accent-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-2xl-font-size, clamp(2rem, 3.1666666667vw, 2.375rem));font-weight:var(--wcss-accent-2xl-weight, 450);letter-spacing:var(--wcss-accent-2xl-letter-spacing, .05em);line-height:var(--wcss-accent-2xl-line-height, 1)}.accent-2xl,.accent-xl{text-transform:uppercase}.accent-xl{font-family:var(--wcss-accent-xl-family, "Good OT"),var(--wcss-accent-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-xl-font-size, clamp(1.625rem, 2.3333333333vw, 2rem));font-weight:var(--wcss-accent-xl-weight, 450);letter-spacing:var(--wcss-accent-xl-letter-spacing, .05em);line-height:var(--wcss-accent-xl-line-height, 1.3)}.accent-lg{font-family:var(--wcss-accent-lg-family, "Good OT"),var(--wcss-accent-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-lg-font-size, clamp(1.5rem, 2.1666666667vw, 1.75rem));font-weight:var(--wcss-accent-lg-weight, 450);letter-spacing:var(--wcss-accent-lg-letter-spacing, .05em);line-height:var(--wcss-accent-lg-line-height, 1.3)}.accent-lg,.accent-md{text-transform:uppercase}.accent-md{font-family:var(--wcss-accent-md-family, "Good OT"),var(--wcss-accent-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-md-font-size, clamp(1.375rem, 1.8333333333vw, 1.5rem));font-weight:var(--wcss-accent-md-weight, 500);letter-spacing:var(--wcss-accent-md-letter-spacing, .05em);line-height:var(--wcss-accent-md-line-height, 1.3)}.accent-sm{font-family:var(--wcss-accent-sm-family, "Good OT"),var(--wcss-accent-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-sm-font-size, clamp(1.125rem, 1.5vw, 1.25rem));font-weight:var(--wcss-accent-sm-weight, 500);letter-spacing:var(--wcss-accent-sm-letter-spacing, .05em);line-height:var(--wcss-accent-sm-line-height, 1.3)}.accent-sm,.accent-xs{text-transform:uppercase}.accent-xs{font-family:var(--wcss-accent-xs-family, "Good OT"),var(--wcss-accent-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-xs-font-size, clamp(1rem, 1.3333333333vw, 1rem));font-weight:var(--wcss-accent-xs-weight, 500);letter-spacing:var(--wcss-accent-xs-letter-spacing, .1em);line-height:var(--wcss-accent-xs-line-height, 1.3)}.accent-2xs{font-family:var(--wcss-accent-2xs-family, "Good OT"),var(--wcss-accent-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-2xs-font-size, clamp(.875rem, 1.1666666667vw, .875rem));font-weight:var(--wcss-accent-2xs-weight, 450);letter-spacing:var(--wcss-accent-2xs-letter-spacing, .1em);line-height:var(--wcss-accent-2xs-line-height, 1.3);text-transform:uppercase}:focus:not(:focus-visible){outline:3px solid transparent}:host,:host>span{position:relative}:host{width:2rem;height:2rem;display:inline-block;font-size:0}:host>span{position:absolute;display:inline-block;float:none;top:0;left:0;width:2rem;height:2rem;border-radius:100%;border-style:solid;border-width:0;box-sizing:border-box}:host([xs]),:host([xs])>span{width:1.2rem;height:1.2rem}:host([sm]),:host([sm])>span{width:3rem;height:3rem}:host([md]),:host([md])>span{width:5rem;height:5rem}:host([lg]),:host([lg])>span{width:8rem;height:8rem}:host{--margin: .375rem;--margin-xs: .2rem;--margin-sm: .5rem;--margin-md: .75rem;--margin-lg: 1rem}:host([pulse]),:host([pulse])>span{position:relative}:host([pulse]){width:calc(3rem + var(--margin) * 6);height:calc(1rem + var(--margin) * 2)}:host([pulse])>span{width:1rem;height:1rem;margin:var(--margin);animation:pulse 1.5s ease infinite}:host([pulse][xs]){width:calc(1.95rem + var(--margin-xs) * 6);height:calc(.65rem + var(--margin-xs) * 2)}:host([pulse][xs])>span{margin:var(--margin-xs);width:.65rem;height:.65rem}:host([pulse][sm]){width:calc(6rem + var(--margin-sm) * 6);height:calc(2rem + var(--margin-sm) * 2)}:host([pulse][sm])>span{margin:var(--margin-sm);width:2rem;height:2rem}:host([pulse][md]){width:calc(9rem + var(--margin-md) * 6);height:calc(3rem + var(--margin-md) * 2)}:host([pulse][md])>span{margin:var(--margin-md);width:3rem;height:3rem}:host([pulse][lg]){width:calc(15rem + var(--margin-lg) * 6);height:calc(5rem + var(--margin-lg) * 2)}:host([pulse][lg])>span{margin:var(--margin-lg);width:5rem;height:5rem}:host([pulse])>span:nth-child(1){animation-delay:-.4s}:host([pulse])>span:nth-child(2){animation-delay:-.2s}:host([pulse])>span:nth-child(3){animation-delay:0ms}@keyframes pulse{0%,to{opacity:.1;transform:scale(.9)}50%{opacity:1;transform:scale(1.1)}}:host([orbit]),:host([orbit])>span{opacity:1}:host([orbit])>span{border-width:5px}:host([orbit])>span:nth-child(2){animation:orbit 2s linear infinite}:host([orbit][sm])>span{border-width:8px}:host([orbit][md])>span{border-width:13px}:host([orbit][lg])>span{border-width:21px}@keyframes orbit{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host([ringworm])>svg{animation:rotate 2s linear infinite;height:100%;width:100%;stroke:currentcolor;stroke-width:8}:host([ringworm]) .path{stroke-dashoffset:0;animation:ringworm 1.5s ease-in-out infinite;stroke-linecap:round}@keyframes rotate{to{transform:rotate(360deg)}}@keyframes ringworm{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:89,200;stroke-dashoffset:-35px}to{stroke-dasharray:89,200;stroke-dashoffset:-124px}}:host([laser]){position:static;width:100%;display:block;height:0;overflow:hidden;font-size:unset}:host([laser])>span{position:fixed;width:100%;height:.25rem;border-radius:0;z-index:100}:host([laser])>span:nth-child(1){border-color:currentcolor;opacity:.25}:host([laser])>span:nth-child(2){border-color:currentcolor;animation:laser 2s linear infinite;opacity:1;width:50%}:host([laser][sm])>span:nth-child(2){width:20%}:host([laser][md])>span:nth-child(2){width:30%}:host([laser][lg])>span:nth-child(2){width:50%;animation-duration:1.5s}:host([laser][xl])>span:nth-child(2){width:80%;animation-duration:1.5s}@keyframes laser{0%{left:-100%}to{left:110%}}:host>.no-animation{display:none}@media (prefers-reduced-motion: reduce){:host{display:flex;align-items:center;justify-content:center}:host>span{opacity:1}:host>.loader{display:none}:host>svg{display:none}:host>.no-animation{display:block}}
@@ -9719,7 +9919,7 @@ let l$1 = class l{generateElementName(t,e){let o=t;return o+="-",o+=e.replace(/[
9719
9919
 
9720
9920
  var buttonVersion$1 = '12.3.2';
9721
9921
 
9722
- /* eslint-disable no-magic-numbers, no-undef-init, max-lines, lit/binding-positions, lit/no-invalid-html */
9922
+ /* eslint-disable no-magic-numbers, complexity, line-comment-position, no-undef-init, max-lines, line-comment-position, no-underscore-dangle, lit/binding-positions, lit/no-invalid-html, no-inline-comments */
9723
9923
 
9724
9924
 
9725
9925
  // See https://git.io/JJ6SJ for "How to document your components using JSDoc"
@@ -9763,6 +9963,13 @@ class AuroCalendar extends RangeDatepicker {
9763
9963
  */
9764
9964
  this.activeCellDate = null;
9765
9965
 
9966
+ /**
9967
+ * Whether the #calendarGrid wrapper currently has focus.
9968
+ * Used to determine whether the visualFocus ring should be shown.
9969
+ * @private
9970
+ */
9971
+ this._gridHasFocus = false;
9972
+
9766
9973
  /**
9767
9974
  * @private
9768
9975
  */
@@ -9773,6 +9980,12 @@ class AuroCalendar extends RangeDatepicker {
9773
9980
  */
9774
9981
  this.calendarRangeMonths = null;
9775
9982
 
9983
+ /**
9984
+ * Legacy array of disabled-date timestamps.
9985
+ * @private
9986
+ */
9987
+ this.disabledDays = [];
9988
+
9776
9989
  /**
9777
9990
  * @private
9778
9991
  */
@@ -9796,6 +10009,12 @@ class AuroCalendar extends RangeDatepicker {
9796
10009
  this.buttonTag = versioning.generateTag('auro-formkit-datepicker-button', buttonVersion$1, T$1);
9797
10010
 
9798
10011
  this.dropdown = undefined;
10012
+
10013
+ /**
10014
+ * Unique instance ID for the live region element.
10015
+ * @private
10016
+ */
10017
+ this._calendarInstanceId = Date.now().toString(36);
9799
10018
  }
9800
10019
 
9801
10020
  static get styles() {
@@ -9808,6 +10027,7 @@ class AuroCalendar extends RangeDatepicker {
9808
10027
 
9809
10028
  static get properties() {
9810
10029
  return {
10030
+
9811
10031
  /**
9812
10032
  * The last month that may be displayed in the calendar.
9813
10033
  */
@@ -9924,22 +10144,36 @@ class AuroCalendar extends RangeDatepicker {
9924
10144
  /**
9925
10145
  * Updates the month and year when the user navigates to the previous calendar month.
9926
10146
  * @private
10147
+ * @param {Object} [options] - Optional settings.
10148
+ * @param {boolean} [options.skipActiveUpdate=false] - When true, skip the active cell
10149
+ * recomputation. Used by arrow key handlers that manage the active cell themselves.
9927
10150
  * @returns {void}
9928
10151
  */
9929
- handlePrevMonth() {
10152
+ handlePrevMonth(options) {
10153
+ const opts = options instanceof Event ? {} : options || {};
10154
+ this.clearRangePreview();
9930
10155
  this.utilCal.handleMonthChange(this, 'prev');
9931
- this.updateActiveCellForVisibleMonth();
10156
+ if (!opts.skipActiveUpdate) {
10157
+ this.updateActiveCellForVisibleMonth();
10158
+ }
9932
10159
  this.announceMonthChange();
9933
10160
  }
9934
10161
 
9935
10162
  /**
9936
10163
  * Updates the month and year when the user navigates to the next calendar month.
9937
10164
  * @private
10165
+ * @param {Object} [options] - Optional settings.
10166
+ * @param {boolean} [options.skipActiveUpdate=false] - When true, skip the active cell
10167
+ * recomputation. Used by arrow key handlers that manage the active cell themselves.
9938
10168
  * @returns {void}
9939
10169
  */
9940
- handleNextMonth() {
10170
+ handleNextMonth(options) {
10171
+ const opts = options instanceof Event ? {} : options || {};
10172
+ this.clearRangePreview();
9941
10173
  this.utilCal.handleMonthChange(this, 'next');
9942
- this.updateActiveCellForVisibleMonth();
10174
+ if (!opts.skipActiveUpdate) {
10175
+ this.updateActiveCellForVisibleMonth();
10176
+ }
9943
10177
  this.announceMonthChange();
9944
10178
  }
9945
10179
 
@@ -9949,27 +10183,39 @@ class AuroCalendar extends RangeDatepicker {
9949
10183
  * @returns {void}
9950
10184
  */
9951
10185
  announceMonthChange() {
10186
+ // Cancel any pending debounced cell announcement so it does not
10187
+ // overwrite this month navigation announcement.
10188
+ if (this._focusAnnounceTimer) {
10189
+ clearTimeout(this._focusAnnounceTimer);
10190
+ this._focusAnnounceTimer = null;
10191
+ }
10192
+
9952
10193
  const date = new Date(this.centralDate);
9953
10194
  const localeCode = this.locale?.code || undefined;
9954
- const formatter = new Intl.DateTimeFormat(localeCode, { month: 'long', year: 'numeric' });
10195
+ const formatter = new Intl.DateTimeFormat(localeCode, { month: 'long',
10196
+ year: 'numeric' });
9955
10197
  this.announceSelection(formatter.format(date));
9956
10198
  }
9957
10199
 
9958
10200
  /**
9959
- * Recomputes and sets the active cell for the newly visible month after
9960
- * month navigation. Without this, activeCellDate can point at a date in
9961
- * the old month, leaving no tabindex="0" cell in the grid.
10201
+ * Updates the active cell after month navigation (prev/next buttons).
10202
+ * Always moves the active cell to the first enabled date in the newly
10203
+ * visible months so that tabbing back to the grid lands on an enabled cell.
9962
10204
  * @private
9963
10205
  * @returns {void}
9964
10206
  */
9965
10207
  updateActiveCellForVisibleMonth() {
9966
- // Skip the dateFrom shortcut so the active cell lands in the newly
9967
- // visible month rather than jumping back to the selected date's month.
9968
- this.activeCellDate = this.computeActiveDate({ skipDateFrom: true });
9969
- this.updateComplete.then(() => {
9970
- if (this.activeCellDate != null) {
9971
- this.setActiveCell(this.activeCellDate);
9972
- }
10208
+ // Use double-rAF to ensure child month/cell components have fully
10209
+ // rendered and cached their button references before we set tabindex.
10210
+ requestAnimationFrame(() => {
10211
+ requestAnimationFrame(() => {
10212
+ const newDate = this.computeActiveDate({ skipDateFrom: true });
10213
+
10214
+ if (newDate !== null && newDate !== undefined) {
10215
+ this.activeCellDate = newDate;
10216
+ this.setActiveCell(this.activeCellDate);
10217
+ }
10218
+ });
9973
10219
  });
9974
10220
  }
9975
10221
 
@@ -10066,7 +10312,9 @@ class AuroCalendar extends RangeDatepicker {
10066
10312
  */
10067
10313
  focusCloseButton() {
10068
10314
  const bibtemplate = this.shadowRoot.querySelector(this.bibtemplateTag._$litStatic$);
10069
- if (bibtemplate) bibtemplate.focusCloseButton();
10315
+ if (bibtemplate) {
10316
+ bibtemplate.focusCloseButton();
10317
+ }
10070
10318
  }
10071
10319
 
10072
10320
  /**
@@ -10095,7 +10343,7 @@ class AuroCalendar extends RangeDatepicker {
10095
10343
  getAllFocusableCells() {
10096
10344
  const months = this.getMonthComponents();
10097
10345
  let cells = [];
10098
- months.forEach(month => {
10346
+ months.forEach((month) => {
10099
10347
  cells = cells.concat(month.getFocusableCells());
10100
10348
  });
10101
10349
  return cells;
@@ -10103,37 +10351,87 @@ class AuroCalendar extends RangeDatepicker {
10103
10351
 
10104
10352
  /**
10105
10353
  * Sets the active cell across all months. Only one cell has tabindex="0" at a time.
10354
+ * Uses imperative DOM manipulation — no Lit re-render triggered.
10355
+ * Also updates ariaActiveDescendantElement on the grid wrapper so
10356
+ * screen readers announce the active cell without moving DOM focus.
10106
10357
  * @param {Number} date - Unix timestamp of the cell to activate.
10107
10358
  * @returns {void}
10108
10359
  */
10109
10360
  setActiveCell(date) {
10110
10361
  const allCells = this.getAllFocusableCells();
10111
10362
 
10112
- allCells.forEach(cell => {
10113
- cell.active = cell.day && cell.day.date === date;
10363
+ let newActiveCell = null;
10364
+ allCells.forEach((cell) => {
10365
+ if (cell.day && cell.day.date === date) {
10366
+ cell.setActive();
10367
+ newActiveCell = cell;
10368
+ } else if (cell.active) {
10369
+ cell.clearActive();
10370
+ }
10114
10371
  });
10115
10372
 
10116
10373
  this.activeCellDate = date;
10374
+
10375
+ // Apply activeCell ring only when the grid currently has focus.
10376
+ if (newActiveCell && this._gridHasFocus) {
10377
+ const btn = newActiveCell._cachedButton || newActiveCell.shadowRoot.querySelector('button.day');
10378
+ if (btn) {
10379
+ btn.classList.add('activeCell');
10380
+ }
10381
+ }
10117
10382
  }
10118
10383
 
10119
10384
  /**
10120
- * Focuses the currently active cell. If activeCellDate is set but no cell
10121
- * has the active attribute yet, sets it first. Waits for the cell's render
10122
- * to complete so the focused button is the final DOM element.
10385
+ * Focuses the calendar grid wrapper and sets the active cell.
10386
+ * DOM focus stays on the grid wrapper; the aria-live region
10387
+ * tells the screen reader which cell is "active".
10123
10388
  * @returns {void}
10124
10389
  */
10125
10390
  focusActiveCell() {
10126
- if (this.activeCellDate != null) {
10391
+ if (this.activeCellDate !== null && this.activeCellDate !== undefined) {
10127
10392
  this.setActiveCell(this.activeCellDate);
10128
10393
  }
10129
10394
 
10130
- const allCells = this.getAllFocusableCells();
10131
- const activeCell = allCells.find(cell => cell.active);
10395
+ const gridWrapper = this.shadowRoot.querySelector('#calendarGrid');
10396
+ if (gridWrapper) {
10397
+ gridWrapper.focus({ preventScroll: true,
10398
+ focusVisible: true });
10399
+ }
10400
+ }
10401
+
10402
+ /**
10403
+ * Shows the activeCell ring when the grid gains focus.
10404
+ * @private
10405
+ * @returns {void}
10406
+ */
10407
+ handleGridFocusIn() {
10408
+ this._gridHasFocus = true;
10409
+ const activeCell = this.getAllFocusableCells().find((cell) => cell.active);
10132
10410
  if (activeCell) {
10133
- activeCell.updateComplete.then(() => {
10134
- activeCell.focusButton();
10135
- });
10411
+ const btn = activeCell._cachedButton || activeCell.shadowRoot.querySelector('button.day');
10412
+ if (btn) {
10413
+ btn.classList.add('activeCell');
10414
+ }
10415
+ }
10416
+ }
10417
+
10418
+ /**
10419
+ * Hides the activeCell ring when the grid loses focus.
10420
+ * @private
10421
+ * @returns {void}
10422
+ */
10423
+ handleGridFocusOut() {
10424
+ this._gridHasFocus = false;
10425
+ // Remove activeCell from ALL cells to prevent stale rings.
10426
+ const allCells = this.getAllFocusableCells();
10427
+ for (const cell of allCells) {
10428
+ const btn = cell._cachedButton || cell.shadowRoot.querySelector('button.day');
10429
+ if (btn) {
10430
+ btn.classList.remove('activeCell');
10431
+ }
10136
10432
  }
10433
+ // Clear range hover preview so no highlight lingers after focus leaves the grid.
10434
+ this.clearRangePreview();
10137
10435
  }
10138
10436
 
10139
10437
  /**
@@ -10147,7 +10445,7 @@ class AuroCalendar extends RangeDatepicker {
10147
10445
  * 5b. First enabled date scanning forward from finite min (unbounded max)
10148
10446
  * 5c. First enabled date scanning backward from finite max (unbounded min)
10149
10447
  * 6. First in-range date (even if blackout) so focus can land somewhere
10150
- * 7. undefined — no valid target
10448
+ * 7. Undefined — no valid target.
10151
10449
  *
10152
10450
  * @private
10153
10451
  * @param {Object} [options] - Optional settings.
@@ -10162,12 +10460,15 @@ class AuroCalendar extends RangeDatepicker {
10162
10460
  /**
10163
10461
  * Adds days to a timestamp using Date arithmetic to handle DST correctly.
10164
10462
  * Returns a local-midnight-aligned timestamp in seconds.
10463
+ * @param {Number} ts - Unix timestamp in seconds.
10464
+ * @param {Number} days - Number of days to add.
10465
+ * @returns {Number} The adjusted timestamp in seconds.
10165
10466
  */
10166
10467
  const addDays = (ts, days) => {
10167
- const d = new Date(ts * 1000);
10168
- d.setDate(d.getDate() + days);
10169
- d.setHours(0, 0, 0, 0);
10170
- return Math.floor(d.getTime() / 1000);
10468
+ const date = new Date(ts * 1000);
10469
+ date.setDate(date.getDate() + days);
10470
+ date.setHours(0, 0, 0, 0);
10471
+ return Math.floor(date.getTime() / 1000);
10171
10472
  };
10172
10473
 
10173
10474
  const rawMin = Number(this.min);
@@ -10178,9 +10479,7 @@ class AuroCalendar extends RangeDatepicker {
10178
10479
  const maxTs = Number.isFinite(rawMax) ? rawMax : Infinity;
10179
10480
 
10180
10481
  // Build a Set of blackout timestamps for O(1) lookup.
10181
- const blackoutSet = new Set(
10182
- (this.disabledDays || []).map(d => parseInt(d, 10))
10183
- );
10482
+ const blackoutSet = new Set(this.disabledDays.map((day) => parseInt(day, 10)));
10184
10483
 
10185
10484
  // Also include ISO-format blackoutDates from the datepicker if available.
10186
10485
  // Parse YYYY-MM-DD as local date to avoid UTC shift issues.
@@ -10189,19 +10488,25 @@ class AuroCalendar extends RangeDatepicker {
10189
10488
  for (const isoStr of isoBlackouts) {
10190
10489
  const parts = isoStr.split('-');
10191
10490
  const ts = Math.floor(new Date(parseInt(parts[0], 10), parseInt(parts[1], 10) - 1, parseInt(parts[2], 10)).getTime() / 1000);
10192
- if (Number.isFinite(ts)) blackoutSet.add(ts);
10491
+ if (Number.isFinite(ts)) {
10492
+ blackoutSet.add(ts);
10493
+ }
10193
10494
  }
10194
10495
  }
10195
10496
 
10196
10497
  /**
10197
10498
  * A date (unix timestamp in seconds, midnight-aligned) is "enabled" when
10198
10499
  * it is within [min, max] AND not a blackout day.
10500
+ * @param {Number} ts - Unix timestamp in seconds.
10501
+ * @returns {boolean} True if the date is enabled.
10199
10502
  */
10200
10503
  const isEnabled = (ts) => ts >= minTs && ts <= maxTs && !blackoutSet.has(ts);
10201
10504
 
10202
10505
  /**
10203
10506
  * A date is "in range" (focusable in the grid) when it is within [min, max].
10204
10507
  * Blackout dates are focusable but not selectable.
10508
+ * @param {Number} ts - Unix timestamp in seconds.
10509
+ * @returns {boolean} True if the date is in range.
10205
10510
  */
10206
10511
  const isInRange = (ts) => ts >= minTs && ts <= maxTs;
10207
10512
 
@@ -10210,7 +10515,9 @@ class AuroCalendar extends RangeDatepicker {
10210
10515
  // the newly visible month rather than the (possibly off-screen) selection.
10211
10516
  if (!options.skipDateFrom && this.dateFrom) {
10212
10517
  const parsedFrom = parseInt(this.dateFrom, 10);
10213
- if (Number.isFinite(parsedFrom) && isInRange(parsedFrom)) return parsedFrom;
10518
+ if (Number.isFinite(parsedFrom) && isInRange(parsedFrom)) {
10519
+ return parsedFrom;
10520
+ }
10214
10521
  }
10215
10522
 
10216
10523
  // 2. Today's date (midnight-aligned) if enabled.
@@ -10237,32 +10544,35 @@ class AuroCalendar extends RangeDatepicker {
10237
10544
  const visibleEnd = new Date(centralYear, centralMonth + 1, 0); // last day of month
10238
10545
  visibleEnd.setHours(0, 0, 0, 0);
10239
10546
  const startTs = Math.floor(visibleStart.getTime() / 1000);
10240
- const endTs = Math.floor(visibleEnd.getTime() / 1000);
10241
10547
  const daysInMonth = visibleEnd.getDate();
10242
10548
 
10243
- for (let idx = 0; idx < daysInMonth; idx++) {
10549
+ for (let idx = 0; idx < daysInMonth; idx += 1) {
10244
10550
  const ts = addDays(startTs, idx);
10245
- if (ts > endTs) break;
10246
- if (isEnabled(ts)) return ts;
10551
+ if (isEnabled(ts)) {
10552
+ return ts;
10553
+ }
10247
10554
  }
10248
10555
 
10249
10556
  // No enabled date in the visible month — fall back to first in-range
10250
10557
  // date in the month so focus still lands on a focusable cell.
10251
- for (let idx = 0; idx < daysInMonth; idx++) {
10558
+ for (let idx = 0; idx < daysInMonth; idx += 1) {
10252
10559
  const ts = addDays(startTs, idx);
10253
- if (ts > endTs) break;
10254
- if (isInRange(ts)) return ts;
10560
+ if (isInRange(ts)) {
10561
+ return ts;
10562
+ }
10255
10563
  }
10256
10564
  }
10257
10565
  }
10258
10566
 
10259
- if (isEnabled(now)) return now;
10567
+ if (isEnabled(now)) {
10568
+ return now;
10569
+ }
10260
10570
 
10261
10571
  // When a centralDate is configured (or inferred), constrain the scan to the
10262
10572
  // rendered month(s) first so a single-month calendar does not pick a date
10263
10573
  // that has no DOM cell. Determine the visible range based on centralDate and
10264
10574
  // the number of rendered months.
10265
- const renderedMonths = this.numCalendars || 1;
10575
+ const renderedMonths = Math.max(this.numCalendars, 1);
10266
10576
  const visibleAnchor = centralDateValue && !isNaN(centralDateValue.getTime())
10267
10577
  ? centralDateValue
10268
10578
  : new Date(now * 1000);
@@ -10275,40 +10585,52 @@ class AuroCalendar extends RangeDatepicker {
10275
10585
  const visDays = Math.round((visEndTs - visStartTs) / 86400) + 1;
10276
10586
 
10277
10587
  // Scan visible months for an enabled date.
10278
- for (let idx = 0; idx < visDays; idx++) {
10588
+ for (let idx = 0; idx < visDays; idx += 1) {
10279
10589
  const ts = addDays(visStartTs, idx);
10280
- if (ts > visEndTs) break;
10281
- if (isEnabled(ts)) return ts;
10590
+ if (isEnabled(ts)) {
10591
+ return ts;
10592
+ }
10282
10593
  }
10283
10594
 
10284
10595
  // No enabled date in visible months — try an in-range (focusable) date so
10285
10596
  // keyboard focus still has a tabindex="0" target.
10286
- for (let idx = 0; idx < visDays; idx++) {
10597
+ for (let idx = 0; idx < visDays; idx += 1) {
10287
10598
  const ts = addDays(visStartTs, idx);
10288
- if (ts > visEndTs) break;
10289
- if (isInRange(ts)) return ts;
10599
+ if (isInRange(ts)) {
10600
+ return ts;
10601
+ }
10290
10602
  }
10291
10603
 
10292
10604
  // 3. First future enabled date (scan forward from tomorrow, capped by max and MAX_SCAN_DAYS).
10293
- for (let idx = 1; idx <= MAX_SCAN_DAYS; idx++) {
10605
+ for (let idx = 1; idx <= MAX_SCAN_DAYS; idx += 1) {
10294
10606
  const ts = addDays(now, idx);
10295
- if (Number.isFinite(maxTs) && ts > maxTs) break;
10296
- if (isEnabled(ts)) return ts;
10607
+ if (Number.isFinite(maxTs) && ts > maxTs) {
10608
+ break;
10609
+ }
10610
+ if (isEnabled(ts)) {
10611
+ return ts;
10612
+ }
10297
10613
  }
10298
10614
 
10299
10615
  // 4. First previous enabled date (scan backward from yesterday, capped by min and MAX_SCAN_DAYS).
10300
- for (let idx = 1; idx <= MAX_SCAN_DAYS; idx++) {
10616
+ for (let idx = 1; idx <= MAX_SCAN_DAYS; idx += 1) {
10301
10617
  const ts = addDays(now, -idx);
10302
- if (Number.isFinite(minTs) && ts < minTs) break;
10303
- if (isEnabled(ts)) return ts;
10618
+ if (Number.isFinite(minTs) && ts < minTs) {
10619
+ break;
10620
+ }
10621
+ if (isEnabled(ts)) {
10622
+ return ts;
10623
+ }
10304
10624
  }
10305
10625
 
10306
10626
  // 5. If scans missed (e.g. min/max range is far from today), fall back to
10307
10627
  // the first enabled date in the [min, max] range.
10308
10628
  if (Number.isFinite(minTs) && Number.isFinite(maxTs)) {
10309
10629
  let ts = minTs;
10310
- for (let idx = 0; ts <= maxTs; idx++) {
10311
- if (isEnabled(ts)) return ts;
10630
+ for (let idx = 0; ts <= maxTs; idx += 1) {
10631
+ if (isEnabled(ts)) {
10632
+ return ts;
10633
+ }
10312
10634
  ts = addDays(minTs, idx + 1);
10313
10635
  }
10314
10636
  }
@@ -10316,29 +10638,191 @@ class AuroCalendar extends RangeDatepicker {
10316
10638
  // 5b. Finite min with unbounded max (e.g. minDate far in the future):
10317
10639
  // scan forward from min for up to MAX_SCAN_DAYS.
10318
10640
  if (Number.isFinite(minTs) && !Number.isFinite(maxTs)) {
10319
- for (let idx = 0; idx <= MAX_SCAN_DAYS; idx++) {
10641
+ for (let idx = 0; idx <= MAX_SCAN_DAYS; idx += 1) {
10320
10642
  const ts = addDays(minTs, idx);
10321
- if (isEnabled(ts)) return ts;
10643
+ if (isEnabled(ts)) {
10644
+ return ts;
10645
+ }
10322
10646
  }
10323
10647
  }
10324
10648
 
10325
10649
  // 5c. Unbounded min with a finite max far in the past (e.g. birth-date picker):
10326
10650
  // scan backward from max for up to MAX_SCAN_DAYS.
10327
10651
  if (!Number.isFinite(minTs) && Number.isFinite(maxTs)) {
10328
- for (let idx = 0; idx <= MAX_SCAN_DAYS; idx++) {
10652
+ for (let idx = 0; idx <= MAX_SCAN_DAYS; idx += 1) {
10329
10653
  const ts = addDays(maxTs, -idx);
10330
- if (isEnabled(ts)) return ts;
10654
+ if (isEnabled(ts)) {
10655
+ return ts;
10656
+ }
10331
10657
  }
10332
10658
  }
10333
10659
 
10334
10660
  // 6. All dates are blackout — fall back to the first in-range date so focus
10335
10661
  // still lands on a focusable (but not selectable) cell.
10336
- if (Number.isFinite(minTs) && isInRange(minTs)) return minTs;
10337
- if (isInRange(now)) return now;
10662
+ if (Number.isFinite(minTs) && isInRange(minTs)) {
10663
+ return minTs;
10664
+ }
10665
+ if (isInRange(now)) {
10666
+ return now;
10667
+ }
10338
10668
 
10339
10669
  return undefined;
10340
10670
  }
10341
10671
 
10672
+ /**
10673
+ * Checks if a target date (unix seconds) is within the configured [min, max] range.
10674
+ * Returns false if the date falls outside the range, preventing navigation
10675
+ * to months where all dates are disabled.
10676
+ * @private
10677
+ * @param {Number} targetTs - Unix timestamp in seconds.
10678
+ * @returns {Boolean} True if the date is within range.
10679
+ */
10680
+ isDateInRange(targetTs) {
10681
+ const rawMin = Number(this.min);
10682
+ const rawMax = Number(this.max);
10683
+ if (Number.isFinite(rawMin) && targetTs < rawMin) {
10684
+ return false;
10685
+ }
10686
+ if (Number.isFinite(rawMax) && targetTs > rawMax) {
10687
+ return false;
10688
+ }
10689
+ return true;
10690
+ }
10691
+
10692
+ /**
10693
+ * Handles arrow key navigation on the calendar grid wrapper.
10694
+ * Focus stays on the grid wrapper; only ariaActiveDescendantElement
10695
+ * and the visual active-cell indicator change.
10696
+ * @private
10697
+ * @param {KeyboardEvent} event - The keyboard event.
10698
+ * @returns {void}
10699
+ */
10700
+ handleGridKeyDown(event) {
10701
+ const { key } = event;
10702
+ const actionKeys = [
10703
+ 'ArrowRight',
10704
+ 'ArrowLeft',
10705
+ 'ArrowDown',
10706
+ 'ArrowUp',
10707
+ 'Enter',
10708
+ ' '
10709
+ ];
10710
+
10711
+ if (!actionKeys.includes(key)) {
10712
+ return;
10713
+ }
10714
+
10715
+ event.preventDefault();
10716
+
10717
+ const allCells = this.getAllFocusableCells();
10718
+ if (allCells.length === 0) {
10719
+ return;
10720
+ }
10721
+
10722
+ const activeCell = allCells.find((cell) => cell.active);
10723
+ if (!activeCell) {
10724
+ return;
10725
+ }
10726
+
10727
+ // Handle Enter/Space to select the active cell
10728
+ if (key === 'Enter' || key === ' ') {
10729
+ activeCell.handleTap();
10730
+ return;
10731
+ }
10732
+
10733
+ const activeIndex = allCells.indexOf(activeCell);
10734
+
10735
+ if (key === 'ArrowRight' || key === 'ArrowLeft') {
10736
+ const direction = key === 'ArrowRight' ? 1 : -1;
10737
+ const targetIndex = activeIndex + direction;
10738
+
10739
+ if (targetIndex >= 0 && targetIndex < allCells.length) {
10740
+ // Target cell exists in rendered months
10741
+ this.setActiveCell(allCells[targetIndex].day.date);
10742
+ this.scrollToActiveCell();
10743
+ // Dispatch focus event for the cell so live region + range preview update
10744
+ this.handleCellFocused({ detail: { date: allCells[targetIndex].day.date } });
10745
+ } else {
10746
+ // At boundary — need to navigate to next/prev month
10747
+ const navDir = direction === 1 ? 'next' : 'prev';
10748
+ const targetDate = new Date(activeCell.day.date * 1000);
10749
+ targetDate.setDate(targetDate.getDate() + direction);
10750
+ targetDate.setHours(0, 0, 0, 0);
10751
+ const targetTs = Math.floor(targetDate.getTime() / 1000);
10752
+
10753
+ if (this.isDateInRange(targetTs) && ((navDir === 'next' && this.showNextMonthBtn) || (navDir === 'prev' && this.showPrevMonthBtn))) { // eslint-disable-line no-extra-parens
10754
+
10755
+ if (navDir === 'next') {
10756
+ this.handleNextMonth({ skipActiveUpdate: true });
10757
+ } else {
10758
+ this.handlePrevMonth({ skipActiveUpdate: true });
10759
+ }
10760
+ requestAnimationFrame(() => {
10761
+ requestAnimationFrame(() => {
10762
+ const cells = this.getAllFocusableCells();
10763
+ const target = cells.find((cell) => cell.day && cell.day.date === targetTs);
10764
+ if (target) {
10765
+ this.setActiveCell(target.day.date);
10766
+ this.handleCellFocused({ detail: { date: target.day.date } });
10767
+ } else if (cells.length > 0) {
10768
+ const fallback = navDir === 'next' ? cells[cells.length - 1] : cells[0];
10769
+ this.setActiveCell(fallback.day.date);
10770
+ this.handleCellFocused({ detail: { date: fallback.day.date } });
10771
+ }
10772
+ // Re-focus grid wrapper after month change re-render
10773
+ this.focusActiveCell();
10774
+ });
10775
+ });
10776
+ }
10777
+ }
10778
+ } else if (key === 'ArrowDown' || key === 'ArrowUp') {
10779
+ const increment = key === 'ArrowDown' ? 7 : -7;
10780
+ const currentDate = new Date(activeCell.day.date * 1000);
10781
+ currentDate.setDate(currentDate.getDate() + increment);
10782
+ currentDate.setHours(0, 0, 0, 0);
10783
+ const targetDate = Math.floor(currentDate.getTime() / 1000);
10784
+
10785
+ const targetCell = allCells.find((cell) => cell.day && cell.day.date === targetDate);
10786
+
10787
+ if (targetCell) {
10788
+ this.setActiveCell(targetCell.day.date);
10789
+ this.scrollToActiveCell();
10790
+ this.handleCellFocused({ detail: { date: targetCell.day.date } });
10791
+ } else if (this.isDateInRange(targetDate)) {
10792
+ // Target might be in an unrendered month
10793
+ const navDirection = key === 'ArrowDown' ? 'next' : 'prev';
10794
+ if ((navDirection === 'next' && this.showNextMonthBtn) || (navDirection === 'prev' && this.showPrevMonthBtn)) { // eslint-disable-line no-extra-parens
10795
+ if (navDirection === 'next') {
10796
+ this.handleNextMonth({ skipActiveUpdate: true });
10797
+ } else {
10798
+ this.handlePrevMonth({ skipActiveUpdate: true });
10799
+ }
10800
+ requestAnimationFrame(() => {
10801
+ requestAnimationFrame(() => {
10802
+ const cells = this.getAllFocusableCells();
10803
+ const target = cells.find((cell) => cell.day && cell.day.date === targetDate);
10804
+ if (target) {
10805
+ this.setActiveCell(target.day.date);
10806
+ this.handleCellFocused({ detail: { date: target.day.date } });
10807
+ } else if (cells.length > 0) {
10808
+ let nearest = null;
10809
+
10810
+ if (navDirection === 'next') {
10811
+ [nearest] = cells;
10812
+ } else {
10813
+ nearest = cells[cells.length - 1];
10814
+ }
10815
+ this.setActiveCell(nearest.day.date);
10816
+ this.handleCellFocused({ detail: { date: nearest.day.date } });
10817
+ }
10818
+ this.focusActiveCell();
10819
+ });
10820
+ });
10821
+ }
10822
+ }
10823
+ }
10824
+ }
10825
+
10342
10826
  /**
10343
10827
  * Handles cross-month boundary navigation events from month components.
10344
10828
  * @private
@@ -10351,15 +10835,15 @@ class AuroCalendar extends RangeDatepicker {
10351
10835
  if (key === 'ArrowRight' || key === 'ArrowLeft') {
10352
10836
  // Linear navigation: find adjacent focusable cell across months
10353
10837
  const allCells = this.getAllFocusableCells();
10354
- const currentIndex = allCells.findIndex(cell => cell.day && cell.day.date === fromDate);
10838
+ const currentIndex = allCells.findIndex((cell) => cell.day && cell.day.date === fromDate);
10355
10839
 
10356
- if (currentIndex === -1) return;
10840
+ if (currentIndex === -1) {
10841
+ return;
10842
+ }
10357
10843
 
10358
- let targetIndex;
10844
+ let targetIndex = -1;
10359
10845
  if (direction === 'next') {
10360
10846
  targetIndex = currentIndex + 1;
10361
- } else {
10362
- targetIndex = currentIndex - 1;
10363
10847
  }
10364
10848
 
10365
10849
  if (targetIndex >= 0 && targetIndex < allCells.length) {
@@ -10377,11 +10861,15 @@ class AuroCalendar extends RangeDatepicker {
10377
10861
  nextDate.setHours(0, 0, 0, 0);
10378
10862
  const nextTs = Math.floor(nextDate.getTime() / 1000);
10379
10863
 
10380
- this.handleNextMonth();
10864
+ if (!this.isDateInRange(nextTs)) {
10865
+ return;
10866
+ }
10867
+
10868
+ this.handleNextMonth({ skipActiveUpdate: true });
10381
10869
  requestAnimationFrame(() => {
10382
10870
  requestAnimationFrame(() => {
10383
10871
  const cells = this.getAllFocusableCells();
10384
- const target = cells.find(cell => cell.day && cell.day.date === nextTs);
10872
+ const target = cells.find((cell) => cell.day && cell.day.date === nextTs);
10385
10873
  if (target) {
10386
10874
  this.setActiveCell(target.day.date);
10387
10875
  this.focusActiveCell();
@@ -10399,11 +10887,15 @@ class AuroCalendar extends RangeDatepicker {
10399
10887
  prevDate.setHours(0, 0, 0, 0);
10400
10888
  const prevTs = Math.floor(prevDate.getTime() / 1000);
10401
10889
 
10402
- this.handlePrevMonth();
10890
+ if (!this.isDateInRange(prevTs)) {
10891
+ return;
10892
+ }
10893
+
10894
+ this.handlePrevMonth({ skipActiveUpdate: true });
10403
10895
  requestAnimationFrame(() => {
10404
10896
  requestAnimationFrame(() => {
10405
10897
  const cells = this.getAllFocusableCells();
10406
- const target = cells.find(cell => cell.day && cell.day.date === prevTs);
10898
+ const target = cells.find((cell) => cell.day && cell.day.date === prevTs);
10407
10899
  if (target) {
10408
10900
  this.setActiveCell(target.day.date);
10409
10901
  this.focusActiveCell();
@@ -10425,25 +10917,25 @@ class AuroCalendar extends RangeDatepicker {
10425
10917
  const targetDate = Math.floor(currentDate.getTime() / 1000);
10426
10918
 
10427
10919
  const allCells = this.getAllFocusableCells();
10428
- let targetCell = allCells.find(cell => cell.day && cell.day.date === targetDate);
10920
+ const targetCell = allCells.find((cell) => cell.day && cell.day.date === targetDate);
10429
10921
 
10430
10922
  if (targetCell) {
10431
10923
  this.setActiveCell(targetCell.day.date);
10432
10924
  this.scrollToActiveCell();
10433
10925
  this.focusActiveCell();
10434
- } else {
10926
+ } else if (this.isDateInRange(targetDate)) {
10435
10927
  // Target might be in an unrendered month, navigate there
10436
10928
  const navDirection = key === 'ArrowDown' ? 'next' : 'prev';
10437
- if ((navDirection === 'next' && this.showNextMonthBtn) || (navDirection === 'prev' && this.showPrevMonthBtn)) {
10929
+ if ((navDirection === 'next' && this.showNextMonthBtn) || (navDirection === 'prev' && this.showPrevMonthBtn)) { // eslint-disable-line no-extra-parens
10438
10930
  if (navDirection === 'next') {
10439
- this.handleNextMonth();
10931
+ this.handleNextMonth({ skipActiveUpdate: true });
10440
10932
  } else {
10441
- this.handlePrevMonth();
10933
+ this.handlePrevMonth({ skipActiveUpdate: true });
10442
10934
  }
10443
10935
  requestAnimationFrame(() => {
10444
10936
  requestAnimationFrame(() => {
10445
10937
  const cells = this.getAllFocusableCells();
10446
- const target = cells.find(cell => cell.day && cell.day.date === targetDate);
10938
+ const target = cells.find((cell) => cell.day && cell.day.date === targetDate);
10447
10939
  if (target) {
10448
10940
  this.setActiveCell(target.day.date);
10449
10941
  this.focusActiveCell();
@@ -10469,7 +10961,195 @@ class AuroCalendar extends RangeDatepicker {
10469
10961
  handleCellActivate(event) {
10470
10962
  const { date } = event.detail;
10471
10963
  this.setActiveCell(date);
10472
- this.focusActiveCell();
10964
+
10965
+ // Don't call focusActiveCell() here. The tap/click already placed
10966
+ // focus on the cell button, and moving it to #calendarGrid would
10967
+ // trigger focusout on the button, closing any open popover on the
10968
+ // cell. Keyboard events are composed and still bubble through
10969
+ // shadow DOM boundaries to the grid's @keydown handler, so
10970
+ // subsequent keyboard navigation continues to work.
10971
+ }
10972
+
10973
+ /**
10974
+ * Handles focus events from calendar cells.
10975
+ * Updates the live region with an SR announcement and triggers
10976
+ * the imperative range preview if applicable.
10977
+ * @private
10978
+ * @param {CustomEvent} event - The calendar-cell-focused event.
10979
+ * @returns {void}
10980
+ */
10981
+ handleCellFocused(event) {
10982
+ const { date } = event.detail;
10983
+ if (date === null) {
10984
+ return;
10985
+ }
10986
+
10987
+ // With aria-activedescendant, the button no longer receives native focus,
10988
+ // so we use the debounced live region for the full context announcement.
10989
+ const announcement = this.buildFocusAnnouncement(date);
10990
+ this.announceFocusDebounced(announcement);
10991
+
10992
+ // Update the range preview imperatively if in range-preview mode.
10993
+ this.updateRangePreview(date);
10994
+ }
10995
+
10996
+ /**
10997
+ * Builds a full SR announcement string for a focused cell date.
10998
+ * Includes the localized date, range position, popover content,
10999
+ * and blackout status.
11000
+ * @private
11001
+ * @param {Number} date - Unix timestamp (seconds) of the focused cell.
11002
+ * @returns {String} The announcement string.
11003
+ */
11004
+ buildFocusAnnouncement(date) {
11005
+ let label = this.formatAnnouncementDate(date);
11006
+
11007
+ // Append date slot content (e.g. prices) if present.
11008
+ const dateObj = new Date(date * 1000);
11009
+ const mm = String(dateObj.getMonth() + 1).padStart(2, '0');
11010
+ const dd = String(dateObj.getDate()).padStart(2, '0');
11011
+ const yyyy = dateObj.getFullYear();
11012
+ const dateStr = `${mm}_${dd}_${yyyy}`;
11013
+ const dateSlotEl = this.datepicker?.querySelector(`[slot="date_${dateStr}"]`);
11014
+ if (dateSlotEl) {
11015
+ const text = dateSlotEl.innerText?.trim();
11016
+ if (text) {
11017
+ label += `, ${text}`;
11018
+ }
11019
+ }
11020
+
11021
+ // Append popover content if present.
11022
+ const popoverEl = this.datepicker?.querySelector(`[slot="popover_${dateStr}"]`);
11023
+ if (popoverEl) {
11024
+ const text = popoverEl.innerText?.trim();
11025
+ if (text) {
11026
+ label += `, ${text}`;
11027
+ }
11028
+ }
11029
+
11030
+ // Append range position context.
11031
+ if (this.datepicker?.hasAttribute('range')) {
11032
+ const rangeLabel = this.getRangePositionLabel(date);
11033
+ if (rangeLabel) {
11034
+ label += `, ${rangeLabel}`;
11035
+ }
11036
+ }
11037
+
11038
+ // Append blackout label.
11039
+ if (this.isDateBlackout(date)) {
11040
+ label += `, ${this.datepicker?.blackoutLabel || 'unavailable'}`;
11041
+ }
11042
+
11043
+ return label;
11044
+ }
11045
+
11046
+ /**
11047
+ * Determines the range position label for a given date.
11048
+ * @private
11049
+ * @param {Number} date - Unix timestamp (seconds).
11050
+ * @returns {String|null} The range position label, or null.
11051
+ */
11052
+ getRangePositionLabel(date) {
11053
+ const parsedFrom = Number.parseInt(this.dateFrom, 10);
11054
+ if (!Number.isFinite(parsedFrom)) {
11055
+ return null;
11056
+ }
11057
+
11058
+ const departTs = startOfDay(parsedFrom * 1000) / 1000;
11059
+ const parsedTo = Number.parseInt(this.dateTo, 10);
11060
+ const hasTo = Number.isFinite(parsedTo);
11061
+ const returnTs = hasTo ? startOfDay(parsedTo * 1000) / 1000 : null;
11062
+
11063
+ if (date === departTs) {
11064
+ return this.datepicker.rangeLabelStart || 'range start';
11065
+ }
11066
+ if (hasTo && date === returnTs) {
11067
+ return this.datepicker.rangeLabelEnd || 'range end';
11068
+ }
11069
+ if (date < departTs) {
11070
+ return this.datepicker.rangeLabelBeforeRange || 'before range';
11071
+ }
11072
+ if (hasTo && date > departTs && date < returnTs) {
11073
+ return this.datepicker.rangeLabelInRange || 'in range';
11074
+ }
11075
+ return this.datepicker.rangeLabelAfterRange || 'after range';
11076
+ }
11077
+
11078
+ /**
11079
+ * Checks whether a given date is a blackout date.
11080
+ * @private
11081
+ * @param {Number} dateTs - Unix timestamp (seconds).
11082
+ * @returns {Boolean} True if the date is blacked out.
11083
+ */
11084
+ isDateBlackout(dateTs) {
11085
+ // Check legacy disabledDays.
11086
+ if (Array.isArray(this.disabledDays) && this.disabledDays.length > 0) {
11087
+ if (this.disabledDays.findIndex((day) => parseInt(day, 10) === dateTs) !== -1) {
11088
+ return true;
11089
+ }
11090
+ }
11091
+
11092
+ // Check ISO blackoutDates.
11093
+ const blackoutDates = this.datepicker?.blackoutDates;
11094
+ if (Array.isArray(blackoutDates) && blackoutDates.length > 0) {
11095
+ const date = new Date(dateTs * 1000);
11096
+ const yyyy = date.getFullYear();
11097
+ const mm = String(date.getMonth() + 1).padStart(2, '0');
11098
+ const dd = String(date.getDate()).padStart(2, '0');
11099
+ if (blackoutDates.includes(`${yyyy}-${mm}-${dd}`)) {
11100
+ return true;
11101
+ }
11102
+ }
11103
+
11104
+ return false;
11105
+ }
11106
+
11107
+ /**
11108
+ * Updates the range preview classes imperatively across all cells.
11109
+ * Only active when in range mode with dateFrom set and dateTo not yet set.
11110
+ * @private
11111
+ * @param {Number} hoveredDate - Unix timestamp of the hovered/focused date.
11112
+ * @returns {void}
11113
+ */
11114
+ updateRangePreview(hoveredDate) {
11115
+ if (this.noRange || !this.dateFrom || this.dateTo) {
11116
+ return;
11117
+ }
11118
+
11119
+ const parsedDateFrom = parseInt(this.dateFrom, 10);
11120
+ const allCells = this.getAllFocusableCells();
11121
+
11122
+ allCells.forEach((cell) => {
11123
+ cell.updateRangePreviewClasses(hoveredDate, parsedDateFrom);
11124
+ });
11125
+ }
11126
+
11127
+ /**
11128
+ * Clears range preview classes from all cells.
11129
+ * @private
11130
+ * @returns {void}
11131
+ */
11132
+ clearRangePreview() {
11133
+ if (this.dateFrom && this.dateTo) {
11134
+ return;
11135
+ }
11136
+
11137
+ const allCells = this.getAllFocusableCells();
11138
+ allCells.forEach((cell) => {
11139
+ cell.clearRangePreviewClasses();
11140
+ });
11141
+ }
11142
+
11143
+ /**
11144
+ * Overrides the base class handler to prevent setting `this.hoveredDate`
11145
+ * as a reactive property. Instead, handles the range preview imperatively.
11146
+ * @private
11147
+ * @param {CustomEvent} event - The hovered-date-changed event from a month.
11148
+ * @returns {void}
11149
+ */
11150
+ hoveredDateChanged(event) {
11151
+ const hoveredDate = event.detail.value;
11152
+ this.updateRangePreview(hoveredDate);
10473
11153
  }
10474
11154
 
10475
11155
  /**
@@ -10478,7 +11158,9 @@ class AuroCalendar extends RangeDatepicker {
10478
11158
  * @returns {void}
10479
11159
  */
10480
11160
  scrollToActiveCell() {
10481
- if (this.activeCellDate == null) return;
11161
+ if (this.activeCellDate === null || this.activeCellDate === undefined) {
11162
+ return;
11163
+ }
10482
11164
 
10483
11165
  const date = new Date(this.activeCellDate * 1000);
10484
11166
  const month = date.getMonth() + 1;
@@ -10488,25 +11170,138 @@ class AuroCalendar extends RangeDatepicker {
10488
11170
 
10489
11171
  if (monthElem) {
10490
11172
  const prefersReducedMotion = window.matchMedia('(prefers-reduced-motion: reduce)').matches;
10491
- monthElem.scrollIntoView({ block: 'nearest', behavior: prefersReducedMotion ? 'instant' : 'smooth' });
11173
+ monthElem.scrollIntoView({ block: 'nearest',
11174
+ behavior: prefersReducedMotion ? 'instant' : 'smooth' });
10492
11175
  }
10493
11176
  }
10494
11177
 
10495
11178
  /**
10496
- * Announces a date selection via the live region.
11179
+ * Returns (and lazily creates) an aria-live region inside the dropdown's
11180
+ * <dialog> element. This placement is critical for two reasons:
11181
+ *
11182
+ * 1. Inside the dialog's accessible scope — dialog.showModal() makes
11183
+ * everything outside the top-layer dialog inert, and desktop modal
11184
+ * mode uses _setPageInert() on document.body siblings. A live region
11185
+ * on document.body would be invisible to screen readers in both cases.
11186
+ *
11187
+ * 2. Not nested in shadow DOM — Chrome inconsistently observes aria-live
11188
+ * mutations inside shadow DOM across machines and versions. The dialog
11189
+ * element is only one shadow root deep (the dropdown bib's shadow DOM),
11190
+ * which Chrome handles reliably. The calendar's own shadow DOM (nested
11191
+ * inside the bib via slotting) is two+ levels deep and unreliable.
11192
+ *
11193
+ * @private
11194
+ * @returns {HTMLElement} The live region element.
11195
+ */
11196
+ getOrCreateLiveRegion() {
11197
+ if (this._liveRegion && this._liveRegion.isConnected) {
11198
+ return this._liveRegion;
11199
+ }
11200
+
11201
+ // Access the dialog element inside the dropdown bib's shadow DOM.
11202
+ const dialog = this.dropdown?.bibContent?.shadowRoot?.querySelector('dialog');
11203
+ if (!dialog) {
11204
+ return null;
11205
+ }
11206
+
11207
+ // Check if we already created one for this calendar instance.
11208
+ const regionId = `auro-calendar-live-${this._calendarInstanceId}`;
11209
+ const existing = dialog.querySelector(`#${regionId}`);
11210
+ if (existing) {
11211
+ this._liveRegion = existing;
11212
+ return existing;
11213
+ }
11214
+
11215
+ const el = document.createElement('div');
11216
+ el.id = regionId;
11217
+ el.setAttribute('aria-live', 'assertive');
11218
+ el.setAttribute('aria-atomic', 'true');
11219
+ el.style.cssText = 'position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;';
11220
+ dialog.appendChild(el);
11221
+
11222
+ this._liveRegion = el;
11223
+ return el;
11224
+ }
11225
+
11226
+ /**
11227
+ * Removes the live region when this calendar is disconnected.
11228
+ * @private
11229
+ * @returns {void}
11230
+ */
11231
+ disconnectedCallback() {
11232
+ super.disconnectedCallback();
11233
+
11234
+ // Cancel any pending announcements so they don't fire after teardown.
11235
+ if (this._announceRafId) {
11236
+ cancelAnimationFrame(this._announceRafId);
11237
+ this._announceRafId = null;
11238
+ }
11239
+ if (this._focusAnnounceTimer) {
11240
+ clearTimeout(this._focusAnnounceTimer);
11241
+ this._focusAnnounceTimer = null;
11242
+ }
11243
+
11244
+ if (this._liveRegion && this._liveRegion.isConnected) {
11245
+ this._liveRegion.remove();
11246
+ }
11247
+ this._liveRegion = null;
11248
+ }
11249
+
11250
+ /**
11251
+ * Announces a date selection or focus change via the live region.
11252
+ * Uses requestAnimationFrame to ensure the clear and set happen in
11253
+ * separate rendering frames — Chrome may coalesce synchronous or
11254
+ * microtask-deferred mutations into a single accessibility tree update.
10497
11255
  * @private
10498
11256
  * @param {String} dateStr - The localized date string to announce.
10499
11257
  * @returns {void}
10500
11258
  */
10501
11259
  announceSelection(dateStr) {
10502
- const liveRegion = this.shadowRoot.querySelector('#calendar-live-region');
10503
- if (liveRegion) {
10504
- liveRegion.textContent = '';
10505
- // Use microtask to ensure SR picks up the change
10506
- Promise.resolve().then(() => {
11260
+ // Cancel any previously queued rAF announcement so a rapid
11261
+ // sequence of calls (e.g. bib open → month nav) only announces
11262
+ // the last one.
11263
+ if (this._announceRafId) {
11264
+ cancelAnimationFrame(this._announceRafId);
11265
+ }
11266
+ const liveRegion = this.getOrCreateLiveRegion();
11267
+ if (!liveRegion) {
11268
+ return;
11269
+ }
11270
+
11271
+ // Double-rAF: clear in frame N, set in frame N+1. Chrome batches
11272
+ // accessibility tree mutations within a single animation frame, so
11273
+ // a same-frame clear+set can be coalesced into a no-op if the new
11274
+ // value matches a recently announced string. Splitting across two
11275
+ // frames guarantees Chrome sees two distinct tree states and fires
11276
+ // a new accessibility event for the content change.
11277
+ liveRegion.textContent = '';
11278
+ this._announceRafId = requestAnimationFrame(() => {
11279
+ this._announceRafId = requestAnimationFrame(() => {
10507
11280
  liveRegion.textContent = dateStr;
11281
+ this._announceRafId = null;
10508
11282
  });
11283
+ });
11284
+ }
11285
+
11286
+ /**
11287
+ * Debounced version of announceSelection for focus navigation.
11288
+ * Uses the assertive live region with a 150ms debounce so only the
11289
+ * final cell after rapid arrow-key traversal is announced. We
11290
+ * originally tried aria-live="polite" here, but VoiceOver treats
11291
+ * polite as "wait until idle" — which never happens during active
11292
+ * keyboard navigation — so the announcements were silently dropped.
11293
+ * @private
11294
+ * @param {String} dateStr - The localized date string to announce.
11295
+ * @returns {void}
11296
+ */
11297
+ announceFocusDebounced(dateStr) {
11298
+ if (this._focusAnnounceTimer) {
11299
+ clearTimeout(this._focusAnnounceTimer);
10509
11300
  }
11301
+ this._focusAnnounceTimer = setTimeout(() => {
11302
+ this.announceSelection(dateStr);
11303
+ this._focusAnnounceTimer = null;
11304
+ }, 150);
10510
11305
  }
10511
11306
 
10512
11307
  /**
@@ -10519,12 +11314,16 @@ class AuroCalendar extends RangeDatepicker {
10519
11314
  const date = new Date(parseInt(timestamp, 10) * 1000);
10520
11315
  const localeCode = this.locale?.code || undefined;
10521
11316
  const formatter = new Intl.DateTimeFormat(localeCode, {
10522
- weekday: 'long', year: 'numeric', month: 'long', day: 'numeric'
11317
+ weekday: 'long',
11318
+ year: 'numeric',
11319
+ month: 'long',
11320
+ day: 'numeric'
10523
11321
  });
10524
11322
  return formatter.format(date);
10525
11323
  }
10526
11324
 
10527
11325
  firstUpdated() {
11326
+
10528
11327
  this.addEventListener('date-from-changed', () => {
10529
11328
  this.dispatchEvent(new CustomEvent('auroCalendar-dateSelected', {
10530
11329
  bubbles: true,
@@ -10553,6 +11352,11 @@ class AuroCalendar extends RangeDatepicker {
10553
11352
  this.addEventListener('calendar-cell-activate', (event) => {
10554
11353
  this.handleCellActivate(event);
10555
11354
  });
11355
+
11356
+ // Listen for cell focus events (SR announcements + range preview)
11357
+ this.addEventListener('calendar-cell-focused', (event) => {
11358
+ this.handleCellFocused(event);
11359
+ });
10556
11360
  }
10557
11361
 
10558
11362
  injectSlot(slotName, nodes) {
@@ -10579,7 +11383,7 @@ class AuroCalendar extends RangeDatepicker {
10579
11383
  if (changedProperties.has('visible')) {
10580
11384
  if (this.visible) {
10581
11385
  // Compute the active date eagerly from data — no DOM needed.
10582
- if (this.activeCellDate == null) {
11386
+ if (this.activeCellDate == null) { // eslint-disable-line no-eq-null, eqeqeq
10583
11387
  this.activeCellDate = this.computeActiveDate();
10584
11388
  }
10585
11389
 
@@ -10647,7 +11451,7 @@ class AuroCalendar extends RangeDatepicker {
10647
11451
  </button>
10648
11452
  ` : undefined}
10649
11453
  </div>
10650
- <div class="calendars">
11454
+ <div id="calendarGrid" class="calendars" role="group" tabindex="0" @keydown="${this.handleGridKeyDown}" @focusin="${this.handleGridFocusIn}" @focusout="${this.handleGridFocusOut}" @calendar-month-mouseleave="${this.clearRangePreview}">
10651
11455
  ${this.renderAllCalendars()}
10652
11456
  </div>
10653
11457
  </div>
@@ -14556,7 +15360,7 @@ let AuroHelpText$2 = class AuroHelpText extends i$1 {
14556
15360
  }
14557
15361
  };
14558
15362
 
14559
- var formkitVersion$1 = '202606011922';
15363
+ var formkitVersion$1 = '202606022350';
14560
15364
 
14561
15365
  let AuroElement$2 = class AuroElement extends i$1 {
14562
15366
  static get properties() {
@@ -15549,16 +16353,20 @@ class AuroDropdown extends AuroElement$2 {
15549
16353
 
15550
16354
  // Walk up the ancestor chain, inerting siblings at each level
15551
16355
  // to ensure the entire page outside the host subtree is inert.
16356
+ // Uses a reference counter (data-auro-inert-count) so multiple
16357
+ // simultaneous modal dropdowns share inert state safely.
15552
16358
  let current = host;
15553
16359
  while (current.parentElement) {
15554
16360
  const parent = current.parentElement;
15555
16361
  for (const sibling of parent.children) {
15556
16362
  if (sibling !== current) {
15557
- this._inertSiblings.push({
15558
- element: sibling,
15559
- wasInert: sibling.inert
15560
- });
16363
+ const count = parseInt(sibling.dataset.auroInertCount || '0', 10);
16364
+ if (count === 0) {
16365
+ sibling.dataset.auroInertWas = sibling.inert ? 'true' : 'false';
16366
+ }
16367
+ sibling.dataset.auroInertCount = String(count + 1);
15561
16368
  sibling.inert = true;
16369
+ this._inertSiblings.push(sibling);
15562
16370
  }
15563
16371
  }
15564
16372
  current = parent;
@@ -15567,14 +16375,23 @@ class AuroDropdown extends AuroElement$2 {
15567
16375
 
15568
16376
  /**
15569
16377
  * Restores `inert` state on siblings that were tracked by `_setPageInert`.
15570
- * Preserves the previous inert state so externally-inerted elements are
15571
- * not inadvertently re-enabled.
16378
+ * Uses reference counting so inert is only cleared when the last modal
16379
+ * dropdown releases a given element. Preserves the original inert state
16380
+ * so externally-inerted elements are not inadvertently re-enabled.
15572
16381
  * @private
15573
16382
  */
15574
16383
  _clearPageInert() {
15575
16384
  if (this._inertSiblings) {
15576
- for (const entry of this._inertSiblings) {
15577
- entry.element.inert = entry.wasInert;
16385
+ for (const sibling of this._inertSiblings) {
16386
+ const count = parseInt(sibling.dataset.auroInertCount || '1', 10) - 1;
16387
+ if (count <= 0) {
16388
+ const wasInert = sibling.dataset.auroInertWas === 'true';
16389
+ delete sibling.dataset.auroInertCount;
16390
+ delete sibling.dataset.auroInertWas;
16391
+ sibling.inert = wasInert;
16392
+ } else {
16393
+ sibling.dataset.auroInertCount = String(count);
16394
+ }
15578
16395
  }
15579
16396
  this._inertSiblings = undefined;
15580
16397
  }
@@ -19899,109 +20716,236 @@ class AuroInputUtilities {
19899
20716
  }
19900
20717
  }
19901
20718
 
19902
- class DateFormatter {
20719
+ /**
20720
+ * @description Splits a date string into its parts according to the provided format. Does NOT validate that the result is a real calendar date — use `parseDate` when validation is required.
20721
+ * @param {string} dateStr - Date string to parse.
20722
+ * @param {string} format - Date format to parse.
20723
+ * @returns {{ month?: string, day?: string, year?: string }|undefined}
20724
+ */
20725
+ function getDateParts(dateStr, format) {
20726
+ if (!dateStr) {
20727
+ return undefined;
20728
+ }
19903
20729
 
19904
- constructor() {
20730
+ const formatSeparatorMatch = format.match(/[/.-]/);
20731
+ let valueParts;
20732
+ let formatParts;
19905
20733
 
19906
- /**
19907
- * @description Parses a date string into its components.
19908
- * @param {string} dateStr - Date string to parse.
19909
- * @param {string} format - Date format to parse.
19910
- * @returns {Object<key["month" | "day" | "year"]: number>|undefined}
19911
- */
19912
- this.parseDate = (dateStr, format = 'mm/dd/yyyy') => {
20734
+ if (formatSeparatorMatch) {
20735
+ const separator = formatSeparatorMatch[0];
20736
+ valueParts = dateStr.split(separator);
20737
+ formatParts = format.split(separator);
20738
+ } else {
20739
+ if (dateStr.match(/[/.-]/)) {
20740
+ throw new Error(
20741
+ "AuroDatepickerUtilities | parseDate: Date string has no separators",
20742
+ );
20743
+ }
19913
20744
 
19914
- // Guard Clause: Date string is defined
19915
- if (!dateStr) {
19916
- return undefined;
19917
- }
20745
+ if (dateStr.length !== format.length) {
20746
+ throw new Error(
20747
+ "AuroDatepickerUtilities | parseDate: Date string and format length do not match",
20748
+ );
20749
+ }
19918
20750
 
19919
- // Assume the separator is a "/" a defined in our code base
19920
- const separator = '/';
20751
+ valueParts = [dateStr];
20752
+ formatParts = [format];
20753
+ }
19921
20754
 
19922
- // Get the parts of the date and format
19923
- const valueParts = dateStr.split(separator);
19924
- const formatParts = format.split(separator);
20755
+ if (valueParts.length !== formatParts.length) {
20756
+ throw new Error(
20757
+ `AuroDatepickerUtilities | parseDate: Date string and format do not match : ${dateStr} vs ${format}`,
20758
+ );
20759
+ }
19925
20760
 
19926
- // Check if the value and format have the correct number of parts
19927
- if (valueParts.length !== formatParts.length) {
19928
- throw new Error('AuroDatepickerUtilities | parseDate: Date string and format length do not match');
19929
- }
20761
+ const result = formatParts.reduce((acc, part, index) => {
20762
+ const value = valueParts[index];
19930
20763
 
19931
- // Holds the result to be returned
19932
- const result = formatParts.reduce((acc, part, index) => {
19933
- const value = valueParts[index];
20764
+ if (/m/iu.test(part) && part.length === value.length) {
20765
+ acc.month = value;
20766
+ } else if (/d/iu.test(part) && part.length === value.length) {
20767
+ acc.day = value;
20768
+ } else if (/y/iu.test(part) && part.length === value.length) {
20769
+ acc.year = value;
20770
+ }
19934
20771
 
19935
- if ((/m/iu).test(part)) {
19936
- acc.month = value;
19937
- } else if ((/d/iu).test(part)) {
19938
- acc.day = value;
19939
- } else if ((/y/iu).test(part)) {
19940
- acc.year = value;
19941
- }
20772
+ return acc;
20773
+ }, {});
19942
20774
 
19943
- return acc;
19944
- }, {});
20775
+ if (!result.month && !result.day && !result.year) {
20776
+ throw new Error(
20777
+ "AuroDatepickerUtilities | parseDate: Unable to parse date string",
20778
+ );
20779
+ }
19945
20780
 
19946
- // If we found all the parts, return the result
19947
- if (result.month && result.year) {
19948
- return result;
19949
- }
20781
+ return result;
20782
+ }
19950
20783
 
19951
- // Throw an error to let the dev know we were unable to parse the date string
19952
- throw new Error('AuroDatepickerUtilities | parseDate: Unable to parse date string');
19953
- };
20784
+ function isCalendarDate(year, month, day) {
20785
+ let yearNumber = Number(year);
20786
+ const monthNumber = Number(month);
20787
+ const dayNumber = Number(day);
19954
20788
 
19955
- /**
19956
- * Convert a date object to string format.
19957
- * @param {Object} date - Date to convert to string.
19958
- * @param {String} locale - Optional locale to use for the date string. Defaults to user's locale.
19959
- * @returns {String} Returns the date as a string.
19960
- */
19961
- this.getDateAsString = (date, locale = undefined) => date.toLocaleDateString(locale, {
19962
- year: "numeric",
19963
- month: "2-digit",
19964
- day: "2-digit",
19965
- });
20789
+ if (
20790
+ !Number.isInteger(yearNumber) ||
20791
+ !Number.isInteger(monthNumber) ||
20792
+ !Number.isInteger(dayNumber)
20793
+ ) {
20794
+ return false;
20795
+ }
19966
20796
 
19967
- /**
19968
- * Converts a date string to a North American date format.
19969
- * @param {String} dateStr - Date to validate.
19970
- * @param {String} format - Date format to validate against.
19971
- * @returns {Boolean}
19972
- */
19973
- this.toNorthAmericanFormat = (dateStr, format) => {
20797
+ // Handle 2-digit years by converting them to 4-digit years based on a cutoff. This allows for parsing of 2-digit year formats while still validating the resulting date.
20798
+ if (yearNumber < 100 && yearNumber >= 50) {
20799
+ yearNumber += 1900;
20800
+ } else if (yearNumber < 50) {
20801
+ yearNumber += 2000;
20802
+ }
20803
+
20804
+ const stringified = `${String(yearNumber).padStart(4, "0")}-${String(monthNumber).padStart(2, "0")}-${String(dayNumber).padStart(2, "0")}`;
20805
+ const date = new Date(stringified.replace(/[.-]/g, "/"));
20806
+
20807
+ return (
20808
+ !Number.isNaN(date.getTime()) && toISOFormatString(date) === stringified
20809
+ );
20810
+ }
20811
+
20812
+ /**
20813
+ * @description Parses a date string into its components and validates that the result is a real calendar date. Use `getDateParts` instead when raw splitting without validation is needed (e.g. for in-progress input).
20814
+ *
20815
+ * Partial formats are supported: components absent from `format` default to `year → "0"`,
20816
+ * `month → "01"`, `day → "01"` for calendar validation only. The returned object contains
20817
+ * only the fields actually present in the format string — missing fields are never injected.
20818
+ * @param {string} dateStr - Date string to parse.
20819
+ * @param {string} format - Date format to parse.
20820
+ * @returns {{ month?: string, day?: string, year?: string }|undefined}
20821
+ * @throws {Error} Throws when the parsed result does not represent a valid calendar date.
20822
+ */
20823
+ function parseDate(dateStr, format = "mm/dd/yyyy") {
20824
+ if (!dateStr || !format) {
20825
+ return undefined;
20826
+ }
20827
+ const result = getDateParts(dateStr.trim(), format);
20828
+
20829
+ if (!result) {
20830
+ return undefined;
20831
+ }
20832
+
20833
+ const lowerFormat = format.toLowerCase();
20834
+ const year = lowerFormat.includes("yy") ? result.year : "0";
20835
+ const month = lowerFormat.includes("mm") ? result.month : "01";
20836
+ const day = lowerFormat.includes("dd") ? result.day : "01";
20837
+
20838
+ if (isCalendarDate(year, month, day)) {
20839
+ return result;
20840
+ }
20841
+
20842
+ throw new Error(
20843
+ `AuroDatepickerUtilities | parseDate: Date string is not a valid date ${JSON.stringify(result)} with format ${format}`,
20844
+ );
20845
+ }
20846
+
20847
+ /**
20848
+ * Convert a date object to string format.
20849
+ * @param {Object} date - Date to convert to string.
20850
+ * @param {String} locale - Optional locale to use for the date string. Defaults to user's locale.
20851
+ * @returns {String} Returns the date as a string.
20852
+ */
20853
+ function getDateAsString(date, locale = undefined) {
20854
+ return date.toLocaleDateString(locale, {
20855
+ year: "numeric",
20856
+ month: "2-digit",
20857
+ day: "2-digit",
20858
+ });
20859
+ }
20860
+
20861
+ /**
20862
+ * Converts a date string to a North American date format.
20863
+ * @param {String} dateStr - Date to validate.
20864
+ * @param {String} format - Date format to validate against.
20865
+ * @returns {String}
20866
+ */
20867
+ function toNorthAmericanFormat$1(dateStr, format) {
20868
+ if (format === "mm/dd/yyyy") {
20869
+ return dateStr;
20870
+ }
19974
20871
 
19975
- if (format === 'mm/dd/yyyy') {
19976
- return dateStr;
19977
- }
20872
+ const parsedDate = parseDate(dateStr, format);
19978
20873
 
19979
- const parsedDate = this.parseDate(dateStr, format);
20874
+ if (!parsedDate) {
20875
+ throw new Error(
20876
+ "AuroDatepickerUtilities | toNorthAmericanFormat: Unable to parse date string",
20877
+ );
20878
+ }
19980
20879
 
19981
- if (!parsedDate) {
19982
- throw new Error('AuroDatepickerUtilities | toNorthAmericanFormat: Unable to parse date string');
19983
- }
20880
+ const { month, day, year } = parsedDate;
19984
20881
 
19985
- const { month, day, year } = parsedDate;
20882
+ return [month, day, year].filter(Boolean).join("/");
20883
+ }
19986
20884
 
19987
- const dateParts = [];
19988
- if (month) {
19989
- dateParts.push(month);
19990
- }
20885
+ /**
20886
+ * Validates that a date string matches the provided format and represents a real calendar date.
20887
+ *
20888
+ * @param {string} dateStr - Date string to validate.
20889
+ * @param {string} [format="yyyy-mm-dd"] - Format of the date string.
20890
+ * @returns {boolean} True when the date string is valid for the provided format, otherwise false.
20891
+ */
20892
+ function isValidDate(dateStr, format = "yyyy-mm-dd") {
20893
+ try {
20894
+ if (typeof dateStr !== "string" || !dateStr || format?.length < 8) {
20895
+ return false;
20896
+ }
19991
20897
 
19992
- if (day) {
19993
- dateParts.push(day);
19994
- }
20898
+ if (parseDate(dateStr, format)) {
20899
+ return true;
20900
+ }
20901
+ } catch (error) {
20902
+ return false;
20903
+ }
20904
+ return false;
20905
+ }
19995
20906
 
19996
- if (year) {
19997
- dateParts.push(year);
19998
- }
20907
+ /**
20908
+ * Converts a JavaScript Date instance to a simple ISO-like date string. This returns only the calendar date portion without any time or timezone information.
20909
+ *
20910
+ * @param {Date} date - Date instance to convert to an ISO-like string.
20911
+ * @returns {string} A string in the format "yyyy-mm-dd" representing the provided date.
20912
+ * @throws {Error} Throws an error when the input is not a valid Date instance.
20913
+ */
20914
+ function toISOFormatString(date) {
20915
+ if (!(date instanceof Date) || Number.isNaN(date.getTime())) {
20916
+ throw new Error(
20917
+ "AuroDatepickerUtilities | toISOFormatString: Input must be a valid Date instance",
20918
+ );
20919
+ }
20920
+ return `${String(date.getFullYear()).padStart(4, "0")}-${String(date.getMonth() + 1).padStart(2, "0")}-${String(date.getDate()).padStart(2, "0")}`;
20921
+ }
19999
20922
 
20000
- return dateParts.join('/');
20001
- };
20923
+ /**
20924
+ * Converts a date string into a JavaScript Date instance. This method supports ISO formatted strings and other formats that can be parsed by the formatter.
20925
+ *
20926
+ * @param {String} dateStr - Date string to convert into a Date object.
20927
+ * @param {String} format - Date format used to parse the string when it is not in ISO format.
20928
+ * @returns {Date|null} Returns a Date instance for valid input or null for non-string input.
20929
+ * @throws {Error} Throws when parsing fails for non-ISO string input.
20930
+ */
20931
+ function stringToDateInstance(dateStr, format = "yyyy-mm-dd") {
20932
+ if (typeof dateStr !== "string") {
20933
+ return null;
20002
20934
  }
20935
+
20936
+ const { month, day, year } = parseDate(dateStr, format);
20937
+ return new Date(`${year}/${month}/${day}`);
20003
20938
  }
20004
- const dateFormatter = new DateFormatter();
20939
+
20940
+ const dateFormatter = {
20941
+ parseDate,
20942
+ getDateParts,
20943
+ getDateAsString,
20944
+ toNorthAmericanFormat: toNorthAmericanFormat$1,
20945
+ isValidDate,
20946
+ toISOFormatString,
20947
+ stringToDateInstance,
20948
+ };
20005
20949
 
20006
20950
  // filepath: dateConstraints.mjs
20007
20951
  const DATE_UTIL_CONSTRAINTS = {
@@ -20073,12 +21017,11 @@ class AuroDateUtilitiesBase {
20073
21017
  /* eslint-disable no-magic-numbers */
20074
21018
 
20075
21019
  class AuroDateUtilities extends AuroDateUtilitiesBase {
20076
-
20077
21020
  /**
20078
21021
  * Returns the current century.
20079
21022
  * @returns {String} The current century.
20080
21023
  */
20081
- getCentury () {
21024
+ getCentury() {
20082
21025
  return String(new Date().getFullYear()).slice(0, 2);
20083
21026
  }
20084
21027
 
@@ -20087,14 +21030,12 @@ class AuroDateUtilities extends AuroDateUtilitiesBase {
20087
21030
  * @param {String} year - The year to convert to four digits.
20088
21031
  * @returns {String} The four digit year.
20089
21032
  */
20090
- getFourDigitYear (year) {
20091
-
21033
+ getFourDigitYear(year) {
20092
21034
  const strYear = String(year).trim();
20093
21035
  return strYear.length <= 2 ? this.getCentury() + strYear : strYear;
20094
21036
  }
20095
21037
 
20096
21038
  constructor() {
20097
-
20098
21039
  super();
20099
21040
 
20100
21041
  /**
@@ -20103,7 +21044,8 @@ class AuroDateUtilities extends AuroDateUtilitiesBase {
20103
21044
  * @param {Object} date2 - Second date to compare.
20104
21045
  * @returns {Boolean} Returns true if the dates match.
20105
21046
  */
20106
- this.datesMatch = (date1, date2) => new Date(date1).getTime() === new Date(date2).getTime();
21047
+ this.datesMatch = (date1, date2) =>
21048
+ new Date(date1).getTime() === new Date(date2).getTime();
20107
21049
 
20108
21050
  /**
20109
21051
  * Returns true if value passed in is a valid date.
@@ -20112,53 +21054,41 @@ class AuroDateUtilities extends AuroDateUtilitiesBase {
20112
21054
  * @returns {Boolean}
20113
21055
  */
20114
21056
  this.validDateStr = (date, format) => {
20115
-
20116
21057
  // The length we expect the date string to be
20117
- const dateStrLength = format.length;
21058
+ const dateStrLength = format?.length || 0;
20118
21059
 
20119
21060
  // Guard Clause: Date and format are defined
20120
21061
  if (typeof date === "undefined" || typeof format === "undefined") {
20121
- throw new Error('AuroDatepickerUtilities | validateDateStr: Date and format are required');
21062
+ throw new Error(
21063
+ "AuroDatepickerUtilities | validateDateStr: Date and format are required",
21064
+ );
20122
21065
  }
20123
21066
 
20124
21067
  // Guard Clause: Date should be of type string
20125
21068
  if (typeof date !== "string") {
20126
- throw new Error('AuroDatepickerUtilities | validateDateStr: Date must be a string');
21069
+ throw new Error(
21070
+ "AuroDatepickerUtilities | validateDateStr: Date must be a string",
21071
+ );
20127
21072
  }
20128
21073
 
20129
21074
  // Guard Clause: Format should be of type string
20130
21075
  if (typeof format !== "string") {
20131
- throw new Error('AuroDatepickerUtilities | validateDateStr: Format must be a string');
21076
+ throw new Error(
21077
+ "AuroDatepickerUtilities | validateDateStr: Format must be a string",
21078
+ );
20132
21079
  }
20133
21080
 
20134
21081
  // Guard Clause: Length is what we expect it to be
20135
21082
  if (date.length !== dateStrLength) {
20136
21083
  return false;
20137
21084
  }
20138
- // Get a formatted date string and parse it
20139
- const dateParts = dateFormatter.parseDate(date, format);
20140
-
20141
- // Guard Clause: Date parse succeeded
20142
- if (!dateParts) {
20143
- return false;
20144
- }
20145
21085
 
20146
- // Create the expected date string based on the date parts
20147
- const expectedDateStr = `${dateParts.month}/${dateParts.day || "01"}/${this.getFourDigitYear(dateParts.year)}`;
20148
-
20149
- // Generate a date object that we will extract a string date from to compare to the passed in date string
20150
- const dateObj = new Date(this.getFourDigitYear(dateParts.year), dateParts.month - 1, dateParts.day || 1);
20151
-
20152
- // Get the date string of the date object we created from the string date
20153
- const actualDateStr = dateFormatter.getDateAsString(dateObj, "en-US");
20154
-
20155
- // Guard Clause: Generated date matches date string input
20156
- if (expectedDateStr !== actualDateStr) {
21086
+ // Get a formatted date string and parse and validate it
21087
+ try {
21088
+ return Boolean(dateFormatter.parseDate(date, format));
21089
+ } catch (error) {
20157
21090
  return false;
20158
21091
  }
20159
-
20160
- // If we passed all other checks, we can assume the date is valid
20161
- return true;
20162
21092
  };
20163
21093
 
20164
21094
  /**
@@ -20168,10 +21098,11 @@ class AuroDateUtilities extends AuroDateUtilitiesBase {
20168
21098
  * @returns {boolean}
20169
21099
  */
20170
21100
  this.dateAndFormatMatch = (value, format) => {
20171
-
20172
21101
  // Ensure we have both values we need to do the comparison
20173
21102
  if (!value || !format) {
20174
- throw new Error('AuroFormValidation | dateFormatMatch: value and format are required');
21103
+ throw new Error(
21104
+ "AuroFormValidation | dateFormatMatch: value and format are required",
21105
+ );
20175
21106
  }
20176
21107
 
20177
21108
  // If the lengths are different, they cannot match
@@ -20180,11 +21111,10 @@ class AuroDateUtilities extends AuroDateUtilitiesBase {
20180
21111
  }
20181
21112
 
20182
21113
  // Get the parts of the date
20183
- const dateParts = dateFormatter.parseDate(value, format);
21114
+ const dateParts = dateFormatter.getDateParts(value, format);
20184
21115
 
20185
21116
  // Validator for day
20186
21117
  const dayValueIsValid = (day) => {
20187
-
20188
21118
  // Guard clause: if there is no day in the dateParts, we can ignore this check.
20189
21119
  if (!dateParts.day) {
20190
21120
  return true;
@@ -20200,7 +21130,9 @@ class AuroDateUtilities extends AuroDateUtilitiesBase {
20200
21130
 
20201
21131
  // Guard clause: ensure day is a valid integer
20202
21132
  if (Number.isNaN(numDay)) {
20203
- throw new Error('AuroDatepickerUtilities | dayValueIsValid: Unable to parse day value integer');
21133
+ throw new Error(
21134
+ "AuroDatepickerUtilities | dayValueIsValid: Unable to parse day value integer",
21135
+ );
20204
21136
  }
20205
21137
 
20206
21138
  // Guard clause: ensure day is within the valid range
@@ -20214,6 +21146,10 @@ class AuroDateUtilities extends AuroDateUtilitiesBase {
20214
21146
 
20215
21147
  // Validator for month
20216
21148
  const monthValueIsValid = (month) => {
21149
+ // Guard clause: if there is no month in the dateParts, we can ignore this check.
21150
+ if (!dateParts.month) {
21151
+ return true;
21152
+ }
20217
21153
 
20218
21154
  // Guard clause: ensure month exists.
20219
21155
  if (!month) {
@@ -20225,7 +21161,9 @@ class AuroDateUtilities extends AuroDateUtilitiesBase {
20225
21161
 
20226
21162
  // Guard clause: ensure month is a valid integer
20227
21163
  if (Number.isNaN(numMonth)) {
20228
- throw new Error('AuroDatepickerUtilities | monthValueIsValid: Unable to parse month value integer');
21164
+ throw new Error(
21165
+ "AuroDatepickerUtilities | monthValueIsValid: Unable to parse month value integer",
21166
+ );
20229
21167
  }
20230
21168
 
20231
21169
  // Guard clause: ensure month is within the valid range
@@ -20239,6 +21177,10 @@ class AuroDateUtilities extends AuroDateUtilitiesBase {
20239
21177
 
20240
21178
  // Validator for year
20241
21179
  const yearIsValid = (_year) => {
21180
+ // Guard clause: if there is no year in the dateParts, we can ignore this check.
21181
+ if (!dateParts.year) {
21182
+ return true;
21183
+ }
20242
21184
 
20243
21185
  // Guard clause: ensure year exists.
20244
21186
  if (!_year) {
@@ -20253,7 +21195,9 @@ class AuroDateUtilities extends AuroDateUtilitiesBase {
20253
21195
 
20254
21196
  // Guard clause: ensure year is a valid integer
20255
21197
  if (Number.isNaN(numYear)) {
20256
- throw new Error('AuroDatepickerUtilities | yearValueIsValid: Unable to parse year value integer');
21198
+ throw new Error(
21199
+ "AuroDatepickerUtilities | yearValueIsValid: Unable to parse year value integer",
21200
+ );
20257
21201
  }
20258
21202
 
20259
21203
  // Guard clause: ensure year is within the valid range
@@ -20269,7 +21213,7 @@ class AuroDateUtilities extends AuroDateUtilitiesBase {
20269
21213
  const checks = [
20270
21214
  monthValueIsValid(dateParts.month),
20271
21215
  dayValueIsValid(dateParts.day),
20272
- yearIsValid(dateParts.year)
21216
+ yearIsValid(dateParts.year),
20273
21217
  ];
20274
21218
 
20275
21219
  // If any of the checks failed, the date format does not match and the result is invalid
@@ -20303,10 +21247,7 @@ const {
20303
21247
  } = dateUtilities;
20304
21248
 
20305
21249
  const {
20306
- toNorthAmericanFormat,
20307
- parseDate,
20308
- getDateAsString
20309
- } = dateFormatter;
21250
+ toNorthAmericanFormat} = dateFormatter;
20310
21251
 
20311
21252
  // Copyright (c) Alaska Air. All right reserved. Licensed under the Apache-2.0 license
20312
21253
  // See LICENSE in the project root for license information.
@@ -22521,7 +23462,7 @@ let AuroHelpText$1 = class AuroHelpText extends i$1 {
22521
23462
  }
22522
23463
  };
22523
23464
 
22524
- var formkitVersion = '202606011922';
23465
+ var formkitVersion = '202606022350';
22525
23466
 
22526
23467
  // Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
22527
23468
  // See LICENSE in the project root for license information.
@@ -23877,6 +24818,7 @@ class AuroDatePicker extends AuroElement {
23877
24818
  delegatesFocus: true,
23878
24819
  };
23879
24820
  }
24821
+
23880
24822
  constructor() {
23881
24823
  super();
23882
24824
 
@@ -24044,7 +24986,7 @@ class AuroDatePicker extends AuroElement {
24044
24986
 
24045
24987
  /**
24046
24988
  * Defines whether the component will be on lighter or darker backgrounds.
24047
- * @property {'default', 'inverse'}
24989
+ * @type {'default' | 'inverse'}
24048
24990
  * @default 'default'
24049
24991
  */
24050
24992
  appearance: {
@@ -24061,6 +25003,22 @@ class AuroDatePicker extends AuroElement {
24061
25003
  reflect: true
24062
25004
  },
24063
25005
 
25006
+ /**
25007
+ * Array of dates that cannot be selected. Dates should be in ISO format (YYYY-MM-DD).
25008
+ */
25009
+ blackoutDates: {
25010
+ type: Array,
25011
+ reflect: true
25012
+ },
25013
+
25014
+ /**
25015
+ * Label announced for blackout (disabled but in-range) date cells.
25016
+ */
25017
+ blackoutLabel: {
25018
+ type: String,
25019
+ reflect: true
25020
+ },
25021
+
24064
25022
  /**
24065
25023
  * The last date that may be displayed in the calendar.
24066
25024
  */
@@ -24116,27 +25074,6 @@ class AuroDatePicker extends AuroElement {
24116
25074
  reflect: true
24117
25075
  },
24118
25076
 
24119
- hasFocus: {
24120
- type: Boolean,
24121
- reflect: false,
24122
- },
24123
-
24124
- /**
24125
- * @private
24126
- */
24127
- hasValue: {
24128
- type: Boolean,
24129
- reflect: false,
24130
- },
24131
-
24132
- /**
24133
- * @private
24134
- */
24135
- hasAllValues: {
24136
- type: Boolean,
24137
- reflect: false
24138
- },
24139
-
24140
25077
  /**
24141
25078
  * Specifies the date format. The default is `mm/dd/yyyy`.
24142
25079
  */
@@ -24158,6 +25095,27 @@ class AuroDatePicker extends AuroElement {
24158
25095
  reflect: true
24159
25096
  },
24160
25097
 
25098
+ /**
25099
+ * @private
25100
+ */
25101
+ hasAllValues: {
25102
+ type: Boolean,
25103
+ reflect: false
25104
+ },
25105
+
25106
+ hasFocus: {
25107
+ type: Boolean,
25108
+ reflect: false,
25109
+ },
25110
+
25111
+ /**
25112
+ * @private
25113
+ */
25114
+ hasValue: {
25115
+ type: Boolean,
25116
+ reflect: false,
25117
+ },
25118
+
24161
25119
  /** Exposes inputmode attribute for input. */
24162
25120
  inputmode: {
24163
25121
  type: String,
@@ -24200,6 +25158,13 @@ class AuroDatePicker extends AuroElement {
24200
25158
  reflect: true
24201
25159
  },
24202
25160
 
25161
+ /**
25162
+ * @private
25163
+ */
25164
+ monthFirst: {
25165
+ type: Boolean
25166
+ },
25167
+
24203
25168
  /**
24204
25169
  * Names of all 12 months to render in the calendar, used for localization of date string in mobile layout.
24205
25170
  */
@@ -24208,25 +25173,26 @@ class AuroDatePicker extends AuroElement {
24208
25173
  },
24209
25174
 
24210
25175
  /**
24211
- * @private
25176
+ * Accessible label for the next month navigation button.
24212
25177
  */
24213
- monthFirst: {
24214
- type: Boolean
25178
+ navLabelNextMonth: {
25179
+ type: String,
25180
+ reflect: true
24215
25181
  },
24216
25182
 
24217
25183
  /**
24218
- * If declared, the bib will NOT flip to an alternate position
24219
- * when there isn't enough space in the specified `placement`.
25184
+ * Accessible label for the previous month navigation button.
24220
25185
  */
24221
- noFlip: {
24222
- type: Boolean,
25186
+ navLabelPrevMonth: {
25187
+ type: String,
24223
25188
  reflect: true
24224
25189
  },
24225
25190
 
24226
25191
  /**
24227
- * If declared, the dropdown will shift its position to avoid being cut off by the viewport.
25192
+ * If declared, the bib will NOT flip to an alternate position
25193
+ * when there isn't enough space in the specified `placement`.
24228
25194
  */
24229
- shift: {
25195
+ noFlip: {
24230
25196
  type: Boolean,
24231
25197
  reflect: true
24232
25198
  },
@@ -24293,17 +25259,9 @@ class AuroDatePicker extends AuroElement {
24293
25259
  },
24294
25260
 
24295
25261
  /**
24296
- * Label announced for the range start date cell.
24297
- */
24298
- rangeLabelStart: {
24299
- type: String,
24300
- reflect: true
24301
- },
24302
-
24303
- /**
24304
- * Label announced for the range end date cell.
25262
+ * Label announced for cells after the range (or after start when no end is selected).
24305
25263
  */
24306
- rangeLabelEnd: {
25264
+ rangeLabelAfterRange: {
24307
25265
  type: String,
24308
25266
  reflect: true
24309
25267
  },
@@ -24317,49 +25275,25 @@ class AuroDatePicker extends AuroElement {
24317
25275
  },
24318
25276
 
24319
25277
  /**
24320
- * Label announced for cells within the selected range.
24321
- */
24322
- rangeLabelInRange: {
24323
- type: String,
24324
- reflect: true
24325
- },
24326
-
24327
- /**
24328
- * Label announced for cells after the range (or after start when no end is selected).
24329
- */
24330
- rangeLabelAfterRange: {
24331
- type: String,
24332
- reflect: true
24333
- },
24334
-
24335
- /**
24336
- * Array of dates that cannot be selected. Dates should be in ISO format (YYYY-MM-DD).
24337
- */
24338
- blackoutDates: {
24339
- type: Array,
24340
- reflect: true
24341
- },
24342
-
24343
- /**
24344
- * Label announced for blackout (disabled but in-range) date cells.
25278
+ * Label announced for the range end date cell.
24345
25279
  */
24346
- blackoutLabel: {
25280
+ rangeLabelEnd: {
24347
25281
  type: String,
24348
25282
  reflect: true
24349
25283
  },
24350
25284
 
24351
25285
  /**
24352
- * Accessible label for the previous month navigation button.
25286
+ * Label announced for cells within the selected range.
24353
25287
  */
24354
- navLabelPrevMonth: {
25288
+ rangeLabelInRange: {
24355
25289
  type: String,
24356
25290
  reflect: true
24357
25291
  },
24358
25292
 
24359
25293
  /**
24360
- * Accessible label for the next month navigation button.
25294
+ * Label announced for the range start date cell.
24361
25295
  */
24362
- navLabelNextMonth: {
25296
+ rangeLabelStart: {
24363
25297
  type: String,
24364
25298
  reflect: true
24365
25299
  },
@@ -24417,6 +25351,14 @@ class AuroDatePicker extends AuroElement {
24417
25351
  type: String
24418
25352
  },
24419
25353
 
25354
+ /**
25355
+ * If declared, the dropdown will shift its position to avoid being cut off by the viewport.
25356
+ */
25357
+ shift: {
25358
+ type: Boolean,
25359
+ reflect: true
25360
+ },
25361
+
24420
25362
  /**
24421
25363
  * Set true to make datepicker stacked style.
24422
25364
  */
@@ -24425,6 +25367,16 @@ class AuroDatePicker extends AuroElement {
24425
25367
  reflect: true
24426
25368
  },
24427
25369
 
25370
+ /**
25371
+ * Indicates whether the datepicker is in a dirty state (has been interacted with).
25372
+ * @private
25373
+ */
25374
+ touched: {
25375
+ type: Boolean,
25376
+ reflect: true,
25377
+ attribute: false
25378
+ },
25379
+
24428
25380
  /**
24429
25381
  * Specifies the `validityState` this element is in.
24430
25382
  */
@@ -24445,16 +25397,6 @@ class AuroDatePicker extends AuroElement {
24445
25397
  */
24446
25398
  valueEnd: {
24447
25399
  type: String
24448
- },
24449
-
24450
- /**
24451
- * Indicates whether the datepicker is in a dirty state (has been interacted with).
24452
- * @private
24453
- */
24454
- touched: {
24455
- type: Boolean,
24456
- reflect: true,
24457
- attribute: false
24458
25400
  }
24459
25401
  };
24460
25402
  }
@@ -24563,8 +25505,9 @@ class AuroDatePicker extends AuroElement {
24563
25505
  }
24564
25506
 
24565
25507
  /**
24566
- * @private
24567
25508
  * Common display value wrapper classes.
25509
+ * @private
25510
+ * @returns {Object} Class map for Lit's classMap directive.
24568
25511
  */
24569
25512
  get commonDisplayValueWrapperClasses() {
24570
25513
  return {
@@ -24732,7 +25675,7 @@ class AuroDatePicker extends AuroElement {
24732
25675
  }
24733
25676
 
24734
25677
  // Compute and mark the active cell
24735
- if (this.calendar.activeCellDate == null) {
25678
+ if (this.calendar.activeCellDate === null || this.calendar.activeCellDate === undefined) {
24736
25679
  this.calendar.activeCellDate = this.calendar.computeActiveDate();
24737
25680
  }
24738
25681
  if (this.calendar.activeCellDate !== undefined) {
@@ -24741,29 +25684,37 @@ class AuroDatePicker extends AuroElement {
24741
25684
 
24742
25685
  // If no cell matched (e.g. centralDate month differs from the rendered
24743
25686
  // range on mobile), fall back to the first rendered enabled cell.
24744
- let activeCell = allCells.find(cell => cell.active);
25687
+ let activeCell = allCells.find((cell) => cell.active);
24745
25688
  if (!activeCell && allCells.length) {
24746
- const fallback = allCells[0];
25689
+ const [fallback] = allCells;
24747
25690
  if (fallback.day) {
24748
25691
  this.calendar.activeCellDate = fallback.day.date;
24749
25692
  this.calendar.setActiveCell(this.calendar.activeCellDate);
24750
- activeCell = allCells.find(cell => cell.active);
25693
+ activeCell = allCells.find((cell) => cell.active);
24751
25694
  }
24752
25695
  }
24753
25696
 
24754
- // Wait for the cell's Lit render to complete so the button's tabindex
24755
- // reflects the active state before we attempt to focus.
25697
+ // Focus the calendar grid wrapper (aria-activedescendant handles
25698
+ // the SR announcement for the active cell).
24756
25699
  if (activeCell) {
24757
- activeCell.updateComplete.then(() => {
24758
- activeCell.hovered = true;
24759
- const btn = activeCell.shadowRoot.querySelector('button:not([aria-hidden])');
24760
- if (btn) {
24761
- btn.setAttribute('tabindex', '0');
24762
- btn.focus({ focusVisible: true });
24763
- } else if (attempts < MAX_ATTEMPTS) {
24764
- requestAnimationFrame(tryFocus);
24765
- }
24766
- });
25700
+ this.calendar.focusActiveCell();
25701
+
25702
+ // Announce the initial active cell via the live region.
25703
+ // Delay the announcement so it arrives after VoiceOver finishes
25704
+ // speaking the focus-change announcement for the grid wrapper.
25705
+ // Without this delay, VoiceOver drops the live region update
25706
+ // because it's already mid-announcement from the focus move.
25707
+ const announcement = this.calendar.buildFocusAnnouncement(activeCell.day.date);
25708
+ setTimeout(() => {
25709
+ this.calendar.announceSelection(announcement);
25710
+ }, 500);
25711
+
25712
+ // On mobile fullscreen, scroll the month list so the active cell's
25713
+ // month is visible. Without this, the list stays scrolled to the
25714
+ // calendarStartDate month which may be far from the active cell.
25715
+ if (this.dropdown.isBibFullscreen) {
25716
+ this.calendar.scrollToActiveCell();
25717
+ }
24767
25718
  } else if (attempts < MAX_ATTEMPTS) {
24768
25719
  requestAnimationFrame(tryFocus);
24769
25720
  }
@@ -24913,14 +25864,35 @@ class AuroDatePicker extends AuroElement {
24913
25864
  if (bibEl && this.dropdown.isPopoverVisible) {
24914
25865
  bibEl.close();
24915
25866
  bibEl.open(true);
25867
+ }
25868
+
25869
+ // Re-render the calendar with the new fullscreen layout,
25870
+ // then restore focus after the re-render completes.
25871
+ this.calendar.isFullscreen = true;
25872
+ this.calendar.updateComplete.then(() => {
24916
25873
  doubleRaf(() => {
24917
25874
  this.focusActiveCellWhenReady();
24918
25875
  });
24919
- }
25876
+ });
24920
25877
  });
24921
25878
  } else if (!this.dropdown.isBibFullscreen) {
24922
- // Switching from fullscreen to floating — restore trigger accessibility
24923
- this.dropdown.trigger.inert = false;
25879
+ // Switching from fullscreen to floating — only restore trigger accessibility
25880
+ // when the bib is closed or the desktop layout is not a modal. A desktopModal
25881
+ // dropdown keeps the trigger inert while open, matching the desktop-open path.
25882
+ if (!this.dropdown.isPopoverVisible || !this.dropdown.desktopModal) {
25883
+ this.dropdown.trigger.inert = false;
25884
+ }
25885
+
25886
+ // Re-render the calendar with the desktop layout,
25887
+ // then restore focus after the re-render completes.
25888
+ this.dropdown.updateComplete.then(() => {
25889
+ this.calendar.isFullscreen = false;
25890
+ this.calendar.updateComplete.then(() => {
25891
+ doubleRaf(() => {
25892
+ this.focusActiveCellWhenReady();
25893
+ });
25894
+ });
25895
+ });
24924
25896
  }
24925
25897
  });
24926
25898
  }
@@ -25162,12 +26134,14 @@ class AuroDatePicker extends AuroElement {
25162
26134
  }
25163
26135
 
25164
26136
  const formatted = this.util.toNorthAmericanFormat(dateStr, this.format);
25165
- if (!this.util.validDateStr(dateStr, this.format)) return false;
26137
+ if (!this.util.validDateStr(dateStr, this.format)) {
26138
+ return false;
26139
+ }
25166
26140
 
25167
- const d = new Date(formatted);
25168
- const yyyy = d.getFullYear();
25169
- const mm = String(d.getMonth() + 1).padStart(2, '0');
25170
- const dd = String(d.getDate()).padStart(2, '0');
26141
+ const dt = new Date(formatted);
26142
+ const yyyy = dt.getFullYear();
26143
+ const mm = String(dt.getMonth() + 1).padStart(2, '0');
26144
+ const dd = String(dt.getDate()).padStart(2, '0');
25171
26145
  return this.blackoutDates.includes(`${yyyy}-${mm}-${dd}`);
25172
26146
  }
25173
26147
 
@@ -25185,7 +26159,7 @@ class AuroDatePicker extends AuroElement {
25185
26159
 
25186
26160
  // After standard validation, check blackout dates for typed input
25187
26161
  if (this.validity !== 'customError') {
25188
- if (this.isBlackoutDate(this.value) || (this.range && this.isBlackoutDate(this.valueEnd))) {
26162
+ if (this.isBlackoutDate(this.value) || (this.range && this.isBlackoutDate(this.valueEnd))) { // eslint-disable-line no-extra-parens
25189
26163
  const msg = this.setCustomValidityCustomError || 'Selected date is unavailable';
25190
26164
  this.validity = 'customError';
25191
26165
  this.errorMessage = msg;
@@ -25231,7 +26205,13 @@ class AuroDatePicker extends AuroElement {
25231
26205
  // backward compatibility for old format of referenceDates which is a stringified array with - instead of / as separator, e.g. ["10-22-2025","10-23-2025"]
25232
26206
  const stringfiedDates = JSON.stringify(this.referenceDates);
25233
26207
  if (stringfiedDates.includes('-')) {
25234
- this.referenceDates = this.referenceDates.map(date => date.replace(/-/gu, '/' ));
26208
+ this.referenceDates = this.referenceDates.map((date) => date.replace(/-/gu, '/'));
26209
+ }
26210
+
26211
+ // Force calendar cells to re-render with updated reference date state.
26212
+ if (this.calendar) {
26213
+ this.calendar.requestUpdate();
26214
+ this.dispatchEvent(new CustomEvent('auroDatePicker-newSlotContent'));
25235
26215
  }
25236
26216
  }
25237
26217
 
@@ -25820,7 +26800,7 @@ class AuroDatePicker extends AuroElement {
25820
26800
  /**
25821
26801
  * Handles click on the clear button.
25822
26802
  * @private
25823
- * @param {MouseEvent} event
26803
+ * @param {MouseEvent} event - The mouse event from the clear button click.
25824
26804
  * @returns {void}
25825
26805
  */
25826
26806
  handleClearClick(event) {