@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
|
@@ -5135,7 +5135,7 @@ function normalizeDates$3(context, ...dates) {
|
|
|
5135
5135
|
* const result = startOfDay(new Date(2014, 8, 2, 11, 55, 0))
|
|
5136
5136
|
* //=> Tue Sep 02 2014 00:00:00
|
|
5137
5137
|
*/
|
|
5138
|
-
function startOfDay$
|
|
5138
|
+
function startOfDay$3(date, options) {
|
|
5139
5139
|
const _date = toDate$3(date, options?.in);
|
|
5140
5140
|
_date.setHours(0, 0, 0, 0);
|
|
5141
5141
|
return _date;
|
|
@@ -5183,8 +5183,8 @@ function differenceInCalendarDays$3(laterDate, earlierDate, options) {
|
|
|
5183
5183
|
earlierDate,
|
|
5184
5184
|
);
|
|
5185
5185
|
|
|
5186
|
-
const laterStartOfDay = startOfDay$
|
|
5187
|
-
const earlierStartOfDay = startOfDay$
|
|
5186
|
+
const laterStartOfDay = startOfDay$3(laterDate_);
|
|
5187
|
+
const earlierStartOfDay = startOfDay$3(earlierDate_);
|
|
5188
5188
|
|
|
5189
5189
|
const laterTimestamp =
|
|
5190
5190
|
+laterStartOfDay - getTimezoneOffsetInMilliseconds$3(laterStartOfDay);
|
|
@@ -10456,13 +10456,6 @@ let AuroInputUtilities$3 = class AuroInputUtilities {
|
|
|
10456
10456
|
* @returns {string | undefined}
|
|
10457
10457
|
*/
|
|
10458
10458
|
toFormattedValue(valueObject, format) {
|
|
10459
|
-
// Exposed publicly via `AuroInputUtil.toFormattedValue`, so a missing
|
|
10460
|
-
// `format` argument has to fail gracefully rather than throw on
|
|
10461
|
-
// `format.toLowerCase()`. Treat any falsy value (undefined, null, '')
|
|
10462
|
-
// as "no format → no display value".
|
|
10463
|
-
if (!format) {
|
|
10464
|
-
return undefined;
|
|
10465
|
-
}
|
|
10466
10459
|
const normalizedFormat = format.toLowerCase();
|
|
10467
10460
|
const maskOptions = this.getMaskOptions('date', normalizedFormat);
|
|
10468
10461
|
|
|
@@ -10613,18 +10606,79 @@ let BaseInput$2 = class BaseInput extends AuroElement$6 {
|
|
|
10613
10606
|
constructor() {
|
|
10614
10607
|
super();
|
|
10615
10608
|
|
|
10616
|
-
|
|
10617
|
-
|
|
10618
|
-
|
|
10619
|
-
|
|
10620
|
-
|
|
10621
|
-
|
|
10622
|
-
|
|
10623
|
-
|
|
10624
|
-
|
|
10625
|
-
|
|
10609
|
+
this.appearance = "default";
|
|
10610
|
+
this.disabled = false;
|
|
10611
|
+
this.layout = 'classic';
|
|
10612
|
+
this.locale = 'en-US';
|
|
10613
|
+
this.max = undefined;
|
|
10614
|
+
this._maxObject = undefined;
|
|
10615
|
+
this.maxLength = undefined;
|
|
10616
|
+
this.min = undefined;
|
|
10617
|
+
this._minObject = undefined;
|
|
10618
|
+
this.minLength = undefined;
|
|
10619
|
+
this.required = false;
|
|
10620
|
+
this.onDark = false;
|
|
10621
|
+
this.setCustomValidityForType = undefined;
|
|
10622
|
+
this.size = 'lg';
|
|
10623
|
+
this.shape = 'classic';
|
|
10624
|
+
this.value = undefined;
|
|
10625
|
+
this._valueObject = undefined;
|
|
10626
|
+
|
|
10627
|
+
this._initializePrivateDefaults();
|
|
10628
|
+
}
|
|
10629
|
+
|
|
10630
|
+
/**
|
|
10631
|
+
* Internal Defaults.
|
|
10632
|
+
* @private
|
|
10633
|
+
* @returns {void}
|
|
10634
|
+
*/
|
|
10635
|
+
_initializePrivateDefaults() {
|
|
10626
10636
|
this.activeLabel = false;
|
|
10627
|
-
|
|
10637
|
+
this.appearance = "default";
|
|
10638
|
+
this.icon = false;
|
|
10639
|
+
this.disabled = false;
|
|
10640
|
+
this.dvInputOnly = false;
|
|
10641
|
+
this.hideLabelVisually = false;
|
|
10642
|
+
this.max = undefined;
|
|
10643
|
+
this.maxLength = undefined;
|
|
10644
|
+
this.min = undefined;
|
|
10645
|
+
this.minLength = undefined;
|
|
10646
|
+
this.noValidate = false;
|
|
10647
|
+
this.onDark = false;
|
|
10648
|
+
this.required = false;
|
|
10649
|
+
this.setCustomValidityForType = undefined;
|
|
10650
|
+
|
|
10651
|
+
// Used for storing raw values returned from input mask.
|
|
10652
|
+
this._rawMaskValue = undefined;
|
|
10653
|
+
|
|
10654
|
+
/**
|
|
10655
|
+
* @private
|
|
10656
|
+
*/
|
|
10657
|
+
this.layout = 'classic';
|
|
10658
|
+
|
|
10659
|
+
/**
|
|
10660
|
+
* @private
|
|
10661
|
+
*/
|
|
10662
|
+
this.shape = 'classic';
|
|
10663
|
+
|
|
10664
|
+
/**
|
|
10665
|
+
* @private
|
|
10666
|
+
*/
|
|
10667
|
+
this.size = 'lg';
|
|
10668
|
+
|
|
10669
|
+
this.touched = false;
|
|
10670
|
+
this.util = new AuroInputUtilities$3({
|
|
10671
|
+
locale: "en-US",
|
|
10672
|
+
format: this.format
|
|
10673
|
+
});
|
|
10674
|
+
this.validation = new AuroFormValidation$7();
|
|
10675
|
+
this.inputIconName = undefined;
|
|
10676
|
+
this.showPassword = false;
|
|
10677
|
+
this.validationCCLength = undefined;
|
|
10678
|
+
this.hasValue = false;
|
|
10679
|
+
this.label = 'Input label is undefined';
|
|
10680
|
+
|
|
10681
|
+
|
|
10628
10682
|
this.allowedInputTypes = [
|
|
10629
10683
|
"text",
|
|
10630
10684
|
"number",
|
|
@@ -10633,8 +10687,7 @@ let BaseInput$2 = class BaseInput extends AuroElement$6 {
|
|
|
10633
10687
|
"credit-card",
|
|
10634
10688
|
"tel"
|
|
10635
10689
|
];
|
|
10636
|
-
this.
|
|
10637
|
-
/** @private */
|
|
10690
|
+
this.icon = false;
|
|
10638
10691
|
this.dateFormatMap = {
|
|
10639
10692
|
'mm/dd/yyyy': 'dateMMDDYYYY',
|
|
10640
10693
|
'dd/mm/yyyy': 'dateDDMMYYYY',
|
|
@@ -10651,57 +10704,27 @@ let BaseInput$2 = class BaseInput extends AuroElement$6 {
|
|
|
10651
10704
|
'dd/mm': 'dateDDMM',
|
|
10652
10705
|
'mm/dd': 'dateMMDD'
|
|
10653
10706
|
};
|
|
10654
|
-
this.disabled = false;
|
|
10655
|
-
/** @private */
|
|
10656
10707
|
this.domHandler = new DomHandler$3();
|
|
10657
10708
|
this.dvInputOnly = false;
|
|
10658
10709
|
this.hasValue = false;
|
|
10659
|
-
this.hideLabelVisually = false;
|
|
10660
|
-
this.icon = false;
|
|
10661
|
-
/** @private */
|
|
10662
10710
|
this.inputIconName = undefined;
|
|
10663
|
-
/** @private */
|
|
10664
10711
|
this.label = 'Input label is undefined';
|
|
10665
|
-
this.layout = 'classic';
|
|
10666
|
-
this.locale = 'en-US';
|
|
10667
|
-
this.max = undefined;
|
|
10668
|
-
this._maxObject = undefined;
|
|
10669
|
-
this.maxLength = undefined;
|
|
10670
|
-
this.min = undefined;
|
|
10671
|
-
this._minObject = undefined;
|
|
10672
|
-
this.minLength = undefined;
|
|
10673
10712
|
this.noValidate = false;
|
|
10674
|
-
this.
|
|
10675
|
-
// Raw values returned from the input mask before model normalization.
|
|
10676
|
-
this._rawMaskValue = undefined;
|
|
10677
|
-
this.required = false;
|
|
10678
|
-
this.setCustomValidityForType = undefined;
|
|
10679
|
-
// Credit Card is intentionally excluded — its mask manages the cursor
|
|
10680
|
-
// itself, and listing it here caused cursor placement issues in Safari.
|
|
10681
|
-
/** @private */
|
|
10713
|
+
this._rawMaskValue = undefined; // Used for storing raw values returned from input mask.
|
|
10682
10714
|
this.setSelectionInputTypes = [
|
|
10683
10715
|
"text",
|
|
10684
10716
|
"password",
|
|
10685
10717
|
"email"
|
|
10686
|
-
];
|
|
10687
|
-
this.shape = 'classic';
|
|
10688
|
-
/** @private */
|
|
10718
|
+
]; // Credit Card is not included as this caused cursor placement issues in Safari.
|
|
10689
10719
|
this.showPassword = false;
|
|
10690
|
-
this.size = 'lg';
|
|
10691
10720
|
this.touched = false;
|
|
10692
|
-
/** @private */
|
|
10693
10721
|
this.uniqueId = new UniqueId$2().create();
|
|
10694
|
-
/** @private */
|
|
10695
10722
|
this.util = new AuroInputUtilities$3({
|
|
10696
10723
|
locale: this.locale,
|
|
10697
10724
|
format: this.format
|
|
10698
10725
|
});
|
|
10699
|
-
/** @private */
|
|
10700
10726
|
this.validation = new AuroFormValidation$7();
|
|
10701
|
-
/** @private */
|
|
10702
10727
|
this.validationCCLength = undefined;
|
|
10703
|
-
this.value = undefined;
|
|
10704
|
-
this._valueObject = undefined;
|
|
10705
10728
|
}
|
|
10706
10729
|
|
|
10707
10730
|
// function to define props used within the scope of this component
|
|
@@ -11249,15 +11272,6 @@ let BaseInput$2 = class BaseInput extends AuroElement$6 {
|
|
|
11249
11272
|
|
|
11250
11273
|
this.inputId = this.id ? `${this.id}-input` : window.crypto.randomUUID();
|
|
11251
11274
|
|
|
11252
|
-
// Normalize the format token to lowercase so case-mixed values supplied
|
|
11253
|
-
// via attribute (e.g. `format="MM/DD/YYYY"`) hit the `dateFormatMap`
|
|
11254
|
-
// lookup inside `setCustomHelpTextMessage`. Without this, an uppercase
|
|
11255
|
-
// format silently misses the map and leaves `setCustomValidityForType`
|
|
11256
|
-
// unset.
|
|
11257
|
-
if (this.format) {
|
|
11258
|
-
this.format = this.format.toLowerCase();
|
|
11259
|
-
}
|
|
11260
|
-
|
|
11261
11275
|
// use validity message override if declared when initializing the component
|
|
11262
11276
|
if (this.hasAttribute('setCustomValidity')) {
|
|
11263
11277
|
this.ValidityMessageOverride = this.setCustomValidity;
|
|
@@ -11691,38 +11705,6 @@ let BaseInput$2 = class BaseInput extends AuroElement$6 {
|
|
|
11691
11705
|
this.touched = true;
|
|
11692
11706
|
this.validation.validate(this);
|
|
11693
11707
|
}
|
|
11694
|
-
|
|
11695
|
-
// Prevents cursor jumping in Safari. Setting `this.value` triggers a Lit
|
|
11696
|
-
// update that can re-render the input and reset the native cursor; we
|
|
11697
|
-
// capture the caret position before that update commits and restore it
|
|
11698
|
-
// via `setSelectionRange` once the update has flushed. Gated on
|
|
11699
|
-
// `setSelectionInputTypes` so credit-card (and other masked types whose
|
|
11700
|
-
// formatter manages the cursor itself) doesn't get a competing write.
|
|
11701
|
-
// Capture the caret position INSIDE the gate — reading `selectionStart`
|
|
11702
|
-
// on input types that don't support text selection (number, email in
|
|
11703
|
-
// some browsers) throws InvalidStateError, which would crash all input
|
|
11704
|
-
// handling. Wrap the read in try/catch belt-and-suspenders even though
|
|
11705
|
-
// the gated types currently support it, since the list is a public
|
|
11706
|
-
// property a consumer could mutate.
|
|
11707
|
-
if (this.setSelectionInputTypes.includes(this.type)) {
|
|
11708
|
-
let selectionStart;
|
|
11709
|
-
try {
|
|
11710
|
-
selectionStart = this.inputElement.selectionStart;
|
|
11711
|
-
} catch (error) { // eslint-disable-line no-unused-vars
|
|
11712
|
-
return;
|
|
11713
|
-
}
|
|
11714
|
-
if (typeof selectionStart !== 'number') {
|
|
11715
|
-
return;
|
|
11716
|
-
}
|
|
11717
|
-
this.updateComplete.then(() => {
|
|
11718
|
-
try {
|
|
11719
|
-
this.inputElement.setSelectionRange(selectionStart, selectionStart);
|
|
11720
|
-
} catch (error) { // eslint-disable-line no-unused-vars
|
|
11721
|
-
// Some input types (number/email in certain UAs) throw on
|
|
11722
|
-
// setSelectionRange; swallow and let the native cursor stand.
|
|
11723
|
-
}
|
|
11724
|
-
});
|
|
11725
|
-
}
|
|
11726
11708
|
}
|
|
11727
11709
|
|
|
11728
11710
|
/**
|
|
@@ -12349,7 +12331,7 @@ let AuroHelpText$8 = class AuroHelpText extends i$2 {
|
|
|
12349
12331
|
}
|
|
12350
12332
|
};
|
|
12351
12333
|
|
|
12352
|
-
var formkitVersion$8 = '
|
|
12334
|
+
var formkitVersion$8 = '202606291440';
|
|
12353
12335
|
|
|
12354
12336
|
// Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
|
|
12355
12337
|
// See LICENSE in the project root for license information.
|
|
@@ -12852,7 +12834,6 @@ let AuroInput$2 = class AuroInput extends BaseInput$2 {
|
|
|
12852
12834
|
<${this.buttonTag}
|
|
12853
12835
|
@click="${this.handleClickShowPassword}"
|
|
12854
12836
|
appearance="${this.onDark ? 'inverse' : this.appearance}"
|
|
12855
|
-
aria-pressed="${this.showPassword ? 'true' : 'false'}"
|
|
12856
12837
|
class="notificationBtn passwordBtn"
|
|
12857
12838
|
shape="circle"
|
|
12858
12839
|
size="sm"
|
|
@@ -12926,29 +12907,25 @@ let AuroInput$2 = class AuroInput extends BaseInput$2 {
|
|
|
12926
12907
|
* @returns {html} - Returns HTML for the help text and error message.
|
|
12927
12908
|
*/
|
|
12928
12909
|
renderHtmlHelpText() {
|
|
12929
|
-
// Single `<p>` with stable identity across validity transitions —
|
|
12930
|
-
// previously two distinct templates (valid vs invalid) caused Lit to
|
|
12931
|
-
// replace the node entirely on a flip, and VoiceOver wouldn't
|
|
12932
|
-
// re-announce because the live-region element it was watching had been
|
|
12933
|
-
// removed and a new one inserted. Keeping one node means the `role`,
|
|
12934
|
-
// `aria-live`, and text content all change in-place, which AT does
|
|
12935
|
-
// observe and announce.
|
|
12936
|
-
const isError = this.validity && this.validity !== 'valid';
|
|
12937
12910
|
return u$d`
|
|
12938
|
-
|
|
12939
|
-
|
|
12940
|
-
|
|
12941
|
-
|
|
12942
|
-
|
|
12943
|
-
|
|
12944
|
-
|
|
12945
|
-
|
|
12946
|
-
|
|
12947
|
-
|
|
12948
|
-
|
|
12949
|
-
|
|
12950
|
-
|
|
12951
|
-
|
|
12911
|
+
${!this.validity || this.validity === undefined || this.validity === 'valid'
|
|
12912
|
+
? u$d`
|
|
12913
|
+
<${this.helpTextTag}
|
|
12914
|
+
appearance="${this.onDark ? 'inverse' : this.appearance}">
|
|
12915
|
+
<p id="${this.uniqueId}" part="helpText">
|
|
12916
|
+
<slot name="helpText">${this.getHelpText()}</slot>
|
|
12917
|
+
</p>
|
|
12918
|
+
</${this.helpTextTag}>
|
|
12919
|
+
`
|
|
12920
|
+
: u$d`
|
|
12921
|
+
<${this.helpTextTag} error
|
|
12922
|
+
appearance="${this.onDark ? 'inverse' : this.appearance}">
|
|
12923
|
+
<p id="${this.uniqueId}" role="alert" aria-live="assertive" part="helpText">
|
|
12924
|
+
${this.errorMessage}
|
|
12925
|
+
</p>
|
|
12926
|
+
</${this.helpTextTag}>
|
|
12927
|
+
`
|
|
12928
|
+
}
|
|
12952
12929
|
`;
|
|
12953
12930
|
}
|
|
12954
12931
|
|
|
@@ -14438,7 +14415,7 @@ function normalizeDates$1(context, ...dates) {
|
|
|
14438
14415
|
* const result = startOfDay(new Date(2014, 8, 2, 11, 55, 0))
|
|
14439
14416
|
* //=> Tue Sep 02 2014 00:00:00
|
|
14440
14417
|
*/
|
|
14441
|
-
function startOfDay$
|
|
14418
|
+
function startOfDay$1(date, options) {
|
|
14442
14419
|
const _date = toDate$1(date, options?.in);
|
|
14443
14420
|
_date.setHours(0, 0, 0, 0);
|
|
14444
14421
|
return _date;
|
|
@@ -14486,8 +14463,8 @@ function differenceInCalendarDays$1(laterDate, earlierDate, options) {
|
|
|
14486
14463
|
earlierDate,
|
|
14487
14464
|
);
|
|
14488
14465
|
|
|
14489
|
-
const laterStartOfDay = startOfDay$
|
|
14490
|
-
const earlierStartOfDay = startOfDay$
|
|
14466
|
+
const laterStartOfDay = startOfDay$1(laterDate_);
|
|
14467
|
+
const earlierStartOfDay = startOfDay$1(earlierDate_);
|
|
14491
14468
|
|
|
14492
14469
|
const laterTimestamp =
|
|
14493
14470
|
+laterStartOfDay - getTimezoneOffsetInMilliseconds$1(laterStartOfDay);
|
|
@@ -23589,13 +23566,6 @@ let AuroInputUtilities$1 = class AuroInputUtilities {
|
|
|
23589
23566
|
* @returns {string | undefined}
|
|
23590
23567
|
*/
|
|
23591
23568
|
toFormattedValue(valueObject, format) {
|
|
23592
|
-
// Exposed publicly via `AuroInputUtil.toFormattedValue`, so a missing
|
|
23593
|
-
// `format` argument has to fail gracefully rather than throw on
|
|
23594
|
-
// `format.toLowerCase()`. Treat any falsy value (undefined, null, '')
|
|
23595
|
-
// as "no format → no display value".
|
|
23596
|
-
if (!format) {
|
|
23597
|
-
return undefined;
|
|
23598
|
-
}
|
|
23599
23569
|
const normalizedFormat = format.toLowerCase();
|
|
23600
23570
|
const maskOptions = this.getMaskOptions('date', normalizedFormat);
|
|
23601
23571
|
|
|
@@ -23951,8 +23921,8 @@ class RangeDatepickerCell extends i$2 {
|
|
|
23951
23921
|
const parsedDateFrom = parseInt(dateFrom, 10);
|
|
23952
23922
|
const parsedDateTo = parseInt(dateTo, 10);
|
|
23953
23923
|
if (day) {
|
|
23954
|
-
if (getTime(startOfDay$
|
|
23955
|
-
getTime(startOfDay$
|
|
23924
|
+
if (getTime(startOfDay$1(parsedDateTo * 1000)) / 1000 === day.date ||
|
|
23925
|
+
getTime(startOfDay$1(parsedDateFrom * 1000)) / 1000 === day.date) {
|
|
23956
23926
|
this.selected = true;
|
|
23957
23927
|
}
|
|
23958
23928
|
if (((hoveredDate === day.date || day.date < hoveredDate) &&
|
|
@@ -24140,7 +24110,7 @@ class RangeDatepickerCalendar extends i$2 {
|
|
|
24140
24110
|
this.dayNamesOfTheWeek = [];
|
|
24141
24111
|
this.daysOfMonth = [];
|
|
24142
24112
|
this._locale = null;
|
|
24143
|
-
this.currentDate = parseInt(format$1(startOfDay$
|
|
24113
|
+
this.currentDate = parseInt(format$1(startOfDay$1(Date.now()), 't'), 10);
|
|
24144
24114
|
this.localeChanged();
|
|
24145
24115
|
this.yearAndMonthChanged(this.year, this.month);
|
|
24146
24116
|
}
|
|
@@ -24614,7 +24584,7 @@ __decorate([n$4({ type: Array })], RangeDatepickerCalendar.prototype, "dayNamesO
|
|
|
24614
24584
|
__decorate([n$4({ type: Array })], RangeDatepickerCalendar.prototype, "daysOfMonth", void 0);
|
|
24615
24585
|
AuroLibraryRuntimeUtils$5$1.prototype.registerComponent('wc-range-datepicker-calendar', RangeDatepickerCalendar);
|
|
24616
24586
|
|
|
24617
|
-
var styleCss$5$2 = i$4`.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}`;
|
|
24587
|
+
var styleCss$5$2 = i$4`.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}`;
|
|
24618
24588
|
|
|
24619
24589
|
var colorCss$5$2 = i$4`: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}`;
|
|
24620
24590
|
|
|
@@ -24639,13 +24609,103 @@ class s{registerComponent(e,t){customElements.get(e)||customElements.define(e,cl
|
|
|
24639
24609
|
|
|
24640
24610
|
var popoverVersion = '6.0.1';
|
|
24641
24611
|
|
|
24642
|
-
|
|
24612
|
+
/**
|
|
24613
|
+
* Single source of truth for parsing and matching blackout dates across the
|
|
24614
|
+
* datepicker. Both `auro-calendar` (memoized Set + `isDateBlackout`) and the
|
|
24615
|
+
* pre-`firstUpdated` fallback inside `auro-calendar-cell` route through these
|
|
24616
|
+
* helpers so the YYYY-MM-DD → seconds conversion and the merge-with-legacy
|
|
24617
|
+
* `disabledDays` rules are defined exactly once.
|
|
24618
|
+
*/
|
|
24643
24619
|
|
|
24644
|
-
|
|
24645
|
-
|
|
24646
|
-
|
|
24647
|
-
|
|
24648
|
-
|
|
24620
|
+
/**
|
|
24621
|
+
* Converts a `YYYY-MM-DD` ISO date string to a Unix timestamp (seconds)
|
|
24622
|
+
* representing local midnight on that calendar day. Returns `null` for
|
|
24623
|
+
* inputs that don't parse to a finite timestamp.
|
|
24624
|
+
*
|
|
24625
|
+
* Uses the `new Date(year, monthIndex, day)` constructor (NOT
|
|
24626
|
+
* `new Date(isoStr)`) so the result is local-midnight rather than UTC
|
|
24627
|
+
* midnight — required to keep the calendar grid aligned with the user's
|
|
24628
|
+
* local calendar day in negative-offset timezones.
|
|
24629
|
+
*
|
|
24630
|
+
* @param {string} isoStr - Date string in `YYYY-MM-DD` format.
|
|
24631
|
+
* @returns {number|null} Local-midnight Unix timestamp (seconds), or null.
|
|
24632
|
+
*/
|
|
24633
|
+
function parseIsoToTimestamp(isoStr) {
|
|
24634
|
+
if (typeof isoStr !== 'string') {
|
|
24635
|
+
return null;
|
|
24636
|
+
}
|
|
24637
|
+
const parts = isoStr.split('-');
|
|
24638
|
+
if (parts.length !== 3) {
|
|
24639
|
+
return null;
|
|
24640
|
+
}
|
|
24641
|
+
const year = parseInt(parts[0], 10);
|
|
24642
|
+
const month = parseInt(parts[1], 10);
|
|
24643
|
+
const day = parseInt(parts[2], 10);
|
|
24644
|
+
if (!Number.isFinite(year) || !Number.isFinite(month) || !Number.isFinite(day)) {
|
|
24645
|
+
return null;
|
|
24646
|
+
}
|
|
24647
|
+
// Reject overflow values like "2024-13-40" — JS `new Date(year, month, day)`
|
|
24648
|
+
// silently normalizes those to a different calendar day, which would
|
|
24649
|
+
// disable the wrong date if we let the result through.
|
|
24650
|
+
if (month < 1 || month > 12 || day < 1 || day > 31) {
|
|
24651
|
+
return null;
|
|
24652
|
+
}
|
|
24653
|
+
const date = new Date(year, month - 1, day);
|
|
24654
|
+
// Guard the residual case where JS still rolls a value (e.g. Feb 30 → Mar 2).
|
|
24655
|
+
// After construction, getFullYear/getMonth/getDate should match the inputs.
|
|
24656
|
+
if (date.getFullYear() !== year || date.getMonth() !== month - 1 || date.getDate() !== day) {
|
|
24657
|
+
return null;
|
|
24658
|
+
}
|
|
24659
|
+
const ts = Math.floor(date.getTime() / 1000);
|
|
24660
|
+
return Number.isFinite(ts) ? ts : null;
|
|
24661
|
+
}
|
|
24662
|
+
|
|
24663
|
+
/**
|
|
24664
|
+
* Builds a `Set<number>` of seconds-since-epoch timestamps covering both the
|
|
24665
|
+
* legacy `disabledDays` (already-numeric) array and the ISO `blackoutDates`
|
|
24666
|
+
* array. Use this for O(1) membership checks in hot paths.
|
|
24667
|
+
*
|
|
24668
|
+
* @param {Array<string|number>|undefined} disabledDays - Legacy timestamp array.
|
|
24669
|
+
* @param {Array<string>|undefined} blackoutDates - ISO `YYYY-MM-DD` array.
|
|
24670
|
+
* @returns {Set<number>}
|
|
24671
|
+
*/
|
|
24672
|
+
function buildBlackoutSet(disabledDays, blackoutDates) {
|
|
24673
|
+
const set = new Set();
|
|
24674
|
+
if (Array.isArray(disabledDays)) {
|
|
24675
|
+
for (const day of disabledDays) {
|
|
24676
|
+
const ts = parseInt(day, 10);
|
|
24677
|
+
if (Number.isFinite(ts)) {
|
|
24678
|
+
set.add(ts);
|
|
24679
|
+
}
|
|
24680
|
+
}
|
|
24681
|
+
}
|
|
24682
|
+
if (Array.isArray(blackoutDates)) {
|
|
24683
|
+
for (const isoStr of blackoutDates) {
|
|
24684
|
+
const ts = parseIsoToTimestamp(isoStr);
|
|
24685
|
+
if (ts !== null) {
|
|
24686
|
+
set.add(ts);
|
|
24687
|
+
}
|
|
24688
|
+
}
|
|
24689
|
+
}
|
|
24690
|
+
return set;
|
|
24691
|
+
}
|
|
24692
|
+
|
|
24693
|
+
/**
|
|
24694
|
+
* One-shot membership test for a single timestamp against both blackout
|
|
24695
|
+
* sources. Allocates a Set on each call; only use this in cold paths
|
|
24696
|
+
* (e.g. the pre-`firstUpdated` cell fallback). Hot paths should hold the
|
|
24697
|
+
* Set returned from `buildBlackoutSet` and `.has(ts)` directly.
|
|
24698
|
+
*
|
|
24699
|
+
* @param {number} dateTs - Unix timestamp (seconds) to test.
|
|
24700
|
+
* @param {Array<string|number>|undefined} disabledDays - Legacy timestamp array.
|
|
24701
|
+
* @param {Array<string>|undefined} blackoutDates - ISO `YYYY-MM-DD` array.
|
|
24702
|
+
* @returns {boolean}
|
|
24703
|
+
*/
|
|
24704
|
+
function isBlackoutTimestamp(dateTs, disabledDays, blackoutDates) {
|
|
24705
|
+
return buildBlackoutSet(disabledDays, blackoutDates).has(dateTs);
|
|
24706
|
+
}
|
|
24707
|
+
|
|
24708
|
+
/* 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 */
|
|
24649
24709
|
|
|
24650
24710
|
class AuroCalendarCell extends i$2 {
|
|
24651
24711
|
constructor() {
|
|
@@ -24693,6 +24753,14 @@ class AuroCalendarCell extends i$2 {
|
|
|
24693
24753
|
type: Boolean,
|
|
24694
24754
|
reflect: true
|
|
24695
24755
|
},
|
|
24756
|
+
/**
|
|
24757
|
+
* @deprecated Propagated from the legacy `auro-calendar.disabledDays`
|
|
24758
|
+
* Unix-timestamp array. The cell honors it for backward compatibility
|
|
24759
|
+
* (see the divergence-check fallback inside `isBlackout`), but
|
|
24760
|
+
* consumers should migrate to `auro-datepicker.blackoutDates`
|
|
24761
|
+
* (YYYY-MM-DD ISO strings). The calendar emits a one-time
|
|
24762
|
+
* deprecation warning the first time a non-empty value is observed.
|
|
24763
|
+
*/
|
|
24696
24764
|
disabledDays: { type: Array },
|
|
24697
24765
|
isCurrentDate: { type: Boolean },
|
|
24698
24766
|
locale: { type: String },
|
|
@@ -24738,8 +24806,8 @@ class AuroCalendarCell extends i$2 {
|
|
|
24738
24806
|
const parsedDateTo = parseInt(dateTo, 10);
|
|
24739
24807
|
|
|
24740
24808
|
if (day) {
|
|
24741
|
-
const departTimestamp =
|
|
24742
|
-
const returnTimestamp =
|
|
24809
|
+
const departTimestamp = new Date(parsedDateFrom * 1000).setHours(0, 0, 0, 0) / 1000;
|
|
24810
|
+
const returnTimestamp = new Date(parsedDateTo * 1000).setHours(0, 0, 0, 0) / 1000;
|
|
24743
24811
|
|
|
24744
24812
|
if (day.date === departTimestamp || day.date === returnTimestamp) {
|
|
24745
24813
|
this.selected = true;
|
|
@@ -24823,27 +24891,33 @@ class AuroCalendarCell extends i$2 {
|
|
|
24823
24891
|
return false;
|
|
24824
24892
|
}
|
|
24825
24893
|
|
|
24826
|
-
//
|
|
24827
|
-
|
|
24828
|
-
|
|
24829
|
-
|
|
24830
|
-
|
|
24831
|
-
|
|
24832
|
-
// Check against blackoutDates (ISO format YYYY-MM-DD) on the datepicker
|
|
24833
|
-
const blackoutDates = this.datepicker?.blackoutDates;
|
|
24834
|
-
|
|
24835
|
-
if (Array.isArray(blackoutDates) && blackoutDates.length > 0) {
|
|
24836
|
-
const date = new Date(this.day.date * 1000);
|
|
24837
|
-
const yyyy = date.getFullYear();
|
|
24838
|
-
const mm = String(date.getMonth() + 1).padStart(2, '0');
|
|
24839
|
-
const dd = String(date.getDate()).padStart(2, '0');
|
|
24840
|
-
const cellDate = `${yyyy}-${mm}-${dd}`;
|
|
24841
|
-
if (blackoutDates.includes(cellDate)) {
|
|
24894
|
+
// Delegate to the calendar's memoized blackout Set for O(1) lookup
|
|
24895
|
+
// (instead of rescanning disabledDays + blackoutDates per render). The
|
|
24896
|
+
// Set is rebuilt only when either source array reference changes — see
|
|
24897
|
+
// auro-calendar.js#_getBlackoutSet.
|
|
24898
|
+
if (this.calendar && typeof this.calendar._getBlackoutSet === 'function') {
|
|
24899
|
+
if (this.calendar._getBlackoutSet().has(this.day.date)) {
|
|
24842
24900
|
return true;
|
|
24843
24901
|
}
|
|
24902
|
+
// If the cell's local disabledDays diverged from the calendar's (a
|
|
24903
|
+
// consumer or test mutated cell.disabledDays directly), the Set does
|
|
24904
|
+
// not reflect that addition — fall through to the per-cell scan only
|
|
24905
|
+
// when the reference no longer matches. Production data flow keeps
|
|
24906
|
+
// these identical, so this branch stays cold. Guarded with
|
|
24907
|
+
// Array.isArray to match `_getBlackoutSet`'s contract: non-array
|
|
24908
|
+
// values are treated as empty rather than crashing on `.findIndex`.
|
|
24909
|
+
if (Array.isArray(this.disabledDays) && this.disabledDays !== this.calendar.disabledDays && this.disabledDays.length > 0) {
|
|
24910
|
+
if (this.disabledDays.findIndex((dd) => parseInt(dd, 10) === this.day.date) !== -1) {
|
|
24911
|
+
return true;
|
|
24912
|
+
}
|
|
24913
|
+
}
|
|
24914
|
+
return false;
|
|
24844
24915
|
}
|
|
24845
24916
|
|
|
24846
|
-
|
|
24917
|
+
// Pre-firstUpdated fallback — the cell may render once before the
|
|
24918
|
+
// ancestor calendar is wired up. Routes through the shared
|
|
24919
|
+
// blackoutUtils helper so the parsing rules stay in one place.
|
|
24920
|
+
return isBlackoutTimestamp(this.day.date, this.disabledDays, this.datepicker?.blackoutDates);
|
|
24847
24921
|
}
|
|
24848
24922
|
|
|
24849
24923
|
/**
|
|
@@ -24949,12 +25023,12 @@ class AuroCalendarCell extends i$2 {
|
|
|
24949
25023
|
const parsedDateFrom = Number.parseInt(this.dateFrom, 10);
|
|
24950
25024
|
if (!Number.isFinite(parsedDateFrom)) return null;
|
|
24951
25025
|
|
|
24952
|
-
const departTimestamp =
|
|
25026
|
+
const departTimestamp = new Date(parsedDateFrom * 1000).setHours(0, 0, 0, 0) / 1000;
|
|
24953
25027
|
const dayDate = this.day.date;
|
|
24954
25028
|
|
|
24955
25029
|
const parsedDateTo = Number.parseInt(this.dateTo, 10);
|
|
24956
25030
|
const hasDateTo = Number.isFinite(parsedDateTo);
|
|
24957
|
-
const returnTimestamp = hasDateTo ?
|
|
25031
|
+
const returnTimestamp = hasDateTo ? new Date(parsedDateTo * 1000).setHours(0, 0, 0, 0) / 1000 : null;
|
|
24958
25032
|
|
|
24959
25033
|
if (dayDate === departTimestamp) return this.datepicker.rangeLabelStart || 'range start';
|
|
24960
25034
|
|
|
@@ -24964,7 +25038,9 @@ class AuroCalendarCell extends i$2 {
|
|
|
24964
25038
|
|
|
24965
25039
|
if (hasDateTo && dayDate > departTimestamp && dayDate < returnTimestamp) return this.datepicker.rangeLabelInRange || 'in range';
|
|
24966
25040
|
|
|
24967
|
-
|
|
25041
|
+
if (!hasDateTo && dayDate > departTimestamp) return this.datepicker.rangeLabelEndPreview || 'previewing range end';
|
|
25042
|
+
|
|
25043
|
+
// After end date when both dateFrom and dateTo are set.
|
|
24968
25044
|
return this.datepicker.rangeLabelAfterRange || 'after range';
|
|
24969
25045
|
}
|
|
24970
25046
|
|
|
@@ -24977,7 +25053,7 @@ class AuroCalendarCell extends i$2 {
|
|
|
24977
25053
|
*/
|
|
24978
25054
|
isDepartDate(day, dateFrom) {
|
|
24979
25055
|
const parsedDateFrom = parseInt(dateFrom, 10);
|
|
24980
|
-
const departTimestamp =
|
|
25056
|
+
const departTimestamp = new Date(parsedDateFrom * 1000).setHours(0, 0, 0, 0) / 1000;
|
|
24981
25057
|
|
|
24982
25058
|
return this.selected && day.date === departTimestamp;
|
|
24983
25059
|
}
|
|
@@ -24992,7 +25068,7 @@ class AuroCalendarCell extends i$2 {
|
|
|
24992
25068
|
*/
|
|
24993
25069
|
isReturnDate(day, dateFrom, dateTo) {
|
|
24994
25070
|
const parsedDateTo = parseInt(dateTo, 10);
|
|
24995
|
-
const returnTimestamp =
|
|
25071
|
+
const returnTimestamp = new Date(parsedDateTo * 1000).setHours(0, 0, 0, 0) / 1000;
|
|
24996
25072
|
|
|
24997
25073
|
return this.selected && day.date === returnTimestamp && dateFrom;
|
|
24998
25074
|
}
|
|
@@ -25156,6 +25232,7 @@ class AuroCalendarCell extends i$2 {
|
|
|
25156
25232
|
setTimeout(() => this.firstUpdated(), 0);
|
|
25157
25233
|
return;
|
|
25158
25234
|
}
|
|
25235
|
+
this.calendar = calendar;
|
|
25159
25236
|
this.datepicker = calendar.datepicker;
|
|
25160
25237
|
this._slotContentHandler = () => {
|
|
25161
25238
|
this.handleSlotContent();
|
|
@@ -25213,12 +25290,13 @@ class AuroCalendarCell extends i$2 {
|
|
|
25213
25290
|
this._cachedButton = this.shadowRoot.querySelector('button.day');
|
|
25214
25291
|
});
|
|
25215
25292
|
|
|
25216
|
-
//
|
|
25293
|
+
// Keep the host's gridcell aria attributes in sync with the day data.
|
|
25217
25294
|
this.updateHostAria();
|
|
25218
25295
|
}
|
|
25219
25296
|
|
|
25220
25297
|
// Update host aria when selection changes (aria-selected, range labels)
|
|
25221
|
-
|
|
25298
|
+
// or when isCurrentDate flips (aria-current).
|
|
25299
|
+
if (properties.has('dateFrom') || properties.has('dateTo') || properties.has('selected') || properties.has('isCurrentDate')) {
|
|
25222
25300
|
this.updateHostAria();
|
|
25223
25301
|
}
|
|
25224
25302
|
|
|
@@ -25229,8 +25307,8 @@ class AuroCalendarCell extends i$2 {
|
|
|
25229
25307
|
}
|
|
25230
25308
|
|
|
25231
25309
|
/**
|
|
25232
|
-
*
|
|
25233
|
-
*
|
|
25310
|
+
* Sets host-level ARIA so each cell exposes its date, selection state,
|
|
25311
|
+
* and blackout status to assistive tech browsing the month grid.
|
|
25234
25312
|
* @private
|
|
25235
25313
|
* @returns {void}
|
|
25236
25314
|
*/
|
|
@@ -25239,16 +25317,27 @@ class AuroCalendarCell extends i$2 {
|
|
|
25239
25317
|
|
|
25240
25318
|
const outOfRange = this.isOutOfRange(this.day, this.min, this.max);
|
|
25241
25319
|
if (outOfRange) {
|
|
25320
|
+
// Strip every aria attribute the in-range branch may have set on a
|
|
25321
|
+
// previous render — if a cell flips from in-range to out-of-range
|
|
25322
|
+
// (calendar shifts months, minDate/maxDate change, etc.).
|
|
25242
25323
|
this.removeAttribute('role');
|
|
25243
25324
|
this.removeAttribute('aria-label');
|
|
25325
|
+
this.removeAttribute('aria-current');
|
|
25326
|
+
this.removeAttribute('aria-selected');
|
|
25327
|
+
this.removeAttribute('aria-disabled');
|
|
25244
25328
|
return;
|
|
25245
25329
|
}
|
|
25246
25330
|
|
|
25247
|
-
// The host acts as the gridcell for ariaActiveDescendantElement.
|
|
25248
25331
|
this.setAttribute('role', 'gridcell');
|
|
25249
25332
|
this.setAttribute('aria-label', this.getAriaLabel());
|
|
25250
25333
|
this.setAttribute('aria-selected', this.selected ? 'true' : 'false');
|
|
25251
25334
|
|
|
25335
|
+
if (this.isCurrentDate) {
|
|
25336
|
+
this.setAttribute('aria-current', 'date');
|
|
25337
|
+
} else {
|
|
25338
|
+
this.removeAttribute('aria-current');
|
|
25339
|
+
}
|
|
25340
|
+
|
|
25252
25341
|
if (this.isBlackout()) {
|
|
25253
25342
|
this.setAttribute('aria-disabled', 'true');
|
|
25254
25343
|
} else {
|
|
@@ -25263,7 +25352,7 @@ class AuroCalendarCell extends i$2 {
|
|
|
25263
25352
|
* @returns {void}
|
|
25264
25353
|
*/
|
|
25265
25354
|
focusButton() {
|
|
25266
|
-
const button = this._cachedButton || this.shadowRoot.querySelector('button:not([
|
|
25355
|
+
const button = this._cachedButton || this.shadowRoot.querySelector('button:not([disabled])');
|
|
25267
25356
|
if (button) {
|
|
25268
25357
|
button.focus({ focusVisible: true });
|
|
25269
25358
|
}
|
|
@@ -25271,7 +25360,9 @@ class AuroCalendarCell extends i$2 {
|
|
|
25271
25360
|
|
|
25272
25361
|
/**
|
|
25273
25362
|
* Imperatively marks this cell as active without triggering a Lit re-render.
|
|
25274
|
-
*
|
|
25363
|
+
* Buttons stay tabindex="-1" because DOM focus stays on the grid wrapper —
|
|
25364
|
+
* arrow keys move the active cell imperatively and the live region carries
|
|
25365
|
+
* the SR announcement.
|
|
25275
25366
|
* @returns {void}
|
|
25276
25367
|
*/
|
|
25277
25368
|
setActive() {
|
|
@@ -25313,10 +25404,13 @@ class AuroCalendarCell extends i$2 {
|
|
|
25313
25404
|
if (!btn || !this.day) return;
|
|
25314
25405
|
|
|
25315
25406
|
const dayDate = this.day.date;
|
|
25316
|
-
const departTimestamp =
|
|
25407
|
+
const departTimestamp = new Date(dateFrom * 1000).setHours(0, 0, 0, 0) / 1000;
|
|
25317
25408
|
const isInRange = dayDate > departTimestamp && dayDate < hoveredDate;
|
|
25318
|
-
|
|
25319
|
-
|
|
25409
|
+
// `>=` so hovering the depart cell itself (a same-day round-trip
|
|
25410
|
+
// preview) still surfaces a visual cue: the depart cell receives both
|
|
25411
|
+
// rangeDepartDate and lastHoveredDate.
|
|
25412
|
+
const isLastHovered = dayDate === hoveredDate && hoveredDate >= departTimestamp;
|
|
25413
|
+
const isDepartWithPreview = dayDate === departTimestamp && hoveredDate >= departTimestamp;
|
|
25320
25414
|
|
|
25321
25415
|
btn.classList.toggle('inRange', isInRange);
|
|
25322
25416
|
btn.classList.toggle('lastHoveredDate', isLastHovered);
|
|
@@ -25374,7 +25468,6 @@ class AuroCalendarCell extends i$2 {
|
|
|
25374
25468
|
@focus="${outOfRange ? undefined : this.handleFocus}"
|
|
25375
25469
|
class="${e$2(buttonClasses)}"
|
|
25376
25470
|
?disabled="${outOfRange}"
|
|
25377
|
-
aria-hidden="${outOfRange ? 'true' : A$7}"
|
|
25378
25471
|
tabindex="-1">
|
|
25379
25472
|
<div class="buttonWrapper" aria-hidden="true">
|
|
25380
25473
|
<div class="currentDayMarker">${this.day?.title || A$7}</div>
|
|
@@ -26480,7 +26573,7 @@ let AuroBibtemplate$3 = class AuroBibtemplate extends i$2 {
|
|
|
26480
26573
|
}
|
|
26481
26574
|
};
|
|
26482
26575
|
|
|
26483
|
-
var formkitVersion$2$1 = '
|
|
26576
|
+
var formkitVersion$2$1 = '202606291440';
|
|
26484
26577
|
|
|
26485
26578
|
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$5`${s$5(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$4`: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}
|
|
26486
26579
|
`,u$4$2=i$4`.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}}
|
|
@@ -26603,7 +26696,11 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
26603
26696
|
this.calendarRangeMonths = null;
|
|
26604
26697
|
|
|
26605
26698
|
/**
|
|
26606
|
-
*
|
|
26699
|
+
* @deprecated Use `auro-datepicker.blackoutDates` (an array of
|
|
26700
|
+
* `YYYY-MM-DD` ISO strings) instead. This legacy array of Unix
|
|
26701
|
+
* timestamps is still honored for backward compatibility but emits a
|
|
26702
|
+
* one-time `console.debug` the first time a non-empty value is observed.
|
|
26703
|
+
* Support will be removed in a future major release.
|
|
26607
26704
|
* @private
|
|
26608
26705
|
*/
|
|
26609
26706
|
this.disabledDays = [];
|
|
@@ -26860,17 +26957,44 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
26860
26957
|
* @returns {void}
|
|
26861
26958
|
*/
|
|
26862
26959
|
updateActiveCellForVisibleMonth() {
|
|
26863
|
-
|
|
26864
|
-
|
|
26865
|
-
requestAnimationFrame(() => {
|
|
26866
|
-
requestAnimationFrame(() => {
|
|
26867
|
-
const newDate = this.computeActiveDate({ skipDateFrom: true });
|
|
26960
|
+
this._afterMonthRender(() => {
|
|
26961
|
+
const newDate = this.computeActiveDate({ skipDateFrom: true });
|
|
26868
26962
|
|
|
26869
|
-
|
|
26870
|
-
|
|
26871
|
-
|
|
26872
|
-
|
|
26873
|
-
|
|
26963
|
+
if (newDate !== null && newDate !== undefined) {
|
|
26964
|
+
this.activeCellDate = newDate;
|
|
26965
|
+
this.setActiveCell(this.activeCellDate);
|
|
26966
|
+
}
|
|
26967
|
+
});
|
|
26968
|
+
}
|
|
26969
|
+
|
|
26970
|
+
/**
|
|
26971
|
+
* Schedules `callback` two animation frames out, giving the child
|
|
26972
|
+
* `auro-formkit-calendar-month` and `auro-formkit-calendar-cell` elements
|
|
26973
|
+
* a full render-and-paint cycle to settle before the callback reads or
|
|
26974
|
+
* mutates DOM.
|
|
26975
|
+
*
|
|
26976
|
+
* Why two frames, not one:
|
|
26977
|
+
* 1. Lit batches property updates and renders in a microtask, so frame N
|
|
26978
|
+
* schedules the render but the new DOM may not be painted yet.
|
|
26979
|
+
* 2. Cells re-cache `_cachedButton` inside their own `updateComplete.then`,
|
|
26980
|
+
* which also lands a tick later. Reading buttons from frame N+1
|
|
26981
|
+
* (after both renders + cache refresh have flushed) reliably hits the
|
|
26982
|
+
* new month's cells.
|
|
26983
|
+
*
|
|
26984
|
+
* Used by every code path that calls `handleNextMonth`/`handlePrevMonth`
|
|
26985
|
+
* and then needs to inspect the freshly-rendered cells (cross-month
|
|
26986
|
+
* keyboard nav, boundary events, `updateActiveCellForVisibleMonth`).
|
|
26987
|
+
* Do NOT collapse to a single rAF — it intermittently lands before
|
|
26988
|
+
* `_cachedButton` is refreshed, which silently breaks focus restoration
|
|
26989
|
+
* and `setActiveCell` lookups.
|
|
26990
|
+
* @private
|
|
26991
|
+
* @param {() => void} callback - Runs once after the month re-render and
|
|
26992
|
+
* the cells' button caches have refreshed.
|
|
26993
|
+
* @returns {void}
|
|
26994
|
+
*/
|
|
26995
|
+
_afterMonthRender(callback) {
|
|
26996
|
+
requestAnimationFrame(() => {
|
|
26997
|
+
requestAnimationFrame(callback);
|
|
26874
26998
|
});
|
|
26875
26999
|
}
|
|
26876
27000
|
|
|
@@ -26988,6 +27112,47 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
26988
27112
|
return Array.from(this.shadowRoot.querySelectorAll('auro-formkit-calendar-month'));
|
|
26989
27113
|
}
|
|
26990
27114
|
|
|
27115
|
+
/**
|
|
27116
|
+
* Picks the focusable cell whose date is closest to targetTs. Used as a
|
|
27117
|
+
* fallback after a month-boundary nav when the exact target date isn't
|
|
27118
|
+
* focusable — typically because the month re-render lagged or the date
|
|
27119
|
+
* was filtered out by isOutOfRange. When two cells are equidistant, the
|
|
27120
|
+
* navigation direction breaks the tie so the user moves the way they
|
|
27121
|
+
* pressed (forward → later cell, backward → earlier cell).
|
|
27122
|
+
* @private
|
|
27123
|
+
* @param {Array} cells - Focusable cells from getAllFocusableCells.
|
|
27124
|
+
* @param {Number} targetTs - Desired Unix timestamp (seconds).
|
|
27125
|
+
* @param {'next'|'prev'} direction - Navigation direction.
|
|
27126
|
+
* @returns {Object|null} The nearest cell, or null when cells is empty.
|
|
27127
|
+
*/
|
|
27128
|
+
pickNearestCell(cells, targetTs, direction) {
|
|
27129
|
+
if (!cells.length) {
|
|
27130
|
+
return null;
|
|
27131
|
+
}
|
|
27132
|
+
const forward = direction === 'next';
|
|
27133
|
+
let best = null;
|
|
27134
|
+
let bestDelta = Infinity;
|
|
27135
|
+
cells.forEach((cell) => {
|
|
27136
|
+
if (!cell.day) {
|
|
27137
|
+
return;
|
|
27138
|
+
}
|
|
27139
|
+
const distance = Math.abs(cell.day.date - targetTs);
|
|
27140
|
+
if (distance < bestDelta) {
|
|
27141
|
+
best = cell;
|
|
27142
|
+
bestDelta = distance;
|
|
27143
|
+
return;
|
|
27144
|
+
}
|
|
27145
|
+
if (distance === bestDelta && best) {
|
|
27146
|
+
if (forward && cell.day.date > best.day.date) {
|
|
27147
|
+
best = cell;
|
|
27148
|
+
} else if (!forward && cell.day.date < best.day.date) {
|
|
27149
|
+
best = cell;
|
|
27150
|
+
}
|
|
27151
|
+
}
|
|
27152
|
+
});
|
|
27153
|
+
return best;
|
|
27154
|
+
}
|
|
27155
|
+
|
|
26991
27156
|
/**
|
|
26992
27157
|
* Gets all focusable cells across all rendered months.
|
|
26993
27158
|
* @private
|
|
@@ -27004,9 +27169,9 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
27004
27169
|
|
|
27005
27170
|
/**
|
|
27006
27171
|
* Sets the active cell across all months. Only one cell has tabindex="0" at a time.
|
|
27007
|
-
* Uses imperative DOM manipulation — no Lit re-render triggered.
|
|
27008
|
-
*
|
|
27009
|
-
*
|
|
27172
|
+
* Uses imperative DOM manipulation — no Lit re-render triggered. DOM focus
|
|
27173
|
+
* stays on the grid wrapper; the live region (see getOrCreateLiveRegion)
|
|
27174
|
+
* is what announces the active cell to assistive tech.
|
|
27010
27175
|
* @param {Number} date - Unix timestamp of the cell to activate.
|
|
27011
27176
|
* @returns {void}
|
|
27012
27177
|
*/
|
|
@@ -27055,10 +27220,23 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
27055
27220
|
/**
|
|
27056
27221
|
* Shows the activeCell ring when the grid gains focus.
|
|
27057
27222
|
* @private
|
|
27223
|
+
* @param {FocusEvent} [event] - The focusin event.
|
|
27058
27224
|
* @returns {void}
|
|
27059
27225
|
*/
|
|
27060
|
-
handleGridFocusIn() {
|
|
27226
|
+
handleGridFocusIn(event) {
|
|
27061
27227
|
this._gridHasFocus = true;
|
|
27228
|
+
|
|
27229
|
+
// Only apply the activeCell ring when the grid wrapper itself receives focus
|
|
27230
|
+
// (Tab/programmatic). When focus moves into a cell button via mousedown,
|
|
27231
|
+
// event.target is the cell descendant — skip the ring here. The subsequent
|
|
27232
|
+
// click handler calls setActiveCell on the clicked cell, which applies the
|
|
27233
|
+
// ring there. Without this guard, mousedown briefly flashes the ring on the
|
|
27234
|
+
// previously-active cell (e.g. the 1st-of-month set by month navigation
|
|
27235
|
+
// when the grid was not focused).
|
|
27236
|
+
if (event && event.target !== event.currentTarget) {
|
|
27237
|
+
return;
|
|
27238
|
+
}
|
|
27239
|
+
|
|
27062
27240
|
const activeCell = this.getAllFocusableCells().find((cell) => cell.active);
|
|
27063
27241
|
if (activeCell) {
|
|
27064
27242
|
const btn = activeCell._cachedButton || activeCell.shadowRoot.querySelector('button.day');
|
|
@@ -27087,6 +27265,65 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
27087
27265
|
this.clearRangePreview();
|
|
27088
27266
|
}
|
|
27089
27267
|
|
|
27268
|
+
/**
|
|
27269
|
+
* Returns a memoized Set of blackout timestamps (seconds) drawn from both
|
|
27270
|
+
* the legacy `disabledDays` array and the datepicker's ISO `blackoutDates`.
|
|
27271
|
+
* The cache invalidates when either source array's reference changes, which
|
|
27272
|
+
* matches Lit's own reactive identity semantics for array properties.
|
|
27273
|
+
* @private
|
|
27274
|
+
* @returns {Set<Number>}
|
|
27275
|
+
*/
|
|
27276
|
+
_getBlackoutSet() {
|
|
27277
|
+
// Normalize non-array values to a stable `null` sentinel rather than a
|
|
27278
|
+
// fresh `[]` per call — otherwise the reference-identity cache key
|
|
27279
|
+
// (`_cachedBlackoutDisabledDays === disabledDays`) never matches on
|
|
27280
|
+
// subsequent calls and the Set rebuilds every time. `buildBlackoutSet`
|
|
27281
|
+
// already treats null/non-array as "no legacy disabledDays" via its
|
|
27282
|
+
// own Array.isArray gate.
|
|
27283
|
+
const disabledDays = Array.isArray(this.disabledDays) ? this.disabledDays : null;
|
|
27284
|
+
const blackoutDates = this.datepicker?.blackoutDates;
|
|
27285
|
+
if (this._blackoutSet &&
|
|
27286
|
+
this._cachedBlackoutDisabledDays === disabledDays &&
|
|
27287
|
+
this._cachedBlackoutDates === blackoutDates) {
|
|
27288
|
+
return this._blackoutSet;
|
|
27289
|
+
}
|
|
27290
|
+
|
|
27291
|
+
if (disabledDays && disabledDays.length > 0) {
|
|
27292
|
+
this._warnDisabledDaysDeprecated();
|
|
27293
|
+
}
|
|
27294
|
+
|
|
27295
|
+
this._blackoutSet = buildBlackoutSet(disabledDays, blackoutDates);
|
|
27296
|
+
this._cachedBlackoutDisabledDays = disabledDays;
|
|
27297
|
+
this._cachedBlackoutDates = blackoutDates;
|
|
27298
|
+
return this._blackoutSet;
|
|
27299
|
+
}
|
|
27300
|
+
|
|
27301
|
+
/**
|
|
27302
|
+
* Per-class flag that gates the `disabledDays` deprecation warning so it
|
|
27303
|
+
* fires exactly once per page no matter how many calendars or rebuild
|
|
27304
|
+
* cycles encounter the legacy array.
|
|
27305
|
+
* @private
|
|
27306
|
+
*/
|
|
27307
|
+
static _warnedDisabledDaysDeprecation = false;
|
|
27308
|
+
|
|
27309
|
+
/**
|
|
27310
|
+
* One-time `console.debug` directing consumers from the legacy
|
|
27311
|
+
* `disabledDays` Unix-timestamp API to the ISO `blackoutDates` API. Fires
|
|
27312
|
+
* the first time `_getBlackoutSet` rebuilds from a non-empty
|
|
27313
|
+
* `disabledDays`; subsequent calls (on this or any other AuroCalendar
|
|
27314
|
+
* instance on the page) are silent.
|
|
27315
|
+
* @private
|
|
27316
|
+
* @returns {void}
|
|
27317
|
+
*/
|
|
27318
|
+
_warnDisabledDaysDeprecated() {
|
|
27319
|
+
if (AuroCalendar._warnedDisabledDaysDeprecation) {
|
|
27320
|
+
return;
|
|
27321
|
+
}
|
|
27322
|
+
AuroCalendar._warnedDisabledDaysDeprecation = true;
|
|
27323
|
+
// eslint-disable-next-line no-console
|
|
27324
|
+
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.');
|
|
27325
|
+
}
|
|
27326
|
+
|
|
27090
27327
|
/**
|
|
27091
27328
|
* Computes the initial active date from data properties alone — no DOM required.
|
|
27092
27329
|
* Priority:
|
|
@@ -27131,21 +27368,10 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
27131
27368
|
const minTs = Number.isFinite(rawMin) ? rawMin : -Infinity;
|
|
27132
27369
|
const maxTs = Number.isFinite(rawMax) ? rawMax : Infinity;
|
|
27133
27370
|
|
|
27134
|
-
// Build a Set of blackout timestamps for O(1) lookup.
|
|
27135
|
-
|
|
27136
|
-
|
|
27137
|
-
|
|
27138
|
-
// Parse YYYY-MM-DD as local date to avoid UTC shift issues.
|
|
27139
|
-
const isoBlackouts = this.datepicker?.blackoutDates;
|
|
27140
|
-
if (Array.isArray(isoBlackouts)) {
|
|
27141
|
-
for (const isoStr of isoBlackouts) {
|
|
27142
|
-
const parts = isoStr.split('-');
|
|
27143
|
-
const ts = Math.floor(new Date(parseInt(parts[0], 10), parseInt(parts[1], 10) - 1, parseInt(parts[2], 10)).getTime() / 1000);
|
|
27144
|
-
if (Number.isFinite(ts)) {
|
|
27145
|
-
blackoutSet.add(ts);
|
|
27146
|
-
}
|
|
27147
|
-
}
|
|
27148
|
-
}
|
|
27371
|
+
// Build a Set of blackout timestamps for O(1) lookup. Memoized by the
|
|
27372
|
+
// identity of the source arrays so rapid month nav doesn't rebuild the
|
|
27373
|
+
// Set (and re-parse every ISO string) on every keypress.
|
|
27374
|
+
const blackoutSet = this._getBlackoutSet();
|
|
27149
27375
|
|
|
27150
27376
|
/**
|
|
27151
27377
|
* A date (unix timestamp in seconds, midnight-aligned) is "enabled" when
|
|
@@ -27341,8 +27567,8 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
27341
27567
|
|
|
27342
27568
|
/**
|
|
27343
27569
|
* Handles arrow key navigation on the calendar grid wrapper.
|
|
27344
|
-
* Focus stays on the grid wrapper; only
|
|
27345
|
-
*
|
|
27570
|
+
* Focus stays on the grid wrapper; only the visual active-cell indicator
|
|
27571
|
+
* changes. The live region announces the new active cell.
|
|
27346
27572
|
* @private
|
|
27347
27573
|
* @param {KeyboardEvent} event - The keyboard event.
|
|
27348
27574
|
* @returns {void}
|
|
@@ -27407,21 +27633,21 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
27407
27633
|
} else {
|
|
27408
27634
|
this.handlePrevMonth({ skipActiveUpdate: true });
|
|
27409
27635
|
}
|
|
27410
|
-
|
|
27411
|
-
|
|
27412
|
-
|
|
27413
|
-
|
|
27414
|
-
|
|
27415
|
-
|
|
27416
|
-
|
|
27417
|
-
|
|
27418
|
-
|
|
27636
|
+
this._afterMonthRender(() => {
|
|
27637
|
+
const cells = this.getAllFocusableCells();
|
|
27638
|
+
const target = cells.find((cell) => cell.day && cell.day.date === targetTs);
|
|
27639
|
+
if (target) {
|
|
27640
|
+
this.setActiveCell(target.day.date);
|
|
27641
|
+
this.handleCellFocused({ detail: { date: target.day.date } });
|
|
27642
|
+
} else {
|
|
27643
|
+
const fallback = this.pickNearestCell(cells, targetTs, navDir);
|
|
27644
|
+
if (fallback) {
|
|
27419
27645
|
this.setActiveCell(fallback.day.date);
|
|
27420
27646
|
this.handleCellFocused({ detail: { date: fallback.day.date } });
|
|
27421
27647
|
}
|
|
27422
|
-
|
|
27423
|
-
|
|
27424
|
-
|
|
27648
|
+
}
|
|
27649
|
+
// Re-focus grid wrapper after month change re-render
|
|
27650
|
+
this.focusActiveCell();
|
|
27425
27651
|
});
|
|
27426
27652
|
}
|
|
27427
27653
|
}
|
|
@@ -27447,26 +27673,20 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
27447
27673
|
} else {
|
|
27448
27674
|
this.handlePrevMonth({ skipActiveUpdate: true });
|
|
27449
27675
|
}
|
|
27450
|
-
|
|
27451
|
-
|
|
27452
|
-
|
|
27453
|
-
|
|
27454
|
-
|
|
27455
|
-
|
|
27456
|
-
|
|
27457
|
-
|
|
27458
|
-
|
|
27459
|
-
|
|
27460
|
-
if (navDirection === 'next') {
|
|
27461
|
-
[nearest] = cells;
|
|
27462
|
-
} else {
|
|
27463
|
-
nearest = cells[cells.length - 1];
|
|
27464
|
-
}
|
|
27676
|
+
this._afterMonthRender(() => {
|
|
27677
|
+
const cells = this.getAllFocusableCells();
|
|
27678
|
+
const target = cells.find((cell) => cell.day && cell.day.date === targetDate);
|
|
27679
|
+
if (target) {
|
|
27680
|
+
this.setActiveCell(target.day.date);
|
|
27681
|
+
this.handleCellFocused({ detail: { date: target.day.date } });
|
|
27682
|
+
} else {
|
|
27683
|
+
const nearest = this.pickNearestCell(cells, targetDate, navDirection);
|
|
27684
|
+
if (nearest) {
|
|
27465
27685
|
this.setActiveCell(nearest.day.date);
|
|
27466
27686
|
this.handleCellFocused({ detail: { date: nearest.day.date } });
|
|
27467
27687
|
}
|
|
27468
|
-
|
|
27469
|
-
|
|
27688
|
+
}
|
|
27689
|
+
this.focusActiveCell();
|
|
27470
27690
|
});
|
|
27471
27691
|
}
|
|
27472
27692
|
}
|
|
@@ -27516,19 +27736,22 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
27516
27736
|
}
|
|
27517
27737
|
|
|
27518
27738
|
this.handleNextMonth({ skipActiveUpdate: true });
|
|
27519
|
-
|
|
27520
|
-
|
|
27521
|
-
|
|
27522
|
-
|
|
27523
|
-
|
|
27524
|
-
|
|
27525
|
-
|
|
27526
|
-
|
|
27527
|
-
|
|
27528
|
-
|
|
27739
|
+
this._afterMonthRender(() => {
|
|
27740
|
+
const cells = this.getAllFocusableCells();
|
|
27741
|
+
const target = cells.find((cell) => cell.day && cell.day.date === nextTs);
|
|
27742
|
+
if (target) {
|
|
27743
|
+
this.setActiveCell(target.day.date);
|
|
27744
|
+
this.focusActiveCell();
|
|
27745
|
+
} else {
|
|
27746
|
+
// Same nearest-by-date fallback handleGridKeyDown uses — direct
|
|
27747
|
+
// `cells[length - 1]` would land on the end of the new month,
|
|
27748
|
+
// far from the user's intended `nextTs`.
|
|
27749
|
+
const fallback = this.pickNearestCell(cells, nextTs, 'next');
|
|
27750
|
+
if (fallback) {
|
|
27751
|
+
this.setActiveCell(fallback.day.date);
|
|
27529
27752
|
this.focusActiveCell();
|
|
27530
27753
|
}
|
|
27531
|
-
}
|
|
27754
|
+
}
|
|
27532
27755
|
});
|
|
27533
27756
|
} else if (direction === 'prev' && this.showPrevMonthBtn) {
|
|
27534
27757
|
// Navigate to previous month and focus the computed previous date.
|
|
@@ -27542,19 +27765,22 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
27542
27765
|
}
|
|
27543
27766
|
|
|
27544
27767
|
this.handlePrevMonth({ skipActiveUpdate: true });
|
|
27545
|
-
|
|
27546
|
-
|
|
27547
|
-
|
|
27548
|
-
|
|
27549
|
-
|
|
27550
|
-
|
|
27551
|
-
|
|
27552
|
-
|
|
27553
|
-
|
|
27554
|
-
|
|
27768
|
+
this._afterMonthRender(() => {
|
|
27769
|
+
const cells = this.getAllFocusableCells();
|
|
27770
|
+
const target = cells.find((cell) => cell.day && cell.day.date === prevTs);
|
|
27771
|
+
if (target) {
|
|
27772
|
+
this.setActiveCell(target.day.date);
|
|
27773
|
+
this.focusActiveCell();
|
|
27774
|
+
} else {
|
|
27775
|
+
// Same nearest-by-date fallback handleGridKeyDown uses — direct
|
|
27776
|
+
// `cells[0]` would land on the start of the previous month, far
|
|
27777
|
+
// from the user's intended `prevTs`.
|
|
27778
|
+
const fallback = this.pickNearestCell(cells, prevTs, 'prev');
|
|
27779
|
+
if (fallback) {
|
|
27780
|
+
this.setActiveCell(fallback.day.date);
|
|
27555
27781
|
this.focusActiveCell();
|
|
27556
27782
|
}
|
|
27557
|
-
}
|
|
27783
|
+
}
|
|
27558
27784
|
});
|
|
27559
27785
|
}
|
|
27560
27786
|
} else if (key === 'ArrowDown' || key === 'ArrowUp') {
|
|
@@ -27582,20 +27808,22 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
27582
27808
|
} else {
|
|
27583
27809
|
this.handlePrevMonth({ skipActiveUpdate: true });
|
|
27584
27810
|
}
|
|
27585
|
-
|
|
27586
|
-
|
|
27587
|
-
|
|
27588
|
-
|
|
27589
|
-
|
|
27590
|
-
|
|
27591
|
-
|
|
27592
|
-
|
|
27593
|
-
|
|
27594
|
-
|
|
27811
|
+
this._afterMonthRender(() => {
|
|
27812
|
+
const cells = this.getAllFocusableCells();
|
|
27813
|
+
const target = cells.find((cell) => cell.day && cell.day.date === targetDate);
|
|
27814
|
+
if (target) {
|
|
27815
|
+
this.setActiveCell(target.day.date);
|
|
27816
|
+
this.focusActiveCell();
|
|
27817
|
+
} else {
|
|
27818
|
+
// Same nearest-by-date fallback handleGridKeyDown uses — the
|
|
27819
|
+
// old direction-based `cells[0]`/`cells[length-1]` clamp
|
|
27820
|
+
// could land 25+ days from the intended target.
|
|
27821
|
+
const nearest = this.pickNearestCell(cells, targetDate, navDirection);
|
|
27822
|
+
if (nearest) {
|
|
27595
27823
|
this.setActiveCell(nearest.day.date);
|
|
27596
27824
|
this.focusActiveCell();
|
|
27597
27825
|
}
|
|
27598
|
-
}
|
|
27826
|
+
}
|
|
27599
27827
|
});
|
|
27600
27828
|
}
|
|
27601
27829
|
}
|
|
@@ -27634,8 +27862,9 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
27634
27862
|
return;
|
|
27635
27863
|
}
|
|
27636
27864
|
|
|
27637
|
-
//
|
|
27638
|
-
// so
|
|
27865
|
+
// DOM focus stays on the grid wrapper while arrow keys move the active
|
|
27866
|
+
// cell, so cell buttons never receive native focus. The debounced live
|
|
27867
|
+
// region carries the full-context announcement instead.
|
|
27639
27868
|
const announcement = this.buildFocusAnnouncement(date);
|
|
27640
27869
|
this.announceFocusDebounced(announcement);
|
|
27641
27870
|
|
|
@@ -27705,10 +27934,10 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
27705
27934
|
return null;
|
|
27706
27935
|
}
|
|
27707
27936
|
|
|
27708
|
-
const departTs =
|
|
27937
|
+
const departTs = new Date(parsedFrom * 1000).setHours(0, 0, 0, 0) / 1000;
|
|
27709
27938
|
const parsedTo = Number.parseInt(this.dateTo, 10);
|
|
27710
27939
|
const hasTo = Number.isFinite(parsedTo);
|
|
27711
|
-
const returnTs = hasTo ?
|
|
27940
|
+
const returnTs = hasTo ? new Date(parsedTo * 1000).setHours(0, 0, 0, 0) / 1000 : null;
|
|
27712
27941
|
|
|
27713
27942
|
if (date === departTs) {
|
|
27714
27943
|
return this.datepicker.rangeLabelStart || 'range start';
|
|
@@ -27722,36 +27951,22 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
27722
27951
|
if (hasTo && date > departTs && date < returnTs) {
|
|
27723
27952
|
return this.datepicker.rangeLabelInRange || 'in range';
|
|
27724
27953
|
}
|
|
27954
|
+
if (!hasTo && date > departTs) {
|
|
27955
|
+
return this.datepicker.rangeLabelEndPreview || 'previewing range end';
|
|
27956
|
+
}
|
|
27725
27957
|
return this.datepicker.rangeLabelAfterRange || 'after range';
|
|
27726
27958
|
}
|
|
27727
27959
|
|
|
27728
27960
|
/**
|
|
27729
|
-
* Checks whether a given date is a blackout date.
|
|
27961
|
+
* Checks whether a given date is a blackout date. Delegates to the
|
|
27962
|
+
* memoized `_getBlackoutSet` so the YYYY-MM-DD parsing and the
|
|
27963
|
+
* legacy/ISO merge rules live in exactly one place (see `blackoutUtils.js`).
|
|
27730
27964
|
* @private
|
|
27731
27965
|
* @param {Number} dateTs - Unix timestamp (seconds).
|
|
27732
27966
|
* @returns {Boolean} True if the date is blacked out.
|
|
27733
27967
|
*/
|
|
27734
27968
|
isDateBlackout(dateTs) {
|
|
27735
|
-
|
|
27736
|
-
if (Array.isArray(this.disabledDays) && this.disabledDays.length > 0) {
|
|
27737
|
-
if (this.disabledDays.findIndex((day) => parseInt(day, 10) === dateTs) !== -1) {
|
|
27738
|
-
return true;
|
|
27739
|
-
}
|
|
27740
|
-
}
|
|
27741
|
-
|
|
27742
|
-
// Check ISO blackoutDates.
|
|
27743
|
-
const blackoutDates = this.datepicker?.blackoutDates;
|
|
27744
|
-
if (Array.isArray(blackoutDates) && blackoutDates.length > 0) {
|
|
27745
|
-
const date = new Date(dateTs * 1000);
|
|
27746
|
-
const yyyy = date.getFullYear();
|
|
27747
|
-
const mm = String(date.getMonth() + 1).padStart(2, '0');
|
|
27748
|
-
const dd = String(date.getDate()).padStart(2, '0');
|
|
27749
|
-
if (blackoutDates.includes(`${yyyy}-${mm}-${dd}`)) {
|
|
27750
|
-
return true;
|
|
27751
|
-
}
|
|
27752
|
-
}
|
|
27753
|
-
|
|
27754
|
-
return false;
|
|
27969
|
+
return this._getBlackoutSet().has(dateTs);
|
|
27755
27970
|
}
|
|
27756
27971
|
|
|
27757
27972
|
/**
|
|
@@ -27918,9 +28133,34 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
27918
28133
|
// the last one.
|
|
27919
28134
|
if (this._announceRafId) {
|
|
27920
28135
|
cancelAnimationFrame(this._announceRafId);
|
|
28136
|
+
this._announceRafId = null;
|
|
27921
28137
|
}
|
|
28138
|
+
this._deliverAnnouncement(dateStr, 0);
|
|
28139
|
+
}
|
|
28140
|
+
|
|
28141
|
+
/**
|
|
28142
|
+
* Writes `dateStr` to the live region. If the dropdown's dialog hasn't
|
|
28143
|
+
* mounted yet (so getOrCreateLiveRegion can't attach), retries on the
|
|
28144
|
+
* next animation frame up to MAX_LIVE_REGION_RETRIES instead of silently
|
|
28145
|
+
* dropping the announcement. The retry uses the same `_announceRafId`
|
|
28146
|
+
* the double-rAF below uses, so a newer announceSelection call (or
|
|
28147
|
+
* disconnectedCallback) cancels any in-flight retry.
|
|
28148
|
+
* @private
|
|
28149
|
+
* @param {String} dateStr - The localized date string to announce.
|
|
28150
|
+
* @param {Number} attempts - Number of prior retry attempts.
|
|
28151
|
+
* @returns {void}
|
|
28152
|
+
*/
|
|
28153
|
+
_deliverAnnouncement(dateStr, attempts) {
|
|
27922
28154
|
const liveRegion = this.getOrCreateLiveRegion();
|
|
27923
28155
|
if (!liveRegion) {
|
|
28156
|
+
const MAX_LIVE_REGION_RETRIES = 10;
|
|
28157
|
+
if (attempts < MAX_LIVE_REGION_RETRIES) {
|
|
28158
|
+
this._announceRafId = requestAnimationFrame(() => {
|
|
28159
|
+
this._deliverAnnouncement(dateStr, attempts + 1);
|
|
28160
|
+
});
|
|
28161
|
+
} else {
|
|
28162
|
+
this._announceRafId = null;
|
|
28163
|
+
}
|
|
27924
28164
|
return;
|
|
27925
28165
|
}
|
|
27926
28166
|
|
|
@@ -28106,7 +28346,7 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
28106
28346
|
</button>
|
|
28107
28347
|
` : undefined}
|
|
28108
28348
|
</div>
|
|
28109
|
-
<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}">
|
|
28349
|
+
<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}">
|
|
28110
28350
|
${this.renderAllCalendars()}
|
|
28111
28351
|
</div>
|
|
28112
28352
|
</div>
|
|
@@ -31991,7 +32231,7 @@ let AuroHelpText$2$1 = class AuroHelpText extends i$2 {
|
|
|
31991
32231
|
}
|
|
31992
32232
|
};
|
|
31993
32233
|
|
|
31994
|
-
var formkitVersion$1$3 = '
|
|
32234
|
+
var formkitVersion$1$3 = '202606291440';
|
|
31995
32235
|
|
|
31996
32236
|
let AuroElement$2$2 = class AuroElement extends i$2 {
|
|
31997
32237
|
static get properties() {
|
|
@@ -38388,7 +38628,7 @@ function normalizeDates$2(context, ...dates) {
|
|
|
38388
38628
|
* const result = startOfDay(new Date(2014, 8, 2, 11, 55, 0))
|
|
38389
38629
|
* //=> Tue Sep 02 2014 00:00:00
|
|
38390
38630
|
*/
|
|
38391
|
-
function startOfDay$
|
|
38631
|
+
function startOfDay$2(date, options) {
|
|
38392
38632
|
const _date = toDate$2(date, options?.in);
|
|
38393
38633
|
_date.setHours(0, 0, 0, 0);
|
|
38394
38634
|
return _date;
|
|
@@ -38436,8 +38676,8 @@ function differenceInCalendarDays$2(laterDate, earlierDate, options) {
|
|
|
38436
38676
|
earlierDate,
|
|
38437
38677
|
);
|
|
38438
38678
|
|
|
38439
|
-
const laterStartOfDay = startOfDay$
|
|
38440
|
-
const earlierStartOfDay = startOfDay$
|
|
38679
|
+
const laterStartOfDay = startOfDay$2(laterDate_);
|
|
38680
|
+
const earlierStartOfDay = startOfDay$2(earlierDate_);
|
|
38441
38681
|
|
|
38442
38682
|
const laterTimestamp =
|
|
38443
38683
|
+laterStartOfDay - getTimezoneOffsetInMilliseconds$2(laterStartOfDay);
|
|
@@ -43709,13 +43949,6 @@ let AuroInputUtilities$2 = class AuroInputUtilities {
|
|
|
43709
43949
|
* @returns {string | undefined}
|
|
43710
43950
|
*/
|
|
43711
43951
|
toFormattedValue(valueObject, format) {
|
|
43712
|
-
// Exposed publicly via `AuroInputUtil.toFormattedValue`, so a missing
|
|
43713
|
-
// `format` argument has to fail gracefully rather than throw on
|
|
43714
|
-
// `format.toLowerCase()`. Treat any falsy value (undefined, null, '')
|
|
43715
|
-
// as "no format → no display value".
|
|
43716
|
-
if (!format) {
|
|
43717
|
-
return undefined;
|
|
43718
|
-
}
|
|
43719
43952
|
const normalizedFormat = format.toLowerCase();
|
|
43720
43953
|
const maskOptions = this.getMaskOptions('date', normalizedFormat);
|
|
43721
43954
|
|
|
@@ -43866,18 +44099,79 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
|
|
|
43866
44099
|
constructor() {
|
|
43867
44100
|
super();
|
|
43868
44101
|
|
|
43869
|
-
|
|
43870
|
-
|
|
43871
|
-
|
|
43872
|
-
|
|
43873
|
-
|
|
43874
|
-
|
|
43875
|
-
|
|
43876
|
-
|
|
43877
|
-
|
|
43878
|
-
|
|
44102
|
+
this.appearance = "default";
|
|
44103
|
+
this.disabled = false;
|
|
44104
|
+
this.layout = 'classic';
|
|
44105
|
+
this.locale = 'en-US';
|
|
44106
|
+
this.max = undefined;
|
|
44107
|
+
this._maxObject = undefined;
|
|
44108
|
+
this.maxLength = undefined;
|
|
44109
|
+
this.min = undefined;
|
|
44110
|
+
this._minObject = undefined;
|
|
44111
|
+
this.minLength = undefined;
|
|
44112
|
+
this.required = false;
|
|
44113
|
+
this.onDark = false;
|
|
44114
|
+
this.setCustomValidityForType = undefined;
|
|
44115
|
+
this.size = 'lg';
|
|
44116
|
+
this.shape = 'classic';
|
|
44117
|
+
this.value = undefined;
|
|
44118
|
+
this._valueObject = undefined;
|
|
44119
|
+
|
|
44120
|
+
this._initializePrivateDefaults();
|
|
44121
|
+
}
|
|
44122
|
+
|
|
44123
|
+
/**
|
|
44124
|
+
* Internal Defaults.
|
|
44125
|
+
* @private
|
|
44126
|
+
* @returns {void}
|
|
44127
|
+
*/
|
|
44128
|
+
_initializePrivateDefaults() {
|
|
43879
44129
|
this.activeLabel = false;
|
|
43880
|
-
|
|
44130
|
+
this.appearance = "default";
|
|
44131
|
+
this.icon = false;
|
|
44132
|
+
this.disabled = false;
|
|
44133
|
+
this.dvInputOnly = false;
|
|
44134
|
+
this.hideLabelVisually = false;
|
|
44135
|
+
this.max = undefined;
|
|
44136
|
+
this.maxLength = undefined;
|
|
44137
|
+
this.min = undefined;
|
|
44138
|
+
this.minLength = undefined;
|
|
44139
|
+
this.noValidate = false;
|
|
44140
|
+
this.onDark = false;
|
|
44141
|
+
this.required = false;
|
|
44142
|
+
this.setCustomValidityForType = undefined;
|
|
44143
|
+
|
|
44144
|
+
// Used for storing raw values returned from input mask.
|
|
44145
|
+
this._rawMaskValue = undefined;
|
|
44146
|
+
|
|
44147
|
+
/**
|
|
44148
|
+
* @private
|
|
44149
|
+
*/
|
|
44150
|
+
this.layout = 'classic';
|
|
44151
|
+
|
|
44152
|
+
/**
|
|
44153
|
+
* @private
|
|
44154
|
+
*/
|
|
44155
|
+
this.shape = 'classic';
|
|
44156
|
+
|
|
44157
|
+
/**
|
|
44158
|
+
* @private
|
|
44159
|
+
*/
|
|
44160
|
+
this.size = 'lg';
|
|
44161
|
+
|
|
44162
|
+
this.touched = false;
|
|
44163
|
+
this.util = new AuroInputUtilities$2({
|
|
44164
|
+
locale: "en-US",
|
|
44165
|
+
format: this.format
|
|
44166
|
+
});
|
|
44167
|
+
this.validation = new AuroFormValidation$6();
|
|
44168
|
+
this.inputIconName = undefined;
|
|
44169
|
+
this.showPassword = false;
|
|
44170
|
+
this.validationCCLength = undefined;
|
|
44171
|
+
this.hasValue = false;
|
|
44172
|
+
this.label = 'Input label is undefined';
|
|
44173
|
+
|
|
44174
|
+
|
|
43881
44175
|
this.allowedInputTypes = [
|
|
43882
44176
|
"text",
|
|
43883
44177
|
"number",
|
|
@@ -43886,8 +44180,7 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
|
|
|
43886
44180
|
"credit-card",
|
|
43887
44181
|
"tel"
|
|
43888
44182
|
];
|
|
43889
|
-
this.
|
|
43890
|
-
/** @private */
|
|
44183
|
+
this.icon = false;
|
|
43891
44184
|
this.dateFormatMap = {
|
|
43892
44185
|
'mm/dd/yyyy': 'dateMMDDYYYY',
|
|
43893
44186
|
'dd/mm/yyyy': 'dateDDMMYYYY',
|
|
@@ -43904,57 +44197,27 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
|
|
|
43904
44197
|
'dd/mm': 'dateDDMM',
|
|
43905
44198
|
'mm/dd': 'dateMMDD'
|
|
43906
44199
|
};
|
|
43907
|
-
this.disabled = false;
|
|
43908
|
-
/** @private */
|
|
43909
44200
|
this.domHandler = new DomHandler$2();
|
|
43910
44201
|
this.dvInputOnly = false;
|
|
43911
44202
|
this.hasValue = false;
|
|
43912
|
-
this.hideLabelVisually = false;
|
|
43913
|
-
this.icon = false;
|
|
43914
|
-
/** @private */
|
|
43915
44203
|
this.inputIconName = undefined;
|
|
43916
|
-
/** @private */
|
|
43917
44204
|
this.label = 'Input label is undefined';
|
|
43918
|
-
this.layout = 'classic';
|
|
43919
|
-
this.locale = 'en-US';
|
|
43920
|
-
this.max = undefined;
|
|
43921
|
-
this._maxObject = undefined;
|
|
43922
|
-
this.maxLength = undefined;
|
|
43923
|
-
this.min = undefined;
|
|
43924
|
-
this._minObject = undefined;
|
|
43925
|
-
this.minLength = undefined;
|
|
43926
44205
|
this.noValidate = false;
|
|
43927
|
-
this.
|
|
43928
|
-
// Raw values returned from the input mask before model normalization.
|
|
43929
|
-
this._rawMaskValue = undefined;
|
|
43930
|
-
this.required = false;
|
|
43931
|
-
this.setCustomValidityForType = undefined;
|
|
43932
|
-
// Credit Card is intentionally excluded — its mask manages the cursor
|
|
43933
|
-
// itself, and listing it here caused cursor placement issues in Safari.
|
|
43934
|
-
/** @private */
|
|
44206
|
+
this._rawMaskValue = undefined; // Used for storing raw values returned from input mask.
|
|
43935
44207
|
this.setSelectionInputTypes = [
|
|
43936
44208
|
"text",
|
|
43937
44209
|
"password",
|
|
43938
44210
|
"email"
|
|
43939
|
-
];
|
|
43940
|
-
this.shape = 'classic';
|
|
43941
|
-
/** @private */
|
|
44211
|
+
]; // Credit Card is not included as this caused cursor placement issues in Safari.
|
|
43942
44212
|
this.showPassword = false;
|
|
43943
|
-
this.size = 'lg';
|
|
43944
44213
|
this.touched = false;
|
|
43945
|
-
/** @private */
|
|
43946
44214
|
this.uniqueId = new UniqueId$1().create();
|
|
43947
|
-
/** @private */
|
|
43948
44215
|
this.util = new AuroInputUtilities$2({
|
|
43949
44216
|
locale: this.locale,
|
|
43950
44217
|
format: this.format
|
|
43951
44218
|
});
|
|
43952
|
-
/** @private */
|
|
43953
44219
|
this.validation = new AuroFormValidation$6();
|
|
43954
|
-
/** @private */
|
|
43955
44220
|
this.validationCCLength = undefined;
|
|
43956
|
-
this.value = undefined;
|
|
43957
|
-
this._valueObject = undefined;
|
|
43958
44221
|
}
|
|
43959
44222
|
|
|
43960
44223
|
// function to define props used within the scope of this component
|
|
@@ -44502,15 +44765,6 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
|
|
|
44502
44765
|
|
|
44503
44766
|
this.inputId = this.id ? `${this.id}-input` : window.crypto.randomUUID();
|
|
44504
44767
|
|
|
44505
|
-
// Normalize the format token to lowercase so case-mixed values supplied
|
|
44506
|
-
// via attribute (e.g. `format="MM/DD/YYYY"`) hit the `dateFormatMap`
|
|
44507
|
-
// lookup inside `setCustomHelpTextMessage`. Without this, an uppercase
|
|
44508
|
-
// format silently misses the map and leaves `setCustomValidityForType`
|
|
44509
|
-
// unset.
|
|
44510
|
-
if (this.format) {
|
|
44511
|
-
this.format = this.format.toLowerCase();
|
|
44512
|
-
}
|
|
44513
|
-
|
|
44514
44768
|
// use validity message override if declared when initializing the component
|
|
44515
44769
|
if (this.hasAttribute('setCustomValidity')) {
|
|
44516
44770
|
this.ValidityMessageOverride = this.setCustomValidity;
|
|
@@ -44944,38 +45198,6 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
|
|
|
44944
45198
|
this.touched = true;
|
|
44945
45199
|
this.validation.validate(this);
|
|
44946
45200
|
}
|
|
44947
|
-
|
|
44948
|
-
// Prevents cursor jumping in Safari. Setting `this.value` triggers a Lit
|
|
44949
|
-
// update that can re-render the input and reset the native cursor; we
|
|
44950
|
-
// capture the caret position before that update commits and restore it
|
|
44951
|
-
// via `setSelectionRange` once the update has flushed. Gated on
|
|
44952
|
-
// `setSelectionInputTypes` so credit-card (and other masked types whose
|
|
44953
|
-
// formatter manages the cursor itself) doesn't get a competing write.
|
|
44954
|
-
// Capture the caret position INSIDE the gate — reading `selectionStart`
|
|
44955
|
-
// on input types that don't support text selection (number, email in
|
|
44956
|
-
// some browsers) throws InvalidStateError, which would crash all input
|
|
44957
|
-
// handling. Wrap the read in try/catch belt-and-suspenders even though
|
|
44958
|
-
// the gated types currently support it, since the list is a public
|
|
44959
|
-
// property a consumer could mutate.
|
|
44960
|
-
if (this.setSelectionInputTypes.includes(this.type)) {
|
|
44961
|
-
let selectionStart;
|
|
44962
|
-
try {
|
|
44963
|
-
selectionStart = this.inputElement.selectionStart;
|
|
44964
|
-
} catch (error) { // eslint-disable-line no-unused-vars
|
|
44965
|
-
return;
|
|
44966
|
-
}
|
|
44967
|
-
if (typeof selectionStart !== 'number') {
|
|
44968
|
-
return;
|
|
44969
|
-
}
|
|
44970
|
-
this.updateComplete.then(() => {
|
|
44971
|
-
try {
|
|
44972
|
-
this.inputElement.setSelectionRange(selectionStart, selectionStart);
|
|
44973
|
-
} catch (error) { // eslint-disable-line no-unused-vars
|
|
44974
|
-
// Some input types (number/email in certain UAs) throw on
|
|
44975
|
-
// setSelectionRange; swallow and let the native cursor stand.
|
|
44976
|
-
}
|
|
44977
|
-
});
|
|
44978
|
-
}
|
|
44979
45201
|
}
|
|
44980
45202
|
|
|
44981
45203
|
/**
|
|
@@ -45602,7 +45824,7 @@ let AuroHelpText$1$3 = class AuroHelpText extends i$2 {
|
|
|
45602
45824
|
}
|
|
45603
45825
|
};
|
|
45604
45826
|
|
|
45605
|
-
var formkitVersion$7 = '
|
|
45827
|
+
var formkitVersion$7 = '202606291440';
|
|
45606
45828
|
|
|
45607
45829
|
// Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
|
|
45608
45830
|
// See LICENSE in the project root for license information.
|
|
@@ -46105,7 +46327,6 @@ let AuroInput$1 = class AuroInput extends BaseInput$1 {
|
|
|
46105
46327
|
<${this.buttonTag}
|
|
46106
46328
|
@click="${this.handleClickShowPassword}"
|
|
46107
46329
|
appearance="${this.onDark ? 'inverse' : this.appearance}"
|
|
46108
|
-
aria-pressed="${this.showPassword ? 'true' : 'false'}"
|
|
46109
46330
|
class="notificationBtn passwordBtn"
|
|
46110
46331
|
shape="circle"
|
|
46111
46332
|
size="sm"
|
|
@@ -46179,29 +46400,25 @@ let AuroInput$1 = class AuroInput extends BaseInput$1 {
|
|
|
46179
46400
|
* @returns {html} - Returns HTML for the help text and error message.
|
|
46180
46401
|
*/
|
|
46181
46402
|
renderHtmlHelpText() {
|
|
46182
|
-
// Single `<p>` with stable identity across validity transitions —
|
|
46183
|
-
// previously two distinct templates (valid vs invalid) caused Lit to
|
|
46184
|
-
// replace the node entirely on a flip, and VoiceOver wouldn't
|
|
46185
|
-
// re-announce because the live-region element it was watching had been
|
|
46186
|
-
// removed and a new one inserted. Keeping one node means the `role`,
|
|
46187
|
-
// `aria-live`, and text content all change in-place, which AT does
|
|
46188
|
-
// observe and announce.
|
|
46189
|
-
const isError = this.validity && this.validity !== 'valid';
|
|
46190
46403
|
return u$d`
|
|
46191
|
-
|
|
46192
|
-
|
|
46193
|
-
|
|
46194
|
-
|
|
46195
|
-
|
|
46196
|
-
|
|
46197
|
-
|
|
46198
|
-
|
|
46199
|
-
|
|
46200
|
-
|
|
46201
|
-
|
|
46202
|
-
|
|
46203
|
-
|
|
46204
|
-
|
|
46404
|
+
${!this.validity || this.validity === undefined || this.validity === 'valid'
|
|
46405
|
+
? u$d`
|
|
46406
|
+
<${this.helpTextTag}
|
|
46407
|
+
appearance="${this.onDark ? 'inverse' : this.appearance}">
|
|
46408
|
+
<p id="${this.uniqueId}" part="helpText">
|
|
46409
|
+
<slot name="helpText">${this.getHelpText()}</slot>
|
|
46410
|
+
</p>
|
|
46411
|
+
</${this.helpTextTag}>
|
|
46412
|
+
`
|
|
46413
|
+
: u$d`
|
|
46414
|
+
<${this.helpTextTag} error
|
|
46415
|
+
appearance="${this.onDark ? 'inverse' : this.appearance}">
|
|
46416
|
+
<p id="${this.uniqueId}" role="alert" aria-live="assertive" part="helpText">
|
|
46417
|
+
${this.errorMessage}
|
|
46418
|
+
</p>
|
|
46419
|
+
</${this.helpTextTag}>
|
|
46420
|
+
`
|
|
46421
|
+
}
|
|
46205
46422
|
`;
|
|
46206
46423
|
}
|
|
46207
46424
|
|
|
@@ -46348,15 +46565,6 @@ function formatISODate(isoStr, format) {
|
|
|
46348
46565
|
try {
|
|
46349
46566
|
const date = dateFormatter$2.stringToDateInstance(isoStr);
|
|
46350
46567
|
|
|
46351
|
-
// `stringToDateInstance` returns an `Invalid Date` for malformed strings
|
|
46352
|
-
// and `null` for non-string input — it does NOT throw. Without this
|
|
46353
|
-
// guard, `getFullYear()`/`getMonth()`/`getDate()` on an Invalid Date
|
|
46354
|
-
// yield `NaN`, and `String(NaN).padStart(4, '0')` produces literals
|
|
46355
|
-
// like "0NaN/0NaN/0NaN" instead of `undefined`.
|
|
46356
|
-
if (!(date instanceof Date) || Number.isNaN(date.getTime())) {
|
|
46357
|
-
return undefined;
|
|
46358
|
-
}
|
|
46359
|
-
|
|
46360
46568
|
const year = String(date.getFullYear()).padStart(4, '0');
|
|
46361
46569
|
const month = String(date.getMonth() + 1).padStart(2, '0');
|
|
46362
46570
|
const day = String(date.getDate()).padStart(2, '0');
|
|
@@ -46367,10 +46575,7 @@ function formatISODate(isoStr, format) {
|
|
|
46367
46575
|
replace(/mm/iu, month).
|
|
46368
46576
|
replace(/dd/iu, day);
|
|
46369
46577
|
} catch (err) {
|
|
46370
|
-
//
|
|
46371
|
-
// (inside `stringToDateInstance`) could throw on pathological input
|
|
46372
|
-
// future-library-versions might introduce. Treat any thrown error as
|
|
46373
|
-
// "not a valid date" and return undefined.
|
|
46578
|
+
// If the input string is not a valid date, return undefined
|
|
46374
46579
|
return undefined;
|
|
46375
46580
|
}
|
|
46376
46581
|
}
|
|
@@ -47096,6 +47301,7 @@ class AuroDatePicker extends AuroElement$5 {
|
|
|
47096
47301
|
this.rangeLabelBeforeRange = 'before range';
|
|
47097
47302
|
this.rangeLabelInRange = 'in range';
|
|
47098
47303
|
this.rangeLabelAfterRange = 'after range';
|
|
47304
|
+
this.rangeLabelEndPreview = 'previewing range end';
|
|
47099
47305
|
this.blackoutDates = [];
|
|
47100
47306
|
this.blackoutLabel = 'unavailable';
|
|
47101
47307
|
this.navLabelPrevMonth = 'Previous month';
|
|
@@ -47195,6 +47401,22 @@ class AuroDatePicker extends AuroElement$5 {
|
|
|
47195
47401
|
*/
|
|
47196
47402
|
this.handleClick = this.handleClick.bind(this);
|
|
47197
47403
|
|
|
47404
|
+
/**
|
|
47405
|
+
* Single AbortController shared by every listener registered in the
|
|
47406
|
+
* configure* methods. Lets disconnectedCallback tear all of them down
|
|
47407
|
+
* with one abort() call.
|
|
47408
|
+
*
|
|
47409
|
+
* The genuine leak risk is the listeners attached to children that can
|
|
47410
|
+
* outlive the host if they get reparented — `this.dropdown`,
|
|
47411
|
+
* `this.calendar`, and the inputs inside the dropdown's slot.
|
|
47412
|
+
* Listeners attached to `this` (e.g. focusin/focusout on the host)
|
|
47413
|
+
* form a self-contained reference graph that the GC can collect with
|
|
47414
|
+
* the host anyway, but they share the same signal so the cleanup
|
|
47415
|
+
* pattern stays uniform across all configure* sites.
|
|
47416
|
+
* @private
|
|
47417
|
+
*/
|
|
47418
|
+
this._listenerAbortController = new AbortController();
|
|
47419
|
+
|
|
47198
47420
|
/**
|
|
47199
47421
|
* @private
|
|
47200
47422
|
*/
|
|
@@ -47243,6 +47465,7 @@ class AuroDatePicker extends AuroElement$5 {
|
|
|
47243
47465
|
|
|
47244
47466
|
/**
|
|
47245
47467
|
* Label announced for blackout (disabled but in-range) date cells.
|
|
47468
|
+
* @default 'unavailable'
|
|
47246
47469
|
*/
|
|
47247
47470
|
blackoutLabel: {
|
|
47248
47471
|
type: String,
|
|
@@ -47259,6 +47482,7 @@ class AuroDatePicker extends AuroElement$5 {
|
|
|
47259
47482
|
|
|
47260
47483
|
/**
|
|
47261
47484
|
* Accessible label for the calendar grid containing the days of the month.
|
|
47485
|
+
* @default 'Calendar days of the month'
|
|
47262
47486
|
*/
|
|
47263
47487
|
calendarGridLabel: {
|
|
47264
47488
|
type: String,
|
|
@@ -47421,6 +47645,7 @@ class AuroDatePicker extends AuroElement$5 {
|
|
|
47421
47645
|
|
|
47422
47646
|
/**
|
|
47423
47647
|
* Accessible label for the next month navigation button.
|
|
47648
|
+
* @default 'Next month'
|
|
47424
47649
|
*/
|
|
47425
47650
|
navLabelNextMonth: {
|
|
47426
47651
|
type: String,
|
|
@@ -47429,6 +47654,7 @@ class AuroDatePicker extends AuroElement$5 {
|
|
|
47429
47654
|
|
|
47430
47655
|
/**
|
|
47431
47656
|
* Accessible label for the previous month navigation button.
|
|
47657
|
+
* @default 'Previous month'
|
|
47432
47658
|
*/
|
|
47433
47659
|
navLabelPrevMonth: {
|
|
47434
47660
|
type: String,
|
|
@@ -47506,7 +47732,11 @@ class AuroDatePicker extends AuroElement$5 {
|
|
|
47506
47732
|
},
|
|
47507
47733
|
|
|
47508
47734
|
/**
|
|
47509
|
-
* Label announced for cells after
|
|
47735
|
+
* Label announced for cells after a fully selected range (both
|
|
47736
|
+
* `dateFrom` and `dateTo` are set). While a range is still being
|
|
47737
|
+
* picked (`dateFrom` set, `dateTo` unset), focused cells past the
|
|
47738
|
+
* start use `rangeLabelEndPreview` instead.
|
|
47739
|
+
* @default 'after range'
|
|
47510
47740
|
*/
|
|
47511
47741
|
rangeLabelAfterRange: {
|
|
47512
47742
|
type: String,
|
|
@@ -47515,6 +47745,7 @@ class AuroDatePicker extends AuroElement$5 {
|
|
|
47515
47745
|
|
|
47516
47746
|
/**
|
|
47517
47747
|
* Label announced for cells before the range start.
|
|
47748
|
+
* @default 'before range'
|
|
47518
47749
|
*/
|
|
47519
47750
|
rangeLabelBeforeRange: {
|
|
47520
47751
|
type: String,
|
|
@@ -47523,14 +47754,27 @@ class AuroDatePicker extends AuroElement$5 {
|
|
|
47523
47754
|
|
|
47524
47755
|
/**
|
|
47525
47756
|
* Label announced for the range end date cell.
|
|
47757
|
+
* @default 'range end'
|
|
47526
47758
|
*/
|
|
47527
47759
|
rangeLabelEnd: {
|
|
47528
47760
|
type: String,
|
|
47529
47761
|
reflect: true
|
|
47530
47762
|
},
|
|
47531
47763
|
|
|
47764
|
+
/**
|
|
47765
|
+
* Label announced for the focused cell while previewing a range end
|
|
47766
|
+
* (dateFrom set, dateTo not yet selected). Tells AT users that
|
|
47767
|
+
* pressing Enter would commit this cell as the range end.
|
|
47768
|
+
* @default 'previewing range end'
|
|
47769
|
+
*/
|
|
47770
|
+
rangeLabelEndPreview: {
|
|
47771
|
+
type: String,
|
|
47772
|
+
reflect: true
|
|
47773
|
+
},
|
|
47774
|
+
|
|
47532
47775
|
/**
|
|
47533
47776
|
* Label announced for cells within the selected range.
|
|
47777
|
+
* @default 'in range'
|
|
47534
47778
|
*/
|
|
47535
47779
|
rangeLabelInRange: {
|
|
47536
47780
|
type: String,
|
|
@@ -47539,6 +47783,7 @@ class AuroDatePicker extends AuroElement$5 {
|
|
|
47539
47783
|
|
|
47540
47784
|
/**
|
|
47541
47785
|
* Label announced for the range start date cell.
|
|
47786
|
+
* @default 'range start'
|
|
47542
47787
|
*/
|
|
47543
47788
|
rangeLabelStart: {
|
|
47544
47789
|
type: String,
|
|
@@ -47546,7 +47791,7 @@ class AuroDatePicker extends AuroElement$5 {
|
|
|
47546
47791
|
},
|
|
47547
47792
|
|
|
47548
47793
|
/**
|
|
47549
|
-
* Dates that the user should have for reference as part of their decision
|
|
47794
|
+
* Dates that the user should have for reference as part of their decision-making when selecting a date.
|
|
47550
47795
|
* This should be a JSON string array of ISO date strings (`YYYY-MM-DD`).
|
|
47551
47796
|
*/
|
|
47552
47797
|
referenceDates: {
|
|
@@ -47903,10 +48148,26 @@ class AuroDatePicker extends AuroElement$5 {
|
|
|
47903
48148
|
// ─── Vendor calendar time conversions ─────────────────────────────────────
|
|
47904
48149
|
|
|
47905
48150
|
/**
|
|
47906
|
-
* Converts a Unix timestamp (seconds) from the
|
|
48151
|
+
* Converts a Unix timestamp (seconds) from the vendored range-datepicker
|
|
48152
|
+
* (`src/vendor/wc-range-datepicker/day.js`) to an ISO date string.
|
|
48153
|
+
*
|
|
48154
|
+
* Timezone contract:
|
|
48155
|
+
* - INPUT: `time` is assumed to be the seconds-since-epoch of **local
|
|
48156
|
+
* midnight** for the intended calendar day. The vendor's Day constructor
|
|
48157
|
+
* builds it via `date-fns format(date, 't')` from a locally-constructed
|
|
48158
|
+
* Date, so this assumption currently holds end-to-end.
|
|
48159
|
+
* - OUTPUT: `dateFormatter.toISOFormatString` reads the Date's local
|
|
48160
|
+
* getFullYear/getMonth/getDate components, so the returned YYYY-MM-DD
|
|
48161
|
+
* string matches the local calendar day.
|
|
48162
|
+
*
|
|
48163
|
+
* If the vendor ever switches to emitting UTC-midnight timestamps, this
|
|
48164
|
+
* conversion will silently shift the returned date by one day in zones
|
|
48165
|
+
* west of UTC. Any vendor swap should re-verify this contract; the TZ
|
|
48166
|
+
* regression suite (`npm run test:hst`, UTC-10) will catch the symptom.
|
|
48167
|
+
*
|
|
47907
48168
|
* @private
|
|
47908
|
-
* @param {number} time - Unix timestamp
|
|
47909
|
-
* @returns {string} ISO date string (yyyy-mm-dd).
|
|
48169
|
+
* @param {number} time - Unix timestamp (seconds), local midnight of the day.
|
|
48170
|
+
* @returns {string} ISO date string (yyyy-mm-dd) reflecting the local calendar day.
|
|
47910
48171
|
*/
|
|
47911
48172
|
convertWcTimeToDate(time) {
|
|
47912
48173
|
return dateFormatter$1.toISOFormatString(new Date(time * 1000));
|
|
@@ -48008,8 +48269,8 @@ class AuroDatePicker extends AuroElement$5 {
|
|
|
48008
48269
|
}
|
|
48009
48270
|
}
|
|
48010
48271
|
|
|
48011
|
-
// Focus the calendar grid wrapper (
|
|
48012
|
-
// the SR announcement for the active cell
|
|
48272
|
+
// Focus the calendar grid wrapper. The live region (announced just
|
|
48273
|
+
// below) handles the SR announcement for the active cell.
|
|
48013
48274
|
if (activeCell) {
|
|
48014
48275
|
this.calendar.focusActiveCell();
|
|
48015
48276
|
|
|
@@ -48059,11 +48320,13 @@ class AuroDatePicker extends AuroElement$5 {
|
|
|
48059
48320
|
this.dropdown.bibDialogLabel = labelElement.textContent.trim() || undefined;
|
|
48060
48321
|
}
|
|
48061
48322
|
|
|
48323
|
+
const { signal } = this._listenerAbortController;
|
|
48324
|
+
|
|
48062
48325
|
this.dropdown.addEventListener('auroDropdown-triggerClick', () => {
|
|
48063
48326
|
if (!this.isPopoverVisible) {
|
|
48064
48327
|
this.dropdown.show();
|
|
48065
48328
|
}
|
|
48066
|
-
});
|
|
48329
|
+
}, { signal });
|
|
48067
48330
|
|
|
48068
48331
|
this.dropdown.addEventListener('auroDropdown-toggled', () => {
|
|
48069
48332
|
this.notifyDatepickerToggled();
|
|
@@ -48081,7 +48344,7 @@ class AuroDatePicker extends AuroElement$5 {
|
|
|
48081
48344
|
if (this.valueObject) {
|
|
48082
48345
|
this.centralDate = this.value;
|
|
48083
48346
|
} else if (!this.centralDate && !this.calendarStartDate && !this.minDate) {
|
|
48084
|
-
this.centralDate = new Date();
|
|
48347
|
+
this.centralDate = dateFormatter$1.toISOFormatString(new Date());
|
|
48085
48348
|
}
|
|
48086
48349
|
}
|
|
48087
48350
|
|
|
@@ -48161,7 +48424,7 @@ class AuroDatePicker extends AuroElement$5 {
|
|
|
48161
48424
|
this.forceScrollOnNextMobileCalendarRender = false;
|
|
48162
48425
|
}, 0);
|
|
48163
48426
|
}
|
|
48164
|
-
});
|
|
48427
|
+
}, { signal });
|
|
48165
48428
|
|
|
48166
48429
|
// Handle responsive strategy changes while the dropdown is open
|
|
48167
48430
|
// (e.g. resizing from desktop → mobile or vice versa).
|
|
@@ -48208,7 +48471,7 @@ class AuroDatePicker extends AuroElement$5 {
|
|
|
48208
48471
|
});
|
|
48209
48472
|
});
|
|
48210
48473
|
}
|
|
48211
|
-
});
|
|
48474
|
+
}, { signal });
|
|
48212
48475
|
}
|
|
48213
48476
|
|
|
48214
48477
|
/**
|
|
@@ -48221,6 +48484,8 @@ class AuroDatePicker extends AuroElement$5 {
|
|
|
48221
48484
|
|
|
48222
48485
|
this.inputList = [...this.dropdown.querySelectorAll(this.inputTag._$litStatic$)];
|
|
48223
48486
|
|
|
48487
|
+
const { signal } = this._listenerAbortController;
|
|
48488
|
+
|
|
48224
48489
|
this.inputList.forEach((input, index) => {
|
|
48225
48490
|
input.addEventListener('input', (event) => {
|
|
48226
48491
|
event.stopPropagation();
|
|
@@ -48232,7 +48497,7 @@ class AuroDatePicker extends AuroElement$5 {
|
|
|
48232
48497
|
}
|
|
48233
48498
|
|
|
48234
48499
|
this.notifyValueChanged();
|
|
48235
|
-
});
|
|
48500
|
+
}, { signal });
|
|
48236
48501
|
|
|
48237
48502
|
input.addEventListener('auroFormElement-validated', (evt) => {
|
|
48238
48503
|
// not to bubble up input's validated event.
|
|
@@ -48248,7 +48513,7 @@ class AuroDatePicker extends AuroElement$5 {
|
|
|
48248
48513
|
this.validity = evt.detail.validity;
|
|
48249
48514
|
this.errorMessage = evt.detail.message;
|
|
48250
48515
|
}
|
|
48251
|
-
});
|
|
48516
|
+
}, { signal });
|
|
48252
48517
|
});
|
|
48253
48518
|
}
|
|
48254
48519
|
|
|
@@ -48262,19 +48527,32 @@ class AuroDatePicker extends AuroElement$5 {
|
|
|
48262
48527
|
this.calendar.datepicker = this;
|
|
48263
48528
|
this.calendar.dropdown = this.dropdown;
|
|
48264
48529
|
|
|
48530
|
+
const { signal } = this._listenerAbortController;
|
|
48531
|
+
|
|
48265
48532
|
this.calendar.addEventListener('auroCalendar-dateSelected', () => {
|
|
48266
|
-
|
|
48267
|
-
|
|
48533
|
+
// Compare the input's ISO value against the *converted* calendar
|
|
48534
|
+
// timestamp (the vendor's `dateFrom`/`dateTo` are Unix-seconds
|
|
48535
|
+
// strings — comparing the input ISO directly against them would
|
|
48536
|
+
// never match, so the write would fire on every event and emit
|
|
48537
|
+
// redundant input/change activity).
|
|
48538
|
+
if (this.calendar.dateFrom !== undefined) {
|
|
48539
|
+
const fromIso = this.convertWcTimeToDate(this.calendar.dateFrom);
|
|
48540
|
+
if (this.inputList[0].value !== fromIso) {
|
|
48541
|
+
this.inputList[0].value = fromIso;
|
|
48542
|
+
}
|
|
48268
48543
|
}
|
|
48269
48544
|
|
|
48270
|
-
if (this.inputList[1] && this.calendar.dateTo
|
|
48271
|
-
|
|
48545
|
+
if (this.inputList[1] && this.calendar.dateTo) {
|
|
48546
|
+
const toIso = this.convertWcTimeToDate(this.calendar.dateTo);
|
|
48547
|
+
if (this.inputList[1].value !== toIso) {
|
|
48548
|
+
this.inputList[1].value = toIso;
|
|
48549
|
+
}
|
|
48272
48550
|
}
|
|
48273
|
-
});
|
|
48551
|
+
}, { signal });
|
|
48274
48552
|
|
|
48275
48553
|
this.calendar.addEventListener('auroCalendar-dismissRequest', () => {
|
|
48276
48554
|
this.dropdown.hide();
|
|
48277
|
-
});
|
|
48555
|
+
}, { signal });
|
|
48278
48556
|
|
|
48279
48557
|
this.calendar.addEventListener('auroCalendar-centralDateChanged', (event) => {
|
|
48280
48558
|
const match = this.centralDateObject && this.util.datesMatch(event.detail.date, this.centralDateObject);
|
|
@@ -48284,7 +48562,7 @@ class AuroDatePicker extends AuroElement$5 {
|
|
|
48284
48562
|
}
|
|
48285
48563
|
|
|
48286
48564
|
this.notifyMonthChanged(event);
|
|
48287
|
-
});
|
|
48565
|
+
}, { signal });
|
|
48288
48566
|
}
|
|
48289
48567
|
|
|
48290
48568
|
/**
|
|
@@ -48293,10 +48571,17 @@ class AuroDatePicker extends AuroElement$5 {
|
|
|
48293
48571
|
* @returns {void}
|
|
48294
48572
|
*/
|
|
48295
48573
|
configureDatepicker() {
|
|
48574
|
+
// These listeners are on `this` (the host), so they would GC with the
|
|
48575
|
+
// host even without the abort signal — see the leak rationale on
|
|
48576
|
+
// `_listenerAbortController`. The signal is still passed for uniform
|
|
48577
|
+
// cleanup semantics with the child-element listeners in the other
|
|
48578
|
+
// configure* methods.
|
|
48579
|
+
const { signal } = this._listenerAbortController;
|
|
48580
|
+
|
|
48296
48581
|
this.addEventListener('focusin', () => {
|
|
48297
48582
|
this.touched = true;
|
|
48298
48583
|
this.hasFocus = true;
|
|
48299
|
-
});
|
|
48584
|
+
}, { signal });
|
|
48300
48585
|
|
|
48301
48586
|
this.addEventListener('focusout', () => {
|
|
48302
48587
|
this.hasFocus = false;
|
|
@@ -48308,7 +48593,7 @@ class AuroDatePicker extends AuroElement$5 {
|
|
|
48308
48593
|
if (!this.matches(':focus-within')) {
|
|
48309
48594
|
this.validate();
|
|
48310
48595
|
}
|
|
48311
|
-
});
|
|
48596
|
+
}, { signal });
|
|
48312
48597
|
|
|
48313
48598
|
if (this.valueObject) {
|
|
48314
48599
|
this.calendar.dateFrom = this.convertToWcValidTime(this.valueObject);
|
|
@@ -48506,6 +48791,41 @@ class AuroDatePicker extends AuroElement$5 {
|
|
|
48506
48791
|
return this.validity !== undefined && this.validity !== 'valid';
|
|
48507
48792
|
}
|
|
48508
48793
|
|
|
48794
|
+
/**
|
|
48795
|
+
* Per-class dedup set used by `_warnInvalidLocale`. Static so the dedup
|
|
48796
|
+
* spans every datepicker instance on the page; lives on the class (not
|
|
48797
|
+
* at module scope) so it stays an encapsulated implementation detail of
|
|
48798
|
+
* this component and does not interfere with WCA's class-JSDoc
|
|
48799
|
+
* attachment.
|
|
48800
|
+
* @private
|
|
48801
|
+
*/
|
|
48802
|
+
static _warnedInvalidLocales = new Set();
|
|
48803
|
+
|
|
48804
|
+
/**
|
|
48805
|
+
* Logs a one-time `console.debug` when an unsupported locale falls back to
|
|
48806
|
+
* en-US. Deduped by the offending tag so noisy re-renders that resurface
|
|
48807
|
+
* the same bad value stay quiet, but each new bad value still signals so
|
|
48808
|
+
* consumers can spot the typo or missing tag.
|
|
48809
|
+
* @private
|
|
48810
|
+
* @param {string|undefined} badLocale - The locale value that failed.
|
|
48811
|
+
* @returns {void}
|
|
48812
|
+
*/
|
|
48813
|
+
_warnInvalidLocale(badLocale) {
|
|
48814
|
+
// Stringify without coalescing — `String(undefined)` / `String(null)`
|
|
48815
|
+
// surface the actual offending value in the log, instead of the
|
|
48816
|
+
// ambiguous `Locale ""` that `String(badLocale ?? '')` would produce.
|
|
48817
|
+
// Dedup still works correctly because each unique stringification
|
|
48818
|
+
// becomes its own Set entry.
|
|
48819
|
+
const key = String(badLocale);
|
|
48820
|
+
const seen = AuroDatePicker._warnedInvalidLocales;
|
|
48821
|
+
if (seen.has(key)) {
|
|
48822
|
+
return;
|
|
48823
|
+
}
|
|
48824
|
+
seen.add(key);
|
|
48825
|
+
// eslint-disable-next-line no-console
|
|
48826
|
+
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".`);
|
|
48827
|
+
}
|
|
48828
|
+
|
|
48509
48829
|
/**
|
|
48510
48830
|
* Lifecycle method to check if the locale is valid.
|
|
48511
48831
|
* @ignore
|
|
@@ -48516,10 +48836,15 @@ class AuroDatePicker extends AuroElement$5 {
|
|
|
48516
48836
|
if (changedProperties.has('locale')) {
|
|
48517
48837
|
try {
|
|
48518
48838
|
const supported = Intl.DateTimeFormat.supportedLocalesOf([this.locale], { localeMatcher: 'lookup' });
|
|
48519
|
-
|
|
48839
|
+
if (supported.length > 0) {
|
|
48840
|
+
this._validLocale = this.locale;
|
|
48841
|
+
} else {
|
|
48842
|
+
this._validLocale = 'en-US';
|
|
48843
|
+
this._warnInvalidLocale(this.locale);
|
|
48844
|
+
}
|
|
48520
48845
|
} catch {
|
|
48521
|
-
console.debug(`[AuroDatePicker] The locale "${this.locale}" is not valid. Falling back to "en-US".`); // eslint-disable-line no-console
|
|
48522
48846
|
this._validLocale = 'en-US';
|
|
48847
|
+
this._warnInvalidLocale(this.locale);
|
|
48523
48848
|
}
|
|
48524
48849
|
|
|
48525
48850
|
const previousLocaleFormat = getDateFormatFromLocale$1(changedProperties.get('locale'));
|
|
@@ -48601,8 +48926,6 @@ class AuroDatePicker extends AuroElement$5 {
|
|
|
48601
48926
|
// Skip centralDate update when user clicked a cell in range mode
|
|
48602
48927
|
// to prevent the displayed months from shifting
|
|
48603
48928
|
this.centralDate = this.value;
|
|
48604
|
-
//TODO: TEST THIS CHANGE
|
|
48605
|
-
// this.calendarRenderUtil.updateCentralDate(this, this.value);
|
|
48606
48929
|
}
|
|
48607
48930
|
|
|
48608
48931
|
this.setHasValue();
|
|
@@ -48662,8 +48985,6 @@ class AuroDatePicker extends AuroElement$5 {
|
|
|
48662
48985
|
// Skip centralDate update when user clicked a cell in range mode
|
|
48663
48986
|
// to prevent the displayed months from shifting
|
|
48664
48987
|
this.centralDate = this.valueEnd;
|
|
48665
|
-
// TODO: TEST THIS CHANGE
|
|
48666
|
-
// this.calendarRenderUtil.updateCentralDate(this, this.formattedValueEnd);
|
|
48667
48988
|
}
|
|
48668
48989
|
|
|
48669
48990
|
this.validate();
|
|
@@ -48805,7 +49126,7 @@ class AuroDatePicker extends AuroElement$5 {
|
|
|
48805
49126
|
* @returns {void}
|
|
48806
49127
|
*/
|
|
48807
49128
|
configureClickHandler() {
|
|
48808
|
-
this.addEventListener('click', this.handleClick);
|
|
49129
|
+
this.addEventListener('click', this.handleClick, { signal: this._listenerAbortController.signal });
|
|
48809
49130
|
}
|
|
48810
49131
|
|
|
48811
49132
|
firstUpdated() {
|
|
@@ -48813,6 +49134,15 @@ class AuroDatePicker extends AuroElement$5 {
|
|
|
48813
49134
|
// Add the tag name as an attribute if it is different than the component name
|
|
48814
49135
|
this.runtimeUtils.handleComponentTagRename(this, 'auro-datepicker');
|
|
48815
49136
|
|
|
49137
|
+
// If the element was disconnected before this first render finished,
|
|
49138
|
+
// disconnectedCallback's microtask already aborted the controller. The
|
|
49139
|
+
// connectedCallback reinit guard skips that case because `hasUpdated`
|
|
49140
|
+
// is still false. Mint a fresh controller here so configure* registers
|
|
49141
|
+
// listeners against a live signal.
|
|
49142
|
+
if (this._listenerAbortController.signal.aborted) {
|
|
49143
|
+
this._listenerAbortController = new AbortController();
|
|
49144
|
+
}
|
|
49145
|
+
|
|
48816
49146
|
this.configureDropdown();
|
|
48817
49147
|
this.configureInput();
|
|
48818
49148
|
this.configureCalendar();
|
|
@@ -48824,9 +49154,36 @@ class AuroDatePicker extends AuroElement$5 {
|
|
|
48824
49154
|
connectedCallback() {
|
|
48825
49155
|
super.connectedCallback();
|
|
48826
49156
|
|
|
49157
|
+
// True reconnect after `disconnectedCallback` aborted our controller:
|
|
49158
|
+
// the existing signal is dead, so listeners registered against it
|
|
49159
|
+
// would never fire. Create a fresh controller and re-run the
|
|
49160
|
+
// configure* wiring (each method is idempotent — it just re-caches
|
|
49161
|
+
// child refs and re-registers listeners against the new signal).
|
|
49162
|
+
// `hasUpdated` gates this so the *first* connect (which precedes
|
|
49163
|
+
// firstUpdated) still falls through to firstUpdated's initial wiring.
|
|
49164
|
+
if (this.hasUpdated && this._listenerAbortController.signal.aborted) {
|
|
49165
|
+
this._listenerAbortController = new AbortController();
|
|
49166
|
+
this.configureDropdown();
|
|
49167
|
+
this.configureInput();
|
|
49168
|
+
this.configureCalendar();
|
|
49169
|
+
this.configureDatepicker();
|
|
49170
|
+
this.configureClickHandler();
|
|
49171
|
+
}
|
|
49172
|
+
|
|
48827
49173
|
this.locale = this.domHandler.getLocale(this);
|
|
48828
49174
|
}
|
|
48829
49175
|
|
|
49176
|
+
disconnectedCallback() {
|
|
49177
|
+
super.disconnectedCallback();
|
|
49178
|
+
// Defer so that re-parenting (auro-drawer slotting it into a dialog,
|
|
49179
|
+
// for example) does not abort listeners we still need after reconnect.
|
|
49180
|
+
queueMicrotask(() => {
|
|
49181
|
+
if (!this.isConnected) {
|
|
49182
|
+
this._listenerAbortController.abort();
|
|
49183
|
+
}
|
|
49184
|
+
});
|
|
49185
|
+
}
|
|
49186
|
+
|
|
48830
49187
|
// layout render methods
|
|
48831
49188
|
// ------------------------------------
|
|
48832
49189
|
|
|
@@ -50322,7 +50679,7 @@ let AuroHelpText$1$2 = class AuroHelpText extends i$2 {
|
|
|
50322
50679
|
}
|
|
50323
50680
|
};
|
|
50324
50681
|
|
|
50325
|
-
var formkitVersion$1$2 = '
|
|
50682
|
+
var formkitVersion$1$2 = '202606291440';
|
|
50326
50683
|
|
|
50327
50684
|
// Copyright (c) 2026 Alaska Airlines. All rights reserved. Licensed under the Apache-2.0 license
|
|
50328
50685
|
// See LICENSE in the project root for license information.
|
|
@@ -54650,7 +55007,7 @@ let AuroHelpText$6 = class AuroHelpText extends i$2 {
|
|
|
54650
55007
|
}
|
|
54651
55008
|
};
|
|
54652
55009
|
|
|
54653
|
-
var formkitVersion$6 = '
|
|
55010
|
+
var formkitVersion$6 = '202606291440';
|
|
54654
55011
|
|
|
54655
55012
|
let AuroElement$1$2 = class AuroElement extends i$2 {
|
|
54656
55013
|
static get properties() {
|
|
@@ -58590,7 +58947,7 @@ let AuroHelpText$5 = class AuroHelpText extends i$2 {
|
|
|
58590
58947
|
}
|
|
58591
58948
|
};
|
|
58592
58949
|
|
|
58593
|
-
var formkitVersion$5 = '
|
|
58950
|
+
var formkitVersion$5 = '202606291440';
|
|
58594
58951
|
|
|
58595
58952
|
// Copyright (c) Alaska Air. All right reserved. Licensed under the Apache-2.0 license
|
|
58596
58953
|
// See LICENSE in the project root for license information.
|
|
@@ -60340,7 +60697,7 @@ let AuroHelpText$4 = class AuroHelpText extends i$2 {
|
|
|
60340
60697
|
}
|
|
60341
60698
|
};
|
|
60342
60699
|
|
|
60343
|
-
var formkitVersion$4 = '
|
|
60700
|
+
var formkitVersion$4 = '202606291440';
|
|
60344
60701
|
|
|
60345
60702
|
// Copyright (c) 2026 Alaska Airlines. All rights reserved. Licensed under the Apache-2.0 license
|
|
60346
60703
|
// See LICENSE in the project root for license information.
|
|
@@ -65555,7 +65912,7 @@ let AuroHelpText$2 = class AuroHelpText extends i$2 {
|
|
|
65555
65912
|
}
|
|
65556
65913
|
};
|
|
65557
65914
|
|
|
65558
|
-
var formkitVersion$2 = '
|
|
65915
|
+
var formkitVersion$2 = '202606291440';
|
|
65559
65916
|
|
|
65560
65917
|
let AuroElement$2$1 = class AuroElement extends i$2 {
|
|
65561
65918
|
static get properties() {
|
|
@@ -77273,13 +77630,6 @@ class AuroInputUtilities {
|
|
|
77273
77630
|
* @returns {string | undefined}
|
|
77274
77631
|
*/
|
|
77275
77632
|
toFormattedValue(valueObject, format) {
|
|
77276
|
-
// Exposed publicly via `AuroInputUtil.toFormattedValue`, so a missing
|
|
77277
|
-
// `format` argument has to fail gracefully rather than throw on
|
|
77278
|
-
// `format.toLowerCase()`. Treat any falsy value (undefined, null, '')
|
|
77279
|
-
// as "no format → no display value".
|
|
77280
|
-
if (!format) {
|
|
77281
|
-
return undefined;
|
|
77282
|
-
}
|
|
77283
77633
|
const normalizedFormat = format.toLowerCase();
|
|
77284
77634
|
const maskOptions = this.getMaskOptions('date', normalizedFormat);
|
|
77285
77635
|
|
|
@@ -77430,18 +77780,79 @@ class BaseInput extends AuroElement$1$1 {
|
|
|
77430
77780
|
constructor() {
|
|
77431
77781
|
super();
|
|
77432
77782
|
|
|
77433
|
-
|
|
77434
|
-
|
|
77435
|
-
|
|
77436
|
-
|
|
77437
|
-
|
|
77438
|
-
|
|
77439
|
-
|
|
77440
|
-
|
|
77441
|
-
|
|
77442
|
-
|
|
77783
|
+
this.appearance = "default";
|
|
77784
|
+
this.disabled = false;
|
|
77785
|
+
this.layout = 'classic';
|
|
77786
|
+
this.locale = 'en-US';
|
|
77787
|
+
this.max = undefined;
|
|
77788
|
+
this._maxObject = undefined;
|
|
77789
|
+
this.maxLength = undefined;
|
|
77790
|
+
this.min = undefined;
|
|
77791
|
+
this._minObject = undefined;
|
|
77792
|
+
this.minLength = undefined;
|
|
77793
|
+
this.required = false;
|
|
77794
|
+
this.onDark = false;
|
|
77795
|
+
this.setCustomValidityForType = undefined;
|
|
77796
|
+
this.size = 'lg';
|
|
77797
|
+
this.shape = 'classic';
|
|
77798
|
+
this.value = undefined;
|
|
77799
|
+
this._valueObject = undefined;
|
|
77800
|
+
|
|
77801
|
+
this._initializePrivateDefaults();
|
|
77802
|
+
}
|
|
77803
|
+
|
|
77804
|
+
/**
|
|
77805
|
+
* Internal Defaults.
|
|
77806
|
+
* @private
|
|
77807
|
+
* @returns {void}
|
|
77808
|
+
*/
|
|
77809
|
+
_initializePrivateDefaults() {
|
|
77443
77810
|
this.activeLabel = false;
|
|
77444
|
-
|
|
77811
|
+
this.appearance = "default";
|
|
77812
|
+
this.icon = false;
|
|
77813
|
+
this.disabled = false;
|
|
77814
|
+
this.dvInputOnly = false;
|
|
77815
|
+
this.hideLabelVisually = false;
|
|
77816
|
+
this.max = undefined;
|
|
77817
|
+
this.maxLength = undefined;
|
|
77818
|
+
this.min = undefined;
|
|
77819
|
+
this.minLength = undefined;
|
|
77820
|
+
this.noValidate = false;
|
|
77821
|
+
this.onDark = false;
|
|
77822
|
+
this.required = false;
|
|
77823
|
+
this.setCustomValidityForType = undefined;
|
|
77824
|
+
|
|
77825
|
+
// Used for storing raw values returned from input mask.
|
|
77826
|
+
this._rawMaskValue = undefined;
|
|
77827
|
+
|
|
77828
|
+
/**
|
|
77829
|
+
* @private
|
|
77830
|
+
*/
|
|
77831
|
+
this.layout = 'classic';
|
|
77832
|
+
|
|
77833
|
+
/**
|
|
77834
|
+
* @private
|
|
77835
|
+
*/
|
|
77836
|
+
this.shape = 'classic';
|
|
77837
|
+
|
|
77838
|
+
/**
|
|
77839
|
+
* @private
|
|
77840
|
+
*/
|
|
77841
|
+
this.size = 'lg';
|
|
77842
|
+
|
|
77843
|
+
this.touched = false;
|
|
77844
|
+
this.util = new AuroInputUtilities({
|
|
77845
|
+
locale: "en-US",
|
|
77846
|
+
format: this.format
|
|
77847
|
+
});
|
|
77848
|
+
this.validation = new AuroFormValidation$2();
|
|
77849
|
+
this.inputIconName = undefined;
|
|
77850
|
+
this.showPassword = false;
|
|
77851
|
+
this.validationCCLength = undefined;
|
|
77852
|
+
this.hasValue = false;
|
|
77853
|
+
this.label = 'Input label is undefined';
|
|
77854
|
+
|
|
77855
|
+
|
|
77445
77856
|
this.allowedInputTypes = [
|
|
77446
77857
|
"text",
|
|
77447
77858
|
"number",
|
|
@@ -77450,8 +77861,7 @@ class BaseInput extends AuroElement$1$1 {
|
|
|
77450
77861
|
"credit-card",
|
|
77451
77862
|
"tel"
|
|
77452
77863
|
];
|
|
77453
|
-
this.
|
|
77454
|
-
/** @private */
|
|
77864
|
+
this.icon = false;
|
|
77455
77865
|
this.dateFormatMap = {
|
|
77456
77866
|
'mm/dd/yyyy': 'dateMMDDYYYY',
|
|
77457
77867
|
'dd/mm/yyyy': 'dateDDMMYYYY',
|
|
@@ -77468,57 +77878,27 @@ class BaseInput extends AuroElement$1$1 {
|
|
|
77468
77878
|
'dd/mm': 'dateDDMM',
|
|
77469
77879
|
'mm/dd': 'dateMMDD'
|
|
77470
77880
|
};
|
|
77471
|
-
this.disabled = false;
|
|
77472
|
-
/** @private */
|
|
77473
77881
|
this.domHandler = new DomHandler();
|
|
77474
77882
|
this.dvInputOnly = false;
|
|
77475
77883
|
this.hasValue = false;
|
|
77476
|
-
this.hideLabelVisually = false;
|
|
77477
|
-
this.icon = false;
|
|
77478
|
-
/** @private */
|
|
77479
77884
|
this.inputIconName = undefined;
|
|
77480
|
-
/** @private */
|
|
77481
77885
|
this.label = 'Input label is undefined';
|
|
77482
|
-
this.layout = 'classic';
|
|
77483
|
-
this.locale = 'en-US';
|
|
77484
|
-
this.max = undefined;
|
|
77485
|
-
this._maxObject = undefined;
|
|
77486
|
-
this.maxLength = undefined;
|
|
77487
|
-
this.min = undefined;
|
|
77488
|
-
this._minObject = undefined;
|
|
77489
|
-
this.minLength = undefined;
|
|
77490
77886
|
this.noValidate = false;
|
|
77491
|
-
this.
|
|
77492
|
-
// Raw values returned from the input mask before model normalization.
|
|
77493
|
-
this._rawMaskValue = undefined;
|
|
77494
|
-
this.required = false;
|
|
77495
|
-
this.setCustomValidityForType = undefined;
|
|
77496
|
-
// Credit Card is intentionally excluded — its mask manages the cursor
|
|
77497
|
-
// itself, and listing it here caused cursor placement issues in Safari.
|
|
77498
|
-
/** @private */
|
|
77887
|
+
this._rawMaskValue = undefined; // Used for storing raw values returned from input mask.
|
|
77499
77888
|
this.setSelectionInputTypes = [
|
|
77500
77889
|
"text",
|
|
77501
77890
|
"password",
|
|
77502
77891
|
"email"
|
|
77503
|
-
];
|
|
77504
|
-
this.shape = 'classic';
|
|
77505
|
-
/** @private */
|
|
77892
|
+
]; // Credit Card is not included as this caused cursor placement issues in Safari.
|
|
77506
77893
|
this.showPassword = false;
|
|
77507
|
-
this.size = 'lg';
|
|
77508
77894
|
this.touched = false;
|
|
77509
|
-
/** @private */
|
|
77510
77895
|
this.uniqueId = new UniqueId().create();
|
|
77511
|
-
/** @private */
|
|
77512
77896
|
this.util = new AuroInputUtilities({
|
|
77513
77897
|
locale: this.locale,
|
|
77514
77898
|
format: this.format
|
|
77515
77899
|
});
|
|
77516
|
-
/** @private */
|
|
77517
77900
|
this.validation = new AuroFormValidation$2();
|
|
77518
|
-
/** @private */
|
|
77519
77901
|
this.validationCCLength = undefined;
|
|
77520
|
-
this.value = undefined;
|
|
77521
|
-
this._valueObject = undefined;
|
|
77522
77902
|
}
|
|
77523
77903
|
|
|
77524
77904
|
// function to define props used within the scope of this component
|
|
@@ -78066,15 +78446,6 @@ class BaseInput extends AuroElement$1$1 {
|
|
|
78066
78446
|
|
|
78067
78447
|
this.inputId = this.id ? `${this.id}-input` : window.crypto.randomUUID();
|
|
78068
78448
|
|
|
78069
|
-
// Normalize the format token to lowercase so case-mixed values supplied
|
|
78070
|
-
// via attribute (e.g. `format="MM/DD/YYYY"`) hit the `dateFormatMap`
|
|
78071
|
-
// lookup inside `setCustomHelpTextMessage`. Without this, an uppercase
|
|
78072
|
-
// format silently misses the map and leaves `setCustomValidityForType`
|
|
78073
|
-
// unset.
|
|
78074
|
-
if (this.format) {
|
|
78075
|
-
this.format = this.format.toLowerCase();
|
|
78076
|
-
}
|
|
78077
|
-
|
|
78078
78449
|
// use validity message override if declared when initializing the component
|
|
78079
78450
|
if (this.hasAttribute('setCustomValidity')) {
|
|
78080
78451
|
this.ValidityMessageOverride = this.setCustomValidity;
|
|
@@ -78508,38 +78879,6 @@ class BaseInput extends AuroElement$1$1 {
|
|
|
78508
78879
|
this.touched = true;
|
|
78509
78880
|
this.validation.validate(this);
|
|
78510
78881
|
}
|
|
78511
|
-
|
|
78512
|
-
// Prevents cursor jumping in Safari. Setting `this.value` triggers a Lit
|
|
78513
|
-
// update that can re-render the input and reset the native cursor; we
|
|
78514
|
-
// capture the caret position before that update commits and restore it
|
|
78515
|
-
// via `setSelectionRange` once the update has flushed. Gated on
|
|
78516
|
-
// `setSelectionInputTypes` so credit-card (and other masked types whose
|
|
78517
|
-
// formatter manages the cursor itself) doesn't get a competing write.
|
|
78518
|
-
// Capture the caret position INSIDE the gate — reading `selectionStart`
|
|
78519
|
-
// on input types that don't support text selection (number, email in
|
|
78520
|
-
// some browsers) throws InvalidStateError, which would crash all input
|
|
78521
|
-
// handling. Wrap the read in try/catch belt-and-suspenders even though
|
|
78522
|
-
// the gated types currently support it, since the list is a public
|
|
78523
|
-
// property a consumer could mutate.
|
|
78524
|
-
if (this.setSelectionInputTypes.includes(this.type)) {
|
|
78525
|
-
let selectionStart;
|
|
78526
|
-
try {
|
|
78527
|
-
selectionStart = this.inputElement.selectionStart;
|
|
78528
|
-
} catch (error) { // eslint-disable-line no-unused-vars
|
|
78529
|
-
return;
|
|
78530
|
-
}
|
|
78531
|
-
if (typeof selectionStart !== 'number') {
|
|
78532
|
-
return;
|
|
78533
|
-
}
|
|
78534
|
-
this.updateComplete.then(() => {
|
|
78535
|
-
try {
|
|
78536
|
-
this.inputElement.setSelectionRange(selectionStart, selectionStart);
|
|
78537
|
-
} catch (error) { // eslint-disable-line no-unused-vars
|
|
78538
|
-
// Some input types (number/email in certain UAs) throw on
|
|
78539
|
-
// setSelectionRange; swallow and let the native cursor stand.
|
|
78540
|
-
}
|
|
78541
|
-
});
|
|
78542
|
-
}
|
|
78543
78882
|
}
|
|
78544
78883
|
|
|
78545
78884
|
/**
|
|
@@ -79166,7 +79505,7 @@ let AuroHelpText$1$1 = class AuroHelpText extends i$2 {
|
|
|
79166
79505
|
}
|
|
79167
79506
|
};
|
|
79168
79507
|
|
|
79169
|
-
var formkitVersion$1$1 = '
|
|
79508
|
+
var formkitVersion$1$1 = '202606291440';
|
|
79170
79509
|
|
|
79171
79510
|
// Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
|
|
79172
79511
|
// See LICENSE in the project root for license information.
|
|
@@ -79669,7 +80008,6 @@ class AuroInput extends BaseInput {
|
|
|
79669
80008
|
<${this.buttonTag}
|
|
79670
80009
|
@click="${this.handleClickShowPassword}"
|
|
79671
80010
|
appearance="${this.onDark ? 'inverse' : this.appearance}"
|
|
79672
|
-
aria-pressed="${this.showPassword ? 'true' : 'false'}"
|
|
79673
80011
|
class="notificationBtn passwordBtn"
|
|
79674
80012
|
shape="circle"
|
|
79675
80013
|
size="sm"
|
|
@@ -79743,29 +80081,25 @@ class AuroInput extends BaseInput {
|
|
|
79743
80081
|
* @returns {html} - Returns HTML for the help text and error message.
|
|
79744
80082
|
*/
|
|
79745
80083
|
renderHtmlHelpText() {
|
|
79746
|
-
// Single `<p>` with stable identity across validity transitions —
|
|
79747
|
-
// previously two distinct templates (valid vs invalid) caused Lit to
|
|
79748
|
-
// replace the node entirely on a flip, and VoiceOver wouldn't
|
|
79749
|
-
// re-announce because the live-region element it was watching had been
|
|
79750
|
-
// removed and a new one inserted. Keeping one node means the `role`,
|
|
79751
|
-
// `aria-live`, and text content all change in-place, which AT does
|
|
79752
|
-
// observe and announce.
|
|
79753
|
-
const isError = this.validity && this.validity !== 'valid';
|
|
79754
80084
|
return u$d`
|
|
79755
|
-
|
|
79756
|
-
|
|
79757
|
-
|
|
79758
|
-
|
|
79759
|
-
|
|
79760
|
-
|
|
79761
|
-
|
|
79762
|
-
|
|
79763
|
-
|
|
79764
|
-
|
|
79765
|
-
|
|
79766
|
-
|
|
79767
|
-
|
|
79768
|
-
|
|
80085
|
+
${!this.validity || this.validity === undefined || this.validity === 'valid'
|
|
80086
|
+
? u$d`
|
|
80087
|
+
<${this.helpTextTag}
|
|
80088
|
+
appearance="${this.onDark ? 'inverse' : this.appearance}">
|
|
80089
|
+
<p id="${this.uniqueId}" part="helpText">
|
|
80090
|
+
<slot name="helpText">${this.getHelpText()}</slot>
|
|
80091
|
+
</p>
|
|
80092
|
+
</${this.helpTextTag}>
|
|
80093
|
+
`
|
|
80094
|
+
: u$d`
|
|
80095
|
+
<${this.helpTextTag} error
|
|
80096
|
+
appearance="${this.onDark ? 'inverse' : this.appearance}">
|
|
80097
|
+
<p id="${this.uniqueId}" role="alert" aria-live="assertive" part="helpText">
|
|
80098
|
+
${this.errorMessage}
|
|
80099
|
+
</p>
|
|
80100
|
+
</${this.helpTextTag}>
|
|
80101
|
+
`
|
|
80102
|
+
}
|
|
79769
80103
|
`;
|
|
79770
80104
|
}
|
|
79771
80105
|
|
|
@@ -80292,7 +80626,7 @@ let AuroBibtemplate$1 = class AuroBibtemplate extends i$2 {
|
|
|
80292
80626
|
}
|
|
80293
80627
|
};
|
|
80294
80628
|
|
|
80295
|
-
var formkitVersion$3 = '
|
|
80629
|
+
var formkitVersion$3 = '202606291440';
|
|
80296
80630
|
|
|
80297
80631
|
var styleCss$1$3 = i$4`.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}`;
|
|
80298
80632
|
|
|
@@ -89083,7 +89417,7 @@ let AuroHelpText$1 = class AuroHelpText extends i$2 {
|
|
|
89083
89417
|
}
|
|
89084
89418
|
};
|
|
89085
89419
|
|
|
89086
|
-
var formkitVersion$1 = '
|
|
89420
|
+
var formkitVersion$1 = '202606291440';
|
|
89087
89421
|
|
|
89088
89422
|
class AuroElement extends i$2 {
|
|
89089
89423
|
static get properties() {
|
|
@@ -91104,7 +91438,7 @@ class AuroHelpText extends i$2 {
|
|
|
91104
91438
|
}
|
|
91105
91439
|
}
|
|
91106
91440
|
|
|
91107
|
-
var formkitVersion = '
|
|
91441
|
+
var formkitVersion = '202606291440';
|
|
91108
91442
|
|
|
91109
91443
|
var styleCss = i$4`.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}`;
|
|
91110
91444
|
|