@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
@@ -10528,7 +10528,6 @@ let AuroInputUtilities$1 = class AuroInputUtilities {
10528
10528
  const maskOptions = this.getMaskOptions('date', normalizedFormat);
10529
10529
 
10530
10530
  if (!(valueObject instanceof Date) || Number.isNaN(valueObject.getTime()) || !maskOptions || typeof maskOptions.format !== 'function') {
10531
- console.debug('Invalid date object or mask options for formatting', { valueObject, maskOptions }); // eslint-disable-line no-console
10532
10531
  return undefined;
10533
10532
  }
10534
10533
 
@@ -13440,7 +13439,7 @@ class AuroBibtemplate extends i$1 {
13440
13439
  }
13441
13440
  }
13442
13441
 
13443
- var formkitVersion$2 = '202606231948';
13442
+ var formkitVersion$2 = '202606232113';
13444
13443
 
13445
13444
  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}
13446
13445
  `,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}}
@@ -18975,7 +18974,7 @@ let AuroHelpText$2 = class AuroHelpText extends i$1 {
18975
18974
  }
18976
18975
  };
18977
18976
 
18978
- var formkitVersion$1 = '202606231948';
18977
+ var formkitVersion$1 = '202606232113';
18979
18978
 
18980
18979
  let AuroElement$2 = class AuroElement extends i$1 {
18981
18980
  static get properties() {
@@ -30704,7 +30703,6 @@ class AuroInputUtilities {
30704
30703
  const maskOptions = this.getMaskOptions('date', normalizedFormat);
30705
30704
 
30706
30705
  if (!(valueObject instanceof Date) || Number.isNaN(valueObject.getTime()) || !maskOptions || typeof maskOptions.format !== 'function') {
30707
- console.debug('Invalid date object or mask options for formatting', { valueObject, maskOptions }); // eslint-disable-line no-console
30708
30706
  return undefined;
30709
30707
  }
30710
30708
 
@@ -30856,8 +30854,10 @@ class BaseInput extends AuroElement$1 {
30856
30854
  this.layout = 'classic';
30857
30855
  this.locale = 'en-US';
30858
30856
  this.max = undefined;
30857
+ this._maxObject = undefined;
30859
30858
  this.maxLength = undefined;
30860
30859
  this.min = undefined;
30860
+ this._minObject = undefined;
30861
30861
  this.minLength = undefined;
30862
30862
  this.required = false;
30863
30863
  this.onDark = false;
@@ -30865,6 +30865,7 @@ class BaseInput extends AuroElement$1 {
30865
30865
  this.size = 'lg';
30866
30866
  this.shape = 'classic';
30867
30867
  this.value = undefined;
30868
+ this._valueObject = undefined;
30868
30869
 
30869
30870
  this._initializePrivateDefaults();
30870
30871
  }
@@ -31404,7 +31405,7 @@ class BaseInput extends AuroElement$1 {
31404
31405
  * @returns {Date|undefined}
31405
31406
  */
31406
31407
  get valueObject() {
31407
- return this.value && dateFormatter.isValidDate(this.value) ? dateFormatter.stringToDateInstance(this.value) : undefined;
31408
+ return this._valueObject || this._computeDateObjectFallback(this.value);
31408
31409
  }
31409
31410
 
31410
31411
  /**
@@ -31412,7 +31413,7 @@ class BaseInput extends AuroElement$1 {
31412
31413
  * @returns {Date|undefined}
31413
31414
  */
31414
31415
  get minObject() {
31415
- return this.min && dateFormatter.isValidDate(this.min) ? dateFormatter.stringToDateInstance(this.min) : undefined;
31416
+ return this._minObject || this._computeDateObjectFallback(this.min);
31416
31417
  }
31417
31418
 
31418
31419
  /**
@@ -31420,7 +31421,50 @@ class BaseInput extends AuroElement$1 {
31420
31421
  * @returns {Date|undefined}
31421
31422
  */
31422
31423
  get maxObject() {
31423
- return this.max && dateFormatter.isValidDate(this.max) ? dateFormatter.stringToDateInstance(this.max) : undefined;
31424
+ return this._maxObject || this._computeDateObjectFallback(this.max);
31425
+ }
31426
+
31427
+ /**
31428
+ * Parses a date string into a Date object when the corresponding `_*Object`
31429
+ * field hasn't been synced yet by `updated()`. Returns undefined when the
31430
+ * input type/format isn't a full date or the string is not a valid date.
31431
+ *
31432
+ * Why this exists: a parent (datepicker) can call `inputN.validate()` from
31433
+ * inside its own `updated()` before this input's `updated()` has run
31434
+ * `syncDateValues()` — so `_valueObject`/`_maxObject` are still `undefined`
31435
+ * and range checks would otherwise silently no-op (flipping the result to
31436
+ * `valid` or `patternMismatch`).
31437
+ * @private
31438
+ * @param {string|undefined} dateStr - ISO date string from `value`/`min`/`max`.
31439
+ * @returns {Date|undefined}
31440
+ */
31441
+ _computeDateObjectFallback(dateStr) {
31442
+ if (!dateStr || !this.util || !this.util.isFullDateFormat(this.type, this.format)) {
31443
+ return undefined;
31444
+ }
31445
+ if (!dateFormatter.isValidDate(dateStr)) {
31446
+ return undefined;
31447
+ }
31448
+ return dateFormatter.stringToDateInstance(dateStr);
31449
+ }
31450
+
31451
+ /**
31452
+ * Internal setter for readonly date object properties.
31453
+ * @private
31454
+ * @param {'valueObject'|'minObject'|'maxObject'} propertyName - Public object property name.
31455
+ * @param {Date|undefined} propertyValue - Value to assign.
31456
+ * @returns {void}
31457
+ */
31458
+ setDateObjectProperty(propertyName, propertyValue) {
31459
+ const internalPropertyName = `_${propertyName}`;
31460
+ const previousValue = this[internalPropertyName];
31461
+
31462
+ if (previousValue === propertyValue) {
31463
+ return;
31464
+ }
31465
+
31466
+ this[internalPropertyName] = propertyValue;
31467
+ this.requestUpdate(propertyName, previousValue);
31424
31468
  }
31425
31469
 
31426
31470
  connectedCallback() {
@@ -31449,6 +31493,7 @@ class BaseInput extends AuroElement$1 {
31449
31493
  format: this.format
31450
31494
  });
31451
31495
  this.configureDataForType();
31496
+ this.syncDateValues();
31452
31497
  }
31453
31498
 
31454
31499
  disconnectedCallback() {
@@ -31468,6 +31513,15 @@ class BaseInput extends AuroElement$1 {
31468
31513
  this.wrapperElement.addEventListener('click', this.handleClick);
31469
31514
  }
31470
31515
 
31516
+ // add attribute for query selectors when auro-input is registered under a custom name
31517
+ // COVERAGE: the body of this branch is unreachable in WTR — connectedCallback
31518
+ // performs the same `setAttribute('auro-input', '')` earlier (see L665-667),
31519
+ // so by the time firstUpdated runs the attribute is already present and the
31520
+ // `!hasAttribute('auro-input')` guard is false. Retained as a defensive
31521
+ // safety net in case connectedCallback is ever short-circuited.
31522
+ if (this.tagName.toLowerCase() !== 'auro-input' && !this.hasAttribute('auro-input')) {
31523
+ this.setAttribute('auro-input', '');
31524
+ }
31471
31525
  this.inputId = this.id ? `${this.id}-input` : window.crypto.randomUUID();
31472
31526
 
31473
31527
  // use validity message override if declared when initializing the component
@@ -31478,6 +31532,7 @@ class BaseInput extends AuroElement$1 {
31478
31532
  this.setCustomHelpTextMessage();
31479
31533
  this.configureAutoFormatting();
31480
31534
  this.configureDataForType();
31535
+ this.syncDateValues();
31481
31536
  }
31482
31537
 
31483
31538
  /**
@@ -31553,6 +31608,13 @@ class BaseInput extends AuroElement$1 {
31553
31608
 
31554
31609
  if (typeToI18n.includes(this.type)) {
31555
31610
  this.setCustomValidityForType = i18n$1(this.lang, this.type);
31611
+ // COVERAGE: this `else if` branch is unreachable in WTR. connectedCallback
31612
+ // (L682) calls configureDataForType, which at L1266-1268 assigns
31613
+ // `this.format = this.util.getDateMaskFromLocale().toLowerCase()` for any
31614
+ // type=date input whose `format` attribute is unset. That runs before
31615
+ // firstUpdated invokes setCustomHelpTextMessage, so `!this.format` is
31616
+ // always false here. Retained as a defensive fallback; the whole function
31617
+ // is @deprecated per AB#1557296 and slated for removal.
31556
31618
  } else if (!this.format && this.type === 'date') {
31557
31619
  this.setCustomValidityForType = i18n$1(this.lang, 'dateMMDDYYYY');
31558
31620
  } else if (this.dateFormatMap[this.format]) {
@@ -31614,6 +31676,8 @@ class BaseInput extends AuroElement$1 {
31614
31676
  this.configureDataForType();
31615
31677
  }
31616
31678
 
31679
+ this.syncDateValues(changedProperties);
31680
+
31617
31681
  if (changedProperties.has('value')) {
31618
31682
  if (this.value && this.value.length > 0) {
31619
31683
  this.hasValue = true;
@@ -31635,14 +31699,14 @@ class BaseInput extends AuroElement$1 {
31635
31699
 
31636
31700
  if (formattedValue !== this.inputElement.value) {
31637
31701
  this.skipNextProgrammaticInputEvent = true;
31638
- if (this.maskInstance && this.type !== 'date') {
31702
+ if (this.maskInstance && this.type === 'credit-card') {
31639
31703
  // Route through the mask so its _value and el.value stay in lock-step
31640
31704
  // (set value calls updateControl which writes el.value = displayValue).
31641
31705
  // Writing el.value directly leaves the mask thinking displayValue is
31642
- // stale; _saveSelection on the next focus/click then warns. Date is
31643
- // excluded because its formattedValue can be raw ISO when the calendar
31644
- // is invalid, and re-masking through mm/dd/yyyy would truncate it and
31645
- // flip validity from patternMismatch to tooShort.
31706
+ // stale; _saveSelection on the next focus/click then warns. Scoped to
31707
+ // credit-card so date's own formattedValue (raw ISO when calendar-invalid)
31708
+ // isn't re-masked through the mm/dd/yyyy mask, which would truncate it
31709
+ // and flip validity from patternMismatch to tooShort.
31646
31710
  this.maskInstance.value = formattedValue || '';
31647
31711
  } else if (formattedValue) {
31648
31712
  this.inputElement.value = formattedValue;
@@ -31684,65 +31748,120 @@ class BaseInput extends AuroElement$1 {
31684
31748
  }));
31685
31749
  }
31686
31750
 
31751
+
31752
+ /**
31753
+ * Synchronizes the ISO string values and Date object representations for date-related properties.
31754
+ * This keeps the model and display values aligned when either side changes.
31755
+ *
31756
+ * When a full date format is in use, this method updates `value`, `min`, and `max` from their corresponding
31757
+ * Date objects or vice versa, based on which properties have changed. It only runs when the current configuration
31758
+ * represents a full year/month/day date format.
31759
+ *
31760
+ * @param {Map<string, unknown>|undefined} [changedProperties=undefined] - Optional map of changed properties used to limit which values are synchronized.
31761
+ * @returns {void}
31762
+ * @private
31763
+ */
31764
+ syncDateValues(changedProperties = undefined) {
31765
+ if (!this.util.isFullDateFormat(this.type, this.format)) {
31766
+ return;
31767
+ }
31768
+
31769
+ this.syncSingleDateValue(changedProperties, 'valueObject', 'value');
31770
+ this.syncSingleDateValue(changedProperties, 'minObject', 'min');
31771
+ this.syncSingleDateValue(changedProperties, 'maxObject', 'max');
31772
+ }
31773
+
31774
+ /**
31775
+ * Synchronizes one date object/string property pair.
31776
+ * @private
31777
+ * @param {Map<string, unknown>|undefined} changedProperties - Map of changed properties from Lit.
31778
+ * @param {string} objectProperty - Date object property name.
31779
+ * @param {string} valueProperty - ISO string property name.
31780
+ * @returns {void}
31781
+ */
31782
+ syncSingleDateValue(changedProperties, objectProperty, valueProperty) {
31783
+ const objectPropertyChanged = !changedProperties || changedProperties.has(objectProperty);
31784
+
31785
+ // objectProperty wins over valueProperty when both changed
31786
+ if (objectPropertyChanged && this[objectProperty]) {
31787
+ this[valueProperty] = dateFormatter.toISOFormatString(this[objectProperty]);
31788
+ return;
31789
+ }
31790
+
31791
+ const valuePropertyChanged = !changedProperties || changedProperties.has(valueProperty);
31792
+ if (!valuePropertyChanged) {
31793
+ return;
31794
+ }
31795
+
31796
+ // 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)
31797
+ if (
31798
+ changedProperties &&
31799
+ valueProperty === 'value' &&
31800
+ changedProperties.get('value') === undefined &&
31801
+ this[objectProperty] instanceof Date &&
31802
+ this[valueProperty] === dateFormatter.toISOFormatString(this[objectProperty])
31803
+ ) {
31804
+ return;
31805
+ }
31806
+
31807
+ if (dateFormatter.isValidDate(this[valueProperty])) {
31808
+ this.setDateObjectProperty(objectProperty, dateFormatter.stringToDateInstance(this[valueProperty]));
31809
+ } else {
31810
+ this.setDateObjectProperty(objectProperty, undefined);
31811
+ }
31812
+ }
31813
+
31687
31814
  /**
31688
31815
  * Sets up IMasks and logic based on auto-formatting requirements.
31689
31816
  * @private
31690
31817
  * @returns {void}
31691
31818
  */
31692
31819
  configureAutoFormatting() {
31693
- // _configuringMask gates two things: external re-entry into this method
31694
- // while setup is mid-flight (from property changes that call back here),
31695
- // and the accept/complete listeners below both need to ignore the mask
31696
- // events fired by our own value-restore step.
31820
+ // Re-entrancy guard. The patched-setter's synthetic input event (suppressed
31821
+ // by _configuringMask above) could otherwise trigger handleInput
31822
+ // processCreditCard configureAutoFormatting before the outer call's
31823
+ // set value has finished its alignCursor pass.
31697
31824
  if (this._configuringMask) return;
31698
31825
  this._configuringMask = true;
31699
31826
  try {
31700
- // Destroy any prior mask so IMask can attach fresh under the new format.
31701
- // Null the reference too — if the new maskOptions.mask is falsy (e.g.
31702
- // type switched from credit-card to text) the IMask() reassignment
31703
- // below is skipped, and downstream writes at line ~823 would otherwise
31704
- // route through the destroyed instance.
31705
31827
  if (this.maskInstance) {
31706
31828
  this.maskInstance.destroy();
31707
- this.maskInstance = null;
31708
31829
  }
31709
31830
 
31831
+ // Pass new format to util
31710
31832
  this.util.updateFormat(this.format);
31711
31833
 
31712
31834
  const maskOptions = this.util.getMaskOptions(this.type, this.format);
31713
31835
 
31714
31836
  if (this.inputElement && maskOptions.mask) {
31715
- // Capture the current display so it can be re-applied after IMask
31716
- // attaches. The restore at the bottom goes through maskInstance.value
31717
- // (not inputElement.value directly) so the mask's internal state and
31718
- // the input's displayed text stay in lock-step.
31719
- let existingValue = this.inputElement.value;
31720
31837
 
31721
- // Format-change case (e.g. locale switch): existingValue is the OLD
31722
- // mask's display string and may not parse under the new mask. When
31723
- // we have a valid date model, rebuild the display from valueObject
31724
- // (the canonical source) using the new mask's format function.
31838
+ // Stash and clear any existing value before IMask init.
31839
+ // IMask's constructor processes the current input value which requires
31840
+ // selection state clearing first avoids that scenario entirely.
31841
+ // When the format changes (e.g. locale switch) and we have a valid ISO
31842
+ // model value, compute the display string for the NEW format instead of
31843
+ // re-using the old display string, which may be invalid in the new mask.
31844
+ let existingValue = this.inputElement.value;
31725
31845
  if (
31726
31846
  this.util.isFullDateFormat(this.type, this.format) &&
31727
31847
  this.value &&
31728
- this.valueObject &&
31848
+ dateFormatter.isValidDate(this.value) &&
31849
+ this.valueObject instanceof Date &&
31850
+ !Number.isNaN(this.valueObject.getTime()) &&
31729
31851
  typeof maskOptions.format === 'function'
31730
31852
  ) {
31731
31853
  existingValue = maskOptions.format(this.valueObject);
31732
31854
  }
31733
31855
 
31734
- // Clear before IMask attaches so the constructor seeds an empty
31735
- // internal value. Otherwise IMask reads the stale unmasked string
31736
- // and emits a spurious 'accept' before the restore below runs.
31737
31856
  this.skipNextProgrammaticInputEvent = true;
31738
31857
  this.inputElement.value = '';
31739
31858
 
31740
31859
  this.maskInstance = IMask(this.inputElement, maskOptions);
31741
31860
 
31742
- // Mask fires 'accept' on every value change, including the restore
31743
- // step below. Skip events fired during configureAutoFormatting so
31744
- // we don't overwrite a value the parent just pushed.
31745
31861
  this.maskInstance.on('accept', () => {
31862
+ // Suppress propagation during configureAutoFormatting's own value-restoration
31863
+ // (line below) — the mask emits 'accept' on every value-set, including ours,
31864
+ // and we don't want to overwrite a value the parent just pushed.
31746
31865
  if (this._configuringMask) return;
31747
31866
  this.value = this.util.toModelValue(this.maskInstance.value, this.format);
31748
31867
  if (this.type === "date") {
@@ -31750,8 +31869,6 @@ class BaseInput extends AuroElement$1 {
31750
31869
  }
31751
31870
  });
31752
31871
 
31753
- // Mask fires 'complete' on the restore step below for any value that
31754
- // happens to be a complete match. Same setup-suppression as 'accept'.
31755
31872
  this.maskInstance.on('complete', () => {
31756
31873
  if (this._configuringMask) return;
31757
31874
  this.value = this.util.toModelValue(this.maskInstance.value, this.format);
@@ -31760,9 +31877,7 @@ class BaseInput extends AuroElement$1 {
31760
31877
  }
31761
31878
  });
31762
31879
 
31763
- // Write existingValue through the mask (not the input directly) so
31764
- // the mask reformats it under the new rules and keeps its internal
31765
- // _value aligned with the input's displayed text.
31880
+ // Restore the stashed value through IMask so it's properly masked
31766
31881
  if (existingValue) {
31767
31882
  this.maskInstance.value = existingValue;
31768
31883
  }
@@ -31930,6 +32045,7 @@ class BaseInput extends AuroElement$1 {
31930
32045
  */
31931
32046
  reset() {
31932
32047
  this.value = undefined;
32048
+ this.setDateObjectProperty('valueObject', undefined);
31933
32049
  this.validation.reset(this);
31934
32050
  }
31935
32051
 
@@ -31938,6 +32054,7 @@ class BaseInput extends AuroElement$1 {
31938
32054
  */
31939
32055
  clear() {
31940
32056
  this.value = undefined;
32057
+ this.setDateObjectProperty('valueObject', undefined);
31941
32058
  }
31942
32059
 
31943
32060
  /**
@@ -31975,6 +32092,12 @@ class BaseInput extends AuroElement$1 {
31975
32092
  */
31976
32093
  get placeholderStr() {
31977
32094
  if (!this.placeholder && this.type === 'date') {
32095
+ // COVERAGE: the `'MM/DD/YYYY'` literal fallback is unreachable in WTR.
32096
+ // connectedCallback (L682) calls configureDataForType, which at L1266-1268
32097
+ // assigns `this.format = this.util.getDateMaskFromLocale().toLowerCase()`
32098
+ // when type=date and format is unset. That runs before the first render
32099
+ // reads this getter, so the ternary's truthy arm always wins. Retained
32100
+ // as a defensive fallback for direct getter calls before connection.
31978
32101
  return this.format ? this.format.toUpperCase() : 'MM/DD/YYYY';
31979
32102
  }
31980
32103
  return this.placeholder || "";
@@ -32466,7 +32589,7 @@ let AuroHelpText$1 = class AuroHelpText extends i$1 {
32466
32589
  }
32467
32590
  };
32468
32591
 
32469
- var formkitVersion = '202606231948';
32592
+ var formkitVersion = '202606232113';
32470
32593
 
32471
32594
  // Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
32472
32595
  // See LICENSE in the project root for license information.