@aurodesignsystem-dev/auro-formkit 0.0.0-pr1519.1 → 0.0.0-pr1521.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.
Files changed (49) hide show
  1. package/components/checkbox/demo/customize.min.js +2 -15
  2. package/components/checkbox/demo/getting-started.min.js +2 -15
  3. package/components/checkbox/demo/index.min.js +2 -15
  4. package/components/checkbox/dist/index.js +2 -15
  5. package/components/checkbox/dist/registered.js +2 -15
  6. package/components/combobox/demo/customize.min.js +10 -105
  7. package/components/combobox/demo/getting-started.min.js +10 -105
  8. package/components/combobox/demo/index.min.js +10 -105
  9. package/components/combobox/dist/index.js +10 -105
  10. package/components/combobox/dist/registered.js +10 -105
  11. package/components/counter/demo/customize.min.js +3 -33
  12. package/components/counter/demo/index.min.js +3 -33
  13. package/components/counter/dist/index.js +3 -33
  14. package/components/counter/dist/registered.js +3 -33
  15. package/components/datepicker/demo/customize.min.js +75 -153
  16. package/components/datepicker/demo/index.min.js +75 -153
  17. package/components/datepicker/dist/auro-calendar-cell.d.ts +14 -0
  18. package/components/datepicker/dist/auro-calendar.d.ts +12 -0
  19. package/components/datepicker/dist/index.js +75 -153
  20. package/components/datepicker/dist/registered.js +75 -153
  21. package/components/dropdown/demo/customize.min.js +1 -18
  22. package/components/dropdown/demo/getting-started.min.js +1 -18
  23. package/components/dropdown/demo/index.min.js +1 -18
  24. package/components/dropdown/dist/index.js +1 -18
  25. package/components/dropdown/dist/registered.js +1 -18
  26. package/components/form/demo/customize.min.js +102 -441
  27. package/components/form/demo/getting-started.min.js +102 -441
  28. package/components/form/demo/index.min.js +102 -441
  29. package/components/form/demo/registerDemoDeps.min.js +102 -441
  30. package/components/input/demo/api.md +57 -58
  31. package/components/input/demo/customize.min.js +7 -72
  32. package/components/input/demo/getting-started.min.js +7 -72
  33. package/components/input/demo/index.min.js +7 -72
  34. package/components/input/dist/base-input.d.ts +3 -9
  35. package/components/input/dist/index.js +7 -72
  36. package/components/input/dist/registered.js +7 -72
  37. package/components/input/dist/utilities.d.ts +0 -9
  38. package/components/radio/demo/customize.min.js +2 -15
  39. package/components/radio/demo/getting-started.min.js +2 -15
  40. package/components/radio/demo/index.min.js +2 -15
  41. package/components/radio/dist/index.js +2 -15
  42. package/components/radio/dist/registered.js +2 -15
  43. package/components/select/demo/customize.min.js +3 -48
  44. package/components/select/demo/getting-started.min.js +3 -48
  45. package/components/select/demo/index.min.js +3 -48
  46. package/components/select/dist/index.js +3 -48
  47. package/components/select/dist/registered.js +3 -48
  48. package/custom-elements.json +45 -78
  49. package/package.json +1 -1
@@ -5455,21 +5455,8 @@ let AuroFormValidation$7 = class AuroFormValidation {
5455
5455
  return;
5456
5456
  }
5457
5457
 
5458
- // Validate that the date passed was the correct format and is a valid date.
5459
- // For partial date formats, valueObject is never populated; validate them directly.
5458
+ // Validate that the date passed was the correct format and is a valid date
5460
5459
  if (elem.value && !elem.valueObject) {
5461
- const isPartialDateFormat = elem.util && !elem.util.isFullDateFormat(elem.type, elem.format);
5462
-
5463
- if (isPartialDateFormat) {
5464
- if (!elem.util.isValidPartialDate(elem.value, elem.format)) {
5465
- elem.validity = 'patternMismatch';
5466
- elem.errorMessage = elem.setCustomValidityPatternMismatch || elem.setCustomValidity || 'Invalid Date Format Entered';
5467
- }
5468
- // Partial date format — validate directly and skip max/min checks since valueObject is undefined.
5469
- return;
5470
- }
5471
-
5472
- // Full date format with no valueObject means the value is not a valid calendar date.
5473
5460
  elem.validity = 'patternMismatch';
5474
5461
  elem.errorMessage = elem.setCustomValidityPatternMismatch || elem.setCustomValidity || 'Invalid Date Format Entered';
5475
5462
  return;
@@ -11399,11 +11386,10 @@ let AuroInputUtilities$3 = class AuroInputUtilities {
11399
11386
  const dateFormat = format$1 || this.overrideFormat || pattern || 'mm/dd/yyyy';
11400
11387
 
11401
11388
  if (dateFormat === 'dd' || dateFormat === 'yy' || dateFormat === 'yyyy') {
11402
- const fromValue = dateFormat === 'yyyy' ? 1900 : (dateFormat === 'yy' ? 0 : 1);
11403
- const maxValue = dateFormat === 'dd' ? 31 : (dateFormat === 'yy' ? 99 : 2100);
11389
+ const maxValue = dateFormat === 'dd' ? 31 : (dateFormat === 'yy' ? 99 : 9999);
11404
11390
  return {
11405
11391
  mask: IMask$3.MaskedRange,
11406
- from: fromValue,
11392
+ from: 1,
11407
11393
  to: maxValue,
11408
11394
  lazy: true,
11409
11395
  placeholderChar: '',
@@ -11411,8 +11397,7 @@ let AuroInputUtilities$3 = class AuroInputUtilities {
11411
11397
  return value.toString().padStart(dateFormat.length, '0');
11412
11398
  },
11413
11399
  parse(str) {
11414
- const num = parseInt(str, 10);
11415
- return isNaN(num) ? null : num;
11400
+ return parseInt(str) || null;
11416
11401
  }
11417
11402
  };
11418
11403
  }
@@ -11476,49 +11461,6 @@ let AuroInputUtilities$3 = class AuroInputUtilities {
11476
11461
  return type === 'date' && normalizedFormat.includes('yy') && normalizedFormat.includes('mm') && normalizedFormat.includes('dd');
11477
11462
  }
11478
11463
 
11479
- /**
11480
- * Validates a value against a partial date format (one that lacks yy/mm/dd all three).
11481
- * Day- and year-only formats (dd/yy/yyyy) are checked as integer ranges; other partial formats use
11482
- * a date-fns parse + round-trip to confirm both validity and exact formatting.
11483
- * @param {string} value - The user-facing display value.
11484
- * @param {string} format - The partial date format string (e.g. "mm/yyyy", "yyyy", "dd").
11485
- * @returns {boolean}
11486
- */
11487
- isValidPartialDate(value, format$1) {
11488
- if (!value || !format$1) {
11489
- return false;
11490
- }
11491
- const normalizedFormat = format$1.toLowerCase();
11492
-
11493
- if (normalizedFormat === 'dd') {
11494
- const num = Number(value);
11495
- return (/^\d{2}$/u).test(value) && num >= 1 && num <= 31;
11496
- }
11497
- if (normalizedFormat === 'yy') {
11498
- const num = Number(value);
11499
- return (/^\d{2}$/u).test(value) && num >= 0 && num <= 99;
11500
- }
11501
- if (normalizedFormat === 'yyyy') {
11502
- const num = Number(value);
11503
- return (/^\d{4}$/u).test(value) && num >= 1900 && num <= 2100;
11504
- }
11505
-
11506
- const dateFnsMask = this.toDateFnsMask(normalizedFormat);
11507
- // Use the 1st of the current month as the reference so that formats
11508
- // omitting a day (e.g. MM/yyyy) never roll over on days 29–31.
11509
- const referenceDate = new Date();
11510
- referenceDate.setDate(1);
11511
- const parsed = parse$3(value, dateFnsMask, referenceDate);
11512
- if (!isValid$3(parsed) || format$3(parsed, dateFnsMask) !== value) {
11513
- return false;
11514
- }
11515
- if (normalizedFormat.includes('yyyy')) {
11516
- const year = parsed.getFullYear();
11517
- return year >= 1900 && year <= 2100;
11518
- }
11519
- return true;
11520
- }
11521
-
11522
11464
  /**
11523
11465
  * Converts a display string to its model value.
11524
11466
  * For full date formats, converts the display string to an ISO date string.
@@ -12138,13 +12080,6 @@ let BaseInput$2 = class BaseInput extends AuroElement$6 {
12138
12080
  type: String
12139
12081
  },
12140
12082
 
12141
- /**
12142
- * Custom help text message to display when validity = `patternMismatch`.
12143
- */
12144
- setCustomValidityPatternMismatch: {
12145
- type: String
12146
- },
12147
-
12148
12083
  /**
12149
12084
  * Custom help text message to display when validity = `rangeOverflow`.
12150
12085
  */
@@ -12215,7 +12150,7 @@ let BaseInput$2 = class BaseInput extends AuroElement$6 {
12215
12150
 
12216
12151
  /**
12217
12152
  * Populates the `type` attribute on the input.
12218
- * @type {'text' | 'password' | 'email' | 'credit-card' | 'tel' | 'number' | 'date'}
12153
+ * @type {'text' | 'password' | 'email' | 'credit-card' | 'tel' | 'number'}
12219
12154
  * @default 'text'
12220
12155
  */
12221
12156
  type: {
@@ -12240,7 +12175,7 @@ let BaseInput$2 = class BaseInput extends AuroElement$6 {
12240
12175
 
12241
12176
  /**
12242
12177
  * Populates the `value` attribute on the input. Can also be read to retrieve the current value of the input.
12243
- * For `date` type inputs using a full date format (year/month/day), the `value` should be ISO (YYYY-MM-DD). Partial date formats use the display format.
12178
+ * The format for this property should be ISO for `date` type inputs.
12244
12179
  */
12245
12180
  value: {
12246
12181
  type: String
@@ -13363,7 +13298,7 @@ let AuroHelpText$8 = class AuroHelpText extends i$3 {
13363
13298
  }
13364
13299
  };
13365
13300
 
13366
- var formkitVersion$8 = '202607011914';
13301
+ var formkitVersion$8 = '202607011730';
13367
13302
 
13368
13303
  // Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
13369
13304
  // See LICENSE in the project root for license information.
@@ -14638,21 +14573,8 @@ let AuroFormValidation$1$1 = class AuroFormValidation {
14638
14573
  return;
14639
14574
  }
14640
14575
 
14641
- // Validate that the date passed was the correct format and is a valid date.
14642
- // For partial date formats, valueObject is never populated; validate them directly.
14576
+ // Validate that the date passed was the correct format and is a valid date
14643
14577
  if (elem.value && !elem.valueObject) {
14644
- const isPartialDateFormat = elem.util && !elem.util.isFullDateFormat(elem.type, elem.format);
14645
-
14646
- if (isPartialDateFormat) {
14647
- if (!elem.util.isValidPartialDate(elem.value, elem.format)) {
14648
- elem.validity = 'patternMismatch';
14649
- elem.errorMessage = elem.setCustomValidityPatternMismatch || elem.setCustomValidity || 'Invalid Date Format Entered';
14650
- }
14651
- // Partial date format — validate directly and skip max/min checks since valueObject is undefined.
14652
- return;
14653
- }
14654
-
14655
- // Full date format with no valueObject means the value is not a valid calendar date.
14656
14578
  elem.validity = 'patternMismatch';
14657
14579
  elem.errorMessage = elem.setCustomValidityPatternMismatch || elem.setCustomValidity || 'Invalid Date Format Entered';
14658
14580
  return;
@@ -24505,11 +24427,10 @@ let AuroInputUtilities$1 = class AuroInputUtilities {
24505
24427
  const dateFormat = format || this.overrideFormat || pattern || 'mm/dd/yyyy';
24506
24428
 
24507
24429
  if (dateFormat === 'dd' || dateFormat === 'yy' || dateFormat === 'yyyy') {
24508
- const fromValue = dateFormat === 'yyyy' ? 1900 : (dateFormat === 'yy' ? 0 : 1);
24509
- const maxValue = dateFormat === 'dd' ? 31 : (dateFormat === 'yy' ? 99 : 2100);
24430
+ const maxValue = dateFormat === 'dd' ? 31 : (dateFormat === 'yy' ? 99 : 9999);
24510
24431
  return {
24511
24432
  mask: IMask$1.MaskedRange,
24512
- from: fromValue,
24433
+ from: 1,
24513
24434
  to: maxValue,
24514
24435
  lazy: true,
24515
24436
  placeholderChar: '',
@@ -24517,8 +24438,7 @@ let AuroInputUtilities$1 = class AuroInputUtilities {
24517
24438
  return value.toString().padStart(dateFormat.length, '0');
24518
24439
  },
24519
24440
  parse(str) {
24520
- const num = parseInt(str, 10);
24521
- return isNaN(num) ? null : num;
24441
+ return parseInt(str) || null;
24522
24442
  }
24523
24443
  };
24524
24444
  }
@@ -24582,49 +24502,6 @@ let AuroInputUtilities$1 = class AuroInputUtilities {
24582
24502
  return type === 'date' && normalizedFormat.includes('yy') && normalizedFormat.includes('mm') && normalizedFormat.includes('dd');
24583
24503
  }
24584
24504
 
24585
- /**
24586
- * Validates a value against a partial date format (one that lacks yy/mm/dd all three).
24587
- * Day- and year-only formats (dd/yy/yyyy) are checked as integer ranges; other partial formats use
24588
- * a date-fns parse + round-trip to confirm both validity and exact formatting.
24589
- * @param {string} value - The user-facing display value.
24590
- * @param {string} format - The partial date format string (e.g. "mm/yyyy", "yyyy", "dd").
24591
- * @returns {boolean}
24592
- */
24593
- isValidPartialDate(value, format) {
24594
- if (!value || !format) {
24595
- return false;
24596
- }
24597
- const normalizedFormat = format.toLowerCase();
24598
-
24599
- if (normalizedFormat === 'dd') {
24600
- const num = Number(value);
24601
- return (/^\d{2}$/u).test(value) && num >= 1 && num <= 31;
24602
- }
24603
- if (normalizedFormat === 'yy') {
24604
- const num = Number(value);
24605
- return (/^\d{2}$/u).test(value) && num >= 0 && num <= 99;
24606
- }
24607
- if (normalizedFormat === 'yyyy') {
24608
- const num = Number(value);
24609
- return (/^\d{4}$/u).test(value) && num >= 1900 && num <= 2100;
24610
- }
24611
-
24612
- const dateFnsMask = this.toDateFnsMask(normalizedFormat);
24613
- // Use the 1st of the current month as the reference so that formats
24614
- // omitting a day (e.g. MM/yyyy) never roll over on days 29–31.
24615
- const referenceDate = new Date();
24616
- referenceDate.setDate(1);
24617
- const parsed = parse$1(value, dateFnsMask, referenceDate);
24618
- if (!isValid$1(parsed) || format$1(parsed, dateFnsMask) !== value) {
24619
- return false;
24620
- }
24621
- if (normalizedFormat.includes('yyyy')) {
24622
- const year = parsed.getFullYear();
24623
- return year >= 1900 && year <= 2100;
24624
- }
24625
- return true;
24626
- }
24627
-
24628
24505
  /**
24629
24506
  * Converts a display string to its model value.
24630
24507
  * For full date formats, converts the display string to an ISO date string.
@@ -26554,6 +26431,33 @@ class AuroCalendarCell extends i$3 {
26554
26431
  btn.classList.remove('inRange', 'lastHoveredDate', 'rangeDepartDate');
26555
26432
  }
26556
26433
 
26434
+ /**
26435
+ * Re-applies the committed-range classes (inRange / rangeDepartDate /
26436
+ * rangeReturnDate) imperatively from the current dateFrom/dateTo. Used
26437
+ * after month navigation flushes: classMap in `renderCellButton` tracks
26438
+ * its own previous state, so a preceding imperative `classList.remove`
26439
+ * (from `clearRangePreviewClasses`) leaves classMap thinking the class
26440
+ * is still applied. On re-render with the same class-value, classMap
26441
+ * emits no delta and the class stays missing in the DOM. Re-toggling
26442
+ * imperatively resyncs the DOM with the committed range.
26443
+ * @param {Number} dateFrom - Depart timestamp (seconds).
26444
+ * @param {Number} dateTo - Return timestamp (seconds).
26445
+ * @returns {void}
26446
+ */
26447
+ applyCommittedRangeClasses(dateFrom, dateTo) {
26448
+ const btn = this._cachedButton;
26449
+ if (!btn || !this.day || !this.day.date) return;
26450
+
26451
+ const dayDate = new Date(this.day.date * 1000).setHours(0, 0, 0, 0) / 1000;
26452
+ const isInRange = dayDate > dateFrom && dayDate < dateTo;
26453
+ const isDepart = dayDate === dateFrom;
26454
+ const isReturn = dayDate === dateTo;
26455
+
26456
+ btn.classList.toggle('inRange', isInRange);
26457
+ btn.classList.toggle('rangeDepartDate', isDepart);
26458
+ btn.classList.toggle('rangeReturnDate', isReturn);
26459
+ }
26460
+
26557
26461
  renderCellButton() {
26558
26462
  const outOfRange = this.isOutOfRange(this.day, this.min, this.max);
26559
26463
  const blackout = this.isBlackout();
@@ -27698,7 +27602,7 @@ let AuroBibtemplate$3 = class AuroBibtemplate extends i$3 {
27698
27602
  }
27699
27603
  };
27700
27604
 
27701
- var formkitVersion$2$1 = '202607011914';
27605
+ var formkitVersion$2$1 = '202607011730';
27702
27606
 
27703
27607
  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}
27704
27608
  `,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}}
@@ -28043,6 +27947,11 @@ class AuroCalendar extends RangeDatepicker {
28043
27947
  if (!opts.skipActiveUpdate) {
28044
27948
  this.updateActiveCellForVisibleMonth();
28045
27949
  }
27950
+ // clearRangePreview above strips classMap-managed range classes from
27951
+ // the DOM; classMap's private state still thinks they're applied, so
27952
+ // it won't re-add them on the post-nav re-render. Re-apply imperatively
27953
+ // after both months and their cell button caches have settled.
27954
+ this._afterMonthRender(() => this.refreshCommittedRangeClasses());
28046
27955
  this.announceMonthChange();
28047
27956
  }
28048
27957
 
@@ -28061,6 +27970,11 @@ class AuroCalendar extends RangeDatepicker {
28061
27970
  if (!opts.skipActiveUpdate) {
28062
27971
  this.updateActiveCellForVisibleMonth();
28063
27972
  }
27973
+ // clearRangePreview above strips classMap-managed range classes from
27974
+ // the DOM; classMap's private state still thinks they're applied, so
27975
+ // it won't re-add them on the post-nav re-render. Re-apply imperatively
27976
+ // after both months and their cell button caches have settled.
27977
+ this._afterMonthRender(() => this.refreshCommittedRangeClasses());
28064
27978
  this.announceMonthChange();
28065
27979
  }
28066
27980
 
@@ -29156,6 +29070,31 @@ class AuroCalendar extends RangeDatepicker {
29156
29070
  });
29157
29071
  }
29158
29072
 
29073
+ /**
29074
+ * Re-applies the committed-range classes across every visible cell after
29075
+ * a month navigation. classMap in the cell tracks its own previous state:
29076
+ * once `clearRangePreview({ force: true })` strips `inRange`/`rangeDepartDate`
29077
+ * imperatively before the re-render, classMap's next diff sees the same
29078
+ * class-value it emitted before and produces no delta, leaving the DOM
29079
+ * without the classes even though a full range is committed. Re-applying
29080
+ * imperatively resyncs the two months' cells with `dateFrom`/`dateTo`.
29081
+ * @private
29082
+ * @returns {void}
29083
+ */
29084
+ refreshCommittedRangeClasses() {
29085
+ if (this.noRange || !this.dateFrom || !this.dateTo) {
29086
+ return;
29087
+ }
29088
+
29089
+ const parsedDateFrom = parseInt(this.dateFrom, 10);
29090
+ const parsedDateTo = parseInt(this.dateTo, 10);
29091
+ const allCells = this.getAllFocusableCells();
29092
+
29093
+ allCells.forEach((cell) => {
29094
+ cell.applyCommittedRangeClasses(parsedDateFrom, parsedDateTo);
29095
+ });
29096
+ }
29097
+
29159
29098
  /**
29160
29099
  * Overrides the base class handler to prevent setting `this.hoveredDate`
29161
29100
  * as a reactive property. Instead, handles the range preview imperatively.
@@ -33450,7 +33389,7 @@ let AuroHelpText$2$1 = class AuroHelpText extends i$3 {
33450
33389
  }
33451
33390
  };
33452
33391
 
33453
- var formkitVersion$1$3 = '202607011914';
33392
+ var formkitVersion$1$3 = '202607011730';
33454
33393
 
33455
33394
  let AuroElement$2$2 = class AuroElement extends i$3 {
33456
33395
  static get properties() {
@@ -34202,23 +34141,6 @@ let AuroDropdown$3 = class AuroDropdown extends AuroElement$2$2 {
34202
34141
  if (!this.isPopoverVisible && this.hasFocus && eventType === "keydown") {
34203
34142
  this.trigger.focus();
34204
34143
  }
34205
-
34206
-
34207
- if (!this.isPopoverVisible) {
34208
- // wait til the bib gets fully closed and rendered
34209
- setTimeout(() => {
34210
- // Skip if the bib re-opened, or if focus moved intentionally outside the dropdown (not to body).
34211
- // Restore focus to trigger when focus is still inside the bib (:focus-within) or fell to body.
34212
- if (this.isPopoverVisible ||
34213
- // eslint-disable-next-line no-extra-parens
34214
- (!this.bibContent?.matches(':focus-within') &&
34215
- document.activeElement !== document.body)) {
34216
- return;
34217
- }
34218
- // Restore focus to the trigger.
34219
- this.trigger.focus();
34220
- });
34221
- }
34222
34144
  }
34223
34145
 
34224
34146
  firstUpdated() {
@@ -39144,21 +39066,8 @@ let AuroFormValidation$6 = class AuroFormValidation {
39144
39066
  return;
39145
39067
  }
39146
39068
 
39147
- // Validate that the date passed was the correct format and is a valid date.
39148
- // For partial date formats, valueObject is never populated; validate them directly.
39069
+ // Validate that the date passed was the correct format and is a valid date
39149
39070
  if (elem.value && !elem.valueObject) {
39150
- const isPartialDateFormat = elem.util && !elem.util.isFullDateFormat(elem.type, elem.format);
39151
-
39152
- if (isPartialDateFormat) {
39153
- if (!elem.util.isValidPartialDate(elem.value, elem.format)) {
39154
- elem.validity = 'patternMismatch';
39155
- elem.errorMessage = elem.setCustomValidityPatternMismatch || elem.setCustomValidity || 'Invalid Date Format Entered';
39156
- }
39157
- // Partial date format — validate directly and skip max/min checks since valueObject is undefined.
39158
- return;
39159
- }
39160
-
39161
- // Full date format with no valueObject means the value is not a valid calendar date.
39162
39071
  elem.validity = 'patternMismatch';
39163
39072
  elem.errorMessage = elem.setCustomValidityPatternMismatch || elem.setCustomValidity || 'Invalid Date Format Entered';
39164
39073
  return;
@@ -45088,11 +44997,10 @@ let AuroInputUtilities$2 = class AuroInputUtilities {
45088
44997
  const dateFormat = format$1 || this.overrideFormat || pattern || 'mm/dd/yyyy';
45089
44998
 
45090
44999
  if (dateFormat === 'dd' || dateFormat === 'yy' || dateFormat === 'yyyy') {
45091
- const fromValue = dateFormat === 'yyyy' ? 1900 : (dateFormat === 'yy' ? 0 : 1);
45092
- const maxValue = dateFormat === 'dd' ? 31 : (dateFormat === 'yy' ? 99 : 2100);
45000
+ const maxValue = dateFormat === 'dd' ? 31 : (dateFormat === 'yy' ? 99 : 9999);
45093
45001
  return {
45094
45002
  mask: IMask$2.MaskedRange,
45095
- from: fromValue,
45003
+ from: 1,
45096
45004
  to: maxValue,
45097
45005
  lazy: true,
45098
45006
  placeholderChar: '',
@@ -45100,8 +45008,7 @@ let AuroInputUtilities$2 = class AuroInputUtilities {
45100
45008
  return value.toString().padStart(dateFormat.length, '0');
45101
45009
  },
45102
45010
  parse(str) {
45103
- const num = parseInt(str, 10);
45104
- return isNaN(num) ? null : num;
45011
+ return parseInt(str) || null;
45105
45012
  }
45106
45013
  };
45107
45014
  }
@@ -45165,49 +45072,6 @@ let AuroInputUtilities$2 = class AuroInputUtilities {
45165
45072
  return type === 'date' && normalizedFormat.includes('yy') && normalizedFormat.includes('mm') && normalizedFormat.includes('dd');
45166
45073
  }
45167
45074
 
45168
- /**
45169
- * Validates a value against a partial date format (one that lacks yy/mm/dd all three).
45170
- * Day- and year-only formats (dd/yy/yyyy) are checked as integer ranges; other partial formats use
45171
- * a date-fns parse + round-trip to confirm both validity and exact formatting.
45172
- * @param {string} value - The user-facing display value.
45173
- * @param {string} format - The partial date format string (e.g. "mm/yyyy", "yyyy", "dd").
45174
- * @returns {boolean}
45175
- */
45176
- isValidPartialDate(value, format$1) {
45177
- if (!value || !format$1) {
45178
- return false;
45179
- }
45180
- const normalizedFormat = format$1.toLowerCase();
45181
-
45182
- if (normalizedFormat === 'dd') {
45183
- const num = Number(value);
45184
- return (/^\d{2}$/u).test(value) && num >= 1 && num <= 31;
45185
- }
45186
- if (normalizedFormat === 'yy') {
45187
- const num = Number(value);
45188
- return (/^\d{2}$/u).test(value) && num >= 0 && num <= 99;
45189
- }
45190
- if (normalizedFormat === 'yyyy') {
45191
- const num = Number(value);
45192
- return (/^\d{4}$/u).test(value) && num >= 1900 && num <= 2100;
45193
- }
45194
-
45195
- const dateFnsMask = this.toDateFnsMask(normalizedFormat);
45196
- // Use the 1st of the current month as the reference so that formats
45197
- // omitting a day (e.g. MM/yyyy) never roll over on days 29–31.
45198
- const referenceDate = new Date();
45199
- referenceDate.setDate(1);
45200
- const parsed = parse$2(value, dateFnsMask, referenceDate);
45201
- if (!isValid$2(parsed) || format$2(parsed, dateFnsMask) !== value) {
45202
- return false;
45203
- }
45204
- if (normalizedFormat.includes('yyyy')) {
45205
- const year = parsed.getFullYear();
45206
- return year >= 1900 && year <= 2100;
45207
- }
45208
- return true;
45209
- }
45210
-
45211
45075
  /**
45212
45076
  * Converts a display string to its model value.
45213
45077
  * For full date formats, converts the display string to an ISO date string.
@@ -45827,13 +45691,6 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
45827
45691
  type: String
45828
45692
  },
45829
45693
 
45830
- /**
45831
- * Custom help text message to display when validity = `patternMismatch`.
45832
- */
45833
- setCustomValidityPatternMismatch: {
45834
- type: String
45835
- },
45836
-
45837
45694
  /**
45838
45695
  * Custom help text message to display when validity = `rangeOverflow`.
45839
45696
  */
@@ -45904,7 +45761,7 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
45904
45761
 
45905
45762
  /**
45906
45763
  * Populates the `type` attribute on the input.
45907
- * @type {'text' | 'password' | 'email' | 'credit-card' | 'tel' | 'number' | 'date'}
45764
+ * @type {'text' | 'password' | 'email' | 'credit-card' | 'tel' | 'number'}
45908
45765
  * @default 'text'
45909
45766
  */
45910
45767
  type: {
@@ -45929,7 +45786,7 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
45929
45786
 
45930
45787
  /**
45931
45788
  * Populates the `value` attribute on the input. Can also be read to retrieve the current value of the input.
45932
- * For `date` type inputs using a full date format (year/month/day), the `value` should be ISO (YYYY-MM-DD). Partial date formats use the display format.
45789
+ * The format for this property should be ISO for `date` type inputs.
45933
45790
  */
45934
45791
  value: {
45935
45792
  type: String
@@ -47052,7 +46909,7 @@ let AuroHelpText$1$3 = class AuroHelpText extends i$3 {
47052
46909
  }
47053
46910
  };
47054
46911
 
47055
- var formkitVersion$7 = '202607011914';
46912
+ var formkitVersion$7 = '202607011730';
47056
46913
 
47057
46914
  // Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
47058
46915
  // See LICENSE in the project root for license information.
@@ -51348,21 +51205,8 @@ let AuroFormValidation$5 = class AuroFormValidation {
51348
51205
  return;
51349
51206
  }
51350
51207
 
51351
- // Validate that the date passed was the correct format and is a valid date.
51352
- // For partial date formats, valueObject is never populated; validate them directly.
51208
+ // Validate that the date passed was the correct format and is a valid date
51353
51209
  if (elem.value && !elem.valueObject) {
51354
- const isPartialDateFormat = elem.util && !elem.util.isFullDateFormat(elem.type, elem.format);
51355
-
51356
- if (isPartialDateFormat) {
51357
- if (!elem.util.isValidPartialDate(elem.value, elem.format)) {
51358
- elem.validity = 'patternMismatch';
51359
- elem.errorMessage = elem.setCustomValidityPatternMismatch || elem.setCustomValidity || 'Invalid Date Format Entered';
51360
- }
51361
- // Partial date format — validate directly and skip max/min checks since valueObject is undefined.
51362
- return;
51363
- }
51364
-
51365
- // Full date format with no valueObject means the value is not a valid calendar date.
51366
51210
  elem.validity = 'patternMismatch';
51367
51211
  elem.errorMessage = elem.setCustomValidityPatternMismatch || elem.setCustomValidity || 'Invalid Date Format Entered';
51368
51212
  return;
@@ -51934,7 +51778,7 @@ let AuroHelpText$1$2 = class AuroHelpText extends i$3 {
51934
51778
  }
51935
51779
  };
51936
51780
 
51937
- var formkitVersion$1$2 = '202607011914';
51781
+ var formkitVersion$1$2 = '202607011730';
51938
51782
 
51939
51783
  // Copyright (c) 2026 Alaska Airlines. All rights reserved. Licensed under the Apache-2.0 license
51940
51784
  // See LICENSE in the project root for license information.
@@ -56262,7 +56106,7 @@ let AuroHelpText$6 = class AuroHelpText extends i$3 {
56262
56106
  }
56263
56107
  };
56264
56108
 
56265
- var formkitVersion$6 = '202607011914';
56109
+ var formkitVersion$6 = '202607011730';
56266
56110
 
56267
56111
  let AuroElement$1$2 = class AuroElement extends i$3 {
56268
56112
  static get properties() {
@@ -57014,23 +56858,6 @@ let AuroDropdown$2 = class AuroDropdown extends AuroElement$1$2 {
57014
56858
  if (!this.isPopoverVisible && this.hasFocus && eventType === "keydown") {
57015
56859
  this.trigger.focus();
57016
56860
  }
57017
-
57018
-
57019
- if (!this.isPopoverVisible) {
57020
- // wait til the bib gets fully closed and rendered
57021
- setTimeout(() => {
57022
- // Skip if the bib re-opened, or if focus moved intentionally outside the dropdown (not to body).
57023
- // Restore focus to trigger when focus is still inside the bib (:focus-within) or fell to body.
57024
- if (this.isPopoverVisible ||
57025
- // eslint-disable-next-line no-extra-parens
57026
- (!this.bibContent?.matches(':focus-within') &&
57027
- document.activeElement !== document.body)) {
57028
- return;
57029
- }
57030
- // Restore focus to the trigger.
57031
- this.trigger.focus();
57032
- });
57033
- }
57034
56861
  }
57035
56862
 
57036
56863
  firstUpdated() {
@@ -59730,21 +59557,8 @@ let AuroFormValidation$4 = class AuroFormValidation {
59730
59557
  return;
59731
59558
  }
59732
59559
 
59733
- // Validate that the date passed was the correct format and is a valid date.
59734
- // For partial date formats, valueObject is never populated; validate them directly.
59560
+ // Validate that the date passed was the correct format and is a valid date
59735
59561
  if (elem.value && !elem.valueObject) {
59736
- const isPartialDateFormat = elem.util && !elem.util.isFullDateFormat(elem.type, elem.format);
59737
-
59738
- if (isPartialDateFormat) {
59739
- if (!elem.util.isValidPartialDate(elem.value, elem.format)) {
59740
- elem.validity = 'patternMismatch';
59741
- elem.errorMessage = elem.setCustomValidityPatternMismatch || elem.setCustomValidity || 'Invalid Date Format Entered';
59742
- }
59743
- // Partial date format — validate directly and skip max/min checks since valueObject is undefined.
59744
- return;
59745
- }
59746
-
59747
- // Full date format with no valueObject means the value is not a valid calendar date.
59748
59562
  elem.validity = 'patternMismatch';
59749
59563
  elem.errorMessage = elem.setCustomValidityPatternMismatch || elem.setCustomValidity || 'Invalid Date Format Entered';
59750
59564
  return;
@@ -60242,7 +60056,7 @@ let AuroHelpText$5 = class AuroHelpText extends i$3 {
60242
60056
  }
60243
60057
  };
60244
60058
 
60245
- var formkitVersion$5 = '202607011914';
60059
+ var formkitVersion$5 = '202607011730';
60246
60060
 
60247
60061
  // Copyright (c) Alaska Air. All right reserved. Licensed under the Apache-2.0 license
60248
60062
  // See LICENSE in the project root for license information.
@@ -61491,21 +61305,8 @@ let AuroFormValidation$3 = class AuroFormValidation {
61491
61305
  return;
61492
61306
  }
61493
61307
 
61494
- // Validate that the date passed was the correct format and is a valid date.
61495
- // For partial date formats, valueObject is never populated; validate them directly.
61308
+ // Validate that the date passed was the correct format and is a valid date
61496
61309
  if (elem.value && !elem.valueObject) {
61497
- const isPartialDateFormat = elem.util && !elem.util.isFullDateFormat(elem.type, elem.format);
61498
-
61499
- if (isPartialDateFormat) {
61500
- if (!elem.util.isValidPartialDate(elem.value, elem.format)) {
61501
- elem.validity = 'patternMismatch';
61502
- elem.errorMessage = elem.setCustomValidityPatternMismatch || elem.setCustomValidity || 'Invalid Date Format Entered';
61503
- }
61504
- // Partial date format — validate directly and skip max/min checks since valueObject is undefined.
61505
- return;
61506
- }
61507
-
61508
- // Full date format with no valueObject means the value is not a valid calendar date.
61509
61310
  elem.validity = 'patternMismatch';
61510
61311
  elem.errorMessage = elem.setCustomValidityPatternMismatch || elem.setCustomValidity || 'Invalid Date Format Entered';
61511
61312
  return;
@@ -62007,7 +61808,7 @@ let AuroHelpText$4 = class AuroHelpText extends i$3 {
62007
61808
  }
62008
61809
  };
62009
61810
 
62010
- var formkitVersion$4 = '202607011914';
61811
+ var formkitVersion$4 = '202607011730';
62011
61812
 
62012
61813
  // Copyright (c) 2026 Alaska Airlines. All rights reserved. Licensed under the Apache-2.0 license
62013
61814
  // See LICENSE in the project root for license information.
@@ -62766,21 +62567,8 @@ let AuroFormValidation$1 = class AuroFormValidation {
62766
62567
  return;
62767
62568
  }
62768
62569
 
62769
- // Validate that the date passed was the correct format and is a valid date.
62770
- // For partial date formats, valueObject is never populated; validate them directly.
62570
+ // Validate that the date passed was the correct format and is a valid date
62771
62571
  if (elem.value && !elem.valueObject) {
62772
- const isPartialDateFormat = elem.util && !elem.util.isFullDateFormat(elem.type, elem.format);
62773
-
62774
- if (isPartialDateFormat) {
62775
- if (!elem.util.isValidPartialDate(elem.value, elem.format)) {
62776
- elem.validity = 'patternMismatch';
62777
- elem.errorMessage = elem.setCustomValidityPatternMismatch || elem.setCustomValidity || 'Invalid Date Format Entered';
62778
- }
62779
- // Partial date format — validate directly and skip max/min checks since valueObject is undefined.
62780
- return;
62781
- }
62782
-
62783
- // Full date format with no valueObject means the value is not a valid calendar date.
62784
62572
  elem.validity = 'patternMismatch';
62785
62573
  elem.errorMessage = elem.setCustomValidityPatternMismatch || elem.setCustomValidity || 'Invalid Date Format Entered';
62786
62574
  return;
@@ -67228,7 +67016,7 @@ let AuroHelpText$2 = class AuroHelpText extends i$3 {
67228
67016
  }
67229
67017
  };
67230
67018
 
67231
- var formkitVersion$2 = '202607011914';
67019
+ var formkitVersion$2 = '202607011730';
67232
67020
 
67233
67021
  let AuroElement$2$1 = class AuroElement extends i$3 {
67234
67022
  static get properties() {
@@ -67980,23 +67768,6 @@ let AuroDropdown$1 = class AuroDropdown extends AuroElement$2$1 {
67980
67768
  if (!this.isPopoverVisible && this.hasFocus && eventType === "keydown") {
67981
67769
  this.trigger.focus();
67982
67770
  }
67983
-
67984
-
67985
- if (!this.isPopoverVisible) {
67986
- // wait til the bib gets fully closed and rendered
67987
- setTimeout(() => {
67988
- // Skip if the bib re-opened, or if focus moved intentionally outside the dropdown (not to body).
67989
- // Restore focus to trigger when focus is still inside the bib (:focus-within) or fell to body.
67990
- if (this.isPopoverVisible ||
67991
- // eslint-disable-next-line no-extra-parens
67992
- (!this.bibContent?.matches(':focus-within') &&
67993
- document.activeElement !== document.body)) {
67994
- return;
67995
- }
67996
- // Restore focus to the trigger.
67997
- this.trigger.focus();
67998
- });
67999
- }
68000
67771
  }
68001
67772
 
68002
67773
  firstUpdated() {
@@ -72922,21 +72693,8 @@ let AuroFormValidation$2 = class AuroFormValidation {
72922
72693
  return;
72923
72694
  }
72924
72695
 
72925
- // Validate that the date passed was the correct format and is a valid date.
72926
- // For partial date formats, valueObject is never populated; validate them directly.
72696
+ // Validate that the date passed was the correct format and is a valid date
72927
72697
  if (elem.value && !elem.valueObject) {
72928
- const isPartialDateFormat = elem.util && !elem.util.isFullDateFormat(elem.type, elem.format);
72929
-
72930
- if (isPartialDateFormat) {
72931
- if (!elem.util.isValidPartialDate(elem.value, elem.format)) {
72932
- elem.validity = 'patternMismatch';
72933
- elem.errorMessage = elem.setCustomValidityPatternMismatch || elem.setCustomValidity || 'Invalid Date Format Entered';
72934
- }
72935
- // Partial date format — validate directly and skip max/min checks since valueObject is undefined.
72936
- return;
72937
- }
72938
-
72939
- // Full date format with no valueObject means the value is not a valid calendar date.
72940
72698
  elem.validity = 'patternMismatch';
72941
72699
  elem.errorMessage = elem.setCustomValidityPatternMismatch || elem.setCustomValidity || 'Invalid Date Format Entered';
72942
72700
  return;
@@ -78866,11 +78624,10 @@ class AuroInputUtilities {
78866
78624
  const dateFormat = format$1 || this.overrideFormat || pattern || 'mm/dd/yyyy';
78867
78625
 
78868
78626
  if (dateFormat === 'dd' || dateFormat === 'yy' || dateFormat === 'yyyy') {
78869
- const fromValue = dateFormat === 'yyyy' ? 1900 : (dateFormat === 'yy' ? 0 : 1);
78870
- const maxValue = dateFormat === 'dd' ? 31 : (dateFormat === 'yy' ? 99 : 2100);
78627
+ const maxValue = dateFormat === 'dd' ? 31 : (dateFormat === 'yy' ? 99 : 9999);
78871
78628
  return {
78872
78629
  mask: IMask.MaskedRange,
78873
- from: fromValue,
78630
+ from: 1,
78874
78631
  to: maxValue,
78875
78632
  lazy: true,
78876
78633
  placeholderChar: '',
@@ -78878,8 +78635,7 @@ class AuroInputUtilities {
78878
78635
  return value.toString().padStart(dateFormat.length, '0');
78879
78636
  },
78880
78637
  parse(str) {
78881
- const num = parseInt(str, 10);
78882
- return isNaN(num) ? null : num;
78638
+ return parseInt(str) || null;
78883
78639
  }
78884
78640
  };
78885
78641
  }
@@ -78943,49 +78699,6 @@ class AuroInputUtilities {
78943
78699
  return type === 'date' && normalizedFormat.includes('yy') && normalizedFormat.includes('mm') && normalizedFormat.includes('dd');
78944
78700
  }
78945
78701
 
78946
- /**
78947
- * Validates a value against a partial date format (one that lacks yy/mm/dd all three).
78948
- * Day- and year-only formats (dd/yy/yyyy) are checked as integer ranges; other partial formats use
78949
- * a date-fns parse + round-trip to confirm both validity and exact formatting.
78950
- * @param {string} value - The user-facing display value.
78951
- * @param {string} format - The partial date format string (e.g. "mm/yyyy", "yyyy", "dd").
78952
- * @returns {boolean}
78953
- */
78954
- isValidPartialDate(value, format$1) {
78955
- if (!value || !format$1) {
78956
- return false;
78957
- }
78958
- const normalizedFormat = format$1.toLowerCase();
78959
-
78960
- if (normalizedFormat === 'dd') {
78961
- const num = Number(value);
78962
- return (/^\d{2}$/u).test(value) && num >= 1 && num <= 31;
78963
- }
78964
- if (normalizedFormat === 'yy') {
78965
- const num = Number(value);
78966
- return (/^\d{2}$/u).test(value) && num >= 0 && num <= 99;
78967
- }
78968
- if (normalizedFormat === 'yyyy') {
78969
- const num = Number(value);
78970
- return (/^\d{4}$/u).test(value) && num >= 1900 && num <= 2100;
78971
- }
78972
-
78973
- const dateFnsMask = this.toDateFnsMask(normalizedFormat);
78974
- // Use the 1st of the current month as the reference so that formats
78975
- // omitting a day (e.g. MM/yyyy) never roll over on days 29–31.
78976
- const referenceDate = new Date();
78977
- referenceDate.setDate(1);
78978
- const parsed = parse(value, dateFnsMask, referenceDate);
78979
- if (!isValid(parsed) || format(parsed, dateFnsMask) !== value) {
78980
- return false;
78981
- }
78982
- if (normalizedFormat.includes('yyyy')) {
78983
- const year = parsed.getFullYear();
78984
- return year >= 1900 && year <= 2100;
78985
- }
78986
- return true;
78987
- }
78988
-
78989
78702
  /**
78990
78703
  * Converts a display string to its model value.
78991
78704
  * For full date formats, converts the display string to an ISO date string.
@@ -79605,13 +79318,6 @@ class BaseInput extends AuroElement$1$1 {
79605
79318
  type: String
79606
79319
  },
79607
79320
 
79608
- /**
79609
- * Custom help text message to display when validity = `patternMismatch`.
79610
- */
79611
- setCustomValidityPatternMismatch: {
79612
- type: String
79613
- },
79614
-
79615
79321
  /**
79616
79322
  * Custom help text message to display when validity = `rangeOverflow`.
79617
79323
  */
@@ -79682,7 +79388,7 @@ class BaseInput extends AuroElement$1$1 {
79682
79388
 
79683
79389
  /**
79684
79390
  * Populates the `type` attribute on the input.
79685
- * @type {'text' | 'password' | 'email' | 'credit-card' | 'tel' | 'number' | 'date'}
79391
+ * @type {'text' | 'password' | 'email' | 'credit-card' | 'tel' | 'number'}
79686
79392
  * @default 'text'
79687
79393
  */
79688
79394
  type: {
@@ -79707,7 +79413,7 @@ class BaseInput extends AuroElement$1$1 {
79707
79413
 
79708
79414
  /**
79709
79415
  * Populates the `value` attribute on the input. Can also be read to retrieve the current value of the input.
79710
- * For `date` type inputs using a full date format (year/month/day), the `value` should be ISO (YYYY-MM-DD). Partial date formats use the display format.
79416
+ * The format for this property should be ISO for `date` type inputs.
79711
79417
  */
79712
79418
  value: {
79713
79419
  type: String
@@ -80830,7 +80536,7 @@ let AuroHelpText$1$1 = class AuroHelpText extends i$3 {
80830
80536
  }
80831
80537
  };
80832
80538
 
80833
- var formkitVersion$1$1 = '202607011914';
80539
+ var formkitVersion$1$1 = '202607011730';
80834
80540
 
80835
80541
  // Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
80836
80542
  // See LICENSE in the project root for license information.
@@ -81956,7 +81662,7 @@ let AuroBibtemplate$1 = class AuroBibtemplate extends i$3 {
81956
81662
  }
81957
81663
  };
81958
81664
 
81959
- var formkitVersion$3 = '202607011914';
81665
+ var formkitVersion$3 = '202607011730';
81960
81666
 
81961
81667
  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}`;
81962
81668
 
@@ -86290,21 +85996,8 @@ class AuroFormValidation {
86290
85996
  return;
86291
85997
  }
86292
85998
 
86293
- // Validate that the date passed was the correct format and is a valid date.
86294
- // For partial date formats, valueObject is never populated; validate them directly.
85999
+ // Validate that the date passed was the correct format and is a valid date
86295
86000
  if (elem.value && !elem.valueObject) {
86296
- const isPartialDateFormat = elem.util && !elem.util.isFullDateFormat(elem.type, elem.format);
86297
-
86298
- if (isPartialDateFormat) {
86299
- if (!elem.util.isValidPartialDate(elem.value, elem.format)) {
86300
- elem.validity = 'patternMismatch';
86301
- elem.errorMessage = elem.setCustomValidityPatternMismatch || elem.setCustomValidity || 'Invalid Date Format Entered';
86302
- }
86303
- // Partial date format — validate directly and skip max/min checks since valueObject is undefined.
86304
- return;
86305
- }
86306
-
86307
- // Full date format with no valueObject means the value is not a valid calendar date.
86308
86001
  elem.validity = 'patternMismatch';
86309
86002
  elem.errorMessage = elem.setCustomValidityPatternMismatch || elem.setCustomValidity || 'Invalid Date Format Entered';
86310
86003
  return;
@@ -90792,7 +90485,7 @@ let AuroHelpText$1 = class AuroHelpText extends i$3 {
90792
90485
  }
90793
90486
  };
90794
90487
 
90795
- var formkitVersion$1 = '202607011914';
90488
+ var formkitVersion$1 = '202607011730';
90796
90489
 
90797
90490
  class AuroElement extends i$3 {
90798
90491
  static get properties() {
@@ -91544,23 +91237,6 @@ class AuroDropdown extends AuroElement {
91544
91237
  if (!this.isPopoverVisible && this.hasFocus && eventType === "keydown") {
91545
91238
  this.trigger.focus();
91546
91239
  }
91547
-
91548
-
91549
- if (!this.isPopoverVisible) {
91550
- // wait til the bib gets fully closed and rendered
91551
- setTimeout(() => {
91552
- // Skip if the bib re-opened, or if focus moved intentionally outside the dropdown (not to body).
91553
- // Restore focus to trigger when focus is still inside the bib (:focus-within) or fell to body.
91554
- if (this.isPopoverVisible ||
91555
- // eslint-disable-next-line no-extra-parens
91556
- (!this.bibContent?.matches(':focus-within') &&
91557
- document.activeElement !== document.body)) {
91558
- return;
91559
- }
91560
- // Restore focus to the trigger.
91561
- this.trigger.focus();
91562
- });
91563
- }
91564
91240
  }
91565
91241
 
91566
91242
  firstUpdated() {
@@ -92831,7 +92507,7 @@ class AuroHelpText extends i$3 {
92831
92507
  }
92832
92508
  }
92833
92509
 
92834
- var formkitVersion = '202607011914';
92510
+ var formkitVersion = '202607011730';
92835
92511
 
92836
92512
  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}`;
92837
92513
 
@@ -93692,14 +93368,6 @@ class AuroSelect extends AuroElement$1 {
93692
93368
  this.menu.addEventListener("auroMenu-loadingChange", (event) => this.handleMenuLoadingChange(event));
93693
93369
 
93694
93370
  this.menu.addEventListener("auroMenu-selectValueFailure", () => {
93695
- // Menu dispatches this from two paths: a programmatic value mismatch
93696
- // (menu pre-clears its own optionSelected to undefined before firing)
93697
- // and a click on an unselected valueless option (menu leaves state
93698
- // untouched). Only mirror the clear in the first case — otherwise a
93699
- // valueless click in multiSelect would wipe every prior pick.
93700
- if (this.menu.optionSelected !== undefined) {
93701
- return;
93702
- }
93703
93371
  this.value = undefined;
93704
93372
  this.optionSelected = this.multiSelect ? [] : undefined;
93705
93373
  // The trigger label is rendered imperatively into #value, so a property
@@ -93900,13 +93568,6 @@ class AuroSelect extends AuroElement$1 {
93900
93568
  const cycleIndex = (this.typeaheadBuffer.length - 1) % matches.length;
93901
93569
  match = matches[cycleIndex];
93902
93570
  }
93903
- } else if (!match && this.typeaheadBuffer.length > 1) {
93904
- // Buffer has no prefix match and isn't a repeat-char cycle (e.g. "a" then
93905
- // "b" against [Apple, Banana]). Reset to just the new key and retry —
93906
- // mirrors native <select>, which falls back to a single-char search when
93907
- // accumulated input matches nothing, rather than swallowing the keystroke.
93908
- this.typeaheadBuffer = key;
93909
- match = options.find((option) => this._getOptionDisplayText(option).startsWith(key));
93910
93571
  }
93911
93572
 
93912
93573
  // Intentional: no-match leaves the bib closed (deviates from APG / some native <select>).