@aurodesignsystem-dev/auro-formkit 0.0.0-pr1492.4 → 0.0.0-pr1493.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components/bibtemplate/dist/auro-bibtemplate.d.ts +7 -0
- package/components/bibtemplate/dist/index.js +9 -1
- package/components/bibtemplate/dist/registered.js +9 -1
- package/components/checkbox/demo/css-only.html +57 -0
- package/components/checkbox/demo/css-only.md +146 -0
- package/components/checkbox/demo/customize.min.js +2 -2
- package/components/checkbox/demo/getting-started.min.js +2 -2
- package/components/checkbox/demo/index.min.js +2 -2
- package/components/checkbox/demo/pages.json +1 -1
- package/components/checkbox/demo/styles.min.css +1 -1
- package/components/checkbox/demo/why-checkbox.html +57 -0
- package/components/checkbox/demo/why-checkbox.md +86 -0
- package/components/checkbox/dist/index.js +2 -2
- package/components/checkbox/dist/registered.js +2 -2
- package/components/combobox/demo/css-only.html +57 -0
- package/components/combobox/demo/css-only.md +209 -0
- package/components/combobox/demo/customize.md +7 -3
- package/components/combobox/demo/customize.min.js +1846 -1804
- package/components/combobox/demo/getting-started.min.js +1846 -1804
- package/components/combobox/demo/index.min.js +1846 -1804
- package/components/combobox/demo/pages.json +1 -1
- package/components/combobox/demo/styles.min.css +1 -1
- package/components/combobox/demo/why-combobox.html +57 -0
- package/components/combobox/demo/why-combobox.md +113 -0
- package/components/combobox/dist/auro-combobox.d.ts +5 -0
- package/components/combobox/dist/index.js +796 -179
- package/components/combobox/dist/registered.js +796 -179
- package/components/counter/demo/css-only.html +57 -0
- package/components/counter/demo/css-only.md +184 -0
- package/components/counter/demo/customize.min.js +276 -16
- package/components/counter/demo/index.min.js +276 -16
- package/components/counter/demo/keyboard-behavior.md +1 -0
- package/components/counter/demo/pages.json +1 -1
- package/components/counter/demo/styles.min.css +1 -1
- package/components/counter/demo/why-counter.html +57 -0
- package/components/counter/demo/why-counter.md +108 -0
- package/components/counter/dist/index.js +5457 -193
- package/components/counter/dist/registered.js +5457 -193
- package/components/datepicker/demo/accessibility.md +54 -3
- package/components/datepicker/demo/api.md +65 -55
- package/components/datepicker/demo/css-only.html +57 -0
- package/components/datepicker/demo/css-only.md +151 -0
- package/components/datepicker/demo/customize.html +2 -0
- package/components/datepicker/demo/customize.js +19 -0
- package/components/datepicker/demo/customize.md +474 -298
- package/components/datepicker/demo/customize.min.js +36243 -0
- package/components/datepicker/demo/design.md +5 -3
- package/components/datepicker/demo/getting-started.md +6 -6
- package/components/datepicker/demo/index.js +5 -1
- package/components/datepicker/demo/index.md +113 -16
- package/components/datepicker/demo/index.min.js +2736 -398
- package/components/datepicker/demo/keyboard-behavior.md +201 -2
- package/components/datepicker/demo/pages.json +1 -1
- package/components/datepicker/demo/styles.min.css +1 -1
- package/components/datepicker/demo/voiceover.md +21 -12
- package/components/datepicker/demo/why-datepicker.html +57 -0
- package/components/datepicker/demo/why-datepicker.md +133 -0
- package/components/datepicker/dist/index.js +2650 -399
- package/components/datepicker/dist/registered.js +2650 -399
- package/components/datepicker/dist/src/auro-calendar-cell.d.ts +116 -14
- package/components/datepicker/dist/src/auro-calendar-month.d.ts +54 -1
- package/components/datepicker/dist/src/auro-calendar.d.ts +264 -0
- package/components/datepicker/dist/src/auro-datepicker.d.ts +189 -53
- package/components/datepicker/dist/src/datepickerKeyboardStrategy.d.ts +5 -3
- package/components/datepicker/dist/src/utilities.d.ts +0 -14
- package/components/dropdown/demo/accessibility.md +11 -0
- package/components/dropdown/demo/api.md +1 -0
- package/components/dropdown/demo/css-only.html +57 -0
- package/components/dropdown/demo/css-only.md +219 -0
- package/components/dropdown/demo/customize.md +3 -0
- package/components/dropdown/demo/customize.min.js +265 -13
- package/components/dropdown/demo/getting-started.min.js +265 -13
- package/components/dropdown/demo/index.min.js +265 -13
- package/components/dropdown/demo/keyboard-behavior.md +1 -0
- package/components/dropdown/demo/pages.json +1 -1
- package/components/dropdown/demo/styles.min.css +1 -1
- package/components/dropdown/demo/why-dropdown.html +57 -0
- package/components/dropdown/demo/why-dropdown.md +97 -0
- package/components/dropdown/dist/auro-dropdown.d.ts +36 -1
- package/components/dropdown/dist/index.js +265 -13
- package/components/dropdown/dist/registered.js +265 -13
- package/components/form/demo/css-only.html +57 -0
- package/components/form/demo/css-only.md +156 -0
- package/components/form/demo/customize.min.js +11085 -8074
- package/components/form/demo/getting-started.min.js +11085 -8074
- package/components/form/demo/index.min.js +11085 -8074
- package/components/form/demo/pages.json +1 -1
- package/components/form/demo/registerDemoDeps.min.js +11084 -8073
- package/components/form/demo/styles.min.css +1 -1
- package/components/form/demo/why-form.html +57 -0
- package/components/form/demo/why-form.md +101 -0
- package/components/input/demo/css-only.html +57 -0
- package/components/input/demo/css-only.md +199 -0
- package/components/input/demo/customize.md +625 -636
- package/components/input/demo/customize.min.js +150 -75
- package/components/input/demo/getting-started.md +16 -6
- package/components/input/demo/getting-started.min.js +150 -75
- package/components/input/demo/index.min.js +150 -75
- package/components/input/demo/pages.json +1 -1
- package/components/input/demo/styles.min.css +1 -1
- package/components/input/demo/why-input.html +57 -0
- package/components/input/demo/why-input.md +121 -0
- package/components/input/dist/auro-input-util.d.ts +1 -1
- package/components/input/dist/base-input.d.ts +16 -0
- package/components/input/dist/index.js +150 -75
- package/components/input/dist/registered.js +150 -75
- package/components/input/dist/utilities.d.ts +1 -2
- package/components/menu/demo/api.md +41 -45
- package/components/menu/demo/css-only.html +57 -0
- package/components/menu/demo/css-only.md +166 -0
- package/components/menu/demo/customize.md +0 -28
- package/components/menu/demo/index.min.js +779 -1354
- package/components/menu/demo/pages.json +1 -1
- package/components/menu/demo/styles.min.css +1 -1
- package/components/menu/demo/why-menu.html +57 -0
- package/components/menu/demo/why-menu.md +104 -0
- package/components/menu/dist/auro-menu.d.ts +95 -110
- package/components/menu/dist/auro-menuoption.d.ts +32 -138
- package/components/menu/dist/index.js +753 -1308
- package/components/menu/dist/registered.js +765 -1308
- package/components/radio/demo/css-only.html +57 -0
- package/components/radio/demo/css-only.md +151 -0
- package/components/radio/demo/customize.min.js +1764 -0
- package/components/radio/demo/demo-support.min.js +55807 -0
- package/components/radio/demo/getting-started.js +1 -1
- package/components/radio/demo/getting-started.md +1 -1
- package/components/radio/demo/getting-started.min.js +1783 -0
- package/components/radio/demo/index.min.js +2 -2
- package/components/radio/demo/pages.json +1 -1
- package/components/radio/demo/styles.min.css +1 -1
- package/components/radio/demo/why-radio.html +57 -0
- package/components/radio/demo/why-radio.md +92 -0
- package/components/radio/dist/index.js +2 -2
- package/components/radio/dist/registered.js +2 -2
- package/components/select/demo/api.md +1 -0
- package/components/select/demo/css-only.html +57 -0
- package/components/select/demo/css-only.md +203 -0
- package/components/select/demo/customize.md +78 -3
- package/components/select/demo/customize.min.js +1341 -1533
- package/components/select/demo/getting-started.min.js +1341 -1533
- package/components/select/demo/index.min.js +1341 -1533
- package/components/select/demo/keyboard-behavior.md +19 -0
- package/components/select/demo/pages.json +1 -1
- package/components/select/demo/styles.min.css +1 -1
- package/components/select/demo/why-select.html +57 -0
- package/components/select/demo/why-select.md +128 -0
- package/components/select/dist/auro-select.d.ts +38 -2
- package/components/select/dist/index.js +435 -52
- package/components/select/dist/registered.js +435 -52
- package/components/select/dist/selectUtils.d.ts +12 -0
- package/custom-elements.json +3051 -2553
- package/package.json +8 -8
- package/components/menu/dist/auro-menu.context.d.ts +0 -238
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { unsafeStatic, literal, html as html$1 } from 'lit/static-html.js';
|
|
2
2
|
import { classMap } from 'lit/directives/class-map.js';
|
|
3
|
-
import { html, css, LitElement } from 'lit';
|
|
3
|
+
import { html, css, LitElement, nothing } from 'lit';
|
|
4
4
|
import { property } from 'lit/decorators.js';
|
|
5
5
|
import { ifDefined } from 'lit/directives/if-defined.js';
|
|
6
6
|
import { createRef, ref } from 'lit/directives/ref.js';
|
|
@@ -747,7 +747,7 @@ let AuroFormValidation$1 = class AuroFormValidation {
|
|
|
747
747
|
} else if (this.runtimeUtils.elementMatch(elem, 'auro-input') && elem.errorMessage === '') {
|
|
748
748
|
const input = elem.renderRoot.querySelector('input');
|
|
749
749
|
|
|
750
|
-
if (input.validationMessage.length > 0) {
|
|
750
|
+
if (input && input.validationMessage.length > 0) {
|
|
751
751
|
elem.errorMessage = input.validationMessage;
|
|
752
752
|
}
|
|
753
753
|
} else if (this.runtimeUtils.elementMatch(elem, 'auro-combobox') && elem.errorMessage === '') {
|
|
@@ -10342,7 +10342,11 @@ let AuroInputUtilities$1 = class AuroInputUtilities {
|
|
|
10342
10342
|
return part.value;
|
|
10343
10343
|
}
|
|
10344
10344
|
})
|
|
10345
|
-
.join("")
|
|
10345
|
+
.join("")
|
|
10346
|
+
// Remove whitespace and leading/trailing special characters for IMask compatibility
|
|
10347
|
+
// for example, ko-KR's format is `YYYY. MM. DD.` which causes issues with IMask if we don't remove the trailing period.
|
|
10348
|
+
.replace(/\s/gu, '')
|
|
10349
|
+
.replace(/^[^A-Z0-9]+|[^A-Z0-9]+$/gu, '');
|
|
10346
10350
|
}
|
|
10347
10351
|
|
|
10348
10352
|
/**
|
|
@@ -10498,27 +10502,16 @@ let AuroInputUtilities$1 = class AuroInputUtilities {
|
|
|
10498
10502
|
* Converts a model value to a display value for the input element.
|
|
10499
10503
|
* For full date formats, converts an ISO model value to the configured display format.
|
|
10500
10504
|
* @private
|
|
10501
|
-
* @param {string} value - The model value (ISO string for date types).
|
|
10502
10505
|
* @param {Date|undefined} valueObject - Date object representation of value.
|
|
10503
10506
|
* @param {string} format - The date format string.
|
|
10504
|
-
* @returns {string}
|
|
10507
|
+
* @returns {string | undefined}
|
|
10505
10508
|
*/
|
|
10506
|
-
toFormattedValue(
|
|
10507
|
-
if (!this.isFullDateFormat('date', format) || !value) {
|
|
10508
|
-
return value;
|
|
10509
|
-
}
|
|
10510
|
-
|
|
10511
|
-
if (!dateFormatter$1.isValidDate(value)) {
|
|
10512
|
-
// For ISO-pattern strings that fail range validation (e.g. '2024-99-99'),
|
|
10513
|
-
// return '' so inputElement stays empty and format-based validation is not triggered.
|
|
10514
|
-
return (/^\d{4}-\d{2}-\d{2}$/u).test(value) ? '' : value;
|
|
10515
|
-
}
|
|
10516
|
-
|
|
10509
|
+
toFormattedValue(valueObject, format) {
|
|
10517
10510
|
const normalizedFormat = format.toLowerCase();
|
|
10518
10511
|
const maskOptions = this.getMaskOptions('date', normalizedFormat);
|
|
10519
10512
|
|
|
10520
10513
|
if (!(valueObject instanceof Date) || Number.isNaN(valueObject.getTime()) || !maskOptions || typeof maskOptions.format !== 'function') {
|
|
10521
|
-
return
|
|
10514
|
+
return undefined;
|
|
10522
10515
|
}
|
|
10523
10516
|
|
|
10524
10517
|
return maskOptions.format(valueObject);
|
|
@@ -10542,29 +10535,6 @@ function getDateFormatFromLocale$1 (locale) {
|
|
|
10542
10535
|
|
|
10543
10536
|
class AuroDatepickerUtilities {
|
|
10544
10537
|
|
|
10545
|
-
/**
|
|
10546
|
-
* Converts an ISO date string (yyyy-mm-dd) to any display format.
|
|
10547
|
-
* @param {string} isoStr - ISO date string.
|
|
10548
|
-
* @param {string} format - Target display format (e.g. "mm/dd/yyyy", "dd/mm/yyyy").
|
|
10549
|
-
* @returns {string|undefined}
|
|
10550
|
-
*/
|
|
10551
|
-
toCustomFormat(isoStr, format) {
|
|
10552
|
-
if (!isoStr || !format) return undefined;
|
|
10553
|
-
try {
|
|
10554
|
-
const date = dateFormatter$1.stringToDateInstance(isoStr);
|
|
10555
|
-
const year = String(date.getFullYear()).padStart(4, '0');
|
|
10556
|
-
const month = String(date.getMonth() + 1).padStart(2, '0');
|
|
10557
|
-
const day = String(date.getDate()).padStart(2, '0');
|
|
10558
|
-
return format.toLowerCase()
|
|
10559
|
-
.replace(/yyyy/iu, year)
|
|
10560
|
-
.replace(/yy/iu, year.slice(-2))
|
|
10561
|
-
.replace(/mm/iu, month)
|
|
10562
|
-
.replace(/dd/iu, day);
|
|
10563
|
-
} catch {
|
|
10564
|
-
return undefined;
|
|
10565
|
-
}
|
|
10566
|
-
}
|
|
10567
|
-
|
|
10568
10538
|
/**
|
|
10569
10539
|
* Converts any date object to a date object representing the first day of the month.
|
|
10570
10540
|
* @param {Object} date - Date to convert to the first day of the month.
|
|
@@ -10590,17 +10560,6 @@ class AuroDatepickerUtilities {
|
|
|
10590
10560
|
return months <= 0 ? 0 : months;
|
|
10591
10561
|
}
|
|
10592
10562
|
|
|
10593
|
-
/**
|
|
10594
|
-
* Function to format a number to two digits.
|
|
10595
|
-
* @private
|
|
10596
|
-
* @param {Number} num - Number to format.
|
|
10597
|
-
* @returns {String}
|
|
10598
|
-
*/
|
|
10599
|
-
formatTwoDigits(num) {
|
|
10600
|
-
const singleDigitThreshold = 10;
|
|
10601
|
-
return num < singleDigitThreshold ? `0${num}` : num;
|
|
10602
|
-
}
|
|
10603
|
-
|
|
10604
10563
|
/**
|
|
10605
10564
|
* Function to generate checkmark svg.
|
|
10606
10565
|
* @private
|
|
@@ -10639,6 +10598,7 @@ class UtilitiesCalendarRender {
|
|
|
10639
10598
|
updateCentralDate(elem, date) {
|
|
10640
10599
|
// if date is already iso formatted string, we can skip the conversion and validation step
|
|
10641
10600
|
if (typeof date === 'string' && dateFormatter$1.isValidDate(date)) {
|
|
10601
|
+
// eslint-disable-next-line
|
|
10642
10602
|
elem.centralDate = date.replace(/(\d{4})-(\d{2})-(\d{2})/, '$1-$2-01'); // Set to first of the month
|
|
10643
10603
|
return;
|
|
10644
10604
|
}
|
|
@@ -10664,6 +10624,7 @@ class UtilitiesCalendarRender {
|
|
|
10664
10624
|
determineDefinedCalendarRange(elem) {
|
|
10665
10625
|
if (elem.getAttribute('calendarStartDate') && elem.getAttribute('calendarEndDate')) {
|
|
10666
10626
|
// if we have a defined range of months, use that
|
|
10627
|
+
// prop is not in sync with attribute yet, use attribute value
|
|
10667
10628
|
elem.calendarRangeMonths = elem.util.monthDiff(dateFormatter$1.stringToDateInstance(elem.getAttribute('calendarStartDate')), dateFormatter$1.stringToDateInstance(elem.getAttribute('calendarEndDate')));
|
|
10668
10629
|
} else {
|
|
10669
10630
|
// if we don't have a defined range of months, use undefined
|
|
@@ -10722,13 +10683,10 @@ class UtilitiesCalendarRender {
|
|
|
10722
10683
|
// 2. Start by assuming we can render the max number of months.
|
|
10723
10684
|
let calendarCount = maxRenderableMonths;
|
|
10724
10685
|
|
|
10725
|
-
// 3. If
|
|
10686
|
+
// 3. If maximumRenderableMonths() returns 0 (e.g. an invalid/empty defined range),
|
|
10687
|
+
// fall back to the min/max date range so something is rendered.
|
|
10726
10688
|
if (!calendarCount && elem.minDate && elem.maxDate) {
|
|
10727
|
-
|
|
10728
|
-
|
|
10729
|
-
if (monthsInRange < maxRenderableMonths) {
|
|
10730
|
-
calendarCount = monthsInRange;
|
|
10731
|
-
}
|
|
10689
|
+
calendarCount = this.util.monthDiff(elem.minDateObject, elem.maxDateObject);
|
|
10732
10690
|
}
|
|
10733
10691
|
|
|
10734
10692
|
if (elem.numCalendars !== calendarCount) {
|
|
@@ -10772,11 +10730,10 @@ class UtilitiesCalendarRender {
|
|
|
10772
10730
|
<auro-formkit-calendar-month
|
|
10773
10731
|
id="${`month-${month}-${year}`}"
|
|
10774
10732
|
.disabledDays="${elem.disabledDays}"
|
|
10775
|
-
.min="${elem.
|
|
10776
|
-
.max="${elem.
|
|
10733
|
+
.min="${elem.minDateObject?.getTime() / 1000}"
|
|
10734
|
+
.max="${elem.maxDateObject?.getTime() / 1000}"
|
|
10777
10735
|
?noRange="${elem.noRange}"
|
|
10778
10736
|
.monthFirst="${elem.monthFirst}"
|
|
10779
|
-
.hoveredDate="${elem.hoveredDate}"
|
|
10780
10737
|
.dateTo="${elem.dateTo}"
|
|
10781
10738
|
.dateFrom="${elem.dateFrom}"
|
|
10782
10739
|
.locale="${elem.locale}"
|
|
@@ -10809,11 +10766,11 @@ var snowflakeStyle = css`:host([layout*=snowflake]) [auro-input]{flex:1;text-ali
|
|
|
10809
10766
|
|
|
10810
10767
|
var snowflakeColors = css`:host([layout=snowflake]) [auro-dropdown]:not(:is([error],.hasFocus)){--ds-auro-dropdown-trigger-border-color: transparent}`;
|
|
10811
10768
|
|
|
10812
|
-
var styleCss$7 = css`.body-default{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-default-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-default-font-size, 1rem);line-height:var(--wcss-body-default-line-height, 1.5rem)}.body-default-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-default-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-default-emphasized-font-size, 1rem);line-height:var(--wcss-body-default-emphasized-line-height, 1.5rem)}.body-lg{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-lg-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-lg-font-size, 1.125rem);line-height:var(--wcss-body-lg-line-height, 1.625rem)}.body-lg-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-lg-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-lg-emphasized-font-size, 1.125rem);line-height:var(--wcss-body-lg-emphasized-line-height, 1.625rem)}.body-sm{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-sm-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-sm-font-size, 0.875rem);line-height:var(--wcss-body-sm-line-height, 1.25rem)}.body-sm-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-sm-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-sm-emphasized-font-size, 0.875rem);line-height:var(--wcss-body-sm-emphasized-line-height, 1.25rem)}.body-xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-xs-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-xs-font-size, 0.75rem);line-height:var(--wcss-body-xs-line-height, 1rem)}.body-xs-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-xs-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-xs-emphasized-font-size, 0.75rem);line-height:var(--wcss-body-xs-emphasized-line-height, 1rem)}.body-2xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-2xs-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-2xs-font-size, 0.625rem);line-height:var(--wcss-body-2xs-line-height, 0.875rem)}.body-2xs-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-2xs-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-2xs-emphasized-font-size, 0.625rem);line-height:var(--wcss-body-2xs-emphasized-line-height, 0.875rem)}.display-2xl{font-family:var(--wcss-display-2xl-family, "AS Circular"),var(--wcss-display-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-2xl-weight, 300);line-height:var(--wcss-display-2xl-line-height, 1.3);font-size:var(--wcss-display-2xl-font-size, clamp(3.5rem, 6vw, 5.375rem));letter-spacing:var(--wcss-display-2xl-letter-spacing, 0)}.display-xl{font-family:var(--wcss-display-xl-family, "AS Circular"),var(--wcss-display-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-xl-weight, 300);line-height:var(--wcss-display-xl-line-height, 1.3);font-size:var(--wcss-display-xl-font-size, clamp(3rem, 5.3333333333vw, 4.5rem));letter-spacing:var(--wcss-display-xl-letter-spacing, 0)}.display-lg{font-family:var(--wcss-display-lg-family, "AS Circular"),var(--wcss-display-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-lg-weight, 300);line-height:var(--wcss-display-lg-line-height, 1.3);font-size:var(--wcss-display-lg-font-size, clamp(2.75rem, 4.6666666667vw, 4rem));letter-spacing:var(--wcss-display-lg-letter-spacing, 0)}.display-md{font-family:var(--wcss-display-md-family, "AS Circular"),var(--wcss-display-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-md-weight, 300);line-height:var(--wcss-display-md-line-height, 1.3);font-size:var(--wcss-display-md-font-size, clamp(2.5rem, 4vw, 3.5rem));letter-spacing:var(--wcss-display-md-letter-spacing, 0)}.display-sm{font-family:var(--wcss-display-sm-family, "AS Circular"),var(--wcss-display-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-sm-weight, 300);line-height:var(--wcss-display-sm-line-height, 1.3);font-size:var(--wcss-display-sm-font-size, clamp(2rem, 3.6666666667vw, 3rem));letter-spacing:var(--wcss-display-sm-letter-spacing, 0)}.display-xs{font-family:var(--wcss-display-xs-family, "AS Circular"),var(--wcss-display-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-xs-weight, 300);line-height:var(--wcss-display-xs-line-height, 1.3);font-size:var(--wcss-display-xs-font-size, clamp(1.75rem, 3vw, 2.375rem));letter-spacing:var(--wcss-display-xs-letter-spacing, 0)}.heading-xl{font-family:var(--wcss-heading-xl-family, "AS Circular"),var(--wcss-heading-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-xl-weight, 300);line-height:var(--wcss-heading-xl-line-height, 1.3);font-size:var(--wcss-heading-xl-font-size, clamp(2rem, 3vw, 2.5rem));letter-spacing:var(--wcss-heading-xl-letter-spacing, 0)}.heading-lg{font-family:var(--wcss-heading-lg-family, "AS Circular"),var(--wcss-heading-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-lg-weight, 300);line-height:var(--wcss-heading-lg-line-height, 1.3);font-size:var(--wcss-heading-lg-font-size, clamp(1.75rem, 2.6666666667vw, 2.25rem));letter-spacing:var(--wcss-heading-lg-letter-spacing, 0)}.heading-md{font-family:var(--wcss-heading-md-family, "AS Circular"),var(--wcss-heading-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-md-weight, 300);line-height:var(--wcss-heading-md-line-height, 1.3);font-size:var(--wcss-heading-md-font-size, clamp(1.625rem, 2.3333333333vw, 1.75rem));letter-spacing:var(--wcss-heading-md-letter-spacing, 0)}.heading-sm{font-family:var(--wcss-heading-sm-family, "AS Circular"),var(--wcss-heading-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-sm-weight, 300);line-height:var(--wcss-heading-sm-line-height, 1.3);font-size:var(--wcss-heading-sm-font-size, clamp(1.375rem, 2vw, 1.5rem));letter-spacing:var(--wcss-heading-sm-letter-spacing, 0)}.heading-xs{font-family:var(--wcss-heading-xs-family, "AS Circular"),var(--wcss-heading-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-xs-weight, 300);line-height:var(--wcss-heading-xs-line-height, 1.3);font-size:var(--wcss-heading-xs-font-size, clamp(1.25rem, 1.6666666667vw, 1.25rem));letter-spacing:var(--wcss-heading-xs-letter-spacing, 0)}.heading-2xs{font-family:var(--wcss-heading-2xs-family, "AS Circular"),var(--wcss-heading-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-2xs-weight, 300);line-height:var(--wcss-heading-2xs-line-height, 1.3);font-size:var(--wcss-heading-2xs-font-size, clamp(1.125rem, 1.5vw, 1.125rem));letter-spacing:var(--wcss-heading-2xs-letter-spacing, 0)}.accent-2xl{font-family:var(--wcss-accent-2xl-family, "Good OT"),var(--wcss-accent-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-2xl-weight, 450);line-height:var(--wcss-accent-2xl-line-height, 1);font-size:var(--wcss-accent-2xl-font-size, clamp(2rem, 3.1666666667vw, 2.375rem));letter-spacing:var(--wcss-accent-2xl-letter-spacing, 0.05em);text-transform:uppercase}.accent-xl{font-family:var(--wcss-accent-xl-family, "Good OT"),var(--wcss-accent-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-xl-weight, 450);line-height:var(--wcss-accent-xl-line-height, 1.3);font-size:var(--wcss-accent-xl-font-size, clamp(1.625rem, 2.3333333333vw, 2rem));letter-spacing:var(--wcss-accent-xl-letter-spacing, 0.05em);text-transform:uppercase}.accent-lg{font-family:var(--wcss-accent-lg-family, "Good OT"),var(--wcss-accent-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-lg-weight, 450);line-height:var(--wcss-accent-lg-line-height, 1.3);font-size:var(--wcss-accent-lg-font-size, clamp(1.5rem, 2.1666666667vw, 1.75rem));letter-spacing:var(--wcss-accent-lg-letter-spacing, 0.05em);text-transform:uppercase}.accent-md{font-family:var(--wcss-accent-md-family, "Good OT"),var(--wcss-accent-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-md-weight, 500);line-height:var(--wcss-accent-md-line-height, 1.3);font-size:var(--wcss-accent-md-font-size, clamp(1.375rem, 1.8333333333vw, 1.5rem));letter-spacing:var(--wcss-accent-md-letter-spacing, 0.05em);text-transform:uppercase}.accent-sm{font-family:var(--wcss-accent-sm-family, "Good OT"),var(--wcss-accent-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-sm-weight, 500);line-height:var(--wcss-accent-sm-line-height, 1.3);font-size:var(--wcss-accent-sm-font-size, clamp(1.125rem, 1.5vw, 1.25rem));letter-spacing:var(--wcss-accent-sm-letter-spacing, 0.05em);text-transform:uppercase}.accent-xs{font-family:var(--wcss-accent-xs-family, "Good OT"),var(--wcss-accent-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-xs-weight, 500);line-height:var(--wcss-accent-xs-line-height, 1.3);font-size:var(--wcss-accent-xs-font-size, clamp(1rem, 1.3333333333vw, 1rem));letter-spacing:var(--wcss-accent-xs-letter-spacing, 0.1em);text-transform:uppercase}.accent-2xs{font-family:var(--wcss-accent-2xs-family, "Good OT"),var(--wcss-accent-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-2xs-weight, 450);line-height:var(--wcss-accent-2xs-line-height, 1.3);font-size:var(--wcss-accent-2xs-font-size, clamp(0.875rem, 1.1666666667vw, 0.875rem));letter-spacing:var(--wcss-accent-2xs-letter-spacing, 0.1em);text-transform:uppercase}:host{--calendar-width: 336px;--mobile-footer-height: 150px;--mobile-header-height: 68px;height:100vh;height:100dvh}.calendars{display:flex;flex-direction:row}.calendarNavButtons{position:absolute;top:var(--ds-size-200, 1rem);right:var(--ds-size-50, 0.25rem);left:var(--ds-size-50, 0.25rem)}.calendarNavBtn{display:flex;width:var(--ds-size-500, 2.5rem);height:var(--ds-size-500, 2.5rem);align-items:center;justify-content:center;border-width:1px;border-style:solid;border-radius:50%;cursor:pointer}.prevMonth,.nextMonth{position:absolute;top:0}.prevMonth{left:0}.nextMonth{right:0}.headerActions{padding:0 var(--ds-size-200, 1rem)}.mobileHeader{width:100%;height:var(--mobile-header-height);z-index:1;align-items:center;flex-direction:row}.headerDateFrom,.headerDateTo{display:flex;height:var(--mobile-header-height);flex:1;flex-direction:column;justify-content:center;padding:0 var(--ds-size-150, 0.75rem) 0 var(--ds-size-200, 1rem)}.mobileDateLabel{padding:var(--ds-size-25, 0.125rem) 0}.mobileFooter{display:none;width:100%;align-items:flex-end;flex-direction:column;justify-content:flex-end}.mobileFooterActions{position:relative;bottom:0;left:50%;display:none;width:calc(100% - var(--ds-size-200, 1rem)*2);align-items:flex-end;flex-direction:column;justify-content:flex-end;padding:var(--ds-size-150) calc(var(--ds-size-200, 1rem));transform:translateX(-50%)}.mobileFooterActions auro-button{width:100%}:host([isfullscreen]){width:100%;max-height:100dvh;overflow:hidden}:host([isfullscreen]) .prevMonth,:host([isfullscreen]) .nextMonth{display:none}:host([isfullscreen]) .mobileHeader,:host([isfullscreen]) .mobileFooter,:host([isfullscreen]) .mobileFooterActions{display:flex}:host([isfullscreen]) .calendarWrapper{display:flex;flex-direction:column}:host([isfullscreen]) .calendars{display:flex;flex-direction:column;flex:1;align-items:center;width:100%;overscroll-behavior:contain}:host([isfullscreen]) .calendars:after{display:block;width:100%;height:var(--mobile-footer-height);content:""}`;
|
|
10769
|
+
var styleCss$7 = css`.body-default{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-default-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-default-font-size, 1rem);line-height:var(--wcss-body-default-line-height, 1.5rem)}.body-default-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-default-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-default-emphasized-font-size, 1rem);line-height:var(--wcss-body-default-emphasized-line-height, 1.5rem)}.body-lg{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-lg-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-lg-font-size, 1.125rem);line-height:var(--wcss-body-lg-line-height, 1.625rem)}.body-lg-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-lg-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-lg-emphasized-font-size, 1.125rem);line-height:var(--wcss-body-lg-emphasized-line-height, 1.625rem)}.body-sm{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-sm-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-sm-font-size, 0.875rem);line-height:var(--wcss-body-sm-line-height, 1.25rem)}.body-sm-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-sm-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-sm-emphasized-font-size, 0.875rem);line-height:var(--wcss-body-sm-emphasized-line-height, 1.25rem)}.body-xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-xs-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-xs-font-size, 0.75rem);line-height:var(--wcss-body-xs-line-height, 1rem)}.body-xs-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-xs-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-xs-emphasized-font-size, 0.75rem);line-height:var(--wcss-body-xs-emphasized-line-height, 1rem)}.body-2xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-2xs-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-2xs-font-size, 0.625rem);line-height:var(--wcss-body-2xs-line-height, 0.875rem)}.body-2xs-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-2xs-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-2xs-emphasized-font-size, 0.625rem);line-height:var(--wcss-body-2xs-emphasized-line-height, 0.875rem)}.display-2xl{font-family:var(--wcss-display-2xl-family, "AS Circular"),var(--wcss-display-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-2xl-weight, 300);line-height:var(--wcss-display-2xl-line-height, 1.3);font-size:var(--wcss-display-2xl-font-size, clamp(3.5rem, 6vw, 5.375rem));letter-spacing:var(--wcss-display-2xl-letter-spacing, 0)}.display-xl{font-family:var(--wcss-display-xl-family, "AS Circular"),var(--wcss-display-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-xl-weight, 300);line-height:var(--wcss-display-xl-line-height, 1.3);font-size:var(--wcss-display-xl-font-size, clamp(3rem, 5.3333333333vw, 4.5rem));letter-spacing:var(--wcss-display-xl-letter-spacing, 0)}.display-lg{font-family:var(--wcss-display-lg-family, "AS Circular"),var(--wcss-display-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-lg-weight, 300);line-height:var(--wcss-display-lg-line-height, 1.3);font-size:var(--wcss-display-lg-font-size, clamp(2.75rem, 4.6666666667vw, 4rem));letter-spacing:var(--wcss-display-lg-letter-spacing, 0)}.display-md{font-family:var(--wcss-display-md-family, "AS Circular"),var(--wcss-display-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-md-weight, 300);line-height:var(--wcss-display-md-line-height, 1.3);font-size:var(--wcss-display-md-font-size, clamp(2.5rem, 4vw, 3.5rem));letter-spacing:var(--wcss-display-md-letter-spacing, 0)}.display-sm{font-family:var(--wcss-display-sm-family, "AS Circular"),var(--wcss-display-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-sm-weight, 300);line-height:var(--wcss-display-sm-line-height, 1.3);font-size:var(--wcss-display-sm-font-size, clamp(2rem, 3.6666666667vw, 3rem));letter-spacing:var(--wcss-display-sm-letter-spacing, 0)}.display-xs{font-family:var(--wcss-display-xs-family, "AS Circular"),var(--wcss-display-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-xs-weight, 300);line-height:var(--wcss-display-xs-line-height, 1.3);font-size:var(--wcss-display-xs-font-size, clamp(1.75rem, 3vw, 2.375rem));letter-spacing:var(--wcss-display-xs-letter-spacing, 0)}.heading-xl{font-family:var(--wcss-heading-xl-family, "AS Circular"),var(--wcss-heading-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-xl-weight, 300);line-height:var(--wcss-heading-xl-line-height, 1.3);font-size:var(--wcss-heading-xl-font-size, clamp(2rem, 3vw, 2.5rem));letter-spacing:var(--wcss-heading-xl-letter-spacing, 0)}.heading-lg{font-family:var(--wcss-heading-lg-family, "AS Circular"),var(--wcss-heading-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-lg-weight, 300);line-height:var(--wcss-heading-lg-line-height, 1.3);font-size:var(--wcss-heading-lg-font-size, clamp(1.75rem, 2.6666666667vw, 2.25rem));letter-spacing:var(--wcss-heading-lg-letter-spacing, 0)}.heading-md{font-family:var(--wcss-heading-md-family, "AS Circular"),var(--wcss-heading-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-md-weight, 300);line-height:var(--wcss-heading-md-line-height, 1.3);font-size:var(--wcss-heading-md-font-size, clamp(1.625rem, 2.3333333333vw, 1.75rem));letter-spacing:var(--wcss-heading-md-letter-spacing, 0)}.heading-sm{font-family:var(--wcss-heading-sm-family, "AS Circular"),var(--wcss-heading-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-sm-weight, 300);line-height:var(--wcss-heading-sm-line-height, 1.3);font-size:var(--wcss-heading-sm-font-size, clamp(1.375rem, 2vw, 1.5rem));letter-spacing:var(--wcss-heading-sm-letter-spacing, 0)}.heading-xs{font-family:var(--wcss-heading-xs-family, "AS Circular"),var(--wcss-heading-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-xs-weight, 300);line-height:var(--wcss-heading-xs-line-height, 1.3);font-size:var(--wcss-heading-xs-font-size, clamp(1.25rem, 1.6666666667vw, 1.25rem));letter-spacing:var(--wcss-heading-xs-letter-spacing, 0)}.heading-2xs{font-family:var(--wcss-heading-2xs-family, "AS Circular"),var(--wcss-heading-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-2xs-weight, 300);line-height:var(--wcss-heading-2xs-line-height, 1.3);font-size:var(--wcss-heading-2xs-font-size, clamp(1.125rem, 1.5vw, 1.125rem));letter-spacing:var(--wcss-heading-2xs-letter-spacing, 0)}.accent-2xl{font-family:var(--wcss-accent-2xl-family, "Good OT"),var(--wcss-accent-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-2xl-weight, 450);line-height:var(--wcss-accent-2xl-line-height, 1);font-size:var(--wcss-accent-2xl-font-size, clamp(2rem, 3.1666666667vw, 2.375rem));letter-spacing:var(--wcss-accent-2xl-letter-spacing, 0.05em);text-transform:uppercase}.accent-xl{font-family:var(--wcss-accent-xl-family, "Good OT"),var(--wcss-accent-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-xl-weight, 450);line-height:var(--wcss-accent-xl-line-height, 1.3);font-size:var(--wcss-accent-xl-font-size, clamp(1.625rem, 2.3333333333vw, 2rem));letter-spacing:var(--wcss-accent-xl-letter-spacing, 0.05em);text-transform:uppercase}.accent-lg{font-family:var(--wcss-accent-lg-family, "Good OT"),var(--wcss-accent-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-lg-weight, 450);line-height:var(--wcss-accent-lg-line-height, 1.3);font-size:var(--wcss-accent-lg-font-size, clamp(1.5rem, 2.1666666667vw, 1.75rem));letter-spacing:var(--wcss-accent-lg-letter-spacing, 0.05em);text-transform:uppercase}.accent-md{font-family:var(--wcss-accent-md-family, "Good OT"),var(--wcss-accent-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-md-weight, 500);line-height:var(--wcss-accent-md-line-height, 1.3);font-size:var(--wcss-accent-md-font-size, clamp(1.375rem, 1.8333333333vw, 1.5rem));letter-spacing:var(--wcss-accent-md-letter-spacing, 0.05em);text-transform:uppercase}.accent-sm{font-family:var(--wcss-accent-sm-family, "Good OT"),var(--wcss-accent-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-sm-weight, 500);line-height:var(--wcss-accent-sm-line-height, 1.3);font-size:var(--wcss-accent-sm-font-size, clamp(1.125rem, 1.5vw, 1.25rem));letter-spacing:var(--wcss-accent-sm-letter-spacing, 0.05em);text-transform:uppercase}.accent-xs{font-family:var(--wcss-accent-xs-family, "Good OT"),var(--wcss-accent-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-xs-weight, 500);line-height:var(--wcss-accent-xs-line-height, 1.3);font-size:var(--wcss-accent-xs-font-size, clamp(1rem, 1.3333333333vw, 1rem));letter-spacing:var(--wcss-accent-xs-letter-spacing, 0.1em);text-transform:uppercase}.accent-2xs{font-family:var(--wcss-accent-2xs-family, "Good OT"),var(--wcss-accent-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-2xs-weight, 450);line-height:var(--wcss-accent-2xs-line-height, 1.3);font-size:var(--wcss-accent-2xs-font-size, clamp(0.875rem, 1.1666666667vw, 0.875rem));letter-spacing:var(--wcss-accent-2xs-letter-spacing, 0.1em);text-transform:uppercase}:host{--calendar-width: 336px;--mobile-footer-height: 150px;--mobile-header-height: 68px;--desktop-footer-height: 80px;height:100vh;height:100dvh}.calendars{display:flex;flex-direction:row}.calendars:focus{outline:none}.calendarNavButtons{position:absolute;z-index:1;top:var(--ds-size-200, 1rem);right:var(--ds-size-50, 0.25rem);left:var(--ds-size-50, 0.25rem)}.calendarNavBtn{display:flex;width:var(--ds-size-500, 2.5rem);height:var(--ds-size-500, 2.5rem);align-items:center;justify-content:center;border-width:1px;border-style:solid;border-radius:50%;cursor:pointer}.prevMonth,.nextMonth{position:absolute;top:0}.prevMonth{left:0}.nextMonth{right:0}.headerActions{padding:0 var(--ds-size-200, 1rem)}.mobileHeader{width:100%;height:var(--mobile-header-height);z-index:1;align-items:center;flex-direction:row}.headerDateFrom,.headerDateTo{display:flex;height:var(--mobile-header-height);flex:1;flex-direction:column;justify-content:center;padding:0 var(--ds-size-150, 0.75rem) 0 var(--ds-size-200, 1rem)}.mobileDateLabel{padding:var(--ds-size-25, 0.125rem) 0}.mobileFooter{display:none;width:100%;align-items:flex-end;flex-direction:column;justify-content:flex-end}.mobileFooterActions{position:relative;bottom:0;left:50%;display:none;width:calc(100% - var(--ds-size-200, 1rem)*2);align-items:flex-end;flex-direction:column;justify-content:flex-end;padding:var(--ds-size-150) calc(var(--ds-size-200, 1rem));transform:translateX(-50%)}.mobileFooterActions auro-button{width:100%}.calendarWrapper.hasFooter{padding-bottom:var(--desktop-footer-height)}:host([isfullscreen]){width:100%;max-height:100dvh;overflow:hidden}:host([isfullscreen]) .prevMonth,:host([isfullscreen]) .nextMonth{display:none}:host([isfullscreen]) .mobileHeader,:host([isfullscreen]) .mobileFooter,:host([isfullscreen]) .mobileFooterActions{display:flex}:host([isfullscreen]) .calendarWrapper{display:flex;flex-direction:column}:host([isfullscreen]) .calendars{display:flex;flex-direction:column;flex:1;align-items:center;width:100%;overscroll-behavior:contain}:host([isfullscreen]) .calendars:after{display:block;width:100%;height:var(--mobile-footer-height);content:""}.sr-only{position:absolute;overflow:hidden;clip:rect(0, 0, 0, 0);width:1px;height:1px;margin:-1px;padding:0;border:0;white-space:nowrap}`;
|
|
10813
10770
|
|
|
10814
10771
|
var colorCss$7 = css`.calendarNavBtn{border-color:var(--ds-auro-calendar-nav-btn-border-color);background-color:var(--ds-auro-calendar-nav-btn-container-color);color:var(--ds-auro-calendar-nav-btn-chevron-color)}.calendarNavBtn:hover{--ds-auro-calendar-nav-btn-container-color: var(--ds-advanced-color-state-background-hover, #f2f2f2);--ds-auro-calendar-nav-btn-border-color: var(--ds-basic-color-brand-primary, #01426a)}.calendarNavBtn:focus{--ds-auro-calendar-nav-btn-border-color: var(--ds-basic-color-brand-primary, #01426a)}.calendarNavBtn:active{--ds-auro-calendar-nav-btn-border-color: var(--ds-basic-color-brand-primary, #01426a);box-shadow:inset 0 0 0 1px var(--ds-auro-calendar-nav-btn-border-color)}.mobileHeader{background-color:var(--ds-auro-calendar-mobile-header-container-color)}.mobileDateLabel{color:var(--ds-auro-calendar-mobile-header-text-color)}:host(:not([noRange])) .headerDateTo:after{background-color:var(--ds-auro-calendar-mobile-header-divider-color)}::slotted([slot="bib.fullscreen.fromStr"]),::slotted([slot=mobileDateToStr]){color:var(--ds-auro-datepicker-placeholder-color)}@media screen and (max-width: 576px){.calendarNavBtn{--ds-auro-calendar-nav-btn-border-color: var(--ds-basic-color-brand-primary, #01426a)}}`;
|
|
10815
10772
|
|
|
10816
|
-
var styleCss$6 = css`:focus:not(:focus-visible){outline:3px solid transparent}.body-default{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-default-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-default-font-size, 1rem);line-height:var(--wcss-body-default-line-height, 1.5rem)}.body-default-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-default-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-default-emphasized-font-size, 1rem);line-height:var(--wcss-body-default-emphasized-line-height, 1.5rem)}.body-lg{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-lg-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-lg-font-size, 1.125rem);line-height:var(--wcss-body-lg-line-height, 1.625rem)}.body-lg-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-lg-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-lg-emphasized-font-size, 1.125rem);line-height:var(--wcss-body-lg-emphasized-line-height, 1.625rem)}.body-sm{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-sm-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-sm-font-size, 0.875rem);line-height:var(--wcss-body-sm-line-height, 1.25rem)}.body-sm-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-sm-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-sm-emphasized-font-size, 0.875rem);line-height:var(--wcss-body-sm-emphasized-line-height, 1.25rem)}.body-xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-xs-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-xs-font-size, 0.75rem);line-height:var(--wcss-body-xs-line-height, 1rem)}.body-xs-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-xs-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-xs-emphasized-font-size, 0.75rem);line-height:var(--wcss-body-xs-emphasized-line-height, 1rem)}.body-2xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-2xs-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-2xs-font-size, 0.625rem);line-height:var(--wcss-body-2xs-line-height, 0.875rem)}.body-2xs-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-2xs-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-2xs-emphasized-font-size, 0.625rem);line-height:var(--wcss-body-2xs-emphasized-line-height, 0.875rem)}.display-2xl{font-family:var(--wcss-display-2xl-family, "AS Circular"),var(--wcss-display-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-2xl-weight, 300);line-height:var(--wcss-display-2xl-line-height, 1.3);font-size:var(--wcss-display-2xl-font-size, clamp(3.5rem, 6vw, 5.375rem));letter-spacing:var(--wcss-display-2xl-letter-spacing, 0)}.display-xl{font-family:var(--wcss-display-xl-family, "AS Circular"),var(--wcss-display-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-xl-weight, 300);line-height:var(--wcss-display-xl-line-height, 1.3);font-size:var(--wcss-display-xl-font-size, clamp(3rem, 5.3333333333vw, 4.5rem));letter-spacing:var(--wcss-display-xl-letter-spacing, 0)}.display-lg{font-family:var(--wcss-display-lg-family, "AS Circular"),var(--wcss-display-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-lg-weight, 300);line-height:var(--wcss-display-lg-line-height, 1.3);font-size:var(--wcss-display-lg-font-size, clamp(2.75rem, 4.6666666667vw, 4rem));letter-spacing:var(--wcss-display-lg-letter-spacing, 0)}.display-md{font-family:var(--wcss-display-md-family, "AS Circular"),var(--wcss-display-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-md-weight, 300);line-height:var(--wcss-display-md-line-height, 1.3);font-size:var(--wcss-display-md-font-size, clamp(2.5rem, 4vw, 3.5rem));letter-spacing:var(--wcss-display-md-letter-spacing, 0)}.display-sm{font-family:var(--wcss-display-sm-family, "AS Circular"),var(--wcss-display-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-sm-weight, 300);line-height:var(--wcss-display-sm-line-height, 1.3);font-size:var(--wcss-display-sm-font-size, clamp(2rem, 3.6666666667vw, 3rem));letter-spacing:var(--wcss-display-sm-letter-spacing, 0)}.display-xs{font-family:var(--wcss-display-xs-family, "AS Circular"),var(--wcss-display-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-xs-weight, 300);line-height:var(--wcss-display-xs-line-height, 1.3);font-size:var(--wcss-display-xs-font-size, clamp(1.75rem, 3vw, 2.375rem));letter-spacing:var(--wcss-display-xs-letter-spacing, 0)}.heading-xl{font-family:var(--wcss-heading-xl-family, "AS Circular"),var(--wcss-heading-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-xl-weight, 300);line-height:var(--wcss-heading-xl-line-height, 1.3);font-size:var(--wcss-heading-xl-font-size, clamp(2rem, 3vw, 2.5rem));letter-spacing:var(--wcss-heading-xl-letter-spacing, 0)}.heading-lg{font-family:var(--wcss-heading-lg-family, "AS Circular"),var(--wcss-heading-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-lg-weight, 300);line-height:var(--wcss-heading-lg-line-height, 1.3);font-size:var(--wcss-heading-lg-font-size, clamp(1.75rem, 2.6666666667vw, 2.25rem));letter-spacing:var(--wcss-heading-lg-letter-spacing, 0)}.heading-md{font-family:var(--wcss-heading-md-family, "AS Circular"),var(--wcss-heading-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-md-weight, 300);line-height:var(--wcss-heading-md-line-height, 1.3);font-size:var(--wcss-heading-md-font-size, clamp(1.625rem, 2.3333333333vw, 1.75rem));letter-spacing:var(--wcss-heading-md-letter-spacing, 0)}.heading-sm{font-family:var(--wcss-heading-sm-family, "AS Circular"),var(--wcss-heading-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-sm-weight, 300);line-height:var(--wcss-heading-sm-line-height, 1.3);font-size:var(--wcss-heading-sm-font-size, clamp(1.375rem, 2vw, 1.5rem));letter-spacing:var(--wcss-heading-sm-letter-spacing, 0)}.heading-xs{font-family:var(--wcss-heading-xs-family, "AS Circular"),var(--wcss-heading-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-xs-weight, 300);line-height:var(--wcss-heading-xs-line-height, 1.3);font-size:var(--wcss-heading-xs-font-size, clamp(1.25rem, 1.6666666667vw, 1.25rem));letter-spacing:var(--wcss-heading-xs-letter-spacing, 0)}.heading-2xs{font-family:var(--wcss-heading-2xs-family, "AS Circular"),var(--wcss-heading-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-2xs-weight, 300);line-height:var(--wcss-heading-2xs-line-height, 1.3);font-size:var(--wcss-heading-2xs-font-size, clamp(1.125rem, 1.5vw, 1.125rem));letter-spacing:var(--wcss-heading-2xs-letter-spacing, 0)}.accent-2xl{font-family:var(--wcss-accent-2xl-family, "Good OT"),var(--wcss-accent-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-2xl-weight, 450);line-height:var(--wcss-accent-2xl-line-height, 1);font-size:var(--wcss-accent-2xl-font-size, clamp(2rem, 3.1666666667vw, 2.375rem));letter-spacing:var(--wcss-accent-2xl-letter-spacing, 0.05em);text-transform:uppercase}.accent-xl{font-family:var(--wcss-accent-xl-family, "Good OT"),var(--wcss-accent-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-xl-weight, 450);line-height:var(--wcss-accent-xl-line-height, 1.3);font-size:var(--wcss-accent-xl-font-size, clamp(1.625rem, 2.3333333333vw, 2rem));letter-spacing:var(--wcss-accent-xl-letter-spacing, 0.05em);text-transform:uppercase}.accent-lg{font-family:var(--wcss-accent-lg-family, "Good OT"),var(--wcss-accent-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-lg-weight, 450);line-height:var(--wcss-accent-lg-line-height, 1.3);font-size:var(--wcss-accent-lg-font-size, clamp(1.5rem, 2.1666666667vw, 1.75rem));letter-spacing:var(--wcss-accent-lg-letter-spacing, 0.05em);text-transform:uppercase}.accent-md{font-family:var(--wcss-accent-md-family, "Good OT"),var(--wcss-accent-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-md-weight, 500);line-height:var(--wcss-accent-md-line-height, 1.3);font-size:var(--wcss-accent-md-font-size, clamp(1.375rem, 1.8333333333vw, 1.5rem));letter-spacing:var(--wcss-accent-md-letter-spacing, 0.05em);text-transform:uppercase}.accent-sm{font-family:var(--wcss-accent-sm-family, "Good OT"),var(--wcss-accent-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-sm-weight, 500);line-height:var(--wcss-accent-sm-line-height, 1.3);font-size:var(--wcss-accent-sm-font-size, clamp(1.125rem, 1.5vw, 1.25rem));letter-spacing:var(--wcss-accent-sm-letter-spacing, 0.05em);text-transform:uppercase}.accent-xs{font-family:var(--wcss-accent-xs-family, "Good OT"),var(--wcss-accent-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-xs-weight, 500);line-height:var(--wcss-accent-xs-line-height, 1.3);font-size:var(--wcss-accent-xs-font-size, clamp(1rem, 1.3333333333vw, 1rem));letter-spacing:var(--wcss-accent-xs-letter-spacing, 0.1em);text-transform:uppercase}.accent-2xs{font-family:var(--wcss-accent-2xs-family, "Good OT"),var(--wcss-accent-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-2xs-weight, 450);line-height:var(--wcss-accent-2xs-line-height, 1.3);font-size:var(--wcss-accent-2xs-font-size, clamp(0.875rem, 1.1666666667vw, 0.875rem));letter-spacing:var(--wcss-accent-2xs-letter-spacing, 0.1em);text-transform:uppercase}:host{position:relative;display:block;width:calc(100% - var(--ds-size-200, 1rem) - var(--ds-size-200, 1rem));margin:0 var(--ds-size-200, 1rem)}@media screen and (min-width: 576px){:host{width:336px;padding:var(--ds-size-200, 1rem)}}@media screen and (min-width: 576px){:host(:not(:last-of-type)):after{position:absolute;top:var(--ds-size-200, 1rem);right:calc(-1*var(--ds-size-200, 1rem));height:calc(100% - var(--ds-size-200, 1rem) - var(--ds-size-200, 1rem));display:block;width:1px;content:""}}.header{display:flex;height:var(--ds-size-500, 2.5rem);margin-bottom:var(--ds-size-150, 0.75rem);align-items:center;flex-direction:row;text-align:center}.headerTitle{display:flex;align-items:center;flex:1;flex-direction:row;justify-content:center}.headerTitle div:first-child{margin-right:var(--ds-size-100, 0.5rem)}.calendarNavBtn{position:relative;display:flex;width:var(--ds-size-500, 2.5rem);height:var(--ds-size-500, 2.5rem);align-items:center;justify-content:center;border-width:1px;border-style:solid;border-radius:50%;cursor:pointer}.table{width:100%;border-collapse:collapse}.thead{margin-bottom:var(--ds-size-100, 0.5rem)}.th{display:flex;flex:1;align-items:center;justify-content:center}.tbody{width:100%;transition:all 0ms;transform:translateX(0)}@media screen and (min-width: 576px){.tbody{height:384px}}.td{flex:1;margin:0;padding:0}.tr{display:flex;flex-direction:row;width:100%}`;
|
|
10773
|
+
var styleCss$6 = css`:focus:not(:focus-visible){outline:3px solid transparent}.body-default{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-default-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-default-font-size, 1rem);line-height:var(--wcss-body-default-line-height, 1.5rem)}.body-default-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-default-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-default-emphasized-font-size, 1rem);line-height:var(--wcss-body-default-emphasized-line-height, 1.5rem)}.body-lg{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-lg-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-lg-font-size, 1.125rem);line-height:var(--wcss-body-lg-line-height, 1.625rem)}.body-lg-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-lg-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-lg-emphasized-font-size, 1.125rem);line-height:var(--wcss-body-lg-emphasized-line-height, 1.625rem)}.body-sm{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-sm-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-sm-font-size, 0.875rem);line-height:var(--wcss-body-sm-line-height, 1.25rem)}.body-sm-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-sm-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-sm-emphasized-font-size, 0.875rem);line-height:var(--wcss-body-sm-emphasized-line-height, 1.25rem)}.body-xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-xs-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-xs-font-size, 0.75rem);line-height:var(--wcss-body-xs-line-height, 1rem)}.body-xs-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-xs-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-xs-emphasized-font-size, 0.75rem);line-height:var(--wcss-body-xs-emphasized-line-height, 1rem)}.body-2xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-2xs-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-2xs-font-size, 0.625rem);line-height:var(--wcss-body-2xs-line-height, 0.875rem)}.body-2xs-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-2xs-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-2xs-emphasized-font-size, 0.625rem);line-height:var(--wcss-body-2xs-emphasized-line-height, 0.875rem)}.display-2xl{font-family:var(--wcss-display-2xl-family, "AS Circular"),var(--wcss-display-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-2xl-weight, 300);line-height:var(--wcss-display-2xl-line-height, 1.3);font-size:var(--wcss-display-2xl-font-size, clamp(3.5rem, 6vw, 5.375rem));letter-spacing:var(--wcss-display-2xl-letter-spacing, 0)}.display-xl{font-family:var(--wcss-display-xl-family, "AS Circular"),var(--wcss-display-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-xl-weight, 300);line-height:var(--wcss-display-xl-line-height, 1.3);font-size:var(--wcss-display-xl-font-size, clamp(3rem, 5.3333333333vw, 4.5rem));letter-spacing:var(--wcss-display-xl-letter-spacing, 0)}.display-lg{font-family:var(--wcss-display-lg-family, "AS Circular"),var(--wcss-display-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-lg-weight, 300);line-height:var(--wcss-display-lg-line-height, 1.3);font-size:var(--wcss-display-lg-font-size, clamp(2.75rem, 4.6666666667vw, 4rem));letter-spacing:var(--wcss-display-lg-letter-spacing, 0)}.display-md{font-family:var(--wcss-display-md-family, "AS Circular"),var(--wcss-display-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-md-weight, 300);line-height:var(--wcss-display-md-line-height, 1.3);font-size:var(--wcss-display-md-font-size, clamp(2.5rem, 4vw, 3.5rem));letter-spacing:var(--wcss-display-md-letter-spacing, 0)}.display-sm{font-family:var(--wcss-display-sm-family, "AS Circular"),var(--wcss-display-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-sm-weight, 300);line-height:var(--wcss-display-sm-line-height, 1.3);font-size:var(--wcss-display-sm-font-size, clamp(2rem, 3.6666666667vw, 3rem));letter-spacing:var(--wcss-display-sm-letter-spacing, 0)}.display-xs{font-family:var(--wcss-display-xs-family, "AS Circular"),var(--wcss-display-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-xs-weight, 300);line-height:var(--wcss-display-xs-line-height, 1.3);font-size:var(--wcss-display-xs-font-size, clamp(1.75rem, 3vw, 2.375rem));letter-spacing:var(--wcss-display-xs-letter-spacing, 0)}.heading-xl{font-family:var(--wcss-heading-xl-family, "AS Circular"),var(--wcss-heading-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-xl-weight, 300);line-height:var(--wcss-heading-xl-line-height, 1.3);font-size:var(--wcss-heading-xl-font-size, clamp(2rem, 3vw, 2.5rem));letter-spacing:var(--wcss-heading-xl-letter-spacing, 0)}.heading-lg{font-family:var(--wcss-heading-lg-family, "AS Circular"),var(--wcss-heading-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-lg-weight, 300);line-height:var(--wcss-heading-lg-line-height, 1.3);font-size:var(--wcss-heading-lg-font-size, clamp(1.75rem, 2.6666666667vw, 2.25rem));letter-spacing:var(--wcss-heading-lg-letter-spacing, 0)}.heading-md{font-family:var(--wcss-heading-md-family, "AS Circular"),var(--wcss-heading-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-md-weight, 300);line-height:var(--wcss-heading-md-line-height, 1.3);font-size:var(--wcss-heading-md-font-size, clamp(1.625rem, 2.3333333333vw, 1.75rem));letter-spacing:var(--wcss-heading-md-letter-spacing, 0)}.heading-sm{font-family:var(--wcss-heading-sm-family, "AS Circular"),var(--wcss-heading-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-sm-weight, 300);line-height:var(--wcss-heading-sm-line-height, 1.3);font-size:var(--wcss-heading-sm-font-size, clamp(1.375rem, 2vw, 1.5rem));letter-spacing:var(--wcss-heading-sm-letter-spacing, 0)}.heading-xs{font-family:var(--wcss-heading-xs-family, "AS Circular"),var(--wcss-heading-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-xs-weight, 300);line-height:var(--wcss-heading-xs-line-height, 1.3);font-size:var(--wcss-heading-xs-font-size, clamp(1.25rem, 1.6666666667vw, 1.25rem));letter-spacing:var(--wcss-heading-xs-letter-spacing, 0)}.heading-2xs{font-family:var(--wcss-heading-2xs-family, "AS Circular"),var(--wcss-heading-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-2xs-weight, 300);line-height:var(--wcss-heading-2xs-line-height, 1.3);font-size:var(--wcss-heading-2xs-font-size, clamp(1.125rem, 1.5vw, 1.125rem));letter-spacing:var(--wcss-heading-2xs-letter-spacing, 0)}.accent-2xl{font-family:var(--wcss-accent-2xl-family, "Good OT"),var(--wcss-accent-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-2xl-weight, 450);line-height:var(--wcss-accent-2xl-line-height, 1);font-size:var(--wcss-accent-2xl-font-size, clamp(2rem, 3.1666666667vw, 2.375rem));letter-spacing:var(--wcss-accent-2xl-letter-spacing, 0.05em);text-transform:uppercase}.accent-xl{font-family:var(--wcss-accent-xl-family, "Good OT"),var(--wcss-accent-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-xl-weight, 450);line-height:var(--wcss-accent-xl-line-height, 1.3);font-size:var(--wcss-accent-xl-font-size, clamp(1.625rem, 2.3333333333vw, 2rem));letter-spacing:var(--wcss-accent-xl-letter-spacing, 0.05em);text-transform:uppercase}.accent-lg{font-family:var(--wcss-accent-lg-family, "Good OT"),var(--wcss-accent-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-lg-weight, 450);line-height:var(--wcss-accent-lg-line-height, 1.3);font-size:var(--wcss-accent-lg-font-size, clamp(1.5rem, 2.1666666667vw, 1.75rem));letter-spacing:var(--wcss-accent-lg-letter-spacing, 0.05em);text-transform:uppercase}.accent-md{font-family:var(--wcss-accent-md-family, "Good OT"),var(--wcss-accent-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-md-weight, 500);line-height:var(--wcss-accent-md-line-height, 1.3);font-size:var(--wcss-accent-md-font-size, clamp(1.375rem, 1.8333333333vw, 1.5rem));letter-spacing:var(--wcss-accent-md-letter-spacing, 0.05em);text-transform:uppercase}.accent-sm{font-family:var(--wcss-accent-sm-family, "Good OT"),var(--wcss-accent-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-sm-weight, 500);line-height:var(--wcss-accent-sm-line-height, 1.3);font-size:var(--wcss-accent-sm-font-size, clamp(1.125rem, 1.5vw, 1.25rem));letter-spacing:var(--wcss-accent-sm-letter-spacing, 0.05em);text-transform:uppercase}.accent-xs{font-family:var(--wcss-accent-xs-family, "Good OT"),var(--wcss-accent-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-xs-weight, 500);line-height:var(--wcss-accent-xs-line-height, 1.3);font-size:var(--wcss-accent-xs-font-size, clamp(1rem, 1.3333333333vw, 1rem));letter-spacing:var(--wcss-accent-xs-letter-spacing, 0.1em);text-transform:uppercase}.accent-2xs{font-family:var(--wcss-accent-2xs-family, "Good OT"),var(--wcss-accent-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-2xs-weight, 450);line-height:var(--wcss-accent-2xs-line-height, 1.3);font-size:var(--wcss-accent-2xs-font-size, clamp(0.875rem, 1.1666666667vw, 0.875rem));letter-spacing:var(--wcss-accent-2xs-letter-spacing, 0.1em);text-transform:uppercase}:host{position:relative;display:block;width:calc(100% - var(--ds-size-200, 1rem) - var(--ds-size-200, 1rem));margin:0 var(--ds-size-200, 1rem)}@media screen and (min-width: 576px){:host{width:336px;padding:var(--ds-size-200, 1rem) var(--ds-size-200, 1rem) 0}}@media screen and (min-width: 576px){:host(:not(:last-of-type)):after{position:absolute;top:var(--ds-size-200, 1rem);right:calc(-1*var(--ds-size-200, 1rem));height:calc(100% - var(--ds-size-200, 1rem) - var(--ds-size-200, 1rem));display:block;width:1px;content:""}}.header{display:flex;height:var(--ds-size-500, 2.5rem);margin-bottom:var(--ds-size-150, 0.75rem);align-items:center;flex-direction:row;text-align:center}.headerTitle{display:flex;align-items:center;flex:1;flex-direction:row;justify-content:center}.headerTitle div:first-child{margin-right:var(--ds-size-100, 0.5rem)}.calendarNavBtn{position:relative;display:flex;width:var(--ds-size-500, 2.5rem);height:var(--ds-size-500, 2.5rem);align-items:center;justify-content:center;border-width:1px;border-style:solid;border-radius:50%;cursor:pointer}.table{width:100%;border-collapse:collapse}.thead{margin-bottom:var(--ds-size-100, 0.5rem)}.th{display:flex;flex:1;align-items:center;justify-content:center}.th abbr{text-decoration:none}.tbody{width:100%;transition:all 0ms;transform:translateX(0)}@media screen and (min-width: 576px){.tbody{height:376px}}.td{flex:1;margin:0;padding:0}.tr{display:flex;flex-direction:row;width:100%;border-radius:10px;overflow:hidden}.tr:not(:last-of-type){margin-bottom:var(--ds-size-100, 0.5rem)}`;
|
|
10817
10774
|
|
|
10818
10775
|
var colorCss$6 = css`:focus:not(:focus-visible){outline:3px solid transparent}:host{background-color:var(--ds-auro-calendar-month-container-color)}@media screen and (min-width: 576px){:host(:not(:last-of-type)):after{background-color:var(--ds-auro-calendar-month-divider-color)}}.header{color:var(--ds-auro-calendar-month-header-color)}`;
|
|
10819
10776
|
|
|
@@ -11568,41 +11525,45 @@ __decorate([property({ type: Array })], RangeDatepickerCalendar.prototype, "dayN
|
|
|
11568
11525
|
__decorate([property({ type: Array })], RangeDatepickerCalendar.prototype, "daysOfMonth", void 0);
|
|
11569
11526
|
AuroLibraryRuntimeUtils$5.prototype.registerComponent('wc-range-datepicker-calendar', RangeDatepickerCalendar);
|
|
11570
11527
|
|
|
11571
|
-
var styleCss$5 = css`.body-default{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-default-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-default-font-size, 1rem);line-height:var(--wcss-body-default-line-height, 1.5rem)}.body-default-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-default-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-default-emphasized-font-size, 1rem);line-height:var(--wcss-body-default-emphasized-line-height, 1.5rem)}.body-lg{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-lg-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-lg-font-size, 1.125rem);line-height:var(--wcss-body-lg-line-height, 1.625rem)}.body-lg-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-lg-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-lg-emphasized-font-size, 1.125rem);line-height:var(--wcss-body-lg-emphasized-line-height, 1.625rem)}.body-sm{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-sm-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-sm-font-size, 0.875rem);line-height:var(--wcss-body-sm-line-height, 1.25rem)}.body-sm-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-sm-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-sm-emphasized-font-size, 0.875rem);line-height:var(--wcss-body-sm-emphasized-line-height, 1.25rem)}.body-xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-xs-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-xs-font-size, 0.75rem);line-height:var(--wcss-body-xs-line-height, 1rem)}.body-xs-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-xs-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-xs-emphasized-font-size, 0.75rem);line-height:var(--wcss-body-xs-emphasized-line-height, 1rem)}.body-2xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-2xs-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-2xs-font-size, 0.625rem);line-height:var(--wcss-body-2xs-line-height, 0.875rem)}.body-2xs-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-2xs-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-2xs-emphasized-font-size, 0.625rem);line-height:var(--wcss-body-2xs-emphasized-line-height, 0.875rem)}.display-2xl{font-family:var(--wcss-display-2xl-family, "AS Circular"),var(--wcss-display-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-2xl-weight, 300);line-height:var(--wcss-display-2xl-line-height, 1.3);font-size:var(--wcss-display-2xl-font-size, clamp(3.5rem, 6vw, 5.375rem));letter-spacing:var(--wcss-display-2xl-letter-spacing, 0)}.display-xl{font-family:var(--wcss-display-xl-family, "AS Circular"),var(--wcss-display-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-xl-weight, 300);line-height:var(--wcss-display-xl-line-height, 1.3);font-size:var(--wcss-display-xl-font-size, clamp(3rem, 5.3333333333vw, 4.5rem));letter-spacing:var(--wcss-display-xl-letter-spacing, 0)}.display-lg{font-family:var(--wcss-display-lg-family, "AS Circular"),var(--wcss-display-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-lg-weight, 300);line-height:var(--wcss-display-lg-line-height, 1.3);font-size:var(--wcss-display-lg-font-size, clamp(2.75rem, 4.6666666667vw, 4rem));letter-spacing:var(--wcss-display-lg-letter-spacing, 0)}.display-md{font-family:var(--wcss-display-md-family, "AS Circular"),var(--wcss-display-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-md-weight, 300);line-height:var(--wcss-display-md-line-height, 1.3);font-size:var(--wcss-display-md-font-size, clamp(2.5rem, 4vw, 3.5rem));letter-spacing:var(--wcss-display-md-letter-spacing, 0)}.display-sm{font-family:var(--wcss-display-sm-family, "AS Circular"),var(--wcss-display-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-sm-weight, 300);line-height:var(--wcss-display-sm-line-height, 1.3);font-size:var(--wcss-display-sm-font-size, clamp(2rem, 3.6666666667vw, 3rem));letter-spacing:var(--wcss-display-sm-letter-spacing, 0)}.display-xs{font-family:var(--wcss-display-xs-family, "AS Circular"),var(--wcss-display-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-xs-weight, 300);line-height:var(--wcss-display-xs-line-height, 1.3);font-size:var(--wcss-display-xs-font-size, clamp(1.75rem, 3vw, 2.375rem));letter-spacing:var(--wcss-display-xs-letter-spacing, 0)}.heading-xl{font-family:var(--wcss-heading-xl-family, "AS Circular"),var(--wcss-heading-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-xl-weight, 300);line-height:var(--wcss-heading-xl-line-height, 1.3);font-size:var(--wcss-heading-xl-font-size, clamp(2rem, 3vw, 2.5rem));letter-spacing:var(--wcss-heading-xl-letter-spacing, 0)}.heading-lg{font-family:var(--wcss-heading-lg-family, "AS Circular"),var(--wcss-heading-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-lg-weight, 300);line-height:var(--wcss-heading-lg-line-height, 1.3);font-size:var(--wcss-heading-lg-font-size, clamp(1.75rem, 2.6666666667vw, 2.25rem));letter-spacing:var(--wcss-heading-lg-letter-spacing, 0)}.heading-md{font-family:var(--wcss-heading-md-family, "AS Circular"),var(--wcss-heading-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-md-weight, 300);line-height:var(--wcss-heading-md-line-height, 1.3);font-size:var(--wcss-heading-md-font-size, clamp(1.625rem, 2.3333333333vw, 1.75rem));letter-spacing:var(--wcss-heading-md-letter-spacing, 0)}.heading-sm{font-family:var(--wcss-heading-sm-family, "AS Circular"),var(--wcss-heading-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-sm-weight, 300);line-height:var(--wcss-heading-sm-line-height, 1.3);font-size:var(--wcss-heading-sm-font-size, clamp(1.375rem, 2vw, 1.5rem));letter-spacing:var(--wcss-heading-sm-letter-spacing, 0)}.heading-xs{font-family:var(--wcss-heading-xs-family, "AS Circular"),var(--wcss-heading-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-xs-weight, 300);line-height:var(--wcss-heading-xs-line-height, 1.3);font-size:var(--wcss-heading-xs-font-size, clamp(1.25rem, 1.6666666667vw, 1.25rem));letter-spacing:var(--wcss-heading-xs-letter-spacing, 0)}.heading-2xs{font-family:var(--wcss-heading-2xs-family, "AS Circular"),var(--wcss-heading-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-2xs-weight, 300);line-height:var(--wcss-heading-2xs-line-height, 1.3);font-size:var(--wcss-heading-2xs-font-size, clamp(1.125rem, 1.5vw, 1.125rem));letter-spacing:var(--wcss-heading-2xs-letter-spacing, 0)}.accent-2xl{font-family:var(--wcss-accent-2xl-family, "Good OT"),var(--wcss-accent-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-2xl-weight, 450);line-height:var(--wcss-accent-2xl-line-height, 1);font-size:var(--wcss-accent-2xl-font-size, clamp(2rem, 3.1666666667vw, 2.375rem));letter-spacing:var(--wcss-accent-2xl-letter-spacing, 0.05em);text-transform:uppercase}.accent-xl{font-family:var(--wcss-accent-xl-family, "Good OT"),var(--wcss-accent-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-xl-weight, 450);line-height:var(--wcss-accent-xl-line-height, 1.3);font-size:var(--wcss-accent-xl-font-size, clamp(1.625rem, 2.3333333333vw, 2rem));letter-spacing:var(--wcss-accent-xl-letter-spacing, 0.05em);text-transform:uppercase}.accent-lg{font-family:var(--wcss-accent-lg-family, "Good OT"),var(--wcss-accent-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-lg-weight, 450);line-height:var(--wcss-accent-lg-line-height, 1.3);font-size:var(--wcss-accent-lg-font-size, clamp(1.5rem, 2.1666666667vw, 1.75rem));letter-spacing:var(--wcss-accent-lg-letter-spacing, 0.05em);text-transform:uppercase}.accent-md{font-family:var(--wcss-accent-md-family, "Good OT"),var(--wcss-accent-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-md-weight, 500);line-height:var(--wcss-accent-md-line-height, 1.3);font-size:var(--wcss-accent-md-font-size, clamp(1.375rem, 1.8333333333vw, 1.5rem));letter-spacing:var(--wcss-accent-md-letter-spacing, 0.05em);text-transform:uppercase}.accent-sm{font-family:var(--wcss-accent-sm-family, "Good OT"),var(--wcss-accent-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-sm-weight, 500);line-height:var(--wcss-accent-sm-line-height, 1.3);font-size:var(--wcss-accent-sm-font-size, clamp(1.125rem, 1.5vw, 1.25rem));letter-spacing:var(--wcss-accent-sm-letter-spacing, 0.05em);text-transform:uppercase}.accent-xs{font-family:var(--wcss-accent-xs-family, "Good OT"),var(--wcss-accent-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-xs-weight, 500);line-height:var(--wcss-accent-xs-line-height, 1.3);font-size:var(--wcss-accent-xs-font-size, clamp(1rem, 1.3333333333vw, 1rem));letter-spacing:var(--wcss-accent-xs-letter-spacing, 0.1em);text-transform:uppercase}.accent-2xs{font-family:var(--wcss-accent-2xs-family, "Good OT"),var(--wcss-accent-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-2xs-weight, 450);line-height:var(--wcss-accent-2xs-line-height, 1.3);font-size:var(--wcss-accent-2xs-font-size, clamp(0.875rem, 1.1666666667vw, 0.875rem));letter-spacing:var(--wcss-accent-2xs-letter-spacing, 0.1em);text-transform:uppercase}@media screen and (max-width: 576px){:host{display:flex;justify-content:center}}.day{position:relative;width:var(--ds-size-500, 2.5rem);height:calc(var(--ds-size-700, 3.5rem) - 2px);padding:0;border-width:1px;border-style:solid;border-radius:var(--ds-size-300, 1.5rem);cursor:pointer;user-select:none}.day.disabled{cursor:default !important;pointer-events:none}.day.reference{box-shadow:inset 0 0 0 2px var(--ds-advanced-color-shared-background, #ffffff)}.day.inRange::before{position:absolute;z-index:-1;top:50%;left:50%;display:block;width:14.2857142857vw;height:var(--ds-size-600, 3rem);content:"";transform:translate(-50%, -50%)}@media screen and (min-width: 576px){.day.inRange::before{width:var(--ds-size-600, 3rem)}}.day.rangeDepartDate::before{position:absolute;z-index:-1;top:50%;left:50%;display:block;width:14.2857142857vw;height:var(--ds-size-600, 3rem);content:"";transform:translate(-50%, -50%);width:7.1428571429vw;transform:translate(0%, -50%)}@media screen and (min-width: 576px){.day.rangeDepartDate::before{width:calc(var(--ds-size-600, 3rem)/2)}}.day.rangeReturnDate::before,.day.lastHoveredDate::before{position:absolute;z-index:-1;top:50%;left:50%;display:block;width:14.2857142857vw;height:var(--ds-size-600, 3rem);content:"";transform:translate(-50%, -50%);width:7.1428571429vw;transform:translate(-100%, -50%)}@media screen and (min-width: 576px){.day.rangeReturnDate::before,.day.lastHoveredDate::before{width:calc(var(--ds-size-600, 3rem)/2)}}.dateSlot{display:flex;flex-direction:column}::slotted([slot^=date_]){position:absolute;top:80%;left:50%;width:100%;white-space:nowrap;transform:translate(-50%, -50%)}::slotted(auro-icon){max-height:24px;max-width:24px}:host([renderForDateSlot]) .buttonWrapper{position:relative;width:100%;top:5px}:host([renderForDateSlot]) .currentDayMarker{position:relative;padding-bottom:5px;top:-8px}@media screen and (min-width: 576px){.day{width:var(--ds-size-600, 3rem);height:var(--ds-size-800, 4rem)}.day:hover{cursor:pointer}}`;
|
|
11528
|
+
var styleCss$5 = css`.body-default{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-default-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-default-font-size, 1rem);line-height:var(--wcss-body-default-line-height, 1.5rem)}.body-default-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-default-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-default-emphasized-font-size, 1rem);line-height:var(--wcss-body-default-emphasized-line-height, 1.5rem)}.body-lg{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-lg-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-lg-font-size, 1.125rem);line-height:var(--wcss-body-lg-line-height, 1.625rem)}.body-lg-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-lg-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-lg-emphasized-font-size, 1.125rem);line-height:var(--wcss-body-lg-emphasized-line-height, 1.625rem)}.body-sm{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-sm-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-sm-font-size, 0.875rem);line-height:var(--wcss-body-sm-line-height, 1.25rem)}.body-sm-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-sm-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-sm-emphasized-font-size, 0.875rem);line-height:var(--wcss-body-sm-emphasized-line-height, 1.25rem)}.body-xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-xs-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-xs-font-size, 0.75rem);line-height:var(--wcss-body-xs-line-height, 1rem)}.body-xs-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-xs-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-xs-emphasized-font-size, 0.75rem);line-height:var(--wcss-body-xs-emphasized-line-height, 1rem)}.body-2xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-2xs-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-2xs-font-size, 0.625rem);line-height:var(--wcss-body-2xs-line-height, 0.875rem)}.body-2xs-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-2xs-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-2xs-emphasized-font-size, 0.625rem);line-height:var(--wcss-body-2xs-emphasized-line-height, 0.875rem)}.display-2xl{font-family:var(--wcss-display-2xl-family, "AS Circular"),var(--wcss-display-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-2xl-weight, 300);line-height:var(--wcss-display-2xl-line-height, 1.3);font-size:var(--wcss-display-2xl-font-size, clamp(3.5rem, 6vw, 5.375rem));letter-spacing:var(--wcss-display-2xl-letter-spacing, 0)}.display-xl{font-family:var(--wcss-display-xl-family, "AS Circular"),var(--wcss-display-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-xl-weight, 300);line-height:var(--wcss-display-xl-line-height, 1.3);font-size:var(--wcss-display-xl-font-size, clamp(3rem, 5.3333333333vw, 4.5rem));letter-spacing:var(--wcss-display-xl-letter-spacing, 0)}.display-lg{font-family:var(--wcss-display-lg-family, "AS Circular"),var(--wcss-display-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-lg-weight, 300);line-height:var(--wcss-display-lg-line-height, 1.3);font-size:var(--wcss-display-lg-font-size, clamp(2.75rem, 4.6666666667vw, 4rem));letter-spacing:var(--wcss-display-lg-letter-spacing, 0)}.display-md{font-family:var(--wcss-display-md-family, "AS Circular"),var(--wcss-display-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-md-weight, 300);line-height:var(--wcss-display-md-line-height, 1.3);font-size:var(--wcss-display-md-font-size, clamp(2.5rem, 4vw, 3.5rem));letter-spacing:var(--wcss-display-md-letter-spacing, 0)}.display-sm{font-family:var(--wcss-display-sm-family, "AS Circular"),var(--wcss-display-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-sm-weight, 300);line-height:var(--wcss-display-sm-line-height, 1.3);font-size:var(--wcss-display-sm-font-size, clamp(2rem, 3.6666666667vw, 3rem));letter-spacing:var(--wcss-display-sm-letter-spacing, 0)}.display-xs{font-family:var(--wcss-display-xs-family, "AS Circular"),var(--wcss-display-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-xs-weight, 300);line-height:var(--wcss-display-xs-line-height, 1.3);font-size:var(--wcss-display-xs-font-size, clamp(1.75rem, 3vw, 2.375rem));letter-spacing:var(--wcss-display-xs-letter-spacing, 0)}.heading-xl{font-family:var(--wcss-heading-xl-family, "AS Circular"),var(--wcss-heading-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-xl-weight, 300);line-height:var(--wcss-heading-xl-line-height, 1.3);font-size:var(--wcss-heading-xl-font-size, clamp(2rem, 3vw, 2.5rem));letter-spacing:var(--wcss-heading-xl-letter-spacing, 0)}.heading-lg{font-family:var(--wcss-heading-lg-family, "AS Circular"),var(--wcss-heading-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-lg-weight, 300);line-height:var(--wcss-heading-lg-line-height, 1.3);font-size:var(--wcss-heading-lg-font-size, clamp(1.75rem, 2.6666666667vw, 2.25rem));letter-spacing:var(--wcss-heading-lg-letter-spacing, 0)}.heading-md{font-family:var(--wcss-heading-md-family, "AS Circular"),var(--wcss-heading-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-md-weight, 300);line-height:var(--wcss-heading-md-line-height, 1.3);font-size:var(--wcss-heading-md-font-size, clamp(1.625rem, 2.3333333333vw, 1.75rem));letter-spacing:var(--wcss-heading-md-letter-spacing, 0)}.heading-sm{font-family:var(--wcss-heading-sm-family, "AS Circular"),var(--wcss-heading-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-sm-weight, 300);line-height:var(--wcss-heading-sm-line-height, 1.3);font-size:var(--wcss-heading-sm-font-size, clamp(1.375rem, 2vw, 1.5rem));letter-spacing:var(--wcss-heading-sm-letter-spacing, 0)}.heading-xs{font-family:var(--wcss-heading-xs-family, "AS Circular"),var(--wcss-heading-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-xs-weight, 300);line-height:var(--wcss-heading-xs-line-height, 1.3);font-size:var(--wcss-heading-xs-font-size, clamp(1.25rem, 1.6666666667vw, 1.25rem));letter-spacing:var(--wcss-heading-xs-letter-spacing, 0)}.heading-2xs{font-family:var(--wcss-heading-2xs-family, "AS Circular"),var(--wcss-heading-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-2xs-weight, 300);line-height:var(--wcss-heading-2xs-line-height, 1.3);font-size:var(--wcss-heading-2xs-font-size, clamp(1.125rem, 1.5vw, 1.125rem));letter-spacing:var(--wcss-heading-2xs-letter-spacing, 0)}.accent-2xl{font-family:var(--wcss-accent-2xl-family, "Good OT"),var(--wcss-accent-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-2xl-weight, 450);line-height:var(--wcss-accent-2xl-line-height, 1);font-size:var(--wcss-accent-2xl-font-size, clamp(2rem, 3.1666666667vw, 2.375rem));letter-spacing:var(--wcss-accent-2xl-letter-spacing, 0.05em);text-transform:uppercase}.accent-xl{font-family:var(--wcss-accent-xl-family, "Good OT"),var(--wcss-accent-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-xl-weight, 450);line-height:var(--wcss-accent-xl-line-height, 1.3);font-size:var(--wcss-accent-xl-font-size, clamp(1.625rem, 2.3333333333vw, 2rem));letter-spacing:var(--wcss-accent-xl-letter-spacing, 0.05em);text-transform:uppercase}.accent-lg{font-family:var(--wcss-accent-lg-family, "Good OT"),var(--wcss-accent-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-lg-weight, 450);line-height:var(--wcss-accent-lg-line-height, 1.3);font-size:var(--wcss-accent-lg-font-size, clamp(1.5rem, 2.1666666667vw, 1.75rem));letter-spacing:var(--wcss-accent-lg-letter-spacing, 0.05em);text-transform:uppercase}.accent-md{font-family:var(--wcss-accent-md-family, "Good OT"),var(--wcss-accent-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-md-weight, 500);line-height:var(--wcss-accent-md-line-height, 1.3);font-size:var(--wcss-accent-md-font-size, clamp(1.375rem, 1.8333333333vw, 1.5rem));letter-spacing:var(--wcss-accent-md-letter-spacing, 0.05em);text-transform:uppercase}.accent-sm{font-family:var(--wcss-accent-sm-family, "Good OT"),var(--wcss-accent-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-sm-weight, 500);line-height:var(--wcss-accent-sm-line-height, 1.3);font-size:var(--wcss-accent-sm-font-size, clamp(1.125rem, 1.5vw, 1.25rem));letter-spacing:var(--wcss-accent-sm-letter-spacing, 0.05em);text-transform:uppercase}.accent-xs{font-family:var(--wcss-accent-xs-family, "Good OT"),var(--wcss-accent-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-xs-weight, 500);line-height:var(--wcss-accent-xs-line-height, 1.3);font-size:var(--wcss-accent-xs-font-size, clamp(1rem, 1.3333333333vw, 1rem));letter-spacing:var(--wcss-accent-xs-letter-spacing, 0.1em);text-transform:uppercase}.accent-2xs{font-family:var(--wcss-accent-2xs-family, "Good OT"),var(--wcss-accent-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-2xs-weight, 450);line-height:var(--wcss-accent-2xs-line-height, 1.3);font-size:var(--wcss-accent-2xs-font-size, clamp(0.875rem, 1.1666666667vw, 0.875rem));letter-spacing:var(--wcss-accent-2xs-letter-spacing, 0.1em);text-transform:uppercase}@media screen and (max-width: 576px){:host{display:flex;justify-content:center}}.day{position:relative;width:48px;height:56px;padding:0;border-width:2px;border-style:solid;border-radius:10px;cursor:pointer;user-select:none}.day:focus-visible{outline:none;background-color:unset}.day.activeCell{outline-width:2px;outline-style:solid;outline-offset:-4px}.day.disabled{cursor:default !important;pointer-events:none}.day.blackout{cursor:pointer}.day.reference:after{position:absolute;top:-2px;left:-2px;display:block;width:calc(100% + 2px);height:calc(100% + 2px);box-sizing:content-box;border-radius:10px;border-style:solid;border-width:1px;content:""}.day.inRange::before{position:absolute;z-index:-1;top:-2px;left:-2px;display:block;width:calc(100% + 4px);height:calc(100% + 4px);box-sizing:content-box;content:""}.day.rangeDepartDate::before{position:absolute;z-index:-1;top:-2px;left:-2px;display:block;width:calc(100% + 4px);height:calc(100% + 4px);box-sizing:content-box;content:"";border-radius:10px 0 0 10px;overflow:hidden}.day.rangeReturnDate::before,.day.lastHoveredDate::before{position:absolute;z-index:-1;top:-2px;left:-2px;display:block;width:calc(100% + 4px);height:calc(100% + 4px);box-sizing:content-box;content:"";border-radius:0 10px 10px 0;overflow:hidden}.day.firstDayOfMonth::before{border-radius:10px 0 0 10px;overflow:hidden}.day.lastDayOfMonth::before{border-radius:0 10px 10px 0;overflow:hidden}.buttonWrapper{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%}.dateSlot{display:block}::slotted([slot^=date_]){width:100%;white-space:nowrap}::slotted(auro-icon){max-height:24px;max-width:24px}:host([renderForDateSlot]) .buttonWrapper{position:relative;width:100%;height:100%}:host([renderForDateSlot]) .currentDayMarker{position:relative}`;
|
|
11572
11529
|
|
|
11573
|
-
var colorCss$5 = css`:host ::slotted([slot^=date_]){color:var(--ds-auro-calendar-cell-price-text-color)}:host ::slotted([slot^=date_][highlight]){--ds-auro-calendar-cell-price-text-color: var(--ds-basic-color-status-success, #447a1f)}:host .day{border-color:var(--ds-auro-calendar-cell-border-color);background-color:var(--ds-auro-calendar-cell-container-color);color:var(--ds-auro-calendar-cell-text-color)}:host .day.selected{--ds-auro-calendar-cell-container-color: var(--ds-advanced-color-state-selected, #01426a);--ds-auro-calendar-cell-text-color: var(--ds-basic-color-texticon-inverse, #ffffff);--ds-auro-calendar-cell-price-text-color: var(--ds-basic-color-texticon-inverse, #ffffff)}:host .day.selected ::slotted([slot^=date_][highlight]){--ds-auro-calendar-cell-price-text-color: var(--ds-basic-color-status-success-subtle, #d6eac7)}:host .day.selected:hover{--ds-auro-calendar-cell-container-color: var(--ds-advanced-color-state-selected-hover, #00274a);--ds-auro-calendar-cell-text-color: var(--ds-basic-color-texticon-inverse, #ffffff)}:host .day.reference{--ds-
|
|
11530
|
+
var colorCss$5 = css`:host ::slotted([slot^=date_]){color:var(--ds-auro-calendar-cell-price-text-color)}:host ::slotted([slot^=date_][highlight]){--ds-auro-calendar-cell-price-text-color: var(--ds-basic-color-status-success, #447a1f)}:host .day{border-color:var(--ds-auro-calendar-cell-border-color);background-color:var(--ds-auro-calendar-cell-container-color);color:var(--ds-auro-calendar-cell-text-color)}:host .day.activeCell:not(.selected){--ds-auro-calendar-cell-container-color: var(--ds-auro-calendar-cell-in-range-color);border-color:var(--ds-advanced-color-state-selected);outline-color:var(--ds-auro-calendar-cell-container-color)}:host .day.selected{--ds-auro-calendar-cell-container-color: var(--ds-advanced-color-state-selected, #01426a);--ds-auro-calendar-cell-text-color: var(--ds-basic-color-texticon-inverse, #ffffff);--ds-auro-calendar-cell-price-text-color: var(--ds-basic-color-texticon-inverse, #ffffff)}:host .day.selected ::slotted([slot^=date_][highlight]){--ds-auro-calendar-cell-price-text-color: var(--ds-basic-color-status-success-subtle, #d6eac7)}:host .day.selected:hover{--ds-auro-calendar-cell-container-color: var(--ds-advanced-color-state-selected-hover, #00274a);--ds-auro-calendar-cell-text-color: var(--ds-basic-color-texticon-inverse, #ffffff)}:host .day.reference:after{border-color:var(--ds-basic-color-border-default, #959595);box-shadow:inset 0 0 0 2px var(--ds-basic-color-surface-default, #ffffff)}:host .day.reference:hover::after{box-shadow:inset 0 0 0 2px var(--ds-advanced-color-shared-background-muted, #f7f7f7)}:host .day:hover{--ds-auro-calendar-cell-container-color: var(--ds-advanced-color-state-background-hover, #f2f2f2);--ds-auro-calendar-cell-text-color: var(--ds-basic-color-texticon-default, #2a2a2a)}:host .day.disabled{--ds-auro-calendar-cell-container-color: transparent;--ds-auro-calendar-cell-text-color: var(--ds-basic-color-texticon-disabled, #d0d0d0);--ds-auro-calendar-cell-price-text-color: var(--ds-basic-color-texticon-disabled, #d0d0d0)}:host .day.blackout{--ds-auro-calendar-cell-container-color: transparent;--ds-auro-calendar-cell-text-color: var(--ds-basic-color-texticon-disabled, #d0d0d0);--ds-auro-calendar-cell-price-text-color: var(--ds-basic-color-texticon-disabled, #d0d0d0)}:host .day.inRange:before,:host .day.rangeDepartDate:before,:host .day.rangeReturnDate:before,:host .day.lastHoveredDate:before{background-color:var(--ds-auro-calendar-cell-in-range-color)}:host .day.sameDateTrip:before{--ds-auro-calendar-cell-in-range-color: transparent}`;
|
|
11574
11531
|
|
|
11575
|
-
class s{registerComponent(e,t){customElements.get(e)||customElements.define(e,class extends t{});}closestElement(e,t=this,i=(t,s=t&&t.closest(e))=>t&&t!==document&&t!==window?s||i(t.getRootNode().host):null){return i(t)}handleComponentTagRename(e,t){const i=t.toLowerCase();e.tagName.toLowerCase()!==i&&e.setAttribute(i,true);}elementMatch(e,t){const i=t.toLowerCase();return e.tagName.toLowerCase()===i||e.hasAttribute(i)}getSlotText(e,t){const i=e.shadowRoot?.querySelector(`slot[name="${t}"]`);return (i?.assignedNodes({flatten:true})||[]).map(e=>e.textContent?.trim()).join(" ").trim()||null}}var r$1="top",o="bottom",n$1="right",a="left",l$3="auto",c$3=[r$1,o,n$1,a],p$6="start",d$3="end",f$6="viewport",h$3="popper",m$6=c$3.reduce(function(e,t){return e.concat([t+"-"+p$6,t+"-"+d$3])},[]),u$6=[].concat(c$3,[l$3]).reduce(function(e,t){return e.concat([t,t+"-"+p$6,t+"-"+d$3])},[]),g$6=["beforeRead","read","afterRead","beforeMain","main","afterMain","beforeWrite","write","afterWrite"];function v$3(e){return e?(e.nodeName||"").toLowerCase():null}function y$6(e){if(null==e)return window;if("[object Window]"!==e.toString()){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function w$6(e){return e instanceof y$6(e).Element||e instanceof Element}function b$3(e){return e instanceof y$6(e).HTMLElement||e instanceof HTMLElement}function x$3(e){return "undefined"!=typeof ShadowRoot&&(e instanceof y$6(e).ShadowRoot||e instanceof ShadowRoot)}var S$3={name:"applyStyles",enabled:true,phase:"write",fn:function(e){var t=e.state;Object.keys(t.elements).forEach(function(e){var i=t.styles[e]||{},s=t.attributes[e]||{},r=t.elements[e];b$3(r)&&v$3(r)&&(Object.assign(r.style,i),Object.keys(s).forEach(function(e){var t=s[e];false===t?r.removeAttribute(e):r.setAttribute(e,true===t?"":t);}));});},effect:function(e){var t=e.state,i={popper:{position:t.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(t.elements.popper.style,i.popper),t.styles=i,t.elements.arrow&&Object.assign(t.elements.arrow.style,i.arrow),function(){Object.keys(t.elements).forEach(function(e){var s=t.elements[e],r=t.attributes[e]||{},o=Object.keys(t.styles.hasOwnProperty(e)?t.styles[e]:i[e]).reduce(function(e,t){return e[t]="",e},{});b$3(s)&&v$3(s)&&(Object.assign(s.style,o),Object.keys(r).forEach(function(e){s.removeAttribute(e);}));});}},requires:["computeStyles"]};function _$4(e){return e.split("-")[0]}var O=Math.max,k$6=Math.min,A$3=Math.round;function z$6(){var e=navigator.userAgentData;return null!=e&&e.brands&&Array.isArray(e.brands)?e.brands.map(function(e){return e.brand+"/"+e.version}).join(" "):navigator.userAgent}function E(){return !/^((?!chrome|android).)*safari/i.test(z$6())}function M$6(e,t,i){ void 0===t&&(t=false),void 0===i&&(i=false);var s=e.getBoundingClientRect(),r=1,o=1;t&&b$3(e)&&(r=e.offsetWidth>0&&A$3(s.width)/e.offsetWidth||1,o=e.offsetHeight>0&&A$3(s.height)/e.offsetHeight||1);var n=(w$6(e)?y$6(e):window).visualViewport,a=!E()&&i,l=(s.left+(a&&n?n.offsetLeft:0))/r,c=(s.top+(a&&n?n.offsetTop:0))/o,p=s.width/r,d=s.height/o;return {width:p,height:d,top:c,right:l+p,bottom:c+d,left:l,x:l,y:c}}function T$3(e){var t=M$6(e),i=e.offsetWidth,s=e.offsetHeight;return Math.abs(t.width-i)<=1&&(i=t.width),Math.abs(t.height-s)<=1&&(s=t.height),{x:e.offsetLeft,y:e.offsetTop,width:i,height:s}}function B$3(e,t){var i=t.getRootNode&&t.getRootNode();if(e.contains(t))return true;if(i&&x$3(i)){var s=t;do{if(s&&e.isSameNode(s))return true;s=s.parentNode||s.host;}while(s)}return false}function L(e){return y$6(e).getComputedStyle(e)}function H$3(e){return ["table","td","th"].indexOf(v$3(e))>=0}function C$3(e){return ((w$6(e)?e.ownerDocument:e.document)||window.document).documentElement}function R$3(e){return "html"===v$3(e)?e:e.assignedSlot||e.parentNode||(x$3(e)?e.host:null)||C$3(e)}function j(e){return b$3(e)&&"fixed"!==L(e).position?e.offsetParent:null}function N$3(e){for(var t=y$6(e),i=j(e);i&&H$3(i)&&"static"===L(i).position;)i=j(i);return i&&("html"===v$3(i)||"body"===v$3(i)&&"static"===L(i).position)?t:i||function(e){var t=/firefox/i.test(z$6());if(/Trident/i.test(z$6())&&b$3(e)&&"fixed"===L(e).position)return null;var i=R$3(e);for(x$3(i)&&(i=i.host);b$3(i)&&["html","body"].indexOf(v$3(i))<0;){var s=L(i);if("none"!==s.transform||"none"!==s.perspective||"paint"===s.contain||-1!==["transform","perspective"].indexOf(s.willChange)||t&&"filter"===s.willChange||t&&s.filter&&"none"!==s.filter)return i;i=i.parentNode;}return null}(e)||t}function P(e){return ["top","bottom"].indexOf(e)>=0?"x":"y"}function D(e,t,i){return O(e,k$6(t,i))}function I(e){return Object.assign({},{top:0,right:0,bottom:0,left:0},e)}function F(e,t){return t.reduce(function(t,i){return t[i]=e,t},{})}var U$3={name:"arrow",enabled:true,phase:"main",fn:function(e){var t,i=e.state,s=e.name,l=e.options,p=i.elements.arrow,d=i.modifiersData.popperOffsets,f=_$4(i.placement),h=P(f),m=[a,n$1].indexOf(f)>=0?"height":"width";if(p&&d){var u=function(e,t){return I("number"!=typeof(e="function"==typeof e?e(Object.assign({},t.rects,{placement:t.placement})):e)?e:F(e,c$3))}(l.padding,i),g=T$3(p),v="y"===h?r$1:a,y="y"===h?o:n$1,w=i.rects.reference[m]+i.rects.reference[h]-d[h]-i.rects.popper[m],b=d[h]-i.rects.reference[h],x=N$3(p),S=x?"y"===h?x.clientHeight||0:x.clientWidth||0:0,O=w/2-b/2,k=u[v],A=S-g[m]-u[y],z=S/2-g[m]/2+O,E=D(k,z,A),M=h;i.modifiersData[s]=((t={})[M]=E,t.centerOffset=E-z,t);}},effect:function(e){var t=e.state,i=e.options.element,s=void 0===i?"[data-popper-arrow]":i;null!=s&&("string"!=typeof s||(s=t.elements.popper.querySelector(s)))&&B$3(t.elements.popper,s)&&(t.elements.arrow=s);},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function q$3(e){return e.split("-")[1]}var W={top:"auto",right:"auto",bottom:"auto",left:"auto"};function X(e){var t,i=e.popper,s=e.popperRect,l=e.placement,c=e.variation,p=e.offsets,f=e.position,h=e.gpuAcceleration,m=e.adaptive,u=e.roundOffsets,g=e.isFixed,v=p.x,w=void 0===v?0:v,b=p.y,x=void 0===b?0:b,S="function"==typeof u?u({x:w,y:x}):{x:w,y:x};w=S.x,x=S.y;var _=p.hasOwnProperty("x"),O=p.hasOwnProperty("y"),k=a,z=r$1,E=window;if(m){var M=N$3(i),T="clientHeight",B="clientWidth";if(M===y$6(i)&&"static"!==L(M=C$3(i)).position&&"absolute"===f&&(T="scrollHeight",B="scrollWidth"),l===r$1||(l===a||l===n$1)&&c===d$3)z=o,x-=(g&&M===E&&E.visualViewport?E.visualViewport.height:M[T])-s.height,x*=h?1:-1;if(l===a||(l===r$1||l===o)&&c===d$3)k=n$1,w-=(g&&M===E&&E.visualViewport?E.visualViewport.width:M[B])-s.width,w*=h?1:-1;}var H,R=Object.assign({position:f},m&&W),j=true===u?function(e,t){var i=e.x,s=e.y,r=t.devicePixelRatio||1;return {x:A$3(i*r)/r||0,y:A$3(s*r)/r||0}}({x:w,y:x},y$6(i)):{x:w,y:x};return w=j.x,x=j.y,h?Object.assign({},R,((H={})[z]=O?"0":"",H[k]=_?"0":"",H.transform=(E.devicePixelRatio||1)<=1?"translate("+w+"px, "+x+"px)":"translate3d("+w+"px, "+x+"px, 0)",H)):Object.assign({},R,((t={})[z]=O?x+"px":"",t[k]=_?w+"px":"",t.transform="",t))}var V={passive:true};var G={left:"right",right:"left",bottom:"top",top:"bottom"};function $(e){return e.replace(/left|right|bottom|top/g,function(e){return G[e]})}var K={start:"end",end:"start"};function Y(e){return e.replace(/start|end/g,function(e){return K[e]})}function J(e){var t=y$6(e);return {scrollLeft:t.pageXOffset,scrollTop:t.pageYOffset}}function Q(e){return M$6(C$3(e)).left+J(e).scrollLeft}function Z(e){var t=L(e),i=t.overflow,s=t.overflowX,r=t.overflowY;return /auto|scroll|overlay|hidden/.test(i+r+s)}function ee(e){return ["html","body","#document"].indexOf(v$3(e))>=0?e.ownerDocument.body:b$3(e)&&Z(e)?e:ee(R$3(e))}function te(e,t){var i;void 0===t&&(t=[]);var s=ee(e),r=s===(null==(i=e.ownerDocument)?void 0:i.body),o=y$6(s),n=r?[o].concat(o.visualViewport||[],Z(s)?s:[]):s,a=t.concat(n);return r?a:a.concat(te(R$3(n)))}function ie(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function se(e,t,i){return t===f$6?ie(function(e,t){var i=y$6(e),s=C$3(e),r=i.visualViewport,o=s.clientWidth,n=s.clientHeight,a=0,l=0;if(r){o=r.width,n=r.height;var c=E();(c||!c&&"fixed"===t)&&(a=r.offsetLeft,l=r.offsetTop);}return {width:o,height:n,x:a+Q(e),y:l}}(e,i)):w$6(t)?function(e,t){var i=M$6(e,false,"fixed"===t);return i.top=i.top+e.clientTop,i.left=i.left+e.clientLeft,i.bottom=i.top+e.clientHeight,i.right=i.left+e.clientWidth,i.width=e.clientWidth,i.height=e.clientHeight,i.x=i.left,i.y=i.top,i}(t,i):ie(function(e){var t,i=C$3(e),s=J(e),r=null==(t=e.ownerDocument)?void 0:t.body,o=O(i.scrollWidth,i.clientWidth,r?r.scrollWidth:0,r?r.clientWidth:0),n=O(i.scrollHeight,i.clientHeight,r?r.scrollHeight:0,r?r.clientHeight:0),a=-s.scrollLeft+Q(e),l=-s.scrollTop;return "rtl"===L(r||i).direction&&(a+=O(i.clientWidth,r?r.clientWidth:0)-o),{width:o,height:n,x:a,y:l}}(C$3(e)))}function re(e,t,i,s){var r="clippingParents"===t?function(e){var t=te(R$3(e)),i=["absolute","fixed"].indexOf(L(e).position)>=0&&b$3(e)?N$3(e):e;return w$6(i)?t.filter(function(e){return w$6(e)&&B$3(e,i)&&"body"!==v$3(e)}):[]}(e):[].concat(t),o=[].concat(r,[i]),n=o[0],a=o.reduce(function(t,i){var r=se(e,i,s);return t.top=O(r.top,t.top),t.right=k$6(r.right,t.right),t.bottom=k$6(r.bottom,t.bottom),t.left=O(r.left,t.left),t},se(e,n,s));return a.width=a.right-a.left,a.height=a.bottom-a.top,a.x=a.left,a.y=a.top,a}function oe(e){var t,i=e.reference,s=e.element,l=e.placement,c=l?_$4(l):null,f=l?q$3(l):null,h=i.x+i.width/2-s.width/2,m=i.y+i.height/2-s.height/2;switch(c){case r$1:t={x:h,y:i.y-s.height};break;case o:t={x:h,y:i.y+i.height};break;case n$1:t={x:i.x+i.width,y:m};break;case a:t={x:i.x-s.width,y:m};break;default:t={x:i.x,y:i.y};}var u=c?P(c):null;if(null!=u){var g="y"===u?"height":"width";switch(f){case p$6:t[u]=t[u]-(i[g]/2-s[g]/2);break;case d$3:t[u]=t[u]+(i[g]/2-s[g]/2);}}return t}function ne(e,t){ void 0===t&&(t={});var i=t,s=i.placement,a=void 0===s?e.placement:s,l=i.strategy,p=void 0===l?e.strategy:l,d=i.boundary,m=void 0===d?"clippingParents":d,u=i.rootBoundary,g=void 0===u?f$6:u,v=i.elementContext,y=void 0===v?h$3:v,b=i.altBoundary,x=void 0!==b&&b,S=i.padding,_=void 0===S?0:S,O=I("number"!=typeof _?_:F(_,c$3)),k=y===h$3?"reference":h$3,A=e.rects.popper,z=e.elements[x?k:y],E=re(w$6(z)?z:z.contextElement||C$3(e.elements.popper),m,g,p),T=M$6(e.elements.reference),B=oe({reference:T,element:A,placement:a}),L=ie(Object.assign({},A,B)),H=y===h$3?L:T,R={top:E.top-H.top+O.top,bottom:H.bottom-E.bottom+O.bottom,left:E.left-H.left+O.left,right:H.right-E.right+O.right},j=e.modifiersData.offset;if(y===h$3&&j){var N=j[a];Object.keys(R).forEach(function(e){var t=[n$1,o].indexOf(e)>=0?1:-1,i=[r$1,o].indexOf(e)>=0?"y":"x";R[e]+=N[i]*t;});}return R}function ae(e,t){ void 0===t&&(t={});var i=t,s=i.placement,r=i.boundary,o=i.rootBoundary,n=i.padding,a=i.flipVariations,l=i.allowedAutoPlacements,p=void 0===l?u$6:l,d=q$3(s),f=d?a?m$6:m$6.filter(function(e){return q$3(e)===d}):c$3,h=f.filter(function(e){return p.indexOf(e)>=0});0===h.length&&(h=f);var g=h.reduce(function(t,i){return t[i]=ne(e,{placement:i,boundary:r,rootBoundary:o,padding:n})[_$4(i)],t},{});return Object.keys(g).sort(function(e,t){return g[e]-g[t]})}var le={name:"flip",enabled:true,phase:"main",fn:function(e){var t=e.state,i=e.options,s=e.name;if(!t.modifiersData[s]._skip){for(var c=i.mainAxis,d=void 0===c||c,f=i.altAxis,h=void 0===f||f,m=i.fallbackPlacements,u=i.padding,g=i.boundary,v=i.rootBoundary,y=i.altBoundary,w=i.flipVariations,b=void 0===w||w,x=i.allowedAutoPlacements,S=t.options.placement,O=_$4(S),k=m||(O===S||!b?[$(S)]:function(e){if(_$4(e)===l$3)return [];var t=$(e);return [Y(e),t,Y(t)]}(S)),A=[S].concat(k).reduce(function(e,i){return e.concat(_$4(i)===l$3?ae(t,{placement:i,boundary:g,rootBoundary:v,padding:u,flipVariations:b,allowedAutoPlacements:x}):i)},[]),z=t.rects.reference,E=t.rects.popper,M=new Map,T=true,B=A[0],L=0;L<A.length;L++){var H=A[L],C=_$4(H),R=q$3(H)===p$6,j=[r$1,o].indexOf(C)>=0,N=j?"width":"height",P=ne(t,{placement:H,boundary:g,rootBoundary:v,altBoundary:y,padding:u}),D=j?R?n$1:a:R?o:r$1;z[N]>E[N]&&(D=$(D));var I=$(D),F=[];if(d&&F.push(P[C]<=0),h&&F.push(P[D]<=0,P[I]<=0),F.every(function(e){return e})){B=H,T=false;break}M.set(H,F);}if(T)for(var U=function(e){var t=A.find(function(t){var i=M.get(t);if(i)return i.slice(0,e).every(function(e){return e})});if(t)return B=t,"break"},W=b?3:1;W>0;W--){if("break"===U(W))break}t.placement!==B&&(t.modifiersData[s]._skip=true,t.placement=B,t.reset=true);}},requiresIfExists:["offset"],data:{_skip:false}};function ce(e,t,i){return void 0===i&&(i={x:0,y:0}),{top:e.top-t.height-i.y,right:e.right-t.width+i.x,bottom:e.bottom-t.height+i.y,left:e.left-t.width-i.x}}function pe(e){return [r$1,n$1,o,a].some(function(t){return e[t]>=0})}var de={name:"offset",enabled:true,phase:"main",requires:["popperOffsets"],fn:function(e){var t=e.state,i=e.options,s=e.name,o=i.offset,l=void 0===o?[0,0]:o,c=u$6.reduce(function(e,i){return e[i]=function(e,t,i){var s=_$4(e),o=[a,r$1].indexOf(s)>=0?-1:1,l="function"==typeof i?i(Object.assign({},t,{placement:e})):i,c=l[0],p=l[1];return c=c||0,p=(p||0)*o,[a,n$1].indexOf(s)>=0?{x:p,y:c}:{x:c,y:p}}(i,t.rects,l),e},{}),p=c[t.placement],d=p.x,f=p.y;null!=t.modifiersData.popperOffsets&&(t.modifiersData.popperOffsets.x+=d,t.modifiersData.popperOffsets.y+=f),t.modifiersData[s]=c;}};var fe={name:"preventOverflow",enabled:true,phase:"main",fn:function(e){var t=e.state,i=e.options,s=e.name,l=i.mainAxis,c=void 0===l||l,d=i.altAxis,f=void 0!==d&&d,h=i.boundary,m=i.rootBoundary,u=i.altBoundary,g=i.padding,v=i.tether,y=void 0===v||v,w=i.tetherOffset,b=void 0===w?0:w,x=ne(t,{boundary:h,rootBoundary:m,padding:g,altBoundary:u}),S=_$4(t.placement),A=q$3(t.placement),z=!A,E=P(S),M="x"===E?"y":"x",B=t.modifiersData.popperOffsets,L=t.rects.reference,H=t.rects.popper,C="function"==typeof b?b(Object.assign({},t.rects,{placement:t.placement})):b,R="number"==typeof C?{mainAxis:C,altAxis:C}:Object.assign({mainAxis:0,altAxis:0},C),j=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,I={x:0,y:0};if(B){if(c){var F,U="y"===E?r$1:a,W="y"===E?o:n$1,X="y"===E?"height":"width",V=B[E],G=V+x[U],$=V-x[W],K=y?-H[X]/2:0,Y=A===p$6?L[X]:H[X],J=A===p$6?-H[X]:-L[X],Q=t.elements.arrow,Z=y&&Q?T$3(Q):{width:0,height:0},ee=t.modifiersData["arrow#persistent"]?t.modifiersData["arrow#persistent"].padding:{top:0,right:0,bottom:0,left:0},te=ee[U],ie=ee[W],se=D(0,L[X],Z[X]),re=z?L[X]/2-K-se-te-R.mainAxis:Y-se-te-R.mainAxis,oe=z?-L[X]/2+K+se+ie+R.mainAxis:J+se+ie+R.mainAxis,ae=t.elements.arrow&&N$3(t.elements.arrow),le=ae?"y"===E?ae.clientTop||0:ae.clientLeft||0:0,ce=null!=(F=null==j?void 0:j[E])?F:0,pe=V+oe-ce,de=D(y?k$6(G,V+re-ce-le):G,V,y?O($,pe):$);B[E]=de,I[E]=de-V;}if(f){var fe,he="x"===E?r$1:a,me="x"===E?o:n$1,ue=B[M],ge="y"===M?"height":"width",ve=ue+x[he],ye=ue-x[me],we=-1!==[r$1,a].indexOf(S),be=null!=(fe=null==j?void 0:j[M])?fe:0,xe=we?ve:ue-L[ge]-H[ge]-be+R.altAxis,Se=we?ue+L[ge]+H[ge]-be-R.altAxis:ye,_e=y&&we?function(e,t,i){var s=D(e,t,i);return s>i?i:s}(xe,ue,Se):D(y?xe:ve,ue,y?Se:ye);B[M]=_e,I[M]=_e-ue;}t.modifiersData[s]=I;}},requiresIfExists:["offset"]};function he(e,t,i){ void 0===i&&(i=false);var s,r,o=b$3(t),n=b$3(t)&&function(e){var t=e.getBoundingClientRect(),i=A$3(t.width)/e.offsetWidth||1,s=A$3(t.height)/e.offsetHeight||1;return 1!==i||1!==s}(t),a=C$3(t),l=M$6(e,n,i),c={scrollLeft:0,scrollTop:0},p={x:0,y:0};return (o||!o&&!i)&&(("body"!==v$3(t)||Z(a))&&(c=(s=t)!==y$6(s)&&b$3(s)?{scrollLeft:(r=s).scrollLeft,scrollTop:r.scrollTop}:J(s)),b$3(t)?((p=M$6(t,true)).x+=t.clientLeft,p.y+=t.clientTop):a&&(p.x=Q(a))),{x:l.left+c.scrollLeft-p.x,y:l.top+c.scrollTop-p.y,width:l.width,height:l.height}}function me(e){var t=new Map,i=new Set,s=[];function r(e){i.add(e.name),[].concat(e.requires||[],e.requiresIfExists||[]).forEach(function(e){if(!i.has(e)){var s=t.get(e);s&&r(s);}}),s.push(e);}return e.forEach(function(e){t.set(e.name,e);}),e.forEach(function(e){i.has(e.name)||r(e);}),s}var ue={placement:"bottom",modifiers:[],strategy:"absolute"};function ge(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];return !t.some(function(e){return !(e&&"function"==typeof e.getBoundingClientRect)})}function ve(e){ void 0===e&&(e={});var t=e,i=t.defaultModifiers,s=void 0===i?[]:i,r=t.defaultOptions,o=void 0===r?ue:r;return function(e,t,i){ void 0===i&&(i=o);var r,n,a={placement:"bottom",orderedModifiers:[],options:Object.assign({},ue,o),modifiersData:{},elements:{reference:e,popper:t},attributes:{},styles:{}},l=[],c=false,p={state:a,setOptions:function(i){var r="function"==typeof i?i(a.options):i;d(),a.options=Object.assign({},o,a.options,r),a.scrollParents={reference:w$6(e)?te(e):e.contextElement?te(e.contextElement):[],popper:te(t)};var n,c,f=function(e){var t=me(e);return g$6.reduce(function(e,i){return e.concat(t.filter(function(e){return e.phase===i}))},[])}((n=[].concat(s,a.options.modifiers),c=n.reduce(function(e,t){var i=e[t.name];return e[t.name]=i?Object.assign({},i,t,{options:Object.assign({},i.options,t.options),data:Object.assign({},i.data,t.data)}):t,e},{}),Object.keys(c).map(function(e){return c[e]})));return a.orderedModifiers=f.filter(function(e){return e.enabled}),a.orderedModifiers.forEach(function(e){var t=e.name,i=e.options,s=void 0===i?{}:i,r=e.effect;if("function"==typeof r){var o=r({state:a,name:t,instance:p,options:s}),n=function(){};l.push(o||n);}}),p.update()},forceUpdate:function(){if(!c){var e=a.elements,t=e.reference,i=e.popper;if(ge(t,i)){a.rects={reference:he(t,N$3(i),"fixed"===a.options.strategy),popper:T$3(i)},a.reset=false,a.placement=a.options.placement,a.orderedModifiers.forEach(function(e){return a.modifiersData[e.name]=Object.assign({},e.data)});for(var s=0;s<a.orderedModifiers.length;s++)if(true!==a.reset){var r=a.orderedModifiers[s],o=r.fn,n=r.options,l=void 0===n?{}:n,d=r.name;"function"==typeof o&&(a=o({state:a,options:l,name:d,instance:p})||a);}else a.reset=false,s=-1;}}},update:(r=function(){return new Promise(function(e){p.forceUpdate(),e(a);})},function(){return n||(n=new Promise(function(e){Promise.resolve().then(function(){n=void 0,e(r());});})),n}),destroy:function(){d(),c=true;}};if(!ge(e,t))return p;function d(){l.forEach(function(e){return e()}),l=[];}return p.setOptions(i).then(function(e){!c&&i.onFirstUpdate&&i.onFirstUpdate(e);}),p}}var ye=ve({defaultModifiers:[{name:"eventListeners",enabled:true,phase:"write",fn:function(){},effect:function(e){var t=e.state,i=e.instance,s=e.options,r=s.scroll,o=void 0===r||r,n=s.resize,a=void 0===n||n,l=y$6(t.elements.popper),c=[].concat(t.scrollParents.reference,t.scrollParents.popper);return o&&c.forEach(function(e){e.addEventListener("scroll",i.update,V);}),a&&l.addEventListener("resize",i.update,V),function(){o&&c.forEach(function(e){e.removeEventListener("scroll",i.update,V);}),a&&l.removeEventListener("resize",i.update,V);}},data:{}},{name:"popperOffsets",enabled:true,phase:"read",fn:function(e){var t=e.state,i=e.name;t.modifiersData[i]=oe({reference:t.rects.reference,element:t.rects.popper,placement:t.placement});},data:{}},{name:"computeStyles",enabled:true,phase:"beforeWrite",fn:function(e){var t=e.state,i=e.options,s=i.gpuAcceleration,r=void 0===s||s,o=i.adaptive,n=void 0===o||o,a=i.roundOffsets,l=void 0===a||a,c={placement:_$4(t.placement),variation:q$3(t.placement),popper:t.elements.popper,popperRect:t.rects.popper,gpuAcceleration:r,isFixed:"fixed"===t.options.strategy};null!=t.modifiersData.popperOffsets&&(t.styles.popper=Object.assign({},t.styles.popper,X(Object.assign({},c,{offsets:t.modifiersData.popperOffsets,position:t.options.strategy,adaptive:n,roundOffsets:l})))),null!=t.modifiersData.arrow&&(t.styles.arrow=Object.assign({},t.styles.arrow,X(Object.assign({},c,{offsets:t.modifiersData.arrow,position:"absolute",adaptive:false,roundOffsets:l})))),t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-placement":t.placement});},data:{}},S$3,de,le,fe,U$3,{name:"hide",enabled:true,phase:"main",requiresIfExists:["preventOverflow"],fn:function(e){var t=e.state,i=e.name,s=t.rects.reference,r=t.rects.popper,o=t.modifiersData.preventOverflow,n=ne(t,{elementContext:"reference"}),a=ne(t,{altBoundary:true}),l=ce(n,s),c=ce(a,r,o),p=pe(l),d=pe(c);t.modifiersData[i]={referenceClippingOffsets:l,popperEscapeOffsets:c,isReferenceHidden:p,hasPopperEscaped:d},t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-reference-hidden":p,"data-popper-escaped":d});}}]});class we{constructor(e,t,i,s){this.anchor=e,this.popover=t,this.boundaryElement=this.setBoundary(s),this.options={placement:i,visibleClass:"data-show"},this.popover.classList.remove(this.options.visibleClass);}setBoundary(e){return "string"==typeof e?document.querySelector(e)||document.body:e||document.body}show(){this.popper&&this.popper.destroy(),this.popper=ye(this.anchor,this.popover,{tooltip:this.anchor,placement:this.options.placement,modifiers:[{name:"offset",options:{offset:[0,18]}},{name:"preventOverflow",options:{mainAxis:true,boundary:this.boundaryElement,rootBoundary:"document",padding:16}}]});}triggerUpdate(){this.popper.update();}hide(){this.popover.classList.remove(this.options.visibleClass);}}var be=css`::slotted(*):not([onDark]),::slotted(*):not([appearance=inverse]){color:var(--ds-auro-popover-text-color)}.popover{background-color:var(--ds-auro-popover-container-color);box-shadow:var(--ds-auro-popover-boxshadow-color)}.arrow:before{background-color:var(--ds-auro-popover-container-color);box-shadow:2px 2px 1px 0 var(--ds-auro-popover-boxshadow-color)}
|
|
11532
|
+
class s{registerComponent(e,t){customElements.get(e)||customElements.define(e,class extends t{});}closestElement(e,t=this,i=(t,s=t&&t.closest(e))=>t&&t!==document&&t!==window?s||i(t.getRootNode().host):null){return i(t)}handleComponentTagRename(e,t){const i=t.toLowerCase();e.tagName.toLowerCase()!==i&&e.setAttribute(i,true);}elementMatch(e,t){const i=t.toLowerCase();return e.tagName.toLowerCase()===i||e.hasAttribute(i)}getSlotText(e,t){const i=e.shadowRoot?.querySelector(`slot[name="${t}"]`);return (i?.assignedNodes({flatten:true})||[]).map(e=>e.textContent?.trim()).join(" ").trim()||null}}var r$1="top",o="bottom",n$1="right",a="left",l$3="auto",c$3=[r$1,o,n$1,a],p$6="start",d$3="end",f$6="viewport",h$3="popper",u$6=c$3.reduce(function(e,t){return e.concat([t+"-"+p$6,t+"-"+d$3])},[]),m$6=[].concat(c$3,[l$3]).reduce(function(e,t){return e.concat([t,t+"-"+p$6,t+"-"+d$3])},[]),g$6=["beforeRead","read","afterRead","beforeMain","main","afterMain","beforeWrite","write","afterWrite"];function v$3(e){return e?(e.nodeName||"").toLowerCase():null}function y$6(e){if(null==e)return window;if("[object Window]"!==e.toString()){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function w$6(e){return e instanceof y$6(e).Element||e instanceof Element}function b$3(e){return e instanceof y$6(e).HTMLElement||e instanceof HTMLElement}function x$3(e){return "undefined"!=typeof ShadowRoot&&(e instanceof y$6(e).ShadowRoot||e instanceof ShadowRoot)}var S$3={name:"applyStyles",enabled:true,phase:"write",fn:function(e){var t=e.state;Object.keys(t.elements).forEach(function(e){var i=t.styles[e]||{},s=t.attributes[e]||{},r=t.elements[e];b$3(r)&&v$3(r)&&(Object.assign(r.style,i),Object.keys(s).forEach(function(e){var t=s[e];false===t?r.removeAttribute(e):r.setAttribute(e,true===t?"":t);}));});},effect:function(e){var t=e.state,i={popper:{position:t.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(t.elements.popper.style,i.popper),t.styles=i,t.elements.arrow&&Object.assign(t.elements.arrow.style,i.arrow),function(){Object.keys(t.elements).forEach(function(e){var s=t.elements[e],r=t.attributes[e]||{},o=Object.keys(t.styles.hasOwnProperty(e)?t.styles[e]:i[e]).reduce(function(e,t){return e[t]="",e},{});b$3(s)&&v$3(s)&&(Object.assign(s.style,o),Object.keys(r).forEach(function(e){s.removeAttribute(e);}));});}},requires:["computeStyles"]};function _$4(e){return e.split("-")[0]}var A$3=Math.max,O=Math.min,k$6=Math.round;function T$3(){var e=navigator.userAgentData;return null!=e&&e.brands&&Array.isArray(e.brands)?e.brands.map(function(e){return e.brand+"/"+e.version}).join(" "):navigator.userAgent}function z$6(){return !/^((?!chrome|android).)*safari/i.test(T$3())}function E(e,t,i){ void 0===t&&(t=false),void 0===i&&(i=false);var s=e.getBoundingClientRect(),r=1,o=1;t&&b$3(e)&&(r=e.offsetWidth>0&&k$6(s.width)/e.offsetWidth||1,o=e.offsetHeight>0&&k$6(s.height)/e.offsetHeight||1);var n=(w$6(e)?y$6(e):window).visualViewport,a=!z$6()&&i,l=(s.left+(a&&n?n.offsetLeft:0))/r,c=(s.top+(a&&n?n.offsetTop:0))/o,p=s.width/r,d=s.height/o;return {width:p,height:d,top:c,right:l+p,bottom:c+d,left:l,x:l,y:c}}function M$6(e){var t=E(e),i=e.offsetWidth,s=e.offsetHeight;return Math.abs(t.width-i)<=1&&(i=t.width),Math.abs(t.height-s)<=1&&(s=t.height),{x:e.offsetLeft,y:e.offsetTop,width:i,height:s}}function B$3(e,t){var i=t.getRootNode&&t.getRootNode();if(e.contains(t))return true;if(i&&x$3(i)){var s=t;do{if(s&&e.isSameNode(s))return true;s=s.parentNode||s.host;}while(s)}return false}function L(e){return y$6(e).getComputedStyle(e)}function R$3(e){return ["table","td","th"].indexOf(v$3(e))>=0}function H$3(e){return ((w$6(e)?e.ownerDocument:e.document)||window.document).documentElement}function C$3(e){return "html"===v$3(e)?e:e.assignedSlot||e.parentNode||(x$3(e)?e.host:null)||H$3(e)}function D(e){return b$3(e)&&"fixed"!==L(e).position?e.offsetParent:null}function N$3(e){for(var t=y$6(e),i=D(e);i&&R$3(i)&&"static"===L(i).position;)i=D(i);return i&&("html"===v$3(i)||"body"===v$3(i)&&"static"===L(i).position)?t:i||function(e){var t=/firefox/i.test(T$3());if(/Trident/i.test(T$3())&&b$3(e)&&"fixed"===L(e).position)return null;var i=C$3(e);for(x$3(i)&&(i=i.host);b$3(i)&&["html","body"].indexOf(v$3(i))<0;){var s=L(i);if("none"!==s.transform||"none"!==s.perspective||"paint"===s.contain||-1!==["transform","perspective"].indexOf(s.willChange)||t&&"filter"===s.willChange||t&&s.filter&&"none"!==s.filter)return i;i=i.parentNode;}return null}(e)||t}function P(e){return ["top","bottom"].indexOf(e)>=0?"x":"y"}function j(e,t,i){return A$3(e,O(t,i))}function I(e){return Object.assign({},{top:0,right:0,bottom:0,left:0},e)}function q$3(e,t){return t.reduce(function(t,i){return t[i]=e,t},{})}var F={name:"arrow",enabled:true,phase:"main",fn:function(e){var t,i=e.state,s=e.name,l=e.options,p=i.elements.arrow,d=i.modifiersData.popperOffsets,f=_$4(i.placement),h=P(f),u=[a,n$1].indexOf(f)>=0?"height":"width";if(p&&d){var m=function(e,t){return I("number"!=typeof(e="function"==typeof e?e(Object.assign({},t.rects,{placement:t.placement})):e)?e:q$3(e,c$3))}(l.padding,i),g=M$6(p),v="y"===h?r$1:a,y="y"===h?o:n$1,w=i.rects.reference[u]+i.rects.reference[h]-d[h]-i.rects.popper[u],b=d[h]-i.rects.reference[h],x=N$3(p),S=x?"y"===h?x.clientHeight||0:x.clientWidth||0:0,A=w/2-b/2,O=m[v],k=S-g[u]-m[y],T=S/2-g[u]/2+A,z=j(O,T,k),E=h;i.modifiersData[s]=((t={})[E]=z,t.centerOffset=z-T,t);}},effect:function(e){var t=e.state,i=e.options.element,s=void 0===i?"[data-popper-arrow]":i;null!=s&&("string"!=typeof s||(s=t.elements.popper.querySelector(s)))&&B$3(t.elements.popper,s)&&(t.elements.arrow=s);},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function U$3(e){return e.split("-")[1]}var V={top:"auto",right:"auto",bottom:"auto",left:"auto"};function W(e){var t,i=e.popper,s=e.popperRect,l=e.placement,c=e.variation,p=e.offsets,f=e.position,h=e.gpuAcceleration,u=e.adaptive,m=e.roundOffsets,g=e.isFixed,v=p.x,w=void 0===v?0:v,b=p.y,x=void 0===b?0:b,S="function"==typeof m?m({x:w,y:x}):{x:w,y:x};w=S.x,x=S.y;var _=p.hasOwnProperty("x"),A=p.hasOwnProperty("y"),O=a,T=r$1,z=window;if(u){var E=N$3(i),M="clientHeight",B="clientWidth";if(E===y$6(i)&&"static"!==L(E=H$3(i)).position&&"absolute"===f&&(M="scrollHeight",B="scrollWidth"),l===r$1||(l===a||l===n$1)&&c===d$3)T=o,x-=(g&&E===z&&z.visualViewport?z.visualViewport.height:E[M])-s.height,x*=h?1:-1;if(l===a||(l===r$1||l===o)&&c===d$3)O=n$1,w-=(g&&E===z&&z.visualViewport?z.visualViewport.width:E[B])-s.width,w*=h?1:-1;}var R,C=Object.assign({position:f},u&&V),D=true===m?function(e,t){var i=e.x,s=e.y,r=t.devicePixelRatio||1;return {x:k$6(i*r)/r||0,y:k$6(s*r)/r||0}}({x:w,y:x},y$6(i)):{x:w,y:x};return w=D.x,x=D.y,h?Object.assign({},C,((R={})[T]=A?"0":"",R[O]=_?"0":"",R.transform=(z.devicePixelRatio||1)<=1?"translate("+w+"px, "+x+"px)":"translate3d("+w+"px, "+x+"px, 0)",R)):Object.assign({},C,((t={})[T]=A?x+"px":"",t[O]=_?w+"px":"",t.transform="",t))}var X={passive:true};var $={left:"right",right:"left",bottom:"top",top:"bottom"};function G(e){return e.replace(/left|right|bottom|top/g,function(e){return $[e]})}var K={start:"end",end:"start"};function Y(e){return e.replace(/start|end/g,function(e){return K[e]})}function J(e){var t=y$6(e);return {scrollLeft:t.pageXOffset,scrollTop:t.pageYOffset}}function Q(e){return E(H$3(e)).left+J(e).scrollLeft}function Z(e){var t=L(e),i=t.overflow,s=t.overflowX,r=t.overflowY;return /auto|scroll|overlay|hidden/.test(i+r+s)}function ee(e){return ["html","body","#document"].indexOf(v$3(e))>=0?e.ownerDocument.body:b$3(e)&&Z(e)?e:ee(C$3(e))}function te(e,t){var i;void 0===t&&(t=[]);var s=ee(e),r=s===(null==(i=e.ownerDocument)?void 0:i.body),o=y$6(s),n=r?[o].concat(o.visualViewport||[],Z(s)?s:[]):s,a=t.concat(n);return r?a:a.concat(te(C$3(n)))}function ie(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function se(e,t,i){return t===f$6?ie(function(e,t){var i=y$6(e),s=H$3(e),r=i.visualViewport,o=s.clientWidth,n=s.clientHeight,a=0,l=0;if(r){o=r.width,n=r.height;var c=z$6();(c||!c&&"fixed"===t)&&(a=r.offsetLeft,l=r.offsetTop);}return {width:o,height:n,x:a+Q(e),y:l}}(e,i)):w$6(t)?function(e,t){var i=E(e,false,"fixed"===t);return i.top=i.top+e.clientTop,i.left=i.left+e.clientLeft,i.bottom=i.top+e.clientHeight,i.right=i.left+e.clientWidth,i.width=e.clientWidth,i.height=e.clientHeight,i.x=i.left,i.y=i.top,i}(t,i):ie(function(e){var t,i=H$3(e),s=J(e),r=null==(t=e.ownerDocument)?void 0:t.body,o=A$3(i.scrollWidth,i.clientWidth,r?r.scrollWidth:0,r?r.clientWidth:0),n=A$3(i.scrollHeight,i.clientHeight,r?r.scrollHeight:0,r?r.clientHeight:0),a=-s.scrollLeft+Q(e),l=-s.scrollTop;return "rtl"===L(r||i).direction&&(a+=A$3(i.clientWidth,r?r.clientWidth:0)-o),{width:o,height:n,x:a,y:l}}(H$3(e)))}function re(e,t,i,s){var r="clippingParents"===t?function(e){var t=te(C$3(e)),i=["absolute","fixed"].indexOf(L(e).position)>=0&&b$3(e)?N$3(e):e;return w$6(i)?t.filter(function(e){return w$6(e)&&B$3(e,i)&&"body"!==v$3(e)}):[]}(e):[].concat(t),o=[].concat(r,[i]),n=o[0],a=o.reduce(function(t,i){var r=se(e,i,s);return t.top=A$3(r.top,t.top),t.right=O(r.right,t.right),t.bottom=O(r.bottom,t.bottom),t.left=A$3(r.left,t.left),t},se(e,n,s));return a.width=a.right-a.left,a.height=a.bottom-a.top,a.x=a.left,a.y=a.top,a}function oe(e){var t,i=e.reference,s=e.element,l=e.placement,c=l?_$4(l):null,f=l?U$3(l):null,h=i.x+i.width/2-s.width/2,u=i.y+i.height/2-s.height/2;switch(c){case r$1:t={x:h,y:i.y-s.height};break;case o:t={x:h,y:i.y+i.height};break;case n$1:t={x:i.x+i.width,y:u};break;case a:t={x:i.x-s.width,y:u};break;default:t={x:i.x,y:i.y};}var m=c?P(c):null;if(null!=m){var g="y"===m?"height":"width";switch(f){case p$6:t[m]=t[m]-(i[g]/2-s[g]/2);break;case d$3:t[m]=t[m]+(i[g]/2-s[g]/2);}}return t}function ne(e,t){ void 0===t&&(t={});var i=t,s=i.placement,a=void 0===s?e.placement:s,l=i.strategy,p=void 0===l?e.strategy:l,d=i.boundary,u=void 0===d?"clippingParents":d,m=i.rootBoundary,g=void 0===m?f$6:m,v=i.elementContext,y=void 0===v?h$3:v,b=i.altBoundary,x=void 0!==b&&b,S=i.padding,_=void 0===S?0:S,A=I("number"!=typeof _?_:q$3(_,c$3)),O=y===h$3?"reference":h$3,k=e.rects.popper,T=e.elements[x?O:y],z=re(w$6(T)?T:T.contextElement||H$3(e.elements.popper),u,g,p),M=E(e.elements.reference),B=oe({reference:M,element:k,placement:a}),L=ie(Object.assign({},k,B)),R=y===h$3?L:M,C={top:z.top-R.top+A.top,bottom:R.bottom-z.bottom+A.bottom,left:z.left-R.left+A.left,right:R.right-z.right+A.right},D=e.modifiersData.offset;if(y===h$3&&D){var N=D[a];Object.keys(C).forEach(function(e){var t=[n$1,o].indexOf(e)>=0?1:-1,i=[r$1,o].indexOf(e)>=0?"y":"x";C[e]+=N[i]*t;});}return C}function ae(e,t){ void 0===t&&(t={});var i=t,s=i.placement,r=i.boundary,o=i.rootBoundary,n=i.padding,a=i.flipVariations,l=i.allowedAutoPlacements,p=void 0===l?m$6:l,d=U$3(s),f=d?a?u$6:u$6.filter(function(e){return U$3(e)===d}):c$3,h=f.filter(function(e){return p.indexOf(e)>=0});0===h.length&&(h=f);var g=h.reduce(function(t,i){return t[i]=ne(e,{placement:i,boundary:r,rootBoundary:o,padding:n})[_$4(i)],t},{});return Object.keys(g).sort(function(e,t){return g[e]-g[t]})}var le={name:"flip",enabled:true,phase:"main",fn:function(e){var t=e.state,i=e.options,s=e.name;if(!t.modifiersData[s]._skip){for(var c=i.mainAxis,d=void 0===c||c,f=i.altAxis,h=void 0===f||f,u=i.fallbackPlacements,m=i.padding,g=i.boundary,v=i.rootBoundary,y=i.altBoundary,w=i.flipVariations,b=void 0===w||w,x=i.allowedAutoPlacements,S=t.options.placement,A=_$4(S),O=u||(A===S||!b?[G(S)]:function(e){if(_$4(e)===l$3)return [];var t=G(e);return [Y(e),t,Y(t)]}(S)),k=[S].concat(O).reduce(function(e,i){return e.concat(_$4(i)===l$3?ae(t,{placement:i,boundary:g,rootBoundary:v,padding:m,flipVariations:b,allowedAutoPlacements:x}):i)},[]),T=t.rects.reference,z=t.rects.popper,E=new Map,M=true,B=k[0],L=0;L<k.length;L++){var R=k[L],H=_$4(R),C=U$3(R)===p$6,D=[r$1,o].indexOf(H)>=0,N=D?"width":"height",P=ne(t,{placement:R,boundary:g,rootBoundary:v,altBoundary:y,padding:m}),j=D?C?n$1:a:C?o:r$1;T[N]>z[N]&&(j=G(j));var I=G(j),q=[];if(d&&q.push(P[H]<=0),h&&q.push(P[j]<=0,P[I]<=0),q.every(function(e){return e})){B=R,M=false;break}E.set(R,q);}if(M)for(var F=function(e){var t=k.find(function(t){var i=E.get(t);if(i)return i.slice(0,e).every(function(e){return e})});if(t)return B=t,"break"},V=b?3:1;V>0;V--){if("break"===F(V))break}t.placement!==B&&(t.modifiersData[s]._skip=true,t.placement=B,t.reset=true);}},requiresIfExists:["offset"],data:{_skip:false}};function ce(e,t,i){return void 0===i&&(i={x:0,y:0}),{top:e.top-t.height-i.y,right:e.right-t.width+i.x,bottom:e.bottom-t.height+i.y,left:e.left-t.width-i.x}}function pe(e){return [r$1,n$1,o,a].some(function(t){return e[t]>=0})}var de={name:"offset",enabled:true,phase:"main",requires:["popperOffsets"],fn:function(e){var t=e.state,i=e.options,s=e.name,o=i.offset,l=void 0===o?[0,0]:o,c=m$6.reduce(function(e,i){return e[i]=function(e,t,i){var s=_$4(e),o=[a,r$1].indexOf(s)>=0?-1:1,l="function"==typeof i?i(Object.assign({},t,{placement:e})):i,c=l[0],p=l[1];return c=c||0,p=(p||0)*o,[a,n$1].indexOf(s)>=0?{x:p,y:c}:{x:c,y:p}}(i,t.rects,l),e},{}),p=c[t.placement],d=p.x,f=p.y;null!=t.modifiersData.popperOffsets&&(t.modifiersData.popperOffsets.x+=d,t.modifiersData.popperOffsets.y+=f),t.modifiersData[s]=c;}};var fe={name:"preventOverflow",enabled:true,phase:"main",fn:function(e){var t=e.state,i=e.options,s=e.name,l=i.mainAxis,c=void 0===l||l,d=i.altAxis,f=void 0!==d&&d,h=i.boundary,u=i.rootBoundary,m=i.altBoundary,g=i.padding,v=i.tether,y=void 0===v||v,w=i.tetherOffset,b=void 0===w?0:w,x=ne(t,{boundary:h,rootBoundary:u,padding:g,altBoundary:m}),S=_$4(t.placement),k=U$3(t.placement),T=!k,z=P(S),E="x"===z?"y":"x",B=t.modifiersData.popperOffsets,L=t.rects.reference,R=t.rects.popper,H="function"==typeof b?b(Object.assign({},t.rects,{placement:t.placement})):b,C="number"==typeof H?{mainAxis:H,altAxis:H}:Object.assign({mainAxis:0,altAxis:0},H),D=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,I={x:0,y:0};if(B){if(c){var q,F="y"===z?r$1:a,V="y"===z?o:n$1,W="y"===z?"height":"width",X=B[z],$=X+x[F],G=X-x[V],K=y?-R[W]/2:0,Y=k===p$6?L[W]:R[W],J=k===p$6?-R[W]:-L[W],Q=t.elements.arrow,Z=y&&Q?M$6(Q):{width:0,height:0},ee=t.modifiersData["arrow#persistent"]?t.modifiersData["arrow#persistent"].padding:{top:0,right:0,bottom:0,left:0},te=ee[F],ie=ee[V],se=j(0,L[W],Z[W]),re=T?L[W]/2-K-se-te-C.mainAxis:Y-se-te-C.mainAxis,oe=T?-L[W]/2+K+se+ie+C.mainAxis:J+se+ie+C.mainAxis,ae=t.elements.arrow&&N$3(t.elements.arrow),le=ae?"y"===z?ae.clientTop||0:ae.clientLeft||0:0,ce=null!=(q=null==D?void 0:D[z])?q:0,pe=X+oe-ce,de=j(y?O($,X+re-ce-le):$,X,y?A$3(G,pe):G);B[z]=de,I[z]=de-X;}if(f){var fe,he="x"===z?r$1:a,ue="x"===z?o:n$1,me=B[E],ge="y"===E?"height":"width",ve=me+x[he],ye=me-x[ue],we=-1!==[r$1,a].indexOf(S),be=null!=(fe=null==D?void 0:D[E])?fe:0,xe=we?ve:me-L[ge]-R[ge]-be+C.altAxis,Se=we?me+L[ge]+R[ge]-be-C.altAxis:ye,_e=y&&we?function(e,t,i){var s=j(e,t,i);return s>i?i:s}(xe,me,Se):j(y?xe:ve,me,y?Se:ye);B[E]=_e,I[E]=_e-me;}t.modifiersData[s]=I;}},requiresIfExists:["offset"]};function he(e,t,i){ void 0===i&&(i=false);var s,r,o=b$3(t),n=b$3(t)&&function(e){var t=e.getBoundingClientRect(),i=k$6(t.width)/e.offsetWidth||1,s=k$6(t.height)/e.offsetHeight||1;return 1!==i||1!==s}(t),a=H$3(t),l=E(e,n,i),c={scrollLeft:0,scrollTop:0},p={x:0,y:0};return (o||!o&&!i)&&(("body"!==v$3(t)||Z(a))&&(c=(s=t)!==y$6(s)&&b$3(s)?{scrollLeft:(r=s).scrollLeft,scrollTop:r.scrollTop}:J(s)),b$3(t)?((p=E(t,true)).x+=t.clientLeft,p.y+=t.clientTop):a&&(p.x=Q(a))),{x:l.left+c.scrollLeft-p.x,y:l.top+c.scrollTop-p.y,width:l.width,height:l.height}}function ue(e){var t=new Map,i=new Set,s=[];function r(e){i.add(e.name),[].concat(e.requires||[],e.requiresIfExists||[]).forEach(function(e){if(!i.has(e)){var s=t.get(e);s&&r(s);}}),s.push(e);}return e.forEach(function(e){t.set(e.name,e);}),e.forEach(function(e){i.has(e.name)||r(e);}),s}var me={placement:"bottom",modifiers:[],strategy:"absolute"};function ge(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];return !t.some(function(e){return !(e&&"function"==typeof e.getBoundingClientRect)})}function ve(e){ void 0===e&&(e={});var t=e,i=t.defaultModifiers,s=void 0===i?[]:i,r=t.defaultOptions,o=void 0===r?me:r;return function(e,t,i){ void 0===i&&(i=o);var r,n,a={placement:"bottom",orderedModifiers:[],options:Object.assign({},me,o),modifiersData:{},elements:{reference:e,popper:t},attributes:{},styles:{}},l=[],c=false,p={state:a,setOptions:function(i){var r="function"==typeof i?i(a.options):i;d(),a.options=Object.assign({},o,a.options,r),a.scrollParents={reference:w$6(e)?te(e):e.contextElement?te(e.contextElement):[],popper:te(t)};var n,c,f=function(e){var t=ue(e);return g$6.reduce(function(e,i){return e.concat(t.filter(function(e){return e.phase===i}))},[])}((n=[].concat(s,a.options.modifiers),c=n.reduce(function(e,t){var i=e[t.name];return e[t.name]=i?Object.assign({},i,t,{options:Object.assign({},i.options,t.options),data:Object.assign({},i.data,t.data)}):t,e},{}),Object.keys(c).map(function(e){return c[e]})));return a.orderedModifiers=f.filter(function(e){return e.enabled}),a.orderedModifiers.forEach(function(e){var t=e.name,i=e.options,s=void 0===i?{}:i,r=e.effect;if("function"==typeof r){var o=r({state:a,name:t,instance:p,options:s}),n=function(){};l.push(o||n);}}),p.update()},forceUpdate:function(){if(!c){var e=a.elements,t=e.reference,i=e.popper;if(ge(t,i)){a.rects={reference:he(t,N$3(i),"fixed"===a.options.strategy),popper:M$6(i)},a.reset=false,a.placement=a.options.placement,a.orderedModifiers.forEach(function(e){return a.modifiersData[e.name]=Object.assign({},e.data)});for(var s=0;s<a.orderedModifiers.length;s++)if(true!==a.reset){var r=a.orderedModifiers[s],o=r.fn,n=r.options,l=void 0===n?{}:n,d=r.name;"function"==typeof o&&(a=o({state:a,options:l,name:d,instance:p})||a);}else a.reset=false,s=-1;}}},update:(r=function(){return new Promise(function(e){p.forceUpdate(),e(a);})},function(){return n||(n=new Promise(function(e){Promise.resolve().then(function(){n=void 0,e(r());});})),n}),destroy:function(){d(),c=true;}};if(!ge(e,t))return p;function d(){l.forEach(function(e){return e()}),l=[];}return p.setOptions(i).then(function(e){!c&&i.onFirstUpdate&&i.onFirstUpdate(e);}),p}}var ye=ve({defaultModifiers:[{name:"eventListeners",enabled:true,phase:"write",fn:function(){},effect:function(e){var t=e.state,i=e.instance,s=e.options,r=s.scroll,o=void 0===r||r,n=s.resize,a=void 0===n||n,l=y$6(t.elements.popper),c=[].concat(t.scrollParents.reference,t.scrollParents.popper);return o&&c.forEach(function(e){e.addEventListener("scroll",i.update,X);}),a&&l.addEventListener("resize",i.update,X),function(){o&&c.forEach(function(e){e.removeEventListener("scroll",i.update,X);}),a&&l.removeEventListener("resize",i.update,X);}},data:{}},{name:"popperOffsets",enabled:true,phase:"read",fn:function(e){var t=e.state,i=e.name;t.modifiersData[i]=oe({reference:t.rects.reference,element:t.rects.popper,placement:t.placement});},data:{}},{name:"computeStyles",enabled:true,phase:"beforeWrite",fn:function(e){var t=e.state,i=e.options,s=i.gpuAcceleration,r=void 0===s||s,o=i.adaptive,n=void 0===o||o,a=i.roundOffsets,l=void 0===a||a,c={placement:_$4(t.placement),variation:U$3(t.placement),popper:t.elements.popper,popperRect:t.rects.popper,gpuAcceleration:r,isFixed:"fixed"===t.options.strategy};null!=t.modifiersData.popperOffsets&&(t.styles.popper=Object.assign({},t.styles.popper,W(Object.assign({},c,{offsets:t.modifiersData.popperOffsets,position:t.options.strategy,adaptive:n,roundOffsets:l})))),null!=t.modifiersData.arrow&&(t.styles.arrow=Object.assign({},t.styles.arrow,W(Object.assign({},c,{offsets:t.modifiersData.arrow,position:"absolute",adaptive:false,roundOffsets:l})))),t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-placement":t.placement});},data:{}},S$3,de,le,fe,F,{name:"hide",enabled:true,phase:"main",requiresIfExists:["preventOverflow"],fn:function(e){var t=e.state,i=e.name,s=t.rects.reference,r=t.rects.popper,o=t.modifiersData.preventOverflow,n=ne(t,{elementContext:"reference"}),a=ne(t,{altBoundary:true}),l=ce(n,s),c=ce(a,r,o),p=pe(l),d=pe(c);t.modifiersData[i]={referenceClippingOffsets:l,popperEscapeOffsets:c,isReferenceHidden:p,hasPopperEscaped:d},t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-reference-hidden":p,"data-popper-escaped":d});}}]});class we{constructor(e,t,i,s){this.anchor=e,this.popover=t,this.boundaryElement=this.setBoundary(s),this.options={placement:i,visibleClass:"data-show"},this.popover.classList.remove(this.options.visibleClass);}setBoundary(e){return "string"==typeof e?document.querySelector(e)||document.body:e||document.body}show(){this.popper&&this.popper.destroy(),this.popper=ye(this.anchor,this.popover,{tooltip:this.anchor,placement:this.options.placement,modifiers:[{name:"offset",options:{offset:[0,18]}},{name:"preventOverflow",options:{mainAxis:true,boundary:this.boundaryElement,rootBoundary:"document",padding:16}}]});}triggerUpdate(){this.popper.update();}hide(){this.popover.classList.remove(this.options.visibleClass);}}var be=css`::slotted(*):not([onDark]),::slotted(*):not([appearance=inverse]){color:var(--ds-auro-popover-text-color)}.popover{background-color:var(--ds-auro-popover-container-color);box-shadow:var(--ds-auro-popover-boxshadow-color)}.arrow:before{background-color:var(--ds-auro-popover-container-color);box-shadow:2px 2px 1px 0 var(--ds-auro-popover-boxshadow-color)}
|
|
11576
11533
|
`,xe=css`.body-default{font-size:var(--wcss-body-default-font-size, 1rem);line-height:var(--wcss-body-default-line-height, 1.5rem)}.body-default,.body-lg{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-weight, 450);letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-lg{font-size:var(--wcss-body-lg-font-size, 1.125rem);line-height:var(--wcss-body-lg-line-height, 1.625rem)}.body-sm{font-size:var(--wcss-body-sm-font-size, .875rem);line-height:var(--wcss-body-sm-line-height, 1.25rem)}.body-sm,.body-xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-weight, 450);letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-xs{font-size:var(--wcss-body-xs-font-size, .75rem);line-height:var(--wcss-body-xs-line-height, 1rem)}.body-2xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-size:var(--wcss-body-2xs-font-size, .625rem);font-weight:var(--wcss-body-weight, 450);letter-spacing:var(--wcss-body-letter-spacing, 0);line-height:var(--wcss-body-2xs-line-height, .875rem)}.display-2xl{font-family:var(--wcss-display-2xl-family, "AS Circular"),var(--wcss-display-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-2xl-font-size, clamp(3.5rem, 6vw, 5.375rem));font-weight:var(--wcss-display-2xl-weight, 300);letter-spacing:var(--wcss-display-2xl-letter-spacing, 0);line-height:var(--wcss-display-2xl-line-height, 1.3)}.display-xl{font-family:var(--wcss-display-xl-family, "AS Circular"),var(--wcss-display-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-xl-font-size, clamp(3rem, 5.3333333333vw, 4.5rem));font-weight:var(--wcss-display-xl-weight, 300);letter-spacing:var(--wcss-display-xl-letter-spacing, 0);line-height:var(--wcss-display-xl-line-height, 1.3)}.display-lg{font-family:var(--wcss-display-lg-family, "AS Circular"),var(--wcss-display-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-lg-font-size, clamp(2.75rem, 4.6666666667vw, 4rem));font-weight:var(--wcss-display-lg-weight, 300);letter-spacing:var(--wcss-display-lg-letter-spacing, 0);line-height:var(--wcss-display-lg-line-height, 1.3)}.display-md{font-family:var(--wcss-display-md-family, "AS Circular"),var(--wcss-display-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-md-font-size, clamp(2.5rem, 4vw, 3.5rem));font-weight:var(--wcss-display-md-weight, 300);letter-spacing:var(--wcss-display-md-letter-spacing, 0);line-height:var(--wcss-display-md-line-height, 1.3)}.display-sm{font-family:var(--wcss-display-sm-family, "AS Circular"),var(--wcss-display-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-sm-font-size, clamp(2rem, 3.6666666667vw, 3rem));font-weight:var(--wcss-display-sm-weight, 300);letter-spacing:var(--wcss-display-sm-letter-spacing, 0);line-height:var(--wcss-display-sm-line-height, 1.3)}.display-xs{font-family:var(--wcss-display-xs-family, "AS Circular"),var(--wcss-display-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-xs-font-size, clamp(1.75rem, 3vw, 2.375rem));font-weight:var(--wcss-display-xs-weight, 300);letter-spacing:var(--wcss-display-xs-letter-spacing, 0);line-height:var(--wcss-display-xs-line-height, 1.3)}.heading-xl{font-family:var(--wcss-heading-xl-family, "AS Circular"),var(--wcss-heading-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-xl-font-size, clamp(2rem, 3vw, 2.5rem));font-weight:var(--wcss-heading-xl-weight, 300);letter-spacing:var(--wcss-heading-xl-letter-spacing, 0);line-height:var(--wcss-heading-xl-line-height, 1.3)}.heading-lg{font-family:var(--wcss-heading-lg-family, "AS Circular"),var(--wcss-heading-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-lg-font-size, clamp(1.75rem, 2.6666666667vw, 2.25rem));font-weight:var(--wcss-heading-lg-weight, 300);letter-spacing:var(--wcss-heading-lg-letter-spacing, 0);line-height:var(--wcss-heading-lg-line-height, 1.3)}.heading-md{font-family:var(--wcss-heading-md-family, "AS Circular"),var(--wcss-heading-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-md-font-size, clamp(1.625rem, 2.3333333333vw, 1.75rem));font-weight:var(--wcss-heading-md-weight, 300);letter-spacing:var(--wcss-heading-md-letter-spacing, 0);line-height:var(--wcss-heading-md-line-height, 1.3)}.heading-sm{font-family:var(--wcss-heading-sm-family, "AS Circular"),var(--wcss-heading-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-sm-font-size, clamp(1.375rem, 2vw, 1.5rem));font-weight:var(--wcss-heading-sm-weight, 300);letter-spacing:var(--wcss-heading-sm-letter-spacing, 0);line-height:var(--wcss-heading-sm-line-height, 1.3)}.heading-xs{font-family:var(--wcss-heading-xs-family, "AS Circular"),var(--wcss-heading-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-xs-font-size, clamp(1.25rem, 1.6666666667vw, 1.25rem));font-weight:var(--wcss-heading-xs-weight, 450);letter-spacing:var(--wcss-heading-xs-letter-spacing, 0);line-height:var(--wcss-heading-xs-line-height, 1.3)}.heading-2xs{font-family:var(--wcss-heading-2xs-family, "AS Circular"),var(--wcss-heading-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-2xs-font-size, clamp(1.125rem, 1.5vw, 1.125rem));font-weight:var(--wcss-heading-2xs-weight, 450);letter-spacing:var(--wcss-heading-2xs-letter-spacing, 0);line-height:var(--wcss-heading-2xs-line-height, 1.3)}.accent-2xl{font-family:var(--wcss-accent-2xl-family, "Good OT"),var(--wcss-accent-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-2xl-font-size, clamp(2rem, 3.1666666667vw, 2.375rem));font-weight:var(--wcss-accent-2xl-weight, 450);letter-spacing:var(--wcss-accent-2xl-letter-spacing, .05em);line-height:var(--wcss-accent-2xl-line-height, 1)}.accent-2xl,.accent-xl{text-transform:uppercase}.accent-xl{font-family:var(--wcss-accent-xl-family, "Good OT"),var(--wcss-accent-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-xl-font-size, clamp(1.625rem, 2.3333333333vw, 2rem));font-weight:var(--wcss-accent-xl-weight, 450);letter-spacing:var(--wcss-accent-xl-letter-spacing, .05em);line-height:var(--wcss-accent-xl-line-height, 1.3)}.accent-lg{font-family:var(--wcss-accent-lg-family, "Good OT"),var(--wcss-accent-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-lg-font-size, clamp(1.5rem, 2.1666666667vw, 1.75rem));font-weight:var(--wcss-accent-lg-weight, 450);letter-spacing:var(--wcss-accent-lg-letter-spacing, .05em);line-height:var(--wcss-accent-lg-line-height, 1.3)}.accent-lg,.accent-md{text-transform:uppercase}.accent-md{font-family:var(--wcss-accent-md-family, "Good OT"),var(--wcss-accent-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-md-font-size, clamp(1.375rem, 1.8333333333vw, 1.5rem));font-weight:var(--wcss-accent-md-weight, 500);letter-spacing:var(--wcss-accent-md-letter-spacing, .05em);line-height:var(--wcss-accent-md-line-height, 1.3)}.accent-sm{font-family:var(--wcss-accent-sm-family, "Good OT"),var(--wcss-accent-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-sm-font-size, clamp(1.125rem, 1.5vw, 1.25rem));font-weight:var(--wcss-accent-sm-weight, 500);letter-spacing:var(--wcss-accent-sm-letter-spacing, .05em);line-height:var(--wcss-accent-sm-line-height, 1.3)}.accent-sm,.accent-xs{text-transform:uppercase}.accent-xs{font-family:var(--wcss-accent-xs-family, "Good OT"),var(--wcss-accent-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-xs-font-size, clamp(1rem, 1.3333333333vw, 1rem));font-weight:var(--wcss-accent-xs-weight, 500);letter-spacing:var(--wcss-accent-xs-letter-spacing, .1em);line-height:var(--wcss-accent-xs-line-height, 1.3)}.accent-2xs{font-family:var(--wcss-accent-2xs-family, "Good OT"),var(--wcss-accent-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-2xs-font-size, clamp(.875rem, 1.1666666667vw, .875rem));font-weight:var(--wcss-accent-2xs-weight, 450);letter-spacing:var(--wcss-accent-2xs-letter-spacing, .1em);line-height:var(--wcss-accent-2xs-line-height, 1.3);text-transform:uppercase}:focus:not(:focus-visible){outline:3px solid transparent}.util_displayInline{display:inline}.util_displayInlineBlock{display:inline-block}.util_displayBlock{display:block}.util_displayFlex{display:flex}.util_displayHidden,:host(:not([data-show])) .popover,:host([disabled]) .popover,:host([addSpace]) :host(:not([data-show])) .popover{display:none}.util_displayHiddenVisually{position:absolute;overflow:hidden;clip:rect(1px,1px,1px,1px);width:1px;height:1px;padding:0;border:0}.util_insetNone{padding:0}.util_insetXxxs{padding:.125rem}.util_insetXxxs--stretch{padding:.25rem .125rem}.util_insetXxxs--squish{padding:0 .125rem}.util_insetXxs{padding:.25rem}.util_insetXxs--stretch{padding:.375rem .25rem}.util_insetXxs--squish{padding:.125rem .25rem}.util_insetXs{padding:.5rem}.util_insetXs--stretch{padding:.75rem .5rem}.util_insetXs--squish{padding:.25rem .5rem}.util_insetSm{padding:.75rem}.util_insetSm--stretch{padding:1.125rem .75rem}.util_insetSm--squish{padding:.375rem .75rem}.util_insetMd{padding:1rem}.util_insetMd--stretch{padding:1.5rem 1rem}.util_insetMd--squish{padding:.5rem 1rem}.util_insetLg{padding:1.5rem}.util_insetLg--stretch{padding:2.25rem 1.5rem}.util_insetLg--squish{padding:.75rem 1.5rem}.util_insetXl{padding:2rem}.util_insetXl--stretch{padding:3rem 2rem}.util_insetXl--squish{padding:1rem 2rem}.util_insetXxl{padding:3rem}.util_insetXxl--stretch{padding:4.5rem 3rem}.util_insetXxl--squish{padding:1.5rem 3rem}.util_insetXxxl{padding:4rem}.util_insetXxxl--stretch{padding:6rem 4rem}.util_insetXxxl--squish{padding:2rem 4rem}::slotted(*){white-space:normal}::slotted(*:hover){cursor:pointer}[data-trigger-placement]::slotted(*:hover){position:relative}[data-trigger-placement]::slotted(*:hover):before{position:absolute;left:0;display:block;width:100%;height:calc(var(--ds-size-200, 1rem) + var(--ds-size-50, .25rem));content:""}[data-trigger-placement^=top]::slotted(*:hover):before{top:calc(-1 * (var(--ds-size-200, 1rem) + var(--ds-size-50, .25rem)))}[data-trigger-placement^=bottom]::slotted(*:hover):before{bottom:calc(-1 * (var(--ds-size-200, 1rem) + var(--ds-size-50, .25rem)))}:host([data-show]) .popover{z-index:var(--ds-depth-tooltip, 400)}:host([removeSpace]) .popover{margin:calc(-1 * (var(--ds-size-50, .25rem) + 1px)) 0!important}:host([addSpace]) .popover{margin:var(--ds-size-200, 1rem) 0!important}:host([addSpace]) [data-trigger-placement]::slotted(*:hover):before{height:var(--ds-size-500, 2.5rem)}:host([addSpace]) [data-trigger-placement^=top]::slotted(*:hover):before{top:calc(-1 * var(--ds-size-500, 2.5rem))}:host([addSpace]) [data-trigger-placement^=bottom]::slotted(*:hover):before{bottom:calc(-1 * var(--ds-size-500, 2.5rem))}.popover{display:inline-block;max-width:calc(100% - var(--ds-size-400, 2rem));border-radius:var(--ds-border-radius, .375rem)}@media screen and (min-width:576px){.popover{max-width:50%}}@media screen and (min-width:768px){.popover{max-width:40%}}@media screen and (min-width:1024px){.popover{max-width:27rem}}[data-popper-placement^=top]>.arrow{bottom:calc(-1 * (var(--ds-size-100, .5rem) + var(--ds-size-25, .125rem)))}[data-popper-placement^=top]>.arrow:before{top:calc(-1 * var(--ds-size-200, 1rem));left:calc(-1 * var(--ds-size-75, .375rem));transform:rotate(45deg)}[data-popper-placement^=bottom]>.arrow{top:calc(-1 * (var(--ds-size-100, .5rem) + var(--ds-size-25, .125rem)))}[data-popper-placement^=bottom]>.arrow:before{top:var(--ds-size-50, .25rem);right:calc(-1 * var(--ds-size-200, 1rem));transform:rotate(-135deg)}.arrow{position:relative;margin-top:-var(--ds-size-100,.5rem)}.arrow:before{position:absolute;width:var(--ds-size-150, .75rem);height:var(--ds-size-150, .75rem);content:""}
|
|
11577
11534
|
`,Se=css`:host{--ds-auro-popover-boxshadow-color: var(--ds-elevation-200, 0px 0px 10px rgba(0, 0, 0, .15));--ds-auro-popover-container-color: var(--ds-basic-color-surface-default, #ffffff);--ds-auro-popover-text-color: var(--ds-basic-color-texticon-default, #2a2a2a)}
|
|
11578
|
-
`;class _e extends LitElement{constructor(){super(),this.placement="top",this._onTouchStart=null,this._onTriggerMouseEnter=null,this._onTriggerMouseLeave=null,this._onTriggerFocus=null,this._onTriggerBlur=null,this._onTriggerKeydown=null,this._onHidePopover=null,this._onBodyMouseover=null,this._onSlotChange=null,this._addedTabIndex=false;}_initializeDefaults(){this.
|
|
11579
|
-
<div
|
|
11535
|
+
`;class _e extends LitElement{constructor(){super(),this.placement="top",this.isPopoverVisible=false,this._onTouchStart=null,this._onTriggerMouseEnter=null,this._onTriggerMouseLeave=null,this._onTriggerFocus=null,this._onTriggerBlur=null,this._onTriggerKeydown=null,this._onHidePopover=null,this._onBodyMouseover=null,this._onSlotChange=null,this._addedTabIndex=false;}_initializeDefaults(){this.runtimeUtils=new s;}static get properties(){return {addSpace:{type:Boolean,reflect:true},boundary:{type:String},disabled:{type:Boolean,reflect:true},for:{type:String,reflect:true},placement:{type:String},removeSpace:{type:Boolean,reflect:true},isPopoverVisible:{type:Boolean,reflect:true,attribute:"data-show",converter:{fromAttribute:e=>null!==e,toAttribute:e=>e?"true":null}}}}static get styles(){return [css`${xe}`,css`${be}`,css`${Se}`]}static register(e="auro-popover"){s.prototype.registerComponent(e,_e);}connectedCallback(){super.connectedCallback(),this.hasAttribute("role")||this.setAttribute("role","none"),this._initializeDefaults(),this._onTouchStart||(this._onTouchStart=()=>{this.toggle();}),this.addEventListener("touchstart",this._onTouchStart);}disconnectedCallback(){if(super.disconnectedCallback(),this.removeEventListener("touchstart",this._onTouchStart),this.trigger){this._onTriggerMouseEnter&&this._eventTarget.removeEventListener("mouseenter",this._onTriggerMouseEnter),this._onTriggerMouseLeave&&this._eventTarget.removeEventListener("mouseleave",this._onTriggerMouseLeave),this._onTriggerFocus&&this.trigger.removeEventListener("focusin",this._onTriggerFocus),this._onTriggerBlur&&this.trigger.removeEventListener("focusout",this._onTriggerBlur),this._onTriggerKeydown&&this.trigger.removeEventListener("keydown",this._onTriggerKeydown),this._onSlotChange&&this.shadowRoot?.querySelector("slot:not([name])")?.removeEventListener("slotchange",this._onSlotChange);for(const e of this._ariaDescriptionTargets||[this.trigger])e.removeAttribute("aria-description");this._addedTabIndex&&"0"===this.trigger.getAttribute("tabindex")&&this.trigger.removeAttribute("tabindex");}this._onHidePopover&&this.removeEventListener("hidePopover",this._onHidePopover),this._onBodyMouseover&&document.body.removeEventListener("mouseover",this._onBodyMouseover),this.popper?.popper&&"function"==typeof this.popper.popper.destroy&&(this.popper.popper.destroy(),this.popper.popper=null);}firstUpdated(){this.runtimeUtils.handleComponentTagRename(this,"auro-popover"),this.for&&(this.trigger=document.querySelector(`#${this.for}`)||this.getRootNode().querySelector(`#${this.for}`)),this.trigger||([this.trigger]=this.shadowRoot.querySelector('slot[name="trigger"]').assignedElements()),this.trigger&&(this._setupAccessibility(),this._setupEventListeners(),this.isPopoverVisible&&this.popper&&(this.disabled?this.isPopoverVisible=false:(this.popper.show(),document.body.addEventListener("mouseover",this._onBodyMouseover))));}_setupEventListeners(){this.auroPopover=this.shadowRoot.querySelector("#popover"),this.popper=new we(this.trigger,this.auroPopover,this.placement,this.boundary),this._onBodyMouseover=e=>this.handleMouseoverEvent(e),this._onTriggerMouseEnter=()=>{this.toggleShow();},this._onTriggerMouseLeave=()=>{this.toggleHide();},this._onTriggerFocus=()=>{this.toggleShow();},this._onTriggerBlur=e=>{let t=e.relatedTarget,i=false;for(;t;){if(this.trigger.contains(t)||this.contains(t)){i=true;break}const e=t.getRootNode();t=e instanceof ShadowRoot?e.host:null;}i||this.toggleHide();},this._onTriggerKeydown=e=>{const t=e.key.toLowerCase();if(this.isPopoverVisible&&("tab"!==t&&"escape"!==t||this.toggleHide())," "===t||"enter"===t){if(e.target!==this.trigger&&!this._addedTabIndex)return;" "===t&&this._addedTabIndex&&e.preventDefault(),this.toggle();}},this._onHidePopover=()=>{this.toggleHide();},this._eventTarget=this.trigger.parentElement.localName===this.localName?this:this.trigger,this._eventTarget.addEventListener("mouseenter",this._onTriggerMouseEnter),this._eventTarget.addEventListener("mouseleave",this._onTriggerMouseLeave),this.trigger.addEventListener("keydown",this._onTriggerKeydown),this.trigger.addEventListener("focusin",this._onTriggerFocus),this.trigger.addEventListener("focusout",this._onTriggerBlur),this.addEventListener("hidePopover",this._onHidePopover);}_setupAccessibility(){const e=this.trigger.tabIndex>=0,t='button:not([disabled]), a[href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex^="-"]), [contenteditable]:not([contenteditable="false"]), summary, iframe, audio[controls], video[controls]',i=e=>{if(e.tabIndex<0)return false;let t=e;for(;t;){if(t.closest("[hidden], [inert]"))return false;const e=t.getRootNode();t=e instanceof ShadowRoot?e.host:null;}return true};let s=[...this.trigger.querySelectorAll(t)].some(i);if(!s){const e=this.trigger.querySelectorAll("*");for(const r of e)if(r.localName.includes("-")&&(r.tabIndex>=0||r.shadowRoot&&[...r.shadowRoot.querySelectorAll(t)].some(i))){s=true;break}}!s&&this.trigger.localName.includes("-")&&this.trigger.shadowRoot&&(s=[...this.trigger.shadowRoot.querySelectorAll(t)].some(i)),e||s||this.trigger.hasAttribute("tabindex")||(this.trigger.setAttribute("tabindex","0"),this._addedTabIndex=true);const r=this.shadowRoot.querySelector("slot:not([name])"),o=()=>r.assignedNodes({flatten:true}).map(e=>e.textContent??"").join(" ").replace(/\s+/g," ").trim();if(this._ariaDescriptionTargets=[],!e&&s){const e=[...this.trigger.querySelectorAll(t)].filter(i);this._ariaDescriptionTargets.push(...e);const s=this.trigger.querySelectorAll("*");for(const r of s)if(r.localName.includes("-")&&!e.includes(r))if(r.tabIndex>=0)this._ariaDescriptionTargets.push(r);else if(r.shadowRoot){const e=[...r.shadowRoot.querySelectorAll(t)].filter(i);for(const t of e)this._ariaDescriptionTargets.push(t);}if(0===this._ariaDescriptionTargets.length){if(this.trigger.localName.includes("-")&&this.trigger.shadowRoot){const e=[...this.trigger.shadowRoot.querySelectorAll(t)].filter(i);this._ariaDescriptionTargets.push(...e);}0===this._ariaDescriptionTargets.length&&this._ariaDescriptionTargets.push(this.trigger);}}else this._ariaDescriptionTargets.push(this.trigger);const n=o();for(const e of this._ariaDescriptionTargets)e.setAttribute("aria-description",n);this._onSlotChange=()=>{const e=o();for(const t of this._ariaDescriptionTargets)t?.setAttribute("aria-description",e);},r.addEventListener("slotchange",this._onSlotChange);}toggle(){this.popper&&(this.isPopoverVisible?this.toggleHide():this.toggleShow());}toggleHide(){this.isPopoverVisible=false;}toggleShow(){this.popper&&!this.disabled&&(this.isPopoverVisible=true);}handleMouseoverEvent(e){this.isPopoverVisible&&!e.composedPath().includes(this)&&this.toggleHide();}updated(e){if(e.has("boundary")&&this.popper&&(this.popper.boundaryElement=this.popper.setBoundary(this.boundary)),e.has("isPopoverVisible")&&this.popper)if(this.isPopoverVisible){if(this.disabled)return void(this.isPopoverVisible=false);this.popper.show(),document.body.addEventListener("mouseover",this._onBodyMouseover);}else this._onBodyMouseover&&document.body.removeEventListener("mouseover",this._onBodyMouseover),this.popper.hide();e.has("disabled")&&this.disabled&&this.isPopoverVisible&&(this.isPopoverVisible=false);}render(){return html`
|
|
11536
|
+
<div
|
|
11537
|
+
id="popover"
|
|
11538
|
+
class="popover util_insetLg body-default"
|
|
11539
|
+
part="popover"
|
|
11540
|
+
role="tooltip"
|
|
11541
|
+
aria-hidden="${this.isPopoverVisible?"false":"true"}">
|
|
11580
11542
|
<div id="arrow" class="arrow" data-popper-arrow></div>
|
|
11581
|
-
<
|
|
11543
|
+
<slot></slot>
|
|
11582
11544
|
</div>
|
|
11583
11545
|
|
|
11584
|
-
<span>
|
|
11546
|
+
<span role="presentation">
|
|
11585
11547
|
<slot name="trigger" data-trigger-placement="${this.placement}"></slot>
|
|
11586
11548
|
</span>
|
|
11587
11549
|
`}}
|
|
11588
11550
|
|
|
11589
11551
|
var popoverVersion = '6.0.1';
|
|
11590
11552
|
|
|
11553
|
+
/* 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 */
|
|
11554
|
+
|
|
11591
11555
|
const startOfDay$1 = (ms) => {
|
|
11592
11556
|
const date = new Date(ms);
|
|
11593
11557
|
date.setHours(0, 0, 0, 0);
|
|
11594
11558
|
return date.getTime();
|
|
11595
11559
|
};
|
|
11596
11560
|
|
|
11597
|
-
/* eslint-disable curly, max-lines, no-underscore-dangle, no-magic-numbers, no-underscore-dangle, max-params, no-void, init-declarations, no-extra-parens, arrow-parens, max-lines, line-comment-position, no-inline-comments, lit/binding-positions, lit/no-invalid-html */
|
|
11598
|
-
|
|
11599
11561
|
class AuroCalendarCell extends LitElement {
|
|
11600
11562
|
constructor() {
|
|
11601
11563
|
super();
|
|
11602
11564
|
|
|
11603
11565
|
this.day = null;
|
|
11604
11566
|
this.selected = false;
|
|
11605
|
-
this.hovered = false;
|
|
11606
11567
|
this.dateTo = null;
|
|
11607
11568
|
this.dateFrom = null;
|
|
11608
11569
|
this.month = null;
|
|
@@ -11610,11 +11571,12 @@ class AuroCalendarCell extends LitElement {
|
|
|
11610
11571
|
this.max = null;
|
|
11611
11572
|
this.disabled = false;
|
|
11612
11573
|
this.disabledDays = [];
|
|
11613
|
-
this.hoveredDate = null;
|
|
11614
11574
|
this.isCurrentDate = false;
|
|
11615
11575
|
this._locale = null;
|
|
11616
11576
|
this.dateStr = null;
|
|
11617
11577
|
this.renderForDateSlot = false; // When false, the numerical date will render vertically centered. When true, the date will render off-center to the top and leave room below for the slot content.
|
|
11578
|
+
this.active = false;
|
|
11579
|
+
this.hasPopoverContent = false;
|
|
11618
11580
|
|
|
11619
11581
|
this.runtimeUtils = new AuroLibraryRuntimeUtils$5();
|
|
11620
11582
|
|
|
@@ -11633,7 +11595,6 @@ class AuroCalendarCell extends LitElement {
|
|
|
11633
11595
|
// ...super.properties,
|
|
11634
11596
|
day: { type: Object },
|
|
11635
11597
|
selected: { type: Boolean },
|
|
11636
|
-
hovered: { type: Boolean },
|
|
11637
11598
|
dateTo: { type: String },
|
|
11638
11599
|
dateFrom: { type: String },
|
|
11639
11600
|
month: { type: String },
|
|
@@ -11644,16 +11605,16 @@ class AuroCalendarCell extends LitElement {
|
|
|
11644
11605
|
reflect: true
|
|
11645
11606
|
},
|
|
11646
11607
|
disabledDays: { type: Array },
|
|
11647
|
-
hoveredDate: { type: String },
|
|
11648
11608
|
isCurrentDate: { type: Boolean },
|
|
11649
11609
|
locale: { type: String },
|
|
11650
11610
|
dateStr: { type: String },
|
|
11651
|
-
renderForDateSlot: { type: Boolean }
|
|
11611
|
+
renderForDateSlot: { type: Boolean },
|
|
11612
|
+
hasPopoverContent: { type: Boolean }
|
|
11652
11613
|
};
|
|
11653
11614
|
}
|
|
11654
11615
|
|
|
11655
11616
|
get locale() {
|
|
11656
|
-
return this._locale;
|
|
11617
|
+
return this._locale || 'en-US';
|
|
11657
11618
|
}
|
|
11658
11619
|
|
|
11659
11620
|
set locale(value) {
|
|
@@ -11672,17 +11633,17 @@ class AuroCalendarCell extends LitElement {
|
|
|
11672
11633
|
}
|
|
11673
11634
|
|
|
11674
11635
|
/**
|
|
11675
|
-
* Handles selected
|
|
11636
|
+
* Handles selected state of the calendar cell when the selection changes.
|
|
11637
|
+
* Also clears any imperative range preview classes so classMap is the
|
|
11638
|
+
* sole source of truth after a selection update.
|
|
11676
11639
|
* @private
|
|
11677
11640
|
* @param {Number} dateFrom - Depart date.
|
|
11678
11641
|
* @param {Number} dateTo - Return date.
|
|
11679
|
-
* @param {Number} hoveredDate - Hovered date.
|
|
11680
11642
|
* @param {Object} day - An object containing the dateFrom and day of month values.
|
|
11681
11643
|
* @returns {void}
|
|
11682
11644
|
*/
|
|
11683
|
-
dateChanged(dateFrom, dateTo,
|
|
11645
|
+
dateChanged(dateFrom, dateTo, day) {
|
|
11684
11646
|
this.selected = false;
|
|
11685
|
-
this.hovered = false;
|
|
11686
11647
|
|
|
11687
11648
|
const parsedDateFrom = parseInt(dateFrom, 10);
|
|
11688
11649
|
const parsedDateTo = parseInt(dateTo, 10);
|
|
@@ -11694,10 +11655,6 @@ class AuroCalendarCell extends LitElement {
|
|
|
11694
11655
|
if (day.date === departTimestamp || day.date === returnTimestamp) {
|
|
11695
11656
|
this.selected = true;
|
|
11696
11657
|
}
|
|
11697
|
-
|
|
11698
|
-
if (((hoveredDate === day.date || day.date < hoveredDate) && day.date > parsedDateFrom && !parsedDateTo && !Number.isNaN(parsedDateFrom) && parsedDateFrom !== undefined && !this.selected) || (day.date > parsedDateFrom && day.date < parsedDateTo)) {
|
|
11699
|
-
this.hovered = true;
|
|
11700
|
-
}
|
|
11701
11658
|
}
|
|
11702
11659
|
}
|
|
11703
11660
|
|
|
@@ -11707,27 +11664,104 @@ class AuroCalendarCell extends LitElement {
|
|
|
11707
11664
|
* @returns {void}
|
|
11708
11665
|
*/
|
|
11709
11666
|
handleTap() {
|
|
11710
|
-
if (!this.disabled) {
|
|
11667
|
+
if (!this.disabled && !this.isBlackout()) {
|
|
11711
11668
|
this.datepicker.handleCellClick(this.day.date);
|
|
11712
11669
|
}
|
|
11670
|
+
|
|
11671
|
+
// Set this cell as the active cell regardless of blackout status
|
|
11672
|
+
if (this.day) {
|
|
11673
|
+
this.dispatchEvent(new CustomEvent('calendar-cell-activate', {
|
|
11674
|
+
bubbles: true,
|
|
11675
|
+
composed: true,
|
|
11676
|
+
detail: { date: this.day.date }
|
|
11677
|
+
}));
|
|
11678
|
+
}
|
|
11713
11679
|
}
|
|
11714
11680
|
|
|
11715
11681
|
/**
|
|
11716
11682
|
* Handles user hover events and dispatches a custom event.
|
|
11683
|
+
* Does NOT set any reactive properties — the range preview is handled
|
|
11684
|
+
* imperatively by the calendar component to avoid O(N) re-renders.
|
|
11717
11685
|
* @private
|
|
11718
11686
|
* @returns {void}
|
|
11719
11687
|
*/
|
|
11720
11688
|
handleHover() {
|
|
11721
|
-
this.hovered = true;
|
|
11722
|
-
|
|
11723
|
-
let _a;
|
|
11724
11689
|
this.dispatchEvent(new CustomEvent('date-is-hovered', {
|
|
11725
|
-
detail: { date:
|
|
11690
|
+
detail: { date: this.day?.date },
|
|
11691
|
+
}));
|
|
11692
|
+
}
|
|
11693
|
+
|
|
11694
|
+
/**
|
|
11695
|
+
* Handles focus events on the cell button.
|
|
11696
|
+
* Dispatches a lightweight event for the calendar to handle SR
|
|
11697
|
+
* announcements and range preview updates without triggering
|
|
11698
|
+
* any Lit lifecycle updates.
|
|
11699
|
+
* @private
|
|
11700
|
+
* @returns {void}
|
|
11701
|
+
*/
|
|
11702
|
+
handleFocus() {
|
|
11703
|
+
this.dispatchEvent(new CustomEvent('calendar-cell-focused', {
|
|
11704
|
+
bubbles: true,
|
|
11705
|
+
composed: true,
|
|
11706
|
+
detail: { date: this.day?.date },
|
|
11726
11707
|
}));
|
|
11727
11708
|
}
|
|
11728
11709
|
|
|
11729
11710
|
/**
|
|
11730
|
-
* Checks if the current date is
|
|
11711
|
+
* Checks if the current date is outside the valid min/max range.
|
|
11712
|
+
* Out-of-range cells are not focusable and are hidden from screen readers.
|
|
11713
|
+
* @private
|
|
11714
|
+
* @param {Object} day - An object containing the dateFrom and day of month values.
|
|
11715
|
+
* @param {Number} min - The minimum date value.
|
|
11716
|
+
* @param {Number} max - The maximum date value.
|
|
11717
|
+
* @returns {Boolean} - True if the date is out of range.
|
|
11718
|
+
*/
|
|
11719
|
+
isOutOfRange(day, min, max) {
|
|
11720
|
+
if (day && day.date !== null && day.date !== undefined) {
|
|
11721
|
+
return day.date < min || day.date > max;
|
|
11722
|
+
}
|
|
11723
|
+
return false;
|
|
11724
|
+
}
|
|
11725
|
+
|
|
11726
|
+
/**
|
|
11727
|
+
* Checks if the current date is a blackout date (in disabledDays but within range).
|
|
11728
|
+
* Blackout cells are focusable but not selectable.
|
|
11729
|
+
* @private
|
|
11730
|
+
* @returns {Boolean} - True if the date is a blackout date.
|
|
11731
|
+
*/
|
|
11732
|
+
isBlackout() {
|
|
11733
|
+
if (!this.day || this.day.date === null || this.day.date === undefined || this.isOutOfRange(this.day, this.min, this.max)) {
|
|
11734
|
+
return false;
|
|
11735
|
+
}
|
|
11736
|
+
|
|
11737
|
+
// Check against disabledDays timestamps (legacy path)
|
|
11738
|
+
if (Array.isArray(this.disabledDays) && this.disabledDays.length > 0 &&
|
|
11739
|
+
(this.disabledDays.findIndex(dd => parseInt(dd, 10) === this.day.date) !== -1)) {
|
|
11740
|
+
return true;
|
|
11741
|
+
}
|
|
11742
|
+
|
|
11743
|
+
// Check against blackoutDates (ISO format YYYY-MM-DD) on the datepicker
|
|
11744
|
+
const blackoutDates = this.datepicker?.blackoutDates;
|
|
11745
|
+
|
|
11746
|
+
if (Array.isArray(blackoutDates) && blackoutDates.length > 0) {
|
|
11747
|
+
const date = new Date(this.day.date * 1000);
|
|
11748
|
+
const yyyy = date.getFullYear();
|
|
11749
|
+
const mm = String(date.getMonth() + 1).padStart(2, '0');
|
|
11750
|
+
const dd = String(date.getDate()).padStart(2, '0');
|
|
11751
|
+
const cellDate = `${yyyy}-${mm}-${dd}`;
|
|
11752
|
+
if (blackoutDates.includes(cellDate)) {
|
|
11753
|
+
return true;
|
|
11754
|
+
}
|
|
11755
|
+
}
|
|
11756
|
+
|
|
11757
|
+
return false;
|
|
11758
|
+
}
|
|
11759
|
+
|
|
11760
|
+
/**
|
|
11761
|
+
* Checks if the current date is disabled based on min/max range or the
|
|
11762
|
+
* legacy disabledDays timestamp list. Sets the `disabled` attribute on the
|
|
11763
|
+
* host when the date falls outside the allowed range or appears in
|
|
11764
|
+
* disabledDays. Note: blackout dates are handled separately by `isBlackout()`.
|
|
11731
11765
|
* @private
|
|
11732
11766
|
* @param {Object} day - An object containing the dateFrom and day of month values.
|
|
11733
11767
|
* @param {Number} min - The minimum date value.
|
|
@@ -11738,15 +11772,113 @@ class AuroCalendarCell extends LitElement {
|
|
|
11738
11772
|
isEnabled(day, min, max, disabledDays) {
|
|
11739
11773
|
this.removeAttribute('disabled');
|
|
11740
11774
|
|
|
11741
|
-
if (disabledDays && day && day.date
|
|
11742
|
-
|
|
11743
|
-
|
|
11744
|
-
|
|
11745
|
-
}
|
|
11775
|
+
if (disabledDays && day && day.date &&
|
|
11776
|
+
(day.date < min || day.date > max || disabledDays.findIndex(disabledDay => parseInt(disabledDay, 10) === day.date) !== -1)) {
|
|
11777
|
+
this.setAttribute('disabled', true);
|
|
11778
|
+
return true;
|
|
11746
11779
|
}
|
|
11780
|
+
|
|
11747
11781
|
return false;
|
|
11748
11782
|
}
|
|
11749
11783
|
|
|
11784
|
+
/**
|
|
11785
|
+
* Generates a unique cell ID in the format cell-YYYY-MM-DD.
|
|
11786
|
+
* @private
|
|
11787
|
+
* @returns {String} The unique cell ID.
|
|
11788
|
+
*/
|
|
11789
|
+
getCellId() {
|
|
11790
|
+
if (!this.day || !this.day.date) return '';
|
|
11791
|
+
const date = new Date(this.day.date * 1000);
|
|
11792
|
+
const year = date.getFullYear();
|
|
11793
|
+
const month = String(date.getMonth() + 1).padStart(2, '0');
|
|
11794
|
+
const day = String(date.getDate()).padStart(2, '0');
|
|
11795
|
+
return `cell-${year}-${month}-${day}`;
|
|
11796
|
+
}
|
|
11797
|
+
|
|
11798
|
+
/**
|
|
11799
|
+
* Generates a localized aria-label for the cell button using Intl.DateTimeFormat.
|
|
11800
|
+
* Includes range position and blackout status.
|
|
11801
|
+
* @private
|
|
11802
|
+
* @returns {String} The aria-label string.
|
|
11803
|
+
*/
|
|
11804
|
+
getAriaLabel() {
|
|
11805
|
+
if (!this.day || this.day.date === undefined) return '';
|
|
11806
|
+
|
|
11807
|
+
const date = new Date(this.day.date * 1000);
|
|
11808
|
+
|
|
11809
|
+
// Generate localized full date string using the configured locale
|
|
11810
|
+
const dateFormatter = new Intl.DateTimeFormat(this.locale, {
|
|
11811
|
+
weekday: 'long',
|
|
11812
|
+
year: 'numeric',
|
|
11813
|
+
month: 'long',
|
|
11814
|
+
day: 'numeric'
|
|
11815
|
+
});
|
|
11816
|
+
|
|
11817
|
+
let label = dateFormatter.format(date);
|
|
11818
|
+
|
|
11819
|
+
// Append date slot content (e.g. prices) so it is announced with the date.
|
|
11820
|
+
if (this.renderForDateSlot) {
|
|
11821
|
+
const dateSlotEl = this.querySelector(`[slot="date_${this.dateStr}"]`);
|
|
11822
|
+
if (dateSlotEl) {
|
|
11823
|
+
const text = dateSlotEl.innerText?.trim();
|
|
11824
|
+
if (text) {
|
|
11825
|
+
label += `, ${text}`;
|
|
11826
|
+
}
|
|
11827
|
+
}
|
|
11828
|
+
}
|
|
11829
|
+
|
|
11830
|
+
// appending popover content here so that it gets read in a logical order with the other date content.
|
|
11831
|
+
if (this.hasPopoverContent) {
|
|
11832
|
+
const popoverEl = this.querySelector(`[slot="popover_${this.dateStr}"]`);
|
|
11833
|
+
if (popoverEl) {
|
|
11834
|
+
label += `, ${popoverEl.innerText.trim()}`;
|
|
11835
|
+
}
|
|
11836
|
+
}
|
|
11837
|
+
|
|
11838
|
+
// Append range position label for range datepickers
|
|
11839
|
+
const rangePosition = this.getRangePosition();
|
|
11840
|
+
if (rangePosition) {
|
|
11841
|
+
label += `, ${rangePosition}`;
|
|
11842
|
+
}
|
|
11843
|
+
|
|
11844
|
+
// Append blackout label for blackout cells
|
|
11845
|
+
if (this.isBlackout()) {
|
|
11846
|
+
label += `, ${this.datepicker?.blackoutLabel || 'unavailable'}`;
|
|
11847
|
+
}
|
|
11848
|
+
|
|
11849
|
+
return label;
|
|
11850
|
+
}
|
|
11851
|
+
|
|
11852
|
+
/**
|
|
11853
|
+
* Determines the range position of this cell relative to the current selection.
|
|
11854
|
+
* @private
|
|
11855
|
+
* @returns {String|null} Range position label or null if not in range mode.
|
|
11856
|
+
*/
|
|
11857
|
+
getRangePosition() {
|
|
11858
|
+
if (!this.datepicker || !this.datepicker.hasAttribute('range')) return null;
|
|
11859
|
+
|
|
11860
|
+
const parsedDateFrom = Number.parseInt(this.dateFrom, 10);
|
|
11861
|
+
if (!Number.isFinite(parsedDateFrom)) return null;
|
|
11862
|
+
|
|
11863
|
+
const departTimestamp = startOfDay$1(parsedDateFrom * 1000) / 1000;
|
|
11864
|
+
const dayDate = this.day.date;
|
|
11865
|
+
|
|
11866
|
+
const parsedDateTo = Number.parseInt(this.dateTo, 10);
|
|
11867
|
+
const hasDateTo = Number.isFinite(parsedDateTo);
|
|
11868
|
+
const returnTimestamp = hasDateTo ? startOfDay$1(parsedDateTo * 1000) / 1000 : null;
|
|
11869
|
+
|
|
11870
|
+
if (dayDate === departTimestamp) return this.datepicker.rangeLabelStart || 'range start';
|
|
11871
|
+
|
|
11872
|
+
if (hasDateTo && dayDate === returnTimestamp) return this.datepicker.rangeLabelEnd || 'range end';
|
|
11873
|
+
|
|
11874
|
+
if (dayDate < departTimestamp) return this.datepicker.rangeLabelBeforeRange || 'before range';
|
|
11875
|
+
|
|
11876
|
+
if (hasDateTo && dayDate > departTimestamp && dayDate < returnTimestamp) return this.datepicker.rangeLabelInRange || 'in range';
|
|
11877
|
+
|
|
11878
|
+
// After start date, no end date yet, or after end date
|
|
11879
|
+
return this.datepicker.rangeLabelAfterRange || 'after range';
|
|
11880
|
+
}
|
|
11881
|
+
|
|
11750
11882
|
/**
|
|
11751
11883
|
* Checks if the current date is the depart date.
|
|
11752
11884
|
* @private
|
|
@@ -11814,12 +11946,12 @@ class AuroCalendarCell extends LitElement {
|
|
|
11814
11946
|
}
|
|
11815
11947
|
|
|
11816
11948
|
/**
|
|
11817
|
-
* Checks if the current date is a
|
|
11818
|
-
* @param {Object} dateStr - The date string in
|
|
11819
|
-
* @returns Boolean - True if the date is a
|
|
11949
|
+
* Checks if the current date is a referenced date.
|
|
11950
|
+
* @param {Object} dateStr - The date string in YYYY_MM_DD format.
|
|
11951
|
+
* @returns Boolean - True if the date is a referenced date.
|
|
11820
11952
|
*/
|
|
11821
11953
|
isReferenceDate(dateStr) {
|
|
11822
|
-
// If the datepicker has
|
|
11954
|
+
// If the datepicker has referenced dates specified
|
|
11823
11955
|
if (this.datepicker && this.datepicker.hasAttribute('referenceDates')) {
|
|
11824
11956
|
|
|
11825
11957
|
// Get the referenceDates attribute from the datepicker
|
|
@@ -11828,9 +11960,8 @@ class AuroCalendarCell extends LitElement {
|
|
|
11828
11960
|
// Guard clause: no dates in the array
|
|
11829
11961
|
if (!Array.isArray(referenceDates) || referenceDates.length === 0) return false;
|
|
11830
11962
|
|
|
11831
|
-
//
|
|
11832
|
-
const
|
|
11833
|
-
const cellISO = `${year}-${month.padStart(2, '0')}-${day.padStart(2, '0')}`;
|
|
11963
|
+
// eslint-disable-next-line require-unicode-regexp
|
|
11964
|
+
const cellISO = dateStr.replace(/_/g, '-');
|
|
11834
11965
|
|
|
11835
11966
|
return referenceDates.includes(cellISO);
|
|
11836
11967
|
}
|
|
@@ -11847,12 +11978,16 @@ class AuroCalendarCell extends LitElement {
|
|
|
11847
11978
|
if (date === undefined) {
|
|
11848
11979
|
return '';
|
|
11849
11980
|
}
|
|
11850
|
-
|
|
11851
|
-
|
|
11852
|
-
|
|
11853
|
-
|
|
11854
|
-
|
|
11855
|
-
|
|
11981
|
+
if (!this._titleFormatter || this._titleFormatterLocale !== this.locale) {
|
|
11982
|
+
this._titleFormatter = new Intl.DateTimeFormat(this.locale, {
|
|
11983
|
+
weekday: 'long',
|
|
11984
|
+
year: 'numeric',
|
|
11985
|
+
month: 'long',
|
|
11986
|
+
day: 'numeric'
|
|
11987
|
+
});
|
|
11988
|
+
this._titleFormatterLocale = this.locale;
|
|
11989
|
+
}
|
|
11990
|
+
return this._titleFormatter.format(new Date(date * 1000));
|
|
11856
11991
|
}
|
|
11857
11992
|
|
|
11858
11993
|
/**
|
|
@@ -11880,7 +12015,7 @@ class AuroCalendarCell extends LitElement {
|
|
|
11880
12015
|
|
|
11881
12016
|
const year = date.getFullYear();
|
|
11882
12017
|
|
|
11883
|
-
this.dateStr = `${
|
|
12018
|
+
this.dateStr = `${year}_${month}_${day}`;
|
|
11884
12019
|
}
|
|
11885
12020
|
|
|
11886
12021
|
/**
|
|
@@ -11915,9 +12050,9 @@ class AuroCalendarCell extends LitElement {
|
|
|
11915
12050
|
|
|
11916
12051
|
if (popoverSlotContent) {
|
|
11917
12052
|
this.appendChild(popoverSlotContent.cloneNode(true));
|
|
11918
|
-
this.
|
|
12053
|
+
this.hasPopoverContent = true;
|
|
11919
12054
|
} else {
|
|
11920
|
-
this.
|
|
12055
|
+
this.hasPopoverContent = false;
|
|
11921
12056
|
}
|
|
11922
12057
|
} catch (err) { // eslint-disable-line no-unused-vars
|
|
11923
12058
|
// Error handling goes here
|
|
@@ -11933,60 +12068,249 @@ class AuroCalendarCell extends LitElement {
|
|
|
11933
12068
|
return;
|
|
11934
12069
|
}
|
|
11935
12070
|
this.datepicker = calendar.datepicker;
|
|
11936
|
-
this.
|
|
12071
|
+
this._slotContentHandler = () => {
|
|
11937
12072
|
this.handleSlotContent();
|
|
12073
|
+
// Force re-render so isBlackout()/aria-disabled reflect updated blackoutDates.
|
|
12074
|
+
this.requestUpdate();
|
|
12075
|
+
};
|
|
12076
|
+
this.datepicker.addEventListener('auroDatePicker-newSlotContent', this._slotContentHandler);
|
|
12077
|
+
|
|
12078
|
+
// Cache button reference for imperative class manipulation.
|
|
12079
|
+
this.updateComplete.then(() => {
|
|
12080
|
+
this._cachedButton = this.shadowRoot.querySelector('button.day');
|
|
11938
12081
|
});
|
|
11939
12082
|
|
|
12083
|
+
// Trigger an initial update now that `this.datepicker` is assigned so
|
|
12084
|
+
// cells reflect blackout/slot state that was configured before first render.
|
|
12085
|
+
this.requestUpdate();
|
|
12086
|
+
|
|
12087
|
+
this.calendarMonth = calendarMonth;
|
|
12088
|
+
this.configurePopover();
|
|
12089
|
+
}
|
|
12090
|
+
|
|
12091
|
+
disconnectedCallback() {
|
|
12092
|
+
super.disconnectedCallback();
|
|
12093
|
+
if (this.datepicker && this._slotContentHandler) {
|
|
12094
|
+
this.datepicker.removeEventListener('auroDatePicker-newSlotContent', this._slotContentHandler);
|
|
12095
|
+
}
|
|
12096
|
+
}
|
|
12097
|
+
|
|
12098
|
+
/**
|
|
12099
|
+
* Configures the popover instance with the calendar month boundary.
|
|
12100
|
+
* Called from firstUpdated and updated because the popover element is only
|
|
12101
|
+
* rendered after hasPopoverContent becomes true (set by handleSlotContent).
|
|
12102
|
+
* @private
|
|
12103
|
+
* @returns {void}
|
|
12104
|
+
*/
|
|
12105
|
+
configurePopover() {
|
|
11940
12106
|
this.auroPopover = this.shadowRoot.querySelector(this.popoverTag._$litStatic$);
|
|
11941
12107
|
|
|
11942
|
-
this.auroPopover
|
|
12108
|
+
if (this.auroPopover && this.calendarMonth) {
|
|
12109
|
+
this.auroPopover.boundary = this.calendarMonth;
|
|
12110
|
+
}
|
|
11943
12111
|
}
|
|
11944
12112
|
|
|
11945
12113
|
updated(properties) {
|
|
11946
|
-
if (properties.has('dateFrom') || properties.has('dateTo') || properties.has('
|
|
11947
|
-
this.dateChanged(this.dateFrom, this.dateTo, this.
|
|
12114
|
+
if (properties.has('dateFrom') || properties.has('dateTo') || properties.has('day')) {
|
|
12115
|
+
this.dateChanged(this.dateFrom, this.dateTo, this.day);
|
|
12116
|
+
}
|
|
12117
|
+
|
|
12118
|
+
if (properties.has('day') && this.day) {
|
|
12119
|
+
this.setDateSlotName();
|
|
12120
|
+
this.handleSlotContent();
|
|
12121
|
+
|
|
12122
|
+
// Re-cache button reference when the day changes (cell may have re-rendered).
|
|
12123
|
+
this.updateComplete.then(() => {
|
|
12124
|
+
this._cachedButton = this.shadowRoot.querySelector('button.day');
|
|
12125
|
+
});
|
|
12126
|
+
|
|
12127
|
+
// Update host-level aria attributes for ariaActiveDescendantElement.
|
|
12128
|
+
this.updateHostAria();
|
|
11948
12129
|
}
|
|
11949
12130
|
|
|
11950
|
-
|
|
11951
|
-
|
|
12131
|
+
// Update host aria when selection changes (aria-selected, range labels)
|
|
12132
|
+
if (properties.has('dateFrom') || properties.has('dateTo') || properties.has('selected')) {
|
|
12133
|
+
this.updateHostAria();
|
|
12134
|
+
}
|
|
12135
|
+
|
|
12136
|
+
// Configure popover when it first becomes rendered
|
|
12137
|
+
if (properties.has('hasPopoverContent') && this.hasPopoverContent) {
|
|
12138
|
+
this.updateComplete.then(() => this.configurePopover());
|
|
12139
|
+
}
|
|
11952
12140
|
}
|
|
11953
12141
|
|
|
11954
|
-
|
|
12142
|
+
/**
|
|
12143
|
+
* Updates ARIA attributes on the host element so that
|
|
12144
|
+
* ariaActiveDescendantElement can expose cell info to the SR.
|
|
12145
|
+
* @private
|
|
12146
|
+
* @returns {void}
|
|
12147
|
+
*/
|
|
12148
|
+
updateHostAria() {
|
|
12149
|
+
if (!this.day || this.day.date === undefined) return;
|
|
12150
|
+
|
|
12151
|
+
const outOfRange = this.isOutOfRange(this.day, this.min, this.max);
|
|
12152
|
+
if (outOfRange) {
|
|
12153
|
+
this.removeAttribute('role');
|
|
12154
|
+
this.removeAttribute('aria-label');
|
|
12155
|
+
return;
|
|
12156
|
+
}
|
|
12157
|
+
|
|
12158
|
+
// The host acts as the gridcell for ariaActiveDescendantElement.
|
|
12159
|
+
this.setAttribute('role', 'gridcell');
|
|
12160
|
+
this.setAttribute('aria-label', this.getAriaLabel());
|
|
12161
|
+
this.setAttribute('aria-selected', this.selected ? 'true' : 'false');
|
|
12162
|
+
|
|
12163
|
+
if (this.isBlackout()) {
|
|
12164
|
+
this.setAttribute('aria-disabled', 'true');
|
|
12165
|
+
} else {
|
|
12166
|
+
this.removeAttribute('aria-disabled');
|
|
12167
|
+
}
|
|
12168
|
+
}
|
|
12169
|
+
|
|
12170
|
+
/**
|
|
12171
|
+
* Programmatically focuses the cell's interactive button element.
|
|
12172
|
+
* Uses focusVisible: true so the :focus-visible ring appears even when
|
|
12173
|
+
* the bib was opened via mouse click (which sets mouse input modality).
|
|
12174
|
+
* @returns {void}
|
|
12175
|
+
*/
|
|
12176
|
+
focusButton() {
|
|
12177
|
+
const button = this._cachedButton || this.shadowRoot.querySelector('button:not([aria-hidden])');
|
|
12178
|
+
if (button) {
|
|
12179
|
+
button.focus({ focusVisible: true });
|
|
12180
|
+
}
|
|
12181
|
+
}
|
|
12182
|
+
|
|
12183
|
+
/**
|
|
12184
|
+
* Imperatively marks this cell as active without triggering a Lit re-render.
|
|
12185
|
+
* Note: buttons stay tabindex="-1" because the grid uses aria-activedescendant.
|
|
12186
|
+
* @returns {void}
|
|
12187
|
+
*/
|
|
12188
|
+
setActive() {
|
|
12189
|
+
this.active = true;
|
|
12190
|
+
|
|
12191
|
+
// Show the popover when this cell becomes active via keyboard navigation.
|
|
12192
|
+
if (this.auroPopover) {
|
|
12193
|
+
this.auroPopover.toggleShow();
|
|
12194
|
+
}
|
|
12195
|
+
}
|
|
12196
|
+
|
|
12197
|
+
/**
|
|
12198
|
+
* Imperatively marks this cell as inactive without triggering a Lit re-render.
|
|
12199
|
+
* @returns {void}
|
|
12200
|
+
*/
|
|
12201
|
+
clearActive() {
|
|
12202
|
+
this.active = false;
|
|
12203
|
+
const btn = this._cachedButton || this.shadowRoot.querySelector('button.day');
|
|
12204
|
+
if (btn) {
|
|
12205
|
+
btn.classList.remove('activeCell');
|
|
12206
|
+
}
|
|
12207
|
+
|
|
12208
|
+
// Hide the popover when this cell loses active state.
|
|
12209
|
+
if (this.auroPopover) {
|
|
12210
|
+
this.auroPopover.toggleHide();
|
|
12211
|
+
}
|
|
12212
|
+
}
|
|
12213
|
+
|
|
12214
|
+
/**
|
|
12215
|
+
* Updates range preview classes imperatively (no Lit re-render).
|
|
12216
|
+
* Called by the calendar component when the hovered date changes
|
|
12217
|
+
* during range selection (dateFrom set, dateTo not yet set).
|
|
12218
|
+
* @param {Number} hoveredDate - Unix timestamp of the currently hovered/focused date.
|
|
12219
|
+
* @param {Number} dateFrom - Unix timestamp of the selected departure date.
|
|
12220
|
+
* @returns {void}
|
|
12221
|
+
*/
|
|
12222
|
+
updateRangePreviewClasses(hoveredDate, dateFrom) {
|
|
12223
|
+
const btn = this._cachedButton;
|
|
12224
|
+
if (!btn || !this.day) return;
|
|
12225
|
+
|
|
12226
|
+
const dayDate = this.day.date;
|
|
12227
|
+
const departTimestamp = startOfDay$1(dateFrom * 1000) / 1000;
|
|
12228
|
+
const isInRange = dayDate > departTimestamp && dayDate < hoveredDate;
|
|
12229
|
+
const isLastHovered = dayDate === hoveredDate && hoveredDate > departTimestamp;
|
|
12230
|
+
const isDepartWithPreview = dayDate === departTimestamp && hoveredDate > departTimestamp;
|
|
12231
|
+
|
|
12232
|
+
btn.classList.toggle('inRange', isInRange);
|
|
12233
|
+
btn.classList.toggle('lastHoveredDate', isLastHovered);
|
|
12234
|
+
btn.classList.toggle('rangeDepartDate', isDepartWithPreview);
|
|
12235
|
+
}
|
|
12236
|
+
|
|
12237
|
+
/**
|
|
12238
|
+
* Clears all imperative range preview classes from the cell button.
|
|
12239
|
+
* Called when a selection occurs so classMap becomes the sole source of truth.
|
|
12240
|
+
* @returns {void}
|
|
12241
|
+
*/
|
|
12242
|
+
clearRangePreviewClasses() {
|
|
12243
|
+
const btn = this._cachedButton;
|
|
12244
|
+
if (!btn) return;
|
|
12245
|
+
|
|
12246
|
+
btn.classList.remove('inRange', 'lastHoveredDate', 'rangeDepartDate');
|
|
12247
|
+
}
|
|
12248
|
+
|
|
12249
|
+
renderCellButton() {
|
|
12250
|
+
const outOfRange = this.isOutOfRange(this.day, this.min, this.max);
|
|
12251
|
+
const blackout = this.isBlackout();
|
|
12252
|
+
|
|
12253
|
+
// Static and selection-driven classes only. Hover-driven classes
|
|
12254
|
+
// (inRange, lastHoveredDate, rangeDepartDate during preview) are
|
|
12255
|
+
// managed imperatively via updateRangePreviewClasses() to avoid
|
|
12256
|
+
// O(N) Lit re-renders on every focus/hover event.
|
|
12257
|
+
const isFirstDay = this.day?.title === 1;
|
|
12258
|
+
const isLastDay = this.day?.date && (() => {
|
|
12259
|
+
const dt = new Date(this.day.date * 1000);
|
|
12260
|
+
return dt.getDate() === new Date(dt.getFullYear(), dt.getMonth() + 1, 0).getDate();
|
|
12261
|
+
})();
|
|
12262
|
+
|
|
11955
12263
|
const buttonClasses = {
|
|
11956
12264
|
'day': true,
|
|
11957
|
-
'body-
|
|
11958
|
-
'currentDate': this.
|
|
12265
|
+
'body-default': true,
|
|
12266
|
+
'currentDate': this.isCurrentDate,
|
|
11959
12267
|
'selected': this.selected,
|
|
11960
|
-
'inRange': this.
|
|
11961
|
-
'
|
|
11962
|
-
|
|
11963
|
-
'rangeDepartDate': this.isDepartDate(this.day, this.dateFrom) &&
|
|
11964
|
-
'rangeReturnDate': this.isReturnDate(this.day, this.dateFrom, this.dateTo),
|
|
12268
|
+
'inRange': this.datepicker?.hasAttribute('range') && this.dateTo && this.isInRange(this.day, this.dateFrom, this.dateTo),
|
|
12269
|
+
'disabled': outOfRange,
|
|
12270
|
+
blackout,
|
|
12271
|
+
'rangeDepartDate': this.datepicker?.hasAttribute('range') && this.isDepartDate(this.day, this.dateFrom) && this.dateTo,
|
|
12272
|
+
'rangeReturnDate': this.datepicker?.hasAttribute('range') && this.isReturnDate(this.day, this.dateFrom, this.dateTo),
|
|
11965
12273
|
'reference': this.isReferenceDate(this.dateStr),
|
|
11966
|
-
'sameDateTrip': this.dateFrom === this.dateTo
|
|
12274
|
+
'sameDateTrip': this.datepicker?.hasAttribute('range') && this.dateFrom === this.dateTo,
|
|
12275
|
+
'firstDayOfMonth': isFirstDay,
|
|
12276
|
+
'lastDayOfMonth': isLastDay,
|
|
11967
12277
|
};
|
|
11968
12278
|
|
|
11969
|
-
let _a, _b;
|
|
11970
12279
|
return html$1`
|
|
11971
|
-
|
|
11972
|
-
|
|
11973
|
-
|
|
11974
|
-
|
|
11975
|
-
|
|
11976
|
-
|
|
11977
|
-
|
|
11978
|
-
|
|
11979
|
-
|
|
11980
|
-
|
|
11981
|
-
|
|
11982
|
-
<div class="
|
|
11983
|
-
|
|
11984
|
-
<
|
|
11985
|
-
<slot name="date_${this.dateStr}"></slot>
|
|
11986
|
-
</div>
|
|
12280
|
+
<button
|
|
12281
|
+
slot="trigger"
|
|
12282
|
+
id="${this.getCellId()}"
|
|
12283
|
+
@click="${outOfRange ? undefined : this.handleTap}"
|
|
12284
|
+
@mouseover="${outOfRange ? undefined : this.handleHover}"
|
|
12285
|
+
@focus="${outOfRange ? undefined : this.handleFocus}"
|
|
12286
|
+
class="${classMap(buttonClasses)}"
|
|
12287
|
+
?disabled="${outOfRange}"
|
|
12288
|
+
aria-hidden="${outOfRange ? 'true' : nothing}"
|
|
12289
|
+
tabindex="-1">
|
|
12290
|
+
<div class="buttonWrapper" aria-hidden="true">
|
|
12291
|
+
<div class="currentDayMarker">${this.day?.title || nothing}</div>
|
|
12292
|
+
<div class="dateSlot body-2xs" part="dateSlot" aria-hidden="true" ?hidden="${!this.renderForDateSlot}">
|
|
12293
|
+
<slot name="date_${this.dateStr}"></slot>
|
|
11987
12294
|
</div>
|
|
11988
|
-
</
|
|
11989
|
-
|
|
12295
|
+
</div>
|
|
12296
|
+
</button>
|
|
12297
|
+
`;
|
|
12298
|
+
}
|
|
12299
|
+
|
|
12300
|
+
render() {
|
|
12301
|
+
const { hasPopoverContent } = this;
|
|
12302
|
+
|
|
12303
|
+
if (hasPopoverContent) {
|
|
12304
|
+
return html$1`
|
|
12305
|
+
<${this.popoverTag}>
|
|
12306
|
+
<span aria-hidden="true"><slot name="popover_${this.dateStr}"></slot></span>
|
|
12307
|
+
${this.renderCellButton()}
|
|
12308
|
+
</${this.popoverTag}>
|
|
12309
|
+
`;
|
|
12310
|
+
}
|
|
12311
|
+
|
|
12312
|
+
return html$1`
|
|
12313
|
+
${this.renderCellButton()}
|
|
11990
12314
|
`;
|
|
11991
12315
|
}
|
|
11992
12316
|
}
|
|
@@ -11995,31 +12319,39 @@ if (!customElements.get('auro-formkit-calendar-cell')) {
|
|
|
11995
12319
|
customElements.define('auro-formkit-calendar-cell', AuroCalendarCell);
|
|
11996
12320
|
}
|
|
11997
12321
|
|
|
12322
|
+
/* eslint-disable no-underscore-dangle */
|
|
12323
|
+
|
|
11998
12324
|
// See https://git.io/JJ6SJ for "How to document your components using JSDoc"
|
|
11999
12325
|
|
|
12000
|
-
/* eslint-disable no-magic-numbers
|
|
12326
|
+
/* eslint-disable no-magic-numbers */
|
|
12327
|
+
|
|
12001
12328
|
|
|
12002
12329
|
const getMonthNamesFromLocale = (locale) => {
|
|
12003
|
-
const fmt = new Intl.DateTimeFormat(locale
|
|
12004
|
-
|
|
12330
|
+
const fmt = new Intl.DateTimeFormat(locale, {
|
|
12331
|
+
month: 'long',
|
|
12332
|
+
timeZone: 'UTC'
|
|
12333
|
+
});
|
|
12334
|
+
// eslint-disable-next-line id-length
|
|
12335
|
+
return Array.from({ length: 12 }, (_, i) => fmt.format(Date.UTC(2000, i, 1)));
|
|
12005
12336
|
};
|
|
12006
12337
|
|
|
12007
12338
|
/**
|
|
12008
|
-
* Generates the localized
|
|
12009
|
-
*
|
|
12339
|
+
* Generates the localized narrow names for each day of the week, starting from Sunday.
|
|
12340
|
+
* Uses UTC dates to avoid DST-related day drift across timezones.
|
|
12010
12341
|
* @private
|
|
12011
12342
|
* @param {String} locale - The BCP 47 language tag for localization (e.g. "en-US").
|
|
12012
|
-
* @
|
|
12343
|
+
* @param {String} weekday - The format of the weekday name ('narrow', 'short', 'long').
|
|
12344
|
+
* @returns {Array} An array of seven localized weekday names, starting from Sunday.
|
|
12013
12345
|
*/
|
|
12014
|
-
const getWeekdayNames = (locale) => {
|
|
12015
|
-
const fmt = new Intl.DateTimeFormat(locale
|
|
12016
|
-
|
|
12017
|
-
|
|
12018
|
-
|
|
12346
|
+
const getWeekdayNames = (locale, weekday) => {
|
|
12347
|
+
const fmt = new Intl.DateTimeFormat(locale, {
|
|
12348
|
+
weekday,
|
|
12349
|
+
timeZone: 'UTC'
|
|
12350
|
+
});
|
|
12351
|
+
// Jan 5 2025 is a known Sunday; use Date.UTC to avoid DST-related day drift
|
|
12019
12352
|
const allDays = [];
|
|
12020
12353
|
for (let day = 0; day < 7; day += 1) {
|
|
12021
|
-
|
|
12022
|
-
allDays.push(fmt.format(new Date(sundayMs + offsetMs)));
|
|
12354
|
+
allDays.push(fmt.format(Date.UTC(2025, 0, 5 + day)));
|
|
12023
12355
|
}
|
|
12024
12356
|
return allDays;
|
|
12025
12357
|
};
|
|
@@ -12048,10 +12380,17 @@ class AuroCalendarMonth extends RangeDatepickerCalendar {
|
|
|
12048
12380
|
|
|
12049
12381
|
/**
|
|
12050
12382
|
* BCP 47 locale tag (such as `en-US`) for calendar localization.
|
|
12051
|
-
*
|
|
12383
|
+
* As wc-range-datepicker expects a `locale` prop, we use `localeCode` to avoid conflicts.
|
|
12052
12384
|
*/
|
|
12053
12385
|
localeCode: {
|
|
12054
12386
|
type: String
|
|
12387
|
+
},
|
|
12388
|
+
|
|
12389
|
+
/**
|
|
12390
|
+
* Names of all 12 months. When omitted, names are derived from `localeCode`.
|
|
12391
|
+
*/
|
|
12392
|
+
monthNames: {
|
|
12393
|
+
type: Array
|
|
12055
12394
|
}
|
|
12056
12395
|
};
|
|
12057
12396
|
}
|
|
@@ -12085,13 +12424,32 @@ class AuroCalendarMonth extends RangeDatepickerCalendar {
|
|
|
12085
12424
|
* @returns {String} The name of the month.
|
|
12086
12425
|
*/
|
|
12087
12426
|
computeCurrentMonthName(month) {
|
|
12088
|
-
|
|
12427
|
+
if (this.monthNames?.[month - 1]) {
|
|
12428
|
+
return this.monthNames[month - 1];
|
|
12429
|
+
}
|
|
12430
|
+
if (!this._cachedMonthNames || this._cachedMonthNamesLocale !== this.localeCode) {
|
|
12431
|
+
this._cachedMonthNames = getMonthNamesFromLocale(this.localeCode);
|
|
12432
|
+
this._cachedMonthNamesLocale = this.localeCode;
|
|
12433
|
+
}
|
|
12434
|
+
return this._cachedMonthNames[month - 1] || '';
|
|
12435
|
+
}
|
|
12436
|
+
|
|
12437
|
+
/**
|
|
12438
|
+
* Returns the unique heading ID for this month, used by aria-labelledby.
|
|
12439
|
+
* @private
|
|
12440
|
+
* @returns {String} The heading ID.
|
|
12441
|
+
*/
|
|
12442
|
+
getHeadingId() {
|
|
12443
|
+
return `month-heading-${this.month}-${this.year}`;
|
|
12089
12444
|
}
|
|
12090
12445
|
|
|
12446
|
+
|
|
12091
12447
|
/**
|
|
12092
12448
|
* Determines the current month name based on locale.
|
|
12449
|
+
* Also builds parallel arrays of full day names for abbr attributes.
|
|
12093
12450
|
* This is a rewrite of the function used in the class RangeDatepickerCalendar and should not be removed from here.
|
|
12094
12451
|
* @private
|
|
12452
|
+
* @param {Object} changedProperties - The properties that have changed since the last update.
|
|
12095
12453
|
* @returns {void}
|
|
12096
12454
|
*/
|
|
12097
12455
|
updated(changedProperties) {
|
|
@@ -12102,13 +12460,67 @@ class AuroCalendarMonth extends RangeDatepickerCalendar {
|
|
|
12102
12460
|
}
|
|
12103
12461
|
|
|
12104
12462
|
localeChanged() {
|
|
12105
|
-
|
|
12106
|
-
|
|
12463
|
+
this.dayNamesOfTheWeek = getWeekdayNames(this.localeCode, 'narrow');
|
|
12464
|
+
this.dayFullNames = getWeekdayNames(this.localeCode, 'long');
|
|
12465
|
+
}
|
|
12466
|
+
|
|
12467
|
+
/**
|
|
12468
|
+
* Renders a day-of-week header with abbr attribute for the full day name.
|
|
12469
|
+
* @private
|
|
12470
|
+
* @param {String} dayOfWeek - The short day name.
|
|
12471
|
+
* @param {Number} index - The index in the dayNamesOfTheWeek array.
|
|
12472
|
+
* @returns {Object} The header HTML.
|
|
12473
|
+
*/
|
|
12474
|
+
renderDayOfWeek(dayOfWeek, index) {
|
|
12475
|
+
const fullName = this.dayFullNames ? this.dayFullNames[index] : dayOfWeek;
|
|
12476
|
+
return html`<div class="th body-default" aria-label="${fullName}" role="columnheader">${dayOfWeek}</div>`;
|
|
12477
|
+
}
|
|
12478
|
+
|
|
12479
|
+
/**
|
|
12480
|
+
* Returns all focusable cell elements (enabled + blackout, not out-of-range) in this month.
|
|
12481
|
+
* @returns {Array} Array of auro-formkit-calendar-cell elements.
|
|
12482
|
+
*/
|
|
12483
|
+
getFocusableCells() {
|
|
12484
|
+
const cells = Array.from(this.shadowRoot.querySelectorAll('auro-formkit-calendar-cell'));
|
|
12485
|
+
return cells.filter((cell) => {
|
|
12486
|
+
if (!cell.day) {
|
|
12487
|
+
return false;
|
|
12488
|
+
}
|
|
12489
|
+
return !cell.isOutOfRange(cell.day, cell.min, cell.max);
|
|
12490
|
+
});
|
|
12491
|
+
}
|
|
12107
12492
|
|
|
12108
|
-
|
|
12109
|
-
|
|
12110
|
-
|
|
12111
|
-
|
|
12493
|
+
/**
|
|
12494
|
+
* Overrides the base class handler to prevent setting `this.hoveredDate`
|
|
12495
|
+
* as a reactive property. Instead, just dispatches the event upward so
|
|
12496
|
+
* the calendar can handle range preview imperatively.
|
|
12497
|
+
* @private
|
|
12498
|
+
* @param {CustomEvent} event - The date-is-hovered event from a cell.
|
|
12499
|
+
* @returns {void}
|
|
12500
|
+
*/
|
|
12501
|
+
handleDateHovered(event) {
|
|
12502
|
+
this.dispatchEvent(new CustomEvent('hovered-date-changed', {
|
|
12503
|
+
detail: { value: event.detail.date },
|
|
12504
|
+
}));
|
|
12505
|
+
}
|
|
12506
|
+
|
|
12507
|
+
/**
|
|
12508
|
+
* Dispatches a bubbling event when the mouse leaves the date grid body
|
|
12509
|
+
* so the parent calendar can clear the range hover preview.
|
|
12510
|
+
* @private
|
|
12511
|
+
* @returns {void}
|
|
12512
|
+
*/
|
|
12513
|
+
handleTbodyMouseLeave() {
|
|
12514
|
+
this.dispatchEvent(new CustomEvent('calendar-month-mouseleave', {
|
|
12515
|
+
bubbles: true,
|
|
12516
|
+
composed: true,
|
|
12517
|
+
}));
|
|
12518
|
+
}
|
|
12519
|
+
|
|
12520
|
+
renderWeek(week) {
|
|
12521
|
+
return html`
|
|
12522
|
+
<div class="tr" role="row">${week.map((day) => this.renderDay(day))}</div>
|
|
12523
|
+
`;
|
|
12112
12524
|
}
|
|
12113
12525
|
|
|
12114
12526
|
renderDay(day) {
|
|
@@ -12121,7 +12533,6 @@ class AuroCalendarMonth extends RangeDatepickerCalendar {
|
|
|
12121
12533
|
.min="${this.min}"
|
|
12122
12534
|
.max="${this.max}"
|
|
12123
12535
|
.month="${this.month}"
|
|
12124
|
-
.hoveredDate="${this.hoveredDate}"
|
|
12125
12536
|
.dateTo="${this.dateTo}"
|
|
12126
12537
|
.dateFrom="${this.dateFrom}"
|
|
12127
12538
|
.locale="${this.localeCode}"
|
|
@@ -12132,7 +12543,7 @@ class AuroCalendarMonth extends RangeDatepickerCalendar {
|
|
|
12132
12543
|
>
|
|
12133
12544
|
</auro-formkit-calendar-cell>
|
|
12134
12545
|
`
|
|
12135
|
-
:
|
|
12546
|
+
: html`<div aria-hidden="true" inert></div>`}
|
|
12136
12547
|
</div>
|
|
12137
12548
|
`;
|
|
12138
12549
|
}
|
|
@@ -12146,7 +12557,7 @@ class AuroCalendarMonth extends RangeDatepickerCalendar {
|
|
|
12146
12557
|
<div>
|
|
12147
12558
|
<div class="header">
|
|
12148
12559
|
${this.renderPrevButton()}
|
|
12149
|
-
<div class="headerTitle heading-xs">
|
|
12560
|
+
<div class="headerTitle heading-xs" id="${this.getHeadingId()}">
|
|
12150
12561
|
${this.monthFirst ? html`
|
|
12151
12562
|
<div>${this.computeCurrentMonthName(this.month)}</div>
|
|
12152
12563
|
<div>${this.renderYear()}</div>
|
|
@@ -12157,14 +12568,13 @@ class AuroCalendarMonth extends RangeDatepickerCalendar {
|
|
|
12157
12568
|
</div>
|
|
12158
12569
|
${this.renderNextButton()}
|
|
12159
12570
|
</div>
|
|
12160
|
-
|
|
12161
|
-
<div class="table">
|
|
12571
|
+
<div class="table" role="grid">
|
|
12162
12572
|
<div class="thead">
|
|
12163
12573
|
<div class="tr">
|
|
12164
|
-
${(_a = this.dayNamesOfTheWeek) === null || _a === void 0 ? void 0 : _a.map(dayNameOfWeek => this.renderDayOfWeek(dayNameOfWeek))}
|
|
12574
|
+
${(_a = this.dayNamesOfTheWeek) === null || _a === void 0 ? void 0 : _a.map((dayNameOfWeek, index) => this.renderDayOfWeek(dayNameOfWeek, index))}
|
|
12165
12575
|
</div>
|
|
12166
12576
|
</div>
|
|
12167
|
-
<div class="tbody">
|
|
12577
|
+
<div class="tbody" role="rowgroup" @mouseleave="${this.handleTbodyMouseLeave}">
|
|
12168
12578
|
${(_b = this.daysOfMonth) === null || _b === void 0 ? void 0 : _b.map(week => this.renderWeek(week))}
|
|
12169
12579
|
</div>
|
|
12170
12580
|
</div>
|
|
@@ -12862,6 +13272,14 @@ class AuroBibtemplate extends LitElement {
|
|
|
12862
13272
|
large: {
|
|
12863
13273
|
type: Boolean,
|
|
12864
13274
|
reflect: true
|
|
13275
|
+
},
|
|
13276
|
+
|
|
13277
|
+
/**
|
|
13278
|
+
* If declared, the footer slot will be rendered even when not in fullscreen mode.
|
|
13279
|
+
*/
|
|
13280
|
+
showFooter: {
|
|
13281
|
+
type: Boolean,
|
|
13282
|
+
reflect: true
|
|
12865
13283
|
}
|
|
12866
13284
|
};
|
|
12867
13285
|
}
|
|
@@ -12964,7 +13382,7 @@ class AuroBibtemplate extends LitElement {
|
|
|
12964
13382
|
<slot></slot>
|
|
12965
13383
|
</div>
|
|
12966
13384
|
|
|
12967
|
-
${this.isFullscreen ? html$1`
|
|
13385
|
+
${this.isFullscreen || this.showFooter ? html$1`
|
|
12968
13386
|
<div id="footerContainer">
|
|
12969
13387
|
<slot name="footer"></slot>
|
|
12970
13388
|
</div>` : null}
|
|
@@ -12973,7 +13391,7 @@ class AuroBibtemplate extends LitElement {
|
|
|
12973
13391
|
}
|
|
12974
13392
|
}
|
|
12975
13393
|
|
|
12976
|
-
var formkitVersion$2 = '
|
|
13394
|
+
var formkitVersion$2 = '202606181613';
|
|
12977
13395
|
|
|
12978
13396
|
let l$1 = class l{generateElementName(t,e){let o=t;return o+="-",o+=e.replace(/[.]/g,"_"),o}generateTag(o,s,a){const r=this.generateElementName(o,s),i=literal`${unsafeStatic(r)}`;return customElements.get(r)||customElements.define(r,class extends a{}),i}};let d$1 = class d{registerComponent(t,e){customElements.get(t)||customElements.define(t,class extends e{});}closestElement(t,e=this,o=(e,s=e&&e.closest(t))=>e&&e!==document&&e!==window?s||o(e.getRootNode().host):null){return o(e)}handleComponentTagRename(t,e){const o=e.toLowerCase();t.tagName.toLowerCase()!==o&&t.setAttribute(o,true);}elementMatch(t,e){const o=e.toLowerCase();return t.tagName.toLowerCase()===o||t.hasAttribute(o)}getSlotText(t,e){const o=t.shadowRoot?.querySelector(`slot[name="${e}"]`),s=(o?.assignedNodes({flatten:true})||[]).map(t=>t.textContent?.trim()).join(" ").trim();return s||null}};let h$1 = class h{registerComponent(t,e){customElements.get(t)||customElements.define(t,class extends e{});}closestElement(t,e=this,o=(e,s=e&&e.closest(t))=>e&&e!==document&&e!==window?s||o(e.getRootNode().host):null){return o(e)}handleComponentTagRename(t,e){const o=e.toLowerCase();t.tagName.toLowerCase()!==o&&t.setAttribute(o,true);}elementMatch(t,e){const o=e.toLowerCase();return t.tagName.toLowerCase()===o||t.hasAttribute(o)}};var c$1=css`:host{color:var(--ds-auro-loader-color)}:host>span{background-color:var(--ds-auro-loader-background-color);border-color:var(--ds-auro-loader-border-color)}:host([onlight]),:host([appearance=brand]){--ds-auro-loader-color: var(--ds-basic-color-brand-primary, #01426a)}:host([ondark]),:host([appearance=inverse]){--ds-auro-loader-color: var(--ds-basic-color-texticon-inverse, #ffffff)}:host([orbit])>span{--ds-auro-loader-background-color: transparent}:host([orbit])>span:nth-child(1){--ds-auro-loader-border-color: currentcolor;opacity:.25}:host([orbit])>span:nth-child(2){--ds-auro-loader-border-color: currentcolor;border-right-color:transparent;border-bottom-color:transparent;border-left-color:transparent}
|
|
12979
13397
|
`,u$4=css`.body-default{font-size:var(--wcss-body-default-font-size, 1rem);line-height:var(--wcss-body-default-line-height, 1.5rem)}.body-default,.body-lg{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-weight, 450);letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-lg{font-size:var(--wcss-body-lg-font-size, 1.125rem);line-height:var(--wcss-body-lg-line-height, 1.625rem)}.body-sm{font-size:var(--wcss-body-sm-font-size, .875rem);line-height:var(--wcss-body-sm-line-height, 1.25rem)}.body-sm,.body-xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-weight, 450);letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-xs{font-size:var(--wcss-body-xs-font-size, .75rem);line-height:var(--wcss-body-xs-line-height, 1rem)}.body-2xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-size:var(--wcss-body-2xs-font-size, .625rem);font-weight:var(--wcss-body-weight, 450);letter-spacing:var(--wcss-body-letter-spacing, 0);line-height:var(--wcss-body-2xs-line-height, .875rem)}.display-2xl{font-family:var(--wcss-display-2xl-family, "AS Circular"),var(--wcss-display-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-2xl-font-size, clamp(3.5rem, 6vw, 5.375rem));font-weight:var(--wcss-display-2xl-weight, 300);letter-spacing:var(--wcss-display-2xl-letter-spacing, 0);line-height:var(--wcss-display-2xl-line-height, 1.3)}.display-xl{font-family:var(--wcss-display-xl-family, "AS Circular"),var(--wcss-display-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-xl-font-size, clamp(3rem, 5.3333333333vw, 4.5rem));font-weight:var(--wcss-display-xl-weight, 300);letter-spacing:var(--wcss-display-xl-letter-spacing, 0);line-height:var(--wcss-display-xl-line-height, 1.3)}.display-lg{font-family:var(--wcss-display-lg-family, "AS Circular"),var(--wcss-display-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-lg-font-size, clamp(2.75rem, 4.6666666667vw, 4rem));font-weight:var(--wcss-display-lg-weight, 300);letter-spacing:var(--wcss-display-lg-letter-spacing, 0);line-height:var(--wcss-display-lg-line-height, 1.3)}.display-md{font-family:var(--wcss-display-md-family, "AS Circular"),var(--wcss-display-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-md-font-size, clamp(2.5rem, 4vw, 3.5rem));font-weight:var(--wcss-display-md-weight, 300);letter-spacing:var(--wcss-display-md-letter-spacing, 0);line-height:var(--wcss-display-md-line-height, 1.3)}.display-sm{font-family:var(--wcss-display-sm-family, "AS Circular"),var(--wcss-display-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-sm-font-size, clamp(2rem, 3.6666666667vw, 3rem));font-weight:var(--wcss-display-sm-weight, 300);letter-spacing:var(--wcss-display-sm-letter-spacing, 0);line-height:var(--wcss-display-sm-line-height, 1.3)}.display-xs{font-family:var(--wcss-display-xs-family, "AS Circular"),var(--wcss-display-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-xs-font-size, clamp(1.75rem, 3vw, 2.375rem));font-weight:var(--wcss-display-xs-weight, 300);letter-spacing:var(--wcss-display-xs-letter-spacing, 0);line-height:var(--wcss-display-xs-line-height, 1.3)}.heading-xl{font-family:var(--wcss-heading-xl-family, "AS Circular"),var(--wcss-heading-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-xl-font-size, clamp(2rem, 3vw, 2.5rem));font-weight:var(--wcss-heading-xl-weight, 300);letter-spacing:var(--wcss-heading-xl-letter-spacing, 0);line-height:var(--wcss-heading-xl-line-height, 1.3)}.heading-lg{font-family:var(--wcss-heading-lg-family, "AS Circular"),var(--wcss-heading-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-lg-font-size, clamp(1.75rem, 2.6666666667vw, 2.25rem));font-weight:var(--wcss-heading-lg-weight, 300);letter-spacing:var(--wcss-heading-lg-letter-spacing, 0);line-height:var(--wcss-heading-lg-line-height, 1.3)}.heading-md{font-family:var(--wcss-heading-md-family, "AS Circular"),var(--wcss-heading-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-md-font-size, clamp(1.625rem, 2.3333333333vw, 1.75rem));font-weight:var(--wcss-heading-md-weight, 300);letter-spacing:var(--wcss-heading-md-letter-spacing, 0);line-height:var(--wcss-heading-md-line-height, 1.3)}.heading-sm{font-family:var(--wcss-heading-sm-family, "AS Circular"),var(--wcss-heading-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-sm-font-size, clamp(1.375rem, 2vw, 1.5rem));font-weight:var(--wcss-heading-sm-weight, 300);letter-spacing:var(--wcss-heading-sm-letter-spacing, 0);line-height:var(--wcss-heading-sm-line-height, 1.3)}.heading-xs{font-family:var(--wcss-heading-xs-family, "AS Circular"),var(--wcss-heading-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-xs-font-size, clamp(1.25rem, 1.6666666667vw, 1.25rem));font-weight:var(--wcss-heading-xs-weight, 450);letter-spacing:var(--wcss-heading-xs-letter-spacing, 0);line-height:var(--wcss-heading-xs-line-height, 1.3)}.heading-2xs{font-family:var(--wcss-heading-2xs-family, "AS Circular"),var(--wcss-heading-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-2xs-font-size, clamp(1.125rem, 1.5vw, 1.125rem));font-weight:var(--wcss-heading-2xs-weight, 450);letter-spacing:var(--wcss-heading-2xs-letter-spacing, 0);line-height:var(--wcss-heading-2xs-line-height, 1.3)}.accent-2xl{font-family:var(--wcss-accent-2xl-family, "Good OT"),var(--wcss-accent-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-2xl-font-size, clamp(2rem, 3.1666666667vw, 2.375rem));font-weight:var(--wcss-accent-2xl-weight, 450);letter-spacing:var(--wcss-accent-2xl-letter-spacing, .05em);line-height:var(--wcss-accent-2xl-line-height, 1)}.accent-2xl,.accent-xl{text-transform:uppercase}.accent-xl{font-family:var(--wcss-accent-xl-family, "Good OT"),var(--wcss-accent-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-xl-font-size, clamp(1.625rem, 2.3333333333vw, 2rem));font-weight:var(--wcss-accent-xl-weight, 450);letter-spacing:var(--wcss-accent-xl-letter-spacing, .05em);line-height:var(--wcss-accent-xl-line-height, 1.3)}.accent-lg{font-family:var(--wcss-accent-lg-family, "Good OT"),var(--wcss-accent-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-lg-font-size, clamp(1.5rem, 2.1666666667vw, 1.75rem));font-weight:var(--wcss-accent-lg-weight, 450);letter-spacing:var(--wcss-accent-lg-letter-spacing, .05em);line-height:var(--wcss-accent-lg-line-height, 1.3)}.accent-lg,.accent-md{text-transform:uppercase}.accent-md{font-family:var(--wcss-accent-md-family, "Good OT"),var(--wcss-accent-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-md-font-size, clamp(1.375rem, 1.8333333333vw, 1.5rem));font-weight:var(--wcss-accent-md-weight, 500);letter-spacing:var(--wcss-accent-md-letter-spacing, .05em);line-height:var(--wcss-accent-md-line-height, 1.3)}.accent-sm{font-family:var(--wcss-accent-sm-family, "Good OT"),var(--wcss-accent-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-sm-font-size, clamp(1.125rem, 1.5vw, 1.25rem));font-weight:var(--wcss-accent-sm-weight, 500);letter-spacing:var(--wcss-accent-sm-letter-spacing, .05em);line-height:var(--wcss-accent-sm-line-height, 1.3)}.accent-sm,.accent-xs{text-transform:uppercase}.accent-xs{font-family:var(--wcss-accent-xs-family, "Good OT"),var(--wcss-accent-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-xs-font-size, clamp(1rem, 1.3333333333vw, 1rem));font-weight:var(--wcss-accent-xs-weight, 500);letter-spacing:var(--wcss-accent-xs-letter-spacing, .1em);line-height:var(--wcss-accent-xs-line-height, 1.3)}.accent-2xs{font-family:var(--wcss-accent-2xs-family, "Good OT"),var(--wcss-accent-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-2xs-font-size, clamp(.875rem, 1.1666666667vw, .875rem));font-weight:var(--wcss-accent-2xs-weight, 450);letter-spacing:var(--wcss-accent-2xs-letter-spacing, .1em);line-height:var(--wcss-accent-2xs-line-height, 1.3);text-transform:uppercase}:focus:not(:focus-visible){outline:3px solid transparent}:host,:host>span{position:relative}:host{width:2rem;height:2rem;display:inline-block;font-size:0}:host>span{position:absolute;display:inline-block;float:none;top:0;left:0;width:2rem;height:2rem;border-radius:100%;border-style:solid;border-width:0;box-sizing:border-box}:host([xs]),:host([xs])>span{width:1.2rem;height:1.2rem}:host([sm]),:host([sm])>span{width:3rem;height:3rem}:host([md]),:host([md])>span{width:5rem;height:5rem}:host([lg]),:host([lg])>span{width:8rem;height:8rem}:host{--margin: .375rem;--margin-xs: .2rem;--margin-sm: .5rem;--margin-md: .75rem;--margin-lg: 1rem}:host([pulse]),:host([pulse])>span{position:relative}:host([pulse]){width:calc(3rem + var(--margin) * 6);height:calc(1rem + var(--margin) * 2)}:host([pulse])>span{width:1rem;height:1rem;margin:var(--margin);animation:pulse 1.5s ease infinite}:host([pulse][xs]){width:calc(1.95rem + var(--margin-xs) * 6);height:calc(.65rem + var(--margin-xs) * 2)}:host([pulse][xs])>span{margin:var(--margin-xs);width:.65rem;height:.65rem}:host([pulse][sm]){width:calc(6rem + var(--margin-sm) * 6);height:calc(2rem + var(--margin-sm) * 2)}:host([pulse][sm])>span{margin:var(--margin-sm);width:2rem;height:2rem}:host([pulse][md]){width:calc(9rem + var(--margin-md) * 6);height:calc(3rem + var(--margin-md) * 2)}:host([pulse][md])>span{margin:var(--margin-md);width:3rem;height:3rem}:host([pulse][lg]){width:calc(15rem + var(--margin-lg) * 6);height:calc(5rem + var(--margin-lg) * 2)}:host([pulse][lg])>span{margin:var(--margin-lg);width:5rem;height:5rem}:host([pulse])>span:nth-child(1){animation-delay:-.4s}:host([pulse])>span:nth-child(2){animation-delay:-.2s}:host([pulse])>span:nth-child(3){animation-delay:0ms}@keyframes pulse{0%,to{opacity:.1;transform:scale(.9)}50%{opacity:1;transform:scale(1.1)}}:host([orbit]),:host([orbit])>span{opacity:1}:host([orbit])>span{border-width:5px}:host([orbit])>span:nth-child(2){animation:orbit 2s linear infinite}:host([orbit][sm])>span{border-width:8px}:host([orbit][md])>span{border-width:13px}:host([orbit][lg])>span{border-width:21px}@keyframes orbit{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host([ringworm])>svg{animation:rotate 2s linear infinite;height:100%;width:100%;stroke:currentcolor;stroke-width:8}:host([ringworm]) .path{stroke-dashoffset:0;animation:ringworm 1.5s ease-in-out infinite;stroke-linecap:round}@keyframes rotate{to{transform:rotate(360deg)}}@keyframes ringworm{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:89,200;stroke-dashoffset:-35px}to{stroke-dasharray:89,200;stroke-dashoffset:-124px}}:host([laser]){position:static;width:100%;display:block;height:0;overflow:hidden;font-size:unset}:host([laser])>span{position:fixed;width:100%;height:.25rem;border-radius:0;z-index:100}:host([laser])>span:nth-child(1){border-color:currentcolor;opacity:.25}:host([laser])>span:nth-child(2){border-color:currentcolor;animation:laser 2s linear infinite;opacity:1;width:50%}:host([laser][sm])>span:nth-child(2){width:20%}:host([laser][md])>span:nth-child(2){width:30%}:host([laser][lg])>span:nth-child(2){width:50%;animation-duration:1.5s}:host([laser][xl])>span:nth-child(2){width:80%;animation-duration:1.5s}@keyframes laser{0%{left:-100%}to{left:110%}}:host>.no-animation{display:none}@media (prefers-reduced-motion: reduce){:host{display:flex;align-items:center;justify-content:center}:host>span{opacity:1}:host>.loader{display:none}:host>svg{display:none}:host>.no-animation{display:block}}
|
|
@@ -13034,7 +13452,7 @@ let l$1 = class l{generateElementName(t,e){let o=t;return o+="-",o+=e.replace(/[
|
|
|
13034
13452
|
|
|
13035
13453
|
var buttonVersion$1 = '12.3.2';
|
|
13036
13454
|
|
|
13037
|
-
/* eslint-disable no-magic-numbers, no-undef-init, max-lines, lit/binding-positions, lit/no-invalid-html */
|
|
13455
|
+
/* eslint-disable no-magic-numbers, complexity, line-comment-position, no-undef-init, max-lines, line-comment-position, no-underscore-dangle, lit/binding-positions, lit/no-invalid-html, no-inline-comments */
|
|
13038
13456
|
|
|
13039
13457
|
|
|
13040
13458
|
// See https://git.io/JJ6SJ for "How to document your components using JSDoc"
|
|
@@ -13071,6 +13489,20 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
13071
13489
|
this.largeFullscreenHeadline = false;
|
|
13072
13490
|
this.isFullscreen = false;
|
|
13073
13491
|
|
|
13492
|
+
/**
|
|
13493
|
+
* The date of the currently active cell (Unix timestamp).
|
|
13494
|
+
* Only one cell across the entire calendar has tabindex="0" at a time.
|
|
13495
|
+
* @private
|
|
13496
|
+
*/
|
|
13497
|
+
this.activeCellDate = null;
|
|
13498
|
+
|
|
13499
|
+
/**
|
|
13500
|
+
* Whether the #calendarGrid wrapper currently has focus.
|
|
13501
|
+
* Used to determine whether the visualFocus ring should be shown.
|
|
13502
|
+
* @private
|
|
13503
|
+
*/
|
|
13504
|
+
this._gridHasFocus = false;
|
|
13505
|
+
|
|
13074
13506
|
/**
|
|
13075
13507
|
* @private
|
|
13076
13508
|
*/
|
|
@@ -13081,6 +13513,12 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
13081
13513
|
*/
|
|
13082
13514
|
this.calendarRangeMonths = null;
|
|
13083
13515
|
|
|
13516
|
+
/**
|
|
13517
|
+
* Legacy array of disabled-date timestamps.
|
|
13518
|
+
* @private
|
|
13519
|
+
*/
|
|
13520
|
+
this.disabledDays = [];
|
|
13521
|
+
|
|
13084
13522
|
/**
|
|
13085
13523
|
* @private
|
|
13086
13524
|
*/
|
|
@@ -13104,6 +13542,12 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
13104
13542
|
this.buttonTag = versioning.generateTag('auro-formkit-datepicker-button', buttonVersion$1, T$1);
|
|
13105
13543
|
|
|
13106
13544
|
this.dropdown = undefined;
|
|
13545
|
+
|
|
13546
|
+
/**
|
|
13547
|
+
* Unique instance ID for the live region element.
|
|
13548
|
+
* @private
|
|
13549
|
+
*/
|
|
13550
|
+
this._calendarInstanceId = Date.now().toString(36);
|
|
13107
13551
|
}
|
|
13108
13552
|
|
|
13109
13553
|
static get styles() {
|
|
@@ -13236,14 +13680,17 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
13236
13680
|
*/
|
|
13237
13681
|
localeCode: {
|
|
13238
13682
|
type: String
|
|
13683
|
+
},
|
|
13684
|
+
|
|
13685
|
+
/**
|
|
13686
|
+
* Names of all 12 months. When omitted, names are derived from `localeCode`.
|
|
13687
|
+
*/
|
|
13688
|
+
monthNames: {
|
|
13689
|
+
type: Array
|
|
13239
13690
|
}
|
|
13240
13691
|
};
|
|
13241
13692
|
}
|
|
13242
13693
|
|
|
13243
|
-
localeChanged() {
|
|
13244
|
-
// Locale propagation handled via Lit property bindings to child calendar-month elements.
|
|
13245
|
-
}
|
|
13246
|
-
|
|
13247
13694
|
// ─── Read-only *Object properties ─────────────────────────────────────────
|
|
13248
13695
|
|
|
13249
13696
|
/** @returns {Date|undefined} */
|
|
@@ -13264,19 +13711,78 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
13264
13711
|
/**
|
|
13265
13712
|
* Updates the month and year when the user navigates to the previous calendar month.
|
|
13266
13713
|
* @private
|
|
13714
|
+
* @param {Object} [options] - Optional settings.
|
|
13715
|
+
* @param {boolean} [options.skipActiveUpdate=false] - When true, skip the active cell
|
|
13716
|
+
* recomputation. Used by arrow key handlers that manage the active cell themselves.
|
|
13267
13717
|
* @returns {void}
|
|
13268
13718
|
*/
|
|
13269
|
-
handlePrevMonth() {
|
|
13719
|
+
handlePrevMonth(options) {
|
|
13720
|
+
const opts = options instanceof Event ? {} : options || {};
|
|
13721
|
+
this.clearRangePreview({ force: true });
|
|
13270
13722
|
this.utilCal.handleMonthChange(this, 'prev');
|
|
13723
|
+
if (!opts.skipActiveUpdate) {
|
|
13724
|
+
this.updateActiveCellForVisibleMonth();
|
|
13725
|
+
}
|
|
13726
|
+
this.announceMonthChange();
|
|
13271
13727
|
}
|
|
13272
13728
|
|
|
13273
13729
|
/**
|
|
13274
13730
|
* Updates the month and year when the user navigates to the next calendar month.
|
|
13275
13731
|
* @private
|
|
13732
|
+
* @param {Object} [options] - Optional settings.
|
|
13733
|
+
* @param {boolean} [options.skipActiveUpdate=false] - When true, skip the active cell
|
|
13734
|
+
* recomputation. Used by arrow key handlers that manage the active cell themselves.
|
|
13276
13735
|
* @returns {void}
|
|
13277
13736
|
*/
|
|
13278
|
-
handleNextMonth() {
|
|
13737
|
+
handleNextMonth(options) {
|
|
13738
|
+
const opts = options instanceof Event ? {} : options || {};
|
|
13739
|
+
this.clearRangePreview({ force: true });
|
|
13279
13740
|
this.utilCal.handleMonthChange(this, 'next');
|
|
13741
|
+
if (!opts.skipActiveUpdate) {
|
|
13742
|
+
this.updateActiveCellForVisibleMonth();
|
|
13743
|
+
}
|
|
13744
|
+
this.announceMonthChange();
|
|
13745
|
+
}
|
|
13746
|
+
|
|
13747
|
+
/**
|
|
13748
|
+
* Announces the current month and year via the live region after navigation.
|
|
13749
|
+
* @private
|
|
13750
|
+
* @returns {void}
|
|
13751
|
+
*/
|
|
13752
|
+
announceMonthChange() {
|
|
13753
|
+
// Cancel any pending debounced cell announcement so it does not
|
|
13754
|
+
// overwrite this month navigation announcement.
|
|
13755
|
+
if (this._focusAnnounceTimer) {
|
|
13756
|
+
clearTimeout(this._focusAnnounceTimer);
|
|
13757
|
+
this._focusAnnounceTimer = null;
|
|
13758
|
+
}
|
|
13759
|
+
|
|
13760
|
+
const date = this.centralDateObject;
|
|
13761
|
+
const formatter = new Intl.DateTimeFormat(this.localeCode, { month: 'long',
|
|
13762
|
+
year: 'numeric' });
|
|
13763
|
+
this.announceSelection(formatter.format(date));
|
|
13764
|
+
}
|
|
13765
|
+
|
|
13766
|
+
/**
|
|
13767
|
+
* Updates the active cell after month navigation (prev/next buttons).
|
|
13768
|
+
* Always moves the active cell to the first enabled date in the newly
|
|
13769
|
+
* visible months so that tabbing back to the grid lands on an enabled cell.
|
|
13770
|
+
* @private
|
|
13771
|
+
* @returns {void}
|
|
13772
|
+
*/
|
|
13773
|
+
updateActiveCellForVisibleMonth() {
|
|
13774
|
+
// Use double-rAF to ensure child month/cell components have fully
|
|
13775
|
+
// rendered and cached their button references before we set tabindex.
|
|
13776
|
+
requestAnimationFrame(() => {
|
|
13777
|
+
requestAnimationFrame(() => {
|
|
13778
|
+
const newDate = this.computeActiveDate({ skipDateFrom: true });
|
|
13779
|
+
|
|
13780
|
+
if (newDate !== null && newDate !== undefined) {
|
|
13781
|
+
this.activeCellDate = newDate;
|
|
13782
|
+
this.setActiveCell(this.activeCellDate);
|
|
13783
|
+
}
|
|
13784
|
+
});
|
|
13785
|
+
});
|
|
13280
13786
|
}
|
|
13281
13787
|
|
|
13282
13788
|
/**
|
|
@@ -13384,7 +13890,1006 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
13384
13890
|
this.utilCal.scrollMonthIntoView(this, date, this.format);
|
|
13385
13891
|
}
|
|
13386
13892
|
|
|
13893
|
+
/**
|
|
13894
|
+
* Gets all rendered month components.
|
|
13895
|
+
* @private
|
|
13896
|
+
* @returns {Array} Array of auro-formkit-calendar-month elements.
|
|
13897
|
+
*/
|
|
13898
|
+
getMonthComponents() {
|
|
13899
|
+
return Array.from(this.shadowRoot.querySelectorAll('auro-formkit-calendar-month'));
|
|
13900
|
+
}
|
|
13901
|
+
|
|
13902
|
+
/**
|
|
13903
|
+
* Gets all focusable cells across all rendered months.
|
|
13904
|
+
* @private
|
|
13905
|
+
* @returns {Array} Array of auro-formkit-calendar-cell elements.
|
|
13906
|
+
*/
|
|
13907
|
+
getAllFocusableCells() {
|
|
13908
|
+
const months = this.getMonthComponents();
|
|
13909
|
+
let cells = [];
|
|
13910
|
+
months.forEach((month) => {
|
|
13911
|
+
cells = cells.concat(month.getFocusableCells());
|
|
13912
|
+
});
|
|
13913
|
+
return cells;
|
|
13914
|
+
}
|
|
13915
|
+
|
|
13916
|
+
/**
|
|
13917
|
+
* Sets the active cell across all months. Only one cell has tabindex="0" at a time.
|
|
13918
|
+
* Uses imperative DOM manipulation — no Lit re-render triggered.
|
|
13919
|
+
* Also updates ariaActiveDescendantElement on the grid wrapper so
|
|
13920
|
+
* screen readers announce the active cell without moving DOM focus.
|
|
13921
|
+
* @param {Number} date - Unix timestamp of the cell to activate.
|
|
13922
|
+
* @returns {void}
|
|
13923
|
+
*/
|
|
13924
|
+
setActiveCell(date) {
|
|
13925
|
+
const allCells = this.getAllFocusableCells();
|
|
13926
|
+
|
|
13927
|
+
let newActiveCell = null;
|
|
13928
|
+
allCells.forEach((cell) => {
|
|
13929
|
+
if (cell.day && cell.day.date === date) {
|
|
13930
|
+
cell.setActive();
|
|
13931
|
+
newActiveCell = cell;
|
|
13932
|
+
} else if (cell.active) {
|
|
13933
|
+
cell.clearActive();
|
|
13934
|
+
}
|
|
13935
|
+
});
|
|
13936
|
+
|
|
13937
|
+
this.activeCellDate = date;
|
|
13938
|
+
|
|
13939
|
+
// Apply activeCell ring only when the grid currently has focus.
|
|
13940
|
+
if (newActiveCell && this._gridHasFocus) {
|
|
13941
|
+
const btn = newActiveCell._cachedButton || newActiveCell.shadowRoot.querySelector('button.day');
|
|
13942
|
+
if (btn) {
|
|
13943
|
+
btn.classList.add('activeCell');
|
|
13944
|
+
}
|
|
13945
|
+
}
|
|
13946
|
+
}
|
|
13947
|
+
|
|
13948
|
+
/**
|
|
13949
|
+
* Focuses the calendar grid wrapper and sets the active cell.
|
|
13950
|
+
* DOM focus stays on the grid wrapper; the aria-live region
|
|
13951
|
+
* tells the screen reader which cell is "active".
|
|
13952
|
+
* @returns {void}
|
|
13953
|
+
*/
|
|
13954
|
+
focusActiveCell() {
|
|
13955
|
+
if (this.activeCellDate !== null && this.activeCellDate !== undefined) {
|
|
13956
|
+
this.setActiveCell(this.activeCellDate);
|
|
13957
|
+
}
|
|
13958
|
+
|
|
13959
|
+
const gridWrapper = this.shadowRoot.querySelector('#calendarGrid');
|
|
13960
|
+
if (gridWrapper) {
|
|
13961
|
+
gridWrapper.focus({ preventScroll: true,
|
|
13962
|
+
focusVisible: true });
|
|
13963
|
+
}
|
|
13964
|
+
}
|
|
13965
|
+
|
|
13966
|
+
/**
|
|
13967
|
+
* Shows the activeCell ring when the grid gains focus.
|
|
13968
|
+
* @private
|
|
13969
|
+
* @returns {void}
|
|
13970
|
+
*/
|
|
13971
|
+
handleGridFocusIn() {
|
|
13972
|
+
this._gridHasFocus = true;
|
|
13973
|
+
const activeCell = this.getAllFocusableCells().find((cell) => cell.active);
|
|
13974
|
+
if (activeCell) {
|
|
13975
|
+
const btn = activeCell._cachedButton || activeCell.shadowRoot.querySelector('button.day');
|
|
13976
|
+
if (btn) {
|
|
13977
|
+
btn.classList.add('activeCell');
|
|
13978
|
+
}
|
|
13979
|
+
}
|
|
13980
|
+
}
|
|
13981
|
+
|
|
13982
|
+
/**
|
|
13983
|
+
* Hides the activeCell ring when the grid loses focus.
|
|
13984
|
+
* @private
|
|
13985
|
+
* @returns {void}
|
|
13986
|
+
*/
|
|
13987
|
+
handleGridFocusOut() {
|
|
13988
|
+
this._gridHasFocus = false;
|
|
13989
|
+
// Remove activeCell from ALL cells to prevent stale rings.
|
|
13990
|
+
const allCells = this.getAllFocusableCells();
|
|
13991
|
+
for (const cell of allCells) {
|
|
13992
|
+
const btn = cell._cachedButton || cell.shadowRoot.querySelector('button.day');
|
|
13993
|
+
if (btn) {
|
|
13994
|
+
btn.classList.remove('activeCell');
|
|
13995
|
+
}
|
|
13996
|
+
}
|
|
13997
|
+
// Clear range hover preview so no highlight lingers after focus leaves the grid.
|
|
13998
|
+
this.clearRangePreview();
|
|
13999
|
+
}
|
|
14000
|
+
|
|
14001
|
+
/**
|
|
14002
|
+
* Computes the initial active date from data properties alone — no DOM required.
|
|
14003
|
+
* Priority:
|
|
14004
|
+
* 1. Selected date (dateFrom) if within range
|
|
14005
|
+
* 2. Today's date if not disabled (in-range and not blackout)
|
|
14006
|
+
* 3. First future non-disabled date (scans day-by-day from today up to 1 year)
|
|
14007
|
+
* 4. First previous non-disabled date (scans day-by-day from today up to 1 year)
|
|
14008
|
+
* 5. First enabled date in finite [min, max] range
|
|
14009
|
+
* 5b. First enabled date scanning forward from finite min (unbounded max)
|
|
14010
|
+
* 5c. First enabled date scanning backward from finite max (unbounded min)
|
|
14011
|
+
* 6. First in-range date (even if blackout) so focus can land somewhere
|
|
14012
|
+
* 7. Undefined — no valid target.
|
|
14013
|
+
*
|
|
14014
|
+
* @private
|
|
14015
|
+
* @param {Object} [options] - Optional settings.
|
|
14016
|
+
* @param {boolean} [options.skipDateFrom=false] - When true, skip the selected-date
|
|
14017
|
+
* shortcut (step 1). Used after month navigation so the active cell lands in the
|
|
14018
|
+
* newly visible month instead of jumping back to the selected date's month.
|
|
14019
|
+
* @returns {Number|undefined} Unix timestamp (seconds) of the date to activate, or undefined.
|
|
14020
|
+
*/
|
|
14021
|
+
computeActiveDate(options = {}) {
|
|
14022
|
+
const MAX_SCAN_DAYS = 366; // scan at most ~1 year in each direction
|
|
14023
|
+
|
|
14024
|
+
/**
|
|
14025
|
+
* Adds days to a timestamp using Date arithmetic to handle DST correctly.
|
|
14026
|
+
* Returns a local-midnight-aligned timestamp in seconds.
|
|
14027
|
+
* @param {Number} ts - Unix timestamp in seconds.
|
|
14028
|
+
* @param {Number} days - Number of days to add.
|
|
14029
|
+
* @returns {Number} The adjusted timestamp in seconds.
|
|
14030
|
+
*/
|
|
14031
|
+
const addDays = (ts, days) => {
|
|
14032
|
+
const date = new Date(ts * 1000);
|
|
14033
|
+
date.setDate(date.getDate() + days);
|
|
14034
|
+
date.setHours(0, 0, 0, 0);
|
|
14035
|
+
return Math.floor(date.getTime() / 1000);
|
|
14036
|
+
};
|
|
14037
|
+
|
|
14038
|
+
const rawMin = this.minDateObject?.getTime() / 1000;
|
|
14039
|
+
const rawMax = this.maxDateObject?.getTime() / 1000;
|
|
14040
|
+
|
|
14041
|
+
// When min/max are NaN (no minDate/maxDate configured), treat as unbounded.
|
|
14042
|
+
const minTs = Number.isFinite(rawMin) ? rawMin : -Infinity;
|
|
14043
|
+
const maxTs = Number.isFinite(rawMax) ? rawMax : Infinity;
|
|
14044
|
+
|
|
14045
|
+
// Build a Set of blackout timestamps for O(1) lookup.
|
|
14046
|
+
const blackoutSet = new Set(this.disabledDays.map((day) => parseInt(day, 10)));
|
|
14047
|
+
|
|
14048
|
+
// Also include ISO-format blackoutDates from the datepicker if available.
|
|
14049
|
+
// Parse YYYY-MM-DD as local date to avoid UTC shift issues.
|
|
14050
|
+
const isoBlackouts = this.datepicker?.blackoutDates;
|
|
14051
|
+
if (Array.isArray(isoBlackouts)) {
|
|
14052
|
+
for (const isoStr of isoBlackouts) {
|
|
14053
|
+
const parts = isoStr.split('-');
|
|
14054
|
+
const ts = Math.floor(new Date(parseInt(parts[0], 10), parseInt(parts[1], 10) - 1, parseInt(parts[2], 10)).getTime() / 1000);
|
|
14055
|
+
if (Number.isFinite(ts)) {
|
|
14056
|
+
blackoutSet.add(ts);
|
|
14057
|
+
}
|
|
14058
|
+
}
|
|
14059
|
+
}
|
|
14060
|
+
|
|
14061
|
+
/**
|
|
14062
|
+
* A date (unix timestamp in seconds, midnight-aligned) is "enabled" when
|
|
14063
|
+
* it is within [min, max] AND not a blackout day.
|
|
14064
|
+
* @param {Number} ts - Unix timestamp in seconds.
|
|
14065
|
+
* @returns {boolean} True if the date is enabled.
|
|
14066
|
+
*/
|
|
14067
|
+
const isEnabled = (ts) => ts >= minTs && ts <= maxTs && !blackoutSet.has(ts);
|
|
14068
|
+
|
|
14069
|
+
/**
|
|
14070
|
+
* A date is "in range" (focusable in the grid) when it is within [min, max].
|
|
14071
|
+
* Blackout dates are focusable but not selectable.
|
|
14072
|
+
* @param {Number} ts - Unix timestamp in seconds.
|
|
14073
|
+
* @returns {boolean} True if the date is in range.
|
|
14074
|
+
*/
|
|
14075
|
+
const isInRange = (ts) => ts >= minTs && ts <= maxTs;
|
|
14076
|
+
|
|
14077
|
+
// 1. Selected date — always valid target if within range (user chose it).
|
|
14078
|
+
// Skipped when called from month navigation so the active cell lands in
|
|
14079
|
+
// the newly visible month rather than the (possibly off-screen) selection.
|
|
14080
|
+
if (!options.skipDateFrom && this.dateFrom) {
|
|
14081
|
+
const parsedFrom = parseInt(this.dateFrom, 10);
|
|
14082
|
+
if (Number.isFinite(parsedFrom) && isInRange(parsedFrom)) {
|
|
14083
|
+
return parsedFrom;
|
|
14084
|
+
}
|
|
14085
|
+
}
|
|
14086
|
+
|
|
14087
|
+
// 2. Today's date (midnight-aligned) if enabled.
|
|
14088
|
+
const now = Math.floor(new Date().setHours(0, 0, 0, 0) / 1000);
|
|
14089
|
+
|
|
14090
|
+
// When centralDate is configured, prefer a date within the month(s) that
|
|
14091
|
+
// will actually be rendered. If today falls outside the visible range, an
|
|
14092
|
+
// active cell set to today would have no matching DOM element and keyboard
|
|
14093
|
+
// focus could not enter the calendar.
|
|
14094
|
+
|
|
14095
|
+
if (this.centralDateObject) {
|
|
14096
|
+
const centralMonth = this.centralDateObject.getMonth();
|
|
14097
|
+
const centralYear = this.centralDateObject.getFullYear();
|
|
14098
|
+
const todayDate = new Date(now * 1000);
|
|
14099
|
+
const todayMonth = todayDate.getMonth();
|
|
14100
|
+
const todayYear = todayDate.getFullYear();
|
|
14101
|
+
|
|
14102
|
+
// Today is outside the centralDate's month — scan for an enabled date
|
|
14103
|
+
// within the visible month instead.
|
|
14104
|
+
if (todayMonth !== centralMonth || todayYear !== centralYear) {
|
|
14105
|
+
const visibleStart = new Date(centralYear, centralMonth, 1);
|
|
14106
|
+
visibleStart.setHours(0, 0, 0, 0);
|
|
14107
|
+
const visibleEnd = new Date(centralYear, centralMonth + 1, 0); // last day of month
|
|
14108
|
+
visibleEnd.setHours(0, 0, 0, 0);
|
|
14109
|
+
const startTs = Math.floor(visibleStart.getTime() / 1000);
|
|
14110
|
+
const daysInMonth = visibleEnd.getDate();
|
|
14111
|
+
|
|
14112
|
+
for (let idx = 0; idx < daysInMonth; idx += 1) {
|
|
14113
|
+
const ts = addDays(startTs, idx);
|
|
14114
|
+
if (isEnabled(ts)) {
|
|
14115
|
+
return ts;
|
|
14116
|
+
}
|
|
14117
|
+
}
|
|
14118
|
+
|
|
14119
|
+
// No enabled date in the visible month — fall back to first in-range
|
|
14120
|
+
// date in the month so focus still lands on a focusable cell.
|
|
14121
|
+
for (let idx = 0; idx < daysInMonth; idx += 1) {
|
|
14122
|
+
const ts = addDays(startTs, idx);
|
|
14123
|
+
if (isInRange(ts)) {
|
|
14124
|
+
return ts;
|
|
14125
|
+
}
|
|
14126
|
+
}
|
|
14127
|
+
}
|
|
14128
|
+
}
|
|
14129
|
+
|
|
14130
|
+
if (isEnabled(now)) {
|
|
14131
|
+
return now;
|
|
14132
|
+
}
|
|
14133
|
+
|
|
14134
|
+
// When a centralDate is configured (or inferred), constrain the scan to the
|
|
14135
|
+
// rendered month(s) first so a single-month calendar does not pick a date
|
|
14136
|
+
// that has no DOM cell. Determine the visible range based on centralDate and
|
|
14137
|
+
// the number of rendered months.
|
|
14138
|
+
const renderedMonths = Math.max(this.numCalendars, 1);
|
|
14139
|
+
const visibleAnchor = this.centralDateObject ?? new Date(now * 1000);
|
|
14140
|
+
const visMonthStart = new Date(visibleAnchor.getFullYear(), visibleAnchor.getMonth(), 1);
|
|
14141
|
+
visMonthStart.setHours(0, 0, 0, 0);
|
|
14142
|
+
const visMonthEnd = new Date(visibleAnchor.getFullYear(), visibleAnchor.getMonth() + renderedMonths, 0);
|
|
14143
|
+
visMonthEnd.setHours(0, 0, 0, 0);
|
|
14144
|
+
const visStartTs = Math.floor(visMonthStart.getTime() / 1000);
|
|
14145
|
+
const visEndTs = Math.floor(visMonthEnd.getTime() / 1000);
|
|
14146
|
+
const visDays = Math.round((visEndTs - visStartTs) / 86400) + 1;
|
|
14147
|
+
|
|
14148
|
+
// Scan visible months for an enabled date.
|
|
14149
|
+
for (let idx = 0; idx < visDays; idx += 1) {
|
|
14150
|
+
const ts = addDays(visStartTs, idx);
|
|
14151
|
+
if (isEnabled(ts)) {
|
|
14152
|
+
return ts;
|
|
14153
|
+
}
|
|
14154
|
+
}
|
|
14155
|
+
|
|
14156
|
+
// No enabled date in visible months — try an in-range (focusable) date so
|
|
14157
|
+
// keyboard focus still has a tabindex="0" target.
|
|
14158
|
+
for (let idx = 0; idx < visDays; idx += 1) {
|
|
14159
|
+
const ts = addDays(visStartTs, idx);
|
|
14160
|
+
if (isInRange(ts)) {
|
|
14161
|
+
return ts;
|
|
14162
|
+
}
|
|
14163
|
+
}
|
|
14164
|
+
|
|
14165
|
+
// 3. First future enabled date (scan forward from tomorrow, capped by max and MAX_SCAN_DAYS).
|
|
14166
|
+
for (let idx = 1; idx <= MAX_SCAN_DAYS; idx += 1) {
|
|
14167
|
+
const ts = addDays(now, idx);
|
|
14168
|
+
if (Number.isFinite(maxTs) && ts > maxTs) {
|
|
14169
|
+
break;
|
|
14170
|
+
}
|
|
14171
|
+
if (isEnabled(ts)) {
|
|
14172
|
+
return ts;
|
|
14173
|
+
}
|
|
14174
|
+
}
|
|
14175
|
+
|
|
14176
|
+
// 4. First previous enabled date (scan backward from yesterday, capped by min and MAX_SCAN_DAYS).
|
|
14177
|
+
for (let idx = 1; idx <= MAX_SCAN_DAYS; idx += 1) {
|
|
14178
|
+
const ts = addDays(now, -idx);
|
|
14179
|
+
if (Number.isFinite(minTs) && ts < minTs) {
|
|
14180
|
+
break;
|
|
14181
|
+
}
|
|
14182
|
+
if (isEnabled(ts)) {
|
|
14183
|
+
return ts;
|
|
14184
|
+
}
|
|
14185
|
+
}
|
|
14186
|
+
|
|
14187
|
+
// 5. If scans missed (e.g. min/max range is far from today), fall back to
|
|
14188
|
+
// the first enabled date in the [min, max] range.
|
|
14189
|
+
if (Number.isFinite(minTs) && Number.isFinite(maxTs)) {
|
|
14190
|
+
let ts = minTs;
|
|
14191
|
+
for (let idx = 0; ts <= maxTs; idx += 1) {
|
|
14192
|
+
if (isEnabled(ts)) {
|
|
14193
|
+
return ts;
|
|
14194
|
+
}
|
|
14195
|
+
ts = addDays(minTs, idx + 1);
|
|
14196
|
+
}
|
|
14197
|
+
}
|
|
14198
|
+
|
|
14199
|
+
// 5b. Finite min with unbounded max (e.g. minDate far in the future):
|
|
14200
|
+
// scan forward from min for up to MAX_SCAN_DAYS.
|
|
14201
|
+
if (Number.isFinite(minTs) && !Number.isFinite(maxTs)) {
|
|
14202
|
+
for (let idx = 0; idx <= MAX_SCAN_DAYS; idx += 1) {
|
|
14203
|
+
const ts = addDays(minTs, idx);
|
|
14204
|
+
if (isEnabled(ts)) {
|
|
14205
|
+
return ts;
|
|
14206
|
+
}
|
|
14207
|
+
}
|
|
14208
|
+
}
|
|
14209
|
+
|
|
14210
|
+
// 5c. Unbounded min with a finite max far in the past (e.g. birth-date picker):
|
|
14211
|
+
// scan backward from max for up to MAX_SCAN_DAYS.
|
|
14212
|
+
if (!Number.isFinite(minTs) && Number.isFinite(maxTs)) {
|
|
14213
|
+
for (let idx = 0; idx <= MAX_SCAN_DAYS; idx += 1) {
|
|
14214
|
+
const ts = addDays(maxTs, -idx);
|
|
14215
|
+
if (isEnabled(ts)) {
|
|
14216
|
+
return ts;
|
|
14217
|
+
}
|
|
14218
|
+
}
|
|
14219
|
+
}
|
|
14220
|
+
|
|
14221
|
+
// 6. All dates are blackout — fall back to the first in-range date so focus
|
|
14222
|
+
// still lands on a focusable (but not selectable) cell.
|
|
14223
|
+
if (Number.isFinite(minTs) && isInRange(minTs)) {
|
|
14224
|
+
return minTs;
|
|
14225
|
+
}
|
|
14226
|
+
if (isInRange(now)) {
|
|
14227
|
+
return now;
|
|
14228
|
+
}
|
|
14229
|
+
|
|
14230
|
+
return undefined;
|
|
14231
|
+
}
|
|
14232
|
+
|
|
14233
|
+
/**
|
|
14234
|
+
* Checks if a target date (unix seconds) is within the configured [min, max] range.
|
|
14235
|
+
* Returns false if the date falls outside the range, preventing navigation
|
|
14236
|
+
* to months where all dates are disabled.
|
|
14237
|
+
* @private
|
|
14238
|
+
* @param {Number} targetTs - Unix timestamp in seconds.
|
|
14239
|
+
* @returns {Boolean} True if the date is within range.
|
|
14240
|
+
*/
|
|
14241
|
+
isDateInRange(targetTs) {
|
|
14242
|
+
const rawMin = this.minDateObject?.getTime() / 1000;
|
|
14243
|
+
const rawMax = this.maxDateObject?.getTime() / 1000;
|
|
14244
|
+
if (Number.isFinite(rawMin) && targetTs < rawMin) {
|
|
14245
|
+
return false;
|
|
14246
|
+
}
|
|
14247
|
+
if (Number.isFinite(rawMax) && targetTs > rawMax) {
|
|
14248
|
+
return false;
|
|
14249
|
+
}
|
|
14250
|
+
return true;
|
|
14251
|
+
}
|
|
14252
|
+
|
|
14253
|
+
/**
|
|
14254
|
+
* Handles arrow key navigation on the calendar grid wrapper.
|
|
14255
|
+
* Focus stays on the grid wrapper; only ariaActiveDescendantElement
|
|
14256
|
+
* and the visual active-cell indicator change.
|
|
14257
|
+
* @private
|
|
14258
|
+
* @param {KeyboardEvent} event - The keyboard event.
|
|
14259
|
+
* @returns {void}
|
|
14260
|
+
*/
|
|
14261
|
+
handleGridKeyDown(event) {
|
|
14262
|
+
const { key } = event;
|
|
14263
|
+
const actionKeys = [
|
|
14264
|
+
'ArrowRight',
|
|
14265
|
+
'ArrowLeft',
|
|
14266
|
+
'ArrowDown',
|
|
14267
|
+
'ArrowUp',
|
|
14268
|
+
'Enter',
|
|
14269
|
+
' '
|
|
14270
|
+
];
|
|
14271
|
+
|
|
14272
|
+
if (!actionKeys.includes(key)) {
|
|
14273
|
+
return;
|
|
14274
|
+
}
|
|
14275
|
+
|
|
14276
|
+
event.preventDefault();
|
|
14277
|
+
|
|
14278
|
+
const allCells = this.getAllFocusableCells();
|
|
14279
|
+
if (allCells.length === 0) {
|
|
14280
|
+
return;
|
|
14281
|
+
}
|
|
14282
|
+
|
|
14283
|
+
const activeCell = allCells.find((cell) => cell.active);
|
|
14284
|
+
if (!activeCell) {
|
|
14285
|
+
return;
|
|
14286
|
+
}
|
|
14287
|
+
|
|
14288
|
+
// Handle Enter/Space to select the active cell
|
|
14289
|
+
if (key === 'Enter' || key === ' ') {
|
|
14290
|
+
activeCell.handleTap();
|
|
14291
|
+
return;
|
|
14292
|
+
}
|
|
14293
|
+
|
|
14294
|
+
const activeIndex = allCells.indexOf(activeCell);
|
|
14295
|
+
|
|
14296
|
+
if (key === 'ArrowRight' || key === 'ArrowLeft') {
|
|
14297
|
+
const direction = key === 'ArrowRight' ? 1 : -1;
|
|
14298
|
+
const targetIndex = activeIndex + direction;
|
|
14299
|
+
|
|
14300
|
+
if (targetIndex >= 0 && targetIndex < allCells.length) {
|
|
14301
|
+
// Target cell exists in rendered months
|
|
14302
|
+
this.setActiveCell(allCells[targetIndex].day.date);
|
|
14303
|
+
this.scrollToActiveCell();
|
|
14304
|
+
// Dispatch focus event for the cell so live region + range preview update
|
|
14305
|
+
this.handleCellFocused({ detail: { date: allCells[targetIndex].day.date } });
|
|
14306
|
+
} else {
|
|
14307
|
+
// At boundary — need to navigate to next/prev month
|
|
14308
|
+
const navDir = direction === 1 ? 'next' : 'prev';
|
|
14309
|
+
const targetDate = new Date(activeCell.day.date * 1000);
|
|
14310
|
+
targetDate.setDate(targetDate.getDate() + direction);
|
|
14311
|
+
targetDate.setHours(0, 0, 0, 0);
|
|
14312
|
+
const targetTs = Math.floor(targetDate.getTime() / 1000);
|
|
14313
|
+
|
|
14314
|
+
if (this.isDateInRange(targetTs) && ((navDir === 'next' && this.showNextMonthBtn) || (navDir === 'prev' && this.showPrevMonthBtn))) { // eslint-disable-line no-extra-parens
|
|
14315
|
+
|
|
14316
|
+
if (navDir === 'next') {
|
|
14317
|
+
this.handleNextMonth({ skipActiveUpdate: true });
|
|
14318
|
+
} else {
|
|
14319
|
+
this.handlePrevMonth({ skipActiveUpdate: true });
|
|
14320
|
+
}
|
|
14321
|
+
requestAnimationFrame(() => {
|
|
14322
|
+
requestAnimationFrame(() => {
|
|
14323
|
+
const cells = this.getAllFocusableCells();
|
|
14324
|
+
const target = cells.find((cell) => cell.day && cell.day.date === targetTs);
|
|
14325
|
+
if (target) {
|
|
14326
|
+
this.setActiveCell(target.day.date);
|
|
14327
|
+
this.handleCellFocused({ detail: { date: target.day.date } });
|
|
14328
|
+
} else if (cells.length > 0) {
|
|
14329
|
+
const fallback = navDir === 'next' ? cells[cells.length - 1] : cells[0];
|
|
14330
|
+
this.setActiveCell(fallback.day.date);
|
|
14331
|
+
this.handleCellFocused({ detail: { date: fallback.day.date } });
|
|
14332
|
+
}
|
|
14333
|
+
// Re-focus grid wrapper after month change re-render
|
|
14334
|
+
this.focusActiveCell();
|
|
14335
|
+
});
|
|
14336
|
+
});
|
|
14337
|
+
}
|
|
14338
|
+
}
|
|
14339
|
+
} else if (key === 'ArrowDown' || key === 'ArrowUp') {
|
|
14340
|
+
const increment = key === 'ArrowDown' ? 7 : -7;
|
|
14341
|
+
const currentDate = new Date(activeCell.day.date * 1000);
|
|
14342
|
+
currentDate.setDate(currentDate.getDate() + increment);
|
|
14343
|
+
currentDate.setHours(0, 0, 0, 0);
|
|
14344
|
+
const targetDate = Math.floor(currentDate.getTime() / 1000);
|
|
14345
|
+
|
|
14346
|
+
const targetCell = allCells.find((cell) => cell.day && cell.day.date === targetDate);
|
|
14347
|
+
|
|
14348
|
+
if (targetCell) {
|
|
14349
|
+
this.setActiveCell(targetCell.day.date);
|
|
14350
|
+
this.scrollToActiveCell();
|
|
14351
|
+
this.handleCellFocused({ detail: { date: targetCell.day.date } });
|
|
14352
|
+
} else if (this.isDateInRange(targetDate)) {
|
|
14353
|
+
// Target might be in an unrendered month
|
|
14354
|
+
const navDirection = key === 'ArrowDown' ? 'next' : 'prev';
|
|
14355
|
+
if ((navDirection === 'next' && this.showNextMonthBtn) || (navDirection === 'prev' && this.showPrevMonthBtn)) { // eslint-disable-line no-extra-parens
|
|
14356
|
+
if (navDirection === 'next') {
|
|
14357
|
+
this.handleNextMonth({ skipActiveUpdate: true });
|
|
14358
|
+
} else {
|
|
14359
|
+
this.handlePrevMonth({ skipActiveUpdate: true });
|
|
14360
|
+
}
|
|
14361
|
+
requestAnimationFrame(() => {
|
|
14362
|
+
requestAnimationFrame(() => {
|
|
14363
|
+
const cells = this.getAllFocusableCells();
|
|
14364
|
+
const target = cells.find((cell) => cell.day && cell.day.date === targetDate);
|
|
14365
|
+
if (target) {
|
|
14366
|
+
this.setActiveCell(target.day.date);
|
|
14367
|
+
this.handleCellFocused({ detail: { date: target.day.date } });
|
|
14368
|
+
} else if (cells.length > 0) {
|
|
14369
|
+
let nearest = null;
|
|
14370
|
+
|
|
14371
|
+
if (navDirection === 'next') {
|
|
14372
|
+
[nearest] = cells;
|
|
14373
|
+
} else {
|
|
14374
|
+
nearest = cells[cells.length - 1];
|
|
14375
|
+
}
|
|
14376
|
+
this.setActiveCell(nearest.day.date);
|
|
14377
|
+
this.handleCellFocused({ detail: { date: nearest.day.date } });
|
|
14378
|
+
}
|
|
14379
|
+
this.focusActiveCell();
|
|
14380
|
+
});
|
|
14381
|
+
});
|
|
14382
|
+
}
|
|
14383
|
+
}
|
|
14384
|
+
}
|
|
14385
|
+
}
|
|
14386
|
+
|
|
14387
|
+
/**
|
|
14388
|
+
* Handles cross-month boundary navigation events from month components.
|
|
14389
|
+
* @private
|
|
14390
|
+
* @param {CustomEvent} event - The boundary event with direction and source date info.
|
|
14391
|
+
* @returns {void}
|
|
14392
|
+
*/
|
|
14393
|
+
handleMonthBoundary(event) {
|
|
14394
|
+
const { direction, fromDate, key } = event.detail;
|
|
14395
|
+
|
|
14396
|
+
if (key === 'ArrowRight' || key === 'ArrowLeft') {
|
|
14397
|
+
// Linear navigation: find adjacent focusable cell across months
|
|
14398
|
+
const allCells = this.getAllFocusableCells();
|
|
14399
|
+
const currentIndex = allCells.findIndex((cell) => cell.day && cell.day.date === fromDate);
|
|
14400
|
+
|
|
14401
|
+
if (currentIndex === -1) {
|
|
14402
|
+
return;
|
|
14403
|
+
}
|
|
14404
|
+
|
|
14405
|
+
let targetIndex = -1;
|
|
14406
|
+
if (direction === 'next') {
|
|
14407
|
+
targetIndex = currentIndex + 1;
|
|
14408
|
+
}
|
|
14409
|
+
|
|
14410
|
+
if (targetIndex >= 0 && targetIndex < allCells.length) {
|
|
14411
|
+
const targetCell = allCells[targetIndex];
|
|
14412
|
+
this.setActiveCell(targetCell.day.date);
|
|
14413
|
+
this.scrollToActiveCell();
|
|
14414
|
+
this.focusActiveCell();
|
|
14415
|
+
} else if (direction === 'next' && this.showNextMonthBtn) {
|
|
14416
|
+
// Navigate to next month and focus the computed next date.
|
|
14417
|
+
// Using the target date (fromDate + 1 day) instead of cells[0]
|
|
14418
|
+
// avoids jumping backward in range datepickers where cells[0]
|
|
14419
|
+
// belongs to the previous (still-rendered) month.
|
|
14420
|
+
const nextDate = new Date(fromDate * 1000);
|
|
14421
|
+
nextDate.setDate(nextDate.getDate() + 1);
|
|
14422
|
+
nextDate.setHours(0, 0, 0, 0);
|
|
14423
|
+
const nextTs = Math.floor(nextDate.getTime() / 1000);
|
|
14424
|
+
|
|
14425
|
+
if (!this.isDateInRange(nextTs)) {
|
|
14426
|
+
return;
|
|
14427
|
+
}
|
|
14428
|
+
|
|
14429
|
+
this.handleNextMonth({ skipActiveUpdate: true });
|
|
14430
|
+
requestAnimationFrame(() => {
|
|
14431
|
+
requestAnimationFrame(() => {
|
|
14432
|
+
const cells = this.getAllFocusableCells();
|
|
14433
|
+
const target = cells.find((cell) => cell.day && cell.day.date === nextTs);
|
|
14434
|
+
if (target) {
|
|
14435
|
+
this.setActiveCell(target.day.date);
|
|
14436
|
+
this.focusActiveCell();
|
|
14437
|
+
} else if (cells.length > 0) {
|
|
14438
|
+
// Fallback: first cell of the last rendered month
|
|
14439
|
+
this.setActiveCell(cells[cells.length - 1].day.date);
|
|
14440
|
+
this.focusActiveCell();
|
|
14441
|
+
}
|
|
14442
|
+
});
|
|
14443
|
+
});
|
|
14444
|
+
} else if (direction === 'prev' && this.showPrevMonthBtn) {
|
|
14445
|
+
// Navigate to previous month and focus the computed previous date.
|
|
14446
|
+
const prevDate = new Date(fromDate * 1000);
|
|
14447
|
+
prevDate.setDate(prevDate.getDate() - 1);
|
|
14448
|
+
prevDate.setHours(0, 0, 0, 0);
|
|
14449
|
+
const prevTs = Math.floor(prevDate.getTime() / 1000);
|
|
14450
|
+
|
|
14451
|
+
if (!this.isDateInRange(prevTs)) {
|
|
14452
|
+
return;
|
|
14453
|
+
}
|
|
14454
|
+
|
|
14455
|
+
this.handlePrevMonth({ skipActiveUpdate: true });
|
|
14456
|
+
requestAnimationFrame(() => {
|
|
14457
|
+
requestAnimationFrame(() => {
|
|
14458
|
+
const cells = this.getAllFocusableCells();
|
|
14459
|
+
const target = cells.find((cell) => cell.day && cell.day.date === prevTs);
|
|
14460
|
+
if (target) {
|
|
14461
|
+
this.setActiveCell(target.day.date);
|
|
14462
|
+
this.focusActiveCell();
|
|
14463
|
+
} else if (cells.length > 0) {
|
|
14464
|
+
// Fallback: last cell of the first rendered month
|
|
14465
|
+
this.setActiveCell(cells[0].day.date);
|
|
14466
|
+
this.focusActiveCell();
|
|
14467
|
+
}
|
|
14468
|
+
});
|
|
14469
|
+
});
|
|
14470
|
+
}
|
|
14471
|
+
} else if (key === 'ArrowDown' || key === 'ArrowUp') {
|
|
14472
|
+
// Vertical navigation: find same day-of-week +/- 7 days
|
|
14473
|
+
// Use Date arithmetic instead of fixed seconds to handle DST correctly
|
|
14474
|
+
const increment = key === 'ArrowDown' ? 7 : -7;
|
|
14475
|
+
const currentDate = new Date(fromDate * 1000);
|
|
14476
|
+
currentDate.setDate(currentDate.getDate() + increment);
|
|
14477
|
+
currentDate.setHours(0, 0, 0, 0);
|
|
14478
|
+
const targetDate = Math.floor(currentDate.getTime() / 1000);
|
|
14479
|
+
|
|
14480
|
+
const allCells = this.getAllFocusableCells();
|
|
14481
|
+
const targetCell = allCells.find((cell) => cell.day && cell.day.date === targetDate);
|
|
14482
|
+
|
|
14483
|
+
if (targetCell) {
|
|
14484
|
+
this.setActiveCell(targetCell.day.date);
|
|
14485
|
+
this.scrollToActiveCell();
|
|
14486
|
+
this.focusActiveCell();
|
|
14487
|
+
} else if (this.isDateInRange(targetDate)) {
|
|
14488
|
+
// Target might be in an unrendered month, navigate there
|
|
14489
|
+
const navDirection = key === 'ArrowDown' ? 'next' : 'prev';
|
|
14490
|
+
if ((navDirection === 'next' && this.showNextMonthBtn) || (navDirection === 'prev' && this.showPrevMonthBtn)) { // eslint-disable-line no-extra-parens
|
|
14491
|
+
if (navDirection === 'next') {
|
|
14492
|
+
this.handleNextMonth({ skipActiveUpdate: true });
|
|
14493
|
+
} else {
|
|
14494
|
+
this.handlePrevMonth({ skipActiveUpdate: true });
|
|
14495
|
+
}
|
|
14496
|
+
requestAnimationFrame(() => {
|
|
14497
|
+
requestAnimationFrame(() => {
|
|
14498
|
+
const cells = this.getAllFocusableCells();
|
|
14499
|
+
const target = cells.find((cell) => cell.day && cell.day.date === targetDate);
|
|
14500
|
+
if (target) {
|
|
14501
|
+
this.setActiveCell(target.day.date);
|
|
14502
|
+
this.focusActiveCell();
|
|
14503
|
+
} else if (cells.length > 0) {
|
|
14504
|
+
// Clamp to nearest focusable cell
|
|
14505
|
+
const nearest = navDirection === 'next' ? cells[0] : cells[cells.length - 1];
|
|
14506
|
+
this.setActiveCell(nearest.day.date);
|
|
14507
|
+
this.focusActiveCell();
|
|
14508
|
+
}
|
|
14509
|
+
});
|
|
14510
|
+
});
|
|
14511
|
+
}
|
|
14512
|
+
}
|
|
14513
|
+
}
|
|
14514
|
+
}
|
|
14515
|
+
|
|
14516
|
+
/**
|
|
14517
|
+
* Handles cell activation events from month components.
|
|
14518
|
+
* @private
|
|
14519
|
+
* @param {CustomEvent} event - The activation event with target date.
|
|
14520
|
+
* @returns {void}
|
|
14521
|
+
*/
|
|
14522
|
+
handleCellActivate(event) {
|
|
14523
|
+
const { date } = event.detail;
|
|
14524
|
+
this.setActiveCell(date);
|
|
14525
|
+
|
|
14526
|
+
// Don't call focusActiveCell() here. The tap/click already placed
|
|
14527
|
+
// focus on the cell button, and moving it to #calendarGrid would
|
|
14528
|
+
// trigger focusout on the button, closing any open popover on the
|
|
14529
|
+
// cell. Keyboard events are composed and still bubble through
|
|
14530
|
+
// shadow DOM boundaries to the grid's @keydown handler, so
|
|
14531
|
+
// subsequent keyboard navigation continues to work.
|
|
14532
|
+
}
|
|
14533
|
+
|
|
14534
|
+
/**
|
|
14535
|
+
* Handles focus events from calendar cells.
|
|
14536
|
+
* Updates the live region with an SR announcement and triggers
|
|
14537
|
+
* the imperative range preview if applicable.
|
|
14538
|
+
* @private
|
|
14539
|
+
* @param {CustomEvent} event - The calendar-cell-focused event.
|
|
14540
|
+
* @returns {void}
|
|
14541
|
+
*/
|
|
14542
|
+
handleCellFocused(event) {
|
|
14543
|
+
const { date } = event.detail;
|
|
14544
|
+
if (date === null) {
|
|
14545
|
+
return;
|
|
14546
|
+
}
|
|
14547
|
+
|
|
14548
|
+
// With aria-activedescendant, the button no longer receives native focus,
|
|
14549
|
+
// so we use the debounced live region for the full context announcement.
|
|
14550
|
+
const announcement = this.buildFocusAnnouncement(date);
|
|
14551
|
+
this.announceFocusDebounced(announcement);
|
|
14552
|
+
|
|
14553
|
+
// Update the range preview imperatively if in range-preview mode.
|
|
14554
|
+
this.updateRangePreview(date);
|
|
14555
|
+
}
|
|
14556
|
+
|
|
14557
|
+
/**
|
|
14558
|
+
* Builds a full SR announcement string for a focused cell date.
|
|
14559
|
+
* Includes the localized date, range position, popover content,
|
|
14560
|
+
* and blackout status.
|
|
14561
|
+
* @private
|
|
14562
|
+
* @param {Number} date - Unix timestamp (seconds) of the focused cell.
|
|
14563
|
+
* @returns {String} The announcement string.
|
|
14564
|
+
*/
|
|
14565
|
+
buildFocusAnnouncement(date) {
|
|
14566
|
+
let label = this.formatAnnouncementDate(date);
|
|
14567
|
+
|
|
14568
|
+
// Append date slot content (e.g. prices) if present.
|
|
14569
|
+
const dateObj = new Date(date * 1000);
|
|
14570
|
+
const mm = String(dateObj.getMonth() + 1).padStart(2, '0');
|
|
14571
|
+
const dd = String(dateObj.getDate()).padStart(2, '0');
|
|
14572
|
+
const yyyy = dateObj.getFullYear();
|
|
14573
|
+
const dateStr = `${yyyy}_${mm}_${dd}`;
|
|
14574
|
+
const dateSlotEl = this.datepicker?.querySelector(`[slot="date_${dateStr}"]`);
|
|
14575
|
+
if (dateSlotEl) {
|
|
14576
|
+
const text = dateSlotEl.innerText?.trim();
|
|
14577
|
+
if (text) {
|
|
14578
|
+
label += `, ${text}`;
|
|
14579
|
+
}
|
|
14580
|
+
}
|
|
14581
|
+
|
|
14582
|
+
// Append popover content if present.
|
|
14583
|
+
const popoverEl = this.datepicker?.querySelector(`[slot="popover_${dateStr}"]`);
|
|
14584
|
+
if (popoverEl) {
|
|
14585
|
+
const text = popoverEl.innerText?.trim();
|
|
14586
|
+
if (text) {
|
|
14587
|
+
label += `, ${text}`;
|
|
14588
|
+
}
|
|
14589
|
+
}
|
|
14590
|
+
|
|
14591
|
+
// Append range position context.
|
|
14592
|
+
if (this.datepicker?.hasAttribute('range')) {
|
|
14593
|
+
const rangeLabel = this.getRangePositionLabel(date);
|
|
14594
|
+
if (rangeLabel) {
|
|
14595
|
+
label += `, ${rangeLabel}`;
|
|
14596
|
+
}
|
|
14597
|
+
}
|
|
14598
|
+
|
|
14599
|
+
// Append blackout label.
|
|
14600
|
+
if (this.isDateBlackout(date)) {
|
|
14601
|
+
label += `, ${this.datepicker?.blackoutLabel || 'unavailable'}`;
|
|
14602
|
+
}
|
|
14603
|
+
|
|
14604
|
+
return label;
|
|
14605
|
+
}
|
|
14606
|
+
|
|
14607
|
+
/**
|
|
14608
|
+
* Determines the range position label for a given date.
|
|
14609
|
+
* @private
|
|
14610
|
+
* @param {Number} date - Unix timestamp (seconds).
|
|
14611
|
+
* @returns {String|null} The range position label, or null.
|
|
14612
|
+
*/
|
|
14613
|
+
getRangePositionLabel(date) {
|
|
14614
|
+
const parsedFrom = Number.parseInt(this.dateFrom, 10);
|
|
14615
|
+
if (!Number.isFinite(parsedFrom)) {
|
|
14616
|
+
return null;
|
|
14617
|
+
}
|
|
14618
|
+
|
|
14619
|
+
const departTs = startOfDay$2(parsedFrom * 1000) / 1000;
|
|
14620
|
+
const parsedTo = Number.parseInt(this.dateTo, 10);
|
|
14621
|
+
const hasTo = Number.isFinite(parsedTo);
|
|
14622
|
+
const returnTs = hasTo ? startOfDay$2(parsedTo * 1000) / 1000 : null;
|
|
14623
|
+
|
|
14624
|
+
if (date === departTs) {
|
|
14625
|
+
return this.datepicker.rangeLabelStart || 'range start';
|
|
14626
|
+
}
|
|
14627
|
+
if (hasTo && date === returnTs) {
|
|
14628
|
+
return this.datepicker.rangeLabelEnd || 'range end';
|
|
14629
|
+
}
|
|
14630
|
+
if (date < departTs) {
|
|
14631
|
+
return this.datepicker.rangeLabelBeforeRange || 'before range';
|
|
14632
|
+
}
|
|
14633
|
+
if (hasTo && date > departTs && date < returnTs) {
|
|
14634
|
+
return this.datepicker.rangeLabelInRange || 'in range';
|
|
14635
|
+
}
|
|
14636
|
+
return this.datepicker.rangeLabelAfterRange || 'after range';
|
|
14637
|
+
}
|
|
14638
|
+
|
|
14639
|
+
/**
|
|
14640
|
+
* Checks whether a given date is a blackout date.
|
|
14641
|
+
* @private
|
|
14642
|
+
* @param {Number} dateTs - Unix timestamp (seconds).
|
|
14643
|
+
* @returns {Boolean} True if the date is blacked out.
|
|
14644
|
+
*/
|
|
14645
|
+
isDateBlackout(dateTs) {
|
|
14646
|
+
// Check legacy disabledDays.
|
|
14647
|
+
if (Array.isArray(this.disabledDays) && this.disabledDays.length > 0) {
|
|
14648
|
+
if (this.disabledDays.findIndex((day) => parseInt(day, 10) === dateTs) !== -1) {
|
|
14649
|
+
return true;
|
|
14650
|
+
}
|
|
14651
|
+
}
|
|
14652
|
+
|
|
14653
|
+
// Check ISO blackoutDates.
|
|
14654
|
+
const blackoutDates = this.datepicker?.blackoutDates;
|
|
14655
|
+
if (Array.isArray(blackoutDates) && blackoutDates.length > 0) {
|
|
14656
|
+
const date = new Date(dateTs * 1000);
|
|
14657
|
+
const yyyy = date.getFullYear();
|
|
14658
|
+
const mm = String(date.getMonth() + 1).padStart(2, '0');
|
|
14659
|
+
const dd = String(date.getDate()).padStart(2, '0');
|
|
14660
|
+
if (blackoutDates.includes(`${yyyy}-${mm}-${dd}`)) {
|
|
14661
|
+
return true;
|
|
14662
|
+
}
|
|
14663
|
+
}
|
|
14664
|
+
|
|
14665
|
+
return false;
|
|
14666
|
+
}
|
|
14667
|
+
|
|
14668
|
+
/**
|
|
14669
|
+
* Updates the range preview classes imperatively across all cells.
|
|
14670
|
+
* Only active when in range mode with dateFrom set and dateTo not yet set.
|
|
14671
|
+
* @private
|
|
14672
|
+
* @param {Number} hoveredDate - Unix timestamp of the hovered/focused date.
|
|
14673
|
+
* @returns {void}
|
|
14674
|
+
*/
|
|
14675
|
+
updateRangePreview(hoveredDate) {
|
|
14676
|
+
if (this.noRange || !this.dateFrom || this.dateTo) {
|
|
14677
|
+
return;
|
|
14678
|
+
}
|
|
14679
|
+
|
|
14680
|
+
const parsedDateFrom = parseInt(this.dateFrom, 10);
|
|
14681
|
+
const allCells = this.getAllFocusableCells();
|
|
14682
|
+
|
|
14683
|
+
allCells.forEach((cell) => {
|
|
14684
|
+
cell.updateRangePreviewClasses(hoveredDate, parsedDateFrom);
|
|
14685
|
+
});
|
|
14686
|
+
}
|
|
14687
|
+
|
|
14688
|
+
/**
|
|
14689
|
+
* Clears range preview classes from all cells.
|
|
14690
|
+
* @private
|
|
14691
|
+
* @param {Object} [options] - Optional settings.
|
|
14692
|
+
* @param {boolean} [options.force=false] - When true, clears classes even
|
|
14693
|
+
* when both dateFrom and dateTo are set. Used by month nav handlers
|
|
14694
|
+
* since the subsequent re-render re-applies classMap-managed classes,
|
|
14695
|
+
* while `lastHoveredDate` (not in classMap) would otherwise persist.
|
|
14696
|
+
* @returns {void}
|
|
14697
|
+
*/
|
|
14698
|
+
clearRangePreview(options) {
|
|
14699
|
+
const opts = options instanceof Event ? {} : options || {};
|
|
14700
|
+
if (!opts.force && this.dateFrom && this.dateTo) {
|
|
14701
|
+
return;
|
|
14702
|
+
}
|
|
14703
|
+
|
|
14704
|
+
const allCells = this.getAllFocusableCells();
|
|
14705
|
+
allCells.forEach((cell) => {
|
|
14706
|
+
cell.clearRangePreviewClasses();
|
|
14707
|
+
});
|
|
14708
|
+
}
|
|
14709
|
+
|
|
14710
|
+
/**
|
|
14711
|
+
* Overrides the base class handler to prevent setting `this.hoveredDate`
|
|
14712
|
+
* as a reactive property. Instead, handles the range preview imperatively.
|
|
14713
|
+
* @private
|
|
14714
|
+
* @param {CustomEvent} event - The hovered-date-changed event from a month.
|
|
14715
|
+
* @returns {void}
|
|
14716
|
+
*/
|
|
14717
|
+
hoveredDateChanged(event) {
|
|
14718
|
+
const hoveredDate = event.detail.value;
|
|
14719
|
+
this.updateRangePreview(hoveredDate);
|
|
14720
|
+
}
|
|
14721
|
+
|
|
14722
|
+
/**
|
|
14723
|
+
* Scrolls the calendar to ensure the month containing the active cell is visible.
|
|
14724
|
+
* @private
|
|
14725
|
+
* @returns {void}
|
|
14726
|
+
*/
|
|
14727
|
+
scrollToActiveCell() {
|
|
14728
|
+
if (this.activeCellDate === null || this.activeCellDate === undefined) {
|
|
14729
|
+
return;
|
|
14730
|
+
}
|
|
14731
|
+
|
|
14732
|
+
const date = new Date(this.activeCellDate * 1000);
|
|
14733
|
+
const month = date.getMonth() + 1;
|
|
14734
|
+
const year = date.getFullYear();
|
|
14735
|
+
const selector = `#month-${month}-${year}`;
|
|
14736
|
+
const monthElem = this.shadowRoot.querySelector(selector);
|
|
14737
|
+
|
|
14738
|
+
if (monthElem) {
|
|
14739
|
+
const prefersReducedMotion = window.matchMedia('(prefers-reduced-motion: reduce)').matches;
|
|
14740
|
+
monthElem.scrollIntoView({ block: 'nearest',
|
|
14741
|
+
behavior: prefersReducedMotion ? 'instant' : 'smooth' });
|
|
14742
|
+
}
|
|
14743
|
+
}
|
|
14744
|
+
|
|
14745
|
+
/**
|
|
14746
|
+
* Returns (and lazily creates) an aria-live region inside the dropdown's
|
|
14747
|
+
* <dialog> element. This placement is critical for two reasons:
|
|
14748
|
+
*
|
|
14749
|
+
* 1. Inside the dialog's accessible scope — dialog.showModal() makes
|
|
14750
|
+
* everything outside the top-layer dialog inert, and desktop modal
|
|
14751
|
+
* mode uses _setPageInert() on document.body siblings. A live region
|
|
14752
|
+
* on document.body would be invisible to screen readers in both cases.
|
|
14753
|
+
*
|
|
14754
|
+
* 2. Not nested in shadow DOM — Chrome inconsistently observes aria-live
|
|
14755
|
+
* mutations inside shadow DOM across machines and versions. The dialog
|
|
14756
|
+
* element is only one shadow root deep (the dropdown bib's shadow DOM),
|
|
14757
|
+
* which Chrome handles reliably. The calendar's own shadow DOM (nested
|
|
14758
|
+
* inside the bib via slotting) is two+ levels deep and unreliable.
|
|
14759
|
+
*
|
|
14760
|
+
* @private
|
|
14761
|
+
* @returns {HTMLElement} The live region element.
|
|
14762
|
+
*/
|
|
14763
|
+
getOrCreateLiveRegion() {
|
|
14764
|
+
if (this._liveRegion && this._liveRegion.isConnected) {
|
|
14765
|
+
return this._liveRegion;
|
|
14766
|
+
}
|
|
14767
|
+
|
|
14768
|
+
// Access the dialog element inside the dropdown bib's shadow DOM.
|
|
14769
|
+
const dialog = this.dropdown?.bibContent?.shadowRoot?.querySelector('dialog');
|
|
14770
|
+
if (!dialog) {
|
|
14771
|
+
return null;
|
|
14772
|
+
}
|
|
14773
|
+
|
|
14774
|
+
// Check if we already created one for this calendar instance.
|
|
14775
|
+
const regionId = `auro-calendar-live-${this._calendarInstanceId}`;
|
|
14776
|
+
const existing = dialog.querySelector(`#${regionId}`);
|
|
14777
|
+
if (existing) {
|
|
14778
|
+
this._liveRegion = existing;
|
|
14779
|
+
return existing;
|
|
14780
|
+
}
|
|
14781
|
+
|
|
14782
|
+
const el = document.createElement('div');
|
|
14783
|
+
el.id = regionId;
|
|
14784
|
+
el.setAttribute('aria-live', 'assertive');
|
|
14785
|
+
el.setAttribute('aria-atomic', 'true');
|
|
14786
|
+
el.style.cssText = 'position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;';
|
|
14787
|
+
dialog.appendChild(el);
|
|
14788
|
+
|
|
14789
|
+
this._liveRegion = el;
|
|
14790
|
+
return el;
|
|
14791
|
+
}
|
|
14792
|
+
|
|
14793
|
+
/**
|
|
14794
|
+
* Removes the live region when this calendar is disconnected.
|
|
14795
|
+
* @private
|
|
14796
|
+
* @returns {void}
|
|
14797
|
+
*/
|
|
14798
|
+
disconnectedCallback() {
|
|
14799
|
+
super.disconnectedCallback();
|
|
14800
|
+
|
|
14801
|
+
// Cancel any pending announcements so they don't fire after teardown.
|
|
14802
|
+
if (this._announceRafId) {
|
|
14803
|
+
cancelAnimationFrame(this._announceRafId);
|
|
14804
|
+
this._announceRafId = null;
|
|
14805
|
+
}
|
|
14806
|
+
if (this._focusAnnounceTimer) {
|
|
14807
|
+
clearTimeout(this._focusAnnounceTimer);
|
|
14808
|
+
this._focusAnnounceTimer = null;
|
|
14809
|
+
}
|
|
14810
|
+
|
|
14811
|
+
if (this._liveRegion && this._liveRegion.isConnected) {
|
|
14812
|
+
this._liveRegion.remove();
|
|
14813
|
+
}
|
|
14814
|
+
this._liveRegion = null;
|
|
14815
|
+
}
|
|
14816
|
+
|
|
14817
|
+
/**
|
|
14818
|
+
* Announces a date selection or focus change via the live region.
|
|
14819
|
+
* Uses requestAnimationFrame to ensure the clear and set happen in
|
|
14820
|
+
* separate rendering frames — Chrome may coalesce synchronous or
|
|
14821
|
+
* microtask-deferred mutations into a single accessibility tree update.
|
|
14822
|
+
* @private
|
|
14823
|
+
* @param {String} dateStr - The localized date string to announce.
|
|
14824
|
+
* @returns {void}
|
|
14825
|
+
*/
|
|
14826
|
+
announceSelection(dateStr) {
|
|
14827
|
+
// Cancel any previously queued rAF announcement so a rapid
|
|
14828
|
+
// sequence of calls (e.g. bib open → month nav) only announces
|
|
14829
|
+
// the last one.
|
|
14830
|
+
if (this._announceRafId) {
|
|
14831
|
+
cancelAnimationFrame(this._announceRafId);
|
|
14832
|
+
}
|
|
14833
|
+
const liveRegion = this.getOrCreateLiveRegion();
|
|
14834
|
+
if (!liveRegion) {
|
|
14835
|
+
return;
|
|
14836
|
+
}
|
|
14837
|
+
|
|
14838
|
+
// Double-rAF: clear in frame N, set in frame N+1. Chrome batches
|
|
14839
|
+
// accessibility tree mutations within a single animation frame, so
|
|
14840
|
+
// a same-frame clear+set can be coalesced into a no-op if the new
|
|
14841
|
+
// value matches a recently announced string. Splitting across two
|
|
14842
|
+
// frames guarantees Chrome sees two distinct tree states and fires
|
|
14843
|
+
// a new accessibility event for the content change.
|
|
14844
|
+
liveRegion.textContent = '';
|
|
14845
|
+
this._announceRafId = requestAnimationFrame(() => {
|
|
14846
|
+
this._announceRafId = requestAnimationFrame(() => {
|
|
14847
|
+
liveRegion.textContent = dateStr;
|
|
14848
|
+
this._announceRafId = null;
|
|
14849
|
+
});
|
|
14850
|
+
});
|
|
14851
|
+
}
|
|
14852
|
+
|
|
14853
|
+
/**
|
|
14854
|
+
* Debounced version of announceSelection for focus navigation.
|
|
14855
|
+
* Uses the assertive live region with a 150ms debounce so only the
|
|
14856
|
+
* final cell after rapid arrow-key traversal is announced. We
|
|
14857
|
+
* originally tried aria-live="polite" here, but VoiceOver treats
|
|
14858
|
+
* polite as "wait until idle" — which never happens during active
|
|
14859
|
+
* keyboard navigation — so the announcements were silently dropped.
|
|
14860
|
+
* @private
|
|
14861
|
+
* @param {String} dateStr - The localized date string to announce.
|
|
14862
|
+
* @returns {void}
|
|
14863
|
+
*/
|
|
14864
|
+
announceFocusDebounced(dateStr) {
|
|
14865
|
+
if (this._focusAnnounceTimer) {
|
|
14866
|
+
clearTimeout(this._focusAnnounceTimer);
|
|
14867
|
+
}
|
|
14868
|
+
this._focusAnnounceTimer = setTimeout(() => {
|
|
14869
|
+
this.announceSelection(dateStr);
|
|
14870
|
+
this._focusAnnounceTimer = null;
|
|
14871
|
+
}, 150);
|
|
14872
|
+
}
|
|
14873
|
+
|
|
14874
|
+
/**
|
|
14875
|
+
* Formats a Unix timestamp (seconds) as a localized date string for SR announcements.
|
|
14876
|
+
* @private
|
|
14877
|
+
* @param {String|Number} timestamp - Unix timestamp in seconds.
|
|
14878
|
+
* @returns {String} Localized date string.
|
|
14879
|
+
*/
|
|
14880
|
+
formatAnnouncementDate(timestamp) {
|
|
14881
|
+
const date = new Date(parseInt(timestamp, 10) * 1000);
|
|
14882
|
+
const formatter = new Intl.DateTimeFormat(this.localeCode, {
|
|
14883
|
+
weekday: 'long',
|
|
14884
|
+
year: 'numeric',
|
|
14885
|
+
month: 'long',
|
|
14886
|
+
day: 'numeric'
|
|
14887
|
+
});
|
|
14888
|
+
return formatter.format(date);
|
|
14889
|
+
}
|
|
14890
|
+
|
|
13387
14891
|
firstUpdated() {
|
|
14892
|
+
|
|
13388
14893
|
this.addEventListener('date-from-changed', () => {
|
|
13389
14894
|
this.dispatchEvent(new CustomEvent('auroCalendar-dateSelected', {
|
|
13390
14895
|
bubbles: true,
|
|
@@ -13403,6 +14908,21 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
13403
14908
|
composed: true,
|
|
13404
14909
|
}));
|
|
13405
14910
|
});
|
|
14911
|
+
|
|
14912
|
+
// Listen for cross-month boundary navigation events
|
|
14913
|
+
this.addEventListener('calendar-month-boundary', (event) => {
|
|
14914
|
+
this.handleMonthBoundary(event);
|
|
14915
|
+
});
|
|
14916
|
+
|
|
14917
|
+
// Listen for cell activation events
|
|
14918
|
+
this.addEventListener('calendar-cell-activate', (event) => {
|
|
14919
|
+
this.handleCellActivate(event);
|
|
14920
|
+
});
|
|
14921
|
+
|
|
14922
|
+
// Listen for cell focus events (SR announcements + range preview)
|
|
14923
|
+
this.addEventListener('calendar-cell-focused', (event) => {
|
|
14924
|
+
this.handleCellFocused(event);
|
|
14925
|
+
});
|
|
13406
14926
|
}
|
|
13407
14927
|
|
|
13408
14928
|
injectSlot(slotName, nodes) {
|
|
@@ -13427,7 +14947,37 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
13427
14947
|
}
|
|
13428
14948
|
|
|
13429
14949
|
if (changedProperties.has('visible')) {
|
|
13430
|
-
|
|
14950
|
+
if (this.visible) {
|
|
14951
|
+
// Compute the active date eagerly from data — no DOM needed.
|
|
14952
|
+
if (this.activeCellDate == null) { // eslint-disable-line no-eq-null, eqeqeq
|
|
14953
|
+
this.activeCellDate = this.computeActiveDate();
|
|
14954
|
+
}
|
|
14955
|
+
|
|
14956
|
+
this.requestUpdate();
|
|
14957
|
+
} else {
|
|
14958
|
+
this.requestUpdate();
|
|
14959
|
+
}
|
|
14960
|
+
}
|
|
14961
|
+
|
|
14962
|
+
// Announce date selection to screen readers when user clicks/selects a cell
|
|
14963
|
+
const isCellClick = this.datepicker?.wasCellClick || this.datepicker?.cellClickActive;
|
|
14964
|
+
|
|
14965
|
+
if (changedProperties.has('dateFrom') && this.dateFrom && isCellClick) {
|
|
14966
|
+
const dateStr = this.formatAnnouncementDate(this.dateFrom);
|
|
14967
|
+
const isRange = !this.noRange;
|
|
14968
|
+
|
|
14969
|
+
if (isRange) {
|
|
14970
|
+
const rangeLabel = this.datepicker.rangeLabelStart || 'range start';
|
|
14971
|
+
this.announceSelection(`${dateStr}, selected as ${rangeLabel}`);
|
|
14972
|
+
} else {
|
|
14973
|
+
this.announceSelection(`${dateStr}, selected`);
|
|
14974
|
+
}
|
|
14975
|
+
}
|
|
14976
|
+
|
|
14977
|
+
if (changedProperties.has('dateTo') && this.dateTo && isCellClick) {
|
|
14978
|
+
const dateStr = this.formatAnnouncementDate(this.dateTo);
|
|
14979
|
+
const rangeLabel = this.datepicker.rangeLabelEnd || 'range end';
|
|
14980
|
+
this.announceSelection(`${dateStr}, selected as ${rangeLabel}`);
|
|
13431
14981
|
}
|
|
13432
14982
|
}
|
|
13433
14983
|
|
|
@@ -13436,6 +14986,7 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
13436
14986
|
<${this.bibtemplateTag}
|
|
13437
14987
|
?large="${this.largeFullscreenHeadline}"
|
|
13438
14988
|
?isFullscreen="${this.isFullscreen}"
|
|
14989
|
+
?showFooter="${!this.isFullscreen && this.dropdown?.desktopModal}"
|
|
13439
14990
|
@close-click="${this.utilCal.requestDismiss}">
|
|
13440
14991
|
<span slot="ariaLabel.close">${this.slots["ariaLabel.bib.close"]}</span>
|
|
13441
14992
|
|
|
@@ -13453,24 +15004,26 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
13453
15004
|
</div>
|
|
13454
15005
|
</div>
|
|
13455
15006
|
|
|
13456
|
-
<div class="calendarWrapper">
|
|
13457
|
-
<div class="calendars">
|
|
13458
|
-
${this.renderAllCalendars()}
|
|
13459
|
-
</div>
|
|
15007
|
+
<div class="calendarWrapper ${!this.isFullscreen && this.dropdown?.desktopModal ? 'hasFooter' : ''}">
|
|
13460
15008
|
<div class="calendarNavButtons">
|
|
13461
15009
|
${this.showPrevMonthBtn ? html$1`
|
|
13462
|
-
<button tabIndex="
|
|
15010
|
+
<button tabIndex="0" class="calendarNavBtn prevMonth" aria-label="${this.datepicker?.navLabelPrevMonth || 'Previous month'}" @click="${this.handlePrevMonth}">
|
|
13463
15011
|
${this.util.generateIconHtml(chevronLeft)}
|
|
13464
15012
|
</button>
|
|
13465
15013
|
` : undefined}
|
|
13466
15014
|
${this.showNextMonthBtn ? html$1`
|
|
13467
|
-
<button tabIndex="
|
|
15015
|
+
<button tabIndex="0" class="calendarNavBtn nextMonth" aria-label="${this.datepicker?.navLabelNextMonth || 'Next month'}" @click="${this.handleNextMonth}">
|
|
13468
15016
|
${this.util.generateIconHtml(chevronRight)}
|
|
13469
15017
|
</button>
|
|
13470
15018
|
` : undefined}
|
|
13471
15019
|
</div>
|
|
15020
|
+
<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}">
|
|
15021
|
+
${this.renderAllCalendars()}
|
|
15022
|
+
</div>
|
|
13472
15023
|
</div>
|
|
13473
15024
|
|
|
15025
|
+
<div id="calendar-live-region" aria-live="assertive" aria-atomic="true" class="sr-only"></div>
|
|
15026
|
+
|
|
13474
15027
|
<${this.buttonTag} slot="footer" fluid @click="${this.utilCal.requestDismiss}">Done</${this.buttonTag}>
|
|
13475
15028
|
</${this.bibtemplateTag}>
|
|
13476
15029
|
`;
|
|
@@ -16718,7 +18271,7 @@ function applyKeyboardStrategy$1(component, strategy, options = {}) {
|
|
|
16718
18271
|
});
|
|
16719
18272
|
}
|
|
16720
18273
|
|
|
16721
|
-
var styleCss$2$1 = css`:host{position:fixed;z-index:var(--depth-tooltip, 400);display:none;isolation:isolate}:host dialog{width:auto;max-width:none;height:auto;max-height:none;padding:0;border:none;margin:0;outline:none;transform:translateZ(0)}:host dialog::backdrop{background:transparent}:host(:not([isfullscreen])) dialog{position:relative;inset:unset}:host(:not([isfullscreen])) .container.shape-box{border-radius:unset}:host(:not([isfullscreen])) .container[class*=shape-pill],:host(:not([isfullscreen])) .container[class*=shape-snowflake]{border-radius:30px}:host(:not([isfullscreen])) .container[class*=shape-rounded]{border-radius:16px}:host(:not([matchWidth])) .container{min-width:fit-content}:host([isfullscreen]){position:fixed;top:0;left:0}:host([isfullscreen]) .container{width:100dvw;max-width:none;height:100dvh;max-height:none;border-radius:unset;margin-top:0;box-shadow:unset;overscroll-behavior:contain}:host([isfullscreen]) .container::backdrop{background:var(--ds-color-background-primary, #fff)}:host(:popover-open){position:fixed;overflow:visible;padding:0;border:none;margin:0;background:transparent;inset:unset;outline:none}:host([data-show]){display:flex}:host([common]:not([isfullscreen])) .container,:host([rounded]:not([isfullscreen])) .container{border-radius:var(--ds-border-radius, 0.375rem)}:host([common][isfullscreen]) .container,:host([rounded][isfullscreen]) .container{border-radius:unset;box-shadow:unset}.container{display:inline-block;overflow:auto;box-sizing:border-box;border-radius:var(--ds-border-radius, 0.375rem);margin:var(--ds-size-50, 0.25rem) 0}.util_displayHiddenVisually{position:absolute;overflow:hidden;width:1px;height:1px;padding:0;border:0;margin:-1px;clip-path:inset(50%);white-space:nowrap}`;
|
|
18274
|
+
var styleCss$2$1 = css`:host{position:fixed;z-index:var(--depth-tooltip, 400);display:none;isolation:isolate}:host dialog{width:auto;max-width:none;height:auto;max-height:none;padding:0;border:none;margin:0;outline:none;transform:translateZ(0)}:host dialog::backdrop{background:transparent}:host(:not([isfullscreen])) dialog{position:relative;inset:unset}:host(:not([isfullscreen])) .container.shape-box{border-radius:unset}:host(:not([isfullscreen])) .container[class*=shape-pill],:host(:not([isfullscreen])) .container[class*=shape-snowflake]{border-radius:30px}:host(:not([isfullscreen])) .container[class*=shape-rounded]{border-radius:16px}:host([desktopmodal]:popover-open)::backdrop{background:transparent}:host(:not([matchWidth])) .container{min-width:fit-content}:host([isfullscreen]){position:fixed;top:0;left:0}:host([isfullscreen]) .container{width:100dvw;max-width:none;height:100dvh;max-height:none;border-radius:unset;margin-top:0;box-shadow:unset;overscroll-behavior:contain}:host([isfullscreen]) .container::backdrop{background:var(--ds-color-background-primary, #fff)}:host(:popover-open){position:fixed;overflow:visible;padding:0;border:none;margin:0;background:transparent;inset:unset;outline:none}:host([data-show]){display:flex}:host([common]:not([isfullscreen])) .container,:host([rounded]:not([isfullscreen])) .container{border-radius:var(--ds-border-radius, 0.375rem)}:host([common][isfullscreen]) .container,:host([rounded][isfullscreen]) .container{border-radius:unset;box-shadow:unset}.container{display:inline-block;overflow:auto;box-sizing:border-box;border-radius:var(--ds-border-radius, 0.375rem);margin:var(--ds-size-50, 0.25rem) 0}.util_displayHiddenVisually{position:absolute;overflow:hidden;width:1px;height:1px;padding:0;border:0;margin:-1px;clip-path:inset(50%);white-space:nowrap}`;
|
|
16722
18275
|
|
|
16723
18276
|
var colorCss$2 = css`.container{background-color:var(--ds-auro-dropdownbib-container-color);box-shadow:var(--ds-auro-dropdownbib-boxshadow-color);color:var(--ds-auro-dropdownbib-text-color)}`;
|
|
16724
18277
|
|
|
@@ -17349,7 +18902,7 @@ let AuroHelpText$2 = class AuroHelpText extends LitElement {
|
|
|
17349
18902
|
}
|
|
17350
18903
|
};
|
|
17351
18904
|
|
|
17352
|
-
var formkitVersion$1 = '
|
|
18905
|
+
var formkitVersion$1 = '202606181613';
|
|
17353
18906
|
|
|
17354
18907
|
let AuroElement$2 = class AuroElement extends LitElement {
|
|
17355
18908
|
static get properties() {
|
|
@@ -17529,6 +19082,7 @@ class AuroDropdown extends AuroElement$2 {
|
|
|
17529
19082
|
_intializeDefaults() {
|
|
17530
19083
|
this.appearance = 'default';
|
|
17531
19084
|
this.chevron = false;
|
|
19085
|
+
this.desktopModal = false;
|
|
17532
19086
|
this.disabled = false;
|
|
17533
19087
|
this.disableKeyboardHandling = false;
|
|
17534
19088
|
this.error = false;
|
|
@@ -17709,6 +19263,14 @@ class AuroDropdown extends AuroElement$2 {
|
|
|
17709
19263
|
reflect: true
|
|
17710
19264
|
},
|
|
17711
19265
|
|
|
19266
|
+
/**
|
|
19267
|
+
* If declared, the dropdown will behave as a modal dialog when in a desktop viewport size.
|
|
19268
|
+
*/
|
|
19269
|
+
desktopModal: {
|
|
19270
|
+
type: Boolean,
|
|
19271
|
+
reflect: true
|
|
19272
|
+
},
|
|
19273
|
+
|
|
17712
19274
|
/**
|
|
17713
19275
|
* If declared, the dropdown will only show by calling the API .show() public method.
|
|
17714
19276
|
*/
|
|
@@ -17996,6 +19558,15 @@ class AuroDropdown extends AuroElement$2 {
|
|
|
17996
19558
|
|
|
17997
19559
|
disconnectedCallback() {
|
|
17998
19560
|
super.disconnectedCallback();
|
|
19561
|
+
this._clearPageInert();
|
|
19562
|
+
if (this._bibTabHandler) {
|
|
19563
|
+
this.removeEventListener('keydown', this._bibTabHandler);
|
|
19564
|
+
this._bibTabHandler = undefined;
|
|
19565
|
+
}
|
|
19566
|
+
if (this.focusTrap) {
|
|
19567
|
+
this.focusTrap.disconnect();
|
|
19568
|
+
this.focusTrap = undefined;
|
|
19569
|
+
}
|
|
17999
19570
|
if (this.floater) {
|
|
18000
19571
|
this.floater.hideBib('disconnect');
|
|
18001
19572
|
this.floater.disconnect();
|
|
@@ -18023,19 +19594,45 @@ class AuroDropdown extends AuroElement$2 {
|
|
|
18023
19594
|
if (this.isPopoverVisible) {
|
|
18024
19595
|
// Fullscreen: use showModal() for native accessibility (inert outside, focus trap)
|
|
18025
19596
|
// Desktop: use show() for Floating UI positioning + FocusTrap for focus management
|
|
18026
|
-
|
|
18027
|
-
this.
|
|
19597
|
+
this.bibElement.value.open(this.isBibFullscreen);
|
|
19598
|
+
this.updateFocusTrap();
|
|
19599
|
+
|
|
19600
|
+
// Desktop modal: make siblings inert so content outside is not interactive
|
|
19601
|
+
if (this.desktopModal && !this.isBibFullscreen) {
|
|
19602
|
+
this._setPageInert();
|
|
19603
|
+
}
|
|
18028
19604
|
} else {
|
|
18029
19605
|
this.bibElement.value.close();
|
|
19606
|
+
this._clearPageInert();
|
|
18030
19607
|
}
|
|
18031
19608
|
}
|
|
18032
19609
|
|
|
18033
19610
|
// When fullscreen strategy changes while open, re-open dialog with correct mode
|
|
18034
19611
|
// (e.g. resizing from desktop → mobile while dropdown is open)
|
|
18035
19612
|
if (changedProperties.has('isBibFullscreen') && this.isPopoverVisible && this.bibElement.value) {
|
|
18036
|
-
const useModal = this.isBibFullscreen;
|
|
18037
19613
|
this.bibElement.value.close();
|
|
18038
|
-
this.bibElement.value.open(
|
|
19614
|
+
this.bibElement.value.open(this.isBibFullscreen);
|
|
19615
|
+
|
|
19616
|
+
// Re-initialize focus management for the new strategy
|
|
19617
|
+
this.updateFocusTrap();
|
|
19618
|
+
|
|
19619
|
+
// Toggle inert: desktop modal needs it, fullscreen showModal() handles it natively
|
|
19620
|
+
if (this.desktopModal && !this.isBibFullscreen) {
|
|
19621
|
+
this._setPageInert();
|
|
19622
|
+
} else {
|
|
19623
|
+
this._clearPageInert();
|
|
19624
|
+
}
|
|
19625
|
+
}
|
|
19626
|
+
|
|
19627
|
+
// Handle desktopModal toggled while the dropdown is already open.
|
|
19628
|
+
// Re-initialize focus trapping and page inert state to match the new mode.
|
|
19629
|
+
if (changedProperties.has('desktopModal') && this.isPopoverVisible && !this.isBibFullscreen) {
|
|
19630
|
+
this.updateFocusTrap();
|
|
19631
|
+
if (this.desktopModal) {
|
|
19632
|
+
this._setPageInert();
|
|
19633
|
+
} else {
|
|
19634
|
+
this._clearPageInert();
|
|
19635
|
+
}
|
|
18039
19636
|
}
|
|
18040
19637
|
}
|
|
18041
19638
|
|
|
@@ -18045,8 +19642,14 @@ class AuroDropdown extends AuroElement$2 {
|
|
|
18045
19642
|
* @param {CustomEvent} event - The custom event that contains the dropdown toggle information.
|
|
18046
19643
|
*/
|
|
18047
19644
|
handleDropdownToggle(event) {
|
|
18048
|
-
this.updateFocusTrap();
|
|
18049
19645
|
this.isPopoverVisible = event.detail.expanded;
|
|
19646
|
+
|
|
19647
|
+
// Tear down FocusTrap when closing. Creation happens in updated()
|
|
19648
|
+
// after the dialog is open so getFocusableElements can find content.
|
|
19649
|
+
if (!this.isPopoverVisible) {
|
|
19650
|
+
this.updateFocusTrap();
|
|
19651
|
+
}
|
|
19652
|
+
|
|
18050
19653
|
const eventType = event.detail.eventType || "unknown";
|
|
18051
19654
|
if (!this.isPopoverVisible && this.hasFocus && eventType === "keydown") {
|
|
18052
19655
|
this.trigger.focus();
|
|
@@ -18145,19 +19748,220 @@ class AuroDropdown extends AuroElement$2 {
|
|
|
18145
19748
|
* @private
|
|
18146
19749
|
*/
|
|
18147
19750
|
updateFocusTrap() {
|
|
19751
|
+
// Always clean up existing handlers/traps before setting up new ones
|
|
19752
|
+
// to prevent duplicate listeners on repeated calls.
|
|
19753
|
+
if (this._bibTabHandler) {
|
|
19754
|
+
this.removeEventListener('keydown', this._bibTabHandler);
|
|
19755
|
+
this._bibTabHandler = undefined;
|
|
19756
|
+
}
|
|
19757
|
+
|
|
19758
|
+
if (this.focusTrap) {
|
|
19759
|
+
this.focusTrap.disconnect();
|
|
19760
|
+
this.focusTrap = undefined;
|
|
19761
|
+
}
|
|
19762
|
+
|
|
19763
|
+
// Restore the user-set noHideOnThisFocusLoss value, if we overrode it.
|
|
19764
|
+
if (this._noHideOverridden) {
|
|
19765
|
+
this.noHideOnThisFocusLoss = this._priorNoHide;
|
|
19766
|
+
this._noHideOverridden = false;
|
|
19767
|
+
this._priorNoHide = undefined;
|
|
19768
|
+
}
|
|
19769
|
+
|
|
18148
19770
|
if (this.isPopoverVisible) {
|
|
18149
19771
|
if (!this.isBibFullscreen) {
|
|
18150
|
-
|
|
18151
|
-
|
|
18152
|
-
|
|
19772
|
+
if (this.desktopModal) {
|
|
19773
|
+
// The floater's focus-loss check uses :focus-within, which does not
|
|
19774
|
+
// match the host when focus is on a slotted element projected through
|
|
19775
|
+
// multiple shadow roots. Without this override, focusing a button
|
|
19776
|
+
// inside the bib would be misread as focus leaving the dropdown and
|
|
19777
|
+
// close the bib immediately. desktopModal traps focus inside the
|
|
19778
|
+
// bib and inerts siblings, so suppressing focus-loss dismissal here
|
|
19779
|
+
// is safe — Escape and outside-click still close the bib.
|
|
19780
|
+
this._priorNoHide = this.noHideOnThisFocusLoss;
|
|
19781
|
+
this._noHideOverridden = true;
|
|
19782
|
+
this.noHideOnThisFocusLoss = true;
|
|
19783
|
+
|
|
19784
|
+
// Desktop modal: trap focus only within the bib content.
|
|
19785
|
+
// Can't use FocusTrap on the bib element because keydown events
|
|
19786
|
+
// from slotted content bubble through the dropdown host (light DOM),
|
|
19787
|
+
// not through the bib (shadow projection target). Using FocusTrap
|
|
19788
|
+
// on the dropdown would include the trigger in the tab cycle.
|
|
19789
|
+
// Instead, listen for Tab on the dropdown and manually wrap focus
|
|
19790
|
+
// within the bib's focusable elements.
|
|
19791
|
+
this._bibTabHandler = (event) => {
|
|
19792
|
+
if (event.key !== 'Tab') {
|
|
19793
|
+
return;
|
|
19794
|
+
}
|
|
19795
|
+
|
|
19796
|
+
// Collect focusable elements from the bib content.
|
|
19797
|
+
const focusables = getFocusableElements(this.bibContent);
|
|
19798
|
+
|
|
19799
|
+
// Fallback: try from slotted content directly
|
|
19800
|
+
if (!focusables.length) {
|
|
19801
|
+
const slot = this.shadowRoot.querySelector('.slotContent slot');
|
|
19802
|
+
const assignedNodes = slot.assignedNodes({ flatten: true });
|
|
19803
|
+
|
|
19804
|
+
for (const node of assignedNodes) {
|
|
19805
|
+
if (node.nodeType === Node.ELEMENT_NODE) {
|
|
19806
|
+
focusables.push(...getFocusableElements(node));
|
|
19807
|
+
}
|
|
19808
|
+
}
|
|
19809
|
+
}
|
|
19810
|
+
|
|
19811
|
+
if (!focusables.length) {
|
|
19812
|
+
return;
|
|
19813
|
+
}
|
|
19814
|
+
|
|
19815
|
+
event.preventDefault();
|
|
19816
|
+
|
|
19817
|
+
const direction = event.shiftKey ? -1 : 1; // eslint-disable-line no-magic-numbers
|
|
19818
|
+
|
|
19819
|
+
// Walk the active element chain through shadow roots
|
|
19820
|
+
const actives = this._getActiveElements();
|
|
19821
|
+
|
|
19822
|
+
let idx = focusables.findIndex((el) => actives.includes(el));
|
|
19823
|
+
|
|
19824
|
+
if (idx === -1) { // eslint-disable-line no-magic-numbers
|
|
19825
|
+
// Focus is not on a known element — move to first/last
|
|
19826
|
+
idx = direction === 1 ? -1 : focusables.length; // eslint-disable-line no-magic-numbers
|
|
19827
|
+
}
|
|
19828
|
+
|
|
19829
|
+
// Try each element in order, skipping any that can't receive focus
|
|
19830
|
+
// (e.g. hidden elements, elements in collapsed sections)
|
|
19831
|
+
for (let index = 0; index < focusables.length; index++) { // eslint-disable-line no-plusplus
|
|
19832
|
+
let nextIdx = idx + direction;
|
|
19833
|
+
|
|
19834
|
+
// Wrap around
|
|
19835
|
+
if (nextIdx < 0) {
|
|
19836
|
+
nextIdx = focusables.length - 1;
|
|
19837
|
+
} else if (nextIdx >= focusables.length) {
|
|
19838
|
+
nextIdx = 0;
|
|
19839
|
+
}
|
|
19840
|
+
|
|
19841
|
+
focusables[nextIdx].focus();
|
|
19842
|
+
|
|
19843
|
+
// Verify focus actually moved to the target
|
|
19844
|
+
const newActives = this._getActiveElements();
|
|
19845
|
+
|
|
19846
|
+
if (newActives.includes(focusables[nextIdx])) {
|
|
19847
|
+
return;
|
|
19848
|
+
}
|
|
19849
|
+
|
|
19850
|
+
// Focus didn't stick — skip this element and try the next
|
|
19851
|
+
idx = nextIdx;
|
|
19852
|
+
}
|
|
19853
|
+
};
|
|
19854
|
+
this.addEventListener('keydown', this._bibTabHandler);
|
|
19855
|
+
|
|
19856
|
+
// Move initial focus into the bib content, matching FocusTrap behavior
|
|
19857
|
+
requestAnimationFrame(() => {
|
|
19858
|
+
const focusables = getFocusableElements(this.bibContent);
|
|
19859
|
+
if (focusables.length) {
|
|
19860
|
+
focusables[0].focus();
|
|
19861
|
+
}
|
|
19862
|
+
});
|
|
19863
|
+
} else {
|
|
19864
|
+
// Normal desktop: use FocusTrap on the bib element.
|
|
19865
|
+
// Defer focusFirstElement to the next frame because the popover
|
|
19866
|
+
// is positioned asynchronously by Floating UI — calling focus()
|
|
19867
|
+
// synchronously here would target elements with zero dimensions
|
|
19868
|
+
// and the focus call would be silently ignored.
|
|
19869
|
+
this.focusTrap = new FocusTrap(this.bibContent);
|
|
19870
|
+
requestAnimationFrame(() => {
|
|
19871
|
+
if (this.focusTrap) {
|
|
19872
|
+
this.focusTrap.focusFirstElement();
|
|
19873
|
+
}
|
|
19874
|
+
});
|
|
19875
|
+
}
|
|
18153
19876
|
}
|
|
18154
19877
|
// Fullscreen: showModal() provides native focus trapping
|
|
19878
|
+
}
|
|
19879
|
+
}
|
|
19880
|
+
|
|
19881
|
+
/**
|
|
19882
|
+
* Returns the chain of active (focused) elements through shadow roots.
|
|
19883
|
+
* @private
|
|
19884
|
+
* @returns {Array<HTMLElement>}
|
|
19885
|
+
*/
|
|
19886
|
+
_getActiveElements() {
|
|
19887
|
+
let { activeElement } = document;
|
|
19888
|
+
const actives = [activeElement];
|
|
19889
|
+
|
|
19890
|
+
while (activeElement?.shadowRoot?.activeElement) {
|
|
19891
|
+
activeElement = activeElement.shadowRoot.activeElement;
|
|
19892
|
+
actives.push(activeElement);
|
|
19893
|
+
}
|
|
19894
|
+
|
|
19895
|
+
return actives;
|
|
19896
|
+
}
|
|
19897
|
+
|
|
19898
|
+
/**
|
|
19899
|
+
* Sets `inert` on sibling elements of the dropdown's top-level host
|
|
19900
|
+
* so that content outside the dropdown is not interactive while the modal is open.
|
|
19901
|
+
* Walks up through shadow DOM boundaries to find the outermost host element
|
|
19902
|
+
* in the light DOM, then sets `inert` on siblings at each ancestor level
|
|
19903
|
+
* to ensure all page content outside the host subtree is inert.
|
|
19904
|
+
* @private
|
|
19905
|
+
*/
|
|
19906
|
+
_setPageInert() {
|
|
19907
|
+
if (this._inertSiblings) {
|
|
18155
19908
|
return;
|
|
18156
19909
|
}
|
|
18157
19910
|
|
|
18158
|
-
|
|
18159
|
-
|
|
18160
|
-
|
|
19911
|
+
this._inertSiblings = [];
|
|
19912
|
+
|
|
19913
|
+
// Walk up through shadow DOM boundaries to find the topmost host
|
|
19914
|
+
// element in the light DOM. For example, if this dropdown is inside
|
|
19915
|
+
// auro-datepicker's shadow DOM, we walk up to the datepicker element
|
|
19916
|
+
// so we set inert on its siblings — not on the datepicker itself.
|
|
19917
|
+
let host = this;
|
|
19918
|
+
while (host.getRootNode() instanceof ShadowRoot) {
|
|
19919
|
+
host = host.getRootNode().host;
|
|
19920
|
+
}
|
|
19921
|
+
|
|
19922
|
+
// Walk up the ancestor chain, inerting siblings at each level
|
|
19923
|
+
// to ensure the entire page outside the host subtree is inert.
|
|
19924
|
+
// Uses a reference counter (data-auro-inert-count) so multiple
|
|
19925
|
+
// simultaneous modal dropdowns share inert state safely.
|
|
19926
|
+
let current = host;
|
|
19927
|
+
while (current.parentElement) {
|
|
19928
|
+
const parent = current.parentElement;
|
|
19929
|
+
for (const sibling of parent.children) {
|
|
19930
|
+
if (sibling !== current) {
|
|
19931
|
+
const count = parseInt(sibling.dataset.auroInertCount || '0', 10);
|
|
19932
|
+
if (count === 0) {
|
|
19933
|
+
sibling.dataset.auroInertWas = sibling.inert ? 'true' : 'false';
|
|
19934
|
+
}
|
|
19935
|
+
sibling.dataset.auroInertCount = String(count + 1);
|
|
19936
|
+
sibling.inert = true;
|
|
19937
|
+
this._inertSiblings.push(sibling);
|
|
19938
|
+
}
|
|
19939
|
+
}
|
|
19940
|
+
current = parent;
|
|
19941
|
+
}
|
|
19942
|
+
}
|
|
19943
|
+
|
|
19944
|
+
/**
|
|
19945
|
+
* Restores `inert` state on siblings that were tracked by `_setPageInert`.
|
|
19946
|
+
* Uses reference counting so inert is only cleared when the last modal
|
|
19947
|
+
* dropdown releases a given element. Preserves the original inert state
|
|
19948
|
+
* so externally-inerted elements are not inadvertently re-enabled.
|
|
19949
|
+
* @private
|
|
19950
|
+
*/
|
|
19951
|
+
_clearPageInert() {
|
|
19952
|
+
if (this._inertSiblings) {
|
|
19953
|
+
for (const sibling of this._inertSiblings) {
|
|
19954
|
+
const count = parseInt(sibling.dataset.auroInertCount || '1', 10) - 1;
|
|
19955
|
+
if (count <= 0) {
|
|
19956
|
+
const wasInert = sibling.dataset.auroInertWas === 'true';
|
|
19957
|
+
delete sibling.dataset.auroInertCount;
|
|
19958
|
+
delete sibling.dataset.auroInertWas;
|
|
19959
|
+
sibling.inert = wasInert;
|
|
19960
|
+
} else {
|
|
19961
|
+
sibling.dataset.auroInertCount = String(count);
|
|
19962
|
+
}
|
|
19963
|
+
}
|
|
19964
|
+
this._inertSiblings = undefined;
|
|
18161
19965
|
}
|
|
18162
19966
|
}
|
|
18163
19967
|
|
|
@@ -18396,6 +20200,7 @@ class AuroDropdown extends AuroElement$2 {
|
|
|
18396
20200
|
shape="${this.shape}"
|
|
18397
20201
|
?data-show="${this.isPopoverVisible}"
|
|
18398
20202
|
?isfullscreen="${this.isBibFullscreen}"
|
|
20203
|
+
?desktopmodal="${this.desktopModal}"
|
|
18399
20204
|
.dialogLabel="${this.bibDialogLabel}"
|
|
18400
20205
|
${ref(this.bibElement)}
|
|
18401
20206
|
>
|
|
@@ -22970,7 +24775,7 @@ class AuroFormValidation {
|
|
|
22970
24775
|
} else if (this.runtimeUtils.elementMatch(elem, 'auro-input') && elem.errorMessage === '') {
|
|
22971
24776
|
const input = elem.renderRoot.querySelector('input');
|
|
22972
24777
|
|
|
22973
|
-
if (input.validationMessage.length > 0) {
|
|
24778
|
+
if (input && input.validationMessage.length > 0) {
|
|
22974
24779
|
elem.errorMessage = input.validationMessage;
|
|
22975
24780
|
}
|
|
22976
24781
|
} else if (this.runtimeUtils.elementMatch(elem, 'auro-combobox') && elem.errorMessage === '') {
|
|
@@ -28642,7 +30447,11 @@ class AuroInputUtilities {
|
|
|
28642
30447
|
return part.value;
|
|
28643
30448
|
}
|
|
28644
30449
|
})
|
|
28645
|
-
.join("")
|
|
30450
|
+
.join("")
|
|
30451
|
+
// Remove whitespace and leading/trailing special characters for IMask compatibility
|
|
30452
|
+
// for example, ko-KR's format is `YYYY. MM. DD.` which causes issues with IMask if we don't remove the trailing period.
|
|
30453
|
+
.replace(/\s/gu, '')
|
|
30454
|
+
.replace(/^[^A-Z0-9]+|[^A-Z0-9]+$/gu, '');
|
|
28646
30455
|
}
|
|
28647
30456
|
|
|
28648
30457
|
/**
|
|
@@ -28798,27 +30607,16 @@ class AuroInputUtilities {
|
|
|
28798
30607
|
* Converts a model value to a display value for the input element.
|
|
28799
30608
|
* For full date formats, converts an ISO model value to the configured display format.
|
|
28800
30609
|
* @private
|
|
28801
|
-
* @param {string} value - The model value (ISO string for date types).
|
|
28802
30610
|
* @param {Date|undefined} valueObject - Date object representation of value.
|
|
28803
30611
|
* @param {string} format - The date format string.
|
|
28804
|
-
* @returns {string}
|
|
30612
|
+
* @returns {string | undefined}
|
|
28805
30613
|
*/
|
|
28806
|
-
toFormattedValue(
|
|
28807
|
-
if (!this.isFullDateFormat('date', format) || !value) {
|
|
28808
|
-
return value;
|
|
28809
|
-
}
|
|
28810
|
-
|
|
28811
|
-
if (!dateFormatter.isValidDate(value)) {
|
|
28812
|
-
// For ISO-pattern strings that fail range validation (e.g. '2024-99-99'),
|
|
28813
|
-
// return '' so inputElement stays empty and format-based validation is not triggered.
|
|
28814
|
-
return (/^\d{4}-\d{2}-\d{2}$/u).test(value) ? '' : value;
|
|
28815
|
-
}
|
|
28816
|
-
|
|
30614
|
+
toFormattedValue(valueObject, format) {
|
|
28817
30615
|
const normalizedFormat = format.toLowerCase();
|
|
28818
30616
|
const maskOptions = this.getMaskOptions('date', normalizedFormat);
|
|
28819
30617
|
|
|
28820
30618
|
if (!(valueObject instanceof Date) || Number.isNaN(valueObject.getTime()) || !maskOptions || typeof maskOptions.format !== 'function') {
|
|
28821
|
-
return
|
|
30619
|
+
return undefined;
|
|
28822
30620
|
}
|
|
28823
30621
|
|
|
28824
30622
|
return maskOptions.format(valueObject);
|
|
@@ -29520,7 +31318,7 @@ class BaseInput extends AuroElement$1 {
|
|
|
29520
31318
|
* @returns {Date|undefined}
|
|
29521
31319
|
*/
|
|
29522
31320
|
get valueObject() {
|
|
29523
|
-
return this._valueObject;
|
|
31321
|
+
return this._valueObject || this._computeDateObjectFallback(this.value);
|
|
29524
31322
|
}
|
|
29525
31323
|
|
|
29526
31324
|
/**
|
|
@@ -29528,7 +31326,7 @@ class BaseInput extends AuroElement$1 {
|
|
|
29528
31326
|
* @returns {Date|undefined}
|
|
29529
31327
|
*/
|
|
29530
31328
|
get minObject() {
|
|
29531
|
-
return this._minObject;
|
|
31329
|
+
return this._minObject || this._computeDateObjectFallback(this.min);
|
|
29532
31330
|
}
|
|
29533
31331
|
|
|
29534
31332
|
/**
|
|
@@ -29536,7 +31334,31 @@ class BaseInput extends AuroElement$1 {
|
|
|
29536
31334
|
* @returns {Date|undefined}
|
|
29537
31335
|
*/
|
|
29538
31336
|
get maxObject() {
|
|
29539
|
-
return this._maxObject;
|
|
31337
|
+
return this._maxObject || this._computeDateObjectFallback(this.max);
|
|
31338
|
+
}
|
|
31339
|
+
|
|
31340
|
+
/**
|
|
31341
|
+
* Parses a date string into a Date object when the corresponding `_*Object`
|
|
31342
|
+
* field hasn't been synced yet by `updated()`. Returns undefined when the
|
|
31343
|
+
* input type/format isn't a full date or the string is not a valid date.
|
|
31344
|
+
*
|
|
31345
|
+
* Why this exists: a parent (datepicker) can call `inputN.validate()` from
|
|
31346
|
+
* inside its own `updated()` before this input's `updated()` has run
|
|
31347
|
+
* `syncDateValues()` — so `_valueObject`/`_maxObject` are still `undefined`
|
|
31348
|
+
* and range checks would otherwise silently no-op (flipping the result to
|
|
31349
|
+
* `valid` or `patternMismatch`).
|
|
31350
|
+
* @private
|
|
31351
|
+
* @param {string|undefined} dateStr - ISO date string from `value`/`min`/`max`.
|
|
31352
|
+
* @returns {Date|undefined}
|
|
31353
|
+
*/
|
|
31354
|
+
_computeDateObjectFallback(dateStr) {
|
|
31355
|
+
if (!dateStr || !this.util || !this.util.isFullDateFormat(this.type, this.format)) {
|
|
31356
|
+
return undefined;
|
|
31357
|
+
}
|
|
31358
|
+
if (!dateFormatter.isValidDate(dateStr)) {
|
|
31359
|
+
return undefined;
|
|
31360
|
+
}
|
|
31361
|
+
return dateFormatter.stringToDateInstance(dateStr);
|
|
29540
31362
|
}
|
|
29541
31363
|
|
|
29542
31364
|
/**
|
|
@@ -29561,8 +31383,30 @@ class BaseInput extends AuroElement$1 {
|
|
|
29561
31383
|
connectedCallback() {
|
|
29562
31384
|
super.connectedCallback();
|
|
29563
31385
|
|
|
31386
|
+
// Mark for query selectors when registered under a versioned tag (e.g. inside
|
|
31387
|
+
// a datepicker/combobox). Must run before parent components call validate() on
|
|
31388
|
+
// their inner inputs — the validation framework matches via tag-or-attribute,
|
|
31389
|
+
// and parents trigger validation during their own updated() cycle, which can
|
|
31390
|
+
// precede this input's firstUpdated().
|
|
31391
|
+
if (this.tagName.toLowerCase() !== 'auro-input' && !this.hasAttribute('auro-input')) {
|
|
31392
|
+
this.setAttribute('auro-input', '');
|
|
31393
|
+
}
|
|
31394
|
+
|
|
29564
31395
|
this.locale = this.domHandler.getLocale(this);
|
|
29565
31396
|
notifyOnLangChange(this);
|
|
31397
|
+
|
|
31398
|
+
// Pre-compute lengthForType and date-object fields so a parent (e.g. datepicker)
|
|
31399
|
+
// calling our validate() synchronously during its own updated() cycle sees
|
|
31400
|
+
// populated values. Without this, range validation silently no-ops because
|
|
31401
|
+
// `max.length === lengthForType` fails when lengthForType is still undefined.
|
|
31402
|
+
// Rebuild util here (constructor seeded with en-US default) so configureDataForType's
|
|
31403
|
+
// locale-derived format lookup uses the actual locale just resolved above.
|
|
31404
|
+
this.util = new AuroInputUtilities({
|
|
31405
|
+
locale: this.locale,
|
|
31406
|
+
format: this.format
|
|
31407
|
+
});
|
|
31408
|
+
this.configureDataForType();
|
|
31409
|
+
this.syncDateValues();
|
|
29566
31410
|
}
|
|
29567
31411
|
|
|
29568
31412
|
disconnectedCallback() {
|
|
@@ -29583,8 +31427,8 @@ class BaseInput extends AuroElement$1 {
|
|
|
29583
31427
|
}
|
|
29584
31428
|
|
|
29585
31429
|
// add attribute for query selectors when auro-input is registered under a custom name
|
|
29586
|
-
if (this.tagName.toLowerCase() !== 'auro-input') {
|
|
29587
|
-
this.setAttribute('auro-input',
|
|
31430
|
+
if (this.tagName.toLowerCase() !== 'auro-input' && !this.hasAttribute('auro-input')) {
|
|
31431
|
+
this.setAttribute('auro-input', '');
|
|
29588
31432
|
}
|
|
29589
31433
|
this.inputId = this.id ? `${this.id}-input` : window.crypto.randomUUID();
|
|
29590
31434
|
|
|
@@ -29632,6 +31476,12 @@ class BaseInput extends AuroElement$1 {
|
|
|
29632
31476
|
return;
|
|
29633
31477
|
}
|
|
29634
31478
|
|
|
31479
|
+
// While configureAutoFormatting is running, imask's internal updateControl
|
|
31480
|
+
// writes el.value to align display with the masked value. A synthetic input
|
|
31481
|
+
// event from that write would re-enter handleInput → processCreditCard mid-setup
|
|
31482
|
+
// and clobber a Lit value that was just pushed by the parent combobox.
|
|
31483
|
+
if (component._configuringMask) return;
|
|
31484
|
+
|
|
29635
31485
|
// If all guard clauses are passed, dispatch the event
|
|
29636
31486
|
const inputEvent = new InputEvent('input', {
|
|
29637
31487
|
bubbles: true,
|
|
@@ -29736,11 +31586,30 @@ class BaseInput extends AuroElement$1 {
|
|
|
29736
31586
|
this.hasValue = false;
|
|
29737
31587
|
}
|
|
29738
31588
|
|
|
29739
|
-
|
|
31589
|
+
let formattedValue = this.value;
|
|
31590
|
+
if (this.type === 'date') {
|
|
31591
|
+
const formattedDate = this.util.toFormattedValue(this.valueObject, this.format);
|
|
31592
|
+
if (!formattedDate) {
|
|
31593
|
+
// if user entered unrecognized date format that cannot be parsed into a Date object,
|
|
31594
|
+
// keep the raw value in the input so they can edit it instead of overwriting with an empty string
|
|
31595
|
+
formattedValue = this.value;
|
|
31596
|
+
} else {
|
|
31597
|
+
formattedValue = formattedDate;
|
|
31598
|
+
}
|
|
31599
|
+
}
|
|
29740
31600
|
|
|
29741
31601
|
if (formattedValue !== this.inputElement.value) {
|
|
29742
31602
|
this.skipNextProgrammaticInputEvent = true;
|
|
29743
|
-
if (
|
|
31603
|
+
if (this.maskInstance && this.type === 'credit-card') {
|
|
31604
|
+
// Route through the mask so its _value and el.value stay in lock-step
|
|
31605
|
+
// (set value calls updateControl which writes el.value = displayValue).
|
|
31606
|
+
// Writing el.value directly leaves the mask thinking displayValue is
|
|
31607
|
+
// stale; _saveSelection on the next focus/click then warns. Scoped to
|
|
31608
|
+
// credit-card so date's own formattedValue (raw ISO when calendar-invalid)
|
|
31609
|
+
// isn't re-masked through the mm/dd/yyyy mask, which would truncate it
|
|
31610
|
+
// and flip validity from patternMismatch to tooShort.
|
|
31611
|
+
this.maskInstance.value = formattedValue || '';
|
|
31612
|
+
} else if (formattedValue) {
|
|
29744
31613
|
this.inputElement.value = formattedValue;
|
|
29745
31614
|
} else {
|
|
29746
31615
|
this.inputElement.value = '';
|
|
@@ -29849,58 +31718,73 @@ class BaseInput extends AuroElement$1 {
|
|
|
29849
31718
|
* @returns {void}
|
|
29850
31719
|
*/
|
|
29851
31720
|
configureAutoFormatting() {
|
|
29852
|
-
|
|
29853
|
-
|
|
29854
|
-
|
|
29855
|
-
|
|
29856
|
-
|
|
29857
|
-
this.
|
|
31721
|
+
// Re-entrancy guard. The patched-setter's synthetic input event (suppressed
|
|
31722
|
+
// by _configuringMask above) could otherwise trigger handleInput →
|
|
31723
|
+
// processCreditCard → configureAutoFormatting before the outer call's
|
|
31724
|
+
// set value has finished its alignCursor pass.
|
|
31725
|
+
if (this._configuringMask) return;
|
|
31726
|
+
this._configuringMask = true;
|
|
31727
|
+
try {
|
|
31728
|
+
if (this.maskInstance) {
|
|
31729
|
+
this.maskInstance.destroy();
|
|
31730
|
+
}
|
|
29858
31731
|
|
|
29859
|
-
|
|
31732
|
+
// Pass new format to util
|
|
31733
|
+
this.util.updateFormat(this.format);
|
|
29860
31734
|
|
|
29861
|
-
|
|
31735
|
+
const maskOptions = this.util.getMaskOptions(this.type, this.format);
|
|
29862
31736
|
|
|
29863
|
-
|
|
29864
|
-
// IMask's constructor processes the current input value which requires
|
|
29865
|
-
// selection state — clearing first avoids that scenario entirely.
|
|
29866
|
-
// When the format changes (e.g. locale switch) and we have a valid ISO
|
|
29867
|
-
// model value, compute the display string for the NEW format instead of
|
|
29868
|
-
// re-using the old display string, which may be invalid in the new mask.
|
|
29869
|
-
let existingValue = this.inputElement.value;
|
|
29870
|
-
if (
|
|
29871
|
-
this.util.isFullDateFormat(this.type, this.format) &&
|
|
29872
|
-
this.value &&
|
|
29873
|
-
dateFormatter.isValidDate(this.value) &&
|
|
29874
|
-
this.valueObject instanceof Date &&
|
|
29875
|
-
!Number.isNaN(this.valueObject.getTime()) &&
|
|
29876
|
-
typeof maskOptions.format === 'function'
|
|
29877
|
-
) {
|
|
29878
|
-
existingValue = maskOptions.format(this.valueObject);
|
|
29879
|
-
}
|
|
31737
|
+
if (this.inputElement && maskOptions.mask) {
|
|
29880
31738
|
|
|
29881
|
-
|
|
29882
|
-
|
|
31739
|
+
// Stash and clear any existing value before IMask init.
|
|
31740
|
+
// IMask's constructor processes the current input value which requires
|
|
31741
|
+
// selection state — clearing first avoids that scenario entirely.
|
|
31742
|
+
// When the format changes (e.g. locale switch) and we have a valid ISO
|
|
31743
|
+
// model value, compute the display string for the NEW format instead of
|
|
31744
|
+
// re-using the old display string, which may be invalid in the new mask.
|
|
31745
|
+
let existingValue = this.inputElement.value;
|
|
31746
|
+
if (
|
|
31747
|
+
this.util.isFullDateFormat(this.type, this.format) &&
|
|
31748
|
+
this.value &&
|
|
31749
|
+
dateFormatter.isValidDate(this.value) &&
|
|
31750
|
+
this.valueObject instanceof Date &&
|
|
31751
|
+
!Number.isNaN(this.valueObject.getTime()) &&
|
|
31752
|
+
typeof maskOptions.format === 'function'
|
|
31753
|
+
) {
|
|
31754
|
+
existingValue = maskOptions.format(this.valueObject);
|
|
31755
|
+
}
|
|
29883
31756
|
|
|
29884
|
-
|
|
31757
|
+
this.skipNextProgrammaticInputEvent = true;
|
|
31758
|
+
this.inputElement.value = '';
|
|
31759
|
+
|
|
31760
|
+
this.maskInstance = IMask(this.inputElement, maskOptions);
|
|
31761
|
+
|
|
31762
|
+
this.maskInstance.on('accept', () => {
|
|
31763
|
+
// Suppress propagation during configureAutoFormatting's own value-restoration
|
|
31764
|
+
// (line below) — the mask emits 'accept' on every value-set, including ours,
|
|
31765
|
+
// and we don't want to overwrite a value the parent just pushed.
|
|
31766
|
+
if (this._configuringMask) return;
|
|
31767
|
+
this.value = this.util.toModelValue(this.maskInstance.value, this.format);
|
|
31768
|
+
if (this.type === "date") {
|
|
31769
|
+
this._rawMaskValue = this.maskInstance.value;
|
|
31770
|
+
}
|
|
31771
|
+
});
|
|
29885
31772
|
|
|
29886
|
-
|
|
29887
|
-
|
|
29888
|
-
|
|
29889
|
-
this.
|
|
29890
|
-
|
|
29891
|
-
|
|
31773
|
+
this.maskInstance.on('complete', () => {
|
|
31774
|
+
if (this._configuringMask) return;
|
|
31775
|
+
this.value = this.util.toModelValue(this.maskInstance.value, this.format);
|
|
31776
|
+
if (this.type === "date") {
|
|
31777
|
+
this._rawMaskValue = this.maskInstance.value;
|
|
31778
|
+
}
|
|
31779
|
+
});
|
|
29892
31780
|
|
|
29893
|
-
|
|
29894
|
-
|
|
29895
|
-
|
|
29896
|
-
this._rawMaskValue = this.maskInstance.value;
|
|
31781
|
+
// Restore the stashed value through IMask so it's properly masked
|
|
31782
|
+
if (existingValue) {
|
|
31783
|
+
this.maskInstance.value = existingValue;
|
|
29897
31784
|
}
|
|
29898
|
-
});
|
|
29899
|
-
|
|
29900
|
-
// Restore the stashed value through IMask so it's properly masked
|
|
29901
|
-
if (existingValue) {
|
|
29902
|
-
this.maskInstance.value = existingValue;
|
|
29903
31785
|
}
|
|
31786
|
+
} finally {
|
|
31787
|
+
this._configuringMask = false;
|
|
29904
31788
|
}
|
|
29905
31789
|
}
|
|
29906
31790
|
|
|
@@ -30187,10 +32071,10 @@ class BaseInput extends AuroElement$1 {
|
|
|
30187
32071
|
},
|
|
30188
32072
|
{
|
|
30189
32073
|
name: 'Diners club',
|
|
30190
|
-
regex: /^(?<num>36|38)\d{0}/u,
|
|
32074
|
+
regex: /^(?<num>30[0-5]|36|38)\d{0}/u,
|
|
30191
32075
|
formatLength: 16,
|
|
30192
32076
|
errorMessage: CreditCardValidationMessage,
|
|
30193
|
-
cardIcon: '
|
|
32077
|
+
cardIcon: 'cc-dinersclub',
|
|
30194
32078
|
maskFormat: "0000 000000 0000"
|
|
30195
32079
|
},
|
|
30196
32080
|
{
|
|
@@ -30600,7 +32484,7 @@ let AuroHelpText$1 = class AuroHelpText extends LitElement {
|
|
|
30600
32484
|
}
|
|
30601
32485
|
};
|
|
30602
32486
|
|
|
30603
|
-
var formkitVersion = '
|
|
32487
|
+
var formkitVersion = '202606181613';
|
|
30604
32488
|
|
|
30605
32489
|
// Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
|
|
30606
32490
|
// See LICENSE in the project root for license information.
|
|
@@ -30938,10 +32822,6 @@ class AuroInput extends BaseInput {
|
|
|
30938
32822
|
return i18n$1(this.lang, this.type);
|
|
30939
32823
|
}
|
|
30940
32824
|
|
|
30941
|
-
if (this.type === 'date') {
|
|
30942
|
-
return i18n$1(this.lang, this.dateFormatMap[this.format] || 'dateMMDDYYYY');
|
|
30943
|
-
}
|
|
30944
|
-
|
|
30945
32825
|
return '';
|
|
30946
32826
|
}
|
|
30947
32827
|
|
|
@@ -31945,26 +33825,62 @@ function applyKeyboardStrategy(component, strategy, options = {}) {
|
|
|
31945
33825
|
// components/datepicker/docs/partials/keyboardBehavior.md
|
|
31946
33826
|
//
|
|
31947
33827
|
// Current behavior (transitional — full bib keyboard navigation is planned for a future iteration):
|
|
31948
|
-
// - The bib opens and closes via pointer/touch interaction only.
|
|
31949
33828
|
// - Escape closes the bib and prevents the event from reaching parent containers.
|
|
33829
|
+
// - Enter opens the bib when it is closed (trigger input only, not clear button).
|
|
33830
|
+
// - Space opens the bib when it is closed (trigger input only, not clear button).
|
|
31950
33831
|
// - Tab uses the browser's default tabindex sequence across trigger controls.
|
|
31951
|
-
// - Enter and Space do not open or close the bib.
|
|
31952
33832
|
//
|
|
31953
33833
|
// This file is an intentional placeholder for most keys. When datepicker bib keyboard navigation is
|
|
31954
33834
|
// added, handlers should go here following the same strategy pattern used by
|
|
31955
33835
|
// auro-select (selectKeyboardStrategy.js) and auro-combobox (comboboxKeyboardStrategy.js).
|
|
31956
33836
|
const datepickerKeyboardStrategy = {
|
|
31957
|
-
Escape(component, evt) {
|
|
31958
|
-
if (!
|
|
33837
|
+
Escape(component, evt, ctx) {
|
|
33838
|
+
if (!ctx.isExpanded) {
|
|
31959
33839
|
return;
|
|
31960
33840
|
}
|
|
31961
33841
|
|
|
31962
|
-
//
|
|
31963
|
-
//
|
|
31964
|
-
// seeing this event, we must also close the dropdown explicitly.
|
|
33842
|
+
// Stop propagation so parent containers (auro-dialog, auro-drawer)
|
|
33843
|
+
// don't also react to Escape.
|
|
31965
33844
|
evt.stopPropagation();
|
|
33845
|
+
evt.preventDefault();
|
|
33846
|
+
|
|
33847
|
+
component.hideBib();
|
|
33848
|
+
},
|
|
33849
|
+
|
|
33850
|
+
Enter(component, evt, ctx) {
|
|
33851
|
+
if (ctx.isExpanded) {
|
|
33852
|
+
return;
|
|
33853
|
+
}
|
|
33854
|
+
|
|
33855
|
+
// Only open from the trigger input, not the clear button or other internal elements.
|
|
33856
|
+
// evt.target is retargeted to the host in shadow DOM, so use composedPath()
|
|
33857
|
+
// to find the real origin. The clear button is rendered with class "clearBtn".
|
|
33858
|
+
const path = evt.composedPath();
|
|
33859
|
+
if (path.some(el => el.classList?.contains('clearBtn'))) {
|
|
33860
|
+
return;
|
|
33861
|
+
}
|
|
33862
|
+
|
|
33863
|
+
evt.preventDefault();
|
|
33864
|
+
|
|
33865
|
+
component.dropdown.show();
|
|
33866
|
+
},
|
|
33867
|
+
|
|
33868
|
+
' '(component, evt, ctx) {
|
|
33869
|
+
if (ctx.isExpanded) {
|
|
33870
|
+
return;
|
|
33871
|
+
}
|
|
33872
|
+
|
|
33873
|
+
// Only open from the trigger input, not the clear button or other internal elements.
|
|
33874
|
+
// evt.target is retargeted to the host in shadow DOM, so use composedPath()
|
|
33875
|
+
// to find the real origin. The clear button is rendered with class "clearBtn".
|
|
33876
|
+
const path = evt.composedPath();
|
|
33877
|
+
if (path.some(el => el.classList?.contains('clearBtn'))) {
|
|
33878
|
+
return;
|
|
33879
|
+
}
|
|
31966
33880
|
|
|
31967
|
-
|
|
33881
|
+
evt.preventDefault();
|
|
33882
|
+
|
|
33883
|
+
component.dropdown.show();
|
|
31968
33884
|
},
|
|
31969
33885
|
};
|
|
31970
33886
|
|
|
@@ -31988,8 +33904,8 @@ const datepickerKeyboardStrategy = {
|
|
|
31988
33904
|
* @slot label - Defines the label content for the entire datepicker when `layout="snowflake"`.
|
|
31989
33905
|
* @slot toLabel - Defines the label content for the second input when the `range` attribute is used.
|
|
31990
33906
|
* @slot fromLabel - Defines the label content for the first input.
|
|
31991
|
-
* @slot
|
|
31992
|
-
* @slot
|
|
33907
|
+
* @slot date_YYYY_MM_DD - Defines the content to display in the auro-calendar-cell for the specified date. The content text is colored using the success state token when the `highlight` attribute is applied to the slot.
|
|
33908
|
+
* @slot popover_YYYY_MM_DD - Defines the content to display in the auro-calendar-cell popover for the specified date.
|
|
31993
33909
|
* @csspart dropdown - Use for customizing the style of the dropdown.
|
|
31994
33910
|
* @csspart trigger - Use for customizing the style of the datepicker trigger.
|
|
31995
33911
|
* @csspart input - Use for customizing the style of the datepicker inputs.
|
|
@@ -32038,6 +33954,16 @@ class AuroDatePicker extends AuroElement {
|
|
|
32038
33954
|
this.required = false;
|
|
32039
33955
|
this.onDark = false;
|
|
32040
33956
|
this.range = false;
|
|
33957
|
+
this.rangeLabelStart = 'range start';
|
|
33958
|
+
this.rangeLabelEnd = 'range end';
|
|
33959
|
+
this.rangeLabelBeforeRange = 'before range';
|
|
33960
|
+
this.rangeLabelInRange = 'in range';
|
|
33961
|
+
this.rangeLabelAfterRange = 'after range';
|
|
33962
|
+
this.blackoutDates = [];
|
|
33963
|
+
this.blackoutLabel = 'unavailable';
|
|
33964
|
+
this.navLabelPrevMonth = 'Previous month';
|
|
33965
|
+
this.navLabelNextMonth = 'Next month';
|
|
33966
|
+
this.calendarGridLabel = 'Calendar days of the month';
|
|
32041
33967
|
this.stacked = false;
|
|
32042
33968
|
this.noValidate = false;
|
|
32043
33969
|
this.validity = undefined;
|
|
@@ -32047,6 +33973,7 @@ class AuroDatePicker extends AuroElement {
|
|
|
32047
33973
|
this.calendarEndDate = undefined;
|
|
32048
33974
|
this.calendarFocusDate = this.value;
|
|
32049
33975
|
this.fullscreenBreakpoint = 'sm';
|
|
33976
|
+
this._validLocale = 'en-US';
|
|
32050
33977
|
// floaterConfig
|
|
32051
33978
|
this.placement = 'bottom-start';
|
|
32052
33979
|
this.offset = 0;
|
|
@@ -32152,7 +34079,7 @@ class AuroDatePicker extends AuroElement {
|
|
|
32152
34079
|
|
|
32153
34080
|
/**
|
|
32154
34081
|
* Defines whether the component will be on lighter or darker backgrounds.
|
|
32155
|
-
* @
|
|
34082
|
+
* @type {'default' | 'inverse'}
|
|
32156
34083
|
* @default 'default'
|
|
32157
34084
|
*/
|
|
32158
34085
|
appearance: {
|
|
@@ -32169,6 +34096,22 @@ class AuroDatePicker extends AuroElement {
|
|
|
32169
34096
|
reflect: true
|
|
32170
34097
|
},
|
|
32171
34098
|
|
|
34099
|
+
/**
|
|
34100
|
+
* Array of dates that cannot be selected. Dates should be in ISO format (YYYY-MM-DD).
|
|
34101
|
+
*/
|
|
34102
|
+
blackoutDates: {
|
|
34103
|
+
type: Array,
|
|
34104
|
+
reflect: true
|
|
34105
|
+
},
|
|
34106
|
+
|
|
34107
|
+
/**
|
|
34108
|
+
* Label announced for blackout (disabled but in-range) date cells.
|
|
34109
|
+
*/
|
|
34110
|
+
blackoutLabel: {
|
|
34111
|
+
type: String,
|
|
34112
|
+
reflect: true
|
|
34113
|
+
},
|
|
34114
|
+
|
|
32172
34115
|
/**
|
|
32173
34116
|
* The last date that may be displayed in the calendar.
|
|
32174
34117
|
*/
|
|
@@ -32177,6 +34120,14 @@ class AuroDatePicker extends AuroElement {
|
|
|
32177
34120
|
reflect: true
|
|
32178
34121
|
},
|
|
32179
34122
|
|
|
34123
|
+
/**
|
|
34124
|
+
* Accessible label for the calendar grid containing the days of the month.
|
|
34125
|
+
*/
|
|
34126
|
+
calendarGridLabel: {
|
|
34127
|
+
type: String,
|
|
34128
|
+
reflect: true
|
|
34129
|
+
},
|
|
34130
|
+
|
|
32180
34131
|
/**
|
|
32181
34132
|
* The date that will first be visually rendered to the user in the calendar.
|
|
32182
34133
|
*/
|
|
@@ -32224,27 +34175,6 @@ class AuroDatePicker extends AuroElement {
|
|
|
32224
34175
|
reflect: true
|
|
32225
34176
|
},
|
|
32226
34177
|
|
|
32227
|
-
hasFocus: {
|
|
32228
|
-
type: Boolean,
|
|
32229
|
-
reflect: false,
|
|
32230
|
-
},
|
|
32231
|
-
|
|
32232
|
-
/**
|
|
32233
|
-
* @private
|
|
32234
|
-
*/
|
|
32235
|
-
hasValue: {
|
|
32236
|
-
type: Boolean,
|
|
32237
|
-
reflect: false,
|
|
32238
|
-
},
|
|
32239
|
-
|
|
32240
|
-
/**
|
|
32241
|
-
* @private
|
|
32242
|
-
*/
|
|
32243
|
-
hasAllValues: {
|
|
32244
|
-
type: Boolean,
|
|
32245
|
-
reflect: false
|
|
32246
|
-
},
|
|
32247
|
-
|
|
32248
34178
|
/**
|
|
32249
34179
|
* Specifies the date format. The default is `mm/dd/yyyy`.
|
|
32250
34180
|
*/
|
|
@@ -32274,6 +34204,27 @@ class AuroDatePicker extends AuroElement {
|
|
|
32274
34204
|
reflect: true
|
|
32275
34205
|
},
|
|
32276
34206
|
|
|
34207
|
+
/**
|
|
34208
|
+
* @private
|
|
34209
|
+
*/
|
|
34210
|
+
hasAllValues: {
|
|
34211
|
+
type: Boolean,
|
|
34212
|
+
reflect: false
|
|
34213
|
+
},
|
|
34214
|
+
|
|
34215
|
+
hasFocus: {
|
|
34216
|
+
type: Boolean,
|
|
34217
|
+
reflect: false,
|
|
34218
|
+
},
|
|
34219
|
+
|
|
34220
|
+
/**
|
|
34221
|
+
* @private
|
|
34222
|
+
*/
|
|
34223
|
+
hasValue: {
|
|
34224
|
+
type: Boolean,
|
|
34225
|
+
reflect: false,
|
|
34226
|
+
},
|
|
34227
|
+
|
|
32277
34228
|
/** Exposes inputmode attribute for input. */
|
|
32278
34229
|
inputmode: {
|
|
32279
34230
|
type: String,
|
|
@@ -32316,6 +34267,13 @@ class AuroDatePicker extends AuroElement {
|
|
|
32316
34267
|
reflect: true
|
|
32317
34268
|
},
|
|
32318
34269
|
|
|
34270
|
+
/**
|
|
34271
|
+
* @private
|
|
34272
|
+
*/
|
|
34273
|
+
monthFirst: {
|
|
34274
|
+
type: Boolean
|
|
34275
|
+
},
|
|
34276
|
+
|
|
32319
34277
|
/**
|
|
32320
34278
|
* Names of all 12 months to render in the calendar.
|
|
32321
34279
|
* When omitted, month names will be automatically populated from the active `locale` (falling back to `en-US`).
|
|
@@ -32325,18 +34283,26 @@ class AuroDatePicker extends AuroElement {
|
|
|
32325
34283
|
},
|
|
32326
34284
|
|
|
32327
34285
|
/**
|
|
32328
|
-
*
|
|
32329
|
-
* when there isn't enough space in the specified `placement`.
|
|
34286
|
+
* Accessible label for the next month navigation button.
|
|
32330
34287
|
*/
|
|
32331
|
-
|
|
32332
|
-
type:
|
|
34288
|
+
navLabelNextMonth: {
|
|
34289
|
+
type: String,
|
|
32333
34290
|
reflect: true
|
|
32334
34291
|
},
|
|
32335
34292
|
|
|
32336
34293
|
/**
|
|
32337
|
-
*
|
|
34294
|
+
* Accessible label for the previous month navigation button.
|
|
32338
34295
|
*/
|
|
32339
|
-
|
|
34296
|
+
navLabelPrevMonth: {
|
|
34297
|
+
type: String,
|
|
34298
|
+
reflect: true
|
|
34299
|
+
},
|
|
34300
|
+
|
|
34301
|
+
/**
|
|
34302
|
+
* If declared, the bib will NOT flip to an alternate position
|
|
34303
|
+
* when there isn't enough space in the specified `placement`.
|
|
34304
|
+
*/
|
|
34305
|
+
noFlip: {
|
|
32340
34306
|
type: Boolean,
|
|
32341
34307
|
reflect: true
|
|
32342
34308
|
},
|
|
@@ -32402,6 +34368,46 @@ class AuroDatePicker extends AuroElement {
|
|
|
32402
34368
|
reflect: true
|
|
32403
34369
|
},
|
|
32404
34370
|
|
|
34371
|
+
/**
|
|
34372
|
+
* Label announced for cells after the range (or after start when no end is selected).
|
|
34373
|
+
*/
|
|
34374
|
+
rangeLabelAfterRange: {
|
|
34375
|
+
type: String,
|
|
34376
|
+
reflect: true
|
|
34377
|
+
},
|
|
34378
|
+
|
|
34379
|
+
/**
|
|
34380
|
+
* Label announced for cells before the range start.
|
|
34381
|
+
*/
|
|
34382
|
+
rangeLabelBeforeRange: {
|
|
34383
|
+
type: String,
|
|
34384
|
+
reflect: true
|
|
34385
|
+
},
|
|
34386
|
+
|
|
34387
|
+
/**
|
|
34388
|
+
* Label announced for the range end date cell.
|
|
34389
|
+
*/
|
|
34390
|
+
rangeLabelEnd: {
|
|
34391
|
+
type: String,
|
|
34392
|
+
reflect: true
|
|
34393
|
+
},
|
|
34394
|
+
|
|
34395
|
+
/**
|
|
34396
|
+
* Label announced for cells within the selected range.
|
|
34397
|
+
*/
|
|
34398
|
+
rangeLabelInRange: {
|
|
34399
|
+
type: String,
|
|
34400
|
+
reflect: true
|
|
34401
|
+
},
|
|
34402
|
+
|
|
34403
|
+
/**
|
|
34404
|
+
* Label announced for the range start date cell.
|
|
34405
|
+
*/
|
|
34406
|
+
rangeLabelStart: {
|
|
34407
|
+
type: String,
|
|
34408
|
+
reflect: true
|
|
34409
|
+
},
|
|
34410
|
+
|
|
32405
34411
|
/**
|
|
32406
34412
|
* Dates that the user should have for reference as part of their decision making when selecting a date.
|
|
32407
34413
|
* This should be a JSON string array of ISO date strings (`YYYY-MM-DD`).
|
|
@@ -32428,6 +34434,7 @@ class AuroDatePicker extends AuroElement {
|
|
|
32428
34434
|
|
|
32429
34435
|
/**
|
|
32430
34436
|
* Custom help text message to display when validity = `customError`.
|
|
34437
|
+
* Also used as the validation message when a blackout date is typed into the input.
|
|
32431
34438
|
*/
|
|
32432
34439
|
setCustomValidityCustomError: {
|
|
32433
34440
|
type: String
|
|
@@ -32454,6 +34461,14 @@ class AuroDatePicker extends AuroElement {
|
|
|
32454
34461
|
type: String
|
|
32455
34462
|
},
|
|
32456
34463
|
|
|
34464
|
+
/**
|
|
34465
|
+
* If declared, the dropdown will shift its position to avoid being cut off by the viewport.
|
|
34466
|
+
*/
|
|
34467
|
+
shift: {
|
|
34468
|
+
type: Boolean,
|
|
34469
|
+
reflect: true
|
|
34470
|
+
},
|
|
34471
|
+
|
|
32457
34472
|
/**
|
|
32458
34473
|
* Set true to make datepicker stacked style.
|
|
32459
34474
|
*/
|
|
@@ -32462,6 +34477,16 @@ class AuroDatePicker extends AuroElement {
|
|
|
32462
34477
|
reflect: true
|
|
32463
34478
|
},
|
|
32464
34479
|
|
|
34480
|
+
/**
|
|
34481
|
+
* Indicates whether the datepicker is in a dirty state (has been interacted with).
|
|
34482
|
+
* @private
|
|
34483
|
+
*/
|
|
34484
|
+
touched: {
|
|
34485
|
+
type: Boolean,
|
|
34486
|
+
reflect: true,
|
|
34487
|
+
attribute: false
|
|
34488
|
+
},
|
|
34489
|
+
|
|
32465
34490
|
/**
|
|
32466
34491
|
* Specifies the `validityState` this element is in.
|
|
32467
34492
|
*/
|
|
@@ -32482,16 +34507,6 @@ class AuroDatePicker extends AuroElement {
|
|
|
32482
34507
|
*/
|
|
32483
34508
|
valueEnd: {
|
|
32484
34509
|
type: String
|
|
32485
|
-
},
|
|
32486
|
-
|
|
32487
|
-
/**
|
|
32488
|
-
* Indicates whether the datepicker is in a dirty state (has been interacted with).
|
|
32489
|
-
* @private
|
|
32490
|
-
*/
|
|
32491
|
-
touched: {
|
|
32492
|
-
type: Boolean,
|
|
32493
|
-
reflect: true,
|
|
32494
|
-
attribute: false
|
|
32495
34510
|
}
|
|
32496
34511
|
};
|
|
32497
34512
|
}
|
|
@@ -32602,7 +34617,7 @@ class AuroDatePicker extends AuroElement {
|
|
|
32602
34617
|
/**
|
|
32603
34618
|
* Common display value wrapper classes.
|
|
32604
34619
|
* @private
|
|
32605
|
-
* @
|
|
34620
|
+
* @returns {Object} Class map for Lit's classMap directive.
|
|
32606
34621
|
*/
|
|
32607
34622
|
get commonDisplayValueWrapperClasses() {
|
|
32608
34623
|
return {
|
|
@@ -32673,7 +34688,7 @@ class AuroDatePicker extends AuroElement {
|
|
|
32673
34688
|
* @returns {Number} Simplified number.
|
|
32674
34689
|
*/
|
|
32675
34690
|
convertToWcValidTime(date) {
|
|
32676
|
-
return
|
|
34691
|
+
return date?.getTime() / 1000;
|
|
32677
34692
|
}
|
|
32678
34693
|
|
|
32679
34694
|
/**
|
|
@@ -32684,42 +34699,66 @@ class AuroDatePicker extends AuroElement {
|
|
|
32684
34699
|
*/
|
|
32685
34700
|
// ─── Read-only *Object properties ─────────────────────────────────────────
|
|
32686
34701
|
|
|
32687
|
-
/**
|
|
34702
|
+
/**
|
|
34703
|
+
* Read-only `Date` object derived from `value`. Returns `undefined` when `value` is empty or not a valid date.
|
|
34704
|
+
* @returns {Date|undefined}
|
|
34705
|
+
*/
|
|
32688
34706
|
get valueObject() {
|
|
32689
34707
|
return this.value && dateFormatter$1.isValidDate(this.value) ? dateFormatter$1.stringToDateInstance(this.value) : undefined;
|
|
32690
34708
|
}
|
|
32691
34709
|
|
|
32692
|
-
/**
|
|
34710
|
+
/**
|
|
34711
|
+
* Read-only `Date` object derived from `valueEnd`. Returns `undefined` when `valueEnd` is empty or not a valid date.
|
|
34712
|
+
* @returns {Date|undefined}
|
|
34713
|
+
*/
|
|
32693
34714
|
get valueEndObject() {
|
|
32694
34715
|
return this.valueEnd && dateFormatter$1.isValidDate(this.valueEnd) ? dateFormatter$1.stringToDateInstance(this.valueEnd) : undefined;
|
|
32695
34716
|
}
|
|
32696
34717
|
|
|
32697
|
-
/**
|
|
34718
|
+
/**
|
|
34719
|
+
* Read-only `Date` object derived from `minDate`. Returns `undefined` when `minDate` is empty or not a valid date.
|
|
34720
|
+
* @returns {Date|undefined}
|
|
34721
|
+
*/
|
|
32698
34722
|
get minDateObject() {
|
|
32699
34723
|
return this.minDate && dateFormatter$1.isValidDate(this.minDate) ? dateFormatter$1.stringToDateInstance(this.minDate) : undefined;
|
|
32700
34724
|
}
|
|
32701
34725
|
|
|
32702
|
-
/**
|
|
34726
|
+
/**
|
|
34727
|
+
* Read-only `Date` object derived from `maxDate`. Returns `undefined` when `maxDate` is empty or not a valid date.
|
|
34728
|
+
* @returns {Date|undefined}
|
|
34729
|
+
*/
|
|
32703
34730
|
get maxDateObject() {
|
|
32704
34731
|
return this.maxDate && dateFormatter$1.isValidDate(this.maxDate) ? dateFormatter$1.stringToDateInstance(this.maxDate) : undefined;
|
|
32705
34732
|
}
|
|
32706
34733
|
|
|
32707
|
-
/**
|
|
34734
|
+
/**
|
|
34735
|
+
* Read-only `Date` object derived from `calendarStartDate`. Returns `undefined` when `calendarStartDate` is empty or not a valid date.
|
|
34736
|
+
* @returns {Date|undefined}
|
|
34737
|
+
*/
|
|
32708
34738
|
get calendarStartDateObject() {
|
|
32709
34739
|
return this.calendarStartDate && dateFormatter$1.isValidDate(this.calendarStartDate) ? dateFormatter$1.stringToDateInstance(this.calendarStartDate) : undefined;
|
|
32710
34740
|
}
|
|
32711
34741
|
|
|
32712
|
-
/**
|
|
34742
|
+
/**
|
|
34743
|
+
* Read-only `Date` object derived from `calendarEndDate`. Returns `undefined` when `calendarEndDate` is empty or not a valid date.
|
|
34744
|
+
* @returns {Date|undefined}
|
|
34745
|
+
*/
|
|
32713
34746
|
get calendarEndDateObject() {
|
|
32714
34747
|
return this.calendarEndDate && dateFormatter$1.isValidDate(this.calendarEndDate) ? dateFormatter$1.stringToDateInstance(this.calendarEndDate) : undefined;
|
|
32715
34748
|
}
|
|
32716
34749
|
|
|
32717
|
-
/**
|
|
34750
|
+
/**
|
|
34751
|
+
* Read-only `Date` object derived from `centralDate`. Returns `undefined` when `centralDate` is empty or not a valid date.
|
|
34752
|
+
* @returns {Date|undefined}
|
|
34753
|
+
*/
|
|
32718
34754
|
get centralDateObject() {
|
|
32719
34755
|
return this.centralDate && dateFormatter$1.isValidDate(this.centralDate) ? dateFormatter$1.stringToDateInstance(this.centralDate) : undefined;
|
|
32720
34756
|
}
|
|
32721
34757
|
|
|
32722
|
-
/**
|
|
34758
|
+
/**
|
|
34759
|
+
* Read-only `Date` object derived from `calendarFocusDate`. Returns `undefined` when `calendarFocusDate` is empty or not a valid date.
|
|
34760
|
+
* @returns {Date|undefined}
|
|
34761
|
+
*/
|
|
32723
34762
|
get calendarFocusDateObject() {
|
|
32724
34763
|
return this.calendarFocusDate && dateFormatter$1.isValidDate(this.calendarFocusDate) ? dateFormatter$1.stringToDateInstance(this.calendarFocusDate) : undefined;
|
|
32725
34764
|
}
|
|
@@ -32793,6 +34832,74 @@ class AuroDatePicker extends AuroElement {
|
|
|
32793
34832
|
}));
|
|
32794
34833
|
}
|
|
32795
34834
|
|
|
34835
|
+
/**
|
|
34836
|
+
* Attempts to focus the active calendar cell using a rAF retry loop.
|
|
34837
|
+
* Shared by both fullscreen and desktop open paths.
|
|
34838
|
+
* @private
|
|
34839
|
+
* @returns {void}
|
|
34840
|
+
*/
|
|
34841
|
+
focusActiveCellWhenReady() {
|
|
34842
|
+
const MAX_ATTEMPTS = 20;
|
|
34843
|
+
let attempts = 0;
|
|
34844
|
+
|
|
34845
|
+
const tryFocus = () => {
|
|
34846
|
+
attempts += 1;
|
|
34847
|
+
const allCells = this.calendar.getAllFocusableCells();
|
|
34848
|
+
|
|
34849
|
+
if (!allCells.length && attempts < MAX_ATTEMPTS) {
|
|
34850
|
+
requestAnimationFrame(tryFocus);
|
|
34851
|
+
return;
|
|
34852
|
+
}
|
|
34853
|
+
|
|
34854
|
+
// Compute and mark the active cell
|
|
34855
|
+
if (this.calendar.activeCellDate === null || this.calendar.activeCellDate === undefined) {
|
|
34856
|
+
this.calendar.activeCellDate = this.calendar.computeActiveDate();
|
|
34857
|
+
}
|
|
34858
|
+
if (this.calendar.activeCellDate !== undefined) {
|
|
34859
|
+
this.calendar.setActiveCell(this.calendar.activeCellDate);
|
|
34860
|
+
}
|
|
34861
|
+
|
|
34862
|
+
// If no cell matched (e.g. centralDate month differs from the rendered
|
|
34863
|
+
// range on mobile), fall back to the first rendered enabled cell.
|
|
34864
|
+
let activeCell = allCells.find((cell) => cell.active);
|
|
34865
|
+
if (!activeCell && allCells.length) {
|
|
34866
|
+
const [fallback] = allCells;
|
|
34867
|
+
if (fallback.day) {
|
|
34868
|
+
this.calendar.activeCellDate = fallback.day.date;
|
|
34869
|
+
this.calendar.setActiveCell(this.calendar.activeCellDate);
|
|
34870
|
+
activeCell = allCells.find((cell) => cell.active);
|
|
34871
|
+
}
|
|
34872
|
+
}
|
|
34873
|
+
|
|
34874
|
+
// Focus the calendar grid wrapper (aria-activedescendant handles
|
|
34875
|
+
// the SR announcement for the active cell).
|
|
34876
|
+
if (activeCell) {
|
|
34877
|
+
this.calendar.focusActiveCell();
|
|
34878
|
+
|
|
34879
|
+
// Announce the initial active cell via the live region.
|
|
34880
|
+
// Delay the announcement so it arrives after VoiceOver finishes
|
|
34881
|
+
// speaking the focus-change announcement for the grid wrapper.
|
|
34882
|
+
// Without this delay, VoiceOver drops the live region update
|
|
34883
|
+
// because it's already mid-announcement from the focus move.
|
|
34884
|
+
const announcement = this.calendar.buildFocusAnnouncement(activeCell.day.date);
|
|
34885
|
+
setTimeout(() => {
|
|
34886
|
+
this.calendar.announceSelection(announcement);
|
|
34887
|
+
}, 500);
|
|
34888
|
+
|
|
34889
|
+
// On mobile fullscreen, scroll the month list so the active cell's
|
|
34890
|
+
// month is visible. Without this, the list stays scrolled to the
|
|
34891
|
+
// calendarStartDate month which may be far from the active cell.
|
|
34892
|
+
if (this.dropdown.isBibFullscreen) {
|
|
34893
|
+
this.calendar.scrollToActiveCell();
|
|
34894
|
+
}
|
|
34895
|
+
} else if (attempts < MAX_ATTEMPTS) {
|
|
34896
|
+
requestAnimationFrame(tryFocus);
|
|
34897
|
+
}
|
|
34898
|
+
};
|
|
34899
|
+
|
|
34900
|
+
requestAnimationFrame(tryFocus);
|
|
34901
|
+
}
|
|
34902
|
+
|
|
32796
34903
|
/**
|
|
32797
34904
|
* Binds all behavior needed to the dropdown after rendering.
|
|
32798
34905
|
* @private
|
|
@@ -32801,6 +34908,12 @@ class AuroDatePicker extends AuroElement {
|
|
|
32801
34908
|
configureDropdown() {
|
|
32802
34909
|
this.dropdown = this.shadowRoot.querySelector(this.dropdownTag._$litStatic$);
|
|
32803
34910
|
|
|
34911
|
+
// The datepicker manages its own open/close lifecycle (Space/Escape/date-select/done).
|
|
34912
|
+
// Prevent the floater's document-level focusin handler from closing the bib
|
|
34913
|
+
// when focus moves from the trigger into the calendar cells (which live inside
|
|
34914
|
+
// a top-layer popover where :focus-within on the dropdown host returns false).
|
|
34915
|
+
this.dropdown.noHideOnThisFocusLoss = true;
|
|
34916
|
+
|
|
32804
34917
|
// Pass label text to the dropdown bib for accessible dialog naming.
|
|
32805
34918
|
// Without this, the fullscreen <dialog> has no accessible name and
|
|
32806
34919
|
// screen readers announce it as just "dialog" with no context.
|
|
@@ -32818,6 +34931,23 @@ class AuroDatePicker extends AuroElement {
|
|
|
32818
34931
|
this.dropdown.addEventListener('auroDropdown-toggled', () => {
|
|
32819
34932
|
this.notifyDatepickerToggled();
|
|
32820
34933
|
|
|
34934
|
+
if (this.dropdown.isPopoverVisible) {
|
|
34935
|
+
// Reset calendar focus state so it recomputes from the current selection.
|
|
34936
|
+
// Without this, reopening after navigating to a month without a selected
|
|
34937
|
+
// date leaves activeCellDate pointing at a cell in a different month than
|
|
34938
|
+
// what centralDate renders, causing all cells to have tabindex="-1".
|
|
34939
|
+
this.calendar.activeCellDate = null;
|
|
34940
|
+
|
|
34941
|
+
// Show the month containing the selected date (or today) instead of
|
|
34942
|
+
// whichever month the user last navigated to.
|
|
34943
|
+
// Respect consumer-provided centralDate/calendarStartDate if no value is set.
|
|
34944
|
+
if (this.valueObject) {
|
|
34945
|
+
this.centralDate = this.value;
|
|
34946
|
+
} else if (!this.centralDate && !this.calendarStartDate && !this.minDate) {
|
|
34947
|
+
this.centralDate = new Date();
|
|
34948
|
+
}
|
|
34949
|
+
}
|
|
34950
|
+
|
|
32821
34951
|
// This forces the calendar to render when the dropdown is opened.
|
|
32822
34952
|
// It is not rendered by default
|
|
32823
34953
|
this.calendar.visible = this.dropdown.isPopoverVisible;
|
|
@@ -32850,12 +34980,23 @@ class AuroDatePicker extends AuroElement {
|
|
|
32850
34980
|
bibEl.open(true);
|
|
32851
34981
|
|
|
32852
34982
|
doubleRaf(() => {
|
|
32853
|
-
this.
|
|
34983
|
+
this.focusActiveCellWhenReady();
|
|
32854
34984
|
});
|
|
32855
34985
|
}
|
|
32856
34986
|
});
|
|
32857
34987
|
|
|
32858
34988
|
guardTouchPassthrough(this.shadowRoot.querySelector('.calendarWrapper'));
|
|
34989
|
+
} else {
|
|
34990
|
+
// Desktop (non-fullscreen) modal: make the trigger inert so users
|
|
34991
|
+
// cannot interact with the input while the modal bib is open.
|
|
34992
|
+
if (this.dropdown.desktopModal) {
|
|
34993
|
+
this.dropdown.trigger.inert = true;
|
|
34994
|
+
}
|
|
34995
|
+
|
|
34996
|
+
// Desktop (non-fullscreen): focus the active calendar cell.
|
|
34997
|
+
this.dropdown.updateComplete.then(() => {
|
|
34998
|
+
this.focusActiveCellWhenReady();
|
|
34999
|
+
});
|
|
32859
35000
|
}
|
|
32860
35001
|
} else {
|
|
32861
35002
|
// Always clear the inert flag. Only restore focus to the input when the datepicker
|
|
@@ -32900,14 +35041,35 @@ class AuroDatePicker extends AuroElement {
|
|
|
32900
35041
|
if (bibEl && this.dropdown.isPopoverVisible) {
|
|
32901
35042
|
bibEl.close();
|
|
32902
35043
|
bibEl.open(true);
|
|
35044
|
+
}
|
|
35045
|
+
|
|
35046
|
+
// Re-render the calendar with the new fullscreen layout,
|
|
35047
|
+
// then restore focus after the re-render completes.
|
|
35048
|
+
this.calendar.isFullscreen = true;
|
|
35049
|
+
this.calendar.updateComplete.then(() => {
|
|
32903
35050
|
doubleRaf(() => {
|
|
32904
|
-
this.
|
|
35051
|
+
this.focusActiveCellWhenReady();
|
|
32905
35052
|
});
|
|
32906
|
-
}
|
|
35053
|
+
});
|
|
32907
35054
|
});
|
|
32908
35055
|
} else if (!this.dropdown.isBibFullscreen) {
|
|
32909
|
-
// Switching from fullscreen to floating — restore trigger accessibility
|
|
32910
|
-
|
|
35056
|
+
// Switching from fullscreen to floating — only restore trigger accessibility
|
|
35057
|
+
// when the bib is closed or the desktop layout is not a modal. A desktopModal
|
|
35058
|
+
// dropdown keeps the trigger inert while open, matching the desktop-open path.
|
|
35059
|
+
if (!this.dropdown.isPopoverVisible || !this.dropdown.desktopModal) {
|
|
35060
|
+
this.dropdown.trigger.inert = false;
|
|
35061
|
+
}
|
|
35062
|
+
|
|
35063
|
+
// Re-render the calendar with the desktop layout,
|
|
35064
|
+
// then restore focus after the re-render completes.
|
|
35065
|
+
this.dropdown.updateComplete.then(() => {
|
|
35066
|
+
this.calendar.isFullscreen = false;
|
|
35067
|
+
this.calendar.updateComplete.then(() => {
|
|
35068
|
+
doubleRaf(() => {
|
|
35069
|
+
this.focusActiveCellWhenReady();
|
|
35070
|
+
});
|
|
35071
|
+
});
|
|
35072
|
+
});
|
|
32911
35073
|
}
|
|
32912
35074
|
});
|
|
32913
35075
|
}
|
|
@@ -33095,14 +35257,8 @@ class AuroDatePicker extends AuroElement {
|
|
|
33095
35257
|
|
|
33096
35258
|
if (onEndValue) {
|
|
33097
35259
|
this.valueEnd = newDate;
|
|
33098
|
-
if (this.dropdown.isPopoverVisible && !this.dropdown.isBibFullscreen) {
|
|
33099
|
-
this.focus('startDate');
|
|
33100
|
-
}
|
|
33101
35260
|
} else {
|
|
33102
35261
|
this.value = newDate;
|
|
33103
|
-
if (this.dropdown.isPopoverVisible && !this.dropdown.isBibFullscreen) {
|
|
33104
|
-
this.focus('endDate');
|
|
33105
|
-
}
|
|
33106
35262
|
}
|
|
33107
35263
|
}
|
|
33108
35264
|
}
|
|
@@ -33142,6 +35298,23 @@ class AuroDatePicker extends AuroElement {
|
|
|
33142
35298
|
this.resetInputs();
|
|
33143
35299
|
}
|
|
33144
35300
|
|
|
35301
|
+
/**
|
|
35302
|
+
* Checks whether a formatted date string matches a blackout date.
|
|
35303
|
+
* @private
|
|
35304
|
+
* @param {string} dateStr - A date string in the component's configured format.
|
|
35305
|
+
* @returns {boolean} True if the date is in the blackoutDates list.
|
|
35306
|
+
*/
|
|
35307
|
+
isBlackoutDate(dateStr) {
|
|
35308
|
+
if (!Array.isArray(this.blackoutDates) ||
|
|
35309
|
+
this.blackoutDates.length === 0 ||
|
|
35310
|
+
!dateStr ||
|
|
35311
|
+
!dateFormatter$1.isValidDate(dateStr)) {
|
|
35312
|
+
return false;
|
|
35313
|
+
}
|
|
35314
|
+
|
|
35315
|
+
return this.blackoutDates.includes(dateStr);
|
|
35316
|
+
}
|
|
35317
|
+
|
|
33145
35318
|
/**
|
|
33146
35319
|
* Validates value.
|
|
33147
35320
|
* @param {boolean} [force=false] - Whether to force validation.
|
|
@@ -33153,6 +35326,23 @@ class AuroDatePicker extends AuroElement {
|
|
|
33153
35326
|
}
|
|
33154
35327
|
|
|
33155
35328
|
this.validation.validate(this, force);
|
|
35329
|
+
|
|
35330
|
+
// After standard validation, check blackout dates for typed input
|
|
35331
|
+
if (this.validity !== 'customError' &&
|
|
35332
|
+
(this.isBlackoutDate(this.value) || (this.range && this.isBlackoutDate(this.valueEnd)))) { // eslint-disable-line no-extra-parens
|
|
35333
|
+
const msg = this.setCustomValidityCustomError || 'Selected date is unavailable';
|
|
35334
|
+
this.validity = 'customError';
|
|
35335
|
+
this.errorMessage = msg;
|
|
35336
|
+
|
|
35337
|
+
this.dispatchEvent(new CustomEvent('auroFormElement-validated', {
|
|
35338
|
+
bubbles: true,
|
|
35339
|
+
composed: true,
|
|
35340
|
+
detail: {
|
|
35341
|
+
validity: this.validity,
|
|
35342
|
+
message: this.errorMessage
|
|
35343
|
+
}
|
|
35344
|
+
}));
|
|
35345
|
+
}
|
|
33156
35346
|
}
|
|
33157
35347
|
|
|
33158
35348
|
/**
|
|
@@ -33171,20 +35361,43 @@ class AuroDatePicker extends AuroElement {
|
|
|
33171
35361
|
this.hasAllValues = (this.value && this.value.length > 0) && (this.valueEnd && this.valueEnd.length > 0); // eslint-disable-line no-extra-parens
|
|
33172
35362
|
}
|
|
33173
35363
|
|
|
35364
|
+
/**
|
|
35365
|
+
* Returns `true` when the datepicker has an active validation error.
|
|
35366
|
+
* @returns {boolean}
|
|
35367
|
+
*/
|
|
33174
35368
|
get hasError() {
|
|
33175
35369
|
return this.validity !== undefined && this.validity !== 'valid';
|
|
33176
35370
|
}
|
|
33177
35371
|
|
|
33178
|
-
|
|
35372
|
+
/**
|
|
35373
|
+
* Lifecycle method to check if the locale is valid.
|
|
35374
|
+
* @ignore
|
|
35375
|
+
* @param {Map} changedProperties - The map of properties that have changed since the last update.
|
|
35376
|
+
* @returns {void}
|
|
35377
|
+
*/
|
|
35378
|
+
willUpdate(changedProperties) {
|
|
33179
35379
|
if (changedProperties.has('locale')) {
|
|
33180
|
-
|
|
33181
|
-
const
|
|
33182
|
-
|
|
33183
|
-
|
|
33184
|
-
}
|
|
35380
|
+
try {
|
|
35381
|
+
const supported = Intl.DateTimeFormat.supportedLocalesOf([this.locale], { localeMatcher: 'lookup' });
|
|
35382
|
+
this._validLocale = supported.length > 0 ? this.locale : 'en-US';
|
|
35383
|
+
} catch {
|
|
35384
|
+
console.debug(`[AuroDatePicker] The locale "${this.locale}" is not valid. Falling back to "en-US".`); // eslint-disable-line no-console
|
|
35385
|
+
this._validLocale = 'en-US';
|
|
35386
|
+
}
|
|
35387
|
+
|
|
35388
|
+
const previousLocaleFormat = getDateFormatFromLocale$1(changedProperties.get('locale'));
|
|
35389
|
+
if (!changedProperties.has('format') && (!this.format || this.format.toLowerCase() === previousLocaleFormat)) {
|
|
35390
|
+
this.format = getDateFormatFromLocale$1(this._validLocale);
|
|
33185
35391
|
}
|
|
33186
35392
|
}
|
|
33187
35393
|
|
|
35394
|
+
if (changedProperties.has('referenceDates') && this.calendar) {
|
|
35395
|
+
this.calendar.requestUpdate();
|
|
35396
|
+
this.dispatchEvent(new CustomEvent('auroDatePicker-newSlotContent'));
|
|
35397
|
+
}
|
|
35398
|
+
}
|
|
35399
|
+
|
|
35400
|
+
updated(changedProperties) {
|
|
33188
35401
|
if (changedProperties.has('disabled')) {
|
|
33189
35402
|
if (this.disabled) {
|
|
33190
35403
|
this.previousTabIndex = this.getAttribute('tabindex');
|
|
@@ -33211,17 +35424,18 @@ class AuroDatePicker extends AuroElement {
|
|
|
33211
35424
|
if (changedProperties.has('value')) {
|
|
33212
35425
|
|
|
33213
35426
|
// Change the calendar focus to the first valid date value only the first time the value is set
|
|
33214
|
-
if (!this.calendarFocusDate && dateFormatter$1.isValidDate(this.value)) {
|
|
33215
|
-
|
|
33216
|
-
this.calendarFocusDate = this.value;
|
|
35427
|
+
if (!this.calendarFocusDate && dateFormatter$1.isValidDate(this.value) && !this.dropdown.isPopoverVisible) {
|
|
35428
|
+
this.calendarFocusDate = this.value;
|
|
33217
35429
|
|
|
33218
|
-
|
|
33219
|
-
|
|
33220
|
-
}
|
|
35430
|
+
// Let the calendar know to scroll to the focus date when it is next rendered on mobile
|
|
35431
|
+
this.forceScrollOnNextMobileCalendarRender = true;
|
|
33221
35432
|
}
|
|
33222
35433
|
|
|
33223
35434
|
if (this.cellClickActive) {
|
|
33224
35435
|
this.cellClickActive = false;
|
|
35436
|
+
this.wasCellClick = true;
|
|
35437
|
+
} else {
|
|
35438
|
+
this.wasCellClick = false;
|
|
33225
35439
|
}
|
|
33226
35440
|
|
|
33227
35441
|
if (this.value && dateFormatter$1.isValidDate(this.value)) {
|
|
@@ -33239,13 +35453,48 @@ class AuroDatePicker extends AuroElement {
|
|
|
33239
35453
|
|
|
33240
35454
|
// update the inputs — auro-input accepts ISO directly
|
|
33241
35455
|
if (this.inputList[0].value !== this.value) {
|
|
33242
|
-
|
|
35456
|
+
if (this.value) {
|
|
35457
|
+
this.inputList[0].value = this.value;
|
|
35458
|
+
} else {
|
|
35459
|
+
this.inputList[0].value = '';
|
|
35460
|
+
}
|
|
35461
|
+
}
|
|
35462
|
+
|
|
35463
|
+
if (this.value && this.value.length === this.inputList[0].lengthForType && !(this.wasCellClick && this.range)) {
|
|
35464
|
+
// Skip centralDate update when user clicked a cell in range mode
|
|
35465
|
+
// to prevent the displayed months from shifting
|
|
35466
|
+
this.centralDate = this.value;
|
|
35467
|
+
//TODO: TEST THIS CHANGE
|
|
35468
|
+
// this.calendarRenderUtil.updateCentralDate(this, this.value);
|
|
33243
35469
|
}
|
|
33244
35470
|
|
|
33245
35471
|
this.setHasValue();
|
|
33246
35472
|
}
|
|
33247
35473
|
|
|
35474
|
+
if (changedProperties.has('blackoutDates')) {
|
|
35475
|
+
// Force calendar cells to re-render with updated blackout state.
|
|
35476
|
+
// requestUpdate on the calendar alone is insufficient because cells
|
|
35477
|
+
// don't receive blackoutDates as a bound property. Dispatching the
|
|
35478
|
+
// slot content event triggers handleSlotContent → requestUpdate on each cell.
|
|
35479
|
+
if (this.calendar) {
|
|
35480
|
+
this.calendar.requestUpdate();
|
|
35481
|
+
this.dispatchEvent(new CustomEvent('auroDatePicker-newSlotContent'));
|
|
35482
|
+
}
|
|
35483
|
+
|
|
35484
|
+
// Re-run validation so that a previously valid value that now falls on
|
|
35485
|
+
// a blackout date is flagged, and vice versa.
|
|
35486
|
+
if (this.value || this.valueEnd) {
|
|
35487
|
+
this.validate();
|
|
35488
|
+
}
|
|
35489
|
+
}
|
|
35490
|
+
|
|
33248
35491
|
if (changedProperties.has('valueEnd') && this.inputList[1]) {
|
|
35492
|
+
if (this.cellClickActive) {
|
|
35493
|
+
this.cellClickActive = false;
|
|
35494
|
+
this.wasCellClick = true;
|
|
35495
|
+
} else {
|
|
35496
|
+
this.wasCellClick = false;
|
|
35497
|
+
}
|
|
33249
35498
|
|
|
33250
35499
|
// update the calendar
|
|
33251
35500
|
if (this.valueEndObject) {
|
|
@@ -33263,7 +35512,19 @@ class AuroDatePicker extends AuroElement {
|
|
|
33263
35512
|
|
|
33264
35513
|
// update the inputs — auro-input accepts ISO directly
|
|
33265
35514
|
if (this.inputList[1].value !== this.valueEnd) {
|
|
33266
|
-
|
|
35515
|
+
if (this.valueEnd) {
|
|
35516
|
+
this.inputList[1].value = this.valueEnd;
|
|
35517
|
+
} else {
|
|
35518
|
+
this.inputList[1].value = '';
|
|
35519
|
+
}
|
|
35520
|
+
}
|
|
35521
|
+
|
|
35522
|
+
if (this.valueEnd && this.valueEnd.length === this.inputList[1].lengthForType && !this.wasCellClick) {
|
|
35523
|
+
// Skip centralDate update when user clicked a cell in range mode
|
|
35524
|
+
// to prevent the displayed months from shifting
|
|
35525
|
+
this.centralDate = this.valueEnd;
|
|
35526
|
+
// TODO: TEST THIS CHANGE
|
|
35527
|
+
// this.calendarRenderUtil.updateCentralDate(this, this.formattedValueEnd);
|
|
33267
35528
|
}
|
|
33268
35529
|
|
|
33269
35530
|
this.validate();
|
|
@@ -33306,16 +35567,14 @@ class AuroDatePicker extends AuroElement {
|
|
|
33306
35567
|
this.calendarRenderUtil.updateCentralDate(this, this.minDateObject);
|
|
33307
35568
|
}
|
|
33308
35569
|
|
|
33309
|
-
if (!changedProperties.has('value') && this.valueObject) {
|
|
33310
|
-
|
|
33311
|
-
this.value = undefined;
|
|
33312
|
-
|
|
33313
|
-
if (this.range && this.valueEnd) {
|
|
33314
|
-
this.valueEnd = undefined;
|
|
33315
|
-
}
|
|
35570
|
+
if (!changedProperties.has('value') && this.valueObject && this.minDateObject > this.valueObject) {
|
|
35571
|
+
this.value = undefined;
|
|
33316
35572
|
|
|
33317
|
-
|
|
35573
|
+
if (this.range && this.valueEnd) {
|
|
35574
|
+
this.valueEnd = undefined;
|
|
33318
35575
|
}
|
|
35576
|
+
|
|
35577
|
+
this.calendarRenderUtil.updateCentralDate(this, this.minDateObject);
|
|
33319
35578
|
}
|
|
33320
35579
|
|
|
33321
35580
|
// When there is no focusDate and no value, set the focusDate to the minDate
|
|
@@ -33346,16 +35605,14 @@ class AuroDatePicker extends AuroElement {
|
|
|
33346
35605
|
}
|
|
33347
35606
|
}
|
|
33348
35607
|
|
|
33349
|
-
if (this.maxDate && !changedProperties.has('value') && this.valueObject) {
|
|
33350
|
-
|
|
33351
|
-
this.value = undefined;
|
|
35608
|
+
if (this.maxDate && !changedProperties.has('value') && this.valueObject && this.maxDateObject < this.valueObject) {
|
|
35609
|
+
this.value = undefined;
|
|
33352
35610
|
|
|
33353
|
-
|
|
33354
|
-
|
|
33355
|
-
}
|
|
33356
|
-
|
|
33357
|
-
this.calendarRenderUtil.updateCentralDate(this, this.maxDateObject);
|
|
35611
|
+
if (this.range && this.valueEnd) {
|
|
35612
|
+
this.valueEnd = undefined;
|
|
33358
35613
|
}
|
|
35614
|
+
|
|
35615
|
+
this.calendarRenderUtil.updateCentralDate(this, this.maxDateObject);
|
|
33359
35616
|
}
|
|
33360
35617
|
|
|
33361
35618
|
this.calendar.requestUpdate();
|
|
@@ -33413,6 +35670,7 @@ class AuroDatePicker extends AuroElement {
|
|
|
33413
35670
|
}
|
|
33414
35671
|
|
|
33415
35672
|
firstUpdated() {
|
|
35673
|
+
|
|
33416
35674
|
// Add the tag name as an attribute if it is different than the component name
|
|
33417
35675
|
this.runtimeUtils.handleComponentTagRename(this, 'auro-datepicker');
|
|
33418
35676
|
|
|
@@ -33428,14 +35686,6 @@ class AuroDatePicker extends AuroElement {
|
|
|
33428
35686
|
super.connectedCallback();
|
|
33429
35687
|
|
|
33430
35688
|
this.locale = this.domHandler.getLocale(this);
|
|
33431
|
-
|
|
33432
|
-
// Derive format eagerly so the first render has a valid format.
|
|
33433
|
-
// updated() handles locale changes after the initial render, but runs
|
|
33434
|
-
// after render(), so without this a preset value would briefly display
|
|
33435
|
-
// as a raw ISO string in the fullscreen bib.
|
|
33436
|
-
if (!this.format) {
|
|
33437
|
-
this.format = getDateFormatFromLocale$1(this.locale);
|
|
33438
|
-
}
|
|
33439
35689
|
}
|
|
33440
35690
|
|
|
33441
35691
|
// layout render methods
|
|
@@ -33485,7 +35735,7 @@ class AuroDatePicker extends AuroElement {
|
|
|
33485
35735
|
<div class="${classMap(this.commonDisplayValueWrapperClasses)}">
|
|
33486
35736
|
<slot name="displayValue" @slotchange=${this.checkDisplayValueSlotChange}>
|
|
33487
35737
|
<span>
|
|
33488
|
-
${this.formatShortDate(this.
|
|
35738
|
+
${this.formatShortDate(this.valueObject)}${this.range ? html$1`–${this.formatShortDate(this.valueEndObject)}` : undefined}
|
|
33489
35739
|
</span>
|
|
33490
35740
|
</slot>
|
|
33491
35741
|
</div>
|
|
@@ -33559,7 +35809,7 @@ class AuroDatePicker extends AuroElement {
|
|
|
33559
35809
|
* Simple formatter that ONLY WORKS FOR US DATES.
|
|
33560
35810
|
* Returns formatted date like Apr 21 or Dec 25.
|
|
33561
35811
|
* @private
|
|
33562
|
-
* @param {
|
|
35812
|
+
* @param {Date} date - Date format should be in a format Date constructor accepts, like '2023-04-21' or '2023/04/21'.
|
|
33563
35813
|
* @returns {string}
|
|
33564
35814
|
*/
|
|
33565
35815
|
formatShortDate(date) {
|
|
@@ -33569,16 +35819,16 @@ class AuroDatePicker extends AuroElement {
|
|
|
33569
35819
|
day: '2-digit'
|
|
33570
35820
|
};
|
|
33571
35821
|
|
|
33572
|
-
return
|
|
35822
|
+
return date?.toLocaleDateString(this.locale, options).replace(',', '');
|
|
33573
35823
|
}
|
|
33574
35824
|
|
|
33575
35825
|
/**
|
|
33576
35826
|
* Format and render the provided date value.
|
|
33577
35827
|
* @private
|
|
33578
|
-
* @param {
|
|
35828
|
+
* @param {Date} date - The date value to format and render.
|
|
33579
35829
|
* @returns {import('lit').TemplateResult}
|
|
33580
35830
|
*/
|
|
33581
|
-
renderDisplayTextDate(
|
|
35831
|
+
renderDisplayTextDate(date) {
|
|
33582
35832
|
const displayTextClasses = {
|
|
33583
35833
|
'displayValueText': true,
|
|
33584
35834
|
'body-lg': true
|
|
@@ -33587,8 +35837,8 @@ class AuroDatePicker extends AuroElement {
|
|
|
33587
35837
|
return html$1`
|
|
33588
35838
|
<div>
|
|
33589
35839
|
<div class="${classMap(displayTextClasses)}">
|
|
33590
|
-
${
|
|
33591
|
-
? this.formatShortDate(
|
|
35840
|
+
${date
|
|
35841
|
+
? this.formatShortDate(date)
|
|
33592
35842
|
: undefined
|
|
33593
35843
|
}
|
|
33594
35844
|
</div>
|
|
@@ -33615,7 +35865,7 @@ class AuroDatePicker extends AuroElement {
|
|
|
33615
35865
|
?required="${this.required}"
|
|
33616
35866
|
?hideLabelVisually="${this.layout !== 'classic'}"
|
|
33617
35867
|
format="${this.format}"
|
|
33618
|
-
locale="${this.
|
|
35868
|
+
locale="${this._validLocale}"
|
|
33619
35869
|
.max="${this.maxDate}"
|
|
33620
35870
|
.min="${this.minDate}"
|
|
33621
35871
|
.placeholder="${this.placeholder}"
|
|
@@ -33637,7 +35887,7 @@ class AuroDatePicker extends AuroElement {
|
|
|
33637
35887
|
${this.layout !== "classic"
|
|
33638
35888
|
? html$1`
|
|
33639
35889
|
<span slot="displayValue">
|
|
33640
|
-
${this.renderDisplayTextDate(this.
|
|
35890
|
+
${this.renderDisplayTextDate(this.valueObject)}
|
|
33641
35891
|
</span>
|
|
33642
35892
|
`
|
|
33643
35893
|
: undefined
|
|
@@ -33660,7 +35910,7 @@ class AuroDatePicker extends AuroElement {
|
|
|
33660
35910
|
?required="${this.required}"
|
|
33661
35911
|
?hideLabelVisually="${this.layout !== 'classic'}"
|
|
33662
35912
|
.format="${this.format}"
|
|
33663
|
-
locale="${this.
|
|
35913
|
+
locale="${this._validLocale}"
|
|
33664
35914
|
.max="${this.maxDate}"
|
|
33665
35915
|
.min="${this.minDate}"
|
|
33666
35916
|
.placeholder="${this.placeholderEndDate || this.placeholder}"
|
|
@@ -33681,7 +35931,7 @@ class AuroDatePicker extends AuroElement {
|
|
|
33681
35931
|
${this.layout !== "classic"
|
|
33682
35932
|
? html$1`
|
|
33683
35933
|
<span slot="displayValue">
|
|
33684
|
-
${this.renderDisplayTextDate(this.
|
|
35934
|
+
${this.renderDisplayTextDate(this.valueEndObject)}
|
|
33685
35935
|
</span>
|
|
33686
35936
|
`
|
|
33687
35937
|
: undefined
|
|
@@ -33703,7 +35953,7 @@ class AuroDatePicker extends AuroElement {
|
|
|
33703
35953
|
/**
|
|
33704
35954
|
* Handles click on the clear button.
|
|
33705
35955
|
* @private
|
|
33706
|
-
* @param {MouseEvent} event - The
|
|
35956
|
+
* @param {MouseEvent} event - The mouse event from the clear button click.
|
|
33707
35957
|
* @returns {void}
|
|
33708
35958
|
*/
|
|
33709
35959
|
handleClearClick(event) {
|
|
@@ -33827,7 +36077,7 @@ class AuroDatePicker extends AuroElement {
|
|
|
33827
36077
|
.maxDate="${this.maxDate}"
|
|
33828
36078
|
.minDate="${this.minDate}"
|
|
33829
36079
|
.monthNames="${this.monthNames}"
|
|
33830
|
-
.localeCode="${this.
|
|
36080
|
+
.localeCode="${this._validLocale}"
|
|
33831
36081
|
.mobileBreakpoint="${this.mobileBreakpoint}"
|
|
33832
36082
|
part="calendar"
|
|
33833
36083
|
>
|
|
@@ -33836,8 +36086,8 @@ class AuroDatePicker extends AuroElement {
|
|
|
33836
36086
|
<slot slot="bib.fullscreen.dateLabel" name="bib.fullscreen.dateLabel" @slotchange="${this.handleSlotToSlot}"></slot>
|
|
33837
36087
|
<slot slot="bib.fullscreen.toLabel" name="bib.fullscreen.toLabel" @slotchange="${this.handleSlotToSlot}"></slot>
|
|
33838
36088
|
<slot slot="bib.fullscreen.fromLabel" name="bib.fullscreen.fromLabel" @slotchange="${this.handleSlotToSlot}"></slot>
|
|
33839
|
-
<span slot="bib.fullscreen.fromStr">${AuroInputUtil.toFormattedValue(this.
|
|
33840
|
-
${this.range ? html$1`<span slot="bib.fullscreen.toStr">${AuroInputUtil.toFormattedValue(this.
|
|
36089
|
+
<span slot="bib.fullscreen.fromStr">${AuroInputUtil.toFormattedValue(this.valueObject, this.format) || html$1`<span class="placeholderDate">${(this.format || 'mm/dd/yyyy').toUpperCase()}</span>`}</span>
|
|
36090
|
+
${this.range ? html$1`<span slot="bib.fullscreen.toStr">${AuroInputUtil.toFormattedValue(this.valueEndObject, this.format) || html$1`<span class="placeholderDate">${(this.format || 'mm/dd/yyyy').toUpperCase()}</span>`}</span>` : undefined}
|
|
33841
36091
|
</auro-formkit-calendar>
|
|
33842
36092
|
`;
|
|
33843
36093
|
}
|
|
@@ -33851,7 +36101,7 @@ class AuroDatePicker extends AuroElement {
|
|
|
33851
36101
|
// Base HTML render() handles dropdown and calendar bib
|
|
33852
36102
|
return html$1`
|
|
33853
36103
|
<!-- Hidden slot for clear button aria-label -->
|
|
33854
|
-
<slot name="ariaLabel.input.clear" hidden @slotchange=${this.requestUpdate}></slot>
|
|
36104
|
+
<slot name="ariaLabel.input.clear" hidden @slotchange=${() => this.requestUpdate()}></slot>
|
|
33855
36105
|
|
|
33856
36106
|
<${this.dropdownTag}
|
|
33857
36107
|
appearance="${this.onDark ? 'inverse' : this.appearance}"
|
|
@@ -33868,6 +36118,7 @@ class AuroDatePicker extends AuroElement {
|
|
|
33868
36118
|
.shape="${this.shape}"
|
|
33869
36119
|
.size="${this.size}"
|
|
33870
36120
|
class="${classMap(dropdownElementClassMap)}"
|
|
36121
|
+
desktopModal
|
|
33871
36122
|
disableEventShow
|
|
33872
36123
|
for="dropdownMenu"
|
|
33873
36124
|
part="dropdown"
|