@aurodesignsystem-dev/auro-formkit 0.0.0-pr1506.1 → 0.0.0-pr1507.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 +268 -140
- package/components/combobox/demo/getting-started.min.js +268 -140
- package/components/combobox/demo/index.min.js +268 -140
- package/components/combobox/dist/auro-combobox.d.ts +0 -9
- package/components/combobox/dist/index.js +266 -138
- package/components/combobox/dist/registered.js +266 -138
- 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/customize.min.js +149 -39
- package/components/datepicker/demo/index.min.js +149 -39
- package/components/datepicker/dist/index.js +149 -39
- package/components/datepicker/dist/registered.js +149 -39
- 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 +570 -221
- package/components/form/demo/getting-started.min.js +570 -221
- package/components/form/demo/index.min.js +570 -221
- package/components/form/demo/registerDemoDeps.min.js +570 -221
- package/components/input/demo/customize.min.js +147 -36
- package/components/input/demo/getting-started.min.js +147 -36
- package/components/input/demo/index.min.js +147 -36
- package/components/input/dist/base-input.d.ts +48 -0
- package/components/input/dist/index.js +147 -36
- package/components/input/dist/registered.js +147 -36
- package/components/menu/demo/index.min.js +2 -2
- package/components/menu/dist/index.js +2 -2
- package/components/menu/dist/registered.js +2 -2
- 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 +4 -4
- package/components/select/demo/getting-started.min.js +4 -4
- package/components/select/demo/index.min.js +4 -4
- package/components/select/dist/index.js +2 -2
- package/components/select/dist/registered.js +2 -2
- package/custom-elements.json +264 -20
- package/package.json +1 -1
|
@@ -10460,7 +10460,6 @@ let AuroInputUtilities$3 = class AuroInputUtilities {
|
|
|
10460
10460
|
const maskOptions = this.getMaskOptions('date', normalizedFormat);
|
|
10461
10461
|
|
|
10462
10462
|
if (!(valueObject instanceof Date) || Number.isNaN(valueObject.getTime()) || !maskOptions || typeof maskOptions.format !== 'function') {
|
|
10463
|
-
console.debug('Invalid date object or mask options for formatting', { valueObject, maskOptions }); // eslint-disable-line no-console
|
|
10464
10463
|
return undefined;
|
|
10465
10464
|
}
|
|
10466
10465
|
|
|
@@ -10612,8 +10611,10 @@ let BaseInput$2 = class BaseInput extends AuroElement$6 {
|
|
|
10612
10611
|
this.layout = 'classic';
|
|
10613
10612
|
this.locale = 'en-US';
|
|
10614
10613
|
this.max = undefined;
|
|
10614
|
+
this._maxObject = undefined;
|
|
10615
10615
|
this.maxLength = undefined;
|
|
10616
10616
|
this.min = undefined;
|
|
10617
|
+
this._minObject = undefined;
|
|
10617
10618
|
this.minLength = undefined;
|
|
10618
10619
|
this.required = false;
|
|
10619
10620
|
this.onDark = false;
|
|
@@ -10621,6 +10622,7 @@ let BaseInput$2 = class BaseInput extends AuroElement$6 {
|
|
|
10621
10622
|
this.size = 'lg';
|
|
10622
10623
|
this.shape = 'classic';
|
|
10623
10624
|
this.value = undefined;
|
|
10625
|
+
this._valueObject = undefined;
|
|
10624
10626
|
|
|
10625
10627
|
this._initializePrivateDefaults();
|
|
10626
10628
|
}
|
|
@@ -11160,7 +11162,7 @@ let BaseInput$2 = class BaseInput extends AuroElement$6 {
|
|
|
11160
11162
|
* @returns {Date|undefined}
|
|
11161
11163
|
*/
|
|
11162
11164
|
get valueObject() {
|
|
11163
|
-
return this.
|
|
11165
|
+
return this._valueObject || this._computeDateObjectFallback(this.value);
|
|
11164
11166
|
}
|
|
11165
11167
|
|
|
11166
11168
|
/**
|
|
@@ -11168,7 +11170,7 @@ let BaseInput$2 = class BaseInput extends AuroElement$6 {
|
|
|
11168
11170
|
* @returns {Date|undefined}
|
|
11169
11171
|
*/
|
|
11170
11172
|
get minObject() {
|
|
11171
|
-
return this.
|
|
11173
|
+
return this._minObject || this._computeDateObjectFallback(this.min);
|
|
11172
11174
|
}
|
|
11173
11175
|
|
|
11174
11176
|
/**
|
|
@@ -11176,7 +11178,50 @@ let BaseInput$2 = class BaseInput extends AuroElement$6 {
|
|
|
11176
11178
|
* @returns {Date|undefined}
|
|
11177
11179
|
*/
|
|
11178
11180
|
get maxObject() {
|
|
11179
|
-
return this.
|
|
11181
|
+
return this._maxObject || this._computeDateObjectFallback(this.max);
|
|
11182
|
+
}
|
|
11183
|
+
|
|
11184
|
+
/**
|
|
11185
|
+
* Parses a date string into a Date object when the corresponding `_*Object`
|
|
11186
|
+
* field hasn't been synced yet by `updated()`. Returns undefined when the
|
|
11187
|
+
* input type/format isn't a full date or the string is not a valid date.
|
|
11188
|
+
*
|
|
11189
|
+
* Why this exists: a parent (datepicker) can call `inputN.validate()` from
|
|
11190
|
+
* inside its own `updated()` before this input's `updated()` has run
|
|
11191
|
+
* `syncDateValues()` — so `_valueObject`/`_maxObject` are still `undefined`
|
|
11192
|
+
* and range checks would otherwise silently no-op (flipping the result to
|
|
11193
|
+
* `valid` or `patternMismatch`).
|
|
11194
|
+
* @private
|
|
11195
|
+
* @param {string|undefined} dateStr - ISO date string from `value`/`min`/`max`.
|
|
11196
|
+
* @returns {Date|undefined}
|
|
11197
|
+
*/
|
|
11198
|
+
_computeDateObjectFallback(dateStr) {
|
|
11199
|
+
if (!dateStr || !this.util || !this.util.isFullDateFormat(this.type, this.format)) {
|
|
11200
|
+
return undefined;
|
|
11201
|
+
}
|
|
11202
|
+
if (!dateFormatter$3.isValidDate(dateStr)) {
|
|
11203
|
+
return undefined;
|
|
11204
|
+
}
|
|
11205
|
+
return dateFormatter$3.stringToDateInstance(dateStr);
|
|
11206
|
+
}
|
|
11207
|
+
|
|
11208
|
+
/**
|
|
11209
|
+
* Internal setter for readonly date object properties.
|
|
11210
|
+
* @private
|
|
11211
|
+
* @param {'valueObject'|'minObject'|'maxObject'} propertyName - Public object property name.
|
|
11212
|
+
* @param {Date|undefined} propertyValue - Value to assign.
|
|
11213
|
+
* @returns {void}
|
|
11214
|
+
*/
|
|
11215
|
+
setDateObjectProperty(propertyName, propertyValue) {
|
|
11216
|
+
const internalPropertyName = `_${propertyName}`;
|
|
11217
|
+
const previousValue = this[internalPropertyName];
|
|
11218
|
+
|
|
11219
|
+
if (previousValue === propertyValue) {
|
|
11220
|
+
return;
|
|
11221
|
+
}
|
|
11222
|
+
|
|
11223
|
+
this[internalPropertyName] = propertyValue;
|
|
11224
|
+
this.requestUpdate(propertyName, previousValue);
|
|
11180
11225
|
}
|
|
11181
11226
|
|
|
11182
11227
|
connectedCallback() {
|
|
@@ -11205,6 +11250,7 @@ let BaseInput$2 = class BaseInput extends AuroElement$6 {
|
|
|
11205
11250
|
format: this.format
|
|
11206
11251
|
});
|
|
11207
11252
|
this.configureDataForType();
|
|
11253
|
+
this.syncDateValues();
|
|
11208
11254
|
}
|
|
11209
11255
|
|
|
11210
11256
|
disconnectedCallback() {
|
|
@@ -11224,6 +11270,10 @@ let BaseInput$2 = class BaseInput extends AuroElement$6 {
|
|
|
11224
11270
|
this.wrapperElement.addEventListener('click', this.handleClick);
|
|
11225
11271
|
}
|
|
11226
11272
|
|
|
11273
|
+
// add attribute for query selectors when auro-input is registered under a custom name
|
|
11274
|
+
if (this.tagName.toLowerCase() !== 'auro-input' && !this.hasAttribute('auro-input')) {
|
|
11275
|
+
this.setAttribute('auro-input', '');
|
|
11276
|
+
}
|
|
11227
11277
|
this.inputId = this.id ? `${this.id}-input` : window.crypto.randomUUID();
|
|
11228
11278
|
|
|
11229
11279
|
// use validity message override if declared when initializing the component
|
|
@@ -11234,6 +11284,7 @@ let BaseInput$2 = class BaseInput extends AuroElement$6 {
|
|
|
11234
11284
|
this.setCustomHelpTextMessage();
|
|
11235
11285
|
this.configureAutoFormatting();
|
|
11236
11286
|
this.configureDataForType();
|
|
11287
|
+
this.syncDateValues();
|
|
11237
11288
|
}
|
|
11238
11289
|
|
|
11239
11290
|
/**
|
|
@@ -11370,6 +11421,8 @@ let BaseInput$2 = class BaseInput extends AuroElement$6 {
|
|
|
11370
11421
|
this.configureDataForType();
|
|
11371
11422
|
}
|
|
11372
11423
|
|
|
11424
|
+
this.syncDateValues(changedProperties);
|
|
11425
|
+
|
|
11373
11426
|
if (changedProperties.has('value')) {
|
|
11374
11427
|
if (this.value && this.value.length > 0) {
|
|
11375
11428
|
this.hasValue = true;
|
|
@@ -11391,14 +11444,14 @@ let BaseInput$2 = class BaseInput extends AuroElement$6 {
|
|
|
11391
11444
|
|
|
11392
11445
|
if (formattedValue !== this.inputElement.value) {
|
|
11393
11446
|
this.skipNextProgrammaticInputEvent = true;
|
|
11394
|
-
if (this.maskInstance && this.type
|
|
11447
|
+
if (this.maskInstance && this.type === 'credit-card') {
|
|
11395
11448
|
// Route through the mask so its _value and el.value stay in lock-step
|
|
11396
11449
|
// (set value calls updateControl which writes el.value = displayValue).
|
|
11397
11450
|
// Writing el.value directly leaves the mask thinking displayValue is
|
|
11398
|
-
// stale; _saveSelection on the next focus/click then warns.
|
|
11399
|
-
//
|
|
11400
|
-
//
|
|
11401
|
-
// flip validity from patternMismatch to tooShort.
|
|
11451
|
+
// stale; _saveSelection on the next focus/click then warns. Scoped to
|
|
11452
|
+
// credit-card so date's own formattedValue (raw ISO when calendar-invalid)
|
|
11453
|
+
// isn't re-masked through the mm/dd/yyyy mask, which would truncate it
|
|
11454
|
+
// and flip validity from patternMismatch to tooShort.
|
|
11402
11455
|
this.maskInstance.value = formattedValue || '';
|
|
11403
11456
|
} else if (formattedValue) {
|
|
11404
11457
|
this.inputElement.value = formattedValue;
|
|
@@ -11440,60 +11493,120 @@ let BaseInput$2 = class BaseInput extends AuroElement$6 {
|
|
|
11440
11493
|
}));
|
|
11441
11494
|
}
|
|
11442
11495
|
|
|
11496
|
+
|
|
11497
|
+
/**
|
|
11498
|
+
* Synchronizes the ISO string values and Date object representations for date-related properties.
|
|
11499
|
+
* This keeps the model and display values aligned when either side changes.
|
|
11500
|
+
*
|
|
11501
|
+
* When a full date format is in use, this method updates `value`, `min`, and `max` from their corresponding
|
|
11502
|
+
* Date objects or vice versa, based on which properties have changed. It only runs when the current configuration
|
|
11503
|
+
* represents a full year/month/day date format.
|
|
11504
|
+
*
|
|
11505
|
+
* @param {Map<string, unknown>|undefined} [changedProperties=undefined] - Optional map of changed properties used to limit which values are synchronized.
|
|
11506
|
+
* @returns {void}
|
|
11507
|
+
* @private
|
|
11508
|
+
*/
|
|
11509
|
+
syncDateValues(changedProperties = undefined) {
|
|
11510
|
+
if (!this.util.isFullDateFormat(this.type, this.format)) {
|
|
11511
|
+
return;
|
|
11512
|
+
}
|
|
11513
|
+
|
|
11514
|
+
this.syncSingleDateValue(changedProperties, 'valueObject', 'value');
|
|
11515
|
+
this.syncSingleDateValue(changedProperties, 'minObject', 'min');
|
|
11516
|
+
this.syncSingleDateValue(changedProperties, 'maxObject', 'max');
|
|
11517
|
+
}
|
|
11518
|
+
|
|
11519
|
+
/**
|
|
11520
|
+
* Synchronizes one date object/string property pair.
|
|
11521
|
+
* @private
|
|
11522
|
+
* @param {Map<string, unknown>|undefined} changedProperties - Map of changed properties from Lit.
|
|
11523
|
+
* @param {string} objectProperty - Date object property name.
|
|
11524
|
+
* @param {string} valueProperty - ISO string property name.
|
|
11525
|
+
* @returns {void}
|
|
11526
|
+
*/
|
|
11527
|
+
syncSingleDateValue(changedProperties, objectProperty, valueProperty) {
|
|
11528
|
+
const objectPropertyChanged = !changedProperties || changedProperties.has(objectProperty);
|
|
11529
|
+
|
|
11530
|
+
// objectProperty wins over valueProperty when both changed
|
|
11531
|
+
if (objectPropertyChanged && this[objectProperty]) {
|
|
11532
|
+
this[valueProperty] = dateFormatter$3.toISOFormatString(this[objectProperty]);
|
|
11533
|
+
return;
|
|
11534
|
+
}
|
|
11535
|
+
|
|
11536
|
+
const valuePropertyChanged = !changedProperties || changedProperties.has(valueProperty);
|
|
11537
|
+
if (!valuePropertyChanged) {
|
|
11538
|
+
return;
|
|
11539
|
+
}
|
|
11540
|
+
|
|
11541
|
+
// when value is newly set to the same ISO string that corresponds to the existing Date object, do not clear the Date object (avoid unnecessary updates)
|
|
11542
|
+
if (
|
|
11543
|
+
changedProperties &&
|
|
11544
|
+
valueProperty === 'value' &&
|
|
11545
|
+
changedProperties.get('value') === undefined &&
|
|
11546
|
+
this[objectProperty] instanceof Date &&
|
|
11547
|
+
this[valueProperty] === dateFormatter$3.toISOFormatString(this[objectProperty])
|
|
11548
|
+
) {
|
|
11549
|
+
return;
|
|
11550
|
+
}
|
|
11551
|
+
|
|
11552
|
+
if (dateFormatter$3.isValidDate(this[valueProperty])) {
|
|
11553
|
+
this.setDateObjectProperty(objectProperty, dateFormatter$3.stringToDateInstance(this[valueProperty]));
|
|
11554
|
+
} else {
|
|
11555
|
+
this.setDateObjectProperty(objectProperty, undefined);
|
|
11556
|
+
}
|
|
11557
|
+
}
|
|
11558
|
+
|
|
11443
11559
|
/**
|
|
11444
11560
|
* Sets up IMasks and logic based on auto-formatting requirements.
|
|
11445
11561
|
* @private
|
|
11446
11562
|
* @returns {void}
|
|
11447
11563
|
*/
|
|
11448
11564
|
configureAutoFormatting() {
|
|
11449
|
-
//
|
|
11450
|
-
//
|
|
11451
|
-
//
|
|
11452
|
-
//
|
|
11565
|
+
// Re-entrancy guard. The patched-setter's synthetic input event (suppressed
|
|
11566
|
+
// by _configuringMask above) could otherwise trigger handleInput →
|
|
11567
|
+
// processCreditCard → configureAutoFormatting before the outer call's
|
|
11568
|
+
// set value has finished its alignCursor pass.
|
|
11453
11569
|
if (this._configuringMask) return;
|
|
11454
11570
|
this._configuringMask = true;
|
|
11455
11571
|
try {
|
|
11456
|
-
// Destroy any prior mask so IMask can attach fresh under the new format.
|
|
11457
11572
|
if (this.maskInstance) {
|
|
11458
11573
|
this.maskInstance.destroy();
|
|
11459
11574
|
}
|
|
11460
11575
|
|
|
11576
|
+
// Pass new format to util
|
|
11461
11577
|
this.util.updateFormat(this.format);
|
|
11462
11578
|
|
|
11463
11579
|
const maskOptions = this.util.getMaskOptions(this.type, this.format);
|
|
11464
11580
|
|
|
11465
11581
|
if (this.inputElement && maskOptions.mask) {
|
|
11466
|
-
// Capture the current display so it can be re-applied after IMask
|
|
11467
|
-
// attaches. The restore at the bottom goes through maskInstance.value
|
|
11468
|
-
// (not inputElement.value directly) so the mask's internal state and
|
|
11469
|
-
// the input's displayed text stay in lock-step.
|
|
11470
|
-
let existingValue = this.inputElement.value;
|
|
11471
11582
|
|
|
11472
|
-
//
|
|
11473
|
-
//
|
|
11474
|
-
//
|
|
11475
|
-
//
|
|
11583
|
+
// Stash and clear any existing value before IMask init.
|
|
11584
|
+
// IMask's constructor processes the current input value which requires
|
|
11585
|
+
// selection state — clearing first avoids that scenario entirely.
|
|
11586
|
+
// When the format changes (e.g. locale switch) and we have a valid ISO
|
|
11587
|
+
// model value, compute the display string for the NEW format instead of
|
|
11588
|
+
// re-using the old display string, which may be invalid in the new mask.
|
|
11589
|
+
let existingValue = this.inputElement.value;
|
|
11476
11590
|
if (
|
|
11477
11591
|
this.util.isFullDateFormat(this.type, this.format) &&
|
|
11478
11592
|
this.value &&
|
|
11479
|
-
this.
|
|
11593
|
+
dateFormatter$3.isValidDate(this.value) &&
|
|
11594
|
+
this.valueObject instanceof Date &&
|
|
11595
|
+
!Number.isNaN(this.valueObject.getTime()) &&
|
|
11480
11596
|
typeof maskOptions.format === 'function'
|
|
11481
11597
|
) {
|
|
11482
11598
|
existingValue = maskOptions.format(this.valueObject);
|
|
11483
11599
|
}
|
|
11484
11600
|
|
|
11485
|
-
// Clear before IMask attaches so the constructor seeds an empty
|
|
11486
|
-
// internal value. Otherwise IMask reads the stale unmasked string
|
|
11487
|
-
// and emits a spurious 'accept' before the restore below runs.
|
|
11488
11601
|
this.skipNextProgrammaticInputEvent = true;
|
|
11489
11602
|
this.inputElement.value = '';
|
|
11490
11603
|
|
|
11491
11604
|
this.maskInstance = IMask$3(this.inputElement, maskOptions);
|
|
11492
11605
|
|
|
11493
|
-
// Mask fires 'accept' on every value change, including the restore
|
|
11494
|
-
// step below. Skip events fired during configureAutoFormatting so
|
|
11495
|
-
// we don't overwrite a value the parent just pushed.
|
|
11496
11606
|
this.maskInstance.on('accept', () => {
|
|
11607
|
+
// Suppress propagation during configureAutoFormatting's own value-restoration
|
|
11608
|
+
// (line below) — the mask emits 'accept' on every value-set, including ours,
|
|
11609
|
+
// and we don't want to overwrite a value the parent just pushed.
|
|
11497
11610
|
if (this._configuringMask) return;
|
|
11498
11611
|
this.value = this.util.toModelValue(this.maskInstance.value, this.format);
|
|
11499
11612
|
if (this.type === "date") {
|
|
@@ -11501,8 +11614,6 @@ let BaseInput$2 = class BaseInput extends AuroElement$6 {
|
|
|
11501
11614
|
}
|
|
11502
11615
|
});
|
|
11503
11616
|
|
|
11504
|
-
// Mask fires 'complete' on the restore step below for any value that
|
|
11505
|
-
// happens to be a complete match. Same setup-suppression as 'accept'.
|
|
11506
11617
|
this.maskInstance.on('complete', () => {
|
|
11507
11618
|
if (this._configuringMask) return;
|
|
11508
11619
|
this.value = this.util.toModelValue(this.maskInstance.value, this.format);
|
|
@@ -11511,9 +11622,7 @@ let BaseInput$2 = class BaseInput extends AuroElement$6 {
|
|
|
11511
11622
|
}
|
|
11512
11623
|
});
|
|
11513
11624
|
|
|
11514
|
-
//
|
|
11515
|
-
// the mask reformats it under the new rules and keeps its internal
|
|
11516
|
-
// _value aligned with the input's displayed text.
|
|
11625
|
+
// Restore the stashed value through IMask so it's properly masked
|
|
11517
11626
|
if (existingValue) {
|
|
11518
11627
|
this.maskInstance.value = existingValue;
|
|
11519
11628
|
}
|
|
@@ -11681,6 +11790,7 @@ let BaseInput$2 = class BaseInput extends AuroElement$6 {
|
|
|
11681
11790
|
*/
|
|
11682
11791
|
reset() {
|
|
11683
11792
|
this.value = undefined;
|
|
11793
|
+
this.setDateObjectProperty('valueObject', undefined);
|
|
11684
11794
|
this.validation.reset(this);
|
|
11685
11795
|
}
|
|
11686
11796
|
|
|
@@ -11689,6 +11799,7 @@ let BaseInput$2 = class BaseInput extends AuroElement$6 {
|
|
|
11689
11799
|
*/
|
|
11690
11800
|
clear() {
|
|
11691
11801
|
this.value = undefined;
|
|
11802
|
+
this.setDateObjectProperty('valueObject', undefined);
|
|
11692
11803
|
}
|
|
11693
11804
|
|
|
11694
11805
|
/**
|
|
@@ -12217,7 +12328,7 @@ let AuroHelpText$8 = class AuroHelpText extends i$2 {
|
|
|
12217
12328
|
}
|
|
12218
12329
|
};
|
|
12219
12330
|
|
|
12220
|
-
var formkitVersion$8 = '
|
|
12331
|
+
var formkitVersion$8 = '202606192121';
|
|
12221
12332
|
|
|
12222
12333
|
// Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
|
|
12223
12334
|
// See LICENSE in the project root for license information.
|
|
@@ -23456,7 +23567,6 @@ let AuroInputUtilities$1 = class AuroInputUtilities {
|
|
|
23456
23567
|
const maskOptions = this.getMaskOptions('date', normalizedFormat);
|
|
23457
23568
|
|
|
23458
23569
|
if (!(valueObject instanceof Date) || Number.isNaN(valueObject.getTime()) || !maskOptions || typeof maskOptions.format !== 'function') {
|
|
23459
|
-
console.debug('Invalid date object or mask options for formatting', { valueObject, maskOptions }); // eslint-disable-line no-console
|
|
23460
23570
|
return undefined;
|
|
23461
23571
|
}
|
|
23462
23572
|
|
|
@@ -26337,7 +26447,7 @@ let AuroBibtemplate$3 = class AuroBibtemplate extends i$2 {
|
|
|
26337
26447
|
}
|
|
26338
26448
|
};
|
|
26339
26449
|
|
|
26340
|
-
var formkitVersion$2$1 = '
|
|
26450
|
+
var formkitVersion$2$1 = '202606192121';
|
|
26341
26451
|
|
|
26342
26452
|
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}
|
|
26343
26453
|
`,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}}
|
|
@@ -31848,7 +31958,7 @@ let AuroHelpText$2$1 = class AuroHelpText extends i$2 {
|
|
|
31848
31958
|
}
|
|
31849
31959
|
};
|
|
31850
31960
|
|
|
31851
|
-
var formkitVersion$1$3 = '
|
|
31961
|
+
var formkitVersion$1$3 = '202606192121';
|
|
31852
31962
|
|
|
31853
31963
|
let AuroElement$2$2 = class AuroElement extends i$2 {
|
|
31854
31964
|
static get properties() {
|
|
@@ -43562,7 +43672,6 @@ let AuroInputUtilities$2 = class AuroInputUtilities {
|
|
|
43562
43672
|
const maskOptions = this.getMaskOptions('date', normalizedFormat);
|
|
43563
43673
|
|
|
43564
43674
|
if (!(valueObject instanceof Date) || Number.isNaN(valueObject.getTime()) || !maskOptions || typeof maskOptions.format !== 'function') {
|
|
43565
|
-
console.debug('Invalid date object or mask options for formatting', { valueObject, maskOptions }); // eslint-disable-line no-console
|
|
43566
43675
|
return undefined;
|
|
43567
43676
|
}
|
|
43568
43677
|
|
|
@@ -43714,8 +43823,10 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
|
|
|
43714
43823
|
this.layout = 'classic';
|
|
43715
43824
|
this.locale = 'en-US';
|
|
43716
43825
|
this.max = undefined;
|
|
43826
|
+
this._maxObject = undefined;
|
|
43717
43827
|
this.maxLength = undefined;
|
|
43718
43828
|
this.min = undefined;
|
|
43829
|
+
this._minObject = undefined;
|
|
43719
43830
|
this.minLength = undefined;
|
|
43720
43831
|
this.required = false;
|
|
43721
43832
|
this.onDark = false;
|
|
@@ -43723,6 +43834,7 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
|
|
|
43723
43834
|
this.size = 'lg';
|
|
43724
43835
|
this.shape = 'classic';
|
|
43725
43836
|
this.value = undefined;
|
|
43837
|
+
this._valueObject = undefined;
|
|
43726
43838
|
|
|
43727
43839
|
this._initializePrivateDefaults();
|
|
43728
43840
|
}
|
|
@@ -44262,7 +44374,7 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
|
|
|
44262
44374
|
* @returns {Date|undefined}
|
|
44263
44375
|
*/
|
|
44264
44376
|
get valueObject() {
|
|
44265
|
-
return this.
|
|
44377
|
+
return this._valueObject || this._computeDateObjectFallback(this.value);
|
|
44266
44378
|
}
|
|
44267
44379
|
|
|
44268
44380
|
/**
|
|
@@ -44270,7 +44382,7 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
|
|
|
44270
44382
|
* @returns {Date|undefined}
|
|
44271
44383
|
*/
|
|
44272
44384
|
get minObject() {
|
|
44273
|
-
return this.
|
|
44385
|
+
return this._minObject || this._computeDateObjectFallback(this.min);
|
|
44274
44386
|
}
|
|
44275
44387
|
|
|
44276
44388
|
/**
|
|
@@ -44278,7 +44390,50 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
|
|
|
44278
44390
|
* @returns {Date|undefined}
|
|
44279
44391
|
*/
|
|
44280
44392
|
get maxObject() {
|
|
44281
|
-
return this.
|
|
44393
|
+
return this._maxObject || this._computeDateObjectFallback(this.max);
|
|
44394
|
+
}
|
|
44395
|
+
|
|
44396
|
+
/**
|
|
44397
|
+
* Parses a date string into a Date object when the corresponding `_*Object`
|
|
44398
|
+
* field hasn't been synced yet by `updated()`. Returns undefined when the
|
|
44399
|
+
* input type/format isn't a full date or the string is not a valid date.
|
|
44400
|
+
*
|
|
44401
|
+
* Why this exists: a parent (datepicker) can call `inputN.validate()` from
|
|
44402
|
+
* inside its own `updated()` before this input's `updated()` has run
|
|
44403
|
+
* `syncDateValues()` — so `_valueObject`/`_maxObject` are still `undefined`
|
|
44404
|
+
* and range checks would otherwise silently no-op (flipping the result to
|
|
44405
|
+
* `valid` or `patternMismatch`).
|
|
44406
|
+
* @private
|
|
44407
|
+
* @param {string|undefined} dateStr - ISO date string from `value`/`min`/`max`.
|
|
44408
|
+
* @returns {Date|undefined}
|
|
44409
|
+
*/
|
|
44410
|
+
_computeDateObjectFallback(dateStr) {
|
|
44411
|
+
if (!dateStr || !this.util || !this.util.isFullDateFormat(this.type, this.format)) {
|
|
44412
|
+
return undefined;
|
|
44413
|
+
}
|
|
44414
|
+
if (!dateFormatter$2.isValidDate(dateStr)) {
|
|
44415
|
+
return undefined;
|
|
44416
|
+
}
|
|
44417
|
+
return dateFormatter$2.stringToDateInstance(dateStr);
|
|
44418
|
+
}
|
|
44419
|
+
|
|
44420
|
+
/**
|
|
44421
|
+
* Internal setter for readonly date object properties.
|
|
44422
|
+
* @private
|
|
44423
|
+
* @param {'valueObject'|'minObject'|'maxObject'} propertyName - Public object property name.
|
|
44424
|
+
* @param {Date|undefined} propertyValue - Value to assign.
|
|
44425
|
+
* @returns {void}
|
|
44426
|
+
*/
|
|
44427
|
+
setDateObjectProperty(propertyName, propertyValue) {
|
|
44428
|
+
const internalPropertyName = `_${propertyName}`;
|
|
44429
|
+
const previousValue = this[internalPropertyName];
|
|
44430
|
+
|
|
44431
|
+
if (previousValue === propertyValue) {
|
|
44432
|
+
return;
|
|
44433
|
+
}
|
|
44434
|
+
|
|
44435
|
+
this[internalPropertyName] = propertyValue;
|
|
44436
|
+
this.requestUpdate(propertyName, previousValue);
|
|
44282
44437
|
}
|
|
44283
44438
|
|
|
44284
44439
|
connectedCallback() {
|
|
@@ -44307,6 +44462,7 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
|
|
|
44307
44462
|
format: this.format
|
|
44308
44463
|
});
|
|
44309
44464
|
this.configureDataForType();
|
|
44465
|
+
this.syncDateValues();
|
|
44310
44466
|
}
|
|
44311
44467
|
|
|
44312
44468
|
disconnectedCallback() {
|
|
@@ -44326,6 +44482,10 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
|
|
|
44326
44482
|
this.wrapperElement.addEventListener('click', this.handleClick);
|
|
44327
44483
|
}
|
|
44328
44484
|
|
|
44485
|
+
// add attribute for query selectors when auro-input is registered under a custom name
|
|
44486
|
+
if (this.tagName.toLowerCase() !== 'auro-input' && !this.hasAttribute('auro-input')) {
|
|
44487
|
+
this.setAttribute('auro-input', '');
|
|
44488
|
+
}
|
|
44329
44489
|
this.inputId = this.id ? `${this.id}-input` : window.crypto.randomUUID();
|
|
44330
44490
|
|
|
44331
44491
|
// use validity message override if declared when initializing the component
|
|
@@ -44336,6 +44496,7 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
|
|
|
44336
44496
|
this.setCustomHelpTextMessage();
|
|
44337
44497
|
this.configureAutoFormatting();
|
|
44338
44498
|
this.configureDataForType();
|
|
44499
|
+
this.syncDateValues();
|
|
44339
44500
|
}
|
|
44340
44501
|
|
|
44341
44502
|
/**
|
|
@@ -44472,6 +44633,8 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
|
|
|
44472
44633
|
this.configureDataForType();
|
|
44473
44634
|
}
|
|
44474
44635
|
|
|
44636
|
+
this.syncDateValues(changedProperties);
|
|
44637
|
+
|
|
44475
44638
|
if (changedProperties.has('value')) {
|
|
44476
44639
|
if (this.value && this.value.length > 0) {
|
|
44477
44640
|
this.hasValue = true;
|
|
@@ -44493,14 +44656,14 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
|
|
|
44493
44656
|
|
|
44494
44657
|
if (formattedValue !== this.inputElement.value) {
|
|
44495
44658
|
this.skipNextProgrammaticInputEvent = true;
|
|
44496
|
-
if (this.maskInstance && this.type
|
|
44659
|
+
if (this.maskInstance && this.type === 'credit-card') {
|
|
44497
44660
|
// Route through the mask so its _value and el.value stay in lock-step
|
|
44498
44661
|
// (set value calls updateControl which writes el.value = displayValue).
|
|
44499
44662
|
// Writing el.value directly leaves the mask thinking displayValue is
|
|
44500
|
-
// stale; _saveSelection on the next focus/click then warns.
|
|
44501
|
-
//
|
|
44502
|
-
//
|
|
44503
|
-
// flip validity from patternMismatch to tooShort.
|
|
44663
|
+
// stale; _saveSelection on the next focus/click then warns. Scoped to
|
|
44664
|
+
// credit-card so date's own formattedValue (raw ISO when calendar-invalid)
|
|
44665
|
+
// isn't re-masked through the mm/dd/yyyy mask, which would truncate it
|
|
44666
|
+
// and flip validity from patternMismatch to tooShort.
|
|
44504
44667
|
this.maskInstance.value = formattedValue || '';
|
|
44505
44668
|
} else if (formattedValue) {
|
|
44506
44669
|
this.inputElement.value = formattedValue;
|
|
@@ -44542,60 +44705,120 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
|
|
|
44542
44705
|
}));
|
|
44543
44706
|
}
|
|
44544
44707
|
|
|
44708
|
+
|
|
44709
|
+
/**
|
|
44710
|
+
* Synchronizes the ISO string values and Date object representations for date-related properties.
|
|
44711
|
+
* This keeps the model and display values aligned when either side changes.
|
|
44712
|
+
*
|
|
44713
|
+
* When a full date format is in use, this method updates `value`, `min`, and `max` from their corresponding
|
|
44714
|
+
* Date objects or vice versa, based on which properties have changed. It only runs when the current configuration
|
|
44715
|
+
* represents a full year/month/day date format.
|
|
44716
|
+
*
|
|
44717
|
+
* @param {Map<string, unknown>|undefined} [changedProperties=undefined] - Optional map of changed properties used to limit which values are synchronized.
|
|
44718
|
+
* @returns {void}
|
|
44719
|
+
* @private
|
|
44720
|
+
*/
|
|
44721
|
+
syncDateValues(changedProperties = undefined) {
|
|
44722
|
+
if (!this.util.isFullDateFormat(this.type, this.format)) {
|
|
44723
|
+
return;
|
|
44724
|
+
}
|
|
44725
|
+
|
|
44726
|
+
this.syncSingleDateValue(changedProperties, 'valueObject', 'value');
|
|
44727
|
+
this.syncSingleDateValue(changedProperties, 'minObject', 'min');
|
|
44728
|
+
this.syncSingleDateValue(changedProperties, 'maxObject', 'max');
|
|
44729
|
+
}
|
|
44730
|
+
|
|
44731
|
+
/**
|
|
44732
|
+
* Synchronizes one date object/string property pair.
|
|
44733
|
+
* @private
|
|
44734
|
+
* @param {Map<string, unknown>|undefined} changedProperties - Map of changed properties from Lit.
|
|
44735
|
+
* @param {string} objectProperty - Date object property name.
|
|
44736
|
+
* @param {string} valueProperty - ISO string property name.
|
|
44737
|
+
* @returns {void}
|
|
44738
|
+
*/
|
|
44739
|
+
syncSingleDateValue(changedProperties, objectProperty, valueProperty) {
|
|
44740
|
+
const objectPropertyChanged = !changedProperties || changedProperties.has(objectProperty);
|
|
44741
|
+
|
|
44742
|
+
// objectProperty wins over valueProperty when both changed
|
|
44743
|
+
if (objectPropertyChanged && this[objectProperty]) {
|
|
44744
|
+
this[valueProperty] = dateFormatter$2.toISOFormatString(this[objectProperty]);
|
|
44745
|
+
return;
|
|
44746
|
+
}
|
|
44747
|
+
|
|
44748
|
+
const valuePropertyChanged = !changedProperties || changedProperties.has(valueProperty);
|
|
44749
|
+
if (!valuePropertyChanged) {
|
|
44750
|
+
return;
|
|
44751
|
+
}
|
|
44752
|
+
|
|
44753
|
+
// when value is newly set to the same ISO string that corresponds to the existing Date object, do not clear the Date object (avoid unnecessary updates)
|
|
44754
|
+
if (
|
|
44755
|
+
changedProperties &&
|
|
44756
|
+
valueProperty === 'value' &&
|
|
44757
|
+
changedProperties.get('value') === undefined &&
|
|
44758
|
+
this[objectProperty] instanceof Date &&
|
|
44759
|
+
this[valueProperty] === dateFormatter$2.toISOFormatString(this[objectProperty])
|
|
44760
|
+
) {
|
|
44761
|
+
return;
|
|
44762
|
+
}
|
|
44763
|
+
|
|
44764
|
+
if (dateFormatter$2.isValidDate(this[valueProperty])) {
|
|
44765
|
+
this.setDateObjectProperty(objectProperty, dateFormatter$2.stringToDateInstance(this[valueProperty]));
|
|
44766
|
+
} else {
|
|
44767
|
+
this.setDateObjectProperty(objectProperty, undefined);
|
|
44768
|
+
}
|
|
44769
|
+
}
|
|
44770
|
+
|
|
44545
44771
|
/**
|
|
44546
44772
|
* Sets up IMasks and logic based on auto-formatting requirements.
|
|
44547
44773
|
* @private
|
|
44548
44774
|
* @returns {void}
|
|
44549
44775
|
*/
|
|
44550
44776
|
configureAutoFormatting() {
|
|
44551
|
-
//
|
|
44552
|
-
//
|
|
44553
|
-
//
|
|
44554
|
-
//
|
|
44777
|
+
// Re-entrancy guard. The patched-setter's synthetic input event (suppressed
|
|
44778
|
+
// by _configuringMask above) could otherwise trigger handleInput →
|
|
44779
|
+
// processCreditCard → configureAutoFormatting before the outer call's
|
|
44780
|
+
// set value has finished its alignCursor pass.
|
|
44555
44781
|
if (this._configuringMask) return;
|
|
44556
44782
|
this._configuringMask = true;
|
|
44557
44783
|
try {
|
|
44558
|
-
// Destroy any prior mask so IMask can attach fresh under the new format.
|
|
44559
44784
|
if (this.maskInstance) {
|
|
44560
44785
|
this.maskInstance.destroy();
|
|
44561
44786
|
}
|
|
44562
44787
|
|
|
44788
|
+
// Pass new format to util
|
|
44563
44789
|
this.util.updateFormat(this.format);
|
|
44564
44790
|
|
|
44565
44791
|
const maskOptions = this.util.getMaskOptions(this.type, this.format);
|
|
44566
44792
|
|
|
44567
44793
|
if (this.inputElement && maskOptions.mask) {
|
|
44568
|
-
// Capture the current display so it can be re-applied after IMask
|
|
44569
|
-
// attaches. The restore at the bottom goes through maskInstance.value
|
|
44570
|
-
// (not inputElement.value directly) so the mask's internal state and
|
|
44571
|
-
// the input's displayed text stay in lock-step.
|
|
44572
|
-
let existingValue = this.inputElement.value;
|
|
44573
44794
|
|
|
44574
|
-
//
|
|
44575
|
-
//
|
|
44576
|
-
//
|
|
44577
|
-
//
|
|
44795
|
+
// Stash and clear any existing value before IMask init.
|
|
44796
|
+
// IMask's constructor processes the current input value which requires
|
|
44797
|
+
// selection state — clearing first avoids that scenario entirely.
|
|
44798
|
+
// When the format changes (e.g. locale switch) and we have a valid ISO
|
|
44799
|
+
// model value, compute the display string for the NEW format instead of
|
|
44800
|
+
// re-using the old display string, which may be invalid in the new mask.
|
|
44801
|
+
let existingValue = this.inputElement.value;
|
|
44578
44802
|
if (
|
|
44579
44803
|
this.util.isFullDateFormat(this.type, this.format) &&
|
|
44580
44804
|
this.value &&
|
|
44581
|
-
this.
|
|
44805
|
+
dateFormatter$2.isValidDate(this.value) &&
|
|
44806
|
+
this.valueObject instanceof Date &&
|
|
44807
|
+
!Number.isNaN(this.valueObject.getTime()) &&
|
|
44582
44808
|
typeof maskOptions.format === 'function'
|
|
44583
44809
|
) {
|
|
44584
44810
|
existingValue = maskOptions.format(this.valueObject);
|
|
44585
44811
|
}
|
|
44586
44812
|
|
|
44587
|
-
// Clear before IMask attaches so the constructor seeds an empty
|
|
44588
|
-
// internal value. Otherwise IMask reads the stale unmasked string
|
|
44589
|
-
// and emits a spurious 'accept' before the restore below runs.
|
|
44590
44813
|
this.skipNextProgrammaticInputEvent = true;
|
|
44591
44814
|
this.inputElement.value = '';
|
|
44592
44815
|
|
|
44593
44816
|
this.maskInstance = IMask$2(this.inputElement, maskOptions);
|
|
44594
44817
|
|
|
44595
|
-
// Mask fires 'accept' on every value change, including the restore
|
|
44596
|
-
// step below. Skip events fired during configureAutoFormatting so
|
|
44597
|
-
// we don't overwrite a value the parent just pushed.
|
|
44598
44818
|
this.maskInstance.on('accept', () => {
|
|
44819
|
+
// Suppress propagation during configureAutoFormatting's own value-restoration
|
|
44820
|
+
// (line below) — the mask emits 'accept' on every value-set, including ours,
|
|
44821
|
+
// and we don't want to overwrite a value the parent just pushed.
|
|
44599
44822
|
if (this._configuringMask) return;
|
|
44600
44823
|
this.value = this.util.toModelValue(this.maskInstance.value, this.format);
|
|
44601
44824
|
if (this.type === "date") {
|
|
@@ -44603,8 +44826,6 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
|
|
|
44603
44826
|
}
|
|
44604
44827
|
});
|
|
44605
44828
|
|
|
44606
|
-
// Mask fires 'complete' on the restore step below for any value that
|
|
44607
|
-
// happens to be a complete match. Same setup-suppression as 'accept'.
|
|
44608
44829
|
this.maskInstance.on('complete', () => {
|
|
44609
44830
|
if (this._configuringMask) return;
|
|
44610
44831
|
this.value = this.util.toModelValue(this.maskInstance.value, this.format);
|
|
@@ -44613,9 +44834,7 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
|
|
|
44613
44834
|
}
|
|
44614
44835
|
});
|
|
44615
44836
|
|
|
44616
|
-
//
|
|
44617
|
-
// the mask reformats it under the new rules and keeps its internal
|
|
44618
|
-
// _value aligned with the input's displayed text.
|
|
44837
|
+
// Restore the stashed value through IMask so it's properly masked
|
|
44619
44838
|
if (existingValue) {
|
|
44620
44839
|
this.maskInstance.value = existingValue;
|
|
44621
44840
|
}
|
|
@@ -44783,6 +45002,7 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
|
|
|
44783
45002
|
*/
|
|
44784
45003
|
reset() {
|
|
44785
45004
|
this.value = undefined;
|
|
45005
|
+
this.setDateObjectProperty('valueObject', undefined);
|
|
44786
45006
|
this.validation.reset(this);
|
|
44787
45007
|
}
|
|
44788
45008
|
|
|
@@ -44791,6 +45011,7 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
|
|
|
44791
45011
|
*/
|
|
44792
45012
|
clear() {
|
|
44793
45013
|
this.value = undefined;
|
|
45014
|
+
this.setDateObjectProperty('valueObject', undefined);
|
|
44794
45015
|
}
|
|
44795
45016
|
|
|
44796
45017
|
/**
|
|
@@ -45319,7 +45540,7 @@ let AuroHelpText$1$3 = class AuroHelpText extends i$2 {
|
|
|
45319
45540
|
}
|
|
45320
45541
|
};
|
|
45321
45542
|
|
|
45322
|
-
var formkitVersion$7 = '
|
|
45543
|
+
var formkitVersion$7 = '202606192121';
|
|
45323
45544
|
|
|
45324
45545
|
// Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
|
|
45325
45546
|
// See LICENSE in the project root for license information.
|
|
@@ -50016,7 +50237,7 @@ let AuroHelpText$1$2 = class AuroHelpText extends i$2 {
|
|
|
50016
50237
|
}
|
|
50017
50238
|
};
|
|
50018
50239
|
|
|
50019
|
-
var formkitVersion$1$2 = '
|
|
50240
|
+
var formkitVersion$1$2 = '202606192121';
|
|
50020
50241
|
|
|
50021
50242
|
// Copyright (c) 2026 Alaska Airlines. All rights reserved. Licensed under the Apache-2.0 license
|
|
50022
50243
|
// See LICENSE in the project root for license information.
|
|
@@ -54344,7 +54565,7 @@ let AuroHelpText$6 = class AuroHelpText extends i$2 {
|
|
|
54344
54565
|
}
|
|
54345
54566
|
};
|
|
54346
54567
|
|
|
54347
|
-
var formkitVersion$6 = '
|
|
54568
|
+
var formkitVersion$6 = '202606192121';
|
|
54348
54569
|
|
|
54349
54570
|
let AuroElement$1$2 = class AuroElement extends i$2 {
|
|
54350
54571
|
static get properties() {
|
|
@@ -58276,7 +58497,7 @@ let AuroHelpText$5 = class AuroHelpText extends i$2 {
|
|
|
58276
58497
|
}
|
|
58277
58498
|
};
|
|
58278
58499
|
|
|
58279
|
-
var formkitVersion$5 = '
|
|
58500
|
+
var formkitVersion$5 = '202606192121';
|
|
58280
58501
|
|
|
58281
58502
|
// Copyright (c) Alaska Air. All right reserved. Licensed under the Apache-2.0 license
|
|
58282
58503
|
// See LICENSE in the project root for license information.
|
|
@@ -60026,7 +60247,7 @@ let AuroHelpText$4 = class AuroHelpText extends i$2 {
|
|
|
60026
60247
|
}
|
|
60027
60248
|
};
|
|
60028
60249
|
|
|
60029
|
-
var formkitVersion$4 = '
|
|
60250
|
+
var formkitVersion$4 = '202606192121';
|
|
60030
60251
|
|
|
60031
60252
|
// Copyright (c) 2026 Alaska Airlines. All rights reserved. Licensed under the Apache-2.0 license
|
|
60032
60253
|
// See LICENSE in the project root for license information.
|
|
@@ -61202,8 +61423,6 @@ function navigateArrow$1(component, direction, options = {}) {
|
|
|
61202
61423
|
}
|
|
61203
61424
|
}
|
|
61204
61425
|
|
|
61205
|
-
/* eslint-disable no-underscore-dangle */
|
|
61206
|
-
|
|
61207
61426
|
/**
|
|
61208
61427
|
* Returns the clear button element from the active input's shadow
|
|
61209
61428
|
* DOM, if available.
|
|
@@ -61239,9 +61458,11 @@ function isClearBtnFocused(ctx, clearBtn = getClearBtn(ctx)) {
|
|
|
61239
61458
|
* @param {Object} menu - The menu component.
|
|
61240
61459
|
*/
|
|
61241
61460
|
function reconcileMenuIndex(menu) {
|
|
61461
|
+
// eslint-disable-next-line no-underscore-dangle
|
|
61242
61462
|
if (menu._index < 0 && menu.optionActive && menu.items) {
|
|
61243
61463
|
const idx = menu.items.indexOf(menu.optionActive);
|
|
61244
61464
|
if (idx >= 0) {
|
|
61465
|
+
// eslint-disable-next-line no-underscore-dangle
|
|
61245
61466
|
menu._index = idx;
|
|
61246
61467
|
}
|
|
61247
61468
|
}
|
|
@@ -65241,7 +65462,7 @@ let AuroHelpText$2 = class AuroHelpText extends i$2 {
|
|
|
65241
65462
|
}
|
|
65242
65463
|
};
|
|
65243
65464
|
|
|
65244
|
-
var formkitVersion$2 = '
|
|
65465
|
+
var formkitVersion$2 = '202606192121';
|
|
65245
65466
|
|
|
65246
65467
|
let AuroElement$2$1 = class AuroElement extends i$2 {
|
|
65247
65468
|
static get properties() {
|
|
@@ -76955,7 +77176,6 @@ class AuroInputUtilities {
|
|
|
76955
77176
|
const maskOptions = this.getMaskOptions('date', normalizedFormat);
|
|
76956
77177
|
|
|
76957
77178
|
if (!(valueObject instanceof Date) || Number.isNaN(valueObject.getTime()) || !maskOptions || typeof maskOptions.format !== 'function') {
|
|
76958
|
-
console.debug('Invalid date object or mask options for formatting', { valueObject, maskOptions }); // eslint-disable-line no-console
|
|
76959
77179
|
return undefined;
|
|
76960
77180
|
}
|
|
76961
77181
|
|
|
@@ -77107,8 +77327,10 @@ class BaseInput extends AuroElement$1$1 {
|
|
|
77107
77327
|
this.layout = 'classic';
|
|
77108
77328
|
this.locale = 'en-US';
|
|
77109
77329
|
this.max = undefined;
|
|
77330
|
+
this._maxObject = undefined;
|
|
77110
77331
|
this.maxLength = undefined;
|
|
77111
77332
|
this.min = undefined;
|
|
77333
|
+
this._minObject = undefined;
|
|
77112
77334
|
this.minLength = undefined;
|
|
77113
77335
|
this.required = false;
|
|
77114
77336
|
this.onDark = false;
|
|
@@ -77116,6 +77338,7 @@ class BaseInput extends AuroElement$1$1 {
|
|
|
77116
77338
|
this.size = 'lg';
|
|
77117
77339
|
this.shape = 'classic';
|
|
77118
77340
|
this.value = undefined;
|
|
77341
|
+
this._valueObject = undefined;
|
|
77119
77342
|
|
|
77120
77343
|
this._initializePrivateDefaults();
|
|
77121
77344
|
}
|
|
@@ -77655,7 +77878,7 @@ class BaseInput extends AuroElement$1$1 {
|
|
|
77655
77878
|
* @returns {Date|undefined}
|
|
77656
77879
|
*/
|
|
77657
77880
|
get valueObject() {
|
|
77658
|
-
return this.
|
|
77881
|
+
return this._valueObject || this._computeDateObjectFallback(this.value);
|
|
77659
77882
|
}
|
|
77660
77883
|
|
|
77661
77884
|
/**
|
|
@@ -77663,7 +77886,7 @@ class BaseInput extends AuroElement$1$1 {
|
|
|
77663
77886
|
* @returns {Date|undefined}
|
|
77664
77887
|
*/
|
|
77665
77888
|
get minObject() {
|
|
77666
|
-
return this.
|
|
77889
|
+
return this._minObject || this._computeDateObjectFallback(this.min);
|
|
77667
77890
|
}
|
|
77668
77891
|
|
|
77669
77892
|
/**
|
|
@@ -77671,7 +77894,50 @@ class BaseInput extends AuroElement$1$1 {
|
|
|
77671
77894
|
* @returns {Date|undefined}
|
|
77672
77895
|
*/
|
|
77673
77896
|
get maxObject() {
|
|
77674
|
-
return this.
|
|
77897
|
+
return this._maxObject || this._computeDateObjectFallback(this.max);
|
|
77898
|
+
}
|
|
77899
|
+
|
|
77900
|
+
/**
|
|
77901
|
+
* Parses a date string into a Date object when the corresponding `_*Object`
|
|
77902
|
+
* field hasn't been synced yet by `updated()`. Returns undefined when the
|
|
77903
|
+
* input type/format isn't a full date or the string is not a valid date.
|
|
77904
|
+
*
|
|
77905
|
+
* Why this exists: a parent (datepicker) can call `inputN.validate()` from
|
|
77906
|
+
* inside its own `updated()` before this input's `updated()` has run
|
|
77907
|
+
* `syncDateValues()` — so `_valueObject`/`_maxObject` are still `undefined`
|
|
77908
|
+
* and range checks would otherwise silently no-op (flipping the result to
|
|
77909
|
+
* `valid` or `patternMismatch`).
|
|
77910
|
+
* @private
|
|
77911
|
+
* @param {string|undefined} dateStr - ISO date string from `value`/`min`/`max`.
|
|
77912
|
+
* @returns {Date|undefined}
|
|
77913
|
+
*/
|
|
77914
|
+
_computeDateObjectFallback(dateStr) {
|
|
77915
|
+
if (!dateStr || !this.util || !this.util.isFullDateFormat(this.type, this.format)) {
|
|
77916
|
+
return undefined;
|
|
77917
|
+
}
|
|
77918
|
+
if (!dateFormatter.isValidDate(dateStr)) {
|
|
77919
|
+
return undefined;
|
|
77920
|
+
}
|
|
77921
|
+
return dateFormatter.stringToDateInstance(dateStr);
|
|
77922
|
+
}
|
|
77923
|
+
|
|
77924
|
+
/**
|
|
77925
|
+
* Internal setter for readonly date object properties.
|
|
77926
|
+
* @private
|
|
77927
|
+
* @param {'valueObject'|'minObject'|'maxObject'} propertyName - Public object property name.
|
|
77928
|
+
* @param {Date|undefined} propertyValue - Value to assign.
|
|
77929
|
+
* @returns {void}
|
|
77930
|
+
*/
|
|
77931
|
+
setDateObjectProperty(propertyName, propertyValue) {
|
|
77932
|
+
const internalPropertyName = `_${propertyName}`;
|
|
77933
|
+
const previousValue = this[internalPropertyName];
|
|
77934
|
+
|
|
77935
|
+
if (previousValue === propertyValue) {
|
|
77936
|
+
return;
|
|
77937
|
+
}
|
|
77938
|
+
|
|
77939
|
+
this[internalPropertyName] = propertyValue;
|
|
77940
|
+
this.requestUpdate(propertyName, previousValue);
|
|
77675
77941
|
}
|
|
77676
77942
|
|
|
77677
77943
|
connectedCallback() {
|
|
@@ -77700,6 +77966,7 @@ class BaseInput extends AuroElement$1$1 {
|
|
|
77700
77966
|
format: this.format
|
|
77701
77967
|
});
|
|
77702
77968
|
this.configureDataForType();
|
|
77969
|
+
this.syncDateValues();
|
|
77703
77970
|
}
|
|
77704
77971
|
|
|
77705
77972
|
disconnectedCallback() {
|
|
@@ -77719,6 +77986,10 @@ class BaseInput extends AuroElement$1$1 {
|
|
|
77719
77986
|
this.wrapperElement.addEventListener('click', this.handleClick);
|
|
77720
77987
|
}
|
|
77721
77988
|
|
|
77989
|
+
// add attribute for query selectors when auro-input is registered under a custom name
|
|
77990
|
+
if (this.tagName.toLowerCase() !== 'auro-input' && !this.hasAttribute('auro-input')) {
|
|
77991
|
+
this.setAttribute('auro-input', '');
|
|
77992
|
+
}
|
|
77722
77993
|
this.inputId = this.id ? `${this.id}-input` : window.crypto.randomUUID();
|
|
77723
77994
|
|
|
77724
77995
|
// use validity message override if declared when initializing the component
|
|
@@ -77729,6 +78000,7 @@ class BaseInput extends AuroElement$1$1 {
|
|
|
77729
78000
|
this.setCustomHelpTextMessage();
|
|
77730
78001
|
this.configureAutoFormatting();
|
|
77731
78002
|
this.configureDataForType();
|
|
78003
|
+
this.syncDateValues();
|
|
77732
78004
|
}
|
|
77733
78005
|
|
|
77734
78006
|
/**
|
|
@@ -77865,6 +78137,8 @@ class BaseInput extends AuroElement$1$1 {
|
|
|
77865
78137
|
this.configureDataForType();
|
|
77866
78138
|
}
|
|
77867
78139
|
|
|
78140
|
+
this.syncDateValues(changedProperties);
|
|
78141
|
+
|
|
77868
78142
|
if (changedProperties.has('value')) {
|
|
77869
78143
|
if (this.value && this.value.length > 0) {
|
|
77870
78144
|
this.hasValue = true;
|
|
@@ -77886,14 +78160,14 @@ class BaseInput extends AuroElement$1$1 {
|
|
|
77886
78160
|
|
|
77887
78161
|
if (formattedValue !== this.inputElement.value) {
|
|
77888
78162
|
this.skipNextProgrammaticInputEvent = true;
|
|
77889
|
-
if (this.maskInstance && this.type
|
|
78163
|
+
if (this.maskInstance && this.type === 'credit-card') {
|
|
77890
78164
|
// Route through the mask so its _value and el.value stay in lock-step
|
|
77891
78165
|
// (set value calls updateControl which writes el.value = displayValue).
|
|
77892
78166
|
// Writing el.value directly leaves the mask thinking displayValue is
|
|
77893
|
-
// stale; _saveSelection on the next focus/click then warns.
|
|
77894
|
-
//
|
|
77895
|
-
//
|
|
77896
|
-
// flip validity from patternMismatch to tooShort.
|
|
78167
|
+
// stale; _saveSelection on the next focus/click then warns. Scoped to
|
|
78168
|
+
// credit-card so date's own formattedValue (raw ISO when calendar-invalid)
|
|
78169
|
+
// isn't re-masked through the mm/dd/yyyy mask, which would truncate it
|
|
78170
|
+
// and flip validity from patternMismatch to tooShort.
|
|
77897
78171
|
this.maskInstance.value = formattedValue || '';
|
|
77898
78172
|
} else if (formattedValue) {
|
|
77899
78173
|
this.inputElement.value = formattedValue;
|
|
@@ -77935,60 +78209,120 @@ class BaseInput extends AuroElement$1$1 {
|
|
|
77935
78209
|
}));
|
|
77936
78210
|
}
|
|
77937
78211
|
|
|
78212
|
+
|
|
78213
|
+
/**
|
|
78214
|
+
* Synchronizes the ISO string values and Date object representations for date-related properties.
|
|
78215
|
+
* This keeps the model and display values aligned when either side changes.
|
|
78216
|
+
*
|
|
78217
|
+
* When a full date format is in use, this method updates `value`, `min`, and `max` from their corresponding
|
|
78218
|
+
* Date objects or vice versa, based on which properties have changed. It only runs when the current configuration
|
|
78219
|
+
* represents a full year/month/day date format.
|
|
78220
|
+
*
|
|
78221
|
+
* @param {Map<string, unknown>|undefined} [changedProperties=undefined] - Optional map of changed properties used to limit which values are synchronized.
|
|
78222
|
+
* @returns {void}
|
|
78223
|
+
* @private
|
|
78224
|
+
*/
|
|
78225
|
+
syncDateValues(changedProperties = undefined) {
|
|
78226
|
+
if (!this.util.isFullDateFormat(this.type, this.format)) {
|
|
78227
|
+
return;
|
|
78228
|
+
}
|
|
78229
|
+
|
|
78230
|
+
this.syncSingleDateValue(changedProperties, 'valueObject', 'value');
|
|
78231
|
+
this.syncSingleDateValue(changedProperties, 'minObject', 'min');
|
|
78232
|
+
this.syncSingleDateValue(changedProperties, 'maxObject', 'max');
|
|
78233
|
+
}
|
|
78234
|
+
|
|
78235
|
+
/**
|
|
78236
|
+
* Synchronizes one date object/string property pair.
|
|
78237
|
+
* @private
|
|
78238
|
+
* @param {Map<string, unknown>|undefined} changedProperties - Map of changed properties from Lit.
|
|
78239
|
+
* @param {string} objectProperty - Date object property name.
|
|
78240
|
+
* @param {string} valueProperty - ISO string property name.
|
|
78241
|
+
* @returns {void}
|
|
78242
|
+
*/
|
|
78243
|
+
syncSingleDateValue(changedProperties, objectProperty, valueProperty) {
|
|
78244
|
+
const objectPropertyChanged = !changedProperties || changedProperties.has(objectProperty);
|
|
78245
|
+
|
|
78246
|
+
// objectProperty wins over valueProperty when both changed
|
|
78247
|
+
if (objectPropertyChanged && this[objectProperty]) {
|
|
78248
|
+
this[valueProperty] = dateFormatter.toISOFormatString(this[objectProperty]);
|
|
78249
|
+
return;
|
|
78250
|
+
}
|
|
78251
|
+
|
|
78252
|
+
const valuePropertyChanged = !changedProperties || changedProperties.has(valueProperty);
|
|
78253
|
+
if (!valuePropertyChanged) {
|
|
78254
|
+
return;
|
|
78255
|
+
}
|
|
78256
|
+
|
|
78257
|
+
// when value is newly set to the same ISO string that corresponds to the existing Date object, do not clear the Date object (avoid unnecessary updates)
|
|
78258
|
+
if (
|
|
78259
|
+
changedProperties &&
|
|
78260
|
+
valueProperty === 'value' &&
|
|
78261
|
+
changedProperties.get('value') === undefined &&
|
|
78262
|
+
this[objectProperty] instanceof Date &&
|
|
78263
|
+
this[valueProperty] === dateFormatter.toISOFormatString(this[objectProperty])
|
|
78264
|
+
) {
|
|
78265
|
+
return;
|
|
78266
|
+
}
|
|
78267
|
+
|
|
78268
|
+
if (dateFormatter.isValidDate(this[valueProperty])) {
|
|
78269
|
+
this.setDateObjectProperty(objectProperty, dateFormatter.stringToDateInstance(this[valueProperty]));
|
|
78270
|
+
} else {
|
|
78271
|
+
this.setDateObjectProperty(objectProperty, undefined);
|
|
78272
|
+
}
|
|
78273
|
+
}
|
|
78274
|
+
|
|
77938
78275
|
/**
|
|
77939
78276
|
* Sets up IMasks and logic based on auto-formatting requirements.
|
|
77940
78277
|
* @private
|
|
77941
78278
|
* @returns {void}
|
|
77942
78279
|
*/
|
|
77943
78280
|
configureAutoFormatting() {
|
|
77944
|
-
//
|
|
77945
|
-
//
|
|
77946
|
-
//
|
|
77947
|
-
//
|
|
78281
|
+
// Re-entrancy guard. The patched-setter's synthetic input event (suppressed
|
|
78282
|
+
// by _configuringMask above) could otherwise trigger handleInput →
|
|
78283
|
+
// processCreditCard → configureAutoFormatting before the outer call's
|
|
78284
|
+
// set value has finished its alignCursor pass.
|
|
77948
78285
|
if (this._configuringMask) return;
|
|
77949
78286
|
this._configuringMask = true;
|
|
77950
78287
|
try {
|
|
77951
|
-
// Destroy any prior mask so IMask can attach fresh under the new format.
|
|
77952
78288
|
if (this.maskInstance) {
|
|
77953
78289
|
this.maskInstance.destroy();
|
|
77954
78290
|
}
|
|
77955
78291
|
|
|
78292
|
+
// Pass new format to util
|
|
77956
78293
|
this.util.updateFormat(this.format);
|
|
77957
78294
|
|
|
77958
78295
|
const maskOptions = this.util.getMaskOptions(this.type, this.format);
|
|
77959
78296
|
|
|
77960
78297
|
if (this.inputElement && maskOptions.mask) {
|
|
77961
|
-
// Capture the current display so it can be re-applied after IMask
|
|
77962
|
-
// attaches. The restore at the bottom goes through maskInstance.value
|
|
77963
|
-
// (not inputElement.value directly) so the mask's internal state and
|
|
77964
|
-
// the input's displayed text stay in lock-step.
|
|
77965
|
-
let existingValue = this.inputElement.value;
|
|
77966
78298
|
|
|
77967
|
-
//
|
|
77968
|
-
//
|
|
77969
|
-
//
|
|
77970
|
-
//
|
|
78299
|
+
// Stash and clear any existing value before IMask init.
|
|
78300
|
+
// IMask's constructor processes the current input value which requires
|
|
78301
|
+
// selection state — clearing first avoids that scenario entirely.
|
|
78302
|
+
// When the format changes (e.g. locale switch) and we have a valid ISO
|
|
78303
|
+
// model value, compute the display string for the NEW format instead of
|
|
78304
|
+
// re-using the old display string, which may be invalid in the new mask.
|
|
78305
|
+
let existingValue = this.inputElement.value;
|
|
77971
78306
|
if (
|
|
77972
78307
|
this.util.isFullDateFormat(this.type, this.format) &&
|
|
77973
78308
|
this.value &&
|
|
77974
|
-
this.
|
|
78309
|
+
dateFormatter.isValidDate(this.value) &&
|
|
78310
|
+
this.valueObject instanceof Date &&
|
|
78311
|
+
!Number.isNaN(this.valueObject.getTime()) &&
|
|
77975
78312
|
typeof maskOptions.format === 'function'
|
|
77976
78313
|
) {
|
|
77977
78314
|
existingValue = maskOptions.format(this.valueObject);
|
|
77978
78315
|
}
|
|
77979
78316
|
|
|
77980
|
-
// Clear before IMask attaches so the constructor seeds an empty
|
|
77981
|
-
// internal value. Otherwise IMask reads the stale unmasked string
|
|
77982
|
-
// and emits a spurious 'accept' before the restore below runs.
|
|
77983
78317
|
this.skipNextProgrammaticInputEvent = true;
|
|
77984
78318
|
this.inputElement.value = '';
|
|
77985
78319
|
|
|
77986
78320
|
this.maskInstance = IMask(this.inputElement, maskOptions);
|
|
77987
78321
|
|
|
77988
|
-
// Mask fires 'accept' on every value change, including the restore
|
|
77989
|
-
// step below. Skip events fired during configureAutoFormatting so
|
|
77990
|
-
// we don't overwrite a value the parent just pushed.
|
|
77991
78322
|
this.maskInstance.on('accept', () => {
|
|
78323
|
+
// Suppress propagation during configureAutoFormatting's own value-restoration
|
|
78324
|
+
// (line below) — the mask emits 'accept' on every value-set, including ours,
|
|
78325
|
+
// and we don't want to overwrite a value the parent just pushed.
|
|
77992
78326
|
if (this._configuringMask) return;
|
|
77993
78327
|
this.value = this.util.toModelValue(this.maskInstance.value, this.format);
|
|
77994
78328
|
if (this.type === "date") {
|
|
@@ -77996,8 +78330,6 @@ class BaseInput extends AuroElement$1$1 {
|
|
|
77996
78330
|
}
|
|
77997
78331
|
});
|
|
77998
78332
|
|
|
77999
|
-
// Mask fires 'complete' on the restore step below for any value that
|
|
78000
|
-
// happens to be a complete match. Same setup-suppression as 'accept'.
|
|
78001
78333
|
this.maskInstance.on('complete', () => {
|
|
78002
78334
|
if (this._configuringMask) return;
|
|
78003
78335
|
this.value = this.util.toModelValue(this.maskInstance.value, this.format);
|
|
@@ -78006,9 +78338,7 @@ class BaseInput extends AuroElement$1$1 {
|
|
|
78006
78338
|
}
|
|
78007
78339
|
});
|
|
78008
78340
|
|
|
78009
|
-
//
|
|
78010
|
-
// the mask reformats it under the new rules and keeps its internal
|
|
78011
|
-
// _value aligned with the input's displayed text.
|
|
78341
|
+
// Restore the stashed value through IMask so it's properly masked
|
|
78012
78342
|
if (existingValue) {
|
|
78013
78343
|
this.maskInstance.value = existingValue;
|
|
78014
78344
|
}
|
|
@@ -78176,6 +78506,7 @@ class BaseInput extends AuroElement$1$1 {
|
|
|
78176
78506
|
*/
|
|
78177
78507
|
reset() {
|
|
78178
78508
|
this.value = undefined;
|
|
78509
|
+
this.setDateObjectProperty('valueObject', undefined);
|
|
78179
78510
|
this.validation.reset(this);
|
|
78180
78511
|
}
|
|
78181
78512
|
|
|
@@ -78184,6 +78515,7 @@ class BaseInput extends AuroElement$1$1 {
|
|
|
78184
78515
|
*/
|
|
78185
78516
|
clear() {
|
|
78186
78517
|
this.value = undefined;
|
|
78518
|
+
this.setDateObjectProperty('valueObject', undefined);
|
|
78187
78519
|
}
|
|
78188
78520
|
|
|
78189
78521
|
/**
|
|
@@ -78712,7 +79044,7 @@ let AuroHelpText$1$1 = class AuroHelpText extends i$2 {
|
|
|
78712
79044
|
}
|
|
78713
79045
|
};
|
|
78714
79046
|
|
|
78715
|
-
var formkitVersion$1$1 = '
|
|
79047
|
+
var formkitVersion$1$1 = '202606192121';
|
|
78716
79048
|
|
|
78717
79049
|
// Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
|
|
78718
79050
|
// See LICENSE in the project root for license information.
|
|
@@ -79833,7 +80165,7 @@ let AuroBibtemplate$1 = class AuroBibtemplate extends i$2 {
|
|
|
79833
80165
|
}
|
|
79834
80166
|
};
|
|
79835
80167
|
|
|
79836
|
-
var formkitVersion$3 = '
|
|
80168
|
+
var formkitVersion$3 = '202606192121';
|
|
79837
80169
|
|
|
79838
80170
|
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}`;
|
|
79839
80171
|
|
|
@@ -80820,7 +81152,7 @@ class AuroCombobox extends AuroElement$3 {
|
|
|
80820
81152
|
if (this.menu) {
|
|
80821
81153
|
this.menu.matchWord = normalizeFilterValue(this.input.value);
|
|
80822
81154
|
}
|
|
80823
|
-
const label = getOptionLabel(this.menu.optionSelected);
|
|
81155
|
+
const label = getOptionLabel(this.menu.optionSelected) || this.menu.currentLabel;
|
|
80824
81156
|
this.updateTriggerTextDisplay(label || this.value);
|
|
80825
81157
|
}
|
|
80826
81158
|
|
|
@@ -80834,9 +81166,40 @@ class AuroCombobox extends AuroElement$3 {
|
|
|
80834
81166
|
// in suggestion mode, do not override input value if no selection has been made and the input currently has focus
|
|
80835
81167
|
const isInputFocusedWithNoSelection = !this.menu.value && (this.input.matches(':focus-within') || (this.inputInBib && this.inputInBib.matches(':focus-within')));
|
|
80836
81168
|
|
|
80837
|
-
|
|
80838
|
-
|
|
80839
|
-
|
|
81169
|
+
if (!this.persistInput && !(this.behavior === 'suggestion' && isInputFocusedWithNoSelection)) {
|
|
81170
|
+
const nextValue = label || this.value;
|
|
81171
|
+
// Only set the flag when there's an actual write to suppress —
|
|
81172
|
+
// syncValuesAndStates re-enters here during typing when both inputs
|
|
81173
|
+
// already match, and a no-op flag flip would make the bib branch's
|
|
81174
|
+
// bail eat legitimate user-input events.
|
|
81175
|
+
const triggerNeedsSync = this.input.value !== nextValue;
|
|
81176
|
+
const bibNeedsSync = Boolean(this.inputInBib && this.inputInBib !== this.input && this.inputInBib.value !== nextValue);
|
|
81177
|
+
if (triggerNeedsSync || bibNeedsSync) {
|
|
81178
|
+
this._syncingDisplayValue = true;
|
|
81179
|
+
if (triggerNeedsSync) {
|
|
81180
|
+
this.input.value = nextValue;
|
|
81181
|
+
}
|
|
81182
|
+
if (bibNeedsSync) {
|
|
81183
|
+
this.inputInBib.value = nextValue;
|
|
81184
|
+
}
|
|
81185
|
+
const pending = [];
|
|
81186
|
+
if (triggerNeedsSync) {
|
|
81187
|
+
pending.push(this.input.updateComplete);
|
|
81188
|
+
}
|
|
81189
|
+
if (bibNeedsSync) {
|
|
81190
|
+
pending.push(this.inputInBib.updateComplete);
|
|
81191
|
+
}
|
|
81192
|
+
Promise.all(pending).then(() => {
|
|
81193
|
+
// imask reasserts otherwise, and handleBlur reverts to its stale value.
|
|
81194
|
+
if (triggerNeedsSync && this.input.maskInstance && typeof this.input.maskInstance.updateValue === 'function') {
|
|
81195
|
+
this.input.maskInstance.updateValue();
|
|
81196
|
+
}
|
|
81197
|
+
if (bibNeedsSync && this.inputInBib && this.inputInBib.maskInstance && typeof this.inputInBib.maskInstance.updateValue === 'function') {
|
|
81198
|
+
this.inputInBib.maskInstance.updateValue();
|
|
81199
|
+
}
|
|
81200
|
+
this._syncingDisplayValue = false;
|
|
81201
|
+
});
|
|
81202
|
+
}
|
|
80840
81203
|
}
|
|
80841
81204
|
|
|
80842
81205
|
// update the displayValue in the trigger if displayValue slot content is present
|
|
@@ -80864,52 +81227,6 @@ class AuroCombobox extends AuroElement$3 {
|
|
|
80864
81227
|
this.requestUpdate();
|
|
80865
81228
|
}
|
|
80866
81229
|
|
|
80867
|
-
/**
|
|
80868
|
-
* Writes nextValue to the trigger input and the bib input when their current
|
|
80869
|
-
* value differs, then re-asserts imask after Lit's update flushes.
|
|
80870
|
-
* @param {string} nextValue - The value to write to both inputs.
|
|
80871
|
-
* @returns {Promise<void> | null} Promise that resolves after the inputs flush,
|
|
80872
|
-
* or null when no sync was needed (so callers can skip post-flush work).
|
|
80873
|
-
* @private
|
|
80874
|
-
*/
|
|
80875
|
-
syncInputValuesAcrossTriggerAndBib(nextValue) {
|
|
80876
|
-
// Only set the flag when there's an actual write to suppress —
|
|
80877
|
-
// syncValuesAndStates re-enters here during typing when both inputs
|
|
80878
|
-
// already match, and a no-op flag flip would make the bib branch's
|
|
80879
|
-
// bail eat legitimate user-input events.
|
|
80880
|
-
const triggerNeedsSync = this.input.value !== nextValue;
|
|
80881
|
-
const bibNeedsSync = Boolean(this.inputInBib && this.inputInBib !== this.input && this.inputInBib.value !== nextValue);
|
|
80882
|
-
if (!triggerNeedsSync && !bibNeedsSync) {
|
|
80883
|
-
return null;
|
|
80884
|
-
}
|
|
80885
|
-
|
|
80886
|
-
this._syncingDisplayValue = true;
|
|
80887
|
-
if (triggerNeedsSync) {
|
|
80888
|
-
this.input.value = nextValue;
|
|
80889
|
-
}
|
|
80890
|
-
if (bibNeedsSync) {
|
|
80891
|
-
this.inputInBib.value = nextValue;
|
|
80892
|
-
}
|
|
80893
|
-
|
|
80894
|
-
const pending = [];
|
|
80895
|
-
if (triggerNeedsSync) {
|
|
80896
|
-
pending.push(this.input.updateComplete);
|
|
80897
|
-
}
|
|
80898
|
-
if (bibNeedsSync) {
|
|
80899
|
-
pending.push(this.inputInBib.updateComplete);
|
|
80900
|
-
}
|
|
80901
|
-
return Promise.all(pending).then(() => {
|
|
80902
|
-
// imask reasserts otherwise, and handleBlur reverts to its stale value.
|
|
80903
|
-
if (triggerNeedsSync && this.input.maskInstance && typeof this.input.maskInstance.updateValue === 'function') {
|
|
80904
|
-
this.input.maskInstance.updateValue();
|
|
80905
|
-
}
|
|
80906
|
-
if (bibNeedsSync && this.inputInBib && this.inputInBib.maskInstance && typeof this.inputInBib.maskInstance.updateValue === 'function') {
|
|
80907
|
-
this.inputInBib.maskInstance.updateValue();
|
|
80908
|
-
}
|
|
80909
|
-
this._syncingDisplayValue = false;
|
|
80910
|
-
});
|
|
80911
|
-
}
|
|
80912
|
-
|
|
80913
81230
|
/**
|
|
80914
81231
|
* Processes hidden state of all menu options and determines if there are any available options not hidden.
|
|
80915
81232
|
* @private
|
|
@@ -80937,9 +81254,9 @@ class AuroCombobox extends AuroElement$3 {
|
|
|
80937
81254
|
this.syncValuesAndStates();
|
|
80938
81255
|
}
|
|
80939
81256
|
|
|
80940
|
-
// Re-activate when optionActive is
|
|
80941
|
-
//
|
|
80942
|
-
//
|
|
81257
|
+
// Re-activate when optionActive is no longer visible, or when _index has
|
|
81258
|
+
// been reset (e.g. by clearSelection in an async update) so that
|
|
81259
|
+
// makeSelection() can find the correct option.
|
|
80943
81260
|
if (!this.availableOptions.includes(this.menu.optionActive) || this.menu._index < 0) {
|
|
80944
81261
|
this.activateFirstEnabledAvailableOption();
|
|
80945
81262
|
}
|
|
@@ -81073,25 +81390,28 @@ class AuroCombobox extends AuroElement$3 {
|
|
|
81073
81390
|
|
|
81074
81391
|
guardTouchPassthrough$1(this.menu);
|
|
81075
81392
|
|
|
81076
|
-
// showModal()
|
|
81077
|
-
//
|
|
81078
|
-
//
|
|
81079
|
-
// validation guard.
|
|
81393
|
+
// The dialog's showModal() steals focus from the trigger.
|
|
81394
|
+
// A single rAF is enough for the dialog DOM to be painted and
|
|
81395
|
+
// focusable, then doubleRaf finalizes the transition.
|
|
81080
81396
|
requestAnimationFrame(() => {
|
|
81081
81397
|
this.setInputFocus();
|
|
81082
81398
|
});
|
|
81083
|
-
|
|
81084
|
-
|
|
81085
|
-
|
|
81086
|
-
// The shared doubleRaf below parks the caret back at end-of-text
|
|
81087
|
-
// after the dropdown layout settles.
|
|
81088
|
-
|
|
81089
|
-
doubleRaf$1(() => {
|
|
81090
|
-
this.setInputFocus();
|
|
81091
|
-
if (this._inFullscreenTransition) {
|
|
81399
|
+
|
|
81400
|
+
doubleRaf$1(() => {
|
|
81401
|
+
this.setInputFocus();
|
|
81092
81402
|
this._inFullscreenTransition = false;
|
|
81093
|
-
}
|
|
81094
|
-
}
|
|
81403
|
+
});
|
|
81404
|
+
} else {
|
|
81405
|
+
// Desktop popover-open: restore the trigger caret to end-of-text.
|
|
81406
|
+
// Clicking the trigger lands on auro-input's floating <label for="…">
|
|
81407
|
+
// overlay; Chrome resets the native input's selection to [0, 0] on
|
|
81408
|
+
// label-focus before any JS runs. setInputFocus()'s non-fullscreen
|
|
81409
|
+
// branch parks the caret at end. doubleRaf lets the dropdown layout
|
|
81410
|
+
// settle first, matching the fullscreen branch timing.
|
|
81411
|
+
doubleRaf$1(() => {
|
|
81412
|
+
this.setInputFocus();
|
|
81413
|
+
});
|
|
81414
|
+
}
|
|
81095
81415
|
}
|
|
81096
81416
|
});
|
|
81097
81417
|
|
|
@@ -81198,9 +81518,9 @@ class AuroCombobox extends AuroElement$3 {
|
|
|
81198
81518
|
} else {
|
|
81199
81519
|
// Safety net for the strategy-change setTimeout: a viewport-crossing
|
|
81200
81520
|
// fullscreen→floating switch can close the dialog and leave focus on
|
|
81201
|
-
// body. Every other
|
|
81202
|
-
//
|
|
81203
|
-
//
|
|
81521
|
+
// body. Every other Branch 2 callsite already has focus on the input
|
|
81522
|
+
// via the focusin → this.focus() redirect (L1448-1452), so this is a
|
|
81523
|
+
// no-op in the common case.
|
|
81204
81524
|
if (!this.input.componentHasFocus) {
|
|
81205
81525
|
this.input.focus();
|
|
81206
81526
|
}
|
|
@@ -81319,7 +81639,7 @@ class AuroCombobox extends AuroElement$3 {
|
|
|
81319
81639
|
if (this.menu.optionSelected) {
|
|
81320
81640
|
const selected = this.menu.optionSelected;
|
|
81321
81641
|
|
|
81322
|
-
if (this.optionSelected !== selected) {
|
|
81642
|
+
if (!this.optionSelected || this.optionSelected !== selected) {
|
|
81323
81643
|
this.optionSelected = selected;
|
|
81324
81644
|
}
|
|
81325
81645
|
|
|
@@ -81332,7 +81652,7 @@ class AuroCombobox extends AuroElement$3 {
|
|
|
81332
81652
|
}
|
|
81333
81653
|
|
|
81334
81654
|
// Update display
|
|
81335
|
-
this.updateTriggerTextDisplay(getOptionLabel(this.optionSelected));
|
|
81655
|
+
this.updateTriggerTextDisplay(getOptionLabel(this.optionSelected) || this.menu.value);
|
|
81336
81656
|
|
|
81337
81657
|
// Update match word for filtering
|
|
81338
81658
|
const trimmedInput = normalizeFilterValue(this.input.value);
|
|
@@ -81350,15 +81670,11 @@ class AuroCombobox extends AuroElement$3 {
|
|
|
81350
81670
|
|
|
81351
81671
|
// Announce the selection after the dropdown closes so it isn't
|
|
81352
81672
|
// overridden by VoiceOver's "collapsed" announcement from aria-expanded.
|
|
81353
|
-
// Skip when there's no selected value (e.g. menu.clearSelection() from
|
|
81354
|
-
// the unmatched-value path), otherwise VoiceOver reads "undefined".
|
|
81355
81673
|
const selectedValue = this.menu.value;
|
|
81356
|
-
|
|
81357
|
-
|
|
81358
|
-
|
|
81359
|
-
|
|
81360
|
-
}, announcementDelay);
|
|
81361
|
-
}
|
|
81674
|
+
const announcementDelay = 300;
|
|
81675
|
+
setTimeout(() => {
|
|
81676
|
+
announceToScreenReader$1(this._getAnnouncementRoot(), `${selectedValue}, selected`);
|
|
81677
|
+
}, announcementDelay);
|
|
81362
81678
|
}
|
|
81363
81679
|
|
|
81364
81680
|
// Programmatic value syncs leave availableOptions stale because
|
|
@@ -81718,7 +82034,15 @@ class AuroCombobox extends AuroElement$3 {
|
|
|
81718
82034
|
this.menu.value = undefined;
|
|
81719
82035
|
this.validation.reset(this);
|
|
81720
82036
|
this.touched = false;
|
|
82037
|
+
// Force validity back to the cleared state. validation.reset() calls
|
|
82038
|
+
// validate() at the end, and (post-credit-card-fix) the trigger input's
|
|
82039
|
+
// residual validity may still be copied into the combobox by the
|
|
82040
|
+
// auroInputElements loop. Explicitly clear here so reset() actually
|
|
82041
|
+
// leaves the component in a "no validity" state.
|
|
81721
82042
|
this.validity = undefined;
|
|
82043
|
+
this.errorMessage = '';
|
|
82044
|
+
this.input.validity = undefined;
|
|
82045
|
+
this.input.errorMessage = '';
|
|
81722
82046
|
}
|
|
81723
82047
|
|
|
81724
82048
|
/**
|
|
@@ -81771,27 +82095,52 @@ class AuroCombobox extends AuroElement$3 {
|
|
|
81771
82095
|
this.input.value = this.value;
|
|
81772
82096
|
}
|
|
81773
82097
|
|
|
81774
|
-
// Sync menu.value only when an option actually matches
|
|
81775
|
-
// mode needs setMenuValue to dispatch auroMenu-selectValueFailure (the
|
|
81776
|
-
// listener at line 1206 clears combobox.value, mirroring select's
|
|
81777
|
-
// pattern). Otherwise sync the input display for freeform values.
|
|
82098
|
+
// Sync menu.value only when an option actually matches; otherwise clear it.
|
|
81778
82099
|
if (this.menu.options && this.menu.options.length > 0) {
|
|
81779
|
-
if (this.menu.options.some((opt) => opt.value === this.value)
|
|
82100
|
+
if (this.menu.options.some((opt) => opt.value === this.value)) {
|
|
82101
|
+
this.setMenuValue(this.value);
|
|
82102
|
+
} else if (this.behavior === 'filter') {
|
|
82103
|
+
// In filter mode, freeform values aren't allowed. Push the unmatched
|
|
82104
|
+
// value through setMenuValue so menu dispatches auroMenu-selectValueFailure
|
|
82105
|
+
// and the listener at line 1206 clears combobox.value (mirrors select's
|
|
82106
|
+
// pattern). Bypassing setMenuValue here would skip the failure cascade.
|
|
81780
82107
|
this.setMenuValue(this.value);
|
|
81781
82108
|
} else {
|
|
81782
|
-
|
|
81783
|
-
|
|
81784
|
-
// as menu.optionSelected; a later auroMenu-selectedOption event
|
|
81785
|
-
// would then write its stale .value back into combobox.value.
|
|
81786
|
-
if (this.menu.value || this.menu.optionSelected) {
|
|
81787
|
-
this.menu.clearSelection();
|
|
82109
|
+
if (this.menu.value) {
|
|
82110
|
+
this.menu.value = undefined;
|
|
81788
82111
|
}
|
|
81789
|
-
//
|
|
81790
|
-
//
|
|
81791
|
-
//
|
|
81792
|
-
|
|
81793
|
-
|
|
81794
|
-
|
|
82112
|
+
// Sync the display for programmatic freeform value changes (e.g. the
|
|
82113
|
+
// swap-values pattern). Guard with _syncingDisplayValue so that the
|
|
82114
|
+
// re-entrant input event from base-input.notifyValueChanged() is
|
|
82115
|
+
// ignored by handleInputValueChange. Skip the sync when input already
|
|
82116
|
+
// matches to avoid spurious events during the normal typing path.
|
|
82117
|
+
const nextValue = this.value || '';
|
|
82118
|
+
const triggerNeedsSync = this.input.value !== nextValue;
|
|
82119
|
+
const bibNeedsSync = Boolean(this.inputInBib && this.inputInBib !== this.input && this.inputInBib.value !== nextValue);
|
|
82120
|
+
if (triggerNeedsSync || bibNeedsSync) {
|
|
82121
|
+
this._syncingDisplayValue = true;
|
|
82122
|
+
if (triggerNeedsSync) {
|
|
82123
|
+
this.input.value = nextValue;
|
|
82124
|
+
}
|
|
82125
|
+
if (bibNeedsSync) {
|
|
82126
|
+
this.inputInBib.value = nextValue;
|
|
82127
|
+
}
|
|
82128
|
+
const pending = [];
|
|
82129
|
+
if (triggerNeedsSync) {
|
|
82130
|
+
pending.push(this.input.updateComplete);
|
|
82131
|
+
}
|
|
82132
|
+
if (bibNeedsSync) {
|
|
82133
|
+
pending.push(this.inputInBib.updateComplete);
|
|
82134
|
+
}
|
|
82135
|
+
Promise.all(pending).then(() => {
|
|
82136
|
+
if (triggerNeedsSync && this.input.maskInstance && typeof this.input.maskInstance.updateValue === 'function') {
|
|
82137
|
+
this.input.maskInstance.updateValue();
|
|
82138
|
+
}
|
|
82139
|
+
if (bibNeedsSync && this.inputInBib && this.inputInBib.maskInstance && typeof this.inputInBib.maskInstance.updateValue === 'function') {
|
|
82140
|
+
this.inputInBib.maskInstance.updateValue();
|
|
82141
|
+
}
|
|
82142
|
+
this._syncingDisplayValue = false;
|
|
82143
|
+
// handleInputValueChange bailed on the flag — refresh the filter.
|
|
81795
82144
|
this._programmaticFilterRefresh = true;
|
|
81796
82145
|
this.handleMenuOptions();
|
|
81797
82146
|
setTimeout(() => {
|
|
@@ -82580,8 +82929,8 @@ class AuroMenu extends AuroElement$2 {
|
|
|
82580
82929
|
// Malformed JSON (e.g. a literal string that happens to start with "[") falls back
|
|
82581
82930
|
// to a single-item array rather than throwing during render.
|
|
82582
82931
|
try {
|
|
82583
|
-
|
|
82584
|
-
return
|
|
82932
|
+
// any valid JSON starting with `[` ALWAYS parses to an array
|
|
82933
|
+
return JSON.parse(this.value);
|
|
82585
82934
|
} catch {
|
|
82586
82935
|
return [this.value];
|
|
82587
82936
|
}
|
|
@@ -88624,7 +88973,7 @@ let AuroHelpText$1 = class AuroHelpText extends i$2 {
|
|
|
88624
88973
|
}
|
|
88625
88974
|
};
|
|
88626
88975
|
|
|
88627
|
-
var formkitVersion$1 = '
|
|
88976
|
+
var formkitVersion$1 = '202606192121';
|
|
88628
88977
|
|
|
88629
88978
|
class AuroElement extends i$2 {
|
|
88630
88979
|
static get properties() {
|
|
@@ -90637,7 +90986,7 @@ class AuroHelpText extends i$2 {
|
|
|
90637
90986
|
}
|
|
90638
90987
|
}
|
|
90639
90988
|
|
|
90640
|
-
var formkitVersion = '
|
|
90989
|
+
var formkitVersion = '202606192121';
|
|
90641
90990
|
|
|
90642
90991
|
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}`;
|
|
90643
90992
|
|