@aurodesignsystem-dev/auro-formkit 0.0.0-pr1508.0 → 0.0.0-pr1508.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components/bibtemplate/dist/index.js +1 -1
- package/components/bibtemplate/dist/registered.js +1 -1
- package/components/checkbox/demo/customize.min.js +8 -6
- package/components/checkbox/demo/getting-started.min.js +8 -6
- package/components/checkbox/demo/index.min.js +8 -6
- package/components/checkbox/dist/index.js +8 -6
- package/components/checkbox/dist/registered.js +8 -6
- package/components/combobox/README.md +1 -1
- package/components/combobox/demo/customize.md +2 -10
- package/components/combobox/demo/customize.min.js +386 -305
- package/components/combobox/demo/getting-started.min.js +386 -301
- package/components/combobox/demo/index.md +1 -1
- package/components/combobox/demo/index.min.js +386 -301
- package/components/combobox/demo/keyboard-behavior.md +2 -142
- package/components/combobox/demo/readme.md +1 -1
- package/components/combobox/demo/why-combobox.md +2 -2
- package/components/combobox/dist/auro-combobox.d.ts +23 -16
- package/components/combobox/dist/index.js +385 -300
- package/components/combobox/dist/registered.js +385 -300
- package/components/counter/demo/customize.min.js +18 -8
- package/components/counter/demo/index.min.js +18 -8
- package/components/counter/dist/index.js +18 -8
- package/components/counter/dist/registered.js +18 -8
- package/components/datepicker/demo/accessibility.md +2 -1
- package/components/datepicker/demo/api.md +63 -62
- package/components/datepicker/demo/customize.md +12 -1
- package/components/datepicker/demo/customize.min.js +932 -335
- package/components/datepicker/demo/index.min.js +932 -335
- package/components/datepicker/dist/{src/auro-calendar-cell.d.ts → auro-calendar-cell.d.ts} +20 -3
- package/components/datepicker/dist/{src/auro-calendar.d.ts → auro-calendar.d.ts} +121 -7
- package/components/datepicker/dist/{src/auro-datepicker.d.ts → auro-datepicker.d.ts} +78 -5
- package/components/datepicker/dist/blackoutUtils.d.ts +43 -0
- package/components/datepicker/dist/index.js +932 -335
- package/components/datepicker/dist/registered.js +932 -335
- package/components/dropdown/demo/customize.min.js +2 -1
- package/components/dropdown/demo/getting-started.min.js +2 -1
- package/components/dropdown/demo/index.min.js +2 -1
- package/components/dropdown/dist/index.js +2 -1
- package/components/dropdown/dist/registered.js +2 -1
- package/components/form/demo/customize.min.js +1690 -826
- package/components/form/demo/getting-started.min.js +1690 -826
- package/components/form/demo/index.min.js +1690 -826
- package/components/form/demo/registerDemoDeps.min.js +1690 -826
- package/components/input/demo/api.md +5 -5
- package/components/input/demo/customize.md +8 -8
- package/components/input/demo/customize.min.js +137 -95
- package/components/input/demo/getting-started.min.js +137 -95
- package/components/input/demo/index.min.js +137 -95
- package/components/input/dist/base-input.d.ts +33 -44
- package/components/input/dist/index.js +150 -96
- package/components/input/dist/registered.js +137 -95
- package/components/radio/demo/customize.min.js +8 -6
- package/components/radio/demo/getting-started.min.js +8 -6
- package/components/radio/demo/index.min.js +8 -6
- package/components/radio/dist/index.js +8 -6
- package/components/radio/dist/registered.js +8 -6
- package/components/select/demo/customize.md +86 -0
- package/components/select/demo/customize.min.js +194 -68
- package/components/select/demo/getting-started.min.js +196 -115
- package/components/select/demo/index.min.js +194 -68
- package/components/select/demo/keyboard-behavior.md +18 -4
- package/components/select/dist/auro-select.d.ts +20 -8
- package/components/select/dist/index.js +194 -68
- package/components/select/dist/registered.js +194 -68
- package/custom-elements.json +2365 -1819
- package/package.json +6 -2
- package/components/checkbox/demo/customize.js +0 -22
- package/components/checkbox/demo/demo-support.js +0 -1
- package/components/checkbox/demo/getting-started.js +0 -22
- package/components/checkbox/demo/index.js +0 -8
- package/components/checkbox/demo/styles.scss +0 -1
- package/components/combobox/demo/customize.js +0 -24
- package/components/combobox/demo/demo-support.js +0 -1
- package/components/combobox/demo/getting-started.js +0 -21
- package/components/combobox/demo/index.js +0 -23
- package/components/combobox/demo/styles.scss +0 -1
- package/components/counter/demo/customize.js +0 -21
- package/components/counter/demo/demo-support.js +0 -1
- package/components/counter/demo/index.js +0 -21
- package/components/counter/demo/styles.scss +0 -1
- package/components/datepicker/demo/customize.js +0 -17
- package/components/datepicker/demo/demo-support.js +0 -1
- package/components/datepicker/demo/index.js +0 -23
- package/components/datepicker/demo/styles.scss +0 -1
- package/components/dropdown/demo/customize.js +0 -9
- package/components/dropdown/demo/demo-support.js +0 -1
- package/components/dropdown/demo/getting-started.js +0 -9
- package/components/dropdown/demo/index.js +0 -16
- package/components/dropdown/demo/styles.scss +0 -1
- package/components/form/demo/customize.js +0 -28
- package/components/form/demo/demo-support.js +0 -1
- package/components/form/demo/getting-started.js +0 -9
- package/components/form/demo/index.js +0 -5
- package/components/form/demo/registerDemoDeps.js +0 -23
- package/components/form/demo/styles.scss +0 -1
- package/components/input/demo/customize.js +0 -25
- package/components/input/demo/demo-support.js +0 -1
- package/components/input/demo/getting-started.js +0 -8
- package/components/input/demo/index.js +0 -8
- package/components/input/demo/styles.css +0 -974
- package/components/input/demo/styles.scss +0 -1
- package/components/menu/demo/demo-support.js +0 -1
- package/components/menu/demo/index.js +0 -25
- package/components/menu/demo/styles.scss +0 -1
- package/components/radio/demo/customize.js +0 -22
- package/components/radio/demo/demo-support.js +0 -1
- package/components/radio/demo/getting-started.js +0 -24
- package/components/radio/demo/index.js +0 -8
- package/components/radio/demo/styles.scss +0 -1
- package/components/select/demo/customize.js +0 -11
- package/components/select/demo/demo-support.js +0 -1
- package/components/select/demo/getting-started.js +0 -26
- package/components/select/demo/index.js +0 -11
- package/components/select/demo/styles.scss +0 -1
- /package/components/datepicker/dist/{src/auro-calendar-month.d.ts → auro-calendar-month.d.ts} +0 -0
- /package/components/datepicker/dist/{src/buttonVersion.d.ts → buttonVersion.d.ts} +0 -0
- /package/components/datepicker/dist/{src/datepickerKeyboardStrategy.d.ts → datepickerKeyboardStrategy.d.ts} +0 -0
- /package/components/datepicker/dist/{src/iconVersion.d.ts → iconVersion.d.ts} +0 -0
- /package/components/datepicker/dist/{src/index.d.ts → index.d.ts} +0 -0
- /package/components/datepicker/dist/{src/popoverVersion.d.ts → popoverVersion.d.ts} +0 -0
- /package/components/datepicker/dist/{src/styles → styles}/classic/color-css.d.ts +0 -0
- /package/components/datepicker/dist/{src/styles → styles}/classic/style-css.d.ts +0 -0
- /package/components/datepicker/dist/{src/styles → styles}/color-calendar-css.d.ts +0 -0
- /package/components/datepicker/dist/{src/styles → styles}/color-cell-css.d.ts +0 -0
- /package/components/datepicker/dist/{src/styles → styles}/color-css.d.ts +0 -0
- /package/components/datepicker/dist/{src/styles → styles}/color-month-css.d.ts +0 -0
- /package/components/datepicker/dist/{src/styles → styles}/shapeSize-css.d.ts +0 -0
- /package/components/datepicker/dist/{src/styles → styles}/snowflake/color-css.d.ts +0 -0
- /package/components/datepicker/dist/{src/styles → styles}/snowflake/style-css.d.ts +0 -0
- /package/components/datepicker/dist/{src/styles → styles}/style-auro-calendar-cell-css.d.ts +0 -0
- /package/components/datepicker/dist/{src/styles → styles}/style-auro-calendar-css.d.ts +0 -0
- /package/components/datepicker/dist/{src/styles → styles}/style-auro-calendar-month-css.d.ts +0 -0
- /package/components/datepicker/dist/{src/styles → styles}/style-css.d.ts +0 -0
- /package/components/datepicker/dist/{src/styles → styles}/tokens-css.d.ts +0 -0
- /package/components/datepicker/dist/{src/utilities.d.ts → utilities.d.ts} +0 -0
- /package/components/datepicker/dist/{src/utilitiesCalendar.d.ts → utilitiesCalendar.d.ts} +0 -0
- /package/components/datepicker/dist/{src/utilitiesCalendarRender.d.ts → utilitiesCalendarRender.d.ts} +0 -0
- /package/components/datepicker/dist/{src/vendor → vendor}/wc-range-datepicker/day.d.ts +0 -0
- /package/components/datepicker/dist/{src/vendor → vendor}/wc-range-datepicker/range-datepicker-calendar.d.ts +0 -0
- /package/components/datepicker/dist/{src/vendor → vendor}/wc-range-datepicker/range-datepicker-cell.d.ts +0 -0
- /package/components/datepicker/dist/{src/vendor → vendor}/wc-range-datepicker/range-datepicker.d.ts +0 -0
|
@@ -5553,15 +5553,17 @@ let AuroFormValidation$7 = class AuroFormValidation {
|
|
|
5553
5553
|
);
|
|
5554
5554
|
}
|
|
5555
5555
|
|
|
5556
|
-
|
|
5557
|
-
|
|
5558
|
-
|
|
5556
|
+
const isCombobox = this.runtimeUtils.elementMatch(elem, 'auro-combobox');
|
|
5557
|
+
|
|
5558
|
+
// If there is a second input in the elem and that value is undefined or an empty string set hasValue to false.
|
|
5559
|
+
// Skip for combobox: its second auro-input is the fullscreen-bib mirror of the same value, not an independent
|
|
5560
|
+
// field (datepicker is the intended consumer — start/end are independently required).
|
|
5561
|
+
if (this.auroInputElements?.length === 2 && !isCombobox) {
|
|
5562
|
+
if (!this.auroInputElements[1].value || this.auroInputElements[1].value.length === 0) {
|
|
5559
5563
|
hasValue = false;
|
|
5560
5564
|
}
|
|
5561
5565
|
}
|
|
5562
5566
|
|
|
5563
|
-
const isCombobox = this.runtimeUtils.elementMatch(elem, 'auro-combobox');
|
|
5564
|
-
|
|
5565
5567
|
if (isCombobox) {
|
|
5566
5568
|
|
|
5567
5569
|
if (!elem.persistInput || elem.behavior === "filter") {
|
|
@@ -6176,7 +6178,7 @@ function normalizeDates$3(context, ...dates) {
|
|
|
6176
6178
|
* const result = startOfDay(new Date(2014, 8, 2, 11, 55, 0))
|
|
6177
6179
|
* //=> Tue Sep 02 2014 00:00:00
|
|
6178
6180
|
*/
|
|
6179
|
-
function startOfDay$
|
|
6181
|
+
function startOfDay$3(date, options) {
|
|
6180
6182
|
const _date = toDate$3(date, options?.in);
|
|
6181
6183
|
_date.setHours(0, 0, 0, 0);
|
|
6182
6184
|
return _date;
|
|
@@ -6224,8 +6226,8 @@ function differenceInCalendarDays$3(laterDate, earlierDate, options) {
|
|
|
6224
6226
|
earlierDate,
|
|
6225
6227
|
);
|
|
6226
6228
|
|
|
6227
|
-
const laterStartOfDay = startOfDay$
|
|
6228
|
-
const earlierStartOfDay = startOfDay$
|
|
6229
|
+
const laterStartOfDay = startOfDay$3(laterDate_);
|
|
6230
|
+
const earlierStartOfDay = startOfDay$3(earlierDate_);
|
|
6229
6231
|
|
|
6230
6232
|
const laterTimestamp =
|
|
6231
6233
|
+laterStartOfDay - getTimezoneOffsetInMilliseconds$3(laterStartOfDay);
|
|
@@ -11497,6 +11499,13 @@ let AuroInputUtilities$3 = class AuroInputUtilities {
|
|
|
11497
11499
|
* @returns {string | undefined}
|
|
11498
11500
|
*/
|
|
11499
11501
|
toFormattedValue(valueObject, format) {
|
|
11502
|
+
// Exposed publicly via `AuroInputUtil.toFormattedValue`, so a missing
|
|
11503
|
+
// `format` argument has to fail gracefully rather than throw on
|
|
11504
|
+
// `format.toLowerCase()`. Treat any falsy value (undefined, null, '')
|
|
11505
|
+
// as "no format → no display value".
|
|
11506
|
+
if (!format) {
|
|
11507
|
+
return undefined;
|
|
11508
|
+
}
|
|
11500
11509
|
const normalizedFormat = format.toLowerCase();
|
|
11501
11510
|
const maskOptions = this.getMaskOptions('date', normalizedFormat);
|
|
11502
11511
|
|
|
@@ -11648,76 +11657,19 @@ let BaseInput$2 = class BaseInput extends AuroElement$6 {
|
|
|
11648
11657
|
constructor() {
|
|
11649
11658
|
super();
|
|
11650
11659
|
|
|
11651
|
-
|
|
11652
|
-
|
|
11653
|
-
|
|
11654
|
-
|
|
11655
|
-
|
|
11656
|
-
|
|
11657
|
-
|
|
11658
|
-
|
|
11659
|
-
|
|
11660
|
-
|
|
11661
|
-
this.setCustomValidityForType = undefined;
|
|
11662
|
-
this.size = 'lg';
|
|
11663
|
-
this.shape = 'classic';
|
|
11664
|
-
this.value = undefined;
|
|
11665
|
-
|
|
11666
|
-
this._initializePrivateDefaults();
|
|
11667
|
-
}
|
|
11668
|
-
|
|
11669
|
-
/**
|
|
11670
|
-
* Internal Defaults.
|
|
11671
|
-
* @private
|
|
11672
|
-
* @returns {void}
|
|
11673
|
-
*/
|
|
11674
|
-
_initializePrivateDefaults() {
|
|
11660
|
+
// Single-source initialization. Alphabetized so duplicate or stale
|
|
11661
|
+
// defaults are immediately obvious on a diff. Every field is assigned
|
|
11662
|
+
// exactly once here (previously the constructor + the old
|
|
11663
|
+
// `_initializePrivateDefaults` overlapped — both wrote ~14 of the same
|
|
11664
|
+
// fields and double-allocated `util` and `validation`, discarding the
|
|
11665
|
+
// first instance). `validation` is now allocated exactly once; `util`
|
|
11666
|
+
// is seeded here with an en-US default and then rebuilt in
|
|
11667
|
+
// `connectedCallback` once the consumer-resolved locale is available,
|
|
11668
|
+
// so a parent (datepicker/combobox) calling `validate()` synchronously
|
|
11669
|
+
// during its own update cycle sees a populated util instance.
|
|
11675
11670
|
this.activeLabel = false;
|
|
11676
|
-
this.appearance = "default";
|
|
11677
|
-
this.icon = false;
|
|
11678
|
-
this.disabled = false;
|
|
11679
|
-
this.dvInputOnly = false;
|
|
11680
|
-
this.hideLabelVisually = false;
|
|
11681
|
-
this.max = undefined;
|
|
11682
|
-
this.maxLength = undefined;
|
|
11683
|
-
this.min = undefined;
|
|
11684
|
-
this.minLength = undefined;
|
|
11685
|
-
this.noValidate = false;
|
|
11686
|
-
this.onDark = false;
|
|
11687
|
-
this.required = false;
|
|
11688
|
-
this.setCustomValidityForType = undefined;
|
|
11689
|
-
|
|
11690
|
-
// Used for storing raw values returned from input mask.
|
|
11691
|
-
this._rawMaskValue = undefined;
|
|
11692
|
-
|
|
11693
|
-
/**
|
|
11694
|
-
* @private
|
|
11695
|
-
*/
|
|
11696
|
-
this.layout = 'classic';
|
|
11697
|
-
|
|
11698
|
-
/**
|
|
11699
|
-
* @private
|
|
11700
|
-
*/
|
|
11701
|
-
this.shape = 'classic';
|
|
11702
|
-
|
|
11703
|
-
/**
|
|
11704
|
-
* @private
|
|
11705
|
-
*/
|
|
11706
|
-
this.size = 'lg';
|
|
11707
|
-
|
|
11708
|
-
this.touched = false;
|
|
11709
|
-
this.util = new AuroInputUtilities$3({
|
|
11710
|
-
locale: "en-US",
|
|
11711
|
-
format: this.format
|
|
11712
|
-
});
|
|
11713
|
-
this.validation = new AuroFormValidation$7();
|
|
11714
|
-
this.inputIconName = undefined;
|
|
11715
|
-
this.showPassword = false;
|
|
11716
|
-
this.validationCCLength = undefined;
|
|
11717
|
-
this.hasValue = false;
|
|
11718
|
-
this.label = 'Input label is undefined';
|
|
11719
|
-
|
|
11720
11671
|
|
|
11672
|
+
/** @private */
|
|
11721
11673
|
this.allowedInputTypes = [
|
|
11722
11674
|
"text",
|
|
11723
11675
|
"number",
|
|
@@ -11726,7 +11678,9 @@ let BaseInput$2 = class BaseInput extends AuroElement$6 {
|
|
|
11726
11678
|
"credit-card",
|
|
11727
11679
|
"tel"
|
|
11728
11680
|
];
|
|
11729
|
-
this.
|
|
11681
|
+
this.appearance = "default";
|
|
11682
|
+
|
|
11683
|
+
/** @private */
|
|
11730
11684
|
this.dateFormatMap = {
|
|
11731
11685
|
'mm/dd/yyyy': 'dateMMDDYYYY',
|
|
11732
11686
|
'dd/mm/yyyy': 'dateDDMMYYYY',
|
|
@@ -11743,27 +11697,62 @@ let BaseInput$2 = class BaseInput extends AuroElement$6 {
|
|
|
11743
11697
|
'dd/mm': 'dateDDMM',
|
|
11744
11698
|
'mm/dd': 'dateMMDD'
|
|
11745
11699
|
};
|
|
11700
|
+
this.disabled = false;
|
|
11701
|
+
|
|
11702
|
+
/** @private */
|
|
11746
11703
|
this.domHandler = new DomHandler$3();
|
|
11747
11704
|
this.dvInputOnly = false;
|
|
11748
11705
|
this.hasValue = false;
|
|
11706
|
+
this.hideLabelVisually = false;
|
|
11707
|
+
this.icon = false;
|
|
11708
|
+
|
|
11709
|
+
/** @private */
|
|
11749
11710
|
this.inputIconName = undefined;
|
|
11711
|
+
|
|
11712
|
+
/** @private */
|
|
11750
11713
|
this.label = 'Input label is undefined';
|
|
11714
|
+
this.layout = 'classic';
|
|
11715
|
+
this.locale = 'en-US';
|
|
11716
|
+
this.max = undefined;
|
|
11717
|
+
this.maxLength = undefined;
|
|
11718
|
+
this.min = undefined;
|
|
11719
|
+
this.minLength = undefined;
|
|
11751
11720
|
this.noValidate = false;
|
|
11752
|
-
this.
|
|
11721
|
+
this.onDark = false;
|
|
11722
|
+
// Raw values returned from the input mask before model normalization.
|
|
11723
|
+
this._rawMaskValue = undefined;
|
|
11724
|
+
this.required = false;
|
|
11725
|
+
this.setCustomValidityForType = undefined;
|
|
11726
|
+
// Credit Card is intentionally excluded — its mask manages the cursor
|
|
11727
|
+
// itself, and listing it here caused cursor placement issues in Safari.
|
|
11728
|
+
/** @private */
|
|
11753
11729
|
this.setSelectionInputTypes = [
|
|
11754
11730
|
"text",
|
|
11755
11731
|
"password",
|
|
11756
11732
|
"email"
|
|
11757
|
-
];
|
|
11733
|
+
];
|
|
11734
|
+
this.shape = 'classic';
|
|
11735
|
+
|
|
11736
|
+
/** @private */
|
|
11758
11737
|
this.showPassword = false;
|
|
11738
|
+
this.size = 'lg';
|
|
11759
11739
|
this.touched = false;
|
|
11740
|
+
|
|
11741
|
+
/** @private */
|
|
11760
11742
|
this.uniqueId = new UniqueId$2().create();
|
|
11743
|
+
|
|
11744
|
+
/** @private */
|
|
11761
11745
|
this.util = new AuroInputUtilities$3({
|
|
11762
11746
|
locale: this.locale,
|
|
11763
11747
|
format: this.format
|
|
11764
11748
|
});
|
|
11749
|
+
|
|
11750
|
+
/** @private */
|
|
11765
11751
|
this.validation = new AuroFormValidation$7();
|
|
11752
|
+
|
|
11753
|
+
/** @private */
|
|
11766
11754
|
this.validationCCLength = undefined;
|
|
11755
|
+
this.value = undefined;
|
|
11767
11756
|
}
|
|
11768
11757
|
|
|
11769
11758
|
// function to define props used within the scope of this component
|
|
@@ -12267,6 +12256,15 @@ let BaseInput$2 = class BaseInput extends AuroElement$6 {
|
|
|
12267
12256
|
|
|
12268
12257
|
this.inputId = this.id ? `${this.id}-input` : window.crypto.randomUUID();
|
|
12269
12258
|
|
|
12259
|
+
// Normalize the format token to lowercase so case-mixed values supplied
|
|
12260
|
+
// via attribute (e.g. `format="MM/DD/YYYY"`) hit the `dateFormatMap`
|
|
12261
|
+
// lookup inside `setCustomHelpTextMessage`. Without this, an uppercase
|
|
12262
|
+
// format silently misses the map and leaves `setCustomValidityForType`
|
|
12263
|
+
// unset.
|
|
12264
|
+
if (this.format) {
|
|
12265
|
+
this.format = this.format.toLowerCase();
|
|
12266
|
+
}
|
|
12267
|
+
|
|
12270
12268
|
// use validity message override if declared when initializing the component
|
|
12271
12269
|
if (this.hasAttribute('setCustomValidity')) {
|
|
12272
12270
|
this.ValidityMessageOverride = this.setCustomValidity;
|
|
@@ -12350,6 +12348,13 @@ let BaseInput$2 = class BaseInput extends AuroElement$6 {
|
|
|
12350
12348
|
|
|
12351
12349
|
if (typeToI18n.includes(this.type)) {
|
|
12352
12350
|
this.setCustomValidityForType = i18n$3(this.lang, this.type);
|
|
12351
|
+
// COVERAGE: this `else if` branch is unreachable in WTR. connectedCallback
|
|
12352
|
+
// (L682) calls configureDataForType, which at L1266-1268 assigns
|
|
12353
|
+
// `this.format = this.util.getDateMaskFromLocale().toLowerCase()` for any
|
|
12354
|
+
// type=date input whose `format` attribute is unset. That runs before
|
|
12355
|
+
// firstUpdated invokes setCustomHelpTextMessage, so `!this.format` is
|
|
12356
|
+
// always false here. Retained as a defensive fallback; the whole function
|
|
12357
|
+
// is @deprecated per AB#1557296 and slated for removal.
|
|
12353
12358
|
} else if (!this.format && this.type === 'date') {
|
|
12354
12359
|
this.setCustomValidityForType = i18n$3(this.lang, 'dateMMDDYYYY');
|
|
12355
12360
|
} else if (this.dateFormatMap[this.format]) {
|
|
@@ -12639,6 +12644,38 @@ let BaseInput$2 = class BaseInput extends AuroElement$6 {
|
|
|
12639
12644
|
this.touched = true;
|
|
12640
12645
|
this.validation.validate(this);
|
|
12641
12646
|
}
|
|
12647
|
+
|
|
12648
|
+
// Prevents cursor jumping in Safari. Setting `this.value` triggers a Lit
|
|
12649
|
+
// update that can re-render the input and reset the native cursor; we
|
|
12650
|
+
// capture the caret position before that update commits and restore it
|
|
12651
|
+
// via `setSelectionRange` once the update has flushed. Gated on
|
|
12652
|
+
// `setSelectionInputTypes` so credit-card (and other masked types whose
|
|
12653
|
+
// formatter manages the cursor itself) doesn't get a competing write.
|
|
12654
|
+
// Capture the caret position INSIDE the gate — reading `selectionStart`
|
|
12655
|
+
// on input types that don't support text selection (number, email in
|
|
12656
|
+
// some browsers) throws InvalidStateError, which would crash all input
|
|
12657
|
+
// handling. Wrap the read in try/catch belt-and-suspenders even though
|
|
12658
|
+
// the gated types currently support it, since the list is a public
|
|
12659
|
+
// property a consumer could mutate.
|
|
12660
|
+
if (this.setSelectionInputTypes.includes(this.type)) {
|
|
12661
|
+
let selectionStart = null;
|
|
12662
|
+
try {
|
|
12663
|
+
({ selectionStart } = this.inputElement);
|
|
12664
|
+
} catch (error) { // eslint-disable-line no-unused-vars
|
|
12665
|
+
return;
|
|
12666
|
+
}
|
|
12667
|
+
if (typeof selectionStart !== 'number') {
|
|
12668
|
+
return;
|
|
12669
|
+
}
|
|
12670
|
+
this.updateComplete.then(() => {
|
|
12671
|
+
try {
|
|
12672
|
+
this.inputElement.setSelectionRange(selectionStart, selectionStart);
|
|
12673
|
+
} catch (error) { // eslint-disable-line no-unused-vars
|
|
12674
|
+
// Some input types (number/email in certain UAs) throw on
|
|
12675
|
+
// setSelectionRange; swallow and let the native cursor stand.
|
|
12676
|
+
}
|
|
12677
|
+
});
|
|
12678
|
+
}
|
|
12642
12679
|
}
|
|
12643
12680
|
|
|
12644
12681
|
/**
|
|
@@ -12772,7 +12809,7 @@ let BaseInput$2 = class BaseInput extends AuroElement$6 {
|
|
|
12772
12809
|
*/
|
|
12773
12810
|
get placeholderStr() {
|
|
12774
12811
|
if (!this.placeholder && this.type === 'date') {
|
|
12775
|
-
return this.format
|
|
12812
|
+
return this.format.toUpperCase();
|
|
12776
12813
|
}
|
|
12777
12814
|
return this.placeholder || "";
|
|
12778
12815
|
}
|
|
@@ -13263,7 +13300,7 @@ let AuroHelpText$8 = class AuroHelpText extends i$3 {
|
|
|
13263
13300
|
}
|
|
13264
13301
|
};
|
|
13265
13302
|
|
|
13266
|
-
var formkitVersion$8 = '
|
|
13303
|
+
var formkitVersion$8 = '202607010104';
|
|
13267
13304
|
|
|
13268
13305
|
// Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
|
|
13269
13306
|
// See LICENSE in the project root for license information.
|
|
@@ -13766,6 +13803,7 @@ let AuroInput$2 = class AuroInput extends BaseInput$2 {
|
|
|
13766
13803
|
<${this.buttonTag}
|
|
13767
13804
|
@click="${this.handleClickShowPassword}"
|
|
13768
13805
|
appearance="${this.onDark ? 'inverse' : this.appearance}"
|
|
13806
|
+
aria-pressed="${this.showPassword ? 'true' : 'false'}"
|
|
13769
13807
|
class="notificationBtn passwordBtn"
|
|
13770
13808
|
shape="circle"
|
|
13771
13809
|
size="sm"
|
|
@@ -13839,25 +13877,29 @@ let AuroInput$2 = class AuroInput extends BaseInput$2 {
|
|
|
13839
13877
|
* @returns {html} - Returns HTML for the help text and error message.
|
|
13840
13878
|
*/
|
|
13841
13879
|
renderHtmlHelpText() {
|
|
13880
|
+
// Single `<p>` with stable identity across validity transitions —
|
|
13881
|
+
// previously two distinct templates (valid vs invalid) caused Lit to
|
|
13882
|
+
// replace the node entirely on a flip, and VoiceOver wouldn't
|
|
13883
|
+
// re-announce because the live-region element it was watching had been
|
|
13884
|
+
// removed and a new one inserted. Keeping one node means the `role`,
|
|
13885
|
+
// `aria-live`, and text content all change in-place, which AT does
|
|
13886
|
+
// observe and announce.
|
|
13887
|
+
const isError = this.validity && this.validity !== 'valid';
|
|
13842
13888
|
return u$c`
|
|
13843
|
-
|
|
13844
|
-
?
|
|
13845
|
-
|
|
13846
|
-
|
|
13847
|
-
|
|
13848
|
-
|
|
13849
|
-
|
|
13850
|
-
|
|
13851
|
-
|
|
13852
|
-
|
|
13853
|
-
|
|
13854
|
-
|
|
13855
|
-
|
|
13856
|
-
|
|
13857
|
-
</p>
|
|
13858
|
-
</${this.helpTextTag}>
|
|
13859
|
-
`
|
|
13860
|
-
}
|
|
13889
|
+
<${this.helpTextTag}
|
|
13890
|
+
appearance="${this.onDark ? 'inverse' : this.appearance}"
|
|
13891
|
+
?error=${isError}>
|
|
13892
|
+
<p
|
|
13893
|
+
id="${this.uniqueId}"
|
|
13894
|
+
part="helpText"
|
|
13895
|
+
role="${o$4(isError ? 'alert' : undefined)}"
|
|
13896
|
+
aria-live="${o$4(isError ? 'assertive' : undefined)}">
|
|
13897
|
+
${isError
|
|
13898
|
+
? this.errorMessage
|
|
13899
|
+
: u$c`<slot name="helpText">${this.getHelpText()}</slot>`
|
|
13900
|
+
}
|
|
13901
|
+
</p>
|
|
13902
|
+
</${this.helpTextTag}>
|
|
13861
13903
|
`;
|
|
13862
13904
|
}
|
|
13863
13905
|
|
|
@@ -14631,15 +14673,17 @@ let AuroFormValidation$1$1 = class AuroFormValidation {
|
|
|
14631
14673
|
);
|
|
14632
14674
|
}
|
|
14633
14675
|
|
|
14634
|
-
|
|
14635
|
-
|
|
14636
|
-
|
|
14676
|
+
const isCombobox = this.runtimeUtils.elementMatch(elem, 'auro-combobox');
|
|
14677
|
+
|
|
14678
|
+
// If there is a second input in the elem and that value is undefined or an empty string set hasValue to false.
|
|
14679
|
+
// Skip for combobox: its second auro-input is the fullscreen-bib mirror of the same value, not an independent
|
|
14680
|
+
// field (datepicker is the intended consumer — start/end are independently required).
|
|
14681
|
+
if (this.auroInputElements?.length === 2 && !isCombobox) {
|
|
14682
|
+
if (!this.auroInputElements[1].value || this.auroInputElements[1].value.length === 0) {
|
|
14637
14683
|
hasValue = false;
|
|
14638
14684
|
}
|
|
14639
14685
|
}
|
|
14640
14686
|
|
|
14641
|
-
const isCombobox = this.runtimeUtils.elementMatch(elem, 'auro-combobox');
|
|
14642
|
-
|
|
14643
14687
|
if (isCombobox) {
|
|
14644
14688
|
|
|
14645
14689
|
if (!elem.persistInput || elem.behavior === "filter") {
|
|
@@ -15347,7 +15391,7 @@ function normalizeDates$1(context, ...dates) {
|
|
|
15347
15391
|
* const result = startOfDay(new Date(2014, 8, 2, 11, 55, 0))
|
|
15348
15392
|
* //=> Tue Sep 02 2014 00:00:00
|
|
15349
15393
|
*/
|
|
15350
|
-
function startOfDay$
|
|
15394
|
+
function startOfDay$1(date, options) {
|
|
15351
15395
|
const _date = toDate$1(date, options?.in);
|
|
15352
15396
|
_date.setHours(0, 0, 0, 0);
|
|
15353
15397
|
return _date;
|
|
@@ -15395,8 +15439,8 @@ function differenceInCalendarDays$1(laterDate, earlierDate, options) {
|
|
|
15395
15439
|
earlierDate,
|
|
15396
15440
|
);
|
|
15397
15441
|
|
|
15398
|
-
const laterStartOfDay = startOfDay$
|
|
15399
|
-
const earlierStartOfDay = startOfDay$
|
|
15442
|
+
const laterStartOfDay = startOfDay$1(laterDate_);
|
|
15443
|
+
const earlierStartOfDay = startOfDay$1(earlierDate_);
|
|
15400
15444
|
|
|
15401
15445
|
const laterTimestamp =
|
|
15402
15446
|
+laterStartOfDay - getTimezoneOffsetInMilliseconds$1(laterStartOfDay);
|
|
@@ -24498,6 +24542,13 @@ let AuroInputUtilities$1 = class AuroInputUtilities {
|
|
|
24498
24542
|
* @returns {string | undefined}
|
|
24499
24543
|
*/
|
|
24500
24544
|
toFormattedValue(valueObject, format) {
|
|
24545
|
+
// Exposed publicly via `AuroInputUtil.toFormattedValue`, so a missing
|
|
24546
|
+
// `format` argument has to fail gracefully rather than throw on
|
|
24547
|
+
// `format.toLowerCase()`. Treat any falsy value (undefined, null, '')
|
|
24548
|
+
// as "no format → no display value".
|
|
24549
|
+
if (!format) {
|
|
24550
|
+
return undefined;
|
|
24551
|
+
}
|
|
24501
24552
|
const normalizedFormat = format.toLowerCase();
|
|
24502
24553
|
const maskOptions = this.getMaskOptions('date', normalizedFormat);
|
|
24503
24554
|
|
|
@@ -24758,11 +24809,11 @@ var snowflakeStyle = i$6`:host([layout*=snowflake]) [auro-input]{flex:1;text-ali
|
|
|
24758
24809
|
|
|
24759
24810
|
var snowflakeColors = i$6`:host([layout=snowflake]) [auro-dropdown]:not(:is([error],.hasFocus)){--ds-auro-dropdown-trigger-border-color: transparent}`;
|
|
24760
24811
|
|
|
24761
|
-
var styleCss$7$1 = i$6`.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}`;
|
|
24812
|
+
var styleCss$7$1 = i$6`.body-default{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-default-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-default-font-size, 1rem);line-height:var(--wcss-body-default-line-height, 1.5rem)}.body-default-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-default-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-default-emphasized-font-size, 1rem);line-height:var(--wcss-body-default-emphasized-line-height, 1.5rem)}.body-lg{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-lg-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-lg-font-size, 1.125rem);line-height:var(--wcss-body-lg-line-height, 1.625rem)}.body-lg-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-lg-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-lg-emphasized-font-size, 1.125rem);line-height:var(--wcss-body-lg-emphasized-line-height, 1.625rem)}.body-sm{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-sm-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-sm-font-size, 0.875rem);line-height:var(--wcss-body-sm-line-height, 1.25rem)}.body-sm-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-sm-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-sm-emphasized-font-size, 0.875rem);line-height:var(--wcss-body-sm-emphasized-line-height, 1.25rem)}.body-xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-xs-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-xs-font-size, 0.75rem);line-height:var(--wcss-body-xs-line-height, 1rem)}.body-xs-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-xs-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-xs-emphasized-font-size, 0.75rem);line-height:var(--wcss-body-xs-emphasized-line-height, 1rem)}.body-2xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-2xs-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-2xs-font-size, 0.625rem);line-height:var(--wcss-body-2xs-line-height, 0.875rem)}.body-2xs-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-2xs-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-2xs-emphasized-font-size, 0.625rem);line-height:var(--wcss-body-2xs-emphasized-line-height, 0.875rem)}.display-2xl{font-family:var(--wcss-display-2xl-family, "AS Circular"),var(--wcss-display-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-2xl-weight, 300);line-height:var(--wcss-display-2xl-line-height, 1.3);font-size:var(--wcss-display-2xl-font-size, clamp(3.5rem, 6vw, 5.375rem));letter-spacing:var(--wcss-display-2xl-letter-spacing, 0)}.display-xl{font-family:var(--wcss-display-xl-family, "AS Circular"),var(--wcss-display-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-xl-weight, 300);line-height:var(--wcss-display-xl-line-height, 1.3);font-size:var(--wcss-display-xl-font-size, clamp(3rem, 5.3333333333vw, 4.5rem));letter-spacing:var(--wcss-display-xl-letter-spacing, 0)}.display-lg{font-family:var(--wcss-display-lg-family, "AS Circular"),var(--wcss-display-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-lg-weight, 300);line-height:var(--wcss-display-lg-line-height, 1.3);font-size:var(--wcss-display-lg-font-size, clamp(2.75rem, 4.6666666667vw, 4rem));letter-spacing:var(--wcss-display-lg-letter-spacing, 0)}.display-md{font-family:var(--wcss-display-md-family, "AS Circular"),var(--wcss-display-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-md-weight, 300);line-height:var(--wcss-display-md-line-height, 1.3);font-size:var(--wcss-display-md-font-size, clamp(2.5rem, 4vw, 3.5rem));letter-spacing:var(--wcss-display-md-letter-spacing, 0)}.display-sm{font-family:var(--wcss-display-sm-family, "AS Circular"),var(--wcss-display-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-sm-weight, 300);line-height:var(--wcss-display-sm-line-height, 1.3);font-size:var(--wcss-display-sm-font-size, clamp(2rem, 3.6666666667vw, 3rem));letter-spacing:var(--wcss-display-sm-letter-spacing, 0)}.display-xs{font-family:var(--wcss-display-xs-family, "AS Circular"),var(--wcss-display-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-xs-weight, 300);line-height:var(--wcss-display-xs-line-height, 1.3);font-size:var(--wcss-display-xs-font-size, clamp(1.75rem, 3vw, 2.375rem));letter-spacing:var(--wcss-display-xs-letter-spacing, 0)}.heading-xl{font-family:var(--wcss-heading-xl-family, "AS Circular"),var(--wcss-heading-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-xl-weight, 300);line-height:var(--wcss-heading-xl-line-height, 1.3);font-size:var(--wcss-heading-xl-font-size, clamp(2rem, 3vw, 2.5rem));letter-spacing:var(--wcss-heading-xl-letter-spacing, 0)}.heading-lg{font-family:var(--wcss-heading-lg-family, "AS Circular"),var(--wcss-heading-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-lg-weight, 300);line-height:var(--wcss-heading-lg-line-height, 1.3);font-size:var(--wcss-heading-lg-font-size, clamp(1.75rem, 2.6666666667vw, 2.25rem));letter-spacing:var(--wcss-heading-lg-letter-spacing, 0)}.heading-md{font-family:var(--wcss-heading-md-family, "AS Circular"),var(--wcss-heading-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-md-weight, 300);line-height:var(--wcss-heading-md-line-height, 1.3);font-size:var(--wcss-heading-md-font-size, clamp(1.625rem, 2.3333333333vw, 1.75rem));letter-spacing:var(--wcss-heading-md-letter-spacing, 0)}.heading-sm{font-family:var(--wcss-heading-sm-family, "AS Circular"),var(--wcss-heading-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-sm-weight, 300);line-height:var(--wcss-heading-sm-line-height, 1.3);font-size:var(--wcss-heading-sm-font-size, clamp(1.375rem, 2vw, 1.5rem));letter-spacing:var(--wcss-heading-sm-letter-spacing, 0)}.heading-xs{font-family:var(--wcss-heading-xs-family, "AS Circular"),var(--wcss-heading-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-xs-weight, 300);line-height:var(--wcss-heading-xs-line-height, 1.3);font-size:var(--wcss-heading-xs-font-size, clamp(1.25rem, 1.6666666667vw, 1.25rem));letter-spacing:var(--wcss-heading-xs-letter-spacing, 0)}.heading-2xs{font-family:var(--wcss-heading-2xs-family, "AS Circular"),var(--wcss-heading-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-2xs-weight, 300);line-height:var(--wcss-heading-2xs-line-height, 1.3);font-size:var(--wcss-heading-2xs-font-size, clamp(1.125rem, 1.5vw, 1.125rem));letter-spacing:var(--wcss-heading-2xs-letter-spacing, 0)}.accent-2xl{font-family:var(--wcss-accent-2xl-family, "Good OT"),var(--wcss-accent-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-2xl-weight, 450);line-height:var(--wcss-accent-2xl-line-height, 1);font-size:var(--wcss-accent-2xl-font-size, clamp(2rem, 3.1666666667vw, 2.375rem));letter-spacing:var(--wcss-accent-2xl-letter-spacing, 0.05em);text-transform:uppercase}.accent-xl{font-family:var(--wcss-accent-xl-family, "Good OT"),var(--wcss-accent-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-xl-weight, 450);line-height:var(--wcss-accent-xl-line-height, 1.3);font-size:var(--wcss-accent-xl-font-size, clamp(1.625rem, 2.3333333333vw, 2rem));letter-spacing:var(--wcss-accent-xl-letter-spacing, 0.05em);text-transform:uppercase}.accent-lg{font-family:var(--wcss-accent-lg-family, "Good OT"),var(--wcss-accent-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-lg-weight, 450);line-height:var(--wcss-accent-lg-line-height, 1.3);font-size:var(--wcss-accent-lg-font-size, clamp(1.5rem, 2.1666666667vw, 1.75rem));letter-spacing:var(--wcss-accent-lg-letter-spacing, 0.05em);text-transform:uppercase}.accent-md{font-family:var(--wcss-accent-md-family, "Good OT"),var(--wcss-accent-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-md-weight, 500);line-height:var(--wcss-accent-md-line-height, 1.3);font-size:var(--wcss-accent-md-font-size, clamp(1.375rem, 1.8333333333vw, 1.5rem));letter-spacing:var(--wcss-accent-md-letter-spacing, 0.05em);text-transform:uppercase}.accent-sm{font-family:var(--wcss-accent-sm-family, "Good OT"),var(--wcss-accent-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-sm-weight, 500);line-height:var(--wcss-accent-sm-line-height, 1.3);font-size:var(--wcss-accent-sm-font-size, clamp(1.125rem, 1.5vw, 1.25rem));letter-spacing:var(--wcss-accent-sm-letter-spacing, 0.05em);text-transform:uppercase}.accent-xs{font-family:var(--wcss-accent-xs-family, "Good OT"),var(--wcss-accent-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-xs-weight, 500);line-height:var(--wcss-accent-xs-line-height, 1.3);font-size:var(--wcss-accent-xs-font-size, clamp(1rem, 1.3333333333vw, 1rem));letter-spacing:var(--wcss-accent-xs-letter-spacing, 0.1em);text-transform:uppercase}.accent-2xs{font-family:var(--wcss-accent-2xs-family, "Good OT"),var(--wcss-accent-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-2xs-weight, 450);line-height:var(--wcss-accent-2xs-line-height, 1.3);font-size:var(--wcss-accent-2xs-font-size, clamp(0.875rem, 1.1666666667vw, 0.875rem));letter-spacing:var(--wcss-accent-2xs-letter-spacing, 0.1em);text-transform:uppercase}:host{--calendar-width: 336px;--mobile-footer-height: 150px;--mobile-header-height: 68px;--desktop-footer-height: 80px;height:100vh;height:100dvh}.calendars{display:flex;flex-direction:row}.calendars:focus{outline:none}.calendarNavButtons{position:absolute;z-index:1;top:var(--ds-size-200, 1rem);right:var(--ds-size-50, 0.25rem);left:var(--ds-size-50, 0.25rem)}.calendarNavBtn{display:flex;width:var(--ds-size-500, 2.5rem);height:var(--ds-size-500, 2.5rem);align-items:center;justify-content:center;border-width:1px;border-style:solid;border-radius:50%;cursor:pointer}.prevMonth,.nextMonth{position:absolute;top:0}.prevMonth{left:0}.nextMonth{right:0}.headerActions{padding:0 var(--ds-size-200, 1rem)}.mobileHeader{width:100%;height:var(--mobile-header-height);z-index:1;align-items:center;flex-direction:row}.headerDateFrom,.headerDateTo{display:flex;height:var(--mobile-header-height);flex:1;flex-direction:column;justify-content:center;padding:0 var(--ds-size-150, 0.75rem) 0 var(--ds-size-200, 1rem)}.mobileDateLabel{padding:var(--ds-size-25, 0.125rem) 0}.mobileFooter{display:none;width:100%;align-items:flex-end;flex-direction:column;justify-content:flex-end}.mobileFooterActions{position:relative;bottom:0;left:50%;display:none;width:calc(100% - var(--ds-size-200, 1rem)*2);align-items:flex-end;flex-direction:column;justify-content:flex-end;padding:var(--ds-size-150) calc(var(--ds-size-200, 1rem));transform:translateX(-50%)}.mobileFooterActions auro-button{width:100%}:host([isfullscreen]){width:100%;max-height:100dvh;overflow:hidden}:host([isfullscreen]) .prevMonth,:host([isfullscreen]) .nextMonth{display:none}:host([isfullscreen]) .mobileHeader,:host([isfullscreen]) .mobileFooter,:host([isfullscreen]) .mobileFooterActions{display:flex}:host([isfullscreen]) .calendarWrapper{display:flex;flex-direction:column}:host([isfullscreen]) .calendars{display:flex;flex-direction:column;flex:1;align-items:center;width:100%;overscroll-behavior:contain}:host([isfullscreen]) .calendars:after{display:block;width:100%;height:var(--mobile-footer-height);content:""}.sr-only{position:absolute;overflow:hidden;clip:rect(0, 0, 0, 0);width:1px;height:1px;margin:-1px;padding:0;border:0;white-space:nowrap}`;
|
|
24762
24813
|
|
|
24763
|
-
var colorCss$7$1 = i$6`.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)}}`;
|
|
24814
|
+
var colorCss$7$1 = i$6`.calendarNavBtn{border-color:var(--ds-auro-calendar-nav-btn-border-color);background-color:var(--ds-auro-calendar-nav-btn-container-color);color:var(--ds-auro-calendar-nav-btn-chevron-color)}.calendarNavBtn:hover{--ds-auro-calendar-nav-btn-container-color: var(--ds-advanced-color-state-background-hover, #f2f2f2);--ds-auro-calendar-nav-btn-border-color: var(--ds-basic-color-brand-primary, #01426a)}.calendarNavBtn:focus-visible{--ds-auro-calendar-nav-btn-border-color: var(--ds-basic-color-brand-primary, #01426a);outline:2px solid var(--ds-basic-color-brand-primary, #01426a);outline-offset:-2px}.calendarNavBtn:active{--ds-auro-calendar-nav-btn-border-color: var(--ds-basic-color-brand-primary, #01426a);outline:2px solid var(--ds-basic-color-brand-primary, #01426a);outline-offset:-2px;box-shadow:inset 0 0 0 1px var(--ds-auro-calendar-nav-btn-border-color)}.mobileHeader{background-color:var(--ds-auro-calendar-mobile-header-container-color)}.mobileDateLabel{color:var(--ds-auro-calendar-mobile-header-text-color)}:host(:not([noRange])) .headerDateTo:after{background-color:var(--ds-auro-calendar-mobile-header-divider-color)}::slotted([slot="bib.fullscreen.fromStr"]),::slotted([slot=mobileDateToStr]){color:var(--ds-auro-datepicker-placeholder-color)}@media screen and (max-width: 576px){.calendarNavBtn{--ds-auro-calendar-nav-btn-border-color: var(--ds-basic-color-brand-primary, #01426a)}}`;
|
|
24764
24815
|
|
|
24765
|
-
var styleCss$6$1 = i$6`: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)}`;
|
|
24816
|
+
var styleCss$6$1 = i$6`:focus:not(:focus-visible){outline:3px solid transparent}.body-default{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-default-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-default-font-size, 1rem);line-height:var(--wcss-body-default-line-height, 1.5rem)}.body-default-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-default-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-default-emphasized-font-size, 1rem);line-height:var(--wcss-body-default-emphasized-line-height, 1.5rem)}.body-lg{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-lg-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-lg-font-size, 1.125rem);line-height:var(--wcss-body-lg-line-height, 1.625rem)}.body-lg-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-lg-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-lg-emphasized-font-size, 1.125rem);line-height:var(--wcss-body-lg-emphasized-line-height, 1.625rem)}.body-sm{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-sm-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-sm-font-size, 0.875rem);line-height:var(--wcss-body-sm-line-height, 1.25rem)}.body-sm-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-sm-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-sm-emphasized-font-size, 0.875rem);line-height:var(--wcss-body-sm-emphasized-line-height, 1.25rem)}.body-xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-xs-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-xs-font-size, 0.75rem);line-height:var(--wcss-body-xs-line-height, 1rem)}.body-xs-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-xs-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-xs-emphasized-font-size, 0.75rem);line-height:var(--wcss-body-xs-emphasized-line-height, 1rem)}.body-2xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-2xs-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-2xs-font-size, 0.625rem);line-height:var(--wcss-body-2xs-line-height, 0.875rem)}.body-2xs-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-2xs-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-2xs-emphasized-font-size, 0.625rem);line-height:var(--wcss-body-2xs-emphasized-line-height, 0.875rem)}.display-2xl{font-family:var(--wcss-display-2xl-family, "AS Circular"),var(--wcss-display-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-2xl-weight, 300);line-height:var(--wcss-display-2xl-line-height, 1.3);font-size:var(--wcss-display-2xl-font-size, clamp(3.5rem, 6vw, 5.375rem));letter-spacing:var(--wcss-display-2xl-letter-spacing, 0)}.display-xl{font-family:var(--wcss-display-xl-family, "AS Circular"),var(--wcss-display-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-xl-weight, 300);line-height:var(--wcss-display-xl-line-height, 1.3);font-size:var(--wcss-display-xl-font-size, clamp(3rem, 5.3333333333vw, 4.5rem));letter-spacing:var(--wcss-display-xl-letter-spacing, 0)}.display-lg{font-family:var(--wcss-display-lg-family, "AS Circular"),var(--wcss-display-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-lg-weight, 300);line-height:var(--wcss-display-lg-line-height, 1.3);font-size:var(--wcss-display-lg-font-size, clamp(2.75rem, 4.6666666667vw, 4rem));letter-spacing:var(--wcss-display-lg-letter-spacing, 0)}.display-md{font-family:var(--wcss-display-md-family, "AS Circular"),var(--wcss-display-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-md-weight, 300);line-height:var(--wcss-display-md-line-height, 1.3);font-size:var(--wcss-display-md-font-size, clamp(2.5rem, 4vw, 3.5rem));letter-spacing:var(--wcss-display-md-letter-spacing, 0)}.display-sm{font-family:var(--wcss-display-sm-family, "AS Circular"),var(--wcss-display-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-sm-weight, 300);line-height:var(--wcss-display-sm-line-height, 1.3);font-size:var(--wcss-display-sm-font-size, clamp(2rem, 3.6666666667vw, 3rem));letter-spacing:var(--wcss-display-sm-letter-spacing, 0)}.display-xs{font-family:var(--wcss-display-xs-family, "AS Circular"),var(--wcss-display-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-xs-weight, 300);line-height:var(--wcss-display-xs-line-height, 1.3);font-size:var(--wcss-display-xs-font-size, clamp(1.75rem, 3vw, 2.375rem));letter-spacing:var(--wcss-display-xs-letter-spacing, 0)}.heading-xl{font-family:var(--wcss-heading-xl-family, "AS Circular"),var(--wcss-heading-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-xl-weight, 300);line-height:var(--wcss-heading-xl-line-height, 1.3);font-size:var(--wcss-heading-xl-font-size, clamp(2rem, 3vw, 2.5rem));letter-spacing:var(--wcss-heading-xl-letter-spacing, 0)}.heading-lg{font-family:var(--wcss-heading-lg-family, "AS Circular"),var(--wcss-heading-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-lg-weight, 300);line-height:var(--wcss-heading-lg-line-height, 1.3);font-size:var(--wcss-heading-lg-font-size, clamp(1.75rem, 2.6666666667vw, 2.25rem));letter-spacing:var(--wcss-heading-lg-letter-spacing, 0)}.heading-md{font-family:var(--wcss-heading-md-family, "AS Circular"),var(--wcss-heading-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-md-weight, 300);line-height:var(--wcss-heading-md-line-height, 1.3);font-size:var(--wcss-heading-md-font-size, clamp(1.625rem, 2.3333333333vw, 1.75rem));letter-spacing:var(--wcss-heading-md-letter-spacing, 0)}.heading-sm{font-family:var(--wcss-heading-sm-family, "AS Circular"),var(--wcss-heading-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-sm-weight, 300);line-height:var(--wcss-heading-sm-line-height, 1.3);font-size:var(--wcss-heading-sm-font-size, clamp(1.375rem, 2vw, 1.5rem));letter-spacing:var(--wcss-heading-sm-letter-spacing, 0)}.heading-xs{font-family:var(--wcss-heading-xs-family, "AS Circular"),var(--wcss-heading-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-xs-weight, 300);line-height:var(--wcss-heading-xs-line-height, 1.3);font-size:var(--wcss-heading-xs-font-size, clamp(1.25rem, 1.6666666667vw, 1.25rem));letter-spacing:var(--wcss-heading-xs-letter-spacing, 0)}.heading-2xs{font-family:var(--wcss-heading-2xs-family, "AS Circular"),var(--wcss-heading-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-2xs-weight, 300);line-height:var(--wcss-heading-2xs-line-height, 1.3);font-size:var(--wcss-heading-2xs-font-size, clamp(1.125rem, 1.5vw, 1.125rem));letter-spacing:var(--wcss-heading-2xs-letter-spacing, 0)}.accent-2xl{font-family:var(--wcss-accent-2xl-family, "Good OT"),var(--wcss-accent-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-2xl-weight, 450);line-height:var(--wcss-accent-2xl-line-height, 1);font-size:var(--wcss-accent-2xl-font-size, clamp(2rem, 3.1666666667vw, 2.375rem));letter-spacing:var(--wcss-accent-2xl-letter-spacing, 0.05em);text-transform:uppercase}.accent-xl{font-family:var(--wcss-accent-xl-family, "Good OT"),var(--wcss-accent-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-xl-weight, 450);line-height:var(--wcss-accent-xl-line-height, 1.3);font-size:var(--wcss-accent-xl-font-size, clamp(1.625rem, 2.3333333333vw, 2rem));letter-spacing:var(--wcss-accent-xl-letter-spacing, 0.05em);text-transform:uppercase}.accent-lg{font-family:var(--wcss-accent-lg-family, "Good OT"),var(--wcss-accent-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-lg-weight, 450);line-height:var(--wcss-accent-lg-line-height, 1.3);font-size:var(--wcss-accent-lg-font-size, clamp(1.5rem, 2.1666666667vw, 1.75rem));letter-spacing:var(--wcss-accent-lg-letter-spacing, 0.05em);text-transform:uppercase}.accent-md{font-family:var(--wcss-accent-md-family, "Good OT"),var(--wcss-accent-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-md-weight, 500);line-height:var(--wcss-accent-md-line-height, 1.3);font-size:var(--wcss-accent-md-font-size, clamp(1.375rem, 1.8333333333vw, 1.5rem));letter-spacing:var(--wcss-accent-md-letter-spacing, 0.05em);text-transform:uppercase}.accent-sm{font-family:var(--wcss-accent-sm-family, "Good OT"),var(--wcss-accent-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-sm-weight, 500);line-height:var(--wcss-accent-sm-line-height, 1.3);font-size:var(--wcss-accent-sm-font-size, clamp(1.125rem, 1.5vw, 1.25rem));letter-spacing:var(--wcss-accent-sm-letter-spacing, 0.05em);text-transform:uppercase}.accent-xs{font-family:var(--wcss-accent-xs-family, "Good OT"),var(--wcss-accent-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-xs-weight, 500);line-height:var(--wcss-accent-xs-line-height, 1.3);font-size:var(--wcss-accent-xs-font-size, clamp(1rem, 1.3333333333vw, 1rem));letter-spacing:var(--wcss-accent-xs-letter-spacing, 0.1em);text-transform:uppercase}.accent-2xs{font-family:var(--wcss-accent-2xs-family, "Good OT"),var(--wcss-accent-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-2xs-weight, 450);line-height:var(--wcss-accent-2xs-line-height, 1.3);font-size:var(--wcss-accent-2xs-font-size, clamp(0.875rem, 1.1666666667vw, 0.875rem));letter-spacing:var(--wcss-accent-2xs-letter-spacing, 0.1em);text-transform:uppercase}:host{position:relative;display:block;width:336px;margin:0 var(--ds-size-200, 1rem)}@media screen and (min-width: 576px){:host{width:336px;padding:var(--ds-size-200, 1rem) var(--ds-size-200, 1rem) 0}}@media screen and (min-width: 576px){:host(:not(:last-of-type)):after{position:absolute;top:var(--ds-size-200, 1rem);right:calc(-1*var(--ds-size-200, 1rem));height:calc(100% - var(--ds-size-200, 1rem) - var(--ds-size-200, 1rem));display:block;width:1px;content:""}}.header{display:flex;height:var(--ds-size-500, 2.5rem);margin-bottom:var(--ds-size-150, 0.75rem);align-items:center;flex-direction:row;text-align:center}.headerTitle{display:flex;align-items:center;flex:1;flex-direction:row;justify-content:center}.headerTitle div:first-child{margin-right:var(--ds-size-100, 0.5rem)}.calendarNavBtn{position:relative;display:flex;width:var(--ds-size-500, 2.5rem);height:var(--ds-size-500, 2.5rem);align-items:center;justify-content:center;border-width:1px;border-style:solid;border-radius:50%;cursor:pointer}.table{width:100%;border-collapse:collapse}.thead{margin-bottom:var(--ds-size-100, 0.5rem)}.th{display:flex;flex:1;align-items:center;justify-content:center}.th abbr{text-decoration:none}.tbody{width:100%;transition:all 0ms;transform:translateX(0)}@media screen and (min-width: 576px){.tbody{height:376px}}.td{flex:1;margin:0;padding:0}.tr{display:flex;flex-direction:row;width:100%;border-radius:10px;overflow:hidden}.tr:not(:last-of-type){margin-bottom:var(--ds-size-100, 0.5rem)}`;
|
|
24766
24817
|
|
|
24767
24818
|
var colorCss$6$1 = i$6`: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)}`;
|
|
24768
24819
|
|
|
@@ -24854,8 +24905,8 @@ class RangeDatepickerCell extends i$3 {
|
|
|
24854
24905
|
const parsedDateFrom = parseInt(dateFrom, 10);
|
|
24855
24906
|
const parsedDateTo = parseInt(dateTo, 10);
|
|
24856
24907
|
if (day) {
|
|
24857
|
-
if (getTime(startOfDay$
|
|
24858
|
-
getTime(startOfDay$
|
|
24908
|
+
if (getTime(startOfDay$1(parsedDateTo * 1000)) / 1000 === day.date ||
|
|
24909
|
+
getTime(startOfDay$1(parsedDateFrom * 1000)) / 1000 === day.date) {
|
|
24859
24910
|
this.selected = true;
|
|
24860
24911
|
}
|
|
24861
24912
|
if (((hoveredDate === day.date || day.date < hoveredDate) &&
|
|
@@ -25043,7 +25094,7 @@ class RangeDatepickerCalendar extends i$3 {
|
|
|
25043
25094
|
this.dayNamesOfTheWeek = [];
|
|
25044
25095
|
this.daysOfMonth = [];
|
|
25045
25096
|
this._locale = null;
|
|
25046
|
-
this.currentDate = parseInt(format$1(startOfDay$
|
|
25097
|
+
this.currentDate = parseInt(format$1(startOfDay$1(Date.now()), 't'), 10);
|
|
25047
25098
|
this.localeChanged();
|
|
25048
25099
|
this.yearAndMonthChanged(this.year, this.month);
|
|
25049
25100
|
}
|
|
@@ -25517,7 +25568,7 @@ __decorate([n$4({ type: Array })], RangeDatepickerCalendar.prototype, "dayNamesO
|
|
|
25517
25568
|
__decorate([n$4({ type: Array })], RangeDatepickerCalendar.prototype, "daysOfMonth", void 0);
|
|
25518
25569
|
AuroLibraryRuntimeUtils$5$1.prototype.registerComponent('wc-range-datepicker-calendar', RangeDatepickerCalendar);
|
|
25519
25570
|
|
|
25520
|
-
var styleCss$5$2 = i$6`.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}`;
|
|
25571
|
+
var styleCss$5$2 = i$6`.body-default{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-default-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-default-font-size, 1rem);line-height:var(--wcss-body-default-line-height, 1.5rem)}.body-default-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-default-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-default-emphasized-font-size, 1rem);line-height:var(--wcss-body-default-emphasized-line-height, 1.5rem)}.body-lg{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-lg-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-lg-font-size, 1.125rem);line-height:var(--wcss-body-lg-line-height, 1.625rem)}.body-lg-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-lg-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-lg-emphasized-font-size, 1.125rem);line-height:var(--wcss-body-lg-emphasized-line-height, 1.625rem)}.body-sm{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-sm-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-sm-font-size, 0.875rem);line-height:var(--wcss-body-sm-line-height, 1.25rem)}.body-sm-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-sm-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-sm-emphasized-font-size, 0.875rem);line-height:var(--wcss-body-sm-emphasized-line-height, 1.25rem)}.body-xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-xs-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-xs-font-size, 0.75rem);line-height:var(--wcss-body-xs-line-height, 1rem)}.body-xs-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-xs-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-xs-emphasized-font-size, 0.75rem);line-height:var(--wcss-body-xs-emphasized-line-height, 1rem)}.body-2xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-2xs-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-2xs-font-size, 0.625rem);line-height:var(--wcss-body-2xs-line-height, 0.875rem)}.body-2xs-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-2xs-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-2xs-emphasized-font-size, 0.625rem);line-height:var(--wcss-body-2xs-emphasized-line-height, 0.875rem)}.display-2xl{font-family:var(--wcss-display-2xl-family, "AS Circular"),var(--wcss-display-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-2xl-weight, 300);line-height:var(--wcss-display-2xl-line-height, 1.3);font-size:var(--wcss-display-2xl-font-size, clamp(3.5rem, 6vw, 5.375rem));letter-spacing:var(--wcss-display-2xl-letter-spacing, 0)}.display-xl{font-family:var(--wcss-display-xl-family, "AS Circular"),var(--wcss-display-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-xl-weight, 300);line-height:var(--wcss-display-xl-line-height, 1.3);font-size:var(--wcss-display-xl-font-size, clamp(3rem, 5.3333333333vw, 4.5rem));letter-spacing:var(--wcss-display-xl-letter-spacing, 0)}.display-lg{font-family:var(--wcss-display-lg-family, "AS Circular"),var(--wcss-display-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-lg-weight, 300);line-height:var(--wcss-display-lg-line-height, 1.3);font-size:var(--wcss-display-lg-font-size, clamp(2.75rem, 4.6666666667vw, 4rem));letter-spacing:var(--wcss-display-lg-letter-spacing, 0)}.display-md{font-family:var(--wcss-display-md-family, "AS Circular"),var(--wcss-display-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-md-weight, 300);line-height:var(--wcss-display-md-line-height, 1.3);font-size:var(--wcss-display-md-font-size, clamp(2.5rem, 4vw, 3.5rem));letter-spacing:var(--wcss-display-md-letter-spacing, 0)}.display-sm{font-family:var(--wcss-display-sm-family, "AS Circular"),var(--wcss-display-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-sm-weight, 300);line-height:var(--wcss-display-sm-line-height, 1.3);font-size:var(--wcss-display-sm-font-size, clamp(2rem, 3.6666666667vw, 3rem));letter-spacing:var(--wcss-display-sm-letter-spacing, 0)}.display-xs{font-family:var(--wcss-display-xs-family, "AS Circular"),var(--wcss-display-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-xs-weight, 300);line-height:var(--wcss-display-xs-line-height, 1.3);font-size:var(--wcss-display-xs-font-size, clamp(1.75rem, 3vw, 2.375rem));letter-spacing:var(--wcss-display-xs-letter-spacing, 0)}.heading-xl{font-family:var(--wcss-heading-xl-family, "AS Circular"),var(--wcss-heading-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-xl-weight, 300);line-height:var(--wcss-heading-xl-line-height, 1.3);font-size:var(--wcss-heading-xl-font-size, clamp(2rem, 3vw, 2.5rem));letter-spacing:var(--wcss-heading-xl-letter-spacing, 0)}.heading-lg{font-family:var(--wcss-heading-lg-family, "AS Circular"),var(--wcss-heading-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-lg-weight, 300);line-height:var(--wcss-heading-lg-line-height, 1.3);font-size:var(--wcss-heading-lg-font-size, clamp(1.75rem, 2.6666666667vw, 2.25rem));letter-spacing:var(--wcss-heading-lg-letter-spacing, 0)}.heading-md{font-family:var(--wcss-heading-md-family, "AS Circular"),var(--wcss-heading-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-md-weight, 300);line-height:var(--wcss-heading-md-line-height, 1.3);font-size:var(--wcss-heading-md-font-size, clamp(1.625rem, 2.3333333333vw, 1.75rem));letter-spacing:var(--wcss-heading-md-letter-spacing, 0)}.heading-sm{font-family:var(--wcss-heading-sm-family, "AS Circular"),var(--wcss-heading-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-sm-weight, 300);line-height:var(--wcss-heading-sm-line-height, 1.3);font-size:var(--wcss-heading-sm-font-size, clamp(1.375rem, 2vw, 1.5rem));letter-spacing:var(--wcss-heading-sm-letter-spacing, 0)}.heading-xs{font-family:var(--wcss-heading-xs-family, "AS Circular"),var(--wcss-heading-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-xs-weight, 300);line-height:var(--wcss-heading-xs-line-height, 1.3);font-size:var(--wcss-heading-xs-font-size, clamp(1.25rem, 1.6666666667vw, 1.25rem));letter-spacing:var(--wcss-heading-xs-letter-spacing, 0)}.heading-2xs{font-family:var(--wcss-heading-2xs-family, "AS Circular"),var(--wcss-heading-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-2xs-weight, 300);line-height:var(--wcss-heading-2xs-line-height, 1.3);font-size:var(--wcss-heading-2xs-font-size, clamp(1.125rem, 1.5vw, 1.125rem));letter-spacing:var(--wcss-heading-2xs-letter-spacing, 0)}.accent-2xl{font-family:var(--wcss-accent-2xl-family, "Good OT"),var(--wcss-accent-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-2xl-weight, 450);line-height:var(--wcss-accent-2xl-line-height, 1);font-size:var(--wcss-accent-2xl-font-size, clamp(2rem, 3.1666666667vw, 2.375rem));letter-spacing:var(--wcss-accent-2xl-letter-spacing, 0.05em);text-transform:uppercase}.accent-xl{font-family:var(--wcss-accent-xl-family, "Good OT"),var(--wcss-accent-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-xl-weight, 450);line-height:var(--wcss-accent-xl-line-height, 1.3);font-size:var(--wcss-accent-xl-font-size, clamp(1.625rem, 2.3333333333vw, 2rem));letter-spacing:var(--wcss-accent-xl-letter-spacing, 0.05em);text-transform:uppercase}.accent-lg{font-family:var(--wcss-accent-lg-family, "Good OT"),var(--wcss-accent-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-lg-weight, 450);line-height:var(--wcss-accent-lg-line-height, 1.3);font-size:var(--wcss-accent-lg-font-size, clamp(1.5rem, 2.1666666667vw, 1.75rem));letter-spacing:var(--wcss-accent-lg-letter-spacing, 0.05em);text-transform:uppercase}.accent-md{font-family:var(--wcss-accent-md-family, "Good OT"),var(--wcss-accent-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-md-weight, 500);line-height:var(--wcss-accent-md-line-height, 1.3);font-size:var(--wcss-accent-md-font-size, clamp(1.375rem, 1.8333333333vw, 1.5rem));letter-spacing:var(--wcss-accent-md-letter-spacing, 0.05em);text-transform:uppercase}.accent-sm{font-family:var(--wcss-accent-sm-family, "Good OT"),var(--wcss-accent-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-sm-weight, 500);line-height:var(--wcss-accent-sm-line-height, 1.3);font-size:var(--wcss-accent-sm-font-size, clamp(1.125rem, 1.5vw, 1.25rem));letter-spacing:var(--wcss-accent-sm-letter-spacing, 0.05em);text-transform:uppercase}.accent-xs{font-family:var(--wcss-accent-xs-family, "Good OT"),var(--wcss-accent-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-xs-weight, 500);line-height:var(--wcss-accent-xs-line-height, 1.3);font-size:var(--wcss-accent-xs-font-size, clamp(1rem, 1.3333333333vw, 1rem));letter-spacing:var(--wcss-accent-xs-letter-spacing, 0.1em);text-transform:uppercase}.accent-2xs{font-family:var(--wcss-accent-2xs-family, "Good OT"),var(--wcss-accent-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-2xs-weight, 450);line-height:var(--wcss-accent-2xs-line-height, 1.3);font-size:var(--wcss-accent-2xs-font-size, clamp(0.875rem, 1.1666666667vw, 0.875rem));letter-spacing:var(--wcss-accent-2xs-letter-spacing, 0.1em);text-transform:uppercase}@media screen and (max-width: 576px){:host{display:flex;justify-content:center}}.day{position:relative;width:48px;height:56px;padding:0;border-width:2px;border-style:solid;border-radius:10px;cursor:pointer;user-select:none}.day:focus-visible{outline:none;background-color:unset}.day.activeCell{outline-width:2px;outline-style:solid;outline-offset:-4px}.day.disabled{cursor:default !important;pointer-events:none}.day.blackout{cursor:pointer}.day.reference:after{position:absolute;top:-2px;left:-2px;display:block;width:calc(100% + 2px);height:calc(100% + 2px);box-sizing:content-box;border-radius:10px;border-style:solid;border-width:1px;content:""}.day.inRange::before{position:absolute;z-index:-1;top:-2px;left:-2px;display:block;width:calc(100% + 4px);height:calc(100% + 4px);box-sizing:content-box;content:""}.day.rangeDepartDate::before{position:absolute;z-index:-1;top:-2px;left:-2px;display:block;width:calc(100% + 4px);height:calc(100% + 4px);box-sizing:content-box;content:"";border-radius:10px 0 0 10px;overflow:hidden}.day.rangeReturnDate::before,.day.lastHoveredDate::before{position:absolute;z-index:-1;top:-2px;left:-2px;display:block;width:calc(100% + 4px);height:calc(100% + 4px);box-sizing:content-box;content:"";border-radius:0 10px 10px 0;overflow:hidden}.day.rangeDepartDate.lastHoveredDate::before{border-radius:10px}.day.firstDayOfMonth::before{border-radius:10px 0 0 10px;overflow:hidden}.day.lastDayOfMonth::before{border-radius:0 10px 10px 0;overflow:hidden}.buttonWrapper{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%}.dateSlot{display:block}::slotted([slot^=date_]){width:100%;white-space:nowrap}::slotted(auro-icon){max-height:24px;max-width:24px}:host([renderForDateSlot]) .buttonWrapper{position:relative;width:100%;height:100%}:host([renderForDateSlot]) .currentDayMarker{position:relative}`;
|
|
25521
25572
|
|
|
25522
25573
|
var colorCss$5$2 = i$6`: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}`;
|
|
25523
25574
|
|
|
@@ -25542,13 +25593,103 @@ class s{registerComponent(e,t){customElements.get(e)||customElements.define(e,cl
|
|
|
25542
25593
|
|
|
25543
25594
|
var popoverVersion = '6.0.1';
|
|
25544
25595
|
|
|
25545
|
-
|
|
25596
|
+
/**
|
|
25597
|
+
* Single source of truth for parsing and matching blackout dates across the
|
|
25598
|
+
* datepicker. Both `auro-calendar` (memoized Set + `isDateBlackout`) and the
|
|
25599
|
+
* pre-`firstUpdated` fallback inside `auro-calendar-cell` route through these
|
|
25600
|
+
* helpers so the YYYY-MM-DD → seconds conversion and the merge-with-legacy
|
|
25601
|
+
* `disabledDays` rules are defined exactly once.
|
|
25602
|
+
*/
|
|
25546
25603
|
|
|
25547
|
-
|
|
25548
|
-
|
|
25549
|
-
|
|
25550
|
-
|
|
25551
|
-
|
|
25604
|
+
/**
|
|
25605
|
+
* Converts a `YYYY-MM-DD` ISO date string to a Unix timestamp (seconds)
|
|
25606
|
+
* representing local midnight on that calendar day. Returns `null` for
|
|
25607
|
+
* inputs that don't parse to a finite timestamp.
|
|
25608
|
+
*
|
|
25609
|
+
* Uses the `new Date(year, monthIndex, day)` constructor (NOT
|
|
25610
|
+
* `new Date(isoStr)`) so the result is local-midnight rather than UTC
|
|
25611
|
+
* midnight — required to keep the calendar grid aligned with the user's
|
|
25612
|
+
* local calendar day in negative-offset timezones.
|
|
25613
|
+
*
|
|
25614
|
+
* @param {string} isoStr - Date string in `YYYY-MM-DD` format.
|
|
25615
|
+
* @returns {number|null} Local-midnight Unix timestamp (seconds), or null.
|
|
25616
|
+
*/
|
|
25617
|
+
function parseIsoToTimestamp(isoStr) {
|
|
25618
|
+
if (typeof isoStr !== 'string') {
|
|
25619
|
+
return null;
|
|
25620
|
+
}
|
|
25621
|
+
const parts = isoStr.split('-');
|
|
25622
|
+
if (parts.length !== 3) {
|
|
25623
|
+
return null;
|
|
25624
|
+
}
|
|
25625
|
+
const year = parseInt(parts[0], 10);
|
|
25626
|
+
const month = parseInt(parts[1], 10);
|
|
25627
|
+
const day = parseInt(parts[2], 10);
|
|
25628
|
+
if (!Number.isFinite(year) || !Number.isFinite(month) || !Number.isFinite(day)) {
|
|
25629
|
+
return null;
|
|
25630
|
+
}
|
|
25631
|
+
// Reject overflow values like "2024-13-40" — JS `new Date(year, month, day)`
|
|
25632
|
+
// silently normalizes those to a different calendar day, which would
|
|
25633
|
+
// disable the wrong date if we let the result through.
|
|
25634
|
+
if (month < 1 || month > 12 || day < 1 || day > 31) {
|
|
25635
|
+
return null;
|
|
25636
|
+
}
|
|
25637
|
+
const date = new Date(year, month - 1, day);
|
|
25638
|
+
// Guard the residual case where JS still rolls a value (e.g. Feb 30 → Mar 2).
|
|
25639
|
+
// After construction, getFullYear/getMonth/getDate should match the inputs.
|
|
25640
|
+
if (date.getFullYear() !== year || date.getMonth() !== month - 1 || date.getDate() !== day) {
|
|
25641
|
+
return null;
|
|
25642
|
+
}
|
|
25643
|
+
const ts = Math.floor(date.getTime() / 1000);
|
|
25644
|
+
return Number.isFinite(ts) ? ts : null;
|
|
25645
|
+
}
|
|
25646
|
+
|
|
25647
|
+
/**
|
|
25648
|
+
* Builds a `Set<number>` of seconds-since-epoch timestamps covering both the
|
|
25649
|
+
* legacy `disabledDays` (already-numeric) array and the ISO `blackoutDates`
|
|
25650
|
+
* array. Use this for O(1) membership checks in hot paths.
|
|
25651
|
+
*
|
|
25652
|
+
* @param {Array<string|number>|undefined} disabledDays - Legacy timestamp array.
|
|
25653
|
+
* @param {Array<string>|undefined} blackoutDates - ISO `YYYY-MM-DD` array.
|
|
25654
|
+
* @returns {Set<number>}
|
|
25655
|
+
*/
|
|
25656
|
+
function buildBlackoutSet(disabledDays, blackoutDates) {
|
|
25657
|
+
const set = new Set();
|
|
25658
|
+
if (Array.isArray(disabledDays)) {
|
|
25659
|
+
for (const day of disabledDays) {
|
|
25660
|
+
const ts = parseInt(day, 10);
|
|
25661
|
+
if (Number.isFinite(ts)) {
|
|
25662
|
+
set.add(ts);
|
|
25663
|
+
}
|
|
25664
|
+
}
|
|
25665
|
+
}
|
|
25666
|
+
if (Array.isArray(blackoutDates)) {
|
|
25667
|
+
for (const isoStr of blackoutDates) {
|
|
25668
|
+
const ts = parseIsoToTimestamp(isoStr);
|
|
25669
|
+
if (ts !== null) {
|
|
25670
|
+
set.add(ts);
|
|
25671
|
+
}
|
|
25672
|
+
}
|
|
25673
|
+
}
|
|
25674
|
+
return set;
|
|
25675
|
+
}
|
|
25676
|
+
|
|
25677
|
+
/**
|
|
25678
|
+
* One-shot membership test for a single timestamp against both blackout
|
|
25679
|
+
* sources. Allocates a Set on each call; only use this in cold paths
|
|
25680
|
+
* (e.g. the pre-`firstUpdated` cell fallback). Hot paths should hold the
|
|
25681
|
+
* Set returned from `buildBlackoutSet` and `.has(ts)` directly.
|
|
25682
|
+
*
|
|
25683
|
+
* @param {number} dateTs - Unix timestamp (seconds) to test.
|
|
25684
|
+
* @param {Array<string|number>|undefined} disabledDays - Legacy timestamp array.
|
|
25685
|
+
* @param {Array<string>|undefined} blackoutDates - ISO `YYYY-MM-DD` array.
|
|
25686
|
+
* @returns {boolean}
|
|
25687
|
+
*/
|
|
25688
|
+
function isBlackoutTimestamp(dateTs, disabledDays, blackoutDates) {
|
|
25689
|
+
return buildBlackoutSet(disabledDays, blackoutDates).has(dateTs);
|
|
25690
|
+
}
|
|
25691
|
+
|
|
25692
|
+
/* 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 */
|
|
25552
25693
|
|
|
25553
25694
|
class AuroCalendarCell extends i$3 {
|
|
25554
25695
|
constructor() {
|
|
@@ -25596,6 +25737,14 @@ class AuroCalendarCell extends i$3 {
|
|
|
25596
25737
|
type: Boolean,
|
|
25597
25738
|
reflect: true
|
|
25598
25739
|
},
|
|
25740
|
+
/**
|
|
25741
|
+
* @deprecated Propagated from the legacy `auro-calendar.disabledDays`
|
|
25742
|
+
* Unix-timestamp array. The cell honors it for backward compatibility
|
|
25743
|
+
* (see the divergence-check fallback inside `isBlackout`), but
|
|
25744
|
+
* consumers should migrate to `auro-datepicker.blackoutDates`
|
|
25745
|
+
* (YYYY-MM-DD ISO strings). The calendar emits a one-time
|
|
25746
|
+
* deprecation warning the first time a non-empty value is observed.
|
|
25747
|
+
*/
|
|
25599
25748
|
disabledDays: { type: Array },
|
|
25600
25749
|
isCurrentDate: { type: Boolean },
|
|
25601
25750
|
locale: { type: String },
|
|
@@ -25641,8 +25790,8 @@ class AuroCalendarCell extends i$3 {
|
|
|
25641
25790
|
const parsedDateTo = parseInt(dateTo, 10);
|
|
25642
25791
|
|
|
25643
25792
|
if (day) {
|
|
25644
|
-
const departTimestamp =
|
|
25645
|
-
const returnTimestamp =
|
|
25793
|
+
const departTimestamp = new Date(parsedDateFrom * 1000).setHours(0, 0, 0, 0) / 1000;
|
|
25794
|
+
const returnTimestamp = new Date(parsedDateTo * 1000).setHours(0, 0, 0, 0) / 1000;
|
|
25646
25795
|
|
|
25647
25796
|
if (day.date === departTimestamp || day.date === returnTimestamp) {
|
|
25648
25797
|
this.selected = true;
|
|
@@ -25726,27 +25875,33 @@ class AuroCalendarCell extends i$3 {
|
|
|
25726
25875
|
return false;
|
|
25727
25876
|
}
|
|
25728
25877
|
|
|
25729
|
-
//
|
|
25730
|
-
|
|
25731
|
-
|
|
25732
|
-
|
|
25733
|
-
|
|
25734
|
-
|
|
25735
|
-
// Check against blackoutDates (ISO format YYYY-MM-DD) on the datepicker
|
|
25736
|
-
const blackoutDates = this.datepicker?.blackoutDates;
|
|
25737
|
-
|
|
25738
|
-
if (Array.isArray(blackoutDates) && blackoutDates.length > 0) {
|
|
25739
|
-
const date = new Date(this.day.date * 1000);
|
|
25740
|
-
const yyyy = date.getFullYear();
|
|
25741
|
-
const mm = String(date.getMonth() + 1).padStart(2, '0');
|
|
25742
|
-
const dd = String(date.getDate()).padStart(2, '0');
|
|
25743
|
-
const cellDate = `${yyyy}-${mm}-${dd}`;
|
|
25744
|
-
if (blackoutDates.includes(cellDate)) {
|
|
25878
|
+
// Delegate to the calendar's memoized blackout Set for O(1) lookup
|
|
25879
|
+
// (instead of rescanning disabledDays + blackoutDates per render). The
|
|
25880
|
+
// Set is rebuilt only when either source array reference changes — see
|
|
25881
|
+
// auro-calendar.js#_getBlackoutSet.
|
|
25882
|
+
if (this.calendar && typeof this.calendar._getBlackoutSet === 'function') {
|
|
25883
|
+
if (this.calendar._getBlackoutSet().has(this.day.date)) {
|
|
25745
25884
|
return true;
|
|
25746
25885
|
}
|
|
25886
|
+
// If the cell's local disabledDays diverged from the calendar's (a
|
|
25887
|
+
// consumer or test mutated cell.disabledDays directly), the Set does
|
|
25888
|
+
// not reflect that addition — fall through to the per-cell scan only
|
|
25889
|
+
// when the reference no longer matches. Production data flow keeps
|
|
25890
|
+
// these identical, so this branch stays cold. Guarded with
|
|
25891
|
+
// Array.isArray to match `_getBlackoutSet`'s contract: non-array
|
|
25892
|
+
// values are treated as empty rather than crashing on `.findIndex`.
|
|
25893
|
+
if (Array.isArray(this.disabledDays) && this.disabledDays !== this.calendar.disabledDays && this.disabledDays.length > 0) {
|
|
25894
|
+
if (this.disabledDays.findIndex((dd) => parseInt(dd, 10) === this.day.date) !== -1) {
|
|
25895
|
+
return true;
|
|
25896
|
+
}
|
|
25897
|
+
}
|
|
25898
|
+
return false;
|
|
25747
25899
|
}
|
|
25748
25900
|
|
|
25749
|
-
|
|
25901
|
+
// Pre-firstUpdated fallback — the cell may render once before the
|
|
25902
|
+
// ancestor calendar is wired up. Routes through the shared
|
|
25903
|
+
// blackoutUtils helper so the parsing rules stay in one place.
|
|
25904
|
+
return isBlackoutTimestamp(this.day.date, this.disabledDays, this.datepicker?.blackoutDates);
|
|
25750
25905
|
}
|
|
25751
25906
|
|
|
25752
25907
|
/**
|
|
@@ -25852,12 +26007,12 @@ class AuroCalendarCell extends i$3 {
|
|
|
25852
26007
|
const parsedDateFrom = Number.parseInt(this.dateFrom, 10);
|
|
25853
26008
|
if (!Number.isFinite(parsedDateFrom)) return null;
|
|
25854
26009
|
|
|
25855
|
-
const departTimestamp =
|
|
26010
|
+
const departTimestamp = new Date(parsedDateFrom * 1000).setHours(0, 0, 0, 0) / 1000;
|
|
25856
26011
|
const dayDate = this.day.date;
|
|
25857
26012
|
|
|
25858
26013
|
const parsedDateTo = Number.parseInt(this.dateTo, 10);
|
|
25859
26014
|
const hasDateTo = Number.isFinite(parsedDateTo);
|
|
25860
|
-
const returnTimestamp = hasDateTo ?
|
|
26015
|
+
const returnTimestamp = hasDateTo ? new Date(parsedDateTo * 1000).setHours(0, 0, 0, 0) / 1000 : null;
|
|
25861
26016
|
|
|
25862
26017
|
if (dayDate === departTimestamp) return this.datepicker.rangeLabelStart || 'range start';
|
|
25863
26018
|
|
|
@@ -25867,7 +26022,9 @@ class AuroCalendarCell extends i$3 {
|
|
|
25867
26022
|
|
|
25868
26023
|
if (hasDateTo && dayDate > departTimestamp && dayDate < returnTimestamp) return this.datepicker.rangeLabelInRange || 'in range';
|
|
25869
26024
|
|
|
25870
|
-
|
|
26025
|
+
if (!hasDateTo && dayDate > departTimestamp) return this.datepicker.rangeLabelEndPreview || 'previewing range end';
|
|
26026
|
+
|
|
26027
|
+
// After end date when both dateFrom and dateTo are set.
|
|
25871
26028
|
return this.datepicker.rangeLabelAfterRange || 'after range';
|
|
25872
26029
|
}
|
|
25873
26030
|
|
|
@@ -25880,7 +26037,7 @@ class AuroCalendarCell extends i$3 {
|
|
|
25880
26037
|
*/
|
|
25881
26038
|
isDepartDate(day, dateFrom) {
|
|
25882
26039
|
const parsedDateFrom = parseInt(dateFrom, 10);
|
|
25883
|
-
const departTimestamp =
|
|
26040
|
+
const departTimestamp = new Date(parsedDateFrom * 1000).setHours(0, 0, 0, 0) / 1000;
|
|
25884
26041
|
|
|
25885
26042
|
return this.selected && day.date === departTimestamp;
|
|
25886
26043
|
}
|
|
@@ -25895,7 +26052,7 @@ class AuroCalendarCell extends i$3 {
|
|
|
25895
26052
|
*/
|
|
25896
26053
|
isReturnDate(day, dateFrom, dateTo) {
|
|
25897
26054
|
const parsedDateTo = parseInt(dateTo, 10);
|
|
25898
|
-
const returnTimestamp =
|
|
26055
|
+
const returnTimestamp = new Date(parsedDateTo * 1000).setHours(0, 0, 0, 0) / 1000;
|
|
25899
26056
|
|
|
25900
26057
|
return this.selected && day.date === returnTimestamp && dateFrom;
|
|
25901
26058
|
}
|
|
@@ -26059,6 +26216,7 @@ class AuroCalendarCell extends i$3 {
|
|
|
26059
26216
|
setTimeout(() => this.firstUpdated(), 0);
|
|
26060
26217
|
return;
|
|
26061
26218
|
}
|
|
26219
|
+
this.calendar = calendar;
|
|
26062
26220
|
this.datepicker = calendar.datepicker;
|
|
26063
26221
|
this._slotContentHandler = () => {
|
|
26064
26222
|
this.handleSlotContent();
|
|
@@ -26116,15 +26274,28 @@ class AuroCalendarCell extends i$3 {
|
|
|
26116
26274
|
this._cachedButton = this.shadowRoot.querySelector('button.day');
|
|
26117
26275
|
});
|
|
26118
26276
|
|
|
26119
|
-
//
|
|
26277
|
+
// Keep the host's gridcell aria attributes in sync with the day data.
|
|
26120
26278
|
this.updateHostAria();
|
|
26121
26279
|
}
|
|
26122
26280
|
|
|
26123
26281
|
// Update host aria when selection changes (aria-selected, range labels)
|
|
26124
|
-
|
|
26282
|
+
// or when isCurrentDate flips (aria-current).
|
|
26283
|
+
if (properties.has('dateFrom') || properties.has('dateTo') || properties.has('selected') || properties.has('isCurrentDate')) {
|
|
26125
26284
|
this.updateHostAria();
|
|
26126
26285
|
}
|
|
26127
26286
|
|
|
26287
|
+
// When the rendered range shifts (month nav, min/max change), a cell
|
|
26288
|
+
// host may be re-rendered for a new date that is now out-of-range —
|
|
26289
|
+
// but its imperatively-set `active` flag and `activeCell` ring class
|
|
26290
|
+
// from the previous date persist because setActiveCell only iterates
|
|
26291
|
+
// focusable (in-range) cells when clearing the prior active state.
|
|
26292
|
+
// Drop the active state here so the disabled cell isn't left visually
|
|
26293
|
+
// ringed.
|
|
26294
|
+
if ((properties.has('day') || properties.has('min') || properties.has('max')) &&
|
|
26295
|
+
this.active && this.isOutOfRange(this.day, this.min, this.max)) {
|
|
26296
|
+
this.clearActive();
|
|
26297
|
+
}
|
|
26298
|
+
|
|
26128
26299
|
// Configure popover when it first becomes rendered
|
|
26129
26300
|
if (properties.has('hasPopoverContent') && this.hasPopoverContent) {
|
|
26130
26301
|
this.updateComplete.then(() => this.configurePopover());
|
|
@@ -26132,8 +26303,8 @@ class AuroCalendarCell extends i$3 {
|
|
|
26132
26303
|
}
|
|
26133
26304
|
|
|
26134
26305
|
/**
|
|
26135
|
-
*
|
|
26136
|
-
*
|
|
26306
|
+
* Sets host-level ARIA so each cell exposes its date, selection state,
|
|
26307
|
+
* and blackout status to assistive tech browsing the month grid.
|
|
26137
26308
|
* @private
|
|
26138
26309
|
* @returns {void}
|
|
26139
26310
|
*/
|
|
@@ -26142,16 +26313,27 @@ class AuroCalendarCell extends i$3 {
|
|
|
26142
26313
|
|
|
26143
26314
|
const outOfRange = this.isOutOfRange(this.day, this.min, this.max);
|
|
26144
26315
|
if (outOfRange) {
|
|
26316
|
+
// Strip every aria attribute the in-range branch may have set on a
|
|
26317
|
+
// previous render — if a cell flips from in-range to out-of-range
|
|
26318
|
+
// (calendar shifts months, minDate/maxDate change, etc.).
|
|
26145
26319
|
this.removeAttribute('role');
|
|
26146
26320
|
this.removeAttribute('aria-label');
|
|
26321
|
+
this.removeAttribute('aria-current');
|
|
26322
|
+
this.removeAttribute('aria-selected');
|
|
26323
|
+
this.removeAttribute('aria-disabled');
|
|
26147
26324
|
return;
|
|
26148
26325
|
}
|
|
26149
26326
|
|
|
26150
|
-
// The host acts as the gridcell for ariaActiveDescendantElement.
|
|
26151
26327
|
this.setAttribute('role', 'gridcell');
|
|
26152
26328
|
this.setAttribute('aria-label', this.getAriaLabel());
|
|
26153
26329
|
this.setAttribute('aria-selected', this.selected ? 'true' : 'false');
|
|
26154
26330
|
|
|
26331
|
+
if (this.isCurrentDate) {
|
|
26332
|
+
this.setAttribute('aria-current', 'date');
|
|
26333
|
+
} else {
|
|
26334
|
+
this.removeAttribute('aria-current');
|
|
26335
|
+
}
|
|
26336
|
+
|
|
26155
26337
|
if (this.isBlackout()) {
|
|
26156
26338
|
this.setAttribute('aria-disabled', 'true');
|
|
26157
26339
|
} else {
|
|
@@ -26166,7 +26348,7 @@ class AuroCalendarCell extends i$3 {
|
|
|
26166
26348
|
* @returns {void}
|
|
26167
26349
|
*/
|
|
26168
26350
|
focusButton() {
|
|
26169
|
-
const button = this._cachedButton || this.shadowRoot.querySelector('button:not([
|
|
26351
|
+
const button = this._cachedButton || this.shadowRoot.querySelector('button:not([disabled])');
|
|
26170
26352
|
if (button) {
|
|
26171
26353
|
button.focus({ focusVisible: true });
|
|
26172
26354
|
}
|
|
@@ -26174,10 +26356,22 @@ class AuroCalendarCell extends i$3 {
|
|
|
26174
26356
|
|
|
26175
26357
|
/**
|
|
26176
26358
|
* Imperatively marks this cell as active without triggering a Lit re-render.
|
|
26177
|
-
*
|
|
26359
|
+
* Buttons stay tabindex="-1" because DOM focus stays on the grid wrapper —
|
|
26360
|
+
* arrow keys move the active cell imperatively and the live region carries
|
|
26361
|
+
* the SR announcement.
|
|
26362
|
+
*
|
|
26363
|
+
* Refuses to activate out-of-range cells: those are aria-hidden, have no
|
|
26364
|
+
* click/focus handlers, and are filtered out of `getFocusableCells`. The
|
|
26365
|
+
* active class showing on a disabled cell would be visually misleading,
|
|
26366
|
+
* so this guard is the single source of truth across every code path
|
|
26367
|
+
* that might call setActive (keyboard nav, focus restore, cell click).
|
|
26178
26368
|
* @returns {void}
|
|
26179
26369
|
*/
|
|
26180
26370
|
setActive() {
|
|
26371
|
+
if (this.isOutOfRange(this.day, this.min, this.max)) {
|
|
26372
|
+
return;
|
|
26373
|
+
}
|
|
26374
|
+
|
|
26181
26375
|
this.active = true;
|
|
26182
26376
|
|
|
26183
26377
|
// Show the popover when this cell becomes active via keyboard navigation.
|
|
@@ -26216,10 +26410,13 @@ class AuroCalendarCell extends i$3 {
|
|
|
26216
26410
|
if (!btn || !this.day) return;
|
|
26217
26411
|
|
|
26218
26412
|
const dayDate = this.day.date;
|
|
26219
|
-
const departTimestamp =
|
|
26413
|
+
const departTimestamp = new Date(dateFrom * 1000).setHours(0, 0, 0, 0) / 1000;
|
|
26220
26414
|
const isInRange = dayDate > departTimestamp && dayDate < hoveredDate;
|
|
26221
|
-
|
|
26222
|
-
|
|
26415
|
+
// `>=` so hovering the depart cell itself (a same-day round-trip
|
|
26416
|
+
// preview) still surfaces a visual cue: the depart cell receives both
|
|
26417
|
+
// rangeDepartDate and lastHoveredDate.
|
|
26418
|
+
const isLastHovered = dayDate === hoveredDate && hoveredDate >= departTimestamp;
|
|
26419
|
+
const isDepartWithPreview = dayDate === departTimestamp && hoveredDate >= departTimestamp;
|
|
26223
26420
|
|
|
26224
26421
|
btn.classList.toggle('inRange', isInRange);
|
|
26225
26422
|
btn.classList.toggle('lastHoveredDate', isLastHovered);
|
|
@@ -26277,7 +26474,6 @@ class AuroCalendarCell extends i$3 {
|
|
|
26277
26474
|
@focus="${outOfRange ? undefined : this.handleFocus}"
|
|
26278
26475
|
class="${e$2(buttonClasses)}"
|
|
26279
26476
|
?disabled="${outOfRange}"
|
|
26280
|
-
aria-hidden="${outOfRange ? 'true' : A$7}"
|
|
26281
26477
|
tabindex="-1">
|
|
26282
26478
|
<div class="buttonWrapper" aria-hidden="true">
|
|
26283
26479
|
<div class="currentDayMarker">${this.day?.title || A$7}</div>
|
|
@@ -26988,7 +27184,7 @@ class CalendarUtilities {
|
|
|
26988
27184
|
|
|
26989
27185
|
var colorCss$4$2 = i$6`#headerContainer{box-shadow:var(--ds-auro-dropdownbib-header-boxshadow-color)}#footerContainer{background-color:var(--ds-auro-dropdownbib-footer-container-color)}`;
|
|
26990
27186
|
|
|
26991
|
-
var styleCss$4$3 = i$6`#bibTemplate{display:flex;overflow:hidden;height:100%;max-height:100%;flex-direction:column}#headerContainer{display:flex;flex-direction:column;padding:var(--ds-size-200, 1rem);padding-top:var(--ds-size-400, 2rem);padding-bottom:0}#headerContainer .titleRow{display:flex;flex-direction:row;justify-content:space-between;gap:var(--ds-size-100, 0.5rem)}#headerContainer .header{max-width:calc(100vw - var(--ds-size-900, 4.5rem));padding-top:var(--ds-size-200, 1rem)}#headerContainer .subheader{width:100%}#closeButton [auro-icon]{--ds-auro-icon-size: var(--ds-size-500, 2.5rem)}#bodyContainer{position:relative;overflow:auto;flex:1
|
|
27187
|
+
var styleCss$4$3 = i$6`#bibTemplate{display:flex;overflow:hidden;height:100%;max-height:100%;flex-direction:column}#headerContainer{display:flex;flex-direction:column;padding:var(--ds-size-200, 1rem);padding-top:var(--ds-size-400, 2rem);padding-bottom:0}#headerContainer .titleRow{display:flex;flex-direction:row;justify-content:space-between;gap:var(--ds-size-100, 0.5rem)}#headerContainer .header{max-width:calc(100vw - var(--ds-size-900, 4.5rem));padding-top:var(--ds-size-200, 1rem)}#headerContainer .subheader{width:100%}#closeButton [auro-icon]{--ds-auro-icon-size: var(--ds-size-500, 2.5rem)}#bodyContainer{position:relative;overflow:auto;flex:1}:host([isfullscreen]) #bibTemplate{max-height:100dvh}:host([isfullscreen]) #bodyContainer{margin-top:var(--ds-size-100, 0.5rem)}#footerContainer{padding:var(--ds-size-200, 1rem)}`;
|
|
26992
27188
|
|
|
26993
27189
|
var tokenCss$4 = i$6`:host{--ds-auro-dropdownbib-header-boxshadow-color: var(--ds-elevation-200, 0px 0px 10px rgba(0, 0, 0, 0.15));--ds-auro-dropdownbib-footer-container-color: var(--ds-basic-color-surface-default, #ffffff)}`;
|
|
26994
27190
|
|
|
@@ -27383,7 +27579,7 @@ let AuroBibtemplate$3 = class AuroBibtemplate extends i$3 {
|
|
|
27383
27579
|
}
|
|
27384
27580
|
};
|
|
27385
27581
|
|
|
27386
|
-
var formkitVersion$2$1 = '
|
|
27582
|
+
var formkitVersion$2$1 = '202607010104';
|
|
27387
27583
|
|
|
27388
27584
|
let l$1$2 = class l{generateElementName(t,e){let o=t;return o+="-",o+=e.replace(/[.]/g,"_"),o}generateTag(o,s,a){const r=this.generateElementName(o,s),i=i$2`${s$3(r)}`;return customElements.get(r)||customElements.define(r,class extends a{}),i}};let d$1$2 = class d{registerComponent(t,e){customElements.get(t)||customElements.define(t,class extends e{});}closestElement(t,e=this,o=(e,s=e&&e.closest(t))=>e&&e!==document&&e!==window?s||o(e.getRootNode().host):null){return o(e)}handleComponentTagRename(t,e){const o=e.toLowerCase();t.tagName.toLowerCase()!==o&&t.setAttribute(o,true);}elementMatch(t,e){const o=e.toLowerCase();return t.tagName.toLowerCase()===o||t.hasAttribute(o)}getSlotText(t,e){const o=t.shadowRoot?.querySelector(`slot[name="${e}"]`),s=(o?.assignedNodes({flatten:true})||[]).map(t=>t.textContent?.trim()).join(" ").trim();return s||null}};let h$1$2 = class h{registerComponent(t,e){customElements.get(t)||customElements.define(t,class extends e{});}closestElement(t,e=this,o=(e,s=e&&e.closest(t))=>e&&e!==document&&e!==window?s||o(e.getRootNode().host):null){return o(e)}handleComponentTagRename(t,e){const o=e.toLowerCase();t.tagName.toLowerCase()!==o&&t.setAttribute(o,true);}elementMatch(t,e){const o=e.toLowerCase();return t.tagName.toLowerCase()===o||t.hasAttribute(o)}};var c$1$3=i$6`: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}
|
|
27389
27585
|
`,u$4$2=i$6`.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}}
|
|
@@ -27488,6 +27684,15 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
27488
27684
|
*/
|
|
27489
27685
|
this.activeCellDate = null;
|
|
27490
27686
|
|
|
27687
|
+
/**
|
|
27688
|
+
* Cached reference to the active cell host. Set by setActiveCell and
|
|
27689
|
+
* refreshed by scrollToActiveCell when its cache check misses (stale
|
|
27690
|
+
* or missing). Lets scrollToActiveCell skip a full cell scan on each
|
|
27691
|
+
* arrow key.
|
|
27692
|
+
* @private
|
|
27693
|
+
*/
|
|
27694
|
+
this._activeCell = null;
|
|
27695
|
+
|
|
27491
27696
|
/**
|
|
27492
27697
|
* Whether the #calendarGrid wrapper currently has focus.
|
|
27493
27698
|
* Used to determine whether the visualFocus ring should be shown.
|
|
@@ -27506,7 +27711,11 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
27506
27711
|
this.calendarRangeMonths = null;
|
|
27507
27712
|
|
|
27508
27713
|
/**
|
|
27509
|
-
*
|
|
27714
|
+
* @deprecated Use `auro-datepicker.blackoutDates` (an array of
|
|
27715
|
+
* `YYYY-MM-DD` ISO strings) instead. This legacy array of Unix
|
|
27716
|
+
* timestamps is still honored for backward compatibility but emits a
|
|
27717
|
+
* one-time `console.debug` the first time a non-empty value is observed.
|
|
27718
|
+
* Support will be removed in a future major release.
|
|
27510
27719
|
* @private
|
|
27511
27720
|
*/
|
|
27512
27721
|
this.disabledDays = [];
|
|
@@ -27763,17 +27972,44 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
27763
27972
|
* @returns {void}
|
|
27764
27973
|
*/
|
|
27765
27974
|
updateActiveCellForVisibleMonth() {
|
|
27766
|
-
|
|
27767
|
-
|
|
27768
|
-
requestAnimationFrame(() => {
|
|
27769
|
-
requestAnimationFrame(() => {
|
|
27770
|
-
const newDate = this.computeActiveDate({ skipDateFrom: true });
|
|
27975
|
+
this._afterMonthRender(() => {
|
|
27976
|
+
const newDate = this.computeActiveDate({ skipDateFrom: true });
|
|
27771
27977
|
|
|
27772
|
-
|
|
27773
|
-
|
|
27774
|
-
|
|
27775
|
-
|
|
27776
|
-
|
|
27978
|
+
if (newDate !== null && newDate !== undefined) {
|
|
27979
|
+
this.activeCellDate = newDate;
|
|
27980
|
+
this.setActiveCell(this.activeCellDate);
|
|
27981
|
+
}
|
|
27982
|
+
});
|
|
27983
|
+
}
|
|
27984
|
+
|
|
27985
|
+
/**
|
|
27986
|
+
* Schedules `callback` two animation frames out, giving the child
|
|
27987
|
+
* `auro-formkit-calendar-month` and `auro-formkit-calendar-cell` elements
|
|
27988
|
+
* a full render-and-paint cycle to settle before the callback reads or
|
|
27989
|
+
* mutates DOM.
|
|
27990
|
+
*
|
|
27991
|
+
* Why two frames, not one:
|
|
27992
|
+
* 1. Lit batches property updates and renders in a microtask, so frame N
|
|
27993
|
+
* schedules the render but the new DOM may not be painted yet.
|
|
27994
|
+
* 2. Cells re-cache `_cachedButton` inside their own `updateComplete.then`,
|
|
27995
|
+
* which also lands a tick later. Reading buttons from frame N+1
|
|
27996
|
+
* (after both renders + cache refresh have flushed) reliably hits the
|
|
27997
|
+
* new month's cells.
|
|
27998
|
+
*
|
|
27999
|
+
* Used by every code path that calls `handleNextMonth`/`handlePrevMonth`
|
|
28000
|
+
* and then needs to inspect the freshly-rendered cells (cross-month
|
|
28001
|
+
* keyboard nav, boundary events, `updateActiveCellForVisibleMonth`).
|
|
28002
|
+
* Do NOT collapse to a single rAF — it intermittently lands before
|
|
28003
|
+
* `_cachedButton` is refreshed, which silently breaks focus restoration
|
|
28004
|
+
* and `setActiveCell` lookups.
|
|
28005
|
+
* @private
|
|
28006
|
+
* @param {() => void} callback - Runs once after the month re-render and
|
|
28007
|
+
* the cells' button caches have refreshed.
|
|
28008
|
+
* @returns {void}
|
|
28009
|
+
*/
|
|
28010
|
+
_afterMonthRender(callback) {
|
|
28011
|
+
requestAnimationFrame(() => {
|
|
28012
|
+
requestAnimationFrame(callback);
|
|
27777
28013
|
});
|
|
27778
28014
|
}
|
|
27779
28015
|
|
|
@@ -27891,6 +28127,47 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
27891
28127
|
return Array.from(this.shadowRoot.querySelectorAll('auro-formkit-calendar-month'));
|
|
27892
28128
|
}
|
|
27893
28129
|
|
|
28130
|
+
/**
|
|
28131
|
+
* Picks the focusable cell whose date is closest to targetTs. Used as a
|
|
28132
|
+
* fallback after a month-boundary nav when the exact target date isn't
|
|
28133
|
+
* focusable — typically because the month re-render lagged or the date
|
|
28134
|
+
* was filtered out by isOutOfRange. When two cells are equidistant, the
|
|
28135
|
+
* navigation direction breaks the tie so the user moves the way they
|
|
28136
|
+
* pressed (forward → later cell, backward → earlier cell).
|
|
28137
|
+
* @private
|
|
28138
|
+
* @param {Array} cells - Focusable cells from getAllFocusableCells.
|
|
28139
|
+
* @param {Number} targetTs - Desired Unix timestamp (seconds).
|
|
28140
|
+
* @param {'next'|'prev'} direction - Navigation direction.
|
|
28141
|
+
* @returns {Object|null} The nearest cell, or null when cells is empty.
|
|
28142
|
+
*/
|
|
28143
|
+
pickNearestCell(cells, targetTs, direction) {
|
|
28144
|
+
if (!cells.length) {
|
|
28145
|
+
return null;
|
|
28146
|
+
}
|
|
28147
|
+
const forward = direction === 'next';
|
|
28148
|
+
let best = null;
|
|
28149
|
+
let bestDelta = Infinity;
|
|
28150
|
+
cells.forEach((cell) => {
|
|
28151
|
+
if (!cell.day) {
|
|
28152
|
+
return;
|
|
28153
|
+
}
|
|
28154
|
+
const distance = Math.abs(cell.day.date - targetTs);
|
|
28155
|
+
if (distance < bestDelta) {
|
|
28156
|
+
best = cell;
|
|
28157
|
+
bestDelta = distance;
|
|
28158
|
+
return;
|
|
28159
|
+
}
|
|
28160
|
+
if (distance === bestDelta && best) {
|
|
28161
|
+
if (forward && cell.day.date > best.day.date) {
|
|
28162
|
+
best = cell;
|
|
28163
|
+
} else if (!forward && cell.day.date < best.day.date) {
|
|
28164
|
+
best = cell;
|
|
28165
|
+
}
|
|
28166
|
+
}
|
|
28167
|
+
});
|
|
28168
|
+
return best;
|
|
28169
|
+
}
|
|
28170
|
+
|
|
27894
28171
|
/**
|
|
27895
28172
|
* Gets all focusable cells across all rendered months.
|
|
27896
28173
|
* @private
|
|
@@ -27907,9 +28184,9 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
27907
28184
|
|
|
27908
28185
|
/**
|
|
27909
28186
|
* Sets the active cell across all months. Only one cell has tabindex="0" at a time.
|
|
27910
|
-
* Uses imperative DOM manipulation — no Lit re-render triggered.
|
|
27911
|
-
*
|
|
27912
|
-
*
|
|
28187
|
+
* Uses imperative DOM manipulation — no Lit re-render triggered. DOM focus
|
|
28188
|
+
* stays on the grid wrapper; the live region (see getOrCreateLiveRegion)
|
|
28189
|
+
* is what announces the active cell to assistive tech.
|
|
27913
28190
|
* @param {Number} date - Unix timestamp of the cell to activate.
|
|
27914
28191
|
* @returns {void}
|
|
27915
28192
|
*/
|
|
@@ -27927,6 +28204,9 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
27927
28204
|
});
|
|
27928
28205
|
|
|
27929
28206
|
this.activeCellDate = date;
|
|
28207
|
+
// Cache so scrollToActiveCell can scroll without re-querying all cells
|
|
28208
|
+
// on every arrow keypress.
|
|
28209
|
+
this._activeCell = newActiveCell;
|
|
27930
28210
|
|
|
27931
28211
|
// Apply activeCell ring only when the grid currently has focus.
|
|
27932
28212
|
if (newActiveCell && this._gridHasFocus) {
|
|
@@ -27958,10 +28238,23 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
27958
28238
|
/**
|
|
27959
28239
|
* Shows the activeCell ring when the grid gains focus.
|
|
27960
28240
|
* @private
|
|
28241
|
+
* @param {FocusEvent} [event] - The focusin event.
|
|
27961
28242
|
* @returns {void}
|
|
27962
28243
|
*/
|
|
27963
|
-
handleGridFocusIn() {
|
|
28244
|
+
handleGridFocusIn(event) {
|
|
27964
28245
|
this._gridHasFocus = true;
|
|
28246
|
+
|
|
28247
|
+
// Only apply the activeCell ring when the grid wrapper itself receives focus
|
|
28248
|
+
// (Tab/programmatic). When focus moves into a cell button via mousedown,
|
|
28249
|
+
// event.target is the cell descendant — skip the ring here. The subsequent
|
|
28250
|
+
// click handler calls setActiveCell on the clicked cell, which applies the
|
|
28251
|
+
// ring there. Without this guard, mousedown briefly flashes the ring on the
|
|
28252
|
+
// previously-active cell (e.g. the 1st-of-month set by month navigation
|
|
28253
|
+
// when the grid was not focused).
|
|
28254
|
+
if (event && event.target !== event.currentTarget) {
|
|
28255
|
+
return;
|
|
28256
|
+
}
|
|
28257
|
+
|
|
27965
28258
|
const activeCell = this.getAllFocusableCells().find((cell) => cell.active);
|
|
27966
28259
|
if (activeCell) {
|
|
27967
28260
|
const btn = activeCell._cachedButton || activeCell.shadowRoot.querySelector('button.day');
|
|
@@ -27990,6 +28283,65 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
27990
28283
|
this.clearRangePreview();
|
|
27991
28284
|
}
|
|
27992
28285
|
|
|
28286
|
+
/**
|
|
28287
|
+
* Returns a memoized Set of blackout timestamps (seconds) drawn from both
|
|
28288
|
+
* the legacy `disabledDays` array and the datepicker's ISO `blackoutDates`.
|
|
28289
|
+
* The cache invalidates when either source array's reference changes, which
|
|
28290
|
+
* matches Lit's own reactive identity semantics for array properties.
|
|
28291
|
+
* @private
|
|
28292
|
+
* @returns {Set<Number>}
|
|
28293
|
+
*/
|
|
28294
|
+
_getBlackoutSet() {
|
|
28295
|
+
// Normalize non-array values to a stable `null` sentinel rather than a
|
|
28296
|
+
// fresh `[]` per call — otherwise the reference-identity cache key
|
|
28297
|
+
// (`_cachedBlackoutDisabledDays === disabledDays`) never matches on
|
|
28298
|
+
// subsequent calls and the Set rebuilds every time. `buildBlackoutSet`
|
|
28299
|
+
// already treats null/non-array as "no legacy disabledDays" via its
|
|
28300
|
+
// own Array.isArray gate.
|
|
28301
|
+
const disabledDays = Array.isArray(this.disabledDays) ? this.disabledDays : null;
|
|
28302
|
+
const blackoutDates = this.datepicker?.blackoutDates;
|
|
28303
|
+
if (this._blackoutSet &&
|
|
28304
|
+
this._cachedBlackoutDisabledDays === disabledDays &&
|
|
28305
|
+
this._cachedBlackoutDates === blackoutDates) {
|
|
28306
|
+
return this._blackoutSet;
|
|
28307
|
+
}
|
|
28308
|
+
|
|
28309
|
+
if (disabledDays && disabledDays.length > 0) {
|
|
28310
|
+
this._warnDisabledDaysDeprecated();
|
|
28311
|
+
}
|
|
28312
|
+
|
|
28313
|
+
this._blackoutSet = buildBlackoutSet(disabledDays, blackoutDates);
|
|
28314
|
+
this._cachedBlackoutDisabledDays = disabledDays;
|
|
28315
|
+
this._cachedBlackoutDates = blackoutDates;
|
|
28316
|
+
return this._blackoutSet;
|
|
28317
|
+
}
|
|
28318
|
+
|
|
28319
|
+
/**
|
|
28320
|
+
* Per-class flag that gates the `disabledDays` deprecation warning so it
|
|
28321
|
+
* fires exactly once per page no matter how many calendars or rebuild
|
|
28322
|
+
* cycles encounter the legacy array.
|
|
28323
|
+
* @private
|
|
28324
|
+
*/
|
|
28325
|
+
static _warnedDisabledDaysDeprecation = false;
|
|
28326
|
+
|
|
28327
|
+
/**
|
|
28328
|
+
* One-time `console.debug` directing consumers from the legacy
|
|
28329
|
+
* `disabledDays` Unix-timestamp API to the ISO `blackoutDates` API. Fires
|
|
28330
|
+
* the first time `_getBlackoutSet` rebuilds from a non-empty
|
|
28331
|
+
* `disabledDays`; subsequent calls (on this or any other AuroCalendar
|
|
28332
|
+
* instance on the page) are silent.
|
|
28333
|
+
* @private
|
|
28334
|
+
* @returns {void}
|
|
28335
|
+
*/
|
|
28336
|
+
_warnDisabledDaysDeprecated() {
|
|
28337
|
+
if (AuroCalendar._warnedDisabledDaysDeprecation) {
|
|
28338
|
+
return;
|
|
28339
|
+
}
|
|
28340
|
+
AuroCalendar._warnedDisabledDaysDeprecation = true;
|
|
28341
|
+
// eslint-disable-next-line no-console
|
|
28342
|
+
console.debug('[auro-datepicker] The `disabledDays` property (Unix timestamps) is deprecated. Migrate to the `blackoutDates` property on auro-datepicker (an array of `YYYY-MM-DD` ISO strings). `disabledDays` will be removed in a future major release.');
|
|
28343
|
+
}
|
|
28344
|
+
|
|
27993
28345
|
/**
|
|
27994
28346
|
* Computes the initial active date from data properties alone — no DOM required.
|
|
27995
28347
|
* Priority:
|
|
@@ -28034,21 +28386,10 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
28034
28386
|
const minTs = Number.isFinite(rawMin) ? rawMin : -Infinity;
|
|
28035
28387
|
const maxTs = Number.isFinite(rawMax) ? rawMax : Infinity;
|
|
28036
28388
|
|
|
28037
|
-
// Build a Set of blackout timestamps for O(1) lookup.
|
|
28038
|
-
|
|
28039
|
-
|
|
28040
|
-
|
|
28041
|
-
// Parse YYYY-MM-DD as local date to avoid UTC shift issues.
|
|
28042
|
-
const isoBlackouts = this.datepicker?.blackoutDates;
|
|
28043
|
-
if (Array.isArray(isoBlackouts)) {
|
|
28044
|
-
for (const isoStr of isoBlackouts) {
|
|
28045
|
-
const parts = isoStr.split('-');
|
|
28046
|
-
const ts = Math.floor(new Date(parseInt(parts[0], 10), parseInt(parts[1], 10) - 1, parseInt(parts[2], 10)).getTime() / 1000);
|
|
28047
|
-
if (Number.isFinite(ts)) {
|
|
28048
|
-
blackoutSet.add(ts);
|
|
28049
|
-
}
|
|
28050
|
-
}
|
|
28051
|
-
}
|
|
28389
|
+
// Build a Set of blackout timestamps for O(1) lookup. Memoized by the
|
|
28390
|
+
// identity of the source arrays so rapid month nav doesn't rebuild the
|
|
28391
|
+
// Set (and re-parse every ISO string) on every keypress.
|
|
28392
|
+
const blackoutSet = this._getBlackoutSet();
|
|
28052
28393
|
|
|
28053
28394
|
/**
|
|
28054
28395
|
* A date (unix timestamp in seconds, midnight-aligned) is "enabled" when
|
|
@@ -28244,8 +28585,8 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
28244
28585
|
|
|
28245
28586
|
/**
|
|
28246
28587
|
* Handles arrow key navigation on the calendar grid wrapper.
|
|
28247
|
-
* Focus stays on the grid wrapper; only
|
|
28248
|
-
*
|
|
28588
|
+
* Focus stays on the grid wrapper; only the visual active-cell indicator
|
|
28589
|
+
* changes. The live region announces the new active cell.
|
|
28249
28590
|
* @private
|
|
28250
28591
|
* @param {KeyboardEvent} event - The keyboard event.
|
|
28251
28592
|
* @returns {void}
|
|
@@ -28310,21 +28651,24 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
28310
28651
|
} else {
|
|
28311
28652
|
this.handlePrevMonth({ skipActiveUpdate: true });
|
|
28312
28653
|
}
|
|
28313
|
-
|
|
28314
|
-
|
|
28315
|
-
|
|
28316
|
-
|
|
28317
|
-
|
|
28318
|
-
|
|
28319
|
-
|
|
28320
|
-
|
|
28321
|
-
|
|
28654
|
+
this._afterMonthRender(() => {
|
|
28655
|
+
const cells = this.getAllFocusableCells();
|
|
28656
|
+
const target = cells.find((cell) => cell.day && cell.day.date === targetTs);
|
|
28657
|
+
if (target) {
|
|
28658
|
+
this.setActiveCell(target.day.date);
|
|
28659
|
+
this.handleCellFocused({ detail: { date: target.day.date } });
|
|
28660
|
+
} else {
|
|
28661
|
+
const fallback = this.pickNearestCell(cells, targetTs, navDir);
|
|
28662
|
+
if (fallback) {
|
|
28322
28663
|
this.setActiveCell(fallback.day.date);
|
|
28323
28664
|
this.handleCellFocused({ detail: { date: fallback.day.date } });
|
|
28324
28665
|
}
|
|
28325
|
-
|
|
28326
|
-
|
|
28327
|
-
|
|
28666
|
+
}
|
|
28667
|
+
// Scroll AFTER the cross-month setActiveCell so the freshly
|
|
28668
|
+
// activated cell is what gets scrolled into view.
|
|
28669
|
+
this.scrollToActiveCell();
|
|
28670
|
+
// Re-focus grid wrapper after month change re-render
|
|
28671
|
+
this.focusActiveCell();
|
|
28328
28672
|
});
|
|
28329
28673
|
}
|
|
28330
28674
|
}
|
|
@@ -28350,26 +28694,23 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
28350
28694
|
} else {
|
|
28351
28695
|
this.handlePrevMonth({ skipActiveUpdate: true });
|
|
28352
28696
|
}
|
|
28353
|
-
|
|
28354
|
-
|
|
28355
|
-
|
|
28356
|
-
|
|
28357
|
-
|
|
28358
|
-
|
|
28359
|
-
|
|
28360
|
-
|
|
28361
|
-
|
|
28362
|
-
|
|
28363
|
-
if (navDirection === 'next') {
|
|
28364
|
-
[nearest] = cells;
|
|
28365
|
-
} else {
|
|
28366
|
-
nearest = cells[cells.length - 1];
|
|
28367
|
-
}
|
|
28697
|
+
this._afterMonthRender(() => {
|
|
28698
|
+
const cells = this.getAllFocusableCells();
|
|
28699
|
+
const target = cells.find((cell) => cell.day && cell.day.date === targetDate);
|
|
28700
|
+
if (target) {
|
|
28701
|
+
this.setActiveCell(target.day.date);
|
|
28702
|
+
this.handleCellFocused({ detail: { date: target.day.date } });
|
|
28703
|
+
} else {
|
|
28704
|
+
const nearest = this.pickNearestCell(cells, targetDate, navDirection);
|
|
28705
|
+
if (nearest) {
|
|
28368
28706
|
this.setActiveCell(nearest.day.date);
|
|
28369
28707
|
this.handleCellFocused({ detail: { date: nearest.day.date } });
|
|
28370
28708
|
}
|
|
28371
|
-
|
|
28372
|
-
|
|
28709
|
+
}
|
|
28710
|
+
// Scroll AFTER the cross-month setActiveCell so the freshly
|
|
28711
|
+
// activated cell is what gets scrolled into view.
|
|
28712
|
+
this.scrollToActiveCell();
|
|
28713
|
+
this.focusActiveCell();
|
|
28373
28714
|
});
|
|
28374
28715
|
}
|
|
28375
28716
|
}
|
|
@@ -28403,6 +28744,8 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
28403
28744
|
const targetCell = allCells[targetIndex];
|
|
28404
28745
|
this.setActiveCell(targetCell.day.date);
|
|
28405
28746
|
this.scrollToActiveCell();
|
|
28747
|
+
// Match the cross-month branches: keep DOM focus on the grid wrapper
|
|
28748
|
+
// so subsequent arrow keys continue to land on this handler.
|
|
28406
28749
|
this.focusActiveCell();
|
|
28407
28750
|
} else if (direction === 'next' && this.showNextMonthBtn) {
|
|
28408
28751
|
// Navigate to next month and focus the computed next date.
|
|
@@ -28419,19 +28762,22 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
28419
28762
|
}
|
|
28420
28763
|
|
|
28421
28764
|
this.handleNextMonth({ skipActiveUpdate: true });
|
|
28422
|
-
|
|
28423
|
-
|
|
28424
|
-
|
|
28425
|
-
|
|
28426
|
-
|
|
28427
|
-
|
|
28428
|
-
|
|
28429
|
-
|
|
28430
|
-
|
|
28431
|
-
|
|
28432
|
-
|
|
28765
|
+
this._afterMonthRender(() => {
|
|
28766
|
+
const cells = this.getAllFocusableCells();
|
|
28767
|
+
const target = cells.find((cell) => cell.day && cell.day.date === nextTs);
|
|
28768
|
+
if (target) {
|
|
28769
|
+
this.setActiveCell(target.day.date);
|
|
28770
|
+
} else {
|
|
28771
|
+
// Same nearest-by-date fallback handleGridKeyDown uses — direct
|
|
28772
|
+
// `cells[length - 1]` would land on the end of the new month,
|
|
28773
|
+
// far from the user's intended `nextTs`.
|
|
28774
|
+
const fallback = this.pickNearestCell(cells, nextTs, 'next');
|
|
28775
|
+
if (fallback) {
|
|
28776
|
+
this.setActiveCell(fallback.day.date);
|
|
28433
28777
|
}
|
|
28434
|
-
}
|
|
28778
|
+
}
|
|
28779
|
+
this.scrollToActiveCell();
|
|
28780
|
+
this.focusActiveCell();
|
|
28435
28781
|
});
|
|
28436
28782
|
} else if (direction === 'prev' && this.showPrevMonthBtn) {
|
|
28437
28783
|
// Navigate to previous month and focus the computed previous date.
|
|
@@ -28445,19 +28791,22 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
28445
28791
|
}
|
|
28446
28792
|
|
|
28447
28793
|
this.handlePrevMonth({ skipActiveUpdate: true });
|
|
28448
|
-
|
|
28449
|
-
|
|
28450
|
-
|
|
28451
|
-
|
|
28452
|
-
|
|
28453
|
-
|
|
28454
|
-
|
|
28455
|
-
|
|
28456
|
-
|
|
28457
|
-
|
|
28458
|
-
|
|
28794
|
+
this._afterMonthRender(() => {
|
|
28795
|
+
const cells = this.getAllFocusableCells();
|
|
28796
|
+
const target = cells.find((cell) => cell.day && cell.day.date === prevTs);
|
|
28797
|
+
if (target) {
|
|
28798
|
+
this.setActiveCell(target.day.date);
|
|
28799
|
+
} else {
|
|
28800
|
+
// Same nearest-by-date fallback handleGridKeyDown uses — direct
|
|
28801
|
+
// `cells[0]` would land on the start of the previous month, far
|
|
28802
|
+
// from the user's intended `prevTs`.
|
|
28803
|
+
const fallback = this.pickNearestCell(cells, prevTs, 'prev');
|
|
28804
|
+
if (fallback) {
|
|
28805
|
+
this.setActiveCell(fallback.day.date);
|
|
28459
28806
|
}
|
|
28460
|
-
}
|
|
28807
|
+
}
|
|
28808
|
+
this.scrollToActiveCell();
|
|
28809
|
+
this.focusActiveCell();
|
|
28461
28810
|
});
|
|
28462
28811
|
}
|
|
28463
28812
|
} else if (key === 'ArrowDown' || key === 'ArrowUp') {
|
|
@@ -28485,20 +28834,22 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
28485
28834
|
} else {
|
|
28486
28835
|
this.handlePrevMonth({ skipActiveUpdate: true });
|
|
28487
28836
|
}
|
|
28488
|
-
|
|
28489
|
-
|
|
28490
|
-
|
|
28491
|
-
|
|
28492
|
-
|
|
28493
|
-
|
|
28494
|
-
|
|
28495
|
-
|
|
28496
|
-
|
|
28497
|
-
|
|
28837
|
+
this._afterMonthRender(() => {
|
|
28838
|
+
const cells = this.getAllFocusableCells();
|
|
28839
|
+
const target = cells.find((cell) => cell.day && cell.day.date === targetDate);
|
|
28840
|
+
if (target) {
|
|
28841
|
+
this.setActiveCell(target.day.date);
|
|
28842
|
+
} else {
|
|
28843
|
+
// Same nearest-by-date fallback handleGridKeyDown uses — the
|
|
28844
|
+
// old direction-based `cells[0]`/`cells[length-1]` clamp
|
|
28845
|
+
// could land 25+ days from the intended target.
|
|
28846
|
+
const nearest = this.pickNearestCell(cells, targetDate, navDirection);
|
|
28847
|
+
if (nearest) {
|
|
28498
28848
|
this.setActiveCell(nearest.day.date);
|
|
28499
|
-
this.focusActiveCell();
|
|
28500
28849
|
}
|
|
28501
|
-
}
|
|
28850
|
+
}
|
|
28851
|
+
this.scrollToActiveCell();
|
|
28852
|
+
this.focusActiveCell();
|
|
28502
28853
|
});
|
|
28503
28854
|
}
|
|
28504
28855
|
}
|
|
@@ -28537,8 +28888,9 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
28537
28888
|
return;
|
|
28538
28889
|
}
|
|
28539
28890
|
|
|
28540
|
-
//
|
|
28541
|
-
// so
|
|
28891
|
+
// DOM focus stays on the grid wrapper while arrow keys move the active
|
|
28892
|
+
// cell, so cell buttons never receive native focus. The debounced live
|
|
28893
|
+
// region carries the full-context announcement instead.
|
|
28542
28894
|
const announcement = this.buildFocusAnnouncement(date);
|
|
28543
28895
|
this.announceFocusDebounced(announcement);
|
|
28544
28896
|
|
|
@@ -28608,10 +28960,10 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
28608
28960
|
return null;
|
|
28609
28961
|
}
|
|
28610
28962
|
|
|
28611
|
-
const departTs =
|
|
28963
|
+
const departTs = new Date(parsedFrom * 1000).setHours(0, 0, 0, 0) / 1000;
|
|
28612
28964
|
const parsedTo = Number.parseInt(this.dateTo, 10);
|
|
28613
28965
|
const hasTo = Number.isFinite(parsedTo);
|
|
28614
|
-
const returnTs = hasTo ?
|
|
28966
|
+
const returnTs = hasTo ? new Date(parsedTo * 1000).setHours(0, 0, 0, 0) / 1000 : null;
|
|
28615
28967
|
|
|
28616
28968
|
if (date === departTs) {
|
|
28617
28969
|
return this.datepicker.rangeLabelStart || 'range start';
|
|
@@ -28625,36 +28977,22 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
28625
28977
|
if (hasTo && date > departTs && date < returnTs) {
|
|
28626
28978
|
return this.datepicker.rangeLabelInRange || 'in range';
|
|
28627
28979
|
}
|
|
28980
|
+
if (!hasTo && date > departTs) {
|
|
28981
|
+
return this.datepicker.rangeLabelEndPreview || 'previewing range end';
|
|
28982
|
+
}
|
|
28628
28983
|
return this.datepicker.rangeLabelAfterRange || 'after range';
|
|
28629
28984
|
}
|
|
28630
28985
|
|
|
28631
28986
|
/**
|
|
28632
|
-
* Checks whether a given date is a blackout date.
|
|
28987
|
+
* Checks whether a given date is a blackout date. Delegates to the
|
|
28988
|
+
* memoized `_getBlackoutSet` so the YYYY-MM-DD parsing and the
|
|
28989
|
+
* legacy/ISO merge rules live in exactly one place (see `blackoutUtils.js`).
|
|
28633
28990
|
* @private
|
|
28634
28991
|
* @param {Number} dateTs - Unix timestamp (seconds).
|
|
28635
28992
|
* @returns {Boolean} True if the date is blacked out.
|
|
28636
28993
|
*/
|
|
28637
28994
|
isDateBlackout(dateTs) {
|
|
28638
|
-
|
|
28639
|
-
if (Array.isArray(this.disabledDays) && this.disabledDays.length > 0) {
|
|
28640
|
-
if (this.disabledDays.findIndex((day) => parseInt(day, 10) === dateTs) !== -1) {
|
|
28641
|
-
return true;
|
|
28642
|
-
}
|
|
28643
|
-
}
|
|
28644
|
-
|
|
28645
|
-
// Check ISO blackoutDates.
|
|
28646
|
-
const blackoutDates = this.datepicker?.blackoutDates;
|
|
28647
|
-
if (Array.isArray(blackoutDates) && blackoutDates.length > 0) {
|
|
28648
|
-
const date = new Date(dateTs * 1000);
|
|
28649
|
-
const yyyy = date.getFullYear();
|
|
28650
|
-
const mm = String(date.getMonth() + 1).padStart(2, '0');
|
|
28651
|
-
const dd = String(date.getDate()).padStart(2, '0');
|
|
28652
|
-
if (blackoutDates.includes(`${yyyy}-${mm}-${dd}`)) {
|
|
28653
|
-
return true;
|
|
28654
|
-
}
|
|
28655
|
-
}
|
|
28656
|
-
|
|
28657
|
-
return false;
|
|
28995
|
+
return this._getBlackoutSet().has(dateTs);
|
|
28658
28996
|
}
|
|
28659
28997
|
|
|
28660
28998
|
/**
|
|
@@ -28712,7 +29050,28 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
28712
29050
|
}
|
|
28713
29051
|
|
|
28714
29052
|
/**
|
|
28715
|
-
* Scrolls the calendar
|
|
29053
|
+
* Scrolls the calendar so the active cell is visible.
|
|
29054
|
+
*
|
|
29055
|
+
* Walks the flat tree (rendered, slot-aware) outward from the active
|
|
29056
|
+
* cell's button and calls `scrollBy` on every vertically-scrollable
|
|
29057
|
+
* ancestor by whatever delta still separates the cell from that
|
|
29058
|
+
* ancestor's viewport. Native `scrollIntoView` is not used because the
|
|
29059
|
+
* cell sits inside multiple nested scroll containers (the dropdown bib's
|
|
29060
|
+
* `<dialog>`, the bibtemplate's `#bodyContainer`) and the algorithm only
|
|
29061
|
+
* scrolls one of them on its own, leaving the cell short of the
|
|
29062
|
+
* viewport in mobile fullscreen.
|
|
29063
|
+
*
|
|
29064
|
+
* Uses `behavior: 'auto'` (the spec's universally-supported non-animated
|
|
29065
|
+
* value) so each `scrollBy` resolves synchronously and the next
|
|
29066
|
+
* iteration's `getBoundingClientRect` reads post-scroll positions
|
|
29067
|
+
* accurately. This also satisfies `prefers-reduced-motion` users — the
|
|
29068
|
+
* scroll containers do not set CSS `scroll-behavior: smooth`, so `auto`
|
|
29069
|
+
* is effectively instant.
|
|
29070
|
+
*
|
|
29071
|
+
* The active cell is looked up from the cache populated by
|
|
29072
|
+
* `setActiveCell`. On a cache miss (stale or absent) the cache is
|
|
29073
|
+
* refreshed from a single full scan so subsequent calls stay on the
|
|
29074
|
+
* fast path.
|
|
28716
29075
|
* @private
|
|
28717
29076
|
* @returns {void}
|
|
28718
29077
|
*/
|
|
@@ -28721,16 +29080,69 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
28721
29080
|
return;
|
|
28722
29081
|
}
|
|
28723
29082
|
|
|
28724
|
-
|
|
28725
|
-
|
|
28726
|
-
|
|
28727
|
-
|
|
28728
|
-
|
|
29083
|
+
// Prefer the cell cached by setActiveCell so arrow-key navigation does
|
|
29084
|
+
// not rebuild the full cell list on every keypress. Fall back to a
|
|
29085
|
+
// lookup when the cache is stale (e.g. detached after month re-render)
|
|
29086
|
+
// or absent (scrollToActiveCell called without a prior setActiveCell);
|
|
29087
|
+
// refresh the cache on the fallback path so a subsequent call reuses it.
|
|
29088
|
+
const activeDate = this.activeCellDate;
|
|
29089
|
+
const cached = this._activeCell;
|
|
29090
|
+
const cacheFresh = cached && cached.isConnected && cached.day && cached.day.date === activeDate;
|
|
29091
|
+
let activeCell = null;
|
|
29092
|
+
if (cacheFresh) {
|
|
29093
|
+
activeCell = cached;
|
|
29094
|
+
} else {
|
|
29095
|
+
activeCell = this.getAllFocusableCells().find((cell) => cell.day && cell.day.date === activeDate);
|
|
29096
|
+
this._activeCell = activeCell || null;
|
|
29097
|
+
}
|
|
29098
|
+
if (!activeCell) {
|
|
29099
|
+
return;
|
|
29100
|
+
}
|
|
28729
29101
|
|
|
28730
|
-
|
|
28731
|
-
|
|
28732
|
-
|
|
28733
|
-
|
|
29102
|
+
// Scroll the button inside the cell — it has concrete dimensions,
|
|
29103
|
+
// which avoids quirks when the cell host has display: inline / contents
|
|
29104
|
+
// / flex-without-explicit-size.
|
|
29105
|
+
const target = activeCell._cachedButton ||
|
|
29106
|
+
activeCell.shadowRoot?.querySelector('button.day') ||
|
|
29107
|
+
activeCell;
|
|
29108
|
+
|
|
29109
|
+
// parentNode follows the authored DOM tree and steps over shadow roots
|
|
29110
|
+
// via slot projection. A slotted element's visual parent is its
|
|
29111
|
+
// assignedSlot's parent (inside the host's shadow tree), not the host
|
|
29112
|
+
// itself. Without this hop, the walk skips right past #bodyContainer
|
|
29113
|
+
// and <dialog> and finds no scrollable ancestor at all.
|
|
29114
|
+
const flatParent = (current) => {
|
|
29115
|
+
if (current.nodeType === Node.DOCUMENT_FRAGMENT_NODE) {
|
|
29116
|
+
return current.host || null;
|
|
29117
|
+
}
|
|
29118
|
+
if (current.assignedSlot) {
|
|
29119
|
+
return current.assignedSlot.parentNode;
|
|
29120
|
+
}
|
|
29121
|
+
return current.parentNode;
|
|
29122
|
+
};
|
|
29123
|
+
|
|
29124
|
+
let node = flatParent(target);
|
|
29125
|
+
while (node && node !== document && node !== window) {
|
|
29126
|
+
if (node.nodeType === Node.ELEMENT_NODE) {
|
|
29127
|
+
const { overflowY } = window.getComputedStyle(node);
|
|
29128
|
+
if (overflowY === 'auto' || overflowY === 'scroll') {
|
|
29129
|
+
const targetRect = target.getBoundingClientRect();
|
|
29130
|
+
const scrollerRect = node.getBoundingClientRect();
|
|
29131
|
+
let delta = 0;
|
|
29132
|
+
if (targetRect.top < scrollerRect.top) {
|
|
29133
|
+
delta = targetRect.top - scrollerRect.top;
|
|
29134
|
+
} else if (targetRect.bottom > scrollerRect.bottom) {
|
|
29135
|
+
delta = targetRect.bottom - scrollerRect.bottom;
|
|
29136
|
+
}
|
|
29137
|
+
if (delta !== 0) {
|
|
29138
|
+
node.scrollBy({
|
|
29139
|
+
top: delta,
|
|
29140
|
+
behavior: 'auto'
|
|
29141
|
+
});
|
|
29142
|
+
}
|
|
29143
|
+
}
|
|
29144
|
+
}
|
|
29145
|
+
node = flatParent(node);
|
|
28734
29146
|
}
|
|
28735
29147
|
}
|
|
28736
29148
|
|
|
@@ -28821,9 +29233,34 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
28821
29233
|
// the last one.
|
|
28822
29234
|
if (this._announceRafId) {
|
|
28823
29235
|
cancelAnimationFrame(this._announceRafId);
|
|
29236
|
+
this._announceRafId = null;
|
|
28824
29237
|
}
|
|
29238
|
+
this._deliverAnnouncement(dateStr, 0);
|
|
29239
|
+
}
|
|
29240
|
+
|
|
29241
|
+
/**
|
|
29242
|
+
* Writes `dateStr` to the live region. If the dropdown's dialog hasn't
|
|
29243
|
+
* mounted yet (so getOrCreateLiveRegion can't attach), retries on the
|
|
29244
|
+
* next animation frame up to MAX_LIVE_REGION_RETRIES instead of silently
|
|
29245
|
+
* dropping the announcement. The retry uses the same `_announceRafId`
|
|
29246
|
+
* the double-rAF below uses, so a newer announceSelection call (or
|
|
29247
|
+
* disconnectedCallback) cancels any in-flight retry.
|
|
29248
|
+
* @private
|
|
29249
|
+
* @param {String} dateStr - The localized date string to announce.
|
|
29250
|
+
* @param {Number} attempts - Number of prior retry attempts.
|
|
29251
|
+
* @returns {void}
|
|
29252
|
+
*/
|
|
29253
|
+
_deliverAnnouncement(dateStr, attempts) {
|
|
28825
29254
|
const liveRegion = this.getOrCreateLiveRegion();
|
|
28826
29255
|
if (!liveRegion) {
|
|
29256
|
+
const MAX_LIVE_REGION_RETRIES = 10;
|
|
29257
|
+
if (attempts < MAX_LIVE_REGION_RETRIES) {
|
|
29258
|
+
this._announceRafId = requestAnimationFrame(() => {
|
|
29259
|
+
this._deliverAnnouncement(dateStr, attempts + 1);
|
|
29260
|
+
});
|
|
29261
|
+
} else {
|
|
29262
|
+
this._announceRafId = null;
|
|
29263
|
+
}
|
|
28827
29264
|
return;
|
|
28828
29265
|
}
|
|
28829
29266
|
|
|
@@ -28996,7 +29433,7 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
28996
29433
|
</div>
|
|
28997
29434
|
</div>
|
|
28998
29435
|
|
|
28999
|
-
<div class="calendarWrapper
|
|
29436
|
+
<div class="calendarWrapper">
|
|
29000
29437
|
<div class="calendarNavButtons">
|
|
29001
29438
|
${this.showPrevMonthBtn ? u$c`
|
|
29002
29439
|
<button tabIndex="0" class="calendarNavBtn prevMonth" aria-label="${this.datepicker?.navLabelPrevMonth || 'Previous month'}" @click="${this.handlePrevMonth}">
|
|
@@ -29009,7 +29446,7 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
29009
29446
|
</button>
|
|
29010
29447
|
` : undefined}
|
|
29011
29448
|
</div>
|
|
29012
|
-
<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}">
|
|
29449
|
+
<div id="calendarGrid" class="calendars" role="group" aria-roledescription="calendar" tabindex="0" aria-label="${this.datepicker?.calendarGridLabel}" @keydown="${this.handleGridKeyDown}" @focusin="${this.handleGridFocusIn}" @focusout="${this.handleGridFocusOut}" @calendar-month-mouseleave="${this.clearRangePreview}">
|
|
29013
29450
|
${this.renderAllCalendars()}
|
|
29014
29451
|
</div>
|
|
29015
29452
|
</div>
|
|
@@ -32894,7 +33331,7 @@ let AuroHelpText$2$1 = class AuroHelpText extends i$3 {
|
|
|
32894
33331
|
}
|
|
32895
33332
|
};
|
|
32896
33333
|
|
|
32897
|
-
var formkitVersion$1$3 = '
|
|
33334
|
+
var formkitVersion$1$3 = '202607010104';
|
|
32898
33335
|
|
|
32899
33336
|
let AuroElement$2$2 = class AuroElement extends i$3 {
|
|
32900
33337
|
static get properties() {
|
|
@@ -34166,6 +34603,7 @@ let AuroDropdown$3 = class AuroDropdown extends AuroElement$2$2 {
|
|
|
34166
34603
|
role="${o$4(this.triggerContentFocusable ? undefined : this.a11yRole)}"
|
|
34167
34604
|
aria-expanded="${o$4(this.a11yRole === 'button' || this.triggerContentFocusable ? undefined : this.isPopoverVisible)}"
|
|
34168
34605
|
aria-controls="${o$4(this.a11yRole === 'button' || this.triggerContentFocusable ? undefined : this.dropdownId)}"
|
|
34606
|
+
aria-haspopup="${o$4(this.a11yRole === 'combobox' && !this.triggerContentFocusable ? 'listbox' : undefined)}"
|
|
34169
34607
|
aria-labelledby="${o$4(this.triggerContentFocusable ? undefined : 'triggerLabel')}"
|
|
34170
34608
|
aria-disabled="${o$4(this.disabled ? 'true' : undefined)}"
|
|
34171
34609
|
@focusin="${this.handleFocusin}"
|
|
@@ -38668,15 +39106,17 @@ let AuroFormValidation$6 = class AuroFormValidation {
|
|
|
38668
39106
|
);
|
|
38669
39107
|
}
|
|
38670
39108
|
|
|
38671
|
-
|
|
38672
|
-
|
|
38673
|
-
|
|
39109
|
+
const isCombobox = this.runtimeUtils.elementMatch(elem, 'auro-combobox');
|
|
39110
|
+
|
|
39111
|
+
// If there is a second input in the elem and that value is undefined or an empty string set hasValue to false.
|
|
39112
|
+
// Skip for combobox: its second auro-input is the fullscreen-bib mirror of the same value, not an independent
|
|
39113
|
+
// field (datepicker is the intended consumer — start/end are independently required).
|
|
39114
|
+
if (this.auroInputElements?.length === 2 && !isCombobox) {
|
|
39115
|
+
if (!this.auroInputElements[1].value || this.auroInputElements[1].value.length === 0) {
|
|
38674
39116
|
hasValue = false;
|
|
38675
39117
|
}
|
|
38676
39118
|
}
|
|
38677
39119
|
|
|
38678
|
-
const isCombobox = this.runtimeUtils.elementMatch(elem, 'auro-combobox');
|
|
38679
|
-
|
|
38680
39120
|
if (isCombobox) {
|
|
38681
39121
|
|
|
38682
39122
|
if (!elem.persistInput || elem.behavior === "filter") {
|
|
@@ -39291,7 +39731,7 @@ function normalizeDates$2(context, ...dates) {
|
|
|
39291
39731
|
* const result = startOfDay(new Date(2014, 8, 2, 11, 55, 0))
|
|
39292
39732
|
* //=> Tue Sep 02 2014 00:00:00
|
|
39293
39733
|
*/
|
|
39294
|
-
function startOfDay$
|
|
39734
|
+
function startOfDay$2(date, options) {
|
|
39295
39735
|
const _date = toDate$2(date, options?.in);
|
|
39296
39736
|
_date.setHours(0, 0, 0, 0);
|
|
39297
39737
|
return _date;
|
|
@@ -39339,8 +39779,8 @@ function differenceInCalendarDays$2(laterDate, earlierDate, options) {
|
|
|
39339
39779
|
earlierDate,
|
|
39340
39780
|
);
|
|
39341
39781
|
|
|
39342
|
-
const laterStartOfDay = startOfDay$
|
|
39343
|
-
const earlierStartOfDay = startOfDay$
|
|
39782
|
+
const laterStartOfDay = startOfDay$2(laterDate_);
|
|
39783
|
+
const earlierStartOfDay = startOfDay$2(earlierDate_);
|
|
39344
39784
|
|
|
39345
39785
|
const laterTimestamp =
|
|
39346
39786
|
+laterStartOfDay - getTimezoneOffsetInMilliseconds$2(laterStartOfDay);
|
|
@@ -44612,6 +45052,13 @@ let AuroInputUtilities$2 = class AuroInputUtilities {
|
|
|
44612
45052
|
* @returns {string | undefined}
|
|
44613
45053
|
*/
|
|
44614
45054
|
toFormattedValue(valueObject, format) {
|
|
45055
|
+
// Exposed publicly via `AuroInputUtil.toFormattedValue`, so a missing
|
|
45056
|
+
// `format` argument has to fail gracefully rather than throw on
|
|
45057
|
+
// `format.toLowerCase()`. Treat any falsy value (undefined, null, '')
|
|
45058
|
+
// as "no format → no display value".
|
|
45059
|
+
if (!format) {
|
|
45060
|
+
return undefined;
|
|
45061
|
+
}
|
|
44615
45062
|
const normalizedFormat = format.toLowerCase();
|
|
44616
45063
|
const maskOptions = this.getMaskOptions('date', normalizedFormat);
|
|
44617
45064
|
|
|
@@ -44763,76 +45210,19 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
|
|
|
44763
45210
|
constructor() {
|
|
44764
45211
|
super();
|
|
44765
45212
|
|
|
44766
|
-
|
|
44767
|
-
|
|
44768
|
-
|
|
44769
|
-
|
|
44770
|
-
|
|
44771
|
-
|
|
44772
|
-
|
|
44773
|
-
|
|
44774
|
-
|
|
44775
|
-
|
|
44776
|
-
this.setCustomValidityForType = undefined;
|
|
44777
|
-
this.size = 'lg';
|
|
44778
|
-
this.shape = 'classic';
|
|
44779
|
-
this.value = undefined;
|
|
44780
|
-
|
|
44781
|
-
this._initializePrivateDefaults();
|
|
44782
|
-
}
|
|
44783
|
-
|
|
44784
|
-
/**
|
|
44785
|
-
* Internal Defaults.
|
|
44786
|
-
* @private
|
|
44787
|
-
* @returns {void}
|
|
44788
|
-
*/
|
|
44789
|
-
_initializePrivateDefaults() {
|
|
45213
|
+
// Single-source initialization. Alphabetized so duplicate or stale
|
|
45214
|
+
// defaults are immediately obvious on a diff. Every field is assigned
|
|
45215
|
+
// exactly once here (previously the constructor + the old
|
|
45216
|
+
// `_initializePrivateDefaults` overlapped — both wrote ~14 of the same
|
|
45217
|
+
// fields and double-allocated `util` and `validation`, discarding the
|
|
45218
|
+
// first instance). `validation` is now allocated exactly once; `util`
|
|
45219
|
+
// is seeded here with an en-US default and then rebuilt in
|
|
45220
|
+
// `connectedCallback` once the consumer-resolved locale is available,
|
|
45221
|
+
// so a parent (datepicker/combobox) calling `validate()` synchronously
|
|
45222
|
+
// during its own update cycle sees a populated util instance.
|
|
44790
45223
|
this.activeLabel = false;
|
|
44791
|
-
this.appearance = "default";
|
|
44792
|
-
this.icon = false;
|
|
44793
|
-
this.disabled = false;
|
|
44794
|
-
this.dvInputOnly = false;
|
|
44795
|
-
this.hideLabelVisually = false;
|
|
44796
|
-
this.max = undefined;
|
|
44797
|
-
this.maxLength = undefined;
|
|
44798
|
-
this.min = undefined;
|
|
44799
|
-
this.minLength = undefined;
|
|
44800
|
-
this.noValidate = false;
|
|
44801
|
-
this.onDark = false;
|
|
44802
|
-
this.required = false;
|
|
44803
|
-
this.setCustomValidityForType = undefined;
|
|
44804
|
-
|
|
44805
|
-
// Used for storing raw values returned from input mask.
|
|
44806
|
-
this._rawMaskValue = undefined;
|
|
44807
|
-
|
|
44808
|
-
/**
|
|
44809
|
-
* @private
|
|
44810
|
-
*/
|
|
44811
|
-
this.layout = 'classic';
|
|
44812
|
-
|
|
44813
|
-
/**
|
|
44814
|
-
* @private
|
|
44815
|
-
*/
|
|
44816
|
-
this.shape = 'classic';
|
|
44817
|
-
|
|
44818
|
-
/**
|
|
44819
|
-
* @private
|
|
44820
|
-
*/
|
|
44821
|
-
this.size = 'lg';
|
|
44822
|
-
|
|
44823
|
-
this.touched = false;
|
|
44824
|
-
this.util = new AuroInputUtilities$2({
|
|
44825
|
-
locale: "en-US",
|
|
44826
|
-
format: this.format
|
|
44827
|
-
});
|
|
44828
|
-
this.validation = new AuroFormValidation$6();
|
|
44829
|
-
this.inputIconName = undefined;
|
|
44830
|
-
this.showPassword = false;
|
|
44831
|
-
this.validationCCLength = undefined;
|
|
44832
|
-
this.hasValue = false;
|
|
44833
|
-
this.label = 'Input label is undefined';
|
|
44834
|
-
|
|
44835
45224
|
|
|
45225
|
+
/** @private */
|
|
44836
45226
|
this.allowedInputTypes = [
|
|
44837
45227
|
"text",
|
|
44838
45228
|
"number",
|
|
@@ -44841,7 +45231,9 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
|
|
|
44841
45231
|
"credit-card",
|
|
44842
45232
|
"tel"
|
|
44843
45233
|
];
|
|
44844
|
-
this.
|
|
45234
|
+
this.appearance = "default";
|
|
45235
|
+
|
|
45236
|
+
/** @private */
|
|
44845
45237
|
this.dateFormatMap = {
|
|
44846
45238
|
'mm/dd/yyyy': 'dateMMDDYYYY',
|
|
44847
45239
|
'dd/mm/yyyy': 'dateDDMMYYYY',
|
|
@@ -44858,27 +45250,62 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
|
|
|
44858
45250
|
'dd/mm': 'dateDDMM',
|
|
44859
45251
|
'mm/dd': 'dateMMDD'
|
|
44860
45252
|
};
|
|
45253
|
+
this.disabled = false;
|
|
45254
|
+
|
|
45255
|
+
/** @private */
|
|
44861
45256
|
this.domHandler = new DomHandler$2();
|
|
44862
45257
|
this.dvInputOnly = false;
|
|
44863
45258
|
this.hasValue = false;
|
|
45259
|
+
this.hideLabelVisually = false;
|
|
45260
|
+
this.icon = false;
|
|
45261
|
+
|
|
45262
|
+
/** @private */
|
|
44864
45263
|
this.inputIconName = undefined;
|
|
45264
|
+
|
|
45265
|
+
/** @private */
|
|
44865
45266
|
this.label = 'Input label is undefined';
|
|
45267
|
+
this.layout = 'classic';
|
|
45268
|
+
this.locale = 'en-US';
|
|
45269
|
+
this.max = undefined;
|
|
45270
|
+
this.maxLength = undefined;
|
|
45271
|
+
this.min = undefined;
|
|
45272
|
+
this.minLength = undefined;
|
|
44866
45273
|
this.noValidate = false;
|
|
44867
|
-
this.
|
|
45274
|
+
this.onDark = false;
|
|
45275
|
+
// Raw values returned from the input mask before model normalization.
|
|
45276
|
+
this._rawMaskValue = undefined;
|
|
45277
|
+
this.required = false;
|
|
45278
|
+
this.setCustomValidityForType = undefined;
|
|
45279
|
+
// Credit Card is intentionally excluded — its mask manages the cursor
|
|
45280
|
+
// itself, and listing it here caused cursor placement issues in Safari.
|
|
45281
|
+
/** @private */
|
|
44868
45282
|
this.setSelectionInputTypes = [
|
|
44869
45283
|
"text",
|
|
44870
45284
|
"password",
|
|
44871
45285
|
"email"
|
|
44872
|
-
];
|
|
45286
|
+
];
|
|
45287
|
+
this.shape = 'classic';
|
|
45288
|
+
|
|
45289
|
+
/** @private */
|
|
44873
45290
|
this.showPassword = false;
|
|
45291
|
+
this.size = 'lg';
|
|
44874
45292
|
this.touched = false;
|
|
45293
|
+
|
|
45294
|
+
/** @private */
|
|
44875
45295
|
this.uniqueId = new UniqueId$1().create();
|
|
45296
|
+
|
|
45297
|
+
/** @private */
|
|
44876
45298
|
this.util = new AuroInputUtilities$2({
|
|
44877
45299
|
locale: this.locale,
|
|
44878
45300
|
format: this.format
|
|
44879
45301
|
});
|
|
45302
|
+
|
|
45303
|
+
/** @private */
|
|
44880
45304
|
this.validation = new AuroFormValidation$6();
|
|
45305
|
+
|
|
45306
|
+
/** @private */
|
|
44881
45307
|
this.validationCCLength = undefined;
|
|
45308
|
+
this.value = undefined;
|
|
44882
45309
|
}
|
|
44883
45310
|
|
|
44884
45311
|
// function to define props used within the scope of this component
|
|
@@ -45382,6 +45809,15 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
|
|
|
45382
45809
|
|
|
45383
45810
|
this.inputId = this.id ? `${this.id}-input` : window.crypto.randomUUID();
|
|
45384
45811
|
|
|
45812
|
+
// Normalize the format token to lowercase so case-mixed values supplied
|
|
45813
|
+
// via attribute (e.g. `format="MM/DD/YYYY"`) hit the `dateFormatMap`
|
|
45814
|
+
// lookup inside `setCustomHelpTextMessage`. Without this, an uppercase
|
|
45815
|
+
// format silently misses the map and leaves `setCustomValidityForType`
|
|
45816
|
+
// unset.
|
|
45817
|
+
if (this.format) {
|
|
45818
|
+
this.format = this.format.toLowerCase();
|
|
45819
|
+
}
|
|
45820
|
+
|
|
45385
45821
|
// use validity message override if declared when initializing the component
|
|
45386
45822
|
if (this.hasAttribute('setCustomValidity')) {
|
|
45387
45823
|
this.ValidityMessageOverride = this.setCustomValidity;
|
|
@@ -45465,6 +45901,13 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
|
|
|
45465
45901
|
|
|
45466
45902
|
if (typeToI18n.includes(this.type)) {
|
|
45467
45903
|
this.setCustomValidityForType = i18n$1(this.lang, this.type);
|
|
45904
|
+
// COVERAGE: this `else if` branch is unreachable in WTR. connectedCallback
|
|
45905
|
+
// (L682) calls configureDataForType, which at L1266-1268 assigns
|
|
45906
|
+
// `this.format = this.util.getDateMaskFromLocale().toLowerCase()` for any
|
|
45907
|
+
// type=date input whose `format` attribute is unset. That runs before
|
|
45908
|
+
// firstUpdated invokes setCustomHelpTextMessage, so `!this.format` is
|
|
45909
|
+
// always false here. Retained as a defensive fallback; the whole function
|
|
45910
|
+
// is @deprecated per AB#1557296 and slated for removal.
|
|
45468
45911
|
} else if (!this.format && this.type === 'date') {
|
|
45469
45912
|
this.setCustomValidityForType = i18n$1(this.lang, 'dateMMDDYYYY');
|
|
45470
45913
|
} else if (this.dateFormatMap[this.format]) {
|
|
@@ -45754,6 +46197,38 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
|
|
|
45754
46197
|
this.touched = true;
|
|
45755
46198
|
this.validation.validate(this);
|
|
45756
46199
|
}
|
|
46200
|
+
|
|
46201
|
+
// Prevents cursor jumping in Safari. Setting `this.value` triggers a Lit
|
|
46202
|
+
// update that can re-render the input and reset the native cursor; we
|
|
46203
|
+
// capture the caret position before that update commits and restore it
|
|
46204
|
+
// via `setSelectionRange` once the update has flushed. Gated on
|
|
46205
|
+
// `setSelectionInputTypes` so credit-card (and other masked types whose
|
|
46206
|
+
// formatter manages the cursor itself) doesn't get a competing write.
|
|
46207
|
+
// Capture the caret position INSIDE the gate — reading `selectionStart`
|
|
46208
|
+
// on input types that don't support text selection (number, email in
|
|
46209
|
+
// some browsers) throws InvalidStateError, which would crash all input
|
|
46210
|
+
// handling. Wrap the read in try/catch belt-and-suspenders even though
|
|
46211
|
+
// the gated types currently support it, since the list is a public
|
|
46212
|
+
// property a consumer could mutate.
|
|
46213
|
+
if (this.setSelectionInputTypes.includes(this.type)) {
|
|
46214
|
+
let selectionStart = null;
|
|
46215
|
+
try {
|
|
46216
|
+
({ selectionStart } = this.inputElement);
|
|
46217
|
+
} catch (error) { // eslint-disable-line no-unused-vars
|
|
46218
|
+
return;
|
|
46219
|
+
}
|
|
46220
|
+
if (typeof selectionStart !== 'number') {
|
|
46221
|
+
return;
|
|
46222
|
+
}
|
|
46223
|
+
this.updateComplete.then(() => {
|
|
46224
|
+
try {
|
|
46225
|
+
this.inputElement.setSelectionRange(selectionStart, selectionStart);
|
|
46226
|
+
} catch (error) { // eslint-disable-line no-unused-vars
|
|
46227
|
+
// Some input types (number/email in certain UAs) throw on
|
|
46228
|
+
// setSelectionRange; swallow and let the native cursor stand.
|
|
46229
|
+
}
|
|
46230
|
+
});
|
|
46231
|
+
}
|
|
45757
46232
|
}
|
|
45758
46233
|
|
|
45759
46234
|
/**
|
|
@@ -45887,7 +46362,7 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
|
|
|
45887
46362
|
*/
|
|
45888
46363
|
get placeholderStr() {
|
|
45889
46364
|
if (!this.placeholder && this.type === 'date') {
|
|
45890
|
-
return this.format
|
|
46365
|
+
return this.format.toUpperCase();
|
|
45891
46366
|
}
|
|
45892
46367
|
return this.placeholder || "";
|
|
45893
46368
|
}
|
|
@@ -46378,7 +46853,7 @@ let AuroHelpText$1$3 = class AuroHelpText extends i$3 {
|
|
|
46378
46853
|
}
|
|
46379
46854
|
};
|
|
46380
46855
|
|
|
46381
|
-
var formkitVersion$7 = '
|
|
46856
|
+
var formkitVersion$7 = '202607010104';
|
|
46382
46857
|
|
|
46383
46858
|
// Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
|
|
46384
46859
|
// See LICENSE in the project root for license information.
|
|
@@ -46881,6 +47356,7 @@ let AuroInput$1 = class AuroInput extends BaseInput$1 {
|
|
|
46881
47356
|
<${this.buttonTag}
|
|
46882
47357
|
@click="${this.handleClickShowPassword}"
|
|
46883
47358
|
appearance="${this.onDark ? 'inverse' : this.appearance}"
|
|
47359
|
+
aria-pressed="${this.showPassword ? 'true' : 'false'}"
|
|
46884
47360
|
class="notificationBtn passwordBtn"
|
|
46885
47361
|
shape="circle"
|
|
46886
47362
|
size="sm"
|
|
@@ -46954,25 +47430,29 @@ let AuroInput$1 = class AuroInput extends BaseInput$1 {
|
|
|
46954
47430
|
* @returns {html} - Returns HTML for the help text and error message.
|
|
46955
47431
|
*/
|
|
46956
47432
|
renderHtmlHelpText() {
|
|
47433
|
+
// Single `<p>` with stable identity across validity transitions —
|
|
47434
|
+
// previously two distinct templates (valid vs invalid) caused Lit to
|
|
47435
|
+
// replace the node entirely on a flip, and VoiceOver wouldn't
|
|
47436
|
+
// re-announce because the live-region element it was watching had been
|
|
47437
|
+
// removed and a new one inserted. Keeping one node means the `role`,
|
|
47438
|
+
// `aria-live`, and text content all change in-place, which AT does
|
|
47439
|
+
// observe and announce.
|
|
47440
|
+
const isError = this.validity && this.validity !== 'valid';
|
|
46957
47441
|
return u$c`
|
|
46958
|
-
|
|
46959
|
-
?
|
|
46960
|
-
|
|
46961
|
-
|
|
46962
|
-
|
|
46963
|
-
|
|
46964
|
-
|
|
46965
|
-
|
|
46966
|
-
|
|
46967
|
-
|
|
46968
|
-
|
|
46969
|
-
|
|
46970
|
-
|
|
46971
|
-
|
|
46972
|
-
</p>
|
|
46973
|
-
</${this.helpTextTag}>
|
|
46974
|
-
`
|
|
46975
|
-
}
|
|
47442
|
+
<${this.helpTextTag}
|
|
47443
|
+
appearance="${this.onDark ? 'inverse' : this.appearance}"
|
|
47444
|
+
?error=${isError}>
|
|
47445
|
+
<p
|
|
47446
|
+
id="${this.uniqueId}"
|
|
47447
|
+
part="helpText"
|
|
47448
|
+
role="${o$4(isError ? 'alert' : undefined)}"
|
|
47449
|
+
aria-live="${o$4(isError ? 'assertive' : undefined)}">
|
|
47450
|
+
${isError
|
|
47451
|
+
? this.errorMessage
|
|
47452
|
+
: u$c`<slot name="helpText">${this.getHelpText()}</slot>`
|
|
47453
|
+
}
|
|
47454
|
+
</p>
|
|
47455
|
+
</${this.helpTextTag}>
|
|
46976
47456
|
`;
|
|
46977
47457
|
}
|
|
46978
47458
|
|
|
@@ -47119,6 +47599,15 @@ function formatISODate(isoStr, format) {
|
|
|
47119
47599
|
try {
|
|
47120
47600
|
const date = dateFormatter$2.stringToDateInstance(isoStr);
|
|
47121
47601
|
|
|
47602
|
+
// `stringToDateInstance` returns an `Invalid Date` for malformed strings
|
|
47603
|
+
// and `null` for non-string input — it does NOT throw. Without this
|
|
47604
|
+
// guard, `getFullYear()`/`getMonth()`/`getDate()` on an Invalid Date
|
|
47605
|
+
// yield `NaN`, and `String(NaN).padStart(4, '0')` produces literals
|
|
47606
|
+
// like "0NaN/0NaN/0NaN" instead of `undefined`.
|
|
47607
|
+
if (!(date instanceof Date) || Number.isNaN(date.getTime())) {
|
|
47608
|
+
return undefined;
|
|
47609
|
+
}
|
|
47610
|
+
|
|
47122
47611
|
const year = String(date.getFullYear()).padStart(4, '0');
|
|
47123
47612
|
const month = String(date.getMonth() + 1).padStart(2, '0');
|
|
47124
47613
|
const day = String(date.getDate()).padStart(2, '0');
|
|
@@ -47129,7 +47618,10 @@ function formatISODate(isoStr, format) {
|
|
|
47129
47618
|
replace(/mm/iu, month).
|
|
47130
47619
|
replace(/dd/iu, day);
|
|
47131
47620
|
} catch (err) {
|
|
47132
|
-
//
|
|
47621
|
+
// Defensive: the Date-returning path is guarded above, but `parseDate`
|
|
47622
|
+
// (inside `stringToDateInstance`) could throw on pathological input
|
|
47623
|
+
// future-library-versions might introduce. Treat any thrown error as
|
|
47624
|
+
// "not a valid date" and return undefined.
|
|
47133
47625
|
return undefined;
|
|
47134
47626
|
}
|
|
47135
47627
|
}
|
|
@@ -47855,6 +48347,7 @@ class AuroDatePicker extends AuroElement$5 {
|
|
|
47855
48347
|
this.rangeLabelBeforeRange = 'before range';
|
|
47856
48348
|
this.rangeLabelInRange = 'in range';
|
|
47857
48349
|
this.rangeLabelAfterRange = 'after range';
|
|
48350
|
+
this.rangeLabelEndPreview = 'previewing range end';
|
|
47858
48351
|
this.blackoutDates = [];
|
|
47859
48352
|
this.blackoutLabel = 'unavailable';
|
|
47860
48353
|
this.navLabelPrevMonth = 'Previous month';
|
|
@@ -47954,6 +48447,22 @@ class AuroDatePicker extends AuroElement$5 {
|
|
|
47954
48447
|
*/
|
|
47955
48448
|
this.handleClick = this.handleClick.bind(this);
|
|
47956
48449
|
|
|
48450
|
+
/**
|
|
48451
|
+
* Single AbortController shared by every listener registered in the
|
|
48452
|
+
* configure* methods. Lets disconnectedCallback tear all of them down
|
|
48453
|
+
* with one abort() call.
|
|
48454
|
+
*
|
|
48455
|
+
* The genuine leak risk is the listeners attached to children that can
|
|
48456
|
+
* outlive the host if they get reparented — `this.dropdown`,
|
|
48457
|
+
* `this.calendar`, and the inputs inside the dropdown's slot.
|
|
48458
|
+
* Listeners attached to `this` (e.g. focusin/focusout on the host)
|
|
48459
|
+
* form a self-contained reference graph that the GC can collect with
|
|
48460
|
+
* the host anyway, but they share the same signal so the cleanup
|
|
48461
|
+
* pattern stays uniform across all configure* sites.
|
|
48462
|
+
* @private
|
|
48463
|
+
*/
|
|
48464
|
+
this._listenerAbortController = new AbortController();
|
|
48465
|
+
|
|
47957
48466
|
/**
|
|
47958
48467
|
* @private
|
|
47959
48468
|
*/
|
|
@@ -48002,6 +48511,7 @@ class AuroDatePicker extends AuroElement$5 {
|
|
|
48002
48511
|
|
|
48003
48512
|
/**
|
|
48004
48513
|
* Label announced for blackout (disabled but in-range) date cells.
|
|
48514
|
+
* @default 'unavailable'
|
|
48005
48515
|
*/
|
|
48006
48516
|
blackoutLabel: {
|
|
48007
48517
|
type: String,
|
|
@@ -48018,6 +48528,7 @@ class AuroDatePicker extends AuroElement$5 {
|
|
|
48018
48528
|
|
|
48019
48529
|
/**
|
|
48020
48530
|
* Accessible label for the calendar grid containing the days of the month.
|
|
48531
|
+
* @default 'Calendar days of the month'
|
|
48021
48532
|
*/
|
|
48022
48533
|
calendarGridLabel: {
|
|
48023
48534
|
type: String,
|
|
@@ -48180,6 +48691,7 @@ class AuroDatePicker extends AuroElement$5 {
|
|
|
48180
48691
|
|
|
48181
48692
|
/**
|
|
48182
48693
|
* Accessible label for the next month navigation button.
|
|
48694
|
+
* @default 'Next month'
|
|
48183
48695
|
*/
|
|
48184
48696
|
navLabelNextMonth: {
|
|
48185
48697
|
type: String,
|
|
@@ -48188,6 +48700,7 @@ class AuroDatePicker extends AuroElement$5 {
|
|
|
48188
48700
|
|
|
48189
48701
|
/**
|
|
48190
48702
|
* Accessible label for the previous month navigation button.
|
|
48703
|
+
* @default 'Previous month'
|
|
48191
48704
|
*/
|
|
48192
48705
|
navLabelPrevMonth: {
|
|
48193
48706
|
type: String,
|
|
@@ -48265,7 +48778,11 @@ class AuroDatePicker extends AuroElement$5 {
|
|
|
48265
48778
|
},
|
|
48266
48779
|
|
|
48267
48780
|
/**
|
|
48268
|
-
* Label announced for cells after
|
|
48781
|
+
* Label announced for cells after a fully selected range (both
|
|
48782
|
+
* `dateFrom` and `dateTo` are set). While a range is still being
|
|
48783
|
+
* picked (`dateFrom` set, `dateTo` unset), focused cells past the
|
|
48784
|
+
* start use `rangeLabelEndPreview` instead.
|
|
48785
|
+
* @default 'after range'
|
|
48269
48786
|
*/
|
|
48270
48787
|
rangeLabelAfterRange: {
|
|
48271
48788
|
type: String,
|
|
@@ -48274,6 +48791,7 @@ class AuroDatePicker extends AuroElement$5 {
|
|
|
48274
48791
|
|
|
48275
48792
|
/**
|
|
48276
48793
|
* Label announced for cells before the range start.
|
|
48794
|
+
* @default 'before range'
|
|
48277
48795
|
*/
|
|
48278
48796
|
rangeLabelBeforeRange: {
|
|
48279
48797
|
type: String,
|
|
@@ -48282,14 +48800,27 @@ class AuroDatePicker extends AuroElement$5 {
|
|
|
48282
48800
|
|
|
48283
48801
|
/**
|
|
48284
48802
|
* Label announced for the range end date cell.
|
|
48803
|
+
* @default 'range end'
|
|
48285
48804
|
*/
|
|
48286
48805
|
rangeLabelEnd: {
|
|
48287
48806
|
type: String,
|
|
48288
48807
|
reflect: true
|
|
48289
48808
|
},
|
|
48290
48809
|
|
|
48810
|
+
/**
|
|
48811
|
+
* Label announced for the focused cell while previewing a range end
|
|
48812
|
+
* (dateFrom set, dateTo not yet selected). Tells AT users that
|
|
48813
|
+
* pressing Enter would commit this cell as the range end.
|
|
48814
|
+
* @default 'previewing range end'
|
|
48815
|
+
*/
|
|
48816
|
+
rangeLabelEndPreview: {
|
|
48817
|
+
type: String,
|
|
48818
|
+
reflect: true
|
|
48819
|
+
},
|
|
48820
|
+
|
|
48291
48821
|
/**
|
|
48292
48822
|
* Label announced for cells within the selected range.
|
|
48823
|
+
* @default 'in range'
|
|
48293
48824
|
*/
|
|
48294
48825
|
rangeLabelInRange: {
|
|
48295
48826
|
type: String,
|
|
@@ -48298,6 +48829,7 @@ class AuroDatePicker extends AuroElement$5 {
|
|
|
48298
48829
|
|
|
48299
48830
|
/**
|
|
48300
48831
|
* Label announced for the range start date cell.
|
|
48832
|
+
* @default 'range start'
|
|
48301
48833
|
*/
|
|
48302
48834
|
rangeLabelStart: {
|
|
48303
48835
|
type: String,
|
|
@@ -48305,7 +48837,7 @@ class AuroDatePicker extends AuroElement$5 {
|
|
|
48305
48837
|
},
|
|
48306
48838
|
|
|
48307
48839
|
/**
|
|
48308
|
-
* Dates that the user should have for reference as part of their decision
|
|
48840
|
+
* Dates that the user should have for reference as part of their decision-making when selecting a date.
|
|
48309
48841
|
* This should be a JSON string array of ISO date strings (`YYYY-MM-DD`).
|
|
48310
48842
|
*/
|
|
48311
48843
|
referenceDates: {
|
|
@@ -48662,10 +49194,26 @@ class AuroDatePicker extends AuroElement$5 {
|
|
|
48662
49194
|
// ─── Vendor calendar time conversions ─────────────────────────────────────
|
|
48663
49195
|
|
|
48664
49196
|
/**
|
|
48665
|
-
* Converts a Unix timestamp (seconds) from the
|
|
49197
|
+
* Converts a Unix timestamp (seconds) from the vendored range-datepicker
|
|
49198
|
+
* (`src/vendor/wc-range-datepicker/day.js`) to an ISO date string.
|
|
49199
|
+
*
|
|
49200
|
+
* Timezone contract:
|
|
49201
|
+
* - INPUT: `time` is assumed to be the seconds-since-epoch of **local
|
|
49202
|
+
* midnight** for the intended calendar day. The vendor's Day constructor
|
|
49203
|
+
* builds it via `date-fns format(date, 't')` from a locally-constructed
|
|
49204
|
+
* Date, so this assumption currently holds end-to-end.
|
|
49205
|
+
* - OUTPUT: `dateFormatter.toISOFormatString` reads the Date's local
|
|
49206
|
+
* getFullYear/getMonth/getDate components, so the returned YYYY-MM-DD
|
|
49207
|
+
* string matches the local calendar day.
|
|
49208
|
+
*
|
|
49209
|
+
* If the vendor ever switches to emitting UTC-midnight timestamps, this
|
|
49210
|
+
* conversion will silently shift the returned date by one day in zones
|
|
49211
|
+
* west of UTC. Any vendor swap should re-verify this contract; the TZ
|
|
49212
|
+
* regression suite (`npm run test:hst`, UTC-10) will catch the symptom.
|
|
49213
|
+
*
|
|
48666
49214
|
* @private
|
|
48667
|
-
* @param {number} time - Unix timestamp
|
|
48668
|
-
* @returns {string} ISO date string (yyyy-mm-dd).
|
|
49215
|
+
* @param {number} time - Unix timestamp (seconds), local midnight of the day.
|
|
49216
|
+
* @returns {string} ISO date string (yyyy-mm-dd) reflecting the local calendar day.
|
|
48669
49217
|
*/
|
|
48670
49218
|
convertWcTimeToDate(time) {
|
|
48671
49219
|
return dateFormatter$1.toISOFormatString(new Date(time * 1000));
|
|
@@ -48767,8 +49315,8 @@ class AuroDatePicker extends AuroElement$5 {
|
|
|
48767
49315
|
}
|
|
48768
49316
|
}
|
|
48769
49317
|
|
|
48770
|
-
// Focus the calendar grid wrapper (
|
|
48771
|
-
// the SR announcement for the active cell
|
|
49318
|
+
// Focus the calendar grid wrapper. The live region (announced just
|
|
49319
|
+
// below) handles the SR announcement for the active cell.
|
|
48772
49320
|
if (activeCell) {
|
|
48773
49321
|
this.calendar.focusActiveCell();
|
|
48774
49322
|
|
|
@@ -48782,11 +49330,14 @@ class AuroDatePicker extends AuroElement$5 {
|
|
|
48782
49330
|
this.calendar.announceSelection(announcement);
|
|
48783
49331
|
}, 500);
|
|
48784
49332
|
|
|
48785
|
-
// On mobile fullscreen
|
|
48786
|
-
//
|
|
48787
|
-
//
|
|
48788
|
-
|
|
49333
|
+
// On mobile fullscreen — or when an explicit focusDate change has
|
|
49334
|
+
// requested a forced scroll on the next render — scroll the active
|
|
49335
|
+
// cell into view. Doing this here (after activeCellDate has been
|
|
49336
|
+
// resolved by the rAF loop above) prevents a no-op scroll that
|
|
49337
|
+
// would happen if we tried to scroll before the cell was set.
|
|
49338
|
+
if (this.dropdown.isBibFullscreen || this.forceScrollOnNextMobileCalendarRender) {
|
|
48789
49339
|
this.calendar.scrollToActiveCell();
|
|
49340
|
+
this.forceScrollOnNextMobileCalendarRender = false;
|
|
48790
49341
|
}
|
|
48791
49342
|
} else if (attempts < MAX_ATTEMPTS) {
|
|
48792
49343
|
requestAnimationFrame(tryFocus);
|
|
@@ -48818,11 +49369,13 @@ class AuroDatePicker extends AuroElement$5 {
|
|
|
48818
49369
|
this.dropdown.bibDialogLabel = labelElement.textContent.trim() || undefined;
|
|
48819
49370
|
}
|
|
48820
49371
|
|
|
49372
|
+
const { signal } = this._listenerAbortController;
|
|
49373
|
+
|
|
48821
49374
|
this.dropdown.addEventListener('auroDropdown-triggerClick', () => {
|
|
48822
49375
|
if (!this.isPopoverVisible) {
|
|
48823
49376
|
this.dropdown.show();
|
|
48824
49377
|
}
|
|
48825
|
-
});
|
|
49378
|
+
}, { signal });
|
|
48826
49379
|
|
|
48827
49380
|
this.dropdown.addEventListener('auroDropdown-toggled', () => {
|
|
48828
49381
|
this.notifyDatepickerToggled();
|
|
@@ -48840,7 +49393,7 @@ class AuroDatePicker extends AuroElement$5 {
|
|
|
48840
49393
|
if (this.valueObject) {
|
|
48841
49394
|
this.centralDate = this.value;
|
|
48842
49395
|
} else if (!this.centralDate && !this.calendarStartDate && !this.minDate) {
|
|
48843
|
-
this.centralDate = new Date();
|
|
49396
|
+
this.centralDate = dateFormatter$1.toISOFormatString(new Date());
|
|
48844
49397
|
}
|
|
48845
49398
|
}
|
|
48846
49399
|
|
|
@@ -48908,19 +49461,11 @@ class AuroDatePicker extends AuroElement$5 {
|
|
|
48908
49461
|
}
|
|
48909
49462
|
}
|
|
48910
49463
|
|
|
48911
|
-
//
|
|
48912
|
-
|
|
48913
|
-
|
|
48914
|
-
|
|
48915
|
-
|
|
48916
|
-
// we need to wait until the next frame to ensure the calendar is fully rendered
|
|
48917
|
-
// and the area we're trying to scroll to is present in the DOM.
|
|
48918
|
-
setTimeout(() => {
|
|
48919
|
-
this.calendar.scrollMonthIntoView(this.calendarFocusDate);
|
|
48920
|
-
this.forceScrollOnNextMobileCalendarRender = false;
|
|
48921
|
-
}, 0);
|
|
48922
|
-
}
|
|
48923
|
-
});
|
|
49464
|
+
// Note: the forceScrollOnNextMobileCalendarRender scroll-into-view
|
|
49465
|
+
// happens inside focusActiveCellWhenReady() once activeCellDate has
|
|
49466
|
+
// been resolved by its rAF wait — not here in a setTimeout(0), which
|
|
49467
|
+
// fired before the active date was set and silently no-op'd.
|
|
49468
|
+
}, { signal });
|
|
48924
49469
|
|
|
48925
49470
|
// Handle responsive strategy changes while the dropdown is open
|
|
48926
49471
|
// (e.g. resizing from desktop → mobile or vice versa).
|
|
@@ -48967,7 +49512,7 @@ class AuroDatePicker extends AuroElement$5 {
|
|
|
48967
49512
|
});
|
|
48968
49513
|
});
|
|
48969
49514
|
}
|
|
48970
|
-
});
|
|
49515
|
+
}, { signal });
|
|
48971
49516
|
}
|
|
48972
49517
|
|
|
48973
49518
|
/**
|
|
@@ -48980,6 +49525,8 @@ class AuroDatePicker extends AuroElement$5 {
|
|
|
48980
49525
|
|
|
48981
49526
|
this.inputList = [...this.dropdown.querySelectorAll(this.inputTag._$litStatic$)];
|
|
48982
49527
|
|
|
49528
|
+
const { signal } = this._listenerAbortController;
|
|
49529
|
+
|
|
48983
49530
|
this.inputList.forEach((input, index) => {
|
|
48984
49531
|
input.addEventListener('input', (event) => {
|
|
48985
49532
|
event.stopPropagation();
|
|
@@ -48991,7 +49538,7 @@ class AuroDatePicker extends AuroElement$5 {
|
|
|
48991
49538
|
}
|
|
48992
49539
|
|
|
48993
49540
|
this.notifyValueChanged();
|
|
48994
|
-
});
|
|
49541
|
+
}, { signal });
|
|
48995
49542
|
|
|
48996
49543
|
input.addEventListener('auroFormElement-validated', (evt) => {
|
|
48997
49544
|
// not to bubble up input's validated event.
|
|
@@ -49007,7 +49554,7 @@ class AuroDatePicker extends AuroElement$5 {
|
|
|
49007
49554
|
this.validity = evt.detail.validity;
|
|
49008
49555
|
this.errorMessage = evt.detail.message;
|
|
49009
49556
|
}
|
|
49010
|
-
});
|
|
49557
|
+
}, { signal });
|
|
49011
49558
|
});
|
|
49012
49559
|
}
|
|
49013
49560
|
|
|
@@ -49021,19 +49568,32 @@ class AuroDatePicker extends AuroElement$5 {
|
|
|
49021
49568
|
this.calendar.datepicker = this;
|
|
49022
49569
|
this.calendar.dropdown = this.dropdown;
|
|
49023
49570
|
|
|
49571
|
+
const { signal } = this._listenerAbortController;
|
|
49572
|
+
|
|
49024
49573
|
this.calendar.addEventListener('auroCalendar-dateSelected', () => {
|
|
49025
|
-
|
|
49026
|
-
|
|
49574
|
+
// Compare the input's ISO value against the *converted* calendar
|
|
49575
|
+
// timestamp (the vendor's `dateFrom`/`dateTo` are Unix-seconds
|
|
49576
|
+
// strings — comparing the input ISO directly against them would
|
|
49577
|
+
// never match, so the write would fire on every event and emit
|
|
49578
|
+
// redundant input/change activity).
|
|
49579
|
+
if (this.calendar.dateFrom !== undefined) {
|
|
49580
|
+
const fromIso = this.convertWcTimeToDate(this.calendar.dateFrom);
|
|
49581
|
+
if (this.inputList[0].value !== fromIso) {
|
|
49582
|
+
this.inputList[0].value = fromIso;
|
|
49583
|
+
}
|
|
49027
49584
|
}
|
|
49028
49585
|
|
|
49029
|
-
if (this.inputList[1] && this.calendar.dateTo
|
|
49030
|
-
|
|
49586
|
+
if (this.inputList[1] && this.calendar.dateTo) {
|
|
49587
|
+
const toIso = this.convertWcTimeToDate(this.calendar.dateTo);
|
|
49588
|
+
if (this.inputList[1].value !== toIso) {
|
|
49589
|
+
this.inputList[1].value = toIso;
|
|
49590
|
+
}
|
|
49031
49591
|
}
|
|
49032
|
-
});
|
|
49592
|
+
}, { signal });
|
|
49033
49593
|
|
|
49034
49594
|
this.calendar.addEventListener('auroCalendar-dismissRequest', () => {
|
|
49035
49595
|
this.dropdown.hide();
|
|
49036
|
-
});
|
|
49596
|
+
}, { signal });
|
|
49037
49597
|
|
|
49038
49598
|
this.calendar.addEventListener('auroCalendar-centralDateChanged', (event) => {
|
|
49039
49599
|
const match = this.centralDateObject && this.util.datesMatch(event.detail.date, this.centralDateObject);
|
|
@@ -49043,7 +49603,7 @@ class AuroDatePicker extends AuroElement$5 {
|
|
|
49043
49603
|
}
|
|
49044
49604
|
|
|
49045
49605
|
this.notifyMonthChanged(event);
|
|
49046
|
-
});
|
|
49606
|
+
}, { signal });
|
|
49047
49607
|
}
|
|
49048
49608
|
|
|
49049
49609
|
/**
|
|
@@ -49052,10 +49612,17 @@ class AuroDatePicker extends AuroElement$5 {
|
|
|
49052
49612
|
* @returns {void}
|
|
49053
49613
|
*/
|
|
49054
49614
|
configureDatepicker() {
|
|
49615
|
+
// These listeners are on `this` (the host), so they would GC with the
|
|
49616
|
+
// host even without the abort signal — see the leak rationale on
|
|
49617
|
+
// `_listenerAbortController`. The signal is still passed for uniform
|
|
49618
|
+
// cleanup semantics with the child-element listeners in the other
|
|
49619
|
+
// configure* methods.
|
|
49620
|
+
const { signal } = this._listenerAbortController;
|
|
49621
|
+
|
|
49055
49622
|
this.addEventListener('focusin', () => {
|
|
49056
49623
|
this.touched = true;
|
|
49057
49624
|
this.hasFocus = true;
|
|
49058
|
-
});
|
|
49625
|
+
}, { signal });
|
|
49059
49626
|
|
|
49060
49627
|
this.addEventListener('focusout', () => {
|
|
49061
49628
|
this.hasFocus = false;
|
|
@@ -49067,7 +49634,7 @@ class AuroDatePicker extends AuroElement$5 {
|
|
|
49067
49634
|
if (!this.matches(':focus-within')) {
|
|
49068
49635
|
this.validate();
|
|
49069
49636
|
}
|
|
49070
|
-
});
|
|
49637
|
+
}, { signal });
|
|
49071
49638
|
|
|
49072
49639
|
if (this.valueObject) {
|
|
49073
49640
|
this.calendar.dateFrom = this.convertToWcValidTime(this.valueObject);
|
|
@@ -49265,6 +49832,41 @@ class AuroDatePicker extends AuroElement$5 {
|
|
|
49265
49832
|
return this.validity !== undefined && this.validity !== 'valid';
|
|
49266
49833
|
}
|
|
49267
49834
|
|
|
49835
|
+
/**
|
|
49836
|
+
* Per-class dedup set used by `_warnInvalidLocale`. Static so the dedup
|
|
49837
|
+
* spans every datepicker instance on the page; lives on the class (not
|
|
49838
|
+
* at module scope) so it stays an encapsulated implementation detail of
|
|
49839
|
+
* this component and does not interfere with WCA's class-JSDoc
|
|
49840
|
+
* attachment.
|
|
49841
|
+
* @private
|
|
49842
|
+
*/
|
|
49843
|
+
static _warnedInvalidLocales = new Set();
|
|
49844
|
+
|
|
49845
|
+
/**
|
|
49846
|
+
* Logs a one-time `console.debug` when an unsupported locale falls back to
|
|
49847
|
+
* en-US. Deduped by the offending tag so noisy re-renders that resurface
|
|
49848
|
+
* the same bad value stay quiet, but each new bad value still signals so
|
|
49849
|
+
* consumers can spot the typo or missing tag.
|
|
49850
|
+
* @private
|
|
49851
|
+
* @param {string|undefined} badLocale - The locale value that failed.
|
|
49852
|
+
* @returns {void}
|
|
49853
|
+
*/
|
|
49854
|
+
_warnInvalidLocale(badLocale) {
|
|
49855
|
+
// Stringify without coalescing — `String(undefined)` / `String(null)`
|
|
49856
|
+
// surface the actual offending value in the log, instead of the
|
|
49857
|
+
// ambiguous `Locale ""` that `String(badLocale ?? '')` would produce.
|
|
49858
|
+
// Dedup still works correctly because each unique stringification
|
|
49859
|
+
// becomes its own Set entry.
|
|
49860
|
+
const key = String(badLocale);
|
|
49861
|
+
const seen = AuroDatePicker._warnedInvalidLocales;
|
|
49862
|
+
if (seen.has(key)) {
|
|
49863
|
+
return;
|
|
49864
|
+
}
|
|
49865
|
+
seen.add(key);
|
|
49866
|
+
// eslint-disable-next-line no-console
|
|
49867
|
+
console.debug(`[auro-datepicker] Locale "${key}" is not supported by Intl.DateTimeFormat. Falling back to "en-US". Pass a BCP 47 tag such as "en-US", "fr-FR", or "ja-JP".`);
|
|
49868
|
+
}
|
|
49869
|
+
|
|
49268
49870
|
/**
|
|
49269
49871
|
* Lifecycle method to check if the locale is valid.
|
|
49270
49872
|
* @ignore
|
|
@@ -49275,10 +49877,15 @@ class AuroDatePicker extends AuroElement$5 {
|
|
|
49275
49877
|
if (changedProperties.has('locale')) {
|
|
49276
49878
|
try {
|
|
49277
49879
|
const supported = Intl.DateTimeFormat.supportedLocalesOf([this.locale], { localeMatcher: 'lookup' });
|
|
49278
|
-
|
|
49880
|
+
if (supported.length > 0) {
|
|
49881
|
+
this._validLocale = this.locale;
|
|
49882
|
+
} else {
|
|
49883
|
+
this._validLocale = 'en-US';
|
|
49884
|
+
this._warnInvalidLocale(this.locale);
|
|
49885
|
+
}
|
|
49279
49886
|
} catch {
|
|
49280
|
-
console.debug(`[AuroDatePicker] The locale "${this.locale}" is not valid. Falling back to "en-US".`); // eslint-disable-line no-console
|
|
49281
49887
|
this._validLocale = 'en-US';
|
|
49888
|
+
this._warnInvalidLocale(this.locale);
|
|
49282
49889
|
}
|
|
49283
49890
|
|
|
49284
49891
|
const previousLocaleFormat = getDateFormatFromLocale$1(changedProperties.get('locale'));
|
|
@@ -49360,8 +49967,6 @@ class AuroDatePicker extends AuroElement$5 {
|
|
|
49360
49967
|
// Skip centralDate update when user clicked a cell in range mode
|
|
49361
49968
|
// to prevent the displayed months from shifting
|
|
49362
49969
|
this.centralDate = this.value;
|
|
49363
|
-
//TODO: TEST THIS CHANGE
|
|
49364
|
-
// this.calendarRenderUtil.updateCentralDate(this, this.value);
|
|
49365
49970
|
}
|
|
49366
49971
|
|
|
49367
49972
|
this.setHasValue();
|
|
@@ -49421,8 +50026,6 @@ class AuroDatePicker extends AuroElement$5 {
|
|
|
49421
50026
|
// Skip centralDate update when user clicked a cell in range mode
|
|
49422
50027
|
// to prevent the displayed months from shifting
|
|
49423
50028
|
this.centralDate = this.valueEnd;
|
|
49424
|
-
// TODO: TEST THIS CHANGE
|
|
49425
|
-
// this.calendarRenderUtil.updateCentralDate(this, this.formattedValueEnd);
|
|
49426
50029
|
}
|
|
49427
50030
|
|
|
49428
50031
|
this.validate();
|
|
@@ -49564,7 +50167,7 @@ class AuroDatePicker extends AuroElement$5 {
|
|
|
49564
50167
|
* @returns {void}
|
|
49565
50168
|
*/
|
|
49566
50169
|
configureClickHandler() {
|
|
49567
|
-
this.addEventListener('click', this.handleClick);
|
|
50170
|
+
this.addEventListener('click', this.handleClick, { signal: this._listenerAbortController.signal });
|
|
49568
50171
|
}
|
|
49569
50172
|
|
|
49570
50173
|
firstUpdated() {
|
|
@@ -49572,6 +50175,15 @@ class AuroDatePicker extends AuroElement$5 {
|
|
|
49572
50175
|
// Add the tag name as an attribute if it is different than the component name
|
|
49573
50176
|
this.runtimeUtils.handleComponentTagRename(this, 'auro-datepicker');
|
|
49574
50177
|
|
|
50178
|
+
// If the element was disconnected before this first render finished,
|
|
50179
|
+
// disconnectedCallback's microtask already aborted the controller. The
|
|
50180
|
+
// connectedCallback reinit guard skips that case because `hasUpdated`
|
|
50181
|
+
// is still false. Mint a fresh controller here so configure* registers
|
|
50182
|
+
// listeners against a live signal.
|
|
50183
|
+
if (this._listenerAbortController.signal.aborted) {
|
|
50184
|
+
this._listenerAbortController = new AbortController();
|
|
50185
|
+
}
|
|
50186
|
+
|
|
49575
50187
|
this.configureDropdown();
|
|
49576
50188
|
this.configureInput();
|
|
49577
50189
|
this.configureCalendar();
|
|
@@ -49583,9 +50195,36 @@ class AuroDatePicker extends AuroElement$5 {
|
|
|
49583
50195
|
connectedCallback() {
|
|
49584
50196
|
super.connectedCallback();
|
|
49585
50197
|
|
|
50198
|
+
// True reconnect after `disconnectedCallback` aborted our controller:
|
|
50199
|
+
// the existing signal is dead, so listeners registered against it
|
|
50200
|
+
// would never fire. Create a fresh controller and re-run the
|
|
50201
|
+
// configure* wiring (each method is idempotent — it just re-caches
|
|
50202
|
+
// child refs and re-registers listeners against the new signal).
|
|
50203
|
+
// `hasUpdated` gates this so the *first* connect (which precedes
|
|
50204
|
+
// firstUpdated) still falls through to firstUpdated's initial wiring.
|
|
50205
|
+
if (this.hasUpdated && this._listenerAbortController.signal.aborted) {
|
|
50206
|
+
this._listenerAbortController = new AbortController();
|
|
50207
|
+
this.configureDropdown();
|
|
50208
|
+
this.configureInput();
|
|
50209
|
+
this.configureCalendar();
|
|
50210
|
+
this.configureDatepicker();
|
|
50211
|
+
this.configureClickHandler();
|
|
50212
|
+
}
|
|
50213
|
+
|
|
49586
50214
|
this.locale = this.domHandler.getLocale(this);
|
|
49587
50215
|
}
|
|
49588
50216
|
|
|
50217
|
+
disconnectedCallback() {
|
|
50218
|
+
super.disconnectedCallback();
|
|
50219
|
+
// Defer so that re-parenting (auro-drawer slotting it into a dialog,
|
|
50220
|
+
// for example) does not abort listeners we still need after reconnect.
|
|
50221
|
+
queueMicrotask(() => {
|
|
50222
|
+
if (!this.isConnected) {
|
|
50223
|
+
this._listenerAbortController.abort();
|
|
50224
|
+
}
|
|
50225
|
+
});
|
|
50226
|
+
}
|
|
50227
|
+
|
|
49589
50228
|
// layout render methods
|
|
49590
50229
|
// ------------------------------------
|
|
49591
50230
|
|
|
@@ -50608,15 +51247,17 @@ let AuroFormValidation$5 = class AuroFormValidation {
|
|
|
50608
51247
|
);
|
|
50609
51248
|
}
|
|
50610
51249
|
|
|
50611
|
-
|
|
50612
|
-
|
|
50613
|
-
|
|
51250
|
+
const isCombobox = this.runtimeUtils.elementMatch(elem, 'auro-combobox');
|
|
51251
|
+
|
|
51252
|
+
// If there is a second input in the elem and that value is undefined or an empty string set hasValue to false.
|
|
51253
|
+
// Skip for combobox: its second auro-input is the fullscreen-bib mirror of the same value, not an independent
|
|
51254
|
+
// field (datepicker is the intended consumer — start/end are independently required).
|
|
51255
|
+
if (this.auroInputElements?.length === 2 && !isCombobox) {
|
|
51256
|
+
if (!this.auroInputElements[1].value || this.auroInputElements[1].value.length === 0) {
|
|
50614
51257
|
hasValue = false;
|
|
50615
51258
|
}
|
|
50616
51259
|
}
|
|
50617
51260
|
|
|
50618
|
-
const isCombobox = this.runtimeUtils.elementMatch(elem, 'auro-combobox');
|
|
50619
|
-
|
|
50620
51261
|
if (isCombobox) {
|
|
50621
51262
|
|
|
50622
51263
|
if (!elem.persistInput || elem.behavior === "filter") {
|
|
@@ -51081,7 +51722,7 @@ let AuroHelpText$1$2 = class AuroHelpText extends i$3 {
|
|
|
51081
51722
|
}
|
|
51082
51723
|
};
|
|
51083
51724
|
|
|
51084
|
-
var formkitVersion$1$2 = '
|
|
51725
|
+
var formkitVersion$1$2 = '202607010104';
|
|
51085
51726
|
|
|
51086
51727
|
// Copyright (c) 2026 Alaska Airlines. All rights reserved. Licensed under the Apache-2.0 license
|
|
51087
51728
|
// See LICENSE in the project root for license information.
|
|
@@ -55409,7 +56050,7 @@ let AuroHelpText$6 = class AuroHelpText extends i$3 {
|
|
|
55409
56050
|
}
|
|
55410
56051
|
};
|
|
55411
56052
|
|
|
55412
|
-
var formkitVersion$6 = '
|
|
56053
|
+
var formkitVersion$6 = '202607010104';
|
|
55413
56054
|
|
|
55414
56055
|
let AuroElement$1$2 = class AuroElement extends i$3 {
|
|
55415
56056
|
static get properties() {
|
|
@@ -56681,6 +57322,7 @@ let AuroDropdown$2 = class AuroDropdown extends AuroElement$1$2 {
|
|
|
56681
57322
|
role="${o$4(this.triggerContentFocusable ? undefined : this.a11yRole)}"
|
|
56682
57323
|
aria-expanded="${o$4(this.a11yRole === 'button' || this.triggerContentFocusable ? undefined : this.isPopoverVisible)}"
|
|
56683
57324
|
aria-controls="${o$4(this.a11yRole === 'button' || this.triggerContentFocusable ? undefined : this.dropdownId)}"
|
|
57325
|
+
aria-haspopup="${o$4(this.a11yRole === 'combobox' && !this.triggerContentFocusable ? 'listbox' : undefined)}"
|
|
56684
57326
|
aria-labelledby="${o$4(this.triggerContentFocusable ? undefined : 'triggerLabel')}"
|
|
56685
57327
|
aria-disabled="${o$4(this.disabled ? 'true' : undefined)}"
|
|
56686
57328
|
@focusin="${this.handleFocusin}"
|
|
@@ -56807,7 +57449,7 @@ let AuroDropdown$2 = class AuroDropdown extends AuroElement$1$2 {
|
|
|
56807
57449
|
|
|
56808
57450
|
var colorCss$1$6 = i$6`#headerContainer{box-shadow:var(--ds-auro-dropdownbib-header-boxshadow-color)}#footerContainer{background-color:var(--ds-auro-dropdownbib-footer-container-color)}`;
|
|
56809
57451
|
|
|
56810
|
-
var styleCss$1$6 = i$6`#bibTemplate{display:flex;overflow:hidden;height:100%;max-height:100%;flex-direction:column}#headerContainer{display:flex;flex-direction:column;padding:var(--ds-size-200, 1rem);padding-top:var(--ds-size-400, 2rem);padding-bottom:0}#headerContainer .titleRow{display:flex;flex-direction:row;justify-content:space-between;gap:var(--ds-size-100, 0.5rem)}#headerContainer .header{max-width:calc(100vw - var(--ds-size-900, 4.5rem));padding-top:var(--ds-size-200, 1rem)}#headerContainer .subheader{width:100%}#closeButton [auro-icon]{--ds-auro-icon-size: var(--ds-size-500, 2.5rem)}#bodyContainer{position:relative;overflow:auto;flex:1
|
|
57452
|
+
var styleCss$1$6 = i$6`#bibTemplate{display:flex;overflow:hidden;height:100%;max-height:100%;flex-direction:column}#headerContainer{display:flex;flex-direction:column;padding:var(--ds-size-200, 1rem);padding-top:var(--ds-size-400, 2rem);padding-bottom:0}#headerContainer .titleRow{display:flex;flex-direction:row;justify-content:space-between;gap:var(--ds-size-100, 0.5rem)}#headerContainer .header{max-width:calc(100vw - var(--ds-size-900, 4.5rem));padding-top:var(--ds-size-200, 1rem)}#headerContainer .subheader{width:100%}#closeButton [auro-icon]{--ds-auro-icon-size: var(--ds-size-500, 2.5rem)}#bodyContainer{position:relative;overflow:auto;flex:1}:host([isfullscreen]) #bibTemplate{max-height:100dvh}:host([isfullscreen]) #bodyContainer{margin-top:var(--ds-size-100, 0.5rem)}#footerContainer{padding:var(--ds-size-200, 1rem)}`;
|
|
56811
57453
|
|
|
56812
57454
|
var tokenCss$3 = i$6`:host{--ds-auro-dropdownbib-header-boxshadow-color: var(--ds-elevation-200, 0px 0px 10px rgba(0, 0, 0, 0.15));--ds-auro-dropdownbib-footer-container-color: var(--ds-basic-color-surface-default, #ffffff)}`;
|
|
56813
57455
|
|
|
@@ -57813,6 +58455,13 @@ class AuroCounterGroup extends AuroElement$4 {
|
|
|
57813
58455
|
*/
|
|
57814
58456
|
configureDropdownCounters() {
|
|
57815
58457
|
this.dropdown = this.shadowRoot.querySelector(this.dropdownTag._$litStatic$);
|
|
58458
|
+
|
|
58459
|
+
// Counter rows are slotted into the bib through multiple shadow roots
|
|
58460
|
+
// (dropdown → bib → bibtemplate → counter-group → counter), so the floater's
|
|
58461
|
+
// `:focus-within` focus-loss check fails to match the dropdown host in Chromium
|
|
58462
|
+
// and the bib auto-closes immediately after opening. Mirrors auro-select.
|
|
58463
|
+
this.dropdown.noHideOnThisFocusLoss = true;
|
|
58464
|
+
|
|
57816
58465
|
this.dropdown.requestUpdate();
|
|
57817
58466
|
|
|
57818
58467
|
const counterWrapper = this.shadowRoot.querySelector('auro-counter-wrapper');
|
|
@@ -58950,15 +59599,17 @@ let AuroFormValidation$4 = class AuroFormValidation {
|
|
|
58950
59599
|
);
|
|
58951
59600
|
}
|
|
58952
59601
|
|
|
58953
|
-
|
|
58954
|
-
|
|
58955
|
-
|
|
59602
|
+
const isCombobox = this.runtimeUtils.elementMatch(elem, 'auro-combobox');
|
|
59603
|
+
|
|
59604
|
+
// If there is a second input in the elem and that value is undefined or an empty string set hasValue to false.
|
|
59605
|
+
// Skip for combobox: its second auro-input is the fullscreen-bib mirror of the same value, not an independent
|
|
59606
|
+
// field (datepicker is the intended consumer — start/end are independently required).
|
|
59607
|
+
if (this.auroInputElements?.length === 2 && !isCombobox) {
|
|
59608
|
+
if (!this.auroInputElements[1].value || this.auroInputElements[1].value.length === 0) {
|
|
58956
59609
|
hasValue = false;
|
|
58957
59610
|
}
|
|
58958
59611
|
}
|
|
58959
59612
|
|
|
58960
|
-
const isCombobox = this.runtimeUtils.elementMatch(elem, 'auro-combobox');
|
|
58961
|
-
|
|
58962
59613
|
if (isCombobox) {
|
|
58963
59614
|
|
|
58964
59615
|
if (!elem.persistInput || elem.behavior === "filter") {
|
|
@@ -59349,7 +60000,7 @@ let AuroHelpText$5 = class AuroHelpText extends i$3 {
|
|
|
59349
60000
|
}
|
|
59350
60001
|
};
|
|
59351
60002
|
|
|
59352
|
-
var formkitVersion$5 = '
|
|
60003
|
+
var formkitVersion$5 = '202607010104';
|
|
59353
60004
|
|
|
59354
60005
|
// Copyright (c) Alaska Air. All right reserved. Licensed under the Apache-2.0 license
|
|
59355
60006
|
// See LICENSE in the project root for license information.
|
|
@@ -60696,15 +61347,17 @@ let AuroFormValidation$3 = class AuroFormValidation {
|
|
|
60696
61347
|
);
|
|
60697
61348
|
}
|
|
60698
61349
|
|
|
60699
|
-
|
|
60700
|
-
|
|
60701
|
-
|
|
61350
|
+
const isCombobox = this.runtimeUtils.elementMatch(elem, 'auro-combobox');
|
|
61351
|
+
|
|
61352
|
+
// If there is a second input in the elem and that value is undefined or an empty string set hasValue to false.
|
|
61353
|
+
// Skip for combobox: its second auro-input is the fullscreen-bib mirror of the same value, not an independent
|
|
61354
|
+
// field (datepicker is the intended consumer — start/end are independently required).
|
|
61355
|
+
if (this.auroInputElements?.length === 2 && !isCombobox) {
|
|
61356
|
+
if (!this.auroInputElements[1].value || this.auroInputElements[1].value.length === 0) {
|
|
60702
61357
|
hasValue = false;
|
|
60703
61358
|
}
|
|
60704
61359
|
}
|
|
60705
61360
|
|
|
60706
|
-
const isCombobox = this.runtimeUtils.elementMatch(elem, 'auro-combobox');
|
|
60707
|
-
|
|
60708
61361
|
if (isCombobox) {
|
|
60709
61362
|
|
|
60710
61363
|
if (!elem.persistInput || elem.behavior === "filter") {
|
|
@@ -61099,7 +61752,7 @@ let AuroHelpText$4 = class AuroHelpText extends i$3 {
|
|
|
61099
61752
|
}
|
|
61100
61753
|
};
|
|
61101
61754
|
|
|
61102
|
-
var formkitVersion$4 = '
|
|
61755
|
+
var formkitVersion$4 = '202607010104';
|
|
61103
61756
|
|
|
61104
61757
|
// Copyright (c) 2026 Alaska Airlines. All rights reserved. Licensed under the Apache-2.0 license
|
|
61105
61758
|
// See LICENSE in the project root for license information.
|
|
@@ -61956,15 +62609,17 @@ let AuroFormValidation$1 = class AuroFormValidation {
|
|
|
61956
62609
|
);
|
|
61957
62610
|
}
|
|
61958
62611
|
|
|
61959
|
-
|
|
61960
|
-
|
|
61961
|
-
|
|
62612
|
+
const isCombobox = this.runtimeUtils.elementMatch(elem, 'auro-combobox');
|
|
62613
|
+
|
|
62614
|
+
// If there is a second input in the elem and that value is undefined or an empty string set hasValue to false.
|
|
62615
|
+
// Skip for combobox: its second auro-input is the fullscreen-bib mirror of the same value, not an independent
|
|
62616
|
+
// field (datepicker is the intended consumer — start/end are independently required).
|
|
62617
|
+
if (this.auroInputElements?.length === 2 && !isCombobox) {
|
|
62618
|
+
if (!this.auroInputElements[1].value || this.auroInputElements[1].value.length === 0) {
|
|
61962
62619
|
hasValue = false;
|
|
61963
62620
|
}
|
|
61964
62621
|
}
|
|
61965
62622
|
|
|
61966
|
-
const isCombobox = this.runtimeUtils.elementMatch(elem, 'auro-combobox');
|
|
61967
|
-
|
|
61968
62623
|
if (isCombobox) {
|
|
61969
62624
|
|
|
61970
62625
|
if (!elem.persistInput || elem.behavior === "filter") {
|
|
@@ -62333,11 +62988,7 @@ const comboboxKeyboardStrategy = {
|
|
|
62333
62988
|
|
|
62334
62989
|
// navigate if bib is open otherwise open it
|
|
62335
62990
|
if (component.dropdown.isPopoverVisible) {
|
|
62336
|
-
|
|
62337
|
-
component.activateLastEnabledAvailableOption();
|
|
62338
|
-
} else {
|
|
62339
|
-
navigateArrow$1(component, 'down');
|
|
62340
|
-
}
|
|
62991
|
+
navigateArrow$1(component, 'down');
|
|
62341
62992
|
} else {
|
|
62342
62993
|
component.showBib();
|
|
62343
62994
|
}
|
|
@@ -62356,11 +63007,7 @@ const comboboxKeyboardStrategy = {
|
|
|
62356
63007
|
|
|
62357
63008
|
// navigate if bib is open otherwise open it
|
|
62358
63009
|
if (component.dropdown.isPopoverVisible) {
|
|
62359
|
-
|
|
62360
|
-
component.activateFirstEnabledAvailableOption();
|
|
62361
|
-
} else {
|
|
62362
|
-
navigateArrow$1(component, 'up');
|
|
62363
|
-
}
|
|
63010
|
+
navigateArrow$1(component, 'up');
|
|
62364
63011
|
} else {
|
|
62365
63012
|
component.showBib();
|
|
62366
63013
|
}
|
|
@@ -62376,13 +63023,18 @@ const comboboxKeyboardStrategy = {
|
|
|
62376
63023
|
},
|
|
62377
63024
|
|
|
62378
63025
|
Enter(component, evt, ctx) {
|
|
63026
|
+
// Forms should not submit on Enter from a combobox, regardless of which
|
|
63027
|
+
// child element (input, clear button, menu) is focused.
|
|
63028
|
+
evt.stopPropagation();
|
|
63029
|
+
|
|
62379
63030
|
if (isClearBtnFocused(ctx)) {
|
|
62380
|
-
//
|
|
62381
|
-
//
|
|
62382
|
-
//
|
|
62383
|
-
|
|
62384
|
-
|
|
62385
|
-
|
|
63031
|
+
// Let the browser dispatch Enter to the focused clear button so its
|
|
63032
|
+
// built-in activation fires and clears the selection. Do NOT call
|
|
63033
|
+
// preventDefault — that would block the activation.
|
|
63034
|
+
return;
|
|
63035
|
+
}
|
|
63036
|
+
|
|
63037
|
+
if (ctx.isExpanded && component.menu.optionActive) {
|
|
62386
63038
|
reconcileMenuIndex(component.menu);
|
|
62387
63039
|
component.menu.makeSelection();
|
|
62388
63040
|
|
|
@@ -62391,14 +63043,8 @@ const comboboxKeyboardStrategy = {
|
|
|
62391
63043
|
}
|
|
62392
63044
|
|
|
62393
63045
|
evt.preventDefault();
|
|
62394
|
-
evt.stopPropagation();
|
|
62395
63046
|
} else {
|
|
62396
|
-
// Prevent the keypress from bubbling to parent containers (e.g., forms)
|
|
62397
|
-
// which could interpret Enter as a submit or trigger other unintended behavior.
|
|
62398
|
-
// This is safe because showBib() opens the dialog programmatically,
|
|
62399
|
-
// not via event propagation.
|
|
62400
63047
|
evt.preventDefault();
|
|
62401
|
-
evt.stopPropagation();
|
|
62402
63048
|
component.showBib();
|
|
62403
63049
|
}
|
|
62404
63050
|
},
|
|
@@ -62443,7 +63089,7 @@ const comboboxKeyboardStrategy = {
|
|
|
62443
63089
|
component.setClearBtnFocus();
|
|
62444
63090
|
}
|
|
62445
63091
|
}
|
|
62446
|
-
}
|
|
63092
|
+
}
|
|
62447
63093
|
};
|
|
62448
63094
|
|
|
62449
63095
|
// Copyright (c) Alaska Air. All right reserved. Licensed under the Apache-2.0 license
|
|
@@ -66314,7 +66960,7 @@ let AuroHelpText$2 = class AuroHelpText extends i$3 {
|
|
|
66314
66960
|
}
|
|
66315
66961
|
};
|
|
66316
66962
|
|
|
66317
|
-
var formkitVersion$2 = '
|
|
66963
|
+
var formkitVersion$2 = '202607010104';
|
|
66318
66964
|
|
|
66319
66965
|
let AuroElement$2$1 = class AuroElement extends i$3 {
|
|
66320
66966
|
static get properties() {
|
|
@@ -67586,6 +68232,7 @@ let AuroDropdown$1 = class AuroDropdown extends AuroElement$2$1 {
|
|
|
67586
68232
|
role="${o$4(this.triggerContentFocusable ? undefined : this.a11yRole)}"
|
|
67587
68233
|
aria-expanded="${o$4(this.a11yRole === 'button' || this.triggerContentFocusable ? undefined : this.isPopoverVisible)}"
|
|
67588
68234
|
aria-controls="${o$4(this.a11yRole === 'button' || this.triggerContentFocusable ? undefined : this.dropdownId)}"
|
|
68235
|
+
aria-haspopup="${o$4(this.a11yRole === 'combobox' && !this.triggerContentFocusable ? 'listbox' : undefined)}"
|
|
67589
68236
|
aria-labelledby="${o$4(this.triggerContentFocusable ? undefined : 'triggerLabel')}"
|
|
67590
68237
|
aria-disabled="${o$4(this.disabled ? 'true' : undefined)}"
|
|
67591
68238
|
@focusin="${this.handleFocusin}"
|
|
@@ -72088,15 +72735,17 @@ let AuroFormValidation$2 = class AuroFormValidation {
|
|
|
72088
72735
|
);
|
|
72089
72736
|
}
|
|
72090
72737
|
|
|
72091
|
-
|
|
72092
|
-
|
|
72093
|
-
|
|
72738
|
+
const isCombobox = this.runtimeUtils.elementMatch(elem, 'auro-combobox');
|
|
72739
|
+
|
|
72740
|
+
// If there is a second input in the elem and that value is undefined or an empty string set hasValue to false.
|
|
72741
|
+
// Skip for combobox: its second auro-input is the fullscreen-bib mirror of the same value, not an independent
|
|
72742
|
+
// field (datepicker is the intended consumer — start/end are independently required).
|
|
72743
|
+
if (this.auroInputElements?.length === 2 && !isCombobox) {
|
|
72744
|
+
if (!this.auroInputElements[1].value || this.auroInputElements[1].value.length === 0) {
|
|
72094
72745
|
hasValue = false;
|
|
72095
72746
|
}
|
|
72096
72747
|
}
|
|
72097
72748
|
|
|
72098
|
-
const isCombobox = this.runtimeUtils.elementMatch(elem, 'auro-combobox');
|
|
72099
|
-
|
|
72100
72749
|
if (isCombobox) {
|
|
72101
72750
|
|
|
72102
72751
|
if (!elem.persistInput || elem.behavior === "filter") {
|
|
@@ -78032,6 +78681,13 @@ class AuroInputUtilities {
|
|
|
78032
78681
|
* @returns {string | undefined}
|
|
78033
78682
|
*/
|
|
78034
78683
|
toFormattedValue(valueObject, format) {
|
|
78684
|
+
// Exposed publicly via `AuroInputUtil.toFormattedValue`, so a missing
|
|
78685
|
+
// `format` argument has to fail gracefully rather than throw on
|
|
78686
|
+
// `format.toLowerCase()`. Treat any falsy value (undefined, null, '')
|
|
78687
|
+
// as "no format → no display value".
|
|
78688
|
+
if (!format) {
|
|
78689
|
+
return undefined;
|
|
78690
|
+
}
|
|
78035
78691
|
const normalizedFormat = format.toLowerCase();
|
|
78036
78692
|
const maskOptions = this.getMaskOptions('date', normalizedFormat);
|
|
78037
78693
|
|
|
@@ -78183,76 +78839,19 @@ class BaseInput extends AuroElement$1$1 {
|
|
|
78183
78839
|
constructor() {
|
|
78184
78840
|
super();
|
|
78185
78841
|
|
|
78186
|
-
|
|
78187
|
-
|
|
78188
|
-
|
|
78189
|
-
|
|
78190
|
-
|
|
78191
|
-
|
|
78192
|
-
|
|
78193
|
-
|
|
78194
|
-
|
|
78195
|
-
|
|
78196
|
-
this.setCustomValidityForType = undefined;
|
|
78197
|
-
this.size = 'lg';
|
|
78198
|
-
this.shape = 'classic';
|
|
78199
|
-
this.value = undefined;
|
|
78200
|
-
|
|
78201
|
-
this._initializePrivateDefaults();
|
|
78202
|
-
}
|
|
78203
|
-
|
|
78204
|
-
/**
|
|
78205
|
-
* Internal Defaults.
|
|
78206
|
-
* @private
|
|
78207
|
-
* @returns {void}
|
|
78208
|
-
*/
|
|
78209
|
-
_initializePrivateDefaults() {
|
|
78842
|
+
// Single-source initialization. Alphabetized so duplicate or stale
|
|
78843
|
+
// defaults are immediately obvious on a diff. Every field is assigned
|
|
78844
|
+
// exactly once here (previously the constructor + the old
|
|
78845
|
+
// `_initializePrivateDefaults` overlapped — both wrote ~14 of the same
|
|
78846
|
+
// fields and double-allocated `util` and `validation`, discarding the
|
|
78847
|
+
// first instance). `validation` is now allocated exactly once; `util`
|
|
78848
|
+
// is seeded here with an en-US default and then rebuilt in
|
|
78849
|
+
// `connectedCallback` once the consumer-resolved locale is available,
|
|
78850
|
+
// so a parent (datepicker/combobox) calling `validate()` synchronously
|
|
78851
|
+
// during its own update cycle sees a populated util instance.
|
|
78210
78852
|
this.activeLabel = false;
|
|
78211
|
-
this.appearance = "default";
|
|
78212
|
-
this.icon = false;
|
|
78213
|
-
this.disabled = false;
|
|
78214
|
-
this.dvInputOnly = false;
|
|
78215
|
-
this.hideLabelVisually = false;
|
|
78216
|
-
this.max = undefined;
|
|
78217
|
-
this.maxLength = undefined;
|
|
78218
|
-
this.min = undefined;
|
|
78219
|
-
this.minLength = undefined;
|
|
78220
|
-
this.noValidate = false;
|
|
78221
|
-
this.onDark = false;
|
|
78222
|
-
this.required = false;
|
|
78223
|
-
this.setCustomValidityForType = undefined;
|
|
78224
|
-
|
|
78225
|
-
// Used for storing raw values returned from input mask.
|
|
78226
|
-
this._rawMaskValue = undefined;
|
|
78227
|
-
|
|
78228
|
-
/**
|
|
78229
|
-
* @private
|
|
78230
|
-
*/
|
|
78231
|
-
this.layout = 'classic';
|
|
78232
|
-
|
|
78233
|
-
/**
|
|
78234
|
-
* @private
|
|
78235
|
-
*/
|
|
78236
|
-
this.shape = 'classic';
|
|
78237
|
-
|
|
78238
|
-
/**
|
|
78239
|
-
* @private
|
|
78240
|
-
*/
|
|
78241
|
-
this.size = 'lg';
|
|
78242
|
-
|
|
78243
|
-
this.touched = false;
|
|
78244
|
-
this.util = new AuroInputUtilities({
|
|
78245
|
-
locale: "en-US",
|
|
78246
|
-
format: this.format
|
|
78247
|
-
});
|
|
78248
|
-
this.validation = new AuroFormValidation$2();
|
|
78249
|
-
this.inputIconName = undefined;
|
|
78250
|
-
this.showPassword = false;
|
|
78251
|
-
this.validationCCLength = undefined;
|
|
78252
|
-
this.hasValue = false;
|
|
78253
|
-
this.label = 'Input label is undefined';
|
|
78254
|
-
|
|
78255
78853
|
|
|
78854
|
+
/** @private */
|
|
78256
78855
|
this.allowedInputTypes = [
|
|
78257
78856
|
"text",
|
|
78258
78857
|
"number",
|
|
@@ -78261,7 +78860,9 @@ class BaseInput extends AuroElement$1$1 {
|
|
|
78261
78860
|
"credit-card",
|
|
78262
78861
|
"tel"
|
|
78263
78862
|
];
|
|
78264
|
-
this.
|
|
78863
|
+
this.appearance = "default";
|
|
78864
|
+
|
|
78865
|
+
/** @private */
|
|
78265
78866
|
this.dateFormatMap = {
|
|
78266
78867
|
'mm/dd/yyyy': 'dateMMDDYYYY',
|
|
78267
78868
|
'dd/mm/yyyy': 'dateDDMMYYYY',
|
|
@@ -78278,27 +78879,62 @@ class BaseInput extends AuroElement$1$1 {
|
|
|
78278
78879
|
'dd/mm': 'dateDDMM',
|
|
78279
78880
|
'mm/dd': 'dateMMDD'
|
|
78280
78881
|
};
|
|
78882
|
+
this.disabled = false;
|
|
78883
|
+
|
|
78884
|
+
/** @private */
|
|
78281
78885
|
this.domHandler = new DomHandler();
|
|
78282
78886
|
this.dvInputOnly = false;
|
|
78283
78887
|
this.hasValue = false;
|
|
78888
|
+
this.hideLabelVisually = false;
|
|
78889
|
+
this.icon = false;
|
|
78890
|
+
|
|
78891
|
+
/** @private */
|
|
78284
78892
|
this.inputIconName = undefined;
|
|
78893
|
+
|
|
78894
|
+
/** @private */
|
|
78285
78895
|
this.label = 'Input label is undefined';
|
|
78896
|
+
this.layout = 'classic';
|
|
78897
|
+
this.locale = 'en-US';
|
|
78898
|
+
this.max = undefined;
|
|
78899
|
+
this.maxLength = undefined;
|
|
78900
|
+
this.min = undefined;
|
|
78901
|
+
this.minLength = undefined;
|
|
78286
78902
|
this.noValidate = false;
|
|
78287
|
-
this.
|
|
78903
|
+
this.onDark = false;
|
|
78904
|
+
// Raw values returned from the input mask before model normalization.
|
|
78905
|
+
this._rawMaskValue = undefined;
|
|
78906
|
+
this.required = false;
|
|
78907
|
+
this.setCustomValidityForType = undefined;
|
|
78908
|
+
// Credit Card is intentionally excluded — its mask manages the cursor
|
|
78909
|
+
// itself, and listing it here caused cursor placement issues in Safari.
|
|
78910
|
+
/** @private */
|
|
78288
78911
|
this.setSelectionInputTypes = [
|
|
78289
78912
|
"text",
|
|
78290
78913
|
"password",
|
|
78291
78914
|
"email"
|
|
78292
|
-
];
|
|
78915
|
+
];
|
|
78916
|
+
this.shape = 'classic';
|
|
78917
|
+
|
|
78918
|
+
/** @private */
|
|
78293
78919
|
this.showPassword = false;
|
|
78920
|
+
this.size = 'lg';
|
|
78294
78921
|
this.touched = false;
|
|
78922
|
+
|
|
78923
|
+
/** @private */
|
|
78295
78924
|
this.uniqueId = new UniqueId().create();
|
|
78925
|
+
|
|
78926
|
+
/** @private */
|
|
78296
78927
|
this.util = new AuroInputUtilities({
|
|
78297
78928
|
locale: this.locale,
|
|
78298
78929
|
format: this.format
|
|
78299
78930
|
});
|
|
78931
|
+
|
|
78932
|
+
/** @private */
|
|
78300
78933
|
this.validation = new AuroFormValidation$2();
|
|
78934
|
+
|
|
78935
|
+
/** @private */
|
|
78301
78936
|
this.validationCCLength = undefined;
|
|
78937
|
+
this.value = undefined;
|
|
78302
78938
|
}
|
|
78303
78939
|
|
|
78304
78940
|
// function to define props used within the scope of this component
|
|
@@ -78802,6 +79438,15 @@ class BaseInput extends AuroElement$1$1 {
|
|
|
78802
79438
|
|
|
78803
79439
|
this.inputId = this.id ? `${this.id}-input` : window.crypto.randomUUID();
|
|
78804
79440
|
|
|
79441
|
+
// Normalize the format token to lowercase so case-mixed values supplied
|
|
79442
|
+
// via attribute (e.g. `format="MM/DD/YYYY"`) hit the `dateFormatMap`
|
|
79443
|
+
// lookup inside `setCustomHelpTextMessage`. Without this, an uppercase
|
|
79444
|
+
// format silently misses the map and leaves `setCustomValidityForType`
|
|
79445
|
+
// unset.
|
|
79446
|
+
if (this.format) {
|
|
79447
|
+
this.format = this.format.toLowerCase();
|
|
79448
|
+
}
|
|
79449
|
+
|
|
78805
79450
|
// use validity message override if declared when initializing the component
|
|
78806
79451
|
if (this.hasAttribute('setCustomValidity')) {
|
|
78807
79452
|
this.ValidityMessageOverride = this.setCustomValidity;
|
|
@@ -78885,6 +79530,13 @@ class BaseInput extends AuroElement$1$1 {
|
|
|
78885
79530
|
|
|
78886
79531
|
if (typeToI18n.includes(this.type)) {
|
|
78887
79532
|
this.setCustomValidityForType = i18n(this.lang, this.type);
|
|
79533
|
+
// COVERAGE: this `else if` branch is unreachable in WTR. connectedCallback
|
|
79534
|
+
// (L682) calls configureDataForType, which at L1266-1268 assigns
|
|
79535
|
+
// `this.format = this.util.getDateMaskFromLocale().toLowerCase()` for any
|
|
79536
|
+
// type=date input whose `format` attribute is unset. That runs before
|
|
79537
|
+
// firstUpdated invokes setCustomHelpTextMessage, so `!this.format` is
|
|
79538
|
+
// always false here. Retained as a defensive fallback; the whole function
|
|
79539
|
+
// is @deprecated per AB#1557296 and slated for removal.
|
|
78888
79540
|
} else if (!this.format && this.type === 'date') {
|
|
78889
79541
|
this.setCustomValidityForType = i18n(this.lang, 'dateMMDDYYYY');
|
|
78890
79542
|
} else if (this.dateFormatMap[this.format]) {
|
|
@@ -79174,6 +79826,38 @@ class BaseInput extends AuroElement$1$1 {
|
|
|
79174
79826
|
this.touched = true;
|
|
79175
79827
|
this.validation.validate(this);
|
|
79176
79828
|
}
|
|
79829
|
+
|
|
79830
|
+
// Prevents cursor jumping in Safari. Setting `this.value` triggers a Lit
|
|
79831
|
+
// update that can re-render the input and reset the native cursor; we
|
|
79832
|
+
// capture the caret position before that update commits and restore it
|
|
79833
|
+
// via `setSelectionRange` once the update has flushed. Gated on
|
|
79834
|
+
// `setSelectionInputTypes` so credit-card (and other masked types whose
|
|
79835
|
+
// formatter manages the cursor itself) doesn't get a competing write.
|
|
79836
|
+
// Capture the caret position INSIDE the gate — reading `selectionStart`
|
|
79837
|
+
// on input types that don't support text selection (number, email in
|
|
79838
|
+
// some browsers) throws InvalidStateError, which would crash all input
|
|
79839
|
+
// handling. Wrap the read in try/catch belt-and-suspenders even though
|
|
79840
|
+
// the gated types currently support it, since the list is a public
|
|
79841
|
+
// property a consumer could mutate.
|
|
79842
|
+
if (this.setSelectionInputTypes.includes(this.type)) {
|
|
79843
|
+
let selectionStart = null;
|
|
79844
|
+
try {
|
|
79845
|
+
({ selectionStart } = this.inputElement);
|
|
79846
|
+
} catch (error) { // eslint-disable-line no-unused-vars
|
|
79847
|
+
return;
|
|
79848
|
+
}
|
|
79849
|
+
if (typeof selectionStart !== 'number') {
|
|
79850
|
+
return;
|
|
79851
|
+
}
|
|
79852
|
+
this.updateComplete.then(() => {
|
|
79853
|
+
try {
|
|
79854
|
+
this.inputElement.setSelectionRange(selectionStart, selectionStart);
|
|
79855
|
+
} catch (error) { // eslint-disable-line no-unused-vars
|
|
79856
|
+
// Some input types (number/email in certain UAs) throw on
|
|
79857
|
+
// setSelectionRange; swallow and let the native cursor stand.
|
|
79858
|
+
}
|
|
79859
|
+
});
|
|
79860
|
+
}
|
|
79177
79861
|
}
|
|
79178
79862
|
|
|
79179
79863
|
/**
|
|
@@ -79307,7 +79991,7 @@ class BaseInput extends AuroElement$1$1 {
|
|
|
79307
79991
|
*/
|
|
79308
79992
|
get placeholderStr() {
|
|
79309
79993
|
if (!this.placeholder && this.type === 'date') {
|
|
79310
|
-
return this.format
|
|
79994
|
+
return this.format.toUpperCase();
|
|
79311
79995
|
}
|
|
79312
79996
|
return this.placeholder || "";
|
|
79313
79997
|
}
|
|
@@ -79798,7 +80482,7 @@ let AuroHelpText$1$1 = class AuroHelpText extends i$3 {
|
|
|
79798
80482
|
}
|
|
79799
80483
|
};
|
|
79800
80484
|
|
|
79801
|
-
var formkitVersion$1$1 = '
|
|
80485
|
+
var formkitVersion$1$1 = '202607010104';
|
|
79802
80486
|
|
|
79803
80487
|
// Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
|
|
79804
80488
|
// See LICENSE in the project root for license information.
|
|
@@ -80301,6 +80985,7 @@ class AuroInput extends BaseInput {
|
|
|
80301
80985
|
<${this.buttonTag}
|
|
80302
80986
|
@click="${this.handleClickShowPassword}"
|
|
80303
80987
|
appearance="${this.onDark ? 'inverse' : this.appearance}"
|
|
80988
|
+
aria-pressed="${this.showPassword ? 'true' : 'false'}"
|
|
80304
80989
|
class="notificationBtn passwordBtn"
|
|
80305
80990
|
shape="circle"
|
|
80306
80991
|
size="sm"
|
|
@@ -80374,25 +81059,29 @@ class AuroInput extends BaseInput {
|
|
|
80374
81059
|
* @returns {html} - Returns HTML for the help text and error message.
|
|
80375
81060
|
*/
|
|
80376
81061
|
renderHtmlHelpText() {
|
|
81062
|
+
// Single `<p>` with stable identity across validity transitions —
|
|
81063
|
+
// previously two distinct templates (valid vs invalid) caused Lit to
|
|
81064
|
+
// replace the node entirely on a flip, and VoiceOver wouldn't
|
|
81065
|
+
// re-announce because the live-region element it was watching had been
|
|
81066
|
+
// removed and a new one inserted. Keeping one node means the `role`,
|
|
81067
|
+
// `aria-live`, and text content all change in-place, which AT does
|
|
81068
|
+
// observe and announce.
|
|
81069
|
+
const isError = this.validity && this.validity !== 'valid';
|
|
80377
81070
|
return u$c`
|
|
80378
|
-
|
|
80379
|
-
?
|
|
80380
|
-
|
|
80381
|
-
|
|
80382
|
-
|
|
80383
|
-
|
|
80384
|
-
|
|
80385
|
-
|
|
80386
|
-
|
|
80387
|
-
|
|
80388
|
-
|
|
80389
|
-
|
|
80390
|
-
|
|
80391
|
-
|
|
80392
|
-
</p>
|
|
80393
|
-
</${this.helpTextTag}>
|
|
80394
|
-
`
|
|
80395
|
-
}
|
|
81071
|
+
<${this.helpTextTag}
|
|
81072
|
+
appearance="${this.onDark ? 'inverse' : this.appearance}"
|
|
81073
|
+
?error=${isError}>
|
|
81074
|
+
<p
|
|
81075
|
+
id="${this.uniqueId}"
|
|
81076
|
+
part="helpText"
|
|
81077
|
+
role="${o$4(isError ? 'alert' : undefined)}"
|
|
81078
|
+
aria-live="${o$4(isError ? 'assertive' : undefined)}">
|
|
81079
|
+
${isError
|
|
81080
|
+
? this.errorMessage
|
|
81081
|
+
: u$c`<slot name="helpText">${this.getHelpText()}</slot>`
|
|
81082
|
+
}
|
|
81083
|
+
</p>
|
|
81084
|
+
</${this.helpTextTag}>
|
|
80396
81085
|
`;
|
|
80397
81086
|
}
|
|
80398
81087
|
|
|
@@ -80524,7 +81213,7 @@ class AuroInput extends BaseInput {
|
|
|
80524
81213
|
|
|
80525
81214
|
var colorCss$1$3 = i$6`#headerContainer{box-shadow:var(--ds-auro-dropdownbib-header-boxshadow-color)}#footerContainer{background-color:var(--ds-auro-dropdownbib-footer-container-color)}`;
|
|
80526
81215
|
|
|
80527
|
-
var styleCss$2$2 = i$6`#bibTemplate{display:flex;overflow:hidden;height:100%;max-height:100%;flex-direction:column}#headerContainer{display:flex;flex-direction:column;padding:var(--ds-size-200, 1rem);padding-top:var(--ds-size-400, 2rem);padding-bottom:0}#headerContainer .titleRow{display:flex;flex-direction:row;justify-content:space-between;gap:var(--ds-size-100, 0.5rem)}#headerContainer .header{max-width:calc(100vw - var(--ds-size-900, 4.5rem));padding-top:var(--ds-size-200, 1rem)}#headerContainer .subheader{width:100%}#closeButton [auro-icon]{--ds-auro-icon-size: var(--ds-size-500, 2.5rem)}#bodyContainer{position:relative;overflow:auto;flex:1
|
|
81216
|
+
var styleCss$2$2 = i$6`#bibTemplate{display:flex;overflow:hidden;height:100%;max-height:100%;flex-direction:column}#headerContainer{display:flex;flex-direction:column;padding:var(--ds-size-200, 1rem);padding-top:var(--ds-size-400, 2rem);padding-bottom:0}#headerContainer .titleRow{display:flex;flex-direction:row;justify-content:space-between;gap:var(--ds-size-100, 0.5rem)}#headerContainer .header{max-width:calc(100vw - var(--ds-size-900, 4.5rem));padding-top:var(--ds-size-200, 1rem)}#headerContainer .subheader{width:100%}#closeButton [auro-icon]{--ds-auro-icon-size: var(--ds-size-500, 2.5rem)}#bodyContainer{position:relative;overflow:auto;flex:1}:host([isfullscreen]) #bibTemplate{max-height:100dvh}:host([isfullscreen]) #bodyContainer{margin-top:var(--ds-size-100, 0.5rem)}#footerContainer{padding:var(--ds-size-200, 1rem)}`;
|
|
80528
81217
|
|
|
80529
81218
|
var tokenCss$1 = i$6`:host{--ds-auro-dropdownbib-header-boxshadow-color: var(--ds-elevation-200, 0px 0px 10px rgba(0, 0, 0, 0.15));--ds-auro-dropdownbib-footer-container-color: var(--ds-basic-color-surface-default, #ffffff)}`;
|
|
80530
81219
|
|
|
@@ -80919,7 +81608,7 @@ let AuroBibtemplate$1 = class AuroBibtemplate extends i$3 {
|
|
|
80919
81608
|
}
|
|
80920
81609
|
};
|
|
80921
81610
|
|
|
80922
|
-
var formkitVersion$3 = '
|
|
81611
|
+
var formkitVersion$3 = '202607010104';
|
|
80923
81612
|
|
|
80924
81613
|
var styleCss$1$3 = i$6`.util_displayInline{display:inline}.util_displayInlineBlock{display:inline-block}.util_displayBlock{display:block}.util_displayFlex{display:flex}.util_displayHidden{display:none}.util_displayHiddenVisually{position:absolute;overflow:hidden;clip:rect(1px, 1px, 1px, 1px);width:1px;height:1px;padding:0;border:0}:host{display:block;text-align:left}:host [auro-dropdown]{--ds-auro-dropdown-trigger-background-color: transparent}:host #inputInBib::part(wrapper){box-shadow:none}:host #inputInBib::part(accent-left){display:none}:host([layout*=classic]) [auro-input]{width:100%}:host([layout*=classic]) [auro-input]::part(helpText){display:none}:host([layout*=classic]) #slotHolder{display:none}`;
|
|
80925
81614
|
|
|
@@ -81287,12 +81976,23 @@ function getOptionLabel(option) {
|
|
|
81287
81976
|
if (!option) {
|
|
81288
81977
|
return '';
|
|
81289
81978
|
}
|
|
81290
|
-
|
|
81291
|
-
|
|
81292
|
-
if (
|
|
81293
|
-
|
|
81979
|
+
|
|
81980
|
+
// Consumer-provided override: short-circuit the DOM walk entirely.
|
|
81981
|
+
if (option.dataset && option.dataset.label) {
|
|
81982
|
+
return option.dataset.label;
|
|
81983
|
+
}
|
|
81984
|
+
|
|
81985
|
+
// Walk direct children — the `slot` attribute only applies to direct children
|
|
81986
|
+
// of the slot host, so a shallow filter is sufficient. Avoids the cloneNode +
|
|
81987
|
+
// querySelector allocation that ran on every keystroke via syncValuesAndStates.
|
|
81988
|
+
let text = '';
|
|
81989
|
+
for (const node of option.childNodes) {
|
|
81990
|
+
const isDisplayValueSlot = node.nodeType === Node.ELEMENT_NODE && node.getAttribute('slot') === 'displayValue';
|
|
81991
|
+
if (!isDisplayValueSlot) {
|
|
81992
|
+
text += node.textContent || '';
|
|
81993
|
+
}
|
|
81294
81994
|
}
|
|
81295
|
-
return
|
|
81995
|
+
return text.replace(/\s+/gu, ' ').trim();
|
|
81296
81996
|
}
|
|
81297
81997
|
|
|
81298
81998
|
// See https://git.io/JJ6SJ for "How to document your components using JSDoc"
|
|
@@ -81367,8 +82067,6 @@ class AuroCombobox extends AuroElement$3 {
|
|
|
81367
82067
|
this.availableOptions = [];
|
|
81368
82068
|
this.dropdownId = undefined;
|
|
81369
82069
|
this.dropdownOpen = false;
|
|
81370
|
-
this.triggerExpandedState = false;
|
|
81371
|
-
this._expandedTimeout = null;
|
|
81372
82070
|
this._inFullscreenTransition = false;
|
|
81373
82071
|
this.errorMessage = null;
|
|
81374
82072
|
this.isHiddenWhileLoading = false;
|
|
@@ -81379,6 +82077,30 @@ class AuroCombobox extends AuroElement$3 {
|
|
|
81379
82077
|
this.touched = false;
|
|
81380
82078
|
this.validation = new AuroFormValidation$1();
|
|
81381
82079
|
this.validity = undefined;
|
|
82080
|
+
this._userTyped = false;
|
|
82081
|
+
// Tracks every setTimeout scheduled via _scheduleTimer so
|
|
82082
|
+
// disconnectedCallback can cancel them. Without this, a detached
|
|
82083
|
+
// combobox's pending timers still fire — most are no-ops, but
|
|
82084
|
+
// configureMenu's racing-condition retry would otherwise loop.
|
|
82085
|
+
this._pendingTimers = new Set();
|
|
82086
|
+
}
|
|
82087
|
+
|
|
82088
|
+
/**
|
|
82089
|
+
* setTimeout wrapper that records the timer id so disconnectedCallback
|
|
82090
|
+
* can cancel any outstanding callbacks. The id is removed from the set
|
|
82091
|
+
* once the callback fires so the set doesn't grow unbounded.
|
|
82092
|
+
* @param {Function} fn - Callback to run.
|
|
82093
|
+
* @param {number} ms - Delay in milliseconds.
|
|
82094
|
+
* @returns {number} The timer id.
|
|
82095
|
+
* @private
|
|
82096
|
+
*/
|
|
82097
|
+
_scheduleTimer(fn, ms) {
|
|
82098
|
+
const id = setTimeout(() => {
|
|
82099
|
+
this._pendingTimers.delete(id);
|
|
82100
|
+
fn();
|
|
82101
|
+
}, ms);
|
|
82102
|
+
this._pendingTimers.add(id);
|
|
82103
|
+
return id;
|
|
81382
82104
|
}
|
|
81383
82105
|
|
|
81384
82106
|
// This function is to define props used within the scope of this component
|
|
@@ -81740,17 +82462,6 @@ class AuroCombobox extends AuroElement$3 {
|
|
|
81740
82462
|
attribute: false
|
|
81741
82463
|
},
|
|
81742
82464
|
|
|
81743
|
-
/**
|
|
81744
|
-
* Deferred aria-expanded state for the trigger input.
|
|
81745
|
-
* Delays the "true" transition so VoiceOver finishes its character echo
|
|
81746
|
-
* before announcing "expanded".
|
|
81747
|
-
* @private
|
|
81748
|
-
*/
|
|
81749
|
-
triggerExpandedState: {
|
|
81750
|
-
type: Boolean,
|
|
81751
|
-
reflect: false,
|
|
81752
|
-
attribute: false
|
|
81753
|
-
},
|
|
81754
82465
|
};
|
|
81755
82466
|
}
|
|
81756
82467
|
|
|
@@ -81773,13 +82484,6 @@ class AuroCombobox extends AuroElement$3 {
|
|
|
81773
82484
|
return this.input.value;
|
|
81774
82485
|
}
|
|
81775
82486
|
|
|
81776
|
-
// /**
|
|
81777
|
-
// * Sets the value of the input element within the combobox.
|
|
81778
|
-
// */
|
|
81779
|
-
// set inputValue(value) {
|
|
81780
|
-
// this.input.value = value;
|
|
81781
|
-
// }
|
|
81782
|
-
|
|
81783
82487
|
/**
|
|
81784
82488
|
* Checks if the element is valid.
|
|
81785
82489
|
* @returns {boolean} - Returns true if the element is valid, false otherwise.
|
|
@@ -81925,8 +82629,11 @@ class AuroCombobox extends AuroElement$3 {
|
|
|
81925
82629
|
this.syncInputValuesAcrossTriggerAndBib(label || this.value);
|
|
81926
82630
|
}
|
|
81927
82631
|
|
|
81928
|
-
//
|
|
81929
|
-
|
|
82632
|
+
// Replace any previously appended displayValue clone in the trigger.
|
|
82633
|
+
// :not(slot) excludes the template's <slot name="displayValue"
|
|
82634
|
+
// slot="displayValue"> forwarder, which also has slot="displayValue"
|
|
82635
|
+
// and would otherwise be matched first and removed.
|
|
82636
|
+
const displayValueInTrigger = this.input.querySelector('[slot="displayValue"]:not(slot)');
|
|
81930
82637
|
|
|
81931
82638
|
if (displayValueInTrigger) {
|
|
81932
82639
|
displayValueInTrigger.remove();
|
|
@@ -81954,19 +82661,19 @@ class AuroCombobox extends AuroElement$3 {
|
|
|
81954
82661
|
* Writes nextValue to the trigger input and the bib input when their current
|
|
81955
82662
|
* value differs, then re-asserts imask after Lit's update flushes.
|
|
81956
82663
|
* @param {string} nextValue - The value to write to both inputs.
|
|
81957
|
-
* @returns {Promise<void>
|
|
81958
|
-
*
|
|
82664
|
+
* @returns {Promise<void>} Resolves after both inputs flush and imask
|
|
82665
|
+
* re-asserts; resolves immediately when no sync is needed.
|
|
81959
82666
|
* @private
|
|
81960
82667
|
*/
|
|
81961
|
-
syncInputValuesAcrossTriggerAndBib(nextValue) {
|
|
82668
|
+
async syncInputValuesAcrossTriggerAndBib(nextValue) {
|
|
81962
82669
|
// Only set the flag when there's an actual write to suppress —
|
|
81963
82670
|
// syncValuesAndStates re-enters here during typing when both inputs
|
|
81964
82671
|
// already match, and a no-op flag flip would make the bib branch's
|
|
81965
82672
|
// bail eat legitimate user-input events.
|
|
81966
82673
|
const triggerNeedsSync = this.input.value !== nextValue;
|
|
81967
|
-
const bibNeedsSync = this.inputInBib.value !== nextValue;
|
|
82674
|
+
const bibNeedsSync = Boolean(this.inputInBib) && this.inputInBib.value !== nextValue;
|
|
81968
82675
|
if (!triggerNeedsSync && !bibNeedsSync) {
|
|
81969
|
-
return
|
|
82676
|
+
return;
|
|
81970
82677
|
}
|
|
81971
82678
|
|
|
81972
82679
|
this._syncingDisplayValue = true;
|
|
@@ -81980,16 +82687,21 @@ class AuroCombobox extends AuroElement$3 {
|
|
|
81980
82687
|
this.inputInBib.value = nextValue;
|
|
81981
82688
|
pending.push(this.inputInBib.updateComplete);
|
|
81982
82689
|
}
|
|
81983
|
-
|
|
82690
|
+
// finally — not a bare .then — so that an imask throw (see commit
|
|
82691
|
+
// d1857401c: imask can throw on credit-card format change) doesn't strand
|
|
82692
|
+
// _syncingDisplayValue=true and silently swallow every subsequent input.
|
|
82693
|
+
try {
|
|
82694
|
+
await Promise.all(pending);
|
|
81984
82695
|
// imask reasserts otherwise, and handleBlur reverts to its stale value.
|
|
81985
82696
|
if (triggerNeedsSync && this.input.maskInstance && typeof this.input.maskInstance.updateValue === 'function') {
|
|
81986
82697
|
this.input.maskInstance.updateValue();
|
|
81987
82698
|
}
|
|
81988
|
-
if (bibNeedsSync && this.inputInBib
|
|
82699
|
+
if (bibNeedsSync && this.inputInBib.maskInstance && typeof this.inputInBib.maskInstance.updateValue === 'function') {
|
|
81989
82700
|
this.inputInBib.maskInstance.updateValue();
|
|
81990
82701
|
}
|
|
82702
|
+
} finally {
|
|
81991
82703
|
this._syncingDisplayValue = false;
|
|
81992
|
-
}
|
|
82704
|
+
}
|
|
81993
82705
|
}
|
|
81994
82706
|
|
|
81995
82707
|
/**
|
|
@@ -82000,6 +82712,13 @@ class AuroCombobox extends AuroElement$3 {
|
|
|
82000
82712
|
handleMenuOptions() {
|
|
82001
82713
|
this.generateOptionsArray();
|
|
82002
82714
|
this.availableOptions = [];
|
|
82715
|
+
// Single source of truth for the menu's filter/highlight token per call.
|
|
82716
|
+
// syncValuesAndStates re-writes the same value on exact-match keystrokes —
|
|
82717
|
+
// Lit's hasChanged makes that a no-op — and the prior duplicate set inside
|
|
82718
|
+
// handleTriggerInputValueChange is gone.
|
|
82719
|
+
if (this.menu) {
|
|
82720
|
+
this.menu.matchWord = normalizeFilterValue(this.input.value);
|
|
82721
|
+
}
|
|
82003
82722
|
this.updateFilter();
|
|
82004
82723
|
|
|
82005
82724
|
// Set aria-setsize/aria-posinset on each visible option so screen readers
|
|
@@ -82011,11 +82730,8 @@ class AuroCombobox extends AuroElement$3 {
|
|
|
82011
82730
|
option.setAttribute('aria-posinset', index + 1);
|
|
82012
82731
|
});
|
|
82013
82732
|
|
|
82014
|
-
if (this.value && this.
|
|
82015
|
-
|
|
82016
|
-
this.setMenuValue(this.value);
|
|
82017
|
-
}
|
|
82018
|
-
|
|
82733
|
+
if (this.input.value && this.menu.options && this.menu.options.some((opt) => opt.value === this.input.value)) {
|
|
82734
|
+
this.setMenuValue(this.input.value);
|
|
82019
82735
|
this.syncValuesAndStates();
|
|
82020
82736
|
}
|
|
82021
82737
|
|
|
@@ -82094,18 +82810,6 @@ class AuroCombobox extends AuroElement$3 {
|
|
|
82094
82810
|
this.dropdownOpen = ev.detail.expanded;
|
|
82095
82811
|
this.updateMenuShapeSize();
|
|
82096
82812
|
|
|
82097
|
-
// Defer aria-expanded "true" so VoiceOver finishes character echo
|
|
82098
|
-
// before announcing "expanded". Set "false" immediately on close.
|
|
82099
|
-
clearTimeout(this._expandedTimeout);
|
|
82100
|
-
if (this.dropdownOpen) {
|
|
82101
|
-
const expandedDelay = 150;
|
|
82102
|
-
this._expandedTimeout = setTimeout(() => {
|
|
82103
|
-
this.triggerExpandedState = true;
|
|
82104
|
-
}, expandedDelay);
|
|
82105
|
-
} else {
|
|
82106
|
-
this.triggerExpandedState = false;
|
|
82107
|
-
}
|
|
82108
|
-
|
|
82109
82813
|
// Clear aria-activedescendant when dropdown closes
|
|
82110
82814
|
if (!this.dropdownOpen && this.input) {
|
|
82111
82815
|
this.input.setActiveDescendant(null);
|
|
@@ -82210,7 +82914,7 @@ class AuroCombobox extends AuroElement$3 {
|
|
|
82210
82914
|
this.dropdown.trigger.inert = false;
|
|
82211
82915
|
}
|
|
82212
82916
|
|
|
82213
|
-
|
|
82917
|
+
this._scheduleTimer(() => {
|
|
82214
82918
|
this.setInputFocus();
|
|
82215
82919
|
}, 0);
|
|
82216
82920
|
});
|
|
@@ -82354,7 +83058,7 @@ class AuroCombobox extends AuroElement$3 {
|
|
|
82354
83058
|
|
|
82355
83059
|
// racing condition on custom-combobox with custom-menu
|
|
82356
83060
|
if (!this.menu) {
|
|
82357
|
-
|
|
83061
|
+
this._scheduleTimer(() => {
|
|
82358
83062
|
this.configureMenu();
|
|
82359
83063
|
}, 0);
|
|
82360
83064
|
return;
|
|
@@ -82409,9 +83113,7 @@ class AuroCombobox extends AuroElement$3 {
|
|
|
82409
83113
|
// Hide dropdown on selection (except during slot changes)
|
|
82410
83114
|
if (evt.detail && evt.detail.source !== 'slotchange') {
|
|
82411
83115
|
// do not close while typing in suggestion mode with no value selected, to allow freeform input
|
|
82412
|
-
|
|
82413
|
-
this.hideBib();
|
|
82414
|
-
}
|
|
83116
|
+
this.hideBib();
|
|
82415
83117
|
|
|
82416
83118
|
// Move focus to the clear button when the user makes a selection.
|
|
82417
83119
|
if (!isEcho && this.menu.value !== undefined) {
|
|
@@ -82425,7 +83127,7 @@ class AuroCombobox extends AuroElement$3 {
|
|
|
82425
83127
|
const selectedValue = this.menu.value;
|
|
82426
83128
|
if (selectedValue) {
|
|
82427
83129
|
const announcementDelay = 300;
|
|
82428
|
-
|
|
83130
|
+
this._scheduleTimer(() => {
|
|
82429
83131
|
announceToScreenReader$1(this._getAnnouncementRoot(), `${selectedValue}, selected`);
|
|
82430
83132
|
}, announcementDelay);
|
|
82431
83133
|
}
|
|
@@ -82437,10 +83139,6 @@ class AuroCombobox extends AuroElement$3 {
|
|
|
82437
83139
|
// only — fresh user selections take the existing hideBib path.
|
|
82438
83140
|
if (isEcho && this.menu.optionSelected) {
|
|
82439
83141
|
this._programmaticFilterRefresh = true;
|
|
82440
|
-
this.handleMenuOptions();
|
|
82441
|
-
setTimeout(() => {
|
|
82442
|
-
this._programmaticFilterRefresh = false;
|
|
82443
|
-
}, 0);
|
|
82444
83142
|
}
|
|
82445
83143
|
});
|
|
82446
83144
|
|
|
@@ -82453,6 +83151,14 @@ class AuroCombobox extends AuroElement$3 {
|
|
|
82453
83151
|
// stale option. Safe from re-entrancy because any resulting
|
|
82454
83152
|
// input.value changes dispatch isProgrammatic events.
|
|
82455
83153
|
this.menu.addEventListener('auroMenu-selectValueFailure', () => {
|
|
83154
|
+
// Announce the rejection BEFORE we clear `this.value` so the live
|
|
83155
|
+
// region carries the attempted value — without this the bib closes
|
|
83156
|
+
// silently and screen-reader users get no signal that their request
|
|
83157
|
+
// (e.g. a direct setMenuValue() call) was dropped.
|
|
83158
|
+
const attemptedValue = this.value;
|
|
83159
|
+
if (attemptedValue) {
|
|
83160
|
+
announceToScreenReader$1(this._getAnnouncementRoot(), `No matching option for ${attemptedValue}`);
|
|
83161
|
+
}
|
|
82456
83162
|
this.value = undefined;
|
|
82457
83163
|
this.optionSelected = undefined;
|
|
82458
83164
|
});
|
|
@@ -82464,10 +83170,13 @@ class AuroCombobox extends AuroElement$3 {
|
|
|
82464
83170
|
this.input.setActiveDescendant(this.optionActive);
|
|
82465
83171
|
}
|
|
82466
83172
|
|
|
82467
|
-
//
|
|
82468
|
-
//
|
|
82469
|
-
//
|
|
82470
|
-
|
|
83173
|
+
// In fullscreen mode the menu sits inside a nested <dialog> shadow root,
|
|
83174
|
+
// and aria-activedescendant references across that boundary are lost —
|
|
83175
|
+
// VoiceOver/NVDA don't read the active option natively, so we mirror it
|
|
83176
|
+
// into the polite live region. In popover mode aria-activedescendant on
|
|
83177
|
+
// the trigger input is read natively; double-announcing would flood the
|
|
83178
|
+
// queue on arrow-key repeat.
|
|
83179
|
+
if (this.optionActive && this.dropdown.isBibFullscreen) {
|
|
82471
83180
|
const optionText = this.optionActive.textContent.trim();
|
|
82472
83181
|
const selectedState = this.optionActive.hasAttribute('selected') ? ', selected' : ', not selected';
|
|
82473
83182
|
const optionIndex = this.availableOptions.indexOf(this.optionActive) + 1;
|
|
@@ -82500,7 +83209,12 @@ class AuroCombobox extends AuroElement$3 {
|
|
|
82500
83209
|
* Validate every time we remove focus from the combo box.
|
|
82501
83210
|
*/
|
|
82502
83211
|
this.addEventListener('focusout', () => {
|
|
82503
|
-
|
|
83212
|
+
// Skip while the dropdown is open — focus transits out briefly on
|
|
83213
|
+
// mousedown of a menu option (popover top-layer breaks :focus-within),
|
|
83214
|
+
// and validating against the pre-selection value flashes a stale error
|
|
83215
|
+
// between mousedown and mouseup. The next focusout fires after the
|
|
83216
|
+
// dropdown closes and validates against the post-selection value.
|
|
83217
|
+
if (!this.componentHasFocus && !this._inFullscreenTransition && !this.dropdownOpen) {
|
|
82504
83218
|
this.validate();
|
|
82505
83219
|
}
|
|
82506
83220
|
});
|
|
@@ -82563,49 +83277,40 @@ class AuroCombobox extends AuroElement$3 {
|
|
|
82563
83277
|
if (this._syncingDisplayValue) {
|
|
82564
83278
|
return;
|
|
82565
83279
|
}
|
|
82566
|
-
this._syncingBibValue = true;
|
|
82567
|
-
this.input.value = this.inputInBib.value;
|
|
82568
|
-
this.input.updateComplete.then(() => {
|
|
82569
|
-
this._syncingBibValue = false;
|
|
82570
|
-
});
|
|
82571
83280
|
|
|
82572
|
-
//
|
|
82573
|
-
|
|
82574
|
-
|
|
82575
|
-
|
|
82576
|
-
|
|
82577
|
-
|
|
82578
|
-
|
|
82579
|
-
|
|
82580
|
-
|
|
83281
|
+
// Filtering runs via re-entrance: writing this.input.value below
|
|
83282
|
+
// dispatches an 'input' event that the trigger's listener routes to
|
|
83283
|
+
// handleTriggerInputValueChange, which refreshes the menu filter.
|
|
83284
|
+
if (this.input.value !== this.inputInBib.value) {
|
|
83285
|
+
this._syncingBibValue = true;
|
|
83286
|
+
this.input.value = this.inputInBib.value;
|
|
83287
|
+
this.input.updateComplete.then(() => {
|
|
83288
|
+
this._syncingBibValue = false;
|
|
83289
|
+
});
|
|
82581
83290
|
}
|
|
82582
83291
|
|
|
82583
|
-
this.handleMenuOptions();
|
|
82584
83292
|
this.dispatchEvent(new CustomEvent('inputValue', { detail: { value: this.inputValue } }));
|
|
82585
|
-
|
|
83293
|
+
} else if (event.target === this.input) {
|
|
83294
|
+
|
|
83295
|
+
// Also sync the native input immediately so keystrokes arriving
|
|
83296
|
+
// before Lit's async update cycle (e.g. rapid Backspaces during a
|
|
83297
|
+
// fullscreen transition) operate on the correct content.
|
|
83298
|
+
// Skip the next programmatic input event to prevent the patched setter
|
|
83299
|
+
// from re-entering handleInputValueChange via the bib path.
|
|
83300
|
+
const bibNativeInput = this.inputInBib.inputElement;
|
|
83301
|
+
if (bibNativeInput && bibNativeInput.value !== this.input.value) {
|
|
83302
|
+
this.inputInBib.skipNextProgrammaticInputEvent = true;
|
|
83303
|
+
bibNativeInput.value = this.input.value || '';
|
|
83304
|
+
}
|
|
82586
83305
|
}
|
|
82587
83306
|
|
|
83307
|
+
this.value = this.input.value;
|
|
83308
|
+
|
|
82588
83309
|
// Ignore re-entrant input events caused by programmatic value sets.
|
|
82589
83310
|
if (this._syncingBibValue || this._syncingDisplayValue) {
|
|
82590
83311
|
return;
|
|
82591
83312
|
}
|
|
82592
83313
|
|
|
82593
|
-
this.inputInBib.value = this.input.value;
|
|
82594
|
-
|
|
82595
|
-
// Also sync the native input immediately so keystrokes arriving
|
|
82596
|
-
// before Lit's async update cycle (e.g. rapid Backspaces during a
|
|
82597
|
-
// fullscreen transition) operate on the correct content.
|
|
82598
|
-
// Skip the next programmatic input event to prevent the patched setter
|
|
82599
|
-
// from re-entering handleInputValueChange via the bib path.
|
|
82600
|
-
const bibNativeInput = this.inputInBib.inputElement;
|
|
82601
|
-
if (bibNativeInput && bibNativeInput.value !== this.input.value) {
|
|
82602
|
-
this.inputInBib.skipNextProgrammaticInputEvent = true;
|
|
82603
|
-
bibNativeInput.value = this.input.value || '';
|
|
82604
|
-
}
|
|
82605
|
-
|
|
82606
|
-
this.menu.matchWord = normalizeFilterValue(this.input.value);
|
|
82607
|
-
this.optionActive = null;
|
|
82608
|
-
|
|
82609
83314
|
if (this.behavior === 'suggestion') {
|
|
82610
83315
|
this.value = this.input.value;
|
|
82611
83316
|
}
|
|
@@ -82613,7 +83318,6 @@ class AuroCombobox extends AuroElement$3 {
|
|
|
82613
83318
|
if (!this.input.value && !this._clearing) {
|
|
82614
83319
|
this.clear();
|
|
82615
83320
|
}
|
|
82616
|
-
this.handleMenuOptions();
|
|
82617
83321
|
|
|
82618
83322
|
// Validate only if the value was set programmatically (not during user
|
|
82619
83323
|
// interaction). In fullscreen dialog mode, componentHasFocus returns false
|
|
@@ -82623,34 +83327,44 @@ class AuroCombobox extends AuroElement$3 {
|
|
|
82623
83327
|
this.validate();
|
|
82624
83328
|
}
|
|
82625
83329
|
|
|
82626
|
-
|
|
82627
|
-
|
|
82628
|
-
|
|
82629
|
-
|
|
82630
|
-
|
|
82631
|
-
|
|
82632
|
-
|
|
82633
|
-
|
|
82634
|
-
|
|
83330
|
+
this.dispatchEvent(new CustomEvent('inputValue', { detail: { value: this.inputValue } }));
|
|
83331
|
+
}
|
|
83332
|
+
|
|
83333
|
+
/**
|
|
83334
|
+
* Handles input value changes originating from the trigger input.
|
|
83335
|
+
* Refreshes menu options and filtering, delegates to handleInputValueChange
|
|
83336
|
+
* for value synchronization, and manages fullscreen bib focus.
|
|
83337
|
+
* @private
|
|
83338
|
+
* @param {Event} event - The input event from the trigger input element.
|
|
83339
|
+
* @returns {void}
|
|
83340
|
+
*/
|
|
83341
|
+
handleTriggerInputValueChange(event) {
|
|
83342
|
+
// 'input' fires for every user-initiated value change — typing, paste,
|
|
83343
|
+
// IME composition end, dead-key composition, drag-drop. Flip _userTyped
|
|
83344
|
+
// here so updated('availableOptions') auto-opens the bib for sources
|
|
83345
|
+
// that keydown alone misses: paste fires no keydown, IME uses
|
|
83346
|
+
// key='Process', and dead keys produce multi-char keys (all bypass the
|
|
83347
|
+
// prior keydown.key.length===1 gate). Skip programmatic syncs.
|
|
83348
|
+
if (!this._syncingDisplayValue && !this._syncingBibValue && !this._programmaticFilterRefresh) {
|
|
83349
|
+
this._userTyped = true;
|
|
82635
83350
|
}
|
|
82636
83351
|
|
|
82637
|
-
|
|
82638
|
-
|
|
82639
|
-
|
|
82640
|
-
|
|
82641
|
-
|
|
82642
|
-
// dialog opens — the user then has to tap the input again to resume
|
|
82643
|
-
// typing.
|
|
82644
|
-
if (this.dropdown.isBibFullscreen && this.input.value && this.input.value.length > 0) {
|
|
82645
|
-
if (!this.dropdown.isPopoverVisible) {
|
|
82646
|
-
this.showBib();
|
|
82647
|
-
}
|
|
82648
|
-
if (this.dropdown.isPopoverVisible) {
|
|
82649
|
-
this.setInputFocus();
|
|
82650
|
-
}
|
|
83352
|
+
this.handleMenuOptions();
|
|
83353
|
+
this.optionActive = null;
|
|
83354
|
+
|
|
83355
|
+
if (this.value === this.input.value) {
|
|
83356
|
+
return;
|
|
82651
83357
|
}
|
|
82652
83358
|
|
|
82653
|
-
this.
|
|
83359
|
+
this.handleInputValueChange(event);
|
|
83360
|
+
|
|
83361
|
+
if (this.dropdown.isBibFullscreen && this.input.value && this.input.value.length > 0 && this.dropdown.isPopoverVisible) {
|
|
83362
|
+
this.setInputFocus();
|
|
83363
|
+
}
|
|
83364
|
+
|
|
83365
|
+
if (this._programmaticFilterRefresh) {
|
|
83366
|
+
this._programmaticFilterRefresh = false;
|
|
83367
|
+
}
|
|
82654
83368
|
}
|
|
82655
83369
|
|
|
82656
83370
|
/**
|
|
@@ -82718,6 +83432,11 @@ class AuroCombobox extends AuroElement$3 {
|
|
|
82718
83432
|
disconnectedCallback() {
|
|
82719
83433
|
super.disconnectedCallback();
|
|
82720
83434
|
this._inFullscreenTransition = false;
|
|
83435
|
+
// Cancel any outstanding timers so detached callbacks don't fire on
|
|
83436
|
+
// disposed DOM — most are no-ops, but configureMenu's racing-condition
|
|
83437
|
+
// retry would otherwise keep rescheduling itself indefinitely.
|
|
83438
|
+
this._pendingTimers.forEach((id) => clearTimeout(id));
|
|
83439
|
+
this._pendingTimers.clear();
|
|
82721
83440
|
}
|
|
82722
83441
|
|
|
82723
83442
|
firstUpdated() {
|
|
@@ -82759,7 +83478,7 @@ class AuroCombobox extends AuroElement$3 {
|
|
|
82759
83478
|
this.menu.value = value;
|
|
82760
83479
|
// Backup clear: if menu.value === menu.optionSelected.value already, the
|
|
82761
83480
|
// listener won't fire and the flag would swallow the next user click.
|
|
82762
|
-
|
|
83481
|
+
this._scheduleTimer(() => {
|
|
82763
83482
|
this._pendingMenuValueSync = false;
|
|
82764
83483
|
}, 0);
|
|
82765
83484
|
}
|
|
@@ -82794,6 +83513,17 @@ class AuroCombobox extends AuroElement$3 {
|
|
|
82794
83513
|
this.optionSelected = undefined;
|
|
82795
83514
|
this.value = undefined;
|
|
82796
83515
|
|
|
83516
|
+
// Clear the appended displayValue clone in the trigger if present.
|
|
83517
|
+
// :not(slot) excludes the template's <slot name="displayValue"
|
|
83518
|
+
// slot="displayValue"> forwarder (line 1816), which also has
|
|
83519
|
+
// slot="displayValue" and would otherwise be matched first and removed,
|
|
83520
|
+
// permanently breaking the consumer-provided displayValue slot.
|
|
83521
|
+
const displayValueInTrigger = this.input.querySelector('[slot="displayValue"]:not(slot)');
|
|
83522
|
+
|
|
83523
|
+
if (displayValueInTrigger) {
|
|
83524
|
+
displayValueInTrigger.remove();
|
|
83525
|
+
}
|
|
83526
|
+
|
|
82797
83527
|
if (this.input.value) {
|
|
82798
83528
|
this.input.clear();
|
|
82799
83529
|
}
|
|
@@ -82817,56 +83547,50 @@ class AuroCombobox extends AuroElement$3 {
|
|
|
82817
83547
|
}
|
|
82818
83548
|
|
|
82819
83549
|
updated(changedProperties) {
|
|
82820
|
-
// After the component is ready,
|
|
83550
|
+
// After the component is ready, propagate direct changes down to child components.
|
|
82821
83551
|
if (changedProperties.has('value')) {
|
|
82822
|
-
|
|
82823
|
-
|
|
82824
|
-
|
|
82825
|
-
|
|
83552
|
+
// Only flag programmatic refreshes — user-typed value changes must not
|
|
83553
|
+
// suppress the availableOptions branch's showBib(). Firefox batches
|
|
83554
|
+
// 'value' and 'availableOptions' into the same updated() call, so
|
|
83555
|
+
// setting the flag unconditionally here masks the user-typed open path.
|
|
83556
|
+
if (!this._userTyped) {
|
|
83557
|
+
this._programmaticFilterRefresh = true;
|
|
82826
83558
|
}
|
|
82827
83559
|
|
|
82828
|
-
if (this.
|
|
82829
|
-
|
|
82830
|
-
|
|
83560
|
+
if (this.input.value !== this.value) {
|
|
83561
|
+
// Clear menu.value AND menu.optionSelected together. Clearing only
|
|
83562
|
+
// menu.value leaves the previously-selected option element pinned
|
|
83563
|
+
// as menu.optionSelected; a later auroMenu-selectedOption event
|
|
83564
|
+
// would then write its stale .value back into combobox.value
|
|
83565
|
+
// (e.g. Tab-after-Backspace re-selecting the prior option).
|
|
83566
|
+
if (this.menu.value || this.menu.optionSelected) {
|
|
83567
|
+
this.menu.clearSelection();
|
|
83568
|
+
}
|
|
82831
83569
|
|
|
82832
|
-
|
|
82833
|
-
|
|
82834
|
-
|
|
82835
|
-
|
|
82836
|
-
|
|
82837
|
-
|
|
82838
|
-
|
|
82839
|
-
|
|
82840
|
-
|
|
82841
|
-
|
|
82842
|
-
|
|
82843
|
-
|
|
82844
|
-
|
|
82845
|
-
|
|
82846
|
-
|
|
82847
|
-
|
|
82848
|
-
|
|
82849
|
-
|
|
82850
|
-
const syncPromise = this.syncInputValuesAcrossTriggerAndBib(this.value || '');
|
|
82851
|
-
if (syncPromise) {
|
|
82852
|
-
syncPromise.then(() => {
|
|
82853
|
-
this._programmaticFilterRefresh = true;
|
|
82854
|
-
this.handleMenuOptions();
|
|
82855
|
-
setTimeout(() => {
|
|
82856
|
-
this._programmaticFilterRefresh = false;
|
|
82857
|
-
}, 0);
|
|
82858
|
-
});
|
|
82859
|
-
}
|
|
83570
|
+
if (!this.persistInput) {
|
|
83571
|
+
this.syncInputValuesAcrossTriggerAndBib(this.value || '');
|
|
83572
|
+
}
|
|
83573
|
+
|
|
83574
|
+
// Programmatic value with no matching option: updateFilter will close
|
|
83575
|
+
// the bib silently (see line 648 — no noMatchOption + 0 results
|
|
83576
|
+
// hides). Announce so screen-reader users hear the request was
|
|
83577
|
+
// dropped. Gated on `input.value !== this.value` so this never fires
|
|
83578
|
+
// for user typing — that path always reconciles input.value to
|
|
83579
|
+
// this.value before updated() runs.
|
|
83580
|
+
if (
|
|
83581
|
+
this.value &&
|
|
83582
|
+
this.menu &&
|
|
83583
|
+
this.menu.options &&
|
|
83584
|
+
this.menu.options.length > 0 &&
|
|
83585
|
+
!this.menu.options.some((opt) => opt.value === this.value)
|
|
83586
|
+
) {
|
|
83587
|
+
announceToScreenReader$1(this._getAnnouncementRoot(), `No matching option for ${this.value}`);
|
|
82860
83588
|
}
|
|
82861
83589
|
}
|
|
83590
|
+
|
|
82862
83591
|
if (!this.value) {
|
|
82863
83592
|
this.clear();
|
|
82864
83593
|
}
|
|
82865
|
-
if (this.value && !this.componentHasFocus) {
|
|
82866
|
-
// If the value got set programmatically make sure we hide the bib
|
|
82867
|
-
// when input is not taking the focus (input can be in dropdown.trigger or in bibtemplate)
|
|
82868
|
-
this.hideBib();
|
|
82869
|
-
}
|
|
82870
83594
|
|
|
82871
83595
|
// Sync the input and match word, but don't directly set menu.value again
|
|
82872
83596
|
if (this.menu) {
|
|
@@ -82879,7 +83603,7 @@ class AuroCombobox extends AuroElement$3 {
|
|
|
82879
83603
|
composed: true,
|
|
82880
83604
|
detail: {
|
|
82881
83605
|
optionSelected: this.menu.optionSelected,
|
|
82882
|
-
value: this.
|
|
83606
|
+
value: this.value
|
|
82883
83607
|
}
|
|
82884
83608
|
}));
|
|
82885
83609
|
|
|
@@ -82902,16 +83626,30 @@ class AuroCombobox extends AuroElement$3 {
|
|
|
82902
83626
|
// from a programmatic filter refresh after a value swap — the user
|
|
82903
83627
|
// didn't interact, so we shouldn't auto-open the bib (especially for
|
|
82904
83628
|
// the no-match path where the existing condition unconditionally fires).
|
|
82905
|
-
if (this._programmaticFilterRefresh) {
|
|
82906
|
-
|
|
82907
|
-
|
|
82908
|
-
|
|
83629
|
+
if ((this.menu && !this._programmaticFilterRefresh)) {
|
|
83630
|
+
if (
|
|
83631
|
+
this.availableOptions.length > 0 ||
|
|
83632
|
+
this.menu.loading ||
|
|
83633
|
+
this.noMatchOption
|
|
83634
|
+
) {
|
|
83635
|
+
if (this._userTyped) {
|
|
83636
|
+
if (!this.dropdownOpen) {
|
|
83637
|
+
this.showBib();
|
|
83638
|
+
}
|
|
83639
|
+
this._userTyped = false;
|
|
83640
|
+
}
|
|
83641
|
+
}
|
|
83642
|
+
|
|
82909
83643
|
if (!this.availableOptions.includes(this.menu.optionActive)) {
|
|
82910
83644
|
this.activateFirstEnabledAvailableOption();
|
|
82911
83645
|
}
|
|
82912
|
-
} else if (this.dropdown
|
|
83646
|
+
} else if (!this.dropdown.isBibFullscreen) {
|
|
82913
83647
|
this.hideBib();
|
|
82914
83648
|
}
|
|
83649
|
+
|
|
83650
|
+
if (this._programmaticFilterRefresh) {
|
|
83651
|
+
this._programmaticFilterRefresh = false;
|
|
83652
|
+
}
|
|
82915
83653
|
}
|
|
82916
83654
|
|
|
82917
83655
|
if (changedProperties.has('error')) {
|
|
@@ -83053,10 +83791,10 @@ class AuroCombobox extends AuroElement$3 {
|
|
|
83053
83791
|
shape="${this.shape}"
|
|
83054
83792
|
size="${this.size}">
|
|
83055
83793
|
<${this.inputTag}
|
|
83056
|
-
@input="${this.
|
|
83794
|
+
@input="${this.handleTriggerInputValueChange}"
|
|
83057
83795
|
appearance="${this.onDark ? 'inverse' : this.appearance}"
|
|
83058
83796
|
.a11yActivedescendant="${this.dropdownOpen && this.optionActive ? this.optionActive.id : undefined}"
|
|
83059
|
-
.a11yExpanded="${this.
|
|
83797
|
+
.a11yExpanded="${this.dropdownOpen}"
|
|
83060
83798
|
.a11yControls="${this.dropdownId}"
|
|
83061
83799
|
.autocomplete="${this.autocomplete}"
|
|
83062
83800
|
.inputmode="${this.inputmode}"
|
|
@@ -85304,15 +86042,17 @@ class AuroFormValidation {
|
|
|
85304
86042
|
);
|
|
85305
86043
|
}
|
|
85306
86044
|
|
|
85307
|
-
|
|
85308
|
-
|
|
85309
|
-
|
|
86045
|
+
const isCombobox = this.runtimeUtils.elementMatch(elem, 'auro-combobox');
|
|
86046
|
+
|
|
86047
|
+
// If there is a second input in the elem and that value is undefined or an empty string set hasValue to false.
|
|
86048
|
+
// Skip for combobox: its second auro-input is the fullscreen-bib mirror of the same value, not an independent
|
|
86049
|
+
// field (datepicker is the intended consumer — start/end are independently required).
|
|
86050
|
+
if (this.auroInputElements?.length === 2 && !isCombobox) {
|
|
86051
|
+
if (!this.auroInputElements[1].value || this.auroInputElements[1].value.length === 0) {
|
|
85310
86052
|
hasValue = false;
|
|
85311
86053
|
}
|
|
85312
86054
|
}
|
|
85313
86055
|
|
|
85314
|
-
const isCombobox = this.runtimeUtils.elementMatch(elem, 'auro-combobox');
|
|
85315
|
-
|
|
85316
86056
|
if (isCombobox) {
|
|
85317
86057
|
|
|
85318
86058
|
if (!elem.persistInput || elem.behavior === "filter") {
|
|
@@ -85704,19 +86444,28 @@ const selectKeyboardStrategy = {
|
|
|
85704
86444
|
},
|
|
85705
86445
|
|
|
85706
86446
|
End(component, evt, ctx) {
|
|
85707
|
-
if (!ctx.isExpanded) {
|
|
85708
|
-
return;
|
|
85709
|
-
}
|
|
85710
86447
|
evt.preventDefault();
|
|
85711
86448
|
evt.stopPropagation();
|
|
85712
86449
|
// `pop()` is safe here: getEnabledOptions returns a fresh filtered array.
|
|
85713
86450
|
const lastOption = getEnabledOptions(component.menu).pop();
|
|
85714
|
-
if (lastOption) {
|
|
85715
|
-
|
|
86451
|
+
if (!lastOption) {
|
|
86452
|
+
return;
|
|
86453
|
+
}
|
|
86454
|
+
// Pre-stash before show() so the auroDropdown-toggled handler's
|
|
86455
|
+
// `!optionActive` guard short-circuits the firstActive/selected fallback —
|
|
86456
|
+
// otherwise show() synchronously fires the handler and writes
|
|
86457
|
+
// aria-activedescendant once before we overwrite it.
|
|
86458
|
+
component.menu.updateActiveOption(lastOption);
|
|
86459
|
+
if (!ctx.isExpanded) {
|
|
86460
|
+
component.dropdown.show();
|
|
85716
86461
|
}
|
|
85717
86462
|
},
|
|
85718
86463
|
|
|
85719
86464
|
Enter(component, evt, ctx) {
|
|
86465
|
+
// Prevent the keypress from bubbling to parent containers (e.g., forms)
|
|
86466
|
+
// which could interpret Enter as a submit. Matches APG select-only combobox
|
|
86467
|
+
// and native <select> behavior: Enter opens the listbox when closed, selects
|
|
86468
|
+
// the active option when open — it does not submit a parent form.
|
|
85720
86469
|
evt.preventDefault();
|
|
85721
86470
|
evt.stopPropagation();
|
|
85722
86471
|
if (!ctx.isExpanded) {
|
|
@@ -85727,14 +86476,16 @@ const selectKeyboardStrategy = {
|
|
|
85727
86476
|
},
|
|
85728
86477
|
|
|
85729
86478
|
Home(component, evt, ctx) {
|
|
85730
|
-
if (!ctx.isExpanded) {
|
|
85731
|
-
return;
|
|
85732
|
-
}
|
|
85733
86479
|
evt.preventDefault();
|
|
85734
86480
|
evt.stopPropagation();
|
|
85735
86481
|
const [firstOption] = getEnabledOptions(component.menu);
|
|
85736
|
-
if (firstOption) {
|
|
85737
|
-
|
|
86482
|
+
if (!firstOption) {
|
|
86483
|
+
return;
|
|
86484
|
+
}
|
|
86485
|
+
// See End() for why this must run before show().
|
|
86486
|
+
component.menu.updateActiveOption(firstOption);
|
|
86487
|
+
if (!ctx.isExpanded) {
|
|
86488
|
+
component.dropdown.show();
|
|
85738
86489
|
}
|
|
85739
86490
|
},
|
|
85740
86491
|
|
|
@@ -89682,7 +90433,7 @@ let AuroHelpText$1 = class AuroHelpText extends i$3 {
|
|
|
89682
90433
|
}
|
|
89683
90434
|
};
|
|
89684
90435
|
|
|
89685
|
-
var formkitVersion$1 = '
|
|
90436
|
+
var formkitVersion$1 = '202607010104';
|
|
89686
90437
|
|
|
89687
90438
|
class AuroElement extends i$3 {
|
|
89688
90439
|
static get properties() {
|
|
@@ -90954,6 +91705,7 @@ class AuroDropdown extends AuroElement {
|
|
|
90954
91705
|
role="${o$4(this.triggerContentFocusable ? undefined : this.a11yRole)}"
|
|
90955
91706
|
aria-expanded="${o$4(this.a11yRole === 'button' || this.triggerContentFocusable ? undefined : this.isPopoverVisible)}"
|
|
90956
91707
|
aria-controls="${o$4(this.a11yRole === 'button' || this.triggerContentFocusable ? undefined : this.dropdownId)}"
|
|
91708
|
+
aria-haspopup="${o$4(this.a11yRole === 'combobox' && !this.triggerContentFocusable ? 'listbox' : undefined)}"
|
|
90957
91709
|
aria-labelledby="${o$4(this.triggerContentFocusable ? undefined : 'triggerLabel')}"
|
|
90958
91710
|
aria-disabled="${o$4(this.disabled ? 'true' : undefined)}"
|
|
90959
91711
|
@focusin="${this.handleFocusin}"
|
|
@@ -91080,7 +91832,7 @@ class AuroDropdown extends AuroElement {
|
|
|
91080
91832
|
|
|
91081
91833
|
var colorCss$1 = i$6`#headerContainer{box-shadow:var(--ds-auro-dropdownbib-header-boxshadow-color)}#footerContainer{background-color:var(--ds-auro-dropdownbib-footer-container-color)}`;
|
|
91082
91834
|
|
|
91083
|
-
var styleCss$2 = i$6`#bibTemplate{display:flex;overflow:hidden;height:100%;max-height:100%;flex-direction:column}#headerContainer{display:flex;flex-direction:column;padding:var(--ds-size-200, 1rem);padding-top:var(--ds-size-400, 2rem);padding-bottom:0}#headerContainer .titleRow{display:flex;flex-direction:row;justify-content:space-between;gap:var(--ds-size-100, 0.5rem)}#headerContainer .header{max-width:calc(100vw - var(--ds-size-900, 4.5rem));padding-top:var(--ds-size-200, 1rem)}#headerContainer .subheader{width:100%}#closeButton [auro-icon]{--ds-auro-icon-size: var(--ds-size-500, 2.5rem)}#bodyContainer{position:relative;overflow:auto;flex:1
|
|
91835
|
+
var styleCss$2 = i$6`#bibTemplate{display:flex;overflow:hidden;height:100%;max-height:100%;flex-direction:column}#headerContainer{display:flex;flex-direction:column;padding:var(--ds-size-200, 1rem);padding-top:var(--ds-size-400, 2rem);padding-bottom:0}#headerContainer .titleRow{display:flex;flex-direction:row;justify-content:space-between;gap:var(--ds-size-100, 0.5rem)}#headerContainer .header{max-width:calc(100vw - var(--ds-size-900, 4.5rem));padding-top:var(--ds-size-200, 1rem)}#headerContainer .subheader{width:100%}#closeButton [auro-icon]{--ds-auro-icon-size: var(--ds-size-500, 2.5rem)}#bodyContainer{position:relative;overflow:auto;flex:1}:host([isfullscreen]) #bibTemplate{max-height:100dvh}:host([isfullscreen]) #bodyContainer{margin-top:var(--ds-size-100, 0.5rem)}#footerContainer{padding:var(--ds-size-200, 1rem)}`;
|
|
91084
91836
|
|
|
91085
91837
|
var tokenCss = i$6`:host{--ds-auro-dropdownbib-header-boxshadow-color: var(--ds-elevation-200, 0px 0px 10px rgba(0, 0, 0, 0.15));--ds-auro-dropdownbib-footer-container-color: var(--ds-basic-color-surface-default, #ffffff)}`;
|
|
91086
91838
|
|
|
@@ -91703,7 +92455,7 @@ class AuroHelpText extends i$3 {
|
|
|
91703
92455
|
}
|
|
91704
92456
|
}
|
|
91705
92457
|
|
|
91706
|
-
var formkitVersion = '
|
|
92458
|
+
var formkitVersion = '202607010104';
|
|
91707
92459
|
|
|
91708
92460
|
var styleCss = i$6`.util_displayInline{display:inline}.util_displayInlineBlock{display:inline-block}.util_displayBlock{display:block}.util_displayFlex{display:flex}.util_displayHidden{display:none}.util_displayHiddenVisually{position:absolute;overflow:hidden;clip:rect(1px, 1px, 1px, 1px);width:1px;height:1px;padding:0;border:0}.body-default{font-size:var(--wcss-body-default-font-size, 1rem);font-weight:var(--wcss-body-default-weight, );line-height:var(--wcss-body-default-line-height, 1.5rem)}.body-default,.body-default-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-default-emphasized{font-size:var(--wcss-body-default-emphasized-font-size, 1rem);font-weight:var(--wcss-body-default-emphasized-weight, );line-height:var(--wcss-body-default-emphasized-line-height, 1.5rem)}.body-lg{font-size:var(--wcss-body-lg-font-size, 1.125rem);font-weight:var(--wcss-body-lg-weight, );line-height:var(--wcss-body-lg-line-height, 1.625rem)}.body-lg,.body-lg-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-lg-emphasized{font-size:var(--wcss-body-lg-emphasized-font-size, 1.125rem);font-weight:var(--wcss-body-lg-emphasized-weight, );line-height:var(--wcss-body-lg-emphasized-line-height, 1.625rem)}.body-sm{font-size:var(--wcss-body-sm-font-size, 0.875rem);font-weight:var(--wcss-body-sm-weight, );line-height:var(--wcss-body-sm-line-height, 1.25rem)}.body-sm,.body-sm-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-sm-emphasized{font-size:var(--wcss-body-sm-emphasized-font-size, 0.875rem);font-weight:var(--wcss-body-sm-emphasized-weight, );line-height:var(--wcss-body-sm-emphasized-line-height, 1.25rem)}.body-xs{font-size:var(--wcss-body-xs-font-size, 0.75rem);font-weight:var(--wcss-body-xs-weight, );line-height:var(--wcss-body-xs-line-height, 1rem)}.body-xs,.body-xs-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-xs-emphasized{font-size:var(--wcss-body-xs-emphasized-font-size, 0.75rem);font-weight:var(--wcss-body-xs-emphasized-weight, );line-height:var(--wcss-body-xs-emphasized-line-height, 1rem)}.body-2xs{font-size:var(--wcss-body-2xs-font-size, 0.625rem);font-weight:var(--wcss-body-2xs-weight, );line-height:var(--wcss-body-2xs-line-height, 0.875rem)}.body-2xs,.body-2xs-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-2xs-emphasized{font-size:var(--wcss-body-2xs-emphasized-font-size, 0.625rem);font-weight:var(--wcss-body-2xs-emphasized-weight, );line-height:var(--wcss-body-2xs-emphasized-line-height, 0.875rem)}.display-2xl{font-family:var(--wcss-display-2xl-family, "AS Circular"),var(--wcss-display-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-2xl-font-size, clamp(3.5rem, 6vw, 5.375rem));font-weight:var(--wcss-display-2xl-weight, 300);letter-spacing:var(--wcss-display-2xl-letter-spacing, 0);line-height:var(--wcss-display-2xl-line-height, 1.3)}.display-xl{font-family:var(--wcss-display-xl-family, "AS Circular"),var(--wcss-display-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-xl-font-size, clamp(3rem, 5.3333333333vw, 4.5rem));font-weight:var(--wcss-display-xl-weight, 300);letter-spacing:var(--wcss-display-xl-letter-spacing, 0);line-height:var(--wcss-display-xl-line-height, 1.3)}.display-lg{font-family:var(--wcss-display-lg-family, "AS Circular"),var(--wcss-display-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-lg-font-size, clamp(2.75rem, 4.6666666667vw, 4rem));font-weight:var(--wcss-display-lg-weight, 300);letter-spacing:var(--wcss-display-lg-letter-spacing, 0);line-height:var(--wcss-display-lg-line-height, 1.3)}.display-md{font-family:var(--wcss-display-md-family, "AS Circular"),var(--wcss-display-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-md-font-size, clamp(2.5rem, 4vw, 3.5rem));font-weight:var(--wcss-display-md-weight, 300);letter-spacing:var(--wcss-display-md-letter-spacing, 0);line-height:var(--wcss-display-md-line-height, 1.3)}.display-sm{font-family:var(--wcss-display-sm-family, "AS Circular"),var(--wcss-display-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-sm-font-size, clamp(2rem, 3.6666666667vw, 3rem));font-weight:var(--wcss-display-sm-weight, 300);letter-spacing:var(--wcss-display-sm-letter-spacing, 0);line-height:var(--wcss-display-sm-line-height, 1.3)}.display-xs{font-family:var(--wcss-display-xs-family, "AS Circular"),var(--wcss-display-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-xs-font-size, clamp(1.75rem, 3vw, 2.375rem));font-weight:var(--wcss-display-xs-weight, 300);letter-spacing:var(--wcss-display-xs-letter-spacing, 0);line-height:var(--wcss-display-xs-line-height, 1.3)}.heading-xl{font-family:var(--wcss-heading-xl-family, "AS Circular"),var(--wcss-heading-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-xl-font-size, clamp(2rem, 3vw, 2.5rem));font-weight:var(--wcss-heading-xl-weight, 300);letter-spacing:var(--wcss-heading-xl-letter-spacing, 0);line-height:var(--wcss-heading-xl-line-height, 1.3)}.heading-lg{font-family:var(--wcss-heading-lg-family, "AS Circular"),var(--wcss-heading-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-lg-font-size, clamp(1.75rem, 2.6666666667vw, 2.25rem));font-weight:var(--wcss-heading-lg-weight, 300);letter-spacing:var(--wcss-heading-lg-letter-spacing, 0);line-height:var(--wcss-heading-lg-line-height, 1.3)}.heading-md{font-family:var(--wcss-heading-md-family, "AS Circular"),var(--wcss-heading-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-md-font-size, clamp(1.625rem, 2.3333333333vw, 1.75rem));font-weight:var(--wcss-heading-md-weight, 300);letter-spacing:var(--wcss-heading-md-letter-spacing, 0);line-height:var(--wcss-heading-md-line-height, 1.3)}.heading-sm{font-family:var(--wcss-heading-sm-family, "AS Circular"),var(--wcss-heading-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-sm-font-size, clamp(1.375rem, 2vw, 1.5rem));font-weight:var(--wcss-heading-sm-weight, 300);letter-spacing:var(--wcss-heading-sm-letter-spacing, 0);line-height:var(--wcss-heading-sm-line-height, 1.3)}.heading-xs{font-family:var(--wcss-heading-xs-family, "AS Circular"),var(--wcss-heading-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-xs-font-size, clamp(1.25rem, 1.6666666667vw, 1.25rem));font-weight:var(--wcss-heading-xs-weight, 300);letter-spacing:var(--wcss-heading-xs-letter-spacing, 0);line-height:var(--wcss-heading-xs-line-height, 1.3)}.heading-2xs{font-family:var(--wcss-heading-2xs-family, "AS Circular"),var(--wcss-heading-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-2xs-font-size, clamp(1.125rem, 1.5vw, 1.125rem));font-weight:var(--wcss-heading-2xs-weight, 300);letter-spacing:var(--wcss-heading-2xs-letter-spacing, 0);line-height:var(--wcss-heading-2xs-line-height, 1.3)}.accent-2xl{font-family:var(--wcss-accent-2xl-family, "Good OT"),var(--wcss-accent-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-2xl-font-size, clamp(2rem, 3.1666666667vw, 2.375rem));font-weight:var(--wcss-accent-2xl-weight, 450);letter-spacing:var(--wcss-accent-2xl-letter-spacing, 0.05em);line-height:var(--wcss-accent-2xl-line-height, 1)}.accent-2xl,.accent-xl{text-transform:uppercase}.accent-xl{font-family:var(--wcss-accent-xl-family, "Good OT"),var(--wcss-accent-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-xl-font-size, clamp(1.625rem, 2.3333333333vw, 2rem));font-weight:var(--wcss-accent-xl-weight, 450);letter-spacing:var(--wcss-accent-xl-letter-spacing, 0.05em);line-height:var(--wcss-accent-xl-line-height, 1.3)}.accent-lg{font-family:var(--wcss-accent-lg-family, "Good OT"),var(--wcss-accent-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-lg-font-size, clamp(1.5rem, 2.1666666667vw, 1.75rem));font-weight:var(--wcss-accent-lg-weight, 450);letter-spacing:var(--wcss-accent-lg-letter-spacing, 0.05em);line-height:var(--wcss-accent-lg-line-height, 1.3)}.accent-lg,.accent-md{text-transform:uppercase}.accent-md{font-family:var(--wcss-accent-md-family, "Good OT"),var(--wcss-accent-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-md-font-size, clamp(1.375rem, 1.8333333333vw, 1.5rem));font-weight:var(--wcss-accent-md-weight, 500);letter-spacing:var(--wcss-accent-md-letter-spacing, 0.05em);line-height:var(--wcss-accent-md-line-height, 1.3)}.accent-sm{font-family:var(--wcss-accent-sm-family, "Good OT"),var(--wcss-accent-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-sm-font-size, clamp(1.125rem, 1.5vw, 1.25rem));font-weight:var(--wcss-accent-sm-weight, 500);letter-spacing:var(--wcss-accent-sm-letter-spacing, 0.05em);line-height:var(--wcss-accent-sm-line-height, 1.3)}.accent-sm,.accent-xs{text-transform:uppercase}.accent-xs{font-family:var(--wcss-accent-xs-family, "Good OT"),var(--wcss-accent-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-xs-font-size, clamp(1rem, 1.3333333333vw, 1rem));font-weight:var(--wcss-accent-xs-weight, 500);letter-spacing:var(--wcss-accent-xs-letter-spacing, 0.1em);line-height:var(--wcss-accent-xs-line-height, 1.3)}.accent-2xs{font-family:var(--wcss-accent-2xs-family, "Good OT"),var(--wcss-accent-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-2xs-font-size, clamp(0.875rem, 1.1666666667vw, 0.875rem));font-weight:var(--wcss-accent-2xs-weight, 450);letter-spacing:var(--wcss-accent-2xs-letter-spacing, 0.1em);line-height:var(--wcss-accent-2xs-line-height, 1.3);text-transform:uppercase}[auro-dropdown]{--ds-auro-dropdown-trigger-border-color: var(--ds-auro-select-border-color);--ds-auro-dropdown-trigger-background-color: var(--ds-auro-select-background-color);--ds-auro-dropdown-trigger-container-color: var(--ds-auro-select-background-color);--ds-auro-dropdown-trigger-outline-color: var(--ds-auro-select-outline-color)}:host{display:inline-block;text-align:left;vertical-align:top}:host([layout*=emphasized]) [auro-dropdown],:host([layout*=snowflake]) [auro-dropdown]{--ds-auro-select-border-color: transparent}:host([layout*=emphasized]) .mainContent,:host([layout*=snowflake]) .mainContent{text-align:center}.mainContent{position:relative;display:flex;overflow:hidden;flex:1;flex-direction:column;align-items:center;justify-content:center}.valueContainer [slot=displayValue]{display:none}.accents{display:flex;flex-direction:row;align-items:center;justify-content:center}::slotted([slot=typeIcon]){margin-right:var(--ds-size-100, 0.5rem)}.displayValue{display:block}.displayValue:not(.force){display:none}.displayValue:not(.force).hasContent:is(.withValue):not(.hasFocus){display:block}.triggerContent{display:flex;width:100%;align-items:center;justify-content:center}:host([layout*=emphasized]) .triggerContent{padding:0 var(--ds-size-100, 0.5rem) 0 var(--ds-size-300, 1.5rem)}:host([layout*=snowflake]) .triggerContent{padding:0 var(--ds-size-100, 0.5rem) 0 var(--ds-size-200, 1rem)}:host([layout*=snowflake]) label{padding-block:var(--ds-size-25, 0.125rem)}:host([layout*=classic]) .triggerContent{padding:0 var(--ds-size-100, 0.5rem)}:host([layout*=classic]) .mainContent{align-items:start}:host([layout*=classic]) label{overflow:hidden;cursor:text;text-overflow:ellipsis;white-space:nowrap}:host([layout*=classic]) .value{height:auto}label{color:var(--ds-auro-select-label-text-color)}:host(:is([validity]:not([validity=valid]))) [auro-dropdown]{--ds-auro-select-border-color: var(--ds-basic-color-status-error, #e31f26);--ds-auro-select-outline-color: var(--ds-basic-color-status-error, #e31f26);--ds-auro-dropdown-helptext-text-color: var(--ds-basic-color-texticon-default, #2a2a2a)}:host([ondark]:is([validity]:not([validity=valid]))) [auro-dropdown],:host([appearance=inverse]:is([validity]:not([validity=valid]))) [auro-dropdown]{--ds-auro-select-border-color: var(--ds-advanced-color-state-error-inverse, #f9a4a8);--ds-auro-select-outline-color: var(--ds-advanced-color-state-error-inverse, #f9a4a8);--ds-auro-dropdown-helptext-text-color: var(--ds-basic-color-texticon-inverse, #ffffff)}#slotHolder{display:none}:host([fluid]){width:100%}:host([disabled]){pointer-events:none;user-select:none}:host([disabled]:not([ondark])) [auro-dropdown],:host([disabled]:not([appearance=inverse])) [auro-dropdown]{--ds-auro-select-border-color: var(--ds-basic-color-border-subtle, #dddddd)}:host(:not([layout*=classic])[disabled][ondark]) [auro-dropdown],:host(:not([layout*=classic])[disabled][appearance=inverse]) [auro-dropdown]{--ds-auro-select-border-color: transparent}`;
|
|
91709
92461
|
|
|
@@ -92035,14 +92787,6 @@ class AuroSelect extends AuroElement$1 {
|
|
|
92035
92787
|
reflect: true
|
|
92036
92788
|
},
|
|
92037
92789
|
|
|
92038
|
-
/**
|
|
92039
|
-
* @private
|
|
92040
|
-
*/
|
|
92041
|
-
options: {
|
|
92042
|
-
type: Array,
|
|
92043
|
-
state: true
|
|
92044
|
-
},
|
|
92045
|
-
|
|
92046
92790
|
/**
|
|
92047
92791
|
* Specifies the current selected menuOption. Default type is `HTMLElement`, changing to `Array<HTMLElement>` when `multiSelect` is true.
|
|
92048
92792
|
* @type {HTMLElement|Array<HTMLElement>}
|
|
@@ -92330,16 +93074,68 @@ class AuroSelect extends AuroElement$1 {
|
|
|
92330
93074
|
this.dropdown.dropdownWidth = this.customBibWidth;
|
|
92331
93075
|
}
|
|
92332
93076
|
|
|
92333
|
-
|
|
92334
|
-
const labelElement = this.querySelector('span[slot="label"]');
|
|
92335
|
-
if (labelElement) {
|
|
92336
|
-
this.dropdown.bibDialogLabel = labelElement.textContent.trim() || undefined;
|
|
92337
|
-
}
|
|
93077
|
+
this._syncLabelText();
|
|
92338
93078
|
|
|
92339
93079
|
// Exposes the CSS parts from the dropdown for styling
|
|
92340
93080
|
this.dropdown.exposeCssParts();
|
|
92341
93081
|
}
|
|
92342
93082
|
|
|
93083
|
+
/**
|
|
93084
|
+
* Reads the current label slot text and pushes it to the dropdown bib
|
|
93085
|
+
* (for dialog naming) and the menu (for listbox aria-label). Safe to call
|
|
93086
|
+
* before either child has been wired up — each branch self-guards.
|
|
93087
|
+
* @private
|
|
93088
|
+
*/
|
|
93089
|
+
_syncLabelText() {
|
|
93090
|
+
const labelElement = this.querySelector('[slot="label"]');
|
|
93091
|
+
const text = labelElement ? labelElement.textContent.trim() : '';
|
|
93092
|
+
if (this.dropdown) {
|
|
93093
|
+
this.dropdown.bibDialogLabel = text || undefined;
|
|
93094
|
+
}
|
|
93095
|
+
if (this.menu) {
|
|
93096
|
+
if (text) {
|
|
93097
|
+
this.menu.setAttribute('aria-label', text);
|
|
93098
|
+
} else {
|
|
93099
|
+
this.menu.removeAttribute('aria-label');
|
|
93100
|
+
}
|
|
93101
|
+
}
|
|
93102
|
+
}
|
|
93103
|
+
|
|
93104
|
+
/**
|
|
93105
|
+
* Keeps the dialog/menu accessible names in sync when consumers mutate the
|
|
93106
|
+
* label slot at runtime (e.g., i18n locale swap). `slotchange` alone is
|
|
93107
|
+
* insufficient — it doesn't fire when textContent of an already-assigned
|
|
93108
|
+
* slotted node changes, which is the common case. We scope the observer to
|
|
93109
|
+
* the label node itself (not the whole host subtree) so option-content
|
|
93110
|
+
* mutations don't trigger label re-syncs, and re-target on `slotchange`
|
|
93111
|
+
* when consumers add or replace the label element.
|
|
93112
|
+
* @private
|
|
93113
|
+
*/
|
|
93114
|
+
_observeLabelChanges() {
|
|
93115
|
+
if (this._labelObserver) return;
|
|
93116
|
+
this._labelObserver = new MutationObserver(() => this._syncLabelText());
|
|
93117
|
+
|
|
93118
|
+
const retarget = () => {
|
|
93119
|
+
this._labelObserver.disconnect();
|
|
93120
|
+
const labelElement = this.querySelector('[slot="label"]');
|
|
93121
|
+
if (labelElement) {
|
|
93122
|
+
this._labelObserver.observe(labelElement, {
|
|
93123
|
+
childList: true,
|
|
93124
|
+
subtree: true,
|
|
93125
|
+
characterData: true
|
|
93126
|
+
});
|
|
93127
|
+
}
|
|
93128
|
+
this._syncLabelText();
|
|
93129
|
+
};
|
|
93130
|
+
|
|
93131
|
+
retarget();
|
|
93132
|
+
|
|
93133
|
+
this._retargetLabelObserver = retarget;
|
|
93134
|
+
this.shadowRoot.querySelectorAll('slot[name="label"]').forEach((slot) => {
|
|
93135
|
+
slot.addEventListener('slotchange', retarget);
|
|
93136
|
+
});
|
|
93137
|
+
}
|
|
93138
|
+
|
|
92343
93139
|
/**
|
|
92344
93140
|
* This will register this element with the browser.
|
|
92345
93141
|
* @param {string} [name="auro-select"] - The name of element that you want to register to.
|
|
@@ -92490,11 +93286,7 @@ class AuroSelect extends AuroElement$1 {
|
|
|
92490
93286
|
this.updateMenuShapeSize();
|
|
92491
93287
|
this.setMenuValue(this.value);
|
|
92492
93288
|
|
|
92493
|
-
|
|
92494
|
-
const labelElement = this.querySelector('[slot="label"]');
|
|
92495
|
-
if (labelElement) {
|
|
92496
|
-
this.menu.setAttribute('aria-label', labelElement.textContent.trim());
|
|
92497
|
-
}
|
|
93289
|
+
this._syncLabelText();
|
|
92498
93290
|
|
|
92499
93291
|
if (this.multiSelect) {
|
|
92500
93292
|
this.menu.multiSelect = this.multiSelect;
|
|
@@ -92506,8 +93298,21 @@ class AuroSelect extends AuroElement$1 {
|
|
|
92506
93298
|
if (typeof this.menu.initItems === 'function') {
|
|
92507
93299
|
this.menu.initItems();
|
|
92508
93300
|
}
|
|
92509
|
-
this.options = this.menu.options;
|
|
92510
93301
|
this.updateOptionPositions();
|
|
93302
|
+
// renderNativeSelect reads this.menu.options, which the parent doesn't
|
|
93303
|
+
// observe — request an update so the hidden native <option> list reflects
|
|
93304
|
+
// the menu's options after initItems populates them.
|
|
93305
|
+
this.requestUpdate();
|
|
93306
|
+
|
|
93307
|
+
// Keep aria-setsize/aria-posinset (and the native <option> list) in sync
|
|
93308
|
+
// when the menu re-initializes its items — e.g., slotchange, async/lazy
|
|
93309
|
+
// loads, value-triggered re-init. Without this, stale set-size is
|
|
93310
|
+
// announced and the native select goes stale after dynamic mutations.
|
|
93311
|
+
this.menu.addEventListener('auroMenu-optionsChange', () => {
|
|
93312
|
+
this.updateOptionPositions();
|
|
93313
|
+
this.requestUpdate();
|
|
93314
|
+
});
|
|
93315
|
+
|
|
92511
93316
|
this.menu.addEventListener("auroMenu-loadingChange", (event) => this.handleMenuLoadingChange(event));
|
|
92512
93317
|
|
|
92513
93318
|
this.menu.addEventListener("auroMenu-selectValueFailure", () => {
|
|
@@ -92526,11 +93331,26 @@ class AuroSelect extends AuroElement$1 {
|
|
|
92526
93331
|
this.dropdown.setActiveDescendant(this.optionActive);
|
|
92527
93332
|
}
|
|
92528
93333
|
|
|
92529
|
-
//
|
|
92530
|
-
|
|
93334
|
+
// Live-region announce only for [not selected] options. For activations
|
|
93335
|
+
// on an already-selected option — auto-activation on bib open, arrow
|
|
93336
|
+
// navigation back to the selection, or click in multiSelect — rely on
|
|
93337
|
+
// aria-activedescendant + aria-selected="true" to convey state per the
|
|
93338
|
+
// WAI-ARIA listbox pattern. This is intentional, not limited to the
|
|
93339
|
+
// initial activation on open: it also prevents a duplicate "X, selected"
|
|
93340
|
+
// when Enter on the active+selected option re-fires
|
|
93341
|
+
// auroMenu-selectedOption (see 03b289e39).
|
|
93342
|
+
if (this.optionActive && !this.optionActive.hasAttribute('selected')) {
|
|
92531
93343
|
const optionText = this.optionActive.textContent.trim();
|
|
92532
|
-
const
|
|
92533
|
-
|
|
93344
|
+
const message = `${optionText}, not selected`;
|
|
93345
|
+
if (this.dropdown.isPopoverVisible) {
|
|
93346
|
+
announceToScreenReader(this._getAnnouncementRoot(), message);
|
|
93347
|
+
} else {
|
|
93348
|
+
// Typeahead-on-closed fires this event before `show()` flips
|
|
93349
|
+
// isPopoverVisible. Defer so the announcement targets the bib's
|
|
93350
|
+
// live region once the fullscreen <dialog> opens — otherwise it
|
|
93351
|
+
// lands in the host root, which is inert under the active modal.
|
|
93352
|
+
queueMicrotask(() => announceToScreenReader(this._getAnnouncementRoot(), message));
|
|
93353
|
+
}
|
|
92534
93354
|
}
|
|
92535
93355
|
|
|
92536
93356
|
if (this.dropdown.isPopoverVisible) {
|
|
@@ -92539,6 +93359,7 @@ class AuroSelect extends AuroElement$1 {
|
|
|
92539
93359
|
});
|
|
92540
93360
|
|
|
92541
93361
|
this.menu.addEventListener('auroMenu-selectedOption', () => {
|
|
93362
|
+
const previousSelected = this.optionSelected;
|
|
92542
93363
|
|
|
92543
93364
|
// Update the displayed value
|
|
92544
93365
|
this.updateDisplayedValue();
|
|
@@ -92558,13 +93379,32 @@ class AuroSelect extends AuroElement$1 {
|
|
|
92558
93379
|
this.dropdown.trigger.focus();
|
|
92559
93380
|
}
|
|
92560
93381
|
|
|
92561
|
-
//
|
|
92562
|
-
//
|
|
92563
|
-
|
|
92564
|
-
|
|
92565
|
-
|
|
92566
|
-
|
|
92567
|
-
|
|
93382
|
+
// Describe the actual change. In multiSelect, currentLabel is the
|
|
93383
|
+
// concatenated remaining list — announcing "{list}, selected" after a
|
|
93384
|
+
// deselect would falsely claim every remaining label was just added.
|
|
93385
|
+
// Diff previous vs next to recover the toggled option.
|
|
93386
|
+
let announcement = '';
|
|
93387
|
+
if (this.multiSelect) {
|
|
93388
|
+
const prev = Array.isArray(previousSelected) ? previousSelected : [];
|
|
93389
|
+
const removed = prev.find((opt) => !nextSelected.includes(opt));
|
|
93390
|
+
const added = nextSelected.find((opt) => !prev.includes(opt));
|
|
93391
|
+
if (removed) {
|
|
93392
|
+
announcement = `${removed.textContent.trim()}, not selected`;
|
|
93393
|
+
} else if (added) {
|
|
93394
|
+
announcement = `${added.textContent.trim()}, selected`;
|
|
93395
|
+
}
|
|
93396
|
+
} else {
|
|
93397
|
+
announcement = `${this.menu.currentLabel}, selected`;
|
|
93398
|
+
}
|
|
93399
|
+
|
|
93400
|
+
// Delay so the utterance isn't overridden by VoiceOver's "collapsed"
|
|
93401
|
+
// announcement from aria-expanded when the dropdown closes.
|
|
93402
|
+
if (announcement) {
|
|
93403
|
+
const announcementDelay = 300;
|
|
93404
|
+
setTimeout(() => {
|
|
93405
|
+
announceToScreenReader(this._getAnnouncementRoot(), announcement);
|
|
93406
|
+
}, announcementDelay);
|
|
93407
|
+
}
|
|
92568
93408
|
});
|
|
92569
93409
|
}
|
|
92570
93410
|
|
|
@@ -92662,24 +93502,32 @@ class AuroSelect extends AuroElement$1 {
|
|
|
92662
93502
|
|
|
92663
93503
|
this.typeaheadBuffer += key;
|
|
92664
93504
|
|
|
92665
|
-
|
|
93505
|
+
// Prefer the literal buffer as a prefix per WAI-ARIA APG ("focus moves to the
|
|
93506
|
+
// next item with a name that starts with the string of characters typed").
|
|
93507
|
+
// Only fall back to single-char cycling when the repeated buffer has no
|
|
93508
|
+
// longer prefix match — e.g. "aa" cycles through ["Apple", "Apricot"] only
|
|
93509
|
+
// because no option starts with "aa".
|
|
93510
|
+
let match = options.find((option) => this._getOptionDisplayText(option).startsWith(this.typeaheadBuffer));
|
|
92666
93511
|
|
|
92667
|
-
|
|
93512
|
+
const isRepeatedChar = !match && this.typeaheadBuffer.length > 1 && new Set(this.typeaheadBuffer).size === 1;
|
|
92668
93513
|
if (isRepeatedChar) {
|
|
92669
93514
|
const matches = options.filter((option) => this._getOptionDisplayText(option).startsWith(key));
|
|
92670
93515
|
if (matches.length) {
|
|
92671
93516
|
const cycleIndex = (this.typeaheadBuffer.length - 1) % matches.length;
|
|
92672
93517
|
match = matches[cycleIndex];
|
|
92673
93518
|
}
|
|
92674
|
-
} else {
|
|
92675
|
-
match = options.find((option) => this._getOptionDisplayText(option).startsWith(this.typeaheadBuffer));
|
|
92676
93519
|
}
|
|
92677
93520
|
|
|
93521
|
+
// Intentional: no-match leaves the bib closed (deviates from APG / some native <select>).
|
|
92678
93522
|
if (match) {
|
|
93523
|
+
// Pre-stash the match so the auroDropdown-toggled handler's `!optionActive`
|
|
93524
|
+
// guard short-circuits and skips the firstActive/selected fallback —
|
|
93525
|
+
// otherwise show() synchronously fires the handler, which writes
|
|
93526
|
+
// aria-activedescendant once before we overwrite it.
|
|
93527
|
+
this.menu.updateActiveOption(match);
|
|
92679
93528
|
if (!this.dropdown.isPopoverVisible) {
|
|
92680
93529
|
this.dropdown.show();
|
|
92681
93530
|
}
|
|
92682
|
-
this.menu.updateActiveOption(match);
|
|
92683
93531
|
}
|
|
92684
93532
|
}
|
|
92685
93533
|
|
|
@@ -92796,6 +93644,28 @@ class AuroSelect extends AuroElement$1 {
|
|
|
92796
93644
|
disconnectedCallback() {
|
|
92797
93645
|
super.disconnectedCallback();
|
|
92798
93646
|
this._clearTypeaheadBuffer();
|
|
93647
|
+
if (this._labelObserver) {
|
|
93648
|
+
this._labelObserver.disconnect();
|
|
93649
|
+
this._labelObserver = null;
|
|
93650
|
+
}
|
|
93651
|
+
if (this._retargetLabelObserver && this.shadowRoot) {
|
|
93652
|
+
this.shadowRoot.querySelectorAll('slot[name="label"]').forEach((slot) => {
|
|
93653
|
+
slot.removeEventListener('slotchange', this._retargetLabelObserver);
|
|
93654
|
+
});
|
|
93655
|
+
this._retargetLabelObserver = null;
|
|
93656
|
+
}
|
|
93657
|
+
}
|
|
93658
|
+
|
|
93659
|
+
connectedCallback() {
|
|
93660
|
+
super.connectedCallback();
|
|
93661
|
+
// Regression guard: firstUpdated() fires once per instance, so the label
|
|
93662
|
+
// observer setup it triggers does NOT re-run on reconnect. After a
|
|
93663
|
+
// disconnect+reconnect (reparent, SPA route swap), runtime label mutations
|
|
93664
|
+
// would silently stop syncing menu aria-label / dropdown.bibDialogLabel
|
|
93665
|
+
// unless we re-wire the observer here.
|
|
93666
|
+
if (this.hasUpdated) {
|
|
93667
|
+
this._observeLabelChanges();
|
|
93668
|
+
}
|
|
92799
93669
|
}
|
|
92800
93670
|
|
|
92801
93671
|
// lifecycle runs only after the element's DOM has been updated the first time
|
|
@@ -92806,6 +93676,7 @@ class AuroSelect extends AuroElement$1 {
|
|
|
92806
93676
|
this.configureDropdown();
|
|
92807
93677
|
this.configureMenu();
|
|
92808
93678
|
this.configureSelect();
|
|
93679
|
+
this._observeLabelChanges();
|
|
92809
93680
|
}
|
|
92810
93681
|
|
|
92811
93682
|
setMenuValue(value) {
|
|
@@ -92938,25 +93809,18 @@ class AuroSelect extends AuroElement$1 {
|
|
|
92938
93809
|
* @private
|
|
92939
93810
|
*/
|
|
92940
93811
|
_handleNativeSelectChange(event) {
|
|
93812
|
+
// Hidden native <select> has no `multiple` attribute, so any change it fires
|
|
93813
|
+
// is a single raw value — applying it in multiSelect mode would collapse the
|
|
93814
|
+
// JSON-array `value` shape. Bfcache/autofill can reach this on a name-bearing
|
|
93815
|
+
// form control even with aria-hidden/tabindex=-1.
|
|
93816
|
+
if (this.multiSelect) return;
|
|
93817
|
+
|
|
92941
93818
|
const selectedOption = event.target.options[event.target.selectedIndex];
|
|
92942
93819
|
if (!selectedOption) return;
|
|
92943
93820
|
const selectedValue = selectedOption.value;
|
|
92944
93821
|
|
|
92945
|
-
if (this.
|
|
92946
|
-
|
|
92947
|
-
|
|
92948
|
-
if (!currentArray.includes(selectedValue)) {
|
|
92949
|
-
this.value = JSON.stringify([
|
|
92950
|
-
...currentArray,
|
|
92951
|
-
selectedValue
|
|
92952
|
-
]);
|
|
92953
|
-
}
|
|
92954
|
-
} else {
|
|
92955
|
-
const currentValue = this.value;
|
|
92956
|
-
|
|
92957
|
-
if (currentValue !== selectedValue) {
|
|
92958
|
-
this.value = selectedValue;
|
|
92959
|
-
}
|
|
93822
|
+
if (this.value !== selectedValue) {
|
|
93823
|
+
this.value = selectedValue;
|
|
92960
93824
|
}
|
|
92961
93825
|
}
|
|
92962
93826
|
|