@aurodesignsystem-dev/auro-formkit 0.0.0-pr1530.0 → 0.0.0-pr1530.2

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 (52) 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 +42 -29
  7. package/components/combobox/demo/getting-started.min.js +42 -29
  8. package/components/combobox/demo/index.min.js +42 -29
  9. package/components/combobox/dist/index.js +42 -29
  10. package/components/combobox/dist/registered.js +42 -29
  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 +7 -7
  16. package/components/datepicker/demo/customize.min.js +121 -47
  17. package/components/datepicker/demo/index.min.js +121 -47
  18. package/components/datepicker/demo/keyboard-behavior.md +3 -3
  19. package/components/datepicker/demo/voiceover.md +3 -3
  20. package/components/datepicker/demo/why-datepicker.md +2 -2
  21. package/components/datepicker/dist/auro-calendar-cell.d.ts +9 -0
  22. package/components/datepicker/dist/auro-calendar.d.ts +9 -0
  23. package/components/datepicker/dist/index.js +121 -47
  24. package/components/datepicker/dist/registered.js +121 -47
  25. package/components/dropdown/demo/customize.min.js +1 -1
  26. package/components/dropdown/demo/getting-started.min.js +1 -1
  27. package/components/dropdown/demo/index.min.js +1 -1
  28. package/components/dropdown/dist/index.js +1 -1
  29. package/components/dropdown/dist/registered.js +1 -1
  30. package/components/form/demo/customize.min.js +269 -123
  31. package/components/form/demo/getting-started.min.js +269 -123
  32. package/components/form/demo/index.min.js +269 -123
  33. package/components/form/demo/registerDemoDeps.min.js +269 -123
  34. package/components/input/demo/customize.min.js +40 -27
  35. package/components/input/demo/getting-started.min.js +40 -27
  36. package/components/input/demo/index.min.js +40 -27
  37. package/components/input/dist/base-input.d.ts +20 -4
  38. package/components/input/dist/index.js +40 -27
  39. package/components/input/dist/registered.js +40 -27
  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 +62 -16
  46. package/components/select/demo/getting-started.min.js +62 -16
  47. package/components/select/demo/index.min.js +62 -16
  48. package/components/select/dist/auro-select.d.ts +6 -0
  49. package/components/select/dist/index.js +62 -16
  50. package/components/select/dist/registered.js +62 -16
  51. package/custom-elements.json +427 -343
  52. package/package.json +1 -1
@@ -11638,23 +11638,28 @@ 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
+
11641
11649
  if (typeof isoStr !== 'string') {
11642
11650
  return null;
11643
11651
  }
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)) {
11652
+ const match = ISO_DATE_RE.exec(isoStr);
11653
+ if (!match) {
11652
11654
  return null;
11653
11655
  }
11656
+ const year = Number(match.groups.year);
11657
+ const month = Number(match.groups.month);
11658
+ const day = Number(match.groups.day);
11654
11659
  // Reject overflow values like "2024-13-40" — JS `new Date(year, month, day)`
11655
11660
  // silently normalizes those to a different calendar day, which would
11656
11661
  // disable the wrong date if we let the result through.
11657
- if (month < 1 || month > 12 || day < 1 || day > 31) {
11662
+ if (month < 1 || month > MAX_MONTH || day < 1 || day > MAX_DAY) {
11658
11663
  return null;
11659
11664
  }
11660
11665
  const date = new Date(year, month - 1, day);
@@ -12232,6 +12237,18 @@ class AuroCalendarCell extends LitElement {
12232
12237
  }
12233
12238
 
12234
12239
  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() {
12235
12252
  const calendarMonth = this.runtimeUtils.closestElement('auro-formkit-calendar-month', this);
12236
12253
  const calendar = this.runtimeUtils.closestElement('auro-formkit-calendar', calendarMonth);
12237
12254
 
@@ -12240,12 +12257,12 @@ class AuroCalendarCell extends LitElement {
12240
12257
  // to attach — but cap attempts so a permanently detached cell doesn't
12241
12258
  // spin forever. 10 turns is far more than any observed race needs.
12242
12259
  this._firstUpdatedRetries = (this._firstUpdatedRetries || 0) + 1;
12243
- if (this._firstUpdatedRetries > 10) { // eslint-disable-line no-magic-numbers
12260
+ if (this._firstUpdatedRetries > 10) {
12244
12261
  return;
12245
12262
  }
12246
12263
  this._firstUpdatedRetryTimer = setTimeout(() => {
12247
12264
  this._firstUpdatedRetryTimer = null;
12248
- this.firstUpdated();
12265
+ this._initFromAncestors();
12249
12266
  }, 0);
12250
12267
  return;
12251
12268
  }
@@ -13652,7 +13669,7 @@ class AuroBibtemplate extends LitElement {
13652
13669
  }
13653
13670
  }
13654
13671
 
13655
- var formkitVersion$2 = '202607021905';
13672
+ var formkitVersion$2 = '202607022225';
13656
13673
 
13657
13674
  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}
13658
13675
  `,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}}
@@ -13791,7 +13808,10 @@ class AuroCalendar extends RangeDatepicker {
13791
13808
  * Support will be removed in a future major release.
13792
13809
  * @private
13793
13810
  */
13794
- this.disabledDays = [];
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 = [];
13795
13815
 
13796
13816
  /**
13797
13817
  * @private
@@ -13824,6 +13844,44 @@ class AuroCalendar extends RangeDatepicker {
13824
13844
  this._calendarInstanceId = Date.now().toString(36);
13825
13845
  }
13826
13846
 
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
+
13827
13885
  static get styles() {
13828
13886
  return [
13829
13887
  styleCss$7,
@@ -14563,12 +14621,15 @@ class AuroCalendar extends RangeDatepicker {
14563
14621
  // that has no DOM cell. Determine the visible range based on centralDate and
14564
14622
  // the number of rendered months.
14565
14623
  //
14566
- // numCalendars is assigned during renderAllCalendars(), which runs after
14567
- // updated() — so the visible-change handler's eager computeActiveDate()
14568
- // call arrives with numCalendars still undefined. Math.max(undefined, 1)
14569
- // is NaN, which would silently skip the visible-month scan below. Fall
14570
- // back to maximumRenderableMonths' desktop default (1 for non-range,
14571
- // 2 for range) so the scan window is correctly sized on first open.
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.
14572
14633
  let renderedMonths = null;
14573
14634
 
14574
14635
  if (Number.isFinite(this.numCalendars) && this.numCalendars > 0) {
@@ -19501,7 +19562,7 @@ let AuroHelpText$2 = class AuroHelpText extends LitElement {
19501
19562
  }
19502
19563
  };
19503
19564
 
19504
- var formkitVersion$1 = '202607021905';
19565
+ var formkitVersion$1 = '202607022225';
19505
19566
 
19506
19567
  let AuroElement$2 = class AuroElement extends LitElement {
19507
19568
  static get properties() {
@@ -31509,14 +31570,16 @@ class BaseInput extends AuroElement$1 {
31509
31570
  this.label = 'Input label is undefined';
31510
31571
  this.layout = 'classic';
31511
31572
  this.locale = 'en-US';
31573
+ this._format = undefined;
31574
+
31575
+ /** @private */
31576
+ this._userSetFormat = false;
31512
31577
  this.max = undefined;
31513
31578
  this.maxLength = undefined;
31514
31579
  this.min = undefined;
31515
31580
  this.minLength = undefined;
31516
31581
  this.noValidate = false;
31517
31582
  this.onDark = false;
31518
- // Raw values returned from the input mask before model normalization.
31519
- this._rawMaskValue = undefined;
31520
31583
  this.required = false;
31521
31584
  this.setCustomValidityForType = undefined;
31522
31585
  // Credit Card is intentionally excluded — its mask manages the cursor
@@ -31674,7 +31737,8 @@ class BaseInput extends AuroElement$1 {
31674
31737
  */
31675
31738
  format: {
31676
31739
  type: String,
31677
- reflect: true
31740
+ reflect: true,
31741
+ noAccessor: true
31678
31742
  },
31679
31743
 
31680
31744
  /**
@@ -32012,6 +32076,34 @@ class BaseInput extends AuroElement$1 {
32012
32076
  return this.max && dateFormatter.isValidDate(this.max) ? dateFormatter.stringToDateInstance(this.max) : undefined;
32013
32077
  }
32014
32078
 
32079
+ get format() {
32080
+ return this._format;
32081
+ }
32082
+
32083
+ /**
32084
+ * Overrides LitElement's generated accessor so we can track whether the
32085
+ * consumer explicitly set `format`. Locale-derived updates use
32086
+ * `_setFormatFromLocale` instead, which skips this flag.
32087
+ */
32088
+ set format(value) {
32089
+ const oldValue = this._format;
32090
+ this._format = value ? value.toLowerCase() : value;
32091
+ this._userSetFormat = Boolean(value);
32092
+ this.requestUpdate('format', oldValue);
32093
+ }
32094
+
32095
+ /**
32096
+ * Sets format without marking it as user-set. Used by locale auto-derive
32097
+ * so that a subsequent locale change can still update the format.
32098
+ * @private
32099
+ * @param {string} value
32100
+ */
32101
+ _setFormatFromLocale(value) {
32102
+ const oldValue = this._format;
32103
+ this._format = value ? value.toLowerCase() : value;
32104
+ this.requestUpdate('format', oldValue);
32105
+ }
32106
+
32015
32107
  connectedCallback() {
32016
32108
  super.connectedCallback();
32017
32109
 
@@ -32059,15 +32151,6 @@ class BaseInput extends AuroElement$1 {
32059
32151
 
32060
32152
  this.inputId = this.id ? `${this.id}-input` : window.crypto.randomUUID();
32061
32153
 
32062
- // Normalize the format token to lowercase so case-mixed values supplied
32063
- // via attribute (e.g. `format="MM/DD/YYYY"`) hit the `dateFormatMap`
32064
- // lookup inside `setCustomHelpTextMessage`. Without this, an uppercase
32065
- // format silently misses the map and leaves `setCustomValidityForType`
32066
- // unset.
32067
- if (this.format) {
32068
- this.format = this.format.toLowerCase();
32069
- }
32070
-
32071
32154
  // use validity message override if declared when initializing the component
32072
32155
  if (this.hasAttribute('setCustomValidity')) {
32073
32156
  this.ValidityMessageOverride = this.setCustomValidity;
@@ -32174,12 +32257,10 @@ class BaseInput extends AuroElement$1 {
32174
32257
  updated(changedProperties) {
32175
32258
  super.updated(changedProperties);
32176
32259
 
32177
- // When locale changes without an explicit format override, derive format from the new locale.
32178
- // Only runs if the current format is still the previous locale's default (not user-overridden).
32260
+ // When locale changes, auto-derive format unless the consumer explicitly set one.
32179
32261
  if (changedProperties.has('locale') && !changedProperties.has('format') && this.type === 'date') {
32180
- const previousLocaleFormat = getDateFormatFromLocale(changedProperties.get('locale'));
32181
- if (!this.format || this.format.toLowerCase() === previousLocaleFormat) {
32182
- this.format = getDateFormatFromLocale(this.locale);
32262
+ if (!this._userSetFormat) {
32263
+ this._setFormatFromLocale(getDateFormatFromLocale(this.locale));
32183
32264
  }
32184
32265
  }
32185
32266
 
@@ -32350,9 +32431,6 @@ class BaseInput extends AuroElement$1 {
32350
32431
  this.maskInstance.on('accept', () => {
32351
32432
  if (this._configuringMask) return;
32352
32433
  this.value = this.util.toModelValue(this.maskInstance.value, this.format);
32353
- if (this.type === "date") {
32354
- this._rawMaskValue = this.maskInstance.value;
32355
- }
32356
32434
  });
32357
32435
 
32358
32436
  // Mask fires 'complete' on the restore step below for any value that
@@ -32360,9 +32438,6 @@ class BaseInput extends AuroElement$1 {
32360
32438
  this.maskInstance.on('complete', () => {
32361
32439
  if (this._configuringMask) return;
32362
32440
  this.value = this.util.toModelValue(this.maskInstance.value, this.format);
32363
- if (this.type === "date") {
32364
- this._rawMaskValue = this.maskInstance.value;
32365
- }
32366
32441
  });
32367
32442
 
32368
32443
  // Write existingValue through the mask (not the input directly) so
@@ -32599,8 +32674,7 @@ class BaseInput extends AuroElement$1 {
32599
32674
 
32600
32675
  // Set default date format if type=date and no format is defined
32601
32676
  if (this.type === "date" && !this.format) {
32602
- // Use locale to determine default date format
32603
- this.format = this.util.getDateMaskFromLocale().toLowerCase();
32677
+ this._setFormatFromLocale(this.util.getDateMaskFromLocale().toLowerCase());
32604
32678
  this.util.updateFormat(this.format);
32605
32679
  }
32606
32680
  }
@@ -32629,7 +32703,7 @@ class BaseInput extends AuroElement$1 {
32629
32703
  const creditCard = this.matchInputValueToCreditCard();
32630
32704
  const previousFormat = this.format;
32631
32705
 
32632
- this.format = creditCard.maskFormat;
32706
+ this._setFormatFromLocale(creditCard.maskFormat);
32633
32707
 
32634
32708
  this.maxLength = creditCard.formatLength;
32635
32709
  this.minLength = creditCard.formatMinLength;
@@ -33103,7 +33177,7 @@ let AuroHelpText$1 = class AuroHelpText extends LitElement {
33103
33177
  }
33104
33178
  };
33105
33179
 
33106
- var formkitVersion = '202607021905';
33180
+ var formkitVersion = '202607022225';
33107
33181
 
33108
33182
  // Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
33109
33183
  // See LICENSE in the project root for license information.