@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
|
@@ -11175,7 +11175,6 @@ let AuroInputUtilities$3 = class AuroInputUtilities {
|
|
|
11175
11175
|
const maskOptions = this.getMaskOptions('date', normalizedFormat);
|
|
11176
11176
|
|
|
11177
11177
|
if (!(valueObject instanceof Date) || Number.isNaN(valueObject.getTime()) || !maskOptions || typeof maskOptions.format !== 'function') {
|
|
11178
|
-
console.debug('Invalid date object or mask options for formatting', { valueObject, maskOptions }); // eslint-disable-line no-console
|
|
11179
11178
|
return undefined;
|
|
11180
11179
|
}
|
|
11181
11180
|
|
|
@@ -11327,8 +11326,10 @@ let BaseInput$2 = class BaseInput extends AuroElement$6 {
|
|
|
11327
11326
|
this.layout = 'classic';
|
|
11328
11327
|
this.locale = 'en-US';
|
|
11329
11328
|
this.max = undefined;
|
|
11329
|
+
this._maxObject = undefined;
|
|
11330
11330
|
this.maxLength = undefined;
|
|
11331
11331
|
this.min = undefined;
|
|
11332
|
+
this._minObject = undefined;
|
|
11332
11333
|
this.minLength = undefined;
|
|
11333
11334
|
this.required = false;
|
|
11334
11335
|
this.onDark = false;
|
|
@@ -11336,6 +11337,7 @@ let BaseInput$2 = class BaseInput extends AuroElement$6 {
|
|
|
11336
11337
|
this.size = 'lg';
|
|
11337
11338
|
this.shape = 'classic';
|
|
11338
11339
|
this.value = undefined;
|
|
11340
|
+
this._valueObject = undefined;
|
|
11339
11341
|
|
|
11340
11342
|
this._initializePrivateDefaults();
|
|
11341
11343
|
}
|
|
@@ -11875,7 +11877,7 @@ let BaseInput$2 = class BaseInput extends AuroElement$6 {
|
|
|
11875
11877
|
* @returns {Date|undefined}
|
|
11876
11878
|
*/
|
|
11877
11879
|
get valueObject() {
|
|
11878
|
-
return this.
|
|
11880
|
+
return this._valueObject || this._computeDateObjectFallback(this.value);
|
|
11879
11881
|
}
|
|
11880
11882
|
|
|
11881
11883
|
/**
|
|
@@ -11883,7 +11885,7 @@ let BaseInput$2 = class BaseInput extends AuroElement$6 {
|
|
|
11883
11885
|
* @returns {Date|undefined}
|
|
11884
11886
|
*/
|
|
11885
11887
|
get minObject() {
|
|
11886
|
-
return this.
|
|
11888
|
+
return this._minObject || this._computeDateObjectFallback(this.min);
|
|
11887
11889
|
}
|
|
11888
11890
|
|
|
11889
11891
|
/**
|
|
@@ -11891,7 +11893,50 @@ let BaseInput$2 = class BaseInput extends AuroElement$6 {
|
|
|
11891
11893
|
* @returns {Date|undefined}
|
|
11892
11894
|
*/
|
|
11893
11895
|
get maxObject() {
|
|
11894
|
-
return this.
|
|
11896
|
+
return this._maxObject || this._computeDateObjectFallback(this.max);
|
|
11897
|
+
}
|
|
11898
|
+
|
|
11899
|
+
/**
|
|
11900
|
+
* Parses a date string into a Date object when the corresponding `_*Object`
|
|
11901
|
+
* field hasn't been synced yet by `updated()`. Returns undefined when the
|
|
11902
|
+
* input type/format isn't a full date or the string is not a valid date.
|
|
11903
|
+
*
|
|
11904
|
+
* Why this exists: a parent (datepicker) can call `inputN.validate()` from
|
|
11905
|
+
* inside its own `updated()` before this input's `updated()` has run
|
|
11906
|
+
* `syncDateValues()` — so `_valueObject`/`_maxObject` are still `undefined`
|
|
11907
|
+
* and range checks would otherwise silently no-op (flipping the result to
|
|
11908
|
+
* `valid` or `patternMismatch`).
|
|
11909
|
+
* @private
|
|
11910
|
+
* @param {string|undefined} dateStr - ISO date string from `value`/`min`/`max`.
|
|
11911
|
+
* @returns {Date|undefined}
|
|
11912
|
+
*/
|
|
11913
|
+
_computeDateObjectFallback(dateStr) {
|
|
11914
|
+
if (!dateStr || !this.util || !this.util.isFullDateFormat(this.type, this.format)) {
|
|
11915
|
+
return undefined;
|
|
11916
|
+
}
|
|
11917
|
+
if (!dateFormatter$3.isValidDate(dateStr)) {
|
|
11918
|
+
return undefined;
|
|
11919
|
+
}
|
|
11920
|
+
return dateFormatter$3.stringToDateInstance(dateStr);
|
|
11921
|
+
}
|
|
11922
|
+
|
|
11923
|
+
/**
|
|
11924
|
+
* Internal setter for readonly date object properties.
|
|
11925
|
+
* @private
|
|
11926
|
+
* @param {'valueObject'|'minObject'|'maxObject'} propertyName - Public object property name.
|
|
11927
|
+
* @param {Date|undefined} propertyValue - Value to assign.
|
|
11928
|
+
* @returns {void}
|
|
11929
|
+
*/
|
|
11930
|
+
setDateObjectProperty(propertyName, propertyValue) {
|
|
11931
|
+
const internalPropertyName = `_${propertyName}`;
|
|
11932
|
+
const previousValue = this[internalPropertyName];
|
|
11933
|
+
|
|
11934
|
+
if (previousValue === propertyValue) {
|
|
11935
|
+
return;
|
|
11936
|
+
}
|
|
11937
|
+
|
|
11938
|
+
this[internalPropertyName] = propertyValue;
|
|
11939
|
+
this.requestUpdate(propertyName, previousValue);
|
|
11895
11940
|
}
|
|
11896
11941
|
|
|
11897
11942
|
connectedCallback() {
|
|
@@ -11920,6 +11965,7 @@ let BaseInput$2 = class BaseInput extends AuroElement$6 {
|
|
|
11920
11965
|
format: this.format
|
|
11921
11966
|
});
|
|
11922
11967
|
this.configureDataForType();
|
|
11968
|
+
this.syncDateValues();
|
|
11923
11969
|
}
|
|
11924
11970
|
|
|
11925
11971
|
disconnectedCallback() {
|
|
@@ -11939,6 +11985,10 @@ let BaseInput$2 = class BaseInput extends AuroElement$6 {
|
|
|
11939
11985
|
this.wrapperElement.addEventListener('click', this.handleClick);
|
|
11940
11986
|
}
|
|
11941
11987
|
|
|
11988
|
+
// add attribute for query selectors when auro-input is registered under a custom name
|
|
11989
|
+
if (this.tagName.toLowerCase() !== 'auro-input' && !this.hasAttribute('auro-input')) {
|
|
11990
|
+
this.setAttribute('auro-input', '');
|
|
11991
|
+
}
|
|
11942
11992
|
this.inputId = this.id ? `${this.id}-input` : window.crypto.randomUUID();
|
|
11943
11993
|
|
|
11944
11994
|
// use validity message override if declared when initializing the component
|
|
@@ -11949,6 +11999,7 @@ let BaseInput$2 = class BaseInput extends AuroElement$6 {
|
|
|
11949
11999
|
this.setCustomHelpTextMessage();
|
|
11950
12000
|
this.configureAutoFormatting();
|
|
11951
12001
|
this.configureDataForType();
|
|
12002
|
+
this.syncDateValues();
|
|
11952
12003
|
}
|
|
11953
12004
|
|
|
11954
12005
|
/**
|
|
@@ -12085,6 +12136,8 @@ let BaseInput$2 = class BaseInput extends AuroElement$6 {
|
|
|
12085
12136
|
this.configureDataForType();
|
|
12086
12137
|
}
|
|
12087
12138
|
|
|
12139
|
+
this.syncDateValues(changedProperties);
|
|
12140
|
+
|
|
12088
12141
|
if (changedProperties.has('value')) {
|
|
12089
12142
|
if (this.value && this.value.length > 0) {
|
|
12090
12143
|
this.hasValue = true;
|
|
@@ -12106,14 +12159,14 @@ let BaseInput$2 = class BaseInput extends AuroElement$6 {
|
|
|
12106
12159
|
|
|
12107
12160
|
if (formattedValue !== this.inputElement.value) {
|
|
12108
12161
|
this.skipNextProgrammaticInputEvent = true;
|
|
12109
|
-
if (this.maskInstance && this.type
|
|
12162
|
+
if (this.maskInstance && this.type === 'credit-card') {
|
|
12110
12163
|
// Route through the mask so its _value and el.value stay in lock-step
|
|
12111
12164
|
// (set value calls updateControl which writes el.value = displayValue).
|
|
12112
12165
|
// Writing el.value directly leaves the mask thinking displayValue is
|
|
12113
|
-
// stale; _saveSelection on the next focus/click then warns.
|
|
12114
|
-
//
|
|
12115
|
-
//
|
|
12116
|
-
// flip validity from patternMismatch to tooShort.
|
|
12166
|
+
// stale; _saveSelection on the next focus/click then warns. Scoped to
|
|
12167
|
+
// credit-card so date's own formattedValue (raw ISO when calendar-invalid)
|
|
12168
|
+
// isn't re-masked through the mm/dd/yyyy mask, which would truncate it
|
|
12169
|
+
// and flip validity from patternMismatch to tooShort.
|
|
12117
12170
|
this.maskInstance.value = formattedValue || '';
|
|
12118
12171
|
} else if (formattedValue) {
|
|
12119
12172
|
this.inputElement.value = formattedValue;
|
|
@@ -12155,60 +12208,120 @@ let BaseInput$2 = class BaseInput extends AuroElement$6 {
|
|
|
12155
12208
|
}));
|
|
12156
12209
|
}
|
|
12157
12210
|
|
|
12211
|
+
|
|
12212
|
+
/**
|
|
12213
|
+
* Synchronizes the ISO string values and Date object representations for date-related properties.
|
|
12214
|
+
* This keeps the model and display values aligned when either side changes.
|
|
12215
|
+
*
|
|
12216
|
+
* When a full date format is in use, this method updates `value`, `min`, and `max` from their corresponding
|
|
12217
|
+
* Date objects or vice versa, based on which properties have changed. It only runs when the current configuration
|
|
12218
|
+
* represents a full year/month/day date format.
|
|
12219
|
+
*
|
|
12220
|
+
* @param {Map<string, unknown>|undefined} [changedProperties=undefined] - Optional map of changed properties used to limit which values are synchronized.
|
|
12221
|
+
* @returns {void}
|
|
12222
|
+
* @private
|
|
12223
|
+
*/
|
|
12224
|
+
syncDateValues(changedProperties = undefined) {
|
|
12225
|
+
if (!this.util.isFullDateFormat(this.type, this.format)) {
|
|
12226
|
+
return;
|
|
12227
|
+
}
|
|
12228
|
+
|
|
12229
|
+
this.syncSingleDateValue(changedProperties, 'valueObject', 'value');
|
|
12230
|
+
this.syncSingleDateValue(changedProperties, 'minObject', 'min');
|
|
12231
|
+
this.syncSingleDateValue(changedProperties, 'maxObject', 'max');
|
|
12232
|
+
}
|
|
12233
|
+
|
|
12234
|
+
/**
|
|
12235
|
+
* Synchronizes one date object/string property pair.
|
|
12236
|
+
* @private
|
|
12237
|
+
* @param {Map<string, unknown>|undefined} changedProperties - Map of changed properties from Lit.
|
|
12238
|
+
* @param {string} objectProperty - Date object property name.
|
|
12239
|
+
* @param {string} valueProperty - ISO string property name.
|
|
12240
|
+
* @returns {void}
|
|
12241
|
+
*/
|
|
12242
|
+
syncSingleDateValue(changedProperties, objectProperty, valueProperty) {
|
|
12243
|
+
const objectPropertyChanged = !changedProperties || changedProperties.has(objectProperty);
|
|
12244
|
+
|
|
12245
|
+
// objectProperty wins over valueProperty when both changed
|
|
12246
|
+
if (objectPropertyChanged && this[objectProperty]) {
|
|
12247
|
+
this[valueProperty] = dateFormatter$3.toISOFormatString(this[objectProperty]);
|
|
12248
|
+
return;
|
|
12249
|
+
}
|
|
12250
|
+
|
|
12251
|
+
const valuePropertyChanged = !changedProperties || changedProperties.has(valueProperty);
|
|
12252
|
+
if (!valuePropertyChanged) {
|
|
12253
|
+
return;
|
|
12254
|
+
}
|
|
12255
|
+
|
|
12256
|
+
// 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)
|
|
12257
|
+
if (
|
|
12258
|
+
changedProperties &&
|
|
12259
|
+
valueProperty === 'value' &&
|
|
12260
|
+
changedProperties.get('value') === undefined &&
|
|
12261
|
+
this[objectProperty] instanceof Date &&
|
|
12262
|
+
this[valueProperty] === dateFormatter$3.toISOFormatString(this[objectProperty])
|
|
12263
|
+
) {
|
|
12264
|
+
return;
|
|
12265
|
+
}
|
|
12266
|
+
|
|
12267
|
+
if (dateFormatter$3.isValidDate(this[valueProperty])) {
|
|
12268
|
+
this.setDateObjectProperty(objectProperty, dateFormatter$3.stringToDateInstance(this[valueProperty]));
|
|
12269
|
+
} else {
|
|
12270
|
+
this.setDateObjectProperty(objectProperty, undefined);
|
|
12271
|
+
}
|
|
12272
|
+
}
|
|
12273
|
+
|
|
12158
12274
|
/**
|
|
12159
12275
|
* Sets up IMasks and logic based on auto-formatting requirements.
|
|
12160
12276
|
* @private
|
|
12161
12277
|
* @returns {void}
|
|
12162
12278
|
*/
|
|
12163
12279
|
configureAutoFormatting() {
|
|
12164
|
-
//
|
|
12165
|
-
//
|
|
12166
|
-
//
|
|
12167
|
-
//
|
|
12280
|
+
// Re-entrancy guard. The patched-setter's synthetic input event (suppressed
|
|
12281
|
+
// by _configuringMask above) could otherwise trigger handleInput →
|
|
12282
|
+
// processCreditCard → configureAutoFormatting before the outer call's
|
|
12283
|
+
// set value has finished its alignCursor pass.
|
|
12168
12284
|
if (this._configuringMask) return;
|
|
12169
12285
|
this._configuringMask = true;
|
|
12170
12286
|
try {
|
|
12171
|
-
// Destroy any prior mask so IMask can attach fresh under the new format.
|
|
12172
12287
|
if (this.maskInstance) {
|
|
12173
12288
|
this.maskInstance.destroy();
|
|
12174
12289
|
}
|
|
12175
12290
|
|
|
12291
|
+
// Pass new format to util
|
|
12176
12292
|
this.util.updateFormat(this.format);
|
|
12177
12293
|
|
|
12178
12294
|
const maskOptions = this.util.getMaskOptions(this.type, this.format);
|
|
12179
12295
|
|
|
12180
12296
|
if (this.inputElement && maskOptions.mask) {
|
|
12181
|
-
// Capture the current display so it can be re-applied after IMask
|
|
12182
|
-
// attaches. The restore at the bottom goes through maskInstance.value
|
|
12183
|
-
// (not inputElement.value directly) so the mask's internal state and
|
|
12184
|
-
// the input's displayed text stay in lock-step.
|
|
12185
|
-
let existingValue = this.inputElement.value;
|
|
12186
12297
|
|
|
12187
|
-
//
|
|
12188
|
-
//
|
|
12189
|
-
//
|
|
12190
|
-
//
|
|
12298
|
+
// Stash and clear any existing value before IMask init.
|
|
12299
|
+
// IMask's constructor processes the current input value which requires
|
|
12300
|
+
// selection state — clearing first avoids that scenario entirely.
|
|
12301
|
+
// When the format changes (e.g. locale switch) and we have a valid ISO
|
|
12302
|
+
// model value, compute the display string for the NEW format instead of
|
|
12303
|
+
// re-using the old display string, which may be invalid in the new mask.
|
|
12304
|
+
let existingValue = this.inputElement.value;
|
|
12191
12305
|
if (
|
|
12192
12306
|
this.util.isFullDateFormat(this.type, this.format) &&
|
|
12193
12307
|
this.value &&
|
|
12194
|
-
this.
|
|
12308
|
+
dateFormatter$3.isValidDate(this.value) &&
|
|
12309
|
+
this.valueObject instanceof Date &&
|
|
12310
|
+
!Number.isNaN(this.valueObject.getTime()) &&
|
|
12195
12311
|
typeof maskOptions.format === 'function'
|
|
12196
12312
|
) {
|
|
12197
12313
|
existingValue = maskOptions.format(this.valueObject);
|
|
12198
12314
|
}
|
|
12199
12315
|
|
|
12200
|
-
// Clear before IMask attaches so the constructor seeds an empty
|
|
12201
|
-
// internal value. Otherwise IMask reads the stale unmasked string
|
|
12202
|
-
// and emits a spurious 'accept' before the restore below runs.
|
|
12203
12316
|
this.skipNextProgrammaticInputEvent = true;
|
|
12204
12317
|
this.inputElement.value = '';
|
|
12205
12318
|
|
|
12206
12319
|
this.maskInstance = IMask$3(this.inputElement, maskOptions);
|
|
12207
12320
|
|
|
12208
|
-
// Mask fires 'accept' on every value change, including the restore
|
|
12209
|
-
// step below. Skip events fired during configureAutoFormatting so
|
|
12210
|
-
// we don't overwrite a value the parent just pushed.
|
|
12211
12321
|
this.maskInstance.on('accept', () => {
|
|
12322
|
+
// Suppress propagation during configureAutoFormatting's own value-restoration
|
|
12323
|
+
// (line below) — the mask emits 'accept' on every value-set, including ours,
|
|
12324
|
+
// and we don't want to overwrite a value the parent just pushed.
|
|
12212
12325
|
if (this._configuringMask) return;
|
|
12213
12326
|
this.value = this.util.toModelValue(this.maskInstance.value, this.format);
|
|
12214
12327
|
if (this.type === "date") {
|
|
@@ -12216,8 +12329,6 @@ let BaseInput$2 = class BaseInput extends AuroElement$6 {
|
|
|
12216
12329
|
}
|
|
12217
12330
|
});
|
|
12218
12331
|
|
|
12219
|
-
// Mask fires 'complete' on the restore step below for any value that
|
|
12220
|
-
// happens to be a complete match. Same setup-suppression as 'accept'.
|
|
12221
12332
|
this.maskInstance.on('complete', () => {
|
|
12222
12333
|
if (this._configuringMask) return;
|
|
12223
12334
|
this.value = this.util.toModelValue(this.maskInstance.value, this.format);
|
|
@@ -12226,9 +12337,7 @@ let BaseInput$2 = class BaseInput extends AuroElement$6 {
|
|
|
12226
12337
|
}
|
|
12227
12338
|
});
|
|
12228
12339
|
|
|
12229
|
-
//
|
|
12230
|
-
// the mask reformats it under the new rules and keeps its internal
|
|
12231
|
-
// _value aligned with the input's displayed text.
|
|
12340
|
+
// Restore the stashed value through IMask so it's properly masked
|
|
12232
12341
|
if (existingValue) {
|
|
12233
12342
|
this.maskInstance.value = existingValue;
|
|
12234
12343
|
}
|
|
@@ -12396,6 +12505,7 @@ let BaseInput$2 = class BaseInput extends AuroElement$6 {
|
|
|
12396
12505
|
*/
|
|
12397
12506
|
reset() {
|
|
12398
12507
|
this.value = undefined;
|
|
12508
|
+
this.setDateObjectProperty('valueObject', undefined);
|
|
12399
12509
|
this.validation.reset(this);
|
|
12400
12510
|
}
|
|
12401
12511
|
|
|
@@ -12404,6 +12514,7 @@ let BaseInput$2 = class BaseInput extends AuroElement$6 {
|
|
|
12404
12514
|
*/
|
|
12405
12515
|
clear() {
|
|
12406
12516
|
this.value = undefined;
|
|
12517
|
+
this.setDateObjectProperty('valueObject', undefined);
|
|
12407
12518
|
}
|
|
12408
12519
|
|
|
12409
12520
|
/**
|
|
@@ -12932,7 +13043,7 @@ let AuroHelpText$8 = class AuroHelpText extends i$3 {
|
|
|
12932
13043
|
}
|
|
12933
13044
|
};
|
|
12934
13045
|
|
|
12935
|
-
var formkitVersion$8 = '
|
|
13046
|
+
var formkitVersion$8 = '202606192121';
|
|
12936
13047
|
|
|
12937
13048
|
// Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
|
|
12938
13049
|
// See LICENSE in the project root for license information.
|
|
@@ -24171,7 +24282,6 @@ let AuroInputUtilities$1 = class AuroInputUtilities {
|
|
|
24171
24282
|
const maskOptions = this.getMaskOptions('date', normalizedFormat);
|
|
24172
24283
|
|
|
24173
24284
|
if (!(valueObject instanceof Date) || Number.isNaN(valueObject.getTime()) || !maskOptions || typeof maskOptions.format !== 'function') {
|
|
24174
|
-
console.debug('Invalid date object or mask options for formatting', { valueObject, maskOptions }); // eslint-disable-line no-console
|
|
24175
24285
|
return undefined;
|
|
24176
24286
|
}
|
|
24177
24287
|
|
|
@@ -27052,7 +27162,7 @@ let AuroBibtemplate$3 = class AuroBibtemplate extends i$3 {
|
|
|
27052
27162
|
}
|
|
27053
27163
|
};
|
|
27054
27164
|
|
|
27055
|
-
var formkitVersion$2$1 = '
|
|
27165
|
+
var formkitVersion$2$1 = '202606192121';
|
|
27056
27166
|
|
|
27057
27167
|
let l$1$2 = class l{generateElementName(t,e){let o=t;return o+="-",o+=e.replace(/[.]/g,"_"),o}generateTag(o,s,a){const r=this.generateElementName(o,s),i=i$2`${s$3(r)}`;return customElements.get(r)||customElements.define(r,class extends a{}),i}};let d$1$2 = class d{registerComponent(t,e){customElements.get(t)||customElements.define(t,class extends e{});}closestElement(t,e=this,o=(e,s=e&&e.closest(t))=>e&&e!==document&&e!==window?s||o(e.getRootNode().host):null){return o(e)}handleComponentTagRename(t,e){const o=e.toLowerCase();t.tagName.toLowerCase()!==o&&t.setAttribute(o,true);}elementMatch(t,e){const o=e.toLowerCase();return t.tagName.toLowerCase()===o||t.hasAttribute(o)}getSlotText(t,e){const o=t.shadowRoot?.querySelector(`slot[name="${e}"]`),s=(o?.assignedNodes({flatten:true})||[]).map(t=>t.textContent?.trim()).join(" ").trim();return s||null}};let h$1$2 = class h{registerComponent(t,e){customElements.get(t)||customElements.define(t,class extends e{});}closestElement(t,e=this,o=(e,s=e&&e.closest(t))=>e&&e!==document&&e!==window?s||o(e.getRootNode().host):null){return o(e)}handleComponentTagRename(t,e){const o=e.toLowerCase();t.tagName.toLowerCase()!==o&&t.setAttribute(o,true);}elementMatch(t,e){const o=e.toLowerCase();return t.tagName.toLowerCase()===o||t.hasAttribute(o)}};var c$1$3=i$6`:host{color:var(--ds-auro-loader-color)}:host>span{background-color:var(--ds-auro-loader-background-color);border-color:var(--ds-auro-loader-border-color)}:host([onlight]),:host([appearance=brand]){--ds-auro-loader-color: var(--ds-basic-color-brand-primary, #01426a)}:host([ondark]),:host([appearance=inverse]){--ds-auro-loader-color: var(--ds-basic-color-texticon-inverse, #ffffff)}:host([orbit])>span{--ds-auro-loader-background-color: transparent}:host([orbit])>span:nth-child(1){--ds-auro-loader-border-color: currentcolor;opacity:.25}:host([orbit])>span:nth-child(2){--ds-auro-loader-border-color: currentcolor;border-right-color:transparent;border-bottom-color:transparent;border-left-color:transparent}
|
|
27058
27168
|
`,u$4$2=i$6`.body-default{font-size:var(--wcss-body-default-font-size, 1rem);line-height:var(--wcss-body-default-line-height, 1.5rem)}.body-default,.body-lg{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-weight, 450);letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-lg{font-size:var(--wcss-body-lg-font-size, 1.125rem);line-height:var(--wcss-body-lg-line-height, 1.625rem)}.body-sm{font-size:var(--wcss-body-sm-font-size, .875rem);line-height:var(--wcss-body-sm-line-height, 1.25rem)}.body-sm,.body-xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-weight, 450);letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-xs{font-size:var(--wcss-body-xs-font-size, .75rem);line-height:var(--wcss-body-xs-line-height, 1rem)}.body-2xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-size:var(--wcss-body-2xs-font-size, .625rem);font-weight:var(--wcss-body-weight, 450);letter-spacing:var(--wcss-body-letter-spacing, 0);line-height:var(--wcss-body-2xs-line-height, .875rem)}.display-2xl{font-family:var(--wcss-display-2xl-family, "AS Circular"),var(--wcss-display-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-2xl-font-size, clamp(3.5rem, 6vw, 5.375rem));font-weight:var(--wcss-display-2xl-weight, 300);letter-spacing:var(--wcss-display-2xl-letter-spacing, 0);line-height:var(--wcss-display-2xl-line-height, 1.3)}.display-xl{font-family:var(--wcss-display-xl-family, "AS Circular"),var(--wcss-display-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-xl-font-size, clamp(3rem, 5.3333333333vw, 4.5rem));font-weight:var(--wcss-display-xl-weight, 300);letter-spacing:var(--wcss-display-xl-letter-spacing, 0);line-height:var(--wcss-display-xl-line-height, 1.3)}.display-lg{font-family:var(--wcss-display-lg-family, "AS Circular"),var(--wcss-display-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-lg-font-size, clamp(2.75rem, 4.6666666667vw, 4rem));font-weight:var(--wcss-display-lg-weight, 300);letter-spacing:var(--wcss-display-lg-letter-spacing, 0);line-height:var(--wcss-display-lg-line-height, 1.3)}.display-md{font-family:var(--wcss-display-md-family, "AS Circular"),var(--wcss-display-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-md-font-size, clamp(2.5rem, 4vw, 3.5rem));font-weight:var(--wcss-display-md-weight, 300);letter-spacing:var(--wcss-display-md-letter-spacing, 0);line-height:var(--wcss-display-md-line-height, 1.3)}.display-sm{font-family:var(--wcss-display-sm-family, "AS Circular"),var(--wcss-display-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-sm-font-size, clamp(2rem, 3.6666666667vw, 3rem));font-weight:var(--wcss-display-sm-weight, 300);letter-spacing:var(--wcss-display-sm-letter-spacing, 0);line-height:var(--wcss-display-sm-line-height, 1.3)}.display-xs{font-family:var(--wcss-display-xs-family, "AS Circular"),var(--wcss-display-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-xs-font-size, clamp(1.75rem, 3vw, 2.375rem));font-weight:var(--wcss-display-xs-weight, 300);letter-spacing:var(--wcss-display-xs-letter-spacing, 0);line-height:var(--wcss-display-xs-line-height, 1.3)}.heading-xl{font-family:var(--wcss-heading-xl-family, "AS Circular"),var(--wcss-heading-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-xl-font-size, clamp(2rem, 3vw, 2.5rem));font-weight:var(--wcss-heading-xl-weight, 300);letter-spacing:var(--wcss-heading-xl-letter-spacing, 0);line-height:var(--wcss-heading-xl-line-height, 1.3)}.heading-lg{font-family:var(--wcss-heading-lg-family, "AS Circular"),var(--wcss-heading-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-lg-font-size, clamp(1.75rem, 2.6666666667vw, 2.25rem));font-weight:var(--wcss-heading-lg-weight, 300);letter-spacing:var(--wcss-heading-lg-letter-spacing, 0);line-height:var(--wcss-heading-lg-line-height, 1.3)}.heading-md{font-family:var(--wcss-heading-md-family, "AS Circular"),var(--wcss-heading-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-md-font-size, clamp(1.625rem, 2.3333333333vw, 1.75rem));font-weight:var(--wcss-heading-md-weight, 300);letter-spacing:var(--wcss-heading-md-letter-spacing, 0);line-height:var(--wcss-heading-md-line-height, 1.3)}.heading-sm{font-family:var(--wcss-heading-sm-family, "AS Circular"),var(--wcss-heading-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-sm-font-size, clamp(1.375rem, 2vw, 1.5rem));font-weight:var(--wcss-heading-sm-weight, 300);letter-spacing:var(--wcss-heading-sm-letter-spacing, 0);line-height:var(--wcss-heading-sm-line-height, 1.3)}.heading-xs{font-family:var(--wcss-heading-xs-family, "AS Circular"),var(--wcss-heading-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-xs-font-size, clamp(1.25rem, 1.6666666667vw, 1.25rem));font-weight:var(--wcss-heading-xs-weight, 450);letter-spacing:var(--wcss-heading-xs-letter-spacing, 0);line-height:var(--wcss-heading-xs-line-height, 1.3)}.heading-2xs{font-family:var(--wcss-heading-2xs-family, "AS Circular"),var(--wcss-heading-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-2xs-font-size, clamp(1.125rem, 1.5vw, 1.125rem));font-weight:var(--wcss-heading-2xs-weight, 450);letter-spacing:var(--wcss-heading-2xs-letter-spacing, 0);line-height:var(--wcss-heading-2xs-line-height, 1.3)}.accent-2xl{font-family:var(--wcss-accent-2xl-family, "Good OT"),var(--wcss-accent-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-2xl-font-size, clamp(2rem, 3.1666666667vw, 2.375rem));font-weight:var(--wcss-accent-2xl-weight, 450);letter-spacing:var(--wcss-accent-2xl-letter-spacing, .05em);line-height:var(--wcss-accent-2xl-line-height, 1)}.accent-2xl,.accent-xl{text-transform:uppercase}.accent-xl{font-family:var(--wcss-accent-xl-family, "Good OT"),var(--wcss-accent-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-xl-font-size, clamp(1.625rem, 2.3333333333vw, 2rem));font-weight:var(--wcss-accent-xl-weight, 450);letter-spacing:var(--wcss-accent-xl-letter-spacing, .05em);line-height:var(--wcss-accent-xl-line-height, 1.3)}.accent-lg{font-family:var(--wcss-accent-lg-family, "Good OT"),var(--wcss-accent-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-lg-font-size, clamp(1.5rem, 2.1666666667vw, 1.75rem));font-weight:var(--wcss-accent-lg-weight, 450);letter-spacing:var(--wcss-accent-lg-letter-spacing, .05em);line-height:var(--wcss-accent-lg-line-height, 1.3)}.accent-lg,.accent-md{text-transform:uppercase}.accent-md{font-family:var(--wcss-accent-md-family, "Good OT"),var(--wcss-accent-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-md-font-size, clamp(1.375rem, 1.8333333333vw, 1.5rem));font-weight:var(--wcss-accent-md-weight, 500);letter-spacing:var(--wcss-accent-md-letter-spacing, .05em);line-height:var(--wcss-accent-md-line-height, 1.3)}.accent-sm{font-family:var(--wcss-accent-sm-family, "Good OT"),var(--wcss-accent-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-sm-font-size, clamp(1.125rem, 1.5vw, 1.25rem));font-weight:var(--wcss-accent-sm-weight, 500);letter-spacing:var(--wcss-accent-sm-letter-spacing, .05em);line-height:var(--wcss-accent-sm-line-height, 1.3)}.accent-sm,.accent-xs{text-transform:uppercase}.accent-xs{font-family:var(--wcss-accent-xs-family, "Good OT"),var(--wcss-accent-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-xs-font-size, clamp(1rem, 1.3333333333vw, 1rem));font-weight:var(--wcss-accent-xs-weight, 500);letter-spacing:var(--wcss-accent-xs-letter-spacing, .1em);line-height:var(--wcss-accent-xs-line-height, 1.3)}.accent-2xs{font-family:var(--wcss-accent-2xs-family, "Good OT"),var(--wcss-accent-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-2xs-font-size, clamp(.875rem, 1.1666666667vw, .875rem));font-weight:var(--wcss-accent-2xs-weight, 450);letter-spacing:var(--wcss-accent-2xs-letter-spacing, .1em);line-height:var(--wcss-accent-2xs-line-height, 1.3);text-transform:uppercase}:focus:not(:focus-visible){outline:3px solid transparent}:host,:host>span{position:relative}:host{width:2rem;height:2rem;display:inline-block;font-size:0}:host>span{position:absolute;display:inline-block;float:none;top:0;left:0;width:2rem;height:2rem;border-radius:100%;border-style:solid;border-width:0;box-sizing:border-box}:host([xs]),:host([xs])>span{width:1.2rem;height:1.2rem}:host([sm]),:host([sm])>span{width:3rem;height:3rem}:host([md]),:host([md])>span{width:5rem;height:5rem}:host([lg]),:host([lg])>span{width:8rem;height:8rem}:host{--margin: .375rem;--margin-xs: .2rem;--margin-sm: .5rem;--margin-md: .75rem;--margin-lg: 1rem}:host([pulse]),:host([pulse])>span{position:relative}:host([pulse]){width:calc(3rem + var(--margin) * 6);height:calc(1rem + var(--margin) * 2)}:host([pulse])>span{width:1rem;height:1rem;margin:var(--margin);animation:pulse 1.5s ease infinite}:host([pulse][xs]){width:calc(1.95rem + var(--margin-xs) * 6);height:calc(.65rem + var(--margin-xs) * 2)}:host([pulse][xs])>span{margin:var(--margin-xs);width:.65rem;height:.65rem}:host([pulse][sm]){width:calc(6rem + var(--margin-sm) * 6);height:calc(2rem + var(--margin-sm) * 2)}:host([pulse][sm])>span{margin:var(--margin-sm);width:2rem;height:2rem}:host([pulse][md]){width:calc(9rem + var(--margin-md) * 6);height:calc(3rem + var(--margin-md) * 2)}:host([pulse][md])>span{margin:var(--margin-md);width:3rem;height:3rem}:host([pulse][lg]){width:calc(15rem + var(--margin-lg) * 6);height:calc(5rem + var(--margin-lg) * 2)}:host([pulse][lg])>span{margin:var(--margin-lg);width:5rem;height:5rem}:host([pulse])>span:nth-child(1){animation-delay:-.4s}:host([pulse])>span:nth-child(2){animation-delay:-.2s}:host([pulse])>span:nth-child(3){animation-delay:0ms}@keyframes pulse{0%,to{opacity:.1;transform:scale(.9)}50%{opacity:1;transform:scale(1.1)}}:host([orbit]),:host([orbit])>span{opacity:1}:host([orbit])>span{border-width:5px}:host([orbit])>span:nth-child(2){animation:orbit 2s linear infinite}:host([orbit][sm])>span{border-width:8px}:host([orbit][md])>span{border-width:13px}:host([orbit][lg])>span{border-width:21px}@keyframes orbit{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host([ringworm])>svg{animation:rotate 2s linear infinite;height:100%;width:100%;stroke:currentcolor;stroke-width:8}:host([ringworm]) .path{stroke-dashoffset:0;animation:ringworm 1.5s ease-in-out infinite;stroke-linecap:round}@keyframes rotate{to{transform:rotate(360deg)}}@keyframes ringworm{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:89,200;stroke-dashoffset:-35px}to{stroke-dasharray:89,200;stroke-dashoffset:-124px}}:host([laser]){position:static;width:100%;display:block;height:0;overflow:hidden;font-size:unset}:host([laser])>span{position:fixed;width:100%;height:.25rem;border-radius:0;z-index:100}:host([laser])>span:nth-child(1){border-color:currentcolor;opacity:.25}:host([laser])>span:nth-child(2){border-color:currentcolor;animation:laser 2s linear infinite;opacity:1;width:50%}:host([laser][sm])>span:nth-child(2){width:20%}:host([laser][md])>span:nth-child(2){width:30%}:host([laser][lg])>span:nth-child(2){width:50%;animation-duration:1.5s}:host([laser][xl])>span:nth-child(2){width:80%;animation-duration:1.5s}@keyframes laser{0%{left:-100%}to{left:110%}}:host>.no-animation{display:none}@media (prefers-reduced-motion: reduce){:host{display:flex;align-items:center;justify-content:center}:host>span{opacity:1}:host>.loader{display:none}:host>svg{display:none}:host>.no-animation{display:block}}
|
|
@@ -32563,7 +32673,7 @@ let AuroHelpText$2$1 = class AuroHelpText extends i$3 {
|
|
|
32563
32673
|
}
|
|
32564
32674
|
};
|
|
32565
32675
|
|
|
32566
|
-
var formkitVersion$1$3 = '
|
|
32676
|
+
var formkitVersion$1$3 = '202606192121';
|
|
32567
32677
|
|
|
32568
32678
|
let AuroElement$2$2 = class AuroElement extends i$3 {
|
|
32569
32679
|
static get properties() {
|
|
@@ -44277,7 +44387,6 @@ let AuroInputUtilities$2 = class AuroInputUtilities {
|
|
|
44277
44387
|
const maskOptions = this.getMaskOptions('date', normalizedFormat);
|
|
44278
44388
|
|
|
44279
44389
|
if (!(valueObject instanceof Date) || Number.isNaN(valueObject.getTime()) || !maskOptions || typeof maskOptions.format !== 'function') {
|
|
44280
|
-
console.debug('Invalid date object or mask options for formatting', { valueObject, maskOptions }); // eslint-disable-line no-console
|
|
44281
44390
|
return undefined;
|
|
44282
44391
|
}
|
|
44283
44392
|
|
|
@@ -44429,8 +44538,10 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
|
|
|
44429
44538
|
this.layout = 'classic';
|
|
44430
44539
|
this.locale = 'en-US';
|
|
44431
44540
|
this.max = undefined;
|
|
44541
|
+
this._maxObject = undefined;
|
|
44432
44542
|
this.maxLength = undefined;
|
|
44433
44543
|
this.min = undefined;
|
|
44544
|
+
this._minObject = undefined;
|
|
44434
44545
|
this.minLength = undefined;
|
|
44435
44546
|
this.required = false;
|
|
44436
44547
|
this.onDark = false;
|
|
@@ -44438,6 +44549,7 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
|
|
|
44438
44549
|
this.size = 'lg';
|
|
44439
44550
|
this.shape = 'classic';
|
|
44440
44551
|
this.value = undefined;
|
|
44552
|
+
this._valueObject = undefined;
|
|
44441
44553
|
|
|
44442
44554
|
this._initializePrivateDefaults();
|
|
44443
44555
|
}
|
|
@@ -44977,7 +45089,7 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
|
|
|
44977
45089
|
* @returns {Date|undefined}
|
|
44978
45090
|
*/
|
|
44979
45091
|
get valueObject() {
|
|
44980
|
-
return this.
|
|
45092
|
+
return this._valueObject || this._computeDateObjectFallback(this.value);
|
|
44981
45093
|
}
|
|
44982
45094
|
|
|
44983
45095
|
/**
|
|
@@ -44985,7 +45097,7 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
|
|
|
44985
45097
|
* @returns {Date|undefined}
|
|
44986
45098
|
*/
|
|
44987
45099
|
get minObject() {
|
|
44988
|
-
return this.
|
|
45100
|
+
return this._minObject || this._computeDateObjectFallback(this.min);
|
|
44989
45101
|
}
|
|
44990
45102
|
|
|
44991
45103
|
/**
|
|
@@ -44993,7 +45105,50 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
|
|
|
44993
45105
|
* @returns {Date|undefined}
|
|
44994
45106
|
*/
|
|
44995
45107
|
get maxObject() {
|
|
44996
|
-
return this.
|
|
45108
|
+
return this._maxObject || this._computeDateObjectFallback(this.max);
|
|
45109
|
+
}
|
|
45110
|
+
|
|
45111
|
+
/**
|
|
45112
|
+
* Parses a date string into a Date object when the corresponding `_*Object`
|
|
45113
|
+
* field hasn't been synced yet by `updated()`. Returns undefined when the
|
|
45114
|
+
* input type/format isn't a full date or the string is not a valid date.
|
|
45115
|
+
*
|
|
45116
|
+
* Why this exists: a parent (datepicker) can call `inputN.validate()` from
|
|
45117
|
+
* inside its own `updated()` before this input's `updated()` has run
|
|
45118
|
+
* `syncDateValues()` — so `_valueObject`/`_maxObject` are still `undefined`
|
|
45119
|
+
* and range checks would otherwise silently no-op (flipping the result to
|
|
45120
|
+
* `valid` or `patternMismatch`).
|
|
45121
|
+
* @private
|
|
45122
|
+
* @param {string|undefined} dateStr - ISO date string from `value`/`min`/`max`.
|
|
45123
|
+
* @returns {Date|undefined}
|
|
45124
|
+
*/
|
|
45125
|
+
_computeDateObjectFallback(dateStr) {
|
|
45126
|
+
if (!dateStr || !this.util || !this.util.isFullDateFormat(this.type, this.format)) {
|
|
45127
|
+
return undefined;
|
|
45128
|
+
}
|
|
45129
|
+
if (!dateFormatter$2.isValidDate(dateStr)) {
|
|
45130
|
+
return undefined;
|
|
45131
|
+
}
|
|
45132
|
+
return dateFormatter$2.stringToDateInstance(dateStr);
|
|
45133
|
+
}
|
|
45134
|
+
|
|
45135
|
+
/**
|
|
45136
|
+
* Internal setter for readonly date object properties.
|
|
45137
|
+
* @private
|
|
45138
|
+
* @param {'valueObject'|'minObject'|'maxObject'} propertyName - Public object property name.
|
|
45139
|
+
* @param {Date|undefined} propertyValue - Value to assign.
|
|
45140
|
+
* @returns {void}
|
|
45141
|
+
*/
|
|
45142
|
+
setDateObjectProperty(propertyName, propertyValue) {
|
|
45143
|
+
const internalPropertyName = `_${propertyName}`;
|
|
45144
|
+
const previousValue = this[internalPropertyName];
|
|
45145
|
+
|
|
45146
|
+
if (previousValue === propertyValue) {
|
|
45147
|
+
return;
|
|
45148
|
+
}
|
|
45149
|
+
|
|
45150
|
+
this[internalPropertyName] = propertyValue;
|
|
45151
|
+
this.requestUpdate(propertyName, previousValue);
|
|
44997
45152
|
}
|
|
44998
45153
|
|
|
44999
45154
|
connectedCallback() {
|
|
@@ -45022,6 +45177,7 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
|
|
|
45022
45177
|
format: this.format
|
|
45023
45178
|
});
|
|
45024
45179
|
this.configureDataForType();
|
|
45180
|
+
this.syncDateValues();
|
|
45025
45181
|
}
|
|
45026
45182
|
|
|
45027
45183
|
disconnectedCallback() {
|
|
@@ -45041,6 +45197,10 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
|
|
|
45041
45197
|
this.wrapperElement.addEventListener('click', this.handleClick);
|
|
45042
45198
|
}
|
|
45043
45199
|
|
|
45200
|
+
// add attribute for query selectors when auro-input is registered under a custom name
|
|
45201
|
+
if (this.tagName.toLowerCase() !== 'auro-input' && !this.hasAttribute('auro-input')) {
|
|
45202
|
+
this.setAttribute('auro-input', '');
|
|
45203
|
+
}
|
|
45044
45204
|
this.inputId = this.id ? `${this.id}-input` : window.crypto.randomUUID();
|
|
45045
45205
|
|
|
45046
45206
|
// use validity message override if declared when initializing the component
|
|
@@ -45051,6 +45211,7 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
|
|
|
45051
45211
|
this.setCustomHelpTextMessage();
|
|
45052
45212
|
this.configureAutoFormatting();
|
|
45053
45213
|
this.configureDataForType();
|
|
45214
|
+
this.syncDateValues();
|
|
45054
45215
|
}
|
|
45055
45216
|
|
|
45056
45217
|
/**
|
|
@@ -45187,6 +45348,8 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
|
|
|
45187
45348
|
this.configureDataForType();
|
|
45188
45349
|
}
|
|
45189
45350
|
|
|
45351
|
+
this.syncDateValues(changedProperties);
|
|
45352
|
+
|
|
45190
45353
|
if (changedProperties.has('value')) {
|
|
45191
45354
|
if (this.value && this.value.length > 0) {
|
|
45192
45355
|
this.hasValue = true;
|
|
@@ -45208,14 +45371,14 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
|
|
|
45208
45371
|
|
|
45209
45372
|
if (formattedValue !== this.inputElement.value) {
|
|
45210
45373
|
this.skipNextProgrammaticInputEvent = true;
|
|
45211
|
-
if (this.maskInstance && this.type
|
|
45374
|
+
if (this.maskInstance && this.type === 'credit-card') {
|
|
45212
45375
|
// Route through the mask so its _value and el.value stay in lock-step
|
|
45213
45376
|
// (set value calls updateControl which writes el.value = displayValue).
|
|
45214
45377
|
// Writing el.value directly leaves the mask thinking displayValue is
|
|
45215
|
-
// stale; _saveSelection on the next focus/click then warns.
|
|
45216
|
-
//
|
|
45217
|
-
//
|
|
45218
|
-
// flip validity from patternMismatch to tooShort.
|
|
45378
|
+
// stale; _saveSelection on the next focus/click then warns. Scoped to
|
|
45379
|
+
// credit-card so date's own formattedValue (raw ISO when calendar-invalid)
|
|
45380
|
+
// isn't re-masked through the mm/dd/yyyy mask, which would truncate it
|
|
45381
|
+
// and flip validity from patternMismatch to tooShort.
|
|
45219
45382
|
this.maskInstance.value = formattedValue || '';
|
|
45220
45383
|
} else if (formattedValue) {
|
|
45221
45384
|
this.inputElement.value = formattedValue;
|
|
@@ -45257,60 +45420,120 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
|
|
|
45257
45420
|
}));
|
|
45258
45421
|
}
|
|
45259
45422
|
|
|
45423
|
+
|
|
45424
|
+
/**
|
|
45425
|
+
* Synchronizes the ISO string values and Date object representations for date-related properties.
|
|
45426
|
+
* This keeps the model and display values aligned when either side changes.
|
|
45427
|
+
*
|
|
45428
|
+
* When a full date format is in use, this method updates `value`, `min`, and `max` from their corresponding
|
|
45429
|
+
* Date objects or vice versa, based on which properties have changed. It only runs when the current configuration
|
|
45430
|
+
* represents a full year/month/day date format.
|
|
45431
|
+
*
|
|
45432
|
+
* @param {Map<string, unknown>|undefined} [changedProperties=undefined] - Optional map of changed properties used to limit which values are synchronized.
|
|
45433
|
+
* @returns {void}
|
|
45434
|
+
* @private
|
|
45435
|
+
*/
|
|
45436
|
+
syncDateValues(changedProperties = undefined) {
|
|
45437
|
+
if (!this.util.isFullDateFormat(this.type, this.format)) {
|
|
45438
|
+
return;
|
|
45439
|
+
}
|
|
45440
|
+
|
|
45441
|
+
this.syncSingleDateValue(changedProperties, 'valueObject', 'value');
|
|
45442
|
+
this.syncSingleDateValue(changedProperties, 'minObject', 'min');
|
|
45443
|
+
this.syncSingleDateValue(changedProperties, 'maxObject', 'max');
|
|
45444
|
+
}
|
|
45445
|
+
|
|
45446
|
+
/**
|
|
45447
|
+
* Synchronizes one date object/string property pair.
|
|
45448
|
+
* @private
|
|
45449
|
+
* @param {Map<string, unknown>|undefined} changedProperties - Map of changed properties from Lit.
|
|
45450
|
+
* @param {string} objectProperty - Date object property name.
|
|
45451
|
+
* @param {string} valueProperty - ISO string property name.
|
|
45452
|
+
* @returns {void}
|
|
45453
|
+
*/
|
|
45454
|
+
syncSingleDateValue(changedProperties, objectProperty, valueProperty) {
|
|
45455
|
+
const objectPropertyChanged = !changedProperties || changedProperties.has(objectProperty);
|
|
45456
|
+
|
|
45457
|
+
// objectProperty wins over valueProperty when both changed
|
|
45458
|
+
if (objectPropertyChanged && this[objectProperty]) {
|
|
45459
|
+
this[valueProperty] = dateFormatter$2.toISOFormatString(this[objectProperty]);
|
|
45460
|
+
return;
|
|
45461
|
+
}
|
|
45462
|
+
|
|
45463
|
+
const valuePropertyChanged = !changedProperties || changedProperties.has(valueProperty);
|
|
45464
|
+
if (!valuePropertyChanged) {
|
|
45465
|
+
return;
|
|
45466
|
+
}
|
|
45467
|
+
|
|
45468
|
+
// 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)
|
|
45469
|
+
if (
|
|
45470
|
+
changedProperties &&
|
|
45471
|
+
valueProperty === 'value' &&
|
|
45472
|
+
changedProperties.get('value') === undefined &&
|
|
45473
|
+
this[objectProperty] instanceof Date &&
|
|
45474
|
+
this[valueProperty] === dateFormatter$2.toISOFormatString(this[objectProperty])
|
|
45475
|
+
) {
|
|
45476
|
+
return;
|
|
45477
|
+
}
|
|
45478
|
+
|
|
45479
|
+
if (dateFormatter$2.isValidDate(this[valueProperty])) {
|
|
45480
|
+
this.setDateObjectProperty(objectProperty, dateFormatter$2.stringToDateInstance(this[valueProperty]));
|
|
45481
|
+
} else {
|
|
45482
|
+
this.setDateObjectProperty(objectProperty, undefined);
|
|
45483
|
+
}
|
|
45484
|
+
}
|
|
45485
|
+
|
|
45260
45486
|
/**
|
|
45261
45487
|
* Sets up IMasks and logic based on auto-formatting requirements.
|
|
45262
45488
|
* @private
|
|
45263
45489
|
* @returns {void}
|
|
45264
45490
|
*/
|
|
45265
45491
|
configureAutoFormatting() {
|
|
45266
|
-
//
|
|
45267
|
-
//
|
|
45268
|
-
//
|
|
45269
|
-
//
|
|
45492
|
+
// Re-entrancy guard. The patched-setter's synthetic input event (suppressed
|
|
45493
|
+
// by _configuringMask above) could otherwise trigger handleInput →
|
|
45494
|
+
// processCreditCard → configureAutoFormatting before the outer call's
|
|
45495
|
+
// set value has finished its alignCursor pass.
|
|
45270
45496
|
if (this._configuringMask) return;
|
|
45271
45497
|
this._configuringMask = true;
|
|
45272
45498
|
try {
|
|
45273
|
-
// Destroy any prior mask so IMask can attach fresh under the new format.
|
|
45274
45499
|
if (this.maskInstance) {
|
|
45275
45500
|
this.maskInstance.destroy();
|
|
45276
45501
|
}
|
|
45277
45502
|
|
|
45503
|
+
// Pass new format to util
|
|
45278
45504
|
this.util.updateFormat(this.format);
|
|
45279
45505
|
|
|
45280
45506
|
const maskOptions = this.util.getMaskOptions(this.type, this.format);
|
|
45281
45507
|
|
|
45282
45508
|
if (this.inputElement && maskOptions.mask) {
|
|
45283
|
-
// Capture the current display so it can be re-applied after IMask
|
|
45284
|
-
// attaches. The restore at the bottom goes through maskInstance.value
|
|
45285
|
-
// (not inputElement.value directly) so the mask's internal state and
|
|
45286
|
-
// the input's displayed text stay in lock-step.
|
|
45287
|
-
let existingValue = this.inputElement.value;
|
|
45288
45509
|
|
|
45289
|
-
//
|
|
45290
|
-
//
|
|
45291
|
-
//
|
|
45292
|
-
//
|
|
45510
|
+
// Stash and clear any existing value before IMask init.
|
|
45511
|
+
// IMask's constructor processes the current input value which requires
|
|
45512
|
+
// selection state — clearing first avoids that scenario entirely.
|
|
45513
|
+
// When the format changes (e.g. locale switch) and we have a valid ISO
|
|
45514
|
+
// model value, compute the display string for the NEW format instead of
|
|
45515
|
+
// re-using the old display string, which may be invalid in the new mask.
|
|
45516
|
+
let existingValue = this.inputElement.value;
|
|
45293
45517
|
if (
|
|
45294
45518
|
this.util.isFullDateFormat(this.type, this.format) &&
|
|
45295
45519
|
this.value &&
|
|
45296
|
-
this.
|
|
45520
|
+
dateFormatter$2.isValidDate(this.value) &&
|
|
45521
|
+
this.valueObject instanceof Date &&
|
|
45522
|
+
!Number.isNaN(this.valueObject.getTime()) &&
|
|
45297
45523
|
typeof maskOptions.format === 'function'
|
|
45298
45524
|
) {
|
|
45299
45525
|
existingValue = maskOptions.format(this.valueObject);
|
|
45300
45526
|
}
|
|
45301
45527
|
|
|
45302
|
-
// Clear before IMask attaches so the constructor seeds an empty
|
|
45303
|
-
// internal value. Otherwise IMask reads the stale unmasked string
|
|
45304
|
-
// and emits a spurious 'accept' before the restore below runs.
|
|
45305
45528
|
this.skipNextProgrammaticInputEvent = true;
|
|
45306
45529
|
this.inputElement.value = '';
|
|
45307
45530
|
|
|
45308
45531
|
this.maskInstance = IMask$2(this.inputElement, maskOptions);
|
|
45309
45532
|
|
|
45310
|
-
// Mask fires 'accept' on every value change, including the restore
|
|
45311
|
-
// step below. Skip events fired during configureAutoFormatting so
|
|
45312
|
-
// we don't overwrite a value the parent just pushed.
|
|
45313
45533
|
this.maskInstance.on('accept', () => {
|
|
45534
|
+
// Suppress propagation during configureAutoFormatting's own value-restoration
|
|
45535
|
+
// (line below) — the mask emits 'accept' on every value-set, including ours,
|
|
45536
|
+
// and we don't want to overwrite a value the parent just pushed.
|
|
45314
45537
|
if (this._configuringMask) return;
|
|
45315
45538
|
this.value = this.util.toModelValue(this.maskInstance.value, this.format);
|
|
45316
45539
|
if (this.type === "date") {
|
|
@@ -45318,8 +45541,6 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
|
|
|
45318
45541
|
}
|
|
45319
45542
|
});
|
|
45320
45543
|
|
|
45321
|
-
// Mask fires 'complete' on the restore step below for any value that
|
|
45322
|
-
// happens to be a complete match. Same setup-suppression as 'accept'.
|
|
45323
45544
|
this.maskInstance.on('complete', () => {
|
|
45324
45545
|
if (this._configuringMask) return;
|
|
45325
45546
|
this.value = this.util.toModelValue(this.maskInstance.value, this.format);
|
|
@@ -45328,9 +45549,7 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
|
|
|
45328
45549
|
}
|
|
45329
45550
|
});
|
|
45330
45551
|
|
|
45331
|
-
//
|
|
45332
|
-
// the mask reformats it under the new rules and keeps its internal
|
|
45333
|
-
// _value aligned with the input's displayed text.
|
|
45552
|
+
// Restore the stashed value through IMask so it's properly masked
|
|
45334
45553
|
if (existingValue) {
|
|
45335
45554
|
this.maskInstance.value = existingValue;
|
|
45336
45555
|
}
|
|
@@ -45498,6 +45717,7 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
|
|
|
45498
45717
|
*/
|
|
45499
45718
|
reset() {
|
|
45500
45719
|
this.value = undefined;
|
|
45720
|
+
this.setDateObjectProperty('valueObject', undefined);
|
|
45501
45721
|
this.validation.reset(this);
|
|
45502
45722
|
}
|
|
45503
45723
|
|
|
@@ -45506,6 +45726,7 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
|
|
|
45506
45726
|
*/
|
|
45507
45727
|
clear() {
|
|
45508
45728
|
this.value = undefined;
|
|
45729
|
+
this.setDateObjectProperty('valueObject', undefined);
|
|
45509
45730
|
}
|
|
45510
45731
|
|
|
45511
45732
|
/**
|
|
@@ -46034,7 +46255,7 @@ let AuroHelpText$1$3 = class AuroHelpText extends i$3 {
|
|
|
46034
46255
|
}
|
|
46035
46256
|
};
|
|
46036
46257
|
|
|
46037
|
-
var formkitVersion$7 = '
|
|
46258
|
+
var formkitVersion$7 = '202606192121';
|
|
46038
46259
|
|
|
46039
46260
|
// Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
|
|
46040
46261
|
// See LICENSE in the project root for license information.
|
|
@@ -50731,7 +50952,7 @@ let AuroHelpText$1$2 = class AuroHelpText extends i$3 {
|
|
|
50731
50952
|
}
|
|
50732
50953
|
};
|
|
50733
50954
|
|
|
50734
|
-
var formkitVersion$1$2 = '
|
|
50955
|
+
var formkitVersion$1$2 = '202606192121';
|
|
50735
50956
|
|
|
50736
50957
|
// Copyright (c) 2026 Alaska Airlines. All rights reserved. Licensed under the Apache-2.0 license
|
|
50737
50958
|
// See LICENSE in the project root for license information.
|
|
@@ -55059,7 +55280,7 @@ let AuroHelpText$6 = class AuroHelpText extends i$3 {
|
|
|
55059
55280
|
}
|
|
55060
55281
|
};
|
|
55061
55282
|
|
|
55062
|
-
var formkitVersion$6 = '
|
|
55283
|
+
var formkitVersion$6 = '202606192121';
|
|
55063
55284
|
|
|
55064
55285
|
let AuroElement$1$2 = class AuroElement extends i$3 {
|
|
55065
55286
|
static get properties() {
|
|
@@ -58991,7 +59212,7 @@ let AuroHelpText$5 = class AuroHelpText extends i$3 {
|
|
|
58991
59212
|
}
|
|
58992
59213
|
};
|
|
58993
59214
|
|
|
58994
|
-
var formkitVersion$5 = '
|
|
59215
|
+
var formkitVersion$5 = '202606192121';
|
|
58995
59216
|
|
|
58996
59217
|
// Copyright (c) Alaska Air. All right reserved. Licensed under the Apache-2.0 license
|
|
58997
59218
|
// See LICENSE in the project root for license information.
|
|
@@ -60741,7 +60962,7 @@ let AuroHelpText$4 = class AuroHelpText extends i$3 {
|
|
|
60741
60962
|
}
|
|
60742
60963
|
};
|
|
60743
60964
|
|
|
60744
|
-
var formkitVersion$4 = '
|
|
60965
|
+
var formkitVersion$4 = '202606192121';
|
|
60745
60966
|
|
|
60746
60967
|
// Copyright (c) 2026 Alaska Airlines. All rights reserved. Licensed under the Apache-2.0 license
|
|
60747
60968
|
// See LICENSE in the project root for license information.
|
|
@@ -61917,8 +62138,6 @@ function navigateArrow$1(component, direction, options = {}) {
|
|
|
61917
62138
|
}
|
|
61918
62139
|
}
|
|
61919
62140
|
|
|
61920
|
-
/* eslint-disable no-underscore-dangle */
|
|
61921
|
-
|
|
61922
62141
|
/**
|
|
61923
62142
|
* Returns the clear button element from the active input's shadow
|
|
61924
62143
|
* DOM, if available.
|
|
@@ -61954,9 +62173,11 @@ function isClearBtnFocused(ctx, clearBtn = getClearBtn(ctx)) {
|
|
|
61954
62173
|
* @param {Object} menu - The menu component.
|
|
61955
62174
|
*/
|
|
61956
62175
|
function reconcileMenuIndex(menu) {
|
|
62176
|
+
// eslint-disable-next-line no-underscore-dangle
|
|
61957
62177
|
if (menu._index < 0 && menu.optionActive && menu.items) {
|
|
61958
62178
|
const idx = menu.items.indexOf(menu.optionActive);
|
|
61959
62179
|
if (idx >= 0) {
|
|
62180
|
+
// eslint-disable-next-line no-underscore-dangle
|
|
61960
62181
|
menu._index = idx;
|
|
61961
62182
|
}
|
|
61962
62183
|
}
|
|
@@ -65956,7 +66177,7 @@ let AuroHelpText$2 = class AuroHelpText extends i$3 {
|
|
|
65956
66177
|
}
|
|
65957
66178
|
};
|
|
65958
66179
|
|
|
65959
|
-
var formkitVersion$2 = '
|
|
66180
|
+
var formkitVersion$2 = '202606192121';
|
|
65960
66181
|
|
|
65961
66182
|
let AuroElement$2$1 = class AuroElement extends i$3 {
|
|
65962
66183
|
static get properties() {
|
|
@@ -77670,7 +77891,6 @@ class AuroInputUtilities {
|
|
|
77670
77891
|
const maskOptions = this.getMaskOptions('date', normalizedFormat);
|
|
77671
77892
|
|
|
77672
77893
|
if (!(valueObject instanceof Date) || Number.isNaN(valueObject.getTime()) || !maskOptions || typeof maskOptions.format !== 'function') {
|
|
77673
|
-
console.debug('Invalid date object or mask options for formatting', { valueObject, maskOptions }); // eslint-disable-line no-console
|
|
77674
77894
|
return undefined;
|
|
77675
77895
|
}
|
|
77676
77896
|
|
|
@@ -77822,8 +78042,10 @@ class BaseInput extends AuroElement$1$1 {
|
|
|
77822
78042
|
this.layout = 'classic';
|
|
77823
78043
|
this.locale = 'en-US';
|
|
77824
78044
|
this.max = undefined;
|
|
78045
|
+
this._maxObject = undefined;
|
|
77825
78046
|
this.maxLength = undefined;
|
|
77826
78047
|
this.min = undefined;
|
|
78048
|
+
this._minObject = undefined;
|
|
77827
78049
|
this.minLength = undefined;
|
|
77828
78050
|
this.required = false;
|
|
77829
78051
|
this.onDark = false;
|
|
@@ -77831,6 +78053,7 @@ class BaseInput extends AuroElement$1$1 {
|
|
|
77831
78053
|
this.size = 'lg';
|
|
77832
78054
|
this.shape = 'classic';
|
|
77833
78055
|
this.value = undefined;
|
|
78056
|
+
this._valueObject = undefined;
|
|
77834
78057
|
|
|
77835
78058
|
this._initializePrivateDefaults();
|
|
77836
78059
|
}
|
|
@@ -78370,7 +78593,7 @@ class BaseInput extends AuroElement$1$1 {
|
|
|
78370
78593
|
* @returns {Date|undefined}
|
|
78371
78594
|
*/
|
|
78372
78595
|
get valueObject() {
|
|
78373
|
-
return this.
|
|
78596
|
+
return this._valueObject || this._computeDateObjectFallback(this.value);
|
|
78374
78597
|
}
|
|
78375
78598
|
|
|
78376
78599
|
/**
|
|
@@ -78378,7 +78601,7 @@ class BaseInput extends AuroElement$1$1 {
|
|
|
78378
78601
|
* @returns {Date|undefined}
|
|
78379
78602
|
*/
|
|
78380
78603
|
get minObject() {
|
|
78381
|
-
return this.
|
|
78604
|
+
return this._minObject || this._computeDateObjectFallback(this.min);
|
|
78382
78605
|
}
|
|
78383
78606
|
|
|
78384
78607
|
/**
|
|
@@ -78386,7 +78609,50 @@ class BaseInput extends AuroElement$1$1 {
|
|
|
78386
78609
|
* @returns {Date|undefined}
|
|
78387
78610
|
*/
|
|
78388
78611
|
get maxObject() {
|
|
78389
|
-
return this.
|
|
78612
|
+
return this._maxObject || this._computeDateObjectFallback(this.max);
|
|
78613
|
+
}
|
|
78614
|
+
|
|
78615
|
+
/**
|
|
78616
|
+
* Parses a date string into a Date object when the corresponding `_*Object`
|
|
78617
|
+
* field hasn't been synced yet by `updated()`. Returns undefined when the
|
|
78618
|
+
* input type/format isn't a full date or the string is not a valid date.
|
|
78619
|
+
*
|
|
78620
|
+
* Why this exists: a parent (datepicker) can call `inputN.validate()` from
|
|
78621
|
+
* inside its own `updated()` before this input's `updated()` has run
|
|
78622
|
+
* `syncDateValues()` — so `_valueObject`/`_maxObject` are still `undefined`
|
|
78623
|
+
* and range checks would otherwise silently no-op (flipping the result to
|
|
78624
|
+
* `valid` or `patternMismatch`).
|
|
78625
|
+
* @private
|
|
78626
|
+
* @param {string|undefined} dateStr - ISO date string from `value`/`min`/`max`.
|
|
78627
|
+
* @returns {Date|undefined}
|
|
78628
|
+
*/
|
|
78629
|
+
_computeDateObjectFallback(dateStr) {
|
|
78630
|
+
if (!dateStr || !this.util || !this.util.isFullDateFormat(this.type, this.format)) {
|
|
78631
|
+
return undefined;
|
|
78632
|
+
}
|
|
78633
|
+
if (!dateFormatter.isValidDate(dateStr)) {
|
|
78634
|
+
return undefined;
|
|
78635
|
+
}
|
|
78636
|
+
return dateFormatter.stringToDateInstance(dateStr);
|
|
78637
|
+
}
|
|
78638
|
+
|
|
78639
|
+
/**
|
|
78640
|
+
* Internal setter for readonly date object properties.
|
|
78641
|
+
* @private
|
|
78642
|
+
* @param {'valueObject'|'minObject'|'maxObject'} propertyName - Public object property name.
|
|
78643
|
+
* @param {Date|undefined} propertyValue - Value to assign.
|
|
78644
|
+
* @returns {void}
|
|
78645
|
+
*/
|
|
78646
|
+
setDateObjectProperty(propertyName, propertyValue) {
|
|
78647
|
+
const internalPropertyName = `_${propertyName}`;
|
|
78648
|
+
const previousValue = this[internalPropertyName];
|
|
78649
|
+
|
|
78650
|
+
if (previousValue === propertyValue) {
|
|
78651
|
+
return;
|
|
78652
|
+
}
|
|
78653
|
+
|
|
78654
|
+
this[internalPropertyName] = propertyValue;
|
|
78655
|
+
this.requestUpdate(propertyName, previousValue);
|
|
78390
78656
|
}
|
|
78391
78657
|
|
|
78392
78658
|
connectedCallback() {
|
|
@@ -78415,6 +78681,7 @@ class BaseInput extends AuroElement$1$1 {
|
|
|
78415
78681
|
format: this.format
|
|
78416
78682
|
});
|
|
78417
78683
|
this.configureDataForType();
|
|
78684
|
+
this.syncDateValues();
|
|
78418
78685
|
}
|
|
78419
78686
|
|
|
78420
78687
|
disconnectedCallback() {
|
|
@@ -78434,6 +78701,10 @@ class BaseInput extends AuroElement$1$1 {
|
|
|
78434
78701
|
this.wrapperElement.addEventListener('click', this.handleClick);
|
|
78435
78702
|
}
|
|
78436
78703
|
|
|
78704
|
+
// add attribute for query selectors when auro-input is registered under a custom name
|
|
78705
|
+
if (this.tagName.toLowerCase() !== 'auro-input' && !this.hasAttribute('auro-input')) {
|
|
78706
|
+
this.setAttribute('auro-input', '');
|
|
78707
|
+
}
|
|
78437
78708
|
this.inputId = this.id ? `${this.id}-input` : window.crypto.randomUUID();
|
|
78438
78709
|
|
|
78439
78710
|
// use validity message override if declared when initializing the component
|
|
@@ -78444,6 +78715,7 @@ class BaseInput extends AuroElement$1$1 {
|
|
|
78444
78715
|
this.setCustomHelpTextMessage();
|
|
78445
78716
|
this.configureAutoFormatting();
|
|
78446
78717
|
this.configureDataForType();
|
|
78718
|
+
this.syncDateValues();
|
|
78447
78719
|
}
|
|
78448
78720
|
|
|
78449
78721
|
/**
|
|
@@ -78580,6 +78852,8 @@ class BaseInput extends AuroElement$1$1 {
|
|
|
78580
78852
|
this.configureDataForType();
|
|
78581
78853
|
}
|
|
78582
78854
|
|
|
78855
|
+
this.syncDateValues(changedProperties);
|
|
78856
|
+
|
|
78583
78857
|
if (changedProperties.has('value')) {
|
|
78584
78858
|
if (this.value && this.value.length > 0) {
|
|
78585
78859
|
this.hasValue = true;
|
|
@@ -78601,14 +78875,14 @@ class BaseInput extends AuroElement$1$1 {
|
|
|
78601
78875
|
|
|
78602
78876
|
if (formattedValue !== this.inputElement.value) {
|
|
78603
78877
|
this.skipNextProgrammaticInputEvent = true;
|
|
78604
|
-
if (this.maskInstance && this.type
|
|
78878
|
+
if (this.maskInstance && this.type === 'credit-card') {
|
|
78605
78879
|
// Route through the mask so its _value and el.value stay in lock-step
|
|
78606
78880
|
// (set value calls updateControl which writes el.value = displayValue).
|
|
78607
78881
|
// Writing el.value directly leaves the mask thinking displayValue is
|
|
78608
|
-
// stale; _saveSelection on the next focus/click then warns.
|
|
78609
|
-
//
|
|
78610
|
-
//
|
|
78611
|
-
// flip validity from patternMismatch to tooShort.
|
|
78882
|
+
// stale; _saveSelection on the next focus/click then warns. Scoped to
|
|
78883
|
+
// credit-card so date's own formattedValue (raw ISO when calendar-invalid)
|
|
78884
|
+
// isn't re-masked through the mm/dd/yyyy mask, which would truncate it
|
|
78885
|
+
// and flip validity from patternMismatch to tooShort.
|
|
78612
78886
|
this.maskInstance.value = formattedValue || '';
|
|
78613
78887
|
} else if (formattedValue) {
|
|
78614
78888
|
this.inputElement.value = formattedValue;
|
|
@@ -78650,60 +78924,120 @@ class BaseInput extends AuroElement$1$1 {
|
|
|
78650
78924
|
}));
|
|
78651
78925
|
}
|
|
78652
78926
|
|
|
78927
|
+
|
|
78928
|
+
/**
|
|
78929
|
+
* Synchronizes the ISO string values and Date object representations for date-related properties.
|
|
78930
|
+
* This keeps the model and display values aligned when either side changes.
|
|
78931
|
+
*
|
|
78932
|
+
* When a full date format is in use, this method updates `value`, `min`, and `max` from their corresponding
|
|
78933
|
+
* Date objects or vice versa, based on which properties have changed. It only runs when the current configuration
|
|
78934
|
+
* represents a full year/month/day date format.
|
|
78935
|
+
*
|
|
78936
|
+
* @param {Map<string, unknown>|undefined} [changedProperties=undefined] - Optional map of changed properties used to limit which values are synchronized.
|
|
78937
|
+
* @returns {void}
|
|
78938
|
+
* @private
|
|
78939
|
+
*/
|
|
78940
|
+
syncDateValues(changedProperties = undefined) {
|
|
78941
|
+
if (!this.util.isFullDateFormat(this.type, this.format)) {
|
|
78942
|
+
return;
|
|
78943
|
+
}
|
|
78944
|
+
|
|
78945
|
+
this.syncSingleDateValue(changedProperties, 'valueObject', 'value');
|
|
78946
|
+
this.syncSingleDateValue(changedProperties, 'minObject', 'min');
|
|
78947
|
+
this.syncSingleDateValue(changedProperties, 'maxObject', 'max');
|
|
78948
|
+
}
|
|
78949
|
+
|
|
78950
|
+
/**
|
|
78951
|
+
* Synchronizes one date object/string property pair.
|
|
78952
|
+
* @private
|
|
78953
|
+
* @param {Map<string, unknown>|undefined} changedProperties - Map of changed properties from Lit.
|
|
78954
|
+
* @param {string} objectProperty - Date object property name.
|
|
78955
|
+
* @param {string} valueProperty - ISO string property name.
|
|
78956
|
+
* @returns {void}
|
|
78957
|
+
*/
|
|
78958
|
+
syncSingleDateValue(changedProperties, objectProperty, valueProperty) {
|
|
78959
|
+
const objectPropertyChanged = !changedProperties || changedProperties.has(objectProperty);
|
|
78960
|
+
|
|
78961
|
+
// objectProperty wins over valueProperty when both changed
|
|
78962
|
+
if (objectPropertyChanged && this[objectProperty]) {
|
|
78963
|
+
this[valueProperty] = dateFormatter.toISOFormatString(this[objectProperty]);
|
|
78964
|
+
return;
|
|
78965
|
+
}
|
|
78966
|
+
|
|
78967
|
+
const valuePropertyChanged = !changedProperties || changedProperties.has(valueProperty);
|
|
78968
|
+
if (!valuePropertyChanged) {
|
|
78969
|
+
return;
|
|
78970
|
+
}
|
|
78971
|
+
|
|
78972
|
+
// 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)
|
|
78973
|
+
if (
|
|
78974
|
+
changedProperties &&
|
|
78975
|
+
valueProperty === 'value' &&
|
|
78976
|
+
changedProperties.get('value') === undefined &&
|
|
78977
|
+
this[objectProperty] instanceof Date &&
|
|
78978
|
+
this[valueProperty] === dateFormatter.toISOFormatString(this[objectProperty])
|
|
78979
|
+
) {
|
|
78980
|
+
return;
|
|
78981
|
+
}
|
|
78982
|
+
|
|
78983
|
+
if (dateFormatter.isValidDate(this[valueProperty])) {
|
|
78984
|
+
this.setDateObjectProperty(objectProperty, dateFormatter.stringToDateInstance(this[valueProperty]));
|
|
78985
|
+
} else {
|
|
78986
|
+
this.setDateObjectProperty(objectProperty, undefined);
|
|
78987
|
+
}
|
|
78988
|
+
}
|
|
78989
|
+
|
|
78653
78990
|
/**
|
|
78654
78991
|
* Sets up IMasks and logic based on auto-formatting requirements.
|
|
78655
78992
|
* @private
|
|
78656
78993
|
* @returns {void}
|
|
78657
78994
|
*/
|
|
78658
78995
|
configureAutoFormatting() {
|
|
78659
|
-
//
|
|
78660
|
-
//
|
|
78661
|
-
//
|
|
78662
|
-
//
|
|
78996
|
+
// Re-entrancy guard. The patched-setter's synthetic input event (suppressed
|
|
78997
|
+
// by _configuringMask above) could otherwise trigger handleInput →
|
|
78998
|
+
// processCreditCard → configureAutoFormatting before the outer call's
|
|
78999
|
+
// set value has finished its alignCursor pass.
|
|
78663
79000
|
if (this._configuringMask) return;
|
|
78664
79001
|
this._configuringMask = true;
|
|
78665
79002
|
try {
|
|
78666
|
-
// Destroy any prior mask so IMask can attach fresh under the new format.
|
|
78667
79003
|
if (this.maskInstance) {
|
|
78668
79004
|
this.maskInstance.destroy();
|
|
78669
79005
|
}
|
|
78670
79006
|
|
|
79007
|
+
// Pass new format to util
|
|
78671
79008
|
this.util.updateFormat(this.format);
|
|
78672
79009
|
|
|
78673
79010
|
const maskOptions = this.util.getMaskOptions(this.type, this.format);
|
|
78674
79011
|
|
|
78675
79012
|
if (this.inputElement && maskOptions.mask) {
|
|
78676
|
-
// Capture the current display so it can be re-applied after IMask
|
|
78677
|
-
// attaches. The restore at the bottom goes through maskInstance.value
|
|
78678
|
-
// (not inputElement.value directly) so the mask's internal state and
|
|
78679
|
-
// the input's displayed text stay in lock-step.
|
|
78680
|
-
let existingValue = this.inputElement.value;
|
|
78681
79013
|
|
|
78682
|
-
//
|
|
78683
|
-
//
|
|
78684
|
-
//
|
|
78685
|
-
//
|
|
79014
|
+
// Stash and clear any existing value before IMask init.
|
|
79015
|
+
// IMask's constructor processes the current input value which requires
|
|
79016
|
+
// selection state — clearing first avoids that scenario entirely.
|
|
79017
|
+
// When the format changes (e.g. locale switch) and we have a valid ISO
|
|
79018
|
+
// model value, compute the display string for the NEW format instead of
|
|
79019
|
+
// re-using the old display string, which may be invalid in the new mask.
|
|
79020
|
+
let existingValue = this.inputElement.value;
|
|
78686
79021
|
if (
|
|
78687
79022
|
this.util.isFullDateFormat(this.type, this.format) &&
|
|
78688
79023
|
this.value &&
|
|
78689
|
-
this.
|
|
79024
|
+
dateFormatter.isValidDate(this.value) &&
|
|
79025
|
+
this.valueObject instanceof Date &&
|
|
79026
|
+
!Number.isNaN(this.valueObject.getTime()) &&
|
|
78690
79027
|
typeof maskOptions.format === 'function'
|
|
78691
79028
|
) {
|
|
78692
79029
|
existingValue = maskOptions.format(this.valueObject);
|
|
78693
79030
|
}
|
|
78694
79031
|
|
|
78695
|
-
// Clear before IMask attaches so the constructor seeds an empty
|
|
78696
|
-
// internal value. Otherwise IMask reads the stale unmasked string
|
|
78697
|
-
// and emits a spurious 'accept' before the restore below runs.
|
|
78698
79032
|
this.skipNextProgrammaticInputEvent = true;
|
|
78699
79033
|
this.inputElement.value = '';
|
|
78700
79034
|
|
|
78701
79035
|
this.maskInstance = IMask(this.inputElement, maskOptions);
|
|
78702
79036
|
|
|
78703
|
-
// Mask fires 'accept' on every value change, including the restore
|
|
78704
|
-
// step below. Skip events fired during configureAutoFormatting so
|
|
78705
|
-
// we don't overwrite a value the parent just pushed.
|
|
78706
79037
|
this.maskInstance.on('accept', () => {
|
|
79038
|
+
// Suppress propagation during configureAutoFormatting's own value-restoration
|
|
79039
|
+
// (line below) — the mask emits 'accept' on every value-set, including ours,
|
|
79040
|
+
// and we don't want to overwrite a value the parent just pushed.
|
|
78707
79041
|
if (this._configuringMask) return;
|
|
78708
79042
|
this.value = this.util.toModelValue(this.maskInstance.value, this.format);
|
|
78709
79043
|
if (this.type === "date") {
|
|
@@ -78711,8 +79045,6 @@ class BaseInput extends AuroElement$1$1 {
|
|
|
78711
79045
|
}
|
|
78712
79046
|
});
|
|
78713
79047
|
|
|
78714
|
-
// Mask fires 'complete' on the restore step below for any value that
|
|
78715
|
-
// happens to be a complete match. Same setup-suppression as 'accept'.
|
|
78716
79048
|
this.maskInstance.on('complete', () => {
|
|
78717
79049
|
if (this._configuringMask) return;
|
|
78718
79050
|
this.value = this.util.toModelValue(this.maskInstance.value, this.format);
|
|
@@ -78721,9 +79053,7 @@ class BaseInput extends AuroElement$1$1 {
|
|
|
78721
79053
|
}
|
|
78722
79054
|
});
|
|
78723
79055
|
|
|
78724
|
-
//
|
|
78725
|
-
// the mask reformats it under the new rules and keeps its internal
|
|
78726
|
-
// _value aligned with the input's displayed text.
|
|
79056
|
+
// Restore the stashed value through IMask so it's properly masked
|
|
78727
79057
|
if (existingValue) {
|
|
78728
79058
|
this.maskInstance.value = existingValue;
|
|
78729
79059
|
}
|
|
@@ -78891,6 +79221,7 @@ class BaseInput extends AuroElement$1$1 {
|
|
|
78891
79221
|
*/
|
|
78892
79222
|
reset() {
|
|
78893
79223
|
this.value = undefined;
|
|
79224
|
+
this.setDateObjectProperty('valueObject', undefined);
|
|
78894
79225
|
this.validation.reset(this);
|
|
78895
79226
|
}
|
|
78896
79227
|
|
|
@@ -78899,6 +79230,7 @@ class BaseInput extends AuroElement$1$1 {
|
|
|
78899
79230
|
*/
|
|
78900
79231
|
clear() {
|
|
78901
79232
|
this.value = undefined;
|
|
79233
|
+
this.setDateObjectProperty('valueObject', undefined);
|
|
78902
79234
|
}
|
|
78903
79235
|
|
|
78904
79236
|
/**
|
|
@@ -79427,7 +79759,7 @@ let AuroHelpText$1$1 = class AuroHelpText extends i$3 {
|
|
|
79427
79759
|
}
|
|
79428
79760
|
};
|
|
79429
79761
|
|
|
79430
|
-
var formkitVersion$1$1 = '
|
|
79762
|
+
var formkitVersion$1$1 = '202606192121';
|
|
79431
79763
|
|
|
79432
79764
|
// Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
|
|
79433
79765
|
// See LICENSE in the project root for license information.
|
|
@@ -80548,7 +80880,7 @@ let AuroBibtemplate$1 = class AuroBibtemplate extends i$3 {
|
|
|
80548
80880
|
}
|
|
80549
80881
|
};
|
|
80550
80882
|
|
|
80551
|
-
var formkitVersion$3 = '
|
|
80883
|
+
var formkitVersion$3 = '202606192121';
|
|
80552
80884
|
|
|
80553
80885
|
var styleCss$1$3 = i$6`.util_displayInline{display:inline}.util_displayInlineBlock{display:inline-block}.util_displayBlock{display:block}.util_displayFlex{display:flex}.util_displayHidden{display:none}.util_displayHiddenVisually{position:absolute;overflow:hidden;clip:rect(1px, 1px, 1px, 1px);width:1px;height:1px;padding:0;border:0}:host{display:block;text-align:left}:host [auro-dropdown]{--ds-auro-dropdown-trigger-background-color: transparent}:host #inputInBib::part(wrapper){box-shadow:none}:host #inputInBib::part(accent-left){display:none}:host([layout*=classic]) [auro-input]{width:100%}:host([layout*=classic]) [auro-input]::part(helpText){display:none}:host([layout*=classic]) #slotHolder{display:none}`;
|
|
80554
80886
|
|
|
@@ -81535,7 +81867,7 @@ class AuroCombobox extends AuroElement$3 {
|
|
|
81535
81867
|
if (this.menu) {
|
|
81536
81868
|
this.menu.matchWord = normalizeFilterValue(this.input.value);
|
|
81537
81869
|
}
|
|
81538
|
-
const label = getOptionLabel(this.menu.optionSelected);
|
|
81870
|
+
const label = getOptionLabel(this.menu.optionSelected) || this.menu.currentLabel;
|
|
81539
81871
|
this.updateTriggerTextDisplay(label || this.value);
|
|
81540
81872
|
}
|
|
81541
81873
|
|
|
@@ -81549,9 +81881,40 @@ class AuroCombobox extends AuroElement$3 {
|
|
|
81549
81881
|
// in suggestion mode, do not override input value if no selection has been made and the input currently has focus
|
|
81550
81882
|
const isInputFocusedWithNoSelection = !this.menu.value && (this.input.matches(':focus-within') || (this.inputInBib && this.inputInBib.matches(':focus-within')));
|
|
81551
81883
|
|
|
81552
|
-
|
|
81553
|
-
|
|
81554
|
-
|
|
81884
|
+
if (!this.persistInput && !(this.behavior === 'suggestion' && isInputFocusedWithNoSelection)) {
|
|
81885
|
+
const nextValue = label || this.value;
|
|
81886
|
+
// Only set the flag when there's an actual write to suppress —
|
|
81887
|
+
// syncValuesAndStates re-enters here during typing when both inputs
|
|
81888
|
+
// already match, and a no-op flag flip would make the bib branch's
|
|
81889
|
+
// bail eat legitimate user-input events.
|
|
81890
|
+
const triggerNeedsSync = this.input.value !== nextValue;
|
|
81891
|
+
const bibNeedsSync = Boolean(this.inputInBib && this.inputInBib !== this.input && this.inputInBib.value !== nextValue);
|
|
81892
|
+
if (triggerNeedsSync || bibNeedsSync) {
|
|
81893
|
+
this._syncingDisplayValue = true;
|
|
81894
|
+
if (triggerNeedsSync) {
|
|
81895
|
+
this.input.value = nextValue;
|
|
81896
|
+
}
|
|
81897
|
+
if (bibNeedsSync) {
|
|
81898
|
+
this.inputInBib.value = nextValue;
|
|
81899
|
+
}
|
|
81900
|
+
const pending = [];
|
|
81901
|
+
if (triggerNeedsSync) {
|
|
81902
|
+
pending.push(this.input.updateComplete);
|
|
81903
|
+
}
|
|
81904
|
+
if (bibNeedsSync) {
|
|
81905
|
+
pending.push(this.inputInBib.updateComplete);
|
|
81906
|
+
}
|
|
81907
|
+
Promise.all(pending).then(() => {
|
|
81908
|
+
// imask reasserts otherwise, and handleBlur reverts to its stale value.
|
|
81909
|
+
if (triggerNeedsSync && this.input.maskInstance && typeof this.input.maskInstance.updateValue === 'function') {
|
|
81910
|
+
this.input.maskInstance.updateValue();
|
|
81911
|
+
}
|
|
81912
|
+
if (bibNeedsSync && this.inputInBib && this.inputInBib.maskInstance && typeof this.inputInBib.maskInstance.updateValue === 'function') {
|
|
81913
|
+
this.inputInBib.maskInstance.updateValue();
|
|
81914
|
+
}
|
|
81915
|
+
this._syncingDisplayValue = false;
|
|
81916
|
+
});
|
|
81917
|
+
}
|
|
81555
81918
|
}
|
|
81556
81919
|
|
|
81557
81920
|
// update the displayValue in the trigger if displayValue slot content is present
|
|
@@ -81579,52 +81942,6 @@ class AuroCombobox extends AuroElement$3 {
|
|
|
81579
81942
|
this.requestUpdate();
|
|
81580
81943
|
}
|
|
81581
81944
|
|
|
81582
|
-
/**
|
|
81583
|
-
* Writes nextValue to the trigger input and the bib input when their current
|
|
81584
|
-
* value differs, then re-asserts imask after Lit's update flushes.
|
|
81585
|
-
* @param {string} nextValue - The value to write to both inputs.
|
|
81586
|
-
* @returns {Promise<void> | null} Promise that resolves after the inputs flush,
|
|
81587
|
-
* or null when no sync was needed (so callers can skip post-flush work).
|
|
81588
|
-
* @private
|
|
81589
|
-
*/
|
|
81590
|
-
syncInputValuesAcrossTriggerAndBib(nextValue) {
|
|
81591
|
-
// Only set the flag when there's an actual write to suppress —
|
|
81592
|
-
// syncValuesAndStates re-enters here during typing when both inputs
|
|
81593
|
-
// already match, and a no-op flag flip would make the bib branch's
|
|
81594
|
-
// bail eat legitimate user-input events.
|
|
81595
|
-
const triggerNeedsSync = this.input.value !== nextValue;
|
|
81596
|
-
const bibNeedsSync = Boolean(this.inputInBib && this.inputInBib !== this.input && this.inputInBib.value !== nextValue);
|
|
81597
|
-
if (!triggerNeedsSync && !bibNeedsSync) {
|
|
81598
|
-
return null;
|
|
81599
|
-
}
|
|
81600
|
-
|
|
81601
|
-
this._syncingDisplayValue = true;
|
|
81602
|
-
if (triggerNeedsSync) {
|
|
81603
|
-
this.input.value = nextValue;
|
|
81604
|
-
}
|
|
81605
|
-
if (bibNeedsSync) {
|
|
81606
|
-
this.inputInBib.value = nextValue;
|
|
81607
|
-
}
|
|
81608
|
-
|
|
81609
|
-
const pending = [];
|
|
81610
|
-
if (triggerNeedsSync) {
|
|
81611
|
-
pending.push(this.input.updateComplete);
|
|
81612
|
-
}
|
|
81613
|
-
if (bibNeedsSync) {
|
|
81614
|
-
pending.push(this.inputInBib.updateComplete);
|
|
81615
|
-
}
|
|
81616
|
-
return Promise.all(pending).then(() => {
|
|
81617
|
-
// imask reasserts otherwise, and handleBlur reverts to its stale value.
|
|
81618
|
-
if (triggerNeedsSync && this.input.maskInstance && typeof this.input.maskInstance.updateValue === 'function') {
|
|
81619
|
-
this.input.maskInstance.updateValue();
|
|
81620
|
-
}
|
|
81621
|
-
if (bibNeedsSync && this.inputInBib && this.inputInBib.maskInstance && typeof this.inputInBib.maskInstance.updateValue === 'function') {
|
|
81622
|
-
this.inputInBib.maskInstance.updateValue();
|
|
81623
|
-
}
|
|
81624
|
-
this._syncingDisplayValue = false;
|
|
81625
|
-
});
|
|
81626
|
-
}
|
|
81627
|
-
|
|
81628
81945
|
/**
|
|
81629
81946
|
* Processes hidden state of all menu options and determines if there are any available options not hidden.
|
|
81630
81947
|
* @private
|
|
@@ -81652,9 +81969,9 @@ class AuroCombobox extends AuroElement$3 {
|
|
|
81652
81969
|
this.syncValuesAndStates();
|
|
81653
81970
|
}
|
|
81654
81971
|
|
|
81655
|
-
// Re-activate when optionActive is
|
|
81656
|
-
//
|
|
81657
|
-
//
|
|
81972
|
+
// Re-activate when optionActive is no longer visible, or when _index has
|
|
81973
|
+
// been reset (e.g. by clearSelection in an async update) so that
|
|
81974
|
+
// makeSelection() can find the correct option.
|
|
81658
81975
|
if (!this.availableOptions.includes(this.menu.optionActive) || this.menu._index < 0) {
|
|
81659
81976
|
this.activateFirstEnabledAvailableOption();
|
|
81660
81977
|
}
|
|
@@ -81788,25 +82105,28 @@ class AuroCombobox extends AuroElement$3 {
|
|
|
81788
82105
|
|
|
81789
82106
|
guardTouchPassthrough$1(this.menu);
|
|
81790
82107
|
|
|
81791
|
-
// showModal()
|
|
81792
|
-
//
|
|
81793
|
-
//
|
|
81794
|
-
// validation guard.
|
|
82108
|
+
// The dialog's showModal() steals focus from the trigger.
|
|
82109
|
+
// A single rAF is enough for the dialog DOM to be painted and
|
|
82110
|
+
// focusable, then doubleRaf finalizes the transition.
|
|
81795
82111
|
requestAnimationFrame(() => {
|
|
81796
82112
|
this.setInputFocus();
|
|
81797
82113
|
});
|
|
81798
|
-
|
|
81799
|
-
|
|
81800
|
-
|
|
81801
|
-
// The shared doubleRaf below parks the caret back at end-of-text
|
|
81802
|
-
// after the dropdown layout settles.
|
|
81803
|
-
|
|
81804
|
-
doubleRaf$1(() => {
|
|
81805
|
-
this.setInputFocus();
|
|
81806
|
-
if (this._inFullscreenTransition) {
|
|
82114
|
+
|
|
82115
|
+
doubleRaf$1(() => {
|
|
82116
|
+
this.setInputFocus();
|
|
81807
82117
|
this._inFullscreenTransition = false;
|
|
81808
|
-
}
|
|
81809
|
-
}
|
|
82118
|
+
});
|
|
82119
|
+
} else {
|
|
82120
|
+
// Desktop popover-open: restore the trigger caret to end-of-text.
|
|
82121
|
+
// Clicking the trigger lands on auro-input's floating <label for="…">
|
|
82122
|
+
// overlay; Chrome resets the native input's selection to [0, 0] on
|
|
82123
|
+
// label-focus before any JS runs. setInputFocus()'s non-fullscreen
|
|
82124
|
+
// branch parks the caret at end. doubleRaf lets the dropdown layout
|
|
82125
|
+
// settle first, matching the fullscreen branch timing.
|
|
82126
|
+
doubleRaf$1(() => {
|
|
82127
|
+
this.setInputFocus();
|
|
82128
|
+
});
|
|
82129
|
+
}
|
|
81810
82130
|
}
|
|
81811
82131
|
});
|
|
81812
82132
|
|
|
@@ -81913,9 +82233,9 @@ class AuroCombobox extends AuroElement$3 {
|
|
|
81913
82233
|
} else {
|
|
81914
82234
|
// Safety net for the strategy-change setTimeout: a viewport-crossing
|
|
81915
82235
|
// fullscreen→floating switch can close the dialog and leave focus on
|
|
81916
|
-
// body. Every other
|
|
81917
|
-
//
|
|
81918
|
-
//
|
|
82236
|
+
// body. Every other Branch 2 callsite already has focus on the input
|
|
82237
|
+
// via the focusin → this.focus() redirect (L1448-1452), so this is a
|
|
82238
|
+
// no-op in the common case.
|
|
81919
82239
|
if (!this.input.componentHasFocus) {
|
|
81920
82240
|
this.input.focus();
|
|
81921
82241
|
}
|
|
@@ -82034,7 +82354,7 @@ class AuroCombobox extends AuroElement$3 {
|
|
|
82034
82354
|
if (this.menu.optionSelected) {
|
|
82035
82355
|
const selected = this.menu.optionSelected;
|
|
82036
82356
|
|
|
82037
|
-
if (this.optionSelected !== selected) {
|
|
82357
|
+
if (!this.optionSelected || this.optionSelected !== selected) {
|
|
82038
82358
|
this.optionSelected = selected;
|
|
82039
82359
|
}
|
|
82040
82360
|
|
|
@@ -82047,7 +82367,7 @@ class AuroCombobox extends AuroElement$3 {
|
|
|
82047
82367
|
}
|
|
82048
82368
|
|
|
82049
82369
|
// Update display
|
|
82050
|
-
this.updateTriggerTextDisplay(getOptionLabel(this.optionSelected));
|
|
82370
|
+
this.updateTriggerTextDisplay(getOptionLabel(this.optionSelected) || this.menu.value);
|
|
82051
82371
|
|
|
82052
82372
|
// Update match word for filtering
|
|
82053
82373
|
const trimmedInput = normalizeFilterValue(this.input.value);
|
|
@@ -82065,15 +82385,11 @@ class AuroCombobox extends AuroElement$3 {
|
|
|
82065
82385
|
|
|
82066
82386
|
// Announce the selection after the dropdown closes so it isn't
|
|
82067
82387
|
// overridden by VoiceOver's "collapsed" announcement from aria-expanded.
|
|
82068
|
-
// Skip when there's no selected value (e.g. menu.clearSelection() from
|
|
82069
|
-
// the unmatched-value path), otherwise VoiceOver reads "undefined".
|
|
82070
82388
|
const selectedValue = this.menu.value;
|
|
82071
|
-
|
|
82072
|
-
|
|
82073
|
-
|
|
82074
|
-
|
|
82075
|
-
}, announcementDelay);
|
|
82076
|
-
}
|
|
82389
|
+
const announcementDelay = 300;
|
|
82390
|
+
setTimeout(() => {
|
|
82391
|
+
announceToScreenReader$1(this._getAnnouncementRoot(), `${selectedValue}, selected`);
|
|
82392
|
+
}, announcementDelay);
|
|
82077
82393
|
}
|
|
82078
82394
|
|
|
82079
82395
|
// Programmatic value syncs leave availableOptions stale because
|
|
@@ -82433,7 +82749,15 @@ class AuroCombobox extends AuroElement$3 {
|
|
|
82433
82749
|
this.menu.value = undefined;
|
|
82434
82750
|
this.validation.reset(this);
|
|
82435
82751
|
this.touched = false;
|
|
82752
|
+
// Force validity back to the cleared state. validation.reset() calls
|
|
82753
|
+
// validate() at the end, and (post-credit-card-fix) the trigger input's
|
|
82754
|
+
// residual validity may still be copied into the combobox by the
|
|
82755
|
+
// auroInputElements loop. Explicitly clear here so reset() actually
|
|
82756
|
+
// leaves the component in a "no validity" state.
|
|
82436
82757
|
this.validity = undefined;
|
|
82758
|
+
this.errorMessage = '';
|
|
82759
|
+
this.input.validity = undefined;
|
|
82760
|
+
this.input.errorMessage = '';
|
|
82437
82761
|
}
|
|
82438
82762
|
|
|
82439
82763
|
/**
|
|
@@ -82486,27 +82810,52 @@ class AuroCombobox extends AuroElement$3 {
|
|
|
82486
82810
|
this.input.value = this.value;
|
|
82487
82811
|
}
|
|
82488
82812
|
|
|
82489
|
-
// Sync menu.value only when an option actually matches
|
|
82490
|
-
// mode needs setMenuValue to dispatch auroMenu-selectValueFailure (the
|
|
82491
|
-
// listener at line 1206 clears combobox.value, mirroring select's
|
|
82492
|
-
// pattern). Otherwise sync the input display for freeform values.
|
|
82813
|
+
// Sync menu.value only when an option actually matches; otherwise clear it.
|
|
82493
82814
|
if (this.menu.options && this.menu.options.length > 0) {
|
|
82494
|
-
if (this.menu.options.some((opt) => opt.value === this.value)
|
|
82815
|
+
if (this.menu.options.some((opt) => opt.value === this.value)) {
|
|
82816
|
+
this.setMenuValue(this.value);
|
|
82817
|
+
} else if (this.behavior === 'filter') {
|
|
82818
|
+
// In filter mode, freeform values aren't allowed. Push the unmatched
|
|
82819
|
+
// value through setMenuValue so menu dispatches auroMenu-selectValueFailure
|
|
82820
|
+
// and the listener at line 1206 clears combobox.value (mirrors select's
|
|
82821
|
+
// pattern). Bypassing setMenuValue here would skip the failure cascade.
|
|
82495
82822
|
this.setMenuValue(this.value);
|
|
82496
82823
|
} else {
|
|
82497
|
-
|
|
82498
|
-
|
|
82499
|
-
// as menu.optionSelected; a later auroMenu-selectedOption event
|
|
82500
|
-
// would then write its stale .value back into combobox.value.
|
|
82501
|
-
if (this.menu.value || this.menu.optionSelected) {
|
|
82502
|
-
this.menu.clearSelection();
|
|
82824
|
+
if (this.menu.value) {
|
|
82825
|
+
this.menu.value = undefined;
|
|
82503
82826
|
}
|
|
82504
|
-
//
|
|
82505
|
-
//
|
|
82506
|
-
//
|
|
82507
|
-
|
|
82508
|
-
|
|
82509
|
-
|
|
82827
|
+
// Sync the display for programmatic freeform value changes (e.g. the
|
|
82828
|
+
// swap-values pattern). Guard with _syncingDisplayValue so that the
|
|
82829
|
+
// re-entrant input event from base-input.notifyValueChanged() is
|
|
82830
|
+
// ignored by handleInputValueChange. Skip the sync when input already
|
|
82831
|
+
// matches to avoid spurious events during the normal typing path.
|
|
82832
|
+
const nextValue = this.value || '';
|
|
82833
|
+
const triggerNeedsSync = this.input.value !== nextValue;
|
|
82834
|
+
const bibNeedsSync = Boolean(this.inputInBib && this.inputInBib !== this.input && this.inputInBib.value !== nextValue);
|
|
82835
|
+
if (triggerNeedsSync || bibNeedsSync) {
|
|
82836
|
+
this._syncingDisplayValue = true;
|
|
82837
|
+
if (triggerNeedsSync) {
|
|
82838
|
+
this.input.value = nextValue;
|
|
82839
|
+
}
|
|
82840
|
+
if (bibNeedsSync) {
|
|
82841
|
+
this.inputInBib.value = nextValue;
|
|
82842
|
+
}
|
|
82843
|
+
const pending = [];
|
|
82844
|
+
if (triggerNeedsSync) {
|
|
82845
|
+
pending.push(this.input.updateComplete);
|
|
82846
|
+
}
|
|
82847
|
+
if (bibNeedsSync) {
|
|
82848
|
+
pending.push(this.inputInBib.updateComplete);
|
|
82849
|
+
}
|
|
82850
|
+
Promise.all(pending).then(() => {
|
|
82851
|
+
if (triggerNeedsSync && this.input.maskInstance && typeof this.input.maskInstance.updateValue === 'function') {
|
|
82852
|
+
this.input.maskInstance.updateValue();
|
|
82853
|
+
}
|
|
82854
|
+
if (bibNeedsSync && this.inputInBib && this.inputInBib.maskInstance && typeof this.inputInBib.maskInstance.updateValue === 'function') {
|
|
82855
|
+
this.inputInBib.maskInstance.updateValue();
|
|
82856
|
+
}
|
|
82857
|
+
this._syncingDisplayValue = false;
|
|
82858
|
+
// handleInputValueChange bailed on the flag — refresh the filter.
|
|
82510
82859
|
this._programmaticFilterRefresh = true;
|
|
82511
82860
|
this.handleMenuOptions();
|
|
82512
82861
|
setTimeout(() => {
|
|
@@ -83295,8 +83644,8 @@ class AuroMenu extends AuroElement$2 {
|
|
|
83295
83644
|
// Malformed JSON (e.g. a literal string that happens to start with "[") falls back
|
|
83296
83645
|
// to a single-item array rather than throwing during render.
|
|
83297
83646
|
try {
|
|
83298
|
-
|
|
83299
|
-
return
|
|
83647
|
+
// any valid JSON starting with `[` ALWAYS parses to an array
|
|
83648
|
+
return JSON.parse(this.value);
|
|
83300
83649
|
} catch {
|
|
83301
83650
|
return [this.value];
|
|
83302
83651
|
}
|
|
@@ -89339,7 +89688,7 @@ let AuroHelpText$1 = class AuroHelpText extends i$3 {
|
|
|
89339
89688
|
}
|
|
89340
89689
|
};
|
|
89341
89690
|
|
|
89342
|
-
var formkitVersion$1 = '
|
|
89691
|
+
var formkitVersion$1 = '202606192121';
|
|
89343
89692
|
|
|
89344
89693
|
class AuroElement extends i$3 {
|
|
89345
89694
|
static get properties() {
|
|
@@ -91352,7 +91701,7 @@ class AuroHelpText extends i$3 {
|
|
|
91352
91701
|
}
|
|
91353
91702
|
}
|
|
91354
91703
|
|
|
91355
|
-
var formkitVersion = '
|
|
91704
|
+
var formkitVersion = '202606192121';
|
|
91356
91705
|
|
|
91357
91706
|
var styleCss = i$6`.util_displayInline{display:inline}.util_displayInlineBlock{display:inline-block}.util_displayBlock{display:block}.util_displayFlex{display:flex}.util_displayHidden{display:none}.util_displayHiddenVisually{position:absolute;overflow:hidden;clip:rect(1px, 1px, 1px, 1px);width:1px;height:1px;padding:0;border:0}.body-default{font-size:var(--wcss-body-default-font-size, 1rem);font-weight:var(--wcss-body-default-weight, );line-height:var(--wcss-body-default-line-height, 1.5rem)}.body-default,.body-default-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-default-emphasized{font-size:var(--wcss-body-default-emphasized-font-size, 1rem);font-weight:var(--wcss-body-default-emphasized-weight, );line-height:var(--wcss-body-default-emphasized-line-height, 1.5rem)}.body-lg{font-size:var(--wcss-body-lg-font-size, 1.125rem);font-weight:var(--wcss-body-lg-weight, );line-height:var(--wcss-body-lg-line-height, 1.625rem)}.body-lg,.body-lg-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-lg-emphasized{font-size:var(--wcss-body-lg-emphasized-font-size, 1.125rem);font-weight:var(--wcss-body-lg-emphasized-weight, );line-height:var(--wcss-body-lg-emphasized-line-height, 1.625rem)}.body-sm{font-size:var(--wcss-body-sm-font-size, 0.875rem);font-weight:var(--wcss-body-sm-weight, );line-height:var(--wcss-body-sm-line-height, 1.25rem)}.body-sm,.body-sm-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-sm-emphasized{font-size:var(--wcss-body-sm-emphasized-font-size, 0.875rem);font-weight:var(--wcss-body-sm-emphasized-weight, );line-height:var(--wcss-body-sm-emphasized-line-height, 1.25rem)}.body-xs{font-size:var(--wcss-body-xs-font-size, 0.75rem);font-weight:var(--wcss-body-xs-weight, );line-height:var(--wcss-body-xs-line-height, 1rem)}.body-xs,.body-xs-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-xs-emphasized{font-size:var(--wcss-body-xs-emphasized-font-size, 0.75rem);font-weight:var(--wcss-body-xs-emphasized-weight, );line-height:var(--wcss-body-xs-emphasized-line-height, 1rem)}.body-2xs{font-size:var(--wcss-body-2xs-font-size, 0.625rem);font-weight:var(--wcss-body-2xs-weight, );line-height:var(--wcss-body-2xs-line-height, 0.875rem)}.body-2xs,.body-2xs-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-2xs-emphasized{font-size:var(--wcss-body-2xs-emphasized-font-size, 0.625rem);font-weight:var(--wcss-body-2xs-emphasized-weight, );line-height:var(--wcss-body-2xs-emphasized-line-height, 0.875rem)}.display-2xl{font-family:var(--wcss-display-2xl-family, "AS Circular"),var(--wcss-display-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-2xl-font-size, clamp(3.5rem, 6vw, 5.375rem));font-weight:var(--wcss-display-2xl-weight, 300);letter-spacing:var(--wcss-display-2xl-letter-spacing, 0);line-height:var(--wcss-display-2xl-line-height, 1.3)}.display-xl{font-family:var(--wcss-display-xl-family, "AS Circular"),var(--wcss-display-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-xl-font-size, clamp(3rem, 5.3333333333vw, 4.5rem));font-weight:var(--wcss-display-xl-weight, 300);letter-spacing:var(--wcss-display-xl-letter-spacing, 0);line-height:var(--wcss-display-xl-line-height, 1.3)}.display-lg{font-family:var(--wcss-display-lg-family, "AS Circular"),var(--wcss-display-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-lg-font-size, clamp(2.75rem, 4.6666666667vw, 4rem));font-weight:var(--wcss-display-lg-weight, 300);letter-spacing:var(--wcss-display-lg-letter-spacing, 0);line-height:var(--wcss-display-lg-line-height, 1.3)}.display-md{font-family:var(--wcss-display-md-family, "AS Circular"),var(--wcss-display-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-md-font-size, clamp(2.5rem, 4vw, 3.5rem));font-weight:var(--wcss-display-md-weight, 300);letter-spacing:var(--wcss-display-md-letter-spacing, 0);line-height:var(--wcss-display-md-line-height, 1.3)}.display-sm{font-family:var(--wcss-display-sm-family, "AS Circular"),var(--wcss-display-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-sm-font-size, clamp(2rem, 3.6666666667vw, 3rem));font-weight:var(--wcss-display-sm-weight, 300);letter-spacing:var(--wcss-display-sm-letter-spacing, 0);line-height:var(--wcss-display-sm-line-height, 1.3)}.display-xs{font-family:var(--wcss-display-xs-family, "AS Circular"),var(--wcss-display-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-xs-font-size, clamp(1.75rem, 3vw, 2.375rem));font-weight:var(--wcss-display-xs-weight, 300);letter-spacing:var(--wcss-display-xs-letter-spacing, 0);line-height:var(--wcss-display-xs-line-height, 1.3)}.heading-xl{font-family:var(--wcss-heading-xl-family, "AS Circular"),var(--wcss-heading-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-xl-font-size, clamp(2rem, 3vw, 2.5rem));font-weight:var(--wcss-heading-xl-weight, 300);letter-spacing:var(--wcss-heading-xl-letter-spacing, 0);line-height:var(--wcss-heading-xl-line-height, 1.3)}.heading-lg{font-family:var(--wcss-heading-lg-family, "AS Circular"),var(--wcss-heading-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-lg-font-size, clamp(1.75rem, 2.6666666667vw, 2.25rem));font-weight:var(--wcss-heading-lg-weight, 300);letter-spacing:var(--wcss-heading-lg-letter-spacing, 0);line-height:var(--wcss-heading-lg-line-height, 1.3)}.heading-md{font-family:var(--wcss-heading-md-family, "AS Circular"),var(--wcss-heading-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-md-font-size, clamp(1.625rem, 2.3333333333vw, 1.75rem));font-weight:var(--wcss-heading-md-weight, 300);letter-spacing:var(--wcss-heading-md-letter-spacing, 0);line-height:var(--wcss-heading-md-line-height, 1.3)}.heading-sm{font-family:var(--wcss-heading-sm-family, "AS Circular"),var(--wcss-heading-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-sm-font-size, clamp(1.375rem, 2vw, 1.5rem));font-weight:var(--wcss-heading-sm-weight, 300);letter-spacing:var(--wcss-heading-sm-letter-spacing, 0);line-height:var(--wcss-heading-sm-line-height, 1.3)}.heading-xs{font-family:var(--wcss-heading-xs-family, "AS Circular"),var(--wcss-heading-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-xs-font-size, clamp(1.25rem, 1.6666666667vw, 1.25rem));font-weight:var(--wcss-heading-xs-weight, 300);letter-spacing:var(--wcss-heading-xs-letter-spacing, 0);line-height:var(--wcss-heading-xs-line-height, 1.3)}.heading-2xs{font-family:var(--wcss-heading-2xs-family, "AS Circular"),var(--wcss-heading-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-2xs-font-size, clamp(1.125rem, 1.5vw, 1.125rem));font-weight:var(--wcss-heading-2xs-weight, 300);letter-spacing:var(--wcss-heading-2xs-letter-spacing, 0);line-height:var(--wcss-heading-2xs-line-height, 1.3)}.accent-2xl{font-family:var(--wcss-accent-2xl-family, "Good OT"),var(--wcss-accent-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-2xl-font-size, clamp(2rem, 3.1666666667vw, 2.375rem));font-weight:var(--wcss-accent-2xl-weight, 450);letter-spacing:var(--wcss-accent-2xl-letter-spacing, 0.05em);line-height:var(--wcss-accent-2xl-line-height, 1)}.accent-2xl,.accent-xl{text-transform:uppercase}.accent-xl{font-family:var(--wcss-accent-xl-family, "Good OT"),var(--wcss-accent-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-xl-font-size, clamp(1.625rem, 2.3333333333vw, 2rem));font-weight:var(--wcss-accent-xl-weight, 450);letter-spacing:var(--wcss-accent-xl-letter-spacing, 0.05em);line-height:var(--wcss-accent-xl-line-height, 1.3)}.accent-lg{font-family:var(--wcss-accent-lg-family, "Good OT"),var(--wcss-accent-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-lg-font-size, clamp(1.5rem, 2.1666666667vw, 1.75rem));font-weight:var(--wcss-accent-lg-weight, 450);letter-spacing:var(--wcss-accent-lg-letter-spacing, 0.05em);line-height:var(--wcss-accent-lg-line-height, 1.3)}.accent-lg,.accent-md{text-transform:uppercase}.accent-md{font-family:var(--wcss-accent-md-family, "Good OT"),var(--wcss-accent-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-md-font-size, clamp(1.375rem, 1.8333333333vw, 1.5rem));font-weight:var(--wcss-accent-md-weight, 500);letter-spacing:var(--wcss-accent-md-letter-spacing, 0.05em);line-height:var(--wcss-accent-md-line-height, 1.3)}.accent-sm{font-family:var(--wcss-accent-sm-family, "Good OT"),var(--wcss-accent-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-sm-font-size, clamp(1.125rem, 1.5vw, 1.25rem));font-weight:var(--wcss-accent-sm-weight, 500);letter-spacing:var(--wcss-accent-sm-letter-spacing, 0.05em);line-height:var(--wcss-accent-sm-line-height, 1.3)}.accent-sm,.accent-xs{text-transform:uppercase}.accent-xs{font-family:var(--wcss-accent-xs-family, "Good OT"),var(--wcss-accent-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-xs-font-size, clamp(1rem, 1.3333333333vw, 1rem));font-weight:var(--wcss-accent-xs-weight, 500);letter-spacing:var(--wcss-accent-xs-letter-spacing, 0.1em);line-height:var(--wcss-accent-xs-line-height, 1.3)}.accent-2xs{font-family:var(--wcss-accent-2xs-family, "Good OT"),var(--wcss-accent-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-2xs-font-size, clamp(0.875rem, 1.1666666667vw, 0.875rem));font-weight:var(--wcss-accent-2xs-weight, 450);letter-spacing:var(--wcss-accent-2xs-letter-spacing, 0.1em);line-height:var(--wcss-accent-2xs-line-height, 1.3);text-transform:uppercase}[auro-dropdown]{--ds-auro-dropdown-trigger-border-color: var(--ds-auro-select-border-color);--ds-auro-dropdown-trigger-background-color: var(--ds-auro-select-background-color);--ds-auro-dropdown-trigger-container-color: var(--ds-auro-select-background-color);--ds-auro-dropdown-trigger-outline-color: var(--ds-auro-select-outline-color)}:host{display:inline-block;text-align:left;vertical-align:top}:host([layout*=emphasized]) [auro-dropdown],:host([layout*=snowflake]) [auro-dropdown]{--ds-auro-select-border-color: transparent}:host([layout*=emphasized]) .mainContent,:host([layout*=snowflake]) .mainContent{text-align:center}.mainContent{position:relative;display:flex;overflow:hidden;flex:1;flex-direction:column;align-items:center;justify-content:center}.valueContainer [slot=displayValue]{display:none}.accents{display:flex;flex-direction:row;align-items:center;justify-content:center}::slotted([slot=typeIcon]){margin-right:var(--ds-size-100, 0.5rem)}.displayValue{display:block}.displayValue:not(.force){display:none}.displayValue:not(.force).hasContent:is(.withValue):not(.hasFocus){display:block}.triggerContent{display:flex;width:100%;align-items:center;justify-content:center}:host([layout*=emphasized]) .triggerContent{padding:0 var(--ds-size-100, 0.5rem) 0 var(--ds-size-300, 1.5rem)}:host([layout*=snowflake]) .triggerContent{padding:0 var(--ds-size-100, 0.5rem) 0 var(--ds-size-200, 1rem)}:host([layout*=snowflake]) label{padding-block:var(--ds-size-25, 0.125rem)}:host([layout*=classic]) .triggerContent{padding:0 var(--ds-size-100, 0.5rem)}:host([layout*=classic]) .mainContent{align-items:start}:host([layout*=classic]) label{overflow:hidden;cursor:text;text-overflow:ellipsis;white-space:nowrap}:host([layout*=classic]) .value{height:auto}label{color:var(--ds-auro-select-label-text-color)}:host(:is([validity]:not([validity=valid]))) [auro-dropdown]{--ds-auro-select-border-color: var(--ds-basic-color-status-error, #e31f26);--ds-auro-select-outline-color: var(--ds-basic-color-status-error, #e31f26);--ds-auro-dropdown-helptext-text-color: var(--ds-basic-color-texticon-default, #2a2a2a)}:host([ondark]:is([validity]:not([validity=valid]))) [auro-dropdown],:host([appearance=inverse]:is([validity]:not([validity=valid]))) [auro-dropdown]{--ds-auro-select-border-color: var(--ds-advanced-color-state-error-inverse, #f9a4a8);--ds-auro-select-outline-color: var(--ds-advanced-color-state-error-inverse, #f9a4a8);--ds-auro-dropdown-helptext-text-color: var(--ds-basic-color-texticon-inverse, #ffffff)}#slotHolder{display:none}:host([fluid]){width:100%}:host([disabled]){pointer-events:none;user-select:none}:host([disabled]:not([ondark])) [auro-dropdown],:host([disabled]:not([appearance=inverse])) [auro-dropdown]{--ds-auro-select-border-color: var(--ds-basic-color-border-subtle, #dddddd)}:host(:not([layout*=classic])[disabled][ondark]) [auro-dropdown],:host(:not([layout*=classic])[disabled][appearance=inverse]) [auro-dropdown]{--ds-auro-select-border-color: transparent}`;
|
|
91358
91707
|
|