@aurodesignsystem-dev/auro-formkit 0.0.0-pr1515.0 → 0.0.0-pr1515.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.
Files changed (49) hide show
  1. package/components/checkbox/demo/customize.min.js +1 -1
  2. package/components/checkbox/demo/getting-started.min.js +1 -1
  3. package/components/checkbox/demo/index.min.js +1 -1
  4. package/components/checkbox/dist/index.js +1 -1
  5. package/components/checkbox/dist/registered.js +1 -1
  6. package/components/combobox/demo/customize.min.js +119 -96
  7. package/components/combobox/demo/getting-started.min.js +119 -96
  8. package/components/combobox/demo/index.min.js +119 -96
  9. package/components/combobox/dist/index.js +118 -95
  10. package/components/combobox/dist/registered.js +118 -95
  11. package/components/counter/demo/customize.min.js +2 -2
  12. package/components/counter/demo/index.min.js +2 -2
  13. package/components/counter/dist/index.js +2 -2
  14. package/components/counter/dist/registered.js +2 -2
  15. package/components/datepicker/demo/customize.min.js +139 -97
  16. package/components/datepicker/demo/index.min.js +139 -97
  17. package/components/datepicker/dist/index.js +139 -97
  18. package/components/datepicker/dist/registered.js +139 -97
  19. package/components/dropdown/demo/customize.min.js +1 -1
  20. package/components/dropdown/demo/getting-started.min.js +1 -1
  21. package/components/dropdown/demo/index.min.js +1 -1
  22. package/components/dropdown/dist/index.js +1 -1
  23. package/components/dropdown/dist/registered.js +1 -1
  24. package/components/form/demo/customize.min.js +381 -293
  25. package/components/form/demo/getting-started.min.js +381 -293
  26. package/components/form/demo/index.min.js +381 -293
  27. package/components/form/demo/registerDemoDeps.min.js +381 -293
  28. package/components/input/demo/api.md +5 -5
  29. package/components/input/demo/customize.md +8 -8
  30. package/components/input/demo/customize.min.js +116 -93
  31. package/components/input/demo/getting-started.min.js +116 -93
  32. package/components/input/demo/index.min.js +116 -93
  33. package/components/input/dist/base-input.d.ts +33 -44
  34. package/components/input/dist/index.js +129 -94
  35. package/components/input/dist/registered.js +116 -93
  36. package/components/radio/demo/customize.min.js +1 -1
  37. package/components/radio/demo/getting-started.min.js +1 -1
  38. package/components/radio/demo/index.min.js +1 -1
  39. package/components/radio/dist/index.js +1 -1
  40. package/components/radio/dist/registered.js +1 -1
  41. package/components/select/demo/customize.md +1 -1
  42. package/components/select/demo/index.min.js +2 -2
  43. package/components/select/dist/index.js +2 -2
  44. package/components/select/dist/registered.js +2 -2
  45. package/custom-elements.json +1944 -1734
  46. package/package.json +1 -1
  47. package/components/select/demo/customize.min.js +0 -10170
  48. package/components/select/demo/demo-support.min.js +0 -55807
  49. package/components/select/demo/getting-started.min.js +0 -10214
@@ -10524,6 +10524,13 @@ let AuroInputUtilities$1 = class AuroInputUtilities {
10524
10524
  * @returns {string | undefined}
10525
10525
  */
10526
10526
  toFormattedValue(valueObject, format) {
10527
+ // Exposed publicly via `AuroInputUtil.toFormattedValue`, so a missing
10528
+ // `format` argument has to fail gracefully rather than throw on
10529
+ // `format.toLowerCase()`. Treat any falsy value (undefined, null, '')
10530
+ // as "no format → no display value".
10531
+ if (!format) {
10532
+ return undefined;
10533
+ }
10527
10534
  const normalizedFormat = format.toLowerCase();
10528
10535
  const maskOptions = this.getMaskOptions('date', normalizedFormat);
10529
10536
 
@@ -13562,7 +13569,7 @@ class AuroBibtemplate extends i$1 {
13562
13569
  }
13563
13570
  }
13564
13571
 
13565
- var formkitVersion$2 = '202606291748';
13572
+ var formkitVersion$2 = '202606291813';
13566
13573
 
13567
13574
  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}
13568
13575
  `,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}}
@@ -19244,7 +19251,7 @@ let AuroHelpText$2 = class AuroHelpText extends i$1 {
19244
19251
  }
19245
19252
  };
19246
19253
 
19247
- var formkitVersion$1 = '202606291748';
19254
+ var formkitVersion$1 = '202606291813';
19248
19255
 
19249
19256
  let AuroElement$2 = class AuroElement extends i$1 {
19250
19257
  static get properties() {
@@ -30970,6 +30977,13 @@ class AuroInputUtilities {
30970
30977
  * @returns {string | undefined}
30971
30978
  */
30972
30979
  toFormattedValue(valueObject, format) {
30980
+ // Exposed publicly via `AuroInputUtil.toFormattedValue`, so a missing
30981
+ // `format` argument has to fail gracefully rather than throw on
30982
+ // `format.toLowerCase()`. Treat any falsy value (undefined, null, '')
30983
+ // as "no format → no display value".
30984
+ if (!format) {
30985
+ return undefined;
30986
+ }
30973
30987
  const normalizedFormat = format.toLowerCase();
30974
30988
  const maskOptions = this.getMaskOptions('date', normalizedFormat);
30975
30989
 
@@ -31120,79 +31134,18 @@ class BaseInput extends AuroElement$1 {
31120
31134
  constructor() {
31121
31135
  super();
31122
31136
 
31123
- this.appearance = "default";
31124
- this.disabled = false;
31125
- this.layout = 'classic';
31126
- this.locale = 'en-US';
31127
- this.max = undefined;
31128
- this._maxObject = undefined;
31129
- this.maxLength = undefined;
31130
- this.min = undefined;
31131
- this._minObject = undefined;
31132
- this.minLength = undefined;
31133
- this.required = false;
31134
- this.onDark = false;
31135
- this.setCustomValidityForType = undefined;
31136
- this.size = 'lg';
31137
- this.shape = 'classic';
31138
- this.value = undefined;
31139
- this._valueObject = undefined;
31140
-
31141
- this._initializePrivateDefaults();
31142
- }
31143
-
31144
- /**
31145
- * Internal Defaults.
31146
- * @private
31147
- * @returns {void}
31148
- */
31149
- _initializePrivateDefaults() {
31137
+ // Single-source initialization. Alphabetized so duplicate or stale
31138
+ // defaults are immediately obvious on a diff. Every field is assigned
31139
+ // exactly once here (previously the constructor + the old
31140
+ // `_initializePrivateDefaults` overlapped — both wrote ~14 of the same
31141
+ // fields and double-allocated `util` and `validation`, discarding the
31142
+ // first instance). `validation` is now allocated exactly once; `util`
31143
+ // is seeded here with an en-US default and then rebuilt in
31144
+ // `connectedCallback` once the consumer-resolved locale is available,
31145
+ // so a parent (datepicker/combobox) calling `validate()` synchronously
31146
+ // during its own update cycle sees a populated util instance.
31150
31147
  this.activeLabel = false;
31151
- this.appearance = "default";
31152
- this.icon = false;
31153
- this.disabled = false;
31154
- this.dvInputOnly = false;
31155
- this.hideLabelVisually = false;
31156
- this.max = undefined;
31157
- this.maxLength = undefined;
31158
- this.min = undefined;
31159
- this.minLength = undefined;
31160
- this.noValidate = false;
31161
- this.onDark = false;
31162
- this.required = false;
31163
- this.setCustomValidityForType = undefined;
31164
-
31165
- // Used for storing raw values returned from input mask.
31166
- this._rawMaskValue = undefined;
31167
-
31168
- /**
31169
- * @private
31170
- */
31171
- this.layout = 'classic';
31172
-
31173
- /**
31174
- * @private
31175
- */
31176
- this.shape = 'classic';
31177
-
31178
- /**
31179
- * @private
31180
- */
31181
- this.size = 'lg';
31182
-
31183
- this.touched = false;
31184
- this.util = new AuroInputUtilities({
31185
- locale: "en-US",
31186
- format: this.format
31187
- });
31188
- this.validation = new AuroFormValidation();
31189
- this.inputIconName = undefined;
31190
- this.showPassword = false;
31191
- this.validationCCLength = undefined;
31192
- this.hasValue = false;
31193
- this.label = 'Input label is undefined';
31194
-
31195
-
31148
+ /** @private */
31196
31149
  this.allowedInputTypes = [
31197
31150
  "text",
31198
31151
  "number",
@@ -31201,7 +31154,8 @@ class BaseInput extends AuroElement$1 {
31201
31154
  "credit-card",
31202
31155
  "tel"
31203
31156
  ];
31204
- this.icon = false;
31157
+ this.appearance = "default";
31158
+ /** @private */
31205
31159
  this.dateFormatMap = {
31206
31160
  'mm/dd/yyyy': 'dateMMDDYYYY',
31207
31161
  'dd/mm/yyyy': 'dateDDMMYYYY',
@@ -31218,27 +31172,57 @@ class BaseInput extends AuroElement$1 {
31218
31172
  'dd/mm': 'dateDDMM',
31219
31173
  'mm/dd': 'dateMMDD'
31220
31174
  };
31175
+ this.disabled = false;
31176
+ /** @private */
31221
31177
  this.domHandler = new DomHandler();
31222
31178
  this.dvInputOnly = false;
31223
31179
  this.hasValue = false;
31180
+ this.hideLabelVisually = false;
31181
+ this.icon = false;
31182
+ /** @private */
31224
31183
  this.inputIconName = undefined;
31184
+ /** @private */
31225
31185
  this.label = 'Input label is undefined';
31186
+ this.layout = 'classic';
31187
+ this.locale = 'en-US';
31188
+ this.max = undefined;
31189
+ this._maxObject = undefined;
31190
+ this.maxLength = undefined;
31191
+ this.min = undefined;
31192
+ this._minObject = undefined;
31193
+ this.minLength = undefined;
31226
31194
  this.noValidate = false;
31227
- this._rawMaskValue = undefined; // Used for storing raw values returned from input mask.
31195
+ this.onDark = false;
31196
+ // Raw values returned from the input mask before model normalization.
31197
+ this._rawMaskValue = undefined;
31198
+ this.required = false;
31199
+ this.setCustomValidityForType = undefined;
31200
+ // Credit Card is intentionally excluded — its mask manages the cursor
31201
+ // itself, and listing it here caused cursor placement issues in Safari.
31202
+ /** @private */
31228
31203
  this.setSelectionInputTypes = [
31229
31204
  "text",
31230
31205
  "password",
31231
31206
  "email"
31232
- ]; // Credit Card is not included as this caused cursor placement issues in Safari.
31207
+ ];
31208
+ this.shape = 'classic';
31209
+ /** @private */
31233
31210
  this.showPassword = false;
31211
+ this.size = 'lg';
31234
31212
  this.touched = false;
31213
+ /** @private */
31235
31214
  this.uniqueId = new UniqueId().create();
31215
+ /** @private */
31236
31216
  this.util = new AuroInputUtilities({
31237
31217
  locale: this.locale,
31238
31218
  format: this.format
31239
31219
  });
31220
+ /** @private */
31240
31221
  this.validation = new AuroFormValidation();
31222
+ /** @private */
31241
31223
  this.validationCCLength = undefined;
31224
+ this.value = undefined;
31225
+ this._valueObject = undefined;
31242
31226
  }
31243
31227
 
31244
31228
  // function to define props used within the scope of this component
@@ -31786,6 +31770,15 @@ class BaseInput extends AuroElement$1 {
31786
31770
 
31787
31771
  this.inputId = this.id ? `${this.id}-input` : window.crypto.randomUUID();
31788
31772
 
31773
+ // Normalize the format token to lowercase so case-mixed values supplied
31774
+ // via attribute (e.g. `format="MM/DD/YYYY"`) hit the `dateFormatMap`
31775
+ // lookup inside `setCustomHelpTextMessage`. Without this, an uppercase
31776
+ // format silently misses the map and leaves `setCustomValidityForType`
31777
+ // unset.
31778
+ if (this.format) {
31779
+ this.format = this.format.toLowerCase();
31780
+ }
31781
+
31789
31782
  // use validity message override if declared when initializing the component
31790
31783
  if (this.hasAttribute('setCustomValidity')) {
31791
31784
  this.ValidityMessageOverride = this.setCustomValidity;
@@ -32219,6 +32212,38 @@ class BaseInput extends AuroElement$1 {
32219
32212
  this.touched = true;
32220
32213
  this.validation.validate(this);
32221
32214
  }
32215
+
32216
+ // Prevents cursor jumping in Safari. Setting `this.value` triggers a Lit
32217
+ // update that can re-render the input and reset the native cursor; we
32218
+ // capture the caret position before that update commits and restore it
32219
+ // via `setSelectionRange` once the update has flushed. Gated on
32220
+ // `setSelectionInputTypes` so credit-card (and other masked types whose
32221
+ // formatter manages the cursor itself) doesn't get a competing write.
32222
+ // Capture the caret position INSIDE the gate — reading `selectionStart`
32223
+ // on input types that don't support text selection (number, email in
32224
+ // some browsers) throws InvalidStateError, which would crash all input
32225
+ // handling. Wrap the read in try/catch belt-and-suspenders even though
32226
+ // the gated types currently support it, since the list is a public
32227
+ // property a consumer could mutate.
32228
+ if (this.setSelectionInputTypes.includes(this.type)) {
32229
+ let selectionStart;
32230
+ try {
32231
+ selectionStart = this.inputElement.selectionStart;
32232
+ } catch (error) { // eslint-disable-line no-unused-vars
32233
+ return;
32234
+ }
32235
+ if (typeof selectionStart !== 'number') {
32236
+ return;
32237
+ }
32238
+ this.updateComplete.then(() => {
32239
+ try {
32240
+ this.inputElement.setSelectionRange(selectionStart, selectionStart);
32241
+ } catch (error) { // eslint-disable-line no-unused-vars
32242
+ // Some input types (number/email in certain UAs) throw on
32243
+ // setSelectionRange; swallow and let the native cursor stand.
32244
+ }
32245
+ });
32246
+ }
32222
32247
  }
32223
32248
 
32224
32249
  /**
@@ -32845,7 +32870,7 @@ let AuroHelpText$1 = class AuroHelpText extends i$1 {
32845
32870
  }
32846
32871
  };
32847
32872
 
32848
- var formkitVersion = '202606291748';
32873
+ var formkitVersion = '202606291813';
32849
32874
 
32850
32875
  // Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
32851
32876
  // See LICENSE in the project root for license information.
@@ -33348,6 +33373,7 @@ class AuroInput extends BaseInput {
33348
33373
  <${this.buttonTag}
33349
33374
  @click="${this.handleClickShowPassword}"
33350
33375
  appearance="${this.onDark ? 'inverse' : this.appearance}"
33376
+ aria-pressed="${this.showPassword ? 'true' : 'false'}"
33351
33377
  class="notificationBtn passwordBtn"
33352
33378
  shape="circle"
33353
33379
  size="sm"
@@ -33421,25 +33447,29 @@ class AuroInput extends BaseInput {
33421
33447
  * @returns {html} - Returns HTML for the help text and error message.
33422
33448
  */
33423
33449
  renderHtmlHelpText() {
33450
+ // Single `<p>` with stable identity across validity transitions —
33451
+ // previously two distinct templates (valid vs invalid) caused Lit to
33452
+ // replace the node entirely on a flip, and VoiceOver wouldn't
33453
+ // re-announce because the live-region element it was watching had been
33454
+ // removed and a new one inserted. Keeping one node means the `role`,
33455
+ // `aria-live`, and text content all change in-place, which AT does
33456
+ // observe and announce.
33457
+ const isError = this.validity && this.validity !== 'valid';
33424
33458
  return u$a`
33425
- ${!this.validity || this.validity === undefined || this.validity === 'valid'
33426
- ? u$a`
33427
- <${this.helpTextTag}
33428
- appearance="${this.onDark ? 'inverse' : this.appearance}">
33429
- <p id="${this.uniqueId}" part="helpText">
33430
- <slot name="helpText">${this.getHelpText()}</slot>
33431
- </p>
33432
- </${this.helpTextTag}>
33433
- `
33434
- : u$a`
33435
- <${this.helpTextTag} error
33436
- appearance="${this.onDark ? 'inverse' : this.appearance}">
33437
- <p id="${this.uniqueId}" role="alert" aria-live="assertive" part="helpText">
33438
- ${this.errorMessage}
33439
- </p>
33440
- </${this.helpTextTag}>
33441
- `
33442
- }
33459
+ <${this.helpTextTag}
33460
+ appearance="${this.onDark ? 'inverse' : this.appearance}"
33461
+ ?error=${isError}>
33462
+ <p
33463
+ id="${this.uniqueId}"
33464
+ part="helpText"
33465
+ role="${o$2(isError ? 'alert' : undefined)}"
33466
+ aria-live="${o$2(isError ? 'assertive' : undefined)}">
33467
+ ${isError
33468
+ ? this.errorMessage
33469
+ : u$a`<slot name="helpText">${this.getHelpText()}</slot>`
33470
+ }
33471
+ </p>
33472
+ </${this.helpTextTag}>
33443
33473
  `;
33444
33474
  }
33445
33475
 
@@ -33586,6 +33616,15 @@ function formatISODate(isoStr, format) {
33586
33616
  try {
33587
33617
  const date = dateFormatter.stringToDateInstance(isoStr);
33588
33618
 
33619
+ // `stringToDateInstance` returns an `Invalid Date` for malformed strings
33620
+ // and `null` for non-string input — it does NOT throw. Without this
33621
+ // guard, `getFullYear()`/`getMonth()`/`getDate()` on an Invalid Date
33622
+ // yield `NaN`, and `String(NaN).padStart(4, '0')` produces literals
33623
+ // like "0NaN/0NaN/0NaN" instead of `undefined`.
33624
+ if (!(date instanceof Date) || Number.isNaN(date.getTime())) {
33625
+ return undefined;
33626
+ }
33627
+
33589
33628
  const year = String(date.getFullYear()).padStart(4, '0');
33590
33629
  const month = String(date.getMonth() + 1).padStart(2, '0');
33591
33630
  const day = String(date.getDate()).padStart(2, '0');
@@ -33596,7 +33635,10 @@ function formatISODate(isoStr, format) {
33596
33635
  replace(/mm/iu, month).
33597
33636
  replace(/dd/iu, day);
33598
33637
  } catch (err) {
33599
- // If the input string is not a valid date, return undefined
33638
+ // Defensive: the Date-returning path is guarded above, but `parseDate`
33639
+ // (inside `stringToDateInstance`) could throw on pathological input
33640
+ // future-library-versions might introduce. Treat any thrown error as
33641
+ // "not a valid date" and return undefined.
33600
33642
  return undefined;
33601
33643
  }
33602
33644
  }