@aurodesignsystem-dev/auro-formkit 0.0.0-pr1508.0 → 0.0.0-pr1509.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) 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 +293 -141
  7. package/components/combobox/demo/getting-started.min.js +293 -141
  8. package/components/combobox/demo/index.min.js +293 -141
  9. package/components/combobox/dist/auro-combobox.d.ts +0 -9
  10. package/components/combobox/dist/index.js +293 -141
  11. package/components/combobox/dist/registered.js +293 -141
  12. package/components/counter/demo/customize.min.js +2 -2
  13. package/components/counter/demo/index.min.js +2 -2
  14. package/components/counter/dist/index.js +2 -2
  15. package/components/counter/dist/registered.js +2 -2
  16. package/components/datepicker/demo/customize.min.js +167 -44
  17. package/components/datepicker/demo/index.min.js +167 -44
  18. package/components/datepicker/dist/index.js +167 -44
  19. package/components/datepicker/dist/registered.js +167 -44
  20. package/components/dropdown/demo/customize.min.js +1 -1
  21. package/components/dropdown/demo/getting-started.min.js +1 -1
  22. package/components/dropdown/demo/index.min.js +1 -1
  23. package/components/dropdown/dist/index.js +1 -1
  24. package/components/dropdown/dist/registered.js +1 -1
  25. package/components/form/demo/customize.min.js +631 -232
  26. package/components/form/demo/getting-started.min.js +631 -232
  27. package/components/form/demo/index.min.js +631 -232
  28. package/components/form/demo/registerDemoDeps.min.js +631 -232
  29. package/components/input/demo/customize.min.js +165 -41
  30. package/components/input/demo/getting-started.min.js +165 -41
  31. package/components/input/demo/index.min.js +165 -41
  32. package/components/input/dist/base-input.d.ts +49 -1
  33. package/components/input/dist/index.js +165 -41
  34. package/components/input/dist/registered.js +165 -41
  35. package/components/radio/demo/customize.min.js +1 -1
  36. package/components/radio/demo/getting-started.min.js +1 -1
  37. package/components/radio/demo/index.min.js +1 -1
  38. package/components/radio/dist/index.js +1 -1
  39. package/components/radio/dist/registered.js +1 -1
  40. package/components/select/demo/customize.min.js +2 -2
  41. package/components/select/demo/getting-started.min.js +2 -2
  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 +264 -20
  46. package/package.json +1 -1
@@ -10511,7 +10511,6 @@ let AuroInputUtilities$1 = class AuroInputUtilities {
10511
10511
  const maskOptions = this.getMaskOptions('date', normalizedFormat);
10512
10512
 
10513
10513
  if (!(valueObject instanceof Date) || Number.isNaN(valueObject.getTime()) || !maskOptions || typeof maskOptions.format !== 'function') {
10514
- console.debug('Invalid date object or mask options for formatting', { valueObject, maskOptions }); // eslint-disable-line no-console
10515
10514
  return undefined;
10516
10515
  }
10517
10516
 
@@ -13392,7 +13391,7 @@ class AuroBibtemplate extends LitElement {
13392
13391
  }
13393
13392
  }
13394
13393
 
13395
- var formkitVersion$2 = '202606231948';
13394
+ var formkitVersion$2 = '202606232113';
13396
13395
 
13397
13396
  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=literal`${unsafeStatic(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$1 = 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=css`: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}
13398
13397
  `,u$4=css`.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}}
@@ -18903,7 +18902,7 @@ let AuroHelpText$2 = class AuroHelpText extends LitElement {
18903
18902
  }
18904
18903
  };
18905
18904
 
18906
- var formkitVersion$1 = '202606231948';
18905
+ var formkitVersion$1 = '202606232113';
18907
18906
 
18908
18907
  let AuroElement$2 = class AuroElement extends LitElement {
18909
18908
  static get properties() {
@@ -30625,7 +30624,6 @@ class AuroInputUtilities {
30625
30624
  const maskOptions = this.getMaskOptions('date', normalizedFormat);
30626
30625
 
30627
30626
  if (!(valueObject instanceof Date) || Number.isNaN(valueObject.getTime()) || !maskOptions || typeof maskOptions.format !== 'function') {
30628
- console.debug('Invalid date object or mask options for formatting', { valueObject, maskOptions }); // eslint-disable-line no-console
30629
30627
  return undefined;
30630
30628
  }
30631
30629
 
@@ -30777,8 +30775,10 @@ class BaseInput extends AuroElement$1 {
30777
30775
  this.layout = 'classic';
30778
30776
  this.locale = 'en-US';
30779
30777
  this.max = undefined;
30778
+ this._maxObject = undefined;
30780
30779
  this.maxLength = undefined;
30781
30780
  this.min = undefined;
30781
+ this._minObject = undefined;
30782
30782
  this.minLength = undefined;
30783
30783
  this.required = false;
30784
30784
  this.onDark = false;
@@ -30786,6 +30786,7 @@ class BaseInput extends AuroElement$1 {
30786
30786
  this.size = 'lg';
30787
30787
  this.shape = 'classic';
30788
30788
  this.value = undefined;
30789
+ this._valueObject = undefined;
30789
30790
 
30790
30791
  this._initializePrivateDefaults();
30791
30792
  }
@@ -31325,7 +31326,7 @@ class BaseInput extends AuroElement$1 {
31325
31326
  * @returns {Date|undefined}
31326
31327
  */
31327
31328
  get valueObject() {
31328
- return this.value && dateFormatter.isValidDate(this.value) ? dateFormatter.stringToDateInstance(this.value) : undefined;
31329
+ return this._valueObject || this._computeDateObjectFallback(this.value);
31329
31330
  }
31330
31331
 
31331
31332
  /**
@@ -31333,7 +31334,7 @@ class BaseInput extends AuroElement$1 {
31333
31334
  * @returns {Date|undefined}
31334
31335
  */
31335
31336
  get minObject() {
31336
- return this.min && dateFormatter.isValidDate(this.min) ? dateFormatter.stringToDateInstance(this.min) : undefined;
31337
+ return this._minObject || this._computeDateObjectFallback(this.min);
31337
31338
  }
31338
31339
 
31339
31340
  /**
@@ -31341,7 +31342,50 @@ class BaseInput extends AuroElement$1 {
31341
31342
  * @returns {Date|undefined}
31342
31343
  */
31343
31344
  get maxObject() {
31344
- return this.max && dateFormatter.isValidDate(this.max) ? dateFormatter.stringToDateInstance(this.max) : undefined;
31345
+ return this._maxObject || this._computeDateObjectFallback(this.max);
31346
+ }
31347
+
31348
+ /**
31349
+ * Parses a date string into a Date object when the corresponding `_*Object`
31350
+ * field hasn't been synced yet by `updated()`. Returns undefined when the
31351
+ * input type/format isn't a full date or the string is not a valid date.
31352
+ *
31353
+ * Why this exists: a parent (datepicker) can call `inputN.validate()` from
31354
+ * inside its own `updated()` before this input's `updated()` has run
31355
+ * `syncDateValues()` — so `_valueObject`/`_maxObject` are still `undefined`
31356
+ * and range checks would otherwise silently no-op (flipping the result to
31357
+ * `valid` or `patternMismatch`).
31358
+ * @private
31359
+ * @param {string|undefined} dateStr - ISO date string from `value`/`min`/`max`.
31360
+ * @returns {Date|undefined}
31361
+ */
31362
+ _computeDateObjectFallback(dateStr) {
31363
+ if (!dateStr || !this.util || !this.util.isFullDateFormat(this.type, this.format)) {
31364
+ return undefined;
31365
+ }
31366
+ if (!dateFormatter.isValidDate(dateStr)) {
31367
+ return undefined;
31368
+ }
31369
+ return dateFormatter.stringToDateInstance(dateStr);
31370
+ }
31371
+
31372
+ /**
31373
+ * Internal setter for readonly date object properties.
31374
+ * @private
31375
+ * @param {'valueObject'|'minObject'|'maxObject'} propertyName - Public object property name.
31376
+ * @param {Date|undefined} propertyValue - Value to assign.
31377
+ * @returns {void}
31378
+ */
31379
+ setDateObjectProperty(propertyName, propertyValue) {
31380
+ const internalPropertyName = `_${propertyName}`;
31381
+ const previousValue = this[internalPropertyName];
31382
+
31383
+ if (previousValue === propertyValue) {
31384
+ return;
31385
+ }
31386
+
31387
+ this[internalPropertyName] = propertyValue;
31388
+ this.requestUpdate(propertyName, previousValue);
31345
31389
  }
31346
31390
 
31347
31391
  connectedCallback() {
@@ -31370,6 +31414,7 @@ class BaseInput extends AuroElement$1 {
31370
31414
  format: this.format
31371
31415
  });
31372
31416
  this.configureDataForType();
31417
+ this.syncDateValues();
31373
31418
  }
31374
31419
 
31375
31420
  disconnectedCallback() {
@@ -31389,6 +31434,15 @@ class BaseInput extends AuroElement$1 {
31389
31434
  this.wrapperElement.addEventListener('click', this.handleClick);
31390
31435
  }
31391
31436
 
31437
+ // add attribute for query selectors when auro-input is registered under a custom name
31438
+ // COVERAGE: the body of this branch is unreachable in WTR — connectedCallback
31439
+ // performs the same `setAttribute('auro-input', '')` earlier (see L665-667),
31440
+ // so by the time firstUpdated runs the attribute is already present and the
31441
+ // `!hasAttribute('auro-input')` guard is false. Retained as a defensive
31442
+ // safety net in case connectedCallback is ever short-circuited.
31443
+ if (this.tagName.toLowerCase() !== 'auro-input' && !this.hasAttribute('auro-input')) {
31444
+ this.setAttribute('auro-input', '');
31445
+ }
31392
31446
  this.inputId = this.id ? `${this.id}-input` : window.crypto.randomUUID();
31393
31447
 
31394
31448
  // use validity message override if declared when initializing the component
@@ -31399,6 +31453,7 @@ class BaseInput extends AuroElement$1 {
31399
31453
  this.setCustomHelpTextMessage();
31400
31454
  this.configureAutoFormatting();
31401
31455
  this.configureDataForType();
31456
+ this.syncDateValues();
31402
31457
  }
31403
31458
 
31404
31459
  /**
@@ -31474,6 +31529,13 @@ class BaseInput extends AuroElement$1 {
31474
31529
 
31475
31530
  if (typeToI18n.includes(this.type)) {
31476
31531
  this.setCustomValidityForType = i18n$1(this.lang, this.type);
31532
+ // COVERAGE: this `else if` branch is unreachable in WTR. connectedCallback
31533
+ // (L682) calls configureDataForType, which at L1266-1268 assigns
31534
+ // `this.format = this.util.getDateMaskFromLocale().toLowerCase()` for any
31535
+ // type=date input whose `format` attribute is unset. That runs before
31536
+ // firstUpdated invokes setCustomHelpTextMessage, so `!this.format` is
31537
+ // always false here. Retained as a defensive fallback; the whole function
31538
+ // is @deprecated per AB#1557296 and slated for removal.
31477
31539
  } else if (!this.format && this.type === 'date') {
31478
31540
  this.setCustomValidityForType = i18n$1(this.lang, 'dateMMDDYYYY');
31479
31541
  } else if (this.dateFormatMap[this.format]) {
@@ -31535,6 +31597,8 @@ class BaseInput extends AuroElement$1 {
31535
31597
  this.configureDataForType();
31536
31598
  }
31537
31599
 
31600
+ this.syncDateValues(changedProperties);
31601
+
31538
31602
  if (changedProperties.has('value')) {
31539
31603
  if (this.value && this.value.length > 0) {
31540
31604
  this.hasValue = true;
@@ -31556,14 +31620,14 @@ class BaseInput extends AuroElement$1 {
31556
31620
 
31557
31621
  if (formattedValue !== this.inputElement.value) {
31558
31622
  this.skipNextProgrammaticInputEvent = true;
31559
- if (this.maskInstance && this.type !== 'date') {
31623
+ if (this.maskInstance && this.type === 'credit-card') {
31560
31624
  // Route through the mask so its _value and el.value stay in lock-step
31561
31625
  // (set value calls updateControl which writes el.value = displayValue).
31562
31626
  // Writing el.value directly leaves the mask thinking displayValue is
31563
- // stale; _saveSelection on the next focus/click then warns. Date is
31564
- // excluded because its formattedValue can be raw ISO when the calendar
31565
- // is invalid, and re-masking through mm/dd/yyyy would truncate it and
31566
- // flip validity from patternMismatch to tooShort.
31627
+ // stale; _saveSelection on the next focus/click then warns. Scoped to
31628
+ // credit-card so date's own formattedValue (raw ISO when calendar-invalid)
31629
+ // isn't re-masked through the mm/dd/yyyy mask, which would truncate it
31630
+ // and flip validity from patternMismatch to tooShort.
31567
31631
  this.maskInstance.value = formattedValue || '';
31568
31632
  } else if (formattedValue) {
31569
31633
  this.inputElement.value = formattedValue;
@@ -31605,65 +31669,120 @@ class BaseInput extends AuroElement$1 {
31605
31669
  }));
31606
31670
  }
31607
31671
 
31672
+
31673
+ /**
31674
+ * Synchronizes the ISO string values and Date object representations for date-related properties.
31675
+ * This keeps the model and display values aligned when either side changes.
31676
+ *
31677
+ * When a full date format is in use, this method updates `value`, `min`, and `max` from their corresponding
31678
+ * Date objects or vice versa, based on which properties have changed. It only runs when the current configuration
31679
+ * represents a full year/month/day date format.
31680
+ *
31681
+ * @param {Map<string, unknown>|undefined} [changedProperties=undefined] - Optional map of changed properties used to limit which values are synchronized.
31682
+ * @returns {void}
31683
+ * @private
31684
+ */
31685
+ syncDateValues(changedProperties = undefined) {
31686
+ if (!this.util.isFullDateFormat(this.type, this.format)) {
31687
+ return;
31688
+ }
31689
+
31690
+ this.syncSingleDateValue(changedProperties, 'valueObject', 'value');
31691
+ this.syncSingleDateValue(changedProperties, 'minObject', 'min');
31692
+ this.syncSingleDateValue(changedProperties, 'maxObject', 'max');
31693
+ }
31694
+
31695
+ /**
31696
+ * Synchronizes one date object/string property pair.
31697
+ * @private
31698
+ * @param {Map<string, unknown>|undefined} changedProperties - Map of changed properties from Lit.
31699
+ * @param {string} objectProperty - Date object property name.
31700
+ * @param {string} valueProperty - ISO string property name.
31701
+ * @returns {void}
31702
+ */
31703
+ syncSingleDateValue(changedProperties, objectProperty, valueProperty) {
31704
+ const objectPropertyChanged = !changedProperties || changedProperties.has(objectProperty);
31705
+
31706
+ // objectProperty wins over valueProperty when both changed
31707
+ if (objectPropertyChanged && this[objectProperty]) {
31708
+ this[valueProperty] = dateFormatter.toISOFormatString(this[objectProperty]);
31709
+ return;
31710
+ }
31711
+
31712
+ const valuePropertyChanged = !changedProperties || changedProperties.has(valueProperty);
31713
+ if (!valuePropertyChanged) {
31714
+ return;
31715
+ }
31716
+
31717
+ // when value is newly set to the same ISO string that corresponds to the existing Date object, do not clear the Date object (avoid unnecessary updates)
31718
+ if (
31719
+ changedProperties &&
31720
+ valueProperty === 'value' &&
31721
+ changedProperties.get('value') === undefined &&
31722
+ this[objectProperty] instanceof Date &&
31723
+ this[valueProperty] === dateFormatter.toISOFormatString(this[objectProperty])
31724
+ ) {
31725
+ return;
31726
+ }
31727
+
31728
+ if (dateFormatter.isValidDate(this[valueProperty])) {
31729
+ this.setDateObjectProperty(objectProperty, dateFormatter.stringToDateInstance(this[valueProperty]));
31730
+ } else {
31731
+ this.setDateObjectProperty(objectProperty, undefined);
31732
+ }
31733
+ }
31734
+
31608
31735
  /**
31609
31736
  * Sets up IMasks and logic based on auto-formatting requirements.
31610
31737
  * @private
31611
31738
  * @returns {void}
31612
31739
  */
31613
31740
  configureAutoFormatting() {
31614
- // _configuringMask gates two things: external re-entry into this method
31615
- // while setup is mid-flight (from property changes that call back here),
31616
- // and the accept/complete listeners below both need to ignore the mask
31617
- // events fired by our own value-restore step.
31741
+ // Re-entrancy guard. The patched-setter's synthetic input event (suppressed
31742
+ // by _configuringMask above) could otherwise trigger handleInput
31743
+ // processCreditCard configureAutoFormatting before the outer call's
31744
+ // set value has finished its alignCursor pass.
31618
31745
  if (this._configuringMask) return;
31619
31746
  this._configuringMask = true;
31620
31747
  try {
31621
- // Destroy any prior mask so IMask can attach fresh under the new format.
31622
- // Null the reference too — if the new maskOptions.mask is falsy (e.g.
31623
- // type switched from credit-card to text) the IMask() reassignment
31624
- // below is skipped, and downstream writes at line ~823 would otherwise
31625
- // route through the destroyed instance.
31626
31748
  if (this.maskInstance) {
31627
31749
  this.maskInstance.destroy();
31628
- this.maskInstance = null;
31629
31750
  }
31630
31751
 
31752
+ // Pass new format to util
31631
31753
  this.util.updateFormat(this.format);
31632
31754
 
31633
31755
  const maskOptions = this.util.getMaskOptions(this.type, this.format);
31634
31756
 
31635
31757
  if (this.inputElement && maskOptions.mask) {
31636
- // Capture the current display so it can be re-applied after IMask
31637
- // attaches. The restore at the bottom goes through maskInstance.value
31638
- // (not inputElement.value directly) so the mask's internal state and
31639
- // the input's displayed text stay in lock-step.
31640
- let existingValue = this.inputElement.value;
31641
31758
 
31642
- // Format-change case (e.g. locale switch): existingValue is the OLD
31643
- // mask's display string and may not parse under the new mask. When
31644
- // we have a valid date model, rebuild the display from valueObject
31645
- // (the canonical source) using the new mask's format function.
31759
+ // Stash and clear any existing value before IMask init.
31760
+ // IMask's constructor processes the current input value which requires
31761
+ // selection state clearing first avoids that scenario entirely.
31762
+ // When the format changes (e.g. locale switch) and we have a valid ISO
31763
+ // model value, compute the display string for the NEW format instead of
31764
+ // re-using the old display string, which may be invalid in the new mask.
31765
+ let existingValue = this.inputElement.value;
31646
31766
  if (
31647
31767
  this.util.isFullDateFormat(this.type, this.format) &&
31648
31768
  this.value &&
31649
- this.valueObject &&
31769
+ dateFormatter.isValidDate(this.value) &&
31770
+ this.valueObject instanceof Date &&
31771
+ !Number.isNaN(this.valueObject.getTime()) &&
31650
31772
  typeof maskOptions.format === 'function'
31651
31773
  ) {
31652
31774
  existingValue = maskOptions.format(this.valueObject);
31653
31775
  }
31654
31776
 
31655
- // Clear before IMask attaches so the constructor seeds an empty
31656
- // internal value. Otherwise IMask reads the stale unmasked string
31657
- // and emits a spurious 'accept' before the restore below runs.
31658
31777
  this.skipNextProgrammaticInputEvent = true;
31659
31778
  this.inputElement.value = '';
31660
31779
 
31661
31780
  this.maskInstance = IMask(this.inputElement, maskOptions);
31662
31781
 
31663
- // Mask fires 'accept' on every value change, including the restore
31664
- // step below. Skip events fired during configureAutoFormatting so
31665
- // we don't overwrite a value the parent just pushed.
31666
31782
  this.maskInstance.on('accept', () => {
31783
+ // Suppress propagation during configureAutoFormatting's own value-restoration
31784
+ // (line below) — the mask emits 'accept' on every value-set, including ours,
31785
+ // and we don't want to overwrite a value the parent just pushed.
31667
31786
  if (this._configuringMask) return;
31668
31787
  this.value = this.util.toModelValue(this.maskInstance.value, this.format);
31669
31788
  if (this.type === "date") {
@@ -31671,8 +31790,6 @@ class BaseInput extends AuroElement$1 {
31671
31790
  }
31672
31791
  });
31673
31792
 
31674
- // Mask fires 'complete' on the restore step below for any value that
31675
- // happens to be a complete match. Same setup-suppression as 'accept'.
31676
31793
  this.maskInstance.on('complete', () => {
31677
31794
  if (this._configuringMask) return;
31678
31795
  this.value = this.util.toModelValue(this.maskInstance.value, this.format);
@@ -31681,9 +31798,7 @@ class BaseInput extends AuroElement$1 {
31681
31798
  }
31682
31799
  });
31683
31800
 
31684
- // Write existingValue through the mask (not the input directly) so
31685
- // the mask reformats it under the new rules and keeps its internal
31686
- // _value aligned with the input's displayed text.
31801
+ // Restore the stashed value through IMask so it's properly masked
31687
31802
  if (existingValue) {
31688
31803
  this.maskInstance.value = existingValue;
31689
31804
  }
@@ -31851,6 +31966,7 @@ class BaseInput extends AuroElement$1 {
31851
31966
  */
31852
31967
  reset() {
31853
31968
  this.value = undefined;
31969
+ this.setDateObjectProperty('valueObject', undefined);
31854
31970
  this.validation.reset(this);
31855
31971
  }
31856
31972
 
@@ -31859,6 +31975,7 @@ class BaseInput extends AuroElement$1 {
31859
31975
  */
31860
31976
  clear() {
31861
31977
  this.value = undefined;
31978
+ this.setDateObjectProperty('valueObject', undefined);
31862
31979
  }
31863
31980
 
31864
31981
  /**
@@ -31896,6 +32013,12 @@ class BaseInput extends AuroElement$1 {
31896
32013
  */
31897
32014
  get placeholderStr() {
31898
32015
  if (!this.placeholder && this.type === 'date') {
32016
+ // COVERAGE: the `'MM/DD/YYYY'` literal fallback is unreachable in WTR.
32017
+ // connectedCallback (L682) calls configureDataForType, which at L1266-1268
32018
+ // assigns `this.format = this.util.getDateMaskFromLocale().toLowerCase()`
32019
+ // when type=date and format is unset. That runs before the first render
32020
+ // reads this getter, so the ternary's truthy arm always wins. Retained
32021
+ // as a defensive fallback for direct getter calls before connection.
31899
32022
  return this.format ? this.format.toUpperCase() : 'MM/DD/YYYY';
31900
32023
  }
31901
32024
  return this.placeholder || "";
@@ -32387,7 +32510,7 @@ let AuroHelpText$1 = class AuroHelpText extends LitElement {
32387
32510
  }
32388
32511
  };
32389
32512
 
32390
- var formkitVersion = '202606231948';
32513
+ var formkitVersion = '202606232113';
32391
32514
 
32392
32515
  // Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
32393
32516
  // See LICENSE in the project root for license information.