@aurodesignsystem-dev/auro-formkit 0.0.0-pr1475.2 → 0.0.0-pr1475.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. package/components/checkbox/demo/customize.min.js +1 -1
  2. package/components/checkbox/demo/getting-started.min.js +1 -1
  3. package/components/checkbox/demo/index.min.js +1 -1
  4. package/components/checkbox/dist/index.js +1 -1
  5. package/components/checkbox/dist/registered.js +1 -1
  6. package/components/combobox/demo/customize.min.js +11 -3
  7. package/components/combobox/demo/getting-started.min.js +11 -3
  8. package/components/combobox/demo/index.min.js +11 -3
  9. package/components/combobox/dist/index.js +11 -3
  10. package/components/combobox/dist/registered.js +11 -3
  11. package/components/counter/demo/customize.min.js +10 -2
  12. package/components/counter/demo/index.min.js +10 -2
  13. package/components/counter/dist/index.js +1 -1
  14. package/components/counter/dist/registered.js +1 -1
  15. package/components/datepicker/demo/customize.min.js +99 -33
  16. package/components/datepicker/demo/index.md +2 -2
  17. package/components/datepicker/demo/index.min.js +100 -34
  18. package/components/datepicker/dist/index.js +99 -33
  19. package/components/datepicker/dist/registered.js +99 -33
  20. package/components/datepicker/dist/src/auro-calendar-cell.d.ts +9 -0
  21. package/components/dropdown/demo/customize.min.js +9 -1
  22. package/components/dropdown/demo/getting-started.min.js +9 -1
  23. package/components/dropdown/demo/index.min.js +9 -1
  24. package/components/dropdown/dist/index.js +9 -1
  25. package/components/dropdown/dist/registered.js +9 -1
  26. package/components/form/demo/customize.min.js +133 -43
  27. package/components/form/demo/getting-started.min.js +133 -43
  28. package/components/form/demo/index.min.js +133 -43
  29. package/components/form/demo/registerDemoDeps.min.js +133 -43
  30. package/components/input/demo/customize.min.js +1 -1
  31. package/components/input/demo/getting-started.min.js +1 -1
  32. package/components/input/demo/index.min.js +1 -1
  33. package/components/input/dist/index.js +1 -1
  34. package/components/input/dist/registered.js +1 -1
  35. package/components/radio/demo/customize.min.js +1 -1
  36. package/components/radio/demo/getting-started.min.js +1 -1
  37. package/components/radio/demo/index.min.js +1 -1
  38. package/components/radio/dist/index.js +1 -1
  39. package/components/radio/dist/registered.js +1 -1
  40. package/components/select/demo/customize.min.js +10 -2
  41. package/components/select/demo/getting-started.min.js +10 -2
  42. package/components/select/demo/index.min.js +10 -2
  43. package/components/select/dist/index.js +10 -2
  44. package/components/select/dist/registered.js +10 -2
  45. package/custom-elements.json +1496 -1485
  46. package/package.json +1 -1
@@ -8097,6 +8097,13 @@ class AuroCalendarCell extends LitElement {
8097
8097
  return false;
8098
8098
  }
8099
8099
 
8100
+ // Check against disabledDays timestamps (legacy path)
8101
+ if (Array.isArray(this.disabledDays) && this.disabledDays.length > 0) {
8102
+ if (this.disabledDays.findIndex(d => parseInt(d, 10) === this.day.date) !== -1) {
8103
+ return true;
8104
+ }
8105
+ }
8106
+
8100
8107
  // Check against blackoutDates (ISO format YYYY-MM-DD) on the datepicker
8101
8108
  const blackoutDates = this.datepicker?.blackoutDates;
8102
8109
 
@@ -8161,8 +8168,9 @@ class AuroCalendarCell extends LitElement {
8161
8168
 
8162
8169
  const date = new Date(this.day.date * 1000);
8163
8170
 
8164
- // Generate localized full date string
8165
- const dateFormatter = new Intl.DateTimeFormat(undefined, {
8171
+ // Generate localized full date string using the configured locale
8172
+ const localeCode = this.locale?.code || undefined;
8173
+ const dateFormatter = new Intl.DateTimeFormat(localeCode, {
8166
8174
  weekday: 'long',
8167
8175
  year: 'numeric',
8168
8176
  month: 'long',
@@ -8171,7 +8179,7 @@ class AuroCalendarCell extends LitElement {
8171
8179
 
8172
8180
  let label = dateFormatter.format(date);
8173
8181
 
8174
- // appending popover content here so that it get's read in a logical order with the other date content.
8182
+ // appending popover content here so that it gets read in a logical order with the other date content.
8175
8183
  if (this.hasPopoverContent) {
8176
8184
  label += `, ${this.querySelector(`[slot="popover_${this.dateStr}"]`).innerText.trim()}`;
8177
8185
  }
@@ -8403,10 +8411,22 @@ class AuroCalendarCell extends LitElement {
8403
8411
  this.handleSlotContent();
8404
8412
  });
8405
8413
 
8414
+ this.calendarMonth = calendarMonth;
8415
+ this.configurePopover();
8416
+ }
8417
+
8418
+ /**
8419
+ * Configures the popover instance with the calendar month boundary.
8420
+ * Called from firstUpdated and updated because the popover element is only
8421
+ * rendered after hasPopoverContent becomes true (set by handleSlotContent).
8422
+ * @private
8423
+ * @returns {void}
8424
+ */
8425
+ configurePopover() {
8406
8426
  this.auroPopover = this.shadowRoot.querySelector(this.popoverTag._$litStatic$);
8407
8427
 
8408
- if (this.auroPopover) {
8409
- this.auroPopover.boundary = calendarMonth;
8428
+ if (this.auroPopover && this.calendarMonth) {
8429
+ this.auroPopover.boundary = this.calendarMonth;
8410
8430
  }
8411
8431
  }
8412
8432
 
@@ -8419,6 +8439,11 @@ class AuroCalendarCell extends LitElement {
8419
8439
  this.setDateSlotName();
8420
8440
  this.handleSlotContent();
8421
8441
  }
8442
+
8443
+ // Configure popover when it first becomes rendered
8444
+ if (properties.has('hasPopoverContent') && this.hasPopoverContent) {
8445
+ this.updateComplete.then(() => this.configurePopover());
8446
+ }
8422
8447
  }
8423
8448
 
8424
8449
  /**
@@ -8675,8 +8700,12 @@ class AuroCalendarMonth extends RangeDatepickerCalendar {
8675
8700
  }
8676
8701
  } else if (key === 'ArrowDown' || key === 'ArrowUp') {
8677
8702
  // Find the target day (same day-of-week, +/- 7 days)
8703
+ // Use Date arithmetic instead of fixed seconds to handle DST correctly
8678
8704
  const increment = key === 'ArrowDown' ? 7 : -7;
8679
- const targetDate = activeCell.day.date + (increment * 86400); // 86400 seconds per day
8705
+ const currentDate = new Date(activeCell.day.date * 1000);
8706
+ currentDate.setDate(currentDate.getDate() + increment);
8707
+ currentDate.setHours(0, 0, 0, 0);
8708
+ const targetDate = Math.floor(currentDate.getTime() / 1000);
8680
8709
 
8681
8710
  // Look for the target date in this month's focusable cells
8682
8711
  targetCell = focusableCells.find(cell => cell.day.date === targetDate);
@@ -8740,7 +8769,7 @@ class AuroCalendarMonth extends RangeDatepickerCalendar {
8740
8769
  var _a, _b;
8741
8770
 
8742
8771
  return html `
8743
- <div aria-labelledby="${this.getHeadingId()}" @keydown="${this.handleGridKeyDown}">
8772
+ <div aria-labelledby="${this.getHeadingId()}">
8744
8773
  <div class="header">
8745
8774
  ${this.renderPrevButton()}
8746
8775
  <div class="headerTitle heading-xs" id="${this.getHeadingId()}" aria-live="polite" aria-atomic="true">
@@ -8755,7 +8784,7 @@ class AuroCalendarMonth extends RangeDatepickerCalendar {
8755
8784
  ${this.renderNextButton()}
8756
8785
  </div>
8757
8786
 
8758
- <div class="table" role="grid" aria-labelledby="${this.getHeadingId()}">
8787
+ <div class="table" role="grid" aria-labelledby="${this.getHeadingId()}" @keydown="${this.handleGridKeyDown}">
8759
8788
  <div class="thead" role="rowgroup">
8760
8789
  <div class="tr" role="row">
8761
8790
  ${(_a = this.dayNamesOfTheWeek) === null || _a === void 0 ? void 0 : _a.map((dayNameOfWeek, index) => this.renderDayOfWeek(dayNameOfWeek, index))}
@@ -9573,7 +9602,7 @@ class AuroBibtemplate extends LitElement {
9573
9602
  }
9574
9603
  }
9575
9604
 
9576
- var formkitVersion$2 = '202605182240';
9605
+ var formkitVersion$2 = '202605182353';
9577
9606
 
9578
9607
  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}
9579
9608
  `,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}}
@@ -9863,7 +9892,8 @@ class AuroCalendar extends RangeDatepicker {
9863
9892
  */
9864
9893
  announceMonthChange() {
9865
9894
  const date = new Date(this.centralDate);
9866
- const formatter = new Intl.DateTimeFormat(undefined, { month: 'long', year: 'numeric' });
9895
+ const localeCode = this.locale?.code || undefined;
9896
+ const formatter = new Intl.DateTimeFormat(localeCode, { month: 'long', year: 'numeric' });
9867
9897
  this.announceSelection(formatter.format(date));
9868
9898
  }
9869
9899
 
@@ -10043,9 +10073,19 @@ class AuroCalendar extends RangeDatepicker {
10043
10073
  * @returns {Number|undefined} Unix timestamp (seconds) of the date to activate, or undefined.
10044
10074
  */
10045
10075
  computeActiveDate() {
10046
- const ONE_DAY = 86400; // seconds
10047
10076
  const MAX_SCAN_DAYS = 366; // scan at most ~1 year in each direction
10048
10077
 
10078
+ /**
10079
+ * Adds days to a timestamp using Date arithmetic to handle DST correctly.
10080
+ * Returns a local-midnight-aligned timestamp in seconds.
10081
+ */
10082
+ const addDays = (ts, days) => {
10083
+ const d = new Date(ts * 1000);
10084
+ d.setDate(d.getDate() + days);
10085
+ d.setHours(0, 0, 0, 0);
10086
+ return Math.floor(d.getTime() / 1000);
10087
+ };
10088
+
10049
10089
  const rawMin = Number(this.min);
10050
10090
  const rawMax = Number(this.max);
10051
10091
 
@@ -10058,11 +10098,13 @@ class AuroCalendar extends RangeDatepicker {
10058
10098
  (this.disabledDays || []).map(d => parseInt(d, 10))
10059
10099
  );
10060
10100
 
10061
- // Also include ISO-format blackoutDates from the datepicker if available
10101
+ // Also include ISO-format blackoutDates from the datepicker if available.
10102
+ // Parse YYYY-MM-DD as local date to avoid UTC shift issues.
10062
10103
  const isoBlackouts = this.datepicker?.blackoutDates;
10063
10104
  if (Array.isArray(isoBlackouts)) {
10064
10105
  for (const isoStr of isoBlackouts) {
10065
- const ts = Math.floor(new Date(isoStr).setHours(0, 0, 0, 0) / 1000);
10106
+ const parts = isoStr.split('-');
10107
+ const ts = Math.floor(new Date(parseInt(parts[0], 10), parseInt(parts[1], 10) - 1, parseInt(parts[2], 10)).getTime() / 1000);
10066
10108
  if (Number.isFinite(ts)) blackoutSet.add(ts);
10067
10109
  }
10068
10110
  }
@@ -10091,31 +10133,34 @@ class AuroCalendar extends RangeDatepicker {
10091
10133
  if (isEnabled(now)) return now;
10092
10134
 
10093
10135
  // 3. First future enabled date (scan forward from tomorrow, capped by max and MAX_SCAN_DAYS).
10094
- const scanMax = Number.isFinite(maxTs)
10095
- ? Math.min(maxTs, now + (MAX_SCAN_DAYS * ONE_DAY))
10096
- : now + (MAX_SCAN_DAYS * ONE_DAY);
10097
-
10098
- for (let ts = now + ONE_DAY; ts <= scanMax; ts += ONE_DAY) {
10136
+ for (let idx = 1; idx <= MAX_SCAN_DAYS; idx++) {
10137
+ const ts = addDays(now, idx);
10138
+ if (Number.isFinite(maxTs) && ts > maxTs) break;
10099
10139
  if (isEnabled(ts)) return ts;
10100
10140
  }
10101
10141
 
10102
10142
  // 4. First previous enabled date (scan backward from yesterday, capped by min and MAX_SCAN_DAYS).
10103
- const scanMin = Number.isFinite(minTs)
10104
- ? Math.max(minTs, now - (MAX_SCAN_DAYS * ONE_DAY))
10105
- : now - (MAX_SCAN_DAYS * ONE_DAY);
10106
-
10107
- for (let ts = now - ONE_DAY; ts >= scanMin; ts -= ONE_DAY) {
10143
+ for (let idx = 1; idx <= MAX_SCAN_DAYS; idx++) {
10144
+ const ts = addDays(now, -idx);
10145
+ if (Number.isFinite(minTs) && ts < minTs) break;
10108
10146
  if (isEnabled(ts)) return ts;
10109
10147
  }
10110
10148
 
10111
10149
  // 5. If scans missed (e.g. min/max range is far from today), fall back to
10112
10150
  // the first enabled date in the [min, max] range.
10113
10151
  if (Number.isFinite(minTs) && Number.isFinite(maxTs)) {
10114
- for (let ts = minTs; ts <= maxTs; ts += ONE_DAY) {
10152
+ let ts = minTs;
10153
+ for (let idx = 0; ts <= maxTs; idx++) {
10115
10154
  if (isEnabled(ts)) return ts;
10155
+ ts = addDays(minTs, idx + 1);
10116
10156
  }
10117
10157
  }
10118
10158
 
10159
+ // 6. All dates are blackout — fall back to the first in-range date so focus
10160
+ // still lands on a focusable (but not selectable) cell.
10161
+ if (Number.isFinite(minTs) && isInRange(minTs)) return minTs;
10162
+ if (isInRange(now)) return now;
10163
+
10119
10164
  return undefined;
10120
10165
  }
10121
10166
 
@@ -10174,8 +10219,12 @@ class AuroCalendar extends RangeDatepicker {
10174
10219
  }
10175
10220
  } else if (key === 'ArrowDown' || key === 'ArrowUp') {
10176
10221
  // Vertical navigation: find same day-of-week +/- 7 days
10222
+ // Use Date arithmetic instead of fixed seconds to handle DST correctly
10177
10223
  const increment = key === 'ArrowDown' ? 7 : -7;
10178
- const targetDate = fromDate + (increment * 86400);
10224
+ const currentDate = new Date(fromDate * 1000);
10225
+ currentDate.setDate(currentDate.getDate() + increment);
10226
+ currentDate.setHours(0, 0, 0, 0);
10227
+ const targetDate = Math.floor(currentDate.getTime() / 1000);
10179
10228
 
10180
10229
  const allCells = this.getAllFocusableCells();
10181
10230
  let targetCell = allCells.find(cell => cell.day && cell.day.date === targetDate);
@@ -10270,7 +10319,8 @@ class AuroCalendar extends RangeDatepicker {
10270
10319
  */
10271
10320
  formatAnnouncementDate(timestamp) {
10272
10321
  const date = new Date(parseInt(timestamp, 10) * 1000);
10273
- const formatter = new Intl.DateTimeFormat(undefined, {
10322
+ const localeCode = this.locale?.code || undefined;
10323
+ const formatter = new Intl.DateTimeFormat(localeCode, {
10274
10324
  weekday: 'long', year: 'numeric', month: 'long', day: 'numeric'
10275
10325
  });
10276
10326
  return formatter.format(date);
@@ -14284,7 +14334,7 @@ let AuroHelpText$2 = class AuroHelpText extends LitElement {
14284
14334
  }
14285
14335
  };
14286
14336
 
14287
- var formkitVersion$1 = '202605182240';
14337
+ var formkitVersion$1 = '202605182353';
14288
14338
 
14289
14339
  let AuroElement$2 = class AuroElement extends LitElement {
14290
14340
  static get properties() {
@@ -15205,6 +15255,14 @@ class AuroDropdown extends AuroElement$2 {
15205
15255
  }
15206
15256
  };
15207
15257
  this.addEventListener('keydown', this._bibTabHandler);
15258
+
15259
+ // Move initial focus into the bib content, matching FocusTrap behavior
15260
+ requestAnimationFrame(() => {
15261
+ const focusables = getFocusableElements(this.bibContent);
15262
+ if (focusables.length) {
15263
+ focusables[0].focus();
15264
+ }
15265
+ });
15208
15266
  } else {
15209
15267
  // Normal desktop: use FocusTrap on the bib element
15210
15268
  this.focusTrap = new FocusTrap(this.bibContent);
@@ -22218,7 +22276,7 @@ let AuroHelpText$1 = class AuroHelpText extends LitElement {
22218
22276
  }
22219
22277
  };
22220
22278
 
22221
- var formkitVersion = '202605182240';
22279
+ var formkitVersion = '202605182353';
22222
22280
 
22223
22281
  // Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
22224
22282
  // See LICENSE in the project root for license information.
@@ -23500,8 +23558,10 @@ const datepickerKeyboardStrategy = {
23500
23558
  return;
23501
23559
  }
23502
23560
 
23503
- // Only open from the trigger input, not the clear button or other elements
23504
- if (evt.target?.hasAttribute?.('slot') && evt.target.getAttribute('slot').includes('clear')) {
23561
+ // Only open from the trigger input, not the clear button or other slotted elements.
23562
+ // evt.target is retargeted to the host in shadow DOM, so use composedPath() to find the real origin.
23563
+ const path = evt.composedPath();
23564
+ if (path.some(el => el.getAttribute?.('slot')?.includes('clear'))) {
23505
23565
  return;
23506
23566
  }
23507
23567
 
@@ -23515,8 +23575,10 @@ const datepickerKeyboardStrategy = {
23515
23575
  return;
23516
23576
  }
23517
23577
 
23518
- // Only open from the trigger input, not the clear button or other elements
23519
- if (evt.target?.hasAttribute?.('slot') && evt.target.getAttribute('slot').includes('clear')) {
23578
+ // Only open from the trigger input, not the clear button or other slotted elements.
23579
+ // evt.target is retargeted to the host in shadow DOM, so use composedPath() to find the real origin.
23580
+ const path = evt.composedPath();
23581
+ if (path.some(el => el.getAttribute?.('slot')?.includes('clear'))) {
23520
23582
  return;
23521
23583
  }
23522
23584
 
@@ -24956,9 +25018,13 @@ class AuroDatePicker extends AuroElement {
24956
25018
  }
24957
25019
 
24958
25020
  if (changedProperties.has('blackoutDates')) {
24959
- // Force calendar cells to re-render with updated blackout state
25021
+ // Force calendar cells to re-render with updated blackout state.
25022
+ // requestUpdate on the calendar alone is insufficient because cells
25023
+ // don't receive blackoutDates as a bound property. Dispatching the
25024
+ // slot content event triggers handleSlotContent → requestUpdate on each cell.
24960
25025
  if (this.calendar) {
24961
25026
  this.calendar.requestUpdate();
25027
+ this.dispatchEvent(new CustomEvent('auroDatePicker-newSlotContent'));
24962
25028
  }
24963
25029
  }
24964
25030