@aurodesignsystem-dev/auro-formkit 0.0.0-pr1497.0 → 0.0.0-pr1497.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components/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 +2700 -1621
- package/package.json +8 -8
|
@@ -10631,6 +10631,7 @@ class UtilitiesCalendarRender {
|
|
|
10631
10631
|
updateCentralDate(elem, date) {
|
|
10632
10632
|
// if date is already iso formatted string, we can skip the conversion and validation step
|
|
10633
10633
|
if (typeof date === 'string' && dateFormatter$1.isValidDate(date)) {
|
|
10634
|
+
// eslint-disable-next-line
|
|
10634
10635
|
elem.centralDate = date.replace(/(\d{4})-(\d{2})-(\d{2})/, '$1-$2-01'); // Set to first of the month
|
|
10635
10636
|
return;
|
|
10636
10637
|
}
|
|
@@ -10715,13 +10716,10 @@ class UtilitiesCalendarRender {
|
|
|
10715
10716
|
// 2. Start by assuming we can render the max number of months.
|
|
10716
10717
|
let calendarCount = maxRenderableMonths;
|
|
10717
10718
|
|
|
10718
|
-
// 3. If
|
|
10719
|
+
// 3. If maximumRenderableMonths() returns 0 (e.g. an invalid/empty defined range),
|
|
10720
|
+
// fall back to the min/max date range so something is rendered.
|
|
10719
10721
|
if (!calendarCount && elem.minDate && elem.maxDate) {
|
|
10720
|
-
|
|
10721
|
-
|
|
10722
|
-
if (monthsInRange < maxRenderableMonths) {
|
|
10723
|
-
calendarCount = monthsInRange;
|
|
10724
|
-
}
|
|
10722
|
+
calendarCount = this.util.monthDiff(elem.minDateObject, elem.maxDateObject);
|
|
10725
10723
|
}
|
|
10726
10724
|
|
|
10727
10725
|
if (elem.numCalendars !== calendarCount) {
|
|
@@ -10769,7 +10767,6 @@ class UtilitiesCalendarRender {
|
|
|
10769
10767
|
.max="${elem.max}"
|
|
10770
10768
|
?noRange="${elem.noRange}"
|
|
10771
10769
|
.monthFirst="${elem.monthFirst}"
|
|
10772
|
-
.hoveredDate="${elem.hoveredDate}"
|
|
10773
10770
|
.dateTo="${elem.dateTo}"
|
|
10774
10771
|
.dateFrom="${elem.dateFrom}"
|
|
10775
10772
|
.locale="${elem.locale}"
|
|
@@ -10802,11 +10799,11 @@ var snowflakeStyle = i$3`:host([layout*=snowflake]) [auro-input]{flex:1;text-ali
|
|
|
10802
10799
|
|
|
10803
10800
|
var snowflakeColors = i$3`:host([layout=snowflake]) [auro-dropdown]:not(:is([error],.hasFocus)){--ds-auro-dropdown-trigger-border-color: transparent}`;
|
|
10804
10801
|
|
|
10805
|
-
var styleCss$7 = i$3`.body-default{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-default-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-default-font-size, 1rem);line-height:var(--wcss-body-default-line-height, 1.5rem)}.body-default-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-default-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-default-emphasized-font-size, 1rem);line-height:var(--wcss-body-default-emphasized-line-height, 1.5rem)}.body-lg{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-lg-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-lg-font-size, 1.125rem);line-height:var(--wcss-body-lg-line-height, 1.625rem)}.body-lg-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-lg-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-lg-emphasized-font-size, 1.125rem);line-height:var(--wcss-body-lg-emphasized-line-height, 1.625rem)}.body-sm{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-sm-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-sm-font-size, 0.875rem);line-height:var(--wcss-body-sm-line-height, 1.25rem)}.body-sm-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-sm-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-sm-emphasized-font-size, 0.875rem);line-height:var(--wcss-body-sm-emphasized-line-height, 1.25rem)}.body-xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-xs-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-xs-font-size, 0.75rem);line-height:var(--wcss-body-xs-line-height, 1rem)}.body-xs-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-xs-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-xs-emphasized-font-size, 0.75rem);line-height:var(--wcss-body-xs-emphasized-line-height, 1rem)}.body-2xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-2xs-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-2xs-font-size, 0.625rem);line-height:var(--wcss-body-2xs-line-height, 0.875rem)}.body-2xs-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-2xs-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-2xs-emphasized-font-size, 0.625rem);line-height:var(--wcss-body-2xs-emphasized-line-height, 0.875rem)}.display-2xl{font-family:var(--wcss-display-2xl-family, "AS Circular"),var(--wcss-display-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-2xl-weight, 300);line-height:var(--wcss-display-2xl-line-height, 1.3);font-size:var(--wcss-display-2xl-font-size, clamp(3.5rem, 6vw, 5.375rem));letter-spacing:var(--wcss-display-2xl-letter-spacing, 0)}.display-xl{font-family:var(--wcss-display-xl-family, "AS Circular"),var(--wcss-display-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-xl-weight, 300);line-height:var(--wcss-display-xl-line-height, 1.3);font-size:var(--wcss-display-xl-font-size, clamp(3rem, 5.3333333333vw, 4.5rem));letter-spacing:var(--wcss-display-xl-letter-spacing, 0)}.display-lg{font-family:var(--wcss-display-lg-family, "AS Circular"),var(--wcss-display-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-lg-weight, 300);line-height:var(--wcss-display-lg-line-height, 1.3);font-size:var(--wcss-display-lg-font-size, clamp(2.75rem, 4.6666666667vw, 4rem));letter-spacing:var(--wcss-display-lg-letter-spacing, 0)}.display-md{font-family:var(--wcss-display-md-family, "AS Circular"),var(--wcss-display-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-md-weight, 300);line-height:var(--wcss-display-md-line-height, 1.3);font-size:var(--wcss-display-md-font-size, clamp(2.5rem, 4vw, 3.5rem));letter-spacing:var(--wcss-display-md-letter-spacing, 0)}.display-sm{font-family:var(--wcss-display-sm-family, "AS Circular"),var(--wcss-display-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-sm-weight, 300);line-height:var(--wcss-display-sm-line-height, 1.3);font-size:var(--wcss-display-sm-font-size, clamp(2rem, 3.6666666667vw, 3rem));letter-spacing:var(--wcss-display-sm-letter-spacing, 0)}.display-xs{font-family:var(--wcss-display-xs-family, "AS Circular"),var(--wcss-display-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-xs-weight, 300);line-height:var(--wcss-display-xs-line-height, 1.3);font-size:var(--wcss-display-xs-font-size, clamp(1.75rem, 3vw, 2.375rem));letter-spacing:var(--wcss-display-xs-letter-spacing, 0)}.heading-xl{font-family:var(--wcss-heading-xl-family, "AS Circular"),var(--wcss-heading-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-xl-weight, 300);line-height:var(--wcss-heading-xl-line-height, 1.3);font-size:var(--wcss-heading-xl-font-size, clamp(2rem, 3vw, 2.5rem));letter-spacing:var(--wcss-heading-xl-letter-spacing, 0)}.heading-lg{font-family:var(--wcss-heading-lg-family, "AS Circular"),var(--wcss-heading-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-lg-weight, 300);line-height:var(--wcss-heading-lg-line-height, 1.3);font-size:var(--wcss-heading-lg-font-size, clamp(1.75rem, 2.6666666667vw, 2.25rem));letter-spacing:var(--wcss-heading-lg-letter-spacing, 0)}.heading-md{font-family:var(--wcss-heading-md-family, "AS Circular"),var(--wcss-heading-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-md-weight, 300);line-height:var(--wcss-heading-md-line-height, 1.3);font-size:var(--wcss-heading-md-font-size, clamp(1.625rem, 2.3333333333vw, 1.75rem));letter-spacing:var(--wcss-heading-md-letter-spacing, 0)}.heading-sm{font-family:var(--wcss-heading-sm-family, "AS Circular"),var(--wcss-heading-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-sm-weight, 300);line-height:var(--wcss-heading-sm-line-height, 1.3);font-size:var(--wcss-heading-sm-font-size, clamp(1.375rem, 2vw, 1.5rem));letter-spacing:var(--wcss-heading-sm-letter-spacing, 0)}.heading-xs{font-family:var(--wcss-heading-xs-family, "AS Circular"),var(--wcss-heading-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-xs-weight, 300);line-height:var(--wcss-heading-xs-line-height, 1.3);font-size:var(--wcss-heading-xs-font-size, clamp(1.25rem, 1.6666666667vw, 1.25rem));letter-spacing:var(--wcss-heading-xs-letter-spacing, 0)}.heading-2xs{font-family:var(--wcss-heading-2xs-family, "AS Circular"),var(--wcss-heading-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-2xs-weight, 300);line-height:var(--wcss-heading-2xs-line-height, 1.3);font-size:var(--wcss-heading-2xs-font-size, clamp(1.125rem, 1.5vw, 1.125rem));letter-spacing:var(--wcss-heading-2xs-letter-spacing, 0)}.accent-2xl{font-family:var(--wcss-accent-2xl-family, "Good OT"),var(--wcss-accent-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-2xl-weight, 450);line-height:var(--wcss-accent-2xl-line-height, 1);font-size:var(--wcss-accent-2xl-font-size, clamp(2rem, 3.1666666667vw, 2.375rem));letter-spacing:var(--wcss-accent-2xl-letter-spacing, 0.05em);text-transform:uppercase}.accent-xl{font-family:var(--wcss-accent-xl-family, "Good OT"),var(--wcss-accent-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-xl-weight, 450);line-height:var(--wcss-accent-xl-line-height, 1.3);font-size:var(--wcss-accent-xl-font-size, clamp(1.625rem, 2.3333333333vw, 2rem));letter-spacing:var(--wcss-accent-xl-letter-spacing, 0.05em);text-transform:uppercase}.accent-lg{font-family:var(--wcss-accent-lg-family, "Good OT"),var(--wcss-accent-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-lg-weight, 450);line-height:var(--wcss-accent-lg-line-height, 1.3);font-size:var(--wcss-accent-lg-font-size, clamp(1.5rem, 2.1666666667vw, 1.75rem));letter-spacing:var(--wcss-accent-lg-letter-spacing, 0.05em);text-transform:uppercase}.accent-md{font-family:var(--wcss-accent-md-family, "Good OT"),var(--wcss-accent-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-md-weight, 500);line-height:var(--wcss-accent-md-line-height, 1.3);font-size:var(--wcss-accent-md-font-size, clamp(1.375rem, 1.8333333333vw, 1.5rem));letter-spacing:var(--wcss-accent-md-letter-spacing, 0.05em);text-transform:uppercase}.accent-sm{font-family:var(--wcss-accent-sm-family, "Good OT"),var(--wcss-accent-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-sm-weight, 500);line-height:var(--wcss-accent-sm-line-height, 1.3);font-size:var(--wcss-accent-sm-font-size, clamp(1.125rem, 1.5vw, 1.25rem));letter-spacing:var(--wcss-accent-sm-letter-spacing, 0.05em);text-transform:uppercase}.accent-xs{font-family:var(--wcss-accent-xs-family, "Good OT"),var(--wcss-accent-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-xs-weight, 500);line-height:var(--wcss-accent-xs-line-height, 1.3);font-size:var(--wcss-accent-xs-font-size, clamp(1rem, 1.3333333333vw, 1rem));letter-spacing:var(--wcss-accent-xs-letter-spacing, 0.1em);text-transform:uppercase}.accent-2xs{font-family:var(--wcss-accent-2xs-family, "Good OT"),var(--wcss-accent-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-2xs-weight, 450);line-height:var(--wcss-accent-2xs-line-height, 1.3);font-size:var(--wcss-accent-2xs-font-size, clamp(0.875rem, 1.1666666667vw, 0.875rem));letter-spacing:var(--wcss-accent-2xs-letter-spacing, 0.1em);text-transform:uppercase}:host{--calendar-width: 336px;--mobile-footer-height: 150px;--mobile-header-height: 68px;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:""}`;
|
|
10802
|
+
var styleCss$7 = i$3`.body-default{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-default-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-default-font-size, 1rem);line-height:var(--wcss-body-default-line-height, 1.5rem)}.body-default-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-default-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-default-emphasized-font-size, 1rem);line-height:var(--wcss-body-default-emphasized-line-height, 1.5rem)}.body-lg{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-lg-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-lg-font-size, 1.125rem);line-height:var(--wcss-body-lg-line-height, 1.625rem)}.body-lg-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-lg-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-lg-emphasized-font-size, 1.125rem);line-height:var(--wcss-body-lg-emphasized-line-height, 1.625rem)}.body-sm{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-sm-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-sm-font-size, 0.875rem);line-height:var(--wcss-body-sm-line-height, 1.25rem)}.body-sm-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-sm-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-sm-emphasized-font-size, 0.875rem);line-height:var(--wcss-body-sm-emphasized-line-height, 1.25rem)}.body-xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-xs-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-xs-font-size, 0.75rem);line-height:var(--wcss-body-xs-line-height, 1rem)}.body-xs-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-xs-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-xs-emphasized-font-size, 0.75rem);line-height:var(--wcss-body-xs-emphasized-line-height, 1rem)}.body-2xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-2xs-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-2xs-font-size, 0.625rem);line-height:var(--wcss-body-2xs-line-height, 0.875rem)}.body-2xs-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-2xs-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-2xs-emphasized-font-size, 0.625rem);line-height:var(--wcss-body-2xs-emphasized-line-height, 0.875rem)}.display-2xl{font-family:var(--wcss-display-2xl-family, "AS Circular"),var(--wcss-display-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-2xl-weight, 300);line-height:var(--wcss-display-2xl-line-height, 1.3);font-size:var(--wcss-display-2xl-font-size, clamp(3.5rem, 6vw, 5.375rem));letter-spacing:var(--wcss-display-2xl-letter-spacing, 0)}.display-xl{font-family:var(--wcss-display-xl-family, "AS Circular"),var(--wcss-display-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-xl-weight, 300);line-height:var(--wcss-display-xl-line-height, 1.3);font-size:var(--wcss-display-xl-font-size, clamp(3rem, 5.3333333333vw, 4.5rem));letter-spacing:var(--wcss-display-xl-letter-spacing, 0)}.display-lg{font-family:var(--wcss-display-lg-family, "AS Circular"),var(--wcss-display-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-lg-weight, 300);line-height:var(--wcss-display-lg-line-height, 1.3);font-size:var(--wcss-display-lg-font-size, clamp(2.75rem, 4.6666666667vw, 4rem));letter-spacing:var(--wcss-display-lg-letter-spacing, 0)}.display-md{font-family:var(--wcss-display-md-family, "AS Circular"),var(--wcss-display-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-md-weight, 300);line-height:var(--wcss-display-md-line-height, 1.3);font-size:var(--wcss-display-md-font-size, clamp(2.5rem, 4vw, 3.5rem));letter-spacing:var(--wcss-display-md-letter-spacing, 0)}.display-sm{font-family:var(--wcss-display-sm-family, "AS Circular"),var(--wcss-display-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-sm-weight, 300);line-height:var(--wcss-display-sm-line-height, 1.3);font-size:var(--wcss-display-sm-font-size, clamp(2rem, 3.6666666667vw, 3rem));letter-spacing:var(--wcss-display-sm-letter-spacing, 0)}.display-xs{font-family:var(--wcss-display-xs-family, "AS Circular"),var(--wcss-display-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-xs-weight, 300);line-height:var(--wcss-display-xs-line-height, 1.3);font-size:var(--wcss-display-xs-font-size, clamp(1.75rem, 3vw, 2.375rem));letter-spacing:var(--wcss-display-xs-letter-spacing, 0)}.heading-xl{font-family:var(--wcss-heading-xl-family, "AS Circular"),var(--wcss-heading-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-xl-weight, 300);line-height:var(--wcss-heading-xl-line-height, 1.3);font-size:var(--wcss-heading-xl-font-size, clamp(2rem, 3vw, 2.5rem));letter-spacing:var(--wcss-heading-xl-letter-spacing, 0)}.heading-lg{font-family:var(--wcss-heading-lg-family, "AS Circular"),var(--wcss-heading-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-lg-weight, 300);line-height:var(--wcss-heading-lg-line-height, 1.3);font-size:var(--wcss-heading-lg-font-size, clamp(1.75rem, 2.6666666667vw, 2.25rem));letter-spacing:var(--wcss-heading-lg-letter-spacing, 0)}.heading-md{font-family:var(--wcss-heading-md-family, "AS Circular"),var(--wcss-heading-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-md-weight, 300);line-height:var(--wcss-heading-md-line-height, 1.3);font-size:var(--wcss-heading-md-font-size, clamp(1.625rem, 2.3333333333vw, 1.75rem));letter-spacing:var(--wcss-heading-md-letter-spacing, 0)}.heading-sm{font-family:var(--wcss-heading-sm-family, "AS Circular"),var(--wcss-heading-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-sm-weight, 300);line-height:var(--wcss-heading-sm-line-height, 1.3);font-size:var(--wcss-heading-sm-font-size, clamp(1.375rem, 2vw, 1.5rem));letter-spacing:var(--wcss-heading-sm-letter-spacing, 0)}.heading-xs{font-family:var(--wcss-heading-xs-family, "AS Circular"),var(--wcss-heading-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-xs-weight, 300);line-height:var(--wcss-heading-xs-line-height, 1.3);font-size:var(--wcss-heading-xs-font-size, clamp(1.25rem, 1.6666666667vw, 1.25rem));letter-spacing:var(--wcss-heading-xs-letter-spacing, 0)}.heading-2xs{font-family:var(--wcss-heading-2xs-family, "AS Circular"),var(--wcss-heading-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-2xs-weight, 300);line-height:var(--wcss-heading-2xs-line-height, 1.3);font-size:var(--wcss-heading-2xs-font-size, clamp(1.125rem, 1.5vw, 1.125rem));letter-spacing:var(--wcss-heading-2xs-letter-spacing, 0)}.accent-2xl{font-family:var(--wcss-accent-2xl-family, "Good OT"),var(--wcss-accent-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-2xl-weight, 450);line-height:var(--wcss-accent-2xl-line-height, 1);font-size:var(--wcss-accent-2xl-font-size, clamp(2rem, 3.1666666667vw, 2.375rem));letter-spacing:var(--wcss-accent-2xl-letter-spacing, 0.05em);text-transform:uppercase}.accent-xl{font-family:var(--wcss-accent-xl-family, "Good OT"),var(--wcss-accent-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-xl-weight, 450);line-height:var(--wcss-accent-xl-line-height, 1.3);font-size:var(--wcss-accent-xl-font-size, clamp(1.625rem, 2.3333333333vw, 2rem));letter-spacing:var(--wcss-accent-xl-letter-spacing, 0.05em);text-transform:uppercase}.accent-lg{font-family:var(--wcss-accent-lg-family, "Good OT"),var(--wcss-accent-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-lg-weight, 450);line-height:var(--wcss-accent-lg-line-height, 1.3);font-size:var(--wcss-accent-lg-font-size, clamp(1.5rem, 2.1666666667vw, 1.75rem));letter-spacing:var(--wcss-accent-lg-letter-spacing, 0.05em);text-transform:uppercase}.accent-md{font-family:var(--wcss-accent-md-family, "Good OT"),var(--wcss-accent-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-md-weight, 500);line-height:var(--wcss-accent-md-line-height, 1.3);font-size:var(--wcss-accent-md-font-size, clamp(1.375rem, 1.8333333333vw, 1.5rem));letter-spacing:var(--wcss-accent-md-letter-spacing, 0.05em);text-transform:uppercase}.accent-sm{font-family:var(--wcss-accent-sm-family, "Good OT"),var(--wcss-accent-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-sm-weight, 500);line-height:var(--wcss-accent-sm-line-height, 1.3);font-size:var(--wcss-accent-sm-font-size, clamp(1.125rem, 1.5vw, 1.25rem));letter-spacing:var(--wcss-accent-sm-letter-spacing, 0.05em);text-transform:uppercase}.accent-xs{font-family:var(--wcss-accent-xs-family, "Good OT"),var(--wcss-accent-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-xs-weight, 500);line-height:var(--wcss-accent-xs-line-height, 1.3);font-size:var(--wcss-accent-xs-font-size, clamp(1rem, 1.3333333333vw, 1rem));letter-spacing:var(--wcss-accent-xs-letter-spacing, 0.1em);text-transform:uppercase}.accent-2xs{font-family:var(--wcss-accent-2xs-family, "Good OT"),var(--wcss-accent-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-2xs-weight, 450);line-height:var(--wcss-accent-2xs-line-height, 1.3);font-size:var(--wcss-accent-2xs-font-size, clamp(0.875rem, 1.1666666667vw, 0.875rem));letter-spacing:var(--wcss-accent-2xs-letter-spacing, 0.1em);text-transform:uppercase}:host{--calendar-width: 336px;--mobile-footer-height: 150px;--mobile-header-height: 68px;--desktop-footer-height: 80px;height:100vh;height:100dvh}.calendars{display:flex;flex-direction:row}.calendars:focus{outline:none}.calendarNavButtons{position:absolute;z-index:1;top:var(--ds-size-200, 1rem);right:var(--ds-size-50, 0.25rem);left:var(--ds-size-50, 0.25rem)}.calendarNavBtn{display:flex;width:var(--ds-size-500, 2.5rem);height:var(--ds-size-500, 2.5rem);align-items:center;justify-content:center;border-width:1px;border-style:solid;border-radius:50%;cursor:pointer}.prevMonth,.nextMonth{position:absolute;top:0}.prevMonth{left:0}.nextMonth{right:0}.headerActions{padding:0 var(--ds-size-200, 1rem)}.mobileHeader{width:100%;height:var(--mobile-header-height);z-index:1;align-items:center;flex-direction:row}.headerDateFrom,.headerDateTo{display:flex;height:var(--mobile-header-height);flex:1;flex-direction:column;justify-content:center;padding:0 var(--ds-size-150, 0.75rem) 0 var(--ds-size-200, 1rem)}.mobileDateLabel{padding:var(--ds-size-25, 0.125rem) 0}.mobileFooter{display:none;width:100%;align-items:flex-end;flex-direction:column;justify-content:flex-end}.mobileFooterActions{position:relative;bottom:0;left:50%;display:none;width:calc(100% - var(--ds-size-200, 1rem)*2);align-items:flex-end;flex-direction:column;justify-content:flex-end;padding:var(--ds-size-150) calc(var(--ds-size-200, 1rem));transform:translateX(-50%)}.mobileFooterActions auro-button{width:100%}.calendarWrapper.hasFooter{padding-bottom:var(--desktop-footer-height)}:host([isfullscreen]){width:100%;max-height:100dvh;overflow:hidden}:host([isfullscreen]) .prevMonth,:host([isfullscreen]) .nextMonth{display:none}:host([isfullscreen]) .mobileHeader,:host([isfullscreen]) .mobileFooter,:host([isfullscreen]) .mobileFooterActions{display:flex}:host([isfullscreen]) .calendarWrapper{display:flex;flex-direction:column}:host([isfullscreen]) .calendars{display:flex;flex-direction:column;flex:1;align-items:center;width:100%;overscroll-behavior:contain}:host([isfullscreen]) .calendars:after{display:block;width:100%;height:var(--mobile-footer-height);content:""}.sr-only{position:absolute;overflow:hidden;clip:rect(0, 0, 0, 0);width:1px;height:1px;margin:-1px;padding:0;border:0;white-space:nowrap}`;
|
|
10806
10803
|
|
|
10807
10804
|
var colorCss$7 = i$3`.calendarNavBtn{border-color:var(--ds-auro-calendar-nav-btn-border-color);background-color:var(--ds-auro-calendar-nav-btn-container-color);color:var(--ds-auro-calendar-nav-btn-chevron-color)}.calendarNavBtn:hover{--ds-auro-calendar-nav-btn-container-color: var(--ds-advanced-color-state-background-hover, #f2f2f2);--ds-auro-calendar-nav-btn-border-color: var(--ds-basic-color-brand-primary, #01426a)}.calendarNavBtn:focus{--ds-auro-calendar-nav-btn-border-color: var(--ds-basic-color-brand-primary, #01426a)}.calendarNavBtn:active{--ds-auro-calendar-nav-btn-border-color: var(--ds-basic-color-brand-primary, #01426a);box-shadow:inset 0 0 0 1px var(--ds-auro-calendar-nav-btn-border-color)}.mobileHeader{background-color:var(--ds-auro-calendar-mobile-header-container-color)}.mobileDateLabel{color:var(--ds-auro-calendar-mobile-header-text-color)}:host(:not([noRange])) .headerDateTo:after{background-color:var(--ds-auro-calendar-mobile-header-divider-color)}::slotted([slot="bib.fullscreen.fromStr"]),::slotted([slot=mobileDateToStr]){color:var(--ds-auro-datepicker-placeholder-color)}@media screen and (max-width: 576px){.calendarNavBtn{--ds-auro-calendar-nav-btn-border-color: var(--ds-basic-color-brand-primary, #01426a)}}`;
|
|
10808
10805
|
|
|
10809
|
-
var styleCss$6 = i$3`:focus:not(:focus-visible){outline:3px solid transparent}.body-default{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-default-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-default-font-size, 1rem);line-height:var(--wcss-body-default-line-height, 1.5rem)}.body-default-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-default-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-default-emphasized-font-size, 1rem);line-height:var(--wcss-body-default-emphasized-line-height, 1.5rem)}.body-lg{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-lg-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-lg-font-size, 1.125rem);line-height:var(--wcss-body-lg-line-height, 1.625rem)}.body-lg-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-lg-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-lg-emphasized-font-size, 1.125rem);line-height:var(--wcss-body-lg-emphasized-line-height, 1.625rem)}.body-sm{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-sm-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-sm-font-size, 0.875rem);line-height:var(--wcss-body-sm-line-height, 1.25rem)}.body-sm-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-sm-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-sm-emphasized-font-size, 0.875rem);line-height:var(--wcss-body-sm-emphasized-line-height, 1.25rem)}.body-xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-xs-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-xs-font-size, 0.75rem);line-height:var(--wcss-body-xs-line-height, 1rem)}.body-xs-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-xs-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-xs-emphasized-font-size, 0.75rem);line-height:var(--wcss-body-xs-emphasized-line-height, 1rem)}.body-2xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-2xs-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-2xs-font-size, 0.625rem);line-height:var(--wcss-body-2xs-line-height, 0.875rem)}.body-2xs-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-2xs-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-2xs-emphasized-font-size, 0.625rem);line-height:var(--wcss-body-2xs-emphasized-line-height, 0.875rem)}.display-2xl{font-family:var(--wcss-display-2xl-family, "AS Circular"),var(--wcss-display-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-2xl-weight, 300);line-height:var(--wcss-display-2xl-line-height, 1.3);font-size:var(--wcss-display-2xl-font-size, clamp(3.5rem, 6vw, 5.375rem));letter-spacing:var(--wcss-display-2xl-letter-spacing, 0)}.display-xl{font-family:var(--wcss-display-xl-family, "AS Circular"),var(--wcss-display-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-xl-weight, 300);line-height:var(--wcss-display-xl-line-height, 1.3);font-size:var(--wcss-display-xl-font-size, clamp(3rem, 5.3333333333vw, 4.5rem));letter-spacing:var(--wcss-display-xl-letter-spacing, 0)}.display-lg{font-family:var(--wcss-display-lg-family, "AS Circular"),var(--wcss-display-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-lg-weight, 300);line-height:var(--wcss-display-lg-line-height, 1.3);font-size:var(--wcss-display-lg-font-size, clamp(2.75rem, 4.6666666667vw, 4rem));letter-spacing:var(--wcss-display-lg-letter-spacing, 0)}.display-md{font-family:var(--wcss-display-md-family, "AS Circular"),var(--wcss-display-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-md-weight, 300);line-height:var(--wcss-display-md-line-height, 1.3);font-size:var(--wcss-display-md-font-size, clamp(2.5rem, 4vw, 3.5rem));letter-spacing:var(--wcss-display-md-letter-spacing, 0)}.display-sm{font-family:var(--wcss-display-sm-family, "AS Circular"),var(--wcss-display-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-sm-weight, 300);line-height:var(--wcss-display-sm-line-height, 1.3);font-size:var(--wcss-display-sm-font-size, clamp(2rem, 3.6666666667vw, 3rem));letter-spacing:var(--wcss-display-sm-letter-spacing, 0)}.display-xs{font-family:var(--wcss-display-xs-family, "AS Circular"),var(--wcss-display-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-xs-weight, 300);line-height:var(--wcss-display-xs-line-height, 1.3);font-size:var(--wcss-display-xs-font-size, clamp(1.75rem, 3vw, 2.375rem));letter-spacing:var(--wcss-display-xs-letter-spacing, 0)}.heading-xl{font-family:var(--wcss-heading-xl-family, "AS Circular"),var(--wcss-heading-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-xl-weight, 300);line-height:var(--wcss-heading-xl-line-height, 1.3);font-size:var(--wcss-heading-xl-font-size, clamp(2rem, 3vw, 2.5rem));letter-spacing:var(--wcss-heading-xl-letter-spacing, 0)}.heading-lg{font-family:var(--wcss-heading-lg-family, "AS Circular"),var(--wcss-heading-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-lg-weight, 300);line-height:var(--wcss-heading-lg-line-height, 1.3);font-size:var(--wcss-heading-lg-font-size, clamp(1.75rem, 2.6666666667vw, 2.25rem));letter-spacing:var(--wcss-heading-lg-letter-spacing, 0)}.heading-md{font-family:var(--wcss-heading-md-family, "AS Circular"),var(--wcss-heading-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-md-weight, 300);line-height:var(--wcss-heading-md-line-height, 1.3);font-size:var(--wcss-heading-md-font-size, clamp(1.625rem, 2.3333333333vw, 1.75rem));letter-spacing:var(--wcss-heading-md-letter-spacing, 0)}.heading-sm{font-family:var(--wcss-heading-sm-family, "AS Circular"),var(--wcss-heading-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-sm-weight, 300);line-height:var(--wcss-heading-sm-line-height, 1.3);font-size:var(--wcss-heading-sm-font-size, clamp(1.375rem, 2vw, 1.5rem));letter-spacing:var(--wcss-heading-sm-letter-spacing, 0)}.heading-xs{font-family:var(--wcss-heading-xs-family, "AS Circular"),var(--wcss-heading-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-xs-weight, 300);line-height:var(--wcss-heading-xs-line-height, 1.3);font-size:var(--wcss-heading-xs-font-size, clamp(1.25rem, 1.6666666667vw, 1.25rem));letter-spacing:var(--wcss-heading-xs-letter-spacing, 0)}.heading-2xs{font-family:var(--wcss-heading-2xs-family, "AS Circular"),var(--wcss-heading-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-2xs-weight, 300);line-height:var(--wcss-heading-2xs-line-height, 1.3);font-size:var(--wcss-heading-2xs-font-size, clamp(1.125rem, 1.5vw, 1.125rem));letter-spacing:var(--wcss-heading-2xs-letter-spacing, 0)}.accent-2xl{font-family:var(--wcss-accent-2xl-family, "Good OT"),var(--wcss-accent-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-2xl-weight, 450);line-height:var(--wcss-accent-2xl-line-height, 1);font-size:var(--wcss-accent-2xl-font-size, clamp(2rem, 3.1666666667vw, 2.375rem));letter-spacing:var(--wcss-accent-2xl-letter-spacing, 0.05em);text-transform:uppercase}.accent-xl{font-family:var(--wcss-accent-xl-family, "Good OT"),var(--wcss-accent-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-xl-weight, 450);line-height:var(--wcss-accent-xl-line-height, 1.3);font-size:var(--wcss-accent-xl-font-size, clamp(1.625rem, 2.3333333333vw, 2rem));letter-spacing:var(--wcss-accent-xl-letter-spacing, 0.05em);text-transform:uppercase}.accent-lg{font-family:var(--wcss-accent-lg-family, "Good OT"),var(--wcss-accent-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-lg-weight, 450);line-height:var(--wcss-accent-lg-line-height, 1.3);font-size:var(--wcss-accent-lg-font-size, clamp(1.5rem, 2.1666666667vw, 1.75rem));letter-spacing:var(--wcss-accent-lg-letter-spacing, 0.05em);text-transform:uppercase}.accent-md{font-family:var(--wcss-accent-md-family, "Good OT"),var(--wcss-accent-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-md-weight, 500);line-height:var(--wcss-accent-md-line-height, 1.3);font-size:var(--wcss-accent-md-font-size, clamp(1.375rem, 1.8333333333vw, 1.5rem));letter-spacing:var(--wcss-accent-md-letter-spacing, 0.05em);text-transform:uppercase}.accent-sm{font-family:var(--wcss-accent-sm-family, "Good OT"),var(--wcss-accent-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-sm-weight, 500);line-height:var(--wcss-accent-sm-line-height, 1.3);font-size:var(--wcss-accent-sm-font-size, clamp(1.125rem, 1.5vw, 1.25rem));letter-spacing:var(--wcss-accent-sm-letter-spacing, 0.05em);text-transform:uppercase}.accent-xs{font-family:var(--wcss-accent-xs-family, "Good OT"),var(--wcss-accent-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-xs-weight, 500);line-height:var(--wcss-accent-xs-line-height, 1.3);font-size:var(--wcss-accent-xs-font-size, clamp(1rem, 1.3333333333vw, 1rem));letter-spacing:var(--wcss-accent-xs-letter-spacing, 0.1em);text-transform:uppercase}.accent-2xs{font-family:var(--wcss-accent-2xs-family, "Good OT"),var(--wcss-accent-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-2xs-weight, 450);line-height:var(--wcss-accent-2xs-line-height, 1.3);font-size:var(--wcss-accent-2xs-font-size, clamp(0.875rem, 1.1666666667vw, 0.875rem));letter-spacing:var(--wcss-accent-2xs-letter-spacing, 0.1em);text-transform:uppercase}:host{position:relative;display:block;width:calc(100% - var(--ds-size-200, 1rem) - var(--ds-size-200, 1rem));margin:0 var(--ds-size-200, 1rem)}@media screen and (min-width: 576px){:host{width:336px;padding:var(--ds-size-200, 1rem)}}@media screen and (min-width: 576px){:host(:not(:last-of-type)):after{position:absolute;top:var(--ds-size-200, 1rem);right:calc(-1*var(--ds-size-200, 1rem));height:calc(100% - var(--ds-size-200, 1rem) - var(--ds-size-200, 1rem));display:block;width:1px;content:""}}.header{display:flex;height:var(--ds-size-500, 2.5rem);margin-bottom:var(--ds-size-150, 0.75rem);align-items:center;flex-direction:row;text-align:center}.headerTitle{display:flex;align-items:center;flex:1;flex-direction:row;justify-content:center}.headerTitle div:first-child{margin-right:var(--ds-size-100, 0.5rem)}.calendarNavBtn{position:relative;display:flex;width:var(--ds-size-500, 2.5rem);height:var(--ds-size-500, 2.5rem);align-items:center;justify-content:center;border-width:1px;border-style:solid;border-radius:50%;cursor:pointer}.table{width:100%;border-collapse:collapse}.thead{margin-bottom:var(--ds-size-100, 0.5rem)}.th{display:flex;flex:1;align-items:center;justify-content:center}.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%}`;
|
|
10806
|
+
var styleCss$6 = i$3`:focus:not(:focus-visible){outline:3px solid transparent}.body-default{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-default-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-default-font-size, 1rem);line-height:var(--wcss-body-default-line-height, 1.5rem)}.body-default-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-default-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-default-emphasized-font-size, 1rem);line-height:var(--wcss-body-default-emphasized-line-height, 1.5rem)}.body-lg{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-lg-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-lg-font-size, 1.125rem);line-height:var(--wcss-body-lg-line-height, 1.625rem)}.body-lg-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-lg-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-lg-emphasized-font-size, 1.125rem);line-height:var(--wcss-body-lg-emphasized-line-height, 1.625rem)}.body-sm{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-sm-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-sm-font-size, 0.875rem);line-height:var(--wcss-body-sm-line-height, 1.25rem)}.body-sm-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-sm-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-sm-emphasized-font-size, 0.875rem);line-height:var(--wcss-body-sm-emphasized-line-height, 1.25rem)}.body-xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-xs-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-xs-font-size, 0.75rem);line-height:var(--wcss-body-xs-line-height, 1rem)}.body-xs-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-xs-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-xs-emphasized-font-size, 0.75rem);line-height:var(--wcss-body-xs-emphasized-line-height, 1rem)}.body-2xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-2xs-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-2xs-font-size, 0.625rem);line-height:var(--wcss-body-2xs-line-height, 0.875rem)}.body-2xs-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-2xs-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-2xs-emphasized-font-size, 0.625rem);line-height:var(--wcss-body-2xs-emphasized-line-height, 0.875rem)}.display-2xl{font-family:var(--wcss-display-2xl-family, "AS Circular"),var(--wcss-display-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-2xl-weight, 300);line-height:var(--wcss-display-2xl-line-height, 1.3);font-size:var(--wcss-display-2xl-font-size, clamp(3.5rem, 6vw, 5.375rem));letter-spacing:var(--wcss-display-2xl-letter-spacing, 0)}.display-xl{font-family:var(--wcss-display-xl-family, "AS Circular"),var(--wcss-display-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-xl-weight, 300);line-height:var(--wcss-display-xl-line-height, 1.3);font-size:var(--wcss-display-xl-font-size, clamp(3rem, 5.3333333333vw, 4.5rem));letter-spacing:var(--wcss-display-xl-letter-spacing, 0)}.display-lg{font-family:var(--wcss-display-lg-family, "AS Circular"),var(--wcss-display-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-lg-weight, 300);line-height:var(--wcss-display-lg-line-height, 1.3);font-size:var(--wcss-display-lg-font-size, clamp(2.75rem, 4.6666666667vw, 4rem));letter-spacing:var(--wcss-display-lg-letter-spacing, 0)}.display-md{font-family:var(--wcss-display-md-family, "AS Circular"),var(--wcss-display-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-md-weight, 300);line-height:var(--wcss-display-md-line-height, 1.3);font-size:var(--wcss-display-md-font-size, clamp(2.5rem, 4vw, 3.5rem));letter-spacing:var(--wcss-display-md-letter-spacing, 0)}.display-sm{font-family:var(--wcss-display-sm-family, "AS Circular"),var(--wcss-display-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-sm-weight, 300);line-height:var(--wcss-display-sm-line-height, 1.3);font-size:var(--wcss-display-sm-font-size, clamp(2rem, 3.6666666667vw, 3rem));letter-spacing:var(--wcss-display-sm-letter-spacing, 0)}.display-xs{font-family:var(--wcss-display-xs-family, "AS Circular"),var(--wcss-display-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-xs-weight, 300);line-height:var(--wcss-display-xs-line-height, 1.3);font-size:var(--wcss-display-xs-font-size, clamp(1.75rem, 3vw, 2.375rem));letter-spacing:var(--wcss-display-xs-letter-spacing, 0)}.heading-xl{font-family:var(--wcss-heading-xl-family, "AS Circular"),var(--wcss-heading-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-xl-weight, 300);line-height:var(--wcss-heading-xl-line-height, 1.3);font-size:var(--wcss-heading-xl-font-size, clamp(2rem, 3vw, 2.5rem));letter-spacing:var(--wcss-heading-xl-letter-spacing, 0)}.heading-lg{font-family:var(--wcss-heading-lg-family, "AS Circular"),var(--wcss-heading-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-lg-weight, 300);line-height:var(--wcss-heading-lg-line-height, 1.3);font-size:var(--wcss-heading-lg-font-size, clamp(1.75rem, 2.6666666667vw, 2.25rem));letter-spacing:var(--wcss-heading-lg-letter-spacing, 0)}.heading-md{font-family:var(--wcss-heading-md-family, "AS Circular"),var(--wcss-heading-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-md-weight, 300);line-height:var(--wcss-heading-md-line-height, 1.3);font-size:var(--wcss-heading-md-font-size, clamp(1.625rem, 2.3333333333vw, 1.75rem));letter-spacing:var(--wcss-heading-md-letter-spacing, 0)}.heading-sm{font-family:var(--wcss-heading-sm-family, "AS Circular"),var(--wcss-heading-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-sm-weight, 300);line-height:var(--wcss-heading-sm-line-height, 1.3);font-size:var(--wcss-heading-sm-font-size, clamp(1.375rem, 2vw, 1.5rem));letter-spacing:var(--wcss-heading-sm-letter-spacing, 0)}.heading-xs{font-family:var(--wcss-heading-xs-family, "AS Circular"),var(--wcss-heading-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-xs-weight, 300);line-height:var(--wcss-heading-xs-line-height, 1.3);font-size:var(--wcss-heading-xs-font-size, clamp(1.25rem, 1.6666666667vw, 1.25rem));letter-spacing:var(--wcss-heading-xs-letter-spacing, 0)}.heading-2xs{font-family:var(--wcss-heading-2xs-family, "AS Circular"),var(--wcss-heading-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-2xs-weight, 300);line-height:var(--wcss-heading-2xs-line-height, 1.3);font-size:var(--wcss-heading-2xs-font-size, clamp(1.125rem, 1.5vw, 1.125rem));letter-spacing:var(--wcss-heading-2xs-letter-spacing, 0)}.accent-2xl{font-family:var(--wcss-accent-2xl-family, "Good OT"),var(--wcss-accent-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-2xl-weight, 450);line-height:var(--wcss-accent-2xl-line-height, 1);font-size:var(--wcss-accent-2xl-font-size, clamp(2rem, 3.1666666667vw, 2.375rem));letter-spacing:var(--wcss-accent-2xl-letter-spacing, 0.05em);text-transform:uppercase}.accent-xl{font-family:var(--wcss-accent-xl-family, "Good OT"),var(--wcss-accent-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-xl-weight, 450);line-height:var(--wcss-accent-xl-line-height, 1.3);font-size:var(--wcss-accent-xl-font-size, clamp(1.625rem, 2.3333333333vw, 2rem));letter-spacing:var(--wcss-accent-xl-letter-spacing, 0.05em);text-transform:uppercase}.accent-lg{font-family:var(--wcss-accent-lg-family, "Good OT"),var(--wcss-accent-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-lg-weight, 450);line-height:var(--wcss-accent-lg-line-height, 1.3);font-size:var(--wcss-accent-lg-font-size, clamp(1.5rem, 2.1666666667vw, 1.75rem));letter-spacing:var(--wcss-accent-lg-letter-spacing, 0.05em);text-transform:uppercase}.accent-md{font-family:var(--wcss-accent-md-family, "Good OT"),var(--wcss-accent-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-md-weight, 500);line-height:var(--wcss-accent-md-line-height, 1.3);font-size:var(--wcss-accent-md-font-size, clamp(1.375rem, 1.8333333333vw, 1.5rem));letter-spacing:var(--wcss-accent-md-letter-spacing, 0.05em);text-transform:uppercase}.accent-sm{font-family:var(--wcss-accent-sm-family, "Good OT"),var(--wcss-accent-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-sm-weight, 500);line-height:var(--wcss-accent-sm-line-height, 1.3);font-size:var(--wcss-accent-sm-font-size, clamp(1.125rem, 1.5vw, 1.25rem));letter-spacing:var(--wcss-accent-sm-letter-spacing, 0.05em);text-transform:uppercase}.accent-xs{font-family:var(--wcss-accent-xs-family, "Good OT"),var(--wcss-accent-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-xs-weight, 500);line-height:var(--wcss-accent-xs-line-height, 1.3);font-size:var(--wcss-accent-xs-font-size, clamp(1rem, 1.3333333333vw, 1rem));letter-spacing:var(--wcss-accent-xs-letter-spacing, 0.1em);text-transform:uppercase}.accent-2xs{font-family:var(--wcss-accent-2xs-family, "Good OT"),var(--wcss-accent-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-2xs-weight, 450);line-height:var(--wcss-accent-2xs-line-height, 1.3);font-size:var(--wcss-accent-2xs-font-size, clamp(0.875rem, 1.1666666667vw, 0.875rem));letter-spacing:var(--wcss-accent-2xs-letter-spacing, 0.1em);text-transform:uppercase}:host{position:relative;display:block;width:calc(100% - var(--ds-size-200, 1rem) - var(--ds-size-200, 1rem));margin:0 var(--ds-size-200, 1rem)}@media screen and (min-width: 576px){:host{width:336px;padding:var(--ds-size-200, 1rem) var(--ds-size-200, 1rem) 0}}@media screen and (min-width: 576px){:host(:not(:last-of-type)):after{position:absolute;top:var(--ds-size-200, 1rem);right:calc(-1*var(--ds-size-200, 1rem));height:calc(100% - var(--ds-size-200, 1rem) - var(--ds-size-200, 1rem));display:block;width:1px;content:""}}.header{display:flex;height:var(--ds-size-500, 2.5rem);margin-bottom:var(--ds-size-150, 0.75rem);align-items:center;flex-direction:row;text-align:center}.headerTitle{display:flex;align-items:center;flex:1;flex-direction:row;justify-content:center}.headerTitle div:first-child{margin-right:var(--ds-size-100, 0.5rem)}.calendarNavBtn{position:relative;display:flex;width:var(--ds-size-500, 2.5rem);height:var(--ds-size-500, 2.5rem);align-items:center;justify-content:center;border-width:1px;border-style:solid;border-radius:50%;cursor:pointer}.table{width:100%;border-collapse:collapse}.thead{margin-bottom:var(--ds-size-100, 0.5rem)}.th{display:flex;flex:1;align-items:center;justify-content:center}.th abbr{text-decoration:none}.tbody{width:100%;transition:all 0ms;transform:translateX(0)}@media screen and (min-width: 576px){.tbody{height:336px}}.td{flex:1;margin:0;padding:0}.tr{display:flex;flex-direction:row;width:100%;border-radius:10px;overflow:hidden}.tr:not(:last-of-type){margin-bottom:var(--ds-size-100, 0.5rem)}`;
|
|
10810
10807
|
|
|
10811
10808
|
var colorCss$6 = i$3`:focus:not(:focus-visible){outline:3px solid transparent}:host{background-color:var(--ds-auro-calendar-month-container-color)}@media screen and (min-width: 576px){:host(:not(:last-of-type)):after{background-color:var(--ds-auro-calendar-month-divider-color)}}.header{color:var(--ds-auro-calendar-month-header-color)}`;
|
|
10812
10809
|
|
|
@@ -11567,41 +11564,45 @@ __decorate([n$4({ type: Array })], RangeDatepickerCalendar.prototype, "dayNamesO
|
|
|
11567
11564
|
__decorate([n$4({ type: Array })], RangeDatepickerCalendar.prototype, "daysOfMonth", void 0);
|
|
11568
11565
|
AuroLibraryRuntimeUtils$5.prototype.registerComponent('wc-range-datepicker-calendar', RangeDatepickerCalendar);
|
|
11569
11566
|
|
|
11570
|
-
var styleCss$5 = i$3`.body-default{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-default-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-default-font-size, 1rem);line-height:var(--wcss-body-default-line-height, 1.5rem)}.body-default-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-default-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-default-emphasized-font-size, 1rem);line-height:var(--wcss-body-default-emphasized-line-height, 1.5rem)}.body-lg{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-lg-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-lg-font-size, 1.125rem);line-height:var(--wcss-body-lg-line-height, 1.625rem)}.body-lg-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-lg-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-lg-emphasized-font-size, 1.125rem);line-height:var(--wcss-body-lg-emphasized-line-height, 1.625rem)}.body-sm{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-sm-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-sm-font-size, 0.875rem);line-height:var(--wcss-body-sm-line-height, 1.25rem)}.body-sm-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-sm-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-sm-emphasized-font-size, 0.875rem);line-height:var(--wcss-body-sm-emphasized-line-height, 1.25rem)}.body-xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-xs-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-xs-font-size, 0.75rem);line-height:var(--wcss-body-xs-line-height, 1rem)}.body-xs-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-xs-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-xs-emphasized-font-size, 0.75rem);line-height:var(--wcss-body-xs-emphasized-line-height, 1rem)}.body-2xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-2xs-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-2xs-font-size, 0.625rem);line-height:var(--wcss-body-2xs-line-height, 0.875rem)}.body-2xs-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-2xs-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-2xs-emphasized-font-size, 0.625rem);line-height:var(--wcss-body-2xs-emphasized-line-height, 0.875rem)}.display-2xl{font-family:var(--wcss-display-2xl-family, "AS Circular"),var(--wcss-display-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-2xl-weight, 300);line-height:var(--wcss-display-2xl-line-height, 1.3);font-size:var(--wcss-display-2xl-font-size, clamp(3.5rem, 6vw, 5.375rem));letter-spacing:var(--wcss-display-2xl-letter-spacing, 0)}.display-xl{font-family:var(--wcss-display-xl-family, "AS Circular"),var(--wcss-display-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-xl-weight, 300);line-height:var(--wcss-display-xl-line-height, 1.3);font-size:var(--wcss-display-xl-font-size, clamp(3rem, 5.3333333333vw, 4.5rem));letter-spacing:var(--wcss-display-xl-letter-spacing, 0)}.display-lg{font-family:var(--wcss-display-lg-family, "AS Circular"),var(--wcss-display-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-lg-weight, 300);line-height:var(--wcss-display-lg-line-height, 1.3);font-size:var(--wcss-display-lg-font-size, clamp(2.75rem, 4.6666666667vw, 4rem));letter-spacing:var(--wcss-display-lg-letter-spacing, 0)}.display-md{font-family:var(--wcss-display-md-family, "AS Circular"),var(--wcss-display-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-md-weight, 300);line-height:var(--wcss-display-md-line-height, 1.3);font-size:var(--wcss-display-md-font-size, clamp(2.5rem, 4vw, 3.5rem));letter-spacing:var(--wcss-display-md-letter-spacing, 0)}.display-sm{font-family:var(--wcss-display-sm-family, "AS Circular"),var(--wcss-display-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-sm-weight, 300);line-height:var(--wcss-display-sm-line-height, 1.3);font-size:var(--wcss-display-sm-font-size, clamp(2rem, 3.6666666667vw, 3rem));letter-spacing:var(--wcss-display-sm-letter-spacing, 0)}.display-xs{font-family:var(--wcss-display-xs-family, "AS Circular"),var(--wcss-display-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-xs-weight, 300);line-height:var(--wcss-display-xs-line-height, 1.3);font-size:var(--wcss-display-xs-font-size, clamp(1.75rem, 3vw, 2.375rem));letter-spacing:var(--wcss-display-xs-letter-spacing, 0)}.heading-xl{font-family:var(--wcss-heading-xl-family, "AS Circular"),var(--wcss-heading-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-xl-weight, 300);line-height:var(--wcss-heading-xl-line-height, 1.3);font-size:var(--wcss-heading-xl-font-size, clamp(2rem, 3vw, 2.5rem));letter-spacing:var(--wcss-heading-xl-letter-spacing, 0)}.heading-lg{font-family:var(--wcss-heading-lg-family, "AS Circular"),var(--wcss-heading-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-lg-weight, 300);line-height:var(--wcss-heading-lg-line-height, 1.3);font-size:var(--wcss-heading-lg-font-size, clamp(1.75rem, 2.6666666667vw, 2.25rem));letter-spacing:var(--wcss-heading-lg-letter-spacing, 0)}.heading-md{font-family:var(--wcss-heading-md-family, "AS Circular"),var(--wcss-heading-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-md-weight, 300);line-height:var(--wcss-heading-md-line-height, 1.3);font-size:var(--wcss-heading-md-font-size, clamp(1.625rem, 2.3333333333vw, 1.75rem));letter-spacing:var(--wcss-heading-md-letter-spacing, 0)}.heading-sm{font-family:var(--wcss-heading-sm-family, "AS Circular"),var(--wcss-heading-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-sm-weight, 300);line-height:var(--wcss-heading-sm-line-height, 1.3);font-size:var(--wcss-heading-sm-font-size, clamp(1.375rem, 2vw, 1.5rem));letter-spacing:var(--wcss-heading-sm-letter-spacing, 0)}.heading-xs{font-family:var(--wcss-heading-xs-family, "AS Circular"),var(--wcss-heading-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-xs-weight, 300);line-height:var(--wcss-heading-xs-line-height, 1.3);font-size:var(--wcss-heading-xs-font-size, clamp(1.25rem, 1.6666666667vw, 1.25rem));letter-spacing:var(--wcss-heading-xs-letter-spacing, 0)}.heading-2xs{font-family:var(--wcss-heading-2xs-family, "AS Circular"),var(--wcss-heading-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-2xs-weight, 300);line-height:var(--wcss-heading-2xs-line-height, 1.3);font-size:var(--wcss-heading-2xs-font-size, clamp(1.125rem, 1.5vw, 1.125rem));letter-spacing:var(--wcss-heading-2xs-letter-spacing, 0)}.accent-2xl{font-family:var(--wcss-accent-2xl-family, "Good OT"),var(--wcss-accent-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-2xl-weight, 450);line-height:var(--wcss-accent-2xl-line-height, 1);font-size:var(--wcss-accent-2xl-font-size, clamp(2rem, 3.1666666667vw, 2.375rem));letter-spacing:var(--wcss-accent-2xl-letter-spacing, 0.05em);text-transform:uppercase}.accent-xl{font-family:var(--wcss-accent-xl-family, "Good OT"),var(--wcss-accent-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-xl-weight, 450);line-height:var(--wcss-accent-xl-line-height, 1.3);font-size:var(--wcss-accent-xl-font-size, clamp(1.625rem, 2.3333333333vw, 2rem));letter-spacing:var(--wcss-accent-xl-letter-spacing, 0.05em);text-transform:uppercase}.accent-lg{font-family:var(--wcss-accent-lg-family, "Good OT"),var(--wcss-accent-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-lg-weight, 450);line-height:var(--wcss-accent-lg-line-height, 1.3);font-size:var(--wcss-accent-lg-font-size, clamp(1.5rem, 2.1666666667vw, 1.75rem));letter-spacing:var(--wcss-accent-lg-letter-spacing, 0.05em);text-transform:uppercase}.accent-md{font-family:var(--wcss-accent-md-family, "Good OT"),var(--wcss-accent-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-md-weight, 500);line-height:var(--wcss-accent-md-line-height, 1.3);font-size:var(--wcss-accent-md-font-size, clamp(1.375rem, 1.8333333333vw, 1.5rem));letter-spacing:var(--wcss-accent-md-letter-spacing, 0.05em);text-transform:uppercase}.accent-sm{font-family:var(--wcss-accent-sm-family, "Good OT"),var(--wcss-accent-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-sm-weight, 500);line-height:var(--wcss-accent-sm-line-height, 1.3);font-size:var(--wcss-accent-sm-font-size, clamp(1.125rem, 1.5vw, 1.25rem));letter-spacing:var(--wcss-accent-sm-letter-spacing, 0.05em);text-transform:uppercase}.accent-xs{font-family:var(--wcss-accent-xs-family, "Good OT"),var(--wcss-accent-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-xs-weight, 500);line-height:var(--wcss-accent-xs-line-height, 1.3);font-size:var(--wcss-accent-xs-font-size, clamp(1rem, 1.3333333333vw, 1rem));letter-spacing:var(--wcss-accent-xs-letter-spacing, 0.1em);text-transform:uppercase}.accent-2xs{font-family:var(--wcss-accent-2xs-family, "Good OT"),var(--wcss-accent-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-2xs-weight, 450);line-height:var(--wcss-accent-2xs-line-height, 1.3);font-size:var(--wcss-accent-2xs-font-size, clamp(0.875rem, 1.1666666667vw, 0.875rem));letter-spacing:var(--wcss-accent-2xs-letter-spacing, 0.1em);text-transform:uppercase}@media screen and (max-width: 576px){:host{display:flex;justify-content:center}}.day{position:relative;width:var(--ds-size-500, 2.5rem);height:calc(var(--ds-size-700, 3.5rem) - 2px);padding:0;border-width:1px;border-style:solid;border-radius:var(--ds-size-300, 1.5rem);cursor:pointer;user-select:none}.day.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}}`;
|
|
11567
|
+
var styleCss$5 = i$3`.body-default{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-default-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-default-font-size, 1rem);line-height:var(--wcss-body-default-line-height, 1.5rem)}.body-default-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-default-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-default-emphasized-font-size, 1rem);line-height:var(--wcss-body-default-emphasized-line-height, 1.5rem)}.body-lg{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-lg-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-lg-font-size, 1.125rem);line-height:var(--wcss-body-lg-line-height, 1.625rem)}.body-lg-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-lg-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-lg-emphasized-font-size, 1.125rem);line-height:var(--wcss-body-lg-emphasized-line-height, 1.625rem)}.body-sm{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-sm-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-sm-font-size, 0.875rem);line-height:var(--wcss-body-sm-line-height, 1.25rem)}.body-sm-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-sm-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-sm-emphasized-font-size, 0.875rem);line-height:var(--wcss-body-sm-emphasized-line-height, 1.25rem)}.body-xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-xs-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-xs-font-size, 0.75rem);line-height:var(--wcss-body-xs-line-height, 1rem)}.body-xs-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-xs-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-xs-emphasized-font-size, 0.75rem);line-height:var(--wcss-body-xs-emphasized-line-height, 1rem)}.body-2xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-2xs-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-2xs-font-size, 0.625rem);line-height:var(--wcss-body-2xs-line-height, 0.875rem)}.body-2xs-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-2xs-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-2xs-emphasized-font-size, 0.625rem);line-height:var(--wcss-body-2xs-emphasized-line-height, 0.875rem)}.display-2xl{font-family:var(--wcss-display-2xl-family, "AS Circular"),var(--wcss-display-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-2xl-weight, 300);line-height:var(--wcss-display-2xl-line-height, 1.3);font-size:var(--wcss-display-2xl-font-size, clamp(3.5rem, 6vw, 5.375rem));letter-spacing:var(--wcss-display-2xl-letter-spacing, 0)}.display-xl{font-family:var(--wcss-display-xl-family, "AS Circular"),var(--wcss-display-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-xl-weight, 300);line-height:var(--wcss-display-xl-line-height, 1.3);font-size:var(--wcss-display-xl-font-size, clamp(3rem, 5.3333333333vw, 4.5rem));letter-spacing:var(--wcss-display-xl-letter-spacing, 0)}.display-lg{font-family:var(--wcss-display-lg-family, "AS Circular"),var(--wcss-display-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-lg-weight, 300);line-height:var(--wcss-display-lg-line-height, 1.3);font-size:var(--wcss-display-lg-font-size, clamp(2.75rem, 4.6666666667vw, 4rem));letter-spacing:var(--wcss-display-lg-letter-spacing, 0)}.display-md{font-family:var(--wcss-display-md-family, "AS Circular"),var(--wcss-display-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-md-weight, 300);line-height:var(--wcss-display-md-line-height, 1.3);font-size:var(--wcss-display-md-font-size, clamp(2.5rem, 4vw, 3.5rem));letter-spacing:var(--wcss-display-md-letter-spacing, 0)}.display-sm{font-family:var(--wcss-display-sm-family, "AS Circular"),var(--wcss-display-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-sm-weight, 300);line-height:var(--wcss-display-sm-line-height, 1.3);font-size:var(--wcss-display-sm-font-size, clamp(2rem, 3.6666666667vw, 3rem));letter-spacing:var(--wcss-display-sm-letter-spacing, 0)}.display-xs{font-family:var(--wcss-display-xs-family, "AS Circular"),var(--wcss-display-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-xs-weight, 300);line-height:var(--wcss-display-xs-line-height, 1.3);font-size:var(--wcss-display-xs-font-size, clamp(1.75rem, 3vw, 2.375rem));letter-spacing:var(--wcss-display-xs-letter-spacing, 0)}.heading-xl{font-family:var(--wcss-heading-xl-family, "AS Circular"),var(--wcss-heading-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-xl-weight, 300);line-height:var(--wcss-heading-xl-line-height, 1.3);font-size:var(--wcss-heading-xl-font-size, clamp(2rem, 3vw, 2.5rem));letter-spacing:var(--wcss-heading-xl-letter-spacing, 0)}.heading-lg{font-family:var(--wcss-heading-lg-family, "AS Circular"),var(--wcss-heading-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-lg-weight, 300);line-height:var(--wcss-heading-lg-line-height, 1.3);font-size:var(--wcss-heading-lg-font-size, clamp(1.75rem, 2.6666666667vw, 2.25rem));letter-spacing:var(--wcss-heading-lg-letter-spacing, 0)}.heading-md{font-family:var(--wcss-heading-md-family, "AS Circular"),var(--wcss-heading-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-md-weight, 300);line-height:var(--wcss-heading-md-line-height, 1.3);font-size:var(--wcss-heading-md-font-size, clamp(1.625rem, 2.3333333333vw, 1.75rem));letter-spacing:var(--wcss-heading-md-letter-spacing, 0)}.heading-sm{font-family:var(--wcss-heading-sm-family, "AS Circular"),var(--wcss-heading-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-sm-weight, 300);line-height:var(--wcss-heading-sm-line-height, 1.3);font-size:var(--wcss-heading-sm-font-size, clamp(1.375rem, 2vw, 1.5rem));letter-spacing:var(--wcss-heading-sm-letter-spacing, 0)}.heading-xs{font-family:var(--wcss-heading-xs-family, "AS Circular"),var(--wcss-heading-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-xs-weight, 300);line-height:var(--wcss-heading-xs-line-height, 1.3);font-size:var(--wcss-heading-xs-font-size, clamp(1.25rem, 1.6666666667vw, 1.25rem));letter-spacing:var(--wcss-heading-xs-letter-spacing, 0)}.heading-2xs{font-family:var(--wcss-heading-2xs-family, "AS Circular"),var(--wcss-heading-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-2xs-weight, 300);line-height:var(--wcss-heading-2xs-line-height, 1.3);font-size:var(--wcss-heading-2xs-font-size, clamp(1.125rem, 1.5vw, 1.125rem));letter-spacing:var(--wcss-heading-2xs-letter-spacing, 0)}.accent-2xl{font-family:var(--wcss-accent-2xl-family, "Good OT"),var(--wcss-accent-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-2xl-weight, 450);line-height:var(--wcss-accent-2xl-line-height, 1);font-size:var(--wcss-accent-2xl-font-size, clamp(2rem, 3.1666666667vw, 2.375rem));letter-spacing:var(--wcss-accent-2xl-letter-spacing, 0.05em);text-transform:uppercase}.accent-xl{font-family:var(--wcss-accent-xl-family, "Good OT"),var(--wcss-accent-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-xl-weight, 450);line-height:var(--wcss-accent-xl-line-height, 1.3);font-size:var(--wcss-accent-xl-font-size, clamp(1.625rem, 2.3333333333vw, 2rem));letter-spacing:var(--wcss-accent-xl-letter-spacing, 0.05em);text-transform:uppercase}.accent-lg{font-family:var(--wcss-accent-lg-family, "Good OT"),var(--wcss-accent-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-lg-weight, 450);line-height:var(--wcss-accent-lg-line-height, 1.3);font-size:var(--wcss-accent-lg-font-size, clamp(1.5rem, 2.1666666667vw, 1.75rem));letter-spacing:var(--wcss-accent-lg-letter-spacing, 0.05em);text-transform:uppercase}.accent-md{font-family:var(--wcss-accent-md-family, "Good OT"),var(--wcss-accent-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-md-weight, 500);line-height:var(--wcss-accent-md-line-height, 1.3);font-size:var(--wcss-accent-md-font-size, clamp(1.375rem, 1.8333333333vw, 1.5rem));letter-spacing:var(--wcss-accent-md-letter-spacing, 0.05em);text-transform:uppercase}.accent-sm{font-family:var(--wcss-accent-sm-family, "Good OT"),var(--wcss-accent-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-sm-weight, 500);line-height:var(--wcss-accent-sm-line-height, 1.3);font-size:var(--wcss-accent-sm-font-size, clamp(1.125rem, 1.5vw, 1.25rem));letter-spacing:var(--wcss-accent-sm-letter-spacing, 0.05em);text-transform:uppercase}.accent-xs{font-family:var(--wcss-accent-xs-family, "Good OT"),var(--wcss-accent-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-xs-weight, 500);line-height:var(--wcss-accent-xs-line-height, 1.3);font-size:var(--wcss-accent-xs-font-size, clamp(1rem, 1.3333333333vw, 1rem));letter-spacing:var(--wcss-accent-xs-letter-spacing, 0.1em);text-transform:uppercase}.accent-2xs{font-family:var(--wcss-accent-2xs-family, "Good OT"),var(--wcss-accent-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-2xs-weight, 450);line-height:var(--wcss-accent-2xs-line-height, 1.3);font-size:var(--wcss-accent-2xs-font-size, clamp(0.875rem, 1.1666666667vw, 0.875rem));letter-spacing:var(--wcss-accent-2xs-letter-spacing, 0.1em);text-transform:uppercase}@media screen and (max-width: 576px){:host{display:flex;justify-content:center}}.day{position:relative;width:48px;height:56px;padding:0;border-width:2px;border-style:solid;border-radius:10px;cursor:pointer;user-select:none}.day:focus-visible{outline:none;background-color:unset}.day.activeCell{outline-width:2px;outline-style:solid;outline-offset:-4px}.day.disabled{cursor:default !important;pointer-events:none}.day.blackout{cursor:pointer}.day.reference:after{position:absolute;top:-2px;left:-2px;display:block;width:calc(100% + 2px);height:calc(100% + 2px);box-sizing:content-box;border-radius:10px;border-style:solid;border-width:1px;content:""}.day.inRange::before{position:absolute;z-index:-1;top:-2px;left:-2px;display:block;width:calc(100% + 4px);height:calc(100% + 4px);box-sizing:content-box;content:""}.day.rangeDepartDate::before{position:absolute;z-index:-1;top:-2px;left:-2px;display:block;width:calc(100% + 4px);height:calc(100% + 4px);box-sizing:content-box;content:"";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}`;
|
|
11571
11568
|
|
|
11572
|
-
var colorCss$5 = i$3`:host ::slotted([slot^=date_]){color:var(--ds-auro-calendar-cell-price-text-color)}:host ::slotted([slot^=date_][highlight]){--ds-auro-calendar-cell-price-text-color: var(--ds-basic-color-status-success, #447a1f)}:host .day{border-color:var(--ds-auro-calendar-cell-border-color);background-color:var(--ds-auro-calendar-cell-container-color);color:var(--ds-auro-calendar-cell-text-color)}:host .day.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-
|
|
11569
|
+
var colorCss$5 = i$3`:host ::slotted([slot^=date_]){color:var(--ds-auro-calendar-cell-price-text-color)}:host ::slotted([slot^=date_][highlight]){--ds-auro-calendar-cell-price-text-color: var(--ds-basic-color-status-success, #447a1f)}:host .day{border-color:var(--ds-auro-calendar-cell-border-color);background-color:var(--ds-auro-calendar-cell-container-color);color:var(--ds-auro-calendar-cell-text-color)}:host .day.activeCell:not(.selected){--ds-auro-calendar-cell-container-color: var(--ds-auro-calendar-cell-in-range-color);border-color:var(--ds-advanced-color-state-selected);outline-color:var(--ds-auro-calendar-cell-container-color)}:host .day.selected{--ds-auro-calendar-cell-container-color: var(--ds-advanced-color-state-selected, #01426a);--ds-auro-calendar-cell-text-color: var(--ds-basic-color-texticon-inverse, #ffffff);--ds-auro-calendar-cell-price-text-color: var(--ds-basic-color-texticon-inverse, #ffffff)}:host .day.selected ::slotted([slot^=date_][highlight]){--ds-auro-calendar-cell-price-text-color: var(--ds-basic-color-status-success-subtle, #d6eac7)}:host .day.selected:hover{--ds-auro-calendar-cell-container-color: var(--ds-advanced-color-state-selected-hover, #00274a);--ds-auro-calendar-cell-text-color: var(--ds-basic-color-texticon-inverse, #ffffff)}:host .day.reference:after{border-color:var(--ds-basic-color-border-default, #959595);box-shadow:inset 0 0 0 2px var(--ds-basic-color-surface-default, #ffffff)}:host .day.reference:hover::after{box-shadow:inset 0 0 0 2px var(--ds-advanced-color-shared-background-muted, #f7f7f7)}:host .day:hover{--ds-auro-calendar-cell-container-color: var(--ds-advanced-color-state-background-hover, #f2f2f2);--ds-auro-calendar-cell-text-color: var(--ds-basic-color-texticon-default, #2a2a2a)}:host .day.disabled{--ds-auro-calendar-cell-container-color: transparent;--ds-auro-calendar-cell-text-color: var(--ds-basic-color-texticon-disabled, #d0d0d0);--ds-auro-calendar-cell-price-text-color: var(--ds-basic-color-texticon-disabled, #d0d0d0)}:host .day.blackout{--ds-auro-calendar-cell-container-color: transparent;--ds-auro-calendar-cell-text-color: var(--ds-basic-color-texticon-disabled, #d0d0d0);--ds-auro-calendar-cell-price-text-color: var(--ds-basic-color-texticon-disabled, #d0d0d0)}:host .day.inRange:before,:host .day.rangeDepartDate:before,:host .day.rangeReturnDate:before,:host .day.lastHoveredDate:before{background-color:var(--ds-auro-calendar-cell-in-range-color)}:host .day.sameDateTrip:before{--ds-auro-calendar-cell-in-range-color: transparent}`;
|
|
11573
11570
|
|
|
11574
|
-
let s$2 = class s{registerComponent(e,t){customElements.get(e)||customElements.define(e,class extends t{});}closestElement(e,t=this,i=(t,s=t&&t.closest(e))=>t&&t!==document&&t!==window?s||i(t.getRootNode().host):null){return i(t)}handleComponentTagRename(e,t){const i=t.toLowerCase();e.tagName.toLowerCase()!==i&&e.setAttribute(i,true);}elementMatch(e,t){const i=t.toLowerCase();return e.tagName.toLowerCase()===i||e.hasAttribute(i)}getSlotText(e,t){const i=e.shadowRoot?.querySelector(`slot[name="${t}"]`);return (i?.assignedNodes({flatten:true})||[]).map(e=>e.textContent?.trim()).join(" ").trim()||null}};var r$3="top",o$3="bottom",n$3="right",a="left",l$3="auto",c$5=[r$3,o$3,n$3,a],p$7="start",d$3="end",f$7="viewport",h$6="popper",m$7=c$5.reduce(function(e,t){return e.concat([t+"-"+p$7,t+"-"+d$3])},[]),u$8=[].concat(c$5,[l$3]).reduce(function(e,t){return e.concat([t,t+"-"+p$7,t+"-"+d$3])},[]),g$6=["beforeRead","read","afterRead","beforeMain","main","afterMain","beforeWrite","write","afterWrite"];function v$4(e){return e?(e.nodeName||"").toLowerCase():null}function y$6(e){if(null==e)return window;if("[object Window]"!==e.toString()){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function w$6(e){return e instanceof y$6(e).Element||e instanceof Element}function b$3(e){return e instanceof y$6(e).HTMLElement||e instanceof HTMLElement}function x$3(e){return "undefined"!=typeof ShadowRoot&&(e instanceof y$6(e).ShadowRoot||e instanceof ShadowRoot)}var S$3={name:"applyStyles",enabled:true,phase:"write",fn:function(e){var t=e.state;Object.keys(t.elements).forEach(function(e){var i=t.styles[e]||{},s=t.attributes[e]||{},r=t.elements[e];b$3(r)&&v$4(r)&&(Object.assign(r.style,i),Object.keys(s).forEach(function(e){var t=s[e];false===t?r.removeAttribute(e):r.setAttribute(e,true===t?"":t);}));});},effect:function(e){var t=e.state,i={popper:{position:t.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(t.elements.popper.style,i.popper),t.styles=i,t.elements.arrow&&Object.assign(t.elements.arrow.style,i.arrow),function(){Object.keys(t.elements).forEach(function(e){var s=t.elements[e],r=t.attributes[e]||{},o=Object.keys(t.styles.hasOwnProperty(e)?t.styles[e]:i[e]).reduce(function(e,t){return e[t]="",e},{});b$3(s)&&v$4(s)&&(Object.assign(s.style,o),Object.keys(r).forEach(function(e){s.removeAttribute(e);}));});}},requires:["computeStyles"]};function _$4(e){return e.split("-")[0]}var O=Math.max,k$6=Math.min,A$3=Math.round;function z$6(){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())}function M$7(e,t,i){ void 0===t&&(t=false),void 0===i&&(i=false);var s=e.getBoundingClientRect(),r=1,o=1;t&&b$3(e)&&(r=e.offsetWidth>0&&A$3(s.width)/e.offsetWidth||1,o=e.offsetHeight>0&&A$3(s.height)/e.offsetHeight||1);var n=(w$6(e)?y$6(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(e){var t=M$7(e),i=e.offsetWidth,s=e.offsetHeight;return Math.abs(t.width-i)<=1&&(i=t.width),Math.abs(t.height-s)<=1&&(s=t.height),{x:e.offsetLeft,y:e.offsetTop,width:i,height:s}}function B$3(e,t){var i=t.getRootNode&&t.getRootNode();if(e.contains(t))return true;if(i&&x$3(i)){var s=t;do{if(s&&e.isSameNode(s))return true;s=s.parentNode||s.host;}while(s)}return false}function L(e){return y$6(e).getComputedStyle(e)}function H$3(e){return ["table","td","th"].indexOf(v$4(e))>=0}function C$3(e){return ((w$6(e)?e.ownerDocument:e.document)||window.document).documentElement}function R$3(e){return "html"===v$4(e)?e:e.assignedSlot||e.parentNode||(x$3(e)?e.host:null)||C$3(e)}function j(e){return b$3(e)&&"fixed"!==L(e).position?e.offsetParent:null}function N$3(e){for(var t=y$6(e),i=j(e);i&&H$3(i)&&"static"===L(i).position;)i=j(i);return i&&("html"===v$4(i)||"body"===v$4(i)&&"static"===L(i).position)?t:i||function(e){var t=/firefox/i.test(z$6());if(/Trident/i.test(z$6())&&b$3(e)&&"fixed"===L(e).position)return null;var i=R$3(e);for(x$3(i)&&(i=i.host);b$3(i)&&["html","body"].indexOf(v$4(i))<0;){var s=L(i);if("none"!==s.transform||"none"!==s.perspective||"paint"===s.contain||-1!==["transform","perspective"].indexOf(s.willChange)||t&&"filter"===s.willChange||t&&s.filter&&"none"!==s.filter)return i;i=i.parentNode;}return null}(e)||t}function P(e){return ["top","bottom"].indexOf(e)>=0?"x":"y"}function D(e,t,i){return O(e,k$6(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={name:"arrow",enabled:true,phase:"main",fn:function(e){var t,i=e.state,s=e.name,l=e.options,p=i.elements.arrow,d=i.modifiersData.popperOffsets,f=_$4(i.placement),h=P(f),m=[a,n$3].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$5))}(l.padding,i),g=T$3(p),v="y"===h?r$3:a,y="y"===h?o$3:n$3,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(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(t.elements.popper,s)&&(t.elements.arrow=s);},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function q$3(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$3,E=window;if(m){var M=N$3(i),T="clientHeight",B="clientWidth";if(M===y$6(i)&&"static"!==L(M=C$3(i)).position&&"absolute"===f&&(T="scrollHeight",B="scrollWidth"),l===r$3||(l===a||l===n$3)&&c===d$3)z=o$3,x-=(g&&M===E&&E.visualViewport?E.visualViewport.height:M[T])-s.height,x*=h?1:-1;if(l===a||(l===r$3||l===o$3)&&c===d$3)k=n$3,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(i*r)/r||0,y:A$3(s*r)/r||0}}({x:w,y:x},y$6(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(e);return {scrollLeft:t.pageXOffset,scrollTop:t.pageYOffset}}function Q(e){return M$7(C$3(e)).left+J(e).scrollLeft}function Z(e){var t=L(e),i=t.overflow,s=t.overflowX,r=t.overflowY;return /auto|scroll|overlay|hidden/.test(i+r+s)}function ee(e){return ["html","body","#document"].indexOf(v$4(e))>=0?e.ownerDocument.body:b$3(e)&&Z(e)?e:ee(R$3(e))}function te(e,t){var i;void 0===t&&(t=[]);var s=ee(e),r=s===(null==(i=e.ownerDocument)?void 0:i.body),o=y$6(s),n=r?[o].concat(o.visualViewport||[],Z(s)?s:[]):s,a=t.concat(n);return r?a:a.concat(te(R$3(n)))}function ie(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function se(e,t,i){return t===f$7?ie(function(e,t){var i=y$6(e),s=C$3(e),r=i.visualViewport,o=s.clientWidth,n=s.clientHeight,a=0,l=0;if(r){o=r.width,n=r.height;var c=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(t)?function(e,t){var i=M$7(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(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(e)))}function re(e,t,i,s){var r="clippingParents"===t?function(e){var t=te(R$3(e)),i=["absolute","fixed"].indexOf(L(e).position)>=0&&b$3(e)?N$3(e):e;return w$6(i)?t.filter(function(e){return w$6(e)&&B$3(e,i)&&"body"!==v$4(e)}):[]}(e):[].concat(t),o=[].concat(r,[i]),n=o[0],a=o.reduce(function(t,i){var r=se(e,i,s);return t.top=O(r.top,t.top),t.right=k$6(r.right,t.right),t.bottom=k$6(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(l):null,f=l?q$3(l):null,h=i.x+i.width/2-s.width/2,m=i.y+i.height/2-s.height/2;switch(c){case r$3:t={x:h,y:i.y-s.height};break;case o$3:t={x:h,y:i.y+i.height};break;case n$3:t={x:i.x+i.width,y: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$7:t[u]=t[u]-(i[g]/2-s[g]/2);break;case d$3: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$7:u,v=i.elementContext,y=void 0===v?h$6:v,b=i.altBoundary,x=void 0!==b&&b,S=i.padding,_=void 0===S?0:S,O=I("number"!=typeof _?_:F(_,c$5)),k=y===h$6?"reference":h$6,A=e.rects.popper,z=e.elements[x?k:y],E=re(w$6(z)?z:z.contextElement||C$3(e.elements.popper),m,g,p),T=M$7(e.elements.reference),B=oe({reference:T,element:A,placement:a}),L=ie(Object.assign({},A,B)),H=y===h$6?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$6&&j){var N=j[a];Object.keys(R).forEach(function(e){var t=[n$3,o$3].indexOf(e)>=0?1:-1,i=[r$3,o$3].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$8:l,d=q$3(s),f=d?a?m$7:m$7.filter(function(e){return q$3(e)===d}):c$5,h=f.filter(function(e){return p.indexOf(e)>=0});0===h.length&&(h=f);var g=h.reduce(function(t,i){return t[i]=ne(e,{placement:i,boundary:r,rootBoundary:o,padding:n})[_$4(i)],t},{});return Object.keys(g).sort(function(e,t){return g[e]-g[t]})}var le={name:"flip",enabled:true,phase:"main",fn:function(e){var t=e.state,i=e.options,s=e.name;if(!t.modifiersData[s]._skip){for(var c=i.mainAxis,d=void 0===c||c,f=i.altAxis,h=void 0===f||f,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(S),k=m||(O===S||!b?[$(S)]:function(e){if(_$4(e)===l$3)return [];var t=$(e);return [Y(e),t,Y(t)]}(S)),A=[S].concat(k).reduce(function(e,i){return e.concat(_$4(i)===l$3?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(H),R=q$3(H)===p$7,j=[r$3,o$3].indexOf(C)>=0,N=j?"width":"height",P=ne(t,{placement:H,boundary:g,rootBoundary:v,altBoundary:y,padding:u}),D=j?R?n$3:a:R?o$3:r$3;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$3,n$3,o$3,a].some(function(t){return e[t]>=0})}var de={name:"offset",enabled:true,phase:"main",requires:["popperOffsets"],fn:function(e){var t=e.state,i=e.options,s=e.name,o=i.offset,l=void 0===o?[0,0]:o,c=u$8.reduce(function(e,i){return e[i]=function(e,t,i){var s=_$4(e),o=[a,r$3].indexOf(s)>=0?-1:1,l="function"==typeof i?i(Object.assign({},t,{placement:e})):i,c=l[0],p=l[1];return c=c||0,p=(p||0)*o,[a,n$3].indexOf(s)>=0?{x:p,y:c}:{x:c,y:p}}(i,t.rects,l),e},{}),p=c[t.placement],d=p.x,f=p.y;null!=t.modifiersData.popperOffsets&&(t.modifiersData.popperOffsets.x+=d,t.modifiersData.popperOffsets.y+=f),t.modifiersData[s]=c;}};var fe={name:"preventOverflow",enabled:true,phase:"main",fn:function(e){var t=e.state,i=e.options,s=e.name,l=i.mainAxis,c=void 0===l||l,d=i.altAxis,f=void 0!==d&&d,h=i.boundary,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(t.placement),A=q$3(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$3:a,W="y"===E?o$3:n$3,X="y"===E?"height":"width",V=B[E],G=V+x[U],$=V-x[W],K=y?-H[X]/2:0,Y=A===p$7?L[X]:H[X],J=A===p$7?-H[X]:-L[X],Q=t.elements.arrow,Z=y&&Q?T$3(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(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(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$3:a,me="x"===E?o$3:n$3,ue=B[M],ge="y"===M?"height":"width",ve=ue+x[he],ye=ue-x[me],we=-1!==[r$3,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(t),n=b$3(t)&&function(e){var t=e.getBoundingClientRect(),i=A$3(t.width)/e.offsetWidth||1,s=A$3(t.height)/e.offsetHeight||1;return 1!==i||1!==s}(t),a=C$3(t),l=M$7(e,n,i),c={scrollLeft:0,scrollTop:0},p={x:0,y:0};return (o||!o&&!i)&&(("body"!==v$4(t)||Z(a))&&(c=(s=t)!==y$6(s)&&b$3(s)?{scrollLeft:(r=s).scrollLeft,scrollTop:r.scrollTop}:J(s)),b$3(t)?((p=M$7(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(e)?te(e):e.contextElement?te(e.contextElement):[],popper:te(t)};var n,c,f=function(e){var t=me(e);return g$6.reduce(function(e,i){return e.concat(t.filter(function(e){return e.phase===i}))},[])}((n=[].concat(s,a.options.modifiers),c=n.reduce(function(e,t){var i=e[t.name];return e[t.name]=i?Object.assign({},i,t,{options:Object.assign({},i.options,t.options),data:Object.assign({},i.data,t.data)}):t,e},{}),Object.keys(c).map(function(e){return c[e]})));return a.orderedModifiers=f.filter(function(e){return e.enabled}),a.orderedModifiers.forEach(function(e){var t=e.name,i=e.options,s=void 0===i?{}:i,r=e.effect;if("function"==typeof r){var o=r({state:a,name:t,instance:p,options:s}),n=function(){};l.push(o||n);}}),p.update()},forceUpdate:function(){if(!c){var e=a.elements,t=e.reference,i=e.popper;if(ge(t,i)){a.rects={reference:he(t,N$3(i),"fixed"===a.options.strategy),popper:T$3(i)},a.reset=false,a.placement=a.options.placement,a.orderedModifiers.forEach(function(e){return a.modifiersData[e.name]=Object.assign({},e.data)});for(var s=0;s<a.orderedModifiers.length;s++)if(true!==a.reset){var r=a.orderedModifiers[s],o=r.fn,n=r.options,l=void 0===n?{}:n,d=r.name;"function"==typeof o&&(a=o({state:a,options:l,name:d,instance:p})||a);}else a.reset=false,s=-1;}}},update:(r=function(){return new Promise(function(e){p.forceUpdate(),e(a);})},function(){return n||(n=new Promise(function(e){Promise.resolve().then(function(){n=void 0,e(r());});})),n}),destroy:function(){d(),c=true;}};if(!ge(e,t))return p;function d(){l.forEach(function(e){return e()}),l=[];}return p.setOptions(i).then(function(e){!c&&i.onFirstUpdate&&i.onFirstUpdate(e);}),p}}var ye=ve({defaultModifiers:[{name:"eventListeners",enabled:true,phase:"write",fn:function(){},effect:function(e){var t=e.state,i=e.instance,s=e.options,r=s.scroll,o=void 0===r||r,n=s.resize,a=void 0===n||n,l=y$6(t.elements.popper),c=[].concat(t.scrollParents.reference,t.scrollParents.popper);return o&&c.forEach(function(e){e.addEventListener("scroll",i.update,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(t.placement),variation:q$3(t.placement),popper:t.elements.popper,popperRect:t.rects.popper,gpuAcceleration:r,isFixed:"fixed"===t.options.strategy};null!=t.modifiersData.popperOffsets&&(t.styles.popper=Object.assign({},t.styles.popper,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,de,le,fe,U$3,{name:"hide",enabled:true,phase:"main",requiresIfExists:["preventOverflow"],fn:function(e){var t=e.state,i=e.name,s=t.rects.reference,r=t.rects.popper,o=t.modifiersData.preventOverflow,n=ne(t,{elementContext:"reference"}),a=ne(t,{altBoundary:true}),l=ce(n,s),c=ce(a,r,o),p=pe(l),d=pe(c);t.modifiersData[i]={referenceClippingOffsets:l,popperEscapeOffsets:c,isReferenceHidden:p,hasPopperEscaped:d},t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-reference-hidden":p,"data-popper-escaped":d});}}]});class we{constructor(e,t,i,s){this.anchor=e,this.popover=t,this.boundaryElement=this.setBoundary(s),this.options={placement:i,visibleClass:"data-show"},this.popover.classList.remove(this.options.visibleClass);}setBoundary(e){return "string"==typeof e?document.querySelector(e)||document.body:e||document.body}show(){this.popper&&this.popper.destroy(),this.popper=ye(this.anchor,this.popover,{tooltip:this.anchor,placement:this.options.placement,modifiers:[{name:"offset",options:{offset:[0,18]}},{name:"preventOverflow",options:{mainAxis:true,boundary:this.boundaryElement,rootBoundary:"document",padding:16}}]});}triggerUpdate(){this.popper.update();}hide(){this.popover.classList.remove(this.options.visibleClass);}}var be=i$3`::slotted(*):not([onDark]),::slotted(*):not([appearance=inverse]){color:var(--ds-auro-popover-text-color)}.popover{background-color:var(--ds-auro-popover-container-color);box-shadow:var(--ds-auro-popover-boxshadow-color)}.arrow:before{background-color:var(--ds-auro-popover-container-color);box-shadow:2px 2px 1px 0 var(--ds-auro-popover-boxshadow-color)}
|
|
11571
|
+
let s$2 = class s{registerComponent(e,t){customElements.get(e)||customElements.define(e,class extends t{});}closestElement(e,t=this,i=(t,s=t&&t.closest(e))=>t&&t!==document&&t!==window?s||i(t.getRootNode().host):null){return i(t)}handleComponentTagRename(e,t){const i=t.toLowerCase();e.tagName.toLowerCase()!==i&&e.setAttribute(i,true);}elementMatch(e,t){const i=t.toLowerCase();return e.tagName.toLowerCase()===i||e.hasAttribute(i)}getSlotText(e,t){const i=e.shadowRoot?.querySelector(`slot[name="${t}"]`);return (i?.assignedNodes({flatten:true})||[]).map(e=>e.textContent?.trim()).join(" ").trim()||null}};var r$3="top",o$3="bottom",n$3="right",a="left",l$3="auto",c$5=[r$3,o$3,n$3,a],p$7="start",d$3="end",f$7="viewport",h$6="popper",u$8=c$5.reduce(function(e,t){return e.concat([t+"-"+p$7,t+"-"+d$3])},[]),m$7=[].concat(c$5,[l$3]).reduce(function(e,t){return e.concat([t,t+"-"+p$7,t+"-"+d$3])},[]),g$6=["beforeRead","read","afterRead","beforeMain","main","afterMain","beforeWrite","write","afterWrite"];function v$4(e){return e?(e.nodeName||"").toLowerCase():null}function y$6(e){if(null==e)return window;if("[object Window]"!==e.toString()){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function w$6(e){return e instanceof y$6(e).Element||e instanceof Element}function b$3(e){return e instanceof y$6(e).HTMLElement||e instanceof HTMLElement}function x$3(e){return "undefined"!=typeof ShadowRoot&&(e instanceof y$6(e).ShadowRoot||e instanceof ShadowRoot)}var S$3={name:"applyStyles",enabled:true,phase:"write",fn:function(e){var t=e.state;Object.keys(t.elements).forEach(function(e){var i=t.styles[e]||{},s=t.attributes[e]||{},r=t.elements[e];b$3(r)&&v$4(r)&&(Object.assign(r.style,i),Object.keys(s).forEach(function(e){var t=s[e];false===t?r.removeAttribute(e):r.setAttribute(e,true===t?"":t);}));});},effect:function(e){var t=e.state,i={popper:{position:t.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(t.elements.popper.style,i.popper),t.styles=i,t.elements.arrow&&Object.assign(t.elements.arrow.style,i.arrow),function(){Object.keys(t.elements).forEach(function(e){var s=t.elements[e],r=t.attributes[e]||{},o=Object.keys(t.styles.hasOwnProperty(e)?t.styles[e]:i[e]).reduce(function(e,t){return e[t]="",e},{});b$3(s)&&v$4(s)&&(Object.assign(s.style,o),Object.keys(r).forEach(function(e){s.removeAttribute(e);}));});}},requires:["computeStyles"]};function _$4(e){return e.split("-")[0]}var A$3=Math.max,O=Math.min,k$6=Math.round;function T$3(){var e=navigator.userAgentData;return null!=e&&e.brands&&Array.isArray(e.brands)?e.brands.map(function(e){return e.brand+"/"+e.version}).join(" "):navigator.userAgent}function z$6(){return !/^((?!chrome|android).)*safari/i.test(T$3())}function E(e,t,i){ void 0===t&&(t=false),void 0===i&&(i=false);var s=e.getBoundingClientRect(),r=1,o=1;t&&b$3(e)&&(r=e.offsetWidth>0&&k$6(s.width)/e.offsetWidth||1,o=e.offsetHeight>0&&k$6(s.height)/e.offsetHeight||1);var n=(w$6(e)?y$6(e):window).visualViewport,a=!z$6()&&i,l=(s.left+(a&&n?n.offsetLeft:0))/r,c=(s.top+(a&&n?n.offsetTop:0))/o,p=s.width/r,d=s.height/o;return {width:p,height:d,top:c,right:l+p,bottom:c+d,left:l,x:l,y:c}}function M$7(e){var t=E(e),i=e.offsetWidth,s=e.offsetHeight;return Math.abs(t.width-i)<=1&&(i=t.width),Math.abs(t.height-s)<=1&&(s=t.height),{x:e.offsetLeft,y:e.offsetTop,width:i,height:s}}function B$3(e,t){var i=t.getRootNode&&t.getRootNode();if(e.contains(t))return true;if(i&&x$3(i)){var s=t;do{if(s&&e.isSameNode(s))return true;s=s.parentNode||s.host;}while(s)}return false}function L(e){return y$6(e).getComputedStyle(e)}function R$3(e){return ["table","td","th"].indexOf(v$4(e))>=0}function H$3(e){return ((w$6(e)?e.ownerDocument:e.document)||window.document).documentElement}function C$3(e){return "html"===v$4(e)?e:e.assignedSlot||e.parentNode||(x$3(e)?e.host:null)||H$3(e)}function D(e){return b$3(e)&&"fixed"!==L(e).position?e.offsetParent:null}function N$3(e){for(var t=y$6(e),i=D(e);i&&R$3(i)&&"static"===L(i).position;)i=D(i);return i&&("html"===v$4(i)||"body"===v$4(i)&&"static"===L(i).position)?t:i||function(e){var t=/firefox/i.test(T$3());if(/Trident/i.test(T$3())&&b$3(e)&&"fixed"===L(e).position)return null;var i=C$3(e);for(x$3(i)&&(i=i.host);b$3(i)&&["html","body"].indexOf(v$4(i))<0;){var s=L(i);if("none"!==s.transform||"none"!==s.perspective||"paint"===s.contain||-1!==["transform","perspective"].indexOf(s.willChange)||t&&"filter"===s.willChange||t&&s.filter&&"none"!==s.filter)return i;i=i.parentNode;}return null}(e)||t}function P(e){return ["top","bottom"].indexOf(e)>=0?"x":"y"}function j(e,t,i){return A$3(e,O(t,i))}function I(e){return Object.assign({},{top:0,right:0,bottom:0,left:0},e)}function q$3(e,t){return t.reduce(function(t,i){return t[i]=e,t},{})}var F={name:"arrow",enabled:true,phase:"main",fn:function(e){var t,i=e.state,s=e.name,l=e.options,p=i.elements.arrow,d=i.modifiersData.popperOffsets,f=_$4(i.placement),h=P(f),u=[a,n$3].indexOf(f)>=0?"height":"width";if(p&&d){var m=function(e,t){return I("number"!=typeof(e="function"==typeof e?e(Object.assign({},t.rects,{placement:t.placement})):e)?e:q$3(e,c$5))}(l.padding,i),g=M$7(p),v="y"===h?r$3:a,y="y"===h?o$3:n$3,w=i.rects.reference[u]+i.rects.reference[h]-d[h]-i.rects.popper[u],b=d[h]-i.rects.reference[h],x=N$3(p),S=x?"y"===h?x.clientHeight||0:x.clientWidth||0:0,A=w/2-b/2,O=m[v],k=S-g[u]-m[y],T=S/2-g[u]/2+A,z=j(O,T,k),E=h;i.modifiersData[s]=((t={})[E]=z,t.centerOffset=z-T,t);}},effect:function(e){var t=e.state,i=e.options.element,s=void 0===i?"[data-popper-arrow]":i;null!=s&&("string"!=typeof s||(s=t.elements.popper.querySelector(s)))&&B$3(t.elements.popper,s)&&(t.elements.arrow=s);},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function U$3(e){return e.split("-")[1]}var V={top:"auto",right:"auto",bottom:"auto",left:"auto"};function W(e){var t,i=e.popper,s=e.popperRect,l=e.placement,c=e.variation,p=e.offsets,f=e.position,h=e.gpuAcceleration,u=e.adaptive,m=e.roundOffsets,g=e.isFixed,v=p.x,w=void 0===v?0:v,b=p.y,x=void 0===b?0:b,S="function"==typeof m?m({x:w,y:x}):{x:w,y:x};w=S.x,x=S.y;var _=p.hasOwnProperty("x"),A=p.hasOwnProperty("y"),O=a,T=r$3,z=window;if(u){var E=N$3(i),M="clientHeight",B="clientWidth";if(E===y$6(i)&&"static"!==L(E=H$3(i)).position&&"absolute"===f&&(M="scrollHeight",B="scrollWidth"),l===r$3||(l===a||l===n$3)&&c===d$3)T=o$3,x-=(g&&E===z&&z.visualViewport?z.visualViewport.height:E[M])-s.height,x*=h?1:-1;if(l===a||(l===r$3||l===o$3)&&c===d$3)O=n$3,w-=(g&&E===z&&z.visualViewport?z.visualViewport.width:E[B])-s.width,w*=h?1:-1;}var R,C=Object.assign({position:f},u&&V),D=true===m?function(e,t){var i=e.x,s=e.y,r=t.devicePixelRatio||1;return {x:k$6(i*r)/r||0,y:k$6(s*r)/r||0}}({x:w,y:x},y$6(i)):{x:w,y:x};return w=D.x,x=D.y,h?Object.assign({},C,((R={})[T]=A?"0":"",R[O]=_?"0":"",R.transform=(z.devicePixelRatio||1)<=1?"translate("+w+"px, "+x+"px)":"translate3d("+w+"px, "+x+"px, 0)",R)):Object.assign({},C,((t={})[T]=A?x+"px":"",t[O]=_?w+"px":"",t.transform="",t))}var X={passive:true};var $={left:"right",right:"left",bottom:"top",top:"bottom"};function G(e){return e.replace(/left|right|bottom|top/g,function(e){return $[e]})}var K={start:"end",end:"start"};function Y(e){return e.replace(/start|end/g,function(e){return K[e]})}function J(e){var t=y$6(e);return {scrollLeft:t.pageXOffset,scrollTop:t.pageYOffset}}function Q(e){return E(H$3(e)).left+J(e).scrollLeft}function Z(e){var t=L(e),i=t.overflow,s=t.overflowX,r=t.overflowY;return /auto|scroll|overlay|hidden/.test(i+r+s)}function ee(e){return ["html","body","#document"].indexOf(v$4(e))>=0?e.ownerDocument.body:b$3(e)&&Z(e)?e:ee(C$3(e))}function te(e,t){var i;void 0===t&&(t=[]);var s=ee(e),r=s===(null==(i=e.ownerDocument)?void 0:i.body),o=y$6(s),n=r?[o].concat(o.visualViewport||[],Z(s)?s:[]):s,a=t.concat(n);return r?a:a.concat(te(C$3(n)))}function ie(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function se(e,t,i){return t===f$7?ie(function(e,t){var i=y$6(e),s=H$3(e),r=i.visualViewport,o=s.clientWidth,n=s.clientHeight,a=0,l=0;if(r){o=r.width,n=r.height;var c=z$6();(c||!c&&"fixed"===t)&&(a=r.offsetLeft,l=r.offsetTop);}return {width:o,height:n,x:a+Q(e),y:l}}(e,i)):w$6(t)?function(e,t){var i=E(e,false,"fixed"===t);return i.top=i.top+e.clientTop,i.left=i.left+e.clientLeft,i.bottom=i.top+e.clientHeight,i.right=i.left+e.clientWidth,i.width=e.clientWidth,i.height=e.clientHeight,i.x=i.left,i.y=i.top,i}(t,i):ie(function(e){var t,i=H$3(e),s=J(e),r=null==(t=e.ownerDocument)?void 0:t.body,o=A$3(i.scrollWidth,i.clientWidth,r?r.scrollWidth:0,r?r.clientWidth:0),n=A$3(i.scrollHeight,i.clientHeight,r?r.scrollHeight:0,r?r.clientHeight:0),a=-s.scrollLeft+Q(e),l=-s.scrollTop;return "rtl"===L(r||i).direction&&(a+=A$3(i.clientWidth,r?r.clientWidth:0)-o),{width:o,height:n,x:a,y:l}}(H$3(e)))}function re(e,t,i,s){var r="clippingParents"===t?function(e){var t=te(C$3(e)),i=["absolute","fixed"].indexOf(L(e).position)>=0&&b$3(e)?N$3(e):e;return w$6(i)?t.filter(function(e){return w$6(e)&&B$3(e,i)&&"body"!==v$4(e)}):[]}(e):[].concat(t),o=[].concat(r,[i]),n=o[0],a=o.reduce(function(t,i){var r=se(e,i,s);return t.top=A$3(r.top,t.top),t.right=O(r.right,t.right),t.bottom=O(r.bottom,t.bottom),t.left=A$3(r.left,t.left),t},se(e,n,s));return a.width=a.right-a.left,a.height=a.bottom-a.top,a.x=a.left,a.y=a.top,a}function oe(e){var t,i=e.reference,s=e.element,l=e.placement,c=l?_$4(l):null,f=l?U$3(l):null,h=i.x+i.width/2-s.width/2,u=i.y+i.height/2-s.height/2;switch(c){case r$3:t={x:h,y:i.y-s.height};break;case o$3:t={x:h,y:i.y+i.height};break;case n$3:t={x:i.x+i.width,y:u};break;case a:t={x:i.x-s.width,y:u};break;default:t={x:i.x,y:i.y};}var m=c?P(c):null;if(null!=m){var g="y"===m?"height":"width";switch(f){case p$7:t[m]=t[m]-(i[g]/2-s[g]/2);break;case d$3:t[m]=t[m]+(i[g]/2-s[g]/2);}}return t}function ne(e,t){ void 0===t&&(t={});var i=t,s=i.placement,a=void 0===s?e.placement:s,l=i.strategy,p=void 0===l?e.strategy:l,d=i.boundary,u=void 0===d?"clippingParents":d,m=i.rootBoundary,g=void 0===m?f$7:m,v=i.elementContext,y=void 0===v?h$6:v,b=i.altBoundary,x=void 0!==b&&b,S=i.padding,_=void 0===S?0:S,A=I("number"!=typeof _?_:q$3(_,c$5)),O=y===h$6?"reference":h$6,k=e.rects.popper,T=e.elements[x?O:y],z=re(w$6(T)?T:T.contextElement||H$3(e.elements.popper),u,g,p),M=E(e.elements.reference),B=oe({reference:M,element:k,placement:a}),L=ie(Object.assign({},k,B)),R=y===h$6?L:M,C={top:z.top-R.top+A.top,bottom:R.bottom-z.bottom+A.bottom,left:z.left-R.left+A.left,right:R.right-z.right+A.right},D=e.modifiersData.offset;if(y===h$6&&D){var N=D[a];Object.keys(C).forEach(function(e){var t=[n$3,o$3].indexOf(e)>=0?1:-1,i=[r$3,o$3].indexOf(e)>=0?"y":"x";C[e]+=N[i]*t;});}return C}function ae(e,t){ void 0===t&&(t={});var i=t,s=i.placement,r=i.boundary,o=i.rootBoundary,n=i.padding,a=i.flipVariations,l=i.allowedAutoPlacements,p=void 0===l?m$7:l,d=U$3(s),f=d?a?u$8:u$8.filter(function(e){return U$3(e)===d}):c$5,h=f.filter(function(e){return p.indexOf(e)>=0});0===h.length&&(h=f);var g=h.reduce(function(t,i){return t[i]=ne(e,{placement:i,boundary:r,rootBoundary:o,padding:n})[_$4(i)],t},{});return Object.keys(g).sort(function(e,t){return g[e]-g[t]})}var le={name:"flip",enabled:true,phase:"main",fn:function(e){var t=e.state,i=e.options,s=e.name;if(!t.modifiersData[s]._skip){for(var c=i.mainAxis,d=void 0===c||c,f=i.altAxis,h=void 0===f||f,u=i.fallbackPlacements,m=i.padding,g=i.boundary,v=i.rootBoundary,y=i.altBoundary,w=i.flipVariations,b=void 0===w||w,x=i.allowedAutoPlacements,S=t.options.placement,A=_$4(S),O=u||(A===S||!b?[G(S)]:function(e){if(_$4(e)===l$3)return [];var t=G(e);return [Y(e),t,Y(t)]}(S)),k=[S].concat(O).reduce(function(e,i){return e.concat(_$4(i)===l$3?ae(t,{placement:i,boundary:g,rootBoundary:v,padding:m,flipVariations:b,allowedAutoPlacements:x}):i)},[]),T=t.rects.reference,z=t.rects.popper,E=new Map,M=true,B=k[0],L=0;L<k.length;L++){var R=k[L],H=_$4(R),C=U$3(R)===p$7,D=[r$3,o$3].indexOf(H)>=0,N=D?"width":"height",P=ne(t,{placement:R,boundary:g,rootBoundary:v,altBoundary:y,padding:m}),j=D?C?n$3:a:C?o$3:r$3;T[N]>z[N]&&(j=G(j));var I=G(j),q=[];if(d&&q.push(P[H]<=0),h&&q.push(P[j]<=0,P[I]<=0),q.every(function(e){return e})){B=R,M=false;break}E.set(R,q);}if(M)for(var F=function(e){var t=k.find(function(t){var i=E.get(t);if(i)return i.slice(0,e).every(function(e){return e})});if(t)return B=t,"break"},V=b?3:1;V>0;V--){if("break"===F(V))break}t.placement!==B&&(t.modifiersData[s]._skip=true,t.placement=B,t.reset=true);}},requiresIfExists:["offset"],data:{_skip:false}};function ce(e,t,i){return void 0===i&&(i={x:0,y:0}),{top:e.top-t.height-i.y,right:e.right-t.width+i.x,bottom:e.bottom-t.height+i.y,left:e.left-t.width-i.x}}function pe(e){return [r$3,n$3,o$3,a].some(function(t){return e[t]>=0})}var de={name:"offset",enabled:true,phase:"main",requires:["popperOffsets"],fn:function(e){var t=e.state,i=e.options,s=e.name,o=i.offset,l=void 0===o?[0,0]:o,c=m$7.reduce(function(e,i){return e[i]=function(e,t,i){var s=_$4(e),o=[a,r$3].indexOf(s)>=0?-1:1,l="function"==typeof i?i(Object.assign({},t,{placement:e})):i,c=l[0],p=l[1];return c=c||0,p=(p||0)*o,[a,n$3].indexOf(s)>=0?{x:p,y:c}:{x:c,y:p}}(i,t.rects,l),e},{}),p=c[t.placement],d=p.x,f=p.y;null!=t.modifiersData.popperOffsets&&(t.modifiersData.popperOffsets.x+=d,t.modifiersData.popperOffsets.y+=f),t.modifiersData[s]=c;}};var fe={name:"preventOverflow",enabled:true,phase:"main",fn:function(e){var t=e.state,i=e.options,s=e.name,l=i.mainAxis,c=void 0===l||l,d=i.altAxis,f=void 0!==d&&d,h=i.boundary,u=i.rootBoundary,m=i.altBoundary,g=i.padding,v=i.tether,y=void 0===v||v,w=i.tetherOffset,b=void 0===w?0:w,x=ne(t,{boundary:h,rootBoundary:u,padding:g,altBoundary:m}),S=_$4(t.placement),k=U$3(t.placement),T=!k,z=P(S),E="x"===z?"y":"x",B=t.modifiersData.popperOffsets,L=t.rects.reference,R=t.rects.popper,H="function"==typeof b?b(Object.assign({},t.rects,{placement:t.placement})):b,C="number"==typeof H?{mainAxis:H,altAxis:H}:Object.assign({mainAxis:0,altAxis:0},H),D=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,I={x:0,y:0};if(B){if(c){var q,F="y"===z?r$3:a,V="y"===z?o$3:n$3,W="y"===z?"height":"width",X=B[z],$=X+x[F],G=X-x[V],K=y?-R[W]/2:0,Y=k===p$7?L[W]:R[W],J=k===p$7?-R[W]:-L[W],Q=t.elements.arrow,Z=y&&Q?M$7(Q):{width:0,height:0},ee=t.modifiersData["arrow#persistent"]?t.modifiersData["arrow#persistent"].padding:{top:0,right:0,bottom:0,left:0},te=ee[F],ie=ee[V],se=j(0,L[W],Z[W]),re=T?L[W]/2-K-se-te-C.mainAxis:Y-se-te-C.mainAxis,oe=T?-L[W]/2+K+se+ie+C.mainAxis:J+se+ie+C.mainAxis,ae=t.elements.arrow&&N$3(t.elements.arrow),le=ae?"y"===z?ae.clientTop||0:ae.clientLeft||0:0,ce=null!=(q=null==D?void 0:D[z])?q:0,pe=X+oe-ce,de=j(y?O($,X+re-ce-le):$,X,y?A$3(G,pe):G);B[z]=de,I[z]=de-X;}if(f){var fe,he="x"===z?r$3:a,ue="x"===z?o$3:n$3,me=B[E],ge="y"===E?"height":"width",ve=me+x[he],ye=me-x[ue],we=-1!==[r$3,a].indexOf(S),be=null!=(fe=null==D?void 0:D[E])?fe:0,xe=we?ve:me-L[ge]-R[ge]-be+C.altAxis,Se=we?me+L[ge]+R[ge]-be-C.altAxis:ye,_e=y&&we?function(e,t,i){var s=j(e,t,i);return s>i?i:s}(xe,me,Se):j(y?xe:ve,me,y?Se:ye);B[E]=_e,I[E]=_e-me;}t.modifiersData[s]=I;}},requiresIfExists:["offset"]};function he(e,t,i){ void 0===i&&(i=false);var s,r,o=b$3(t),n=b$3(t)&&function(e){var t=e.getBoundingClientRect(),i=k$6(t.width)/e.offsetWidth||1,s=k$6(t.height)/e.offsetHeight||1;return 1!==i||1!==s}(t),a=H$3(t),l=E(e,n,i),c={scrollLeft:0,scrollTop:0},p={x:0,y:0};return (o||!o&&!i)&&(("body"!==v$4(t)||Z(a))&&(c=(s=t)!==y$6(s)&&b$3(s)?{scrollLeft:(r=s).scrollLeft,scrollTop:r.scrollTop}:J(s)),b$3(t)?((p=E(t,true)).x+=t.clientLeft,p.y+=t.clientTop):a&&(p.x=Q(a))),{x:l.left+c.scrollLeft-p.x,y:l.top+c.scrollTop-p.y,width:l.width,height:l.height}}function ue(e){var t=new Map,i=new Set,s=[];function r(e){i.add(e.name),[].concat(e.requires||[],e.requiresIfExists||[]).forEach(function(e){if(!i.has(e)){var s=t.get(e);s&&r(s);}}),s.push(e);}return e.forEach(function(e){t.set(e.name,e);}),e.forEach(function(e){i.has(e.name)||r(e);}),s}var me={placement:"bottom",modifiers:[],strategy:"absolute"};function ge(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];return !t.some(function(e){return !(e&&"function"==typeof e.getBoundingClientRect)})}function ve(e){ void 0===e&&(e={});var t=e,i=t.defaultModifiers,s=void 0===i?[]:i,r=t.defaultOptions,o=void 0===r?me:r;return function(e,t,i){ void 0===i&&(i=o);var r,n,a={placement:"bottom",orderedModifiers:[],options:Object.assign({},me,o),modifiersData:{},elements:{reference:e,popper:t},attributes:{},styles:{}},l=[],c=false,p={state:a,setOptions:function(i){var r="function"==typeof i?i(a.options):i;d(),a.options=Object.assign({},o,a.options,r),a.scrollParents={reference:w$6(e)?te(e):e.contextElement?te(e.contextElement):[],popper:te(t)};var n,c,f=function(e){var t=ue(e);return g$6.reduce(function(e,i){return e.concat(t.filter(function(e){return e.phase===i}))},[])}((n=[].concat(s,a.options.modifiers),c=n.reduce(function(e,t){var i=e[t.name];return e[t.name]=i?Object.assign({},i,t,{options:Object.assign({},i.options,t.options),data:Object.assign({},i.data,t.data)}):t,e},{}),Object.keys(c).map(function(e){return c[e]})));return a.orderedModifiers=f.filter(function(e){return e.enabled}),a.orderedModifiers.forEach(function(e){var t=e.name,i=e.options,s=void 0===i?{}:i,r=e.effect;if("function"==typeof r){var o=r({state:a,name:t,instance:p,options:s}),n=function(){};l.push(o||n);}}),p.update()},forceUpdate:function(){if(!c){var e=a.elements,t=e.reference,i=e.popper;if(ge(t,i)){a.rects={reference:he(t,N$3(i),"fixed"===a.options.strategy),popper:M$7(i)},a.reset=false,a.placement=a.options.placement,a.orderedModifiers.forEach(function(e){return a.modifiersData[e.name]=Object.assign({},e.data)});for(var s=0;s<a.orderedModifiers.length;s++)if(true!==a.reset){var r=a.orderedModifiers[s],o=r.fn,n=r.options,l=void 0===n?{}:n,d=r.name;"function"==typeof o&&(a=o({state:a,options:l,name:d,instance:p})||a);}else a.reset=false,s=-1;}}},update:(r=function(){return new Promise(function(e){p.forceUpdate(),e(a);})},function(){return n||(n=new Promise(function(e){Promise.resolve().then(function(){n=void 0,e(r());});})),n}),destroy:function(){d(),c=true;}};if(!ge(e,t))return p;function d(){l.forEach(function(e){return e()}),l=[];}return p.setOptions(i).then(function(e){!c&&i.onFirstUpdate&&i.onFirstUpdate(e);}),p}}var ye=ve({defaultModifiers:[{name:"eventListeners",enabled:true,phase:"write",fn:function(){},effect:function(e){var t=e.state,i=e.instance,s=e.options,r=s.scroll,o=void 0===r||r,n=s.resize,a=void 0===n||n,l=y$6(t.elements.popper),c=[].concat(t.scrollParents.reference,t.scrollParents.popper);return o&&c.forEach(function(e){e.addEventListener("scroll",i.update,X);}),a&&l.addEventListener("resize",i.update,X),function(){o&&c.forEach(function(e){e.removeEventListener("scroll",i.update,X);}),a&&l.removeEventListener("resize",i.update,X);}},data:{}},{name:"popperOffsets",enabled:true,phase:"read",fn:function(e){var t=e.state,i=e.name;t.modifiersData[i]=oe({reference:t.rects.reference,element:t.rects.popper,placement:t.placement});},data:{}},{name:"computeStyles",enabled:true,phase:"beforeWrite",fn:function(e){var t=e.state,i=e.options,s=i.gpuAcceleration,r=void 0===s||s,o=i.adaptive,n=void 0===o||o,a=i.roundOffsets,l=void 0===a||a,c={placement:_$4(t.placement),variation:U$3(t.placement),popper:t.elements.popper,popperRect:t.rects.popper,gpuAcceleration:r,isFixed:"fixed"===t.options.strategy};null!=t.modifiersData.popperOffsets&&(t.styles.popper=Object.assign({},t.styles.popper,W(Object.assign({},c,{offsets:t.modifiersData.popperOffsets,position:t.options.strategy,adaptive:n,roundOffsets:l})))),null!=t.modifiersData.arrow&&(t.styles.arrow=Object.assign({},t.styles.arrow,W(Object.assign({},c,{offsets:t.modifiersData.arrow,position:"absolute",adaptive:false,roundOffsets:l})))),t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-placement":t.placement});},data:{}},S$3,de,le,fe,F,{name:"hide",enabled:true,phase:"main",requiresIfExists:["preventOverflow"],fn:function(e){var t=e.state,i=e.name,s=t.rects.reference,r=t.rects.popper,o=t.modifiersData.preventOverflow,n=ne(t,{elementContext:"reference"}),a=ne(t,{altBoundary:true}),l=ce(n,s),c=ce(a,r,o),p=pe(l),d=pe(c);t.modifiersData[i]={referenceClippingOffsets:l,popperEscapeOffsets:c,isReferenceHidden:p,hasPopperEscaped:d},t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-reference-hidden":p,"data-popper-escaped":d});}}]});class we{constructor(e,t,i,s){this.anchor=e,this.popover=t,this.boundaryElement=this.setBoundary(s),this.options={placement:i,visibleClass:"data-show"},this.popover.classList.remove(this.options.visibleClass);}setBoundary(e){return "string"==typeof e?document.querySelector(e)||document.body:e||document.body}show(){this.popper&&this.popper.destroy(),this.popper=ye(this.anchor,this.popover,{tooltip:this.anchor,placement:this.options.placement,modifiers:[{name:"offset",options:{offset:[0,18]}},{name:"preventOverflow",options:{mainAxis:true,boundary:this.boundaryElement,rootBoundary:"document",padding:16}}]});}triggerUpdate(){this.popper.update();}hide(){this.popover.classList.remove(this.options.visibleClass);}}var be=i$3`::slotted(*):not([onDark]),::slotted(*):not([appearance=inverse]){color:var(--ds-auro-popover-text-color)}.popover{background-color:var(--ds-auro-popover-container-color);box-shadow:var(--ds-auro-popover-boxshadow-color)}.arrow:before{background-color:var(--ds-auro-popover-container-color);box-shadow:2px 2px 1px 0 var(--ds-auro-popover-boxshadow-color)}
|
|
11575
11572
|
`,xe=i$3`.body-default{font-size:var(--wcss-body-default-font-size, 1rem);line-height:var(--wcss-body-default-line-height, 1.5rem)}.body-default,.body-lg{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-weight, 450);letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-lg{font-size:var(--wcss-body-lg-font-size, 1.125rem);line-height:var(--wcss-body-lg-line-height, 1.625rem)}.body-sm{font-size:var(--wcss-body-sm-font-size, .875rem);line-height:var(--wcss-body-sm-line-height, 1.25rem)}.body-sm,.body-xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-weight, 450);letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-xs{font-size:var(--wcss-body-xs-font-size, .75rem);line-height:var(--wcss-body-xs-line-height, 1rem)}.body-2xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-size:var(--wcss-body-2xs-font-size, .625rem);font-weight:var(--wcss-body-weight, 450);letter-spacing:var(--wcss-body-letter-spacing, 0);line-height:var(--wcss-body-2xs-line-height, .875rem)}.display-2xl{font-family:var(--wcss-display-2xl-family, "AS Circular"),var(--wcss-display-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-2xl-font-size, clamp(3.5rem, 6vw, 5.375rem));font-weight:var(--wcss-display-2xl-weight, 300);letter-spacing:var(--wcss-display-2xl-letter-spacing, 0);line-height:var(--wcss-display-2xl-line-height, 1.3)}.display-xl{font-family:var(--wcss-display-xl-family, "AS Circular"),var(--wcss-display-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-xl-font-size, clamp(3rem, 5.3333333333vw, 4.5rem));font-weight:var(--wcss-display-xl-weight, 300);letter-spacing:var(--wcss-display-xl-letter-spacing, 0);line-height:var(--wcss-display-xl-line-height, 1.3)}.display-lg{font-family:var(--wcss-display-lg-family, "AS Circular"),var(--wcss-display-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-lg-font-size, clamp(2.75rem, 4.6666666667vw, 4rem));font-weight:var(--wcss-display-lg-weight, 300);letter-spacing:var(--wcss-display-lg-letter-spacing, 0);line-height:var(--wcss-display-lg-line-height, 1.3)}.display-md{font-family:var(--wcss-display-md-family, "AS Circular"),var(--wcss-display-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-md-font-size, clamp(2.5rem, 4vw, 3.5rem));font-weight:var(--wcss-display-md-weight, 300);letter-spacing:var(--wcss-display-md-letter-spacing, 0);line-height:var(--wcss-display-md-line-height, 1.3)}.display-sm{font-family:var(--wcss-display-sm-family, "AS Circular"),var(--wcss-display-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-sm-font-size, clamp(2rem, 3.6666666667vw, 3rem));font-weight:var(--wcss-display-sm-weight, 300);letter-spacing:var(--wcss-display-sm-letter-spacing, 0);line-height:var(--wcss-display-sm-line-height, 1.3)}.display-xs{font-family:var(--wcss-display-xs-family, "AS Circular"),var(--wcss-display-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-xs-font-size, clamp(1.75rem, 3vw, 2.375rem));font-weight:var(--wcss-display-xs-weight, 300);letter-spacing:var(--wcss-display-xs-letter-spacing, 0);line-height:var(--wcss-display-xs-line-height, 1.3)}.heading-xl{font-family:var(--wcss-heading-xl-family, "AS Circular"),var(--wcss-heading-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-xl-font-size, clamp(2rem, 3vw, 2.5rem));font-weight:var(--wcss-heading-xl-weight, 300);letter-spacing:var(--wcss-heading-xl-letter-spacing, 0);line-height:var(--wcss-heading-xl-line-height, 1.3)}.heading-lg{font-family:var(--wcss-heading-lg-family, "AS Circular"),var(--wcss-heading-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-lg-font-size, clamp(1.75rem, 2.6666666667vw, 2.25rem));font-weight:var(--wcss-heading-lg-weight, 300);letter-spacing:var(--wcss-heading-lg-letter-spacing, 0);line-height:var(--wcss-heading-lg-line-height, 1.3)}.heading-md{font-family:var(--wcss-heading-md-family, "AS Circular"),var(--wcss-heading-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-md-font-size, clamp(1.625rem, 2.3333333333vw, 1.75rem));font-weight:var(--wcss-heading-md-weight, 300);letter-spacing:var(--wcss-heading-md-letter-spacing, 0);line-height:var(--wcss-heading-md-line-height, 1.3)}.heading-sm{font-family:var(--wcss-heading-sm-family, "AS Circular"),var(--wcss-heading-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-sm-font-size, clamp(1.375rem, 2vw, 1.5rem));font-weight:var(--wcss-heading-sm-weight, 300);letter-spacing:var(--wcss-heading-sm-letter-spacing, 0);line-height:var(--wcss-heading-sm-line-height, 1.3)}.heading-xs{font-family:var(--wcss-heading-xs-family, "AS Circular"),var(--wcss-heading-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-xs-font-size, clamp(1.25rem, 1.6666666667vw, 1.25rem));font-weight:var(--wcss-heading-xs-weight, 450);letter-spacing:var(--wcss-heading-xs-letter-spacing, 0);line-height:var(--wcss-heading-xs-line-height, 1.3)}.heading-2xs{font-family:var(--wcss-heading-2xs-family, "AS Circular"),var(--wcss-heading-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-2xs-font-size, clamp(1.125rem, 1.5vw, 1.125rem));font-weight:var(--wcss-heading-2xs-weight, 450);letter-spacing:var(--wcss-heading-2xs-letter-spacing, 0);line-height:var(--wcss-heading-2xs-line-height, 1.3)}.accent-2xl{font-family:var(--wcss-accent-2xl-family, "Good OT"),var(--wcss-accent-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-2xl-font-size, clamp(2rem, 3.1666666667vw, 2.375rem));font-weight:var(--wcss-accent-2xl-weight, 450);letter-spacing:var(--wcss-accent-2xl-letter-spacing, .05em);line-height:var(--wcss-accent-2xl-line-height, 1)}.accent-2xl,.accent-xl{text-transform:uppercase}.accent-xl{font-family:var(--wcss-accent-xl-family, "Good OT"),var(--wcss-accent-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-xl-font-size, clamp(1.625rem, 2.3333333333vw, 2rem));font-weight:var(--wcss-accent-xl-weight, 450);letter-spacing:var(--wcss-accent-xl-letter-spacing, .05em);line-height:var(--wcss-accent-xl-line-height, 1.3)}.accent-lg{font-family:var(--wcss-accent-lg-family, "Good OT"),var(--wcss-accent-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-lg-font-size, clamp(1.5rem, 2.1666666667vw, 1.75rem));font-weight:var(--wcss-accent-lg-weight, 450);letter-spacing:var(--wcss-accent-lg-letter-spacing, .05em);line-height:var(--wcss-accent-lg-line-height, 1.3)}.accent-lg,.accent-md{text-transform:uppercase}.accent-md{font-family:var(--wcss-accent-md-family, "Good OT"),var(--wcss-accent-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-md-font-size, clamp(1.375rem, 1.8333333333vw, 1.5rem));font-weight:var(--wcss-accent-md-weight, 500);letter-spacing:var(--wcss-accent-md-letter-spacing, .05em);line-height:var(--wcss-accent-md-line-height, 1.3)}.accent-sm{font-family:var(--wcss-accent-sm-family, "Good OT"),var(--wcss-accent-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-sm-font-size, clamp(1.125rem, 1.5vw, 1.25rem));font-weight:var(--wcss-accent-sm-weight, 500);letter-spacing:var(--wcss-accent-sm-letter-spacing, .05em);line-height:var(--wcss-accent-sm-line-height, 1.3)}.accent-sm,.accent-xs{text-transform:uppercase}.accent-xs{font-family:var(--wcss-accent-xs-family, "Good OT"),var(--wcss-accent-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-xs-font-size, clamp(1rem, 1.3333333333vw, 1rem));font-weight:var(--wcss-accent-xs-weight, 500);letter-spacing:var(--wcss-accent-xs-letter-spacing, .1em);line-height:var(--wcss-accent-xs-line-height, 1.3)}.accent-2xs{font-family:var(--wcss-accent-2xs-family, "Good OT"),var(--wcss-accent-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-2xs-font-size, clamp(.875rem, 1.1666666667vw, .875rem));font-weight:var(--wcss-accent-2xs-weight, 450);letter-spacing:var(--wcss-accent-2xs-letter-spacing, .1em);line-height:var(--wcss-accent-2xs-line-height, 1.3);text-transform:uppercase}:focus:not(:focus-visible){outline:3px solid transparent}.util_displayInline{display:inline}.util_displayInlineBlock{display:inline-block}.util_displayBlock{display:block}.util_displayFlex{display:flex}.util_displayHidden,:host(:not([data-show])) .popover,:host([disabled]) .popover,:host([addSpace]) :host(:not([data-show])) .popover{display:none}.util_displayHiddenVisually{position:absolute;overflow:hidden;clip:rect(1px,1px,1px,1px);width:1px;height:1px;padding:0;border:0}.util_insetNone{padding:0}.util_insetXxxs{padding:.125rem}.util_insetXxxs--stretch{padding:.25rem .125rem}.util_insetXxxs--squish{padding:0 .125rem}.util_insetXxs{padding:.25rem}.util_insetXxs--stretch{padding:.375rem .25rem}.util_insetXxs--squish{padding:.125rem .25rem}.util_insetXs{padding:.5rem}.util_insetXs--stretch{padding:.75rem .5rem}.util_insetXs--squish{padding:.25rem .5rem}.util_insetSm{padding:.75rem}.util_insetSm--stretch{padding:1.125rem .75rem}.util_insetSm--squish{padding:.375rem .75rem}.util_insetMd{padding:1rem}.util_insetMd--stretch{padding:1.5rem 1rem}.util_insetMd--squish{padding:.5rem 1rem}.util_insetLg{padding:1.5rem}.util_insetLg--stretch{padding:2.25rem 1.5rem}.util_insetLg--squish{padding:.75rem 1.5rem}.util_insetXl{padding:2rem}.util_insetXl--stretch{padding:3rem 2rem}.util_insetXl--squish{padding:1rem 2rem}.util_insetXxl{padding:3rem}.util_insetXxl--stretch{padding:4.5rem 3rem}.util_insetXxl--squish{padding:1.5rem 3rem}.util_insetXxxl{padding:4rem}.util_insetXxxl--stretch{padding:6rem 4rem}.util_insetXxxl--squish{padding:2rem 4rem}::slotted(*){white-space:normal}::slotted(*:hover){cursor:pointer}[data-trigger-placement]::slotted(*:hover){position:relative}[data-trigger-placement]::slotted(*:hover):before{position:absolute;left:0;display:block;width:100%;height:calc(var(--ds-size-200, 1rem) + var(--ds-size-50, .25rem));content:""}[data-trigger-placement^=top]::slotted(*:hover):before{top:calc(-1 * (var(--ds-size-200, 1rem) + var(--ds-size-50, .25rem)))}[data-trigger-placement^=bottom]::slotted(*:hover):before{bottom:calc(-1 * (var(--ds-size-200, 1rem) + var(--ds-size-50, .25rem)))}:host([data-show]) .popover{z-index:var(--ds-depth-tooltip, 400)}:host([removeSpace]) .popover{margin:calc(-1 * (var(--ds-size-50, .25rem) + 1px)) 0!important}:host([addSpace]) .popover{margin:var(--ds-size-200, 1rem) 0!important}:host([addSpace]) [data-trigger-placement]::slotted(*:hover):before{height:var(--ds-size-500, 2.5rem)}:host([addSpace]) [data-trigger-placement^=top]::slotted(*:hover):before{top:calc(-1 * var(--ds-size-500, 2.5rem))}:host([addSpace]) [data-trigger-placement^=bottom]::slotted(*:hover):before{bottom:calc(-1 * var(--ds-size-500, 2.5rem))}.popover{display:inline-block;max-width:calc(100% - var(--ds-size-400, 2rem));border-radius:var(--ds-border-radius, .375rem)}@media screen and (min-width:576px){.popover{max-width:50%}}@media screen and (min-width:768px){.popover{max-width:40%}}@media screen and (min-width:1024px){.popover{max-width:27rem}}[data-popper-placement^=top]>.arrow{bottom:calc(-1 * (var(--ds-size-100, .5rem) + var(--ds-size-25, .125rem)))}[data-popper-placement^=top]>.arrow:before{top:calc(-1 * var(--ds-size-200, 1rem));left:calc(-1 * var(--ds-size-75, .375rem));transform:rotate(45deg)}[data-popper-placement^=bottom]>.arrow{top:calc(-1 * (var(--ds-size-100, .5rem) + var(--ds-size-25, .125rem)))}[data-popper-placement^=bottom]>.arrow:before{top:var(--ds-size-50, .25rem);right:calc(-1 * var(--ds-size-200, 1rem));transform:rotate(-135deg)}.arrow{position:relative;margin-top:-var(--ds-size-100,.5rem)}.arrow:before{position:absolute;width:var(--ds-size-150, .75rem);height:var(--ds-size-150, .75rem);content:""}
|
|
11576
11573
|
`,Se=i$3`: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)}
|
|
11577
|
-
`;class _e extends i$1{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.
|
|
11578
|
-
<div
|
|
11574
|
+
`;class _e extends i$1{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$2;}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$3`${xe}`,i$3`${be}`,i$3`${Se}`]}static register(e="auro-popover"){s$2.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$5`
|
|
11575
|
+
<div
|
|
11576
|
+
id="popover"
|
|
11577
|
+
class="popover util_insetLg body-default"
|
|
11578
|
+
part="popover"
|
|
11579
|
+
role="tooltip"
|
|
11580
|
+
aria-hidden="${this.isPopoverVisible?"false":"true"}">
|
|
11579
11581
|
<div id="arrow" class="arrow" data-popper-arrow></div>
|
|
11580
|
-
<
|
|
11582
|
+
<slot></slot>
|
|
11581
11583
|
</div>
|
|
11582
11584
|
|
|
11583
|
-
<span>
|
|
11585
|
+
<span role="presentation">
|
|
11584
11586
|
<slot name="trigger" data-trigger-placement="${this.placement}"></slot>
|
|
11585
11587
|
</span>
|
|
11586
11588
|
`}}
|
|
11587
11589
|
|
|
11588
11590
|
var popoverVersion = '6.0.1';
|
|
11589
11591
|
|
|
11592
|
+
/* 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 */
|
|
11593
|
+
|
|
11590
11594
|
const startOfDay$1 = (ms) => {
|
|
11591
11595
|
const date = new Date(ms);
|
|
11592
11596
|
date.setHours(0, 0, 0, 0);
|
|
11593
11597
|
return date.getTime();
|
|
11594
11598
|
};
|
|
11595
11599
|
|
|
11596
|
-
/* 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 */
|
|
11597
|
-
|
|
11598
11600
|
class AuroCalendarCell extends i$1 {
|
|
11599
11601
|
constructor() {
|
|
11600
11602
|
super();
|
|
11601
11603
|
|
|
11602
11604
|
this.day = null;
|
|
11603
11605
|
this.selected = false;
|
|
11604
|
-
this.hovered = false;
|
|
11605
11606
|
this.dateTo = null;
|
|
11606
11607
|
this.dateFrom = null;
|
|
11607
11608
|
this.month = null;
|
|
@@ -11609,11 +11610,12 @@ class AuroCalendarCell extends i$1 {
|
|
|
11609
11610
|
this.max = null;
|
|
11610
11611
|
this.disabled = false;
|
|
11611
11612
|
this.disabledDays = [];
|
|
11612
|
-
this.hoveredDate = null;
|
|
11613
11613
|
this.isCurrentDate = false;
|
|
11614
11614
|
this._locale = null;
|
|
11615
11615
|
this.dateStr = null;
|
|
11616
11616
|
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.
|
|
11617
|
+
this.active = false;
|
|
11618
|
+
this.hasPopoverContent = false;
|
|
11617
11619
|
|
|
11618
11620
|
this.runtimeUtils = new AuroLibraryRuntimeUtils$5();
|
|
11619
11621
|
|
|
@@ -11632,7 +11634,6 @@ class AuroCalendarCell extends i$1 {
|
|
|
11632
11634
|
// ...super.properties,
|
|
11633
11635
|
day: { type: Object },
|
|
11634
11636
|
selected: { type: Boolean },
|
|
11635
|
-
hovered: { type: Boolean },
|
|
11636
11637
|
dateTo: { type: String },
|
|
11637
11638
|
dateFrom: { type: String },
|
|
11638
11639
|
month: { type: String },
|
|
@@ -11643,11 +11644,11 @@ class AuroCalendarCell extends i$1 {
|
|
|
11643
11644
|
reflect: true
|
|
11644
11645
|
},
|
|
11645
11646
|
disabledDays: { type: Array },
|
|
11646
|
-
hoveredDate: { type: String },
|
|
11647
11647
|
isCurrentDate: { type: Boolean },
|
|
11648
11648
|
locale: { type: String },
|
|
11649
11649
|
dateStr: { type: String },
|
|
11650
|
-
renderForDateSlot: { type: Boolean }
|
|
11650
|
+
renderForDateSlot: { type: Boolean },
|
|
11651
|
+
hasPopoverContent: { type: Boolean }
|
|
11651
11652
|
};
|
|
11652
11653
|
}
|
|
11653
11654
|
|
|
@@ -11671,17 +11672,17 @@ class AuroCalendarCell extends i$1 {
|
|
|
11671
11672
|
}
|
|
11672
11673
|
|
|
11673
11674
|
/**
|
|
11674
|
-
* Handles selected
|
|
11675
|
+
* Handles selected state of the calendar cell when the selection changes.
|
|
11676
|
+
* Also clears any imperative range preview classes so classMap is the
|
|
11677
|
+
* sole source of truth after a selection update.
|
|
11675
11678
|
* @private
|
|
11676
11679
|
* @param {Number} dateFrom - Depart date.
|
|
11677
11680
|
* @param {Number} dateTo - Return date.
|
|
11678
|
-
* @param {Number} hoveredDate - Hovered date.
|
|
11679
11681
|
* @param {Object} day - An object containing the dateFrom and day of month values.
|
|
11680
11682
|
* @returns {void}
|
|
11681
11683
|
*/
|
|
11682
|
-
dateChanged(dateFrom, dateTo,
|
|
11684
|
+
dateChanged(dateFrom, dateTo, day) {
|
|
11683
11685
|
this.selected = false;
|
|
11684
|
-
this.hovered = false;
|
|
11685
11686
|
|
|
11686
11687
|
const parsedDateFrom = parseInt(dateFrom, 10);
|
|
11687
11688
|
const parsedDateTo = parseInt(dateTo, 10);
|
|
@@ -11693,10 +11694,6 @@ class AuroCalendarCell extends i$1 {
|
|
|
11693
11694
|
if (day.date === departTimestamp || day.date === returnTimestamp) {
|
|
11694
11695
|
this.selected = true;
|
|
11695
11696
|
}
|
|
11696
|
-
|
|
11697
|
-
if (((hoveredDate === day.date || day.date < hoveredDate) && day.date > parsedDateFrom && !parsedDateTo && !Number.isNaN(parsedDateFrom) && parsedDateFrom !== undefined && !this.selected) || (day.date > parsedDateFrom && day.date < parsedDateTo)) {
|
|
11698
|
-
this.hovered = true;
|
|
11699
|
-
}
|
|
11700
11697
|
}
|
|
11701
11698
|
}
|
|
11702
11699
|
|
|
@@ -11706,27 +11703,104 @@ class AuroCalendarCell extends i$1 {
|
|
|
11706
11703
|
* @returns {void}
|
|
11707
11704
|
*/
|
|
11708
11705
|
handleTap() {
|
|
11709
|
-
if (!this.disabled) {
|
|
11706
|
+
if (!this.disabled && !this.isBlackout()) {
|
|
11710
11707
|
this.datepicker.handleCellClick(this.day.date);
|
|
11711
11708
|
}
|
|
11709
|
+
|
|
11710
|
+
// Set this cell as the active cell regardless of blackout status
|
|
11711
|
+
if (this.day) {
|
|
11712
|
+
this.dispatchEvent(new CustomEvent('calendar-cell-activate', {
|
|
11713
|
+
bubbles: true,
|
|
11714
|
+
composed: true,
|
|
11715
|
+
detail: { date: this.day.date }
|
|
11716
|
+
}));
|
|
11717
|
+
}
|
|
11712
11718
|
}
|
|
11713
11719
|
|
|
11714
11720
|
/**
|
|
11715
11721
|
* Handles user hover events and dispatches a custom event.
|
|
11722
|
+
* Does NOT set any reactive properties — the range preview is handled
|
|
11723
|
+
* imperatively by the calendar component to avoid O(N) re-renders.
|
|
11716
11724
|
* @private
|
|
11717
11725
|
* @returns {void}
|
|
11718
11726
|
*/
|
|
11719
11727
|
handleHover() {
|
|
11720
|
-
this.hovered = true;
|
|
11721
|
-
|
|
11722
|
-
let _a;
|
|
11723
11728
|
this.dispatchEvent(new CustomEvent('date-is-hovered', {
|
|
11724
|
-
detail: { date:
|
|
11729
|
+
detail: { date: this.day?.date },
|
|
11730
|
+
}));
|
|
11731
|
+
}
|
|
11732
|
+
|
|
11733
|
+
/**
|
|
11734
|
+
* Handles focus events on the cell button.
|
|
11735
|
+
* Dispatches a lightweight event for the calendar to handle SR
|
|
11736
|
+
* announcements and range preview updates without triggering
|
|
11737
|
+
* any Lit lifecycle updates.
|
|
11738
|
+
* @private
|
|
11739
|
+
* @returns {void}
|
|
11740
|
+
*/
|
|
11741
|
+
handleFocus() {
|
|
11742
|
+
this.dispatchEvent(new CustomEvent('calendar-cell-focused', {
|
|
11743
|
+
bubbles: true,
|
|
11744
|
+
composed: true,
|
|
11745
|
+
detail: { date: this.day?.date },
|
|
11725
11746
|
}));
|
|
11726
11747
|
}
|
|
11727
11748
|
|
|
11728
11749
|
/**
|
|
11729
|
-
* Checks if the current date is
|
|
11750
|
+
* Checks if the current date is outside the valid min/max range.
|
|
11751
|
+
* Out-of-range cells are not focusable and are hidden from screen readers.
|
|
11752
|
+
* @private
|
|
11753
|
+
* @param {Object} day - An object containing the dateFrom and day of month values.
|
|
11754
|
+
* @param {Number} min - The minimum date value.
|
|
11755
|
+
* @param {Number} max - The maximum date value.
|
|
11756
|
+
* @returns {Boolean} - True if the date is out of range.
|
|
11757
|
+
*/
|
|
11758
|
+
isOutOfRange(day, min, max) {
|
|
11759
|
+
if (day && day.date !== null && day.date !== undefined) {
|
|
11760
|
+
return day.date < min || day.date > max;
|
|
11761
|
+
}
|
|
11762
|
+
return false;
|
|
11763
|
+
}
|
|
11764
|
+
|
|
11765
|
+
/**
|
|
11766
|
+
* Checks if the current date is a blackout date (in disabledDays but within range).
|
|
11767
|
+
* Blackout cells are focusable but not selectable.
|
|
11768
|
+
* @private
|
|
11769
|
+
* @returns {Boolean} - True if the date is a blackout date.
|
|
11770
|
+
*/
|
|
11771
|
+
isBlackout() {
|
|
11772
|
+
if (!this.day || this.day.date === null || this.day.date === undefined || this.isOutOfRange(this.day, this.min, this.max)) {
|
|
11773
|
+
return false;
|
|
11774
|
+
}
|
|
11775
|
+
|
|
11776
|
+
// Check against disabledDays timestamps (legacy path)
|
|
11777
|
+
if (Array.isArray(this.disabledDays) && this.disabledDays.length > 0 &&
|
|
11778
|
+
(this.disabledDays.findIndex(dd => parseInt(dd, 10) === this.day.date) !== -1)) {
|
|
11779
|
+
return true;
|
|
11780
|
+
}
|
|
11781
|
+
|
|
11782
|
+
// Check against blackoutDates (ISO format YYYY-MM-DD) on the datepicker
|
|
11783
|
+
const blackoutDates = this.datepicker?.blackoutDates;
|
|
11784
|
+
|
|
11785
|
+
if (Array.isArray(blackoutDates) && blackoutDates.length > 0) {
|
|
11786
|
+
const date = new Date(this.day.date * 1000);
|
|
11787
|
+
const yyyy = date.getFullYear();
|
|
11788
|
+
const mm = String(date.getMonth() + 1).padStart(2, '0');
|
|
11789
|
+
const dd = String(date.getDate()).padStart(2, '0');
|
|
11790
|
+
const cellDate = `${yyyy}-${mm}-${dd}`;
|
|
11791
|
+
if (blackoutDates.includes(cellDate)) {
|
|
11792
|
+
return true;
|
|
11793
|
+
}
|
|
11794
|
+
}
|
|
11795
|
+
|
|
11796
|
+
return false;
|
|
11797
|
+
}
|
|
11798
|
+
|
|
11799
|
+
/**
|
|
11800
|
+
* Checks if the current date is disabled based on min/max range or the
|
|
11801
|
+
* legacy disabledDays timestamp list. Sets the `disabled` attribute on the
|
|
11802
|
+
* host when the date falls outside the allowed range or appears in
|
|
11803
|
+
* disabledDays. Note: blackout dates are handled separately by `isBlackout()`.
|
|
11730
11804
|
* @private
|
|
11731
11805
|
* @param {Object} day - An object containing the dateFrom and day of month values.
|
|
11732
11806
|
* @param {Number} min - The minimum date value.
|
|
@@ -11737,15 +11811,114 @@ class AuroCalendarCell extends i$1 {
|
|
|
11737
11811
|
isEnabled(day, min, max, disabledDays) {
|
|
11738
11812
|
this.removeAttribute('disabled');
|
|
11739
11813
|
|
|
11740
|
-
if (disabledDays && day && day.date
|
|
11741
|
-
|
|
11742
|
-
|
|
11743
|
-
|
|
11744
|
-
}
|
|
11814
|
+
if (disabledDays && day && day.date &&
|
|
11815
|
+
(day.date < min || day.date > max || disabledDays.findIndex(disabledDay => parseInt(disabledDay, 10) === day.date) !== -1)) {
|
|
11816
|
+
this.setAttribute('disabled', true);
|
|
11817
|
+
return true;
|
|
11745
11818
|
}
|
|
11819
|
+
|
|
11746
11820
|
return false;
|
|
11747
11821
|
}
|
|
11748
11822
|
|
|
11823
|
+
/**
|
|
11824
|
+
* Generates a unique cell ID in the format cell-YYYY-MM-DD.
|
|
11825
|
+
* @private
|
|
11826
|
+
* @returns {String} The unique cell ID.
|
|
11827
|
+
*/
|
|
11828
|
+
getCellId() {
|
|
11829
|
+
if (!this.day || !this.day.date) return '';
|
|
11830
|
+
const date = new Date(this.day.date * 1000);
|
|
11831
|
+
const year = date.getFullYear();
|
|
11832
|
+
const month = String(date.getMonth() + 1).padStart(2, '0');
|
|
11833
|
+
const day = String(date.getDate()).padStart(2, '0');
|
|
11834
|
+
return `cell-${year}-${month}-${day}`;
|
|
11835
|
+
}
|
|
11836
|
+
|
|
11837
|
+
/**
|
|
11838
|
+
* Generates a localized aria-label for the cell button using Intl.DateTimeFormat.
|
|
11839
|
+
* Includes range position and blackout status.
|
|
11840
|
+
* @private
|
|
11841
|
+
* @returns {String} The aria-label string.
|
|
11842
|
+
*/
|
|
11843
|
+
getAriaLabel() {
|
|
11844
|
+
if (!this.day || this.day.date === undefined) return '';
|
|
11845
|
+
|
|
11846
|
+
const date = new Date(this.day.date * 1000);
|
|
11847
|
+
|
|
11848
|
+
// Generate localized full date string using the configured locale
|
|
11849
|
+
const localeCode = this.locale?.code || undefined;
|
|
11850
|
+
const dateFormatter = new Intl.DateTimeFormat(localeCode, {
|
|
11851
|
+
weekday: 'long',
|
|
11852
|
+
year: 'numeric',
|
|
11853
|
+
month: 'long',
|
|
11854
|
+
day: 'numeric'
|
|
11855
|
+
});
|
|
11856
|
+
|
|
11857
|
+
let label = dateFormatter.format(date);
|
|
11858
|
+
|
|
11859
|
+
// Append date slot content (e.g. prices) so it is announced with the date.
|
|
11860
|
+
if (this.renderForDateSlot) {
|
|
11861
|
+
const dateSlotEl = this.querySelector(`[slot="date_${this.dateStr}"]`);
|
|
11862
|
+
if (dateSlotEl) {
|
|
11863
|
+
const text = dateSlotEl.innerText?.trim();
|
|
11864
|
+
if (text) {
|
|
11865
|
+
label += `, ${text}`;
|
|
11866
|
+
}
|
|
11867
|
+
}
|
|
11868
|
+
}
|
|
11869
|
+
|
|
11870
|
+
// appending popover content here so that it gets read in a logical order with the other date content.
|
|
11871
|
+
if (this.hasPopoverContent) {
|
|
11872
|
+
const popoverEl = this.querySelector(`[slot="popover_${this.dateStr}"]`);
|
|
11873
|
+
if (popoverEl) {
|
|
11874
|
+
label += `, ${popoverEl.innerText.trim()}`;
|
|
11875
|
+
}
|
|
11876
|
+
}
|
|
11877
|
+
|
|
11878
|
+
// Append range position label for range datepickers
|
|
11879
|
+
const rangePosition = this.getRangePosition();
|
|
11880
|
+
if (rangePosition) {
|
|
11881
|
+
label += `, ${rangePosition}`;
|
|
11882
|
+
}
|
|
11883
|
+
|
|
11884
|
+
// Append blackout label for blackout cells
|
|
11885
|
+
if (this.isBlackout()) {
|
|
11886
|
+
label += `, ${this.datepicker?.blackoutLabel || 'unavailable'}`;
|
|
11887
|
+
}
|
|
11888
|
+
|
|
11889
|
+
return label;
|
|
11890
|
+
}
|
|
11891
|
+
|
|
11892
|
+
/**
|
|
11893
|
+
* Determines the range position of this cell relative to the current selection.
|
|
11894
|
+
* @private
|
|
11895
|
+
* @returns {String|null} Range position label or null if not in range mode.
|
|
11896
|
+
*/
|
|
11897
|
+
getRangePosition() {
|
|
11898
|
+
if (!this.datepicker || !this.datepicker.hasAttribute('range')) return null;
|
|
11899
|
+
|
|
11900
|
+
const parsedDateFrom = Number.parseInt(this.dateFrom, 10);
|
|
11901
|
+
if (!Number.isFinite(parsedDateFrom)) return null;
|
|
11902
|
+
|
|
11903
|
+
const departTimestamp = startOfDay$1(parsedDateFrom * 1000) / 1000;
|
|
11904
|
+
const dayDate = this.day.date;
|
|
11905
|
+
|
|
11906
|
+
const parsedDateTo = Number.parseInt(this.dateTo, 10);
|
|
11907
|
+
const hasDateTo = Number.isFinite(parsedDateTo);
|
|
11908
|
+
const returnTimestamp = hasDateTo ? startOfDay$1(parsedDateTo * 1000) / 1000 : null;
|
|
11909
|
+
|
|
11910
|
+
if (dayDate === departTimestamp) return this.datepicker.rangeLabelStart || 'range start';
|
|
11911
|
+
|
|
11912
|
+
if (hasDateTo && dayDate === returnTimestamp) return this.datepicker.rangeLabelEnd || 'range end';
|
|
11913
|
+
|
|
11914
|
+
if (dayDate < departTimestamp) return this.datepicker.rangeLabelBeforeRange || 'before range';
|
|
11915
|
+
|
|
11916
|
+
if (hasDateTo && dayDate > departTimestamp && dayDate < returnTimestamp) return this.datepicker.rangeLabelInRange || 'in range';
|
|
11917
|
+
|
|
11918
|
+
// After start date, no end date yet, or after end date
|
|
11919
|
+
return this.datepicker.rangeLabelAfterRange || 'after range';
|
|
11920
|
+
}
|
|
11921
|
+
|
|
11749
11922
|
/**
|
|
11750
11923
|
* Checks if the current date is the depart date.
|
|
11751
11924
|
* @private
|
|
@@ -11813,12 +11986,12 @@ class AuroCalendarCell extends i$1 {
|
|
|
11813
11986
|
}
|
|
11814
11987
|
|
|
11815
11988
|
/**
|
|
11816
|
-
* Checks if the current date is a
|
|
11989
|
+
* Checks if the current date is a referenced date.
|
|
11817
11990
|
* @param {Object} dateStr - The date string in MM_DD_YYYY format.
|
|
11818
|
-
* @returns Boolean - True if the date is a
|
|
11991
|
+
* @returns Boolean - True if the date is a referenced date.
|
|
11819
11992
|
*/
|
|
11820
11993
|
isReferenceDate(dateStr) {
|
|
11821
|
-
// If the datepicker has
|
|
11994
|
+
// If the datepicker has referenced dates specified
|
|
11822
11995
|
if (this.datepicker && this.datepicker.hasAttribute('referenceDates')) {
|
|
11823
11996
|
|
|
11824
11997
|
// Get the referenceDates attribute from the datepicker
|
|
@@ -11828,7 +12001,11 @@ class AuroCalendarCell extends i$1 {
|
|
|
11828
12001
|
if (!Array.isArray(referenceDates) || referenceDates.length === 0) return false;
|
|
11829
12002
|
|
|
11830
12003
|
// Convert cell dateStr (MM_DD_YYYY) to ISO (YYYY-MM-DD) for comparison
|
|
11831
|
-
const [
|
|
12004
|
+
const [
|
|
12005
|
+
month,
|
|
12006
|
+
day,
|
|
12007
|
+
year
|
|
12008
|
+
] = dateStr.split('_');
|
|
11832
12009
|
const cellISO = `${year}-${month.padStart(2, '0')}-${day.padStart(2, '0')}`;
|
|
11833
12010
|
|
|
11834
12011
|
return referenceDates.includes(cellISO);
|
|
@@ -11918,9 +12095,9 @@ class AuroCalendarCell extends i$1 {
|
|
|
11918
12095
|
|
|
11919
12096
|
if (popoverSlotContent) {
|
|
11920
12097
|
this.appendChild(popoverSlotContent.cloneNode(true));
|
|
11921
|
-
this.
|
|
12098
|
+
this.hasPopoverContent = true;
|
|
11922
12099
|
} else {
|
|
11923
|
-
this.
|
|
12100
|
+
this.hasPopoverContent = false;
|
|
11924
12101
|
}
|
|
11925
12102
|
} catch (err) { // eslint-disable-line no-unused-vars
|
|
11926
12103
|
// Error handling goes here
|
|
@@ -11936,60 +12113,249 @@ class AuroCalendarCell extends i$1 {
|
|
|
11936
12113
|
return;
|
|
11937
12114
|
}
|
|
11938
12115
|
this.datepicker = calendar.datepicker;
|
|
11939
|
-
this.
|
|
12116
|
+
this._slotContentHandler = () => {
|
|
11940
12117
|
this.handleSlotContent();
|
|
12118
|
+
// Force re-render so isBlackout()/aria-disabled reflect updated blackoutDates.
|
|
12119
|
+
this.requestUpdate();
|
|
12120
|
+
};
|
|
12121
|
+
this.datepicker.addEventListener('auroDatePicker-newSlotContent', this._slotContentHandler);
|
|
12122
|
+
|
|
12123
|
+
// Cache button reference for imperative class manipulation.
|
|
12124
|
+
this.updateComplete.then(() => {
|
|
12125
|
+
this._cachedButton = this.shadowRoot.querySelector('button.day');
|
|
11941
12126
|
});
|
|
11942
12127
|
|
|
12128
|
+
// Trigger an initial update now that `this.datepicker` is assigned so
|
|
12129
|
+
// cells reflect blackout/slot state that was configured before first render.
|
|
12130
|
+
this.requestUpdate();
|
|
12131
|
+
|
|
12132
|
+
this.calendarMonth = calendarMonth;
|
|
12133
|
+
this.configurePopover();
|
|
12134
|
+
}
|
|
12135
|
+
|
|
12136
|
+
disconnectedCallback() {
|
|
12137
|
+
super.disconnectedCallback();
|
|
12138
|
+
if (this.datepicker && this._slotContentHandler) {
|
|
12139
|
+
this.datepicker.removeEventListener('auroDatePicker-newSlotContent', this._slotContentHandler);
|
|
12140
|
+
}
|
|
12141
|
+
}
|
|
12142
|
+
|
|
12143
|
+
/**
|
|
12144
|
+
* Configures the popover instance with the calendar month boundary.
|
|
12145
|
+
* Called from firstUpdated and updated because the popover element is only
|
|
12146
|
+
* rendered after hasPopoverContent becomes true (set by handleSlotContent).
|
|
12147
|
+
* @private
|
|
12148
|
+
* @returns {void}
|
|
12149
|
+
*/
|
|
12150
|
+
configurePopover() {
|
|
11943
12151
|
this.auroPopover = this.shadowRoot.querySelector(this.popoverTag._$litStatic$);
|
|
11944
12152
|
|
|
11945
|
-
this.auroPopover
|
|
12153
|
+
if (this.auroPopover && this.calendarMonth) {
|
|
12154
|
+
this.auroPopover.boundary = this.calendarMonth;
|
|
12155
|
+
}
|
|
11946
12156
|
}
|
|
11947
12157
|
|
|
11948
12158
|
updated(properties) {
|
|
11949
|
-
if (properties.has('dateFrom') || properties.has('dateTo') || properties.has('
|
|
11950
|
-
this.dateChanged(this.dateFrom, this.dateTo, this.
|
|
12159
|
+
if (properties.has('dateFrom') || properties.has('dateTo') || properties.has('day')) {
|
|
12160
|
+
this.dateChanged(this.dateFrom, this.dateTo, this.day);
|
|
12161
|
+
}
|
|
12162
|
+
|
|
12163
|
+
if (properties.has('day') && this.day) {
|
|
12164
|
+
this.setDateSlotName();
|
|
12165
|
+
this.handleSlotContent();
|
|
12166
|
+
|
|
12167
|
+
// Re-cache button reference when the day changes (cell may have re-rendered).
|
|
12168
|
+
this.updateComplete.then(() => {
|
|
12169
|
+
this._cachedButton = this.shadowRoot.querySelector('button.day');
|
|
12170
|
+
});
|
|
12171
|
+
|
|
12172
|
+
// Update host-level aria attributes for ariaActiveDescendantElement.
|
|
12173
|
+
this.updateHostAria();
|
|
11951
12174
|
}
|
|
11952
12175
|
|
|
11953
|
-
|
|
11954
|
-
|
|
12176
|
+
// Update host aria when selection changes (aria-selected, range labels)
|
|
12177
|
+
if (properties.has('dateFrom') || properties.has('dateTo') || properties.has('selected')) {
|
|
12178
|
+
this.updateHostAria();
|
|
12179
|
+
}
|
|
12180
|
+
|
|
12181
|
+
// Configure popover when it first becomes rendered
|
|
12182
|
+
if (properties.has('hasPopoverContent') && this.hasPopoverContent) {
|
|
12183
|
+
this.updateComplete.then(() => this.configurePopover());
|
|
12184
|
+
}
|
|
11955
12185
|
}
|
|
11956
12186
|
|
|
11957
|
-
|
|
12187
|
+
/**
|
|
12188
|
+
* Updates ARIA attributes on the host element so that
|
|
12189
|
+
* ariaActiveDescendantElement can expose cell info to the SR.
|
|
12190
|
+
* @private
|
|
12191
|
+
* @returns {void}
|
|
12192
|
+
*/
|
|
12193
|
+
updateHostAria() {
|
|
12194
|
+
if (!this.day || this.day.date === undefined) return;
|
|
12195
|
+
|
|
12196
|
+
const outOfRange = this.isOutOfRange(this.day, this.min, this.max);
|
|
12197
|
+
if (outOfRange) {
|
|
12198
|
+
this.removeAttribute('role');
|
|
12199
|
+
this.removeAttribute('aria-label');
|
|
12200
|
+
return;
|
|
12201
|
+
}
|
|
12202
|
+
|
|
12203
|
+
// The host acts as the gridcell for ariaActiveDescendantElement.
|
|
12204
|
+
this.setAttribute('role', 'gridcell');
|
|
12205
|
+
this.setAttribute('aria-label', this.getAriaLabel());
|
|
12206
|
+
this.setAttribute('aria-selected', this.selected ? 'true' : 'false');
|
|
12207
|
+
|
|
12208
|
+
if (this.isBlackout()) {
|
|
12209
|
+
this.setAttribute('aria-disabled', 'true');
|
|
12210
|
+
} else {
|
|
12211
|
+
this.removeAttribute('aria-disabled');
|
|
12212
|
+
}
|
|
12213
|
+
}
|
|
12214
|
+
|
|
12215
|
+
/**
|
|
12216
|
+
* Programmatically focuses the cell's interactive button element.
|
|
12217
|
+
* Uses focusVisible: true so the :focus-visible ring appears even when
|
|
12218
|
+
* the bib was opened via mouse click (which sets mouse input modality).
|
|
12219
|
+
* @returns {void}
|
|
12220
|
+
*/
|
|
12221
|
+
focusButton() {
|
|
12222
|
+
const button = this._cachedButton || this.shadowRoot.querySelector('button:not([aria-hidden])');
|
|
12223
|
+
if (button) {
|
|
12224
|
+
button.focus({ focusVisible: true });
|
|
12225
|
+
}
|
|
12226
|
+
}
|
|
12227
|
+
|
|
12228
|
+
/**
|
|
12229
|
+
* Imperatively marks this cell as active without triggering a Lit re-render.
|
|
12230
|
+
* Note: buttons stay tabindex="-1" because the grid uses aria-activedescendant.
|
|
12231
|
+
* @returns {void}
|
|
12232
|
+
*/
|
|
12233
|
+
setActive() {
|
|
12234
|
+
this.active = true;
|
|
12235
|
+
|
|
12236
|
+
// Show the popover when this cell becomes active via keyboard navigation.
|
|
12237
|
+
if (this.auroPopover) {
|
|
12238
|
+
this.auroPopover.toggleShow();
|
|
12239
|
+
}
|
|
12240
|
+
}
|
|
12241
|
+
|
|
12242
|
+
/**
|
|
12243
|
+
* Imperatively marks this cell as inactive without triggering a Lit re-render.
|
|
12244
|
+
* @returns {void}
|
|
12245
|
+
*/
|
|
12246
|
+
clearActive() {
|
|
12247
|
+
this.active = false;
|
|
12248
|
+
const btn = this._cachedButton || this.shadowRoot.querySelector('button.day');
|
|
12249
|
+
if (btn) {
|
|
12250
|
+
btn.classList.remove('activeCell');
|
|
12251
|
+
}
|
|
12252
|
+
|
|
12253
|
+
// Hide the popover when this cell loses active state.
|
|
12254
|
+
if (this.auroPopover) {
|
|
12255
|
+
this.auroPopover.toggleHide();
|
|
12256
|
+
}
|
|
12257
|
+
}
|
|
12258
|
+
|
|
12259
|
+
/**
|
|
12260
|
+
* Updates range preview classes imperatively (no Lit re-render).
|
|
12261
|
+
* Called by the calendar component when the hovered date changes
|
|
12262
|
+
* during range selection (dateFrom set, dateTo not yet set).
|
|
12263
|
+
* @param {Number} hoveredDate - Unix timestamp of the currently hovered/focused date.
|
|
12264
|
+
* @param {Number} dateFrom - Unix timestamp of the selected departure date.
|
|
12265
|
+
* @returns {void}
|
|
12266
|
+
*/
|
|
12267
|
+
updateRangePreviewClasses(hoveredDate, dateFrom) {
|
|
12268
|
+
const btn = this._cachedButton;
|
|
12269
|
+
if (!btn || !this.day) return;
|
|
12270
|
+
|
|
12271
|
+
const dayDate = this.day.date;
|
|
12272
|
+
const departTimestamp = startOfDay$1(dateFrom * 1000) / 1000;
|
|
12273
|
+
const isInRange = dayDate > departTimestamp && dayDate < hoveredDate;
|
|
12274
|
+
const isLastHovered = dayDate === hoveredDate && hoveredDate > departTimestamp;
|
|
12275
|
+
const isDepartWithPreview = dayDate === departTimestamp && hoveredDate > departTimestamp;
|
|
12276
|
+
|
|
12277
|
+
btn.classList.toggle('inRange', isInRange);
|
|
12278
|
+
btn.classList.toggle('lastHoveredDate', isLastHovered);
|
|
12279
|
+
btn.classList.toggle('rangeDepartDate', isDepartWithPreview);
|
|
12280
|
+
}
|
|
12281
|
+
|
|
12282
|
+
/**
|
|
12283
|
+
* Clears all imperative range preview classes from the cell button.
|
|
12284
|
+
* Called when a selection occurs so classMap becomes the sole source of truth.
|
|
12285
|
+
* @returns {void}
|
|
12286
|
+
*/
|
|
12287
|
+
clearRangePreviewClasses() {
|
|
12288
|
+
const btn = this._cachedButton;
|
|
12289
|
+
if (!btn) return;
|
|
12290
|
+
|
|
12291
|
+
btn.classList.remove('inRange', 'lastHoveredDate', 'rangeDepartDate');
|
|
12292
|
+
}
|
|
12293
|
+
|
|
12294
|
+
renderCellButton() {
|
|
12295
|
+
const outOfRange = this.isOutOfRange(this.day, this.min, this.max);
|
|
12296
|
+
const blackout = this.isBlackout();
|
|
12297
|
+
|
|
12298
|
+
// Static and selection-driven classes only. Hover-driven classes
|
|
12299
|
+
// (inRange, lastHoveredDate, rangeDepartDate during preview) are
|
|
12300
|
+
// managed imperatively via updateRangePreviewClasses() to avoid
|
|
12301
|
+
// O(N) Lit re-renders on every focus/hover event.
|
|
12302
|
+
const isFirstDay = this.day?.title === 1;
|
|
12303
|
+
const isLastDay = this.day?.date && (() => {
|
|
12304
|
+
const dt = new Date(this.day.date * 1000);
|
|
12305
|
+
return dt.getDate() === new Date(dt.getFullYear(), dt.getMonth() + 1, 0).getDate();
|
|
12306
|
+
})();
|
|
12307
|
+
|
|
11958
12308
|
const buttonClasses = {
|
|
11959
12309
|
'day': true,
|
|
11960
|
-
'body-
|
|
11961
|
-
'currentDate': this.
|
|
12310
|
+
'body-default': true,
|
|
12311
|
+
'currentDate': this.isCurrentDate,
|
|
11962
12312
|
'selected': this.selected,
|
|
11963
|
-
'inRange': this.
|
|
11964
|
-
'
|
|
11965
|
-
|
|
11966
|
-
'rangeDepartDate': this.isDepartDate(this.day, this.dateFrom) &&
|
|
11967
|
-
'rangeReturnDate': this.isReturnDate(this.day, this.dateFrom, this.dateTo),
|
|
12313
|
+
'inRange': this.datepicker?.hasAttribute('range') && this.dateTo && this.isInRange(this.day, this.dateFrom, this.dateTo),
|
|
12314
|
+
'disabled': outOfRange,
|
|
12315
|
+
blackout,
|
|
12316
|
+
'rangeDepartDate': this.datepicker?.hasAttribute('range') && this.isDepartDate(this.day, this.dateFrom) && this.dateTo,
|
|
12317
|
+
'rangeReturnDate': this.datepicker?.hasAttribute('range') && this.isReturnDate(this.day, this.dateFrom, this.dateTo),
|
|
11968
12318
|
'reference': this.isReferenceDate(this.dateStr),
|
|
11969
|
-
'sameDateTrip': this.dateFrom === this.dateTo
|
|
12319
|
+
'sameDateTrip': this.datepicker?.hasAttribute('range') && this.dateFrom === this.dateTo,
|
|
12320
|
+
'firstDayOfMonth': isFirstDay,
|
|
12321
|
+
'lastDayOfMonth': isLastDay,
|
|
11970
12322
|
};
|
|
11971
12323
|
|
|
11972
|
-
let _a, _b;
|
|
11973
12324
|
return u$a`
|
|
11974
|
-
|
|
11975
|
-
|
|
11976
|
-
|
|
11977
|
-
|
|
11978
|
-
|
|
11979
|
-
|
|
11980
|
-
|
|
11981
|
-
|
|
11982
|
-
|
|
11983
|
-
|
|
11984
|
-
|
|
11985
|
-
<div class="
|
|
11986
|
-
|
|
11987
|
-
<
|
|
11988
|
-
<slot name="date_${this.dateStr}"></slot>
|
|
11989
|
-
</div>
|
|
12325
|
+
<button
|
|
12326
|
+
slot="trigger"
|
|
12327
|
+
id="${this.getCellId()}"
|
|
12328
|
+
@click="${outOfRange ? undefined : this.handleTap}"
|
|
12329
|
+
@mouseover="${outOfRange ? undefined : this.handleHover}"
|
|
12330
|
+
@focus="${outOfRange ? undefined : this.handleFocus}"
|
|
12331
|
+
class="${e$4(buttonClasses)}"
|
|
12332
|
+
?disabled="${outOfRange}"
|
|
12333
|
+
aria-hidden="${outOfRange ? 'true' : A$4}"
|
|
12334
|
+
tabindex="-1">
|
|
12335
|
+
<div class="buttonWrapper" aria-hidden="true">
|
|
12336
|
+
<div class="currentDayMarker">${this.day?.title || A$4}</div>
|
|
12337
|
+
<div class="dateSlot body-2xs" part="dateSlot" aria-hidden="true" ?hidden="${!this.renderForDateSlot}">
|
|
12338
|
+
<slot name="date_${this.dateStr}"></slot>
|
|
11990
12339
|
</div>
|
|
11991
|
-
</
|
|
11992
|
-
|
|
12340
|
+
</div>
|
|
12341
|
+
</button>
|
|
12342
|
+
`;
|
|
12343
|
+
}
|
|
12344
|
+
|
|
12345
|
+
render() {
|
|
12346
|
+
const { hasPopoverContent } = this;
|
|
12347
|
+
|
|
12348
|
+
if (hasPopoverContent) {
|
|
12349
|
+
return u$a`
|
|
12350
|
+
<${this.popoverTag}>
|
|
12351
|
+
<span aria-hidden="true"><slot name="popover_${this.dateStr}"></slot></span>
|
|
12352
|
+
${this.renderCellButton()}
|
|
12353
|
+
</${this.popoverTag}>
|
|
12354
|
+
`;
|
|
12355
|
+
}
|
|
12356
|
+
|
|
12357
|
+
return u$a`
|
|
12358
|
+
${this.renderCellButton()}
|
|
11993
12359
|
`;
|
|
11994
12360
|
}
|
|
11995
12361
|
}
|
|
@@ -12002,7 +12368,7 @@ if (!customElements.get('auro-formkit-calendar-cell')) {
|
|
|
12002
12368
|
|
|
12003
12369
|
// See https://git.io/JJ6SJ for "How to document your components using JSDoc"
|
|
12004
12370
|
|
|
12005
|
-
/* eslint-disable no-magic-numbers
|
|
12371
|
+
/* eslint-disable no-magic-numbers */
|
|
12006
12372
|
|
|
12007
12373
|
|
|
12008
12374
|
const getMonthNamesFromLocale = (locale) => {
|
|
@@ -12019,11 +12385,12 @@ const getMonthNamesFromLocale = (locale) => {
|
|
|
12019
12385
|
* Uses UTC dates to avoid DST-related day drift across timezones.
|
|
12020
12386
|
* @private
|
|
12021
12387
|
* @param {String} locale - The BCP 47 language tag for localization (e.g. "en-US").
|
|
12022
|
-
* @
|
|
12388
|
+
* @param {String} weekday - The format of the weekday name ('narrow', 'short', 'long').
|
|
12389
|
+
* @returns {Array} An array of seven localized weekday names, starting from Sunday.
|
|
12023
12390
|
*/
|
|
12024
|
-
const getWeekdayNames = (locale) => {
|
|
12391
|
+
const getWeekdayNames = (locale, weekday) => {
|
|
12025
12392
|
const fmt = new Intl.DateTimeFormat(locale, {
|
|
12026
|
-
weekday
|
|
12393
|
+
weekday,
|
|
12027
12394
|
timeZone: 'UTC'
|
|
12028
12395
|
});
|
|
12029
12396
|
// Jan 5 2025 is a known Sunday; use Date.UTC to avoid DST-related day drift
|
|
@@ -12058,7 +12425,7 @@ class AuroCalendarMonth extends RangeDatepickerCalendar {
|
|
|
12058
12425
|
|
|
12059
12426
|
/**
|
|
12060
12427
|
* BCP 47 locale tag (such as `en-US`) for calendar localization.
|
|
12061
|
-
*
|
|
12428
|
+
* As wc-range-datepicker expects a `locale` prop, we use `localeCode` to avoid conflicts.
|
|
12062
12429
|
*/
|
|
12063
12430
|
localeCode: {
|
|
12064
12431
|
type: String
|
|
@@ -12112,8 +12479,19 @@ class AuroCalendarMonth extends RangeDatepickerCalendar {
|
|
|
12112
12479
|
return this._cachedMonthNames[month - 1] || '';
|
|
12113
12480
|
}
|
|
12114
12481
|
|
|
12482
|
+
/**
|
|
12483
|
+
* Returns the unique heading ID for this month, used by aria-labelledby.
|
|
12484
|
+
* @private
|
|
12485
|
+
* @returns {String} The heading ID.
|
|
12486
|
+
*/
|
|
12487
|
+
getHeadingId() {
|
|
12488
|
+
return `month-heading-${this.month}-${this.year}`;
|
|
12489
|
+
}
|
|
12490
|
+
|
|
12491
|
+
|
|
12115
12492
|
/**
|
|
12116
12493
|
* Determines the current month name based on locale.
|
|
12494
|
+
* Also builds parallel arrays of full day names for abbr attributes.
|
|
12117
12495
|
* This is a rewrite of the function used in the class RangeDatepickerCalendar and should not be removed from here.
|
|
12118
12496
|
* @private
|
|
12119
12497
|
* @param {Object} changedProperties - The properties that have changed since the last update.
|
|
@@ -12127,8 +12505,67 @@ class AuroCalendarMonth extends RangeDatepickerCalendar {
|
|
|
12127
12505
|
}
|
|
12128
12506
|
|
|
12129
12507
|
localeChanged() {
|
|
12130
|
-
|
|
12131
|
-
this.
|
|
12508
|
+
this.dayNamesOfTheWeek = getWeekdayNames(this.localeCode, 'narrow');
|
|
12509
|
+
this.dayFullNames = getWeekdayNames(this.localeCode, 'long');
|
|
12510
|
+
}
|
|
12511
|
+
|
|
12512
|
+
/**
|
|
12513
|
+
* Renders a day-of-week header with abbr attribute for the full day name.
|
|
12514
|
+
* @private
|
|
12515
|
+
* @param {String} dayOfWeek - The short day name.
|
|
12516
|
+
* @param {Number} index - The index in the dayNamesOfTheWeek array.
|
|
12517
|
+
* @returns {Object} The header HTML.
|
|
12518
|
+
*/
|
|
12519
|
+
renderDayOfWeek(dayOfWeek, index) {
|
|
12520
|
+
const fullName = this.dayFullNames ? this.dayFullNames[index] : dayOfWeek;
|
|
12521
|
+
return b$5`<div class="th body-default" aria-label="${fullName}" role="columnheader">${dayOfWeek}</div>`;
|
|
12522
|
+
}
|
|
12523
|
+
|
|
12524
|
+
/**
|
|
12525
|
+
* Returns all focusable cell elements (enabled + blackout, not out-of-range) in this month.
|
|
12526
|
+
* @returns {Array} Array of auro-formkit-calendar-cell elements.
|
|
12527
|
+
*/
|
|
12528
|
+
getFocusableCells() {
|
|
12529
|
+
const cells = Array.from(this.shadowRoot.querySelectorAll('auro-formkit-calendar-cell'));
|
|
12530
|
+
return cells.filter((cell) => {
|
|
12531
|
+
if (!cell.day) {
|
|
12532
|
+
return false;
|
|
12533
|
+
}
|
|
12534
|
+
return !cell.isOutOfRange(cell.day, cell.min, cell.max);
|
|
12535
|
+
});
|
|
12536
|
+
}
|
|
12537
|
+
|
|
12538
|
+
/**
|
|
12539
|
+
* Overrides the base class handler to prevent setting `this.hoveredDate`
|
|
12540
|
+
* as a reactive property. Instead, just dispatches the event upward so
|
|
12541
|
+
* the calendar can handle range preview imperatively.
|
|
12542
|
+
* @private
|
|
12543
|
+
* @param {CustomEvent} event - The date-is-hovered event from a cell.
|
|
12544
|
+
* @returns {void}
|
|
12545
|
+
*/
|
|
12546
|
+
handleDateHovered(event) {
|
|
12547
|
+
this.dispatchEvent(new CustomEvent('hovered-date-changed', {
|
|
12548
|
+
detail: { value: event.detail.date },
|
|
12549
|
+
}));
|
|
12550
|
+
}
|
|
12551
|
+
|
|
12552
|
+
/**
|
|
12553
|
+
* Dispatches a bubbling event when the mouse leaves the date grid body
|
|
12554
|
+
* so the parent calendar can clear the range hover preview.
|
|
12555
|
+
* @private
|
|
12556
|
+
* @returns {void}
|
|
12557
|
+
*/
|
|
12558
|
+
handleTbodyMouseLeave() {
|
|
12559
|
+
this.dispatchEvent(new CustomEvent('calendar-month-mouseleave', {
|
|
12560
|
+
bubbles: true,
|
|
12561
|
+
composed: true,
|
|
12562
|
+
}));
|
|
12563
|
+
}
|
|
12564
|
+
|
|
12565
|
+
renderWeek(week) {
|
|
12566
|
+
return b$5`
|
|
12567
|
+
<div class="tr" role="row">${week.map((day) => this.renderDay(day))}</div>
|
|
12568
|
+
`;
|
|
12132
12569
|
}
|
|
12133
12570
|
|
|
12134
12571
|
renderDay(day) {
|
|
@@ -12141,7 +12578,6 @@ class AuroCalendarMonth extends RangeDatepickerCalendar {
|
|
|
12141
12578
|
.min="${this.min}"
|
|
12142
12579
|
.max="${this.max}"
|
|
12143
12580
|
.month="${this.month}"
|
|
12144
|
-
.hoveredDate="${this.hoveredDate}"
|
|
12145
12581
|
.dateTo="${this.dateTo}"
|
|
12146
12582
|
.dateFrom="${this.dateFrom}"
|
|
12147
12583
|
.locale="${this.localeCode}"
|
|
@@ -12152,7 +12588,7 @@ class AuroCalendarMonth extends RangeDatepickerCalendar {
|
|
|
12152
12588
|
>
|
|
12153
12589
|
</auro-formkit-calendar-cell>
|
|
12154
12590
|
`
|
|
12155
|
-
:
|
|
12591
|
+
: b$5`<div aria-hidden="true" inert></div>`}
|
|
12156
12592
|
</div>
|
|
12157
12593
|
`;
|
|
12158
12594
|
}
|
|
@@ -12166,7 +12602,7 @@ class AuroCalendarMonth extends RangeDatepickerCalendar {
|
|
|
12166
12602
|
<div>
|
|
12167
12603
|
<div class="header">
|
|
12168
12604
|
${this.renderPrevButton()}
|
|
12169
|
-
<div class="headerTitle heading-xs">
|
|
12605
|
+
<div class="headerTitle heading-xs" id="${this.getHeadingId()}">
|
|
12170
12606
|
${this.monthFirst ? b$5`
|
|
12171
12607
|
<div>${this.computeCurrentMonthName(this.month)}</div>
|
|
12172
12608
|
<div>${this.renderYear()}</div>
|
|
@@ -12177,14 +12613,13 @@ class AuroCalendarMonth extends RangeDatepickerCalendar {
|
|
|
12177
12613
|
</div>
|
|
12178
12614
|
${this.renderNextButton()}
|
|
12179
12615
|
</div>
|
|
12180
|
-
|
|
12181
|
-
<div class="table">
|
|
12616
|
+
<div class="table" role="grid">
|
|
12182
12617
|
<div class="thead">
|
|
12183
12618
|
<div class="tr">
|
|
12184
|
-
${(_a = this.dayNamesOfTheWeek) === null || _a === void 0 ? void 0 : _a.map(dayNameOfWeek => this.renderDayOfWeek(dayNameOfWeek))}
|
|
12619
|
+
${(_a = this.dayNamesOfTheWeek) === null || _a === void 0 ? void 0 : _a.map((dayNameOfWeek, index) => this.renderDayOfWeek(dayNameOfWeek, index))}
|
|
12185
12620
|
</div>
|
|
12186
12621
|
</div>
|
|
12187
|
-
<div class="tbody">
|
|
12622
|
+
<div class="tbody" role="rowgroup" @mouseleave="${this.handleTbodyMouseLeave}">
|
|
12188
12623
|
${(_b = this.daysOfMonth) === null || _b === void 0 ? void 0 : _b.map(week => this.renderWeek(week))}
|
|
12189
12624
|
</div>
|
|
12190
12625
|
</div>
|
|
@@ -12888,6 +13323,14 @@ class AuroBibtemplate extends i$1 {
|
|
|
12888
13323
|
large: {
|
|
12889
13324
|
type: Boolean,
|
|
12890
13325
|
reflect: true
|
|
13326
|
+
},
|
|
13327
|
+
|
|
13328
|
+
/**
|
|
13329
|
+
* If declared, the footer slot will be rendered even when not in fullscreen mode.
|
|
13330
|
+
*/
|
|
13331
|
+
showFooter: {
|
|
13332
|
+
type: Boolean,
|
|
13333
|
+
reflect: true
|
|
12891
13334
|
}
|
|
12892
13335
|
};
|
|
12893
13336
|
}
|
|
@@ -12990,7 +13433,7 @@ class AuroBibtemplate extends i$1 {
|
|
|
12990
13433
|
<slot></slot>
|
|
12991
13434
|
</div>
|
|
12992
13435
|
|
|
12993
|
-
${this.isFullscreen ? u$a`
|
|
13436
|
+
${this.isFullscreen || this.showFooter ? u$a`
|
|
12994
13437
|
<div id="footerContainer">
|
|
12995
13438
|
<slot name="footer"></slot>
|
|
12996
13439
|
</div>` : null}
|
|
@@ -12999,7 +13442,7 @@ class AuroBibtemplate extends i$1 {
|
|
|
12999
13442
|
}
|
|
13000
13443
|
}
|
|
13001
13444
|
|
|
13002
|
-
var formkitVersion$2 = '
|
|
13445
|
+
var formkitVersion$2 = '202606081833';
|
|
13003
13446
|
|
|
13004
13447
|
let l$1 = class l{generateElementName(t,e){let o=t;return o+="-",o+=e.replace(/[.]/g,"_"),o}generateTag(o,s,a){const r=this.generateElementName(o,s),i=i$5`${s$5(r)}`;return customElements.get(r)||customElements.define(r,class extends a{}),i}};let d$1 = class d{registerComponent(t,e){customElements.get(t)||customElements.define(t,class extends e{});}closestElement(t,e=this,o=(e,s=e&&e.closest(t))=>e&&e!==document&&e!==window?s||o(e.getRootNode().host):null){return o(e)}handleComponentTagRename(t,e){const o=e.toLowerCase();t.tagName.toLowerCase()!==o&&t.setAttribute(o,true);}elementMatch(t,e){const o=e.toLowerCase();return t.tagName.toLowerCase()===o||t.hasAttribute(o)}getSlotText(t,e){const o=t.shadowRoot?.querySelector(`slot[name="${e}"]`),s=(o?.assignedNodes({flatten:true})||[]).map(t=>t.textContent?.trim()).join(" ").trim();return s||null}};let h$4 = class h{registerComponent(t,e){customElements.get(t)||customElements.define(t,class extends e{});}closestElement(t,e=this,o=(e,s=e&&e.closest(t))=>e&&e!==document&&e!==window?s||o(e.getRootNode().host):null){return o(e)}handleComponentTagRename(t,e){const o=e.toLowerCase();t.tagName.toLowerCase()!==o&&t.setAttribute(o,true);}elementMatch(t,e){const o=e.toLowerCase();return t.tagName.toLowerCase()===o||t.hasAttribute(o)}};var c$3=i$3`:host{color:var(--ds-auro-loader-color)}:host>span{background-color:var(--ds-auro-loader-background-color);border-color:var(--ds-auro-loader-border-color)}:host([onlight]),:host([appearance=brand]){--ds-auro-loader-color: var(--ds-basic-color-brand-primary, #01426a)}:host([ondark]),:host([appearance=inverse]){--ds-auro-loader-color: var(--ds-basic-color-texticon-inverse, #ffffff)}:host([orbit])>span{--ds-auro-loader-background-color: transparent}:host([orbit])>span:nth-child(1){--ds-auro-loader-border-color: currentcolor;opacity:.25}:host([orbit])>span:nth-child(2){--ds-auro-loader-border-color: currentcolor;border-right-color:transparent;border-bottom-color:transparent;border-left-color:transparent}
|
|
13005
13448
|
`,u$6=i$3`.body-default{font-size:var(--wcss-body-default-font-size, 1rem);line-height:var(--wcss-body-default-line-height, 1.5rem)}.body-default,.body-lg{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-weight, 450);letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-lg{font-size:var(--wcss-body-lg-font-size, 1.125rem);line-height:var(--wcss-body-lg-line-height, 1.625rem)}.body-sm{font-size:var(--wcss-body-sm-font-size, .875rem);line-height:var(--wcss-body-sm-line-height, 1.25rem)}.body-sm,.body-xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-weight, 450);letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-xs{font-size:var(--wcss-body-xs-font-size, .75rem);line-height:var(--wcss-body-xs-line-height, 1rem)}.body-2xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-size:var(--wcss-body-2xs-font-size, .625rem);font-weight:var(--wcss-body-weight, 450);letter-spacing:var(--wcss-body-letter-spacing, 0);line-height:var(--wcss-body-2xs-line-height, .875rem)}.display-2xl{font-family:var(--wcss-display-2xl-family, "AS Circular"),var(--wcss-display-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-2xl-font-size, clamp(3.5rem, 6vw, 5.375rem));font-weight:var(--wcss-display-2xl-weight, 300);letter-spacing:var(--wcss-display-2xl-letter-spacing, 0);line-height:var(--wcss-display-2xl-line-height, 1.3)}.display-xl{font-family:var(--wcss-display-xl-family, "AS Circular"),var(--wcss-display-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-xl-font-size, clamp(3rem, 5.3333333333vw, 4.5rem));font-weight:var(--wcss-display-xl-weight, 300);letter-spacing:var(--wcss-display-xl-letter-spacing, 0);line-height:var(--wcss-display-xl-line-height, 1.3)}.display-lg{font-family:var(--wcss-display-lg-family, "AS Circular"),var(--wcss-display-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-lg-font-size, clamp(2.75rem, 4.6666666667vw, 4rem));font-weight:var(--wcss-display-lg-weight, 300);letter-spacing:var(--wcss-display-lg-letter-spacing, 0);line-height:var(--wcss-display-lg-line-height, 1.3)}.display-md{font-family:var(--wcss-display-md-family, "AS Circular"),var(--wcss-display-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-md-font-size, clamp(2.5rem, 4vw, 3.5rem));font-weight:var(--wcss-display-md-weight, 300);letter-spacing:var(--wcss-display-md-letter-spacing, 0);line-height:var(--wcss-display-md-line-height, 1.3)}.display-sm{font-family:var(--wcss-display-sm-family, "AS Circular"),var(--wcss-display-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-sm-font-size, clamp(2rem, 3.6666666667vw, 3rem));font-weight:var(--wcss-display-sm-weight, 300);letter-spacing:var(--wcss-display-sm-letter-spacing, 0);line-height:var(--wcss-display-sm-line-height, 1.3)}.display-xs{font-family:var(--wcss-display-xs-family, "AS Circular"),var(--wcss-display-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-xs-font-size, clamp(1.75rem, 3vw, 2.375rem));font-weight:var(--wcss-display-xs-weight, 300);letter-spacing:var(--wcss-display-xs-letter-spacing, 0);line-height:var(--wcss-display-xs-line-height, 1.3)}.heading-xl{font-family:var(--wcss-heading-xl-family, "AS Circular"),var(--wcss-heading-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-xl-font-size, clamp(2rem, 3vw, 2.5rem));font-weight:var(--wcss-heading-xl-weight, 300);letter-spacing:var(--wcss-heading-xl-letter-spacing, 0);line-height:var(--wcss-heading-xl-line-height, 1.3)}.heading-lg{font-family:var(--wcss-heading-lg-family, "AS Circular"),var(--wcss-heading-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-lg-font-size, clamp(1.75rem, 2.6666666667vw, 2.25rem));font-weight:var(--wcss-heading-lg-weight, 300);letter-spacing:var(--wcss-heading-lg-letter-spacing, 0);line-height:var(--wcss-heading-lg-line-height, 1.3)}.heading-md{font-family:var(--wcss-heading-md-family, "AS Circular"),var(--wcss-heading-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-md-font-size, clamp(1.625rem, 2.3333333333vw, 1.75rem));font-weight:var(--wcss-heading-md-weight, 300);letter-spacing:var(--wcss-heading-md-letter-spacing, 0);line-height:var(--wcss-heading-md-line-height, 1.3)}.heading-sm{font-family:var(--wcss-heading-sm-family, "AS Circular"),var(--wcss-heading-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-sm-font-size, clamp(1.375rem, 2vw, 1.5rem));font-weight:var(--wcss-heading-sm-weight, 300);letter-spacing:var(--wcss-heading-sm-letter-spacing, 0);line-height:var(--wcss-heading-sm-line-height, 1.3)}.heading-xs{font-family:var(--wcss-heading-xs-family, "AS Circular"),var(--wcss-heading-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-xs-font-size, clamp(1.25rem, 1.6666666667vw, 1.25rem));font-weight:var(--wcss-heading-xs-weight, 450);letter-spacing:var(--wcss-heading-xs-letter-spacing, 0);line-height:var(--wcss-heading-xs-line-height, 1.3)}.heading-2xs{font-family:var(--wcss-heading-2xs-family, "AS Circular"),var(--wcss-heading-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-2xs-font-size, clamp(1.125rem, 1.5vw, 1.125rem));font-weight:var(--wcss-heading-2xs-weight, 450);letter-spacing:var(--wcss-heading-2xs-letter-spacing, 0);line-height:var(--wcss-heading-2xs-line-height, 1.3)}.accent-2xl{font-family:var(--wcss-accent-2xl-family, "Good OT"),var(--wcss-accent-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-2xl-font-size, clamp(2rem, 3.1666666667vw, 2.375rem));font-weight:var(--wcss-accent-2xl-weight, 450);letter-spacing:var(--wcss-accent-2xl-letter-spacing, .05em);line-height:var(--wcss-accent-2xl-line-height, 1)}.accent-2xl,.accent-xl{text-transform:uppercase}.accent-xl{font-family:var(--wcss-accent-xl-family, "Good OT"),var(--wcss-accent-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-xl-font-size, clamp(1.625rem, 2.3333333333vw, 2rem));font-weight:var(--wcss-accent-xl-weight, 450);letter-spacing:var(--wcss-accent-xl-letter-spacing, .05em);line-height:var(--wcss-accent-xl-line-height, 1.3)}.accent-lg{font-family:var(--wcss-accent-lg-family, "Good OT"),var(--wcss-accent-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-lg-font-size, clamp(1.5rem, 2.1666666667vw, 1.75rem));font-weight:var(--wcss-accent-lg-weight, 450);letter-spacing:var(--wcss-accent-lg-letter-spacing, .05em);line-height:var(--wcss-accent-lg-line-height, 1.3)}.accent-lg,.accent-md{text-transform:uppercase}.accent-md{font-family:var(--wcss-accent-md-family, "Good OT"),var(--wcss-accent-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-md-font-size, clamp(1.375rem, 1.8333333333vw, 1.5rem));font-weight:var(--wcss-accent-md-weight, 500);letter-spacing:var(--wcss-accent-md-letter-spacing, .05em);line-height:var(--wcss-accent-md-line-height, 1.3)}.accent-sm{font-family:var(--wcss-accent-sm-family, "Good OT"),var(--wcss-accent-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-sm-font-size, clamp(1.125rem, 1.5vw, 1.25rem));font-weight:var(--wcss-accent-sm-weight, 500);letter-spacing:var(--wcss-accent-sm-letter-spacing, .05em);line-height:var(--wcss-accent-sm-line-height, 1.3)}.accent-sm,.accent-xs{text-transform:uppercase}.accent-xs{font-family:var(--wcss-accent-xs-family, "Good OT"),var(--wcss-accent-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-xs-font-size, clamp(1rem, 1.3333333333vw, 1rem));font-weight:var(--wcss-accent-xs-weight, 500);letter-spacing:var(--wcss-accent-xs-letter-spacing, .1em);line-height:var(--wcss-accent-xs-line-height, 1.3)}.accent-2xs{font-family:var(--wcss-accent-2xs-family, "Good OT"),var(--wcss-accent-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-2xs-font-size, clamp(.875rem, 1.1666666667vw, .875rem));font-weight:var(--wcss-accent-2xs-weight, 450);letter-spacing:var(--wcss-accent-2xs-letter-spacing, .1em);line-height:var(--wcss-accent-2xs-line-height, 1.3);text-transform:uppercase}:focus:not(:focus-visible){outline:3px solid transparent}:host,:host>span{position:relative}:host{width:2rem;height:2rem;display:inline-block;font-size:0}:host>span{position:absolute;display:inline-block;float:none;top:0;left:0;width:2rem;height:2rem;border-radius:100%;border-style:solid;border-width:0;box-sizing:border-box}:host([xs]),:host([xs])>span{width:1.2rem;height:1.2rem}:host([sm]),:host([sm])>span{width:3rem;height:3rem}:host([md]),:host([md])>span{width:5rem;height:5rem}:host([lg]),:host([lg])>span{width:8rem;height:8rem}:host{--margin: .375rem;--margin-xs: .2rem;--margin-sm: .5rem;--margin-md: .75rem;--margin-lg: 1rem}:host([pulse]),:host([pulse])>span{position:relative}:host([pulse]){width:calc(3rem + var(--margin) * 6);height:calc(1rem + var(--margin) * 2)}:host([pulse])>span{width:1rem;height:1rem;margin:var(--margin);animation:pulse 1.5s ease infinite}:host([pulse][xs]){width:calc(1.95rem + var(--margin-xs) * 6);height:calc(.65rem + var(--margin-xs) * 2)}:host([pulse][xs])>span{margin:var(--margin-xs);width:.65rem;height:.65rem}:host([pulse][sm]){width:calc(6rem + var(--margin-sm) * 6);height:calc(2rem + var(--margin-sm) * 2)}:host([pulse][sm])>span{margin:var(--margin-sm);width:2rem;height:2rem}:host([pulse][md]){width:calc(9rem + var(--margin-md) * 6);height:calc(3rem + var(--margin-md) * 2)}:host([pulse][md])>span{margin:var(--margin-md);width:3rem;height:3rem}:host([pulse][lg]){width:calc(15rem + var(--margin-lg) * 6);height:calc(5rem + var(--margin-lg) * 2)}:host([pulse][lg])>span{margin:var(--margin-lg);width:5rem;height:5rem}:host([pulse])>span:nth-child(1){animation-delay:-.4s}:host([pulse])>span:nth-child(2){animation-delay:-.2s}:host([pulse])>span:nth-child(3){animation-delay:0ms}@keyframes pulse{0%,to{opacity:.1;transform:scale(.9)}50%{opacity:1;transform:scale(1.1)}}:host([orbit]),:host([orbit])>span{opacity:1}:host([orbit])>span{border-width:5px}:host([orbit])>span:nth-child(2){animation:orbit 2s linear infinite}:host([orbit][sm])>span{border-width:8px}:host([orbit][md])>span{border-width:13px}:host([orbit][lg])>span{border-width:21px}@keyframes orbit{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host([ringworm])>svg{animation:rotate 2s linear infinite;height:100%;width:100%;stroke:currentcolor;stroke-width:8}:host([ringworm]) .path{stroke-dashoffset:0;animation:ringworm 1.5s ease-in-out infinite;stroke-linecap:round}@keyframes rotate{to{transform:rotate(360deg)}}@keyframes ringworm{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:89,200;stroke-dashoffset:-35px}to{stroke-dasharray:89,200;stroke-dashoffset:-124px}}:host([laser]){position:static;width:100%;display:block;height:0;overflow:hidden;font-size:unset}:host([laser])>span{position:fixed;width:100%;height:.25rem;border-radius:0;z-index:100}:host([laser])>span:nth-child(1){border-color:currentcolor;opacity:.25}:host([laser])>span:nth-child(2){border-color:currentcolor;animation:laser 2s linear infinite;opacity:1;width:50%}:host([laser][sm])>span:nth-child(2){width:20%}:host([laser][md])>span:nth-child(2){width:30%}:host([laser][lg])>span:nth-child(2){width:50%;animation-duration:1.5s}:host([laser][xl])>span:nth-child(2){width:80%;animation-duration:1.5s}@keyframes laser{0%{left:-100%}to{left:110%}}:host>.no-animation{display:none}@media (prefers-reduced-motion: reduce){:host{display:flex;align-items:center;justify-content:center}:host>span{opacity:1}:host>.loader{display:none}:host>svg{display:none}:host>.no-animation{display:block}}
|
|
@@ -13060,7 +13503,7 @@ let l$1 = class l{generateElementName(t,e){let o=t;return o+="-",o+=e.replace(/[
|
|
|
13060
13503
|
|
|
13061
13504
|
var buttonVersion$1 = '12.3.2';
|
|
13062
13505
|
|
|
13063
|
-
/* eslint-disable no-magic-numbers, no-undef-init, max-lines, lit/binding-positions, lit/no-invalid-html */
|
|
13506
|
+
/* 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 */
|
|
13064
13507
|
|
|
13065
13508
|
|
|
13066
13509
|
// See https://git.io/JJ6SJ for "How to document your components using JSDoc"
|
|
@@ -13098,26 +13541,46 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
13098
13541
|
this.isFullscreen = false;
|
|
13099
13542
|
|
|
13100
13543
|
/**
|
|
13544
|
+
* The date of the currently active cell (Unix timestamp).
|
|
13545
|
+
* Only one cell across the entire calendar has tabindex="0" at a time.
|
|
13101
13546
|
* @private
|
|
13102
13547
|
*/
|
|
13103
|
-
this.
|
|
13548
|
+
this.activeCellDate = null;
|
|
13104
13549
|
|
|
13105
13550
|
/**
|
|
13551
|
+
* Whether the #calendarGrid wrapper currently has focus.
|
|
13552
|
+
* Used to determine whether the visualFocus ring should be shown.
|
|
13106
13553
|
* @private
|
|
13107
13554
|
*/
|
|
13108
|
-
this.
|
|
13555
|
+
this._gridHasFocus = false;
|
|
13109
13556
|
|
|
13110
13557
|
/**
|
|
13111
13558
|
* @private
|
|
13112
13559
|
*/
|
|
13113
|
-
this.
|
|
13560
|
+
this.firstMonthRenderable = undefined;
|
|
13114
13561
|
|
|
13115
13562
|
/**
|
|
13116
13563
|
* @private
|
|
13117
13564
|
*/
|
|
13118
|
-
this.
|
|
13119
|
-
|
|
13120
|
-
|
|
13565
|
+
this.calendarRangeMonths = null;
|
|
13566
|
+
|
|
13567
|
+
/**
|
|
13568
|
+
* Legacy array of disabled-date timestamps.
|
|
13569
|
+
* @private
|
|
13570
|
+
*/
|
|
13571
|
+
this.disabledDays = [];
|
|
13572
|
+
|
|
13573
|
+
/**
|
|
13574
|
+
* @private
|
|
13575
|
+
*/
|
|
13576
|
+
this.numCalendars = undefined;
|
|
13577
|
+
|
|
13578
|
+
/**
|
|
13579
|
+
* @private
|
|
13580
|
+
*/
|
|
13581
|
+
this.slots = {};
|
|
13582
|
+
|
|
13583
|
+
const versioning = new AuroDependencyVersioning$3();
|
|
13121
13584
|
|
|
13122
13585
|
/**
|
|
13123
13586
|
* @private
|
|
@@ -13130,6 +13593,12 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
13130
13593
|
this.buttonTag = versioning.generateTag('auro-formkit-datepicker-button', buttonVersion$1, T$1);
|
|
13131
13594
|
|
|
13132
13595
|
this.dropdown = undefined;
|
|
13596
|
+
|
|
13597
|
+
/**
|
|
13598
|
+
* Unique instance ID for the live region element.
|
|
13599
|
+
* @private
|
|
13600
|
+
*/
|
|
13601
|
+
this._calendarInstanceId = Date.now().toString(36);
|
|
13133
13602
|
}
|
|
13134
13603
|
|
|
13135
13604
|
static get styles() {
|
|
@@ -13293,19 +13762,79 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
13293
13762
|
/**
|
|
13294
13763
|
* Updates the month and year when the user navigates to the previous calendar month.
|
|
13295
13764
|
* @private
|
|
13765
|
+
* @param {Object} [options] - Optional settings.
|
|
13766
|
+
* @param {boolean} [options.skipActiveUpdate=false] - When true, skip the active cell
|
|
13767
|
+
* recomputation. Used by arrow key handlers that manage the active cell themselves.
|
|
13296
13768
|
* @returns {void}
|
|
13297
13769
|
*/
|
|
13298
|
-
handlePrevMonth() {
|
|
13770
|
+
handlePrevMonth(options) {
|
|
13771
|
+
const opts = options instanceof Event ? {} : options || {};
|
|
13772
|
+
this.clearRangePreview({ force: true });
|
|
13299
13773
|
this.utilCal.handleMonthChange(this, 'prev');
|
|
13774
|
+
if (!opts.skipActiveUpdate) {
|
|
13775
|
+
this.updateActiveCellForVisibleMonth();
|
|
13776
|
+
}
|
|
13777
|
+
this.announceMonthChange();
|
|
13300
13778
|
}
|
|
13301
13779
|
|
|
13302
13780
|
/**
|
|
13303
13781
|
* Updates the month and year when the user navigates to the next calendar month.
|
|
13304
13782
|
* @private
|
|
13783
|
+
* @param {Object} [options] - Optional settings.
|
|
13784
|
+
* @param {boolean} [options.skipActiveUpdate=false] - When true, skip the active cell
|
|
13785
|
+
* recomputation. Used by arrow key handlers that manage the active cell themselves.
|
|
13305
13786
|
* @returns {void}
|
|
13306
13787
|
*/
|
|
13307
|
-
handleNextMonth() {
|
|
13788
|
+
handleNextMonth(options) {
|
|
13789
|
+
const opts = options instanceof Event ? {} : options || {};
|
|
13790
|
+
this.clearRangePreview({ force: true });
|
|
13308
13791
|
this.utilCal.handleMonthChange(this, 'next');
|
|
13792
|
+
if (!opts.skipActiveUpdate) {
|
|
13793
|
+
this.updateActiveCellForVisibleMonth();
|
|
13794
|
+
}
|
|
13795
|
+
this.announceMonthChange();
|
|
13796
|
+
}
|
|
13797
|
+
|
|
13798
|
+
/**
|
|
13799
|
+
* Announces the current month and year via the live region after navigation.
|
|
13800
|
+
* @private
|
|
13801
|
+
* @returns {void}
|
|
13802
|
+
*/
|
|
13803
|
+
announceMonthChange() {
|
|
13804
|
+
// Cancel any pending debounced cell announcement so it does not
|
|
13805
|
+
// overwrite this month navigation announcement.
|
|
13806
|
+
if (this._focusAnnounceTimer) {
|
|
13807
|
+
clearTimeout(this._focusAnnounceTimer);
|
|
13808
|
+
this._focusAnnounceTimer = null;
|
|
13809
|
+
}
|
|
13810
|
+
|
|
13811
|
+
const date = this.centralDateObject;
|
|
13812
|
+
const localeCode = this.locale?.code || undefined;
|
|
13813
|
+
const formatter = new Intl.DateTimeFormat(localeCode, { month: 'long',
|
|
13814
|
+
year: 'numeric' });
|
|
13815
|
+
this.announceSelection(formatter.format(date));
|
|
13816
|
+
}
|
|
13817
|
+
|
|
13818
|
+
/**
|
|
13819
|
+
* Updates the active cell after month navigation (prev/next buttons).
|
|
13820
|
+
* Always moves the active cell to the first enabled date in the newly
|
|
13821
|
+
* visible months so that tabbing back to the grid lands on an enabled cell.
|
|
13822
|
+
* @private
|
|
13823
|
+
* @returns {void}
|
|
13824
|
+
*/
|
|
13825
|
+
updateActiveCellForVisibleMonth() {
|
|
13826
|
+
// Use double-rAF to ensure child month/cell components have fully
|
|
13827
|
+
// rendered and cached their button references before we set tabindex.
|
|
13828
|
+
requestAnimationFrame(() => {
|
|
13829
|
+
requestAnimationFrame(() => {
|
|
13830
|
+
const newDate = this.computeActiveDate({ skipDateFrom: true });
|
|
13831
|
+
|
|
13832
|
+
if (newDate !== null && newDate !== undefined) {
|
|
13833
|
+
this.activeCellDate = newDate;
|
|
13834
|
+
this.setActiveCell(this.activeCellDate);
|
|
13835
|
+
}
|
|
13836
|
+
});
|
|
13837
|
+
});
|
|
13309
13838
|
}
|
|
13310
13839
|
|
|
13311
13840
|
/**
|
|
@@ -13344,76 +13873,1076 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
13344
13873
|
} else {
|
|
13345
13874
|
const now = new Date();
|
|
13346
13875
|
|
|
13347
|
-
dateMatches = this.util.datesMatch(this.firstRenderedMonth, this.util.convertDateToFirstOfMonth(now));
|
|
13876
|
+
dateMatches = this.util.datesMatch(this.firstRenderedMonth, this.util.convertDateToFirstOfMonth(now));
|
|
13877
|
+
|
|
13878
|
+
if (!dateMatches) {
|
|
13879
|
+
this.firstRenderedMonth = this.util.convertDateToFirstOfMonth(now);
|
|
13880
|
+
}
|
|
13881
|
+
}
|
|
13882
|
+
} else {
|
|
13883
|
+
// On mobile start the calendar at the previously determined first renderable month.
|
|
13884
|
+
this.firstRenderedMonth = this.firstMonthRenderable;
|
|
13885
|
+
}
|
|
13886
|
+
|
|
13887
|
+
// Add the first calendar to the HTML
|
|
13888
|
+
const firstMonth = this.firstRenderedMonth.getMonth() + 1;
|
|
13889
|
+
const firstYear = this.firstRenderedMonth.getFullYear();
|
|
13890
|
+
|
|
13891
|
+
renderedHtml = u$a`${renderedHtml}${this.utilCalRender.renderCalendar(this, firstMonth, firstYear)}`;
|
|
13892
|
+
|
|
13893
|
+
// Loop through the number of remaining calendars to render and add the HTML
|
|
13894
|
+
let newMonthDate = undefined;
|
|
13895
|
+
|
|
13896
|
+
for (let cal = 0; cal < this.numCalendars - 1; cal += 1) {
|
|
13897
|
+
|
|
13898
|
+
const date = newMonthDate || this.firstRenderedMonth;
|
|
13899
|
+
|
|
13900
|
+
const oldMonth = date.getMonth() + 1;
|
|
13901
|
+
const oldYear = date.getFullYear();
|
|
13902
|
+
|
|
13903
|
+
let newMonth = undefined;
|
|
13904
|
+
let newYear = undefined;
|
|
13905
|
+
|
|
13906
|
+
if (oldMonth === 12) {
|
|
13907
|
+
newMonth = 1;
|
|
13908
|
+
newYear = oldYear + 1;
|
|
13909
|
+
} else {
|
|
13910
|
+
newMonth = oldMonth + 1;
|
|
13911
|
+
newYear = oldYear;
|
|
13912
|
+
}
|
|
13913
|
+
|
|
13914
|
+
const newMonthDateStr = `${String(newMonth).padStart(2, '0')}/01/${newYear}`;
|
|
13915
|
+
newMonthDate = dateFormatter$1.stringToDateInstance(newMonthDateStr, 'mm/dd/yyyy');
|
|
13916
|
+
|
|
13917
|
+
renderedHtml = u$a`${renderedHtml}${this.utilCalRender.renderCalendar(this, newMonth, newYear)}`;
|
|
13918
|
+
}
|
|
13919
|
+
}
|
|
13920
|
+
|
|
13921
|
+
return renderedHtml;
|
|
13922
|
+
}
|
|
13923
|
+
|
|
13924
|
+
/**
|
|
13925
|
+
* Focuses the close button inside the calendar's bibtemplate.
|
|
13926
|
+
* Used by datepicker to set initial focus when the fullscreen dialog opens.
|
|
13927
|
+
* @returns {void}
|
|
13928
|
+
*/
|
|
13929
|
+
focusCloseButton() {
|
|
13930
|
+
const bibtemplate = this.shadowRoot.querySelector(this.bibtemplateTag._$litStatic$);
|
|
13931
|
+
if (bibtemplate) {
|
|
13932
|
+
bibtemplate.focusCloseButton();
|
|
13933
|
+
}
|
|
13934
|
+
}
|
|
13935
|
+
|
|
13936
|
+
/**
|
|
13937
|
+
* Request the calendar be scrolled to a given date.
|
|
13938
|
+
* @param {String} date - The date to scroll into view.
|
|
13939
|
+
* @returns {void}
|
|
13940
|
+
*/
|
|
13941
|
+
scrollMonthIntoView(date) {
|
|
13942
|
+
this.utilCal.scrollMonthIntoView(this, date, this.format);
|
|
13943
|
+
}
|
|
13944
|
+
|
|
13945
|
+
/**
|
|
13946
|
+
* Gets all rendered month components.
|
|
13947
|
+
* @private
|
|
13948
|
+
* @returns {Array} Array of auro-formkit-calendar-month elements.
|
|
13949
|
+
*/
|
|
13950
|
+
getMonthComponents() {
|
|
13951
|
+
return Array.from(this.shadowRoot.querySelectorAll('auro-formkit-calendar-month'));
|
|
13952
|
+
}
|
|
13953
|
+
|
|
13954
|
+
/**
|
|
13955
|
+
* Gets all focusable cells across all rendered months.
|
|
13956
|
+
* @private
|
|
13957
|
+
* @returns {Array} Array of auro-formkit-calendar-cell elements.
|
|
13958
|
+
*/
|
|
13959
|
+
getAllFocusableCells() {
|
|
13960
|
+
const months = this.getMonthComponents();
|
|
13961
|
+
let cells = [];
|
|
13962
|
+
months.forEach((month) => {
|
|
13963
|
+
cells = cells.concat(month.getFocusableCells());
|
|
13964
|
+
});
|
|
13965
|
+
return cells;
|
|
13966
|
+
}
|
|
13967
|
+
|
|
13968
|
+
/**
|
|
13969
|
+
* Sets the active cell across all months. Only one cell has tabindex="0" at a time.
|
|
13970
|
+
* Uses imperative DOM manipulation — no Lit re-render triggered.
|
|
13971
|
+
* Also updates ariaActiveDescendantElement on the grid wrapper so
|
|
13972
|
+
* screen readers announce the active cell without moving DOM focus.
|
|
13973
|
+
* @param {Number} date - Unix timestamp of the cell to activate.
|
|
13974
|
+
* @returns {void}
|
|
13975
|
+
*/
|
|
13976
|
+
setActiveCell(date) {
|
|
13977
|
+
const allCells = this.getAllFocusableCells();
|
|
13978
|
+
|
|
13979
|
+
let newActiveCell = null;
|
|
13980
|
+
allCells.forEach((cell) => {
|
|
13981
|
+
if (cell.day && cell.day.date === date) {
|
|
13982
|
+
cell.setActive();
|
|
13983
|
+
newActiveCell = cell;
|
|
13984
|
+
} else if (cell.active) {
|
|
13985
|
+
cell.clearActive();
|
|
13986
|
+
}
|
|
13987
|
+
});
|
|
13988
|
+
|
|
13989
|
+
this.activeCellDate = date;
|
|
13990
|
+
|
|
13991
|
+
// Apply activeCell ring only when the grid currently has focus.
|
|
13992
|
+
if (newActiveCell && this._gridHasFocus) {
|
|
13993
|
+
const btn = newActiveCell._cachedButton || newActiveCell.shadowRoot.querySelector('button.day');
|
|
13994
|
+
if (btn) {
|
|
13995
|
+
btn.classList.add('activeCell');
|
|
13996
|
+
}
|
|
13997
|
+
}
|
|
13998
|
+
}
|
|
13999
|
+
|
|
14000
|
+
/**
|
|
14001
|
+
* Focuses the calendar grid wrapper and sets the active cell.
|
|
14002
|
+
* DOM focus stays on the grid wrapper; the aria-live region
|
|
14003
|
+
* tells the screen reader which cell is "active".
|
|
14004
|
+
* @returns {void}
|
|
14005
|
+
*/
|
|
14006
|
+
focusActiveCell() {
|
|
14007
|
+
if (this.activeCellDate !== null && this.activeCellDate !== undefined) {
|
|
14008
|
+
this.setActiveCell(this.activeCellDate);
|
|
14009
|
+
}
|
|
14010
|
+
|
|
14011
|
+
const gridWrapper = this.shadowRoot.querySelector('#calendarGrid');
|
|
14012
|
+
if (gridWrapper) {
|
|
14013
|
+
gridWrapper.focus({ preventScroll: true,
|
|
14014
|
+
focusVisible: true });
|
|
14015
|
+
}
|
|
14016
|
+
}
|
|
14017
|
+
|
|
14018
|
+
/**
|
|
14019
|
+
* Shows the activeCell ring when the grid gains focus.
|
|
14020
|
+
* @private
|
|
14021
|
+
* @returns {void}
|
|
14022
|
+
*/
|
|
14023
|
+
handleGridFocusIn() {
|
|
14024
|
+
this._gridHasFocus = true;
|
|
14025
|
+
const activeCell = this.getAllFocusableCells().find((cell) => cell.active);
|
|
14026
|
+
if (activeCell) {
|
|
14027
|
+
const btn = activeCell._cachedButton || activeCell.shadowRoot.querySelector('button.day');
|
|
14028
|
+
if (btn) {
|
|
14029
|
+
btn.classList.add('activeCell');
|
|
14030
|
+
}
|
|
14031
|
+
}
|
|
14032
|
+
}
|
|
14033
|
+
|
|
14034
|
+
/**
|
|
14035
|
+
* Hides the activeCell ring when the grid loses focus.
|
|
14036
|
+
* @private
|
|
14037
|
+
* @returns {void}
|
|
14038
|
+
*/
|
|
14039
|
+
handleGridFocusOut() {
|
|
14040
|
+
this._gridHasFocus = false;
|
|
14041
|
+
// Remove activeCell from ALL cells to prevent stale rings.
|
|
14042
|
+
const allCells = this.getAllFocusableCells();
|
|
14043
|
+
for (const cell of allCells) {
|
|
14044
|
+
const btn = cell._cachedButton || cell.shadowRoot.querySelector('button.day');
|
|
14045
|
+
if (btn) {
|
|
14046
|
+
btn.classList.remove('activeCell');
|
|
14047
|
+
}
|
|
14048
|
+
}
|
|
14049
|
+
// Clear range hover preview so no highlight lingers after focus leaves the grid.
|
|
14050
|
+
this.clearRangePreview();
|
|
14051
|
+
}
|
|
14052
|
+
|
|
14053
|
+
/**
|
|
14054
|
+
* Computes the initial active date from data properties alone — no DOM required.
|
|
14055
|
+
* Priority:
|
|
14056
|
+
* 1. Selected date (dateFrom) if within range
|
|
14057
|
+
* 2. Today's date if not disabled (in-range and not blackout)
|
|
14058
|
+
* 3. First future non-disabled date (scans day-by-day from today up to 1 year)
|
|
14059
|
+
* 4. First previous non-disabled date (scans day-by-day from today up to 1 year)
|
|
14060
|
+
* 5. First enabled date in finite [min, max] range
|
|
14061
|
+
* 5b. First enabled date scanning forward from finite min (unbounded max)
|
|
14062
|
+
* 5c. First enabled date scanning backward from finite max (unbounded min)
|
|
14063
|
+
* 6. First in-range date (even if blackout) so focus can land somewhere
|
|
14064
|
+
* 7. Undefined — no valid target.
|
|
14065
|
+
*
|
|
14066
|
+
* @private
|
|
14067
|
+
* @param {Object} [options] - Optional settings.
|
|
14068
|
+
* @param {boolean} [options.skipDateFrom=false] - When true, skip the selected-date
|
|
14069
|
+
* shortcut (step 1). Used after month navigation so the active cell lands in the
|
|
14070
|
+
* newly visible month instead of jumping back to the selected date's month.
|
|
14071
|
+
* @returns {Number|undefined} Unix timestamp (seconds) of the date to activate, or undefined.
|
|
14072
|
+
*/
|
|
14073
|
+
computeActiveDate(options = {}) {
|
|
14074
|
+
const MAX_SCAN_DAYS = 366; // scan at most ~1 year in each direction
|
|
14075
|
+
|
|
14076
|
+
/**
|
|
14077
|
+
* Adds days to a timestamp using Date arithmetic to handle DST correctly.
|
|
14078
|
+
* Returns a local-midnight-aligned timestamp in seconds.
|
|
14079
|
+
* @param {Number} ts - Unix timestamp in seconds.
|
|
14080
|
+
* @param {Number} days - Number of days to add.
|
|
14081
|
+
* @returns {Number} The adjusted timestamp in seconds.
|
|
14082
|
+
*/
|
|
14083
|
+
const addDays = (ts, days) => {
|
|
14084
|
+
const date = new Date(ts * 1000);
|
|
14085
|
+
date.setDate(date.getDate() + days);
|
|
14086
|
+
date.setHours(0, 0, 0, 0);
|
|
14087
|
+
return Math.floor(date.getTime() / 1000);
|
|
14088
|
+
};
|
|
14089
|
+
|
|
14090
|
+
const rawMin = this.minDateObject?.getTime() / 1000;
|
|
14091
|
+
const rawMax = this.maxDateObject?.getTime() / 1000;
|
|
14092
|
+
|
|
14093
|
+
// When min/max are NaN (no minDate/maxDate configured), treat as unbounded.
|
|
14094
|
+
const minTs = Number.isFinite(rawMin) ? rawMin : -Infinity;
|
|
14095
|
+
const maxTs = Number.isFinite(rawMax) ? rawMax : Infinity;
|
|
14096
|
+
|
|
14097
|
+
// Build a Set of blackout timestamps for O(1) lookup.
|
|
14098
|
+
const blackoutSet = new Set(this.disabledDays.map((day) => parseInt(day, 10)));
|
|
14099
|
+
|
|
14100
|
+
// Also include ISO-format blackoutDates from the datepicker if available.
|
|
14101
|
+
// Parse YYYY-MM-DD as local date to avoid UTC shift issues.
|
|
14102
|
+
const isoBlackouts = this.datepicker?.blackoutDates;
|
|
14103
|
+
if (Array.isArray(isoBlackouts)) {
|
|
14104
|
+
for (const isoStr of isoBlackouts) {
|
|
14105
|
+
const parts = isoStr.split('-');
|
|
14106
|
+
const ts = Math.floor(new Date(parseInt(parts[0], 10), parseInt(parts[1], 10) - 1, parseInt(parts[2], 10)).getTime() / 1000);
|
|
14107
|
+
if (Number.isFinite(ts)) {
|
|
14108
|
+
blackoutSet.add(ts);
|
|
14109
|
+
}
|
|
14110
|
+
}
|
|
14111
|
+
}
|
|
14112
|
+
|
|
14113
|
+
/**
|
|
14114
|
+
* A date (unix timestamp in seconds, midnight-aligned) is "enabled" when
|
|
14115
|
+
* it is within [min, max] AND not a blackout day.
|
|
14116
|
+
* @param {Number} ts - Unix timestamp in seconds.
|
|
14117
|
+
* @returns {boolean} True if the date is enabled.
|
|
14118
|
+
*/
|
|
14119
|
+
const isEnabled = (ts) => ts >= minTs && ts <= maxTs && !blackoutSet.has(ts);
|
|
14120
|
+
|
|
14121
|
+
/**
|
|
14122
|
+
* A date is "in range" (focusable in the grid) when it is within [min, max].
|
|
14123
|
+
* Blackout dates are focusable but not selectable.
|
|
14124
|
+
* @param {Number} ts - Unix timestamp in seconds.
|
|
14125
|
+
* @returns {boolean} True if the date is in range.
|
|
14126
|
+
*/
|
|
14127
|
+
const isInRange = (ts) => ts >= minTs && ts <= maxTs;
|
|
14128
|
+
|
|
14129
|
+
// 1. Selected date — always valid target if within range (user chose it).
|
|
14130
|
+
// Skipped when called from month navigation so the active cell lands in
|
|
14131
|
+
// the newly visible month rather than the (possibly off-screen) selection.
|
|
14132
|
+
if (!options.skipDateFrom && this.dateFrom) {
|
|
14133
|
+
const parsedFrom = parseInt(this.dateFrom, 10);
|
|
14134
|
+
if (Number.isFinite(parsedFrom) && isInRange(parsedFrom)) {
|
|
14135
|
+
return parsedFrom;
|
|
14136
|
+
}
|
|
14137
|
+
}
|
|
14138
|
+
|
|
14139
|
+
// 2. Today's date (midnight-aligned) if enabled.
|
|
14140
|
+
const now = Math.floor(new Date().setHours(0, 0, 0, 0) / 1000);
|
|
14141
|
+
|
|
14142
|
+
// When centralDate is configured, prefer a date within the month(s) that
|
|
14143
|
+
// will actually be rendered. If today falls outside the visible range, an
|
|
14144
|
+
// active cell set to today would have no matching DOM element and keyboard
|
|
14145
|
+
// focus could not enter the calendar.
|
|
14146
|
+
|
|
14147
|
+
if (this.centralDateObject) {
|
|
14148
|
+
const centralMonth = this.centralDateObject.getMonth();
|
|
14149
|
+
const centralYear = this.centralDateObject.getFullYear();
|
|
14150
|
+
const todayDate = new Date(now * 1000);
|
|
14151
|
+
const todayMonth = todayDate.getMonth();
|
|
14152
|
+
const todayYear = todayDate.getFullYear();
|
|
14153
|
+
|
|
14154
|
+
// Today is outside the centralDate's month — scan for an enabled date
|
|
14155
|
+
// within the visible month instead.
|
|
14156
|
+
if (todayMonth !== centralMonth || todayYear !== centralYear) {
|
|
14157
|
+
const visibleStart = new Date(centralYear, centralMonth, 1);
|
|
14158
|
+
visibleStart.setHours(0, 0, 0, 0);
|
|
14159
|
+
const visibleEnd = new Date(centralYear, centralMonth + 1, 0); // last day of month
|
|
14160
|
+
visibleEnd.setHours(0, 0, 0, 0);
|
|
14161
|
+
const startTs = Math.floor(visibleStart.getTime() / 1000);
|
|
14162
|
+
const daysInMonth = visibleEnd.getDate();
|
|
14163
|
+
|
|
14164
|
+
for (let idx = 0; idx < daysInMonth; idx += 1) {
|
|
14165
|
+
const ts = addDays(startTs, idx);
|
|
14166
|
+
if (isEnabled(ts)) {
|
|
14167
|
+
return ts;
|
|
14168
|
+
}
|
|
14169
|
+
}
|
|
14170
|
+
|
|
14171
|
+
// No enabled date in the visible month — fall back to first in-range
|
|
14172
|
+
// date in the month so focus still lands on a focusable cell.
|
|
14173
|
+
for (let idx = 0; idx < daysInMonth; idx += 1) {
|
|
14174
|
+
const ts = addDays(startTs, idx);
|
|
14175
|
+
if (isInRange(ts)) {
|
|
14176
|
+
return ts;
|
|
14177
|
+
}
|
|
14178
|
+
}
|
|
14179
|
+
}
|
|
14180
|
+
}
|
|
14181
|
+
|
|
14182
|
+
if (isEnabled(now)) {
|
|
14183
|
+
return now;
|
|
14184
|
+
}
|
|
14185
|
+
|
|
14186
|
+
// When a centralDate is configured (or inferred), constrain the scan to the
|
|
14187
|
+
// rendered month(s) first so a single-month calendar does not pick a date
|
|
14188
|
+
// that has no DOM cell. Determine the visible range based on centralDate and
|
|
14189
|
+
// the number of rendered months.
|
|
14190
|
+
const renderedMonths = Math.max(this.numCalendars, 1);
|
|
14191
|
+
const visibleAnchor = this.centralDateObject ?? new Date(now * 1000);
|
|
14192
|
+
const visMonthStart = new Date(visibleAnchor.getFullYear(), visibleAnchor.getMonth(), 1);
|
|
14193
|
+
visMonthStart.setHours(0, 0, 0, 0);
|
|
14194
|
+
const visMonthEnd = new Date(visibleAnchor.getFullYear(), visibleAnchor.getMonth() + renderedMonths, 0);
|
|
14195
|
+
visMonthEnd.setHours(0, 0, 0, 0);
|
|
14196
|
+
const visStartTs = Math.floor(visMonthStart.getTime() / 1000);
|
|
14197
|
+
const visEndTs = Math.floor(visMonthEnd.getTime() / 1000);
|
|
14198
|
+
const visDays = Math.round((visEndTs - visStartTs) / 86400) + 1;
|
|
14199
|
+
|
|
14200
|
+
// Scan visible months for an enabled date.
|
|
14201
|
+
for (let idx = 0; idx < visDays; idx += 1) {
|
|
14202
|
+
const ts = addDays(visStartTs, idx);
|
|
14203
|
+
if (isEnabled(ts)) {
|
|
14204
|
+
return ts;
|
|
14205
|
+
}
|
|
14206
|
+
}
|
|
14207
|
+
|
|
14208
|
+
// No enabled date in visible months — try an in-range (focusable) date so
|
|
14209
|
+
// keyboard focus still has a tabindex="0" target.
|
|
14210
|
+
for (let idx = 0; idx < visDays; idx += 1) {
|
|
14211
|
+
const ts = addDays(visStartTs, idx);
|
|
14212
|
+
if (isInRange(ts)) {
|
|
14213
|
+
return ts;
|
|
14214
|
+
}
|
|
14215
|
+
}
|
|
14216
|
+
|
|
14217
|
+
// 3. First future enabled date (scan forward from tomorrow, capped by max and MAX_SCAN_DAYS).
|
|
14218
|
+
for (let idx = 1; idx <= MAX_SCAN_DAYS; idx += 1) {
|
|
14219
|
+
const ts = addDays(now, idx);
|
|
14220
|
+
if (Number.isFinite(maxTs) && ts > maxTs) {
|
|
14221
|
+
break;
|
|
14222
|
+
}
|
|
14223
|
+
if (isEnabled(ts)) {
|
|
14224
|
+
return ts;
|
|
14225
|
+
}
|
|
14226
|
+
}
|
|
14227
|
+
|
|
14228
|
+
// 4. First previous enabled date (scan backward from yesterday, capped by min and MAX_SCAN_DAYS).
|
|
14229
|
+
for (let idx = 1; idx <= MAX_SCAN_DAYS; idx += 1) {
|
|
14230
|
+
const ts = addDays(now, -idx);
|
|
14231
|
+
if (Number.isFinite(minTs) && ts < minTs) {
|
|
14232
|
+
break;
|
|
14233
|
+
}
|
|
14234
|
+
if (isEnabled(ts)) {
|
|
14235
|
+
return ts;
|
|
14236
|
+
}
|
|
14237
|
+
}
|
|
14238
|
+
|
|
14239
|
+
// 5. If scans missed (e.g. min/max range is far from today), fall back to
|
|
14240
|
+
// the first enabled date in the [min, max] range.
|
|
14241
|
+
if (Number.isFinite(minTs) && Number.isFinite(maxTs)) {
|
|
14242
|
+
let ts = minTs;
|
|
14243
|
+
for (let idx = 0; ts <= maxTs; idx += 1) {
|
|
14244
|
+
if (isEnabled(ts)) {
|
|
14245
|
+
return ts;
|
|
14246
|
+
}
|
|
14247
|
+
ts = addDays(minTs, idx + 1);
|
|
14248
|
+
}
|
|
14249
|
+
}
|
|
14250
|
+
|
|
14251
|
+
// 5b. Finite min with unbounded max (e.g. minDate far in the future):
|
|
14252
|
+
// scan forward from min for up to MAX_SCAN_DAYS.
|
|
14253
|
+
if (Number.isFinite(minTs) && !Number.isFinite(maxTs)) {
|
|
14254
|
+
for (let idx = 0; idx <= MAX_SCAN_DAYS; idx += 1) {
|
|
14255
|
+
const ts = addDays(minTs, idx);
|
|
14256
|
+
if (isEnabled(ts)) {
|
|
14257
|
+
return ts;
|
|
14258
|
+
}
|
|
14259
|
+
}
|
|
14260
|
+
}
|
|
14261
|
+
|
|
14262
|
+
// 5c. Unbounded min with a finite max far in the past (e.g. birth-date picker):
|
|
14263
|
+
// scan backward from max for up to MAX_SCAN_DAYS.
|
|
14264
|
+
if (!Number.isFinite(minTs) && Number.isFinite(maxTs)) {
|
|
14265
|
+
for (let idx = 0; idx <= MAX_SCAN_DAYS; idx += 1) {
|
|
14266
|
+
const ts = addDays(maxTs, -idx);
|
|
14267
|
+
if (isEnabled(ts)) {
|
|
14268
|
+
return ts;
|
|
14269
|
+
}
|
|
14270
|
+
}
|
|
14271
|
+
}
|
|
14272
|
+
|
|
14273
|
+
// 6. All dates are blackout — fall back to the first in-range date so focus
|
|
14274
|
+
// still lands on a focusable (but not selectable) cell.
|
|
14275
|
+
if (Number.isFinite(minTs) && isInRange(minTs)) {
|
|
14276
|
+
return minTs;
|
|
14277
|
+
}
|
|
14278
|
+
if (isInRange(now)) {
|
|
14279
|
+
return now;
|
|
14280
|
+
}
|
|
14281
|
+
|
|
14282
|
+
return undefined;
|
|
14283
|
+
}
|
|
14284
|
+
|
|
14285
|
+
/**
|
|
14286
|
+
* Checks if a target date (unix seconds) is within the configured [min, max] range.
|
|
14287
|
+
* Returns false if the date falls outside the range, preventing navigation
|
|
14288
|
+
* to months where all dates are disabled.
|
|
14289
|
+
* @private
|
|
14290
|
+
* @param {Number} targetTs - Unix timestamp in seconds.
|
|
14291
|
+
* @returns {Boolean} True if the date is within range.
|
|
14292
|
+
*/
|
|
14293
|
+
isDateInRange(targetTs) {
|
|
14294
|
+
const rawMin = this.minDateObject?.getTime() / 1000;
|
|
14295
|
+
const rawMax = this.maxDateObject?.getTime() / 1000;
|
|
14296
|
+
if (Number.isFinite(rawMin) && targetTs < rawMin) {
|
|
14297
|
+
return false;
|
|
14298
|
+
}
|
|
14299
|
+
if (Number.isFinite(rawMax) && targetTs > rawMax) {
|
|
14300
|
+
return false;
|
|
14301
|
+
}
|
|
14302
|
+
return true;
|
|
14303
|
+
}
|
|
14304
|
+
|
|
14305
|
+
/**
|
|
14306
|
+
* Handles arrow key navigation on the calendar grid wrapper.
|
|
14307
|
+
* Focus stays on the grid wrapper; only ariaActiveDescendantElement
|
|
14308
|
+
* and the visual active-cell indicator change.
|
|
14309
|
+
* @private
|
|
14310
|
+
* @param {KeyboardEvent} event - The keyboard event.
|
|
14311
|
+
* @returns {void}
|
|
14312
|
+
*/
|
|
14313
|
+
handleGridKeyDown(event) {
|
|
14314
|
+
const { key } = event;
|
|
14315
|
+
const actionKeys = [
|
|
14316
|
+
'ArrowRight',
|
|
14317
|
+
'ArrowLeft',
|
|
14318
|
+
'ArrowDown',
|
|
14319
|
+
'ArrowUp',
|
|
14320
|
+
'Enter',
|
|
14321
|
+
' '
|
|
14322
|
+
];
|
|
14323
|
+
|
|
14324
|
+
if (!actionKeys.includes(key)) {
|
|
14325
|
+
return;
|
|
14326
|
+
}
|
|
14327
|
+
|
|
14328
|
+
event.preventDefault();
|
|
14329
|
+
|
|
14330
|
+
const allCells = this.getAllFocusableCells();
|
|
14331
|
+
if (allCells.length === 0) {
|
|
14332
|
+
return;
|
|
14333
|
+
}
|
|
14334
|
+
|
|
14335
|
+
const activeCell = allCells.find((cell) => cell.active);
|
|
14336
|
+
if (!activeCell) {
|
|
14337
|
+
return;
|
|
14338
|
+
}
|
|
14339
|
+
|
|
14340
|
+
// Handle Enter/Space to select the active cell
|
|
14341
|
+
if (key === 'Enter' || key === ' ') {
|
|
14342
|
+
activeCell.handleTap();
|
|
14343
|
+
return;
|
|
14344
|
+
}
|
|
14345
|
+
|
|
14346
|
+
const activeIndex = allCells.indexOf(activeCell);
|
|
14347
|
+
|
|
14348
|
+
if (key === 'ArrowRight' || key === 'ArrowLeft') {
|
|
14349
|
+
const direction = key === 'ArrowRight' ? 1 : -1;
|
|
14350
|
+
const targetIndex = activeIndex + direction;
|
|
14351
|
+
|
|
14352
|
+
if (targetIndex >= 0 && targetIndex < allCells.length) {
|
|
14353
|
+
// Target cell exists in rendered months
|
|
14354
|
+
this.setActiveCell(allCells[targetIndex].day.date);
|
|
14355
|
+
this.scrollToActiveCell();
|
|
14356
|
+
// Dispatch focus event for the cell so live region + range preview update
|
|
14357
|
+
this.handleCellFocused({ detail: { date: allCells[targetIndex].day.date } });
|
|
14358
|
+
} else {
|
|
14359
|
+
// At boundary — need to navigate to next/prev month
|
|
14360
|
+
const navDir = direction === 1 ? 'next' : 'prev';
|
|
14361
|
+
const targetDate = new Date(activeCell.day.date * 1000);
|
|
14362
|
+
targetDate.setDate(targetDate.getDate() + direction);
|
|
14363
|
+
targetDate.setHours(0, 0, 0, 0);
|
|
14364
|
+
const targetTs = Math.floor(targetDate.getTime() / 1000);
|
|
14365
|
+
|
|
14366
|
+
if (this.isDateInRange(targetTs) && ((navDir === 'next' && this.showNextMonthBtn) || (navDir === 'prev' && this.showPrevMonthBtn))) { // eslint-disable-line no-extra-parens
|
|
14367
|
+
|
|
14368
|
+
if (navDir === 'next') {
|
|
14369
|
+
this.handleNextMonth({ skipActiveUpdate: true });
|
|
14370
|
+
} else {
|
|
14371
|
+
this.handlePrevMonth({ skipActiveUpdate: true });
|
|
14372
|
+
}
|
|
14373
|
+
requestAnimationFrame(() => {
|
|
14374
|
+
requestAnimationFrame(() => {
|
|
14375
|
+
const cells = this.getAllFocusableCells();
|
|
14376
|
+
const target = cells.find((cell) => cell.day && cell.day.date === targetTs);
|
|
14377
|
+
if (target) {
|
|
14378
|
+
this.setActiveCell(target.day.date);
|
|
14379
|
+
this.handleCellFocused({ detail: { date: target.day.date } });
|
|
14380
|
+
} else if (cells.length > 0) {
|
|
14381
|
+
const fallback = navDir === 'next' ? cells[cells.length - 1] : cells[0];
|
|
14382
|
+
this.setActiveCell(fallback.day.date);
|
|
14383
|
+
this.handleCellFocused({ detail: { date: fallback.day.date } });
|
|
14384
|
+
}
|
|
14385
|
+
// Re-focus grid wrapper after month change re-render
|
|
14386
|
+
this.focusActiveCell();
|
|
14387
|
+
});
|
|
14388
|
+
});
|
|
14389
|
+
}
|
|
14390
|
+
}
|
|
14391
|
+
} else if (key === 'ArrowDown' || key === 'ArrowUp') {
|
|
14392
|
+
const increment = key === 'ArrowDown' ? 7 : -7;
|
|
14393
|
+
const currentDate = new Date(activeCell.day.date * 1000);
|
|
14394
|
+
currentDate.setDate(currentDate.getDate() + increment);
|
|
14395
|
+
currentDate.setHours(0, 0, 0, 0);
|
|
14396
|
+
const targetDate = Math.floor(currentDate.getTime() / 1000);
|
|
14397
|
+
|
|
14398
|
+
const targetCell = allCells.find((cell) => cell.day && cell.day.date === targetDate);
|
|
14399
|
+
|
|
14400
|
+
if (targetCell) {
|
|
14401
|
+
this.setActiveCell(targetCell.day.date);
|
|
14402
|
+
this.scrollToActiveCell();
|
|
14403
|
+
this.handleCellFocused({ detail: { date: targetCell.day.date } });
|
|
14404
|
+
} else if (this.isDateInRange(targetDate)) {
|
|
14405
|
+
// Target might be in an unrendered month
|
|
14406
|
+
const navDirection = key === 'ArrowDown' ? 'next' : 'prev';
|
|
14407
|
+
if ((navDirection === 'next' && this.showNextMonthBtn) || (navDirection === 'prev' && this.showPrevMonthBtn)) { // eslint-disable-line no-extra-parens
|
|
14408
|
+
if (navDirection === 'next') {
|
|
14409
|
+
this.handleNextMonth({ skipActiveUpdate: true });
|
|
14410
|
+
} else {
|
|
14411
|
+
this.handlePrevMonth({ skipActiveUpdate: true });
|
|
14412
|
+
}
|
|
14413
|
+
requestAnimationFrame(() => {
|
|
14414
|
+
requestAnimationFrame(() => {
|
|
14415
|
+
const cells = this.getAllFocusableCells();
|
|
14416
|
+
const target = cells.find((cell) => cell.day && cell.day.date === targetDate);
|
|
14417
|
+
if (target) {
|
|
14418
|
+
this.setActiveCell(target.day.date);
|
|
14419
|
+
this.handleCellFocused({ detail: { date: target.day.date } });
|
|
14420
|
+
} else if (cells.length > 0) {
|
|
14421
|
+
let nearest = null;
|
|
14422
|
+
|
|
14423
|
+
if (navDirection === 'next') {
|
|
14424
|
+
[nearest] = cells;
|
|
14425
|
+
} else {
|
|
14426
|
+
nearest = cells[cells.length - 1];
|
|
14427
|
+
}
|
|
14428
|
+
this.setActiveCell(nearest.day.date);
|
|
14429
|
+
this.handleCellFocused({ detail: { date: nearest.day.date } });
|
|
14430
|
+
}
|
|
14431
|
+
this.focusActiveCell();
|
|
14432
|
+
});
|
|
14433
|
+
});
|
|
14434
|
+
}
|
|
14435
|
+
}
|
|
14436
|
+
}
|
|
14437
|
+
}
|
|
14438
|
+
|
|
14439
|
+
/**
|
|
14440
|
+
* Handles cross-month boundary navigation events from month components.
|
|
14441
|
+
* @private
|
|
14442
|
+
* @param {CustomEvent} event - The boundary event with direction and source date info.
|
|
14443
|
+
* @returns {void}
|
|
14444
|
+
*/
|
|
14445
|
+
handleMonthBoundary(event) {
|
|
14446
|
+
const { direction, fromDate, key } = event.detail;
|
|
14447
|
+
|
|
14448
|
+
if (key === 'ArrowRight' || key === 'ArrowLeft') {
|
|
14449
|
+
// Linear navigation: find adjacent focusable cell across months
|
|
14450
|
+
const allCells = this.getAllFocusableCells();
|
|
14451
|
+
const currentIndex = allCells.findIndex((cell) => cell.day && cell.day.date === fromDate);
|
|
14452
|
+
|
|
14453
|
+
if (currentIndex === -1) {
|
|
14454
|
+
return;
|
|
14455
|
+
}
|
|
14456
|
+
|
|
14457
|
+
let targetIndex = -1;
|
|
14458
|
+
if (direction === 'next') {
|
|
14459
|
+
targetIndex = currentIndex + 1;
|
|
14460
|
+
}
|
|
14461
|
+
|
|
14462
|
+
if (targetIndex >= 0 && targetIndex < allCells.length) {
|
|
14463
|
+
const targetCell = allCells[targetIndex];
|
|
14464
|
+
this.setActiveCell(targetCell.day.date);
|
|
14465
|
+
this.scrollToActiveCell();
|
|
14466
|
+
this.focusActiveCell();
|
|
14467
|
+
} else if (direction === 'next' && this.showNextMonthBtn) {
|
|
14468
|
+
// Navigate to next month and focus the computed next date.
|
|
14469
|
+
// Using the target date (fromDate + 1 day) instead of cells[0]
|
|
14470
|
+
// avoids jumping backward in range datepickers where cells[0]
|
|
14471
|
+
// belongs to the previous (still-rendered) month.
|
|
14472
|
+
const nextDate = new Date(fromDate * 1000);
|
|
14473
|
+
nextDate.setDate(nextDate.getDate() + 1);
|
|
14474
|
+
nextDate.setHours(0, 0, 0, 0);
|
|
14475
|
+
const nextTs = Math.floor(nextDate.getTime() / 1000);
|
|
14476
|
+
|
|
14477
|
+
if (!this.isDateInRange(nextTs)) {
|
|
14478
|
+
return;
|
|
14479
|
+
}
|
|
14480
|
+
|
|
14481
|
+
this.handleNextMonth({ skipActiveUpdate: true });
|
|
14482
|
+
requestAnimationFrame(() => {
|
|
14483
|
+
requestAnimationFrame(() => {
|
|
14484
|
+
const cells = this.getAllFocusableCells();
|
|
14485
|
+
const target = cells.find((cell) => cell.day && cell.day.date === nextTs);
|
|
14486
|
+
if (target) {
|
|
14487
|
+
this.setActiveCell(target.day.date);
|
|
14488
|
+
this.focusActiveCell();
|
|
14489
|
+
} else if (cells.length > 0) {
|
|
14490
|
+
// Fallback: first cell of the last rendered month
|
|
14491
|
+
this.setActiveCell(cells[cells.length - 1].day.date);
|
|
14492
|
+
this.focusActiveCell();
|
|
14493
|
+
}
|
|
14494
|
+
});
|
|
14495
|
+
});
|
|
14496
|
+
} else if (direction === 'prev' && this.showPrevMonthBtn) {
|
|
14497
|
+
// Navigate to previous month and focus the computed previous date.
|
|
14498
|
+
const prevDate = new Date(fromDate * 1000);
|
|
14499
|
+
prevDate.setDate(prevDate.getDate() - 1);
|
|
14500
|
+
prevDate.setHours(0, 0, 0, 0);
|
|
14501
|
+
const prevTs = Math.floor(prevDate.getTime() / 1000);
|
|
14502
|
+
|
|
14503
|
+
if (!this.isDateInRange(prevTs)) {
|
|
14504
|
+
return;
|
|
14505
|
+
}
|
|
14506
|
+
|
|
14507
|
+
this.handlePrevMonth({ skipActiveUpdate: true });
|
|
14508
|
+
requestAnimationFrame(() => {
|
|
14509
|
+
requestAnimationFrame(() => {
|
|
14510
|
+
const cells = this.getAllFocusableCells();
|
|
14511
|
+
const target = cells.find((cell) => cell.day && cell.day.date === prevTs);
|
|
14512
|
+
if (target) {
|
|
14513
|
+
this.setActiveCell(target.day.date);
|
|
14514
|
+
this.focusActiveCell();
|
|
14515
|
+
} else if (cells.length > 0) {
|
|
14516
|
+
// Fallback: last cell of the first rendered month
|
|
14517
|
+
this.setActiveCell(cells[0].day.date);
|
|
14518
|
+
this.focusActiveCell();
|
|
14519
|
+
}
|
|
14520
|
+
});
|
|
14521
|
+
});
|
|
14522
|
+
}
|
|
14523
|
+
} else if (key === 'ArrowDown' || key === 'ArrowUp') {
|
|
14524
|
+
// Vertical navigation: find same day-of-week +/- 7 days
|
|
14525
|
+
// Use Date arithmetic instead of fixed seconds to handle DST correctly
|
|
14526
|
+
const increment = key === 'ArrowDown' ? 7 : -7;
|
|
14527
|
+
const currentDate = new Date(fromDate * 1000);
|
|
14528
|
+
currentDate.setDate(currentDate.getDate() + increment);
|
|
14529
|
+
currentDate.setHours(0, 0, 0, 0);
|
|
14530
|
+
const targetDate = Math.floor(currentDate.getTime() / 1000);
|
|
14531
|
+
|
|
14532
|
+
const allCells = this.getAllFocusableCells();
|
|
14533
|
+
const targetCell = allCells.find((cell) => cell.day && cell.day.date === targetDate);
|
|
14534
|
+
|
|
14535
|
+
if (targetCell) {
|
|
14536
|
+
this.setActiveCell(targetCell.day.date);
|
|
14537
|
+
this.scrollToActiveCell();
|
|
14538
|
+
this.focusActiveCell();
|
|
14539
|
+
} else if (this.isDateInRange(targetDate)) {
|
|
14540
|
+
// Target might be in an unrendered month, navigate there
|
|
14541
|
+
const navDirection = key === 'ArrowDown' ? 'next' : 'prev';
|
|
14542
|
+
if ((navDirection === 'next' && this.showNextMonthBtn) || (navDirection === 'prev' && this.showPrevMonthBtn)) { // eslint-disable-line no-extra-parens
|
|
14543
|
+
if (navDirection === 'next') {
|
|
14544
|
+
this.handleNextMonth({ skipActiveUpdate: true });
|
|
14545
|
+
} else {
|
|
14546
|
+
this.handlePrevMonth({ skipActiveUpdate: true });
|
|
14547
|
+
}
|
|
14548
|
+
requestAnimationFrame(() => {
|
|
14549
|
+
requestAnimationFrame(() => {
|
|
14550
|
+
const cells = this.getAllFocusableCells();
|
|
14551
|
+
const target = cells.find((cell) => cell.day && cell.day.date === targetDate);
|
|
14552
|
+
if (target) {
|
|
14553
|
+
this.setActiveCell(target.day.date);
|
|
14554
|
+
this.focusActiveCell();
|
|
14555
|
+
} else if (cells.length > 0) {
|
|
14556
|
+
// Clamp to nearest focusable cell
|
|
14557
|
+
const nearest = navDirection === 'next' ? cells[0] : cells[cells.length - 1];
|
|
14558
|
+
this.setActiveCell(nearest.day.date);
|
|
14559
|
+
this.focusActiveCell();
|
|
14560
|
+
}
|
|
14561
|
+
});
|
|
14562
|
+
});
|
|
14563
|
+
}
|
|
14564
|
+
}
|
|
14565
|
+
}
|
|
14566
|
+
}
|
|
14567
|
+
|
|
14568
|
+
/**
|
|
14569
|
+
* Handles cell activation events from month components.
|
|
14570
|
+
* @private
|
|
14571
|
+
* @param {CustomEvent} event - The activation event with target date.
|
|
14572
|
+
* @returns {void}
|
|
14573
|
+
*/
|
|
14574
|
+
handleCellActivate(event) {
|
|
14575
|
+
const { date } = event.detail;
|
|
14576
|
+
this.setActiveCell(date);
|
|
14577
|
+
|
|
14578
|
+
// Don't call focusActiveCell() here. The tap/click already placed
|
|
14579
|
+
// focus on the cell button, and moving it to #calendarGrid would
|
|
14580
|
+
// trigger focusout on the button, closing any open popover on the
|
|
14581
|
+
// cell. Keyboard events are composed and still bubble through
|
|
14582
|
+
// shadow DOM boundaries to the grid's @keydown handler, so
|
|
14583
|
+
// subsequent keyboard navigation continues to work.
|
|
14584
|
+
}
|
|
14585
|
+
|
|
14586
|
+
/**
|
|
14587
|
+
* Handles focus events from calendar cells.
|
|
14588
|
+
* Updates the live region with an SR announcement and triggers
|
|
14589
|
+
* the imperative range preview if applicable.
|
|
14590
|
+
* @private
|
|
14591
|
+
* @param {CustomEvent} event - The calendar-cell-focused event.
|
|
14592
|
+
* @returns {void}
|
|
14593
|
+
*/
|
|
14594
|
+
handleCellFocused(event) {
|
|
14595
|
+
const { date } = event.detail;
|
|
14596
|
+
if (date === null) {
|
|
14597
|
+
return;
|
|
14598
|
+
}
|
|
14599
|
+
|
|
14600
|
+
// With aria-activedescendant, the button no longer receives native focus,
|
|
14601
|
+
// so we use the debounced live region for the full context announcement.
|
|
14602
|
+
const announcement = this.buildFocusAnnouncement(date);
|
|
14603
|
+
this.announceFocusDebounced(announcement);
|
|
14604
|
+
|
|
14605
|
+
// Update the range preview imperatively if in range-preview mode.
|
|
14606
|
+
this.updateRangePreview(date);
|
|
14607
|
+
}
|
|
14608
|
+
|
|
14609
|
+
/**
|
|
14610
|
+
* Builds a full SR announcement string for a focused cell date.
|
|
14611
|
+
* Includes the localized date, range position, popover content,
|
|
14612
|
+
* and blackout status.
|
|
14613
|
+
* @private
|
|
14614
|
+
* @param {Number} date - Unix timestamp (seconds) of the focused cell.
|
|
14615
|
+
* @returns {String} The announcement string.
|
|
14616
|
+
*/
|
|
14617
|
+
buildFocusAnnouncement(date) {
|
|
14618
|
+
let label = this.formatAnnouncementDate(date);
|
|
14619
|
+
|
|
14620
|
+
// Append date slot content (e.g. prices) if present.
|
|
14621
|
+
const dateObj = new Date(date * 1000);
|
|
14622
|
+
const mm = String(dateObj.getMonth() + 1).padStart(2, '0');
|
|
14623
|
+
const dd = String(dateObj.getDate()).padStart(2, '0');
|
|
14624
|
+
const yyyy = dateObj.getFullYear();
|
|
14625
|
+
const dateStr = `${mm}_${dd}_${yyyy}`;
|
|
14626
|
+
const dateSlotEl = this.datepicker?.querySelector(`[slot="date_${dateStr}"]`);
|
|
14627
|
+
if (dateSlotEl) {
|
|
14628
|
+
const text = dateSlotEl.innerText?.trim();
|
|
14629
|
+
if (text) {
|
|
14630
|
+
label += `, ${text}`;
|
|
14631
|
+
}
|
|
14632
|
+
}
|
|
14633
|
+
|
|
14634
|
+
// Append popover content if present.
|
|
14635
|
+
const popoverEl = this.datepicker?.querySelector(`[slot="popover_${dateStr}"]`);
|
|
14636
|
+
if (popoverEl) {
|
|
14637
|
+
const text = popoverEl.innerText?.trim();
|
|
14638
|
+
if (text) {
|
|
14639
|
+
label += `, ${text}`;
|
|
14640
|
+
}
|
|
14641
|
+
}
|
|
14642
|
+
|
|
14643
|
+
// Append range position context.
|
|
14644
|
+
if (this.datepicker?.hasAttribute('range')) {
|
|
14645
|
+
const rangeLabel = this.getRangePositionLabel(date);
|
|
14646
|
+
if (rangeLabel) {
|
|
14647
|
+
label += `, ${rangeLabel}`;
|
|
14648
|
+
}
|
|
14649
|
+
}
|
|
14650
|
+
|
|
14651
|
+
// Append blackout label.
|
|
14652
|
+
if (this.isDateBlackout(date)) {
|
|
14653
|
+
label += `, ${this.datepicker?.blackoutLabel || 'unavailable'}`;
|
|
14654
|
+
}
|
|
14655
|
+
|
|
14656
|
+
return label;
|
|
14657
|
+
}
|
|
14658
|
+
|
|
14659
|
+
/**
|
|
14660
|
+
* Determines the range position label for a given date.
|
|
14661
|
+
* @private
|
|
14662
|
+
* @param {Number} date - Unix timestamp (seconds).
|
|
14663
|
+
* @returns {String|null} The range position label, or null.
|
|
14664
|
+
*/
|
|
14665
|
+
getRangePositionLabel(date) {
|
|
14666
|
+
const parsedFrom = Number.parseInt(this.dateFrom, 10);
|
|
14667
|
+
if (!Number.isFinite(parsedFrom)) {
|
|
14668
|
+
return null;
|
|
14669
|
+
}
|
|
14670
|
+
|
|
14671
|
+
const departTs = startOfDay$2(parsedFrom * 1000) / 1000;
|
|
14672
|
+
const parsedTo = Number.parseInt(this.dateTo, 10);
|
|
14673
|
+
const hasTo = Number.isFinite(parsedTo);
|
|
14674
|
+
const returnTs = hasTo ? startOfDay$2(parsedTo * 1000) / 1000 : null;
|
|
14675
|
+
|
|
14676
|
+
if (date === departTs) {
|
|
14677
|
+
return this.datepicker.rangeLabelStart || 'range start';
|
|
14678
|
+
}
|
|
14679
|
+
if (hasTo && date === returnTs) {
|
|
14680
|
+
return this.datepicker.rangeLabelEnd || 'range end';
|
|
14681
|
+
}
|
|
14682
|
+
if (date < departTs) {
|
|
14683
|
+
return this.datepicker.rangeLabelBeforeRange || 'before range';
|
|
14684
|
+
}
|
|
14685
|
+
if (hasTo && date > departTs && date < returnTs) {
|
|
14686
|
+
return this.datepicker.rangeLabelInRange || 'in range';
|
|
14687
|
+
}
|
|
14688
|
+
return this.datepicker.rangeLabelAfterRange || 'after range';
|
|
14689
|
+
}
|
|
14690
|
+
|
|
14691
|
+
/**
|
|
14692
|
+
* Checks whether a given date is a blackout date.
|
|
14693
|
+
* @private
|
|
14694
|
+
* @param {Number} dateTs - Unix timestamp (seconds).
|
|
14695
|
+
* @returns {Boolean} True if the date is blacked out.
|
|
14696
|
+
*/
|
|
14697
|
+
isDateBlackout(dateTs) {
|
|
14698
|
+
// Check legacy disabledDays.
|
|
14699
|
+
if (Array.isArray(this.disabledDays) && this.disabledDays.length > 0) {
|
|
14700
|
+
if (this.disabledDays.findIndex((day) => parseInt(day, 10) === dateTs) !== -1) {
|
|
14701
|
+
return true;
|
|
14702
|
+
}
|
|
14703
|
+
}
|
|
14704
|
+
|
|
14705
|
+
// Check ISO blackoutDates.
|
|
14706
|
+
const blackoutDates = this.datepicker?.blackoutDates;
|
|
14707
|
+
if (Array.isArray(blackoutDates) && blackoutDates.length > 0) {
|
|
14708
|
+
const date = new Date(dateTs * 1000);
|
|
14709
|
+
const yyyy = date.getFullYear();
|
|
14710
|
+
const mm = String(date.getMonth() + 1).padStart(2, '0');
|
|
14711
|
+
const dd = String(date.getDate()).padStart(2, '0');
|
|
14712
|
+
if (blackoutDates.includes(`${yyyy}-${mm}-${dd}`)) {
|
|
14713
|
+
return true;
|
|
14714
|
+
}
|
|
14715
|
+
}
|
|
14716
|
+
|
|
14717
|
+
return false;
|
|
14718
|
+
}
|
|
14719
|
+
|
|
14720
|
+
/**
|
|
14721
|
+
* Updates the range preview classes imperatively across all cells.
|
|
14722
|
+
* Only active when in range mode with dateFrom set and dateTo not yet set.
|
|
14723
|
+
* @private
|
|
14724
|
+
* @param {Number} hoveredDate - Unix timestamp of the hovered/focused date.
|
|
14725
|
+
* @returns {void}
|
|
14726
|
+
*/
|
|
14727
|
+
updateRangePreview(hoveredDate) {
|
|
14728
|
+
if (this.noRange || !this.dateFrom || this.dateTo) {
|
|
14729
|
+
return;
|
|
14730
|
+
}
|
|
14731
|
+
|
|
14732
|
+
const parsedDateFrom = parseInt(this.dateFrom, 10);
|
|
14733
|
+
const allCells = this.getAllFocusableCells();
|
|
14734
|
+
|
|
14735
|
+
allCells.forEach((cell) => {
|
|
14736
|
+
cell.updateRangePreviewClasses(hoveredDate, parsedDateFrom);
|
|
14737
|
+
});
|
|
14738
|
+
}
|
|
14739
|
+
|
|
14740
|
+
/**
|
|
14741
|
+
* Clears range preview classes from all cells.
|
|
14742
|
+
* @private
|
|
14743
|
+
* @param {Object} [options] - Optional settings.
|
|
14744
|
+
* @param {boolean} [options.force=false] - When true, clears classes even
|
|
14745
|
+
* when both dateFrom and dateTo are set. Used by month nav handlers
|
|
14746
|
+
* since the subsequent re-render re-applies classMap-managed classes,
|
|
14747
|
+
* while `lastHoveredDate` (not in classMap) would otherwise persist.
|
|
14748
|
+
* @returns {void}
|
|
14749
|
+
*/
|
|
14750
|
+
clearRangePreview(options) {
|
|
14751
|
+
const opts = options instanceof Event ? {} : options || {};
|
|
14752
|
+
if (!opts.force && this.dateFrom && this.dateTo) {
|
|
14753
|
+
return;
|
|
14754
|
+
}
|
|
14755
|
+
|
|
14756
|
+
const allCells = this.getAllFocusableCells();
|
|
14757
|
+
allCells.forEach((cell) => {
|
|
14758
|
+
cell.clearRangePreviewClasses();
|
|
14759
|
+
});
|
|
14760
|
+
}
|
|
13348
14761
|
|
|
13349
|
-
|
|
13350
|
-
|
|
13351
|
-
|
|
13352
|
-
|
|
13353
|
-
|
|
13354
|
-
|
|
13355
|
-
|
|
13356
|
-
|
|
14762
|
+
/**
|
|
14763
|
+
* Overrides the base class handler to prevent setting `this.hoveredDate`
|
|
14764
|
+
* as a reactive property. Instead, handles the range preview imperatively.
|
|
14765
|
+
* @private
|
|
14766
|
+
* @param {CustomEvent} event - The hovered-date-changed event from a month.
|
|
14767
|
+
* @returns {void}
|
|
14768
|
+
*/
|
|
14769
|
+
hoveredDateChanged(event) {
|
|
14770
|
+
const hoveredDate = event.detail.value;
|
|
14771
|
+
this.updateRangePreview(hoveredDate);
|
|
14772
|
+
}
|
|
13357
14773
|
|
|
13358
|
-
|
|
13359
|
-
|
|
13360
|
-
|
|
14774
|
+
/**
|
|
14775
|
+
* Scrolls the calendar to ensure the month containing the active cell is visible.
|
|
14776
|
+
* @private
|
|
14777
|
+
* @returns {void}
|
|
14778
|
+
*/
|
|
14779
|
+
scrollToActiveCell() {
|
|
14780
|
+
if (this.activeCellDate === null || this.activeCellDate === undefined) {
|
|
14781
|
+
return;
|
|
14782
|
+
}
|
|
13361
14783
|
|
|
13362
|
-
|
|
14784
|
+
const date = new Date(this.activeCellDate * 1000);
|
|
14785
|
+
const month = date.getMonth() + 1;
|
|
14786
|
+
const year = date.getFullYear();
|
|
14787
|
+
const selector = `#month-${month}-${year}`;
|
|
14788
|
+
const monthElem = this.shadowRoot.querySelector(selector);
|
|
13363
14789
|
|
|
13364
|
-
|
|
13365
|
-
|
|
14790
|
+
if (monthElem) {
|
|
14791
|
+
const prefersReducedMotion = window.matchMedia('(prefers-reduced-motion: reduce)').matches;
|
|
14792
|
+
monthElem.scrollIntoView({ block: 'nearest',
|
|
14793
|
+
behavior: prefersReducedMotion ? 'instant' : 'smooth' });
|
|
14794
|
+
}
|
|
14795
|
+
}
|
|
13366
14796
|
|
|
13367
|
-
|
|
14797
|
+
/**
|
|
14798
|
+
* Returns (and lazily creates) an aria-live region inside the dropdown's
|
|
14799
|
+
* <dialog> element. This placement is critical for two reasons:
|
|
14800
|
+
*
|
|
14801
|
+
* 1. Inside the dialog's accessible scope — dialog.showModal() makes
|
|
14802
|
+
* everything outside the top-layer dialog inert, and desktop modal
|
|
14803
|
+
* mode uses _setPageInert() on document.body siblings. A live region
|
|
14804
|
+
* on document.body would be invisible to screen readers in both cases.
|
|
14805
|
+
*
|
|
14806
|
+
* 2. Not nested in shadow DOM — Chrome inconsistently observes aria-live
|
|
14807
|
+
* mutations inside shadow DOM across machines and versions. The dialog
|
|
14808
|
+
* element is only one shadow root deep (the dropdown bib's shadow DOM),
|
|
14809
|
+
* which Chrome handles reliably. The calendar's own shadow DOM (nested
|
|
14810
|
+
* inside the bib via slotting) is two+ levels deep and unreliable.
|
|
14811
|
+
*
|
|
14812
|
+
* @private
|
|
14813
|
+
* @returns {HTMLElement} The live region element.
|
|
14814
|
+
*/
|
|
14815
|
+
getOrCreateLiveRegion() {
|
|
14816
|
+
if (this._liveRegion && this._liveRegion.isConnected) {
|
|
14817
|
+
return this._liveRegion;
|
|
14818
|
+
}
|
|
13368
14819
|
|
|
13369
|
-
|
|
14820
|
+
// Access the dialog element inside the dropdown bib's shadow DOM.
|
|
14821
|
+
const dialog = this.dropdown?.bibContent?.shadowRoot?.querySelector('dialog');
|
|
14822
|
+
if (!dialog) {
|
|
14823
|
+
return null;
|
|
14824
|
+
}
|
|
13370
14825
|
|
|
13371
|
-
|
|
13372
|
-
|
|
14826
|
+
// Check if we already created one for this calendar instance.
|
|
14827
|
+
const regionId = `auro-calendar-live-${this._calendarInstanceId}`;
|
|
14828
|
+
const existing = dialog.querySelector(`#${regionId}`);
|
|
14829
|
+
if (existing) {
|
|
14830
|
+
this._liveRegion = existing;
|
|
14831
|
+
return existing;
|
|
14832
|
+
}
|
|
13373
14833
|
|
|
13374
|
-
|
|
13375
|
-
|
|
14834
|
+
const el = document.createElement('div');
|
|
14835
|
+
el.id = regionId;
|
|
14836
|
+
el.setAttribute('aria-live', 'assertive');
|
|
14837
|
+
el.setAttribute('aria-atomic', 'true');
|
|
14838
|
+
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;';
|
|
14839
|
+
dialog.appendChild(el);
|
|
13376
14840
|
|
|
13377
|
-
|
|
13378
|
-
|
|
13379
|
-
|
|
13380
|
-
} else {
|
|
13381
|
-
newMonth = oldMonth + 1;
|
|
13382
|
-
newYear = oldYear;
|
|
13383
|
-
}
|
|
14841
|
+
this._liveRegion = el;
|
|
14842
|
+
return el;
|
|
14843
|
+
}
|
|
13384
14844
|
|
|
13385
|
-
|
|
13386
|
-
|
|
14845
|
+
/**
|
|
14846
|
+
* Removes the live region when this calendar is disconnected.
|
|
14847
|
+
* @private
|
|
14848
|
+
* @returns {void}
|
|
14849
|
+
*/
|
|
14850
|
+
disconnectedCallback() {
|
|
14851
|
+
super.disconnectedCallback();
|
|
13387
14852
|
|
|
13388
|
-
|
|
13389
|
-
|
|
14853
|
+
// Cancel any pending announcements so they don't fire after teardown.
|
|
14854
|
+
if (this._announceRafId) {
|
|
14855
|
+
cancelAnimationFrame(this._announceRafId);
|
|
14856
|
+
this._announceRafId = null;
|
|
14857
|
+
}
|
|
14858
|
+
if (this._focusAnnounceTimer) {
|
|
14859
|
+
clearTimeout(this._focusAnnounceTimer);
|
|
14860
|
+
this._focusAnnounceTimer = null;
|
|
13390
14861
|
}
|
|
13391
14862
|
|
|
13392
|
-
|
|
14863
|
+
if (this._liveRegion && this._liveRegion.isConnected) {
|
|
14864
|
+
this._liveRegion.remove();
|
|
14865
|
+
}
|
|
14866
|
+
this._liveRegion = null;
|
|
13393
14867
|
}
|
|
13394
14868
|
|
|
13395
14869
|
/**
|
|
13396
|
-
*
|
|
13397
|
-
*
|
|
14870
|
+
* Announces a date selection or focus change via the live region.
|
|
14871
|
+
* Uses requestAnimationFrame to ensure the clear and set happen in
|
|
14872
|
+
* separate rendering frames — Chrome may coalesce synchronous or
|
|
14873
|
+
* microtask-deferred mutations into a single accessibility tree update.
|
|
14874
|
+
* @private
|
|
14875
|
+
* @param {String} dateStr - The localized date string to announce.
|
|
13398
14876
|
* @returns {void}
|
|
13399
14877
|
*/
|
|
13400
|
-
|
|
13401
|
-
|
|
13402
|
-
|
|
13403
|
-
|
|
14878
|
+
announceSelection(dateStr) {
|
|
14879
|
+
// Cancel any previously queued rAF announcement so a rapid
|
|
14880
|
+
// sequence of calls (e.g. bib open → month nav) only announces
|
|
14881
|
+
// the last one.
|
|
14882
|
+
if (this._announceRafId) {
|
|
14883
|
+
cancelAnimationFrame(this._announceRafId);
|
|
14884
|
+
}
|
|
14885
|
+
const liveRegion = this.getOrCreateLiveRegion();
|
|
14886
|
+
if (!liveRegion) {
|
|
14887
|
+
return;
|
|
13404
14888
|
}
|
|
14889
|
+
|
|
14890
|
+
// Double-rAF: clear in frame N, set in frame N+1. Chrome batches
|
|
14891
|
+
// accessibility tree mutations within a single animation frame, so
|
|
14892
|
+
// a same-frame clear+set can be coalesced into a no-op if the new
|
|
14893
|
+
// value matches a recently announced string. Splitting across two
|
|
14894
|
+
// frames guarantees Chrome sees two distinct tree states and fires
|
|
14895
|
+
// a new accessibility event for the content change.
|
|
14896
|
+
liveRegion.textContent = '';
|
|
14897
|
+
this._announceRafId = requestAnimationFrame(() => {
|
|
14898
|
+
this._announceRafId = requestAnimationFrame(() => {
|
|
14899
|
+
liveRegion.textContent = dateStr;
|
|
14900
|
+
this._announceRafId = null;
|
|
14901
|
+
});
|
|
14902
|
+
});
|
|
13405
14903
|
}
|
|
13406
14904
|
|
|
13407
14905
|
/**
|
|
13408
|
-
*
|
|
13409
|
-
*
|
|
14906
|
+
* Debounced version of announceSelection for focus navigation.
|
|
14907
|
+
* Uses the assertive live region with a 150ms debounce so only the
|
|
14908
|
+
* final cell after rapid arrow-key traversal is announced. We
|
|
14909
|
+
* originally tried aria-live="polite" here, but VoiceOver treats
|
|
14910
|
+
* polite as "wait until idle" — which never happens during active
|
|
14911
|
+
* keyboard navigation — so the announcements were silently dropped.
|
|
14912
|
+
* @private
|
|
14913
|
+
* @param {String} dateStr - The localized date string to announce.
|
|
13410
14914
|
* @returns {void}
|
|
13411
14915
|
*/
|
|
13412
|
-
|
|
13413
|
-
|
|
14916
|
+
announceFocusDebounced(dateStr) {
|
|
14917
|
+
if (this._focusAnnounceTimer) {
|
|
14918
|
+
clearTimeout(this._focusAnnounceTimer);
|
|
14919
|
+
}
|
|
14920
|
+
this._focusAnnounceTimer = setTimeout(() => {
|
|
14921
|
+
this.announceSelection(dateStr);
|
|
14922
|
+
this._focusAnnounceTimer = null;
|
|
14923
|
+
}, 150);
|
|
14924
|
+
}
|
|
14925
|
+
|
|
14926
|
+
/**
|
|
14927
|
+
* Formats a Unix timestamp (seconds) as a localized date string for SR announcements.
|
|
14928
|
+
* @private
|
|
14929
|
+
* @param {String|Number} timestamp - Unix timestamp in seconds.
|
|
14930
|
+
* @returns {String} Localized date string.
|
|
14931
|
+
*/
|
|
14932
|
+
formatAnnouncementDate(timestamp) {
|
|
14933
|
+
const date = new Date(parseInt(timestamp, 10) * 1000);
|
|
14934
|
+
const localeCode = this.locale?.code || undefined;
|
|
14935
|
+
const formatter = new Intl.DateTimeFormat(localeCode, {
|
|
14936
|
+
weekday: 'long',
|
|
14937
|
+
year: 'numeric',
|
|
14938
|
+
month: 'long',
|
|
14939
|
+
day: 'numeric'
|
|
14940
|
+
});
|
|
14941
|
+
return formatter.format(date);
|
|
13414
14942
|
}
|
|
13415
14943
|
|
|
13416
14944
|
firstUpdated() {
|
|
14945
|
+
|
|
13417
14946
|
this.addEventListener('date-from-changed', () => {
|
|
13418
14947
|
this.dispatchEvent(new CustomEvent('auroCalendar-dateSelected', {
|
|
13419
14948
|
bubbles: true,
|
|
@@ -13432,6 +14961,21 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
13432
14961
|
composed: true,
|
|
13433
14962
|
}));
|
|
13434
14963
|
});
|
|
14964
|
+
|
|
14965
|
+
// Listen for cross-month boundary navigation events
|
|
14966
|
+
this.addEventListener('calendar-month-boundary', (event) => {
|
|
14967
|
+
this.handleMonthBoundary(event);
|
|
14968
|
+
});
|
|
14969
|
+
|
|
14970
|
+
// Listen for cell activation events
|
|
14971
|
+
this.addEventListener('calendar-cell-activate', (event) => {
|
|
14972
|
+
this.handleCellActivate(event);
|
|
14973
|
+
});
|
|
14974
|
+
|
|
14975
|
+
// Listen for cell focus events (SR announcements + range preview)
|
|
14976
|
+
this.addEventListener('calendar-cell-focused', (event) => {
|
|
14977
|
+
this.handleCellFocused(event);
|
|
14978
|
+
});
|
|
13435
14979
|
}
|
|
13436
14980
|
|
|
13437
14981
|
injectSlot(slotName, nodes) {
|
|
@@ -13456,7 +15000,37 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
13456
15000
|
}
|
|
13457
15001
|
|
|
13458
15002
|
if (changedProperties.has('visible')) {
|
|
13459
|
-
|
|
15003
|
+
if (this.visible) {
|
|
15004
|
+
// Compute the active date eagerly from data — no DOM needed.
|
|
15005
|
+
if (this.activeCellDate == null) { // eslint-disable-line no-eq-null, eqeqeq
|
|
15006
|
+
this.activeCellDate = this.computeActiveDate();
|
|
15007
|
+
}
|
|
15008
|
+
|
|
15009
|
+
this.requestUpdate();
|
|
15010
|
+
} else {
|
|
15011
|
+
this.requestUpdate();
|
|
15012
|
+
}
|
|
15013
|
+
}
|
|
15014
|
+
|
|
15015
|
+
// Announce date selection to screen readers when user clicks/selects a cell
|
|
15016
|
+
const isCellClick = this.datepicker?.wasCellClick || this.datepicker?.cellClickActive;
|
|
15017
|
+
|
|
15018
|
+
if (changedProperties.has('dateFrom') && this.dateFrom && isCellClick) {
|
|
15019
|
+
const dateStr = this.formatAnnouncementDate(this.dateFrom);
|
|
15020
|
+
const isRange = !this.noRange;
|
|
15021
|
+
|
|
15022
|
+
if (isRange) {
|
|
15023
|
+
const rangeLabel = this.datepicker.rangeLabelStart || 'range start';
|
|
15024
|
+
this.announceSelection(`${dateStr}, selected as ${rangeLabel}`);
|
|
15025
|
+
} else {
|
|
15026
|
+
this.announceSelection(`${dateStr}, selected`);
|
|
15027
|
+
}
|
|
15028
|
+
}
|
|
15029
|
+
|
|
15030
|
+
if (changedProperties.has('dateTo') && this.dateTo && isCellClick) {
|
|
15031
|
+
const dateStr = this.formatAnnouncementDate(this.dateTo);
|
|
15032
|
+
const rangeLabel = this.datepicker.rangeLabelEnd || 'range end';
|
|
15033
|
+
this.announceSelection(`${dateStr}, selected as ${rangeLabel}`);
|
|
13460
15034
|
}
|
|
13461
15035
|
}
|
|
13462
15036
|
|
|
@@ -13465,6 +15039,7 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
13465
15039
|
<${this.bibtemplateTag}
|
|
13466
15040
|
?large="${this.largeFullscreenHeadline}"
|
|
13467
15041
|
?isFullscreen="${this.isFullscreen}"
|
|
15042
|
+
?showFooter="${!this.isFullscreen && this.dropdown?.desktopModal}"
|
|
13468
15043
|
@close-click="${this.utilCal.requestDismiss}">
|
|
13469
15044
|
<span slot="ariaLabel.close">${this.slots["ariaLabel.bib.close"]}</span>
|
|
13470
15045
|
|
|
@@ -13482,24 +15057,26 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
13482
15057
|
</div>
|
|
13483
15058
|
</div>
|
|
13484
15059
|
|
|
13485
|
-
<div class="calendarWrapper">
|
|
13486
|
-
<div class="calendars">
|
|
13487
|
-
${this.renderAllCalendars()}
|
|
13488
|
-
</div>
|
|
15060
|
+
<div class="calendarWrapper ${!this.isFullscreen && this.dropdown?.desktopModal ? 'hasFooter' : ''}">
|
|
13489
15061
|
<div class="calendarNavButtons">
|
|
13490
15062
|
${this.showPrevMonthBtn ? u$a`
|
|
13491
|
-
<button tabIndex="
|
|
15063
|
+
<button tabIndex="0" class="calendarNavBtn prevMonth" aria-label="${this.datepicker?.navLabelPrevMonth || 'Previous month'}" @click="${this.handlePrevMonth}">
|
|
13492
15064
|
${this.util.generateIconHtml(chevronLeft)}
|
|
13493
15065
|
</button>
|
|
13494
15066
|
` : undefined}
|
|
13495
15067
|
${this.showNextMonthBtn ? u$a`
|
|
13496
|
-
<button tabIndex="
|
|
15068
|
+
<button tabIndex="0" class="calendarNavBtn nextMonth" aria-label="${this.datepicker?.navLabelNextMonth || 'Next month'}" @click="${this.handleNextMonth}">
|
|
13497
15069
|
${this.util.generateIconHtml(chevronRight)}
|
|
13498
15070
|
</button>
|
|
13499
15071
|
` : undefined}
|
|
13500
15072
|
</div>
|
|
15073
|
+
<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}">
|
|
15074
|
+
${this.renderAllCalendars()}
|
|
15075
|
+
</div>
|
|
13501
15076
|
</div>
|
|
13502
15077
|
|
|
15078
|
+
<div id="calendar-live-region" aria-live="assertive" aria-atomic="true" class="sr-only"></div>
|
|
15079
|
+
|
|
13503
15080
|
<${this.buttonTag} slot="footer" fluid @click="${this.utilCal.requestDismiss}">Done</${this.buttonTag}>
|
|
13504
15081
|
</${this.bibtemplateTag}>
|
|
13505
15082
|
`;
|
|
@@ -16771,7 +18348,7 @@ function applyKeyboardStrategy$1(component, strategy, options = {}) {
|
|
|
16771
18348
|
});
|
|
16772
18349
|
}
|
|
16773
18350
|
|
|
16774
|
-
var styleCss$2$1 = i$3`: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}`;
|
|
18351
|
+
var styleCss$2$1 = i$3`: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}`;
|
|
16775
18352
|
|
|
16776
18353
|
var colorCss$2 = i$3`.container{background-color:var(--ds-auro-dropdownbib-container-color);box-shadow:var(--ds-auro-dropdownbib-boxshadow-color);color:var(--ds-auro-dropdownbib-text-color)}`;
|
|
16777
18354
|
|
|
@@ -17402,7 +18979,7 @@ let AuroHelpText$2 = class AuroHelpText extends i$1 {
|
|
|
17402
18979
|
}
|
|
17403
18980
|
};
|
|
17404
18981
|
|
|
17405
|
-
var formkitVersion$1 = '
|
|
18982
|
+
var formkitVersion$1 = '202606081833';
|
|
17406
18983
|
|
|
17407
18984
|
let AuroElement$2 = class AuroElement extends i$1 {
|
|
17408
18985
|
static get properties() {
|
|
@@ -17582,6 +19159,7 @@ class AuroDropdown extends AuroElement$2 {
|
|
|
17582
19159
|
_intializeDefaults() {
|
|
17583
19160
|
this.appearance = 'default';
|
|
17584
19161
|
this.chevron = false;
|
|
19162
|
+
this.desktopModal = false;
|
|
17585
19163
|
this.disabled = false;
|
|
17586
19164
|
this.disableKeyboardHandling = false;
|
|
17587
19165
|
this.error = false;
|
|
@@ -17762,6 +19340,14 @@ class AuroDropdown extends AuroElement$2 {
|
|
|
17762
19340
|
reflect: true
|
|
17763
19341
|
},
|
|
17764
19342
|
|
|
19343
|
+
/**
|
|
19344
|
+
* If declared, the dropdown will behave as a modal dialog when in a desktop viewport size.
|
|
19345
|
+
*/
|
|
19346
|
+
desktopModal: {
|
|
19347
|
+
type: Boolean,
|
|
19348
|
+
reflect: true
|
|
19349
|
+
},
|
|
19350
|
+
|
|
17765
19351
|
/**
|
|
17766
19352
|
* If declared, the dropdown will only show by calling the API .show() public method.
|
|
17767
19353
|
*/
|
|
@@ -18049,6 +19635,15 @@ class AuroDropdown extends AuroElement$2 {
|
|
|
18049
19635
|
|
|
18050
19636
|
disconnectedCallback() {
|
|
18051
19637
|
super.disconnectedCallback();
|
|
19638
|
+
this._clearPageInert();
|
|
19639
|
+
if (this._bibTabHandler) {
|
|
19640
|
+
this.removeEventListener('keydown', this._bibTabHandler);
|
|
19641
|
+
this._bibTabHandler = undefined;
|
|
19642
|
+
}
|
|
19643
|
+
if (this.focusTrap) {
|
|
19644
|
+
this.focusTrap.disconnect();
|
|
19645
|
+
this.focusTrap = undefined;
|
|
19646
|
+
}
|
|
18052
19647
|
if (this.floater) {
|
|
18053
19648
|
this.floater.hideBib('disconnect');
|
|
18054
19649
|
this.floater.disconnect();
|
|
@@ -18076,19 +19671,45 @@ class AuroDropdown extends AuroElement$2 {
|
|
|
18076
19671
|
if (this.isPopoverVisible) {
|
|
18077
19672
|
// Fullscreen: use showModal() for native accessibility (inert outside, focus trap)
|
|
18078
19673
|
// Desktop: use show() for Floating UI positioning + FocusTrap for focus management
|
|
18079
|
-
|
|
18080
|
-
this.
|
|
19674
|
+
this.bibElement.value.open(this.isBibFullscreen);
|
|
19675
|
+
this.updateFocusTrap();
|
|
19676
|
+
|
|
19677
|
+
// Desktop modal: make siblings inert so content outside is not interactive
|
|
19678
|
+
if (this.desktopModal && !this.isBibFullscreen) {
|
|
19679
|
+
this._setPageInert();
|
|
19680
|
+
}
|
|
18081
19681
|
} else {
|
|
18082
19682
|
this.bibElement.value.close();
|
|
19683
|
+
this._clearPageInert();
|
|
18083
19684
|
}
|
|
18084
19685
|
}
|
|
18085
19686
|
|
|
18086
19687
|
// When fullscreen strategy changes while open, re-open dialog with correct mode
|
|
18087
19688
|
// (e.g. resizing from desktop → mobile while dropdown is open)
|
|
18088
19689
|
if (changedProperties.has('isBibFullscreen') && this.isPopoverVisible && this.bibElement.value) {
|
|
18089
|
-
const useModal = this.isBibFullscreen;
|
|
18090
19690
|
this.bibElement.value.close();
|
|
18091
|
-
this.bibElement.value.open(
|
|
19691
|
+
this.bibElement.value.open(this.isBibFullscreen);
|
|
19692
|
+
|
|
19693
|
+
// Re-initialize focus management for the new strategy
|
|
19694
|
+
this.updateFocusTrap();
|
|
19695
|
+
|
|
19696
|
+
// Toggle inert: desktop modal needs it, fullscreen showModal() handles it natively
|
|
19697
|
+
if (this.desktopModal && !this.isBibFullscreen) {
|
|
19698
|
+
this._setPageInert();
|
|
19699
|
+
} else {
|
|
19700
|
+
this._clearPageInert();
|
|
19701
|
+
}
|
|
19702
|
+
}
|
|
19703
|
+
|
|
19704
|
+
// Handle desktopModal toggled while the dropdown is already open.
|
|
19705
|
+
// Re-initialize focus trapping and page inert state to match the new mode.
|
|
19706
|
+
if (changedProperties.has('desktopModal') && this.isPopoverVisible && !this.isBibFullscreen) {
|
|
19707
|
+
this.updateFocusTrap();
|
|
19708
|
+
if (this.desktopModal) {
|
|
19709
|
+
this._setPageInert();
|
|
19710
|
+
} else {
|
|
19711
|
+
this._clearPageInert();
|
|
19712
|
+
}
|
|
18092
19713
|
}
|
|
18093
19714
|
}
|
|
18094
19715
|
|
|
@@ -18098,8 +19719,14 @@ class AuroDropdown extends AuroElement$2 {
|
|
|
18098
19719
|
* @param {CustomEvent} event - The custom event that contains the dropdown toggle information.
|
|
18099
19720
|
*/
|
|
18100
19721
|
handleDropdownToggle(event) {
|
|
18101
|
-
this.updateFocusTrap();
|
|
18102
19722
|
this.isPopoverVisible = event.detail.expanded;
|
|
19723
|
+
|
|
19724
|
+
// Tear down FocusTrap when closing. Creation happens in updated()
|
|
19725
|
+
// after the dialog is open so getFocusableElements can find content.
|
|
19726
|
+
if (!this.isPopoverVisible) {
|
|
19727
|
+
this.updateFocusTrap();
|
|
19728
|
+
}
|
|
19729
|
+
|
|
18103
19730
|
const eventType = event.detail.eventType || "unknown";
|
|
18104
19731
|
if (!this.isPopoverVisible && this.hasFocus && eventType === "keydown") {
|
|
18105
19732
|
this.trigger.focus();
|
|
@@ -18198,19 +19825,194 @@ class AuroDropdown extends AuroElement$2 {
|
|
|
18198
19825
|
* @private
|
|
18199
19826
|
*/
|
|
18200
19827
|
updateFocusTrap() {
|
|
19828
|
+
// Always clean up existing handlers/traps before setting up new ones
|
|
19829
|
+
// to prevent duplicate listeners on repeated calls.
|
|
19830
|
+
if (this._bibTabHandler) {
|
|
19831
|
+
this.removeEventListener('keydown', this._bibTabHandler);
|
|
19832
|
+
this._bibTabHandler = undefined;
|
|
19833
|
+
}
|
|
19834
|
+
|
|
19835
|
+
if (this.focusTrap) {
|
|
19836
|
+
this.focusTrap.disconnect();
|
|
19837
|
+
this.focusTrap = undefined;
|
|
19838
|
+
}
|
|
19839
|
+
|
|
18201
19840
|
if (this.isPopoverVisible) {
|
|
18202
19841
|
if (!this.isBibFullscreen) {
|
|
18203
|
-
|
|
18204
|
-
|
|
18205
|
-
|
|
19842
|
+
if (this.desktopModal) {
|
|
19843
|
+
// Desktop modal: trap focus only within the bib content.
|
|
19844
|
+
// Can't use FocusTrap on the bib element because keydown events
|
|
19845
|
+
// from slotted content bubble through the dropdown host (light DOM),
|
|
19846
|
+
// not through the bib (shadow projection target). Using FocusTrap
|
|
19847
|
+
// on the dropdown would include the trigger in the tab cycle.
|
|
19848
|
+
// Instead, listen for Tab on the dropdown and manually wrap focus
|
|
19849
|
+
// within the bib's focusable elements.
|
|
19850
|
+
this._bibTabHandler = (event) => {
|
|
19851
|
+
if (event.key !== 'Tab') {
|
|
19852
|
+
return;
|
|
19853
|
+
}
|
|
19854
|
+
|
|
19855
|
+
// Collect focusable elements from the bib content.
|
|
19856
|
+
const focusables = getFocusableElements(this.bibContent);
|
|
19857
|
+
|
|
19858
|
+
// Fallback: try from slotted content directly
|
|
19859
|
+
if (!focusables.length) {
|
|
19860
|
+
const slot = this.shadowRoot.querySelector('.slotContent slot');
|
|
19861
|
+
const assignedNodes = slot ? slot.assignedNodes({ flatten: true }) : [];
|
|
19862
|
+
|
|
19863
|
+
for (const node of assignedNodes) {
|
|
19864
|
+
if (node.nodeType === Node.ELEMENT_NODE) {
|
|
19865
|
+
focusables.push(...getFocusableElements(node));
|
|
19866
|
+
}
|
|
19867
|
+
}
|
|
19868
|
+
}
|
|
19869
|
+
|
|
19870
|
+
if (!focusables.length) {
|
|
19871
|
+
return;
|
|
19872
|
+
}
|
|
19873
|
+
|
|
19874
|
+
event.preventDefault();
|
|
19875
|
+
|
|
19876
|
+
const direction = event.shiftKey ? -1 : 1; // eslint-disable-line no-magic-numbers
|
|
19877
|
+
|
|
19878
|
+
// Walk the active element chain through shadow roots
|
|
19879
|
+
const actives = this._getActiveElements();
|
|
19880
|
+
|
|
19881
|
+
let idx = focusables.findIndex((el) => actives.includes(el));
|
|
19882
|
+
|
|
19883
|
+
if (idx === -1) { // eslint-disable-line no-magic-numbers
|
|
19884
|
+
// Focus is not on a known element — move to first/last
|
|
19885
|
+
idx = direction === 1 ? -1 : focusables.length; // eslint-disable-line no-magic-numbers
|
|
19886
|
+
}
|
|
19887
|
+
|
|
19888
|
+
// Try each element in order, skipping any that can't receive focus
|
|
19889
|
+
// (e.g. hidden elements, elements in collapsed sections)
|
|
19890
|
+
for (let index = 0; index < focusables.length; index++) { // eslint-disable-line no-plusplus
|
|
19891
|
+
let nextIdx = idx + direction;
|
|
19892
|
+
|
|
19893
|
+
// Wrap around
|
|
19894
|
+
if (nextIdx < 0) {
|
|
19895
|
+
nextIdx = focusables.length - 1;
|
|
19896
|
+
} else if (nextIdx >= focusables.length) {
|
|
19897
|
+
nextIdx = 0;
|
|
19898
|
+
}
|
|
19899
|
+
|
|
19900
|
+
focusables[nextIdx].focus();
|
|
19901
|
+
|
|
19902
|
+
// Verify focus actually moved to the target
|
|
19903
|
+
const newActives = this._getActiveElements();
|
|
19904
|
+
|
|
19905
|
+
if (newActives.includes(focusables[nextIdx])) {
|
|
19906
|
+
return;
|
|
19907
|
+
}
|
|
19908
|
+
|
|
19909
|
+
// Focus didn't stick — skip this element and try the next
|
|
19910
|
+
idx = nextIdx;
|
|
19911
|
+
}
|
|
19912
|
+
};
|
|
19913
|
+
this.addEventListener('keydown', this._bibTabHandler);
|
|
19914
|
+
|
|
19915
|
+
// Move initial focus into the bib content, matching FocusTrap behavior
|
|
19916
|
+
requestAnimationFrame(() => {
|
|
19917
|
+
const focusables = getFocusableElements(this.bibContent);
|
|
19918
|
+
if (focusables.length) {
|
|
19919
|
+
focusables[0].focus();
|
|
19920
|
+
}
|
|
19921
|
+
});
|
|
19922
|
+
} else {
|
|
19923
|
+
// Normal desktop: use FocusTrap on the bib element
|
|
19924
|
+
this.focusTrap = new FocusTrap(this.bibContent);
|
|
19925
|
+
this.focusTrap.focusFirstElement();
|
|
19926
|
+
}
|
|
18206
19927
|
}
|
|
18207
19928
|
// Fullscreen: showModal() provides native focus trapping
|
|
19929
|
+
}
|
|
19930
|
+
}
|
|
19931
|
+
|
|
19932
|
+
/**
|
|
19933
|
+
* Returns the chain of active (focused) elements through shadow roots.
|
|
19934
|
+
* @private
|
|
19935
|
+
* @returns {Array<HTMLElement>}
|
|
19936
|
+
*/
|
|
19937
|
+
_getActiveElements() {
|
|
19938
|
+
let { activeElement } = document;
|
|
19939
|
+
const actives = [activeElement];
|
|
19940
|
+
|
|
19941
|
+
while (activeElement?.shadowRoot?.activeElement) {
|
|
19942
|
+
activeElement = activeElement.shadowRoot.activeElement;
|
|
19943
|
+
actives.push(activeElement);
|
|
19944
|
+
}
|
|
19945
|
+
|
|
19946
|
+
return actives;
|
|
19947
|
+
}
|
|
19948
|
+
|
|
19949
|
+
/**
|
|
19950
|
+
* Sets `inert` on sibling elements of the dropdown's top-level host
|
|
19951
|
+
* so that content outside the dropdown is not interactive while the modal is open.
|
|
19952
|
+
* Walks up through shadow DOM boundaries to find the outermost host element
|
|
19953
|
+
* in the light DOM, then sets `inert` on siblings at each ancestor level
|
|
19954
|
+
* to ensure all page content outside the host subtree is inert.
|
|
19955
|
+
* @private
|
|
19956
|
+
*/
|
|
19957
|
+
_setPageInert() {
|
|
19958
|
+
if (this._inertSiblings) {
|
|
18208
19959
|
return;
|
|
18209
19960
|
}
|
|
18210
19961
|
|
|
18211
|
-
|
|
18212
|
-
|
|
18213
|
-
|
|
19962
|
+
this._inertSiblings = [];
|
|
19963
|
+
|
|
19964
|
+
// Walk up through shadow DOM boundaries to find the topmost host
|
|
19965
|
+
// element in the light DOM. For example, if this dropdown is inside
|
|
19966
|
+
// auro-datepicker's shadow DOM, we walk up to the datepicker element
|
|
19967
|
+
// so we set inert on its siblings — not on the datepicker itself.
|
|
19968
|
+
let host = this;
|
|
19969
|
+
while (host.getRootNode() instanceof ShadowRoot) {
|
|
19970
|
+
host = host.getRootNode().host;
|
|
19971
|
+
}
|
|
19972
|
+
|
|
19973
|
+
// Walk up the ancestor chain, inerting siblings at each level
|
|
19974
|
+
// to ensure the entire page outside the host subtree is inert.
|
|
19975
|
+
// Uses a reference counter (data-auro-inert-count) so multiple
|
|
19976
|
+
// simultaneous modal dropdowns share inert state safely.
|
|
19977
|
+
let current = host;
|
|
19978
|
+
while (current.parentElement) {
|
|
19979
|
+
const parent = current.parentElement;
|
|
19980
|
+
for (const sibling of parent.children) {
|
|
19981
|
+
if (sibling !== current) {
|
|
19982
|
+
const count = parseInt(sibling.dataset.auroInertCount || '0', 10);
|
|
19983
|
+
if (count === 0) {
|
|
19984
|
+
sibling.dataset.auroInertWas = sibling.inert ? 'true' : 'false';
|
|
19985
|
+
}
|
|
19986
|
+
sibling.dataset.auroInertCount = String(count + 1);
|
|
19987
|
+
sibling.inert = true;
|
|
19988
|
+
this._inertSiblings.push(sibling);
|
|
19989
|
+
}
|
|
19990
|
+
}
|
|
19991
|
+
current = parent;
|
|
19992
|
+
}
|
|
19993
|
+
}
|
|
19994
|
+
|
|
19995
|
+
/**
|
|
19996
|
+
* Restores `inert` state on siblings that were tracked by `_setPageInert`.
|
|
19997
|
+
* Uses reference counting so inert is only cleared when the last modal
|
|
19998
|
+
* dropdown releases a given element. Preserves the original inert state
|
|
19999
|
+
* so externally-inerted elements are not inadvertently re-enabled.
|
|
20000
|
+
* @private
|
|
20001
|
+
*/
|
|
20002
|
+
_clearPageInert() {
|
|
20003
|
+
if (this._inertSiblings) {
|
|
20004
|
+
for (const sibling of this._inertSiblings) {
|
|
20005
|
+
const count = parseInt(sibling.dataset.auroInertCount || '1', 10) - 1;
|
|
20006
|
+
if (count <= 0) {
|
|
20007
|
+
const wasInert = sibling.dataset.auroInertWas === 'true';
|
|
20008
|
+
delete sibling.dataset.auroInertCount;
|
|
20009
|
+
delete sibling.dataset.auroInertWas;
|
|
20010
|
+
sibling.inert = wasInert;
|
|
20011
|
+
} else {
|
|
20012
|
+
sibling.dataset.auroInertCount = String(count);
|
|
20013
|
+
}
|
|
20014
|
+
}
|
|
20015
|
+
this._inertSiblings = undefined;
|
|
18214
20016
|
}
|
|
18215
20017
|
}
|
|
18216
20018
|
|
|
@@ -18449,6 +20251,7 @@ class AuroDropdown extends AuroElement$2 {
|
|
|
18449
20251
|
shape="${this.shape}"
|
|
18450
20252
|
?data-show="${this.isPopoverVisible}"
|
|
18451
20253
|
?isfullscreen="${this.isBibFullscreen}"
|
|
20254
|
+
?desktopmodal="${this.desktopModal}"
|
|
18452
20255
|
.dialogLabel="${this.bibDialogLabel}"
|
|
18453
20256
|
${n(this.bibElement)}
|
|
18454
20257
|
>
|
|
@@ -30660,7 +32463,7 @@ let AuroHelpText$1 = class AuroHelpText extends i$1 {
|
|
|
30660
32463
|
}
|
|
30661
32464
|
};
|
|
30662
32465
|
|
|
30663
|
-
var formkitVersion = '
|
|
32466
|
+
var formkitVersion = '202606081833';
|
|
30664
32467
|
|
|
30665
32468
|
// Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
|
|
30666
32469
|
// See LICENSE in the project root for license information.
|
|
@@ -32005,26 +33808,62 @@ function applyKeyboardStrategy(component, strategy, options = {}) {
|
|
|
32005
33808
|
// components/datepicker/docs/partials/keyboardBehavior.md
|
|
32006
33809
|
//
|
|
32007
33810
|
// Current behavior (transitional — full bib keyboard navigation is planned for a future iteration):
|
|
32008
|
-
// - The bib opens and closes via pointer/touch interaction only.
|
|
32009
33811
|
// - Escape closes the bib and prevents the event from reaching parent containers.
|
|
33812
|
+
// - Enter opens the bib when it is closed (trigger input only, not clear button).
|
|
33813
|
+
// - Space opens the bib when it is closed (trigger input only, not clear button).
|
|
32010
33814
|
// - Tab uses the browser's default tabindex sequence across trigger controls.
|
|
32011
|
-
// - Enter and Space do not open or close the bib.
|
|
32012
33815
|
//
|
|
32013
33816
|
// This file is an intentional placeholder for most keys. When datepicker bib keyboard navigation is
|
|
32014
33817
|
// added, handlers should go here following the same strategy pattern used by
|
|
32015
33818
|
// auro-select (selectKeyboardStrategy.js) and auro-combobox (comboboxKeyboardStrategy.js).
|
|
32016
33819
|
const datepickerKeyboardStrategy = {
|
|
32017
|
-
Escape(component, evt) {
|
|
32018
|
-
if (!
|
|
33820
|
+
Escape(component, evt, ctx) {
|
|
33821
|
+
if (!ctx.isExpanded) {
|
|
32019
33822
|
return;
|
|
32020
33823
|
}
|
|
32021
33824
|
|
|
32022
|
-
//
|
|
32023
|
-
//
|
|
32024
|
-
// seeing this event, we must also close the dropdown explicitly.
|
|
33825
|
+
// Stop propagation so parent containers (auro-dialog, auro-drawer)
|
|
33826
|
+
// don't also react to Escape.
|
|
32025
33827
|
evt.stopPropagation();
|
|
33828
|
+
evt.preventDefault();
|
|
33829
|
+
|
|
33830
|
+
component.hideBib();
|
|
33831
|
+
},
|
|
33832
|
+
|
|
33833
|
+
Enter(component, evt, ctx) {
|
|
33834
|
+
if (ctx.isExpanded) {
|
|
33835
|
+
return;
|
|
33836
|
+
}
|
|
33837
|
+
|
|
33838
|
+
// Only open from the trigger input, not the clear button or other internal elements.
|
|
33839
|
+
// evt.target is retargeted to the host in shadow DOM, so use composedPath()
|
|
33840
|
+
// to find the real origin. The clear button is rendered with class "clearBtn".
|
|
33841
|
+
const path = evt.composedPath();
|
|
33842
|
+
if (path.some(el => el.classList?.contains('clearBtn'))) {
|
|
33843
|
+
return;
|
|
33844
|
+
}
|
|
33845
|
+
|
|
33846
|
+
evt.preventDefault();
|
|
33847
|
+
|
|
33848
|
+
component.dropdown.show();
|
|
33849
|
+
},
|
|
33850
|
+
|
|
33851
|
+
' '(component, evt, ctx) {
|
|
33852
|
+
if (ctx.isExpanded) {
|
|
33853
|
+
return;
|
|
33854
|
+
}
|
|
33855
|
+
|
|
33856
|
+
// Only open from the trigger input, not the clear button or other internal elements.
|
|
33857
|
+
// evt.target is retargeted to the host in shadow DOM, so use composedPath()
|
|
33858
|
+
// to find the real origin. The clear button is rendered with class "clearBtn".
|
|
33859
|
+
const path = evt.composedPath();
|
|
33860
|
+
if (path.some(el => el.classList?.contains('clearBtn'))) {
|
|
33861
|
+
return;
|
|
33862
|
+
}
|
|
32026
33863
|
|
|
32027
|
-
|
|
33864
|
+
evt.preventDefault();
|
|
33865
|
+
|
|
33866
|
+
component.dropdown.show();
|
|
32028
33867
|
},
|
|
32029
33868
|
};
|
|
32030
33869
|
|
|
@@ -32098,6 +33937,16 @@ class AuroDatePicker extends AuroElement {
|
|
|
32098
33937
|
this.required = false;
|
|
32099
33938
|
this.onDark = false;
|
|
32100
33939
|
this.range = false;
|
|
33940
|
+
this.rangeLabelStart = 'range start';
|
|
33941
|
+
this.rangeLabelEnd = 'range end';
|
|
33942
|
+
this.rangeLabelBeforeRange = 'before range';
|
|
33943
|
+
this.rangeLabelInRange = 'in range';
|
|
33944
|
+
this.rangeLabelAfterRange = 'after range';
|
|
33945
|
+
this.blackoutDates = [];
|
|
33946
|
+
this.blackoutLabel = 'unavailable';
|
|
33947
|
+
this.navLabelPrevMonth = 'Previous month';
|
|
33948
|
+
this.navLabelNextMonth = 'Next month';
|
|
33949
|
+
this.calendarGridLabel = 'Calendar days of the month';
|
|
32101
33950
|
this.stacked = false;
|
|
32102
33951
|
this.noValidate = false;
|
|
32103
33952
|
this.validity = undefined;
|
|
@@ -32213,7 +34062,7 @@ class AuroDatePicker extends AuroElement {
|
|
|
32213
34062
|
|
|
32214
34063
|
/**
|
|
32215
34064
|
* Defines whether the component will be on lighter or darker backgrounds.
|
|
32216
|
-
* @
|
|
34065
|
+
* @type {'default' | 'inverse'}
|
|
32217
34066
|
* @default 'default'
|
|
32218
34067
|
*/
|
|
32219
34068
|
appearance: {
|
|
@@ -32231,9 +34080,33 @@ class AuroDatePicker extends AuroElement {
|
|
|
32231
34080
|
},
|
|
32232
34081
|
|
|
32233
34082
|
/**
|
|
32234
|
-
*
|
|
34083
|
+
* Array of dates that cannot be selected. Dates should be in ISO format (YYYY-MM-DD).
|
|
34084
|
+
*/
|
|
34085
|
+
blackoutDates: {
|
|
34086
|
+
type: Array,
|
|
34087
|
+
reflect: true
|
|
34088
|
+
},
|
|
34089
|
+
|
|
34090
|
+
/**
|
|
34091
|
+
* Label announced for blackout (disabled but in-range) date cells.
|
|
34092
|
+
*/
|
|
34093
|
+
blackoutLabel: {
|
|
34094
|
+
type: String,
|
|
34095
|
+
reflect: true
|
|
34096
|
+
},
|
|
34097
|
+
|
|
34098
|
+
/**
|
|
34099
|
+
* The last date that may be displayed in the calendar.
|
|
34100
|
+
*/
|
|
34101
|
+
calendarEndDate: {
|
|
34102
|
+
type: String,
|
|
34103
|
+
reflect: true
|
|
34104
|
+
},
|
|
34105
|
+
|
|
34106
|
+
/**
|
|
34107
|
+
* Accessible label for the calendar grid containing the days of the month.
|
|
32235
34108
|
*/
|
|
32236
|
-
|
|
34109
|
+
calendarGridLabel: {
|
|
32237
34110
|
type: String,
|
|
32238
34111
|
reflect: true
|
|
32239
34112
|
},
|
|
@@ -32285,27 +34158,6 @@ class AuroDatePicker extends AuroElement {
|
|
|
32285
34158
|
reflect: true
|
|
32286
34159
|
},
|
|
32287
34160
|
|
|
32288
|
-
hasFocus: {
|
|
32289
|
-
type: Boolean,
|
|
32290
|
-
reflect: false,
|
|
32291
|
-
},
|
|
32292
|
-
|
|
32293
|
-
/**
|
|
32294
|
-
* @private
|
|
32295
|
-
*/
|
|
32296
|
-
hasValue: {
|
|
32297
|
-
type: Boolean,
|
|
32298
|
-
reflect: false,
|
|
32299
|
-
},
|
|
32300
|
-
|
|
32301
|
-
/**
|
|
32302
|
-
* @private
|
|
32303
|
-
*/
|
|
32304
|
-
hasAllValues: {
|
|
32305
|
-
type: Boolean,
|
|
32306
|
-
reflect: false
|
|
32307
|
-
},
|
|
32308
|
-
|
|
32309
34161
|
/**
|
|
32310
34162
|
* Specifies the date format. The default is `mm/dd/yyyy`.
|
|
32311
34163
|
*/
|
|
@@ -32335,6 +34187,27 @@ class AuroDatePicker extends AuroElement {
|
|
|
32335
34187
|
reflect: true
|
|
32336
34188
|
},
|
|
32337
34189
|
|
|
34190
|
+
/**
|
|
34191
|
+
* @private
|
|
34192
|
+
*/
|
|
34193
|
+
hasAllValues: {
|
|
34194
|
+
type: Boolean,
|
|
34195
|
+
reflect: false
|
|
34196
|
+
},
|
|
34197
|
+
|
|
34198
|
+
hasFocus: {
|
|
34199
|
+
type: Boolean,
|
|
34200
|
+
reflect: false,
|
|
34201
|
+
},
|
|
34202
|
+
|
|
34203
|
+
/**
|
|
34204
|
+
* @private
|
|
34205
|
+
*/
|
|
34206
|
+
hasValue: {
|
|
34207
|
+
type: Boolean,
|
|
34208
|
+
reflect: false,
|
|
34209
|
+
},
|
|
34210
|
+
|
|
32338
34211
|
/** Exposes inputmode attribute for input. */
|
|
32339
34212
|
inputmode: {
|
|
32340
34213
|
type: String,
|
|
@@ -32377,6 +34250,13 @@ class AuroDatePicker extends AuroElement {
|
|
|
32377
34250
|
reflect: true
|
|
32378
34251
|
},
|
|
32379
34252
|
|
|
34253
|
+
/**
|
|
34254
|
+
* @private
|
|
34255
|
+
*/
|
|
34256
|
+
monthFirst: {
|
|
34257
|
+
type: Boolean
|
|
34258
|
+
},
|
|
34259
|
+
|
|
32380
34260
|
/**
|
|
32381
34261
|
* Names of all 12 months to render in the calendar.
|
|
32382
34262
|
* When omitted, month names will be automatically populated from the active `locale` (falling back to `en-US`).
|
|
@@ -32386,18 +34266,26 @@ class AuroDatePicker extends AuroElement {
|
|
|
32386
34266
|
},
|
|
32387
34267
|
|
|
32388
34268
|
/**
|
|
32389
|
-
*
|
|
32390
|
-
* when there isn't enough space in the specified `placement`.
|
|
34269
|
+
* Accessible label for the next month navigation button.
|
|
32391
34270
|
*/
|
|
32392
|
-
|
|
32393
|
-
type:
|
|
34271
|
+
navLabelNextMonth: {
|
|
34272
|
+
type: String,
|
|
32394
34273
|
reflect: true
|
|
32395
34274
|
},
|
|
32396
34275
|
|
|
32397
34276
|
/**
|
|
32398
|
-
*
|
|
34277
|
+
* Accessible label for the previous month navigation button.
|
|
32399
34278
|
*/
|
|
32400
|
-
|
|
34279
|
+
navLabelPrevMonth: {
|
|
34280
|
+
type: String,
|
|
34281
|
+
reflect: true
|
|
34282
|
+
},
|
|
34283
|
+
|
|
34284
|
+
/**
|
|
34285
|
+
* If declared, the bib will NOT flip to an alternate position
|
|
34286
|
+
* when there isn't enough space in the specified `placement`.
|
|
34287
|
+
*/
|
|
34288
|
+
noFlip: {
|
|
32401
34289
|
type: Boolean,
|
|
32402
34290
|
reflect: true
|
|
32403
34291
|
},
|
|
@@ -32463,6 +34351,46 @@ class AuroDatePicker extends AuroElement {
|
|
|
32463
34351
|
reflect: true
|
|
32464
34352
|
},
|
|
32465
34353
|
|
|
34354
|
+
/**
|
|
34355
|
+
* Label announced for cells after the range (or after start when no end is selected).
|
|
34356
|
+
*/
|
|
34357
|
+
rangeLabelAfterRange: {
|
|
34358
|
+
type: String,
|
|
34359
|
+
reflect: true
|
|
34360
|
+
},
|
|
34361
|
+
|
|
34362
|
+
/**
|
|
34363
|
+
* Label announced for cells before the range start.
|
|
34364
|
+
*/
|
|
34365
|
+
rangeLabelBeforeRange: {
|
|
34366
|
+
type: String,
|
|
34367
|
+
reflect: true
|
|
34368
|
+
},
|
|
34369
|
+
|
|
34370
|
+
/**
|
|
34371
|
+
* Label announced for the range end date cell.
|
|
34372
|
+
*/
|
|
34373
|
+
rangeLabelEnd: {
|
|
34374
|
+
type: String,
|
|
34375
|
+
reflect: true
|
|
34376
|
+
},
|
|
34377
|
+
|
|
34378
|
+
/**
|
|
34379
|
+
* Label announced for cells within the selected range.
|
|
34380
|
+
*/
|
|
34381
|
+
rangeLabelInRange: {
|
|
34382
|
+
type: String,
|
|
34383
|
+
reflect: true
|
|
34384
|
+
},
|
|
34385
|
+
|
|
34386
|
+
/**
|
|
34387
|
+
* Label announced for the range start date cell.
|
|
34388
|
+
*/
|
|
34389
|
+
rangeLabelStart: {
|
|
34390
|
+
type: String,
|
|
34391
|
+
reflect: true
|
|
34392
|
+
},
|
|
34393
|
+
|
|
32466
34394
|
/**
|
|
32467
34395
|
* Dates that the user should have for reference as part of their decision making when selecting a date.
|
|
32468
34396
|
* This should be a JSON string array of ISO date strings (`YYYY-MM-DD`).
|
|
@@ -32489,6 +34417,7 @@ class AuroDatePicker extends AuroElement {
|
|
|
32489
34417
|
|
|
32490
34418
|
/**
|
|
32491
34419
|
* Custom help text message to display when validity = `customError`.
|
|
34420
|
+
* Also used as the validation message when a blackout date is typed into the input.
|
|
32492
34421
|
*/
|
|
32493
34422
|
setCustomValidityCustomError: {
|
|
32494
34423
|
type: String
|
|
@@ -32515,6 +34444,14 @@ class AuroDatePicker extends AuroElement {
|
|
|
32515
34444
|
type: String
|
|
32516
34445
|
},
|
|
32517
34446
|
|
|
34447
|
+
/**
|
|
34448
|
+
* If declared, the dropdown will shift its position to avoid being cut off by the viewport.
|
|
34449
|
+
*/
|
|
34450
|
+
shift: {
|
|
34451
|
+
type: Boolean,
|
|
34452
|
+
reflect: true
|
|
34453
|
+
},
|
|
34454
|
+
|
|
32518
34455
|
/**
|
|
32519
34456
|
* Set true to make datepicker stacked style.
|
|
32520
34457
|
*/
|
|
@@ -32523,6 +34460,16 @@ class AuroDatePicker extends AuroElement {
|
|
|
32523
34460
|
reflect: true
|
|
32524
34461
|
},
|
|
32525
34462
|
|
|
34463
|
+
/**
|
|
34464
|
+
* Indicates whether the datepicker is in a dirty state (has been interacted with).
|
|
34465
|
+
* @private
|
|
34466
|
+
*/
|
|
34467
|
+
touched: {
|
|
34468
|
+
type: Boolean,
|
|
34469
|
+
reflect: true,
|
|
34470
|
+
attribute: false
|
|
34471
|
+
},
|
|
34472
|
+
|
|
32526
34473
|
/**
|
|
32527
34474
|
* Specifies the `validityState` this element is in.
|
|
32528
34475
|
*/
|
|
@@ -32543,16 +34490,6 @@ class AuroDatePicker extends AuroElement {
|
|
|
32543
34490
|
*/
|
|
32544
34491
|
valueEnd: {
|
|
32545
34492
|
type: String
|
|
32546
|
-
},
|
|
32547
|
-
|
|
32548
|
-
/**
|
|
32549
|
-
* Indicates whether the datepicker is in a dirty state (has been interacted with).
|
|
32550
|
-
* @private
|
|
32551
|
-
*/
|
|
32552
|
-
touched: {
|
|
32553
|
-
type: Boolean,
|
|
32554
|
-
reflect: true,
|
|
32555
|
-
attribute: false
|
|
32556
34493
|
}
|
|
32557
34494
|
};
|
|
32558
34495
|
}
|
|
@@ -32663,7 +34600,7 @@ class AuroDatePicker extends AuroElement {
|
|
|
32663
34600
|
/**
|
|
32664
34601
|
* Common display value wrapper classes.
|
|
32665
34602
|
* @private
|
|
32666
|
-
* @
|
|
34603
|
+
* @returns {Object} Class map for Lit's classMap directive.
|
|
32667
34604
|
*/
|
|
32668
34605
|
get commonDisplayValueWrapperClasses() {
|
|
32669
34606
|
return {
|
|
@@ -32878,6 +34815,74 @@ class AuroDatePicker extends AuroElement {
|
|
|
32878
34815
|
}));
|
|
32879
34816
|
}
|
|
32880
34817
|
|
|
34818
|
+
/**
|
|
34819
|
+
* Attempts to focus the active calendar cell using a rAF retry loop.
|
|
34820
|
+
* Shared by both fullscreen and desktop open paths.
|
|
34821
|
+
* @private
|
|
34822
|
+
* @returns {void}
|
|
34823
|
+
*/
|
|
34824
|
+
focusActiveCellWhenReady() {
|
|
34825
|
+
const MAX_ATTEMPTS = 20;
|
|
34826
|
+
let attempts = 0;
|
|
34827
|
+
|
|
34828
|
+
const tryFocus = () => {
|
|
34829
|
+
attempts += 1;
|
|
34830
|
+
const allCells = this.calendar.getAllFocusableCells();
|
|
34831
|
+
|
|
34832
|
+
if (!allCells.length && attempts < MAX_ATTEMPTS) {
|
|
34833
|
+
requestAnimationFrame(tryFocus);
|
|
34834
|
+
return;
|
|
34835
|
+
}
|
|
34836
|
+
|
|
34837
|
+
// Compute and mark the active cell
|
|
34838
|
+
if (this.calendar.activeCellDate === null || this.calendar.activeCellDate === undefined) {
|
|
34839
|
+
this.calendar.activeCellDate = this.calendar.computeActiveDate();
|
|
34840
|
+
}
|
|
34841
|
+
if (this.calendar.activeCellDate !== undefined) {
|
|
34842
|
+
this.calendar.setActiveCell(this.calendar.activeCellDate);
|
|
34843
|
+
}
|
|
34844
|
+
|
|
34845
|
+
// If no cell matched (e.g. centralDate month differs from the rendered
|
|
34846
|
+
// range on mobile), fall back to the first rendered enabled cell.
|
|
34847
|
+
let activeCell = allCells.find((cell) => cell.active);
|
|
34848
|
+
if (!activeCell && allCells.length) {
|
|
34849
|
+
const [fallback] = allCells;
|
|
34850
|
+
if (fallback.day) {
|
|
34851
|
+
this.calendar.activeCellDate = fallback.day.date;
|
|
34852
|
+
this.calendar.setActiveCell(this.calendar.activeCellDate);
|
|
34853
|
+
activeCell = allCells.find((cell) => cell.active);
|
|
34854
|
+
}
|
|
34855
|
+
}
|
|
34856
|
+
|
|
34857
|
+
// Focus the calendar grid wrapper (aria-activedescendant handles
|
|
34858
|
+
// the SR announcement for the active cell).
|
|
34859
|
+
if (activeCell) {
|
|
34860
|
+
this.calendar.focusActiveCell();
|
|
34861
|
+
|
|
34862
|
+
// Announce the initial active cell via the live region.
|
|
34863
|
+
// Delay the announcement so it arrives after VoiceOver finishes
|
|
34864
|
+
// speaking the focus-change announcement for the grid wrapper.
|
|
34865
|
+
// Without this delay, VoiceOver drops the live region update
|
|
34866
|
+
// because it's already mid-announcement from the focus move.
|
|
34867
|
+
const announcement = this.calendar.buildFocusAnnouncement(activeCell.day.date);
|
|
34868
|
+
setTimeout(() => {
|
|
34869
|
+
this.calendar.announceSelection(announcement);
|
|
34870
|
+
}, 500);
|
|
34871
|
+
|
|
34872
|
+
// On mobile fullscreen, scroll the month list so the active cell's
|
|
34873
|
+
// month is visible. Without this, the list stays scrolled to the
|
|
34874
|
+
// calendarStartDate month which may be far from the active cell.
|
|
34875
|
+
if (this.dropdown.isBibFullscreen) {
|
|
34876
|
+
this.calendar.scrollToActiveCell();
|
|
34877
|
+
}
|
|
34878
|
+
} else if (attempts < MAX_ATTEMPTS) {
|
|
34879
|
+
requestAnimationFrame(tryFocus);
|
|
34880
|
+
}
|
|
34881
|
+
};
|
|
34882
|
+
|
|
34883
|
+
requestAnimationFrame(tryFocus);
|
|
34884
|
+
}
|
|
34885
|
+
|
|
32881
34886
|
/**
|
|
32882
34887
|
* Binds all behavior needed to the dropdown after rendering.
|
|
32883
34888
|
* @private
|
|
@@ -32886,6 +34891,12 @@ class AuroDatePicker extends AuroElement {
|
|
|
32886
34891
|
configureDropdown() {
|
|
32887
34892
|
this.dropdown = this.shadowRoot.querySelector(this.dropdownTag._$litStatic$);
|
|
32888
34893
|
|
|
34894
|
+
// The datepicker manages its own open/close lifecycle (Space/Escape/date-select/done).
|
|
34895
|
+
// Prevent the floater's document-level focusin handler from closing the bib
|
|
34896
|
+
// when focus moves from the trigger into the calendar cells (which live inside
|
|
34897
|
+
// a top-layer popover where :focus-within on the dropdown host returns false).
|
|
34898
|
+
this.dropdown.noHideOnThisFocusLoss = true;
|
|
34899
|
+
|
|
32889
34900
|
// Pass label text to the dropdown bib for accessible dialog naming.
|
|
32890
34901
|
// Without this, the fullscreen <dialog> has no accessible name and
|
|
32891
34902
|
// screen readers announce it as just "dialog" with no context.
|
|
@@ -32903,6 +34914,23 @@ class AuroDatePicker extends AuroElement {
|
|
|
32903
34914
|
this.dropdown.addEventListener('auroDropdown-toggled', () => {
|
|
32904
34915
|
this.notifyDatepickerToggled();
|
|
32905
34916
|
|
|
34917
|
+
if (this.dropdown.isPopoverVisible) {
|
|
34918
|
+
// Reset calendar focus state so it recomputes from the current selection.
|
|
34919
|
+
// Without this, reopening after navigating to a month without a selected
|
|
34920
|
+
// date leaves activeCellDate pointing at a cell in a different month than
|
|
34921
|
+
// what centralDate renders, causing all cells to have tabindex="-1".
|
|
34922
|
+
this.calendar.activeCellDate = null;
|
|
34923
|
+
|
|
34924
|
+
// Show the month containing the selected date (or today) instead of
|
|
34925
|
+
// whichever month the user last navigated to.
|
|
34926
|
+
// Respect consumer-provided centralDate/calendarStartDate if no value is set.
|
|
34927
|
+
if (this.valueObject) {
|
|
34928
|
+
this.centralDate = this.value;
|
|
34929
|
+
} else if (!this.centralDate && !this.calendarStartDate && !this.minDate) {
|
|
34930
|
+
this.centralDate = new Date();
|
|
34931
|
+
}
|
|
34932
|
+
}
|
|
34933
|
+
|
|
32906
34934
|
// This forces the calendar to render when the dropdown is opened.
|
|
32907
34935
|
// It is not rendered by default
|
|
32908
34936
|
this.calendar.visible = this.dropdown.isPopoverVisible;
|
|
@@ -32935,12 +34963,23 @@ class AuroDatePicker extends AuroElement {
|
|
|
32935
34963
|
bibEl.open(true);
|
|
32936
34964
|
|
|
32937
34965
|
doubleRaf(() => {
|
|
32938
|
-
this.
|
|
34966
|
+
this.focusActiveCellWhenReady();
|
|
32939
34967
|
});
|
|
32940
34968
|
}
|
|
32941
34969
|
});
|
|
32942
34970
|
|
|
32943
34971
|
guardTouchPassthrough(this.shadowRoot.querySelector('.calendarWrapper'));
|
|
34972
|
+
} else {
|
|
34973
|
+
// Desktop (non-fullscreen) modal: make the trigger inert so users
|
|
34974
|
+
// cannot interact with the input while the modal bib is open.
|
|
34975
|
+
if (this.dropdown.desktopModal) {
|
|
34976
|
+
this.dropdown.trigger.inert = true;
|
|
34977
|
+
}
|
|
34978
|
+
|
|
34979
|
+
// Desktop (non-fullscreen): focus the active calendar cell.
|
|
34980
|
+
this.dropdown.updateComplete.then(() => {
|
|
34981
|
+
this.focusActiveCellWhenReady();
|
|
34982
|
+
});
|
|
32944
34983
|
}
|
|
32945
34984
|
} else {
|
|
32946
34985
|
// Always clear the inert flag. Only restore focus to the input when the datepicker
|
|
@@ -32985,14 +35024,35 @@ class AuroDatePicker extends AuroElement {
|
|
|
32985
35024
|
if (bibEl && this.dropdown.isPopoverVisible) {
|
|
32986
35025
|
bibEl.close();
|
|
32987
35026
|
bibEl.open(true);
|
|
35027
|
+
}
|
|
35028
|
+
|
|
35029
|
+
// Re-render the calendar with the new fullscreen layout,
|
|
35030
|
+
// then restore focus after the re-render completes.
|
|
35031
|
+
this.calendar.isFullscreen = true;
|
|
35032
|
+
this.calendar.updateComplete.then(() => {
|
|
32988
35033
|
doubleRaf(() => {
|
|
32989
|
-
this.
|
|
35034
|
+
this.focusActiveCellWhenReady();
|
|
32990
35035
|
});
|
|
32991
|
-
}
|
|
35036
|
+
});
|
|
32992
35037
|
});
|
|
32993
35038
|
} else if (!this.dropdown.isBibFullscreen) {
|
|
32994
|
-
// Switching from fullscreen to floating — restore trigger accessibility
|
|
32995
|
-
|
|
35039
|
+
// Switching from fullscreen to floating — only restore trigger accessibility
|
|
35040
|
+
// when the bib is closed or the desktop layout is not a modal. A desktopModal
|
|
35041
|
+
// dropdown keeps the trigger inert while open, matching the desktop-open path.
|
|
35042
|
+
if (!this.dropdown.isPopoverVisible || !this.dropdown.desktopModal) {
|
|
35043
|
+
this.dropdown.trigger.inert = false;
|
|
35044
|
+
}
|
|
35045
|
+
|
|
35046
|
+
// Re-render the calendar with the desktop layout,
|
|
35047
|
+
// then restore focus after the re-render completes.
|
|
35048
|
+
this.dropdown.updateComplete.then(() => {
|
|
35049
|
+
this.calendar.isFullscreen = false;
|
|
35050
|
+
this.calendar.updateComplete.then(() => {
|
|
35051
|
+
doubleRaf(() => {
|
|
35052
|
+
this.focusActiveCellWhenReady();
|
|
35053
|
+
});
|
|
35054
|
+
});
|
|
35055
|
+
});
|
|
32996
35056
|
}
|
|
32997
35057
|
});
|
|
32998
35058
|
}
|
|
@@ -33180,14 +35240,8 @@ class AuroDatePicker extends AuroElement {
|
|
|
33180
35240
|
|
|
33181
35241
|
if (onEndValue) {
|
|
33182
35242
|
this.valueEnd = newDate;
|
|
33183
|
-
if (this.dropdown.isPopoverVisible && !this.dropdown.isBibFullscreen) {
|
|
33184
|
-
this.focus('startDate');
|
|
33185
|
-
}
|
|
33186
35243
|
} else {
|
|
33187
35244
|
this.value = newDate;
|
|
33188
|
-
if (this.dropdown.isPopoverVisible && !this.dropdown.isBibFullscreen) {
|
|
33189
|
-
this.focus('endDate');
|
|
33190
|
-
}
|
|
33191
35245
|
}
|
|
33192
35246
|
}
|
|
33193
35247
|
}
|
|
@@ -33227,6 +35281,23 @@ class AuroDatePicker extends AuroElement {
|
|
|
33227
35281
|
this.resetInputs();
|
|
33228
35282
|
}
|
|
33229
35283
|
|
|
35284
|
+
/**
|
|
35285
|
+
* Checks whether a formatted date string matches a blackout date.
|
|
35286
|
+
* @private
|
|
35287
|
+
* @param {string} dateStr - A date string in the component's configured format.
|
|
35288
|
+
* @returns {boolean} True if the date is in the blackoutDates list.
|
|
35289
|
+
*/
|
|
35290
|
+
isBlackoutDate(dateStr) {
|
|
35291
|
+
if (!Array.isArray(this.blackoutDates) ||
|
|
35292
|
+
this.blackoutDates.length === 0 ||
|
|
35293
|
+
!dateStr ||
|
|
35294
|
+
!dateFormatter$1.isValidDate(dateStr)) {
|
|
35295
|
+
return false;
|
|
35296
|
+
}
|
|
35297
|
+
|
|
35298
|
+
return this.blackoutDates.includes(dateStr);
|
|
35299
|
+
}
|
|
35300
|
+
|
|
33230
35301
|
/**
|
|
33231
35302
|
* Validates value.
|
|
33232
35303
|
* @param {boolean} [force=false] - Whether to force validation.
|
|
@@ -33238,6 +35309,23 @@ class AuroDatePicker extends AuroElement {
|
|
|
33238
35309
|
}
|
|
33239
35310
|
|
|
33240
35311
|
this.validation.validate(this, force);
|
|
35312
|
+
|
|
35313
|
+
// After standard validation, check blackout dates for typed input
|
|
35314
|
+
if (this.validity !== 'customError' &&
|
|
35315
|
+
(this.isBlackoutDate(this.value) || (this.range && this.isBlackoutDate(this.valueEnd)))) { // eslint-disable-line no-extra-parens
|
|
35316
|
+
const msg = this.setCustomValidityCustomError || 'Selected date is unavailable';
|
|
35317
|
+
this.validity = 'customError';
|
|
35318
|
+
this.errorMessage = msg;
|
|
35319
|
+
|
|
35320
|
+
this.dispatchEvent(new CustomEvent('auroFormElement-validated', {
|
|
35321
|
+
bubbles: true,
|
|
35322
|
+
composed: true,
|
|
35323
|
+
detail: {
|
|
35324
|
+
validity: this.validity,
|
|
35325
|
+
message: this.errorMessage
|
|
35326
|
+
}
|
|
35327
|
+
}));
|
|
35328
|
+
}
|
|
33241
35329
|
}
|
|
33242
35330
|
|
|
33243
35331
|
/**
|
|
@@ -33265,7 +35353,7 @@ class AuroDatePicker extends AuroElement {
|
|
|
33265
35353
|
}
|
|
33266
35354
|
|
|
33267
35355
|
/**
|
|
33268
|
-
*
|
|
35356
|
+
* Lifecycle method to check if the locale is valid.
|
|
33269
35357
|
* @ignore
|
|
33270
35358
|
* @param {Map} changedProperties - The map of properties that have changed since the last update.
|
|
33271
35359
|
* @returns {void}
|
|
@@ -33276,17 +35364,20 @@ class AuroDatePicker extends AuroElement {
|
|
|
33276
35364
|
const supported = Intl.DateTimeFormat.supportedLocalesOf([this.locale], { localeMatcher: 'lookup' });
|
|
33277
35365
|
this._validLocale = supported.length > 0 ? this.locale : 'en-US';
|
|
33278
35366
|
} catch {
|
|
33279
|
-
console.debug(`[AuroDatePicker] The locale "${this.locale}" is not valid. Falling back to "en-US".`);
|
|
35367
|
+
console.debug(`[AuroDatePicker] The locale "${this.locale}" is not valid. Falling back to "en-US".`); // eslint-disable-line no-console
|
|
33280
35368
|
this._validLocale = 'en-US';
|
|
33281
35369
|
}
|
|
33282
35370
|
|
|
33283
|
-
// if there was not an explicit format set, or the format set matches the previous locale's default format,
|
|
33284
|
-
// update to the new locale's default format
|
|
33285
35371
|
const previousLocaleFormat = getDateFormatFromLocale$1(changedProperties.get('locale'));
|
|
33286
35372
|
if (!changedProperties.has('format') && (!this.format || this.format.toLowerCase() === previousLocaleFormat)) {
|
|
33287
35373
|
this.format = getDateFormatFromLocale$1(this._validLocale);
|
|
33288
35374
|
}
|
|
33289
35375
|
}
|
|
35376
|
+
|
|
35377
|
+
if (changedProperties.has('referenceDates') && this.calendar) {
|
|
35378
|
+
this.calendar.requestUpdate();
|
|
35379
|
+
this.dispatchEvent(new CustomEvent('auroDatePicker-newSlotContent'));
|
|
35380
|
+
}
|
|
33290
35381
|
}
|
|
33291
35382
|
|
|
33292
35383
|
updated(changedProperties) {
|
|
@@ -33316,17 +35407,18 @@ class AuroDatePicker extends AuroElement {
|
|
|
33316
35407
|
if (changedProperties.has('value')) {
|
|
33317
35408
|
|
|
33318
35409
|
// Change the calendar focus to the first valid date value only the first time the value is set
|
|
33319
|
-
if (!this.calendarFocusDate && dateFormatter$1.isValidDate(this.value)) {
|
|
33320
|
-
|
|
33321
|
-
this.calendarFocusDate = this.value;
|
|
35410
|
+
if (!this.calendarFocusDate && dateFormatter$1.isValidDate(this.value) && !this.dropdown.isPopoverVisible) {
|
|
35411
|
+
this.calendarFocusDate = this.value;
|
|
33322
35412
|
|
|
33323
|
-
|
|
33324
|
-
|
|
33325
|
-
}
|
|
35413
|
+
// Let the calendar know to scroll to the focus date when it is next rendered on mobile
|
|
35414
|
+
this.forceScrollOnNextMobileCalendarRender = true;
|
|
33326
35415
|
}
|
|
33327
35416
|
|
|
33328
35417
|
if (this.cellClickActive) {
|
|
33329
35418
|
this.cellClickActive = false;
|
|
35419
|
+
this.wasCellClick = true;
|
|
35420
|
+
} else {
|
|
35421
|
+
this.wasCellClick = false;
|
|
33330
35422
|
}
|
|
33331
35423
|
|
|
33332
35424
|
if (this.value && dateFormatter$1.isValidDate(this.value)) {
|
|
@@ -33344,13 +35436,48 @@ class AuroDatePicker extends AuroElement {
|
|
|
33344
35436
|
|
|
33345
35437
|
// update the inputs — auro-input accepts ISO directly
|
|
33346
35438
|
if (this.inputList[0].value !== this.value) {
|
|
33347
|
-
|
|
35439
|
+
if (this.value) {
|
|
35440
|
+
this.inputList[0].value = this.value;
|
|
35441
|
+
} else {
|
|
35442
|
+
this.inputList[0].value = '';
|
|
35443
|
+
}
|
|
35444
|
+
}
|
|
35445
|
+
|
|
35446
|
+
if (this.value && this.value.length === this.inputList[0].lengthForType && !(this.wasCellClick && this.range)) {
|
|
35447
|
+
// Skip centralDate update when user clicked a cell in range mode
|
|
35448
|
+
// to prevent the displayed months from shifting
|
|
35449
|
+
this.centralDate = this.value;
|
|
35450
|
+
//TODO: TEST THIS CHANGE
|
|
35451
|
+
// this.calendarRenderUtil.updateCentralDate(this, this.value);
|
|
33348
35452
|
}
|
|
33349
35453
|
|
|
33350
35454
|
this.setHasValue();
|
|
33351
35455
|
}
|
|
33352
35456
|
|
|
35457
|
+
if (changedProperties.has('blackoutDates')) {
|
|
35458
|
+
// Force calendar cells to re-render with updated blackout state.
|
|
35459
|
+
// requestUpdate on the calendar alone is insufficient because cells
|
|
35460
|
+
// don't receive blackoutDates as a bound property. Dispatching the
|
|
35461
|
+
// slot content event triggers handleSlotContent → requestUpdate on each cell.
|
|
35462
|
+
if (this.calendar) {
|
|
35463
|
+
this.calendar.requestUpdate();
|
|
35464
|
+
this.dispatchEvent(new CustomEvent('auroDatePicker-newSlotContent'));
|
|
35465
|
+
}
|
|
35466
|
+
|
|
35467
|
+
// Re-run validation so that a previously valid value that now falls on
|
|
35468
|
+
// a blackout date is flagged, and vice versa.
|
|
35469
|
+
if (this.value || this.valueEnd) {
|
|
35470
|
+
this.validate();
|
|
35471
|
+
}
|
|
35472
|
+
}
|
|
35473
|
+
|
|
33353
35474
|
if (changedProperties.has('valueEnd') && this.inputList[1]) {
|
|
35475
|
+
if (this.cellClickActive) {
|
|
35476
|
+
this.cellClickActive = false;
|
|
35477
|
+
this.wasCellClick = true;
|
|
35478
|
+
} else {
|
|
35479
|
+
this.wasCellClick = false;
|
|
35480
|
+
}
|
|
33354
35481
|
|
|
33355
35482
|
// update the calendar
|
|
33356
35483
|
if (this.valueEndObject) {
|
|
@@ -33368,7 +35495,19 @@ class AuroDatePicker extends AuroElement {
|
|
|
33368
35495
|
|
|
33369
35496
|
// update the inputs — auro-input accepts ISO directly
|
|
33370
35497
|
if (this.inputList[1].value !== this.valueEnd) {
|
|
33371
|
-
|
|
35498
|
+
if (this.valueEnd) {
|
|
35499
|
+
this.inputList[1].value = this.valueEnd;
|
|
35500
|
+
} else {
|
|
35501
|
+
this.inputList[1].value = '';
|
|
35502
|
+
}
|
|
35503
|
+
}
|
|
35504
|
+
|
|
35505
|
+
if (this.valueEnd && this.valueEnd.length === this.inputList[1].lengthForType && !this.wasCellClick) {
|
|
35506
|
+
// Skip centralDate update when user clicked a cell in range mode
|
|
35507
|
+
// to prevent the displayed months from shifting
|
|
35508
|
+
this.centralDate = this.valueEnd;
|
|
35509
|
+
// TODO: TEST THIS CHANGE
|
|
35510
|
+
// this.calendarRenderUtil.updateCentralDate(this, this.formattedValueEnd);
|
|
33372
35511
|
}
|
|
33373
35512
|
|
|
33374
35513
|
this.validate();
|
|
@@ -33411,16 +35550,14 @@ class AuroDatePicker extends AuroElement {
|
|
|
33411
35550
|
this.calendarRenderUtil.updateCentralDate(this, this.minDateObject);
|
|
33412
35551
|
}
|
|
33413
35552
|
|
|
33414
|
-
if (!changedProperties.has('value') && this.valueObject) {
|
|
33415
|
-
|
|
33416
|
-
this.value = undefined;
|
|
33417
|
-
|
|
33418
|
-
if (this.range && this.valueEnd) {
|
|
33419
|
-
this.valueEnd = undefined;
|
|
33420
|
-
}
|
|
35553
|
+
if (!changedProperties.has('value') && this.valueObject && this.minDateObject > this.valueObject) {
|
|
35554
|
+
this.value = undefined;
|
|
33421
35555
|
|
|
33422
|
-
|
|
35556
|
+
if (this.range && this.valueEnd) {
|
|
35557
|
+
this.valueEnd = undefined;
|
|
33423
35558
|
}
|
|
35559
|
+
|
|
35560
|
+
this.calendarRenderUtil.updateCentralDate(this, this.minDateObject);
|
|
33424
35561
|
}
|
|
33425
35562
|
|
|
33426
35563
|
// When there is no focusDate and no value, set the focusDate to the minDate
|
|
@@ -33451,16 +35588,14 @@ class AuroDatePicker extends AuroElement {
|
|
|
33451
35588
|
}
|
|
33452
35589
|
}
|
|
33453
35590
|
|
|
33454
|
-
if (this.maxDate && !changedProperties.has('value') && this.valueObject) {
|
|
33455
|
-
|
|
33456
|
-
this.value = undefined;
|
|
33457
|
-
|
|
33458
|
-
if (this.range && this.valueEnd) {
|
|
33459
|
-
this.valueEnd = undefined;
|
|
33460
|
-
}
|
|
35591
|
+
if (this.maxDate && !changedProperties.has('value') && this.valueObject && this.maxDateObject < this.valueObject) {
|
|
35592
|
+
this.value = undefined;
|
|
33461
35593
|
|
|
33462
|
-
|
|
35594
|
+
if (this.range && this.valueEnd) {
|
|
35595
|
+
this.valueEnd = undefined;
|
|
33463
35596
|
}
|
|
35597
|
+
|
|
35598
|
+
this.calendarRenderUtil.updateCentralDate(this, this.maxDateObject);
|
|
33464
35599
|
}
|
|
33465
35600
|
|
|
33466
35601
|
this.calendar.requestUpdate();
|
|
@@ -33518,6 +35653,7 @@ class AuroDatePicker extends AuroElement {
|
|
|
33518
35653
|
}
|
|
33519
35654
|
|
|
33520
35655
|
firstUpdated() {
|
|
35656
|
+
|
|
33521
35657
|
// Add the tag name as an attribute if it is different than the component name
|
|
33522
35658
|
this.runtimeUtils.handleComponentTagRename(this, 'auro-datepicker');
|
|
33523
35659
|
|
|
@@ -33800,7 +35936,7 @@ class AuroDatePicker extends AuroElement {
|
|
|
33800
35936
|
/**
|
|
33801
35937
|
* Handles click on the clear button.
|
|
33802
35938
|
* @private
|
|
33803
|
-
* @param {MouseEvent} event - The
|
|
35939
|
+
* @param {MouseEvent} event - The mouse event from the clear button click.
|
|
33804
35940
|
* @returns {void}
|
|
33805
35941
|
*/
|
|
33806
35942
|
handleClearClick(event) {
|
|
@@ -33948,7 +36084,7 @@ class AuroDatePicker extends AuroElement {
|
|
|
33948
36084
|
// Base HTML render() handles dropdown and calendar bib
|
|
33949
36085
|
return u$a`
|
|
33950
36086
|
<!-- Hidden slot for clear button aria-label -->
|
|
33951
|
-
<slot name="ariaLabel.input.clear" hidden @slotchange=${this.requestUpdate}></slot>
|
|
36087
|
+
<slot name="ariaLabel.input.clear" hidden @slotchange=${() => this.requestUpdate()}></slot>
|
|
33952
36088
|
|
|
33953
36089
|
<${this.dropdownTag}
|
|
33954
36090
|
appearance="${this.onDark ? 'inverse' : this.appearance}"
|
|
@@ -33965,6 +36101,7 @@ class AuroDatePicker extends AuroElement {
|
|
|
33965
36101
|
.shape="${this.shape}"
|
|
33966
36102
|
.size="${this.size}"
|
|
33967
36103
|
class="${e$4(dropdownElementClassMap)}"
|
|
36104
|
+
desktopModal
|
|
33968
36105
|
disableEventShow
|
|
33969
36106
|
for="dropdownMenu"
|
|
33970
36107
|
part="dropdown"
|
|
@@ -33984,10 +36121,97 @@ class AuroDatePicker extends AuroElement {
|
|
|
33984
36121
|
}
|
|
33985
36122
|
}
|
|
33986
36123
|
|
|
36124
|
+
function blackoutLabelExample() {
|
|
36125
|
+
const blackoutDP = document.querySelector('#blackoutLabelExample');
|
|
36126
|
+
|
|
36127
|
+
function formatISO(date) {
|
|
36128
|
+
const mm = String(date.getMonth() + 1).padStart(2, '0');
|
|
36129
|
+
const dd = String(date.getDate()).padStart(2, '0');
|
|
36130
|
+
return `${date.getFullYear()}-${mm}-${dd}`;
|
|
36131
|
+
}
|
|
36132
|
+
|
|
36133
|
+
function setup() {
|
|
36134
|
+
const today = new Date();
|
|
36135
|
+
today.setHours(0, 0, 0, 0);
|
|
36136
|
+
|
|
36137
|
+
// Calendar starts 6 months in the future
|
|
36138
|
+
const startDate = new Date(today);
|
|
36139
|
+
startDate.setMonth(today.getMonth() + 6);
|
|
36140
|
+
|
|
36141
|
+
// Calendar ends 12 months in the future
|
|
36142
|
+
const endDate = new Date(today);
|
|
36143
|
+
endDate.setMonth(today.getMonth() + 12);
|
|
36144
|
+
|
|
36145
|
+
// Min date is 2 months after the start date
|
|
36146
|
+
const minDate = new Date(startDate);
|
|
36147
|
+
minDate.setMonth(startDate.getMonth() + 2);
|
|
36148
|
+
|
|
36149
|
+
// Max date is 75 days after min date
|
|
36150
|
+
const maxDate = new Date(minDate);
|
|
36151
|
+
maxDate.setDate(minDate.getDate() + 75);
|
|
36152
|
+
|
|
36153
|
+
blackoutDP.setAttribute('calendarStartDate', formatISO(startDate));
|
|
36154
|
+
blackoutDP.setAttribute('calendarEndDate', formatISO(endDate));
|
|
36155
|
+
blackoutDP.setAttribute('minDate', formatISO(minDate));
|
|
36156
|
+
blackoutDP.setAttribute('maxDate', formatISO(maxDate));
|
|
36157
|
+
|
|
36158
|
+
// Generate all dates within the min/max range
|
|
36159
|
+
const blackoutDates = [];
|
|
36160
|
+
|
|
36161
|
+
for (let d = new Date(minDate); d <= maxDate; d.setDate(d.getDate() + 1)) {
|
|
36162
|
+
const current = new Date(d);
|
|
36163
|
+
const mm = String(current.getMonth() + 1).padStart(2, '0');
|
|
36164
|
+
const dd = String(current.getDate()).padStart(2, '0');
|
|
36165
|
+
const yyyy = current.getFullYear();
|
|
36166
|
+
const slotDateStr = `${mm}_${dd}_${yyyy}`;
|
|
36167
|
+
|
|
36168
|
+
// Mark every 3rd date as blackout (deterministic pattern)
|
|
36169
|
+
const dayOfMonth = current.getDate();
|
|
36170
|
+
const isSoldOut = dayOfMonth % 3 === 0;
|
|
36171
|
+
|
|
36172
|
+
if (isSoldOut) {
|
|
36173
|
+
blackoutDates.push(`${yyyy}-${mm}-${dd}`);
|
|
36174
|
+
|
|
36175
|
+
const popover = document.createElement('span');
|
|
36176
|
+
popover.setAttribute('slot', `popover_${slotDateStr}`);
|
|
36177
|
+
popover.textContent = 'There are no tickets available for this date.';
|
|
36178
|
+
blackoutDP.appendChild(popover);
|
|
36179
|
+
} else {
|
|
36180
|
+
// Use a fixed price based on day of month for deterministic output
|
|
36181
|
+
const price = 150 + (dayOfMonth * 17) % 400;
|
|
36182
|
+
|
|
36183
|
+
const dateSlot = document.createElement('span');
|
|
36184
|
+
dateSlot.setAttribute('slot', `date_${slotDateStr}`);
|
|
36185
|
+
dateSlot.textContent = `$${price}`;
|
|
36186
|
+
blackoutDP.appendChild(dateSlot);
|
|
36187
|
+
}
|
|
36188
|
+
}
|
|
36189
|
+
|
|
36190
|
+
blackoutDP.blackoutDates = blackoutDates;
|
|
36191
|
+
}
|
|
36192
|
+
|
|
36193
|
+
setup();
|
|
36194
|
+
}
|
|
36195
|
+
|
|
33987
36196
|
AuroDatePicker.register(); // registering to auro-datepicker
|
|
33988
36197
|
AuroDatePicker.register('custom-datepicker');
|
|
33989
36198
|
|
|
33990
36199
|
function initExamples(initCount) {
|
|
36200
|
+
initCount = initCount || 0;
|
|
36201
|
+
|
|
36202
|
+
try {
|
|
36203
|
+
// Only run when the demo element exists on the current page
|
|
36204
|
+
if (document.querySelector('#blackoutLabelExample')) {
|
|
36205
|
+
blackoutLabelExample();
|
|
36206
|
+
}
|
|
36207
|
+
} catch {
|
|
36208
|
+
if (initCount <= 20) {
|
|
36209
|
+
// setTimeout handles issue where content is sometimes loaded after the functions get called
|
|
36210
|
+
setTimeout(() => {
|
|
36211
|
+
initExamples(initCount + 1);
|
|
36212
|
+
}, 100);
|
|
36213
|
+
}
|
|
36214
|
+
}
|
|
33991
36215
|
}
|
|
33992
36216
|
|
|
33993
36217
|
export { initExamples };
|