@aurodesignsystem-dev/auro-formkit 0.0.0-pr1497.0 → 0.0.0-pr1497.2
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/bibtemplate/dist/auro-bibtemplate.d.ts +7 -0
- package/components/bibtemplate/dist/index.js +9 -1
- package/components/bibtemplate/dist/registered.js +9 -1
- package/components/checkbox/demo/css-only.html +57 -0
- package/components/checkbox/demo/css-only.md +146 -0
- package/components/checkbox/demo/customize.min.js +1 -1
- package/components/checkbox/demo/getting-started.min.js +1 -1
- package/components/checkbox/demo/index.min.js +1 -1
- package/components/checkbox/demo/pages.json +1 -1
- package/components/checkbox/demo/styles.min.css +1 -1
- package/components/checkbox/demo/why-checkbox.html +57 -0
- package/components/checkbox/demo/why-checkbox.md +86 -0
- package/components/checkbox/dist/index.js +1 -1
- package/components/checkbox/dist/registered.js +1 -1
- package/components/combobox/demo/css-only.html +57 -0
- package/components/combobox/demo/css-only.md +209 -0
- package/components/combobox/demo/customize.min.js +250 -16
- package/components/combobox/demo/getting-started.min.js +250 -16
- package/components/combobox/demo/index.min.js +250 -16
- package/components/combobox/demo/pages.json +1 -1
- package/components/combobox/demo/styles.min.css +1 -1
- package/components/combobox/demo/why-combobox.html +57 -0
- package/components/combobox/demo/why-combobox.md +113 -0
- package/components/combobox/dist/index.js +250 -16
- package/components/combobox/dist/registered.js +250 -16
- package/components/counter/demo/css-only.html +57 -0
- package/components/counter/demo/css-only.md +184 -0
- package/components/counter/demo/customize.min.js +249 -15
- package/components/counter/demo/index.min.js +249 -15
- package/components/counter/demo/keyboard-behavior.md +1 -0
- package/components/counter/demo/pages.json +1 -1
- package/components/counter/demo/styles.min.css +1 -1
- package/components/counter/demo/why-counter.html +57 -0
- package/components/counter/demo/why-counter.md +108 -0
- package/components/counter/dist/index.js +10 -2
- package/components/counter/dist/registered.js +10 -2
- package/components/datepicker/demo/accessibility.md +54 -3
- package/components/datepicker/demo/api.md +63 -53
- package/components/datepicker/demo/css-only.html +57 -0
- package/components/datepicker/demo/css-only.md +151 -0
- package/components/datepicker/demo/customize.html +2 -0
- package/components/datepicker/demo/customize.js +19 -0
- package/components/datepicker/demo/customize.md +56 -0
- package/components/datepicker/demo/customize.min.js +36147 -0
- package/components/datepicker/demo/design.md +3 -1
- package/components/datepicker/demo/index.js +5 -1
- package/components/datepicker/demo/index.md +104 -15
- package/components/datepicker/demo/index.min.js +2485 -261
- package/components/datepicker/demo/keyboard-behavior.md +201 -2
- package/components/datepicker/demo/pages.json +1 -1
- package/components/datepicker/demo/styles.min.css +1 -1
- package/components/datepicker/demo/voiceover.md +21 -12
- package/components/datepicker/demo/why-datepicker.html +57 -0
- package/components/datepicker/demo/why-datepicker.md +133 -0
- package/components/datepicker/dist/index.js +2348 -211
- package/components/datepicker/dist/registered.js +2348 -211
- package/components/datepicker/dist/src/auro-calendar-cell.d.ts +113 -13
- package/components/datepicker/dist/src/auro-calendar-month.d.ts +38 -1
- package/components/datepicker/dist/src/auro-calendar.d.ts +258 -0
- package/components/datepicker/dist/src/auro-datepicker.d.ts +141 -41
- package/components/datepicker/dist/src/datepickerKeyboardStrategy.d.ts +5 -3
- package/components/dropdown/demo/accessibility.md +11 -0
- package/components/dropdown/demo/api.md +1 -0
- package/components/dropdown/demo/css-only.html +57 -0
- package/components/dropdown/demo/css-only.md +219 -0
- package/components/dropdown/demo/customize.md +3 -0
- package/components/dropdown/demo/customize.min.js +239 -13
- package/components/dropdown/demo/getting-started.min.js +239 -13
- package/components/dropdown/demo/index.min.js +239 -13
- package/components/dropdown/demo/keyboard-behavior.md +1 -0
- package/components/dropdown/demo/pages.json +1 -1
- package/components/dropdown/demo/styles.min.css +1 -1
- package/components/dropdown/demo/why-dropdown.html +57 -0
- package/components/dropdown/demo/why-dropdown.md +97 -0
- package/components/dropdown/dist/auro-dropdown.d.ts +34 -1
- package/components/dropdown/dist/index.js +239 -13
- package/components/dropdown/dist/registered.js +239 -13
- package/components/form/demo/css-only.html +57 -0
- package/components/form/demo/css-only.md +156 -0
- package/components/form/demo/customize.min.js +3098 -259
- package/components/form/demo/getting-started.min.js +3098 -259
- package/components/form/demo/index.min.js +3098 -259
- package/components/form/demo/pages.json +1 -1
- package/components/form/demo/registerDemoDeps.min.js +3098 -259
- package/components/form/demo/styles.min.css +1 -1
- package/components/form/demo/why-form.html +57 -0
- package/components/form/demo/why-form.md +101 -0
- package/components/input/demo/css-only.html +57 -0
- package/components/input/demo/css-only.md +199 -0
- 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/demo/pages.json +1 -1
- package/components/input/demo/styles.min.css +1 -1
- package/components/input/demo/why-input.html +57 -0
- package/components/input/demo/why-input.md +121 -0
- package/components/input/dist/index.js +1 -1
- package/components/input/dist/registered.js +1 -1
- package/components/menu/demo/css-only.html +57 -0
- package/components/menu/demo/css-only.md +166 -0
- package/components/menu/demo/pages.json +1 -1
- package/components/menu/demo/styles.min.css +1 -1
- package/components/menu/demo/why-menu.html +57 -0
- package/components/menu/demo/why-menu.md +104 -0
- package/components/radio/demo/css-only.html +57 -0
- package/components/radio/demo/css-only.md +151 -0
- package/components/radio/demo/customize.min.js +1764 -0
- package/components/radio/demo/demo-support.min.js +55807 -0
- package/components/radio/demo/getting-started.js +1 -1
- package/components/radio/demo/getting-started.md +1 -1
- package/components/radio/demo/getting-started.min.js +1783 -0
- package/components/radio/demo/index.min.js +1 -1
- package/components/radio/demo/pages.json +1 -1
- package/components/radio/demo/styles.min.css +1 -1
- package/components/radio/demo/why-radio.html +57 -0
- package/components/radio/demo/why-radio.md +92 -0
- package/components/radio/dist/index.js +1 -1
- package/components/radio/dist/registered.js +1 -1
- package/components/select/demo/css-only.html +57 -0
- package/components/select/demo/css-only.md +203 -0
- package/components/select/demo/customize.min.js +249 -15
- package/components/select/demo/getting-started.min.js +249 -15
- package/components/select/demo/index.min.js +249 -15
- package/components/select/demo/keyboard-behavior.md +1 -0
- package/components/select/demo/pages.json +1 -1
- package/components/select/demo/styles.min.css +1 -1
- package/components/select/demo/why-select.html +57 -0
- package/components/select/demo/why-select.md +128 -0
- package/components/select/dist/index.js +249 -15
- package/components/select/dist/registered.js +249 -15
- package/custom-elements.json +1171 -92
- package/package.json +8 -8
|
@@ -12964,7 +12964,7 @@ let AuroHelpText$9 = class AuroHelpText extends i$4 {
|
|
|
12964
12964
|
}
|
|
12965
12965
|
};
|
|
12966
12966
|
|
|
12967
|
-
var formkitVersion$9 = '
|
|
12967
|
+
var formkitVersion$9 = '202606081904';
|
|
12968
12968
|
|
|
12969
12969
|
// Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
|
|
12970
12970
|
// See LICENSE in the project root for license information.
|
|
@@ -24291,6 +24291,7 @@ class UtilitiesCalendarRender {
|
|
|
24291
24291
|
updateCentralDate(elem, date) {
|
|
24292
24292
|
// if date is already iso formatted string, we can skip the conversion and validation step
|
|
24293
24293
|
if (typeof date === 'string' && dateFormatter$1.isValidDate(date)) {
|
|
24294
|
+
// eslint-disable-next-line
|
|
24294
24295
|
elem.centralDate = date.replace(/(\d{4})-(\d{2})-(\d{2})/, '$1-$2-01'); // Set to first of the month
|
|
24295
24296
|
return;
|
|
24296
24297
|
}
|
|
@@ -24375,13 +24376,10 @@ class UtilitiesCalendarRender {
|
|
|
24375
24376
|
// 2. Start by assuming we can render the max number of months.
|
|
24376
24377
|
let calendarCount = maxRenderableMonths;
|
|
24377
24378
|
|
|
24378
|
-
// 3. If
|
|
24379
|
+
// 3. If maximumRenderableMonths() returns 0 (e.g. an invalid/empty defined range),
|
|
24380
|
+
// fall back to the min/max date range so something is rendered.
|
|
24379
24381
|
if (!calendarCount && elem.minDate && elem.maxDate) {
|
|
24380
|
-
|
|
24381
|
-
|
|
24382
|
-
if (monthsInRange < maxRenderableMonths) {
|
|
24383
|
-
calendarCount = monthsInRange;
|
|
24384
|
-
}
|
|
24382
|
+
calendarCount = this.util.monthDiff(elem.minDateObject, elem.maxDateObject);
|
|
24385
24383
|
}
|
|
24386
24384
|
|
|
24387
24385
|
if (elem.numCalendars !== calendarCount) {
|
|
@@ -24429,7 +24427,6 @@ class UtilitiesCalendarRender {
|
|
|
24429
24427
|
.max="${elem.max}"
|
|
24430
24428
|
?noRange="${elem.noRange}"
|
|
24431
24429
|
.monthFirst="${elem.monthFirst}"
|
|
24432
|
-
.hoveredDate="${elem.hoveredDate}"
|
|
24433
24430
|
.dateTo="${elem.dateTo}"
|
|
24434
24431
|
.dateFrom="${elem.dateFrom}"
|
|
24435
24432
|
.locale="${elem.locale}"
|
|
@@ -24462,11 +24459,11 @@ var snowflakeStyle = i$7`:host([layout*=snowflake]) [auro-input]{flex:1;text-ali
|
|
|
24462
24459
|
|
|
24463
24460
|
var snowflakeColors = i$7`:host([layout=snowflake]) [auro-dropdown]:not(:is([error],.hasFocus)){--ds-auro-dropdown-trigger-border-color: transparent}`;
|
|
24464
24461
|
|
|
24465
|
-
var styleCss$7$1 = i$7`.body-default{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-default-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-default-font-size, 1rem);line-height:var(--wcss-body-default-line-height, 1.5rem)}.body-default-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-default-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-default-emphasized-font-size, 1rem);line-height:var(--wcss-body-default-emphasized-line-height, 1.5rem)}.body-lg{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-lg-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-lg-font-size, 1.125rem);line-height:var(--wcss-body-lg-line-height, 1.625rem)}.body-lg-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-lg-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-lg-emphasized-font-size, 1.125rem);line-height:var(--wcss-body-lg-emphasized-line-height, 1.625rem)}.body-sm{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-sm-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-sm-font-size, 0.875rem);line-height:var(--wcss-body-sm-line-height, 1.25rem)}.body-sm-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-sm-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-sm-emphasized-font-size, 0.875rem);line-height:var(--wcss-body-sm-emphasized-line-height, 1.25rem)}.body-xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-xs-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-xs-font-size, 0.75rem);line-height:var(--wcss-body-xs-line-height, 1rem)}.body-xs-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-xs-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-xs-emphasized-font-size, 0.75rem);line-height:var(--wcss-body-xs-emphasized-line-height, 1rem)}.body-2xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-2xs-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-2xs-font-size, 0.625rem);line-height:var(--wcss-body-2xs-line-height, 0.875rem)}.body-2xs-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-2xs-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-2xs-emphasized-font-size, 0.625rem);line-height:var(--wcss-body-2xs-emphasized-line-height, 0.875rem)}.display-2xl{font-family:var(--wcss-display-2xl-family, "AS Circular"),var(--wcss-display-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-2xl-weight, 300);line-height:var(--wcss-display-2xl-line-height, 1.3);font-size:var(--wcss-display-2xl-font-size, clamp(3.5rem, 6vw, 5.375rem));letter-spacing:var(--wcss-display-2xl-letter-spacing, 0)}.display-xl{font-family:var(--wcss-display-xl-family, "AS Circular"),var(--wcss-display-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-xl-weight, 300);line-height:var(--wcss-display-xl-line-height, 1.3);font-size:var(--wcss-display-xl-font-size, clamp(3rem, 5.3333333333vw, 4.5rem));letter-spacing:var(--wcss-display-xl-letter-spacing, 0)}.display-lg{font-family:var(--wcss-display-lg-family, "AS Circular"),var(--wcss-display-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-lg-weight, 300);line-height:var(--wcss-display-lg-line-height, 1.3);font-size:var(--wcss-display-lg-font-size, clamp(2.75rem, 4.6666666667vw, 4rem));letter-spacing:var(--wcss-display-lg-letter-spacing, 0)}.display-md{font-family:var(--wcss-display-md-family, "AS Circular"),var(--wcss-display-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-md-weight, 300);line-height:var(--wcss-display-md-line-height, 1.3);font-size:var(--wcss-display-md-font-size, clamp(2.5rem, 4vw, 3.5rem));letter-spacing:var(--wcss-display-md-letter-spacing, 0)}.display-sm{font-family:var(--wcss-display-sm-family, "AS Circular"),var(--wcss-display-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-sm-weight, 300);line-height:var(--wcss-display-sm-line-height, 1.3);font-size:var(--wcss-display-sm-font-size, clamp(2rem, 3.6666666667vw, 3rem));letter-spacing:var(--wcss-display-sm-letter-spacing, 0)}.display-xs{font-family:var(--wcss-display-xs-family, "AS Circular"),var(--wcss-display-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-xs-weight, 300);line-height:var(--wcss-display-xs-line-height, 1.3);font-size:var(--wcss-display-xs-font-size, clamp(1.75rem, 3vw, 2.375rem));letter-spacing:var(--wcss-display-xs-letter-spacing, 0)}.heading-xl{font-family:var(--wcss-heading-xl-family, "AS Circular"),var(--wcss-heading-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-xl-weight, 300);line-height:var(--wcss-heading-xl-line-height, 1.3);font-size:var(--wcss-heading-xl-font-size, clamp(2rem, 3vw, 2.5rem));letter-spacing:var(--wcss-heading-xl-letter-spacing, 0)}.heading-lg{font-family:var(--wcss-heading-lg-family, "AS Circular"),var(--wcss-heading-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-lg-weight, 300);line-height:var(--wcss-heading-lg-line-height, 1.3);font-size:var(--wcss-heading-lg-font-size, clamp(1.75rem, 2.6666666667vw, 2.25rem));letter-spacing:var(--wcss-heading-lg-letter-spacing, 0)}.heading-md{font-family:var(--wcss-heading-md-family, "AS Circular"),var(--wcss-heading-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-md-weight, 300);line-height:var(--wcss-heading-md-line-height, 1.3);font-size:var(--wcss-heading-md-font-size, clamp(1.625rem, 2.3333333333vw, 1.75rem));letter-spacing:var(--wcss-heading-md-letter-spacing, 0)}.heading-sm{font-family:var(--wcss-heading-sm-family, "AS Circular"),var(--wcss-heading-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-sm-weight, 300);line-height:var(--wcss-heading-sm-line-height, 1.3);font-size:var(--wcss-heading-sm-font-size, clamp(1.375rem, 2vw, 1.5rem));letter-spacing:var(--wcss-heading-sm-letter-spacing, 0)}.heading-xs{font-family:var(--wcss-heading-xs-family, "AS Circular"),var(--wcss-heading-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-xs-weight, 300);line-height:var(--wcss-heading-xs-line-height, 1.3);font-size:var(--wcss-heading-xs-font-size, clamp(1.25rem, 1.6666666667vw, 1.25rem));letter-spacing:var(--wcss-heading-xs-letter-spacing, 0)}.heading-2xs{font-family:var(--wcss-heading-2xs-family, "AS Circular"),var(--wcss-heading-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-2xs-weight, 300);line-height:var(--wcss-heading-2xs-line-height, 1.3);font-size:var(--wcss-heading-2xs-font-size, clamp(1.125rem, 1.5vw, 1.125rem));letter-spacing:var(--wcss-heading-2xs-letter-spacing, 0)}.accent-2xl{font-family:var(--wcss-accent-2xl-family, "Good OT"),var(--wcss-accent-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-2xl-weight, 450);line-height:var(--wcss-accent-2xl-line-height, 1);font-size:var(--wcss-accent-2xl-font-size, clamp(2rem, 3.1666666667vw, 2.375rem));letter-spacing:var(--wcss-accent-2xl-letter-spacing, 0.05em);text-transform:uppercase}.accent-xl{font-family:var(--wcss-accent-xl-family, "Good OT"),var(--wcss-accent-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-xl-weight, 450);line-height:var(--wcss-accent-xl-line-height, 1.3);font-size:var(--wcss-accent-xl-font-size, clamp(1.625rem, 2.3333333333vw, 2rem));letter-spacing:var(--wcss-accent-xl-letter-spacing, 0.05em);text-transform:uppercase}.accent-lg{font-family:var(--wcss-accent-lg-family, "Good OT"),var(--wcss-accent-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-lg-weight, 450);line-height:var(--wcss-accent-lg-line-height, 1.3);font-size:var(--wcss-accent-lg-font-size, clamp(1.5rem, 2.1666666667vw, 1.75rem));letter-spacing:var(--wcss-accent-lg-letter-spacing, 0.05em);text-transform:uppercase}.accent-md{font-family:var(--wcss-accent-md-family, "Good OT"),var(--wcss-accent-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-md-weight, 500);line-height:var(--wcss-accent-md-line-height, 1.3);font-size:var(--wcss-accent-md-font-size, clamp(1.375rem, 1.8333333333vw, 1.5rem));letter-spacing:var(--wcss-accent-md-letter-spacing, 0.05em);text-transform:uppercase}.accent-sm{font-family:var(--wcss-accent-sm-family, "Good OT"),var(--wcss-accent-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-sm-weight, 500);line-height:var(--wcss-accent-sm-line-height, 1.3);font-size:var(--wcss-accent-sm-font-size, clamp(1.125rem, 1.5vw, 1.25rem));letter-spacing:var(--wcss-accent-sm-letter-spacing, 0.05em);text-transform:uppercase}.accent-xs{font-family:var(--wcss-accent-xs-family, "Good OT"),var(--wcss-accent-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-xs-weight, 500);line-height:var(--wcss-accent-xs-line-height, 1.3);font-size:var(--wcss-accent-xs-font-size, clamp(1rem, 1.3333333333vw, 1rem));letter-spacing:var(--wcss-accent-xs-letter-spacing, 0.1em);text-transform:uppercase}.accent-2xs{font-family:var(--wcss-accent-2xs-family, "Good OT"),var(--wcss-accent-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-2xs-weight, 450);line-height:var(--wcss-accent-2xs-line-height, 1.3);font-size:var(--wcss-accent-2xs-font-size, clamp(0.875rem, 1.1666666667vw, 0.875rem));letter-spacing:var(--wcss-accent-2xs-letter-spacing, 0.1em);text-transform:uppercase}:host{--calendar-width: 336px;--mobile-footer-height: 150px;--mobile-header-height: 68px;height:100vh;height:100dvh}.calendars{display:flex;flex-direction:row}.calendarNavButtons{position:absolute;top:var(--ds-size-200, 1rem);right:var(--ds-size-50, 0.25rem);left:var(--ds-size-50, 0.25rem)}.calendarNavBtn{display:flex;width:var(--ds-size-500, 2.5rem);height:var(--ds-size-500, 2.5rem);align-items:center;justify-content:center;border-width:1px;border-style:solid;border-radius:50%;cursor:pointer}.prevMonth,.nextMonth{position:absolute;top:0}.prevMonth{left:0}.nextMonth{right:0}.headerActions{padding:0 var(--ds-size-200, 1rem)}.mobileHeader{width:100%;height:var(--mobile-header-height);z-index:1;align-items:center;flex-direction:row}.headerDateFrom,.headerDateTo{display:flex;height:var(--mobile-header-height);flex:1;flex-direction:column;justify-content:center;padding:0 var(--ds-size-150, 0.75rem) 0 var(--ds-size-200, 1rem)}.mobileDateLabel{padding:var(--ds-size-25, 0.125rem) 0}.mobileFooter{display:none;width:100%;align-items:flex-end;flex-direction:column;justify-content:flex-end}.mobileFooterActions{position:relative;bottom:0;left:50%;display:none;width:calc(100% - var(--ds-size-200, 1rem)*2);align-items:flex-end;flex-direction:column;justify-content:flex-end;padding:var(--ds-size-150) calc(var(--ds-size-200, 1rem));transform:translateX(-50%)}.mobileFooterActions auro-button{width:100%}:host([isfullscreen]){width:100%;max-height:100dvh;overflow:hidden}:host([isfullscreen]) .prevMonth,:host([isfullscreen]) .nextMonth{display:none}:host([isfullscreen]) .mobileHeader,:host([isfullscreen]) .mobileFooter,:host([isfullscreen]) .mobileFooterActions{display:flex}:host([isfullscreen]) .calendarWrapper{display:flex;flex-direction:column}:host([isfullscreen]) .calendars{display:flex;flex-direction:column;flex:1;align-items:center;width:100%;overscroll-behavior:contain}:host([isfullscreen]) .calendars:after{display:block;width:100%;height:var(--mobile-footer-height);content:""}`;
|
|
24462
|
+
var styleCss$7$1 = i$7`.body-default{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-default-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-default-font-size, 1rem);line-height:var(--wcss-body-default-line-height, 1.5rem)}.body-default-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-default-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-default-emphasized-font-size, 1rem);line-height:var(--wcss-body-default-emphasized-line-height, 1.5rem)}.body-lg{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-lg-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-lg-font-size, 1.125rem);line-height:var(--wcss-body-lg-line-height, 1.625rem)}.body-lg-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-lg-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-lg-emphasized-font-size, 1.125rem);line-height:var(--wcss-body-lg-emphasized-line-height, 1.625rem)}.body-sm{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-sm-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-sm-font-size, 0.875rem);line-height:var(--wcss-body-sm-line-height, 1.25rem)}.body-sm-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-sm-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-sm-emphasized-font-size, 0.875rem);line-height:var(--wcss-body-sm-emphasized-line-height, 1.25rem)}.body-xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-xs-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-xs-font-size, 0.75rem);line-height:var(--wcss-body-xs-line-height, 1rem)}.body-xs-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-xs-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-xs-emphasized-font-size, 0.75rem);line-height:var(--wcss-body-xs-emphasized-line-height, 1rem)}.body-2xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-2xs-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-2xs-font-size, 0.625rem);line-height:var(--wcss-body-2xs-line-height, 0.875rem)}.body-2xs-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-2xs-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-2xs-emphasized-font-size, 0.625rem);line-height:var(--wcss-body-2xs-emphasized-line-height, 0.875rem)}.display-2xl{font-family:var(--wcss-display-2xl-family, "AS Circular"),var(--wcss-display-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-2xl-weight, 300);line-height:var(--wcss-display-2xl-line-height, 1.3);font-size:var(--wcss-display-2xl-font-size, clamp(3.5rem, 6vw, 5.375rem));letter-spacing:var(--wcss-display-2xl-letter-spacing, 0)}.display-xl{font-family:var(--wcss-display-xl-family, "AS Circular"),var(--wcss-display-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-xl-weight, 300);line-height:var(--wcss-display-xl-line-height, 1.3);font-size:var(--wcss-display-xl-font-size, clamp(3rem, 5.3333333333vw, 4.5rem));letter-spacing:var(--wcss-display-xl-letter-spacing, 0)}.display-lg{font-family:var(--wcss-display-lg-family, "AS Circular"),var(--wcss-display-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-lg-weight, 300);line-height:var(--wcss-display-lg-line-height, 1.3);font-size:var(--wcss-display-lg-font-size, clamp(2.75rem, 4.6666666667vw, 4rem));letter-spacing:var(--wcss-display-lg-letter-spacing, 0)}.display-md{font-family:var(--wcss-display-md-family, "AS Circular"),var(--wcss-display-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-md-weight, 300);line-height:var(--wcss-display-md-line-height, 1.3);font-size:var(--wcss-display-md-font-size, clamp(2.5rem, 4vw, 3.5rem));letter-spacing:var(--wcss-display-md-letter-spacing, 0)}.display-sm{font-family:var(--wcss-display-sm-family, "AS Circular"),var(--wcss-display-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-sm-weight, 300);line-height:var(--wcss-display-sm-line-height, 1.3);font-size:var(--wcss-display-sm-font-size, clamp(2rem, 3.6666666667vw, 3rem));letter-spacing:var(--wcss-display-sm-letter-spacing, 0)}.display-xs{font-family:var(--wcss-display-xs-family, "AS Circular"),var(--wcss-display-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-xs-weight, 300);line-height:var(--wcss-display-xs-line-height, 1.3);font-size:var(--wcss-display-xs-font-size, clamp(1.75rem, 3vw, 2.375rem));letter-spacing:var(--wcss-display-xs-letter-spacing, 0)}.heading-xl{font-family:var(--wcss-heading-xl-family, "AS Circular"),var(--wcss-heading-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-xl-weight, 300);line-height:var(--wcss-heading-xl-line-height, 1.3);font-size:var(--wcss-heading-xl-font-size, clamp(2rem, 3vw, 2.5rem));letter-spacing:var(--wcss-heading-xl-letter-spacing, 0)}.heading-lg{font-family:var(--wcss-heading-lg-family, "AS Circular"),var(--wcss-heading-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-lg-weight, 300);line-height:var(--wcss-heading-lg-line-height, 1.3);font-size:var(--wcss-heading-lg-font-size, clamp(1.75rem, 2.6666666667vw, 2.25rem));letter-spacing:var(--wcss-heading-lg-letter-spacing, 0)}.heading-md{font-family:var(--wcss-heading-md-family, "AS Circular"),var(--wcss-heading-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-md-weight, 300);line-height:var(--wcss-heading-md-line-height, 1.3);font-size:var(--wcss-heading-md-font-size, clamp(1.625rem, 2.3333333333vw, 1.75rem));letter-spacing:var(--wcss-heading-md-letter-spacing, 0)}.heading-sm{font-family:var(--wcss-heading-sm-family, "AS Circular"),var(--wcss-heading-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-sm-weight, 300);line-height:var(--wcss-heading-sm-line-height, 1.3);font-size:var(--wcss-heading-sm-font-size, clamp(1.375rem, 2vw, 1.5rem));letter-spacing:var(--wcss-heading-sm-letter-spacing, 0)}.heading-xs{font-family:var(--wcss-heading-xs-family, "AS Circular"),var(--wcss-heading-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-xs-weight, 300);line-height:var(--wcss-heading-xs-line-height, 1.3);font-size:var(--wcss-heading-xs-font-size, clamp(1.25rem, 1.6666666667vw, 1.25rem));letter-spacing:var(--wcss-heading-xs-letter-spacing, 0)}.heading-2xs{font-family:var(--wcss-heading-2xs-family, "AS Circular"),var(--wcss-heading-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-2xs-weight, 300);line-height:var(--wcss-heading-2xs-line-height, 1.3);font-size:var(--wcss-heading-2xs-font-size, clamp(1.125rem, 1.5vw, 1.125rem));letter-spacing:var(--wcss-heading-2xs-letter-spacing, 0)}.accent-2xl{font-family:var(--wcss-accent-2xl-family, "Good OT"),var(--wcss-accent-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-2xl-weight, 450);line-height:var(--wcss-accent-2xl-line-height, 1);font-size:var(--wcss-accent-2xl-font-size, clamp(2rem, 3.1666666667vw, 2.375rem));letter-spacing:var(--wcss-accent-2xl-letter-spacing, 0.05em);text-transform:uppercase}.accent-xl{font-family:var(--wcss-accent-xl-family, "Good OT"),var(--wcss-accent-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-xl-weight, 450);line-height:var(--wcss-accent-xl-line-height, 1.3);font-size:var(--wcss-accent-xl-font-size, clamp(1.625rem, 2.3333333333vw, 2rem));letter-spacing:var(--wcss-accent-xl-letter-spacing, 0.05em);text-transform:uppercase}.accent-lg{font-family:var(--wcss-accent-lg-family, "Good OT"),var(--wcss-accent-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-lg-weight, 450);line-height:var(--wcss-accent-lg-line-height, 1.3);font-size:var(--wcss-accent-lg-font-size, clamp(1.5rem, 2.1666666667vw, 1.75rem));letter-spacing:var(--wcss-accent-lg-letter-spacing, 0.05em);text-transform:uppercase}.accent-md{font-family:var(--wcss-accent-md-family, "Good OT"),var(--wcss-accent-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-md-weight, 500);line-height:var(--wcss-accent-md-line-height, 1.3);font-size:var(--wcss-accent-md-font-size, clamp(1.375rem, 1.8333333333vw, 1.5rem));letter-spacing:var(--wcss-accent-md-letter-spacing, 0.05em);text-transform:uppercase}.accent-sm{font-family:var(--wcss-accent-sm-family, "Good OT"),var(--wcss-accent-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-sm-weight, 500);line-height:var(--wcss-accent-sm-line-height, 1.3);font-size:var(--wcss-accent-sm-font-size, clamp(1.125rem, 1.5vw, 1.25rem));letter-spacing:var(--wcss-accent-sm-letter-spacing, 0.05em);text-transform:uppercase}.accent-xs{font-family:var(--wcss-accent-xs-family, "Good OT"),var(--wcss-accent-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-xs-weight, 500);line-height:var(--wcss-accent-xs-line-height, 1.3);font-size:var(--wcss-accent-xs-font-size, clamp(1rem, 1.3333333333vw, 1rem));letter-spacing:var(--wcss-accent-xs-letter-spacing, 0.1em);text-transform:uppercase}.accent-2xs{font-family:var(--wcss-accent-2xs-family, "Good OT"),var(--wcss-accent-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-2xs-weight, 450);line-height:var(--wcss-accent-2xs-line-height, 1.3);font-size:var(--wcss-accent-2xs-font-size, clamp(0.875rem, 1.1666666667vw, 0.875rem));letter-spacing:var(--wcss-accent-2xs-letter-spacing, 0.1em);text-transform:uppercase}:host{--calendar-width: 336px;--mobile-footer-height: 150px;--mobile-header-height: 68px;--desktop-footer-height: 80px;height:100vh;height:100dvh}.calendars{display:flex;flex-direction:row}.calendars:focus{outline:none}.calendarNavButtons{position:absolute;z-index:1;top:var(--ds-size-200, 1rem);right:var(--ds-size-50, 0.25rem);left:var(--ds-size-50, 0.25rem)}.calendarNavBtn{display:flex;width:var(--ds-size-500, 2.5rem);height:var(--ds-size-500, 2.5rem);align-items:center;justify-content:center;border-width:1px;border-style:solid;border-radius:50%;cursor:pointer}.prevMonth,.nextMonth{position:absolute;top:0}.prevMonth{left:0}.nextMonth{right:0}.headerActions{padding:0 var(--ds-size-200, 1rem)}.mobileHeader{width:100%;height:var(--mobile-header-height);z-index:1;align-items:center;flex-direction:row}.headerDateFrom,.headerDateTo{display:flex;height:var(--mobile-header-height);flex:1;flex-direction:column;justify-content:center;padding:0 var(--ds-size-150, 0.75rem) 0 var(--ds-size-200, 1rem)}.mobileDateLabel{padding:var(--ds-size-25, 0.125rem) 0}.mobileFooter{display:none;width:100%;align-items:flex-end;flex-direction:column;justify-content:flex-end}.mobileFooterActions{position:relative;bottom:0;left:50%;display:none;width:calc(100% - var(--ds-size-200, 1rem)*2);align-items:flex-end;flex-direction:column;justify-content:flex-end;padding:var(--ds-size-150) calc(var(--ds-size-200, 1rem));transform:translateX(-50%)}.mobileFooterActions auro-button{width:100%}.calendarWrapper.hasFooter{padding-bottom:var(--desktop-footer-height)}:host([isfullscreen]){width:100%;max-height:100dvh;overflow:hidden}:host([isfullscreen]) .prevMonth,:host([isfullscreen]) .nextMonth{display:none}:host([isfullscreen]) .mobileHeader,:host([isfullscreen]) .mobileFooter,:host([isfullscreen]) .mobileFooterActions{display:flex}:host([isfullscreen]) .calendarWrapper{display:flex;flex-direction:column}:host([isfullscreen]) .calendars{display:flex;flex-direction:column;flex:1;align-items:center;width:100%;overscroll-behavior:contain}:host([isfullscreen]) .calendars:after{display:block;width:100%;height:var(--mobile-footer-height);content:""}.sr-only{position:absolute;overflow:hidden;clip:rect(0, 0, 0, 0);width:1px;height:1px;margin:-1px;padding:0;border:0;white-space:nowrap}`;
|
|
24466
24463
|
|
|
24467
24464
|
var colorCss$7$1 = i$7`.calendarNavBtn{border-color:var(--ds-auro-calendar-nav-btn-border-color);background-color:var(--ds-auro-calendar-nav-btn-container-color);color:var(--ds-auro-calendar-nav-btn-chevron-color)}.calendarNavBtn:hover{--ds-auro-calendar-nav-btn-container-color: var(--ds-advanced-color-state-background-hover, #f2f2f2);--ds-auro-calendar-nav-btn-border-color: var(--ds-basic-color-brand-primary, #01426a)}.calendarNavBtn:focus{--ds-auro-calendar-nav-btn-border-color: var(--ds-basic-color-brand-primary, #01426a)}.calendarNavBtn:active{--ds-auro-calendar-nav-btn-border-color: var(--ds-basic-color-brand-primary, #01426a);box-shadow:inset 0 0 0 1px var(--ds-auro-calendar-nav-btn-border-color)}.mobileHeader{background-color:var(--ds-auro-calendar-mobile-header-container-color)}.mobileDateLabel{color:var(--ds-auro-calendar-mobile-header-text-color)}:host(:not([noRange])) .headerDateTo:after{background-color:var(--ds-auro-calendar-mobile-header-divider-color)}::slotted([slot="bib.fullscreen.fromStr"]),::slotted([slot=mobileDateToStr]){color:var(--ds-auro-datepicker-placeholder-color)}@media screen and (max-width: 576px){.calendarNavBtn{--ds-auro-calendar-nav-btn-border-color: var(--ds-basic-color-brand-primary, #01426a)}}`;
|
|
24468
24465
|
|
|
24469
|
-
var styleCss$6$1 = i$7`:focus:not(:focus-visible){outline:3px solid transparent}.body-default{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-default-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-default-font-size, 1rem);line-height:var(--wcss-body-default-line-height, 1.5rem)}.body-default-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-default-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-default-emphasized-font-size, 1rem);line-height:var(--wcss-body-default-emphasized-line-height, 1.5rem)}.body-lg{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-lg-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-lg-font-size, 1.125rem);line-height:var(--wcss-body-lg-line-height, 1.625rem)}.body-lg-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-lg-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-lg-emphasized-font-size, 1.125rem);line-height:var(--wcss-body-lg-emphasized-line-height, 1.625rem)}.body-sm{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-sm-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-sm-font-size, 0.875rem);line-height:var(--wcss-body-sm-line-height, 1.25rem)}.body-sm-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-sm-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-sm-emphasized-font-size, 0.875rem);line-height:var(--wcss-body-sm-emphasized-line-height, 1.25rem)}.body-xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-xs-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-xs-font-size, 0.75rem);line-height:var(--wcss-body-xs-line-height, 1rem)}.body-xs-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-xs-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-xs-emphasized-font-size, 0.75rem);line-height:var(--wcss-body-xs-emphasized-line-height, 1rem)}.body-2xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-2xs-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-2xs-font-size, 0.625rem);line-height:var(--wcss-body-2xs-line-height, 0.875rem)}.body-2xs-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-2xs-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-2xs-emphasized-font-size, 0.625rem);line-height:var(--wcss-body-2xs-emphasized-line-height, 0.875rem)}.display-2xl{font-family:var(--wcss-display-2xl-family, "AS Circular"),var(--wcss-display-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-2xl-weight, 300);line-height:var(--wcss-display-2xl-line-height, 1.3);font-size:var(--wcss-display-2xl-font-size, clamp(3.5rem, 6vw, 5.375rem));letter-spacing:var(--wcss-display-2xl-letter-spacing, 0)}.display-xl{font-family:var(--wcss-display-xl-family, "AS Circular"),var(--wcss-display-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-xl-weight, 300);line-height:var(--wcss-display-xl-line-height, 1.3);font-size:var(--wcss-display-xl-font-size, clamp(3rem, 5.3333333333vw, 4.5rem));letter-spacing:var(--wcss-display-xl-letter-spacing, 0)}.display-lg{font-family:var(--wcss-display-lg-family, "AS Circular"),var(--wcss-display-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-lg-weight, 300);line-height:var(--wcss-display-lg-line-height, 1.3);font-size:var(--wcss-display-lg-font-size, clamp(2.75rem, 4.6666666667vw, 4rem));letter-spacing:var(--wcss-display-lg-letter-spacing, 0)}.display-md{font-family:var(--wcss-display-md-family, "AS Circular"),var(--wcss-display-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-md-weight, 300);line-height:var(--wcss-display-md-line-height, 1.3);font-size:var(--wcss-display-md-font-size, clamp(2.5rem, 4vw, 3.5rem));letter-spacing:var(--wcss-display-md-letter-spacing, 0)}.display-sm{font-family:var(--wcss-display-sm-family, "AS Circular"),var(--wcss-display-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-sm-weight, 300);line-height:var(--wcss-display-sm-line-height, 1.3);font-size:var(--wcss-display-sm-font-size, clamp(2rem, 3.6666666667vw, 3rem));letter-spacing:var(--wcss-display-sm-letter-spacing, 0)}.display-xs{font-family:var(--wcss-display-xs-family, "AS Circular"),var(--wcss-display-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-xs-weight, 300);line-height:var(--wcss-display-xs-line-height, 1.3);font-size:var(--wcss-display-xs-font-size, clamp(1.75rem, 3vw, 2.375rem));letter-spacing:var(--wcss-display-xs-letter-spacing, 0)}.heading-xl{font-family:var(--wcss-heading-xl-family, "AS Circular"),var(--wcss-heading-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-xl-weight, 300);line-height:var(--wcss-heading-xl-line-height, 1.3);font-size:var(--wcss-heading-xl-font-size, clamp(2rem, 3vw, 2.5rem));letter-spacing:var(--wcss-heading-xl-letter-spacing, 0)}.heading-lg{font-family:var(--wcss-heading-lg-family, "AS Circular"),var(--wcss-heading-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-lg-weight, 300);line-height:var(--wcss-heading-lg-line-height, 1.3);font-size:var(--wcss-heading-lg-font-size, clamp(1.75rem, 2.6666666667vw, 2.25rem));letter-spacing:var(--wcss-heading-lg-letter-spacing, 0)}.heading-md{font-family:var(--wcss-heading-md-family, "AS Circular"),var(--wcss-heading-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-md-weight, 300);line-height:var(--wcss-heading-md-line-height, 1.3);font-size:var(--wcss-heading-md-font-size, clamp(1.625rem, 2.3333333333vw, 1.75rem));letter-spacing:var(--wcss-heading-md-letter-spacing, 0)}.heading-sm{font-family:var(--wcss-heading-sm-family, "AS Circular"),var(--wcss-heading-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-sm-weight, 300);line-height:var(--wcss-heading-sm-line-height, 1.3);font-size:var(--wcss-heading-sm-font-size, clamp(1.375rem, 2vw, 1.5rem));letter-spacing:var(--wcss-heading-sm-letter-spacing, 0)}.heading-xs{font-family:var(--wcss-heading-xs-family, "AS Circular"),var(--wcss-heading-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-xs-weight, 300);line-height:var(--wcss-heading-xs-line-height, 1.3);font-size:var(--wcss-heading-xs-font-size, clamp(1.25rem, 1.6666666667vw, 1.25rem));letter-spacing:var(--wcss-heading-xs-letter-spacing, 0)}.heading-2xs{font-family:var(--wcss-heading-2xs-family, "AS Circular"),var(--wcss-heading-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-2xs-weight, 300);line-height:var(--wcss-heading-2xs-line-height, 1.3);font-size:var(--wcss-heading-2xs-font-size, clamp(1.125rem, 1.5vw, 1.125rem));letter-spacing:var(--wcss-heading-2xs-letter-spacing, 0)}.accent-2xl{font-family:var(--wcss-accent-2xl-family, "Good OT"),var(--wcss-accent-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-2xl-weight, 450);line-height:var(--wcss-accent-2xl-line-height, 1);font-size:var(--wcss-accent-2xl-font-size, clamp(2rem, 3.1666666667vw, 2.375rem));letter-spacing:var(--wcss-accent-2xl-letter-spacing, 0.05em);text-transform:uppercase}.accent-xl{font-family:var(--wcss-accent-xl-family, "Good OT"),var(--wcss-accent-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-xl-weight, 450);line-height:var(--wcss-accent-xl-line-height, 1.3);font-size:var(--wcss-accent-xl-font-size, clamp(1.625rem, 2.3333333333vw, 2rem));letter-spacing:var(--wcss-accent-xl-letter-spacing, 0.05em);text-transform:uppercase}.accent-lg{font-family:var(--wcss-accent-lg-family, "Good OT"),var(--wcss-accent-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-lg-weight, 450);line-height:var(--wcss-accent-lg-line-height, 1.3);font-size:var(--wcss-accent-lg-font-size, clamp(1.5rem, 2.1666666667vw, 1.75rem));letter-spacing:var(--wcss-accent-lg-letter-spacing, 0.05em);text-transform:uppercase}.accent-md{font-family:var(--wcss-accent-md-family, "Good OT"),var(--wcss-accent-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-md-weight, 500);line-height:var(--wcss-accent-md-line-height, 1.3);font-size:var(--wcss-accent-md-font-size, clamp(1.375rem, 1.8333333333vw, 1.5rem));letter-spacing:var(--wcss-accent-md-letter-spacing, 0.05em);text-transform:uppercase}.accent-sm{font-family:var(--wcss-accent-sm-family, "Good OT"),var(--wcss-accent-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-sm-weight, 500);line-height:var(--wcss-accent-sm-line-height, 1.3);font-size:var(--wcss-accent-sm-font-size, clamp(1.125rem, 1.5vw, 1.25rem));letter-spacing:var(--wcss-accent-sm-letter-spacing, 0.05em);text-transform:uppercase}.accent-xs{font-family:var(--wcss-accent-xs-family, "Good OT"),var(--wcss-accent-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-xs-weight, 500);line-height:var(--wcss-accent-xs-line-height, 1.3);font-size:var(--wcss-accent-xs-font-size, clamp(1rem, 1.3333333333vw, 1rem));letter-spacing:var(--wcss-accent-xs-letter-spacing, 0.1em);text-transform:uppercase}.accent-2xs{font-family:var(--wcss-accent-2xs-family, "Good OT"),var(--wcss-accent-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-2xs-weight, 450);line-height:var(--wcss-accent-2xs-line-height, 1.3);font-size:var(--wcss-accent-2xs-font-size, clamp(0.875rem, 1.1666666667vw, 0.875rem));letter-spacing:var(--wcss-accent-2xs-letter-spacing, 0.1em);text-transform:uppercase}:host{position:relative;display:block;width:calc(100% - var(--ds-size-200, 1rem) - var(--ds-size-200, 1rem));margin:0 var(--ds-size-200, 1rem)}@media screen and (min-width: 576px){:host{width:336px;padding:var(--ds-size-200, 1rem)}}@media screen and (min-width: 576px){:host(:not(:last-of-type)):after{position:absolute;top:var(--ds-size-200, 1rem);right:calc(-1*var(--ds-size-200, 1rem));height:calc(100% - var(--ds-size-200, 1rem) - var(--ds-size-200, 1rem));display:block;width:1px;content:""}}.header{display:flex;height:var(--ds-size-500, 2.5rem);margin-bottom:var(--ds-size-150, 0.75rem);align-items:center;flex-direction:row;text-align:center}.headerTitle{display:flex;align-items:center;flex:1;flex-direction:row;justify-content:center}.headerTitle div:first-child{margin-right:var(--ds-size-100, 0.5rem)}.calendarNavBtn{position:relative;display:flex;width:var(--ds-size-500, 2.5rem);height:var(--ds-size-500, 2.5rem);align-items:center;justify-content:center;border-width:1px;border-style:solid;border-radius:50%;cursor:pointer}.table{width:100%;border-collapse:collapse}.thead{margin-bottom:var(--ds-size-100, 0.5rem)}.th{display:flex;flex:1;align-items:center;justify-content:center}.tbody{width:100%;transition:all 0ms;transform:translateX(0)}@media screen and (min-width: 576px){.tbody{height:384px}}.td{flex:1;margin:0;padding:0}.tr{display:flex;flex-direction:row;width:100%}`;
|
|
24466
|
+
var styleCss$6$1 = i$7`:focus:not(:focus-visible){outline:3px solid transparent}.body-default{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-default-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-default-font-size, 1rem);line-height:var(--wcss-body-default-line-height, 1.5rem)}.body-default-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-default-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-default-emphasized-font-size, 1rem);line-height:var(--wcss-body-default-emphasized-line-height, 1.5rem)}.body-lg{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-lg-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-lg-font-size, 1.125rem);line-height:var(--wcss-body-lg-line-height, 1.625rem)}.body-lg-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-lg-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-lg-emphasized-font-size, 1.125rem);line-height:var(--wcss-body-lg-emphasized-line-height, 1.625rem)}.body-sm{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-sm-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-sm-font-size, 0.875rem);line-height:var(--wcss-body-sm-line-height, 1.25rem)}.body-sm-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-sm-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-sm-emphasized-font-size, 0.875rem);line-height:var(--wcss-body-sm-emphasized-line-height, 1.25rem)}.body-xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-xs-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-xs-font-size, 0.75rem);line-height:var(--wcss-body-xs-line-height, 1rem)}.body-xs-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-xs-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-xs-emphasized-font-size, 0.75rem);line-height:var(--wcss-body-xs-emphasized-line-height, 1rem)}.body-2xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-2xs-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-2xs-font-size, 0.625rem);line-height:var(--wcss-body-2xs-line-height, 0.875rem)}.body-2xs-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-2xs-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-2xs-emphasized-font-size, 0.625rem);line-height:var(--wcss-body-2xs-emphasized-line-height, 0.875rem)}.display-2xl{font-family:var(--wcss-display-2xl-family, "AS Circular"),var(--wcss-display-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-2xl-weight, 300);line-height:var(--wcss-display-2xl-line-height, 1.3);font-size:var(--wcss-display-2xl-font-size, clamp(3.5rem, 6vw, 5.375rem));letter-spacing:var(--wcss-display-2xl-letter-spacing, 0)}.display-xl{font-family:var(--wcss-display-xl-family, "AS Circular"),var(--wcss-display-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-xl-weight, 300);line-height:var(--wcss-display-xl-line-height, 1.3);font-size:var(--wcss-display-xl-font-size, clamp(3rem, 5.3333333333vw, 4.5rem));letter-spacing:var(--wcss-display-xl-letter-spacing, 0)}.display-lg{font-family:var(--wcss-display-lg-family, "AS Circular"),var(--wcss-display-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-lg-weight, 300);line-height:var(--wcss-display-lg-line-height, 1.3);font-size:var(--wcss-display-lg-font-size, clamp(2.75rem, 4.6666666667vw, 4rem));letter-spacing:var(--wcss-display-lg-letter-spacing, 0)}.display-md{font-family:var(--wcss-display-md-family, "AS Circular"),var(--wcss-display-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-md-weight, 300);line-height:var(--wcss-display-md-line-height, 1.3);font-size:var(--wcss-display-md-font-size, clamp(2.5rem, 4vw, 3.5rem));letter-spacing:var(--wcss-display-md-letter-spacing, 0)}.display-sm{font-family:var(--wcss-display-sm-family, "AS Circular"),var(--wcss-display-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-sm-weight, 300);line-height:var(--wcss-display-sm-line-height, 1.3);font-size:var(--wcss-display-sm-font-size, clamp(2rem, 3.6666666667vw, 3rem));letter-spacing:var(--wcss-display-sm-letter-spacing, 0)}.display-xs{font-family:var(--wcss-display-xs-family, "AS Circular"),var(--wcss-display-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-xs-weight, 300);line-height:var(--wcss-display-xs-line-height, 1.3);font-size:var(--wcss-display-xs-font-size, clamp(1.75rem, 3vw, 2.375rem));letter-spacing:var(--wcss-display-xs-letter-spacing, 0)}.heading-xl{font-family:var(--wcss-heading-xl-family, "AS Circular"),var(--wcss-heading-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-xl-weight, 300);line-height:var(--wcss-heading-xl-line-height, 1.3);font-size:var(--wcss-heading-xl-font-size, clamp(2rem, 3vw, 2.5rem));letter-spacing:var(--wcss-heading-xl-letter-spacing, 0)}.heading-lg{font-family:var(--wcss-heading-lg-family, "AS Circular"),var(--wcss-heading-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-lg-weight, 300);line-height:var(--wcss-heading-lg-line-height, 1.3);font-size:var(--wcss-heading-lg-font-size, clamp(1.75rem, 2.6666666667vw, 2.25rem));letter-spacing:var(--wcss-heading-lg-letter-spacing, 0)}.heading-md{font-family:var(--wcss-heading-md-family, "AS Circular"),var(--wcss-heading-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-md-weight, 300);line-height:var(--wcss-heading-md-line-height, 1.3);font-size:var(--wcss-heading-md-font-size, clamp(1.625rem, 2.3333333333vw, 1.75rem));letter-spacing:var(--wcss-heading-md-letter-spacing, 0)}.heading-sm{font-family:var(--wcss-heading-sm-family, "AS Circular"),var(--wcss-heading-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-sm-weight, 300);line-height:var(--wcss-heading-sm-line-height, 1.3);font-size:var(--wcss-heading-sm-font-size, clamp(1.375rem, 2vw, 1.5rem));letter-spacing:var(--wcss-heading-sm-letter-spacing, 0)}.heading-xs{font-family:var(--wcss-heading-xs-family, "AS Circular"),var(--wcss-heading-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-xs-weight, 300);line-height:var(--wcss-heading-xs-line-height, 1.3);font-size:var(--wcss-heading-xs-font-size, clamp(1.25rem, 1.6666666667vw, 1.25rem));letter-spacing:var(--wcss-heading-xs-letter-spacing, 0)}.heading-2xs{font-family:var(--wcss-heading-2xs-family, "AS Circular"),var(--wcss-heading-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-2xs-weight, 300);line-height:var(--wcss-heading-2xs-line-height, 1.3);font-size:var(--wcss-heading-2xs-font-size, clamp(1.125rem, 1.5vw, 1.125rem));letter-spacing:var(--wcss-heading-2xs-letter-spacing, 0)}.accent-2xl{font-family:var(--wcss-accent-2xl-family, "Good OT"),var(--wcss-accent-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-2xl-weight, 450);line-height:var(--wcss-accent-2xl-line-height, 1);font-size:var(--wcss-accent-2xl-font-size, clamp(2rem, 3.1666666667vw, 2.375rem));letter-spacing:var(--wcss-accent-2xl-letter-spacing, 0.05em);text-transform:uppercase}.accent-xl{font-family:var(--wcss-accent-xl-family, "Good OT"),var(--wcss-accent-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-xl-weight, 450);line-height:var(--wcss-accent-xl-line-height, 1.3);font-size:var(--wcss-accent-xl-font-size, clamp(1.625rem, 2.3333333333vw, 2rem));letter-spacing:var(--wcss-accent-xl-letter-spacing, 0.05em);text-transform:uppercase}.accent-lg{font-family:var(--wcss-accent-lg-family, "Good OT"),var(--wcss-accent-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-lg-weight, 450);line-height:var(--wcss-accent-lg-line-height, 1.3);font-size:var(--wcss-accent-lg-font-size, clamp(1.5rem, 2.1666666667vw, 1.75rem));letter-spacing:var(--wcss-accent-lg-letter-spacing, 0.05em);text-transform:uppercase}.accent-md{font-family:var(--wcss-accent-md-family, "Good OT"),var(--wcss-accent-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-md-weight, 500);line-height:var(--wcss-accent-md-line-height, 1.3);font-size:var(--wcss-accent-md-font-size, clamp(1.375rem, 1.8333333333vw, 1.5rem));letter-spacing:var(--wcss-accent-md-letter-spacing, 0.05em);text-transform:uppercase}.accent-sm{font-family:var(--wcss-accent-sm-family, "Good OT"),var(--wcss-accent-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-sm-weight, 500);line-height:var(--wcss-accent-sm-line-height, 1.3);font-size:var(--wcss-accent-sm-font-size, clamp(1.125rem, 1.5vw, 1.25rem));letter-spacing:var(--wcss-accent-sm-letter-spacing, 0.05em);text-transform:uppercase}.accent-xs{font-family:var(--wcss-accent-xs-family, "Good OT"),var(--wcss-accent-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-xs-weight, 500);line-height:var(--wcss-accent-xs-line-height, 1.3);font-size:var(--wcss-accent-xs-font-size, clamp(1rem, 1.3333333333vw, 1rem));letter-spacing:var(--wcss-accent-xs-letter-spacing, 0.1em);text-transform:uppercase}.accent-2xs{font-family:var(--wcss-accent-2xs-family, "Good OT"),var(--wcss-accent-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-2xs-weight, 450);line-height:var(--wcss-accent-2xs-line-height, 1.3);font-size:var(--wcss-accent-2xs-font-size, clamp(0.875rem, 1.1666666667vw, 0.875rem));letter-spacing:var(--wcss-accent-2xs-letter-spacing, 0.1em);text-transform:uppercase}:host{position:relative;display:block;width:calc(100% - var(--ds-size-200, 1rem) - var(--ds-size-200, 1rem));margin:0 var(--ds-size-200, 1rem)}@media screen and (min-width: 576px){:host{width:336px;padding:var(--ds-size-200, 1rem) var(--ds-size-200, 1rem) 0}}@media screen and (min-width: 576px){:host(:not(:last-of-type)):after{position:absolute;top:var(--ds-size-200, 1rem);right:calc(-1*var(--ds-size-200, 1rem));height:calc(100% - var(--ds-size-200, 1rem) - var(--ds-size-200, 1rem));display:block;width:1px;content:""}}.header{display:flex;height:var(--ds-size-500, 2.5rem);margin-bottom:var(--ds-size-150, 0.75rem);align-items:center;flex-direction:row;text-align:center}.headerTitle{display:flex;align-items:center;flex:1;flex-direction:row;justify-content:center}.headerTitle div:first-child{margin-right:var(--ds-size-100, 0.5rem)}.calendarNavBtn{position:relative;display:flex;width:var(--ds-size-500, 2.5rem);height:var(--ds-size-500, 2.5rem);align-items:center;justify-content:center;border-width:1px;border-style:solid;border-radius:50%;cursor:pointer}.table{width:100%;border-collapse:collapse}.thead{margin-bottom:var(--ds-size-100, 0.5rem)}.th{display:flex;flex:1;align-items:center;justify-content:center}.th abbr{text-decoration:none}.tbody{width:100%;transition:all 0ms;transform:translateX(0)}@media screen and (min-width: 576px){.tbody{height:336px}}.td{flex:1;margin:0;padding:0}.tr{display:flex;flex-direction:row;width:100%;border-radius:10px;overflow:hidden}.tr:not(:last-of-type){margin-bottom:var(--ds-size-100, 0.5rem)}`;
|
|
24470
24467
|
|
|
24471
24468
|
var colorCss$6$1 = i$7`:focus:not(:focus-visible){outline:3px solid transparent}:host{background-color:var(--ds-auro-calendar-month-container-color)}@media screen and (min-width: 576px){:host(:not(:last-of-type)):after{background-color:var(--ds-auro-calendar-month-divider-color)}}.header{color:var(--ds-auro-calendar-month-header-color)}`;
|
|
24472
24469
|
|
|
@@ -25221,41 +25218,45 @@ __decorate([n$5({ type: Array })], RangeDatepickerCalendar.prototype, "dayNamesO
|
|
|
25221
25218
|
__decorate([n$5({ type: Array })], RangeDatepickerCalendar.prototype, "daysOfMonth", void 0);
|
|
25222
25219
|
AuroLibraryRuntimeUtils$5$1.prototype.registerComponent('wc-range-datepicker-calendar', RangeDatepickerCalendar);
|
|
25223
25220
|
|
|
25224
|
-
var styleCss$5$1 = i$7`.body-default{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-default-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-default-font-size, 1rem);line-height:var(--wcss-body-default-line-height, 1.5rem)}.body-default-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-default-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-default-emphasized-font-size, 1rem);line-height:var(--wcss-body-default-emphasized-line-height, 1.5rem)}.body-lg{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-lg-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-lg-font-size, 1.125rem);line-height:var(--wcss-body-lg-line-height, 1.625rem)}.body-lg-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-lg-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-lg-emphasized-font-size, 1.125rem);line-height:var(--wcss-body-lg-emphasized-line-height, 1.625rem)}.body-sm{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-sm-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-sm-font-size, 0.875rem);line-height:var(--wcss-body-sm-line-height, 1.25rem)}.body-sm-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-sm-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-sm-emphasized-font-size, 0.875rem);line-height:var(--wcss-body-sm-emphasized-line-height, 1.25rem)}.body-xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-xs-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-xs-font-size, 0.75rem);line-height:var(--wcss-body-xs-line-height, 1rem)}.body-xs-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-xs-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-xs-emphasized-font-size, 0.75rem);line-height:var(--wcss-body-xs-emphasized-line-height, 1rem)}.body-2xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-2xs-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-2xs-font-size, 0.625rem);line-height:var(--wcss-body-2xs-line-height, 0.875rem)}.body-2xs-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-2xs-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-2xs-emphasized-font-size, 0.625rem);line-height:var(--wcss-body-2xs-emphasized-line-height, 0.875rem)}.display-2xl{font-family:var(--wcss-display-2xl-family, "AS Circular"),var(--wcss-display-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-2xl-weight, 300);line-height:var(--wcss-display-2xl-line-height, 1.3);font-size:var(--wcss-display-2xl-font-size, clamp(3.5rem, 6vw, 5.375rem));letter-spacing:var(--wcss-display-2xl-letter-spacing, 0)}.display-xl{font-family:var(--wcss-display-xl-family, "AS Circular"),var(--wcss-display-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-xl-weight, 300);line-height:var(--wcss-display-xl-line-height, 1.3);font-size:var(--wcss-display-xl-font-size, clamp(3rem, 5.3333333333vw, 4.5rem));letter-spacing:var(--wcss-display-xl-letter-spacing, 0)}.display-lg{font-family:var(--wcss-display-lg-family, "AS Circular"),var(--wcss-display-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-lg-weight, 300);line-height:var(--wcss-display-lg-line-height, 1.3);font-size:var(--wcss-display-lg-font-size, clamp(2.75rem, 4.6666666667vw, 4rem));letter-spacing:var(--wcss-display-lg-letter-spacing, 0)}.display-md{font-family:var(--wcss-display-md-family, "AS Circular"),var(--wcss-display-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-md-weight, 300);line-height:var(--wcss-display-md-line-height, 1.3);font-size:var(--wcss-display-md-font-size, clamp(2.5rem, 4vw, 3.5rem));letter-spacing:var(--wcss-display-md-letter-spacing, 0)}.display-sm{font-family:var(--wcss-display-sm-family, "AS Circular"),var(--wcss-display-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-sm-weight, 300);line-height:var(--wcss-display-sm-line-height, 1.3);font-size:var(--wcss-display-sm-font-size, clamp(2rem, 3.6666666667vw, 3rem));letter-spacing:var(--wcss-display-sm-letter-spacing, 0)}.display-xs{font-family:var(--wcss-display-xs-family, "AS Circular"),var(--wcss-display-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-xs-weight, 300);line-height:var(--wcss-display-xs-line-height, 1.3);font-size:var(--wcss-display-xs-font-size, clamp(1.75rem, 3vw, 2.375rem));letter-spacing:var(--wcss-display-xs-letter-spacing, 0)}.heading-xl{font-family:var(--wcss-heading-xl-family, "AS Circular"),var(--wcss-heading-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-xl-weight, 300);line-height:var(--wcss-heading-xl-line-height, 1.3);font-size:var(--wcss-heading-xl-font-size, clamp(2rem, 3vw, 2.5rem));letter-spacing:var(--wcss-heading-xl-letter-spacing, 0)}.heading-lg{font-family:var(--wcss-heading-lg-family, "AS Circular"),var(--wcss-heading-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-lg-weight, 300);line-height:var(--wcss-heading-lg-line-height, 1.3);font-size:var(--wcss-heading-lg-font-size, clamp(1.75rem, 2.6666666667vw, 2.25rem));letter-spacing:var(--wcss-heading-lg-letter-spacing, 0)}.heading-md{font-family:var(--wcss-heading-md-family, "AS Circular"),var(--wcss-heading-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-md-weight, 300);line-height:var(--wcss-heading-md-line-height, 1.3);font-size:var(--wcss-heading-md-font-size, clamp(1.625rem, 2.3333333333vw, 1.75rem));letter-spacing:var(--wcss-heading-md-letter-spacing, 0)}.heading-sm{font-family:var(--wcss-heading-sm-family, "AS Circular"),var(--wcss-heading-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-sm-weight, 300);line-height:var(--wcss-heading-sm-line-height, 1.3);font-size:var(--wcss-heading-sm-font-size, clamp(1.375rem, 2vw, 1.5rem));letter-spacing:var(--wcss-heading-sm-letter-spacing, 0)}.heading-xs{font-family:var(--wcss-heading-xs-family, "AS Circular"),var(--wcss-heading-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-xs-weight, 300);line-height:var(--wcss-heading-xs-line-height, 1.3);font-size:var(--wcss-heading-xs-font-size, clamp(1.25rem, 1.6666666667vw, 1.25rem));letter-spacing:var(--wcss-heading-xs-letter-spacing, 0)}.heading-2xs{font-family:var(--wcss-heading-2xs-family, "AS Circular"),var(--wcss-heading-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-2xs-weight, 300);line-height:var(--wcss-heading-2xs-line-height, 1.3);font-size:var(--wcss-heading-2xs-font-size, clamp(1.125rem, 1.5vw, 1.125rem));letter-spacing:var(--wcss-heading-2xs-letter-spacing, 0)}.accent-2xl{font-family:var(--wcss-accent-2xl-family, "Good OT"),var(--wcss-accent-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-2xl-weight, 450);line-height:var(--wcss-accent-2xl-line-height, 1);font-size:var(--wcss-accent-2xl-font-size, clamp(2rem, 3.1666666667vw, 2.375rem));letter-spacing:var(--wcss-accent-2xl-letter-spacing, 0.05em);text-transform:uppercase}.accent-xl{font-family:var(--wcss-accent-xl-family, "Good OT"),var(--wcss-accent-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-xl-weight, 450);line-height:var(--wcss-accent-xl-line-height, 1.3);font-size:var(--wcss-accent-xl-font-size, clamp(1.625rem, 2.3333333333vw, 2rem));letter-spacing:var(--wcss-accent-xl-letter-spacing, 0.05em);text-transform:uppercase}.accent-lg{font-family:var(--wcss-accent-lg-family, "Good OT"),var(--wcss-accent-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-lg-weight, 450);line-height:var(--wcss-accent-lg-line-height, 1.3);font-size:var(--wcss-accent-lg-font-size, clamp(1.5rem, 2.1666666667vw, 1.75rem));letter-spacing:var(--wcss-accent-lg-letter-spacing, 0.05em);text-transform:uppercase}.accent-md{font-family:var(--wcss-accent-md-family, "Good OT"),var(--wcss-accent-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-md-weight, 500);line-height:var(--wcss-accent-md-line-height, 1.3);font-size:var(--wcss-accent-md-font-size, clamp(1.375rem, 1.8333333333vw, 1.5rem));letter-spacing:var(--wcss-accent-md-letter-spacing, 0.05em);text-transform:uppercase}.accent-sm{font-family:var(--wcss-accent-sm-family, "Good OT"),var(--wcss-accent-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-sm-weight, 500);line-height:var(--wcss-accent-sm-line-height, 1.3);font-size:var(--wcss-accent-sm-font-size, clamp(1.125rem, 1.5vw, 1.25rem));letter-spacing:var(--wcss-accent-sm-letter-spacing, 0.05em);text-transform:uppercase}.accent-xs{font-family:var(--wcss-accent-xs-family, "Good OT"),var(--wcss-accent-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-xs-weight, 500);line-height:var(--wcss-accent-xs-line-height, 1.3);font-size:var(--wcss-accent-xs-font-size, clamp(1rem, 1.3333333333vw, 1rem));letter-spacing:var(--wcss-accent-xs-letter-spacing, 0.1em);text-transform:uppercase}.accent-2xs{font-family:var(--wcss-accent-2xs-family, "Good OT"),var(--wcss-accent-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-2xs-weight, 450);line-height:var(--wcss-accent-2xs-line-height, 1.3);font-size:var(--wcss-accent-2xs-font-size, clamp(0.875rem, 1.1666666667vw, 0.875rem));letter-spacing:var(--wcss-accent-2xs-letter-spacing, 0.1em);text-transform:uppercase}@media screen and (max-width: 576px){:host{display:flex;justify-content:center}}.day{position:relative;width:var(--ds-size-500, 2.5rem);height:calc(var(--ds-size-700, 3.5rem) - 2px);padding:0;border-width:1px;border-style:solid;border-radius:var(--ds-size-300, 1.5rem);cursor:pointer;user-select:none}.day.disabled{cursor:default !important;pointer-events:none}.day.reference{box-shadow:inset 0 0 0 2px var(--ds-advanced-color-shared-background, #ffffff)}.day.inRange::before{position:absolute;z-index:-1;top:50%;left:50%;display:block;width:14.2857142857vw;height:var(--ds-size-600, 3rem);content:"";transform:translate(-50%, -50%)}@media screen and (min-width: 576px){.day.inRange::before{width:var(--ds-size-600, 3rem)}}.day.rangeDepartDate::before{position:absolute;z-index:-1;top:50%;left:50%;display:block;width:14.2857142857vw;height:var(--ds-size-600, 3rem);content:"";transform:translate(-50%, -50%);width:7.1428571429vw;transform:translate(0%, -50%)}@media screen and (min-width: 576px){.day.rangeDepartDate::before{width:calc(var(--ds-size-600, 3rem)/2)}}.day.rangeReturnDate::before,.day.lastHoveredDate::before{position:absolute;z-index:-1;top:50%;left:50%;display:block;width:14.2857142857vw;height:var(--ds-size-600, 3rem);content:"";transform:translate(-50%, -50%);width:7.1428571429vw;transform:translate(-100%, -50%)}@media screen and (min-width: 576px){.day.rangeReturnDate::before,.day.lastHoveredDate::before{width:calc(var(--ds-size-600, 3rem)/2)}}.dateSlot{display:flex;flex-direction:column}::slotted([slot^=date_]){position:absolute;top:80%;left:50%;width:100%;white-space:nowrap;transform:translate(-50%, -50%)}::slotted(auro-icon){max-height:24px;max-width:24px}:host([renderForDateSlot]) .buttonWrapper{position:relative;width:100%;top:5px}:host([renderForDateSlot]) .currentDayMarker{position:relative;padding-bottom:5px;top:-8px}@media screen and (min-width: 576px){.day{width:var(--ds-size-600, 3rem);height:var(--ds-size-800, 4rem)}.day:hover{cursor:pointer}}`;
|
|
25221
|
+
var styleCss$5$1 = i$7`.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}`;
|
|
25225
25222
|
|
|
25226
|
-
var colorCss$5$1 = i$7`: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.selected{--ds-auro-calendar-cell-container-color: var(--ds-advanced-color-state-selected, #01426a);--ds-auro-calendar-cell-text-color: var(--ds-basic-color-texticon-inverse, #ffffff);--ds-auro-calendar-cell-price-text-color: var(--ds-basic-color-texticon-inverse, #ffffff)}:host .day.selected ::slotted([slot^=date_][highlight]){--ds-auro-calendar-cell-price-text-color: var(--ds-basic-color-status-success-subtle, #d6eac7)}:host .day.selected:hover{--ds-auro-calendar-cell-container-color: var(--ds-advanced-color-state-selected-hover, #00274a);--ds-auro-calendar-cell-text-color: var(--ds-basic-color-texticon-inverse, #ffffff)}:host .day.reference{--ds-
|
|
25223
|
+
var colorCss$5$1 = i$7`: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}`;
|
|
25227
25224
|
|
|
25228
|
-
let s$3 = class s{registerComponent(e,t){customElements.get(e)||customElements.define(e,class extends t{});}closestElement(e,t=this,i=(t,s=t&&t.closest(e))=>t&&t!==document&&t!==window?s||i(t.getRootNode().host):null){return i(t)}handleComponentTagRename(e,t){const i=t.toLowerCase();e.tagName.toLowerCase()!==i&&e.setAttribute(i,true);}elementMatch(e,t){const i=t.toLowerCase();return e.tagName.toLowerCase()===i||e.hasAttribute(i)}getSlotText(e,t){const i=e.shadowRoot?.querySelector(`slot[name="${t}"]`);return (i?.assignedNodes({flatten:true})||[]).map(e=>e.textContent?.trim()).join(" ").trim()||null}};var r$1$1="top",o="bottom",n$1$1="right",a="left",l$3$1="auto",c$3$1=[r$1$1,o,n$1$1,a],p$6$1="start",d$3$1="end",f$6$1="viewport",h$3$1="popper",m$6$1=c$3$1.reduce(function(e,t){return e.concat([t+"-"+p$6$1,t+"-"+d$3$1])},[]),u$6$1=[].concat(c$3$1,[l$3$1]).reduce(function(e,t){return e.concat([t,t+"-"+p$6$1,t+"-"+d$3$1])},[]),g$6$1=["beforeRead","read","afterRead","beforeMain","main","afterMain","beforeWrite","write","afterWrite"];function v$3$1(e){return e?(e.nodeName||"").toLowerCase():null}function y$6$1(e){if(null==e)return window;if("[object Window]"!==e.toString()){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function w$6$1(e){return e instanceof y$6$1(e).Element||e instanceof Element}function b$3$1(e){return e instanceof y$6$1(e).HTMLElement||e instanceof HTMLElement}function x$3$1(e){return "undefined"!=typeof ShadowRoot&&(e instanceof y$6$1(e).ShadowRoot||e instanceof ShadowRoot)}var S$3$1={name:"applyStyles",enabled:true,phase:"write",fn:function(e){var t=e.state;Object.keys(t.elements).forEach(function(e){var i=t.styles[e]||{},s=t.attributes[e]||{},r=t.elements[e];b$3$1(r)&&v$3$1(r)&&(Object.assign(r.style,i),Object.keys(s).forEach(function(e){var t=s[e];false===t?r.removeAttribute(e):r.setAttribute(e,true===t?"":t);}));});},effect:function(e){var t=e.state,i={popper:{position:t.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(t.elements.popper.style,i.popper),t.styles=i,t.elements.arrow&&Object.assign(t.elements.arrow.style,i.arrow),function(){Object.keys(t.elements).forEach(function(e){var s=t.elements[e],r=t.attributes[e]||{},o=Object.keys(t.styles.hasOwnProperty(e)?t.styles[e]:i[e]).reduce(function(e,t){return e[t]="",e},{});b$3$1(s)&&v$3$1(s)&&(Object.assign(s.style,o),Object.keys(r).forEach(function(e){s.removeAttribute(e);}));});}},requires:["computeStyles"]};function _$4$1(e){return e.split("-")[0]}var O=Math.max,k$6$1=Math.min,A$3$1=Math.round;function z$6$1(){var e=navigator.userAgentData;return null!=e&&e.brands&&Array.isArray(e.brands)?e.brands.map(function(e){return e.brand+"/"+e.version}).join(" "):navigator.userAgent}function E(){return !/^((?!chrome|android).)*safari/i.test(z$6$1())}function M$6$1(e,t,i){ void 0===t&&(t=false),void 0===i&&(i=false);var s=e.getBoundingClientRect(),r=1,o=1;t&&b$3$1(e)&&(r=e.offsetWidth>0&&A$3$1(s.width)/e.offsetWidth||1,o=e.offsetHeight>0&&A$3$1(s.height)/e.offsetHeight||1);var n=(w$6$1(e)?y$6$1(e):window).visualViewport,a=!E()&&i,l=(s.left+(a&&n?n.offsetLeft:0))/r,c=(s.top+(a&&n?n.offsetTop:0))/o,p=s.width/r,d=s.height/o;return {width:p,height:d,top:c,right:l+p,bottom:c+d,left:l,x:l,y:c}}function T$3$1(e){var t=M$6$1(e),i=e.offsetWidth,s=e.offsetHeight;return Math.abs(t.width-i)<=1&&(i=t.width),Math.abs(t.height-s)<=1&&(s=t.height),{x:e.offsetLeft,y:e.offsetTop,width:i,height:s}}function B$3$1(e,t){var i=t.getRootNode&&t.getRootNode();if(e.contains(t))return true;if(i&&x$3$1(i)){var s=t;do{if(s&&e.isSameNode(s))return true;s=s.parentNode||s.host;}while(s)}return false}function L(e){return y$6$1(e).getComputedStyle(e)}function H$3$1(e){return ["table","td","th"].indexOf(v$3$1(e))>=0}function C$3$1(e){return ((w$6$1(e)?e.ownerDocument:e.document)||window.document).documentElement}function R$3$1(e){return "html"===v$3$1(e)?e:e.assignedSlot||e.parentNode||(x$3$1(e)?e.host:null)||C$3$1(e)}function j(e){return b$3$1(e)&&"fixed"!==L(e).position?e.offsetParent:null}function N$3$1(e){for(var t=y$6$1(e),i=j(e);i&&H$3$1(i)&&"static"===L(i).position;)i=j(i);return i&&("html"===v$3$1(i)||"body"===v$3$1(i)&&"static"===L(i).position)?t:i||function(e){var t=/firefox/i.test(z$6$1());if(/Trident/i.test(z$6$1())&&b$3$1(e)&&"fixed"===L(e).position)return null;var i=R$3$1(e);for(x$3$1(i)&&(i=i.host);b$3$1(i)&&["html","body"].indexOf(v$3$1(i))<0;){var s=L(i);if("none"!==s.transform||"none"!==s.perspective||"paint"===s.contain||-1!==["transform","perspective"].indexOf(s.willChange)||t&&"filter"===s.willChange||t&&s.filter&&"none"!==s.filter)return i;i=i.parentNode;}return null}(e)||t}function P(e){return ["top","bottom"].indexOf(e)>=0?"x":"y"}function D(e,t,i){return O(e,k$6$1(t,i))}function I(e){return Object.assign({},{top:0,right:0,bottom:0,left:0},e)}function F(e,t){return t.reduce(function(t,i){return t[i]=e,t},{})}var U$3$1={name:"arrow",enabled:true,phase:"main",fn:function(e){var t,i=e.state,s=e.name,l=e.options,p=i.elements.arrow,d=i.modifiersData.popperOffsets,f=_$4$1(i.placement),h=P(f),m=[a,n$1$1].indexOf(f)>=0?"height":"width";if(p&&d){var u=function(e,t){return I("number"!=typeof(e="function"==typeof e?e(Object.assign({},t.rects,{placement:t.placement})):e)?e:F(e,c$3$1))}(l.padding,i),g=T$3$1(p),v="y"===h?r$1$1:a,y="y"===h?o:n$1$1,w=i.rects.reference[m]+i.rects.reference[h]-d[h]-i.rects.popper[m],b=d[h]-i.rects.reference[h],x=N$3$1(p),S=x?"y"===h?x.clientHeight||0:x.clientWidth||0:0,O=w/2-b/2,k=u[v],A=S-g[m]-u[y],z=S/2-g[m]/2+O,E=D(k,z,A),M=h;i.modifiersData[s]=((t={})[M]=E,t.centerOffset=E-z,t);}},effect:function(e){var t=e.state,i=e.options.element,s=void 0===i?"[data-popper-arrow]":i;null!=s&&("string"!=typeof s||(s=t.elements.popper.querySelector(s)))&&B$3$1(t.elements.popper,s)&&(t.elements.arrow=s);},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function q$3$1(e){return e.split("-")[1]}var W={top:"auto",right:"auto",bottom:"auto",left:"auto"};function X(e){var t,i=e.popper,s=e.popperRect,l=e.placement,c=e.variation,p=e.offsets,f=e.position,h=e.gpuAcceleration,m=e.adaptive,u=e.roundOffsets,g=e.isFixed,v=p.x,w=void 0===v?0:v,b=p.y,x=void 0===b?0:b,S="function"==typeof u?u({x:w,y:x}):{x:w,y:x};w=S.x,x=S.y;var _=p.hasOwnProperty("x"),O=p.hasOwnProperty("y"),k=a,z=r$1$1,E=window;if(m){var M=N$3$1(i),T="clientHeight",B="clientWidth";if(M===y$6$1(i)&&"static"!==L(M=C$3$1(i)).position&&"absolute"===f&&(T="scrollHeight",B="scrollWidth"),l===r$1$1||(l===a||l===n$1$1)&&c===d$3$1)z=o,x-=(g&&M===E&&E.visualViewport?E.visualViewport.height:M[T])-s.height,x*=h?1:-1;if(l===a||(l===r$1$1||l===o)&&c===d$3$1)k=n$1$1,w-=(g&&M===E&&E.visualViewport?E.visualViewport.width:M[B])-s.width,w*=h?1:-1;}var H,R=Object.assign({position:f},m&&W),j=true===u?function(e,t){var i=e.x,s=e.y,r=t.devicePixelRatio||1;return {x:A$3$1(i*r)/r||0,y:A$3$1(s*r)/r||0}}({x:w,y:x},y$6$1(i)):{x:w,y:x};return w=j.x,x=j.y,h?Object.assign({},R,((H={})[z]=O?"0":"",H[k]=_?"0":"",H.transform=(E.devicePixelRatio||1)<=1?"translate("+w+"px, "+x+"px)":"translate3d("+w+"px, "+x+"px, 0)",H)):Object.assign({},R,((t={})[z]=O?x+"px":"",t[k]=_?w+"px":"",t.transform="",t))}var V={passive:true};var G={left:"right",right:"left",bottom:"top",top:"bottom"};function $(e){return e.replace(/left|right|bottom|top/g,function(e){return G[e]})}var K={start:"end",end:"start"};function Y(e){return e.replace(/start|end/g,function(e){return K[e]})}function J(e){var t=y$6$1(e);return {scrollLeft:t.pageXOffset,scrollTop:t.pageYOffset}}function Q(e){return M$6$1(C$3$1(e)).left+J(e).scrollLeft}function Z(e){var t=L(e),i=t.overflow,s=t.overflowX,r=t.overflowY;return /auto|scroll|overlay|hidden/.test(i+r+s)}function ee(e){return ["html","body","#document"].indexOf(v$3$1(e))>=0?e.ownerDocument.body:b$3$1(e)&&Z(e)?e:ee(R$3$1(e))}function te(e,t){var i;void 0===t&&(t=[]);var s=ee(e),r=s===(null==(i=e.ownerDocument)?void 0:i.body),o=y$6$1(s),n=r?[o].concat(o.visualViewport||[],Z(s)?s:[]):s,a=t.concat(n);return r?a:a.concat(te(R$3$1(n)))}function ie(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function se(e,t,i){return t===f$6$1?ie(function(e,t){var i=y$6$1(e),s=C$3$1(e),r=i.visualViewport,o=s.clientWidth,n=s.clientHeight,a=0,l=0;if(r){o=r.width,n=r.height;var c=E();(c||!c&&"fixed"===t)&&(a=r.offsetLeft,l=r.offsetTop);}return {width:o,height:n,x:a+Q(e),y:l}}(e,i)):w$6$1(t)?function(e,t){var i=M$6$1(e,false,"fixed"===t);return i.top=i.top+e.clientTop,i.left=i.left+e.clientLeft,i.bottom=i.top+e.clientHeight,i.right=i.left+e.clientWidth,i.width=e.clientWidth,i.height=e.clientHeight,i.x=i.left,i.y=i.top,i}(t,i):ie(function(e){var t,i=C$3$1(e),s=J(e),r=null==(t=e.ownerDocument)?void 0:t.body,o=O(i.scrollWidth,i.clientWidth,r?r.scrollWidth:0,r?r.clientWidth:0),n=O(i.scrollHeight,i.clientHeight,r?r.scrollHeight:0,r?r.clientHeight:0),a=-s.scrollLeft+Q(e),l=-s.scrollTop;return "rtl"===L(r||i).direction&&(a+=O(i.clientWidth,r?r.clientWidth:0)-o),{width:o,height:n,x:a,y:l}}(C$3$1(e)))}function re(e,t,i,s){var r="clippingParents"===t?function(e){var t=te(R$3$1(e)),i=["absolute","fixed"].indexOf(L(e).position)>=0&&b$3$1(e)?N$3$1(e):e;return w$6$1(i)?t.filter(function(e){return w$6$1(e)&&B$3$1(e,i)&&"body"!==v$3$1(e)}):[]}(e):[].concat(t),o=[].concat(r,[i]),n=o[0],a=o.reduce(function(t,i){var r=se(e,i,s);return t.top=O(r.top,t.top),t.right=k$6$1(r.right,t.right),t.bottom=k$6$1(r.bottom,t.bottom),t.left=O(r.left,t.left),t},se(e,n,s));return a.width=a.right-a.left,a.height=a.bottom-a.top,a.x=a.left,a.y=a.top,a}function oe(e){var t,i=e.reference,s=e.element,l=e.placement,c=l?_$4$1(l):null,f=l?q$3$1(l):null,h=i.x+i.width/2-s.width/2,m=i.y+i.height/2-s.height/2;switch(c){case r$1$1:t={x:h,y:i.y-s.height};break;case o:t={x:h,y:i.y+i.height};break;case n$1$1:t={x:i.x+i.width,y:m};break;case a:t={x:i.x-s.width,y:m};break;default:t={x:i.x,y:i.y};}var u=c?P(c):null;if(null!=u){var g="y"===u?"height":"width";switch(f){case p$6$1:t[u]=t[u]-(i[g]/2-s[g]/2);break;case d$3$1:t[u]=t[u]+(i[g]/2-s[g]/2);}}return t}function ne(e,t){ void 0===t&&(t={});var i=t,s=i.placement,a=void 0===s?e.placement:s,l=i.strategy,p=void 0===l?e.strategy:l,d=i.boundary,m=void 0===d?"clippingParents":d,u=i.rootBoundary,g=void 0===u?f$6$1:u,v=i.elementContext,y=void 0===v?h$3$1:v,b=i.altBoundary,x=void 0!==b&&b,S=i.padding,_=void 0===S?0:S,O=I("number"!=typeof _?_:F(_,c$3$1)),k=y===h$3$1?"reference":h$3$1,A=e.rects.popper,z=e.elements[x?k:y],E=re(w$6$1(z)?z:z.contextElement||C$3$1(e.elements.popper),m,g,p),T=M$6$1(e.elements.reference),B=oe({reference:T,element:A,placement:a}),L=ie(Object.assign({},A,B)),H=y===h$3$1?L:T,R={top:E.top-H.top+O.top,bottom:H.bottom-E.bottom+O.bottom,left:E.left-H.left+O.left,right:H.right-E.right+O.right},j=e.modifiersData.offset;if(y===h$3$1&&j){var N=j[a];Object.keys(R).forEach(function(e){var t=[n$1$1,o].indexOf(e)>=0?1:-1,i=[r$1$1,o].indexOf(e)>=0?"y":"x";R[e]+=N[i]*t;});}return R}function ae(e,t){ void 0===t&&(t={});var i=t,s=i.placement,r=i.boundary,o=i.rootBoundary,n=i.padding,a=i.flipVariations,l=i.allowedAutoPlacements,p=void 0===l?u$6$1:l,d=q$3$1(s),f=d?a?m$6$1:m$6$1.filter(function(e){return q$3$1(e)===d}):c$3$1,h=f.filter(function(e){return p.indexOf(e)>=0});0===h.length&&(h=f);var g=h.reduce(function(t,i){return t[i]=ne(e,{placement:i,boundary:r,rootBoundary:o,padding:n})[_$4$1(i)],t},{});return Object.keys(g).sort(function(e,t){return g[e]-g[t]})}var le={name:"flip",enabled:true,phase:"main",fn:function(e){var t=e.state,i=e.options,s=e.name;if(!t.modifiersData[s]._skip){for(var c=i.mainAxis,d=void 0===c||c,f=i.altAxis,h=void 0===f||f,m=i.fallbackPlacements,u=i.padding,g=i.boundary,v=i.rootBoundary,y=i.altBoundary,w=i.flipVariations,b=void 0===w||w,x=i.allowedAutoPlacements,S=t.options.placement,O=_$4$1(S),k=m||(O===S||!b?[$(S)]:function(e){if(_$4$1(e)===l$3$1)return [];var t=$(e);return [Y(e),t,Y(t)]}(S)),A=[S].concat(k).reduce(function(e,i){return e.concat(_$4$1(i)===l$3$1?ae(t,{placement:i,boundary:g,rootBoundary:v,padding:u,flipVariations:b,allowedAutoPlacements:x}):i)},[]),z=t.rects.reference,E=t.rects.popper,M=new Map,T=true,B=A[0],L=0;L<A.length;L++){var H=A[L],C=_$4$1(H),R=q$3$1(H)===p$6$1,j=[r$1$1,o].indexOf(C)>=0,N=j?"width":"height",P=ne(t,{placement:H,boundary:g,rootBoundary:v,altBoundary:y,padding:u}),D=j?R?n$1$1:a:R?o:r$1$1;z[N]>E[N]&&(D=$(D));var I=$(D),F=[];if(d&&F.push(P[C]<=0),h&&F.push(P[D]<=0,P[I]<=0),F.every(function(e){return e})){B=H,T=false;break}M.set(H,F);}if(T)for(var U=function(e){var t=A.find(function(t){var i=M.get(t);if(i)return i.slice(0,e).every(function(e){return e})});if(t)return B=t,"break"},W=b?3:1;W>0;W--){if("break"===U(W))break}t.placement!==B&&(t.modifiersData[s]._skip=true,t.placement=B,t.reset=true);}},requiresIfExists:["offset"],data:{_skip:false}};function ce(e,t,i){return void 0===i&&(i={x:0,y:0}),{top:e.top-t.height-i.y,right:e.right-t.width+i.x,bottom:e.bottom-t.height+i.y,left:e.left-t.width-i.x}}function pe(e){return [r$1$1,n$1$1,o,a].some(function(t){return e[t]>=0})}var de={name:"offset",enabled:true,phase:"main",requires:["popperOffsets"],fn:function(e){var t=e.state,i=e.options,s=e.name,o=i.offset,l=void 0===o?[0,0]:o,c=u$6$1.reduce(function(e,i){return e[i]=function(e,t,i){var s=_$4$1(e),o=[a,r$1$1].indexOf(s)>=0?-1:1,l="function"==typeof i?i(Object.assign({},t,{placement:e})):i,c=l[0],p=l[1];return c=c||0,p=(p||0)*o,[a,n$1$1].indexOf(s)>=0?{x:p,y:c}:{x:c,y:p}}(i,t.rects,l),e},{}),p=c[t.placement],d=p.x,f=p.y;null!=t.modifiersData.popperOffsets&&(t.modifiersData.popperOffsets.x+=d,t.modifiersData.popperOffsets.y+=f),t.modifiersData[s]=c;}};var fe={name:"preventOverflow",enabled:true,phase:"main",fn:function(e){var t=e.state,i=e.options,s=e.name,l=i.mainAxis,c=void 0===l||l,d=i.altAxis,f=void 0!==d&&d,h=i.boundary,m=i.rootBoundary,u=i.altBoundary,g=i.padding,v=i.tether,y=void 0===v||v,w=i.tetherOffset,b=void 0===w?0:w,x=ne(t,{boundary:h,rootBoundary:m,padding:g,altBoundary:u}),S=_$4$1(t.placement),A=q$3$1(t.placement),z=!A,E=P(S),M="x"===E?"y":"x",B=t.modifiersData.popperOffsets,L=t.rects.reference,H=t.rects.popper,C="function"==typeof b?b(Object.assign({},t.rects,{placement:t.placement})):b,R="number"==typeof C?{mainAxis:C,altAxis:C}:Object.assign({mainAxis:0,altAxis:0},C),j=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,I={x:0,y:0};if(B){if(c){var F,U="y"===E?r$1$1:a,W="y"===E?o:n$1$1,X="y"===E?"height":"width",V=B[E],G=V+x[U],$=V-x[W],K=y?-H[X]/2:0,Y=A===p$6$1?L[X]:H[X],J=A===p$6$1?-H[X]:-L[X],Q=t.elements.arrow,Z=y&&Q?T$3$1(Q):{width:0,height:0},ee=t.modifiersData["arrow#persistent"]?t.modifiersData["arrow#persistent"].padding:{top:0,right:0,bottom:0,left:0},te=ee[U],ie=ee[W],se=D(0,L[X],Z[X]),re=z?L[X]/2-K-se-te-R.mainAxis:Y-se-te-R.mainAxis,oe=z?-L[X]/2+K+se+ie+R.mainAxis:J+se+ie+R.mainAxis,ae=t.elements.arrow&&N$3$1(t.elements.arrow),le=ae?"y"===E?ae.clientTop||0:ae.clientLeft||0:0,ce=null!=(F=null==j?void 0:j[E])?F:0,pe=V+oe-ce,de=D(y?k$6$1(G,V+re-ce-le):G,V,y?O($,pe):$);B[E]=de,I[E]=de-V;}if(f){var fe,he="x"===E?r$1$1:a,me="x"===E?o:n$1$1,ue=B[M],ge="y"===M?"height":"width",ve=ue+x[he],ye=ue-x[me],we=-1!==[r$1$1,a].indexOf(S),be=null!=(fe=null==j?void 0:j[M])?fe:0,xe=we?ve:ue-L[ge]-H[ge]-be+R.altAxis,Se=we?ue+L[ge]+H[ge]-be-R.altAxis:ye,_e=y&&we?function(e,t,i){var s=D(e,t,i);return s>i?i:s}(xe,ue,Se):D(y?xe:ve,ue,y?Se:ye);B[M]=_e,I[M]=_e-ue;}t.modifiersData[s]=I;}},requiresIfExists:["offset"]};function he(e,t,i){ void 0===i&&(i=false);var s,r,o=b$3$1(t),n=b$3$1(t)&&function(e){var t=e.getBoundingClientRect(),i=A$3$1(t.width)/e.offsetWidth||1,s=A$3$1(t.height)/e.offsetHeight||1;return 1!==i||1!==s}(t),a=C$3$1(t),l=M$6$1(e,n,i),c={scrollLeft:0,scrollTop:0},p={x:0,y:0};return (o||!o&&!i)&&(("body"!==v$3$1(t)||Z(a))&&(c=(s=t)!==y$6$1(s)&&b$3$1(s)?{scrollLeft:(r=s).scrollLeft,scrollTop:r.scrollTop}:J(s)),b$3$1(t)?((p=M$6$1(t,true)).x+=t.clientLeft,p.y+=t.clientTop):a&&(p.x=Q(a))),{x:l.left+c.scrollLeft-p.x,y:l.top+c.scrollTop-p.y,width:l.width,height:l.height}}function me(e){var t=new Map,i=new Set,s=[];function r(e){i.add(e.name),[].concat(e.requires||[],e.requiresIfExists||[]).forEach(function(e){if(!i.has(e)){var s=t.get(e);s&&r(s);}}),s.push(e);}return e.forEach(function(e){t.set(e.name,e);}),e.forEach(function(e){i.has(e.name)||r(e);}),s}var ue={placement:"bottom",modifiers:[],strategy:"absolute"};function ge(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];return !t.some(function(e){return !(e&&"function"==typeof e.getBoundingClientRect)})}function ve(e){ void 0===e&&(e={});var t=e,i=t.defaultModifiers,s=void 0===i?[]:i,r=t.defaultOptions,o=void 0===r?ue:r;return function(e,t,i){ void 0===i&&(i=o);var r,n,a={placement:"bottom",orderedModifiers:[],options:Object.assign({},ue,o),modifiersData:{},elements:{reference:e,popper:t},attributes:{},styles:{}},l=[],c=false,p={state:a,setOptions:function(i){var r="function"==typeof i?i(a.options):i;d(),a.options=Object.assign({},o,a.options,r),a.scrollParents={reference:w$6$1(e)?te(e):e.contextElement?te(e.contextElement):[],popper:te(t)};var n,c,f=function(e){var t=me(e);return g$6$1.reduce(function(e,i){return e.concat(t.filter(function(e){return e.phase===i}))},[])}((n=[].concat(s,a.options.modifiers),c=n.reduce(function(e,t){var i=e[t.name];return e[t.name]=i?Object.assign({},i,t,{options:Object.assign({},i.options,t.options),data:Object.assign({},i.data,t.data)}):t,e},{}),Object.keys(c).map(function(e){return c[e]})));return a.orderedModifiers=f.filter(function(e){return e.enabled}),a.orderedModifiers.forEach(function(e){var t=e.name,i=e.options,s=void 0===i?{}:i,r=e.effect;if("function"==typeof r){var o=r({state:a,name:t,instance:p,options:s}),n=function(){};l.push(o||n);}}),p.update()},forceUpdate:function(){if(!c){var e=a.elements,t=e.reference,i=e.popper;if(ge(t,i)){a.rects={reference:he(t,N$3$1(i),"fixed"===a.options.strategy),popper:T$3$1(i)},a.reset=false,a.placement=a.options.placement,a.orderedModifiers.forEach(function(e){return a.modifiersData[e.name]=Object.assign({},e.data)});for(var s=0;s<a.orderedModifiers.length;s++)if(true!==a.reset){var r=a.orderedModifiers[s],o=r.fn,n=r.options,l=void 0===n?{}:n,d=r.name;"function"==typeof o&&(a=o({state:a,options:l,name:d,instance:p})||a);}else a.reset=false,s=-1;}}},update:(r=function(){return new Promise(function(e){p.forceUpdate(),e(a);})},function(){return n||(n=new Promise(function(e){Promise.resolve().then(function(){n=void 0,e(r());});})),n}),destroy:function(){d(),c=true;}};if(!ge(e,t))return p;function d(){l.forEach(function(e){return e()}),l=[];}return p.setOptions(i).then(function(e){!c&&i.onFirstUpdate&&i.onFirstUpdate(e);}),p}}var ye=ve({defaultModifiers:[{name:"eventListeners",enabled:true,phase:"write",fn:function(){},effect:function(e){var t=e.state,i=e.instance,s=e.options,r=s.scroll,o=void 0===r||r,n=s.resize,a=void 0===n||n,l=y$6$1(t.elements.popper),c=[].concat(t.scrollParents.reference,t.scrollParents.popper);return o&&c.forEach(function(e){e.addEventListener("scroll",i.update,V);}),a&&l.addEventListener("resize",i.update,V),function(){o&&c.forEach(function(e){e.removeEventListener("scroll",i.update,V);}),a&&l.removeEventListener("resize",i.update,V);}},data:{}},{name:"popperOffsets",enabled:true,phase:"read",fn:function(e){var t=e.state,i=e.name;t.modifiersData[i]=oe({reference:t.rects.reference,element:t.rects.popper,placement:t.placement});},data:{}},{name:"computeStyles",enabled:true,phase:"beforeWrite",fn:function(e){var t=e.state,i=e.options,s=i.gpuAcceleration,r=void 0===s||s,o=i.adaptive,n=void 0===o||o,a=i.roundOffsets,l=void 0===a||a,c={placement:_$4$1(t.placement),variation:q$3$1(t.placement),popper:t.elements.popper,popperRect:t.rects.popper,gpuAcceleration:r,isFixed:"fixed"===t.options.strategy};null!=t.modifiersData.popperOffsets&&(t.styles.popper=Object.assign({},t.styles.popper,X(Object.assign({},c,{offsets:t.modifiersData.popperOffsets,position:t.options.strategy,adaptive:n,roundOffsets:l})))),null!=t.modifiersData.arrow&&(t.styles.arrow=Object.assign({},t.styles.arrow,X(Object.assign({},c,{offsets:t.modifiersData.arrow,position:"absolute",adaptive:false,roundOffsets:l})))),t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-placement":t.placement});},data:{}},S$3$1,de,le,fe,U$3$1,{name:"hide",enabled:true,phase:"main",requiresIfExists:["preventOverflow"],fn:function(e){var t=e.state,i=e.name,s=t.rects.reference,r=t.rects.popper,o=t.modifiersData.preventOverflow,n=ne(t,{elementContext:"reference"}),a=ne(t,{altBoundary:true}),l=ce(n,s),c=ce(a,r,o),p=pe(l),d=pe(c);t.modifiersData[i]={referenceClippingOffsets:l,popperEscapeOffsets:c,isReferenceHidden:p,hasPopperEscaped:d},t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-reference-hidden":p,"data-popper-escaped":d});}}]});class we{constructor(e,t,i,s){this.anchor=e,this.popover=t,this.boundaryElement=this.setBoundary(s),this.options={placement:i,visibleClass:"data-show"},this.popover.classList.remove(this.options.visibleClass);}setBoundary(e){return "string"==typeof e?document.querySelector(e)||document.body:e||document.body}show(){this.popper&&this.popper.destroy(),this.popper=ye(this.anchor,this.popover,{tooltip:this.anchor,placement:this.options.placement,modifiers:[{name:"offset",options:{offset:[0,18]}},{name:"preventOverflow",options:{mainAxis:true,boundary:this.boundaryElement,rootBoundary:"document",padding:16}}]});}triggerUpdate(){this.popper.update();}hide(){this.popover.classList.remove(this.options.visibleClass);}}var be=i$7`::slotted(*):not([onDark]),::slotted(*):not([appearance=inverse]){color:var(--ds-auro-popover-text-color)}.popover{background-color:var(--ds-auro-popover-container-color);box-shadow:var(--ds-auro-popover-boxshadow-color)}.arrow:before{background-color:var(--ds-auro-popover-container-color);box-shadow:2px 2px 1px 0 var(--ds-auro-popover-boxshadow-color)}
|
|
25225
|
+
let s$3 = class s{registerComponent(e,t){customElements.get(e)||customElements.define(e,class extends t{});}closestElement(e,t=this,i=(t,s=t&&t.closest(e))=>t&&t!==document&&t!==window?s||i(t.getRootNode().host):null){return i(t)}handleComponentTagRename(e,t){const i=t.toLowerCase();e.tagName.toLowerCase()!==i&&e.setAttribute(i,true);}elementMatch(e,t){const i=t.toLowerCase();return e.tagName.toLowerCase()===i||e.hasAttribute(i)}getSlotText(e,t){const i=e.shadowRoot?.querySelector(`slot[name="${t}"]`);return (i?.assignedNodes({flatten:true})||[]).map(e=>e.textContent?.trim()).join(" ").trim()||null}};var r$1$1="top",o="bottom",n$1$1="right",a="left",l$3$1="auto",c$3$1=[r$1$1,o,n$1$1,a],p$6$1="start",d$3$1="end",f$6$1="viewport",h$3$1="popper",u$6$1=c$3$1.reduce(function(e,t){return e.concat([t+"-"+p$6$1,t+"-"+d$3$1])},[]),m$6$1=[].concat(c$3$1,[l$3$1]).reduce(function(e,t){return e.concat([t,t+"-"+p$6$1,t+"-"+d$3$1])},[]),g$6$1=["beforeRead","read","afterRead","beforeMain","main","afterMain","beforeWrite","write","afterWrite"];function v$3$1(e){return e?(e.nodeName||"").toLowerCase():null}function y$6$1(e){if(null==e)return window;if("[object Window]"!==e.toString()){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function w$6$1(e){return e instanceof y$6$1(e).Element||e instanceof Element}function b$3$1(e){return e instanceof y$6$1(e).HTMLElement||e instanceof HTMLElement}function x$3$1(e){return "undefined"!=typeof ShadowRoot&&(e instanceof y$6$1(e).ShadowRoot||e instanceof ShadowRoot)}var S$3$1={name:"applyStyles",enabled:true,phase:"write",fn:function(e){var t=e.state;Object.keys(t.elements).forEach(function(e){var i=t.styles[e]||{},s=t.attributes[e]||{},r=t.elements[e];b$3$1(r)&&v$3$1(r)&&(Object.assign(r.style,i),Object.keys(s).forEach(function(e){var t=s[e];false===t?r.removeAttribute(e):r.setAttribute(e,true===t?"":t);}));});},effect:function(e){var t=e.state,i={popper:{position:t.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(t.elements.popper.style,i.popper),t.styles=i,t.elements.arrow&&Object.assign(t.elements.arrow.style,i.arrow),function(){Object.keys(t.elements).forEach(function(e){var s=t.elements[e],r=t.attributes[e]||{},o=Object.keys(t.styles.hasOwnProperty(e)?t.styles[e]:i[e]).reduce(function(e,t){return e[t]="",e},{});b$3$1(s)&&v$3$1(s)&&(Object.assign(s.style,o),Object.keys(r).forEach(function(e){s.removeAttribute(e);}));});}},requires:["computeStyles"]};function _$4$1(e){return e.split("-")[0]}var A$3$1=Math.max,O=Math.min,k$6$1=Math.round;function T$3$1(){var e=navigator.userAgentData;return null!=e&&e.brands&&Array.isArray(e.brands)?e.brands.map(function(e){return e.brand+"/"+e.version}).join(" "):navigator.userAgent}function z$6$1(){return !/^((?!chrome|android).)*safari/i.test(T$3$1())}function E(e,t,i){ void 0===t&&(t=false),void 0===i&&(i=false);var s=e.getBoundingClientRect(),r=1,o=1;t&&b$3$1(e)&&(r=e.offsetWidth>0&&k$6$1(s.width)/e.offsetWidth||1,o=e.offsetHeight>0&&k$6$1(s.height)/e.offsetHeight||1);var n=(w$6$1(e)?y$6$1(e):window).visualViewport,a=!z$6$1()&&i,l=(s.left+(a&&n?n.offsetLeft:0))/r,c=(s.top+(a&&n?n.offsetTop:0))/o,p=s.width/r,d=s.height/o;return {width:p,height:d,top:c,right:l+p,bottom:c+d,left:l,x:l,y:c}}function M$6$1(e){var t=E(e),i=e.offsetWidth,s=e.offsetHeight;return Math.abs(t.width-i)<=1&&(i=t.width),Math.abs(t.height-s)<=1&&(s=t.height),{x:e.offsetLeft,y:e.offsetTop,width:i,height:s}}function B$3$1(e,t){var i=t.getRootNode&&t.getRootNode();if(e.contains(t))return true;if(i&&x$3$1(i)){var s=t;do{if(s&&e.isSameNode(s))return true;s=s.parentNode||s.host;}while(s)}return false}function L(e){return y$6$1(e).getComputedStyle(e)}function R$3$1(e){return ["table","td","th"].indexOf(v$3$1(e))>=0}function H$3$1(e){return ((w$6$1(e)?e.ownerDocument:e.document)||window.document).documentElement}function C$3$1(e){return "html"===v$3$1(e)?e:e.assignedSlot||e.parentNode||(x$3$1(e)?e.host:null)||H$3$1(e)}function D(e){return b$3$1(e)&&"fixed"!==L(e).position?e.offsetParent:null}function N$3$1(e){for(var t=y$6$1(e),i=D(e);i&&R$3$1(i)&&"static"===L(i).position;)i=D(i);return i&&("html"===v$3$1(i)||"body"===v$3$1(i)&&"static"===L(i).position)?t:i||function(e){var t=/firefox/i.test(T$3$1());if(/Trident/i.test(T$3$1())&&b$3$1(e)&&"fixed"===L(e).position)return null;var i=C$3$1(e);for(x$3$1(i)&&(i=i.host);b$3$1(i)&&["html","body"].indexOf(v$3$1(i))<0;){var s=L(i);if("none"!==s.transform||"none"!==s.perspective||"paint"===s.contain||-1!==["transform","perspective"].indexOf(s.willChange)||t&&"filter"===s.willChange||t&&s.filter&&"none"!==s.filter)return i;i=i.parentNode;}return null}(e)||t}function P(e){return ["top","bottom"].indexOf(e)>=0?"x":"y"}function j(e,t,i){return A$3$1(e,O(t,i))}function I(e){return Object.assign({},{top:0,right:0,bottom:0,left:0},e)}function q$3$1(e,t){return t.reduce(function(t,i){return t[i]=e,t},{})}var F={name:"arrow",enabled:true,phase:"main",fn:function(e){var t,i=e.state,s=e.name,l=e.options,p=i.elements.arrow,d=i.modifiersData.popperOffsets,f=_$4$1(i.placement),h=P(f),u=[a,n$1$1].indexOf(f)>=0?"height":"width";if(p&&d){var m=function(e,t){return I("number"!=typeof(e="function"==typeof e?e(Object.assign({},t.rects,{placement:t.placement})):e)?e:q$3$1(e,c$3$1))}(l.padding,i),g=M$6$1(p),v="y"===h?r$1$1:a,y="y"===h?o:n$1$1,w=i.rects.reference[u]+i.rects.reference[h]-d[h]-i.rects.popper[u],b=d[h]-i.rects.reference[h],x=N$3$1(p),S=x?"y"===h?x.clientHeight||0:x.clientWidth||0:0,A=w/2-b/2,O=m[v],k=S-g[u]-m[y],T=S/2-g[u]/2+A,z=j(O,T,k),E=h;i.modifiersData[s]=((t={})[E]=z,t.centerOffset=z-T,t);}},effect:function(e){var t=e.state,i=e.options.element,s=void 0===i?"[data-popper-arrow]":i;null!=s&&("string"!=typeof s||(s=t.elements.popper.querySelector(s)))&&B$3$1(t.elements.popper,s)&&(t.elements.arrow=s);},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function U$3$1(e){return e.split("-")[1]}var V={top:"auto",right:"auto",bottom:"auto",left:"auto"};function W(e){var t,i=e.popper,s=e.popperRect,l=e.placement,c=e.variation,p=e.offsets,f=e.position,h=e.gpuAcceleration,u=e.adaptive,m=e.roundOffsets,g=e.isFixed,v=p.x,w=void 0===v?0:v,b=p.y,x=void 0===b?0:b,S="function"==typeof m?m({x:w,y:x}):{x:w,y:x};w=S.x,x=S.y;var _=p.hasOwnProperty("x"),A=p.hasOwnProperty("y"),O=a,T=r$1$1,z=window;if(u){var E=N$3$1(i),M="clientHeight",B="clientWidth";if(E===y$6$1(i)&&"static"!==L(E=H$3$1(i)).position&&"absolute"===f&&(M="scrollHeight",B="scrollWidth"),l===r$1$1||(l===a||l===n$1$1)&&c===d$3$1)T=o,x-=(g&&E===z&&z.visualViewport?z.visualViewport.height:E[M])-s.height,x*=h?1:-1;if(l===a||(l===r$1$1||l===o)&&c===d$3$1)O=n$1$1,w-=(g&&E===z&&z.visualViewport?z.visualViewport.width:E[B])-s.width,w*=h?1:-1;}var R,C=Object.assign({position:f},u&&V),D=true===m?function(e,t){var i=e.x,s=e.y,r=t.devicePixelRatio||1;return {x:k$6$1(i*r)/r||0,y:k$6$1(s*r)/r||0}}({x:w,y:x},y$6$1(i)):{x:w,y:x};return w=D.x,x=D.y,h?Object.assign({},C,((R={})[T]=A?"0":"",R[O]=_?"0":"",R.transform=(z.devicePixelRatio||1)<=1?"translate("+w+"px, "+x+"px)":"translate3d("+w+"px, "+x+"px, 0)",R)):Object.assign({},C,((t={})[T]=A?x+"px":"",t[O]=_?w+"px":"",t.transform="",t))}var X={passive:true};var $={left:"right",right:"left",bottom:"top",top:"bottom"};function G(e){return e.replace(/left|right|bottom|top/g,function(e){return $[e]})}var K={start:"end",end:"start"};function Y(e){return e.replace(/start|end/g,function(e){return K[e]})}function J(e){var t=y$6$1(e);return {scrollLeft:t.pageXOffset,scrollTop:t.pageYOffset}}function Q(e){return E(H$3$1(e)).left+J(e).scrollLeft}function Z(e){var t=L(e),i=t.overflow,s=t.overflowX,r=t.overflowY;return /auto|scroll|overlay|hidden/.test(i+r+s)}function ee(e){return ["html","body","#document"].indexOf(v$3$1(e))>=0?e.ownerDocument.body:b$3$1(e)&&Z(e)?e:ee(C$3$1(e))}function te(e,t){var i;void 0===t&&(t=[]);var s=ee(e),r=s===(null==(i=e.ownerDocument)?void 0:i.body),o=y$6$1(s),n=r?[o].concat(o.visualViewport||[],Z(s)?s:[]):s,a=t.concat(n);return r?a:a.concat(te(C$3$1(n)))}function ie(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function se(e,t,i){return t===f$6$1?ie(function(e,t){var i=y$6$1(e),s=H$3$1(e),r=i.visualViewport,o=s.clientWidth,n=s.clientHeight,a=0,l=0;if(r){o=r.width,n=r.height;var c=z$6$1();(c||!c&&"fixed"===t)&&(a=r.offsetLeft,l=r.offsetTop);}return {width:o,height:n,x:a+Q(e),y:l}}(e,i)):w$6$1(t)?function(e,t){var i=E(e,false,"fixed"===t);return i.top=i.top+e.clientTop,i.left=i.left+e.clientLeft,i.bottom=i.top+e.clientHeight,i.right=i.left+e.clientWidth,i.width=e.clientWidth,i.height=e.clientHeight,i.x=i.left,i.y=i.top,i}(t,i):ie(function(e){var t,i=H$3$1(e),s=J(e),r=null==(t=e.ownerDocument)?void 0:t.body,o=A$3$1(i.scrollWidth,i.clientWidth,r?r.scrollWidth:0,r?r.clientWidth:0),n=A$3$1(i.scrollHeight,i.clientHeight,r?r.scrollHeight:0,r?r.clientHeight:0),a=-s.scrollLeft+Q(e),l=-s.scrollTop;return "rtl"===L(r||i).direction&&(a+=A$3$1(i.clientWidth,r?r.clientWidth:0)-o),{width:o,height:n,x:a,y:l}}(H$3$1(e)))}function re(e,t,i,s){var r="clippingParents"===t?function(e){var t=te(C$3$1(e)),i=["absolute","fixed"].indexOf(L(e).position)>=0&&b$3$1(e)?N$3$1(e):e;return w$6$1(i)?t.filter(function(e){return w$6$1(e)&&B$3$1(e,i)&&"body"!==v$3$1(e)}):[]}(e):[].concat(t),o=[].concat(r,[i]),n=o[0],a=o.reduce(function(t,i){var r=se(e,i,s);return t.top=A$3$1(r.top,t.top),t.right=O(r.right,t.right),t.bottom=O(r.bottom,t.bottom),t.left=A$3$1(r.left,t.left),t},se(e,n,s));return a.width=a.right-a.left,a.height=a.bottom-a.top,a.x=a.left,a.y=a.top,a}function oe(e){var t,i=e.reference,s=e.element,l=e.placement,c=l?_$4$1(l):null,f=l?U$3$1(l):null,h=i.x+i.width/2-s.width/2,u=i.y+i.height/2-s.height/2;switch(c){case r$1$1:t={x:h,y:i.y-s.height};break;case o:t={x:h,y:i.y+i.height};break;case n$1$1:t={x:i.x+i.width,y:u};break;case a:t={x:i.x-s.width,y:u};break;default:t={x:i.x,y:i.y};}var m=c?P(c):null;if(null!=m){var g="y"===m?"height":"width";switch(f){case p$6$1:t[m]=t[m]-(i[g]/2-s[g]/2);break;case d$3$1:t[m]=t[m]+(i[g]/2-s[g]/2);}}return t}function ne(e,t){ void 0===t&&(t={});var i=t,s=i.placement,a=void 0===s?e.placement:s,l=i.strategy,p=void 0===l?e.strategy:l,d=i.boundary,u=void 0===d?"clippingParents":d,m=i.rootBoundary,g=void 0===m?f$6$1:m,v=i.elementContext,y=void 0===v?h$3$1:v,b=i.altBoundary,x=void 0!==b&&b,S=i.padding,_=void 0===S?0:S,A=I("number"!=typeof _?_:q$3$1(_,c$3$1)),O=y===h$3$1?"reference":h$3$1,k=e.rects.popper,T=e.elements[x?O:y],z=re(w$6$1(T)?T:T.contextElement||H$3$1(e.elements.popper),u,g,p),M=E(e.elements.reference),B=oe({reference:M,element:k,placement:a}),L=ie(Object.assign({},k,B)),R=y===h$3$1?L:M,C={top:z.top-R.top+A.top,bottom:R.bottom-z.bottom+A.bottom,left:z.left-R.left+A.left,right:R.right-z.right+A.right},D=e.modifiersData.offset;if(y===h$3$1&&D){var N=D[a];Object.keys(C).forEach(function(e){var t=[n$1$1,o].indexOf(e)>=0?1:-1,i=[r$1$1,o].indexOf(e)>=0?"y":"x";C[e]+=N[i]*t;});}return C}function ae(e,t){ void 0===t&&(t={});var i=t,s=i.placement,r=i.boundary,o=i.rootBoundary,n=i.padding,a=i.flipVariations,l=i.allowedAutoPlacements,p=void 0===l?m$6$1:l,d=U$3$1(s),f=d?a?u$6$1:u$6$1.filter(function(e){return U$3$1(e)===d}):c$3$1,h=f.filter(function(e){return p.indexOf(e)>=0});0===h.length&&(h=f);var g=h.reduce(function(t,i){return t[i]=ne(e,{placement:i,boundary:r,rootBoundary:o,padding:n})[_$4$1(i)],t},{});return Object.keys(g).sort(function(e,t){return g[e]-g[t]})}var le={name:"flip",enabled:true,phase:"main",fn:function(e){var t=e.state,i=e.options,s=e.name;if(!t.modifiersData[s]._skip){for(var c=i.mainAxis,d=void 0===c||c,f=i.altAxis,h=void 0===f||f,u=i.fallbackPlacements,m=i.padding,g=i.boundary,v=i.rootBoundary,y=i.altBoundary,w=i.flipVariations,b=void 0===w||w,x=i.allowedAutoPlacements,S=t.options.placement,A=_$4$1(S),O=u||(A===S||!b?[G(S)]:function(e){if(_$4$1(e)===l$3$1)return [];var t=G(e);return [Y(e),t,Y(t)]}(S)),k=[S].concat(O).reduce(function(e,i){return e.concat(_$4$1(i)===l$3$1?ae(t,{placement:i,boundary:g,rootBoundary:v,padding:m,flipVariations:b,allowedAutoPlacements:x}):i)},[]),T=t.rects.reference,z=t.rects.popper,E=new Map,M=true,B=k[0],L=0;L<k.length;L++){var R=k[L],H=_$4$1(R),C=U$3$1(R)===p$6$1,D=[r$1$1,o].indexOf(H)>=0,N=D?"width":"height",P=ne(t,{placement:R,boundary:g,rootBoundary:v,altBoundary:y,padding:m}),j=D?C?n$1$1:a:C?o:r$1$1;T[N]>z[N]&&(j=G(j));var I=G(j),q=[];if(d&&q.push(P[H]<=0),h&&q.push(P[j]<=0,P[I]<=0),q.every(function(e){return e})){B=R,M=false;break}E.set(R,q);}if(M)for(var F=function(e){var t=k.find(function(t){var i=E.get(t);if(i)return i.slice(0,e).every(function(e){return e})});if(t)return B=t,"break"},V=b?3:1;V>0;V--){if("break"===F(V))break}t.placement!==B&&(t.modifiersData[s]._skip=true,t.placement=B,t.reset=true);}},requiresIfExists:["offset"],data:{_skip:false}};function ce(e,t,i){return void 0===i&&(i={x:0,y:0}),{top:e.top-t.height-i.y,right:e.right-t.width+i.x,bottom:e.bottom-t.height+i.y,left:e.left-t.width-i.x}}function pe(e){return [r$1$1,n$1$1,o,a].some(function(t){return e[t]>=0})}var de={name:"offset",enabled:true,phase:"main",requires:["popperOffsets"],fn:function(e){var t=e.state,i=e.options,s=e.name,o=i.offset,l=void 0===o?[0,0]:o,c=m$6$1.reduce(function(e,i){return e[i]=function(e,t,i){var s=_$4$1(e),o=[a,r$1$1].indexOf(s)>=0?-1:1,l="function"==typeof i?i(Object.assign({},t,{placement:e})):i,c=l[0],p=l[1];return c=c||0,p=(p||0)*o,[a,n$1$1].indexOf(s)>=0?{x:p,y:c}:{x:c,y:p}}(i,t.rects,l),e},{}),p=c[t.placement],d=p.x,f=p.y;null!=t.modifiersData.popperOffsets&&(t.modifiersData.popperOffsets.x+=d,t.modifiersData.popperOffsets.y+=f),t.modifiersData[s]=c;}};var fe={name:"preventOverflow",enabled:true,phase:"main",fn:function(e){var t=e.state,i=e.options,s=e.name,l=i.mainAxis,c=void 0===l||l,d=i.altAxis,f=void 0!==d&&d,h=i.boundary,u=i.rootBoundary,m=i.altBoundary,g=i.padding,v=i.tether,y=void 0===v||v,w=i.tetherOffset,b=void 0===w?0:w,x=ne(t,{boundary:h,rootBoundary:u,padding:g,altBoundary:m}),S=_$4$1(t.placement),k=U$3$1(t.placement),T=!k,z=P(S),E="x"===z?"y":"x",B=t.modifiersData.popperOffsets,L=t.rects.reference,R=t.rects.popper,H="function"==typeof b?b(Object.assign({},t.rects,{placement:t.placement})):b,C="number"==typeof H?{mainAxis:H,altAxis:H}:Object.assign({mainAxis:0,altAxis:0},H),D=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,I={x:0,y:0};if(B){if(c){var q,F="y"===z?r$1$1:a,V="y"===z?o:n$1$1,W="y"===z?"height":"width",X=B[z],$=X+x[F],G=X-x[V],K=y?-R[W]/2:0,Y=k===p$6$1?L[W]:R[W],J=k===p$6$1?-R[W]:-L[W],Q=t.elements.arrow,Z=y&&Q?M$6$1(Q):{width:0,height:0},ee=t.modifiersData["arrow#persistent"]?t.modifiersData["arrow#persistent"].padding:{top:0,right:0,bottom:0,left:0},te=ee[F],ie=ee[V],se=j(0,L[W],Z[W]),re=T?L[W]/2-K-se-te-C.mainAxis:Y-se-te-C.mainAxis,oe=T?-L[W]/2+K+se+ie+C.mainAxis:J+se+ie+C.mainAxis,ae=t.elements.arrow&&N$3$1(t.elements.arrow),le=ae?"y"===z?ae.clientTop||0:ae.clientLeft||0:0,ce=null!=(q=null==D?void 0:D[z])?q:0,pe=X+oe-ce,de=j(y?O($,X+re-ce-le):$,X,y?A$3$1(G,pe):G);B[z]=de,I[z]=de-X;}if(f){var fe,he="x"===z?r$1$1:a,ue="x"===z?o:n$1$1,me=B[E],ge="y"===E?"height":"width",ve=me+x[he],ye=me-x[ue],we=-1!==[r$1$1,a].indexOf(S),be=null!=(fe=null==D?void 0:D[E])?fe:0,xe=we?ve:me-L[ge]-R[ge]-be+C.altAxis,Se=we?me+L[ge]+R[ge]-be-C.altAxis:ye,_e=y&&we?function(e,t,i){var s=j(e,t,i);return s>i?i:s}(xe,me,Se):j(y?xe:ve,me,y?Se:ye);B[E]=_e,I[E]=_e-me;}t.modifiersData[s]=I;}},requiresIfExists:["offset"]};function he(e,t,i){ void 0===i&&(i=false);var s,r,o=b$3$1(t),n=b$3$1(t)&&function(e){var t=e.getBoundingClientRect(),i=k$6$1(t.width)/e.offsetWidth||1,s=k$6$1(t.height)/e.offsetHeight||1;return 1!==i||1!==s}(t),a=H$3$1(t),l=E(e,n,i),c={scrollLeft:0,scrollTop:0},p={x:0,y:0};return (o||!o&&!i)&&(("body"!==v$3$1(t)||Z(a))&&(c=(s=t)!==y$6$1(s)&&b$3$1(s)?{scrollLeft:(r=s).scrollLeft,scrollTop:r.scrollTop}:J(s)),b$3$1(t)?((p=E(t,true)).x+=t.clientLeft,p.y+=t.clientTop):a&&(p.x=Q(a))),{x:l.left+c.scrollLeft-p.x,y:l.top+c.scrollTop-p.y,width:l.width,height:l.height}}function ue(e){var t=new Map,i=new Set,s=[];function r(e){i.add(e.name),[].concat(e.requires||[],e.requiresIfExists||[]).forEach(function(e){if(!i.has(e)){var s=t.get(e);s&&r(s);}}),s.push(e);}return e.forEach(function(e){t.set(e.name,e);}),e.forEach(function(e){i.has(e.name)||r(e);}),s}var me={placement:"bottom",modifiers:[],strategy:"absolute"};function ge(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];return !t.some(function(e){return !(e&&"function"==typeof e.getBoundingClientRect)})}function ve(e){ void 0===e&&(e={});var t=e,i=t.defaultModifiers,s=void 0===i?[]:i,r=t.defaultOptions,o=void 0===r?me:r;return function(e,t,i){ void 0===i&&(i=o);var r,n,a={placement:"bottom",orderedModifiers:[],options:Object.assign({},me,o),modifiersData:{},elements:{reference:e,popper:t},attributes:{},styles:{}},l=[],c=false,p={state:a,setOptions:function(i){var r="function"==typeof i?i(a.options):i;d(),a.options=Object.assign({},o,a.options,r),a.scrollParents={reference:w$6$1(e)?te(e):e.contextElement?te(e.contextElement):[],popper:te(t)};var n,c,f=function(e){var t=ue(e);return g$6$1.reduce(function(e,i){return e.concat(t.filter(function(e){return e.phase===i}))},[])}((n=[].concat(s,a.options.modifiers),c=n.reduce(function(e,t){var i=e[t.name];return e[t.name]=i?Object.assign({},i,t,{options:Object.assign({},i.options,t.options),data:Object.assign({},i.data,t.data)}):t,e},{}),Object.keys(c).map(function(e){return c[e]})));return a.orderedModifiers=f.filter(function(e){return e.enabled}),a.orderedModifiers.forEach(function(e){var t=e.name,i=e.options,s=void 0===i?{}:i,r=e.effect;if("function"==typeof r){var o=r({state:a,name:t,instance:p,options:s}),n=function(){};l.push(o||n);}}),p.update()},forceUpdate:function(){if(!c){var e=a.elements,t=e.reference,i=e.popper;if(ge(t,i)){a.rects={reference:he(t,N$3$1(i),"fixed"===a.options.strategy),popper:M$6$1(i)},a.reset=false,a.placement=a.options.placement,a.orderedModifiers.forEach(function(e){return a.modifiersData[e.name]=Object.assign({},e.data)});for(var s=0;s<a.orderedModifiers.length;s++)if(true!==a.reset){var r=a.orderedModifiers[s],o=r.fn,n=r.options,l=void 0===n?{}:n,d=r.name;"function"==typeof o&&(a=o({state:a,options:l,name:d,instance:p})||a);}else a.reset=false,s=-1;}}},update:(r=function(){return new Promise(function(e){p.forceUpdate(),e(a);})},function(){return n||(n=new Promise(function(e){Promise.resolve().then(function(){n=void 0,e(r());});})),n}),destroy:function(){d(),c=true;}};if(!ge(e,t))return p;function d(){l.forEach(function(e){return e()}),l=[];}return p.setOptions(i).then(function(e){!c&&i.onFirstUpdate&&i.onFirstUpdate(e);}),p}}var ye=ve({defaultModifiers:[{name:"eventListeners",enabled:true,phase:"write",fn:function(){},effect:function(e){var t=e.state,i=e.instance,s=e.options,r=s.scroll,o=void 0===r||r,n=s.resize,a=void 0===n||n,l=y$6$1(t.elements.popper),c=[].concat(t.scrollParents.reference,t.scrollParents.popper);return o&&c.forEach(function(e){e.addEventListener("scroll",i.update,X);}),a&&l.addEventListener("resize",i.update,X),function(){o&&c.forEach(function(e){e.removeEventListener("scroll",i.update,X);}),a&&l.removeEventListener("resize",i.update,X);}},data:{}},{name:"popperOffsets",enabled:true,phase:"read",fn:function(e){var t=e.state,i=e.name;t.modifiersData[i]=oe({reference:t.rects.reference,element:t.rects.popper,placement:t.placement});},data:{}},{name:"computeStyles",enabled:true,phase:"beforeWrite",fn:function(e){var t=e.state,i=e.options,s=i.gpuAcceleration,r=void 0===s||s,o=i.adaptive,n=void 0===o||o,a=i.roundOffsets,l=void 0===a||a,c={placement:_$4$1(t.placement),variation:U$3$1(t.placement),popper:t.elements.popper,popperRect:t.rects.popper,gpuAcceleration:r,isFixed:"fixed"===t.options.strategy};null!=t.modifiersData.popperOffsets&&(t.styles.popper=Object.assign({},t.styles.popper,W(Object.assign({},c,{offsets:t.modifiersData.popperOffsets,position:t.options.strategy,adaptive:n,roundOffsets:l})))),null!=t.modifiersData.arrow&&(t.styles.arrow=Object.assign({},t.styles.arrow,W(Object.assign({},c,{offsets:t.modifiersData.arrow,position:"absolute",adaptive:false,roundOffsets:l})))),t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-placement":t.placement});},data:{}},S$3$1,de,le,fe,F,{name:"hide",enabled:true,phase:"main",requiresIfExists:["preventOverflow"],fn:function(e){var t=e.state,i=e.name,s=t.rects.reference,r=t.rects.popper,o=t.modifiersData.preventOverflow,n=ne(t,{elementContext:"reference"}),a=ne(t,{altBoundary:true}),l=ce(n,s),c=ce(a,r,o),p=pe(l),d=pe(c);t.modifiersData[i]={referenceClippingOffsets:l,popperEscapeOffsets:c,isReferenceHidden:p,hasPopperEscaped:d},t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-reference-hidden":p,"data-popper-escaped":d});}}]});class we{constructor(e,t,i,s){this.anchor=e,this.popover=t,this.boundaryElement=this.setBoundary(s),this.options={placement:i,visibleClass:"data-show"},this.popover.classList.remove(this.options.visibleClass);}setBoundary(e){return "string"==typeof e?document.querySelector(e)||document.body:e||document.body}show(){this.popper&&this.popper.destroy(),this.popper=ye(this.anchor,this.popover,{tooltip:this.anchor,placement:this.options.placement,modifiers:[{name:"offset",options:{offset:[0,18]}},{name:"preventOverflow",options:{mainAxis:true,boundary:this.boundaryElement,rootBoundary:"document",padding:16}}]});}triggerUpdate(){this.popper.update();}hide(){this.popover.classList.remove(this.options.visibleClass);}}var be=i$7`::slotted(*):not([onDark]),::slotted(*):not([appearance=inverse]){color:var(--ds-auro-popover-text-color)}.popover{background-color:var(--ds-auro-popover-container-color);box-shadow:var(--ds-auro-popover-boxshadow-color)}.arrow:before{background-color:var(--ds-auro-popover-container-color);box-shadow:2px 2px 1px 0 var(--ds-auro-popover-boxshadow-color)}
|
|
25229
25226
|
`,xe=i$7`.body-default{font-size:var(--wcss-body-default-font-size, 1rem);line-height:var(--wcss-body-default-line-height, 1.5rem)}.body-default,.body-lg{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-weight, 450);letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-lg{font-size:var(--wcss-body-lg-font-size, 1.125rem);line-height:var(--wcss-body-lg-line-height, 1.625rem)}.body-sm{font-size:var(--wcss-body-sm-font-size, .875rem);line-height:var(--wcss-body-sm-line-height, 1.25rem)}.body-sm,.body-xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-weight, 450);letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-xs{font-size:var(--wcss-body-xs-font-size, .75rem);line-height:var(--wcss-body-xs-line-height, 1rem)}.body-2xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-size:var(--wcss-body-2xs-font-size, .625rem);font-weight:var(--wcss-body-weight, 450);letter-spacing:var(--wcss-body-letter-spacing, 0);line-height:var(--wcss-body-2xs-line-height, .875rem)}.display-2xl{font-family:var(--wcss-display-2xl-family, "AS Circular"),var(--wcss-display-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-2xl-font-size, clamp(3.5rem, 6vw, 5.375rem));font-weight:var(--wcss-display-2xl-weight, 300);letter-spacing:var(--wcss-display-2xl-letter-spacing, 0);line-height:var(--wcss-display-2xl-line-height, 1.3)}.display-xl{font-family:var(--wcss-display-xl-family, "AS Circular"),var(--wcss-display-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-xl-font-size, clamp(3rem, 5.3333333333vw, 4.5rem));font-weight:var(--wcss-display-xl-weight, 300);letter-spacing:var(--wcss-display-xl-letter-spacing, 0);line-height:var(--wcss-display-xl-line-height, 1.3)}.display-lg{font-family:var(--wcss-display-lg-family, "AS Circular"),var(--wcss-display-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-lg-font-size, clamp(2.75rem, 4.6666666667vw, 4rem));font-weight:var(--wcss-display-lg-weight, 300);letter-spacing:var(--wcss-display-lg-letter-spacing, 0);line-height:var(--wcss-display-lg-line-height, 1.3)}.display-md{font-family:var(--wcss-display-md-family, "AS Circular"),var(--wcss-display-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-md-font-size, clamp(2.5rem, 4vw, 3.5rem));font-weight:var(--wcss-display-md-weight, 300);letter-spacing:var(--wcss-display-md-letter-spacing, 0);line-height:var(--wcss-display-md-line-height, 1.3)}.display-sm{font-family:var(--wcss-display-sm-family, "AS Circular"),var(--wcss-display-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-sm-font-size, clamp(2rem, 3.6666666667vw, 3rem));font-weight:var(--wcss-display-sm-weight, 300);letter-spacing:var(--wcss-display-sm-letter-spacing, 0);line-height:var(--wcss-display-sm-line-height, 1.3)}.display-xs{font-family:var(--wcss-display-xs-family, "AS Circular"),var(--wcss-display-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-xs-font-size, clamp(1.75rem, 3vw, 2.375rem));font-weight:var(--wcss-display-xs-weight, 300);letter-spacing:var(--wcss-display-xs-letter-spacing, 0);line-height:var(--wcss-display-xs-line-height, 1.3)}.heading-xl{font-family:var(--wcss-heading-xl-family, "AS Circular"),var(--wcss-heading-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-xl-font-size, clamp(2rem, 3vw, 2.5rem));font-weight:var(--wcss-heading-xl-weight, 300);letter-spacing:var(--wcss-heading-xl-letter-spacing, 0);line-height:var(--wcss-heading-xl-line-height, 1.3)}.heading-lg{font-family:var(--wcss-heading-lg-family, "AS Circular"),var(--wcss-heading-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-lg-font-size, clamp(1.75rem, 2.6666666667vw, 2.25rem));font-weight:var(--wcss-heading-lg-weight, 300);letter-spacing:var(--wcss-heading-lg-letter-spacing, 0);line-height:var(--wcss-heading-lg-line-height, 1.3)}.heading-md{font-family:var(--wcss-heading-md-family, "AS Circular"),var(--wcss-heading-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-md-font-size, clamp(1.625rem, 2.3333333333vw, 1.75rem));font-weight:var(--wcss-heading-md-weight, 300);letter-spacing:var(--wcss-heading-md-letter-spacing, 0);line-height:var(--wcss-heading-md-line-height, 1.3)}.heading-sm{font-family:var(--wcss-heading-sm-family, "AS Circular"),var(--wcss-heading-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-sm-font-size, clamp(1.375rem, 2vw, 1.5rem));font-weight:var(--wcss-heading-sm-weight, 300);letter-spacing:var(--wcss-heading-sm-letter-spacing, 0);line-height:var(--wcss-heading-sm-line-height, 1.3)}.heading-xs{font-family:var(--wcss-heading-xs-family, "AS Circular"),var(--wcss-heading-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-xs-font-size, clamp(1.25rem, 1.6666666667vw, 1.25rem));font-weight:var(--wcss-heading-xs-weight, 450);letter-spacing:var(--wcss-heading-xs-letter-spacing, 0);line-height:var(--wcss-heading-xs-line-height, 1.3)}.heading-2xs{font-family:var(--wcss-heading-2xs-family, "AS Circular"),var(--wcss-heading-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-2xs-font-size, clamp(1.125rem, 1.5vw, 1.125rem));font-weight:var(--wcss-heading-2xs-weight, 450);letter-spacing:var(--wcss-heading-2xs-letter-spacing, 0);line-height:var(--wcss-heading-2xs-line-height, 1.3)}.accent-2xl{font-family:var(--wcss-accent-2xl-family, "Good OT"),var(--wcss-accent-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-2xl-font-size, clamp(2rem, 3.1666666667vw, 2.375rem));font-weight:var(--wcss-accent-2xl-weight, 450);letter-spacing:var(--wcss-accent-2xl-letter-spacing, .05em);line-height:var(--wcss-accent-2xl-line-height, 1)}.accent-2xl,.accent-xl{text-transform:uppercase}.accent-xl{font-family:var(--wcss-accent-xl-family, "Good OT"),var(--wcss-accent-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-xl-font-size, clamp(1.625rem, 2.3333333333vw, 2rem));font-weight:var(--wcss-accent-xl-weight, 450);letter-spacing:var(--wcss-accent-xl-letter-spacing, .05em);line-height:var(--wcss-accent-xl-line-height, 1.3)}.accent-lg{font-family:var(--wcss-accent-lg-family, "Good OT"),var(--wcss-accent-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-lg-font-size, clamp(1.5rem, 2.1666666667vw, 1.75rem));font-weight:var(--wcss-accent-lg-weight, 450);letter-spacing:var(--wcss-accent-lg-letter-spacing, .05em);line-height:var(--wcss-accent-lg-line-height, 1.3)}.accent-lg,.accent-md{text-transform:uppercase}.accent-md{font-family:var(--wcss-accent-md-family, "Good OT"),var(--wcss-accent-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-md-font-size, clamp(1.375rem, 1.8333333333vw, 1.5rem));font-weight:var(--wcss-accent-md-weight, 500);letter-spacing:var(--wcss-accent-md-letter-spacing, .05em);line-height:var(--wcss-accent-md-line-height, 1.3)}.accent-sm{font-family:var(--wcss-accent-sm-family, "Good OT"),var(--wcss-accent-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-sm-font-size, clamp(1.125rem, 1.5vw, 1.25rem));font-weight:var(--wcss-accent-sm-weight, 500);letter-spacing:var(--wcss-accent-sm-letter-spacing, .05em);line-height:var(--wcss-accent-sm-line-height, 1.3)}.accent-sm,.accent-xs{text-transform:uppercase}.accent-xs{font-family:var(--wcss-accent-xs-family, "Good OT"),var(--wcss-accent-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-xs-font-size, clamp(1rem, 1.3333333333vw, 1rem));font-weight:var(--wcss-accent-xs-weight, 500);letter-spacing:var(--wcss-accent-xs-letter-spacing, .1em);line-height:var(--wcss-accent-xs-line-height, 1.3)}.accent-2xs{font-family:var(--wcss-accent-2xs-family, "Good OT"),var(--wcss-accent-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-2xs-font-size, clamp(.875rem, 1.1666666667vw, .875rem));font-weight:var(--wcss-accent-2xs-weight, 450);letter-spacing:var(--wcss-accent-2xs-letter-spacing, .1em);line-height:var(--wcss-accent-2xs-line-height, 1.3);text-transform:uppercase}:focus:not(:focus-visible){outline:3px solid transparent}.util_displayInline{display:inline}.util_displayInlineBlock{display:inline-block}.util_displayBlock{display:block}.util_displayFlex{display:flex}.util_displayHidden,:host(:not([data-show])) .popover,:host([disabled]) .popover,:host([addSpace]) :host(:not([data-show])) .popover{display:none}.util_displayHiddenVisually{position:absolute;overflow:hidden;clip:rect(1px,1px,1px,1px);width:1px;height:1px;padding:0;border:0}.util_insetNone{padding:0}.util_insetXxxs{padding:.125rem}.util_insetXxxs--stretch{padding:.25rem .125rem}.util_insetXxxs--squish{padding:0 .125rem}.util_insetXxs{padding:.25rem}.util_insetXxs--stretch{padding:.375rem .25rem}.util_insetXxs--squish{padding:.125rem .25rem}.util_insetXs{padding:.5rem}.util_insetXs--stretch{padding:.75rem .5rem}.util_insetXs--squish{padding:.25rem .5rem}.util_insetSm{padding:.75rem}.util_insetSm--stretch{padding:1.125rem .75rem}.util_insetSm--squish{padding:.375rem .75rem}.util_insetMd{padding:1rem}.util_insetMd--stretch{padding:1.5rem 1rem}.util_insetMd--squish{padding:.5rem 1rem}.util_insetLg{padding:1.5rem}.util_insetLg--stretch{padding:2.25rem 1.5rem}.util_insetLg--squish{padding:.75rem 1.5rem}.util_insetXl{padding:2rem}.util_insetXl--stretch{padding:3rem 2rem}.util_insetXl--squish{padding:1rem 2rem}.util_insetXxl{padding:3rem}.util_insetXxl--stretch{padding:4.5rem 3rem}.util_insetXxl--squish{padding:1.5rem 3rem}.util_insetXxxl{padding:4rem}.util_insetXxxl--stretch{padding:6rem 4rem}.util_insetXxxl--squish{padding:2rem 4rem}::slotted(*){white-space:normal}::slotted(*:hover){cursor:pointer}[data-trigger-placement]::slotted(*:hover){position:relative}[data-trigger-placement]::slotted(*:hover):before{position:absolute;left:0;display:block;width:100%;height:calc(var(--ds-size-200, 1rem) + var(--ds-size-50, .25rem));content:""}[data-trigger-placement^=top]::slotted(*:hover):before{top:calc(-1 * (var(--ds-size-200, 1rem) + var(--ds-size-50, .25rem)))}[data-trigger-placement^=bottom]::slotted(*:hover):before{bottom:calc(-1 * (var(--ds-size-200, 1rem) + var(--ds-size-50, .25rem)))}:host([data-show]) .popover{z-index:var(--ds-depth-tooltip, 400)}:host([removeSpace]) .popover{margin:calc(-1 * (var(--ds-size-50, .25rem) + 1px)) 0!important}:host([addSpace]) .popover{margin:var(--ds-size-200, 1rem) 0!important}:host([addSpace]) [data-trigger-placement]::slotted(*:hover):before{height:var(--ds-size-500, 2.5rem)}:host([addSpace]) [data-trigger-placement^=top]::slotted(*:hover):before{top:calc(-1 * var(--ds-size-500, 2.5rem))}:host([addSpace]) [data-trigger-placement^=bottom]::slotted(*:hover):before{bottom:calc(-1 * var(--ds-size-500, 2.5rem))}.popover{display:inline-block;max-width:calc(100% - var(--ds-size-400, 2rem));border-radius:var(--ds-border-radius, .375rem)}@media screen and (min-width:576px){.popover{max-width:50%}}@media screen and (min-width:768px){.popover{max-width:40%}}@media screen and (min-width:1024px){.popover{max-width:27rem}}[data-popper-placement^=top]>.arrow{bottom:calc(-1 * (var(--ds-size-100, .5rem) + var(--ds-size-25, .125rem)))}[data-popper-placement^=top]>.arrow:before{top:calc(-1 * var(--ds-size-200, 1rem));left:calc(-1 * var(--ds-size-75, .375rem));transform:rotate(45deg)}[data-popper-placement^=bottom]>.arrow{top:calc(-1 * (var(--ds-size-100, .5rem) + var(--ds-size-25, .125rem)))}[data-popper-placement^=bottom]>.arrow:before{top:var(--ds-size-50, .25rem);right:calc(-1 * var(--ds-size-200, 1rem));transform:rotate(-135deg)}.arrow{position:relative;margin-top:-var(--ds-size-100,.5rem)}.arrow:before{position:absolute;width:var(--ds-size-150, .75rem);height:var(--ds-size-150, .75rem);content:""}
|
|
25230
25227
|
`,Se=i$7`:host{--ds-auro-popover-boxshadow-color: var(--ds-elevation-200, 0px 0px 10px rgba(0, 0, 0, .15));--ds-auro-popover-container-color: var(--ds-basic-color-surface-default, #ffffff);--ds-auro-popover-text-color: var(--ds-basic-color-texticon-default, #2a2a2a)}
|
|
25231
|
-
`;class _e extends i$4{constructor(){super(),this.placement="top",this._onTouchStart=null,this._onTriggerMouseEnter=null,this._onTriggerMouseLeave=null,this._onTriggerFocus=null,this._onTriggerBlur=null,this._onTriggerKeydown=null,this._onHidePopover=null,this._onBodyMouseover=null,this._onSlotChange=null,this._addedTabIndex=false;}_initializeDefaults(){this.
|
|
25232
|
-
<div
|
|
25228
|
+
`;class _e extends i$4{constructor(){super(),this.placement="top",this.isPopoverVisible=false,this._onTouchStart=null,this._onTriggerMouseEnter=null,this._onTriggerMouseLeave=null,this._onTriggerFocus=null,this._onTriggerBlur=null,this._onTriggerKeydown=null,this._onHidePopover=null,this._onBodyMouseover=null,this._onSlotChange=null,this._addedTabIndex=false;}_initializeDefaults(){this.runtimeUtils=new s$3;}static get properties(){return {addSpace:{type:Boolean,reflect:true},boundary:{type:String},disabled:{type:Boolean,reflect:true},for:{type:String,reflect:true},placement:{type:String},removeSpace:{type:Boolean,reflect:true},isPopoverVisible:{type:Boolean,reflect:true,attribute:"data-show",converter:{fromAttribute:e=>null!==e,toAttribute:e=>e?"true":null}}}}static get styles(){return [i$7`${xe}`,i$7`${be}`,i$7`${Se}`]}static register(e="auro-popover"){s$3.prototype.registerComponent(e,_e);}connectedCallback(){super.connectedCallback(),this.hasAttribute("role")||this.setAttribute("role","none"),this._initializeDefaults(),this._onTouchStart||(this._onTouchStart=()=>{this.toggle();}),this.addEventListener("touchstart",this._onTouchStart);}disconnectedCallback(){if(super.disconnectedCallback(),this.removeEventListener("touchstart",this._onTouchStart),this.trigger){this._onTriggerMouseEnter&&this._eventTarget.removeEventListener("mouseenter",this._onTriggerMouseEnter),this._onTriggerMouseLeave&&this._eventTarget.removeEventListener("mouseleave",this._onTriggerMouseLeave),this._onTriggerFocus&&this.trigger.removeEventListener("focusin",this._onTriggerFocus),this._onTriggerBlur&&this.trigger.removeEventListener("focusout",this._onTriggerBlur),this._onTriggerKeydown&&this.trigger.removeEventListener("keydown",this._onTriggerKeydown),this._onSlotChange&&this.shadowRoot?.querySelector("slot:not([name])")?.removeEventListener("slotchange",this._onSlotChange);for(const e of this._ariaDescriptionTargets||[this.trigger])e.removeAttribute("aria-description");this._addedTabIndex&&"0"===this.trigger.getAttribute("tabindex")&&this.trigger.removeAttribute("tabindex");}this._onHidePopover&&this.removeEventListener("hidePopover",this._onHidePopover),this._onBodyMouseover&&document.body.removeEventListener("mouseover",this._onBodyMouseover),this.popper?.popper&&"function"==typeof this.popper.popper.destroy&&(this.popper.popper.destroy(),this.popper.popper=null);}firstUpdated(){this.runtimeUtils.handleComponentTagRename(this,"auro-popover"),this.for&&(this.trigger=document.querySelector(`#${this.for}`)||this.getRootNode().querySelector(`#${this.for}`)),this.trigger||([this.trigger]=this.shadowRoot.querySelector('slot[name="trigger"]').assignedElements()),this.trigger&&(this._setupAccessibility(),this._setupEventListeners(),this.isPopoverVisible&&this.popper&&(this.disabled?this.isPopoverVisible=false:(this.popper.show(),document.body.addEventListener("mouseover",this._onBodyMouseover))));}_setupEventListeners(){this.auroPopover=this.shadowRoot.querySelector("#popover"),this.popper=new we(this.trigger,this.auroPopover,this.placement,this.boundary),this._onBodyMouseover=e=>this.handleMouseoverEvent(e),this._onTriggerMouseEnter=()=>{this.toggleShow();},this._onTriggerMouseLeave=()=>{this.toggleHide();},this._onTriggerFocus=()=>{this.toggleShow();},this._onTriggerBlur=e=>{let t=e.relatedTarget,i=false;for(;t;){if(this.trigger.contains(t)||this.contains(t)){i=true;break}const e=t.getRootNode();t=e instanceof ShadowRoot?e.host:null;}i||this.toggleHide();},this._onTriggerKeydown=e=>{const t=e.key.toLowerCase();if(this.isPopoverVisible&&("tab"!==t&&"escape"!==t||this.toggleHide())," "===t||"enter"===t){if(e.target!==this.trigger&&!this._addedTabIndex)return;" "===t&&this._addedTabIndex&&e.preventDefault(),this.toggle();}},this._onHidePopover=()=>{this.toggleHide();},this._eventTarget=this.trigger.parentElement.localName===this.localName?this:this.trigger,this._eventTarget.addEventListener("mouseenter",this._onTriggerMouseEnter),this._eventTarget.addEventListener("mouseleave",this._onTriggerMouseLeave),this.trigger.addEventListener("keydown",this._onTriggerKeydown),this.trigger.addEventListener("focusin",this._onTriggerFocus),this.trigger.addEventListener("focusout",this._onTriggerBlur),this.addEventListener("hidePopover",this._onHidePopover);}_setupAccessibility(){const e=this.trigger.tabIndex>=0,t='button:not([disabled]), a[href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex^="-"]), [contenteditable]:not([contenteditable="false"]), summary, iframe, audio[controls], video[controls]',i=e=>{if(e.tabIndex<0)return false;let t=e;for(;t;){if(t.closest("[hidden], [inert]"))return false;const e=t.getRootNode();t=e instanceof ShadowRoot?e.host:null;}return true};let s=[...this.trigger.querySelectorAll(t)].some(i);if(!s){const e=this.trigger.querySelectorAll("*");for(const r of e)if(r.localName.includes("-")&&(r.tabIndex>=0||r.shadowRoot&&[...r.shadowRoot.querySelectorAll(t)].some(i))){s=true;break}}!s&&this.trigger.localName.includes("-")&&this.trigger.shadowRoot&&(s=[...this.trigger.shadowRoot.querySelectorAll(t)].some(i)),e||s||this.trigger.hasAttribute("tabindex")||(this.trigger.setAttribute("tabindex","0"),this._addedTabIndex=true);const r=this.shadowRoot.querySelector("slot:not([name])"),o=()=>r.assignedNodes({flatten:true}).map(e=>e.textContent??"").join(" ").replace(/\s+/g," ").trim();if(this._ariaDescriptionTargets=[],!e&&s){const e=[...this.trigger.querySelectorAll(t)].filter(i);this._ariaDescriptionTargets.push(...e);const s=this.trigger.querySelectorAll("*");for(const r of s)if(r.localName.includes("-")&&!e.includes(r))if(r.tabIndex>=0)this._ariaDescriptionTargets.push(r);else if(r.shadowRoot){const e=[...r.shadowRoot.querySelectorAll(t)].filter(i);for(const t of e)this._ariaDescriptionTargets.push(t);}if(0===this._ariaDescriptionTargets.length){if(this.trigger.localName.includes("-")&&this.trigger.shadowRoot){const e=[...this.trigger.shadowRoot.querySelectorAll(t)].filter(i);this._ariaDescriptionTargets.push(...e);}0===this._ariaDescriptionTargets.length&&this._ariaDescriptionTargets.push(this.trigger);}}else this._ariaDescriptionTargets.push(this.trigger);const n=o();for(const e of this._ariaDescriptionTargets)e.setAttribute("aria-description",n);this._onSlotChange=()=>{const e=o();for(const t of this._ariaDescriptionTargets)t?.setAttribute("aria-description",e);},r.addEventListener("slotchange",this._onSlotChange);}toggle(){this.popper&&(this.isPopoverVisible?this.toggleHide():this.toggleShow());}toggleHide(){this.isPopoverVisible=false;}toggleShow(){this.popper&&!this.disabled&&(this.isPopoverVisible=true);}handleMouseoverEvent(e){this.isPopoverVisible&&!e.composedPath().includes(this)&&this.toggleHide();}updated(e){if(e.has("boundary")&&this.popper&&(this.popper.boundaryElement=this.popper.setBoundary(this.boundary)),e.has("isPopoverVisible")&&this.popper)if(this.isPopoverVisible){if(this.disabled)return void(this.isPopoverVisible=false);this.popper.show(),document.body.addEventListener("mouseover",this._onBodyMouseover);}else this._onBodyMouseover&&document.body.removeEventListener("mouseover",this._onBodyMouseover),this.popper.hide();e.has("disabled")&&this.disabled&&this.isPopoverVisible&&(this.isPopoverVisible=false);}render(){return b$7`
|
|
25229
|
+
<div
|
|
25230
|
+
id="popover"
|
|
25231
|
+
class="popover util_insetLg body-default"
|
|
25232
|
+
part="popover"
|
|
25233
|
+
role="tooltip"
|
|
25234
|
+
aria-hidden="${this.isPopoverVisible?"false":"true"}">
|
|
25233
25235
|
<div id="arrow" class="arrow" data-popper-arrow></div>
|
|
25234
|
-
<
|
|
25236
|
+
<slot></slot>
|
|
25235
25237
|
</div>
|
|
25236
25238
|
|
|
25237
|
-
<span>
|
|
25239
|
+
<span role="presentation">
|
|
25238
25240
|
<slot name="trigger" data-trigger-placement="${this.placement}"></slot>
|
|
25239
25241
|
</span>
|
|
25240
25242
|
`}}
|
|
25241
25243
|
|
|
25242
25244
|
var popoverVersion = '6.0.1';
|
|
25243
25245
|
|
|
25246
|
+
/* 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 */
|
|
25247
|
+
|
|
25244
25248
|
const startOfDay$1 = (ms) => {
|
|
25245
25249
|
const date = new Date(ms);
|
|
25246
25250
|
date.setHours(0, 0, 0, 0);
|
|
25247
25251
|
return date.getTime();
|
|
25248
25252
|
};
|
|
25249
25253
|
|
|
25250
|
-
/* eslint-disable curly, max-lines, no-underscore-dangle, no-magic-numbers, no-underscore-dangle, max-params, no-void, init-declarations, no-extra-parens, arrow-parens, max-lines, line-comment-position, no-inline-comments, lit/binding-positions, lit/no-invalid-html */
|
|
25251
|
-
|
|
25252
25254
|
class AuroCalendarCell extends i$4 {
|
|
25253
25255
|
constructor() {
|
|
25254
25256
|
super();
|
|
25255
25257
|
|
|
25256
25258
|
this.day = null;
|
|
25257
25259
|
this.selected = false;
|
|
25258
|
-
this.hovered = false;
|
|
25259
25260
|
this.dateTo = null;
|
|
25260
25261
|
this.dateFrom = null;
|
|
25261
25262
|
this.month = null;
|
|
@@ -25263,11 +25264,12 @@ class AuroCalendarCell extends i$4 {
|
|
|
25263
25264
|
this.max = null;
|
|
25264
25265
|
this.disabled = false;
|
|
25265
25266
|
this.disabledDays = [];
|
|
25266
|
-
this.hoveredDate = null;
|
|
25267
25267
|
this.isCurrentDate = false;
|
|
25268
25268
|
this._locale = null;
|
|
25269
25269
|
this.dateStr = null;
|
|
25270
25270
|
this.renderForDateSlot = false; // When false, the numerical date will render vertically centered. When true, the date will render off-center to the top and leave room below for the slot content.
|
|
25271
|
+
this.active = false;
|
|
25272
|
+
this.hasPopoverContent = false;
|
|
25271
25273
|
|
|
25272
25274
|
this.runtimeUtils = new AuroLibraryRuntimeUtils$5$1();
|
|
25273
25275
|
|
|
@@ -25286,7 +25288,6 @@ class AuroCalendarCell extends i$4 {
|
|
|
25286
25288
|
// ...super.properties,
|
|
25287
25289
|
day: { type: Object },
|
|
25288
25290
|
selected: { type: Boolean },
|
|
25289
|
-
hovered: { type: Boolean },
|
|
25290
25291
|
dateTo: { type: String },
|
|
25291
25292
|
dateFrom: { type: String },
|
|
25292
25293
|
month: { type: String },
|
|
@@ -25297,11 +25298,11 @@ class AuroCalendarCell extends i$4 {
|
|
|
25297
25298
|
reflect: true
|
|
25298
25299
|
},
|
|
25299
25300
|
disabledDays: { type: Array },
|
|
25300
|
-
hoveredDate: { type: String },
|
|
25301
25301
|
isCurrentDate: { type: Boolean },
|
|
25302
25302
|
locale: { type: String },
|
|
25303
25303
|
dateStr: { type: String },
|
|
25304
|
-
renderForDateSlot: { type: Boolean }
|
|
25304
|
+
renderForDateSlot: { type: Boolean },
|
|
25305
|
+
hasPopoverContent: { type: Boolean }
|
|
25305
25306
|
};
|
|
25306
25307
|
}
|
|
25307
25308
|
|
|
@@ -25325,17 +25326,17 @@ class AuroCalendarCell extends i$4 {
|
|
|
25325
25326
|
}
|
|
25326
25327
|
|
|
25327
25328
|
/**
|
|
25328
|
-
* Handles selected
|
|
25329
|
+
* Handles selected state of the calendar cell when the selection changes.
|
|
25330
|
+
* Also clears any imperative range preview classes so classMap is the
|
|
25331
|
+
* sole source of truth after a selection update.
|
|
25329
25332
|
* @private
|
|
25330
25333
|
* @param {Number} dateFrom - Depart date.
|
|
25331
25334
|
* @param {Number} dateTo - Return date.
|
|
25332
|
-
* @param {Number} hoveredDate - Hovered date.
|
|
25333
25335
|
* @param {Object} day - An object containing the dateFrom and day of month values.
|
|
25334
25336
|
* @returns {void}
|
|
25335
25337
|
*/
|
|
25336
|
-
dateChanged(dateFrom, dateTo,
|
|
25338
|
+
dateChanged(dateFrom, dateTo, day) {
|
|
25337
25339
|
this.selected = false;
|
|
25338
|
-
this.hovered = false;
|
|
25339
25340
|
|
|
25340
25341
|
const parsedDateFrom = parseInt(dateFrom, 10);
|
|
25341
25342
|
const parsedDateTo = parseInt(dateTo, 10);
|
|
@@ -25347,10 +25348,6 @@ class AuroCalendarCell extends i$4 {
|
|
|
25347
25348
|
if (day.date === departTimestamp || day.date === returnTimestamp) {
|
|
25348
25349
|
this.selected = true;
|
|
25349
25350
|
}
|
|
25350
|
-
|
|
25351
|
-
if (((hoveredDate === day.date || day.date < hoveredDate) && day.date > parsedDateFrom && !parsedDateTo && !Number.isNaN(parsedDateFrom) && parsedDateFrom !== undefined && !this.selected) || (day.date > parsedDateFrom && day.date < parsedDateTo)) {
|
|
25352
|
-
this.hovered = true;
|
|
25353
|
-
}
|
|
25354
25351
|
}
|
|
25355
25352
|
}
|
|
25356
25353
|
|
|
@@ -25360,27 +25357,104 @@ class AuroCalendarCell extends i$4 {
|
|
|
25360
25357
|
* @returns {void}
|
|
25361
25358
|
*/
|
|
25362
25359
|
handleTap() {
|
|
25363
|
-
if (!this.disabled) {
|
|
25360
|
+
if (!this.disabled && !this.isBlackout()) {
|
|
25364
25361
|
this.datepicker.handleCellClick(this.day.date);
|
|
25365
25362
|
}
|
|
25363
|
+
|
|
25364
|
+
// Set this cell as the active cell regardless of blackout status
|
|
25365
|
+
if (this.day) {
|
|
25366
|
+
this.dispatchEvent(new CustomEvent('calendar-cell-activate', {
|
|
25367
|
+
bubbles: true,
|
|
25368
|
+
composed: true,
|
|
25369
|
+
detail: { date: this.day.date }
|
|
25370
|
+
}));
|
|
25371
|
+
}
|
|
25366
25372
|
}
|
|
25367
25373
|
|
|
25368
25374
|
/**
|
|
25369
25375
|
* Handles user hover events and dispatches a custom event.
|
|
25376
|
+
* Does NOT set any reactive properties — the range preview is handled
|
|
25377
|
+
* imperatively by the calendar component to avoid O(N) re-renders.
|
|
25370
25378
|
* @private
|
|
25371
25379
|
* @returns {void}
|
|
25372
25380
|
*/
|
|
25373
25381
|
handleHover() {
|
|
25374
|
-
this.hovered = true;
|
|
25375
|
-
|
|
25376
|
-
let _a;
|
|
25377
25382
|
this.dispatchEvent(new CustomEvent('date-is-hovered', {
|
|
25378
|
-
detail: { date:
|
|
25383
|
+
detail: { date: this.day?.date },
|
|
25379
25384
|
}));
|
|
25380
25385
|
}
|
|
25381
25386
|
|
|
25382
25387
|
/**
|
|
25383
|
-
*
|
|
25388
|
+
* Handles focus events on the cell button.
|
|
25389
|
+
* Dispatches a lightweight event for the calendar to handle SR
|
|
25390
|
+
* announcements and range preview updates without triggering
|
|
25391
|
+
* any Lit lifecycle updates.
|
|
25392
|
+
* @private
|
|
25393
|
+
* @returns {void}
|
|
25394
|
+
*/
|
|
25395
|
+
handleFocus() {
|
|
25396
|
+
this.dispatchEvent(new CustomEvent('calendar-cell-focused', {
|
|
25397
|
+
bubbles: true,
|
|
25398
|
+
composed: true,
|
|
25399
|
+
detail: { date: this.day?.date },
|
|
25400
|
+
}));
|
|
25401
|
+
}
|
|
25402
|
+
|
|
25403
|
+
/**
|
|
25404
|
+
* Checks if the current date is outside the valid min/max range.
|
|
25405
|
+
* Out-of-range cells are not focusable and are hidden from screen readers.
|
|
25406
|
+
* @private
|
|
25407
|
+
* @param {Object} day - An object containing the dateFrom and day of month values.
|
|
25408
|
+
* @param {Number} min - The minimum date value.
|
|
25409
|
+
* @param {Number} max - The maximum date value.
|
|
25410
|
+
* @returns {Boolean} - True if the date is out of range.
|
|
25411
|
+
*/
|
|
25412
|
+
isOutOfRange(day, min, max) {
|
|
25413
|
+
if (day && day.date !== null && day.date !== undefined) {
|
|
25414
|
+
return day.date < min || day.date > max;
|
|
25415
|
+
}
|
|
25416
|
+
return false;
|
|
25417
|
+
}
|
|
25418
|
+
|
|
25419
|
+
/**
|
|
25420
|
+
* Checks if the current date is a blackout date (in disabledDays but within range).
|
|
25421
|
+
* Blackout cells are focusable but not selectable.
|
|
25422
|
+
* @private
|
|
25423
|
+
* @returns {Boolean} - True if the date is a blackout date.
|
|
25424
|
+
*/
|
|
25425
|
+
isBlackout() {
|
|
25426
|
+
if (!this.day || this.day.date === null || this.day.date === undefined || this.isOutOfRange(this.day, this.min, this.max)) {
|
|
25427
|
+
return false;
|
|
25428
|
+
}
|
|
25429
|
+
|
|
25430
|
+
// Check against disabledDays timestamps (legacy path)
|
|
25431
|
+
if (Array.isArray(this.disabledDays) && this.disabledDays.length > 0 &&
|
|
25432
|
+
(this.disabledDays.findIndex(dd => parseInt(dd, 10) === this.day.date) !== -1)) {
|
|
25433
|
+
return true;
|
|
25434
|
+
}
|
|
25435
|
+
|
|
25436
|
+
// Check against blackoutDates (ISO format YYYY-MM-DD) on the datepicker
|
|
25437
|
+
const blackoutDates = this.datepicker?.blackoutDates;
|
|
25438
|
+
|
|
25439
|
+
if (Array.isArray(blackoutDates) && blackoutDates.length > 0) {
|
|
25440
|
+
const date = new Date(this.day.date * 1000);
|
|
25441
|
+
const yyyy = date.getFullYear();
|
|
25442
|
+
const mm = String(date.getMonth() + 1).padStart(2, '0');
|
|
25443
|
+
const dd = String(date.getDate()).padStart(2, '0');
|
|
25444
|
+
const cellDate = `${yyyy}-${mm}-${dd}`;
|
|
25445
|
+
if (blackoutDates.includes(cellDate)) {
|
|
25446
|
+
return true;
|
|
25447
|
+
}
|
|
25448
|
+
}
|
|
25449
|
+
|
|
25450
|
+
return false;
|
|
25451
|
+
}
|
|
25452
|
+
|
|
25453
|
+
/**
|
|
25454
|
+
* Checks if the current date is disabled based on min/max range or the
|
|
25455
|
+
* legacy disabledDays timestamp list. Sets the `disabled` attribute on the
|
|
25456
|
+
* host when the date falls outside the allowed range or appears in
|
|
25457
|
+
* disabledDays. Note: blackout dates are handled separately by `isBlackout()`.
|
|
25384
25458
|
* @private
|
|
25385
25459
|
* @param {Object} day - An object containing the dateFrom and day of month values.
|
|
25386
25460
|
* @param {Number} min - The minimum date value.
|
|
@@ -25391,15 +25465,114 @@ class AuroCalendarCell extends i$4 {
|
|
|
25391
25465
|
isEnabled(day, min, max, disabledDays) {
|
|
25392
25466
|
this.removeAttribute('disabled');
|
|
25393
25467
|
|
|
25394
|
-
if (disabledDays && day && day.date
|
|
25395
|
-
|
|
25396
|
-
|
|
25397
|
-
|
|
25398
|
-
}
|
|
25468
|
+
if (disabledDays && day && day.date &&
|
|
25469
|
+
(day.date < min || day.date > max || disabledDays.findIndex(disabledDay => parseInt(disabledDay, 10) === day.date) !== -1)) {
|
|
25470
|
+
this.setAttribute('disabled', true);
|
|
25471
|
+
return true;
|
|
25399
25472
|
}
|
|
25473
|
+
|
|
25400
25474
|
return false;
|
|
25401
25475
|
}
|
|
25402
25476
|
|
|
25477
|
+
/**
|
|
25478
|
+
* Generates a unique cell ID in the format cell-YYYY-MM-DD.
|
|
25479
|
+
* @private
|
|
25480
|
+
* @returns {String} The unique cell ID.
|
|
25481
|
+
*/
|
|
25482
|
+
getCellId() {
|
|
25483
|
+
if (!this.day || !this.day.date) return '';
|
|
25484
|
+
const date = new Date(this.day.date * 1000);
|
|
25485
|
+
const year = date.getFullYear();
|
|
25486
|
+
const month = String(date.getMonth() + 1).padStart(2, '0');
|
|
25487
|
+
const day = String(date.getDate()).padStart(2, '0');
|
|
25488
|
+
return `cell-${year}-${month}-${day}`;
|
|
25489
|
+
}
|
|
25490
|
+
|
|
25491
|
+
/**
|
|
25492
|
+
* Generates a localized aria-label for the cell button using Intl.DateTimeFormat.
|
|
25493
|
+
* Includes range position and blackout status.
|
|
25494
|
+
* @private
|
|
25495
|
+
* @returns {String} The aria-label string.
|
|
25496
|
+
*/
|
|
25497
|
+
getAriaLabel() {
|
|
25498
|
+
if (!this.day || this.day.date === undefined) return '';
|
|
25499
|
+
|
|
25500
|
+
const date = new Date(this.day.date * 1000);
|
|
25501
|
+
|
|
25502
|
+
// Generate localized full date string using the configured locale
|
|
25503
|
+
const localeCode = this.locale?.code || undefined;
|
|
25504
|
+
const dateFormatter = new Intl.DateTimeFormat(localeCode, {
|
|
25505
|
+
weekday: 'long',
|
|
25506
|
+
year: 'numeric',
|
|
25507
|
+
month: 'long',
|
|
25508
|
+
day: 'numeric'
|
|
25509
|
+
});
|
|
25510
|
+
|
|
25511
|
+
let label = dateFormatter.format(date);
|
|
25512
|
+
|
|
25513
|
+
// Append date slot content (e.g. prices) so it is announced with the date.
|
|
25514
|
+
if (this.renderForDateSlot) {
|
|
25515
|
+
const dateSlotEl = this.querySelector(`[slot="date_${this.dateStr}"]`);
|
|
25516
|
+
if (dateSlotEl) {
|
|
25517
|
+
const text = dateSlotEl.innerText?.trim();
|
|
25518
|
+
if (text) {
|
|
25519
|
+
label += `, ${text}`;
|
|
25520
|
+
}
|
|
25521
|
+
}
|
|
25522
|
+
}
|
|
25523
|
+
|
|
25524
|
+
// appending popover content here so that it gets read in a logical order with the other date content.
|
|
25525
|
+
if (this.hasPopoverContent) {
|
|
25526
|
+
const popoverEl = this.querySelector(`[slot="popover_${this.dateStr}"]`);
|
|
25527
|
+
if (popoverEl) {
|
|
25528
|
+
label += `, ${popoverEl.innerText.trim()}`;
|
|
25529
|
+
}
|
|
25530
|
+
}
|
|
25531
|
+
|
|
25532
|
+
// Append range position label for range datepickers
|
|
25533
|
+
const rangePosition = this.getRangePosition();
|
|
25534
|
+
if (rangePosition) {
|
|
25535
|
+
label += `, ${rangePosition}`;
|
|
25536
|
+
}
|
|
25537
|
+
|
|
25538
|
+
// Append blackout label for blackout cells
|
|
25539
|
+
if (this.isBlackout()) {
|
|
25540
|
+
label += `, ${this.datepicker?.blackoutLabel || 'unavailable'}`;
|
|
25541
|
+
}
|
|
25542
|
+
|
|
25543
|
+
return label;
|
|
25544
|
+
}
|
|
25545
|
+
|
|
25546
|
+
/**
|
|
25547
|
+
* Determines the range position of this cell relative to the current selection.
|
|
25548
|
+
* @private
|
|
25549
|
+
* @returns {String|null} Range position label or null if not in range mode.
|
|
25550
|
+
*/
|
|
25551
|
+
getRangePosition() {
|
|
25552
|
+
if (!this.datepicker || !this.datepicker.hasAttribute('range')) return null;
|
|
25553
|
+
|
|
25554
|
+
const parsedDateFrom = Number.parseInt(this.dateFrom, 10);
|
|
25555
|
+
if (!Number.isFinite(parsedDateFrom)) return null;
|
|
25556
|
+
|
|
25557
|
+
const departTimestamp = startOfDay$1(parsedDateFrom * 1000) / 1000;
|
|
25558
|
+
const dayDate = this.day.date;
|
|
25559
|
+
|
|
25560
|
+
const parsedDateTo = Number.parseInt(this.dateTo, 10);
|
|
25561
|
+
const hasDateTo = Number.isFinite(parsedDateTo);
|
|
25562
|
+
const returnTimestamp = hasDateTo ? startOfDay$1(parsedDateTo * 1000) / 1000 : null;
|
|
25563
|
+
|
|
25564
|
+
if (dayDate === departTimestamp) return this.datepicker.rangeLabelStart || 'range start';
|
|
25565
|
+
|
|
25566
|
+
if (hasDateTo && dayDate === returnTimestamp) return this.datepicker.rangeLabelEnd || 'range end';
|
|
25567
|
+
|
|
25568
|
+
if (dayDate < departTimestamp) return this.datepicker.rangeLabelBeforeRange || 'before range';
|
|
25569
|
+
|
|
25570
|
+
if (hasDateTo && dayDate > departTimestamp && dayDate < returnTimestamp) return this.datepicker.rangeLabelInRange || 'in range';
|
|
25571
|
+
|
|
25572
|
+
// After start date, no end date yet, or after end date
|
|
25573
|
+
return this.datepicker.rangeLabelAfterRange || 'after range';
|
|
25574
|
+
}
|
|
25575
|
+
|
|
25403
25576
|
/**
|
|
25404
25577
|
* Checks if the current date is the depart date.
|
|
25405
25578
|
* @private
|
|
@@ -25467,12 +25640,12 @@ class AuroCalendarCell extends i$4 {
|
|
|
25467
25640
|
}
|
|
25468
25641
|
|
|
25469
25642
|
/**
|
|
25470
|
-
* Checks if the current date is a
|
|
25643
|
+
* Checks if the current date is a referenced date.
|
|
25471
25644
|
* @param {Object} dateStr - The date string in MM_DD_YYYY format.
|
|
25472
|
-
* @returns Boolean - True if the date is a
|
|
25645
|
+
* @returns Boolean - True if the date is a referenced date.
|
|
25473
25646
|
*/
|
|
25474
25647
|
isReferenceDate(dateStr) {
|
|
25475
|
-
// If the datepicker has
|
|
25648
|
+
// If the datepicker has referenced dates specified
|
|
25476
25649
|
if (this.datepicker && this.datepicker.hasAttribute('referenceDates')) {
|
|
25477
25650
|
|
|
25478
25651
|
// Get the referenceDates attribute from the datepicker
|
|
@@ -25482,7 +25655,11 @@ class AuroCalendarCell extends i$4 {
|
|
|
25482
25655
|
if (!Array.isArray(referenceDates) || referenceDates.length === 0) return false;
|
|
25483
25656
|
|
|
25484
25657
|
// Convert cell dateStr (MM_DD_YYYY) to ISO (YYYY-MM-DD) for comparison
|
|
25485
|
-
const [
|
|
25658
|
+
const [
|
|
25659
|
+
month,
|
|
25660
|
+
day,
|
|
25661
|
+
year
|
|
25662
|
+
] = dateStr.split('_');
|
|
25486
25663
|
const cellISO = `${year}-${month.padStart(2, '0')}-${day.padStart(2, '0')}`;
|
|
25487
25664
|
|
|
25488
25665
|
return referenceDates.includes(cellISO);
|
|
@@ -25572,9 +25749,9 @@ class AuroCalendarCell extends i$4 {
|
|
|
25572
25749
|
|
|
25573
25750
|
if (popoverSlotContent) {
|
|
25574
25751
|
this.appendChild(popoverSlotContent.cloneNode(true));
|
|
25575
|
-
this.
|
|
25752
|
+
this.hasPopoverContent = true;
|
|
25576
25753
|
} else {
|
|
25577
|
-
this.
|
|
25754
|
+
this.hasPopoverContent = false;
|
|
25578
25755
|
}
|
|
25579
25756
|
} catch (err) { // eslint-disable-line no-unused-vars
|
|
25580
25757
|
// Error handling goes here
|
|
@@ -25590,60 +25767,249 @@ class AuroCalendarCell extends i$4 {
|
|
|
25590
25767
|
return;
|
|
25591
25768
|
}
|
|
25592
25769
|
this.datepicker = calendar.datepicker;
|
|
25593
|
-
this.
|
|
25770
|
+
this._slotContentHandler = () => {
|
|
25594
25771
|
this.handleSlotContent();
|
|
25772
|
+
// Force re-render so isBlackout()/aria-disabled reflect updated blackoutDates.
|
|
25773
|
+
this.requestUpdate();
|
|
25774
|
+
};
|
|
25775
|
+
this.datepicker.addEventListener('auroDatePicker-newSlotContent', this._slotContentHandler);
|
|
25776
|
+
|
|
25777
|
+
// Cache button reference for imperative class manipulation.
|
|
25778
|
+
this.updateComplete.then(() => {
|
|
25779
|
+
this._cachedButton = this.shadowRoot.querySelector('button.day');
|
|
25595
25780
|
});
|
|
25596
25781
|
|
|
25782
|
+
// Trigger an initial update now that `this.datepicker` is assigned so
|
|
25783
|
+
// cells reflect blackout/slot state that was configured before first render.
|
|
25784
|
+
this.requestUpdate();
|
|
25785
|
+
|
|
25786
|
+
this.calendarMonth = calendarMonth;
|
|
25787
|
+
this.configurePopover();
|
|
25788
|
+
}
|
|
25789
|
+
|
|
25790
|
+
disconnectedCallback() {
|
|
25791
|
+
super.disconnectedCallback();
|
|
25792
|
+
if (this.datepicker && this._slotContentHandler) {
|
|
25793
|
+
this.datepicker.removeEventListener('auroDatePicker-newSlotContent', this._slotContentHandler);
|
|
25794
|
+
}
|
|
25795
|
+
}
|
|
25796
|
+
|
|
25797
|
+
/**
|
|
25798
|
+
* Configures the popover instance with the calendar month boundary.
|
|
25799
|
+
* Called from firstUpdated and updated because the popover element is only
|
|
25800
|
+
* rendered after hasPopoverContent becomes true (set by handleSlotContent).
|
|
25801
|
+
* @private
|
|
25802
|
+
* @returns {void}
|
|
25803
|
+
*/
|
|
25804
|
+
configurePopover() {
|
|
25597
25805
|
this.auroPopover = this.shadowRoot.querySelector(this.popoverTag._$litStatic$);
|
|
25598
25806
|
|
|
25599
|
-
this.auroPopover
|
|
25807
|
+
if (this.auroPopover && this.calendarMonth) {
|
|
25808
|
+
this.auroPopover.boundary = this.calendarMonth;
|
|
25809
|
+
}
|
|
25600
25810
|
}
|
|
25601
25811
|
|
|
25602
25812
|
updated(properties) {
|
|
25603
|
-
if (properties.has('dateFrom') || properties.has('dateTo') || properties.has('
|
|
25604
|
-
this.dateChanged(this.dateFrom, this.dateTo, this.
|
|
25813
|
+
if (properties.has('dateFrom') || properties.has('dateTo') || properties.has('day')) {
|
|
25814
|
+
this.dateChanged(this.dateFrom, this.dateTo, this.day);
|
|
25605
25815
|
}
|
|
25606
25816
|
|
|
25607
|
-
|
|
25608
|
-
|
|
25817
|
+
if (properties.has('day') && this.day) {
|
|
25818
|
+
this.setDateSlotName();
|
|
25819
|
+
this.handleSlotContent();
|
|
25820
|
+
|
|
25821
|
+
// Re-cache button reference when the day changes (cell may have re-rendered).
|
|
25822
|
+
this.updateComplete.then(() => {
|
|
25823
|
+
this._cachedButton = this.shadowRoot.querySelector('button.day');
|
|
25824
|
+
});
|
|
25825
|
+
|
|
25826
|
+
// Update host-level aria attributes for ariaActiveDescendantElement.
|
|
25827
|
+
this.updateHostAria();
|
|
25828
|
+
}
|
|
25829
|
+
|
|
25830
|
+
// Update host aria when selection changes (aria-selected, range labels)
|
|
25831
|
+
if (properties.has('dateFrom') || properties.has('dateTo') || properties.has('selected')) {
|
|
25832
|
+
this.updateHostAria();
|
|
25833
|
+
}
|
|
25834
|
+
|
|
25835
|
+
// Configure popover when it first becomes rendered
|
|
25836
|
+
if (properties.has('hasPopoverContent') && this.hasPopoverContent) {
|
|
25837
|
+
this.updateComplete.then(() => this.configurePopover());
|
|
25838
|
+
}
|
|
25609
25839
|
}
|
|
25610
25840
|
|
|
25611
|
-
|
|
25841
|
+
/**
|
|
25842
|
+
* Updates ARIA attributes on the host element so that
|
|
25843
|
+
* ariaActiveDescendantElement can expose cell info to the SR.
|
|
25844
|
+
* @private
|
|
25845
|
+
* @returns {void}
|
|
25846
|
+
*/
|
|
25847
|
+
updateHostAria() {
|
|
25848
|
+
if (!this.day || this.day.date === undefined) return;
|
|
25849
|
+
|
|
25850
|
+
const outOfRange = this.isOutOfRange(this.day, this.min, this.max);
|
|
25851
|
+
if (outOfRange) {
|
|
25852
|
+
this.removeAttribute('role');
|
|
25853
|
+
this.removeAttribute('aria-label');
|
|
25854
|
+
return;
|
|
25855
|
+
}
|
|
25856
|
+
|
|
25857
|
+
// The host acts as the gridcell for ariaActiveDescendantElement.
|
|
25858
|
+
this.setAttribute('role', 'gridcell');
|
|
25859
|
+
this.setAttribute('aria-label', this.getAriaLabel());
|
|
25860
|
+
this.setAttribute('aria-selected', this.selected ? 'true' : 'false');
|
|
25861
|
+
|
|
25862
|
+
if (this.isBlackout()) {
|
|
25863
|
+
this.setAttribute('aria-disabled', 'true');
|
|
25864
|
+
} else {
|
|
25865
|
+
this.removeAttribute('aria-disabled');
|
|
25866
|
+
}
|
|
25867
|
+
}
|
|
25868
|
+
|
|
25869
|
+
/**
|
|
25870
|
+
* Programmatically focuses the cell's interactive button element.
|
|
25871
|
+
* Uses focusVisible: true so the :focus-visible ring appears even when
|
|
25872
|
+
* the bib was opened via mouse click (which sets mouse input modality).
|
|
25873
|
+
* @returns {void}
|
|
25874
|
+
*/
|
|
25875
|
+
focusButton() {
|
|
25876
|
+
const button = this._cachedButton || this.shadowRoot.querySelector('button:not([aria-hidden])');
|
|
25877
|
+
if (button) {
|
|
25878
|
+
button.focus({ focusVisible: true });
|
|
25879
|
+
}
|
|
25880
|
+
}
|
|
25881
|
+
|
|
25882
|
+
/**
|
|
25883
|
+
* Imperatively marks this cell as active without triggering a Lit re-render.
|
|
25884
|
+
* Note: buttons stay tabindex="-1" because the grid uses aria-activedescendant.
|
|
25885
|
+
* @returns {void}
|
|
25886
|
+
*/
|
|
25887
|
+
setActive() {
|
|
25888
|
+
this.active = true;
|
|
25889
|
+
|
|
25890
|
+
// Show the popover when this cell becomes active via keyboard navigation.
|
|
25891
|
+
if (this.auroPopover) {
|
|
25892
|
+
this.auroPopover.toggleShow();
|
|
25893
|
+
}
|
|
25894
|
+
}
|
|
25895
|
+
|
|
25896
|
+
/**
|
|
25897
|
+
* Imperatively marks this cell as inactive without triggering a Lit re-render.
|
|
25898
|
+
* @returns {void}
|
|
25899
|
+
*/
|
|
25900
|
+
clearActive() {
|
|
25901
|
+
this.active = false;
|
|
25902
|
+
const btn = this._cachedButton || this.shadowRoot.querySelector('button.day');
|
|
25903
|
+
if (btn) {
|
|
25904
|
+
btn.classList.remove('activeCell');
|
|
25905
|
+
}
|
|
25906
|
+
|
|
25907
|
+
// Hide the popover when this cell loses active state.
|
|
25908
|
+
if (this.auroPopover) {
|
|
25909
|
+
this.auroPopover.toggleHide();
|
|
25910
|
+
}
|
|
25911
|
+
}
|
|
25912
|
+
|
|
25913
|
+
/**
|
|
25914
|
+
* Updates range preview classes imperatively (no Lit re-render).
|
|
25915
|
+
* Called by the calendar component when the hovered date changes
|
|
25916
|
+
* during range selection (dateFrom set, dateTo not yet set).
|
|
25917
|
+
* @param {Number} hoveredDate - Unix timestamp of the currently hovered/focused date.
|
|
25918
|
+
* @param {Number} dateFrom - Unix timestamp of the selected departure date.
|
|
25919
|
+
* @returns {void}
|
|
25920
|
+
*/
|
|
25921
|
+
updateRangePreviewClasses(hoveredDate, dateFrom) {
|
|
25922
|
+
const btn = this._cachedButton;
|
|
25923
|
+
if (!btn || !this.day) return;
|
|
25924
|
+
|
|
25925
|
+
const dayDate = this.day.date;
|
|
25926
|
+
const departTimestamp = startOfDay$1(dateFrom * 1000) / 1000;
|
|
25927
|
+
const isInRange = dayDate > departTimestamp && dayDate < hoveredDate;
|
|
25928
|
+
const isLastHovered = dayDate === hoveredDate && hoveredDate > departTimestamp;
|
|
25929
|
+
const isDepartWithPreview = dayDate === departTimestamp && hoveredDate > departTimestamp;
|
|
25930
|
+
|
|
25931
|
+
btn.classList.toggle('inRange', isInRange);
|
|
25932
|
+
btn.classList.toggle('lastHoveredDate', isLastHovered);
|
|
25933
|
+
btn.classList.toggle('rangeDepartDate', isDepartWithPreview);
|
|
25934
|
+
}
|
|
25935
|
+
|
|
25936
|
+
/**
|
|
25937
|
+
* Clears all imperative range preview classes from the cell button.
|
|
25938
|
+
* Called when a selection occurs so classMap becomes the sole source of truth.
|
|
25939
|
+
* @returns {void}
|
|
25940
|
+
*/
|
|
25941
|
+
clearRangePreviewClasses() {
|
|
25942
|
+
const btn = this._cachedButton;
|
|
25943
|
+
if (!btn) return;
|
|
25944
|
+
|
|
25945
|
+
btn.classList.remove('inRange', 'lastHoveredDate', 'rangeDepartDate');
|
|
25946
|
+
}
|
|
25947
|
+
|
|
25948
|
+
renderCellButton() {
|
|
25949
|
+
const outOfRange = this.isOutOfRange(this.day, this.min, this.max);
|
|
25950
|
+
const blackout = this.isBlackout();
|
|
25951
|
+
|
|
25952
|
+
// Static and selection-driven classes only. Hover-driven classes
|
|
25953
|
+
// (inRange, lastHoveredDate, rangeDepartDate during preview) are
|
|
25954
|
+
// managed imperatively via updateRangePreviewClasses() to avoid
|
|
25955
|
+
// O(N) Lit re-renders on every focus/hover event.
|
|
25956
|
+
const isFirstDay = this.day?.title === 1;
|
|
25957
|
+
const isLastDay = this.day?.date && (() => {
|
|
25958
|
+
const dt = new Date(this.day.date * 1000);
|
|
25959
|
+
return dt.getDate() === new Date(dt.getFullYear(), dt.getMonth() + 1, 0).getDate();
|
|
25960
|
+
})();
|
|
25961
|
+
|
|
25612
25962
|
const buttonClasses = {
|
|
25613
25963
|
'day': true,
|
|
25614
|
-
'body-
|
|
25615
|
-
'currentDate': this.
|
|
25964
|
+
'body-default': true,
|
|
25965
|
+
'currentDate': this.isCurrentDate,
|
|
25616
25966
|
'selected': this.selected,
|
|
25617
|
-
'inRange': this.
|
|
25618
|
-
'
|
|
25619
|
-
|
|
25620
|
-
'rangeDepartDate': this.isDepartDate(this.day, this.dateFrom) &&
|
|
25621
|
-
'rangeReturnDate': this.isReturnDate(this.day, this.dateFrom, this.dateTo),
|
|
25967
|
+
'inRange': this.datepicker?.hasAttribute('range') && this.dateTo && this.isInRange(this.day, this.dateFrom, this.dateTo),
|
|
25968
|
+
'disabled': outOfRange,
|
|
25969
|
+
blackout,
|
|
25970
|
+
'rangeDepartDate': this.datepicker?.hasAttribute('range') && this.isDepartDate(this.day, this.dateFrom) && this.dateTo,
|
|
25971
|
+
'rangeReturnDate': this.datepicker?.hasAttribute('range') && this.isReturnDate(this.day, this.dateFrom, this.dateTo),
|
|
25622
25972
|
'reference': this.isReferenceDate(this.dateStr),
|
|
25623
|
-
'sameDateTrip': this.dateFrom === this.dateTo
|
|
25973
|
+
'sameDateTrip': this.datepicker?.hasAttribute('range') && this.dateFrom === this.dateTo,
|
|
25974
|
+
'firstDayOfMonth': isFirstDay,
|
|
25975
|
+
'lastDayOfMonth': isLastDay,
|
|
25624
25976
|
};
|
|
25625
25977
|
|
|
25626
|
-
let _a, _b;
|
|
25627
25978
|
return u$c`
|
|
25628
|
-
|
|
25629
|
-
|
|
25630
|
-
|
|
25631
|
-
|
|
25632
|
-
|
|
25633
|
-
|
|
25634
|
-
|
|
25635
|
-
|
|
25636
|
-
|
|
25637
|
-
|
|
25638
|
-
|
|
25639
|
-
<div class="
|
|
25640
|
-
|
|
25641
|
-
<
|
|
25642
|
-
<slot name="date_${this.dateStr}"></slot>
|
|
25643
|
-
</div>
|
|
25979
|
+
<button
|
|
25980
|
+
slot="trigger"
|
|
25981
|
+
id="${this.getCellId()}"
|
|
25982
|
+
@click="${outOfRange ? undefined : this.handleTap}"
|
|
25983
|
+
@mouseover="${outOfRange ? undefined : this.handleHover}"
|
|
25984
|
+
@focus="${outOfRange ? undefined : this.handleFocus}"
|
|
25985
|
+
class="${e$3(buttonClasses)}"
|
|
25986
|
+
?disabled="${outOfRange}"
|
|
25987
|
+
aria-hidden="${outOfRange ? 'true' : A$7}"
|
|
25988
|
+
tabindex="-1">
|
|
25989
|
+
<div class="buttonWrapper" aria-hidden="true">
|
|
25990
|
+
<div class="currentDayMarker">${this.day?.title || A$7}</div>
|
|
25991
|
+
<div class="dateSlot body-2xs" part="dateSlot" aria-hidden="true" ?hidden="${!this.renderForDateSlot}">
|
|
25992
|
+
<slot name="date_${this.dateStr}"></slot>
|
|
25644
25993
|
</div>
|
|
25645
|
-
</
|
|
25646
|
-
|
|
25994
|
+
</div>
|
|
25995
|
+
</button>
|
|
25996
|
+
`;
|
|
25997
|
+
}
|
|
25998
|
+
|
|
25999
|
+
render() {
|
|
26000
|
+
const { hasPopoverContent } = this;
|
|
26001
|
+
|
|
26002
|
+
if (hasPopoverContent) {
|
|
26003
|
+
return u$c`
|
|
26004
|
+
<${this.popoverTag}>
|
|
26005
|
+
<span aria-hidden="true"><slot name="popover_${this.dateStr}"></slot></span>
|
|
26006
|
+
${this.renderCellButton()}
|
|
26007
|
+
</${this.popoverTag}>
|
|
26008
|
+
`;
|
|
26009
|
+
}
|
|
26010
|
+
|
|
26011
|
+
return u$c`
|
|
26012
|
+
${this.renderCellButton()}
|
|
25647
26013
|
`;
|
|
25648
26014
|
}
|
|
25649
26015
|
}
|
|
@@ -25656,7 +26022,7 @@ if (!customElements.get('auro-formkit-calendar-cell')) {
|
|
|
25656
26022
|
|
|
25657
26023
|
// See https://git.io/JJ6SJ for "How to document your components using JSDoc"
|
|
25658
26024
|
|
|
25659
|
-
/* eslint-disable no-magic-numbers
|
|
26025
|
+
/* eslint-disable no-magic-numbers */
|
|
25660
26026
|
|
|
25661
26027
|
|
|
25662
26028
|
const getMonthNamesFromLocale = (locale) => {
|
|
@@ -25673,11 +26039,12 @@ const getMonthNamesFromLocale = (locale) => {
|
|
|
25673
26039
|
* Uses UTC dates to avoid DST-related day drift across timezones.
|
|
25674
26040
|
* @private
|
|
25675
26041
|
* @param {String} locale - The BCP 47 language tag for localization (e.g. "en-US").
|
|
25676
|
-
* @
|
|
26042
|
+
* @param {String} weekday - The format of the weekday name ('narrow', 'short', 'long').
|
|
26043
|
+
* @returns {Array} An array of seven localized weekday names, starting from Sunday.
|
|
25677
26044
|
*/
|
|
25678
|
-
const getWeekdayNames = (locale) => {
|
|
26045
|
+
const getWeekdayNames = (locale, weekday) => {
|
|
25679
26046
|
const fmt = new Intl.DateTimeFormat(locale, {
|
|
25680
|
-
weekday
|
|
26047
|
+
weekday,
|
|
25681
26048
|
timeZone: 'UTC'
|
|
25682
26049
|
});
|
|
25683
26050
|
// Jan 5 2025 is a known Sunday; use Date.UTC to avoid DST-related day drift
|
|
@@ -25712,7 +26079,7 @@ class AuroCalendarMonth extends RangeDatepickerCalendar {
|
|
|
25712
26079
|
|
|
25713
26080
|
/**
|
|
25714
26081
|
* BCP 47 locale tag (such as `en-US`) for calendar localization.
|
|
25715
|
-
*
|
|
26082
|
+
* As wc-range-datepicker expects a `locale` prop, we use `localeCode` to avoid conflicts.
|
|
25716
26083
|
*/
|
|
25717
26084
|
localeCode: {
|
|
25718
26085
|
type: String
|
|
@@ -25766,8 +26133,19 @@ class AuroCalendarMonth extends RangeDatepickerCalendar {
|
|
|
25766
26133
|
return this._cachedMonthNames[month - 1] || '';
|
|
25767
26134
|
}
|
|
25768
26135
|
|
|
26136
|
+
/**
|
|
26137
|
+
* Returns the unique heading ID for this month, used by aria-labelledby.
|
|
26138
|
+
* @private
|
|
26139
|
+
* @returns {String} The heading ID.
|
|
26140
|
+
*/
|
|
26141
|
+
getHeadingId() {
|
|
26142
|
+
return `month-heading-${this.month}-${this.year}`;
|
|
26143
|
+
}
|
|
26144
|
+
|
|
26145
|
+
|
|
25769
26146
|
/**
|
|
25770
26147
|
* Determines the current month name based on locale.
|
|
26148
|
+
* Also builds parallel arrays of full day names for abbr attributes.
|
|
25771
26149
|
* This is a rewrite of the function used in the class RangeDatepickerCalendar and should not be removed from here.
|
|
25772
26150
|
* @private
|
|
25773
26151
|
* @param {Object} changedProperties - The properties that have changed since the last update.
|
|
@@ -25781,8 +26159,67 @@ class AuroCalendarMonth extends RangeDatepickerCalendar {
|
|
|
25781
26159
|
}
|
|
25782
26160
|
|
|
25783
26161
|
localeChanged() {
|
|
25784
|
-
|
|
25785
|
-
this.
|
|
26162
|
+
this.dayNamesOfTheWeek = getWeekdayNames(this.localeCode, 'narrow');
|
|
26163
|
+
this.dayFullNames = getWeekdayNames(this.localeCode, 'long');
|
|
26164
|
+
}
|
|
26165
|
+
|
|
26166
|
+
/**
|
|
26167
|
+
* Renders a day-of-week header with abbr attribute for the full day name.
|
|
26168
|
+
* @private
|
|
26169
|
+
* @param {String} dayOfWeek - The short day name.
|
|
26170
|
+
* @param {Number} index - The index in the dayNamesOfTheWeek array.
|
|
26171
|
+
* @returns {Object} The header HTML.
|
|
26172
|
+
*/
|
|
26173
|
+
renderDayOfWeek(dayOfWeek, index) {
|
|
26174
|
+
const fullName = this.dayFullNames ? this.dayFullNames[index] : dayOfWeek;
|
|
26175
|
+
return b$7`<div class="th body-default" aria-label="${fullName}" role="columnheader">${dayOfWeek}</div>`;
|
|
26176
|
+
}
|
|
26177
|
+
|
|
26178
|
+
/**
|
|
26179
|
+
* Returns all focusable cell elements (enabled + blackout, not out-of-range) in this month.
|
|
26180
|
+
* @returns {Array} Array of auro-formkit-calendar-cell elements.
|
|
26181
|
+
*/
|
|
26182
|
+
getFocusableCells() {
|
|
26183
|
+
const cells = Array.from(this.shadowRoot.querySelectorAll('auro-formkit-calendar-cell'));
|
|
26184
|
+
return cells.filter((cell) => {
|
|
26185
|
+
if (!cell.day) {
|
|
26186
|
+
return false;
|
|
26187
|
+
}
|
|
26188
|
+
return !cell.isOutOfRange(cell.day, cell.min, cell.max);
|
|
26189
|
+
});
|
|
26190
|
+
}
|
|
26191
|
+
|
|
26192
|
+
/**
|
|
26193
|
+
* Overrides the base class handler to prevent setting `this.hoveredDate`
|
|
26194
|
+
* as a reactive property. Instead, just dispatches the event upward so
|
|
26195
|
+
* the calendar can handle range preview imperatively.
|
|
26196
|
+
* @private
|
|
26197
|
+
* @param {CustomEvent} event - The date-is-hovered event from a cell.
|
|
26198
|
+
* @returns {void}
|
|
26199
|
+
*/
|
|
26200
|
+
handleDateHovered(event) {
|
|
26201
|
+
this.dispatchEvent(new CustomEvent('hovered-date-changed', {
|
|
26202
|
+
detail: { value: event.detail.date },
|
|
26203
|
+
}));
|
|
26204
|
+
}
|
|
26205
|
+
|
|
26206
|
+
/**
|
|
26207
|
+
* Dispatches a bubbling event when the mouse leaves the date grid body
|
|
26208
|
+
* so the parent calendar can clear the range hover preview.
|
|
26209
|
+
* @private
|
|
26210
|
+
* @returns {void}
|
|
26211
|
+
*/
|
|
26212
|
+
handleTbodyMouseLeave() {
|
|
26213
|
+
this.dispatchEvent(new CustomEvent('calendar-month-mouseleave', {
|
|
26214
|
+
bubbles: true,
|
|
26215
|
+
composed: true,
|
|
26216
|
+
}));
|
|
26217
|
+
}
|
|
26218
|
+
|
|
26219
|
+
renderWeek(week) {
|
|
26220
|
+
return b$7`
|
|
26221
|
+
<div class="tr" role="row">${week.map((day) => this.renderDay(day))}</div>
|
|
26222
|
+
`;
|
|
25786
26223
|
}
|
|
25787
26224
|
|
|
25788
26225
|
renderDay(day) {
|
|
@@ -25795,7 +26232,6 @@ class AuroCalendarMonth extends RangeDatepickerCalendar {
|
|
|
25795
26232
|
.min="${this.min}"
|
|
25796
26233
|
.max="${this.max}"
|
|
25797
26234
|
.month="${this.month}"
|
|
25798
|
-
.hoveredDate="${this.hoveredDate}"
|
|
25799
26235
|
.dateTo="${this.dateTo}"
|
|
25800
26236
|
.dateFrom="${this.dateFrom}"
|
|
25801
26237
|
.locale="${this.localeCode}"
|
|
@@ -25806,7 +26242,7 @@ class AuroCalendarMonth extends RangeDatepickerCalendar {
|
|
|
25806
26242
|
>
|
|
25807
26243
|
</auro-formkit-calendar-cell>
|
|
25808
26244
|
`
|
|
25809
|
-
:
|
|
26245
|
+
: b$7`<div aria-hidden="true" inert></div>`}
|
|
25810
26246
|
</div>
|
|
25811
26247
|
`;
|
|
25812
26248
|
}
|
|
@@ -25820,7 +26256,7 @@ class AuroCalendarMonth extends RangeDatepickerCalendar {
|
|
|
25820
26256
|
<div>
|
|
25821
26257
|
<div class="header">
|
|
25822
26258
|
${this.renderPrevButton()}
|
|
25823
|
-
<div class="headerTitle heading-xs">
|
|
26259
|
+
<div class="headerTitle heading-xs" id="${this.getHeadingId()}">
|
|
25824
26260
|
${this.monthFirst ? b$7`
|
|
25825
26261
|
<div>${this.computeCurrentMonthName(this.month)}</div>
|
|
25826
26262
|
<div>${this.renderYear()}</div>
|
|
@@ -25831,14 +26267,13 @@ class AuroCalendarMonth extends RangeDatepickerCalendar {
|
|
|
25831
26267
|
</div>
|
|
25832
26268
|
${this.renderNextButton()}
|
|
25833
26269
|
</div>
|
|
25834
|
-
|
|
25835
|
-
<div class="table">
|
|
26270
|
+
<div class="table" role="grid">
|
|
25836
26271
|
<div class="thead">
|
|
25837
26272
|
<div class="tr">
|
|
25838
|
-
${(_a = this.dayNamesOfTheWeek) === null || _a === void 0 ? void 0 : _a.map(dayNameOfWeek => this.renderDayOfWeek(dayNameOfWeek))}
|
|
26273
|
+
${(_a = this.dayNamesOfTheWeek) === null || _a === void 0 ? void 0 : _a.map((dayNameOfWeek, index) => this.renderDayOfWeek(dayNameOfWeek, index))}
|
|
25839
26274
|
</div>
|
|
25840
26275
|
</div>
|
|
25841
|
-
<div class="tbody">
|
|
26276
|
+
<div class="tbody" role="rowgroup" @mouseleave="${this.handleTbodyMouseLeave}">
|
|
25842
26277
|
${(_b = this.daysOfMonth) === null || _b === void 0 ? void 0 : _b.map(week => this.renderWeek(week))}
|
|
25843
26278
|
</div>
|
|
25844
26279
|
</div>
|
|
@@ -26536,6 +26971,14 @@ let AuroBibtemplate$3 = class AuroBibtemplate extends i$4 {
|
|
|
26536
26971
|
large: {
|
|
26537
26972
|
type: Boolean,
|
|
26538
26973
|
reflect: true
|
|
26974
|
+
},
|
|
26975
|
+
|
|
26976
|
+
/**
|
|
26977
|
+
* If declared, the footer slot will be rendered even when not in fullscreen mode.
|
|
26978
|
+
*/
|
|
26979
|
+
showFooter: {
|
|
26980
|
+
type: Boolean,
|
|
26981
|
+
reflect: true
|
|
26539
26982
|
}
|
|
26540
26983
|
};
|
|
26541
26984
|
}
|
|
@@ -26638,7 +27081,7 @@ let AuroBibtemplate$3 = class AuroBibtemplate extends i$4 {
|
|
|
26638
27081
|
<slot></slot>
|
|
26639
27082
|
</div>
|
|
26640
27083
|
|
|
26641
|
-
${this.isFullscreen ? u$c`
|
|
27084
|
+
${this.isFullscreen || this.showFooter ? u$c`
|
|
26642
27085
|
<div id="footerContainer">
|
|
26643
27086
|
<slot name="footer"></slot>
|
|
26644
27087
|
</div>` : null}
|
|
@@ -26647,7 +27090,7 @@ let AuroBibtemplate$3 = class AuroBibtemplate extends i$4 {
|
|
|
26647
27090
|
}
|
|
26648
27091
|
};
|
|
26649
27092
|
|
|
26650
|
-
var formkitVersion$2$1 = '
|
|
27093
|
+
var formkitVersion$2$1 = '202606081904';
|
|
26651
27094
|
|
|
26652
27095
|
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$3`${s$6(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$7`: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}
|
|
26653
27096
|
`,u$4$1=i$7`.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}}
|
|
@@ -26708,7 +27151,7 @@ let l$1$2 = class l{generateElementName(t,e){let o=t;return o+="-",o+=e.replace(
|
|
|
26708
27151
|
|
|
26709
27152
|
var buttonVersion$1$1 = '12.3.2';
|
|
26710
27153
|
|
|
26711
|
-
/* eslint-disable no-magic-numbers, no-undef-init, max-lines, lit/binding-positions, lit/no-invalid-html */
|
|
27154
|
+
/* eslint-disable no-magic-numbers, complexity, line-comment-position, no-undef-init, max-lines, line-comment-position, no-underscore-dangle, lit/binding-positions, lit/no-invalid-html, no-inline-comments */
|
|
26712
27155
|
|
|
26713
27156
|
|
|
26714
27157
|
// See https://git.io/JJ6SJ for "How to document your components using JSDoc"
|
|
@@ -26745,6 +27188,20 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
26745
27188
|
this.largeFullscreenHeadline = false;
|
|
26746
27189
|
this.isFullscreen = false;
|
|
26747
27190
|
|
|
27191
|
+
/**
|
|
27192
|
+
* The date of the currently active cell (Unix timestamp).
|
|
27193
|
+
* Only one cell across the entire calendar has tabindex="0" at a time.
|
|
27194
|
+
* @private
|
|
27195
|
+
*/
|
|
27196
|
+
this.activeCellDate = null;
|
|
27197
|
+
|
|
27198
|
+
/**
|
|
27199
|
+
* Whether the #calendarGrid wrapper currently has focus.
|
|
27200
|
+
* Used to determine whether the visualFocus ring should be shown.
|
|
27201
|
+
* @private
|
|
27202
|
+
*/
|
|
27203
|
+
this._gridHasFocus = false;
|
|
27204
|
+
|
|
26748
27205
|
/**
|
|
26749
27206
|
* @private
|
|
26750
27207
|
*/
|
|
@@ -26755,6 +27212,12 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
26755
27212
|
*/
|
|
26756
27213
|
this.calendarRangeMonths = null;
|
|
26757
27214
|
|
|
27215
|
+
/**
|
|
27216
|
+
* Legacy array of disabled-date timestamps.
|
|
27217
|
+
* @private
|
|
27218
|
+
*/
|
|
27219
|
+
this.disabledDays = [];
|
|
27220
|
+
|
|
26758
27221
|
/**
|
|
26759
27222
|
* @private
|
|
26760
27223
|
*/
|
|
@@ -26778,6 +27241,12 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
26778
27241
|
this.buttonTag = versioning.generateTag('auro-formkit-datepicker-button', buttonVersion$1$1, T$1$2);
|
|
26779
27242
|
|
|
26780
27243
|
this.dropdown = undefined;
|
|
27244
|
+
|
|
27245
|
+
/**
|
|
27246
|
+
* Unique instance ID for the live region element.
|
|
27247
|
+
* @private
|
|
27248
|
+
*/
|
|
27249
|
+
this._calendarInstanceId = Date.now().toString(36);
|
|
26781
27250
|
}
|
|
26782
27251
|
|
|
26783
27252
|
static get styles() {
|
|
@@ -26941,19 +27410,79 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
26941
27410
|
/**
|
|
26942
27411
|
* Updates the month and year when the user navigates to the previous calendar month.
|
|
26943
27412
|
* @private
|
|
27413
|
+
* @param {Object} [options] - Optional settings.
|
|
27414
|
+
* @param {boolean} [options.skipActiveUpdate=false] - When true, skip the active cell
|
|
27415
|
+
* recomputation. Used by arrow key handlers that manage the active cell themselves.
|
|
26944
27416
|
* @returns {void}
|
|
26945
27417
|
*/
|
|
26946
|
-
handlePrevMonth() {
|
|
27418
|
+
handlePrevMonth(options) {
|
|
27419
|
+
const opts = options instanceof Event ? {} : options || {};
|
|
27420
|
+
this.clearRangePreview({ force: true });
|
|
26947
27421
|
this.utilCal.handleMonthChange(this, 'prev');
|
|
27422
|
+
if (!opts.skipActiveUpdate) {
|
|
27423
|
+
this.updateActiveCellForVisibleMonth();
|
|
27424
|
+
}
|
|
27425
|
+
this.announceMonthChange();
|
|
26948
27426
|
}
|
|
26949
27427
|
|
|
26950
27428
|
/**
|
|
26951
27429
|
* Updates the month and year when the user navigates to the next calendar month.
|
|
26952
27430
|
* @private
|
|
27431
|
+
* @param {Object} [options] - Optional settings.
|
|
27432
|
+
* @param {boolean} [options.skipActiveUpdate=false] - When true, skip the active cell
|
|
27433
|
+
* recomputation. Used by arrow key handlers that manage the active cell themselves.
|
|
26953
27434
|
* @returns {void}
|
|
26954
27435
|
*/
|
|
26955
|
-
handleNextMonth() {
|
|
27436
|
+
handleNextMonth(options) {
|
|
27437
|
+
const opts = options instanceof Event ? {} : options || {};
|
|
27438
|
+
this.clearRangePreview({ force: true });
|
|
26956
27439
|
this.utilCal.handleMonthChange(this, 'next');
|
|
27440
|
+
if (!opts.skipActiveUpdate) {
|
|
27441
|
+
this.updateActiveCellForVisibleMonth();
|
|
27442
|
+
}
|
|
27443
|
+
this.announceMonthChange();
|
|
27444
|
+
}
|
|
27445
|
+
|
|
27446
|
+
/**
|
|
27447
|
+
* Announces the current month and year via the live region after navigation.
|
|
27448
|
+
* @private
|
|
27449
|
+
* @returns {void}
|
|
27450
|
+
*/
|
|
27451
|
+
announceMonthChange() {
|
|
27452
|
+
// Cancel any pending debounced cell announcement so it does not
|
|
27453
|
+
// overwrite this month navigation announcement.
|
|
27454
|
+
if (this._focusAnnounceTimer) {
|
|
27455
|
+
clearTimeout(this._focusAnnounceTimer);
|
|
27456
|
+
this._focusAnnounceTimer = null;
|
|
27457
|
+
}
|
|
27458
|
+
|
|
27459
|
+
const date = this.centralDateObject;
|
|
27460
|
+
const localeCode = this.locale?.code || undefined;
|
|
27461
|
+
const formatter = new Intl.DateTimeFormat(localeCode, { month: 'long',
|
|
27462
|
+
year: 'numeric' });
|
|
27463
|
+
this.announceSelection(formatter.format(date));
|
|
27464
|
+
}
|
|
27465
|
+
|
|
27466
|
+
/**
|
|
27467
|
+
* Updates the active cell after month navigation (prev/next buttons).
|
|
27468
|
+
* Always moves the active cell to the first enabled date in the newly
|
|
27469
|
+
* visible months so that tabbing back to the grid lands on an enabled cell.
|
|
27470
|
+
* @private
|
|
27471
|
+
* @returns {void}
|
|
27472
|
+
*/
|
|
27473
|
+
updateActiveCellForVisibleMonth() {
|
|
27474
|
+
// Use double-rAF to ensure child month/cell components have fully
|
|
27475
|
+
// rendered and cached their button references before we set tabindex.
|
|
27476
|
+
requestAnimationFrame(() => {
|
|
27477
|
+
requestAnimationFrame(() => {
|
|
27478
|
+
const newDate = this.computeActiveDate({ skipDateFrom: true });
|
|
27479
|
+
|
|
27480
|
+
if (newDate !== null && newDate !== undefined) {
|
|
27481
|
+
this.activeCellDate = newDate;
|
|
27482
|
+
this.setActiveCell(this.activeCellDate);
|
|
27483
|
+
}
|
|
27484
|
+
});
|
|
27485
|
+
});
|
|
26957
27486
|
}
|
|
26958
27487
|
|
|
26959
27488
|
/**
|
|
@@ -27061,7 +27590,1007 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
27061
27590
|
this.utilCal.scrollMonthIntoView(this, date, this.format);
|
|
27062
27591
|
}
|
|
27063
27592
|
|
|
27593
|
+
/**
|
|
27594
|
+
* Gets all rendered month components.
|
|
27595
|
+
* @private
|
|
27596
|
+
* @returns {Array} Array of auro-formkit-calendar-month elements.
|
|
27597
|
+
*/
|
|
27598
|
+
getMonthComponents() {
|
|
27599
|
+
return Array.from(this.shadowRoot.querySelectorAll('auro-formkit-calendar-month'));
|
|
27600
|
+
}
|
|
27601
|
+
|
|
27602
|
+
/**
|
|
27603
|
+
* Gets all focusable cells across all rendered months.
|
|
27604
|
+
* @private
|
|
27605
|
+
* @returns {Array} Array of auro-formkit-calendar-cell elements.
|
|
27606
|
+
*/
|
|
27607
|
+
getAllFocusableCells() {
|
|
27608
|
+
const months = this.getMonthComponents();
|
|
27609
|
+
let cells = [];
|
|
27610
|
+
months.forEach((month) => {
|
|
27611
|
+
cells = cells.concat(month.getFocusableCells());
|
|
27612
|
+
});
|
|
27613
|
+
return cells;
|
|
27614
|
+
}
|
|
27615
|
+
|
|
27616
|
+
/**
|
|
27617
|
+
* Sets the active cell across all months. Only one cell has tabindex="0" at a time.
|
|
27618
|
+
* Uses imperative DOM manipulation — no Lit re-render triggered.
|
|
27619
|
+
* Also updates ariaActiveDescendantElement on the grid wrapper so
|
|
27620
|
+
* screen readers announce the active cell without moving DOM focus.
|
|
27621
|
+
* @param {Number} date - Unix timestamp of the cell to activate.
|
|
27622
|
+
* @returns {void}
|
|
27623
|
+
*/
|
|
27624
|
+
setActiveCell(date) {
|
|
27625
|
+
const allCells = this.getAllFocusableCells();
|
|
27626
|
+
|
|
27627
|
+
let newActiveCell = null;
|
|
27628
|
+
allCells.forEach((cell) => {
|
|
27629
|
+
if (cell.day && cell.day.date === date) {
|
|
27630
|
+
cell.setActive();
|
|
27631
|
+
newActiveCell = cell;
|
|
27632
|
+
} else if (cell.active) {
|
|
27633
|
+
cell.clearActive();
|
|
27634
|
+
}
|
|
27635
|
+
});
|
|
27636
|
+
|
|
27637
|
+
this.activeCellDate = date;
|
|
27638
|
+
|
|
27639
|
+
// Apply activeCell ring only when the grid currently has focus.
|
|
27640
|
+
if (newActiveCell && this._gridHasFocus) {
|
|
27641
|
+
const btn = newActiveCell._cachedButton || newActiveCell.shadowRoot.querySelector('button.day');
|
|
27642
|
+
if (btn) {
|
|
27643
|
+
btn.classList.add('activeCell');
|
|
27644
|
+
}
|
|
27645
|
+
}
|
|
27646
|
+
}
|
|
27647
|
+
|
|
27648
|
+
/**
|
|
27649
|
+
* Focuses the calendar grid wrapper and sets the active cell.
|
|
27650
|
+
* DOM focus stays on the grid wrapper; the aria-live region
|
|
27651
|
+
* tells the screen reader which cell is "active".
|
|
27652
|
+
* @returns {void}
|
|
27653
|
+
*/
|
|
27654
|
+
focusActiveCell() {
|
|
27655
|
+
if (this.activeCellDate !== null && this.activeCellDate !== undefined) {
|
|
27656
|
+
this.setActiveCell(this.activeCellDate);
|
|
27657
|
+
}
|
|
27658
|
+
|
|
27659
|
+
const gridWrapper = this.shadowRoot.querySelector('#calendarGrid');
|
|
27660
|
+
if (gridWrapper) {
|
|
27661
|
+
gridWrapper.focus({ preventScroll: true,
|
|
27662
|
+
focusVisible: true });
|
|
27663
|
+
}
|
|
27664
|
+
}
|
|
27665
|
+
|
|
27666
|
+
/**
|
|
27667
|
+
* Shows the activeCell ring when the grid gains focus.
|
|
27668
|
+
* @private
|
|
27669
|
+
* @returns {void}
|
|
27670
|
+
*/
|
|
27671
|
+
handleGridFocusIn() {
|
|
27672
|
+
this._gridHasFocus = true;
|
|
27673
|
+
const activeCell = this.getAllFocusableCells().find((cell) => cell.active);
|
|
27674
|
+
if (activeCell) {
|
|
27675
|
+
const btn = activeCell._cachedButton || activeCell.shadowRoot.querySelector('button.day');
|
|
27676
|
+
if (btn) {
|
|
27677
|
+
btn.classList.add('activeCell');
|
|
27678
|
+
}
|
|
27679
|
+
}
|
|
27680
|
+
}
|
|
27681
|
+
|
|
27682
|
+
/**
|
|
27683
|
+
* Hides the activeCell ring when the grid loses focus.
|
|
27684
|
+
* @private
|
|
27685
|
+
* @returns {void}
|
|
27686
|
+
*/
|
|
27687
|
+
handleGridFocusOut() {
|
|
27688
|
+
this._gridHasFocus = false;
|
|
27689
|
+
// Remove activeCell from ALL cells to prevent stale rings.
|
|
27690
|
+
const allCells = this.getAllFocusableCells();
|
|
27691
|
+
for (const cell of allCells) {
|
|
27692
|
+
const btn = cell._cachedButton || cell.shadowRoot.querySelector('button.day');
|
|
27693
|
+
if (btn) {
|
|
27694
|
+
btn.classList.remove('activeCell');
|
|
27695
|
+
}
|
|
27696
|
+
}
|
|
27697
|
+
// Clear range hover preview so no highlight lingers after focus leaves the grid.
|
|
27698
|
+
this.clearRangePreview();
|
|
27699
|
+
}
|
|
27700
|
+
|
|
27701
|
+
/**
|
|
27702
|
+
* Computes the initial active date from data properties alone — no DOM required.
|
|
27703
|
+
* Priority:
|
|
27704
|
+
* 1. Selected date (dateFrom) if within range
|
|
27705
|
+
* 2. Today's date if not disabled (in-range and not blackout)
|
|
27706
|
+
* 3. First future non-disabled date (scans day-by-day from today up to 1 year)
|
|
27707
|
+
* 4. First previous non-disabled date (scans day-by-day from today up to 1 year)
|
|
27708
|
+
* 5. First enabled date in finite [min, max] range
|
|
27709
|
+
* 5b. First enabled date scanning forward from finite min (unbounded max)
|
|
27710
|
+
* 5c. First enabled date scanning backward from finite max (unbounded min)
|
|
27711
|
+
* 6. First in-range date (even if blackout) so focus can land somewhere
|
|
27712
|
+
* 7. Undefined — no valid target.
|
|
27713
|
+
*
|
|
27714
|
+
* @private
|
|
27715
|
+
* @param {Object} [options] - Optional settings.
|
|
27716
|
+
* @param {boolean} [options.skipDateFrom=false] - When true, skip the selected-date
|
|
27717
|
+
* shortcut (step 1). Used after month navigation so the active cell lands in the
|
|
27718
|
+
* newly visible month instead of jumping back to the selected date's month.
|
|
27719
|
+
* @returns {Number|undefined} Unix timestamp (seconds) of the date to activate, or undefined.
|
|
27720
|
+
*/
|
|
27721
|
+
computeActiveDate(options = {}) {
|
|
27722
|
+
const MAX_SCAN_DAYS = 366; // scan at most ~1 year in each direction
|
|
27723
|
+
|
|
27724
|
+
/**
|
|
27725
|
+
* Adds days to a timestamp using Date arithmetic to handle DST correctly.
|
|
27726
|
+
* Returns a local-midnight-aligned timestamp in seconds.
|
|
27727
|
+
* @param {Number} ts - Unix timestamp in seconds.
|
|
27728
|
+
* @param {Number} days - Number of days to add.
|
|
27729
|
+
* @returns {Number} The adjusted timestamp in seconds.
|
|
27730
|
+
*/
|
|
27731
|
+
const addDays = (ts, days) => {
|
|
27732
|
+
const date = new Date(ts * 1000);
|
|
27733
|
+
date.setDate(date.getDate() + days);
|
|
27734
|
+
date.setHours(0, 0, 0, 0);
|
|
27735
|
+
return Math.floor(date.getTime() / 1000);
|
|
27736
|
+
};
|
|
27737
|
+
|
|
27738
|
+
const rawMin = this.minDateObject?.getTime() / 1000;
|
|
27739
|
+
const rawMax = this.maxDateObject?.getTime() / 1000;
|
|
27740
|
+
|
|
27741
|
+
// When min/max are NaN (no minDate/maxDate configured), treat as unbounded.
|
|
27742
|
+
const minTs = Number.isFinite(rawMin) ? rawMin : -Infinity;
|
|
27743
|
+
const maxTs = Number.isFinite(rawMax) ? rawMax : Infinity;
|
|
27744
|
+
|
|
27745
|
+
// Build a Set of blackout timestamps for O(1) lookup.
|
|
27746
|
+
const blackoutSet = new Set(this.disabledDays.map((day) => parseInt(day, 10)));
|
|
27747
|
+
|
|
27748
|
+
// Also include ISO-format blackoutDates from the datepicker if available.
|
|
27749
|
+
// Parse YYYY-MM-DD as local date to avoid UTC shift issues.
|
|
27750
|
+
const isoBlackouts = this.datepicker?.blackoutDates;
|
|
27751
|
+
if (Array.isArray(isoBlackouts)) {
|
|
27752
|
+
for (const isoStr of isoBlackouts) {
|
|
27753
|
+
const parts = isoStr.split('-');
|
|
27754
|
+
const ts = Math.floor(new Date(parseInt(parts[0], 10), parseInt(parts[1], 10) - 1, parseInt(parts[2], 10)).getTime() / 1000);
|
|
27755
|
+
if (Number.isFinite(ts)) {
|
|
27756
|
+
blackoutSet.add(ts);
|
|
27757
|
+
}
|
|
27758
|
+
}
|
|
27759
|
+
}
|
|
27760
|
+
|
|
27761
|
+
/**
|
|
27762
|
+
* A date (unix timestamp in seconds, midnight-aligned) is "enabled" when
|
|
27763
|
+
* it is within [min, max] AND not a blackout day.
|
|
27764
|
+
* @param {Number} ts - Unix timestamp in seconds.
|
|
27765
|
+
* @returns {boolean} True if the date is enabled.
|
|
27766
|
+
*/
|
|
27767
|
+
const isEnabled = (ts) => ts >= minTs && ts <= maxTs && !blackoutSet.has(ts);
|
|
27768
|
+
|
|
27769
|
+
/**
|
|
27770
|
+
* A date is "in range" (focusable in the grid) when it is within [min, max].
|
|
27771
|
+
* Blackout dates are focusable but not selectable.
|
|
27772
|
+
* @param {Number} ts - Unix timestamp in seconds.
|
|
27773
|
+
* @returns {boolean} True if the date is in range.
|
|
27774
|
+
*/
|
|
27775
|
+
const isInRange = (ts) => ts >= minTs && ts <= maxTs;
|
|
27776
|
+
|
|
27777
|
+
// 1. Selected date — always valid target if within range (user chose it).
|
|
27778
|
+
// Skipped when called from month navigation so the active cell lands in
|
|
27779
|
+
// the newly visible month rather than the (possibly off-screen) selection.
|
|
27780
|
+
if (!options.skipDateFrom && this.dateFrom) {
|
|
27781
|
+
const parsedFrom = parseInt(this.dateFrom, 10);
|
|
27782
|
+
if (Number.isFinite(parsedFrom) && isInRange(parsedFrom)) {
|
|
27783
|
+
return parsedFrom;
|
|
27784
|
+
}
|
|
27785
|
+
}
|
|
27786
|
+
|
|
27787
|
+
// 2. Today's date (midnight-aligned) if enabled.
|
|
27788
|
+
const now = Math.floor(new Date().setHours(0, 0, 0, 0) / 1000);
|
|
27789
|
+
|
|
27790
|
+
// When centralDate is configured, prefer a date within the month(s) that
|
|
27791
|
+
// will actually be rendered. If today falls outside the visible range, an
|
|
27792
|
+
// active cell set to today would have no matching DOM element and keyboard
|
|
27793
|
+
// focus could not enter the calendar.
|
|
27794
|
+
|
|
27795
|
+
if (this.centralDateObject) {
|
|
27796
|
+
const centralMonth = this.centralDateObject.getMonth();
|
|
27797
|
+
const centralYear = this.centralDateObject.getFullYear();
|
|
27798
|
+
const todayDate = new Date(now * 1000);
|
|
27799
|
+
const todayMonth = todayDate.getMonth();
|
|
27800
|
+
const todayYear = todayDate.getFullYear();
|
|
27801
|
+
|
|
27802
|
+
// Today is outside the centralDate's month — scan for an enabled date
|
|
27803
|
+
// within the visible month instead.
|
|
27804
|
+
if (todayMonth !== centralMonth || todayYear !== centralYear) {
|
|
27805
|
+
const visibleStart = new Date(centralYear, centralMonth, 1);
|
|
27806
|
+
visibleStart.setHours(0, 0, 0, 0);
|
|
27807
|
+
const visibleEnd = new Date(centralYear, centralMonth + 1, 0); // last day of month
|
|
27808
|
+
visibleEnd.setHours(0, 0, 0, 0);
|
|
27809
|
+
const startTs = Math.floor(visibleStart.getTime() / 1000);
|
|
27810
|
+
const daysInMonth = visibleEnd.getDate();
|
|
27811
|
+
|
|
27812
|
+
for (let idx = 0; idx < daysInMonth; idx += 1) {
|
|
27813
|
+
const ts = addDays(startTs, idx);
|
|
27814
|
+
if (isEnabled(ts)) {
|
|
27815
|
+
return ts;
|
|
27816
|
+
}
|
|
27817
|
+
}
|
|
27818
|
+
|
|
27819
|
+
// No enabled date in the visible month — fall back to first in-range
|
|
27820
|
+
// date in the month so focus still lands on a focusable cell.
|
|
27821
|
+
for (let idx = 0; idx < daysInMonth; idx += 1) {
|
|
27822
|
+
const ts = addDays(startTs, idx);
|
|
27823
|
+
if (isInRange(ts)) {
|
|
27824
|
+
return ts;
|
|
27825
|
+
}
|
|
27826
|
+
}
|
|
27827
|
+
}
|
|
27828
|
+
}
|
|
27829
|
+
|
|
27830
|
+
if (isEnabled(now)) {
|
|
27831
|
+
return now;
|
|
27832
|
+
}
|
|
27833
|
+
|
|
27834
|
+
// When a centralDate is configured (or inferred), constrain the scan to the
|
|
27835
|
+
// rendered month(s) first so a single-month calendar does not pick a date
|
|
27836
|
+
// that has no DOM cell. Determine the visible range based on centralDate and
|
|
27837
|
+
// the number of rendered months.
|
|
27838
|
+
const renderedMonths = Math.max(this.numCalendars, 1);
|
|
27839
|
+
const visibleAnchor = this.centralDateObject ?? new Date(now * 1000);
|
|
27840
|
+
const visMonthStart = new Date(visibleAnchor.getFullYear(), visibleAnchor.getMonth(), 1);
|
|
27841
|
+
visMonthStart.setHours(0, 0, 0, 0);
|
|
27842
|
+
const visMonthEnd = new Date(visibleAnchor.getFullYear(), visibleAnchor.getMonth() + renderedMonths, 0);
|
|
27843
|
+
visMonthEnd.setHours(0, 0, 0, 0);
|
|
27844
|
+
const visStartTs = Math.floor(visMonthStart.getTime() / 1000);
|
|
27845
|
+
const visEndTs = Math.floor(visMonthEnd.getTime() / 1000);
|
|
27846
|
+
const visDays = Math.round((visEndTs - visStartTs) / 86400) + 1;
|
|
27847
|
+
|
|
27848
|
+
// Scan visible months for an enabled date.
|
|
27849
|
+
for (let idx = 0; idx < visDays; idx += 1) {
|
|
27850
|
+
const ts = addDays(visStartTs, idx);
|
|
27851
|
+
if (isEnabled(ts)) {
|
|
27852
|
+
return ts;
|
|
27853
|
+
}
|
|
27854
|
+
}
|
|
27855
|
+
|
|
27856
|
+
// No enabled date in visible months — try an in-range (focusable) date so
|
|
27857
|
+
// keyboard focus still has a tabindex="0" target.
|
|
27858
|
+
for (let idx = 0; idx < visDays; idx += 1) {
|
|
27859
|
+
const ts = addDays(visStartTs, idx);
|
|
27860
|
+
if (isInRange(ts)) {
|
|
27861
|
+
return ts;
|
|
27862
|
+
}
|
|
27863
|
+
}
|
|
27864
|
+
|
|
27865
|
+
// 3. First future enabled date (scan forward from tomorrow, capped by max and MAX_SCAN_DAYS).
|
|
27866
|
+
for (let idx = 1; idx <= MAX_SCAN_DAYS; idx += 1) {
|
|
27867
|
+
const ts = addDays(now, idx);
|
|
27868
|
+
if (Number.isFinite(maxTs) && ts > maxTs) {
|
|
27869
|
+
break;
|
|
27870
|
+
}
|
|
27871
|
+
if (isEnabled(ts)) {
|
|
27872
|
+
return ts;
|
|
27873
|
+
}
|
|
27874
|
+
}
|
|
27875
|
+
|
|
27876
|
+
// 4. First previous enabled date (scan backward from yesterday, capped by min and MAX_SCAN_DAYS).
|
|
27877
|
+
for (let idx = 1; idx <= MAX_SCAN_DAYS; idx += 1) {
|
|
27878
|
+
const ts = addDays(now, -idx);
|
|
27879
|
+
if (Number.isFinite(minTs) && ts < minTs) {
|
|
27880
|
+
break;
|
|
27881
|
+
}
|
|
27882
|
+
if (isEnabled(ts)) {
|
|
27883
|
+
return ts;
|
|
27884
|
+
}
|
|
27885
|
+
}
|
|
27886
|
+
|
|
27887
|
+
// 5. If scans missed (e.g. min/max range is far from today), fall back to
|
|
27888
|
+
// the first enabled date in the [min, max] range.
|
|
27889
|
+
if (Number.isFinite(minTs) && Number.isFinite(maxTs)) {
|
|
27890
|
+
let ts = minTs;
|
|
27891
|
+
for (let idx = 0; ts <= maxTs; idx += 1) {
|
|
27892
|
+
if (isEnabled(ts)) {
|
|
27893
|
+
return ts;
|
|
27894
|
+
}
|
|
27895
|
+
ts = addDays(minTs, idx + 1);
|
|
27896
|
+
}
|
|
27897
|
+
}
|
|
27898
|
+
|
|
27899
|
+
// 5b. Finite min with unbounded max (e.g. minDate far in the future):
|
|
27900
|
+
// scan forward from min for up to MAX_SCAN_DAYS.
|
|
27901
|
+
if (Number.isFinite(minTs) && !Number.isFinite(maxTs)) {
|
|
27902
|
+
for (let idx = 0; idx <= MAX_SCAN_DAYS; idx += 1) {
|
|
27903
|
+
const ts = addDays(minTs, idx);
|
|
27904
|
+
if (isEnabled(ts)) {
|
|
27905
|
+
return ts;
|
|
27906
|
+
}
|
|
27907
|
+
}
|
|
27908
|
+
}
|
|
27909
|
+
|
|
27910
|
+
// 5c. Unbounded min with a finite max far in the past (e.g. birth-date picker):
|
|
27911
|
+
// scan backward from max for up to MAX_SCAN_DAYS.
|
|
27912
|
+
if (!Number.isFinite(minTs) && Number.isFinite(maxTs)) {
|
|
27913
|
+
for (let idx = 0; idx <= MAX_SCAN_DAYS; idx += 1) {
|
|
27914
|
+
const ts = addDays(maxTs, -idx);
|
|
27915
|
+
if (isEnabled(ts)) {
|
|
27916
|
+
return ts;
|
|
27917
|
+
}
|
|
27918
|
+
}
|
|
27919
|
+
}
|
|
27920
|
+
|
|
27921
|
+
// 6. All dates are blackout — fall back to the first in-range date so focus
|
|
27922
|
+
// still lands on a focusable (but not selectable) cell.
|
|
27923
|
+
if (Number.isFinite(minTs) && isInRange(minTs)) {
|
|
27924
|
+
return minTs;
|
|
27925
|
+
}
|
|
27926
|
+
if (isInRange(now)) {
|
|
27927
|
+
return now;
|
|
27928
|
+
}
|
|
27929
|
+
|
|
27930
|
+
return undefined;
|
|
27931
|
+
}
|
|
27932
|
+
|
|
27933
|
+
/**
|
|
27934
|
+
* Checks if a target date (unix seconds) is within the configured [min, max] range.
|
|
27935
|
+
* Returns false if the date falls outside the range, preventing navigation
|
|
27936
|
+
* to months where all dates are disabled.
|
|
27937
|
+
* @private
|
|
27938
|
+
* @param {Number} targetTs - Unix timestamp in seconds.
|
|
27939
|
+
* @returns {Boolean} True if the date is within range.
|
|
27940
|
+
*/
|
|
27941
|
+
isDateInRange(targetTs) {
|
|
27942
|
+
const rawMin = this.minDateObject?.getTime() / 1000;
|
|
27943
|
+
const rawMax = this.maxDateObject?.getTime() / 1000;
|
|
27944
|
+
if (Number.isFinite(rawMin) && targetTs < rawMin) {
|
|
27945
|
+
return false;
|
|
27946
|
+
}
|
|
27947
|
+
if (Number.isFinite(rawMax) && targetTs > rawMax) {
|
|
27948
|
+
return false;
|
|
27949
|
+
}
|
|
27950
|
+
return true;
|
|
27951
|
+
}
|
|
27952
|
+
|
|
27953
|
+
/**
|
|
27954
|
+
* Handles arrow key navigation on the calendar grid wrapper.
|
|
27955
|
+
* Focus stays on the grid wrapper; only ariaActiveDescendantElement
|
|
27956
|
+
* and the visual active-cell indicator change.
|
|
27957
|
+
* @private
|
|
27958
|
+
* @param {KeyboardEvent} event - The keyboard event.
|
|
27959
|
+
* @returns {void}
|
|
27960
|
+
*/
|
|
27961
|
+
handleGridKeyDown(event) {
|
|
27962
|
+
const { key } = event;
|
|
27963
|
+
const actionKeys = [
|
|
27964
|
+
'ArrowRight',
|
|
27965
|
+
'ArrowLeft',
|
|
27966
|
+
'ArrowDown',
|
|
27967
|
+
'ArrowUp',
|
|
27968
|
+
'Enter',
|
|
27969
|
+
' '
|
|
27970
|
+
];
|
|
27971
|
+
|
|
27972
|
+
if (!actionKeys.includes(key)) {
|
|
27973
|
+
return;
|
|
27974
|
+
}
|
|
27975
|
+
|
|
27976
|
+
event.preventDefault();
|
|
27977
|
+
|
|
27978
|
+
const allCells = this.getAllFocusableCells();
|
|
27979
|
+
if (allCells.length === 0) {
|
|
27980
|
+
return;
|
|
27981
|
+
}
|
|
27982
|
+
|
|
27983
|
+
const activeCell = allCells.find((cell) => cell.active);
|
|
27984
|
+
if (!activeCell) {
|
|
27985
|
+
return;
|
|
27986
|
+
}
|
|
27987
|
+
|
|
27988
|
+
// Handle Enter/Space to select the active cell
|
|
27989
|
+
if (key === 'Enter' || key === ' ') {
|
|
27990
|
+
activeCell.handleTap();
|
|
27991
|
+
return;
|
|
27992
|
+
}
|
|
27993
|
+
|
|
27994
|
+
const activeIndex = allCells.indexOf(activeCell);
|
|
27995
|
+
|
|
27996
|
+
if (key === 'ArrowRight' || key === 'ArrowLeft') {
|
|
27997
|
+
const direction = key === 'ArrowRight' ? 1 : -1;
|
|
27998
|
+
const targetIndex = activeIndex + direction;
|
|
27999
|
+
|
|
28000
|
+
if (targetIndex >= 0 && targetIndex < allCells.length) {
|
|
28001
|
+
// Target cell exists in rendered months
|
|
28002
|
+
this.setActiveCell(allCells[targetIndex].day.date);
|
|
28003
|
+
this.scrollToActiveCell();
|
|
28004
|
+
// Dispatch focus event for the cell so live region + range preview update
|
|
28005
|
+
this.handleCellFocused({ detail: { date: allCells[targetIndex].day.date } });
|
|
28006
|
+
} else {
|
|
28007
|
+
// At boundary — need to navigate to next/prev month
|
|
28008
|
+
const navDir = direction === 1 ? 'next' : 'prev';
|
|
28009
|
+
const targetDate = new Date(activeCell.day.date * 1000);
|
|
28010
|
+
targetDate.setDate(targetDate.getDate() + direction);
|
|
28011
|
+
targetDate.setHours(0, 0, 0, 0);
|
|
28012
|
+
const targetTs = Math.floor(targetDate.getTime() / 1000);
|
|
28013
|
+
|
|
28014
|
+
if (this.isDateInRange(targetTs) && ((navDir === 'next' && this.showNextMonthBtn) || (navDir === 'prev' && this.showPrevMonthBtn))) { // eslint-disable-line no-extra-parens
|
|
28015
|
+
|
|
28016
|
+
if (navDir === 'next') {
|
|
28017
|
+
this.handleNextMonth({ skipActiveUpdate: true });
|
|
28018
|
+
} else {
|
|
28019
|
+
this.handlePrevMonth({ skipActiveUpdate: true });
|
|
28020
|
+
}
|
|
28021
|
+
requestAnimationFrame(() => {
|
|
28022
|
+
requestAnimationFrame(() => {
|
|
28023
|
+
const cells = this.getAllFocusableCells();
|
|
28024
|
+
const target = cells.find((cell) => cell.day && cell.day.date === targetTs);
|
|
28025
|
+
if (target) {
|
|
28026
|
+
this.setActiveCell(target.day.date);
|
|
28027
|
+
this.handleCellFocused({ detail: { date: target.day.date } });
|
|
28028
|
+
} else if (cells.length > 0) {
|
|
28029
|
+
const fallback = navDir === 'next' ? cells[cells.length - 1] : cells[0];
|
|
28030
|
+
this.setActiveCell(fallback.day.date);
|
|
28031
|
+
this.handleCellFocused({ detail: { date: fallback.day.date } });
|
|
28032
|
+
}
|
|
28033
|
+
// Re-focus grid wrapper after month change re-render
|
|
28034
|
+
this.focusActiveCell();
|
|
28035
|
+
});
|
|
28036
|
+
});
|
|
28037
|
+
}
|
|
28038
|
+
}
|
|
28039
|
+
} else if (key === 'ArrowDown' || key === 'ArrowUp') {
|
|
28040
|
+
const increment = key === 'ArrowDown' ? 7 : -7;
|
|
28041
|
+
const currentDate = new Date(activeCell.day.date * 1000);
|
|
28042
|
+
currentDate.setDate(currentDate.getDate() + increment);
|
|
28043
|
+
currentDate.setHours(0, 0, 0, 0);
|
|
28044
|
+
const targetDate = Math.floor(currentDate.getTime() / 1000);
|
|
28045
|
+
|
|
28046
|
+
const targetCell = allCells.find((cell) => cell.day && cell.day.date === targetDate);
|
|
28047
|
+
|
|
28048
|
+
if (targetCell) {
|
|
28049
|
+
this.setActiveCell(targetCell.day.date);
|
|
28050
|
+
this.scrollToActiveCell();
|
|
28051
|
+
this.handleCellFocused({ detail: { date: targetCell.day.date } });
|
|
28052
|
+
} else if (this.isDateInRange(targetDate)) {
|
|
28053
|
+
// Target might be in an unrendered month
|
|
28054
|
+
const navDirection = key === 'ArrowDown' ? 'next' : 'prev';
|
|
28055
|
+
if ((navDirection === 'next' && this.showNextMonthBtn) || (navDirection === 'prev' && this.showPrevMonthBtn)) { // eslint-disable-line no-extra-parens
|
|
28056
|
+
if (navDirection === 'next') {
|
|
28057
|
+
this.handleNextMonth({ skipActiveUpdate: true });
|
|
28058
|
+
} else {
|
|
28059
|
+
this.handlePrevMonth({ skipActiveUpdate: true });
|
|
28060
|
+
}
|
|
28061
|
+
requestAnimationFrame(() => {
|
|
28062
|
+
requestAnimationFrame(() => {
|
|
28063
|
+
const cells = this.getAllFocusableCells();
|
|
28064
|
+
const target = cells.find((cell) => cell.day && cell.day.date === targetDate);
|
|
28065
|
+
if (target) {
|
|
28066
|
+
this.setActiveCell(target.day.date);
|
|
28067
|
+
this.handleCellFocused({ detail: { date: target.day.date } });
|
|
28068
|
+
} else if (cells.length > 0) {
|
|
28069
|
+
let nearest = null;
|
|
28070
|
+
|
|
28071
|
+
if (navDirection === 'next') {
|
|
28072
|
+
[nearest] = cells;
|
|
28073
|
+
} else {
|
|
28074
|
+
nearest = cells[cells.length - 1];
|
|
28075
|
+
}
|
|
28076
|
+
this.setActiveCell(nearest.day.date);
|
|
28077
|
+
this.handleCellFocused({ detail: { date: nearest.day.date } });
|
|
28078
|
+
}
|
|
28079
|
+
this.focusActiveCell();
|
|
28080
|
+
});
|
|
28081
|
+
});
|
|
28082
|
+
}
|
|
28083
|
+
}
|
|
28084
|
+
}
|
|
28085
|
+
}
|
|
28086
|
+
|
|
28087
|
+
/**
|
|
28088
|
+
* Handles cross-month boundary navigation events from month components.
|
|
28089
|
+
* @private
|
|
28090
|
+
* @param {CustomEvent} event - The boundary event with direction and source date info.
|
|
28091
|
+
* @returns {void}
|
|
28092
|
+
*/
|
|
28093
|
+
handleMonthBoundary(event) {
|
|
28094
|
+
const { direction, fromDate, key } = event.detail;
|
|
28095
|
+
|
|
28096
|
+
if (key === 'ArrowRight' || key === 'ArrowLeft') {
|
|
28097
|
+
// Linear navigation: find adjacent focusable cell across months
|
|
28098
|
+
const allCells = this.getAllFocusableCells();
|
|
28099
|
+
const currentIndex = allCells.findIndex((cell) => cell.day && cell.day.date === fromDate);
|
|
28100
|
+
|
|
28101
|
+
if (currentIndex === -1) {
|
|
28102
|
+
return;
|
|
28103
|
+
}
|
|
28104
|
+
|
|
28105
|
+
let targetIndex = -1;
|
|
28106
|
+
if (direction === 'next') {
|
|
28107
|
+
targetIndex = currentIndex + 1;
|
|
28108
|
+
}
|
|
28109
|
+
|
|
28110
|
+
if (targetIndex >= 0 && targetIndex < allCells.length) {
|
|
28111
|
+
const targetCell = allCells[targetIndex];
|
|
28112
|
+
this.setActiveCell(targetCell.day.date);
|
|
28113
|
+
this.scrollToActiveCell();
|
|
28114
|
+
this.focusActiveCell();
|
|
28115
|
+
} else if (direction === 'next' && this.showNextMonthBtn) {
|
|
28116
|
+
// Navigate to next month and focus the computed next date.
|
|
28117
|
+
// Using the target date (fromDate + 1 day) instead of cells[0]
|
|
28118
|
+
// avoids jumping backward in range datepickers where cells[0]
|
|
28119
|
+
// belongs to the previous (still-rendered) month.
|
|
28120
|
+
const nextDate = new Date(fromDate * 1000);
|
|
28121
|
+
nextDate.setDate(nextDate.getDate() + 1);
|
|
28122
|
+
nextDate.setHours(0, 0, 0, 0);
|
|
28123
|
+
const nextTs = Math.floor(nextDate.getTime() / 1000);
|
|
28124
|
+
|
|
28125
|
+
if (!this.isDateInRange(nextTs)) {
|
|
28126
|
+
return;
|
|
28127
|
+
}
|
|
28128
|
+
|
|
28129
|
+
this.handleNextMonth({ skipActiveUpdate: true });
|
|
28130
|
+
requestAnimationFrame(() => {
|
|
28131
|
+
requestAnimationFrame(() => {
|
|
28132
|
+
const cells = this.getAllFocusableCells();
|
|
28133
|
+
const target = cells.find((cell) => cell.day && cell.day.date === nextTs);
|
|
28134
|
+
if (target) {
|
|
28135
|
+
this.setActiveCell(target.day.date);
|
|
28136
|
+
this.focusActiveCell();
|
|
28137
|
+
} else if (cells.length > 0) {
|
|
28138
|
+
// Fallback: first cell of the last rendered month
|
|
28139
|
+
this.setActiveCell(cells[cells.length - 1].day.date);
|
|
28140
|
+
this.focusActiveCell();
|
|
28141
|
+
}
|
|
28142
|
+
});
|
|
28143
|
+
});
|
|
28144
|
+
} else if (direction === 'prev' && this.showPrevMonthBtn) {
|
|
28145
|
+
// Navigate to previous month and focus the computed previous date.
|
|
28146
|
+
const prevDate = new Date(fromDate * 1000);
|
|
28147
|
+
prevDate.setDate(prevDate.getDate() - 1);
|
|
28148
|
+
prevDate.setHours(0, 0, 0, 0);
|
|
28149
|
+
const prevTs = Math.floor(prevDate.getTime() / 1000);
|
|
28150
|
+
|
|
28151
|
+
if (!this.isDateInRange(prevTs)) {
|
|
28152
|
+
return;
|
|
28153
|
+
}
|
|
28154
|
+
|
|
28155
|
+
this.handlePrevMonth({ skipActiveUpdate: true });
|
|
28156
|
+
requestAnimationFrame(() => {
|
|
28157
|
+
requestAnimationFrame(() => {
|
|
28158
|
+
const cells = this.getAllFocusableCells();
|
|
28159
|
+
const target = cells.find((cell) => cell.day && cell.day.date === prevTs);
|
|
28160
|
+
if (target) {
|
|
28161
|
+
this.setActiveCell(target.day.date);
|
|
28162
|
+
this.focusActiveCell();
|
|
28163
|
+
} else if (cells.length > 0) {
|
|
28164
|
+
// Fallback: last cell of the first rendered month
|
|
28165
|
+
this.setActiveCell(cells[0].day.date);
|
|
28166
|
+
this.focusActiveCell();
|
|
28167
|
+
}
|
|
28168
|
+
});
|
|
28169
|
+
});
|
|
28170
|
+
}
|
|
28171
|
+
} else if (key === 'ArrowDown' || key === 'ArrowUp') {
|
|
28172
|
+
// Vertical navigation: find same day-of-week +/- 7 days
|
|
28173
|
+
// Use Date arithmetic instead of fixed seconds to handle DST correctly
|
|
28174
|
+
const increment = key === 'ArrowDown' ? 7 : -7;
|
|
28175
|
+
const currentDate = new Date(fromDate * 1000);
|
|
28176
|
+
currentDate.setDate(currentDate.getDate() + increment);
|
|
28177
|
+
currentDate.setHours(0, 0, 0, 0);
|
|
28178
|
+
const targetDate = Math.floor(currentDate.getTime() / 1000);
|
|
28179
|
+
|
|
28180
|
+
const allCells = this.getAllFocusableCells();
|
|
28181
|
+
const targetCell = allCells.find((cell) => cell.day && cell.day.date === targetDate);
|
|
28182
|
+
|
|
28183
|
+
if (targetCell) {
|
|
28184
|
+
this.setActiveCell(targetCell.day.date);
|
|
28185
|
+
this.scrollToActiveCell();
|
|
28186
|
+
this.focusActiveCell();
|
|
28187
|
+
} else if (this.isDateInRange(targetDate)) {
|
|
28188
|
+
// Target might be in an unrendered month, navigate there
|
|
28189
|
+
const navDirection = key === 'ArrowDown' ? 'next' : 'prev';
|
|
28190
|
+
if ((navDirection === 'next' && this.showNextMonthBtn) || (navDirection === 'prev' && this.showPrevMonthBtn)) { // eslint-disable-line no-extra-parens
|
|
28191
|
+
if (navDirection === 'next') {
|
|
28192
|
+
this.handleNextMonth({ skipActiveUpdate: true });
|
|
28193
|
+
} else {
|
|
28194
|
+
this.handlePrevMonth({ skipActiveUpdate: true });
|
|
28195
|
+
}
|
|
28196
|
+
requestAnimationFrame(() => {
|
|
28197
|
+
requestAnimationFrame(() => {
|
|
28198
|
+
const cells = this.getAllFocusableCells();
|
|
28199
|
+
const target = cells.find((cell) => cell.day && cell.day.date === targetDate);
|
|
28200
|
+
if (target) {
|
|
28201
|
+
this.setActiveCell(target.day.date);
|
|
28202
|
+
this.focusActiveCell();
|
|
28203
|
+
} else if (cells.length > 0) {
|
|
28204
|
+
// Clamp to nearest focusable cell
|
|
28205
|
+
const nearest = navDirection === 'next' ? cells[0] : cells[cells.length - 1];
|
|
28206
|
+
this.setActiveCell(nearest.day.date);
|
|
28207
|
+
this.focusActiveCell();
|
|
28208
|
+
}
|
|
28209
|
+
});
|
|
28210
|
+
});
|
|
28211
|
+
}
|
|
28212
|
+
}
|
|
28213
|
+
}
|
|
28214
|
+
}
|
|
28215
|
+
|
|
28216
|
+
/**
|
|
28217
|
+
* Handles cell activation events from month components.
|
|
28218
|
+
* @private
|
|
28219
|
+
* @param {CustomEvent} event - The activation event with target date.
|
|
28220
|
+
* @returns {void}
|
|
28221
|
+
*/
|
|
28222
|
+
handleCellActivate(event) {
|
|
28223
|
+
const { date } = event.detail;
|
|
28224
|
+
this.setActiveCell(date);
|
|
28225
|
+
|
|
28226
|
+
// Don't call focusActiveCell() here. The tap/click already placed
|
|
28227
|
+
// focus on the cell button, and moving it to #calendarGrid would
|
|
28228
|
+
// trigger focusout on the button, closing any open popover on the
|
|
28229
|
+
// cell. Keyboard events are composed and still bubble through
|
|
28230
|
+
// shadow DOM boundaries to the grid's @keydown handler, so
|
|
28231
|
+
// subsequent keyboard navigation continues to work.
|
|
28232
|
+
}
|
|
28233
|
+
|
|
28234
|
+
/**
|
|
28235
|
+
* Handles focus events from calendar cells.
|
|
28236
|
+
* Updates the live region with an SR announcement and triggers
|
|
28237
|
+
* the imperative range preview if applicable.
|
|
28238
|
+
* @private
|
|
28239
|
+
* @param {CustomEvent} event - The calendar-cell-focused event.
|
|
28240
|
+
* @returns {void}
|
|
28241
|
+
*/
|
|
28242
|
+
handleCellFocused(event) {
|
|
28243
|
+
const { date } = event.detail;
|
|
28244
|
+
if (date === null) {
|
|
28245
|
+
return;
|
|
28246
|
+
}
|
|
28247
|
+
|
|
28248
|
+
// With aria-activedescendant, the button no longer receives native focus,
|
|
28249
|
+
// so we use the debounced live region for the full context announcement.
|
|
28250
|
+
const announcement = this.buildFocusAnnouncement(date);
|
|
28251
|
+
this.announceFocusDebounced(announcement);
|
|
28252
|
+
|
|
28253
|
+
// Update the range preview imperatively if in range-preview mode.
|
|
28254
|
+
this.updateRangePreview(date);
|
|
28255
|
+
}
|
|
28256
|
+
|
|
28257
|
+
/**
|
|
28258
|
+
* Builds a full SR announcement string for a focused cell date.
|
|
28259
|
+
* Includes the localized date, range position, popover content,
|
|
28260
|
+
* and blackout status.
|
|
28261
|
+
* @private
|
|
28262
|
+
* @param {Number} date - Unix timestamp (seconds) of the focused cell.
|
|
28263
|
+
* @returns {String} The announcement string.
|
|
28264
|
+
*/
|
|
28265
|
+
buildFocusAnnouncement(date) {
|
|
28266
|
+
let label = this.formatAnnouncementDate(date);
|
|
28267
|
+
|
|
28268
|
+
// Append date slot content (e.g. prices) if present.
|
|
28269
|
+
const dateObj = new Date(date * 1000);
|
|
28270
|
+
const mm = String(dateObj.getMonth() + 1).padStart(2, '0');
|
|
28271
|
+
const dd = String(dateObj.getDate()).padStart(2, '0');
|
|
28272
|
+
const yyyy = dateObj.getFullYear();
|
|
28273
|
+
const dateStr = `${mm}_${dd}_${yyyy}`;
|
|
28274
|
+
const dateSlotEl = this.datepicker?.querySelector(`[slot="date_${dateStr}"]`);
|
|
28275
|
+
if (dateSlotEl) {
|
|
28276
|
+
const text = dateSlotEl.innerText?.trim();
|
|
28277
|
+
if (text) {
|
|
28278
|
+
label += `, ${text}`;
|
|
28279
|
+
}
|
|
28280
|
+
}
|
|
28281
|
+
|
|
28282
|
+
// Append popover content if present.
|
|
28283
|
+
const popoverEl = this.datepicker?.querySelector(`[slot="popover_${dateStr}"]`);
|
|
28284
|
+
if (popoverEl) {
|
|
28285
|
+
const text = popoverEl.innerText?.trim();
|
|
28286
|
+
if (text) {
|
|
28287
|
+
label += `, ${text}`;
|
|
28288
|
+
}
|
|
28289
|
+
}
|
|
28290
|
+
|
|
28291
|
+
// Append range position context.
|
|
28292
|
+
if (this.datepicker?.hasAttribute('range')) {
|
|
28293
|
+
const rangeLabel = this.getRangePositionLabel(date);
|
|
28294
|
+
if (rangeLabel) {
|
|
28295
|
+
label += `, ${rangeLabel}`;
|
|
28296
|
+
}
|
|
28297
|
+
}
|
|
28298
|
+
|
|
28299
|
+
// Append blackout label.
|
|
28300
|
+
if (this.isDateBlackout(date)) {
|
|
28301
|
+
label += `, ${this.datepicker?.blackoutLabel || 'unavailable'}`;
|
|
28302
|
+
}
|
|
28303
|
+
|
|
28304
|
+
return label;
|
|
28305
|
+
}
|
|
28306
|
+
|
|
28307
|
+
/**
|
|
28308
|
+
* Determines the range position label for a given date.
|
|
28309
|
+
* @private
|
|
28310
|
+
* @param {Number} date - Unix timestamp (seconds).
|
|
28311
|
+
* @returns {String|null} The range position label, or null.
|
|
28312
|
+
*/
|
|
28313
|
+
getRangePositionLabel(date) {
|
|
28314
|
+
const parsedFrom = Number.parseInt(this.dateFrom, 10);
|
|
28315
|
+
if (!Number.isFinite(parsedFrom)) {
|
|
28316
|
+
return null;
|
|
28317
|
+
}
|
|
28318
|
+
|
|
28319
|
+
const departTs = startOfDay$2(parsedFrom * 1000) / 1000;
|
|
28320
|
+
const parsedTo = Number.parseInt(this.dateTo, 10);
|
|
28321
|
+
const hasTo = Number.isFinite(parsedTo);
|
|
28322
|
+
const returnTs = hasTo ? startOfDay$2(parsedTo * 1000) / 1000 : null;
|
|
28323
|
+
|
|
28324
|
+
if (date === departTs) {
|
|
28325
|
+
return this.datepicker.rangeLabelStart || 'range start';
|
|
28326
|
+
}
|
|
28327
|
+
if (hasTo && date === returnTs) {
|
|
28328
|
+
return this.datepicker.rangeLabelEnd || 'range end';
|
|
28329
|
+
}
|
|
28330
|
+
if (date < departTs) {
|
|
28331
|
+
return this.datepicker.rangeLabelBeforeRange || 'before range';
|
|
28332
|
+
}
|
|
28333
|
+
if (hasTo && date > departTs && date < returnTs) {
|
|
28334
|
+
return this.datepicker.rangeLabelInRange || 'in range';
|
|
28335
|
+
}
|
|
28336
|
+
return this.datepicker.rangeLabelAfterRange || 'after range';
|
|
28337
|
+
}
|
|
28338
|
+
|
|
28339
|
+
/**
|
|
28340
|
+
* Checks whether a given date is a blackout date.
|
|
28341
|
+
* @private
|
|
28342
|
+
* @param {Number} dateTs - Unix timestamp (seconds).
|
|
28343
|
+
* @returns {Boolean} True if the date is blacked out.
|
|
28344
|
+
*/
|
|
28345
|
+
isDateBlackout(dateTs) {
|
|
28346
|
+
// Check legacy disabledDays.
|
|
28347
|
+
if (Array.isArray(this.disabledDays) && this.disabledDays.length > 0) {
|
|
28348
|
+
if (this.disabledDays.findIndex((day) => parseInt(day, 10) === dateTs) !== -1) {
|
|
28349
|
+
return true;
|
|
28350
|
+
}
|
|
28351
|
+
}
|
|
28352
|
+
|
|
28353
|
+
// Check ISO blackoutDates.
|
|
28354
|
+
const blackoutDates = this.datepicker?.blackoutDates;
|
|
28355
|
+
if (Array.isArray(blackoutDates) && blackoutDates.length > 0) {
|
|
28356
|
+
const date = new Date(dateTs * 1000);
|
|
28357
|
+
const yyyy = date.getFullYear();
|
|
28358
|
+
const mm = String(date.getMonth() + 1).padStart(2, '0');
|
|
28359
|
+
const dd = String(date.getDate()).padStart(2, '0');
|
|
28360
|
+
if (blackoutDates.includes(`${yyyy}-${mm}-${dd}`)) {
|
|
28361
|
+
return true;
|
|
28362
|
+
}
|
|
28363
|
+
}
|
|
28364
|
+
|
|
28365
|
+
return false;
|
|
28366
|
+
}
|
|
28367
|
+
|
|
28368
|
+
/**
|
|
28369
|
+
* Updates the range preview classes imperatively across all cells.
|
|
28370
|
+
* Only active when in range mode with dateFrom set and dateTo not yet set.
|
|
28371
|
+
* @private
|
|
28372
|
+
* @param {Number} hoveredDate - Unix timestamp of the hovered/focused date.
|
|
28373
|
+
* @returns {void}
|
|
28374
|
+
*/
|
|
28375
|
+
updateRangePreview(hoveredDate) {
|
|
28376
|
+
if (this.noRange || !this.dateFrom || this.dateTo) {
|
|
28377
|
+
return;
|
|
28378
|
+
}
|
|
28379
|
+
|
|
28380
|
+
const parsedDateFrom = parseInt(this.dateFrom, 10);
|
|
28381
|
+
const allCells = this.getAllFocusableCells();
|
|
28382
|
+
|
|
28383
|
+
allCells.forEach((cell) => {
|
|
28384
|
+
cell.updateRangePreviewClasses(hoveredDate, parsedDateFrom);
|
|
28385
|
+
});
|
|
28386
|
+
}
|
|
28387
|
+
|
|
28388
|
+
/**
|
|
28389
|
+
* Clears range preview classes from all cells.
|
|
28390
|
+
* @private
|
|
28391
|
+
* @param {Object} [options] - Optional settings.
|
|
28392
|
+
* @param {boolean} [options.force=false] - When true, clears classes even
|
|
28393
|
+
* when both dateFrom and dateTo are set. Used by month nav handlers
|
|
28394
|
+
* since the subsequent re-render re-applies classMap-managed classes,
|
|
28395
|
+
* while `lastHoveredDate` (not in classMap) would otherwise persist.
|
|
28396
|
+
* @returns {void}
|
|
28397
|
+
*/
|
|
28398
|
+
clearRangePreview(options) {
|
|
28399
|
+
const opts = options instanceof Event ? {} : options || {};
|
|
28400
|
+
if (!opts.force && this.dateFrom && this.dateTo) {
|
|
28401
|
+
return;
|
|
28402
|
+
}
|
|
28403
|
+
|
|
28404
|
+
const allCells = this.getAllFocusableCells();
|
|
28405
|
+
allCells.forEach((cell) => {
|
|
28406
|
+
cell.clearRangePreviewClasses();
|
|
28407
|
+
});
|
|
28408
|
+
}
|
|
28409
|
+
|
|
28410
|
+
/**
|
|
28411
|
+
* Overrides the base class handler to prevent setting `this.hoveredDate`
|
|
28412
|
+
* as a reactive property. Instead, handles the range preview imperatively.
|
|
28413
|
+
* @private
|
|
28414
|
+
* @param {CustomEvent} event - The hovered-date-changed event from a month.
|
|
28415
|
+
* @returns {void}
|
|
28416
|
+
*/
|
|
28417
|
+
hoveredDateChanged(event) {
|
|
28418
|
+
const hoveredDate = event.detail.value;
|
|
28419
|
+
this.updateRangePreview(hoveredDate);
|
|
28420
|
+
}
|
|
28421
|
+
|
|
28422
|
+
/**
|
|
28423
|
+
* Scrolls the calendar to ensure the month containing the active cell is visible.
|
|
28424
|
+
* @private
|
|
28425
|
+
* @returns {void}
|
|
28426
|
+
*/
|
|
28427
|
+
scrollToActiveCell() {
|
|
28428
|
+
if (this.activeCellDate === null || this.activeCellDate === undefined) {
|
|
28429
|
+
return;
|
|
28430
|
+
}
|
|
28431
|
+
|
|
28432
|
+
const date = new Date(this.activeCellDate * 1000);
|
|
28433
|
+
const month = date.getMonth() + 1;
|
|
28434
|
+
const year = date.getFullYear();
|
|
28435
|
+
const selector = `#month-${month}-${year}`;
|
|
28436
|
+
const monthElem = this.shadowRoot.querySelector(selector);
|
|
28437
|
+
|
|
28438
|
+
if (monthElem) {
|
|
28439
|
+
const prefersReducedMotion = window.matchMedia('(prefers-reduced-motion: reduce)').matches;
|
|
28440
|
+
monthElem.scrollIntoView({ block: 'nearest',
|
|
28441
|
+
behavior: prefersReducedMotion ? 'instant' : 'smooth' });
|
|
28442
|
+
}
|
|
28443
|
+
}
|
|
28444
|
+
|
|
28445
|
+
/**
|
|
28446
|
+
* Returns (and lazily creates) an aria-live region inside the dropdown's
|
|
28447
|
+
* <dialog> element. This placement is critical for two reasons:
|
|
28448
|
+
*
|
|
28449
|
+
* 1. Inside the dialog's accessible scope — dialog.showModal() makes
|
|
28450
|
+
* everything outside the top-layer dialog inert, and desktop modal
|
|
28451
|
+
* mode uses _setPageInert() on document.body siblings. A live region
|
|
28452
|
+
* on document.body would be invisible to screen readers in both cases.
|
|
28453
|
+
*
|
|
28454
|
+
* 2. Not nested in shadow DOM — Chrome inconsistently observes aria-live
|
|
28455
|
+
* mutations inside shadow DOM across machines and versions. The dialog
|
|
28456
|
+
* element is only one shadow root deep (the dropdown bib's shadow DOM),
|
|
28457
|
+
* which Chrome handles reliably. The calendar's own shadow DOM (nested
|
|
28458
|
+
* inside the bib via slotting) is two+ levels deep and unreliable.
|
|
28459
|
+
*
|
|
28460
|
+
* @private
|
|
28461
|
+
* @returns {HTMLElement} The live region element.
|
|
28462
|
+
*/
|
|
28463
|
+
getOrCreateLiveRegion() {
|
|
28464
|
+
if (this._liveRegion && this._liveRegion.isConnected) {
|
|
28465
|
+
return this._liveRegion;
|
|
28466
|
+
}
|
|
28467
|
+
|
|
28468
|
+
// Access the dialog element inside the dropdown bib's shadow DOM.
|
|
28469
|
+
const dialog = this.dropdown?.bibContent?.shadowRoot?.querySelector('dialog');
|
|
28470
|
+
if (!dialog) {
|
|
28471
|
+
return null;
|
|
28472
|
+
}
|
|
28473
|
+
|
|
28474
|
+
// Check if we already created one for this calendar instance.
|
|
28475
|
+
const regionId = `auro-calendar-live-${this._calendarInstanceId}`;
|
|
28476
|
+
const existing = dialog.querySelector(`#${regionId}`);
|
|
28477
|
+
if (existing) {
|
|
28478
|
+
this._liveRegion = existing;
|
|
28479
|
+
return existing;
|
|
28480
|
+
}
|
|
28481
|
+
|
|
28482
|
+
const el = document.createElement('div');
|
|
28483
|
+
el.id = regionId;
|
|
28484
|
+
el.setAttribute('aria-live', 'assertive');
|
|
28485
|
+
el.setAttribute('aria-atomic', 'true');
|
|
28486
|
+
el.style.cssText = 'position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;';
|
|
28487
|
+
dialog.appendChild(el);
|
|
28488
|
+
|
|
28489
|
+
this._liveRegion = el;
|
|
28490
|
+
return el;
|
|
28491
|
+
}
|
|
28492
|
+
|
|
28493
|
+
/**
|
|
28494
|
+
* Removes the live region when this calendar is disconnected.
|
|
28495
|
+
* @private
|
|
28496
|
+
* @returns {void}
|
|
28497
|
+
*/
|
|
28498
|
+
disconnectedCallback() {
|
|
28499
|
+
super.disconnectedCallback();
|
|
28500
|
+
|
|
28501
|
+
// Cancel any pending announcements so they don't fire after teardown.
|
|
28502
|
+
if (this._announceRafId) {
|
|
28503
|
+
cancelAnimationFrame(this._announceRafId);
|
|
28504
|
+
this._announceRafId = null;
|
|
28505
|
+
}
|
|
28506
|
+
if (this._focusAnnounceTimer) {
|
|
28507
|
+
clearTimeout(this._focusAnnounceTimer);
|
|
28508
|
+
this._focusAnnounceTimer = null;
|
|
28509
|
+
}
|
|
28510
|
+
|
|
28511
|
+
if (this._liveRegion && this._liveRegion.isConnected) {
|
|
28512
|
+
this._liveRegion.remove();
|
|
28513
|
+
}
|
|
28514
|
+
this._liveRegion = null;
|
|
28515
|
+
}
|
|
28516
|
+
|
|
28517
|
+
/**
|
|
28518
|
+
* Announces a date selection or focus change via the live region.
|
|
28519
|
+
* Uses requestAnimationFrame to ensure the clear and set happen in
|
|
28520
|
+
* separate rendering frames — Chrome may coalesce synchronous or
|
|
28521
|
+
* microtask-deferred mutations into a single accessibility tree update.
|
|
28522
|
+
* @private
|
|
28523
|
+
* @param {String} dateStr - The localized date string to announce.
|
|
28524
|
+
* @returns {void}
|
|
28525
|
+
*/
|
|
28526
|
+
announceSelection(dateStr) {
|
|
28527
|
+
// Cancel any previously queued rAF announcement so a rapid
|
|
28528
|
+
// sequence of calls (e.g. bib open → month nav) only announces
|
|
28529
|
+
// the last one.
|
|
28530
|
+
if (this._announceRafId) {
|
|
28531
|
+
cancelAnimationFrame(this._announceRafId);
|
|
28532
|
+
}
|
|
28533
|
+
const liveRegion = this.getOrCreateLiveRegion();
|
|
28534
|
+
if (!liveRegion) {
|
|
28535
|
+
return;
|
|
28536
|
+
}
|
|
28537
|
+
|
|
28538
|
+
// Double-rAF: clear in frame N, set in frame N+1. Chrome batches
|
|
28539
|
+
// accessibility tree mutations within a single animation frame, so
|
|
28540
|
+
// a same-frame clear+set can be coalesced into a no-op if the new
|
|
28541
|
+
// value matches a recently announced string. Splitting across two
|
|
28542
|
+
// frames guarantees Chrome sees two distinct tree states and fires
|
|
28543
|
+
// a new accessibility event for the content change.
|
|
28544
|
+
liveRegion.textContent = '';
|
|
28545
|
+
this._announceRafId = requestAnimationFrame(() => {
|
|
28546
|
+
this._announceRafId = requestAnimationFrame(() => {
|
|
28547
|
+
liveRegion.textContent = dateStr;
|
|
28548
|
+
this._announceRafId = null;
|
|
28549
|
+
});
|
|
28550
|
+
});
|
|
28551
|
+
}
|
|
28552
|
+
|
|
28553
|
+
/**
|
|
28554
|
+
* Debounced version of announceSelection for focus navigation.
|
|
28555
|
+
* Uses the assertive live region with a 150ms debounce so only the
|
|
28556
|
+
* final cell after rapid arrow-key traversal is announced. We
|
|
28557
|
+
* originally tried aria-live="polite" here, but VoiceOver treats
|
|
28558
|
+
* polite as "wait until idle" — which never happens during active
|
|
28559
|
+
* keyboard navigation — so the announcements were silently dropped.
|
|
28560
|
+
* @private
|
|
28561
|
+
* @param {String} dateStr - The localized date string to announce.
|
|
28562
|
+
* @returns {void}
|
|
28563
|
+
*/
|
|
28564
|
+
announceFocusDebounced(dateStr) {
|
|
28565
|
+
if (this._focusAnnounceTimer) {
|
|
28566
|
+
clearTimeout(this._focusAnnounceTimer);
|
|
28567
|
+
}
|
|
28568
|
+
this._focusAnnounceTimer = setTimeout(() => {
|
|
28569
|
+
this.announceSelection(dateStr);
|
|
28570
|
+
this._focusAnnounceTimer = null;
|
|
28571
|
+
}, 150);
|
|
28572
|
+
}
|
|
28573
|
+
|
|
28574
|
+
/**
|
|
28575
|
+
* Formats a Unix timestamp (seconds) as a localized date string for SR announcements.
|
|
28576
|
+
* @private
|
|
28577
|
+
* @param {String|Number} timestamp - Unix timestamp in seconds.
|
|
28578
|
+
* @returns {String} Localized date string.
|
|
28579
|
+
*/
|
|
28580
|
+
formatAnnouncementDate(timestamp) {
|
|
28581
|
+
const date = new Date(parseInt(timestamp, 10) * 1000);
|
|
28582
|
+
const localeCode = this.locale?.code || undefined;
|
|
28583
|
+
const formatter = new Intl.DateTimeFormat(localeCode, {
|
|
28584
|
+
weekday: 'long',
|
|
28585
|
+
year: 'numeric',
|
|
28586
|
+
month: 'long',
|
|
28587
|
+
day: 'numeric'
|
|
28588
|
+
});
|
|
28589
|
+
return formatter.format(date);
|
|
28590
|
+
}
|
|
28591
|
+
|
|
27064
28592
|
firstUpdated() {
|
|
28593
|
+
|
|
27065
28594
|
this.addEventListener('date-from-changed', () => {
|
|
27066
28595
|
this.dispatchEvent(new CustomEvent('auroCalendar-dateSelected', {
|
|
27067
28596
|
bubbles: true,
|
|
@@ -27080,6 +28609,21 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
27080
28609
|
composed: true,
|
|
27081
28610
|
}));
|
|
27082
28611
|
});
|
|
28612
|
+
|
|
28613
|
+
// Listen for cross-month boundary navigation events
|
|
28614
|
+
this.addEventListener('calendar-month-boundary', (event) => {
|
|
28615
|
+
this.handleMonthBoundary(event);
|
|
28616
|
+
});
|
|
28617
|
+
|
|
28618
|
+
// Listen for cell activation events
|
|
28619
|
+
this.addEventListener('calendar-cell-activate', (event) => {
|
|
28620
|
+
this.handleCellActivate(event);
|
|
28621
|
+
});
|
|
28622
|
+
|
|
28623
|
+
// Listen for cell focus events (SR announcements + range preview)
|
|
28624
|
+
this.addEventListener('calendar-cell-focused', (event) => {
|
|
28625
|
+
this.handleCellFocused(event);
|
|
28626
|
+
});
|
|
27083
28627
|
}
|
|
27084
28628
|
|
|
27085
28629
|
injectSlot(slotName, nodes) {
|
|
@@ -27104,7 +28648,37 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
27104
28648
|
}
|
|
27105
28649
|
|
|
27106
28650
|
if (changedProperties.has('visible')) {
|
|
27107
|
-
|
|
28651
|
+
if (this.visible) {
|
|
28652
|
+
// Compute the active date eagerly from data — no DOM needed.
|
|
28653
|
+
if (this.activeCellDate == null) { // eslint-disable-line no-eq-null, eqeqeq
|
|
28654
|
+
this.activeCellDate = this.computeActiveDate();
|
|
28655
|
+
}
|
|
28656
|
+
|
|
28657
|
+
this.requestUpdate();
|
|
28658
|
+
} else {
|
|
28659
|
+
this.requestUpdate();
|
|
28660
|
+
}
|
|
28661
|
+
}
|
|
28662
|
+
|
|
28663
|
+
// Announce date selection to screen readers when user clicks/selects a cell
|
|
28664
|
+
const isCellClick = this.datepicker?.wasCellClick || this.datepicker?.cellClickActive;
|
|
28665
|
+
|
|
28666
|
+
if (changedProperties.has('dateFrom') && this.dateFrom && isCellClick) {
|
|
28667
|
+
const dateStr = this.formatAnnouncementDate(this.dateFrom);
|
|
28668
|
+
const isRange = !this.noRange;
|
|
28669
|
+
|
|
28670
|
+
if (isRange) {
|
|
28671
|
+
const rangeLabel = this.datepicker.rangeLabelStart || 'range start';
|
|
28672
|
+
this.announceSelection(`${dateStr}, selected as ${rangeLabel}`);
|
|
28673
|
+
} else {
|
|
28674
|
+
this.announceSelection(`${dateStr}, selected`);
|
|
28675
|
+
}
|
|
28676
|
+
}
|
|
28677
|
+
|
|
28678
|
+
if (changedProperties.has('dateTo') && this.dateTo && isCellClick) {
|
|
28679
|
+
const dateStr = this.formatAnnouncementDate(this.dateTo);
|
|
28680
|
+
const rangeLabel = this.datepicker.rangeLabelEnd || 'range end';
|
|
28681
|
+
this.announceSelection(`${dateStr}, selected as ${rangeLabel}`);
|
|
27108
28682
|
}
|
|
27109
28683
|
}
|
|
27110
28684
|
|
|
@@ -27113,6 +28687,7 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
27113
28687
|
<${this.bibtemplateTag}
|
|
27114
28688
|
?large="${this.largeFullscreenHeadline}"
|
|
27115
28689
|
?isFullscreen="${this.isFullscreen}"
|
|
28690
|
+
?showFooter="${!this.isFullscreen && this.dropdown?.desktopModal}"
|
|
27116
28691
|
@close-click="${this.utilCal.requestDismiss}">
|
|
27117
28692
|
<span slot="ariaLabel.close">${this.slots["ariaLabel.bib.close"]}</span>
|
|
27118
28693
|
|
|
@@ -27130,24 +28705,26 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
27130
28705
|
</div>
|
|
27131
28706
|
</div>
|
|
27132
28707
|
|
|
27133
|
-
<div class="calendarWrapper">
|
|
27134
|
-
<div class="calendars">
|
|
27135
|
-
${this.renderAllCalendars()}
|
|
27136
|
-
</div>
|
|
28708
|
+
<div class="calendarWrapper ${!this.isFullscreen && this.dropdown?.desktopModal ? 'hasFooter' : ''}">
|
|
27137
28709
|
<div class="calendarNavButtons">
|
|
27138
28710
|
${this.showPrevMonthBtn ? u$c`
|
|
27139
|
-
<button tabIndex="
|
|
28711
|
+
<button tabIndex="0" class="calendarNavBtn prevMonth" aria-label="${this.datepicker?.navLabelPrevMonth || 'Previous month'}" @click="${this.handlePrevMonth}">
|
|
27140
28712
|
${this.util.generateIconHtml(chevronLeft)}
|
|
27141
28713
|
</button>
|
|
27142
28714
|
` : undefined}
|
|
27143
28715
|
${this.showNextMonthBtn ? u$c`
|
|
27144
|
-
<button tabIndex="
|
|
28716
|
+
<button tabIndex="0" class="calendarNavBtn nextMonth" aria-label="${this.datepicker?.navLabelNextMonth || 'Next month'}" @click="${this.handleNextMonth}">
|
|
27145
28717
|
${this.util.generateIconHtml(chevronRight)}
|
|
27146
28718
|
</button>
|
|
27147
28719
|
` : undefined}
|
|
27148
28720
|
</div>
|
|
28721
|
+
<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}">
|
|
28722
|
+
${this.renderAllCalendars()}
|
|
28723
|
+
</div>
|
|
27149
28724
|
</div>
|
|
27150
28725
|
|
|
28726
|
+
<div id="calendar-live-region" aria-live="assertive" aria-atomic="true" class="sr-only"></div>
|
|
28727
|
+
|
|
27151
28728
|
<${this.buttonTag} slot="footer" fluid @click="${this.utilCal.requestDismiss}">Done</${this.buttonTag}>
|
|
27152
28729
|
</${this.bibtemplateTag}>
|
|
27153
28730
|
`;
|
|
@@ -30395,7 +31972,7 @@ function applyKeyboardStrategy$1$2(component, strategy, options = {}) {
|
|
|
30395
31972
|
});
|
|
30396
31973
|
}
|
|
30397
31974
|
|
|
30398
|
-
var styleCss$2$1$2 = i$7`:host{position:fixed;z-index:var(--depth-tooltip, 400);display:none;isolation:isolate}:host dialog{width:auto;max-width:none;height:auto;max-height:none;padding:0;border:none;margin:0;outline:none;transform:translateZ(0)}:host dialog::backdrop{background:transparent}:host(:not([isfullscreen])) dialog{position:relative;inset:unset}:host(:not([isfullscreen])) .container.shape-box{border-radius:unset}:host(:not([isfullscreen])) .container[class*=shape-pill],:host(:not([isfullscreen])) .container[class*=shape-snowflake]{border-radius:30px}:host(:not([isfullscreen])) .container[class*=shape-rounded]{border-radius:16px}:host(:not([matchWidth])) .container{min-width:fit-content}:host([isfullscreen]){position:fixed;top:0;left:0}:host([isfullscreen]) .container{width:100dvw;max-width:none;height:100dvh;max-height:none;border-radius:unset;margin-top:0;box-shadow:unset;overscroll-behavior:contain}:host([isfullscreen]) .container::backdrop{background:var(--ds-color-background-primary, #fff)}:host(:popover-open){position:fixed;overflow:visible;padding:0;border:none;margin:0;background:transparent;inset:unset;outline:none}:host([data-show]){display:flex}:host([common]:not([isfullscreen])) .container,:host([rounded]:not([isfullscreen])) .container{border-radius:var(--ds-border-radius, 0.375rem)}:host([common][isfullscreen]) .container,:host([rounded][isfullscreen]) .container{border-radius:unset;box-shadow:unset}.container{display:inline-block;overflow:auto;box-sizing:border-box;border-radius:var(--ds-border-radius, 0.375rem);margin:var(--ds-size-50, 0.25rem) 0}.util_displayHiddenVisually{position:absolute;overflow:hidden;width:1px;height:1px;padding:0;border:0;margin:-1px;clip-path:inset(50%);white-space:nowrap}`;
|
|
31975
|
+
var styleCss$2$1$2 = i$7`:host{position:fixed;z-index:var(--depth-tooltip, 400);display:none;isolation:isolate}:host dialog{width:auto;max-width:none;height:auto;max-height:none;padding:0;border:none;margin:0;outline:none;transform:translateZ(0)}:host dialog::backdrop{background:transparent}:host(:not([isfullscreen])) dialog{position:relative;inset:unset}:host(:not([isfullscreen])) .container.shape-box{border-radius:unset}:host(:not([isfullscreen])) .container[class*=shape-pill],:host(:not([isfullscreen])) .container[class*=shape-snowflake]{border-radius:30px}:host(:not([isfullscreen])) .container[class*=shape-rounded]{border-radius:16px}:host([desktopmodal]:popover-open)::backdrop{background:transparent}:host(:not([matchWidth])) .container{min-width:fit-content}:host([isfullscreen]){position:fixed;top:0;left:0}:host([isfullscreen]) .container{width:100dvw;max-width:none;height:100dvh;max-height:none;border-radius:unset;margin-top:0;box-shadow:unset;overscroll-behavior:contain}:host([isfullscreen]) .container::backdrop{background:var(--ds-color-background-primary, #fff)}:host(:popover-open){position:fixed;overflow:visible;padding:0;border:none;margin:0;background:transparent;inset:unset;outline:none}:host([data-show]){display:flex}:host([common]:not([isfullscreen])) .container,:host([rounded]:not([isfullscreen])) .container{border-radius:var(--ds-border-radius, 0.375rem)}:host([common][isfullscreen]) .container,:host([rounded][isfullscreen]) .container{border-radius:unset;box-shadow:unset}.container{display:inline-block;overflow:auto;box-sizing:border-box;border-radius:var(--ds-border-radius, 0.375rem);margin:var(--ds-size-50, 0.25rem) 0}.util_displayHiddenVisually{position:absolute;overflow:hidden;width:1px;height:1px;padding:0;border:0;margin:-1px;clip-path:inset(50%);white-space:nowrap}`;
|
|
30399
31976
|
|
|
30400
31977
|
var colorCss$2$7 = i$7`.container{background-color:var(--ds-auro-dropdownbib-container-color);box-shadow:var(--ds-auro-dropdownbib-boxshadow-color);color:var(--ds-auro-dropdownbib-text-color)}`;
|
|
30401
31978
|
|
|
@@ -31026,7 +32603,7 @@ let AuroHelpText$2$1 = class AuroHelpText extends i$4 {
|
|
|
31026
32603
|
}
|
|
31027
32604
|
};
|
|
31028
32605
|
|
|
31029
|
-
var formkitVersion$1$2 = '
|
|
32606
|
+
var formkitVersion$1$2 = '202606081904';
|
|
31030
32607
|
|
|
31031
32608
|
let AuroElement$2$2 = class AuroElement extends i$4 {
|
|
31032
32609
|
static get properties() {
|
|
@@ -31206,6 +32783,7 @@ let AuroDropdown$3 = class AuroDropdown extends AuroElement$2$2 {
|
|
|
31206
32783
|
_intializeDefaults() {
|
|
31207
32784
|
this.appearance = 'default';
|
|
31208
32785
|
this.chevron = false;
|
|
32786
|
+
this.desktopModal = false;
|
|
31209
32787
|
this.disabled = false;
|
|
31210
32788
|
this.disableKeyboardHandling = false;
|
|
31211
32789
|
this.error = false;
|
|
@@ -31386,6 +32964,14 @@ let AuroDropdown$3 = class AuroDropdown extends AuroElement$2$2 {
|
|
|
31386
32964
|
reflect: true
|
|
31387
32965
|
},
|
|
31388
32966
|
|
|
32967
|
+
/**
|
|
32968
|
+
* If declared, the dropdown will behave as a modal dialog when in a desktop viewport size.
|
|
32969
|
+
*/
|
|
32970
|
+
desktopModal: {
|
|
32971
|
+
type: Boolean,
|
|
32972
|
+
reflect: true
|
|
32973
|
+
},
|
|
32974
|
+
|
|
31389
32975
|
/**
|
|
31390
32976
|
* If declared, the dropdown will only show by calling the API .show() public method.
|
|
31391
32977
|
*/
|
|
@@ -31673,6 +33259,15 @@ let AuroDropdown$3 = class AuroDropdown extends AuroElement$2$2 {
|
|
|
31673
33259
|
|
|
31674
33260
|
disconnectedCallback() {
|
|
31675
33261
|
super.disconnectedCallback();
|
|
33262
|
+
this._clearPageInert();
|
|
33263
|
+
if (this._bibTabHandler) {
|
|
33264
|
+
this.removeEventListener('keydown', this._bibTabHandler);
|
|
33265
|
+
this._bibTabHandler = undefined;
|
|
33266
|
+
}
|
|
33267
|
+
if (this.focusTrap) {
|
|
33268
|
+
this.focusTrap.disconnect();
|
|
33269
|
+
this.focusTrap = undefined;
|
|
33270
|
+
}
|
|
31676
33271
|
if (this.floater) {
|
|
31677
33272
|
this.floater.hideBib('disconnect');
|
|
31678
33273
|
this.floater.disconnect();
|
|
@@ -31700,19 +33295,45 @@ let AuroDropdown$3 = class AuroDropdown extends AuroElement$2$2 {
|
|
|
31700
33295
|
if (this.isPopoverVisible) {
|
|
31701
33296
|
// Fullscreen: use showModal() for native accessibility (inert outside, focus trap)
|
|
31702
33297
|
// Desktop: use show() for Floating UI positioning + FocusTrap for focus management
|
|
31703
|
-
|
|
31704
|
-
this.
|
|
33298
|
+
this.bibElement.value.open(this.isBibFullscreen);
|
|
33299
|
+
this.updateFocusTrap();
|
|
33300
|
+
|
|
33301
|
+
// Desktop modal: make siblings inert so content outside is not interactive
|
|
33302
|
+
if (this.desktopModal && !this.isBibFullscreen) {
|
|
33303
|
+
this._setPageInert();
|
|
33304
|
+
}
|
|
31705
33305
|
} else {
|
|
31706
33306
|
this.bibElement.value.close();
|
|
33307
|
+
this._clearPageInert();
|
|
31707
33308
|
}
|
|
31708
33309
|
}
|
|
31709
33310
|
|
|
31710
33311
|
// When fullscreen strategy changes while open, re-open dialog with correct mode
|
|
31711
33312
|
// (e.g. resizing from desktop → mobile while dropdown is open)
|
|
31712
33313
|
if (changedProperties.has('isBibFullscreen') && this.isPopoverVisible && this.bibElement.value) {
|
|
31713
|
-
const useModal = this.isBibFullscreen;
|
|
31714
33314
|
this.bibElement.value.close();
|
|
31715
|
-
this.bibElement.value.open(
|
|
33315
|
+
this.bibElement.value.open(this.isBibFullscreen);
|
|
33316
|
+
|
|
33317
|
+
// Re-initialize focus management for the new strategy
|
|
33318
|
+
this.updateFocusTrap();
|
|
33319
|
+
|
|
33320
|
+
// Toggle inert: desktop modal needs it, fullscreen showModal() handles it natively
|
|
33321
|
+
if (this.desktopModal && !this.isBibFullscreen) {
|
|
33322
|
+
this._setPageInert();
|
|
33323
|
+
} else {
|
|
33324
|
+
this._clearPageInert();
|
|
33325
|
+
}
|
|
33326
|
+
}
|
|
33327
|
+
|
|
33328
|
+
// Handle desktopModal toggled while the dropdown is already open.
|
|
33329
|
+
// Re-initialize focus trapping and page inert state to match the new mode.
|
|
33330
|
+
if (changedProperties.has('desktopModal') && this.isPopoverVisible && !this.isBibFullscreen) {
|
|
33331
|
+
this.updateFocusTrap();
|
|
33332
|
+
if (this.desktopModal) {
|
|
33333
|
+
this._setPageInert();
|
|
33334
|
+
} else {
|
|
33335
|
+
this._clearPageInert();
|
|
33336
|
+
}
|
|
31716
33337
|
}
|
|
31717
33338
|
}
|
|
31718
33339
|
|
|
@@ -31722,8 +33343,14 @@ let AuroDropdown$3 = class AuroDropdown extends AuroElement$2$2 {
|
|
|
31722
33343
|
* @param {CustomEvent} event - The custom event that contains the dropdown toggle information.
|
|
31723
33344
|
*/
|
|
31724
33345
|
handleDropdownToggle(event) {
|
|
31725
|
-
this.updateFocusTrap();
|
|
31726
33346
|
this.isPopoverVisible = event.detail.expanded;
|
|
33347
|
+
|
|
33348
|
+
// Tear down FocusTrap when closing. Creation happens in updated()
|
|
33349
|
+
// after the dialog is open so getFocusableElements can find content.
|
|
33350
|
+
if (!this.isPopoverVisible) {
|
|
33351
|
+
this.updateFocusTrap();
|
|
33352
|
+
}
|
|
33353
|
+
|
|
31727
33354
|
const eventType = event.detail.eventType || "unknown";
|
|
31728
33355
|
if (!this.isPopoverVisible && this.hasFocus && eventType === "keydown") {
|
|
31729
33356
|
this.trigger.focus();
|
|
@@ -31822,19 +33449,194 @@ let AuroDropdown$3 = class AuroDropdown extends AuroElement$2$2 {
|
|
|
31822
33449
|
* @private
|
|
31823
33450
|
*/
|
|
31824
33451
|
updateFocusTrap() {
|
|
33452
|
+
// Always clean up existing handlers/traps before setting up new ones
|
|
33453
|
+
// to prevent duplicate listeners on repeated calls.
|
|
33454
|
+
if (this._bibTabHandler) {
|
|
33455
|
+
this.removeEventListener('keydown', this._bibTabHandler);
|
|
33456
|
+
this._bibTabHandler = undefined;
|
|
33457
|
+
}
|
|
33458
|
+
|
|
33459
|
+
if (this.focusTrap) {
|
|
33460
|
+
this.focusTrap.disconnect();
|
|
33461
|
+
this.focusTrap = undefined;
|
|
33462
|
+
}
|
|
33463
|
+
|
|
31825
33464
|
if (this.isPopoverVisible) {
|
|
31826
33465
|
if (!this.isBibFullscreen) {
|
|
31827
|
-
|
|
31828
|
-
|
|
31829
|
-
|
|
33466
|
+
if (this.desktopModal) {
|
|
33467
|
+
// Desktop modal: trap focus only within the bib content.
|
|
33468
|
+
// Can't use FocusTrap on the bib element because keydown events
|
|
33469
|
+
// from slotted content bubble through the dropdown host (light DOM),
|
|
33470
|
+
// not through the bib (shadow projection target). Using FocusTrap
|
|
33471
|
+
// on the dropdown would include the trigger in the tab cycle.
|
|
33472
|
+
// Instead, listen for Tab on the dropdown and manually wrap focus
|
|
33473
|
+
// within the bib's focusable elements.
|
|
33474
|
+
this._bibTabHandler = (event) => {
|
|
33475
|
+
if (event.key !== 'Tab') {
|
|
33476
|
+
return;
|
|
33477
|
+
}
|
|
33478
|
+
|
|
33479
|
+
// Collect focusable elements from the bib content.
|
|
33480
|
+
const focusables = getFocusableElements$3(this.bibContent);
|
|
33481
|
+
|
|
33482
|
+
// Fallback: try from slotted content directly
|
|
33483
|
+
if (!focusables.length) {
|
|
33484
|
+
const slot = this.shadowRoot.querySelector('.slotContent slot');
|
|
33485
|
+
const assignedNodes = slot.assignedNodes({ flatten: true });
|
|
33486
|
+
|
|
33487
|
+
for (const node of assignedNodes) {
|
|
33488
|
+
if (node.nodeType === Node.ELEMENT_NODE) {
|
|
33489
|
+
focusables.push(...getFocusableElements$3(node));
|
|
33490
|
+
}
|
|
33491
|
+
}
|
|
33492
|
+
}
|
|
33493
|
+
|
|
33494
|
+
if (!focusables.length) {
|
|
33495
|
+
return;
|
|
33496
|
+
}
|
|
33497
|
+
|
|
33498
|
+
event.preventDefault();
|
|
33499
|
+
|
|
33500
|
+
const direction = event.shiftKey ? -1 : 1; // eslint-disable-line no-magic-numbers
|
|
33501
|
+
|
|
33502
|
+
// Walk the active element chain through shadow roots
|
|
33503
|
+
const actives = this._getActiveElements();
|
|
33504
|
+
|
|
33505
|
+
let idx = focusables.findIndex((el) => actives.includes(el));
|
|
33506
|
+
|
|
33507
|
+
if (idx === -1) { // eslint-disable-line no-magic-numbers
|
|
33508
|
+
// Focus is not on a known element — move to first/last
|
|
33509
|
+
idx = direction === 1 ? -1 : focusables.length; // eslint-disable-line no-magic-numbers
|
|
33510
|
+
}
|
|
33511
|
+
|
|
33512
|
+
// Try each element in order, skipping any that can't receive focus
|
|
33513
|
+
// (e.g. hidden elements, elements in collapsed sections)
|
|
33514
|
+
for (let index = 0; index < focusables.length; index++) { // eslint-disable-line no-plusplus
|
|
33515
|
+
let nextIdx = idx + direction;
|
|
33516
|
+
|
|
33517
|
+
// Wrap around
|
|
33518
|
+
if (nextIdx < 0) {
|
|
33519
|
+
nextIdx = focusables.length - 1;
|
|
33520
|
+
} else if (nextIdx >= focusables.length) {
|
|
33521
|
+
nextIdx = 0;
|
|
33522
|
+
}
|
|
33523
|
+
|
|
33524
|
+
focusables[nextIdx].focus();
|
|
33525
|
+
|
|
33526
|
+
// Verify focus actually moved to the target
|
|
33527
|
+
const newActives = this._getActiveElements();
|
|
33528
|
+
|
|
33529
|
+
if (newActives.includes(focusables[nextIdx])) {
|
|
33530
|
+
return;
|
|
33531
|
+
}
|
|
33532
|
+
|
|
33533
|
+
// Focus didn't stick — skip this element and try the next
|
|
33534
|
+
idx = nextIdx;
|
|
33535
|
+
}
|
|
33536
|
+
};
|
|
33537
|
+
this.addEventListener('keydown', this._bibTabHandler);
|
|
33538
|
+
|
|
33539
|
+
// Move initial focus into the bib content, matching FocusTrap behavior
|
|
33540
|
+
requestAnimationFrame(() => {
|
|
33541
|
+
const focusables = getFocusableElements$3(this.bibContent);
|
|
33542
|
+
if (focusables.length) {
|
|
33543
|
+
focusables[0].focus();
|
|
33544
|
+
}
|
|
33545
|
+
});
|
|
33546
|
+
} else {
|
|
33547
|
+
// Normal desktop: use FocusTrap on the bib element
|
|
33548
|
+
this.focusTrap = new FocusTrap$3(this.bibContent);
|
|
33549
|
+
this.focusTrap.focusFirstElement();
|
|
33550
|
+
}
|
|
31830
33551
|
}
|
|
31831
33552
|
// Fullscreen: showModal() provides native focus trapping
|
|
33553
|
+
}
|
|
33554
|
+
}
|
|
33555
|
+
|
|
33556
|
+
/**
|
|
33557
|
+
* Returns the chain of active (focused) elements through shadow roots.
|
|
33558
|
+
* @private
|
|
33559
|
+
* @returns {Array<HTMLElement>}
|
|
33560
|
+
*/
|
|
33561
|
+
_getActiveElements() {
|
|
33562
|
+
let { activeElement } = document;
|
|
33563
|
+
const actives = [activeElement];
|
|
33564
|
+
|
|
33565
|
+
while (activeElement?.shadowRoot?.activeElement) {
|
|
33566
|
+
activeElement = activeElement.shadowRoot.activeElement;
|
|
33567
|
+
actives.push(activeElement);
|
|
33568
|
+
}
|
|
33569
|
+
|
|
33570
|
+
return actives;
|
|
33571
|
+
}
|
|
33572
|
+
|
|
33573
|
+
/**
|
|
33574
|
+
* Sets `inert` on sibling elements of the dropdown's top-level host
|
|
33575
|
+
* so that content outside the dropdown is not interactive while the modal is open.
|
|
33576
|
+
* Walks up through shadow DOM boundaries to find the outermost host element
|
|
33577
|
+
* in the light DOM, then sets `inert` on siblings at each ancestor level
|
|
33578
|
+
* to ensure all page content outside the host subtree is inert.
|
|
33579
|
+
* @private
|
|
33580
|
+
*/
|
|
33581
|
+
_setPageInert() {
|
|
33582
|
+
if (this._inertSiblings) {
|
|
31832
33583
|
return;
|
|
31833
33584
|
}
|
|
31834
33585
|
|
|
31835
|
-
|
|
31836
|
-
|
|
31837
|
-
|
|
33586
|
+
this._inertSiblings = [];
|
|
33587
|
+
|
|
33588
|
+
// Walk up through shadow DOM boundaries to find the topmost host
|
|
33589
|
+
// element in the light DOM. For example, if this dropdown is inside
|
|
33590
|
+
// auro-datepicker's shadow DOM, we walk up to the datepicker element
|
|
33591
|
+
// so we set inert on its siblings — not on the datepicker itself.
|
|
33592
|
+
let host = this;
|
|
33593
|
+
while (host.getRootNode() instanceof ShadowRoot) {
|
|
33594
|
+
host = host.getRootNode().host;
|
|
33595
|
+
}
|
|
33596
|
+
|
|
33597
|
+
// Walk up the ancestor chain, inerting siblings at each level
|
|
33598
|
+
// to ensure the entire page outside the host subtree is inert.
|
|
33599
|
+
// Uses a reference counter (data-auro-inert-count) so multiple
|
|
33600
|
+
// simultaneous modal dropdowns share inert state safely.
|
|
33601
|
+
let current = host;
|
|
33602
|
+
while (current.parentElement) {
|
|
33603
|
+
const parent = current.parentElement;
|
|
33604
|
+
for (const sibling of parent.children) {
|
|
33605
|
+
if (sibling !== current) {
|
|
33606
|
+
const count = parseInt(sibling.dataset.auroInertCount || '0', 10);
|
|
33607
|
+
if (count === 0) {
|
|
33608
|
+
sibling.dataset.auroInertWas = sibling.inert ? 'true' : 'false';
|
|
33609
|
+
}
|
|
33610
|
+
sibling.dataset.auroInertCount = String(count + 1);
|
|
33611
|
+
sibling.inert = true;
|
|
33612
|
+
this._inertSiblings.push(sibling);
|
|
33613
|
+
}
|
|
33614
|
+
}
|
|
33615
|
+
current = parent;
|
|
33616
|
+
}
|
|
33617
|
+
}
|
|
33618
|
+
|
|
33619
|
+
/**
|
|
33620
|
+
* Restores `inert` state on siblings that were tracked by `_setPageInert`.
|
|
33621
|
+
* Uses reference counting so inert is only cleared when the last modal
|
|
33622
|
+
* dropdown releases a given element. Preserves the original inert state
|
|
33623
|
+
* so externally-inerted elements are not inadvertently re-enabled.
|
|
33624
|
+
* @private
|
|
33625
|
+
*/
|
|
33626
|
+
_clearPageInert() {
|
|
33627
|
+
if (this._inertSiblings) {
|
|
33628
|
+
for (const sibling of this._inertSiblings) {
|
|
33629
|
+
const count = parseInt(sibling.dataset.auroInertCount || '1', 10) - 1;
|
|
33630
|
+
if (count <= 0) {
|
|
33631
|
+
const wasInert = sibling.dataset.auroInertWas === 'true';
|
|
33632
|
+
delete sibling.dataset.auroInertCount;
|
|
33633
|
+
delete sibling.dataset.auroInertWas;
|
|
33634
|
+
sibling.inert = wasInert;
|
|
33635
|
+
} else {
|
|
33636
|
+
sibling.dataset.auroInertCount = String(count);
|
|
33637
|
+
}
|
|
33638
|
+
}
|
|
33639
|
+
this._inertSiblings = undefined;
|
|
31838
33640
|
}
|
|
31839
33641
|
}
|
|
31840
33642
|
|
|
@@ -32073,6 +33875,7 @@ let AuroDropdown$3 = class AuroDropdown extends AuroElement$2$2 {
|
|
|
32073
33875
|
shape="${this.shape}"
|
|
32074
33876
|
?data-show="${this.isPopoverVisible}"
|
|
32075
33877
|
?isfullscreen="${this.isBibFullscreen}"
|
|
33878
|
+
?desktopmodal="${this.desktopModal}"
|
|
32076
33879
|
.dialogLabel="${this.bibDialogLabel}"
|
|
32077
33880
|
${n$6(this.bibElement)}
|
|
32078
33881
|
>
|
|
@@ -44277,7 +46080,7 @@ let AuroHelpText$1$2 = class AuroHelpText extends i$4 {
|
|
|
44277
46080
|
}
|
|
44278
46081
|
};
|
|
44279
46082
|
|
|
44280
|
-
var formkitVersion$8 = '
|
|
46083
|
+
var formkitVersion$8 = '202606081904';
|
|
44281
46084
|
|
|
44282
46085
|
// Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
|
|
44283
46086
|
// See LICENSE in the project root for license information.
|
|
@@ -45622,26 +47425,62 @@ function applyKeyboardStrategy$5(component, strategy, options = {}) {
|
|
|
45622
47425
|
// components/datepicker/docs/partials/keyboardBehavior.md
|
|
45623
47426
|
//
|
|
45624
47427
|
// Current behavior (transitional — full bib keyboard navigation is planned for a future iteration):
|
|
45625
|
-
// - The bib opens and closes via pointer/touch interaction only.
|
|
45626
47428
|
// - Escape closes the bib and prevents the event from reaching parent containers.
|
|
47429
|
+
// - Enter opens the bib when it is closed (trigger input only, not clear button).
|
|
47430
|
+
// - Space opens the bib when it is closed (trigger input only, not clear button).
|
|
45627
47431
|
// - Tab uses the browser's default tabindex sequence across trigger controls.
|
|
45628
|
-
// - Enter and Space do not open or close the bib.
|
|
45629
47432
|
//
|
|
45630
47433
|
// This file is an intentional placeholder for most keys. When datepicker bib keyboard navigation is
|
|
45631
47434
|
// added, handlers should go here following the same strategy pattern used by
|
|
45632
47435
|
// auro-select (selectKeyboardStrategy.js) and auro-combobox (comboboxKeyboardStrategy.js).
|
|
45633
47436
|
const datepickerKeyboardStrategy = {
|
|
45634
|
-
Escape(component, evt) {
|
|
45635
|
-
if (!
|
|
47437
|
+
Escape(component, evt, ctx) {
|
|
47438
|
+
if (!ctx.isExpanded) {
|
|
45636
47439
|
return;
|
|
45637
47440
|
}
|
|
45638
47441
|
|
|
45639
|
-
//
|
|
45640
|
-
//
|
|
45641
|
-
// seeing this event, we must also close the dropdown explicitly.
|
|
47442
|
+
// Stop propagation so parent containers (auro-dialog, auro-drawer)
|
|
47443
|
+
// don't also react to Escape.
|
|
45642
47444
|
evt.stopPropagation();
|
|
47445
|
+
evt.preventDefault();
|
|
45643
47446
|
|
|
45644
|
-
component.
|
|
47447
|
+
component.hideBib();
|
|
47448
|
+
},
|
|
47449
|
+
|
|
47450
|
+
Enter(component, evt, ctx) {
|
|
47451
|
+
if (ctx.isExpanded) {
|
|
47452
|
+
return;
|
|
47453
|
+
}
|
|
47454
|
+
|
|
47455
|
+
// Only open from the trigger input, not the clear button or other internal elements.
|
|
47456
|
+
// evt.target is retargeted to the host in shadow DOM, so use composedPath()
|
|
47457
|
+
// to find the real origin. The clear button is rendered with class "clearBtn".
|
|
47458
|
+
const path = evt.composedPath();
|
|
47459
|
+
if (path.some(el => el.classList?.contains('clearBtn'))) {
|
|
47460
|
+
return;
|
|
47461
|
+
}
|
|
47462
|
+
|
|
47463
|
+
evt.preventDefault();
|
|
47464
|
+
|
|
47465
|
+
component.dropdown.show();
|
|
47466
|
+
},
|
|
47467
|
+
|
|
47468
|
+
' '(component, evt, ctx) {
|
|
47469
|
+
if (ctx.isExpanded) {
|
|
47470
|
+
return;
|
|
47471
|
+
}
|
|
47472
|
+
|
|
47473
|
+
// Only open from the trigger input, not the clear button or other internal elements.
|
|
47474
|
+
// evt.target is retargeted to the host in shadow DOM, so use composedPath()
|
|
47475
|
+
// to find the real origin. The clear button is rendered with class "clearBtn".
|
|
47476
|
+
const path = evt.composedPath();
|
|
47477
|
+
if (path.some(el => el.classList?.contains('clearBtn'))) {
|
|
47478
|
+
return;
|
|
47479
|
+
}
|
|
47480
|
+
|
|
47481
|
+
evt.preventDefault();
|
|
47482
|
+
|
|
47483
|
+
component.dropdown.show();
|
|
45645
47484
|
},
|
|
45646
47485
|
};
|
|
45647
47486
|
|
|
@@ -45715,6 +47554,16 @@ class AuroDatePicker extends AuroElement$6 {
|
|
|
45715
47554
|
this.required = false;
|
|
45716
47555
|
this.onDark = false;
|
|
45717
47556
|
this.range = false;
|
|
47557
|
+
this.rangeLabelStart = 'range start';
|
|
47558
|
+
this.rangeLabelEnd = 'range end';
|
|
47559
|
+
this.rangeLabelBeforeRange = 'before range';
|
|
47560
|
+
this.rangeLabelInRange = 'in range';
|
|
47561
|
+
this.rangeLabelAfterRange = 'after range';
|
|
47562
|
+
this.blackoutDates = [];
|
|
47563
|
+
this.blackoutLabel = 'unavailable';
|
|
47564
|
+
this.navLabelPrevMonth = 'Previous month';
|
|
47565
|
+
this.navLabelNextMonth = 'Next month';
|
|
47566
|
+
this.calendarGridLabel = 'Calendar days of the month';
|
|
45718
47567
|
this.stacked = false;
|
|
45719
47568
|
this.noValidate = false;
|
|
45720
47569
|
this.validity = undefined;
|
|
@@ -45830,7 +47679,7 @@ class AuroDatePicker extends AuroElement$6 {
|
|
|
45830
47679
|
|
|
45831
47680
|
/**
|
|
45832
47681
|
* Defines whether the component will be on lighter or darker backgrounds.
|
|
45833
|
-
* @
|
|
47682
|
+
* @type {'default' | 'inverse'}
|
|
45834
47683
|
* @default 'default'
|
|
45835
47684
|
*/
|
|
45836
47685
|
appearance: {
|
|
@@ -45847,6 +47696,22 @@ class AuroDatePicker extends AuroElement$6 {
|
|
|
45847
47696
|
reflect: true
|
|
45848
47697
|
},
|
|
45849
47698
|
|
|
47699
|
+
/**
|
|
47700
|
+
* Array of dates that cannot be selected. Dates should be in ISO format (YYYY-MM-DD).
|
|
47701
|
+
*/
|
|
47702
|
+
blackoutDates: {
|
|
47703
|
+
type: Array,
|
|
47704
|
+
reflect: true
|
|
47705
|
+
},
|
|
47706
|
+
|
|
47707
|
+
/**
|
|
47708
|
+
* Label announced for blackout (disabled but in-range) date cells.
|
|
47709
|
+
*/
|
|
47710
|
+
blackoutLabel: {
|
|
47711
|
+
type: String,
|
|
47712
|
+
reflect: true
|
|
47713
|
+
},
|
|
47714
|
+
|
|
45850
47715
|
/**
|
|
45851
47716
|
* The last date that may be displayed in the calendar.
|
|
45852
47717
|
*/
|
|
@@ -45855,6 +47720,14 @@ class AuroDatePicker extends AuroElement$6 {
|
|
|
45855
47720
|
reflect: true
|
|
45856
47721
|
},
|
|
45857
47722
|
|
|
47723
|
+
/**
|
|
47724
|
+
* Accessible label for the calendar grid containing the days of the month.
|
|
47725
|
+
*/
|
|
47726
|
+
calendarGridLabel: {
|
|
47727
|
+
type: String,
|
|
47728
|
+
reflect: true
|
|
47729
|
+
},
|
|
47730
|
+
|
|
45858
47731
|
/**
|
|
45859
47732
|
* The date that will first be visually rendered to the user in the calendar.
|
|
45860
47733
|
*/
|
|
@@ -45902,27 +47775,6 @@ class AuroDatePicker extends AuroElement$6 {
|
|
|
45902
47775
|
reflect: true
|
|
45903
47776
|
},
|
|
45904
47777
|
|
|
45905
|
-
hasFocus: {
|
|
45906
|
-
type: Boolean,
|
|
45907
|
-
reflect: false,
|
|
45908
|
-
},
|
|
45909
|
-
|
|
45910
|
-
/**
|
|
45911
|
-
* @private
|
|
45912
|
-
*/
|
|
45913
|
-
hasValue: {
|
|
45914
|
-
type: Boolean,
|
|
45915
|
-
reflect: false,
|
|
45916
|
-
},
|
|
45917
|
-
|
|
45918
|
-
/**
|
|
45919
|
-
* @private
|
|
45920
|
-
*/
|
|
45921
|
-
hasAllValues: {
|
|
45922
|
-
type: Boolean,
|
|
45923
|
-
reflect: false
|
|
45924
|
-
},
|
|
45925
|
-
|
|
45926
47778
|
/**
|
|
45927
47779
|
* Specifies the date format. The default is `mm/dd/yyyy`.
|
|
45928
47780
|
*/
|
|
@@ -45952,6 +47804,27 @@ class AuroDatePicker extends AuroElement$6 {
|
|
|
45952
47804
|
reflect: true
|
|
45953
47805
|
},
|
|
45954
47806
|
|
|
47807
|
+
/**
|
|
47808
|
+
* @private
|
|
47809
|
+
*/
|
|
47810
|
+
hasAllValues: {
|
|
47811
|
+
type: Boolean,
|
|
47812
|
+
reflect: false
|
|
47813
|
+
},
|
|
47814
|
+
|
|
47815
|
+
hasFocus: {
|
|
47816
|
+
type: Boolean,
|
|
47817
|
+
reflect: false,
|
|
47818
|
+
},
|
|
47819
|
+
|
|
47820
|
+
/**
|
|
47821
|
+
* @private
|
|
47822
|
+
*/
|
|
47823
|
+
hasValue: {
|
|
47824
|
+
type: Boolean,
|
|
47825
|
+
reflect: false,
|
|
47826
|
+
},
|
|
47827
|
+
|
|
45955
47828
|
/** Exposes inputmode attribute for input. */
|
|
45956
47829
|
inputmode: {
|
|
45957
47830
|
type: String,
|
|
@@ -45994,6 +47867,13 @@ class AuroDatePicker extends AuroElement$6 {
|
|
|
45994
47867
|
reflect: true
|
|
45995
47868
|
},
|
|
45996
47869
|
|
|
47870
|
+
/**
|
|
47871
|
+
* @private
|
|
47872
|
+
*/
|
|
47873
|
+
monthFirst: {
|
|
47874
|
+
type: Boolean
|
|
47875
|
+
},
|
|
47876
|
+
|
|
45997
47877
|
/**
|
|
45998
47878
|
* Names of all 12 months to render in the calendar.
|
|
45999
47879
|
* When omitted, month names will be automatically populated from the active `locale` (falling back to `en-US`).
|
|
@@ -46003,18 +47883,26 @@ class AuroDatePicker extends AuroElement$6 {
|
|
|
46003
47883
|
},
|
|
46004
47884
|
|
|
46005
47885
|
/**
|
|
46006
|
-
*
|
|
46007
|
-
* when there isn't enough space in the specified `placement`.
|
|
47886
|
+
* Accessible label for the next month navigation button.
|
|
46008
47887
|
*/
|
|
46009
|
-
|
|
46010
|
-
type:
|
|
47888
|
+
navLabelNextMonth: {
|
|
47889
|
+
type: String,
|
|
46011
47890
|
reflect: true
|
|
46012
47891
|
},
|
|
46013
47892
|
|
|
46014
47893
|
/**
|
|
46015
|
-
*
|
|
47894
|
+
* Accessible label for the previous month navigation button.
|
|
46016
47895
|
*/
|
|
46017
|
-
|
|
47896
|
+
navLabelPrevMonth: {
|
|
47897
|
+
type: String,
|
|
47898
|
+
reflect: true
|
|
47899
|
+
},
|
|
47900
|
+
|
|
47901
|
+
/**
|
|
47902
|
+
* If declared, the bib will NOT flip to an alternate position
|
|
47903
|
+
* when there isn't enough space in the specified `placement`.
|
|
47904
|
+
*/
|
|
47905
|
+
noFlip: {
|
|
46018
47906
|
type: Boolean,
|
|
46019
47907
|
reflect: true
|
|
46020
47908
|
},
|
|
@@ -46080,6 +47968,46 @@ class AuroDatePicker extends AuroElement$6 {
|
|
|
46080
47968
|
reflect: true
|
|
46081
47969
|
},
|
|
46082
47970
|
|
|
47971
|
+
/**
|
|
47972
|
+
* Label announced for cells after the range (or after start when no end is selected).
|
|
47973
|
+
*/
|
|
47974
|
+
rangeLabelAfterRange: {
|
|
47975
|
+
type: String,
|
|
47976
|
+
reflect: true
|
|
47977
|
+
},
|
|
47978
|
+
|
|
47979
|
+
/**
|
|
47980
|
+
* Label announced for cells before the range start.
|
|
47981
|
+
*/
|
|
47982
|
+
rangeLabelBeforeRange: {
|
|
47983
|
+
type: String,
|
|
47984
|
+
reflect: true
|
|
47985
|
+
},
|
|
47986
|
+
|
|
47987
|
+
/**
|
|
47988
|
+
* Label announced for the range end date cell.
|
|
47989
|
+
*/
|
|
47990
|
+
rangeLabelEnd: {
|
|
47991
|
+
type: String,
|
|
47992
|
+
reflect: true
|
|
47993
|
+
},
|
|
47994
|
+
|
|
47995
|
+
/**
|
|
47996
|
+
* Label announced for cells within the selected range.
|
|
47997
|
+
*/
|
|
47998
|
+
rangeLabelInRange: {
|
|
47999
|
+
type: String,
|
|
48000
|
+
reflect: true
|
|
48001
|
+
},
|
|
48002
|
+
|
|
48003
|
+
/**
|
|
48004
|
+
* Label announced for the range start date cell.
|
|
48005
|
+
*/
|
|
48006
|
+
rangeLabelStart: {
|
|
48007
|
+
type: String,
|
|
48008
|
+
reflect: true
|
|
48009
|
+
},
|
|
48010
|
+
|
|
46083
48011
|
/**
|
|
46084
48012
|
* Dates that the user should have for reference as part of their decision making when selecting a date.
|
|
46085
48013
|
* This should be a JSON string array of ISO date strings (`YYYY-MM-DD`).
|
|
@@ -46106,6 +48034,7 @@ class AuroDatePicker extends AuroElement$6 {
|
|
|
46106
48034
|
|
|
46107
48035
|
/**
|
|
46108
48036
|
* Custom help text message to display when validity = `customError`.
|
|
48037
|
+
* Also used as the validation message when a blackout date is typed into the input.
|
|
46109
48038
|
*/
|
|
46110
48039
|
setCustomValidityCustomError: {
|
|
46111
48040
|
type: String
|
|
@@ -46132,6 +48061,14 @@ class AuroDatePicker extends AuroElement$6 {
|
|
|
46132
48061
|
type: String
|
|
46133
48062
|
},
|
|
46134
48063
|
|
|
48064
|
+
/**
|
|
48065
|
+
* If declared, the dropdown will shift its position to avoid being cut off by the viewport.
|
|
48066
|
+
*/
|
|
48067
|
+
shift: {
|
|
48068
|
+
type: Boolean,
|
|
48069
|
+
reflect: true
|
|
48070
|
+
},
|
|
48071
|
+
|
|
46135
48072
|
/**
|
|
46136
48073
|
* Set true to make datepicker stacked style.
|
|
46137
48074
|
*/
|
|
@@ -46140,6 +48077,16 @@ class AuroDatePicker extends AuroElement$6 {
|
|
|
46140
48077
|
reflect: true
|
|
46141
48078
|
},
|
|
46142
48079
|
|
|
48080
|
+
/**
|
|
48081
|
+
* Indicates whether the datepicker is in a dirty state (has been interacted with).
|
|
48082
|
+
* @private
|
|
48083
|
+
*/
|
|
48084
|
+
touched: {
|
|
48085
|
+
type: Boolean,
|
|
48086
|
+
reflect: true,
|
|
48087
|
+
attribute: false
|
|
48088
|
+
},
|
|
48089
|
+
|
|
46143
48090
|
/**
|
|
46144
48091
|
* Specifies the `validityState` this element is in.
|
|
46145
48092
|
*/
|
|
@@ -46160,16 +48107,6 @@ class AuroDatePicker extends AuroElement$6 {
|
|
|
46160
48107
|
*/
|
|
46161
48108
|
valueEnd: {
|
|
46162
48109
|
type: String
|
|
46163
|
-
},
|
|
46164
|
-
|
|
46165
|
-
/**
|
|
46166
|
-
* Indicates whether the datepicker is in a dirty state (has been interacted with).
|
|
46167
|
-
* @private
|
|
46168
|
-
*/
|
|
46169
|
-
touched: {
|
|
46170
|
-
type: Boolean,
|
|
46171
|
-
reflect: true,
|
|
46172
|
-
attribute: false
|
|
46173
48110
|
}
|
|
46174
48111
|
};
|
|
46175
48112
|
}
|
|
@@ -46280,7 +48217,7 @@ class AuroDatePicker extends AuroElement$6 {
|
|
|
46280
48217
|
/**
|
|
46281
48218
|
* Common display value wrapper classes.
|
|
46282
48219
|
* @private
|
|
46283
|
-
* @
|
|
48220
|
+
* @returns {Object} Class map for Lit's classMap directive.
|
|
46284
48221
|
*/
|
|
46285
48222
|
get commonDisplayValueWrapperClasses() {
|
|
46286
48223
|
return {
|
|
@@ -46495,6 +48432,74 @@ class AuroDatePicker extends AuroElement$6 {
|
|
|
46495
48432
|
}));
|
|
46496
48433
|
}
|
|
46497
48434
|
|
|
48435
|
+
/**
|
|
48436
|
+
* Attempts to focus the active calendar cell using a rAF retry loop.
|
|
48437
|
+
* Shared by both fullscreen and desktop open paths.
|
|
48438
|
+
* @private
|
|
48439
|
+
* @returns {void}
|
|
48440
|
+
*/
|
|
48441
|
+
focusActiveCellWhenReady() {
|
|
48442
|
+
const MAX_ATTEMPTS = 20;
|
|
48443
|
+
let attempts = 0;
|
|
48444
|
+
|
|
48445
|
+
const tryFocus = () => {
|
|
48446
|
+
attempts += 1;
|
|
48447
|
+
const allCells = this.calendar.getAllFocusableCells();
|
|
48448
|
+
|
|
48449
|
+
if (!allCells.length && attempts < MAX_ATTEMPTS) {
|
|
48450
|
+
requestAnimationFrame(tryFocus);
|
|
48451
|
+
return;
|
|
48452
|
+
}
|
|
48453
|
+
|
|
48454
|
+
// Compute and mark the active cell
|
|
48455
|
+
if (this.calendar.activeCellDate === null || this.calendar.activeCellDate === undefined) {
|
|
48456
|
+
this.calendar.activeCellDate = this.calendar.computeActiveDate();
|
|
48457
|
+
}
|
|
48458
|
+
if (this.calendar.activeCellDate !== undefined) {
|
|
48459
|
+
this.calendar.setActiveCell(this.calendar.activeCellDate);
|
|
48460
|
+
}
|
|
48461
|
+
|
|
48462
|
+
// If no cell matched (e.g. centralDate month differs from the rendered
|
|
48463
|
+
// range on mobile), fall back to the first rendered enabled cell.
|
|
48464
|
+
let activeCell = allCells.find((cell) => cell.active);
|
|
48465
|
+
if (!activeCell && allCells.length) {
|
|
48466
|
+
const [fallback] = allCells;
|
|
48467
|
+
if (fallback.day) {
|
|
48468
|
+
this.calendar.activeCellDate = fallback.day.date;
|
|
48469
|
+
this.calendar.setActiveCell(this.calendar.activeCellDate);
|
|
48470
|
+
activeCell = allCells.find((cell) => cell.active);
|
|
48471
|
+
}
|
|
48472
|
+
}
|
|
48473
|
+
|
|
48474
|
+
// Focus the calendar grid wrapper (aria-activedescendant handles
|
|
48475
|
+
// the SR announcement for the active cell).
|
|
48476
|
+
if (activeCell) {
|
|
48477
|
+
this.calendar.focusActiveCell();
|
|
48478
|
+
|
|
48479
|
+
// Announce the initial active cell via the live region.
|
|
48480
|
+
// Delay the announcement so it arrives after VoiceOver finishes
|
|
48481
|
+
// speaking the focus-change announcement for the grid wrapper.
|
|
48482
|
+
// Without this delay, VoiceOver drops the live region update
|
|
48483
|
+
// because it's already mid-announcement from the focus move.
|
|
48484
|
+
const announcement = this.calendar.buildFocusAnnouncement(activeCell.day.date);
|
|
48485
|
+
setTimeout(() => {
|
|
48486
|
+
this.calendar.announceSelection(announcement);
|
|
48487
|
+
}, 500);
|
|
48488
|
+
|
|
48489
|
+
// On mobile fullscreen, scroll the month list so the active cell's
|
|
48490
|
+
// month is visible. Without this, the list stays scrolled to the
|
|
48491
|
+
// calendarStartDate month which may be far from the active cell.
|
|
48492
|
+
if (this.dropdown.isBibFullscreen) {
|
|
48493
|
+
this.calendar.scrollToActiveCell();
|
|
48494
|
+
}
|
|
48495
|
+
} else if (attempts < MAX_ATTEMPTS) {
|
|
48496
|
+
requestAnimationFrame(tryFocus);
|
|
48497
|
+
}
|
|
48498
|
+
};
|
|
48499
|
+
|
|
48500
|
+
requestAnimationFrame(tryFocus);
|
|
48501
|
+
}
|
|
48502
|
+
|
|
46498
48503
|
/**
|
|
46499
48504
|
* Binds all behavior needed to the dropdown after rendering.
|
|
46500
48505
|
* @private
|
|
@@ -46503,6 +48508,12 @@ class AuroDatePicker extends AuroElement$6 {
|
|
|
46503
48508
|
configureDropdown() {
|
|
46504
48509
|
this.dropdown = this.shadowRoot.querySelector(this.dropdownTag._$litStatic$);
|
|
46505
48510
|
|
|
48511
|
+
// The datepicker manages its own open/close lifecycle (Space/Escape/date-select/done).
|
|
48512
|
+
// Prevent the floater's document-level focusin handler from closing the bib
|
|
48513
|
+
// when focus moves from the trigger into the calendar cells (which live inside
|
|
48514
|
+
// a top-layer popover where :focus-within on the dropdown host returns false).
|
|
48515
|
+
this.dropdown.noHideOnThisFocusLoss = true;
|
|
48516
|
+
|
|
46506
48517
|
// Pass label text to the dropdown bib for accessible dialog naming.
|
|
46507
48518
|
// Without this, the fullscreen <dialog> has no accessible name and
|
|
46508
48519
|
// screen readers announce it as just "dialog" with no context.
|
|
@@ -46520,6 +48531,23 @@ class AuroDatePicker extends AuroElement$6 {
|
|
|
46520
48531
|
this.dropdown.addEventListener('auroDropdown-toggled', () => {
|
|
46521
48532
|
this.notifyDatepickerToggled();
|
|
46522
48533
|
|
|
48534
|
+
if (this.dropdown.isPopoverVisible) {
|
|
48535
|
+
// Reset calendar focus state so it recomputes from the current selection.
|
|
48536
|
+
// Without this, reopening after navigating to a month without a selected
|
|
48537
|
+
// date leaves activeCellDate pointing at a cell in a different month than
|
|
48538
|
+
// what centralDate renders, causing all cells to have tabindex="-1".
|
|
48539
|
+
this.calendar.activeCellDate = null;
|
|
48540
|
+
|
|
48541
|
+
// Show the month containing the selected date (or today) instead of
|
|
48542
|
+
// whichever month the user last navigated to.
|
|
48543
|
+
// Respect consumer-provided centralDate/calendarStartDate if no value is set.
|
|
48544
|
+
if (this.valueObject) {
|
|
48545
|
+
this.centralDate = this.value;
|
|
48546
|
+
} else if (!this.centralDate && !this.calendarStartDate && !this.minDate) {
|
|
48547
|
+
this.centralDate = new Date();
|
|
48548
|
+
}
|
|
48549
|
+
}
|
|
48550
|
+
|
|
46523
48551
|
// This forces the calendar to render when the dropdown is opened.
|
|
46524
48552
|
// It is not rendered by default
|
|
46525
48553
|
this.calendar.visible = this.dropdown.isPopoverVisible;
|
|
@@ -46552,12 +48580,23 @@ class AuroDatePicker extends AuroElement$6 {
|
|
|
46552
48580
|
bibEl.open(true);
|
|
46553
48581
|
|
|
46554
48582
|
doubleRaf$3(() => {
|
|
46555
|
-
this.
|
|
48583
|
+
this.focusActiveCellWhenReady();
|
|
46556
48584
|
});
|
|
46557
48585
|
}
|
|
46558
48586
|
});
|
|
46559
48587
|
|
|
46560
48588
|
guardTouchPassthrough$2(this.shadowRoot.querySelector('.calendarWrapper'));
|
|
48589
|
+
} else {
|
|
48590
|
+
// Desktop (non-fullscreen) modal: make the trigger inert so users
|
|
48591
|
+
// cannot interact with the input while the modal bib is open.
|
|
48592
|
+
if (this.dropdown.desktopModal) {
|
|
48593
|
+
this.dropdown.trigger.inert = true;
|
|
48594
|
+
}
|
|
48595
|
+
|
|
48596
|
+
// Desktop (non-fullscreen): focus the active calendar cell.
|
|
48597
|
+
this.dropdown.updateComplete.then(() => {
|
|
48598
|
+
this.focusActiveCellWhenReady();
|
|
48599
|
+
});
|
|
46561
48600
|
}
|
|
46562
48601
|
} else {
|
|
46563
48602
|
// Always clear the inert flag. Only restore focus to the input when the datepicker
|
|
@@ -46602,14 +48641,35 @@ class AuroDatePicker extends AuroElement$6 {
|
|
|
46602
48641
|
if (bibEl && this.dropdown.isPopoverVisible) {
|
|
46603
48642
|
bibEl.close();
|
|
46604
48643
|
bibEl.open(true);
|
|
48644
|
+
}
|
|
48645
|
+
|
|
48646
|
+
// Re-render the calendar with the new fullscreen layout,
|
|
48647
|
+
// then restore focus after the re-render completes.
|
|
48648
|
+
this.calendar.isFullscreen = true;
|
|
48649
|
+
this.calendar.updateComplete.then(() => {
|
|
46605
48650
|
doubleRaf$3(() => {
|
|
46606
|
-
this.
|
|
48651
|
+
this.focusActiveCellWhenReady();
|
|
46607
48652
|
});
|
|
46608
|
-
}
|
|
48653
|
+
});
|
|
46609
48654
|
});
|
|
46610
48655
|
} else if (!this.dropdown.isBibFullscreen) {
|
|
46611
|
-
// Switching from fullscreen to floating — restore trigger accessibility
|
|
46612
|
-
|
|
48656
|
+
// Switching from fullscreen to floating — only restore trigger accessibility
|
|
48657
|
+
// when the bib is closed or the desktop layout is not a modal. A desktopModal
|
|
48658
|
+
// dropdown keeps the trigger inert while open, matching the desktop-open path.
|
|
48659
|
+
if (!this.dropdown.isPopoverVisible || !this.dropdown.desktopModal) {
|
|
48660
|
+
this.dropdown.trigger.inert = false;
|
|
48661
|
+
}
|
|
48662
|
+
|
|
48663
|
+
// Re-render the calendar with the desktop layout,
|
|
48664
|
+
// then restore focus after the re-render completes.
|
|
48665
|
+
this.dropdown.updateComplete.then(() => {
|
|
48666
|
+
this.calendar.isFullscreen = false;
|
|
48667
|
+
this.calendar.updateComplete.then(() => {
|
|
48668
|
+
doubleRaf$3(() => {
|
|
48669
|
+
this.focusActiveCellWhenReady();
|
|
48670
|
+
});
|
|
48671
|
+
});
|
|
48672
|
+
});
|
|
46613
48673
|
}
|
|
46614
48674
|
});
|
|
46615
48675
|
}
|
|
@@ -46797,14 +48857,8 @@ class AuroDatePicker extends AuroElement$6 {
|
|
|
46797
48857
|
|
|
46798
48858
|
if (onEndValue) {
|
|
46799
48859
|
this.valueEnd = newDate;
|
|
46800
|
-
if (this.dropdown.isPopoverVisible && !this.dropdown.isBibFullscreen) {
|
|
46801
|
-
this.focus('startDate');
|
|
46802
|
-
}
|
|
46803
48860
|
} else {
|
|
46804
48861
|
this.value = newDate;
|
|
46805
|
-
if (this.dropdown.isPopoverVisible && !this.dropdown.isBibFullscreen) {
|
|
46806
|
-
this.focus('endDate');
|
|
46807
|
-
}
|
|
46808
48862
|
}
|
|
46809
48863
|
}
|
|
46810
48864
|
}
|
|
@@ -46844,6 +48898,23 @@ class AuroDatePicker extends AuroElement$6 {
|
|
|
46844
48898
|
this.resetInputs();
|
|
46845
48899
|
}
|
|
46846
48900
|
|
|
48901
|
+
/**
|
|
48902
|
+
* Checks whether a formatted date string matches a blackout date.
|
|
48903
|
+
* @private
|
|
48904
|
+
* @param {string} dateStr - A date string in the component's configured format.
|
|
48905
|
+
* @returns {boolean} True if the date is in the blackoutDates list.
|
|
48906
|
+
*/
|
|
48907
|
+
isBlackoutDate(dateStr) {
|
|
48908
|
+
if (!Array.isArray(this.blackoutDates) ||
|
|
48909
|
+
this.blackoutDates.length === 0 ||
|
|
48910
|
+
!dateStr ||
|
|
48911
|
+
!dateFormatter$1.isValidDate(dateStr)) {
|
|
48912
|
+
return false;
|
|
48913
|
+
}
|
|
48914
|
+
|
|
48915
|
+
return this.blackoutDates.includes(dateStr);
|
|
48916
|
+
}
|
|
48917
|
+
|
|
46847
48918
|
/**
|
|
46848
48919
|
* Validates value.
|
|
46849
48920
|
* @param {boolean} [force=false] - Whether to force validation.
|
|
@@ -46855,6 +48926,23 @@ class AuroDatePicker extends AuroElement$6 {
|
|
|
46855
48926
|
}
|
|
46856
48927
|
|
|
46857
48928
|
this.validation.validate(this, force);
|
|
48929
|
+
|
|
48930
|
+
// After standard validation, check blackout dates for typed input
|
|
48931
|
+
if (this.validity !== 'customError' &&
|
|
48932
|
+
(this.isBlackoutDate(this.value) || (this.range && this.isBlackoutDate(this.valueEnd)))) { // eslint-disable-line no-extra-parens
|
|
48933
|
+
const msg = this.setCustomValidityCustomError || 'Selected date is unavailable';
|
|
48934
|
+
this.validity = 'customError';
|
|
48935
|
+
this.errorMessage = msg;
|
|
48936
|
+
|
|
48937
|
+
this.dispatchEvent(new CustomEvent('auroFormElement-validated', {
|
|
48938
|
+
bubbles: true,
|
|
48939
|
+
composed: true,
|
|
48940
|
+
detail: {
|
|
48941
|
+
validity: this.validity,
|
|
48942
|
+
message: this.errorMessage
|
|
48943
|
+
}
|
|
48944
|
+
}));
|
|
48945
|
+
}
|
|
46858
48946
|
}
|
|
46859
48947
|
|
|
46860
48948
|
/**
|
|
@@ -46882,7 +48970,7 @@ class AuroDatePicker extends AuroElement$6 {
|
|
|
46882
48970
|
}
|
|
46883
48971
|
|
|
46884
48972
|
/**
|
|
46885
|
-
*
|
|
48973
|
+
* Lifecycle method to check if the locale is valid.
|
|
46886
48974
|
* @ignore
|
|
46887
48975
|
* @param {Map} changedProperties - The map of properties that have changed since the last update.
|
|
46888
48976
|
* @returns {void}
|
|
@@ -46893,17 +48981,20 @@ class AuroDatePicker extends AuroElement$6 {
|
|
|
46893
48981
|
const supported = Intl.DateTimeFormat.supportedLocalesOf([this.locale], { localeMatcher: 'lookup' });
|
|
46894
48982
|
this._validLocale = supported.length > 0 ? this.locale : 'en-US';
|
|
46895
48983
|
} catch {
|
|
46896
|
-
console.debug(`[AuroDatePicker] The locale "${this.locale}" is not valid. Falling back to "en-US".`);
|
|
48984
|
+
console.debug(`[AuroDatePicker] The locale "${this.locale}" is not valid. Falling back to "en-US".`); // eslint-disable-line no-console
|
|
46897
48985
|
this._validLocale = 'en-US';
|
|
46898
48986
|
}
|
|
46899
48987
|
|
|
46900
|
-
// if there was not an explicit format set, or the format set matches the previous locale's default format,
|
|
46901
|
-
// update to the new locale's default format
|
|
46902
48988
|
const previousLocaleFormat = getDateFormatFromLocale$1(changedProperties.get('locale'));
|
|
46903
48989
|
if (!changedProperties.has('format') && (!this.format || this.format.toLowerCase() === previousLocaleFormat)) {
|
|
46904
48990
|
this.format = getDateFormatFromLocale$1(this._validLocale);
|
|
46905
48991
|
}
|
|
46906
48992
|
}
|
|
48993
|
+
|
|
48994
|
+
if (changedProperties.has('referenceDates') && this.calendar) {
|
|
48995
|
+
this.calendar.requestUpdate();
|
|
48996
|
+
this.dispatchEvent(new CustomEvent('auroDatePicker-newSlotContent'));
|
|
48997
|
+
}
|
|
46907
48998
|
}
|
|
46908
48999
|
|
|
46909
49000
|
updated(changedProperties) {
|
|
@@ -46933,17 +49024,18 @@ class AuroDatePicker extends AuroElement$6 {
|
|
|
46933
49024
|
if (changedProperties.has('value')) {
|
|
46934
49025
|
|
|
46935
49026
|
// Change the calendar focus to the first valid date value only the first time the value is set
|
|
46936
|
-
if (!this.calendarFocusDate && dateFormatter$1.isValidDate(this.value)) {
|
|
46937
|
-
|
|
46938
|
-
this.calendarFocusDate = this.value;
|
|
49027
|
+
if (!this.calendarFocusDate && dateFormatter$1.isValidDate(this.value) && !this.dropdown.isPopoverVisible) {
|
|
49028
|
+
this.calendarFocusDate = this.value;
|
|
46939
49029
|
|
|
46940
|
-
|
|
46941
|
-
|
|
46942
|
-
}
|
|
49030
|
+
// Let the calendar know to scroll to the focus date when it is next rendered on mobile
|
|
49031
|
+
this.forceScrollOnNextMobileCalendarRender = true;
|
|
46943
49032
|
}
|
|
46944
49033
|
|
|
46945
49034
|
if (this.cellClickActive) {
|
|
46946
49035
|
this.cellClickActive = false;
|
|
49036
|
+
this.wasCellClick = true;
|
|
49037
|
+
} else {
|
|
49038
|
+
this.wasCellClick = false;
|
|
46947
49039
|
}
|
|
46948
49040
|
|
|
46949
49041
|
if (this.value && dateFormatter$1.isValidDate(this.value)) {
|
|
@@ -46961,13 +49053,48 @@ class AuroDatePicker extends AuroElement$6 {
|
|
|
46961
49053
|
|
|
46962
49054
|
// update the inputs — auro-input accepts ISO directly
|
|
46963
49055
|
if (this.inputList[0].value !== this.value) {
|
|
46964
|
-
|
|
49056
|
+
if (this.value) {
|
|
49057
|
+
this.inputList[0].value = this.value;
|
|
49058
|
+
} else {
|
|
49059
|
+
this.inputList[0].value = '';
|
|
49060
|
+
}
|
|
49061
|
+
}
|
|
49062
|
+
|
|
49063
|
+
if (this.value && this.value.length === this.inputList[0].lengthForType && !(this.wasCellClick && this.range)) {
|
|
49064
|
+
// Skip centralDate update when user clicked a cell in range mode
|
|
49065
|
+
// to prevent the displayed months from shifting
|
|
49066
|
+
this.centralDate = this.value;
|
|
49067
|
+
//TODO: TEST THIS CHANGE
|
|
49068
|
+
// this.calendarRenderUtil.updateCentralDate(this, this.value);
|
|
46965
49069
|
}
|
|
46966
49070
|
|
|
46967
49071
|
this.setHasValue();
|
|
46968
49072
|
}
|
|
46969
49073
|
|
|
49074
|
+
if (changedProperties.has('blackoutDates')) {
|
|
49075
|
+
// Force calendar cells to re-render with updated blackout state.
|
|
49076
|
+
// requestUpdate on the calendar alone is insufficient because cells
|
|
49077
|
+
// don't receive blackoutDates as a bound property. Dispatching the
|
|
49078
|
+
// slot content event triggers handleSlotContent → requestUpdate on each cell.
|
|
49079
|
+
if (this.calendar) {
|
|
49080
|
+
this.calendar.requestUpdate();
|
|
49081
|
+
this.dispatchEvent(new CustomEvent('auroDatePicker-newSlotContent'));
|
|
49082
|
+
}
|
|
49083
|
+
|
|
49084
|
+
// Re-run validation so that a previously valid value that now falls on
|
|
49085
|
+
// a blackout date is flagged, and vice versa.
|
|
49086
|
+
if (this.value || this.valueEnd) {
|
|
49087
|
+
this.validate();
|
|
49088
|
+
}
|
|
49089
|
+
}
|
|
49090
|
+
|
|
46970
49091
|
if (changedProperties.has('valueEnd') && this.inputList[1]) {
|
|
49092
|
+
if (this.cellClickActive) {
|
|
49093
|
+
this.cellClickActive = false;
|
|
49094
|
+
this.wasCellClick = true;
|
|
49095
|
+
} else {
|
|
49096
|
+
this.wasCellClick = false;
|
|
49097
|
+
}
|
|
46971
49098
|
|
|
46972
49099
|
// update the calendar
|
|
46973
49100
|
if (this.valueEndObject) {
|
|
@@ -46985,7 +49112,19 @@ class AuroDatePicker extends AuroElement$6 {
|
|
|
46985
49112
|
|
|
46986
49113
|
// update the inputs — auro-input accepts ISO directly
|
|
46987
49114
|
if (this.inputList[1].value !== this.valueEnd) {
|
|
46988
|
-
|
|
49115
|
+
if (this.valueEnd) {
|
|
49116
|
+
this.inputList[1].value = this.valueEnd;
|
|
49117
|
+
} else {
|
|
49118
|
+
this.inputList[1].value = '';
|
|
49119
|
+
}
|
|
49120
|
+
}
|
|
49121
|
+
|
|
49122
|
+
if (this.valueEnd && this.valueEnd.length === this.inputList[1].lengthForType && !this.wasCellClick) {
|
|
49123
|
+
// Skip centralDate update when user clicked a cell in range mode
|
|
49124
|
+
// to prevent the displayed months from shifting
|
|
49125
|
+
this.centralDate = this.valueEnd;
|
|
49126
|
+
// TODO: TEST THIS CHANGE
|
|
49127
|
+
// this.calendarRenderUtil.updateCentralDate(this, this.formattedValueEnd);
|
|
46989
49128
|
}
|
|
46990
49129
|
|
|
46991
49130
|
this.validate();
|
|
@@ -47028,16 +49167,14 @@ class AuroDatePicker extends AuroElement$6 {
|
|
|
47028
49167
|
this.calendarRenderUtil.updateCentralDate(this, this.minDateObject);
|
|
47029
49168
|
}
|
|
47030
49169
|
|
|
47031
|
-
if (!changedProperties.has('value') && this.valueObject) {
|
|
47032
|
-
|
|
47033
|
-
this.value = undefined;
|
|
47034
|
-
|
|
47035
|
-
if (this.range && this.valueEnd) {
|
|
47036
|
-
this.valueEnd = undefined;
|
|
47037
|
-
}
|
|
49170
|
+
if (!changedProperties.has('value') && this.valueObject && this.minDateObject > this.valueObject) {
|
|
49171
|
+
this.value = undefined;
|
|
47038
49172
|
|
|
47039
|
-
|
|
49173
|
+
if (this.range && this.valueEnd) {
|
|
49174
|
+
this.valueEnd = undefined;
|
|
47040
49175
|
}
|
|
49176
|
+
|
|
49177
|
+
this.calendarRenderUtil.updateCentralDate(this, this.minDateObject);
|
|
47041
49178
|
}
|
|
47042
49179
|
|
|
47043
49180
|
// When there is no focusDate and no value, set the focusDate to the minDate
|
|
@@ -47068,16 +49205,14 @@ class AuroDatePicker extends AuroElement$6 {
|
|
|
47068
49205
|
}
|
|
47069
49206
|
}
|
|
47070
49207
|
|
|
47071
|
-
if (this.maxDate && !changedProperties.has('value') && this.valueObject) {
|
|
47072
|
-
|
|
47073
|
-
this.value = undefined;
|
|
47074
|
-
|
|
47075
|
-
if (this.range && this.valueEnd) {
|
|
47076
|
-
this.valueEnd = undefined;
|
|
47077
|
-
}
|
|
49208
|
+
if (this.maxDate && !changedProperties.has('value') && this.valueObject && this.maxDateObject < this.valueObject) {
|
|
49209
|
+
this.value = undefined;
|
|
47078
49210
|
|
|
47079
|
-
|
|
49211
|
+
if (this.range && this.valueEnd) {
|
|
49212
|
+
this.valueEnd = undefined;
|
|
47080
49213
|
}
|
|
49214
|
+
|
|
49215
|
+
this.calendarRenderUtil.updateCentralDate(this, this.maxDateObject);
|
|
47081
49216
|
}
|
|
47082
49217
|
|
|
47083
49218
|
this.calendar.requestUpdate();
|
|
@@ -47135,6 +49270,7 @@ class AuroDatePicker extends AuroElement$6 {
|
|
|
47135
49270
|
}
|
|
47136
49271
|
|
|
47137
49272
|
firstUpdated() {
|
|
49273
|
+
|
|
47138
49274
|
// Add the tag name as an attribute if it is different than the component name
|
|
47139
49275
|
this.runtimeUtils.handleComponentTagRename(this, 'auro-datepicker');
|
|
47140
49276
|
|
|
@@ -47417,7 +49553,7 @@ class AuroDatePicker extends AuroElement$6 {
|
|
|
47417
49553
|
/**
|
|
47418
49554
|
* Handles click on the clear button.
|
|
47419
49555
|
* @private
|
|
47420
|
-
* @param {MouseEvent} event - The
|
|
49556
|
+
* @param {MouseEvent} event - The mouse event from the clear button click.
|
|
47421
49557
|
* @returns {void}
|
|
47422
49558
|
*/
|
|
47423
49559
|
handleClearClick(event) {
|
|
@@ -47565,7 +49701,7 @@ class AuroDatePicker extends AuroElement$6 {
|
|
|
47565
49701
|
// Base HTML render() handles dropdown and calendar bib
|
|
47566
49702
|
return u$c`
|
|
47567
49703
|
<!-- Hidden slot for clear button aria-label -->
|
|
47568
|
-
<slot name="ariaLabel.input.clear" hidden @slotchange=${this.requestUpdate}></slot>
|
|
49704
|
+
<slot name="ariaLabel.input.clear" hidden @slotchange=${() => this.requestUpdate()}></slot>
|
|
47569
49705
|
|
|
47570
49706
|
<${this.dropdownTag}
|
|
47571
49707
|
appearance="${this.onDark ? 'inverse' : this.appearance}"
|
|
@@ -47582,6 +49718,7 @@ class AuroDatePicker extends AuroElement$6 {
|
|
|
47582
49718
|
.shape="${this.shape}"
|
|
47583
49719
|
.size="${this.size}"
|
|
47584
49720
|
class="${e$3(dropdownElementClassMap)}"
|
|
49721
|
+
desktopModal
|
|
47585
49722
|
disableEventShow
|
|
47586
49723
|
for="dropdownMenu"
|
|
47587
49724
|
part="dropdown"
|
|
@@ -50838,7 +52975,7 @@ function applyKeyboardStrategy$4(component, strategy, options = {}) {
|
|
|
50838
52975
|
});
|
|
50839
52976
|
}
|
|
50840
52977
|
|
|
50841
|
-
var styleCss$2$6 = i$7`:host{position:fixed;z-index:var(--depth-tooltip, 400);display:none;isolation:isolate}:host dialog{width:auto;max-width:none;height:auto;max-height:none;padding:0;border:none;margin:0;outline:none;transform:translateZ(0)}:host dialog::backdrop{background:transparent}:host(:not([isfullscreen])) dialog{position:relative;inset:unset}:host(:not([isfullscreen])) .container.shape-box{border-radius:unset}:host(:not([isfullscreen])) .container[class*=shape-pill],:host(:not([isfullscreen])) .container[class*=shape-snowflake]{border-radius:30px}:host(:not([isfullscreen])) .container[class*=shape-rounded]{border-radius:16px}:host(:not([matchWidth])) .container{min-width:fit-content}:host([isfullscreen]){position:fixed;top:0;left:0}:host([isfullscreen]) .container{width:100dvw;max-width:none;height:100dvh;max-height:none;border-radius:unset;margin-top:0;box-shadow:unset;overscroll-behavior:contain}:host([isfullscreen]) .container::backdrop{background:var(--ds-color-background-primary, #fff)}:host(:popover-open){position:fixed;overflow:visible;padding:0;border:none;margin:0;background:transparent;inset:unset;outline:none}:host([data-show]){display:flex}:host([common]:not([isfullscreen])) .container,:host([rounded]:not([isfullscreen])) .container{border-radius:var(--ds-border-radius, 0.375rem)}:host([common][isfullscreen]) .container,:host([rounded][isfullscreen]) .container{border-radius:unset;box-shadow:unset}.container{display:inline-block;overflow:auto;box-sizing:border-box;border-radius:var(--ds-border-radius, 0.375rem);margin:var(--ds-size-50, 0.25rem) 0}.util_displayHiddenVisually{position:absolute;overflow:hidden;width:1px;height:1px;padding:0;border:0;margin:-1px;clip-path:inset(50%);white-space:nowrap}`;
|
|
52978
|
+
var styleCss$2$6 = i$7`:host{position:fixed;z-index:var(--depth-tooltip, 400);display:none;isolation:isolate}:host dialog{width:auto;max-width:none;height:auto;max-height:none;padding:0;border:none;margin:0;outline:none;transform:translateZ(0)}:host dialog::backdrop{background:transparent}:host(:not([isfullscreen])) dialog{position:relative;inset:unset}:host(:not([isfullscreen])) .container.shape-box{border-radius:unset}:host(:not([isfullscreen])) .container[class*=shape-pill],:host(:not([isfullscreen])) .container[class*=shape-snowflake]{border-radius:30px}:host(:not([isfullscreen])) .container[class*=shape-rounded]{border-radius:16px}:host([desktopmodal]:popover-open)::backdrop{background:transparent}:host(:not([matchWidth])) .container{min-width:fit-content}:host([isfullscreen]){position:fixed;top:0;left:0}:host([isfullscreen]) .container{width:100dvw;max-width:none;height:100dvh;max-height:none;border-radius:unset;margin-top:0;box-shadow:unset;overscroll-behavior:contain}:host([isfullscreen]) .container::backdrop{background:var(--ds-color-background-primary, #fff)}:host(:popover-open){position:fixed;overflow:visible;padding:0;border:none;margin:0;background:transparent;inset:unset;outline:none}:host([data-show]){display:flex}:host([common]:not([isfullscreen])) .container,:host([rounded]:not([isfullscreen])) .container{border-radius:var(--ds-border-radius, 0.375rem)}:host([common][isfullscreen]) .container,:host([rounded][isfullscreen]) .container{border-radius:unset;box-shadow:unset}.container{display:inline-block;overflow:auto;box-sizing:border-box;border-radius:var(--ds-border-radius, 0.375rem);margin:var(--ds-size-50, 0.25rem) 0}.util_displayHiddenVisually{position:absolute;overflow:hidden;width:1px;height:1px;padding:0;border:0;margin:-1px;clip-path:inset(50%);white-space:nowrap}`;
|
|
50842
52979
|
|
|
50843
52980
|
var colorCss$2$6 = i$7`.container{background-color:var(--ds-auro-dropdownbib-container-color);box-shadow:var(--ds-auro-dropdownbib-boxshadow-color);color:var(--ds-auro-dropdownbib-text-color)}`;
|
|
50844
52981
|
|
|
@@ -51469,7 +53606,7 @@ let AuroHelpText$7 = class AuroHelpText extends i$4 {
|
|
|
51469
53606
|
}
|
|
51470
53607
|
};
|
|
51471
53608
|
|
|
51472
|
-
var formkitVersion$7 = '
|
|
53609
|
+
var formkitVersion$7 = '202606081904';
|
|
51473
53610
|
|
|
51474
53611
|
let AuroElement$5 = class AuroElement extends i$4 {
|
|
51475
53612
|
static get properties() {
|
|
@@ -51649,6 +53786,7 @@ let AuroDropdown$2 = class AuroDropdown extends AuroElement$5 {
|
|
|
51649
53786
|
_intializeDefaults() {
|
|
51650
53787
|
this.appearance = 'default';
|
|
51651
53788
|
this.chevron = false;
|
|
53789
|
+
this.desktopModal = false;
|
|
51652
53790
|
this.disabled = false;
|
|
51653
53791
|
this.disableKeyboardHandling = false;
|
|
51654
53792
|
this.error = false;
|
|
@@ -51829,6 +53967,14 @@ let AuroDropdown$2 = class AuroDropdown extends AuroElement$5 {
|
|
|
51829
53967
|
reflect: true
|
|
51830
53968
|
},
|
|
51831
53969
|
|
|
53970
|
+
/**
|
|
53971
|
+
* If declared, the dropdown will behave as a modal dialog when in a desktop viewport size.
|
|
53972
|
+
*/
|
|
53973
|
+
desktopModal: {
|
|
53974
|
+
type: Boolean,
|
|
53975
|
+
reflect: true
|
|
53976
|
+
},
|
|
53977
|
+
|
|
51832
53978
|
/**
|
|
51833
53979
|
* If declared, the dropdown will only show by calling the API .show() public method.
|
|
51834
53980
|
*/
|
|
@@ -52116,6 +54262,15 @@ let AuroDropdown$2 = class AuroDropdown extends AuroElement$5 {
|
|
|
52116
54262
|
|
|
52117
54263
|
disconnectedCallback() {
|
|
52118
54264
|
super.disconnectedCallback();
|
|
54265
|
+
this._clearPageInert();
|
|
54266
|
+
if (this._bibTabHandler) {
|
|
54267
|
+
this.removeEventListener('keydown', this._bibTabHandler);
|
|
54268
|
+
this._bibTabHandler = undefined;
|
|
54269
|
+
}
|
|
54270
|
+
if (this.focusTrap) {
|
|
54271
|
+
this.focusTrap.disconnect();
|
|
54272
|
+
this.focusTrap = undefined;
|
|
54273
|
+
}
|
|
52119
54274
|
if (this.floater) {
|
|
52120
54275
|
this.floater.hideBib('disconnect');
|
|
52121
54276
|
this.floater.disconnect();
|
|
@@ -52143,19 +54298,45 @@ let AuroDropdown$2 = class AuroDropdown extends AuroElement$5 {
|
|
|
52143
54298
|
if (this.isPopoverVisible) {
|
|
52144
54299
|
// Fullscreen: use showModal() for native accessibility (inert outside, focus trap)
|
|
52145
54300
|
// Desktop: use show() for Floating UI positioning + FocusTrap for focus management
|
|
52146
|
-
|
|
52147
|
-
this.
|
|
54301
|
+
this.bibElement.value.open(this.isBibFullscreen);
|
|
54302
|
+
this.updateFocusTrap();
|
|
54303
|
+
|
|
54304
|
+
// Desktop modal: make siblings inert so content outside is not interactive
|
|
54305
|
+
if (this.desktopModal && !this.isBibFullscreen) {
|
|
54306
|
+
this._setPageInert();
|
|
54307
|
+
}
|
|
52148
54308
|
} else {
|
|
52149
54309
|
this.bibElement.value.close();
|
|
54310
|
+
this._clearPageInert();
|
|
52150
54311
|
}
|
|
52151
54312
|
}
|
|
52152
54313
|
|
|
52153
54314
|
// When fullscreen strategy changes while open, re-open dialog with correct mode
|
|
52154
54315
|
// (e.g. resizing from desktop → mobile while dropdown is open)
|
|
52155
54316
|
if (changedProperties.has('isBibFullscreen') && this.isPopoverVisible && this.bibElement.value) {
|
|
52156
|
-
const useModal = this.isBibFullscreen;
|
|
52157
54317
|
this.bibElement.value.close();
|
|
52158
|
-
this.bibElement.value.open(
|
|
54318
|
+
this.bibElement.value.open(this.isBibFullscreen);
|
|
54319
|
+
|
|
54320
|
+
// Re-initialize focus management for the new strategy
|
|
54321
|
+
this.updateFocusTrap();
|
|
54322
|
+
|
|
54323
|
+
// Toggle inert: desktop modal needs it, fullscreen showModal() handles it natively
|
|
54324
|
+
if (this.desktopModal && !this.isBibFullscreen) {
|
|
54325
|
+
this._setPageInert();
|
|
54326
|
+
} else {
|
|
54327
|
+
this._clearPageInert();
|
|
54328
|
+
}
|
|
54329
|
+
}
|
|
54330
|
+
|
|
54331
|
+
// Handle desktopModal toggled while the dropdown is already open.
|
|
54332
|
+
// Re-initialize focus trapping and page inert state to match the new mode.
|
|
54333
|
+
if (changedProperties.has('desktopModal') && this.isPopoverVisible && !this.isBibFullscreen) {
|
|
54334
|
+
this.updateFocusTrap();
|
|
54335
|
+
if (this.desktopModal) {
|
|
54336
|
+
this._setPageInert();
|
|
54337
|
+
} else {
|
|
54338
|
+
this._clearPageInert();
|
|
54339
|
+
}
|
|
52159
54340
|
}
|
|
52160
54341
|
}
|
|
52161
54342
|
|
|
@@ -52165,8 +54346,14 @@ let AuroDropdown$2 = class AuroDropdown extends AuroElement$5 {
|
|
|
52165
54346
|
* @param {CustomEvent} event - The custom event that contains the dropdown toggle information.
|
|
52166
54347
|
*/
|
|
52167
54348
|
handleDropdownToggle(event) {
|
|
52168
|
-
this.updateFocusTrap();
|
|
52169
54349
|
this.isPopoverVisible = event.detail.expanded;
|
|
54350
|
+
|
|
54351
|
+
// Tear down FocusTrap when closing. Creation happens in updated()
|
|
54352
|
+
// after the dialog is open so getFocusableElements can find content.
|
|
54353
|
+
if (!this.isPopoverVisible) {
|
|
54354
|
+
this.updateFocusTrap();
|
|
54355
|
+
}
|
|
54356
|
+
|
|
52170
54357
|
const eventType = event.detail.eventType || "unknown";
|
|
52171
54358
|
if (!this.isPopoverVisible && this.hasFocus && eventType === "keydown") {
|
|
52172
54359
|
this.trigger.focus();
|
|
@@ -52265,19 +54452,194 @@ let AuroDropdown$2 = class AuroDropdown extends AuroElement$5 {
|
|
|
52265
54452
|
* @private
|
|
52266
54453
|
*/
|
|
52267
54454
|
updateFocusTrap() {
|
|
54455
|
+
// Always clean up existing handlers/traps before setting up new ones
|
|
54456
|
+
// to prevent duplicate listeners on repeated calls.
|
|
54457
|
+
if (this._bibTabHandler) {
|
|
54458
|
+
this.removeEventListener('keydown', this._bibTabHandler);
|
|
54459
|
+
this._bibTabHandler = undefined;
|
|
54460
|
+
}
|
|
54461
|
+
|
|
54462
|
+
if (this.focusTrap) {
|
|
54463
|
+
this.focusTrap.disconnect();
|
|
54464
|
+
this.focusTrap = undefined;
|
|
54465
|
+
}
|
|
54466
|
+
|
|
52268
54467
|
if (this.isPopoverVisible) {
|
|
52269
54468
|
if (!this.isBibFullscreen) {
|
|
52270
|
-
|
|
52271
|
-
|
|
52272
|
-
|
|
54469
|
+
if (this.desktopModal) {
|
|
54470
|
+
// Desktop modal: trap focus only within the bib content.
|
|
54471
|
+
// Can't use FocusTrap on the bib element because keydown events
|
|
54472
|
+
// from slotted content bubble through the dropdown host (light DOM),
|
|
54473
|
+
// not through the bib (shadow projection target). Using FocusTrap
|
|
54474
|
+
// on the dropdown would include the trigger in the tab cycle.
|
|
54475
|
+
// Instead, listen for Tab on the dropdown and manually wrap focus
|
|
54476
|
+
// within the bib's focusable elements.
|
|
54477
|
+
this._bibTabHandler = (event) => {
|
|
54478
|
+
if (event.key !== 'Tab') {
|
|
54479
|
+
return;
|
|
54480
|
+
}
|
|
54481
|
+
|
|
54482
|
+
// Collect focusable elements from the bib content.
|
|
54483
|
+
const focusables = getFocusableElements$2(this.bibContent);
|
|
54484
|
+
|
|
54485
|
+
// Fallback: try from slotted content directly
|
|
54486
|
+
if (!focusables.length) {
|
|
54487
|
+
const slot = this.shadowRoot.querySelector('.slotContent slot');
|
|
54488
|
+
const assignedNodes = slot.assignedNodes({ flatten: true });
|
|
54489
|
+
|
|
54490
|
+
for (const node of assignedNodes) {
|
|
54491
|
+
if (node.nodeType === Node.ELEMENT_NODE) {
|
|
54492
|
+
focusables.push(...getFocusableElements$2(node));
|
|
54493
|
+
}
|
|
54494
|
+
}
|
|
54495
|
+
}
|
|
54496
|
+
|
|
54497
|
+
if (!focusables.length) {
|
|
54498
|
+
return;
|
|
54499
|
+
}
|
|
54500
|
+
|
|
54501
|
+
event.preventDefault();
|
|
54502
|
+
|
|
54503
|
+
const direction = event.shiftKey ? -1 : 1; // eslint-disable-line no-magic-numbers
|
|
54504
|
+
|
|
54505
|
+
// Walk the active element chain through shadow roots
|
|
54506
|
+
const actives = this._getActiveElements();
|
|
54507
|
+
|
|
54508
|
+
let idx = focusables.findIndex((el) => actives.includes(el));
|
|
54509
|
+
|
|
54510
|
+
if (idx === -1) { // eslint-disable-line no-magic-numbers
|
|
54511
|
+
// Focus is not on a known element — move to first/last
|
|
54512
|
+
idx = direction === 1 ? -1 : focusables.length; // eslint-disable-line no-magic-numbers
|
|
54513
|
+
}
|
|
54514
|
+
|
|
54515
|
+
// Try each element in order, skipping any that can't receive focus
|
|
54516
|
+
// (e.g. hidden elements, elements in collapsed sections)
|
|
54517
|
+
for (let index = 0; index < focusables.length; index++) { // eslint-disable-line no-plusplus
|
|
54518
|
+
let nextIdx = idx + direction;
|
|
54519
|
+
|
|
54520
|
+
// Wrap around
|
|
54521
|
+
if (nextIdx < 0) {
|
|
54522
|
+
nextIdx = focusables.length - 1;
|
|
54523
|
+
} else if (nextIdx >= focusables.length) {
|
|
54524
|
+
nextIdx = 0;
|
|
54525
|
+
}
|
|
54526
|
+
|
|
54527
|
+
focusables[nextIdx].focus();
|
|
54528
|
+
|
|
54529
|
+
// Verify focus actually moved to the target
|
|
54530
|
+
const newActives = this._getActiveElements();
|
|
54531
|
+
|
|
54532
|
+
if (newActives.includes(focusables[nextIdx])) {
|
|
54533
|
+
return;
|
|
54534
|
+
}
|
|
54535
|
+
|
|
54536
|
+
// Focus didn't stick — skip this element and try the next
|
|
54537
|
+
idx = nextIdx;
|
|
54538
|
+
}
|
|
54539
|
+
};
|
|
54540
|
+
this.addEventListener('keydown', this._bibTabHandler);
|
|
54541
|
+
|
|
54542
|
+
// Move initial focus into the bib content, matching FocusTrap behavior
|
|
54543
|
+
requestAnimationFrame(() => {
|
|
54544
|
+
const focusables = getFocusableElements$2(this.bibContent);
|
|
54545
|
+
if (focusables.length) {
|
|
54546
|
+
focusables[0].focus();
|
|
54547
|
+
}
|
|
54548
|
+
});
|
|
54549
|
+
} else {
|
|
54550
|
+
// Normal desktop: use FocusTrap on the bib element
|
|
54551
|
+
this.focusTrap = new FocusTrap$2(this.bibContent);
|
|
54552
|
+
this.focusTrap.focusFirstElement();
|
|
54553
|
+
}
|
|
52273
54554
|
}
|
|
52274
54555
|
// Fullscreen: showModal() provides native focus trapping
|
|
54556
|
+
}
|
|
54557
|
+
}
|
|
54558
|
+
|
|
54559
|
+
/**
|
|
54560
|
+
* Returns the chain of active (focused) elements through shadow roots.
|
|
54561
|
+
* @private
|
|
54562
|
+
* @returns {Array<HTMLElement>}
|
|
54563
|
+
*/
|
|
54564
|
+
_getActiveElements() {
|
|
54565
|
+
let { activeElement } = document;
|
|
54566
|
+
const actives = [activeElement];
|
|
54567
|
+
|
|
54568
|
+
while (activeElement?.shadowRoot?.activeElement) {
|
|
54569
|
+
activeElement = activeElement.shadowRoot.activeElement;
|
|
54570
|
+
actives.push(activeElement);
|
|
54571
|
+
}
|
|
54572
|
+
|
|
54573
|
+
return actives;
|
|
54574
|
+
}
|
|
54575
|
+
|
|
54576
|
+
/**
|
|
54577
|
+
* Sets `inert` on sibling elements of the dropdown's top-level host
|
|
54578
|
+
* so that content outside the dropdown is not interactive while the modal is open.
|
|
54579
|
+
* Walks up through shadow DOM boundaries to find the outermost host element
|
|
54580
|
+
* in the light DOM, then sets `inert` on siblings at each ancestor level
|
|
54581
|
+
* to ensure all page content outside the host subtree is inert.
|
|
54582
|
+
* @private
|
|
54583
|
+
*/
|
|
54584
|
+
_setPageInert() {
|
|
54585
|
+
if (this._inertSiblings) {
|
|
52275
54586
|
return;
|
|
52276
54587
|
}
|
|
52277
54588
|
|
|
52278
|
-
|
|
52279
|
-
|
|
52280
|
-
|
|
54589
|
+
this._inertSiblings = [];
|
|
54590
|
+
|
|
54591
|
+
// Walk up through shadow DOM boundaries to find the topmost host
|
|
54592
|
+
// element in the light DOM. For example, if this dropdown is inside
|
|
54593
|
+
// auro-datepicker's shadow DOM, we walk up to the datepicker element
|
|
54594
|
+
// so we set inert on its siblings — not on the datepicker itself.
|
|
54595
|
+
let host = this;
|
|
54596
|
+
while (host.getRootNode() instanceof ShadowRoot) {
|
|
54597
|
+
host = host.getRootNode().host;
|
|
54598
|
+
}
|
|
54599
|
+
|
|
54600
|
+
// Walk up the ancestor chain, inerting siblings at each level
|
|
54601
|
+
// to ensure the entire page outside the host subtree is inert.
|
|
54602
|
+
// Uses a reference counter (data-auro-inert-count) so multiple
|
|
54603
|
+
// simultaneous modal dropdowns share inert state safely.
|
|
54604
|
+
let current = host;
|
|
54605
|
+
while (current.parentElement) {
|
|
54606
|
+
const parent = current.parentElement;
|
|
54607
|
+
for (const sibling of parent.children) {
|
|
54608
|
+
if (sibling !== current) {
|
|
54609
|
+
const count = parseInt(sibling.dataset.auroInertCount || '0', 10);
|
|
54610
|
+
if (count === 0) {
|
|
54611
|
+
sibling.dataset.auroInertWas = sibling.inert ? 'true' : 'false';
|
|
54612
|
+
}
|
|
54613
|
+
sibling.dataset.auroInertCount = String(count + 1);
|
|
54614
|
+
sibling.inert = true;
|
|
54615
|
+
this._inertSiblings.push(sibling);
|
|
54616
|
+
}
|
|
54617
|
+
}
|
|
54618
|
+
current = parent;
|
|
54619
|
+
}
|
|
54620
|
+
}
|
|
54621
|
+
|
|
54622
|
+
/**
|
|
54623
|
+
* Restores `inert` state on siblings that were tracked by `_setPageInert`.
|
|
54624
|
+
* Uses reference counting so inert is only cleared when the last modal
|
|
54625
|
+
* dropdown releases a given element. Preserves the original inert state
|
|
54626
|
+
* so externally-inerted elements are not inadvertently re-enabled.
|
|
54627
|
+
* @private
|
|
54628
|
+
*/
|
|
54629
|
+
_clearPageInert() {
|
|
54630
|
+
if (this._inertSiblings) {
|
|
54631
|
+
for (const sibling of this._inertSiblings) {
|
|
54632
|
+
const count = parseInt(sibling.dataset.auroInertCount || '1', 10) - 1;
|
|
54633
|
+
if (count <= 0) {
|
|
54634
|
+
const wasInert = sibling.dataset.auroInertWas === 'true';
|
|
54635
|
+
delete sibling.dataset.auroInertCount;
|
|
54636
|
+
delete sibling.dataset.auroInertWas;
|
|
54637
|
+
sibling.inert = wasInert;
|
|
54638
|
+
} else {
|
|
54639
|
+
sibling.dataset.auroInertCount = String(count);
|
|
54640
|
+
}
|
|
54641
|
+
}
|
|
54642
|
+
this._inertSiblings = undefined;
|
|
52281
54643
|
}
|
|
52282
54644
|
}
|
|
52283
54645
|
|
|
@@ -52516,6 +54878,7 @@ let AuroDropdown$2 = class AuroDropdown extends AuroElement$5 {
|
|
|
52516
54878
|
shape="${this.shape}"
|
|
52517
54879
|
?data-show="${this.isPopoverVisible}"
|
|
52518
54880
|
?isfullscreen="${this.isBibFullscreen}"
|
|
54881
|
+
?desktopmodal="${this.desktopModal}"
|
|
52519
54882
|
.dialogLabel="${this.bibDialogLabel}"
|
|
52520
54883
|
${n$6(this.bibElement)}
|
|
52521
54884
|
>
|
|
@@ -53648,7 +56011,7 @@ let AuroHelpText$6 = class AuroHelpText extends i$4 {
|
|
|
53648
56011
|
}
|
|
53649
56012
|
};
|
|
53650
56013
|
|
|
53651
|
-
var formkitVersion$6 = '
|
|
56014
|
+
var formkitVersion$6 = '202606081904';
|
|
53652
56015
|
|
|
53653
56016
|
// Copyright (c) 2026 Alaska Airlines. All rights reserved. Licensed under the Apache-2.0 license
|
|
53654
56017
|
// See LICENSE in the project root for license information.
|
|
@@ -54386,6 +56749,14 @@ let AuroBibtemplate$2 = class AuroBibtemplate extends i$4 {
|
|
|
54386
56749
|
large: {
|
|
54387
56750
|
type: Boolean,
|
|
54388
56751
|
reflect: true
|
|
56752
|
+
},
|
|
56753
|
+
|
|
56754
|
+
/**
|
|
56755
|
+
* If declared, the footer slot will be rendered even when not in fullscreen mode.
|
|
56756
|
+
*/
|
|
56757
|
+
showFooter: {
|
|
56758
|
+
type: Boolean,
|
|
56759
|
+
reflect: true
|
|
54389
56760
|
}
|
|
54390
56761
|
};
|
|
54391
56762
|
}
|
|
@@ -54488,7 +56859,7 @@ let AuroBibtemplate$2 = class AuroBibtemplate extends i$4 {
|
|
|
54488
56859
|
<slot></slot>
|
|
54489
56860
|
</div>
|
|
54490
56861
|
|
|
54491
|
-
${this.isFullscreen ? u$c`
|
|
56862
|
+
${this.isFullscreen || this.showFooter ? u$c`
|
|
54492
56863
|
<div id="footerContainer">
|
|
54493
56864
|
<slot name="footer"></slot>
|
|
54494
56865
|
</div>` : null}
|
|
@@ -56644,7 +59015,7 @@ let AuroHelpText$5 = class AuroHelpText extends i$4 {
|
|
|
56644
59015
|
}
|
|
56645
59016
|
};
|
|
56646
59017
|
|
|
56647
|
-
var formkitVersion$5 = '
|
|
59018
|
+
var formkitVersion$5 = '202606081904';
|
|
56648
59019
|
|
|
56649
59020
|
// Copyright (c) Alaska Air. All right reserved. Licensed under the Apache-2.0 license
|
|
56650
59021
|
// See LICENSE in the project root for license information.
|
|
@@ -58394,7 +60765,7 @@ let AuroHelpText$4 = class AuroHelpText extends i$4 {
|
|
|
58394
60765
|
}
|
|
58395
60766
|
};
|
|
58396
60767
|
|
|
58397
|
-
var formkitVersion$4 = '
|
|
60768
|
+
var formkitVersion$4 = '202606081904';
|
|
58398
60769
|
|
|
58399
60770
|
// Copyright (c) 2026 Alaska Airlines. All rights reserved. Licensed under the Apache-2.0 license
|
|
58400
60771
|
// See LICENSE in the project root for license information.
|
|
@@ -62961,7 +65332,7 @@ function applyKeyboardStrategy$2(component, strategy, options = {}) {
|
|
|
62961
65332
|
});
|
|
62962
65333
|
}
|
|
62963
65334
|
|
|
62964
|
-
var styleCss$2$1$1 = i$7`:host{position:fixed;z-index:var(--depth-tooltip, 400);display:none;isolation:isolate}:host dialog{width:auto;max-width:none;height:auto;max-height:none;padding:0;border:none;margin:0;outline:none;transform:translateZ(0)}:host dialog::backdrop{background:transparent}:host(:not([isfullscreen])) dialog{position:relative;inset:unset}:host(:not([isfullscreen])) .container.shape-box{border-radius:unset}:host(:not([isfullscreen])) .container[class*=shape-pill],:host(:not([isfullscreen])) .container[class*=shape-snowflake]{border-radius:30px}:host(:not([isfullscreen])) .container[class*=shape-rounded]{border-radius:16px}:host(:not([matchWidth])) .container{min-width:fit-content}:host([isfullscreen]){position:fixed;top:0;left:0}:host([isfullscreen]) .container{width:100dvw;max-width:none;height:100dvh;max-height:none;border-radius:unset;margin-top:0;box-shadow:unset;overscroll-behavior:contain}:host([isfullscreen]) .container::backdrop{background:var(--ds-color-background-primary, #fff)}:host(:popover-open){position:fixed;overflow:visible;padding:0;border:none;margin:0;background:transparent;inset:unset;outline:none}:host([data-show]){display:flex}:host([common]:not([isfullscreen])) .container,:host([rounded]:not([isfullscreen])) .container{border-radius:var(--ds-border-radius, 0.375rem)}:host([common][isfullscreen]) .container,:host([rounded][isfullscreen]) .container{border-radius:unset;box-shadow:unset}.container{display:inline-block;overflow:auto;box-sizing:border-box;border-radius:var(--ds-border-radius, 0.375rem);margin:var(--ds-size-50, 0.25rem) 0}.util_displayHiddenVisually{position:absolute;overflow:hidden;width:1px;height:1px;padding:0;border:0;margin:-1px;clip-path:inset(50%);white-space:nowrap}`;
|
|
65335
|
+
var styleCss$2$1$1 = i$7`:host{position:fixed;z-index:var(--depth-tooltip, 400);display:none;isolation:isolate}:host dialog{width:auto;max-width:none;height:auto;max-height:none;padding:0;border:none;margin:0;outline:none;transform:translateZ(0)}:host dialog::backdrop{background:transparent}:host(:not([isfullscreen])) dialog{position:relative;inset:unset}:host(:not([isfullscreen])) .container.shape-box{border-radius:unset}:host(:not([isfullscreen])) .container[class*=shape-pill],:host(:not([isfullscreen])) .container[class*=shape-snowflake]{border-radius:30px}:host(:not([isfullscreen])) .container[class*=shape-rounded]{border-radius:16px}:host([desktopmodal]:popover-open)::backdrop{background:transparent}:host(:not([matchWidth])) .container{min-width:fit-content}:host([isfullscreen]){position:fixed;top:0;left:0}:host([isfullscreen]) .container{width:100dvw;max-width:none;height:100dvh;max-height:none;border-radius:unset;margin-top:0;box-shadow:unset;overscroll-behavior:contain}:host([isfullscreen]) .container::backdrop{background:var(--ds-color-background-primary, #fff)}:host(:popover-open){position:fixed;overflow:visible;padding:0;border:none;margin:0;background:transparent;inset:unset;outline:none}:host([data-show]){display:flex}:host([common]:not([isfullscreen])) .container,:host([rounded]:not([isfullscreen])) .container{border-radius:var(--ds-border-radius, 0.375rem)}:host([common][isfullscreen]) .container,:host([rounded][isfullscreen]) .container{border-radius:unset;box-shadow:unset}.container{display:inline-block;overflow:auto;box-sizing:border-box;border-radius:var(--ds-border-radius, 0.375rem);margin:var(--ds-size-50, 0.25rem) 0}.util_displayHiddenVisually{position:absolute;overflow:hidden;width:1px;height:1px;padding:0;border:0;margin:-1px;clip-path:inset(50%);white-space:nowrap}`;
|
|
62965
65336
|
|
|
62966
65337
|
var colorCss$2$1 = i$7`.container{background-color:var(--ds-auro-dropdownbib-container-color);box-shadow:var(--ds-auro-dropdownbib-boxshadow-color);color:var(--ds-auro-dropdownbib-text-color)}`;
|
|
62967
65338
|
|
|
@@ -63592,7 +65963,7 @@ let AuroHelpText$2 = class AuroHelpText extends i$4 {
|
|
|
63592
65963
|
}
|
|
63593
65964
|
};
|
|
63594
65965
|
|
|
63595
|
-
var formkitVersion$2 = '
|
|
65966
|
+
var formkitVersion$2 = '202606081904';
|
|
63596
65967
|
|
|
63597
65968
|
let AuroElement$2$1 = class AuroElement extends i$4 {
|
|
63598
65969
|
static get properties() {
|
|
@@ -63772,6 +66143,7 @@ let AuroDropdown$1 = class AuroDropdown extends AuroElement$2$1 {
|
|
|
63772
66143
|
_intializeDefaults() {
|
|
63773
66144
|
this.appearance = 'default';
|
|
63774
66145
|
this.chevron = false;
|
|
66146
|
+
this.desktopModal = false;
|
|
63775
66147
|
this.disabled = false;
|
|
63776
66148
|
this.disableKeyboardHandling = false;
|
|
63777
66149
|
this.error = false;
|
|
@@ -63952,6 +66324,14 @@ let AuroDropdown$1 = class AuroDropdown extends AuroElement$2$1 {
|
|
|
63952
66324
|
reflect: true
|
|
63953
66325
|
},
|
|
63954
66326
|
|
|
66327
|
+
/**
|
|
66328
|
+
* If declared, the dropdown will behave as a modal dialog when in a desktop viewport size.
|
|
66329
|
+
*/
|
|
66330
|
+
desktopModal: {
|
|
66331
|
+
type: Boolean,
|
|
66332
|
+
reflect: true
|
|
66333
|
+
},
|
|
66334
|
+
|
|
63955
66335
|
/**
|
|
63956
66336
|
* If declared, the dropdown will only show by calling the API .show() public method.
|
|
63957
66337
|
*/
|
|
@@ -64239,6 +66619,15 @@ let AuroDropdown$1 = class AuroDropdown extends AuroElement$2$1 {
|
|
|
64239
66619
|
|
|
64240
66620
|
disconnectedCallback() {
|
|
64241
66621
|
super.disconnectedCallback();
|
|
66622
|
+
this._clearPageInert();
|
|
66623
|
+
if (this._bibTabHandler) {
|
|
66624
|
+
this.removeEventListener('keydown', this._bibTabHandler);
|
|
66625
|
+
this._bibTabHandler = undefined;
|
|
66626
|
+
}
|
|
66627
|
+
if (this.focusTrap) {
|
|
66628
|
+
this.focusTrap.disconnect();
|
|
66629
|
+
this.focusTrap = undefined;
|
|
66630
|
+
}
|
|
64242
66631
|
if (this.floater) {
|
|
64243
66632
|
this.floater.hideBib('disconnect');
|
|
64244
66633
|
this.floater.disconnect();
|
|
@@ -64266,19 +66655,45 @@ let AuroDropdown$1 = class AuroDropdown extends AuroElement$2$1 {
|
|
|
64266
66655
|
if (this.isPopoverVisible) {
|
|
64267
66656
|
// Fullscreen: use showModal() for native accessibility (inert outside, focus trap)
|
|
64268
66657
|
// Desktop: use show() for Floating UI positioning + FocusTrap for focus management
|
|
64269
|
-
|
|
64270
|
-
this.
|
|
66658
|
+
this.bibElement.value.open(this.isBibFullscreen);
|
|
66659
|
+
this.updateFocusTrap();
|
|
66660
|
+
|
|
66661
|
+
// Desktop modal: make siblings inert so content outside is not interactive
|
|
66662
|
+
if (this.desktopModal && !this.isBibFullscreen) {
|
|
66663
|
+
this._setPageInert();
|
|
66664
|
+
}
|
|
64271
66665
|
} else {
|
|
64272
66666
|
this.bibElement.value.close();
|
|
66667
|
+
this._clearPageInert();
|
|
64273
66668
|
}
|
|
64274
66669
|
}
|
|
64275
66670
|
|
|
64276
66671
|
// When fullscreen strategy changes while open, re-open dialog with correct mode
|
|
64277
66672
|
// (e.g. resizing from desktop → mobile while dropdown is open)
|
|
64278
66673
|
if (changedProperties.has('isBibFullscreen') && this.isPopoverVisible && this.bibElement.value) {
|
|
64279
|
-
const useModal = this.isBibFullscreen;
|
|
64280
66674
|
this.bibElement.value.close();
|
|
64281
|
-
this.bibElement.value.open(
|
|
66675
|
+
this.bibElement.value.open(this.isBibFullscreen);
|
|
66676
|
+
|
|
66677
|
+
// Re-initialize focus management for the new strategy
|
|
66678
|
+
this.updateFocusTrap();
|
|
66679
|
+
|
|
66680
|
+
// Toggle inert: desktop modal needs it, fullscreen showModal() handles it natively
|
|
66681
|
+
if (this.desktopModal && !this.isBibFullscreen) {
|
|
66682
|
+
this._setPageInert();
|
|
66683
|
+
} else {
|
|
66684
|
+
this._clearPageInert();
|
|
66685
|
+
}
|
|
66686
|
+
}
|
|
66687
|
+
|
|
66688
|
+
// Handle desktopModal toggled while the dropdown is already open.
|
|
66689
|
+
// Re-initialize focus trapping and page inert state to match the new mode.
|
|
66690
|
+
if (changedProperties.has('desktopModal') && this.isPopoverVisible && !this.isBibFullscreen) {
|
|
66691
|
+
this.updateFocusTrap();
|
|
66692
|
+
if (this.desktopModal) {
|
|
66693
|
+
this._setPageInert();
|
|
66694
|
+
} else {
|
|
66695
|
+
this._clearPageInert();
|
|
66696
|
+
}
|
|
64282
66697
|
}
|
|
64283
66698
|
}
|
|
64284
66699
|
|
|
@@ -64288,8 +66703,14 @@ let AuroDropdown$1 = class AuroDropdown extends AuroElement$2$1 {
|
|
|
64288
66703
|
* @param {CustomEvent} event - The custom event that contains the dropdown toggle information.
|
|
64289
66704
|
*/
|
|
64290
66705
|
handleDropdownToggle(event) {
|
|
64291
|
-
this.updateFocusTrap();
|
|
64292
66706
|
this.isPopoverVisible = event.detail.expanded;
|
|
66707
|
+
|
|
66708
|
+
// Tear down FocusTrap when closing. Creation happens in updated()
|
|
66709
|
+
// after the dialog is open so getFocusableElements can find content.
|
|
66710
|
+
if (!this.isPopoverVisible) {
|
|
66711
|
+
this.updateFocusTrap();
|
|
66712
|
+
}
|
|
66713
|
+
|
|
64293
66714
|
const eventType = event.detail.eventType || "unknown";
|
|
64294
66715
|
if (!this.isPopoverVisible && this.hasFocus && eventType === "keydown") {
|
|
64295
66716
|
this.trigger.focus();
|
|
@@ -64388,19 +66809,194 @@ let AuroDropdown$1 = class AuroDropdown extends AuroElement$2$1 {
|
|
|
64388
66809
|
* @private
|
|
64389
66810
|
*/
|
|
64390
66811
|
updateFocusTrap() {
|
|
66812
|
+
// Always clean up existing handlers/traps before setting up new ones
|
|
66813
|
+
// to prevent duplicate listeners on repeated calls.
|
|
66814
|
+
if (this._bibTabHandler) {
|
|
66815
|
+
this.removeEventListener('keydown', this._bibTabHandler);
|
|
66816
|
+
this._bibTabHandler = undefined;
|
|
66817
|
+
}
|
|
66818
|
+
|
|
66819
|
+
if (this.focusTrap) {
|
|
66820
|
+
this.focusTrap.disconnect();
|
|
66821
|
+
this.focusTrap = undefined;
|
|
66822
|
+
}
|
|
66823
|
+
|
|
64391
66824
|
if (this.isPopoverVisible) {
|
|
64392
66825
|
if (!this.isBibFullscreen) {
|
|
64393
|
-
|
|
64394
|
-
|
|
64395
|
-
|
|
66826
|
+
if (this.desktopModal) {
|
|
66827
|
+
// Desktop modal: trap focus only within the bib content.
|
|
66828
|
+
// Can't use FocusTrap on the bib element because keydown events
|
|
66829
|
+
// from slotted content bubble through the dropdown host (light DOM),
|
|
66830
|
+
// not through the bib (shadow projection target). Using FocusTrap
|
|
66831
|
+
// on the dropdown would include the trigger in the tab cycle.
|
|
66832
|
+
// Instead, listen for Tab on the dropdown and manually wrap focus
|
|
66833
|
+
// within the bib's focusable elements.
|
|
66834
|
+
this._bibTabHandler = (event) => {
|
|
66835
|
+
if (event.key !== 'Tab') {
|
|
66836
|
+
return;
|
|
66837
|
+
}
|
|
66838
|
+
|
|
66839
|
+
// Collect focusable elements from the bib content.
|
|
66840
|
+
const focusables = getFocusableElements$1(this.bibContent);
|
|
66841
|
+
|
|
66842
|
+
// Fallback: try from slotted content directly
|
|
66843
|
+
if (!focusables.length) {
|
|
66844
|
+
const slot = this.shadowRoot.querySelector('.slotContent slot');
|
|
66845
|
+
const assignedNodes = slot.assignedNodes({ flatten: true });
|
|
66846
|
+
|
|
66847
|
+
for (const node of assignedNodes) {
|
|
66848
|
+
if (node.nodeType === Node.ELEMENT_NODE) {
|
|
66849
|
+
focusables.push(...getFocusableElements$1(node));
|
|
66850
|
+
}
|
|
66851
|
+
}
|
|
66852
|
+
}
|
|
66853
|
+
|
|
66854
|
+
if (!focusables.length) {
|
|
66855
|
+
return;
|
|
66856
|
+
}
|
|
66857
|
+
|
|
66858
|
+
event.preventDefault();
|
|
66859
|
+
|
|
66860
|
+
const direction = event.shiftKey ? -1 : 1; // eslint-disable-line no-magic-numbers
|
|
66861
|
+
|
|
66862
|
+
// Walk the active element chain through shadow roots
|
|
66863
|
+
const actives = this._getActiveElements();
|
|
66864
|
+
|
|
66865
|
+
let idx = focusables.findIndex((el) => actives.includes(el));
|
|
66866
|
+
|
|
66867
|
+
if (idx === -1) { // eslint-disable-line no-magic-numbers
|
|
66868
|
+
// Focus is not on a known element — move to first/last
|
|
66869
|
+
idx = direction === 1 ? -1 : focusables.length; // eslint-disable-line no-magic-numbers
|
|
66870
|
+
}
|
|
66871
|
+
|
|
66872
|
+
// Try each element in order, skipping any that can't receive focus
|
|
66873
|
+
// (e.g. hidden elements, elements in collapsed sections)
|
|
66874
|
+
for (let index = 0; index < focusables.length; index++) { // eslint-disable-line no-plusplus
|
|
66875
|
+
let nextIdx = idx + direction;
|
|
66876
|
+
|
|
66877
|
+
// Wrap around
|
|
66878
|
+
if (nextIdx < 0) {
|
|
66879
|
+
nextIdx = focusables.length - 1;
|
|
66880
|
+
} else if (nextIdx >= focusables.length) {
|
|
66881
|
+
nextIdx = 0;
|
|
66882
|
+
}
|
|
66883
|
+
|
|
66884
|
+
focusables[nextIdx].focus();
|
|
66885
|
+
|
|
66886
|
+
// Verify focus actually moved to the target
|
|
66887
|
+
const newActives = this._getActiveElements();
|
|
66888
|
+
|
|
66889
|
+
if (newActives.includes(focusables[nextIdx])) {
|
|
66890
|
+
return;
|
|
66891
|
+
}
|
|
66892
|
+
|
|
66893
|
+
// Focus didn't stick — skip this element and try the next
|
|
66894
|
+
idx = nextIdx;
|
|
66895
|
+
}
|
|
66896
|
+
};
|
|
66897
|
+
this.addEventListener('keydown', this._bibTabHandler);
|
|
66898
|
+
|
|
66899
|
+
// Move initial focus into the bib content, matching FocusTrap behavior
|
|
66900
|
+
requestAnimationFrame(() => {
|
|
66901
|
+
const focusables = getFocusableElements$1(this.bibContent);
|
|
66902
|
+
if (focusables.length) {
|
|
66903
|
+
focusables[0].focus();
|
|
66904
|
+
}
|
|
66905
|
+
});
|
|
66906
|
+
} else {
|
|
66907
|
+
// Normal desktop: use FocusTrap on the bib element
|
|
66908
|
+
this.focusTrap = new FocusTrap$1(this.bibContent);
|
|
66909
|
+
this.focusTrap.focusFirstElement();
|
|
66910
|
+
}
|
|
64396
66911
|
}
|
|
64397
66912
|
// Fullscreen: showModal() provides native focus trapping
|
|
66913
|
+
}
|
|
66914
|
+
}
|
|
66915
|
+
|
|
66916
|
+
/**
|
|
66917
|
+
* Returns the chain of active (focused) elements through shadow roots.
|
|
66918
|
+
* @private
|
|
66919
|
+
* @returns {Array<HTMLElement>}
|
|
66920
|
+
*/
|
|
66921
|
+
_getActiveElements() {
|
|
66922
|
+
let { activeElement } = document;
|
|
66923
|
+
const actives = [activeElement];
|
|
66924
|
+
|
|
66925
|
+
while (activeElement?.shadowRoot?.activeElement) {
|
|
66926
|
+
activeElement = activeElement.shadowRoot.activeElement;
|
|
66927
|
+
actives.push(activeElement);
|
|
66928
|
+
}
|
|
66929
|
+
|
|
66930
|
+
return actives;
|
|
66931
|
+
}
|
|
66932
|
+
|
|
66933
|
+
/**
|
|
66934
|
+
* Sets `inert` on sibling elements of the dropdown's top-level host
|
|
66935
|
+
* so that content outside the dropdown is not interactive while the modal is open.
|
|
66936
|
+
* Walks up through shadow DOM boundaries to find the outermost host element
|
|
66937
|
+
* in the light DOM, then sets `inert` on siblings at each ancestor level
|
|
66938
|
+
* to ensure all page content outside the host subtree is inert.
|
|
66939
|
+
* @private
|
|
66940
|
+
*/
|
|
66941
|
+
_setPageInert() {
|
|
66942
|
+
if (this._inertSiblings) {
|
|
64398
66943
|
return;
|
|
64399
66944
|
}
|
|
64400
66945
|
|
|
64401
|
-
|
|
64402
|
-
|
|
64403
|
-
|
|
66946
|
+
this._inertSiblings = [];
|
|
66947
|
+
|
|
66948
|
+
// Walk up through shadow DOM boundaries to find the topmost host
|
|
66949
|
+
// element in the light DOM. For example, if this dropdown is inside
|
|
66950
|
+
// auro-datepicker's shadow DOM, we walk up to the datepicker element
|
|
66951
|
+
// so we set inert on its siblings — not on the datepicker itself.
|
|
66952
|
+
let host = this;
|
|
66953
|
+
while (host.getRootNode() instanceof ShadowRoot) {
|
|
66954
|
+
host = host.getRootNode().host;
|
|
66955
|
+
}
|
|
66956
|
+
|
|
66957
|
+
// Walk up the ancestor chain, inerting siblings at each level
|
|
66958
|
+
// to ensure the entire page outside the host subtree is inert.
|
|
66959
|
+
// Uses a reference counter (data-auro-inert-count) so multiple
|
|
66960
|
+
// simultaneous modal dropdowns share inert state safely.
|
|
66961
|
+
let current = host;
|
|
66962
|
+
while (current.parentElement) {
|
|
66963
|
+
const parent = current.parentElement;
|
|
66964
|
+
for (const sibling of parent.children) {
|
|
66965
|
+
if (sibling !== current) {
|
|
66966
|
+
const count = parseInt(sibling.dataset.auroInertCount || '0', 10);
|
|
66967
|
+
if (count === 0) {
|
|
66968
|
+
sibling.dataset.auroInertWas = sibling.inert ? 'true' : 'false';
|
|
66969
|
+
}
|
|
66970
|
+
sibling.dataset.auroInertCount = String(count + 1);
|
|
66971
|
+
sibling.inert = true;
|
|
66972
|
+
this._inertSiblings.push(sibling);
|
|
66973
|
+
}
|
|
66974
|
+
}
|
|
66975
|
+
current = parent;
|
|
66976
|
+
}
|
|
66977
|
+
}
|
|
66978
|
+
|
|
66979
|
+
/**
|
|
66980
|
+
* Restores `inert` state on siblings that were tracked by `_setPageInert`.
|
|
66981
|
+
* Uses reference counting so inert is only cleared when the last modal
|
|
66982
|
+
* dropdown releases a given element. Preserves the original inert state
|
|
66983
|
+
* so externally-inerted elements are not inadvertently re-enabled.
|
|
66984
|
+
* @private
|
|
66985
|
+
*/
|
|
66986
|
+
_clearPageInert() {
|
|
66987
|
+
if (this._inertSiblings) {
|
|
66988
|
+
for (const sibling of this._inertSiblings) {
|
|
66989
|
+
const count = parseInt(sibling.dataset.auroInertCount || '1', 10) - 1;
|
|
66990
|
+
if (count <= 0) {
|
|
66991
|
+
const wasInert = sibling.dataset.auroInertWas === 'true';
|
|
66992
|
+
delete sibling.dataset.auroInertCount;
|
|
66993
|
+
delete sibling.dataset.auroInertWas;
|
|
66994
|
+
sibling.inert = wasInert;
|
|
66995
|
+
} else {
|
|
66996
|
+
sibling.dataset.auroInertCount = String(count);
|
|
66997
|
+
}
|
|
66998
|
+
}
|
|
66999
|
+
this._inertSiblings = undefined;
|
|
64404
67000
|
}
|
|
64405
67001
|
}
|
|
64406
67002
|
|
|
@@ -64639,6 +67235,7 @@ let AuroDropdown$1 = class AuroDropdown extends AuroElement$2$1 {
|
|
|
64639
67235
|
shape="${this.shape}"
|
|
64640
67236
|
?data-show="${this.isPopoverVisible}"
|
|
64641
67237
|
?isfullscreen="${this.isBibFullscreen}"
|
|
67238
|
+
?desktopmodal="${this.desktopModal}"
|
|
64642
67239
|
.dialogLabel="${this.bibDialogLabel}"
|
|
64643
67240
|
${n$6(this.bibElement)}
|
|
64644
67241
|
>
|
|
@@ -76843,7 +79440,7 @@ let AuroHelpText$1$1 = class AuroHelpText extends i$4 {
|
|
|
76843
79440
|
}
|
|
76844
79441
|
};
|
|
76845
79442
|
|
|
76846
|
-
var formkitVersion$1$1 = '
|
|
79443
|
+
var formkitVersion$1$1 = '202606081904';
|
|
76847
79444
|
|
|
76848
79445
|
// Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
|
|
76849
79446
|
// See LICENSE in the project root for license information.
|
|
@@ -77849,6 +80446,14 @@ let AuroBibtemplate$1 = class AuroBibtemplate extends i$4 {
|
|
|
77849
80446
|
large: {
|
|
77850
80447
|
type: Boolean,
|
|
77851
80448
|
reflect: true
|
|
80449
|
+
},
|
|
80450
|
+
|
|
80451
|
+
/**
|
|
80452
|
+
* If declared, the footer slot will be rendered even when not in fullscreen mode.
|
|
80453
|
+
*/
|
|
80454
|
+
showFooter: {
|
|
80455
|
+
type: Boolean,
|
|
80456
|
+
reflect: true
|
|
77852
80457
|
}
|
|
77853
80458
|
};
|
|
77854
80459
|
}
|
|
@@ -77951,7 +80556,7 @@ let AuroBibtemplate$1 = class AuroBibtemplate extends i$4 {
|
|
|
77951
80556
|
<slot></slot>
|
|
77952
80557
|
</div>
|
|
77953
80558
|
|
|
77954
|
-
${this.isFullscreen ? u$c`
|
|
80559
|
+
${this.isFullscreen || this.showFooter ? u$c`
|
|
77955
80560
|
<div id="footerContainer">
|
|
77956
80561
|
<slot name="footer"></slot>
|
|
77957
80562
|
</div>` : null}
|
|
@@ -77960,7 +80565,7 @@ let AuroBibtemplate$1 = class AuroBibtemplate extends i$4 {
|
|
|
77960
80565
|
}
|
|
77961
80566
|
};
|
|
77962
80567
|
|
|
77963
|
-
var formkitVersion$3 = '
|
|
80568
|
+
var formkitVersion$3 = '202606081904';
|
|
77964
80569
|
|
|
77965
80570
|
var styleCss$1$3 = i$7`.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}`;
|
|
77966
80571
|
|
|
@@ -86399,7 +89004,7 @@ function applyKeyboardStrategy(component, strategy, options = {}) {
|
|
|
86399
89004
|
});
|
|
86400
89005
|
}
|
|
86401
89006
|
|
|
86402
|
-
var styleCss$2$1 = i$7`:host{position:fixed;z-index:var(--depth-tooltip, 400);display:none;isolation:isolate}:host dialog{width:auto;max-width:none;height:auto;max-height:none;padding:0;border:none;margin:0;outline:none;transform:translateZ(0)}:host dialog::backdrop{background:transparent}:host(:not([isfullscreen])) dialog{position:relative;inset:unset}:host(:not([isfullscreen])) .container.shape-box{border-radius:unset}:host(:not([isfullscreen])) .container[class*=shape-pill],:host(:not([isfullscreen])) .container[class*=shape-snowflake]{border-radius:30px}:host(:not([isfullscreen])) .container[class*=shape-rounded]{border-radius:16px}:host(:not([matchWidth])) .container{min-width:fit-content}:host([isfullscreen]){position:fixed;top:0;left:0}:host([isfullscreen]) .container{width:100dvw;max-width:none;height:100dvh;max-height:none;border-radius:unset;margin-top:0;box-shadow:unset;overscroll-behavior:contain}:host([isfullscreen]) .container::backdrop{background:var(--ds-color-background-primary, #fff)}:host(:popover-open){position:fixed;overflow:visible;padding:0;border:none;margin:0;background:transparent;inset:unset;outline:none}:host([data-show]){display:flex}:host([common]:not([isfullscreen])) .container,:host([rounded]:not([isfullscreen])) .container{border-radius:var(--ds-border-radius, 0.375rem)}:host([common][isfullscreen]) .container,:host([rounded][isfullscreen]) .container{border-radius:unset;box-shadow:unset}.container{display:inline-block;overflow:auto;box-sizing:border-box;border-radius:var(--ds-border-radius, 0.375rem);margin:var(--ds-size-50, 0.25rem) 0}.util_displayHiddenVisually{position:absolute;overflow:hidden;width:1px;height:1px;padding:0;border:0;margin:-1px;clip-path:inset(50%);white-space:nowrap}`;
|
|
89007
|
+
var styleCss$2$1 = i$7`:host{position:fixed;z-index:var(--depth-tooltip, 400);display:none;isolation:isolate}:host dialog{width:auto;max-width:none;height:auto;max-height:none;padding:0;border:none;margin:0;outline:none;transform:translateZ(0)}:host dialog::backdrop{background:transparent}:host(:not([isfullscreen])) dialog{position:relative;inset:unset}:host(:not([isfullscreen])) .container.shape-box{border-radius:unset}:host(:not([isfullscreen])) .container[class*=shape-pill],:host(:not([isfullscreen])) .container[class*=shape-snowflake]{border-radius:30px}:host(:not([isfullscreen])) .container[class*=shape-rounded]{border-radius:16px}:host([desktopmodal]:popover-open)::backdrop{background:transparent}:host(:not([matchWidth])) .container{min-width:fit-content}:host([isfullscreen]){position:fixed;top:0;left:0}:host([isfullscreen]) .container{width:100dvw;max-width:none;height:100dvh;max-height:none;border-radius:unset;margin-top:0;box-shadow:unset;overscroll-behavior:contain}:host([isfullscreen]) .container::backdrop{background:var(--ds-color-background-primary, #fff)}:host(:popover-open){position:fixed;overflow:visible;padding:0;border:none;margin:0;background:transparent;inset:unset;outline:none}:host([data-show]){display:flex}:host([common]:not([isfullscreen])) .container,:host([rounded]:not([isfullscreen])) .container{border-radius:var(--ds-border-radius, 0.375rem)}:host([common][isfullscreen]) .container,:host([rounded][isfullscreen]) .container{border-radius:unset;box-shadow:unset}.container{display:inline-block;overflow:auto;box-sizing:border-box;border-radius:var(--ds-border-radius, 0.375rem);margin:var(--ds-size-50, 0.25rem) 0}.util_displayHiddenVisually{position:absolute;overflow:hidden;width:1px;height:1px;padding:0;border:0;margin:-1px;clip-path:inset(50%);white-space:nowrap}`;
|
|
86403
89008
|
|
|
86404
89009
|
var colorCss$2 = i$7`.container{background-color:var(--ds-auro-dropdownbib-container-color);box-shadow:var(--ds-auro-dropdownbib-boxshadow-color);color:var(--ds-auro-dropdownbib-text-color)}`;
|
|
86405
89010
|
|
|
@@ -87030,7 +89635,7 @@ let AuroHelpText$1 = class AuroHelpText extends i$4 {
|
|
|
87030
89635
|
}
|
|
87031
89636
|
};
|
|
87032
89637
|
|
|
87033
|
-
var formkitVersion$1 = '
|
|
89638
|
+
var formkitVersion$1 = '202606081904';
|
|
87034
89639
|
|
|
87035
89640
|
class AuroElement extends i$4 {
|
|
87036
89641
|
static get properties() {
|
|
@@ -87210,6 +89815,7 @@ class AuroDropdown extends AuroElement {
|
|
|
87210
89815
|
_intializeDefaults() {
|
|
87211
89816
|
this.appearance = 'default';
|
|
87212
89817
|
this.chevron = false;
|
|
89818
|
+
this.desktopModal = false;
|
|
87213
89819
|
this.disabled = false;
|
|
87214
89820
|
this.disableKeyboardHandling = false;
|
|
87215
89821
|
this.error = false;
|
|
@@ -87390,6 +89996,14 @@ class AuroDropdown extends AuroElement {
|
|
|
87390
89996
|
reflect: true
|
|
87391
89997
|
},
|
|
87392
89998
|
|
|
89999
|
+
/**
|
|
90000
|
+
* If declared, the dropdown will behave as a modal dialog when in a desktop viewport size.
|
|
90001
|
+
*/
|
|
90002
|
+
desktopModal: {
|
|
90003
|
+
type: Boolean,
|
|
90004
|
+
reflect: true
|
|
90005
|
+
},
|
|
90006
|
+
|
|
87393
90007
|
/**
|
|
87394
90008
|
* If declared, the dropdown will only show by calling the API .show() public method.
|
|
87395
90009
|
*/
|
|
@@ -87677,6 +90291,15 @@ class AuroDropdown extends AuroElement {
|
|
|
87677
90291
|
|
|
87678
90292
|
disconnectedCallback() {
|
|
87679
90293
|
super.disconnectedCallback();
|
|
90294
|
+
this._clearPageInert();
|
|
90295
|
+
if (this._bibTabHandler) {
|
|
90296
|
+
this.removeEventListener('keydown', this._bibTabHandler);
|
|
90297
|
+
this._bibTabHandler = undefined;
|
|
90298
|
+
}
|
|
90299
|
+
if (this.focusTrap) {
|
|
90300
|
+
this.focusTrap.disconnect();
|
|
90301
|
+
this.focusTrap = undefined;
|
|
90302
|
+
}
|
|
87680
90303
|
if (this.floater) {
|
|
87681
90304
|
this.floater.hideBib('disconnect');
|
|
87682
90305
|
this.floater.disconnect();
|
|
@@ -87704,19 +90327,45 @@ class AuroDropdown extends AuroElement {
|
|
|
87704
90327
|
if (this.isPopoverVisible) {
|
|
87705
90328
|
// Fullscreen: use showModal() for native accessibility (inert outside, focus trap)
|
|
87706
90329
|
// Desktop: use show() for Floating UI positioning + FocusTrap for focus management
|
|
87707
|
-
|
|
87708
|
-
this.
|
|
90330
|
+
this.bibElement.value.open(this.isBibFullscreen);
|
|
90331
|
+
this.updateFocusTrap();
|
|
90332
|
+
|
|
90333
|
+
// Desktop modal: make siblings inert so content outside is not interactive
|
|
90334
|
+
if (this.desktopModal && !this.isBibFullscreen) {
|
|
90335
|
+
this._setPageInert();
|
|
90336
|
+
}
|
|
87709
90337
|
} else {
|
|
87710
90338
|
this.bibElement.value.close();
|
|
90339
|
+
this._clearPageInert();
|
|
87711
90340
|
}
|
|
87712
90341
|
}
|
|
87713
90342
|
|
|
87714
90343
|
// When fullscreen strategy changes while open, re-open dialog with correct mode
|
|
87715
90344
|
// (e.g. resizing from desktop → mobile while dropdown is open)
|
|
87716
90345
|
if (changedProperties.has('isBibFullscreen') && this.isPopoverVisible && this.bibElement.value) {
|
|
87717
|
-
const useModal = this.isBibFullscreen;
|
|
87718
90346
|
this.bibElement.value.close();
|
|
87719
|
-
this.bibElement.value.open(
|
|
90347
|
+
this.bibElement.value.open(this.isBibFullscreen);
|
|
90348
|
+
|
|
90349
|
+
// Re-initialize focus management for the new strategy
|
|
90350
|
+
this.updateFocusTrap();
|
|
90351
|
+
|
|
90352
|
+
// Toggle inert: desktop modal needs it, fullscreen showModal() handles it natively
|
|
90353
|
+
if (this.desktopModal && !this.isBibFullscreen) {
|
|
90354
|
+
this._setPageInert();
|
|
90355
|
+
} else {
|
|
90356
|
+
this._clearPageInert();
|
|
90357
|
+
}
|
|
90358
|
+
}
|
|
90359
|
+
|
|
90360
|
+
// Handle desktopModal toggled while the dropdown is already open.
|
|
90361
|
+
// Re-initialize focus trapping and page inert state to match the new mode.
|
|
90362
|
+
if (changedProperties.has('desktopModal') && this.isPopoverVisible && !this.isBibFullscreen) {
|
|
90363
|
+
this.updateFocusTrap();
|
|
90364
|
+
if (this.desktopModal) {
|
|
90365
|
+
this._setPageInert();
|
|
90366
|
+
} else {
|
|
90367
|
+
this._clearPageInert();
|
|
90368
|
+
}
|
|
87720
90369
|
}
|
|
87721
90370
|
}
|
|
87722
90371
|
|
|
@@ -87726,8 +90375,14 @@ class AuroDropdown extends AuroElement {
|
|
|
87726
90375
|
* @param {CustomEvent} event - The custom event that contains the dropdown toggle information.
|
|
87727
90376
|
*/
|
|
87728
90377
|
handleDropdownToggle(event) {
|
|
87729
|
-
this.updateFocusTrap();
|
|
87730
90378
|
this.isPopoverVisible = event.detail.expanded;
|
|
90379
|
+
|
|
90380
|
+
// Tear down FocusTrap when closing. Creation happens in updated()
|
|
90381
|
+
// after the dialog is open so getFocusableElements can find content.
|
|
90382
|
+
if (!this.isPopoverVisible) {
|
|
90383
|
+
this.updateFocusTrap();
|
|
90384
|
+
}
|
|
90385
|
+
|
|
87731
90386
|
const eventType = event.detail.eventType || "unknown";
|
|
87732
90387
|
if (!this.isPopoverVisible && this.hasFocus && eventType === "keydown") {
|
|
87733
90388
|
this.trigger.focus();
|
|
@@ -87826,19 +90481,194 @@ class AuroDropdown extends AuroElement {
|
|
|
87826
90481
|
* @private
|
|
87827
90482
|
*/
|
|
87828
90483
|
updateFocusTrap() {
|
|
90484
|
+
// Always clean up existing handlers/traps before setting up new ones
|
|
90485
|
+
// to prevent duplicate listeners on repeated calls.
|
|
90486
|
+
if (this._bibTabHandler) {
|
|
90487
|
+
this.removeEventListener('keydown', this._bibTabHandler);
|
|
90488
|
+
this._bibTabHandler = undefined;
|
|
90489
|
+
}
|
|
90490
|
+
|
|
90491
|
+
if (this.focusTrap) {
|
|
90492
|
+
this.focusTrap.disconnect();
|
|
90493
|
+
this.focusTrap = undefined;
|
|
90494
|
+
}
|
|
90495
|
+
|
|
87829
90496
|
if (this.isPopoverVisible) {
|
|
87830
90497
|
if (!this.isBibFullscreen) {
|
|
87831
|
-
|
|
87832
|
-
|
|
87833
|
-
|
|
90498
|
+
if (this.desktopModal) {
|
|
90499
|
+
// Desktop modal: trap focus only within the bib content.
|
|
90500
|
+
// Can't use FocusTrap on the bib element because keydown events
|
|
90501
|
+
// from slotted content bubble through the dropdown host (light DOM),
|
|
90502
|
+
// not through the bib (shadow projection target). Using FocusTrap
|
|
90503
|
+
// on the dropdown would include the trigger in the tab cycle.
|
|
90504
|
+
// Instead, listen for Tab on the dropdown and manually wrap focus
|
|
90505
|
+
// within the bib's focusable elements.
|
|
90506
|
+
this._bibTabHandler = (event) => {
|
|
90507
|
+
if (event.key !== 'Tab') {
|
|
90508
|
+
return;
|
|
90509
|
+
}
|
|
90510
|
+
|
|
90511
|
+
// Collect focusable elements from the bib content.
|
|
90512
|
+
const focusables = getFocusableElements(this.bibContent);
|
|
90513
|
+
|
|
90514
|
+
// Fallback: try from slotted content directly
|
|
90515
|
+
if (!focusables.length) {
|
|
90516
|
+
const slot = this.shadowRoot.querySelector('.slotContent slot');
|
|
90517
|
+
const assignedNodes = slot.assignedNodes({ flatten: true });
|
|
90518
|
+
|
|
90519
|
+
for (const node of assignedNodes) {
|
|
90520
|
+
if (node.nodeType === Node.ELEMENT_NODE) {
|
|
90521
|
+
focusables.push(...getFocusableElements(node));
|
|
90522
|
+
}
|
|
90523
|
+
}
|
|
90524
|
+
}
|
|
90525
|
+
|
|
90526
|
+
if (!focusables.length) {
|
|
90527
|
+
return;
|
|
90528
|
+
}
|
|
90529
|
+
|
|
90530
|
+
event.preventDefault();
|
|
90531
|
+
|
|
90532
|
+
const direction = event.shiftKey ? -1 : 1; // eslint-disable-line no-magic-numbers
|
|
90533
|
+
|
|
90534
|
+
// Walk the active element chain through shadow roots
|
|
90535
|
+
const actives = this._getActiveElements();
|
|
90536
|
+
|
|
90537
|
+
let idx = focusables.findIndex((el) => actives.includes(el));
|
|
90538
|
+
|
|
90539
|
+
if (idx === -1) { // eslint-disable-line no-magic-numbers
|
|
90540
|
+
// Focus is not on a known element — move to first/last
|
|
90541
|
+
idx = direction === 1 ? -1 : focusables.length; // eslint-disable-line no-magic-numbers
|
|
90542
|
+
}
|
|
90543
|
+
|
|
90544
|
+
// Try each element in order, skipping any that can't receive focus
|
|
90545
|
+
// (e.g. hidden elements, elements in collapsed sections)
|
|
90546
|
+
for (let index = 0; index < focusables.length; index++) { // eslint-disable-line no-plusplus
|
|
90547
|
+
let nextIdx = idx + direction;
|
|
90548
|
+
|
|
90549
|
+
// Wrap around
|
|
90550
|
+
if (nextIdx < 0) {
|
|
90551
|
+
nextIdx = focusables.length - 1;
|
|
90552
|
+
} else if (nextIdx >= focusables.length) {
|
|
90553
|
+
nextIdx = 0;
|
|
90554
|
+
}
|
|
90555
|
+
|
|
90556
|
+
focusables[nextIdx].focus();
|
|
90557
|
+
|
|
90558
|
+
// Verify focus actually moved to the target
|
|
90559
|
+
const newActives = this._getActiveElements();
|
|
90560
|
+
|
|
90561
|
+
if (newActives.includes(focusables[nextIdx])) {
|
|
90562
|
+
return;
|
|
90563
|
+
}
|
|
90564
|
+
|
|
90565
|
+
// Focus didn't stick — skip this element and try the next
|
|
90566
|
+
idx = nextIdx;
|
|
90567
|
+
}
|
|
90568
|
+
};
|
|
90569
|
+
this.addEventListener('keydown', this._bibTabHandler);
|
|
90570
|
+
|
|
90571
|
+
// Move initial focus into the bib content, matching FocusTrap behavior
|
|
90572
|
+
requestAnimationFrame(() => {
|
|
90573
|
+
const focusables = getFocusableElements(this.bibContent);
|
|
90574
|
+
if (focusables.length) {
|
|
90575
|
+
focusables[0].focus();
|
|
90576
|
+
}
|
|
90577
|
+
});
|
|
90578
|
+
} else {
|
|
90579
|
+
// Normal desktop: use FocusTrap on the bib element
|
|
90580
|
+
this.focusTrap = new FocusTrap(this.bibContent);
|
|
90581
|
+
this.focusTrap.focusFirstElement();
|
|
90582
|
+
}
|
|
87834
90583
|
}
|
|
87835
90584
|
// Fullscreen: showModal() provides native focus trapping
|
|
90585
|
+
}
|
|
90586
|
+
}
|
|
90587
|
+
|
|
90588
|
+
/**
|
|
90589
|
+
* Returns the chain of active (focused) elements through shadow roots.
|
|
90590
|
+
* @private
|
|
90591
|
+
* @returns {Array<HTMLElement>}
|
|
90592
|
+
*/
|
|
90593
|
+
_getActiveElements() {
|
|
90594
|
+
let { activeElement } = document;
|
|
90595
|
+
const actives = [activeElement];
|
|
90596
|
+
|
|
90597
|
+
while (activeElement?.shadowRoot?.activeElement) {
|
|
90598
|
+
activeElement = activeElement.shadowRoot.activeElement;
|
|
90599
|
+
actives.push(activeElement);
|
|
90600
|
+
}
|
|
90601
|
+
|
|
90602
|
+
return actives;
|
|
90603
|
+
}
|
|
90604
|
+
|
|
90605
|
+
/**
|
|
90606
|
+
* Sets `inert` on sibling elements of the dropdown's top-level host
|
|
90607
|
+
* so that content outside the dropdown is not interactive while the modal is open.
|
|
90608
|
+
* Walks up through shadow DOM boundaries to find the outermost host element
|
|
90609
|
+
* in the light DOM, then sets `inert` on siblings at each ancestor level
|
|
90610
|
+
* to ensure all page content outside the host subtree is inert.
|
|
90611
|
+
* @private
|
|
90612
|
+
*/
|
|
90613
|
+
_setPageInert() {
|
|
90614
|
+
if (this._inertSiblings) {
|
|
87836
90615
|
return;
|
|
87837
90616
|
}
|
|
87838
90617
|
|
|
87839
|
-
|
|
87840
|
-
|
|
87841
|
-
|
|
90618
|
+
this._inertSiblings = [];
|
|
90619
|
+
|
|
90620
|
+
// Walk up through shadow DOM boundaries to find the topmost host
|
|
90621
|
+
// element in the light DOM. For example, if this dropdown is inside
|
|
90622
|
+
// auro-datepicker's shadow DOM, we walk up to the datepicker element
|
|
90623
|
+
// so we set inert on its siblings — not on the datepicker itself.
|
|
90624
|
+
let host = this;
|
|
90625
|
+
while (host.getRootNode() instanceof ShadowRoot) {
|
|
90626
|
+
host = host.getRootNode().host;
|
|
90627
|
+
}
|
|
90628
|
+
|
|
90629
|
+
// Walk up the ancestor chain, inerting siblings at each level
|
|
90630
|
+
// to ensure the entire page outside the host subtree is inert.
|
|
90631
|
+
// Uses a reference counter (data-auro-inert-count) so multiple
|
|
90632
|
+
// simultaneous modal dropdowns share inert state safely.
|
|
90633
|
+
let current = host;
|
|
90634
|
+
while (current.parentElement) {
|
|
90635
|
+
const parent = current.parentElement;
|
|
90636
|
+
for (const sibling of parent.children) {
|
|
90637
|
+
if (sibling !== current) {
|
|
90638
|
+
const count = parseInt(sibling.dataset.auroInertCount || '0', 10);
|
|
90639
|
+
if (count === 0) {
|
|
90640
|
+
sibling.dataset.auroInertWas = sibling.inert ? 'true' : 'false';
|
|
90641
|
+
}
|
|
90642
|
+
sibling.dataset.auroInertCount = String(count + 1);
|
|
90643
|
+
sibling.inert = true;
|
|
90644
|
+
this._inertSiblings.push(sibling);
|
|
90645
|
+
}
|
|
90646
|
+
}
|
|
90647
|
+
current = parent;
|
|
90648
|
+
}
|
|
90649
|
+
}
|
|
90650
|
+
|
|
90651
|
+
/**
|
|
90652
|
+
* Restores `inert` state on siblings that were tracked by `_setPageInert`.
|
|
90653
|
+
* Uses reference counting so inert is only cleared when the last modal
|
|
90654
|
+
* dropdown releases a given element. Preserves the original inert state
|
|
90655
|
+
* so externally-inerted elements are not inadvertently re-enabled.
|
|
90656
|
+
* @private
|
|
90657
|
+
*/
|
|
90658
|
+
_clearPageInert() {
|
|
90659
|
+
if (this._inertSiblings) {
|
|
90660
|
+
for (const sibling of this._inertSiblings) {
|
|
90661
|
+
const count = parseInt(sibling.dataset.auroInertCount || '1', 10) - 1;
|
|
90662
|
+
if (count <= 0) {
|
|
90663
|
+
const wasInert = sibling.dataset.auroInertWas === 'true';
|
|
90664
|
+
delete sibling.dataset.auroInertCount;
|
|
90665
|
+
delete sibling.dataset.auroInertWas;
|
|
90666
|
+
sibling.inert = wasInert;
|
|
90667
|
+
} else {
|
|
90668
|
+
sibling.dataset.auroInertCount = String(count);
|
|
90669
|
+
}
|
|
90670
|
+
}
|
|
90671
|
+
this._inertSiblings = undefined;
|
|
87842
90672
|
}
|
|
87843
90673
|
}
|
|
87844
90674
|
|
|
@@ -88077,6 +90907,7 @@ class AuroDropdown extends AuroElement {
|
|
|
88077
90907
|
shape="${this.shape}"
|
|
88078
90908
|
?data-show="${this.isPopoverVisible}"
|
|
88079
90909
|
?isfullscreen="${this.isBibFullscreen}"
|
|
90910
|
+
?desktopmodal="${this.desktopModal}"
|
|
88080
90911
|
.dialogLabel="${this.bibDialogLabel}"
|
|
88081
90912
|
${n$6(this.bibElement)}
|
|
88082
90913
|
>
|
|
@@ -88444,6 +91275,14 @@ class AuroBibtemplate extends i$4 {
|
|
|
88444
91275
|
large: {
|
|
88445
91276
|
type: Boolean,
|
|
88446
91277
|
reflect: true
|
|
91278
|
+
},
|
|
91279
|
+
|
|
91280
|
+
/**
|
|
91281
|
+
* If declared, the footer slot will be rendered even when not in fullscreen mode.
|
|
91282
|
+
*/
|
|
91283
|
+
showFooter: {
|
|
91284
|
+
type: Boolean,
|
|
91285
|
+
reflect: true
|
|
88447
91286
|
}
|
|
88448
91287
|
};
|
|
88449
91288
|
}
|
|
@@ -88546,7 +91385,7 @@ class AuroBibtemplate extends i$4 {
|
|
|
88546
91385
|
<slot></slot>
|
|
88547
91386
|
</div>
|
|
88548
91387
|
|
|
88549
|
-
${this.isFullscreen ? u$c`
|
|
91388
|
+
${this.isFullscreen || this.showFooter ? u$c`
|
|
88550
91389
|
<div id="footerContainer">
|
|
88551
91390
|
<slot name="footer"></slot>
|
|
88552
91391
|
</div>` : null}
|
|
@@ -88783,7 +91622,7 @@ class AuroHelpText extends i$4 {
|
|
|
88783
91622
|
}
|
|
88784
91623
|
}
|
|
88785
91624
|
|
|
88786
|
-
var formkitVersion = '
|
|
91625
|
+
var formkitVersion = '202606081904';
|
|
88787
91626
|
|
|
88788
91627
|
var styleCss = i$7`.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}`;
|
|
88789
91628
|
|