@aurodesignsystem-dev/auro-formkit 0.0.0-pr1530.2 → 0.0.0-pr1531.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 (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 +15 -6
  7. package/components/combobox/demo/getting-started.min.js +15 -6
  8. package/components/combobox/demo/index.min.js +15 -6
  9. package/components/combobox/dist/index.js +15 -6
  10. package/components/combobox/dist/registered.js +15 -6
  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 +41 -178
  18. package/components/datepicker/demo/index.min.js +41 -178
  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 +41 -178
  26. package/components/datepicker/dist/registered.js +41 -178
  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 +89 -254
  33. package/components/form/demo/getting-started.min.js +89 -254
  34. package/components/form/demo/index.min.js +89 -254
  35. package/components/form/demo/registerDemoDeps.min.js +89 -254
  36. package/components/input/demo/customize.min.js +13 -4
  37. package/components/input/demo/getting-started.min.js +13 -4
  38. package/components/input/demo/index.min.js +13 -4
  39. package/components/input/dist/index.js +13 -4
  40. package/components/input/dist/registered.js +13 -4
  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 +1480 -1510
  53. package/package.json +1 -1
@@ -11680,28 +11680,23 @@ var popoverVersion = '6.0.1';
11680
11680
  * @returns {number|null} Local-midnight Unix timestamp (seconds), or null.
11681
11681
  */
11682
11682
  function parseIsoToTimestamp(isoStr) {
11683
- // Strict YYYY-MM-DD matcher with named groups. Rejects trailing garbage
11684
- // ("2024x-01-01"), short segments ("2024-1-1"), and any non-digit
11685
- // characters. `parseInt` alone accepted both because it stops at the
11686
- // first non-digit and doesn't require a minimum length.
11687
- const ISO_DATE_RE = /^(?<year>\d{4})-(?<month>\d{2})-(?<day>\d{2})$/u;
11688
- const MAX_MONTH = 12;
11689
- const MAX_DAY = 31;
11690
-
11691
11683
  if (typeof isoStr !== 'string') {
11692
11684
  return null;
11693
11685
  }
11694
- const match = ISO_DATE_RE.exec(isoStr);
11695
- if (!match) {
11686
+ const parts = isoStr.split('-');
11687
+ if (parts.length !== 3) {
11688
+ return null;
11689
+ }
11690
+ const year = parseInt(parts[0], 10);
11691
+ const month = parseInt(parts[1], 10);
11692
+ const day = parseInt(parts[2], 10);
11693
+ if (!Number.isFinite(year) || !Number.isFinite(month) || !Number.isFinite(day)) {
11696
11694
  return null;
11697
11695
  }
11698
- const year = Number(match.groups.year);
11699
- const month = Number(match.groups.month);
11700
- const day = Number(match.groups.day);
11701
11696
  // Reject overflow values like "2024-13-40" — JS `new Date(year, month, day)`
11702
11697
  // silently normalizes those to a different calendar day, which would
11703
11698
  // disable the wrong date if we let the result through.
11704
- if (month < 1 || month > MAX_MONTH || day < 1 || day > MAX_DAY) {
11699
+ if (month < 1 || month > 12 || day < 1 || day > 31) {
11705
11700
  return null;
11706
11701
  }
11707
11702
  const date = new Date(year, month - 1, day);
@@ -12279,36 +12274,13 @@ class AuroCalendarCell extends i$1 {
12279
12274
  }
12280
12275
 
12281
12276
  firstUpdated() {
12282
- this._initFromAncestors();
12283
- }
12284
-
12285
- /**
12286
- * Wires the cell to its ancestor calendar-month and calendar (and, via
12287
- * the calendar, to the datepicker). Extracted from firstUpdated() so the
12288
- * retry loop can re-attempt without recursively invoking a Lit lifecycle
12289
- * method (which is outside the framework's contract).
12290
- * @private
12291
- * @returns {void}
12292
- */
12293
- _initFromAncestors() {
12294
12277
  const calendarMonth = this.runtimeUtils.closestElement('auro-formkit-calendar-month', this);
12295
12278
  const calendar = this.runtimeUtils.closestElement('auro-formkit-calendar', calendarMonth);
12296
12279
 
12297
12280
  if (!calendar) {
12298
- // Retry on the next event-loop turn to give the ancestor chain a chance
12299
- // to attach — but cap attempts so a permanently detached cell doesn't
12300
- // spin forever. 10 turns is far more than any observed race needs.
12301
- this._firstUpdatedRetries = (this._firstUpdatedRetries || 0) + 1;
12302
- if (this._firstUpdatedRetries > 10) {
12303
- return;
12304
- }
12305
- this._firstUpdatedRetryTimer = setTimeout(() => {
12306
- this._firstUpdatedRetryTimer = null;
12307
- this._initFromAncestors();
12308
- }, 0);
12281
+ setTimeout(() => this.firstUpdated(), 0);
12309
12282
  return;
12310
12283
  }
12311
- this._firstUpdatedRetries = 0;
12312
12284
  this.calendar = calendar;
12313
12285
  this.datepicker = calendar.datepicker;
12314
12286
  this._slotContentHandler = () => {
@@ -12336,10 +12308,6 @@ class AuroCalendarCell extends i$1 {
12336
12308
  if (this.datepicker && this._slotContentHandler) {
12337
12309
  this.datepicker.removeEventListener('auroDatePicker-newSlotContent', this._slotContentHandler);
12338
12310
  }
12339
- if (this._firstUpdatedRetryTimer) {
12340
- clearTimeout(this._firstUpdatedRetryTimer);
12341
- this._firstUpdatedRetryTimer = null;
12342
- }
12343
12311
  }
12344
12312
 
12345
12313
  /**
@@ -13717,7 +13685,7 @@ class AuroBibtemplate extends i$1 {
13717
13685
  }
13718
13686
  }
13719
13687
 
13720
- var formkitVersion$2 = '202607022225';
13688
+ var formkitVersion$2 = '202607022131';
13721
13689
 
13722
13690
  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}
13723
13691
  `,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}}
@@ -13856,10 +13824,7 @@ class AuroCalendar extends RangeDatepicker {
13856
13824
  * Support will be removed in a future major release.
13857
13825
  * @private
13858
13826
  */
13859
- // Initialize the backing field directly so the constructor's default
13860
- // empty array doesn't trigger the deprecation warning. Assignments from
13861
- // consumers still route through the setter below.
13862
- this._disabledDays = [];
13827
+ this.disabledDays = [];
13863
13828
 
13864
13829
  /**
13865
13830
  * @private
@@ -13892,44 +13857,6 @@ class AuroCalendar extends RangeDatepicker {
13892
13857
  this._calendarInstanceId = Date.now().toString(36);
13893
13858
  }
13894
13859
 
13895
- /**
13896
- * @deprecated See constructor JSDoc — migrate to
13897
- * `auro-datepicker.blackoutDates`. The getter/setter pair exists so the
13898
- * one-time deprecation warning fires as soon as a consumer assigns a
13899
- * non-empty array (empty assignments are ignored — an empty array is
13900
- * indistinguishable from the constructor default and would produce a
13901
- * spurious warning), rather than only when `_getBlackoutSet()` happens
13902
- * to rebuild.
13903
- * @returns {Array} The current legacy `disabledDays` array.
13904
- */
13905
- get disabledDays() {
13906
- return this._disabledDays;
13907
- }
13908
-
13909
- /**
13910
- * @param {Array} value - The legacy `disabledDays` array to set.
13911
- */
13912
- set disabledDays(value) {
13913
- const oldValue = this._disabledDays;
13914
- // Coerce non-arrays to `[]`. Consumers occasionally pass `null`
13915
- // (Lit's Array attribute converter returns null for a missing/empty
13916
- // attribute) or misuse the API; downstream code in
13917
- // `auro-calendar-cell.isEnabled` calls `.findIndex()` on this value
13918
- // without an Array.isArray guard, so a truthy non-array would throw
13919
- // at render.
13920
- const coerced = Array.isArray(value) ? value : [];
13921
- if (coerced.length > 0) {
13922
- this._warnDisabledDaysDeprecated();
13923
- }
13924
- this._disabledDays = coerced;
13925
- // `disabledDays` is a Lit `@property({ type: Array })` on the
13926
- // RangeDatepicker base class; Lit's generated setter (which we've
13927
- // overridden here to insert the warning) is what normally invalidates
13928
- // the reactive cycle. Re-invoke requestUpdate manually so consumer
13929
- // assignments still re-render the calendar.
13930
- this.requestUpdate('disabledDays', oldValue);
13931
- }
13932
-
13933
13860
  static get styles() {
13934
13861
  return [
13935
13862
  styleCss$7,
@@ -14475,19 +14402,8 @@ class AuroCalendar extends RangeDatepicker {
14475
14402
  /**
14476
14403
  * Returns a memoized Set of blackout timestamps (seconds) drawn from both
14477
14404
  * the legacy `disabledDays` array and the datepicker's ISO `blackoutDates`.
14478
- *
14479
- * The cache invalidates on **reference identity** only when the
14480
- * consumer reassigns the array (`el.blackoutDates = [...]`), matching
14481
- * Lit's own reactivity semantics for array properties. In-place mutations
14482
- * on the existing array (`push`, `splice`, index assignment) will NOT
14483
- * invalidate the cache and the new entries will be silently ignored.
14484
- * Consumers must reassign to update — see the JSDoc on
14485
- * `auro-datepicker.blackoutDates` for the recommended pattern.
14486
- *
14487
- * A shallow-equality tier was considered but rejected: it would run
14488
- * O(N) work on every cell render (this method is called per-cell via
14489
- * `isBlackout()`) and still wouldn't catch same-length value swaps,
14490
- * offering a false sense of safety.
14405
+ * The cache invalidates when either source array's reference changes, which
14406
+ * matches Lit's own reactive identity semantics for array properties.
14491
14407
  * @private
14492
14408
  * @returns {Set<Number>}
14493
14409
  */
@@ -14668,24 +14584,7 @@ class AuroCalendar extends RangeDatepicker {
14668
14584
  // rendered month(s) first so a single-month calendar does not pick a date
14669
14585
  // that has no DOM cell. Determine the visible range based on centralDate and
14670
14586
  // the number of rendered months.
14671
- //
14672
- // numCalendars is assigned inside renderAllCalendars(), which runs during
14673
- // render() — so by the time the visible-change handler in updated()
14674
- // calls computeActiveDate() in the same cycle, numCalendars is normally
14675
- // set. Guard against the pre-first-render path anyway (e.g. any future
14676
- // caller that reaches computeActiveDate before render() has run):
14677
- // Math.max(undefined, 1) is NaN, which would silently skip the
14678
- // visible-month scan below. Fall back to maximumRenderableMonths'
14679
- // desktop default (1 for non-range, 2 for range) so the scan window is
14680
- // correctly sized whenever numCalendars is not yet populated.
14681
- let renderedMonths = null;
14682
-
14683
- if (Number.isFinite(this.numCalendars) && this.numCalendars > 0) {
14684
- renderedMonths = this.numCalendars;
14685
- } else {
14686
- renderedMonths = this.noRange ? 1 : 2;
14687
- }
14688
-
14587
+ const renderedMonths = Math.max(this.numCalendars, 1);
14689
14588
  const visibleAnchor = this.centralDateObject ?? new Date(now * 1000);
14690
14589
  const visMonthStart = new Date(visibleAnchor.getFullYear(), visibleAnchor.getMonth(), 1);
14691
14590
  visMonthStart.setHours(0, 0, 0, 0);
@@ -14955,8 +14854,6 @@ class AuroCalendar extends RangeDatepicker {
14955
14854
  let targetIndex = -1;
14956
14855
  if (direction === 'next') {
14957
14856
  targetIndex = currentIndex + 1;
14958
- } else if (direction === 'prev') {
14959
- targetIndex = currentIndex - 1;
14960
14857
  }
14961
14858
 
14962
14859
  if (targetIndex >= 0 && targetIndex < allCells.length) {
@@ -15561,10 +15458,6 @@ class AuroCalendar extends RangeDatepicker {
15561
15458
  * originally tried aria-live="polite" here, but VoiceOver treats
15562
15459
  * polite as "wait until idle" — which never happens during active
15563
15460
  * keyboard navigation — so the announcements were silently dropped.
15564
- *
15565
- * This is a documented deviation from WCAG 2.1 SC 4.1.3, which
15566
- * prefers `polite` for status messages. See the "Documented
15567
- * Deviation" section in components/datepicker/docs/pages/accessibility.md.
15568
15461
  * @private
15569
15462
  * @param {String} dateStr - The localized date string to announce.
15570
15463
  * @returns {void}
@@ -19634,7 +19527,7 @@ let AuroHelpText$2 = class AuroHelpText extends i$1 {
19634
19527
  }
19635
19528
  };
19636
19529
 
19637
- var formkitVersion$1 = '202607022225';
19530
+ var formkitVersion$1 = '202607022131';
19638
19531
 
19639
19532
  let AuroElement$2 = class AuroElement extends i$1 {
19640
19533
  static get properties() {
@@ -32166,8 +32059,8 @@ class BaseInput extends AuroElement$1 {
32166
32059
  */
32167
32060
  set format(value) {
32168
32061
  const oldValue = this._format;
32169
- this._format = value ? value.toLowerCase() : value;
32170
- this._userSetFormat = Boolean(value);
32062
+ this._format = value;
32063
+ this._userSetFormat = true;
32171
32064
  this.requestUpdate('format', oldValue);
32172
32065
  }
32173
32066
 
@@ -32179,7 +32072,7 @@ class BaseInput extends AuroElement$1 {
32179
32072
  */
32180
32073
  _setFormatFromLocale(value) {
32181
32074
  const oldValue = this._format;
32182
- this._format = value ? value.toLowerCase() : value;
32075
+ this._format = value;
32183
32076
  this.requestUpdate('format', oldValue);
32184
32077
  }
32185
32078
 
@@ -32230,6 +32123,15 @@ class BaseInput extends AuroElement$1 {
32230
32123
 
32231
32124
  this.inputId = this.id ? `${this.id}-input` : window.crypto.randomUUID();
32232
32125
 
32126
+ // Normalize the format token to lowercase so case-mixed values supplied
32127
+ // via attribute (e.g. `format="MM/DD/YYYY"`) hit the `dateFormatMap`
32128
+ // lookup inside `setCustomHelpTextMessage`. Without this, an uppercase
32129
+ // format silently misses the map and leaves `setCustomValidityForType`
32130
+ // unset.
32131
+ if (this.format) {
32132
+ this._setFormatFromLocale(this.format.toLowerCase());
32133
+ }
32134
+
32233
32135
  // use validity message override if declared when initializing the component
32234
32136
  if (this.hasAttribute('setCustomValidity')) {
32235
32137
  this.ValidityMessageOverride = this.setCustomValidity;
@@ -33256,7 +33158,7 @@ let AuroHelpText$1 = class AuroHelpText extends i$1 {
33256
33158
  }
33257
33159
  };
33258
33160
 
33259
- var formkitVersion = '202607022225';
33161
+ var formkitVersion = '202607022131';
33260
33162
 
33261
33163
  // Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
33262
33164
  // See LICENSE in the project root for license information.
@@ -34633,15 +34535,6 @@ const datepickerKeyboardStrategy = {
34633
34535
  evt.stopPropagation();
34634
34536
  evt.preventDefault();
34635
34537
 
34636
- // Signal to the visibility-change handler in auro-datepicker.js that
34637
- // focus should be restored to the trigger regardless of hasFocus.
34638
- // hidePopover() (desktop non-modal path) does not auto-restore focus,
34639
- // and hiding the grid's popover ancestor drops focus to <body>. That
34640
- // synchronously fires focusout on the datepicker host — clearing
34641
- // hasFocus — before updated() runs, which would otherwise skip the
34642
- // input refocus. Native <dialog>.close() (modal path) restores focus
34643
- // itself, but the flag is harmless there.
34644
- component._restoreFocusOnClose = true;
34645
34538
  component.hideBib();
34646
34539
  },
34647
34540
 
@@ -34915,14 +34808,6 @@ class AuroDatePicker extends AuroElement {
34915
34808
 
34916
34809
  /**
34917
34810
  * Array of dates that cannot be selected. Dates should be in ISO format (YYYY-MM-DD).
34918
- *
34919
- * **Immutable update required.** The datepicker treats this array as
34920
- * immutable and memoizes a lookup Set keyed on the array's reference
34921
- * identity — matching Lit's own reactivity semantics for array
34922
- * properties. In-place mutations (`blackoutDates.push(...)`,
34923
- * `blackoutDates[i] = ...`, `blackoutDates.splice(...)`) will not
34924
- * invalidate the cache and the new entries will be silently ignored.
34925
- * To update, reassign the property: `el.blackoutDates = [...el.blackoutDates, '2024-12-25']`.
34926
34811
  */
34927
34812
  blackoutDates: {
34928
34813
  type: Array,
@@ -35808,13 +35693,12 @@ class AuroDatePicker extends AuroElement {
35808
35693
  this.calendar.activeCellDate = null;
35809
35694
 
35810
35695
  // Show the month containing the selected date (or today) instead of
35811
- // whichever month the user last navigated to. Route through
35812
- // updateCentralDate so centralDate stays first-of-month.
35696
+ // whichever month the user last navigated to.
35813
35697
  // Respect consumer-provided centralDate/calendarStartDate if no value is set.
35814
35698
  if (this.valueObject) {
35815
- this.calendarRenderUtil.updateCentralDate(this, this.value);
35699
+ this.centralDate = this.value;
35816
35700
  } else if (!this.centralDate && !this.calendarStartDate && !this.minDate) {
35817
- this.calendarRenderUtil.updateCentralDate(this, new Date());
35701
+ this.centralDate = dateFormatter$1.toISOFormatString(new Date());
35818
35702
  }
35819
35703
  }
35820
35704
 
@@ -35872,15 +35756,8 @@ class AuroDatePicker extends AuroElement {
35872
35756
  // Always clear the inert flag. Only restore focus to the input when the datepicker
35873
35757
  // still has focus (e.g. Escape, date selected) — not when the user tabbed away,
35874
35758
  // which would pull them back and require extra Tab presses to escape.
35875
- //
35876
- // `_restoreFocusOnClose` is set by the Escape handler in
35877
- // datepickerKeyboardStrategy.js to force restore even when hasFocus
35878
- // has already been cleared — hidePopover() (desktop non-modal path)
35879
- // can drop focus to <body> before this update fires.
35880
35759
  this.dropdown.trigger.inert = false;
35881
- const shouldRestoreFocus = this.hasFocus || this._restoreFocusOnClose;
35882
- this._restoreFocusOnClose = false;
35883
- if (shouldRestoreFocus) {
35760
+ if (this.hasFocus) {
35884
35761
  requestAnimationFrame(() => {
35885
35762
  if (!this.dropdown.isPopoverVisible) {
35886
35763
  this.inputList[0].focus();
@@ -36326,18 +36203,6 @@ class AuroDatePicker extends AuroElement {
36326
36203
  this.calendar.requestUpdate();
36327
36204
  this.dispatchEvent(new CustomEvent('auroDatePicker-newSlotContent'));
36328
36205
  }
36329
-
36330
- // Range invariant: if a value change (from click or programmatic) has
36331
- // moved start past end, clear valueEnd here so both properties land in
36332
- // the SAME reactive cycle. Doing it in updated() would schedule a
36333
- // second cycle after cellClickActive/wasCellClick has already been
36334
- // consumed by the value branch, leaving the valueEnd branch to run
36335
- // with a stale handshake and racing with any intervening programmatic
36336
- // value assignments.
36337
- if ((changedProperties.has('value') || changedProperties.has('valueEnd')) &&
36338
- this.valueObject && this.valueEndObject && this.valueObject > this.valueEndObject) {
36339
- this.valueEnd = undefined;
36340
- }
36341
36206
  }
36342
36207
 
36343
36208
  updated(changedProperties) {
@@ -36405,12 +36270,8 @@ class AuroDatePicker extends AuroElement {
36405
36270
 
36406
36271
  if (this.value && this.value.length === this.inputList[0].lengthForType && !(this.wasCellClick && this.range)) {
36407
36272
  // Skip centralDate update when user clicked a cell in range mode
36408
- // to prevent the displayed months from shifting. Route through
36409
- // updateCentralDate so centralDate stays first-of-month — direct
36410
- // assignment of the raw value briefly holds a mid-month string
36411
- // and violates the invariant that observers (e.g. calendar sync)
36412
- // rely on.
36413
- this.calendarRenderUtil.updateCentralDate(this, this.value);
36273
+ // to prevent the displayed months from shifting
36274
+ this.centralDate = this.value;
36414
36275
  }
36415
36276
 
36416
36277
  this.setHasValue();
@@ -36468,10 +36329,8 @@ class AuroDatePicker extends AuroElement {
36468
36329
 
36469
36330
  if (this.valueEnd && this.valueEnd.length === this.inputList[1].lengthForType && !this.wasCellClick) {
36470
36331
  // Skip centralDate update when user clicked a cell in range mode
36471
- // to prevent the displayed months from shifting. Route through
36472
- // updateCentralDate to preserve the first-of-month invariant
36473
- // (see matching comment in the value branch above).
36474
- this.calendarRenderUtil.updateCentralDate(this, this.valueEnd);
36332
+ // to prevent the displayed months from shifting
36333
+ this.centralDate = this.valueEnd;
36475
36334
  }
36476
36335
 
36477
36336
  this.validate();
@@ -36495,6 +36354,10 @@ class AuroDatePicker extends AuroElement {
36495
36354
  this.validation.validate(lastInput, true);
36496
36355
  }
36497
36356
 
36357
+ if (this.valueObject && this.valueEndObject && this.valueObject > this.valueEndObject) {
36358
+ this.valueEnd = undefined;
36359
+ }
36360
+
36498
36361
  // This resets the datepicker when the minDate is set to a new value that is
36499
36362
  // a later date than the current value date
36500
36363
  if (changedProperties.has('minDate') && this.minDate) {