@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
|
@@ -12249,7 +12249,7 @@ let AuroHelpText$9 = class AuroHelpText extends i$3 {
|
|
|
12249
12249
|
}
|
|
12250
12250
|
};
|
|
12251
12251
|
|
|
12252
|
-
var formkitVersion$9 = '
|
|
12252
|
+
var formkitVersion$9 = '202606081904';
|
|
12253
12253
|
|
|
12254
12254
|
// Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
|
|
12255
12255
|
// See LICENSE in the project root for license information.
|
|
@@ -23576,6 +23576,7 @@ class UtilitiesCalendarRender {
|
|
|
23576
23576
|
updateCentralDate(elem, date) {
|
|
23577
23577
|
// if date is already iso formatted string, we can skip the conversion and validation step
|
|
23578
23578
|
if (typeof date === 'string' && dateFormatter$1.isValidDate(date)) {
|
|
23579
|
+
// eslint-disable-next-line
|
|
23579
23580
|
elem.centralDate = date.replace(/(\d{4})-(\d{2})-(\d{2})/, '$1-$2-01'); // Set to first of the month
|
|
23580
23581
|
return;
|
|
23581
23582
|
}
|
|
@@ -23660,13 +23661,10 @@ class UtilitiesCalendarRender {
|
|
|
23660
23661
|
// 2. Start by assuming we can render the max number of months.
|
|
23661
23662
|
let calendarCount = maxRenderableMonths;
|
|
23662
23663
|
|
|
23663
|
-
// 3. If
|
|
23664
|
+
// 3. If maximumRenderableMonths() returns 0 (e.g. an invalid/empty defined range),
|
|
23665
|
+
// fall back to the min/max date range so something is rendered.
|
|
23664
23666
|
if (!calendarCount && elem.minDate && elem.maxDate) {
|
|
23665
|
-
|
|
23666
|
-
|
|
23667
|
-
if (monthsInRange < maxRenderableMonths) {
|
|
23668
|
-
calendarCount = monthsInRange;
|
|
23669
|
-
}
|
|
23667
|
+
calendarCount = this.util.monthDiff(elem.minDateObject, elem.maxDateObject);
|
|
23670
23668
|
}
|
|
23671
23669
|
|
|
23672
23670
|
if (elem.numCalendars !== calendarCount) {
|
|
@@ -23714,7 +23712,6 @@ class UtilitiesCalendarRender {
|
|
|
23714
23712
|
.max="${elem.max}"
|
|
23715
23713
|
?noRange="${elem.noRange}"
|
|
23716
23714
|
.monthFirst="${elem.monthFirst}"
|
|
23717
|
-
.hoveredDate="${elem.hoveredDate}"
|
|
23718
23715
|
.dateTo="${elem.dateTo}"
|
|
23719
23716
|
.dateFrom="${elem.dateFrom}"
|
|
23720
23717
|
.locale="${elem.locale}"
|
|
@@ -23747,11 +23744,11 @@ var snowflakeStyle = i$5`:host([layout*=snowflake]) [auro-input]{flex:1;text-ali
|
|
|
23747
23744
|
|
|
23748
23745
|
var snowflakeColors = i$5`:host([layout=snowflake]) [auro-dropdown]:not(:is([error],.hasFocus)){--ds-auro-dropdown-trigger-border-color: transparent}`;
|
|
23749
23746
|
|
|
23750
|
-
var styleCss$7$1 = i$5`.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:""}`;
|
|
23747
|
+
var styleCss$7$1 = i$5`.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}`;
|
|
23751
23748
|
|
|
23752
23749
|
var colorCss$7$1 = i$5`.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)}}`;
|
|
23753
23750
|
|
|
23754
|
-
var styleCss$6$1 = i$5`: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%}`;
|
|
23751
|
+
var styleCss$6$1 = i$5`: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)}`;
|
|
23755
23752
|
|
|
23756
23753
|
var colorCss$6$1 = i$5`: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)}`;
|
|
23757
23754
|
|
|
@@ -24506,41 +24503,45 @@ __decorate([n$5({ type: Array })], RangeDatepickerCalendar.prototype, "dayNamesO
|
|
|
24506
24503
|
__decorate([n$5({ type: Array })], RangeDatepickerCalendar.prototype, "daysOfMonth", void 0);
|
|
24507
24504
|
AuroLibraryRuntimeUtils$5$1.prototype.registerComponent('wc-range-datepicker-calendar', RangeDatepickerCalendar);
|
|
24508
24505
|
|
|
24509
|
-
var styleCss$5$1 = i$5`.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}}`;
|
|
24506
|
+
var styleCss$5$1 = i$5`.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}`;
|
|
24510
24507
|
|
|
24511
|
-
var colorCss$5$1 = i$5`: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-
|
|
24508
|
+
var colorCss$5$1 = i$5`: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}`;
|
|
24512
24509
|
|
|
24513
|
-
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$5`::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)}
|
|
24510
|
+
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$5`::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)}
|
|
24514
24511
|
`,xe=i$5`.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:""}
|
|
24515
24512
|
`,Se=i$5`: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)}
|
|
24516
|
-
`;class _e extends i$3{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.
|
|
24517
|
-
<div
|
|
24513
|
+
`;class _e extends i$3{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$5`${xe}`,i$5`${be}`,i$5`${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$8`
|
|
24514
|
+
<div
|
|
24515
|
+
id="popover"
|
|
24516
|
+
class="popover util_insetLg body-default"
|
|
24517
|
+
part="popover"
|
|
24518
|
+
role="tooltip"
|
|
24519
|
+
aria-hidden="${this.isPopoverVisible?"false":"true"}">
|
|
24518
24520
|
<div id="arrow" class="arrow" data-popper-arrow></div>
|
|
24519
|
-
<
|
|
24521
|
+
<slot></slot>
|
|
24520
24522
|
</div>
|
|
24521
24523
|
|
|
24522
|
-
<span>
|
|
24524
|
+
<span role="presentation">
|
|
24523
24525
|
<slot name="trigger" data-trigger-placement="${this.placement}"></slot>
|
|
24524
24526
|
</span>
|
|
24525
24527
|
`}}
|
|
24526
24528
|
|
|
24527
24529
|
var popoverVersion = '6.0.1';
|
|
24528
24530
|
|
|
24531
|
+
/* 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 */
|
|
24532
|
+
|
|
24529
24533
|
const startOfDay$1 = (ms) => {
|
|
24530
24534
|
const date = new Date(ms);
|
|
24531
24535
|
date.setHours(0, 0, 0, 0);
|
|
24532
24536
|
return date.getTime();
|
|
24533
24537
|
};
|
|
24534
24538
|
|
|
24535
|
-
/* 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 */
|
|
24536
|
-
|
|
24537
24539
|
class AuroCalendarCell extends i$3 {
|
|
24538
24540
|
constructor() {
|
|
24539
24541
|
super();
|
|
24540
24542
|
|
|
24541
24543
|
this.day = null;
|
|
24542
24544
|
this.selected = false;
|
|
24543
|
-
this.hovered = false;
|
|
24544
24545
|
this.dateTo = null;
|
|
24545
24546
|
this.dateFrom = null;
|
|
24546
24547
|
this.month = null;
|
|
@@ -24548,11 +24549,12 @@ class AuroCalendarCell extends i$3 {
|
|
|
24548
24549
|
this.max = null;
|
|
24549
24550
|
this.disabled = false;
|
|
24550
24551
|
this.disabledDays = [];
|
|
24551
|
-
this.hoveredDate = null;
|
|
24552
24552
|
this.isCurrentDate = false;
|
|
24553
24553
|
this._locale = null;
|
|
24554
24554
|
this.dateStr = null;
|
|
24555
24555
|
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.
|
|
24556
|
+
this.active = false;
|
|
24557
|
+
this.hasPopoverContent = false;
|
|
24556
24558
|
|
|
24557
24559
|
this.runtimeUtils = new AuroLibraryRuntimeUtils$5$1();
|
|
24558
24560
|
|
|
@@ -24571,7 +24573,6 @@ class AuroCalendarCell extends i$3 {
|
|
|
24571
24573
|
// ...super.properties,
|
|
24572
24574
|
day: { type: Object },
|
|
24573
24575
|
selected: { type: Boolean },
|
|
24574
|
-
hovered: { type: Boolean },
|
|
24575
24576
|
dateTo: { type: String },
|
|
24576
24577
|
dateFrom: { type: String },
|
|
24577
24578
|
month: { type: String },
|
|
@@ -24582,11 +24583,11 @@ class AuroCalendarCell extends i$3 {
|
|
|
24582
24583
|
reflect: true
|
|
24583
24584
|
},
|
|
24584
24585
|
disabledDays: { type: Array },
|
|
24585
|
-
hoveredDate: { type: String },
|
|
24586
24586
|
isCurrentDate: { type: Boolean },
|
|
24587
24587
|
locale: { type: String },
|
|
24588
24588
|
dateStr: { type: String },
|
|
24589
|
-
renderForDateSlot: { type: Boolean }
|
|
24589
|
+
renderForDateSlot: { type: Boolean },
|
|
24590
|
+
hasPopoverContent: { type: Boolean }
|
|
24590
24591
|
};
|
|
24591
24592
|
}
|
|
24592
24593
|
|
|
@@ -24610,17 +24611,17 @@ class AuroCalendarCell extends i$3 {
|
|
|
24610
24611
|
}
|
|
24611
24612
|
|
|
24612
24613
|
/**
|
|
24613
|
-
* Handles selected
|
|
24614
|
+
* Handles selected state of the calendar cell when the selection changes.
|
|
24615
|
+
* Also clears any imperative range preview classes so classMap is the
|
|
24616
|
+
* sole source of truth after a selection update.
|
|
24614
24617
|
* @private
|
|
24615
24618
|
* @param {Number} dateFrom - Depart date.
|
|
24616
24619
|
* @param {Number} dateTo - Return date.
|
|
24617
|
-
* @param {Number} hoveredDate - Hovered date.
|
|
24618
24620
|
* @param {Object} day - An object containing the dateFrom and day of month values.
|
|
24619
24621
|
* @returns {void}
|
|
24620
24622
|
*/
|
|
24621
|
-
dateChanged(dateFrom, dateTo,
|
|
24623
|
+
dateChanged(dateFrom, dateTo, day) {
|
|
24622
24624
|
this.selected = false;
|
|
24623
|
-
this.hovered = false;
|
|
24624
24625
|
|
|
24625
24626
|
const parsedDateFrom = parseInt(dateFrom, 10);
|
|
24626
24627
|
const parsedDateTo = parseInt(dateTo, 10);
|
|
@@ -24632,10 +24633,6 @@ class AuroCalendarCell extends i$3 {
|
|
|
24632
24633
|
if (day.date === departTimestamp || day.date === returnTimestamp) {
|
|
24633
24634
|
this.selected = true;
|
|
24634
24635
|
}
|
|
24635
|
-
|
|
24636
|
-
if (((hoveredDate === day.date || day.date < hoveredDate) && day.date > parsedDateFrom && !parsedDateTo && !Number.isNaN(parsedDateFrom) && parsedDateFrom !== undefined && !this.selected) || (day.date > parsedDateFrom && day.date < parsedDateTo)) {
|
|
24637
|
-
this.hovered = true;
|
|
24638
|
-
}
|
|
24639
24636
|
}
|
|
24640
24637
|
}
|
|
24641
24638
|
|
|
@@ -24645,27 +24642,104 @@ class AuroCalendarCell extends i$3 {
|
|
|
24645
24642
|
* @returns {void}
|
|
24646
24643
|
*/
|
|
24647
24644
|
handleTap() {
|
|
24648
|
-
if (!this.disabled) {
|
|
24645
|
+
if (!this.disabled && !this.isBlackout()) {
|
|
24649
24646
|
this.datepicker.handleCellClick(this.day.date);
|
|
24650
24647
|
}
|
|
24648
|
+
|
|
24649
|
+
// Set this cell as the active cell regardless of blackout status
|
|
24650
|
+
if (this.day) {
|
|
24651
|
+
this.dispatchEvent(new CustomEvent('calendar-cell-activate', {
|
|
24652
|
+
bubbles: true,
|
|
24653
|
+
composed: true,
|
|
24654
|
+
detail: { date: this.day.date }
|
|
24655
|
+
}));
|
|
24656
|
+
}
|
|
24651
24657
|
}
|
|
24652
24658
|
|
|
24653
24659
|
/**
|
|
24654
24660
|
* Handles user hover events and dispatches a custom event.
|
|
24661
|
+
* Does NOT set any reactive properties — the range preview is handled
|
|
24662
|
+
* imperatively by the calendar component to avoid O(N) re-renders.
|
|
24655
24663
|
* @private
|
|
24656
24664
|
* @returns {void}
|
|
24657
24665
|
*/
|
|
24658
24666
|
handleHover() {
|
|
24659
|
-
this.hovered = true;
|
|
24660
|
-
|
|
24661
|
-
let _a;
|
|
24662
24667
|
this.dispatchEvent(new CustomEvent('date-is-hovered', {
|
|
24663
|
-
detail: { date:
|
|
24668
|
+
detail: { date: this.day?.date },
|
|
24664
24669
|
}));
|
|
24665
24670
|
}
|
|
24666
24671
|
|
|
24667
24672
|
/**
|
|
24668
|
-
*
|
|
24673
|
+
* Handles focus events on the cell button.
|
|
24674
|
+
* Dispatches a lightweight event for the calendar to handle SR
|
|
24675
|
+
* announcements and range preview updates without triggering
|
|
24676
|
+
* any Lit lifecycle updates.
|
|
24677
|
+
* @private
|
|
24678
|
+
* @returns {void}
|
|
24679
|
+
*/
|
|
24680
|
+
handleFocus() {
|
|
24681
|
+
this.dispatchEvent(new CustomEvent('calendar-cell-focused', {
|
|
24682
|
+
bubbles: true,
|
|
24683
|
+
composed: true,
|
|
24684
|
+
detail: { date: this.day?.date },
|
|
24685
|
+
}));
|
|
24686
|
+
}
|
|
24687
|
+
|
|
24688
|
+
/**
|
|
24689
|
+
* Checks if the current date is outside the valid min/max range.
|
|
24690
|
+
* Out-of-range cells are not focusable and are hidden from screen readers.
|
|
24691
|
+
* @private
|
|
24692
|
+
* @param {Object} day - An object containing the dateFrom and day of month values.
|
|
24693
|
+
* @param {Number} min - The minimum date value.
|
|
24694
|
+
* @param {Number} max - The maximum date value.
|
|
24695
|
+
* @returns {Boolean} - True if the date is out of range.
|
|
24696
|
+
*/
|
|
24697
|
+
isOutOfRange(day, min, max) {
|
|
24698
|
+
if (day && day.date !== null && day.date !== undefined) {
|
|
24699
|
+
return day.date < min || day.date > max;
|
|
24700
|
+
}
|
|
24701
|
+
return false;
|
|
24702
|
+
}
|
|
24703
|
+
|
|
24704
|
+
/**
|
|
24705
|
+
* Checks if the current date is a blackout date (in disabledDays but within range).
|
|
24706
|
+
* Blackout cells are focusable but not selectable.
|
|
24707
|
+
* @private
|
|
24708
|
+
* @returns {Boolean} - True if the date is a blackout date.
|
|
24709
|
+
*/
|
|
24710
|
+
isBlackout() {
|
|
24711
|
+
if (!this.day || this.day.date === null || this.day.date === undefined || this.isOutOfRange(this.day, this.min, this.max)) {
|
|
24712
|
+
return false;
|
|
24713
|
+
}
|
|
24714
|
+
|
|
24715
|
+
// Check against disabledDays timestamps (legacy path)
|
|
24716
|
+
if (Array.isArray(this.disabledDays) && this.disabledDays.length > 0 &&
|
|
24717
|
+
(this.disabledDays.findIndex(dd => parseInt(dd, 10) === this.day.date) !== -1)) {
|
|
24718
|
+
return true;
|
|
24719
|
+
}
|
|
24720
|
+
|
|
24721
|
+
// Check against blackoutDates (ISO format YYYY-MM-DD) on the datepicker
|
|
24722
|
+
const blackoutDates = this.datepicker?.blackoutDates;
|
|
24723
|
+
|
|
24724
|
+
if (Array.isArray(blackoutDates) && blackoutDates.length > 0) {
|
|
24725
|
+
const date = new Date(this.day.date * 1000);
|
|
24726
|
+
const yyyy = date.getFullYear();
|
|
24727
|
+
const mm = String(date.getMonth() + 1).padStart(2, '0');
|
|
24728
|
+
const dd = String(date.getDate()).padStart(2, '0');
|
|
24729
|
+
const cellDate = `${yyyy}-${mm}-${dd}`;
|
|
24730
|
+
if (blackoutDates.includes(cellDate)) {
|
|
24731
|
+
return true;
|
|
24732
|
+
}
|
|
24733
|
+
}
|
|
24734
|
+
|
|
24735
|
+
return false;
|
|
24736
|
+
}
|
|
24737
|
+
|
|
24738
|
+
/**
|
|
24739
|
+
* Checks if the current date is disabled based on min/max range or the
|
|
24740
|
+
* legacy disabledDays timestamp list. Sets the `disabled` attribute on the
|
|
24741
|
+
* host when the date falls outside the allowed range or appears in
|
|
24742
|
+
* disabledDays. Note: blackout dates are handled separately by `isBlackout()`.
|
|
24669
24743
|
* @private
|
|
24670
24744
|
* @param {Object} day - An object containing the dateFrom and day of month values.
|
|
24671
24745
|
* @param {Number} min - The minimum date value.
|
|
@@ -24676,15 +24750,114 @@ class AuroCalendarCell extends i$3 {
|
|
|
24676
24750
|
isEnabled(day, min, max, disabledDays) {
|
|
24677
24751
|
this.removeAttribute('disabled');
|
|
24678
24752
|
|
|
24679
|
-
if (disabledDays && day && day.date
|
|
24680
|
-
|
|
24681
|
-
|
|
24682
|
-
|
|
24683
|
-
}
|
|
24753
|
+
if (disabledDays && day && day.date &&
|
|
24754
|
+
(day.date < min || day.date > max || disabledDays.findIndex(disabledDay => parseInt(disabledDay, 10) === day.date) !== -1)) {
|
|
24755
|
+
this.setAttribute('disabled', true);
|
|
24756
|
+
return true;
|
|
24684
24757
|
}
|
|
24758
|
+
|
|
24685
24759
|
return false;
|
|
24686
24760
|
}
|
|
24687
24761
|
|
|
24762
|
+
/**
|
|
24763
|
+
* Generates a unique cell ID in the format cell-YYYY-MM-DD.
|
|
24764
|
+
* @private
|
|
24765
|
+
* @returns {String} The unique cell ID.
|
|
24766
|
+
*/
|
|
24767
|
+
getCellId() {
|
|
24768
|
+
if (!this.day || !this.day.date) return '';
|
|
24769
|
+
const date = new Date(this.day.date * 1000);
|
|
24770
|
+
const year = date.getFullYear();
|
|
24771
|
+
const month = String(date.getMonth() + 1).padStart(2, '0');
|
|
24772
|
+
const day = String(date.getDate()).padStart(2, '0');
|
|
24773
|
+
return `cell-${year}-${month}-${day}`;
|
|
24774
|
+
}
|
|
24775
|
+
|
|
24776
|
+
/**
|
|
24777
|
+
* Generates a localized aria-label for the cell button using Intl.DateTimeFormat.
|
|
24778
|
+
* Includes range position and blackout status.
|
|
24779
|
+
* @private
|
|
24780
|
+
* @returns {String} The aria-label string.
|
|
24781
|
+
*/
|
|
24782
|
+
getAriaLabel() {
|
|
24783
|
+
if (!this.day || this.day.date === undefined) return '';
|
|
24784
|
+
|
|
24785
|
+
const date = new Date(this.day.date * 1000);
|
|
24786
|
+
|
|
24787
|
+
// Generate localized full date string using the configured locale
|
|
24788
|
+
const localeCode = this.locale?.code || undefined;
|
|
24789
|
+
const dateFormatter = new Intl.DateTimeFormat(localeCode, {
|
|
24790
|
+
weekday: 'long',
|
|
24791
|
+
year: 'numeric',
|
|
24792
|
+
month: 'long',
|
|
24793
|
+
day: 'numeric'
|
|
24794
|
+
});
|
|
24795
|
+
|
|
24796
|
+
let label = dateFormatter.format(date);
|
|
24797
|
+
|
|
24798
|
+
// Append date slot content (e.g. prices) so it is announced with the date.
|
|
24799
|
+
if (this.renderForDateSlot) {
|
|
24800
|
+
const dateSlotEl = this.querySelector(`[slot="date_${this.dateStr}"]`);
|
|
24801
|
+
if (dateSlotEl) {
|
|
24802
|
+
const text = dateSlotEl.innerText?.trim();
|
|
24803
|
+
if (text) {
|
|
24804
|
+
label += `, ${text}`;
|
|
24805
|
+
}
|
|
24806
|
+
}
|
|
24807
|
+
}
|
|
24808
|
+
|
|
24809
|
+
// appending popover content here so that it gets read in a logical order with the other date content.
|
|
24810
|
+
if (this.hasPopoverContent) {
|
|
24811
|
+
const popoverEl = this.querySelector(`[slot="popover_${this.dateStr}"]`);
|
|
24812
|
+
if (popoverEl) {
|
|
24813
|
+
label += `, ${popoverEl.innerText.trim()}`;
|
|
24814
|
+
}
|
|
24815
|
+
}
|
|
24816
|
+
|
|
24817
|
+
// Append range position label for range datepickers
|
|
24818
|
+
const rangePosition = this.getRangePosition();
|
|
24819
|
+
if (rangePosition) {
|
|
24820
|
+
label += `, ${rangePosition}`;
|
|
24821
|
+
}
|
|
24822
|
+
|
|
24823
|
+
// Append blackout label for blackout cells
|
|
24824
|
+
if (this.isBlackout()) {
|
|
24825
|
+
label += `, ${this.datepicker?.blackoutLabel || 'unavailable'}`;
|
|
24826
|
+
}
|
|
24827
|
+
|
|
24828
|
+
return label;
|
|
24829
|
+
}
|
|
24830
|
+
|
|
24831
|
+
/**
|
|
24832
|
+
* Determines the range position of this cell relative to the current selection.
|
|
24833
|
+
* @private
|
|
24834
|
+
* @returns {String|null} Range position label or null if not in range mode.
|
|
24835
|
+
*/
|
|
24836
|
+
getRangePosition() {
|
|
24837
|
+
if (!this.datepicker || !this.datepicker.hasAttribute('range')) return null;
|
|
24838
|
+
|
|
24839
|
+
const parsedDateFrom = Number.parseInt(this.dateFrom, 10);
|
|
24840
|
+
if (!Number.isFinite(parsedDateFrom)) return null;
|
|
24841
|
+
|
|
24842
|
+
const departTimestamp = startOfDay$1(parsedDateFrom * 1000) / 1000;
|
|
24843
|
+
const dayDate = this.day.date;
|
|
24844
|
+
|
|
24845
|
+
const parsedDateTo = Number.parseInt(this.dateTo, 10);
|
|
24846
|
+
const hasDateTo = Number.isFinite(parsedDateTo);
|
|
24847
|
+
const returnTimestamp = hasDateTo ? startOfDay$1(parsedDateTo * 1000) / 1000 : null;
|
|
24848
|
+
|
|
24849
|
+
if (dayDate === departTimestamp) return this.datepicker.rangeLabelStart || 'range start';
|
|
24850
|
+
|
|
24851
|
+
if (hasDateTo && dayDate === returnTimestamp) return this.datepicker.rangeLabelEnd || 'range end';
|
|
24852
|
+
|
|
24853
|
+
if (dayDate < departTimestamp) return this.datepicker.rangeLabelBeforeRange || 'before range';
|
|
24854
|
+
|
|
24855
|
+
if (hasDateTo && dayDate > departTimestamp && dayDate < returnTimestamp) return this.datepicker.rangeLabelInRange || 'in range';
|
|
24856
|
+
|
|
24857
|
+
// After start date, no end date yet, or after end date
|
|
24858
|
+
return this.datepicker.rangeLabelAfterRange || 'after range';
|
|
24859
|
+
}
|
|
24860
|
+
|
|
24688
24861
|
/**
|
|
24689
24862
|
* Checks if the current date is the depart date.
|
|
24690
24863
|
* @private
|
|
@@ -24752,12 +24925,12 @@ class AuroCalendarCell extends i$3 {
|
|
|
24752
24925
|
}
|
|
24753
24926
|
|
|
24754
24927
|
/**
|
|
24755
|
-
* Checks if the current date is a
|
|
24928
|
+
* Checks if the current date is a referenced date.
|
|
24756
24929
|
* @param {Object} dateStr - The date string in MM_DD_YYYY format.
|
|
24757
|
-
* @returns Boolean - True if the date is a
|
|
24930
|
+
* @returns Boolean - True if the date is a referenced date.
|
|
24758
24931
|
*/
|
|
24759
24932
|
isReferenceDate(dateStr) {
|
|
24760
|
-
// If the datepicker has
|
|
24933
|
+
// If the datepicker has referenced dates specified
|
|
24761
24934
|
if (this.datepicker && this.datepicker.hasAttribute('referenceDates')) {
|
|
24762
24935
|
|
|
24763
24936
|
// Get the referenceDates attribute from the datepicker
|
|
@@ -24767,7 +24940,11 @@ class AuroCalendarCell extends i$3 {
|
|
|
24767
24940
|
if (!Array.isArray(referenceDates) || referenceDates.length === 0) return false;
|
|
24768
24941
|
|
|
24769
24942
|
// Convert cell dateStr (MM_DD_YYYY) to ISO (YYYY-MM-DD) for comparison
|
|
24770
|
-
const [
|
|
24943
|
+
const [
|
|
24944
|
+
month,
|
|
24945
|
+
day,
|
|
24946
|
+
year
|
|
24947
|
+
] = dateStr.split('_');
|
|
24771
24948
|
const cellISO = `${year}-${month.padStart(2, '0')}-${day.padStart(2, '0')}`;
|
|
24772
24949
|
|
|
24773
24950
|
return referenceDates.includes(cellISO);
|
|
@@ -24857,9 +25034,9 @@ class AuroCalendarCell extends i$3 {
|
|
|
24857
25034
|
|
|
24858
25035
|
if (popoverSlotContent) {
|
|
24859
25036
|
this.appendChild(popoverSlotContent.cloneNode(true));
|
|
24860
|
-
this.
|
|
25037
|
+
this.hasPopoverContent = true;
|
|
24861
25038
|
} else {
|
|
24862
|
-
this.
|
|
25039
|
+
this.hasPopoverContent = false;
|
|
24863
25040
|
}
|
|
24864
25041
|
} catch (err) { // eslint-disable-line no-unused-vars
|
|
24865
25042
|
// Error handling goes here
|
|
@@ -24875,60 +25052,249 @@ class AuroCalendarCell extends i$3 {
|
|
|
24875
25052
|
return;
|
|
24876
25053
|
}
|
|
24877
25054
|
this.datepicker = calendar.datepicker;
|
|
24878
|
-
this.
|
|
25055
|
+
this._slotContentHandler = () => {
|
|
24879
25056
|
this.handleSlotContent();
|
|
25057
|
+
// Force re-render so isBlackout()/aria-disabled reflect updated blackoutDates.
|
|
25058
|
+
this.requestUpdate();
|
|
25059
|
+
};
|
|
25060
|
+
this.datepicker.addEventListener('auroDatePicker-newSlotContent', this._slotContentHandler);
|
|
25061
|
+
|
|
25062
|
+
// Cache button reference for imperative class manipulation.
|
|
25063
|
+
this.updateComplete.then(() => {
|
|
25064
|
+
this._cachedButton = this.shadowRoot.querySelector('button.day');
|
|
24880
25065
|
});
|
|
24881
25066
|
|
|
25067
|
+
// Trigger an initial update now that `this.datepicker` is assigned so
|
|
25068
|
+
// cells reflect blackout/slot state that was configured before first render.
|
|
25069
|
+
this.requestUpdate();
|
|
25070
|
+
|
|
25071
|
+
this.calendarMonth = calendarMonth;
|
|
25072
|
+
this.configurePopover();
|
|
25073
|
+
}
|
|
25074
|
+
|
|
25075
|
+
disconnectedCallback() {
|
|
25076
|
+
super.disconnectedCallback();
|
|
25077
|
+
if (this.datepicker && this._slotContentHandler) {
|
|
25078
|
+
this.datepicker.removeEventListener('auroDatePicker-newSlotContent', this._slotContentHandler);
|
|
25079
|
+
}
|
|
25080
|
+
}
|
|
25081
|
+
|
|
25082
|
+
/**
|
|
25083
|
+
* Configures the popover instance with the calendar month boundary.
|
|
25084
|
+
* Called from firstUpdated and updated because the popover element is only
|
|
25085
|
+
* rendered after hasPopoverContent becomes true (set by handleSlotContent).
|
|
25086
|
+
* @private
|
|
25087
|
+
* @returns {void}
|
|
25088
|
+
*/
|
|
25089
|
+
configurePopover() {
|
|
24882
25090
|
this.auroPopover = this.shadowRoot.querySelector(this.popoverTag._$litStatic$);
|
|
24883
25091
|
|
|
24884
|
-
this.auroPopover
|
|
25092
|
+
if (this.auroPopover && this.calendarMonth) {
|
|
25093
|
+
this.auroPopover.boundary = this.calendarMonth;
|
|
25094
|
+
}
|
|
24885
25095
|
}
|
|
24886
25096
|
|
|
24887
25097
|
updated(properties) {
|
|
24888
|
-
if (properties.has('dateFrom') || properties.has('dateTo') || properties.has('
|
|
24889
|
-
this.dateChanged(this.dateFrom, this.dateTo, this.
|
|
25098
|
+
if (properties.has('dateFrom') || properties.has('dateTo') || properties.has('day')) {
|
|
25099
|
+
this.dateChanged(this.dateFrom, this.dateTo, this.day);
|
|
25100
|
+
}
|
|
25101
|
+
|
|
25102
|
+
if (properties.has('day') && this.day) {
|
|
25103
|
+
this.setDateSlotName();
|
|
25104
|
+
this.handleSlotContent();
|
|
25105
|
+
|
|
25106
|
+
// Re-cache button reference when the day changes (cell may have re-rendered).
|
|
25107
|
+
this.updateComplete.then(() => {
|
|
25108
|
+
this._cachedButton = this.shadowRoot.querySelector('button.day');
|
|
25109
|
+
});
|
|
25110
|
+
|
|
25111
|
+
// Update host-level aria attributes for ariaActiveDescendantElement.
|
|
25112
|
+
this.updateHostAria();
|
|
25113
|
+
}
|
|
25114
|
+
|
|
25115
|
+
// Update host aria when selection changes (aria-selected, range labels)
|
|
25116
|
+
if (properties.has('dateFrom') || properties.has('dateTo') || properties.has('selected')) {
|
|
25117
|
+
this.updateHostAria();
|
|
24890
25118
|
}
|
|
24891
25119
|
|
|
24892
|
-
|
|
24893
|
-
|
|
25120
|
+
// Configure popover when it first becomes rendered
|
|
25121
|
+
if (properties.has('hasPopoverContent') && this.hasPopoverContent) {
|
|
25122
|
+
this.updateComplete.then(() => this.configurePopover());
|
|
25123
|
+
}
|
|
24894
25124
|
}
|
|
24895
25125
|
|
|
24896
|
-
|
|
25126
|
+
/**
|
|
25127
|
+
* Updates ARIA attributes on the host element so that
|
|
25128
|
+
* ariaActiveDescendantElement can expose cell info to the SR.
|
|
25129
|
+
* @private
|
|
25130
|
+
* @returns {void}
|
|
25131
|
+
*/
|
|
25132
|
+
updateHostAria() {
|
|
25133
|
+
if (!this.day || this.day.date === undefined) return;
|
|
25134
|
+
|
|
25135
|
+
const outOfRange = this.isOutOfRange(this.day, this.min, this.max);
|
|
25136
|
+
if (outOfRange) {
|
|
25137
|
+
this.removeAttribute('role');
|
|
25138
|
+
this.removeAttribute('aria-label');
|
|
25139
|
+
return;
|
|
25140
|
+
}
|
|
25141
|
+
|
|
25142
|
+
// The host acts as the gridcell for ariaActiveDescendantElement.
|
|
25143
|
+
this.setAttribute('role', 'gridcell');
|
|
25144
|
+
this.setAttribute('aria-label', this.getAriaLabel());
|
|
25145
|
+
this.setAttribute('aria-selected', this.selected ? 'true' : 'false');
|
|
25146
|
+
|
|
25147
|
+
if (this.isBlackout()) {
|
|
25148
|
+
this.setAttribute('aria-disabled', 'true');
|
|
25149
|
+
} else {
|
|
25150
|
+
this.removeAttribute('aria-disabled');
|
|
25151
|
+
}
|
|
25152
|
+
}
|
|
25153
|
+
|
|
25154
|
+
/**
|
|
25155
|
+
* Programmatically focuses the cell's interactive button element.
|
|
25156
|
+
* Uses focusVisible: true so the :focus-visible ring appears even when
|
|
25157
|
+
* the bib was opened via mouse click (which sets mouse input modality).
|
|
25158
|
+
* @returns {void}
|
|
25159
|
+
*/
|
|
25160
|
+
focusButton() {
|
|
25161
|
+
const button = this._cachedButton || this.shadowRoot.querySelector('button:not([aria-hidden])');
|
|
25162
|
+
if (button) {
|
|
25163
|
+
button.focus({ focusVisible: true });
|
|
25164
|
+
}
|
|
25165
|
+
}
|
|
25166
|
+
|
|
25167
|
+
/**
|
|
25168
|
+
* Imperatively marks this cell as active without triggering a Lit re-render.
|
|
25169
|
+
* Note: buttons stay tabindex="-1" because the grid uses aria-activedescendant.
|
|
25170
|
+
* @returns {void}
|
|
25171
|
+
*/
|
|
25172
|
+
setActive() {
|
|
25173
|
+
this.active = true;
|
|
25174
|
+
|
|
25175
|
+
// Show the popover when this cell becomes active via keyboard navigation.
|
|
25176
|
+
if (this.auroPopover) {
|
|
25177
|
+
this.auroPopover.toggleShow();
|
|
25178
|
+
}
|
|
25179
|
+
}
|
|
25180
|
+
|
|
25181
|
+
/**
|
|
25182
|
+
* Imperatively marks this cell as inactive without triggering a Lit re-render.
|
|
25183
|
+
* @returns {void}
|
|
25184
|
+
*/
|
|
25185
|
+
clearActive() {
|
|
25186
|
+
this.active = false;
|
|
25187
|
+
const btn = this._cachedButton || this.shadowRoot.querySelector('button.day');
|
|
25188
|
+
if (btn) {
|
|
25189
|
+
btn.classList.remove('activeCell');
|
|
25190
|
+
}
|
|
25191
|
+
|
|
25192
|
+
// Hide the popover when this cell loses active state.
|
|
25193
|
+
if (this.auroPopover) {
|
|
25194
|
+
this.auroPopover.toggleHide();
|
|
25195
|
+
}
|
|
25196
|
+
}
|
|
25197
|
+
|
|
25198
|
+
/**
|
|
25199
|
+
* Updates range preview classes imperatively (no Lit re-render).
|
|
25200
|
+
* Called by the calendar component when the hovered date changes
|
|
25201
|
+
* during range selection (dateFrom set, dateTo not yet set).
|
|
25202
|
+
* @param {Number} hoveredDate - Unix timestamp of the currently hovered/focused date.
|
|
25203
|
+
* @param {Number} dateFrom - Unix timestamp of the selected departure date.
|
|
25204
|
+
* @returns {void}
|
|
25205
|
+
*/
|
|
25206
|
+
updateRangePreviewClasses(hoveredDate, dateFrom) {
|
|
25207
|
+
const btn = this._cachedButton;
|
|
25208
|
+
if (!btn || !this.day) return;
|
|
25209
|
+
|
|
25210
|
+
const dayDate = this.day.date;
|
|
25211
|
+
const departTimestamp = startOfDay$1(dateFrom * 1000) / 1000;
|
|
25212
|
+
const isInRange = dayDate > departTimestamp && dayDate < hoveredDate;
|
|
25213
|
+
const isLastHovered = dayDate === hoveredDate && hoveredDate > departTimestamp;
|
|
25214
|
+
const isDepartWithPreview = dayDate === departTimestamp && hoveredDate > departTimestamp;
|
|
25215
|
+
|
|
25216
|
+
btn.classList.toggle('inRange', isInRange);
|
|
25217
|
+
btn.classList.toggle('lastHoveredDate', isLastHovered);
|
|
25218
|
+
btn.classList.toggle('rangeDepartDate', isDepartWithPreview);
|
|
25219
|
+
}
|
|
25220
|
+
|
|
25221
|
+
/**
|
|
25222
|
+
* Clears all imperative range preview classes from the cell button.
|
|
25223
|
+
* Called when a selection occurs so classMap becomes the sole source of truth.
|
|
25224
|
+
* @returns {void}
|
|
25225
|
+
*/
|
|
25226
|
+
clearRangePreviewClasses() {
|
|
25227
|
+
const btn = this._cachedButton;
|
|
25228
|
+
if (!btn) return;
|
|
25229
|
+
|
|
25230
|
+
btn.classList.remove('inRange', 'lastHoveredDate', 'rangeDepartDate');
|
|
25231
|
+
}
|
|
25232
|
+
|
|
25233
|
+
renderCellButton() {
|
|
25234
|
+
const outOfRange = this.isOutOfRange(this.day, this.min, this.max);
|
|
25235
|
+
const blackout = this.isBlackout();
|
|
25236
|
+
|
|
25237
|
+
// Static and selection-driven classes only. Hover-driven classes
|
|
25238
|
+
// (inRange, lastHoveredDate, rangeDepartDate during preview) are
|
|
25239
|
+
// managed imperatively via updateRangePreviewClasses() to avoid
|
|
25240
|
+
// O(N) Lit re-renders on every focus/hover event.
|
|
25241
|
+
const isFirstDay = this.day?.title === 1;
|
|
25242
|
+
const isLastDay = this.day?.date && (() => {
|
|
25243
|
+
const dt = new Date(this.day.date * 1000);
|
|
25244
|
+
return dt.getDate() === new Date(dt.getFullYear(), dt.getMonth() + 1, 0).getDate();
|
|
25245
|
+
})();
|
|
25246
|
+
|
|
24897
25247
|
const buttonClasses = {
|
|
24898
25248
|
'day': true,
|
|
24899
|
-
'body-
|
|
24900
|
-
'currentDate': this.
|
|
25249
|
+
'body-default': true,
|
|
25250
|
+
'currentDate': this.isCurrentDate,
|
|
24901
25251
|
'selected': this.selected,
|
|
24902
|
-
'inRange': this.
|
|
24903
|
-
'
|
|
24904
|
-
|
|
24905
|
-
'rangeDepartDate': this.isDepartDate(this.day, this.dateFrom) &&
|
|
24906
|
-
'rangeReturnDate': this.isReturnDate(this.day, this.dateFrom, this.dateTo),
|
|
25252
|
+
'inRange': this.datepicker?.hasAttribute('range') && this.dateTo && this.isInRange(this.day, this.dateFrom, this.dateTo),
|
|
25253
|
+
'disabled': outOfRange,
|
|
25254
|
+
blackout,
|
|
25255
|
+
'rangeDepartDate': this.datepicker?.hasAttribute('range') && this.isDepartDate(this.day, this.dateFrom) && this.dateTo,
|
|
25256
|
+
'rangeReturnDate': this.datepicker?.hasAttribute('range') && this.isReturnDate(this.day, this.dateFrom, this.dateTo),
|
|
24907
25257
|
'reference': this.isReferenceDate(this.dateStr),
|
|
24908
|
-
'sameDateTrip': this.dateFrom === this.dateTo
|
|
25258
|
+
'sameDateTrip': this.datepicker?.hasAttribute('range') && this.dateFrom === this.dateTo,
|
|
25259
|
+
'firstDayOfMonth': isFirstDay,
|
|
25260
|
+
'lastDayOfMonth': isLastDay,
|
|
24909
25261
|
};
|
|
24910
25262
|
|
|
24911
|
-
let _a, _b;
|
|
24912
25263
|
return u$d`
|
|
24913
|
-
|
|
24914
|
-
|
|
24915
|
-
|
|
24916
|
-
|
|
24917
|
-
|
|
24918
|
-
|
|
24919
|
-
|
|
24920
|
-
|
|
24921
|
-
|
|
24922
|
-
|
|
24923
|
-
|
|
24924
|
-
<div class="
|
|
24925
|
-
|
|
24926
|
-
<
|
|
24927
|
-
<slot name="date_${this.dateStr}"></slot>
|
|
24928
|
-
</div>
|
|
25264
|
+
<button
|
|
25265
|
+
slot="trigger"
|
|
25266
|
+
id="${this.getCellId()}"
|
|
25267
|
+
@click="${outOfRange ? undefined : this.handleTap}"
|
|
25268
|
+
@mouseover="${outOfRange ? undefined : this.handleHover}"
|
|
25269
|
+
@focus="${outOfRange ? undefined : this.handleFocus}"
|
|
25270
|
+
class="${e$3(buttonClasses)}"
|
|
25271
|
+
?disabled="${outOfRange}"
|
|
25272
|
+
aria-hidden="${outOfRange ? 'true' : A$7}"
|
|
25273
|
+
tabindex="-1">
|
|
25274
|
+
<div class="buttonWrapper" aria-hidden="true">
|
|
25275
|
+
<div class="currentDayMarker">${this.day?.title || A$7}</div>
|
|
25276
|
+
<div class="dateSlot body-2xs" part="dateSlot" aria-hidden="true" ?hidden="${!this.renderForDateSlot}">
|
|
25277
|
+
<slot name="date_${this.dateStr}"></slot>
|
|
24929
25278
|
</div>
|
|
24930
|
-
</
|
|
24931
|
-
|
|
25279
|
+
</div>
|
|
25280
|
+
</button>
|
|
25281
|
+
`;
|
|
25282
|
+
}
|
|
25283
|
+
|
|
25284
|
+
render() {
|
|
25285
|
+
const { hasPopoverContent } = this;
|
|
25286
|
+
|
|
25287
|
+
if (hasPopoverContent) {
|
|
25288
|
+
return u$d`
|
|
25289
|
+
<${this.popoverTag}>
|
|
25290
|
+
<span aria-hidden="true"><slot name="popover_${this.dateStr}"></slot></span>
|
|
25291
|
+
${this.renderCellButton()}
|
|
25292
|
+
</${this.popoverTag}>
|
|
25293
|
+
`;
|
|
25294
|
+
}
|
|
25295
|
+
|
|
25296
|
+
return u$d`
|
|
25297
|
+
${this.renderCellButton()}
|
|
24932
25298
|
`;
|
|
24933
25299
|
}
|
|
24934
25300
|
}
|
|
@@ -24941,7 +25307,7 @@ if (!customElements.get('auro-formkit-calendar-cell')) {
|
|
|
24941
25307
|
|
|
24942
25308
|
// See https://git.io/JJ6SJ for "How to document your components using JSDoc"
|
|
24943
25309
|
|
|
24944
|
-
/* eslint-disable no-magic-numbers
|
|
25310
|
+
/* eslint-disable no-magic-numbers */
|
|
24945
25311
|
|
|
24946
25312
|
|
|
24947
25313
|
const getMonthNamesFromLocale = (locale) => {
|
|
@@ -24958,11 +25324,12 @@ const getMonthNamesFromLocale = (locale) => {
|
|
|
24958
25324
|
* Uses UTC dates to avoid DST-related day drift across timezones.
|
|
24959
25325
|
* @private
|
|
24960
25326
|
* @param {String} locale - The BCP 47 language tag for localization (e.g. "en-US").
|
|
24961
|
-
* @
|
|
25327
|
+
* @param {String} weekday - The format of the weekday name ('narrow', 'short', 'long').
|
|
25328
|
+
* @returns {Array} An array of seven localized weekday names, starting from Sunday.
|
|
24962
25329
|
*/
|
|
24963
|
-
const getWeekdayNames = (locale) => {
|
|
25330
|
+
const getWeekdayNames = (locale, weekday) => {
|
|
24964
25331
|
const fmt = new Intl.DateTimeFormat(locale, {
|
|
24965
|
-
weekday
|
|
25332
|
+
weekday,
|
|
24966
25333
|
timeZone: 'UTC'
|
|
24967
25334
|
});
|
|
24968
25335
|
// Jan 5 2025 is a known Sunday; use Date.UTC to avoid DST-related day drift
|
|
@@ -24997,7 +25364,7 @@ class AuroCalendarMonth extends RangeDatepickerCalendar {
|
|
|
24997
25364
|
|
|
24998
25365
|
/**
|
|
24999
25366
|
* BCP 47 locale tag (such as `en-US`) for calendar localization.
|
|
25000
|
-
*
|
|
25367
|
+
* As wc-range-datepicker expects a `locale` prop, we use `localeCode` to avoid conflicts.
|
|
25001
25368
|
*/
|
|
25002
25369
|
localeCode: {
|
|
25003
25370
|
type: String
|
|
@@ -25051,8 +25418,19 @@ class AuroCalendarMonth extends RangeDatepickerCalendar {
|
|
|
25051
25418
|
return this._cachedMonthNames[month - 1] || '';
|
|
25052
25419
|
}
|
|
25053
25420
|
|
|
25421
|
+
/**
|
|
25422
|
+
* Returns the unique heading ID for this month, used by aria-labelledby.
|
|
25423
|
+
* @private
|
|
25424
|
+
* @returns {String} The heading ID.
|
|
25425
|
+
*/
|
|
25426
|
+
getHeadingId() {
|
|
25427
|
+
return `month-heading-${this.month}-${this.year}`;
|
|
25428
|
+
}
|
|
25429
|
+
|
|
25430
|
+
|
|
25054
25431
|
/**
|
|
25055
25432
|
* Determines the current month name based on locale.
|
|
25433
|
+
* Also builds parallel arrays of full day names for abbr attributes.
|
|
25056
25434
|
* This is a rewrite of the function used in the class RangeDatepickerCalendar and should not be removed from here.
|
|
25057
25435
|
* @private
|
|
25058
25436
|
* @param {Object} changedProperties - The properties that have changed since the last update.
|
|
@@ -25066,8 +25444,67 @@ class AuroCalendarMonth extends RangeDatepickerCalendar {
|
|
|
25066
25444
|
}
|
|
25067
25445
|
|
|
25068
25446
|
localeChanged() {
|
|
25069
|
-
|
|
25070
|
-
this.
|
|
25447
|
+
this.dayNamesOfTheWeek = getWeekdayNames(this.localeCode, 'narrow');
|
|
25448
|
+
this.dayFullNames = getWeekdayNames(this.localeCode, 'long');
|
|
25449
|
+
}
|
|
25450
|
+
|
|
25451
|
+
/**
|
|
25452
|
+
* Renders a day-of-week header with abbr attribute for the full day name.
|
|
25453
|
+
* @private
|
|
25454
|
+
* @param {String} dayOfWeek - The short day name.
|
|
25455
|
+
* @param {Number} index - The index in the dayNamesOfTheWeek array.
|
|
25456
|
+
* @returns {Object} The header HTML.
|
|
25457
|
+
*/
|
|
25458
|
+
renderDayOfWeek(dayOfWeek, index) {
|
|
25459
|
+
const fullName = this.dayFullNames ? this.dayFullNames[index] : dayOfWeek;
|
|
25460
|
+
return b$8`<div class="th body-default" aria-label="${fullName}" role="columnheader">${dayOfWeek}</div>`;
|
|
25461
|
+
}
|
|
25462
|
+
|
|
25463
|
+
/**
|
|
25464
|
+
* Returns all focusable cell elements (enabled + blackout, not out-of-range) in this month.
|
|
25465
|
+
* @returns {Array} Array of auro-formkit-calendar-cell elements.
|
|
25466
|
+
*/
|
|
25467
|
+
getFocusableCells() {
|
|
25468
|
+
const cells = Array.from(this.shadowRoot.querySelectorAll('auro-formkit-calendar-cell'));
|
|
25469
|
+
return cells.filter((cell) => {
|
|
25470
|
+
if (!cell.day) {
|
|
25471
|
+
return false;
|
|
25472
|
+
}
|
|
25473
|
+
return !cell.isOutOfRange(cell.day, cell.min, cell.max);
|
|
25474
|
+
});
|
|
25475
|
+
}
|
|
25476
|
+
|
|
25477
|
+
/**
|
|
25478
|
+
* Overrides the base class handler to prevent setting `this.hoveredDate`
|
|
25479
|
+
* as a reactive property. Instead, just dispatches the event upward so
|
|
25480
|
+
* the calendar can handle range preview imperatively.
|
|
25481
|
+
* @private
|
|
25482
|
+
* @param {CustomEvent} event - The date-is-hovered event from a cell.
|
|
25483
|
+
* @returns {void}
|
|
25484
|
+
*/
|
|
25485
|
+
handleDateHovered(event) {
|
|
25486
|
+
this.dispatchEvent(new CustomEvent('hovered-date-changed', {
|
|
25487
|
+
detail: { value: event.detail.date },
|
|
25488
|
+
}));
|
|
25489
|
+
}
|
|
25490
|
+
|
|
25491
|
+
/**
|
|
25492
|
+
* Dispatches a bubbling event when the mouse leaves the date grid body
|
|
25493
|
+
* so the parent calendar can clear the range hover preview.
|
|
25494
|
+
* @private
|
|
25495
|
+
* @returns {void}
|
|
25496
|
+
*/
|
|
25497
|
+
handleTbodyMouseLeave() {
|
|
25498
|
+
this.dispatchEvent(new CustomEvent('calendar-month-mouseleave', {
|
|
25499
|
+
bubbles: true,
|
|
25500
|
+
composed: true,
|
|
25501
|
+
}));
|
|
25502
|
+
}
|
|
25503
|
+
|
|
25504
|
+
renderWeek(week) {
|
|
25505
|
+
return b$8`
|
|
25506
|
+
<div class="tr" role="row">${week.map((day) => this.renderDay(day))}</div>
|
|
25507
|
+
`;
|
|
25071
25508
|
}
|
|
25072
25509
|
|
|
25073
25510
|
renderDay(day) {
|
|
@@ -25080,7 +25517,6 @@ class AuroCalendarMonth extends RangeDatepickerCalendar {
|
|
|
25080
25517
|
.min="${this.min}"
|
|
25081
25518
|
.max="${this.max}"
|
|
25082
25519
|
.month="${this.month}"
|
|
25083
|
-
.hoveredDate="${this.hoveredDate}"
|
|
25084
25520
|
.dateTo="${this.dateTo}"
|
|
25085
25521
|
.dateFrom="${this.dateFrom}"
|
|
25086
25522
|
.locale="${this.localeCode}"
|
|
@@ -25091,7 +25527,7 @@ class AuroCalendarMonth extends RangeDatepickerCalendar {
|
|
|
25091
25527
|
>
|
|
25092
25528
|
</auro-formkit-calendar-cell>
|
|
25093
25529
|
`
|
|
25094
|
-
:
|
|
25530
|
+
: b$8`<div aria-hidden="true" inert></div>`}
|
|
25095
25531
|
</div>
|
|
25096
25532
|
`;
|
|
25097
25533
|
}
|
|
@@ -25105,7 +25541,7 @@ class AuroCalendarMonth extends RangeDatepickerCalendar {
|
|
|
25105
25541
|
<div>
|
|
25106
25542
|
<div class="header">
|
|
25107
25543
|
${this.renderPrevButton()}
|
|
25108
|
-
<div class="headerTitle heading-xs">
|
|
25544
|
+
<div class="headerTitle heading-xs" id="${this.getHeadingId()}">
|
|
25109
25545
|
${this.monthFirst ? b$8`
|
|
25110
25546
|
<div>${this.computeCurrentMonthName(this.month)}</div>
|
|
25111
25547
|
<div>${this.renderYear()}</div>
|
|
@@ -25116,14 +25552,13 @@ class AuroCalendarMonth extends RangeDatepickerCalendar {
|
|
|
25116
25552
|
</div>
|
|
25117
25553
|
${this.renderNextButton()}
|
|
25118
25554
|
</div>
|
|
25119
|
-
|
|
25120
|
-
<div class="table">
|
|
25555
|
+
<div class="table" role="grid">
|
|
25121
25556
|
<div class="thead">
|
|
25122
25557
|
<div class="tr">
|
|
25123
|
-
${(_a = this.dayNamesOfTheWeek) === null || _a === void 0 ? void 0 : _a.map(dayNameOfWeek => this.renderDayOfWeek(dayNameOfWeek))}
|
|
25558
|
+
${(_a = this.dayNamesOfTheWeek) === null || _a === void 0 ? void 0 : _a.map((dayNameOfWeek, index) => this.renderDayOfWeek(dayNameOfWeek, index))}
|
|
25124
25559
|
</div>
|
|
25125
25560
|
</div>
|
|
25126
|
-
<div class="tbody">
|
|
25561
|
+
<div class="tbody" role="rowgroup" @mouseleave="${this.handleTbodyMouseLeave}">
|
|
25127
25562
|
${(_b = this.daysOfMonth) === null || _b === void 0 ? void 0 : _b.map(week => this.renderWeek(week))}
|
|
25128
25563
|
</div>
|
|
25129
25564
|
</div>
|
|
@@ -25821,6 +26256,14 @@ let AuroBibtemplate$3 = class AuroBibtemplate extends i$3 {
|
|
|
25821
26256
|
large: {
|
|
25822
26257
|
type: Boolean,
|
|
25823
26258
|
reflect: true
|
|
26259
|
+
},
|
|
26260
|
+
|
|
26261
|
+
/**
|
|
26262
|
+
* If declared, the footer slot will be rendered even when not in fullscreen mode.
|
|
26263
|
+
*/
|
|
26264
|
+
showFooter: {
|
|
26265
|
+
type: Boolean,
|
|
26266
|
+
reflect: true
|
|
25824
26267
|
}
|
|
25825
26268
|
};
|
|
25826
26269
|
}
|
|
@@ -25923,7 +26366,7 @@ let AuroBibtemplate$3 = class AuroBibtemplate extends i$3 {
|
|
|
25923
26366
|
<slot></slot>
|
|
25924
26367
|
</div>
|
|
25925
26368
|
|
|
25926
|
-
${this.isFullscreen ? u$d`
|
|
26369
|
+
${this.isFullscreen || this.showFooter ? u$d`
|
|
25927
26370
|
<div id="footerContainer">
|
|
25928
26371
|
<slot name="footer"></slot>
|
|
25929
26372
|
</div>` : null}
|
|
@@ -25932,7 +26375,7 @@ let AuroBibtemplate$3 = class AuroBibtemplate extends i$3 {
|
|
|
25932
26375
|
}
|
|
25933
26376
|
};
|
|
25934
26377
|
|
|
25935
|
-
var formkitVersion$2$1 = '
|
|
26378
|
+
var formkitVersion$2$1 = '202606081904';
|
|
25936
26379
|
|
|
25937
26380
|
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$6`${s$8(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$5`: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}
|
|
25938
26381
|
`,u$4$1=i$5`.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}}
|
|
@@ -25993,7 +26436,7 @@ let l$1$2 = class l{generateElementName(t,e){let o=t;return o+="-",o+=e.replace(
|
|
|
25993
26436
|
|
|
25994
26437
|
var buttonVersion$1$1 = '12.3.2';
|
|
25995
26438
|
|
|
25996
|
-
/* eslint-disable no-magic-numbers, no-undef-init, max-lines, lit/binding-positions, lit/no-invalid-html */
|
|
26439
|
+
/* 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 */
|
|
25997
26440
|
|
|
25998
26441
|
|
|
25999
26442
|
// See https://git.io/JJ6SJ for "How to document your components using JSDoc"
|
|
@@ -26030,6 +26473,20 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
26030
26473
|
this.largeFullscreenHeadline = false;
|
|
26031
26474
|
this.isFullscreen = false;
|
|
26032
26475
|
|
|
26476
|
+
/**
|
|
26477
|
+
* The date of the currently active cell (Unix timestamp).
|
|
26478
|
+
* Only one cell across the entire calendar has tabindex="0" at a time.
|
|
26479
|
+
* @private
|
|
26480
|
+
*/
|
|
26481
|
+
this.activeCellDate = null;
|
|
26482
|
+
|
|
26483
|
+
/**
|
|
26484
|
+
* Whether the #calendarGrid wrapper currently has focus.
|
|
26485
|
+
* Used to determine whether the visualFocus ring should be shown.
|
|
26486
|
+
* @private
|
|
26487
|
+
*/
|
|
26488
|
+
this._gridHasFocus = false;
|
|
26489
|
+
|
|
26033
26490
|
/**
|
|
26034
26491
|
* @private
|
|
26035
26492
|
*/
|
|
@@ -26040,6 +26497,12 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
26040
26497
|
*/
|
|
26041
26498
|
this.calendarRangeMonths = null;
|
|
26042
26499
|
|
|
26500
|
+
/**
|
|
26501
|
+
* Legacy array of disabled-date timestamps.
|
|
26502
|
+
* @private
|
|
26503
|
+
*/
|
|
26504
|
+
this.disabledDays = [];
|
|
26505
|
+
|
|
26043
26506
|
/**
|
|
26044
26507
|
* @private
|
|
26045
26508
|
*/
|
|
@@ -26063,6 +26526,12 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
26063
26526
|
this.buttonTag = versioning.generateTag('auro-formkit-datepicker-button', buttonVersion$1$1, T$1$2);
|
|
26064
26527
|
|
|
26065
26528
|
this.dropdown = undefined;
|
|
26529
|
+
|
|
26530
|
+
/**
|
|
26531
|
+
* Unique instance ID for the live region element.
|
|
26532
|
+
* @private
|
|
26533
|
+
*/
|
|
26534
|
+
this._calendarInstanceId = Date.now().toString(36);
|
|
26066
26535
|
}
|
|
26067
26536
|
|
|
26068
26537
|
static get styles() {
|
|
@@ -26226,19 +26695,79 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
26226
26695
|
/**
|
|
26227
26696
|
* Updates the month and year when the user navigates to the previous calendar month.
|
|
26228
26697
|
* @private
|
|
26698
|
+
* @param {Object} [options] - Optional settings.
|
|
26699
|
+
* @param {boolean} [options.skipActiveUpdate=false] - When true, skip the active cell
|
|
26700
|
+
* recomputation. Used by arrow key handlers that manage the active cell themselves.
|
|
26229
26701
|
* @returns {void}
|
|
26230
26702
|
*/
|
|
26231
|
-
handlePrevMonth() {
|
|
26703
|
+
handlePrevMonth(options) {
|
|
26704
|
+
const opts = options instanceof Event ? {} : options || {};
|
|
26705
|
+
this.clearRangePreview({ force: true });
|
|
26232
26706
|
this.utilCal.handleMonthChange(this, 'prev');
|
|
26707
|
+
if (!opts.skipActiveUpdate) {
|
|
26708
|
+
this.updateActiveCellForVisibleMonth();
|
|
26709
|
+
}
|
|
26710
|
+
this.announceMonthChange();
|
|
26233
26711
|
}
|
|
26234
26712
|
|
|
26235
26713
|
/**
|
|
26236
26714
|
* Updates the month and year when the user navigates to the next calendar month.
|
|
26237
26715
|
* @private
|
|
26716
|
+
* @param {Object} [options] - Optional settings.
|
|
26717
|
+
* @param {boolean} [options.skipActiveUpdate=false] - When true, skip the active cell
|
|
26718
|
+
* recomputation. Used by arrow key handlers that manage the active cell themselves.
|
|
26238
26719
|
* @returns {void}
|
|
26239
26720
|
*/
|
|
26240
|
-
handleNextMonth() {
|
|
26721
|
+
handleNextMonth(options) {
|
|
26722
|
+
const opts = options instanceof Event ? {} : options || {};
|
|
26723
|
+
this.clearRangePreview({ force: true });
|
|
26241
26724
|
this.utilCal.handleMonthChange(this, 'next');
|
|
26725
|
+
if (!opts.skipActiveUpdate) {
|
|
26726
|
+
this.updateActiveCellForVisibleMonth();
|
|
26727
|
+
}
|
|
26728
|
+
this.announceMonthChange();
|
|
26729
|
+
}
|
|
26730
|
+
|
|
26731
|
+
/**
|
|
26732
|
+
* Announces the current month and year via the live region after navigation.
|
|
26733
|
+
* @private
|
|
26734
|
+
* @returns {void}
|
|
26735
|
+
*/
|
|
26736
|
+
announceMonthChange() {
|
|
26737
|
+
// Cancel any pending debounced cell announcement so it does not
|
|
26738
|
+
// overwrite this month navigation announcement.
|
|
26739
|
+
if (this._focusAnnounceTimer) {
|
|
26740
|
+
clearTimeout(this._focusAnnounceTimer);
|
|
26741
|
+
this._focusAnnounceTimer = null;
|
|
26742
|
+
}
|
|
26743
|
+
|
|
26744
|
+
const date = this.centralDateObject;
|
|
26745
|
+
const localeCode = this.locale?.code || undefined;
|
|
26746
|
+
const formatter = new Intl.DateTimeFormat(localeCode, { month: 'long',
|
|
26747
|
+
year: 'numeric' });
|
|
26748
|
+
this.announceSelection(formatter.format(date));
|
|
26749
|
+
}
|
|
26750
|
+
|
|
26751
|
+
/**
|
|
26752
|
+
* Updates the active cell after month navigation (prev/next buttons).
|
|
26753
|
+
* Always moves the active cell to the first enabled date in the newly
|
|
26754
|
+
* visible months so that tabbing back to the grid lands on an enabled cell.
|
|
26755
|
+
* @private
|
|
26756
|
+
* @returns {void}
|
|
26757
|
+
*/
|
|
26758
|
+
updateActiveCellForVisibleMonth() {
|
|
26759
|
+
// Use double-rAF to ensure child month/cell components have fully
|
|
26760
|
+
// rendered and cached their button references before we set tabindex.
|
|
26761
|
+
requestAnimationFrame(() => {
|
|
26762
|
+
requestAnimationFrame(() => {
|
|
26763
|
+
const newDate = this.computeActiveDate({ skipDateFrom: true });
|
|
26764
|
+
|
|
26765
|
+
if (newDate !== null && newDate !== undefined) {
|
|
26766
|
+
this.activeCellDate = newDate;
|
|
26767
|
+
this.setActiveCell(this.activeCellDate);
|
|
26768
|
+
}
|
|
26769
|
+
});
|
|
26770
|
+
});
|
|
26242
26771
|
}
|
|
26243
26772
|
|
|
26244
26773
|
/**
|
|
@@ -26346,7 +26875,1007 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
26346
26875
|
this.utilCal.scrollMonthIntoView(this, date, this.format);
|
|
26347
26876
|
}
|
|
26348
26877
|
|
|
26878
|
+
/**
|
|
26879
|
+
* Gets all rendered month components.
|
|
26880
|
+
* @private
|
|
26881
|
+
* @returns {Array} Array of auro-formkit-calendar-month elements.
|
|
26882
|
+
*/
|
|
26883
|
+
getMonthComponents() {
|
|
26884
|
+
return Array.from(this.shadowRoot.querySelectorAll('auro-formkit-calendar-month'));
|
|
26885
|
+
}
|
|
26886
|
+
|
|
26887
|
+
/**
|
|
26888
|
+
* Gets all focusable cells across all rendered months.
|
|
26889
|
+
* @private
|
|
26890
|
+
* @returns {Array} Array of auro-formkit-calendar-cell elements.
|
|
26891
|
+
*/
|
|
26892
|
+
getAllFocusableCells() {
|
|
26893
|
+
const months = this.getMonthComponents();
|
|
26894
|
+
let cells = [];
|
|
26895
|
+
months.forEach((month) => {
|
|
26896
|
+
cells = cells.concat(month.getFocusableCells());
|
|
26897
|
+
});
|
|
26898
|
+
return cells;
|
|
26899
|
+
}
|
|
26900
|
+
|
|
26901
|
+
/**
|
|
26902
|
+
* Sets the active cell across all months. Only one cell has tabindex="0" at a time.
|
|
26903
|
+
* Uses imperative DOM manipulation — no Lit re-render triggered.
|
|
26904
|
+
* Also updates ariaActiveDescendantElement on the grid wrapper so
|
|
26905
|
+
* screen readers announce the active cell without moving DOM focus.
|
|
26906
|
+
* @param {Number} date - Unix timestamp of the cell to activate.
|
|
26907
|
+
* @returns {void}
|
|
26908
|
+
*/
|
|
26909
|
+
setActiveCell(date) {
|
|
26910
|
+
const allCells = this.getAllFocusableCells();
|
|
26911
|
+
|
|
26912
|
+
let newActiveCell = null;
|
|
26913
|
+
allCells.forEach((cell) => {
|
|
26914
|
+
if (cell.day && cell.day.date === date) {
|
|
26915
|
+
cell.setActive();
|
|
26916
|
+
newActiveCell = cell;
|
|
26917
|
+
} else if (cell.active) {
|
|
26918
|
+
cell.clearActive();
|
|
26919
|
+
}
|
|
26920
|
+
});
|
|
26921
|
+
|
|
26922
|
+
this.activeCellDate = date;
|
|
26923
|
+
|
|
26924
|
+
// Apply activeCell ring only when the grid currently has focus.
|
|
26925
|
+
if (newActiveCell && this._gridHasFocus) {
|
|
26926
|
+
const btn = newActiveCell._cachedButton || newActiveCell.shadowRoot.querySelector('button.day');
|
|
26927
|
+
if (btn) {
|
|
26928
|
+
btn.classList.add('activeCell');
|
|
26929
|
+
}
|
|
26930
|
+
}
|
|
26931
|
+
}
|
|
26932
|
+
|
|
26933
|
+
/**
|
|
26934
|
+
* Focuses the calendar grid wrapper and sets the active cell.
|
|
26935
|
+
* DOM focus stays on the grid wrapper; the aria-live region
|
|
26936
|
+
* tells the screen reader which cell is "active".
|
|
26937
|
+
* @returns {void}
|
|
26938
|
+
*/
|
|
26939
|
+
focusActiveCell() {
|
|
26940
|
+
if (this.activeCellDate !== null && this.activeCellDate !== undefined) {
|
|
26941
|
+
this.setActiveCell(this.activeCellDate);
|
|
26942
|
+
}
|
|
26943
|
+
|
|
26944
|
+
const gridWrapper = this.shadowRoot.querySelector('#calendarGrid');
|
|
26945
|
+
if (gridWrapper) {
|
|
26946
|
+
gridWrapper.focus({ preventScroll: true,
|
|
26947
|
+
focusVisible: true });
|
|
26948
|
+
}
|
|
26949
|
+
}
|
|
26950
|
+
|
|
26951
|
+
/**
|
|
26952
|
+
* Shows the activeCell ring when the grid gains focus.
|
|
26953
|
+
* @private
|
|
26954
|
+
* @returns {void}
|
|
26955
|
+
*/
|
|
26956
|
+
handleGridFocusIn() {
|
|
26957
|
+
this._gridHasFocus = true;
|
|
26958
|
+
const activeCell = this.getAllFocusableCells().find((cell) => cell.active);
|
|
26959
|
+
if (activeCell) {
|
|
26960
|
+
const btn = activeCell._cachedButton || activeCell.shadowRoot.querySelector('button.day');
|
|
26961
|
+
if (btn) {
|
|
26962
|
+
btn.classList.add('activeCell');
|
|
26963
|
+
}
|
|
26964
|
+
}
|
|
26965
|
+
}
|
|
26966
|
+
|
|
26967
|
+
/**
|
|
26968
|
+
* Hides the activeCell ring when the grid loses focus.
|
|
26969
|
+
* @private
|
|
26970
|
+
* @returns {void}
|
|
26971
|
+
*/
|
|
26972
|
+
handleGridFocusOut() {
|
|
26973
|
+
this._gridHasFocus = false;
|
|
26974
|
+
// Remove activeCell from ALL cells to prevent stale rings.
|
|
26975
|
+
const allCells = this.getAllFocusableCells();
|
|
26976
|
+
for (const cell of allCells) {
|
|
26977
|
+
const btn = cell._cachedButton || cell.shadowRoot.querySelector('button.day');
|
|
26978
|
+
if (btn) {
|
|
26979
|
+
btn.classList.remove('activeCell');
|
|
26980
|
+
}
|
|
26981
|
+
}
|
|
26982
|
+
// Clear range hover preview so no highlight lingers after focus leaves the grid.
|
|
26983
|
+
this.clearRangePreview();
|
|
26984
|
+
}
|
|
26985
|
+
|
|
26986
|
+
/**
|
|
26987
|
+
* Computes the initial active date from data properties alone — no DOM required.
|
|
26988
|
+
* Priority:
|
|
26989
|
+
* 1. Selected date (dateFrom) if within range
|
|
26990
|
+
* 2. Today's date if not disabled (in-range and not blackout)
|
|
26991
|
+
* 3. First future non-disabled date (scans day-by-day from today up to 1 year)
|
|
26992
|
+
* 4. First previous non-disabled date (scans day-by-day from today up to 1 year)
|
|
26993
|
+
* 5. First enabled date in finite [min, max] range
|
|
26994
|
+
* 5b. First enabled date scanning forward from finite min (unbounded max)
|
|
26995
|
+
* 5c. First enabled date scanning backward from finite max (unbounded min)
|
|
26996
|
+
* 6. First in-range date (even if blackout) so focus can land somewhere
|
|
26997
|
+
* 7. Undefined — no valid target.
|
|
26998
|
+
*
|
|
26999
|
+
* @private
|
|
27000
|
+
* @param {Object} [options] - Optional settings.
|
|
27001
|
+
* @param {boolean} [options.skipDateFrom=false] - When true, skip the selected-date
|
|
27002
|
+
* shortcut (step 1). Used after month navigation so the active cell lands in the
|
|
27003
|
+
* newly visible month instead of jumping back to the selected date's month.
|
|
27004
|
+
* @returns {Number|undefined} Unix timestamp (seconds) of the date to activate, or undefined.
|
|
27005
|
+
*/
|
|
27006
|
+
computeActiveDate(options = {}) {
|
|
27007
|
+
const MAX_SCAN_DAYS = 366; // scan at most ~1 year in each direction
|
|
27008
|
+
|
|
27009
|
+
/**
|
|
27010
|
+
* Adds days to a timestamp using Date arithmetic to handle DST correctly.
|
|
27011
|
+
* Returns a local-midnight-aligned timestamp in seconds.
|
|
27012
|
+
* @param {Number} ts - Unix timestamp in seconds.
|
|
27013
|
+
* @param {Number} days - Number of days to add.
|
|
27014
|
+
* @returns {Number} The adjusted timestamp in seconds.
|
|
27015
|
+
*/
|
|
27016
|
+
const addDays = (ts, days) => {
|
|
27017
|
+
const date = new Date(ts * 1000);
|
|
27018
|
+
date.setDate(date.getDate() + days);
|
|
27019
|
+
date.setHours(0, 0, 0, 0);
|
|
27020
|
+
return Math.floor(date.getTime() / 1000);
|
|
27021
|
+
};
|
|
27022
|
+
|
|
27023
|
+
const rawMin = this.minDateObject?.getTime() / 1000;
|
|
27024
|
+
const rawMax = this.maxDateObject?.getTime() / 1000;
|
|
27025
|
+
|
|
27026
|
+
// When min/max are NaN (no minDate/maxDate configured), treat as unbounded.
|
|
27027
|
+
const minTs = Number.isFinite(rawMin) ? rawMin : -Infinity;
|
|
27028
|
+
const maxTs = Number.isFinite(rawMax) ? rawMax : Infinity;
|
|
27029
|
+
|
|
27030
|
+
// Build a Set of blackout timestamps for O(1) lookup.
|
|
27031
|
+
const blackoutSet = new Set(this.disabledDays.map((day) => parseInt(day, 10)));
|
|
27032
|
+
|
|
27033
|
+
// Also include ISO-format blackoutDates from the datepicker if available.
|
|
27034
|
+
// Parse YYYY-MM-DD as local date to avoid UTC shift issues.
|
|
27035
|
+
const isoBlackouts = this.datepicker?.blackoutDates;
|
|
27036
|
+
if (Array.isArray(isoBlackouts)) {
|
|
27037
|
+
for (const isoStr of isoBlackouts) {
|
|
27038
|
+
const parts = isoStr.split('-');
|
|
27039
|
+
const ts = Math.floor(new Date(parseInt(parts[0], 10), parseInt(parts[1], 10) - 1, parseInt(parts[2], 10)).getTime() / 1000);
|
|
27040
|
+
if (Number.isFinite(ts)) {
|
|
27041
|
+
blackoutSet.add(ts);
|
|
27042
|
+
}
|
|
27043
|
+
}
|
|
27044
|
+
}
|
|
27045
|
+
|
|
27046
|
+
/**
|
|
27047
|
+
* A date (unix timestamp in seconds, midnight-aligned) is "enabled" when
|
|
27048
|
+
* it is within [min, max] AND not a blackout day.
|
|
27049
|
+
* @param {Number} ts - Unix timestamp in seconds.
|
|
27050
|
+
* @returns {boolean} True if the date is enabled.
|
|
27051
|
+
*/
|
|
27052
|
+
const isEnabled = (ts) => ts >= minTs && ts <= maxTs && !blackoutSet.has(ts);
|
|
27053
|
+
|
|
27054
|
+
/**
|
|
27055
|
+
* A date is "in range" (focusable in the grid) when it is within [min, max].
|
|
27056
|
+
* Blackout dates are focusable but not selectable.
|
|
27057
|
+
* @param {Number} ts - Unix timestamp in seconds.
|
|
27058
|
+
* @returns {boolean} True if the date is in range.
|
|
27059
|
+
*/
|
|
27060
|
+
const isInRange = (ts) => ts >= minTs && ts <= maxTs;
|
|
27061
|
+
|
|
27062
|
+
// 1. Selected date — always valid target if within range (user chose it).
|
|
27063
|
+
// Skipped when called from month navigation so the active cell lands in
|
|
27064
|
+
// the newly visible month rather than the (possibly off-screen) selection.
|
|
27065
|
+
if (!options.skipDateFrom && this.dateFrom) {
|
|
27066
|
+
const parsedFrom = parseInt(this.dateFrom, 10);
|
|
27067
|
+
if (Number.isFinite(parsedFrom) && isInRange(parsedFrom)) {
|
|
27068
|
+
return parsedFrom;
|
|
27069
|
+
}
|
|
27070
|
+
}
|
|
27071
|
+
|
|
27072
|
+
// 2. Today's date (midnight-aligned) if enabled.
|
|
27073
|
+
const now = Math.floor(new Date().setHours(0, 0, 0, 0) / 1000);
|
|
27074
|
+
|
|
27075
|
+
// When centralDate is configured, prefer a date within the month(s) that
|
|
27076
|
+
// will actually be rendered. If today falls outside the visible range, an
|
|
27077
|
+
// active cell set to today would have no matching DOM element and keyboard
|
|
27078
|
+
// focus could not enter the calendar.
|
|
27079
|
+
|
|
27080
|
+
if (this.centralDateObject) {
|
|
27081
|
+
const centralMonth = this.centralDateObject.getMonth();
|
|
27082
|
+
const centralYear = this.centralDateObject.getFullYear();
|
|
27083
|
+
const todayDate = new Date(now * 1000);
|
|
27084
|
+
const todayMonth = todayDate.getMonth();
|
|
27085
|
+
const todayYear = todayDate.getFullYear();
|
|
27086
|
+
|
|
27087
|
+
// Today is outside the centralDate's month — scan for an enabled date
|
|
27088
|
+
// within the visible month instead.
|
|
27089
|
+
if (todayMonth !== centralMonth || todayYear !== centralYear) {
|
|
27090
|
+
const visibleStart = new Date(centralYear, centralMonth, 1);
|
|
27091
|
+
visibleStart.setHours(0, 0, 0, 0);
|
|
27092
|
+
const visibleEnd = new Date(centralYear, centralMonth + 1, 0); // last day of month
|
|
27093
|
+
visibleEnd.setHours(0, 0, 0, 0);
|
|
27094
|
+
const startTs = Math.floor(visibleStart.getTime() / 1000);
|
|
27095
|
+
const daysInMonth = visibleEnd.getDate();
|
|
27096
|
+
|
|
27097
|
+
for (let idx = 0; idx < daysInMonth; idx += 1) {
|
|
27098
|
+
const ts = addDays(startTs, idx);
|
|
27099
|
+
if (isEnabled(ts)) {
|
|
27100
|
+
return ts;
|
|
27101
|
+
}
|
|
27102
|
+
}
|
|
27103
|
+
|
|
27104
|
+
// No enabled date in the visible month — fall back to first in-range
|
|
27105
|
+
// date in the month so focus still lands on a focusable cell.
|
|
27106
|
+
for (let idx = 0; idx < daysInMonth; idx += 1) {
|
|
27107
|
+
const ts = addDays(startTs, idx);
|
|
27108
|
+
if (isInRange(ts)) {
|
|
27109
|
+
return ts;
|
|
27110
|
+
}
|
|
27111
|
+
}
|
|
27112
|
+
}
|
|
27113
|
+
}
|
|
27114
|
+
|
|
27115
|
+
if (isEnabled(now)) {
|
|
27116
|
+
return now;
|
|
27117
|
+
}
|
|
27118
|
+
|
|
27119
|
+
// When a centralDate is configured (or inferred), constrain the scan to the
|
|
27120
|
+
// rendered month(s) first so a single-month calendar does not pick a date
|
|
27121
|
+
// that has no DOM cell. Determine the visible range based on centralDate and
|
|
27122
|
+
// the number of rendered months.
|
|
27123
|
+
const renderedMonths = Math.max(this.numCalendars, 1);
|
|
27124
|
+
const visibleAnchor = this.centralDateObject ?? new Date(now * 1000);
|
|
27125
|
+
const visMonthStart = new Date(visibleAnchor.getFullYear(), visibleAnchor.getMonth(), 1);
|
|
27126
|
+
visMonthStart.setHours(0, 0, 0, 0);
|
|
27127
|
+
const visMonthEnd = new Date(visibleAnchor.getFullYear(), visibleAnchor.getMonth() + renderedMonths, 0);
|
|
27128
|
+
visMonthEnd.setHours(0, 0, 0, 0);
|
|
27129
|
+
const visStartTs = Math.floor(visMonthStart.getTime() / 1000);
|
|
27130
|
+
const visEndTs = Math.floor(visMonthEnd.getTime() / 1000);
|
|
27131
|
+
const visDays = Math.round((visEndTs - visStartTs) / 86400) + 1;
|
|
27132
|
+
|
|
27133
|
+
// Scan visible months for an enabled date.
|
|
27134
|
+
for (let idx = 0; idx < visDays; idx += 1) {
|
|
27135
|
+
const ts = addDays(visStartTs, idx);
|
|
27136
|
+
if (isEnabled(ts)) {
|
|
27137
|
+
return ts;
|
|
27138
|
+
}
|
|
27139
|
+
}
|
|
27140
|
+
|
|
27141
|
+
// No enabled date in visible months — try an in-range (focusable) date so
|
|
27142
|
+
// keyboard focus still has a tabindex="0" target.
|
|
27143
|
+
for (let idx = 0; idx < visDays; idx += 1) {
|
|
27144
|
+
const ts = addDays(visStartTs, idx);
|
|
27145
|
+
if (isInRange(ts)) {
|
|
27146
|
+
return ts;
|
|
27147
|
+
}
|
|
27148
|
+
}
|
|
27149
|
+
|
|
27150
|
+
// 3. First future enabled date (scan forward from tomorrow, capped by max and MAX_SCAN_DAYS).
|
|
27151
|
+
for (let idx = 1; idx <= MAX_SCAN_DAYS; idx += 1) {
|
|
27152
|
+
const ts = addDays(now, idx);
|
|
27153
|
+
if (Number.isFinite(maxTs) && ts > maxTs) {
|
|
27154
|
+
break;
|
|
27155
|
+
}
|
|
27156
|
+
if (isEnabled(ts)) {
|
|
27157
|
+
return ts;
|
|
27158
|
+
}
|
|
27159
|
+
}
|
|
27160
|
+
|
|
27161
|
+
// 4. First previous enabled date (scan backward from yesterday, capped by min and MAX_SCAN_DAYS).
|
|
27162
|
+
for (let idx = 1; idx <= MAX_SCAN_DAYS; idx += 1) {
|
|
27163
|
+
const ts = addDays(now, -idx);
|
|
27164
|
+
if (Number.isFinite(minTs) && ts < minTs) {
|
|
27165
|
+
break;
|
|
27166
|
+
}
|
|
27167
|
+
if (isEnabled(ts)) {
|
|
27168
|
+
return ts;
|
|
27169
|
+
}
|
|
27170
|
+
}
|
|
27171
|
+
|
|
27172
|
+
// 5. If scans missed (e.g. min/max range is far from today), fall back to
|
|
27173
|
+
// the first enabled date in the [min, max] range.
|
|
27174
|
+
if (Number.isFinite(minTs) && Number.isFinite(maxTs)) {
|
|
27175
|
+
let ts = minTs;
|
|
27176
|
+
for (let idx = 0; ts <= maxTs; idx += 1) {
|
|
27177
|
+
if (isEnabled(ts)) {
|
|
27178
|
+
return ts;
|
|
27179
|
+
}
|
|
27180
|
+
ts = addDays(minTs, idx + 1);
|
|
27181
|
+
}
|
|
27182
|
+
}
|
|
27183
|
+
|
|
27184
|
+
// 5b. Finite min with unbounded max (e.g. minDate far in the future):
|
|
27185
|
+
// scan forward from min for up to MAX_SCAN_DAYS.
|
|
27186
|
+
if (Number.isFinite(minTs) && !Number.isFinite(maxTs)) {
|
|
27187
|
+
for (let idx = 0; idx <= MAX_SCAN_DAYS; idx += 1) {
|
|
27188
|
+
const ts = addDays(minTs, idx);
|
|
27189
|
+
if (isEnabled(ts)) {
|
|
27190
|
+
return ts;
|
|
27191
|
+
}
|
|
27192
|
+
}
|
|
27193
|
+
}
|
|
27194
|
+
|
|
27195
|
+
// 5c. Unbounded min with a finite max far in the past (e.g. birth-date picker):
|
|
27196
|
+
// scan backward from max for up to MAX_SCAN_DAYS.
|
|
27197
|
+
if (!Number.isFinite(minTs) && Number.isFinite(maxTs)) {
|
|
27198
|
+
for (let idx = 0; idx <= MAX_SCAN_DAYS; idx += 1) {
|
|
27199
|
+
const ts = addDays(maxTs, -idx);
|
|
27200
|
+
if (isEnabled(ts)) {
|
|
27201
|
+
return ts;
|
|
27202
|
+
}
|
|
27203
|
+
}
|
|
27204
|
+
}
|
|
27205
|
+
|
|
27206
|
+
// 6. All dates are blackout — fall back to the first in-range date so focus
|
|
27207
|
+
// still lands on a focusable (but not selectable) cell.
|
|
27208
|
+
if (Number.isFinite(minTs) && isInRange(minTs)) {
|
|
27209
|
+
return minTs;
|
|
27210
|
+
}
|
|
27211
|
+
if (isInRange(now)) {
|
|
27212
|
+
return now;
|
|
27213
|
+
}
|
|
27214
|
+
|
|
27215
|
+
return undefined;
|
|
27216
|
+
}
|
|
27217
|
+
|
|
27218
|
+
/**
|
|
27219
|
+
* Checks if a target date (unix seconds) is within the configured [min, max] range.
|
|
27220
|
+
* Returns false if the date falls outside the range, preventing navigation
|
|
27221
|
+
* to months where all dates are disabled.
|
|
27222
|
+
* @private
|
|
27223
|
+
* @param {Number} targetTs - Unix timestamp in seconds.
|
|
27224
|
+
* @returns {Boolean} True if the date is within range.
|
|
27225
|
+
*/
|
|
27226
|
+
isDateInRange(targetTs) {
|
|
27227
|
+
const rawMin = this.minDateObject?.getTime() / 1000;
|
|
27228
|
+
const rawMax = this.maxDateObject?.getTime() / 1000;
|
|
27229
|
+
if (Number.isFinite(rawMin) && targetTs < rawMin) {
|
|
27230
|
+
return false;
|
|
27231
|
+
}
|
|
27232
|
+
if (Number.isFinite(rawMax) && targetTs > rawMax) {
|
|
27233
|
+
return false;
|
|
27234
|
+
}
|
|
27235
|
+
return true;
|
|
27236
|
+
}
|
|
27237
|
+
|
|
27238
|
+
/**
|
|
27239
|
+
* Handles arrow key navigation on the calendar grid wrapper.
|
|
27240
|
+
* Focus stays on the grid wrapper; only ariaActiveDescendantElement
|
|
27241
|
+
* and the visual active-cell indicator change.
|
|
27242
|
+
* @private
|
|
27243
|
+
* @param {KeyboardEvent} event - The keyboard event.
|
|
27244
|
+
* @returns {void}
|
|
27245
|
+
*/
|
|
27246
|
+
handleGridKeyDown(event) {
|
|
27247
|
+
const { key } = event;
|
|
27248
|
+
const actionKeys = [
|
|
27249
|
+
'ArrowRight',
|
|
27250
|
+
'ArrowLeft',
|
|
27251
|
+
'ArrowDown',
|
|
27252
|
+
'ArrowUp',
|
|
27253
|
+
'Enter',
|
|
27254
|
+
' '
|
|
27255
|
+
];
|
|
27256
|
+
|
|
27257
|
+
if (!actionKeys.includes(key)) {
|
|
27258
|
+
return;
|
|
27259
|
+
}
|
|
27260
|
+
|
|
27261
|
+
event.preventDefault();
|
|
27262
|
+
|
|
27263
|
+
const allCells = this.getAllFocusableCells();
|
|
27264
|
+
if (allCells.length === 0) {
|
|
27265
|
+
return;
|
|
27266
|
+
}
|
|
27267
|
+
|
|
27268
|
+
const activeCell = allCells.find((cell) => cell.active);
|
|
27269
|
+
if (!activeCell) {
|
|
27270
|
+
return;
|
|
27271
|
+
}
|
|
27272
|
+
|
|
27273
|
+
// Handle Enter/Space to select the active cell
|
|
27274
|
+
if (key === 'Enter' || key === ' ') {
|
|
27275
|
+
activeCell.handleTap();
|
|
27276
|
+
return;
|
|
27277
|
+
}
|
|
27278
|
+
|
|
27279
|
+
const activeIndex = allCells.indexOf(activeCell);
|
|
27280
|
+
|
|
27281
|
+
if (key === 'ArrowRight' || key === 'ArrowLeft') {
|
|
27282
|
+
const direction = key === 'ArrowRight' ? 1 : -1;
|
|
27283
|
+
const targetIndex = activeIndex + direction;
|
|
27284
|
+
|
|
27285
|
+
if (targetIndex >= 0 && targetIndex < allCells.length) {
|
|
27286
|
+
// Target cell exists in rendered months
|
|
27287
|
+
this.setActiveCell(allCells[targetIndex].day.date);
|
|
27288
|
+
this.scrollToActiveCell();
|
|
27289
|
+
// Dispatch focus event for the cell so live region + range preview update
|
|
27290
|
+
this.handleCellFocused({ detail: { date: allCells[targetIndex].day.date } });
|
|
27291
|
+
} else {
|
|
27292
|
+
// At boundary — need to navigate to next/prev month
|
|
27293
|
+
const navDir = direction === 1 ? 'next' : 'prev';
|
|
27294
|
+
const targetDate = new Date(activeCell.day.date * 1000);
|
|
27295
|
+
targetDate.setDate(targetDate.getDate() + direction);
|
|
27296
|
+
targetDate.setHours(0, 0, 0, 0);
|
|
27297
|
+
const targetTs = Math.floor(targetDate.getTime() / 1000);
|
|
27298
|
+
|
|
27299
|
+
if (this.isDateInRange(targetTs) && ((navDir === 'next' && this.showNextMonthBtn) || (navDir === 'prev' && this.showPrevMonthBtn))) { // eslint-disable-line no-extra-parens
|
|
27300
|
+
|
|
27301
|
+
if (navDir === 'next') {
|
|
27302
|
+
this.handleNextMonth({ skipActiveUpdate: true });
|
|
27303
|
+
} else {
|
|
27304
|
+
this.handlePrevMonth({ skipActiveUpdate: true });
|
|
27305
|
+
}
|
|
27306
|
+
requestAnimationFrame(() => {
|
|
27307
|
+
requestAnimationFrame(() => {
|
|
27308
|
+
const cells = this.getAllFocusableCells();
|
|
27309
|
+
const target = cells.find((cell) => cell.day && cell.day.date === targetTs);
|
|
27310
|
+
if (target) {
|
|
27311
|
+
this.setActiveCell(target.day.date);
|
|
27312
|
+
this.handleCellFocused({ detail: { date: target.day.date } });
|
|
27313
|
+
} else if (cells.length > 0) {
|
|
27314
|
+
const fallback = navDir === 'next' ? cells[cells.length - 1] : cells[0];
|
|
27315
|
+
this.setActiveCell(fallback.day.date);
|
|
27316
|
+
this.handleCellFocused({ detail: { date: fallback.day.date } });
|
|
27317
|
+
}
|
|
27318
|
+
// Re-focus grid wrapper after month change re-render
|
|
27319
|
+
this.focusActiveCell();
|
|
27320
|
+
});
|
|
27321
|
+
});
|
|
27322
|
+
}
|
|
27323
|
+
}
|
|
27324
|
+
} else if (key === 'ArrowDown' || key === 'ArrowUp') {
|
|
27325
|
+
const increment = key === 'ArrowDown' ? 7 : -7;
|
|
27326
|
+
const currentDate = new Date(activeCell.day.date * 1000);
|
|
27327
|
+
currentDate.setDate(currentDate.getDate() + increment);
|
|
27328
|
+
currentDate.setHours(0, 0, 0, 0);
|
|
27329
|
+
const targetDate = Math.floor(currentDate.getTime() / 1000);
|
|
27330
|
+
|
|
27331
|
+
const targetCell = allCells.find((cell) => cell.day && cell.day.date === targetDate);
|
|
27332
|
+
|
|
27333
|
+
if (targetCell) {
|
|
27334
|
+
this.setActiveCell(targetCell.day.date);
|
|
27335
|
+
this.scrollToActiveCell();
|
|
27336
|
+
this.handleCellFocused({ detail: { date: targetCell.day.date } });
|
|
27337
|
+
} else if (this.isDateInRange(targetDate)) {
|
|
27338
|
+
// Target might be in an unrendered month
|
|
27339
|
+
const navDirection = key === 'ArrowDown' ? 'next' : 'prev';
|
|
27340
|
+
if ((navDirection === 'next' && this.showNextMonthBtn) || (navDirection === 'prev' && this.showPrevMonthBtn)) { // eslint-disable-line no-extra-parens
|
|
27341
|
+
if (navDirection === 'next') {
|
|
27342
|
+
this.handleNextMonth({ skipActiveUpdate: true });
|
|
27343
|
+
} else {
|
|
27344
|
+
this.handlePrevMonth({ skipActiveUpdate: true });
|
|
27345
|
+
}
|
|
27346
|
+
requestAnimationFrame(() => {
|
|
27347
|
+
requestAnimationFrame(() => {
|
|
27348
|
+
const cells = this.getAllFocusableCells();
|
|
27349
|
+
const target = cells.find((cell) => cell.day && cell.day.date === targetDate);
|
|
27350
|
+
if (target) {
|
|
27351
|
+
this.setActiveCell(target.day.date);
|
|
27352
|
+
this.handleCellFocused({ detail: { date: target.day.date } });
|
|
27353
|
+
} else if (cells.length > 0) {
|
|
27354
|
+
let nearest = null;
|
|
27355
|
+
|
|
27356
|
+
if (navDirection === 'next') {
|
|
27357
|
+
[nearest] = cells;
|
|
27358
|
+
} else {
|
|
27359
|
+
nearest = cells[cells.length - 1];
|
|
27360
|
+
}
|
|
27361
|
+
this.setActiveCell(nearest.day.date);
|
|
27362
|
+
this.handleCellFocused({ detail: { date: nearest.day.date } });
|
|
27363
|
+
}
|
|
27364
|
+
this.focusActiveCell();
|
|
27365
|
+
});
|
|
27366
|
+
});
|
|
27367
|
+
}
|
|
27368
|
+
}
|
|
27369
|
+
}
|
|
27370
|
+
}
|
|
27371
|
+
|
|
27372
|
+
/**
|
|
27373
|
+
* Handles cross-month boundary navigation events from month components.
|
|
27374
|
+
* @private
|
|
27375
|
+
* @param {CustomEvent} event - The boundary event with direction and source date info.
|
|
27376
|
+
* @returns {void}
|
|
27377
|
+
*/
|
|
27378
|
+
handleMonthBoundary(event) {
|
|
27379
|
+
const { direction, fromDate, key } = event.detail;
|
|
27380
|
+
|
|
27381
|
+
if (key === 'ArrowRight' || key === 'ArrowLeft') {
|
|
27382
|
+
// Linear navigation: find adjacent focusable cell across months
|
|
27383
|
+
const allCells = this.getAllFocusableCells();
|
|
27384
|
+
const currentIndex = allCells.findIndex((cell) => cell.day && cell.day.date === fromDate);
|
|
27385
|
+
|
|
27386
|
+
if (currentIndex === -1) {
|
|
27387
|
+
return;
|
|
27388
|
+
}
|
|
27389
|
+
|
|
27390
|
+
let targetIndex = -1;
|
|
27391
|
+
if (direction === 'next') {
|
|
27392
|
+
targetIndex = currentIndex + 1;
|
|
27393
|
+
}
|
|
27394
|
+
|
|
27395
|
+
if (targetIndex >= 0 && targetIndex < allCells.length) {
|
|
27396
|
+
const targetCell = allCells[targetIndex];
|
|
27397
|
+
this.setActiveCell(targetCell.day.date);
|
|
27398
|
+
this.scrollToActiveCell();
|
|
27399
|
+
this.focusActiveCell();
|
|
27400
|
+
} else if (direction === 'next' && this.showNextMonthBtn) {
|
|
27401
|
+
// Navigate to next month and focus the computed next date.
|
|
27402
|
+
// Using the target date (fromDate + 1 day) instead of cells[0]
|
|
27403
|
+
// avoids jumping backward in range datepickers where cells[0]
|
|
27404
|
+
// belongs to the previous (still-rendered) month.
|
|
27405
|
+
const nextDate = new Date(fromDate * 1000);
|
|
27406
|
+
nextDate.setDate(nextDate.getDate() + 1);
|
|
27407
|
+
nextDate.setHours(0, 0, 0, 0);
|
|
27408
|
+
const nextTs = Math.floor(nextDate.getTime() / 1000);
|
|
27409
|
+
|
|
27410
|
+
if (!this.isDateInRange(nextTs)) {
|
|
27411
|
+
return;
|
|
27412
|
+
}
|
|
27413
|
+
|
|
27414
|
+
this.handleNextMonth({ skipActiveUpdate: true });
|
|
27415
|
+
requestAnimationFrame(() => {
|
|
27416
|
+
requestAnimationFrame(() => {
|
|
27417
|
+
const cells = this.getAllFocusableCells();
|
|
27418
|
+
const target = cells.find((cell) => cell.day && cell.day.date === nextTs);
|
|
27419
|
+
if (target) {
|
|
27420
|
+
this.setActiveCell(target.day.date);
|
|
27421
|
+
this.focusActiveCell();
|
|
27422
|
+
} else if (cells.length > 0) {
|
|
27423
|
+
// Fallback: first cell of the last rendered month
|
|
27424
|
+
this.setActiveCell(cells[cells.length - 1].day.date);
|
|
27425
|
+
this.focusActiveCell();
|
|
27426
|
+
}
|
|
27427
|
+
});
|
|
27428
|
+
});
|
|
27429
|
+
} else if (direction === 'prev' && this.showPrevMonthBtn) {
|
|
27430
|
+
// Navigate to previous month and focus the computed previous date.
|
|
27431
|
+
const prevDate = new Date(fromDate * 1000);
|
|
27432
|
+
prevDate.setDate(prevDate.getDate() - 1);
|
|
27433
|
+
prevDate.setHours(0, 0, 0, 0);
|
|
27434
|
+
const prevTs = Math.floor(prevDate.getTime() / 1000);
|
|
27435
|
+
|
|
27436
|
+
if (!this.isDateInRange(prevTs)) {
|
|
27437
|
+
return;
|
|
27438
|
+
}
|
|
27439
|
+
|
|
27440
|
+
this.handlePrevMonth({ skipActiveUpdate: true });
|
|
27441
|
+
requestAnimationFrame(() => {
|
|
27442
|
+
requestAnimationFrame(() => {
|
|
27443
|
+
const cells = this.getAllFocusableCells();
|
|
27444
|
+
const target = cells.find((cell) => cell.day && cell.day.date === prevTs);
|
|
27445
|
+
if (target) {
|
|
27446
|
+
this.setActiveCell(target.day.date);
|
|
27447
|
+
this.focusActiveCell();
|
|
27448
|
+
} else if (cells.length > 0) {
|
|
27449
|
+
// Fallback: last cell of the first rendered month
|
|
27450
|
+
this.setActiveCell(cells[0].day.date);
|
|
27451
|
+
this.focusActiveCell();
|
|
27452
|
+
}
|
|
27453
|
+
});
|
|
27454
|
+
});
|
|
27455
|
+
}
|
|
27456
|
+
} else if (key === 'ArrowDown' || key === 'ArrowUp') {
|
|
27457
|
+
// Vertical navigation: find same day-of-week +/- 7 days
|
|
27458
|
+
// Use Date arithmetic instead of fixed seconds to handle DST correctly
|
|
27459
|
+
const increment = key === 'ArrowDown' ? 7 : -7;
|
|
27460
|
+
const currentDate = new Date(fromDate * 1000);
|
|
27461
|
+
currentDate.setDate(currentDate.getDate() + increment);
|
|
27462
|
+
currentDate.setHours(0, 0, 0, 0);
|
|
27463
|
+
const targetDate = Math.floor(currentDate.getTime() / 1000);
|
|
27464
|
+
|
|
27465
|
+
const allCells = this.getAllFocusableCells();
|
|
27466
|
+
const targetCell = allCells.find((cell) => cell.day && cell.day.date === targetDate);
|
|
27467
|
+
|
|
27468
|
+
if (targetCell) {
|
|
27469
|
+
this.setActiveCell(targetCell.day.date);
|
|
27470
|
+
this.scrollToActiveCell();
|
|
27471
|
+
this.focusActiveCell();
|
|
27472
|
+
} else if (this.isDateInRange(targetDate)) {
|
|
27473
|
+
// Target might be in an unrendered month, navigate there
|
|
27474
|
+
const navDirection = key === 'ArrowDown' ? 'next' : 'prev';
|
|
27475
|
+
if ((navDirection === 'next' && this.showNextMonthBtn) || (navDirection === 'prev' && this.showPrevMonthBtn)) { // eslint-disable-line no-extra-parens
|
|
27476
|
+
if (navDirection === 'next') {
|
|
27477
|
+
this.handleNextMonth({ skipActiveUpdate: true });
|
|
27478
|
+
} else {
|
|
27479
|
+
this.handlePrevMonth({ skipActiveUpdate: true });
|
|
27480
|
+
}
|
|
27481
|
+
requestAnimationFrame(() => {
|
|
27482
|
+
requestAnimationFrame(() => {
|
|
27483
|
+
const cells = this.getAllFocusableCells();
|
|
27484
|
+
const target = cells.find((cell) => cell.day && cell.day.date === targetDate);
|
|
27485
|
+
if (target) {
|
|
27486
|
+
this.setActiveCell(target.day.date);
|
|
27487
|
+
this.focusActiveCell();
|
|
27488
|
+
} else if (cells.length > 0) {
|
|
27489
|
+
// Clamp to nearest focusable cell
|
|
27490
|
+
const nearest = navDirection === 'next' ? cells[0] : cells[cells.length - 1];
|
|
27491
|
+
this.setActiveCell(nearest.day.date);
|
|
27492
|
+
this.focusActiveCell();
|
|
27493
|
+
}
|
|
27494
|
+
});
|
|
27495
|
+
});
|
|
27496
|
+
}
|
|
27497
|
+
}
|
|
27498
|
+
}
|
|
27499
|
+
}
|
|
27500
|
+
|
|
27501
|
+
/**
|
|
27502
|
+
* Handles cell activation events from month components.
|
|
27503
|
+
* @private
|
|
27504
|
+
* @param {CustomEvent} event - The activation event with target date.
|
|
27505
|
+
* @returns {void}
|
|
27506
|
+
*/
|
|
27507
|
+
handleCellActivate(event) {
|
|
27508
|
+
const { date } = event.detail;
|
|
27509
|
+
this.setActiveCell(date);
|
|
27510
|
+
|
|
27511
|
+
// Don't call focusActiveCell() here. The tap/click already placed
|
|
27512
|
+
// focus on the cell button, and moving it to #calendarGrid would
|
|
27513
|
+
// trigger focusout on the button, closing any open popover on the
|
|
27514
|
+
// cell. Keyboard events are composed and still bubble through
|
|
27515
|
+
// shadow DOM boundaries to the grid's @keydown handler, so
|
|
27516
|
+
// subsequent keyboard navigation continues to work.
|
|
27517
|
+
}
|
|
27518
|
+
|
|
27519
|
+
/**
|
|
27520
|
+
* Handles focus events from calendar cells.
|
|
27521
|
+
* Updates the live region with an SR announcement and triggers
|
|
27522
|
+
* the imperative range preview if applicable.
|
|
27523
|
+
* @private
|
|
27524
|
+
* @param {CustomEvent} event - The calendar-cell-focused event.
|
|
27525
|
+
* @returns {void}
|
|
27526
|
+
*/
|
|
27527
|
+
handleCellFocused(event) {
|
|
27528
|
+
const { date } = event.detail;
|
|
27529
|
+
if (date === null) {
|
|
27530
|
+
return;
|
|
27531
|
+
}
|
|
27532
|
+
|
|
27533
|
+
// With aria-activedescendant, the button no longer receives native focus,
|
|
27534
|
+
// so we use the debounced live region for the full context announcement.
|
|
27535
|
+
const announcement = this.buildFocusAnnouncement(date);
|
|
27536
|
+
this.announceFocusDebounced(announcement);
|
|
27537
|
+
|
|
27538
|
+
// Update the range preview imperatively if in range-preview mode.
|
|
27539
|
+
this.updateRangePreview(date);
|
|
27540
|
+
}
|
|
27541
|
+
|
|
27542
|
+
/**
|
|
27543
|
+
* Builds a full SR announcement string for a focused cell date.
|
|
27544
|
+
* Includes the localized date, range position, popover content,
|
|
27545
|
+
* and blackout status.
|
|
27546
|
+
* @private
|
|
27547
|
+
* @param {Number} date - Unix timestamp (seconds) of the focused cell.
|
|
27548
|
+
* @returns {String} The announcement string.
|
|
27549
|
+
*/
|
|
27550
|
+
buildFocusAnnouncement(date) {
|
|
27551
|
+
let label = this.formatAnnouncementDate(date);
|
|
27552
|
+
|
|
27553
|
+
// Append date slot content (e.g. prices) if present.
|
|
27554
|
+
const dateObj = new Date(date * 1000);
|
|
27555
|
+
const mm = String(dateObj.getMonth() + 1).padStart(2, '0');
|
|
27556
|
+
const dd = String(dateObj.getDate()).padStart(2, '0');
|
|
27557
|
+
const yyyy = dateObj.getFullYear();
|
|
27558
|
+
const dateStr = `${mm}_${dd}_${yyyy}`;
|
|
27559
|
+
const dateSlotEl = this.datepicker?.querySelector(`[slot="date_${dateStr}"]`);
|
|
27560
|
+
if (dateSlotEl) {
|
|
27561
|
+
const text = dateSlotEl.innerText?.trim();
|
|
27562
|
+
if (text) {
|
|
27563
|
+
label += `, ${text}`;
|
|
27564
|
+
}
|
|
27565
|
+
}
|
|
27566
|
+
|
|
27567
|
+
// Append popover content if present.
|
|
27568
|
+
const popoverEl = this.datepicker?.querySelector(`[slot="popover_${dateStr}"]`);
|
|
27569
|
+
if (popoverEl) {
|
|
27570
|
+
const text = popoverEl.innerText?.trim();
|
|
27571
|
+
if (text) {
|
|
27572
|
+
label += `, ${text}`;
|
|
27573
|
+
}
|
|
27574
|
+
}
|
|
27575
|
+
|
|
27576
|
+
// Append range position context.
|
|
27577
|
+
if (this.datepicker?.hasAttribute('range')) {
|
|
27578
|
+
const rangeLabel = this.getRangePositionLabel(date);
|
|
27579
|
+
if (rangeLabel) {
|
|
27580
|
+
label += `, ${rangeLabel}`;
|
|
27581
|
+
}
|
|
27582
|
+
}
|
|
27583
|
+
|
|
27584
|
+
// Append blackout label.
|
|
27585
|
+
if (this.isDateBlackout(date)) {
|
|
27586
|
+
label += `, ${this.datepicker?.blackoutLabel || 'unavailable'}`;
|
|
27587
|
+
}
|
|
27588
|
+
|
|
27589
|
+
return label;
|
|
27590
|
+
}
|
|
27591
|
+
|
|
27592
|
+
/**
|
|
27593
|
+
* Determines the range position label for a given date.
|
|
27594
|
+
* @private
|
|
27595
|
+
* @param {Number} date - Unix timestamp (seconds).
|
|
27596
|
+
* @returns {String|null} The range position label, or null.
|
|
27597
|
+
*/
|
|
27598
|
+
getRangePositionLabel(date) {
|
|
27599
|
+
const parsedFrom = Number.parseInt(this.dateFrom, 10);
|
|
27600
|
+
if (!Number.isFinite(parsedFrom)) {
|
|
27601
|
+
return null;
|
|
27602
|
+
}
|
|
27603
|
+
|
|
27604
|
+
const departTs = startOfDay$2(parsedFrom * 1000) / 1000;
|
|
27605
|
+
const parsedTo = Number.parseInt(this.dateTo, 10);
|
|
27606
|
+
const hasTo = Number.isFinite(parsedTo);
|
|
27607
|
+
const returnTs = hasTo ? startOfDay$2(parsedTo * 1000) / 1000 : null;
|
|
27608
|
+
|
|
27609
|
+
if (date === departTs) {
|
|
27610
|
+
return this.datepicker.rangeLabelStart || 'range start';
|
|
27611
|
+
}
|
|
27612
|
+
if (hasTo && date === returnTs) {
|
|
27613
|
+
return this.datepicker.rangeLabelEnd || 'range end';
|
|
27614
|
+
}
|
|
27615
|
+
if (date < departTs) {
|
|
27616
|
+
return this.datepicker.rangeLabelBeforeRange || 'before range';
|
|
27617
|
+
}
|
|
27618
|
+
if (hasTo && date > departTs && date < returnTs) {
|
|
27619
|
+
return this.datepicker.rangeLabelInRange || 'in range';
|
|
27620
|
+
}
|
|
27621
|
+
return this.datepicker.rangeLabelAfterRange || 'after range';
|
|
27622
|
+
}
|
|
27623
|
+
|
|
27624
|
+
/**
|
|
27625
|
+
* Checks whether a given date is a blackout date.
|
|
27626
|
+
* @private
|
|
27627
|
+
* @param {Number} dateTs - Unix timestamp (seconds).
|
|
27628
|
+
* @returns {Boolean} True if the date is blacked out.
|
|
27629
|
+
*/
|
|
27630
|
+
isDateBlackout(dateTs) {
|
|
27631
|
+
// Check legacy disabledDays.
|
|
27632
|
+
if (Array.isArray(this.disabledDays) && this.disabledDays.length > 0) {
|
|
27633
|
+
if (this.disabledDays.findIndex((day) => parseInt(day, 10) === dateTs) !== -1) {
|
|
27634
|
+
return true;
|
|
27635
|
+
}
|
|
27636
|
+
}
|
|
27637
|
+
|
|
27638
|
+
// Check ISO blackoutDates.
|
|
27639
|
+
const blackoutDates = this.datepicker?.blackoutDates;
|
|
27640
|
+
if (Array.isArray(blackoutDates) && blackoutDates.length > 0) {
|
|
27641
|
+
const date = new Date(dateTs * 1000);
|
|
27642
|
+
const yyyy = date.getFullYear();
|
|
27643
|
+
const mm = String(date.getMonth() + 1).padStart(2, '0');
|
|
27644
|
+
const dd = String(date.getDate()).padStart(2, '0');
|
|
27645
|
+
if (blackoutDates.includes(`${yyyy}-${mm}-${dd}`)) {
|
|
27646
|
+
return true;
|
|
27647
|
+
}
|
|
27648
|
+
}
|
|
27649
|
+
|
|
27650
|
+
return false;
|
|
27651
|
+
}
|
|
27652
|
+
|
|
27653
|
+
/**
|
|
27654
|
+
* Updates the range preview classes imperatively across all cells.
|
|
27655
|
+
* Only active when in range mode with dateFrom set and dateTo not yet set.
|
|
27656
|
+
* @private
|
|
27657
|
+
* @param {Number} hoveredDate - Unix timestamp of the hovered/focused date.
|
|
27658
|
+
* @returns {void}
|
|
27659
|
+
*/
|
|
27660
|
+
updateRangePreview(hoveredDate) {
|
|
27661
|
+
if (this.noRange || !this.dateFrom || this.dateTo) {
|
|
27662
|
+
return;
|
|
27663
|
+
}
|
|
27664
|
+
|
|
27665
|
+
const parsedDateFrom = parseInt(this.dateFrom, 10);
|
|
27666
|
+
const allCells = this.getAllFocusableCells();
|
|
27667
|
+
|
|
27668
|
+
allCells.forEach((cell) => {
|
|
27669
|
+
cell.updateRangePreviewClasses(hoveredDate, parsedDateFrom);
|
|
27670
|
+
});
|
|
27671
|
+
}
|
|
27672
|
+
|
|
27673
|
+
/**
|
|
27674
|
+
* Clears range preview classes from all cells.
|
|
27675
|
+
* @private
|
|
27676
|
+
* @param {Object} [options] - Optional settings.
|
|
27677
|
+
* @param {boolean} [options.force=false] - When true, clears classes even
|
|
27678
|
+
* when both dateFrom and dateTo are set. Used by month nav handlers
|
|
27679
|
+
* since the subsequent re-render re-applies classMap-managed classes,
|
|
27680
|
+
* while `lastHoveredDate` (not in classMap) would otherwise persist.
|
|
27681
|
+
* @returns {void}
|
|
27682
|
+
*/
|
|
27683
|
+
clearRangePreview(options) {
|
|
27684
|
+
const opts = options instanceof Event ? {} : options || {};
|
|
27685
|
+
if (!opts.force && this.dateFrom && this.dateTo) {
|
|
27686
|
+
return;
|
|
27687
|
+
}
|
|
27688
|
+
|
|
27689
|
+
const allCells = this.getAllFocusableCells();
|
|
27690
|
+
allCells.forEach((cell) => {
|
|
27691
|
+
cell.clearRangePreviewClasses();
|
|
27692
|
+
});
|
|
27693
|
+
}
|
|
27694
|
+
|
|
27695
|
+
/**
|
|
27696
|
+
* Overrides the base class handler to prevent setting `this.hoveredDate`
|
|
27697
|
+
* as a reactive property. Instead, handles the range preview imperatively.
|
|
27698
|
+
* @private
|
|
27699
|
+
* @param {CustomEvent} event - The hovered-date-changed event from a month.
|
|
27700
|
+
* @returns {void}
|
|
27701
|
+
*/
|
|
27702
|
+
hoveredDateChanged(event) {
|
|
27703
|
+
const hoveredDate = event.detail.value;
|
|
27704
|
+
this.updateRangePreview(hoveredDate);
|
|
27705
|
+
}
|
|
27706
|
+
|
|
27707
|
+
/**
|
|
27708
|
+
* Scrolls the calendar to ensure the month containing the active cell is visible.
|
|
27709
|
+
* @private
|
|
27710
|
+
* @returns {void}
|
|
27711
|
+
*/
|
|
27712
|
+
scrollToActiveCell() {
|
|
27713
|
+
if (this.activeCellDate === null || this.activeCellDate === undefined) {
|
|
27714
|
+
return;
|
|
27715
|
+
}
|
|
27716
|
+
|
|
27717
|
+
const date = new Date(this.activeCellDate * 1000);
|
|
27718
|
+
const month = date.getMonth() + 1;
|
|
27719
|
+
const year = date.getFullYear();
|
|
27720
|
+
const selector = `#month-${month}-${year}`;
|
|
27721
|
+
const monthElem = this.shadowRoot.querySelector(selector);
|
|
27722
|
+
|
|
27723
|
+
if (monthElem) {
|
|
27724
|
+
const prefersReducedMotion = window.matchMedia('(prefers-reduced-motion: reduce)').matches;
|
|
27725
|
+
monthElem.scrollIntoView({ block: 'nearest',
|
|
27726
|
+
behavior: prefersReducedMotion ? 'instant' : 'smooth' });
|
|
27727
|
+
}
|
|
27728
|
+
}
|
|
27729
|
+
|
|
27730
|
+
/**
|
|
27731
|
+
* Returns (and lazily creates) an aria-live region inside the dropdown's
|
|
27732
|
+
* <dialog> element. This placement is critical for two reasons:
|
|
27733
|
+
*
|
|
27734
|
+
* 1. Inside the dialog's accessible scope — dialog.showModal() makes
|
|
27735
|
+
* everything outside the top-layer dialog inert, and desktop modal
|
|
27736
|
+
* mode uses _setPageInert() on document.body siblings. A live region
|
|
27737
|
+
* on document.body would be invisible to screen readers in both cases.
|
|
27738
|
+
*
|
|
27739
|
+
* 2. Not nested in shadow DOM — Chrome inconsistently observes aria-live
|
|
27740
|
+
* mutations inside shadow DOM across machines and versions. The dialog
|
|
27741
|
+
* element is only one shadow root deep (the dropdown bib's shadow DOM),
|
|
27742
|
+
* which Chrome handles reliably. The calendar's own shadow DOM (nested
|
|
27743
|
+
* inside the bib via slotting) is two+ levels deep and unreliable.
|
|
27744
|
+
*
|
|
27745
|
+
* @private
|
|
27746
|
+
* @returns {HTMLElement} The live region element.
|
|
27747
|
+
*/
|
|
27748
|
+
getOrCreateLiveRegion() {
|
|
27749
|
+
if (this._liveRegion && this._liveRegion.isConnected) {
|
|
27750
|
+
return this._liveRegion;
|
|
27751
|
+
}
|
|
27752
|
+
|
|
27753
|
+
// Access the dialog element inside the dropdown bib's shadow DOM.
|
|
27754
|
+
const dialog = this.dropdown?.bibContent?.shadowRoot?.querySelector('dialog');
|
|
27755
|
+
if (!dialog) {
|
|
27756
|
+
return null;
|
|
27757
|
+
}
|
|
27758
|
+
|
|
27759
|
+
// Check if we already created one for this calendar instance.
|
|
27760
|
+
const regionId = `auro-calendar-live-${this._calendarInstanceId}`;
|
|
27761
|
+
const existing = dialog.querySelector(`#${regionId}`);
|
|
27762
|
+
if (existing) {
|
|
27763
|
+
this._liveRegion = existing;
|
|
27764
|
+
return existing;
|
|
27765
|
+
}
|
|
27766
|
+
|
|
27767
|
+
const el = document.createElement('div');
|
|
27768
|
+
el.id = regionId;
|
|
27769
|
+
el.setAttribute('aria-live', 'assertive');
|
|
27770
|
+
el.setAttribute('aria-atomic', 'true');
|
|
27771
|
+
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;';
|
|
27772
|
+
dialog.appendChild(el);
|
|
27773
|
+
|
|
27774
|
+
this._liveRegion = el;
|
|
27775
|
+
return el;
|
|
27776
|
+
}
|
|
27777
|
+
|
|
27778
|
+
/**
|
|
27779
|
+
* Removes the live region when this calendar is disconnected.
|
|
27780
|
+
* @private
|
|
27781
|
+
* @returns {void}
|
|
27782
|
+
*/
|
|
27783
|
+
disconnectedCallback() {
|
|
27784
|
+
super.disconnectedCallback();
|
|
27785
|
+
|
|
27786
|
+
// Cancel any pending announcements so they don't fire after teardown.
|
|
27787
|
+
if (this._announceRafId) {
|
|
27788
|
+
cancelAnimationFrame(this._announceRafId);
|
|
27789
|
+
this._announceRafId = null;
|
|
27790
|
+
}
|
|
27791
|
+
if (this._focusAnnounceTimer) {
|
|
27792
|
+
clearTimeout(this._focusAnnounceTimer);
|
|
27793
|
+
this._focusAnnounceTimer = null;
|
|
27794
|
+
}
|
|
27795
|
+
|
|
27796
|
+
if (this._liveRegion && this._liveRegion.isConnected) {
|
|
27797
|
+
this._liveRegion.remove();
|
|
27798
|
+
}
|
|
27799
|
+
this._liveRegion = null;
|
|
27800
|
+
}
|
|
27801
|
+
|
|
27802
|
+
/**
|
|
27803
|
+
* Announces a date selection or focus change via the live region.
|
|
27804
|
+
* Uses requestAnimationFrame to ensure the clear and set happen in
|
|
27805
|
+
* separate rendering frames — Chrome may coalesce synchronous or
|
|
27806
|
+
* microtask-deferred mutations into a single accessibility tree update.
|
|
27807
|
+
* @private
|
|
27808
|
+
* @param {String} dateStr - The localized date string to announce.
|
|
27809
|
+
* @returns {void}
|
|
27810
|
+
*/
|
|
27811
|
+
announceSelection(dateStr) {
|
|
27812
|
+
// Cancel any previously queued rAF announcement so a rapid
|
|
27813
|
+
// sequence of calls (e.g. bib open → month nav) only announces
|
|
27814
|
+
// the last one.
|
|
27815
|
+
if (this._announceRafId) {
|
|
27816
|
+
cancelAnimationFrame(this._announceRafId);
|
|
27817
|
+
}
|
|
27818
|
+
const liveRegion = this.getOrCreateLiveRegion();
|
|
27819
|
+
if (!liveRegion) {
|
|
27820
|
+
return;
|
|
27821
|
+
}
|
|
27822
|
+
|
|
27823
|
+
// Double-rAF: clear in frame N, set in frame N+1. Chrome batches
|
|
27824
|
+
// accessibility tree mutations within a single animation frame, so
|
|
27825
|
+
// a same-frame clear+set can be coalesced into a no-op if the new
|
|
27826
|
+
// value matches a recently announced string. Splitting across two
|
|
27827
|
+
// frames guarantees Chrome sees two distinct tree states and fires
|
|
27828
|
+
// a new accessibility event for the content change.
|
|
27829
|
+
liveRegion.textContent = '';
|
|
27830
|
+
this._announceRafId = requestAnimationFrame(() => {
|
|
27831
|
+
this._announceRafId = requestAnimationFrame(() => {
|
|
27832
|
+
liveRegion.textContent = dateStr;
|
|
27833
|
+
this._announceRafId = null;
|
|
27834
|
+
});
|
|
27835
|
+
});
|
|
27836
|
+
}
|
|
27837
|
+
|
|
27838
|
+
/**
|
|
27839
|
+
* Debounced version of announceSelection for focus navigation.
|
|
27840
|
+
* Uses the assertive live region with a 150ms debounce so only the
|
|
27841
|
+
* final cell after rapid arrow-key traversal is announced. We
|
|
27842
|
+
* originally tried aria-live="polite" here, but VoiceOver treats
|
|
27843
|
+
* polite as "wait until idle" — which never happens during active
|
|
27844
|
+
* keyboard navigation — so the announcements were silently dropped.
|
|
27845
|
+
* @private
|
|
27846
|
+
* @param {String} dateStr - The localized date string to announce.
|
|
27847
|
+
* @returns {void}
|
|
27848
|
+
*/
|
|
27849
|
+
announceFocusDebounced(dateStr) {
|
|
27850
|
+
if (this._focusAnnounceTimer) {
|
|
27851
|
+
clearTimeout(this._focusAnnounceTimer);
|
|
27852
|
+
}
|
|
27853
|
+
this._focusAnnounceTimer = setTimeout(() => {
|
|
27854
|
+
this.announceSelection(dateStr);
|
|
27855
|
+
this._focusAnnounceTimer = null;
|
|
27856
|
+
}, 150);
|
|
27857
|
+
}
|
|
27858
|
+
|
|
27859
|
+
/**
|
|
27860
|
+
* Formats a Unix timestamp (seconds) as a localized date string for SR announcements.
|
|
27861
|
+
* @private
|
|
27862
|
+
* @param {String|Number} timestamp - Unix timestamp in seconds.
|
|
27863
|
+
* @returns {String} Localized date string.
|
|
27864
|
+
*/
|
|
27865
|
+
formatAnnouncementDate(timestamp) {
|
|
27866
|
+
const date = new Date(parseInt(timestamp, 10) * 1000);
|
|
27867
|
+
const localeCode = this.locale?.code || undefined;
|
|
27868
|
+
const formatter = new Intl.DateTimeFormat(localeCode, {
|
|
27869
|
+
weekday: 'long',
|
|
27870
|
+
year: 'numeric',
|
|
27871
|
+
month: 'long',
|
|
27872
|
+
day: 'numeric'
|
|
27873
|
+
});
|
|
27874
|
+
return formatter.format(date);
|
|
27875
|
+
}
|
|
27876
|
+
|
|
26349
27877
|
firstUpdated() {
|
|
27878
|
+
|
|
26350
27879
|
this.addEventListener('date-from-changed', () => {
|
|
26351
27880
|
this.dispatchEvent(new CustomEvent('auroCalendar-dateSelected', {
|
|
26352
27881
|
bubbles: true,
|
|
@@ -26365,6 +27894,21 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
26365
27894
|
composed: true,
|
|
26366
27895
|
}));
|
|
26367
27896
|
});
|
|
27897
|
+
|
|
27898
|
+
// Listen for cross-month boundary navigation events
|
|
27899
|
+
this.addEventListener('calendar-month-boundary', (event) => {
|
|
27900
|
+
this.handleMonthBoundary(event);
|
|
27901
|
+
});
|
|
27902
|
+
|
|
27903
|
+
// Listen for cell activation events
|
|
27904
|
+
this.addEventListener('calendar-cell-activate', (event) => {
|
|
27905
|
+
this.handleCellActivate(event);
|
|
27906
|
+
});
|
|
27907
|
+
|
|
27908
|
+
// Listen for cell focus events (SR announcements + range preview)
|
|
27909
|
+
this.addEventListener('calendar-cell-focused', (event) => {
|
|
27910
|
+
this.handleCellFocused(event);
|
|
27911
|
+
});
|
|
26368
27912
|
}
|
|
26369
27913
|
|
|
26370
27914
|
injectSlot(slotName, nodes) {
|
|
@@ -26389,7 +27933,37 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
26389
27933
|
}
|
|
26390
27934
|
|
|
26391
27935
|
if (changedProperties.has('visible')) {
|
|
26392
|
-
|
|
27936
|
+
if (this.visible) {
|
|
27937
|
+
// Compute the active date eagerly from data — no DOM needed.
|
|
27938
|
+
if (this.activeCellDate == null) { // eslint-disable-line no-eq-null, eqeqeq
|
|
27939
|
+
this.activeCellDate = this.computeActiveDate();
|
|
27940
|
+
}
|
|
27941
|
+
|
|
27942
|
+
this.requestUpdate();
|
|
27943
|
+
} else {
|
|
27944
|
+
this.requestUpdate();
|
|
27945
|
+
}
|
|
27946
|
+
}
|
|
27947
|
+
|
|
27948
|
+
// Announce date selection to screen readers when user clicks/selects a cell
|
|
27949
|
+
const isCellClick = this.datepicker?.wasCellClick || this.datepicker?.cellClickActive;
|
|
27950
|
+
|
|
27951
|
+
if (changedProperties.has('dateFrom') && this.dateFrom && isCellClick) {
|
|
27952
|
+
const dateStr = this.formatAnnouncementDate(this.dateFrom);
|
|
27953
|
+
const isRange = !this.noRange;
|
|
27954
|
+
|
|
27955
|
+
if (isRange) {
|
|
27956
|
+
const rangeLabel = this.datepicker.rangeLabelStart || 'range start';
|
|
27957
|
+
this.announceSelection(`${dateStr}, selected as ${rangeLabel}`);
|
|
27958
|
+
} else {
|
|
27959
|
+
this.announceSelection(`${dateStr}, selected`);
|
|
27960
|
+
}
|
|
27961
|
+
}
|
|
27962
|
+
|
|
27963
|
+
if (changedProperties.has('dateTo') && this.dateTo && isCellClick) {
|
|
27964
|
+
const dateStr = this.formatAnnouncementDate(this.dateTo);
|
|
27965
|
+
const rangeLabel = this.datepicker.rangeLabelEnd || 'range end';
|
|
27966
|
+
this.announceSelection(`${dateStr}, selected as ${rangeLabel}`);
|
|
26393
27967
|
}
|
|
26394
27968
|
}
|
|
26395
27969
|
|
|
@@ -26398,6 +27972,7 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
26398
27972
|
<${this.bibtemplateTag}
|
|
26399
27973
|
?large="${this.largeFullscreenHeadline}"
|
|
26400
27974
|
?isFullscreen="${this.isFullscreen}"
|
|
27975
|
+
?showFooter="${!this.isFullscreen && this.dropdown?.desktopModal}"
|
|
26401
27976
|
@close-click="${this.utilCal.requestDismiss}">
|
|
26402
27977
|
<span slot="ariaLabel.close">${this.slots["ariaLabel.bib.close"]}</span>
|
|
26403
27978
|
|
|
@@ -26415,24 +27990,26 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
26415
27990
|
</div>
|
|
26416
27991
|
</div>
|
|
26417
27992
|
|
|
26418
|
-
<div class="calendarWrapper">
|
|
26419
|
-
<div class="calendars">
|
|
26420
|
-
${this.renderAllCalendars()}
|
|
26421
|
-
</div>
|
|
27993
|
+
<div class="calendarWrapper ${!this.isFullscreen && this.dropdown?.desktopModal ? 'hasFooter' : ''}">
|
|
26422
27994
|
<div class="calendarNavButtons">
|
|
26423
27995
|
${this.showPrevMonthBtn ? u$d`
|
|
26424
|
-
<button tabIndex="
|
|
27996
|
+
<button tabIndex="0" class="calendarNavBtn prevMonth" aria-label="${this.datepicker?.navLabelPrevMonth || 'Previous month'}" @click="${this.handlePrevMonth}">
|
|
26425
27997
|
${this.util.generateIconHtml(chevronLeft)}
|
|
26426
27998
|
</button>
|
|
26427
27999
|
` : undefined}
|
|
26428
28000
|
${this.showNextMonthBtn ? u$d`
|
|
26429
|
-
<button tabIndex="
|
|
28001
|
+
<button tabIndex="0" class="calendarNavBtn nextMonth" aria-label="${this.datepicker?.navLabelNextMonth || 'Next month'}" @click="${this.handleNextMonth}">
|
|
26430
28002
|
${this.util.generateIconHtml(chevronRight)}
|
|
26431
28003
|
</button>
|
|
26432
28004
|
` : undefined}
|
|
26433
28005
|
</div>
|
|
28006
|
+
<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}">
|
|
28007
|
+
${this.renderAllCalendars()}
|
|
28008
|
+
</div>
|
|
26434
28009
|
</div>
|
|
26435
28010
|
|
|
28011
|
+
<div id="calendar-live-region" aria-live="assertive" aria-atomic="true" class="sr-only"></div>
|
|
28012
|
+
|
|
26436
28013
|
<${this.buttonTag} slot="footer" fluid @click="${this.utilCal.requestDismiss}">Done</${this.buttonTag}>
|
|
26437
28014
|
</${this.bibtemplateTag}>
|
|
26438
28015
|
`;
|
|
@@ -29680,7 +31257,7 @@ function applyKeyboardStrategy$1$2(component, strategy, options = {}) {
|
|
|
29680
31257
|
});
|
|
29681
31258
|
}
|
|
29682
31259
|
|
|
29683
|
-
var styleCss$2$1$2 = i$5`: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}`;
|
|
31260
|
+
var styleCss$2$1$2 = i$5`: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}`;
|
|
29684
31261
|
|
|
29685
31262
|
var colorCss$2$7 = i$5`.container{background-color:var(--ds-auro-dropdownbib-container-color);box-shadow:var(--ds-auro-dropdownbib-boxshadow-color);color:var(--ds-auro-dropdownbib-text-color)}`;
|
|
29686
31263
|
|
|
@@ -30311,7 +31888,7 @@ let AuroHelpText$2$1 = class AuroHelpText extends i$3 {
|
|
|
30311
31888
|
}
|
|
30312
31889
|
};
|
|
30313
31890
|
|
|
30314
|
-
var formkitVersion$1$2 = '
|
|
31891
|
+
var formkitVersion$1$2 = '202606081904';
|
|
30315
31892
|
|
|
30316
31893
|
let AuroElement$2$2 = class AuroElement extends i$3 {
|
|
30317
31894
|
static get properties() {
|
|
@@ -30491,6 +32068,7 @@ let AuroDropdown$3 = class AuroDropdown extends AuroElement$2$2 {
|
|
|
30491
32068
|
_intializeDefaults() {
|
|
30492
32069
|
this.appearance = 'default';
|
|
30493
32070
|
this.chevron = false;
|
|
32071
|
+
this.desktopModal = false;
|
|
30494
32072
|
this.disabled = false;
|
|
30495
32073
|
this.disableKeyboardHandling = false;
|
|
30496
32074
|
this.error = false;
|
|
@@ -30671,6 +32249,14 @@ let AuroDropdown$3 = class AuroDropdown extends AuroElement$2$2 {
|
|
|
30671
32249
|
reflect: true
|
|
30672
32250
|
},
|
|
30673
32251
|
|
|
32252
|
+
/**
|
|
32253
|
+
* If declared, the dropdown will behave as a modal dialog when in a desktop viewport size.
|
|
32254
|
+
*/
|
|
32255
|
+
desktopModal: {
|
|
32256
|
+
type: Boolean,
|
|
32257
|
+
reflect: true
|
|
32258
|
+
},
|
|
32259
|
+
|
|
30674
32260
|
/**
|
|
30675
32261
|
* If declared, the dropdown will only show by calling the API .show() public method.
|
|
30676
32262
|
*/
|
|
@@ -30958,6 +32544,15 @@ let AuroDropdown$3 = class AuroDropdown extends AuroElement$2$2 {
|
|
|
30958
32544
|
|
|
30959
32545
|
disconnectedCallback() {
|
|
30960
32546
|
super.disconnectedCallback();
|
|
32547
|
+
this._clearPageInert();
|
|
32548
|
+
if (this._bibTabHandler) {
|
|
32549
|
+
this.removeEventListener('keydown', this._bibTabHandler);
|
|
32550
|
+
this._bibTabHandler = undefined;
|
|
32551
|
+
}
|
|
32552
|
+
if (this.focusTrap) {
|
|
32553
|
+
this.focusTrap.disconnect();
|
|
32554
|
+
this.focusTrap = undefined;
|
|
32555
|
+
}
|
|
30961
32556
|
if (this.floater) {
|
|
30962
32557
|
this.floater.hideBib('disconnect');
|
|
30963
32558
|
this.floater.disconnect();
|
|
@@ -30985,19 +32580,45 @@ let AuroDropdown$3 = class AuroDropdown extends AuroElement$2$2 {
|
|
|
30985
32580
|
if (this.isPopoverVisible) {
|
|
30986
32581
|
// Fullscreen: use showModal() for native accessibility (inert outside, focus trap)
|
|
30987
32582
|
// Desktop: use show() for Floating UI positioning + FocusTrap for focus management
|
|
30988
|
-
|
|
30989
|
-
this.
|
|
32583
|
+
this.bibElement.value.open(this.isBibFullscreen);
|
|
32584
|
+
this.updateFocusTrap();
|
|
32585
|
+
|
|
32586
|
+
// Desktop modal: make siblings inert so content outside is not interactive
|
|
32587
|
+
if (this.desktopModal && !this.isBibFullscreen) {
|
|
32588
|
+
this._setPageInert();
|
|
32589
|
+
}
|
|
30990
32590
|
} else {
|
|
30991
32591
|
this.bibElement.value.close();
|
|
32592
|
+
this._clearPageInert();
|
|
30992
32593
|
}
|
|
30993
32594
|
}
|
|
30994
32595
|
|
|
30995
32596
|
// When fullscreen strategy changes while open, re-open dialog with correct mode
|
|
30996
32597
|
// (e.g. resizing from desktop → mobile while dropdown is open)
|
|
30997
32598
|
if (changedProperties.has('isBibFullscreen') && this.isPopoverVisible && this.bibElement.value) {
|
|
30998
|
-
const useModal = this.isBibFullscreen;
|
|
30999
32599
|
this.bibElement.value.close();
|
|
31000
|
-
this.bibElement.value.open(
|
|
32600
|
+
this.bibElement.value.open(this.isBibFullscreen);
|
|
32601
|
+
|
|
32602
|
+
// Re-initialize focus management for the new strategy
|
|
32603
|
+
this.updateFocusTrap();
|
|
32604
|
+
|
|
32605
|
+
// Toggle inert: desktop modal needs it, fullscreen showModal() handles it natively
|
|
32606
|
+
if (this.desktopModal && !this.isBibFullscreen) {
|
|
32607
|
+
this._setPageInert();
|
|
32608
|
+
} else {
|
|
32609
|
+
this._clearPageInert();
|
|
32610
|
+
}
|
|
32611
|
+
}
|
|
32612
|
+
|
|
32613
|
+
// Handle desktopModal toggled while the dropdown is already open.
|
|
32614
|
+
// Re-initialize focus trapping and page inert state to match the new mode.
|
|
32615
|
+
if (changedProperties.has('desktopModal') && this.isPopoverVisible && !this.isBibFullscreen) {
|
|
32616
|
+
this.updateFocusTrap();
|
|
32617
|
+
if (this.desktopModal) {
|
|
32618
|
+
this._setPageInert();
|
|
32619
|
+
} else {
|
|
32620
|
+
this._clearPageInert();
|
|
32621
|
+
}
|
|
31001
32622
|
}
|
|
31002
32623
|
}
|
|
31003
32624
|
|
|
@@ -31007,8 +32628,14 @@ let AuroDropdown$3 = class AuroDropdown extends AuroElement$2$2 {
|
|
|
31007
32628
|
* @param {CustomEvent} event - The custom event that contains the dropdown toggle information.
|
|
31008
32629
|
*/
|
|
31009
32630
|
handleDropdownToggle(event) {
|
|
31010
|
-
this.updateFocusTrap();
|
|
31011
32631
|
this.isPopoverVisible = event.detail.expanded;
|
|
32632
|
+
|
|
32633
|
+
// Tear down FocusTrap when closing. Creation happens in updated()
|
|
32634
|
+
// after the dialog is open so getFocusableElements can find content.
|
|
32635
|
+
if (!this.isPopoverVisible) {
|
|
32636
|
+
this.updateFocusTrap();
|
|
32637
|
+
}
|
|
32638
|
+
|
|
31012
32639
|
const eventType = event.detail.eventType || "unknown";
|
|
31013
32640
|
if (!this.isPopoverVisible && this.hasFocus && eventType === "keydown") {
|
|
31014
32641
|
this.trigger.focus();
|
|
@@ -31107,19 +32734,194 @@ let AuroDropdown$3 = class AuroDropdown extends AuroElement$2$2 {
|
|
|
31107
32734
|
* @private
|
|
31108
32735
|
*/
|
|
31109
32736
|
updateFocusTrap() {
|
|
32737
|
+
// Always clean up existing handlers/traps before setting up new ones
|
|
32738
|
+
// to prevent duplicate listeners on repeated calls.
|
|
32739
|
+
if (this._bibTabHandler) {
|
|
32740
|
+
this.removeEventListener('keydown', this._bibTabHandler);
|
|
32741
|
+
this._bibTabHandler = undefined;
|
|
32742
|
+
}
|
|
32743
|
+
|
|
32744
|
+
if (this.focusTrap) {
|
|
32745
|
+
this.focusTrap.disconnect();
|
|
32746
|
+
this.focusTrap = undefined;
|
|
32747
|
+
}
|
|
32748
|
+
|
|
31110
32749
|
if (this.isPopoverVisible) {
|
|
31111
32750
|
if (!this.isBibFullscreen) {
|
|
31112
|
-
|
|
31113
|
-
|
|
31114
|
-
|
|
32751
|
+
if (this.desktopModal) {
|
|
32752
|
+
// Desktop modal: trap focus only within the bib content.
|
|
32753
|
+
// Can't use FocusTrap on the bib element because keydown events
|
|
32754
|
+
// from slotted content bubble through the dropdown host (light DOM),
|
|
32755
|
+
// not through the bib (shadow projection target). Using FocusTrap
|
|
32756
|
+
// on the dropdown would include the trigger in the tab cycle.
|
|
32757
|
+
// Instead, listen for Tab on the dropdown and manually wrap focus
|
|
32758
|
+
// within the bib's focusable elements.
|
|
32759
|
+
this._bibTabHandler = (event) => {
|
|
32760
|
+
if (event.key !== 'Tab') {
|
|
32761
|
+
return;
|
|
32762
|
+
}
|
|
32763
|
+
|
|
32764
|
+
// Collect focusable elements from the bib content.
|
|
32765
|
+
const focusables = getFocusableElements$3(this.bibContent);
|
|
32766
|
+
|
|
32767
|
+
// Fallback: try from slotted content directly
|
|
32768
|
+
if (!focusables.length) {
|
|
32769
|
+
const slot = this.shadowRoot.querySelector('.slotContent slot');
|
|
32770
|
+
const assignedNodes = slot.assignedNodes({ flatten: true });
|
|
32771
|
+
|
|
32772
|
+
for (const node of assignedNodes) {
|
|
32773
|
+
if (node.nodeType === Node.ELEMENT_NODE) {
|
|
32774
|
+
focusables.push(...getFocusableElements$3(node));
|
|
32775
|
+
}
|
|
32776
|
+
}
|
|
32777
|
+
}
|
|
32778
|
+
|
|
32779
|
+
if (!focusables.length) {
|
|
32780
|
+
return;
|
|
32781
|
+
}
|
|
32782
|
+
|
|
32783
|
+
event.preventDefault();
|
|
32784
|
+
|
|
32785
|
+
const direction = event.shiftKey ? -1 : 1; // eslint-disable-line no-magic-numbers
|
|
32786
|
+
|
|
32787
|
+
// Walk the active element chain through shadow roots
|
|
32788
|
+
const actives = this._getActiveElements();
|
|
32789
|
+
|
|
32790
|
+
let idx = focusables.findIndex((el) => actives.includes(el));
|
|
32791
|
+
|
|
32792
|
+
if (idx === -1) { // eslint-disable-line no-magic-numbers
|
|
32793
|
+
// Focus is not on a known element — move to first/last
|
|
32794
|
+
idx = direction === 1 ? -1 : focusables.length; // eslint-disable-line no-magic-numbers
|
|
32795
|
+
}
|
|
32796
|
+
|
|
32797
|
+
// Try each element in order, skipping any that can't receive focus
|
|
32798
|
+
// (e.g. hidden elements, elements in collapsed sections)
|
|
32799
|
+
for (let index = 0; index < focusables.length; index++) { // eslint-disable-line no-plusplus
|
|
32800
|
+
let nextIdx = idx + direction;
|
|
32801
|
+
|
|
32802
|
+
// Wrap around
|
|
32803
|
+
if (nextIdx < 0) {
|
|
32804
|
+
nextIdx = focusables.length - 1;
|
|
32805
|
+
} else if (nextIdx >= focusables.length) {
|
|
32806
|
+
nextIdx = 0;
|
|
32807
|
+
}
|
|
32808
|
+
|
|
32809
|
+
focusables[nextIdx].focus();
|
|
32810
|
+
|
|
32811
|
+
// Verify focus actually moved to the target
|
|
32812
|
+
const newActives = this._getActiveElements();
|
|
32813
|
+
|
|
32814
|
+
if (newActives.includes(focusables[nextIdx])) {
|
|
32815
|
+
return;
|
|
32816
|
+
}
|
|
32817
|
+
|
|
32818
|
+
// Focus didn't stick — skip this element and try the next
|
|
32819
|
+
idx = nextIdx;
|
|
32820
|
+
}
|
|
32821
|
+
};
|
|
32822
|
+
this.addEventListener('keydown', this._bibTabHandler);
|
|
32823
|
+
|
|
32824
|
+
// Move initial focus into the bib content, matching FocusTrap behavior
|
|
32825
|
+
requestAnimationFrame(() => {
|
|
32826
|
+
const focusables = getFocusableElements$3(this.bibContent);
|
|
32827
|
+
if (focusables.length) {
|
|
32828
|
+
focusables[0].focus();
|
|
32829
|
+
}
|
|
32830
|
+
});
|
|
32831
|
+
} else {
|
|
32832
|
+
// Normal desktop: use FocusTrap on the bib element
|
|
32833
|
+
this.focusTrap = new FocusTrap$3(this.bibContent);
|
|
32834
|
+
this.focusTrap.focusFirstElement();
|
|
32835
|
+
}
|
|
31115
32836
|
}
|
|
31116
32837
|
// Fullscreen: showModal() provides native focus trapping
|
|
32838
|
+
}
|
|
32839
|
+
}
|
|
32840
|
+
|
|
32841
|
+
/**
|
|
32842
|
+
* Returns the chain of active (focused) elements through shadow roots.
|
|
32843
|
+
* @private
|
|
32844
|
+
* @returns {Array<HTMLElement>}
|
|
32845
|
+
*/
|
|
32846
|
+
_getActiveElements() {
|
|
32847
|
+
let { activeElement } = document;
|
|
32848
|
+
const actives = [activeElement];
|
|
32849
|
+
|
|
32850
|
+
while (activeElement?.shadowRoot?.activeElement) {
|
|
32851
|
+
activeElement = activeElement.shadowRoot.activeElement;
|
|
32852
|
+
actives.push(activeElement);
|
|
32853
|
+
}
|
|
32854
|
+
|
|
32855
|
+
return actives;
|
|
32856
|
+
}
|
|
32857
|
+
|
|
32858
|
+
/**
|
|
32859
|
+
* Sets `inert` on sibling elements of the dropdown's top-level host
|
|
32860
|
+
* so that content outside the dropdown is not interactive while the modal is open.
|
|
32861
|
+
* Walks up through shadow DOM boundaries to find the outermost host element
|
|
32862
|
+
* in the light DOM, then sets `inert` on siblings at each ancestor level
|
|
32863
|
+
* to ensure all page content outside the host subtree is inert.
|
|
32864
|
+
* @private
|
|
32865
|
+
*/
|
|
32866
|
+
_setPageInert() {
|
|
32867
|
+
if (this._inertSiblings) {
|
|
31117
32868
|
return;
|
|
31118
32869
|
}
|
|
31119
32870
|
|
|
31120
|
-
|
|
31121
|
-
|
|
31122
|
-
|
|
32871
|
+
this._inertSiblings = [];
|
|
32872
|
+
|
|
32873
|
+
// Walk up through shadow DOM boundaries to find the topmost host
|
|
32874
|
+
// element in the light DOM. For example, if this dropdown is inside
|
|
32875
|
+
// auro-datepicker's shadow DOM, we walk up to the datepicker element
|
|
32876
|
+
// so we set inert on its siblings — not on the datepicker itself.
|
|
32877
|
+
let host = this;
|
|
32878
|
+
while (host.getRootNode() instanceof ShadowRoot) {
|
|
32879
|
+
host = host.getRootNode().host;
|
|
32880
|
+
}
|
|
32881
|
+
|
|
32882
|
+
// Walk up the ancestor chain, inerting siblings at each level
|
|
32883
|
+
// to ensure the entire page outside the host subtree is inert.
|
|
32884
|
+
// Uses a reference counter (data-auro-inert-count) so multiple
|
|
32885
|
+
// simultaneous modal dropdowns share inert state safely.
|
|
32886
|
+
let current = host;
|
|
32887
|
+
while (current.parentElement) {
|
|
32888
|
+
const parent = current.parentElement;
|
|
32889
|
+
for (const sibling of parent.children) {
|
|
32890
|
+
if (sibling !== current) {
|
|
32891
|
+
const count = parseInt(sibling.dataset.auroInertCount || '0', 10);
|
|
32892
|
+
if (count === 0) {
|
|
32893
|
+
sibling.dataset.auroInertWas = sibling.inert ? 'true' : 'false';
|
|
32894
|
+
}
|
|
32895
|
+
sibling.dataset.auroInertCount = String(count + 1);
|
|
32896
|
+
sibling.inert = true;
|
|
32897
|
+
this._inertSiblings.push(sibling);
|
|
32898
|
+
}
|
|
32899
|
+
}
|
|
32900
|
+
current = parent;
|
|
32901
|
+
}
|
|
32902
|
+
}
|
|
32903
|
+
|
|
32904
|
+
/**
|
|
32905
|
+
* Restores `inert` state on siblings that were tracked by `_setPageInert`.
|
|
32906
|
+
* Uses reference counting so inert is only cleared when the last modal
|
|
32907
|
+
* dropdown releases a given element. Preserves the original inert state
|
|
32908
|
+
* so externally-inerted elements are not inadvertently re-enabled.
|
|
32909
|
+
* @private
|
|
32910
|
+
*/
|
|
32911
|
+
_clearPageInert() {
|
|
32912
|
+
if (this._inertSiblings) {
|
|
32913
|
+
for (const sibling of this._inertSiblings) {
|
|
32914
|
+
const count = parseInt(sibling.dataset.auroInertCount || '1', 10) - 1;
|
|
32915
|
+
if (count <= 0) {
|
|
32916
|
+
const wasInert = sibling.dataset.auroInertWas === 'true';
|
|
32917
|
+
delete sibling.dataset.auroInertCount;
|
|
32918
|
+
delete sibling.dataset.auroInertWas;
|
|
32919
|
+
sibling.inert = wasInert;
|
|
32920
|
+
} else {
|
|
32921
|
+
sibling.dataset.auroInertCount = String(count);
|
|
32922
|
+
}
|
|
32923
|
+
}
|
|
32924
|
+
this._inertSiblings = undefined;
|
|
31123
32925
|
}
|
|
31124
32926
|
}
|
|
31125
32927
|
|
|
@@ -31358,6 +33160,7 @@ let AuroDropdown$3 = class AuroDropdown extends AuroElement$2$2 {
|
|
|
31358
33160
|
shape="${this.shape}"
|
|
31359
33161
|
?data-show="${this.isPopoverVisible}"
|
|
31360
33162
|
?isfullscreen="${this.isBibFullscreen}"
|
|
33163
|
+
?desktopmodal="${this.desktopModal}"
|
|
31361
33164
|
.dialogLabel="${this.bibDialogLabel}"
|
|
31362
33165
|
${n$6(this.bibElement)}
|
|
31363
33166
|
>
|
|
@@ -43562,7 +45365,7 @@ let AuroHelpText$1$2 = class AuroHelpText extends i$3 {
|
|
|
43562
45365
|
}
|
|
43563
45366
|
};
|
|
43564
45367
|
|
|
43565
|
-
var formkitVersion$8 = '
|
|
45368
|
+
var formkitVersion$8 = '202606081904';
|
|
43566
45369
|
|
|
43567
45370
|
// Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
|
|
43568
45371
|
// See LICENSE in the project root for license information.
|
|
@@ -44907,26 +46710,62 @@ function applyKeyboardStrategy$5(component, strategy, options = {}) {
|
|
|
44907
46710
|
// components/datepicker/docs/partials/keyboardBehavior.md
|
|
44908
46711
|
//
|
|
44909
46712
|
// Current behavior (transitional — full bib keyboard navigation is planned for a future iteration):
|
|
44910
|
-
// - The bib opens and closes via pointer/touch interaction only.
|
|
44911
46713
|
// - Escape closes the bib and prevents the event from reaching parent containers.
|
|
46714
|
+
// - Enter opens the bib when it is closed (trigger input only, not clear button).
|
|
46715
|
+
// - Space opens the bib when it is closed (trigger input only, not clear button).
|
|
44912
46716
|
// - Tab uses the browser's default tabindex sequence across trigger controls.
|
|
44913
|
-
// - Enter and Space do not open or close the bib.
|
|
44914
46717
|
//
|
|
44915
46718
|
// This file is an intentional placeholder for most keys. When datepicker bib keyboard navigation is
|
|
44916
46719
|
// added, handlers should go here following the same strategy pattern used by
|
|
44917
46720
|
// auro-select (selectKeyboardStrategy.js) and auro-combobox (comboboxKeyboardStrategy.js).
|
|
44918
46721
|
const datepickerKeyboardStrategy = {
|
|
44919
|
-
Escape(component, evt) {
|
|
44920
|
-
if (!
|
|
46722
|
+
Escape(component, evt, ctx) {
|
|
46723
|
+
if (!ctx.isExpanded) {
|
|
44921
46724
|
return;
|
|
44922
46725
|
}
|
|
44923
46726
|
|
|
44924
|
-
//
|
|
44925
|
-
//
|
|
44926
|
-
// seeing this event, we must also close the dropdown explicitly.
|
|
46727
|
+
// Stop propagation so parent containers (auro-dialog, auro-drawer)
|
|
46728
|
+
// don't also react to Escape.
|
|
44927
46729
|
evt.stopPropagation();
|
|
46730
|
+
evt.preventDefault();
|
|
44928
46731
|
|
|
44929
|
-
component.
|
|
46732
|
+
component.hideBib();
|
|
46733
|
+
},
|
|
46734
|
+
|
|
46735
|
+
Enter(component, evt, ctx) {
|
|
46736
|
+
if (ctx.isExpanded) {
|
|
46737
|
+
return;
|
|
46738
|
+
}
|
|
46739
|
+
|
|
46740
|
+
// Only open from the trigger input, not the clear button or other internal elements.
|
|
46741
|
+
// evt.target is retargeted to the host in shadow DOM, so use composedPath()
|
|
46742
|
+
// to find the real origin. The clear button is rendered with class "clearBtn".
|
|
46743
|
+
const path = evt.composedPath();
|
|
46744
|
+
if (path.some(el => el.classList?.contains('clearBtn'))) {
|
|
46745
|
+
return;
|
|
46746
|
+
}
|
|
46747
|
+
|
|
46748
|
+
evt.preventDefault();
|
|
46749
|
+
|
|
46750
|
+
component.dropdown.show();
|
|
46751
|
+
},
|
|
46752
|
+
|
|
46753
|
+
' '(component, evt, ctx) {
|
|
46754
|
+
if (ctx.isExpanded) {
|
|
46755
|
+
return;
|
|
46756
|
+
}
|
|
46757
|
+
|
|
46758
|
+
// Only open from the trigger input, not the clear button or other internal elements.
|
|
46759
|
+
// evt.target is retargeted to the host in shadow DOM, so use composedPath()
|
|
46760
|
+
// to find the real origin. The clear button is rendered with class "clearBtn".
|
|
46761
|
+
const path = evt.composedPath();
|
|
46762
|
+
if (path.some(el => el.classList?.contains('clearBtn'))) {
|
|
46763
|
+
return;
|
|
46764
|
+
}
|
|
46765
|
+
|
|
46766
|
+
evt.preventDefault();
|
|
46767
|
+
|
|
46768
|
+
component.dropdown.show();
|
|
44930
46769
|
},
|
|
44931
46770
|
};
|
|
44932
46771
|
|
|
@@ -45000,6 +46839,16 @@ class AuroDatePicker extends AuroElement$6 {
|
|
|
45000
46839
|
this.required = false;
|
|
45001
46840
|
this.onDark = false;
|
|
45002
46841
|
this.range = false;
|
|
46842
|
+
this.rangeLabelStart = 'range start';
|
|
46843
|
+
this.rangeLabelEnd = 'range end';
|
|
46844
|
+
this.rangeLabelBeforeRange = 'before range';
|
|
46845
|
+
this.rangeLabelInRange = 'in range';
|
|
46846
|
+
this.rangeLabelAfterRange = 'after range';
|
|
46847
|
+
this.blackoutDates = [];
|
|
46848
|
+
this.blackoutLabel = 'unavailable';
|
|
46849
|
+
this.navLabelPrevMonth = 'Previous month';
|
|
46850
|
+
this.navLabelNextMonth = 'Next month';
|
|
46851
|
+
this.calendarGridLabel = 'Calendar days of the month';
|
|
45003
46852
|
this.stacked = false;
|
|
45004
46853
|
this.noValidate = false;
|
|
45005
46854
|
this.validity = undefined;
|
|
@@ -45115,7 +46964,7 @@ class AuroDatePicker extends AuroElement$6 {
|
|
|
45115
46964
|
|
|
45116
46965
|
/**
|
|
45117
46966
|
* Defines whether the component will be on lighter or darker backgrounds.
|
|
45118
|
-
* @
|
|
46967
|
+
* @type {'default' | 'inverse'}
|
|
45119
46968
|
* @default 'default'
|
|
45120
46969
|
*/
|
|
45121
46970
|
appearance: {
|
|
@@ -45132,6 +46981,22 @@ class AuroDatePicker extends AuroElement$6 {
|
|
|
45132
46981
|
reflect: true
|
|
45133
46982
|
},
|
|
45134
46983
|
|
|
46984
|
+
/**
|
|
46985
|
+
* Array of dates that cannot be selected. Dates should be in ISO format (YYYY-MM-DD).
|
|
46986
|
+
*/
|
|
46987
|
+
blackoutDates: {
|
|
46988
|
+
type: Array,
|
|
46989
|
+
reflect: true
|
|
46990
|
+
},
|
|
46991
|
+
|
|
46992
|
+
/**
|
|
46993
|
+
* Label announced for blackout (disabled but in-range) date cells.
|
|
46994
|
+
*/
|
|
46995
|
+
blackoutLabel: {
|
|
46996
|
+
type: String,
|
|
46997
|
+
reflect: true
|
|
46998
|
+
},
|
|
46999
|
+
|
|
45135
47000
|
/**
|
|
45136
47001
|
* The last date that may be displayed in the calendar.
|
|
45137
47002
|
*/
|
|
@@ -45140,6 +47005,14 @@ class AuroDatePicker extends AuroElement$6 {
|
|
|
45140
47005
|
reflect: true
|
|
45141
47006
|
},
|
|
45142
47007
|
|
|
47008
|
+
/**
|
|
47009
|
+
* Accessible label for the calendar grid containing the days of the month.
|
|
47010
|
+
*/
|
|
47011
|
+
calendarGridLabel: {
|
|
47012
|
+
type: String,
|
|
47013
|
+
reflect: true
|
|
47014
|
+
},
|
|
47015
|
+
|
|
45143
47016
|
/**
|
|
45144
47017
|
* The date that will first be visually rendered to the user in the calendar.
|
|
45145
47018
|
*/
|
|
@@ -45187,27 +47060,6 @@ class AuroDatePicker extends AuroElement$6 {
|
|
|
45187
47060
|
reflect: true
|
|
45188
47061
|
},
|
|
45189
47062
|
|
|
45190
|
-
hasFocus: {
|
|
45191
|
-
type: Boolean,
|
|
45192
|
-
reflect: false,
|
|
45193
|
-
},
|
|
45194
|
-
|
|
45195
|
-
/**
|
|
45196
|
-
* @private
|
|
45197
|
-
*/
|
|
45198
|
-
hasValue: {
|
|
45199
|
-
type: Boolean,
|
|
45200
|
-
reflect: false,
|
|
45201
|
-
},
|
|
45202
|
-
|
|
45203
|
-
/**
|
|
45204
|
-
* @private
|
|
45205
|
-
*/
|
|
45206
|
-
hasAllValues: {
|
|
45207
|
-
type: Boolean,
|
|
45208
|
-
reflect: false
|
|
45209
|
-
},
|
|
45210
|
-
|
|
45211
47063
|
/**
|
|
45212
47064
|
* Specifies the date format. The default is `mm/dd/yyyy`.
|
|
45213
47065
|
*/
|
|
@@ -45237,6 +47089,27 @@ class AuroDatePicker extends AuroElement$6 {
|
|
|
45237
47089
|
reflect: true
|
|
45238
47090
|
},
|
|
45239
47091
|
|
|
47092
|
+
/**
|
|
47093
|
+
* @private
|
|
47094
|
+
*/
|
|
47095
|
+
hasAllValues: {
|
|
47096
|
+
type: Boolean,
|
|
47097
|
+
reflect: false
|
|
47098
|
+
},
|
|
47099
|
+
|
|
47100
|
+
hasFocus: {
|
|
47101
|
+
type: Boolean,
|
|
47102
|
+
reflect: false,
|
|
47103
|
+
},
|
|
47104
|
+
|
|
47105
|
+
/**
|
|
47106
|
+
* @private
|
|
47107
|
+
*/
|
|
47108
|
+
hasValue: {
|
|
47109
|
+
type: Boolean,
|
|
47110
|
+
reflect: false,
|
|
47111
|
+
},
|
|
47112
|
+
|
|
45240
47113
|
/** Exposes inputmode attribute for input. */
|
|
45241
47114
|
inputmode: {
|
|
45242
47115
|
type: String,
|
|
@@ -45279,6 +47152,13 @@ class AuroDatePicker extends AuroElement$6 {
|
|
|
45279
47152
|
reflect: true
|
|
45280
47153
|
},
|
|
45281
47154
|
|
|
47155
|
+
/**
|
|
47156
|
+
* @private
|
|
47157
|
+
*/
|
|
47158
|
+
monthFirst: {
|
|
47159
|
+
type: Boolean
|
|
47160
|
+
},
|
|
47161
|
+
|
|
45282
47162
|
/**
|
|
45283
47163
|
* Names of all 12 months to render in the calendar.
|
|
45284
47164
|
* When omitted, month names will be automatically populated from the active `locale` (falling back to `en-US`).
|
|
@@ -45288,18 +47168,26 @@ class AuroDatePicker extends AuroElement$6 {
|
|
|
45288
47168
|
},
|
|
45289
47169
|
|
|
45290
47170
|
/**
|
|
45291
|
-
*
|
|
45292
|
-
* when there isn't enough space in the specified `placement`.
|
|
47171
|
+
* Accessible label for the next month navigation button.
|
|
45293
47172
|
*/
|
|
45294
|
-
|
|
45295
|
-
type:
|
|
47173
|
+
navLabelNextMonth: {
|
|
47174
|
+
type: String,
|
|
45296
47175
|
reflect: true
|
|
45297
47176
|
},
|
|
45298
47177
|
|
|
45299
47178
|
/**
|
|
45300
|
-
*
|
|
47179
|
+
* Accessible label for the previous month navigation button.
|
|
45301
47180
|
*/
|
|
45302
|
-
|
|
47181
|
+
navLabelPrevMonth: {
|
|
47182
|
+
type: String,
|
|
47183
|
+
reflect: true
|
|
47184
|
+
},
|
|
47185
|
+
|
|
47186
|
+
/**
|
|
47187
|
+
* If declared, the bib will NOT flip to an alternate position
|
|
47188
|
+
* when there isn't enough space in the specified `placement`.
|
|
47189
|
+
*/
|
|
47190
|
+
noFlip: {
|
|
45303
47191
|
type: Boolean,
|
|
45304
47192
|
reflect: true
|
|
45305
47193
|
},
|
|
@@ -45365,6 +47253,46 @@ class AuroDatePicker extends AuroElement$6 {
|
|
|
45365
47253
|
reflect: true
|
|
45366
47254
|
},
|
|
45367
47255
|
|
|
47256
|
+
/**
|
|
47257
|
+
* Label announced for cells after the range (or after start when no end is selected).
|
|
47258
|
+
*/
|
|
47259
|
+
rangeLabelAfterRange: {
|
|
47260
|
+
type: String,
|
|
47261
|
+
reflect: true
|
|
47262
|
+
},
|
|
47263
|
+
|
|
47264
|
+
/**
|
|
47265
|
+
* Label announced for cells before the range start.
|
|
47266
|
+
*/
|
|
47267
|
+
rangeLabelBeforeRange: {
|
|
47268
|
+
type: String,
|
|
47269
|
+
reflect: true
|
|
47270
|
+
},
|
|
47271
|
+
|
|
47272
|
+
/**
|
|
47273
|
+
* Label announced for the range end date cell.
|
|
47274
|
+
*/
|
|
47275
|
+
rangeLabelEnd: {
|
|
47276
|
+
type: String,
|
|
47277
|
+
reflect: true
|
|
47278
|
+
},
|
|
47279
|
+
|
|
47280
|
+
/**
|
|
47281
|
+
* Label announced for cells within the selected range.
|
|
47282
|
+
*/
|
|
47283
|
+
rangeLabelInRange: {
|
|
47284
|
+
type: String,
|
|
47285
|
+
reflect: true
|
|
47286
|
+
},
|
|
47287
|
+
|
|
47288
|
+
/**
|
|
47289
|
+
* Label announced for the range start date cell.
|
|
47290
|
+
*/
|
|
47291
|
+
rangeLabelStart: {
|
|
47292
|
+
type: String,
|
|
47293
|
+
reflect: true
|
|
47294
|
+
},
|
|
47295
|
+
|
|
45368
47296
|
/**
|
|
45369
47297
|
* Dates that the user should have for reference as part of their decision making when selecting a date.
|
|
45370
47298
|
* This should be a JSON string array of ISO date strings (`YYYY-MM-DD`).
|
|
@@ -45391,6 +47319,7 @@ class AuroDatePicker extends AuroElement$6 {
|
|
|
45391
47319
|
|
|
45392
47320
|
/**
|
|
45393
47321
|
* Custom help text message to display when validity = `customError`.
|
|
47322
|
+
* Also used as the validation message when a blackout date is typed into the input.
|
|
45394
47323
|
*/
|
|
45395
47324
|
setCustomValidityCustomError: {
|
|
45396
47325
|
type: String
|
|
@@ -45417,6 +47346,14 @@ class AuroDatePicker extends AuroElement$6 {
|
|
|
45417
47346
|
type: String
|
|
45418
47347
|
},
|
|
45419
47348
|
|
|
47349
|
+
/**
|
|
47350
|
+
* If declared, the dropdown will shift its position to avoid being cut off by the viewport.
|
|
47351
|
+
*/
|
|
47352
|
+
shift: {
|
|
47353
|
+
type: Boolean,
|
|
47354
|
+
reflect: true
|
|
47355
|
+
},
|
|
47356
|
+
|
|
45420
47357
|
/**
|
|
45421
47358
|
* Set true to make datepicker stacked style.
|
|
45422
47359
|
*/
|
|
@@ -45425,6 +47362,16 @@ class AuroDatePicker extends AuroElement$6 {
|
|
|
45425
47362
|
reflect: true
|
|
45426
47363
|
},
|
|
45427
47364
|
|
|
47365
|
+
/**
|
|
47366
|
+
* Indicates whether the datepicker is in a dirty state (has been interacted with).
|
|
47367
|
+
* @private
|
|
47368
|
+
*/
|
|
47369
|
+
touched: {
|
|
47370
|
+
type: Boolean,
|
|
47371
|
+
reflect: true,
|
|
47372
|
+
attribute: false
|
|
47373
|
+
},
|
|
47374
|
+
|
|
45428
47375
|
/**
|
|
45429
47376
|
* Specifies the `validityState` this element is in.
|
|
45430
47377
|
*/
|
|
@@ -45445,16 +47392,6 @@ class AuroDatePicker extends AuroElement$6 {
|
|
|
45445
47392
|
*/
|
|
45446
47393
|
valueEnd: {
|
|
45447
47394
|
type: String
|
|
45448
|
-
},
|
|
45449
|
-
|
|
45450
|
-
/**
|
|
45451
|
-
* Indicates whether the datepicker is in a dirty state (has been interacted with).
|
|
45452
|
-
* @private
|
|
45453
|
-
*/
|
|
45454
|
-
touched: {
|
|
45455
|
-
type: Boolean,
|
|
45456
|
-
reflect: true,
|
|
45457
|
-
attribute: false
|
|
45458
47395
|
}
|
|
45459
47396
|
};
|
|
45460
47397
|
}
|
|
@@ -45565,7 +47502,7 @@ class AuroDatePicker extends AuroElement$6 {
|
|
|
45565
47502
|
/**
|
|
45566
47503
|
* Common display value wrapper classes.
|
|
45567
47504
|
* @private
|
|
45568
|
-
* @
|
|
47505
|
+
* @returns {Object} Class map for Lit's classMap directive.
|
|
45569
47506
|
*/
|
|
45570
47507
|
get commonDisplayValueWrapperClasses() {
|
|
45571
47508
|
return {
|
|
@@ -45780,6 +47717,74 @@ class AuroDatePicker extends AuroElement$6 {
|
|
|
45780
47717
|
}));
|
|
45781
47718
|
}
|
|
45782
47719
|
|
|
47720
|
+
/**
|
|
47721
|
+
* Attempts to focus the active calendar cell using a rAF retry loop.
|
|
47722
|
+
* Shared by both fullscreen and desktop open paths.
|
|
47723
|
+
* @private
|
|
47724
|
+
* @returns {void}
|
|
47725
|
+
*/
|
|
47726
|
+
focusActiveCellWhenReady() {
|
|
47727
|
+
const MAX_ATTEMPTS = 20;
|
|
47728
|
+
let attempts = 0;
|
|
47729
|
+
|
|
47730
|
+
const tryFocus = () => {
|
|
47731
|
+
attempts += 1;
|
|
47732
|
+
const allCells = this.calendar.getAllFocusableCells();
|
|
47733
|
+
|
|
47734
|
+
if (!allCells.length && attempts < MAX_ATTEMPTS) {
|
|
47735
|
+
requestAnimationFrame(tryFocus);
|
|
47736
|
+
return;
|
|
47737
|
+
}
|
|
47738
|
+
|
|
47739
|
+
// Compute and mark the active cell
|
|
47740
|
+
if (this.calendar.activeCellDate === null || this.calendar.activeCellDate === undefined) {
|
|
47741
|
+
this.calendar.activeCellDate = this.calendar.computeActiveDate();
|
|
47742
|
+
}
|
|
47743
|
+
if (this.calendar.activeCellDate !== undefined) {
|
|
47744
|
+
this.calendar.setActiveCell(this.calendar.activeCellDate);
|
|
47745
|
+
}
|
|
47746
|
+
|
|
47747
|
+
// If no cell matched (e.g. centralDate month differs from the rendered
|
|
47748
|
+
// range on mobile), fall back to the first rendered enabled cell.
|
|
47749
|
+
let activeCell = allCells.find((cell) => cell.active);
|
|
47750
|
+
if (!activeCell && allCells.length) {
|
|
47751
|
+
const [fallback] = allCells;
|
|
47752
|
+
if (fallback.day) {
|
|
47753
|
+
this.calendar.activeCellDate = fallback.day.date;
|
|
47754
|
+
this.calendar.setActiveCell(this.calendar.activeCellDate);
|
|
47755
|
+
activeCell = allCells.find((cell) => cell.active);
|
|
47756
|
+
}
|
|
47757
|
+
}
|
|
47758
|
+
|
|
47759
|
+
// Focus the calendar grid wrapper (aria-activedescendant handles
|
|
47760
|
+
// the SR announcement for the active cell).
|
|
47761
|
+
if (activeCell) {
|
|
47762
|
+
this.calendar.focusActiveCell();
|
|
47763
|
+
|
|
47764
|
+
// Announce the initial active cell via the live region.
|
|
47765
|
+
// Delay the announcement so it arrives after VoiceOver finishes
|
|
47766
|
+
// speaking the focus-change announcement for the grid wrapper.
|
|
47767
|
+
// Without this delay, VoiceOver drops the live region update
|
|
47768
|
+
// because it's already mid-announcement from the focus move.
|
|
47769
|
+
const announcement = this.calendar.buildFocusAnnouncement(activeCell.day.date);
|
|
47770
|
+
setTimeout(() => {
|
|
47771
|
+
this.calendar.announceSelection(announcement);
|
|
47772
|
+
}, 500);
|
|
47773
|
+
|
|
47774
|
+
// On mobile fullscreen, scroll the month list so the active cell's
|
|
47775
|
+
// month is visible. Without this, the list stays scrolled to the
|
|
47776
|
+
// calendarStartDate month which may be far from the active cell.
|
|
47777
|
+
if (this.dropdown.isBibFullscreen) {
|
|
47778
|
+
this.calendar.scrollToActiveCell();
|
|
47779
|
+
}
|
|
47780
|
+
} else if (attempts < MAX_ATTEMPTS) {
|
|
47781
|
+
requestAnimationFrame(tryFocus);
|
|
47782
|
+
}
|
|
47783
|
+
};
|
|
47784
|
+
|
|
47785
|
+
requestAnimationFrame(tryFocus);
|
|
47786
|
+
}
|
|
47787
|
+
|
|
45783
47788
|
/**
|
|
45784
47789
|
* Binds all behavior needed to the dropdown after rendering.
|
|
45785
47790
|
* @private
|
|
@@ -45788,6 +47793,12 @@ class AuroDatePicker extends AuroElement$6 {
|
|
|
45788
47793
|
configureDropdown() {
|
|
45789
47794
|
this.dropdown = this.shadowRoot.querySelector(this.dropdownTag._$litStatic$);
|
|
45790
47795
|
|
|
47796
|
+
// The datepicker manages its own open/close lifecycle (Space/Escape/date-select/done).
|
|
47797
|
+
// Prevent the floater's document-level focusin handler from closing the bib
|
|
47798
|
+
// when focus moves from the trigger into the calendar cells (which live inside
|
|
47799
|
+
// a top-layer popover where :focus-within on the dropdown host returns false).
|
|
47800
|
+
this.dropdown.noHideOnThisFocusLoss = true;
|
|
47801
|
+
|
|
45791
47802
|
// Pass label text to the dropdown bib for accessible dialog naming.
|
|
45792
47803
|
// Without this, the fullscreen <dialog> has no accessible name and
|
|
45793
47804
|
// screen readers announce it as just "dialog" with no context.
|
|
@@ -45805,6 +47816,23 @@ class AuroDatePicker extends AuroElement$6 {
|
|
|
45805
47816
|
this.dropdown.addEventListener('auroDropdown-toggled', () => {
|
|
45806
47817
|
this.notifyDatepickerToggled();
|
|
45807
47818
|
|
|
47819
|
+
if (this.dropdown.isPopoverVisible) {
|
|
47820
|
+
// Reset calendar focus state so it recomputes from the current selection.
|
|
47821
|
+
// Without this, reopening after navigating to a month without a selected
|
|
47822
|
+
// date leaves activeCellDate pointing at a cell in a different month than
|
|
47823
|
+
// what centralDate renders, causing all cells to have tabindex="-1".
|
|
47824
|
+
this.calendar.activeCellDate = null;
|
|
47825
|
+
|
|
47826
|
+
// Show the month containing the selected date (or today) instead of
|
|
47827
|
+
// whichever month the user last navigated to.
|
|
47828
|
+
// Respect consumer-provided centralDate/calendarStartDate if no value is set.
|
|
47829
|
+
if (this.valueObject) {
|
|
47830
|
+
this.centralDate = this.value;
|
|
47831
|
+
} else if (!this.centralDate && !this.calendarStartDate && !this.minDate) {
|
|
47832
|
+
this.centralDate = new Date();
|
|
47833
|
+
}
|
|
47834
|
+
}
|
|
47835
|
+
|
|
45808
47836
|
// This forces the calendar to render when the dropdown is opened.
|
|
45809
47837
|
// It is not rendered by default
|
|
45810
47838
|
this.calendar.visible = this.dropdown.isPopoverVisible;
|
|
@@ -45837,12 +47865,23 @@ class AuroDatePicker extends AuroElement$6 {
|
|
|
45837
47865
|
bibEl.open(true);
|
|
45838
47866
|
|
|
45839
47867
|
doubleRaf$3(() => {
|
|
45840
|
-
this.
|
|
47868
|
+
this.focusActiveCellWhenReady();
|
|
45841
47869
|
});
|
|
45842
47870
|
}
|
|
45843
47871
|
});
|
|
45844
47872
|
|
|
45845
47873
|
guardTouchPassthrough$2(this.shadowRoot.querySelector('.calendarWrapper'));
|
|
47874
|
+
} else {
|
|
47875
|
+
// Desktop (non-fullscreen) modal: make the trigger inert so users
|
|
47876
|
+
// cannot interact with the input while the modal bib is open.
|
|
47877
|
+
if (this.dropdown.desktopModal) {
|
|
47878
|
+
this.dropdown.trigger.inert = true;
|
|
47879
|
+
}
|
|
47880
|
+
|
|
47881
|
+
// Desktop (non-fullscreen): focus the active calendar cell.
|
|
47882
|
+
this.dropdown.updateComplete.then(() => {
|
|
47883
|
+
this.focusActiveCellWhenReady();
|
|
47884
|
+
});
|
|
45846
47885
|
}
|
|
45847
47886
|
} else {
|
|
45848
47887
|
// Always clear the inert flag. Only restore focus to the input when the datepicker
|
|
@@ -45887,14 +47926,35 @@ class AuroDatePicker extends AuroElement$6 {
|
|
|
45887
47926
|
if (bibEl && this.dropdown.isPopoverVisible) {
|
|
45888
47927
|
bibEl.close();
|
|
45889
47928
|
bibEl.open(true);
|
|
47929
|
+
}
|
|
47930
|
+
|
|
47931
|
+
// Re-render the calendar with the new fullscreen layout,
|
|
47932
|
+
// then restore focus after the re-render completes.
|
|
47933
|
+
this.calendar.isFullscreen = true;
|
|
47934
|
+
this.calendar.updateComplete.then(() => {
|
|
45890
47935
|
doubleRaf$3(() => {
|
|
45891
|
-
this.
|
|
47936
|
+
this.focusActiveCellWhenReady();
|
|
45892
47937
|
});
|
|
45893
|
-
}
|
|
47938
|
+
});
|
|
45894
47939
|
});
|
|
45895
47940
|
} else if (!this.dropdown.isBibFullscreen) {
|
|
45896
|
-
// Switching from fullscreen to floating — restore trigger accessibility
|
|
45897
|
-
|
|
47941
|
+
// Switching from fullscreen to floating — only restore trigger accessibility
|
|
47942
|
+
// when the bib is closed or the desktop layout is not a modal. A desktopModal
|
|
47943
|
+
// dropdown keeps the trigger inert while open, matching the desktop-open path.
|
|
47944
|
+
if (!this.dropdown.isPopoverVisible || !this.dropdown.desktopModal) {
|
|
47945
|
+
this.dropdown.trigger.inert = false;
|
|
47946
|
+
}
|
|
47947
|
+
|
|
47948
|
+
// Re-render the calendar with the desktop layout,
|
|
47949
|
+
// then restore focus after the re-render completes.
|
|
47950
|
+
this.dropdown.updateComplete.then(() => {
|
|
47951
|
+
this.calendar.isFullscreen = false;
|
|
47952
|
+
this.calendar.updateComplete.then(() => {
|
|
47953
|
+
doubleRaf$3(() => {
|
|
47954
|
+
this.focusActiveCellWhenReady();
|
|
47955
|
+
});
|
|
47956
|
+
});
|
|
47957
|
+
});
|
|
45898
47958
|
}
|
|
45899
47959
|
});
|
|
45900
47960
|
}
|
|
@@ -46082,14 +48142,8 @@ class AuroDatePicker extends AuroElement$6 {
|
|
|
46082
48142
|
|
|
46083
48143
|
if (onEndValue) {
|
|
46084
48144
|
this.valueEnd = newDate;
|
|
46085
|
-
if (this.dropdown.isPopoverVisible && !this.dropdown.isBibFullscreen) {
|
|
46086
|
-
this.focus('startDate');
|
|
46087
|
-
}
|
|
46088
48145
|
} else {
|
|
46089
48146
|
this.value = newDate;
|
|
46090
|
-
if (this.dropdown.isPopoverVisible && !this.dropdown.isBibFullscreen) {
|
|
46091
|
-
this.focus('endDate');
|
|
46092
|
-
}
|
|
46093
48147
|
}
|
|
46094
48148
|
}
|
|
46095
48149
|
}
|
|
@@ -46129,6 +48183,23 @@ class AuroDatePicker extends AuroElement$6 {
|
|
|
46129
48183
|
this.resetInputs();
|
|
46130
48184
|
}
|
|
46131
48185
|
|
|
48186
|
+
/**
|
|
48187
|
+
* Checks whether a formatted date string matches a blackout date.
|
|
48188
|
+
* @private
|
|
48189
|
+
* @param {string} dateStr - A date string in the component's configured format.
|
|
48190
|
+
* @returns {boolean} True if the date is in the blackoutDates list.
|
|
48191
|
+
*/
|
|
48192
|
+
isBlackoutDate(dateStr) {
|
|
48193
|
+
if (!Array.isArray(this.blackoutDates) ||
|
|
48194
|
+
this.blackoutDates.length === 0 ||
|
|
48195
|
+
!dateStr ||
|
|
48196
|
+
!dateFormatter$1.isValidDate(dateStr)) {
|
|
48197
|
+
return false;
|
|
48198
|
+
}
|
|
48199
|
+
|
|
48200
|
+
return this.blackoutDates.includes(dateStr);
|
|
48201
|
+
}
|
|
48202
|
+
|
|
46132
48203
|
/**
|
|
46133
48204
|
* Validates value.
|
|
46134
48205
|
* @param {boolean} [force=false] - Whether to force validation.
|
|
@@ -46140,6 +48211,23 @@ class AuroDatePicker extends AuroElement$6 {
|
|
|
46140
48211
|
}
|
|
46141
48212
|
|
|
46142
48213
|
this.validation.validate(this, force);
|
|
48214
|
+
|
|
48215
|
+
// After standard validation, check blackout dates for typed input
|
|
48216
|
+
if (this.validity !== 'customError' &&
|
|
48217
|
+
(this.isBlackoutDate(this.value) || (this.range && this.isBlackoutDate(this.valueEnd)))) { // eslint-disable-line no-extra-parens
|
|
48218
|
+
const msg = this.setCustomValidityCustomError || 'Selected date is unavailable';
|
|
48219
|
+
this.validity = 'customError';
|
|
48220
|
+
this.errorMessage = msg;
|
|
48221
|
+
|
|
48222
|
+
this.dispatchEvent(new CustomEvent('auroFormElement-validated', {
|
|
48223
|
+
bubbles: true,
|
|
48224
|
+
composed: true,
|
|
48225
|
+
detail: {
|
|
48226
|
+
validity: this.validity,
|
|
48227
|
+
message: this.errorMessage
|
|
48228
|
+
}
|
|
48229
|
+
}));
|
|
48230
|
+
}
|
|
46143
48231
|
}
|
|
46144
48232
|
|
|
46145
48233
|
/**
|
|
@@ -46167,7 +48255,7 @@ class AuroDatePicker extends AuroElement$6 {
|
|
|
46167
48255
|
}
|
|
46168
48256
|
|
|
46169
48257
|
/**
|
|
46170
|
-
*
|
|
48258
|
+
* Lifecycle method to check if the locale is valid.
|
|
46171
48259
|
* @ignore
|
|
46172
48260
|
* @param {Map} changedProperties - The map of properties that have changed since the last update.
|
|
46173
48261
|
* @returns {void}
|
|
@@ -46178,17 +48266,20 @@ class AuroDatePicker extends AuroElement$6 {
|
|
|
46178
48266
|
const supported = Intl.DateTimeFormat.supportedLocalesOf([this.locale], { localeMatcher: 'lookup' });
|
|
46179
48267
|
this._validLocale = supported.length > 0 ? this.locale : 'en-US';
|
|
46180
48268
|
} catch {
|
|
46181
|
-
console.debug(`[AuroDatePicker] The locale "${this.locale}" is not valid. Falling back to "en-US".`);
|
|
48269
|
+
console.debug(`[AuroDatePicker] The locale "${this.locale}" is not valid. Falling back to "en-US".`); // eslint-disable-line no-console
|
|
46182
48270
|
this._validLocale = 'en-US';
|
|
46183
48271
|
}
|
|
46184
48272
|
|
|
46185
|
-
// if there was not an explicit format set, or the format set matches the previous locale's default format,
|
|
46186
|
-
// update to the new locale's default format
|
|
46187
48273
|
const previousLocaleFormat = getDateFormatFromLocale$1(changedProperties.get('locale'));
|
|
46188
48274
|
if (!changedProperties.has('format') && (!this.format || this.format.toLowerCase() === previousLocaleFormat)) {
|
|
46189
48275
|
this.format = getDateFormatFromLocale$1(this._validLocale);
|
|
46190
48276
|
}
|
|
46191
48277
|
}
|
|
48278
|
+
|
|
48279
|
+
if (changedProperties.has('referenceDates') && this.calendar) {
|
|
48280
|
+
this.calendar.requestUpdate();
|
|
48281
|
+
this.dispatchEvent(new CustomEvent('auroDatePicker-newSlotContent'));
|
|
48282
|
+
}
|
|
46192
48283
|
}
|
|
46193
48284
|
|
|
46194
48285
|
updated(changedProperties) {
|
|
@@ -46218,17 +48309,18 @@ class AuroDatePicker extends AuroElement$6 {
|
|
|
46218
48309
|
if (changedProperties.has('value')) {
|
|
46219
48310
|
|
|
46220
48311
|
// Change the calendar focus to the first valid date value only the first time the value is set
|
|
46221
|
-
if (!this.calendarFocusDate && dateFormatter$1.isValidDate(this.value)) {
|
|
46222
|
-
|
|
46223
|
-
this.calendarFocusDate = this.value;
|
|
48312
|
+
if (!this.calendarFocusDate && dateFormatter$1.isValidDate(this.value) && !this.dropdown.isPopoverVisible) {
|
|
48313
|
+
this.calendarFocusDate = this.value;
|
|
46224
48314
|
|
|
46225
|
-
|
|
46226
|
-
|
|
46227
|
-
}
|
|
48315
|
+
// Let the calendar know to scroll to the focus date when it is next rendered on mobile
|
|
48316
|
+
this.forceScrollOnNextMobileCalendarRender = true;
|
|
46228
48317
|
}
|
|
46229
48318
|
|
|
46230
48319
|
if (this.cellClickActive) {
|
|
46231
48320
|
this.cellClickActive = false;
|
|
48321
|
+
this.wasCellClick = true;
|
|
48322
|
+
} else {
|
|
48323
|
+
this.wasCellClick = false;
|
|
46232
48324
|
}
|
|
46233
48325
|
|
|
46234
48326
|
if (this.value && dateFormatter$1.isValidDate(this.value)) {
|
|
@@ -46246,13 +48338,48 @@ class AuroDatePicker extends AuroElement$6 {
|
|
|
46246
48338
|
|
|
46247
48339
|
// update the inputs — auro-input accepts ISO directly
|
|
46248
48340
|
if (this.inputList[0].value !== this.value) {
|
|
46249
|
-
|
|
48341
|
+
if (this.value) {
|
|
48342
|
+
this.inputList[0].value = this.value;
|
|
48343
|
+
} else {
|
|
48344
|
+
this.inputList[0].value = '';
|
|
48345
|
+
}
|
|
48346
|
+
}
|
|
48347
|
+
|
|
48348
|
+
if (this.value && this.value.length === this.inputList[0].lengthForType && !(this.wasCellClick && this.range)) {
|
|
48349
|
+
// Skip centralDate update when user clicked a cell in range mode
|
|
48350
|
+
// to prevent the displayed months from shifting
|
|
48351
|
+
this.centralDate = this.value;
|
|
48352
|
+
//TODO: TEST THIS CHANGE
|
|
48353
|
+
// this.calendarRenderUtil.updateCentralDate(this, this.value);
|
|
46250
48354
|
}
|
|
46251
48355
|
|
|
46252
48356
|
this.setHasValue();
|
|
46253
48357
|
}
|
|
46254
48358
|
|
|
48359
|
+
if (changedProperties.has('blackoutDates')) {
|
|
48360
|
+
// Force calendar cells to re-render with updated blackout state.
|
|
48361
|
+
// requestUpdate on the calendar alone is insufficient because cells
|
|
48362
|
+
// don't receive blackoutDates as a bound property. Dispatching the
|
|
48363
|
+
// slot content event triggers handleSlotContent → requestUpdate on each cell.
|
|
48364
|
+
if (this.calendar) {
|
|
48365
|
+
this.calendar.requestUpdate();
|
|
48366
|
+
this.dispatchEvent(new CustomEvent('auroDatePicker-newSlotContent'));
|
|
48367
|
+
}
|
|
48368
|
+
|
|
48369
|
+
// Re-run validation so that a previously valid value that now falls on
|
|
48370
|
+
// a blackout date is flagged, and vice versa.
|
|
48371
|
+
if (this.value || this.valueEnd) {
|
|
48372
|
+
this.validate();
|
|
48373
|
+
}
|
|
48374
|
+
}
|
|
48375
|
+
|
|
46255
48376
|
if (changedProperties.has('valueEnd') && this.inputList[1]) {
|
|
48377
|
+
if (this.cellClickActive) {
|
|
48378
|
+
this.cellClickActive = false;
|
|
48379
|
+
this.wasCellClick = true;
|
|
48380
|
+
} else {
|
|
48381
|
+
this.wasCellClick = false;
|
|
48382
|
+
}
|
|
46256
48383
|
|
|
46257
48384
|
// update the calendar
|
|
46258
48385
|
if (this.valueEndObject) {
|
|
@@ -46270,7 +48397,19 @@ class AuroDatePicker extends AuroElement$6 {
|
|
|
46270
48397
|
|
|
46271
48398
|
// update the inputs — auro-input accepts ISO directly
|
|
46272
48399
|
if (this.inputList[1].value !== this.valueEnd) {
|
|
46273
|
-
|
|
48400
|
+
if (this.valueEnd) {
|
|
48401
|
+
this.inputList[1].value = this.valueEnd;
|
|
48402
|
+
} else {
|
|
48403
|
+
this.inputList[1].value = '';
|
|
48404
|
+
}
|
|
48405
|
+
}
|
|
48406
|
+
|
|
48407
|
+
if (this.valueEnd && this.valueEnd.length === this.inputList[1].lengthForType && !this.wasCellClick) {
|
|
48408
|
+
// Skip centralDate update when user clicked a cell in range mode
|
|
48409
|
+
// to prevent the displayed months from shifting
|
|
48410
|
+
this.centralDate = this.valueEnd;
|
|
48411
|
+
// TODO: TEST THIS CHANGE
|
|
48412
|
+
// this.calendarRenderUtil.updateCentralDate(this, this.formattedValueEnd);
|
|
46274
48413
|
}
|
|
46275
48414
|
|
|
46276
48415
|
this.validate();
|
|
@@ -46313,16 +48452,14 @@ class AuroDatePicker extends AuroElement$6 {
|
|
|
46313
48452
|
this.calendarRenderUtil.updateCentralDate(this, this.minDateObject);
|
|
46314
48453
|
}
|
|
46315
48454
|
|
|
46316
|
-
if (!changedProperties.has('value') && this.valueObject) {
|
|
46317
|
-
|
|
46318
|
-
this.value = undefined;
|
|
46319
|
-
|
|
46320
|
-
if (this.range && this.valueEnd) {
|
|
46321
|
-
this.valueEnd = undefined;
|
|
46322
|
-
}
|
|
48455
|
+
if (!changedProperties.has('value') && this.valueObject && this.minDateObject > this.valueObject) {
|
|
48456
|
+
this.value = undefined;
|
|
46323
48457
|
|
|
46324
|
-
|
|
48458
|
+
if (this.range && this.valueEnd) {
|
|
48459
|
+
this.valueEnd = undefined;
|
|
46325
48460
|
}
|
|
48461
|
+
|
|
48462
|
+
this.calendarRenderUtil.updateCentralDate(this, this.minDateObject);
|
|
46326
48463
|
}
|
|
46327
48464
|
|
|
46328
48465
|
// When there is no focusDate and no value, set the focusDate to the minDate
|
|
@@ -46353,16 +48490,14 @@ class AuroDatePicker extends AuroElement$6 {
|
|
|
46353
48490
|
}
|
|
46354
48491
|
}
|
|
46355
48492
|
|
|
46356
|
-
if (this.maxDate && !changedProperties.has('value') && this.valueObject) {
|
|
46357
|
-
|
|
46358
|
-
this.value = undefined;
|
|
46359
|
-
|
|
46360
|
-
if (this.range && this.valueEnd) {
|
|
46361
|
-
this.valueEnd = undefined;
|
|
46362
|
-
}
|
|
48493
|
+
if (this.maxDate && !changedProperties.has('value') && this.valueObject && this.maxDateObject < this.valueObject) {
|
|
48494
|
+
this.value = undefined;
|
|
46363
48495
|
|
|
46364
|
-
|
|
48496
|
+
if (this.range && this.valueEnd) {
|
|
48497
|
+
this.valueEnd = undefined;
|
|
46365
48498
|
}
|
|
48499
|
+
|
|
48500
|
+
this.calendarRenderUtil.updateCentralDate(this, this.maxDateObject);
|
|
46366
48501
|
}
|
|
46367
48502
|
|
|
46368
48503
|
this.calendar.requestUpdate();
|
|
@@ -46420,6 +48555,7 @@ class AuroDatePicker extends AuroElement$6 {
|
|
|
46420
48555
|
}
|
|
46421
48556
|
|
|
46422
48557
|
firstUpdated() {
|
|
48558
|
+
|
|
46423
48559
|
// Add the tag name as an attribute if it is different than the component name
|
|
46424
48560
|
this.runtimeUtils.handleComponentTagRename(this, 'auro-datepicker');
|
|
46425
48561
|
|
|
@@ -46702,7 +48838,7 @@ class AuroDatePicker extends AuroElement$6 {
|
|
|
46702
48838
|
/**
|
|
46703
48839
|
* Handles click on the clear button.
|
|
46704
48840
|
* @private
|
|
46705
|
-
* @param {MouseEvent} event - The
|
|
48841
|
+
* @param {MouseEvent} event - The mouse event from the clear button click.
|
|
46706
48842
|
* @returns {void}
|
|
46707
48843
|
*/
|
|
46708
48844
|
handleClearClick(event) {
|
|
@@ -46850,7 +48986,7 @@ class AuroDatePicker extends AuroElement$6 {
|
|
|
46850
48986
|
// Base HTML render() handles dropdown and calendar bib
|
|
46851
48987
|
return u$d`
|
|
46852
48988
|
<!-- Hidden slot for clear button aria-label -->
|
|
46853
|
-
<slot name="ariaLabel.input.clear" hidden @slotchange=${this.requestUpdate}></slot>
|
|
48989
|
+
<slot name="ariaLabel.input.clear" hidden @slotchange=${() => this.requestUpdate()}></slot>
|
|
46854
48990
|
|
|
46855
48991
|
<${this.dropdownTag}
|
|
46856
48992
|
appearance="${this.onDark ? 'inverse' : this.appearance}"
|
|
@@ -46867,6 +49003,7 @@ class AuroDatePicker extends AuroElement$6 {
|
|
|
46867
49003
|
.shape="${this.shape}"
|
|
46868
49004
|
.size="${this.size}"
|
|
46869
49005
|
class="${e$3(dropdownElementClassMap)}"
|
|
49006
|
+
desktopModal
|
|
46870
49007
|
disableEventShow
|
|
46871
49008
|
for="dropdownMenu"
|
|
46872
49009
|
part="dropdown"
|
|
@@ -50123,7 +52260,7 @@ function applyKeyboardStrategy$4(component, strategy, options = {}) {
|
|
|
50123
52260
|
});
|
|
50124
52261
|
}
|
|
50125
52262
|
|
|
50126
|
-
var styleCss$2$6 = i$5`: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}`;
|
|
52263
|
+
var styleCss$2$6 = i$5`: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}`;
|
|
50127
52264
|
|
|
50128
52265
|
var colorCss$2$6 = i$5`.container{background-color:var(--ds-auro-dropdownbib-container-color);box-shadow:var(--ds-auro-dropdownbib-boxshadow-color);color:var(--ds-auro-dropdownbib-text-color)}`;
|
|
50129
52266
|
|
|
@@ -50754,7 +52891,7 @@ let AuroHelpText$7 = class AuroHelpText extends i$3 {
|
|
|
50754
52891
|
}
|
|
50755
52892
|
};
|
|
50756
52893
|
|
|
50757
|
-
var formkitVersion$7 = '
|
|
52894
|
+
var formkitVersion$7 = '202606081904';
|
|
50758
52895
|
|
|
50759
52896
|
let AuroElement$5 = class AuroElement extends i$3 {
|
|
50760
52897
|
static get properties() {
|
|
@@ -50934,6 +53071,7 @@ let AuroDropdown$2 = class AuroDropdown extends AuroElement$5 {
|
|
|
50934
53071
|
_intializeDefaults() {
|
|
50935
53072
|
this.appearance = 'default';
|
|
50936
53073
|
this.chevron = false;
|
|
53074
|
+
this.desktopModal = false;
|
|
50937
53075
|
this.disabled = false;
|
|
50938
53076
|
this.disableKeyboardHandling = false;
|
|
50939
53077
|
this.error = false;
|
|
@@ -51114,6 +53252,14 @@ let AuroDropdown$2 = class AuroDropdown extends AuroElement$5 {
|
|
|
51114
53252
|
reflect: true
|
|
51115
53253
|
},
|
|
51116
53254
|
|
|
53255
|
+
/**
|
|
53256
|
+
* If declared, the dropdown will behave as a modal dialog when in a desktop viewport size.
|
|
53257
|
+
*/
|
|
53258
|
+
desktopModal: {
|
|
53259
|
+
type: Boolean,
|
|
53260
|
+
reflect: true
|
|
53261
|
+
},
|
|
53262
|
+
|
|
51117
53263
|
/**
|
|
51118
53264
|
* If declared, the dropdown will only show by calling the API .show() public method.
|
|
51119
53265
|
*/
|
|
@@ -51401,6 +53547,15 @@ let AuroDropdown$2 = class AuroDropdown extends AuroElement$5 {
|
|
|
51401
53547
|
|
|
51402
53548
|
disconnectedCallback() {
|
|
51403
53549
|
super.disconnectedCallback();
|
|
53550
|
+
this._clearPageInert();
|
|
53551
|
+
if (this._bibTabHandler) {
|
|
53552
|
+
this.removeEventListener('keydown', this._bibTabHandler);
|
|
53553
|
+
this._bibTabHandler = undefined;
|
|
53554
|
+
}
|
|
53555
|
+
if (this.focusTrap) {
|
|
53556
|
+
this.focusTrap.disconnect();
|
|
53557
|
+
this.focusTrap = undefined;
|
|
53558
|
+
}
|
|
51404
53559
|
if (this.floater) {
|
|
51405
53560
|
this.floater.hideBib('disconnect');
|
|
51406
53561
|
this.floater.disconnect();
|
|
@@ -51428,19 +53583,45 @@ let AuroDropdown$2 = class AuroDropdown extends AuroElement$5 {
|
|
|
51428
53583
|
if (this.isPopoverVisible) {
|
|
51429
53584
|
// Fullscreen: use showModal() for native accessibility (inert outside, focus trap)
|
|
51430
53585
|
// Desktop: use show() for Floating UI positioning + FocusTrap for focus management
|
|
51431
|
-
|
|
51432
|
-
this.
|
|
53586
|
+
this.bibElement.value.open(this.isBibFullscreen);
|
|
53587
|
+
this.updateFocusTrap();
|
|
53588
|
+
|
|
53589
|
+
// Desktop modal: make siblings inert so content outside is not interactive
|
|
53590
|
+
if (this.desktopModal && !this.isBibFullscreen) {
|
|
53591
|
+
this._setPageInert();
|
|
53592
|
+
}
|
|
51433
53593
|
} else {
|
|
51434
53594
|
this.bibElement.value.close();
|
|
53595
|
+
this._clearPageInert();
|
|
51435
53596
|
}
|
|
51436
53597
|
}
|
|
51437
53598
|
|
|
51438
53599
|
// When fullscreen strategy changes while open, re-open dialog with correct mode
|
|
51439
53600
|
// (e.g. resizing from desktop → mobile while dropdown is open)
|
|
51440
53601
|
if (changedProperties.has('isBibFullscreen') && this.isPopoverVisible && this.bibElement.value) {
|
|
51441
|
-
const useModal = this.isBibFullscreen;
|
|
51442
53602
|
this.bibElement.value.close();
|
|
51443
|
-
this.bibElement.value.open(
|
|
53603
|
+
this.bibElement.value.open(this.isBibFullscreen);
|
|
53604
|
+
|
|
53605
|
+
// Re-initialize focus management for the new strategy
|
|
53606
|
+
this.updateFocusTrap();
|
|
53607
|
+
|
|
53608
|
+
// Toggle inert: desktop modal needs it, fullscreen showModal() handles it natively
|
|
53609
|
+
if (this.desktopModal && !this.isBibFullscreen) {
|
|
53610
|
+
this._setPageInert();
|
|
53611
|
+
} else {
|
|
53612
|
+
this._clearPageInert();
|
|
53613
|
+
}
|
|
53614
|
+
}
|
|
53615
|
+
|
|
53616
|
+
// Handle desktopModal toggled while the dropdown is already open.
|
|
53617
|
+
// Re-initialize focus trapping and page inert state to match the new mode.
|
|
53618
|
+
if (changedProperties.has('desktopModal') && this.isPopoverVisible && !this.isBibFullscreen) {
|
|
53619
|
+
this.updateFocusTrap();
|
|
53620
|
+
if (this.desktopModal) {
|
|
53621
|
+
this._setPageInert();
|
|
53622
|
+
} else {
|
|
53623
|
+
this._clearPageInert();
|
|
53624
|
+
}
|
|
51444
53625
|
}
|
|
51445
53626
|
}
|
|
51446
53627
|
|
|
@@ -51450,8 +53631,14 @@ let AuroDropdown$2 = class AuroDropdown extends AuroElement$5 {
|
|
|
51450
53631
|
* @param {CustomEvent} event - The custom event that contains the dropdown toggle information.
|
|
51451
53632
|
*/
|
|
51452
53633
|
handleDropdownToggle(event) {
|
|
51453
|
-
this.updateFocusTrap();
|
|
51454
53634
|
this.isPopoverVisible = event.detail.expanded;
|
|
53635
|
+
|
|
53636
|
+
// Tear down FocusTrap when closing. Creation happens in updated()
|
|
53637
|
+
// after the dialog is open so getFocusableElements can find content.
|
|
53638
|
+
if (!this.isPopoverVisible) {
|
|
53639
|
+
this.updateFocusTrap();
|
|
53640
|
+
}
|
|
53641
|
+
|
|
51455
53642
|
const eventType = event.detail.eventType || "unknown";
|
|
51456
53643
|
if (!this.isPopoverVisible && this.hasFocus && eventType === "keydown") {
|
|
51457
53644
|
this.trigger.focus();
|
|
@@ -51550,19 +53737,194 @@ let AuroDropdown$2 = class AuroDropdown extends AuroElement$5 {
|
|
|
51550
53737
|
* @private
|
|
51551
53738
|
*/
|
|
51552
53739
|
updateFocusTrap() {
|
|
53740
|
+
// Always clean up existing handlers/traps before setting up new ones
|
|
53741
|
+
// to prevent duplicate listeners on repeated calls.
|
|
53742
|
+
if (this._bibTabHandler) {
|
|
53743
|
+
this.removeEventListener('keydown', this._bibTabHandler);
|
|
53744
|
+
this._bibTabHandler = undefined;
|
|
53745
|
+
}
|
|
53746
|
+
|
|
53747
|
+
if (this.focusTrap) {
|
|
53748
|
+
this.focusTrap.disconnect();
|
|
53749
|
+
this.focusTrap = undefined;
|
|
53750
|
+
}
|
|
53751
|
+
|
|
51553
53752
|
if (this.isPopoverVisible) {
|
|
51554
53753
|
if (!this.isBibFullscreen) {
|
|
51555
|
-
|
|
51556
|
-
|
|
51557
|
-
|
|
53754
|
+
if (this.desktopModal) {
|
|
53755
|
+
// Desktop modal: trap focus only within the bib content.
|
|
53756
|
+
// Can't use FocusTrap on the bib element because keydown events
|
|
53757
|
+
// from slotted content bubble through the dropdown host (light DOM),
|
|
53758
|
+
// not through the bib (shadow projection target). Using FocusTrap
|
|
53759
|
+
// on the dropdown would include the trigger in the tab cycle.
|
|
53760
|
+
// Instead, listen for Tab on the dropdown and manually wrap focus
|
|
53761
|
+
// within the bib's focusable elements.
|
|
53762
|
+
this._bibTabHandler = (event) => {
|
|
53763
|
+
if (event.key !== 'Tab') {
|
|
53764
|
+
return;
|
|
53765
|
+
}
|
|
53766
|
+
|
|
53767
|
+
// Collect focusable elements from the bib content.
|
|
53768
|
+
const focusables = getFocusableElements$2(this.bibContent);
|
|
53769
|
+
|
|
53770
|
+
// Fallback: try from slotted content directly
|
|
53771
|
+
if (!focusables.length) {
|
|
53772
|
+
const slot = this.shadowRoot.querySelector('.slotContent slot');
|
|
53773
|
+
const assignedNodes = slot.assignedNodes({ flatten: true });
|
|
53774
|
+
|
|
53775
|
+
for (const node of assignedNodes) {
|
|
53776
|
+
if (node.nodeType === Node.ELEMENT_NODE) {
|
|
53777
|
+
focusables.push(...getFocusableElements$2(node));
|
|
53778
|
+
}
|
|
53779
|
+
}
|
|
53780
|
+
}
|
|
53781
|
+
|
|
53782
|
+
if (!focusables.length) {
|
|
53783
|
+
return;
|
|
53784
|
+
}
|
|
53785
|
+
|
|
53786
|
+
event.preventDefault();
|
|
53787
|
+
|
|
53788
|
+
const direction = event.shiftKey ? -1 : 1; // eslint-disable-line no-magic-numbers
|
|
53789
|
+
|
|
53790
|
+
// Walk the active element chain through shadow roots
|
|
53791
|
+
const actives = this._getActiveElements();
|
|
53792
|
+
|
|
53793
|
+
let idx = focusables.findIndex((el) => actives.includes(el));
|
|
53794
|
+
|
|
53795
|
+
if (idx === -1) { // eslint-disable-line no-magic-numbers
|
|
53796
|
+
// Focus is not on a known element — move to first/last
|
|
53797
|
+
idx = direction === 1 ? -1 : focusables.length; // eslint-disable-line no-magic-numbers
|
|
53798
|
+
}
|
|
53799
|
+
|
|
53800
|
+
// Try each element in order, skipping any that can't receive focus
|
|
53801
|
+
// (e.g. hidden elements, elements in collapsed sections)
|
|
53802
|
+
for (let index = 0; index < focusables.length; index++) { // eslint-disable-line no-plusplus
|
|
53803
|
+
let nextIdx = idx + direction;
|
|
53804
|
+
|
|
53805
|
+
// Wrap around
|
|
53806
|
+
if (nextIdx < 0) {
|
|
53807
|
+
nextIdx = focusables.length - 1;
|
|
53808
|
+
} else if (nextIdx >= focusables.length) {
|
|
53809
|
+
nextIdx = 0;
|
|
53810
|
+
}
|
|
53811
|
+
|
|
53812
|
+
focusables[nextIdx].focus();
|
|
53813
|
+
|
|
53814
|
+
// Verify focus actually moved to the target
|
|
53815
|
+
const newActives = this._getActiveElements();
|
|
53816
|
+
|
|
53817
|
+
if (newActives.includes(focusables[nextIdx])) {
|
|
53818
|
+
return;
|
|
53819
|
+
}
|
|
53820
|
+
|
|
53821
|
+
// Focus didn't stick — skip this element and try the next
|
|
53822
|
+
idx = nextIdx;
|
|
53823
|
+
}
|
|
53824
|
+
};
|
|
53825
|
+
this.addEventListener('keydown', this._bibTabHandler);
|
|
53826
|
+
|
|
53827
|
+
// Move initial focus into the bib content, matching FocusTrap behavior
|
|
53828
|
+
requestAnimationFrame(() => {
|
|
53829
|
+
const focusables = getFocusableElements$2(this.bibContent);
|
|
53830
|
+
if (focusables.length) {
|
|
53831
|
+
focusables[0].focus();
|
|
53832
|
+
}
|
|
53833
|
+
});
|
|
53834
|
+
} else {
|
|
53835
|
+
// Normal desktop: use FocusTrap on the bib element
|
|
53836
|
+
this.focusTrap = new FocusTrap$2(this.bibContent);
|
|
53837
|
+
this.focusTrap.focusFirstElement();
|
|
53838
|
+
}
|
|
51558
53839
|
}
|
|
51559
53840
|
// Fullscreen: showModal() provides native focus trapping
|
|
53841
|
+
}
|
|
53842
|
+
}
|
|
53843
|
+
|
|
53844
|
+
/**
|
|
53845
|
+
* Returns the chain of active (focused) elements through shadow roots.
|
|
53846
|
+
* @private
|
|
53847
|
+
* @returns {Array<HTMLElement>}
|
|
53848
|
+
*/
|
|
53849
|
+
_getActiveElements() {
|
|
53850
|
+
let { activeElement } = document;
|
|
53851
|
+
const actives = [activeElement];
|
|
53852
|
+
|
|
53853
|
+
while (activeElement?.shadowRoot?.activeElement) {
|
|
53854
|
+
activeElement = activeElement.shadowRoot.activeElement;
|
|
53855
|
+
actives.push(activeElement);
|
|
53856
|
+
}
|
|
53857
|
+
|
|
53858
|
+
return actives;
|
|
53859
|
+
}
|
|
53860
|
+
|
|
53861
|
+
/**
|
|
53862
|
+
* Sets `inert` on sibling elements of the dropdown's top-level host
|
|
53863
|
+
* so that content outside the dropdown is not interactive while the modal is open.
|
|
53864
|
+
* Walks up through shadow DOM boundaries to find the outermost host element
|
|
53865
|
+
* in the light DOM, then sets `inert` on siblings at each ancestor level
|
|
53866
|
+
* to ensure all page content outside the host subtree is inert.
|
|
53867
|
+
* @private
|
|
53868
|
+
*/
|
|
53869
|
+
_setPageInert() {
|
|
53870
|
+
if (this._inertSiblings) {
|
|
51560
53871
|
return;
|
|
51561
53872
|
}
|
|
51562
53873
|
|
|
51563
|
-
|
|
51564
|
-
|
|
51565
|
-
|
|
53874
|
+
this._inertSiblings = [];
|
|
53875
|
+
|
|
53876
|
+
// Walk up through shadow DOM boundaries to find the topmost host
|
|
53877
|
+
// element in the light DOM. For example, if this dropdown is inside
|
|
53878
|
+
// auro-datepicker's shadow DOM, we walk up to the datepicker element
|
|
53879
|
+
// so we set inert on its siblings — not on the datepicker itself.
|
|
53880
|
+
let host = this;
|
|
53881
|
+
while (host.getRootNode() instanceof ShadowRoot) {
|
|
53882
|
+
host = host.getRootNode().host;
|
|
53883
|
+
}
|
|
53884
|
+
|
|
53885
|
+
// Walk up the ancestor chain, inerting siblings at each level
|
|
53886
|
+
// to ensure the entire page outside the host subtree is inert.
|
|
53887
|
+
// Uses a reference counter (data-auro-inert-count) so multiple
|
|
53888
|
+
// simultaneous modal dropdowns share inert state safely.
|
|
53889
|
+
let current = host;
|
|
53890
|
+
while (current.parentElement) {
|
|
53891
|
+
const parent = current.parentElement;
|
|
53892
|
+
for (const sibling of parent.children) {
|
|
53893
|
+
if (sibling !== current) {
|
|
53894
|
+
const count = parseInt(sibling.dataset.auroInertCount || '0', 10);
|
|
53895
|
+
if (count === 0) {
|
|
53896
|
+
sibling.dataset.auroInertWas = sibling.inert ? 'true' : 'false';
|
|
53897
|
+
}
|
|
53898
|
+
sibling.dataset.auroInertCount = String(count + 1);
|
|
53899
|
+
sibling.inert = true;
|
|
53900
|
+
this._inertSiblings.push(sibling);
|
|
53901
|
+
}
|
|
53902
|
+
}
|
|
53903
|
+
current = parent;
|
|
53904
|
+
}
|
|
53905
|
+
}
|
|
53906
|
+
|
|
53907
|
+
/**
|
|
53908
|
+
* Restores `inert` state on siblings that were tracked by `_setPageInert`.
|
|
53909
|
+
* Uses reference counting so inert is only cleared when the last modal
|
|
53910
|
+
* dropdown releases a given element. Preserves the original inert state
|
|
53911
|
+
* so externally-inerted elements are not inadvertently re-enabled.
|
|
53912
|
+
* @private
|
|
53913
|
+
*/
|
|
53914
|
+
_clearPageInert() {
|
|
53915
|
+
if (this._inertSiblings) {
|
|
53916
|
+
for (const sibling of this._inertSiblings) {
|
|
53917
|
+
const count = parseInt(sibling.dataset.auroInertCount || '1', 10) - 1;
|
|
53918
|
+
if (count <= 0) {
|
|
53919
|
+
const wasInert = sibling.dataset.auroInertWas === 'true';
|
|
53920
|
+
delete sibling.dataset.auroInertCount;
|
|
53921
|
+
delete sibling.dataset.auroInertWas;
|
|
53922
|
+
sibling.inert = wasInert;
|
|
53923
|
+
} else {
|
|
53924
|
+
sibling.dataset.auroInertCount = String(count);
|
|
53925
|
+
}
|
|
53926
|
+
}
|
|
53927
|
+
this._inertSiblings = undefined;
|
|
51566
53928
|
}
|
|
51567
53929
|
}
|
|
51568
53930
|
|
|
@@ -51801,6 +54163,7 @@ let AuroDropdown$2 = class AuroDropdown extends AuroElement$5 {
|
|
|
51801
54163
|
shape="${this.shape}"
|
|
51802
54164
|
?data-show="${this.isPopoverVisible}"
|
|
51803
54165
|
?isfullscreen="${this.isBibFullscreen}"
|
|
54166
|
+
?desktopmodal="${this.desktopModal}"
|
|
51804
54167
|
.dialogLabel="${this.bibDialogLabel}"
|
|
51805
54168
|
${n$6(this.bibElement)}
|
|
51806
54169
|
>
|
|
@@ -52933,7 +55296,7 @@ let AuroHelpText$6 = class AuroHelpText extends i$3 {
|
|
|
52933
55296
|
}
|
|
52934
55297
|
};
|
|
52935
55298
|
|
|
52936
|
-
var formkitVersion$6 = '
|
|
55299
|
+
var formkitVersion$6 = '202606081904';
|
|
52937
55300
|
|
|
52938
55301
|
// Copyright (c) 2026 Alaska Airlines. All rights reserved. Licensed under the Apache-2.0 license
|
|
52939
55302
|
// See LICENSE in the project root for license information.
|
|
@@ -53671,6 +56034,14 @@ let AuroBibtemplate$2 = class AuroBibtemplate extends i$3 {
|
|
|
53671
56034
|
large: {
|
|
53672
56035
|
type: Boolean,
|
|
53673
56036
|
reflect: true
|
|
56037
|
+
},
|
|
56038
|
+
|
|
56039
|
+
/**
|
|
56040
|
+
* If declared, the footer slot will be rendered even when not in fullscreen mode.
|
|
56041
|
+
*/
|
|
56042
|
+
showFooter: {
|
|
56043
|
+
type: Boolean,
|
|
56044
|
+
reflect: true
|
|
53674
56045
|
}
|
|
53675
56046
|
};
|
|
53676
56047
|
}
|
|
@@ -53773,7 +56144,7 @@ let AuroBibtemplate$2 = class AuroBibtemplate extends i$3 {
|
|
|
53773
56144
|
<slot></slot>
|
|
53774
56145
|
</div>
|
|
53775
56146
|
|
|
53776
|
-
${this.isFullscreen ? u$d`
|
|
56147
|
+
${this.isFullscreen || this.showFooter ? u$d`
|
|
53777
56148
|
<div id="footerContainer">
|
|
53778
56149
|
<slot name="footer"></slot>
|
|
53779
56150
|
</div>` : null}
|
|
@@ -55929,7 +58300,7 @@ let AuroHelpText$5 = class AuroHelpText extends i$3 {
|
|
|
55929
58300
|
}
|
|
55930
58301
|
};
|
|
55931
58302
|
|
|
55932
|
-
var formkitVersion$5 = '
|
|
58303
|
+
var formkitVersion$5 = '202606081904';
|
|
55933
58304
|
|
|
55934
58305
|
// Copyright (c) Alaska Air. All right reserved. Licensed under the Apache-2.0 license
|
|
55935
58306
|
// See LICENSE in the project root for license information.
|
|
@@ -57679,7 +60050,7 @@ let AuroHelpText$4 = class AuroHelpText extends i$3 {
|
|
|
57679
60050
|
}
|
|
57680
60051
|
};
|
|
57681
60052
|
|
|
57682
|
-
var formkitVersion$4 = '
|
|
60053
|
+
var formkitVersion$4 = '202606081904';
|
|
57683
60054
|
|
|
57684
60055
|
// Copyright (c) 2026 Alaska Airlines. All rights reserved. Licensed under the Apache-2.0 license
|
|
57685
60056
|
// See LICENSE in the project root for license information.
|
|
@@ -62246,7 +64617,7 @@ function applyKeyboardStrategy$2(component, strategy, options = {}) {
|
|
|
62246
64617
|
});
|
|
62247
64618
|
}
|
|
62248
64619
|
|
|
62249
|
-
var styleCss$2$1$1 = i$5`: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}`;
|
|
64620
|
+
var styleCss$2$1$1 = i$5`: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}`;
|
|
62250
64621
|
|
|
62251
64622
|
var colorCss$2$1 = i$5`.container{background-color:var(--ds-auro-dropdownbib-container-color);box-shadow:var(--ds-auro-dropdownbib-boxshadow-color);color:var(--ds-auro-dropdownbib-text-color)}`;
|
|
62252
64623
|
|
|
@@ -62877,7 +65248,7 @@ let AuroHelpText$2 = class AuroHelpText extends i$3 {
|
|
|
62877
65248
|
}
|
|
62878
65249
|
};
|
|
62879
65250
|
|
|
62880
|
-
var formkitVersion$2 = '
|
|
65251
|
+
var formkitVersion$2 = '202606081904';
|
|
62881
65252
|
|
|
62882
65253
|
let AuroElement$2$1 = class AuroElement extends i$3 {
|
|
62883
65254
|
static get properties() {
|
|
@@ -63057,6 +65428,7 @@ let AuroDropdown$1 = class AuroDropdown extends AuroElement$2$1 {
|
|
|
63057
65428
|
_intializeDefaults() {
|
|
63058
65429
|
this.appearance = 'default';
|
|
63059
65430
|
this.chevron = false;
|
|
65431
|
+
this.desktopModal = false;
|
|
63060
65432
|
this.disabled = false;
|
|
63061
65433
|
this.disableKeyboardHandling = false;
|
|
63062
65434
|
this.error = false;
|
|
@@ -63237,6 +65609,14 @@ let AuroDropdown$1 = class AuroDropdown extends AuroElement$2$1 {
|
|
|
63237
65609
|
reflect: true
|
|
63238
65610
|
},
|
|
63239
65611
|
|
|
65612
|
+
/**
|
|
65613
|
+
* If declared, the dropdown will behave as a modal dialog when in a desktop viewport size.
|
|
65614
|
+
*/
|
|
65615
|
+
desktopModal: {
|
|
65616
|
+
type: Boolean,
|
|
65617
|
+
reflect: true
|
|
65618
|
+
},
|
|
65619
|
+
|
|
63240
65620
|
/**
|
|
63241
65621
|
* If declared, the dropdown will only show by calling the API .show() public method.
|
|
63242
65622
|
*/
|
|
@@ -63524,6 +65904,15 @@ let AuroDropdown$1 = class AuroDropdown extends AuroElement$2$1 {
|
|
|
63524
65904
|
|
|
63525
65905
|
disconnectedCallback() {
|
|
63526
65906
|
super.disconnectedCallback();
|
|
65907
|
+
this._clearPageInert();
|
|
65908
|
+
if (this._bibTabHandler) {
|
|
65909
|
+
this.removeEventListener('keydown', this._bibTabHandler);
|
|
65910
|
+
this._bibTabHandler = undefined;
|
|
65911
|
+
}
|
|
65912
|
+
if (this.focusTrap) {
|
|
65913
|
+
this.focusTrap.disconnect();
|
|
65914
|
+
this.focusTrap = undefined;
|
|
65915
|
+
}
|
|
63527
65916
|
if (this.floater) {
|
|
63528
65917
|
this.floater.hideBib('disconnect');
|
|
63529
65918
|
this.floater.disconnect();
|
|
@@ -63551,19 +65940,45 @@ let AuroDropdown$1 = class AuroDropdown extends AuroElement$2$1 {
|
|
|
63551
65940
|
if (this.isPopoverVisible) {
|
|
63552
65941
|
// Fullscreen: use showModal() for native accessibility (inert outside, focus trap)
|
|
63553
65942
|
// Desktop: use show() for Floating UI positioning + FocusTrap for focus management
|
|
63554
|
-
|
|
63555
|
-
this.
|
|
65943
|
+
this.bibElement.value.open(this.isBibFullscreen);
|
|
65944
|
+
this.updateFocusTrap();
|
|
65945
|
+
|
|
65946
|
+
// Desktop modal: make siblings inert so content outside is not interactive
|
|
65947
|
+
if (this.desktopModal && !this.isBibFullscreen) {
|
|
65948
|
+
this._setPageInert();
|
|
65949
|
+
}
|
|
63556
65950
|
} else {
|
|
63557
65951
|
this.bibElement.value.close();
|
|
65952
|
+
this._clearPageInert();
|
|
63558
65953
|
}
|
|
63559
65954
|
}
|
|
63560
65955
|
|
|
63561
65956
|
// When fullscreen strategy changes while open, re-open dialog with correct mode
|
|
63562
65957
|
// (e.g. resizing from desktop → mobile while dropdown is open)
|
|
63563
65958
|
if (changedProperties.has('isBibFullscreen') && this.isPopoverVisible && this.bibElement.value) {
|
|
63564
|
-
const useModal = this.isBibFullscreen;
|
|
63565
65959
|
this.bibElement.value.close();
|
|
63566
|
-
this.bibElement.value.open(
|
|
65960
|
+
this.bibElement.value.open(this.isBibFullscreen);
|
|
65961
|
+
|
|
65962
|
+
// Re-initialize focus management for the new strategy
|
|
65963
|
+
this.updateFocusTrap();
|
|
65964
|
+
|
|
65965
|
+
// Toggle inert: desktop modal needs it, fullscreen showModal() handles it natively
|
|
65966
|
+
if (this.desktopModal && !this.isBibFullscreen) {
|
|
65967
|
+
this._setPageInert();
|
|
65968
|
+
} else {
|
|
65969
|
+
this._clearPageInert();
|
|
65970
|
+
}
|
|
65971
|
+
}
|
|
65972
|
+
|
|
65973
|
+
// Handle desktopModal toggled while the dropdown is already open.
|
|
65974
|
+
// Re-initialize focus trapping and page inert state to match the new mode.
|
|
65975
|
+
if (changedProperties.has('desktopModal') && this.isPopoverVisible && !this.isBibFullscreen) {
|
|
65976
|
+
this.updateFocusTrap();
|
|
65977
|
+
if (this.desktopModal) {
|
|
65978
|
+
this._setPageInert();
|
|
65979
|
+
} else {
|
|
65980
|
+
this._clearPageInert();
|
|
65981
|
+
}
|
|
63567
65982
|
}
|
|
63568
65983
|
}
|
|
63569
65984
|
|
|
@@ -63573,8 +65988,14 @@ let AuroDropdown$1 = class AuroDropdown extends AuroElement$2$1 {
|
|
|
63573
65988
|
* @param {CustomEvent} event - The custom event that contains the dropdown toggle information.
|
|
63574
65989
|
*/
|
|
63575
65990
|
handleDropdownToggle(event) {
|
|
63576
|
-
this.updateFocusTrap();
|
|
63577
65991
|
this.isPopoverVisible = event.detail.expanded;
|
|
65992
|
+
|
|
65993
|
+
// Tear down FocusTrap when closing. Creation happens in updated()
|
|
65994
|
+
// after the dialog is open so getFocusableElements can find content.
|
|
65995
|
+
if (!this.isPopoverVisible) {
|
|
65996
|
+
this.updateFocusTrap();
|
|
65997
|
+
}
|
|
65998
|
+
|
|
63578
65999
|
const eventType = event.detail.eventType || "unknown";
|
|
63579
66000
|
if (!this.isPopoverVisible && this.hasFocus && eventType === "keydown") {
|
|
63580
66001
|
this.trigger.focus();
|
|
@@ -63673,19 +66094,194 @@ let AuroDropdown$1 = class AuroDropdown extends AuroElement$2$1 {
|
|
|
63673
66094
|
* @private
|
|
63674
66095
|
*/
|
|
63675
66096
|
updateFocusTrap() {
|
|
66097
|
+
// Always clean up existing handlers/traps before setting up new ones
|
|
66098
|
+
// to prevent duplicate listeners on repeated calls.
|
|
66099
|
+
if (this._bibTabHandler) {
|
|
66100
|
+
this.removeEventListener('keydown', this._bibTabHandler);
|
|
66101
|
+
this._bibTabHandler = undefined;
|
|
66102
|
+
}
|
|
66103
|
+
|
|
66104
|
+
if (this.focusTrap) {
|
|
66105
|
+
this.focusTrap.disconnect();
|
|
66106
|
+
this.focusTrap = undefined;
|
|
66107
|
+
}
|
|
66108
|
+
|
|
63676
66109
|
if (this.isPopoverVisible) {
|
|
63677
66110
|
if (!this.isBibFullscreen) {
|
|
63678
|
-
|
|
63679
|
-
|
|
63680
|
-
|
|
66111
|
+
if (this.desktopModal) {
|
|
66112
|
+
// Desktop modal: trap focus only within the bib content.
|
|
66113
|
+
// Can't use FocusTrap on the bib element because keydown events
|
|
66114
|
+
// from slotted content bubble through the dropdown host (light DOM),
|
|
66115
|
+
// not through the bib (shadow projection target). Using FocusTrap
|
|
66116
|
+
// on the dropdown would include the trigger in the tab cycle.
|
|
66117
|
+
// Instead, listen for Tab on the dropdown and manually wrap focus
|
|
66118
|
+
// within the bib's focusable elements.
|
|
66119
|
+
this._bibTabHandler = (event) => {
|
|
66120
|
+
if (event.key !== 'Tab') {
|
|
66121
|
+
return;
|
|
66122
|
+
}
|
|
66123
|
+
|
|
66124
|
+
// Collect focusable elements from the bib content.
|
|
66125
|
+
const focusables = getFocusableElements$1(this.bibContent);
|
|
66126
|
+
|
|
66127
|
+
// Fallback: try from slotted content directly
|
|
66128
|
+
if (!focusables.length) {
|
|
66129
|
+
const slot = this.shadowRoot.querySelector('.slotContent slot');
|
|
66130
|
+
const assignedNodes = slot.assignedNodes({ flatten: true });
|
|
66131
|
+
|
|
66132
|
+
for (const node of assignedNodes) {
|
|
66133
|
+
if (node.nodeType === Node.ELEMENT_NODE) {
|
|
66134
|
+
focusables.push(...getFocusableElements$1(node));
|
|
66135
|
+
}
|
|
66136
|
+
}
|
|
66137
|
+
}
|
|
66138
|
+
|
|
66139
|
+
if (!focusables.length) {
|
|
66140
|
+
return;
|
|
66141
|
+
}
|
|
66142
|
+
|
|
66143
|
+
event.preventDefault();
|
|
66144
|
+
|
|
66145
|
+
const direction = event.shiftKey ? -1 : 1; // eslint-disable-line no-magic-numbers
|
|
66146
|
+
|
|
66147
|
+
// Walk the active element chain through shadow roots
|
|
66148
|
+
const actives = this._getActiveElements();
|
|
66149
|
+
|
|
66150
|
+
let idx = focusables.findIndex((el) => actives.includes(el));
|
|
66151
|
+
|
|
66152
|
+
if (idx === -1) { // eslint-disable-line no-magic-numbers
|
|
66153
|
+
// Focus is not on a known element — move to first/last
|
|
66154
|
+
idx = direction === 1 ? -1 : focusables.length; // eslint-disable-line no-magic-numbers
|
|
66155
|
+
}
|
|
66156
|
+
|
|
66157
|
+
// Try each element in order, skipping any that can't receive focus
|
|
66158
|
+
// (e.g. hidden elements, elements in collapsed sections)
|
|
66159
|
+
for (let index = 0; index < focusables.length; index++) { // eslint-disable-line no-plusplus
|
|
66160
|
+
let nextIdx = idx + direction;
|
|
66161
|
+
|
|
66162
|
+
// Wrap around
|
|
66163
|
+
if (nextIdx < 0) {
|
|
66164
|
+
nextIdx = focusables.length - 1;
|
|
66165
|
+
} else if (nextIdx >= focusables.length) {
|
|
66166
|
+
nextIdx = 0;
|
|
66167
|
+
}
|
|
66168
|
+
|
|
66169
|
+
focusables[nextIdx].focus();
|
|
66170
|
+
|
|
66171
|
+
// Verify focus actually moved to the target
|
|
66172
|
+
const newActives = this._getActiveElements();
|
|
66173
|
+
|
|
66174
|
+
if (newActives.includes(focusables[nextIdx])) {
|
|
66175
|
+
return;
|
|
66176
|
+
}
|
|
66177
|
+
|
|
66178
|
+
// Focus didn't stick — skip this element and try the next
|
|
66179
|
+
idx = nextIdx;
|
|
66180
|
+
}
|
|
66181
|
+
};
|
|
66182
|
+
this.addEventListener('keydown', this._bibTabHandler);
|
|
66183
|
+
|
|
66184
|
+
// Move initial focus into the bib content, matching FocusTrap behavior
|
|
66185
|
+
requestAnimationFrame(() => {
|
|
66186
|
+
const focusables = getFocusableElements$1(this.bibContent);
|
|
66187
|
+
if (focusables.length) {
|
|
66188
|
+
focusables[0].focus();
|
|
66189
|
+
}
|
|
66190
|
+
});
|
|
66191
|
+
} else {
|
|
66192
|
+
// Normal desktop: use FocusTrap on the bib element
|
|
66193
|
+
this.focusTrap = new FocusTrap$1(this.bibContent);
|
|
66194
|
+
this.focusTrap.focusFirstElement();
|
|
66195
|
+
}
|
|
63681
66196
|
}
|
|
63682
66197
|
// Fullscreen: showModal() provides native focus trapping
|
|
66198
|
+
}
|
|
66199
|
+
}
|
|
66200
|
+
|
|
66201
|
+
/**
|
|
66202
|
+
* Returns the chain of active (focused) elements through shadow roots.
|
|
66203
|
+
* @private
|
|
66204
|
+
* @returns {Array<HTMLElement>}
|
|
66205
|
+
*/
|
|
66206
|
+
_getActiveElements() {
|
|
66207
|
+
let { activeElement } = document;
|
|
66208
|
+
const actives = [activeElement];
|
|
66209
|
+
|
|
66210
|
+
while (activeElement?.shadowRoot?.activeElement) {
|
|
66211
|
+
activeElement = activeElement.shadowRoot.activeElement;
|
|
66212
|
+
actives.push(activeElement);
|
|
66213
|
+
}
|
|
66214
|
+
|
|
66215
|
+
return actives;
|
|
66216
|
+
}
|
|
66217
|
+
|
|
66218
|
+
/**
|
|
66219
|
+
* Sets `inert` on sibling elements of the dropdown's top-level host
|
|
66220
|
+
* so that content outside the dropdown is not interactive while the modal is open.
|
|
66221
|
+
* Walks up through shadow DOM boundaries to find the outermost host element
|
|
66222
|
+
* in the light DOM, then sets `inert` on siblings at each ancestor level
|
|
66223
|
+
* to ensure all page content outside the host subtree is inert.
|
|
66224
|
+
* @private
|
|
66225
|
+
*/
|
|
66226
|
+
_setPageInert() {
|
|
66227
|
+
if (this._inertSiblings) {
|
|
63683
66228
|
return;
|
|
63684
66229
|
}
|
|
63685
66230
|
|
|
63686
|
-
|
|
63687
|
-
|
|
63688
|
-
|
|
66231
|
+
this._inertSiblings = [];
|
|
66232
|
+
|
|
66233
|
+
// Walk up through shadow DOM boundaries to find the topmost host
|
|
66234
|
+
// element in the light DOM. For example, if this dropdown is inside
|
|
66235
|
+
// auro-datepicker's shadow DOM, we walk up to the datepicker element
|
|
66236
|
+
// so we set inert on its siblings — not on the datepicker itself.
|
|
66237
|
+
let host = this;
|
|
66238
|
+
while (host.getRootNode() instanceof ShadowRoot) {
|
|
66239
|
+
host = host.getRootNode().host;
|
|
66240
|
+
}
|
|
66241
|
+
|
|
66242
|
+
// Walk up the ancestor chain, inerting siblings at each level
|
|
66243
|
+
// to ensure the entire page outside the host subtree is inert.
|
|
66244
|
+
// Uses a reference counter (data-auro-inert-count) so multiple
|
|
66245
|
+
// simultaneous modal dropdowns share inert state safely.
|
|
66246
|
+
let current = host;
|
|
66247
|
+
while (current.parentElement) {
|
|
66248
|
+
const parent = current.parentElement;
|
|
66249
|
+
for (const sibling of parent.children) {
|
|
66250
|
+
if (sibling !== current) {
|
|
66251
|
+
const count = parseInt(sibling.dataset.auroInertCount || '0', 10);
|
|
66252
|
+
if (count === 0) {
|
|
66253
|
+
sibling.dataset.auroInertWas = sibling.inert ? 'true' : 'false';
|
|
66254
|
+
}
|
|
66255
|
+
sibling.dataset.auroInertCount = String(count + 1);
|
|
66256
|
+
sibling.inert = true;
|
|
66257
|
+
this._inertSiblings.push(sibling);
|
|
66258
|
+
}
|
|
66259
|
+
}
|
|
66260
|
+
current = parent;
|
|
66261
|
+
}
|
|
66262
|
+
}
|
|
66263
|
+
|
|
66264
|
+
/**
|
|
66265
|
+
* Restores `inert` state on siblings that were tracked by `_setPageInert`.
|
|
66266
|
+
* Uses reference counting so inert is only cleared when the last modal
|
|
66267
|
+
* dropdown releases a given element. Preserves the original inert state
|
|
66268
|
+
* so externally-inerted elements are not inadvertently re-enabled.
|
|
66269
|
+
* @private
|
|
66270
|
+
*/
|
|
66271
|
+
_clearPageInert() {
|
|
66272
|
+
if (this._inertSiblings) {
|
|
66273
|
+
for (const sibling of this._inertSiblings) {
|
|
66274
|
+
const count = parseInt(sibling.dataset.auroInertCount || '1', 10) - 1;
|
|
66275
|
+
if (count <= 0) {
|
|
66276
|
+
const wasInert = sibling.dataset.auroInertWas === 'true';
|
|
66277
|
+
delete sibling.dataset.auroInertCount;
|
|
66278
|
+
delete sibling.dataset.auroInertWas;
|
|
66279
|
+
sibling.inert = wasInert;
|
|
66280
|
+
} else {
|
|
66281
|
+
sibling.dataset.auroInertCount = String(count);
|
|
66282
|
+
}
|
|
66283
|
+
}
|
|
66284
|
+
this._inertSiblings = undefined;
|
|
63689
66285
|
}
|
|
63690
66286
|
}
|
|
63691
66287
|
|
|
@@ -63924,6 +66520,7 @@ let AuroDropdown$1 = class AuroDropdown extends AuroElement$2$1 {
|
|
|
63924
66520
|
shape="${this.shape}"
|
|
63925
66521
|
?data-show="${this.isPopoverVisible}"
|
|
63926
66522
|
?isfullscreen="${this.isBibFullscreen}"
|
|
66523
|
+
?desktopmodal="${this.desktopModal}"
|
|
63927
66524
|
.dialogLabel="${this.bibDialogLabel}"
|
|
63928
66525
|
${n$6(this.bibElement)}
|
|
63929
66526
|
>
|
|
@@ -76128,7 +78725,7 @@ let AuroHelpText$1$1 = class AuroHelpText extends i$3 {
|
|
|
76128
78725
|
}
|
|
76129
78726
|
};
|
|
76130
78727
|
|
|
76131
|
-
var formkitVersion$1$1 = '
|
|
78728
|
+
var formkitVersion$1$1 = '202606081904';
|
|
76132
78729
|
|
|
76133
78730
|
// Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
|
|
76134
78731
|
// See LICENSE in the project root for license information.
|
|
@@ -77134,6 +79731,14 @@ let AuroBibtemplate$1 = class AuroBibtemplate extends i$3 {
|
|
|
77134
79731
|
large: {
|
|
77135
79732
|
type: Boolean,
|
|
77136
79733
|
reflect: true
|
|
79734
|
+
},
|
|
79735
|
+
|
|
79736
|
+
/**
|
|
79737
|
+
* If declared, the footer slot will be rendered even when not in fullscreen mode.
|
|
79738
|
+
*/
|
|
79739
|
+
showFooter: {
|
|
79740
|
+
type: Boolean,
|
|
79741
|
+
reflect: true
|
|
77137
79742
|
}
|
|
77138
79743
|
};
|
|
77139
79744
|
}
|
|
@@ -77236,7 +79841,7 @@ let AuroBibtemplate$1 = class AuroBibtemplate extends i$3 {
|
|
|
77236
79841
|
<slot></slot>
|
|
77237
79842
|
</div>
|
|
77238
79843
|
|
|
77239
|
-
${this.isFullscreen ? u$d`
|
|
79844
|
+
${this.isFullscreen || this.showFooter ? u$d`
|
|
77240
79845
|
<div id="footerContainer">
|
|
77241
79846
|
<slot name="footer"></slot>
|
|
77242
79847
|
</div>` : null}
|
|
@@ -77245,7 +79850,7 @@ let AuroBibtemplate$1 = class AuroBibtemplate extends i$3 {
|
|
|
77245
79850
|
}
|
|
77246
79851
|
};
|
|
77247
79852
|
|
|
77248
|
-
var formkitVersion$3 = '
|
|
79853
|
+
var formkitVersion$3 = '202606081904';
|
|
77249
79854
|
|
|
77250
79855
|
var styleCss$1$3 = i$5`.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}`;
|
|
77251
79856
|
|
|
@@ -85684,7 +88289,7 @@ function applyKeyboardStrategy(component, strategy, options = {}) {
|
|
|
85684
88289
|
});
|
|
85685
88290
|
}
|
|
85686
88291
|
|
|
85687
|
-
var styleCss$2$1 = i$5`: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}`;
|
|
88292
|
+
var styleCss$2$1 = i$5`: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}`;
|
|
85688
88293
|
|
|
85689
88294
|
var colorCss$2 = i$5`.container{background-color:var(--ds-auro-dropdownbib-container-color);box-shadow:var(--ds-auro-dropdownbib-boxshadow-color);color:var(--ds-auro-dropdownbib-text-color)}`;
|
|
85690
88295
|
|
|
@@ -86315,7 +88920,7 @@ let AuroHelpText$1 = class AuroHelpText extends i$3 {
|
|
|
86315
88920
|
}
|
|
86316
88921
|
};
|
|
86317
88922
|
|
|
86318
|
-
var formkitVersion$1 = '
|
|
88923
|
+
var formkitVersion$1 = '202606081904';
|
|
86319
88924
|
|
|
86320
88925
|
class AuroElement extends i$3 {
|
|
86321
88926
|
static get properties() {
|
|
@@ -86495,6 +89100,7 @@ class AuroDropdown extends AuroElement {
|
|
|
86495
89100
|
_intializeDefaults() {
|
|
86496
89101
|
this.appearance = 'default';
|
|
86497
89102
|
this.chevron = false;
|
|
89103
|
+
this.desktopModal = false;
|
|
86498
89104
|
this.disabled = false;
|
|
86499
89105
|
this.disableKeyboardHandling = false;
|
|
86500
89106
|
this.error = false;
|
|
@@ -86675,6 +89281,14 @@ class AuroDropdown extends AuroElement {
|
|
|
86675
89281
|
reflect: true
|
|
86676
89282
|
},
|
|
86677
89283
|
|
|
89284
|
+
/**
|
|
89285
|
+
* If declared, the dropdown will behave as a modal dialog when in a desktop viewport size.
|
|
89286
|
+
*/
|
|
89287
|
+
desktopModal: {
|
|
89288
|
+
type: Boolean,
|
|
89289
|
+
reflect: true
|
|
89290
|
+
},
|
|
89291
|
+
|
|
86678
89292
|
/**
|
|
86679
89293
|
* If declared, the dropdown will only show by calling the API .show() public method.
|
|
86680
89294
|
*/
|
|
@@ -86962,6 +89576,15 @@ class AuroDropdown extends AuroElement {
|
|
|
86962
89576
|
|
|
86963
89577
|
disconnectedCallback() {
|
|
86964
89578
|
super.disconnectedCallback();
|
|
89579
|
+
this._clearPageInert();
|
|
89580
|
+
if (this._bibTabHandler) {
|
|
89581
|
+
this.removeEventListener('keydown', this._bibTabHandler);
|
|
89582
|
+
this._bibTabHandler = undefined;
|
|
89583
|
+
}
|
|
89584
|
+
if (this.focusTrap) {
|
|
89585
|
+
this.focusTrap.disconnect();
|
|
89586
|
+
this.focusTrap = undefined;
|
|
89587
|
+
}
|
|
86965
89588
|
if (this.floater) {
|
|
86966
89589
|
this.floater.hideBib('disconnect');
|
|
86967
89590
|
this.floater.disconnect();
|
|
@@ -86989,19 +89612,45 @@ class AuroDropdown extends AuroElement {
|
|
|
86989
89612
|
if (this.isPopoverVisible) {
|
|
86990
89613
|
// Fullscreen: use showModal() for native accessibility (inert outside, focus trap)
|
|
86991
89614
|
// Desktop: use show() for Floating UI positioning + FocusTrap for focus management
|
|
86992
|
-
|
|
86993
|
-
this.
|
|
89615
|
+
this.bibElement.value.open(this.isBibFullscreen);
|
|
89616
|
+
this.updateFocusTrap();
|
|
89617
|
+
|
|
89618
|
+
// Desktop modal: make siblings inert so content outside is not interactive
|
|
89619
|
+
if (this.desktopModal && !this.isBibFullscreen) {
|
|
89620
|
+
this._setPageInert();
|
|
89621
|
+
}
|
|
86994
89622
|
} else {
|
|
86995
89623
|
this.bibElement.value.close();
|
|
89624
|
+
this._clearPageInert();
|
|
86996
89625
|
}
|
|
86997
89626
|
}
|
|
86998
89627
|
|
|
86999
89628
|
// When fullscreen strategy changes while open, re-open dialog with correct mode
|
|
87000
89629
|
// (e.g. resizing from desktop → mobile while dropdown is open)
|
|
87001
89630
|
if (changedProperties.has('isBibFullscreen') && this.isPopoverVisible && this.bibElement.value) {
|
|
87002
|
-
const useModal = this.isBibFullscreen;
|
|
87003
89631
|
this.bibElement.value.close();
|
|
87004
|
-
this.bibElement.value.open(
|
|
89632
|
+
this.bibElement.value.open(this.isBibFullscreen);
|
|
89633
|
+
|
|
89634
|
+
// Re-initialize focus management for the new strategy
|
|
89635
|
+
this.updateFocusTrap();
|
|
89636
|
+
|
|
89637
|
+
// Toggle inert: desktop modal needs it, fullscreen showModal() handles it natively
|
|
89638
|
+
if (this.desktopModal && !this.isBibFullscreen) {
|
|
89639
|
+
this._setPageInert();
|
|
89640
|
+
} else {
|
|
89641
|
+
this._clearPageInert();
|
|
89642
|
+
}
|
|
89643
|
+
}
|
|
89644
|
+
|
|
89645
|
+
// Handle desktopModal toggled while the dropdown is already open.
|
|
89646
|
+
// Re-initialize focus trapping and page inert state to match the new mode.
|
|
89647
|
+
if (changedProperties.has('desktopModal') && this.isPopoverVisible && !this.isBibFullscreen) {
|
|
89648
|
+
this.updateFocusTrap();
|
|
89649
|
+
if (this.desktopModal) {
|
|
89650
|
+
this._setPageInert();
|
|
89651
|
+
} else {
|
|
89652
|
+
this._clearPageInert();
|
|
89653
|
+
}
|
|
87005
89654
|
}
|
|
87006
89655
|
}
|
|
87007
89656
|
|
|
@@ -87011,8 +89660,14 @@ class AuroDropdown extends AuroElement {
|
|
|
87011
89660
|
* @param {CustomEvent} event - The custom event that contains the dropdown toggle information.
|
|
87012
89661
|
*/
|
|
87013
89662
|
handleDropdownToggle(event) {
|
|
87014
|
-
this.updateFocusTrap();
|
|
87015
89663
|
this.isPopoverVisible = event.detail.expanded;
|
|
89664
|
+
|
|
89665
|
+
// Tear down FocusTrap when closing. Creation happens in updated()
|
|
89666
|
+
// after the dialog is open so getFocusableElements can find content.
|
|
89667
|
+
if (!this.isPopoverVisible) {
|
|
89668
|
+
this.updateFocusTrap();
|
|
89669
|
+
}
|
|
89670
|
+
|
|
87016
89671
|
const eventType = event.detail.eventType || "unknown";
|
|
87017
89672
|
if (!this.isPopoverVisible && this.hasFocus && eventType === "keydown") {
|
|
87018
89673
|
this.trigger.focus();
|
|
@@ -87111,19 +89766,194 @@ class AuroDropdown extends AuroElement {
|
|
|
87111
89766
|
* @private
|
|
87112
89767
|
*/
|
|
87113
89768
|
updateFocusTrap() {
|
|
89769
|
+
// Always clean up existing handlers/traps before setting up new ones
|
|
89770
|
+
// to prevent duplicate listeners on repeated calls.
|
|
89771
|
+
if (this._bibTabHandler) {
|
|
89772
|
+
this.removeEventListener('keydown', this._bibTabHandler);
|
|
89773
|
+
this._bibTabHandler = undefined;
|
|
89774
|
+
}
|
|
89775
|
+
|
|
89776
|
+
if (this.focusTrap) {
|
|
89777
|
+
this.focusTrap.disconnect();
|
|
89778
|
+
this.focusTrap = undefined;
|
|
89779
|
+
}
|
|
89780
|
+
|
|
87114
89781
|
if (this.isPopoverVisible) {
|
|
87115
89782
|
if (!this.isBibFullscreen) {
|
|
87116
|
-
|
|
87117
|
-
|
|
87118
|
-
|
|
89783
|
+
if (this.desktopModal) {
|
|
89784
|
+
// Desktop modal: trap focus only within the bib content.
|
|
89785
|
+
// Can't use FocusTrap on the bib element because keydown events
|
|
89786
|
+
// from slotted content bubble through the dropdown host (light DOM),
|
|
89787
|
+
// not through the bib (shadow projection target). Using FocusTrap
|
|
89788
|
+
// on the dropdown would include the trigger in the tab cycle.
|
|
89789
|
+
// Instead, listen for Tab on the dropdown and manually wrap focus
|
|
89790
|
+
// within the bib's focusable elements.
|
|
89791
|
+
this._bibTabHandler = (event) => {
|
|
89792
|
+
if (event.key !== 'Tab') {
|
|
89793
|
+
return;
|
|
89794
|
+
}
|
|
89795
|
+
|
|
89796
|
+
// Collect focusable elements from the bib content.
|
|
89797
|
+
const focusables = getFocusableElements(this.bibContent);
|
|
89798
|
+
|
|
89799
|
+
// Fallback: try from slotted content directly
|
|
89800
|
+
if (!focusables.length) {
|
|
89801
|
+
const slot = this.shadowRoot.querySelector('.slotContent slot');
|
|
89802
|
+
const assignedNodes = slot.assignedNodes({ flatten: true });
|
|
89803
|
+
|
|
89804
|
+
for (const node of assignedNodes) {
|
|
89805
|
+
if (node.nodeType === Node.ELEMENT_NODE) {
|
|
89806
|
+
focusables.push(...getFocusableElements(node));
|
|
89807
|
+
}
|
|
89808
|
+
}
|
|
89809
|
+
}
|
|
89810
|
+
|
|
89811
|
+
if (!focusables.length) {
|
|
89812
|
+
return;
|
|
89813
|
+
}
|
|
89814
|
+
|
|
89815
|
+
event.preventDefault();
|
|
89816
|
+
|
|
89817
|
+
const direction = event.shiftKey ? -1 : 1; // eslint-disable-line no-magic-numbers
|
|
89818
|
+
|
|
89819
|
+
// Walk the active element chain through shadow roots
|
|
89820
|
+
const actives = this._getActiveElements();
|
|
89821
|
+
|
|
89822
|
+
let idx = focusables.findIndex((el) => actives.includes(el));
|
|
89823
|
+
|
|
89824
|
+
if (idx === -1) { // eslint-disable-line no-magic-numbers
|
|
89825
|
+
// Focus is not on a known element — move to first/last
|
|
89826
|
+
idx = direction === 1 ? -1 : focusables.length; // eslint-disable-line no-magic-numbers
|
|
89827
|
+
}
|
|
89828
|
+
|
|
89829
|
+
// Try each element in order, skipping any that can't receive focus
|
|
89830
|
+
// (e.g. hidden elements, elements in collapsed sections)
|
|
89831
|
+
for (let index = 0; index < focusables.length; index++) { // eslint-disable-line no-plusplus
|
|
89832
|
+
let nextIdx = idx + direction;
|
|
89833
|
+
|
|
89834
|
+
// Wrap around
|
|
89835
|
+
if (nextIdx < 0) {
|
|
89836
|
+
nextIdx = focusables.length - 1;
|
|
89837
|
+
} else if (nextIdx >= focusables.length) {
|
|
89838
|
+
nextIdx = 0;
|
|
89839
|
+
}
|
|
89840
|
+
|
|
89841
|
+
focusables[nextIdx].focus();
|
|
89842
|
+
|
|
89843
|
+
// Verify focus actually moved to the target
|
|
89844
|
+
const newActives = this._getActiveElements();
|
|
89845
|
+
|
|
89846
|
+
if (newActives.includes(focusables[nextIdx])) {
|
|
89847
|
+
return;
|
|
89848
|
+
}
|
|
89849
|
+
|
|
89850
|
+
// Focus didn't stick — skip this element and try the next
|
|
89851
|
+
idx = nextIdx;
|
|
89852
|
+
}
|
|
89853
|
+
};
|
|
89854
|
+
this.addEventListener('keydown', this._bibTabHandler);
|
|
89855
|
+
|
|
89856
|
+
// Move initial focus into the bib content, matching FocusTrap behavior
|
|
89857
|
+
requestAnimationFrame(() => {
|
|
89858
|
+
const focusables = getFocusableElements(this.bibContent);
|
|
89859
|
+
if (focusables.length) {
|
|
89860
|
+
focusables[0].focus();
|
|
89861
|
+
}
|
|
89862
|
+
});
|
|
89863
|
+
} else {
|
|
89864
|
+
// Normal desktop: use FocusTrap on the bib element
|
|
89865
|
+
this.focusTrap = new FocusTrap(this.bibContent);
|
|
89866
|
+
this.focusTrap.focusFirstElement();
|
|
89867
|
+
}
|
|
87119
89868
|
}
|
|
87120
89869
|
// Fullscreen: showModal() provides native focus trapping
|
|
89870
|
+
}
|
|
89871
|
+
}
|
|
89872
|
+
|
|
89873
|
+
/**
|
|
89874
|
+
* Returns the chain of active (focused) elements through shadow roots.
|
|
89875
|
+
* @private
|
|
89876
|
+
* @returns {Array<HTMLElement>}
|
|
89877
|
+
*/
|
|
89878
|
+
_getActiveElements() {
|
|
89879
|
+
let { activeElement } = document;
|
|
89880
|
+
const actives = [activeElement];
|
|
89881
|
+
|
|
89882
|
+
while (activeElement?.shadowRoot?.activeElement) {
|
|
89883
|
+
activeElement = activeElement.shadowRoot.activeElement;
|
|
89884
|
+
actives.push(activeElement);
|
|
89885
|
+
}
|
|
89886
|
+
|
|
89887
|
+
return actives;
|
|
89888
|
+
}
|
|
89889
|
+
|
|
89890
|
+
/**
|
|
89891
|
+
* Sets `inert` on sibling elements of the dropdown's top-level host
|
|
89892
|
+
* so that content outside the dropdown is not interactive while the modal is open.
|
|
89893
|
+
* Walks up through shadow DOM boundaries to find the outermost host element
|
|
89894
|
+
* in the light DOM, then sets `inert` on siblings at each ancestor level
|
|
89895
|
+
* to ensure all page content outside the host subtree is inert.
|
|
89896
|
+
* @private
|
|
89897
|
+
*/
|
|
89898
|
+
_setPageInert() {
|
|
89899
|
+
if (this._inertSiblings) {
|
|
87121
89900
|
return;
|
|
87122
89901
|
}
|
|
87123
89902
|
|
|
87124
|
-
|
|
87125
|
-
|
|
87126
|
-
|
|
89903
|
+
this._inertSiblings = [];
|
|
89904
|
+
|
|
89905
|
+
// Walk up through shadow DOM boundaries to find the topmost host
|
|
89906
|
+
// element in the light DOM. For example, if this dropdown is inside
|
|
89907
|
+
// auro-datepicker's shadow DOM, we walk up to the datepicker element
|
|
89908
|
+
// so we set inert on its siblings — not on the datepicker itself.
|
|
89909
|
+
let host = this;
|
|
89910
|
+
while (host.getRootNode() instanceof ShadowRoot) {
|
|
89911
|
+
host = host.getRootNode().host;
|
|
89912
|
+
}
|
|
89913
|
+
|
|
89914
|
+
// Walk up the ancestor chain, inerting siblings at each level
|
|
89915
|
+
// to ensure the entire page outside the host subtree is inert.
|
|
89916
|
+
// Uses a reference counter (data-auro-inert-count) so multiple
|
|
89917
|
+
// simultaneous modal dropdowns share inert state safely.
|
|
89918
|
+
let current = host;
|
|
89919
|
+
while (current.parentElement) {
|
|
89920
|
+
const parent = current.parentElement;
|
|
89921
|
+
for (const sibling of parent.children) {
|
|
89922
|
+
if (sibling !== current) {
|
|
89923
|
+
const count = parseInt(sibling.dataset.auroInertCount || '0', 10);
|
|
89924
|
+
if (count === 0) {
|
|
89925
|
+
sibling.dataset.auroInertWas = sibling.inert ? 'true' : 'false';
|
|
89926
|
+
}
|
|
89927
|
+
sibling.dataset.auroInertCount = String(count + 1);
|
|
89928
|
+
sibling.inert = true;
|
|
89929
|
+
this._inertSiblings.push(sibling);
|
|
89930
|
+
}
|
|
89931
|
+
}
|
|
89932
|
+
current = parent;
|
|
89933
|
+
}
|
|
89934
|
+
}
|
|
89935
|
+
|
|
89936
|
+
/**
|
|
89937
|
+
* Restores `inert` state on siblings that were tracked by `_setPageInert`.
|
|
89938
|
+
* Uses reference counting so inert is only cleared when the last modal
|
|
89939
|
+
* dropdown releases a given element. Preserves the original inert state
|
|
89940
|
+
* so externally-inerted elements are not inadvertently re-enabled.
|
|
89941
|
+
* @private
|
|
89942
|
+
*/
|
|
89943
|
+
_clearPageInert() {
|
|
89944
|
+
if (this._inertSiblings) {
|
|
89945
|
+
for (const sibling of this._inertSiblings) {
|
|
89946
|
+
const count = parseInt(sibling.dataset.auroInertCount || '1', 10) - 1;
|
|
89947
|
+
if (count <= 0) {
|
|
89948
|
+
const wasInert = sibling.dataset.auroInertWas === 'true';
|
|
89949
|
+
delete sibling.dataset.auroInertCount;
|
|
89950
|
+
delete sibling.dataset.auroInertWas;
|
|
89951
|
+
sibling.inert = wasInert;
|
|
89952
|
+
} else {
|
|
89953
|
+
sibling.dataset.auroInertCount = String(count);
|
|
89954
|
+
}
|
|
89955
|
+
}
|
|
89956
|
+
this._inertSiblings = undefined;
|
|
87127
89957
|
}
|
|
87128
89958
|
}
|
|
87129
89959
|
|
|
@@ -87362,6 +90192,7 @@ class AuroDropdown extends AuroElement {
|
|
|
87362
90192
|
shape="${this.shape}"
|
|
87363
90193
|
?data-show="${this.isPopoverVisible}"
|
|
87364
90194
|
?isfullscreen="${this.isBibFullscreen}"
|
|
90195
|
+
?desktopmodal="${this.desktopModal}"
|
|
87365
90196
|
.dialogLabel="${this.bibDialogLabel}"
|
|
87366
90197
|
${n$6(this.bibElement)}
|
|
87367
90198
|
>
|
|
@@ -87729,6 +90560,14 @@ class AuroBibtemplate extends i$3 {
|
|
|
87729
90560
|
large: {
|
|
87730
90561
|
type: Boolean,
|
|
87731
90562
|
reflect: true
|
|
90563
|
+
},
|
|
90564
|
+
|
|
90565
|
+
/**
|
|
90566
|
+
* If declared, the footer slot will be rendered even when not in fullscreen mode.
|
|
90567
|
+
*/
|
|
90568
|
+
showFooter: {
|
|
90569
|
+
type: Boolean,
|
|
90570
|
+
reflect: true
|
|
87732
90571
|
}
|
|
87733
90572
|
};
|
|
87734
90573
|
}
|
|
@@ -87831,7 +90670,7 @@ class AuroBibtemplate extends i$3 {
|
|
|
87831
90670
|
<slot></slot>
|
|
87832
90671
|
</div>
|
|
87833
90672
|
|
|
87834
|
-
${this.isFullscreen ? u$d`
|
|
90673
|
+
${this.isFullscreen || this.showFooter ? u$d`
|
|
87835
90674
|
<div id="footerContainer">
|
|
87836
90675
|
<slot name="footer"></slot>
|
|
87837
90676
|
</div>` : null}
|
|
@@ -88068,7 +90907,7 @@ class AuroHelpText extends i$3 {
|
|
|
88068
90907
|
}
|
|
88069
90908
|
}
|
|
88070
90909
|
|
|
88071
|
-
var formkitVersion = '
|
|
90910
|
+
var formkitVersion = '202606081904';
|
|
88072
90911
|
|
|
88073
90912
|
var styleCss = i$5`.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}`;
|
|
88074
90913
|
|