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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. package/components/checkbox/demo/customize.min.js +1 -1
  2. package/components/checkbox/demo/getting-started.min.js +1 -1
  3. package/components/checkbox/demo/index.min.js +1 -1
  4. package/components/checkbox/dist/index.js +1 -1
  5. package/components/checkbox/dist/registered.js +1 -1
  6. package/components/combobox/demo/customize.min.js +3 -3
  7. package/components/combobox/demo/getting-started.min.js +3 -3
  8. package/components/combobox/demo/index.min.js +3 -3
  9. package/components/combobox/dist/index.js +3 -3
  10. package/components/combobox/dist/registered.js +3 -3
  11. package/components/counter/demo/customize.min.js +2 -2
  12. package/components/counter/demo/index.min.js +2 -2
  13. package/components/counter/dist/index.js +2 -2
  14. package/components/counter/dist/registered.js +2 -2
  15. package/components/datepicker/demo/customize.min.js +76 -37
  16. package/components/datepicker/demo/index.min.js +76 -37
  17. package/components/datepicker/dist/auro-calendar-cell.d.ts +12 -9
  18. package/components/datepicker/dist/auro-calendar.d.ts +38 -10
  19. package/components/datepicker/dist/index.js +76 -37
  20. package/components/datepicker/dist/registered.js +76 -37
  21. package/components/dropdown/demo/customize.min.js +1 -1
  22. package/components/dropdown/demo/getting-started.min.js +1 -1
  23. package/components/dropdown/demo/index.min.js +1 -1
  24. package/components/dropdown/dist/index.js +1 -1
  25. package/components/dropdown/dist/registered.js +1 -1
  26. package/components/form/demo/customize.min.js +101 -47
  27. package/components/form/demo/getting-started.min.js +101 -47
  28. package/components/form/demo/index.min.js +101 -47
  29. package/components/form/demo/registerDemoDeps.min.js +101 -47
  30. package/components/input/demo/customize.min.js +1 -1
  31. package/components/input/demo/getting-started.min.js +1 -1
  32. package/components/input/demo/index.min.js +1 -1
  33. package/components/input/dist/index.js +1 -1
  34. package/components/input/dist/registered.js +1 -1
  35. package/components/radio/demo/customize.min.js +1 -1
  36. package/components/radio/demo/getting-started.min.js +1 -1
  37. package/components/radio/demo/index.min.js +1 -1
  38. package/components/radio/dist/index.js +1 -1
  39. package/components/radio/dist/registered.js +1 -1
  40. package/components/select/demo/customize.min.js +17 -2
  41. package/components/select/demo/getting-started.min.js +17 -2
  42. package/components/select/demo/index.min.js +17 -2
  43. package/components/select/dist/index.js +17 -2
  44. package/components/select/dist/registered.js +17 -2
  45. package/custom-elements.json +14 -19
  46. package/package.json +1 -1
@@ -12444,29 +12444,37 @@ class AuroCalendarCell extends i$1 {
12444
12444
 
12445
12445
  /**
12446
12446
  * Re-applies the committed-range classes (inRange / rangeDepartDate /
12447
- * rangeReturnDate) imperatively from the current dateFrom/dateTo. Used
12448
- * after month navigation flushes: classMap in `renderCellButton` tracks
12449
- * its own previous state, so a preceding imperative `classList.remove`
12450
- * (from `clearRangePreviewClasses`) leaves classMap thinking the class
12451
- * is still applied. On re-render with the same class-value, classMap
12452
- * emits no delta and the class stays missing in the DOM. Re-toggling
12447
+ * rangeReturnDate) imperatively from the cell's current `day`,
12448
+ * `dateFrom`, and `dateTo`. Used after month navigation flushes:
12449
+ * classMap in `renderCellButton` tracks its own previous state, so a
12450
+ * preceding imperative `classList.remove` (from
12451
+ * `clearRangePreviewClasses`) leaves classMap thinking the class is
12452
+ * still applied. On re-render with the same class-value, classMap emits
12453
+ * no delta and the class stays missing in the DOM. Re-toggling
12453
12454
  * imperatively resyncs the DOM with the committed range.
12454
- * @param {Number} dateFrom - Depart timestamp (seconds).
12455
- * @param {Number} dateTo - Return timestamp (seconds).
12455
+ *
12456
+ * Delegates to the same `isInRange` / `isDepartDate` / `isReturnDate`
12457
+ * helpers `renderCellButton` uses, so the two code paths cannot drift
12458
+ * (including whatever timestamp normalization those helpers apply).
12456
12459
  * @returns {void}
12457
12460
  */
12458
- applyCommittedRangeClasses(dateFrom, dateTo) {
12459
- const btn = this._cachedButton;
12460
- if (!btn || !this.day || !this.day.date) return;
12461
+ applyCommittedRangeClasses() {
12462
+ if (!this.day) return;
12463
+ // Fall back to a shadowRoot query when `_cachedButton` hasn't
12464
+ // populated yet — this method's whole job is recovering from stale
12465
+ // DOM after a month re-render, so no-oping on a cache miss defeats
12466
+ // the fix (mirrors the fallback in `clearActive()`).
12467
+ const btn = this._cachedButton || this.shadowRoot?.querySelector('button.day');
12468
+ if (!btn) return;
12461
12469
 
12462
- const dayDate = new Date(this.day.date * 1000).setHours(0, 0, 0, 0) / 1000;
12463
- const isInRange = dayDate > dateFrom && dayDate < dateTo;
12464
- const isDepart = dayDate === dateFrom;
12465
- const isReturn = dayDate === dateTo;
12470
+ const hasRange = this.datepicker?.hasAttribute('range');
12471
+ const inRange = hasRange && this.dateTo && this.isInRange(this.day, this.dateFrom, this.dateTo);
12472
+ const isDepart = hasRange && this.isDepartDate(this.day, this.dateFrom) && this.dateTo;
12473
+ const isReturn = hasRange && this.isReturnDate(this.day, this.dateFrom, this.dateTo);
12466
12474
 
12467
- btn.classList.toggle('inRange', isInRange);
12468
- btn.classList.toggle('rangeDepartDate', isDepart);
12469
- btn.classList.toggle('rangeReturnDate', isReturn);
12475
+ btn.classList.toggle('inRange', Boolean(inRange));
12476
+ btn.classList.toggle('rangeDepartDate', Boolean(isDepart));
12477
+ btn.classList.toggle('rangeReturnDate', Boolean(isReturn));
12470
12478
  }
12471
12479
 
12472
12480
  renderCellButton() {
@@ -13619,7 +13627,7 @@ class AuroBibtemplate extends i$1 {
13619
13627
  }
13620
13628
  }
13621
13629
 
13622
- var formkitVersion$2 = '202607011730';
13630
+ var formkitVersion$2 = '202607011826';
13623
13631
 
13624
13632
  let l$1 = 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 = 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$4 = 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$3=i$3`: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}
13625
13633
  `,u$6=i$3`.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}}
@@ -13968,7 +13976,7 @@ class AuroCalendar extends RangeDatepicker {
13968
13976
  // the DOM; classMap's private state still thinks they're applied, so
13969
13977
  // it won't re-add them on the post-nav re-render. Re-apply imperatively
13970
13978
  // after both months and their cell button caches have settled.
13971
- this._afterMonthRender(() => this.refreshCommittedRangeClasses());
13979
+ this.scheduleCommittedRangeClassRefresh();
13972
13980
  this.announceMonthChange();
13973
13981
  }
13974
13982
 
@@ -13991,7 +13999,7 @@ class AuroCalendar extends RangeDatepicker {
13991
13999
  // the DOM; classMap's private state still thinks they're applied, so
13992
14000
  // it won't re-add them on the post-nav re-render. Re-apply imperatively
13993
14001
  // after both months and their cell button caches have settled.
13994
- this._afterMonthRender(() => this.refreshCommittedRangeClasses());
14002
+ this.scheduleCommittedRangeClassRefresh();
13995
14003
  this.announceMonthChange();
13996
14004
  }
13997
14005
 
@@ -15070,9 +15078,14 @@ class AuroCalendar extends RangeDatepicker {
15070
15078
  * @private
15071
15079
  * @param {Object} [options] - Optional settings.
15072
15080
  * @param {boolean} [options.force=false] - When true, clears classes even
15073
- * when both dateFrom and dateTo are set. Used by month nav handlers
15074
- * since the subsequent re-render re-applies classMap-managed classes,
15075
- * while `lastHoveredDate` (not in classMap) would otherwise persist.
15081
+ * when both dateFrom and dateTo are set. Used by month nav handlers to
15082
+ * strip the imperative-only `lastHoveredDate` before the re-render.
15083
+ * The other two classes (`inRange`, `rangeDepartDate`) are classMap-
15084
+ * managed and get stripped as a side effect here; because classMap
15085
+ * remembers what it last emitted and does not diff against the actual
15086
+ * DOM, the following month re-render will NOT re-add them on its own.
15087
+ * Nav handlers must schedule `refreshCommittedRangeClasses` (via
15088
+ * `scheduleCommittedRangeClassRefresh`) to resync them.
15076
15089
  * @returns {void}
15077
15090
  */
15078
15091
  clearRangePreview(options) {
@@ -15088,13 +15101,23 @@ class AuroCalendar extends RangeDatepicker {
15088
15101
  }
15089
15102
 
15090
15103
  /**
15091
- * Re-applies the committed-range classes across every visible cell after
15092
- * a month navigation. classMap in the cell tracks its own previous state:
15093
- * once `clearRangePreview({ force: true })` strips `inRange`/`rangeDepartDate`
15094
- * imperatively before the re-render, classMap's next diff sees the same
15095
- * class-value it emitted before and produces no delta, leaving the DOM
15096
- * without the classes even though a full range is committed. Re-applying
15097
- * imperatively resyncs the two months' cells with `dateFrom`/`dateTo`.
15104
+ * Re-applies the committed-range classes across every focusable cell
15105
+ * after a month navigation. classMap in the cell tracks its own
15106
+ * previous state: once `clearRangePreview({ force: true })` strips
15107
+ * `inRange`/`rangeDepartDate` imperatively before the re-render,
15108
+ * classMap's next diff sees the same class-value it emitted before and
15109
+ * produces no delta, leaving the DOM without the classes even though a
15110
+ * full range is committed. Re-applying imperatively resyncs the two
15111
+ * months' cells with `dateFrom`/`dateTo`.
15112
+ *
15113
+ * Iterates `getAllFocusableCells()` — out-of-range cells (blocked by
15114
+ * `min`/`max`) can never carry range classes anyway, so skipping them
15115
+ * is correct and cheaper than a whole-grid walk.
15116
+ *
15117
+ * The cell's `applyCommittedRangeClasses` reuses the same
15118
+ * `isInRange`/`isDepartDate`/`isReturnDate` helpers `renderCellButton`
15119
+ * uses, so we don't parse dateFrom/dateTo here — the helpers already
15120
+ * normalize their inputs (midnight-truncation, string→int) internally.
15098
15121
  * @private
15099
15122
  * @returns {void}
15100
15123
  */
@@ -15103,15 +15126,31 @@ class AuroCalendar extends RangeDatepicker {
15103
15126
  return;
15104
15127
  }
15105
15128
 
15106
- const parsedDateFrom = parseInt(this.dateFrom, 10);
15107
- const parsedDateTo = parseInt(this.dateTo, 10);
15108
15129
  const allCells = this.getAllFocusableCells();
15109
-
15110
15130
  allCells.forEach((cell) => {
15111
- cell.applyCommittedRangeClasses(parsedDateFrom, parsedDateTo);
15131
+ cell.applyCommittedRangeClasses();
15112
15132
  });
15113
15133
  }
15114
15134
 
15135
+ /**
15136
+ * Schedules `refreshCommittedRangeClasses` to run after the month
15137
+ * re-render has flushed and the cells' button caches have refreshed.
15138
+ * Both `handlePrevMonth` and `handleNextMonth` need this exact call
15139
+ * shape; keeping it in one place prevents them from drifting apart.
15140
+ *
15141
+ * Bails synchronously when a full committed range isn't set — otherwise
15142
+ * every prev/next click in single-date mode (or before the user picks
15143
+ * both dates in range mode) pays for an unused double-rAF hop.
15144
+ * @private
15145
+ * @returns {void}
15146
+ */
15147
+ scheduleCommittedRangeClassRefresh() {
15148
+ if (this.noRange || !this.dateFrom || !this.dateTo) {
15149
+ return;
15150
+ }
15151
+ this._afterMonthRender(() => this.refreshCommittedRangeClasses());
15152
+ }
15153
+
15115
15154
  /**
15116
15155
  * Overrides the base class handler to prevent setting `this.hoveredDate`
15117
15156
  * as a reactive property. Instead, handles the range preview imperatively.
@@ -19430,7 +19469,7 @@ let AuroHelpText$2 = class AuroHelpText extends i$1 {
19430
19469
  }
19431
19470
  };
19432
19471
 
19433
- var formkitVersion$1 = '202607011730';
19472
+ var formkitVersion$1 = '202607011826';
19434
19473
 
19435
19474
  let AuroElement$2 = class AuroElement extends i$1 {
19436
19475
  static get properties() {
@@ -32957,7 +32996,7 @@ let AuroHelpText$1 = class AuroHelpText extends i$1 {
32957
32996
  }
32958
32997
  };
32959
32998
 
32960
- var formkitVersion = '202607011730';
32999
+ var formkitVersion = '202607011826';
32961
33000
 
32962
33001
  // Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
32963
33002
  // See LICENSE in the project root for license information.
@@ -284,18 +284,21 @@ export class AuroCalendarCell extends LitElement {
284
284
  clearRangePreviewClasses(): void;
285
285
  /**
286
286
  * Re-applies the committed-range classes (inRange / rangeDepartDate /
287
- * rangeReturnDate) imperatively from the current dateFrom/dateTo. Used
288
- * after month navigation flushes: classMap in `renderCellButton` tracks
289
- * its own previous state, so a preceding imperative `classList.remove`
290
- * (from `clearRangePreviewClasses`) leaves classMap thinking the class
291
- * is still applied. On re-render with the same class-value, classMap
292
- * emits no delta and the class stays missing in the DOM. Re-toggling
287
+ * rangeReturnDate) imperatively from the cell's current `day`,
288
+ * `dateFrom`, and `dateTo`. Used after month navigation flushes:
289
+ * classMap in `renderCellButton` tracks its own previous state, so a
290
+ * preceding imperative `classList.remove` (from
291
+ * `clearRangePreviewClasses`) leaves classMap thinking the class is
292
+ * still applied. On re-render with the same class-value, classMap emits
293
+ * no delta and the class stays missing in the DOM. Re-toggling
293
294
  * imperatively resyncs the DOM with the committed range.
294
- * @param {Number} dateFrom - Depart timestamp (seconds).
295
- * @param {Number} dateTo - Return timestamp (seconds).
295
+ *
296
+ * Delegates to the same `isInRange` / `isDepartDate` / `isReturnDate`
297
+ * helpers `renderCellButton` uses, so the two code paths cannot drift
298
+ * (including whatever timestamp normalization those helpers apply).
296
299
  * @returns {void}
297
300
  */
298
- applyCommittedRangeClasses(dateFrom: number, dateTo: number): void;
301
+ applyCommittedRangeClasses(): void;
299
302
  renderCellButton(): import("lit-html").TemplateResult;
300
303
  render(): import("lit-html").TemplateResult;
301
304
  }
@@ -456,24 +456,52 @@ export class AuroCalendar extends RangeDatepicker {
456
456
  * @private
457
457
  * @param {Object} [options] - Optional settings.
458
458
  * @param {boolean} [options.force=false] - When true, clears classes even
459
- * when both dateFrom and dateTo are set. Used by month nav handlers
460
- * since the subsequent re-render re-applies classMap-managed classes,
461
- * while `lastHoveredDate` (not in classMap) would otherwise persist.
459
+ * when both dateFrom and dateTo are set. Used by month nav handlers to
460
+ * strip the imperative-only `lastHoveredDate` before the re-render.
461
+ * The other two classes (`inRange`, `rangeDepartDate`) are classMap-
462
+ * managed and get stripped as a side effect here; because classMap
463
+ * remembers what it last emitted and does not diff against the actual
464
+ * DOM, the following month re-render will NOT re-add them on its own.
465
+ * Nav handlers must schedule `refreshCommittedRangeClasses` (via
466
+ * `scheduleCommittedRangeClassRefresh`) to resync them.
462
467
  * @returns {void}
463
468
  */
464
469
  private clearRangePreview;
465
470
  /**
466
- * Re-applies the committed-range classes across every visible cell after
467
- * a month navigation. classMap in the cell tracks its own previous state:
468
- * once `clearRangePreview({ force: true })` strips `inRange`/`rangeDepartDate`
469
- * imperatively before the re-render, classMap's next diff sees the same
470
- * class-value it emitted before and produces no delta, leaving the DOM
471
- * without the classes even though a full range is committed. Re-applying
472
- * imperatively resyncs the two months' cells with `dateFrom`/`dateTo`.
471
+ * Re-applies the committed-range classes across every focusable cell
472
+ * after a month navigation. classMap in the cell tracks its own
473
+ * previous state: once `clearRangePreview({ force: true })` strips
474
+ * `inRange`/`rangeDepartDate` imperatively before the re-render,
475
+ * classMap's next diff sees the same class-value it emitted before and
476
+ * produces no delta, leaving the DOM without the classes even though a
477
+ * full range is committed. Re-applying imperatively resyncs the two
478
+ * months' cells with `dateFrom`/`dateTo`.
479
+ *
480
+ * Iterates `getAllFocusableCells()` — out-of-range cells (blocked by
481
+ * `min`/`max`) can never carry range classes anyway, so skipping them
482
+ * is correct and cheaper than a whole-grid walk.
483
+ *
484
+ * The cell's `applyCommittedRangeClasses` reuses the same
485
+ * `isInRange`/`isDepartDate`/`isReturnDate` helpers `renderCellButton`
486
+ * uses, so we don't parse dateFrom/dateTo here — the helpers already
487
+ * normalize their inputs (midnight-truncation, string→int) internally.
473
488
  * @private
474
489
  * @returns {void}
475
490
  */
476
491
  private refreshCommittedRangeClasses;
492
+ /**
493
+ * Schedules `refreshCommittedRangeClasses` to run after the month
494
+ * re-render has flushed and the cells' button caches have refreshed.
495
+ * Both `handlePrevMonth` and `handleNextMonth` need this exact call
496
+ * shape; keeping it in one place prevents them from drifting apart.
497
+ *
498
+ * Bails synchronously when a full committed range isn't set — otherwise
499
+ * every prev/next click in single-date mode (or before the user picks
500
+ * both dates in range mode) pays for an unused double-rAF hop.
501
+ * @private
502
+ * @returns {void}
503
+ */
504
+ private scheduleCommittedRangeClassRefresh;
477
505
  /**
478
506
  * Overrides the base class handler to prevent setting `this.hoveredDate`
479
507
  * as a reactive property. Instead, handles the range preview imperatively.
@@ -12402,29 +12402,37 @@ class AuroCalendarCell extends LitElement {
12402
12402
 
12403
12403
  /**
12404
12404
  * Re-applies the committed-range classes (inRange / rangeDepartDate /
12405
- * rangeReturnDate) imperatively from the current dateFrom/dateTo. Used
12406
- * after month navigation flushes: classMap in `renderCellButton` tracks
12407
- * its own previous state, so a preceding imperative `classList.remove`
12408
- * (from `clearRangePreviewClasses`) leaves classMap thinking the class
12409
- * is still applied. On re-render with the same class-value, classMap
12410
- * emits no delta and the class stays missing in the DOM. Re-toggling
12405
+ * rangeReturnDate) imperatively from the cell's current `day`,
12406
+ * `dateFrom`, and `dateTo`. Used after month navigation flushes:
12407
+ * classMap in `renderCellButton` tracks its own previous state, so a
12408
+ * preceding imperative `classList.remove` (from
12409
+ * `clearRangePreviewClasses`) leaves classMap thinking the class is
12410
+ * still applied. On re-render with the same class-value, classMap emits
12411
+ * no delta and the class stays missing in the DOM. Re-toggling
12411
12412
  * imperatively resyncs the DOM with the committed range.
12412
- * @param {Number} dateFrom - Depart timestamp (seconds).
12413
- * @param {Number} dateTo - Return timestamp (seconds).
12413
+ *
12414
+ * Delegates to the same `isInRange` / `isDepartDate` / `isReturnDate`
12415
+ * helpers `renderCellButton` uses, so the two code paths cannot drift
12416
+ * (including whatever timestamp normalization those helpers apply).
12414
12417
  * @returns {void}
12415
12418
  */
12416
- applyCommittedRangeClasses(dateFrom, dateTo) {
12417
- const btn = this._cachedButton;
12418
- if (!btn || !this.day || !this.day.date) return;
12419
+ applyCommittedRangeClasses() {
12420
+ if (!this.day) return;
12421
+ // Fall back to a shadowRoot query when `_cachedButton` hasn't
12422
+ // populated yet — this method's whole job is recovering from stale
12423
+ // DOM after a month re-render, so no-oping on a cache miss defeats
12424
+ // the fix (mirrors the fallback in `clearActive()`).
12425
+ const btn = this._cachedButton || this.shadowRoot?.querySelector('button.day');
12426
+ if (!btn) return;
12419
12427
 
12420
- const dayDate = new Date(this.day.date * 1000).setHours(0, 0, 0, 0) / 1000;
12421
- const isInRange = dayDate > dateFrom && dayDate < dateTo;
12422
- const isDepart = dayDate === dateFrom;
12423
- const isReturn = dayDate === dateTo;
12428
+ const hasRange = this.datepicker?.hasAttribute('range');
12429
+ const inRange = hasRange && this.dateTo && this.isInRange(this.day, this.dateFrom, this.dateTo);
12430
+ const isDepart = hasRange && this.isDepartDate(this.day, this.dateFrom) && this.dateTo;
12431
+ const isReturn = hasRange && this.isReturnDate(this.day, this.dateFrom, this.dateTo);
12424
12432
 
12425
- btn.classList.toggle('inRange', isInRange);
12426
- btn.classList.toggle('rangeDepartDate', isDepart);
12427
- btn.classList.toggle('rangeReturnDate', isReturn);
12433
+ btn.classList.toggle('inRange', Boolean(inRange));
12434
+ btn.classList.toggle('rangeDepartDate', Boolean(isDepart));
12435
+ btn.classList.toggle('rangeReturnDate', Boolean(isReturn));
12428
12436
  }
12429
12437
 
12430
12438
  renderCellButton() {
@@ -13571,7 +13579,7 @@ class AuroBibtemplate extends LitElement {
13571
13579
  }
13572
13580
  }
13573
13581
 
13574
- var formkitVersion$2 = '202607011730';
13582
+ var formkitVersion$2 = '202607011826';
13575
13583
 
13576
13584
  let l$1 = 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=literal`${unsafeStatic(r)}`;return customElements.get(r)||customElements.define(r,class extends a{}),i}};let d$1 = 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 = 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=css`: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}
13577
13585
  `,u$4=css`.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}}
@@ -13920,7 +13928,7 @@ class AuroCalendar extends RangeDatepicker {
13920
13928
  // the DOM; classMap's private state still thinks they're applied, so
13921
13929
  // it won't re-add them on the post-nav re-render. Re-apply imperatively
13922
13930
  // after both months and their cell button caches have settled.
13923
- this._afterMonthRender(() => this.refreshCommittedRangeClasses());
13931
+ this.scheduleCommittedRangeClassRefresh();
13924
13932
  this.announceMonthChange();
13925
13933
  }
13926
13934
 
@@ -13943,7 +13951,7 @@ class AuroCalendar extends RangeDatepicker {
13943
13951
  // the DOM; classMap's private state still thinks they're applied, so
13944
13952
  // it won't re-add them on the post-nav re-render. Re-apply imperatively
13945
13953
  // after both months and their cell button caches have settled.
13946
- this._afterMonthRender(() => this.refreshCommittedRangeClasses());
13954
+ this.scheduleCommittedRangeClassRefresh();
13947
13955
  this.announceMonthChange();
13948
13956
  }
13949
13957
 
@@ -15022,9 +15030,14 @@ class AuroCalendar extends RangeDatepicker {
15022
15030
  * @private
15023
15031
  * @param {Object} [options] - Optional settings.
15024
15032
  * @param {boolean} [options.force=false] - When true, clears classes even
15025
- * when both dateFrom and dateTo are set. Used by month nav handlers
15026
- * since the subsequent re-render re-applies classMap-managed classes,
15027
- * while `lastHoveredDate` (not in classMap) would otherwise persist.
15033
+ * when both dateFrom and dateTo are set. Used by month nav handlers to
15034
+ * strip the imperative-only `lastHoveredDate` before the re-render.
15035
+ * The other two classes (`inRange`, `rangeDepartDate`) are classMap-
15036
+ * managed and get stripped as a side effect here; because classMap
15037
+ * remembers what it last emitted and does not diff against the actual
15038
+ * DOM, the following month re-render will NOT re-add them on its own.
15039
+ * Nav handlers must schedule `refreshCommittedRangeClasses` (via
15040
+ * `scheduleCommittedRangeClassRefresh`) to resync them.
15028
15041
  * @returns {void}
15029
15042
  */
15030
15043
  clearRangePreview(options) {
@@ -15040,13 +15053,23 @@ class AuroCalendar extends RangeDatepicker {
15040
15053
  }
15041
15054
 
15042
15055
  /**
15043
- * Re-applies the committed-range classes across every visible cell after
15044
- * a month navigation. classMap in the cell tracks its own previous state:
15045
- * once `clearRangePreview({ force: true })` strips `inRange`/`rangeDepartDate`
15046
- * imperatively before the re-render, classMap's next diff sees the same
15047
- * class-value it emitted before and produces no delta, leaving the DOM
15048
- * without the classes even though a full range is committed. Re-applying
15049
- * imperatively resyncs the two months' cells with `dateFrom`/`dateTo`.
15056
+ * Re-applies the committed-range classes across every focusable cell
15057
+ * after a month navigation. classMap in the cell tracks its own
15058
+ * previous state: once `clearRangePreview({ force: true })` strips
15059
+ * `inRange`/`rangeDepartDate` imperatively before the re-render,
15060
+ * classMap's next diff sees the same class-value it emitted before and
15061
+ * produces no delta, leaving the DOM without the classes even though a
15062
+ * full range is committed. Re-applying imperatively resyncs the two
15063
+ * months' cells with `dateFrom`/`dateTo`.
15064
+ *
15065
+ * Iterates `getAllFocusableCells()` — out-of-range cells (blocked by
15066
+ * `min`/`max`) can never carry range classes anyway, so skipping them
15067
+ * is correct and cheaper than a whole-grid walk.
15068
+ *
15069
+ * The cell's `applyCommittedRangeClasses` reuses the same
15070
+ * `isInRange`/`isDepartDate`/`isReturnDate` helpers `renderCellButton`
15071
+ * uses, so we don't parse dateFrom/dateTo here — the helpers already
15072
+ * normalize their inputs (midnight-truncation, string→int) internally.
15050
15073
  * @private
15051
15074
  * @returns {void}
15052
15075
  */
@@ -15055,15 +15078,31 @@ class AuroCalendar extends RangeDatepicker {
15055
15078
  return;
15056
15079
  }
15057
15080
 
15058
- const parsedDateFrom = parseInt(this.dateFrom, 10);
15059
- const parsedDateTo = parseInt(this.dateTo, 10);
15060
15081
  const allCells = this.getAllFocusableCells();
15061
-
15062
15082
  allCells.forEach((cell) => {
15063
- cell.applyCommittedRangeClasses(parsedDateFrom, parsedDateTo);
15083
+ cell.applyCommittedRangeClasses();
15064
15084
  });
15065
15085
  }
15066
15086
 
15087
+ /**
15088
+ * Schedules `refreshCommittedRangeClasses` to run after the month
15089
+ * re-render has flushed and the cells' button caches have refreshed.
15090
+ * Both `handlePrevMonth` and `handleNextMonth` need this exact call
15091
+ * shape; keeping it in one place prevents them from drifting apart.
15092
+ *
15093
+ * Bails synchronously when a full committed range isn't set — otherwise
15094
+ * every prev/next click in single-date mode (or before the user picks
15095
+ * both dates in range mode) pays for an unused double-rAF hop.
15096
+ * @private
15097
+ * @returns {void}
15098
+ */
15099
+ scheduleCommittedRangeClassRefresh() {
15100
+ if (this.noRange || !this.dateFrom || !this.dateTo) {
15101
+ return;
15102
+ }
15103
+ this._afterMonthRender(() => this.refreshCommittedRangeClasses());
15104
+ }
15105
+
15067
15106
  /**
15068
15107
  * Overrides the base class handler to prevent setting `this.hoveredDate`
15069
15108
  * as a reactive property. Instead, handles the range preview imperatively.
@@ -19358,7 +19397,7 @@ let AuroHelpText$2 = class AuroHelpText extends LitElement {
19358
19397
  }
19359
19398
  };
19360
19399
 
19361
- var formkitVersion$1 = '202607011730';
19400
+ var formkitVersion$1 = '202607011826';
19362
19401
 
19363
19402
  let AuroElement$2 = class AuroElement extends LitElement {
19364
19403
  static get properties() {
@@ -32878,7 +32917,7 @@ let AuroHelpText$1 = class AuroHelpText extends LitElement {
32878
32917
  }
32879
32918
  };
32880
32919
 
32881
- var formkitVersion = '202607011730';
32920
+ var formkitVersion = '202607011826';
32882
32921
 
32883
32922
  // Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
32884
32923
  // See LICENSE in the project root for license information.