@aurodesignsystem-dev/auro-formkit 0.0.0-pr1475.1 → 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.
- package/components/checkbox/demo/customize.min.js +1 -1
- package/components/checkbox/demo/getting-started.min.js +1 -1
- package/components/checkbox/demo/index.min.js +1 -1
- package/components/checkbox/dist/index.js +1 -1
- package/components/checkbox/dist/registered.js +1 -1
- package/components/combobox/demo/customize.min.js +20 -8
- package/components/combobox/demo/getting-started.min.js +20 -8
- package/components/combobox/demo/index.min.js +20 -8
- package/components/combobox/dist/index.js +20 -8
- package/components/combobox/dist/registered.js +20 -8
- package/components/counter/demo/customize.min.js +19 -7
- package/components/counter/demo/index.min.js +19 -7
- package/components/counter/dist/index.js +1 -1
- package/components/counter/dist/registered.js +1 -1
- package/components/datepicker/demo/accessibility.md +1 -1
- package/components/datepicker/demo/customize.min.js +153 -44
- package/components/datepicker/demo/index.md +2 -2
- package/components/datepicker/demo/index.min.js +159 -46
- package/components/datepicker/demo/keyboard-behavior.md +1 -1
- package/components/datepicker/dist/index.js +153 -42
- package/components/datepicker/dist/registered.js +153 -42
- package/components/datepicker/dist/src/auro-calendar-cell.d.ts +9 -0
- package/components/dropdown/demo/customize.min.js +18 -6
- package/components/dropdown/demo/getting-started.min.js +18 -6
- package/components/dropdown/demo/index.min.js +18 -6
- package/components/dropdown/dist/auro-dropdown.d.ts +2 -1
- package/components/dropdown/dist/index.js +18 -6
- package/components/dropdown/dist/registered.js +18 -6
- package/components/form/demo/customize.min.js +214 -67
- package/components/form/demo/getting-started.min.js +214 -67
- package/components/form/demo/index.min.js +214 -67
- package/components/form/demo/registerDemoDeps.min.js +214 -67
- package/components/input/demo/customize.min.js +1 -1
- package/components/input/demo/getting-started.min.js +1 -1
- package/components/input/demo/index.min.js +1 -1
- package/components/input/dist/index.js +1 -1
- package/components/input/dist/registered.js +1 -1
- package/components/radio/demo/customize.min.js +1 -1
- package/components/radio/demo/getting-started.min.js +1 -1
- package/components/radio/demo/index.min.js +1 -1
- package/components/radio/dist/index.js +1 -1
- package/components/radio/dist/registered.js +1 -1
- package/components/select/demo/customize.min.js +19 -7
- package/components/select/demo/getting-started.min.js +19 -7
- package/components/select/demo/index.min.js +19 -7
- package/components/select/dist/index.js +19 -7
- package/components/select/dist/registered.js +19 -7
- package/custom-elements.json +3949 -3938
- package/package.json +1 -1
|
@@ -8097,11 +8097,22 @@ 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
|
|
|
8103
8110
|
if (Array.isArray(blackoutDates) && blackoutDates.length > 0) {
|
|
8104
|
-
const
|
|
8111
|
+
const date = new Date(this.day.date * 1000);
|
|
8112
|
+
const yyyy = date.getFullYear();
|
|
8113
|
+
const mm = String(date.getMonth() + 1).padStart(2, '0');
|
|
8114
|
+
const dd = String(date.getDate()).padStart(2, '0');
|
|
8115
|
+
const cellDate = `${yyyy}-${mm}-${dd}`;
|
|
8105
8116
|
if (blackoutDates.includes(cellDate)) {
|
|
8106
8117
|
return true;
|
|
8107
8118
|
}
|
|
@@ -8157,8 +8168,9 @@ class AuroCalendarCell extends LitElement {
|
|
|
8157
8168
|
|
|
8158
8169
|
const date = new Date(this.day.date * 1000);
|
|
8159
8170
|
|
|
8160
|
-
// Generate localized full date string
|
|
8161
|
-
const
|
|
8171
|
+
// Generate localized full date string using the configured locale
|
|
8172
|
+
const localeCode = this.locale?.code || undefined;
|
|
8173
|
+
const dateFormatter = new Intl.DateTimeFormat(localeCode, {
|
|
8162
8174
|
weekday: 'long',
|
|
8163
8175
|
year: 'numeric',
|
|
8164
8176
|
month: 'long',
|
|
@@ -8167,7 +8179,7 @@ class AuroCalendarCell extends LitElement {
|
|
|
8167
8179
|
|
|
8168
8180
|
let label = dateFormatter.format(date);
|
|
8169
8181
|
|
|
8170
|
-
// appending popover content here so that it
|
|
8182
|
+
// appending popover content here so that it gets read in a logical order with the other date content.
|
|
8171
8183
|
if (this.hasPopoverContent) {
|
|
8172
8184
|
label += `, ${this.querySelector(`[slot="popover_${this.dateStr}"]`).innerText.trim()}`;
|
|
8173
8185
|
}
|
|
@@ -8399,10 +8411,22 @@ class AuroCalendarCell extends LitElement {
|
|
|
8399
8411
|
this.handleSlotContent();
|
|
8400
8412
|
});
|
|
8401
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() {
|
|
8402
8426
|
this.auroPopover = this.shadowRoot.querySelector(this.popoverTag._$litStatic$);
|
|
8403
8427
|
|
|
8404
|
-
if (this.auroPopover) {
|
|
8405
|
-
this.auroPopover.boundary = calendarMonth;
|
|
8428
|
+
if (this.auroPopover && this.calendarMonth) {
|
|
8429
|
+
this.auroPopover.boundary = this.calendarMonth;
|
|
8406
8430
|
}
|
|
8407
8431
|
}
|
|
8408
8432
|
|
|
@@ -8415,6 +8439,11 @@ class AuroCalendarCell extends LitElement {
|
|
|
8415
8439
|
this.setDateSlotName();
|
|
8416
8440
|
this.handleSlotContent();
|
|
8417
8441
|
}
|
|
8442
|
+
|
|
8443
|
+
// Configure popover when it first becomes rendered
|
|
8444
|
+
if (properties.has('hasPopoverContent') && this.hasPopoverContent) {
|
|
8445
|
+
this.updateComplete.then(() => this.configurePopover());
|
|
8446
|
+
}
|
|
8418
8447
|
}
|
|
8419
8448
|
|
|
8420
8449
|
/**
|
|
@@ -8436,7 +8465,7 @@ class AuroCalendarCell extends LitElement {
|
|
|
8436
8465
|
const buttonClasses = {
|
|
8437
8466
|
'day': true,
|
|
8438
8467
|
'body-lg': true,
|
|
8439
|
-
'currentDate': this.
|
|
8468
|
+
'currentDate': this.isCurrentDate,
|
|
8440
8469
|
'selected': this.selected,
|
|
8441
8470
|
'inRange': this.datepicker?.hasAttribute('range') && this.hovered && this.isInRange(this.day, this.dateFrom, this.dateTo),
|
|
8442
8471
|
'lastHoveredDate': this.isLastHoveredDate(this.day, this.dateFrom, this.dateTo, this.hoveredDate) && this.datepicker && this.datepicker.hasAttribute('range'),
|
|
@@ -8458,8 +8487,8 @@ class AuroCalendarCell extends LitElement {
|
|
|
8458
8487
|
@focus="${outOfRange ? nothing : this.handleHover}"
|
|
8459
8488
|
class="${classMap(buttonClasses)}"
|
|
8460
8489
|
?disabled="${outOfRange}"
|
|
8461
|
-
|
|
8462
|
-
|
|
8490
|
+
aria-disabled="${blackout ? 'true' : nothing}"
|
|
8491
|
+
aria-hidden="${outOfRange ? 'true' : nothing}"
|
|
8463
8492
|
aria-selected="${this.selected ? 'true' : 'false'}"
|
|
8464
8493
|
aria-current="${this.isCurrentDate ? 'date' : nothing}"
|
|
8465
8494
|
tabindex="${this.active ? '0' : '-1'}">
|
|
@@ -8671,8 +8700,12 @@ class AuroCalendarMonth extends RangeDatepickerCalendar {
|
|
|
8671
8700
|
}
|
|
8672
8701
|
} else if (key === 'ArrowDown' || key === 'ArrowUp') {
|
|
8673
8702
|
// Find the target day (same day-of-week, +/- 7 days)
|
|
8703
|
+
// Use Date arithmetic instead of fixed seconds to handle DST correctly
|
|
8674
8704
|
const increment = key === 'ArrowDown' ? 7 : -7;
|
|
8675
|
-
const
|
|
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);
|
|
8676
8709
|
|
|
8677
8710
|
// Look for the target date in this month's focusable cells
|
|
8678
8711
|
targetCell = focusableCells.find(cell => cell.day.date === targetDate);
|
|
@@ -8736,7 +8769,7 @@ class AuroCalendarMonth extends RangeDatepickerCalendar {
|
|
|
8736
8769
|
var _a, _b;
|
|
8737
8770
|
|
|
8738
8771
|
return html `
|
|
8739
|
-
<div aria-labelledby="${this.getHeadingId()}"
|
|
8772
|
+
<div aria-labelledby="${this.getHeadingId()}">
|
|
8740
8773
|
<div class="header">
|
|
8741
8774
|
${this.renderPrevButton()}
|
|
8742
8775
|
<div class="headerTitle heading-xs" id="${this.getHeadingId()}" aria-live="polite" aria-atomic="true">
|
|
@@ -8751,7 +8784,7 @@ class AuroCalendarMonth extends RangeDatepickerCalendar {
|
|
|
8751
8784
|
${this.renderNextButton()}
|
|
8752
8785
|
</div>
|
|
8753
8786
|
|
|
8754
|
-
<div class="table" role="grid" aria-labelledby="${this.getHeadingId()}">
|
|
8787
|
+
<div class="table" role="grid" aria-labelledby="${this.getHeadingId()}" @keydown="${this.handleGridKeyDown}">
|
|
8755
8788
|
<div class="thead" role="rowgroup">
|
|
8756
8789
|
<div class="tr" role="row">
|
|
8757
8790
|
${(_a = this.dayNamesOfTheWeek) === null || _a === void 0 ? void 0 : _a.map((dayNameOfWeek, index) => this.renderDayOfWeek(dayNameOfWeek, index))}
|
|
@@ -9569,7 +9602,7 @@ class AuroBibtemplate extends LitElement {
|
|
|
9569
9602
|
}
|
|
9570
9603
|
}
|
|
9571
9604
|
|
|
9572
|
-
var formkitVersion$2 = '
|
|
9605
|
+
var formkitVersion$2 = '202605182353';
|
|
9573
9606
|
|
|
9574
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}
|
|
9575
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}}
|
|
@@ -9859,7 +9892,8 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
9859
9892
|
*/
|
|
9860
9893
|
announceMonthChange() {
|
|
9861
9894
|
const date = new Date(this.centralDate);
|
|
9862
|
-
const
|
|
9895
|
+
const localeCode = this.locale?.code || undefined;
|
|
9896
|
+
const formatter = new Intl.DateTimeFormat(localeCode, { month: 'long', year: 'numeric' });
|
|
9863
9897
|
this.announceSelection(formatter.format(date));
|
|
9864
9898
|
}
|
|
9865
9899
|
|
|
@@ -10039,9 +10073,19 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
10039
10073
|
* @returns {Number|undefined} Unix timestamp (seconds) of the date to activate, or undefined.
|
|
10040
10074
|
*/
|
|
10041
10075
|
computeActiveDate() {
|
|
10042
|
-
const ONE_DAY = 86400; // seconds
|
|
10043
10076
|
const MAX_SCAN_DAYS = 366; // scan at most ~1 year in each direction
|
|
10044
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
|
+
|
|
10045
10089
|
const rawMin = Number(this.min);
|
|
10046
10090
|
const rawMax = Number(this.max);
|
|
10047
10091
|
|
|
@@ -10054,6 +10098,17 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
10054
10098
|
(this.disabledDays || []).map(d => parseInt(d, 10))
|
|
10055
10099
|
);
|
|
10056
10100
|
|
|
10101
|
+
// Also include ISO-format blackoutDates from the datepicker if available.
|
|
10102
|
+
// Parse YYYY-MM-DD as local date to avoid UTC shift issues.
|
|
10103
|
+
const isoBlackouts = this.datepicker?.blackoutDates;
|
|
10104
|
+
if (Array.isArray(isoBlackouts)) {
|
|
10105
|
+
for (const isoStr of isoBlackouts) {
|
|
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);
|
|
10108
|
+
if (Number.isFinite(ts)) blackoutSet.add(ts);
|
|
10109
|
+
}
|
|
10110
|
+
}
|
|
10111
|
+
|
|
10057
10112
|
/**
|
|
10058
10113
|
* A date (unix timestamp in seconds, midnight-aligned) is "enabled" when
|
|
10059
10114
|
* it is within [min, max] AND not a blackout day.
|
|
@@ -10078,31 +10133,34 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
10078
10133
|
if (isEnabled(now)) return now;
|
|
10079
10134
|
|
|
10080
10135
|
// 3. First future enabled date (scan forward from tomorrow, capped by max and MAX_SCAN_DAYS).
|
|
10081
|
-
|
|
10082
|
-
|
|
10083
|
-
|
|
10084
|
-
|
|
10085
|
-
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;
|
|
10086
10139
|
if (isEnabled(ts)) return ts;
|
|
10087
10140
|
}
|
|
10088
10141
|
|
|
10089
10142
|
// 4. First previous enabled date (scan backward from yesterday, capped by min and MAX_SCAN_DAYS).
|
|
10090
|
-
|
|
10091
|
-
|
|
10092
|
-
|
|
10093
|
-
|
|
10094
|
-
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;
|
|
10095
10146
|
if (isEnabled(ts)) return ts;
|
|
10096
10147
|
}
|
|
10097
10148
|
|
|
10098
10149
|
// 5. If scans missed (e.g. min/max range is far from today), fall back to
|
|
10099
10150
|
// the first enabled date in the [min, max] range.
|
|
10100
10151
|
if (Number.isFinite(minTs) && Number.isFinite(maxTs)) {
|
|
10101
|
-
|
|
10152
|
+
let ts = minTs;
|
|
10153
|
+
for (let idx = 0; ts <= maxTs; idx++) {
|
|
10102
10154
|
if (isEnabled(ts)) return ts;
|
|
10155
|
+
ts = addDays(minTs, idx + 1);
|
|
10103
10156
|
}
|
|
10104
10157
|
}
|
|
10105
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
|
+
|
|
10106
10164
|
return undefined;
|
|
10107
10165
|
}
|
|
10108
10166
|
|
|
@@ -10161,8 +10219,12 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
10161
10219
|
}
|
|
10162
10220
|
} else if (key === 'ArrowDown' || key === 'ArrowUp') {
|
|
10163
10221
|
// Vertical navigation: find same day-of-week +/- 7 days
|
|
10222
|
+
// Use Date arithmetic instead of fixed seconds to handle DST correctly
|
|
10164
10223
|
const increment = key === 'ArrowDown' ? 7 : -7;
|
|
10165
|
-
const
|
|
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);
|
|
10166
10228
|
|
|
10167
10229
|
const allCells = this.getAllFocusableCells();
|
|
10168
10230
|
let targetCell = allCells.find(cell => cell.day && cell.day.date === targetDate);
|
|
@@ -10227,7 +10289,8 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
10227
10289
|
const monthElem = this.shadowRoot.querySelector(selector);
|
|
10228
10290
|
|
|
10229
10291
|
if (monthElem) {
|
|
10230
|
-
|
|
10292
|
+
const prefersReducedMotion = window.matchMedia('(prefers-reduced-motion: reduce)').matches;
|
|
10293
|
+
monthElem.scrollIntoView({ block: 'nearest', behavior: prefersReducedMotion ? 'instant' : 'smooth' });
|
|
10231
10294
|
}
|
|
10232
10295
|
}
|
|
10233
10296
|
|
|
@@ -10256,7 +10319,8 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
10256
10319
|
*/
|
|
10257
10320
|
formatAnnouncementDate(timestamp) {
|
|
10258
10321
|
const date = new Date(parseInt(timestamp, 10) * 1000);
|
|
10259
|
-
const
|
|
10322
|
+
const localeCode = this.locale?.code || undefined;
|
|
10323
|
+
const formatter = new Intl.DateTimeFormat(localeCode, {
|
|
10260
10324
|
weekday: 'long', year: 'numeric', month: 'long', day: 'numeric'
|
|
10261
10325
|
});
|
|
10262
10326
|
return formatter.format(date);
|
|
@@ -14270,7 +14334,7 @@ let AuroHelpText$2 = class AuroHelpText extends LitElement {
|
|
|
14270
14334
|
}
|
|
14271
14335
|
};
|
|
14272
14336
|
|
|
14273
|
-
var formkitVersion$1 = '
|
|
14337
|
+
var formkitVersion$1 = '202605182353';
|
|
14274
14338
|
|
|
14275
14339
|
let AuroElement$2 = class AuroElement extends LitElement {
|
|
14276
14340
|
static get properties() {
|
|
@@ -15191,6 +15255,14 @@ class AuroDropdown extends AuroElement$2 {
|
|
|
15191
15255
|
}
|
|
15192
15256
|
};
|
|
15193
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
|
+
});
|
|
15194
15266
|
} else {
|
|
15195
15267
|
// Normal desktop: use FocusTrap on the bib element
|
|
15196
15268
|
this.focusTrap = new FocusTrap(this.bibContent);
|
|
@@ -15222,7 +15294,8 @@ class AuroDropdown extends AuroElement$2 {
|
|
|
15222
15294
|
* Sets `inert` on sibling elements of the dropdown's top-level host
|
|
15223
15295
|
* so that content outside the dropdown is not interactive while the modal is open.
|
|
15224
15296
|
* Walks up through shadow DOM boundaries to find the outermost host element
|
|
15225
|
-
* in the light DOM, then sets `inert` on
|
|
15297
|
+
* in the light DOM, then sets `inert` on siblings at each ancestor level
|
|
15298
|
+
* to ensure all page content outside the host subtree is inert.
|
|
15226
15299
|
* @private
|
|
15227
15300
|
*/
|
|
15228
15301
|
_setPageInert() {
|
|
@@ -15241,15 +15314,18 @@ class AuroDropdown extends AuroElement$2 {
|
|
|
15241
15314
|
host = host.getRootNode().host;
|
|
15242
15315
|
}
|
|
15243
15316
|
|
|
15244
|
-
|
|
15245
|
-
|
|
15246
|
-
|
|
15317
|
+
// Walk up the ancestor chain, inerting siblings at each level
|
|
15318
|
+
// to ensure the entire page outside the host subtree is inert.
|
|
15319
|
+
let current = host;
|
|
15320
|
+
while (current.parentElement) {
|
|
15321
|
+
const parent = current.parentElement;
|
|
15247
15322
|
for (const sibling of parent.children) {
|
|
15248
|
-
if (sibling !==
|
|
15323
|
+
if (sibling !== current && !sibling.inert) {
|
|
15249
15324
|
sibling.inert = true;
|
|
15250
15325
|
this._inertSiblings.push(sibling);
|
|
15251
15326
|
}
|
|
15252
15327
|
}
|
|
15328
|
+
current = parent;
|
|
15253
15329
|
}
|
|
15254
15330
|
}
|
|
15255
15331
|
|
|
@@ -22200,7 +22276,7 @@ let AuroHelpText$1 = class AuroHelpText extends LitElement {
|
|
|
22200
22276
|
}
|
|
22201
22277
|
};
|
|
22202
22278
|
|
|
22203
|
-
var formkitVersion = '
|
|
22279
|
+
var formkitVersion = '202605182353';
|
|
22204
22280
|
|
|
22205
22281
|
// Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
|
|
22206
22282
|
// See LICENSE in the project root for license information.
|
|
@@ -23455,11 +23531,10 @@ function applyKeyboardStrategy(component, strategy, options = {}) {
|
|
|
23455
23531
|
// components/datepicker/docs/partials/keyboardBehavior.md
|
|
23456
23532
|
//
|
|
23457
23533
|
// Current behavior (transitional — full bib keyboard navigation is planned for a future iteration):
|
|
23458
|
-
// - The bib opens and closes via pointer/touch interaction only.
|
|
23459
23534
|
// - Escape closes the bib and prevents the event from reaching parent containers.
|
|
23460
|
-
// -
|
|
23535
|
+
// - Enter opens the bib when it is closed (trigger input only, not clear button).
|
|
23536
|
+
// - Space opens the bib when it is closed (trigger input only, not clear button).
|
|
23461
23537
|
// - Tab uses the browser's default tabindex sequence across trigger controls.
|
|
23462
|
-
// - Enter does not open or close the bib.
|
|
23463
23538
|
//
|
|
23464
23539
|
// This file is an intentional placeholder for most keys. When datepicker bib keyboard navigation is
|
|
23465
23540
|
// added, handlers should go here following the same strategy pattern used by
|
|
@@ -23483,7 +23558,13 @@ const datepickerKeyboardStrategy = {
|
|
|
23483
23558
|
return;
|
|
23484
23559
|
}
|
|
23485
23560
|
|
|
23486
|
-
//
|
|
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'))) {
|
|
23565
|
+
return;
|
|
23566
|
+
}
|
|
23567
|
+
|
|
23487
23568
|
evt.preventDefault();
|
|
23488
23569
|
|
|
23489
23570
|
component.dropdown.show();
|
|
@@ -23494,7 +23575,13 @@ const datepickerKeyboardStrategy = {
|
|
|
23494
23575
|
return;
|
|
23495
23576
|
}
|
|
23496
23577
|
|
|
23497
|
-
//
|
|
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'))) {
|
|
23582
|
+
return;
|
|
23583
|
+
}
|
|
23584
|
+
|
|
23498
23585
|
evt.preventDefault();
|
|
23499
23586
|
|
|
23500
23587
|
component.dropdown.show();
|
|
@@ -24459,9 +24546,10 @@ class AuroDatePicker extends AuroElement {
|
|
|
24459
24546
|
|
|
24460
24547
|
// Show the month containing the selected date (or today) instead of
|
|
24461
24548
|
// whichever month the user last navigated to.
|
|
24549
|
+
// Respect consumer-provided centralDate/calendarStartDate if no value is set.
|
|
24462
24550
|
if (this.value && this.util.validDateStr(this.value, this.format)) {
|
|
24463
24551
|
this.calendarRenderUtil.updateCentralDate(this, this.formattedValue);
|
|
24464
|
-
} else if (!this.minDate) {
|
|
24552
|
+
} else if (!this.centralDate && !this.calendarStartDate && !this.minDate) {
|
|
24465
24553
|
this.calendarRenderUtil.updateCentralDate(this, new Date());
|
|
24466
24554
|
}
|
|
24467
24555
|
}
|
|
@@ -24752,6 +24840,11 @@ class AuroDatePicker extends AuroElement {
|
|
|
24752
24840
|
} else {
|
|
24753
24841
|
this.value = newDate;
|
|
24754
24842
|
}
|
|
24843
|
+
|
|
24844
|
+
// For single-date picker, close the bib and return focus to trigger after selection
|
|
24845
|
+
if (!this.range) {
|
|
24846
|
+
this.hideBib();
|
|
24847
|
+
}
|
|
24755
24848
|
}
|
|
24756
24849
|
}
|
|
24757
24850
|
|
|
@@ -24924,10 +25017,28 @@ class AuroDatePicker extends AuroElement {
|
|
|
24924
25017
|
this.setHasValue();
|
|
24925
25018
|
}
|
|
24926
25019
|
|
|
25020
|
+
if (changedProperties.has('blackoutDates')) {
|
|
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.
|
|
25025
|
+
if (this.calendar) {
|
|
25026
|
+
this.calendar.requestUpdate();
|
|
25027
|
+
this.dispatchEvent(new CustomEvent('auroDatePicker-newSlotContent'));
|
|
25028
|
+
}
|
|
25029
|
+
}
|
|
25030
|
+
|
|
24927
25031
|
if (changedProperties.has('valueEnd') && this.inputList[1]) {
|
|
24928
25032
|
|
|
24929
25033
|
this.formattedValueEnd = this.util.toNorthAmericanFormat(this.valueEnd, this.format);
|
|
24930
25034
|
|
|
25035
|
+
if (this.cellClickActive) {
|
|
25036
|
+
this.cellClickActive = false;
|
|
25037
|
+
this.wasCellClick = true;
|
|
25038
|
+
} else {
|
|
25039
|
+
this.wasCellClick = false;
|
|
25040
|
+
}
|
|
25041
|
+
|
|
24931
25042
|
// update the calendar
|
|
24932
25043
|
if (this.valueEnd && this.util.validDateStr(this.valueEnd, this.format)) {
|
|
24933
25044
|
this.calendar.dateTo = this.convertToWcValidTime(this.formattedValueEnd);
|
|
@@ -215,6 +215,15 @@ export class AuroCalendarCell extends LitElement {
|
|
|
215
215
|
private handleSlotContent;
|
|
216
216
|
firstUpdated(): void;
|
|
217
217
|
datepicker: any;
|
|
218
|
+
calendarMonth: any;
|
|
219
|
+
/**
|
|
220
|
+
* Configures the popover instance with the calendar month boundary.
|
|
221
|
+
* Called from firstUpdated and updated because the popover element is only
|
|
222
|
+
* rendered after hasPopoverContent becomes true (set by handleSlotContent).
|
|
223
|
+
* @private
|
|
224
|
+
* @returns {void}
|
|
225
|
+
*/
|
|
226
|
+
private configurePopover;
|
|
218
227
|
auroPopover: any;
|
|
219
228
|
updated(properties: any): void;
|
|
220
229
|
/**
|
|
@@ -3942,7 +3942,7 @@ class AuroHelpText extends i {
|
|
|
3942
3942
|
}
|
|
3943
3943
|
}
|
|
3944
3944
|
|
|
3945
|
-
var formkitVersion = '
|
|
3945
|
+
var formkitVersion = '202605182353';
|
|
3946
3946
|
|
|
3947
3947
|
class AuroElement extends i {
|
|
3948
3948
|
static get properties() {
|
|
@@ -4863,6 +4863,14 @@ class AuroDropdown extends AuroElement {
|
|
|
4863
4863
|
}
|
|
4864
4864
|
};
|
|
4865
4865
|
this.addEventListener('keydown', this._bibTabHandler);
|
|
4866
|
+
|
|
4867
|
+
// Move initial focus into the bib content, matching FocusTrap behavior
|
|
4868
|
+
requestAnimationFrame(() => {
|
|
4869
|
+
const focusables = getFocusableElements(this.bibContent);
|
|
4870
|
+
if (focusables.length) {
|
|
4871
|
+
focusables[0].focus();
|
|
4872
|
+
}
|
|
4873
|
+
});
|
|
4866
4874
|
} else {
|
|
4867
4875
|
// Normal desktop: use FocusTrap on the bib element
|
|
4868
4876
|
this.focusTrap = new FocusTrap(this.bibContent);
|
|
@@ -4894,7 +4902,8 @@ class AuroDropdown extends AuroElement {
|
|
|
4894
4902
|
* Sets `inert` on sibling elements of the dropdown's top-level host
|
|
4895
4903
|
* so that content outside the dropdown is not interactive while the modal is open.
|
|
4896
4904
|
* Walks up through shadow DOM boundaries to find the outermost host element
|
|
4897
|
-
* in the light DOM, then sets `inert` on
|
|
4905
|
+
* in the light DOM, then sets `inert` on siblings at each ancestor level
|
|
4906
|
+
* to ensure all page content outside the host subtree is inert.
|
|
4898
4907
|
* @private
|
|
4899
4908
|
*/
|
|
4900
4909
|
_setPageInert() {
|
|
@@ -4913,15 +4922,18 @@ class AuroDropdown extends AuroElement {
|
|
|
4913
4922
|
host = host.getRootNode().host;
|
|
4914
4923
|
}
|
|
4915
4924
|
|
|
4916
|
-
|
|
4917
|
-
|
|
4918
|
-
|
|
4925
|
+
// Walk up the ancestor chain, inerting siblings at each level
|
|
4926
|
+
// to ensure the entire page outside the host subtree is inert.
|
|
4927
|
+
let current = host;
|
|
4928
|
+
while (current.parentElement) {
|
|
4929
|
+
const parent = current.parentElement;
|
|
4919
4930
|
for (const sibling of parent.children) {
|
|
4920
|
-
if (sibling !==
|
|
4931
|
+
if (sibling !== current && !sibling.inert) {
|
|
4921
4932
|
sibling.inert = true;
|
|
4922
4933
|
this._inertSiblings.push(sibling);
|
|
4923
4934
|
}
|
|
4924
4935
|
}
|
|
4936
|
+
current = parent;
|
|
4925
4937
|
}
|
|
4926
4938
|
}
|
|
4927
4939
|
|
|
@@ -3942,7 +3942,7 @@ class AuroHelpText extends i {
|
|
|
3942
3942
|
}
|
|
3943
3943
|
}
|
|
3944
3944
|
|
|
3945
|
-
var formkitVersion = '
|
|
3945
|
+
var formkitVersion = '202605182353';
|
|
3946
3946
|
|
|
3947
3947
|
class AuroElement extends i {
|
|
3948
3948
|
static get properties() {
|
|
@@ -4863,6 +4863,14 @@ class AuroDropdown extends AuroElement {
|
|
|
4863
4863
|
}
|
|
4864
4864
|
};
|
|
4865
4865
|
this.addEventListener('keydown', this._bibTabHandler);
|
|
4866
|
+
|
|
4867
|
+
// Move initial focus into the bib content, matching FocusTrap behavior
|
|
4868
|
+
requestAnimationFrame(() => {
|
|
4869
|
+
const focusables = getFocusableElements(this.bibContent);
|
|
4870
|
+
if (focusables.length) {
|
|
4871
|
+
focusables[0].focus();
|
|
4872
|
+
}
|
|
4873
|
+
});
|
|
4866
4874
|
} else {
|
|
4867
4875
|
// Normal desktop: use FocusTrap on the bib element
|
|
4868
4876
|
this.focusTrap = new FocusTrap(this.bibContent);
|
|
@@ -4894,7 +4902,8 @@ class AuroDropdown extends AuroElement {
|
|
|
4894
4902
|
* Sets `inert` on sibling elements of the dropdown's top-level host
|
|
4895
4903
|
* so that content outside the dropdown is not interactive while the modal is open.
|
|
4896
4904
|
* Walks up through shadow DOM boundaries to find the outermost host element
|
|
4897
|
-
* in the light DOM, then sets `inert` on
|
|
4905
|
+
* in the light DOM, then sets `inert` on siblings at each ancestor level
|
|
4906
|
+
* to ensure all page content outside the host subtree is inert.
|
|
4898
4907
|
* @private
|
|
4899
4908
|
*/
|
|
4900
4909
|
_setPageInert() {
|
|
@@ -4913,15 +4922,18 @@ class AuroDropdown extends AuroElement {
|
|
|
4913
4922
|
host = host.getRootNode().host;
|
|
4914
4923
|
}
|
|
4915
4924
|
|
|
4916
|
-
|
|
4917
|
-
|
|
4918
|
-
|
|
4925
|
+
// Walk up the ancestor chain, inerting siblings at each level
|
|
4926
|
+
// to ensure the entire page outside the host subtree is inert.
|
|
4927
|
+
let current = host;
|
|
4928
|
+
while (current.parentElement) {
|
|
4929
|
+
const parent = current.parentElement;
|
|
4919
4930
|
for (const sibling of parent.children) {
|
|
4920
|
-
if (sibling !==
|
|
4931
|
+
if (sibling !== current && !sibling.inert) {
|
|
4921
4932
|
sibling.inert = true;
|
|
4922
4933
|
this._inertSiblings.push(sibling);
|
|
4923
4934
|
}
|
|
4924
4935
|
}
|
|
4936
|
+
current = parent;
|
|
4925
4937
|
}
|
|
4926
4938
|
}
|
|
4927
4939
|
|
|
@@ -3969,7 +3969,7 @@ class AuroHelpText extends i {
|
|
|
3969
3969
|
}
|
|
3970
3970
|
}
|
|
3971
3971
|
|
|
3972
|
-
var formkitVersion = '
|
|
3972
|
+
var formkitVersion = '202605182353';
|
|
3973
3973
|
|
|
3974
3974
|
class AuroElement extends i {
|
|
3975
3975
|
static get properties() {
|
|
@@ -4890,6 +4890,14 @@ class AuroDropdown extends AuroElement {
|
|
|
4890
4890
|
}
|
|
4891
4891
|
};
|
|
4892
4892
|
this.addEventListener('keydown', this._bibTabHandler);
|
|
4893
|
+
|
|
4894
|
+
// Move initial focus into the bib content, matching FocusTrap behavior
|
|
4895
|
+
requestAnimationFrame(() => {
|
|
4896
|
+
const focusables = getFocusableElements(this.bibContent);
|
|
4897
|
+
if (focusables.length) {
|
|
4898
|
+
focusables[0].focus();
|
|
4899
|
+
}
|
|
4900
|
+
});
|
|
4893
4901
|
} else {
|
|
4894
4902
|
// Normal desktop: use FocusTrap on the bib element
|
|
4895
4903
|
this.focusTrap = new FocusTrap(this.bibContent);
|
|
@@ -4921,7 +4929,8 @@ class AuroDropdown extends AuroElement {
|
|
|
4921
4929
|
* Sets `inert` on sibling elements of the dropdown's top-level host
|
|
4922
4930
|
* so that content outside the dropdown is not interactive while the modal is open.
|
|
4923
4931
|
* Walks up through shadow DOM boundaries to find the outermost host element
|
|
4924
|
-
* in the light DOM, then sets `inert` on
|
|
4932
|
+
* in the light DOM, then sets `inert` on siblings at each ancestor level
|
|
4933
|
+
* to ensure all page content outside the host subtree is inert.
|
|
4925
4934
|
* @private
|
|
4926
4935
|
*/
|
|
4927
4936
|
_setPageInert() {
|
|
@@ -4940,15 +4949,18 @@ class AuroDropdown extends AuroElement {
|
|
|
4940
4949
|
host = host.getRootNode().host;
|
|
4941
4950
|
}
|
|
4942
4951
|
|
|
4943
|
-
|
|
4944
|
-
|
|
4945
|
-
|
|
4952
|
+
// Walk up the ancestor chain, inerting siblings at each level
|
|
4953
|
+
// to ensure the entire page outside the host subtree is inert.
|
|
4954
|
+
let current = host;
|
|
4955
|
+
while (current.parentElement) {
|
|
4956
|
+
const parent = current.parentElement;
|
|
4946
4957
|
for (const sibling of parent.children) {
|
|
4947
|
-
if (sibling !==
|
|
4958
|
+
if (sibling !== current && !sibling.inert) {
|
|
4948
4959
|
sibling.inert = true;
|
|
4949
4960
|
this._inertSiblings.push(sibling);
|
|
4950
4961
|
}
|
|
4951
4962
|
}
|
|
4963
|
+
current = parent;
|
|
4952
4964
|
}
|
|
4953
4965
|
}
|
|
4954
4966
|
|
|
@@ -420,7 +420,8 @@ export class AuroDropdown extends AuroElement {
|
|
|
420
420
|
* Sets `inert` on sibling elements of the dropdown's top-level host
|
|
421
421
|
* so that content outside the dropdown is not interactive while the modal is open.
|
|
422
422
|
* Walks up through shadow DOM boundaries to find the outermost host element
|
|
423
|
-
* in the light DOM, then sets `inert` on
|
|
423
|
+
* in the light DOM, then sets `inert` on siblings at each ancestor level
|
|
424
|
+
* to ensure all page content outside the host subtree is inert.
|
|
424
425
|
* @private
|
|
425
426
|
*/
|
|
426
427
|
private _setPageInert;
|