@aurodesignsystem-dev/auro-formkit 0.0.0-pr1508.0 → 0.0.0-pr1508.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components/bibtemplate/dist/index.js +1 -1
- package/components/bibtemplate/dist/registered.js +1 -1
- package/components/checkbox/demo/customize.min.js +8 -6
- package/components/checkbox/demo/getting-started.min.js +8 -6
- package/components/checkbox/demo/index.min.js +8 -6
- package/components/checkbox/dist/index.js +8 -6
- package/components/checkbox/dist/registered.js +8 -6
- package/components/combobox/README.md +1 -1
- package/components/combobox/demo/customize.md +2 -10
- package/components/combobox/demo/customize.min.js +386 -305
- package/components/combobox/demo/getting-started.min.js +386 -301
- package/components/combobox/demo/index.md +1 -1
- package/components/combobox/demo/index.min.js +386 -301
- package/components/combobox/demo/keyboard-behavior.md +2 -142
- package/components/combobox/demo/readme.md +1 -1
- package/components/combobox/demo/why-combobox.md +2 -2
- package/components/combobox/dist/auro-combobox.d.ts +23 -16
- package/components/combobox/dist/index.js +385 -300
- package/components/combobox/dist/registered.js +385 -300
- package/components/counter/demo/customize.min.js +18 -8
- package/components/counter/demo/index.min.js +18 -8
- package/components/counter/dist/index.js +18 -8
- package/components/counter/dist/registered.js +18 -8
- package/components/datepicker/demo/accessibility.md +2 -1
- package/components/datepicker/demo/api.md +63 -62
- package/components/datepicker/demo/customize.md +12 -1
- package/components/datepicker/demo/customize.min.js +932 -335
- package/components/datepicker/demo/index.min.js +932 -335
- package/components/datepicker/dist/{src/auro-calendar-cell.d.ts → auro-calendar-cell.d.ts} +20 -3
- package/components/datepicker/dist/{src/auro-calendar.d.ts → auro-calendar.d.ts} +121 -7
- package/components/datepicker/dist/{src/auro-datepicker.d.ts → auro-datepicker.d.ts} +78 -5
- package/components/datepicker/dist/blackoutUtils.d.ts +43 -0
- package/components/datepicker/dist/index.js +932 -335
- package/components/datepicker/dist/registered.js +932 -335
- package/components/dropdown/demo/customize.min.js +2 -1
- package/components/dropdown/demo/getting-started.min.js +2 -1
- package/components/dropdown/demo/index.min.js +2 -1
- package/components/dropdown/dist/index.js +2 -1
- package/components/dropdown/dist/registered.js +2 -1
- package/components/form/demo/customize.min.js +1690 -826
- package/components/form/demo/getting-started.min.js +1690 -826
- package/components/form/demo/index.min.js +1690 -826
- package/components/form/demo/registerDemoDeps.min.js +1690 -826
- package/components/input/demo/api.md +5 -5
- package/components/input/demo/customize.md +8 -8
- package/components/input/demo/customize.min.js +137 -95
- package/components/input/demo/getting-started.min.js +137 -95
- package/components/input/demo/index.min.js +137 -95
- package/components/input/dist/base-input.d.ts +33 -44
- package/components/input/dist/index.js +150 -96
- package/components/input/dist/registered.js +137 -95
- package/components/radio/demo/customize.min.js +8 -6
- package/components/radio/demo/getting-started.min.js +8 -6
- package/components/radio/demo/index.min.js +8 -6
- package/components/radio/dist/index.js +8 -6
- package/components/radio/dist/registered.js +8 -6
- package/components/select/demo/customize.md +86 -0
- package/components/select/demo/customize.min.js +194 -68
- package/components/select/demo/getting-started.min.js +196 -115
- package/components/select/demo/index.min.js +194 -68
- package/components/select/demo/keyboard-behavior.md +18 -4
- package/components/select/dist/auro-select.d.ts +20 -8
- package/components/select/dist/index.js +194 -68
- package/components/select/dist/registered.js +194 -68
- package/custom-elements.json +2365 -1819
- package/package.json +6 -2
- package/components/checkbox/demo/customize.js +0 -22
- package/components/checkbox/demo/demo-support.js +0 -1
- package/components/checkbox/demo/getting-started.js +0 -22
- package/components/checkbox/demo/index.js +0 -8
- package/components/checkbox/demo/styles.scss +0 -1
- package/components/combobox/demo/customize.js +0 -24
- package/components/combobox/demo/demo-support.js +0 -1
- package/components/combobox/demo/getting-started.js +0 -21
- package/components/combobox/demo/index.js +0 -23
- package/components/combobox/demo/styles.scss +0 -1
- package/components/counter/demo/customize.js +0 -21
- package/components/counter/demo/demo-support.js +0 -1
- package/components/counter/demo/index.js +0 -21
- package/components/counter/demo/styles.scss +0 -1
- package/components/datepicker/demo/customize.js +0 -17
- package/components/datepicker/demo/demo-support.js +0 -1
- package/components/datepicker/demo/index.js +0 -23
- package/components/datepicker/demo/styles.scss +0 -1
- package/components/dropdown/demo/customize.js +0 -9
- package/components/dropdown/demo/demo-support.js +0 -1
- package/components/dropdown/demo/getting-started.js +0 -9
- package/components/dropdown/demo/index.js +0 -16
- package/components/dropdown/demo/styles.scss +0 -1
- package/components/form/demo/customize.js +0 -28
- package/components/form/demo/demo-support.js +0 -1
- package/components/form/demo/getting-started.js +0 -9
- package/components/form/demo/index.js +0 -5
- package/components/form/demo/registerDemoDeps.js +0 -23
- package/components/form/demo/styles.scss +0 -1
- package/components/input/demo/customize.js +0 -25
- package/components/input/demo/demo-support.js +0 -1
- package/components/input/demo/getting-started.js +0 -8
- package/components/input/demo/index.js +0 -8
- package/components/input/demo/styles.css +0 -974
- package/components/input/demo/styles.scss +0 -1
- package/components/menu/demo/demo-support.js +0 -1
- package/components/menu/demo/index.js +0 -25
- package/components/menu/demo/styles.scss +0 -1
- package/components/radio/demo/customize.js +0 -22
- package/components/radio/demo/demo-support.js +0 -1
- package/components/radio/demo/getting-started.js +0 -24
- package/components/radio/demo/index.js +0 -8
- package/components/radio/demo/styles.scss +0 -1
- package/components/select/demo/customize.js +0 -11
- package/components/select/demo/demo-support.js +0 -1
- package/components/select/demo/getting-started.js +0 -26
- package/components/select/demo/index.js +0 -11
- package/components/select/demo/styles.scss +0 -1
- /package/components/datepicker/dist/{src/auro-calendar-month.d.ts → auro-calendar-month.d.ts} +0 -0
- /package/components/datepicker/dist/{src/buttonVersion.d.ts → buttonVersion.d.ts} +0 -0
- /package/components/datepicker/dist/{src/datepickerKeyboardStrategy.d.ts → datepickerKeyboardStrategy.d.ts} +0 -0
- /package/components/datepicker/dist/{src/iconVersion.d.ts → iconVersion.d.ts} +0 -0
- /package/components/datepicker/dist/{src/index.d.ts → index.d.ts} +0 -0
- /package/components/datepicker/dist/{src/popoverVersion.d.ts → popoverVersion.d.ts} +0 -0
- /package/components/datepicker/dist/{src/styles → styles}/classic/color-css.d.ts +0 -0
- /package/components/datepicker/dist/{src/styles → styles}/classic/style-css.d.ts +0 -0
- /package/components/datepicker/dist/{src/styles → styles}/color-calendar-css.d.ts +0 -0
- /package/components/datepicker/dist/{src/styles → styles}/color-cell-css.d.ts +0 -0
- /package/components/datepicker/dist/{src/styles → styles}/color-css.d.ts +0 -0
- /package/components/datepicker/dist/{src/styles → styles}/color-month-css.d.ts +0 -0
- /package/components/datepicker/dist/{src/styles → styles}/shapeSize-css.d.ts +0 -0
- /package/components/datepicker/dist/{src/styles → styles}/snowflake/color-css.d.ts +0 -0
- /package/components/datepicker/dist/{src/styles → styles}/snowflake/style-css.d.ts +0 -0
- /package/components/datepicker/dist/{src/styles → styles}/style-auro-calendar-cell-css.d.ts +0 -0
- /package/components/datepicker/dist/{src/styles → styles}/style-auro-calendar-css.d.ts +0 -0
- /package/components/datepicker/dist/{src/styles → styles}/style-auro-calendar-month-css.d.ts +0 -0
- /package/components/datepicker/dist/{src/styles → styles}/style-css.d.ts +0 -0
- /package/components/datepicker/dist/{src/styles → styles}/tokens-css.d.ts +0 -0
- /package/components/datepicker/dist/{src/utilities.d.ts → utilities.d.ts} +0 -0
- /package/components/datepicker/dist/{src/utilitiesCalendar.d.ts → utilitiesCalendar.d.ts} +0 -0
- /package/components/datepicker/dist/{src/utilitiesCalendarRender.d.ts → utilitiesCalendarRender.d.ts} +0 -0
- /package/components/datepicker/dist/{src/vendor → vendor}/wc-range-datepicker/day.d.ts +0 -0
- /package/components/datepicker/dist/{src/vendor → vendor}/wc-range-datepicker/range-datepicker-calendar.d.ts +0 -0
- /package/components/datepicker/dist/{src/vendor → vendor}/wc-range-datepicker/range-datepicker-cell.d.ts +0 -0
- /package/components/datepicker/dist/{src/vendor → vendor}/wc-range-datepicker/range-datepicker.d.ts +0 -0
|
@@ -640,15 +640,17 @@ let AuroFormValidation$1 = class AuroFormValidation {
|
|
|
640
640
|
);
|
|
641
641
|
}
|
|
642
642
|
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
643
|
+
const isCombobox = this.runtimeUtils.elementMatch(elem, 'auro-combobox');
|
|
644
|
+
|
|
645
|
+
// If there is a second input in the elem and that value is undefined or an empty string set hasValue to false.
|
|
646
|
+
// Skip for combobox: its second auro-input is the fullscreen-bib mirror of the same value, not an independent
|
|
647
|
+
// field (datepicker is the intended consumer — start/end are independently required).
|
|
648
|
+
if (this.auroInputElements?.length === 2 && !isCombobox) {
|
|
649
|
+
if (!this.auroInputElements[1].value || this.auroInputElements[1].value.length === 0) {
|
|
646
650
|
hasValue = false;
|
|
647
651
|
}
|
|
648
652
|
}
|
|
649
653
|
|
|
650
|
-
const isCombobox = this.runtimeUtils.elementMatch(elem, 'auro-combobox');
|
|
651
|
-
|
|
652
654
|
if (isCombobox) {
|
|
653
655
|
|
|
654
656
|
if (!elem.persistInput || elem.behavior === "filter") {
|
|
@@ -1356,7 +1358,7 @@ function normalizeDates$1(context, ...dates) {
|
|
|
1356
1358
|
* const result = startOfDay(new Date(2014, 8, 2, 11, 55, 0))
|
|
1357
1359
|
* //=> Tue Sep 02 2014 00:00:00
|
|
1358
1360
|
*/
|
|
1359
|
-
function startOfDay$
|
|
1361
|
+
function startOfDay$1(date, options) {
|
|
1360
1362
|
const _date = toDate$1(date, options?.in);
|
|
1361
1363
|
_date.setHours(0, 0, 0, 0);
|
|
1362
1364
|
return _date;
|
|
@@ -1404,8 +1406,8 @@ function differenceInCalendarDays$1(laterDate, earlierDate, options) {
|
|
|
1404
1406
|
earlierDate,
|
|
1405
1407
|
);
|
|
1406
1408
|
|
|
1407
|
-
const laterStartOfDay = startOfDay$
|
|
1408
|
-
const earlierStartOfDay = startOfDay$
|
|
1409
|
+
const laterStartOfDay = startOfDay$1(laterDate_);
|
|
1410
|
+
const earlierStartOfDay = startOfDay$1(earlierDate_);
|
|
1409
1411
|
|
|
1410
1412
|
const laterTimestamp =
|
|
1411
1413
|
+laterStartOfDay - getTimezoneOffsetInMilliseconds$1(laterStartOfDay);
|
|
@@ -10507,6 +10509,13 @@ let AuroInputUtilities$1 = class AuroInputUtilities {
|
|
|
10507
10509
|
* @returns {string | undefined}
|
|
10508
10510
|
*/
|
|
10509
10511
|
toFormattedValue(valueObject, format) {
|
|
10512
|
+
// Exposed publicly via `AuroInputUtil.toFormattedValue`, so a missing
|
|
10513
|
+
// `format` argument has to fail gracefully rather than throw on
|
|
10514
|
+
// `format.toLowerCase()`. Treat any falsy value (undefined, null, '')
|
|
10515
|
+
// as "no format → no display value".
|
|
10516
|
+
if (!format) {
|
|
10517
|
+
return undefined;
|
|
10518
|
+
}
|
|
10510
10519
|
const normalizedFormat = format.toLowerCase();
|
|
10511
10520
|
const maskOptions = this.getMaskOptions('date', normalizedFormat);
|
|
10512
10521
|
|
|
@@ -10767,11 +10776,11 @@ var snowflakeStyle = css`:host([layout*=snowflake]) [auro-input]{flex:1;text-ali
|
|
|
10767
10776
|
|
|
10768
10777
|
var snowflakeColors = css`:host([layout=snowflake]) [auro-dropdown]:not(:is([error],.hasFocus)){--ds-auro-dropdown-trigger-border-color: transparent}`;
|
|
10769
10778
|
|
|
10770
|
-
var styleCss$7 = css`.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}`;
|
|
10779
|
+
var styleCss$7 = css`.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%}: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}`;
|
|
10771
10780
|
|
|
10772
|
-
var colorCss$7 = css`.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)}}`;
|
|
10781
|
+
var colorCss$7 = css`.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-visible{--ds-auro-calendar-nav-btn-border-color: var(--ds-basic-color-brand-primary, #01426a);outline:2px solid var(--ds-basic-color-brand-primary, #01426a);outline-offset:-2px}.calendarNavBtn:active{--ds-auro-calendar-nav-btn-border-color: var(--ds-basic-color-brand-primary, #01426a);outline:2px solid var(--ds-basic-color-brand-primary, #01426a);outline-offset:-2px;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)}}`;
|
|
10773
10782
|
|
|
10774
|
-
var styleCss$6 = css`: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:376px}}.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)}`;
|
|
10783
|
+
var styleCss$6 = css`: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:336px;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:376px}}.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)}`;
|
|
10775
10784
|
|
|
10776
10785
|
var colorCss$6 = css`: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)}`;
|
|
10777
10786
|
|
|
@@ -10863,8 +10872,8 @@ class RangeDatepickerCell extends LitElement {
|
|
|
10863
10872
|
const parsedDateFrom = parseInt(dateFrom, 10);
|
|
10864
10873
|
const parsedDateTo = parseInt(dateTo, 10);
|
|
10865
10874
|
if (day) {
|
|
10866
|
-
if (getTime(startOfDay$
|
|
10867
|
-
getTime(startOfDay$
|
|
10875
|
+
if (getTime(startOfDay$1(parsedDateTo * 1000)) / 1000 === day.date ||
|
|
10876
|
+
getTime(startOfDay$1(parsedDateFrom * 1000)) / 1000 === day.date) {
|
|
10868
10877
|
this.selected = true;
|
|
10869
10878
|
}
|
|
10870
10879
|
if (((hoveredDate === day.date || day.date < hoveredDate) &&
|
|
@@ -11052,7 +11061,7 @@ class RangeDatepickerCalendar extends LitElement {
|
|
|
11052
11061
|
this.dayNamesOfTheWeek = [];
|
|
11053
11062
|
this.daysOfMonth = [];
|
|
11054
11063
|
this._locale = null;
|
|
11055
|
-
this.currentDate = parseInt(format$1(startOfDay$
|
|
11064
|
+
this.currentDate = parseInt(format$1(startOfDay$1(Date.now()), 't'), 10);
|
|
11056
11065
|
this.localeChanged();
|
|
11057
11066
|
this.yearAndMonthChanged(this.year, this.month);
|
|
11058
11067
|
}
|
|
@@ -11526,7 +11535,7 @@ __decorate([property({ type: Array })], RangeDatepickerCalendar.prototype, "dayN
|
|
|
11526
11535
|
__decorate([property({ type: Array })], RangeDatepickerCalendar.prototype, "daysOfMonth", void 0);
|
|
11527
11536
|
AuroLibraryRuntimeUtils$5.prototype.registerComponent('wc-range-datepicker-calendar', RangeDatepickerCalendar);
|
|
11528
11537
|
|
|
11529
|
-
var styleCss$5 = css`.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}`;
|
|
11538
|
+
var styleCss$5 = css`.body-default{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-default-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-default-font-size, 1rem);line-height:var(--wcss-body-default-line-height, 1.5rem)}.body-default-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-default-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-default-emphasized-font-size, 1rem);line-height:var(--wcss-body-default-emphasized-line-height, 1.5rem)}.body-lg{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-lg-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-lg-font-size, 1.125rem);line-height:var(--wcss-body-lg-line-height, 1.625rem)}.body-lg-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-lg-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-lg-emphasized-font-size, 1.125rem);line-height:var(--wcss-body-lg-emphasized-line-height, 1.625rem)}.body-sm{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-sm-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-sm-font-size, 0.875rem);line-height:var(--wcss-body-sm-line-height, 1.25rem)}.body-sm-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-sm-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-sm-emphasized-font-size, 0.875rem);line-height:var(--wcss-body-sm-emphasized-line-height, 1.25rem)}.body-xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-xs-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-xs-font-size, 0.75rem);line-height:var(--wcss-body-xs-line-height, 1rem)}.body-xs-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-xs-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-xs-emphasized-font-size, 0.75rem);line-height:var(--wcss-body-xs-emphasized-line-height, 1rem)}.body-2xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-2xs-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-2xs-font-size, 0.625rem);line-height:var(--wcss-body-2xs-line-height, 0.875rem)}.body-2xs-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-2xs-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-2xs-emphasized-font-size, 0.625rem);line-height:var(--wcss-body-2xs-emphasized-line-height, 0.875rem)}.display-2xl{font-family:var(--wcss-display-2xl-family, "AS Circular"),var(--wcss-display-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-2xl-weight, 300);line-height:var(--wcss-display-2xl-line-height, 1.3);font-size:var(--wcss-display-2xl-font-size, clamp(3.5rem, 6vw, 5.375rem));letter-spacing:var(--wcss-display-2xl-letter-spacing, 0)}.display-xl{font-family:var(--wcss-display-xl-family, "AS Circular"),var(--wcss-display-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-xl-weight, 300);line-height:var(--wcss-display-xl-line-height, 1.3);font-size:var(--wcss-display-xl-font-size, clamp(3rem, 5.3333333333vw, 4.5rem));letter-spacing:var(--wcss-display-xl-letter-spacing, 0)}.display-lg{font-family:var(--wcss-display-lg-family, "AS Circular"),var(--wcss-display-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-lg-weight, 300);line-height:var(--wcss-display-lg-line-height, 1.3);font-size:var(--wcss-display-lg-font-size, clamp(2.75rem, 4.6666666667vw, 4rem));letter-spacing:var(--wcss-display-lg-letter-spacing, 0)}.display-md{font-family:var(--wcss-display-md-family, "AS Circular"),var(--wcss-display-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-md-weight, 300);line-height:var(--wcss-display-md-line-height, 1.3);font-size:var(--wcss-display-md-font-size, clamp(2.5rem, 4vw, 3.5rem));letter-spacing:var(--wcss-display-md-letter-spacing, 0)}.display-sm{font-family:var(--wcss-display-sm-family, "AS Circular"),var(--wcss-display-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-sm-weight, 300);line-height:var(--wcss-display-sm-line-height, 1.3);font-size:var(--wcss-display-sm-font-size, clamp(2rem, 3.6666666667vw, 3rem));letter-spacing:var(--wcss-display-sm-letter-spacing, 0)}.display-xs{font-family:var(--wcss-display-xs-family, "AS Circular"),var(--wcss-display-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-xs-weight, 300);line-height:var(--wcss-display-xs-line-height, 1.3);font-size:var(--wcss-display-xs-font-size, clamp(1.75rem, 3vw, 2.375rem));letter-spacing:var(--wcss-display-xs-letter-spacing, 0)}.heading-xl{font-family:var(--wcss-heading-xl-family, "AS Circular"),var(--wcss-heading-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-xl-weight, 300);line-height:var(--wcss-heading-xl-line-height, 1.3);font-size:var(--wcss-heading-xl-font-size, clamp(2rem, 3vw, 2.5rem));letter-spacing:var(--wcss-heading-xl-letter-spacing, 0)}.heading-lg{font-family:var(--wcss-heading-lg-family, "AS Circular"),var(--wcss-heading-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-lg-weight, 300);line-height:var(--wcss-heading-lg-line-height, 1.3);font-size:var(--wcss-heading-lg-font-size, clamp(1.75rem, 2.6666666667vw, 2.25rem));letter-spacing:var(--wcss-heading-lg-letter-spacing, 0)}.heading-md{font-family:var(--wcss-heading-md-family, "AS Circular"),var(--wcss-heading-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-md-weight, 300);line-height:var(--wcss-heading-md-line-height, 1.3);font-size:var(--wcss-heading-md-font-size, clamp(1.625rem, 2.3333333333vw, 1.75rem));letter-spacing:var(--wcss-heading-md-letter-spacing, 0)}.heading-sm{font-family:var(--wcss-heading-sm-family, "AS Circular"),var(--wcss-heading-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-sm-weight, 300);line-height:var(--wcss-heading-sm-line-height, 1.3);font-size:var(--wcss-heading-sm-font-size, clamp(1.375rem, 2vw, 1.5rem));letter-spacing:var(--wcss-heading-sm-letter-spacing, 0)}.heading-xs{font-family:var(--wcss-heading-xs-family, "AS Circular"),var(--wcss-heading-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-xs-weight, 300);line-height:var(--wcss-heading-xs-line-height, 1.3);font-size:var(--wcss-heading-xs-font-size, clamp(1.25rem, 1.6666666667vw, 1.25rem));letter-spacing:var(--wcss-heading-xs-letter-spacing, 0)}.heading-2xs{font-family:var(--wcss-heading-2xs-family, "AS Circular"),var(--wcss-heading-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-2xs-weight, 300);line-height:var(--wcss-heading-2xs-line-height, 1.3);font-size:var(--wcss-heading-2xs-font-size, clamp(1.125rem, 1.5vw, 1.125rem));letter-spacing:var(--wcss-heading-2xs-letter-spacing, 0)}.accent-2xl{font-family:var(--wcss-accent-2xl-family, "Good OT"),var(--wcss-accent-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-2xl-weight, 450);line-height:var(--wcss-accent-2xl-line-height, 1);font-size:var(--wcss-accent-2xl-font-size, clamp(2rem, 3.1666666667vw, 2.375rem));letter-spacing:var(--wcss-accent-2xl-letter-spacing, 0.05em);text-transform:uppercase}.accent-xl{font-family:var(--wcss-accent-xl-family, "Good OT"),var(--wcss-accent-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-xl-weight, 450);line-height:var(--wcss-accent-xl-line-height, 1.3);font-size:var(--wcss-accent-xl-font-size, clamp(1.625rem, 2.3333333333vw, 2rem));letter-spacing:var(--wcss-accent-xl-letter-spacing, 0.05em);text-transform:uppercase}.accent-lg{font-family:var(--wcss-accent-lg-family, "Good OT"),var(--wcss-accent-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-lg-weight, 450);line-height:var(--wcss-accent-lg-line-height, 1.3);font-size:var(--wcss-accent-lg-font-size, clamp(1.5rem, 2.1666666667vw, 1.75rem));letter-spacing:var(--wcss-accent-lg-letter-spacing, 0.05em);text-transform:uppercase}.accent-md{font-family:var(--wcss-accent-md-family, "Good OT"),var(--wcss-accent-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-md-weight, 500);line-height:var(--wcss-accent-md-line-height, 1.3);font-size:var(--wcss-accent-md-font-size, clamp(1.375rem, 1.8333333333vw, 1.5rem));letter-spacing:var(--wcss-accent-md-letter-spacing, 0.05em);text-transform:uppercase}.accent-sm{font-family:var(--wcss-accent-sm-family, "Good OT"),var(--wcss-accent-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-sm-weight, 500);line-height:var(--wcss-accent-sm-line-height, 1.3);font-size:var(--wcss-accent-sm-font-size, clamp(1.125rem, 1.5vw, 1.25rem));letter-spacing:var(--wcss-accent-sm-letter-spacing, 0.05em);text-transform:uppercase}.accent-xs{font-family:var(--wcss-accent-xs-family, "Good OT"),var(--wcss-accent-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-xs-weight, 500);line-height:var(--wcss-accent-xs-line-height, 1.3);font-size:var(--wcss-accent-xs-font-size, clamp(1rem, 1.3333333333vw, 1rem));letter-spacing:var(--wcss-accent-xs-letter-spacing, 0.1em);text-transform:uppercase}.accent-2xs{font-family:var(--wcss-accent-2xs-family, "Good OT"),var(--wcss-accent-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-2xs-weight, 450);line-height:var(--wcss-accent-2xs-line-height, 1.3);font-size:var(--wcss-accent-2xs-font-size, clamp(0.875rem, 1.1666666667vw, 0.875rem));letter-spacing:var(--wcss-accent-2xs-letter-spacing, 0.1em);text-transform:uppercase}@media screen and (max-width: 576px){:host{display:flex;justify-content:center}}.day{position:relative;width:48px;height:56px;padding:0;border-width:2px;border-style:solid;border-radius:10px;cursor:pointer;user-select:none}.day:focus-visible{outline:none;background-color:unset}.day.activeCell{outline-width:2px;outline-style:solid;outline-offset:-4px}.day.disabled{cursor:default !important;pointer-events:none}.day.blackout{cursor:pointer}.day.reference:after{position:absolute;top:-2px;left:-2px;display:block;width:calc(100% + 2px);height:calc(100% + 2px);box-sizing:content-box;border-radius:10px;border-style:solid;border-width:1px;content:""}.day.inRange::before{position:absolute;z-index:-1;top:-2px;left:-2px;display:block;width:calc(100% + 4px);height:calc(100% + 4px);box-sizing:content-box;content:""}.day.rangeDepartDate::before{position:absolute;z-index:-1;top:-2px;left:-2px;display:block;width:calc(100% + 4px);height:calc(100% + 4px);box-sizing:content-box;content:"";border-radius:10px 0 0 10px;overflow:hidden}.day.rangeReturnDate::before,.day.lastHoveredDate::before{position:absolute;z-index:-1;top:-2px;left:-2px;display:block;width:calc(100% + 4px);height:calc(100% + 4px);box-sizing:content-box;content:"";border-radius:0 10px 10px 0;overflow:hidden}.day.rangeDepartDate.lastHoveredDate::before{border-radius:10px}.day.firstDayOfMonth::before{border-radius:10px 0 0 10px;overflow:hidden}.day.lastDayOfMonth::before{border-radius:0 10px 10px 0;overflow:hidden}.buttonWrapper{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%}.dateSlot{display:block}::slotted([slot^=date_]){width:100%;white-space:nowrap}::slotted(auro-icon){max-height:24px;max-width:24px}:host([renderForDateSlot]) .buttonWrapper{position:relative;width:100%;height:100%}:host([renderForDateSlot]) .currentDayMarker{position:relative}`;
|
|
11530
11539
|
|
|
11531
11540
|
var colorCss$5 = css`: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}`;
|
|
11532
11541
|
|
|
@@ -11551,13 +11560,103 @@ class s{registerComponent(e,t){customElements.get(e)||customElements.define(e,cl
|
|
|
11551
11560
|
|
|
11552
11561
|
var popoverVersion = '6.0.1';
|
|
11553
11562
|
|
|
11554
|
-
|
|
11563
|
+
/**
|
|
11564
|
+
* Single source of truth for parsing and matching blackout dates across the
|
|
11565
|
+
* datepicker. Both `auro-calendar` (memoized Set + `isDateBlackout`) and the
|
|
11566
|
+
* pre-`firstUpdated` fallback inside `auro-calendar-cell` route through these
|
|
11567
|
+
* helpers so the YYYY-MM-DD → seconds conversion and the merge-with-legacy
|
|
11568
|
+
* `disabledDays` rules are defined exactly once.
|
|
11569
|
+
*/
|
|
11555
11570
|
|
|
11556
|
-
|
|
11557
|
-
|
|
11558
|
-
|
|
11559
|
-
|
|
11560
|
-
|
|
11571
|
+
/**
|
|
11572
|
+
* Converts a `YYYY-MM-DD` ISO date string to a Unix timestamp (seconds)
|
|
11573
|
+
* representing local midnight on that calendar day. Returns `null` for
|
|
11574
|
+
* inputs that don't parse to a finite timestamp.
|
|
11575
|
+
*
|
|
11576
|
+
* Uses the `new Date(year, monthIndex, day)` constructor (NOT
|
|
11577
|
+
* `new Date(isoStr)`) so the result is local-midnight rather than UTC
|
|
11578
|
+
* midnight — required to keep the calendar grid aligned with the user's
|
|
11579
|
+
* local calendar day in negative-offset timezones.
|
|
11580
|
+
*
|
|
11581
|
+
* @param {string} isoStr - Date string in `YYYY-MM-DD` format.
|
|
11582
|
+
* @returns {number|null} Local-midnight Unix timestamp (seconds), or null.
|
|
11583
|
+
*/
|
|
11584
|
+
function parseIsoToTimestamp(isoStr) {
|
|
11585
|
+
if (typeof isoStr !== 'string') {
|
|
11586
|
+
return null;
|
|
11587
|
+
}
|
|
11588
|
+
const parts = isoStr.split('-');
|
|
11589
|
+
if (parts.length !== 3) {
|
|
11590
|
+
return null;
|
|
11591
|
+
}
|
|
11592
|
+
const year = parseInt(parts[0], 10);
|
|
11593
|
+
const month = parseInt(parts[1], 10);
|
|
11594
|
+
const day = parseInt(parts[2], 10);
|
|
11595
|
+
if (!Number.isFinite(year) || !Number.isFinite(month) || !Number.isFinite(day)) {
|
|
11596
|
+
return null;
|
|
11597
|
+
}
|
|
11598
|
+
// Reject overflow values like "2024-13-40" — JS `new Date(year, month, day)`
|
|
11599
|
+
// silently normalizes those to a different calendar day, which would
|
|
11600
|
+
// disable the wrong date if we let the result through.
|
|
11601
|
+
if (month < 1 || month > 12 || day < 1 || day > 31) {
|
|
11602
|
+
return null;
|
|
11603
|
+
}
|
|
11604
|
+
const date = new Date(year, month - 1, day);
|
|
11605
|
+
// Guard the residual case where JS still rolls a value (e.g. Feb 30 → Mar 2).
|
|
11606
|
+
// After construction, getFullYear/getMonth/getDate should match the inputs.
|
|
11607
|
+
if (date.getFullYear() !== year || date.getMonth() !== month - 1 || date.getDate() !== day) {
|
|
11608
|
+
return null;
|
|
11609
|
+
}
|
|
11610
|
+
const ts = Math.floor(date.getTime() / 1000);
|
|
11611
|
+
return Number.isFinite(ts) ? ts : null;
|
|
11612
|
+
}
|
|
11613
|
+
|
|
11614
|
+
/**
|
|
11615
|
+
* Builds a `Set<number>` of seconds-since-epoch timestamps covering both the
|
|
11616
|
+
* legacy `disabledDays` (already-numeric) array and the ISO `blackoutDates`
|
|
11617
|
+
* array. Use this for O(1) membership checks in hot paths.
|
|
11618
|
+
*
|
|
11619
|
+
* @param {Array<string|number>|undefined} disabledDays - Legacy timestamp array.
|
|
11620
|
+
* @param {Array<string>|undefined} blackoutDates - ISO `YYYY-MM-DD` array.
|
|
11621
|
+
* @returns {Set<number>}
|
|
11622
|
+
*/
|
|
11623
|
+
function buildBlackoutSet(disabledDays, blackoutDates) {
|
|
11624
|
+
const set = new Set();
|
|
11625
|
+
if (Array.isArray(disabledDays)) {
|
|
11626
|
+
for (const day of disabledDays) {
|
|
11627
|
+
const ts = parseInt(day, 10);
|
|
11628
|
+
if (Number.isFinite(ts)) {
|
|
11629
|
+
set.add(ts);
|
|
11630
|
+
}
|
|
11631
|
+
}
|
|
11632
|
+
}
|
|
11633
|
+
if (Array.isArray(blackoutDates)) {
|
|
11634
|
+
for (const isoStr of blackoutDates) {
|
|
11635
|
+
const ts = parseIsoToTimestamp(isoStr);
|
|
11636
|
+
if (ts !== null) {
|
|
11637
|
+
set.add(ts);
|
|
11638
|
+
}
|
|
11639
|
+
}
|
|
11640
|
+
}
|
|
11641
|
+
return set;
|
|
11642
|
+
}
|
|
11643
|
+
|
|
11644
|
+
/**
|
|
11645
|
+
* One-shot membership test for a single timestamp against both blackout
|
|
11646
|
+
* sources. Allocates a Set on each call; only use this in cold paths
|
|
11647
|
+
* (e.g. the pre-`firstUpdated` cell fallback). Hot paths should hold the
|
|
11648
|
+
* Set returned from `buildBlackoutSet` and `.has(ts)` directly.
|
|
11649
|
+
*
|
|
11650
|
+
* @param {number} dateTs - Unix timestamp (seconds) to test.
|
|
11651
|
+
* @param {Array<string|number>|undefined} disabledDays - Legacy timestamp array.
|
|
11652
|
+
* @param {Array<string>|undefined} blackoutDates - ISO `YYYY-MM-DD` array.
|
|
11653
|
+
* @returns {boolean}
|
|
11654
|
+
*/
|
|
11655
|
+
function isBlackoutTimestamp(dateTs, disabledDays, blackoutDates) {
|
|
11656
|
+
return buildBlackoutSet(disabledDays, blackoutDates).has(dateTs);
|
|
11657
|
+
}
|
|
11658
|
+
|
|
11659
|
+
/* 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 */
|
|
11561
11660
|
|
|
11562
11661
|
class AuroCalendarCell extends LitElement {
|
|
11563
11662
|
constructor() {
|
|
@@ -11605,6 +11704,14 @@ class AuroCalendarCell extends LitElement {
|
|
|
11605
11704
|
type: Boolean,
|
|
11606
11705
|
reflect: true
|
|
11607
11706
|
},
|
|
11707
|
+
/**
|
|
11708
|
+
* @deprecated Propagated from the legacy `auro-calendar.disabledDays`
|
|
11709
|
+
* Unix-timestamp array. The cell honors it for backward compatibility
|
|
11710
|
+
* (see the divergence-check fallback inside `isBlackout`), but
|
|
11711
|
+
* consumers should migrate to `auro-datepicker.blackoutDates`
|
|
11712
|
+
* (YYYY-MM-DD ISO strings). The calendar emits a one-time
|
|
11713
|
+
* deprecation warning the first time a non-empty value is observed.
|
|
11714
|
+
*/
|
|
11608
11715
|
disabledDays: { type: Array },
|
|
11609
11716
|
isCurrentDate: { type: Boolean },
|
|
11610
11717
|
locale: { type: String },
|
|
@@ -11650,8 +11757,8 @@ class AuroCalendarCell extends LitElement {
|
|
|
11650
11757
|
const parsedDateTo = parseInt(dateTo, 10);
|
|
11651
11758
|
|
|
11652
11759
|
if (day) {
|
|
11653
|
-
const departTimestamp =
|
|
11654
|
-
const returnTimestamp =
|
|
11760
|
+
const departTimestamp = new Date(parsedDateFrom * 1000).setHours(0, 0, 0, 0) / 1000;
|
|
11761
|
+
const returnTimestamp = new Date(parsedDateTo * 1000).setHours(0, 0, 0, 0) / 1000;
|
|
11655
11762
|
|
|
11656
11763
|
if (day.date === departTimestamp || day.date === returnTimestamp) {
|
|
11657
11764
|
this.selected = true;
|
|
@@ -11735,27 +11842,33 @@ class AuroCalendarCell extends LitElement {
|
|
|
11735
11842
|
return false;
|
|
11736
11843
|
}
|
|
11737
11844
|
|
|
11738
|
-
//
|
|
11739
|
-
|
|
11740
|
-
|
|
11741
|
-
|
|
11742
|
-
|
|
11743
|
-
|
|
11744
|
-
// Check against blackoutDates (ISO format YYYY-MM-DD) on the datepicker
|
|
11745
|
-
const blackoutDates = this.datepicker?.blackoutDates;
|
|
11746
|
-
|
|
11747
|
-
if (Array.isArray(blackoutDates) && blackoutDates.length > 0) {
|
|
11748
|
-
const date = new Date(this.day.date * 1000);
|
|
11749
|
-
const yyyy = date.getFullYear();
|
|
11750
|
-
const mm = String(date.getMonth() + 1).padStart(2, '0');
|
|
11751
|
-
const dd = String(date.getDate()).padStart(2, '0');
|
|
11752
|
-
const cellDate = `${yyyy}-${mm}-${dd}`;
|
|
11753
|
-
if (blackoutDates.includes(cellDate)) {
|
|
11845
|
+
// Delegate to the calendar's memoized blackout Set for O(1) lookup
|
|
11846
|
+
// (instead of rescanning disabledDays + blackoutDates per render). The
|
|
11847
|
+
// Set is rebuilt only when either source array reference changes — see
|
|
11848
|
+
// auro-calendar.js#_getBlackoutSet.
|
|
11849
|
+
if (this.calendar && typeof this.calendar._getBlackoutSet === 'function') {
|
|
11850
|
+
if (this.calendar._getBlackoutSet().has(this.day.date)) {
|
|
11754
11851
|
return true;
|
|
11755
11852
|
}
|
|
11853
|
+
// If the cell's local disabledDays diverged from the calendar's (a
|
|
11854
|
+
// consumer or test mutated cell.disabledDays directly), the Set does
|
|
11855
|
+
// not reflect that addition — fall through to the per-cell scan only
|
|
11856
|
+
// when the reference no longer matches. Production data flow keeps
|
|
11857
|
+
// these identical, so this branch stays cold. Guarded with
|
|
11858
|
+
// Array.isArray to match `_getBlackoutSet`'s contract: non-array
|
|
11859
|
+
// values are treated as empty rather than crashing on `.findIndex`.
|
|
11860
|
+
if (Array.isArray(this.disabledDays) && this.disabledDays !== this.calendar.disabledDays && this.disabledDays.length > 0) {
|
|
11861
|
+
if (this.disabledDays.findIndex((dd) => parseInt(dd, 10) === this.day.date) !== -1) {
|
|
11862
|
+
return true;
|
|
11863
|
+
}
|
|
11864
|
+
}
|
|
11865
|
+
return false;
|
|
11756
11866
|
}
|
|
11757
11867
|
|
|
11758
|
-
|
|
11868
|
+
// Pre-firstUpdated fallback — the cell may render once before the
|
|
11869
|
+
// ancestor calendar is wired up. Routes through the shared
|
|
11870
|
+
// blackoutUtils helper so the parsing rules stay in one place.
|
|
11871
|
+
return isBlackoutTimestamp(this.day.date, this.disabledDays, this.datepicker?.blackoutDates);
|
|
11759
11872
|
}
|
|
11760
11873
|
|
|
11761
11874
|
/**
|
|
@@ -11861,12 +11974,12 @@ class AuroCalendarCell extends LitElement {
|
|
|
11861
11974
|
const parsedDateFrom = Number.parseInt(this.dateFrom, 10);
|
|
11862
11975
|
if (!Number.isFinite(parsedDateFrom)) return null;
|
|
11863
11976
|
|
|
11864
|
-
const departTimestamp =
|
|
11977
|
+
const departTimestamp = new Date(parsedDateFrom * 1000).setHours(0, 0, 0, 0) / 1000;
|
|
11865
11978
|
const dayDate = this.day.date;
|
|
11866
11979
|
|
|
11867
11980
|
const parsedDateTo = Number.parseInt(this.dateTo, 10);
|
|
11868
11981
|
const hasDateTo = Number.isFinite(parsedDateTo);
|
|
11869
|
-
const returnTimestamp = hasDateTo ?
|
|
11982
|
+
const returnTimestamp = hasDateTo ? new Date(parsedDateTo * 1000).setHours(0, 0, 0, 0) / 1000 : null;
|
|
11870
11983
|
|
|
11871
11984
|
if (dayDate === departTimestamp) return this.datepicker.rangeLabelStart || 'range start';
|
|
11872
11985
|
|
|
@@ -11876,7 +11989,9 @@ class AuroCalendarCell extends LitElement {
|
|
|
11876
11989
|
|
|
11877
11990
|
if (hasDateTo && dayDate > departTimestamp && dayDate < returnTimestamp) return this.datepicker.rangeLabelInRange || 'in range';
|
|
11878
11991
|
|
|
11879
|
-
|
|
11992
|
+
if (!hasDateTo && dayDate > departTimestamp) return this.datepicker.rangeLabelEndPreview || 'previewing range end';
|
|
11993
|
+
|
|
11994
|
+
// After end date when both dateFrom and dateTo are set.
|
|
11880
11995
|
return this.datepicker.rangeLabelAfterRange || 'after range';
|
|
11881
11996
|
}
|
|
11882
11997
|
|
|
@@ -11889,7 +12004,7 @@ class AuroCalendarCell extends LitElement {
|
|
|
11889
12004
|
*/
|
|
11890
12005
|
isDepartDate(day, dateFrom) {
|
|
11891
12006
|
const parsedDateFrom = parseInt(dateFrom, 10);
|
|
11892
|
-
const departTimestamp =
|
|
12007
|
+
const departTimestamp = new Date(parsedDateFrom * 1000).setHours(0, 0, 0, 0) / 1000;
|
|
11893
12008
|
|
|
11894
12009
|
return this.selected && day.date === departTimestamp;
|
|
11895
12010
|
}
|
|
@@ -11904,7 +12019,7 @@ class AuroCalendarCell extends LitElement {
|
|
|
11904
12019
|
*/
|
|
11905
12020
|
isReturnDate(day, dateFrom, dateTo) {
|
|
11906
12021
|
const parsedDateTo = parseInt(dateTo, 10);
|
|
11907
|
-
const returnTimestamp =
|
|
12022
|
+
const returnTimestamp = new Date(parsedDateTo * 1000).setHours(0, 0, 0, 0) / 1000;
|
|
11908
12023
|
|
|
11909
12024
|
return this.selected && day.date === returnTimestamp && dateFrom;
|
|
11910
12025
|
}
|
|
@@ -12068,6 +12183,7 @@ class AuroCalendarCell extends LitElement {
|
|
|
12068
12183
|
setTimeout(() => this.firstUpdated(), 0);
|
|
12069
12184
|
return;
|
|
12070
12185
|
}
|
|
12186
|
+
this.calendar = calendar;
|
|
12071
12187
|
this.datepicker = calendar.datepicker;
|
|
12072
12188
|
this._slotContentHandler = () => {
|
|
12073
12189
|
this.handleSlotContent();
|
|
@@ -12125,15 +12241,28 @@ class AuroCalendarCell extends LitElement {
|
|
|
12125
12241
|
this._cachedButton = this.shadowRoot.querySelector('button.day');
|
|
12126
12242
|
});
|
|
12127
12243
|
|
|
12128
|
-
//
|
|
12244
|
+
// Keep the host's gridcell aria attributes in sync with the day data.
|
|
12129
12245
|
this.updateHostAria();
|
|
12130
12246
|
}
|
|
12131
12247
|
|
|
12132
12248
|
// Update host aria when selection changes (aria-selected, range labels)
|
|
12133
|
-
|
|
12249
|
+
// or when isCurrentDate flips (aria-current).
|
|
12250
|
+
if (properties.has('dateFrom') || properties.has('dateTo') || properties.has('selected') || properties.has('isCurrentDate')) {
|
|
12134
12251
|
this.updateHostAria();
|
|
12135
12252
|
}
|
|
12136
12253
|
|
|
12254
|
+
// When the rendered range shifts (month nav, min/max change), a cell
|
|
12255
|
+
// host may be re-rendered for a new date that is now out-of-range —
|
|
12256
|
+
// but its imperatively-set `active` flag and `activeCell` ring class
|
|
12257
|
+
// from the previous date persist because setActiveCell only iterates
|
|
12258
|
+
// focusable (in-range) cells when clearing the prior active state.
|
|
12259
|
+
// Drop the active state here so the disabled cell isn't left visually
|
|
12260
|
+
// ringed.
|
|
12261
|
+
if ((properties.has('day') || properties.has('min') || properties.has('max')) &&
|
|
12262
|
+
this.active && this.isOutOfRange(this.day, this.min, this.max)) {
|
|
12263
|
+
this.clearActive();
|
|
12264
|
+
}
|
|
12265
|
+
|
|
12137
12266
|
// Configure popover when it first becomes rendered
|
|
12138
12267
|
if (properties.has('hasPopoverContent') && this.hasPopoverContent) {
|
|
12139
12268
|
this.updateComplete.then(() => this.configurePopover());
|
|
@@ -12141,8 +12270,8 @@ class AuroCalendarCell extends LitElement {
|
|
|
12141
12270
|
}
|
|
12142
12271
|
|
|
12143
12272
|
/**
|
|
12144
|
-
*
|
|
12145
|
-
*
|
|
12273
|
+
* Sets host-level ARIA so each cell exposes its date, selection state,
|
|
12274
|
+
* and blackout status to assistive tech browsing the month grid.
|
|
12146
12275
|
* @private
|
|
12147
12276
|
* @returns {void}
|
|
12148
12277
|
*/
|
|
@@ -12151,16 +12280,27 @@ class AuroCalendarCell extends LitElement {
|
|
|
12151
12280
|
|
|
12152
12281
|
const outOfRange = this.isOutOfRange(this.day, this.min, this.max);
|
|
12153
12282
|
if (outOfRange) {
|
|
12283
|
+
// Strip every aria attribute the in-range branch may have set on a
|
|
12284
|
+
// previous render — if a cell flips from in-range to out-of-range
|
|
12285
|
+
// (calendar shifts months, minDate/maxDate change, etc.).
|
|
12154
12286
|
this.removeAttribute('role');
|
|
12155
12287
|
this.removeAttribute('aria-label');
|
|
12288
|
+
this.removeAttribute('aria-current');
|
|
12289
|
+
this.removeAttribute('aria-selected');
|
|
12290
|
+
this.removeAttribute('aria-disabled');
|
|
12156
12291
|
return;
|
|
12157
12292
|
}
|
|
12158
12293
|
|
|
12159
|
-
// The host acts as the gridcell for ariaActiveDescendantElement.
|
|
12160
12294
|
this.setAttribute('role', 'gridcell');
|
|
12161
12295
|
this.setAttribute('aria-label', this.getAriaLabel());
|
|
12162
12296
|
this.setAttribute('aria-selected', this.selected ? 'true' : 'false');
|
|
12163
12297
|
|
|
12298
|
+
if (this.isCurrentDate) {
|
|
12299
|
+
this.setAttribute('aria-current', 'date');
|
|
12300
|
+
} else {
|
|
12301
|
+
this.removeAttribute('aria-current');
|
|
12302
|
+
}
|
|
12303
|
+
|
|
12164
12304
|
if (this.isBlackout()) {
|
|
12165
12305
|
this.setAttribute('aria-disabled', 'true');
|
|
12166
12306
|
} else {
|
|
@@ -12175,7 +12315,7 @@ class AuroCalendarCell extends LitElement {
|
|
|
12175
12315
|
* @returns {void}
|
|
12176
12316
|
*/
|
|
12177
12317
|
focusButton() {
|
|
12178
|
-
const button = this._cachedButton || this.shadowRoot.querySelector('button:not([
|
|
12318
|
+
const button = this._cachedButton || this.shadowRoot.querySelector('button:not([disabled])');
|
|
12179
12319
|
if (button) {
|
|
12180
12320
|
button.focus({ focusVisible: true });
|
|
12181
12321
|
}
|
|
@@ -12183,10 +12323,22 @@ class AuroCalendarCell extends LitElement {
|
|
|
12183
12323
|
|
|
12184
12324
|
/**
|
|
12185
12325
|
* Imperatively marks this cell as active without triggering a Lit re-render.
|
|
12186
|
-
*
|
|
12326
|
+
* Buttons stay tabindex="-1" because DOM focus stays on the grid wrapper —
|
|
12327
|
+
* arrow keys move the active cell imperatively and the live region carries
|
|
12328
|
+
* the SR announcement.
|
|
12329
|
+
*
|
|
12330
|
+
* Refuses to activate out-of-range cells: those are aria-hidden, have no
|
|
12331
|
+
* click/focus handlers, and are filtered out of `getFocusableCells`. The
|
|
12332
|
+
* active class showing on a disabled cell would be visually misleading,
|
|
12333
|
+
* so this guard is the single source of truth across every code path
|
|
12334
|
+
* that might call setActive (keyboard nav, focus restore, cell click).
|
|
12187
12335
|
* @returns {void}
|
|
12188
12336
|
*/
|
|
12189
12337
|
setActive() {
|
|
12338
|
+
if (this.isOutOfRange(this.day, this.min, this.max)) {
|
|
12339
|
+
return;
|
|
12340
|
+
}
|
|
12341
|
+
|
|
12190
12342
|
this.active = true;
|
|
12191
12343
|
|
|
12192
12344
|
// Show the popover when this cell becomes active via keyboard navigation.
|
|
@@ -12225,10 +12377,13 @@ class AuroCalendarCell extends LitElement {
|
|
|
12225
12377
|
if (!btn || !this.day) return;
|
|
12226
12378
|
|
|
12227
12379
|
const dayDate = this.day.date;
|
|
12228
|
-
const departTimestamp =
|
|
12380
|
+
const departTimestamp = new Date(dateFrom * 1000).setHours(0, 0, 0, 0) / 1000;
|
|
12229
12381
|
const isInRange = dayDate > departTimestamp && dayDate < hoveredDate;
|
|
12230
|
-
|
|
12231
|
-
|
|
12382
|
+
// `>=` so hovering the depart cell itself (a same-day round-trip
|
|
12383
|
+
// preview) still surfaces a visual cue: the depart cell receives both
|
|
12384
|
+
// rangeDepartDate and lastHoveredDate.
|
|
12385
|
+
const isLastHovered = dayDate === hoveredDate && hoveredDate >= departTimestamp;
|
|
12386
|
+
const isDepartWithPreview = dayDate === departTimestamp && hoveredDate >= departTimestamp;
|
|
12232
12387
|
|
|
12233
12388
|
btn.classList.toggle('inRange', isInRange);
|
|
12234
12389
|
btn.classList.toggle('lastHoveredDate', isLastHovered);
|
|
@@ -12286,7 +12441,6 @@ class AuroCalendarCell extends LitElement {
|
|
|
12286
12441
|
@focus="${outOfRange ? undefined : this.handleFocus}"
|
|
12287
12442
|
class="${classMap(buttonClasses)}"
|
|
12288
12443
|
?disabled="${outOfRange}"
|
|
12289
|
-
aria-hidden="${outOfRange ? 'true' : nothing}"
|
|
12290
12444
|
tabindex="-1">
|
|
12291
12445
|
<div class="buttonWrapper" aria-hidden="true">
|
|
12292
12446
|
<div class="currentDayMarker">${this.day?.title || nothing}</div>
|
|
@@ -12997,7 +13151,7 @@ class CalendarUtilities {
|
|
|
12997
13151
|
|
|
12998
13152
|
var colorCss$4 = css`#headerContainer{box-shadow:var(--ds-auro-dropdownbib-header-boxshadow-color)}#footerContainer{background-color:var(--ds-auro-dropdownbib-footer-container-color)}`;
|
|
12999
13153
|
|
|
13000
|
-
var styleCss$4 = css`#bibTemplate{display:flex;overflow:hidden;height:100%;max-height:100%;flex-direction:column}#headerContainer{display:flex;flex-direction:column;padding:var(--ds-size-200, 1rem);padding-top:var(--ds-size-400, 2rem);padding-bottom:0}#headerContainer .titleRow{display:flex;flex-direction:row;justify-content:space-between;gap:var(--ds-size-100, 0.5rem)}#headerContainer .header{max-width:calc(100vw - var(--ds-size-900, 4.5rem));padding-top:var(--ds-size-200, 1rem)}#headerContainer .subheader{width:100%}#closeButton [auro-icon]{--ds-auro-icon-size: var(--ds-size-500, 2.5rem)}#bodyContainer{position:relative;overflow:auto;flex:1
|
|
13154
|
+
var styleCss$4 = css`#bibTemplate{display:flex;overflow:hidden;height:100%;max-height:100%;flex-direction:column}#headerContainer{display:flex;flex-direction:column;padding:var(--ds-size-200, 1rem);padding-top:var(--ds-size-400, 2rem);padding-bottom:0}#headerContainer .titleRow{display:flex;flex-direction:row;justify-content:space-between;gap:var(--ds-size-100, 0.5rem)}#headerContainer .header{max-width:calc(100vw - var(--ds-size-900, 4.5rem));padding-top:var(--ds-size-200, 1rem)}#headerContainer .subheader{width:100%}#closeButton [auro-icon]{--ds-auro-icon-size: var(--ds-size-500, 2.5rem)}#bodyContainer{position:relative;overflow:auto;flex:1}:host([isfullscreen]) #bibTemplate{max-height:100dvh}:host([isfullscreen]) #bodyContainer{margin-top:var(--ds-size-100, 0.5rem)}#footerContainer{padding:var(--ds-size-200, 1rem)}`;
|
|
13001
13155
|
|
|
13002
13156
|
var tokenCss = css`:host{--ds-auro-dropdownbib-header-boxshadow-color: var(--ds-elevation-200, 0px 0px 10px rgba(0, 0, 0, 0.15));--ds-auro-dropdownbib-footer-container-color: var(--ds-basic-color-surface-default, #ffffff)}`;
|
|
13003
13157
|
|
|
@@ -13392,7 +13546,7 @@ class AuroBibtemplate extends LitElement {
|
|
|
13392
13546
|
}
|
|
13393
13547
|
}
|
|
13394
13548
|
|
|
13395
|
-
var formkitVersion$2 = '
|
|
13549
|
+
var formkitVersion$2 = '202607010104';
|
|
13396
13550
|
|
|
13397
13551
|
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=literal`${unsafeStatic(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$1 = class h{registerComponent(t,e){customElements.get(t)||customElements.define(t,class extends e{});}closestElement(t,e=this,o=(e,s=e&&e.closest(t))=>e&&e!==document&&e!==window?s||o(e.getRootNode().host):null){return o(e)}handleComponentTagRename(t,e){const o=e.toLowerCase();t.tagName.toLowerCase()!==o&&t.setAttribute(o,true);}elementMatch(t,e){const o=e.toLowerCase();return t.tagName.toLowerCase()===o||t.hasAttribute(o)}};var c$1=css`: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}
|
|
13398
13552
|
`,u$4=css`.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}}
|
|
@@ -13497,6 +13651,15 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
13497
13651
|
*/
|
|
13498
13652
|
this.activeCellDate = null;
|
|
13499
13653
|
|
|
13654
|
+
/**
|
|
13655
|
+
* Cached reference to the active cell host. Set by setActiveCell and
|
|
13656
|
+
* refreshed by scrollToActiveCell when its cache check misses (stale
|
|
13657
|
+
* or missing). Lets scrollToActiveCell skip a full cell scan on each
|
|
13658
|
+
* arrow key.
|
|
13659
|
+
* @private
|
|
13660
|
+
*/
|
|
13661
|
+
this._activeCell = null;
|
|
13662
|
+
|
|
13500
13663
|
/**
|
|
13501
13664
|
* Whether the #calendarGrid wrapper currently has focus.
|
|
13502
13665
|
* Used to determine whether the visualFocus ring should be shown.
|
|
@@ -13515,7 +13678,11 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
13515
13678
|
this.calendarRangeMonths = null;
|
|
13516
13679
|
|
|
13517
13680
|
/**
|
|
13518
|
-
*
|
|
13681
|
+
* @deprecated Use `auro-datepicker.blackoutDates` (an array of
|
|
13682
|
+
* `YYYY-MM-DD` ISO strings) instead. This legacy array of Unix
|
|
13683
|
+
* timestamps is still honored for backward compatibility but emits a
|
|
13684
|
+
* one-time `console.debug` the first time a non-empty value is observed.
|
|
13685
|
+
* Support will be removed in a future major release.
|
|
13519
13686
|
* @private
|
|
13520
13687
|
*/
|
|
13521
13688
|
this.disabledDays = [];
|
|
@@ -13772,17 +13939,44 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
13772
13939
|
* @returns {void}
|
|
13773
13940
|
*/
|
|
13774
13941
|
updateActiveCellForVisibleMonth() {
|
|
13775
|
-
|
|
13776
|
-
|
|
13777
|
-
requestAnimationFrame(() => {
|
|
13778
|
-
requestAnimationFrame(() => {
|
|
13779
|
-
const newDate = this.computeActiveDate({ skipDateFrom: true });
|
|
13942
|
+
this._afterMonthRender(() => {
|
|
13943
|
+
const newDate = this.computeActiveDate({ skipDateFrom: true });
|
|
13780
13944
|
|
|
13781
|
-
|
|
13782
|
-
|
|
13783
|
-
|
|
13784
|
-
|
|
13785
|
-
|
|
13945
|
+
if (newDate !== null && newDate !== undefined) {
|
|
13946
|
+
this.activeCellDate = newDate;
|
|
13947
|
+
this.setActiveCell(this.activeCellDate);
|
|
13948
|
+
}
|
|
13949
|
+
});
|
|
13950
|
+
}
|
|
13951
|
+
|
|
13952
|
+
/**
|
|
13953
|
+
* Schedules `callback` two animation frames out, giving the child
|
|
13954
|
+
* `auro-formkit-calendar-month` and `auro-formkit-calendar-cell` elements
|
|
13955
|
+
* a full render-and-paint cycle to settle before the callback reads or
|
|
13956
|
+
* mutates DOM.
|
|
13957
|
+
*
|
|
13958
|
+
* Why two frames, not one:
|
|
13959
|
+
* 1. Lit batches property updates and renders in a microtask, so frame N
|
|
13960
|
+
* schedules the render but the new DOM may not be painted yet.
|
|
13961
|
+
* 2. Cells re-cache `_cachedButton` inside their own `updateComplete.then`,
|
|
13962
|
+
* which also lands a tick later. Reading buttons from frame N+1
|
|
13963
|
+
* (after both renders + cache refresh have flushed) reliably hits the
|
|
13964
|
+
* new month's cells.
|
|
13965
|
+
*
|
|
13966
|
+
* Used by every code path that calls `handleNextMonth`/`handlePrevMonth`
|
|
13967
|
+
* and then needs to inspect the freshly-rendered cells (cross-month
|
|
13968
|
+
* keyboard nav, boundary events, `updateActiveCellForVisibleMonth`).
|
|
13969
|
+
* Do NOT collapse to a single rAF — it intermittently lands before
|
|
13970
|
+
* `_cachedButton` is refreshed, which silently breaks focus restoration
|
|
13971
|
+
* and `setActiveCell` lookups.
|
|
13972
|
+
* @private
|
|
13973
|
+
* @param {() => void} callback - Runs once after the month re-render and
|
|
13974
|
+
* the cells' button caches have refreshed.
|
|
13975
|
+
* @returns {void}
|
|
13976
|
+
*/
|
|
13977
|
+
_afterMonthRender(callback) {
|
|
13978
|
+
requestAnimationFrame(() => {
|
|
13979
|
+
requestAnimationFrame(callback);
|
|
13786
13980
|
});
|
|
13787
13981
|
}
|
|
13788
13982
|
|
|
@@ -13900,6 +14094,47 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
13900
14094
|
return Array.from(this.shadowRoot.querySelectorAll('auro-formkit-calendar-month'));
|
|
13901
14095
|
}
|
|
13902
14096
|
|
|
14097
|
+
/**
|
|
14098
|
+
* Picks the focusable cell whose date is closest to targetTs. Used as a
|
|
14099
|
+
* fallback after a month-boundary nav when the exact target date isn't
|
|
14100
|
+
* focusable — typically because the month re-render lagged or the date
|
|
14101
|
+
* was filtered out by isOutOfRange. When two cells are equidistant, the
|
|
14102
|
+
* navigation direction breaks the tie so the user moves the way they
|
|
14103
|
+
* pressed (forward → later cell, backward → earlier cell).
|
|
14104
|
+
* @private
|
|
14105
|
+
* @param {Array} cells - Focusable cells from getAllFocusableCells.
|
|
14106
|
+
* @param {Number} targetTs - Desired Unix timestamp (seconds).
|
|
14107
|
+
* @param {'next'|'prev'} direction - Navigation direction.
|
|
14108
|
+
* @returns {Object|null} The nearest cell, or null when cells is empty.
|
|
14109
|
+
*/
|
|
14110
|
+
pickNearestCell(cells, targetTs, direction) {
|
|
14111
|
+
if (!cells.length) {
|
|
14112
|
+
return null;
|
|
14113
|
+
}
|
|
14114
|
+
const forward = direction === 'next';
|
|
14115
|
+
let best = null;
|
|
14116
|
+
let bestDelta = Infinity;
|
|
14117
|
+
cells.forEach((cell) => {
|
|
14118
|
+
if (!cell.day) {
|
|
14119
|
+
return;
|
|
14120
|
+
}
|
|
14121
|
+
const distance = Math.abs(cell.day.date - targetTs);
|
|
14122
|
+
if (distance < bestDelta) {
|
|
14123
|
+
best = cell;
|
|
14124
|
+
bestDelta = distance;
|
|
14125
|
+
return;
|
|
14126
|
+
}
|
|
14127
|
+
if (distance === bestDelta && best) {
|
|
14128
|
+
if (forward && cell.day.date > best.day.date) {
|
|
14129
|
+
best = cell;
|
|
14130
|
+
} else if (!forward && cell.day.date < best.day.date) {
|
|
14131
|
+
best = cell;
|
|
14132
|
+
}
|
|
14133
|
+
}
|
|
14134
|
+
});
|
|
14135
|
+
return best;
|
|
14136
|
+
}
|
|
14137
|
+
|
|
13903
14138
|
/**
|
|
13904
14139
|
* Gets all focusable cells across all rendered months.
|
|
13905
14140
|
* @private
|
|
@@ -13916,9 +14151,9 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
13916
14151
|
|
|
13917
14152
|
/**
|
|
13918
14153
|
* Sets the active cell across all months. Only one cell has tabindex="0" at a time.
|
|
13919
|
-
* Uses imperative DOM manipulation — no Lit re-render triggered.
|
|
13920
|
-
*
|
|
13921
|
-
*
|
|
14154
|
+
* Uses imperative DOM manipulation — no Lit re-render triggered. DOM focus
|
|
14155
|
+
* stays on the grid wrapper; the live region (see getOrCreateLiveRegion)
|
|
14156
|
+
* is what announces the active cell to assistive tech.
|
|
13922
14157
|
* @param {Number} date - Unix timestamp of the cell to activate.
|
|
13923
14158
|
* @returns {void}
|
|
13924
14159
|
*/
|
|
@@ -13936,6 +14171,9 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
13936
14171
|
});
|
|
13937
14172
|
|
|
13938
14173
|
this.activeCellDate = date;
|
|
14174
|
+
// Cache so scrollToActiveCell can scroll without re-querying all cells
|
|
14175
|
+
// on every arrow keypress.
|
|
14176
|
+
this._activeCell = newActiveCell;
|
|
13939
14177
|
|
|
13940
14178
|
// Apply activeCell ring only when the grid currently has focus.
|
|
13941
14179
|
if (newActiveCell && this._gridHasFocus) {
|
|
@@ -13967,10 +14205,23 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
13967
14205
|
/**
|
|
13968
14206
|
* Shows the activeCell ring when the grid gains focus.
|
|
13969
14207
|
* @private
|
|
14208
|
+
* @param {FocusEvent} [event] - The focusin event.
|
|
13970
14209
|
* @returns {void}
|
|
13971
14210
|
*/
|
|
13972
|
-
handleGridFocusIn() {
|
|
14211
|
+
handleGridFocusIn(event) {
|
|
13973
14212
|
this._gridHasFocus = true;
|
|
14213
|
+
|
|
14214
|
+
// Only apply the activeCell ring when the grid wrapper itself receives focus
|
|
14215
|
+
// (Tab/programmatic). When focus moves into a cell button via mousedown,
|
|
14216
|
+
// event.target is the cell descendant — skip the ring here. The subsequent
|
|
14217
|
+
// click handler calls setActiveCell on the clicked cell, which applies the
|
|
14218
|
+
// ring there. Without this guard, mousedown briefly flashes the ring on the
|
|
14219
|
+
// previously-active cell (e.g. the 1st-of-month set by month navigation
|
|
14220
|
+
// when the grid was not focused).
|
|
14221
|
+
if (event && event.target !== event.currentTarget) {
|
|
14222
|
+
return;
|
|
14223
|
+
}
|
|
14224
|
+
|
|
13974
14225
|
const activeCell = this.getAllFocusableCells().find((cell) => cell.active);
|
|
13975
14226
|
if (activeCell) {
|
|
13976
14227
|
const btn = activeCell._cachedButton || activeCell.shadowRoot.querySelector('button.day');
|
|
@@ -13999,6 +14250,65 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
13999
14250
|
this.clearRangePreview();
|
|
14000
14251
|
}
|
|
14001
14252
|
|
|
14253
|
+
/**
|
|
14254
|
+
* Returns a memoized Set of blackout timestamps (seconds) drawn from both
|
|
14255
|
+
* the legacy `disabledDays` array and the datepicker's ISO `blackoutDates`.
|
|
14256
|
+
* The cache invalidates when either source array's reference changes, which
|
|
14257
|
+
* matches Lit's own reactive identity semantics for array properties.
|
|
14258
|
+
* @private
|
|
14259
|
+
* @returns {Set<Number>}
|
|
14260
|
+
*/
|
|
14261
|
+
_getBlackoutSet() {
|
|
14262
|
+
// Normalize non-array values to a stable `null` sentinel rather than a
|
|
14263
|
+
// fresh `[]` per call — otherwise the reference-identity cache key
|
|
14264
|
+
// (`_cachedBlackoutDisabledDays === disabledDays`) never matches on
|
|
14265
|
+
// subsequent calls and the Set rebuilds every time. `buildBlackoutSet`
|
|
14266
|
+
// already treats null/non-array as "no legacy disabledDays" via its
|
|
14267
|
+
// own Array.isArray gate.
|
|
14268
|
+
const disabledDays = Array.isArray(this.disabledDays) ? this.disabledDays : null;
|
|
14269
|
+
const blackoutDates = this.datepicker?.blackoutDates;
|
|
14270
|
+
if (this._blackoutSet &&
|
|
14271
|
+
this._cachedBlackoutDisabledDays === disabledDays &&
|
|
14272
|
+
this._cachedBlackoutDates === blackoutDates) {
|
|
14273
|
+
return this._blackoutSet;
|
|
14274
|
+
}
|
|
14275
|
+
|
|
14276
|
+
if (disabledDays && disabledDays.length > 0) {
|
|
14277
|
+
this._warnDisabledDaysDeprecated();
|
|
14278
|
+
}
|
|
14279
|
+
|
|
14280
|
+
this._blackoutSet = buildBlackoutSet(disabledDays, blackoutDates);
|
|
14281
|
+
this._cachedBlackoutDisabledDays = disabledDays;
|
|
14282
|
+
this._cachedBlackoutDates = blackoutDates;
|
|
14283
|
+
return this._blackoutSet;
|
|
14284
|
+
}
|
|
14285
|
+
|
|
14286
|
+
/**
|
|
14287
|
+
* Per-class flag that gates the `disabledDays` deprecation warning so it
|
|
14288
|
+
* fires exactly once per page no matter how many calendars or rebuild
|
|
14289
|
+
* cycles encounter the legacy array.
|
|
14290
|
+
* @private
|
|
14291
|
+
*/
|
|
14292
|
+
static _warnedDisabledDaysDeprecation = false;
|
|
14293
|
+
|
|
14294
|
+
/**
|
|
14295
|
+
* One-time `console.debug` directing consumers from the legacy
|
|
14296
|
+
* `disabledDays` Unix-timestamp API to the ISO `blackoutDates` API. Fires
|
|
14297
|
+
* the first time `_getBlackoutSet` rebuilds from a non-empty
|
|
14298
|
+
* `disabledDays`; subsequent calls (on this or any other AuroCalendar
|
|
14299
|
+
* instance on the page) are silent.
|
|
14300
|
+
* @private
|
|
14301
|
+
* @returns {void}
|
|
14302
|
+
*/
|
|
14303
|
+
_warnDisabledDaysDeprecated() {
|
|
14304
|
+
if (AuroCalendar._warnedDisabledDaysDeprecation) {
|
|
14305
|
+
return;
|
|
14306
|
+
}
|
|
14307
|
+
AuroCalendar._warnedDisabledDaysDeprecation = true;
|
|
14308
|
+
// eslint-disable-next-line no-console
|
|
14309
|
+
console.debug('[auro-datepicker] The `disabledDays` property (Unix timestamps) is deprecated. Migrate to the `blackoutDates` property on auro-datepicker (an array of `YYYY-MM-DD` ISO strings). `disabledDays` will be removed in a future major release.');
|
|
14310
|
+
}
|
|
14311
|
+
|
|
14002
14312
|
/**
|
|
14003
14313
|
* Computes the initial active date from data properties alone — no DOM required.
|
|
14004
14314
|
* Priority:
|
|
@@ -14043,21 +14353,10 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
14043
14353
|
const minTs = Number.isFinite(rawMin) ? rawMin : -Infinity;
|
|
14044
14354
|
const maxTs = Number.isFinite(rawMax) ? rawMax : Infinity;
|
|
14045
14355
|
|
|
14046
|
-
// Build a Set of blackout timestamps for O(1) lookup.
|
|
14047
|
-
|
|
14048
|
-
|
|
14049
|
-
|
|
14050
|
-
// Parse YYYY-MM-DD as local date to avoid UTC shift issues.
|
|
14051
|
-
const isoBlackouts = this.datepicker?.blackoutDates;
|
|
14052
|
-
if (Array.isArray(isoBlackouts)) {
|
|
14053
|
-
for (const isoStr of isoBlackouts) {
|
|
14054
|
-
const parts = isoStr.split('-');
|
|
14055
|
-
const ts = Math.floor(new Date(parseInt(parts[0], 10), parseInt(parts[1], 10) - 1, parseInt(parts[2], 10)).getTime() / 1000);
|
|
14056
|
-
if (Number.isFinite(ts)) {
|
|
14057
|
-
blackoutSet.add(ts);
|
|
14058
|
-
}
|
|
14059
|
-
}
|
|
14060
|
-
}
|
|
14356
|
+
// Build a Set of blackout timestamps for O(1) lookup. Memoized by the
|
|
14357
|
+
// identity of the source arrays so rapid month nav doesn't rebuild the
|
|
14358
|
+
// Set (and re-parse every ISO string) on every keypress.
|
|
14359
|
+
const blackoutSet = this._getBlackoutSet();
|
|
14061
14360
|
|
|
14062
14361
|
/**
|
|
14063
14362
|
* A date (unix timestamp in seconds, midnight-aligned) is "enabled" when
|
|
@@ -14253,8 +14552,8 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
14253
14552
|
|
|
14254
14553
|
/**
|
|
14255
14554
|
* Handles arrow key navigation on the calendar grid wrapper.
|
|
14256
|
-
* Focus stays on the grid wrapper; only
|
|
14257
|
-
*
|
|
14555
|
+
* Focus stays on the grid wrapper; only the visual active-cell indicator
|
|
14556
|
+
* changes. The live region announces the new active cell.
|
|
14258
14557
|
* @private
|
|
14259
14558
|
* @param {KeyboardEvent} event - The keyboard event.
|
|
14260
14559
|
* @returns {void}
|
|
@@ -14319,21 +14618,24 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
14319
14618
|
} else {
|
|
14320
14619
|
this.handlePrevMonth({ skipActiveUpdate: true });
|
|
14321
14620
|
}
|
|
14322
|
-
|
|
14323
|
-
|
|
14324
|
-
|
|
14325
|
-
|
|
14326
|
-
|
|
14327
|
-
|
|
14328
|
-
|
|
14329
|
-
|
|
14330
|
-
|
|
14621
|
+
this._afterMonthRender(() => {
|
|
14622
|
+
const cells = this.getAllFocusableCells();
|
|
14623
|
+
const target = cells.find((cell) => cell.day && cell.day.date === targetTs);
|
|
14624
|
+
if (target) {
|
|
14625
|
+
this.setActiveCell(target.day.date);
|
|
14626
|
+
this.handleCellFocused({ detail: { date: target.day.date } });
|
|
14627
|
+
} else {
|
|
14628
|
+
const fallback = this.pickNearestCell(cells, targetTs, navDir);
|
|
14629
|
+
if (fallback) {
|
|
14331
14630
|
this.setActiveCell(fallback.day.date);
|
|
14332
14631
|
this.handleCellFocused({ detail: { date: fallback.day.date } });
|
|
14333
14632
|
}
|
|
14334
|
-
|
|
14335
|
-
|
|
14336
|
-
|
|
14633
|
+
}
|
|
14634
|
+
// Scroll AFTER the cross-month setActiveCell so the freshly
|
|
14635
|
+
// activated cell is what gets scrolled into view.
|
|
14636
|
+
this.scrollToActiveCell();
|
|
14637
|
+
// Re-focus grid wrapper after month change re-render
|
|
14638
|
+
this.focusActiveCell();
|
|
14337
14639
|
});
|
|
14338
14640
|
}
|
|
14339
14641
|
}
|
|
@@ -14359,26 +14661,23 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
14359
14661
|
} else {
|
|
14360
14662
|
this.handlePrevMonth({ skipActiveUpdate: true });
|
|
14361
14663
|
}
|
|
14362
|
-
|
|
14363
|
-
|
|
14364
|
-
|
|
14365
|
-
|
|
14366
|
-
|
|
14367
|
-
|
|
14368
|
-
|
|
14369
|
-
|
|
14370
|
-
|
|
14371
|
-
|
|
14372
|
-
if (navDirection === 'next') {
|
|
14373
|
-
[nearest] = cells;
|
|
14374
|
-
} else {
|
|
14375
|
-
nearest = cells[cells.length - 1];
|
|
14376
|
-
}
|
|
14664
|
+
this._afterMonthRender(() => {
|
|
14665
|
+
const cells = this.getAllFocusableCells();
|
|
14666
|
+
const target = cells.find((cell) => cell.day && cell.day.date === targetDate);
|
|
14667
|
+
if (target) {
|
|
14668
|
+
this.setActiveCell(target.day.date);
|
|
14669
|
+
this.handleCellFocused({ detail: { date: target.day.date } });
|
|
14670
|
+
} else {
|
|
14671
|
+
const nearest = this.pickNearestCell(cells, targetDate, navDirection);
|
|
14672
|
+
if (nearest) {
|
|
14377
14673
|
this.setActiveCell(nearest.day.date);
|
|
14378
14674
|
this.handleCellFocused({ detail: { date: nearest.day.date } });
|
|
14379
14675
|
}
|
|
14380
|
-
|
|
14381
|
-
|
|
14676
|
+
}
|
|
14677
|
+
// Scroll AFTER the cross-month setActiveCell so the freshly
|
|
14678
|
+
// activated cell is what gets scrolled into view.
|
|
14679
|
+
this.scrollToActiveCell();
|
|
14680
|
+
this.focusActiveCell();
|
|
14382
14681
|
});
|
|
14383
14682
|
}
|
|
14384
14683
|
}
|
|
@@ -14412,6 +14711,8 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
14412
14711
|
const targetCell = allCells[targetIndex];
|
|
14413
14712
|
this.setActiveCell(targetCell.day.date);
|
|
14414
14713
|
this.scrollToActiveCell();
|
|
14714
|
+
// Match the cross-month branches: keep DOM focus on the grid wrapper
|
|
14715
|
+
// so subsequent arrow keys continue to land on this handler.
|
|
14415
14716
|
this.focusActiveCell();
|
|
14416
14717
|
} else if (direction === 'next' && this.showNextMonthBtn) {
|
|
14417
14718
|
// Navigate to next month and focus the computed next date.
|
|
@@ -14428,19 +14729,22 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
14428
14729
|
}
|
|
14429
14730
|
|
|
14430
14731
|
this.handleNextMonth({ skipActiveUpdate: true });
|
|
14431
|
-
|
|
14432
|
-
|
|
14433
|
-
|
|
14434
|
-
|
|
14435
|
-
|
|
14436
|
-
|
|
14437
|
-
|
|
14438
|
-
|
|
14439
|
-
|
|
14440
|
-
|
|
14441
|
-
|
|
14732
|
+
this._afterMonthRender(() => {
|
|
14733
|
+
const cells = this.getAllFocusableCells();
|
|
14734
|
+
const target = cells.find((cell) => cell.day && cell.day.date === nextTs);
|
|
14735
|
+
if (target) {
|
|
14736
|
+
this.setActiveCell(target.day.date);
|
|
14737
|
+
} else {
|
|
14738
|
+
// Same nearest-by-date fallback handleGridKeyDown uses — direct
|
|
14739
|
+
// `cells[length - 1]` would land on the end of the new month,
|
|
14740
|
+
// far from the user's intended `nextTs`.
|
|
14741
|
+
const fallback = this.pickNearestCell(cells, nextTs, 'next');
|
|
14742
|
+
if (fallback) {
|
|
14743
|
+
this.setActiveCell(fallback.day.date);
|
|
14442
14744
|
}
|
|
14443
|
-
}
|
|
14745
|
+
}
|
|
14746
|
+
this.scrollToActiveCell();
|
|
14747
|
+
this.focusActiveCell();
|
|
14444
14748
|
});
|
|
14445
14749
|
} else if (direction === 'prev' && this.showPrevMonthBtn) {
|
|
14446
14750
|
// Navigate to previous month and focus the computed previous date.
|
|
@@ -14454,19 +14758,22 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
14454
14758
|
}
|
|
14455
14759
|
|
|
14456
14760
|
this.handlePrevMonth({ skipActiveUpdate: true });
|
|
14457
|
-
|
|
14458
|
-
|
|
14459
|
-
|
|
14460
|
-
|
|
14461
|
-
|
|
14462
|
-
|
|
14463
|
-
|
|
14464
|
-
|
|
14465
|
-
|
|
14466
|
-
|
|
14467
|
-
|
|
14761
|
+
this._afterMonthRender(() => {
|
|
14762
|
+
const cells = this.getAllFocusableCells();
|
|
14763
|
+
const target = cells.find((cell) => cell.day && cell.day.date === prevTs);
|
|
14764
|
+
if (target) {
|
|
14765
|
+
this.setActiveCell(target.day.date);
|
|
14766
|
+
} else {
|
|
14767
|
+
// Same nearest-by-date fallback handleGridKeyDown uses — direct
|
|
14768
|
+
// `cells[0]` would land on the start of the previous month, far
|
|
14769
|
+
// from the user's intended `prevTs`.
|
|
14770
|
+
const fallback = this.pickNearestCell(cells, prevTs, 'prev');
|
|
14771
|
+
if (fallback) {
|
|
14772
|
+
this.setActiveCell(fallback.day.date);
|
|
14468
14773
|
}
|
|
14469
|
-
}
|
|
14774
|
+
}
|
|
14775
|
+
this.scrollToActiveCell();
|
|
14776
|
+
this.focusActiveCell();
|
|
14470
14777
|
});
|
|
14471
14778
|
}
|
|
14472
14779
|
} else if (key === 'ArrowDown' || key === 'ArrowUp') {
|
|
@@ -14494,20 +14801,22 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
14494
14801
|
} else {
|
|
14495
14802
|
this.handlePrevMonth({ skipActiveUpdate: true });
|
|
14496
14803
|
}
|
|
14497
|
-
|
|
14498
|
-
|
|
14499
|
-
|
|
14500
|
-
|
|
14501
|
-
|
|
14502
|
-
|
|
14503
|
-
|
|
14504
|
-
|
|
14505
|
-
|
|
14506
|
-
|
|
14804
|
+
this._afterMonthRender(() => {
|
|
14805
|
+
const cells = this.getAllFocusableCells();
|
|
14806
|
+
const target = cells.find((cell) => cell.day && cell.day.date === targetDate);
|
|
14807
|
+
if (target) {
|
|
14808
|
+
this.setActiveCell(target.day.date);
|
|
14809
|
+
} else {
|
|
14810
|
+
// Same nearest-by-date fallback handleGridKeyDown uses — the
|
|
14811
|
+
// old direction-based `cells[0]`/`cells[length-1]` clamp
|
|
14812
|
+
// could land 25+ days from the intended target.
|
|
14813
|
+
const nearest = this.pickNearestCell(cells, targetDate, navDirection);
|
|
14814
|
+
if (nearest) {
|
|
14507
14815
|
this.setActiveCell(nearest.day.date);
|
|
14508
|
-
this.focusActiveCell();
|
|
14509
14816
|
}
|
|
14510
|
-
}
|
|
14817
|
+
}
|
|
14818
|
+
this.scrollToActiveCell();
|
|
14819
|
+
this.focusActiveCell();
|
|
14511
14820
|
});
|
|
14512
14821
|
}
|
|
14513
14822
|
}
|
|
@@ -14546,8 +14855,9 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
14546
14855
|
return;
|
|
14547
14856
|
}
|
|
14548
14857
|
|
|
14549
|
-
//
|
|
14550
|
-
// so
|
|
14858
|
+
// DOM focus stays on the grid wrapper while arrow keys move the active
|
|
14859
|
+
// cell, so cell buttons never receive native focus. The debounced live
|
|
14860
|
+
// region carries the full-context announcement instead.
|
|
14551
14861
|
const announcement = this.buildFocusAnnouncement(date);
|
|
14552
14862
|
this.announceFocusDebounced(announcement);
|
|
14553
14863
|
|
|
@@ -14617,10 +14927,10 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
14617
14927
|
return null;
|
|
14618
14928
|
}
|
|
14619
14929
|
|
|
14620
|
-
const departTs =
|
|
14930
|
+
const departTs = new Date(parsedFrom * 1000).setHours(0, 0, 0, 0) / 1000;
|
|
14621
14931
|
const parsedTo = Number.parseInt(this.dateTo, 10);
|
|
14622
14932
|
const hasTo = Number.isFinite(parsedTo);
|
|
14623
|
-
const returnTs = hasTo ?
|
|
14933
|
+
const returnTs = hasTo ? new Date(parsedTo * 1000).setHours(0, 0, 0, 0) / 1000 : null;
|
|
14624
14934
|
|
|
14625
14935
|
if (date === departTs) {
|
|
14626
14936
|
return this.datepicker.rangeLabelStart || 'range start';
|
|
@@ -14634,36 +14944,22 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
14634
14944
|
if (hasTo && date > departTs && date < returnTs) {
|
|
14635
14945
|
return this.datepicker.rangeLabelInRange || 'in range';
|
|
14636
14946
|
}
|
|
14947
|
+
if (!hasTo && date > departTs) {
|
|
14948
|
+
return this.datepicker.rangeLabelEndPreview || 'previewing range end';
|
|
14949
|
+
}
|
|
14637
14950
|
return this.datepicker.rangeLabelAfterRange || 'after range';
|
|
14638
14951
|
}
|
|
14639
14952
|
|
|
14640
14953
|
/**
|
|
14641
|
-
* Checks whether a given date is a blackout date.
|
|
14954
|
+
* Checks whether a given date is a blackout date. Delegates to the
|
|
14955
|
+
* memoized `_getBlackoutSet` so the YYYY-MM-DD parsing and the
|
|
14956
|
+
* legacy/ISO merge rules live in exactly one place (see `blackoutUtils.js`).
|
|
14642
14957
|
* @private
|
|
14643
14958
|
* @param {Number} dateTs - Unix timestamp (seconds).
|
|
14644
14959
|
* @returns {Boolean} True if the date is blacked out.
|
|
14645
14960
|
*/
|
|
14646
14961
|
isDateBlackout(dateTs) {
|
|
14647
|
-
|
|
14648
|
-
if (Array.isArray(this.disabledDays) && this.disabledDays.length > 0) {
|
|
14649
|
-
if (this.disabledDays.findIndex((day) => parseInt(day, 10) === dateTs) !== -1) {
|
|
14650
|
-
return true;
|
|
14651
|
-
}
|
|
14652
|
-
}
|
|
14653
|
-
|
|
14654
|
-
// Check ISO blackoutDates.
|
|
14655
|
-
const blackoutDates = this.datepicker?.blackoutDates;
|
|
14656
|
-
if (Array.isArray(blackoutDates) && blackoutDates.length > 0) {
|
|
14657
|
-
const date = new Date(dateTs * 1000);
|
|
14658
|
-
const yyyy = date.getFullYear();
|
|
14659
|
-
const mm = String(date.getMonth() + 1).padStart(2, '0');
|
|
14660
|
-
const dd = String(date.getDate()).padStart(2, '0');
|
|
14661
|
-
if (blackoutDates.includes(`${yyyy}-${mm}-${dd}`)) {
|
|
14662
|
-
return true;
|
|
14663
|
-
}
|
|
14664
|
-
}
|
|
14665
|
-
|
|
14666
|
-
return false;
|
|
14962
|
+
return this._getBlackoutSet().has(dateTs);
|
|
14667
14963
|
}
|
|
14668
14964
|
|
|
14669
14965
|
/**
|
|
@@ -14721,7 +15017,28 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
14721
15017
|
}
|
|
14722
15018
|
|
|
14723
15019
|
/**
|
|
14724
|
-
* Scrolls the calendar
|
|
15020
|
+
* Scrolls the calendar so the active cell is visible.
|
|
15021
|
+
*
|
|
15022
|
+
* Walks the flat tree (rendered, slot-aware) outward from the active
|
|
15023
|
+
* cell's button and calls `scrollBy` on every vertically-scrollable
|
|
15024
|
+
* ancestor by whatever delta still separates the cell from that
|
|
15025
|
+
* ancestor's viewport. Native `scrollIntoView` is not used because the
|
|
15026
|
+
* cell sits inside multiple nested scroll containers (the dropdown bib's
|
|
15027
|
+
* `<dialog>`, the bibtemplate's `#bodyContainer`) and the algorithm only
|
|
15028
|
+
* scrolls one of them on its own, leaving the cell short of the
|
|
15029
|
+
* viewport in mobile fullscreen.
|
|
15030
|
+
*
|
|
15031
|
+
* Uses `behavior: 'auto'` (the spec's universally-supported non-animated
|
|
15032
|
+
* value) so each `scrollBy` resolves synchronously and the next
|
|
15033
|
+
* iteration's `getBoundingClientRect` reads post-scroll positions
|
|
15034
|
+
* accurately. This also satisfies `prefers-reduced-motion` users — the
|
|
15035
|
+
* scroll containers do not set CSS `scroll-behavior: smooth`, so `auto`
|
|
15036
|
+
* is effectively instant.
|
|
15037
|
+
*
|
|
15038
|
+
* The active cell is looked up from the cache populated by
|
|
15039
|
+
* `setActiveCell`. On a cache miss (stale or absent) the cache is
|
|
15040
|
+
* refreshed from a single full scan so subsequent calls stay on the
|
|
15041
|
+
* fast path.
|
|
14725
15042
|
* @private
|
|
14726
15043
|
* @returns {void}
|
|
14727
15044
|
*/
|
|
@@ -14730,16 +15047,69 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
14730
15047
|
return;
|
|
14731
15048
|
}
|
|
14732
15049
|
|
|
14733
|
-
|
|
14734
|
-
|
|
14735
|
-
|
|
14736
|
-
|
|
14737
|
-
|
|
15050
|
+
// Prefer the cell cached by setActiveCell so arrow-key navigation does
|
|
15051
|
+
// not rebuild the full cell list on every keypress. Fall back to a
|
|
15052
|
+
// lookup when the cache is stale (e.g. detached after month re-render)
|
|
15053
|
+
// or absent (scrollToActiveCell called without a prior setActiveCell);
|
|
15054
|
+
// refresh the cache on the fallback path so a subsequent call reuses it.
|
|
15055
|
+
const activeDate = this.activeCellDate;
|
|
15056
|
+
const cached = this._activeCell;
|
|
15057
|
+
const cacheFresh = cached && cached.isConnected && cached.day && cached.day.date === activeDate;
|
|
15058
|
+
let activeCell = null;
|
|
15059
|
+
if (cacheFresh) {
|
|
15060
|
+
activeCell = cached;
|
|
15061
|
+
} else {
|
|
15062
|
+
activeCell = this.getAllFocusableCells().find((cell) => cell.day && cell.day.date === activeDate);
|
|
15063
|
+
this._activeCell = activeCell || null;
|
|
15064
|
+
}
|
|
15065
|
+
if (!activeCell) {
|
|
15066
|
+
return;
|
|
15067
|
+
}
|
|
14738
15068
|
|
|
14739
|
-
|
|
14740
|
-
|
|
14741
|
-
|
|
14742
|
-
|
|
15069
|
+
// Scroll the button inside the cell — it has concrete dimensions,
|
|
15070
|
+
// which avoids quirks when the cell host has display: inline / contents
|
|
15071
|
+
// / flex-without-explicit-size.
|
|
15072
|
+
const target = activeCell._cachedButton ||
|
|
15073
|
+
activeCell.shadowRoot?.querySelector('button.day') ||
|
|
15074
|
+
activeCell;
|
|
15075
|
+
|
|
15076
|
+
// parentNode follows the authored DOM tree and steps over shadow roots
|
|
15077
|
+
// via slot projection. A slotted element's visual parent is its
|
|
15078
|
+
// assignedSlot's parent (inside the host's shadow tree), not the host
|
|
15079
|
+
// itself. Without this hop, the walk skips right past #bodyContainer
|
|
15080
|
+
// and <dialog> and finds no scrollable ancestor at all.
|
|
15081
|
+
const flatParent = (current) => {
|
|
15082
|
+
if (current.nodeType === Node.DOCUMENT_FRAGMENT_NODE) {
|
|
15083
|
+
return current.host || null;
|
|
15084
|
+
}
|
|
15085
|
+
if (current.assignedSlot) {
|
|
15086
|
+
return current.assignedSlot.parentNode;
|
|
15087
|
+
}
|
|
15088
|
+
return current.parentNode;
|
|
15089
|
+
};
|
|
15090
|
+
|
|
15091
|
+
let node = flatParent(target);
|
|
15092
|
+
while (node && node !== document && node !== window) {
|
|
15093
|
+
if (node.nodeType === Node.ELEMENT_NODE) {
|
|
15094
|
+
const { overflowY } = window.getComputedStyle(node);
|
|
15095
|
+
if (overflowY === 'auto' || overflowY === 'scroll') {
|
|
15096
|
+
const targetRect = target.getBoundingClientRect();
|
|
15097
|
+
const scrollerRect = node.getBoundingClientRect();
|
|
15098
|
+
let delta = 0;
|
|
15099
|
+
if (targetRect.top < scrollerRect.top) {
|
|
15100
|
+
delta = targetRect.top - scrollerRect.top;
|
|
15101
|
+
} else if (targetRect.bottom > scrollerRect.bottom) {
|
|
15102
|
+
delta = targetRect.bottom - scrollerRect.bottom;
|
|
15103
|
+
}
|
|
15104
|
+
if (delta !== 0) {
|
|
15105
|
+
node.scrollBy({
|
|
15106
|
+
top: delta,
|
|
15107
|
+
behavior: 'auto'
|
|
15108
|
+
});
|
|
15109
|
+
}
|
|
15110
|
+
}
|
|
15111
|
+
}
|
|
15112
|
+
node = flatParent(node);
|
|
14743
15113
|
}
|
|
14744
15114
|
}
|
|
14745
15115
|
|
|
@@ -14830,9 +15200,34 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
14830
15200
|
// the last one.
|
|
14831
15201
|
if (this._announceRafId) {
|
|
14832
15202
|
cancelAnimationFrame(this._announceRafId);
|
|
15203
|
+
this._announceRafId = null;
|
|
14833
15204
|
}
|
|
15205
|
+
this._deliverAnnouncement(dateStr, 0);
|
|
15206
|
+
}
|
|
15207
|
+
|
|
15208
|
+
/**
|
|
15209
|
+
* Writes `dateStr` to the live region. If the dropdown's dialog hasn't
|
|
15210
|
+
* mounted yet (so getOrCreateLiveRegion can't attach), retries on the
|
|
15211
|
+
* next animation frame up to MAX_LIVE_REGION_RETRIES instead of silently
|
|
15212
|
+
* dropping the announcement. The retry uses the same `_announceRafId`
|
|
15213
|
+
* the double-rAF below uses, so a newer announceSelection call (or
|
|
15214
|
+
* disconnectedCallback) cancels any in-flight retry.
|
|
15215
|
+
* @private
|
|
15216
|
+
* @param {String} dateStr - The localized date string to announce.
|
|
15217
|
+
* @param {Number} attempts - Number of prior retry attempts.
|
|
15218
|
+
* @returns {void}
|
|
15219
|
+
*/
|
|
15220
|
+
_deliverAnnouncement(dateStr, attempts) {
|
|
14834
15221
|
const liveRegion = this.getOrCreateLiveRegion();
|
|
14835
15222
|
if (!liveRegion) {
|
|
15223
|
+
const MAX_LIVE_REGION_RETRIES = 10;
|
|
15224
|
+
if (attempts < MAX_LIVE_REGION_RETRIES) {
|
|
15225
|
+
this._announceRafId = requestAnimationFrame(() => {
|
|
15226
|
+
this._deliverAnnouncement(dateStr, attempts + 1);
|
|
15227
|
+
});
|
|
15228
|
+
} else {
|
|
15229
|
+
this._announceRafId = null;
|
|
15230
|
+
}
|
|
14836
15231
|
return;
|
|
14837
15232
|
}
|
|
14838
15233
|
|
|
@@ -15005,7 +15400,7 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
15005
15400
|
</div>
|
|
15006
15401
|
</div>
|
|
15007
15402
|
|
|
15008
|
-
<div class="calendarWrapper
|
|
15403
|
+
<div class="calendarWrapper">
|
|
15009
15404
|
<div class="calendarNavButtons">
|
|
15010
15405
|
${this.showPrevMonthBtn ? html$1`
|
|
15011
15406
|
<button tabIndex="0" class="calendarNavBtn prevMonth" aria-label="${this.datepicker?.navLabelPrevMonth || 'Previous month'}" @click="${this.handlePrevMonth}">
|
|
@@ -15018,7 +15413,7 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
15018
15413
|
</button>
|
|
15019
15414
|
` : undefined}
|
|
15020
15415
|
</div>
|
|
15021
|
-
<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}">
|
|
15416
|
+
<div id="calendarGrid" class="calendars" role="group" aria-roledescription="calendar" tabindex="0" aria-label="${this.datepicker?.calendarGridLabel}" @keydown="${this.handleGridKeyDown}" @focusin="${this.handleGridFocusIn}" @focusout="${this.handleGridFocusOut}" @calendar-month-mouseleave="${this.clearRangePreview}">
|
|
15022
15417
|
${this.renderAllCalendars()}
|
|
15023
15418
|
</div>
|
|
15024
15419
|
</div>
|
|
@@ -18903,7 +19298,7 @@ let AuroHelpText$2 = class AuroHelpText extends LitElement {
|
|
|
18903
19298
|
}
|
|
18904
19299
|
};
|
|
18905
19300
|
|
|
18906
|
-
var formkitVersion$1 = '
|
|
19301
|
+
var formkitVersion$1 = '202607010104';
|
|
18907
19302
|
|
|
18908
19303
|
let AuroElement$2 = class AuroElement extends LitElement {
|
|
18909
19304
|
static get properties() {
|
|
@@ -20175,6 +20570,7 @@ class AuroDropdown extends AuroElement$2 {
|
|
|
20175
20570
|
role="${ifDefined(this.triggerContentFocusable ? undefined : this.a11yRole)}"
|
|
20176
20571
|
aria-expanded="${ifDefined(this.a11yRole === 'button' || this.triggerContentFocusable ? undefined : this.isPopoverVisible)}"
|
|
20177
20572
|
aria-controls="${ifDefined(this.a11yRole === 'button' || this.triggerContentFocusable ? undefined : this.dropdownId)}"
|
|
20573
|
+
aria-haspopup="${ifDefined(this.a11yRole === 'combobox' && !this.triggerContentFocusable ? 'listbox' : undefined)}"
|
|
20178
20574
|
aria-labelledby="${ifDefined(this.triggerContentFocusable ? undefined : 'triggerLabel')}"
|
|
20179
20575
|
aria-disabled="${ifDefined(this.disabled ? 'true' : undefined)}"
|
|
20180
20576
|
@focusin="${this.handleFocusin}"
|
|
@@ -24677,15 +25073,17 @@ class AuroFormValidation {
|
|
|
24677
25073
|
);
|
|
24678
25074
|
}
|
|
24679
25075
|
|
|
24680
|
-
|
|
24681
|
-
|
|
24682
|
-
|
|
25076
|
+
const isCombobox = this.runtimeUtils.elementMatch(elem, 'auro-combobox');
|
|
25077
|
+
|
|
25078
|
+
// If there is a second input in the elem and that value is undefined or an empty string set hasValue to false.
|
|
25079
|
+
// Skip for combobox: its second auro-input is the fullscreen-bib mirror of the same value, not an independent
|
|
25080
|
+
// field (datepicker is the intended consumer — start/end are independently required).
|
|
25081
|
+
if (this.auroInputElements?.length === 2 && !isCombobox) {
|
|
25082
|
+
if (!this.auroInputElements[1].value || this.auroInputElements[1].value.length === 0) {
|
|
24683
25083
|
hasValue = false;
|
|
24684
25084
|
}
|
|
24685
25085
|
}
|
|
24686
25086
|
|
|
24687
|
-
const isCombobox = this.runtimeUtils.elementMatch(elem, 'auro-combobox');
|
|
24688
|
-
|
|
24689
25087
|
if (isCombobox) {
|
|
24690
25088
|
|
|
24691
25089
|
if (!elem.persistInput || elem.behavior === "filter") {
|
|
@@ -30621,6 +31019,13 @@ class AuroInputUtilities {
|
|
|
30621
31019
|
* @returns {string | undefined}
|
|
30622
31020
|
*/
|
|
30623
31021
|
toFormattedValue(valueObject, format) {
|
|
31022
|
+
// Exposed publicly via `AuroInputUtil.toFormattedValue`, so a missing
|
|
31023
|
+
// `format` argument has to fail gracefully rather than throw on
|
|
31024
|
+
// `format.toLowerCase()`. Treat any falsy value (undefined, null, '')
|
|
31025
|
+
// as "no format → no display value".
|
|
31026
|
+
if (!format) {
|
|
31027
|
+
return undefined;
|
|
31028
|
+
}
|
|
30624
31029
|
const normalizedFormat = format.toLowerCase();
|
|
30625
31030
|
const maskOptions = this.getMaskOptions('date', normalizedFormat);
|
|
30626
31031
|
|
|
@@ -30772,76 +31177,19 @@ class BaseInput extends AuroElement$1 {
|
|
|
30772
31177
|
constructor() {
|
|
30773
31178
|
super();
|
|
30774
31179
|
|
|
30775
|
-
|
|
30776
|
-
|
|
30777
|
-
|
|
30778
|
-
|
|
30779
|
-
|
|
30780
|
-
|
|
30781
|
-
|
|
30782
|
-
|
|
30783
|
-
|
|
30784
|
-
|
|
30785
|
-
this.setCustomValidityForType = undefined;
|
|
30786
|
-
this.size = 'lg';
|
|
30787
|
-
this.shape = 'classic';
|
|
30788
|
-
this.value = undefined;
|
|
30789
|
-
|
|
30790
|
-
this._initializePrivateDefaults();
|
|
30791
|
-
}
|
|
30792
|
-
|
|
30793
|
-
/**
|
|
30794
|
-
* Internal Defaults.
|
|
30795
|
-
* @private
|
|
30796
|
-
* @returns {void}
|
|
30797
|
-
*/
|
|
30798
|
-
_initializePrivateDefaults() {
|
|
31180
|
+
// Single-source initialization. Alphabetized so duplicate or stale
|
|
31181
|
+
// defaults are immediately obvious on a diff. Every field is assigned
|
|
31182
|
+
// exactly once here (previously the constructor + the old
|
|
31183
|
+
// `_initializePrivateDefaults` overlapped — both wrote ~14 of the same
|
|
31184
|
+
// fields and double-allocated `util` and `validation`, discarding the
|
|
31185
|
+
// first instance). `validation` is now allocated exactly once; `util`
|
|
31186
|
+
// is seeded here with an en-US default and then rebuilt in
|
|
31187
|
+
// `connectedCallback` once the consumer-resolved locale is available,
|
|
31188
|
+
// so a parent (datepicker/combobox) calling `validate()` synchronously
|
|
31189
|
+
// during its own update cycle sees a populated util instance.
|
|
30799
31190
|
this.activeLabel = false;
|
|
30800
|
-
this.appearance = "default";
|
|
30801
|
-
this.icon = false;
|
|
30802
|
-
this.disabled = false;
|
|
30803
|
-
this.dvInputOnly = false;
|
|
30804
|
-
this.hideLabelVisually = false;
|
|
30805
|
-
this.max = undefined;
|
|
30806
|
-
this.maxLength = undefined;
|
|
30807
|
-
this.min = undefined;
|
|
30808
|
-
this.minLength = undefined;
|
|
30809
|
-
this.noValidate = false;
|
|
30810
|
-
this.onDark = false;
|
|
30811
|
-
this.required = false;
|
|
30812
|
-
this.setCustomValidityForType = undefined;
|
|
30813
|
-
|
|
30814
|
-
// Used for storing raw values returned from input mask.
|
|
30815
|
-
this._rawMaskValue = undefined;
|
|
30816
|
-
|
|
30817
|
-
/**
|
|
30818
|
-
* @private
|
|
30819
|
-
*/
|
|
30820
|
-
this.layout = 'classic';
|
|
30821
|
-
|
|
30822
|
-
/**
|
|
30823
|
-
* @private
|
|
30824
|
-
*/
|
|
30825
|
-
this.shape = 'classic';
|
|
30826
|
-
|
|
30827
|
-
/**
|
|
30828
|
-
* @private
|
|
30829
|
-
*/
|
|
30830
|
-
this.size = 'lg';
|
|
30831
|
-
|
|
30832
|
-
this.touched = false;
|
|
30833
|
-
this.util = new AuroInputUtilities({
|
|
30834
|
-
locale: "en-US",
|
|
30835
|
-
format: this.format
|
|
30836
|
-
});
|
|
30837
|
-
this.validation = new AuroFormValidation();
|
|
30838
|
-
this.inputIconName = undefined;
|
|
30839
|
-
this.showPassword = false;
|
|
30840
|
-
this.validationCCLength = undefined;
|
|
30841
|
-
this.hasValue = false;
|
|
30842
|
-
this.label = 'Input label is undefined';
|
|
30843
|
-
|
|
30844
31191
|
|
|
31192
|
+
/** @private */
|
|
30845
31193
|
this.allowedInputTypes = [
|
|
30846
31194
|
"text",
|
|
30847
31195
|
"number",
|
|
@@ -30850,7 +31198,9 @@ class BaseInput extends AuroElement$1 {
|
|
|
30850
31198
|
"credit-card",
|
|
30851
31199
|
"tel"
|
|
30852
31200
|
];
|
|
30853
|
-
this.
|
|
31201
|
+
this.appearance = "default";
|
|
31202
|
+
|
|
31203
|
+
/** @private */
|
|
30854
31204
|
this.dateFormatMap = {
|
|
30855
31205
|
'mm/dd/yyyy': 'dateMMDDYYYY',
|
|
30856
31206
|
'dd/mm/yyyy': 'dateDDMMYYYY',
|
|
@@ -30867,27 +31217,62 @@ class BaseInput extends AuroElement$1 {
|
|
|
30867
31217
|
'dd/mm': 'dateDDMM',
|
|
30868
31218
|
'mm/dd': 'dateMMDD'
|
|
30869
31219
|
};
|
|
31220
|
+
this.disabled = false;
|
|
31221
|
+
|
|
31222
|
+
/** @private */
|
|
30870
31223
|
this.domHandler = new DomHandler();
|
|
30871
31224
|
this.dvInputOnly = false;
|
|
30872
31225
|
this.hasValue = false;
|
|
31226
|
+
this.hideLabelVisually = false;
|
|
31227
|
+
this.icon = false;
|
|
31228
|
+
|
|
31229
|
+
/** @private */
|
|
30873
31230
|
this.inputIconName = undefined;
|
|
31231
|
+
|
|
31232
|
+
/** @private */
|
|
30874
31233
|
this.label = 'Input label is undefined';
|
|
31234
|
+
this.layout = 'classic';
|
|
31235
|
+
this.locale = 'en-US';
|
|
31236
|
+
this.max = undefined;
|
|
31237
|
+
this.maxLength = undefined;
|
|
31238
|
+
this.min = undefined;
|
|
31239
|
+
this.minLength = undefined;
|
|
30875
31240
|
this.noValidate = false;
|
|
30876
|
-
this.
|
|
31241
|
+
this.onDark = false;
|
|
31242
|
+
// Raw values returned from the input mask before model normalization.
|
|
31243
|
+
this._rawMaskValue = undefined;
|
|
31244
|
+
this.required = false;
|
|
31245
|
+
this.setCustomValidityForType = undefined;
|
|
31246
|
+
// Credit Card is intentionally excluded — its mask manages the cursor
|
|
31247
|
+
// itself, and listing it here caused cursor placement issues in Safari.
|
|
31248
|
+
/** @private */
|
|
30877
31249
|
this.setSelectionInputTypes = [
|
|
30878
31250
|
"text",
|
|
30879
31251
|
"password",
|
|
30880
31252
|
"email"
|
|
30881
|
-
];
|
|
31253
|
+
];
|
|
31254
|
+
this.shape = 'classic';
|
|
31255
|
+
|
|
31256
|
+
/** @private */
|
|
30882
31257
|
this.showPassword = false;
|
|
31258
|
+
this.size = 'lg';
|
|
30883
31259
|
this.touched = false;
|
|
31260
|
+
|
|
31261
|
+
/** @private */
|
|
30884
31262
|
this.uniqueId = new UniqueId().create();
|
|
31263
|
+
|
|
31264
|
+
/** @private */
|
|
30885
31265
|
this.util = new AuroInputUtilities({
|
|
30886
31266
|
locale: this.locale,
|
|
30887
31267
|
format: this.format
|
|
30888
31268
|
});
|
|
31269
|
+
|
|
31270
|
+
/** @private */
|
|
30889
31271
|
this.validation = new AuroFormValidation();
|
|
31272
|
+
|
|
31273
|
+
/** @private */
|
|
30890
31274
|
this.validationCCLength = undefined;
|
|
31275
|
+
this.value = undefined;
|
|
30891
31276
|
}
|
|
30892
31277
|
|
|
30893
31278
|
// function to define props used within the scope of this component
|
|
@@ -31391,6 +31776,15 @@ class BaseInput extends AuroElement$1 {
|
|
|
31391
31776
|
|
|
31392
31777
|
this.inputId = this.id ? `${this.id}-input` : window.crypto.randomUUID();
|
|
31393
31778
|
|
|
31779
|
+
// Normalize the format token to lowercase so case-mixed values supplied
|
|
31780
|
+
// via attribute (e.g. `format="MM/DD/YYYY"`) hit the `dateFormatMap`
|
|
31781
|
+
// lookup inside `setCustomHelpTextMessage`. Without this, an uppercase
|
|
31782
|
+
// format silently misses the map and leaves `setCustomValidityForType`
|
|
31783
|
+
// unset.
|
|
31784
|
+
if (this.format) {
|
|
31785
|
+
this.format = this.format.toLowerCase();
|
|
31786
|
+
}
|
|
31787
|
+
|
|
31394
31788
|
// use validity message override if declared when initializing the component
|
|
31395
31789
|
if (this.hasAttribute('setCustomValidity')) {
|
|
31396
31790
|
this.ValidityMessageOverride = this.setCustomValidity;
|
|
@@ -31474,6 +31868,13 @@ class BaseInput extends AuroElement$1 {
|
|
|
31474
31868
|
|
|
31475
31869
|
if (typeToI18n.includes(this.type)) {
|
|
31476
31870
|
this.setCustomValidityForType = i18n$1(this.lang, this.type);
|
|
31871
|
+
// COVERAGE: this `else if` branch is unreachable in WTR. connectedCallback
|
|
31872
|
+
// (L682) calls configureDataForType, which at L1266-1268 assigns
|
|
31873
|
+
// `this.format = this.util.getDateMaskFromLocale().toLowerCase()` for any
|
|
31874
|
+
// type=date input whose `format` attribute is unset. That runs before
|
|
31875
|
+
// firstUpdated invokes setCustomHelpTextMessage, so `!this.format` is
|
|
31876
|
+
// always false here. Retained as a defensive fallback; the whole function
|
|
31877
|
+
// is @deprecated per AB#1557296 and slated for removal.
|
|
31477
31878
|
} else if (!this.format && this.type === 'date') {
|
|
31478
31879
|
this.setCustomValidityForType = i18n$1(this.lang, 'dateMMDDYYYY');
|
|
31479
31880
|
} else if (this.dateFormatMap[this.format]) {
|
|
@@ -31763,6 +32164,38 @@ class BaseInput extends AuroElement$1 {
|
|
|
31763
32164
|
this.touched = true;
|
|
31764
32165
|
this.validation.validate(this);
|
|
31765
32166
|
}
|
|
32167
|
+
|
|
32168
|
+
// Prevents cursor jumping in Safari. Setting `this.value` triggers a Lit
|
|
32169
|
+
// update that can re-render the input and reset the native cursor; we
|
|
32170
|
+
// capture the caret position before that update commits and restore it
|
|
32171
|
+
// via `setSelectionRange` once the update has flushed. Gated on
|
|
32172
|
+
// `setSelectionInputTypes` so credit-card (and other masked types whose
|
|
32173
|
+
// formatter manages the cursor itself) doesn't get a competing write.
|
|
32174
|
+
// Capture the caret position INSIDE the gate — reading `selectionStart`
|
|
32175
|
+
// on input types that don't support text selection (number, email in
|
|
32176
|
+
// some browsers) throws InvalidStateError, which would crash all input
|
|
32177
|
+
// handling. Wrap the read in try/catch belt-and-suspenders even though
|
|
32178
|
+
// the gated types currently support it, since the list is a public
|
|
32179
|
+
// property a consumer could mutate.
|
|
32180
|
+
if (this.setSelectionInputTypes.includes(this.type)) {
|
|
32181
|
+
let selectionStart = null;
|
|
32182
|
+
try {
|
|
32183
|
+
({ selectionStart } = this.inputElement);
|
|
32184
|
+
} catch (error) { // eslint-disable-line no-unused-vars
|
|
32185
|
+
return;
|
|
32186
|
+
}
|
|
32187
|
+
if (typeof selectionStart !== 'number') {
|
|
32188
|
+
return;
|
|
32189
|
+
}
|
|
32190
|
+
this.updateComplete.then(() => {
|
|
32191
|
+
try {
|
|
32192
|
+
this.inputElement.setSelectionRange(selectionStart, selectionStart);
|
|
32193
|
+
} catch (error) { // eslint-disable-line no-unused-vars
|
|
32194
|
+
// Some input types (number/email in certain UAs) throw on
|
|
32195
|
+
// setSelectionRange; swallow and let the native cursor stand.
|
|
32196
|
+
}
|
|
32197
|
+
});
|
|
32198
|
+
}
|
|
31766
32199
|
}
|
|
31767
32200
|
|
|
31768
32201
|
/**
|
|
@@ -31896,7 +32329,7 @@ class BaseInput extends AuroElement$1 {
|
|
|
31896
32329
|
*/
|
|
31897
32330
|
get placeholderStr() {
|
|
31898
32331
|
if (!this.placeholder && this.type === 'date') {
|
|
31899
|
-
return this.format
|
|
32332
|
+
return this.format.toUpperCase();
|
|
31900
32333
|
}
|
|
31901
32334
|
return this.placeholder || "";
|
|
31902
32335
|
}
|
|
@@ -32387,7 +32820,7 @@ let AuroHelpText$1 = class AuroHelpText extends LitElement {
|
|
|
32387
32820
|
}
|
|
32388
32821
|
};
|
|
32389
32822
|
|
|
32390
|
-
var formkitVersion = '
|
|
32823
|
+
var formkitVersion = '202607010104';
|
|
32391
32824
|
|
|
32392
32825
|
// Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
|
|
32393
32826
|
// See LICENSE in the project root for license information.
|
|
@@ -32890,6 +33323,7 @@ class AuroInput extends BaseInput {
|
|
|
32890
33323
|
<${this.buttonTag}
|
|
32891
33324
|
@click="${this.handleClickShowPassword}"
|
|
32892
33325
|
appearance="${this.onDark ? 'inverse' : this.appearance}"
|
|
33326
|
+
aria-pressed="${this.showPassword ? 'true' : 'false'}"
|
|
32893
33327
|
class="notificationBtn passwordBtn"
|
|
32894
33328
|
shape="circle"
|
|
32895
33329
|
size="sm"
|
|
@@ -32963,25 +33397,29 @@ class AuroInput extends BaseInput {
|
|
|
32963
33397
|
* @returns {html} - Returns HTML for the help text and error message.
|
|
32964
33398
|
*/
|
|
32965
33399
|
renderHtmlHelpText() {
|
|
33400
|
+
// Single `<p>` with stable identity across validity transitions —
|
|
33401
|
+
// previously two distinct templates (valid vs invalid) caused Lit to
|
|
33402
|
+
// replace the node entirely on a flip, and VoiceOver wouldn't
|
|
33403
|
+
// re-announce because the live-region element it was watching had been
|
|
33404
|
+
// removed and a new one inserted. Keeping one node means the `role`,
|
|
33405
|
+
// `aria-live`, and text content all change in-place, which AT does
|
|
33406
|
+
// observe and announce.
|
|
33407
|
+
const isError = this.validity && this.validity !== 'valid';
|
|
32966
33408
|
return html$1`
|
|
32967
|
-
|
|
32968
|
-
?
|
|
32969
|
-
|
|
32970
|
-
|
|
32971
|
-
|
|
32972
|
-
|
|
32973
|
-
|
|
32974
|
-
|
|
32975
|
-
|
|
32976
|
-
|
|
32977
|
-
|
|
32978
|
-
|
|
32979
|
-
|
|
32980
|
-
|
|
32981
|
-
</p>
|
|
32982
|
-
</${this.helpTextTag}>
|
|
32983
|
-
`
|
|
32984
|
-
}
|
|
33409
|
+
<${this.helpTextTag}
|
|
33410
|
+
appearance="${this.onDark ? 'inverse' : this.appearance}"
|
|
33411
|
+
?error=${isError}>
|
|
33412
|
+
<p
|
|
33413
|
+
id="${this.uniqueId}"
|
|
33414
|
+
part="helpText"
|
|
33415
|
+
role="${ifDefined(isError ? 'alert' : undefined)}"
|
|
33416
|
+
aria-live="${ifDefined(isError ? 'assertive' : undefined)}">
|
|
33417
|
+
${isError
|
|
33418
|
+
? this.errorMessage
|
|
33419
|
+
: html$1`<slot name="helpText">${this.getHelpText()}</slot>`
|
|
33420
|
+
}
|
|
33421
|
+
</p>
|
|
33422
|
+
</${this.helpTextTag}>
|
|
32985
33423
|
`;
|
|
32986
33424
|
}
|
|
32987
33425
|
|
|
@@ -33128,6 +33566,15 @@ function formatISODate(isoStr, format) {
|
|
|
33128
33566
|
try {
|
|
33129
33567
|
const date = dateFormatter.stringToDateInstance(isoStr);
|
|
33130
33568
|
|
|
33569
|
+
// `stringToDateInstance` returns an `Invalid Date` for malformed strings
|
|
33570
|
+
// and `null` for non-string input — it does NOT throw. Without this
|
|
33571
|
+
// guard, `getFullYear()`/`getMonth()`/`getDate()` on an Invalid Date
|
|
33572
|
+
// yield `NaN`, and `String(NaN).padStart(4, '0')` produces literals
|
|
33573
|
+
// like "0NaN/0NaN/0NaN" instead of `undefined`.
|
|
33574
|
+
if (!(date instanceof Date) || Number.isNaN(date.getTime())) {
|
|
33575
|
+
return undefined;
|
|
33576
|
+
}
|
|
33577
|
+
|
|
33131
33578
|
const year = String(date.getFullYear()).padStart(4, '0');
|
|
33132
33579
|
const month = String(date.getMonth() + 1).padStart(2, '0');
|
|
33133
33580
|
const day = String(date.getDate()).padStart(2, '0');
|
|
@@ -33138,7 +33585,10 @@ function formatISODate(isoStr, format) {
|
|
|
33138
33585
|
replace(/mm/iu, month).
|
|
33139
33586
|
replace(/dd/iu, day);
|
|
33140
33587
|
} catch (err) {
|
|
33141
|
-
//
|
|
33588
|
+
// Defensive: the Date-returning path is guarded above, but `parseDate`
|
|
33589
|
+
// (inside `stringToDateInstance`) could throw on pathological input
|
|
33590
|
+
// future-library-versions might introduce. Treat any thrown error as
|
|
33591
|
+
// "not a valid date" and return undefined.
|
|
33142
33592
|
return undefined;
|
|
33143
33593
|
}
|
|
33144
33594
|
}
|
|
@@ -33864,6 +34314,7 @@ class AuroDatePicker extends AuroElement {
|
|
|
33864
34314
|
this.rangeLabelBeforeRange = 'before range';
|
|
33865
34315
|
this.rangeLabelInRange = 'in range';
|
|
33866
34316
|
this.rangeLabelAfterRange = 'after range';
|
|
34317
|
+
this.rangeLabelEndPreview = 'previewing range end';
|
|
33867
34318
|
this.blackoutDates = [];
|
|
33868
34319
|
this.blackoutLabel = 'unavailable';
|
|
33869
34320
|
this.navLabelPrevMonth = 'Previous month';
|
|
@@ -33963,6 +34414,22 @@ class AuroDatePicker extends AuroElement {
|
|
|
33963
34414
|
*/
|
|
33964
34415
|
this.handleClick = this.handleClick.bind(this);
|
|
33965
34416
|
|
|
34417
|
+
/**
|
|
34418
|
+
* Single AbortController shared by every listener registered in the
|
|
34419
|
+
* configure* methods. Lets disconnectedCallback tear all of them down
|
|
34420
|
+
* with one abort() call.
|
|
34421
|
+
*
|
|
34422
|
+
* The genuine leak risk is the listeners attached to children that can
|
|
34423
|
+
* outlive the host if they get reparented — `this.dropdown`,
|
|
34424
|
+
* `this.calendar`, and the inputs inside the dropdown's slot.
|
|
34425
|
+
* Listeners attached to `this` (e.g. focusin/focusout on the host)
|
|
34426
|
+
* form a self-contained reference graph that the GC can collect with
|
|
34427
|
+
* the host anyway, but they share the same signal so the cleanup
|
|
34428
|
+
* pattern stays uniform across all configure* sites.
|
|
34429
|
+
* @private
|
|
34430
|
+
*/
|
|
34431
|
+
this._listenerAbortController = new AbortController();
|
|
34432
|
+
|
|
33966
34433
|
/**
|
|
33967
34434
|
* @private
|
|
33968
34435
|
*/
|
|
@@ -34011,6 +34478,7 @@ class AuroDatePicker extends AuroElement {
|
|
|
34011
34478
|
|
|
34012
34479
|
/**
|
|
34013
34480
|
* Label announced for blackout (disabled but in-range) date cells.
|
|
34481
|
+
* @default 'unavailable'
|
|
34014
34482
|
*/
|
|
34015
34483
|
blackoutLabel: {
|
|
34016
34484
|
type: String,
|
|
@@ -34027,6 +34495,7 @@ class AuroDatePicker extends AuroElement {
|
|
|
34027
34495
|
|
|
34028
34496
|
/**
|
|
34029
34497
|
* Accessible label for the calendar grid containing the days of the month.
|
|
34498
|
+
* @default 'Calendar days of the month'
|
|
34030
34499
|
*/
|
|
34031
34500
|
calendarGridLabel: {
|
|
34032
34501
|
type: String,
|
|
@@ -34189,6 +34658,7 @@ class AuroDatePicker extends AuroElement {
|
|
|
34189
34658
|
|
|
34190
34659
|
/**
|
|
34191
34660
|
* Accessible label for the next month navigation button.
|
|
34661
|
+
* @default 'Next month'
|
|
34192
34662
|
*/
|
|
34193
34663
|
navLabelNextMonth: {
|
|
34194
34664
|
type: String,
|
|
@@ -34197,6 +34667,7 @@ class AuroDatePicker extends AuroElement {
|
|
|
34197
34667
|
|
|
34198
34668
|
/**
|
|
34199
34669
|
* Accessible label for the previous month navigation button.
|
|
34670
|
+
* @default 'Previous month'
|
|
34200
34671
|
*/
|
|
34201
34672
|
navLabelPrevMonth: {
|
|
34202
34673
|
type: String,
|
|
@@ -34274,7 +34745,11 @@ class AuroDatePicker extends AuroElement {
|
|
|
34274
34745
|
},
|
|
34275
34746
|
|
|
34276
34747
|
/**
|
|
34277
|
-
* Label announced for cells after
|
|
34748
|
+
* Label announced for cells after a fully selected range (both
|
|
34749
|
+
* `dateFrom` and `dateTo` are set). While a range is still being
|
|
34750
|
+
* picked (`dateFrom` set, `dateTo` unset), focused cells past the
|
|
34751
|
+
* start use `rangeLabelEndPreview` instead.
|
|
34752
|
+
* @default 'after range'
|
|
34278
34753
|
*/
|
|
34279
34754
|
rangeLabelAfterRange: {
|
|
34280
34755
|
type: String,
|
|
@@ -34283,6 +34758,7 @@ class AuroDatePicker extends AuroElement {
|
|
|
34283
34758
|
|
|
34284
34759
|
/**
|
|
34285
34760
|
* Label announced for cells before the range start.
|
|
34761
|
+
* @default 'before range'
|
|
34286
34762
|
*/
|
|
34287
34763
|
rangeLabelBeforeRange: {
|
|
34288
34764
|
type: String,
|
|
@@ -34291,14 +34767,27 @@ class AuroDatePicker extends AuroElement {
|
|
|
34291
34767
|
|
|
34292
34768
|
/**
|
|
34293
34769
|
* Label announced for the range end date cell.
|
|
34770
|
+
* @default 'range end'
|
|
34294
34771
|
*/
|
|
34295
34772
|
rangeLabelEnd: {
|
|
34296
34773
|
type: String,
|
|
34297
34774
|
reflect: true
|
|
34298
34775
|
},
|
|
34299
34776
|
|
|
34777
|
+
/**
|
|
34778
|
+
* Label announced for the focused cell while previewing a range end
|
|
34779
|
+
* (dateFrom set, dateTo not yet selected). Tells AT users that
|
|
34780
|
+
* pressing Enter would commit this cell as the range end.
|
|
34781
|
+
* @default 'previewing range end'
|
|
34782
|
+
*/
|
|
34783
|
+
rangeLabelEndPreview: {
|
|
34784
|
+
type: String,
|
|
34785
|
+
reflect: true
|
|
34786
|
+
},
|
|
34787
|
+
|
|
34300
34788
|
/**
|
|
34301
34789
|
* Label announced for cells within the selected range.
|
|
34790
|
+
* @default 'in range'
|
|
34302
34791
|
*/
|
|
34303
34792
|
rangeLabelInRange: {
|
|
34304
34793
|
type: String,
|
|
@@ -34307,6 +34796,7 @@ class AuroDatePicker extends AuroElement {
|
|
|
34307
34796
|
|
|
34308
34797
|
/**
|
|
34309
34798
|
* Label announced for the range start date cell.
|
|
34799
|
+
* @default 'range start'
|
|
34310
34800
|
*/
|
|
34311
34801
|
rangeLabelStart: {
|
|
34312
34802
|
type: String,
|
|
@@ -34314,7 +34804,7 @@ class AuroDatePicker extends AuroElement {
|
|
|
34314
34804
|
},
|
|
34315
34805
|
|
|
34316
34806
|
/**
|
|
34317
|
-
* Dates that the user should have for reference as part of their decision
|
|
34807
|
+
* Dates that the user should have for reference as part of their decision-making when selecting a date.
|
|
34318
34808
|
* This should be a JSON string array of ISO date strings (`YYYY-MM-DD`).
|
|
34319
34809
|
*/
|
|
34320
34810
|
referenceDates: {
|
|
@@ -34671,10 +35161,26 @@ class AuroDatePicker extends AuroElement {
|
|
|
34671
35161
|
// ─── Vendor calendar time conversions ─────────────────────────────────────
|
|
34672
35162
|
|
|
34673
35163
|
/**
|
|
34674
|
-
* Converts a Unix timestamp (seconds) from the
|
|
35164
|
+
* Converts a Unix timestamp (seconds) from the vendored range-datepicker
|
|
35165
|
+
* (`src/vendor/wc-range-datepicker/day.js`) to an ISO date string.
|
|
35166
|
+
*
|
|
35167
|
+
* Timezone contract:
|
|
35168
|
+
* - INPUT: `time` is assumed to be the seconds-since-epoch of **local
|
|
35169
|
+
* midnight** for the intended calendar day. The vendor's Day constructor
|
|
35170
|
+
* builds it via `date-fns format(date, 't')` from a locally-constructed
|
|
35171
|
+
* Date, so this assumption currently holds end-to-end.
|
|
35172
|
+
* - OUTPUT: `dateFormatter.toISOFormatString` reads the Date's local
|
|
35173
|
+
* getFullYear/getMonth/getDate components, so the returned YYYY-MM-DD
|
|
35174
|
+
* string matches the local calendar day.
|
|
35175
|
+
*
|
|
35176
|
+
* If the vendor ever switches to emitting UTC-midnight timestamps, this
|
|
35177
|
+
* conversion will silently shift the returned date by one day in zones
|
|
35178
|
+
* west of UTC. Any vendor swap should re-verify this contract; the TZ
|
|
35179
|
+
* regression suite (`npm run test:hst`, UTC-10) will catch the symptom.
|
|
35180
|
+
*
|
|
34675
35181
|
* @private
|
|
34676
|
-
* @param {number} time - Unix timestamp
|
|
34677
|
-
* @returns {string} ISO date string (yyyy-mm-dd).
|
|
35182
|
+
* @param {number} time - Unix timestamp (seconds), local midnight of the day.
|
|
35183
|
+
* @returns {string} ISO date string (yyyy-mm-dd) reflecting the local calendar day.
|
|
34678
35184
|
*/
|
|
34679
35185
|
convertWcTimeToDate(time) {
|
|
34680
35186
|
return dateFormatter$1.toISOFormatString(new Date(time * 1000));
|
|
@@ -34776,8 +35282,8 @@ class AuroDatePicker extends AuroElement {
|
|
|
34776
35282
|
}
|
|
34777
35283
|
}
|
|
34778
35284
|
|
|
34779
|
-
// Focus the calendar grid wrapper (
|
|
34780
|
-
// the SR announcement for the active cell
|
|
35285
|
+
// Focus the calendar grid wrapper. The live region (announced just
|
|
35286
|
+
// below) handles the SR announcement for the active cell.
|
|
34781
35287
|
if (activeCell) {
|
|
34782
35288
|
this.calendar.focusActiveCell();
|
|
34783
35289
|
|
|
@@ -34791,11 +35297,14 @@ class AuroDatePicker extends AuroElement {
|
|
|
34791
35297
|
this.calendar.announceSelection(announcement);
|
|
34792
35298
|
}, 500);
|
|
34793
35299
|
|
|
34794
|
-
// On mobile fullscreen
|
|
34795
|
-
//
|
|
34796
|
-
//
|
|
34797
|
-
|
|
35300
|
+
// On mobile fullscreen — or when an explicit focusDate change has
|
|
35301
|
+
// requested a forced scroll on the next render — scroll the active
|
|
35302
|
+
// cell into view. Doing this here (after activeCellDate has been
|
|
35303
|
+
// resolved by the rAF loop above) prevents a no-op scroll that
|
|
35304
|
+
// would happen if we tried to scroll before the cell was set.
|
|
35305
|
+
if (this.dropdown.isBibFullscreen || this.forceScrollOnNextMobileCalendarRender) {
|
|
34798
35306
|
this.calendar.scrollToActiveCell();
|
|
35307
|
+
this.forceScrollOnNextMobileCalendarRender = false;
|
|
34799
35308
|
}
|
|
34800
35309
|
} else if (attempts < MAX_ATTEMPTS) {
|
|
34801
35310
|
requestAnimationFrame(tryFocus);
|
|
@@ -34827,11 +35336,13 @@ class AuroDatePicker extends AuroElement {
|
|
|
34827
35336
|
this.dropdown.bibDialogLabel = labelElement.textContent.trim() || undefined;
|
|
34828
35337
|
}
|
|
34829
35338
|
|
|
35339
|
+
const { signal } = this._listenerAbortController;
|
|
35340
|
+
|
|
34830
35341
|
this.dropdown.addEventListener('auroDropdown-triggerClick', () => {
|
|
34831
35342
|
if (!this.isPopoverVisible) {
|
|
34832
35343
|
this.dropdown.show();
|
|
34833
35344
|
}
|
|
34834
|
-
});
|
|
35345
|
+
}, { signal });
|
|
34835
35346
|
|
|
34836
35347
|
this.dropdown.addEventListener('auroDropdown-toggled', () => {
|
|
34837
35348
|
this.notifyDatepickerToggled();
|
|
@@ -34849,7 +35360,7 @@ class AuroDatePicker extends AuroElement {
|
|
|
34849
35360
|
if (this.valueObject) {
|
|
34850
35361
|
this.centralDate = this.value;
|
|
34851
35362
|
} else if (!this.centralDate && !this.calendarStartDate && !this.minDate) {
|
|
34852
|
-
this.centralDate = new Date();
|
|
35363
|
+
this.centralDate = dateFormatter$1.toISOFormatString(new Date());
|
|
34853
35364
|
}
|
|
34854
35365
|
}
|
|
34855
35366
|
|
|
@@ -34917,19 +35428,11 @@ class AuroDatePicker extends AuroElement {
|
|
|
34917
35428
|
}
|
|
34918
35429
|
}
|
|
34919
35430
|
|
|
34920
|
-
//
|
|
34921
|
-
|
|
34922
|
-
|
|
34923
|
-
|
|
34924
|
-
|
|
34925
|
-
// we need to wait until the next frame to ensure the calendar is fully rendered
|
|
34926
|
-
// and the area we're trying to scroll to is present in the DOM.
|
|
34927
|
-
setTimeout(() => {
|
|
34928
|
-
this.calendar.scrollMonthIntoView(this.calendarFocusDate);
|
|
34929
|
-
this.forceScrollOnNextMobileCalendarRender = false;
|
|
34930
|
-
}, 0);
|
|
34931
|
-
}
|
|
34932
|
-
});
|
|
35431
|
+
// Note: the forceScrollOnNextMobileCalendarRender scroll-into-view
|
|
35432
|
+
// happens inside focusActiveCellWhenReady() once activeCellDate has
|
|
35433
|
+
// been resolved by its rAF wait — not here in a setTimeout(0), which
|
|
35434
|
+
// fired before the active date was set and silently no-op'd.
|
|
35435
|
+
}, { signal });
|
|
34933
35436
|
|
|
34934
35437
|
// Handle responsive strategy changes while the dropdown is open
|
|
34935
35438
|
// (e.g. resizing from desktop → mobile or vice versa).
|
|
@@ -34976,7 +35479,7 @@ class AuroDatePicker extends AuroElement {
|
|
|
34976
35479
|
});
|
|
34977
35480
|
});
|
|
34978
35481
|
}
|
|
34979
|
-
});
|
|
35482
|
+
}, { signal });
|
|
34980
35483
|
}
|
|
34981
35484
|
|
|
34982
35485
|
/**
|
|
@@ -34989,6 +35492,8 @@ class AuroDatePicker extends AuroElement {
|
|
|
34989
35492
|
|
|
34990
35493
|
this.inputList = [...this.dropdown.querySelectorAll(this.inputTag._$litStatic$)];
|
|
34991
35494
|
|
|
35495
|
+
const { signal } = this._listenerAbortController;
|
|
35496
|
+
|
|
34992
35497
|
this.inputList.forEach((input, index) => {
|
|
34993
35498
|
input.addEventListener('input', (event) => {
|
|
34994
35499
|
event.stopPropagation();
|
|
@@ -35000,7 +35505,7 @@ class AuroDatePicker extends AuroElement {
|
|
|
35000
35505
|
}
|
|
35001
35506
|
|
|
35002
35507
|
this.notifyValueChanged();
|
|
35003
|
-
});
|
|
35508
|
+
}, { signal });
|
|
35004
35509
|
|
|
35005
35510
|
input.addEventListener('auroFormElement-validated', (evt) => {
|
|
35006
35511
|
// not to bubble up input's validated event.
|
|
@@ -35016,7 +35521,7 @@ class AuroDatePicker extends AuroElement {
|
|
|
35016
35521
|
this.validity = evt.detail.validity;
|
|
35017
35522
|
this.errorMessage = evt.detail.message;
|
|
35018
35523
|
}
|
|
35019
|
-
});
|
|
35524
|
+
}, { signal });
|
|
35020
35525
|
});
|
|
35021
35526
|
}
|
|
35022
35527
|
|
|
@@ -35030,19 +35535,32 @@ class AuroDatePicker extends AuroElement {
|
|
|
35030
35535
|
this.calendar.datepicker = this;
|
|
35031
35536
|
this.calendar.dropdown = this.dropdown;
|
|
35032
35537
|
|
|
35538
|
+
const { signal } = this._listenerAbortController;
|
|
35539
|
+
|
|
35033
35540
|
this.calendar.addEventListener('auroCalendar-dateSelected', () => {
|
|
35034
|
-
|
|
35035
|
-
|
|
35541
|
+
// Compare the input's ISO value against the *converted* calendar
|
|
35542
|
+
// timestamp (the vendor's `dateFrom`/`dateTo` are Unix-seconds
|
|
35543
|
+
// strings — comparing the input ISO directly against them would
|
|
35544
|
+
// never match, so the write would fire on every event and emit
|
|
35545
|
+
// redundant input/change activity).
|
|
35546
|
+
if (this.calendar.dateFrom !== undefined) {
|
|
35547
|
+
const fromIso = this.convertWcTimeToDate(this.calendar.dateFrom);
|
|
35548
|
+
if (this.inputList[0].value !== fromIso) {
|
|
35549
|
+
this.inputList[0].value = fromIso;
|
|
35550
|
+
}
|
|
35036
35551
|
}
|
|
35037
35552
|
|
|
35038
|
-
if (this.inputList[1] && this.calendar.dateTo
|
|
35039
|
-
|
|
35553
|
+
if (this.inputList[1] && this.calendar.dateTo) {
|
|
35554
|
+
const toIso = this.convertWcTimeToDate(this.calendar.dateTo);
|
|
35555
|
+
if (this.inputList[1].value !== toIso) {
|
|
35556
|
+
this.inputList[1].value = toIso;
|
|
35557
|
+
}
|
|
35040
35558
|
}
|
|
35041
|
-
});
|
|
35559
|
+
}, { signal });
|
|
35042
35560
|
|
|
35043
35561
|
this.calendar.addEventListener('auroCalendar-dismissRequest', () => {
|
|
35044
35562
|
this.dropdown.hide();
|
|
35045
|
-
});
|
|
35563
|
+
}, { signal });
|
|
35046
35564
|
|
|
35047
35565
|
this.calendar.addEventListener('auroCalendar-centralDateChanged', (event) => {
|
|
35048
35566
|
const match = this.centralDateObject && this.util.datesMatch(event.detail.date, this.centralDateObject);
|
|
@@ -35052,7 +35570,7 @@ class AuroDatePicker extends AuroElement {
|
|
|
35052
35570
|
}
|
|
35053
35571
|
|
|
35054
35572
|
this.notifyMonthChanged(event);
|
|
35055
|
-
});
|
|
35573
|
+
}, { signal });
|
|
35056
35574
|
}
|
|
35057
35575
|
|
|
35058
35576
|
/**
|
|
@@ -35061,10 +35579,17 @@ class AuroDatePicker extends AuroElement {
|
|
|
35061
35579
|
* @returns {void}
|
|
35062
35580
|
*/
|
|
35063
35581
|
configureDatepicker() {
|
|
35582
|
+
// These listeners are on `this` (the host), so they would GC with the
|
|
35583
|
+
// host even without the abort signal — see the leak rationale on
|
|
35584
|
+
// `_listenerAbortController`. The signal is still passed for uniform
|
|
35585
|
+
// cleanup semantics with the child-element listeners in the other
|
|
35586
|
+
// configure* methods.
|
|
35587
|
+
const { signal } = this._listenerAbortController;
|
|
35588
|
+
|
|
35064
35589
|
this.addEventListener('focusin', () => {
|
|
35065
35590
|
this.touched = true;
|
|
35066
35591
|
this.hasFocus = true;
|
|
35067
|
-
});
|
|
35592
|
+
}, { signal });
|
|
35068
35593
|
|
|
35069
35594
|
this.addEventListener('focusout', () => {
|
|
35070
35595
|
this.hasFocus = false;
|
|
@@ -35076,7 +35601,7 @@ class AuroDatePicker extends AuroElement {
|
|
|
35076
35601
|
if (!this.matches(':focus-within')) {
|
|
35077
35602
|
this.validate();
|
|
35078
35603
|
}
|
|
35079
|
-
});
|
|
35604
|
+
}, { signal });
|
|
35080
35605
|
|
|
35081
35606
|
if (this.valueObject) {
|
|
35082
35607
|
this.calendar.dateFrom = this.convertToWcValidTime(this.valueObject);
|
|
@@ -35274,6 +35799,41 @@ class AuroDatePicker extends AuroElement {
|
|
|
35274
35799
|
return this.validity !== undefined && this.validity !== 'valid';
|
|
35275
35800
|
}
|
|
35276
35801
|
|
|
35802
|
+
/**
|
|
35803
|
+
* Per-class dedup set used by `_warnInvalidLocale`. Static so the dedup
|
|
35804
|
+
* spans every datepicker instance on the page; lives on the class (not
|
|
35805
|
+
* at module scope) so it stays an encapsulated implementation detail of
|
|
35806
|
+
* this component and does not interfere with WCA's class-JSDoc
|
|
35807
|
+
* attachment.
|
|
35808
|
+
* @private
|
|
35809
|
+
*/
|
|
35810
|
+
static _warnedInvalidLocales = new Set();
|
|
35811
|
+
|
|
35812
|
+
/**
|
|
35813
|
+
* Logs a one-time `console.debug` when an unsupported locale falls back to
|
|
35814
|
+
* en-US. Deduped by the offending tag so noisy re-renders that resurface
|
|
35815
|
+
* the same bad value stay quiet, but each new bad value still signals so
|
|
35816
|
+
* consumers can spot the typo or missing tag.
|
|
35817
|
+
* @private
|
|
35818
|
+
* @param {string|undefined} badLocale - The locale value that failed.
|
|
35819
|
+
* @returns {void}
|
|
35820
|
+
*/
|
|
35821
|
+
_warnInvalidLocale(badLocale) {
|
|
35822
|
+
// Stringify without coalescing — `String(undefined)` / `String(null)`
|
|
35823
|
+
// surface the actual offending value in the log, instead of the
|
|
35824
|
+
// ambiguous `Locale ""` that `String(badLocale ?? '')` would produce.
|
|
35825
|
+
// Dedup still works correctly because each unique stringification
|
|
35826
|
+
// becomes its own Set entry.
|
|
35827
|
+
const key = String(badLocale);
|
|
35828
|
+
const seen = AuroDatePicker._warnedInvalidLocales;
|
|
35829
|
+
if (seen.has(key)) {
|
|
35830
|
+
return;
|
|
35831
|
+
}
|
|
35832
|
+
seen.add(key);
|
|
35833
|
+
// eslint-disable-next-line no-console
|
|
35834
|
+
console.debug(`[auro-datepicker] Locale "${key}" is not supported by Intl.DateTimeFormat. Falling back to "en-US". Pass a BCP 47 tag such as "en-US", "fr-FR", or "ja-JP".`);
|
|
35835
|
+
}
|
|
35836
|
+
|
|
35277
35837
|
/**
|
|
35278
35838
|
* Lifecycle method to check if the locale is valid.
|
|
35279
35839
|
* @ignore
|
|
@@ -35284,10 +35844,15 @@ class AuroDatePicker extends AuroElement {
|
|
|
35284
35844
|
if (changedProperties.has('locale')) {
|
|
35285
35845
|
try {
|
|
35286
35846
|
const supported = Intl.DateTimeFormat.supportedLocalesOf([this.locale], { localeMatcher: 'lookup' });
|
|
35287
|
-
|
|
35847
|
+
if (supported.length > 0) {
|
|
35848
|
+
this._validLocale = this.locale;
|
|
35849
|
+
} else {
|
|
35850
|
+
this._validLocale = 'en-US';
|
|
35851
|
+
this._warnInvalidLocale(this.locale);
|
|
35852
|
+
}
|
|
35288
35853
|
} catch {
|
|
35289
|
-
console.debug(`[AuroDatePicker] The locale "${this.locale}" is not valid. Falling back to "en-US".`); // eslint-disable-line no-console
|
|
35290
35854
|
this._validLocale = 'en-US';
|
|
35855
|
+
this._warnInvalidLocale(this.locale);
|
|
35291
35856
|
}
|
|
35292
35857
|
|
|
35293
35858
|
const previousLocaleFormat = getDateFormatFromLocale$1(changedProperties.get('locale'));
|
|
@@ -35369,8 +35934,6 @@ class AuroDatePicker extends AuroElement {
|
|
|
35369
35934
|
// Skip centralDate update when user clicked a cell in range mode
|
|
35370
35935
|
// to prevent the displayed months from shifting
|
|
35371
35936
|
this.centralDate = this.value;
|
|
35372
|
-
//TODO: TEST THIS CHANGE
|
|
35373
|
-
// this.calendarRenderUtil.updateCentralDate(this, this.value);
|
|
35374
35937
|
}
|
|
35375
35938
|
|
|
35376
35939
|
this.setHasValue();
|
|
@@ -35430,8 +35993,6 @@ class AuroDatePicker extends AuroElement {
|
|
|
35430
35993
|
// Skip centralDate update when user clicked a cell in range mode
|
|
35431
35994
|
// to prevent the displayed months from shifting
|
|
35432
35995
|
this.centralDate = this.valueEnd;
|
|
35433
|
-
// TODO: TEST THIS CHANGE
|
|
35434
|
-
// this.calendarRenderUtil.updateCentralDate(this, this.formattedValueEnd);
|
|
35435
35996
|
}
|
|
35436
35997
|
|
|
35437
35998
|
this.validate();
|
|
@@ -35573,7 +36134,7 @@ class AuroDatePicker extends AuroElement {
|
|
|
35573
36134
|
* @returns {void}
|
|
35574
36135
|
*/
|
|
35575
36136
|
configureClickHandler() {
|
|
35576
|
-
this.addEventListener('click', this.handleClick);
|
|
36137
|
+
this.addEventListener('click', this.handleClick, { signal: this._listenerAbortController.signal });
|
|
35577
36138
|
}
|
|
35578
36139
|
|
|
35579
36140
|
firstUpdated() {
|
|
@@ -35581,6 +36142,15 @@ class AuroDatePicker extends AuroElement {
|
|
|
35581
36142
|
// Add the tag name as an attribute if it is different than the component name
|
|
35582
36143
|
this.runtimeUtils.handleComponentTagRename(this, 'auro-datepicker');
|
|
35583
36144
|
|
|
36145
|
+
// If the element was disconnected before this first render finished,
|
|
36146
|
+
// disconnectedCallback's microtask already aborted the controller. The
|
|
36147
|
+
// connectedCallback reinit guard skips that case because `hasUpdated`
|
|
36148
|
+
// is still false. Mint a fresh controller here so configure* registers
|
|
36149
|
+
// listeners against a live signal.
|
|
36150
|
+
if (this._listenerAbortController.signal.aborted) {
|
|
36151
|
+
this._listenerAbortController = new AbortController();
|
|
36152
|
+
}
|
|
36153
|
+
|
|
35584
36154
|
this.configureDropdown();
|
|
35585
36155
|
this.configureInput();
|
|
35586
36156
|
this.configureCalendar();
|
|
@@ -35592,9 +36162,36 @@ class AuroDatePicker extends AuroElement {
|
|
|
35592
36162
|
connectedCallback() {
|
|
35593
36163
|
super.connectedCallback();
|
|
35594
36164
|
|
|
36165
|
+
// True reconnect after `disconnectedCallback` aborted our controller:
|
|
36166
|
+
// the existing signal is dead, so listeners registered against it
|
|
36167
|
+
// would never fire. Create a fresh controller and re-run the
|
|
36168
|
+
// configure* wiring (each method is idempotent — it just re-caches
|
|
36169
|
+
// child refs and re-registers listeners against the new signal).
|
|
36170
|
+
// `hasUpdated` gates this so the *first* connect (which precedes
|
|
36171
|
+
// firstUpdated) still falls through to firstUpdated's initial wiring.
|
|
36172
|
+
if (this.hasUpdated && this._listenerAbortController.signal.aborted) {
|
|
36173
|
+
this._listenerAbortController = new AbortController();
|
|
36174
|
+
this.configureDropdown();
|
|
36175
|
+
this.configureInput();
|
|
36176
|
+
this.configureCalendar();
|
|
36177
|
+
this.configureDatepicker();
|
|
36178
|
+
this.configureClickHandler();
|
|
36179
|
+
}
|
|
36180
|
+
|
|
35595
36181
|
this.locale = this.domHandler.getLocale(this);
|
|
35596
36182
|
}
|
|
35597
36183
|
|
|
36184
|
+
disconnectedCallback() {
|
|
36185
|
+
super.disconnectedCallback();
|
|
36186
|
+
// Defer so that re-parenting (auro-drawer slotting it into a dialog,
|
|
36187
|
+
// for example) does not abort listeners we still need after reconnect.
|
|
36188
|
+
queueMicrotask(() => {
|
|
36189
|
+
if (!this.isConnected) {
|
|
36190
|
+
this._listenerAbortController.abort();
|
|
36191
|
+
}
|
|
36192
|
+
});
|
|
36193
|
+
}
|
|
36194
|
+
|
|
35598
36195
|
// layout render methods
|
|
35599
36196
|
// ------------------------------------
|
|
35600
36197
|
|