@aurodesignsystem-dev/auro-formkit 0.0.0-pr1530.2 → 0.0.0-pr1531.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 (53) 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/accessibility.md +8 -17
  16. package/components/datepicker/demo/api.md +1 -1
  17. package/components/datepicker/demo/customize.min.js +29 -175
  18. package/components/datepicker/demo/index.min.js +29 -175
  19. package/components/datepicker/demo/keyboard-behavior.md +3 -3
  20. package/components/datepicker/demo/voiceover.md +4 -4
  21. package/components/datepicker/demo/why-datepicker.md +2 -2
  22. package/components/datepicker/dist/auro-calendar-cell.d.ts +0 -11
  23. package/components/datepicker/dist/auro-calendar.d.ts +2 -26
  24. package/components/datepicker/dist/auro-datepicker.d.ts +1 -9
  25. package/components/datepicker/dist/index.js +29 -175
  26. package/components/datepicker/dist/registered.js +29 -175
  27. package/components/dropdown/demo/customize.min.js +1 -1
  28. package/components/dropdown/demo/getting-started.min.js +1 -1
  29. package/components/dropdown/demo/index.min.js +1 -1
  30. package/components/dropdown/dist/index.js +1 -1
  31. package/components/dropdown/dist/registered.js +1 -1
  32. package/components/form/demo/customize.min.js +53 -245
  33. package/components/form/demo/getting-started.min.js +53 -245
  34. package/components/form/demo/index.min.js +53 -245
  35. package/components/form/demo/registerDemoDeps.min.js +53 -245
  36. package/components/input/demo/customize.min.js +1 -1
  37. package/components/input/demo/getting-started.min.js +1 -1
  38. package/components/input/demo/index.min.js +1 -1
  39. package/components/input/dist/index.js +1 -1
  40. package/components/input/dist/registered.js +1 -1
  41. package/components/radio/demo/customize.min.js +1 -1
  42. package/components/radio/demo/getting-started.min.js +1 -1
  43. package/components/radio/demo/index.min.js +1 -1
  44. package/components/radio/dist/index.js +1 -1
  45. package/components/radio/dist/registered.js +1 -1
  46. package/components/select/demo/customize.min.js +16 -62
  47. package/components/select/demo/getting-started.min.js +16 -62
  48. package/components/select/demo/index.min.js +16 -62
  49. package/components/select/dist/auro-select.d.ts +0 -6
  50. package/components/select/dist/index.js +16 -62
  51. package/components/select/dist/registered.js +16 -62
  52. package/custom-elements.json +8 -38
  53. package/package.json +1 -1
@@ -11638,28 +11638,23 @@ var popoverVersion = '6.0.1';
11638
11638
  * @returns {number|null} Local-midnight Unix timestamp (seconds), or null.
11639
11639
  */
11640
11640
  function parseIsoToTimestamp(isoStr) {
11641
- // Strict YYYY-MM-DD matcher with named groups. Rejects trailing garbage
11642
- // ("2024x-01-01"), short segments ("2024-1-1"), and any non-digit
11643
- // characters. `parseInt` alone accepted both because it stops at the
11644
- // first non-digit and doesn't require a minimum length.
11645
- const ISO_DATE_RE = /^(?<year>\d{4})-(?<month>\d{2})-(?<day>\d{2})$/u;
11646
- const MAX_MONTH = 12;
11647
- const MAX_DAY = 31;
11648
-
11649
11641
  if (typeof isoStr !== 'string') {
11650
11642
  return null;
11651
11643
  }
11652
- const match = ISO_DATE_RE.exec(isoStr);
11653
- if (!match) {
11644
+ const parts = isoStr.split('-');
11645
+ if (parts.length !== 3) {
11646
+ return null;
11647
+ }
11648
+ const year = parseInt(parts[0], 10);
11649
+ const month = parseInt(parts[1], 10);
11650
+ const day = parseInt(parts[2], 10);
11651
+ if (!Number.isFinite(year) || !Number.isFinite(month) || !Number.isFinite(day)) {
11654
11652
  return null;
11655
11653
  }
11656
- const year = Number(match.groups.year);
11657
- const month = Number(match.groups.month);
11658
- const day = Number(match.groups.day);
11659
11654
  // Reject overflow values like "2024-13-40" — JS `new Date(year, month, day)`
11660
11655
  // silently normalizes those to a different calendar day, which would
11661
11656
  // disable the wrong date if we let the result through.
11662
- if (month < 1 || month > MAX_MONTH || day < 1 || day > MAX_DAY) {
11657
+ if (month < 1 || month > 12 || day < 1 || day > 31) {
11663
11658
  return null;
11664
11659
  }
11665
11660
  const date = new Date(year, month - 1, day);
@@ -12237,36 +12232,13 @@ class AuroCalendarCell extends LitElement {
12237
12232
  }
12238
12233
 
12239
12234
  firstUpdated() {
12240
- this._initFromAncestors();
12241
- }
12242
-
12243
- /**
12244
- * Wires the cell to its ancestor calendar-month and calendar (and, via
12245
- * the calendar, to the datepicker). Extracted from firstUpdated() so the
12246
- * retry loop can re-attempt without recursively invoking a Lit lifecycle
12247
- * method (which is outside the framework's contract).
12248
- * @private
12249
- * @returns {void}
12250
- */
12251
- _initFromAncestors() {
12252
12235
  const calendarMonth = this.runtimeUtils.closestElement('auro-formkit-calendar-month', this);
12253
12236
  const calendar = this.runtimeUtils.closestElement('auro-formkit-calendar', calendarMonth);
12254
12237
 
12255
12238
  if (!calendar) {
12256
- // Retry on the next event-loop turn to give the ancestor chain a chance
12257
- // to attach — but cap attempts so a permanently detached cell doesn't
12258
- // spin forever. 10 turns is far more than any observed race needs.
12259
- this._firstUpdatedRetries = (this._firstUpdatedRetries || 0) + 1;
12260
- if (this._firstUpdatedRetries > 10) {
12261
- return;
12262
- }
12263
- this._firstUpdatedRetryTimer = setTimeout(() => {
12264
- this._firstUpdatedRetryTimer = null;
12265
- this._initFromAncestors();
12266
- }, 0);
12239
+ setTimeout(() => this.firstUpdated(), 0);
12267
12240
  return;
12268
12241
  }
12269
- this._firstUpdatedRetries = 0;
12270
12242
  this.calendar = calendar;
12271
12243
  this.datepicker = calendar.datepicker;
12272
12244
  this._slotContentHandler = () => {
@@ -12294,10 +12266,6 @@ class AuroCalendarCell extends LitElement {
12294
12266
  if (this.datepicker && this._slotContentHandler) {
12295
12267
  this.datepicker.removeEventListener('auroDatePicker-newSlotContent', this._slotContentHandler);
12296
12268
  }
12297
- if (this._firstUpdatedRetryTimer) {
12298
- clearTimeout(this._firstUpdatedRetryTimer);
12299
- this._firstUpdatedRetryTimer = null;
12300
- }
12301
12269
  }
12302
12270
 
12303
12271
  /**
@@ -13669,7 +13637,7 @@ class AuroBibtemplate extends LitElement {
13669
13637
  }
13670
13638
  }
13671
13639
 
13672
- var formkitVersion$2 = '202607022225';
13640
+ var formkitVersion$2 = '202607022150';
13673
13641
 
13674
13642
  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}
13675
13643
  `,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}}
@@ -13808,10 +13776,7 @@ class AuroCalendar extends RangeDatepicker {
13808
13776
  * Support will be removed in a future major release.
13809
13777
  * @private
13810
13778
  */
13811
- // Initialize the backing field directly so the constructor's default
13812
- // empty array doesn't trigger the deprecation warning. Assignments from
13813
- // consumers still route through the setter below.
13814
- this._disabledDays = [];
13779
+ this.disabledDays = [];
13815
13780
 
13816
13781
  /**
13817
13782
  * @private
@@ -13844,44 +13809,6 @@ class AuroCalendar extends RangeDatepicker {
13844
13809
  this._calendarInstanceId = Date.now().toString(36);
13845
13810
  }
13846
13811
 
13847
- /**
13848
- * @deprecated See constructor JSDoc — migrate to
13849
- * `auro-datepicker.blackoutDates`. The getter/setter pair exists so the
13850
- * one-time deprecation warning fires as soon as a consumer assigns a
13851
- * non-empty array (empty assignments are ignored — an empty array is
13852
- * indistinguishable from the constructor default and would produce a
13853
- * spurious warning), rather than only when `_getBlackoutSet()` happens
13854
- * to rebuild.
13855
- * @returns {Array} The current legacy `disabledDays` array.
13856
- */
13857
- get disabledDays() {
13858
- return this._disabledDays;
13859
- }
13860
-
13861
- /**
13862
- * @param {Array} value - The legacy `disabledDays` array to set.
13863
- */
13864
- set disabledDays(value) {
13865
- const oldValue = this._disabledDays;
13866
- // Coerce non-arrays to `[]`. Consumers occasionally pass `null`
13867
- // (Lit's Array attribute converter returns null for a missing/empty
13868
- // attribute) or misuse the API; downstream code in
13869
- // `auro-calendar-cell.isEnabled` calls `.findIndex()` on this value
13870
- // without an Array.isArray guard, so a truthy non-array would throw
13871
- // at render.
13872
- const coerced = Array.isArray(value) ? value : [];
13873
- if (coerced.length > 0) {
13874
- this._warnDisabledDaysDeprecated();
13875
- }
13876
- this._disabledDays = coerced;
13877
- // `disabledDays` is a Lit `@property({ type: Array })` on the
13878
- // RangeDatepicker base class; Lit's generated setter (which we've
13879
- // overridden here to insert the warning) is what normally invalidates
13880
- // the reactive cycle. Re-invoke requestUpdate manually so consumer
13881
- // assignments still re-render the calendar.
13882
- this.requestUpdate('disabledDays', oldValue);
13883
- }
13884
-
13885
13812
  static get styles() {
13886
13813
  return [
13887
13814
  styleCss$7,
@@ -14427,19 +14354,8 @@ class AuroCalendar extends RangeDatepicker {
14427
14354
  /**
14428
14355
  * Returns a memoized Set of blackout timestamps (seconds) drawn from both
14429
14356
  * the legacy `disabledDays` array and the datepicker's ISO `blackoutDates`.
14430
- *
14431
- * The cache invalidates on **reference identity** only when the
14432
- * consumer reassigns the array (`el.blackoutDates = [...]`), matching
14433
- * Lit's own reactivity semantics for array properties. In-place mutations
14434
- * on the existing array (`push`, `splice`, index assignment) will NOT
14435
- * invalidate the cache and the new entries will be silently ignored.
14436
- * Consumers must reassign to update — see the JSDoc on
14437
- * `auro-datepicker.blackoutDates` for the recommended pattern.
14438
- *
14439
- * A shallow-equality tier was considered but rejected: it would run
14440
- * O(N) work on every cell render (this method is called per-cell via
14441
- * `isBlackout()`) and still wouldn't catch same-length value swaps,
14442
- * offering a false sense of safety.
14357
+ * The cache invalidates when either source array's reference changes, which
14358
+ * matches Lit's own reactive identity semantics for array properties.
14443
14359
  * @private
14444
14360
  * @returns {Set<Number>}
14445
14361
  */
@@ -14620,24 +14536,7 @@ class AuroCalendar extends RangeDatepicker {
14620
14536
  // rendered month(s) first so a single-month calendar does not pick a date
14621
14537
  // that has no DOM cell. Determine the visible range based on centralDate and
14622
14538
  // the number of rendered months.
14623
- //
14624
- // numCalendars is assigned inside renderAllCalendars(), which runs during
14625
- // render() — so by the time the visible-change handler in updated()
14626
- // calls computeActiveDate() in the same cycle, numCalendars is normally
14627
- // set. Guard against the pre-first-render path anyway (e.g. any future
14628
- // caller that reaches computeActiveDate before render() has run):
14629
- // Math.max(undefined, 1) is NaN, which would silently skip the
14630
- // visible-month scan below. Fall back to maximumRenderableMonths'
14631
- // desktop default (1 for non-range, 2 for range) so the scan window is
14632
- // correctly sized whenever numCalendars is not yet populated.
14633
- let renderedMonths = null;
14634
-
14635
- if (Number.isFinite(this.numCalendars) && this.numCalendars > 0) {
14636
- renderedMonths = this.numCalendars;
14637
- } else {
14638
- renderedMonths = this.noRange ? 1 : 2;
14639
- }
14640
-
14539
+ const renderedMonths = Math.max(this.numCalendars, 1);
14641
14540
  const visibleAnchor = this.centralDateObject ?? new Date(now * 1000);
14642
14541
  const visMonthStart = new Date(visibleAnchor.getFullYear(), visibleAnchor.getMonth(), 1);
14643
14542
  visMonthStart.setHours(0, 0, 0, 0);
@@ -14907,8 +14806,6 @@ class AuroCalendar extends RangeDatepicker {
14907
14806
  let targetIndex = -1;
14908
14807
  if (direction === 'next') {
14909
14808
  targetIndex = currentIndex + 1;
14910
- } else if (direction === 'prev') {
14911
- targetIndex = currentIndex - 1;
14912
14809
  }
14913
14810
 
14914
14811
  if (targetIndex >= 0 && targetIndex < allCells.length) {
@@ -15513,10 +15410,6 @@ class AuroCalendar extends RangeDatepicker {
15513
15410
  * originally tried aria-live="polite" here, but VoiceOver treats
15514
15411
  * polite as "wait until idle" — which never happens during active
15515
15412
  * keyboard navigation — so the announcements were silently dropped.
15516
- *
15517
- * This is a documented deviation from WCAG 2.1 SC 4.1.3, which
15518
- * prefers `polite` for status messages. See the "Documented
15519
- * Deviation" section in components/datepicker/docs/pages/accessibility.md.
15520
15413
  * @private
15521
15414
  * @param {String} dateStr - The localized date string to announce.
15522
15415
  * @returns {void}
@@ -19562,7 +19455,7 @@ let AuroHelpText$2 = class AuroHelpText extends LitElement {
19562
19455
  }
19563
19456
  };
19564
19457
 
19565
- var formkitVersion$1 = '202607022225';
19458
+ var formkitVersion$1 = '202607022150';
19566
19459
 
19567
19460
  let AuroElement$2 = class AuroElement extends LitElement {
19568
19461
  static get properties() {
@@ -33177,7 +33070,7 @@ let AuroHelpText$1 = class AuroHelpText extends LitElement {
33177
33070
  }
33178
33071
  };
33179
33072
 
33180
- var formkitVersion = '202607022225';
33073
+ var formkitVersion = '202607022150';
33181
33074
 
33182
33075
  // Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
33183
33076
  // See LICENSE in the project root for license information.
@@ -34554,15 +34447,6 @@ const datepickerKeyboardStrategy = {
34554
34447
  evt.stopPropagation();
34555
34448
  evt.preventDefault();
34556
34449
 
34557
- // Signal to the visibility-change handler in auro-datepicker.js that
34558
- // focus should be restored to the trigger regardless of hasFocus.
34559
- // hidePopover() (desktop non-modal path) does not auto-restore focus,
34560
- // and hiding the grid's popover ancestor drops focus to <body>. That
34561
- // synchronously fires focusout on the datepicker host — clearing
34562
- // hasFocus — before updated() runs, which would otherwise skip the
34563
- // input refocus. Native <dialog>.close() (modal path) restores focus
34564
- // itself, but the flag is harmless there.
34565
- component._restoreFocusOnClose = true;
34566
34450
  component.hideBib();
34567
34451
  },
34568
34452
 
@@ -34836,14 +34720,6 @@ class AuroDatePicker extends AuroElement {
34836
34720
 
34837
34721
  /**
34838
34722
  * Array of dates that cannot be selected. Dates should be in ISO format (YYYY-MM-DD).
34839
- *
34840
- * **Immutable update required.** The datepicker treats this array as
34841
- * immutable and memoizes a lookup Set keyed on the array's reference
34842
- * identity — matching Lit's own reactivity semantics for array
34843
- * properties. In-place mutations (`blackoutDates.push(...)`,
34844
- * `blackoutDates[i] = ...`, `blackoutDates.splice(...)`) will not
34845
- * invalidate the cache and the new entries will be silently ignored.
34846
- * To update, reassign the property: `el.blackoutDates = [...el.blackoutDates, '2024-12-25']`.
34847
34723
  */
34848
34724
  blackoutDates: {
34849
34725
  type: Array,
@@ -35729,13 +35605,12 @@ class AuroDatePicker extends AuroElement {
35729
35605
  this.calendar.activeCellDate = null;
35730
35606
 
35731
35607
  // Show the month containing the selected date (or today) instead of
35732
- // whichever month the user last navigated to. Route through
35733
- // updateCentralDate so centralDate stays first-of-month.
35608
+ // whichever month the user last navigated to.
35734
35609
  // Respect consumer-provided centralDate/calendarStartDate if no value is set.
35735
35610
  if (this.valueObject) {
35736
- this.calendarRenderUtil.updateCentralDate(this, this.value);
35611
+ this.centralDate = this.value;
35737
35612
  } else if (!this.centralDate && !this.calendarStartDate && !this.minDate) {
35738
- this.calendarRenderUtil.updateCentralDate(this, new Date());
35613
+ this.centralDate = dateFormatter$1.toISOFormatString(new Date());
35739
35614
  }
35740
35615
  }
35741
35616
 
@@ -35793,15 +35668,8 @@ class AuroDatePicker extends AuroElement {
35793
35668
  // Always clear the inert flag. Only restore focus to the input when the datepicker
35794
35669
  // still has focus (e.g. Escape, date selected) — not when the user tabbed away,
35795
35670
  // which would pull them back and require extra Tab presses to escape.
35796
- //
35797
- // `_restoreFocusOnClose` is set by the Escape handler in
35798
- // datepickerKeyboardStrategy.js to force restore even when hasFocus
35799
- // has already been cleared — hidePopover() (desktop non-modal path)
35800
- // can drop focus to <body> before this update fires.
35801
35671
  this.dropdown.trigger.inert = false;
35802
- const shouldRestoreFocus = this.hasFocus || this._restoreFocusOnClose;
35803
- this._restoreFocusOnClose = false;
35804
- if (shouldRestoreFocus) {
35672
+ if (this.hasFocus) {
35805
35673
  requestAnimationFrame(() => {
35806
35674
  if (!this.dropdown.isPopoverVisible) {
35807
35675
  this.inputList[0].focus();
@@ -36247,18 +36115,6 @@ class AuroDatePicker extends AuroElement {
36247
36115
  this.calendar.requestUpdate();
36248
36116
  this.dispatchEvent(new CustomEvent('auroDatePicker-newSlotContent'));
36249
36117
  }
36250
-
36251
- // Range invariant: if a value change (from click or programmatic) has
36252
- // moved start past end, clear valueEnd here so both properties land in
36253
- // the SAME reactive cycle. Doing it in updated() would schedule a
36254
- // second cycle after cellClickActive/wasCellClick has already been
36255
- // consumed by the value branch, leaving the valueEnd branch to run
36256
- // with a stale handshake and racing with any intervening programmatic
36257
- // value assignments.
36258
- if ((changedProperties.has('value') || changedProperties.has('valueEnd')) &&
36259
- this.valueObject && this.valueEndObject && this.valueObject > this.valueEndObject) {
36260
- this.valueEnd = undefined;
36261
- }
36262
36118
  }
36263
36119
 
36264
36120
  updated(changedProperties) {
@@ -36326,12 +36182,8 @@ class AuroDatePicker extends AuroElement {
36326
36182
 
36327
36183
  if (this.value && this.value.length === this.inputList[0].lengthForType && !(this.wasCellClick && this.range)) {
36328
36184
  // Skip centralDate update when user clicked a cell in range mode
36329
- // to prevent the displayed months from shifting. Route through
36330
- // updateCentralDate so centralDate stays first-of-month — direct
36331
- // assignment of the raw value briefly holds a mid-month string
36332
- // and violates the invariant that observers (e.g. calendar sync)
36333
- // rely on.
36334
- this.calendarRenderUtil.updateCentralDate(this, this.value);
36185
+ // to prevent the displayed months from shifting
36186
+ this.centralDate = this.value;
36335
36187
  }
36336
36188
 
36337
36189
  this.setHasValue();
@@ -36389,10 +36241,8 @@ class AuroDatePicker extends AuroElement {
36389
36241
 
36390
36242
  if (this.valueEnd && this.valueEnd.length === this.inputList[1].lengthForType && !this.wasCellClick) {
36391
36243
  // Skip centralDate update when user clicked a cell in range mode
36392
- // to prevent the displayed months from shifting. Route through
36393
- // updateCentralDate to preserve the first-of-month invariant
36394
- // (see matching comment in the value branch above).
36395
- this.calendarRenderUtil.updateCentralDate(this, this.valueEnd);
36244
+ // to prevent the displayed months from shifting
36245
+ this.centralDate = this.valueEnd;
36396
36246
  }
36397
36247
 
36398
36248
  this.validate();
@@ -36416,6 +36266,10 @@ class AuroDatePicker extends AuroElement {
36416
36266
  this.validation.validate(lastInput, true);
36417
36267
  }
36418
36268
 
36269
+ if (this.valueObject && this.valueEndObject && this.valueObject > this.valueEndObject) {
36270
+ this.valueEnd = undefined;
36271
+ }
36272
+
36419
36273
  // This resets the datepicker when the minDate is set to a new value that is
36420
36274
  // a later date than the current value date
36421
36275
  if (changedProperties.has('minDate') && this.minDate) {