@aurodesignsystem-dev/auro-formkit 0.0.0-pr1512.0 → 0.0.0-pr1513.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components/checkbox/demo/customize.min.js +1 -1
- package/components/checkbox/demo/getting-started.min.js +1 -1
- package/components/checkbox/demo/index.min.js +1 -1
- package/components/checkbox/dist/index.js +1 -1
- package/components/checkbox/dist/registered.js +1 -1
- package/components/combobox/demo/customize.min.js +96 -119
- package/components/combobox/demo/getting-started.min.js +96 -119
- package/components/combobox/demo/index.min.js +96 -119
- package/components/combobox/dist/index.js +95 -118
- package/components/combobox/dist/registered.js +95 -118
- package/components/counter/demo/customize.min.js +2 -2
- package/components/counter/demo/index.min.js +2 -2
- package/components/counter/dist/index.js +2 -2
- package/components/counter/dist/registered.js +2 -2
- 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 +716 -336
- package/components/datepicker/demo/index.min.js +716 -336
- package/components/datepicker/dist/{src/auro-calendar-cell.d.ts → auro-calendar-cell.d.ts} +14 -3
- package/components/datepicker/dist/{src/auro-calendar.d.ts → auro-calendar.d.ts} +91 -6
- 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 +716 -336
- package/components/datepicker/dist/registered.js +716 -336
- package/components/dropdown/demo/customize.min.js +1 -1
- package/components/dropdown/demo/getting-started.min.js +1 -1
- package/components/dropdown/demo/index.min.js +1 -1
- package/components/dropdown/dist/index.js +1 -1
- package/components/dropdown/dist/registered.js +1 -1
- package/components/form/demo/customize.min.js +918 -584
- package/components/form/demo/getting-started.min.js +918 -584
- package/components/form/demo/index.min.js +918 -584
- package/components/form/demo/registerDemoDeps.min.js +918 -584
- package/components/input/demo/api.md +5 -5
- package/components/input/demo/customize.md +8 -8
- package/components/input/demo/customize.min.js +93 -116
- package/components/input/demo/getting-started.min.js +93 -116
- package/components/input/demo/index.min.js +93 -116
- package/components/input/dist/base-input.d.ts +44 -33
- package/components/input/dist/index.js +94 -129
- package/components/input/dist/registered.js +93 -116
- package/components/radio/demo/customize.min.js +1 -1
- package/components/radio/demo/getting-started.min.js +1 -1
- package/components/radio/demo/index.min.js +1 -1
- package/components/radio/dist/index.js +1 -1
- package/components/radio/dist/registered.js +1 -1
- package/components/select/demo/customize.min.js +2 -2
- package/components/select/demo/getting-started.min.js +2 -2
- package/components/select/demo/index.min.js +2 -2
- package/components/select/dist/index.js +2 -2
- package/components/select/dist/registered.js +2 -2
- package/custom-elements.json +1996 -1914
- 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
|
@@ -6176,7 +6176,7 @@ function normalizeDates$3(context, ...dates) {
|
|
|
6176
6176
|
* const result = startOfDay(new Date(2014, 8, 2, 11, 55, 0))
|
|
6177
6177
|
* //=> Tue Sep 02 2014 00:00:00
|
|
6178
6178
|
*/
|
|
6179
|
-
function startOfDay$
|
|
6179
|
+
function startOfDay$3(date, options) {
|
|
6180
6180
|
const _date = toDate$3(date, options?.in);
|
|
6181
6181
|
_date.setHours(0, 0, 0, 0);
|
|
6182
6182
|
return _date;
|
|
@@ -6224,8 +6224,8 @@ function differenceInCalendarDays$3(laterDate, earlierDate, options) {
|
|
|
6224
6224
|
earlierDate,
|
|
6225
6225
|
);
|
|
6226
6226
|
|
|
6227
|
-
const laterStartOfDay = startOfDay$
|
|
6228
|
-
const earlierStartOfDay = startOfDay$
|
|
6227
|
+
const laterStartOfDay = startOfDay$3(laterDate_);
|
|
6228
|
+
const earlierStartOfDay = startOfDay$3(earlierDate_);
|
|
6229
6229
|
|
|
6230
6230
|
const laterTimestamp =
|
|
6231
6231
|
+laterStartOfDay - getTimezoneOffsetInMilliseconds$3(laterStartOfDay);
|
|
@@ -11497,13 +11497,6 @@ let AuroInputUtilities$3 = class AuroInputUtilities {
|
|
|
11497
11497
|
* @returns {string | undefined}
|
|
11498
11498
|
*/
|
|
11499
11499
|
toFormattedValue(valueObject, format) {
|
|
11500
|
-
// Exposed publicly via `AuroInputUtil.toFormattedValue`, so a missing
|
|
11501
|
-
// `format` argument has to fail gracefully rather than throw on
|
|
11502
|
-
// `format.toLowerCase()`. Treat any falsy value (undefined, null, '')
|
|
11503
|
-
// as "no format → no display value".
|
|
11504
|
-
if (!format) {
|
|
11505
|
-
return undefined;
|
|
11506
|
-
}
|
|
11507
11500
|
const normalizedFormat = format.toLowerCase();
|
|
11508
11501
|
const maskOptions = this.getMaskOptions('date', normalizedFormat);
|
|
11509
11502
|
|
|
@@ -11654,18 +11647,79 @@ let BaseInput$2 = class BaseInput extends AuroElement$6 {
|
|
|
11654
11647
|
constructor() {
|
|
11655
11648
|
super();
|
|
11656
11649
|
|
|
11657
|
-
|
|
11658
|
-
|
|
11659
|
-
|
|
11660
|
-
|
|
11661
|
-
|
|
11662
|
-
|
|
11663
|
-
|
|
11664
|
-
|
|
11665
|
-
|
|
11666
|
-
|
|
11650
|
+
this.appearance = "default";
|
|
11651
|
+
this.disabled = false;
|
|
11652
|
+
this.layout = 'classic';
|
|
11653
|
+
this.locale = 'en-US';
|
|
11654
|
+
this.max = undefined;
|
|
11655
|
+
this._maxObject = undefined;
|
|
11656
|
+
this.maxLength = undefined;
|
|
11657
|
+
this.min = undefined;
|
|
11658
|
+
this._minObject = undefined;
|
|
11659
|
+
this.minLength = undefined;
|
|
11660
|
+
this.required = false;
|
|
11661
|
+
this.onDark = false;
|
|
11662
|
+
this.setCustomValidityForType = undefined;
|
|
11663
|
+
this.size = 'lg';
|
|
11664
|
+
this.shape = 'classic';
|
|
11665
|
+
this.value = undefined;
|
|
11666
|
+
this._valueObject = undefined;
|
|
11667
|
+
|
|
11668
|
+
this._initializePrivateDefaults();
|
|
11669
|
+
}
|
|
11670
|
+
|
|
11671
|
+
/**
|
|
11672
|
+
* Internal Defaults.
|
|
11673
|
+
* @private
|
|
11674
|
+
* @returns {void}
|
|
11675
|
+
*/
|
|
11676
|
+
_initializePrivateDefaults() {
|
|
11667
11677
|
this.activeLabel = false;
|
|
11668
|
-
|
|
11678
|
+
this.appearance = "default";
|
|
11679
|
+
this.icon = false;
|
|
11680
|
+
this.disabled = false;
|
|
11681
|
+
this.dvInputOnly = false;
|
|
11682
|
+
this.hideLabelVisually = false;
|
|
11683
|
+
this.max = undefined;
|
|
11684
|
+
this.maxLength = undefined;
|
|
11685
|
+
this.min = undefined;
|
|
11686
|
+
this.minLength = undefined;
|
|
11687
|
+
this.noValidate = false;
|
|
11688
|
+
this.onDark = false;
|
|
11689
|
+
this.required = false;
|
|
11690
|
+
this.setCustomValidityForType = undefined;
|
|
11691
|
+
|
|
11692
|
+
// Used for storing raw values returned from input mask.
|
|
11693
|
+
this._rawMaskValue = undefined;
|
|
11694
|
+
|
|
11695
|
+
/**
|
|
11696
|
+
* @private
|
|
11697
|
+
*/
|
|
11698
|
+
this.layout = 'classic';
|
|
11699
|
+
|
|
11700
|
+
/**
|
|
11701
|
+
* @private
|
|
11702
|
+
*/
|
|
11703
|
+
this.shape = 'classic';
|
|
11704
|
+
|
|
11705
|
+
/**
|
|
11706
|
+
* @private
|
|
11707
|
+
*/
|
|
11708
|
+
this.size = 'lg';
|
|
11709
|
+
|
|
11710
|
+
this.touched = false;
|
|
11711
|
+
this.util = new AuroInputUtilities$3({
|
|
11712
|
+
locale: "en-US",
|
|
11713
|
+
format: this.format
|
|
11714
|
+
});
|
|
11715
|
+
this.validation = new AuroFormValidation$7();
|
|
11716
|
+
this.inputIconName = undefined;
|
|
11717
|
+
this.showPassword = false;
|
|
11718
|
+
this.validationCCLength = undefined;
|
|
11719
|
+
this.hasValue = false;
|
|
11720
|
+
this.label = 'Input label is undefined';
|
|
11721
|
+
|
|
11722
|
+
|
|
11669
11723
|
this.allowedInputTypes = [
|
|
11670
11724
|
"text",
|
|
11671
11725
|
"number",
|
|
@@ -11674,8 +11728,7 @@ let BaseInput$2 = class BaseInput extends AuroElement$6 {
|
|
|
11674
11728
|
"credit-card",
|
|
11675
11729
|
"tel"
|
|
11676
11730
|
];
|
|
11677
|
-
this.
|
|
11678
|
-
/** @private */
|
|
11731
|
+
this.icon = false;
|
|
11679
11732
|
this.dateFormatMap = {
|
|
11680
11733
|
'mm/dd/yyyy': 'dateMMDDYYYY',
|
|
11681
11734
|
'dd/mm/yyyy': 'dateDDMMYYYY',
|
|
@@ -11692,57 +11745,27 @@ let BaseInput$2 = class BaseInput extends AuroElement$6 {
|
|
|
11692
11745
|
'dd/mm': 'dateDDMM',
|
|
11693
11746
|
'mm/dd': 'dateMMDD'
|
|
11694
11747
|
};
|
|
11695
|
-
this.disabled = false;
|
|
11696
|
-
/** @private */
|
|
11697
11748
|
this.domHandler = new DomHandler$3();
|
|
11698
11749
|
this.dvInputOnly = false;
|
|
11699
11750
|
this.hasValue = false;
|
|
11700
|
-
this.hideLabelVisually = false;
|
|
11701
|
-
this.icon = false;
|
|
11702
|
-
/** @private */
|
|
11703
11751
|
this.inputIconName = undefined;
|
|
11704
|
-
/** @private */
|
|
11705
11752
|
this.label = 'Input label is undefined';
|
|
11706
|
-
this.layout = 'classic';
|
|
11707
|
-
this.locale = 'en-US';
|
|
11708
|
-
this.max = undefined;
|
|
11709
|
-
this._maxObject = undefined;
|
|
11710
|
-
this.maxLength = undefined;
|
|
11711
|
-
this.min = undefined;
|
|
11712
|
-
this._minObject = undefined;
|
|
11713
|
-
this.minLength = undefined;
|
|
11714
11753
|
this.noValidate = false;
|
|
11715
|
-
this.
|
|
11716
|
-
// Raw values returned from the input mask before model normalization.
|
|
11717
|
-
this._rawMaskValue = undefined;
|
|
11718
|
-
this.required = false;
|
|
11719
|
-
this.setCustomValidityForType = undefined;
|
|
11720
|
-
// Credit Card is intentionally excluded — its mask manages the cursor
|
|
11721
|
-
// itself, and listing it here caused cursor placement issues in Safari.
|
|
11722
|
-
/** @private */
|
|
11754
|
+
this._rawMaskValue = undefined; // Used for storing raw values returned from input mask.
|
|
11723
11755
|
this.setSelectionInputTypes = [
|
|
11724
11756
|
"text",
|
|
11725
11757
|
"password",
|
|
11726
11758
|
"email"
|
|
11727
|
-
];
|
|
11728
|
-
this.shape = 'classic';
|
|
11729
|
-
/** @private */
|
|
11759
|
+
]; // Credit Card is not included as this caused cursor placement issues in Safari.
|
|
11730
11760
|
this.showPassword = false;
|
|
11731
|
-
this.size = 'lg';
|
|
11732
11761
|
this.touched = false;
|
|
11733
|
-
/** @private */
|
|
11734
11762
|
this.uniqueId = new UniqueId$2().create();
|
|
11735
|
-
/** @private */
|
|
11736
11763
|
this.util = new AuroInputUtilities$3({
|
|
11737
11764
|
locale: this.locale,
|
|
11738
11765
|
format: this.format
|
|
11739
11766
|
});
|
|
11740
|
-
/** @private */
|
|
11741
11767
|
this.validation = new AuroFormValidation$7();
|
|
11742
|
-
/** @private */
|
|
11743
11768
|
this.validationCCLength = undefined;
|
|
11744
|
-
this.value = undefined;
|
|
11745
|
-
this._valueObject = undefined;
|
|
11746
11769
|
}
|
|
11747
11770
|
|
|
11748
11771
|
// function to define props used within the scope of this component
|
|
@@ -12290,15 +12313,6 @@ let BaseInput$2 = class BaseInput extends AuroElement$6 {
|
|
|
12290
12313
|
|
|
12291
12314
|
this.inputId = this.id ? `${this.id}-input` : window.crypto.randomUUID();
|
|
12292
12315
|
|
|
12293
|
-
// Normalize the format token to lowercase so case-mixed values supplied
|
|
12294
|
-
// via attribute (e.g. `format="MM/DD/YYYY"`) hit the `dateFormatMap`
|
|
12295
|
-
// lookup inside `setCustomHelpTextMessage`. Without this, an uppercase
|
|
12296
|
-
// format silently misses the map and leaves `setCustomValidityForType`
|
|
12297
|
-
// unset.
|
|
12298
|
-
if (this.format) {
|
|
12299
|
-
this.format = this.format.toLowerCase();
|
|
12300
|
-
}
|
|
12301
|
-
|
|
12302
12316
|
// use validity message override if declared when initializing the component
|
|
12303
12317
|
if (this.hasAttribute('setCustomValidity')) {
|
|
12304
12318
|
this.ValidityMessageOverride = this.setCustomValidity;
|
|
@@ -12732,38 +12746,6 @@ let BaseInput$2 = class BaseInput extends AuroElement$6 {
|
|
|
12732
12746
|
this.touched = true;
|
|
12733
12747
|
this.validation.validate(this);
|
|
12734
12748
|
}
|
|
12735
|
-
|
|
12736
|
-
// Prevents cursor jumping in Safari. Setting `this.value` triggers a Lit
|
|
12737
|
-
// update that can re-render the input and reset the native cursor; we
|
|
12738
|
-
// capture the caret position before that update commits and restore it
|
|
12739
|
-
// via `setSelectionRange` once the update has flushed. Gated on
|
|
12740
|
-
// `setSelectionInputTypes` so credit-card (and other masked types whose
|
|
12741
|
-
// formatter manages the cursor itself) doesn't get a competing write.
|
|
12742
|
-
// Capture the caret position INSIDE the gate — reading `selectionStart`
|
|
12743
|
-
// on input types that don't support text selection (number, email in
|
|
12744
|
-
// some browsers) throws InvalidStateError, which would crash all input
|
|
12745
|
-
// handling. Wrap the read in try/catch belt-and-suspenders even though
|
|
12746
|
-
// the gated types currently support it, since the list is a public
|
|
12747
|
-
// property a consumer could mutate.
|
|
12748
|
-
if (this.setSelectionInputTypes.includes(this.type)) {
|
|
12749
|
-
let selectionStart;
|
|
12750
|
-
try {
|
|
12751
|
-
selectionStart = this.inputElement.selectionStart;
|
|
12752
|
-
} catch (error) { // eslint-disable-line no-unused-vars
|
|
12753
|
-
return;
|
|
12754
|
-
}
|
|
12755
|
-
if (typeof selectionStart !== 'number') {
|
|
12756
|
-
return;
|
|
12757
|
-
}
|
|
12758
|
-
this.updateComplete.then(() => {
|
|
12759
|
-
try {
|
|
12760
|
-
this.inputElement.setSelectionRange(selectionStart, selectionStart);
|
|
12761
|
-
} catch (error) { // eslint-disable-line no-unused-vars
|
|
12762
|
-
// Some input types (number/email in certain UAs) throw on
|
|
12763
|
-
// setSelectionRange; swallow and let the native cursor stand.
|
|
12764
|
-
}
|
|
12765
|
-
});
|
|
12766
|
-
}
|
|
12767
12749
|
}
|
|
12768
12750
|
|
|
12769
12751
|
/**
|
|
@@ -13390,7 +13372,7 @@ let AuroHelpText$8 = class AuroHelpText extends i$3 {
|
|
|
13390
13372
|
}
|
|
13391
13373
|
};
|
|
13392
13374
|
|
|
13393
|
-
var formkitVersion$8 = '
|
|
13375
|
+
var formkitVersion$8 = '202606291440';
|
|
13394
13376
|
|
|
13395
13377
|
// Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
|
|
13396
13378
|
// See LICENSE in the project root for license information.
|
|
@@ -13893,7 +13875,6 @@ let AuroInput$2 = class AuroInput extends BaseInput$2 {
|
|
|
13893
13875
|
<${this.buttonTag}
|
|
13894
13876
|
@click="${this.handleClickShowPassword}"
|
|
13895
13877
|
appearance="${this.onDark ? 'inverse' : this.appearance}"
|
|
13896
|
-
aria-pressed="${this.showPassword ? 'true' : 'false'}"
|
|
13897
13878
|
class="notificationBtn passwordBtn"
|
|
13898
13879
|
shape="circle"
|
|
13899
13880
|
size="sm"
|
|
@@ -13967,29 +13948,25 @@ let AuroInput$2 = class AuroInput extends BaseInput$2 {
|
|
|
13967
13948
|
* @returns {html} - Returns HTML for the help text and error message.
|
|
13968
13949
|
*/
|
|
13969
13950
|
renderHtmlHelpText() {
|
|
13970
|
-
// Single `<p>` with stable identity across validity transitions —
|
|
13971
|
-
// previously two distinct templates (valid vs invalid) caused Lit to
|
|
13972
|
-
// replace the node entirely on a flip, and VoiceOver wouldn't
|
|
13973
|
-
// re-announce because the live-region element it was watching had been
|
|
13974
|
-
// removed and a new one inserted. Keeping one node means the `role`,
|
|
13975
|
-
// `aria-live`, and text content all change in-place, which AT does
|
|
13976
|
-
// observe and announce.
|
|
13977
|
-
const isError = this.validity && this.validity !== 'valid';
|
|
13978
13951
|
return u$c`
|
|
13979
|
-
|
|
13980
|
-
|
|
13981
|
-
|
|
13982
|
-
|
|
13983
|
-
|
|
13984
|
-
|
|
13985
|
-
|
|
13986
|
-
|
|
13987
|
-
|
|
13988
|
-
|
|
13989
|
-
|
|
13990
|
-
|
|
13991
|
-
|
|
13992
|
-
|
|
13952
|
+
${!this.validity || this.validity === undefined || this.validity === 'valid'
|
|
13953
|
+
? u$c`
|
|
13954
|
+
<${this.helpTextTag}
|
|
13955
|
+
appearance="${this.onDark ? 'inverse' : this.appearance}">
|
|
13956
|
+
<p id="${this.uniqueId}" part="helpText">
|
|
13957
|
+
<slot name="helpText">${this.getHelpText()}</slot>
|
|
13958
|
+
</p>
|
|
13959
|
+
</${this.helpTextTag}>
|
|
13960
|
+
`
|
|
13961
|
+
: u$c`
|
|
13962
|
+
<${this.helpTextTag} error
|
|
13963
|
+
appearance="${this.onDark ? 'inverse' : this.appearance}">
|
|
13964
|
+
<p id="${this.uniqueId}" role="alert" aria-live="assertive" part="helpText">
|
|
13965
|
+
${this.errorMessage}
|
|
13966
|
+
</p>
|
|
13967
|
+
</${this.helpTextTag}>
|
|
13968
|
+
`
|
|
13969
|
+
}
|
|
13993
13970
|
`;
|
|
13994
13971
|
}
|
|
13995
13972
|
|
|
@@ -15479,7 +15456,7 @@ function normalizeDates$1(context, ...dates) {
|
|
|
15479
15456
|
* const result = startOfDay(new Date(2014, 8, 2, 11, 55, 0))
|
|
15480
15457
|
* //=> Tue Sep 02 2014 00:00:00
|
|
15481
15458
|
*/
|
|
15482
|
-
function startOfDay$
|
|
15459
|
+
function startOfDay$1(date, options) {
|
|
15483
15460
|
const _date = toDate$1(date, options?.in);
|
|
15484
15461
|
_date.setHours(0, 0, 0, 0);
|
|
15485
15462
|
return _date;
|
|
@@ -15527,8 +15504,8 @@ function differenceInCalendarDays$1(laterDate, earlierDate, options) {
|
|
|
15527
15504
|
earlierDate,
|
|
15528
15505
|
);
|
|
15529
15506
|
|
|
15530
|
-
const laterStartOfDay = startOfDay$
|
|
15531
|
-
const earlierStartOfDay = startOfDay$
|
|
15507
|
+
const laterStartOfDay = startOfDay$1(laterDate_);
|
|
15508
|
+
const earlierStartOfDay = startOfDay$1(earlierDate_);
|
|
15532
15509
|
|
|
15533
15510
|
const laterTimestamp =
|
|
15534
15511
|
+laterStartOfDay - getTimezoneOffsetInMilliseconds$1(laterStartOfDay);
|
|
@@ -24630,13 +24607,6 @@ let AuroInputUtilities$1 = class AuroInputUtilities {
|
|
|
24630
24607
|
* @returns {string | undefined}
|
|
24631
24608
|
*/
|
|
24632
24609
|
toFormattedValue(valueObject, format) {
|
|
24633
|
-
// Exposed publicly via `AuroInputUtil.toFormattedValue`, so a missing
|
|
24634
|
-
// `format` argument has to fail gracefully rather than throw on
|
|
24635
|
-
// `format.toLowerCase()`. Treat any falsy value (undefined, null, '')
|
|
24636
|
-
// as "no format → no display value".
|
|
24637
|
-
if (!format) {
|
|
24638
|
-
return undefined;
|
|
24639
|
-
}
|
|
24640
24610
|
const normalizedFormat = format.toLowerCase();
|
|
24641
24611
|
const maskOptions = this.getMaskOptions('date', normalizedFormat);
|
|
24642
24612
|
|
|
@@ -24992,8 +24962,8 @@ class RangeDatepickerCell extends i$3 {
|
|
|
24992
24962
|
const parsedDateFrom = parseInt(dateFrom, 10);
|
|
24993
24963
|
const parsedDateTo = parseInt(dateTo, 10);
|
|
24994
24964
|
if (day) {
|
|
24995
|
-
if (getTime(startOfDay$
|
|
24996
|
-
getTime(startOfDay$
|
|
24965
|
+
if (getTime(startOfDay$1(parsedDateTo * 1000)) / 1000 === day.date ||
|
|
24966
|
+
getTime(startOfDay$1(parsedDateFrom * 1000)) / 1000 === day.date) {
|
|
24997
24967
|
this.selected = true;
|
|
24998
24968
|
}
|
|
24999
24969
|
if (((hoveredDate === day.date || day.date < hoveredDate) &&
|
|
@@ -25181,7 +25151,7 @@ class RangeDatepickerCalendar extends i$3 {
|
|
|
25181
25151
|
this.dayNamesOfTheWeek = [];
|
|
25182
25152
|
this.daysOfMonth = [];
|
|
25183
25153
|
this._locale = null;
|
|
25184
|
-
this.currentDate = parseInt(format$1(startOfDay$
|
|
25154
|
+
this.currentDate = parseInt(format$1(startOfDay$1(Date.now()), 't'), 10);
|
|
25185
25155
|
this.localeChanged();
|
|
25186
25156
|
this.yearAndMonthChanged(this.year, this.month);
|
|
25187
25157
|
}
|
|
@@ -25655,7 +25625,7 @@ __decorate([n$4({ type: Array })], RangeDatepickerCalendar.prototype, "dayNamesO
|
|
|
25655
25625
|
__decorate([n$4({ type: Array })], RangeDatepickerCalendar.prototype, "daysOfMonth", void 0);
|
|
25656
25626
|
AuroLibraryRuntimeUtils$5$1.prototype.registerComponent('wc-range-datepicker-calendar', RangeDatepickerCalendar);
|
|
25657
25627
|
|
|
25658
|
-
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}`;
|
|
25628
|
+
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}`;
|
|
25659
25629
|
|
|
25660
25630
|
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}`;
|
|
25661
25631
|
|
|
@@ -25680,13 +25650,103 @@ class s{registerComponent(e,t){customElements.get(e)||customElements.define(e,cl
|
|
|
25680
25650
|
|
|
25681
25651
|
var popoverVersion = '6.0.1';
|
|
25682
25652
|
|
|
25683
|
-
|
|
25653
|
+
/**
|
|
25654
|
+
* Single source of truth for parsing and matching blackout dates across the
|
|
25655
|
+
* datepicker. Both `auro-calendar` (memoized Set + `isDateBlackout`) and the
|
|
25656
|
+
* pre-`firstUpdated` fallback inside `auro-calendar-cell` route through these
|
|
25657
|
+
* helpers so the YYYY-MM-DD → seconds conversion and the merge-with-legacy
|
|
25658
|
+
* `disabledDays` rules are defined exactly once.
|
|
25659
|
+
*/
|
|
25684
25660
|
|
|
25685
|
-
|
|
25686
|
-
|
|
25687
|
-
|
|
25688
|
-
|
|
25689
|
-
|
|
25661
|
+
/**
|
|
25662
|
+
* Converts a `YYYY-MM-DD` ISO date string to a Unix timestamp (seconds)
|
|
25663
|
+
* representing local midnight on that calendar day. Returns `null` for
|
|
25664
|
+
* inputs that don't parse to a finite timestamp.
|
|
25665
|
+
*
|
|
25666
|
+
* Uses the `new Date(year, monthIndex, day)` constructor (NOT
|
|
25667
|
+
* `new Date(isoStr)`) so the result is local-midnight rather than UTC
|
|
25668
|
+
* midnight — required to keep the calendar grid aligned with the user's
|
|
25669
|
+
* local calendar day in negative-offset timezones.
|
|
25670
|
+
*
|
|
25671
|
+
* @param {string} isoStr - Date string in `YYYY-MM-DD` format.
|
|
25672
|
+
* @returns {number|null} Local-midnight Unix timestamp (seconds), or null.
|
|
25673
|
+
*/
|
|
25674
|
+
function parseIsoToTimestamp(isoStr) {
|
|
25675
|
+
if (typeof isoStr !== 'string') {
|
|
25676
|
+
return null;
|
|
25677
|
+
}
|
|
25678
|
+
const parts = isoStr.split('-');
|
|
25679
|
+
if (parts.length !== 3) {
|
|
25680
|
+
return null;
|
|
25681
|
+
}
|
|
25682
|
+
const year = parseInt(parts[0], 10);
|
|
25683
|
+
const month = parseInt(parts[1], 10);
|
|
25684
|
+
const day = parseInt(parts[2], 10);
|
|
25685
|
+
if (!Number.isFinite(year) || !Number.isFinite(month) || !Number.isFinite(day)) {
|
|
25686
|
+
return null;
|
|
25687
|
+
}
|
|
25688
|
+
// Reject overflow values like "2024-13-40" — JS `new Date(year, month, day)`
|
|
25689
|
+
// silently normalizes those to a different calendar day, which would
|
|
25690
|
+
// disable the wrong date if we let the result through.
|
|
25691
|
+
if (month < 1 || month > 12 || day < 1 || day > 31) {
|
|
25692
|
+
return null;
|
|
25693
|
+
}
|
|
25694
|
+
const date = new Date(year, month - 1, day);
|
|
25695
|
+
// Guard the residual case where JS still rolls a value (e.g. Feb 30 → Mar 2).
|
|
25696
|
+
// After construction, getFullYear/getMonth/getDate should match the inputs.
|
|
25697
|
+
if (date.getFullYear() !== year || date.getMonth() !== month - 1 || date.getDate() !== day) {
|
|
25698
|
+
return null;
|
|
25699
|
+
}
|
|
25700
|
+
const ts = Math.floor(date.getTime() / 1000);
|
|
25701
|
+
return Number.isFinite(ts) ? ts : null;
|
|
25702
|
+
}
|
|
25703
|
+
|
|
25704
|
+
/**
|
|
25705
|
+
* Builds a `Set<number>` of seconds-since-epoch timestamps covering both the
|
|
25706
|
+
* legacy `disabledDays` (already-numeric) array and the ISO `blackoutDates`
|
|
25707
|
+
* array. Use this for O(1) membership checks in hot paths.
|
|
25708
|
+
*
|
|
25709
|
+
* @param {Array<string|number>|undefined} disabledDays - Legacy timestamp array.
|
|
25710
|
+
* @param {Array<string>|undefined} blackoutDates - ISO `YYYY-MM-DD` array.
|
|
25711
|
+
* @returns {Set<number>}
|
|
25712
|
+
*/
|
|
25713
|
+
function buildBlackoutSet(disabledDays, blackoutDates) {
|
|
25714
|
+
const set = new Set();
|
|
25715
|
+
if (Array.isArray(disabledDays)) {
|
|
25716
|
+
for (const day of disabledDays) {
|
|
25717
|
+
const ts = parseInt(day, 10);
|
|
25718
|
+
if (Number.isFinite(ts)) {
|
|
25719
|
+
set.add(ts);
|
|
25720
|
+
}
|
|
25721
|
+
}
|
|
25722
|
+
}
|
|
25723
|
+
if (Array.isArray(blackoutDates)) {
|
|
25724
|
+
for (const isoStr of blackoutDates) {
|
|
25725
|
+
const ts = parseIsoToTimestamp(isoStr);
|
|
25726
|
+
if (ts !== null) {
|
|
25727
|
+
set.add(ts);
|
|
25728
|
+
}
|
|
25729
|
+
}
|
|
25730
|
+
}
|
|
25731
|
+
return set;
|
|
25732
|
+
}
|
|
25733
|
+
|
|
25734
|
+
/**
|
|
25735
|
+
* One-shot membership test for a single timestamp against both blackout
|
|
25736
|
+
* sources. Allocates a Set on each call; only use this in cold paths
|
|
25737
|
+
* (e.g. the pre-`firstUpdated` cell fallback). Hot paths should hold the
|
|
25738
|
+
* Set returned from `buildBlackoutSet` and `.has(ts)` directly.
|
|
25739
|
+
*
|
|
25740
|
+
* @param {number} dateTs - Unix timestamp (seconds) to test.
|
|
25741
|
+
* @param {Array<string|number>|undefined} disabledDays - Legacy timestamp array.
|
|
25742
|
+
* @param {Array<string>|undefined} blackoutDates - ISO `YYYY-MM-DD` array.
|
|
25743
|
+
* @returns {boolean}
|
|
25744
|
+
*/
|
|
25745
|
+
function isBlackoutTimestamp(dateTs, disabledDays, blackoutDates) {
|
|
25746
|
+
return buildBlackoutSet(disabledDays, blackoutDates).has(dateTs);
|
|
25747
|
+
}
|
|
25748
|
+
|
|
25749
|
+
/* 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 */
|
|
25690
25750
|
|
|
25691
25751
|
class AuroCalendarCell extends i$3 {
|
|
25692
25752
|
constructor() {
|
|
@@ -25734,6 +25794,14 @@ class AuroCalendarCell extends i$3 {
|
|
|
25734
25794
|
type: Boolean,
|
|
25735
25795
|
reflect: true
|
|
25736
25796
|
},
|
|
25797
|
+
/**
|
|
25798
|
+
* @deprecated Propagated from the legacy `auro-calendar.disabledDays`
|
|
25799
|
+
* Unix-timestamp array. The cell honors it for backward compatibility
|
|
25800
|
+
* (see the divergence-check fallback inside `isBlackout`), but
|
|
25801
|
+
* consumers should migrate to `auro-datepicker.blackoutDates`
|
|
25802
|
+
* (YYYY-MM-DD ISO strings). The calendar emits a one-time
|
|
25803
|
+
* deprecation warning the first time a non-empty value is observed.
|
|
25804
|
+
*/
|
|
25737
25805
|
disabledDays: { type: Array },
|
|
25738
25806
|
isCurrentDate: { type: Boolean },
|
|
25739
25807
|
locale: { type: String },
|
|
@@ -25779,8 +25847,8 @@ class AuroCalendarCell extends i$3 {
|
|
|
25779
25847
|
const parsedDateTo = parseInt(dateTo, 10);
|
|
25780
25848
|
|
|
25781
25849
|
if (day) {
|
|
25782
|
-
const departTimestamp =
|
|
25783
|
-
const returnTimestamp =
|
|
25850
|
+
const departTimestamp = new Date(parsedDateFrom * 1000).setHours(0, 0, 0, 0) / 1000;
|
|
25851
|
+
const returnTimestamp = new Date(parsedDateTo * 1000).setHours(0, 0, 0, 0) / 1000;
|
|
25784
25852
|
|
|
25785
25853
|
if (day.date === departTimestamp || day.date === returnTimestamp) {
|
|
25786
25854
|
this.selected = true;
|
|
@@ -25864,27 +25932,33 @@ class AuroCalendarCell extends i$3 {
|
|
|
25864
25932
|
return false;
|
|
25865
25933
|
}
|
|
25866
25934
|
|
|
25867
|
-
//
|
|
25868
|
-
|
|
25869
|
-
|
|
25870
|
-
|
|
25871
|
-
|
|
25872
|
-
|
|
25873
|
-
// Check against blackoutDates (ISO format YYYY-MM-DD) on the datepicker
|
|
25874
|
-
const blackoutDates = this.datepicker?.blackoutDates;
|
|
25875
|
-
|
|
25876
|
-
if (Array.isArray(blackoutDates) && blackoutDates.length > 0) {
|
|
25877
|
-
const date = new Date(this.day.date * 1000);
|
|
25878
|
-
const yyyy = date.getFullYear();
|
|
25879
|
-
const mm = String(date.getMonth() + 1).padStart(2, '0');
|
|
25880
|
-
const dd = String(date.getDate()).padStart(2, '0');
|
|
25881
|
-
const cellDate = `${yyyy}-${mm}-${dd}`;
|
|
25882
|
-
if (blackoutDates.includes(cellDate)) {
|
|
25935
|
+
// Delegate to the calendar's memoized blackout Set for O(1) lookup
|
|
25936
|
+
// (instead of rescanning disabledDays + blackoutDates per render). The
|
|
25937
|
+
// Set is rebuilt only when either source array reference changes — see
|
|
25938
|
+
// auro-calendar.js#_getBlackoutSet.
|
|
25939
|
+
if (this.calendar && typeof this.calendar._getBlackoutSet === 'function') {
|
|
25940
|
+
if (this.calendar._getBlackoutSet().has(this.day.date)) {
|
|
25883
25941
|
return true;
|
|
25884
25942
|
}
|
|
25943
|
+
// If the cell's local disabledDays diverged from the calendar's (a
|
|
25944
|
+
// consumer or test mutated cell.disabledDays directly), the Set does
|
|
25945
|
+
// not reflect that addition — fall through to the per-cell scan only
|
|
25946
|
+
// when the reference no longer matches. Production data flow keeps
|
|
25947
|
+
// these identical, so this branch stays cold. Guarded with
|
|
25948
|
+
// Array.isArray to match `_getBlackoutSet`'s contract: non-array
|
|
25949
|
+
// values are treated as empty rather than crashing on `.findIndex`.
|
|
25950
|
+
if (Array.isArray(this.disabledDays) && this.disabledDays !== this.calendar.disabledDays && this.disabledDays.length > 0) {
|
|
25951
|
+
if (this.disabledDays.findIndex((dd) => parseInt(dd, 10) === this.day.date) !== -1) {
|
|
25952
|
+
return true;
|
|
25953
|
+
}
|
|
25954
|
+
}
|
|
25955
|
+
return false;
|
|
25885
25956
|
}
|
|
25886
25957
|
|
|
25887
|
-
|
|
25958
|
+
// Pre-firstUpdated fallback — the cell may render once before the
|
|
25959
|
+
// ancestor calendar is wired up. Routes through the shared
|
|
25960
|
+
// blackoutUtils helper so the parsing rules stay in one place.
|
|
25961
|
+
return isBlackoutTimestamp(this.day.date, this.disabledDays, this.datepicker?.blackoutDates);
|
|
25888
25962
|
}
|
|
25889
25963
|
|
|
25890
25964
|
/**
|
|
@@ -25990,12 +26064,12 @@ class AuroCalendarCell extends i$3 {
|
|
|
25990
26064
|
const parsedDateFrom = Number.parseInt(this.dateFrom, 10);
|
|
25991
26065
|
if (!Number.isFinite(parsedDateFrom)) return null;
|
|
25992
26066
|
|
|
25993
|
-
const departTimestamp =
|
|
26067
|
+
const departTimestamp = new Date(parsedDateFrom * 1000).setHours(0, 0, 0, 0) / 1000;
|
|
25994
26068
|
const dayDate = this.day.date;
|
|
25995
26069
|
|
|
25996
26070
|
const parsedDateTo = Number.parseInt(this.dateTo, 10);
|
|
25997
26071
|
const hasDateTo = Number.isFinite(parsedDateTo);
|
|
25998
|
-
const returnTimestamp = hasDateTo ?
|
|
26072
|
+
const returnTimestamp = hasDateTo ? new Date(parsedDateTo * 1000).setHours(0, 0, 0, 0) / 1000 : null;
|
|
25999
26073
|
|
|
26000
26074
|
if (dayDate === departTimestamp) return this.datepicker.rangeLabelStart || 'range start';
|
|
26001
26075
|
|
|
@@ -26005,7 +26079,9 @@ class AuroCalendarCell extends i$3 {
|
|
|
26005
26079
|
|
|
26006
26080
|
if (hasDateTo && dayDate > departTimestamp && dayDate < returnTimestamp) return this.datepicker.rangeLabelInRange || 'in range';
|
|
26007
26081
|
|
|
26008
|
-
|
|
26082
|
+
if (!hasDateTo && dayDate > departTimestamp) return this.datepicker.rangeLabelEndPreview || 'previewing range end';
|
|
26083
|
+
|
|
26084
|
+
// After end date when both dateFrom and dateTo are set.
|
|
26009
26085
|
return this.datepicker.rangeLabelAfterRange || 'after range';
|
|
26010
26086
|
}
|
|
26011
26087
|
|
|
@@ -26018,7 +26094,7 @@ class AuroCalendarCell extends i$3 {
|
|
|
26018
26094
|
*/
|
|
26019
26095
|
isDepartDate(day, dateFrom) {
|
|
26020
26096
|
const parsedDateFrom = parseInt(dateFrom, 10);
|
|
26021
|
-
const departTimestamp =
|
|
26097
|
+
const departTimestamp = new Date(parsedDateFrom * 1000).setHours(0, 0, 0, 0) / 1000;
|
|
26022
26098
|
|
|
26023
26099
|
return this.selected && day.date === departTimestamp;
|
|
26024
26100
|
}
|
|
@@ -26033,7 +26109,7 @@ class AuroCalendarCell extends i$3 {
|
|
|
26033
26109
|
*/
|
|
26034
26110
|
isReturnDate(day, dateFrom, dateTo) {
|
|
26035
26111
|
const parsedDateTo = parseInt(dateTo, 10);
|
|
26036
|
-
const returnTimestamp =
|
|
26112
|
+
const returnTimestamp = new Date(parsedDateTo * 1000).setHours(0, 0, 0, 0) / 1000;
|
|
26037
26113
|
|
|
26038
26114
|
return this.selected && day.date === returnTimestamp && dateFrom;
|
|
26039
26115
|
}
|
|
@@ -26197,6 +26273,7 @@ class AuroCalendarCell extends i$3 {
|
|
|
26197
26273
|
setTimeout(() => this.firstUpdated(), 0);
|
|
26198
26274
|
return;
|
|
26199
26275
|
}
|
|
26276
|
+
this.calendar = calendar;
|
|
26200
26277
|
this.datepicker = calendar.datepicker;
|
|
26201
26278
|
this._slotContentHandler = () => {
|
|
26202
26279
|
this.handleSlotContent();
|
|
@@ -26254,12 +26331,13 @@ class AuroCalendarCell extends i$3 {
|
|
|
26254
26331
|
this._cachedButton = this.shadowRoot.querySelector('button.day');
|
|
26255
26332
|
});
|
|
26256
26333
|
|
|
26257
|
-
//
|
|
26334
|
+
// Keep the host's gridcell aria attributes in sync with the day data.
|
|
26258
26335
|
this.updateHostAria();
|
|
26259
26336
|
}
|
|
26260
26337
|
|
|
26261
26338
|
// Update host aria when selection changes (aria-selected, range labels)
|
|
26262
|
-
|
|
26339
|
+
// or when isCurrentDate flips (aria-current).
|
|
26340
|
+
if (properties.has('dateFrom') || properties.has('dateTo') || properties.has('selected') || properties.has('isCurrentDate')) {
|
|
26263
26341
|
this.updateHostAria();
|
|
26264
26342
|
}
|
|
26265
26343
|
|
|
@@ -26270,8 +26348,8 @@ class AuroCalendarCell extends i$3 {
|
|
|
26270
26348
|
}
|
|
26271
26349
|
|
|
26272
26350
|
/**
|
|
26273
|
-
*
|
|
26274
|
-
*
|
|
26351
|
+
* Sets host-level ARIA so each cell exposes its date, selection state,
|
|
26352
|
+
* and blackout status to assistive tech browsing the month grid.
|
|
26275
26353
|
* @private
|
|
26276
26354
|
* @returns {void}
|
|
26277
26355
|
*/
|
|
@@ -26280,16 +26358,27 @@ class AuroCalendarCell extends i$3 {
|
|
|
26280
26358
|
|
|
26281
26359
|
const outOfRange = this.isOutOfRange(this.day, this.min, this.max);
|
|
26282
26360
|
if (outOfRange) {
|
|
26361
|
+
// Strip every aria attribute the in-range branch may have set on a
|
|
26362
|
+
// previous render — if a cell flips from in-range to out-of-range
|
|
26363
|
+
// (calendar shifts months, minDate/maxDate change, etc.).
|
|
26283
26364
|
this.removeAttribute('role');
|
|
26284
26365
|
this.removeAttribute('aria-label');
|
|
26366
|
+
this.removeAttribute('aria-current');
|
|
26367
|
+
this.removeAttribute('aria-selected');
|
|
26368
|
+
this.removeAttribute('aria-disabled');
|
|
26285
26369
|
return;
|
|
26286
26370
|
}
|
|
26287
26371
|
|
|
26288
|
-
// The host acts as the gridcell for ariaActiveDescendantElement.
|
|
26289
26372
|
this.setAttribute('role', 'gridcell');
|
|
26290
26373
|
this.setAttribute('aria-label', this.getAriaLabel());
|
|
26291
26374
|
this.setAttribute('aria-selected', this.selected ? 'true' : 'false');
|
|
26292
26375
|
|
|
26376
|
+
if (this.isCurrentDate) {
|
|
26377
|
+
this.setAttribute('aria-current', 'date');
|
|
26378
|
+
} else {
|
|
26379
|
+
this.removeAttribute('aria-current');
|
|
26380
|
+
}
|
|
26381
|
+
|
|
26293
26382
|
if (this.isBlackout()) {
|
|
26294
26383
|
this.setAttribute('aria-disabled', 'true');
|
|
26295
26384
|
} else {
|
|
@@ -26304,7 +26393,7 @@ class AuroCalendarCell extends i$3 {
|
|
|
26304
26393
|
* @returns {void}
|
|
26305
26394
|
*/
|
|
26306
26395
|
focusButton() {
|
|
26307
|
-
const button = this._cachedButton || this.shadowRoot.querySelector('button:not([
|
|
26396
|
+
const button = this._cachedButton || this.shadowRoot.querySelector('button:not([disabled])');
|
|
26308
26397
|
if (button) {
|
|
26309
26398
|
button.focus({ focusVisible: true });
|
|
26310
26399
|
}
|
|
@@ -26312,7 +26401,9 @@ class AuroCalendarCell extends i$3 {
|
|
|
26312
26401
|
|
|
26313
26402
|
/**
|
|
26314
26403
|
* Imperatively marks this cell as active without triggering a Lit re-render.
|
|
26315
|
-
*
|
|
26404
|
+
* Buttons stay tabindex="-1" because DOM focus stays on the grid wrapper —
|
|
26405
|
+
* arrow keys move the active cell imperatively and the live region carries
|
|
26406
|
+
* the SR announcement.
|
|
26316
26407
|
* @returns {void}
|
|
26317
26408
|
*/
|
|
26318
26409
|
setActive() {
|
|
@@ -26354,10 +26445,13 @@ class AuroCalendarCell extends i$3 {
|
|
|
26354
26445
|
if (!btn || !this.day) return;
|
|
26355
26446
|
|
|
26356
26447
|
const dayDate = this.day.date;
|
|
26357
|
-
const departTimestamp =
|
|
26448
|
+
const departTimestamp = new Date(dateFrom * 1000).setHours(0, 0, 0, 0) / 1000;
|
|
26358
26449
|
const isInRange = dayDate > departTimestamp && dayDate < hoveredDate;
|
|
26359
|
-
|
|
26360
|
-
|
|
26450
|
+
// `>=` so hovering the depart cell itself (a same-day round-trip
|
|
26451
|
+
// preview) still surfaces a visual cue: the depart cell receives both
|
|
26452
|
+
// rangeDepartDate and lastHoveredDate.
|
|
26453
|
+
const isLastHovered = dayDate === hoveredDate && hoveredDate >= departTimestamp;
|
|
26454
|
+
const isDepartWithPreview = dayDate === departTimestamp && hoveredDate >= departTimestamp;
|
|
26361
26455
|
|
|
26362
26456
|
btn.classList.toggle('inRange', isInRange);
|
|
26363
26457
|
btn.classList.toggle('lastHoveredDate', isLastHovered);
|
|
@@ -26415,7 +26509,6 @@ class AuroCalendarCell extends i$3 {
|
|
|
26415
26509
|
@focus="${outOfRange ? undefined : this.handleFocus}"
|
|
26416
26510
|
class="${e$2(buttonClasses)}"
|
|
26417
26511
|
?disabled="${outOfRange}"
|
|
26418
|
-
aria-hidden="${outOfRange ? 'true' : A$7}"
|
|
26419
26512
|
tabindex="-1">
|
|
26420
26513
|
<div class="buttonWrapper" aria-hidden="true">
|
|
26421
26514
|
<div class="currentDayMarker">${this.day?.title || A$7}</div>
|
|
@@ -27521,7 +27614,7 @@ let AuroBibtemplate$3 = class AuroBibtemplate extends i$3 {
|
|
|
27521
27614
|
}
|
|
27522
27615
|
};
|
|
27523
27616
|
|
|
27524
|
-
var formkitVersion$2$1 = '
|
|
27617
|
+
var formkitVersion$2$1 = '202606291440';
|
|
27525
27618
|
|
|
27526
27619
|
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}
|
|
27527
27620
|
`,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}}
|
|
@@ -27644,7 +27737,11 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
27644
27737
|
this.calendarRangeMonths = null;
|
|
27645
27738
|
|
|
27646
27739
|
/**
|
|
27647
|
-
*
|
|
27740
|
+
* @deprecated Use `auro-datepicker.blackoutDates` (an array of
|
|
27741
|
+
* `YYYY-MM-DD` ISO strings) instead. This legacy array of Unix
|
|
27742
|
+
* timestamps is still honored for backward compatibility but emits a
|
|
27743
|
+
* one-time `console.debug` the first time a non-empty value is observed.
|
|
27744
|
+
* Support will be removed in a future major release.
|
|
27648
27745
|
* @private
|
|
27649
27746
|
*/
|
|
27650
27747
|
this.disabledDays = [];
|
|
@@ -27901,17 +27998,44 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
27901
27998
|
* @returns {void}
|
|
27902
27999
|
*/
|
|
27903
28000
|
updateActiveCellForVisibleMonth() {
|
|
27904
|
-
|
|
27905
|
-
|
|
27906
|
-
requestAnimationFrame(() => {
|
|
27907
|
-
requestAnimationFrame(() => {
|
|
27908
|
-
const newDate = this.computeActiveDate({ skipDateFrom: true });
|
|
28001
|
+
this._afterMonthRender(() => {
|
|
28002
|
+
const newDate = this.computeActiveDate({ skipDateFrom: true });
|
|
27909
28003
|
|
|
27910
|
-
|
|
27911
|
-
|
|
27912
|
-
|
|
27913
|
-
|
|
27914
|
-
|
|
28004
|
+
if (newDate !== null && newDate !== undefined) {
|
|
28005
|
+
this.activeCellDate = newDate;
|
|
28006
|
+
this.setActiveCell(this.activeCellDate);
|
|
28007
|
+
}
|
|
28008
|
+
});
|
|
28009
|
+
}
|
|
28010
|
+
|
|
28011
|
+
/**
|
|
28012
|
+
* Schedules `callback` two animation frames out, giving the child
|
|
28013
|
+
* `auro-formkit-calendar-month` and `auro-formkit-calendar-cell` elements
|
|
28014
|
+
* a full render-and-paint cycle to settle before the callback reads or
|
|
28015
|
+
* mutates DOM.
|
|
28016
|
+
*
|
|
28017
|
+
* Why two frames, not one:
|
|
28018
|
+
* 1. Lit batches property updates and renders in a microtask, so frame N
|
|
28019
|
+
* schedules the render but the new DOM may not be painted yet.
|
|
28020
|
+
* 2. Cells re-cache `_cachedButton` inside their own `updateComplete.then`,
|
|
28021
|
+
* which also lands a tick later. Reading buttons from frame N+1
|
|
28022
|
+
* (after both renders + cache refresh have flushed) reliably hits the
|
|
28023
|
+
* new month's cells.
|
|
28024
|
+
*
|
|
28025
|
+
* Used by every code path that calls `handleNextMonth`/`handlePrevMonth`
|
|
28026
|
+
* and then needs to inspect the freshly-rendered cells (cross-month
|
|
28027
|
+
* keyboard nav, boundary events, `updateActiveCellForVisibleMonth`).
|
|
28028
|
+
* Do NOT collapse to a single rAF — it intermittently lands before
|
|
28029
|
+
* `_cachedButton` is refreshed, which silently breaks focus restoration
|
|
28030
|
+
* and `setActiveCell` lookups.
|
|
28031
|
+
* @private
|
|
28032
|
+
* @param {() => void} callback - Runs once after the month re-render and
|
|
28033
|
+
* the cells' button caches have refreshed.
|
|
28034
|
+
* @returns {void}
|
|
28035
|
+
*/
|
|
28036
|
+
_afterMonthRender(callback) {
|
|
28037
|
+
requestAnimationFrame(() => {
|
|
28038
|
+
requestAnimationFrame(callback);
|
|
27915
28039
|
});
|
|
27916
28040
|
}
|
|
27917
28041
|
|
|
@@ -28029,6 +28153,47 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
28029
28153
|
return Array.from(this.shadowRoot.querySelectorAll('auro-formkit-calendar-month'));
|
|
28030
28154
|
}
|
|
28031
28155
|
|
|
28156
|
+
/**
|
|
28157
|
+
* Picks the focusable cell whose date is closest to targetTs. Used as a
|
|
28158
|
+
* fallback after a month-boundary nav when the exact target date isn't
|
|
28159
|
+
* focusable — typically because the month re-render lagged or the date
|
|
28160
|
+
* was filtered out by isOutOfRange. When two cells are equidistant, the
|
|
28161
|
+
* navigation direction breaks the tie so the user moves the way they
|
|
28162
|
+
* pressed (forward → later cell, backward → earlier cell).
|
|
28163
|
+
* @private
|
|
28164
|
+
* @param {Array} cells - Focusable cells from getAllFocusableCells.
|
|
28165
|
+
* @param {Number} targetTs - Desired Unix timestamp (seconds).
|
|
28166
|
+
* @param {'next'|'prev'} direction - Navigation direction.
|
|
28167
|
+
* @returns {Object|null} The nearest cell, or null when cells is empty.
|
|
28168
|
+
*/
|
|
28169
|
+
pickNearestCell(cells, targetTs, direction) {
|
|
28170
|
+
if (!cells.length) {
|
|
28171
|
+
return null;
|
|
28172
|
+
}
|
|
28173
|
+
const forward = direction === 'next';
|
|
28174
|
+
let best = null;
|
|
28175
|
+
let bestDelta = Infinity;
|
|
28176
|
+
cells.forEach((cell) => {
|
|
28177
|
+
if (!cell.day) {
|
|
28178
|
+
return;
|
|
28179
|
+
}
|
|
28180
|
+
const distance = Math.abs(cell.day.date - targetTs);
|
|
28181
|
+
if (distance < bestDelta) {
|
|
28182
|
+
best = cell;
|
|
28183
|
+
bestDelta = distance;
|
|
28184
|
+
return;
|
|
28185
|
+
}
|
|
28186
|
+
if (distance === bestDelta && best) {
|
|
28187
|
+
if (forward && cell.day.date > best.day.date) {
|
|
28188
|
+
best = cell;
|
|
28189
|
+
} else if (!forward && cell.day.date < best.day.date) {
|
|
28190
|
+
best = cell;
|
|
28191
|
+
}
|
|
28192
|
+
}
|
|
28193
|
+
});
|
|
28194
|
+
return best;
|
|
28195
|
+
}
|
|
28196
|
+
|
|
28032
28197
|
/**
|
|
28033
28198
|
* Gets all focusable cells across all rendered months.
|
|
28034
28199
|
* @private
|
|
@@ -28045,9 +28210,9 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
28045
28210
|
|
|
28046
28211
|
/**
|
|
28047
28212
|
* Sets the active cell across all months. Only one cell has tabindex="0" at a time.
|
|
28048
|
-
* Uses imperative DOM manipulation — no Lit re-render triggered.
|
|
28049
|
-
*
|
|
28050
|
-
*
|
|
28213
|
+
* Uses imperative DOM manipulation — no Lit re-render triggered. DOM focus
|
|
28214
|
+
* stays on the grid wrapper; the live region (see getOrCreateLiveRegion)
|
|
28215
|
+
* is what announces the active cell to assistive tech.
|
|
28051
28216
|
* @param {Number} date - Unix timestamp of the cell to activate.
|
|
28052
28217
|
* @returns {void}
|
|
28053
28218
|
*/
|
|
@@ -28096,10 +28261,23 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
28096
28261
|
/**
|
|
28097
28262
|
* Shows the activeCell ring when the grid gains focus.
|
|
28098
28263
|
* @private
|
|
28264
|
+
* @param {FocusEvent} [event] - The focusin event.
|
|
28099
28265
|
* @returns {void}
|
|
28100
28266
|
*/
|
|
28101
|
-
handleGridFocusIn() {
|
|
28267
|
+
handleGridFocusIn(event) {
|
|
28102
28268
|
this._gridHasFocus = true;
|
|
28269
|
+
|
|
28270
|
+
// Only apply the activeCell ring when the grid wrapper itself receives focus
|
|
28271
|
+
// (Tab/programmatic). When focus moves into a cell button via mousedown,
|
|
28272
|
+
// event.target is the cell descendant — skip the ring here. The subsequent
|
|
28273
|
+
// click handler calls setActiveCell on the clicked cell, which applies the
|
|
28274
|
+
// ring there. Without this guard, mousedown briefly flashes the ring on the
|
|
28275
|
+
// previously-active cell (e.g. the 1st-of-month set by month navigation
|
|
28276
|
+
// when the grid was not focused).
|
|
28277
|
+
if (event && event.target !== event.currentTarget) {
|
|
28278
|
+
return;
|
|
28279
|
+
}
|
|
28280
|
+
|
|
28103
28281
|
const activeCell = this.getAllFocusableCells().find((cell) => cell.active);
|
|
28104
28282
|
if (activeCell) {
|
|
28105
28283
|
const btn = activeCell._cachedButton || activeCell.shadowRoot.querySelector('button.day');
|
|
@@ -28128,6 +28306,65 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
28128
28306
|
this.clearRangePreview();
|
|
28129
28307
|
}
|
|
28130
28308
|
|
|
28309
|
+
/**
|
|
28310
|
+
* Returns a memoized Set of blackout timestamps (seconds) drawn from both
|
|
28311
|
+
* the legacy `disabledDays` array and the datepicker's ISO `blackoutDates`.
|
|
28312
|
+
* The cache invalidates when either source array's reference changes, which
|
|
28313
|
+
* matches Lit's own reactive identity semantics for array properties.
|
|
28314
|
+
* @private
|
|
28315
|
+
* @returns {Set<Number>}
|
|
28316
|
+
*/
|
|
28317
|
+
_getBlackoutSet() {
|
|
28318
|
+
// Normalize non-array values to a stable `null` sentinel rather than a
|
|
28319
|
+
// fresh `[]` per call — otherwise the reference-identity cache key
|
|
28320
|
+
// (`_cachedBlackoutDisabledDays === disabledDays`) never matches on
|
|
28321
|
+
// subsequent calls and the Set rebuilds every time. `buildBlackoutSet`
|
|
28322
|
+
// already treats null/non-array as "no legacy disabledDays" via its
|
|
28323
|
+
// own Array.isArray gate.
|
|
28324
|
+
const disabledDays = Array.isArray(this.disabledDays) ? this.disabledDays : null;
|
|
28325
|
+
const blackoutDates = this.datepicker?.blackoutDates;
|
|
28326
|
+
if (this._blackoutSet &&
|
|
28327
|
+
this._cachedBlackoutDisabledDays === disabledDays &&
|
|
28328
|
+
this._cachedBlackoutDates === blackoutDates) {
|
|
28329
|
+
return this._blackoutSet;
|
|
28330
|
+
}
|
|
28331
|
+
|
|
28332
|
+
if (disabledDays && disabledDays.length > 0) {
|
|
28333
|
+
this._warnDisabledDaysDeprecated();
|
|
28334
|
+
}
|
|
28335
|
+
|
|
28336
|
+
this._blackoutSet = buildBlackoutSet(disabledDays, blackoutDates);
|
|
28337
|
+
this._cachedBlackoutDisabledDays = disabledDays;
|
|
28338
|
+
this._cachedBlackoutDates = blackoutDates;
|
|
28339
|
+
return this._blackoutSet;
|
|
28340
|
+
}
|
|
28341
|
+
|
|
28342
|
+
/**
|
|
28343
|
+
* Per-class flag that gates the `disabledDays` deprecation warning so it
|
|
28344
|
+
* fires exactly once per page no matter how many calendars or rebuild
|
|
28345
|
+
* cycles encounter the legacy array.
|
|
28346
|
+
* @private
|
|
28347
|
+
*/
|
|
28348
|
+
static _warnedDisabledDaysDeprecation = false;
|
|
28349
|
+
|
|
28350
|
+
/**
|
|
28351
|
+
* One-time `console.debug` directing consumers from the legacy
|
|
28352
|
+
* `disabledDays` Unix-timestamp API to the ISO `blackoutDates` API. Fires
|
|
28353
|
+
* the first time `_getBlackoutSet` rebuilds from a non-empty
|
|
28354
|
+
* `disabledDays`; subsequent calls (on this or any other AuroCalendar
|
|
28355
|
+
* instance on the page) are silent.
|
|
28356
|
+
* @private
|
|
28357
|
+
* @returns {void}
|
|
28358
|
+
*/
|
|
28359
|
+
_warnDisabledDaysDeprecated() {
|
|
28360
|
+
if (AuroCalendar._warnedDisabledDaysDeprecation) {
|
|
28361
|
+
return;
|
|
28362
|
+
}
|
|
28363
|
+
AuroCalendar._warnedDisabledDaysDeprecation = true;
|
|
28364
|
+
// eslint-disable-next-line no-console
|
|
28365
|
+
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.');
|
|
28366
|
+
}
|
|
28367
|
+
|
|
28131
28368
|
/**
|
|
28132
28369
|
* Computes the initial active date from data properties alone — no DOM required.
|
|
28133
28370
|
* Priority:
|
|
@@ -28172,21 +28409,10 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
28172
28409
|
const minTs = Number.isFinite(rawMin) ? rawMin : -Infinity;
|
|
28173
28410
|
const maxTs = Number.isFinite(rawMax) ? rawMax : Infinity;
|
|
28174
28411
|
|
|
28175
|
-
// Build a Set of blackout timestamps for O(1) lookup.
|
|
28176
|
-
|
|
28177
|
-
|
|
28178
|
-
|
|
28179
|
-
// Parse YYYY-MM-DD as local date to avoid UTC shift issues.
|
|
28180
|
-
const isoBlackouts = this.datepicker?.blackoutDates;
|
|
28181
|
-
if (Array.isArray(isoBlackouts)) {
|
|
28182
|
-
for (const isoStr of isoBlackouts) {
|
|
28183
|
-
const parts = isoStr.split('-');
|
|
28184
|
-
const ts = Math.floor(new Date(parseInt(parts[0], 10), parseInt(parts[1], 10) - 1, parseInt(parts[2], 10)).getTime() / 1000);
|
|
28185
|
-
if (Number.isFinite(ts)) {
|
|
28186
|
-
blackoutSet.add(ts);
|
|
28187
|
-
}
|
|
28188
|
-
}
|
|
28189
|
-
}
|
|
28412
|
+
// Build a Set of blackout timestamps for O(1) lookup. Memoized by the
|
|
28413
|
+
// identity of the source arrays so rapid month nav doesn't rebuild the
|
|
28414
|
+
// Set (and re-parse every ISO string) on every keypress.
|
|
28415
|
+
const blackoutSet = this._getBlackoutSet();
|
|
28190
28416
|
|
|
28191
28417
|
/**
|
|
28192
28418
|
* A date (unix timestamp in seconds, midnight-aligned) is "enabled" when
|
|
@@ -28382,8 +28608,8 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
28382
28608
|
|
|
28383
28609
|
/**
|
|
28384
28610
|
* Handles arrow key navigation on the calendar grid wrapper.
|
|
28385
|
-
* Focus stays on the grid wrapper; only
|
|
28386
|
-
*
|
|
28611
|
+
* Focus stays on the grid wrapper; only the visual active-cell indicator
|
|
28612
|
+
* changes. The live region announces the new active cell.
|
|
28387
28613
|
* @private
|
|
28388
28614
|
* @param {KeyboardEvent} event - The keyboard event.
|
|
28389
28615
|
* @returns {void}
|
|
@@ -28448,21 +28674,21 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
28448
28674
|
} else {
|
|
28449
28675
|
this.handlePrevMonth({ skipActiveUpdate: true });
|
|
28450
28676
|
}
|
|
28451
|
-
|
|
28452
|
-
|
|
28453
|
-
|
|
28454
|
-
|
|
28455
|
-
|
|
28456
|
-
|
|
28457
|
-
|
|
28458
|
-
|
|
28459
|
-
|
|
28677
|
+
this._afterMonthRender(() => {
|
|
28678
|
+
const cells = this.getAllFocusableCells();
|
|
28679
|
+
const target = cells.find((cell) => cell.day && cell.day.date === targetTs);
|
|
28680
|
+
if (target) {
|
|
28681
|
+
this.setActiveCell(target.day.date);
|
|
28682
|
+
this.handleCellFocused({ detail: { date: target.day.date } });
|
|
28683
|
+
} else {
|
|
28684
|
+
const fallback = this.pickNearestCell(cells, targetTs, navDir);
|
|
28685
|
+
if (fallback) {
|
|
28460
28686
|
this.setActiveCell(fallback.day.date);
|
|
28461
28687
|
this.handleCellFocused({ detail: { date: fallback.day.date } });
|
|
28462
28688
|
}
|
|
28463
|
-
|
|
28464
|
-
|
|
28465
|
-
|
|
28689
|
+
}
|
|
28690
|
+
// Re-focus grid wrapper after month change re-render
|
|
28691
|
+
this.focusActiveCell();
|
|
28466
28692
|
});
|
|
28467
28693
|
}
|
|
28468
28694
|
}
|
|
@@ -28488,26 +28714,20 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
28488
28714
|
} else {
|
|
28489
28715
|
this.handlePrevMonth({ skipActiveUpdate: true });
|
|
28490
28716
|
}
|
|
28491
|
-
|
|
28492
|
-
|
|
28493
|
-
|
|
28494
|
-
|
|
28495
|
-
|
|
28496
|
-
|
|
28497
|
-
|
|
28498
|
-
|
|
28499
|
-
|
|
28500
|
-
|
|
28501
|
-
if (navDirection === 'next') {
|
|
28502
|
-
[nearest] = cells;
|
|
28503
|
-
} else {
|
|
28504
|
-
nearest = cells[cells.length - 1];
|
|
28505
|
-
}
|
|
28717
|
+
this._afterMonthRender(() => {
|
|
28718
|
+
const cells = this.getAllFocusableCells();
|
|
28719
|
+
const target = cells.find((cell) => cell.day && cell.day.date === targetDate);
|
|
28720
|
+
if (target) {
|
|
28721
|
+
this.setActiveCell(target.day.date);
|
|
28722
|
+
this.handleCellFocused({ detail: { date: target.day.date } });
|
|
28723
|
+
} else {
|
|
28724
|
+
const nearest = this.pickNearestCell(cells, targetDate, navDirection);
|
|
28725
|
+
if (nearest) {
|
|
28506
28726
|
this.setActiveCell(nearest.day.date);
|
|
28507
28727
|
this.handleCellFocused({ detail: { date: nearest.day.date } });
|
|
28508
28728
|
}
|
|
28509
|
-
|
|
28510
|
-
|
|
28729
|
+
}
|
|
28730
|
+
this.focusActiveCell();
|
|
28511
28731
|
});
|
|
28512
28732
|
}
|
|
28513
28733
|
}
|
|
@@ -28557,19 +28777,22 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
28557
28777
|
}
|
|
28558
28778
|
|
|
28559
28779
|
this.handleNextMonth({ skipActiveUpdate: true });
|
|
28560
|
-
|
|
28561
|
-
|
|
28562
|
-
|
|
28563
|
-
|
|
28564
|
-
|
|
28565
|
-
|
|
28566
|
-
|
|
28567
|
-
|
|
28568
|
-
|
|
28569
|
-
|
|
28780
|
+
this._afterMonthRender(() => {
|
|
28781
|
+
const cells = this.getAllFocusableCells();
|
|
28782
|
+
const target = cells.find((cell) => cell.day && cell.day.date === nextTs);
|
|
28783
|
+
if (target) {
|
|
28784
|
+
this.setActiveCell(target.day.date);
|
|
28785
|
+
this.focusActiveCell();
|
|
28786
|
+
} else {
|
|
28787
|
+
// Same nearest-by-date fallback handleGridKeyDown uses — direct
|
|
28788
|
+
// `cells[length - 1]` would land on the end of the new month,
|
|
28789
|
+
// far from the user's intended `nextTs`.
|
|
28790
|
+
const fallback = this.pickNearestCell(cells, nextTs, 'next');
|
|
28791
|
+
if (fallback) {
|
|
28792
|
+
this.setActiveCell(fallback.day.date);
|
|
28570
28793
|
this.focusActiveCell();
|
|
28571
28794
|
}
|
|
28572
|
-
}
|
|
28795
|
+
}
|
|
28573
28796
|
});
|
|
28574
28797
|
} else if (direction === 'prev' && this.showPrevMonthBtn) {
|
|
28575
28798
|
// Navigate to previous month and focus the computed previous date.
|
|
@@ -28583,19 +28806,22 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
28583
28806
|
}
|
|
28584
28807
|
|
|
28585
28808
|
this.handlePrevMonth({ skipActiveUpdate: true });
|
|
28586
|
-
|
|
28587
|
-
|
|
28588
|
-
|
|
28589
|
-
|
|
28590
|
-
|
|
28591
|
-
|
|
28592
|
-
|
|
28593
|
-
|
|
28594
|
-
|
|
28595
|
-
|
|
28809
|
+
this._afterMonthRender(() => {
|
|
28810
|
+
const cells = this.getAllFocusableCells();
|
|
28811
|
+
const target = cells.find((cell) => cell.day && cell.day.date === prevTs);
|
|
28812
|
+
if (target) {
|
|
28813
|
+
this.setActiveCell(target.day.date);
|
|
28814
|
+
this.focusActiveCell();
|
|
28815
|
+
} else {
|
|
28816
|
+
// Same nearest-by-date fallback handleGridKeyDown uses — direct
|
|
28817
|
+
// `cells[0]` would land on the start of the previous month, far
|
|
28818
|
+
// from the user's intended `prevTs`.
|
|
28819
|
+
const fallback = this.pickNearestCell(cells, prevTs, 'prev');
|
|
28820
|
+
if (fallback) {
|
|
28821
|
+
this.setActiveCell(fallback.day.date);
|
|
28596
28822
|
this.focusActiveCell();
|
|
28597
28823
|
}
|
|
28598
|
-
}
|
|
28824
|
+
}
|
|
28599
28825
|
});
|
|
28600
28826
|
}
|
|
28601
28827
|
} else if (key === 'ArrowDown' || key === 'ArrowUp') {
|
|
@@ -28623,20 +28849,22 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
28623
28849
|
} else {
|
|
28624
28850
|
this.handlePrevMonth({ skipActiveUpdate: true });
|
|
28625
28851
|
}
|
|
28626
|
-
|
|
28627
|
-
|
|
28628
|
-
|
|
28629
|
-
|
|
28630
|
-
|
|
28631
|
-
|
|
28632
|
-
|
|
28633
|
-
|
|
28634
|
-
|
|
28635
|
-
|
|
28852
|
+
this._afterMonthRender(() => {
|
|
28853
|
+
const cells = this.getAllFocusableCells();
|
|
28854
|
+
const target = cells.find((cell) => cell.day && cell.day.date === targetDate);
|
|
28855
|
+
if (target) {
|
|
28856
|
+
this.setActiveCell(target.day.date);
|
|
28857
|
+
this.focusActiveCell();
|
|
28858
|
+
} else {
|
|
28859
|
+
// Same nearest-by-date fallback handleGridKeyDown uses — the
|
|
28860
|
+
// old direction-based `cells[0]`/`cells[length-1]` clamp
|
|
28861
|
+
// could land 25+ days from the intended target.
|
|
28862
|
+
const nearest = this.pickNearestCell(cells, targetDate, navDirection);
|
|
28863
|
+
if (nearest) {
|
|
28636
28864
|
this.setActiveCell(nearest.day.date);
|
|
28637
28865
|
this.focusActiveCell();
|
|
28638
28866
|
}
|
|
28639
|
-
}
|
|
28867
|
+
}
|
|
28640
28868
|
});
|
|
28641
28869
|
}
|
|
28642
28870
|
}
|
|
@@ -28675,8 +28903,9 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
28675
28903
|
return;
|
|
28676
28904
|
}
|
|
28677
28905
|
|
|
28678
|
-
//
|
|
28679
|
-
// so
|
|
28906
|
+
// DOM focus stays on the grid wrapper while arrow keys move the active
|
|
28907
|
+
// cell, so cell buttons never receive native focus. The debounced live
|
|
28908
|
+
// region carries the full-context announcement instead.
|
|
28680
28909
|
const announcement = this.buildFocusAnnouncement(date);
|
|
28681
28910
|
this.announceFocusDebounced(announcement);
|
|
28682
28911
|
|
|
@@ -28746,10 +28975,10 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
28746
28975
|
return null;
|
|
28747
28976
|
}
|
|
28748
28977
|
|
|
28749
|
-
const departTs =
|
|
28978
|
+
const departTs = new Date(parsedFrom * 1000).setHours(0, 0, 0, 0) / 1000;
|
|
28750
28979
|
const parsedTo = Number.parseInt(this.dateTo, 10);
|
|
28751
28980
|
const hasTo = Number.isFinite(parsedTo);
|
|
28752
|
-
const returnTs = hasTo ?
|
|
28981
|
+
const returnTs = hasTo ? new Date(parsedTo * 1000).setHours(0, 0, 0, 0) / 1000 : null;
|
|
28753
28982
|
|
|
28754
28983
|
if (date === departTs) {
|
|
28755
28984
|
return this.datepicker.rangeLabelStart || 'range start';
|
|
@@ -28763,36 +28992,22 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
28763
28992
|
if (hasTo && date > departTs && date < returnTs) {
|
|
28764
28993
|
return this.datepicker.rangeLabelInRange || 'in range';
|
|
28765
28994
|
}
|
|
28995
|
+
if (!hasTo && date > departTs) {
|
|
28996
|
+
return this.datepicker.rangeLabelEndPreview || 'previewing range end';
|
|
28997
|
+
}
|
|
28766
28998
|
return this.datepicker.rangeLabelAfterRange || 'after range';
|
|
28767
28999
|
}
|
|
28768
29000
|
|
|
28769
29001
|
/**
|
|
28770
|
-
* Checks whether a given date is a blackout date.
|
|
29002
|
+
* Checks whether a given date is a blackout date. Delegates to the
|
|
29003
|
+
* memoized `_getBlackoutSet` so the YYYY-MM-DD parsing and the
|
|
29004
|
+
* legacy/ISO merge rules live in exactly one place (see `blackoutUtils.js`).
|
|
28771
29005
|
* @private
|
|
28772
29006
|
* @param {Number} dateTs - Unix timestamp (seconds).
|
|
28773
29007
|
* @returns {Boolean} True if the date is blacked out.
|
|
28774
29008
|
*/
|
|
28775
29009
|
isDateBlackout(dateTs) {
|
|
28776
|
-
|
|
28777
|
-
if (Array.isArray(this.disabledDays) && this.disabledDays.length > 0) {
|
|
28778
|
-
if (this.disabledDays.findIndex((day) => parseInt(day, 10) === dateTs) !== -1) {
|
|
28779
|
-
return true;
|
|
28780
|
-
}
|
|
28781
|
-
}
|
|
28782
|
-
|
|
28783
|
-
// Check ISO blackoutDates.
|
|
28784
|
-
const blackoutDates = this.datepicker?.blackoutDates;
|
|
28785
|
-
if (Array.isArray(blackoutDates) && blackoutDates.length > 0) {
|
|
28786
|
-
const date = new Date(dateTs * 1000);
|
|
28787
|
-
const yyyy = date.getFullYear();
|
|
28788
|
-
const mm = String(date.getMonth() + 1).padStart(2, '0');
|
|
28789
|
-
const dd = String(date.getDate()).padStart(2, '0');
|
|
28790
|
-
if (blackoutDates.includes(`${yyyy}-${mm}-${dd}`)) {
|
|
28791
|
-
return true;
|
|
28792
|
-
}
|
|
28793
|
-
}
|
|
28794
|
-
|
|
28795
|
-
return false;
|
|
29010
|
+
return this._getBlackoutSet().has(dateTs);
|
|
28796
29011
|
}
|
|
28797
29012
|
|
|
28798
29013
|
/**
|
|
@@ -28959,9 +29174,34 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
28959
29174
|
// the last one.
|
|
28960
29175
|
if (this._announceRafId) {
|
|
28961
29176
|
cancelAnimationFrame(this._announceRafId);
|
|
29177
|
+
this._announceRafId = null;
|
|
28962
29178
|
}
|
|
29179
|
+
this._deliverAnnouncement(dateStr, 0);
|
|
29180
|
+
}
|
|
29181
|
+
|
|
29182
|
+
/**
|
|
29183
|
+
* Writes `dateStr` to the live region. If the dropdown's dialog hasn't
|
|
29184
|
+
* mounted yet (so getOrCreateLiveRegion can't attach), retries on the
|
|
29185
|
+
* next animation frame up to MAX_LIVE_REGION_RETRIES instead of silently
|
|
29186
|
+
* dropping the announcement. The retry uses the same `_announceRafId`
|
|
29187
|
+
* the double-rAF below uses, so a newer announceSelection call (or
|
|
29188
|
+
* disconnectedCallback) cancels any in-flight retry.
|
|
29189
|
+
* @private
|
|
29190
|
+
* @param {String} dateStr - The localized date string to announce.
|
|
29191
|
+
* @param {Number} attempts - Number of prior retry attempts.
|
|
29192
|
+
* @returns {void}
|
|
29193
|
+
*/
|
|
29194
|
+
_deliverAnnouncement(dateStr, attempts) {
|
|
28963
29195
|
const liveRegion = this.getOrCreateLiveRegion();
|
|
28964
29196
|
if (!liveRegion) {
|
|
29197
|
+
const MAX_LIVE_REGION_RETRIES = 10;
|
|
29198
|
+
if (attempts < MAX_LIVE_REGION_RETRIES) {
|
|
29199
|
+
this._announceRafId = requestAnimationFrame(() => {
|
|
29200
|
+
this._deliverAnnouncement(dateStr, attempts + 1);
|
|
29201
|
+
});
|
|
29202
|
+
} else {
|
|
29203
|
+
this._announceRafId = null;
|
|
29204
|
+
}
|
|
28965
29205
|
return;
|
|
28966
29206
|
}
|
|
28967
29207
|
|
|
@@ -29147,7 +29387,7 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
29147
29387
|
</button>
|
|
29148
29388
|
` : undefined}
|
|
29149
29389
|
</div>
|
|
29150
|
-
<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}">
|
|
29390
|
+
<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}">
|
|
29151
29391
|
${this.renderAllCalendars()}
|
|
29152
29392
|
</div>
|
|
29153
29393
|
</div>
|
|
@@ -33032,7 +33272,7 @@ let AuroHelpText$2$1 = class AuroHelpText extends i$3 {
|
|
|
33032
33272
|
}
|
|
33033
33273
|
};
|
|
33034
33274
|
|
|
33035
|
-
var formkitVersion$1$3 = '
|
|
33275
|
+
var formkitVersion$1$3 = '202606291440';
|
|
33036
33276
|
|
|
33037
33277
|
let AuroElement$2$2 = class AuroElement extends i$3 {
|
|
33038
33278
|
static get properties() {
|
|
@@ -39429,7 +39669,7 @@ function normalizeDates$2(context, ...dates) {
|
|
|
39429
39669
|
* const result = startOfDay(new Date(2014, 8, 2, 11, 55, 0))
|
|
39430
39670
|
* //=> Tue Sep 02 2014 00:00:00
|
|
39431
39671
|
*/
|
|
39432
|
-
function startOfDay$
|
|
39672
|
+
function startOfDay$2(date, options) {
|
|
39433
39673
|
const _date = toDate$2(date, options?.in);
|
|
39434
39674
|
_date.setHours(0, 0, 0, 0);
|
|
39435
39675
|
return _date;
|
|
@@ -39477,8 +39717,8 @@ function differenceInCalendarDays$2(laterDate, earlierDate, options) {
|
|
|
39477
39717
|
earlierDate,
|
|
39478
39718
|
);
|
|
39479
39719
|
|
|
39480
|
-
const laterStartOfDay = startOfDay$
|
|
39481
|
-
const earlierStartOfDay = startOfDay$
|
|
39720
|
+
const laterStartOfDay = startOfDay$2(laterDate_);
|
|
39721
|
+
const earlierStartOfDay = startOfDay$2(earlierDate_);
|
|
39482
39722
|
|
|
39483
39723
|
const laterTimestamp =
|
|
39484
39724
|
+laterStartOfDay - getTimezoneOffsetInMilliseconds$2(laterStartOfDay);
|
|
@@ -44750,13 +44990,6 @@ let AuroInputUtilities$2 = class AuroInputUtilities {
|
|
|
44750
44990
|
* @returns {string | undefined}
|
|
44751
44991
|
*/
|
|
44752
44992
|
toFormattedValue(valueObject, format) {
|
|
44753
|
-
// Exposed publicly via `AuroInputUtil.toFormattedValue`, so a missing
|
|
44754
|
-
// `format` argument has to fail gracefully rather than throw on
|
|
44755
|
-
// `format.toLowerCase()`. Treat any falsy value (undefined, null, '')
|
|
44756
|
-
// as "no format → no display value".
|
|
44757
|
-
if (!format) {
|
|
44758
|
-
return undefined;
|
|
44759
|
-
}
|
|
44760
44993
|
const normalizedFormat = format.toLowerCase();
|
|
44761
44994
|
const maskOptions = this.getMaskOptions('date', normalizedFormat);
|
|
44762
44995
|
|
|
@@ -44907,18 +45140,79 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
|
|
|
44907
45140
|
constructor() {
|
|
44908
45141
|
super();
|
|
44909
45142
|
|
|
44910
|
-
|
|
44911
|
-
|
|
44912
|
-
|
|
44913
|
-
|
|
44914
|
-
|
|
44915
|
-
|
|
44916
|
-
|
|
44917
|
-
|
|
44918
|
-
|
|
44919
|
-
|
|
45143
|
+
this.appearance = "default";
|
|
45144
|
+
this.disabled = false;
|
|
45145
|
+
this.layout = 'classic';
|
|
45146
|
+
this.locale = 'en-US';
|
|
45147
|
+
this.max = undefined;
|
|
45148
|
+
this._maxObject = undefined;
|
|
45149
|
+
this.maxLength = undefined;
|
|
45150
|
+
this.min = undefined;
|
|
45151
|
+
this._minObject = undefined;
|
|
45152
|
+
this.minLength = undefined;
|
|
45153
|
+
this.required = false;
|
|
45154
|
+
this.onDark = false;
|
|
45155
|
+
this.setCustomValidityForType = undefined;
|
|
45156
|
+
this.size = 'lg';
|
|
45157
|
+
this.shape = 'classic';
|
|
45158
|
+
this.value = undefined;
|
|
45159
|
+
this._valueObject = undefined;
|
|
45160
|
+
|
|
45161
|
+
this._initializePrivateDefaults();
|
|
45162
|
+
}
|
|
45163
|
+
|
|
45164
|
+
/**
|
|
45165
|
+
* Internal Defaults.
|
|
45166
|
+
* @private
|
|
45167
|
+
* @returns {void}
|
|
45168
|
+
*/
|
|
45169
|
+
_initializePrivateDefaults() {
|
|
44920
45170
|
this.activeLabel = false;
|
|
44921
|
-
|
|
45171
|
+
this.appearance = "default";
|
|
45172
|
+
this.icon = false;
|
|
45173
|
+
this.disabled = false;
|
|
45174
|
+
this.dvInputOnly = false;
|
|
45175
|
+
this.hideLabelVisually = false;
|
|
45176
|
+
this.max = undefined;
|
|
45177
|
+
this.maxLength = undefined;
|
|
45178
|
+
this.min = undefined;
|
|
45179
|
+
this.minLength = undefined;
|
|
45180
|
+
this.noValidate = false;
|
|
45181
|
+
this.onDark = false;
|
|
45182
|
+
this.required = false;
|
|
45183
|
+
this.setCustomValidityForType = undefined;
|
|
45184
|
+
|
|
45185
|
+
// Used for storing raw values returned from input mask.
|
|
45186
|
+
this._rawMaskValue = undefined;
|
|
45187
|
+
|
|
45188
|
+
/**
|
|
45189
|
+
* @private
|
|
45190
|
+
*/
|
|
45191
|
+
this.layout = 'classic';
|
|
45192
|
+
|
|
45193
|
+
/**
|
|
45194
|
+
* @private
|
|
45195
|
+
*/
|
|
45196
|
+
this.shape = 'classic';
|
|
45197
|
+
|
|
45198
|
+
/**
|
|
45199
|
+
* @private
|
|
45200
|
+
*/
|
|
45201
|
+
this.size = 'lg';
|
|
45202
|
+
|
|
45203
|
+
this.touched = false;
|
|
45204
|
+
this.util = new AuroInputUtilities$2({
|
|
45205
|
+
locale: "en-US",
|
|
45206
|
+
format: this.format
|
|
45207
|
+
});
|
|
45208
|
+
this.validation = new AuroFormValidation$6();
|
|
45209
|
+
this.inputIconName = undefined;
|
|
45210
|
+
this.showPassword = false;
|
|
45211
|
+
this.validationCCLength = undefined;
|
|
45212
|
+
this.hasValue = false;
|
|
45213
|
+
this.label = 'Input label is undefined';
|
|
45214
|
+
|
|
45215
|
+
|
|
44922
45216
|
this.allowedInputTypes = [
|
|
44923
45217
|
"text",
|
|
44924
45218
|
"number",
|
|
@@ -44927,8 +45221,7 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
|
|
|
44927
45221
|
"credit-card",
|
|
44928
45222
|
"tel"
|
|
44929
45223
|
];
|
|
44930
|
-
this.
|
|
44931
|
-
/** @private */
|
|
45224
|
+
this.icon = false;
|
|
44932
45225
|
this.dateFormatMap = {
|
|
44933
45226
|
'mm/dd/yyyy': 'dateMMDDYYYY',
|
|
44934
45227
|
'dd/mm/yyyy': 'dateDDMMYYYY',
|
|
@@ -44945,57 +45238,27 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
|
|
|
44945
45238
|
'dd/mm': 'dateDDMM',
|
|
44946
45239
|
'mm/dd': 'dateMMDD'
|
|
44947
45240
|
};
|
|
44948
|
-
this.disabled = false;
|
|
44949
|
-
/** @private */
|
|
44950
45241
|
this.domHandler = new DomHandler$2();
|
|
44951
45242
|
this.dvInputOnly = false;
|
|
44952
45243
|
this.hasValue = false;
|
|
44953
|
-
this.hideLabelVisually = false;
|
|
44954
|
-
this.icon = false;
|
|
44955
|
-
/** @private */
|
|
44956
45244
|
this.inputIconName = undefined;
|
|
44957
|
-
/** @private */
|
|
44958
45245
|
this.label = 'Input label is undefined';
|
|
44959
|
-
this.layout = 'classic';
|
|
44960
|
-
this.locale = 'en-US';
|
|
44961
|
-
this.max = undefined;
|
|
44962
|
-
this._maxObject = undefined;
|
|
44963
|
-
this.maxLength = undefined;
|
|
44964
|
-
this.min = undefined;
|
|
44965
|
-
this._minObject = undefined;
|
|
44966
|
-
this.minLength = undefined;
|
|
44967
45246
|
this.noValidate = false;
|
|
44968
|
-
this.
|
|
44969
|
-
// Raw values returned from the input mask before model normalization.
|
|
44970
|
-
this._rawMaskValue = undefined;
|
|
44971
|
-
this.required = false;
|
|
44972
|
-
this.setCustomValidityForType = undefined;
|
|
44973
|
-
// Credit Card is intentionally excluded — its mask manages the cursor
|
|
44974
|
-
// itself, and listing it here caused cursor placement issues in Safari.
|
|
44975
|
-
/** @private */
|
|
45247
|
+
this._rawMaskValue = undefined; // Used for storing raw values returned from input mask.
|
|
44976
45248
|
this.setSelectionInputTypes = [
|
|
44977
45249
|
"text",
|
|
44978
45250
|
"password",
|
|
44979
45251
|
"email"
|
|
44980
|
-
];
|
|
44981
|
-
this.shape = 'classic';
|
|
44982
|
-
/** @private */
|
|
45252
|
+
]; // Credit Card is not included as this caused cursor placement issues in Safari.
|
|
44983
45253
|
this.showPassword = false;
|
|
44984
|
-
this.size = 'lg';
|
|
44985
45254
|
this.touched = false;
|
|
44986
|
-
/** @private */
|
|
44987
45255
|
this.uniqueId = new UniqueId$1().create();
|
|
44988
|
-
/** @private */
|
|
44989
45256
|
this.util = new AuroInputUtilities$2({
|
|
44990
45257
|
locale: this.locale,
|
|
44991
45258
|
format: this.format
|
|
44992
45259
|
});
|
|
44993
|
-
/** @private */
|
|
44994
45260
|
this.validation = new AuroFormValidation$6();
|
|
44995
|
-
/** @private */
|
|
44996
45261
|
this.validationCCLength = undefined;
|
|
44997
|
-
this.value = undefined;
|
|
44998
|
-
this._valueObject = undefined;
|
|
44999
45262
|
}
|
|
45000
45263
|
|
|
45001
45264
|
// function to define props used within the scope of this component
|
|
@@ -45543,15 +45806,6 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
|
|
|
45543
45806
|
|
|
45544
45807
|
this.inputId = this.id ? `${this.id}-input` : window.crypto.randomUUID();
|
|
45545
45808
|
|
|
45546
|
-
// Normalize the format token to lowercase so case-mixed values supplied
|
|
45547
|
-
// via attribute (e.g. `format="MM/DD/YYYY"`) hit the `dateFormatMap`
|
|
45548
|
-
// lookup inside `setCustomHelpTextMessage`. Without this, an uppercase
|
|
45549
|
-
// format silently misses the map and leaves `setCustomValidityForType`
|
|
45550
|
-
// unset.
|
|
45551
|
-
if (this.format) {
|
|
45552
|
-
this.format = this.format.toLowerCase();
|
|
45553
|
-
}
|
|
45554
|
-
|
|
45555
45809
|
// use validity message override if declared when initializing the component
|
|
45556
45810
|
if (this.hasAttribute('setCustomValidity')) {
|
|
45557
45811
|
this.ValidityMessageOverride = this.setCustomValidity;
|
|
@@ -45985,38 +46239,6 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
|
|
|
45985
46239
|
this.touched = true;
|
|
45986
46240
|
this.validation.validate(this);
|
|
45987
46241
|
}
|
|
45988
|
-
|
|
45989
|
-
// Prevents cursor jumping in Safari. Setting `this.value` triggers a Lit
|
|
45990
|
-
// update that can re-render the input and reset the native cursor; we
|
|
45991
|
-
// capture the caret position before that update commits and restore it
|
|
45992
|
-
// via `setSelectionRange` once the update has flushed. Gated on
|
|
45993
|
-
// `setSelectionInputTypes` so credit-card (and other masked types whose
|
|
45994
|
-
// formatter manages the cursor itself) doesn't get a competing write.
|
|
45995
|
-
// Capture the caret position INSIDE the gate — reading `selectionStart`
|
|
45996
|
-
// on input types that don't support text selection (number, email in
|
|
45997
|
-
// some browsers) throws InvalidStateError, which would crash all input
|
|
45998
|
-
// handling. Wrap the read in try/catch belt-and-suspenders even though
|
|
45999
|
-
// the gated types currently support it, since the list is a public
|
|
46000
|
-
// property a consumer could mutate.
|
|
46001
|
-
if (this.setSelectionInputTypes.includes(this.type)) {
|
|
46002
|
-
let selectionStart;
|
|
46003
|
-
try {
|
|
46004
|
-
selectionStart = this.inputElement.selectionStart;
|
|
46005
|
-
} catch (error) { // eslint-disable-line no-unused-vars
|
|
46006
|
-
return;
|
|
46007
|
-
}
|
|
46008
|
-
if (typeof selectionStart !== 'number') {
|
|
46009
|
-
return;
|
|
46010
|
-
}
|
|
46011
|
-
this.updateComplete.then(() => {
|
|
46012
|
-
try {
|
|
46013
|
-
this.inputElement.setSelectionRange(selectionStart, selectionStart);
|
|
46014
|
-
} catch (error) { // eslint-disable-line no-unused-vars
|
|
46015
|
-
// Some input types (number/email in certain UAs) throw on
|
|
46016
|
-
// setSelectionRange; swallow and let the native cursor stand.
|
|
46017
|
-
}
|
|
46018
|
-
});
|
|
46019
|
-
}
|
|
46020
46242
|
}
|
|
46021
46243
|
|
|
46022
46244
|
/**
|
|
@@ -46643,7 +46865,7 @@ let AuroHelpText$1$3 = class AuroHelpText extends i$3 {
|
|
|
46643
46865
|
}
|
|
46644
46866
|
};
|
|
46645
46867
|
|
|
46646
|
-
var formkitVersion$7 = '
|
|
46868
|
+
var formkitVersion$7 = '202606291440';
|
|
46647
46869
|
|
|
46648
46870
|
// Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
|
|
46649
46871
|
// See LICENSE in the project root for license information.
|
|
@@ -47146,7 +47368,6 @@ let AuroInput$1 = class AuroInput extends BaseInput$1 {
|
|
|
47146
47368
|
<${this.buttonTag}
|
|
47147
47369
|
@click="${this.handleClickShowPassword}"
|
|
47148
47370
|
appearance="${this.onDark ? 'inverse' : this.appearance}"
|
|
47149
|
-
aria-pressed="${this.showPassword ? 'true' : 'false'}"
|
|
47150
47371
|
class="notificationBtn passwordBtn"
|
|
47151
47372
|
shape="circle"
|
|
47152
47373
|
size="sm"
|
|
@@ -47220,29 +47441,25 @@ let AuroInput$1 = class AuroInput extends BaseInput$1 {
|
|
|
47220
47441
|
* @returns {html} - Returns HTML for the help text and error message.
|
|
47221
47442
|
*/
|
|
47222
47443
|
renderHtmlHelpText() {
|
|
47223
|
-
// Single `<p>` with stable identity across validity transitions —
|
|
47224
|
-
// previously two distinct templates (valid vs invalid) caused Lit to
|
|
47225
|
-
// replace the node entirely on a flip, and VoiceOver wouldn't
|
|
47226
|
-
// re-announce because the live-region element it was watching had been
|
|
47227
|
-
// removed and a new one inserted. Keeping one node means the `role`,
|
|
47228
|
-
// `aria-live`, and text content all change in-place, which AT does
|
|
47229
|
-
// observe and announce.
|
|
47230
|
-
const isError = this.validity && this.validity !== 'valid';
|
|
47231
47444
|
return u$c`
|
|
47232
|
-
|
|
47233
|
-
|
|
47234
|
-
|
|
47235
|
-
|
|
47236
|
-
|
|
47237
|
-
|
|
47238
|
-
|
|
47239
|
-
|
|
47240
|
-
|
|
47241
|
-
|
|
47242
|
-
|
|
47243
|
-
|
|
47244
|
-
|
|
47245
|
-
|
|
47445
|
+
${!this.validity || this.validity === undefined || this.validity === 'valid'
|
|
47446
|
+
? u$c`
|
|
47447
|
+
<${this.helpTextTag}
|
|
47448
|
+
appearance="${this.onDark ? 'inverse' : this.appearance}">
|
|
47449
|
+
<p id="${this.uniqueId}" part="helpText">
|
|
47450
|
+
<slot name="helpText">${this.getHelpText()}</slot>
|
|
47451
|
+
</p>
|
|
47452
|
+
</${this.helpTextTag}>
|
|
47453
|
+
`
|
|
47454
|
+
: u$c`
|
|
47455
|
+
<${this.helpTextTag} error
|
|
47456
|
+
appearance="${this.onDark ? 'inverse' : this.appearance}">
|
|
47457
|
+
<p id="${this.uniqueId}" role="alert" aria-live="assertive" part="helpText">
|
|
47458
|
+
${this.errorMessage}
|
|
47459
|
+
</p>
|
|
47460
|
+
</${this.helpTextTag}>
|
|
47461
|
+
`
|
|
47462
|
+
}
|
|
47246
47463
|
`;
|
|
47247
47464
|
}
|
|
47248
47465
|
|
|
@@ -47389,15 +47606,6 @@ function formatISODate(isoStr, format) {
|
|
|
47389
47606
|
try {
|
|
47390
47607
|
const date = dateFormatter$2.stringToDateInstance(isoStr);
|
|
47391
47608
|
|
|
47392
|
-
// `stringToDateInstance` returns an `Invalid Date` for malformed strings
|
|
47393
|
-
// and `null` for non-string input — it does NOT throw. Without this
|
|
47394
|
-
// guard, `getFullYear()`/`getMonth()`/`getDate()` on an Invalid Date
|
|
47395
|
-
// yield `NaN`, and `String(NaN).padStart(4, '0')` produces literals
|
|
47396
|
-
// like "0NaN/0NaN/0NaN" instead of `undefined`.
|
|
47397
|
-
if (!(date instanceof Date) || Number.isNaN(date.getTime())) {
|
|
47398
|
-
return undefined;
|
|
47399
|
-
}
|
|
47400
|
-
|
|
47401
47609
|
const year = String(date.getFullYear()).padStart(4, '0');
|
|
47402
47610
|
const month = String(date.getMonth() + 1).padStart(2, '0');
|
|
47403
47611
|
const day = String(date.getDate()).padStart(2, '0');
|
|
@@ -47408,10 +47616,7 @@ function formatISODate(isoStr, format) {
|
|
|
47408
47616
|
replace(/mm/iu, month).
|
|
47409
47617
|
replace(/dd/iu, day);
|
|
47410
47618
|
} catch (err) {
|
|
47411
|
-
//
|
|
47412
|
-
// (inside `stringToDateInstance`) could throw on pathological input
|
|
47413
|
-
// future-library-versions might introduce. Treat any thrown error as
|
|
47414
|
-
// "not a valid date" and return undefined.
|
|
47619
|
+
// If the input string is not a valid date, return undefined
|
|
47415
47620
|
return undefined;
|
|
47416
47621
|
}
|
|
47417
47622
|
}
|
|
@@ -48137,6 +48342,7 @@ class AuroDatePicker extends AuroElement$5 {
|
|
|
48137
48342
|
this.rangeLabelBeforeRange = 'before range';
|
|
48138
48343
|
this.rangeLabelInRange = 'in range';
|
|
48139
48344
|
this.rangeLabelAfterRange = 'after range';
|
|
48345
|
+
this.rangeLabelEndPreview = 'previewing range end';
|
|
48140
48346
|
this.blackoutDates = [];
|
|
48141
48347
|
this.blackoutLabel = 'unavailable';
|
|
48142
48348
|
this.navLabelPrevMonth = 'Previous month';
|
|
@@ -48236,6 +48442,22 @@ class AuroDatePicker extends AuroElement$5 {
|
|
|
48236
48442
|
*/
|
|
48237
48443
|
this.handleClick = this.handleClick.bind(this);
|
|
48238
48444
|
|
|
48445
|
+
/**
|
|
48446
|
+
* Single AbortController shared by every listener registered in the
|
|
48447
|
+
* configure* methods. Lets disconnectedCallback tear all of them down
|
|
48448
|
+
* with one abort() call.
|
|
48449
|
+
*
|
|
48450
|
+
* The genuine leak risk is the listeners attached to children that can
|
|
48451
|
+
* outlive the host if they get reparented — `this.dropdown`,
|
|
48452
|
+
* `this.calendar`, and the inputs inside the dropdown's slot.
|
|
48453
|
+
* Listeners attached to `this` (e.g. focusin/focusout on the host)
|
|
48454
|
+
* form a self-contained reference graph that the GC can collect with
|
|
48455
|
+
* the host anyway, but they share the same signal so the cleanup
|
|
48456
|
+
* pattern stays uniform across all configure* sites.
|
|
48457
|
+
* @private
|
|
48458
|
+
*/
|
|
48459
|
+
this._listenerAbortController = new AbortController();
|
|
48460
|
+
|
|
48239
48461
|
/**
|
|
48240
48462
|
* @private
|
|
48241
48463
|
*/
|
|
@@ -48284,6 +48506,7 @@ class AuroDatePicker extends AuroElement$5 {
|
|
|
48284
48506
|
|
|
48285
48507
|
/**
|
|
48286
48508
|
* Label announced for blackout (disabled but in-range) date cells.
|
|
48509
|
+
* @default 'unavailable'
|
|
48287
48510
|
*/
|
|
48288
48511
|
blackoutLabel: {
|
|
48289
48512
|
type: String,
|
|
@@ -48300,6 +48523,7 @@ class AuroDatePicker extends AuroElement$5 {
|
|
|
48300
48523
|
|
|
48301
48524
|
/**
|
|
48302
48525
|
* Accessible label for the calendar grid containing the days of the month.
|
|
48526
|
+
* @default 'Calendar days of the month'
|
|
48303
48527
|
*/
|
|
48304
48528
|
calendarGridLabel: {
|
|
48305
48529
|
type: String,
|
|
@@ -48462,6 +48686,7 @@ class AuroDatePicker extends AuroElement$5 {
|
|
|
48462
48686
|
|
|
48463
48687
|
/**
|
|
48464
48688
|
* Accessible label for the next month navigation button.
|
|
48689
|
+
* @default 'Next month'
|
|
48465
48690
|
*/
|
|
48466
48691
|
navLabelNextMonth: {
|
|
48467
48692
|
type: String,
|
|
@@ -48470,6 +48695,7 @@ class AuroDatePicker extends AuroElement$5 {
|
|
|
48470
48695
|
|
|
48471
48696
|
/**
|
|
48472
48697
|
* Accessible label for the previous month navigation button.
|
|
48698
|
+
* @default 'Previous month'
|
|
48473
48699
|
*/
|
|
48474
48700
|
navLabelPrevMonth: {
|
|
48475
48701
|
type: String,
|
|
@@ -48547,7 +48773,11 @@ class AuroDatePicker extends AuroElement$5 {
|
|
|
48547
48773
|
},
|
|
48548
48774
|
|
|
48549
48775
|
/**
|
|
48550
|
-
* Label announced for cells after
|
|
48776
|
+
* Label announced for cells after a fully selected range (both
|
|
48777
|
+
* `dateFrom` and `dateTo` are set). While a range is still being
|
|
48778
|
+
* picked (`dateFrom` set, `dateTo` unset), focused cells past the
|
|
48779
|
+
* start use `rangeLabelEndPreview` instead.
|
|
48780
|
+
* @default 'after range'
|
|
48551
48781
|
*/
|
|
48552
48782
|
rangeLabelAfterRange: {
|
|
48553
48783
|
type: String,
|
|
@@ -48556,6 +48786,7 @@ class AuroDatePicker extends AuroElement$5 {
|
|
|
48556
48786
|
|
|
48557
48787
|
/**
|
|
48558
48788
|
* Label announced for cells before the range start.
|
|
48789
|
+
* @default 'before range'
|
|
48559
48790
|
*/
|
|
48560
48791
|
rangeLabelBeforeRange: {
|
|
48561
48792
|
type: String,
|
|
@@ -48564,14 +48795,27 @@ class AuroDatePicker extends AuroElement$5 {
|
|
|
48564
48795
|
|
|
48565
48796
|
/**
|
|
48566
48797
|
* Label announced for the range end date cell.
|
|
48798
|
+
* @default 'range end'
|
|
48567
48799
|
*/
|
|
48568
48800
|
rangeLabelEnd: {
|
|
48569
48801
|
type: String,
|
|
48570
48802
|
reflect: true
|
|
48571
48803
|
},
|
|
48572
48804
|
|
|
48805
|
+
/**
|
|
48806
|
+
* Label announced for the focused cell while previewing a range end
|
|
48807
|
+
* (dateFrom set, dateTo not yet selected). Tells AT users that
|
|
48808
|
+
* pressing Enter would commit this cell as the range end.
|
|
48809
|
+
* @default 'previewing range end'
|
|
48810
|
+
*/
|
|
48811
|
+
rangeLabelEndPreview: {
|
|
48812
|
+
type: String,
|
|
48813
|
+
reflect: true
|
|
48814
|
+
},
|
|
48815
|
+
|
|
48573
48816
|
/**
|
|
48574
48817
|
* Label announced for cells within the selected range.
|
|
48818
|
+
* @default 'in range'
|
|
48575
48819
|
*/
|
|
48576
48820
|
rangeLabelInRange: {
|
|
48577
48821
|
type: String,
|
|
@@ -48580,6 +48824,7 @@ class AuroDatePicker extends AuroElement$5 {
|
|
|
48580
48824
|
|
|
48581
48825
|
/**
|
|
48582
48826
|
* Label announced for the range start date cell.
|
|
48827
|
+
* @default 'range start'
|
|
48583
48828
|
*/
|
|
48584
48829
|
rangeLabelStart: {
|
|
48585
48830
|
type: String,
|
|
@@ -48587,7 +48832,7 @@ class AuroDatePicker extends AuroElement$5 {
|
|
|
48587
48832
|
},
|
|
48588
48833
|
|
|
48589
48834
|
/**
|
|
48590
|
-
* Dates that the user should have for reference as part of their decision
|
|
48835
|
+
* Dates that the user should have for reference as part of their decision-making when selecting a date.
|
|
48591
48836
|
* This should be a JSON string array of ISO date strings (`YYYY-MM-DD`).
|
|
48592
48837
|
*/
|
|
48593
48838
|
referenceDates: {
|
|
@@ -48944,10 +49189,26 @@ class AuroDatePicker extends AuroElement$5 {
|
|
|
48944
49189
|
// ─── Vendor calendar time conversions ─────────────────────────────────────
|
|
48945
49190
|
|
|
48946
49191
|
/**
|
|
48947
|
-
* Converts a Unix timestamp (seconds) from the
|
|
49192
|
+
* Converts a Unix timestamp (seconds) from the vendored range-datepicker
|
|
49193
|
+
* (`src/vendor/wc-range-datepicker/day.js`) to an ISO date string.
|
|
49194
|
+
*
|
|
49195
|
+
* Timezone contract:
|
|
49196
|
+
* - INPUT: `time` is assumed to be the seconds-since-epoch of **local
|
|
49197
|
+
* midnight** for the intended calendar day. The vendor's Day constructor
|
|
49198
|
+
* builds it via `date-fns format(date, 't')` from a locally-constructed
|
|
49199
|
+
* Date, so this assumption currently holds end-to-end.
|
|
49200
|
+
* - OUTPUT: `dateFormatter.toISOFormatString` reads the Date's local
|
|
49201
|
+
* getFullYear/getMonth/getDate components, so the returned YYYY-MM-DD
|
|
49202
|
+
* string matches the local calendar day.
|
|
49203
|
+
*
|
|
49204
|
+
* If the vendor ever switches to emitting UTC-midnight timestamps, this
|
|
49205
|
+
* conversion will silently shift the returned date by one day in zones
|
|
49206
|
+
* west of UTC. Any vendor swap should re-verify this contract; the TZ
|
|
49207
|
+
* regression suite (`npm run test:hst`, UTC-10) will catch the symptom.
|
|
49208
|
+
*
|
|
48948
49209
|
* @private
|
|
48949
|
-
* @param {number} time - Unix timestamp
|
|
48950
|
-
* @returns {string} ISO date string (yyyy-mm-dd).
|
|
49210
|
+
* @param {number} time - Unix timestamp (seconds), local midnight of the day.
|
|
49211
|
+
* @returns {string} ISO date string (yyyy-mm-dd) reflecting the local calendar day.
|
|
48951
49212
|
*/
|
|
48952
49213
|
convertWcTimeToDate(time) {
|
|
48953
49214
|
return dateFormatter$1.toISOFormatString(new Date(time * 1000));
|
|
@@ -49049,8 +49310,8 @@ class AuroDatePicker extends AuroElement$5 {
|
|
|
49049
49310
|
}
|
|
49050
49311
|
}
|
|
49051
49312
|
|
|
49052
|
-
// Focus the calendar grid wrapper (
|
|
49053
|
-
// the SR announcement for the active cell
|
|
49313
|
+
// Focus the calendar grid wrapper. The live region (announced just
|
|
49314
|
+
// below) handles the SR announcement for the active cell.
|
|
49054
49315
|
if (activeCell) {
|
|
49055
49316
|
this.calendar.focusActiveCell();
|
|
49056
49317
|
|
|
@@ -49100,11 +49361,13 @@ class AuroDatePicker extends AuroElement$5 {
|
|
|
49100
49361
|
this.dropdown.bibDialogLabel = labelElement.textContent.trim() || undefined;
|
|
49101
49362
|
}
|
|
49102
49363
|
|
|
49364
|
+
const { signal } = this._listenerAbortController;
|
|
49365
|
+
|
|
49103
49366
|
this.dropdown.addEventListener('auroDropdown-triggerClick', () => {
|
|
49104
49367
|
if (!this.isPopoverVisible) {
|
|
49105
49368
|
this.dropdown.show();
|
|
49106
49369
|
}
|
|
49107
|
-
});
|
|
49370
|
+
}, { signal });
|
|
49108
49371
|
|
|
49109
49372
|
this.dropdown.addEventListener('auroDropdown-toggled', () => {
|
|
49110
49373
|
this.notifyDatepickerToggled();
|
|
@@ -49122,7 +49385,7 @@ class AuroDatePicker extends AuroElement$5 {
|
|
|
49122
49385
|
if (this.valueObject) {
|
|
49123
49386
|
this.centralDate = this.value;
|
|
49124
49387
|
} else if (!this.centralDate && !this.calendarStartDate && !this.minDate) {
|
|
49125
|
-
this.centralDate = new Date();
|
|
49388
|
+
this.centralDate = dateFormatter$1.toISOFormatString(new Date());
|
|
49126
49389
|
}
|
|
49127
49390
|
}
|
|
49128
49391
|
|
|
@@ -49202,7 +49465,7 @@ class AuroDatePicker extends AuroElement$5 {
|
|
|
49202
49465
|
this.forceScrollOnNextMobileCalendarRender = false;
|
|
49203
49466
|
}, 0);
|
|
49204
49467
|
}
|
|
49205
|
-
});
|
|
49468
|
+
}, { signal });
|
|
49206
49469
|
|
|
49207
49470
|
// Handle responsive strategy changes while the dropdown is open
|
|
49208
49471
|
// (e.g. resizing from desktop → mobile or vice versa).
|
|
@@ -49249,7 +49512,7 @@ class AuroDatePicker extends AuroElement$5 {
|
|
|
49249
49512
|
});
|
|
49250
49513
|
});
|
|
49251
49514
|
}
|
|
49252
|
-
});
|
|
49515
|
+
}, { signal });
|
|
49253
49516
|
}
|
|
49254
49517
|
|
|
49255
49518
|
/**
|
|
@@ -49262,6 +49525,8 @@ class AuroDatePicker extends AuroElement$5 {
|
|
|
49262
49525
|
|
|
49263
49526
|
this.inputList = [...this.dropdown.querySelectorAll(this.inputTag._$litStatic$)];
|
|
49264
49527
|
|
|
49528
|
+
const { signal } = this._listenerAbortController;
|
|
49529
|
+
|
|
49265
49530
|
this.inputList.forEach((input, index) => {
|
|
49266
49531
|
input.addEventListener('input', (event) => {
|
|
49267
49532
|
event.stopPropagation();
|
|
@@ -49273,7 +49538,7 @@ class AuroDatePicker extends AuroElement$5 {
|
|
|
49273
49538
|
}
|
|
49274
49539
|
|
|
49275
49540
|
this.notifyValueChanged();
|
|
49276
|
-
});
|
|
49541
|
+
}, { signal });
|
|
49277
49542
|
|
|
49278
49543
|
input.addEventListener('auroFormElement-validated', (evt) => {
|
|
49279
49544
|
// not to bubble up input's validated event.
|
|
@@ -49289,7 +49554,7 @@ class AuroDatePicker extends AuroElement$5 {
|
|
|
49289
49554
|
this.validity = evt.detail.validity;
|
|
49290
49555
|
this.errorMessage = evt.detail.message;
|
|
49291
49556
|
}
|
|
49292
|
-
});
|
|
49557
|
+
}, { signal });
|
|
49293
49558
|
});
|
|
49294
49559
|
}
|
|
49295
49560
|
|
|
@@ -49303,19 +49568,32 @@ class AuroDatePicker extends AuroElement$5 {
|
|
|
49303
49568
|
this.calendar.datepicker = this;
|
|
49304
49569
|
this.calendar.dropdown = this.dropdown;
|
|
49305
49570
|
|
|
49571
|
+
const { signal } = this._listenerAbortController;
|
|
49572
|
+
|
|
49306
49573
|
this.calendar.addEventListener('auroCalendar-dateSelected', () => {
|
|
49307
|
-
|
|
49308
|
-
|
|
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
|
+
}
|
|
49309
49584
|
}
|
|
49310
49585
|
|
|
49311
|
-
if (this.inputList[1] && this.calendar.dateTo
|
|
49312
|
-
|
|
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
|
+
}
|
|
49313
49591
|
}
|
|
49314
|
-
});
|
|
49592
|
+
}, { signal });
|
|
49315
49593
|
|
|
49316
49594
|
this.calendar.addEventListener('auroCalendar-dismissRequest', () => {
|
|
49317
49595
|
this.dropdown.hide();
|
|
49318
|
-
});
|
|
49596
|
+
}, { signal });
|
|
49319
49597
|
|
|
49320
49598
|
this.calendar.addEventListener('auroCalendar-centralDateChanged', (event) => {
|
|
49321
49599
|
const match = this.centralDateObject && this.util.datesMatch(event.detail.date, this.centralDateObject);
|
|
@@ -49325,7 +49603,7 @@ class AuroDatePicker extends AuroElement$5 {
|
|
|
49325
49603
|
}
|
|
49326
49604
|
|
|
49327
49605
|
this.notifyMonthChanged(event);
|
|
49328
|
-
});
|
|
49606
|
+
}, { signal });
|
|
49329
49607
|
}
|
|
49330
49608
|
|
|
49331
49609
|
/**
|
|
@@ -49334,10 +49612,17 @@ class AuroDatePicker extends AuroElement$5 {
|
|
|
49334
49612
|
* @returns {void}
|
|
49335
49613
|
*/
|
|
49336
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
|
+
|
|
49337
49622
|
this.addEventListener('focusin', () => {
|
|
49338
49623
|
this.touched = true;
|
|
49339
49624
|
this.hasFocus = true;
|
|
49340
|
-
});
|
|
49625
|
+
}, { signal });
|
|
49341
49626
|
|
|
49342
49627
|
this.addEventListener('focusout', () => {
|
|
49343
49628
|
this.hasFocus = false;
|
|
@@ -49349,7 +49634,7 @@ class AuroDatePicker extends AuroElement$5 {
|
|
|
49349
49634
|
if (!this.matches(':focus-within')) {
|
|
49350
49635
|
this.validate();
|
|
49351
49636
|
}
|
|
49352
|
-
});
|
|
49637
|
+
}, { signal });
|
|
49353
49638
|
|
|
49354
49639
|
if (this.valueObject) {
|
|
49355
49640
|
this.calendar.dateFrom = this.convertToWcValidTime(this.valueObject);
|
|
@@ -49547,6 +49832,41 @@ class AuroDatePicker extends AuroElement$5 {
|
|
|
49547
49832
|
return this.validity !== undefined && this.validity !== 'valid';
|
|
49548
49833
|
}
|
|
49549
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
|
+
|
|
49550
49870
|
/**
|
|
49551
49871
|
* Lifecycle method to check if the locale is valid.
|
|
49552
49872
|
* @ignore
|
|
@@ -49557,10 +49877,15 @@ class AuroDatePicker extends AuroElement$5 {
|
|
|
49557
49877
|
if (changedProperties.has('locale')) {
|
|
49558
49878
|
try {
|
|
49559
49879
|
const supported = Intl.DateTimeFormat.supportedLocalesOf([this.locale], { localeMatcher: 'lookup' });
|
|
49560
|
-
|
|
49880
|
+
if (supported.length > 0) {
|
|
49881
|
+
this._validLocale = this.locale;
|
|
49882
|
+
} else {
|
|
49883
|
+
this._validLocale = 'en-US';
|
|
49884
|
+
this._warnInvalidLocale(this.locale);
|
|
49885
|
+
}
|
|
49561
49886
|
} catch {
|
|
49562
|
-
console.debug(`[AuroDatePicker] The locale "${this.locale}" is not valid. Falling back to "en-US".`); // eslint-disable-line no-console
|
|
49563
49887
|
this._validLocale = 'en-US';
|
|
49888
|
+
this._warnInvalidLocale(this.locale);
|
|
49564
49889
|
}
|
|
49565
49890
|
|
|
49566
49891
|
const previousLocaleFormat = getDateFormatFromLocale$1(changedProperties.get('locale'));
|
|
@@ -49642,8 +49967,6 @@ class AuroDatePicker extends AuroElement$5 {
|
|
|
49642
49967
|
// Skip centralDate update when user clicked a cell in range mode
|
|
49643
49968
|
// to prevent the displayed months from shifting
|
|
49644
49969
|
this.centralDate = this.value;
|
|
49645
|
-
//TODO: TEST THIS CHANGE
|
|
49646
|
-
// this.calendarRenderUtil.updateCentralDate(this, this.value);
|
|
49647
49970
|
}
|
|
49648
49971
|
|
|
49649
49972
|
this.setHasValue();
|
|
@@ -49703,8 +50026,6 @@ class AuroDatePicker extends AuroElement$5 {
|
|
|
49703
50026
|
// Skip centralDate update when user clicked a cell in range mode
|
|
49704
50027
|
// to prevent the displayed months from shifting
|
|
49705
50028
|
this.centralDate = this.valueEnd;
|
|
49706
|
-
// TODO: TEST THIS CHANGE
|
|
49707
|
-
// this.calendarRenderUtil.updateCentralDate(this, this.formattedValueEnd);
|
|
49708
50029
|
}
|
|
49709
50030
|
|
|
49710
50031
|
this.validate();
|
|
@@ -49846,7 +50167,7 @@ class AuroDatePicker extends AuroElement$5 {
|
|
|
49846
50167
|
* @returns {void}
|
|
49847
50168
|
*/
|
|
49848
50169
|
configureClickHandler() {
|
|
49849
|
-
this.addEventListener('click', this.handleClick);
|
|
50170
|
+
this.addEventListener('click', this.handleClick, { signal: this._listenerAbortController.signal });
|
|
49850
50171
|
}
|
|
49851
50172
|
|
|
49852
50173
|
firstUpdated() {
|
|
@@ -49854,6 +50175,15 @@ class AuroDatePicker extends AuroElement$5 {
|
|
|
49854
50175
|
// Add the tag name as an attribute if it is different than the component name
|
|
49855
50176
|
this.runtimeUtils.handleComponentTagRename(this, 'auro-datepicker');
|
|
49856
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
|
+
|
|
49857
50187
|
this.configureDropdown();
|
|
49858
50188
|
this.configureInput();
|
|
49859
50189
|
this.configureCalendar();
|
|
@@ -49865,9 +50195,36 @@ class AuroDatePicker extends AuroElement$5 {
|
|
|
49865
50195
|
connectedCallback() {
|
|
49866
50196
|
super.connectedCallback();
|
|
49867
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
|
+
|
|
49868
50214
|
this.locale = this.domHandler.getLocale(this);
|
|
49869
50215
|
}
|
|
49870
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
|
+
|
|
49871
50228
|
// layout render methods
|
|
49872
50229
|
// ------------------------------------
|
|
49873
50230
|
|
|
@@ -51363,7 +51720,7 @@ let AuroHelpText$1$2 = class AuroHelpText extends i$3 {
|
|
|
51363
51720
|
}
|
|
51364
51721
|
};
|
|
51365
51722
|
|
|
51366
|
-
var formkitVersion$1$2 = '
|
|
51723
|
+
var formkitVersion$1$2 = '202606291440';
|
|
51367
51724
|
|
|
51368
51725
|
// Copyright (c) 2026 Alaska Airlines. All rights reserved. Licensed under the Apache-2.0 license
|
|
51369
51726
|
// See LICENSE in the project root for license information.
|
|
@@ -55691,7 +56048,7 @@ let AuroHelpText$6 = class AuroHelpText extends i$3 {
|
|
|
55691
56048
|
}
|
|
55692
56049
|
};
|
|
55693
56050
|
|
|
55694
|
-
var formkitVersion$6 = '
|
|
56051
|
+
var formkitVersion$6 = '202606291440';
|
|
55695
56052
|
|
|
55696
56053
|
let AuroElement$1$2 = class AuroElement extends i$3 {
|
|
55697
56054
|
static get properties() {
|
|
@@ -59631,7 +59988,7 @@ let AuroHelpText$5 = class AuroHelpText extends i$3 {
|
|
|
59631
59988
|
}
|
|
59632
59989
|
};
|
|
59633
59990
|
|
|
59634
|
-
var formkitVersion$5 = '
|
|
59991
|
+
var formkitVersion$5 = '202606291440';
|
|
59635
59992
|
|
|
59636
59993
|
// Copyright (c) Alaska Air. All right reserved. Licensed under the Apache-2.0 license
|
|
59637
59994
|
// See LICENSE in the project root for license information.
|
|
@@ -61381,7 +61738,7 @@ let AuroHelpText$4 = class AuroHelpText extends i$3 {
|
|
|
61381
61738
|
}
|
|
61382
61739
|
};
|
|
61383
61740
|
|
|
61384
|
-
var formkitVersion$4 = '
|
|
61741
|
+
var formkitVersion$4 = '202606291440';
|
|
61385
61742
|
|
|
61386
61743
|
// Copyright (c) 2026 Alaska Airlines. All rights reserved. Licensed under the Apache-2.0 license
|
|
61387
61744
|
// See LICENSE in the project root for license information.
|
|
@@ -66596,7 +66953,7 @@ let AuroHelpText$2 = class AuroHelpText extends i$3 {
|
|
|
66596
66953
|
}
|
|
66597
66954
|
};
|
|
66598
66955
|
|
|
66599
|
-
var formkitVersion$2 = '
|
|
66956
|
+
var formkitVersion$2 = '202606291440';
|
|
66600
66957
|
|
|
66601
66958
|
let AuroElement$2$1 = class AuroElement extends i$3 {
|
|
66602
66959
|
static get properties() {
|
|
@@ -78314,13 +78671,6 @@ class AuroInputUtilities {
|
|
|
78314
78671
|
* @returns {string | undefined}
|
|
78315
78672
|
*/
|
|
78316
78673
|
toFormattedValue(valueObject, format) {
|
|
78317
|
-
// Exposed publicly via `AuroInputUtil.toFormattedValue`, so a missing
|
|
78318
|
-
// `format` argument has to fail gracefully rather than throw on
|
|
78319
|
-
// `format.toLowerCase()`. Treat any falsy value (undefined, null, '')
|
|
78320
|
-
// as "no format → no display value".
|
|
78321
|
-
if (!format) {
|
|
78322
|
-
return undefined;
|
|
78323
|
-
}
|
|
78324
78674
|
const normalizedFormat = format.toLowerCase();
|
|
78325
78675
|
const maskOptions = this.getMaskOptions('date', normalizedFormat);
|
|
78326
78676
|
|
|
@@ -78471,18 +78821,79 @@ class BaseInput extends AuroElement$1$1 {
|
|
|
78471
78821
|
constructor() {
|
|
78472
78822
|
super();
|
|
78473
78823
|
|
|
78474
|
-
|
|
78475
|
-
|
|
78476
|
-
|
|
78477
|
-
|
|
78478
|
-
|
|
78479
|
-
|
|
78480
|
-
|
|
78481
|
-
|
|
78482
|
-
|
|
78483
|
-
|
|
78824
|
+
this.appearance = "default";
|
|
78825
|
+
this.disabled = false;
|
|
78826
|
+
this.layout = 'classic';
|
|
78827
|
+
this.locale = 'en-US';
|
|
78828
|
+
this.max = undefined;
|
|
78829
|
+
this._maxObject = undefined;
|
|
78830
|
+
this.maxLength = undefined;
|
|
78831
|
+
this.min = undefined;
|
|
78832
|
+
this._minObject = undefined;
|
|
78833
|
+
this.minLength = undefined;
|
|
78834
|
+
this.required = false;
|
|
78835
|
+
this.onDark = false;
|
|
78836
|
+
this.setCustomValidityForType = undefined;
|
|
78837
|
+
this.size = 'lg';
|
|
78838
|
+
this.shape = 'classic';
|
|
78839
|
+
this.value = undefined;
|
|
78840
|
+
this._valueObject = undefined;
|
|
78841
|
+
|
|
78842
|
+
this._initializePrivateDefaults();
|
|
78843
|
+
}
|
|
78844
|
+
|
|
78845
|
+
/**
|
|
78846
|
+
* Internal Defaults.
|
|
78847
|
+
* @private
|
|
78848
|
+
* @returns {void}
|
|
78849
|
+
*/
|
|
78850
|
+
_initializePrivateDefaults() {
|
|
78484
78851
|
this.activeLabel = false;
|
|
78485
|
-
|
|
78852
|
+
this.appearance = "default";
|
|
78853
|
+
this.icon = false;
|
|
78854
|
+
this.disabled = false;
|
|
78855
|
+
this.dvInputOnly = false;
|
|
78856
|
+
this.hideLabelVisually = false;
|
|
78857
|
+
this.max = undefined;
|
|
78858
|
+
this.maxLength = undefined;
|
|
78859
|
+
this.min = undefined;
|
|
78860
|
+
this.minLength = undefined;
|
|
78861
|
+
this.noValidate = false;
|
|
78862
|
+
this.onDark = false;
|
|
78863
|
+
this.required = false;
|
|
78864
|
+
this.setCustomValidityForType = undefined;
|
|
78865
|
+
|
|
78866
|
+
// Used for storing raw values returned from input mask.
|
|
78867
|
+
this._rawMaskValue = undefined;
|
|
78868
|
+
|
|
78869
|
+
/**
|
|
78870
|
+
* @private
|
|
78871
|
+
*/
|
|
78872
|
+
this.layout = 'classic';
|
|
78873
|
+
|
|
78874
|
+
/**
|
|
78875
|
+
* @private
|
|
78876
|
+
*/
|
|
78877
|
+
this.shape = 'classic';
|
|
78878
|
+
|
|
78879
|
+
/**
|
|
78880
|
+
* @private
|
|
78881
|
+
*/
|
|
78882
|
+
this.size = 'lg';
|
|
78883
|
+
|
|
78884
|
+
this.touched = false;
|
|
78885
|
+
this.util = new AuroInputUtilities({
|
|
78886
|
+
locale: "en-US",
|
|
78887
|
+
format: this.format
|
|
78888
|
+
});
|
|
78889
|
+
this.validation = new AuroFormValidation$2();
|
|
78890
|
+
this.inputIconName = undefined;
|
|
78891
|
+
this.showPassword = false;
|
|
78892
|
+
this.validationCCLength = undefined;
|
|
78893
|
+
this.hasValue = false;
|
|
78894
|
+
this.label = 'Input label is undefined';
|
|
78895
|
+
|
|
78896
|
+
|
|
78486
78897
|
this.allowedInputTypes = [
|
|
78487
78898
|
"text",
|
|
78488
78899
|
"number",
|
|
@@ -78491,8 +78902,7 @@ class BaseInput extends AuroElement$1$1 {
|
|
|
78491
78902
|
"credit-card",
|
|
78492
78903
|
"tel"
|
|
78493
78904
|
];
|
|
78494
|
-
this.
|
|
78495
|
-
/** @private */
|
|
78905
|
+
this.icon = false;
|
|
78496
78906
|
this.dateFormatMap = {
|
|
78497
78907
|
'mm/dd/yyyy': 'dateMMDDYYYY',
|
|
78498
78908
|
'dd/mm/yyyy': 'dateDDMMYYYY',
|
|
@@ -78509,57 +78919,27 @@ class BaseInput extends AuroElement$1$1 {
|
|
|
78509
78919
|
'dd/mm': 'dateDDMM',
|
|
78510
78920
|
'mm/dd': 'dateMMDD'
|
|
78511
78921
|
};
|
|
78512
|
-
this.disabled = false;
|
|
78513
|
-
/** @private */
|
|
78514
78922
|
this.domHandler = new DomHandler();
|
|
78515
78923
|
this.dvInputOnly = false;
|
|
78516
78924
|
this.hasValue = false;
|
|
78517
|
-
this.hideLabelVisually = false;
|
|
78518
|
-
this.icon = false;
|
|
78519
|
-
/** @private */
|
|
78520
78925
|
this.inputIconName = undefined;
|
|
78521
|
-
/** @private */
|
|
78522
78926
|
this.label = 'Input label is undefined';
|
|
78523
|
-
this.layout = 'classic';
|
|
78524
|
-
this.locale = 'en-US';
|
|
78525
|
-
this.max = undefined;
|
|
78526
|
-
this._maxObject = undefined;
|
|
78527
|
-
this.maxLength = undefined;
|
|
78528
|
-
this.min = undefined;
|
|
78529
|
-
this._minObject = undefined;
|
|
78530
|
-
this.minLength = undefined;
|
|
78531
78927
|
this.noValidate = false;
|
|
78532
|
-
this.
|
|
78533
|
-
// Raw values returned from the input mask before model normalization.
|
|
78534
|
-
this._rawMaskValue = undefined;
|
|
78535
|
-
this.required = false;
|
|
78536
|
-
this.setCustomValidityForType = undefined;
|
|
78537
|
-
// Credit Card is intentionally excluded — its mask manages the cursor
|
|
78538
|
-
// itself, and listing it here caused cursor placement issues in Safari.
|
|
78539
|
-
/** @private */
|
|
78928
|
+
this._rawMaskValue = undefined; // Used for storing raw values returned from input mask.
|
|
78540
78929
|
this.setSelectionInputTypes = [
|
|
78541
78930
|
"text",
|
|
78542
78931
|
"password",
|
|
78543
78932
|
"email"
|
|
78544
|
-
];
|
|
78545
|
-
this.shape = 'classic';
|
|
78546
|
-
/** @private */
|
|
78933
|
+
]; // Credit Card is not included as this caused cursor placement issues in Safari.
|
|
78547
78934
|
this.showPassword = false;
|
|
78548
|
-
this.size = 'lg';
|
|
78549
78935
|
this.touched = false;
|
|
78550
|
-
/** @private */
|
|
78551
78936
|
this.uniqueId = new UniqueId().create();
|
|
78552
|
-
/** @private */
|
|
78553
78937
|
this.util = new AuroInputUtilities({
|
|
78554
78938
|
locale: this.locale,
|
|
78555
78939
|
format: this.format
|
|
78556
78940
|
});
|
|
78557
|
-
/** @private */
|
|
78558
78941
|
this.validation = new AuroFormValidation$2();
|
|
78559
|
-
/** @private */
|
|
78560
78942
|
this.validationCCLength = undefined;
|
|
78561
|
-
this.value = undefined;
|
|
78562
|
-
this._valueObject = undefined;
|
|
78563
78943
|
}
|
|
78564
78944
|
|
|
78565
78945
|
// function to define props used within the scope of this component
|
|
@@ -79107,15 +79487,6 @@ class BaseInput extends AuroElement$1$1 {
|
|
|
79107
79487
|
|
|
79108
79488
|
this.inputId = this.id ? `${this.id}-input` : window.crypto.randomUUID();
|
|
79109
79489
|
|
|
79110
|
-
// Normalize the format token to lowercase so case-mixed values supplied
|
|
79111
|
-
// via attribute (e.g. `format="MM/DD/YYYY"`) hit the `dateFormatMap`
|
|
79112
|
-
// lookup inside `setCustomHelpTextMessage`. Without this, an uppercase
|
|
79113
|
-
// format silently misses the map and leaves `setCustomValidityForType`
|
|
79114
|
-
// unset.
|
|
79115
|
-
if (this.format) {
|
|
79116
|
-
this.format = this.format.toLowerCase();
|
|
79117
|
-
}
|
|
79118
|
-
|
|
79119
79490
|
// use validity message override if declared when initializing the component
|
|
79120
79491
|
if (this.hasAttribute('setCustomValidity')) {
|
|
79121
79492
|
this.ValidityMessageOverride = this.setCustomValidity;
|
|
@@ -79549,38 +79920,6 @@ class BaseInput extends AuroElement$1$1 {
|
|
|
79549
79920
|
this.touched = true;
|
|
79550
79921
|
this.validation.validate(this);
|
|
79551
79922
|
}
|
|
79552
|
-
|
|
79553
|
-
// Prevents cursor jumping in Safari. Setting `this.value` triggers a Lit
|
|
79554
|
-
// update that can re-render the input and reset the native cursor; we
|
|
79555
|
-
// capture the caret position before that update commits and restore it
|
|
79556
|
-
// via `setSelectionRange` once the update has flushed. Gated on
|
|
79557
|
-
// `setSelectionInputTypes` so credit-card (and other masked types whose
|
|
79558
|
-
// formatter manages the cursor itself) doesn't get a competing write.
|
|
79559
|
-
// Capture the caret position INSIDE the gate — reading `selectionStart`
|
|
79560
|
-
// on input types that don't support text selection (number, email in
|
|
79561
|
-
// some browsers) throws InvalidStateError, which would crash all input
|
|
79562
|
-
// handling. Wrap the read in try/catch belt-and-suspenders even though
|
|
79563
|
-
// the gated types currently support it, since the list is a public
|
|
79564
|
-
// property a consumer could mutate.
|
|
79565
|
-
if (this.setSelectionInputTypes.includes(this.type)) {
|
|
79566
|
-
let selectionStart;
|
|
79567
|
-
try {
|
|
79568
|
-
selectionStart = this.inputElement.selectionStart;
|
|
79569
|
-
} catch (error) { // eslint-disable-line no-unused-vars
|
|
79570
|
-
return;
|
|
79571
|
-
}
|
|
79572
|
-
if (typeof selectionStart !== 'number') {
|
|
79573
|
-
return;
|
|
79574
|
-
}
|
|
79575
|
-
this.updateComplete.then(() => {
|
|
79576
|
-
try {
|
|
79577
|
-
this.inputElement.setSelectionRange(selectionStart, selectionStart);
|
|
79578
|
-
} catch (error) { // eslint-disable-line no-unused-vars
|
|
79579
|
-
// Some input types (number/email in certain UAs) throw on
|
|
79580
|
-
// setSelectionRange; swallow and let the native cursor stand.
|
|
79581
|
-
}
|
|
79582
|
-
});
|
|
79583
|
-
}
|
|
79584
79923
|
}
|
|
79585
79924
|
|
|
79586
79925
|
/**
|
|
@@ -80207,7 +80546,7 @@ let AuroHelpText$1$1 = class AuroHelpText extends i$3 {
|
|
|
80207
80546
|
}
|
|
80208
80547
|
};
|
|
80209
80548
|
|
|
80210
|
-
var formkitVersion$1$1 = '
|
|
80549
|
+
var formkitVersion$1$1 = '202606291440';
|
|
80211
80550
|
|
|
80212
80551
|
// Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
|
|
80213
80552
|
// See LICENSE in the project root for license information.
|
|
@@ -80710,7 +81049,6 @@ class AuroInput extends BaseInput {
|
|
|
80710
81049
|
<${this.buttonTag}
|
|
80711
81050
|
@click="${this.handleClickShowPassword}"
|
|
80712
81051
|
appearance="${this.onDark ? 'inverse' : this.appearance}"
|
|
80713
|
-
aria-pressed="${this.showPassword ? 'true' : 'false'}"
|
|
80714
81052
|
class="notificationBtn passwordBtn"
|
|
80715
81053
|
shape="circle"
|
|
80716
81054
|
size="sm"
|
|
@@ -80784,29 +81122,25 @@ class AuroInput extends BaseInput {
|
|
|
80784
81122
|
* @returns {html} - Returns HTML for the help text and error message.
|
|
80785
81123
|
*/
|
|
80786
81124
|
renderHtmlHelpText() {
|
|
80787
|
-
// Single `<p>` with stable identity across validity transitions —
|
|
80788
|
-
// previously two distinct templates (valid vs invalid) caused Lit to
|
|
80789
|
-
// replace the node entirely on a flip, and VoiceOver wouldn't
|
|
80790
|
-
// re-announce because the live-region element it was watching had been
|
|
80791
|
-
// removed and a new one inserted. Keeping one node means the `role`,
|
|
80792
|
-
// `aria-live`, and text content all change in-place, which AT does
|
|
80793
|
-
// observe and announce.
|
|
80794
|
-
const isError = this.validity && this.validity !== 'valid';
|
|
80795
81125
|
return u$c`
|
|
80796
|
-
|
|
80797
|
-
|
|
80798
|
-
|
|
80799
|
-
|
|
80800
|
-
|
|
80801
|
-
|
|
80802
|
-
|
|
80803
|
-
|
|
80804
|
-
|
|
80805
|
-
|
|
80806
|
-
|
|
80807
|
-
|
|
80808
|
-
|
|
80809
|
-
|
|
81126
|
+
${!this.validity || this.validity === undefined || this.validity === 'valid'
|
|
81127
|
+
? u$c`
|
|
81128
|
+
<${this.helpTextTag}
|
|
81129
|
+
appearance="${this.onDark ? 'inverse' : this.appearance}">
|
|
81130
|
+
<p id="${this.uniqueId}" part="helpText">
|
|
81131
|
+
<slot name="helpText">${this.getHelpText()}</slot>
|
|
81132
|
+
</p>
|
|
81133
|
+
</${this.helpTextTag}>
|
|
81134
|
+
`
|
|
81135
|
+
: u$c`
|
|
81136
|
+
<${this.helpTextTag} error
|
|
81137
|
+
appearance="${this.onDark ? 'inverse' : this.appearance}">
|
|
81138
|
+
<p id="${this.uniqueId}" role="alert" aria-live="assertive" part="helpText">
|
|
81139
|
+
${this.errorMessage}
|
|
81140
|
+
</p>
|
|
81141
|
+
</${this.helpTextTag}>
|
|
81142
|
+
`
|
|
81143
|
+
}
|
|
80810
81144
|
`;
|
|
80811
81145
|
}
|
|
80812
81146
|
|
|
@@ -81333,7 +81667,7 @@ let AuroBibtemplate$1 = class AuroBibtemplate extends i$3 {
|
|
|
81333
81667
|
}
|
|
81334
81668
|
};
|
|
81335
81669
|
|
|
81336
|
-
var formkitVersion$3 = '
|
|
81670
|
+
var formkitVersion$3 = '202606291440';
|
|
81337
81671
|
|
|
81338
81672
|
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}`;
|
|
81339
81673
|
|
|
@@ -90124,7 +90458,7 @@ let AuroHelpText$1 = class AuroHelpText extends i$3 {
|
|
|
90124
90458
|
}
|
|
90125
90459
|
};
|
|
90126
90460
|
|
|
90127
|
-
var formkitVersion$1 = '
|
|
90461
|
+
var formkitVersion$1 = '202606291440';
|
|
90128
90462
|
|
|
90129
90463
|
class AuroElement extends i$3 {
|
|
90130
90464
|
static get properties() {
|
|
@@ -92145,7 +92479,7 @@ class AuroHelpText extends i$3 {
|
|
|
92145
92479
|
}
|
|
92146
92480
|
}
|
|
92147
92481
|
|
|
92148
|
-
var formkitVersion = '
|
|
92482
|
+
var formkitVersion = '202606291440';
|
|
92149
92483
|
|
|
92150
92484
|
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}`;
|
|
92151
92485
|
|