@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
@@ -10511,6 +10511,7 @@ 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
10514
10515
  return undefined;
10515
10516
  }
10516
10517
 
@@ -13391,7 +13392,7 @@ class AuroBibtemplate extends LitElement {
13391
13392
  }
13392
13393
  }
13393
13394
 
13394
- var formkitVersion$2 = '202606192121';
13395
+ var formkitVersion$2 = '202606231948';
13395
13396
 
13396
13397
  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}
13397
13398
  `,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}}
@@ -18902,7 +18903,7 @@ let AuroHelpText$2 = class AuroHelpText extends LitElement {
18902
18903
  }
18903
18904
  };
18904
18905
 
18905
- var formkitVersion$1 = '202606192121';
18906
+ var formkitVersion$1 = '202606231948';
18906
18907
 
18907
18908
  let AuroElement$2 = class AuroElement extends LitElement {
18908
18909
  static get properties() {
@@ -19853,6 +19854,14 @@ class AuroDropdown extends AuroElement$2 {
19853
19854
  };
19854
19855
  this.addEventListener('keydown', this._bibTabHandler);
19855
19856
 
19857
+ // Suppress AuroFloatingUI's auto-hide-on-focus-loss while the
19858
+ // desktopModal trap owns focus management. Without this, the very
19859
+ // first focus move into the bib (from the RAF below) triggers
19860
+ // handleFocusLoss → hideBib, tearing down the trap before the
19861
+ // user can press Tab.
19862
+ this._priorNoHideOnFocusLoss = this.noHideOnThisFocusLoss;
19863
+ this.noHideOnThisFocusLoss = true;
19864
+
19856
19865
  // Move initial focus into the bib content, matching FocusTrap behavior
19857
19866
  requestAnimationFrame(() => {
19858
19867
  const focusables = getFocusableElements(this.bibContent);
@@ -30616,6 +30625,7 @@ class AuroInputUtilities {
30616
30625
  const maskOptions = this.getMaskOptions('date', normalizedFormat);
30617
30626
 
30618
30627
  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
30619
30629
  return undefined;
30620
30630
  }
30621
30631
 
@@ -30767,10 +30777,8 @@ class BaseInput extends AuroElement$1 {
30767
30777
  this.layout = 'classic';
30768
30778
  this.locale = 'en-US';
30769
30779
  this.max = undefined;
30770
- this._maxObject = undefined;
30771
30780
  this.maxLength = undefined;
30772
30781
  this.min = undefined;
30773
- this._minObject = undefined;
30774
30782
  this.minLength = undefined;
30775
30783
  this.required = false;
30776
30784
  this.onDark = false;
@@ -30778,7 +30786,6 @@ class BaseInput extends AuroElement$1 {
30778
30786
  this.size = 'lg';
30779
30787
  this.shape = 'classic';
30780
30788
  this.value = undefined;
30781
- this._valueObject = undefined;
30782
30789
 
30783
30790
  this._initializePrivateDefaults();
30784
30791
  }
@@ -31318,7 +31325,7 @@ class BaseInput extends AuroElement$1 {
31318
31325
  * @returns {Date|undefined}
31319
31326
  */
31320
31327
  get valueObject() {
31321
- return this._valueObject || this._computeDateObjectFallback(this.value);
31328
+ return this.value && dateFormatter.isValidDate(this.value) ? dateFormatter.stringToDateInstance(this.value) : undefined;
31322
31329
  }
31323
31330
 
31324
31331
  /**
@@ -31326,7 +31333,7 @@ class BaseInput extends AuroElement$1 {
31326
31333
  * @returns {Date|undefined}
31327
31334
  */
31328
31335
  get minObject() {
31329
- return this._minObject || this._computeDateObjectFallback(this.min);
31336
+ return this.min && dateFormatter.isValidDate(this.min) ? dateFormatter.stringToDateInstance(this.min) : undefined;
31330
31337
  }
31331
31338
 
31332
31339
  /**
@@ -31334,50 +31341,7 @@ class BaseInput extends AuroElement$1 {
31334
31341
  * @returns {Date|undefined}
31335
31342
  */
31336
31343
  get maxObject() {
31337
- return this._maxObject || this._computeDateObjectFallback(this.max);
31338
- }
31339
-
31340
- /**
31341
- * Parses a date string into a Date object when the corresponding `_*Object`
31342
- * field hasn't been synced yet by `updated()`. Returns undefined when the
31343
- * input type/format isn't a full date or the string is not a valid date.
31344
- *
31345
- * Why this exists: a parent (datepicker) can call `inputN.validate()` from
31346
- * inside its own `updated()` before this input's `updated()` has run
31347
- * `syncDateValues()` — so `_valueObject`/`_maxObject` are still `undefined`
31348
- * and range checks would otherwise silently no-op (flipping the result to
31349
- * `valid` or `patternMismatch`).
31350
- * @private
31351
- * @param {string|undefined} dateStr - ISO date string from `value`/`min`/`max`.
31352
- * @returns {Date|undefined}
31353
- */
31354
- _computeDateObjectFallback(dateStr) {
31355
- if (!dateStr || !this.util || !this.util.isFullDateFormat(this.type, this.format)) {
31356
- return undefined;
31357
- }
31358
- if (!dateFormatter.isValidDate(dateStr)) {
31359
- return undefined;
31360
- }
31361
- return dateFormatter.stringToDateInstance(dateStr);
31362
- }
31363
-
31364
- /**
31365
- * Internal setter for readonly date object properties.
31366
- * @private
31367
- * @param {'valueObject'|'minObject'|'maxObject'} propertyName - Public object property name.
31368
- * @param {Date|undefined} propertyValue - Value to assign.
31369
- * @returns {void}
31370
- */
31371
- setDateObjectProperty(propertyName, propertyValue) {
31372
- const internalPropertyName = `_${propertyName}`;
31373
- const previousValue = this[internalPropertyName];
31374
-
31375
- if (previousValue === propertyValue) {
31376
- return;
31377
- }
31378
-
31379
- this[internalPropertyName] = propertyValue;
31380
- this.requestUpdate(propertyName, previousValue);
31344
+ return this.max && dateFormatter.isValidDate(this.max) ? dateFormatter.stringToDateInstance(this.max) : undefined;
31381
31345
  }
31382
31346
 
31383
31347
  connectedCallback() {
@@ -31406,7 +31370,6 @@ class BaseInput extends AuroElement$1 {
31406
31370
  format: this.format
31407
31371
  });
31408
31372
  this.configureDataForType();
31409
- this.syncDateValues();
31410
31373
  }
31411
31374
 
31412
31375
  disconnectedCallback() {
@@ -31426,10 +31389,6 @@ class BaseInput extends AuroElement$1 {
31426
31389
  this.wrapperElement.addEventListener('click', this.handleClick);
31427
31390
  }
31428
31391
 
31429
- // add attribute for query selectors when auro-input is registered under a custom name
31430
- if (this.tagName.toLowerCase() !== 'auro-input' && !this.hasAttribute('auro-input')) {
31431
- this.setAttribute('auro-input', '');
31432
- }
31433
31392
  this.inputId = this.id ? `${this.id}-input` : window.crypto.randomUUID();
31434
31393
 
31435
31394
  // use validity message override if declared when initializing the component
@@ -31440,7 +31399,6 @@ class BaseInput extends AuroElement$1 {
31440
31399
  this.setCustomHelpTextMessage();
31441
31400
  this.configureAutoFormatting();
31442
31401
  this.configureDataForType();
31443
- this.syncDateValues();
31444
31402
  }
31445
31403
 
31446
31404
  /**
@@ -31577,8 +31535,6 @@ class BaseInput extends AuroElement$1 {
31577
31535
  this.configureDataForType();
31578
31536
  }
31579
31537
 
31580
- this.syncDateValues(changedProperties);
31581
-
31582
31538
  if (changedProperties.has('value')) {
31583
31539
  if (this.value && this.value.length > 0) {
31584
31540
  this.hasValue = true;
@@ -31600,14 +31556,14 @@ class BaseInput extends AuroElement$1 {
31600
31556
 
31601
31557
  if (formattedValue !== this.inputElement.value) {
31602
31558
  this.skipNextProgrammaticInputEvent = true;
31603
- if (this.maskInstance && this.type === 'credit-card') {
31559
+ if (this.maskInstance && this.type !== 'date') {
31604
31560
  // Route through the mask so its _value and el.value stay in lock-step
31605
31561
  // (set value calls updateControl which writes el.value = displayValue).
31606
31562
  // Writing el.value directly leaves the mask thinking displayValue is
31607
- // stale; _saveSelection on the next focus/click then warns. Scoped to
31608
- // credit-card so date's own formattedValue (raw ISO when calendar-invalid)
31609
- // isn't re-masked through the mm/dd/yyyy mask, which would truncate it
31610
- // and flip validity from patternMismatch to tooShort.
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.
31611
31567
  this.maskInstance.value = formattedValue || '';
31612
31568
  } else if (formattedValue) {
31613
31569
  this.inputElement.value = formattedValue;
@@ -31649,120 +31605,65 @@ class BaseInput extends AuroElement$1 {
31649
31605
  }));
31650
31606
  }
31651
31607
 
31652
-
31653
- /**
31654
- * Synchronizes the ISO string values and Date object representations for date-related properties.
31655
- * This keeps the model and display values aligned when either side changes.
31656
- *
31657
- * When a full date format is in use, this method updates `value`, `min`, and `max` from their corresponding
31658
- * Date objects or vice versa, based on which properties have changed. It only runs when the current configuration
31659
- * represents a full year/month/day date format.
31660
- *
31661
- * @param {Map<string, unknown>|undefined} [changedProperties=undefined] - Optional map of changed properties used to limit which values are synchronized.
31662
- * @returns {void}
31663
- * @private
31664
- */
31665
- syncDateValues(changedProperties = undefined) {
31666
- if (!this.util.isFullDateFormat(this.type, this.format)) {
31667
- return;
31668
- }
31669
-
31670
- this.syncSingleDateValue(changedProperties, 'valueObject', 'value');
31671
- this.syncSingleDateValue(changedProperties, 'minObject', 'min');
31672
- this.syncSingleDateValue(changedProperties, 'maxObject', 'max');
31673
- }
31674
-
31675
- /**
31676
- * Synchronizes one date object/string property pair.
31677
- * @private
31678
- * @param {Map<string, unknown>|undefined} changedProperties - Map of changed properties from Lit.
31679
- * @param {string} objectProperty - Date object property name.
31680
- * @param {string} valueProperty - ISO string property name.
31681
- * @returns {void}
31682
- */
31683
- syncSingleDateValue(changedProperties, objectProperty, valueProperty) {
31684
- const objectPropertyChanged = !changedProperties || changedProperties.has(objectProperty);
31685
-
31686
- // objectProperty wins over valueProperty when both changed
31687
- if (objectPropertyChanged && this[objectProperty]) {
31688
- this[valueProperty] = dateFormatter.toISOFormatString(this[objectProperty]);
31689
- return;
31690
- }
31691
-
31692
- const valuePropertyChanged = !changedProperties || changedProperties.has(valueProperty);
31693
- if (!valuePropertyChanged) {
31694
- return;
31695
- }
31696
-
31697
- // 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)
31698
- if (
31699
- changedProperties &&
31700
- valueProperty === 'value' &&
31701
- changedProperties.get('value') === undefined &&
31702
- this[objectProperty] instanceof Date &&
31703
- this[valueProperty] === dateFormatter.toISOFormatString(this[objectProperty])
31704
- ) {
31705
- return;
31706
- }
31707
-
31708
- if (dateFormatter.isValidDate(this[valueProperty])) {
31709
- this.setDateObjectProperty(objectProperty, dateFormatter.stringToDateInstance(this[valueProperty]));
31710
- } else {
31711
- this.setDateObjectProperty(objectProperty, undefined);
31712
- }
31713
- }
31714
-
31715
31608
  /**
31716
31609
  * Sets up IMasks and logic based on auto-formatting requirements.
31717
31610
  * @private
31718
31611
  * @returns {void}
31719
31612
  */
31720
31613
  configureAutoFormatting() {
31721
- // Re-entrancy guard. The patched-setter's synthetic input event (suppressed
31722
- // by _configuringMask above) could otherwise trigger handleInput
31723
- // processCreditCard configureAutoFormatting before the outer call's
31724
- // set value has finished its alignCursor pass.
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.
31725
31618
  if (this._configuringMask) return;
31726
31619
  this._configuringMask = true;
31727
31620
  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.
31728
31626
  if (this.maskInstance) {
31729
31627
  this.maskInstance.destroy();
31628
+ this.maskInstance = null;
31730
31629
  }
31731
31630
 
31732
- // Pass new format to util
31733
31631
  this.util.updateFormat(this.format);
31734
31632
 
31735
31633
  const maskOptions = this.util.getMaskOptions(this.type, this.format);
31736
31634
 
31737
31635
  if (this.inputElement && maskOptions.mask) {
31738
-
31739
- // Stash and clear any existing value before IMask init.
31740
- // IMask's constructor processes the current input value which requires
31741
- // selection state clearing first avoids that scenario entirely.
31742
- // When the format changes (e.g. locale switch) and we have a valid ISO
31743
- // model value, compute the display string for the NEW format instead of
31744
- // re-using the old display string, which may be invalid in the new 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.
31745
31640
  let existingValue = this.inputElement.value;
31641
+
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.
31746
31646
  if (
31747
31647
  this.util.isFullDateFormat(this.type, this.format) &&
31748
31648
  this.value &&
31749
- dateFormatter.isValidDate(this.value) &&
31750
- this.valueObject instanceof Date &&
31751
- !Number.isNaN(this.valueObject.getTime()) &&
31649
+ this.valueObject &&
31752
31650
  typeof maskOptions.format === 'function'
31753
31651
  ) {
31754
31652
  existingValue = maskOptions.format(this.valueObject);
31755
31653
  }
31756
31654
 
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.
31757
31658
  this.skipNextProgrammaticInputEvent = true;
31758
31659
  this.inputElement.value = '';
31759
31660
 
31760
31661
  this.maskInstance = IMask(this.inputElement, maskOptions);
31761
31662
 
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.
31762
31666
  this.maskInstance.on('accept', () => {
31763
- // Suppress propagation during configureAutoFormatting's own value-restoration
31764
- // (line below) — the mask emits 'accept' on every value-set, including ours,
31765
- // and we don't want to overwrite a value the parent just pushed.
31766
31667
  if (this._configuringMask) return;
31767
31668
  this.value = this.util.toModelValue(this.maskInstance.value, this.format);
31768
31669
  if (this.type === "date") {
@@ -31770,6 +31671,8 @@ class BaseInput extends AuroElement$1 {
31770
31671
  }
31771
31672
  });
31772
31673
 
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'.
31773
31676
  this.maskInstance.on('complete', () => {
31774
31677
  if (this._configuringMask) return;
31775
31678
  this.value = this.util.toModelValue(this.maskInstance.value, this.format);
@@ -31778,7 +31681,9 @@ class BaseInput extends AuroElement$1 {
31778
31681
  }
31779
31682
  });
31780
31683
 
31781
- // Restore the stashed value through IMask so it's properly masked
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.
31782
31687
  if (existingValue) {
31783
31688
  this.maskInstance.value = existingValue;
31784
31689
  }
@@ -31946,7 +31851,6 @@ class BaseInput extends AuroElement$1 {
31946
31851
  */
31947
31852
  reset() {
31948
31853
  this.value = undefined;
31949
- this.setDateObjectProperty('valueObject', undefined);
31950
31854
  this.validation.reset(this);
31951
31855
  }
31952
31856
 
@@ -31955,7 +31859,6 @@ class BaseInput extends AuroElement$1 {
31955
31859
  */
31956
31860
  clear() {
31957
31861
  this.value = undefined;
31958
- this.setDateObjectProperty('valueObject', undefined);
31959
31862
  }
31960
31863
 
31961
31864
  /**
@@ -32484,7 +32387,7 @@ let AuroHelpText$1 = class AuroHelpText extends LitElement {
32484
32387
  }
32485
32388
  };
32486
32389
 
32487
- var formkitVersion = '202606192121';
32390
+ var formkitVersion = '202606231948';
32488
32391
 
32489
32392
  // Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
32490
32393
  // See LICENSE in the project root for license information.
@@ -33904,6 +33807,8 @@ const datepickerKeyboardStrategy = {
33904
33807
  * @slot label - Defines the label content for the entire datepicker when `layout="snowflake"`.
33905
33808
  * @slot toLabel - Defines the label content for the second input when the `range` attribute is used.
33906
33809
  * @slot fromLabel - Defines the label content for the first input.
33810
+ * @slot optionalFromLabel - Overrides the "(optional)" text rendered next to the first input's label when the datepicker is not `required`.
33811
+ * @slot optionalToLabel - Overrides the "(optional)" text rendered next to the second input's label when `range` is set and the datepicker is not `required`.
33907
33812
  * @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.
33908
33813
  * @slot popover_YYYY_MM_DD - Defines the content to display in the auro-calendar-cell popover for the specified date.
33909
33814
  * @csspart dropdown - Use for customizing the style of the dropdown.
@@ -35499,7 +35404,9 @@ class AuroDatePicker extends AuroElement {
35499
35404
  // update the calendar
35500
35405
  if (this.valueEndObject) {
35501
35406
  this.calendar.dateTo = this.convertToWcValidTime(this.valueEndObject);
35502
- this.calendarRenderUtil.updateCentralDate(this, this.valueEndObject);
35407
+ if (!this.wasCellClick) {
35408
+ this.calendarRenderUtil.updateCentralDate(this, this.valueEndObject);
35409
+ }
35503
35410
  } else {
35504
35411
  if (this.inputList[1].value !== this.valueEnd) {
35505
35412
  this.inputList[1].value = this.valueEnd || '';
@@ -35894,6 +35801,7 @@ class AuroDatePicker extends AuroElement {
35894
35801
  }
35895
35802
  <span slot="ariaLabel.clear">${this.runtimeUtils.getSlotText(this, 'ariaLabel.input.clear') || i18n(this.lang, 'clearInput')}</span>
35896
35803
  <span slot="label"><slot name="fromLabel"></slot></span>
35804
+ <slot name="optionalFromLabel" slot="optionalLabel"> (optional)</slot>
35897
35805
  </${this.inputTag}>
35898
35806
  </div>
35899
35807
 
@@ -35938,6 +35846,7 @@ class AuroDatePicker extends AuroElement {
35938
35846
  }
35939
35847
  <span slot="ariaLabel.clear">${this.runtimeUtils.getSlotText(this, 'ariaLabel.input.clear') || this.runtimeUtils.getSlotText(this, 'ariaLabel.input.clear') || i18n(this.lang, 'clearInput')}</span>
35940
35848
  <span slot="label"><slot name="toLabel"></slot></span>
35849
+ <slot name="optionalToLabel" slot="optionalLabel"> (optional)</slot>
35941
35850
  </${this.inputTag}>
35942
35851
  </div>
35943
35852
  ` : undefined}
@@ -12,6 +12,8 @@
12
12
  * @slot label - Defines the label content for the entire datepicker when `layout="snowflake"`.
13
13
  * @slot toLabel - Defines the label content for the second input when the `range` attribute is used.
14
14
  * @slot fromLabel - Defines the label content for the first input.
15
+ * @slot optionalFromLabel - Overrides the "(optional)" text rendered next to the first input's label when the datepicker is not `required`.
16
+ * @slot optionalToLabel - Overrides the "(optional)" text rendered next to the second input's label when `range` is set and the datepicker is not `required`.
15
17
  * @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.
16
18
  * @slot popover_YYYY_MM_DD - Defines the content to display in the auro-calendar-cell popover for the specified date.
17
19
  * @csspart dropdown - Use for customizing the style of the dropdown.
@@ -3942,7 +3942,7 @@ class AuroHelpText extends i {
3942
3942
  }
3943
3943
  }
3944
3944
 
3945
- var formkitVersion = '202606192121';
3945
+ var formkitVersion = '202606231948';
3946
3946
 
3947
3947
  class AuroElement extends i {
3948
3948
  static get properties() {
@@ -4893,6 +4893,14 @@ class AuroDropdown extends AuroElement {
4893
4893
  };
4894
4894
  this.addEventListener('keydown', this._bibTabHandler);
4895
4895
 
4896
+ // Suppress AuroFloatingUI's auto-hide-on-focus-loss while the
4897
+ // desktopModal trap owns focus management. Without this, the very
4898
+ // first focus move into the bib (from the RAF below) triggers
4899
+ // handleFocusLoss → hideBib, tearing down the trap before the
4900
+ // user can press Tab.
4901
+ this._priorNoHideOnFocusLoss = this.noHideOnThisFocusLoss;
4902
+ this.noHideOnThisFocusLoss = true;
4903
+
4896
4904
  // Move initial focus into the bib content, matching FocusTrap behavior
4897
4905
  requestAnimationFrame(() => {
4898
4906
  const focusables = getFocusableElements(this.bibContent);
@@ -3942,7 +3942,7 @@ class AuroHelpText extends i {
3942
3942
  }
3943
3943
  }
3944
3944
 
3945
- var formkitVersion = '202606192121';
3945
+ var formkitVersion = '202606231948';
3946
3946
 
3947
3947
  class AuroElement extends i {
3948
3948
  static get properties() {
@@ -4893,6 +4893,14 @@ class AuroDropdown extends AuroElement {
4893
4893
  };
4894
4894
  this.addEventListener('keydown', this._bibTabHandler);
4895
4895
 
4896
+ // Suppress AuroFloatingUI's auto-hide-on-focus-loss while the
4897
+ // desktopModal trap owns focus management. Without this, the very
4898
+ // first focus move into the bib (from the RAF below) triggers
4899
+ // handleFocusLoss → hideBib, tearing down the trap before the
4900
+ // user can press Tab.
4901
+ this._priorNoHideOnFocusLoss = this.noHideOnThisFocusLoss;
4902
+ this.noHideOnThisFocusLoss = true;
4903
+
4896
4904
  // Move initial focus into the bib content, matching FocusTrap behavior
4897
4905
  requestAnimationFrame(() => {
4898
4906
  const focusables = getFocusableElements(this.bibContent);
@@ -3969,7 +3969,7 @@ class AuroHelpText extends i {
3969
3969
  }
3970
3970
  }
3971
3971
 
3972
- var formkitVersion = '202606192121';
3972
+ var formkitVersion = '202606231948';
3973
3973
 
3974
3974
  class AuroElement extends i {
3975
3975
  static get properties() {
@@ -4920,6 +4920,14 @@ class AuroDropdown extends AuroElement {
4920
4920
  };
4921
4921
  this.addEventListener('keydown', this._bibTabHandler);
4922
4922
 
4923
+ // Suppress AuroFloatingUI's auto-hide-on-focus-loss while the
4924
+ // desktopModal trap owns focus management. Without this, the very
4925
+ // first focus move into the bib (from the RAF below) triggers
4926
+ // handleFocusLoss → hideBib, tearing down the trap before the
4927
+ // user can press Tab.
4928
+ this._priorNoHideOnFocusLoss = this.noHideOnThisFocusLoss;
4929
+ this.noHideOnThisFocusLoss = true;
4930
+
4923
4931
  // Move initial focus into the bib content, matching FocusTrap behavior
4924
4932
  requestAnimationFrame(() => {
4925
4933
  const focusables = getFocusableElements(this.bibContent);
@@ -412,6 +412,7 @@ export class AuroDropdown extends AuroElement {
412
412
  private updateFocusTrap;
413
413
  _noHideOverridden: boolean | undefined;
414
414
  _priorNoHide: any;
415
+ _priorNoHideOnFocusLoss: boolean | undefined;
415
416
  /**
416
417
  * Returns the chain of active (focused) elements through shadow roots.
417
418
  * @private
@@ -3874,7 +3874,7 @@ class AuroHelpText extends LitElement {
3874
3874
  }
3875
3875
  }
3876
3876
 
3877
- var formkitVersion = '202606192121';
3877
+ var formkitVersion = '202606231948';
3878
3878
 
3879
3879
  class AuroElement extends LitElement {
3880
3880
  static get properties() {
@@ -4825,6 +4825,14 @@ class AuroDropdown extends AuroElement {
4825
4825
  };
4826
4826
  this.addEventListener('keydown', this._bibTabHandler);
4827
4827
 
4828
+ // Suppress AuroFloatingUI's auto-hide-on-focus-loss while the
4829
+ // desktopModal trap owns focus management. Without this, the very
4830
+ // first focus move into the bib (from the RAF below) triggers
4831
+ // handleFocusLoss → hideBib, tearing down the trap before the
4832
+ // user can press Tab.
4833
+ this._priorNoHideOnFocusLoss = this.noHideOnThisFocusLoss;
4834
+ this.noHideOnThisFocusLoss = true;
4835
+
4828
4836
  // Move initial focus into the bib content, matching FocusTrap behavior
4829
4837
  requestAnimationFrame(() => {
4830
4838
  const focusables = getFocusableElements(this.bibContent);
@@ -3874,7 +3874,7 @@ class AuroHelpText extends LitElement {
3874
3874
  }
3875
3875
  }
3876
3876
 
3877
- var formkitVersion = '202606192121';
3877
+ var formkitVersion = '202606231948';
3878
3878
 
3879
3879
  class AuroElement extends LitElement {
3880
3880
  static get properties() {
@@ -4825,6 +4825,14 @@ class AuroDropdown extends AuroElement {
4825
4825
  };
4826
4826
  this.addEventListener('keydown', this._bibTabHandler);
4827
4827
 
4828
+ // Suppress AuroFloatingUI's auto-hide-on-focus-loss while the
4829
+ // desktopModal trap owns focus management. Without this, the very
4830
+ // first focus move into the bib (from the RAF below) triggers
4831
+ // handleFocusLoss → hideBib, tearing down the trap before the
4832
+ // user can press Tab.
4833
+ this._priorNoHideOnFocusLoss = this.noHideOnThisFocusLoss;
4834
+ this.noHideOnThisFocusLoss = true;
4835
+
4828
4836
  // Move initial focus into the bib content, matching FocusTrap behavior
4829
4837
  requestAnimationFrame(() => {
4830
4838
  const focusables = getFocusableElements(this.bibContent);
@@ -36,11 +36,6 @@
36
36
  <body class="auro-markdown">
37
37
  <main></main>
38
38
 
39
- <script type="module">
40
- import { renderPage } from './demo-support.min.js';
41
- await renderPage('./customize.md');
42
- </script>
43
-
44
39
  <!-- If additional elements are needed for the demo, add them here. -->
45
40
  <script src="https://cdn.jsdelivr.net/npm/@aurodesignsystem/auro-accordion@latest/+esm" type="module"></script>
46
41
  <script src="https://cdn.jsdelivr.net/npm/@aurodesignsystem/auro-nav@latest/+esm" type="module"></script>
@@ -49,6 +44,11 @@
49
44
  <script src="https://cdn.jsdelivr.net/npm/@aurodesignsystem/auro-button@latest/+esm" type="module"></script>
50
45
  <script src="https://cdn.jsdelivr.net/npm/@aurodesignsystem/auro-icon@latest/+esm" type="module"></script>
51
46
 
52
- <script src="./customize.min.js" data-demo-script="true" type="module"></script>
47
+ <script type="module" data-demo-script="true">
48
+ import { renderPage } from './demo-support.min.js';
49
+ await renderPage('./customize.md');
50
+ import { initExamples } from "./customize.min.js";
51
+ initExamples();
52
+ </script>
53
53
  </body>
54
54
  </html>
@@ -1,9 +1,28 @@
1
+ /* eslint-disable jsdoc/require-jsdoc */
2
+
1
3
  import { AuroForm } from '../src/auro-form.js';
2
4
  import './registerDemoDeps.js';
3
5
  import { AuroInput } from '@aurodesignsystem/auro-input';
4
6
  import { AuroDatePicker } from '@aurodesignsystem/auro-datepicker';
7
+ import { disabledExample } from '../apiExamples/disabled.js';
8
+ import { disableAfterEditExample } from '../apiExamples/disabled-after-edit.js';
5
9
 
6
10
  AuroInput.register('input-two');
7
11
  AuroDatePicker.register();
8
12
  AuroForm.register();
9
13
  AuroForm.register('custom-form');
14
+
15
+ export async function initExamples(initCount) {
16
+ initCount = initCount || 0;
17
+
18
+ try {
19
+ await disabledExample();
20
+ await disableAfterEditExample();
21
+ } catch (err) {
22
+ if (initCount <= 20) {
23
+ setTimeout(() => {
24
+ initExamples(initCount + 1);
25
+ }, 100);
26
+ }
27
+ }
28
+ }