@aurodesignsystem-dev/auro-formkit 0.0.0-pr1524.1 → 0.0.0-pr1530.1
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 +24 -79
- package/components/combobox/demo/getting-started.min.js +24 -79
- package/components/combobox/demo/index.min.js +24 -79
- package/components/combobox/dist/auro-combobox.d.ts +0 -10
- package/components/combobox/dist/index.js +24 -79
- package/components/combobox/dist/registered.js +24 -79
- 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 +13 -4
- package/components/datepicker/demo/api.md +1 -1
- package/components/datepicker/demo/customize.min.js +192 -44
- package/components/datepicker/demo/index.min.js +192 -44
- package/components/datepicker/demo/voiceover.md +1 -1
- package/components/datepicker/dist/auro-calendar-cell.d.ts +11 -0
- package/components/datepicker/dist/auro-calendar.d.ts +26 -2
- package/components/datepicker/dist/auro-datepicker.d.ts +9 -1
- package/components/datepicker/dist/index.js +192 -44
- package/components/datepicker/dist/registered.js +192 -44
- 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 +254 -205
- package/components/form/demo/getting-started.min.js +254 -205
- package/components/form/demo/index.min.js +254 -205
- package/components/form/demo/registerDemoDeps.min.js +254 -205
- package/components/input/demo/customize.min.js +19 -17
- package/components/input/demo/getting-started.min.js +19 -17
- package/components/input/demo/index.min.js +19 -17
- package/components/input/dist/index.js +19 -17
- package/components/input/dist/registered.js +19 -17
- 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 +16 -62
- package/components/select/demo/getting-started.min.js +16 -62
- package/components/select/demo/index.min.js +16 -62
- package/components/select/dist/auro-select.d.ts +0 -6
- package/components/select/dist/index.js +16 -62
- package/components/select/dist/registered.js +16 -62
- package/custom-elements.json +38 -22
- package/package.json +1 -1
|
@@ -11680,23 +11680,28 @@ 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
|
+
|
|
11683
11691
|
if (typeof isoStr !== 'string') {
|
|
11684
11692
|
return null;
|
|
11685
11693
|
}
|
|
11686
|
-
const
|
|
11687
|
-
if (
|
|
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)) {
|
|
11694
|
+
const match = ISO_DATE_RE.exec(isoStr);
|
|
11695
|
+
if (!match) {
|
|
11694
11696
|
return null;
|
|
11695
11697
|
}
|
|
11698
|
+
const year = Number(match.groups.year);
|
|
11699
|
+
const month = Number(match.groups.month);
|
|
11700
|
+
const day = Number(match.groups.day);
|
|
11696
11701
|
// Reject overflow values like "2024-13-40" — JS `new Date(year, month, day)`
|
|
11697
11702
|
// silently normalizes those to a different calendar day, which would
|
|
11698
11703
|
// disable the wrong date if we let the result through.
|
|
11699
|
-
if (month < 1 || month >
|
|
11704
|
+
if (month < 1 || month > MAX_MONTH || day < 1 || day > MAX_DAY) {
|
|
11700
11705
|
return null;
|
|
11701
11706
|
}
|
|
11702
11707
|
const date = new Date(year, month - 1, day);
|
|
@@ -12274,13 +12279,36 @@ class AuroCalendarCell extends i$1 {
|
|
|
12274
12279
|
}
|
|
12275
12280
|
|
|
12276
12281
|
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() {
|
|
12277
12294
|
const calendarMonth = this.runtimeUtils.closestElement('auro-formkit-calendar-month', this);
|
|
12278
12295
|
const calendar = this.runtimeUtils.closestElement('auro-formkit-calendar', calendarMonth);
|
|
12279
12296
|
|
|
12280
12297
|
if (!calendar) {
|
|
12281
|
-
|
|
12298
|
+
// Retry on the next event-loop turn to give the ancestor chain a chance
|
|
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);
|
|
12282
12309
|
return;
|
|
12283
12310
|
}
|
|
12311
|
+
this._firstUpdatedRetries = 0;
|
|
12284
12312
|
this.calendar = calendar;
|
|
12285
12313
|
this.datepicker = calendar.datepicker;
|
|
12286
12314
|
this._slotContentHandler = () => {
|
|
@@ -12308,6 +12336,10 @@ class AuroCalendarCell extends i$1 {
|
|
|
12308
12336
|
if (this.datepicker && this._slotContentHandler) {
|
|
12309
12337
|
this.datepicker.removeEventListener('auroDatePicker-newSlotContent', this._slotContentHandler);
|
|
12310
12338
|
}
|
|
12339
|
+
if (this._firstUpdatedRetryTimer) {
|
|
12340
|
+
clearTimeout(this._firstUpdatedRetryTimer);
|
|
12341
|
+
this._firstUpdatedRetryTimer = null;
|
|
12342
|
+
}
|
|
12311
12343
|
}
|
|
12312
12344
|
|
|
12313
12345
|
/**
|
|
@@ -13685,7 +13717,7 @@ class AuroBibtemplate extends i$1 {
|
|
|
13685
13717
|
}
|
|
13686
13718
|
}
|
|
13687
13719
|
|
|
13688
|
-
var formkitVersion$2 = '
|
|
13720
|
+
var formkitVersion$2 = '202607022134';
|
|
13689
13721
|
|
|
13690
13722
|
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}
|
|
13691
13723
|
`,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}}
|
|
@@ -13824,7 +13856,10 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
13824
13856
|
* Support will be removed in a future major release.
|
|
13825
13857
|
* @private
|
|
13826
13858
|
*/
|
|
13827
|
-
|
|
13859
|
+
// Initialize the backing field directly so the constructor's default
|
|
13860
|
+
// empty array doesn't trigger the deprecation warning. Assignments from
|
|
13861
|
+
// consumers still route through the setter below.
|
|
13862
|
+
this._disabledDays = [];
|
|
13828
13863
|
|
|
13829
13864
|
/**
|
|
13830
13865
|
* @private
|
|
@@ -13857,6 +13892,44 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
13857
13892
|
this._calendarInstanceId = Date.now().toString(36);
|
|
13858
13893
|
}
|
|
13859
13894
|
|
|
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
|
+
|
|
13860
13933
|
static get styles() {
|
|
13861
13934
|
return [
|
|
13862
13935
|
styleCss$7,
|
|
@@ -14402,8 +14475,19 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
14402
14475
|
/**
|
|
14403
14476
|
* Returns a memoized Set of blackout timestamps (seconds) drawn from both
|
|
14404
14477
|
* the legacy `disabledDays` array and the datepicker's ISO `blackoutDates`.
|
|
14405
|
-
*
|
|
14406
|
-
*
|
|
14478
|
+
*
|
|
14479
|
+
* The cache invalidates on **reference identity** — only when the
|
|
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.
|
|
14407
14491
|
* @private
|
|
14408
14492
|
* @returns {Set<Number>}
|
|
14409
14493
|
*/
|
|
@@ -14584,7 +14668,24 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
14584
14668
|
// rendered month(s) first so a single-month calendar does not pick a date
|
|
14585
14669
|
// that has no DOM cell. Determine the visible range based on centralDate and
|
|
14586
14670
|
// the number of rendered months.
|
|
14587
|
-
|
|
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
|
+
|
|
14588
14689
|
const visibleAnchor = this.centralDateObject ?? new Date(now * 1000);
|
|
14589
14690
|
const visMonthStart = new Date(visibleAnchor.getFullYear(), visibleAnchor.getMonth(), 1);
|
|
14590
14691
|
visMonthStart.setHours(0, 0, 0, 0);
|
|
@@ -14854,6 +14955,8 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
14854
14955
|
let targetIndex = -1;
|
|
14855
14956
|
if (direction === 'next') {
|
|
14856
14957
|
targetIndex = currentIndex + 1;
|
|
14958
|
+
} else if (direction === 'prev') {
|
|
14959
|
+
targetIndex = currentIndex - 1;
|
|
14857
14960
|
}
|
|
14858
14961
|
|
|
14859
14962
|
if (targetIndex >= 0 && targetIndex < allCells.length) {
|
|
@@ -15458,6 +15561,10 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
15458
15561
|
* originally tried aria-live="polite" here, but VoiceOver treats
|
|
15459
15562
|
* polite as "wait until idle" — which never happens during active
|
|
15460
15563
|
* 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.
|
|
15461
15568
|
* @private
|
|
15462
15569
|
* @param {String} dateStr - The localized date string to announce.
|
|
15463
15570
|
* @returns {void}
|
|
@@ -19527,7 +19634,7 @@ let AuroHelpText$2 = class AuroHelpText extends i$1 {
|
|
|
19527
19634
|
}
|
|
19528
19635
|
};
|
|
19529
19636
|
|
|
19530
|
-
var formkitVersion$1 = '
|
|
19637
|
+
var formkitVersion$1 = '202607022134';
|
|
19531
19638
|
|
|
19532
19639
|
let AuroElement$2 = class AuroElement extends i$1 {
|
|
19533
19640
|
static get properties() {
|
|
@@ -32416,17 +32523,14 @@ class BaseInput extends AuroElement$1 {
|
|
|
32416
32523
|
* @returns {void}
|
|
32417
32524
|
*/
|
|
32418
32525
|
notifyValueChanged() {
|
|
32419
|
-
|
|
32420
|
-
|
|
32421
|
-
|
|
32422
|
-
// it from genuine user typing and skip clobbering their own
|
|
32423
|
-
// programmatic state during init-time renders.
|
|
32424
|
-
const inputEvent = new Event('input', {
|
|
32526
|
+
let inputEvent = null;
|
|
32527
|
+
|
|
32528
|
+
inputEvent = new Event('input', {
|
|
32425
32529
|
bubbles: true,
|
|
32426
32530
|
composed: true,
|
|
32427
32531
|
});
|
|
32428
|
-
inputEvent.isProgrammatic = true;
|
|
32429
32532
|
|
|
32533
|
+
// Dispatched event to alert outside shadow DOM context of event firing.
|
|
32430
32534
|
this.dispatchEvent(inputEvent);
|
|
32431
32535
|
}
|
|
32432
32536
|
|
|
@@ -33139,7 +33243,7 @@ let AuroHelpText$1 = class AuroHelpText extends i$1 {
|
|
|
33139
33243
|
}
|
|
33140
33244
|
};
|
|
33141
33245
|
|
|
33142
|
-
var formkitVersion = '
|
|
33246
|
+
var formkitVersion = '202607022134';
|
|
33143
33247
|
|
|
33144
33248
|
// Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
|
|
33145
33249
|
// See LICENSE in the project root for license information.
|
|
@@ -33425,15 +33529,20 @@ class AuroInput extends BaseInput {
|
|
|
33425
33529
|
* @returns {void}
|
|
33426
33530
|
*/
|
|
33427
33531
|
checkDisplayValueSlotChange() {
|
|
33428
|
-
|
|
33429
|
-
|
|
33430
|
-
//
|
|
33431
|
-
|
|
33432
|
-
|
|
33433
|
-
|
|
33434
|
-
|
|
33532
|
+
let nodes = this.shadowRoot.querySelector('slot[name="displayValue"]').assignedNodes();
|
|
33533
|
+
|
|
33534
|
+
// Handle when DisplayValue is multi-level slot content (e.g. combobox passing displayValue to input)
|
|
33535
|
+
if (nodes && nodes[0] && nodes[0].tagName === 'SLOT') {
|
|
33536
|
+
nodes = nodes[0].assignedNodes();
|
|
33537
|
+
}
|
|
33538
|
+
|
|
33539
|
+
let hasContent = false;
|
|
33435
33540
|
|
|
33436
|
-
|
|
33541
|
+
if (nodes.length > 0) {
|
|
33542
|
+
hasContent = true;
|
|
33543
|
+
}
|
|
33544
|
+
|
|
33545
|
+
this.hasDisplayValueContent = hasContent;
|
|
33437
33546
|
}
|
|
33438
33547
|
|
|
33439
33548
|
firstUpdated() {
|
|
@@ -34511,6 +34620,15 @@ const datepickerKeyboardStrategy = {
|
|
|
34511
34620
|
evt.stopPropagation();
|
|
34512
34621
|
evt.preventDefault();
|
|
34513
34622
|
|
|
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;
|
|
34514
34632
|
component.hideBib();
|
|
34515
34633
|
},
|
|
34516
34634
|
|
|
@@ -34784,6 +34902,14 @@ class AuroDatePicker extends AuroElement {
|
|
|
34784
34902
|
|
|
34785
34903
|
/**
|
|
34786
34904
|
* 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']`.
|
|
34787
34913
|
*/
|
|
34788
34914
|
blackoutDates: {
|
|
34789
34915
|
type: Array,
|
|
@@ -35669,12 +35795,13 @@ class AuroDatePicker extends AuroElement {
|
|
|
35669
35795
|
this.calendar.activeCellDate = null;
|
|
35670
35796
|
|
|
35671
35797
|
// Show the month containing the selected date (or today) instead of
|
|
35672
|
-
// whichever month the user last navigated to.
|
|
35798
|
+
// whichever month the user last navigated to. Route through
|
|
35799
|
+
// updateCentralDate so centralDate stays first-of-month.
|
|
35673
35800
|
// Respect consumer-provided centralDate/calendarStartDate if no value is set.
|
|
35674
35801
|
if (this.valueObject) {
|
|
35675
|
-
this.
|
|
35802
|
+
this.calendarRenderUtil.updateCentralDate(this, this.value);
|
|
35676
35803
|
} else if (!this.centralDate && !this.calendarStartDate && !this.minDate) {
|
|
35677
|
-
this.
|
|
35804
|
+
this.calendarRenderUtil.updateCentralDate(this, new Date());
|
|
35678
35805
|
}
|
|
35679
35806
|
}
|
|
35680
35807
|
|
|
@@ -35732,8 +35859,15 @@ class AuroDatePicker extends AuroElement {
|
|
|
35732
35859
|
// Always clear the inert flag. Only restore focus to the input when the datepicker
|
|
35733
35860
|
// still has focus (e.g. Escape, date selected) — not when the user tabbed away,
|
|
35734
35861
|
// 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.
|
|
35735
35867
|
this.dropdown.trigger.inert = false;
|
|
35736
|
-
|
|
35868
|
+
const shouldRestoreFocus = this.hasFocus || this._restoreFocusOnClose;
|
|
35869
|
+
this._restoreFocusOnClose = false;
|
|
35870
|
+
if (shouldRestoreFocus) {
|
|
35737
35871
|
requestAnimationFrame(() => {
|
|
35738
35872
|
if (!this.dropdown.isPopoverVisible) {
|
|
35739
35873
|
this.inputList[0].focus();
|
|
@@ -36179,6 +36313,18 @@ class AuroDatePicker extends AuroElement {
|
|
|
36179
36313
|
this.calendar.requestUpdate();
|
|
36180
36314
|
this.dispatchEvent(new CustomEvent('auroDatePicker-newSlotContent'));
|
|
36181
36315
|
}
|
|
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
|
+
}
|
|
36182
36328
|
}
|
|
36183
36329
|
|
|
36184
36330
|
updated(changedProperties) {
|
|
@@ -36246,8 +36392,12 @@ class AuroDatePicker extends AuroElement {
|
|
|
36246
36392
|
|
|
36247
36393
|
if (this.value && this.value.length === this.inputList[0].lengthForType && !(this.wasCellClick && this.range)) {
|
|
36248
36394
|
// Skip centralDate update when user clicked a cell in range mode
|
|
36249
|
-
// to prevent the displayed months from shifting
|
|
36250
|
-
|
|
36395
|
+
// to prevent the displayed months from shifting. Route through
|
|
36396
|
+
// updateCentralDate so centralDate stays first-of-month — direct
|
|
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);
|
|
36251
36401
|
}
|
|
36252
36402
|
|
|
36253
36403
|
this.setHasValue();
|
|
@@ -36305,8 +36455,10 @@ class AuroDatePicker extends AuroElement {
|
|
|
36305
36455
|
|
|
36306
36456
|
if (this.valueEnd && this.valueEnd.length === this.inputList[1].lengthForType && !this.wasCellClick) {
|
|
36307
36457
|
// Skip centralDate update when user clicked a cell in range mode
|
|
36308
|
-
// to prevent the displayed months from shifting
|
|
36309
|
-
|
|
36458
|
+
// to prevent the displayed months from shifting. Route through
|
|
36459
|
+
// updateCentralDate to preserve the first-of-month invariant
|
|
36460
|
+
// (see matching comment in the value branch above).
|
|
36461
|
+
this.calendarRenderUtil.updateCentralDate(this, this.valueEnd);
|
|
36310
36462
|
}
|
|
36311
36463
|
|
|
36312
36464
|
this.validate();
|
|
@@ -36330,10 +36482,6 @@ class AuroDatePicker extends AuroElement {
|
|
|
36330
36482
|
this.validation.validate(lastInput, true);
|
|
36331
36483
|
}
|
|
36332
36484
|
|
|
36333
|
-
if (this.valueObject && this.valueEndObject && this.valueObject > this.valueEndObject) {
|
|
36334
|
-
this.valueEnd = undefined;
|
|
36335
|
-
}
|
|
36336
|
-
|
|
36337
36485
|
// This resets the datepicker when the minDate is set to a new value that is
|
|
36338
36486
|
// a later date than the current value date
|
|
36339
36487
|
if (changedProperties.has('minDate') && this.minDate) {
|