@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
|
@@ -8139,11 +8139,22 @@ 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
|
|
|
8145
8152
|
if (Array.isArray(blackoutDates) && blackoutDates.length > 0) {
|
|
8146
|
-
const
|
|
8153
|
+
const date = new Date(this.day.date * 1000);
|
|
8154
|
+
const yyyy = date.getFullYear();
|
|
8155
|
+
const mm = String(date.getMonth() + 1).padStart(2, '0');
|
|
8156
|
+
const dd = String(date.getDate()).padStart(2, '0');
|
|
8157
|
+
const cellDate = `${yyyy}-${mm}-${dd}`;
|
|
8147
8158
|
if (blackoutDates.includes(cellDate)) {
|
|
8148
8159
|
return true;
|
|
8149
8160
|
}
|
|
@@ -8199,8 +8210,9 @@ class AuroCalendarCell extends i$1 {
|
|
|
8199
8210
|
|
|
8200
8211
|
const date = new Date(this.day.date * 1000);
|
|
8201
8212
|
|
|
8202
|
-
// Generate localized full date string
|
|
8203
|
-
const
|
|
8213
|
+
// Generate localized full date string using the configured locale
|
|
8214
|
+
const localeCode = this.locale?.code || undefined;
|
|
8215
|
+
const dateFormatter = new Intl.DateTimeFormat(localeCode, {
|
|
8204
8216
|
weekday: 'long',
|
|
8205
8217
|
year: 'numeric',
|
|
8206
8218
|
month: 'long',
|
|
@@ -8209,7 +8221,7 @@ class AuroCalendarCell extends i$1 {
|
|
|
8209
8221
|
|
|
8210
8222
|
let label = dateFormatter.format(date);
|
|
8211
8223
|
|
|
8212
|
-
// appending popover content here so that it
|
|
8224
|
+
// appending popover content here so that it gets read in a logical order with the other date content.
|
|
8213
8225
|
if (this.hasPopoverContent) {
|
|
8214
8226
|
label += `, ${this.querySelector(`[slot="popover_${this.dateStr}"]`).innerText.trim()}`;
|
|
8215
8227
|
}
|
|
@@ -8441,10 +8453,22 @@ class AuroCalendarCell extends i$1 {
|
|
|
8441
8453
|
this.handleSlotContent();
|
|
8442
8454
|
});
|
|
8443
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() {
|
|
8444
8468
|
this.auroPopover = this.shadowRoot.querySelector(this.popoverTag._$litStatic$);
|
|
8445
8469
|
|
|
8446
|
-
if (this.auroPopover) {
|
|
8447
|
-
this.auroPopover.boundary = calendarMonth;
|
|
8470
|
+
if (this.auroPopover && this.calendarMonth) {
|
|
8471
|
+
this.auroPopover.boundary = this.calendarMonth;
|
|
8448
8472
|
}
|
|
8449
8473
|
}
|
|
8450
8474
|
|
|
@@ -8457,6 +8481,11 @@ class AuroCalendarCell extends i$1 {
|
|
|
8457
8481
|
this.setDateSlotName();
|
|
8458
8482
|
this.handleSlotContent();
|
|
8459
8483
|
}
|
|
8484
|
+
|
|
8485
|
+
// Configure popover when it first becomes rendered
|
|
8486
|
+
if (properties.has('hasPopoverContent') && this.hasPopoverContent) {
|
|
8487
|
+
this.updateComplete.then(() => this.configurePopover());
|
|
8488
|
+
}
|
|
8460
8489
|
}
|
|
8461
8490
|
|
|
8462
8491
|
/**
|
|
@@ -8478,7 +8507,7 @@ class AuroCalendarCell extends i$1 {
|
|
|
8478
8507
|
const buttonClasses = {
|
|
8479
8508
|
'day': true,
|
|
8480
8509
|
'body-lg': true,
|
|
8481
|
-
'currentDate': this.
|
|
8510
|
+
'currentDate': this.isCurrentDate,
|
|
8482
8511
|
'selected': this.selected,
|
|
8483
8512
|
'inRange': this.datepicker?.hasAttribute('range') && this.hovered && this.isInRange(this.day, this.dateFrom, this.dateTo),
|
|
8484
8513
|
'lastHoveredDate': this.isLastHoveredDate(this.day, this.dateFrom, this.dateTo, this.hoveredDate) && this.datepicker && this.datepicker.hasAttribute('range'),
|
|
@@ -8500,8 +8529,8 @@ class AuroCalendarCell extends i$1 {
|
|
|
8500
8529
|
@focus="${outOfRange ? A$4 : this.handleHover}"
|
|
8501
8530
|
class="${e$4(buttonClasses)}"
|
|
8502
8531
|
?disabled="${outOfRange}"
|
|
8503
|
-
|
|
8504
|
-
|
|
8532
|
+
aria-disabled="${blackout ? 'true' : A$4}"
|
|
8533
|
+
aria-hidden="${outOfRange ? 'true' : A$4}"
|
|
8505
8534
|
aria-selected="${this.selected ? 'true' : 'false'}"
|
|
8506
8535
|
aria-current="${this.isCurrentDate ? 'date' : A$4}"
|
|
8507
8536
|
tabindex="${this.active ? '0' : '-1'}">
|
|
@@ -8713,8 +8742,12 @@ class AuroCalendarMonth extends RangeDatepickerCalendar {
|
|
|
8713
8742
|
}
|
|
8714
8743
|
} else if (key === 'ArrowDown' || key === 'ArrowUp') {
|
|
8715
8744
|
// Find the target day (same day-of-week, +/- 7 days)
|
|
8745
|
+
// Use Date arithmetic instead of fixed seconds to handle DST correctly
|
|
8716
8746
|
const increment = key === 'ArrowDown' ? 7 : -7;
|
|
8717
|
-
const
|
|
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);
|
|
8718
8751
|
|
|
8719
8752
|
// Look for the target date in this month's focusable cells
|
|
8720
8753
|
targetCell = focusableCells.find(cell => cell.day.date === targetDate);
|
|
@@ -8778,7 +8811,7 @@ class AuroCalendarMonth extends RangeDatepickerCalendar {
|
|
|
8778
8811
|
var _a, _b;
|
|
8779
8812
|
|
|
8780
8813
|
return b$5 `
|
|
8781
|
-
<div aria-labelledby="${this.getHeadingId()}"
|
|
8814
|
+
<div aria-labelledby="${this.getHeadingId()}">
|
|
8782
8815
|
<div class="header">
|
|
8783
8816
|
${this.renderPrevButton()}
|
|
8784
8817
|
<div class="headerTitle heading-xs" id="${this.getHeadingId()}" aria-live="polite" aria-atomic="true">
|
|
@@ -8793,7 +8826,7 @@ class AuroCalendarMonth extends RangeDatepickerCalendar {
|
|
|
8793
8826
|
${this.renderNextButton()}
|
|
8794
8827
|
</div>
|
|
8795
8828
|
|
|
8796
|
-
<div class="table" role="grid" aria-labelledby="${this.getHeadingId()}">
|
|
8829
|
+
<div class="table" role="grid" aria-labelledby="${this.getHeadingId()}" @keydown="${this.handleGridKeyDown}">
|
|
8797
8830
|
<div class="thead" role="rowgroup">
|
|
8798
8831
|
<div class="tr" role="row">
|
|
8799
8832
|
${(_a = this.dayNamesOfTheWeek) === null || _a === void 0 ? void 0 : _a.map((dayNameOfWeek, index) => this.renderDayOfWeek(dayNameOfWeek, index))}
|
|
@@ -9617,7 +9650,7 @@ class AuroBibtemplate extends i$1 {
|
|
|
9617
9650
|
}
|
|
9618
9651
|
}
|
|
9619
9652
|
|
|
9620
|
-
var formkitVersion$2 = '
|
|
9653
|
+
var formkitVersion$2 = '202605182353';
|
|
9621
9654
|
|
|
9622
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}
|
|
9623
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}}
|
|
@@ -9907,7 +9940,8 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
9907
9940
|
*/
|
|
9908
9941
|
announceMonthChange() {
|
|
9909
9942
|
const date = new Date(this.centralDate);
|
|
9910
|
-
const
|
|
9943
|
+
const localeCode = this.locale?.code || undefined;
|
|
9944
|
+
const formatter = new Intl.DateTimeFormat(localeCode, { month: 'long', year: 'numeric' });
|
|
9911
9945
|
this.announceSelection(formatter.format(date));
|
|
9912
9946
|
}
|
|
9913
9947
|
|
|
@@ -10087,9 +10121,19 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
10087
10121
|
* @returns {Number|undefined} Unix timestamp (seconds) of the date to activate, or undefined.
|
|
10088
10122
|
*/
|
|
10089
10123
|
computeActiveDate() {
|
|
10090
|
-
const ONE_DAY = 86400; // seconds
|
|
10091
10124
|
const MAX_SCAN_DAYS = 366; // scan at most ~1 year in each direction
|
|
10092
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
|
+
|
|
10093
10137
|
const rawMin = Number(this.min);
|
|
10094
10138
|
const rawMax = Number(this.max);
|
|
10095
10139
|
|
|
@@ -10102,6 +10146,17 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
10102
10146
|
(this.disabledDays || []).map(d => parseInt(d, 10))
|
|
10103
10147
|
);
|
|
10104
10148
|
|
|
10149
|
+
// Also include ISO-format blackoutDates from the datepicker if available.
|
|
10150
|
+
// Parse YYYY-MM-DD as local date to avoid UTC shift issues.
|
|
10151
|
+
const isoBlackouts = this.datepicker?.blackoutDates;
|
|
10152
|
+
if (Array.isArray(isoBlackouts)) {
|
|
10153
|
+
for (const isoStr of isoBlackouts) {
|
|
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);
|
|
10156
|
+
if (Number.isFinite(ts)) blackoutSet.add(ts);
|
|
10157
|
+
}
|
|
10158
|
+
}
|
|
10159
|
+
|
|
10105
10160
|
/**
|
|
10106
10161
|
* A date (unix timestamp in seconds, midnight-aligned) is "enabled" when
|
|
10107
10162
|
* it is within [min, max] AND not a blackout day.
|
|
@@ -10126,31 +10181,34 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
10126
10181
|
if (isEnabled(now)) return now;
|
|
10127
10182
|
|
|
10128
10183
|
// 3. First future enabled date (scan forward from tomorrow, capped by max and MAX_SCAN_DAYS).
|
|
10129
|
-
|
|
10130
|
-
|
|
10131
|
-
|
|
10132
|
-
|
|
10133
|
-
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;
|
|
10134
10187
|
if (isEnabled(ts)) return ts;
|
|
10135
10188
|
}
|
|
10136
10189
|
|
|
10137
10190
|
// 4. First previous enabled date (scan backward from yesterday, capped by min and MAX_SCAN_DAYS).
|
|
10138
|
-
|
|
10139
|
-
|
|
10140
|
-
|
|
10141
|
-
|
|
10142
|
-
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;
|
|
10143
10194
|
if (isEnabled(ts)) return ts;
|
|
10144
10195
|
}
|
|
10145
10196
|
|
|
10146
10197
|
// 5. If scans missed (e.g. min/max range is far from today), fall back to
|
|
10147
10198
|
// the first enabled date in the [min, max] range.
|
|
10148
10199
|
if (Number.isFinite(minTs) && Number.isFinite(maxTs)) {
|
|
10149
|
-
|
|
10200
|
+
let ts = minTs;
|
|
10201
|
+
for (let idx = 0; ts <= maxTs; idx++) {
|
|
10150
10202
|
if (isEnabled(ts)) return ts;
|
|
10203
|
+
ts = addDays(minTs, idx + 1);
|
|
10151
10204
|
}
|
|
10152
10205
|
}
|
|
10153
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
|
+
|
|
10154
10212
|
return undefined;
|
|
10155
10213
|
}
|
|
10156
10214
|
|
|
@@ -10209,8 +10267,12 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
10209
10267
|
}
|
|
10210
10268
|
} else if (key === 'ArrowDown' || key === 'ArrowUp') {
|
|
10211
10269
|
// Vertical navigation: find same day-of-week +/- 7 days
|
|
10270
|
+
// Use Date arithmetic instead of fixed seconds to handle DST correctly
|
|
10212
10271
|
const increment = key === 'ArrowDown' ? 7 : -7;
|
|
10213
|
-
const
|
|
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);
|
|
10214
10276
|
|
|
10215
10277
|
const allCells = this.getAllFocusableCells();
|
|
10216
10278
|
let targetCell = allCells.find(cell => cell.day && cell.day.date === targetDate);
|
|
@@ -10275,7 +10337,8 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
10275
10337
|
const monthElem = this.shadowRoot.querySelector(selector);
|
|
10276
10338
|
|
|
10277
10339
|
if (monthElem) {
|
|
10278
|
-
|
|
10340
|
+
const prefersReducedMotion = window.matchMedia('(prefers-reduced-motion: reduce)').matches;
|
|
10341
|
+
monthElem.scrollIntoView({ block: 'nearest', behavior: prefersReducedMotion ? 'instant' : 'smooth' });
|
|
10279
10342
|
}
|
|
10280
10343
|
}
|
|
10281
10344
|
|
|
@@ -10304,7 +10367,8 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
10304
10367
|
*/
|
|
10305
10368
|
formatAnnouncementDate(timestamp) {
|
|
10306
10369
|
const date = new Date(parseInt(timestamp, 10) * 1000);
|
|
10307
|
-
const
|
|
10370
|
+
const localeCode = this.locale?.code || undefined;
|
|
10371
|
+
const formatter = new Intl.DateTimeFormat(localeCode, {
|
|
10308
10372
|
weekday: 'long', year: 'numeric', month: 'long', day: 'numeric'
|
|
10309
10373
|
});
|
|
10310
10374
|
return formatter.format(date);
|
|
@@ -14342,7 +14406,7 @@ let AuroHelpText$2 = class AuroHelpText extends i$1 {
|
|
|
14342
14406
|
}
|
|
14343
14407
|
};
|
|
14344
14408
|
|
|
14345
|
-
var formkitVersion$1 = '
|
|
14409
|
+
var formkitVersion$1 = '202605182353';
|
|
14346
14410
|
|
|
14347
14411
|
let AuroElement$2 = class AuroElement extends i$1 {
|
|
14348
14412
|
static get properties() {
|
|
@@ -15263,6 +15327,14 @@ class AuroDropdown extends AuroElement$2 {
|
|
|
15263
15327
|
}
|
|
15264
15328
|
};
|
|
15265
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
|
+
});
|
|
15266
15338
|
} else {
|
|
15267
15339
|
// Normal desktop: use FocusTrap on the bib element
|
|
15268
15340
|
this.focusTrap = new FocusTrap(this.bibContent);
|
|
@@ -15294,7 +15366,8 @@ class AuroDropdown extends AuroElement$2 {
|
|
|
15294
15366
|
* Sets `inert` on sibling elements of the dropdown's top-level host
|
|
15295
15367
|
* so that content outside the dropdown is not interactive while the modal is open.
|
|
15296
15368
|
* Walks up through shadow DOM boundaries to find the outermost host element
|
|
15297
|
-
* in the light DOM, then sets `inert` on
|
|
15369
|
+
* in the light DOM, then sets `inert` on siblings at each ancestor level
|
|
15370
|
+
* to ensure all page content outside the host subtree is inert.
|
|
15298
15371
|
* @private
|
|
15299
15372
|
*/
|
|
15300
15373
|
_setPageInert() {
|
|
@@ -15313,15 +15386,18 @@ class AuroDropdown extends AuroElement$2 {
|
|
|
15313
15386
|
host = host.getRootNode().host;
|
|
15314
15387
|
}
|
|
15315
15388
|
|
|
15316
|
-
|
|
15317
|
-
|
|
15318
|
-
|
|
15389
|
+
// Walk up the ancestor chain, inerting siblings at each level
|
|
15390
|
+
// to ensure the entire page outside the host subtree is inert.
|
|
15391
|
+
let current = host;
|
|
15392
|
+
while (current.parentElement) {
|
|
15393
|
+
const parent = current.parentElement;
|
|
15319
15394
|
for (const sibling of parent.children) {
|
|
15320
|
-
if (sibling !==
|
|
15395
|
+
if (sibling !== current && !sibling.inert) {
|
|
15321
15396
|
sibling.inert = true;
|
|
15322
15397
|
this._inertSiblings.push(sibling);
|
|
15323
15398
|
}
|
|
15324
15399
|
}
|
|
15400
|
+
current = parent;
|
|
15325
15401
|
}
|
|
15326
15402
|
}
|
|
15327
15403
|
|
|
@@ -22279,7 +22355,7 @@ let AuroHelpText$1 = class AuroHelpText extends i$1 {
|
|
|
22279
22355
|
}
|
|
22280
22356
|
};
|
|
22281
22357
|
|
|
22282
|
-
var formkitVersion = '
|
|
22358
|
+
var formkitVersion = '202605182353';
|
|
22283
22359
|
|
|
22284
22360
|
// Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
|
|
22285
22361
|
// See LICENSE in the project root for license information.
|
|
@@ -23534,11 +23610,10 @@ function applyKeyboardStrategy(component, strategy, options = {}) {
|
|
|
23534
23610
|
// components/datepicker/docs/partials/keyboardBehavior.md
|
|
23535
23611
|
//
|
|
23536
23612
|
// Current behavior (transitional — full bib keyboard navigation is planned for a future iteration):
|
|
23537
|
-
// - The bib opens and closes via pointer/touch interaction only.
|
|
23538
23613
|
// - Escape closes the bib and prevents the event from reaching parent containers.
|
|
23539
|
-
// -
|
|
23614
|
+
// - Enter opens the bib when it is closed (trigger input only, not clear button).
|
|
23615
|
+
// - Space opens the bib when it is closed (trigger input only, not clear button).
|
|
23540
23616
|
// - Tab uses the browser's default tabindex sequence across trigger controls.
|
|
23541
|
-
// - Enter does not open or close the bib.
|
|
23542
23617
|
//
|
|
23543
23618
|
// This file is an intentional placeholder for most keys. When datepicker bib keyboard navigation is
|
|
23544
23619
|
// added, handlers should go here following the same strategy pattern used by
|
|
@@ -23562,7 +23637,13 @@ const datepickerKeyboardStrategy = {
|
|
|
23562
23637
|
return;
|
|
23563
23638
|
}
|
|
23564
23639
|
|
|
23565
|
-
//
|
|
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'))) {
|
|
23644
|
+
return;
|
|
23645
|
+
}
|
|
23646
|
+
|
|
23566
23647
|
evt.preventDefault();
|
|
23567
23648
|
|
|
23568
23649
|
component.dropdown.show();
|
|
@@ -23573,7 +23654,13 @@ const datepickerKeyboardStrategy = {
|
|
|
23573
23654
|
return;
|
|
23574
23655
|
}
|
|
23575
23656
|
|
|
23576
|
-
//
|
|
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'))) {
|
|
23661
|
+
return;
|
|
23662
|
+
}
|
|
23663
|
+
|
|
23577
23664
|
evt.preventDefault();
|
|
23578
23665
|
|
|
23579
23666
|
component.dropdown.show();
|
|
@@ -24538,9 +24625,10 @@ class AuroDatePicker extends AuroElement {
|
|
|
24538
24625
|
|
|
24539
24626
|
// Show the month containing the selected date (or today) instead of
|
|
24540
24627
|
// whichever month the user last navigated to.
|
|
24628
|
+
// Respect consumer-provided centralDate/calendarStartDate if no value is set.
|
|
24541
24629
|
if (this.value && this.util.validDateStr(this.value, this.format)) {
|
|
24542
24630
|
this.calendarRenderUtil.updateCentralDate(this, this.formattedValue);
|
|
24543
|
-
} else if (!this.minDate) {
|
|
24631
|
+
} else if (!this.centralDate && !this.calendarStartDate && !this.minDate) {
|
|
24544
24632
|
this.calendarRenderUtil.updateCentralDate(this, new Date());
|
|
24545
24633
|
}
|
|
24546
24634
|
}
|
|
@@ -24831,6 +24919,11 @@ class AuroDatePicker extends AuroElement {
|
|
|
24831
24919
|
} else {
|
|
24832
24920
|
this.value = newDate;
|
|
24833
24921
|
}
|
|
24922
|
+
|
|
24923
|
+
// For single-date picker, close the bib and return focus to trigger after selection
|
|
24924
|
+
if (!this.range) {
|
|
24925
|
+
this.hideBib();
|
|
24926
|
+
}
|
|
24834
24927
|
}
|
|
24835
24928
|
}
|
|
24836
24929
|
|
|
@@ -25003,10 +25096,28 @@ class AuroDatePicker extends AuroElement {
|
|
|
25003
25096
|
this.setHasValue();
|
|
25004
25097
|
}
|
|
25005
25098
|
|
|
25099
|
+
if (changedProperties.has('blackoutDates')) {
|
|
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.
|
|
25104
|
+
if (this.calendar) {
|
|
25105
|
+
this.calendar.requestUpdate();
|
|
25106
|
+
this.dispatchEvent(new CustomEvent('auroDatePicker-newSlotContent'));
|
|
25107
|
+
}
|
|
25108
|
+
}
|
|
25109
|
+
|
|
25006
25110
|
if (changedProperties.has('valueEnd') && this.inputList[1]) {
|
|
25007
25111
|
|
|
25008
25112
|
this.formattedValueEnd = this.util.toNorthAmericanFormat(this.valueEnd, this.format);
|
|
25009
25113
|
|
|
25114
|
+
if (this.cellClickActive) {
|
|
25115
|
+
this.cellClickActive = false;
|
|
25116
|
+
this.wasCellClick = true;
|
|
25117
|
+
} else {
|
|
25118
|
+
this.wasCellClick = false;
|
|
25119
|
+
}
|
|
25120
|
+
|
|
25010
25121
|
// update the calendar
|
|
25011
25122
|
if (this.valueEnd && this.util.validDateStr(this.valueEnd, this.format)) {
|
|
25012
25123
|
this.calendar.dateTo = this.convertToWcValidTime(this.formattedValueEnd);
|
|
@@ -25695,18 +25806,20 @@ function blackoutLabelExample() {
|
|
|
25695
25806
|
const yyyy = current.getFullYear();
|
|
25696
25807
|
const slotDateStr = `${mm}_${dd}_${yyyy}`;
|
|
25697
25808
|
|
|
25698
|
-
//
|
|
25699
|
-
const
|
|
25809
|
+
// Mark every 3rd date as blackout (deterministic pattern)
|
|
25810
|
+
const dayOfMonth = current.getDate();
|
|
25811
|
+
const isSoldOut = dayOfMonth % 3 === 0;
|
|
25700
25812
|
|
|
25701
25813
|
if (isSoldOut) {
|
|
25702
|
-
blackoutDates.push(
|
|
25814
|
+
blackoutDates.push(`${yyyy}-${mm}-${dd}`);
|
|
25703
25815
|
|
|
25704
25816
|
const popover = document.createElement('span');
|
|
25705
25817
|
popover.setAttribute('slot', `popover_${slotDateStr}`);
|
|
25706
25818
|
popover.textContent = 'There are no tickets available for this date.';
|
|
25707
25819
|
blackoutDP.appendChild(popover);
|
|
25708
25820
|
} else {
|
|
25709
|
-
|
|
25821
|
+
// Use a fixed price based on day of month for deterministic output
|
|
25822
|
+
const price = 150 + (dayOfMonth * 17) % 400;
|
|
25710
25823
|
|
|
25711
25824
|
const dateSlot = document.createElement('span');
|
|
25712
25825
|
dateSlot.setAttribute('slot', `date_${slotDateStr}`);
|
|
@@ -88,7 +88,7 @@
|
|
|
88
88
|
</tr>
|
|
89
89
|
</tbody>
|
|
90
90
|
</table>
|
|
91
|
-
<auro-header level="3" id="keyEvents-
|
|
91
|
+
<auro-header level="3" id="keyEvents-calendarGrid">Calendar grid</auro-header>
|
|
92
92
|
<p>When the calendar bib is open, one date cell is the <em>active</em> cell (roving <code>tabindex="0"</code>). All other cells have <code>tabindex="-1"</code>. Arrow keys move the active cell without wrapping — when a boundary is reached the calendar navigates to the adjacent month.</p>
|
|
93
93
|
<table>
|
|
94
94
|
<thead>
|