@aurodesignsystem-dev/auro-formkit 0.0.0-pr1511.0 → 0.0.0-pr1511.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components/checkbox/demo/customize.min.js +1 -1
- package/components/checkbox/demo/getting-started.min.js +1 -1
- package/components/checkbox/demo/index.min.js +1 -1
- package/components/checkbox/dist/index.js +1 -1
- package/components/checkbox/dist/registered.js +1 -1
- package/components/combobox/demo/customize.min.js +4 -4
- package/components/combobox/demo/getting-started.min.js +4 -4
- package/components/combobox/demo/index.min.js +4 -4
- package/components/combobox/dist/index.js +4 -4
- package/components/combobox/dist/registered.js +4 -4
- package/components/counter/demo/customize.min.js +10 -3
- package/components/counter/demo/index.min.js +10 -3
- package/components/counter/dist/index.js +10 -3
- package/components/counter/dist/registered.js +10 -3
- package/components/datepicker/demo/accessibility.md +2 -1
- package/components/datepicker/demo/api.md +63 -62
- package/components/datepicker/demo/customize.md +12 -1
- package/components/datepicker/demo/customize.min.js +609 -200
- package/components/datepicker/demo/index.min.js +609 -200
- package/components/datepicker/dist/{src/auro-calendar-cell.d.ts → auro-calendar-cell.d.ts} +14 -3
- package/components/datepicker/dist/{src/auro-calendar.d.ts → auro-calendar.d.ts} +90 -6
- package/components/datepicker/dist/{src/auro-datepicker.d.ts → auro-datepicker.d.ts} +78 -5
- package/components/datepicker/dist/blackoutUtils.d.ts +43 -0
- package/components/datepicker/dist/index.js +609 -200
- package/components/datepicker/dist/registered.js +609 -200
- package/components/dropdown/demo/customize.min.js +2 -2
- package/components/dropdown/demo/getting-started.min.js +2 -2
- package/components/dropdown/demo/index.min.js +2 -2
- package/components/dropdown/dist/index.js +2 -2
- package/components/dropdown/dist/registered.js +2 -2
- package/components/form/demo/customize.min.js +695 -232
- package/components/form/demo/getting-started.min.js +695 -232
- package/components/form/demo/index.min.js +695 -232
- package/components/form/demo/registerDemoDeps.min.js +695 -232
- package/components/input/demo/customize.min.js +1 -1
- package/components/input/demo/getting-started.min.js +1 -1
- package/components/input/demo/index.min.js +1 -1
- package/components/input/dist/index.js +1 -1
- package/components/input/dist/registered.js +1 -1
- package/components/radio/demo/customize.min.js +1 -1
- package/components/radio/demo/getting-started.min.js +1 -1
- package/components/radio/demo/index.min.js +1 -1
- package/components/radio/dist/index.js +1 -1
- package/components/radio/dist/registered.js +1 -1
- package/components/select/demo/customize.min.js +63 -16
- package/components/select/demo/getting-started.min.js +63 -16
- package/components/select/demo/index.min.js +63 -16
- package/components/select/dist/index.js +63 -16
- package/components/select/dist/registered.js +63 -16
- package/custom-elements.json +1750 -1468
- package/package.json +6 -2
- package/components/checkbox/demo/customize.js +0 -22
- package/components/checkbox/demo/demo-support.js +0 -1
- package/components/checkbox/demo/getting-started.js +0 -22
- package/components/checkbox/demo/index.js +0 -8
- package/components/checkbox/demo/styles.scss +0 -1
- package/components/combobox/demo/customize.js +0 -24
- package/components/combobox/demo/demo-support.js +0 -1
- package/components/combobox/demo/getting-started.js +0 -21
- package/components/combobox/demo/index.js +0 -23
- package/components/combobox/demo/styles.scss +0 -1
- package/components/counter/demo/customize.js +0 -21
- package/components/counter/demo/demo-support.js +0 -1
- package/components/counter/demo/index.js +0 -21
- package/components/counter/demo/styles.scss +0 -1
- package/components/datepicker/demo/customize.js +0 -17
- package/components/datepicker/demo/demo-support.js +0 -1
- package/components/datepicker/demo/index.js +0 -23
- package/components/datepicker/demo/styles.scss +0 -1
- package/components/dropdown/demo/customize.js +0 -9
- package/components/dropdown/demo/demo-support.js +0 -1
- package/components/dropdown/demo/getting-started.js +0 -9
- package/components/dropdown/demo/index.js +0 -16
- package/components/dropdown/demo/styles.scss +0 -1
- package/components/form/demo/customize.js +0 -28
- package/components/form/demo/demo-support.js +0 -1
- package/components/form/demo/getting-started.js +0 -9
- package/components/form/demo/index.js +0 -5
- package/components/form/demo/registerDemoDeps.js +0 -23
- package/components/form/demo/styles.scss +0 -1
- package/components/input/demo/customize.js +0 -25
- package/components/input/demo/demo-support.js +0 -1
- package/components/input/demo/getting-started.js +0 -8
- package/components/input/demo/index.js +0 -8
- package/components/input/demo/styles.css +0 -974
- package/components/input/demo/styles.scss +0 -1
- package/components/menu/demo/demo-support.js +0 -1
- package/components/menu/demo/index.js +0 -25
- package/components/menu/demo/styles.scss +0 -1
- package/components/radio/demo/customize.js +0 -22
- package/components/radio/demo/demo-support.js +0 -1
- package/components/radio/demo/getting-started.js +0 -24
- package/components/radio/demo/index.js +0 -8
- package/components/radio/demo/styles.scss +0 -1
- package/components/select/demo/customize.js +0 -11
- package/components/select/demo/demo-support.js +0 -1
- package/components/select/demo/getting-started.js +0 -26
- package/components/select/demo/index.js +0 -11
- package/components/select/demo/styles.scss +0 -1
- /package/components/datepicker/dist/{src/auro-calendar-month.d.ts → auro-calendar-month.d.ts} +0 -0
- /package/components/datepicker/dist/{src/buttonVersion.d.ts → buttonVersion.d.ts} +0 -0
- /package/components/datepicker/dist/{src/datepickerKeyboardStrategy.d.ts → datepickerKeyboardStrategy.d.ts} +0 -0
- /package/components/datepicker/dist/{src/iconVersion.d.ts → iconVersion.d.ts} +0 -0
- /package/components/datepicker/dist/{src/index.d.ts → index.d.ts} +0 -0
- /package/components/datepicker/dist/{src/popoverVersion.d.ts → popoverVersion.d.ts} +0 -0
- /package/components/datepicker/dist/{src/styles → styles}/classic/color-css.d.ts +0 -0
- /package/components/datepicker/dist/{src/styles → styles}/classic/style-css.d.ts +0 -0
- /package/components/datepicker/dist/{src/styles → styles}/color-calendar-css.d.ts +0 -0
- /package/components/datepicker/dist/{src/styles → styles}/color-cell-css.d.ts +0 -0
- /package/components/datepicker/dist/{src/styles → styles}/color-css.d.ts +0 -0
- /package/components/datepicker/dist/{src/styles → styles}/color-month-css.d.ts +0 -0
- /package/components/datepicker/dist/{src/styles → styles}/shapeSize-css.d.ts +0 -0
- /package/components/datepicker/dist/{src/styles → styles}/snowflake/color-css.d.ts +0 -0
- /package/components/datepicker/dist/{src/styles → styles}/snowflake/style-css.d.ts +0 -0
- /package/components/datepicker/dist/{src/styles → styles}/style-auro-calendar-cell-css.d.ts +0 -0
- /package/components/datepicker/dist/{src/styles → styles}/style-auro-calendar-css.d.ts +0 -0
- /package/components/datepicker/dist/{src/styles → styles}/style-auro-calendar-month-css.d.ts +0 -0
- /package/components/datepicker/dist/{src/styles → styles}/style-css.d.ts +0 -0
- /package/components/datepicker/dist/{src/styles → styles}/tokens-css.d.ts +0 -0
- /package/components/datepicker/dist/{src/utilities.d.ts → utilities.d.ts} +0 -0
- /package/components/datepicker/dist/{src/utilitiesCalendar.d.ts → utilitiesCalendar.d.ts} +0 -0
- /package/components/datepicker/dist/{src/utilitiesCalendarRender.d.ts → utilitiesCalendarRender.d.ts} +0 -0
- /package/components/datepicker/dist/{src/vendor → vendor}/wc-range-datepicker/day.d.ts +0 -0
- /package/components/datepicker/dist/{src/vendor → vendor}/wc-range-datepicker/range-datepicker-calendar.d.ts +0 -0
- /package/components/datepicker/dist/{src/vendor → vendor}/wc-range-datepicker/range-datepicker-cell.d.ts +0 -0
- /package/components/datepicker/dist/{src/vendor → vendor}/wc-range-datepicker/range-datepicker.d.ts +0 -0
|
@@ -5135,7 +5135,7 @@ function normalizeDates$3(context, ...dates) {
|
|
|
5135
5135
|
* const result = startOfDay(new Date(2014, 8, 2, 11, 55, 0))
|
|
5136
5136
|
* //=> Tue Sep 02 2014 00:00:00
|
|
5137
5137
|
*/
|
|
5138
|
-
function startOfDay$
|
|
5138
|
+
function startOfDay$3(date, options) {
|
|
5139
5139
|
const _date = toDate$3(date, options?.in);
|
|
5140
5140
|
_date.setHours(0, 0, 0, 0);
|
|
5141
5141
|
return _date;
|
|
@@ -5183,8 +5183,8 @@ function differenceInCalendarDays$3(laterDate, earlierDate, options) {
|
|
|
5183
5183
|
earlierDate,
|
|
5184
5184
|
);
|
|
5185
5185
|
|
|
5186
|
-
const laterStartOfDay = startOfDay$
|
|
5187
|
-
const earlierStartOfDay = startOfDay$
|
|
5186
|
+
const laterStartOfDay = startOfDay$3(laterDate_);
|
|
5187
|
+
const earlierStartOfDay = startOfDay$3(earlierDate_);
|
|
5188
5188
|
|
|
5189
5189
|
const laterTimestamp =
|
|
5190
5190
|
+laterStartOfDay - getTimezoneOffsetInMilliseconds$3(laterStartOfDay);
|
|
@@ -12331,7 +12331,7 @@ let AuroHelpText$8 = class AuroHelpText extends i$2 {
|
|
|
12331
12331
|
}
|
|
12332
12332
|
};
|
|
12333
12333
|
|
|
12334
|
-
var formkitVersion$8 = '
|
|
12334
|
+
var formkitVersion$8 = '202606261928';
|
|
12335
12335
|
|
|
12336
12336
|
// Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
|
|
12337
12337
|
// See LICENSE in the project root for license information.
|
|
@@ -14415,7 +14415,7 @@ function normalizeDates$1(context, ...dates) {
|
|
|
14415
14415
|
* const result = startOfDay(new Date(2014, 8, 2, 11, 55, 0))
|
|
14416
14416
|
* //=> Tue Sep 02 2014 00:00:00
|
|
14417
14417
|
*/
|
|
14418
|
-
function startOfDay$
|
|
14418
|
+
function startOfDay$1(date, options) {
|
|
14419
14419
|
const _date = toDate$1(date, options?.in);
|
|
14420
14420
|
_date.setHours(0, 0, 0, 0);
|
|
14421
14421
|
return _date;
|
|
@@ -14463,8 +14463,8 @@ function differenceInCalendarDays$1(laterDate, earlierDate, options) {
|
|
|
14463
14463
|
earlierDate,
|
|
14464
14464
|
);
|
|
14465
14465
|
|
|
14466
|
-
const laterStartOfDay = startOfDay$
|
|
14467
|
-
const earlierStartOfDay = startOfDay$
|
|
14466
|
+
const laterStartOfDay = startOfDay$1(laterDate_);
|
|
14467
|
+
const earlierStartOfDay = startOfDay$1(earlierDate_);
|
|
14468
14468
|
|
|
14469
14469
|
const laterTimestamp =
|
|
14470
14470
|
+laterStartOfDay - getTimezoneOffsetInMilliseconds$1(laterStartOfDay);
|
|
@@ -23921,8 +23921,8 @@ class RangeDatepickerCell extends i$2 {
|
|
|
23921
23921
|
const parsedDateFrom = parseInt(dateFrom, 10);
|
|
23922
23922
|
const parsedDateTo = parseInt(dateTo, 10);
|
|
23923
23923
|
if (day) {
|
|
23924
|
-
if (getTime(startOfDay$
|
|
23925
|
-
getTime(startOfDay$
|
|
23924
|
+
if (getTime(startOfDay$1(parsedDateTo * 1000)) / 1000 === day.date ||
|
|
23925
|
+
getTime(startOfDay$1(parsedDateFrom * 1000)) / 1000 === day.date) {
|
|
23926
23926
|
this.selected = true;
|
|
23927
23927
|
}
|
|
23928
23928
|
if (((hoveredDate === day.date || day.date < hoveredDate) &&
|
|
@@ -24110,7 +24110,7 @@ class RangeDatepickerCalendar extends i$2 {
|
|
|
24110
24110
|
this.dayNamesOfTheWeek = [];
|
|
24111
24111
|
this.daysOfMonth = [];
|
|
24112
24112
|
this._locale = null;
|
|
24113
|
-
this.currentDate = parseInt(format$1(startOfDay$
|
|
24113
|
+
this.currentDate = parseInt(format$1(startOfDay$1(Date.now()), 't'), 10);
|
|
24114
24114
|
this.localeChanged();
|
|
24115
24115
|
this.yearAndMonthChanged(this.year, this.month);
|
|
24116
24116
|
}
|
|
@@ -24584,7 +24584,7 @@ __decorate([n$4({ type: Array })], RangeDatepickerCalendar.prototype, "dayNamesO
|
|
|
24584
24584
|
__decorate([n$4({ type: Array })], RangeDatepickerCalendar.prototype, "daysOfMonth", void 0);
|
|
24585
24585
|
AuroLibraryRuntimeUtils$5$1.prototype.registerComponent('wc-range-datepicker-calendar', RangeDatepickerCalendar);
|
|
24586
24586
|
|
|
24587
|
-
var styleCss$5$2 = i$4`.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:"";border-radius:10px 0 0 10px;overflow:hidden}.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}`;
|
|
24587
|
+
var styleCss$5$2 = i$4`.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:"";border-radius:10px 0 0 10px;overflow:hidden}.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.rangeDepartDate.lastHoveredDate::before{border-radius:10px}.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}`;
|
|
24588
24588
|
|
|
24589
24589
|
var colorCss$5$2 = i$4`: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}`;
|
|
24590
24590
|
|
|
@@ -24609,13 +24609,103 @@ class s{registerComponent(e,t){customElements.get(e)||customElements.define(e,cl
|
|
|
24609
24609
|
|
|
24610
24610
|
var popoverVersion = '6.0.1';
|
|
24611
24611
|
|
|
24612
|
-
|
|
24612
|
+
/**
|
|
24613
|
+
* Single source of truth for parsing and matching blackout dates across the
|
|
24614
|
+
* datepicker. Both `auro-calendar` (memoized Set + `isDateBlackout`) and the
|
|
24615
|
+
* pre-`firstUpdated` fallback inside `auro-calendar-cell` route through these
|
|
24616
|
+
* helpers so the YYYY-MM-DD → seconds conversion and the merge-with-legacy
|
|
24617
|
+
* `disabledDays` rules are defined exactly once.
|
|
24618
|
+
*/
|
|
24613
24619
|
|
|
24614
|
-
|
|
24615
|
-
|
|
24616
|
-
|
|
24617
|
-
|
|
24618
|
-
|
|
24620
|
+
/**
|
|
24621
|
+
* Converts a `YYYY-MM-DD` ISO date string to a Unix timestamp (seconds)
|
|
24622
|
+
* representing local midnight on that calendar day. Returns `null` for
|
|
24623
|
+
* inputs that don't parse to a finite timestamp.
|
|
24624
|
+
*
|
|
24625
|
+
* Uses the `new Date(year, monthIndex, day)` constructor (NOT
|
|
24626
|
+
* `new Date(isoStr)`) so the result is local-midnight rather than UTC
|
|
24627
|
+
* midnight — required to keep the calendar grid aligned with the user's
|
|
24628
|
+
* local calendar day in negative-offset timezones.
|
|
24629
|
+
*
|
|
24630
|
+
* @param {string} isoStr - Date string in `YYYY-MM-DD` format.
|
|
24631
|
+
* @returns {number|null} Local-midnight Unix timestamp (seconds), or null.
|
|
24632
|
+
*/
|
|
24633
|
+
function parseIsoToTimestamp(isoStr) {
|
|
24634
|
+
if (typeof isoStr !== 'string') {
|
|
24635
|
+
return null;
|
|
24636
|
+
}
|
|
24637
|
+
const parts = isoStr.split('-');
|
|
24638
|
+
if (parts.length !== 3) {
|
|
24639
|
+
return null;
|
|
24640
|
+
}
|
|
24641
|
+
const year = parseInt(parts[0], 10);
|
|
24642
|
+
const month = parseInt(parts[1], 10);
|
|
24643
|
+
const day = parseInt(parts[2], 10);
|
|
24644
|
+
if (!Number.isFinite(year) || !Number.isFinite(month) || !Number.isFinite(day)) {
|
|
24645
|
+
return null;
|
|
24646
|
+
}
|
|
24647
|
+
// Reject overflow values like "2024-13-40" — JS `new Date(year, month, day)`
|
|
24648
|
+
// silently normalizes those to a different calendar day, which would
|
|
24649
|
+
// disable the wrong date if we let the result through.
|
|
24650
|
+
if (month < 1 || month > 12 || day < 1 || day > 31) {
|
|
24651
|
+
return null;
|
|
24652
|
+
}
|
|
24653
|
+
const date = new Date(year, month - 1, day);
|
|
24654
|
+
// Guard the residual case where JS still rolls a value (e.g. Feb 30 → Mar 2).
|
|
24655
|
+
// After construction, getFullYear/getMonth/getDate should match the inputs.
|
|
24656
|
+
if (date.getFullYear() !== year || date.getMonth() !== month - 1 || date.getDate() !== day) {
|
|
24657
|
+
return null;
|
|
24658
|
+
}
|
|
24659
|
+
const ts = Math.floor(date.getTime() / 1000);
|
|
24660
|
+
return Number.isFinite(ts) ? ts : null;
|
|
24661
|
+
}
|
|
24662
|
+
|
|
24663
|
+
/**
|
|
24664
|
+
* Builds a `Set<number>` of seconds-since-epoch timestamps covering both the
|
|
24665
|
+
* legacy `disabledDays` (already-numeric) array and the ISO `blackoutDates`
|
|
24666
|
+
* array. Use this for O(1) membership checks in hot paths.
|
|
24667
|
+
*
|
|
24668
|
+
* @param {Array<string|number>|undefined} disabledDays - Legacy timestamp array.
|
|
24669
|
+
* @param {Array<string>|undefined} blackoutDates - ISO `YYYY-MM-DD` array.
|
|
24670
|
+
* @returns {Set<number>}
|
|
24671
|
+
*/
|
|
24672
|
+
function buildBlackoutSet(disabledDays, blackoutDates) {
|
|
24673
|
+
const set = new Set();
|
|
24674
|
+
if (Array.isArray(disabledDays)) {
|
|
24675
|
+
for (const day of disabledDays) {
|
|
24676
|
+
const ts = parseInt(day, 10);
|
|
24677
|
+
if (Number.isFinite(ts)) {
|
|
24678
|
+
set.add(ts);
|
|
24679
|
+
}
|
|
24680
|
+
}
|
|
24681
|
+
}
|
|
24682
|
+
if (Array.isArray(blackoutDates)) {
|
|
24683
|
+
for (const isoStr of blackoutDates) {
|
|
24684
|
+
const ts = parseIsoToTimestamp(isoStr);
|
|
24685
|
+
if (ts !== null) {
|
|
24686
|
+
set.add(ts);
|
|
24687
|
+
}
|
|
24688
|
+
}
|
|
24689
|
+
}
|
|
24690
|
+
return set;
|
|
24691
|
+
}
|
|
24692
|
+
|
|
24693
|
+
/**
|
|
24694
|
+
* One-shot membership test for a single timestamp against both blackout
|
|
24695
|
+
* sources. Allocates a Set on each call; only use this in cold paths
|
|
24696
|
+
* (e.g. the pre-`firstUpdated` cell fallback). Hot paths should hold the
|
|
24697
|
+
* Set returned from `buildBlackoutSet` and `.has(ts)` directly.
|
|
24698
|
+
*
|
|
24699
|
+
* @param {number} dateTs - Unix timestamp (seconds) to test.
|
|
24700
|
+
* @param {Array<string|number>|undefined} disabledDays - Legacy timestamp array.
|
|
24701
|
+
* @param {Array<string>|undefined} blackoutDates - ISO `YYYY-MM-DD` array.
|
|
24702
|
+
* @returns {boolean}
|
|
24703
|
+
*/
|
|
24704
|
+
function isBlackoutTimestamp(dateTs, disabledDays, blackoutDates) {
|
|
24705
|
+
return buildBlackoutSet(disabledDays, blackoutDates).has(dateTs);
|
|
24706
|
+
}
|
|
24707
|
+
|
|
24708
|
+
/* 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 */
|
|
24619
24709
|
|
|
24620
24710
|
class AuroCalendarCell extends i$2 {
|
|
24621
24711
|
constructor() {
|
|
@@ -24663,6 +24753,14 @@ class AuroCalendarCell extends i$2 {
|
|
|
24663
24753
|
type: Boolean,
|
|
24664
24754
|
reflect: true
|
|
24665
24755
|
},
|
|
24756
|
+
/**
|
|
24757
|
+
* @deprecated Propagated from the legacy `auro-calendar.disabledDays`
|
|
24758
|
+
* Unix-timestamp array. The cell honors it for backward compatibility
|
|
24759
|
+
* (see the divergence-check fallback inside `isBlackout`), but
|
|
24760
|
+
* consumers should migrate to `auro-datepicker.blackoutDates`
|
|
24761
|
+
* (YYYY-MM-DD ISO strings). The calendar emits a one-time
|
|
24762
|
+
* deprecation warning the first time a non-empty value is observed.
|
|
24763
|
+
*/
|
|
24666
24764
|
disabledDays: { type: Array },
|
|
24667
24765
|
isCurrentDate: { type: Boolean },
|
|
24668
24766
|
locale: { type: String },
|
|
@@ -24708,8 +24806,8 @@ class AuroCalendarCell extends i$2 {
|
|
|
24708
24806
|
const parsedDateTo = parseInt(dateTo, 10);
|
|
24709
24807
|
|
|
24710
24808
|
if (day) {
|
|
24711
|
-
const departTimestamp =
|
|
24712
|
-
const returnTimestamp =
|
|
24809
|
+
const departTimestamp = new Date(parsedDateFrom * 1000).setHours(0, 0, 0, 0) / 1000;
|
|
24810
|
+
const returnTimestamp = new Date(parsedDateTo * 1000).setHours(0, 0, 0, 0) / 1000;
|
|
24713
24811
|
|
|
24714
24812
|
if (day.date === departTimestamp || day.date === returnTimestamp) {
|
|
24715
24813
|
this.selected = true;
|
|
@@ -24793,27 +24891,33 @@ class AuroCalendarCell extends i$2 {
|
|
|
24793
24891
|
return false;
|
|
24794
24892
|
}
|
|
24795
24893
|
|
|
24796
|
-
//
|
|
24797
|
-
|
|
24798
|
-
|
|
24799
|
-
|
|
24800
|
-
|
|
24801
|
-
|
|
24802
|
-
// Check against blackoutDates (ISO format YYYY-MM-DD) on the datepicker
|
|
24803
|
-
const blackoutDates = this.datepicker?.blackoutDates;
|
|
24804
|
-
|
|
24805
|
-
if (Array.isArray(blackoutDates) && blackoutDates.length > 0) {
|
|
24806
|
-
const date = new Date(this.day.date * 1000);
|
|
24807
|
-
const yyyy = date.getFullYear();
|
|
24808
|
-
const mm = String(date.getMonth() + 1).padStart(2, '0');
|
|
24809
|
-
const dd = String(date.getDate()).padStart(2, '0');
|
|
24810
|
-
const cellDate = `${yyyy}-${mm}-${dd}`;
|
|
24811
|
-
if (blackoutDates.includes(cellDate)) {
|
|
24894
|
+
// Delegate to the calendar's memoized blackout Set for O(1) lookup
|
|
24895
|
+
// (instead of rescanning disabledDays + blackoutDates per render). The
|
|
24896
|
+
// Set is rebuilt only when either source array reference changes — see
|
|
24897
|
+
// auro-calendar.js#_getBlackoutSet.
|
|
24898
|
+
if (this.calendar && typeof this.calendar._getBlackoutSet === 'function') {
|
|
24899
|
+
if (this.calendar._getBlackoutSet().has(this.day.date)) {
|
|
24812
24900
|
return true;
|
|
24813
24901
|
}
|
|
24902
|
+
// If the cell's local disabledDays diverged from the calendar's (a
|
|
24903
|
+
// consumer or test mutated cell.disabledDays directly), the Set does
|
|
24904
|
+
// not reflect that addition — fall through to the per-cell scan only
|
|
24905
|
+
// when the reference no longer matches. Production data flow keeps
|
|
24906
|
+
// these identical, so this branch stays cold. Guarded with
|
|
24907
|
+
// Array.isArray to match `_getBlackoutSet`'s contract: non-array
|
|
24908
|
+
// values are treated as empty rather than crashing on `.findIndex`.
|
|
24909
|
+
if (Array.isArray(this.disabledDays) && this.disabledDays !== this.calendar.disabledDays && this.disabledDays.length > 0) {
|
|
24910
|
+
if (this.disabledDays.findIndex((dd) => parseInt(dd, 10) === this.day.date) !== -1) {
|
|
24911
|
+
return true;
|
|
24912
|
+
}
|
|
24913
|
+
}
|
|
24914
|
+
return false;
|
|
24814
24915
|
}
|
|
24815
24916
|
|
|
24816
|
-
|
|
24917
|
+
// Pre-firstUpdated fallback — the cell may render once before the
|
|
24918
|
+
// ancestor calendar is wired up. Routes through the shared
|
|
24919
|
+
// blackoutUtils helper so the parsing rules stay in one place.
|
|
24920
|
+
return isBlackoutTimestamp(this.day.date, this.disabledDays, this.datepicker?.blackoutDates);
|
|
24817
24921
|
}
|
|
24818
24922
|
|
|
24819
24923
|
/**
|
|
@@ -24919,12 +25023,12 @@ class AuroCalendarCell extends i$2 {
|
|
|
24919
25023
|
const parsedDateFrom = Number.parseInt(this.dateFrom, 10);
|
|
24920
25024
|
if (!Number.isFinite(parsedDateFrom)) return null;
|
|
24921
25025
|
|
|
24922
|
-
const departTimestamp =
|
|
25026
|
+
const departTimestamp = new Date(parsedDateFrom * 1000).setHours(0, 0, 0, 0) / 1000;
|
|
24923
25027
|
const dayDate = this.day.date;
|
|
24924
25028
|
|
|
24925
25029
|
const parsedDateTo = Number.parseInt(this.dateTo, 10);
|
|
24926
25030
|
const hasDateTo = Number.isFinite(parsedDateTo);
|
|
24927
|
-
const returnTimestamp = hasDateTo ?
|
|
25031
|
+
const returnTimestamp = hasDateTo ? new Date(parsedDateTo * 1000).setHours(0, 0, 0, 0) / 1000 : null;
|
|
24928
25032
|
|
|
24929
25033
|
if (dayDate === departTimestamp) return this.datepicker.rangeLabelStart || 'range start';
|
|
24930
25034
|
|
|
@@ -24934,7 +25038,9 @@ class AuroCalendarCell extends i$2 {
|
|
|
24934
25038
|
|
|
24935
25039
|
if (hasDateTo && dayDate > departTimestamp && dayDate < returnTimestamp) return this.datepicker.rangeLabelInRange || 'in range';
|
|
24936
25040
|
|
|
24937
|
-
|
|
25041
|
+
if (!hasDateTo && dayDate > departTimestamp) return this.datepicker.rangeLabelEndPreview || 'previewing range end';
|
|
25042
|
+
|
|
25043
|
+
// After end date when both dateFrom and dateTo are set.
|
|
24938
25044
|
return this.datepicker.rangeLabelAfterRange || 'after range';
|
|
24939
25045
|
}
|
|
24940
25046
|
|
|
@@ -24947,7 +25053,7 @@ class AuroCalendarCell extends i$2 {
|
|
|
24947
25053
|
*/
|
|
24948
25054
|
isDepartDate(day, dateFrom) {
|
|
24949
25055
|
const parsedDateFrom = parseInt(dateFrom, 10);
|
|
24950
|
-
const departTimestamp =
|
|
25056
|
+
const departTimestamp = new Date(parsedDateFrom * 1000).setHours(0, 0, 0, 0) / 1000;
|
|
24951
25057
|
|
|
24952
25058
|
return this.selected && day.date === departTimestamp;
|
|
24953
25059
|
}
|
|
@@ -24962,7 +25068,7 @@ class AuroCalendarCell extends i$2 {
|
|
|
24962
25068
|
*/
|
|
24963
25069
|
isReturnDate(day, dateFrom, dateTo) {
|
|
24964
25070
|
const parsedDateTo = parseInt(dateTo, 10);
|
|
24965
|
-
const returnTimestamp =
|
|
25071
|
+
const returnTimestamp = new Date(parsedDateTo * 1000).setHours(0, 0, 0, 0) / 1000;
|
|
24966
25072
|
|
|
24967
25073
|
return this.selected && day.date === returnTimestamp && dateFrom;
|
|
24968
25074
|
}
|
|
@@ -25126,6 +25232,7 @@ class AuroCalendarCell extends i$2 {
|
|
|
25126
25232
|
setTimeout(() => this.firstUpdated(), 0);
|
|
25127
25233
|
return;
|
|
25128
25234
|
}
|
|
25235
|
+
this.calendar = calendar;
|
|
25129
25236
|
this.datepicker = calendar.datepicker;
|
|
25130
25237
|
this._slotContentHandler = () => {
|
|
25131
25238
|
this.handleSlotContent();
|
|
@@ -25183,12 +25290,13 @@ class AuroCalendarCell extends i$2 {
|
|
|
25183
25290
|
this._cachedButton = this.shadowRoot.querySelector('button.day');
|
|
25184
25291
|
});
|
|
25185
25292
|
|
|
25186
|
-
//
|
|
25293
|
+
// Keep the host's gridcell aria attributes in sync with the day data.
|
|
25187
25294
|
this.updateHostAria();
|
|
25188
25295
|
}
|
|
25189
25296
|
|
|
25190
25297
|
// Update host aria when selection changes (aria-selected, range labels)
|
|
25191
|
-
|
|
25298
|
+
// or when isCurrentDate flips (aria-current).
|
|
25299
|
+
if (properties.has('dateFrom') || properties.has('dateTo') || properties.has('selected') || properties.has('isCurrentDate')) {
|
|
25192
25300
|
this.updateHostAria();
|
|
25193
25301
|
}
|
|
25194
25302
|
|
|
@@ -25199,8 +25307,8 @@ class AuroCalendarCell extends i$2 {
|
|
|
25199
25307
|
}
|
|
25200
25308
|
|
|
25201
25309
|
/**
|
|
25202
|
-
*
|
|
25203
|
-
*
|
|
25310
|
+
* Sets host-level ARIA so each cell exposes its date, selection state,
|
|
25311
|
+
* and blackout status to assistive tech browsing the month grid.
|
|
25204
25312
|
* @private
|
|
25205
25313
|
* @returns {void}
|
|
25206
25314
|
*/
|
|
@@ -25209,16 +25317,27 @@ class AuroCalendarCell extends i$2 {
|
|
|
25209
25317
|
|
|
25210
25318
|
const outOfRange = this.isOutOfRange(this.day, this.min, this.max);
|
|
25211
25319
|
if (outOfRange) {
|
|
25320
|
+
// Strip every aria attribute the in-range branch may have set on a
|
|
25321
|
+
// previous render — if a cell flips from in-range to out-of-range
|
|
25322
|
+
// (calendar shifts months, minDate/maxDate change, etc.).
|
|
25212
25323
|
this.removeAttribute('role');
|
|
25213
25324
|
this.removeAttribute('aria-label');
|
|
25325
|
+
this.removeAttribute('aria-current');
|
|
25326
|
+
this.removeAttribute('aria-selected');
|
|
25327
|
+
this.removeAttribute('aria-disabled');
|
|
25214
25328
|
return;
|
|
25215
25329
|
}
|
|
25216
25330
|
|
|
25217
|
-
// The host acts as the gridcell for ariaActiveDescendantElement.
|
|
25218
25331
|
this.setAttribute('role', 'gridcell');
|
|
25219
25332
|
this.setAttribute('aria-label', this.getAriaLabel());
|
|
25220
25333
|
this.setAttribute('aria-selected', this.selected ? 'true' : 'false');
|
|
25221
25334
|
|
|
25335
|
+
if (this.isCurrentDate) {
|
|
25336
|
+
this.setAttribute('aria-current', 'date');
|
|
25337
|
+
} else {
|
|
25338
|
+
this.removeAttribute('aria-current');
|
|
25339
|
+
}
|
|
25340
|
+
|
|
25222
25341
|
if (this.isBlackout()) {
|
|
25223
25342
|
this.setAttribute('aria-disabled', 'true');
|
|
25224
25343
|
} else {
|
|
@@ -25233,7 +25352,7 @@ class AuroCalendarCell extends i$2 {
|
|
|
25233
25352
|
* @returns {void}
|
|
25234
25353
|
*/
|
|
25235
25354
|
focusButton() {
|
|
25236
|
-
const button = this._cachedButton || this.shadowRoot.querySelector('button:not([
|
|
25355
|
+
const button = this._cachedButton || this.shadowRoot.querySelector('button:not([disabled])');
|
|
25237
25356
|
if (button) {
|
|
25238
25357
|
button.focus({ focusVisible: true });
|
|
25239
25358
|
}
|
|
@@ -25241,7 +25360,9 @@ class AuroCalendarCell extends i$2 {
|
|
|
25241
25360
|
|
|
25242
25361
|
/**
|
|
25243
25362
|
* Imperatively marks this cell as active without triggering a Lit re-render.
|
|
25244
|
-
*
|
|
25363
|
+
* Buttons stay tabindex="-1" because DOM focus stays on the grid wrapper —
|
|
25364
|
+
* arrow keys move the active cell imperatively and the live region carries
|
|
25365
|
+
* the SR announcement.
|
|
25245
25366
|
* @returns {void}
|
|
25246
25367
|
*/
|
|
25247
25368
|
setActive() {
|
|
@@ -25283,10 +25404,13 @@ class AuroCalendarCell extends i$2 {
|
|
|
25283
25404
|
if (!btn || !this.day) return;
|
|
25284
25405
|
|
|
25285
25406
|
const dayDate = this.day.date;
|
|
25286
|
-
const departTimestamp =
|
|
25407
|
+
const departTimestamp = new Date(dateFrom * 1000).setHours(0, 0, 0, 0) / 1000;
|
|
25287
25408
|
const isInRange = dayDate > departTimestamp && dayDate < hoveredDate;
|
|
25288
|
-
|
|
25289
|
-
|
|
25409
|
+
// `>=` so hovering the depart cell itself (a same-day round-trip
|
|
25410
|
+
// preview) still surfaces a visual cue: the depart cell receives both
|
|
25411
|
+
// rangeDepartDate and lastHoveredDate.
|
|
25412
|
+
const isLastHovered = dayDate === hoveredDate && hoveredDate >= departTimestamp;
|
|
25413
|
+
const isDepartWithPreview = dayDate === departTimestamp && hoveredDate >= departTimestamp;
|
|
25290
25414
|
|
|
25291
25415
|
btn.classList.toggle('inRange', isInRange);
|
|
25292
25416
|
btn.classList.toggle('lastHoveredDate', isLastHovered);
|
|
@@ -25344,7 +25468,6 @@ class AuroCalendarCell extends i$2 {
|
|
|
25344
25468
|
@focus="${outOfRange ? undefined : this.handleFocus}"
|
|
25345
25469
|
class="${e$2(buttonClasses)}"
|
|
25346
25470
|
?disabled="${outOfRange}"
|
|
25347
|
-
aria-hidden="${outOfRange ? 'true' : A$7}"
|
|
25348
25471
|
tabindex="-1">
|
|
25349
25472
|
<div class="buttonWrapper" aria-hidden="true">
|
|
25350
25473
|
<div class="currentDayMarker">${this.day?.title || A$7}</div>
|
|
@@ -26450,7 +26573,7 @@ let AuroBibtemplate$3 = class AuroBibtemplate extends i$2 {
|
|
|
26450
26573
|
}
|
|
26451
26574
|
};
|
|
26452
26575
|
|
|
26453
|
-
var formkitVersion$2$1 = '
|
|
26576
|
+
var formkitVersion$2$1 = '202606261928';
|
|
26454
26577
|
|
|
26455
26578
|
let l$1$2 = 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$2 = 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$1$2 = 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$1$3=i$4`: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}
|
|
26456
26579
|
`,u$4$2=i$4`.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}}
|
|
@@ -26573,7 +26696,11 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
26573
26696
|
this.calendarRangeMonths = null;
|
|
26574
26697
|
|
|
26575
26698
|
/**
|
|
26576
|
-
*
|
|
26699
|
+
* @deprecated Use `auro-datepicker.blackoutDates` (an array of
|
|
26700
|
+
* `YYYY-MM-DD` ISO strings) instead. This legacy array of Unix
|
|
26701
|
+
* timestamps is still honored for backward compatibility but emits a
|
|
26702
|
+
* one-time `console.debug` the first time a non-empty value is observed.
|
|
26703
|
+
* Support will be removed in a future major release.
|
|
26577
26704
|
* @private
|
|
26578
26705
|
*/
|
|
26579
26706
|
this.disabledDays = [];
|
|
@@ -26830,17 +26957,44 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
26830
26957
|
* @returns {void}
|
|
26831
26958
|
*/
|
|
26832
26959
|
updateActiveCellForVisibleMonth() {
|
|
26833
|
-
|
|
26834
|
-
|
|
26835
|
-
requestAnimationFrame(() => {
|
|
26836
|
-
requestAnimationFrame(() => {
|
|
26837
|
-
const newDate = this.computeActiveDate({ skipDateFrom: true });
|
|
26960
|
+
this._afterMonthRender(() => {
|
|
26961
|
+
const newDate = this.computeActiveDate({ skipDateFrom: true });
|
|
26838
26962
|
|
|
26839
|
-
|
|
26840
|
-
|
|
26841
|
-
|
|
26842
|
-
|
|
26843
|
-
|
|
26963
|
+
if (newDate !== null && newDate !== undefined) {
|
|
26964
|
+
this.activeCellDate = newDate;
|
|
26965
|
+
this.setActiveCell(this.activeCellDate);
|
|
26966
|
+
}
|
|
26967
|
+
});
|
|
26968
|
+
}
|
|
26969
|
+
|
|
26970
|
+
/**
|
|
26971
|
+
* Schedules `callback` two animation frames out, giving the child
|
|
26972
|
+
* `auro-formkit-calendar-month` and `auro-formkit-calendar-cell` elements
|
|
26973
|
+
* a full render-and-paint cycle to settle before the callback reads or
|
|
26974
|
+
* mutates DOM.
|
|
26975
|
+
*
|
|
26976
|
+
* Why two frames, not one:
|
|
26977
|
+
* 1. Lit batches property updates and renders in a microtask, so frame N
|
|
26978
|
+
* schedules the render but the new DOM may not be painted yet.
|
|
26979
|
+
* 2. Cells re-cache `_cachedButton` inside their own `updateComplete.then`,
|
|
26980
|
+
* which also lands a tick later. Reading buttons from frame N+1
|
|
26981
|
+
* (after both renders + cache refresh have flushed) reliably hits the
|
|
26982
|
+
* new month's cells.
|
|
26983
|
+
*
|
|
26984
|
+
* Used by every code path that calls `handleNextMonth`/`handlePrevMonth`
|
|
26985
|
+
* and then needs to inspect the freshly-rendered cells (cross-month
|
|
26986
|
+
* keyboard nav, boundary events, `updateActiveCellForVisibleMonth`).
|
|
26987
|
+
* Do NOT collapse to a single rAF — it intermittently lands before
|
|
26988
|
+
* `_cachedButton` is refreshed, which silently breaks focus restoration
|
|
26989
|
+
* and `setActiveCell` lookups.
|
|
26990
|
+
* @private
|
|
26991
|
+
* @param {() => void} callback - Runs once after the month re-render and
|
|
26992
|
+
* the cells' button caches have refreshed.
|
|
26993
|
+
* @returns {void}
|
|
26994
|
+
*/
|
|
26995
|
+
_afterMonthRender(callback) {
|
|
26996
|
+
requestAnimationFrame(() => {
|
|
26997
|
+
requestAnimationFrame(callback);
|
|
26844
26998
|
});
|
|
26845
26999
|
}
|
|
26846
27000
|
|
|
@@ -26958,6 +27112,47 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
26958
27112
|
return Array.from(this.shadowRoot.querySelectorAll('auro-formkit-calendar-month'));
|
|
26959
27113
|
}
|
|
26960
27114
|
|
|
27115
|
+
/**
|
|
27116
|
+
* Picks the focusable cell whose date is closest to targetTs. Used as a
|
|
27117
|
+
* fallback after a month-boundary nav when the exact target date isn't
|
|
27118
|
+
* focusable — typically because the month re-render lagged or the date
|
|
27119
|
+
* was filtered out by isOutOfRange. When two cells are equidistant, the
|
|
27120
|
+
* navigation direction breaks the tie so the user moves the way they
|
|
27121
|
+
* pressed (forward → later cell, backward → earlier cell).
|
|
27122
|
+
* @private
|
|
27123
|
+
* @param {Array} cells - Focusable cells from getAllFocusableCells.
|
|
27124
|
+
* @param {Number} targetTs - Desired Unix timestamp (seconds).
|
|
27125
|
+
* @param {'next'|'prev'} direction - Navigation direction.
|
|
27126
|
+
* @returns {Object|null} The nearest cell, or null when cells is empty.
|
|
27127
|
+
*/
|
|
27128
|
+
pickNearestCell(cells, targetTs, direction) {
|
|
27129
|
+
if (!cells.length) {
|
|
27130
|
+
return null;
|
|
27131
|
+
}
|
|
27132
|
+
const forward = direction === 'next';
|
|
27133
|
+
let best = null;
|
|
27134
|
+
let bestDelta = Infinity;
|
|
27135
|
+
cells.forEach((cell) => {
|
|
27136
|
+
if (!cell.day) {
|
|
27137
|
+
return;
|
|
27138
|
+
}
|
|
27139
|
+
const distance = Math.abs(cell.day.date - targetTs);
|
|
27140
|
+
if (distance < bestDelta) {
|
|
27141
|
+
best = cell;
|
|
27142
|
+
bestDelta = distance;
|
|
27143
|
+
return;
|
|
27144
|
+
}
|
|
27145
|
+
if (distance === bestDelta && best) {
|
|
27146
|
+
if (forward && cell.day.date > best.day.date) {
|
|
27147
|
+
best = cell;
|
|
27148
|
+
} else if (!forward && cell.day.date < best.day.date) {
|
|
27149
|
+
best = cell;
|
|
27150
|
+
}
|
|
27151
|
+
}
|
|
27152
|
+
});
|
|
27153
|
+
return best;
|
|
27154
|
+
}
|
|
27155
|
+
|
|
26961
27156
|
/**
|
|
26962
27157
|
* Gets all focusable cells across all rendered months.
|
|
26963
27158
|
* @private
|
|
@@ -26974,9 +27169,9 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
26974
27169
|
|
|
26975
27170
|
/**
|
|
26976
27171
|
* Sets the active cell across all months. Only one cell has tabindex="0" at a time.
|
|
26977
|
-
* Uses imperative DOM manipulation — no Lit re-render triggered.
|
|
26978
|
-
*
|
|
26979
|
-
*
|
|
27172
|
+
* Uses imperative DOM manipulation — no Lit re-render triggered. DOM focus
|
|
27173
|
+
* stays on the grid wrapper; the live region (see getOrCreateLiveRegion)
|
|
27174
|
+
* is what announces the active cell to assistive tech.
|
|
26980
27175
|
* @param {Number} date - Unix timestamp of the cell to activate.
|
|
26981
27176
|
* @returns {void}
|
|
26982
27177
|
*/
|
|
@@ -27057,6 +27252,65 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
27057
27252
|
this.clearRangePreview();
|
|
27058
27253
|
}
|
|
27059
27254
|
|
|
27255
|
+
/**
|
|
27256
|
+
* Returns a memoized Set of blackout timestamps (seconds) drawn from both
|
|
27257
|
+
* the legacy `disabledDays` array and the datepicker's ISO `blackoutDates`.
|
|
27258
|
+
* The cache invalidates when either source array's reference changes, which
|
|
27259
|
+
* matches Lit's own reactive identity semantics for array properties.
|
|
27260
|
+
* @private
|
|
27261
|
+
* @returns {Set<Number>}
|
|
27262
|
+
*/
|
|
27263
|
+
_getBlackoutSet() {
|
|
27264
|
+
// Normalize non-array values to a stable `null` sentinel rather than a
|
|
27265
|
+
// fresh `[]` per call — otherwise the reference-identity cache key
|
|
27266
|
+
// (`_cachedBlackoutDisabledDays === disabledDays`) never matches on
|
|
27267
|
+
// subsequent calls and the Set rebuilds every time. `buildBlackoutSet`
|
|
27268
|
+
// already treats null/non-array as "no legacy disabledDays" via its
|
|
27269
|
+
// own Array.isArray gate.
|
|
27270
|
+
const disabledDays = Array.isArray(this.disabledDays) ? this.disabledDays : null;
|
|
27271
|
+
const blackoutDates = this.datepicker?.blackoutDates;
|
|
27272
|
+
if (this._blackoutSet &&
|
|
27273
|
+
this._cachedBlackoutDisabledDays === disabledDays &&
|
|
27274
|
+
this._cachedBlackoutDates === blackoutDates) {
|
|
27275
|
+
return this._blackoutSet;
|
|
27276
|
+
}
|
|
27277
|
+
|
|
27278
|
+
if (disabledDays && disabledDays.length > 0) {
|
|
27279
|
+
this._warnDisabledDaysDeprecated();
|
|
27280
|
+
}
|
|
27281
|
+
|
|
27282
|
+
this._blackoutSet = buildBlackoutSet(disabledDays, blackoutDates);
|
|
27283
|
+
this._cachedBlackoutDisabledDays = disabledDays;
|
|
27284
|
+
this._cachedBlackoutDates = blackoutDates;
|
|
27285
|
+
return this._blackoutSet;
|
|
27286
|
+
}
|
|
27287
|
+
|
|
27288
|
+
/**
|
|
27289
|
+
* Per-class flag that gates the `disabledDays` deprecation warning so it
|
|
27290
|
+
* fires exactly once per page no matter how many calendars or rebuild
|
|
27291
|
+
* cycles encounter the legacy array.
|
|
27292
|
+
* @private
|
|
27293
|
+
*/
|
|
27294
|
+
static _warnedDisabledDaysDeprecation = false;
|
|
27295
|
+
|
|
27296
|
+
/**
|
|
27297
|
+
* One-time `console.debug` directing consumers from the legacy
|
|
27298
|
+
* `disabledDays` Unix-timestamp API to the ISO `blackoutDates` API. Fires
|
|
27299
|
+
* the first time `_getBlackoutSet` rebuilds from a non-empty
|
|
27300
|
+
* `disabledDays`; subsequent calls (on this or any other AuroCalendar
|
|
27301
|
+
* instance on the page) are silent.
|
|
27302
|
+
* @private
|
|
27303
|
+
* @returns {void}
|
|
27304
|
+
*/
|
|
27305
|
+
_warnDisabledDaysDeprecated() {
|
|
27306
|
+
if (AuroCalendar._warnedDisabledDaysDeprecation) {
|
|
27307
|
+
return;
|
|
27308
|
+
}
|
|
27309
|
+
AuroCalendar._warnedDisabledDaysDeprecation = true;
|
|
27310
|
+
// eslint-disable-next-line no-console
|
|
27311
|
+
console.debug('[auro-datepicker] The `disabledDays` property (Unix timestamps) is deprecated. Migrate to the `blackoutDates` property on auro-datepicker (an array of `YYYY-MM-DD` ISO strings). `disabledDays` will be removed in a future major release.');
|
|
27312
|
+
}
|
|
27313
|
+
|
|
27060
27314
|
/**
|
|
27061
27315
|
* Computes the initial active date from data properties alone — no DOM required.
|
|
27062
27316
|
* Priority:
|
|
@@ -27101,21 +27355,10 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
27101
27355
|
const minTs = Number.isFinite(rawMin) ? rawMin : -Infinity;
|
|
27102
27356
|
const maxTs = Number.isFinite(rawMax) ? rawMax : Infinity;
|
|
27103
27357
|
|
|
27104
|
-
// Build a Set of blackout timestamps for O(1) lookup.
|
|
27105
|
-
|
|
27106
|
-
|
|
27107
|
-
|
|
27108
|
-
// Parse YYYY-MM-DD as local date to avoid UTC shift issues.
|
|
27109
|
-
const isoBlackouts = this.datepicker?.blackoutDates;
|
|
27110
|
-
if (Array.isArray(isoBlackouts)) {
|
|
27111
|
-
for (const isoStr of isoBlackouts) {
|
|
27112
|
-
const parts = isoStr.split('-');
|
|
27113
|
-
const ts = Math.floor(new Date(parseInt(parts[0], 10), parseInt(parts[1], 10) - 1, parseInt(parts[2], 10)).getTime() / 1000);
|
|
27114
|
-
if (Number.isFinite(ts)) {
|
|
27115
|
-
blackoutSet.add(ts);
|
|
27116
|
-
}
|
|
27117
|
-
}
|
|
27118
|
-
}
|
|
27358
|
+
// Build a Set of blackout timestamps for O(1) lookup. Memoized by the
|
|
27359
|
+
// identity of the source arrays so rapid month nav doesn't rebuild the
|
|
27360
|
+
// Set (and re-parse every ISO string) on every keypress.
|
|
27361
|
+
const blackoutSet = this._getBlackoutSet();
|
|
27119
27362
|
|
|
27120
27363
|
/**
|
|
27121
27364
|
* A date (unix timestamp in seconds, midnight-aligned) is "enabled" when
|
|
@@ -27311,8 +27554,8 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
27311
27554
|
|
|
27312
27555
|
/**
|
|
27313
27556
|
* Handles arrow key navigation on the calendar grid wrapper.
|
|
27314
|
-
* Focus stays on the grid wrapper; only
|
|
27315
|
-
*
|
|
27557
|
+
* Focus stays on the grid wrapper; only the visual active-cell indicator
|
|
27558
|
+
* changes. The live region announces the new active cell.
|
|
27316
27559
|
* @private
|
|
27317
27560
|
* @param {KeyboardEvent} event - The keyboard event.
|
|
27318
27561
|
* @returns {void}
|
|
@@ -27377,21 +27620,21 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
27377
27620
|
} else {
|
|
27378
27621
|
this.handlePrevMonth({ skipActiveUpdate: true });
|
|
27379
27622
|
}
|
|
27380
|
-
|
|
27381
|
-
|
|
27382
|
-
|
|
27383
|
-
|
|
27384
|
-
|
|
27385
|
-
|
|
27386
|
-
|
|
27387
|
-
|
|
27388
|
-
|
|
27623
|
+
this._afterMonthRender(() => {
|
|
27624
|
+
const cells = this.getAllFocusableCells();
|
|
27625
|
+
const target = cells.find((cell) => cell.day && cell.day.date === targetTs);
|
|
27626
|
+
if (target) {
|
|
27627
|
+
this.setActiveCell(target.day.date);
|
|
27628
|
+
this.handleCellFocused({ detail: { date: target.day.date } });
|
|
27629
|
+
} else {
|
|
27630
|
+
const fallback = this.pickNearestCell(cells, targetTs, navDir);
|
|
27631
|
+
if (fallback) {
|
|
27389
27632
|
this.setActiveCell(fallback.day.date);
|
|
27390
27633
|
this.handleCellFocused({ detail: { date: fallback.day.date } });
|
|
27391
27634
|
}
|
|
27392
|
-
|
|
27393
|
-
|
|
27394
|
-
|
|
27635
|
+
}
|
|
27636
|
+
// Re-focus grid wrapper after month change re-render
|
|
27637
|
+
this.focusActiveCell();
|
|
27395
27638
|
});
|
|
27396
27639
|
}
|
|
27397
27640
|
}
|
|
@@ -27417,26 +27660,20 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
27417
27660
|
} else {
|
|
27418
27661
|
this.handlePrevMonth({ skipActiveUpdate: true });
|
|
27419
27662
|
}
|
|
27420
|
-
|
|
27421
|
-
|
|
27422
|
-
|
|
27423
|
-
|
|
27424
|
-
|
|
27425
|
-
|
|
27426
|
-
|
|
27427
|
-
|
|
27428
|
-
|
|
27429
|
-
|
|
27430
|
-
if (navDirection === 'next') {
|
|
27431
|
-
[nearest] = cells;
|
|
27432
|
-
} else {
|
|
27433
|
-
nearest = cells[cells.length - 1];
|
|
27434
|
-
}
|
|
27663
|
+
this._afterMonthRender(() => {
|
|
27664
|
+
const cells = this.getAllFocusableCells();
|
|
27665
|
+
const target = cells.find((cell) => cell.day && cell.day.date === targetDate);
|
|
27666
|
+
if (target) {
|
|
27667
|
+
this.setActiveCell(target.day.date);
|
|
27668
|
+
this.handleCellFocused({ detail: { date: target.day.date } });
|
|
27669
|
+
} else {
|
|
27670
|
+
const nearest = this.pickNearestCell(cells, targetDate, navDirection);
|
|
27671
|
+
if (nearest) {
|
|
27435
27672
|
this.setActiveCell(nearest.day.date);
|
|
27436
27673
|
this.handleCellFocused({ detail: { date: nearest.day.date } });
|
|
27437
27674
|
}
|
|
27438
|
-
|
|
27439
|
-
|
|
27675
|
+
}
|
|
27676
|
+
this.focusActiveCell();
|
|
27440
27677
|
});
|
|
27441
27678
|
}
|
|
27442
27679
|
}
|
|
@@ -27486,19 +27723,22 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
27486
27723
|
}
|
|
27487
27724
|
|
|
27488
27725
|
this.handleNextMonth({ skipActiveUpdate: true });
|
|
27489
|
-
|
|
27490
|
-
|
|
27491
|
-
|
|
27492
|
-
|
|
27493
|
-
|
|
27494
|
-
|
|
27495
|
-
|
|
27496
|
-
|
|
27497
|
-
|
|
27498
|
-
|
|
27726
|
+
this._afterMonthRender(() => {
|
|
27727
|
+
const cells = this.getAllFocusableCells();
|
|
27728
|
+
const target = cells.find((cell) => cell.day && cell.day.date === nextTs);
|
|
27729
|
+
if (target) {
|
|
27730
|
+
this.setActiveCell(target.day.date);
|
|
27731
|
+
this.focusActiveCell();
|
|
27732
|
+
} else {
|
|
27733
|
+
// Same nearest-by-date fallback handleGridKeyDown uses — direct
|
|
27734
|
+
// `cells[length - 1]` would land on the end of the new month,
|
|
27735
|
+
// far from the user's intended `nextTs`.
|
|
27736
|
+
const fallback = this.pickNearestCell(cells, nextTs, 'next');
|
|
27737
|
+
if (fallback) {
|
|
27738
|
+
this.setActiveCell(fallback.day.date);
|
|
27499
27739
|
this.focusActiveCell();
|
|
27500
27740
|
}
|
|
27501
|
-
}
|
|
27741
|
+
}
|
|
27502
27742
|
});
|
|
27503
27743
|
} else if (direction === 'prev' && this.showPrevMonthBtn) {
|
|
27504
27744
|
// Navigate to previous month and focus the computed previous date.
|
|
@@ -27512,19 +27752,22 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
27512
27752
|
}
|
|
27513
27753
|
|
|
27514
27754
|
this.handlePrevMonth({ skipActiveUpdate: true });
|
|
27515
|
-
|
|
27516
|
-
|
|
27517
|
-
|
|
27518
|
-
|
|
27519
|
-
|
|
27520
|
-
|
|
27521
|
-
|
|
27522
|
-
|
|
27523
|
-
|
|
27524
|
-
|
|
27755
|
+
this._afterMonthRender(() => {
|
|
27756
|
+
const cells = this.getAllFocusableCells();
|
|
27757
|
+
const target = cells.find((cell) => cell.day && cell.day.date === prevTs);
|
|
27758
|
+
if (target) {
|
|
27759
|
+
this.setActiveCell(target.day.date);
|
|
27760
|
+
this.focusActiveCell();
|
|
27761
|
+
} else {
|
|
27762
|
+
// Same nearest-by-date fallback handleGridKeyDown uses — direct
|
|
27763
|
+
// `cells[0]` would land on the start of the previous month, far
|
|
27764
|
+
// from the user's intended `prevTs`.
|
|
27765
|
+
const fallback = this.pickNearestCell(cells, prevTs, 'prev');
|
|
27766
|
+
if (fallback) {
|
|
27767
|
+
this.setActiveCell(fallback.day.date);
|
|
27525
27768
|
this.focusActiveCell();
|
|
27526
27769
|
}
|
|
27527
|
-
}
|
|
27770
|
+
}
|
|
27528
27771
|
});
|
|
27529
27772
|
}
|
|
27530
27773
|
} else if (key === 'ArrowDown' || key === 'ArrowUp') {
|
|
@@ -27552,20 +27795,22 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
27552
27795
|
} else {
|
|
27553
27796
|
this.handlePrevMonth({ skipActiveUpdate: true });
|
|
27554
27797
|
}
|
|
27555
|
-
|
|
27556
|
-
|
|
27557
|
-
|
|
27558
|
-
|
|
27559
|
-
|
|
27560
|
-
|
|
27561
|
-
|
|
27562
|
-
|
|
27563
|
-
|
|
27564
|
-
|
|
27798
|
+
this._afterMonthRender(() => {
|
|
27799
|
+
const cells = this.getAllFocusableCells();
|
|
27800
|
+
const target = cells.find((cell) => cell.day && cell.day.date === targetDate);
|
|
27801
|
+
if (target) {
|
|
27802
|
+
this.setActiveCell(target.day.date);
|
|
27803
|
+
this.focusActiveCell();
|
|
27804
|
+
} else {
|
|
27805
|
+
// Same nearest-by-date fallback handleGridKeyDown uses — the
|
|
27806
|
+
// old direction-based `cells[0]`/`cells[length-1]` clamp
|
|
27807
|
+
// could land 25+ days from the intended target.
|
|
27808
|
+
const nearest = this.pickNearestCell(cells, targetDate, navDirection);
|
|
27809
|
+
if (nearest) {
|
|
27565
27810
|
this.setActiveCell(nearest.day.date);
|
|
27566
27811
|
this.focusActiveCell();
|
|
27567
27812
|
}
|
|
27568
|
-
}
|
|
27813
|
+
}
|
|
27569
27814
|
});
|
|
27570
27815
|
}
|
|
27571
27816
|
}
|
|
@@ -27604,8 +27849,9 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
27604
27849
|
return;
|
|
27605
27850
|
}
|
|
27606
27851
|
|
|
27607
|
-
//
|
|
27608
|
-
// so
|
|
27852
|
+
// DOM focus stays on the grid wrapper while arrow keys move the active
|
|
27853
|
+
// cell, so cell buttons never receive native focus. The debounced live
|
|
27854
|
+
// region carries the full-context announcement instead.
|
|
27609
27855
|
const announcement = this.buildFocusAnnouncement(date);
|
|
27610
27856
|
this.announceFocusDebounced(announcement);
|
|
27611
27857
|
|
|
@@ -27675,10 +27921,10 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
27675
27921
|
return null;
|
|
27676
27922
|
}
|
|
27677
27923
|
|
|
27678
|
-
const departTs =
|
|
27924
|
+
const departTs = new Date(parsedFrom * 1000).setHours(0, 0, 0, 0) / 1000;
|
|
27679
27925
|
const parsedTo = Number.parseInt(this.dateTo, 10);
|
|
27680
27926
|
const hasTo = Number.isFinite(parsedTo);
|
|
27681
|
-
const returnTs = hasTo ?
|
|
27927
|
+
const returnTs = hasTo ? new Date(parsedTo * 1000).setHours(0, 0, 0, 0) / 1000 : null;
|
|
27682
27928
|
|
|
27683
27929
|
if (date === departTs) {
|
|
27684
27930
|
return this.datepicker.rangeLabelStart || 'range start';
|
|
@@ -27692,36 +27938,22 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
27692
27938
|
if (hasTo && date > departTs && date < returnTs) {
|
|
27693
27939
|
return this.datepicker.rangeLabelInRange || 'in range';
|
|
27694
27940
|
}
|
|
27941
|
+
if (!hasTo && date > departTs) {
|
|
27942
|
+
return this.datepicker.rangeLabelEndPreview || 'previewing range end';
|
|
27943
|
+
}
|
|
27695
27944
|
return this.datepicker.rangeLabelAfterRange || 'after range';
|
|
27696
27945
|
}
|
|
27697
27946
|
|
|
27698
27947
|
/**
|
|
27699
|
-
* Checks whether a given date is a blackout date.
|
|
27948
|
+
* Checks whether a given date is a blackout date. Delegates to the
|
|
27949
|
+
* memoized `_getBlackoutSet` so the YYYY-MM-DD parsing and the
|
|
27950
|
+
* legacy/ISO merge rules live in exactly one place (see `blackoutUtils.js`).
|
|
27700
27951
|
* @private
|
|
27701
27952
|
* @param {Number} dateTs - Unix timestamp (seconds).
|
|
27702
27953
|
* @returns {Boolean} True if the date is blacked out.
|
|
27703
27954
|
*/
|
|
27704
27955
|
isDateBlackout(dateTs) {
|
|
27705
|
-
|
|
27706
|
-
if (Array.isArray(this.disabledDays) && this.disabledDays.length > 0) {
|
|
27707
|
-
if (this.disabledDays.findIndex((day) => parseInt(day, 10) === dateTs) !== -1) {
|
|
27708
|
-
return true;
|
|
27709
|
-
}
|
|
27710
|
-
}
|
|
27711
|
-
|
|
27712
|
-
// Check ISO blackoutDates.
|
|
27713
|
-
const blackoutDates = this.datepicker?.blackoutDates;
|
|
27714
|
-
if (Array.isArray(blackoutDates) && blackoutDates.length > 0) {
|
|
27715
|
-
const date = new Date(dateTs * 1000);
|
|
27716
|
-
const yyyy = date.getFullYear();
|
|
27717
|
-
const mm = String(date.getMonth() + 1).padStart(2, '0');
|
|
27718
|
-
const dd = String(date.getDate()).padStart(2, '0');
|
|
27719
|
-
if (blackoutDates.includes(`${yyyy}-${mm}-${dd}`)) {
|
|
27720
|
-
return true;
|
|
27721
|
-
}
|
|
27722
|
-
}
|
|
27723
|
-
|
|
27724
|
-
return false;
|
|
27956
|
+
return this._getBlackoutSet().has(dateTs);
|
|
27725
27957
|
}
|
|
27726
27958
|
|
|
27727
27959
|
/**
|
|
@@ -27888,9 +28120,34 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
27888
28120
|
// the last one.
|
|
27889
28121
|
if (this._announceRafId) {
|
|
27890
28122
|
cancelAnimationFrame(this._announceRafId);
|
|
28123
|
+
this._announceRafId = null;
|
|
27891
28124
|
}
|
|
28125
|
+
this._deliverAnnouncement(dateStr, 0);
|
|
28126
|
+
}
|
|
28127
|
+
|
|
28128
|
+
/**
|
|
28129
|
+
* Writes `dateStr` to the live region. If the dropdown's dialog hasn't
|
|
28130
|
+
* mounted yet (so getOrCreateLiveRegion can't attach), retries on the
|
|
28131
|
+
* next animation frame up to MAX_LIVE_REGION_RETRIES instead of silently
|
|
28132
|
+
* dropping the announcement. The retry uses the same `_announceRafId`
|
|
28133
|
+
* the double-rAF below uses, so a newer announceSelection call (or
|
|
28134
|
+
* disconnectedCallback) cancels any in-flight retry.
|
|
28135
|
+
* @private
|
|
28136
|
+
* @param {String} dateStr - The localized date string to announce.
|
|
28137
|
+
* @param {Number} attempts - Number of prior retry attempts.
|
|
28138
|
+
* @returns {void}
|
|
28139
|
+
*/
|
|
28140
|
+
_deliverAnnouncement(dateStr, attempts) {
|
|
27892
28141
|
const liveRegion = this.getOrCreateLiveRegion();
|
|
27893
28142
|
if (!liveRegion) {
|
|
28143
|
+
const MAX_LIVE_REGION_RETRIES = 10;
|
|
28144
|
+
if (attempts < MAX_LIVE_REGION_RETRIES) {
|
|
28145
|
+
this._announceRafId = requestAnimationFrame(() => {
|
|
28146
|
+
this._deliverAnnouncement(dateStr, attempts + 1);
|
|
28147
|
+
});
|
|
28148
|
+
} else {
|
|
28149
|
+
this._announceRafId = null;
|
|
28150
|
+
}
|
|
27894
28151
|
return;
|
|
27895
28152
|
}
|
|
27896
28153
|
|
|
@@ -28076,7 +28333,7 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
28076
28333
|
</button>
|
|
28077
28334
|
` : undefined}
|
|
28078
28335
|
</div>
|
|
28079
|
-
<div id="calendarGrid" class="calendars" role="group" tabindex="0" aria-label="${this.datepicker?.calendarGridLabel}" @keydown="${this.handleGridKeyDown}" @focusin="${this.handleGridFocusIn}" @focusout="${this.handleGridFocusOut}" @calendar-month-mouseleave="${this.clearRangePreview}">
|
|
28336
|
+
<div id="calendarGrid" class="calendars" role="group" aria-roledescription="calendar" tabindex="0" aria-label="${this.datepicker?.calendarGridLabel}" @keydown="${this.handleGridKeyDown}" @focusin="${this.handleGridFocusIn}" @focusout="${this.handleGridFocusOut}" @calendar-month-mouseleave="${this.clearRangePreview}">
|
|
28080
28337
|
${this.renderAllCalendars()}
|
|
28081
28338
|
</div>
|
|
28082
28339
|
</div>
|
|
@@ -31961,7 +32218,7 @@ let AuroHelpText$2$1 = class AuroHelpText extends i$2 {
|
|
|
31961
32218
|
}
|
|
31962
32219
|
};
|
|
31963
32220
|
|
|
31964
|
-
var formkitVersion$1$3 = '
|
|
32221
|
+
var formkitVersion$1$3 = '202606261928';
|
|
31965
32222
|
|
|
31966
32223
|
let AuroElement$2$2 = class AuroElement extends i$2 {
|
|
31967
32224
|
static get properties() {
|
|
@@ -33233,7 +33490,7 @@ let AuroDropdown$3 = class AuroDropdown extends AuroElement$2$2 {
|
|
|
33233
33490
|
role="${o$4(this.triggerContentFocusable ? undefined : this.a11yRole)}"
|
|
33234
33491
|
aria-expanded="${o$4(this.a11yRole === 'button' || this.triggerContentFocusable ? undefined : this.isPopoverVisible)}"
|
|
33235
33492
|
aria-controls="${o$4(this.a11yRole === 'button' || this.triggerContentFocusable ? undefined : this.dropdownId)}"
|
|
33236
|
-
aria-haspopup="${o$4(this.a11yRole === 'combobox' ? 'listbox' : undefined)}"
|
|
33493
|
+
aria-haspopup="${o$4(this.a11yRole === 'combobox' && !this.triggerContentFocusable ? 'listbox' : undefined)}"
|
|
33237
33494
|
aria-labelledby="${o$4(this.triggerContentFocusable ? undefined : 'triggerLabel')}"
|
|
33238
33495
|
aria-disabled="${o$4(this.disabled ? 'true' : undefined)}"
|
|
33239
33496
|
@focusin="${this.handleFocusin}"
|
|
@@ -38359,7 +38616,7 @@ function normalizeDates$2(context, ...dates) {
|
|
|
38359
38616
|
* const result = startOfDay(new Date(2014, 8, 2, 11, 55, 0))
|
|
38360
38617
|
* //=> Tue Sep 02 2014 00:00:00
|
|
38361
38618
|
*/
|
|
38362
|
-
function startOfDay$
|
|
38619
|
+
function startOfDay$2(date, options) {
|
|
38363
38620
|
const _date = toDate$2(date, options?.in);
|
|
38364
38621
|
_date.setHours(0, 0, 0, 0);
|
|
38365
38622
|
return _date;
|
|
@@ -38407,8 +38664,8 @@ function differenceInCalendarDays$2(laterDate, earlierDate, options) {
|
|
|
38407
38664
|
earlierDate,
|
|
38408
38665
|
);
|
|
38409
38666
|
|
|
38410
|
-
const laterStartOfDay = startOfDay$
|
|
38411
|
-
const earlierStartOfDay = startOfDay$
|
|
38667
|
+
const laterStartOfDay = startOfDay$2(laterDate_);
|
|
38668
|
+
const earlierStartOfDay = startOfDay$2(earlierDate_);
|
|
38412
38669
|
|
|
38413
38670
|
const laterTimestamp =
|
|
38414
38671
|
+laterStartOfDay - getTimezoneOffsetInMilliseconds$2(laterStartOfDay);
|
|
@@ -45555,7 +45812,7 @@ let AuroHelpText$1$3 = class AuroHelpText extends i$2 {
|
|
|
45555
45812
|
}
|
|
45556
45813
|
};
|
|
45557
45814
|
|
|
45558
|
-
var formkitVersion$7 = '
|
|
45815
|
+
var formkitVersion$7 = '202606261928';
|
|
45559
45816
|
|
|
45560
45817
|
// Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
|
|
45561
45818
|
// See LICENSE in the project root for license information.
|
|
@@ -47032,6 +47289,7 @@ class AuroDatePicker extends AuroElement$5 {
|
|
|
47032
47289
|
this.rangeLabelBeforeRange = 'before range';
|
|
47033
47290
|
this.rangeLabelInRange = 'in range';
|
|
47034
47291
|
this.rangeLabelAfterRange = 'after range';
|
|
47292
|
+
this.rangeLabelEndPreview = 'previewing range end';
|
|
47035
47293
|
this.blackoutDates = [];
|
|
47036
47294
|
this.blackoutLabel = 'unavailable';
|
|
47037
47295
|
this.navLabelPrevMonth = 'Previous month';
|
|
@@ -47131,6 +47389,22 @@ class AuroDatePicker extends AuroElement$5 {
|
|
|
47131
47389
|
*/
|
|
47132
47390
|
this.handleClick = this.handleClick.bind(this);
|
|
47133
47391
|
|
|
47392
|
+
/**
|
|
47393
|
+
* Single AbortController shared by every listener registered in the
|
|
47394
|
+
* configure* methods. Lets disconnectedCallback tear all of them down
|
|
47395
|
+
* with one abort() call.
|
|
47396
|
+
*
|
|
47397
|
+
* The genuine leak risk is the listeners attached to children that can
|
|
47398
|
+
* outlive the host if they get reparented — `this.dropdown`,
|
|
47399
|
+
* `this.calendar`, and the inputs inside the dropdown's slot.
|
|
47400
|
+
* Listeners attached to `this` (e.g. focusin/focusout on the host)
|
|
47401
|
+
* form a self-contained reference graph that the GC can collect with
|
|
47402
|
+
* the host anyway, but they share the same signal so the cleanup
|
|
47403
|
+
* pattern stays uniform across all configure* sites.
|
|
47404
|
+
* @private
|
|
47405
|
+
*/
|
|
47406
|
+
this._listenerAbortController = new AbortController();
|
|
47407
|
+
|
|
47134
47408
|
/**
|
|
47135
47409
|
* @private
|
|
47136
47410
|
*/
|
|
@@ -47179,6 +47453,7 @@ class AuroDatePicker extends AuroElement$5 {
|
|
|
47179
47453
|
|
|
47180
47454
|
/**
|
|
47181
47455
|
* Label announced for blackout (disabled but in-range) date cells.
|
|
47456
|
+
* @default 'unavailable'
|
|
47182
47457
|
*/
|
|
47183
47458
|
blackoutLabel: {
|
|
47184
47459
|
type: String,
|
|
@@ -47195,6 +47470,7 @@ class AuroDatePicker extends AuroElement$5 {
|
|
|
47195
47470
|
|
|
47196
47471
|
/**
|
|
47197
47472
|
* Accessible label for the calendar grid containing the days of the month.
|
|
47473
|
+
* @default 'Calendar days of the month'
|
|
47198
47474
|
*/
|
|
47199
47475
|
calendarGridLabel: {
|
|
47200
47476
|
type: String,
|
|
@@ -47357,6 +47633,7 @@ class AuroDatePicker extends AuroElement$5 {
|
|
|
47357
47633
|
|
|
47358
47634
|
/**
|
|
47359
47635
|
* Accessible label for the next month navigation button.
|
|
47636
|
+
* @default 'Next month'
|
|
47360
47637
|
*/
|
|
47361
47638
|
navLabelNextMonth: {
|
|
47362
47639
|
type: String,
|
|
@@ -47365,6 +47642,7 @@ class AuroDatePicker extends AuroElement$5 {
|
|
|
47365
47642
|
|
|
47366
47643
|
/**
|
|
47367
47644
|
* Accessible label for the previous month navigation button.
|
|
47645
|
+
* @default 'Previous month'
|
|
47368
47646
|
*/
|
|
47369
47647
|
navLabelPrevMonth: {
|
|
47370
47648
|
type: String,
|
|
@@ -47442,7 +47720,11 @@ class AuroDatePicker extends AuroElement$5 {
|
|
|
47442
47720
|
},
|
|
47443
47721
|
|
|
47444
47722
|
/**
|
|
47445
|
-
* Label announced for cells after
|
|
47723
|
+
* Label announced for cells after a fully selected range (both
|
|
47724
|
+
* `dateFrom` and `dateTo` are set). While a range is still being
|
|
47725
|
+
* picked (`dateFrom` set, `dateTo` unset), focused cells past the
|
|
47726
|
+
* start use `rangeLabelEndPreview` instead.
|
|
47727
|
+
* @default 'after range'
|
|
47446
47728
|
*/
|
|
47447
47729
|
rangeLabelAfterRange: {
|
|
47448
47730
|
type: String,
|
|
@@ -47451,6 +47733,7 @@ class AuroDatePicker extends AuroElement$5 {
|
|
|
47451
47733
|
|
|
47452
47734
|
/**
|
|
47453
47735
|
* Label announced for cells before the range start.
|
|
47736
|
+
* @default 'before range'
|
|
47454
47737
|
*/
|
|
47455
47738
|
rangeLabelBeforeRange: {
|
|
47456
47739
|
type: String,
|
|
@@ -47459,14 +47742,27 @@ class AuroDatePicker extends AuroElement$5 {
|
|
|
47459
47742
|
|
|
47460
47743
|
/**
|
|
47461
47744
|
* Label announced for the range end date cell.
|
|
47745
|
+
* @default 'range end'
|
|
47462
47746
|
*/
|
|
47463
47747
|
rangeLabelEnd: {
|
|
47464
47748
|
type: String,
|
|
47465
47749
|
reflect: true
|
|
47466
47750
|
},
|
|
47467
47751
|
|
|
47752
|
+
/**
|
|
47753
|
+
* Label announced for the focused cell while previewing a range end
|
|
47754
|
+
* (dateFrom set, dateTo not yet selected). Tells AT users that
|
|
47755
|
+
* pressing Enter would commit this cell as the range end.
|
|
47756
|
+
* @default 'previewing range end'
|
|
47757
|
+
*/
|
|
47758
|
+
rangeLabelEndPreview: {
|
|
47759
|
+
type: String,
|
|
47760
|
+
reflect: true
|
|
47761
|
+
},
|
|
47762
|
+
|
|
47468
47763
|
/**
|
|
47469
47764
|
* Label announced for cells within the selected range.
|
|
47765
|
+
* @default 'in range'
|
|
47470
47766
|
*/
|
|
47471
47767
|
rangeLabelInRange: {
|
|
47472
47768
|
type: String,
|
|
@@ -47475,6 +47771,7 @@ class AuroDatePicker extends AuroElement$5 {
|
|
|
47475
47771
|
|
|
47476
47772
|
/**
|
|
47477
47773
|
* Label announced for the range start date cell.
|
|
47774
|
+
* @default 'range start'
|
|
47478
47775
|
*/
|
|
47479
47776
|
rangeLabelStart: {
|
|
47480
47777
|
type: String,
|
|
@@ -47482,7 +47779,7 @@ class AuroDatePicker extends AuroElement$5 {
|
|
|
47482
47779
|
},
|
|
47483
47780
|
|
|
47484
47781
|
/**
|
|
47485
|
-
* Dates that the user should have for reference as part of their decision
|
|
47782
|
+
* Dates that the user should have for reference as part of their decision-making when selecting a date.
|
|
47486
47783
|
* This should be a JSON string array of ISO date strings (`YYYY-MM-DD`).
|
|
47487
47784
|
*/
|
|
47488
47785
|
referenceDates: {
|
|
@@ -47839,10 +48136,26 @@ class AuroDatePicker extends AuroElement$5 {
|
|
|
47839
48136
|
// ─── Vendor calendar time conversions ─────────────────────────────────────
|
|
47840
48137
|
|
|
47841
48138
|
/**
|
|
47842
|
-
* Converts a Unix timestamp (seconds) from the
|
|
48139
|
+
* Converts a Unix timestamp (seconds) from the vendored range-datepicker
|
|
48140
|
+
* (`src/vendor/wc-range-datepicker/day.js`) to an ISO date string.
|
|
48141
|
+
*
|
|
48142
|
+
* Timezone contract:
|
|
48143
|
+
* - INPUT: `time` is assumed to be the seconds-since-epoch of **local
|
|
48144
|
+
* midnight** for the intended calendar day. The vendor's Day constructor
|
|
48145
|
+
* builds it via `date-fns format(date, 't')` from a locally-constructed
|
|
48146
|
+
* Date, so this assumption currently holds end-to-end.
|
|
48147
|
+
* - OUTPUT: `dateFormatter.toISOFormatString` reads the Date's local
|
|
48148
|
+
* getFullYear/getMonth/getDate components, so the returned YYYY-MM-DD
|
|
48149
|
+
* string matches the local calendar day.
|
|
48150
|
+
*
|
|
48151
|
+
* If the vendor ever switches to emitting UTC-midnight timestamps, this
|
|
48152
|
+
* conversion will silently shift the returned date by one day in zones
|
|
48153
|
+
* west of UTC. Any vendor swap should re-verify this contract; the TZ
|
|
48154
|
+
* regression suite (`npm run test:hst`, UTC-10) will catch the symptom.
|
|
48155
|
+
*
|
|
47843
48156
|
* @private
|
|
47844
|
-
* @param {number} time - Unix timestamp
|
|
47845
|
-
* @returns {string} ISO date string (yyyy-mm-dd).
|
|
48157
|
+
* @param {number} time - Unix timestamp (seconds), local midnight of the day.
|
|
48158
|
+
* @returns {string} ISO date string (yyyy-mm-dd) reflecting the local calendar day.
|
|
47846
48159
|
*/
|
|
47847
48160
|
convertWcTimeToDate(time) {
|
|
47848
48161
|
return dateFormatter$1.toISOFormatString(new Date(time * 1000));
|
|
@@ -47944,8 +48257,8 @@ class AuroDatePicker extends AuroElement$5 {
|
|
|
47944
48257
|
}
|
|
47945
48258
|
}
|
|
47946
48259
|
|
|
47947
|
-
// Focus the calendar grid wrapper (
|
|
47948
|
-
// the SR announcement for the active cell
|
|
48260
|
+
// Focus the calendar grid wrapper. The live region (announced just
|
|
48261
|
+
// below) handles the SR announcement for the active cell.
|
|
47949
48262
|
if (activeCell) {
|
|
47950
48263
|
this.calendar.focusActiveCell();
|
|
47951
48264
|
|
|
@@ -47995,11 +48308,13 @@ class AuroDatePicker extends AuroElement$5 {
|
|
|
47995
48308
|
this.dropdown.bibDialogLabel = labelElement.textContent.trim() || undefined;
|
|
47996
48309
|
}
|
|
47997
48310
|
|
|
48311
|
+
const { signal } = this._listenerAbortController;
|
|
48312
|
+
|
|
47998
48313
|
this.dropdown.addEventListener('auroDropdown-triggerClick', () => {
|
|
47999
48314
|
if (!this.isPopoverVisible) {
|
|
48000
48315
|
this.dropdown.show();
|
|
48001
48316
|
}
|
|
48002
|
-
});
|
|
48317
|
+
}, { signal });
|
|
48003
48318
|
|
|
48004
48319
|
this.dropdown.addEventListener('auroDropdown-toggled', () => {
|
|
48005
48320
|
this.notifyDatepickerToggled();
|
|
@@ -48017,7 +48332,7 @@ class AuroDatePicker extends AuroElement$5 {
|
|
|
48017
48332
|
if (this.valueObject) {
|
|
48018
48333
|
this.centralDate = this.value;
|
|
48019
48334
|
} else if (!this.centralDate && !this.calendarStartDate && !this.minDate) {
|
|
48020
|
-
this.centralDate = new Date();
|
|
48335
|
+
this.centralDate = dateFormatter$1.toISOFormatString(new Date());
|
|
48021
48336
|
}
|
|
48022
48337
|
}
|
|
48023
48338
|
|
|
@@ -48097,7 +48412,7 @@ class AuroDatePicker extends AuroElement$5 {
|
|
|
48097
48412
|
this.forceScrollOnNextMobileCalendarRender = false;
|
|
48098
48413
|
}, 0);
|
|
48099
48414
|
}
|
|
48100
|
-
});
|
|
48415
|
+
}, { signal });
|
|
48101
48416
|
|
|
48102
48417
|
// Handle responsive strategy changes while the dropdown is open
|
|
48103
48418
|
// (e.g. resizing from desktop → mobile or vice versa).
|
|
@@ -48144,7 +48459,7 @@ class AuroDatePicker extends AuroElement$5 {
|
|
|
48144
48459
|
});
|
|
48145
48460
|
});
|
|
48146
48461
|
}
|
|
48147
|
-
});
|
|
48462
|
+
}, { signal });
|
|
48148
48463
|
}
|
|
48149
48464
|
|
|
48150
48465
|
/**
|
|
@@ -48157,6 +48472,8 @@ class AuroDatePicker extends AuroElement$5 {
|
|
|
48157
48472
|
|
|
48158
48473
|
this.inputList = [...this.dropdown.querySelectorAll(this.inputTag._$litStatic$)];
|
|
48159
48474
|
|
|
48475
|
+
const { signal } = this._listenerAbortController;
|
|
48476
|
+
|
|
48160
48477
|
this.inputList.forEach((input, index) => {
|
|
48161
48478
|
input.addEventListener('input', (event) => {
|
|
48162
48479
|
event.stopPropagation();
|
|
@@ -48168,7 +48485,7 @@ class AuroDatePicker extends AuroElement$5 {
|
|
|
48168
48485
|
}
|
|
48169
48486
|
|
|
48170
48487
|
this.notifyValueChanged();
|
|
48171
|
-
});
|
|
48488
|
+
}, { signal });
|
|
48172
48489
|
|
|
48173
48490
|
input.addEventListener('auroFormElement-validated', (evt) => {
|
|
48174
48491
|
// not to bubble up input's validated event.
|
|
@@ -48184,7 +48501,7 @@ class AuroDatePicker extends AuroElement$5 {
|
|
|
48184
48501
|
this.validity = evt.detail.validity;
|
|
48185
48502
|
this.errorMessage = evt.detail.message;
|
|
48186
48503
|
}
|
|
48187
|
-
});
|
|
48504
|
+
}, { signal });
|
|
48188
48505
|
});
|
|
48189
48506
|
}
|
|
48190
48507
|
|
|
@@ -48198,19 +48515,32 @@ class AuroDatePicker extends AuroElement$5 {
|
|
|
48198
48515
|
this.calendar.datepicker = this;
|
|
48199
48516
|
this.calendar.dropdown = this.dropdown;
|
|
48200
48517
|
|
|
48518
|
+
const { signal } = this._listenerAbortController;
|
|
48519
|
+
|
|
48201
48520
|
this.calendar.addEventListener('auroCalendar-dateSelected', () => {
|
|
48202
|
-
|
|
48203
|
-
|
|
48521
|
+
// Compare the input's ISO value against the *converted* calendar
|
|
48522
|
+
// timestamp (the vendor's `dateFrom`/`dateTo` are Unix-seconds
|
|
48523
|
+
// strings — comparing the input ISO directly against them would
|
|
48524
|
+
// never match, so the write would fire on every event and emit
|
|
48525
|
+
// redundant input/change activity).
|
|
48526
|
+
if (this.calendar.dateFrom !== undefined) {
|
|
48527
|
+
const fromIso = this.convertWcTimeToDate(this.calendar.dateFrom);
|
|
48528
|
+
if (this.inputList[0].value !== fromIso) {
|
|
48529
|
+
this.inputList[0].value = fromIso;
|
|
48530
|
+
}
|
|
48204
48531
|
}
|
|
48205
48532
|
|
|
48206
|
-
if (this.inputList[1] && this.calendar.dateTo
|
|
48207
|
-
|
|
48533
|
+
if (this.inputList[1] && this.calendar.dateTo) {
|
|
48534
|
+
const toIso = this.convertWcTimeToDate(this.calendar.dateTo);
|
|
48535
|
+
if (this.inputList[1].value !== toIso) {
|
|
48536
|
+
this.inputList[1].value = toIso;
|
|
48537
|
+
}
|
|
48208
48538
|
}
|
|
48209
|
-
});
|
|
48539
|
+
}, { signal });
|
|
48210
48540
|
|
|
48211
48541
|
this.calendar.addEventListener('auroCalendar-dismissRequest', () => {
|
|
48212
48542
|
this.dropdown.hide();
|
|
48213
|
-
});
|
|
48543
|
+
}, { signal });
|
|
48214
48544
|
|
|
48215
48545
|
this.calendar.addEventListener('auroCalendar-centralDateChanged', (event) => {
|
|
48216
48546
|
const match = this.centralDateObject && this.util.datesMatch(event.detail.date, this.centralDateObject);
|
|
@@ -48220,7 +48550,7 @@ class AuroDatePicker extends AuroElement$5 {
|
|
|
48220
48550
|
}
|
|
48221
48551
|
|
|
48222
48552
|
this.notifyMonthChanged(event);
|
|
48223
|
-
});
|
|
48553
|
+
}, { signal });
|
|
48224
48554
|
}
|
|
48225
48555
|
|
|
48226
48556
|
/**
|
|
@@ -48229,10 +48559,17 @@ class AuroDatePicker extends AuroElement$5 {
|
|
|
48229
48559
|
* @returns {void}
|
|
48230
48560
|
*/
|
|
48231
48561
|
configureDatepicker() {
|
|
48562
|
+
// These listeners are on `this` (the host), so they would GC with the
|
|
48563
|
+
// host even without the abort signal — see the leak rationale on
|
|
48564
|
+
// `_listenerAbortController`. The signal is still passed for uniform
|
|
48565
|
+
// cleanup semantics with the child-element listeners in the other
|
|
48566
|
+
// configure* methods.
|
|
48567
|
+
const { signal } = this._listenerAbortController;
|
|
48568
|
+
|
|
48232
48569
|
this.addEventListener('focusin', () => {
|
|
48233
48570
|
this.touched = true;
|
|
48234
48571
|
this.hasFocus = true;
|
|
48235
|
-
});
|
|
48572
|
+
}, { signal });
|
|
48236
48573
|
|
|
48237
48574
|
this.addEventListener('focusout', () => {
|
|
48238
48575
|
this.hasFocus = false;
|
|
@@ -48244,7 +48581,7 @@ class AuroDatePicker extends AuroElement$5 {
|
|
|
48244
48581
|
if (!this.matches(':focus-within')) {
|
|
48245
48582
|
this.validate();
|
|
48246
48583
|
}
|
|
48247
|
-
});
|
|
48584
|
+
}, { signal });
|
|
48248
48585
|
|
|
48249
48586
|
if (this.valueObject) {
|
|
48250
48587
|
this.calendar.dateFrom = this.convertToWcValidTime(this.valueObject);
|
|
@@ -48442,6 +48779,41 @@ class AuroDatePicker extends AuroElement$5 {
|
|
|
48442
48779
|
return this.validity !== undefined && this.validity !== 'valid';
|
|
48443
48780
|
}
|
|
48444
48781
|
|
|
48782
|
+
/**
|
|
48783
|
+
* Per-class dedup set used by `_warnInvalidLocale`. Static so the dedup
|
|
48784
|
+
* spans every datepicker instance on the page; lives on the class (not
|
|
48785
|
+
* at module scope) so it stays an encapsulated implementation detail of
|
|
48786
|
+
* this component and does not interfere with WCA's class-JSDoc
|
|
48787
|
+
* attachment.
|
|
48788
|
+
* @private
|
|
48789
|
+
*/
|
|
48790
|
+
static _warnedInvalidLocales = new Set();
|
|
48791
|
+
|
|
48792
|
+
/**
|
|
48793
|
+
* Logs a one-time `console.debug` when an unsupported locale falls back to
|
|
48794
|
+
* en-US. Deduped by the offending tag so noisy re-renders that resurface
|
|
48795
|
+
* the same bad value stay quiet, but each new bad value still signals so
|
|
48796
|
+
* consumers can spot the typo or missing tag.
|
|
48797
|
+
* @private
|
|
48798
|
+
* @param {string|undefined} badLocale - The locale value that failed.
|
|
48799
|
+
* @returns {void}
|
|
48800
|
+
*/
|
|
48801
|
+
_warnInvalidLocale(badLocale) {
|
|
48802
|
+
// Stringify without coalescing — `String(undefined)` / `String(null)`
|
|
48803
|
+
// surface the actual offending value in the log, instead of the
|
|
48804
|
+
// ambiguous `Locale ""` that `String(badLocale ?? '')` would produce.
|
|
48805
|
+
// Dedup still works correctly because each unique stringification
|
|
48806
|
+
// becomes its own Set entry.
|
|
48807
|
+
const key = String(badLocale);
|
|
48808
|
+
const seen = AuroDatePicker._warnedInvalidLocales;
|
|
48809
|
+
if (seen.has(key)) {
|
|
48810
|
+
return;
|
|
48811
|
+
}
|
|
48812
|
+
seen.add(key);
|
|
48813
|
+
// eslint-disable-next-line no-console
|
|
48814
|
+
console.debug(`[auro-datepicker] Locale "${key}" is not supported by Intl.DateTimeFormat. Falling back to "en-US". Pass a BCP 47 tag such as "en-US", "fr-FR", or "ja-JP".`);
|
|
48815
|
+
}
|
|
48816
|
+
|
|
48445
48817
|
/**
|
|
48446
48818
|
* Lifecycle method to check if the locale is valid.
|
|
48447
48819
|
* @ignore
|
|
@@ -48452,10 +48824,15 @@ class AuroDatePicker extends AuroElement$5 {
|
|
|
48452
48824
|
if (changedProperties.has('locale')) {
|
|
48453
48825
|
try {
|
|
48454
48826
|
const supported = Intl.DateTimeFormat.supportedLocalesOf([this.locale], { localeMatcher: 'lookup' });
|
|
48455
|
-
|
|
48827
|
+
if (supported.length > 0) {
|
|
48828
|
+
this._validLocale = this.locale;
|
|
48829
|
+
} else {
|
|
48830
|
+
this._validLocale = 'en-US';
|
|
48831
|
+
this._warnInvalidLocale(this.locale);
|
|
48832
|
+
}
|
|
48456
48833
|
} catch {
|
|
48457
|
-
console.debug(`[AuroDatePicker] The locale "${this.locale}" is not valid. Falling back to "en-US".`); // eslint-disable-line no-console
|
|
48458
48834
|
this._validLocale = 'en-US';
|
|
48835
|
+
this._warnInvalidLocale(this.locale);
|
|
48459
48836
|
}
|
|
48460
48837
|
|
|
48461
48838
|
const previousLocaleFormat = getDateFormatFromLocale$1(changedProperties.get('locale'));
|
|
@@ -48537,8 +48914,6 @@ class AuroDatePicker extends AuroElement$5 {
|
|
|
48537
48914
|
// Skip centralDate update when user clicked a cell in range mode
|
|
48538
48915
|
// to prevent the displayed months from shifting
|
|
48539
48916
|
this.centralDate = this.value;
|
|
48540
|
-
//TODO: TEST THIS CHANGE
|
|
48541
|
-
// this.calendarRenderUtil.updateCentralDate(this, this.value);
|
|
48542
48917
|
}
|
|
48543
48918
|
|
|
48544
48919
|
this.setHasValue();
|
|
@@ -48598,8 +48973,6 @@ class AuroDatePicker extends AuroElement$5 {
|
|
|
48598
48973
|
// Skip centralDate update when user clicked a cell in range mode
|
|
48599
48974
|
// to prevent the displayed months from shifting
|
|
48600
48975
|
this.centralDate = this.valueEnd;
|
|
48601
|
-
// TODO: TEST THIS CHANGE
|
|
48602
|
-
// this.calendarRenderUtil.updateCentralDate(this, this.formattedValueEnd);
|
|
48603
48976
|
}
|
|
48604
48977
|
|
|
48605
48978
|
this.validate();
|
|
@@ -48741,7 +49114,7 @@ class AuroDatePicker extends AuroElement$5 {
|
|
|
48741
49114
|
* @returns {void}
|
|
48742
49115
|
*/
|
|
48743
49116
|
configureClickHandler() {
|
|
48744
|
-
this.addEventListener('click', this.handleClick);
|
|
49117
|
+
this.addEventListener('click', this.handleClick, { signal: this._listenerAbortController.signal });
|
|
48745
49118
|
}
|
|
48746
49119
|
|
|
48747
49120
|
firstUpdated() {
|
|
@@ -48749,6 +49122,15 @@ class AuroDatePicker extends AuroElement$5 {
|
|
|
48749
49122
|
// Add the tag name as an attribute if it is different than the component name
|
|
48750
49123
|
this.runtimeUtils.handleComponentTagRename(this, 'auro-datepicker');
|
|
48751
49124
|
|
|
49125
|
+
// If the element was disconnected before this first render finished,
|
|
49126
|
+
// disconnectedCallback's microtask already aborted the controller. The
|
|
49127
|
+
// connectedCallback reinit guard skips that case because `hasUpdated`
|
|
49128
|
+
// is still false. Mint a fresh controller here so configure* registers
|
|
49129
|
+
// listeners against a live signal.
|
|
49130
|
+
if (this._listenerAbortController.signal.aborted) {
|
|
49131
|
+
this._listenerAbortController = new AbortController();
|
|
49132
|
+
}
|
|
49133
|
+
|
|
48752
49134
|
this.configureDropdown();
|
|
48753
49135
|
this.configureInput();
|
|
48754
49136
|
this.configureCalendar();
|
|
@@ -48760,9 +49142,36 @@ class AuroDatePicker extends AuroElement$5 {
|
|
|
48760
49142
|
connectedCallback() {
|
|
48761
49143
|
super.connectedCallback();
|
|
48762
49144
|
|
|
49145
|
+
// True reconnect after `disconnectedCallback` aborted our controller:
|
|
49146
|
+
// the existing signal is dead, so listeners registered against it
|
|
49147
|
+
// would never fire. Create a fresh controller and re-run the
|
|
49148
|
+
// configure* wiring (each method is idempotent — it just re-caches
|
|
49149
|
+
// child refs and re-registers listeners against the new signal).
|
|
49150
|
+
// `hasUpdated` gates this so the *first* connect (which precedes
|
|
49151
|
+
// firstUpdated) still falls through to firstUpdated's initial wiring.
|
|
49152
|
+
if (this.hasUpdated && this._listenerAbortController.signal.aborted) {
|
|
49153
|
+
this._listenerAbortController = new AbortController();
|
|
49154
|
+
this.configureDropdown();
|
|
49155
|
+
this.configureInput();
|
|
49156
|
+
this.configureCalendar();
|
|
49157
|
+
this.configureDatepicker();
|
|
49158
|
+
this.configureClickHandler();
|
|
49159
|
+
}
|
|
49160
|
+
|
|
48763
49161
|
this.locale = this.domHandler.getLocale(this);
|
|
48764
49162
|
}
|
|
48765
49163
|
|
|
49164
|
+
disconnectedCallback() {
|
|
49165
|
+
super.disconnectedCallback();
|
|
49166
|
+
// Defer so that re-parenting (auro-drawer slotting it into a dialog,
|
|
49167
|
+
// for example) does not abort listeners we still need after reconnect.
|
|
49168
|
+
queueMicrotask(() => {
|
|
49169
|
+
if (!this.isConnected) {
|
|
49170
|
+
this._listenerAbortController.abort();
|
|
49171
|
+
}
|
|
49172
|
+
});
|
|
49173
|
+
}
|
|
49174
|
+
|
|
48766
49175
|
// layout render methods
|
|
48767
49176
|
// ------------------------------------
|
|
48768
49177
|
|
|
@@ -50258,7 +50667,7 @@ let AuroHelpText$1$2 = class AuroHelpText extends i$2 {
|
|
|
50258
50667
|
}
|
|
50259
50668
|
};
|
|
50260
50669
|
|
|
50261
|
-
var formkitVersion$1$2 = '
|
|
50670
|
+
var formkitVersion$1$2 = '202606261928';
|
|
50262
50671
|
|
|
50263
50672
|
// Copyright (c) 2026 Alaska Airlines. All rights reserved. Licensed under the Apache-2.0 license
|
|
50264
50673
|
// See LICENSE in the project root for license information.
|
|
@@ -54586,7 +54995,7 @@ let AuroHelpText$6 = class AuroHelpText extends i$2 {
|
|
|
54586
54995
|
}
|
|
54587
54996
|
};
|
|
54588
54997
|
|
|
54589
|
-
var formkitVersion$6 = '
|
|
54998
|
+
var formkitVersion$6 = '202606261928';
|
|
54590
54999
|
|
|
54591
55000
|
let AuroElement$1$2 = class AuroElement extends i$2 {
|
|
54592
55001
|
static get properties() {
|
|
@@ -55858,7 +56267,7 @@ let AuroDropdown$2 = class AuroDropdown extends AuroElement$1$2 {
|
|
|
55858
56267
|
role="${o$4(this.triggerContentFocusable ? undefined : this.a11yRole)}"
|
|
55859
56268
|
aria-expanded="${o$4(this.a11yRole === 'button' || this.triggerContentFocusable ? undefined : this.isPopoverVisible)}"
|
|
55860
56269
|
aria-controls="${o$4(this.a11yRole === 'button' || this.triggerContentFocusable ? undefined : this.dropdownId)}"
|
|
55861
|
-
aria-haspopup="${o$4(this.a11yRole === 'combobox' ? 'listbox' : undefined)}"
|
|
56270
|
+
aria-haspopup="${o$4(this.a11yRole === 'combobox' && !this.triggerContentFocusable ? 'listbox' : undefined)}"
|
|
55862
56271
|
aria-labelledby="${o$4(this.triggerContentFocusable ? undefined : 'triggerLabel')}"
|
|
55863
56272
|
aria-disabled="${o$4(this.disabled ? 'true' : undefined)}"
|
|
55864
56273
|
@focusin="${this.handleFocusin}"
|
|
@@ -56991,6 +57400,13 @@ class AuroCounterGroup extends AuroElement$4 {
|
|
|
56991
57400
|
*/
|
|
56992
57401
|
configureDropdownCounters() {
|
|
56993
57402
|
this.dropdown = this.shadowRoot.querySelector(this.dropdownTag._$litStatic$);
|
|
57403
|
+
|
|
57404
|
+
// Counter rows are slotted into the bib through multiple shadow roots
|
|
57405
|
+
// (dropdown → bib → bibtemplate → counter-group → counter), so the floater's
|
|
57406
|
+
// `:focus-within` focus-loss check fails to match the dropdown host in Chromium
|
|
57407
|
+
// and the bib auto-closes immediately after opening. Mirrors auro-select.
|
|
57408
|
+
this.dropdown.noHideOnThisFocusLoss = true;
|
|
57409
|
+
|
|
56994
57410
|
this.dropdown.requestUpdate();
|
|
56995
57411
|
|
|
56996
57412
|
const counterWrapper = this.shadowRoot.querySelector('auro-counter-wrapper');
|
|
@@ -58527,7 +58943,7 @@ let AuroHelpText$5 = class AuroHelpText extends i$2 {
|
|
|
58527
58943
|
}
|
|
58528
58944
|
};
|
|
58529
58945
|
|
|
58530
|
-
var formkitVersion$5 = '
|
|
58946
|
+
var formkitVersion$5 = '202606261928';
|
|
58531
58947
|
|
|
58532
58948
|
// Copyright (c) Alaska Air. All right reserved. Licensed under the Apache-2.0 license
|
|
58533
58949
|
// See LICENSE in the project root for license information.
|
|
@@ -60277,7 +60693,7 @@ let AuroHelpText$4 = class AuroHelpText extends i$2 {
|
|
|
60277
60693
|
}
|
|
60278
60694
|
};
|
|
60279
60695
|
|
|
60280
|
-
var formkitVersion$4 = '
|
|
60696
|
+
var formkitVersion$4 = '202606261928';
|
|
60281
60697
|
|
|
60282
60698
|
// Copyright (c) 2026 Alaska Airlines. All rights reserved. Licensed under the Apache-2.0 license
|
|
60283
60699
|
// See LICENSE in the project root for license information.
|
|
@@ -65492,7 +65908,7 @@ let AuroHelpText$2 = class AuroHelpText extends i$2 {
|
|
|
65492
65908
|
}
|
|
65493
65909
|
};
|
|
65494
65910
|
|
|
65495
|
-
var formkitVersion$2 = '
|
|
65911
|
+
var formkitVersion$2 = '202606261928';
|
|
65496
65912
|
|
|
65497
65913
|
let AuroElement$2$1 = class AuroElement extends i$2 {
|
|
65498
65914
|
static get properties() {
|
|
@@ -66764,7 +67180,7 @@ let AuroDropdown$1 = class AuroDropdown extends AuroElement$2$1 {
|
|
|
66764
67180
|
role="${o$4(this.triggerContentFocusable ? undefined : this.a11yRole)}"
|
|
66765
67181
|
aria-expanded="${o$4(this.a11yRole === 'button' || this.triggerContentFocusable ? undefined : this.isPopoverVisible)}"
|
|
66766
67182
|
aria-controls="${o$4(this.a11yRole === 'button' || this.triggerContentFocusable ? undefined : this.dropdownId)}"
|
|
66767
|
-
aria-haspopup="${o$4(this.a11yRole === 'combobox' ? 'listbox' : undefined)}"
|
|
67183
|
+
aria-haspopup="${o$4(this.a11yRole === 'combobox' && !this.triggerContentFocusable ? 'listbox' : undefined)}"
|
|
66768
67184
|
aria-labelledby="${o$4(this.triggerContentFocusable ? undefined : 'triggerLabel')}"
|
|
66769
67185
|
aria-disabled="${o$4(this.disabled ? 'true' : undefined)}"
|
|
66770
67186
|
@focusin="${this.handleFocusin}"
|
|
@@ -79086,7 +79502,7 @@ let AuroHelpText$1$1 = class AuroHelpText extends i$2 {
|
|
|
79086
79502
|
}
|
|
79087
79503
|
};
|
|
79088
79504
|
|
|
79089
|
-
var formkitVersion$1$1 = '
|
|
79505
|
+
var formkitVersion$1$1 = '202606261928';
|
|
79090
79506
|
|
|
79091
79507
|
// Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
|
|
79092
79508
|
// See LICENSE in the project root for license information.
|
|
@@ -80207,7 +80623,7 @@ let AuroBibtemplate$1 = class AuroBibtemplate extends i$2 {
|
|
|
80207
80623
|
}
|
|
80208
80624
|
};
|
|
80209
80625
|
|
|
80210
|
-
var formkitVersion$3 = '
|
|
80626
|
+
var formkitVersion$3 = '202606261928';
|
|
80211
80627
|
|
|
80212
80628
|
var styleCss$1$3 = i$4`.util_displayInline{display:inline}.util_displayInlineBlock{display:inline-block}.util_displayBlock{display:block}.util_displayFlex{display:flex}.util_displayHidden{display:none}.util_displayHiddenVisually{position:absolute;overflow:hidden;clip:rect(1px, 1px, 1px, 1px);width:1px;height:1px;padding:0;border:0}:host{display:block;text-align:left}:host [auro-dropdown]{--ds-auro-dropdown-trigger-background-color: transparent}:host #inputInBib::part(wrapper){box-shadow:none}:host #inputInBib::part(accent-left){display:none}:host([layout*=classic]) [auro-input]{width:100%}:host([layout*=classic]) [auro-input]::part(helpText){display:none}:host([layout*=classic]) #slotHolder{display:none}`;
|
|
80213
80629
|
|
|
@@ -85027,10 +85443,14 @@ const selectKeyboardStrategy = {
|
|
|
85027
85443
|
if (!lastOption) {
|
|
85028
85444
|
return;
|
|
85029
85445
|
}
|
|
85446
|
+
// Pre-stash before show() so the auroDropdown-toggled handler's
|
|
85447
|
+
// `!optionActive` guard short-circuits the firstActive/selected fallback —
|
|
85448
|
+
// otherwise show() synchronously fires the handler and writes
|
|
85449
|
+
// aria-activedescendant once before we overwrite it.
|
|
85450
|
+
component.menu.updateActiveOption(lastOption);
|
|
85030
85451
|
if (!ctx.isExpanded) {
|
|
85031
85452
|
component.dropdown.show();
|
|
85032
85453
|
}
|
|
85033
|
-
component.menu.updateActiveOption(lastOption);
|
|
85034
85454
|
},
|
|
85035
85455
|
|
|
85036
85456
|
Enter(component, evt, ctx) {
|
|
@@ -85054,10 +85474,11 @@ const selectKeyboardStrategy = {
|
|
|
85054
85474
|
if (!firstOption) {
|
|
85055
85475
|
return;
|
|
85056
85476
|
}
|
|
85477
|
+
// See End() for why this must run before show().
|
|
85478
|
+
component.menu.updateActiveOption(firstOption);
|
|
85057
85479
|
if (!ctx.isExpanded) {
|
|
85058
85480
|
component.dropdown.show();
|
|
85059
85481
|
}
|
|
85060
|
-
component.menu.updateActiveOption(firstOption);
|
|
85061
85482
|
},
|
|
85062
85483
|
|
|
85063
85484
|
Tab(component, evt, ctx) {
|
|
@@ -89004,7 +89425,7 @@ let AuroHelpText$1 = class AuroHelpText extends i$2 {
|
|
|
89004
89425
|
}
|
|
89005
89426
|
};
|
|
89006
89427
|
|
|
89007
|
-
var formkitVersion$1 = '
|
|
89428
|
+
var formkitVersion$1 = '202606261928';
|
|
89008
89429
|
|
|
89009
89430
|
class AuroElement extends i$2 {
|
|
89010
89431
|
static get properties() {
|
|
@@ -90276,7 +90697,7 @@ class AuroDropdown extends AuroElement {
|
|
|
90276
90697
|
role="${o$4(this.triggerContentFocusable ? undefined : this.a11yRole)}"
|
|
90277
90698
|
aria-expanded="${o$4(this.a11yRole === 'button' || this.triggerContentFocusable ? undefined : this.isPopoverVisible)}"
|
|
90278
90699
|
aria-controls="${o$4(this.a11yRole === 'button' || this.triggerContentFocusable ? undefined : this.dropdownId)}"
|
|
90279
|
-
aria-haspopup="${o$4(this.a11yRole === 'combobox' ? 'listbox' : undefined)}"
|
|
90700
|
+
aria-haspopup="${o$4(this.a11yRole === 'combobox' && !this.triggerContentFocusable ? 'listbox' : undefined)}"
|
|
90280
90701
|
aria-labelledby="${o$4(this.triggerContentFocusable ? undefined : 'triggerLabel')}"
|
|
90281
90702
|
aria-disabled="${o$4(this.disabled ? 'true' : undefined)}"
|
|
90282
90703
|
@focusin="${this.handleFocusin}"
|
|
@@ -91026,7 +91447,7 @@ class AuroHelpText extends i$2 {
|
|
|
91026
91447
|
}
|
|
91027
91448
|
}
|
|
91028
91449
|
|
|
91029
|
-
var formkitVersion = '
|
|
91450
|
+
var formkitVersion = '202606261928';
|
|
91030
91451
|
|
|
91031
91452
|
var styleCss = i$4`.util_displayInline{display:inline}.util_displayInlineBlock{display:inline-block}.util_displayBlock{display:block}.util_displayFlex{display:flex}.util_displayHidden{display:none}.util_displayHiddenVisually{position:absolute;overflow:hidden;clip:rect(1px, 1px, 1px, 1px);width:1px;height:1px;padding:0;border:0}.body-default{font-size:var(--wcss-body-default-font-size, 1rem);font-weight:var(--wcss-body-default-weight, );line-height:var(--wcss-body-default-line-height, 1.5rem)}.body-default,.body-default-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-default-emphasized{font-size:var(--wcss-body-default-emphasized-font-size, 1rem);font-weight:var(--wcss-body-default-emphasized-weight, );line-height:var(--wcss-body-default-emphasized-line-height, 1.5rem)}.body-lg{font-size:var(--wcss-body-lg-font-size, 1.125rem);font-weight:var(--wcss-body-lg-weight, );line-height:var(--wcss-body-lg-line-height, 1.625rem)}.body-lg,.body-lg-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-lg-emphasized{font-size:var(--wcss-body-lg-emphasized-font-size, 1.125rem);font-weight:var(--wcss-body-lg-emphasized-weight, );line-height:var(--wcss-body-lg-emphasized-line-height, 1.625rem)}.body-sm{font-size:var(--wcss-body-sm-font-size, 0.875rem);font-weight:var(--wcss-body-sm-weight, );line-height:var(--wcss-body-sm-line-height, 1.25rem)}.body-sm,.body-sm-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-sm-emphasized{font-size:var(--wcss-body-sm-emphasized-font-size, 0.875rem);font-weight:var(--wcss-body-sm-emphasized-weight, );line-height:var(--wcss-body-sm-emphasized-line-height, 1.25rem)}.body-xs{font-size:var(--wcss-body-xs-font-size, 0.75rem);font-weight:var(--wcss-body-xs-weight, );line-height:var(--wcss-body-xs-line-height, 1rem)}.body-xs,.body-xs-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-xs-emphasized{font-size:var(--wcss-body-xs-emphasized-font-size, 0.75rem);font-weight:var(--wcss-body-xs-emphasized-weight, );line-height:var(--wcss-body-xs-emphasized-line-height, 1rem)}.body-2xs{font-size:var(--wcss-body-2xs-font-size, 0.625rem);font-weight:var(--wcss-body-2xs-weight, );line-height:var(--wcss-body-2xs-line-height, 0.875rem)}.body-2xs,.body-2xs-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-2xs-emphasized{font-size:var(--wcss-body-2xs-emphasized-font-size, 0.625rem);font-weight:var(--wcss-body-2xs-emphasized-weight, );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-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, 300);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, 300);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, 0.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, 0.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, 0.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, 0.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, 0.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, 0.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(0.875rem, 1.1666666667vw, 0.875rem));font-weight:var(--wcss-accent-2xs-weight, 450);letter-spacing:var(--wcss-accent-2xs-letter-spacing, 0.1em);line-height:var(--wcss-accent-2xs-line-height, 1.3);text-transform:uppercase}[auro-dropdown]{--ds-auro-dropdown-trigger-border-color: var(--ds-auro-select-border-color);--ds-auro-dropdown-trigger-background-color: var(--ds-auro-select-background-color);--ds-auro-dropdown-trigger-container-color: var(--ds-auro-select-background-color);--ds-auro-dropdown-trigger-outline-color: var(--ds-auro-select-outline-color)}:host{display:inline-block;text-align:left;vertical-align:top}:host([layout*=emphasized]) [auro-dropdown],:host([layout*=snowflake]) [auro-dropdown]{--ds-auro-select-border-color: transparent}:host([layout*=emphasized]) .mainContent,:host([layout*=snowflake]) .mainContent{text-align:center}.mainContent{position:relative;display:flex;overflow:hidden;flex:1;flex-direction:column;align-items:center;justify-content:center}.valueContainer [slot=displayValue]{display:none}.accents{display:flex;flex-direction:row;align-items:center;justify-content:center}::slotted([slot=typeIcon]){margin-right:var(--ds-size-100, 0.5rem)}.displayValue{display:block}.displayValue:not(.force){display:none}.displayValue:not(.force).hasContent:is(.withValue):not(.hasFocus){display:block}.triggerContent{display:flex;width:100%;align-items:center;justify-content:center}:host([layout*=emphasized]) .triggerContent{padding:0 var(--ds-size-100, 0.5rem) 0 var(--ds-size-300, 1.5rem)}:host([layout*=snowflake]) .triggerContent{padding:0 var(--ds-size-100, 0.5rem) 0 var(--ds-size-200, 1rem)}:host([layout*=snowflake]) label{padding-block:var(--ds-size-25, 0.125rem)}:host([layout*=classic]) .triggerContent{padding:0 var(--ds-size-100, 0.5rem)}:host([layout*=classic]) .mainContent{align-items:start}:host([layout*=classic]) label{overflow:hidden;cursor:text;text-overflow:ellipsis;white-space:nowrap}:host([layout*=classic]) .value{height:auto}label{color:var(--ds-auro-select-label-text-color)}:host(:is([validity]:not([validity=valid]))) [auro-dropdown]{--ds-auro-select-border-color: var(--ds-basic-color-status-error, #e31f26);--ds-auro-select-outline-color: var(--ds-basic-color-status-error, #e31f26);--ds-auro-dropdown-helptext-text-color: var(--ds-basic-color-texticon-default, #2a2a2a)}:host([ondark]:is([validity]:not([validity=valid]))) [auro-dropdown],:host([appearance=inverse]:is([validity]:not([validity=valid]))) [auro-dropdown]{--ds-auro-select-border-color: var(--ds-advanced-color-state-error-inverse, #f9a4a8);--ds-auro-select-outline-color: var(--ds-advanced-color-state-error-inverse, #f9a4a8);--ds-auro-dropdown-helptext-text-color: var(--ds-basic-color-texticon-inverse, #ffffff)}#slotHolder{display:none}:host([fluid]){width:100%}:host([disabled]){pointer-events:none;user-select:none}:host([disabled]:not([ondark])) [auro-dropdown],:host([disabled]:not([appearance=inverse])) [auro-dropdown]{--ds-auro-select-border-color: var(--ds-basic-color-border-subtle, #dddddd)}:host(:not([layout*=classic])[disabled][ondark]) [auro-dropdown],:host(:not([layout*=classic])[disabled][appearance=inverse]) [auro-dropdown]{--ds-auro-select-border-color: transparent}`;
|
|
91032
91453
|
|
|
@@ -91902,10 +92323,14 @@ class AuroSelect extends AuroElement$1 {
|
|
|
91902
92323
|
this.dropdown.setActiveDescendant(this.optionActive);
|
|
91903
92324
|
}
|
|
91904
92325
|
|
|
91905
|
-
//
|
|
91906
|
-
//
|
|
91907
|
-
//
|
|
91908
|
-
//
|
|
92326
|
+
// Live-region announce only for [not selected] options. For activations
|
|
92327
|
+
// on an already-selected option — auto-activation on bib open, arrow
|
|
92328
|
+
// navigation back to the selection, or click in multiSelect — rely on
|
|
92329
|
+
// aria-activedescendant + aria-selected="true" to convey state per the
|
|
92330
|
+
// WAI-ARIA listbox pattern. This is intentional, not limited to the
|
|
92331
|
+
// initial activation on open: it also prevents a duplicate "X, selected"
|
|
92332
|
+
// when Enter on the active+selected option re-fires
|
|
92333
|
+
// auroMenu-selectedOption (see 03b289e39).
|
|
91909
92334
|
if (this.optionActive && !this.optionActive.hasAttribute('selected')) {
|
|
91910
92335
|
const optionText = this.optionActive.textContent.trim();
|
|
91911
92336
|
const message = `${optionText}, not selected`;
|
|
@@ -91926,6 +92351,7 @@ class AuroSelect extends AuroElement$1 {
|
|
|
91926
92351
|
});
|
|
91927
92352
|
|
|
91928
92353
|
this.menu.addEventListener('auroMenu-selectedOption', () => {
|
|
92354
|
+
const previousSelected = this.optionSelected;
|
|
91929
92355
|
|
|
91930
92356
|
// Update the displayed value
|
|
91931
92357
|
this.updateDisplayedValue();
|
|
@@ -91945,13 +92371,32 @@ class AuroSelect extends AuroElement$1 {
|
|
|
91945
92371
|
this.dropdown.trigger.focus();
|
|
91946
92372
|
}
|
|
91947
92373
|
|
|
91948
|
-
//
|
|
91949
|
-
//
|
|
91950
|
-
|
|
91951
|
-
|
|
91952
|
-
|
|
91953
|
-
|
|
91954
|
-
|
|
92374
|
+
// Describe the actual change. In multiSelect, currentLabel is the
|
|
92375
|
+
// concatenated remaining list — announcing "{list}, selected" after a
|
|
92376
|
+
// deselect would falsely claim every remaining label was just added.
|
|
92377
|
+
// Diff previous vs next to recover the toggled option.
|
|
92378
|
+
let announcement = '';
|
|
92379
|
+
if (this.multiSelect) {
|
|
92380
|
+
const prev = Array.isArray(previousSelected) ? previousSelected : [];
|
|
92381
|
+
const removed = prev.find((opt) => !nextSelected.includes(opt));
|
|
92382
|
+
const added = nextSelected.find((opt) => !prev.includes(opt));
|
|
92383
|
+
if (removed) {
|
|
92384
|
+
announcement = `${removed.textContent.trim()}, not selected`;
|
|
92385
|
+
} else if (added) {
|
|
92386
|
+
announcement = `${added.textContent.trim()}, selected`;
|
|
92387
|
+
}
|
|
92388
|
+
} else {
|
|
92389
|
+
announcement = `${this.menu.currentLabel}, selected`;
|
|
92390
|
+
}
|
|
92391
|
+
|
|
92392
|
+
// Delay so the utterance isn't overridden by VoiceOver's "collapsed"
|
|
92393
|
+
// announcement from aria-expanded when the dropdown closes.
|
|
92394
|
+
if (announcement) {
|
|
92395
|
+
const announcementDelay = 300;
|
|
92396
|
+
setTimeout(() => {
|
|
92397
|
+
announceToScreenReader(this._getAnnouncementRoot(), announcement);
|
|
92398
|
+
}, announcementDelay);
|
|
92399
|
+
}
|
|
91955
92400
|
});
|
|
91956
92401
|
}
|
|
91957
92402
|
|
|
@@ -92203,6 +92648,18 @@ class AuroSelect extends AuroElement$1 {
|
|
|
92203
92648
|
}
|
|
92204
92649
|
}
|
|
92205
92650
|
|
|
92651
|
+
connectedCallback() {
|
|
92652
|
+
super.connectedCallback();
|
|
92653
|
+
// Regression guard: firstUpdated() fires once per instance, so the label
|
|
92654
|
+
// observer setup it triggers does NOT re-run on reconnect. After a
|
|
92655
|
+
// disconnect+reconnect (reparent, SPA route swap), runtime label mutations
|
|
92656
|
+
// would silently stop syncing menu aria-label / dropdown.bibDialogLabel
|
|
92657
|
+
// unless we re-wire the observer here.
|
|
92658
|
+
if (this.hasUpdated) {
|
|
92659
|
+
this._observeLabelChanges();
|
|
92660
|
+
}
|
|
92661
|
+
}
|
|
92662
|
+
|
|
92206
92663
|
// lifecycle runs only after the element's DOM has been updated the first time
|
|
92207
92664
|
firstUpdated() {
|
|
92208
92665
|
// Add the tag name as an attribute if it is different than the component name
|
|
@@ -92344,6 +92801,12 @@ class AuroSelect extends AuroElement$1 {
|
|
|
92344
92801
|
* @private
|
|
92345
92802
|
*/
|
|
92346
92803
|
_handleNativeSelectChange(event) {
|
|
92804
|
+
// Hidden native <select> has no `multiple` attribute, so any change it fires
|
|
92805
|
+
// is a single raw value — applying it in multiSelect mode would collapse the
|
|
92806
|
+
// JSON-array `value` shape. Bfcache/autofill can reach this on a name-bearing
|
|
92807
|
+
// form control even with aria-hidden/tabindex=-1.
|
|
92808
|
+
if (this.multiSelect) return;
|
|
92809
|
+
|
|
92347
92810
|
const selectedOption = event.target.options[event.target.selectedIndex];
|
|
92348
92811
|
if (!selectedOption) return;
|
|
92349
92812
|
const selectedValue = selectedOption.value;
|