@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
@@ -4414,21 +4414,8 @@ let AuroFormValidation$7 = class AuroFormValidation {
4414
4414
  return;
4415
4415
  }
4416
4416
 
4417
- // Validate that the date passed was the correct format and is a valid date.
4418
- // For partial date formats, valueObject is never populated; validate them directly.
4417
+ // Validate that the date passed was the correct format and is a valid date
4419
4418
  if (elem.value && !elem.valueObject) {
4420
- const isPartialDateFormat = elem.util && !elem.util.isFullDateFormat(elem.type, elem.format);
4421
-
4422
- if (isPartialDateFormat) {
4423
- if (!elem.util.isValidPartialDate(elem.value, elem.format)) {
4424
- elem.validity = 'patternMismatch';
4425
- elem.errorMessage = elem.setCustomValidityPatternMismatch || elem.setCustomValidity || 'Invalid Date Format Entered';
4426
- }
4427
- // Partial date format — validate directly and skip max/min checks since valueObject is undefined.
4428
- return;
4429
- }
4430
-
4431
- // Full date format with no valueObject means the value is not a valid calendar date.
4432
4419
  elem.validity = 'patternMismatch';
4433
4420
  elem.errorMessage = elem.setCustomValidityPatternMismatch || elem.setCustomValidity || 'Invalid Date Format Entered';
4434
4421
  return;
@@ -10358,11 +10345,10 @@ let AuroInputUtilities$3 = class AuroInputUtilities {
10358
10345
  const dateFormat = format$1 || this.overrideFormat || pattern || 'mm/dd/yyyy';
10359
10346
 
10360
10347
  if (dateFormat === 'dd' || dateFormat === 'yy' || dateFormat === 'yyyy') {
10361
- const fromValue = dateFormat === 'yyyy' ? 1900 : (dateFormat === 'yy' ? 0 : 1);
10362
- const maxValue = dateFormat === 'dd' ? 31 : (dateFormat === 'yy' ? 99 : 2100);
10348
+ const maxValue = dateFormat === 'dd' ? 31 : (dateFormat === 'yy' ? 99 : 9999);
10363
10349
  return {
10364
10350
  mask: IMask$3.MaskedRange,
10365
- from: fromValue,
10351
+ from: 1,
10366
10352
  to: maxValue,
10367
10353
  lazy: true,
10368
10354
  placeholderChar: '',
@@ -10370,8 +10356,7 @@ let AuroInputUtilities$3 = class AuroInputUtilities {
10370
10356
  return value.toString().padStart(dateFormat.length, '0');
10371
10357
  },
10372
10358
  parse(str) {
10373
- const num = parseInt(str, 10);
10374
- return isNaN(num) ? null : num;
10359
+ return parseInt(str) || null;
10375
10360
  }
10376
10361
  };
10377
10362
  }
@@ -10435,49 +10420,6 @@ let AuroInputUtilities$3 = class AuroInputUtilities {
10435
10420
  return type === 'date' && normalizedFormat.includes('yy') && normalizedFormat.includes('mm') && normalizedFormat.includes('dd');
10436
10421
  }
10437
10422
 
10438
- /**
10439
- * Validates a value against a partial date format (one that lacks yy/mm/dd all three).
10440
- * Day- and year-only formats (dd/yy/yyyy) are checked as integer ranges; other partial formats use
10441
- * a date-fns parse + round-trip to confirm both validity and exact formatting.
10442
- * @param {string} value - The user-facing display value.
10443
- * @param {string} format - The partial date format string (e.g. "mm/yyyy", "yyyy", "dd").
10444
- * @returns {boolean}
10445
- */
10446
- isValidPartialDate(value, format$1) {
10447
- if (!value || !format$1) {
10448
- return false;
10449
- }
10450
- const normalizedFormat = format$1.toLowerCase();
10451
-
10452
- if (normalizedFormat === 'dd') {
10453
- const num = Number(value);
10454
- return (/^\d{2}$/u).test(value) && num >= 1 && num <= 31;
10455
- }
10456
- if (normalizedFormat === 'yy') {
10457
- const num = Number(value);
10458
- return (/^\d{2}$/u).test(value) && num >= 0 && num <= 99;
10459
- }
10460
- if (normalizedFormat === 'yyyy') {
10461
- const num = Number(value);
10462
- return (/^\d{4}$/u).test(value) && num >= 1900 && num <= 2100;
10463
- }
10464
-
10465
- const dateFnsMask = this.toDateFnsMask(normalizedFormat);
10466
- // Use the 1st of the current month as the reference so that formats
10467
- // omitting a day (e.g. MM/yyyy) never roll over on days 29–31.
10468
- const referenceDate = new Date();
10469
- referenceDate.setDate(1);
10470
- const parsed = parse$3(value, dateFnsMask, referenceDate);
10471
- if (!isValid$3(parsed) || format$3(parsed, dateFnsMask) !== value) {
10472
- return false;
10473
- }
10474
- if (normalizedFormat.includes('yyyy')) {
10475
- const year = parsed.getFullYear();
10476
- return year >= 1900 && year <= 2100;
10477
- }
10478
- return true;
10479
- }
10480
-
10481
10423
  /**
10482
10424
  * Converts a display string to its model value.
10483
10425
  * For full date formats, converts the display string to an ISO date string.
@@ -11097,13 +11039,6 @@ let BaseInput$2 = class BaseInput extends AuroElement$6 {
11097
11039
  type: String
11098
11040
  },
11099
11041
 
11100
- /**
11101
- * Custom help text message to display when validity = `patternMismatch`.
11102
- */
11103
- setCustomValidityPatternMismatch: {
11104
- type: String
11105
- },
11106
-
11107
11042
  /**
11108
11043
  * Custom help text message to display when validity = `rangeOverflow`.
11109
11044
  */
@@ -11174,7 +11109,7 @@ let BaseInput$2 = class BaseInput extends AuroElement$6 {
11174
11109
 
11175
11110
  /**
11176
11111
  * Populates the `type` attribute on the input.
11177
- * @type {'text' | 'password' | 'email' | 'credit-card' | 'tel' | 'number' | 'date'}
11112
+ * @type {'text' | 'password' | 'email' | 'credit-card' | 'tel' | 'number'}
11178
11113
  * @default 'text'
11179
11114
  */
11180
11115
  type: {
@@ -11199,7 +11134,7 @@ let BaseInput$2 = class BaseInput extends AuroElement$6 {
11199
11134
 
11200
11135
  /**
11201
11136
  * Populates the `value` attribute on the input. Can also be read to retrieve the current value of the input.
11202
- * 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.
11137
+ * The format for this property should be ISO for `date` type inputs.
11203
11138
  */
11204
11139
  value: {
11205
11140
  type: String
@@ -12322,7 +12257,7 @@ let AuroHelpText$8 = class AuroHelpText extends i$2 {
12322
12257
  }
12323
12258
  };
12324
12259
 
12325
- var formkitVersion$8 = '202607011914';
12260
+ var formkitVersion$8 = '202607011730';
12326
12261
 
12327
12262
  // Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
12328
12263
  // See LICENSE in the project root for license information.
@@ -13597,21 +13532,8 @@ let AuroFormValidation$1$1 = class AuroFormValidation {
13597
13532
  return;
13598
13533
  }
13599
13534
 
13600
- // Validate that the date passed was the correct format and is a valid date.
13601
- // For partial date formats, valueObject is never populated; validate them directly.
13535
+ // Validate that the date passed was the correct format and is a valid date
13602
13536
  if (elem.value && !elem.valueObject) {
13603
- const isPartialDateFormat = elem.util && !elem.util.isFullDateFormat(elem.type, elem.format);
13604
-
13605
- if (isPartialDateFormat) {
13606
- if (!elem.util.isValidPartialDate(elem.value, elem.format)) {
13607
- elem.validity = 'patternMismatch';
13608
- elem.errorMessage = elem.setCustomValidityPatternMismatch || elem.setCustomValidity || 'Invalid Date Format Entered';
13609
- }
13610
- // Partial date format — validate directly and skip max/min checks since valueObject is undefined.
13611
- return;
13612
- }
13613
-
13614
- // Full date format with no valueObject means the value is not a valid calendar date.
13615
13537
  elem.validity = 'patternMismatch';
13616
13538
  elem.errorMessage = elem.setCustomValidityPatternMismatch || elem.setCustomValidity || 'Invalid Date Format Entered';
13617
13539
  return;
@@ -23464,11 +23386,10 @@ let AuroInputUtilities$1 = class AuroInputUtilities {
23464
23386
  const dateFormat = format || this.overrideFormat || pattern || 'mm/dd/yyyy';
23465
23387
 
23466
23388
  if (dateFormat === 'dd' || dateFormat === 'yy' || dateFormat === 'yyyy') {
23467
- const fromValue = dateFormat === 'yyyy' ? 1900 : (dateFormat === 'yy' ? 0 : 1);
23468
- const maxValue = dateFormat === 'dd' ? 31 : (dateFormat === 'yy' ? 99 : 2100);
23389
+ const maxValue = dateFormat === 'dd' ? 31 : (dateFormat === 'yy' ? 99 : 9999);
23469
23390
  return {
23470
23391
  mask: IMask$1.MaskedRange,
23471
- from: fromValue,
23392
+ from: 1,
23472
23393
  to: maxValue,
23473
23394
  lazy: true,
23474
23395
  placeholderChar: '',
@@ -23476,8 +23397,7 @@ let AuroInputUtilities$1 = class AuroInputUtilities {
23476
23397
  return value.toString().padStart(dateFormat.length, '0');
23477
23398
  },
23478
23399
  parse(str) {
23479
- const num = parseInt(str, 10);
23480
- return isNaN(num) ? null : num;
23400
+ return parseInt(str) || null;
23481
23401
  }
23482
23402
  };
23483
23403
  }
@@ -23541,49 +23461,6 @@ let AuroInputUtilities$1 = class AuroInputUtilities {
23541
23461
  return type === 'date' && normalizedFormat.includes('yy') && normalizedFormat.includes('mm') && normalizedFormat.includes('dd');
23542
23462
  }
23543
23463
 
23544
- /**
23545
- * Validates a value against a partial date format (one that lacks yy/mm/dd all three).
23546
- * Day- and year-only formats (dd/yy/yyyy) are checked as integer ranges; other partial formats use
23547
- * a date-fns parse + round-trip to confirm both validity and exact formatting.
23548
- * @param {string} value - The user-facing display value.
23549
- * @param {string} format - The partial date format string (e.g. "mm/yyyy", "yyyy", "dd").
23550
- * @returns {boolean}
23551
- */
23552
- isValidPartialDate(value, format) {
23553
- if (!value || !format) {
23554
- return false;
23555
- }
23556
- const normalizedFormat = format.toLowerCase();
23557
-
23558
- if (normalizedFormat === 'dd') {
23559
- const num = Number(value);
23560
- return (/^\d{2}$/u).test(value) && num >= 1 && num <= 31;
23561
- }
23562
- if (normalizedFormat === 'yy') {
23563
- const num = Number(value);
23564
- return (/^\d{2}$/u).test(value) && num >= 0 && num <= 99;
23565
- }
23566
- if (normalizedFormat === 'yyyy') {
23567
- const num = Number(value);
23568
- return (/^\d{4}$/u).test(value) && num >= 1900 && num <= 2100;
23569
- }
23570
-
23571
- const dateFnsMask = this.toDateFnsMask(normalizedFormat);
23572
- // Use the 1st of the current month as the reference so that formats
23573
- // omitting a day (e.g. MM/yyyy) never roll over on days 29–31.
23574
- const referenceDate = new Date();
23575
- referenceDate.setDate(1);
23576
- const parsed = parse$1(value, dateFnsMask, referenceDate);
23577
- if (!isValid$1(parsed) || format$1(parsed, dateFnsMask) !== value) {
23578
- return false;
23579
- }
23580
- if (normalizedFormat.includes('yyyy')) {
23581
- const year = parsed.getFullYear();
23582
- return year >= 1900 && year <= 2100;
23583
- }
23584
- return true;
23585
- }
23586
-
23587
23464
  /**
23588
23465
  * Converts a display string to its model value.
23589
23466
  * For full date formats, converts the display string to an ISO date string.
@@ -25513,6 +25390,33 @@ class AuroCalendarCell extends i$2 {
25513
25390
  btn.classList.remove('inRange', 'lastHoveredDate', 'rangeDepartDate');
25514
25391
  }
25515
25392
 
25393
+ /**
25394
+ * Re-applies the committed-range classes (inRange / rangeDepartDate /
25395
+ * rangeReturnDate) imperatively from the current dateFrom/dateTo. Used
25396
+ * after month navigation flushes: classMap in `renderCellButton` tracks
25397
+ * its own previous state, so a preceding imperative `classList.remove`
25398
+ * (from `clearRangePreviewClasses`) leaves classMap thinking the class
25399
+ * is still applied. On re-render with the same class-value, classMap
25400
+ * emits no delta and the class stays missing in the DOM. Re-toggling
25401
+ * imperatively resyncs the DOM with the committed range.
25402
+ * @param {Number} dateFrom - Depart timestamp (seconds).
25403
+ * @param {Number} dateTo - Return timestamp (seconds).
25404
+ * @returns {void}
25405
+ */
25406
+ applyCommittedRangeClasses(dateFrom, dateTo) {
25407
+ const btn = this._cachedButton;
25408
+ if (!btn || !this.day || !this.day.date) return;
25409
+
25410
+ const dayDate = new Date(this.day.date * 1000).setHours(0, 0, 0, 0) / 1000;
25411
+ const isInRange = dayDate > dateFrom && dayDate < dateTo;
25412
+ const isDepart = dayDate === dateFrom;
25413
+ const isReturn = dayDate === dateTo;
25414
+
25415
+ btn.classList.toggle('inRange', isInRange);
25416
+ btn.classList.toggle('rangeDepartDate', isDepart);
25417
+ btn.classList.toggle('rangeReturnDate', isReturn);
25418
+ }
25419
+
25516
25420
  renderCellButton() {
25517
25421
  const outOfRange = this.isOutOfRange(this.day, this.min, this.max);
25518
25422
  const blackout = this.isBlackout();
@@ -26657,7 +26561,7 @@ let AuroBibtemplate$3 = class AuroBibtemplate extends i$2 {
26657
26561
  }
26658
26562
  };
26659
26563
 
26660
- var formkitVersion$2$1 = '202607011914';
26564
+ var formkitVersion$2$1 = '202607011730';
26661
26565
 
26662
26566
  let l$1$2 = class l{generateElementName(t,e){let o=t;return o+="-",o+=e.replace(/[.]/g,"_"),o}generateTag(o,s,a){const r=this.generateElementName(o,s),i=i$5`${s$5(r)}`;return customElements.get(r)||customElements.define(r,class extends a{}),i}};let d$1$2 = class d{registerComponent(t,e){customElements.get(t)||customElements.define(t,class extends e{});}closestElement(t,e=this,o=(e,s=e&&e.closest(t))=>e&&e!==document&&e!==window?s||o(e.getRootNode().host):null){return o(e)}handleComponentTagRename(t,e){const o=e.toLowerCase();t.tagName.toLowerCase()!==o&&t.setAttribute(o,true);}elementMatch(t,e){const o=e.toLowerCase();return t.tagName.toLowerCase()===o||t.hasAttribute(o)}getSlotText(t,e){const o=t.shadowRoot?.querySelector(`slot[name="${e}"]`),s=(o?.assignedNodes({flatten:true})||[]).map(t=>t.textContent?.trim()).join(" ").trim();return s||null}};let h$1$2 = class h{registerComponent(t,e){customElements.get(t)||customElements.define(t,class extends e{});}closestElement(t,e=this,o=(e,s=e&&e.closest(t))=>e&&e!==document&&e!==window?s||o(e.getRootNode().host):null){return o(e)}handleComponentTagRename(t,e){const o=e.toLowerCase();t.tagName.toLowerCase()!==o&&t.setAttribute(o,true);}elementMatch(t,e){const o=e.toLowerCase();return t.tagName.toLowerCase()===o||t.hasAttribute(o)}};var c$1$3=i$4`:host{color:var(--ds-auro-loader-color)}:host>span{background-color:var(--ds-auro-loader-background-color);border-color:var(--ds-auro-loader-border-color)}:host([onlight]),:host([appearance=brand]){--ds-auro-loader-color: var(--ds-basic-color-brand-primary, #01426a)}:host([ondark]),:host([appearance=inverse]){--ds-auro-loader-color: var(--ds-basic-color-texticon-inverse, #ffffff)}:host([orbit])>span{--ds-auro-loader-background-color: transparent}:host([orbit])>span:nth-child(1){--ds-auro-loader-border-color: currentcolor;opacity:.25}:host([orbit])>span:nth-child(2){--ds-auro-loader-border-color: currentcolor;border-right-color:transparent;border-bottom-color:transparent;border-left-color:transparent}
26663
26567
  `,u$4$2=i$4`.body-default{font-size:var(--wcss-body-default-font-size, 1rem);line-height:var(--wcss-body-default-line-height, 1.5rem)}.body-default,.body-lg{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-weight, 450);letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-lg{font-size:var(--wcss-body-lg-font-size, 1.125rem);line-height:var(--wcss-body-lg-line-height, 1.625rem)}.body-sm{font-size:var(--wcss-body-sm-font-size, .875rem);line-height:var(--wcss-body-sm-line-height, 1.25rem)}.body-sm,.body-xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-weight, 450);letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-xs{font-size:var(--wcss-body-xs-font-size, .75rem);line-height:var(--wcss-body-xs-line-height, 1rem)}.body-2xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-size:var(--wcss-body-2xs-font-size, .625rem);font-weight:var(--wcss-body-weight, 450);letter-spacing:var(--wcss-body-letter-spacing, 0);line-height:var(--wcss-body-2xs-line-height, .875rem)}.display-2xl{font-family:var(--wcss-display-2xl-family, "AS Circular"),var(--wcss-display-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-2xl-font-size, clamp(3.5rem, 6vw, 5.375rem));font-weight:var(--wcss-display-2xl-weight, 300);letter-spacing:var(--wcss-display-2xl-letter-spacing, 0);line-height:var(--wcss-display-2xl-line-height, 1.3)}.display-xl{font-family:var(--wcss-display-xl-family, "AS Circular"),var(--wcss-display-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-xl-font-size, clamp(3rem, 5.3333333333vw, 4.5rem));font-weight:var(--wcss-display-xl-weight, 300);letter-spacing:var(--wcss-display-xl-letter-spacing, 0);line-height:var(--wcss-display-xl-line-height, 1.3)}.display-lg{font-family:var(--wcss-display-lg-family, "AS Circular"),var(--wcss-display-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-lg-font-size, clamp(2.75rem, 4.6666666667vw, 4rem));font-weight:var(--wcss-display-lg-weight, 300);letter-spacing:var(--wcss-display-lg-letter-spacing, 0);line-height:var(--wcss-display-lg-line-height, 1.3)}.display-md{font-family:var(--wcss-display-md-family, "AS Circular"),var(--wcss-display-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-md-font-size, clamp(2.5rem, 4vw, 3.5rem));font-weight:var(--wcss-display-md-weight, 300);letter-spacing:var(--wcss-display-md-letter-spacing, 0);line-height:var(--wcss-display-md-line-height, 1.3)}.display-sm{font-family:var(--wcss-display-sm-family, "AS Circular"),var(--wcss-display-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-sm-font-size, clamp(2rem, 3.6666666667vw, 3rem));font-weight:var(--wcss-display-sm-weight, 300);letter-spacing:var(--wcss-display-sm-letter-spacing, 0);line-height:var(--wcss-display-sm-line-height, 1.3)}.display-xs{font-family:var(--wcss-display-xs-family, "AS Circular"),var(--wcss-display-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-xs-font-size, clamp(1.75rem, 3vw, 2.375rem));font-weight:var(--wcss-display-xs-weight, 300);letter-spacing:var(--wcss-display-xs-letter-spacing, 0);line-height:var(--wcss-display-xs-line-height, 1.3)}.heading-xl{font-family:var(--wcss-heading-xl-family, "AS Circular"),var(--wcss-heading-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-xl-font-size, clamp(2rem, 3vw, 2.5rem));font-weight:var(--wcss-heading-xl-weight, 300);letter-spacing:var(--wcss-heading-xl-letter-spacing, 0);line-height:var(--wcss-heading-xl-line-height, 1.3)}.heading-lg{font-family:var(--wcss-heading-lg-family, "AS Circular"),var(--wcss-heading-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-lg-font-size, clamp(1.75rem, 2.6666666667vw, 2.25rem));font-weight:var(--wcss-heading-lg-weight, 300);letter-spacing:var(--wcss-heading-lg-letter-spacing, 0);line-height:var(--wcss-heading-lg-line-height, 1.3)}.heading-md{font-family:var(--wcss-heading-md-family, "AS Circular"),var(--wcss-heading-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-md-font-size, clamp(1.625rem, 2.3333333333vw, 1.75rem));font-weight:var(--wcss-heading-md-weight, 300);letter-spacing:var(--wcss-heading-md-letter-spacing, 0);line-height:var(--wcss-heading-md-line-height, 1.3)}.heading-sm{font-family:var(--wcss-heading-sm-family, "AS Circular"),var(--wcss-heading-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-sm-font-size, clamp(1.375rem, 2vw, 1.5rem));font-weight:var(--wcss-heading-sm-weight, 300);letter-spacing:var(--wcss-heading-sm-letter-spacing, 0);line-height:var(--wcss-heading-sm-line-height, 1.3)}.heading-xs{font-family:var(--wcss-heading-xs-family, "AS Circular"),var(--wcss-heading-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-xs-font-size, clamp(1.25rem, 1.6666666667vw, 1.25rem));font-weight:var(--wcss-heading-xs-weight, 450);letter-spacing:var(--wcss-heading-xs-letter-spacing, 0);line-height:var(--wcss-heading-xs-line-height, 1.3)}.heading-2xs{font-family:var(--wcss-heading-2xs-family, "AS Circular"),var(--wcss-heading-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-2xs-font-size, clamp(1.125rem, 1.5vw, 1.125rem));font-weight:var(--wcss-heading-2xs-weight, 450);letter-spacing:var(--wcss-heading-2xs-letter-spacing, 0);line-height:var(--wcss-heading-2xs-line-height, 1.3)}.accent-2xl{font-family:var(--wcss-accent-2xl-family, "Good OT"),var(--wcss-accent-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-2xl-font-size, clamp(2rem, 3.1666666667vw, 2.375rem));font-weight:var(--wcss-accent-2xl-weight, 450);letter-spacing:var(--wcss-accent-2xl-letter-spacing, .05em);line-height:var(--wcss-accent-2xl-line-height, 1)}.accent-2xl,.accent-xl{text-transform:uppercase}.accent-xl{font-family:var(--wcss-accent-xl-family, "Good OT"),var(--wcss-accent-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-xl-font-size, clamp(1.625rem, 2.3333333333vw, 2rem));font-weight:var(--wcss-accent-xl-weight, 450);letter-spacing:var(--wcss-accent-xl-letter-spacing, .05em);line-height:var(--wcss-accent-xl-line-height, 1.3)}.accent-lg{font-family:var(--wcss-accent-lg-family, "Good OT"),var(--wcss-accent-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-lg-font-size, clamp(1.5rem, 2.1666666667vw, 1.75rem));font-weight:var(--wcss-accent-lg-weight, 450);letter-spacing:var(--wcss-accent-lg-letter-spacing, .05em);line-height:var(--wcss-accent-lg-line-height, 1.3)}.accent-lg,.accent-md{text-transform:uppercase}.accent-md{font-family:var(--wcss-accent-md-family, "Good OT"),var(--wcss-accent-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-md-font-size, clamp(1.375rem, 1.8333333333vw, 1.5rem));font-weight:var(--wcss-accent-md-weight, 500);letter-spacing:var(--wcss-accent-md-letter-spacing, .05em);line-height:var(--wcss-accent-md-line-height, 1.3)}.accent-sm{font-family:var(--wcss-accent-sm-family, "Good OT"),var(--wcss-accent-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-sm-font-size, clamp(1.125rem, 1.5vw, 1.25rem));font-weight:var(--wcss-accent-sm-weight, 500);letter-spacing:var(--wcss-accent-sm-letter-spacing, .05em);line-height:var(--wcss-accent-sm-line-height, 1.3)}.accent-sm,.accent-xs{text-transform:uppercase}.accent-xs{font-family:var(--wcss-accent-xs-family, "Good OT"),var(--wcss-accent-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-xs-font-size, clamp(1rem, 1.3333333333vw, 1rem));font-weight:var(--wcss-accent-xs-weight, 500);letter-spacing:var(--wcss-accent-xs-letter-spacing, .1em);line-height:var(--wcss-accent-xs-line-height, 1.3)}.accent-2xs{font-family:var(--wcss-accent-2xs-family, "Good OT"),var(--wcss-accent-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-2xs-font-size, clamp(.875rem, 1.1666666667vw, .875rem));font-weight:var(--wcss-accent-2xs-weight, 450);letter-spacing:var(--wcss-accent-2xs-letter-spacing, .1em);line-height:var(--wcss-accent-2xs-line-height, 1.3);text-transform:uppercase}:focus:not(:focus-visible){outline:3px solid transparent}:host,:host>span{position:relative}:host{width:2rem;height:2rem;display:inline-block;font-size:0}:host>span{position:absolute;display:inline-block;float:none;top:0;left:0;width:2rem;height:2rem;border-radius:100%;border-style:solid;border-width:0;box-sizing:border-box}:host([xs]),:host([xs])>span{width:1.2rem;height:1.2rem}:host([sm]),:host([sm])>span{width:3rem;height:3rem}:host([md]),:host([md])>span{width:5rem;height:5rem}:host([lg]),:host([lg])>span{width:8rem;height:8rem}:host{--margin: .375rem;--margin-xs: .2rem;--margin-sm: .5rem;--margin-md: .75rem;--margin-lg: 1rem}:host([pulse]),:host([pulse])>span{position:relative}:host([pulse]){width:calc(3rem + var(--margin) * 6);height:calc(1rem + var(--margin) * 2)}:host([pulse])>span{width:1rem;height:1rem;margin:var(--margin);animation:pulse 1.5s ease infinite}:host([pulse][xs]){width:calc(1.95rem + var(--margin-xs) * 6);height:calc(.65rem + var(--margin-xs) * 2)}:host([pulse][xs])>span{margin:var(--margin-xs);width:.65rem;height:.65rem}:host([pulse][sm]){width:calc(6rem + var(--margin-sm) * 6);height:calc(2rem + var(--margin-sm) * 2)}:host([pulse][sm])>span{margin:var(--margin-sm);width:2rem;height:2rem}:host([pulse][md]){width:calc(9rem + var(--margin-md) * 6);height:calc(3rem + var(--margin-md) * 2)}:host([pulse][md])>span{margin:var(--margin-md);width:3rem;height:3rem}:host([pulse][lg]){width:calc(15rem + var(--margin-lg) * 6);height:calc(5rem + var(--margin-lg) * 2)}:host([pulse][lg])>span{margin:var(--margin-lg);width:5rem;height:5rem}:host([pulse])>span:nth-child(1){animation-delay:-.4s}:host([pulse])>span:nth-child(2){animation-delay:-.2s}:host([pulse])>span:nth-child(3){animation-delay:0ms}@keyframes pulse{0%,to{opacity:.1;transform:scale(.9)}50%{opacity:1;transform:scale(1.1)}}:host([orbit]),:host([orbit])>span{opacity:1}:host([orbit])>span{border-width:5px}:host([orbit])>span:nth-child(2){animation:orbit 2s linear infinite}:host([orbit][sm])>span{border-width:8px}:host([orbit][md])>span{border-width:13px}:host([orbit][lg])>span{border-width:21px}@keyframes orbit{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host([ringworm])>svg{animation:rotate 2s linear infinite;height:100%;width:100%;stroke:currentcolor;stroke-width:8}:host([ringworm]) .path{stroke-dashoffset:0;animation:ringworm 1.5s ease-in-out infinite;stroke-linecap:round}@keyframes rotate{to{transform:rotate(360deg)}}@keyframes ringworm{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:89,200;stroke-dashoffset:-35px}to{stroke-dasharray:89,200;stroke-dashoffset:-124px}}:host([laser]){position:static;width:100%;display:block;height:0;overflow:hidden;font-size:unset}:host([laser])>span{position:fixed;width:100%;height:.25rem;border-radius:0;z-index:100}:host([laser])>span:nth-child(1){border-color:currentcolor;opacity:.25}:host([laser])>span:nth-child(2){border-color:currentcolor;animation:laser 2s linear infinite;opacity:1;width:50%}:host([laser][sm])>span:nth-child(2){width:20%}:host([laser][md])>span:nth-child(2){width:30%}:host([laser][lg])>span:nth-child(2){width:50%;animation-duration:1.5s}:host([laser][xl])>span:nth-child(2){width:80%;animation-duration:1.5s}@keyframes laser{0%{left:-100%}to{left:110%}}:host>.no-animation{display:none}@media (prefers-reduced-motion: reduce){:host{display:flex;align-items:center;justify-content:center}:host>span{opacity:1}:host>.loader{display:none}:host>svg{display:none}:host>.no-animation{display:block}}
@@ -27002,6 +26906,11 @@ class AuroCalendar extends RangeDatepicker {
27002
26906
  if (!opts.skipActiveUpdate) {
27003
26907
  this.updateActiveCellForVisibleMonth();
27004
26908
  }
26909
+ // clearRangePreview above strips classMap-managed range classes from
26910
+ // the DOM; classMap's private state still thinks they're applied, so
26911
+ // it won't re-add them on the post-nav re-render. Re-apply imperatively
26912
+ // after both months and their cell button caches have settled.
26913
+ this._afterMonthRender(() => this.refreshCommittedRangeClasses());
27005
26914
  this.announceMonthChange();
27006
26915
  }
27007
26916
 
@@ -27020,6 +26929,11 @@ class AuroCalendar extends RangeDatepicker {
27020
26929
  if (!opts.skipActiveUpdate) {
27021
26930
  this.updateActiveCellForVisibleMonth();
27022
26931
  }
26932
+ // clearRangePreview above strips classMap-managed range classes from
26933
+ // the DOM; classMap's private state still thinks they're applied, so
26934
+ // it won't re-add them on the post-nav re-render. Re-apply imperatively
26935
+ // after both months and their cell button caches have settled.
26936
+ this._afterMonthRender(() => this.refreshCommittedRangeClasses());
27023
26937
  this.announceMonthChange();
27024
26938
  }
27025
26939
 
@@ -28115,6 +28029,31 @@ class AuroCalendar extends RangeDatepicker {
28115
28029
  });
28116
28030
  }
28117
28031
 
28032
+ /**
28033
+ * Re-applies the committed-range classes across every visible cell after
28034
+ * a month navigation. classMap in the cell tracks its own previous state:
28035
+ * once `clearRangePreview({ force: true })` strips `inRange`/`rangeDepartDate`
28036
+ * imperatively before the re-render, classMap's next diff sees the same
28037
+ * class-value it emitted before and produces no delta, leaving the DOM
28038
+ * without the classes even though a full range is committed. Re-applying
28039
+ * imperatively resyncs the two months' cells with `dateFrom`/`dateTo`.
28040
+ * @private
28041
+ * @returns {void}
28042
+ */
28043
+ refreshCommittedRangeClasses() {
28044
+ if (this.noRange || !this.dateFrom || !this.dateTo) {
28045
+ return;
28046
+ }
28047
+
28048
+ const parsedDateFrom = parseInt(this.dateFrom, 10);
28049
+ const parsedDateTo = parseInt(this.dateTo, 10);
28050
+ const allCells = this.getAllFocusableCells();
28051
+
28052
+ allCells.forEach((cell) => {
28053
+ cell.applyCommittedRangeClasses(parsedDateFrom, parsedDateTo);
28054
+ });
28055
+ }
28056
+
28118
28057
  /**
28119
28058
  * Overrides the base class handler to prevent setting `this.hoveredDate`
28120
28059
  * as a reactive property. Instead, handles the range preview imperatively.
@@ -32409,7 +32348,7 @@ let AuroHelpText$2$1 = class AuroHelpText extends i$2 {
32409
32348
  }
32410
32349
  };
32411
32350
 
32412
- var formkitVersion$1$3 = '202607011914';
32351
+ var formkitVersion$1$3 = '202607011730';
32413
32352
 
32414
32353
  let AuroElement$2$2 = class AuroElement extends i$2 {
32415
32354
  static get properties() {
@@ -33161,23 +33100,6 @@ let AuroDropdown$3 = class AuroDropdown extends AuroElement$2$2 {
33161
33100
  if (!this.isPopoverVisible && this.hasFocus && eventType === "keydown") {
33162
33101
  this.trigger.focus();
33163
33102
  }
33164
-
33165
-
33166
- if (!this.isPopoverVisible) {
33167
- // wait til the bib gets fully closed and rendered
33168
- setTimeout(() => {
33169
- // Skip if the bib re-opened, or if focus moved intentionally outside the dropdown (not to body).
33170
- // Restore focus to trigger when focus is still inside the bib (:focus-within) or fell to body.
33171
- if (this.isPopoverVisible ||
33172
- // eslint-disable-next-line no-extra-parens
33173
- (!this.bibContent?.matches(':focus-within') &&
33174
- document.activeElement !== document.body)) {
33175
- return;
33176
- }
33177
- // Restore focus to the trigger.
33178
- this.trigger.focus();
33179
- });
33180
- }
33181
33103
  }
33182
33104
 
33183
33105
  firstUpdated() {
@@ -38103,21 +38025,8 @@ let AuroFormValidation$6 = class AuroFormValidation {
38103
38025
  return;
38104
38026
  }
38105
38027
 
38106
- // Validate that the date passed was the correct format and is a valid date.
38107
- // For partial date formats, valueObject is never populated; validate them directly.
38028
+ // Validate that the date passed was the correct format and is a valid date
38108
38029
  if (elem.value && !elem.valueObject) {
38109
- const isPartialDateFormat = elem.util && !elem.util.isFullDateFormat(elem.type, elem.format);
38110
-
38111
- if (isPartialDateFormat) {
38112
- if (!elem.util.isValidPartialDate(elem.value, elem.format)) {
38113
- elem.validity = 'patternMismatch';
38114
- elem.errorMessage = elem.setCustomValidityPatternMismatch || elem.setCustomValidity || 'Invalid Date Format Entered';
38115
- }
38116
- // Partial date format — validate directly and skip max/min checks since valueObject is undefined.
38117
- return;
38118
- }
38119
-
38120
- // Full date format with no valueObject means the value is not a valid calendar date.
38121
38030
  elem.validity = 'patternMismatch';
38122
38031
  elem.errorMessage = elem.setCustomValidityPatternMismatch || elem.setCustomValidity || 'Invalid Date Format Entered';
38123
38032
  return;
@@ -44047,11 +43956,10 @@ let AuroInputUtilities$2 = class AuroInputUtilities {
44047
43956
  const dateFormat = format$1 || this.overrideFormat || pattern || 'mm/dd/yyyy';
44048
43957
 
44049
43958
  if (dateFormat === 'dd' || dateFormat === 'yy' || dateFormat === 'yyyy') {
44050
- const fromValue = dateFormat === 'yyyy' ? 1900 : (dateFormat === 'yy' ? 0 : 1);
44051
- const maxValue = dateFormat === 'dd' ? 31 : (dateFormat === 'yy' ? 99 : 2100);
43959
+ const maxValue = dateFormat === 'dd' ? 31 : (dateFormat === 'yy' ? 99 : 9999);
44052
43960
  return {
44053
43961
  mask: IMask$2.MaskedRange,
44054
- from: fromValue,
43962
+ from: 1,
44055
43963
  to: maxValue,
44056
43964
  lazy: true,
44057
43965
  placeholderChar: '',
@@ -44059,8 +43967,7 @@ let AuroInputUtilities$2 = class AuroInputUtilities {
44059
43967
  return value.toString().padStart(dateFormat.length, '0');
44060
43968
  },
44061
43969
  parse(str) {
44062
- const num = parseInt(str, 10);
44063
- return isNaN(num) ? null : num;
43970
+ return parseInt(str) || null;
44064
43971
  }
44065
43972
  };
44066
43973
  }
@@ -44124,49 +44031,6 @@ let AuroInputUtilities$2 = class AuroInputUtilities {
44124
44031
  return type === 'date' && normalizedFormat.includes('yy') && normalizedFormat.includes('mm') && normalizedFormat.includes('dd');
44125
44032
  }
44126
44033
 
44127
- /**
44128
- * Validates a value against a partial date format (one that lacks yy/mm/dd all three).
44129
- * Day- and year-only formats (dd/yy/yyyy) are checked as integer ranges; other partial formats use
44130
- * a date-fns parse + round-trip to confirm both validity and exact formatting.
44131
- * @param {string} value - The user-facing display value.
44132
- * @param {string} format - The partial date format string (e.g. "mm/yyyy", "yyyy", "dd").
44133
- * @returns {boolean}
44134
- */
44135
- isValidPartialDate(value, format$1) {
44136
- if (!value || !format$1) {
44137
- return false;
44138
- }
44139
- const normalizedFormat = format$1.toLowerCase();
44140
-
44141
- if (normalizedFormat === 'dd') {
44142
- const num = Number(value);
44143
- return (/^\d{2}$/u).test(value) && num >= 1 && num <= 31;
44144
- }
44145
- if (normalizedFormat === 'yy') {
44146
- const num = Number(value);
44147
- return (/^\d{2}$/u).test(value) && num >= 0 && num <= 99;
44148
- }
44149
- if (normalizedFormat === 'yyyy') {
44150
- const num = Number(value);
44151
- return (/^\d{4}$/u).test(value) && num >= 1900 && num <= 2100;
44152
- }
44153
-
44154
- const dateFnsMask = this.toDateFnsMask(normalizedFormat);
44155
- // Use the 1st of the current month as the reference so that formats
44156
- // omitting a day (e.g. MM/yyyy) never roll over on days 29–31.
44157
- const referenceDate = new Date();
44158
- referenceDate.setDate(1);
44159
- const parsed = parse$2(value, dateFnsMask, referenceDate);
44160
- if (!isValid$2(parsed) || format$2(parsed, dateFnsMask) !== value) {
44161
- return false;
44162
- }
44163
- if (normalizedFormat.includes('yyyy')) {
44164
- const year = parsed.getFullYear();
44165
- return year >= 1900 && year <= 2100;
44166
- }
44167
- return true;
44168
- }
44169
-
44170
44034
  /**
44171
44035
  * Converts a display string to its model value.
44172
44036
  * For full date formats, converts the display string to an ISO date string.
@@ -44786,13 +44650,6 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
44786
44650
  type: String
44787
44651
  },
44788
44652
 
44789
- /**
44790
- * Custom help text message to display when validity = `patternMismatch`.
44791
- */
44792
- setCustomValidityPatternMismatch: {
44793
- type: String
44794
- },
44795
-
44796
44653
  /**
44797
44654
  * Custom help text message to display when validity = `rangeOverflow`.
44798
44655
  */
@@ -44863,7 +44720,7 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
44863
44720
 
44864
44721
  /**
44865
44722
  * Populates the `type` attribute on the input.
44866
- * @type {'text' | 'password' | 'email' | 'credit-card' | 'tel' | 'number' | 'date'}
44723
+ * @type {'text' | 'password' | 'email' | 'credit-card' | 'tel' | 'number'}
44867
44724
  * @default 'text'
44868
44725
  */
44869
44726
  type: {
@@ -44888,7 +44745,7 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
44888
44745
 
44889
44746
  /**
44890
44747
  * Populates the `value` attribute on the input. Can also be read to retrieve the current value of the input.
44891
- * 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.
44748
+ * The format for this property should be ISO for `date` type inputs.
44892
44749
  */
44893
44750
  value: {
44894
44751
  type: String
@@ -46011,7 +45868,7 @@ let AuroHelpText$1$3 = class AuroHelpText extends i$2 {
46011
45868
  }
46012
45869
  };
46013
45870
 
46014
- var formkitVersion$7 = '202607011914';
45871
+ var formkitVersion$7 = '202607011730';
46015
45872
 
46016
45873
  // Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
46017
45874
  // See LICENSE in the project root for license information.
@@ -50307,21 +50164,8 @@ let AuroFormValidation$5 = class AuroFormValidation {
50307
50164
  return;
50308
50165
  }
50309
50166
 
50310
- // Validate that the date passed was the correct format and is a valid date.
50311
- // For partial date formats, valueObject is never populated; validate them directly.
50167
+ // Validate that the date passed was the correct format and is a valid date
50312
50168
  if (elem.value && !elem.valueObject) {
50313
- const isPartialDateFormat = elem.util && !elem.util.isFullDateFormat(elem.type, elem.format);
50314
-
50315
- if (isPartialDateFormat) {
50316
- if (!elem.util.isValidPartialDate(elem.value, elem.format)) {
50317
- elem.validity = 'patternMismatch';
50318
- elem.errorMessage = elem.setCustomValidityPatternMismatch || elem.setCustomValidity || 'Invalid Date Format Entered';
50319
- }
50320
- // Partial date format — validate directly and skip max/min checks since valueObject is undefined.
50321
- return;
50322
- }
50323
-
50324
- // Full date format with no valueObject means the value is not a valid calendar date.
50325
50169
  elem.validity = 'patternMismatch';
50326
50170
  elem.errorMessage = elem.setCustomValidityPatternMismatch || elem.setCustomValidity || 'Invalid Date Format Entered';
50327
50171
  return;
@@ -50893,7 +50737,7 @@ let AuroHelpText$1$2 = class AuroHelpText extends i$2 {
50893
50737
  }
50894
50738
  };
50895
50739
 
50896
- var formkitVersion$1$2 = '202607011914';
50740
+ var formkitVersion$1$2 = '202607011730';
50897
50741
 
50898
50742
  // Copyright (c) 2026 Alaska Airlines. All rights reserved. Licensed under the Apache-2.0 license
50899
50743
  // See LICENSE in the project root for license information.
@@ -55221,7 +55065,7 @@ let AuroHelpText$6 = class AuroHelpText extends i$2 {
55221
55065
  }
55222
55066
  };
55223
55067
 
55224
- var formkitVersion$6 = '202607011914';
55068
+ var formkitVersion$6 = '202607011730';
55225
55069
 
55226
55070
  let AuroElement$1$2 = class AuroElement extends i$2 {
55227
55071
  static get properties() {
@@ -55973,23 +55817,6 @@ let AuroDropdown$2 = class AuroDropdown extends AuroElement$1$2 {
55973
55817
  if (!this.isPopoverVisible && this.hasFocus && eventType === "keydown") {
55974
55818
  this.trigger.focus();
55975
55819
  }
55976
-
55977
-
55978
- if (!this.isPopoverVisible) {
55979
- // wait til the bib gets fully closed and rendered
55980
- setTimeout(() => {
55981
- // Skip if the bib re-opened, or if focus moved intentionally outside the dropdown (not to body).
55982
- // Restore focus to trigger when focus is still inside the bib (:focus-within) or fell to body.
55983
- if (this.isPopoverVisible ||
55984
- // eslint-disable-next-line no-extra-parens
55985
- (!this.bibContent?.matches(':focus-within') &&
55986
- document.activeElement !== document.body)) {
55987
- return;
55988
- }
55989
- // Restore focus to the trigger.
55990
- this.trigger.focus();
55991
- });
55992
- }
55993
55820
  }
55994
55821
 
55995
55822
  firstUpdated() {
@@ -58689,21 +58516,8 @@ let AuroFormValidation$4 = class AuroFormValidation {
58689
58516
  return;
58690
58517
  }
58691
58518
 
58692
- // Validate that the date passed was the correct format and is a valid date.
58693
- // For partial date formats, valueObject is never populated; validate them directly.
58519
+ // Validate that the date passed was the correct format and is a valid date
58694
58520
  if (elem.value && !elem.valueObject) {
58695
- const isPartialDateFormat = elem.util && !elem.util.isFullDateFormat(elem.type, elem.format);
58696
-
58697
- if (isPartialDateFormat) {
58698
- if (!elem.util.isValidPartialDate(elem.value, elem.format)) {
58699
- elem.validity = 'patternMismatch';
58700
- elem.errorMessage = elem.setCustomValidityPatternMismatch || elem.setCustomValidity || 'Invalid Date Format Entered';
58701
- }
58702
- // Partial date format — validate directly and skip max/min checks since valueObject is undefined.
58703
- return;
58704
- }
58705
-
58706
- // Full date format with no valueObject means the value is not a valid calendar date.
58707
58521
  elem.validity = 'patternMismatch';
58708
58522
  elem.errorMessage = elem.setCustomValidityPatternMismatch || elem.setCustomValidity || 'Invalid Date Format Entered';
58709
58523
  return;
@@ -59201,7 +59015,7 @@ let AuroHelpText$5 = class AuroHelpText extends i$2 {
59201
59015
  }
59202
59016
  };
59203
59017
 
59204
- var formkitVersion$5 = '202607011914';
59018
+ var formkitVersion$5 = '202607011730';
59205
59019
 
59206
59020
  // Copyright (c) Alaska Air. All right reserved. Licensed under the Apache-2.0 license
59207
59021
  // See LICENSE in the project root for license information.
@@ -60450,21 +60264,8 @@ let AuroFormValidation$3 = class AuroFormValidation {
60450
60264
  return;
60451
60265
  }
60452
60266
 
60453
- // Validate that the date passed was the correct format and is a valid date.
60454
- // For partial date formats, valueObject is never populated; validate them directly.
60267
+ // Validate that the date passed was the correct format and is a valid date
60455
60268
  if (elem.value && !elem.valueObject) {
60456
- const isPartialDateFormat = elem.util && !elem.util.isFullDateFormat(elem.type, elem.format);
60457
-
60458
- if (isPartialDateFormat) {
60459
- if (!elem.util.isValidPartialDate(elem.value, elem.format)) {
60460
- elem.validity = 'patternMismatch';
60461
- elem.errorMessage = elem.setCustomValidityPatternMismatch || elem.setCustomValidity || 'Invalid Date Format Entered';
60462
- }
60463
- // Partial date format — validate directly and skip max/min checks since valueObject is undefined.
60464
- return;
60465
- }
60466
-
60467
- // Full date format with no valueObject means the value is not a valid calendar date.
60468
60269
  elem.validity = 'patternMismatch';
60469
60270
  elem.errorMessage = elem.setCustomValidityPatternMismatch || elem.setCustomValidity || 'Invalid Date Format Entered';
60470
60271
  return;
@@ -60966,7 +60767,7 @@ let AuroHelpText$4 = class AuroHelpText extends i$2 {
60966
60767
  }
60967
60768
  };
60968
60769
 
60969
- var formkitVersion$4 = '202607011914';
60770
+ var formkitVersion$4 = '202607011730';
60970
60771
 
60971
60772
  // Copyright (c) 2026 Alaska Airlines. All rights reserved. Licensed under the Apache-2.0 license
60972
60773
  // See LICENSE in the project root for license information.
@@ -61725,21 +61526,8 @@ let AuroFormValidation$1 = class AuroFormValidation {
61725
61526
  return;
61726
61527
  }
61727
61528
 
61728
- // Validate that the date passed was the correct format and is a valid date.
61729
- // For partial date formats, valueObject is never populated; validate them directly.
61529
+ // Validate that the date passed was the correct format and is a valid date
61730
61530
  if (elem.value && !elem.valueObject) {
61731
- const isPartialDateFormat = elem.util && !elem.util.isFullDateFormat(elem.type, elem.format);
61732
-
61733
- if (isPartialDateFormat) {
61734
- if (!elem.util.isValidPartialDate(elem.value, elem.format)) {
61735
- elem.validity = 'patternMismatch';
61736
- elem.errorMessage = elem.setCustomValidityPatternMismatch || elem.setCustomValidity || 'Invalid Date Format Entered';
61737
- }
61738
- // Partial date format — validate directly and skip max/min checks since valueObject is undefined.
61739
- return;
61740
- }
61741
-
61742
- // Full date format with no valueObject means the value is not a valid calendar date.
61743
61531
  elem.validity = 'patternMismatch';
61744
61532
  elem.errorMessage = elem.setCustomValidityPatternMismatch || elem.setCustomValidity || 'Invalid Date Format Entered';
61745
61533
  return;
@@ -66187,7 +65975,7 @@ let AuroHelpText$2 = class AuroHelpText extends i$2 {
66187
65975
  }
66188
65976
  };
66189
65977
 
66190
- var formkitVersion$2 = '202607011914';
65978
+ var formkitVersion$2 = '202607011730';
66191
65979
 
66192
65980
  let AuroElement$2$1 = class AuroElement extends i$2 {
66193
65981
  static get properties() {
@@ -66939,23 +66727,6 @@ let AuroDropdown$1 = class AuroDropdown extends AuroElement$2$1 {
66939
66727
  if (!this.isPopoverVisible && this.hasFocus && eventType === "keydown") {
66940
66728
  this.trigger.focus();
66941
66729
  }
66942
-
66943
-
66944
- if (!this.isPopoverVisible) {
66945
- // wait til the bib gets fully closed and rendered
66946
- setTimeout(() => {
66947
- // Skip if the bib re-opened, or if focus moved intentionally outside the dropdown (not to body).
66948
- // Restore focus to trigger when focus is still inside the bib (:focus-within) or fell to body.
66949
- if (this.isPopoverVisible ||
66950
- // eslint-disable-next-line no-extra-parens
66951
- (!this.bibContent?.matches(':focus-within') &&
66952
- document.activeElement !== document.body)) {
66953
- return;
66954
- }
66955
- // Restore focus to the trigger.
66956
- this.trigger.focus();
66957
- });
66958
- }
66959
66730
  }
66960
66731
 
66961
66732
  firstUpdated() {
@@ -71881,21 +71652,8 @@ let AuroFormValidation$2 = class AuroFormValidation {
71881
71652
  return;
71882
71653
  }
71883
71654
 
71884
- // Validate that the date passed was the correct format and is a valid date.
71885
- // For partial date formats, valueObject is never populated; validate them directly.
71655
+ // Validate that the date passed was the correct format and is a valid date
71886
71656
  if (elem.value && !elem.valueObject) {
71887
- const isPartialDateFormat = elem.util && !elem.util.isFullDateFormat(elem.type, elem.format);
71888
-
71889
- if (isPartialDateFormat) {
71890
- if (!elem.util.isValidPartialDate(elem.value, elem.format)) {
71891
- elem.validity = 'patternMismatch';
71892
- elem.errorMessage = elem.setCustomValidityPatternMismatch || elem.setCustomValidity || 'Invalid Date Format Entered';
71893
- }
71894
- // Partial date format — validate directly and skip max/min checks since valueObject is undefined.
71895
- return;
71896
- }
71897
-
71898
- // Full date format with no valueObject means the value is not a valid calendar date.
71899
71657
  elem.validity = 'patternMismatch';
71900
71658
  elem.errorMessage = elem.setCustomValidityPatternMismatch || elem.setCustomValidity || 'Invalid Date Format Entered';
71901
71659
  return;
@@ -77825,11 +77583,10 @@ class AuroInputUtilities {
77825
77583
  const dateFormat = format$1 || this.overrideFormat || pattern || 'mm/dd/yyyy';
77826
77584
 
77827
77585
  if (dateFormat === 'dd' || dateFormat === 'yy' || dateFormat === 'yyyy') {
77828
- const fromValue = dateFormat === 'yyyy' ? 1900 : (dateFormat === 'yy' ? 0 : 1);
77829
- const maxValue = dateFormat === 'dd' ? 31 : (dateFormat === 'yy' ? 99 : 2100);
77586
+ const maxValue = dateFormat === 'dd' ? 31 : (dateFormat === 'yy' ? 99 : 9999);
77830
77587
  return {
77831
77588
  mask: IMask.MaskedRange,
77832
- from: fromValue,
77589
+ from: 1,
77833
77590
  to: maxValue,
77834
77591
  lazy: true,
77835
77592
  placeholderChar: '',
@@ -77837,8 +77594,7 @@ class AuroInputUtilities {
77837
77594
  return value.toString().padStart(dateFormat.length, '0');
77838
77595
  },
77839
77596
  parse(str) {
77840
- const num = parseInt(str, 10);
77841
- return isNaN(num) ? null : num;
77597
+ return parseInt(str) || null;
77842
77598
  }
77843
77599
  };
77844
77600
  }
@@ -77902,49 +77658,6 @@ class AuroInputUtilities {
77902
77658
  return type === 'date' && normalizedFormat.includes('yy') && normalizedFormat.includes('mm') && normalizedFormat.includes('dd');
77903
77659
  }
77904
77660
 
77905
- /**
77906
- * Validates a value against a partial date format (one that lacks yy/mm/dd all three).
77907
- * Day- and year-only formats (dd/yy/yyyy) are checked as integer ranges; other partial formats use
77908
- * a date-fns parse + round-trip to confirm both validity and exact formatting.
77909
- * @param {string} value - The user-facing display value.
77910
- * @param {string} format - The partial date format string (e.g. "mm/yyyy", "yyyy", "dd").
77911
- * @returns {boolean}
77912
- */
77913
- isValidPartialDate(value, format$1) {
77914
- if (!value || !format$1) {
77915
- return false;
77916
- }
77917
- const normalizedFormat = format$1.toLowerCase();
77918
-
77919
- if (normalizedFormat === 'dd') {
77920
- const num = Number(value);
77921
- return (/^\d{2}$/u).test(value) && num >= 1 && num <= 31;
77922
- }
77923
- if (normalizedFormat === 'yy') {
77924
- const num = Number(value);
77925
- return (/^\d{2}$/u).test(value) && num >= 0 && num <= 99;
77926
- }
77927
- if (normalizedFormat === 'yyyy') {
77928
- const num = Number(value);
77929
- return (/^\d{4}$/u).test(value) && num >= 1900 && num <= 2100;
77930
- }
77931
-
77932
- const dateFnsMask = this.toDateFnsMask(normalizedFormat);
77933
- // Use the 1st of the current month as the reference so that formats
77934
- // omitting a day (e.g. MM/yyyy) never roll over on days 29–31.
77935
- const referenceDate = new Date();
77936
- referenceDate.setDate(1);
77937
- const parsed = parse(value, dateFnsMask, referenceDate);
77938
- if (!isValid(parsed) || format(parsed, dateFnsMask) !== value) {
77939
- return false;
77940
- }
77941
- if (normalizedFormat.includes('yyyy')) {
77942
- const year = parsed.getFullYear();
77943
- return year >= 1900 && year <= 2100;
77944
- }
77945
- return true;
77946
- }
77947
-
77948
77661
  /**
77949
77662
  * Converts a display string to its model value.
77950
77663
  * For full date formats, converts the display string to an ISO date string.
@@ -78564,13 +78277,6 @@ class BaseInput extends AuroElement$1$1 {
78564
78277
  type: String
78565
78278
  },
78566
78279
 
78567
- /**
78568
- * Custom help text message to display when validity = `patternMismatch`.
78569
- */
78570
- setCustomValidityPatternMismatch: {
78571
- type: String
78572
- },
78573
-
78574
78280
  /**
78575
78281
  * Custom help text message to display when validity = `rangeOverflow`.
78576
78282
  */
@@ -78641,7 +78347,7 @@ class BaseInput extends AuroElement$1$1 {
78641
78347
 
78642
78348
  /**
78643
78349
  * Populates the `type` attribute on the input.
78644
- * @type {'text' | 'password' | 'email' | 'credit-card' | 'tel' | 'number' | 'date'}
78350
+ * @type {'text' | 'password' | 'email' | 'credit-card' | 'tel' | 'number'}
78645
78351
  * @default 'text'
78646
78352
  */
78647
78353
  type: {
@@ -78666,7 +78372,7 @@ class BaseInput extends AuroElement$1$1 {
78666
78372
 
78667
78373
  /**
78668
78374
  * Populates the `value` attribute on the input. Can also be read to retrieve the current value of the input.
78669
- * 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.
78375
+ * The format for this property should be ISO for `date` type inputs.
78670
78376
  */
78671
78377
  value: {
78672
78378
  type: String
@@ -79789,7 +79495,7 @@ let AuroHelpText$1$1 = class AuroHelpText extends i$2 {
79789
79495
  }
79790
79496
  };
79791
79497
 
79792
- var formkitVersion$1$1 = '202607011914';
79498
+ var formkitVersion$1$1 = '202607011730';
79793
79499
 
79794
79500
  // Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
79795
79501
  // See LICENSE in the project root for license information.
@@ -80915,7 +80621,7 @@ let AuroBibtemplate$1 = class AuroBibtemplate extends i$2 {
80915
80621
  }
80916
80622
  };
80917
80623
 
80918
- var formkitVersion$3 = '202607011914';
80624
+ var formkitVersion$3 = '202607011730';
80919
80625
 
80920
80626
  var styleCss$1$3 = i$4`.util_displayInline{display:inline}.util_displayInlineBlock{display:inline-block}.util_displayBlock{display:block}.util_displayFlex{display:flex}.util_displayHidden{display:none}.util_displayHiddenVisually{position:absolute;overflow:hidden;clip:rect(1px, 1px, 1px, 1px);width:1px;height:1px;padding:0;border:0}:host{display:block;text-align:left}:host [auro-dropdown]{--ds-auro-dropdown-trigger-background-color: transparent}:host #inputInBib::part(wrapper){box-shadow:none}:host #inputInBib::part(accent-left){display:none}:host([layout*=classic]) [auro-input]{width:100%}:host([layout*=classic]) [auro-input]::part(helpText){display:none}:host([layout*=classic]) #slotHolder{display:none}`;
80921
80627
 
@@ -85249,21 +84955,8 @@ class AuroFormValidation {
85249
84955
  return;
85250
84956
  }
85251
84957
 
85252
- // Validate that the date passed was the correct format and is a valid date.
85253
- // For partial date formats, valueObject is never populated; validate them directly.
84958
+ // Validate that the date passed was the correct format and is a valid date
85254
84959
  if (elem.value && !elem.valueObject) {
85255
- const isPartialDateFormat = elem.util && !elem.util.isFullDateFormat(elem.type, elem.format);
85256
-
85257
- if (isPartialDateFormat) {
85258
- if (!elem.util.isValidPartialDate(elem.value, elem.format)) {
85259
- elem.validity = 'patternMismatch';
85260
- elem.errorMessage = elem.setCustomValidityPatternMismatch || elem.setCustomValidity || 'Invalid Date Format Entered';
85261
- }
85262
- // Partial date format — validate directly and skip max/min checks since valueObject is undefined.
85263
- return;
85264
- }
85265
-
85266
- // Full date format with no valueObject means the value is not a valid calendar date.
85267
84960
  elem.validity = 'patternMismatch';
85268
84961
  elem.errorMessage = elem.setCustomValidityPatternMismatch || elem.setCustomValidity || 'Invalid Date Format Entered';
85269
84962
  return;
@@ -89751,7 +89444,7 @@ let AuroHelpText$1 = class AuroHelpText extends i$2 {
89751
89444
  }
89752
89445
  };
89753
89446
 
89754
- var formkitVersion$1 = '202607011914';
89447
+ var formkitVersion$1 = '202607011730';
89755
89448
 
89756
89449
  class AuroElement extends i$2 {
89757
89450
  static get properties() {
@@ -90503,23 +90196,6 @@ class AuroDropdown extends AuroElement {
90503
90196
  if (!this.isPopoverVisible && this.hasFocus && eventType === "keydown") {
90504
90197
  this.trigger.focus();
90505
90198
  }
90506
-
90507
-
90508
- if (!this.isPopoverVisible) {
90509
- // wait til the bib gets fully closed and rendered
90510
- setTimeout(() => {
90511
- // Skip if the bib re-opened, or if focus moved intentionally outside the dropdown (not to body).
90512
- // Restore focus to trigger when focus is still inside the bib (:focus-within) or fell to body.
90513
- if (this.isPopoverVisible ||
90514
- // eslint-disable-next-line no-extra-parens
90515
- (!this.bibContent?.matches(':focus-within') &&
90516
- document.activeElement !== document.body)) {
90517
- return;
90518
- }
90519
- // Restore focus to the trigger.
90520
- this.trigger.focus();
90521
- });
90522
- }
90523
90199
  }
90524
90200
 
90525
90201
  firstUpdated() {
@@ -91790,7 +91466,7 @@ class AuroHelpText extends i$2 {
91790
91466
  }
91791
91467
  }
91792
91468
 
91793
- var formkitVersion = '202607011914';
91469
+ var formkitVersion = '202607011730';
91794
91470
 
91795
91471
  var styleCss = i$4`.util_displayInline{display:inline}.util_displayInlineBlock{display:inline-block}.util_displayBlock{display:block}.util_displayFlex{display:flex}.util_displayHidden{display:none}.util_displayHiddenVisually{position:absolute;overflow:hidden;clip:rect(1px, 1px, 1px, 1px);width:1px;height:1px;padding:0;border:0}.body-default{font-size:var(--wcss-body-default-font-size, 1rem);font-weight:var(--wcss-body-default-weight, );line-height:var(--wcss-body-default-line-height, 1.5rem)}.body-default,.body-default-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-default-emphasized{font-size:var(--wcss-body-default-emphasized-font-size, 1rem);font-weight:var(--wcss-body-default-emphasized-weight, );line-height:var(--wcss-body-default-emphasized-line-height, 1.5rem)}.body-lg{font-size:var(--wcss-body-lg-font-size, 1.125rem);font-weight:var(--wcss-body-lg-weight, );line-height:var(--wcss-body-lg-line-height, 1.625rem)}.body-lg,.body-lg-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-lg-emphasized{font-size:var(--wcss-body-lg-emphasized-font-size, 1.125rem);font-weight:var(--wcss-body-lg-emphasized-weight, );line-height:var(--wcss-body-lg-emphasized-line-height, 1.625rem)}.body-sm{font-size:var(--wcss-body-sm-font-size, 0.875rem);font-weight:var(--wcss-body-sm-weight, );line-height:var(--wcss-body-sm-line-height, 1.25rem)}.body-sm,.body-sm-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-sm-emphasized{font-size:var(--wcss-body-sm-emphasized-font-size, 0.875rem);font-weight:var(--wcss-body-sm-emphasized-weight, );line-height:var(--wcss-body-sm-emphasized-line-height, 1.25rem)}.body-xs{font-size:var(--wcss-body-xs-font-size, 0.75rem);font-weight:var(--wcss-body-xs-weight, );line-height:var(--wcss-body-xs-line-height, 1rem)}.body-xs,.body-xs-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-xs-emphasized{font-size:var(--wcss-body-xs-emphasized-font-size, 0.75rem);font-weight:var(--wcss-body-xs-emphasized-weight, );line-height:var(--wcss-body-xs-emphasized-line-height, 1rem)}.body-2xs{font-size:var(--wcss-body-2xs-font-size, 0.625rem);font-weight:var(--wcss-body-2xs-weight, );line-height:var(--wcss-body-2xs-line-height, 0.875rem)}.body-2xs,.body-2xs-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-2xs-emphasized{font-size:var(--wcss-body-2xs-emphasized-font-size, 0.625rem);font-weight:var(--wcss-body-2xs-emphasized-weight, );line-height:var(--wcss-body-2xs-emphasized-line-height, 0.875rem)}.display-2xl{font-family:var(--wcss-display-2xl-family, "AS Circular"),var(--wcss-display-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-2xl-font-size, clamp(3.5rem, 6vw, 5.375rem));font-weight:var(--wcss-display-2xl-weight, 300);letter-spacing:var(--wcss-display-2xl-letter-spacing, 0);line-height:var(--wcss-display-2xl-line-height, 1.3)}.display-xl{font-family:var(--wcss-display-xl-family, "AS Circular"),var(--wcss-display-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-xl-font-size, clamp(3rem, 5.3333333333vw, 4.5rem));font-weight:var(--wcss-display-xl-weight, 300);letter-spacing:var(--wcss-display-xl-letter-spacing, 0);line-height:var(--wcss-display-xl-line-height, 1.3)}.display-lg{font-family:var(--wcss-display-lg-family, "AS Circular"),var(--wcss-display-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-lg-font-size, clamp(2.75rem, 4.6666666667vw, 4rem));font-weight:var(--wcss-display-lg-weight, 300);letter-spacing:var(--wcss-display-lg-letter-spacing, 0);line-height:var(--wcss-display-lg-line-height, 1.3)}.display-md{font-family:var(--wcss-display-md-family, "AS Circular"),var(--wcss-display-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-md-font-size, clamp(2.5rem, 4vw, 3.5rem));font-weight:var(--wcss-display-md-weight, 300);letter-spacing:var(--wcss-display-md-letter-spacing, 0);line-height:var(--wcss-display-md-line-height, 1.3)}.display-sm{font-family:var(--wcss-display-sm-family, "AS Circular"),var(--wcss-display-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-sm-font-size, clamp(2rem, 3.6666666667vw, 3rem));font-weight:var(--wcss-display-sm-weight, 300);letter-spacing:var(--wcss-display-sm-letter-spacing, 0);line-height:var(--wcss-display-sm-line-height, 1.3)}.display-xs{font-family:var(--wcss-display-xs-family, "AS Circular"),var(--wcss-display-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-xs-font-size, clamp(1.75rem, 3vw, 2.375rem));font-weight:var(--wcss-display-xs-weight, 300);letter-spacing:var(--wcss-display-xs-letter-spacing, 0);line-height:var(--wcss-display-xs-line-height, 1.3)}.heading-xl{font-family:var(--wcss-heading-xl-family, "AS Circular"),var(--wcss-heading-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-xl-font-size, clamp(2rem, 3vw, 2.5rem));font-weight:var(--wcss-heading-xl-weight, 300);letter-spacing:var(--wcss-heading-xl-letter-spacing, 0);line-height:var(--wcss-heading-xl-line-height, 1.3)}.heading-lg{font-family:var(--wcss-heading-lg-family, "AS Circular"),var(--wcss-heading-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-lg-font-size, clamp(1.75rem, 2.6666666667vw, 2.25rem));font-weight:var(--wcss-heading-lg-weight, 300);letter-spacing:var(--wcss-heading-lg-letter-spacing, 0);line-height:var(--wcss-heading-lg-line-height, 1.3)}.heading-md{font-family:var(--wcss-heading-md-family, "AS Circular"),var(--wcss-heading-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-md-font-size, clamp(1.625rem, 2.3333333333vw, 1.75rem));font-weight:var(--wcss-heading-md-weight, 300);letter-spacing:var(--wcss-heading-md-letter-spacing, 0);line-height:var(--wcss-heading-md-line-height, 1.3)}.heading-sm{font-family:var(--wcss-heading-sm-family, "AS Circular"),var(--wcss-heading-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-sm-font-size, clamp(1.375rem, 2vw, 1.5rem));font-weight:var(--wcss-heading-sm-weight, 300);letter-spacing:var(--wcss-heading-sm-letter-spacing, 0);line-height:var(--wcss-heading-sm-line-height, 1.3)}.heading-xs{font-family:var(--wcss-heading-xs-family, "AS Circular"),var(--wcss-heading-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-xs-font-size, clamp(1.25rem, 1.6666666667vw, 1.25rem));font-weight:var(--wcss-heading-xs-weight, 300);letter-spacing:var(--wcss-heading-xs-letter-spacing, 0);line-height:var(--wcss-heading-xs-line-height, 1.3)}.heading-2xs{font-family:var(--wcss-heading-2xs-family, "AS Circular"),var(--wcss-heading-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-2xs-font-size, clamp(1.125rem, 1.5vw, 1.125rem));font-weight:var(--wcss-heading-2xs-weight, 300);letter-spacing:var(--wcss-heading-2xs-letter-spacing, 0);line-height:var(--wcss-heading-2xs-line-height, 1.3)}.accent-2xl{font-family:var(--wcss-accent-2xl-family, "Good OT"),var(--wcss-accent-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-2xl-font-size, clamp(2rem, 3.1666666667vw, 2.375rem));font-weight:var(--wcss-accent-2xl-weight, 450);letter-spacing:var(--wcss-accent-2xl-letter-spacing, 0.05em);line-height:var(--wcss-accent-2xl-line-height, 1)}.accent-2xl,.accent-xl{text-transform:uppercase}.accent-xl{font-family:var(--wcss-accent-xl-family, "Good OT"),var(--wcss-accent-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-xl-font-size, clamp(1.625rem, 2.3333333333vw, 2rem));font-weight:var(--wcss-accent-xl-weight, 450);letter-spacing:var(--wcss-accent-xl-letter-spacing, 0.05em);line-height:var(--wcss-accent-xl-line-height, 1.3)}.accent-lg{font-family:var(--wcss-accent-lg-family, "Good OT"),var(--wcss-accent-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-lg-font-size, clamp(1.5rem, 2.1666666667vw, 1.75rem));font-weight:var(--wcss-accent-lg-weight, 450);letter-spacing:var(--wcss-accent-lg-letter-spacing, 0.05em);line-height:var(--wcss-accent-lg-line-height, 1.3)}.accent-lg,.accent-md{text-transform:uppercase}.accent-md{font-family:var(--wcss-accent-md-family, "Good OT"),var(--wcss-accent-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-md-font-size, clamp(1.375rem, 1.8333333333vw, 1.5rem));font-weight:var(--wcss-accent-md-weight, 500);letter-spacing:var(--wcss-accent-md-letter-spacing, 0.05em);line-height:var(--wcss-accent-md-line-height, 1.3)}.accent-sm{font-family:var(--wcss-accent-sm-family, "Good OT"),var(--wcss-accent-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-sm-font-size, clamp(1.125rem, 1.5vw, 1.25rem));font-weight:var(--wcss-accent-sm-weight, 500);letter-spacing:var(--wcss-accent-sm-letter-spacing, 0.05em);line-height:var(--wcss-accent-sm-line-height, 1.3)}.accent-sm,.accent-xs{text-transform:uppercase}.accent-xs{font-family:var(--wcss-accent-xs-family, "Good OT"),var(--wcss-accent-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-xs-font-size, clamp(1rem, 1.3333333333vw, 1rem));font-weight:var(--wcss-accent-xs-weight, 500);letter-spacing:var(--wcss-accent-xs-letter-spacing, 0.1em);line-height:var(--wcss-accent-xs-line-height, 1.3)}.accent-2xs{font-family:var(--wcss-accent-2xs-family, "Good OT"),var(--wcss-accent-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-2xs-font-size, clamp(0.875rem, 1.1666666667vw, 0.875rem));font-weight:var(--wcss-accent-2xs-weight, 450);letter-spacing:var(--wcss-accent-2xs-letter-spacing, 0.1em);line-height:var(--wcss-accent-2xs-line-height, 1.3);text-transform:uppercase}[auro-dropdown]{--ds-auro-dropdown-trigger-border-color: var(--ds-auro-select-border-color);--ds-auro-dropdown-trigger-background-color: var(--ds-auro-select-background-color);--ds-auro-dropdown-trigger-container-color: var(--ds-auro-select-background-color);--ds-auro-dropdown-trigger-outline-color: var(--ds-auro-select-outline-color)}:host{display:inline-block;text-align:left;vertical-align:top}:host([layout*=emphasized]) [auro-dropdown],:host([layout*=snowflake]) [auro-dropdown]{--ds-auro-select-border-color: transparent}:host([layout*=emphasized]) .mainContent,:host([layout*=snowflake]) .mainContent{text-align:center}.mainContent{position:relative;display:flex;overflow:hidden;flex:1;flex-direction:column;align-items:center;justify-content:center}.valueContainer [slot=displayValue]{display:none}.accents{display:flex;flex-direction:row;align-items:center;justify-content:center}::slotted([slot=typeIcon]){margin-right:var(--ds-size-100, 0.5rem)}.displayValue{display:block}.displayValue:not(.force){display:none}.displayValue:not(.force).hasContent:is(.withValue):not(.hasFocus){display:block}.triggerContent{display:flex;width:100%;align-items:center;justify-content:center}:host([layout*=emphasized]) .triggerContent{padding:0 var(--ds-size-100, 0.5rem) 0 var(--ds-size-300, 1.5rem)}:host([layout*=snowflake]) .triggerContent{padding:0 var(--ds-size-100, 0.5rem) 0 var(--ds-size-200, 1rem)}:host([layout*=snowflake]) label{padding-block:var(--ds-size-25, 0.125rem)}:host([layout*=classic]) .triggerContent{padding:0 var(--ds-size-100, 0.5rem)}:host([layout*=classic]) .mainContent{align-items:start}:host([layout*=classic]) label{overflow:hidden;cursor:text;text-overflow:ellipsis;white-space:nowrap}:host([layout*=classic]) .value{height:auto}label{color:var(--ds-auro-select-label-text-color)}:host(:is([validity]:not([validity=valid]))) [auro-dropdown]{--ds-auro-select-border-color: var(--ds-basic-color-status-error, #e31f26);--ds-auro-select-outline-color: var(--ds-basic-color-status-error, #e31f26);--ds-auro-dropdown-helptext-text-color: var(--ds-basic-color-texticon-default, #2a2a2a)}:host([ondark]:is([validity]:not([validity=valid]))) [auro-dropdown],:host([appearance=inverse]:is([validity]:not([validity=valid]))) [auro-dropdown]{--ds-auro-select-border-color: var(--ds-advanced-color-state-error-inverse, #f9a4a8);--ds-auro-select-outline-color: var(--ds-advanced-color-state-error-inverse, #f9a4a8);--ds-auro-dropdown-helptext-text-color: var(--ds-basic-color-texticon-inverse, #ffffff)}#slotHolder{display:none}:host([fluid]){width:100%}:host([disabled]){pointer-events:none;user-select:none}:host([disabled]:not([ondark])) [auro-dropdown],:host([disabled]:not([appearance=inverse])) [auro-dropdown]{--ds-auro-select-border-color: var(--ds-basic-color-border-subtle, #dddddd)}:host(:not([layout*=classic])[disabled][ondark]) [auro-dropdown],:host(:not([layout*=classic])[disabled][appearance=inverse]) [auro-dropdown]{--ds-auro-select-border-color: transparent}`;
91796
91472
 
@@ -92651,14 +92327,6 @@ class AuroSelect extends AuroElement$1 {
92651
92327
  this.menu.addEventListener("auroMenu-loadingChange", (event) => this.handleMenuLoadingChange(event));
92652
92328
 
92653
92329
  this.menu.addEventListener("auroMenu-selectValueFailure", () => {
92654
- // Menu dispatches this from two paths: a programmatic value mismatch
92655
- // (menu pre-clears its own optionSelected to undefined before firing)
92656
- // and a click on an unselected valueless option (menu leaves state
92657
- // untouched). Only mirror the clear in the first case — otherwise a
92658
- // valueless click in multiSelect would wipe every prior pick.
92659
- if (this.menu.optionSelected !== undefined) {
92660
- return;
92661
- }
92662
92330
  this.value = undefined;
92663
92331
  this.optionSelected = this.multiSelect ? [] : undefined;
92664
92332
  // The trigger label is rendered imperatively into #value, so a property
@@ -92859,13 +92527,6 @@ class AuroSelect extends AuroElement$1 {
92859
92527
  const cycleIndex = (this.typeaheadBuffer.length - 1) % matches.length;
92860
92528
  match = matches[cycleIndex];
92861
92529
  }
92862
- } else if (!match && this.typeaheadBuffer.length > 1) {
92863
- // Buffer has no prefix match and isn't a repeat-char cycle (e.g. "a" then
92864
- // "b" against [Apple, Banana]). Reset to just the new key and retry —
92865
- // mirrors native <select>, which falls back to a single-char search when
92866
- // accumulated input matches nothing, rather than swallowing the keystroke.
92867
- this.typeaheadBuffer = key;
92868
- match = options.find((option) => this._getOptionDisplayText(option).startsWith(key));
92869
92530
  }
92870
92531
 
92871
92532
  // Intentional: no-match leaves the bib closed (deviates from APG / some native <select>).