@aurodesignsystem-dev/auro-formkit 0.0.0-pr1507.0 → 0.0.0-pr1508.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 (63) hide show
  1. package/components/checkbox/demo/customize.html +1 -2
  2. package/components/checkbox/demo/customize.min.js +1 -1
  3. package/components/checkbox/demo/getting-started.min.js +1 -1
  4. package/components/checkbox/demo/index.min.js +1 -1
  5. package/components/checkbox/dist/index.js +1 -1
  6. package/components/checkbox/dist/registered.js +1 -1
  7. package/components/combobox/demo/customize.html +1 -2
  8. package/components/combobox/demo/customize.md +108 -132
  9. package/components/combobox/demo/customize.min.js +150 -293
  10. package/components/combobox/demo/getting-started.min.js +150 -293
  11. package/components/combobox/demo/index.min.js +150 -293
  12. package/components/combobox/dist/auro-combobox.d.ts +9 -0
  13. package/components/combobox/dist/index.js +150 -293
  14. package/components/combobox/dist/registered.js +150 -293
  15. package/components/counter/demo/customize.min.js +10 -2
  16. package/components/counter/demo/index.min.js +10 -2
  17. package/components/counter/dist/index.js +10 -2
  18. package/components/counter/dist/registered.js +10 -2
  19. package/components/datepicker/demo/api.md +2 -0
  20. package/components/datepicker/demo/customize.js +0 -2
  21. package/components/datepicker/demo/customize.md +138 -38
  22. package/components/datepicker/demo/customize.min.js +59 -168
  23. package/components/datepicker/demo/index.min.js +59 -150
  24. package/components/datepicker/dist/index.js +59 -150
  25. package/components/datepicker/dist/registered.js +59 -150
  26. package/components/datepicker/dist/src/auro-datepicker.d.ts +2 -0
  27. package/components/dropdown/demo/customize.min.js +9 -1
  28. package/components/dropdown/demo/getting-started.min.js +9 -1
  29. package/components/dropdown/demo/index.min.js +9 -1
  30. package/components/dropdown/dist/auro-dropdown.d.ts +1 -0
  31. package/components/dropdown/dist/index.js +9 -1
  32. package/components/dropdown/dist/registered.js +9 -1
  33. package/components/form/demo/customize.html +6 -6
  34. package/components/form/demo/customize.js +19 -0
  35. package/components/form/demo/customize.md +203 -51
  36. package/components/form/demo/customize.min.js +707 -633
  37. package/components/form/demo/getting-started.min.js +635 -633
  38. package/components/form/demo/index.min.js +635 -633
  39. package/components/form/demo/registerDemoDeps.min.js +272 -596
  40. package/components/form/dist/auro-form.d.ts +122 -4
  41. package/components/form/dist/index.js +363 -37
  42. package/components/form/dist/registered.js +363 -37
  43. package/components/input/demo/customize.html +1 -2
  44. package/components/input/demo/customize.md +54 -53
  45. package/components/input/demo/customize.min.js +41 -147
  46. package/components/input/demo/getting-started.min.js +41 -147
  47. package/components/input/demo/index.min.js +41 -147
  48. package/components/input/dist/base-input.d.ts +1 -49
  49. package/components/input/dist/index.js +41 -147
  50. package/components/input/dist/registered.js +41 -147
  51. package/components/radio/demo/customize.min.js +1 -1
  52. package/components/radio/demo/getting-started.min.js +1 -1
  53. package/components/radio/demo/index.min.js +1 -1
  54. package/components/radio/dist/index.js +1 -1
  55. package/components/radio/dist/registered.js +1 -1
  56. package/components/select/demo/customize.html +1 -2
  57. package/components/select/demo/customize.min.js +10 -2
  58. package/components/select/demo/getting-started.min.js +10 -2
  59. package/components/select/demo/index.min.js +10 -2
  60. package/components/select/dist/index.js +10 -2
  61. package/components/select/dist/registered.js +10 -2
  62. package/custom-elements.json +1592 -1707
  63. package/package.json +1 -1
@@ -10528,6 +10528,7 @@ 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
10531
10532
  return undefined;
10532
10533
  }
10533
10534
 
@@ -13439,7 +13440,7 @@ class AuroBibtemplate extends i$1 {
13439
13440
  }
13440
13441
  }
13441
13442
 
13442
- var formkitVersion$2 = '202606192121';
13443
+ var formkitVersion$2 = '202606231948';
13443
13444
 
13444
13445
  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}
13445
13446
  `,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}}
@@ -18974,7 +18975,7 @@ let AuroHelpText$2 = class AuroHelpText extends i$1 {
18974
18975
  }
18975
18976
  };
18976
18977
 
18977
- var formkitVersion$1 = '202606192121';
18978
+ var formkitVersion$1 = '202606231948';
18978
18979
 
18979
18980
  let AuroElement$2 = class AuroElement extends i$1 {
18980
18981
  static get properties() {
@@ -19925,6 +19926,14 @@ class AuroDropdown extends AuroElement$2 {
19925
19926
  };
19926
19927
  this.addEventListener('keydown', this._bibTabHandler);
19927
19928
 
19929
+ // Suppress AuroFloatingUI's auto-hide-on-focus-loss while the
19930
+ // desktopModal trap owns focus management. Without this, the very
19931
+ // first focus move into the bib (from the RAF below) triggers
19932
+ // handleFocusLoss → hideBib, tearing down the trap before the
19933
+ // user can press Tab.
19934
+ this._priorNoHideOnFocusLoss = this.noHideOnThisFocusLoss;
19935
+ this.noHideOnThisFocusLoss = true;
19936
+
19928
19937
  // Move initial focus into the bib content, matching FocusTrap behavior
19929
19938
  requestAnimationFrame(() => {
19930
19939
  const focusables = getFocusableElements(this.bibContent);
@@ -30695,6 +30704,7 @@ class AuroInputUtilities {
30695
30704
  const maskOptions = this.getMaskOptions('date', normalizedFormat);
30696
30705
 
30697
30706
  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
30698
30708
  return undefined;
30699
30709
  }
30700
30710
 
@@ -30846,10 +30856,8 @@ class BaseInput extends AuroElement$1 {
30846
30856
  this.layout = 'classic';
30847
30857
  this.locale = 'en-US';
30848
30858
  this.max = undefined;
30849
- this._maxObject = undefined;
30850
30859
  this.maxLength = undefined;
30851
30860
  this.min = undefined;
30852
- this._minObject = undefined;
30853
30861
  this.minLength = undefined;
30854
30862
  this.required = false;
30855
30863
  this.onDark = false;
@@ -30857,7 +30865,6 @@ class BaseInput extends AuroElement$1 {
30857
30865
  this.size = 'lg';
30858
30866
  this.shape = 'classic';
30859
30867
  this.value = undefined;
30860
- this._valueObject = undefined;
30861
30868
 
30862
30869
  this._initializePrivateDefaults();
30863
30870
  }
@@ -31397,7 +31404,7 @@ class BaseInput extends AuroElement$1 {
31397
31404
  * @returns {Date|undefined}
31398
31405
  */
31399
31406
  get valueObject() {
31400
- return this._valueObject || this._computeDateObjectFallback(this.value);
31407
+ return this.value && dateFormatter.isValidDate(this.value) ? dateFormatter.stringToDateInstance(this.value) : undefined;
31401
31408
  }
31402
31409
 
31403
31410
  /**
@@ -31405,7 +31412,7 @@ class BaseInput extends AuroElement$1 {
31405
31412
  * @returns {Date|undefined}
31406
31413
  */
31407
31414
  get minObject() {
31408
- return this._minObject || this._computeDateObjectFallback(this.min);
31415
+ return this.min && dateFormatter.isValidDate(this.min) ? dateFormatter.stringToDateInstance(this.min) : undefined;
31409
31416
  }
31410
31417
 
31411
31418
  /**
@@ -31413,50 +31420,7 @@ class BaseInput extends AuroElement$1 {
31413
31420
  * @returns {Date|undefined}
31414
31421
  */
31415
31422
  get maxObject() {
31416
- return this._maxObject || this._computeDateObjectFallback(this.max);
31417
- }
31418
-
31419
- /**
31420
- * Parses a date string into a Date object when the corresponding `_*Object`
31421
- * field hasn't been synced yet by `updated()`. Returns undefined when the
31422
- * input type/format isn't a full date or the string is not a valid date.
31423
- *
31424
- * Why this exists: a parent (datepicker) can call `inputN.validate()` from
31425
- * inside its own `updated()` before this input's `updated()` has run
31426
- * `syncDateValues()` — so `_valueObject`/`_maxObject` are still `undefined`
31427
- * and range checks would otherwise silently no-op (flipping the result to
31428
- * `valid` or `patternMismatch`).
31429
- * @private
31430
- * @param {string|undefined} dateStr - ISO date string from `value`/`min`/`max`.
31431
- * @returns {Date|undefined}
31432
- */
31433
- _computeDateObjectFallback(dateStr) {
31434
- if (!dateStr || !this.util || !this.util.isFullDateFormat(this.type, this.format)) {
31435
- return undefined;
31436
- }
31437
- if (!dateFormatter.isValidDate(dateStr)) {
31438
- return undefined;
31439
- }
31440
- return dateFormatter.stringToDateInstance(dateStr);
31441
- }
31442
-
31443
- /**
31444
- * Internal setter for readonly date object properties.
31445
- * @private
31446
- * @param {'valueObject'|'minObject'|'maxObject'} propertyName - Public object property name.
31447
- * @param {Date|undefined} propertyValue - Value to assign.
31448
- * @returns {void}
31449
- */
31450
- setDateObjectProperty(propertyName, propertyValue) {
31451
- const internalPropertyName = `_${propertyName}`;
31452
- const previousValue = this[internalPropertyName];
31453
-
31454
- if (previousValue === propertyValue) {
31455
- return;
31456
- }
31457
-
31458
- this[internalPropertyName] = propertyValue;
31459
- this.requestUpdate(propertyName, previousValue);
31423
+ return this.max && dateFormatter.isValidDate(this.max) ? dateFormatter.stringToDateInstance(this.max) : undefined;
31460
31424
  }
31461
31425
 
31462
31426
  connectedCallback() {
@@ -31485,7 +31449,6 @@ class BaseInput extends AuroElement$1 {
31485
31449
  format: this.format
31486
31450
  });
31487
31451
  this.configureDataForType();
31488
- this.syncDateValues();
31489
31452
  }
31490
31453
 
31491
31454
  disconnectedCallback() {
@@ -31505,10 +31468,6 @@ class BaseInput extends AuroElement$1 {
31505
31468
  this.wrapperElement.addEventListener('click', this.handleClick);
31506
31469
  }
31507
31470
 
31508
- // add attribute for query selectors when auro-input is registered under a custom name
31509
- if (this.tagName.toLowerCase() !== 'auro-input' && !this.hasAttribute('auro-input')) {
31510
- this.setAttribute('auro-input', '');
31511
- }
31512
31471
  this.inputId = this.id ? `${this.id}-input` : window.crypto.randomUUID();
31513
31472
 
31514
31473
  // use validity message override if declared when initializing the component
@@ -31519,7 +31478,6 @@ class BaseInput extends AuroElement$1 {
31519
31478
  this.setCustomHelpTextMessage();
31520
31479
  this.configureAutoFormatting();
31521
31480
  this.configureDataForType();
31522
- this.syncDateValues();
31523
31481
  }
31524
31482
 
31525
31483
  /**
@@ -31656,8 +31614,6 @@ class BaseInput extends AuroElement$1 {
31656
31614
  this.configureDataForType();
31657
31615
  }
31658
31616
 
31659
- this.syncDateValues(changedProperties);
31660
-
31661
31617
  if (changedProperties.has('value')) {
31662
31618
  if (this.value && this.value.length > 0) {
31663
31619
  this.hasValue = true;
@@ -31679,14 +31635,14 @@ class BaseInput extends AuroElement$1 {
31679
31635
 
31680
31636
  if (formattedValue !== this.inputElement.value) {
31681
31637
  this.skipNextProgrammaticInputEvent = true;
31682
- if (this.maskInstance && this.type === 'credit-card') {
31638
+ if (this.maskInstance && this.type !== 'date') {
31683
31639
  // Route through the mask so its _value and el.value stay in lock-step
31684
31640
  // (set value calls updateControl which writes el.value = displayValue).
31685
31641
  // Writing el.value directly leaves the mask thinking displayValue is
31686
- // stale; _saveSelection on the next focus/click then warns. Scoped to
31687
- // credit-card so date's own formattedValue (raw ISO when calendar-invalid)
31688
- // isn't re-masked through the mm/dd/yyyy mask, which would truncate it
31689
- // and flip validity from patternMismatch to tooShort.
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.
31690
31646
  this.maskInstance.value = formattedValue || '';
31691
31647
  } else if (formattedValue) {
31692
31648
  this.inputElement.value = formattedValue;
@@ -31728,120 +31684,65 @@ class BaseInput extends AuroElement$1 {
31728
31684
  }));
31729
31685
  }
31730
31686
 
31731
-
31732
- /**
31733
- * Synchronizes the ISO string values and Date object representations for date-related properties.
31734
- * This keeps the model and display values aligned when either side changes.
31735
- *
31736
- * When a full date format is in use, this method updates `value`, `min`, and `max` from their corresponding
31737
- * Date objects or vice versa, based on which properties have changed. It only runs when the current configuration
31738
- * represents a full year/month/day date format.
31739
- *
31740
- * @param {Map<string, unknown>|undefined} [changedProperties=undefined] - Optional map of changed properties used to limit which values are synchronized.
31741
- * @returns {void}
31742
- * @private
31743
- */
31744
- syncDateValues(changedProperties = undefined) {
31745
- if (!this.util.isFullDateFormat(this.type, this.format)) {
31746
- return;
31747
- }
31748
-
31749
- this.syncSingleDateValue(changedProperties, 'valueObject', 'value');
31750
- this.syncSingleDateValue(changedProperties, 'minObject', 'min');
31751
- this.syncSingleDateValue(changedProperties, 'maxObject', 'max');
31752
- }
31753
-
31754
- /**
31755
- * Synchronizes one date object/string property pair.
31756
- * @private
31757
- * @param {Map<string, unknown>|undefined} changedProperties - Map of changed properties from Lit.
31758
- * @param {string} objectProperty - Date object property name.
31759
- * @param {string} valueProperty - ISO string property name.
31760
- * @returns {void}
31761
- */
31762
- syncSingleDateValue(changedProperties, objectProperty, valueProperty) {
31763
- const objectPropertyChanged = !changedProperties || changedProperties.has(objectProperty);
31764
-
31765
- // objectProperty wins over valueProperty when both changed
31766
- if (objectPropertyChanged && this[objectProperty]) {
31767
- this[valueProperty] = dateFormatter.toISOFormatString(this[objectProperty]);
31768
- return;
31769
- }
31770
-
31771
- const valuePropertyChanged = !changedProperties || changedProperties.has(valueProperty);
31772
- if (!valuePropertyChanged) {
31773
- return;
31774
- }
31775
-
31776
- // 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)
31777
- if (
31778
- changedProperties &&
31779
- valueProperty === 'value' &&
31780
- changedProperties.get('value') === undefined &&
31781
- this[objectProperty] instanceof Date &&
31782
- this[valueProperty] === dateFormatter.toISOFormatString(this[objectProperty])
31783
- ) {
31784
- return;
31785
- }
31786
-
31787
- if (dateFormatter.isValidDate(this[valueProperty])) {
31788
- this.setDateObjectProperty(objectProperty, dateFormatter.stringToDateInstance(this[valueProperty]));
31789
- } else {
31790
- this.setDateObjectProperty(objectProperty, undefined);
31791
- }
31792
- }
31793
-
31794
31687
  /**
31795
31688
  * Sets up IMasks and logic based on auto-formatting requirements.
31796
31689
  * @private
31797
31690
  * @returns {void}
31798
31691
  */
31799
31692
  configureAutoFormatting() {
31800
- // Re-entrancy guard. The patched-setter's synthetic input event (suppressed
31801
- // by _configuringMask above) could otherwise trigger handleInput
31802
- // processCreditCard configureAutoFormatting before the outer call's
31803
- // set value has finished its alignCursor pass.
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.
31804
31697
  if (this._configuringMask) return;
31805
31698
  this._configuringMask = true;
31806
31699
  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.
31807
31705
  if (this.maskInstance) {
31808
31706
  this.maskInstance.destroy();
31707
+ this.maskInstance = null;
31809
31708
  }
31810
31709
 
31811
- // Pass new format to util
31812
31710
  this.util.updateFormat(this.format);
31813
31711
 
31814
31712
  const maskOptions = this.util.getMaskOptions(this.type, this.format);
31815
31713
 
31816
31714
  if (this.inputElement && maskOptions.mask) {
31817
-
31818
- // Stash and clear any existing value before IMask init.
31819
- // IMask's constructor processes the current input value which requires
31820
- // selection state clearing first avoids that scenario entirely.
31821
- // When the format changes (e.g. locale switch) and we have a valid ISO
31822
- // model value, compute the display string for the NEW format instead of
31823
- // re-using the old display string, which may be invalid in the new 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.
31824
31719
  let existingValue = this.inputElement.value;
31720
+
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.
31825
31725
  if (
31826
31726
  this.util.isFullDateFormat(this.type, this.format) &&
31827
31727
  this.value &&
31828
- dateFormatter.isValidDate(this.value) &&
31829
- this.valueObject instanceof Date &&
31830
- !Number.isNaN(this.valueObject.getTime()) &&
31728
+ this.valueObject &&
31831
31729
  typeof maskOptions.format === 'function'
31832
31730
  ) {
31833
31731
  existingValue = maskOptions.format(this.valueObject);
31834
31732
  }
31835
31733
 
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.
31836
31737
  this.skipNextProgrammaticInputEvent = true;
31837
31738
  this.inputElement.value = '';
31838
31739
 
31839
31740
  this.maskInstance = IMask(this.inputElement, maskOptions);
31840
31741
 
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.
31841
31745
  this.maskInstance.on('accept', () => {
31842
- // Suppress propagation during configureAutoFormatting's own value-restoration
31843
- // (line below) — the mask emits 'accept' on every value-set, including ours,
31844
- // and we don't want to overwrite a value the parent just pushed.
31845
31746
  if (this._configuringMask) return;
31846
31747
  this.value = this.util.toModelValue(this.maskInstance.value, this.format);
31847
31748
  if (this.type === "date") {
@@ -31849,6 +31750,8 @@ class BaseInput extends AuroElement$1 {
31849
31750
  }
31850
31751
  });
31851
31752
 
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'.
31852
31755
  this.maskInstance.on('complete', () => {
31853
31756
  if (this._configuringMask) return;
31854
31757
  this.value = this.util.toModelValue(this.maskInstance.value, this.format);
@@ -31857,7 +31760,9 @@ class BaseInput extends AuroElement$1 {
31857
31760
  }
31858
31761
  });
31859
31762
 
31860
- // Restore the stashed value through IMask so it's properly masked
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.
31861
31766
  if (existingValue) {
31862
31767
  this.maskInstance.value = existingValue;
31863
31768
  }
@@ -32025,7 +31930,6 @@ class BaseInput extends AuroElement$1 {
32025
31930
  */
32026
31931
  reset() {
32027
31932
  this.value = undefined;
32028
- this.setDateObjectProperty('valueObject', undefined);
32029
31933
  this.validation.reset(this);
32030
31934
  }
32031
31935
 
@@ -32034,7 +31938,6 @@ class BaseInput extends AuroElement$1 {
32034
31938
  */
32035
31939
  clear() {
32036
31940
  this.value = undefined;
32037
- this.setDateObjectProperty('valueObject', undefined);
32038
31941
  }
32039
31942
 
32040
31943
  /**
@@ -32563,7 +32466,7 @@ let AuroHelpText$1 = class AuroHelpText extends i$1 {
32563
32466
  }
32564
32467
  };
32565
32468
 
32566
- var formkitVersion = '202606192121';
32469
+ var formkitVersion = '202606231948';
32567
32470
 
32568
32471
  // Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
32569
32472
  // See LICENSE in the project root for license information.
@@ -33983,6 +33886,8 @@ const datepickerKeyboardStrategy = {
33983
33886
  * @slot label - Defines the label content for the entire datepicker when `layout="snowflake"`.
33984
33887
  * @slot toLabel - Defines the label content for the second input when the `range` attribute is used.
33985
33888
  * @slot fromLabel - Defines the label content for the first input.
33889
+ * @slot optionalFromLabel - Overrides the "(optional)" text rendered next to the first input's label when the datepicker is not `required`.
33890
+ * @slot optionalToLabel - Overrides the "(optional)" text rendered next to the second input's label when `range` is set and the datepicker is not `required`.
33986
33891
  * @slot date_YYYY_MM_DD - Defines the content to display in the auro-calendar-cell for the specified date. The content text is colored using the success state token when the `highlight` attribute is applied to the slot.
33987
33892
  * @slot popover_YYYY_MM_DD - Defines the content to display in the auro-calendar-cell popover for the specified date.
33988
33893
  * @csspart dropdown - Use for customizing the style of the dropdown.
@@ -35578,7 +35483,9 @@ class AuroDatePicker extends AuroElement {
35578
35483
  // update the calendar
35579
35484
  if (this.valueEndObject) {
35580
35485
  this.calendar.dateTo = this.convertToWcValidTime(this.valueEndObject);
35581
- this.calendarRenderUtil.updateCentralDate(this, this.valueEndObject);
35486
+ if (!this.wasCellClick) {
35487
+ this.calendarRenderUtil.updateCentralDate(this, this.valueEndObject);
35488
+ }
35582
35489
  } else {
35583
35490
  if (this.inputList[1].value !== this.valueEnd) {
35584
35491
  this.inputList[1].value = this.valueEnd || '';
@@ -35973,6 +35880,7 @@ class AuroDatePicker extends AuroElement {
35973
35880
  }
35974
35881
  <span slot="ariaLabel.clear">${this.runtimeUtils.getSlotText(this, 'ariaLabel.input.clear') || i18n(this.lang, 'clearInput')}</span>
35975
35882
  <span slot="label"><slot name="fromLabel"></slot></span>
35883
+ <slot name="optionalFromLabel" slot="optionalLabel"> (optional)</slot>
35976
35884
  </${this.inputTag}>
35977
35885
  </div>
35978
35886
 
@@ -36017,6 +35925,7 @@ class AuroDatePicker extends AuroElement {
36017
35925
  }
36018
35926
  <span slot="ariaLabel.clear">${this.runtimeUtils.getSlotText(this, 'ariaLabel.input.clear') || this.runtimeUtils.getSlotText(this, 'ariaLabel.input.clear') || i18n(this.lang, 'clearInput')}</span>
36019
35927
  <span slot="label"><slot name="toLabel"></slot></span>
35928
+ <slot name="optionalToLabel" slot="optionalLabel"> (optional)</slot>
36020
35929
  </${this.inputTag}>
36021
35930
  </div>
36022
35931
  ` : undefined}
@@ -36217,27 +36126,9 @@ class AuroDatePicker extends AuroElement {
36217
36126
  }
36218
36127
  }
36219
36128
 
36220
- function localizationExample() {
36221
- const localizedDatepicker = document.querySelector("#localizationExample");
36222
-
36223
- localizedDatepicker.monthNames = ['Enero', 'Febrero', 'Marzo', 'Abril', 'Mayo', 'Junio', 'Julio', 'Agosto', 'Septiembre', 'Octubre', 'Noviembre', 'Diciembre'];
36224
- }
36225
-
36226
36129
  AuroDatePicker.register();
36227
36130
 
36228
36131
  function initExamples(initCount) {
36229
- initCount = initCount || 0;
36230
-
36231
- try {
36232
- localizationExample();
36233
- } catch {
36234
- if (initCount <= 20) {
36235
- // setTimeout handles issue where content is sometimes loaded after the functions get called
36236
- setTimeout(() => {
36237
- initExamples(initCount + 1);
36238
- }, 100);
36239
- }
36240
- }
36241
36132
  }
36242
36133
 
36243
36134
  export { initExamples };