@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
@@ -8139,6 +8139,13 @@ class AuroCalendarCell extends i$1 {
8139
8139
  return false;
8140
8140
  }
8141
8141
 
8142
+ // Check against disabledDays timestamps (legacy path)
8143
+ if (Array.isArray(this.disabledDays) && this.disabledDays.length > 0) {
8144
+ if (this.disabledDays.findIndex(d => parseInt(d, 10) === this.day.date) !== -1) {
8145
+ return true;
8146
+ }
8147
+ }
8148
+
8142
8149
  // Check against blackoutDates (ISO format YYYY-MM-DD) on the datepicker
8143
8150
  const blackoutDates = this.datepicker?.blackoutDates;
8144
8151
 
@@ -8203,8 +8210,9 @@ class AuroCalendarCell extends i$1 {
8203
8210
 
8204
8211
  const date = new Date(this.day.date * 1000);
8205
8212
 
8206
- // Generate localized full date string
8207
- const dateFormatter = new Intl.DateTimeFormat(undefined, {
8213
+ // Generate localized full date string using the configured locale
8214
+ const localeCode = this.locale?.code || undefined;
8215
+ const dateFormatter = new Intl.DateTimeFormat(localeCode, {
8208
8216
  weekday: 'long',
8209
8217
  year: 'numeric',
8210
8218
  month: 'long',
@@ -8213,7 +8221,7 @@ class AuroCalendarCell extends i$1 {
8213
8221
 
8214
8222
  let label = dateFormatter.format(date);
8215
8223
 
8216
- // appending popover content here so that it get's read in a logical order with the other date content.
8224
+ // appending popover content here so that it gets read in a logical order with the other date content.
8217
8225
  if (this.hasPopoverContent) {
8218
8226
  label += `, ${this.querySelector(`[slot="popover_${this.dateStr}"]`).innerText.trim()}`;
8219
8227
  }
@@ -8445,10 +8453,22 @@ class AuroCalendarCell extends i$1 {
8445
8453
  this.handleSlotContent();
8446
8454
  });
8447
8455
 
8456
+ this.calendarMonth = calendarMonth;
8457
+ this.configurePopover();
8458
+ }
8459
+
8460
+ /**
8461
+ * Configures the popover instance with the calendar month boundary.
8462
+ * Called from firstUpdated and updated because the popover element is only
8463
+ * rendered after hasPopoverContent becomes true (set by handleSlotContent).
8464
+ * @private
8465
+ * @returns {void}
8466
+ */
8467
+ configurePopover() {
8448
8468
  this.auroPopover = this.shadowRoot.querySelector(this.popoverTag._$litStatic$);
8449
8469
 
8450
- if (this.auroPopover) {
8451
- this.auroPopover.boundary = calendarMonth;
8470
+ if (this.auroPopover && this.calendarMonth) {
8471
+ this.auroPopover.boundary = this.calendarMonth;
8452
8472
  }
8453
8473
  }
8454
8474
 
@@ -8461,6 +8481,11 @@ class AuroCalendarCell extends i$1 {
8461
8481
  this.setDateSlotName();
8462
8482
  this.handleSlotContent();
8463
8483
  }
8484
+
8485
+ // Configure popover when it first becomes rendered
8486
+ if (properties.has('hasPopoverContent') && this.hasPopoverContent) {
8487
+ this.updateComplete.then(() => this.configurePopover());
8488
+ }
8464
8489
  }
8465
8490
 
8466
8491
  /**
@@ -8717,8 +8742,12 @@ class AuroCalendarMonth extends RangeDatepickerCalendar {
8717
8742
  }
8718
8743
  } else if (key === 'ArrowDown' || key === 'ArrowUp') {
8719
8744
  // Find the target day (same day-of-week, +/- 7 days)
8745
+ // Use Date arithmetic instead of fixed seconds to handle DST correctly
8720
8746
  const increment = key === 'ArrowDown' ? 7 : -7;
8721
- const targetDate = activeCell.day.date + (increment * 86400); // 86400 seconds per day
8747
+ const currentDate = new Date(activeCell.day.date * 1000);
8748
+ currentDate.setDate(currentDate.getDate() + increment);
8749
+ currentDate.setHours(0, 0, 0, 0);
8750
+ const targetDate = Math.floor(currentDate.getTime() / 1000);
8722
8751
 
8723
8752
  // Look for the target date in this month's focusable cells
8724
8753
  targetCell = focusableCells.find(cell => cell.day.date === targetDate);
@@ -8782,7 +8811,7 @@ class AuroCalendarMonth extends RangeDatepickerCalendar {
8782
8811
  var _a, _b;
8783
8812
 
8784
8813
  return b$5 `
8785
- <div aria-labelledby="${this.getHeadingId()}" @keydown="${this.handleGridKeyDown}">
8814
+ <div aria-labelledby="${this.getHeadingId()}">
8786
8815
  <div class="header">
8787
8816
  ${this.renderPrevButton()}
8788
8817
  <div class="headerTitle heading-xs" id="${this.getHeadingId()}" aria-live="polite" aria-atomic="true">
@@ -8797,7 +8826,7 @@ class AuroCalendarMonth extends RangeDatepickerCalendar {
8797
8826
  ${this.renderNextButton()}
8798
8827
  </div>
8799
8828
 
8800
- <div class="table" role="grid" aria-labelledby="${this.getHeadingId()}">
8829
+ <div class="table" role="grid" aria-labelledby="${this.getHeadingId()}" @keydown="${this.handleGridKeyDown}">
8801
8830
  <div class="thead" role="rowgroup">
8802
8831
  <div class="tr" role="row">
8803
8832
  ${(_a = this.dayNamesOfTheWeek) === null || _a === void 0 ? void 0 : _a.map((dayNameOfWeek, index) => this.renderDayOfWeek(dayNameOfWeek, index))}
@@ -9621,7 +9650,7 @@ class AuroBibtemplate extends i$1 {
9621
9650
  }
9622
9651
  }
9623
9652
 
9624
- var formkitVersion$2 = '202605182240';
9653
+ var formkitVersion$2 = '202605182353';
9625
9654
 
9626
9655
  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}
9627
9656
  `,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}}
@@ -9911,7 +9940,8 @@ class AuroCalendar extends RangeDatepicker {
9911
9940
  */
9912
9941
  announceMonthChange() {
9913
9942
  const date = new Date(this.centralDate);
9914
- const formatter = new Intl.DateTimeFormat(undefined, { month: 'long', year: 'numeric' });
9943
+ const localeCode = this.locale?.code || undefined;
9944
+ const formatter = new Intl.DateTimeFormat(localeCode, { month: 'long', year: 'numeric' });
9915
9945
  this.announceSelection(formatter.format(date));
9916
9946
  }
9917
9947
 
@@ -10091,9 +10121,19 @@ class AuroCalendar extends RangeDatepicker {
10091
10121
  * @returns {Number|undefined} Unix timestamp (seconds) of the date to activate, or undefined.
10092
10122
  */
10093
10123
  computeActiveDate() {
10094
- const ONE_DAY = 86400; // seconds
10095
10124
  const MAX_SCAN_DAYS = 366; // scan at most ~1 year in each direction
10096
10125
 
10126
+ /**
10127
+ * Adds days to a timestamp using Date arithmetic to handle DST correctly.
10128
+ * Returns a local-midnight-aligned timestamp in seconds.
10129
+ */
10130
+ const addDays = (ts, days) => {
10131
+ const d = new Date(ts * 1000);
10132
+ d.setDate(d.getDate() + days);
10133
+ d.setHours(0, 0, 0, 0);
10134
+ return Math.floor(d.getTime() / 1000);
10135
+ };
10136
+
10097
10137
  const rawMin = Number(this.min);
10098
10138
  const rawMax = Number(this.max);
10099
10139
 
@@ -10106,11 +10146,13 @@ class AuroCalendar extends RangeDatepicker {
10106
10146
  (this.disabledDays || []).map(d => parseInt(d, 10))
10107
10147
  );
10108
10148
 
10109
- // Also include ISO-format blackoutDates from the datepicker if available
10149
+ // Also include ISO-format blackoutDates from the datepicker if available.
10150
+ // Parse YYYY-MM-DD as local date to avoid UTC shift issues.
10110
10151
  const isoBlackouts = this.datepicker?.blackoutDates;
10111
10152
  if (Array.isArray(isoBlackouts)) {
10112
10153
  for (const isoStr of isoBlackouts) {
10113
- const ts = Math.floor(new Date(isoStr).setHours(0, 0, 0, 0) / 1000);
10154
+ const parts = isoStr.split('-');
10155
+ const ts = Math.floor(new Date(parseInt(parts[0], 10), parseInt(parts[1], 10) - 1, parseInt(parts[2], 10)).getTime() / 1000);
10114
10156
  if (Number.isFinite(ts)) blackoutSet.add(ts);
10115
10157
  }
10116
10158
  }
@@ -10139,31 +10181,34 @@ class AuroCalendar extends RangeDatepicker {
10139
10181
  if (isEnabled(now)) return now;
10140
10182
 
10141
10183
  // 3. First future enabled date (scan forward from tomorrow, capped by max and MAX_SCAN_DAYS).
10142
- const scanMax = Number.isFinite(maxTs)
10143
- ? Math.min(maxTs, now + (MAX_SCAN_DAYS * ONE_DAY))
10144
- : now + (MAX_SCAN_DAYS * ONE_DAY);
10145
-
10146
- for (let ts = now + ONE_DAY; ts <= scanMax; ts += ONE_DAY) {
10184
+ for (let idx = 1; idx <= MAX_SCAN_DAYS; idx++) {
10185
+ const ts = addDays(now, idx);
10186
+ if (Number.isFinite(maxTs) && ts > maxTs) break;
10147
10187
  if (isEnabled(ts)) return ts;
10148
10188
  }
10149
10189
 
10150
10190
  // 4. First previous enabled date (scan backward from yesterday, capped by min and MAX_SCAN_DAYS).
10151
- const scanMin = Number.isFinite(minTs)
10152
- ? Math.max(minTs, now - (MAX_SCAN_DAYS * ONE_DAY))
10153
- : now - (MAX_SCAN_DAYS * ONE_DAY);
10154
-
10155
- for (let ts = now - ONE_DAY; ts >= scanMin; ts -= ONE_DAY) {
10191
+ for (let idx = 1; idx <= MAX_SCAN_DAYS; idx++) {
10192
+ const ts = addDays(now, -idx);
10193
+ if (Number.isFinite(minTs) && ts < minTs) break;
10156
10194
  if (isEnabled(ts)) return ts;
10157
10195
  }
10158
10196
 
10159
10197
  // 5. If scans missed (e.g. min/max range is far from today), fall back to
10160
10198
  // the first enabled date in the [min, max] range.
10161
10199
  if (Number.isFinite(minTs) && Number.isFinite(maxTs)) {
10162
- for (let ts = minTs; ts <= maxTs; ts += ONE_DAY) {
10200
+ let ts = minTs;
10201
+ for (let idx = 0; ts <= maxTs; idx++) {
10163
10202
  if (isEnabled(ts)) return ts;
10203
+ ts = addDays(minTs, idx + 1);
10164
10204
  }
10165
10205
  }
10166
10206
 
10207
+ // 6. All dates are blackout — fall back to the first in-range date so focus
10208
+ // still lands on a focusable (but not selectable) cell.
10209
+ if (Number.isFinite(minTs) && isInRange(minTs)) return minTs;
10210
+ if (isInRange(now)) return now;
10211
+
10167
10212
  return undefined;
10168
10213
  }
10169
10214
 
@@ -10222,8 +10267,12 @@ class AuroCalendar extends RangeDatepicker {
10222
10267
  }
10223
10268
  } else if (key === 'ArrowDown' || key === 'ArrowUp') {
10224
10269
  // Vertical navigation: find same day-of-week +/- 7 days
10270
+ // Use Date arithmetic instead of fixed seconds to handle DST correctly
10225
10271
  const increment = key === 'ArrowDown' ? 7 : -7;
10226
- const targetDate = fromDate + (increment * 86400);
10272
+ const currentDate = new Date(fromDate * 1000);
10273
+ currentDate.setDate(currentDate.getDate() + increment);
10274
+ currentDate.setHours(0, 0, 0, 0);
10275
+ const targetDate = Math.floor(currentDate.getTime() / 1000);
10227
10276
 
10228
10277
  const allCells = this.getAllFocusableCells();
10229
10278
  let targetCell = allCells.find(cell => cell.day && cell.day.date === targetDate);
@@ -10318,7 +10367,8 @@ class AuroCalendar extends RangeDatepicker {
10318
10367
  */
10319
10368
  formatAnnouncementDate(timestamp) {
10320
10369
  const date = new Date(parseInt(timestamp, 10) * 1000);
10321
- const formatter = new Intl.DateTimeFormat(undefined, {
10370
+ const localeCode = this.locale?.code || undefined;
10371
+ const formatter = new Intl.DateTimeFormat(localeCode, {
10322
10372
  weekday: 'long', year: 'numeric', month: 'long', day: 'numeric'
10323
10373
  });
10324
10374
  return formatter.format(date);
@@ -14356,7 +14406,7 @@ let AuroHelpText$2 = class AuroHelpText extends i$1 {
14356
14406
  }
14357
14407
  };
14358
14408
 
14359
- var formkitVersion$1 = '202605182240';
14409
+ var formkitVersion$1 = '202605182353';
14360
14410
 
14361
14411
  let AuroElement$2 = class AuroElement extends i$1 {
14362
14412
  static get properties() {
@@ -15277,6 +15327,14 @@ class AuroDropdown extends AuroElement$2 {
15277
15327
  }
15278
15328
  };
15279
15329
  this.addEventListener('keydown', this._bibTabHandler);
15330
+
15331
+ // Move initial focus into the bib content, matching FocusTrap behavior
15332
+ requestAnimationFrame(() => {
15333
+ const focusables = getFocusableElements(this.bibContent);
15334
+ if (focusables.length) {
15335
+ focusables[0].focus();
15336
+ }
15337
+ });
15280
15338
  } else {
15281
15339
  // Normal desktop: use FocusTrap on the bib element
15282
15340
  this.focusTrap = new FocusTrap(this.bibContent);
@@ -22297,7 +22355,7 @@ let AuroHelpText$1 = class AuroHelpText extends i$1 {
22297
22355
  }
22298
22356
  };
22299
22357
 
22300
- var formkitVersion = '202605182240';
22358
+ var formkitVersion = '202605182353';
22301
22359
 
22302
22360
  // Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
22303
22361
  // See LICENSE in the project root for license information.
@@ -23579,8 +23637,10 @@ const datepickerKeyboardStrategy = {
23579
23637
  return;
23580
23638
  }
23581
23639
 
23582
- // Only open from the trigger input, not the clear button or other elements
23583
- if (evt.target?.hasAttribute?.('slot') && evt.target.getAttribute('slot').includes('clear')) {
23640
+ // Only open from the trigger input, not the clear button or other slotted elements.
23641
+ // evt.target is retargeted to the host in shadow DOM, so use composedPath() to find the real origin.
23642
+ const path = evt.composedPath();
23643
+ if (path.some(el => el.getAttribute?.('slot')?.includes('clear'))) {
23584
23644
  return;
23585
23645
  }
23586
23646
 
@@ -23594,8 +23654,10 @@ const datepickerKeyboardStrategy = {
23594
23654
  return;
23595
23655
  }
23596
23656
 
23597
- // Only open from the trigger input, not the clear button or other elements
23598
- if (evt.target?.hasAttribute?.('slot') && evt.target.getAttribute('slot').includes('clear')) {
23657
+ // Only open from the trigger input, not the clear button or other slotted elements.
23658
+ // evt.target is retargeted to the host in shadow DOM, so use composedPath() to find the real origin.
23659
+ const path = evt.composedPath();
23660
+ if (path.some(el => el.getAttribute?.('slot')?.includes('clear'))) {
23599
23661
  return;
23600
23662
  }
23601
23663
 
@@ -25035,9 +25097,13 @@ class AuroDatePicker extends AuroElement {
25035
25097
  }
25036
25098
 
25037
25099
  if (changedProperties.has('blackoutDates')) {
25038
- // Force calendar cells to re-render with updated blackout state
25100
+ // Force calendar cells to re-render with updated blackout state.
25101
+ // requestUpdate on the calendar alone is insufficient because cells
25102
+ // don't receive blackoutDates as a bound property. Dispatching the
25103
+ // slot content event triggers handleSlotContent → requestUpdate on each cell.
25039
25104
  if (this.calendar) {
25040
25105
  this.calendar.requestUpdate();
25106
+ this.dispatchEvent(new CustomEvent('auroDatePicker-newSlotContent'));
25041
25107
  }
25042
25108
  }
25043
25109
 
@@ -25745,7 +25811,7 @@ function blackoutLabelExample() {
25745
25811
  const isSoldOut = dayOfMonth % 3 === 0;
25746
25812
 
25747
25813
  if (isSoldOut) {
25748
- blackoutDates.push(current.toISOString().split('T')[0]);
25814
+ blackoutDates.push(`${yyyy}-${mm}-${dd}`);
25749
25815
 
25750
25816
  const popover = document.createElement('span');
25751
25817
  popover.setAttribute('slot', `popover_${slotDateStr}`);