@aurodesignsystem-dev/auro-formkit 0.0.0-pr1524.0 → 0.0.0-pr1530.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 (51) 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 +25 -67
  7. package/components/combobox/demo/getting-started.min.js +25 -67
  8. package/components/combobox/demo/index.min.js +25 -67
  9. package/components/combobox/dist/auro-combobox.d.ts +0 -2
  10. package/components/combobox/dist/index.js +25 -67
  11. package/components/combobox/dist/registered.js +25 -67
  12. package/components/counter/demo/customize.min.js +2 -2
  13. package/components/counter/demo/index.min.js +2 -2
  14. package/components/counter/dist/index.js +2 -2
  15. package/components/counter/dist/registered.js +2 -2
  16. package/components/datepicker/demo/accessibility.md +12 -3
  17. package/components/datepicker/demo/api.md +1 -1
  18. package/components/datepicker/demo/customize.min.js +121 -34
  19. package/components/datepicker/demo/index.min.js +121 -34
  20. package/components/datepicker/demo/voiceover.md +1 -1
  21. package/components/datepicker/dist/auro-calendar-cell.d.ts +2 -0
  22. package/components/datepicker/dist/auro-calendar.d.ts +17 -2
  23. package/components/datepicker/dist/auro-datepicker.d.ts +9 -1
  24. package/components/datepicker/dist/index.js +121 -34
  25. package/components/datepicker/dist/registered.js +121 -34
  26. package/components/dropdown/demo/customize.min.js +1 -1
  27. package/components/dropdown/demo/getting-started.min.js +1 -1
  28. package/components/dropdown/demo/index.min.js +1 -1
  29. package/components/dropdown/dist/index.js +1 -1
  30. package/components/dropdown/dist/registered.js +1 -1
  31. package/components/form/demo/customize.min.js +170 -123
  32. package/components/form/demo/getting-started.min.js +170 -123
  33. package/components/form/demo/index.min.js +170 -123
  34. package/components/form/demo/registerDemoDeps.min.js +170 -123
  35. package/components/input/demo/customize.min.js +19 -17
  36. package/components/input/demo/getting-started.min.js +19 -17
  37. package/components/input/demo/index.min.js +19 -17
  38. package/components/input/dist/index.js +19 -17
  39. package/components/input/dist/registered.js +19 -17
  40. package/components/radio/demo/customize.min.js +1 -1
  41. package/components/radio/demo/getting-started.min.js +1 -1
  42. package/components/radio/demo/index.min.js +1 -1
  43. package/components/radio/dist/index.js +1 -1
  44. package/components/radio/dist/registered.js +1 -1
  45. package/components/select/demo/customize.min.js +2 -2
  46. package/components/select/demo/getting-started.min.js +2 -2
  47. package/components/select/demo/index.min.js +2 -2
  48. package/components/select/dist/index.js +2 -2
  49. package/components/select/dist/registered.js +2 -2
  50. package/custom-elements.json +5 -19
  51. package/package.json +1 -1
@@ -12278,9 +12278,20 @@ class AuroCalendarCell extends i$1 {
12278
12278
  const calendar = this.runtimeUtils.closestElement('auro-formkit-calendar', calendarMonth);
12279
12279
 
12280
12280
  if (!calendar) {
12281
- setTimeout(() => this.firstUpdated(), 0);
12281
+ // Retry on the next event-loop turn to give the ancestor chain a chance
12282
+ // to attach — but cap attempts so a permanently detached cell doesn't
12283
+ // spin forever. 10 turns is far more than any observed race needs.
12284
+ this._firstUpdatedRetries = (this._firstUpdatedRetries || 0) + 1;
12285
+ if (this._firstUpdatedRetries > 10) { // eslint-disable-line no-magic-numbers
12286
+ return;
12287
+ }
12288
+ this._firstUpdatedRetryTimer = setTimeout(() => {
12289
+ this._firstUpdatedRetryTimer = null;
12290
+ this.firstUpdated();
12291
+ }, 0);
12282
12292
  return;
12283
12293
  }
12294
+ this._firstUpdatedRetries = 0;
12284
12295
  this.calendar = calendar;
12285
12296
  this.datepicker = calendar.datepicker;
12286
12297
  this._slotContentHandler = () => {
@@ -12308,6 +12319,10 @@ class AuroCalendarCell extends i$1 {
12308
12319
  if (this.datepicker && this._slotContentHandler) {
12309
12320
  this.datepicker.removeEventListener('auroDatePicker-newSlotContent', this._slotContentHandler);
12310
12321
  }
12322
+ if (this._firstUpdatedRetryTimer) {
12323
+ clearTimeout(this._firstUpdatedRetryTimer);
12324
+ this._firstUpdatedRetryTimer = null;
12325
+ }
12311
12326
  }
12312
12327
 
12313
12328
  /**
@@ -13685,7 +13700,7 @@ class AuroBibtemplate extends i$1 {
13685
13700
  }
13686
13701
  }
13687
13702
 
13688
- var formkitVersion$2 = '202607020031';
13703
+ var formkitVersion$2 = '202607021905';
13689
13704
 
13690
13705
  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}
13691
13706
  `,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}}
@@ -14402,8 +14417,19 @@ class AuroCalendar extends RangeDatepicker {
14402
14417
  /**
14403
14418
  * Returns a memoized Set of blackout timestamps (seconds) drawn from both
14404
14419
  * the legacy `disabledDays` array and the datepicker's ISO `blackoutDates`.
14405
- * The cache invalidates when either source array's reference changes, which
14406
- * matches Lit's own reactive identity semantics for array properties.
14420
+ *
14421
+ * The cache invalidates on **reference identity** only when the
14422
+ * consumer reassigns the array (`el.blackoutDates = [...]`), matching
14423
+ * Lit's own reactivity semantics for array properties. In-place mutations
14424
+ * on the existing array (`push`, `splice`, index assignment) will NOT
14425
+ * invalidate the cache and the new entries will be silently ignored.
14426
+ * Consumers must reassign to update — see the JSDoc on
14427
+ * `auro-datepicker.blackoutDates` for the recommended pattern.
14428
+ *
14429
+ * A shallow-equality tier was considered but rejected: it would run
14430
+ * O(N) work on every cell render (this method is called per-cell via
14431
+ * `isBlackout()`) and still wouldn't catch same-length value swaps,
14432
+ * offering a false sense of safety.
14407
14433
  * @private
14408
14434
  * @returns {Set<Number>}
14409
14435
  */
@@ -14584,7 +14610,21 @@ class AuroCalendar extends RangeDatepicker {
14584
14610
  // rendered month(s) first so a single-month calendar does not pick a date
14585
14611
  // that has no DOM cell. Determine the visible range based on centralDate and
14586
14612
  // the number of rendered months.
14587
- const renderedMonths = Math.max(this.numCalendars, 1);
14613
+ //
14614
+ // numCalendars is assigned during renderAllCalendars(), which runs after
14615
+ // updated() — so the visible-change handler's eager computeActiveDate()
14616
+ // call arrives with numCalendars still undefined. Math.max(undefined, 1)
14617
+ // is NaN, which would silently skip the visible-month scan below. Fall
14618
+ // back to maximumRenderableMonths' desktop default (1 for non-range,
14619
+ // 2 for range) so the scan window is correctly sized on first open.
14620
+ let renderedMonths = null;
14621
+
14622
+ if (Number.isFinite(this.numCalendars) && this.numCalendars > 0) {
14623
+ renderedMonths = this.numCalendars;
14624
+ } else {
14625
+ renderedMonths = this.noRange ? 1 : 2;
14626
+ }
14627
+
14588
14628
  const visibleAnchor = this.centralDateObject ?? new Date(now * 1000);
14589
14629
  const visMonthStart = new Date(visibleAnchor.getFullYear(), visibleAnchor.getMonth(), 1);
14590
14630
  visMonthStart.setHours(0, 0, 0, 0);
@@ -14854,6 +14894,8 @@ class AuroCalendar extends RangeDatepicker {
14854
14894
  let targetIndex = -1;
14855
14895
  if (direction === 'next') {
14856
14896
  targetIndex = currentIndex + 1;
14897
+ } else if (direction === 'prev') {
14898
+ targetIndex = currentIndex - 1;
14857
14899
  }
14858
14900
 
14859
14901
  if (targetIndex >= 0 && targetIndex < allCells.length) {
@@ -15458,6 +15500,10 @@ class AuroCalendar extends RangeDatepicker {
15458
15500
  * originally tried aria-live="polite" here, but VoiceOver treats
15459
15501
  * polite as "wait until idle" — which never happens during active
15460
15502
  * keyboard navigation — so the announcements were silently dropped.
15503
+ *
15504
+ * This is a documented deviation from WCAG 2.1 SC 4.1.3, which
15505
+ * prefers `polite` for status messages. See the "Documented
15506
+ * Deviation" section in components/datepicker/docs/pages/accessibility.md.
15461
15507
  * @private
15462
15508
  * @param {String} dateStr - The localized date string to announce.
15463
15509
  * @returns {void}
@@ -19527,7 +19573,7 @@ let AuroHelpText$2 = class AuroHelpText extends i$1 {
19527
19573
  }
19528
19574
  };
19529
19575
 
19530
- var formkitVersion$1 = '202607020031';
19576
+ var formkitVersion$1 = '202607021905';
19531
19577
 
19532
19578
  let AuroElement$2 = class AuroElement extends i$1 {
19533
19579
  static get properties() {
@@ -32416,17 +32462,14 @@ class BaseInput extends AuroElement$1 {
32416
32462
  * @returns {void}
32417
32463
  */
32418
32464
  notifyValueChanged() {
32419
- // This echoes Lit's reactive value update (and handleClickClear's
32420
- // programmatic clear) — it is NOT a fresh user-input event. Mark it
32421
- // `isProgrammatic` so consumers (e.g. auro-combobox) can distinguish
32422
- // it from genuine user typing and skip clobbering their own
32423
- // programmatic state during init-time renders.
32424
- const inputEvent = new Event('input', {
32465
+ let inputEvent = null;
32466
+
32467
+ inputEvent = new Event('input', {
32425
32468
  bubbles: true,
32426
32469
  composed: true,
32427
32470
  });
32428
- inputEvent.isProgrammatic = true;
32429
32471
 
32472
+ // Dispatched event to alert outside shadow DOM context of event firing.
32430
32473
  this.dispatchEvent(inputEvent);
32431
32474
  }
32432
32475
 
@@ -33139,7 +33182,7 @@ let AuroHelpText$1 = class AuroHelpText extends i$1 {
33139
33182
  }
33140
33183
  };
33141
33184
 
33142
- var formkitVersion = '202607020031';
33185
+ var formkitVersion = '202607021905';
33143
33186
 
33144
33187
  // Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
33145
33188
  // See LICENSE in the project root for license information.
@@ -33425,15 +33468,20 @@ class AuroInput extends BaseInput {
33425
33468
  * @returns {void}
33426
33469
  */
33427
33470
  checkDisplayValueSlotChange() {
33428
- // flatten:true resolves through auro-combobox's forwarding slot
33429
- // (<slot name="displayValue" slot="displayValue">) so a clone appended
33430
- // directly to auro-input's light DOM alongside the forwarder still
33431
- // counts as content. The prior nodes[0].tagName === 'SLOT' recursion
33432
- // discarded any siblings past the forwarder.
33433
- const slot = this.shadowRoot.querySelector('slot[name="displayValue"]');
33434
- const nodes = slot.assignedNodes({ flatten: true });
33471
+ let nodes = this.shadowRoot.querySelector('slot[name="displayValue"]').assignedNodes();
33472
+
33473
+ // Handle when DisplayValue is multi-level slot content (e.g. combobox passing displayValue to input)
33474
+ if (nodes && nodes[0] && nodes[0].tagName === 'SLOT') {
33475
+ nodes = nodes[0].assignedNodes();
33476
+ }
33477
+
33478
+ let hasContent = false;
33479
+
33480
+ if (nodes.length > 0) {
33481
+ hasContent = true;
33482
+ }
33435
33483
 
33436
- this.hasDisplayValueContent = nodes.length > 0;
33484
+ this.hasDisplayValueContent = hasContent;
33437
33485
  }
33438
33486
 
33439
33487
  firstUpdated() {
@@ -34511,6 +34559,15 @@ const datepickerKeyboardStrategy = {
34511
34559
  evt.stopPropagation();
34512
34560
  evt.preventDefault();
34513
34561
 
34562
+ // Signal to the visibility-change handler in auro-datepicker.js that
34563
+ // focus should be restored to the trigger regardless of hasFocus.
34564
+ // hidePopover() (desktop non-modal path) does not auto-restore focus,
34565
+ // and hiding the grid's popover ancestor drops focus to <body>. That
34566
+ // synchronously fires focusout on the datepicker host — clearing
34567
+ // hasFocus — before updated() runs, which would otherwise skip the
34568
+ // input refocus. Native <dialog>.close() (modal path) restores focus
34569
+ // itself, but the flag is harmless there.
34570
+ component._restoreFocusOnClose = true;
34514
34571
  component.hideBib();
34515
34572
  },
34516
34573
 
@@ -34784,6 +34841,14 @@ class AuroDatePicker extends AuroElement {
34784
34841
 
34785
34842
  /**
34786
34843
  * Array of dates that cannot be selected. Dates should be in ISO format (YYYY-MM-DD).
34844
+ *
34845
+ * **Immutable update required.** The datepicker treats this array as
34846
+ * immutable and memoizes a lookup Set keyed on the array's reference
34847
+ * identity — matching Lit's own reactivity semantics for array
34848
+ * properties. In-place mutations (`blackoutDates.push(...)`,
34849
+ * `blackoutDates[i] = ...`, `blackoutDates.splice(...)`) will not
34850
+ * invalidate the cache and the new entries will be silently ignored.
34851
+ * To update, reassign the property: `el.blackoutDates = [...el.blackoutDates, '2024-12-25']`.
34787
34852
  */
34788
34853
  blackoutDates: {
34789
34854
  type: Array,
@@ -35669,12 +35734,13 @@ class AuroDatePicker extends AuroElement {
35669
35734
  this.calendar.activeCellDate = null;
35670
35735
 
35671
35736
  // Show the month containing the selected date (or today) instead of
35672
- // whichever month the user last navigated to.
35737
+ // whichever month the user last navigated to. Route through
35738
+ // updateCentralDate so centralDate stays first-of-month.
35673
35739
  // Respect consumer-provided centralDate/calendarStartDate if no value is set.
35674
35740
  if (this.valueObject) {
35675
- this.centralDate = this.value;
35741
+ this.calendarRenderUtil.updateCentralDate(this, this.value);
35676
35742
  } else if (!this.centralDate && !this.calendarStartDate && !this.minDate) {
35677
- this.centralDate = dateFormatter$1.toISOFormatString(new Date());
35743
+ this.calendarRenderUtil.updateCentralDate(this, new Date());
35678
35744
  }
35679
35745
  }
35680
35746
 
@@ -35732,8 +35798,15 @@ class AuroDatePicker extends AuroElement {
35732
35798
  // Always clear the inert flag. Only restore focus to the input when the datepicker
35733
35799
  // still has focus (e.g. Escape, date selected) — not when the user tabbed away,
35734
35800
  // which would pull them back and require extra Tab presses to escape.
35801
+ //
35802
+ // `_restoreFocusOnClose` is set by the Escape handler in
35803
+ // datepickerKeyboardStrategy.js to force restore even when hasFocus
35804
+ // has already been cleared — hidePopover() (desktop non-modal path)
35805
+ // can drop focus to <body> before this update fires.
35735
35806
  this.dropdown.trigger.inert = false;
35736
- if (this.hasFocus) {
35807
+ const shouldRestoreFocus = this.hasFocus || this._restoreFocusOnClose;
35808
+ this._restoreFocusOnClose = false;
35809
+ if (shouldRestoreFocus) {
35737
35810
  requestAnimationFrame(() => {
35738
35811
  if (!this.dropdown.isPopoverVisible) {
35739
35812
  this.inputList[0].focus();
@@ -36179,6 +36252,18 @@ class AuroDatePicker extends AuroElement {
36179
36252
  this.calendar.requestUpdate();
36180
36253
  this.dispatchEvent(new CustomEvent('auroDatePicker-newSlotContent'));
36181
36254
  }
36255
+
36256
+ // Range invariant: if a value change (from click or programmatic) has
36257
+ // moved start past end, clear valueEnd here so both properties land in
36258
+ // the SAME reactive cycle. Doing it in updated() would schedule a
36259
+ // second cycle after cellClickActive/wasCellClick has already been
36260
+ // consumed by the value branch, leaving the valueEnd branch to run
36261
+ // with a stale handshake and racing with any intervening programmatic
36262
+ // value assignments.
36263
+ if ((changedProperties.has('value') || changedProperties.has('valueEnd')) &&
36264
+ this.valueObject && this.valueEndObject && this.valueObject > this.valueEndObject) {
36265
+ this.valueEnd = undefined;
36266
+ }
36182
36267
  }
36183
36268
 
36184
36269
  updated(changedProperties) {
@@ -36246,8 +36331,12 @@ class AuroDatePicker extends AuroElement {
36246
36331
 
36247
36332
  if (this.value && this.value.length === this.inputList[0].lengthForType && !(this.wasCellClick && this.range)) {
36248
36333
  // Skip centralDate update when user clicked a cell in range mode
36249
- // to prevent the displayed months from shifting
36250
- this.centralDate = this.value;
36334
+ // to prevent the displayed months from shifting. Route through
36335
+ // updateCentralDate so centralDate stays first-of-month — direct
36336
+ // assignment of the raw value briefly holds a mid-month string
36337
+ // and violates the invariant that observers (e.g. calendar sync)
36338
+ // rely on.
36339
+ this.calendarRenderUtil.updateCentralDate(this, this.value);
36251
36340
  }
36252
36341
 
36253
36342
  this.setHasValue();
@@ -36305,8 +36394,10 @@ class AuroDatePicker extends AuroElement {
36305
36394
 
36306
36395
  if (this.valueEnd && this.valueEnd.length === this.inputList[1].lengthForType && !this.wasCellClick) {
36307
36396
  // Skip centralDate update when user clicked a cell in range mode
36308
- // to prevent the displayed months from shifting
36309
- this.centralDate = this.valueEnd;
36397
+ // to prevent the displayed months from shifting. Route through
36398
+ // updateCentralDate to preserve the first-of-month invariant
36399
+ // (see matching comment in the value branch above).
36400
+ this.calendarRenderUtil.updateCentralDate(this, this.valueEnd);
36310
36401
  }
36311
36402
 
36312
36403
  this.validate();
@@ -36330,10 +36421,6 @@ class AuroDatePicker extends AuroElement {
36330
36421
  this.validation.validate(lastInput, true);
36331
36422
  }
36332
36423
 
36333
- if (this.valueObject && this.valueEndObject && this.valueObject > this.valueEndObject) {
36334
- this.valueEnd = undefined;
36335
- }
36336
-
36337
36424
  // This resets the datepicker when the minDate is set to a new value that is
36338
36425
  // a later date than the current value date
36339
36426
  if (changedProperties.has('minDate') && this.minDate) {