@aurodesignsystem-dev/auro-formkit 0.0.0-pr1506.0 → 0.0.0-pr1506.1

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.
Files changed (45) hide show
  1. package/components/checkbox/demo/customize.min.js +1 -1
  2. package/components/checkbox/demo/getting-started.min.js +1 -1
  3. package/components/checkbox/demo/index.min.js +1 -1
  4. package/components/checkbox/dist/index.js +1 -1
  5. package/components/checkbox/dist/registered.js +1 -1
  6. package/components/combobox/demo/customize.min.js +21 -130
  7. package/components/combobox/demo/getting-started.min.js +21 -130
  8. package/components/combobox/demo/index.min.js +21 -130
  9. package/components/combobox/dist/index.js +21 -130
  10. package/components/combobox/dist/registered.js +21 -130
  11. package/components/counter/demo/customize.min.js +2 -2
  12. package/components/counter/demo/index.min.js +2 -2
  13. package/components/counter/dist/index.js +2 -2
  14. package/components/counter/dist/registered.js +2 -2
  15. package/components/datepicker/demo/customize.min.js +7 -124
  16. package/components/datepicker/demo/index.min.js +7 -124
  17. package/components/datepicker/dist/index.js +7 -124
  18. package/components/datepicker/dist/registered.js +7 -124
  19. package/components/dropdown/demo/customize.min.js +1 -1
  20. package/components/dropdown/demo/getting-started.min.js +1 -1
  21. package/components/dropdown/demo/index.min.js +1 -1
  22. package/components/dropdown/dist/index.js +1 -1
  23. package/components/dropdown/dist/registered.js +1 -1
  24. package/components/form/demo/customize.min.js +39 -382
  25. package/components/form/demo/getting-started.min.js +39 -382
  26. package/components/form/demo/index.min.js +39 -382
  27. package/components/form/demo/registerDemoDeps.min.js +39 -382
  28. package/components/input/demo/customize.min.js +5 -122
  29. package/components/input/demo/getting-started.min.js +5 -122
  30. package/components/input/demo/index.min.js +5 -122
  31. package/components/input/dist/base-input.d.ts +0 -48
  32. package/components/input/dist/index.js +5 -122
  33. package/components/input/dist/registered.js +5 -122
  34. package/components/radio/demo/customize.min.js +1 -1
  35. package/components/radio/demo/getting-started.min.js +1 -1
  36. package/components/radio/demo/index.min.js +1 -1
  37. package/components/radio/dist/index.js +1 -1
  38. package/components/radio/dist/registered.js +1 -1
  39. package/components/select/demo/customize.min.js +2 -2
  40. package/components/select/demo/getting-started.min.js +2 -2
  41. package/components/select/demo/index.min.js +2 -2
  42. package/components/select/dist/index.js +2 -2
  43. package/components/select/dist/registered.js +2 -2
  44. package/custom-elements.json +0 -264
  45. package/package.json +1 -1
@@ -4888,7 +4888,7 @@ let AuroHelpText$2 = class AuroHelpText extends i$3 {
4888
4888
  }
4889
4889
  };
4890
4890
 
4891
- var formkitVersion$2 = '202606190840';
4891
+ var formkitVersion$2 = '202606192004';
4892
4892
 
4893
4893
  let AuroElement$2 = class AuroElement extends i$3 {
4894
4894
  static get properties() {
@@ -16761,10 +16761,8 @@ class BaseInput extends AuroElement$1 {
16761
16761
  this.layout = 'classic';
16762
16762
  this.locale = 'en-US';
16763
16763
  this.max = undefined;
16764
- this._maxObject = undefined;
16765
16764
  this.maxLength = undefined;
16766
16765
  this.min = undefined;
16767
- this._minObject = undefined;
16768
16766
  this.minLength = undefined;
16769
16767
  this.required = false;
16770
16768
  this.onDark = false;
@@ -16772,7 +16770,6 @@ class BaseInput extends AuroElement$1 {
16772
16770
  this.size = 'lg';
16773
16771
  this.shape = 'classic';
16774
16772
  this.value = undefined;
16775
- this._valueObject = undefined;
16776
16773
 
16777
16774
  this._initializePrivateDefaults();
16778
16775
  }
@@ -17312,7 +17309,7 @@ class BaseInput extends AuroElement$1 {
17312
17309
  * @returns {Date|undefined}
17313
17310
  */
17314
17311
  get valueObject() {
17315
- return this._valueObject || this._computeDateObjectFallback(this.value);
17312
+ return this.value && dateFormatter.isValidDate(this.value) ? dateFormatter.stringToDateInstance(this.value) : undefined;
17316
17313
  }
17317
17314
 
17318
17315
  /**
@@ -17320,7 +17317,7 @@ class BaseInput extends AuroElement$1 {
17320
17317
  * @returns {Date|undefined}
17321
17318
  */
17322
17319
  get minObject() {
17323
- return this._minObject || this._computeDateObjectFallback(this.min);
17320
+ return this.min && dateFormatter.isValidDate(this.min) ? dateFormatter.stringToDateInstance(this.min) : undefined;
17324
17321
  }
17325
17322
 
17326
17323
  /**
@@ -17328,50 +17325,7 @@ class BaseInput extends AuroElement$1 {
17328
17325
  * @returns {Date|undefined}
17329
17326
  */
17330
17327
  get maxObject() {
17331
- return this._maxObject || this._computeDateObjectFallback(this.max);
17332
- }
17333
-
17334
- /**
17335
- * Parses a date string into a Date object when the corresponding `_*Object`
17336
- * field hasn't been synced yet by `updated()`. Returns undefined when the
17337
- * input type/format isn't a full date or the string is not a valid date.
17338
- *
17339
- * Why this exists: a parent (datepicker) can call `inputN.validate()` from
17340
- * inside its own `updated()` before this input's `updated()` has run
17341
- * `syncDateValues()` — so `_valueObject`/`_maxObject` are still `undefined`
17342
- * and range checks would otherwise silently no-op (flipping the result to
17343
- * `valid` or `patternMismatch`).
17344
- * @private
17345
- * @param {string|undefined} dateStr - ISO date string from `value`/`min`/`max`.
17346
- * @returns {Date|undefined}
17347
- */
17348
- _computeDateObjectFallback(dateStr) {
17349
- if (!dateStr || !this.util || !this.util.isFullDateFormat(this.type, this.format)) {
17350
- return undefined;
17351
- }
17352
- if (!dateFormatter.isValidDate(dateStr)) {
17353
- return undefined;
17354
- }
17355
- return dateFormatter.stringToDateInstance(dateStr);
17356
- }
17357
-
17358
- /**
17359
- * Internal setter for readonly date object properties.
17360
- * @private
17361
- * @param {'valueObject'|'minObject'|'maxObject'} propertyName - Public object property name.
17362
- * @param {Date|undefined} propertyValue - Value to assign.
17363
- * @returns {void}
17364
- */
17365
- setDateObjectProperty(propertyName, propertyValue) {
17366
- const internalPropertyName = `_${propertyName}`;
17367
- const previousValue = this[internalPropertyName];
17368
-
17369
- if (previousValue === propertyValue) {
17370
- return;
17371
- }
17372
-
17373
- this[internalPropertyName] = propertyValue;
17374
- this.requestUpdate(propertyName, previousValue);
17328
+ return this.max && dateFormatter.isValidDate(this.max) ? dateFormatter.stringToDateInstance(this.max) : undefined;
17375
17329
  }
17376
17330
 
17377
17331
  connectedCallback() {
@@ -17400,7 +17354,6 @@ class BaseInput extends AuroElement$1 {
17400
17354
  format: this.format
17401
17355
  });
17402
17356
  this.configureDataForType();
17403
- this.syncDateValues();
17404
17357
  }
17405
17358
 
17406
17359
  disconnectedCallback() {
@@ -17430,7 +17383,6 @@ class BaseInput extends AuroElement$1 {
17430
17383
  this.setCustomHelpTextMessage();
17431
17384
  this.configureAutoFormatting();
17432
17385
  this.configureDataForType();
17433
- this.syncDateValues();
17434
17386
  }
17435
17387
 
17436
17388
  /**
@@ -17567,8 +17519,6 @@ class BaseInput extends AuroElement$1 {
17567
17519
  this.configureDataForType();
17568
17520
  }
17569
17521
 
17570
- this.syncDateValues(changedProperties);
17571
-
17572
17522
  if (changedProperties.has('value')) {
17573
17523
  if (this.value && this.value.length > 0) {
17574
17524
  this.hasValue = true;
@@ -17639,69 +17589,6 @@ class BaseInput extends AuroElement$1 {
17639
17589
  }));
17640
17590
  }
17641
17591
 
17642
-
17643
- /**
17644
- * Synchronizes the ISO string values and Date object representations for date-related properties.
17645
- * This keeps the model and display values aligned when either side changes.
17646
- *
17647
- * When a full date format is in use, this method updates `value`, `min`, and `max` from their corresponding
17648
- * Date objects or vice versa, based on which properties have changed. It only runs when the current configuration
17649
- * represents a full year/month/day date format.
17650
- *
17651
- * @param {Map<string, unknown>|undefined} [changedProperties=undefined] - Optional map of changed properties used to limit which values are synchronized.
17652
- * @returns {void}
17653
- * @private
17654
- */
17655
- syncDateValues(changedProperties = undefined) {
17656
- if (!this.util.isFullDateFormat(this.type, this.format)) {
17657
- return;
17658
- }
17659
-
17660
- this.syncSingleDateValue(changedProperties, 'valueObject', 'value');
17661
- this.syncSingleDateValue(changedProperties, 'minObject', 'min');
17662
- this.syncSingleDateValue(changedProperties, 'maxObject', 'max');
17663
- }
17664
-
17665
- /**
17666
- * Synchronizes one date object/string property pair.
17667
- * @private
17668
- * @param {Map<string, unknown>|undefined} changedProperties - Map of changed properties from Lit.
17669
- * @param {string} objectProperty - Date object property name.
17670
- * @param {string} valueProperty - ISO string property name.
17671
- * @returns {void}
17672
- */
17673
- syncSingleDateValue(changedProperties, objectProperty, valueProperty) {
17674
- const objectPropertyChanged = !changedProperties || changedProperties.has(objectProperty);
17675
-
17676
- // objectProperty wins over valueProperty when both changed
17677
- if (objectPropertyChanged && this[objectProperty]) {
17678
- this[valueProperty] = dateFormatter.toISOFormatString(this[objectProperty]);
17679
- return;
17680
- }
17681
-
17682
- const valuePropertyChanged = !changedProperties || changedProperties.has(valueProperty);
17683
- if (!valuePropertyChanged) {
17684
- return;
17685
- }
17686
-
17687
- // 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)
17688
- if (
17689
- changedProperties &&
17690
- valueProperty === 'value' &&
17691
- changedProperties.get('value') === undefined &&
17692
- this[objectProperty] instanceof Date &&
17693
- this[valueProperty] === dateFormatter.toISOFormatString(this[objectProperty])
17694
- ) {
17695
- return;
17696
- }
17697
-
17698
- if (dateFormatter.isValidDate(this[valueProperty])) {
17699
- this.setDateObjectProperty(objectProperty, dateFormatter.stringToDateInstance(this[valueProperty]));
17700
- } else {
17701
- this.setDateObjectProperty(objectProperty, undefined);
17702
- }
17703
- }
17704
-
17705
17592
  /**
17706
17593
  * Sets up IMasks and logic based on auto-formatting requirements.
17707
17594
  * @private
@@ -17738,9 +17625,7 @@ class BaseInput extends AuroElement$1 {
17738
17625
  if (
17739
17626
  this.util.isFullDateFormat(this.type, this.format) &&
17740
17627
  this.value &&
17741
- dateFormatter.isValidDate(this.value) &&
17742
- this.valueObject instanceof Date &&
17743
- !Number.isNaN(this.valueObject.getTime()) &&
17628
+ this.valueObject &&
17744
17629
  typeof maskOptions.format === 'function'
17745
17630
  ) {
17746
17631
  existingValue = maskOptions.format(this.valueObject);
@@ -17945,7 +17830,6 @@ class BaseInput extends AuroElement$1 {
17945
17830
  */
17946
17831
  reset() {
17947
17832
  this.value = undefined;
17948
- this.setDateObjectProperty('valueObject', undefined);
17949
17833
  this.validation.reset(this);
17950
17834
  }
17951
17835
 
@@ -17954,7 +17838,6 @@ class BaseInput extends AuroElement$1 {
17954
17838
  */
17955
17839
  clear() {
17956
17840
  this.value = undefined;
17957
- this.setDateObjectProperty('valueObject', undefined);
17958
17841
  }
17959
17842
 
17960
17843
  /**
@@ -18483,7 +18366,7 @@ let AuroHelpText$1 = class AuroHelpText extends i$3 {
18483
18366
  }
18484
18367
  };
18485
18368
 
18486
- var formkitVersion$1 = '202606190840';
18369
+ var formkitVersion$1 = '202606192004';
18487
18370
 
18488
18371
  // Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
18489
18372
  // See LICENSE in the project root for license information.
@@ -19604,7 +19487,7 @@ class AuroBibtemplate extends i$3 {
19604
19487
  }
19605
19488
  }
19606
19489
 
19607
- var formkitVersion = '202606190840';
19490
+ var formkitVersion = '202606192004';
19608
19491
 
19609
19492
  var styleCss$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}`;
19610
19493
 
@@ -21121,11 +21004,15 @@ class AuroCombobox extends AuroElement {
21121
21004
 
21122
21005
  // Announce the selection after the dropdown closes so it isn't
21123
21006
  // overridden by VoiceOver's "collapsed" announcement from aria-expanded.
21007
+ // Skip when there's no selected value (e.g. menu.clearSelection() from
21008
+ // the unmatched-value path), otherwise VoiceOver reads "undefined".
21124
21009
  const selectedValue = this.menu.value;
21125
- const announcementDelay = 300;
21126
- setTimeout(() => {
21127
- announceToScreenReader(this._getAnnouncementRoot(), `${selectedValue}, selected`);
21128
- }, announcementDelay);
21010
+ if (selectedValue) {
21011
+ const announcementDelay = 300;
21012
+ setTimeout(() => {
21013
+ announceToScreenReader(this._getAnnouncementRoot(), `${selectedValue}, selected`);
21014
+ }, announcementDelay);
21015
+ }
21129
21016
  }
21130
21017
 
21131
21018
  // Programmatic value syncs leave availableOptions stale because
@@ -21546,8 +21433,12 @@ class AuroCombobox extends AuroElement {
21546
21433
  if (this.menu.options.some((opt) => opt.value === this.value) || this.behavior === 'filter') {
21547
21434
  this.setMenuValue(this.value);
21548
21435
  } else {
21549
- if (this.menu.value) {
21550
- this.menu.value = undefined;
21436
+ // Clear menu.value AND menu.optionSelected together. Clearing only
21437
+ // menu.value leaves the previously-selected option element pinned
21438
+ // as menu.optionSelected; a later auroMenu-selectedOption event
21439
+ // would then write its stale .value back into combobox.value.
21440
+ if (this.menu.value || this.menu.optionSelected) {
21441
+ this.menu.clearSelection();
21551
21442
  }
21552
21443
  // Suggestion-mode freeform value: sync the trigger + bib to show it,
21553
21444
  // then refresh the filter once the inputs flush (handleInputValueChange
@@ -4806,7 +4806,7 @@ let AuroHelpText$2 = class AuroHelpText extends LitElement {
4806
4806
  }
4807
4807
  };
4808
4808
 
4809
- var formkitVersion$2 = '202606190840';
4809
+ var formkitVersion$2 = '202606192004';
4810
4810
 
4811
4811
  let AuroElement$2 = class AuroElement extends LitElement {
4812
4812
  static get properties() {
@@ -16672,10 +16672,8 @@ class BaseInput extends AuroElement$1 {
16672
16672
  this.layout = 'classic';
16673
16673
  this.locale = 'en-US';
16674
16674
  this.max = undefined;
16675
- this._maxObject = undefined;
16676
16675
  this.maxLength = undefined;
16677
16676
  this.min = undefined;
16678
- this._minObject = undefined;
16679
16677
  this.minLength = undefined;
16680
16678
  this.required = false;
16681
16679
  this.onDark = false;
@@ -16683,7 +16681,6 @@ class BaseInput extends AuroElement$1 {
16683
16681
  this.size = 'lg';
16684
16682
  this.shape = 'classic';
16685
16683
  this.value = undefined;
16686
- this._valueObject = undefined;
16687
16684
 
16688
16685
  this._initializePrivateDefaults();
16689
16686
  }
@@ -17223,7 +17220,7 @@ class BaseInput extends AuroElement$1 {
17223
17220
  * @returns {Date|undefined}
17224
17221
  */
17225
17222
  get valueObject() {
17226
- return this._valueObject || this._computeDateObjectFallback(this.value);
17223
+ return this.value && dateFormatter.isValidDate(this.value) ? dateFormatter.stringToDateInstance(this.value) : undefined;
17227
17224
  }
17228
17225
 
17229
17226
  /**
@@ -17231,7 +17228,7 @@ class BaseInput extends AuroElement$1 {
17231
17228
  * @returns {Date|undefined}
17232
17229
  */
17233
17230
  get minObject() {
17234
- return this._minObject || this._computeDateObjectFallback(this.min);
17231
+ return this.min && dateFormatter.isValidDate(this.min) ? dateFormatter.stringToDateInstance(this.min) : undefined;
17235
17232
  }
17236
17233
 
17237
17234
  /**
@@ -17239,50 +17236,7 @@ class BaseInput extends AuroElement$1 {
17239
17236
  * @returns {Date|undefined}
17240
17237
  */
17241
17238
  get maxObject() {
17242
- return this._maxObject || this._computeDateObjectFallback(this.max);
17243
- }
17244
-
17245
- /**
17246
- * Parses a date string into a Date object when the corresponding `_*Object`
17247
- * field hasn't been synced yet by `updated()`. Returns undefined when the
17248
- * input type/format isn't a full date or the string is not a valid date.
17249
- *
17250
- * Why this exists: a parent (datepicker) can call `inputN.validate()` from
17251
- * inside its own `updated()` before this input's `updated()` has run
17252
- * `syncDateValues()` — so `_valueObject`/`_maxObject` are still `undefined`
17253
- * and range checks would otherwise silently no-op (flipping the result to
17254
- * `valid` or `patternMismatch`).
17255
- * @private
17256
- * @param {string|undefined} dateStr - ISO date string from `value`/`min`/`max`.
17257
- * @returns {Date|undefined}
17258
- */
17259
- _computeDateObjectFallback(dateStr) {
17260
- if (!dateStr || !this.util || !this.util.isFullDateFormat(this.type, this.format)) {
17261
- return undefined;
17262
- }
17263
- if (!dateFormatter.isValidDate(dateStr)) {
17264
- return undefined;
17265
- }
17266
- return dateFormatter.stringToDateInstance(dateStr);
17267
- }
17268
-
17269
- /**
17270
- * Internal setter for readonly date object properties.
17271
- * @private
17272
- * @param {'valueObject'|'minObject'|'maxObject'} propertyName - Public object property name.
17273
- * @param {Date|undefined} propertyValue - Value to assign.
17274
- * @returns {void}
17275
- */
17276
- setDateObjectProperty(propertyName, propertyValue) {
17277
- const internalPropertyName = `_${propertyName}`;
17278
- const previousValue = this[internalPropertyName];
17279
-
17280
- if (previousValue === propertyValue) {
17281
- return;
17282
- }
17283
-
17284
- this[internalPropertyName] = propertyValue;
17285
- this.requestUpdate(propertyName, previousValue);
17239
+ return this.max && dateFormatter.isValidDate(this.max) ? dateFormatter.stringToDateInstance(this.max) : undefined;
17286
17240
  }
17287
17241
 
17288
17242
  connectedCallback() {
@@ -17311,7 +17265,6 @@ class BaseInput extends AuroElement$1 {
17311
17265
  format: this.format
17312
17266
  });
17313
17267
  this.configureDataForType();
17314
- this.syncDateValues();
17315
17268
  }
17316
17269
 
17317
17270
  disconnectedCallback() {
@@ -17341,7 +17294,6 @@ class BaseInput extends AuroElement$1 {
17341
17294
  this.setCustomHelpTextMessage();
17342
17295
  this.configureAutoFormatting();
17343
17296
  this.configureDataForType();
17344
- this.syncDateValues();
17345
17297
  }
17346
17298
 
17347
17299
  /**
@@ -17478,8 +17430,6 @@ class BaseInput extends AuroElement$1 {
17478
17430
  this.configureDataForType();
17479
17431
  }
17480
17432
 
17481
- this.syncDateValues(changedProperties);
17482
-
17483
17433
  if (changedProperties.has('value')) {
17484
17434
  if (this.value && this.value.length > 0) {
17485
17435
  this.hasValue = true;
@@ -17550,69 +17500,6 @@ class BaseInput extends AuroElement$1 {
17550
17500
  }));
17551
17501
  }
17552
17502
 
17553
-
17554
- /**
17555
- * Synchronizes the ISO string values and Date object representations for date-related properties.
17556
- * This keeps the model and display values aligned when either side changes.
17557
- *
17558
- * When a full date format is in use, this method updates `value`, `min`, and `max` from their corresponding
17559
- * Date objects or vice versa, based on which properties have changed. It only runs when the current configuration
17560
- * represents a full year/month/day date format.
17561
- *
17562
- * @param {Map<string, unknown>|undefined} [changedProperties=undefined] - Optional map of changed properties used to limit which values are synchronized.
17563
- * @returns {void}
17564
- * @private
17565
- */
17566
- syncDateValues(changedProperties = undefined) {
17567
- if (!this.util.isFullDateFormat(this.type, this.format)) {
17568
- return;
17569
- }
17570
-
17571
- this.syncSingleDateValue(changedProperties, 'valueObject', 'value');
17572
- this.syncSingleDateValue(changedProperties, 'minObject', 'min');
17573
- this.syncSingleDateValue(changedProperties, 'maxObject', 'max');
17574
- }
17575
-
17576
- /**
17577
- * Synchronizes one date object/string property pair.
17578
- * @private
17579
- * @param {Map<string, unknown>|undefined} changedProperties - Map of changed properties from Lit.
17580
- * @param {string} objectProperty - Date object property name.
17581
- * @param {string} valueProperty - ISO string property name.
17582
- * @returns {void}
17583
- */
17584
- syncSingleDateValue(changedProperties, objectProperty, valueProperty) {
17585
- const objectPropertyChanged = !changedProperties || changedProperties.has(objectProperty);
17586
-
17587
- // objectProperty wins over valueProperty when both changed
17588
- if (objectPropertyChanged && this[objectProperty]) {
17589
- this[valueProperty] = dateFormatter.toISOFormatString(this[objectProperty]);
17590
- return;
17591
- }
17592
-
17593
- const valuePropertyChanged = !changedProperties || changedProperties.has(valueProperty);
17594
- if (!valuePropertyChanged) {
17595
- return;
17596
- }
17597
-
17598
- // 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)
17599
- if (
17600
- changedProperties &&
17601
- valueProperty === 'value' &&
17602
- changedProperties.get('value') === undefined &&
17603
- this[objectProperty] instanceof Date &&
17604
- this[valueProperty] === dateFormatter.toISOFormatString(this[objectProperty])
17605
- ) {
17606
- return;
17607
- }
17608
-
17609
- if (dateFormatter.isValidDate(this[valueProperty])) {
17610
- this.setDateObjectProperty(objectProperty, dateFormatter.stringToDateInstance(this[valueProperty]));
17611
- } else {
17612
- this.setDateObjectProperty(objectProperty, undefined);
17613
- }
17614
- }
17615
-
17616
17503
  /**
17617
17504
  * Sets up IMasks and logic based on auto-formatting requirements.
17618
17505
  * @private
@@ -17649,9 +17536,7 @@ class BaseInput extends AuroElement$1 {
17649
17536
  if (
17650
17537
  this.util.isFullDateFormat(this.type, this.format) &&
17651
17538
  this.value &&
17652
- dateFormatter.isValidDate(this.value) &&
17653
- this.valueObject instanceof Date &&
17654
- !Number.isNaN(this.valueObject.getTime()) &&
17539
+ this.valueObject &&
17655
17540
  typeof maskOptions.format === 'function'
17656
17541
  ) {
17657
17542
  existingValue = maskOptions.format(this.valueObject);
@@ -17856,7 +17741,6 @@ class BaseInput extends AuroElement$1 {
17856
17741
  */
17857
17742
  reset() {
17858
17743
  this.value = undefined;
17859
- this.setDateObjectProperty('valueObject', undefined);
17860
17744
  this.validation.reset(this);
17861
17745
  }
17862
17746
 
@@ -17865,7 +17749,6 @@ class BaseInput extends AuroElement$1 {
17865
17749
  */
17866
17750
  clear() {
17867
17751
  this.value = undefined;
17868
- this.setDateObjectProperty('valueObject', undefined);
17869
17752
  }
17870
17753
 
17871
17754
  /**
@@ -18394,7 +18277,7 @@ let AuroHelpText$1 = class AuroHelpText extends LitElement {
18394
18277
  }
18395
18278
  };
18396
18279
 
18397
- var formkitVersion$1 = '202606190840';
18280
+ var formkitVersion$1 = '202606192004';
18398
18281
 
18399
18282
  // Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
18400
18283
  // See LICENSE in the project root for license information.
@@ -19515,7 +19398,7 @@ class AuroBibtemplate extends LitElement {
19515
19398
  }
19516
19399
  }
19517
19400
 
19518
- var formkitVersion = '202606190840';
19401
+ var formkitVersion = '202606192004';
19519
19402
 
19520
19403
  var styleCss$1 = css`.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}`;
19521
19404
 
@@ -21032,11 +20915,15 @@ class AuroCombobox extends AuroElement {
21032
20915
 
21033
20916
  // Announce the selection after the dropdown closes so it isn't
21034
20917
  // overridden by VoiceOver's "collapsed" announcement from aria-expanded.
20918
+ // Skip when there's no selected value (e.g. menu.clearSelection() from
20919
+ // the unmatched-value path), otherwise VoiceOver reads "undefined".
21035
20920
  const selectedValue = this.menu.value;
21036
- const announcementDelay = 300;
21037
- setTimeout(() => {
21038
- announceToScreenReader(this._getAnnouncementRoot(), `${selectedValue}, selected`);
21039
- }, announcementDelay);
20921
+ if (selectedValue) {
20922
+ const announcementDelay = 300;
20923
+ setTimeout(() => {
20924
+ announceToScreenReader(this._getAnnouncementRoot(), `${selectedValue}, selected`);
20925
+ }, announcementDelay);
20926
+ }
21040
20927
  }
21041
20928
 
21042
20929
  // Programmatic value syncs leave availableOptions stale because
@@ -21457,8 +21344,12 @@ class AuroCombobox extends AuroElement {
21457
21344
  if (this.menu.options.some((opt) => opt.value === this.value) || this.behavior === 'filter') {
21458
21345
  this.setMenuValue(this.value);
21459
21346
  } else {
21460
- if (this.menu.value) {
21461
- this.menu.value = undefined;
21347
+ // Clear menu.value AND menu.optionSelected together. Clearing only
21348
+ // menu.value leaves the previously-selected option element pinned
21349
+ // as menu.optionSelected; a later auroMenu-selectedOption event
21350
+ // would then write its stale .value back into combobox.value.
21351
+ if (this.menu.value || this.menu.optionSelected) {
21352
+ this.menu.clearSelection();
21462
21353
  }
21463
21354
  // Suggestion-mode freeform value: sync the trigger + bib to show it,
21464
21355
  // then refresh the filter once the inputs flush (handleInputValueChange