@aurodesignsystem-dev/auro-formkit 0.0.0-pr1530.1 → 0.0.0-pr1531.0
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 +43 -21
- package/components/combobox/demo/getting-started.min.js +43 -21
- package/components/combobox/demo/index.min.js +43 -21
- package/components/combobox/dist/index.js +43 -21
- package/components/combobox/dist/registered.js +43 -21
- package/components/counter/demo/customize.min.js +2 -2
- package/components/counter/demo/index.min.js +2 -2
- package/components/counter/dist/index.js +2 -2
- package/components/counter/dist/registered.js +2 -2
- package/components/datepicker/demo/accessibility.md +4 -13
- package/components/datepicker/demo/api.md +1 -1
- package/components/datepicker/demo/customize.min.js +69 -193
- package/components/datepicker/demo/index.min.js +69 -193
- package/components/datepicker/demo/voiceover.md +1 -1
- package/components/datepicker/dist/auro-calendar-cell.d.ts +0 -11
- package/components/datepicker/dist/auro-calendar.d.ts +2 -26
- package/components/datepicker/dist/auro-datepicker.d.ts +1 -9
- package/components/datepicker/dist/index.js +69 -193
- package/components/datepicker/dist/registered.js +69 -193
- package/components/dropdown/demo/customize.min.js +1 -1
- package/components/dropdown/demo/getting-started.min.js +1 -1
- package/components/dropdown/demo/index.min.js +1 -1
- package/components/dropdown/dist/index.js +1 -1
- package/components/dropdown/dist/registered.js +1 -1
- package/components/form/demo/customize.min.js +159 -239
- package/components/form/demo/getting-started.min.js +159 -239
- package/components/form/demo/index.min.js +159 -239
- package/components/form/demo/registerDemoDeps.min.js +159 -239
- package/components/input/demo/customize.min.js +41 -19
- package/components/input/demo/getting-started.min.js +41 -19
- package/components/input/demo/index.min.js +41 -19
- package/components/input/dist/base-input.d.ts +20 -4
- package/components/input/dist/index.js +41 -19
- package/components/input/dist/registered.js +41 -19
- 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 +2 -2
- package/components/select/demo/getting-started.min.js +2 -2
- package/components/select/demo/index.min.js +2 -2
- package/components/select/dist/index.js +2 -2
- package/components/select/dist/registered.js +2 -2
- package/custom-elements.json +1619 -1595
- package/package.json +1 -1
|
@@ -11680,28 +11680,23 @@ var popoverVersion = '6.0.1';
|
|
|
11680
11680
|
* @returns {number|null} Local-midnight Unix timestamp (seconds), or null.
|
|
11681
11681
|
*/
|
|
11682
11682
|
function parseIsoToTimestamp(isoStr) {
|
|
11683
|
-
// Strict YYYY-MM-DD matcher with named groups. Rejects trailing garbage
|
|
11684
|
-
// ("2024x-01-01"), short segments ("2024-1-1"), and any non-digit
|
|
11685
|
-
// characters. `parseInt` alone accepted both because it stops at the
|
|
11686
|
-
// first non-digit and doesn't require a minimum length.
|
|
11687
|
-
const ISO_DATE_RE = /^(?<year>\d{4})-(?<month>\d{2})-(?<day>\d{2})$/u;
|
|
11688
|
-
const MAX_MONTH = 12;
|
|
11689
|
-
const MAX_DAY = 31;
|
|
11690
|
-
|
|
11691
11683
|
if (typeof isoStr !== 'string') {
|
|
11692
11684
|
return null;
|
|
11693
11685
|
}
|
|
11694
|
-
const
|
|
11695
|
-
if (
|
|
11686
|
+
const parts = isoStr.split('-');
|
|
11687
|
+
if (parts.length !== 3) {
|
|
11688
|
+
return null;
|
|
11689
|
+
}
|
|
11690
|
+
const year = parseInt(parts[0], 10);
|
|
11691
|
+
const month = parseInt(parts[1], 10);
|
|
11692
|
+
const day = parseInt(parts[2], 10);
|
|
11693
|
+
if (!Number.isFinite(year) || !Number.isFinite(month) || !Number.isFinite(day)) {
|
|
11696
11694
|
return null;
|
|
11697
11695
|
}
|
|
11698
|
-
const year = Number(match.groups.year);
|
|
11699
|
-
const month = Number(match.groups.month);
|
|
11700
|
-
const day = Number(match.groups.day);
|
|
11701
11696
|
// Reject overflow values like "2024-13-40" — JS `new Date(year, month, day)`
|
|
11702
11697
|
// silently normalizes those to a different calendar day, which would
|
|
11703
11698
|
// disable the wrong date if we let the result through.
|
|
11704
|
-
if (month < 1 || month >
|
|
11699
|
+
if (month < 1 || month > 12 || day < 1 || day > 31) {
|
|
11705
11700
|
return null;
|
|
11706
11701
|
}
|
|
11707
11702
|
const date = new Date(year, month - 1, day);
|
|
@@ -12279,36 +12274,13 @@ class AuroCalendarCell extends i$1 {
|
|
|
12279
12274
|
}
|
|
12280
12275
|
|
|
12281
12276
|
firstUpdated() {
|
|
12282
|
-
this._initFromAncestors();
|
|
12283
|
-
}
|
|
12284
|
-
|
|
12285
|
-
/**
|
|
12286
|
-
* Wires the cell to its ancestor calendar-month and calendar (and, via
|
|
12287
|
-
* the calendar, to the datepicker). Extracted from firstUpdated() so the
|
|
12288
|
-
* retry loop can re-attempt without recursively invoking a Lit lifecycle
|
|
12289
|
-
* method (which is outside the framework's contract).
|
|
12290
|
-
* @private
|
|
12291
|
-
* @returns {void}
|
|
12292
|
-
*/
|
|
12293
|
-
_initFromAncestors() {
|
|
12294
12277
|
const calendarMonth = this.runtimeUtils.closestElement('auro-formkit-calendar-month', this);
|
|
12295
12278
|
const calendar = this.runtimeUtils.closestElement('auro-formkit-calendar', calendarMonth);
|
|
12296
12279
|
|
|
12297
12280
|
if (!calendar) {
|
|
12298
|
-
|
|
12299
|
-
// to attach — but cap attempts so a permanently detached cell doesn't
|
|
12300
|
-
// spin forever. 10 turns is far more than any observed race needs.
|
|
12301
|
-
this._firstUpdatedRetries = (this._firstUpdatedRetries || 0) + 1;
|
|
12302
|
-
if (this._firstUpdatedRetries > 10) {
|
|
12303
|
-
return;
|
|
12304
|
-
}
|
|
12305
|
-
this._firstUpdatedRetryTimer = setTimeout(() => {
|
|
12306
|
-
this._firstUpdatedRetryTimer = null;
|
|
12307
|
-
this._initFromAncestors();
|
|
12308
|
-
}, 0);
|
|
12281
|
+
setTimeout(() => this.firstUpdated(), 0);
|
|
12309
12282
|
return;
|
|
12310
12283
|
}
|
|
12311
|
-
this._firstUpdatedRetries = 0;
|
|
12312
12284
|
this.calendar = calendar;
|
|
12313
12285
|
this.datepicker = calendar.datepicker;
|
|
12314
12286
|
this._slotContentHandler = () => {
|
|
@@ -12336,10 +12308,6 @@ class AuroCalendarCell extends i$1 {
|
|
|
12336
12308
|
if (this.datepicker && this._slotContentHandler) {
|
|
12337
12309
|
this.datepicker.removeEventListener('auroDatePicker-newSlotContent', this._slotContentHandler);
|
|
12338
12310
|
}
|
|
12339
|
-
if (this._firstUpdatedRetryTimer) {
|
|
12340
|
-
clearTimeout(this._firstUpdatedRetryTimer);
|
|
12341
|
-
this._firstUpdatedRetryTimer = null;
|
|
12342
|
-
}
|
|
12343
12311
|
}
|
|
12344
12312
|
|
|
12345
12313
|
/**
|
|
@@ -13717,7 +13685,7 @@ class AuroBibtemplate extends i$1 {
|
|
|
13717
13685
|
}
|
|
13718
13686
|
}
|
|
13719
13687
|
|
|
13720
|
-
var formkitVersion$2 = '
|
|
13688
|
+
var formkitVersion$2 = '202607022131';
|
|
13721
13689
|
|
|
13722
13690
|
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}
|
|
13723
13691
|
`,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}}
|
|
@@ -13856,10 +13824,7 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
13856
13824
|
* Support will be removed in a future major release.
|
|
13857
13825
|
* @private
|
|
13858
13826
|
*/
|
|
13859
|
-
|
|
13860
|
-
// empty array doesn't trigger the deprecation warning. Assignments from
|
|
13861
|
-
// consumers still route through the setter below.
|
|
13862
|
-
this._disabledDays = [];
|
|
13827
|
+
this.disabledDays = [];
|
|
13863
13828
|
|
|
13864
13829
|
/**
|
|
13865
13830
|
* @private
|
|
@@ -13892,44 +13857,6 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
13892
13857
|
this._calendarInstanceId = Date.now().toString(36);
|
|
13893
13858
|
}
|
|
13894
13859
|
|
|
13895
|
-
/**
|
|
13896
|
-
* @deprecated See constructor JSDoc — migrate to
|
|
13897
|
-
* `auro-datepicker.blackoutDates`. The getter/setter pair exists so the
|
|
13898
|
-
* one-time deprecation warning fires as soon as a consumer assigns a
|
|
13899
|
-
* non-empty array (empty assignments are ignored — an empty array is
|
|
13900
|
-
* indistinguishable from the constructor default and would produce a
|
|
13901
|
-
* spurious warning), rather than only when `_getBlackoutSet()` happens
|
|
13902
|
-
* to rebuild.
|
|
13903
|
-
* @returns {Array} The current legacy `disabledDays` array.
|
|
13904
|
-
*/
|
|
13905
|
-
get disabledDays() {
|
|
13906
|
-
return this._disabledDays;
|
|
13907
|
-
}
|
|
13908
|
-
|
|
13909
|
-
/**
|
|
13910
|
-
* @param {Array} value - The legacy `disabledDays` array to set.
|
|
13911
|
-
*/
|
|
13912
|
-
set disabledDays(value) {
|
|
13913
|
-
const oldValue = this._disabledDays;
|
|
13914
|
-
// Coerce non-arrays to `[]`. Consumers occasionally pass `null`
|
|
13915
|
-
// (Lit's Array attribute converter returns null for a missing/empty
|
|
13916
|
-
// attribute) or misuse the API; downstream code in
|
|
13917
|
-
// `auro-calendar-cell.isEnabled` calls `.findIndex()` on this value
|
|
13918
|
-
// without an Array.isArray guard, so a truthy non-array would throw
|
|
13919
|
-
// at render.
|
|
13920
|
-
const coerced = Array.isArray(value) ? value : [];
|
|
13921
|
-
if (coerced.length > 0) {
|
|
13922
|
-
this._warnDisabledDaysDeprecated();
|
|
13923
|
-
}
|
|
13924
|
-
this._disabledDays = coerced;
|
|
13925
|
-
// `disabledDays` is a Lit `@property({ type: Array })` on the
|
|
13926
|
-
// RangeDatepicker base class; Lit's generated setter (which we've
|
|
13927
|
-
// overridden here to insert the warning) is what normally invalidates
|
|
13928
|
-
// the reactive cycle. Re-invoke requestUpdate manually so consumer
|
|
13929
|
-
// assignments still re-render the calendar.
|
|
13930
|
-
this.requestUpdate('disabledDays', oldValue);
|
|
13931
|
-
}
|
|
13932
|
-
|
|
13933
13860
|
static get styles() {
|
|
13934
13861
|
return [
|
|
13935
13862
|
styleCss$7,
|
|
@@ -14475,19 +14402,8 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
14475
14402
|
/**
|
|
14476
14403
|
* Returns a memoized Set of blackout timestamps (seconds) drawn from both
|
|
14477
14404
|
* the legacy `disabledDays` array and the datepicker's ISO `blackoutDates`.
|
|
14478
|
-
*
|
|
14479
|
-
*
|
|
14480
|
-
* consumer reassigns the array (`el.blackoutDates = [...]`), matching
|
|
14481
|
-
* Lit's own reactivity semantics for array properties. In-place mutations
|
|
14482
|
-
* on the existing array (`push`, `splice`, index assignment) will NOT
|
|
14483
|
-
* invalidate the cache and the new entries will be silently ignored.
|
|
14484
|
-
* Consumers must reassign to update — see the JSDoc on
|
|
14485
|
-
* `auro-datepicker.blackoutDates` for the recommended pattern.
|
|
14486
|
-
*
|
|
14487
|
-
* A shallow-equality tier was considered but rejected: it would run
|
|
14488
|
-
* O(N) work on every cell render (this method is called per-cell via
|
|
14489
|
-
* `isBlackout()`) and still wouldn't catch same-length value swaps,
|
|
14490
|
-
* offering a false sense of safety.
|
|
14405
|
+
* The cache invalidates when either source array's reference changes, which
|
|
14406
|
+
* matches Lit's own reactive identity semantics for array properties.
|
|
14491
14407
|
* @private
|
|
14492
14408
|
* @returns {Set<Number>}
|
|
14493
14409
|
*/
|
|
@@ -14668,24 +14584,7 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
14668
14584
|
// rendered month(s) first so a single-month calendar does not pick a date
|
|
14669
14585
|
// that has no DOM cell. Determine the visible range based on centralDate and
|
|
14670
14586
|
// the number of rendered months.
|
|
14671
|
-
|
|
14672
|
-
// numCalendars is assigned inside renderAllCalendars(), which runs during
|
|
14673
|
-
// render() — so by the time the visible-change handler in updated()
|
|
14674
|
-
// calls computeActiveDate() in the same cycle, numCalendars is normally
|
|
14675
|
-
// set. Guard against the pre-first-render path anyway (e.g. any future
|
|
14676
|
-
// caller that reaches computeActiveDate before render() has run):
|
|
14677
|
-
// Math.max(undefined, 1) is NaN, which would silently skip the
|
|
14678
|
-
// visible-month scan below. Fall back to maximumRenderableMonths'
|
|
14679
|
-
// desktop default (1 for non-range, 2 for range) so the scan window is
|
|
14680
|
-
// correctly sized whenever numCalendars is not yet populated.
|
|
14681
|
-
let renderedMonths = null;
|
|
14682
|
-
|
|
14683
|
-
if (Number.isFinite(this.numCalendars) && this.numCalendars > 0) {
|
|
14684
|
-
renderedMonths = this.numCalendars;
|
|
14685
|
-
} else {
|
|
14686
|
-
renderedMonths = this.noRange ? 1 : 2;
|
|
14687
|
-
}
|
|
14688
|
-
|
|
14587
|
+
const renderedMonths = Math.max(this.numCalendars, 1);
|
|
14689
14588
|
const visibleAnchor = this.centralDateObject ?? new Date(now * 1000);
|
|
14690
14589
|
const visMonthStart = new Date(visibleAnchor.getFullYear(), visibleAnchor.getMonth(), 1);
|
|
14691
14590
|
visMonthStart.setHours(0, 0, 0, 0);
|
|
@@ -14955,8 +14854,6 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
14955
14854
|
let targetIndex = -1;
|
|
14956
14855
|
if (direction === 'next') {
|
|
14957
14856
|
targetIndex = currentIndex + 1;
|
|
14958
|
-
} else if (direction === 'prev') {
|
|
14959
|
-
targetIndex = currentIndex - 1;
|
|
14960
14857
|
}
|
|
14961
14858
|
|
|
14962
14859
|
if (targetIndex >= 0 && targetIndex < allCells.length) {
|
|
@@ -15561,10 +15458,6 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
15561
15458
|
* originally tried aria-live="polite" here, but VoiceOver treats
|
|
15562
15459
|
* polite as "wait until idle" — which never happens during active
|
|
15563
15460
|
* keyboard navigation — so the announcements were silently dropped.
|
|
15564
|
-
*
|
|
15565
|
-
* This is a documented deviation from WCAG 2.1 SC 4.1.3, which
|
|
15566
|
-
* prefers `polite` for status messages. See the "Documented
|
|
15567
|
-
* Deviation" section in components/datepicker/docs/pages/accessibility.md.
|
|
15568
15461
|
* @private
|
|
15569
15462
|
* @param {String} dateStr - The localized date string to announce.
|
|
15570
15463
|
* @returns {void}
|
|
@@ -19634,7 +19527,7 @@ let AuroHelpText$2 = class AuroHelpText extends i$1 {
|
|
|
19634
19527
|
}
|
|
19635
19528
|
};
|
|
19636
19529
|
|
|
19637
|
-
var formkitVersion$1 = '
|
|
19530
|
+
var formkitVersion$1 = '202607022131';
|
|
19638
19531
|
|
|
19639
19532
|
let AuroElement$2 = class AuroElement extends i$1 {
|
|
19640
19533
|
static get properties() {
|
|
@@ -31649,14 +31542,16 @@ class BaseInput extends AuroElement$1 {
|
|
|
31649
31542
|
this.label = 'Input label is undefined';
|
|
31650
31543
|
this.layout = 'classic';
|
|
31651
31544
|
this.locale = 'en-US';
|
|
31545
|
+
this._format = undefined;
|
|
31546
|
+
|
|
31547
|
+
/** @private */
|
|
31548
|
+
this._userSetFormat = false;
|
|
31652
31549
|
this.max = undefined;
|
|
31653
31550
|
this.maxLength = undefined;
|
|
31654
31551
|
this.min = undefined;
|
|
31655
31552
|
this.minLength = undefined;
|
|
31656
31553
|
this.noValidate = false;
|
|
31657
31554
|
this.onDark = false;
|
|
31658
|
-
// Raw values returned from the input mask before model normalization.
|
|
31659
|
-
this._rawMaskValue = undefined;
|
|
31660
31555
|
this.required = false;
|
|
31661
31556
|
this.setCustomValidityForType = undefined;
|
|
31662
31557
|
// Credit Card is intentionally excluded — its mask manages the cursor
|
|
@@ -31814,7 +31709,8 @@ class BaseInput extends AuroElement$1 {
|
|
|
31814
31709
|
*/
|
|
31815
31710
|
format: {
|
|
31816
31711
|
type: String,
|
|
31817
|
-
reflect: true
|
|
31712
|
+
reflect: true,
|
|
31713
|
+
noAccessor: true
|
|
31818
31714
|
},
|
|
31819
31715
|
|
|
31820
31716
|
/**
|
|
@@ -32152,6 +32048,34 @@ class BaseInput extends AuroElement$1 {
|
|
|
32152
32048
|
return this.max && dateFormatter.isValidDate(this.max) ? dateFormatter.stringToDateInstance(this.max) : undefined;
|
|
32153
32049
|
}
|
|
32154
32050
|
|
|
32051
|
+
get format() {
|
|
32052
|
+
return this._format;
|
|
32053
|
+
}
|
|
32054
|
+
|
|
32055
|
+
/**
|
|
32056
|
+
* Overrides LitElement's generated accessor so we can track whether the
|
|
32057
|
+
* consumer explicitly set `format`. Locale-derived updates use
|
|
32058
|
+
* `_setFormatFromLocale` instead, which skips this flag.
|
|
32059
|
+
*/
|
|
32060
|
+
set format(value) {
|
|
32061
|
+
const oldValue = this._format;
|
|
32062
|
+
this._format = value;
|
|
32063
|
+
this._userSetFormat = true;
|
|
32064
|
+
this.requestUpdate('format', oldValue);
|
|
32065
|
+
}
|
|
32066
|
+
|
|
32067
|
+
/**
|
|
32068
|
+
* Sets format without marking it as user-set. Used by locale auto-derive
|
|
32069
|
+
* so that a subsequent locale change can still update the format.
|
|
32070
|
+
* @private
|
|
32071
|
+
* @param {string} value
|
|
32072
|
+
*/
|
|
32073
|
+
_setFormatFromLocale(value) {
|
|
32074
|
+
const oldValue = this._format;
|
|
32075
|
+
this._format = value;
|
|
32076
|
+
this.requestUpdate('format', oldValue);
|
|
32077
|
+
}
|
|
32078
|
+
|
|
32155
32079
|
connectedCallback() {
|
|
32156
32080
|
super.connectedCallback();
|
|
32157
32081
|
|
|
@@ -32205,7 +32129,7 @@ class BaseInput extends AuroElement$1 {
|
|
|
32205
32129
|
// format silently misses the map and leaves `setCustomValidityForType`
|
|
32206
32130
|
// unset.
|
|
32207
32131
|
if (this.format) {
|
|
32208
|
-
this.
|
|
32132
|
+
this._setFormatFromLocale(this.format.toLowerCase());
|
|
32209
32133
|
}
|
|
32210
32134
|
|
|
32211
32135
|
// use validity message override if declared when initializing the component
|
|
@@ -32314,12 +32238,10 @@ class BaseInput extends AuroElement$1 {
|
|
|
32314
32238
|
updated(changedProperties) {
|
|
32315
32239
|
super.updated(changedProperties);
|
|
32316
32240
|
|
|
32317
|
-
// When locale changes
|
|
32318
|
-
// Only runs if the current format is still the previous locale's default (not user-overridden).
|
|
32241
|
+
// When locale changes, auto-derive format unless the consumer explicitly set one.
|
|
32319
32242
|
if (changedProperties.has('locale') && !changedProperties.has('format') && this.type === 'date') {
|
|
32320
|
-
|
|
32321
|
-
|
|
32322
|
-
this.format = getDateFormatFromLocale(this.locale);
|
|
32243
|
+
if (!this._userSetFormat) {
|
|
32244
|
+
this._setFormatFromLocale(getDateFormatFromLocale(this.locale));
|
|
32323
32245
|
}
|
|
32324
32246
|
}
|
|
32325
32247
|
|
|
@@ -32490,9 +32412,6 @@ class BaseInput extends AuroElement$1 {
|
|
|
32490
32412
|
this.maskInstance.on('accept', () => {
|
|
32491
32413
|
if (this._configuringMask) return;
|
|
32492
32414
|
this.value = this.util.toModelValue(this.maskInstance.value, this.format);
|
|
32493
|
-
if (this.type === "date") {
|
|
32494
|
-
this._rawMaskValue = this.maskInstance.value;
|
|
32495
|
-
}
|
|
32496
32415
|
});
|
|
32497
32416
|
|
|
32498
32417
|
// Mask fires 'complete' on the restore step below for any value that
|
|
@@ -32500,9 +32419,6 @@ class BaseInput extends AuroElement$1 {
|
|
|
32500
32419
|
this.maskInstance.on('complete', () => {
|
|
32501
32420
|
if (this._configuringMask) return;
|
|
32502
32421
|
this.value = this.util.toModelValue(this.maskInstance.value, this.format);
|
|
32503
|
-
if (this.type === "date") {
|
|
32504
|
-
this._rawMaskValue = this.maskInstance.value;
|
|
32505
|
-
}
|
|
32506
32422
|
});
|
|
32507
32423
|
|
|
32508
32424
|
// Write existingValue through the mask (not the input directly) so
|
|
@@ -32739,8 +32655,7 @@ class BaseInput extends AuroElement$1 {
|
|
|
32739
32655
|
|
|
32740
32656
|
// Set default date format if type=date and no format is defined
|
|
32741
32657
|
if (this.type === "date" && !this.format) {
|
|
32742
|
-
|
|
32743
|
-
this.format = this.util.getDateMaskFromLocale().toLowerCase();
|
|
32658
|
+
this._setFormatFromLocale(this.util.getDateMaskFromLocale().toLowerCase());
|
|
32744
32659
|
this.util.updateFormat(this.format);
|
|
32745
32660
|
}
|
|
32746
32661
|
}
|
|
@@ -32769,7 +32684,7 @@ class BaseInput extends AuroElement$1 {
|
|
|
32769
32684
|
const creditCard = this.matchInputValueToCreditCard();
|
|
32770
32685
|
const previousFormat = this.format;
|
|
32771
32686
|
|
|
32772
|
-
this.
|
|
32687
|
+
this._setFormatFromLocale(creditCard.maskFormat);
|
|
32773
32688
|
|
|
32774
32689
|
this.maxLength = creditCard.formatLength;
|
|
32775
32690
|
this.minLength = creditCard.formatMinLength;
|
|
@@ -33243,7 +33158,7 @@ let AuroHelpText$1 = class AuroHelpText extends i$1 {
|
|
|
33243
33158
|
}
|
|
33244
33159
|
};
|
|
33245
33160
|
|
|
33246
|
-
var formkitVersion = '
|
|
33161
|
+
var formkitVersion = '202607022131';
|
|
33247
33162
|
|
|
33248
33163
|
// Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
|
|
33249
33164
|
// See LICENSE in the project root for license information.
|
|
@@ -34620,15 +34535,6 @@ const datepickerKeyboardStrategy = {
|
|
|
34620
34535
|
evt.stopPropagation();
|
|
34621
34536
|
evt.preventDefault();
|
|
34622
34537
|
|
|
34623
|
-
// Signal to the visibility-change handler in auro-datepicker.js that
|
|
34624
|
-
// focus should be restored to the trigger regardless of hasFocus.
|
|
34625
|
-
// hidePopover() (desktop non-modal path) does not auto-restore focus,
|
|
34626
|
-
// and hiding the grid's popover ancestor drops focus to <body>. That
|
|
34627
|
-
// synchronously fires focusout on the datepicker host — clearing
|
|
34628
|
-
// hasFocus — before updated() runs, which would otherwise skip the
|
|
34629
|
-
// input refocus. Native <dialog>.close() (modal path) restores focus
|
|
34630
|
-
// itself, but the flag is harmless there.
|
|
34631
|
-
component._restoreFocusOnClose = true;
|
|
34632
34538
|
component.hideBib();
|
|
34633
34539
|
},
|
|
34634
34540
|
|
|
@@ -34902,14 +34808,6 @@ class AuroDatePicker extends AuroElement {
|
|
|
34902
34808
|
|
|
34903
34809
|
/**
|
|
34904
34810
|
* Array of dates that cannot be selected. Dates should be in ISO format (YYYY-MM-DD).
|
|
34905
|
-
*
|
|
34906
|
-
* **Immutable update required.** The datepicker treats this array as
|
|
34907
|
-
* immutable and memoizes a lookup Set keyed on the array's reference
|
|
34908
|
-
* identity — matching Lit's own reactivity semantics for array
|
|
34909
|
-
* properties. In-place mutations (`blackoutDates.push(...)`,
|
|
34910
|
-
* `blackoutDates[i] = ...`, `blackoutDates.splice(...)`) will not
|
|
34911
|
-
* invalidate the cache and the new entries will be silently ignored.
|
|
34912
|
-
* To update, reassign the property: `el.blackoutDates = [...el.blackoutDates, '2024-12-25']`.
|
|
34913
34811
|
*/
|
|
34914
34812
|
blackoutDates: {
|
|
34915
34813
|
type: Array,
|
|
@@ -35795,13 +35693,12 @@ class AuroDatePicker extends AuroElement {
|
|
|
35795
35693
|
this.calendar.activeCellDate = null;
|
|
35796
35694
|
|
|
35797
35695
|
// Show the month containing the selected date (or today) instead of
|
|
35798
|
-
// whichever month the user last navigated to.
|
|
35799
|
-
// updateCentralDate so centralDate stays first-of-month.
|
|
35696
|
+
// whichever month the user last navigated to.
|
|
35800
35697
|
// Respect consumer-provided centralDate/calendarStartDate if no value is set.
|
|
35801
35698
|
if (this.valueObject) {
|
|
35802
|
-
this.
|
|
35699
|
+
this.centralDate = this.value;
|
|
35803
35700
|
} else if (!this.centralDate && !this.calendarStartDate && !this.minDate) {
|
|
35804
|
-
this.
|
|
35701
|
+
this.centralDate = dateFormatter$1.toISOFormatString(new Date());
|
|
35805
35702
|
}
|
|
35806
35703
|
}
|
|
35807
35704
|
|
|
@@ -35859,15 +35756,8 @@ class AuroDatePicker extends AuroElement {
|
|
|
35859
35756
|
// Always clear the inert flag. Only restore focus to the input when the datepicker
|
|
35860
35757
|
// still has focus (e.g. Escape, date selected) — not when the user tabbed away,
|
|
35861
35758
|
// which would pull them back and require extra Tab presses to escape.
|
|
35862
|
-
//
|
|
35863
|
-
// `_restoreFocusOnClose` is set by the Escape handler in
|
|
35864
|
-
// datepickerKeyboardStrategy.js to force restore even when hasFocus
|
|
35865
|
-
// has already been cleared — hidePopover() (desktop non-modal path)
|
|
35866
|
-
// can drop focus to <body> before this update fires.
|
|
35867
35759
|
this.dropdown.trigger.inert = false;
|
|
35868
|
-
|
|
35869
|
-
this._restoreFocusOnClose = false;
|
|
35870
|
-
if (shouldRestoreFocus) {
|
|
35760
|
+
if (this.hasFocus) {
|
|
35871
35761
|
requestAnimationFrame(() => {
|
|
35872
35762
|
if (!this.dropdown.isPopoverVisible) {
|
|
35873
35763
|
this.inputList[0].focus();
|
|
@@ -36313,18 +36203,6 @@ class AuroDatePicker extends AuroElement {
|
|
|
36313
36203
|
this.calendar.requestUpdate();
|
|
36314
36204
|
this.dispatchEvent(new CustomEvent('auroDatePicker-newSlotContent'));
|
|
36315
36205
|
}
|
|
36316
|
-
|
|
36317
|
-
// Range invariant: if a value change (from click or programmatic) has
|
|
36318
|
-
// moved start past end, clear valueEnd here so both properties land in
|
|
36319
|
-
// the SAME reactive cycle. Doing it in updated() would schedule a
|
|
36320
|
-
// second cycle after cellClickActive/wasCellClick has already been
|
|
36321
|
-
// consumed by the value branch, leaving the valueEnd branch to run
|
|
36322
|
-
// with a stale handshake and racing with any intervening programmatic
|
|
36323
|
-
// value assignments.
|
|
36324
|
-
if ((changedProperties.has('value') || changedProperties.has('valueEnd')) &&
|
|
36325
|
-
this.valueObject && this.valueEndObject && this.valueObject > this.valueEndObject) {
|
|
36326
|
-
this.valueEnd = undefined;
|
|
36327
|
-
}
|
|
36328
36206
|
}
|
|
36329
36207
|
|
|
36330
36208
|
updated(changedProperties) {
|
|
@@ -36392,12 +36270,8 @@ class AuroDatePicker extends AuroElement {
|
|
|
36392
36270
|
|
|
36393
36271
|
if (this.value && this.value.length === this.inputList[0].lengthForType && !(this.wasCellClick && this.range)) {
|
|
36394
36272
|
// Skip centralDate update when user clicked a cell in range mode
|
|
36395
|
-
// to prevent the displayed months from shifting
|
|
36396
|
-
|
|
36397
|
-
// assignment of the raw value briefly holds a mid-month string
|
|
36398
|
-
// and violates the invariant that observers (e.g. calendar sync)
|
|
36399
|
-
// rely on.
|
|
36400
|
-
this.calendarRenderUtil.updateCentralDate(this, this.value);
|
|
36273
|
+
// to prevent the displayed months from shifting
|
|
36274
|
+
this.centralDate = this.value;
|
|
36401
36275
|
}
|
|
36402
36276
|
|
|
36403
36277
|
this.setHasValue();
|
|
@@ -36455,10 +36329,8 @@ class AuroDatePicker extends AuroElement {
|
|
|
36455
36329
|
|
|
36456
36330
|
if (this.valueEnd && this.valueEnd.length === this.inputList[1].lengthForType && !this.wasCellClick) {
|
|
36457
36331
|
// Skip centralDate update when user clicked a cell in range mode
|
|
36458
|
-
// to prevent the displayed months from shifting
|
|
36459
|
-
|
|
36460
|
-
// (see matching comment in the value branch above).
|
|
36461
|
-
this.calendarRenderUtil.updateCentralDate(this, this.valueEnd);
|
|
36332
|
+
// to prevent the displayed months from shifting
|
|
36333
|
+
this.centralDate = this.valueEnd;
|
|
36462
36334
|
}
|
|
36463
36335
|
|
|
36464
36336
|
this.validate();
|
|
@@ -36482,6 +36354,10 @@ class AuroDatePicker extends AuroElement {
|
|
|
36482
36354
|
this.validation.validate(lastInput, true);
|
|
36483
36355
|
}
|
|
36484
36356
|
|
|
36357
|
+
if (this.valueObject && this.valueEndObject && this.valueObject > this.valueEndObject) {
|
|
36358
|
+
this.valueEnd = undefined;
|
|
36359
|
+
}
|
|
36360
|
+
|
|
36485
36361
|
// This resets the datepicker when the minDate is set to a new value that is
|
|
36486
36362
|
// a later date than the current value date
|
|
36487
36363
|
if (changedProperties.has('minDate') && this.minDate) {
|
|
@@ -47,7 +47,7 @@
|
|
|
47
47
|
<li><em>"current date"</em> for today's date (via <code>aria-current="date"</code>)</li>
|
|
48
48
|
<li>Selection state: <em>"selected"</em> or not (via <code>aria-selected</code>)</li>
|
|
49
49
|
</ul>
|
|
50
|
-
<p>Out-of-range cells (outside min/max bounds)
|
|
50
|
+
<p>Out-of-range cells (outside min/max bounds) are completely hidden from VoiceOver with <code>aria-hidden="true"</code>.</p>
|
|
51
51
|
<auro-header level="3" id="voiceOverDateSelection">Date Selection</auro-header>
|
|
52
52
|
<p>When a date is selected, an <code>aria-live="assertive"</code> region announces the selected date (e.g. <em>"Thursday, May 14, 2026"</em>). For range datepickers, both the start and end selections are announced.</p>
|
|
53
53
|
<auro-header level="3" id="voiceOverDialogName">Dialog Name</auro-header>
|
|
@@ -219,17 +219,6 @@ export class AuroCalendarCell extends LitElement {
|
|
|
219
219
|
*/
|
|
220
220
|
private handleSlotContent;
|
|
221
221
|
firstUpdated(): void;
|
|
222
|
-
/**
|
|
223
|
-
* Wires the cell to its ancestor calendar-month and calendar (and, via
|
|
224
|
-
* the calendar, to the datepicker). Extracted from firstUpdated() so the
|
|
225
|
-
* retry loop can re-attempt without recursively invoking a Lit lifecycle
|
|
226
|
-
* method (which is outside the framework's contract).
|
|
227
|
-
* @private
|
|
228
|
-
* @returns {void}
|
|
229
|
-
*/
|
|
230
|
-
private _initFromAncestors;
|
|
231
|
-
_firstUpdatedRetries: any;
|
|
232
|
-
_firstUpdatedRetryTimer: any;
|
|
233
222
|
calendar: any;
|
|
234
223
|
datepicker: any;
|
|
235
224
|
_slotContentHandler: (() => void) | undefined;
|
|
@@ -173,15 +173,6 @@ export class AuroCalendar extends RangeDatepicker {
|
|
|
173
173
|
* @private
|
|
174
174
|
*/
|
|
175
175
|
private calendarRangeMonths;
|
|
176
|
-
/**
|
|
177
|
-
* @deprecated Use `auro-datepicker.blackoutDates` (an array of
|
|
178
|
-
* `YYYY-MM-DD` ISO strings) instead. This legacy array of Unix
|
|
179
|
-
* timestamps is still honored for backward compatibility but emits a
|
|
180
|
-
* one-time `console.debug` the first time a non-empty value is observed.
|
|
181
|
-
* Support will be removed in a future major release.
|
|
182
|
-
* @private
|
|
183
|
-
*/
|
|
184
|
-
private _disabledDays;
|
|
185
176
|
/**
|
|
186
177
|
* @private
|
|
187
178
|
*/
|
|
@@ -346,19 +337,8 @@ export class AuroCalendar extends RangeDatepicker {
|
|
|
346
337
|
/**
|
|
347
338
|
* Returns a memoized Set of blackout timestamps (seconds) drawn from both
|
|
348
339
|
* the legacy `disabledDays` array and the datepicker's ISO `blackoutDates`.
|
|
349
|
-
*
|
|
350
|
-
*
|
|
351
|
-
* consumer reassigns the array (`el.blackoutDates = [...]`), matching
|
|
352
|
-
* Lit's own reactivity semantics for array properties. In-place mutations
|
|
353
|
-
* on the existing array (`push`, `splice`, index assignment) will NOT
|
|
354
|
-
* invalidate the cache and the new entries will be silently ignored.
|
|
355
|
-
* Consumers must reassign to update — see the JSDoc on
|
|
356
|
-
* `auro-datepicker.blackoutDates` for the recommended pattern.
|
|
357
|
-
*
|
|
358
|
-
* A shallow-equality tier was considered but rejected: it would run
|
|
359
|
-
* O(N) work on every cell render (this method is called per-cell via
|
|
360
|
-
* `isBlackout()`) and still wouldn't catch same-length value swaps,
|
|
361
|
-
* offering a false sense of safety.
|
|
340
|
+
* The cache invalidates when either source array's reference changes, which
|
|
341
|
+
* matches Lit's own reactive identity semantics for array properties.
|
|
362
342
|
* @private
|
|
363
343
|
* @returns {Set<Number>}
|
|
364
344
|
*/
|
|
@@ -608,10 +588,6 @@ export class AuroCalendar extends RangeDatepicker {
|
|
|
608
588
|
* originally tried aria-live="polite" here, but VoiceOver treats
|
|
609
589
|
* polite as "wait until idle" — which never happens during active
|
|
610
590
|
* keyboard navigation — so the announcements were silently dropped.
|
|
611
|
-
*
|
|
612
|
-
* This is a documented deviation from WCAG 2.1 SC 4.1.3, which
|
|
613
|
-
* prefers `polite` for status messages. See the "Documented
|
|
614
|
-
* Deviation" section in components/datepicker/docs/pages/accessibility.md.
|
|
615
591
|
* @private
|
|
616
592
|
* @param {String} dateStr - The localized date string to announce.
|
|
617
593
|
* @returns {void}
|
|
@@ -54,14 +54,6 @@ export class AuroDatePicker extends AuroElement {
|
|
|
54
54
|
};
|
|
55
55
|
/**
|
|
56
56
|
* Array of dates that cannot be selected. Dates should be in ISO format (YYYY-MM-DD).
|
|
57
|
-
*
|
|
58
|
-
* **Immutable update required.** The datepicker treats this array as
|
|
59
|
-
* immutable and memoizes a lookup Set keyed on the array's reference
|
|
60
|
-
* identity — matching Lit's own reactivity semantics for array
|
|
61
|
-
* properties. In-place mutations (`blackoutDates.push(...)`,
|
|
62
|
-
* `blackoutDates[i] = ...`, `blackoutDates.splice(...)`) will not
|
|
63
|
-
* invalidate the cache and the new entries will be silently ignored.
|
|
64
|
-
* To update, reassign the property: `el.blackoutDates = [...el.blackoutDates, '2024-12-25']`.
|
|
65
57
|
*/
|
|
66
58
|
blackoutDates: {
|
|
67
59
|
type: ArrayConstructor;
|
|
@@ -753,7 +745,7 @@ export class AuroDatePicker extends AuroElement {
|
|
|
753
745
|
*/
|
|
754
746
|
private configureDropdown;
|
|
755
747
|
dropdown: any;
|
|
756
|
-
|
|
748
|
+
centralDate: any;
|
|
757
749
|
/**
|
|
758
750
|
* Binds all behavior needed to the input after rendering.
|
|
759
751
|
* @private
|