@aurodesignsystem-dev/auro-formkit 0.0.0-pr1505.0 → 0.0.0-pr1505.2
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.html +1 -2
- 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.html +1 -2
- package/components/combobox/demo/customize.md +108 -132
- package/components/combobox/demo/customize.min.js +6 -6
- package/components/combobox/demo/getting-started.min.js +6 -6
- package/components/combobox/demo/index.min.js +6 -6
- package/components/combobox/dist/index.js +4 -4
- package/components/combobox/dist/registered.js +4 -4
- 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/api.md +2 -2
- package/components/datepicker/demo/customize.js +2 -2
- package/components/datepicker/demo/customize.md +29 -74
- package/components/datepicker/demo/customize.min.js +10 -10
- package/components/datepicker/demo/index.min.js +8 -8
- package/components/datepicker/dist/index.js +8 -8
- package/components/datepicker/dist/registered.js +8 -8
- package/components/datepicker/dist/src/auro-datepicker.d.ts +2 -2
- 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.html +6 -6
- package/components/form/demo/customize.js +19 -0
- package/components/form/demo/customize.md +203 -51
- package/components/form/demo/customize.min.js +588 -83
- package/components/form/demo/getting-started.min.js +516 -83
- package/components/form/demo/index.min.js +516 -83
- package/components/form/demo/registerDemoDeps.min.js +153 -46
- package/components/form/dist/auro-form.d.ts +122 -4
- package/components/form/dist/index.js +363 -37
- package/components/form/dist/registered.js +363 -37
- package/components/input/demo/api.md +1 -1
- package/components/input/demo/customize.html +1 -2
- package/components/input/demo/customize.md +2 -2
- package/components/input/demo/customize.min.js +2 -2
- package/components/input/demo/getting-started.min.js +2 -2
- package/components/input/demo/index.md +2 -2
- package/components/input/demo/index.min.js +2 -2
- package/components/input/dist/auro-input.d.ts +1 -1
- package/components/input/dist/index.js +2 -2
- package/components/input/dist/registered.js +2 -2
- package/components/menu/demo/index.min.js +2 -2
- package/components/menu/dist/index.js +2 -2
- package/components/menu/dist/registered.js +2 -2
- 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/api.md +1 -0
- package/components/select/demo/customize.html +1 -2
- package/components/select/demo/customize.md +71 -0
- package/components/select/demo/customize.min.js +135 -28
- package/components/select/demo/getting-started.min.js +135 -28
- package/components/select/demo/index.min.js +135 -28
- package/components/select/demo/keyboard-behavior.md +18 -0
- package/components/select/dist/auro-select.d.ts +38 -2
- package/components/select/dist/index.js +133 -26
- package/components/select/dist/registered.js +133 -26
- package/components/select/dist/selectUtils.d.ts +12 -0
- package/custom-elements.json +1654 -1441
- package/package.json +1 -1
|
@@ -12328,7 +12328,7 @@ let AuroHelpText$8 = class AuroHelpText extends i$2 {
|
|
|
12328
12328
|
}
|
|
12329
12329
|
};
|
|
12330
12330
|
|
|
12331
|
-
var formkitVersion$8 = '
|
|
12331
|
+
var formkitVersion$8 = '202606222118';
|
|
12332
12332
|
|
|
12333
12333
|
// Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
|
|
12334
12334
|
// See LICENSE in the project root for license information.
|
|
@@ -12343,7 +12343,7 @@ var formkitVersion$8 = '202606171946';
|
|
|
12343
12343
|
* @slot ariaLabel.password.hide - Sets aria-label on password button to toggle off showing password
|
|
12344
12344
|
* @slot helpText - Sets the help text displayed below the input.
|
|
12345
12345
|
* @slot label - Sets the label text for the input.
|
|
12346
|
-
* @slot optionalLabel - Allows overriding the optional display text "(optional)", which appears next to the label.
|
|
12346
|
+
* @slot optionalLabel - Allows overriding the optional display text " (optional)", which appears next to the label.
|
|
12347
12347
|
* @slot displayValue - Allows custom HTML content to display in place of the value when the input is not focused.
|
|
12348
12348
|
* @csspart wrapper - Use for customizing the style of the root element
|
|
12349
12349
|
* @csspart label - Use for customizing the style of the label element
|
|
@@ -26447,7 +26447,7 @@ let AuroBibtemplate$3 = class AuroBibtemplate extends i$2 {
|
|
|
26447
26447
|
}
|
|
26448
26448
|
};
|
|
26449
26449
|
|
|
26450
|
-
var formkitVersion$2$1 = '
|
|
26450
|
+
var formkitVersion$2$1 = '202606222118';
|
|
26451
26451
|
|
|
26452
26452
|
let l$1$2 = 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$2 = class d{registerComponent(t,e){customElements.get(t)||customElements.define(t,class extends e{});}closestElement(t,e=this,o=(e,s=e&&e.closest(t))=>e&&e!==document&&e!==window?s||o(e.getRootNode().host):null){return o(e)}handleComponentTagRename(t,e){const o=e.toLowerCase();t.tagName.toLowerCase()!==o&&t.setAttribute(o,true);}elementMatch(t,e){const o=e.toLowerCase();return t.tagName.toLowerCase()===o||t.hasAttribute(o)}getSlotText(t,e){const o=t.shadowRoot?.querySelector(`slot[name="${e}"]`),s=(o?.assignedNodes({flatten:true})||[]).map(t=>t.textContent?.trim()).join(" ").trim();return s||null}};let h$1$2 = class h{registerComponent(t,e){customElements.get(t)||customElements.define(t,class extends e{});}closestElement(t,e=this,o=(e,s=e&&e.closest(t))=>e&&e!==document&&e!==window?s||o(e.getRootNode().host):null){return o(e)}handleComponentTagRename(t,e){const o=e.toLowerCase();t.tagName.toLowerCase()!==o&&t.setAttribute(o,true);}elementMatch(t,e){const o=e.toLowerCase();return t.tagName.toLowerCase()===o||t.hasAttribute(o)}};var c$1$3=i$4`: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}
|
|
26453
26453
|
`,u$4$2=i$4`.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}}
|
|
@@ -31958,7 +31958,7 @@ let AuroHelpText$2$1 = class AuroHelpText extends i$2 {
|
|
|
31958
31958
|
}
|
|
31959
31959
|
};
|
|
31960
31960
|
|
|
31961
|
-
var formkitVersion$1$3 = '
|
|
31961
|
+
var formkitVersion$1$3 = '202606222118';
|
|
31962
31962
|
|
|
31963
31963
|
let AuroElement$2$2 = class AuroElement extends i$2 {
|
|
31964
31964
|
static get properties() {
|
|
@@ -45540,7 +45540,7 @@ let AuroHelpText$1$3 = class AuroHelpText extends i$2 {
|
|
|
45540
45540
|
}
|
|
45541
45541
|
};
|
|
45542
45542
|
|
|
45543
|
-
var formkitVersion$7 = '
|
|
45543
|
+
var formkitVersion$7 = '202606222118';
|
|
45544
45544
|
|
|
45545
45545
|
// Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
|
|
45546
45546
|
// See LICENSE in the project root for license information.
|
|
@@ -45555,7 +45555,7 @@ var formkitVersion$7 = '202606171946';
|
|
|
45555
45555
|
* @slot ariaLabel.password.hide - Sets aria-label on password button to toggle off showing password
|
|
45556
45556
|
* @slot helpText - Sets the help text displayed below the input.
|
|
45557
45557
|
* @slot label - Sets the label text for the input.
|
|
45558
|
-
* @slot optionalLabel - Allows overriding the optional display text "(optional)", which appears next to the label.
|
|
45558
|
+
* @slot optionalLabel - Allows overriding the optional display text " (optional)", which appears next to the label.
|
|
45559
45559
|
* @slot displayValue - Allows custom HTML content to display in place of the value when the input is not focused.
|
|
45560
45560
|
* @csspart wrapper - Use for customizing the style of the root element
|
|
45561
45561
|
* @csspart label - Use for customizing the style of the label element
|
|
@@ -46960,8 +46960,8 @@ const datepickerKeyboardStrategy = {
|
|
|
46960
46960
|
* @slot label - Defines the label content for the entire datepicker when `layout="snowflake"`.
|
|
46961
46961
|
* @slot toLabel - Defines the label content for the second input when the `range` attribute is used.
|
|
46962
46962
|
* @slot fromLabel - Defines the label content for the first input.
|
|
46963
|
-
* @slot optionalFromLabel - Overrides the "(optional)" text rendered next to the first input's label when the datepicker is not `required`.
|
|
46964
|
-
* @slot optionalToLabel - Overrides the "(optional)" text rendered next to the second input's label when `range` is set and the datepicker is not `required`.
|
|
46963
|
+
* @slot optionalFromLabel - Overrides the " (optional)" text rendered next to the first input's label when the datepicker is not `required`.
|
|
46964
|
+
* @slot optionalToLabel - Overrides the " (optional)" text rendered next to the second input's label when `range` is set and the datepicker is not `required`.
|
|
46965
46965
|
* @slot date_YYYY_MM_DD - Defines the content to display in the auro-calendar-cell for the specified date. The content text is colored using the success state token when the `highlight` attribute is applied to the slot.
|
|
46966
46966
|
* @slot popover_YYYY_MM_DD - Defines the content to display in the auro-calendar-cell popover for the specified date.
|
|
46967
46967
|
* @csspart dropdown - Use for customizing the style of the dropdown.
|
|
@@ -48954,7 +48954,7 @@ class AuroDatePicker extends AuroElement$5 {
|
|
|
48954
48954
|
}
|
|
48955
48955
|
<span slot="ariaLabel.clear">${this.runtimeUtils.getSlotText(this, 'ariaLabel.input.clear') || i18n$2(this.lang, 'clearInput')}</span>
|
|
48956
48956
|
<span slot="label"><slot name="fromLabel"></slot></span>
|
|
48957
|
-
<
|
|
48957
|
+
<slot name="optionalFromLabel" slot="optionalLabel"> (optional)</slot>
|
|
48958
48958
|
</${this.inputTag}>
|
|
48959
48959
|
</div>
|
|
48960
48960
|
|
|
@@ -48999,7 +48999,7 @@ class AuroDatePicker extends AuroElement$5 {
|
|
|
48999
48999
|
}
|
|
49000
49000
|
<span slot="ariaLabel.clear">${this.runtimeUtils.getSlotText(this, 'ariaLabel.input.clear') || this.runtimeUtils.getSlotText(this, 'ariaLabel.input.clear') || i18n$2(this.lang, 'clearInput')}</span>
|
|
49001
49001
|
<span slot="label"><slot name="toLabel"></slot></span>
|
|
49002
|
-
<
|
|
49002
|
+
<slot name="optionalToLabel" slot="optionalLabel"> (optional)</slot>
|
|
49003
49003
|
</${this.inputTag}>
|
|
49004
49004
|
</div>
|
|
49005
49005
|
` : undefined}
|
|
@@ -50243,7 +50243,7 @@ let AuroHelpText$1$2 = class AuroHelpText extends i$2 {
|
|
|
50243
50243
|
}
|
|
50244
50244
|
};
|
|
50245
50245
|
|
|
50246
|
-
var formkitVersion$1$2 = '
|
|
50246
|
+
var formkitVersion$1$2 = '202606222118';
|
|
50247
50247
|
|
|
50248
50248
|
// Copyright (c) 2026 Alaska Airlines. All rights reserved. Licensed under the Apache-2.0 license
|
|
50249
50249
|
// See LICENSE in the project root for license information.
|
|
@@ -54571,7 +54571,7 @@ let AuroHelpText$6 = class AuroHelpText extends i$2 {
|
|
|
54571
54571
|
}
|
|
54572
54572
|
};
|
|
54573
54573
|
|
|
54574
|
-
var formkitVersion$6 = '
|
|
54574
|
+
var formkitVersion$6 = '202606222118';
|
|
54575
54575
|
|
|
54576
54576
|
let AuroElement$1$2 = class AuroElement extends i$2 {
|
|
54577
54577
|
static get properties() {
|
|
@@ -58503,7 +58503,7 @@ let AuroHelpText$5 = class AuroHelpText extends i$2 {
|
|
|
58503
58503
|
}
|
|
58504
58504
|
};
|
|
58505
58505
|
|
|
58506
|
-
var formkitVersion$5 = '
|
|
58506
|
+
var formkitVersion$5 = '202606222118';
|
|
58507
58507
|
|
|
58508
58508
|
// Copyright (c) Alaska Air. All right reserved. Licensed under the Apache-2.0 license
|
|
58509
58509
|
// See LICENSE in the project root for license information.
|
|
@@ -60253,7 +60253,7 @@ let AuroHelpText$4 = class AuroHelpText extends i$2 {
|
|
|
60253
60253
|
}
|
|
60254
60254
|
};
|
|
60255
60255
|
|
|
60256
|
-
var formkitVersion$4 = '
|
|
60256
|
+
var formkitVersion$4 = '202606222118';
|
|
60257
60257
|
|
|
60258
60258
|
// Copyright (c) 2026 Alaska Airlines. All rights reserved. Licensed under the Apache-2.0 license
|
|
60259
60259
|
// See LICENSE in the project root for license information.
|
|
@@ -65468,7 +65468,7 @@ let AuroHelpText$2 = class AuroHelpText extends i$2 {
|
|
|
65468
65468
|
}
|
|
65469
65469
|
};
|
|
65470
65470
|
|
|
65471
|
-
var formkitVersion$2 = '
|
|
65471
|
+
var formkitVersion$2 = '202606222118';
|
|
65472
65472
|
|
|
65473
65473
|
let AuroElement$2$1 = class AuroElement extends i$2 {
|
|
65474
65474
|
static get properties() {
|
|
@@ -79050,7 +79050,7 @@ let AuroHelpText$1$1 = class AuroHelpText extends i$2 {
|
|
|
79050
79050
|
}
|
|
79051
79051
|
};
|
|
79052
79052
|
|
|
79053
|
-
var formkitVersion$1$1 = '
|
|
79053
|
+
var formkitVersion$1$1 = '202606222118';
|
|
79054
79054
|
|
|
79055
79055
|
// Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
|
|
79056
79056
|
// See LICENSE in the project root for license information.
|
|
@@ -79065,7 +79065,7 @@ var formkitVersion$1$1 = '202606171946';
|
|
|
79065
79065
|
* @slot ariaLabel.password.hide - Sets aria-label on password button to toggle off showing password
|
|
79066
79066
|
* @slot helpText - Sets the help text displayed below the input.
|
|
79067
79067
|
* @slot label - Sets the label text for the input.
|
|
79068
|
-
* @slot optionalLabel - Allows overriding the optional display text "(optional)", which appears next to the label.
|
|
79068
|
+
* @slot optionalLabel - Allows overriding the optional display text " (optional)", which appears next to the label.
|
|
79069
79069
|
* @slot displayValue - Allows custom HTML content to display in place of the value when the input is not focused.
|
|
79070
79070
|
* @csspart wrapper - Use for customizing the style of the root element
|
|
79071
79071
|
* @csspart label - Use for customizing the style of the label element
|
|
@@ -80171,7 +80171,7 @@ let AuroBibtemplate$1 = class AuroBibtemplate extends i$2 {
|
|
|
80171
80171
|
}
|
|
80172
80172
|
};
|
|
80173
80173
|
|
|
80174
|
-
var formkitVersion$3 = '
|
|
80174
|
+
var formkitVersion$3 = '202606222118';
|
|
80175
80175
|
|
|
80176
80176
|
var styleCss$1$3 = i$4`.util_displayInline{display:inline}.util_displayInlineBlock{display:inline-block}.util_displayBlock{display:block}.util_displayFlex{display:flex}.util_displayHidden{display:none}.util_displayHiddenVisually{position:absolute;overflow:hidden;clip:rect(1px, 1px, 1px, 1px);width:1px;height:1px;padding:0;border:0}:host{display:block;text-align:left}:host [auro-dropdown]{--ds-auro-dropdown-trigger-background-color: transparent}:host #inputInBib::part(wrapper){box-shadow:none}:host #inputInBib::part(accent-left){display:none}:host([layout*=classic]) [auro-input]{width:100%}:host([layout*=classic]) [auro-input]::part(helpText){display:none}:host([layout*=classic]) #slotHolder{display:none}`;
|
|
80177
80177
|
|
|
@@ -82935,8 +82935,8 @@ class AuroMenu extends AuroElement$2 {
|
|
|
82935
82935
|
// Malformed JSON (e.g. a literal string that happens to start with "[") falls back
|
|
82936
82936
|
// to a single-item array rather than throwing during render.
|
|
82937
82937
|
try {
|
|
82938
|
-
|
|
82939
|
-
return
|
|
82938
|
+
// any valid JSON starting with `[` ALWAYS parses to an array
|
|
82939
|
+
return JSON.parse(this.value);
|
|
82940
82940
|
} catch {
|
|
82941
82941
|
return [this.value];
|
|
82942
82942
|
}
|
|
@@ -84935,6 +84935,21 @@ function getEnabledOptions(menu) {
|
|
|
84935
84935
|
return (menu?.options || []).filter((option) => !option.disabled);
|
|
84936
84936
|
}
|
|
84937
84937
|
|
|
84938
|
+
/**
|
|
84939
|
+
* Returns the active (selectable + visible) options for type-ahead navigation.
|
|
84940
|
+
*
|
|
84941
|
+
* Uses auro-menuoption's `isActive` getter, which excludes disabled, hidden,
|
|
84942
|
+
* and static options (e.g. `static nomatch` placeholders) so the type-ahead
|
|
84943
|
+
* cursor never lands on a non-actionable item. Same empty-safe handling as
|
|
84944
|
+
* `getEnabledOptions`.
|
|
84945
|
+
*
|
|
84946
|
+
* @param {HTMLElement | null | undefined} menu - The auro-menu element.
|
|
84947
|
+
* @returns {Array<HTMLElement>} Active options, empty array when none.
|
|
84948
|
+
*/
|
|
84949
|
+
function getActiveOptions(menu) {
|
|
84950
|
+
return (menu?.options || []).filter((option) => option.isActive);
|
|
84951
|
+
}
|
|
84952
|
+
|
|
84938
84953
|
/* eslint-disable new-cap */
|
|
84939
84954
|
|
|
84940
84955
|
const selectKeyboardStrategy = {
|
|
@@ -84967,6 +84982,14 @@ const selectKeyboardStrategy = {
|
|
|
84967
84982
|
},
|
|
84968
84983
|
|
|
84969
84984
|
Escape(component, evt, ctx) {
|
|
84985
|
+
// Always clear the type-ahead buffer — Escape is a universal cancel.
|
|
84986
|
+
// Safe to call when the buffer is empty.
|
|
84987
|
+
// eslint-disable-next-line no-underscore-dangle
|
|
84988
|
+
if (typeof component._clearTypeaheadBuffer === 'function') {
|
|
84989
|
+
// eslint-disable-next-line no-underscore-dangle
|
|
84990
|
+
component._clearTypeaheadBuffer();
|
|
84991
|
+
}
|
|
84992
|
+
|
|
84970
84993
|
if (!ctx.isExpanded) {
|
|
84971
84994
|
return;
|
|
84972
84995
|
}
|
|
@@ -85026,16 +85049,25 @@ const selectKeyboardStrategy = {
|
|
|
85026
85049
|
},
|
|
85027
85050
|
|
|
85028
85051
|
default(component, evt, ctx) {
|
|
85029
|
-
|
|
85052
|
+
// Space resolves to either typeahead-buffer extension or bib toggle
|
|
85053
|
+
// depending on whether a type-ahead buffer is active. Mirrors native
|
|
85054
|
+
// <select> and the WAI-ARIA APG Listbox guidance: mid-typeahead space
|
|
85055
|
+
// is a search character (e.g. "San Francisco"); otherwise it toggles.
|
|
85030
85056
|
if (evt.key === ' ') {
|
|
85031
85057
|
evt.preventDefault();
|
|
85032
85058
|
evt.stopPropagation();
|
|
85059
|
+
if (component.typeaheadBuffer && component.typeaheadBuffer.length > 0) {
|
|
85060
|
+
component.updateActiveOptionBasedOnKey(evt.key);
|
|
85061
|
+
return;
|
|
85062
|
+
}
|
|
85033
85063
|
if (ctx.isExpanded) {
|
|
85034
85064
|
component.dropdown.hide();
|
|
85035
|
-
|
|
85065
|
+
} else {
|
|
85066
|
+
component.dropdown.show();
|
|
85036
85067
|
}
|
|
85037
|
-
|
|
85068
|
+
return;
|
|
85038
85069
|
}
|
|
85070
|
+
component.updateActiveOptionBasedOnKey(evt.key);
|
|
85039
85071
|
},
|
|
85040
85072
|
};
|
|
85041
85073
|
|
|
@@ -88947,7 +88979,7 @@ let AuroHelpText$1 = class AuroHelpText extends i$2 {
|
|
|
88947
88979
|
}
|
|
88948
88980
|
};
|
|
88949
88981
|
|
|
88950
|
-
var formkitVersion$1 = '
|
|
88982
|
+
var formkitVersion$1 = '202606222118';
|
|
88951
88983
|
|
|
88952
88984
|
class AuroElement extends i$2 {
|
|
88953
88985
|
static get properties() {
|
|
@@ -90960,7 +90992,7 @@ class AuroHelpText extends i$2 {
|
|
|
90960
90992
|
}
|
|
90961
90993
|
}
|
|
90962
90994
|
|
|
90963
|
-
var formkitVersion = '
|
|
90995
|
+
var formkitVersion = '202606222118';
|
|
90964
90996
|
|
|
90965
90997
|
var styleCss = i$4`.util_displayInline{display:inline}.util_displayInlineBlock{display:inline-block}.util_displayBlock{display:block}.util_displayFlex{display:flex}.util_displayHidden{display:none}.util_displayHiddenVisually{position:absolute;overflow:hidden;clip:rect(1px, 1px, 1px, 1px);width:1px;height:1px;padding:0;border:0}.body-default{font-size:var(--wcss-body-default-font-size, 1rem);font-weight:var(--wcss-body-default-weight, );line-height:var(--wcss-body-default-line-height, 1.5rem)}.body-default,.body-default-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-default-emphasized{font-size:var(--wcss-body-default-emphasized-font-size, 1rem);font-weight:var(--wcss-body-default-emphasized-weight, );line-height:var(--wcss-body-default-emphasized-line-height, 1.5rem)}.body-lg{font-size:var(--wcss-body-lg-font-size, 1.125rem);font-weight:var(--wcss-body-lg-weight, );line-height:var(--wcss-body-lg-line-height, 1.625rem)}.body-lg,.body-lg-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-lg-emphasized{font-size:var(--wcss-body-lg-emphasized-font-size, 1.125rem);font-weight:var(--wcss-body-lg-emphasized-weight, );line-height:var(--wcss-body-lg-emphasized-line-height, 1.625rem)}.body-sm{font-size:var(--wcss-body-sm-font-size, 0.875rem);font-weight:var(--wcss-body-sm-weight, );line-height:var(--wcss-body-sm-line-height, 1.25rem)}.body-sm,.body-sm-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-sm-emphasized{font-size:var(--wcss-body-sm-emphasized-font-size, 0.875rem);font-weight:var(--wcss-body-sm-emphasized-weight, );line-height:var(--wcss-body-sm-emphasized-line-height, 1.25rem)}.body-xs{font-size:var(--wcss-body-xs-font-size, 0.75rem);font-weight:var(--wcss-body-xs-weight, );line-height:var(--wcss-body-xs-line-height, 1rem)}.body-xs,.body-xs-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-xs-emphasized{font-size:var(--wcss-body-xs-emphasized-font-size, 0.75rem);font-weight:var(--wcss-body-xs-emphasized-weight, );line-height:var(--wcss-body-xs-emphasized-line-height, 1rem)}.body-2xs{font-size:var(--wcss-body-2xs-font-size, 0.625rem);font-weight:var(--wcss-body-2xs-weight, );line-height:var(--wcss-body-2xs-line-height, 0.875rem)}.body-2xs,.body-2xs-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-2xs-emphasized{font-size:var(--wcss-body-2xs-emphasized-font-size, 0.625rem);font-weight:var(--wcss-body-2xs-emphasized-weight, );line-height:var(--wcss-body-2xs-emphasized-line-height, 0.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, 300);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, 300);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, 0.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, 0.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, 0.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, 0.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, 0.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, 0.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(0.875rem, 1.1666666667vw, 0.875rem));font-weight:var(--wcss-accent-2xs-weight, 450);letter-spacing:var(--wcss-accent-2xs-letter-spacing, 0.1em);line-height:var(--wcss-accent-2xs-line-height, 1.3);text-transform:uppercase}[auro-dropdown]{--ds-auro-dropdown-trigger-border-color: var(--ds-auro-select-border-color);--ds-auro-dropdown-trigger-background-color: var(--ds-auro-select-background-color);--ds-auro-dropdown-trigger-container-color: var(--ds-auro-select-background-color);--ds-auro-dropdown-trigger-outline-color: var(--ds-auro-select-outline-color)}:host{display:inline-block;text-align:left;vertical-align:top}:host([layout*=emphasized]) [auro-dropdown],:host([layout*=snowflake]) [auro-dropdown]{--ds-auro-select-border-color: transparent}:host([layout*=emphasized]) .mainContent,:host([layout*=snowflake]) .mainContent{text-align:center}.mainContent{position:relative;display:flex;overflow:hidden;flex:1;flex-direction:column;align-items:center;justify-content:center}.valueContainer [slot=displayValue]{display:none}.accents{display:flex;flex-direction:row;align-items:center;justify-content:center}::slotted([slot=typeIcon]){margin-right:var(--ds-size-100, 0.5rem)}.displayValue{display:block}.displayValue:not(.force){display:none}.displayValue:not(.force).hasContent:is(.withValue):not(.hasFocus){display:block}.triggerContent{display:flex;width:100%;align-items:center;justify-content:center}:host([layout*=emphasized]) .triggerContent{padding:0 var(--ds-size-100, 0.5rem) 0 var(--ds-size-300, 1.5rem)}:host([layout*=snowflake]) .triggerContent{padding:0 var(--ds-size-100, 0.5rem) 0 var(--ds-size-200, 1rem)}:host([layout*=snowflake]) label{padding-block:var(--ds-size-25, 0.125rem)}:host([layout*=classic]) .triggerContent{padding:0 var(--ds-size-100, 0.5rem)}:host([layout*=classic]) .mainContent{align-items:start}:host([layout*=classic]) label{overflow:hidden;cursor:text;text-overflow:ellipsis;white-space:nowrap}:host([layout*=classic]) .value{height:auto}label{color:var(--ds-auro-select-label-text-color)}:host(:is([validity]:not([validity=valid]))) [auro-dropdown]{--ds-auro-select-border-color: var(--ds-basic-color-status-error, #e31f26);--ds-auro-select-outline-color: var(--ds-basic-color-status-error, #e31f26);--ds-auro-dropdown-helptext-text-color: var(--ds-basic-color-texticon-default, #2a2a2a)}:host([ondark]:is([validity]:not([validity=valid]))) [auro-dropdown],:host([appearance=inverse]:is([validity]:not([validity=valid]))) [auro-dropdown]{--ds-auro-select-border-color: var(--ds-advanced-color-state-error-inverse, #f9a4a8);--ds-auro-select-outline-color: var(--ds-advanced-color-state-error-inverse, #f9a4a8);--ds-auro-dropdown-helptext-text-color: var(--ds-basic-color-texticon-inverse, #ffffff)}#slotHolder{display:none}:host([fluid]){width:100%}:host([disabled]){pointer-events:none;user-select:none}:host([disabled]:not([ondark])) [auro-dropdown],:host([disabled]:not([appearance=inverse])) [auro-dropdown]{--ds-auro-select-border-color: var(--ds-basic-color-border-subtle, #dddddd)}:host(:not([layout*=classic])[disabled][ondark]) [auro-dropdown],:host(:not([layout*=classic])[disabled][appearance=inverse]) [auro-dropdown]{--ds-auro-select-border-color: transparent}`;
|
|
90966
90998
|
|
|
@@ -91065,6 +91097,16 @@ class AuroSelect extends AuroElement$1 {
|
|
|
91065
91097
|
* @private
|
|
91066
91098
|
*/
|
|
91067
91099
|
this.hasDisplayValueContent = false;
|
|
91100
|
+
|
|
91101
|
+
/**
|
|
91102
|
+
* @private
|
|
91103
|
+
*/
|
|
91104
|
+
this.typeaheadBuffer = '';
|
|
91105
|
+
|
|
91106
|
+
/**
|
|
91107
|
+
* @private
|
|
91108
|
+
*/
|
|
91109
|
+
this._typeaheadTimeout = null;
|
|
91068
91110
|
}
|
|
91069
91111
|
|
|
91070
91112
|
/**
|
|
@@ -91077,6 +91119,7 @@ class AuroSelect extends AuroElement$1 {
|
|
|
91077
91119
|
this.fullscreenBreakpoint = 'sm';
|
|
91078
91120
|
this.onDark = false;
|
|
91079
91121
|
this.isPopoverVisible = false;
|
|
91122
|
+
this.typeaheadTimeoutMs = 500;
|
|
91080
91123
|
|
|
91081
91124
|
// Layout Config
|
|
91082
91125
|
this.layout = 'classic';
|
|
@@ -91380,6 +91423,16 @@ class AuroSelect extends AuroElement$1 {
|
|
|
91380
91423
|
attribute: false
|
|
91381
91424
|
},
|
|
91382
91425
|
|
|
91426
|
+
/**
|
|
91427
|
+
* Milliseconds of keyboard inactivity before the type-ahead buffer resets.
|
|
91428
|
+
* Increase for users who type slowly.
|
|
91429
|
+
* @default 500
|
|
91430
|
+
*/
|
|
91431
|
+
typeaheadTimeoutMs: {
|
|
91432
|
+
type: Number,
|
|
91433
|
+
reflect: true
|
|
91434
|
+
},
|
|
91435
|
+
|
|
91383
91436
|
/**
|
|
91384
91437
|
* Specifies the `validityState` this element is in.
|
|
91385
91438
|
*/
|
|
@@ -91819,6 +91872,7 @@ class AuroSelect extends AuroElement$1 {
|
|
|
91819
91872
|
this.addEventListener('blur', () => {
|
|
91820
91873
|
this.validate();
|
|
91821
91874
|
this.hasFocus = false;
|
|
91875
|
+
this._clearTypeaheadBuffer();
|
|
91822
91876
|
});
|
|
91823
91877
|
}
|
|
91824
91878
|
|
|
@@ -91832,41 +91886,89 @@ class AuroSelect extends AuroElement$1 {
|
|
|
91832
91886
|
}
|
|
91833
91887
|
}
|
|
91834
91888
|
|
|
91889
|
+
/**
|
|
91890
|
+
* Returns the lowercase, trimmed text content of a menu option.
|
|
91891
|
+
* @private
|
|
91892
|
+
* @param {HTMLElement} option - The menu option element.
|
|
91893
|
+
* @returns {string}
|
|
91894
|
+
*/
|
|
91895
|
+
_getOptionDisplayText(option) {
|
|
91896
|
+
return (option.textContent || '').trim().toLowerCase();
|
|
91897
|
+
}
|
|
91898
|
+
|
|
91899
|
+
/**
|
|
91900
|
+
* Empties the type-ahead buffer and cancels any pending reset timeout.
|
|
91901
|
+
* Called when focus leaves the component, when Escape closes the bib, and on disconnect
|
|
91902
|
+
* so a stale buffer never bridges into a fresh interaction.
|
|
91903
|
+
* @private
|
|
91904
|
+
*/
|
|
91905
|
+
_clearTypeaheadBuffer() {
|
|
91906
|
+
if (this._typeaheadTimeout) {
|
|
91907
|
+
clearTimeout(this._typeaheadTimeout);
|
|
91908
|
+
this._typeaheadTimeout = null;
|
|
91909
|
+
}
|
|
91910
|
+
this.typeaheadBuffer = '';
|
|
91911
|
+
}
|
|
91912
|
+
|
|
91835
91913
|
/**
|
|
91836
91914
|
* Updates the active option in the menu based on keyboard input.
|
|
91915
|
+
*
|
|
91916
|
+
* Implements the WAI-ARIA APG Listbox type-ahead pattern: accumulates printable
|
|
91917
|
+
* keystrokes into a buffer that resets after `typeaheadTimeoutMs` of inactivity.
|
|
91918
|
+
* A multi-character buffer matches the first option whose displayed text starts
|
|
91919
|
+
* with the buffer; repeating a single character cycles through options that start
|
|
91920
|
+
* with that character.
|
|
91837
91921
|
* @private
|
|
91838
91922
|
* @param {string} _key - The key pressed by the user.
|
|
91839
91923
|
* @returns {void}
|
|
91840
91924
|
*/
|
|
91841
91925
|
updateActiveOptionBasedOnKey(_key) {
|
|
91926
|
+
// Ignore non-printable keys (Shift, ArrowDown, Tab, etc.)
|
|
91927
|
+
if (typeof _key !== 'string' || _key.length !== 1) {
|
|
91928
|
+
return;
|
|
91929
|
+
}
|
|
91842
91930
|
|
|
91843
|
-
//
|
|
91844
|
-
|
|
91845
|
-
|
|
91846
|
-
//
|
|
91847
|
-
|
|
91931
|
+
// No selectable options to match against — clear any stale buffer/timer so
|
|
91932
|
+
// Space stays a bib toggle and the next keystroke after fresh options load
|
|
91933
|
+
// starts cleanly. `getActiveOptions` excludes disabled, hidden, and static
|
|
91934
|
+
// options (e.g. `static nomatch` placeholders). Checked BEFORE mutating
|
|
91935
|
+
// the buffer.
|
|
91936
|
+
const options = getActiveOptions(this.menu);
|
|
91937
|
+
if (!options.length) {
|
|
91938
|
+
this._clearTypeaheadBuffer();
|
|
91939
|
+
return;
|
|
91940
|
+
}
|
|
91848
91941
|
|
|
91849
|
-
|
|
91850
|
-
this.lastLetter = key;
|
|
91942
|
+
const key = _key.toLowerCase();
|
|
91851
91943
|
|
|
91852
|
-
//
|
|
91853
|
-
|
|
91854
|
-
|
|
91855
|
-
|
|
91856
|
-
|
|
91944
|
+
// Reset the buffer after a period of inactivity
|
|
91945
|
+
if (this._typeaheadTimeout) {
|
|
91946
|
+
clearTimeout(this._typeaheadTimeout);
|
|
91947
|
+
}
|
|
91948
|
+
this._typeaheadTimeout = setTimeout(() => {
|
|
91949
|
+
this._clearTypeaheadBuffer();
|
|
91950
|
+
}, this.typeaheadTimeoutMs);
|
|
91857
91951
|
|
|
91858
|
-
|
|
91859
|
-
if (letterOptions.length) {
|
|
91952
|
+
this.typeaheadBuffer += key;
|
|
91860
91953
|
|
|
91861
|
-
|
|
91862
|
-
this.dropdown.show();
|
|
91954
|
+
const isRepeatedChar = this.typeaheadBuffer.length > 1 && new Set(this.typeaheadBuffer).size === 1;
|
|
91863
91955
|
|
|
91864
|
-
|
|
91865
|
-
|
|
91956
|
+
let match = null;
|
|
91957
|
+
if (isRepeatedChar) {
|
|
91958
|
+
const matches = options.filter((option) => this._getOptionDisplayText(option).startsWith(key));
|
|
91959
|
+
if (matches.length) {
|
|
91960
|
+
const cycleIndex = (this.typeaheadBuffer.length - 1) % matches.length;
|
|
91961
|
+
match = matches[cycleIndex];
|
|
91962
|
+
}
|
|
91963
|
+
} else {
|
|
91964
|
+
match = options.find((option) => this._getOptionDisplayText(option).startsWith(this.typeaheadBuffer));
|
|
91965
|
+
}
|
|
91866
91966
|
|
|
91867
|
-
|
|
91868
|
-
|
|
91869
|
-
|
|
91967
|
+
if (match) {
|
|
91968
|
+
if (!this.dropdown.isPopoverVisible) {
|
|
91969
|
+
this.dropdown.show();
|
|
91970
|
+
}
|
|
91971
|
+
this.menu.updateActiveOption(match);
|
|
91870
91972
|
}
|
|
91871
91973
|
}
|
|
91872
91974
|
|
|
@@ -91980,6 +92082,11 @@ class AuroSelect extends AuroElement$1 {
|
|
|
91980
92082
|
}
|
|
91981
92083
|
}
|
|
91982
92084
|
|
|
92085
|
+
disconnectedCallback() {
|
|
92086
|
+
super.disconnectedCallback();
|
|
92087
|
+
this._clearTypeaheadBuffer();
|
|
92088
|
+
}
|
|
92089
|
+
|
|
91983
92090
|
// lifecycle runs only after the element's DOM has been updated the first time
|
|
91984
92091
|
firstUpdated() {
|
|
91985
92092
|
// Add the tag name as an attribute if it is different than the component name
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* @property {string | number | boolean | string[] | null} value - The value of the form element.
|
|
4
4
|
* @property {ValidityState} validity - The validity state of the form element, stored when fired from the form element.
|
|
5
5
|
* @property {boolean} required - Whether the form element is required or not.
|
|
6
|
-
* @property {
|
|
6
|
+
* @property {boolean} disabled - Whether the form element is currently disabled. Cached from the live attribute via the MutationObserver in `connectedCallback` and refreshed from `_handleAttributeMutations`.
|
|
7
7
|
*/
|
|
8
8
|
/**
|
|
9
9
|
* @typedef {Object.<string, FormStateMember>} FormState - The form state.
|
|
@@ -95,6 +95,32 @@ export class AuroForm extends LitElement {
|
|
|
95
95
|
* @type {MutationObserver[]}
|
|
96
96
|
*/
|
|
97
97
|
private mutationObservers;
|
|
98
|
+
/**
|
|
99
|
+
* Captured initial (default) value per field `name`. Populated on first
|
|
100
|
+
* sight of each name in `_addElementToState` and preserved across
|
|
101
|
+
* subsequent `initializeState` cycles (slot change, rename, reset) so
|
|
102
|
+
* `_setInitialState` can detect user edits as `current !== initial`,
|
|
103
|
+
* matching HTML's `dirtyValueFlag` semantics.
|
|
104
|
+
* @private
|
|
105
|
+
* @type {Record<string, string | number | boolean | string[] | null | undefined>}
|
|
106
|
+
*/
|
|
107
|
+
private _initialValues;
|
|
108
|
+
/**
|
|
109
|
+
* @private
|
|
110
|
+
* @type {MutationObserver | null}
|
|
111
|
+
*/
|
|
112
|
+
private _attributeObserver;
|
|
113
|
+
/**
|
|
114
|
+
* Handle batched MutationObserver records for `disabled` and `name`
|
|
115
|
+
* attribute changes on tracked form elements. A `name` change invalidates
|
|
116
|
+
* the formState keying — we resolve it by re-initializing state. A `disabled`
|
|
117
|
+
* change simply needs a re-render (so `value` / `validity` getters re-evaluate)
|
|
118
|
+
* and a refresh of the submit/reset button enablement.
|
|
119
|
+
* @param {MutationRecord[]} mutations - The batched mutation records.
|
|
120
|
+
* @returns {void}
|
|
121
|
+
* @private
|
|
122
|
+
*/
|
|
123
|
+
private _handleAttributeMutations;
|
|
98
124
|
/**
|
|
99
125
|
* Resets all form elements to their initial state and fires a `reset` event. The event's `detail.previousValue` contains the form values captured immediately before the reset.
|
|
100
126
|
* @returns {void}
|
|
@@ -155,6 +181,39 @@ export class AuroForm extends LitElement {
|
|
|
155
181
|
* @private
|
|
156
182
|
*/
|
|
157
183
|
private isFormElement;
|
|
184
|
+
/**
|
|
185
|
+
* Whether a given element is currently disabled. Disabled controls are excluded
|
|
186
|
+
* from submission, validity, and initial-state checks per the HTML spec
|
|
187
|
+
* (section 4.10.19.2 "Enabling and disabling form controls":
|
|
188
|
+
* https://www.w3.org/TR/2011/WD-html5-20110113/association-of-controls-and-forms.html).
|
|
189
|
+
*
|
|
190
|
+
* Implementation note: we deliberately read only the attribute. Every Auro
|
|
191
|
+
* form element in `formElementTags` declares `disabled` with `reflect: true`,
|
|
192
|
+
* so the attribute and property stay in sync. Reading the attribute also
|
|
193
|
+
* lets the MutationObserver in `connectedCallback` (which is filtered to
|
|
194
|
+
* `['disabled', 'name']`) be the single source of truth for re-renders.
|
|
195
|
+
* If a future form-element type ships without attribute reflection, expand
|
|
196
|
+
* this helper to also read `element.disabled`.
|
|
197
|
+
* @param {HTMLElement | undefined | null} element - The element to check.
|
|
198
|
+
* @returns {boolean}
|
|
199
|
+
* @private
|
|
200
|
+
*/
|
|
201
|
+
private _isDisabled;
|
|
202
|
+
/**
|
|
203
|
+
* Whether the tracked form element registered under `name` is currently disabled.
|
|
204
|
+
* See `_isDisabled` for the HTML-spec rationale behind excluding disabled
|
|
205
|
+
* controls from form state.
|
|
206
|
+
*
|
|
207
|
+
* Reads a cached flag on `formState[name]` populated by `_addElementToState`
|
|
208
|
+
* at registration and refreshed by `_handleAttributeMutations` whenever the
|
|
209
|
+
* element's `disabled` attribute toggles. The cache is fed by the same
|
|
210
|
+
* `hasAttribute('disabled')` read as `_isDisabled`, so the "future form-element
|
|
211
|
+
* type without attribute reflection" caveat documented there applies here too.
|
|
212
|
+
* @param {string} name - The `name` attribute used to register the element.
|
|
213
|
+
* @returns {boolean}
|
|
214
|
+
* @private
|
|
215
|
+
*/
|
|
216
|
+
private _isNameDisabled;
|
|
158
217
|
/**
|
|
159
218
|
* Validates if an event is from a valid form element with a name.
|
|
160
219
|
* @param {Event} event - The event to validate.
|
|
@@ -186,8 +245,57 @@ export class AuroForm extends LitElement {
|
|
|
186
245
|
* @private
|
|
187
246
|
*/
|
|
188
247
|
private get resetElements();
|
|
248
|
+
/**
|
|
249
|
+
* Raw constraint-validation check. Returns `true` when no enabled field
|
|
250
|
+
* has a validity error. Unlike the public `validity` getter, this does
|
|
251
|
+
* NOT gate on `isInitialState` — callers that need to make a decision
|
|
252
|
+
* based on the actual constraint state (submit-button enablement, the
|
|
253
|
+
* internal `submit()` gate) read this so a pre-filled valid form is
|
|
254
|
+
* correctly recognized as submittable at first render.
|
|
255
|
+
* @returns {boolean}
|
|
256
|
+
* @private
|
|
257
|
+
*/
|
|
258
|
+
private _isFormValid;
|
|
259
|
+
/**
|
|
260
|
+
* Whether the reset button should be enabled. True when the form has
|
|
261
|
+
* diverged from its initial state (so the user can always return to
|
|
262
|
+
* defaults — even if the dirty value lives behind a now-disabled field),
|
|
263
|
+
* OR when any non-disabled field has a current value or captured initial
|
|
264
|
+
* value (covers pre-filled forms and user-cleared-back-to-empty cases).
|
|
265
|
+
* @returns {boolean}
|
|
266
|
+
* @private
|
|
267
|
+
*/
|
|
268
|
+
private _hasResetableState;
|
|
269
|
+
/**
|
|
270
|
+
* Collapse empty representations to a single canonical `null`.
|
|
271
|
+
*
|
|
272
|
+
* `_addElementToState` captures `null` for a field that mounts without a
|
|
273
|
+
* `value` attribute (`element.value || element.getAttribute('value')` is
|
|
274
|
+
* falsy → resolves to `null`), but `sharedInputListener` later stores the
|
|
275
|
+
* raw `event.target.value` — which is `''` for a user-cleared text input.
|
|
276
|
+
* Without this normalization, backspacing back to empty would taint the
|
|
277
|
+
* form forever (`'' !== null`) and Reset would stay enabled with nothing
|
|
278
|
+
* to actually reset.
|
|
279
|
+
*
|
|
280
|
+
* `''`, `undefined`, and `[]` all collapse to `null`. The empty-array case
|
|
281
|
+
* covers checkbox-group, radio-group, and multiselect, where `[]` means
|
|
282
|
+
* "no selection" — semantically the same as `null`/`''`. Genuine values
|
|
283
|
+
* — including `0`, `false`, non-empty strings, and non-empty arrays —
|
|
284
|
+
* pass through unchanged so number, boolean, and populated multi-value
|
|
285
|
+
* fields still compare correctly.
|
|
286
|
+
* @param {*} value - Value to normalize.
|
|
287
|
+
* @returns {*}
|
|
288
|
+
* @private
|
|
289
|
+
*/
|
|
290
|
+
private _normalizeEmpty;
|
|
189
291
|
/**
|
|
190
292
|
* Infer validity status based on current formState.
|
|
293
|
+
*
|
|
294
|
+
* Validity stays `null` while the form is in its initial state — this is
|
|
295
|
+
* the "stay quiet until the user interacts" UX contract that consumers
|
|
296
|
+
* depend on to delay error indicators. Code that needs the raw
|
|
297
|
+
* constraint-validation result regardless of interaction (e.g.,
|
|
298
|
+
* submit-button enablement) should call `_isFormValid()` directly.
|
|
191
299
|
* @private
|
|
192
300
|
*/
|
|
193
301
|
private _calculateValidity;
|
|
@@ -197,7 +305,17 @@ export class AuroForm extends LitElement {
|
|
|
197
305
|
*/
|
|
198
306
|
get validity(): "valid" | "invalid" | null;
|
|
199
307
|
/**
|
|
200
|
-
* Determines whether the form is in its initial (untouched) state
|
|
308
|
+
* Determines whether the form is in its initial (untouched) state.
|
|
309
|
+
*
|
|
310
|
+
* A field is tainted if either:
|
|
311
|
+
* - its value differs from the value captured on first render, OR
|
|
312
|
+
* - its validity is failing (anything other than `null` or `'valid'`).
|
|
313
|
+
*
|
|
314
|
+
* Validity acts as a backup signal: it catches users who interact with a
|
|
315
|
+
* field without changing its value (e.g., focusing and blurring a required
|
|
316
|
+
* field). We skip `null` (not yet validated) and `'valid'` (the default
|
|
317
|
+
* after Auro's auto-validation on mount) because neither proves the user
|
|
318
|
+
* touched anything.
|
|
201
319
|
* @returns {void}
|
|
202
320
|
* @private
|
|
203
321
|
*/
|
|
@@ -267,9 +385,9 @@ export type FormStateMember = {
|
|
|
267
385
|
*/
|
|
268
386
|
required: boolean;
|
|
269
387
|
/**
|
|
270
|
-
* - Whether the form element is
|
|
388
|
+
* - Whether the form element is currently disabled. Cached from the live attribute via the MutationObserver in `connectedCallback` and refreshed from `_handleAttributeMutations`.
|
|
271
389
|
*/
|
|
272
|
-
|
|
390
|
+
disabled: boolean;
|
|
273
391
|
};
|
|
274
392
|
/**
|
|
275
393
|
* - The form state.
|