@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
|
@@ -657,15 +657,17 @@ let AuroFormValidation$1 = class AuroFormValidation {
|
|
|
657
657
|
);
|
|
658
658
|
}
|
|
659
659
|
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
660
|
+
const isCombobox = this.runtimeUtils.elementMatch(elem, 'auro-combobox');
|
|
661
|
+
|
|
662
|
+
// If there is a second input in the elem and that value is undefined or an empty string set hasValue to false.
|
|
663
|
+
// Skip for combobox: its second auro-input is the fullscreen-bib mirror of the same value, not an independent
|
|
664
|
+
// field (datepicker is the intended consumer — start/end are independently required).
|
|
665
|
+
if (this.auroInputElements?.length === 2 && !isCombobox) {
|
|
666
|
+
if (!this.auroInputElements[1].value || this.auroInputElements[1].value.length === 0) {
|
|
663
667
|
hasValue = false;
|
|
664
668
|
}
|
|
665
669
|
}
|
|
666
670
|
|
|
667
|
-
const isCombobox = this.runtimeUtils.elementMatch(elem, 'auro-combobox');
|
|
668
|
-
|
|
669
671
|
if (isCombobox) {
|
|
670
672
|
|
|
671
673
|
if (!elem.persistInput || elem.behavior === "filter") {
|
|
@@ -1373,7 +1375,7 @@ function normalizeDates$1(context, ...dates) {
|
|
|
1373
1375
|
* const result = startOfDay(new Date(2014, 8, 2, 11, 55, 0))
|
|
1374
1376
|
* //=> Tue Sep 02 2014 00:00:00
|
|
1375
1377
|
*/
|
|
1376
|
-
function startOfDay$
|
|
1378
|
+
function startOfDay$1(date, options) {
|
|
1377
1379
|
const _date = toDate$1(date, options?.in);
|
|
1378
1380
|
_date.setHours(0, 0, 0, 0);
|
|
1379
1381
|
return _date;
|
|
@@ -1421,8 +1423,8 @@ function differenceInCalendarDays$1(laterDate, earlierDate, options) {
|
|
|
1421
1423
|
earlierDate,
|
|
1422
1424
|
);
|
|
1423
1425
|
|
|
1424
|
-
const laterStartOfDay = startOfDay$
|
|
1425
|
-
const earlierStartOfDay = startOfDay$
|
|
1426
|
+
const laterStartOfDay = startOfDay$1(laterDate_);
|
|
1427
|
+
const earlierStartOfDay = startOfDay$1(earlierDate_);
|
|
1426
1428
|
|
|
1427
1429
|
const laterTimestamp =
|
|
1428
1430
|
+laterStartOfDay - getTimezoneOffsetInMilliseconds$1(laterStartOfDay);
|
|
@@ -10524,6 +10526,13 @@ let AuroInputUtilities$1 = class AuroInputUtilities {
|
|
|
10524
10526
|
* @returns {string | undefined}
|
|
10525
10527
|
*/
|
|
10526
10528
|
toFormattedValue(valueObject, format) {
|
|
10529
|
+
// Exposed publicly via `AuroInputUtil.toFormattedValue`, so a missing
|
|
10530
|
+
// `format` argument has to fail gracefully rather than throw on
|
|
10531
|
+
// `format.toLowerCase()`. Treat any falsy value (undefined, null, '')
|
|
10532
|
+
// as "no format → no display value".
|
|
10533
|
+
if (!format) {
|
|
10534
|
+
return undefined;
|
|
10535
|
+
}
|
|
10527
10536
|
const normalizedFormat = format.toLowerCase();
|
|
10528
10537
|
const maskOptions = this.getMaskOptions('date', normalizedFormat);
|
|
10529
10538
|
|
|
@@ -10803,11 +10812,11 @@ var snowflakeStyle = i$3`:host([layout*=snowflake]) [auro-input]{flex:1;text-ali
|
|
|
10803
10812
|
|
|
10804
10813
|
var snowflakeColors = i$3`:host([layout=snowflake]) [auro-dropdown]:not(:is([error],.hasFocus)){--ds-auro-dropdown-trigger-border-color: transparent}`;
|
|
10805
10814
|
|
|
10806
|
-
var styleCss$7 = i$3`.body-default{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-default-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-default-font-size, 1rem);line-height:var(--wcss-body-default-line-height, 1.5rem)}.body-default-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-default-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-default-emphasized-font-size, 1rem);line-height:var(--wcss-body-default-emphasized-line-height, 1.5rem)}.body-lg{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-lg-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-lg-font-size, 1.125rem);line-height:var(--wcss-body-lg-line-height, 1.625rem)}.body-lg-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-lg-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-lg-emphasized-font-size, 1.125rem);line-height:var(--wcss-body-lg-emphasized-line-height, 1.625rem)}.body-sm{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-sm-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-sm-font-size, 0.875rem);line-height:var(--wcss-body-sm-line-height, 1.25rem)}.body-sm-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-sm-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-sm-emphasized-font-size, 0.875rem);line-height:var(--wcss-body-sm-emphasized-line-height, 1.25rem)}.body-xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-xs-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-xs-font-size, 0.75rem);line-height:var(--wcss-body-xs-line-height, 1rem)}.body-xs-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-xs-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-xs-emphasized-font-size, 0.75rem);line-height:var(--wcss-body-xs-emphasized-line-height, 1rem)}.body-2xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-2xs-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-2xs-font-size, 0.625rem);line-height:var(--wcss-body-2xs-line-height, 0.875rem)}.body-2xs-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-2xs-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-2xs-emphasized-font-size, 0.625rem);line-height:var(--wcss-body-2xs-emphasized-line-height, 0.875rem)}.display-2xl{font-family:var(--wcss-display-2xl-family, "AS Circular"),var(--wcss-display-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-2xl-weight, 300);line-height:var(--wcss-display-2xl-line-height, 1.3);font-size:var(--wcss-display-2xl-font-size, clamp(3.5rem, 6vw, 5.375rem));letter-spacing:var(--wcss-display-2xl-letter-spacing, 0)}.display-xl{font-family:var(--wcss-display-xl-family, "AS Circular"),var(--wcss-display-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-xl-weight, 300);line-height:var(--wcss-display-xl-line-height, 1.3);font-size:var(--wcss-display-xl-font-size, clamp(3rem, 5.3333333333vw, 4.5rem));letter-spacing:var(--wcss-display-xl-letter-spacing, 0)}.display-lg{font-family:var(--wcss-display-lg-family, "AS Circular"),var(--wcss-display-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-lg-weight, 300);line-height:var(--wcss-display-lg-line-height, 1.3);font-size:var(--wcss-display-lg-font-size, clamp(2.75rem, 4.6666666667vw, 4rem));letter-spacing:var(--wcss-display-lg-letter-spacing, 0)}.display-md{font-family:var(--wcss-display-md-family, "AS Circular"),var(--wcss-display-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-md-weight, 300);line-height:var(--wcss-display-md-line-height, 1.3);font-size:var(--wcss-display-md-font-size, clamp(2.5rem, 4vw, 3.5rem));letter-spacing:var(--wcss-display-md-letter-spacing, 0)}.display-sm{font-family:var(--wcss-display-sm-family, "AS Circular"),var(--wcss-display-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-sm-weight, 300);line-height:var(--wcss-display-sm-line-height, 1.3);font-size:var(--wcss-display-sm-font-size, clamp(2rem, 3.6666666667vw, 3rem));letter-spacing:var(--wcss-display-sm-letter-spacing, 0)}.display-xs{font-family:var(--wcss-display-xs-family, "AS Circular"),var(--wcss-display-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-xs-weight, 300);line-height:var(--wcss-display-xs-line-height, 1.3);font-size:var(--wcss-display-xs-font-size, clamp(1.75rem, 3vw, 2.375rem));letter-spacing:var(--wcss-display-xs-letter-spacing, 0)}.heading-xl{font-family:var(--wcss-heading-xl-family, "AS Circular"),var(--wcss-heading-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-xl-weight, 300);line-height:var(--wcss-heading-xl-line-height, 1.3);font-size:var(--wcss-heading-xl-font-size, clamp(2rem, 3vw, 2.5rem));letter-spacing:var(--wcss-heading-xl-letter-spacing, 0)}.heading-lg{font-family:var(--wcss-heading-lg-family, "AS Circular"),var(--wcss-heading-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-lg-weight, 300);line-height:var(--wcss-heading-lg-line-height, 1.3);font-size:var(--wcss-heading-lg-font-size, clamp(1.75rem, 2.6666666667vw, 2.25rem));letter-spacing:var(--wcss-heading-lg-letter-spacing, 0)}.heading-md{font-family:var(--wcss-heading-md-family, "AS Circular"),var(--wcss-heading-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-md-weight, 300);line-height:var(--wcss-heading-md-line-height, 1.3);font-size:var(--wcss-heading-md-font-size, clamp(1.625rem, 2.3333333333vw, 1.75rem));letter-spacing:var(--wcss-heading-md-letter-spacing, 0)}.heading-sm{font-family:var(--wcss-heading-sm-family, "AS Circular"),var(--wcss-heading-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-sm-weight, 300);line-height:var(--wcss-heading-sm-line-height, 1.3);font-size:var(--wcss-heading-sm-font-size, clamp(1.375rem, 2vw, 1.5rem));letter-spacing:var(--wcss-heading-sm-letter-spacing, 0)}.heading-xs{font-family:var(--wcss-heading-xs-family, "AS Circular"),var(--wcss-heading-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-xs-weight, 300);line-height:var(--wcss-heading-xs-line-height, 1.3);font-size:var(--wcss-heading-xs-font-size, clamp(1.25rem, 1.6666666667vw, 1.25rem));letter-spacing:var(--wcss-heading-xs-letter-spacing, 0)}.heading-2xs{font-family:var(--wcss-heading-2xs-family, "AS Circular"),var(--wcss-heading-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-2xs-weight, 300);line-height:var(--wcss-heading-2xs-line-height, 1.3);font-size:var(--wcss-heading-2xs-font-size, clamp(1.125rem, 1.5vw, 1.125rem));letter-spacing:var(--wcss-heading-2xs-letter-spacing, 0)}.accent-2xl{font-family:var(--wcss-accent-2xl-family, "Good OT"),var(--wcss-accent-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-2xl-weight, 450);line-height:var(--wcss-accent-2xl-line-height, 1);font-size:var(--wcss-accent-2xl-font-size, clamp(2rem, 3.1666666667vw, 2.375rem));letter-spacing:var(--wcss-accent-2xl-letter-spacing, 0.05em);text-transform:uppercase}.accent-xl{font-family:var(--wcss-accent-xl-family, "Good OT"),var(--wcss-accent-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-xl-weight, 450);line-height:var(--wcss-accent-xl-line-height, 1.3);font-size:var(--wcss-accent-xl-font-size, clamp(1.625rem, 2.3333333333vw, 2rem));letter-spacing:var(--wcss-accent-xl-letter-spacing, 0.05em);text-transform:uppercase}.accent-lg{font-family:var(--wcss-accent-lg-family, "Good OT"),var(--wcss-accent-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-lg-weight, 450);line-height:var(--wcss-accent-lg-line-height, 1.3);font-size:var(--wcss-accent-lg-font-size, clamp(1.5rem, 2.1666666667vw, 1.75rem));letter-spacing:var(--wcss-accent-lg-letter-spacing, 0.05em);text-transform:uppercase}.accent-md{font-family:var(--wcss-accent-md-family, "Good OT"),var(--wcss-accent-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-md-weight, 500);line-height:var(--wcss-accent-md-line-height, 1.3);font-size:var(--wcss-accent-md-font-size, clamp(1.375rem, 1.8333333333vw, 1.5rem));letter-spacing:var(--wcss-accent-md-letter-spacing, 0.05em);text-transform:uppercase}.accent-sm{font-family:var(--wcss-accent-sm-family, "Good OT"),var(--wcss-accent-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-sm-weight, 500);line-height:var(--wcss-accent-sm-line-height, 1.3);font-size:var(--wcss-accent-sm-font-size, clamp(1.125rem, 1.5vw, 1.25rem));letter-spacing:var(--wcss-accent-sm-letter-spacing, 0.05em);text-transform:uppercase}.accent-xs{font-family:var(--wcss-accent-xs-family, "Good OT"),var(--wcss-accent-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-xs-weight, 500);line-height:var(--wcss-accent-xs-line-height, 1.3);font-size:var(--wcss-accent-xs-font-size, clamp(1rem, 1.3333333333vw, 1rem));letter-spacing:var(--wcss-accent-xs-letter-spacing, 0.1em);text-transform:uppercase}.accent-2xs{font-family:var(--wcss-accent-2xs-family, "Good OT"),var(--wcss-accent-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-2xs-weight, 450);line-height:var(--wcss-accent-2xs-line-height, 1.3);font-size:var(--wcss-accent-2xs-font-size, clamp(0.875rem, 1.1666666667vw, 0.875rem));letter-spacing:var(--wcss-accent-2xs-letter-spacing, 0.1em);text-transform:uppercase}:host{--calendar-width: 336px;--mobile-footer-height: 150px;--mobile-header-height: 68px;--desktop-footer-height: 80px;height:100vh;height:100dvh}.calendars{display:flex;flex-direction:row}.calendars:focus{outline:none}.calendarNavButtons{position:absolute;z-index:1;top:var(--ds-size-200, 1rem);right:var(--ds-size-50, 0.25rem);left:var(--ds-size-50, 0.25rem)}.calendarNavBtn{display:flex;width:var(--ds-size-500, 2.5rem);height:var(--ds-size-500, 2.5rem);align-items:center;justify-content:center;border-width:1px;border-style:solid;border-radius:50%;cursor:pointer}.prevMonth,.nextMonth{position:absolute;top:0}.prevMonth{left:0}.nextMonth{right:0}.headerActions{padding:0 var(--ds-size-200, 1rem)}.mobileHeader{width:100%;height:var(--mobile-header-height);z-index:1;align-items:center;flex-direction:row}.headerDateFrom,.headerDateTo{display:flex;height:var(--mobile-header-height);flex:1;flex-direction:column;justify-content:center;padding:0 var(--ds-size-150, 0.75rem) 0 var(--ds-size-200, 1rem)}.mobileDateLabel{padding:var(--ds-size-25, 0.125rem) 0}.mobileFooter{display:none;width:100%;align-items:flex-end;flex-direction:column;justify-content:flex-end}.mobileFooterActions{position:relative;bottom:0;left:50%;display:none;width:calc(100% - var(--ds-size-200, 1rem)*2);align-items:flex-end;flex-direction:column;justify-content:flex-end;padding:var(--ds-size-150) calc(var(--ds-size-200, 1rem));transform:translateX(-50%)}.mobileFooterActions auro-button{width:100%}.calendarWrapper.hasFooter{padding-bottom:var(--desktop-footer-height)}:host([isfullscreen]){width:100%;max-height:100dvh;overflow:hidden}:host([isfullscreen]) .prevMonth,:host([isfullscreen]) .nextMonth{display:none}:host([isfullscreen]) .mobileHeader,:host([isfullscreen]) .mobileFooter,:host([isfullscreen]) .mobileFooterActions{display:flex}:host([isfullscreen]) .calendarWrapper{display:flex;flex-direction:column}:host([isfullscreen]) .calendars{display:flex;flex-direction:column;flex:1;align-items:center;width:100%;overscroll-behavior:contain}:host([isfullscreen]) .calendars:after{display:block;width:100%;height:var(--mobile-footer-height);content:""}.sr-only{position:absolute;overflow:hidden;clip:rect(0, 0, 0, 0);width:1px;height:1px;margin:-1px;padding:0;border:0;white-space:nowrap}`;
|
|
10815
|
+
var styleCss$7 = i$3`.body-default{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-default-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-default-font-size, 1rem);line-height:var(--wcss-body-default-line-height, 1.5rem)}.body-default-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-default-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-default-emphasized-font-size, 1rem);line-height:var(--wcss-body-default-emphasized-line-height, 1.5rem)}.body-lg{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-lg-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-lg-font-size, 1.125rem);line-height:var(--wcss-body-lg-line-height, 1.625rem)}.body-lg-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-lg-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-lg-emphasized-font-size, 1.125rem);line-height:var(--wcss-body-lg-emphasized-line-height, 1.625rem)}.body-sm{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-sm-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-sm-font-size, 0.875rem);line-height:var(--wcss-body-sm-line-height, 1.25rem)}.body-sm-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-sm-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-sm-emphasized-font-size, 0.875rem);line-height:var(--wcss-body-sm-emphasized-line-height, 1.25rem)}.body-xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-xs-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-xs-font-size, 0.75rem);line-height:var(--wcss-body-xs-line-height, 1rem)}.body-xs-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-xs-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-xs-emphasized-font-size, 0.75rem);line-height:var(--wcss-body-xs-emphasized-line-height, 1rem)}.body-2xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-2xs-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-2xs-font-size, 0.625rem);line-height:var(--wcss-body-2xs-line-height, 0.875rem)}.body-2xs-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-2xs-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-2xs-emphasized-font-size, 0.625rem);line-height:var(--wcss-body-2xs-emphasized-line-height, 0.875rem)}.display-2xl{font-family:var(--wcss-display-2xl-family, "AS Circular"),var(--wcss-display-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-2xl-weight, 300);line-height:var(--wcss-display-2xl-line-height, 1.3);font-size:var(--wcss-display-2xl-font-size, clamp(3.5rem, 6vw, 5.375rem));letter-spacing:var(--wcss-display-2xl-letter-spacing, 0)}.display-xl{font-family:var(--wcss-display-xl-family, "AS Circular"),var(--wcss-display-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-xl-weight, 300);line-height:var(--wcss-display-xl-line-height, 1.3);font-size:var(--wcss-display-xl-font-size, clamp(3rem, 5.3333333333vw, 4.5rem));letter-spacing:var(--wcss-display-xl-letter-spacing, 0)}.display-lg{font-family:var(--wcss-display-lg-family, "AS Circular"),var(--wcss-display-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-lg-weight, 300);line-height:var(--wcss-display-lg-line-height, 1.3);font-size:var(--wcss-display-lg-font-size, clamp(2.75rem, 4.6666666667vw, 4rem));letter-spacing:var(--wcss-display-lg-letter-spacing, 0)}.display-md{font-family:var(--wcss-display-md-family, "AS Circular"),var(--wcss-display-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-md-weight, 300);line-height:var(--wcss-display-md-line-height, 1.3);font-size:var(--wcss-display-md-font-size, clamp(2.5rem, 4vw, 3.5rem));letter-spacing:var(--wcss-display-md-letter-spacing, 0)}.display-sm{font-family:var(--wcss-display-sm-family, "AS Circular"),var(--wcss-display-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-sm-weight, 300);line-height:var(--wcss-display-sm-line-height, 1.3);font-size:var(--wcss-display-sm-font-size, clamp(2rem, 3.6666666667vw, 3rem));letter-spacing:var(--wcss-display-sm-letter-spacing, 0)}.display-xs{font-family:var(--wcss-display-xs-family, "AS Circular"),var(--wcss-display-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-xs-weight, 300);line-height:var(--wcss-display-xs-line-height, 1.3);font-size:var(--wcss-display-xs-font-size, clamp(1.75rem, 3vw, 2.375rem));letter-spacing:var(--wcss-display-xs-letter-spacing, 0)}.heading-xl{font-family:var(--wcss-heading-xl-family, "AS Circular"),var(--wcss-heading-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-xl-weight, 300);line-height:var(--wcss-heading-xl-line-height, 1.3);font-size:var(--wcss-heading-xl-font-size, clamp(2rem, 3vw, 2.5rem));letter-spacing:var(--wcss-heading-xl-letter-spacing, 0)}.heading-lg{font-family:var(--wcss-heading-lg-family, "AS Circular"),var(--wcss-heading-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-lg-weight, 300);line-height:var(--wcss-heading-lg-line-height, 1.3);font-size:var(--wcss-heading-lg-font-size, clamp(1.75rem, 2.6666666667vw, 2.25rem));letter-spacing:var(--wcss-heading-lg-letter-spacing, 0)}.heading-md{font-family:var(--wcss-heading-md-family, "AS Circular"),var(--wcss-heading-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-md-weight, 300);line-height:var(--wcss-heading-md-line-height, 1.3);font-size:var(--wcss-heading-md-font-size, clamp(1.625rem, 2.3333333333vw, 1.75rem));letter-spacing:var(--wcss-heading-md-letter-spacing, 0)}.heading-sm{font-family:var(--wcss-heading-sm-family, "AS Circular"),var(--wcss-heading-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-sm-weight, 300);line-height:var(--wcss-heading-sm-line-height, 1.3);font-size:var(--wcss-heading-sm-font-size, clamp(1.375rem, 2vw, 1.5rem));letter-spacing:var(--wcss-heading-sm-letter-spacing, 0)}.heading-xs{font-family:var(--wcss-heading-xs-family, "AS Circular"),var(--wcss-heading-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-xs-weight, 300);line-height:var(--wcss-heading-xs-line-height, 1.3);font-size:var(--wcss-heading-xs-font-size, clamp(1.25rem, 1.6666666667vw, 1.25rem));letter-spacing:var(--wcss-heading-xs-letter-spacing, 0)}.heading-2xs{font-family:var(--wcss-heading-2xs-family, "AS Circular"),var(--wcss-heading-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-2xs-weight, 300);line-height:var(--wcss-heading-2xs-line-height, 1.3);font-size:var(--wcss-heading-2xs-font-size, clamp(1.125rem, 1.5vw, 1.125rem));letter-spacing:var(--wcss-heading-2xs-letter-spacing, 0)}.accent-2xl{font-family:var(--wcss-accent-2xl-family, "Good OT"),var(--wcss-accent-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-2xl-weight, 450);line-height:var(--wcss-accent-2xl-line-height, 1);font-size:var(--wcss-accent-2xl-font-size, clamp(2rem, 3.1666666667vw, 2.375rem));letter-spacing:var(--wcss-accent-2xl-letter-spacing, 0.05em);text-transform:uppercase}.accent-xl{font-family:var(--wcss-accent-xl-family, "Good OT"),var(--wcss-accent-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-xl-weight, 450);line-height:var(--wcss-accent-xl-line-height, 1.3);font-size:var(--wcss-accent-xl-font-size, clamp(1.625rem, 2.3333333333vw, 2rem));letter-spacing:var(--wcss-accent-xl-letter-spacing, 0.05em);text-transform:uppercase}.accent-lg{font-family:var(--wcss-accent-lg-family, "Good OT"),var(--wcss-accent-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-lg-weight, 450);line-height:var(--wcss-accent-lg-line-height, 1.3);font-size:var(--wcss-accent-lg-font-size, clamp(1.5rem, 2.1666666667vw, 1.75rem));letter-spacing:var(--wcss-accent-lg-letter-spacing, 0.05em);text-transform:uppercase}.accent-md{font-family:var(--wcss-accent-md-family, "Good OT"),var(--wcss-accent-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-md-weight, 500);line-height:var(--wcss-accent-md-line-height, 1.3);font-size:var(--wcss-accent-md-font-size, clamp(1.375rem, 1.8333333333vw, 1.5rem));letter-spacing:var(--wcss-accent-md-letter-spacing, 0.05em);text-transform:uppercase}.accent-sm{font-family:var(--wcss-accent-sm-family, "Good OT"),var(--wcss-accent-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-sm-weight, 500);line-height:var(--wcss-accent-sm-line-height, 1.3);font-size:var(--wcss-accent-sm-font-size, clamp(1.125rem, 1.5vw, 1.25rem));letter-spacing:var(--wcss-accent-sm-letter-spacing, 0.05em);text-transform:uppercase}.accent-xs{font-family:var(--wcss-accent-xs-family, "Good OT"),var(--wcss-accent-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-xs-weight, 500);line-height:var(--wcss-accent-xs-line-height, 1.3);font-size:var(--wcss-accent-xs-font-size, clamp(1rem, 1.3333333333vw, 1rem));letter-spacing:var(--wcss-accent-xs-letter-spacing, 0.1em);text-transform:uppercase}.accent-2xs{font-family:var(--wcss-accent-2xs-family, "Good OT"),var(--wcss-accent-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-2xs-weight, 450);line-height:var(--wcss-accent-2xs-line-height, 1.3);font-size:var(--wcss-accent-2xs-font-size, clamp(0.875rem, 1.1666666667vw, 0.875rem));letter-spacing:var(--wcss-accent-2xs-letter-spacing, 0.1em);text-transform:uppercase}:host{--calendar-width: 336px;--mobile-footer-height: 150px;--mobile-header-height: 68px;--desktop-footer-height: 80px;height:100vh;height:100dvh}.calendars{display:flex;flex-direction:row}.calendars:focus{outline:none}.calendarNavButtons{position:absolute;z-index:1;top:var(--ds-size-200, 1rem);right:var(--ds-size-50, 0.25rem);left:var(--ds-size-50, 0.25rem)}.calendarNavBtn{display:flex;width:var(--ds-size-500, 2.5rem);height:var(--ds-size-500, 2.5rem);align-items:center;justify-content:center;border-width:1px;border-style:solid;border-radius:50%;cursor:pointer}.prevMonth,.nextMonth{position:absolute;top:0}.prevMonth{left:0}.nextMonth{right:0}.headerActions{padding:0 var(--ds-size-200, 1rem)}.mobileHeader{width:100%;height:var(--mobile-header-height);z-index:1;align-items:center;flex-direction:row}.headerDateFrom,.headerDateTo{display:flex;height:var(--mobile-header-height);flex:1;flex-direction:column;justify-content:center;padding:0 var(--ds-size-150, 0.75rem) 0 var(--ds-size-200, 1rem)}.mobileDateLabel{padding:var(--ds-size-25, 0.125rem) 0}.mobileFooter{display:none;width:100%;align-items:flex-end;flex-direction:column;justify-content:flex-end}.mobileFooterActions{position:relative;bottom:0;left:50%;display:none;width:calc(100% - var(--ds-size-200, 1rem)*2);align-items:flex-end;flex-direction:column;justify-content:flex-end;padding:var(--ds-size-150) calc(var(--ds-size-200, 1rem));transform:translateX(-50%)}.mobileFooterActions auro-button{width:100%}: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}`;
|
|
10807
10816
|
|
|
10808
|
-
var colorCss$7 = i$3`.calendarNavBtn{border-color:var(--ds-auro-calendar-nav-btn-border-color);background-color:var(--ds-auro-calendar-nav-btn-container-color);color:var(--ds-auro-calendar-nav-btn-chevron-color)}.calendarNavBtn:hover{--ds-auro-calendar-nav-btn-container-color: var(--ds-advanced-color-state-background-hover, #f2f2f2);--ds-auro-calendar-nav-btn-border-color: var(--ds-basic-color-brand-primary, #01426a)}.calendarNavBtn:focus{--ds-auro-calendar-nav-btn-border-color: var(--ds-basic-color-brand-primary, #01426a)}.calendarNavBtn:active{--ds-auro-calendar-nav-btn-border-color: var(--ds-basic-color-brand-primary, #01426a);box-shadow:inset 0 0 0 1px var(--ds-auro-calendar-nav-btn-border-color)}.mobileHeader{background-color:var(--ds-auro-calendar-mobile-header-container-color)}.mobileDateLabel{color:var(--ds-auro-calendar-mobile-header-text-color)}:host(:not([noRange])) .headerDateTo:after{background-color:var(--ds-auro-calendar-mobile-header-divider-color)}::slotted([slot="bib.fullscreen.fromStr"]),::slotted([slot=mobileDateToStr]){color:var(--ds-auro-datepicker-placeholder-color)}@media screen and (max-width: 576px){.calendarNavBtn{--ds-auro-calendar-nav-btn-border-color: var(--ds-basic-color-brand-primary, #01426a)}}`;
|
|
10817
|
+
var colorCss$7 = i$3`.calendarNavBtn{border-color:var(--ds-auro-calendar-nav-btn-border-color);background-color:var(--ds-auro-calendar-nav-btn-container-color);color:var(--ds-auro-calendar-nav-btn-chevron-color)}.calendarNavBtn:hover{--ds-auro-calendar-nav-btn-container-color: var(--ds-advanced-color-state-background-hover, #f2f2f2);--ds-auro-calendar-nav-btn-border-color: var(--ds-basic-color-brand-primary, #01426a)}.calendarNavBtn:focus-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)}}`;
|
|
10809
10818
|
|
|
10810
|
-
var styleCss$6 = i$3`:focus:not(:focus-visible){outline:3px solid transparent}.body-default{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-default-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-default-font-size, 1rem);line-height:var(--wcss-body-default-line-height, 1.5rem)}.body-default-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-default-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-default-emphasized-font-size, 1rem);line-height:var(--wcss-body-default-emphasized-line-height, 1.5rem)}.body-lg{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-lg-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-lg-font-size, 1.125rem);line-height:var(--wcss-body-lg-line-height, 1.625rem)}.body-lg-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-lg-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-lg-emphasized-font-size, 1.125rem);line-height:var(--wcss-body-lg-emphasized-line-height, 1.625rem)}.body-sm{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-sm-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-sm-font-size, 0.875rem);line-height:var(--wcss-body-sm-line-height, 1.25rem)}.body-sm-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-sm-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-sm-emphasized-font-size, 0.875rem);line-height:var(--wcss-body-sm-emphasized-line-height, 1.25rem)}.body-xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-xs-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-xs-font-size, 0.75rem);line-height:var(--wcss-body-xs-line-height, 1rem)}.body-xs-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-xs-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-xs-emphasized-font-size, 0.75rem);line-height:var(--wcss-body-xs-emphasized-line-height, 1rem)}.body-2xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-2xs-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-2xs-font-size, 0.625rem);line-height:var(--wcss-body-2xs-line-height, 0.875rem)}.body-2xs-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-2xs-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-2xs-emphasized-font-size, 0.625rem);line-height:var(--wcss-body-2xs-emphasized-line-height, 0.875rem)}.display-2xl{font-family:var(--wcss-display-2xl-family, "AS Circular"),var(--wcss-display-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-2xl-weight, 300);line-height:var(--wcss-display-2xl-line-height, 1.3);font-size:var(--wcss-display-2xl-font-size, clamp(3.5rem, 6vw, 5.375rem));letter-spacing:var(--wcss-display-2xl-letter-spacing, 0)}.display-xl{font-family:var(--wcss-display-xl-family, "AS Circular"),var(--wcss-display-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-xl-weight, 300);line-height:var(--wcss-display-xl-line-height, 1.3);font-size:var(--wcss-display-xl-font-size, clamp(3rem, 5.3333333333vw, 4.5rem));letter-spacing:var(--wcss-display-xl-letter-spacing, 0)}.display-lg{font-family:var(--wcss-display-lg-family, "AS Circular"),var(--wcss-display-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-lg-weight, 300);line-height:var(--wcss-display-lg-line-height, 1.3);font-size:var(--wcss-display-lg-font-size, clamp(2.75rem, 4.6666666667vw, 4rem));letter-spacing:var(--wcss-display-lg-letter-spacing, 0)}.display-md{font-family:var(--wcss-display-md-family, "AS Circular"),var(--wcss-display-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-md-weight, 300);line-height:var(--wcss-display-md-line-height, 1.3);font-size:var(--wcss-display-md-font-size, clamp(2.5rem, 4vw, 3.5rem));letter-spacing:var(--wcss-display-md-letter-spacing, 0)}.display-sm{font-family:var(--wcss-display-sm-family, "AS Circular"),var(--wcss-display-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-sm-weight, 300);line-height:var(--wcss-display-sm-line-height, 1.3);font-size:var(--wcss-display-sm-font-size, clamp(2rem, 3.6666666667vw, 3rem));letter-spacing:var(--wcss-display-sm-letter-spacing, 0)}.display-xs{font-family:var(--wcss-display-xs-family, "AS Circular"),var(--wcss-display-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-xs-weight, 300);line-height:var(--wcss-display-xs-line-height, 1.3);font-size:var(--wcss-display-xs-font-size, clamp(1.75rem, 3vw, 2.375rem));letter-spacing:var(--wcss-display-xs-letter-spacing, 0)}.heading-xl{font-family:var(--wcss-heading-xl-family, "AS Circular"),var(--wcss-heading-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-xl-weight, 300);line-height:var(--wcss-heading-xl-line-height, 1.3);font-size:var(--wcss-heading-xl-font-size, clamp(2rem, 3vw, 2.5rem));letter-spacing:var(--wcss-heading-xl-letter-spacing, 0)}.heading-lg{font-family:var(--wcss-heading-lg-family, "AS Circular"),var(--wcss-heading-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-lg-weight, 300);line-height:var(--wcss-heading-lg-line-height, 1.3);font-size:var(--wcss-heading-lg-font-size, clamp(1.75rem, 2.6666666667vw, 2.25rem));letter-spacing:var(--wcss-heading-lg-letter-spacing, 0)}.heading-md{font-family:var(--wcss-heading-md-family, "AS Circular"),var(--wcss-heading-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-md-weight, 300);line-height:var(--wcss-heading-md-line-height, 1.3);font-size:var(--wcss-heading-md-font-size, clamp(1.625rem, 2.3333333333vw, 1.75rem));letter-spacing:var(--wcss-heading-md-letter-spacing, 0)}.heading-sm{font-family:var(--wcss-heading-sm-family, "AS Circular"),var(--wcss-heading-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-sm-weight, 300);line-height:var(--wcss-heading-sm-line-height, 1.3);font-size:var(--wcss-heading-sm-font-size, clamp(1.375rem, 2vw, 1.5rem));letter-spacing:var(--wcss-heading-sm-letter-spacing, 0)}.heading-xs{font-family:var(--wcss-heading-xs-family, "AS Circular"),var(--wcss-heading-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-xs-weight, 300);line-height:var(--wcss-heading-xs-line-height, 1.3);font-size:var(--wcss-heading-xs-font-size, clamp(1.25rem, 1.6666666667vw, 1.25rem));letter-spacing:var(--wcss-heading-xs-letter-spacing, 0)}.heading-2xs{font-family:var(--wcss-heading-2xs-family, "AS Circular"),var(--wcss-heading-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-2xs-weight, 300);line-height:var(--wcss-heading-2xs-line-height, 1.3);font-size:var(--wcss-heading-2xs-font-size, clamp(1.125rem, 1.5vw, 1.125rem));letter-spacing:var(--wcss-heading-2xs-letter-spacing, 0)}.accent-2xl{font-family:var(--wcss-accent-2xl-family, "Good OT"),var(--wcss-accent-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-2xl-weight, 450);line-height:var(--wcss-accent-2xl-line-height, 1);font-size:var(--wcss-accent-2xl-font-size, clamp(2rem, 3.1666666667vw, 2.375rem));letter-spacing:var(--wcss-accent-2xl-letter-spacing, 0.05em);text-transform:uppercase}.accent-xl{font-family:var(--wcss-accent-xl-family, "Good OT"),var(--wcss-accent-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-xl-weight, 450);line-height:var(--wcss-accent-xl-line-height, 1.3);font-size:var(--wcss-accent-xl-font-size, clamp(1.625rem, 2.3333333333vw, 2rem));letter-spacing:var(--wcss-accent-xl-letter-spacing, 0.05em);text-transform:uppercase}.accent-lg{font-family:var(--wcss-accent-lg-family, "Good OT"),var(--wcss-accent-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-lg-weight, 450);line-height:var(--wcss-accent-lg-line-height, 1.3);font-size:var(--wcss-accent-lg-font-size, clamp(1.5rem, 2.1666666667vw, 1.75rem));letter-spacing:var(--wcss-accent-lg-letter-spacing, 0.05em);text-transform:uppercase}.accent-md{font-family:var(--wcss-accent-md-family, "Good OT"),var(--wcss-accent-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-md-weight, 500);line-height:var(--wcss-accent-md-line-height, 1.3);font-size:var(--wcss-accent-md-font-size, clamp(1.375rem, 1.8333333333vw, 1.5rem));letter-spacing:var(--wcss-accent-md-letter-spacing, 0.05em);text-transform:uppercase}.accent-sm{font-family:var(--wcss-accent-sm-family, "Good OT"),var(--wcss-accent-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-sm-weight, 500);line-height:var(--wcss-accent-sm-line-height, 1.3);font-size:var(--wcss-accent-sm-font-size, clamp(1.125rem, 1.5vw, 1.25rem));letter-spacing:var(--wcss-accent-sm-letter-spacing, 0.05em);text-transform:uppercase}.accent-xs{font-family:var(--wcss-accent-xs-family, "Good OT"),var(--wcss-accent-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-xs-weight, 500);line-height:var(--wcss-accent-xs-line-height, 1.3);font-size:var(--wcss-accent-xs-font-size, clamp(1rem, 1.3333333333vw, 1rem));letter-spacing:var(--wcss-accent-xs-letter-spacing, 0.1em);text-transform:uppercase}.accent-2xs{font-family:var(--wcss-accent-2xs-family, "Good OT"),var(--wcss-accent-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-2xs-weight, 450);line-height:var(--wcss-accent-2xs-line-height, 1.3);font-size:var(--wcss-accent-2xs-font-size, clamp(0.875rem, 1.1666666667vw, 0.875rem));letter-spacing:var(--wcss-accent-2xs-letter-spacing, 0.1em);text-transform:uppercase}:host{position:relative;display:block;width:calc(100% - var(--ds-size-200, 1rem) - var(--ds-size-200, 1rem));margin:0 var(--ds-size-200, 1rem)}@media screen and (min-width: 576px){:host{width:336px;padding:var(--ds-size-200, 1rem) var(--ds-size-200, 1rem) 0}}@media screen and (min-width: 576px){:host(:not(:last-of-type)):after{position:absolute;top:var(--ds-size-200, 1rem);right:calc(-1*var(--ds-size-200, 1rem));height:calc(100% - var(--ds-size-200, 1rem) - var(--ds-size-200, 1rem));display:block;width:1px;content:""}}.header{display:flex;height:var(--ds-size-500, 2.5rem);margin-bottom:var(--ds-size-150, 0.75rem);align-items:center;flex-direction:row;text-align:center}.headerTitle{display:flex;align-items:center;flex:1;flex-direction:row;justify-content:center}.headerTitle div:first-child{margin-right:var(--ds-size-100, 0.5rem)}.calendarNavBtn{position:relative;display:flex;width:var(--ds-size-500, 2.5rem);height:var(--ds-size-500, 2.5rem);align-items:center;justify-content:center;border-width:1px;border-style:solid;border-radius:50%;cursor:pointer}.table{width:100%;border-collapse:collapse}.thead{margin-bottom:var(--ds-size-100, 0.5rem)}.th{display:flex;flex:1;align-items:center;justify-content:center}.th abbr{text-decoration:none}.tbody{width:100%;transition:all 0ms;transform:translateX(0)}@media screen and (min-width: 576px){.tbody{height: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)}`;
|
|
10819
|
+
var styleCss$6 = i$3`:focus:not(:focus-visible){outline:3px solid transparent}.body-default{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-default-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-default-font-size, 1rem);line-height:var(--wcss-body-default-line-height, 1.5rem)}.body-default-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-default-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-default-emphasized-font-size, 1rem);line-height:var(--wcss-body-default-emphasized-line-height, 1.5rem)}.body-lg{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-lg-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-lg-font-size, 1.125rem);line-height:var(--wcss-body-lg-line-height, 1.625rem)}.body-lg-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-lg-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-lg-emphasized-font-size, 1.125rem);line-height:var(--wcss-body-lg-emphasized-line-height, 1.625rem)}.body-sm{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-sm-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-sm-font-size, 0.875rem);line-height:var(--wcss-body-sm-line-height, 1.25rem)}.body-sm-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-sm-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-sm-emphasized-font-size, 0.875rem);line-height:var(--wcss-body-sm-emphasized-line-height, 1.25rem)}.body-xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-xs-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-xs-font-size, 0.75rem);line-height:var(--wcss-body-xs-line-height, 1rem)}.body-xs-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-xs-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-xs-emphasized-font-size, 0.75rem);line-height:var(--wcss-body-xs-emphasized-line-height, 1rem)}.body-2xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-2xs-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-2xs-font-size, 0.625rem);line-height:var(--wcss-body-2xs-line-height, 0.875rem)}.body-2xs-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-2xs-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-2xs-emphasized-font-size, 0.625rem);line-height:var(--wcss-body-2xs-emphasized-line-height, 0.875rem)}.display-2xl{font-family:var(--wcss-display-2xl-family, "AS Circular"),var(--wcss-display-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-2xl-weight, 300);line-height:var(--wcss-display-2xl-line-height, 1.3);font-size:var(--wcss-display-2xl-font-size, clamp(3.5rem, 6vw, 5.375rem));letter-spacing:var(--wcss-display-2xl-letter-spacing, 0)}.display-xl{font-family:var(--wcss-display-xl-family, "AS Circular"),var(--wcss-display-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-xl-weight, 300);line-height:var(--wcss-display-xl-line-height, 1.3);font-size:var(--wcss-display-xl-font-size, clamp(3rem, 5.3333333333vw, 4.5rem));letter-spacing:var(--wcss-display-xl-letter-spacing, 0)}.display-lg{font-family:var(--wcss-display-lg-family, "AS Circular"),var(--wcss-display-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-lg-weight, 300);line-height:var(--wcss-display-lg-line-height, 1.3);font-size:var(--wcss-display-lg-font-size, clamp(2.75rem, 4.6666666667vw, 4rem));letter-spacing:var(--wcss-display-lg-letter-spacing, 0)}.display-md{font-family:var(--wcss-display-md-family, "AS Circular"),var(--wcss-display-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-md-weight, 300);line-height:var(--wcss-display-md-line-height, 1.3);font-size:var(--wcss-display-md-font-size, clamp(2.5rem, 4vw, 3.5rem));letter-spacing:var(--wcss-display-md-letter-spacing, 0)}.display-sm{font-family:var(--wcss-display-sm-family, "AS Circular"),var(--wcss-display-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-sm-weight, 300);line-height:var(--wcss-display-sm-line-height, 1.3);font-size:var(--wcss-display-sm-font-size, clamp(2rem, 3.6666666667vw, 3rem));letter-spacing:var(--wcss-display-sm-letter-spacing, 0)}.display-xs{font-family:var(--wcss-display-xs-family, "AS Circular"),var(--wcss-display-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-xs-weight, 300);line-height:var(--wcss-display-xs-line-height, 1.3);font-size:var(--wcss-display-xs-font-size, clamp(1.75rem, 3vw, 2.375rem));letter-spacing:var(--wcss-display-xs-letter-spacing, 0)}.heading-xl{font-family:var(--wcss-heading-xl-family, "AS Circular"),var(--wcss-heading-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-xl-weight, 300);line-height:var(--wcss-heading-xl-line-height, 1.3);font-size:var(--wcss-heading-xl-font-size, clamp(2rem, 3vw, 2.5rem));letter-spacing:var(--wcss-heading-xl-letter-spacing, 0)}.heading-lg{font-family:var(--wcss-heading-lg-family, "AS Circular"),var(--wcss-heading-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-lg-weight, 300);line-height:var(--wcss-heading-lg-line-height, 1.3);font-size:var(--wcss-heading-lg-font-size, clamp(1.75rem, 2.6666666667vw, 2.25rem));letter-spacing:var(--wcss-heading-lg-letter-spacing, 0)}.heading-md{font-family:var(--wcss-heading-md-family, "AS Circular"),var(--wcss-heading-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-md-weight, 300);line-height:var(--wcss-heading-md-line-height, 1.3);font-size:var(--wcss-heading-md-font-size, clamp(1.625rem, 2.3333333333vw, 1.75rem));letter-spacing:var(--wcss-heading-md-letter-spacing, 0)}.heading-sm{font-family:var(--wcss-heading-sm-family, "AS Circular"),var(--wcss-heading-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-sm-weight, 300);line-height:var(--wcss-heading-sm-line-height, 1.3);font-size:var(--wcss-heading-sm-font-size, clamp(1.375rem, 2vw, 1.5rem));letter-spacing:var(--wcss-heading-sm-letter-spacing, 0)}.heading-xs{font-family:var(--wcss-heading-xs-family, "AS Circular"),var(--wcss-heading-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-xs-weight, 300);line-height:var(--wcss-heading-xs-line-height, 1.3);font-size:var(--wcss-heading-xs-font-size, clamp(1.25rem, 1.6666666667vw, 1.25rem));letter-spacing:var(--wcss-heading-xs-letter-spacing, 0)}.heading-2xs{font-family:var(--wcss-heading-2xs-family, "AS Circular"),var(--wcss-heading-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-2xs-weight, 300);line-height:var(--wcss-heading-2xs-line-height, 1.3);font-size:var(--wcss-heading-2xs-font-size, clamp(1.125rem, 1.5vw, 1.125rem));letter-spacing:var(--wcss-heading-2xs-letter-spacing, 0)}.accent-2xl{font-family:var(--wcss-accent-2xl-family, "Good OT"),var(--wcss-accent-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-2xl-weight, 450);line-height:var(--wcss-accent-2xl-line-height, 1);font-size:var(--wcss-accent-2xl-font-size, clamp(2rem, 3.1666666667vw, 2.375rem));letter-spacing:var(--wcss-accent-2xl-letter-spacing, 0.05em);text-transform:uppercase}.accent-xl{font-family:var(--wcss-accent-xl-family, "Good OT"),var(--wcss-accent-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-xl-weight, 450);line-height:var(--wcss-accent-xl-line-height, 1.3);font-size:var(--wcss-accent-xl-font-size, clamp(1.625rem, 2.3333333333vw, 2rem));letter-spacing:var(--wcss-accent-xl-letter-spacing, 0.05em);text-transform:uppercase}.accent-lg{font-family:var(--wcss-accent-lg-family, "Good OT"),var(--wcss-accent-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-lg-weight, 450);line-height:var(--wcss-accent-lg-line-height, 1.3);font-size:var(--wcss-accent-lg-font-size, clamp(1.5rem, 2.1666666667vw, 1.75rem));letter-spacing:var(--wcss-accent-lg-letter-spacing, 0.05em);text-transform:uppercase}.accent-md{font-family:var(--wcss-accent-md-family, "Good OT"),var(--wcss-accent-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-md-weight, 500);line-height:var(--wcss-accent-md-line-height, 1.3);font-size:var(--wcss-accent-md-font-size, clamp(1.375rem, 1.8333333333vw, 1.5rem));letter-spacing:var(--wcss-accent-md-letter-spacing, 0.05em);text-transform:uppercase}.accent-sm{font-family:var(--wcss-accent-sm-family, "Good OT"),var(--wcss-accent-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-sm-weight, 500);line-height:var(--wcss-accent-sm-line-height, 1.3);font-size:var(--wcss-accent-sm-font-size, clamp(1.125rem, 1.5vw, 1.25rem));letter-spacing:var(--wcss-accent-sm-letter-spacing, 0.05em);text-transform:uppercase}.accent-xs{font-family:var(--wcss-accent-xs-family, "Good OT"),var(--wcss-accent-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-xs-weight, 500);line-height:var(--wcss-accent-xs-line-height, 1.3);font-size:var(--wcss-accent-xs-font-size, clamp(1rem, 1.3333333333vw, 1rem));letter-spacing:var(--wcss-accent-xs-letter-spacing, 0.1em);text-transform:uppercase}.accent-2xs{font-family:var(--wcss-accent-2xs-family, "Good OT"),var(--wcss-accent-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-2xs-weight, 450);line-height:var(--wcss-accent-2xs-line-height, 1.3);font-size:var(--wcss-accent-2xs-font-size, clamp(0.875rem, 1.1666666667vw, 0.875rem));letter-spacing:var(--wcss-accent-2xs-letter-spacing, 0.1em);text-transform:uppercase}:host{position:relative;display:block;width: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)}`;
|
|
10811
10820
|
|
|
10812
10821
|
var colorCss$6 = i$3`:focus:not(:focus-visible){outline:3px solid transparent}:host{background-color:var(--ds-auro-calendar-month-container-color)}@media screen and (min-width: 576px){:host(:not(:last-of-type)):after{background-color:var(--ds-auro-calendar-month-divider-color)}}.header{color:var(--ds-auro-calendar-month-header-color)}`;
|
|
10813
10822
|
|
|
@@ -10905,8 +10914,8 @@ class RangeDatepickerCell extends i$1 {
|
|
|
10905
10914
|
const parsedDateFrom = parseInt(dateFrom, 10);
|
|
10906
10915
|
const parsedDateTo = parseInt(dateTo, 10);
|
|
10907
10916
|
if (day) {
|
|
10908
|
-
if (getTime(startOfDay$
|
|
10909
|
-
getTime(startOfDay$
|
|
10917
|
+
if (getTime(startOfDay$1(parsedDateTo * 1000)) / 1000 === day.date ||
|
|
10918
|
+
getTime(startOfDay$1(parsedDateFrom * 1000)) / 1000 === day.date) {
|
|
10910
10919
|
this.selected = true;
|
|
10911
10920
|
}
|
|
10912
10921
|
if (((hoveredDate === day.date || day.date < hoveredDate) &&
|
|
@@ -11094,7 +11103,7 @@ class RangeDatepickerCalendar extends i$1 {
|
|
|
11094
11103
|
this.dayNamesOfTheWeek = [];
|
|
11095
11104
|
this.daysOfMonth = [];
|
|
11096
11105
|
this._locale = null;
|
|
11097
|
-
this.currentDate = parseInt(format$1(startOfDay$
|
|
11106
|
+
this.currentDate = parseInt(format$1(startOfDay$1(Date.now()), 't'), 10);
|
|
11098
11107
|
this.localeChanged();
|
|
11099
11108
|
this.yearAndMonthChanged(this.year, this.month);
|
|
11100
11109
|
}
|
|
@@ -11568,7 +11577,7 @@ __decorate([n$4({ type: Array })], RangeDatepickerCalendar.prototype, "dayNamesO
|
|
|
11568
11577
|
__decorate([n$4({ type: Array })], RangeDatepickerCalendar.prototype, "daysOfMonth", void 0);
|
|
11569
11578
|
AuroLibraryRuntimeUtils$5.prototype.registerComponent('wc-range-datepicker-calendar', RangeDatepickerCalendar);
|
|
11570
11579
|
|
|
11571
|
-
var styleCss$5 = i$3`.body-default{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-default-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-default-font-size, 1rem);line-height:var(--wcss-body-default-line-height, 1.5rem)}.body-default-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-default-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-default-emphasized-font-size, 1rem);line-height:var(--wcss-body-default-emphasized-line-height, 1.5rem)}.body-lg{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-lg-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-lg-font-size, 1.125rem);line-height:var(--wcss-body-lg-line-height, 1.625rem)}.body-lg-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-lg-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-lg-emphasized-font-size, 1.125rem);line-height:var(--wcss-body-lg-emphasized-line-height, 1.625rem)}.body-sm{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-sm-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-sm-font-size, 0.875rem);line-height:var(--wcss-body-sm-line-height, 1.25rem)}.body-sm-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-sm-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-sm-emphasized-font-size, 0.875rem);line-height:var(--wcss-body-sm-emphasized-line-height, 1.25rem)}.body-xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-xs-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-xs-font-size, 0.75rem);line-height:var(--wcss-body-xs-line-height, 1rem)}.body-xs-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-xs-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-xs-emphasized-font-size, 0.75rem);line-height:var(--wcss-body-xs-emphasized-line-height, 1rem)}.body-2xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-2xs-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-2xs-font-size, 0.625rem);line-height:var(--wcss-body-2xs-line-height, 0.875rem)}.body-2xs-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-2xs-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-2xs-emphasized-font-size, 0.625rem);line-height:var(--wcss-body-2xs-emphasized-line-height, 0.875rem)}.display-2xl{font-family:var(--wcss-display-2xl-family, "AS Circular"),var(--wcss-display-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-2xl-weight, 300);line-height:var(--wcss-display-2xl-line-height, 1.3);font-size:var(--wcss-display-2xl-font-size, clamp(3.5rem, 6vw, 5.375rem));letter-spacing:var(--wcss-display-2xl-letter-spacing, 0)}.display-xl{font-family:var(--wcss-display-xl-family, "AS Circular"),var(--wcss-display-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-xl-weight, 300);line-height:var(--wcss-display-xl-line-height, 1.3);font-size:var(--wcss-display-xl-font-size, clamp(3rem, 5.3333333333vw, 4.5rem));letter-spacing:var(--wcss-display-xl-letter-spacing, 0)}.display-lg{font-family:var(--wcss-display-lg-family, "AS Circular"),var(--wcss-display-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-lg-weight, 300);line-height:var(--wcss-display-lg-line-height, 1.3);font-size:var(--wcss-display-lg-font-size, clamp(2.75rem, 4.6666666667vw, 4rem));letter-spacing:var(--wcss-display-lg-letter-spacing, 0)}.display-md{font-family:var(--wcss-display-md-family, "AS Circular"),var(--wcss-display-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-md-weight, 300);line-height:var(--wcss-display-md-line-height, 1.3);font-size:var(--wcss-display-md-font-size, clamp(2.5rem, 4vw, 3.5rem));letter-spacing:var(--wcss-display-md-letter-spacing, 0)}.display-sm{font-family:var(--wcss-display-sm-family, "AS Circular"),var(--wcss-display-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-sm-weight, 300);line-height:var(--wcss-display-sm-line-height, 1.3);font-size:var(--wcss-display-sm-font-size, clamp(2rem, 3.6666666667vw, 3rem));letter-spacing:var(--wcss-display-sm-letter-spacing, 0)}.display-xs{font-family:var(--wcss-display-xs-family, "AS Circular"),var(--wcss-display-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-xs-weight, 300);line-height:var(--wcss-display-xs-line-height, 1.3);font-size:var(--wcss-display-xs-font-size, clamp(1.75rem, 3vw, 2.375rem));letter-spacing:var(--wcss-display-xs-letter-spacing, 0)}.heading-xl{font-family:var(--wcss-heading-xl-family, "AS Circular"),var(--wcss-heading-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-xl-weight, 300);line-height:var(--wcss-heading-xl-line-height, 1.3);font-size:var(--wcss-heading-xl-font-size, clamp(2rem, 3vw, 2.5rem));letter-spacing:var(--wcss-heading-xl-letter-spacing, 0)}.heading-lg{font-family:var(--wcss-heading-lg-family, "AS Circular"),var(--wcss-heading-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-lg-weight, 300);line-height:var(--wcss-heading-lg-line-height, 1.3);font-size:var(--wcss-heading-lg-font-size, clamp(1.75rem, 2.6666666667vw, 2.25rem));letter-spacing:var(--wcss-heading-lg-letter-spacing, 0)}.heading-md{font-family:var(--wcss-heading-md-family, "AS Circular"),var(--wcss-heading-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-md-weight, 300);line-height:var(--wcss-heading-md-line-height, 1.3);font-size:var(--wcss-heading-md-font-size, clamp(1.625rem, 2.3333333333vw, 1.75rem));letter-spacing:var(--wcss-heading-md-letter-spacing, 0)}.heading-sm{font-family:var(--wcss-heading-sm-family, "AS Circular"),var(--wcss-heading-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-sm-weight, 300);line-height:var(--wcss-heading-sm-line-height, 1.3);font-size:var(--wcss-heading-sm-font-size, clamp(1.375rem, 2vw, 1.5rem));letter-spacing:var(--wcss-heading-sm-letter-spacing, 0)}.heading-xs{font-family:var(--wcss-heading-xs-family, "AS Circular"),var(--wcss-heading-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-xs-weight, 300);line-height:var(--wcss-heading-xs-line-height, 1.3);font-size:var(--wcss-heading-xs-font-size, clamp(1.25rem, 1.6666666667vw, 1.25rem));letter-spacing:var(--wcss-heading-xs-letter-spacing, 0)}.heading-2xs{font-family:var(--wcss-heading-2xs-family, "AS Circular"),var(--wcss-heading-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-2xs-weight, 300);line-height:var(--wcss-heading-2xs-line-height, 1.3);font-size:var(--wcss-heading-2xs-font-size, clamp(1.125rem, 1.5vw, 1.125rem));letter-spacing:var(--wcss-heading-2xs-letter-spacing, 0)}.accent-2xl{font-family:var(--wcss-accent-2xl-family, "Good OT"),var(--wcss-accent-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-2xl-weight, 450);line-height:var(--wcss-accent-2xl-line-height, 1);font-size:var(--wcss-accent-2xl-font-size, clamp(2rem, 3.1666666667vw, 2.375rem));letter-spacing:var(--wcss-accent-2xl-letter-spacing, 0.05em);text-transform:uppercase}.accent-xl{font-family:var(--wcss-accent-xl-family, "Good OT"),var(--wcss-accent-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-xl-weight, 450);line-height:var(--wcss-accent-xl-line-height, 1.3);font-size:var(--wcss-accent-xl-font-size, clamp(1.625rem, 2.3333333333vw, 2rem));letter-spacing:var(--wcss-accent-xl-letter-spacing, 0.05em);text-transform:uppercase}.accent-lg{font-family:var(--wcss-accent-lg-family, "Good OT"),var(--wcss-accent-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-lg-weight, 450);line-height:var(--wcss-accent-lg-line-height, 1.3);font-size:var(--wcss-accent-lg-font-size, clamp(1.5rem, 2.1666666667vw, 1.75rem));letter-spacing:var(--wcss-accent-lg-letter-spacing, 0.05em);text-transform:uppercase}.accent-md{font-family:var(--wcss-accent-md-family, "Good OT"),var(--wcss-accent-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-md-weight, 500);line-height:var(--wcss-accent-md-line-height, 1.3);font-size:var(--wcss-accent-md-font-size, clamp(1.375rem, 1.8333333333vw, 1.5rem));letter-spacing:var(--wcss-accent-md-letter-spacing, 0.05em);text-transform:uppercase}.accent-sm{font-family:var(--wcss-accent-sm-family, "Good OT"),var(--wcss-accent-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-sm-weight, 500);line-height:var(--wcss-accent-sm-line-height, 1.3);font-size:var(--wcss-accent-sm-font-size, clamp(1.125rem, 1.5vw, 1.25rem));letter-spacing:var(--wcss-accent-sm-letter-spacing, 0.05em);text-transform:uppercase}.accent-xs{font-family:var(--wcss-accent-xs-family, "Good OT"),var(--wcss-accent-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-xs-weight, 500);line-height:var(--wcss-accent-xs-line-height, 1.3);font-size:var(--wcss-accent-xs-font-size, clamp(1rem, 1.3333333333vw, 1rem));letter-spacing:var(--wcss-accent-xs-letter-spacing, 0.1em);text-transform:uppercase}.accent-2xs{font-family:var(--wcss-accent-2xs-family, "Good OT"),var(--wcss-accent-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-2xs-weight, 450);line-height:var(--wcss-accent-2xs-line-height, 1.3);font-size:var(--wcss-accent-2xs-font-size, clamp(0.875rem, 1.1666666667vw, 0.875rem));letter-spacing:var(--wcss-accent-2xs-letter-spacing, 0.1em);text-transform:uppercase}@media screen and (max-width: 576px){:host{display:flex;justify-content:center}}.day{position:relative;width:48px;height:56px;padding:0;border-width:2px;border-style:solid;border-radius:10px;cursor:pointer;user-select:none}.day:focus-visible{outline:none;background-color:unset}.day.activeCell{outline-width:2px;outline-style:solid;outline-offset:-4px}.day.disabled{cursor:default !important;pointer-events:none}.day.blackout{cursor:pointer}.day.reference:after{position:absolute;top:-2px;left:-2px;display:block;width:calc(100% + 2px);height:calc(100% + 2px);box-sizing:content-box;border-radius:10px;border-style:solid;border-width:1px;content:""}.day.inRange::before{position:absolute;z-index:-1;top:-2px;left:-2px;display:block;width:calc(100% + 4px);height:calc(100% + 4px);box-sizing:content-box;content:""}.day.rangeDepartDate::before{position:absolute;z-index:-1;top:-2px;left:-2px;display:block;width:calc(100% + 4px);height:calc(100% + 4px);box-sizing:content-box;content:"";border-radius:10px 0 0 10px;overflow:hidden}.day.rangeReturnDate::before,.day.lastHoveredDate::before{position:absolute;z-index:-1;top:-2px;left:-2px;display:block;width:calc(100% + 4px);height:calc(100% + 4px);box-sizing:content-box;content:"";border-radius:0 10px 10px 0;overflow:hidden}.day.firstDayOfMonth::before{border-radius:10px 0 0 10px;overflow:hidden}.day.lastDayOfMonth::before{border-radius:0 10px 10px 0;overflow:hidden}.buttonWrapper{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%}.dateSlot{display:block}::slotted([slot^=date_]){width:100%;white-space:nowrap}::slotted(auro-icon){max-height:24px;max-width:24px}:host([renderForDateSlot]) .buttonWrapper{position:relative;width:100%;height:100%}:host([renderForDateSlot]) .currentDayMarker{position:relative}`;
|
|
11580
|
+
var styleCss$5 = i$3`.body-default{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-default-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-default-font-size, 1rem);line-height:var(--wcss-body-default-line-height, 1.5rem)}.body-default-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-default-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-default-emphasized-font-size, 1rem);line-height:var(--wcss-body-default-emphasized-line-height, 1.5rem)}.body-lg{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-lg-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-lg-font-size, 1.125rem);line-height:var(--wcss-body-lg-line-height, 1.625rem)}.body-lg-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-lg-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-lg-emphasized-font-size, 1.125rem);line-height:var(--wcss-body-lg-emphasized-line-height, 1.625rem)}.body-sm{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-sm-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-sm-font-size, 0.875rem);line-height:var(--wcss-body-sm-line-height, 1.25rem)}.body-sm-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-sm-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-sm-emphasized-font-size, 0.875rem);line-height:var(--wcss-body-sm-emphasized-line-height, 1.25rem)}.body-xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-xs-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-xs-font-size, 0.75rem);line-height:var(--wcss-body-xs-line-height, 1rem)}.body-xs-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-xs-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-xs-emphasized-font-size, 0.75rem);line-height:var(--wcss-body-xs-emphasized-line-height, 1rem)}.body-2xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-2xs-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-2xs-font-size, 0.625rem);line-height:var(--wcss-body-2xs-line-height, 0.875rem)}.body-2xs-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-2xs-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-2xs-emphasized-font-size, 0.625rem);line-height:var(--wcss-body-2xs-emphasized-line-height, 0.875rem)}.display-2xl{font-family:var(--wcss-display-2xl-family, "AS Circular"),var(--wcss-display-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-2xl-weight, 300);line-height:var(--wcss-display-2xl-line-height, 1.3);font-size:var(--wcss-display-2xl-font-size, clamp(3.5rem, 6vw, 5.375rem));letter-spacing:var(--wcss-display-2xl-letter-spacing, 0)}.display-xl{font-family:var(--wcss-display-xl-family, "AS Circular"),var(--wcss-display-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-xl-weight, 300);line-height:var(--wcss-display-xl-line-height, 1.3);font-size:var(--wcss-display-xl-font-size, clamp(3rem, 5.3333333333vw, 4.5rem));letter-spacing:var(--wcss-display-xl-letter-spacing, 0)}.display-lg{font-family:var(--wcss-display-lg-family, "AS Circular"),var(--wcss-display-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-lg-weight, 300);line-height:var(--wcss-display-lg-line-height, 1.3);font-size:var(--wcss-display-lg-font-size, clamp(2.75rem, 4.6666666667vw, 4rem));letter-spacing:var(--wcss-display-lg-letter-spacing, 0)}.display-md{font-family:var(--wcss-display-md-family, "AS Circular"),var(--wcss-display-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-md-weight, 300);line-height:var(--wcss-display-md-line-height, 1.3);font-size:var(--wcss-display-md-font-size, clamp(2.5rem, 4vw, 3.5rem));letter-spacing:var(--wcss-display-md-letter-spacing, 0)}.display-sm{font-family:var(--wcss-display-sm-family, "AS Circular"),var(--wcss-display-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-sm-weight, 300);line-height:var(--wcss-display-sm-line-height, 1.3);font-size:var(--wcss-display-sm-font-size, clamp(2rem, 3.6666666667vw, 3rem));letter-spacing:var(--wcss-display-sm-letter-spacing, 0)}.display-xs{font-family:var(--wcss-display-xs-family, "AS Circular"),var(--wcss-display-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-xs-weight, 300);line-height:var(--wcss-display-xs-line-height, 1.3);font-size:var(--wcss-display-xs-font-size, clamp(1.75rem, 3vw, 2.375rem));letter-spacing:var(--wcss-display-xs-letter-spacing, 0)}.heading-xl{font-family:var(--wcss-heading-xl-family, "AS Circular"),var(--wcss-heading-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-xl-weight, 300);line-height:var(--wcss-heading-xl-line-height, 1.3);font-size:var(--wcss-heading-xl-font-size, clamp(2rem, 3vw, 2.5rem));letter-spacing:var(--wcss-heading-xl-letter-spacing, 0)}.heading-lg{font-family:var(--wcss-heading-lg-family, "AS Circular"),var(--wcss-heading-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-lg-weight, 300);line-height:var(--wcss-heading-lg-line-height, 1.3);font-size:var(--wcss-heading-lg-font-size, clamp(1.75rem, 2.6666666667vw, 2.25rem));letter-spacing:var(--wcss-heading-lg-letter-spacing, 0)}.heading-md{font-family:var(--wcss-heading-md-family, "AS Circular"),var(--wcss-heading-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-md-weight, 300);line-height:var(--wcss-heading-md-line-height, 1.3);font-size:var(--wcss-heading-md-font-size, clamp(1.625rem, 2.3333333333vw, 1.75rem));letter-spacing:var(--wcss-heading-md-letter-spacing, 0)}.heading-sm{font-family:var(--wcss-heading-sm-family, "AS Circular"),var(--wcss-heading-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-sm-weight, 300);line-height:var(--wcss-heading-sm-line-height, 1.3);font-size:var(--wcss-heading-sm-font-size, clamp(1.375rem, 2vw, 1.5rem));letter-spacing:var(--wcss-heading-sm-letter-spacing, 0)}.heading-xs{font-family:var(--wcss-heading-xs-family, "AS Circular"),var(--wcss-heading-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-xs-weight, 300);line-height:var(--wcss-heading-xs-line-height, 1.3);font-size:var(--wcss-heading-xs-font-size, clamp(1.25rem, 1.6666666667vw, 1.25rem));letter-spacing:var(--wcss-heading-xs-letter-spacing, 0)}.heading-2xs{font-family:var(--wcss-heading-2xs-family, "AS Circular"),var(--wcss-heading-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-2xs-weight, 300);line-height:var(--wcss-heading-2xs-line-height, 1.3);font-size:var(--wcss-heading-2xs-font-size, clamp(1.125rem, 1.5vw, 1.125rem));letter-spacing:var(--wcss-heading-2xs-letter-spacing, 0)}.accent-2xl{font-family:var(--wcss-accent-2xl-family, "Good OT"),var(--wcss-accent-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-2xl-weight, 450);line-height:var(--wcss-accent-2xl-line-height, 1);font-size:var(--wcss-accent-2xl-font-size, clamp(2rem, 3.1666666667vw, 2.375rem));letter-spacing:var(--wcss-accent-2xl-letter-spacing, 0.05em);text-transform:uppercase}.accent-xl{font-family:var(--wcss-accent-xl-family, "Good OT"),var(--wcss-accent-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-xl-weight, 450);line-height:var(--wcss-accent-xl-line-height, 1.3);font-size:var(--wcss-accent-xl-font-size, clamp(1.625rem, 2.3333333333vw, 2rem));letter-spacing:var(--wcss-accent-xl-letter-spacing, 0.05em);text-transform:uppercase}.accent-lg{font-family:var(--wcss-accent-lg-family, "Good OT"),var(--wcss-accent-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-lg-weight, 450);line-height:var(--wcss-accent-lg-line-height, 1.3);font-size:var(--wcss-accent-lg-font-size, clamp(1.5rem, 2.1666666667vw, 1.75rem));letter-spacing:var(--wcss-accent-lg-letter-spacing, 0.05em);text-transform:uppercase}.accent-md{font-family:var(--wcss-accent-md-family, "Good OT"),var(--wcss-accent-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-md-weight, 500);line-height:var(--wcss-accent-md-line-height, 1.3);font-size:var(--wcss-accent-md-font-size, clamp(1.375rem, 1.8333333333vw, 1.5rem));letter-spacing:var(--wcss-accent-md-letter-spacing, 0.05em);text-transform:uppercase}.accent-sm{font-family:var(--wcss-accent-sm-family, "Good OT"),var(--wcss-accent-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-sm-weight, 500);line-height:var(--wcss-accent-sm-line-height, 1.3);font-size:var(--wcss-accent-sm-font-size, clamp(1.125rem, 1.5vw, 1.25rem));letter-spacing:var(--wcss-accent-sm-letter-spacing, 0.05em);text-transform:uppercase}.accent-xs{font-family:var(--wcss-accent-xs-family, "Good OT"),var(--wcss-accent-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-xs-weight, 500);line-height:var(--wcss-accent-xs-line-height, 1.3);font-size:var(--wcss-accent-xs-font-size, clamp(1rem, 1.3333333333vw, 1rem));letter-spacing:var(--wcss-accent-xs-letter-spacing, 0.1em);text-transform:uppercase}.accent-2xs{font-family:var(--wcss-accent-2xs-family, "Good OT"),var(--wcss-accent-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-2xs-weight, 450);line-height:var(--wcss-accent-2xs-line-height, 1.3);font-size:var(--wcss-accent-2xs-font-size, clamp(0.875rem, 1.1666666667vw, 0.875rem));letter-spacing:var(--wcss-accent-2xs-letter-spacing, 0.1em);text-transform:uppercase}@media screen and (max-width: 576px){:host{display:flex;justify-content:center}}.day{position:relative;width:48px;height:56px;padding:0;border-width:2px;border-style:solid;border-radius:10px;cursor:pointer;user-select:none}.day:focus-visible{outline:none;background-color:unset}.day.activeCell{outline-width:2px;outline-style:solid;outline-offset:-4px}.day.disabled{cursor:default !important;pointer-events:none}.day.blackout{cursor:pointer}.day.reference:after{position:absolute;top:-2px;left:-2px;display:block;width:calc(100% + 2px);height:calc(100% + 2px);box-sizing:content-box;border-radius:10px;border-style:solid;border-width:1px;content:""}.day.inRange::before{position:absolute;z-index:-1;top:-2px;left:-2px;display:block;width:calc(100% + 4px);height:calc(100% + 4px);box-sizing:content-box;content:""}.day.rangeDepartDate::before{position:absolute;z-index:-1;top:-2px;left:-2px;display:block;width:calc(100% + 4px);height:calc(100% + 4px);box-sizing:content-box;content:"";border-radius:10px 0 0 10px;overflow:hidden}.day.rangeReturnDate::before,.day.lastHoveredDate::before{position:absolute;z-index:-1;top:-2px;left:-2px;display:block;width:calc(100% + 4px);height:calc(100% + 4px);box-sizing:content-box;content:"";border-radius:0 10px 10px 0;overflow:hidden}.day.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}`;
|
|
11572
11581
|
|
|
11573
11582
|
var colorCss$5 = i$3`:host ::slotted([slot^=date_]){color:var(--ds-auro-calendar-cell-price-text-color)}:host ::slotted([slot^=date_][highlight]){--ds-auro-calendar-cell-price-text-color: var(--ds-basic-color-status-success, #447a1f)}:host .day{border-color:var(--ds-auro-calendar-cell-border-color);background-color:var(--ds-auro-calendar-cell-container-color);color:var(--ds-auro-calendar-cell-text-color)}:host .day.activeCell:not(.selected){--ds-auro-calendar-cell-container-color: var(--ds-auro-calendar-cell-in-range-color);border-color:var(--ds-advanced-color-state-selected);outline-color:var(--ds-auro-calendar-cell-container-color)}:host .day.selected{--ds-auro-calendar-cell-container-color: var(--ds-advanced-color-state-selected, #01426a);--ds-auro-calendar-cell-text-color: var(--ds-basic-color-texticon-inverse, #ffffff);--ds-auro-calendar-cell-price-text-color: var(--ds-basic-color-texticon-inverse, #ffffff)}:host .day.selected ::slotted([slot^=date_][highlight]){--ds-auro-calendar-cell-price-text-color: var(--ds-basic-color-status-success-subtle, #d6eac7)}:host .day.selected:hover{--ds-auro-calendar-cell-container-color: var(--ds-advanced-color-state-selected-hover, #00274a);--ds-auro-calendar-cell-text-color: var(--ds-basic-color-texticon-inverse, #ffffff)}:host .day.reference:after{border-color:var(--ds-basic-color-border-default, #959595);box-shadow:inset 0 0 0 2px var(--ds-basic-color-surface-default, #ffffff)}:host .day.reference:hover::after{box-shadow:inset 0 0 0 2px var(--ds-advanced-color-shared-background-muted, #f7f7f7)}:host .day:hover{--ds-auro-calendar-cell-container-color: var(--ds-advanced-color-state-background-hover, #f2f2f2);--ds-auro-calendar-cell-text-color: var(--ds-basic-color-texticon-default, #2a2a2a)}:host .day.disabled{--ds-auro-calendar-cell-container-color: transparent;--ds-auro-calendar-cell-text-color: var(--ds-basic-color-texticon-disabled, #d0d0d0);--ds-auro-calendar-cell-price-text-color: var(--ds-basic-color-texticon-disabled, #d0d0d0)}:host .day.blackout{--ds-auro-calendar-cell-container-color: transparent;--ds-auro-calendar-cell-text-color: var(--ds-basic-color-texticon-disabled, #d0d0d0);--ds-auro-calendar-cell-price-text-color: var(--ds-basic-color-texticon-disabled, #d0d0d0)}:host .day.inRange:before,:host .day.rangeDepartDate:before,:host .day.rangeReturnDate:before,:host .day.lastHoveredDate:before{background-color:var(--ds-auro-calendar-cell-in-range-color)}:host .day.sameDateTrip:before{--ds-auro-calendar-cell-in-range-color: transparent}`;
|
|
11574
11583
|
|
|
@@ -11593,13 +11602,103 @@ let s$2 = class s{registerComponent(e,t){customElements.get(e)||customElements.d
|
|
|
11593
11602
|
|
|
11594
11603
|
var popoverVersion = '6.0.1';
|
|
11595
11604
|
|
|
11596
|
-
|
|
11605
|
+
/**
|
|
11606
|
+
* Single source of truth for parsing and matching blackout dates across the
|
|
11607
|
+
* datepicker. Both `auro-calendar` (memoized Set + `isDateBlackout`) and the
|
|
11608
|
+
* pre-`firstUpdated` fallback inside `auro-calendar-cell` route through these
|
|
11609
|
+
* helpers so the YYYY-MM-DD → seconds conversion and the merge-with-legacy
|
|
11610
|
+
* `disabledDays` rules are defined exactly once.
|
|
11611
|
+
*/
|
|
11597
11612
|
|
|
11598
|
-
|
|
11599
|
-
|
|
11600
|
-
|
|
11601
|
-
|
|
11602
|
-
|
|
11613
|
+
/**
|
|
11614
|
+
* Converts a `YYYY-MM-DD` ISO date string to a Unix timestamp (seconds)
|
|
11615
|
+
* representing local midnight on that calendar day. Returns `null` for
|
|
11616
|
+
* inputs that don't parse to a finite timestamp.
|
|
11617
|
+
*
|
|
11618
|
+
* Uses the `new Date(year, monthIndex, day)` constructor (NOT
|
|
11619
|
+
* `new Date(isoStr)`) so the result is local-midnight rather than UTC
|
|
11620
|
+
* midnight — required to keep the calendar grid aligned with the user's
|
|
11621
|
+
* local calendar day in negative-offset timezones.
|
|
11622
|
+
*
|
|
11623
|
+
* @param {string} isoStr - Date string in `YYYY-MM-DD` format.
|
|
11624
|
+
* @returns {number|null} Local-midnight Unix timestamp (seconds), or null.
|
|
11625
|
+
*/
|
|
11626
|
+
function parseIsoToTimestamp(isoStr) {
|
|
11627
|
+
if (typeof isoStr !== 'string') {
|
|
11628
|
+
return null;
|
|
11629
|
+
}
|
|
11630
|
+
const parts = isoStr.split('-');
|
|
11631
|
+
if (parts.length !== 3) {
|
|
11632
|
+
return null;
|
|
11633
|
+
}
|
|
11634
|
+
const year = parseInt(parts[0], 10);
|
|
11635
|
+
const month = parseInt(parts[1], 10);
|
|
11636
|
+
const day = parseInt(parts[2], 10);
|
|
11637
|
+
if (!Number.isFinite(year) || !Number.isFinite(month) || !Number.isFinite(day)) {
|
|
11638
|
+
return null;
|
|
11639
|
+
}
|
|
11640
|
+
// Reject overflow values like "2024-13-40" — JS `new Date(year, month, day)`
|
|
11641
|
+
// silently normalizes those to a different calendar day, which would
|
|
11642
|
+
// disable the wrong date if we let the result through.
|
|
11643
|
+
if (month < 1 || month > 12 || day < 1 || day > 31) {
|
|
11644
|
+
return null;
|
|
11645
|
+
}
|
|
11646
|
+
const date = new Date(year, month - 1, day);
|
|
11647
|
+
// Guard the residual case where JS still rolls a value (e.g. Feb 30 → Mar 2).
|
|
11648
|
+
// After construction, getFullYear/getMonth/getDate should match the inputs.
|
|
11649
|
+
if (date.getFullYear() !== year || date.getMonth() !== month - 1 || date.getDate() !== day) {
|
|
11650
|
+
return null;
|
|
11651
|
+
}
|
|
11652
|
+
const ts = Math.floor(date.getTime() / 1000);
|
|
11653
|
+
return Number.isFinite(ts) ? ts : null;
|
|
11654
|
+
}
|
|
11655
|
+
|
|
11656
|
+
/**
|
|
11657
|
+
* Builds a `Set<number>` of seconds-since-epoch timestamps covering both the
|
|
11658
|
+
* legacy `disabledDays` (already-numeric) array and the ISO `blackoutDates`
|
|
11659
|
+
* array. Use this for O(1) membership checks in hot paths.
|
|
11660
|
+
*
|
|
11661
|
+
* @param {Array<string|number>|undefined} disabledDays - Legacy timestamp array.
|
|
11662
|
+
* @param {Array<string>|undefined} blackoutDates - ISO `YYYY-MM-DD` array.
|
|
11663
|
+
* @returns {Set<number>}
|
|
11664
|
+
*/
|
|
11665
|
+
function buildBlackoutSet(disabledDays, blackoutDates) {
|
|
11666
|
+
const set = new Set();
|
|
11667
|
+
if (Array.isArray(disabledDays)) {
|
|
11668
|
+
for (const day of disabledDays) {
|
|
11669
|
+
const ts = parseInt(day, 10);
|
|
11670
|
+
if (Number.isFinite(ts)) {
|
|
11671
|
+
set.add(ts);
|
|
11672
|
+
}
|
|
11673
|
+
}
|
|
11674
|
+
}
|
|
11675
|
+
if (Array.isArray(blackoutDates)) {
|
|
11676
|
+
for (const isoStr of blackoutDates) {
|
|
11677
|
+
const ts = parseIsoToTimestamp(isoStr);
|
|
11678
|
+
if (ts !== null) {
|
|
11679
|
+
set.add(ts);
|
|
11680
|
+
}
|
|
11681
|
+
}
|
|
11682
|
+
}
|
|
11683
|
+
return set;
|
|
11684
|
+
}
|
|
11685
|
+
|
|
11686
|
+
/**
|
|
11687
|
+
* One-shot membership test for a single timestamp against both blackout
|
|
11688
|
+
* sources. Allocates a Set on each call; only use this in cold paths
|
|
11689
|
+
* (e.g. the pre-`firstUpdated` cell fallback). Hot paths should hold the
|
|
11690
|
+
* Set returned from `buildBlackoutSet` and `.has(ts)` directly.
|
|
11691
|
+
*
|
|
11692
|
+
* @param {number} dateTs - Unix timestamp (seconds) to test.
|
|
11693
|
+
* @param {Array<string|number>|undefined} disabledDays - Legacy timestamp array.
|
|
11694
|
+
* @param {Array<string>|undefined} blackoutDates - ISO `YYYY-MM-DD` array.
|
|
11695
|
+
* @returns {boolean}
|
|
11696
|
+
*/
|
|
11697
|
+
function isBlackoutTimestamp(dateTs, disabledDays, blackoutDates) {
|
|
11698
|
+
return buildBlackoutSet(disabledDays, blackoutDates).has(dateTs);
|
|
11699
|
+
}
|
|
11700
|
+
|
|
11701
|
+
/* 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 */
|
|
11603
11702
|
|
|
11604
11703
|
class AuroCalendarCell extends i$1 {
|
|
11605
11704
|
constructor() {
|
|
@@ -11647,6 +11746,14 @@ class AuroCalendarCell extends i$1 {
|
|
|
11647
11746
|
type: Boolean,
|
|
11648
11747
|
reflect: true
|
|
11649
11748
|
},
|
|
11749
|
+
/**
|
|
11750
|
+
* @deprecated Propagated from the legacy `auro-calendar.disabledDays`
|
|
11751
|
+
* Unix-timestamp array. The cell honors it for backward compatibility
|
|
11752
|
+
* (see the divergence-check fallback inside `isBlackout`), but
|
|
11753
|
+
* consumers should migrate to `auro-datepicker.blackoutDates`
|
|
11754
|
+
* (YYYY-MM-DD ISO strings). The calendar emits a one-time
|
|
11755
|
+
* deprecation warning the first time a non-empty value is observed.
|
|
11756
|
+
*/
|
|
11650
11757
|
disabledDays: { type: Array },
|
|
11651
11758
|
isCurrentDate: { type: Boolean },
|
|
11652
11759
|
locale: { type: String },
|
|
@@ -11692,8 +11799,8 @@ class AuroCalendarCell extends i$1 {
|
|
|
11692
11799
|
const parsedDateTo = parseInt(dateTo, 10);
|
|
11693
11800
|
|
|
11694
11801
|
if (day) {
|
|
11695
|
-
const departTimestamp =
|
|
11696
|
-
const returnTimestamp =
|
|
11802
|
+
const departTimestamp = new Date(parsedDateFrom * 1000).setHours(0, 0, 0, 0) / 1000;
|
|
11803
|
+
const returnTimestamp = new Date(parsedDateTo * 1000).setHours(0, 0, 0, 0) / 1000;
|
|
11697
11804
|
|
|
11698
11805
|
if (day.date === departTimestamp || day.date === returnTimestamp) {
|
|
11699
11806
|
this.selected = true;
|
|
@@ -11777,27 +11884,33 @@ class AuroCalendarCell extends i$1 {
|
|
|
11777
11884
|
return false;
|
|
11778
11885
|
}
|
|
11779
11886
|
|
|
11780
|
-
//
|
|
11781
|
-
|
|
11782
|
-
|
|
11783
|
-
|
|
11784
|
-
|
|
11785
|
-
|
|
11786
|
-
// Check against blackoutDates (ISO format YYYY-MM-DD) on the datepicker
|
|
11787
|
-
const blackoutDates = this.datepicker?.blackoutDates;
|
|
11788
|
-
|
|
11789
|
-
if (Array.isArray(blackoutDates) && blackoutDates.length > 0) {
|
|
11790
|
-
const date = new Date(this.day.date * 1000);
|
|
11791
|
-
const yyyy = date.getFullYear();
|
|
11792
|
-
const mm = String(date.getMonth() + 1).padStart(2, '0');
|
|
11793
|
-
const dd = String(date.getDate()).padStart(2, '0');
|
|
11794
|
-
const cellDate = `${yyyy}-${mm}-${dd}`;
|
|
11795
|
-
if (blackoutDates.includes(cellDate)) {
|
|
11887
|
+
// Delegate to the calendar's memoized blackout Set for O(1) lookup
|
|
11888
|
+
// (instead of rescanning disabledDays + blackoutDates per render). The
|
|
11889
|
+
// Set is rebuilt only when either source array reference changes — see
|
|
11890
|
+
// auro-calendar.js#_getBlackoutSet.
|
|
11891
|
+
if (this.calendar && typeof this.calendar._getBlackoutSet === 'function') {
|
|
11892
|
+
if (this.calendar._getBlackoutSet().has(this.day.date)) {
|
|
11796
11893
|
return true;
|
|
11797
11894
|
}
|
|
11895
|
+
// If the cell's local disabledDays diverged from the calendar's (a
|
|
11896
|
+
// consumer or test mutated cell.disabledDays directly), the Set does
|
|
11897
|
+
// not reflect that addition — fall through to the per-cell scan only
|
|
11898
|
+
// when the reference no longer matches. Production data flow keeps
|
|
11899
|
+
// these identical, so this branch stays cold. Guarded with
|
|
11900
|
+
// Array.isArray to match `_getBlackoutSet`'s contract: non-array
|
|
11901
|
+
// values are treated as empty rather than crashing on `.findIndex`.
|
|
11902
|
+
if (Array.isArray(this.disabledDays) && this.disabledDays !== this.calendar.disabledDays && this.disabledDays.length > 0) {
|
|
11903
|
+
if (this.disabledDays.findIndex((dd) => parseInt(dd, 10) === this.day.date) !== -1) {
|
|
11904
|
+
return true;
|
|
11905
|
+
}
|
|
11906
|
+
}
|
|
11907
|
+
return false;
|
|
11798
11908
|
}
|
|
11799
11909
|
|
|
11800
|
-
|
|
11910
|
+
// Pre-firstUpdated fallback — the cell may render once before the
|
|
11911
|
+
// ancestor calendar is wired up. Routes through the shared
|
|
11912
|
+
// blackoutUtils helper so the parsing rules stay in one place.
|
|
11913
|
+
return isBlackoutTimestamp(this.day.date, this.disabledDays, this.datepicker?.blackoutDates);
|
|
11801
11914
|
}
|
|
11802
11915
|
|
|
11803
11916
|
/**
|
|
@@ -11903,12 +12016,12 @@ class AuroCalendarCell extends i$1 {
|
|
|
11903
12016
|
const parsedDateFrom = Number.parseInt(this.dateFrom, 10);
|
|
11904
12017
|
if (!Number.isFinite(parsedDateFrom)) return null;
|
|
11905
12018
|
|
|
11906
|
-
const departTimestamp =
|
|
12019
|
+
const departTimestamp = new Date(parsedDateFrom * 1000).setHours(0, 0, 0, 0) / 1000;
|
|
11907
12020
|
const dayDate = this.day.date;
|
|
11908
12021
|
|
|
11909
12022
|
const parsedDateTo = Number.parseInt(this.dateTo, 10);
|
|
11910
12023
|
const hasDateTo = Number.isFinite(parsedDateTo);
|
|
11911
|
-
const returnTimestamp = hasDateTo ?
|
|
12024
|
+
const returnTimestamp = hasDateTo ? new Date(parsedDateTo * 1000).setHours(0, 0, 0, 0) / 1000 : null;
|
|
11912
12025
|
|
|
11913
12026
|
if (dayDate === departTimestamp) return this.datepicker.rangeLabelStart || 'range start';
|
|
11914
12027
|
|
|
@@ -11918,7 +12031,9 @@ class AuroCalendarCell extends i$1 {
|
|
|
11918
12031
|
|
|
11919
12032
|
if (hasDateTo && dayDate > departTimestamp && dayDate < returnTimestamp) return this.datepicker.rangeLabelInRange || 'in range';
|
|
11920
12033
|
|
|
11921
|
-
|
|
12034
|
+
if (!hasDateTo && dayDate > departTimestamp) return this.datepicker.rangeLabelEndPreview || 'previewing range end';
|
|
12035
|
+
|
|
12036
|
+
// After end date when both dateFrom and dateTo are set.
|
|
11922
12037
|
return this.datepicker.rangeLabelAfterRange || 'after range';
|
|
11923
12038
|
}
|
|
11924
12039
|
|
|
@@ -11931,7 +12046,7 @@ class AuroCalendarCell extends i$1 {
|
|
|
11931
12046
|
*/
|
|
11932
12047
|
isDepartDate(day, dateFrom) {
|
|
11933
12048
|
const parsedDateFrom = parseInt(dateFrom, 10);
|
|
11934
|
-
const departTimestamp =
|
|
12049
|
+
const departTimestamp = new Date(parsedDateFrom * 1000).setHours(0, 0, 0, 0) / 1000;
|
|
11935
12050
|
|
|
11936
12051
|
return this.selected && day.date === departTimestamp;
|
|
11937
12052
|
}
|
|
@@ -11946,7 +12061,7 @@ class AuroCalendarCell extends i$1 {
|
|
|
11946
12061
|
*/
|
|
11947
12062
|
isReturnDate(day, dateFrom, dateTo) {
|
|
11948
12063
|
const parsedDateTo = parseInt(dateTo, 10);
|
|
11949
|
-
const returnTimestamp =
|
|
12064
|
+
const returnTimestamp = new Date(parsedDateTo * 1000).setHours(0, 0, 0, 0) / 1000;
|
|
11950
12065
|
|
|
11951
12066
|
return this.selected && day.date === returnTimestamp && dateFrom;
|
|
11952
12067
|
}
|
|
@@ -12110,6 +12225,7 @@ class AuroCalendarCell extends i$1 {
|
|
|
12110
12225
|
setTimeout(() => this.firstUpdated(), 0);
|
|
12111
12226
|
return;
|
|
12112
12227
|
}
|
|
12228
|
+
this.calendar = calendar;
|
|
12113
12229
|
this.datepicker = calendar.datepicker;
|
|
12114
12230
|
this._slotContentHandler = () => {
|
|
12115
12231
|
this.handleSlotContent();
|
|
@@ -12167,15 +12283,28 @@ class AuroCalendarCell extends i$1 {
|
|
|
12167
12283
|
this._cachedButton = this.shadowRoot.querySelector('button.day');
|
|
12168
12284
|
});
|
|
12169
12285
|
|
|
12170
|
-
//
|
|
12286
|
+
// Keep the host's gridcell aria attributes in sync with the day data.
|
|
12171
12287
|
this.updateHostAria();
|
|
12172
12288
|
}
|
|
12173
12289
|
|
|
12174
12290
|
// Update host aria when selection changes (aria-selected, range labels)
|
|
12175
|
-
|
|
12291
|
+
// or when isCurrentDate flips (aria-current).
|
|
12292
|
+
if (properties.has('dateFrom') || properties.has('dateTo') || properties.has('selected') || properties.has('isCurrentDate')) {
|
|
12176
12293
|
this.updateHostAria();
|
|
12177
12294
|
}
|
|
12178
12295
|
|
|
12296
|
+
// When the rendered range shifts (month nav, min/max change), a cell
|
|
12297
|
+
// host may be re-rendered for a new date that is now out-of-range —
|
|
12298
|
+
// but its imperatively-set `active` flag and `activeCell` ring class
|
|
12299
|
+
// from the previous date persist because setActiveCell only iterates
|
|
12300
|
+
// focusable (in-range) cells when clearing the prior active state.
|
|
12301
|
+
// Drop the active state here so the disabled cell isn't left visually
|
|
12302
|
+
// ringed.
|
|
12303
|
+
if ((properties.has('day') || properties.has('min') || properties.has('max')) &&
|
|
12304
|
+
this.active && this.isOutOfRange(this.day, this.min, this.max)) {
|
|
12305
|
+
this.clearActive();
|
|
12306
|
+
}
|
|
12307
|
+
|
|
12179
12308
|
// Configure popover when it first becomes rendered
|
|
12180
12309
|
if (properties.has('hasPopoverContent') && this.hasPopoverContent) {
|
|
12181
12310
|
this.updateComplete.then(() => this.configurePopover());
|
|
@@ -12183,8 +12312,8 @@ class AuroCalendarCell extends i$1 {
|
|
|
12183
12312
|
}
|
|
12184
12313
|
|
|
12185
12314
|
/**
|
|
12186
|
-
*
|
|
12187
|
-
*
|
|
12315
|
+
* Sets host-level ARIA so each cell exposes its date, selection state,
|
|
12316
|
+
* and blackout status to assistive tech browsing the month grid.
|
|
12188
12317
|
* @private
|
|
12189
12318
|
* @returns {void}
|
|
12190
12319
|
*/
|
|
@@ -12193,16 +12322,27 @@ class AuroCalendarCell extends i$1 {
|
|
|
12193
12322
|
|
|
12194
12323
|
const outOfRange = this.isOutOfRange(this.day, this.min, this.max);
|
|
12195
12324
|
if (outOfRange) {
|
|
12325
|
+
// Strip every aria attribute the in-range branch may have set on a
|
|
12326
|
+
// previous render — if a cell flips from in-range to out-of-range
|
|
12327
|
+
// (calendar shifts months, minDate/maxDate change, etc.).
|
|
12196
12328
|
this.removeAttribute('role');
|
|
12197
12329
|
this.removeAttribute('aria-label');
|
|
12330
|
+
this.removeAttribute('aria-current');
|
|
12331
|
+
this.removeAttribute('aria-selected');
|
|
12332
|
+
this.removeAttribute('aria-disabled');
|
|
12198
12333
|
return;
|
|
12199
12334
|
}
|
|
12200
12335
|
|
|
12201
|
-
// The host acts as the gridcell for ariaActiveDescendantElement.
|
|
12202
12336
|
this.setAttribute('role', 'gridcell');
|
|
12203
12337
|
this.setAttribute('aria-label', this.getAriaLabel());
|
|
12204
12338
|
this.setAttribute('aria-selected', this.selected ? 'true' : 'false');
|
|
12205
12339
|
|
|
12340
|
+
if (this.isCurrentDate) {
|
|
12341
|
+
this.setAttribute('aria-current', 'date');
|
|
12342
|
+
} else {
|
|
12343
|
+
this.removeAttribute('aria-current');
|
|
12344
|
+
}
|
|
12345
|
+
|
|
12206
12346
|
if (this.isBlackout()) {
|
|
12207
12347
|
this.setAttribute('aria-disabled', 'true');
|
|
12208
12348
|
} else {
|
|
@@ -12217,7 +12357,7 @@ class AuroCalendarCell extends i$1 {
|
|
|
12217
12357
|
* @returns {void}
|
|
12218
12358
|
*/
|
|
12219
12359
|
focusButton() {
|
|
12220
|
-
const button = this._cachedButton || this.shadowRoot.querySelector('button:not([
|
|
12360
|
+
const button = this._cachedButton || this.shadowRoot.querySelector('button:not([disabled])');
|
|
12221
12361
|
if (button) {
|
|
12222
12362
|
button.focus({ focusVisible: true });
|
|
12223
12363
|
}
|
|
@@ -12225,10 +12365,22 @@ class AuroCalendarCell extends i$1 {
|
|
|
12225
12365
|
|
|
12226
12366
|
/**
|
|
12227
12367
|
* Imperatively marks this cell as active without triggering a Lit re-render.
|
|
12228
|
-
*
|
|
12368
|
+
* Buttons stay tabindex="-1" because DOM focus stays on the grid wrapper —
|
|
12369
|
+
* arrow keys move the active cell imperatively and the live region carries
|
|
12370
|
+
* the SR announcement.
|
|
12371
|
+
*
|
|
12372
|
+
* Refuses to activate out-of-range cells: those are aria-hidden, have no
|
|
12373
|
+
* click/focus handlers, and are filtered out of `getFocusableCells`. The
|
|
12374
|
+
* active class showing on a disabled cell would be visually misleading,
|
|
12375
|
+
* so this guard is the single source of truth across every code path
|
|
12376
|
+
* that might call setActive (keyboard nav, focus restore, cell click).
|
|
12229
12377
|
* @returns {void}
|
|
12230
12378
|
*/
|
|
12231
12379
|
setActive() {
|
|
12380
|
+
if (this.isOutOfRange(this.day, this.min, this.max)) {
|
|
12381
|
+
return;
|
|
12382
|
+
}
|
|
12383
|
+
|
|
12232
12384
|
this.active = true;
|
|
12233
12385
|
|
|
12234
12386
|
// Show the popover when this cell becomes active via keyboard navigation.
|
|
@@ -12267,10 +12419,13 @@ class AuroCalendarCell extends i$1 {
|
|
|
12267
12419
|
if (!btn || !this.day) return;
|
|
12268
12420
|
|
|
12269
12421
|
const dayDate = this.day.date;
|
|
12270
|
-
const departTimestamp =
|
|
12422
|
+
const departTimestamp = new Date(dateFrom * 1000).setHours(0, 0, 0, 0) / 1000;
|
|
12271
12423
|
const isInRange = dayDate > departTimestamp && dayDate < hoveredDate;
|
|
12272
|
-
|
|
12273
|
-
|
|
12424
|
+
// `>=` so hovering the depart cell itself (a same-day round-trip
|
|
12425
|
+
// preview) still surfaces a visual cue: the depart cell receives both
|
|
12426
|
+
// rangeDepartDate and lastHoveredDate.
|
|
12427
|
+
const isLastHovered = dayDate === hoveredDate && hoveredDate >= departTimestamp;
|
|
12428
|
+
const isDepartWithPreview = dayDate === departTimestamp && hoveredDate >= departTimestamp;
|
|
12274
12429
|
|
|
12275
12430
|
btn.classList.toggle('inRange', isInRange);
|
|
12276
12431
|
btn.classList.toggle('lastHoveredDate', isLastHovered);
|
|
@@ -12328,7 +12483,6 @@ class AuroCalendarCell extends i$1 {
|
|
|
12328
12483
|
@focus="${outOfRange ? undefined : this.handleFocus}"
|
|
12329
12484
|
class="${e$4(buttonClasses)}"
|
|
12330
12485
|
?disabled="${outOfRange}"
|
|
12331
|
-
aria-hidden="${outOfRange ? 'true' : A$4}"
|
|
12332
12486
|
tabindex="-1">
|
|
12333
12487
|
<div class="buttonWrapper" aria-hidden="true">
|
|
12334
12488
|
<div class="currentDayMarker">${this.day?.title || A$4}</div>
|
|
@@ -13045,7 +13199,7 @@ class CalendarUtilities {
|
|
|
13045
13199
|
|
|
13046
13200
|
var colorCss$4 = i$3`#headerContainer{box-shadow:var(--ds-auro-dropdownbib-header-boxshadow-color)}#footerContainer{background-color:var(--ds-auro-dropdownbib-footer-container-color)}`;
|
|
13047
13201
|
|
|
13048
|
-
var styleCss$4 = i$3`#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
|
|
13202
|
+
var styleCss$4 = i$3`#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)}`;
|
|
13049
13203
|
|
|
13050
13204
|
var tokenCss = i$3`: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)}`;
|
|
13051
13205
|
|
|
@@ -13440,7 +13594,7 @@ class AuroBibtemplate extends i$1 {
|
|
|
13440
13594
|
}
|
|
13441
13595
|
}
|
|
13442
13596
|
|
|
13443
|
-
var formkitVersion$2 = '
|
|
13597
|
+
var formkitVersion$2 = '202607010104';
|
|
13444
13598
|
|
|
13445
13599
|
let l$1 = class l{generateElementName(t,e){let o=t;return o+="-",o+=e.replace(/[.]/g,"_"),o}generateTag(o,s,a){const r=this.generateElementName(o,s),i=i$5`${s$5(r)}`;return customElements.get(r)||customElements.define(r,class extends a{}),i}};let d$1 = class d{registerComponent(t,e){customElements.get(t)||customElements.define(t,class extends e{});}closestElement(t,e=this,o=(e,s=e&&e.closest(t))=>e&&e!==document&&e!==window?s||o(e.getRootNode().host):null){return o(e)}handleComponentTagRename(t,e){const o=e.toLowerCase();t.tagName.toLowerCase()!==o&&t.setAttribute(o,true);}elementMatch(t,e){const o=e.toLowerCase();return t.tagName.toLowerCase()===o||t.hasAttribute(o)}getSlotText(t,e){const o=t.shadowRoot?.querySelector(`slot[name="${e}"]`),s=(o?.assignedNodes({flatten:true})||[]).map(t=>t.textContent?.trim()).join(" ").trim();return s||null}};let h$4 = class h{registerComponent(t,e){customElements.get(t)||customElements.define(t,class extends e{});}closestElement(t,e=this,o=(e,s=e&&e.closest(t))=>e&&e!==document&&e!==window?s||o(e.getRootNode().host):null){return o(e)}handleComponentTagRename(t,e){const o=e.toLowerCase();t.tagName.toLowerCase()!==o&&t.setAttribute(o,true);}elementMatch(t,e){const o=e.toLowerCase();return t.tagName.toLowerCase()===o||t.hasAttribute(o)}};var c$3=i$3`:host{color:var(--ds-auro-loader-color)}:host>span{background-color:var(--ds-auro-loader-background-color);border-color:var(--ds-auro-loader-border-color)}:host([onlight]),:host([appearance=brand]){--ds-auro-loader-color: var(--ds-basic-color-brand-primary, #01426a)}:host([ondark]),:host([appearance=inverse]){--ds-auro-loader-color: var(--ds-basic-color-texticon-inverse, #ffffff)}:host([orbit])>span{--ds-auro-loader-background-color: transparent}:host([orbit])>span:nth-child(1){--ds-auro-loader-border-color: currentcolor;opacity:.25}:host([orbit])>span:nth-child(2){--ds-auro-loader-border-color: currentcolor;border-right-color:transparent;border-bottom-color:transparent;border-left-color:transparent}
|
|
13446
13600
|
`,u$6=i$3`.body-default{font-size:var(--wcss-body-default-font-size, 1rem);line-height:var(--wcss-body-default-line-height, 1.5rem)}.body-default,.body-lg{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-weight, 450);letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-lg{font-size:var(--wcss-body-lg-font-size, 1.125rem);line-height:var(--wcss-body-lg-line-height, 1.625rem)}.body-sm{font-size:var(--wcss-body-sm-font-size, .875rem);line-height:var(--wcss-body-sm-line-height, 1.25rem)}.body-sm,.body-xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-weight, 450);letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-xs{font-size:var(--wcss-body-xs-font-size, .75rem);line-height:var(--wcss-body-xs-line-height, 1rem)}.body-2xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-size:var(--wcss-body-2xs-font-size, .625rem);font-weight:var(--wcss-body-weight, 450);letter-spacing:var(--wcss-body-letter-spacing, 0);line-height:var(--wcss-body-2xs-line-height, .875rem)}.display-2xl{font-family:var(--wcss-display-2xl-family, "AS Circular"),var(--wcss-display-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-2xl-font-size, clamp(3.5rem, 6vw, 5.375rem));font-weight:var(--wcss-display-2xl-weight, 300);letter-spacing:var(--wcss-display-2xl-letter-spacing, 0);line-height:var(--wcss-display-2xl-line-height, 1.3)}.display-xl{font-family:var(--wcss-display-xl-family, "AS Circular"),var(--wcss-display-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-xl-font-size, clamp(3rem, 5.3333333333vw, 4.5rem));font-weight:var(--wcss-display-xl-weight, 300);letter-spacing:var(--wcss-display-xl-letter-spacing, 0);line-height:var(--wcss-display-xl-line-height, 1.3)}.display-lg{font-family:var(--wcss-display-lg-family, "AS Circular"),var(--wcss-display-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-lg-font-size, clamp(2.75rem, 4.6666666667vw, 4rem));font-weight:var(--wcss-display-lg-weight, 300);letter-spacing:var(--wcss-display-lg-letter-spacing, 0);line-height:var(--wcss-display-lg-line-height, 1.3)}.display-md{font-family:var(--wcss-display-md-family, "AS Circular"),var(--wcss-display-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-md-font-size, clamp(2.5rem, 4vw, 3.5rem));font-weight:var(--wcss-display-md-weight, 300);letter-spacing:var(--wcss-display-md-letter-spacing, 0);line-height:var(--wcss-display-md-line-height, 1.3)}.display-sm{font-family:var(--wcss-display-sm-family, "AS Circular"),var(--wcss-display-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-sm-font-size, clamp(2rem, 3.6666666667vw, 3rem));font-weight:var(--wcss-display-sm-weight, 300);letter-spacing:var(--wcss-display-sm-letter-spacing, 0);line-height:var(--wcss-display-sm-line-height, 1.3)}.display-xs{font-family:var(--wcss-display-xs-family, "AS Circular"),var(--wcss-display-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-xs-font-size, clamp(1.75rem, 3vw, 2.375rem));font-weight:var(--wcss-display-xs-weight, 300);letter-spacing:var(--wcss-display-xs-letter-spacing, 0);line-height:var(--wcss-display-xs-line-height, 1.3)}.heading-xl{font-family:var(--wcss-heading-xl-family, "AS Circular"),var(--wcss-heading-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-xl-font-size, clamp(2rem, 3vw, 2.5rem));font-weight:var(--wcss-heading-xl-weight, 300);letter-spacing:var(--wcss-heading-xl-letter-spacing, 0);line-height:var(--wcss-heading-xl-line-height, 1.3)}.heading-lg{font-family:var(--wcss-heading-lg-family, "AS Circular"),var(--wcss-heading-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-lg-font-size, clamp(1.75rem, 2.6666666667vw, 2.25rem));font-weight:var(--wcss-heading-lg-weight, 300);letter-spacing:var(--wcss-heading-lg-letter-spacing, 0);line-height:var(--wcss-heading-lg-line-height, 1.3)}.heading-md{font-family:var(--wcss-heading-md-family, "AS Circular"),var(--wcss-heading-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-md-font-size, clamp(1.625rem, 2.3333333333vw, 1.75rem));font-weight:var(--wcss-heading-md-weight, 300);letter-spacing:var(--wcss-heading-md-letter-spacing, 0);line-height:var(--wcss-heading-md-line-height, 1.3)}.heading-sm{font-family:var(--wcss-heading-sm-family, "AS Circular"),var(--wcss-heading-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-sm-font-size, clamp(1.375rem, 2vw, 1.5rem));font-weight:var(--wcss-heading-sm-weight, 300);letter-spacing:var(--wcss-heading-sm-letter-spacing, 0);line-height:var(--wcss-heading-sm-line-height, 1.3)}.heading-xs{font-family:var(--wcss-heading-xs-family, "AS Circular"),var(--wcss-heading-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-xs-font-size, clamp(1.25rem, 1.6666666667vw, 1.25rem));font-weight:var(--wcss-heading-xs-weight, 450);letter-spacing:var(--wcss-heading-xs-letter-spacing, 0);line-height:var(--wcss-heading-xs-line-height, 1.3)}.heading-2xs{font-family:var(--wcss-heading-2xs-family, "AS Circular"),var(--wcss-heading-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-2xs-font-size, clamp(1.125rem, 1.5vw, 1.125rem));font-weight:var(--wcss-heading-2xs-weight, 450);letter-spacing:var(--wcss-heading-2xs-letter-spacing, 0);line-height:var(--wcss-heading-2xs-line-height, 1.3)}.accent-2xl{font-family:var(--wcss-accent-2xl-family, "Good OT"),var(--wcss-accent-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-2xl-font-size, clamp(2rem, 3.1666666667vw, 2.375rem));font-weight:var(--wcss-accent-2xl-weight, 450);letter-spacing:var(--wcss-accent-2xl-letter-spacing, .05em);line-height:var(--wcss-accent-2xl-line-height, 1)}.accent-2xl,.accent-xl{text-transform:uppercase}.accent-xl{font-family:var(--wcss-accent-xl-family, "Good OT"),var(--wcss-accent-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-xl-font-size, clamp(1.625rem, 2.3333333333vw, 2rem));font-weight:var(--wcss-accent-xl-weight, 450);letter-spacing:var(--wcss-accent-xl-letter-spacing, .05em);line-height:var(--wcss-accent-xl-line-height, 1.3)}.accent-lg{font-family:var(--wcss-accent-lg-family, "Good OT"),var(--wcss-accent-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-lg-font-size, clamp(1.5rem, 2.1666666667vw, 1.75rem));font-weight:var(--wcss-accent-lg-weight, 450);letter-spacing:var(--wcss-accent-lg-letter-spacing, .05em);line-height:var(--wcss-accent-lg-line-height, 1.3)}.accent-lg,.accent-md{text-transform:uppercase}.accent-md{font-family:var(--wcss-accent-md-family, "Good OT"),var(--wcss-accent-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-md-font-size, clamp(1.375rem, 1.8333333333vw, 1.5rem));font-weight:var(--wcss-accent-md-weight, 500);letter-spacing:var(--wcss-accent-md-letter-spacing, .05em);line-height:var(--wcss-accent-md-line-height, 1.3)}.accent-sm{font-family:var(--wcss-accent-sm-family, "Good OT"),var(--wcss-accent-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-sm-font-size, clamp(1.125rem, 1.5vw, 1.25rem));font-weight:var(--wcss-accent-sm-weight, 500);letter-spacing:var(--wcss-accent-sm-letter-spacing, .05em);line-height:var(--wcss-accent-sm-line-height, 1.3)}.accent-sm,.accent-xs{text-transform:uppercase}.accent-xs{font-family:var(--wcss-accent-xs-family, "Good OT"),var(--wcss-accent-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-xs-font-size, clamp(1rem, 1.3333333333vw, 1rem));font-weight:var(--wcss-accent-xs-weight, 500);letter-spacing:var(--wcss-accent-xs-letter-spacing, .1em);line-height:var(--wcss-accent-xs-line-height, 1.3)}.accent-2xs{font-family:var(--wcss-accent-2xs-family, "Good OT"),var(--wcss-accent-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-2xs-font-size, clamp(.875rem, 1.1666666667vw, .875rem));font-weight:var(--wcss-accent-2xs-weight, 450);letter-spacing:var(--wcss-accent-2xs-letter-spacing, .1em);line-height:var(--wcss-accent-2xs-line-height, 1.3);text-transform:uppercase}:focus:not(:focus-visible){outline:3px solid transparent}:host,:host>span{position:relative}:host{width:2rem;height:2rem;display:inline-block;font-size:0}:host>span{position:absolute;display:inline-block;float:none;top:0;left:0;width:2rem;height:2rem;border-radius:100%;border-style:solid;border-width:0;box-sizing:border-box}:host([xs]),:host([xs])>span{width:1.2rem;height:1.2rem}:host([sm]),:host([sm])>span{width:3rem;height:3rem}:host([md]),:host([md])>span{width:5rem;height:5rem}:host([lg]),:host([lg])>span{width:8rem;height:8rem}:host{--margin: .375rem;--margin-xs: .2rem;--margin-sm: .5rem;--margin-md: .75rem;--margin-lg: 1rem}:host([pulse]),:host([pulse])>span{position:relative}:host([pulse]){width:calc(3rem + var(--margin) * 6);height:calc(1rem + var(--margin) * 2)}:host([pulse])>span{width:1rem;height:1rem;margin:var(--margin);animation:pulse 1.5s ease infinite}:host([pulse][xs]){width:calc(1.95rem + var(--margin-xs) * 6);height:calc(.65rem + var(--margin-xs) * 2)}:host([pulse][xs])>span{margin:var(--margin-xs);width:.65rem;height:.65rem}:host([pulse][sm]){width:calc(6rem + var(--margin-sm) * 6);height:calc(2rem + var(--margin-sm) * 2)}:host([pulse][sm])>span{margin:var(--margin-sm);width:2rem;height:2rem}:host([pulse][md]){width:calc(9rem + var(--margin-md) * 6);height:calc(3rem + var(--margin-md) * 2)}:host([pulse][md])>span{margin:var(--margin-md);width:3rem;height:3rem}:host([pulse][lg]){width:calc(15rem + var(--margin-lg) * 6);height:calc(5rem + var(--margin-lg) * 2)}:host([pulse][lg])>span{margin:var(--margin-lg);width:5rem;height:5rem}:host([pulse])>span:nth-child(1){animation-delay:-.4s}:host([pulse])>span:nth-child(2){animation-delay:-.2s}:host([pulse])>span:nth-child(3){animation-delay:0ms}@keyframes pulse{0%,to{opacity:.1;transform:scale(.9)}50%{opacity:1;transform:scale(1.1)}}:host([orbit]),:host([orbit])>span{opacity:1}:host([orbit])>span{border-width:5px}:host([orbit])>span:nth-child(2){animation:orbit 2s linear infinite}:host([orbit][sm])>span{border-width:8px}:host([orbit][md])>span{border-width:13px}:host([orbit][lg])>span{border-width:21px}@keyframes orbit{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host([ringworm])>svg{animation:rotate 2s linear infinite;height:100%;width:100%;stroke:currentcolor;stroke-width:8}:host([ringworm]) .path{stroke-dashoffset:0;animation:ringworm 1.5s ease-in-out infinite;stroke-linecap:round}@keyframes rotate{to{transform:rotate(360deg)}}@keyframes ringworm{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:89,200;stroke-dashoffset:-35px}to{stroke-dasharray:89,200;stroke-dashoffset:-124px}}:host([laser]){position:static;width:100%;display:block;height:0;overflow:hidden;font-size:unset}:host([laser])>span{position:fixed;width:100%;height:.25rem;border-radius:0;z-index:100}:host([laser])>span:nth-child(1){border-color:currentcolor;opacity:.25}:host([laser])>span:nth-child(2){border-color:currentcolor;animation:laser 2s linear infinite;opacity:1;width:50%}:host([laser][sm])>span:nth-child(2){width:20%}:host([laser][md])>span:nth-child(2){width:30%}:host([laser][lg])>span:nth-child(2){width:50%;animation-duration:1.5s}:host([laser][xl])>span:nth-child(2){width:80%;animation-duration:1.5s}@keyframes laser{0%{left:-100%}to{left:110%}}:host>.no-animation{display:none}@media (prefers-reduced-motion: reduce){:host{display:flex;align-items:center;justify-content:center}:host>span{opacity:1}:host>.loader{display:none}:host>svg{display:none}:host>.no-animation{display:block}}
|
|
@@ -13545,6 +13699,15 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
13545
13699
|
*/
|
|
13546
13700
|
this.activeCellDate = null;
|
|
13547
13701
|
|
|
13702
|
+
/**
|
|
13703
|
+
* Cached reference to the active cell host. Set by setActiveCell and
|
|
13704
|
+
* refreshed by scrollToActiveCell when its cache check misses (stale
|
|
13705
|
+
* or missing). Lets scrollToActiveCell skip a full cell scan on each
|
|
13706
|
+
* arrow key.
|
|
13707
|
+
* @private
|
|
13708
|
+
*/
|
|
13709
|
+
this._activeCell = null;
|
|
13710
|
+
|
|
13548
13711
|
/**
|
|
13549
13712
|
* Whether the #calendarGrid wrapper currently has focus.
|
|
13550
13713
|
* Used to determine whether the visualFocus ring should be shown.
|
|
@@ -13563,7 +13726,11 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
13563
13726
|
this.calendarRangeMonths = null;
|
|
13564
13727
|
|
|
13565
13728
|
/**
|
|
13566
|
-
*
|
|
13729
|
+
* @deprecated Use `auro-datepicker.blackoutDates` (an array of
|
|
13730
|
+
* `YYYY-MM-DD` ISO strings) instead. This legacy array of Unix
|
|
13731
|
+
* timestamps is still honored for backward compatibility but emits a
|
|
13732
|
+
* one-time `console.debug` the first time a non-empty value is observed.
|
|
13733
|
+
* Support will be removed in a future major release.
|
|
13567
13734
|
* @private
|
|
13568
13735
|
*/
|
|
13569
13736
|
this.disabledDays = [];
|
|
@@ -13820,17 +13987,44 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
13820
13987
|
* @returns {void}
|
|
13821
13988
|
*/
|
|
13822
13989
|
updateActiveCellForVisibleMonth() {
|
|
13823
|
-
|
|
13824
|
-
|
|
13825
|
-
requestAnimationFrame(() => {
|
|
13826
|
-
requestAnimationFrame(() => {
|
|
13827
|
-
const newDate = this.computeActiveDate({ skipDateFrom: true });
|
|
13990
|
+
this._afterMonthRender(() => {
|
|
13991
|
+
const newDate = this.computeActiveDate({ skipDateFrom: true });
|
|
13828
13992
|
|
|
13829
|
-
|
|
13830
|
-
|
|
13831
|
-
|
|
13832
|
-
|
|
13833
|
-
|
|
13993
|
+
if (newDate !== null && newDate !== undefined) {
|
|
13994
|
+
this.activeCellDate = newDate;
|
|
13995
|
+
this.setActiveCell(this.activeCellDate);
|
|
13996
|
+
}
|
|
13997
|
+
});
|
|
13998
|
+
}
|
|
13999
|
+
|
|
14000
|
+
/**
|
|
14001
|
+
* Schedules `callback` two animation frames out, giving the child
|
|
14002
|
+
* `auro-formkit-calendar-month` and `auro-formkit-calendar-cell` elements
|
|
14003
|
+
* a full render-and-paint cycle to settle before the callback reads or
|
|
14004
|
+
* mutates DOM.
|
|
14005
|
+
*
|
|
14006
|
+
* Why two frames, not one:
|
|
14007
|
+
* 1. Lit batches property updates and renders in a microtask, so frame N
|
|
14008
|
+
* schedules the render but the new DOM may not be painted yet.
|
|
14009
|
+
* 2. Cells re-cache `_cachedButton` inside their own `updateComplete.then`,
|
|
14010
|
+
* which also lands a tick later. Reading buttons from frame N+1
|
|
14011
|
+
* (after both renders + cache refresh have flushed) reliably hits the
|
|
14012
|
+
* new month's cells.
|
|
14013
|
+
*
|
|
14014
|
+
* Used by every code path that calls `handleNextMonth`/`handlePrevMonth`
|
|
14015
|
+
* and then needs to inspect the freshly-rendered cells (cross-month
|
|
14016
|
+
* keyboard nav, boundary events, `updateActiveCellForVisibleMonth`).
|
|
14017
|
+
* Do NOT collapse to a single rAF — it intermittently lands before
|
|
14018
|
+
* `_cachedButton` is refreshed, which silently breaks focus restoration
|
|
14019
|
+
* and `setActiveCell` lookups.
|
|
14020
|
+
* @private
|
|
14021
|
+
* @param {() => void} callback - Runs once after the month re-render and
|
|
14022
|
+
* the cells' button caches have refreshed.
|
|
14023
|
+
* @returns {void}
|
|
14024
|
+
*/
|
|
14025
|
+
_afterMonthRender(callback) {
|
|
14026
|
+
requestAnimationFrame(() => {
|
|
14027
|
+
requestAnimationFrame(callback);
|
|
13834
14028
|
});
|
|
13835
14029
|
}
|
|
13836
14030
|
|
|
@@ -13948,6 +14142,47 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
13948
14142
|
return Array.from(this.shadowRoot.querySelectorAll('auro-formkit-calendar-month'));
|
|
13949
14143
|
}
|
|
13950
14144
|
|
|
14145
|
+
/**
|
|
14146
|
+
* Picks the focusable cell whose date is closest to targetTs. Used as a
|
|
14147
|
+
* fallback after a month-boundary nav when the exact target date isn't
|
|
14148
|
+
* focusable — typically because the month re-render lagged or the date
|
|
14149
|
+
* was filtered out by isOutOfRange. When two cells are equidistant, the
|
|
14150
|
+
* navigation direction breaks the tie so the user moves the way they
|
|
14151
|
+
* pressed (forward → later cell, backward → earlier cell).
|
|
14152
|
+
* @private
|
|
14153
|
+
* @param {Array} cells - Focusable cells from getAllFocusableCells.
|
|
14154
|
+
* @param {Number} targetTs - Desired Unix timestamp (seconds).
|
|
14155
|
+
* @param {'next'|'prev'} direction - Navigation direction.
|
|
14156
|
+
* @returns {Object|null} The nearest cell, or null when cells is empty.
|
|
14157
|
+
*/
|
|
14158
|
+
pickNearestCell(cells, targetTs, direction) {
|
|
14159
|
+
if (!cells.length) {
|
|
14160
|
+
return null;
|
|
14161
|
+
}
|
|
14162
|
+
const forward = direction === 'next';
|
|
14163
|
+
let best = null;
|
|
14164
|
+
let bestDelta = Infinity;
|
|
14165
|
+
cells.forEach((cell) => {
|
|
14166
|
+
if (!cell.day) {
|
|
14167
|
+
return;
|
|
14168
|
+
}
|
|
14169
|
+
const distance = Math.abs(cell.day.date - targetTs);
|
|
14170
|
+
if (distance < bestDelta) {
|
|
14171
|
+
best = cell;
|
|
14172
|
+
bestDelta = distance;
|
|
14173
|
+
return;
|
|
14174
|
+
}
|
|
14175
|
+
if (distance === bestDelta && best) {
|
|
14176
|
+
if (forward && cell.day.date > best.day.date) {
|
|
14177
|
+
best = cell;
|
|
14178
|
+
} else if (!forward && cell.day.date < best.day.date) {
|
|
14179
|
+
best = cell;
|
|
14180
|
+
}
|
|
14181
|
+
}
|
|
14182
|
+
});
|
|
14183
|
+
return best;
|
|
14184
|
+
}
|
|
14185
|
+
|
|
13951
14186
|
/**
|
|
13952
14187
|
* Gets all focusable cells across all rendered months.
|
|
13953
14188
|
* @private
|
|
@@ -13964,9 +14199,9 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
13964
14199
|
|
|
13965
14200
|
/**
|
|
13966
14201
|
* Sets the active cell across all months. Only one cell has tabindex="0" at a time.
|
|
13967
|
-
* Uses imperative DOM manipulation — no Lit re-render triggered.
|
|
13968
|
-
*
|
|
13969
|
-
*
|
|
14202
|
+
* Uses imperative DOM manipulation — no Lit re-render triggered. DOM focus
|
|
14203
|
+
* stays on the grid wrapper; the live region (see getOrCreateLiveRegion)
|
|
14204
|
+
* is what announces the active cell to assistive tech.
|
|
13970
14205
|
* @param {Number} date - Unix timestamp of the cell to activate.
|
|
13971
14206
|
* @returns {void}
|
|
13972
14207
|
*/
|
|
@@ -13984,6 +14219,9 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
13984
14219
|
});
|
|
13985
14220
|
|
|
13986
14221
|
this.activeCellDate = date;
|
|
14222
|
+
// Cache so scrollToActiveCell can scroll without re-querying all cells
|
|
14223
|
+
// on every arrow keypress.
|
|
14224
|
+
this._activeCell = newActiveCell;
|
|
13987
14225
|
|
|
13988
14226
|
// Apply activeCell ring only when the grid currently has focus.
|
|
13989
14227
|
if (newActiveCell && this._gridHasFocus) {
|
|
@@ -14015,10 +14253,23 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
14015
14253
|
/**
|
|
14016
14254
|
* Shows the activeCell ring when the grid gains focus.
|
|
14017
14255
|
* @private
|
|
14256
|
+
* @param {FocusEvent} [event] - The focusin event.
|
|
14018
14257
|
* @returns {void}
|
|
14019
14258
|
*/
|
|
14020
|
-
handleGridFocusIn() {
|
|
14259
|
+
handleGridFocusIn(event) {
|
|
14021
14260
|
this._gridHasFocus = true;
|
|
14261
|
+
|
|
14262
|
+
// Only apply the activeCell ring when the grid wrapper itself receives focus
|
|
14263
|
+
// (Tab/programmatic). When focus moves into a cell button via mousedown,
|
|
14264
|
+
// event.target is the cell descendant — skip the ring here. The subsequent
|
|
14265
|
+
// click handler calls setActiveCell on the clicked cell, which applies the
|
|
14266
|
+
// ring there. Without this guard, mousedown briefly flashes the ring on the
|
|
14267
|
+
// previously-active cell (e.g. the 1st-of-month set by month navigation
|
|
14268
|
+
// when the grid was not focused).
|
|
14269
|
+
if (event && event.target !== event.currentTarget) {
|
|
14270
|
+
return;
|
|
14271
|
+
}
|
|
14272
|
+
|
|
14022
14273
|
const activeCell = this.getAllFocusableCells().find((cell) => cell.active);
|
|
14023
14274
|
if (activeCell) {
|
|
14024
14275
|
const btn = activeCell._cachedButton || activeCell.shadowRoot.querySelector('button.day');
|
|
@@ -14047,6 +14298,65 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
14047
14298
|
this.clearRangePreview();
|
|
14048
14299
|
}
|
|
14049
14300
|
|
|
14301
|
+
/**
|
|
14302
|
+
* Returns a memoized Set of blackout timestamps (seconds) drawn from both
|
|
14303
|
+
* the legacy `disabledDays` array and the datepicker's ISO `blackoutDates`.
|
|
14304
|
+
* The cache invalidates when either source array's reference changes, which
|
|
14305
|
+
* matches Lit's own reactive identity semantics for array properties.
|
|
14306
|
+
* @private
|
|
14307
|
+
* @returns {Set<Number>}
|
|
14308
|
+
*/
|
|
14309
|
+
_getBlackoutSet() {
|
|
14310
|
+
// Normalize non-array values to a stable `null` sentinel rather than a
|
|
14311
|
+
// fresh `[]` per call — otherwise the reference-identity cache key
|
|
14312
|
+
// (`_cachedBlackoutDisabledDays === disabledDays`) never matches on
|
|
14313
|
+
// subsequent calls and the Set rebuilds every time. `buildBlackoutSet`
|
|
14314
|
+
// already treats null/non-array as "no legacy disabledDays" via its
|
|
14315
|
+
// own Array.isArray gate.
|
|
14316
|
+
const disabledDays = Array.isArray(this.disabledDays) ? this.disabledDays : null;
|
|
14317
|
+
const blackoutDates = this.datepicker?.blackoutDates;
|
|
14318
|
+
if (this._blackoutSet &&
|
|
14319
|
+
this._cachedBlackoutDisabledDays === disabledDays &&
|
|
14320
|
+
this._cachedBlackoutDates === blackoutDates) {
|
|
14321
|
+
return this._blackoutSet;
|
|
14322
|
+
}
|
|
14323
|
+
|
|
14324
|
+
if (disabledDays && disabledDays.length > 0) {
|
|
14325
|
+
this._warnDisabledDaysDeprecated();
|
|
14326
|
+
}
|
|
14327
|
+
|
|
14328
|
+
this._blackoutSet = buildBlackoutSet(disabledDays, blackoutDates);
|
|
14329
|
+
this._cachedBlackoutDisabledDays = disabledDays;
|
|
14330
|
+
this._cachedBlackoutDates = blackoutDates;
|
|
14331
|
+
return this._blackoutSet;
|
|
14332
|
+
}
|
|
14333
|
+
|
|
14334
|
+
/**
|
|
14335
|
+
* Per-class flag that gates the `disabledDays` deprecation warning so it
|
|
14336
|
+
* fires exactly once per page no matter how many calendars or rebuild
|
|
14337
|
+
* cycles encounter the legacy array.
|
|
14338
|
+
* @private
|
|
14339
|
+
*/
|
|
14340
|
+
static _warnedDisabledDaysDeprecation = false;
|
|
14341
|
+
|
|
14342
|
+
/**
|
|
14343
|
+
* One-time `console.debug` directing consumers from the legacy
|
|
14344
|
+
* `disabledDays` Unix-timestamp API to the ISO `blackoutDates` API. Fires
|
|
14345
|
+
* the first time `_getBlackoutSet` rebuilds from a non-empty
|
|
14346
|
+
* `disabledDays`; subsequent calls (on this or any other AuroCalendar
|
|
14347
|
+
* instance on the page) are silent.
|
|
14348
|
+
* @private
|
|
14349
|
+
* @returns {void}
|
|
14350
|
+
*/
|
|
14351
|
+
_warnDisabledDaysDeprecated() {
|
|
14352
|
+
if (AuroCalendar._warnedDisabledDaysDeprecation) {
|
|
14353
|
+
return;
|
|
14354
|
+
}
|
|
14355
|
+
AuroCalendar._warnedDisabledDaysDeprecation = true;
|
|
14356
|
+
// eslint-disable-next-line no-console
|
|
14357
|
+
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.');
|
|
14358
|
+
}
|
|
14359
|
+
|
|
14050
14360
|
/**
|
|
14051
14361
|
* Computes the initial active date from data properties alone — no DOM required.
|
|
14052
14362
|
* Priority:
|
|
@@ -14091,21 +14401,10 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
14091
14401
|
const minTs = Number.isFinite(rawMin) ? rawMin : -Infinity;
|
|
14092
14402
|
const maxTs = Number.isFinite(rawMax) ? rawMax : Infinity;
|
|
14093
14403
|
|
|
14094
|
-
// Build a Set of blackout timestamps for O(1) lookup.
|
|
14095
|
-
|
|
14096
|
-
|
|
14097
|
-
|
|
14098
|
-
// Parse YYYY-MM-DD as local date to avoid UTC shift issues.
|
|
14099
|
-
const isoBlackouts = this.datepicker?.blackoutDates;
|
|
14100
|
-
if (Array.isArray(isoBlackouts)) {
|
|
14101
|
-
for (const isoStr of isoBlackouts) {
|
|
14102
|
-
const parts = isoStr.split('-');
|
|
14103
|
-
const ts = Math.floor(new Date(parseInt(parts[0], 10), parseInt(parts[1], 10) - 1, parseInt(parts[2], 10)).getTime() / 1000);
|
|
14104
|
-
if (Number.isFinite(ts)) {
|
|
14105
|
-
blackoutSet.add(ts);
|
|
14106
|
-
}
|
|
14107
|
-
}
|
|
14108
|
-
}
|
|
14404
|
+
// Build a Set of blackout timestamps for O(1) lookup. Memoized by the
|
|
14405
|
+
// identity of the source arrays so rapid month nav doesn't rebuild the
|
|
14406
|
+
// Set (and re-parse every ISO string) on every keypress.
|
|
14407
|
+
const blackoutSet = this._getBlackoutSet();
|
|
14109
14408
|
|
|
14110
14409
|
/**
|
|
14111
14410
|
* A date (unix timestamp in seconds, midnight-aligned) is "enabled" when
|
|
@@ -14301,8 +14600,8 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
14301
14600
|
|
|
14302
14601
|
/**
|
|
14303
14602
|
* Handles arrow key navigation on the calendar grid wrapper.
|
|
14304
|
-
* Focus stays on the grid wrapper; only
|
|
14305
|
-
*
|
|
14603
|
+
* Focus stays on the grid wrapper; only the visual active-cell indicator
|
|
14604
|
+
* changes. The live region announces the new active cell.
|
|
14306
14605
|
* @private
|
|
14307
14606
|
* @param {KeyboardEvent} event - The keyboard event.
|
|
14308
14607
|
* @returns {void}
|
|
@@ -14367,21 +14666,24 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
14367
14666
|
} else {
|
|
14368
14667
|
this.handlePrevMonth({ skipActiveUpdate: true });
|
|
14369
14668
|
}
|
|
14370
|
-
|
|
14371
|
-
|
|
14372
|
-
|
|
14373
|
-
|
|
14374
|
-
|
|
14375
|
-
|
|
14376
|
-
|
|
14377
|
-
|
|
14378
|
-
|
|
14669
|
+
this._afterMonthRender(() => {
|
|
14670
|
+
const cells = this.getAllFocusableCells();
|
|
14671
|
+
const target = cells.find((cell) => cell.day && cell.day.date === targetTs);
|
|
14672
|
+
if (target) {
|
|
14673
|
+
this.setActiveCell(target.day.date);
|
|
14674
|
+
this.handleCellFocused({ detail: { date: target.day.date } });
|
|
14675
|
+
} else {
|
|
14676
|
+
const fallback = this.pickNearestCell(cells, targetTs, navDir);
|
|
14677
|
+
if (fallback) {
|
|
14379
14678
|
this.setActiveCell(fallback.day.date);
|
|
14380
14679
|
this.handleCellFocused({ detail: { date: fallback.day.date } });
|
|
14381
14680
|
}
|
|
14382
|
-
|
|
14383
|
-
|
|
14384
|
-
|
|
14681
|
+
}
|
|
14682
|
+
// Scroll AFTER the cross-month setActiveCell so the freshly
|
|
14683
|
+
// activated cell is what gets scrolled into view.
|
|
14684
|
+
this.scrollToActiveCell();
|
|
14685
|
+
// Re-focus grid wrapper after month change re-render
|
|
14686
|
+
this.focusActiveCell();
|
|
14385
14687
|
});
|
|
14386
14688
|
}
|
|
14387
14689
|
}
|
|
@@ -14407,26 +14709,23 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
14407
14709
|
} else {
|
|
14408
14710
|
this.handlePrevMonth({ skipActiveUpdate: true });
|
|
14409
14711
|
}
|
|
14410
|
-
|
|
14411
|
-
|
|
14412
|
-
|
|
14413
|
-
|
|
14414
|
-
|
|
14415
|
-
|
|
14416
|
-
|
|
14417
|
-
|
|
14418
|
-
|
|
14419
|
-
|
|
14420
|
-
if (navDirection === 'next') {
|
|
14421
|
-
[nearest] = cells;
|
|
14422
|
-
} else {
|
|
14423
|
-
nearest = cells[cells.length - 1];
|
|
14424
|
-
}
|
|
14712
|
+
this._afterMonthRender(() => {
|
|
14713
|
+
const cells = this.getAllFocusableCells();
|
|
14714
|
+
const target = cells.find((cell) => cell.day && cell.day.date === targetDate);
|
|
14715
|
+
if (target) {
|
|
14716
|
+
this.setActiveCell(target.day.date);
|
|
14717
|
+
this.handleCellFocused({ detail: { date: target.day.date } });
|
|
14718
|
+
} else {
|
|
14719
|
+
const nearest = this.pickNearestCell(cells, targetDate, navDirection);
|
|
14720
|
+
if (nearest) {
|
|
14425
14721
|
this.setActiveCell(nearest.day.date);
|
|
14426
14722
|
this.handleCellFocused({ detail: { date: nearest.day.date } });
|
|
14427
14723
|
}
|
|
14428
|
-
|
|
14429
|
-
|
|
14724
|
+
}
|
|
14725
|
+
// Scroll AFTER the cross-month setActiveCell so the freshly
|
|
14726
|
+
// activated cell is what gets scrolled into view.
|
|
14727
|
+
this.scrollToActiveCell();
|
|
14728
|
+
this.focusActiveCell();
|
|
14430
14729
|
});
|
|
14431
14730
|
}
|
|
14432
14731
|
}
|
|
@@ -14460,6 +14759,8 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
14460
14759
|
const targetCell = allCells[targetIndex];
|
|
14461
14760
|
this.setActiveCell(targetCell.day.date);
|
|
14462
14761
|
this.scrollToActiveCell();
|
|
14762
|
+
// Match the cross-month branches: keep DOM focus on the grid wrapper
|
|
14763
|
+
// so subsequent arrow keys continue to land on this handler.
|
|
14463
14764
|
this.focusActiveCell();
|
|
14464
14765
|
} else if (direction === 'next' && this.showNextMonthBtn) {
|
|
14465
14766
|
// Navigate to next month and focus the computed next date.
|
|
@@ -14476,19 +14777,22 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
14476
14777
|
}
|
|
14477
14778
|
|
|
14478
14779
|
this.handleNextMonth({ skipActiveUpdate: true });
|
|
14479
|
-
|
|
14480
|
-
|
|
14481
|
-
|
|
14482
|
-
|
|
14483
|
-
|
|
14484
|
-
|
|
14485
|
-
|
|
14486
|
-
|
|
14487
|
-
|
|
14488
|
-
|
|
14489
|
-
|
|
14780
|
+
this._afterMonthRender(() => {
|
|
14781
|
+
const cells = this.getAllFocusableCells();
|
|
14782
|
+
const target = cells.find((cell) => cell.day && cell.day.date === nextTs);
|
|
14783
|
+
if (target) {
|
|
14784
|
+
this.setActiveCell(target.day.date);
|
|
14785
|
+
} else {
|
|
14786
|
+
// Same nearest-by-date fallback handleGridKeyDown uses — direct
|
|
14787
|
+
// `cells[length - 1]` would land on the end of the new month,
|
|
14788
|
+
// far from the user's intended `nextTs`.
|
|
14789
|
+
const fallback = this.pickNearestCell(cells, nextTs, 'next');
|
|
14790
|
+
if (fallback) {
|
|
14791
|
+
this.setActiveCell(fallback.day.date);
|
|
14490
14792
|
}
|
|
14491
|
-
}
|
|
14793
|
+
}
|
|
14794
|
+
this.scrollToActiveCell();
|
|
14795
|
+
this.focusActiveCell();
|
|
14492
14796
|
});
|
|
14493
14797
|
} else if (direction === 'prev' && this.showPrevMonthBtn) {
|
|
14494
14798
|
// Navigate to previous month and focus the computed previous date.
|
|
@@ -14502,19 +14806,22 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
14502
14806
|
}
|
|
14503
14807
|
|
|
14504
14808
|
this.handlePrevMonth({ skipActiveUpdate: true });
|
|
14505
|
-
|
|
14506
|
-
|
|
14507
|
-
|
|
14508
|
-
|
|
14509
|
-
|
|
14510
|
-
|
|
14511
|
-
|
|
14512
|
-
|
|
14513
|
-
|
|
14514
|
-
|
|
14515
|
-
|
|
14809
|
+
this._afterMonthRender(() => {
|
|
14810
|
+
const cells = this.getAllFocusableCells();
|
|
14811
|
+
const target = cells.find((cell) => cell.day && cell.day.date === prevTs);
|
|
14812
|
+
if (target) {
|
|
14813
|
+
this.setActiveCell(target.day.date);
|
|
14814
|
+
} else {
|
|
14815
|
+
// Same nearest-by-date fallback handleGridKeyDown uses — direct
|
|
14816
|
+
// `cells[0]` would land on the start of the previous month, far
|
|
14817
|
+
// from the user's intended `prevTs`.
|
|
14818
|
+
const fallback = this.pickNearestCell(cells, prevTs, 'prev');
|
|
14819
|
+
if (fallback) {
|
|
14820
|
+
this.setActiveCell(fallback.day.date);
|
|
14516
14821
|
}
|
|
14517
|
-
}
|
|
14822
|
+
}
|
|
14823
|
+
this.scrollToActiveCell();
|
|
14824
|
+
this.focusActiveCell();
|
|
14518
14825
|
});
|
|
14519
14826
|
}
|
|
14520
14827
|
} else if (key === 'ArrowDown' || key === 'ArrowUp') {
|
|
@@ -14542,20 +14849,22 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
14542
14849
|
} else {
|
|
14543
14850
|
this.handlePrevMonth({ skipActiveUpdate: true });
|
|
14544
14851
|
}
|
|
14545
|
-
|
|
14546
|
-
|
|
14547
|
-
|
|
14548
|
-
|
|
14549
|
-
|
|
14550
|
-
|
|
14551
|
-
|
|
14552
|
-
|
|
14553
|
-
|
|
14554
|
-
|
|
14852
|
+
this._afterMonthRender(() => {
|
|
14853
|
+
const cells = this.getAllFocusableCells();
|
|
14854
|
+
const target = cells.find((cell) => cell.day && cell.day.date === targetDate);
|
|
14855
|
+
if (target) {
|
|
14856
|
+
this.setActiveCell(target.day.date);
|
|
14857
|
+
} else {
|
|
14858
|
+
// Same nearest-by-date fallback handleGridKeyDown uses — the
|
|
14859
|
+
// old direction-based `cells[0]`/`cells[length-1]` clamp
|
|
14860
|
+
// could land 25+ days from the intended target.
|
|
14861
|
+
const nearest = this.pickNearestCell(cells, targetDate, navDirection);
|
|
14862
|
+
if (nearest) {
|
|
14555
14863
|
this.setActiveCell(nearest.day.date);
|
|
14556
|
-
this.focusActiveCell();
|
|
14557
14864
|
}
|
|
14558
|
-
}
|
|
14865
|
+
}
|
|
14866
|
+
this.scrollToActiveCell();
|
|
14867
|
+
this.focusActiveCell();
|
|
14559
14868
|
});
|
|
14560
14869
|
}
|
|
14561
14870
|
}
|
|
@@ -14594,8 +14903,9 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
14594
14903
|
return;
|
|
14595
14904
|
}
|
|
14596
14905
|
|
|
14597
|
-
//
|
|
14598
|
-
// so
|
|
14906
|
+
// DOM focus stays on the grid wrapper while arrow keys move the active
|
|
14907
|
+
// cell, so cell buttons never receive native focus. The debounced live
|
|
14908
|
+
// region carries the full-context announcement instead.
|
|
14599
14909
|
const announcement = this.buildFocusAnnouncement(date);
|
|
14600
14910
|
this.announceFocusDebounced(announcement);
|
|
14601
14911
|
|
|
@@ -14665,10 +14975,10 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
14665
14975
|
return null;
|
|
14666
14976
|
}
|
|
14667
14977
|
|
|
14668
|
-
const departTs =
|
|
14978
|
+
const departTs = new Date(parsedFrom * 1000).setHours(0, 0, 0, 0) / 1000;
|
|
14669
14979
|
const parsedTo = Number.parseInt(this.dateTo, 10);
|
|
14670
14980
|
const hasTo = Number.isFinite(parsedTo);
|
|
14671
|
-
const returnTs = hasTo ?
|
|
14981
|
+
const returnTs = hasTo ? new Date(parsedTo * 1000).setHours(0, 0, 0, 0) / 1000 : null;
|
|
14672
14982
|
|
|
14673
14983
|
if (date === departTs) {
|
|
14674
14984
|
return this.datepicker.rangeLabelStart || 'range start';
|
|
@@ -14682,36 +14992,22 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
14682
14992
|
if (hasTo && date > departTs && date < returnTs) {
|
|
14683
14993
|
return this.datepicker.rangeLabelInRange || 'in range';
|
|
14684
14994
|
}
|
|
14995
|
+
if (!hasTo && date > departTs) {
|
|
14996
|
+
return this.datepicker.rangeLabelEndPreview || 'previewing range end';
|
|
14997
|
+
}
|
|
14685
14998
|
return this.datepicker.rangeLabelAfterRange || 'after range';
|
|
14686
14999
|
}
|
|
14687
15000
|
|
|
14688
15001
|
/**
|
|
14689
|
-
* Checks whether a given date is a blackout date.
|
|
15002
|
+
* Checks whether a given date is a blackout date. Delegates to the
|
|
15003
|
+
* memoized `_getBlackoutSet` so the YYYY-MM-DD parsing and the
|
|
15004
|
+
* legacy/ISO merge rules live in exactly one place (see `blackoutUtils.js`).
|
|
14690
15005
|
* @private
|
|
14691
15006
|
* @param {Number} dateTs - Unix timestamp (seconds).
|
|
14692
15007
|
* @returns {Boolean} True if the date is blacked out.
|
|
14693
15008
|
*/
|
|
14694
15009
|
isDateBlackout(dateTs) {
|
|
14695
|
-
|
|
14696
|
-
if (Array.isArray(this.disabledDays) && this.disabledDays.length > 0) {
|
|
14697
|
-
if (this.disabledDays.findIndex((day) => parseInt(day, 10) === dateTs) !== -1) {
|
|
14698
|
-
return true;
|
|
14699
|
-
}
|
|
14700
|
-
}
|
|
14701
|
-
|
|
14702
|
-
// Check ISO blackoutDates.
|
|
14703
|
-
const blackoutDates = this.datepicker?.blackoutDates;
|
|
14704
|
-
if (Array.isArray(blackoutDates) && blackoutDates.length > 0) {
|
|
14705
|
-
const date = new Date(dateTs * 1000);
|
|
14706
|
-
const yyyy = date.getFullYear();
|
|
14707
|
-
const mm = String(date.getMonth() + 1).padStart(2, '0');
|
|
14708
|
-
const dd = String(date.getDate()).padStart(2, '0');
|
|
14709
|
-
if (blackoutDates.includes(`${yyyy}-${mm}-${dd}`)) {
|
|
14710
|
-
return true;
|
|
14711
|
-
}
|
|
14712
|
-
}
|
|
14713
|
-
|
|
14714
|
-
return false;
|
|
15010
|
+
return this._getBlackoutSet().has(dateTs);
|
|
14715
15011
|
}
|
|
14716
15012
|
|
|
14717
15013
|
/**
|
|
@@ -14769,7 +15065,28 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
14769
15065
|
}
|
|
14770
15066
|
|
|
14771
15067
|
/**
|
|
14772
|
-
* Scrolls the calendar
|
|
15068
|
+
* Scrolls the calendar so the active cell is visible.
|
|
15069
|
+
*
|
|
15070
|
+
* Walks the flat tree (rendered, slot-aware) outward from the active
|
|
15071
|
+
* cell's button and calls `scrollBy` on every vertically-scrollable
|
|
15072
|
+
* ancestor by whatever delta still separates the cell from that
|
|
15073
|
+
* ancestor's viewport. Native `scrollIntoView` is not used because the
|
|
15074
|
+
* cell sits inside multiple nested scroll containers (the dropdown bib's
|
|
15075
|
+
* `<dialog>`, the bibtemplate's `#bodyContainer`) and the algorithm only
|
|
15076
|
+
* scrolls one of them on its own, leaving the cell short of the
|
|
15077
|
+
* viewport in mobile fullscreen.
|
|
15078
|
+
*
|
|
15079
|
+
* Uses `behavior: 'auto'` (the spec's universally-supported non-animated
|
|
15080
|
+
* value) so each `scrollBy` resolves synchronously and the next
|
|
15081
|
+
* iteration's `getBoundingClientRect` reads post-scroll positions
|
|
15082
|
+
* accurately. This also satisfies `prefers-reduced-motion` users — the
|
|
15083
|
+
* scroll containers do not set CSS `scroll-behavior: smooth`, so `auto`
|
|
15084
|
+
* is effectively instant.
|
|
15085
|
+
*
|
|
15086
|
+
* The active cell is looked up from the cache populated by
|
|
15087
|
+
* `setActiveCell`. On a cache miss (stale or absent) the cache is
|
|
15088
|
+
* refreshed from a single full scan so subsequent calls stay on the
|
|
15089
|
+
* fast path.
|
|
14773
15090
|
* @private
|
|
14774
15091
|
* @returns {void}
|
|
14775
15092
|
*/
|
|
@@ -14778,16 +15095,69 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
14778
15095
|
return;
|
|
14779
15096
|
}
|
|
14780
15097
|
|
|
14781
|
-
|
|
14782
|
-
|
|
14783
|
-
|
|
14784
|
-
|
|
14785
|
-
|
|
15098
|
+
// Prefer the cell cached by setActiveCell so arrow-key navigation does
|
|
15099
|
+
// not rebuild the full cell list on every keypress. Fall back to a
|
|
15100
|
+
// lookup when the cache is stale (e.g. detached after month re-render)
|
|
15101
|
+
// or absent (scrollToActiveCell called without a prior setActiveCell);
|
|
15102
|
+
// refresh the cache on the fallback path so a subsequent call reuses it.
|
|
15103
|
+
const activeDate = this.activeCellDate;
|
|
15104
|
+
const cached = this._activeCell;
|
|
15105
|
+
const cacheFresh = cached && cached.isConnected && cached.day && cached.day.date === activeDate;
|
|
15106
|
+
let activeCell = null;
|
|
15107
|
+
if (cacheFresh) {
|
|
15108
|
+
activeCell = cached;
|
|
15109
|
+
} else {
|
|
15110
|
+
activeCell = this.getAllFocusableCells().find((cell) => cell.day && cell.day.date === activeDate);
|
|
15111
|
+
this._activeCell = activeCell || null;
|
|
15112
|
+
}
|
|
15113
|
+
if (!activeCell) {
|
|
15114
|
+
return;
|
|
15115
|
+
}
|
|
14786
15116
|
|
|
14787
|
-
|
|
14788
|
-
|
|
14789
|
-
|
|
14790
|
-
|
|
15117
|
+
// Scroll the button inside the cell — it has concrete dimensions,
|
|
15118
|
+
// which avoids quirks when the cell host has display: inline / contents
|
|
15119
|
+
// / flex-without-explicit-size.
|
|
15120
|
+
const target = activeCell._cachedButton ||
|
|
15121
|
+
activeCell.shadowRoot?.querySelector('button.day') ||
|
|
15122
|
+
activeCell;
|
|
15123
|
+
|
|
15124
|
+
// parentNode follows the authored DOM tree and steps over shadow roots
|
|
15125
|
+
// via slot projection. A slotted element's visual parent is its
|
|
15126
|
+
// assignedSlot's parent (inside the host's shadow tree), not the host
|
|
15127
|
+
// itself. Without this hop, the walk skips right past #bodyContainer
|
|
15128
|
+
// and <dialog> and finds no scrollable ancestor at all.
|
|
15129
|
+
const flatParent = (current) => {
|
|
15130
|
+
if (current.nodeType === Node.DOCUMENT_FRAGMENT_NODE) {
|
|
15131
|
+
return current.host || null;
|
|
15132
|
+
}
|
|
15133
|
+
if (current.assignedSlot) {
|
|
15134
|
+
return current.assignedSlot.parentNode;
|
|
15135
|
+
}
|
|
15136
|
+
return current.parentNode;
|
|
15137
|
+
};
|
|
15138
|
+
|
|
15139
|
+
let node = flatParent(target);
|
|
15140
|
+
while (node && node !== document && node !== window) {
|
|
15141
|
+
if (node.nodeType === Node.ELEMENT_NODE) {
|
|
15142
|
+
const { overflowY } = window.getComputedStyle(node);
|
|
15143
|
+
if (overflowY === 'auto' || overflowY === 'scroll') {
|
|
15144
|
+
const targetRect = target.getBoundingClientRect();
|
|
15145
|
+
const scrollerRect = node.getBoundingClientRect();
|
|
15146
|
+
let delta = 0;
|
|
15147
|
+
if (targetRect.top < scrollerRect.top) {
|
|
15148
|
+
delta = targetRect.top - scrollerRect.top;
|
|
15149
|
+
} else if (targetRect.bottom > scrollerRect.bottom) {
|
|
15150
|
+
delta = targetRect.bottom - scrollerRect.bottom;
|
|
15151
|
+
}
|
|
15152
|
+
if (delta !== 0) {
|
|
15153
|
+
node.scrollBy({
|
|
15154
|
+
top: delta,
|
|
15155
|
+
behavior: 'auto'
|
|
15156
|
+
});
|
|
15157
|
+
}
|
|
15158
|
+
}
|
|
15159
|
+
}
|
|
15160
|
+
node = flatParent(node);
|
|
14791
15161
|
}
|
|
14792
15162
|
}
|
|
14793
15163
|
|
|
@@ -14878,9 +15248,34 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
14878
15248
|
// the last one.
|
|
14879
15249
|
if (this._announceRafId) {
|
|
14880
15250
|
cancelAnimationFrame(this._announceRafId);
|
|
15251
|
+
this._announceRafId = null;
|
|
14881
15252
|
}
|
|
15253
|
+
this._deliverAnnouncement(dateStr, 0);
|
|
15254
|
+
}
|
|
15255
|
+
|
|
15256
|
+
/**
|
|
15257
|
+
* Writes `dateStr` to the live region. If the dropdown's dialog hasn't
|
|
15258
|
+
* mounted yet (so getOrCreateLiveRegion can't attach), retries on the
|
|
15259
|
+
* next animation frame up to MAX_LIVE_REGION_RETRIES instead of silently
|
|
15260
|
+
* dropping the announcement. The retry uses the same `_announceRafId`
|
|
15261
|
+
* the double-rAF below uses, so a newer announceSelection call (or
|
|
15262
|
+
* disconnectedCallback) cancels any in-flight retry.
|
|
15263
|
+
* @private
|
|
15264
|
+
* @param {String} dateStr - The localized date string to announce.
|
|
15265
|
+
* @param {Number} attempts - Number of prior retry attempts.
|
|
15266
|
+
* @returns {void}
|
|
15267
|
+
*/
|
|
15268
|
+
_deliverAnnouncement(dateStr, attempts) {
|
|
14882
15269
|
const liveRegion = this.getOrCreateLiveRegion();
|
|
14883
15270
|
if (!liveRegion) {
|
|
15271
|
+
const MAX_LIVE_REGION_RETRIES = 10;
|
|
15272
|
+
if (attempts < MAX_LIVE_REGION_RETRIES) {
|
|
15273
|
+
this._announceRafId = requestAnimationFrame(() => {
|
|
15274
|
+
this._deliverAnnouncement(dateStr, attempts + 1);
|
|
15275
|
+
});
|
|
15276
|
+
} else {
|
|
15277
|
+
this._announceRafId = null;
|
|
15278
|
+
}
|
|
14884
15279
|
return;
|
|
14885
15280
|
}
|
|
14886
15281
|
|
|
@@ -15053,7 +15448,7 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
15053
15448
|
</div>
|
|
15054
15449
|
</div>
|
|
15055
15450
|
|
|
15056
|
-
<div class="calendarWrapper
|
|
15451
|
+
<div class="calendarWrapper">
|
|
15057
15452
|
<div class="calendarNavButtons">
|
|
15058
15453
|
${this.showPrevMonthBtn ? u$a`
|
|
15059
15454
|
<button tabIndex="0" class="calendarNavBtn prevMonth" aria-label="${this.datepicker?.navLabelPrevMonth || 'Previous month'}" @click="${this.handlePrevMonth}">
|
|
@@ -15066,7 +15461,7 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
15066
15461
|
</button>
|
|
15067
15462
|
` : undefined}
|
|
15068
15463
|
</div>
|
|
15069
|
-
<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}">
|
|
15464
|
+
<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}">
|
|
15070
15465
|
${this.renderAllCalendars()}
|
|
15071
15466
|
</div>
|
|
15072
15467
|
</div>
|
|
@@ -18975,7 +19370,7 @@ let AuroHelpText$2 = class AuroHelpText extends i$1 {
|
|
|
18975
19370
|
}
|
|
18976
19371
|
};
|
|
18977
19372
|
|
|
18978
|
-
var formkitVersion$1 = '
|
|
19373
|
+
var formkitVersion$1 = '202607010104';
|
|
18979
19374
|
|
|
18980
19375
|
let AuroElement$2 = class AuroElement extends i$1 {
|
|
18981
19376
|
static get properties() {
|
|
@@ -20247,6 +20642,7 @@ class AuroDropdown extends AuroElement$2 {
|
|
|
20247
20642
|
role="${o$2(this.triggerContentFocusable ? undefined : this.a11yRole)}"
|
|
20248
20643
|
aria-expanded="${o$2(this.a11yRole === 'button' || this.triggerContentFocusable ? undefined : this.isPopoverVisible)}"
|
|
20249
20644
|
aria-controls="${o$2(this.a11yRole === 'button' || this.triggerContentFocusable ? undefined : this.dropdownId)}"
|
|
20645
|
+
aria-haspopup="${o$2(this.a11yRole === 'combobox' && !this.triggerContentFocusable ? 'listbox' : undefined)}"
|
|
20250
20646
|
aria-labelledby="${o$2(this.triggerContentFocusable ? undefined : 'triggerLabel')}"
|
|
20251
20647
|
aria-disabled="${o$2(this.disabled ? 'true' : undefined)}"
|
|
20252
20648
|
@focusin="${this.handleFocusin}"
|
|
@@ -24756,15 +25152,17 @@ class AuroFormValidation {
|
|
|
24756
25152
|
);
|
|
24757
25153
|
}
|
|
24758
25154
|
|
|
24759
|
-
|
|
24760
|
-
|
|
24761
|
-
|
|
25155
|
+
const isCombobox = this.runtimeUtils.elementMatch(elem, 'auro-combobox');
|
|
25156
|
+
|
|
25157
|
+
// If there is a second input in the elem and that value is undefined or an empty string set hasValue to false.
|
|
25158
|
+
// Skip for combobox: its second auro-input is the fullscreen-bib mirror of the same value, not an independent
|
|
25159
|
+
// field (datepicker is the intended consumer — start/end are independently required).
|
|
25160
|
+
if (this.auroInputElements?.length === 2 && !isCombobox) {
|
|
25161
|
+
if (!this.auroInputElements[1].value || this.auroInputElements[1].value.length === 0) {
|
|
24762
25162
|
hasValue = false;
|
|
24763
25163
|
}
|
|
24764
25164
|
}
|
|
24765
25165
|
|
|
24766
|
-
const isCombobox = this.runtimeUtils.elementMatch(elem, 'auro-combobox');
|
|
24767
|
-
|
|
24768
25166
|
if (isCombobox) {
|
|
24769
25167
|
|
|
24770
25168
|
if (!elem.persistInput || elem.behavior === "filter") {
|
|
@@ -30700,6 +31098,13 @@ class AuroInputUtilities {
|
|
|
30700
31098
|
* @returns {string | undefined}
|
|
30701
31099
|
*/
|
|
30702
31100
|
toFormattedValue(valueObject, format) {
|
|
31101
|
+
// Exposed publicly via `AuroInputUtil.toFormattedValue`, so a missing
|
|
31102
|
+
// `format` argument has to fail gracefully rather than throw on
|
|
31103
|
+
// `format.toLowerCase()`. Treat any falsy value (undefined, null, '')
|
|
31104
|
+
// as "no format → no display value".
|
|
31105
|
+
if (!format) {
|
|
31106
|
+
return undefined;
|
|
31107
|
+
}
|
|
30703
31108
|
const normalizedFormat = format.toLowerCase();
|
|
30704
31109
|
const maskOptions = this.getMaskOptions('date', normalizedFormat);
|
|
30705
31110
|
|
|
@@ -30851,76 +31256,19 @@ class BaseInput extends AuroElement$1 {
|
|
|
30851
31256
|
constructor() {
|
|
30852
31257
|
super();
|
|
30853
31258
|
|
|
30854
|
-
|
|
30855
|
-
|
|
30856
|
-
|
|
30857
|
-
|
|
30858
|
-
|
|
30859
|
-
|
|
30860
|
-
|
|
30861
|
-
|
|
30862
|
-
|
|
30863
|
-
|
|
30864
|
-
this.setCustomValidityForType = undefined;
|
|
30865
|
-
this.size = 'lg';
|
|
30866
|
-
this.shape = 'classic';
|
|
30867
|
-
this.value = undefined;
|
|
30868
|
-
|
|
30869
|
-
this._initializePrivateDefaults();
|
|
30870
|
-
}
|
|
30871
|
-
|
|
30872
|
-
/**
|
|
30873
|
-
* Internal Defaults.
|
|
30874
|
-
* @private
|
|
30875
|
-
* @returns {void}
|
|
30876
|
-
*/
|
|
30877
|
-
_initializePrivateDefaults() {
|
|
31259
|
+
// Single-source initialization. Alphabetized so duplicate or stale
|
|
31260
|
+
// defaults are immediately obvious on a diff. Every field is assigned
|
|
31261
|
+
// exactly once here (previously the constructor + the old
|
|
31262
|
+
// `_initializePrivateDefaults` overlapped — both wrote ~14 of the same
|
|
31263
|
+
// fields and double-allocated `util` and `validation`, discarding the
|
|
31264
|
+
// first instance). `validation` is now allocated exactly once; `util`
|
|
31265
|
+
// is seeded here with an en-US default and then rebuilt in
|
|
31266
|
+
// `connectedCallback` once the consumer-resolved locale is available,
|
|
31267
|
+
// so a parent (datepicker/combobox) calling `validate()` synchronously
|
|
31268
|
+
// during its own update cycle sees a populated util instance.
|
|
30878
31269
|
this.activeLabel = false;
|
|
30879
|
-
this.appearance = "default";
|
|
30880
|
-
this.icon = false;
|
|
30881
|
-
this.disabled = false;
|
|
30882
|
-
this.dvInputOnly = false;
|
|
30883
|
-
this.hideLabelVisually = false;
|
|
30884
|
-
this.max = undefined;
|
|
30885
|
-
this.maxLength = undefined;
|
|
30886
|
-
this.min = undefined;
|
|
30887
|
-
this.minLength = undefined;
|
|
30888
|
-
this.noValidate = false;
|
|
30889
|
-
this.onDark = false;
|
|
30890
|
-
this.required = false;
|
|
30891
|
-
this.setCustomValidityForType = undefined;
|
|
30892
|
-
|
|
30893
|
-
// Used for storing raw values returned from input mask.
|
|
30894
|
-
this._rawMaskValue = undefined;
|
|
30895
|
-
|
|
30896
|
-
/**
|
|
30897
|
-
* @private
|
|
30898
|
-
*/
|
|
30899
|
-
this.layout = 'classic';
|
|
30900
|
-
|
|
30901
|
-
/**
|
|
30902
|
-
* @private
|
|
30903
|
-
*/
|
|
30904
|
-
this.shape = 'classic';
|
|
30905
|
-
|
|
30906
|
-
/**
|
|
30907
|
-
* @private
|
|
30908
|
-
*/
|
|
30909
|
-
this.size = 'lg';
|
|
30910
|
-
|
|
30911
|
-
this.touched = false;
|
|
30912
|
-
this.util = new AuroInputUtilities({
|
|
30913
|
-
locale: "en-US",
|
|
30914
|
-
format: this.format
|
|
30915
|
-
});
|
|
30916
|
-
this.validation = new AuroFormValidation();
|
|
30917
|
-
this.inputIconName = undefined;
|
|
30918
|
-
this.showPassword = false;
|
|
30919
|
-
this.validationCCLength = undefined;
|
|
30920
|
-
this.hasValue = false;
|
|
30921
|
-
this.label = 'Input label is undefined';
|
|
30922
|
-
|
|
30923
31270
|
|
|
31271
|
+
/** @private */
|
|
30924
31272
|
this.allowedInputTypes = [
|
|
30925
31273
|
"text",
|
|
30926
31274
|
"number",
|
|
@@ -30929,7 +31277,9 @@ class BaseInput extends AuroElement$1 {
|
|
|
30929
31277
|
"credit-card",
|
|
30930
31278
|
"tel"
|
|
30931
31279
|
];
|
|
30932
|
-
this.
|
|
31280
|
+
this.appearance = "default";
|
|
31281
|
+
|
|
31282
|
+
/** @private */
|
|
30933
31283
|
this.dateFormatMap = {
|
|
30934
31284
|
'mm/dd/yyyy': 'dateMMDDYYYY',
|
|
30935
31285
|
'dd/mm/yyyy': 'dateDDMMYYYY',
|
|
@@ -30946,27 +31296,62 @@ class BaseInput extends AuroElement$1 {
|
|
|
30946
31296
|
'dd/mm': 'dateDDMM',
|
|
30947
31297
|
'mm/dd': 'dateMMDD'
|
|
30948
31298
|
};
|
|
31299
|
+
this.disabled = false;
|
|
31300
|
+
|
|
31301
|
+
/** @private */
|
|
30949
31302
|
this.domHandler = new DomHandler();
|
|
30950
31303
|
this.dvInputOnly = false;
|
|
30951
31304
|
this.hasValue = false;
|
|
31305
|
+
this.hideLabelVisually = false;
|
|
31306
|
+
this.icon = false;
|
|
31307
|
+
|
|
31308
|
+
/** @private */
|
|
30952
31309
|
this.inputIconName = undefined;
|
|
31310
|
+
|
|
31311
|
+
/** @private */
|
|
30953
31312
|
this.label = 'Input label is undefined';
|
|
31313
|
+
this.layout = 'classic';
|
|
31314
|
+
this.locale = 'en-US';
|
|
31315
|
+
this.max = undefined;
|
|
31316
|
+
this.maxLength = undefined;
|
|
31317
|
+
this.min = undefined;
|
|
31318
|
+
this.minLength = undefined;
|
|
30954
31319
|
this.noValidate = false;
|
|
30955
|
-
this.
|
|
31320
|
+
this.onDark = false;
|
|
31321
|
+
// Raw values returned from the input mask before model normalization.
|
|
31322
|
+
this._rawMaskValue = undefined;
|
|
31323
|
+
this.required = false;
|
|
31324
|
+
this.setCustomValidityForType = undefined;
|
|
31325
|
+
// Credit Card is intentionally excluded — its mask manages the cursor
|
|
31326
|
+
// itself, and listing it here caused cursor placement issues in Safari.
|
|
31327
|
+
/** @private */
|
|
30956
31328
|
this.setSelectionInputTypes = [
|
|
30957
31329
|
"text",
|
|
30958
31330
|
"password",
|
|
30959
31331
|
"email"
|
|
30960
|
-
];
|
|
31332
|
+
];
|
|
31333
|
+
this.shape = 'classic';
|
|
31334
|
+
|
|
31335
|
+
/** @private */
|
|
30961
31336
|
this.showPassword = false;
|
|
31337
|
+
this.size = 'lg';
|
|
30962
31338
|
this.touched = false;
|
|
31339
|
+
|
|
31340
|
+
/** @private */
|
|
30963
31341
|
this.uniqueId = new UniqueId().create();
|
|
31342
|
+
|
|
31343
|
+
/** @private */
|
|
30964
31344
|
this.util = new AuroInputUtilities({
|
|
30965
31345
|
locale: this.locale,
|
|
30966
31346
|
format: this.format
|
|
30967
31347
|
});
|
|
31348
|
+
|
|
31349
|
+
/** @private */
|
|
30968
31350
|
this.validation = new AuroFormValidation();
|
|
31351
|
+
|
|
31352
|
+
/** @private */
|
|
30969
31353
|
this.validationCCLength = undefined;
|
|
31354
|
+
this.value = undefined;
|
|
30970
31355
|
}
|
|
30971
31356
|
|
|
30972
31357
|
// function to define props used within the scope of this component
|
|
@@ -31470,6 +31855,15 @@ class BaseInput extends AuroElement$1 {
|
|
|
31470
31855
|
|
|
31471
31856
|
this.inputId = this.id ? `${this.id}-input` : window.crypto.randomUUID();
|
|
31472
31857
|
|
|
31858
|
+
// Normalize the format token to lowercase so case-mixed values supplied
|
|
31859
|
+
// via attribute (e.g. `format="MM/DD/YYYY"`) hit the `dateFormatMap`
|
|
31860
|
+
// lookup inside `setCustomHelpTextMessage`. Without this, an uppercase
|
|
31861
|
+
// format silently misses the map and leaves `setCustomValidityForType`
|
|
31862
|
+
// unset.
|
|
31863
|
+
if (this.format) {
|
|
31864
|
+
this.format = this.format.toLowerCase();
|
|
31865
|
+
}
|
|
31866
|
+
|
|
31473
31867
|
// use validity message override if declared when initializing the component
|
|
31474
31868
|
if (this.hasAttribute('setCustomValidity')) {
|
|
31475
31869
|
this.ValidityMessageOverride = this.setCustomValidity;
|
|
@@ -31553,6 +31947,13 @@ class BaseInput extends AuroElement$1 {
|
|
|
31553
31947
|
|
|
31554
31948
|
if (typeToI18n.includes(this.type)) {
|
|
31555
31949
|
this.setCustomValidityForType = i18n$1(this.lang, this.type);
|
|
31950
|
+
// COVERAGE: this `else if` branch is unreachable in WTR. connectedCallback
|
|
31951
|
+
// (L682) calls configureDataForType, which at L1266-1268 assigns
|
|
31952
|
+
// `this.format = this.util.getDateMaskFromLocale().toLowerCase()` for any
|
|
31953
|
+
// type=date input whose `format` attribute is unset. That runs before
|
|
31954
|
+
// firstUpdated invokes setCustomHelpTextMessage, so `!this.format` is
|
|
31955
|
+
// always false here. Retained as a defensive fallback; the whole function
|
|
31956
|
+
// is @deprecated per AB#1557296 and slated for removal.
|
|
31556
31957
|
} else if (!this.format && this.type === 'date') {
|
|
31557
31958
|
this.setCustomValidityForType = i18n$1(this.lang, 'dateMMDDYYYY');
|
|
31558
31959
|
} else if (this.dateFormatMap[this.format]) {
|
|
@@ -31842,6 +32243,38 @@ class BaseInput extends AuroElement$1 {
|
|
|
31842
32243
|
this.touched = true;
|
|
31843
32244
|
this.validation.validate(this);
|
|
31844
32245
|
}
|
|
32246
|
+
|
|
32247
|
+
// Prevents cursor jumping in Safari. Setting `this.value` triggers a Lit
|
|
32248
|
+
// update that can re-render the input and reset the native cursor; we
|
|
32249
|
+
// capture the caret position before that update commits and restore it
|
|
32250
|
+
// via `setSelectionRange` once the update has flushed. Gated on
|
|
32251
|
+
// `setSelectionInputTypes` so credit-card (and other masked types whose
|
|
32252
|
+
// formatter manages the cursor itself) doesn't get a competing write.
|
|
32253
|
+
// Capture the caret position INSIDE the gate — reading `selectionStart`
|
|
32254
|
+
// on input types that don't support text selection (number, email in
|
|
32255
|
+
// some browsers) throws InvalidStateError, which would crash all input
|
|
32256
|
+
// handling. Wrap the read in try/catch belt-and-suspenders even though
|
|
32257
|
+
// the gated types currently support it, since the list is a public
|
|
32258
|
+
// property a consumer could mutate.
|
|
32259
|
+
if (this.setSelectionInputTypes.includes(this.type)) {
|
|
32260
|
+
let selectionStart = null;
|
|
32261
|
+
try {
|
|
32262
|
+
({ selectionStart } = this.inputElement);
|
|
32263
|
+
} catch (error) { // eslint-disable-line no-unused-vars
|
|
32264
|
+
return;
|
|
32265
|
+
}
|
|
32266
|
+
if (typeof selectionStart !== 'number') {
|
|
32267
|
+
return;
|
|
32268
|
+
}
|
|
32269
|
+
this.updateComplete.then(() => {
|
|
32270
|
+
try {
|
|
32271
|
+
this.inputElement.setSelectionRange(selectionStart, selectionStart);
|
|
32272
|
+
} catch (error) { // eslint-disable-line no-unused-vars
|
|
32273
|
+
// Some input types (number/email in certain UAs) throw on
|
|
32274
|
+
// setSelectionRange; swallow and let the native cursor stand.
|
|
32275
|
+
}
|
|
32276
|
+
});
|
|
32277
|
+
}
|
|
31845
32278
|
}
|
|
31846
32279
|
|
|
31847
32280
|
/**
|
|
@@ -31975,7 +32408,7 @@ class BaseInput extends AuroElement$1 {
|
|
|
31975
32408
|
*/
|
|
31976
32409
|
get placeholderStr() {
|
|
31977
32410
|
if (!this.placeholder && this.type === 'date') {
|
|
31978
|
-
return this.format
|
|
32411
|
+
return this.format.toUpperCase();
|
|
31979
32412
|
}
|
|
31980
32413
|
return this.placeholder || "";
|
|
31981
32414
|
}
|
|
@@ -32466,7 +32899,7 @@ let AuroHelpText$1 = class AuroHelpText extends i$1 {
|
|
|
32466
32899
|
}
|
|
32467
32900
|
};
|
|
32468
32901
|
|
|
32469
|
-
var formkitVersion = '
|
|
32902
|
+
var formkitVersion = '202607010104';
|
|
32470
32903
|
|
|
32471
32904
|
// Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
|
|
32472
32905
|
// See LICENSE in the project root for license information.
|
|
@@ -32969,6 +33402,7 @@ class AuroInput extends BaseInput {
|
|
|
32969
33402
|
<${this.buttonTag}
|
|
32970
33403
|
@click="${this.handleClickShowPassword}"
|
|
32971
33404
|
appearance="${this.onDark ? 'inverse' : this.appearance}"
|
|
33405
|
+
aria-pressed="${this.showPassword ? 'true' : 'false'}"
|
|
32972
33406
|
class="notificationBtn passwordBtn"
|
|
32973
33407
|
shape="circle"
|
|
32974
33408
|
size="sm"
|
|
@@ -33042,25 +33476,29 @@ class AuroInput extends BaseInput {
|
|
|
33042
33476
|
* @returns {html} - Returns HTML for the help text and error message.
|
|
33043
33477
|
*/
|
|
33044
33478
|
renderHtmlHelpText() {
|
|
33479
|
+
// Single `<p>` with stable identity across validity transitions —
|
|
33480
|
+
// previously two distinct templates (valid vs invalid) caused Lit to
|
|
33481
|
+
// replace the node entirely on a flip, and VoiceOver wouldn't
|
|
33482
|
+
// re-announce because the live-region element it was watching had been
|
|
33483
|
+
// removed and a new one inserted. Keeping one node means the `role`,
|
|
33484
|
+
// `aria-live`, and text content all change in-place, which AT does
|
|
33485
|
+
// observe and announce.
|
|
33486
|
+
const isError = this.validity && this.validity !== 'valid';
|
|
33045
33487
|
return u$a`
|
|
33046
|
-
|
|
33047
|
-
?
|
|
33048
|
-
|
|
33049
|
-
|
|
33050
|
-
|
|
33051
|
-
|
|
33052
|
-
|
|
33053
|
-
|
|
33054
|
-
|
|
33055
|
-
|
|
33056
|
-
|
|
33057
|
-
|
|
33058
|
-
|
|
33059
|
-
|
|
33060
|
-
</p>
|
|
33061
|
-
</${this.helpTextTag}>
|
|
33062
|
-
`
|
|
33063
|
-
}
|
|
33488
|
+
<${this.helpTextTag}
|
|
33489
|
+
appearance="${this.onDark ? 'inverse' : this.appearance}"
|
|
33490
|
+
?error=${isError}>
|
|
33491
|
+
<p
|
|
33492
|
+
id="${this.uniqueId}"
|
|
33493
|
+
part="helpText"
|
|
33494
|
+
role="${o$2(isError ? 'alert' : undefined)}"
|
|
33495
|
+
aria-live="${o$2(isError ? 'assertive' : undefined)}">
|
|
33496
|
+
${isError
|
|
33497
|
+
? this.errorMessage
|
|
33498
|
+
: u$a`<slot name="helpText">${this.getHelpText()}</slot>`
|
|
33499
|
+
}
|
|
33500
|
+
</p>
|
|
33501
|
+
</${this.helpTextTag}>
|
|
33064
33502
|
`;
|
|
33065
33503
|
}
|
|
33066
33504
|
|
|
@@ -33207,6 +33645,15 @@ function formatISODate(isoStr, format) {
|
|
|
33207
33645
|
try {
|
|
33208
33646
|
const date = dateFormatter.stringToDateInstance(isoStr);
|
|
33209
33647
|
|
|
33648
|
+
// `stringToDateInstance` returns an `Invalid Date` for malformed strings
|
|
33649
|
+
// and `null` for non-string input — it does NOT throw. Without this
|
|
33650
|
+
// guard, `getFullYear()`/`getMonth()`/`getDate()` on an Invalid Date
|
|
33651
|
+
// yield `NaN`, and `String(NaN).padStart(4, '0')` produces literals
|
|
33652
|
+
// like "0NaN/0NaN/0NaN" instead of `undefined`.
|
|
33653
|
+
if (!(date instanceof Date) || Number.isNaN(date.getTime())) {
|
|
33654
|
+
return undefined;
|
|
33655
|
+
}
|
|
33656
|
+
|
|
33210
33657
|
const year = String(date.getFullYear()).padStart(4, '0');
|
|
33211
33658
|
const month = String(date.getMonth() + 1).padStart(2, '0');
|
|
33212
33659
|
const day = String(date.getDate()).padStart(2, '0');
|
|
@@ -33217,7 +33664,10 @@ function formatISODate(isoStr, format) {
|
|
|
33217
33664
|
replace(/mm/iu, month).
|
|
33218
33665
|
replace(/dd/iu, day);
|
|
33219
33666
|
} catch (err) {
|
|
33220
|
-
//
|
|
33667
|
+
// Defensive: the Date-returning path is guarded above, but `parseDate`
|
|
33668
|
+
// (inside `stringToDateInstance`) could throw on pathological input
|
|
33669
|
+
// future-library-versions might introduce. Treat any thrown error as
|
|
33670
|
+
// "not a valid date" and return undefined.
|
|
33221
33671
|
return undefined;
|
|
33222
33672
|
}
|
|
33223
33673
|
}
|
|
@@ -33943,6 +34393,7 @@ class AuroDatePicker extends AuroElement {
|
|
|
33943
34393
|
this.rangeLabelBeforeRange = 'before range';
|
|
33944
34394
|
this.rangeLabelInRange = 'in range';
|
|
33945
34395
|
this.rangeLabelAfterRange = 'after range';
|
|
34396
|
+
this.rangeLabelEndPreview = 'previewing range end';
|
|
33946
34397
|
this.blackoutDates = [];
|
|
33947
34398
|
this.blackoutLabel = 'unavailable';
|
|
33948
34399
|
this.navLabelPrevMonth = 'Previous month';
|
|
@@ -34042,6 +34493,22 @@ class AuroDatePicker extends AuroElement {
|
|
|
34042
34493
|
*/
|
|
34043
34494
|
this.handleClick = this.handleClick.bind(this);
|
|
34044
34495
|
|
|
34496
|
+
/**
|
|
34497
|
+
* Single AbortController shared by every listener registered in the
|
|
34498
|
+
* configure* methods. Lets disconnectedCallback tear all of them down
|
|
34499
|
+
* with one abort() call.
|
|
34500
|
+
*
|
|
34501
|
+
* The genuine leak risk is the listeners attached to children that can
|
|
34502
|
+
* outlive the host if they get reparented — `this.dropdown`,
|
|
34503
|
+
* `this.calendar`, and the inputs inside the dropdown's slot.
|
|
34504
|
+
* Listeners attached to `this` (e.g. focusin/focusout on the host)
|
|
34505
|
+
* form a self-contained reference graph that the GC can collect with
|
|
34506
|
+
* the host anyway, but they share the same signal so the cleanup
|
|
34507
|
+
* pattern stays uniform across all configure* sites.
|
|
34508
|
+
* @private
|
|
34509
|
+
*/
|
|
34510
|
+
this._listenerAbortController = new AbortController();
|
|
34511
|
+
|
|
34045
34512
|
/**
|
|
34046
34513
|
* @private
|
|
34047
34514
|
*/
|
|
@@ -34090,6 +34557,7 @@ class AuroDatePicker extends AuroElement {
|
|
|
34090
34557
|
|
|
34091
34558
|
/**
|
|
34092
34559
|
* Label announced for blackout (disabled but in-range) date cells.
|
|
34560
|
+
* @default 'unavailable'
|
|
34093
34561
|
*/
|
|
34094
34562
|
blackoutLabel: {
|
|
34095
34563
|
type: String,
|
|
@@ -34106,6 +34574,7 @@ class AuroDatePicker extends AuroElement {
|
|
|
34106
34574
|
|
|
34107
34575
|
/**
|
|
34108
34576
|
* Accessible label for the calendar grid containing the days of the month.
|
|
34577
|
+
* @default 'Calendar days of the month'
|
|
34109
34578
|
*/
|
|
34110
34579
|
calendarGridLabel: {
|
|
34111
34580
|
type: String,
|
|
@@ -34268,6 +34737,7 @@ class AuroDatePicker extends AuroElement {
|
|
|
34268
34737
|
|
|
34269
34738
|
/**
|
|
34270
34739
|
* Accessible label for the next month navigation button.
|
|
34740
|
+
* @default 'Next month'
|
|
34271
34741
|
*/
|
|
34272
34742
|
navLabelNextMonth: {
|
|
34273
34743
|
type: String,
|
|
@@ -34276,6 +34746,7 @@ class AuroDatePicker extends AuroElement {
|
|
|
34276
34746
|
|
|
34277
34747
|
/**
|
|
34278
34748
|
* Accessible label for the previous month navigation button.
|
|
34749
|
+
* @default 'Previous month'
|
|
34279
34750
|
*/
|
|
34280
34751
|
navLabelPrevMonth: {
|
|
34281
34752
|
type: String,
|
|
@@ -34353,7 +34824,11 @@ class AuroDatePicker extends AuroElement {
|
|
|
34353
34824
|
},
|
|
34354
34825
|
|
|
34355
34826
|
/**
|
|
34356
|
-
* Label announced for cells after
|
|
34827
|
+
* Label announced for cells after a fully selected range (both
|
|
34828
|
+
* `dateFrom` and `dateTo` are set). While a range is still being
|
|
34829
|
+
* picked (`dateFrom` set, `dateTo` unset), focused cells past the
|
|
34830
|
+
* start use `rangeLabelEndPreview` instead.
|
|
34831
|
+
* @default 'after range'
|
|
34357
34832
|
*/
|
|
34358
34833
|
rangeLabelAfterRange: {
|
|
34359
34834
|
type: String,
|
|
@@ -34362,6 +34837,7 @@ class AuroDatePicker extends AuroElement {
|
|
|
34362
34837
|
|
|
34363
34838
|
/**
|
|
34364
34839
|
* Label announced for cells before the range start.
|
|
34840
|
+
* @default 'before range'
|
|
34365
34841
|
*/
|
|
34366
34842
|
rangeLabelBeforeRange: {
|
|
34367
34843
|
type: String,
|
|
@@ -34370,14 +34846,27 @@ class AuroDatePicker extends AuroElement {
|
|
|
34370
34846
|
|
|
34371
34847
|
/**
|
|
34372
34848
|
* Label announced for the range end date cell.
|
|
34849
|
+
* @default 'range end'
|
|
34373
34850
|
*/
|
|
34374
34851
|
rangeLabelEnd: {
|
|
34375
34852
|
type: String,
|
|
34376
34853
|
reflect: true
|
|
34377
34854
|
},
|
|
34378
34855
|
|
|
34856
|
+
/**
|
|
34857
|
+
* Label announced for the focused cell while previewing a range end
|
|
34858
|
+
* (dateFrom set, dateTo not yet selected). Tells AT users that
|
|
34859
|
+
* pressing Enter would commit this cell as the range end.
|
|
34860
|
+
* @default 'previewing range end'
|
|
34861
|
+
*/
|
|
34862
|
+
rangeLabelEndPreview: {
|
|
34863
|
+
type: String,
|
|
34864
|
+
reflect: true
|
|
34865
|
+
},
|
|
34866
|
+
|
|
34379
34867
|
/**
|
|
34380
34868
|
* Label announced for cells within the selected range.
|
|
34869
|
+
* @default 'in range'
|
|
34381
34870
|
*/
|
|
34382
34871
|
rangeLabelInRange: {
|
|
34383
34872
|
type: String,
|
|
@@ -34386,6 +34875,7 @@ class AuroDatePicker extends AuroElement {
|
|
|
34386
34875
|
|
|
34387
34876
|
/**
|
|
34388
34877
|
* Label announced for the range start date cell.
|
|
34878
|
+
* @default 'range start'
|
|
34389
34879
|
*/
|
|
34390
34880
|
rangeLabelStart: {
|
|
34391
34881
|
type: String,
|
|
@@ -34393,7 +34883,7 @@ class AuroDatePicker extends AuroElement {
|
|
|
34393
34883
|
},
|
|
34394
34884
|
|
|
34395
34885
|
/**
|
|
34396
|
-
* Dates that the user should have for reference as part of their decision
|
|
34886
|
+
* Dates that the user should have for reference as part of their decision-making when selecting a date.
|
|
34397
34887
|
* This should be a JSON string array of ISO date strings (`YYYY-MM-DD`).
|
|
34398
34888
|
*/
|
|
34399
34889
|
referenceDates: {
|
|
@@ -34750,10 +35240,26 @@ class AuroDatePicker extends AuroElement {
|
|
|
34750
35240
|
// ─── Vendor calendar time conversions ─────────────────────────────────────
|
|
34751
35241
|
|
|
34752
35242
|
/**
|
|
34753
|
-
* Converts a Unix timestamp (seconds) from the
|
|
35243
|
+
* Converts a Unix timestamp (seconds) from the vendored range-datepicker
|
|
35244
|
+
* (`src/vendor/wc-range-datepicker/day.js`) to an ISO date string.
|
|
35245
|
+
*
|
|
35246
|
+
* Timezone contract:
|
|
35247
|
+
* - INPUT: `time` is assumed to be the seconds-since-epoch of **local
|
|
35248
|
+
* midnight** for the intended calendar day. The vendor's Day constructor
|
|
35249
|
+
* builds it via `date-fns format(date, 't')` from a locally-constructed
|
|
35250
|
+
* Date, so this assumption currently holds end-to-end.
|
|
35251
|
+
* - OUTPUT: `dateFormatter.toISOFormatString` reads the Date's local
|
|
35252
|
+
* getFullYear/getMonth/getDate components, so the returned YYYY-MM-DD
|
|
35253
|
+
* string matches the local calendar day.
|
|
35254
|
+
*
|
|
35255
|
+
* If the vendor ever switches to emitting UTC-midnight timestamps, this
|
|
35256
|
+
* conversion will silently shift the returned date by one day in zones
|
|
35257
|
+
* west of UTC. Any vendor swap should re-verify this contract; the TZ
|
|
35258
|
+
* regression suite (`npm run test:hst`, UTC-10) will catch the symptom.
|
|
35259
|
+
*
|
|
34754
35260
|
* @private
|
|
34755
|
-
* @param {number} time - Unix timestamp
|
|
34756
|
-
* @returns {string} ISO date string (yyyy-mm-dd).
|
|
35261
|
+
* @param {number} time - Unix timestamp (seconds), local midnight of the day.
|
|
35262
|
+
* @returns {string} ISO date string (yyyy-mm-dd) reflecting the local calendar day.
|
|
34757
35263
|
*/
|
|
34758
35264
|
convertWcTimeToDate(time) {
|
|
34759
35265
|
return dateFormatter$1.toISOFormatString(new Date(time * 1000));
|
|
@@ -34855,8 +35361,8 @@ class AuroDatePicker extends AuroElement {
|
|
|
34855
35361
|
}
|
|
34856
35362
|
}
|
|
34857
35363
|
|
|
34858
|
-
// Focus the calendar grid wrapper (
|
|
34859
|
-
// the SR announcement for the active cell
|
|
35364
|
+
// Focus the calendar grid wrapper. The live region (announced just
|
|
35365
|
+
// below) handles the SR announcement for the active cell.
|
|
34860
35366
|
if (activeCell) {
|
|
34861
35367
|
this.calendar.focusActiveCell();
|
|
34862
35368
|
|
|
@@ -34870,11 +35376,14 @@ class AuroDatePicker extends AuroElement {
|
|
|
34870
35376
|
this.calendar.announceSelection(announcement);
|
|
34871
35377
|
}, 500);
|
|
34872
35378
|
|
|
34873
|
-
// On mobile fullscreen
|
|
34874
|
-
//
|
|
34875
|
-
//
|
|
34876
|
-
|
|
35379
|
+
// On mobile fullscreen — or when an explicit focusDate change has
|
|
35380
|
+
// requested a forced scroll on the next render — scroll the active
|
|
35381
|
+
// cell into view. Doing this here (after activeCellDate has been
|
|
35382
|
+
// resolved by the rAF loop above) prevents a no-op scroll that
|
|
35383
|
+
// would happen if we tried to scroll before the cell was set.
|
|
35384
|
+
if (this.dropdown.isBibFullscreen || this.forceScrollOnNextMobileCalendarRender) {
|
|
34877
35385
|
this.calendar.scrollToActiveCell();
|
|
35386
|
+
this.forceScrollOnNextMobileCalendarRender = false;
|
|
34878
35387
|
}
|
|
34879
35388
|
} else if (attempts < MAX_ATTEMPTS) {
|
|
34880
35389
|
requestAnimationFrame(tryFocus);
|
|
@@ -34906,11 +35415,13 @@ class AuroDatePicker extends AuroElement {
|
|
|
34906
35415
|
this.dropdown.bibDialogLabel = labelElement.textContent.trim() || undefined;
|
|
34907
35416
|
}
|
|
34908
35417
|
|
|
35418
|
+
const { signal } = this._listenerAbortController;
|
|
35419
|
+
|
|
34909
35420
|
this.dropdown.addEventListener('auroDropdown-triggerClick', () => {
|
|
34910
35421
|
if (!this.isPopoverVisible) {
|
|
34911
35422
|
this.dropdown.show();
|
|
34912
35423
|
}
|
|
34913
|
-
});
|
|
35424
|
+
}, { signal });
|
|
34914
35425
|
|
|
34915
35426
|
this.dropdown.addEventListener('auroDropdown-toggled', () => {
|
|
34916
35427
|
this.notifyDatepickerToggled();
|
|
@@ -34928,7 +35439,7 @@ class AuroDatePicker extends AuroElement {
|
|
|
34928
35439
|
if (this.valueObject) {
|
|
34929
35440
|
this.centralDate = this.value;
|
|
34930
35441
|
} else if (!this.centralDate && !this.calendarStartDate && !this.minDate) {
|
|
34931
|
-
this.centralDate = new Date();
|
|
35442
|
+
this.centralDate = dateFormatter$1.toISOFormatString(new Date());
|
|
34932
35443
|
}
|
|
34933
35444
|
}
|
|
34934
35445
|
|
|
@@ -34996,19 +35507,11 @@ class AuroDatePicker extends AuroElement {
|
|
|
34996
35507
|
}
|
|
34997
35508
|
}
|
|
34998
35509
|
|
|
34999
|
-
//
|
|
35000
|
-
|
|
35001
|
-
|
|
35002
|
-
|
|
35003
|
-
|
|
35004
|
-
// we need to wait until the next frame to ensure the calendar is fully rendered
|
|
35005
|
-
// and the area we're trying to scroll to is present in the DOM.
|
|
35006
|
-
setTimeout(() => {
|
|
35007
|
-
this.calendar.scrollMonthIntoView(this.calendarFocusDate);
|
|
35008
|
-
this.forceScrollOnNextMobileCalendarRender = false;
|
|
35009
|
-
}, 0);
|
|
35010
|
-
}
|
|
35011
|
-
});
|
|
35510
|
+
// Note: the forceScrollOnNextMobileCalendarRender scroll-into-view
|
|
35511
|
+
// happens inside focusActiveCellWhenReady() once activeCellDate has
|
|
35512
|
+
// been resolved by its rAF wait — not here in a setTimeout(0), which
|
|
35513
|
+
// fired before the active date was set and silently no-op'd.
|
|
35514
|
+
}, { signal });
|
|
35012
35515
|
|
|
35013
35516
|
// Handle responsive strategy changes while the dropdown is open
|
|
35014
35517
|
// (e.g. resizing from desktop → mobile or vice versa).
|
|
@@ -35055,7 +35558,7 @@ class AuroDatePicker extends AuroElement {
|
|
|
35055
35558
|
});
|
|
35056
35559
|
});
|
|
35057
35560
|
}
|
|
35058
|
-
});
|
|
35561
|
+
}, { signal });
|
|
35059
35562
|
}
|
|
35060
35563
|
|
|
35061
35564
|
/**
|
|
@@ -35068,6 +35571,8 @@ class AuroDatePicker extends AuroElement {
|
|
|
35068
35571
|
|
|
35069
35572
|
this.inputList = [...this.dropdown.querySelectorAll(this.inputTag._$litStatic$)];
|
|
35070
35573
|
|
|
35574
|
+
const { signal } = this._listenerAbortController;
|
|
35575
|
+
|
|
35071
35576
|
this.inputList.forEach((input, index) => {
|
|
35072
35577
|
input.addEventListener('input', (event) => {
|
|
35073
35578
|
event.stopPropagation();
|
|
@@ -35079,7 +35584,7 @@ class AuroDatePicker extends AuroElement {
|
|
|
35079
35584
|
}
|
|
35080
35585
|
|
|
35081
35586
|
this.notifyValueChanged();
|
|
35082
|
-
});
|
|
35587
|
+
}, { signal });
|
|
35083
35588
|
|
|
35084
35589
|
input.addEventListener('auroFormElement-validated', (evt) => {
|
|
35085
35590
|
// not to bubble up input's validated event.
|
|
@@ -35095,7 +35600,7 @@ class AuroDatePicker extends AuroElement {
|
|
|
35095
35600
|
this.validity = evt.detail.validity;
|
|
35096
35601
|
this.errorMessage = evt.detail.message;
|
|
35097
35602
|
}
|
|
35098
|
-
});
|
|
35603
|
+
}, { signal });
|
|
35099
35604
|
});
|
|
35100
35605
|
}
|
|
35101
35606
|
|
|
@@ -35109,19 +35614,32 @@ class AuroDatePicker extends AuroElement {
|
|
|
35109
35614
|
this.calendar.datepicker = this;
|
|
35110
35615
|
this.calendar.dropdown = this.dropdown;
|
|
35111
35616
|
|
|
35617
|
+
const { signal } = this._listenerAbortController;
|
|
35618
|
+
|
|
35112
35619
|
this.calendar.addEventListener('auroCalendar-dateSelected', () => {
|
|
35113
|
-
|
|
35114
|
-
|
|
35620
|
+
// Compare the input's ISO value against the *converted* calendar
|
|
35621
|
+
// timestamp (the vendor's `dateFrom`/`dateTo` are Unix-seconds
|
|
35622
|
+
// strings — comparing the input ISO directly against them would
|
|
35623
|
+
// never match, so the write would fire on every event and emit
|
|
35624
|
+
// redundant input/change activity).
|
|
35625
|
+
if (this.calendar.dateFrom !== undefined) {
|
|
35626
|
+
const fromIso = this.convertWcTimeToDate(this.calendar.dateFrom);
|
|
35627
|
+
if (this.inputList[0].value !== fromIso) {
|
|
35628
|
+
this.inputList[0].value = fromIso;
|
|
35629
|
+
}
|
|
35115
35630
|
}
|
|
35116
35631
|
|
|
35117
|
-
if (this.inputList[1] && this.calendar.dateTo
|
|
35118
|
-
|
|
35632
|
+
if (this.inputList[1] && this.calendar.dateTo) {
|
|
35633
|
+
const toIso = this.convertWcTimeToDate(this.calendar.dateTo);
|
|
35634
|
+
if (this.inputList[1].value !== toIso) {
|
|
35635
|
+
this.inputList[1].value = toIso;
|
|
35636
|
+
}
|
|
35119
35637
|
}
|
|
35120
|
-
});
|
|
35638
|
+
}, { signal });
|
|
35121
35639
|
|
|
35122
35640
|
this.calendar.addEventListener('auroCalendar-dismissRequest', () => {
|
|
35123
35641
|
this.dropdown.hide();
|
|
35124
|
-
});
|
|
35642
|
+
}, { signal });
|
|
35125
35643
|
|
|
35126
35644
|
this.calendar.addEventListener('auroCalendar-centralDateChanged', (event) => {
|
|
35127
35645
|
const match = this.centralDateObject && this.util.datesMatch(event.detail.date, this.centralDateObject);
|
|
@@ -35131,7 +35649,7 @@ class AuroDatePicker extends AuroElement {
|
|
|
35131
35649
|
}
|
|
35132
35650
|
|
|
35133
35651
|
this.notifyMonthChanged(event);
|
|
35134
|
-
});
|
|
35652
|
+
}, { signal });
|
|
35135
35653
|
}
|
|
35136
35654
|
|
|
35137
35655
|
/**
|
|
@@ -35140,10 +35658,17 @@ class AuroDatePicker extends AuroElement {
|
|
|
35140
35658
|
* @returns {void}
|
|
35141
35659
|
*/
|
|
35142
35660
|
configureDatepicker() {
|
|
35661
|
+
// These listeners are on `this` (the host), so they would GC with the
|
|
35662
|
+
// host even without the abort signal — see the leak rationale on
|
|
35663
|
+
// `_listenerAbortController`. The signal is still passed for uniform
|
|
35664
|
+
// cleanup semantics with the child-element listeners in the other
|
|
35665
|
+
// configure* methods.
|
|
35666
|
+
const { signal } = this._listenerAbortController;
|
|
35667
|
+
|
|
35143
35668
|
this.addEventListener('focusin', () => {
|
|
35144
35669
|
this.touched = true;
|
|
35145
35670
|
this.hasFocus = true;
|
|
35146
|
-
});
|
|
35671
|
+
}, { signal });
|
|
35147
35672
|
|
|
35148
35673
|
this.addEventListener('focusout', () => {
|
|
35149
35674
|
this.hasFocus = false;
|
|
@@ -35155,7 +35680,7 @@ class AuroDatePicker extends AuroElement {
|
|
|
35155
35680
|
if (!this.matches(':focus-within')) {
|
|
35156
35681
|
this.validate();
|
|
35157
35682
|
}
|
|
35158
|
-
});
|
|
35683
|
+
}, { signal });
|
|
35159
35684
|
|
|
35160
35685
|
if (this.valueObject) {
|
|
35161
35686
|
this.calendar.dateFrom = this.convertToWcValidTime(this.valueObject);
|
|
@@ -35353,6 +35878,41 @@ class AuroDatePicker extends AuroElement {
|
|
|
35353
35878
|
return this.validity !== undefined && this.validity !== 'valid';
|
|
35354
35879
|
}
|
|
35355
35880
|
|
|
35881
|
+
/**
|
|
35882
|
+
* Per-class dedup set used by `_warnInvalidLocale`. Static so the dedup
|
|
35883
|
+
* spans every datepicker instance on the page; lives on the class (not
|
|
35884
|
+
* at module scope) so it stays an encapsulated implementation detail of
|
|
35885
|
+
* this component and does not interfere with WCA's class-JSDoc
|
|
35886
|
+
* attachment.
|
|
35887
|
+
* @private
|
|
35888
|
+
*/
|
|
35889
|
+
static _warnedInvalidLocales = new Set();
|
|
35890
|
+
|
|
35891
|
+
/**
|
|
35892
|
+
* Logs a one-time `console.debug` when an unsupported locale falls back to
|
|
35893
|
+
* en-US. Deduped by the offending tag so noisy re-renders that resurface
|
|
35894
|
+
* the same bad value stay quiet, but each new bad value still signals so
|
|
35895
|
+
* consumers can spot the typo or missing tag.
|
|
35896
|
+
* @private
|
|
35897
|
+
* @param {string|undefined} badLocale - The locale value that failed.
|
|
35898
|
+
* @returns {void}
|
|
35899
|
+
*/
|
|
35900
|
+
_warnInvalidLocale(badLocale) {
|
|
35901
|
+
// Stringify without coalescing — `String(undefined)` / `String(null)`
|
|
35902
|
+
// surface the actual offending value in the log, instead of the
|
|
35903
|
+
// ambiguous `Locale ""` that `String(badLocale ?? '')` would produce.
|
|
35904
|
+
// Dedup still works correctly because each unique stringification
|
|
35905
|
+
// becomes its own Set entry.
|
|
35906
|
+
const key = String(badLocale);
|
|
35907
|
+
const seen = AuroDatePicker._warnedInvalidLocales;
|
|
35908
|
+
if (seen.has(key)) {
|
|
35909
|
+
return;
|
|
35910
|
+
}
|
|
35911
|
+
seen.add(key);
|
|
35912
|
+
// eslint-disable-next-line no-console
|
|
35913
|
+
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".`);
|
|
35914
|
+
}
|
|
35915
|
+
|
|
35356
35916
|
/**
|
|
35357
35917
|
* Lifecycle method to check if the locale is valid.
|
|
35358
35918
|
* @ignore
|
|
@@ -35363,10 +35923,15 @@ class AuroDatePicker extends AuroElement {
|
|
|
35363
35923
|
if (changedProperties.has('locale')) {
|
|
35364
35924
|
try {
|
|
35365
35925
|
const supported = Intl.DateTimeFormat.supportedLocalesOf([this.locale], { localeMatcher: 'lookup' });
|
|
35366
|
-
|
|
35926
|
+
if (supported.length > 0) {
|
|
35927
|
+
this._validLocale = this.locale;
|
|
35928
|
+
} else {
|
|
35929
|
+
this._validLocale = 'en-US';
|
|
35930
|
+
this._warnInvalidLocale(this.locale);
|
|
35931
|
+
}
|
|
35367
35932
|
} catch {
|
|
35368
|
-
console.debug(`[AuroDatePicker] The locale "${this.locale}" is not valid. Falling back to "en-US".`); // eslint-disable-line no-console
|
|
35369
35933
|
this._validLocale = 'en-US';
|
|
35934
|
+
this._warnInvalidLocale(this.locale);
|
|
35370
35935
|
}
|
|
35371
35936
|
|
|
35372
35937
|
const previousLocaleFormat = getDateFormatFromLocale$1(changedProperties.get('locale'));
|
|
@@ -35448,8 +36013,6 @@ class AuroDatePicker extends AuroElement {
|
|
|
35448
36013
|
// Skip centralDate update when user clicked a cell in range mode
|
|
35449
36014
|
// to prevent the displayed months from shifting
|
|
35450
36015
|
this.centralDate = this.value;
|
|
35451
|
-
//TODO: TEST THIS CHANGE
|
|
35452
|
-
// this.calendarRenderUtil.updateCentralDate(this, this.value);
|
|
35453
36016
|
}
|
|
35454
36017
|
|
|
35455
36018
|
this.setHasValue();
|
|
@@ -35509,8 +36072,6 @@ class AuroDatePicker extends AuroElement {
|
|
|
35509
36072
|
// Skip centralDate update when user clicked a cell in range mode
|
|
35510
36073
|
// to prevent the displayed months from shifting
|
|
35511
36074
|
this.centralDate = this.valueEnd;
|
|
35512
|
-
// TODO: TEST THIS CHANGE
|
|
35513
|
-
// this.calendarRenderUtil.updateCentralDate(this, this.formattedValueEnd);
|
|
35514
36075
|
}
|
|
35515
36076
|
|
|
35516
36077
|
this.validate();
|
|
@@ -35652,7 +36213,7 @@ class AuroDatePicker extends AuroElement {
|
|
|
35652
36213
|
* @returns {void}
|
|
35653
36214
|
*/
|
|
35654
36215
|
configureClickHandler() {
|
|
35655
|
-
this.addEventListener('click', this.handleClick);
|
|
36216
|
+
this.addEventListener('click', this.handleClick, { signal: this._listenerAbortController.signal });
|
|
35656
36217
|
}
|
|
35657
36218
|
|
|
35658
36219
|
firstUpdated() {
|
|
@@ -35660,6 +36221,15 @@ class AuroDatePicker extends AuroElement {
|
|
|
35660
36221
|
// Add the tag name as an attribute if it is different than the component name
|
|
35661
36222
|
this.runtimeUtils.handleComponentTagRename(this, 'auro-datepicker');
|
|
35662
36223
|
|
|
36224
|
+
// If the element was disconnected before this first render finished,
|
|
36225
|
+
// disconnectedCallback's microtask already aborted the controller. The
|
|
36226
|
+
// connectedCallback reinit guard skips that case because `hasUpdated`
|
|
36227
|
+
// is still false. Mint a fresh controller here so configure* registers
|
|
36228
|
+
// listeners against a live signal.
|
|
36229
|
+
if (this._listenerAbortController.signal.aborted) {
|
|
36230
|
+
this._listenerAbortController = new AbortController();
|
|
36231
|
+
}
|
|
36232
|
+
|
|
35663
36233
|
this.configureDropdown();
|
|
35664
36234
|
this.configureInput();
|
|
35665
36235
|
this.configureCalendar();
|
|
@@ -35671,9 +36241,36 @@ class AuroDatePicker extends AuroElement {
|
|
|
35671
36241
|
connectedCallback() {
|
|
35672
36242
|
super.connectedCallback();
|
|
35673
36243
|
|
|
36244
|
+
// True reconnect after `disconnectedCallback` aborted our controller:
|
|
36245
|
+
// the existing signal is dead, so listeners registered against it
|
|
36246
|
+
// would never fire. Create a fresh controller and re-run the
|
|
36247
|
+
// configure* wiring (each method is idempotent — it just re-caches
|
|
36248
|
+
// child refs and re-registers listeners against the new signal).
|
|
36249
|
+
// `hasUpdated` gates this so the *first* connect (which precedes
|
|
36250
|
+
// firstUpdated) still falls through to firstUpdated's initial wiring.
|
|
36251
|
+
if (this.hasUpdated && this._listenerAbortController.signal.aborted) {
|
|
36252
|
+
this._listenerAbortController = new AbortController();
|
|
36253
|
+
this.configureDropdown();
|
|
36254
|
+
this.configureInput();
|
|
36255
|
+
this.configureCalendar();
|
|
36256
|
+
this.configureDatepicker();
|
|
36257
|
+
this.configureClickHandler();
|
|
36258
|
+
}
|
|
36259
|
+
|
|
35674
36260
|
this.locale = this.domHandler.getLocale(this);
|
|
35675
36261
|
}
|
|
35676
36262
|
|
|
36263
|
+
disconnectedCallback() {
|
|
36264
|
+
super.disconnectedCallback();
|
|
36265
|
+
// Defer so that re-parenting (auro-drawer slotting it into a dialog,
|
|
36266
|
+
// for example) does not abort listeners we still need after reconnect.
|
|
36267
|
+
queueMicrotask(() => {
|
|
36268
|
+
if (!this.isConnected) {
|
|
36269
|
+
this._listenerAbortController.abort();
|
|
36270
|
+
}
|
|
36271
|
+
});
|
|
36272
|
+
}
|
|
36273
|
+
|
|
35677
36274
|
// layout render methods
|
|
35678
36275
|
// ------------------------------------
|
|
35679
36276
|
|