@aurodesignsystem-dev/auro-formkit 0.0.0-pr1422.1 → 0.0.0-pr1423.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 (35) hide show
  1. package/components/checkbox/demo/api.min.js +1 -1
  2. package/components/checkbox/demo/index.min.js +1 -1
  3. package/components/checkbox/dist/index.js +1 -1
  4. package/components/checkbox/dist/registered.js +1 -1
  5. package/components/combobox/demo/api.min.js +165 -275
  6. package/components/combobox/demo/index.min.js +165 -275
  7. package/components/combobox/dist/index.js +165 -275
  8. package/components/combobox/dist/registered.js +165 -275
  9. package/components/counter/demo/api.min.js +164 -274
  10. package/components/counter/demo/index.min.js +164 -274
  11. package/components/counter/dist/index.js +164 -274
  12. package/components/counter/dist/registered.js +164 -274
  13. package/components/datepicker/demo/api.min.js +165 -275
  14. package/components/datepicker/demo/index.min.js +165 -275
  15. package/components/datepicker/dist/index.js +165 -275
  16. package/components/datepicker/dist/registered.js +165 -275
  17. package/components/dropdown/demo/api.min.js +164 -274
  18. package/components/dropdown/demo/index.min.js +164 -274
  19. package/components/dropdown/dist/index.js +164 -274
  20. package/components/dropdown/dist/registered.js +164 -274
  21. package/components/form/demo/api.min.js +661 -1101
  22. package/components/form/demo/index.min.js +661 -1101
  23. package/components/input/demo/api.min.js +1 -1
  24. package/components/input/demo/index.min.js +1 -1
  25. package/components/input/dist/index.js +1 -1
  26. package/components/input/dist/registered.js +1 -1
  27. package/components/radio/demo/api.min.js +1 -1
  28. package/components/radio/demo/index.min.js +1 -1
  29. package/components/radio/dist/index.js +1 -1
  30. package/components/radio/dist/registered.js +1 -1
  31. package/components/select/demo/api.min.js +164 -274
  32. package/components/select/demo/index.min.js +164 -274
  33. package/components/select/dist/index.js +164 -274
  34. package/components/select/dist/registered.js +164 -274
  35. package/package.json +2 -2
@@ -7470,7 +7470,7 @@ let AuroHelpText$8 = class AuroHelpText extends i$4 {
7470
7470
  }
7471
7471
  };
7472
7472
 
7473
- var formkitVersion$8 = '202604070549';
7473
+ var formkitVersion$8 = '202604071525';
7474
7474
 
7475
7475
  // Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
7476
7476
  // See LICENSE in the project root for license information.
@@ -17392,7 +17392,7 @@ let AuroBibtemplate$3 = class AuroBibtemplate extends i$4 {
17392
17392
  }
17393
17393
  };
17394
17394
 
17395
- var formkitVersion$2$1 = '202604070549';
17395
+ var formkitVersion$2$1 = '202604071525';
17396
17396
 
17397
17397
  let l$1$2 = 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$3`${s$6(r)}`;return customElements.get(r)||customElements.define(r,class extends a{}),i}};let d$1$2 = 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$2 = 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$3=i$7`: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}
17398
17398
  `,u$4$2=i$7`.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}}
@@ -19702,19 +19702,11 @@ let AuroFloatingUI$3 = class AuroFloatingUI {
19702
19702
  * This ensures that the bib content has the same dimensions as the sizer element.
19703
19703
  */
19704
19704
  mirrorSize() {
19705
- const element = this.element;
19706
- if (!element) {
19707
- return;
19708
- }
19709
-
19710
19705
  // mirror the boxsize from bibSizer
19711
- if (element.bibSizer && element.matchWidth && element.bib?.shadowRoot) {
19712
- const sizerStyle = window.getComputedStyle(element.bibSizer);
19713
- const bibContent = element.bib.shadowRoot.querySelector(".container");
19714
- if (!bibContent) {
19715
- return;
19716
- }
19717
-
19706
+ if (this.element.bibSizer && this.element.matchWidth) {
19707
+ const sizerStyle = window.getComputedStyle(this.element.bibSizer);
19708
+ const bibContent =
19709
+ this.element.bib.shadowRoot.querySelector(".container");
19718
19710
  if (sizerStyle.width !== "0px") {
19719
19711
  bibContent.style.width = sizerStyle.width;
19720
19712
  }
@@ -19736,14 +19728,9 @@ let AuroFloatingUI$3 = class AuroFloatingUI {
19736
19728
  * @returns {String} The positioning strategy, one of 'fullscreen', 'floating', 'cover'.
19737
19729
  */
19738
19730
  getPositioningStrategy() {
19739
- const element = this.element;
19740
- if (!element) {
19741
- return this.behavior || "floating";
19742
- }
19743
-
19744
19731
  const breakpoint =
19745
- element.bib?.mobileFullscreenBreakpoint ||
19746
- element.floaterConfig?.fullscreenBreakpoint;
19732
+ this.element.bib.mobileFullscreenBreakpoint ||
19733
+ this.element.floaterConfig?.fullscreenBreakpoint;
19747
19734
  switch (this.behavior) {
19748
19735
  case "tooltip":
19749
19736
  return "floating";
@@ -19754,9 +19741,9 @@ let AuroFloatingUI$3 = class AuroFloatingUI {
19754
19741
  `(max-width: ${breakpoint})`,
19755
19742
  ).matches;
19756
19743
 
19757
- element.expanded = smallerThanBreakpoint;
19744
+ this.element.expanded = smallerThanBreakpoint;
19758
19745
  }
19759
- if (element.nested) {
19746
+ if (this.element.nested) {
19760
19747
  return "cover";
19761
19748
  }
19762
19749
  return "fullscreen";
@@ -19786,65 +19773,42 @@ let AuroFloatingUI$3 = class AuroFloatingUI {
19786
19773
  * and applies the calculated position to the bib's style.
19787
19774
  */
19788
19775
  position() {
19789
- const element = this.element;
19790
- if (!element) {
19791
- return;
19792
- }
19793
-
19794
19776
  const strategy = this.getPositioningStrategy();
19795
19777
  this.configureBibStrategy(strategy);
19796
19778
 
19797
19779
  if (strategy === "floating") {
19798
- if (!element.trigger || !element.bib) {
19799
- return;
19800
- }
19801
-
19802
19780
  this.mirrorSize();
19803
19781
  // Define the middlware for the floater configuration
19804
19782
  const middleware = [
19805
- offset$4(element.floaterConfig?.offset || 0),
19806
- ...(element.floaterConfig?.shift ? [shift$4()] : []), // Add shift middleware if shift is enabled.
19807
- ...(element.floaterConfig?.flip ? [flip$4()] : []), // Add flip middleware if flip is enabled.
19808
- ...(element.floaterConfig?.autoPlacement ? [autoPlacement$4()] : []), // Add autoPlacement middleware if autoPlacement is enabled.
19783
+ offset$4(this.element.floaterConfig?.offset || 0),
19784
+ ...(this.element.floaterConfig?.shift ? [shift$4()] : []), // Add shift middleware if shift is enabled.
19785
+ ...(this.element.floaterConfig?.flip ? [flip$4()] : []), // Add flip middleware if flip is enabled.
19786
+ ...(this.element.floaterConfig?.autoPlacement ? [autoPlacement$4()] : []), // Add autoPlacement middleware if autoPlacement is enabled.
19809
19787
  ];
19810
19788
 
19811
19789
  // Compute the position of the bib
19812
- computePosition$4(element.trigger, element.bib, {
19813
- strategy: element.floaterConfig?.strategy || "fixed",
19814
- placement: element.floaterConfig?.placement,
19790
+ computePosition$4(this.element.trigger, this.element.bib, {
19791
+ strategy: this.element.floaterConfig?.strategy || "fixed",
19792
+ placement: this.element.floaterConfig?.placement,
19815
19793
  middleware: middleware || [],
19816
19794
  }).then(({ x, y }) => {
19817
19795
  // eslint-disable-line id-length
19818
- const currentElement = this.element;
19819
- if (!currentElement?.bib) {
19820
- return;
19821
- }
19822
-
19823
- Object.assign(currentElement.bib.style, {
19796
+ Object.assign(this.element.bib.style, {
19824
19797
  left: `${x}px`,
19825
19798
  top: `${y}px`,
19826
19799
  });
19827
19800
  });
19828
19801
  } else if (strategy === "cover") {
19829
- if (!element.parentNode || !element.bib) {
19830
- return;
19831
- }
19832
-
19833
19802
  // Compute the position of the bib
19834
- computePosition$4(element.parentNode, element.bib, {
19803
+ computePosition$4(this.element.parentNode, this.element.bib, {
19835
19804
  placement: "bottom-start",
19836
19805
  }).then(({ x, y }) => {
19837
19806
  // eslint-disable-line id-length
19838
- const currentElement = this.element;
19839
- if (!currentElement?.bib || !currentElement.parentNode) {
19840
- return;
19841
- }
19842
-
19843
- Object.assign(currentElement.bib.style, {
19807
+ Object.assign(this.element.bib.style, {
19844
19808
  left: `${x}px`,
19845
- top: `${y - currentElement.parentNode.offsetHeight}px`,
19846
- width: `${currentElement.parentNode.offsetWidth}px`,
19847
- height: `${currentElement.parentNode.offsetHeight}px`,
19809
+ top: `${y - this.element.parentNode.offsetHeight}px`,
19810
+ width: `${this.element.parentNode.offsetWidth}px`,
19811
+ height: `${this.element.parentNode.offsetHeight}px`,
19848
19812
  });
19849
19813
  });
19850
19814
  }
@@ -19856,17 +19820,11 @@ let AuroFloatingUI$3 = class AuroFloatingUI {
19856
19820
  * @param {Boolean} lock - If true, locks the body's scrolling functionlity; otherwise, unlock.
19857
19821
  */
19858
19822
  lockScroll(lock = true) {
19859
- const element = this.element;
19860
-
19861
19823
  if (lock) {
19862
- if (!element?.bib) {
19863
- return;
19864
- }
19865
-
19866
19824
  document.body.style.overflow = "hidden"; // hide body's scrollbar
19867
19825
 
19868
19826
  // Move `bib` by the amount the viewport is shifted to stay aligned in fullscreen.
19869
- element.bib.style.transform = `translateY(${window?.visualViewport?.offsetTop}px)`;
19827
+ this.element.bib.style.transform = `translateY(${window?.visualViewport?.offsetTop}px)`;
19870
19828
  } else {
19871
19829
  document.body.style.overflow = "";
19872
19830
  }
@@ -19882,24 +19840,20 @@ let AuroFloatingUI$3 = class AuroFloatingUI {
19882
19840
  * @param {string} strategy - The positioning strategy ('fullscreen' or 'floating').
19883
19841
  */
19884
19842
  configureBibStrategy(value) {
19885
- const element = this.element;
19886
- if (!element?.bib) {
19887
- return;
19888
- }
19889
-
19890
19843
  if (value === "fullscreen") {
19891
- element.isBibFullscreen = true;
19844
+ this.element.isBibFullscreen = true;
19892
19845
  // reset the prev position
19893
- element.bib.setAttribute("isfullscreen", "");
19894
- element.bib.style.position = "fixed";
19895
- element.bib.style.top = "0px";
19896
- element.bib.style.left = "0px";
19897
- element.bib.style.width = "";
19898
- element.bib.style.height = "";
19899
- element.style.contain = "";
19846
+ this.element.bib.setAttribute("isfullscreen", "");
19847
+ this.element.bib.style.position = "fixed";
19848
+ this.element.bib.style.top = "0px";
19849
+ this.element.bib.style.left = "0px";
19850
+ this.element.bib.style.width = "";
19851
+ this.element.bib.style.height = "";
19852
+ this.element.style.contain = "";
19900
19853
 
19901
19854
  // reset the size that was mirroring `size` css-part
19902
- const bibContent = element.bib.shadowRoot?.querySelector(".container");
19855
+ const bibContent =
19856
+ this.element.bib.shadowRoot.querySelector(".container");
19903
19857
  if (bibContent) {
19904
19858
  bibContent.style.width = "";
19905
19859
  bibContent.style.height = "";
@@ -19914,14 +19868,14 @@ let AuroFloatingUI$3 = class AuroFloatingUI {
19914
19868
  }, 0);
19915
19869
  }
19916
19870
 
19917
- if (element.isPopoverVisible) {
19871
+ if (this.element.isPopoverVisible) {
19918
19872
  this.lockScroll(true);
19919
19873
  }
19920
19874
  } else {
19921
- element.bib.style.position = "";
19922
- element.bib.removeAttribute("isfullscreen");
19923
- element.isBibFullscreen = false;
19924
- element.style.contain = "layout";
19875
+ this.element.bib.style.position = "";
19876
+ this.element.bib.removeAttribute("isfullscreen");
19877
+ this.element.isBibFullscreen = false;
19878
+ this.element.style.contain = "layout";
19925
19879
  }
19926
19880
 
19927
19881
  const isChanged = this.strategy && this.strategy !== value;
@@ -19939,21 +19893,16 @@ let AuroFloatingUI$3 = class AuroFloatingUI {
19939
19893
  },
19940
19894
  );
19941
19895
 
19942
- element.dispatchEvent(event);
19896
+ this.element.dispatchEvent(event);
19943
19897
  }
19944
19898
  }
19945
19899
 
19946
19900
  updateState() {
19947
- const element = this.element;
19948
- if (!element) {
19949
- return;
19950
- }
19951
-
19952
- const isVisible = element.isPopoverVisible;
19901
+ const isVisible = this.element.isPopoverVisible;
19953
19902
  if (!isVisible) {
19954
19903
  this.cleanupHideHandlers();
19955
19904
  try {
19956
- element.cleanup?.();
19905
+ this.element.cleanup?.();
19957
19906
  } catch (error) {
19958
19907
  // Do nothing
19959
19908
  }
@@ -19969,30 +19918,28 @@ let AuroFloatingUI$3 = class AuroFloatingUI {
19969
19918
  * If not, and if the bib isn't in fullscreen mode with focus lost, it hides the bib.
19970
19919
  */
19971
19920
  handleFocusLoss() {
19972
- const element = this.element;
19973
- if (!element?.bib) {
19974
- return;
19975
- }
19976
-
19977
19921
  // if mouse is being pressed, skip and let click event to handle the action
19978
19922
  if (AuroFloatingUI.isMousePressed) {
19979
19923
  return;
19980
19924
  }
19981
19925
 
19982
19926
  if (
19983
- element.noHideOnThisFocusLoss ||
19984
- element.hasAttribute("noHideOnThisFocusLoss")
19927
+ this.element.noHideOnThisFocusLoss ||
19928
+ this.element.hasAttribute("noHideOnThisFocusLoss")
19985
19929
  ) {
19986
19930
  return;
19987
19931
  }
19988
19932
 
19989
19933
  // if focus is still inside of trigger or bib, do not close
19990
- if (element.matches(":focus") || element.matches(":focus-within")) {
19934
+ if (
19935
+ this.element.matches(":focus") ||
19936
+ this.element.matches(":focus-within")
19937
+ ) {
19991
19938
  return;
19992
19939
  }
19993
19940
 
19994
19941
  // if fullscreen bib is in fullscreen mode, do not close
19995
- if (element.bib.hasAttribute("isfullscreen")) {
19942
+ if (this.element.bib.hasAttribute("isfullscreen")) {
19996
19943
  return;
19997
19944
  }
19998
19945
 
@@ -20000,32 +19947,23 @@ let AuroFloatingUI$3 = class AuroFloatingUI {
20000
19947
  }
20001
19948
 
20002
19949
  setupHideHandlers() {
20003
- if (!this.element) {
20004
- return;
20005
- }
20006
-
20007
19950
  // Define handlers & store references
20008
19951
  this.focusHandler = () => this.handleFocusLoss();
20009
19952
 
20010
19953
  this.clickHandler = (evt) => {
20011
- const element = this.element;
20012
- if (!element?.bib) {
20013
- return;
20014
- }
20015
-
20016
19954
  // When the bib is fullscreen (modal dialog), don't close on outside
20017
19955
  // clicks. VoiceOver's synthetic click events inside a top-layer modal
20018
19956
  // <dialog> may not include the bib in composedPath(), causing false
20019
19957
  // positives. This mirrors the fullscreen guard in handleFocusLoss().
20020
- if (element.bib.hasAttribute("isfullscreen")) {
19958
+ if (this.element.bib && this.element.bib.hasAttribute("isfullscreen")) {
20021
19959
  return;
20022
19960
  }
20023
19961
 
20024
19962
  if (
20025
- (!evt.composedPath().includes(element.trigger) &&
20026
- !evt.composedPath().includes(element.bib)) ||
20027
- (element.bib.backdrop &&
20028
- evt.composedPath().includes(element.bib.backdrop))
19963
+ (!evt.composedPath().includes(this.element.trigger) &&
19964
+ !evt.composedPath().includes(this.element.bib)) ||
19965
+ (this.element.bib.backdrop &&
19966
+ evt.composedPath().includes(this.element.bib.backdrop))
20029
19967
  ) {
20030
19968
  const existedVisibleFloatingUI =
20031
19969
  document.expandedAuroFormkitDropdown || document.expandedAuroFloater;
@@ -20046,12 +19984,7 @@ let AuroFloatingUI$3 = class AuroFloatingUI {
20046
19984
 
20047
19985
  // ESC key handler
20048
19986
  this.keyDownHandler = (evt) => {
20049
- const element = this.element;
20050
- if (!element) {
20051
- return;
20052
- }
20053
-
20054
- if (evt.key === "Escape" && element.isPopoverVisible) {
19987
+ if (evt.key === "Escape" && this.element.isPopoverVisible) {
20055
19988
  const existedVisibleFloatingUI =
20056
19989
  document.expandedAuroFormkitDropdown || document.expandedAuroFloater;
20057
19990
  if (
@@ -20108,10 +20041,6 @@ let AuroFloatingUI$3 = class AuroFloatingUI {
20108
20041
  }
20109
20042
 
20110
20043
  updateCurrentExpandedDropdown() {
20111
- if (!this.element) {
20112
- return;
20113
- }
20114
-
20115
20044
  // Close any other dropdown that is already open
20116
20045
  const existedVisibleFloatingUI =
20117
20046
  document.expandedAuroFormkitDropdown || document.expandedAuroFloater;
@@ -20128,34 +20057,25 @@ let AuroFloatingUI$3 = class AuroFloatingUI {
20128
20057
  }
20129
20058
 
20130
20059
  showBib() {
20131
- const element = this.element;
20132
- if (!element) {
20133
- return;
20134
- }
20135
-
20136
- if (!element.disabled && !this.showing) {
20060
+ if (!this.element.disabled && !this.showing) {
20137
20061
  this.updateCurrentExpandedDropdown();
20138
- element.triggerChevron?.setAttribute("data-expanded", true);
20062
+ this.element.triggerChevron?.setAttribute("data-expanded", true);
20139
20063
 
20140
20064
  // prevent double showing: isPopovervisible gets first and showBib gets called later
20141
20065
  if (!this.showing) {
20142
- if (!element.modal) {
20066
+ if (!this.element.modal) {
20143
20067
  this.setupHideHandlers();
20144
20068
  }
20145
20069
  this.showing = true;
20146
- element.isPopoverVisible = true;
20070
+ this.element.isPopoverVisible = true;
20147
20071
  this.position();
20148
20072
  this.dispatchEventDropdownToggle();
20149
20073
  }
20150
20074
 
20151
- if (!element.bib || (!element.trigger && !element.parentNode)) {
20152
- return;
20153
- }
20154
-
20155
20075
  // Setup auto update to handle resize and scroll
20156
- element.cleanup = autoUpdate$3(
20157
- element.trigger || element.parentNode,
20158
- element.bib,
20076
+ this.element.cleanup = autoUpdate$3(
20077
+ this.element.trigger || this.element.parentNode,
20078
+ this.element.bib,
20159
20079
  () => {
20160
20080
  this.position();
20161
20081
  },
@@ -20168,27 +20088,22 @@ let AuroFloatingUI$3 = class AuroFloatingUI {
20168
20088
  * @param {String} eventType - The event type that triggered the hiding action.
20169
20089
  */
20170
20090
  hideBib(eventType = "unknown") {
20171
- const element = this.element;
20172
- if (!element) {
20173
- return;
20174
- }
20175
-
20176
- if (element.disabled) {
20091
+ if (this.element.disabled) {
20177
20092
  return;
20178
20093
  }
20179
20094
 
20180
20095
  // noToggle dropdowns should not close when the trigger is clicked (the
20181
20096
  // "toggle" behavior), but they CAN still close via other interactions like
20182
20097
  // Escape key or focus loss.
20183
- if (element.noToggle && eventType === "click") {
20098
+ if (this.element.noToggle && eventType === "click") {
20184
20099
  return;
20185
20100
  }
20186
20101
 
20187
20102
  this.lockScroll(false);
20188
- element.triggerChevron?.removeAttribute("data-expanded");
20103
+ this.element.triggerChevron?.removeAttribute("data-expanded");
20189
20104
 
20190
- if (element.isPopoverVisible) {
20191
- element.isPopoverVisible = false;
20105
+ if (this.element.isPopoverVisible) {
20106
+ this.element.isPopoverVisible = false;
20192
20107
  }
20193
20108
  if (this.showing) {
20194
20109
  this.cleanupHideHandlers();
@@ -20208,11 +20123,6 @@ let AuroFloatingUI$3 = class AuroFloatingUI {
20208
20123
  * @param {String} eventType - The event type that triggered the toggle action.
20209
20124
  */
20210
20125
  dispatchEventDropdownToggle(eventType) {
20211
- const element = this.element;
20212
- if (!element) {
20213
- return;
20214
- }
20215
-
20216
20126
  const event = new CustomEvent(
20217
20127
  this.eventPrefix ? `${this.eventPrefix}-toggled` : "toggled",
20218
20128
  {
@@ -20224,16 +20134,11 @@ let AuroFloatingUI$3 = class AuroFloatingUI {
20224
20134
  },
20225
20135
  );
20226
20136
 
20227
- element.dispatchEvent(event);
20137
+ this.element.dispatchEvent(event);
20228
20138
  }
20229
20139
 
20230
20140
  handleClick() {
20231
- const element = this.element;
20232
- if (!element) {
20233
- return;
20234
- }
20235
-
20236
- if (element.isPopoverVisible) {
20141
+ if (this.element.isPopoverVisible) {
20237
20142
  this.hideBib("click");
20238
20143
  } else {
20239
20144
  this.showBib();
@@ -20244,66 +20149,63 @@ let AuroFloatingUI$3 = class AuroFloatingUI {
20244
20149
  {
20245
20150
  composed: true,
20246
20151
  detail: {
20247
- expanded: element.isPopoverVisible,
20152
+ expanded: this.element.isPopoverVisible,
20248
20153
  },
20249
20154
  },
20250
20155
  );
20251
20156
 
20252
- element.dispatchEvent(event);
20157
+ this.element.dispatchEvent(event);
20253
20158
  }
20254
20159
 
20255
20160
  handleEvent(event) {
20256
- const element = this.element;
20257
- if (!element || element.disableEventShow) {
20258
- return;
20259
- }
20260
-
20261
- switch (event.type) {
20262
- case "keydown": {
20263
- // Support both Enter and Space keys for accessibility
20264
- // Space is included as it's expected behavior for interactive elements
20265
-
20266
- const origin = event.composedPath()[0];
20267
- if (
20268
- event.key === "Enter" ||
20269
- (event.key === " " && (!origin || origin.tagName !== "INPUT"))
20270
- ) {
20271
- event.preventDefault();
20272
- this.handleClick();
20161
+ if (!this.element.disableEventShow) {
20162
+ switch (event.type) {
20163
+ case "keydown": {
20164
+ // Support both Enter and Space keys for accessibility
20165
+ // Space is included as it's expected behavior for interactive elements
20166
+
20167
+ const origin = event.composedPath()[0];
20168
+ if (
20169
+ event.key === "Enter" ||
20170
+ (event.key === " " && (!origin || origin.tagName !== "INPUT"))
20171
+ ) {
20172
+ event.preventDefault();
20173
+ this.handleClick();
20174
+ }
20175
+ break;
20273
20176
  }
20274
- break;
20177
+ case "mouseenter":
20178
+ if (this.element.hoverToggle) {
20179
+ this.showBib();
20180
+ }
20181
+ break;
20182
+ case "mouseleave":
20183
+ if (this.element.hoverToggle) {
20184
+ this.hideBib("mouseleave");
20185
+ }
20186
+ break;
20187
+ case "focus":
20188
+ if (this.element.focusShow) {
20189
+ /*
20190
+ This needs to better handle clicking that gives focus -
20191
+ currently it shows and then immediately hides the bib
20192
+ */
20193
+ this.showBib();
20194
+ }
20195
+ break;
20196
+ case "blur":
20197
+ // send this task 100ms later queue to
20198
+ // wait a frame in case focus moves within the floating element/bib
20199
+ setTimeout(() => this.handleFocusLoss(), 0);
20200
+ break;
20201
+ case "click":
20202
+ if (document.activeElement === document.body) {
20203
+ event.currentTarget.focus();
20204
+ }
20205
+ this.handleClick();
20206
+ break;
20207
+ // Do nothing
20275
20208
  }
20276
- case "mouseenter":
20277
- if (element.hoverToggle) {
20278
- this.showBib();
20279
- }
20280
- break;
20281
- case "mouseleave":
20282
- if (element.hoverToggle) {
20283
- this.hideBib("mouseleave");
20284
- }
20285
- break;
20286
- case "focus":
20287
- if (element.focusShow) {
20288
- /*
20289
- This needs to better handle clicking that gives focus -
20290
- currently it shows and then immediately hides the bib
20291
- */
20292
- this.showBib();
20293
- }
20294
- break;
20295
- case "blur":
20296
- // send this task 100ms later queue to
20297
- // wait a frame in case focus moves within the floating element/bib
20298
- setTimeout(() => this.handleFocusLoss(), 0);
20299
- break;
20300
- case "click":
20301
- if (document.activeElement === document.body) {
20302
- event.currentTarget.focus();
20303
- }
20304
- this.handleClick();
20305
- break;
20306
- // Do nothing
20307
20209
  }
20308
20210
  }
20309
20211
 
@@ -20314,11 +20216,6 @@ let AuroFloatingUI$3 = class AuroFloatingUI {
20314
20216
  * This prevents the component itself from being focusable when the trigger element already handles focus.
20315
20217
  */
20316
20218
  handleTriggerTabIndex() {
20317
- const element = this.element;
20318
- if (!element) {
20319
- return;
20320
- }
20321
-
20322
20219
  const focusableElementSelectors = [
20323
20220
  "a",
20324
20221
  "button",
@@ -20331,7 +20228,7 @@ let AuroFloatingUI$3 = class AuroFloatingUI {
20331
20228
  "auro-hyperlink",
20332
20229
  ];
20333
20230
 
20334
- const triggerNode = element.querySelectorAll('[slot="trigger"]')[0];
20231
+ const triggerNode = this.element.querySelectorAll('[slot="trigger"]')[0];
20335
20232
  if (!triggerNode) {
20336
20233
  return;
20337
20234
  }
@@ -20340,13 +20237,13 @@ let AuroFloatingUI$3 = class AuroFloatingUI {
20340
20237
  focusableElementSelectors.forEach((selector) => {
20341
20238
  // Check if the trigger node element is focusable
20342
20239
  if (triggerNodeTagName === selector) {
20343
- element.tabIndex = -1;
20240
+ this.element.tabIndex = -1;
20344
20241
  return;
20345
20242
  }
20346
20243
 
20347
20244
  // Check if any child is focusable
20348
20245
  if (triggerNode.querySelector(selector)) {
20349
- element.tabIndex = -1;
20246
+ this.element.tabIndex = -1;
20350
20247
  }
20351
20248
  });
20352
20249
  }
@@ -20356,18 +20253,13 @@ let AuroFloatingUI$3 = class AuroFloatingUI {
20356
20253
  * @param {*} eventPrefix
20357
20254
  */
20358
20255
  regenerateBibId() {
20359
- const element = this.element;
20360
- if (!element) {
20361
- return;
20362
- }
20363
-
20364
- this.id = element.getAttribute("id");
20256
+ this.id = this.element.getAttribute("id");
20365
20257
  if (!this.id) {
20366
20258
  this.id = window.crypto.randomUUID();
20367
- element.setAttribute("id", this.id);
20259
+ this.element.setAttribute("id", this.id);
20368
20260
  }
20369
20261
 
20370
- element.bib?.setAttribute("id", `${this.id}-floater-bib`);
20262
+ this.element.bib.setAttribute("id", `${this.id}-floater-bib`);
20371
20263
  }
20372
20264
 
20373
20265
  configure(elem, eventPrefix, enableKeyboardHandling = true) {
@@ -20379,69 +20271,67 @@ let AuroFloatingUI$3 = class AuroFloatingUI {
20379
20271
  this.element = elem;
20380
20272
  }
20381
20273
 
20382
- const element = this.element;
20383
- if (!element) {
20384
- return;
20274
+ if (this.behavior !== this.element.behavior) {
20275
+ this.behavior = this.element.behavior;
20385
20276
  }
20386
20277
 
20387
- if (this.behavior !== element.behavior) {
20388
- this.behavior = element.behavior;
20389
- }
20390
-
20391
- if (element.trigger) {
20278
+ if (this.element.trigger) {
20392
20279
  this.disconnect();
20393
20280
  }
20394
- element.trigger =
20395
- element.triggerElement ||
20396
- element.shadowRoot?.querySelector("#trigger") ||
20397
- element.trigger;
20398
- element.bib = element.shadowRoot?.querySelector("#bib") || element.bib;
20399
- element.bibSizer = element.shadowRoot?.querySelector("#bibSizer");
20400
- element.triggerChevron =
20401
- element.shadowRoot?.querySelector("#showStateIcon");
20281
+ this.element.trigger =
20282
+ this.element.triggerElement ||
20283
+ this.element.shadowRoot.querySelector("#trigger") ||
20284
+ this.element.trigger;
20285
+ this.element.bib =
20286
+ this.element.shadowRoot.querySelector("#bib") || this.element.bib;
20287
+ this.element.bibSizer = this.element.shadowRoot.querySelector("#bibSizer");
20288
+ this.element.triggerChevron =
20289
+ this.element.shadowRoot.querySelector("#showStateIcon");
20402
20290
 
20403
- if (element.floaterConfig) {
20404
- element.hoverToggle = element.floaterConfig.hoverToggle;
20291
+ if (this.element.floaterConfig) {
20292
+ this.element.hoverToggle = this.element.floaterConfig.hoverToggle;
20405
20293
  }
20406
20294
 
20407
20295
  this.regenerateBibId();
20408
20296
  this.handleTriggerTabIndex();
20409
20297
 
20410
20298
  this.handleEvent = this.handleEvent.bind(this);
20411
- if (element.trigger) {
20299
+ if (this.element.trigger) {
20412
20300
  if (this.enableKeyboardHandling) {
20413
- element.trigger.addEventListener("keydown", this.handleEvent);
20301
+ this.element.trigger.addEventListener("keydown", this.handleEvent);
20414
20302
  }
20415
- element.trigger.addEventListener("click", this.handleEvent);
20416
- element.trigger.addEventListener("mouseenter", this.handleEvent);
20417
- element.trigger.addEventListener("mouseleave", this.handleEvent);
20418
- element.trigger.addEventListener("focus", this.handleEvent);
20419
- element.trigger.addEventListener("blur", this.handleEvent);
20303
+ this.element.trigger.addEventListener("click", this.handleEvent);
20304
+ this.element.trigger.addEventListener("mouseenter", this.handleEvent);
20305
+ this.element.trigger.addEventListener("mouseleave", this.handleEvent);
20306
+ this.element.trigger.addEventListener("focus", this.handleEvent);
20307
+ this.element.trigger.addEventListener("blur", this.handleEvent);
20420
20308
  }
20421
20309
  }
20422
20310
 
20423
20311
  disconnect() {
20424
20312
  this.cleanupHideHandlers();
20313
+ if (this.element) {
20314
+ this.element.cleanup?.();
20425
20315
 
20426
- const element = this.element;
20427
- if (!element) {
20428
- return;
20429
- }
20430
-
20431
- element.cleanup?.();
20432
-
20433
- if (element.bib && element.shadowRoot) {
20434
- element.shadowRoot.append(element.bib);
20435
- }
20316
+ if (this.element.bib) {
20317
+ this.element.shadowRoot.append(this.element.bib);
20318
+ }
20436
20319
 
20437
- // Remove event & keyboard listeners
20438
- if (element.trigger) {
20439
- element.trigger.removeEventListener("keydown", this.handleEvent);
20440
- element.trigger.removeEventListener("click", this.handleEvent);
20441
- element.trigger.removeEventListener("mouseenter", this.handleEvent);
20442
- element.trigger.removeEventListener("mouseleave", this.handleEvent);
20443
- element.trigger.removeEventListener("focus", this.handleEvent);
20444
- element.trigger.removeEventListener("blur", this.handleEvent);
20320
+ // Remove event & keyboard listeners
20321
+ if (this.element?.trigger) {
20322
+ this.element.trigger.removeEventListener("keydown", this.handleEvent);
20323
+ this.element.trigger.removeEventListener("click", this.handleEvent);
20324
+ this.element.trigger.removeEventListener(
20325
+ "mouseenter",
20326
+ this.handleEvent,
20327
+ );
20328
+ this.element.trigger.removeEventListener(
20329
+ "mouseleave",
20330
+ this.handleEvent,
20331
+ );
20332
+ this.element.trigger.removeEventListener("focus", this.handleEvent);
20333
+ this.element.trigger.removeEventListener("blur", this.handleEvent);
20334
+ }
20445
20335
  }
20446
20336
  }
20447
20337
  };
@@ -21569,7 +21459,7 @@ let AuroHelpText$2$1 = class AuroHelpText extends i$4 {
21569
21459
  }
21570
21460
  };
21571
21461
 
21572
- var formkitVersion$1$3 = '202604070549';
21462
+ var formkitVersion$1$3 = '202604071525';
21573
21463
 
21574
21464
  let AuroElement$2$2 = class AuroElement extends i$4 {
21575
21465
  static get properties() {
@@ -29326,7 +29216,7 @@ let AuroHelpText$1$3 = class AuroHelpText extends i$4 {
29326
29216
  }
29327
29217
  };
29328
29218
 
29329
- var formkitVersion$7 = '202604070549';
29219
+ var formkitVersion$7 = '202604071525';
29330
29220
 
29331
29221
  // Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
29332
29222
  // See LICENSE in the project root for license information.
@@ -33901,7 +33791,7 @@ let AuroHelpText$1$2 = class AuroHelpText extends i$4 {
33901
33791
  }
33902
33792
  };
33903
33793
 
33904
- var formkitVersion$1$2 = '202604070549';
33794
+ var formkitVersion$1$2 = '202604071525';
33905
33795
 
33906
33796
  // Copyright (c) 2026 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
33907
33797
  // See LICENSE in the project root for license information.
@@ -36199,19 +36089,11 @@ let AuroFloatingUI$2 = class AuroFloatingUI {
36199
36089
  * This ensures that the bib content has the same dimensions as the sizer element.
36200
36090
  */
36201
36091
  mirrorSize() {
36202
- const element = this.element;
36203
- if (!element) {
36204
- return;
36205
- }
36206
-
36207
36092
  // mirror the boxsize from bibSizer
36208
- if (element.bibSizer && element.matchWidth && element.bib?.shadowRoot) {
36209
- const sizerStyle = window.getComputedStyle(element.bibSizer);
36210
- const bibContent = element.bib.shadowRoot.querySelector(".container");
36211
- if (!bibContent) {
36212
- return;
36213
- }
36214
-
36093
+ if (this.element.bibSizer && this.element.matchWidth) {
36094
+ const sizerStyle = window.getComputedStyle(this.element.bibSizer);
36095
+ const bibContent =
36096
+ this.element.bib.shadowRoot.querySelector(".container");
36215
36097
  if (sizerStyle.width !== "0px") {
36216
36098
  bibContent.style.width = sizerStyle.width;
36217
36099
  }
@@ -36233,14 +36115,9 @@ let AuroFloatingUI$2 = class AuroFloatingUI {
36233
36115
  * @returns {String} The positioning strategy, one of 'fullscreen', 'floating', 'cover'.
36234
36116
  */
36235
36117
  getPositioningStrategy() {
36236
- const element = this.element;
36237
- if (!element) {
36238
- return this.behavior || "floating";
36239
- }
36240
-
36241
36118
  const breakpoint =
36242
- element.bib?.mobileFullscreenBreakpoint ||
36243
- element.floaterConfig?.fullscreenBreakpoint;
36119
+ this.element.bib.mobileFullscreenBreakpoint ||
36120
+ this.element.floaterConfig?.fullscreenBreakpoint;
36244
36121
  switch (this.behavior) {
36245
36122
  case "tooltip":
36246
36123
  return "floating";
@@ -36251,9 +36128,9 @@ let AuroFloatingUI$2 = class AuroFloatingUI {
36251
36128
  `(max-width: ${breakpoint})`,
36252
36129
  ).matches;
36253
36130
 
36254
- element.expanded = smallerThanBreakpoint;
36131
+ this.element.expanded = smallerThanBreakpoint;
36255
36132
  }
36256
- if (element.nested) {
36133
+ if (this.element.nested) {
36257
36134
  return "cover";
36258
36135
  }
36259
36136
  return "fullscreen";
@@ -36283,65 +36160,42 @@ let AuroFloatingUI$2 = class AuroFloatingUI {
36283
36160
  * and applies the calculated position to the bib's style.
36284
36161
  */
36285
36162
  position() {
36286
- const element = this.element;
36287
- if (!element) {
36288
- return;
36289
- }
36290
-
36291
36163
  const strategy = this.getPositioningStrategy();
36292
36164
  this.configureBibStrategy(strategy);
36293
36165
 
36294
36166
  if (strategy === "floating") {
36295
- if (!element.trigger || !element.bib) {
36296
- return;
36297
- }
36298
-
36299
36167
  this.mirrorSize();
36300
36168
  // Define the middlware for the floater configuration
36301
36169
  const middleware = [
36302
- offset$3(element.floaterConfig?.offset || 0),
36303
- ...(element.floaterConfig?.shift ? [shift$3()] : []), // Add shift middleware if shift is enabled.
36304
- ...(element.floaterConfig?.flip ? [flip$3()] : []), // Add flip middleware if flip is enabled.
36305
- ...(element.floaterConfig?.autoPlacement ? [autoPlacement$3()] : []), // Add autoPlacement middleware if autoPlacement is enabled.
36170
+ offset$3(this.element.floaterConfig?.offset || 0),
36171
+ ...(this.element.floaterConfig?.shift ? [shift$3()] : []), // Add shift middleware if shift is enabled.
36172
+ ...(this.element.floaterConfig?.flip ? [flip$3()] : []), // Add flip middleware if flip is enabled.
36173
+ ...(this.element.floaterConfig?.autoPlacement ? [autoPlacement$3()] : []), // Add autoPlacement middleware if autoPlacement is enabled.
36306
36174
  ];
36307
36175
 
36308
36176
  // Compute the position of the bib
36309
- computePosition$3(element.trigger, element.bib, {
36310
- strategy: element.floaterConfig?.strategy || "fixed",
36311
- placement: element.floaterConfig?.placement,
36177
+ computePosition$3(this.element.trigger, this.element.bib, {
36178
+ strategy: this.element.floaterConfig?.strategy || "fixed",
36179
+ placement: this.element.floaterConfig?.placement,
36312
36180
  middleware: middleware || [],
36313
36181
  }).then(({ x, y }) => {
36314
36182
  // eslint-disable-line id-length
36315
- const currentElement = this.element;
36316
- if (!currentElement?.bib) {
36317
- return;
36318
- }
36319
-
36320
- Object.assign(currentElement.bib.style, {
36183
+ Object.assign(this.element.bib.style, {
36321
36184
  left: `${x}px`,
36322
36185
  top: `${y}px`,
36323
36186
  });
36324
36187
  });
36325
36188
  } else if (strategy === "cover") {
36326
- if (!element.parentNode || !element.bib) {
36327
- return;
36328
- }
36329
-
36330
36189
  // Compute the position of the bib
36331
- computePosition$3(element.parentNode, element.bib, {
36190
+ computePosition$3(this.element.parentNode, this.element.bib, {
36332
36191
  placement: "bottom-start",
36333
36192
  }).then(({ x, y }) => {
36334
36193
  // eslint-disable-line id-length
36335
- const currentElement = this.element;
36336
- if (!currentElement?.bib || !currentElement.parentNode) {
36337
- return;
36338
- }
36339
-
36340
- Object.assign(currentElement.bib.style, {
36194
+ Object.assign(this.element.bib.style, {
36341
36195
  left: `${x}px`,
36342
- top: `${y - currentElement.parentNode.offsetHeight}px`,
36343
- width: `${currentElement.parentNode.offsetWidth}px`,
36344
- height: `${currentElement.parentNode.offsetHeight}px`,
36196
+ top: `${y - this.element.parentNode.offsetHeight}px`,
36197
+ width: `${this.element.parentNode.offsetWidth}px`,
36198
+ height: `${this.element.parentNode.offsetHeight}px`,
36345
36199
  });
36346
36200
  });
36347
36201
  }
@@ -36353,17 +36207,11 @@ let AuroFloatingUI$2 = class AuroFloatingUI {
36353
36207
  * @param {Boolean} lock - If true, locks the body's scrolling functionlity; otherwise, unlock.
36354
36208
  */
36355
36209
  lockScroll(lock = true) {
36356
- const element = this.element;
36357
-
36358
36210
  if (lock) {
36359
- if (!element?.bib) {
36360
- return;
36361
- }
36362
-
36363
36211
  document.body.style.overflow = "hidden"; // hide body's scrollbar
36364
36212
 
36365
36213
  // Move `bib` by the amount the viewport is shifted to stay aligned in fullscreen.
36366
- element.bib.style.transform = `translateY(${window?.visualViewport?.offsetTop}px)`;
36214
+ this.element.bib.style.transform = `translateY(${window?.visualViewport?.offsetTop}px)`;
36367
36215
  } else {
36368
36216
  document.body.style.overflow = "";
36369
36217
  }
@@ -36379,24 +36227,20 @@ let AuroFloatingUI$2 = class AuroFloatingUI {
36379
36227
  * @param {string} strategy - The positioning strategy ('fullscreen' or 'floating').
36380
36228
  */
36381
36229
  configureBibStrategy(value) {
36382
- const element = this.element;
36383
- if (!element?.bib) {
36384
- return;
36385
- }
36386
-
36387
36230
  if (value === "fullscreen") {
36388
- element.isBibFullscreen = true;
36231
+ this.element.isBibFullscreen = true;
36389
36232
  // reset the prev position
36390
- element.bib.setAttribute("isfullscreen", "");
36391
- element.bib.style.position = "fixed";
36392
- element.bib.style.top = "0px";
36393
- element.bib.style.left = "0px";
36394
- element.bib.style.width = "";
36395
- element.bib.style.height = "";
36396
- element.style.contain = "";
36233
+ this.element.bib.setAttribute("isfullscreen", "");
36234
+ this.element.bib.style.position = "fixed";
36235
+ this.element.bib.style.top = "0px";
36236
+ this.element.bib.style.left = "0px";
36237
+ this.element.bib.style.width = "";
36238
+ this.element.bib.style.height = "";
36239
+ this.element.style.contain = "";
36397
36240
 
36398
36241
  // reset the size that was mirroring `size` css-part
36399
- const bibContent = element.bib.shadowRoot?.querySelector(".container");
36242
+ const bibContent =
36243
+ this.element.bib.shadowRoot.querySelector(".container");
36400
36244
  if (bibContent) {
36401
36245
  bibContent.style.width = "";
36402
36246
  bibContent.style.height = "";
@@ -36411,14 +36255,14 @@ let AuroFloatingUI$2 = class AuroFloatingUI {
36411
36255
  }, 0);
36412
36256
  }
36413
36257
 
36414
- if (element.isPopoverVisible) {
36258
+ if (this.element.isPopoverVisible) {
36415
36259
  this.lockScroll(true);
36416
36260
  }
36417
36261
  } else {
36418
- element.bib.style.position = "";
36419
- element.bib.removeAttribute("isfullscreen");
36420
- element.isBibFullscreen = false;
36421
- element.style.contain = "layout";
36262
+ this.element.bib.style.position = "";
36263
+ this.element.bib.removeAttribute("isfullscreen");
36264
+ this.element.isBibFullscreen = false;
36265
+ this.element.style.contain = "layout";
36422
36266
  }
36423
36267
 
36424
36268
  const isChanged = this.strategy && this.strategy !== value;
@@ -36436,21 +36280,16 @@ let AuroFloatingUI$2 = class AuroFloatingUI {
36436
36280
  },
36437
36281
  );
36438
36282
 
36439
- element.dispatchEvent(event);
36283
+ this.element.dispatchEvent(event);
36440
36284
  }
36441
36285
  }
36442
36286
 
36443
36287
  updateState() {
36444
- const element = this.element;
36445
- if (!element) {
36446
- return;
36447
- }
36448
-
36449
- const isVisible = element.isPopoverVisible;
36288
+ const isVisible = this.element.isPopoverVisible;
36450
36289
  if (!isVisible) {
36451
36290
  this.cleanupHideHandlers();
36452
36291
  try {
36453
- element.cleanup?.();
36292
+ this.element.cleanup?.();
36454
36293
  } catch (error) {
36455
36294
  // Do nothing
36456
36295
  }
@@ -36466,30 +36305,28 @@ let AuroFloatingUI$2 = class AuroFloatingUI {
36466
36305
  * If not, and if the bib isn't in fullscreen mode with focus lost, it hides the bib.
36467
36306
  */
36468
36307
  handleFocusLoss() {
36469
- const element = this.element;
36470
- if (!element?.bib) {
36471
- return;
36472
- }
36473
-
36474
36308
  // if mouse is being pressed, skip and let click event to handle the action
36475
36309
  if (AuroFloatingUI.isMousePressed) {
36476
36310
  return;
36477
36311
  }
36478
36312
 
36479
36313
  if (
36480
- element.noHideOnThisFocusLoss ||
36481
- element.hasAttribute("noHideOnThisFocusLoss")
36314
+ this.element.noHideOnThisFocusLoss ||
36315
+ this.element.hasAttribute("noHideOnThisFocusLoss")
36482
36316
  ) {
36483
36317
  return;
36484
36318
  }
36485
36319
 
36486
36320
  // if focus is still inside of trigger or bib, do not close
36487
- if (element.matches(":focus") || element.matches(":focus-within")) {
36321
+ if (
36322
+ this.element.matches(":focus") ||
36323
+ this.element.matches(":focus-within")
36324
+ ) {
36488
36325
  return;
36489
36326
  }
36490
36327
 
36491
36328
  // if fullscreen bib is in fullscreen mode, do not close
36492
- if (element.bib.hasAttribute("isfullscreen")) {
36329
+ if (this.element.bib.hasAttribute("isfullscreen")) {
36493
36330
  return;
36494
36331
  }
36495
36332
 
@@ -36497,32 +36334,23 @@ let AuroFloatingUI$2 = class AuroFloatingUI {
36497
36334
  }
36498
36335
 
36499
36336
  setupHideHandlers() {
36500
- if (!this.element) {
36501
- return;
36502
- }
36503
-
36504
36337
  // Define handlers & store references
36505
36338
  this.focusHandler = () => this.handleFocusLoss();
36506
36339
 
36507
36340
  this.clickHandler = (evt) => {
36508
- const element = this.element;
36509
- if (!element?.bib) {
36510
- return;
36511
- }
36512
-
36513
36341
  // When the bib is fullscreen (modal dialog), don't close on outside
36514
36342
  // clicks. VoiceOver's synthetic click events inside a top-layer modal
36515
36343
  // <dialog> may not include the bib in composedPath(), causing false
36516
36344
  // positives. This mirrors the fullscreen guard in handleFocusLoss().
36517
- if (element.bib.hasAttribute("isfullscreen")) {
36345
+ if (this.element.bib && this.element.bib.hasAttribute("isfullscreen")) {
36518
36346
  return;
36519
36347
  }
36520
36348
 
36521
36349
  if (
36522
- (!evt.composedPath().includes(element.trigger) &&
36523
- !evt.composedPath().includes(element.bib)) ||
36524
- (element.bib.backdrop &&
36525
- evt.composedPath().includes(element.bib.backdrop))
36350
+ (!evt.composedPath().includes(this.element.trigger) &&
36351
+ !evt.composedPath().includes(this.element.bib)) ||
36352
+ (this.element.bib.backdrop &&
36353
+ evt.composedPath().includes(this.element.bib.backdrop))
36526
36354
  ) {
36527
36355
  const existedVisibleFloatingUI =
36528
36356
  document.expandedAuroFormkitDropdown || document.expandedAuroFloater;
@@ -36543,12 +36371,7 @@ let AuroFloatingUI$2 = class AuroFloatingUI {
36543
36371
 
36544
36372
  // ESC key handler
36545
36373
  this.keyDownHandler = (evt) => {
36546
- const element = this.element;
36547
- if (!element) {
36548
- return;
36549
- }
36550
-
36551
- if (evt.key === "Escape" && element.isPopoverVisible) {
36374
+ if (evt.key === "Escape" && this.element.isPopoverVisible) {
36552
36375
  const existedVisibleFloatingUI =
36553
36376
  document.expandedAuroFormkitDropdown || document.expandedAuroFloater;
36554
36377
  if (
@@ -36605,10 +36428,6 @@ let AuroFloatingUI$2 = class AuroFloatingUI {
36605
36428
  }
36606
36429
 
36607
36430
  updateCurrentExpandedDropdown() {
36608
- if (!this.element) {
36609
- return;
36610
- }
36611
-
36612
36431
  // Close any other dropdown that is already open
36613
36432
  const existedVisibleFloatingUI =
36614
36433
  document.expandedAuroFormkitDropdown || document.expandedAuroFloater;
@@ -36625,34 +36444,25 @@ let AuroFloatingUI$2 = class AuroFloatingUI {
36625
36444
  }
36626
36445
 
36627
36446
  showBib() {
36628
- const element = this.element;
36629
- if (!element) {
36630
- return;
36631
- }
36632
-
36633
- if (!element.disabled && !this.showing) {
36447
+ if (!this.element.disabled && !this.showing) {
36634
36448
  this.updateCurrentExpandedDropdown();
36635
- element.triggerChevron?.setAttribute("data-expanded", true);
36449
+ this.element.triggerChevron?.setAttribute("data-expanded", true);
36636
36450
 
36637
36451
  // prevent double showing: isPopovervisible gets first and showBib gets called later
36638
36452
  if (!this.showing) {
36639
- if (!element.modal) {
36453
+ if (!this.element.modal) {
36640
36454
  this.setupHideHandlers();
36641
36455
  }
36642
36456
  this.showing = true;
36643
- element.isPopoverVisible = true;
36457
+ this.element.isPopoverVisible = true;
36644
36458
  this.position();
36645
36459
  this.dispatchEventDropdownToggle();
36646
36460
  }
36647
36461
 
36648
- if (!element.bib || (!element.trigger && !element.parentNode)) {
36649
- return;
36650
- }
36651
-
36652
36462
  // Setup auto update to handle resize and scroll
36653
- element.cleanup = autoUpdate$2(
36654
- element.trigger || element.parentNode,
36655
- element.bib,
36463
+ this.element.cleanup = autoUpdate$2(
36464
+ this.element.trigger || this.element.parentNode,
36465
+ this.element.bib,
36656
36466
  () => {
36657
36467
  this.position();
36658
36468
  },
@@ -36665,27 +36475,22 @@ let AuroFloatingUI$2 = class AuroFloatingUI {
36665
36475
  * @param {String} eventType - The event type that triggered the hiding action.
36666
36476
  */
36667
36477
  hideBib(eventType = "unknown") {
36668
- const element = this.element;
36669
- if (!element) {
36670
- return;
36671
- }
36672
-
36673
- if (element.disabled) {
36478
+ if (this.element.disabled) {
36674
36479
  return;
36675
36480
  }
36676
36481
 
36677
36482
  // noToggle dropdowns should not close when the trigger is clicked (the
36678
36483
  // "toggle" behavior), but they CAN still close via other interactions like
36679
36484
  // Escape key or focus loss.
36680
- if (element.noToggle && eventType === "click") {
36485
+ if (this.element.noToggle && eventType === "click") {
36681
36486
  return;
36682
36487
  }
36683
36488
 
36684
36489
  this.lockScroll(false);
36685
- element.triggerChevron?.removeAttribute("data-expanded");
36490
+ this.element.triggerChevron?.removeAttribute("data-expanded");
36686
36491
 
36687
- if (element.isPopoverVisible) {
36688
- element.isPopoverVisible = false;
36492
+ if (this.element.isPopoverVisible) {
36493
+ this.element.isPopoverVisible = false;
36689
36494
  }
36690
36495
  if (this.showing) {
36691
36496
  this.cleanupHideHandlers();
@@ -36705,11 +36510,6 @@ let AuroFloatingUI$2 = class AuroFloatingUI {
36705
36510
  * @param {String} eventType - The event type that triggered the toggle action.
36706
36511
  */
36707
36512
  dispatchEventDropdownToggle(eventType) {
36708
- const element = this.element;
36709
- if (!element) {
36710
- return;
36711
- }
36712
-
36713
36513
  const event = new CustomEvent(
36714
36514
  this.eventPrefix ? `${this.eventPrefix}-toggled` : "toggled",
36715
36515
  {
@@ -36721,16 +36521,11 @@ let AuroFloatingUI$2 = class AuroFloatingUI {
36721
36521
  },
36722
36522
  );
36723
36523
 
36724
- element.dispatchEvent(event);
36524
+ this.element.dispatchEvent(event);
36725
36525
  }
36726
36526
 
36727
36527
  handleClick() {
36728
- const element = this.element;
36729
- if (!element) {
36730
- return;
36731
- }
36732
-
36733
- if (element.isPopoverVisible) {
36528
+ if (this.element.isPopoverVisible) {
36734
36529
  this.hideBib("click");
36735
36530
  } else {
36736
36531
  this.showBib();
@@ -36741,66 +36536,63 @@ let AuroFloatingUI$2 = class AuroFloatingUI {
36741
36536
  {
36742
36537
  composed: true,
36743
36538
  detail: {
36744
- expanded: element.isPopoverVisible,
36539
+ expanded: this.element.isPopoverVisible,
36745
36540
  },
36746
36541
  },
36747
36542
  );
36748
36543
 
36749
- element.dispatchEvent(event);
36544
+ this.element.dispatchEvent(event);
36750
36545
  }
36751
36546
 
36752
36547
  handleEvent(event) {
36753
- const element = this.element;
36754
- if (!element || element.disableEventShow) {
36755
- return;
36756
- }
36757
-
36758
- switch (event.type) {
36759
- case "keydown": {
36760
- // Support both Enter and Space keys for accessibility
36761
- // Space is included as it's expected behavior for interactive elements
36762
-
36763
- const origin = event.composedPath()[0];
36764
- if (
36765
- event.key === "Enter" ||
36766
- (event.key === " " && (!origin || origin.tagName !== "INPUT"))
36767
- ) {
36768
- event.preventDefault();
36769
- this.handleClick();
36548
+ if (!this.element.disableEventShow) {
36549
+ switch (event.type) {
36550
+ case "keydown": {
36551
+ // Support both Enter and Space keys for accessibility
36552
+ // Space is included as it's expected behavior for interactive elements
36553
+
36554
+ const origin = event.composedPath()[0];
36555
+ if (
36556
+ event.key === "Enter" ||
36557
+ (event.key === " " && (!origin || origin.tagName !== "INPUT"))
36558
+ ) {
36559
+ event.preventDefault();
36560
+ this.handleClick();
36561
+ }
36562
+ break;
36770
36563
  }
36771
- break;
36564
+ case "mouseenter":
36565
+ if (this.element.hoverToggle) {
36566
+ this.showBib();
36567
+ }
36568
+ break;
36569
+ case "mouseleave":
36570
+ if (this.element.hoverToggle) {
36571
+ this.hideBib("mouseleave");
36572
+ }
36573
+ break;
36574
+ case "focus":
36575
+ if (this.element.focusShow) {
36576
+ /*
36577
+ This needs to better handle clicking that gives focus -
36578
+ currently it shows and then immediately hides the bib
36579
+ */
36580
+ this.showBib();
36581
+ }
36582
+ break;
36583
+ case "blur":
36584
+ // send this task 100ms later queue to
36585
+ // wait a frame in case focus moves within the floating element/bib
36586
+ setTimeout(() => this.handleFocusLoss(), 0);
36587
+ break;
36588
+ case "click":
36589
+ if (document.activeElement === document.body) {
36590
+ event.currentTarget.focus();
36591
+ }
36592
+ this.handleClick();
36593
+ break;
36594
+ // Do nothing
36772
36595
  }
36773
- case "mouseenter":
36774
- if (element.hoverToggle) {
36775
- this.showBib();
36776
- }
36777
- break;
36778
- case "mouseleave":
36779
- if (element.hoverToggle) {
36780
- this.hideBib("mouseleave");
36781
- }
36782
- break;
36783
- case "focus":
36784
- if (element.focusShow) {
36785
- /*
36786
- This needs to better handle clicking that gives focus -
36787
- currently it shows and then immediately hides the bib
36788
- */
36789
- this.showBib();
36790
- }
36791
- break;
36792
- case "blur":
36793
- // send this task 100ms later queue to
36794
- // wait a frame in case focus moves within the floating element/bib
36795
- setTimeout(() => this.handleFocusLoss(), 0);
36796
- break;
36797
- case "click":
36798
- if (document.activeElement === document.body) {
36799
- event.currentTarget.focus();
36800
- }
36801
- this.handleClick();
36802
- break;
36803
- // Do nothing
36804
36596
  }
36805
36597
  }
36806
36598
 
@@ -36811,11 +36603,6 @@ let AuroFloatingUI$2 = class AuroFloatingUI {
36811
36603
  * This prevents the component itself from being focusable when the trigger element already handles focus.
36812
36604
  */
36813
36605
  handleTriggerTabIndex() {
36814
- const element = this.element;
36815
- if (!element) {
36816
- return;
36817
- }
36818
-
36819
36606
  const focusableElementSelectors = [
36820
36607
  "a",
36821
36608
  "button",
@@ -36828,7 +36615,7 @@ let AuroFloatingUI$2 = class AuroFloatingUI {
36828
36615
  "auro-hyperlink",
36829
36616
  ];
36830
36617
 
36831
- const triggerNode = element.querySelectorAll('[slot="trigger"]')[0];
36618
+ const triggerNode = this.element.querySelectorAll('[slot="trigger"]')[0];
36832
36619
  if (!triggerNode) {
36833
36620
  return;
36834
36621
  }
@@ -36837,13 +36624,13 @@ let AuroFloatingUI$2 = class AuroFloatingUI {
36837
36624
  focusableElementSelectors.forEach((selector) => {
36838
36625
  // Check if the trigger node element is focusable
36839
36626
  if (triggerNodeTagName === selector) {
36840
- element.tabIndex = -1;
36627
+ this.element.tabIndex = -1;
36841
36628
  return;
36842
36629
  }
36843
36630
 
36844
36631
  // Check if any child is focusable
36845
36632
  if (triggerNode.querySelector(selector)) {
36846
- element.tabIndex = -1;
36633
+ this.element.tabIndex = -1;
36847
36634
  }
36848
36635
  });
36849
36636
  }
@@ -36853,18 +36640,13 @@ let AuroFloatingUI$2 = class AuroFloatingUI {
36853
36640
  * @param {*} eventPrefix
36854
36641
  */
36855
36642
  regenerateBibId() {
36856
- const element = this.element;
36857
- if (!element) {
36858
- return;
36859
- }
36860
-
36861
- this.id = element.getAttribute("id");
36643
+ this.id = this.element.getAttribute("id");
36862
36644
  if (!this.id) {
36863
36645
  this.id = window.crypto.randomUUID();
36864
- element.setAttribute("id", this.id);
36646
+ this.element.setAttribute("id", this.id);
36865
36647
  }
36866
36648
 
36867
- element.bib?.setAttribute("id", `${this.id}-floater-bib`);
36649
+ this.element.bib.setAttribute("id", `${this.id}-floater-bib`);
36868
36650
  }
36869
36651
 
36870
36652
  configure(elem, eventPrefix, enableKeyboardHandling = true) {
@@ -36876,69 +36658,67 @@ let AuroFloatingUI$2 = class AuroFloatingUI {
36876
36658
  this.element = elem;
36877
36659
  }
36878
36660
 
36879
- const element = this.element;
36880
- if (!element) {
36881
- return;
36661
+ if (this.behavior !== this.element.behavior) {
36662
+ this.behavior = this.element.behavior;
36882
36663
  }
36883
36664
 
36884
- if (this.behavior !== element.behavior) {
36885
- this.behavior = element.behavior;
36886
- }
36887
-
36888
- if (element.trigger) {
36665
+ if (this.element.trigger) {
36889
36666
  this.disconnect();
36890
36667
  }
36891
- element.trigger =
36892
- element.triggerElement ||
36893
- element.shadowRoot?.querySelector("#trigger") ||
36894
- element.trigger;
36895
- element.bib = element.shadowRoot?.querySelector("#bib") || element.bib;
36896
- element.bibSizer = element.shadowRoot?.querySelector("#bibSizer");
36897
- element.triggerChevron =
36898
- element.shadowRoot?.querySelector("#showStateIcon");
36668
+ this.element.trigger =
36669
+ this.element.triggerElement ||
36670
+ this.element.shadowRoot.querySelector("#trigger") ||
36671
+ this.element.trigger;
36672
+ this.element.bib =
36673
+ this.element.shadowRoot.querySelector("#bib") || this.element.bib;
36674
+ this.element.bibSizer = this.element.shadowRoot.querySelector("#bibSizer");
36675
+ this.element.triggerChevron =
36676
+ this.element.shadowRoot.querySelector("#showStateIcon");
36899
36677
 
36900
- if (element.floaterConfig) {
36901
- element.hoverToggle = element.floaterConfig.hoverToggle;
36678
+ if (this.element.floaterConfig) {
36679
+ this.element.hoverToggle = this.element.floaterConfig.hoverToggle;
36902
36680
  }
36903
36681
 
36904
36682
  this.regenerateBibId();
36905
36683
  this.handleTriggerTabIndex();
36906
36684
 
36907
36685
  this.handleEvent = this.handleEvent.bind(this);
36908
- if (element.trigger) {
36686
+ if (this.element.trigger) {
36909
36687
  if (this.enableKeyboardHandling) {
36910
- element.trigger.addEventListener("keydown", this.handleEvent);
36688
+ this.element.trigger.addEventListener("keydown", this.handleEvent);
36911
36689
  }
36912
- element.trigger.addEventListener("click", this.handleEvent);
36913
- element.trigger.addEventListener("mouseenter", this.handleEvent);
36914
- element.trigger.addEventListener("mouseleave", this.handleEvent);
36915
- element.trigger.addEventListener("focus", this.handleEvent);
36916
- element.trigger.addEventListener("blur", this.handleEvent);
36690
+ this.element.trigger.addEventListener("click", this.handleEvent);
36691
+ this.element.trigger.addEventListener("mouseenter", this.handleEvent);
36692
+ this.element.trigger.addEventListener("mouseleave", this.handleEvent);
36693
+ this.element.trigger.addEventListener("focus", this.handleEvent);
36694
+ this.element.trigger.addEventListener("blur", this.handleEvent);
36917
36695
  }
36918
36696
  }
36919
36697
 
36920
36698
  disconnect() {
36921
36699
  this.cleanupHideHandlers();
36700
+ if (this.element) {
36701
+ this.element.cleanup?.();
36922
36702
 
36923
- const element = this.element;
36924
- if (!element) {
36925
- return;
36926
- }
36927
-
36928
- element.cleanup?.();
36929
-
36930
- if (element.bib && element.shadowRoot) {
36931
- element.shadowRoot.append(element.bib);
36932
- }
36703
+ if (this.element.bib) {
36704
+ this.element.shadowRoot.append(this.element.bib);
36705
+ }
36933
36706
 
36934
- // Remove event & keyboard listeners
36935
- if (element.trigger) {
36936
- element.trigger.removeEventListener("keydown", this.handleEvent);
36937
- element.trigger.removeEventListener("click", this.handleEvent);
36938
- element.trigger.removeEventListener("mouseenter", this.handleEvent);
36939
- element.trigger.removeEventListener("mouseleave", this.handleEvent);
36940
- element.trigger.removeEventListener("focus", this.handleEvent);
36941
- element.trigger.removeEventListener("blur", this.handleEvent);
36707
+ // Remove event & keyboard listeners
36708
+ if (this.element?.trigger) {
36709
+ this.element.trigger.removeEventListener("keydown", this.handleEvent);
36710
+ this.element.trigger.removeEventListener("click", this.handleEvent);
36711
+ this.element.trigger.removeEventListener(
36712
+ "mouseenter",
36713
+ this.handleEvent,
36714
+ );
36715
+ this.element.trigger.removeEventListener(
36716
+ "mouseleave",
36717
+ this.handleEvent,
36718
+ );
36719
+ this.element.trigger.removeEventListener("focus", this.handleEvent);
36720
+ this.element.trigger.removeEventListener("blur", this.handleEvent);
36721
+ }
36942
36722
  }
36943
36723
  }
36944
36724
  };
@@ -38066,7 +37846,7 @@ let AuroHelpText$6 = class AuroHelpText extends i$4 {
38066
37846
  }
38067
37847
  };
38068
37848
 
38069
- var formkitVersion$6 = '202604070549';
37849
+ var formkitVersion$6 = '202604071525';
38070
37850
 
38071
37851
  let AuroElement$1$2 = class AuroElement extends i$4 {
38072
37852
  static get properties() {
@@ -42136,7 +41916,7 @@ let AuroHelpText$5 = class AuroHelpText extends i$4 {
42136
41916
  }
42137
41917
  };
42138
41918
 
42139
- var formkitVersion$5 = '202604070549';
41919
+ var formkitVersion$5 = '202604071525';
42140
41920
 
42141
41921
  // Copyright (c) Alaska Air. All right reserved. Licensed under the Apache-2.0 license
42142
41922
  // See LICENSE in the project root for license information.
@@ -44305,7 +44085,7 @@ let AuroHelpText$4 = class AuroHelpText extends i$4 {
44305
44085
  }
44306
44086
  };
44307
44087
 
44308
- var formkitVersion$4 = '202604070549';
44088
+ var formkitVersion$4 = '202604071525';
44309
44089
 
44310
44090
  // Copyright (c) 2026 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
44311
44091
  // See LICENSE in the project root for license information.
@@ -47888,19 +47668,11 @@ let AuroFloatingUI$1 = class AuroFloatingUI {
47888
47668
  * This ensures that the bib content has the same dimensions as the sizer element.
47889
47669
  */
47890
47670
  mirrorSize() {
47891
- const element = this.element;
47892
- if (!element) {
47893
- return;
47894
- }
47895
-
47896
47671
  // mirror the boxsize from bibSizer
47897
- if (element.bibSizer && element.matchWidth && element.bib?.shadowRoot) {
47898
- const sizerStyle = window.getComputedStyle(element.bibSizer);
47899
- const bibContent = element.bib.shadowRoot.querySelector(".container");
47900
- if (!bibContent) {
47901
- return;
47902
- }
47903
-
47672
+ if (this.element.bibSizer && this.element.matchWidth) {
47673
+ const sizerStyle = window.getComputedStyle(this.element.bibSizer);
47674
+ const bibContent =
47675
+ this.element.bib.shadowRoot.querySelector(".container");
47904
47676
  if (sizerStyle.width !== "0px") {
47905
47677
  bibContent.style.width = sizerStyle.width;
47906
47678
  }
@@ -47922,14 +47694,9 @@ let AuroFloatingUI$1 = class AuroFloatingUI {
47922
47694
  * @returns {String} The positioning strategy, one of 'fullscreen', 'floating', 'cover'.
47923
47695
  */
47924
47696
  getPositioningStrategy() {
47925
- const element = this.element;
47926
- if (!element) {
47927
- return this.behavior || "floating";
47928
- }
47929
-
47930
47697
  const breakpoint =
47931
- element.bib?.mobileFullscreenBreakpoint ||
47932
- element.floaterConfig?.fullscreenBreakpoint;
47698
+ this.element.bib.mobileFullscreenBreakpoint ||
47699
+ this.element.floaterConfig?.fullscreenBreakpoint;
47933
47700
  switch (this.behavior) {
47934
47701
  case "tooltip":
47935
47702
  return "floating";
@@ -47940,9 +47707,9 @@ let AuroFloatingUI$1 = class AuroFloatingUI {
47940
47707
  `(max-width: ${breakpoint})`,
47941
47708
  ).matches;
47942
47709
 
47943
- element.expanded = smallerThanBreakpoint;
47710
+ this.element.expanded = smallerThanBreakpoint;
47944
47711
  }
47945
- if (element.nested) {
47712
+ if (this.element.nested) {
47946
47713
  return "cover";
47947
47714
  }
47948
47715
  return "fullscreen";
@@ -47972,65 +47739,42 @@ let AuroFloatingUI$1 = class AuroFloatingUI {
47972
47739
  * and applies the calculated position to the bib's style.
47973
47740
  */
47974
47741
  position() {
47975
- const element = this.element;
47976
- if (!element) {
47977
- return;
47978
- }
47979
-
47980
47742
  const strategy = this.getPositioningStrategy();
47981
47743
  this.configureBibStrategy(strategy);
47982
47744
 
47983
47745
  if (strategy === "floating") {
47984
- if (!element.trigger || !element.bib) {
47985
- return;
47986
- }
47987
-
47988
47746
  this.mirrorSize();
47989
47747
  // Define the middlware for the floater configuration
47990
47748
  const middleware = [
47991
- offset$2(element.floaterConfig?.offset || 0),
47992
- ...(element.floaterConfig?.shift ? [shift$2()] : []), // Add shift middleware if shift is enabled.
47993
- ...(element.floaterConfig?.flip ? [flip$2()] : []), // Add flip middleware if flip is enabled.
47994
- ...(element.floaterConfig?.autoPlacement ? [autoPlacement$2()] : []), // Add autoPlacement middleware if autoPlacement is enabled.
47749
+ offset$2(this.element.floaterConfig?.offset || 0),
47750
+ ...(this.element.floaterConfig?.shift ? [shift$2()] : []), // Add shift middleware if shift is enabled.
47751
+ ...(this.element.floaterConfig?.flip ? [flip$2()] : []), // Add flip middleware if flip is enabled.
47752
+ ...(this.element.floaterConfig?.autoPlacement ? [autoPlacement$2()] : []), // Add autoPlacement middleware if autoPlacement is enabled.
47995
47753
  ];
47996
47754
 
47997
47755
  // Compute the position of the bib
47998
- computePosition$2(element.trigger, element.bib, {
47999
- strategy: element.floaterConfig?.strategy || "fixed",
48000
- placement: element.floaterConfig?.placement,
47756
+ computePosition$2(this.element.trigger, this.element.bib, {
47757
+ strategy: this.element.floaterConfig?.strategy || "fixed",
47758
+ placement: this.element.floaterConfig?.placement,
48001
47759
  middleware: middleware || [],
48002
47760
  }).then(({ x, y }) => {
48003
47761
  // eslint-disable-line id-length
48004
- const currentElement = this.element;
48005
- if (!currentElement?.bib) {
48006
- return;
48007
- }
48008
-
48009
- Object.assign(currentElement.bib.style, {
47762
+ Object.assign(this.element.bib.style, {
48010
47763
  left: `${x}px`,
48011
47764
  top: `${y}px`,
48012
47765
  });
48013
47766
  });
48014
47767
  } else if (strategy === "cover") {
48015
- if (!element.parentNode || !element.bib) {
48016
- return;
48017
- }
48018
-
48019
47768
  // Compute the position of the bib
48020
- computePosition$2(element.parentNode, element.bib, {
47769
+ computePosition$2(this.element.parentNode, this.element.bib, {
48021
47770
  placement: "bottom-start",
48022
47771
  }).then(({ x, y }) => {
48023
47772
  // eslint-disable-line id-length
48024
- const currentElement = this.element;
48025
- if (!currentElement?.bib || !currentElement.parentNode) {
48026
- return;
48027
- }
48028
-
48029
- Object.assign(currentElement.bib.style, {
47773
+ Object.assign(this.element.bib.style, {
48030
47774
  left: `${x}px`,
48031
- top: `${y - currentElement.parentNode.offsetHeight}px`,
48032
- width: `${currentElement.parentNode.offsetWidth}px`,
48033
- height: `${currentElement.parentNode.offsetHeight}px`,
47775
+ top: `${y - this.element.parentNode.offsetHeight}px`,
47776
+ width: `${this.element.parentNode.offsetWidth}px`,
47777
+ height: `${this.element.parentNode.offsetHeight}px`,
48034
47778
  });
48035
47779
  });
48036
47780
  }
@@ -48042,17 +47786,11 @@ let AuroFloatingUI$1 = class AuroFloatingUI {
48042
47786
  * @param {Boolean} lock - If true, locks the body's scrolling functionlity; otherwise, unlock.
48043
47787
  */
48044
47788
  lockScroll(lock = true) {
48045
- const element = this.element;
48046
-
48047
47789
  if (lock) {
48048
- if (!element?.bib) {
48049
- return;
48050
- }
48051
-
48052
47790
  document.body.style.overflow = "hidden"; // hide body's scrollbar
48053
47791
 
48054
47792
  // Move `bib` by the amount the viewport is shifted to stay aligned in fullscreen.
48055
- element.bib.style.transform = `translateY(${window?.visualViewport?.offsetTop}px)`;
47793
+ this.element.bib.style.transform = `translateY(${window?.visualViewport?.offsetTop}px)`;
48056
47794
  } else {
48057
47795
  document.body.style.overflow = "";
48058
47796
  }
@@ -48068,24 +47806,20 @@ let AuroFloatingUI$1 = class AuroFloatingUI {
48068
47806
  * @param {string} strategy - The positioning strategy ('fullscreen' or 'floating').
48069
47807
  */
48070
47808
  configureBibStrategy(value) {
48071
- const element = this.element;
48072
- if (!element?.bib) {
48073
- return;
48074
- }
48075
-
48076
47809
  if (value === "fullscreen") {
48077
- element.isBibFullscreen = true;
47810
+ this.element.isBibFullscreen = true;
48078
47811
  // reset the prev position
48079
- element.bib.setAttribute("isfullscreen", "");
48080
- element.bib.style.position = "fixed";
48081
- element.bib.style.top = "0px";
48082
- element.bib.style.left = "0px";
48083
- element.bib.style.width = "";
48084
- element.bib.style.height = "";
48085
- element.style.contain = "";
47812
+ this.element.bib.setAttribute("isfullscreen", "");
47813
+ this.element.bib.style.position = "fixed";
47814
+ this.element.bib.style.top = "0px";
47815
+ this.element.bib.style.left = "0px";
47816
+ this.element.bib.style.width = "";
47817
+ this.element.bib.style.height = "";
47818
+ this.element.style.contain = "";
48086
47819
 
48087
47820
  // reset the size that was mirroring `size` css-part
48088
- const bibContent = element.bib.shadowRoot?.querySelector(".container");
47821
+ const bibContent =
47822
+ this.element.bib.shadowRoot.querySelector(".container");
48089
47823
  if (bibContent) {
48090
47824
  bibContent.style.width = "";
48091
47825
  bibContent.style.height = "";
@@ -48100,14 +47834,14 @@ let AuroFloatingUI$1 = class AuroFloatingUI {
48100
47834
  }, 0);
48101
47835
  }
48102
47836
 
48103
- if (element.isPopoverVisible) {
47837
+ if (this.element.isPopoverVisible) {
48104
47838
  this.lockScroll(true);
48105
47839
  }
48106
47840
  } else {
48107
- element.bib.style.position = "";
48108
- element.bib.removeAttribute("isfullscreen");
48109
- element.isBibFullscreen = false;
48110
- element.style.contain = "layout";
47841
+ this.element.bib.style.position = "";
47842
+ this.element.bib.removeAttribute("isfullscreen");
47843
+ this.element.isBibFullscreen = false;
47844
+ this.element.style.contain = "layout";
48111
47845
  }
48112
47846
 
48113
47847
  const isChanged = this.strategy && this.strategy !== value;
@@ -48125,21 +47859,16 @@ let AuroFloatingUI$1 = class AuroFloatingUI {
48125
47859
  },
48126
47860
  );
48127
47861
 
48128
- element.dispatchEvent(event);
47862
+ this.element.dispatchEvent(event);
48129
47863
  }
48130
47864
  }
48131
47865
 
48132
47866
  updateState() {
48133
- const element = this.element;
48134
- if (!element) {
48135
- return;
48136
- }
48137
-
48138
- const isVisible = element.isPopoverVisible;
47867
+ const isVisible = this.element.isPopoverVisible;
48139
47868
  if (!isVisible) {
48140
47869
  this.cleanupHideHandlers();
48141
47870
  try {
48142
- element.cleanup?.();
47871
+ this.element.cleanup?.();
48143
47872
  } catch (error) {
48144
47873
  // Do nothing
48145
47874
  }
@@ -48155,30 +47884,28 @@ let AuroFloatingUI$1 = class AuroFloatingUI {
48155
47884
  * If not, and if the bib isn't in fullscreen mode with focus lost, it hides the bib.
48156
47885
  */
48157
47886
  handleFocusLoss() {
48158
- const element = this.element;
48159
- if (!element?.bib) {
48160
- return;
48161
- }
48162
-
48163
47887
  // if mouse is being pressed, skip and let click event to handle the action
48164
47888
  if (AuroFloatingUI.isMousePressed) {
48165
47889
  return;
48166
47890
  }
48167
47891
 
48168
47892
  if (
48169
- element.noHideOnThisFocusLoss ||
48170
- element.hasAttribute("noHideOnThisFocusLoss")
47893
+ this.element.noHideOnThisFocusLoss ||
47894
+ this.element.hasAttribute("noHideOnThisFocusLoss")
48171
47895
  ) {
48172
47896
  return;
48173
47897
  }
48174
47898
 
48175
47899
  // if focus is still inside of trigger or bib, do not close
48176
- if (element.matches(":focus") || element.matches(":focus-within")) {
47900
+ if (
47901
+ this.element.matches(":focus") ||
47902
+ this.element.matches(":focus-within")
47903
+ ) {
48177
47904
  return;
48178
47905
  }
48179
47906
 
48180
47907
  // if fullscreen bib is in fullscreen mode, do not close
48181
- if (element.bib.hasAttribute("isfullscreen")) {
47908
+ if (this.element.bib.hasAttribute("isfullscreen")) {
48182
47909
  return;
48183
47910
  }
48184
47911
 
@@ -48186,32 +47913,23 @@ let AuroFloatingUI$1 = class AuroFloatingUI {
48186
47913
  }
48187
47914
 
48188
47915
  setupHideHandlers() {
48189
- if (!this.element) {
48190
- return;
48191
- }
48192
-
48193
47916
  // Define handlers & store references
48194
47917
  this.focusHandler = () => this.handleFocusLoss();
48195
47918
 
48196
47919
  this.clickHandler = (evt) => {
48197
- const element = this.element;
48198
- if (!element?.bib) {
48199
- return;
48200
- }
48201
-
48202
47920
  // When the bib is fullscreen (modal dialog), don't close on outside
48203
47921
  // clicks. VoiceOver's synthetic click events inside a top-layer modal
48204
47922
  // <dialog> may not include the bib in composedPath(), causing false
48205
47923
  // positives. This mirrors the fullscreen guard in handleFocusLoss().
48206
- if (element.bib.hasAttribute("isfullscreen")) {
47924
+ if (this.element.bib && this.element.bib.hasAttribute("isfullscreen")) {
48207
47925
  return;
48208
47926
  }
48209
47927
 
48210
47928
  if (
48211
- (!evt.composedPath().includes(element.trigger) &&
48212
- !evt.composedPath().includes(element.bib)) ||
48213
- (element.bib.backdrop &&
48214
- evt.composedPath().includes(element.bib.backdrop))
47929
+ (!evt.composedPath().includes(this.element.trigger) &&
47930
+ !evt.composedPath().includes(this.element.bib)) ||
47931
+ (this.element.bib.backdrop &&
47932
+ evt.composedPath().includes(this.element.bib.backdrop))
48215
47933
  ) {
48216
47934
  const existedVisibleFloatingUI =
48217
47935
  document.expandedAuroFormkitDropdown || document.expandedAuroFloater;
@@ -48232,12 +47950,7 @@ let AuroFloatingUI$1 = class AuroFloatingUI {
48232
47950
 
48233
47951
  // ESC key handler
48234
47952
  this.keyDownHandler = (evt) => {
48235
- const element = this.element;
48236
- if (!element) {
48237
- return;
48238
- }
48239
-
48240
- if (evt.key === "Escape" && element.isPopoverVisible) {
47953
+ if (evt.key === "Escape" && this.element.isPopoverVisible) {
48241
47954
  const existedVisibleFloatingUI =
48242
47955
  document.expandedAuroFormkitDropdown || document.expandedAuroFloater;
48243
47956
  if (
@@ -48294,10 +48007,6 @@ let AuroFloatingUI$1 = class AuroFloatingUI {
48294
48007
  }
48295
48008
 
48296
48009
  updateCurrentExpandedDropdown() {
48297
- if (!this.element) {
48298
- return;
48299
- }
48300
-
48301
48010
  // Close any other dropdown that is already open
48302
48011
  const existedVisibleFloatingUI =
48303
48012
  document.expandedAuroFormkitDropdown || document.expandedAuroFloater;
@@ -48314,34 +48023,25 @@ let AuroFloatingUI$1 = class AuroFloatingUI {
48314
48023
  }
48315
48024
 
48316
48025
  showBib() {
48317
- const element = this.element;
48318
- if (!element) {
48319
- return;
48320
- }
48321
-
48322
- if (!element.disabled && !this.showing) {
48026
+ if (!this.element.disabled && !this.showing) {
48323
48027
  this.updateCurrentExpandedDropdown();
48324
- element.triggerChevron?.setAttribute("data-expanded", true);
48028
+ this.element.triggerChevron?.setAttribute("data-expanded", true);
48325
48029
 
48326
48030
  // prevent double showing: isPopovervisible gets first and showBib gets called later
48327
48031
  if (!this.showing) {
48328
- if (!element.modal) {
48032
+ if (!this.element.modal) {
48329
48033
  this.setupHideHandlers();
48330
48034
  }
48331
48035
  this.showing = true;
48332
- element.isPopoverVisible = true;
48036
+ this.element.isPopoverVisible = true;
48333
48037
  this.position();
48334
48038
  this.dispatchEventDropdownToggle();
48335
48039
  }
48336
48040
 
48337
- if (!element.bib || (!element.trigger && !element.parentNode)) {
48338
- return;
48339
- }
48340
-
48341
48041
  // Setup auto update to handle resize and scroll
48342
- element.cleanup = autoUpdate$1(
48343
- element.trigger || element.parentNode,
48344
- element.bib,
48042
+ this.element.cleanup = autoUpdate$1(
48043
+ this.element.trigger || this.element.parentNode,
48044
+ this.element.bib,
48345
48045
  () => {
48346
48046
  this.position();
48347
48047
  },
@@ -48354,27 +48054,22 @@ let AuroFloatingUI$1 = class AuroFloatingUI {
48354
48054
  * @param {String} eventType - The event type that triggered the hiding action.
48355
48055
  */
48356
48056
  hideBib(eventType = "unknown") {
48357
- const element = this.element;
48358
- if (!element) {
48359
- return;
48360
- }
48361
-
48362
- if (element.disabled) {
48057
+ if (this.element.disabled) {
48363
48058
  return;
48364
48059
  }
48365
48060
 
48366
48061
  // noToggle dropdowns should not close when the trigger is clicked (the
48367
48062
  // "toggle" behavior), but they CAN still close via other interactions like
48368
48063
  // Escape key or focus loss.
48369
- if (element.noToggle && eventType === "click") {
48064
+ if (this.element.noToggle && eventType === "click") {
48370
48065
  return;
48371
48066
  }
48372
48067
 
48373
48068
  this.lockScroll(false);
48374
- element.triggerChevron?.removeAttribute("data-expanded");
48069
+ this.element.triggerChevron?.removeAttribute("data-expanded");
48375
48070
 
48376
- if (element.isPopoverVisible) {
48377
- element.isPopoverVisible = false;
48071
+ if (this.element.isPopoverVisible) {
48072
+ this.element.isPopoverVisible = false;
48378
48073
  }
48379
48074
  if (this.showing) {
48380
48075
  this.cleanupHideHandlers();
@@ -48394,11 +48089,6 @@ let AuroFloatingUI$1 = class AuroFloatingUI {
48394
48089
  * @param {String} eventType - The event type that triggered the toggle action.
48395
48090
  */
48396
48091
  dispatchEventDropdownToggle(eventType) {
48397
- const element = this.element;
48398
- if (!element) {
48399
- return;
48400
- }
48401
-
48402
48092
  const event = new CustomEvent(
48403
48093
  this.eventPrefix ? `${this.eventPrefix}-toggled` : "toggled",
48404
48094
  {
@@ -48410,16 +48100,11 @@ let AuroFloatingUI$1 = class AuroFloatingUI {
48410
48100
  },
48411
48101
  );
48412
48102
 
48413
- element.dispatchEvent(event);
48103
+ this.element.dispatchEvent(event);
48414
48104
  }
48415
48105
 
48416
48106
  handleClick() {
48417
- const element = this.element;
48418
- if (!element) {
48419
- return;
48420
- }
48421
-
48422
- if (element.isPopoverVisible) {
48107
+ if (this.element.isPopoverVisible) {
48423
48108
  this.hideBib("click");
48424
48109
  } else {
48425
48110
  this.showBib();
@@ -48430,66 +48115,63 @@ let AuroFloatingUI$1 = class AuroFloatingUI {
48430
48115
  {
48431
48116
  composed: true,
48432
48117
  detail: {
48433
- expanded: element.isPopoverVisible,
48118
+ expanded: this.element.isPopoverVisible,
48434
48119
  },
48435
48120
  },
48436
48121
  );
48437
48122
 
48438
- element.dispatchEvent(event);
48123
+ this.element.dispatchEvent(event);
48439
48124
  }
48440
48125
 
48441
48126
  handleEvent(event) {
48442
- const element = this.element;
48443
- if (!element || element.disableEventShow) {
48444
- return;
48445
- }
48446
-
48447
- switch (event.type) {
48448
- case "keydown": {
48449
- // Support both Enter and Space keys for accessibility
48450
- // Space is included as it's expected behavior for interactive elements
48451
-
48452
- const origin = event.composedPath()[0];
48453
- if (
48454
- event.key === "Enter" ||
48455
- (event.key === " " && (!origin || origin.tagName !== "INPUT"))
48456
- ) {
48457
- event.preventDefault();
48458
- this.handleClick();
48127
+ if (!this.element.disableEventShow) {
48128
+ switch (event.type) {
48129
+ case "keydown": {
48130
+ // Support both Enter and Space keys for accessibility
48131
+ // Space is included as it's expected behavior for interactive elements
48132
+
48133
+ const origin = event.composedPath()[0];
48134
+ if (
48135
+ event.key === "Enter" ||
48136
+ (event.key === " " && (!origin || origin.tagName !== "INPUT"))
48137
+ ) {
48138
+ event.preventDefault();
48139
+ this.handleClick();
48140
+ }
48141
+ break;
48459
48142
  }
48460
- break;
48143
+ case "mouseenter":
48144
+ if (this.element.hoverToggle) {
48145
+ this.showBib();
48146
+ }
48147
+ break;
48148
+ case "mouseleave":
48149
+ if (this.element.hoverToggle) {
48150
+ this.hideBib("mouseleave");
48151
+ }
48152
+ break;
48153
+ case "focus":
48154
+ if (this.element.focusShow) {
48155
+ /*
48156
+ This needs to better handle clicking that gives focus -
48157
+ currently it shows and then immediately hides the bib
48158
+ */
48159
+ this.showBib();
48160
+ }
48161
+ break;
48162
+ case "blur":
48163
+ // send this task 100ms later queue to
48164
+ // wait a frame in case focus moves within the floating element/bib
48165
+ setTimeout(() => this.handleFocusLoss(), 0);
48166
+ break;
48167
+ case "click":
48168
+ if (document.activeElement === document.body) {
48169
+ event.currentTarget.focus();
48170
+ }
48171
+ this.handleClick();
48172
+ break;
48173
+ // Do nothing
48461
48174
  }
48462
- case "mouseenter":
48463
- if (element.hoverToggle) {
48464
- this.showBib();
48465
- }
48466
- break;
48467
- case "mouseleave":
48468
- if (element.hoverToggle) {
48469
- this.hideBib("mouseleave");
48470
- }
48471
- break;
48472
- case "focus":
48473
- if (element.focusShow) {
48474
- /*
48475
- This needs to better handle clicking that gives focus -
48476
- currently it shows and then immediately hides the bib
48477
- */
48478
- this.showBib();
48479
- }
48480
- break;
48481
- case "blur":
48482
- // send this task 100ms later queue to
48483
- // wait a frame in case focus moves within the floating element/bib
48484
- setTimeout(() => this.handleFocusLoss(), 0);
48485
- break;
48486
- case "click":
48487
- if (document.activeElement === document.body) {
48488
- event.currentTarget.focus();
48489
- }
48490
- this.handleClick();
48491
- break;
48492
- // Do nothing
48493
48175
  }
48494
48176
  }
48495
48177
 
@@ -48500,11 +48182,6 @@ let AuroFloatingUI$1 = class AuroFloatingUI {
48500
48182
  * This prevents the component itself from being focusable when the trigger element already handles focus.
48501
48183
  */
48502
48184
  handleTriggerTabIndex() {
48503
- const element = this.element;
48504
- if (!element) {
48505
- return;
48506
- }
48507
-
48508
48185
  const focusableElementSelectors = [
48509
48186
  "a",
48510
48187
  "button",
@@ -48517,7 +48194,7 @@ let AuroFloatingUI$1 = class AuroFloatingUI {
48517
48194
  "auro-hyperlink",
48518
48195
  ];
48519
48196
 
48520
- const triggerNode = element.querySelectorAll('[slot="trigger"]')[0];
48197
+ const triggerNode = this.element.querySelectorAll('[slot="trigger"]')[0];
48521
48198
  if (!triggerNode) {
48522
48199
  return;
48523
48200
  }
@@ -48526,13 +48203,13 @@ let AuroFloatingUI$1 = class AuroFloatingUI {
48526
48203
  focusableElementSelectors.forEach((selector) => {
48527
48204
  // Check if the trigger node element is focusable
48528
48205
  if (triggerNodeTagName === selector) {
48529
- element.tabIndex = -1;
48206
+ this.element.tabIndex = -1;
48530
48207
  return;
48531
48208
  }
48532
48209
 
48533
48210
  // Check if any child is focusable
48534
48211
  if (triggerNode.querySelector(selector)) {
48535
- element.tabIndex = -1;
48212
+ this.element.tabIndex = -1;
48536
48213
  }
48537
48214
  });
48538
48215
  }
@@ -48542,18 +48219,13 @@ let AuroFloatingUI$1 = class AuroFloatingUI {
48542
48219
  * @param {*} eventPrefix
48543
48220
  */
48544
48221
  regenerateBibId() {
48545
- const element = this.element;
48546
- if (!element) {
48547
- return;
48548
- }
48549
-
48550
- this.id = element.getAttribute("id");
48222
+ this.id = this.element.getAttribute("id");
48551
48223
  if (!this.id) {
48552
48224
  this.id = window.crypto.randomUUID();
48553
- element.setAttribute("id", this.id);
48225
+ this.element.setAttribute("id", this.id);
48554
48226
  }
48555
48227
 
48556
- element.bib?.setAttribute("id", `${this.id}-floater-bib`);
48228
+ this.element.bib.setAttribute("id", `${this.id}-floater-bib`);
48557
48229
  }
48558
48230
 
48559
48231
  configure(elem, eventPrefix, enableKeyboardHandling = true) {
@@ -48565,69 +48237,67 @@ let AuroFloatingUI$1 = class AuroFloatingUI {
48565
48237
  this.element = elem;
48566
48238
  }
48567
48239
 
48568
- const element = this.element;
48569
- if (!element) {
48570
- return;
48240
+ if (this.behavior !== this.element.behavior) {
48241
+ this.behavior = this.element.behavior;
48571
48242
  }
48572
48243
 
48573
- if (this.behavior !== element.behavior) {
48574
- this.behavior = element.behavior;
48575
- }
48576
-
48577
- if (element.trigger) {
48244
+ if (this.element.trigger) {
48578
48245
  this.disconnect();
48579
48246
  }
48580
- element.trigger =
48581
- element.triggerElement ||
48582
- element.shadowRoot?.querySelector("#trigger") ||
48583
- element.trigger;
48584
- element.bib = element.shadowRoot?.querySelector("#bib") || element.bib;
48585
- element.bibSizer = element.shadowRoot?.querySelector("#bibSizer");
48586
- element.triggerChevron =
48587
- element.shadowRoot?.querySelector("#showStateIcon");
48247
+ this.element.trigger =
48248
+ this.element.triggerElement ||
48249
+ this.element.shadowRoot.querySelector("#trigger") ||
48250
+ this.element.trigger;
48251
+ this.element.bib =
48252
+ this.element.shadowRoot.querySelector("#bib") || this.element.bib;
48253
+ this.element.bibSizer = this.element.shadowRoot.querySelector("#bibSizer");
48254
+ this.element.triggerChevron =
48255
+ this.element.shadowRoot.querySelector("#showStateIcon");
48588
48256
 
48589
- if (element.floaterConfig) {
48590
- element.hoverToggle = element.floaterConfig.hoverToggle;
48257
+ if (this.element.floaterConfig) {
48258
+ this.element.hoverToggle = this.element.floaterConfig.hoverToggle;
48591
48259
  }
48592
48260
 
48593
48261
  this.regenerateBibId();
48594
48262
  this.handleTriggerTabIndex();
48595
48263
 
48596
48264
  this.handleEvent = this.handleEvent.bind(this);
48597
- if (element.trigger) {
48265
+ if (this.element.trigger) {
48598
48266
  if (this.enableKeyboardHandling) {
48599
- element.trigger.addEventListener("keydown", this.handleEvent);
48267
+ this.element.trigger.addEventListener("keydown", this.handleEvent);
48600
48268
  }
48601
- element.trigger.addEventListener("click", this.handleEvent);
48602
- element.trigger.addEventListener("mouseenter", this.handleEvent);
48603
- element.trigger.addEventListener("mouseleave", this.handleEvent);
48604
- element.trigger.addEventListener("focus", this.handleEvent);
48605
- element.trigger.addEventListener("blur", this.handleEvent);
48269
+ this.element.trigger.addEventListener("click", this.handleEvent);
48270
+ this.element.trigger.addEventListener("mouseenter", this.handleEvent);
48271
+ this.element.trigger.addEventListener("mouseleave", this.handleEvent);
48272
+ this.element.trigger.addEventListener("focus", this.handleEvent);
48273
+ this.element.trigger.addEventListener("blur", this.handleEvent);
48606
48274
  }
48607
48275
  }
48608
48276
 
48609
48277
  disconnect() {
48610
48278
  this.cleanupHideHandlers();
48279
+ if (this.element) {
48280
+ this.element.cleanup?.();
48611
48281
 
48612
- const element = this.element;
48613
- if (!element) {
48614
- return;
48615
- }
48616
-
48617
- element.cleanup?.();
48618
-
48619
- if (element.bib && element.shadowRoot) {
48620
- element.shadowRoot.append(element.bib);
48621
- }
48282
+ if (this.element.bib) {
48283
+ this.element.shadowRoot.append(this.element.bib);
48284
+ }
48622
48285
 
48623
- // Remove event & keyboard listeners
48624
- if (element.trigger) {
48625
- element.trigger.removeEventListener("keydown", this.handleEvent);
48626
- element.trigger.removeEventListener("click", this.handleEvent);
48627
- element.trigger.removeEventListener("mouseenter", this.handleEvent);
48628
- element.trigger.removeEventListener("mouseleave", this.handleEvent);
48629
- element.trigger.removeEventListener("focus", this.handleEvent);
48630
- element.trigger.removeEventListener("blur", this.handleEvent);
48286
+ // Remove event & keyboard listeners
48287
+ if (this.element?.trigger) {
48288
+ this.element.trigger.removeEventListener("keydown", this.handleEvent);
48289
+ this.element.trigger.removeEventListener("click", this.handleEvent);
48290
+ this.element.trigger.removeEventListener(
48291
+ "mouseenter",
48292
+ this.handleEvent,
48293
+ );
48294
+ this.element.trigger.removeEventListener(
48295
+ "mouseleave",
48296
+ this.handleEvent,
48297
+ );
48298
+ this.element.trigger.removeEventListener("focus", this.handleEvent);
48299
+ this.element.trigger.removeEventListener("blur", this.handleEvent);
48300
+ }
48631
48301
  }
48632
48302
  }
48633
48303
  };
@@ -49755,7 +49425,7 @@ let AuroHelpText$2 = class AuroHelpText extends i$4 {
49755
49425
  }
49756
49426
  };
49757
49427
 
49758
- var formkitVersion$2 = '202604070549';
49428
+ var formkitVersion$2 = '202604071525';
49759
49429
 
49760
49430
  let AuroElement$2$1 = class AuroElement extends i$4 {
49761
49431
  static get properties() {
@@ -57512,7 +57182,7 @@ let AuroHelpText$1$1 = class AuroHelpText extends i$4 {
57512
57182
  }
57513
57183
  };
57514
57184
 
57515
- var formkitVersion$1$1 = '202604070549';
57185
+ var formkitVersion$1$1 = '202604071525';
57516
57186
 
57517
57187
  // Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
57518
57188
  // See LICENSE in the project root for license information.
@@ -58577,7 +58247,7 @@ let AuroBibtemplate$1 = class AuroBibtemplate extends i$4 {
58577
58247
  }
58578
58248
  };
58579
58249
 
58580
- var formkitVersion$3 = '202604070549';
58250
+ var formkitVersion$3 = '202604071525';
58581
58251
 
58582
58252
  var styleCss$1$3 = i$7`.util_displayInline{display:inline}.util_displayInlineBlock{display:inline-block}.util_displayBlock{display:block}.util_displayFlex{display:flex}.util_displayHidden{display:none}.util_displayHiddenVisually{position:absolute;overflow:hidden;clip:rect(1px, 1px, 1px, 1px);width:1px;height:1px;padding:0;border:0}:host{display:block;text-align:left}:host [auro-dropdown]{--ds-auro-dropdown-trigger-background-color: transparent}:host #inputInBib::part(wrapper){box-shadow:none}:host #inputInBib::part(accent-left){display:none}:host([layout*=classic]) [auro-input]{width:100%}:host([layout*=classic]) [auro-input]::part(helpText){display:none}:host([layout*=classic]) #slotHolder{display:none}`;
58583
58253
 
@@ -66004,19 +65674,11 @@ class AuroFloatingUI {
66004
65674
  * This ensures that the bib content has the same dimensions as the sizer element.
66005
65675
  */
66006
65676
  mirrorSize() {
66007
- const element = this.element;
66008
- if (!element) {
66009
- return;
66010
- }
66011
-
66012
65677
  // mirror the boxsize from bibSizer
66013
- if (element.bibSizer && element.matchWidth && element.bib?.shadowRoot) {
66014
- const sizerStyle = window.getComputedStyle(element.bibSizer);
66015
- const bibContent = element.bib.shadowRoot.querySelector(".container");
66016
- if (!bibContent) {
66017
- return;
66018
- }
66019
-
65678
+ if (this.element.bibSizer && this.element.matchWidth) {
65679
+ const sizerStyle = window.getComputedStyle(this.element.bibSizer);
65680
+ const bibContent =
65681
+ this.element.bib.shadowRoot.querySelector(".container");
66020
65682
  if (sizerStyle.width !== "0px") {
66021
65683
  bibContent.style.width = sizerStyle.width;
66022
65684
  }
@@ -66038,14 +65700,9 @@ class AuroFloatingUI {
66038
65700
  * @returns {String} The positioning strategy, one of 'fullscreen', 'floating', 'cover'.
66039
65701
  */
66040
65702
  getPositioningStrategy() {
66041
- const element = this.element;
66042
- if (!element) {
66043
- return this.behavior || "floating";
66044
- }
66045
-
66046
65703
  const breakpoint =
66047
- element.bib?.mobileFullscreenBreakpoint ||
66048
- element.floaterConfig?.fullscreenBreakpoint;
65704
+ this.element.bib.mobileFullscreenBreakpoint ||
65705
+ this.element.floaterConfig?.fullscreenBreakpoint;
66049
65706
  switch (this.behavior) {
66050
65707
  case "tooltip":
66051
65708
  return "floating";
@@ -66056,9 +65713,9 @@ class AuroFloatingUI {
66056
65713
  `(max-width: ${breakpoint})`,
66057
65714
  ).matches;
66058
65715
 
66059
- element.expanded = smallerThanBreakpoint;
65716
+ this.element.expanded = smallerThanBreakpoint;
66060
65717
  }
66061
- if (element.nested) {
65718
+ if (this.element.nested) {
66062
65719
  return "cover";
66063
65720
  }
66064
65721
  return "fullscreen";
@@ -66088,65 +65745,42 @@ class AuroFloatingUI {
66088
65745
  * and applies the calculated position to the bib's style.
66089
65746
  */
66090
65747
  position() {
66091
- const element = this.element;
66092
- if (!element) {
66093
- return;
66094
- }
66095
-
66096
65748
  const strategy = this.getPositioningStrategy();
66097
65749
  this.configureBibStrategy(strategy);
66098
65750
 
66099
65751
  if (strategy === "floating") {
66100
- if (!element.trigger || !element.bib) {
66101
- return;
66102
- }
66103
-
66104
65752
  this.mirrorSize();
66105
65753
  // Define the middlware for the floater configuration
66106
65754
  const middleware = [
66107
- offset(element.floaterConfig?.offset || 0),
66108
- ...(element.floaterConfig?.shift ? [shift()] : []), // Add shift middleware if shift is enabled.
66109
- ...(element.floaterConfig?.flip ? [flip()] : []), // Add flip middleware if flip is enabled.
66110
- ...(element.floaterConfig?.autoPlacement ? [autoPlacement()] : []), // Add autoPlacement middleware if autoPlacement is enabled.
65755
+ offset(this.element.floaterConfig?.offset || 0),
65756
+ ...(this.element.floaterConfig?.shift ? [shift()] : []), // Add shift middleware if shift is enabled.
65757
+ ...(this.element.floaterConfig?.flip ? [flip()] : []), // Add flip middleware if flip is enabled.
65758
+ ...(this.element.floaterConfig?.autoPlacement ? [autoPlacement()] : []), // Add autoPlacement middleware if autoPlacement is enabled.
66111
65759
  ];
66112
65760
 
66113
65761
  // Compute the position of the bib
66114
- computePosition(element.trigger, element.bib, {
66115
- strategy: element.floaterConfig?.strategy || "fixed",
66116
- placement: element.floaterConfig?.placement,
65762
+ computePosition(this.element.trigger, this.element.bib, {
65763
+ strategy: this.element.floaterConfig?.strategy || "fixed",
65764
+ placement: this.element.floaterConfig?.placement,
66117
65765
  middleware: middleware || [],
66118
65766
  }).then(({ x, y }) => {
66119
65767
  // eslint-disable-line id-length
66120
- const currentElement = this.element;
66121
- if (!currentElement?.bib) {
66122
- return;
66123
- }
66124
-
66125
- Object.assign(currentElement.bib.style, {
65768
+ Object.assign(this.element.bib.style, {
66126
65769
  left: `${x}px`,
66127
65770
  top: `${y}px`,
66128
65771
  });
66129
65772
  });
66130
65773
  } else if (strategy === "cover") {
66131
- if (!element.parentNode || !element.bib) {
66132
- return;
66133
- }
66134
-
66135
65774
  // Compute the position of the bib
66136
- computePosition(element.parentNode, element.bib, {
65775
+ computePosition(this.element.parentNode, this.element.bib, {
66137
65776
  placement: "bottom-start",
66138
65777
  }).then(({ x, y }) => {
66139
65778
  // eslint-disable-line id-length
66140
- const currentElement = this.element;
66141
- if (!currentElement?.bib || !currentElement.parentNode) {
66142
- return;
66143
- }
66144
-
66145
- Object.assign(currentElement.bib.style, {
65779
+ Object.assign(this.element.bib.style, {
66146
65780
  left: `${x}px`,
66147
- top: `${y - currentElement.parentNode.offsetHeight}px`,
66148
- width: `${currentElement.parentNode.offsetWidth}px`,
66149
- height: `${currentElement.parentNode.offsetHeight}px`,
65781
+ top: `${y - this.element.parentNode.offsetHeight}px`,
65782
+ width: `${this.element.parentNode.offsetWidth}px`,
65783
+ height: `${this.element.parentNode.offsetHeight}px`,
66150
65784
  });
66151
65785
  });
66152
65786
  }
@@ -66158,17 +65792,11 @@ class AuroFloatingUI {
66158
65792
  * @param {Boolean} lock - If true, locks the body's scrolling functionlity; otherwise, unlock.
66159
65793
  */
66160
65794
  lockScroll(lock = true) {
66161
- const element = this.element;
66162
-
66163
65795
  if (lock) {
66164
- if (!element?.bib) {
66165
- return;
66166
- }
66167
-
66168
65796
  document.body.style.overflow = "hidden"; // hide body's scrollbar
66169
65797
 
66170
65798
  // Move `bib` by the amount the viewport is shifted to stay aligned in fullscreen.
66171
- element.bib.style.transform = `translateY(${window?.visualViewport?.offsetTop}px)`;
65799
+ this.element.bib.style.transform = `translateY(${window?.visualViewport?.offsetTop}px)`;
66172
65800
  } else {
66173
65801
  document.body.style.overflow = "";
66174
65802
  }
@@ -66184,24 +65812,20 @@ class AuroFloatingUI {
66184
65812
  * @param {string} strategy - The positioning strategy ('fullscreen' or 'floating').
66185
65813
  */
66186
65814
  configureBibStrategy(value) {
66187
- const element = this.element;
66188
- if (!element?.bib) {
66189
- return;
66190
- }
66191
-
66192
65815
  if (value === "fullscreen") {
66193
- element.isBibFullscreen = true;
65816
+ this.element.isBibFullscreen = true;
66194
65817
  // reset the prev position
66195
- element.bib.setAttribute("isfullscreen", "");
66196
- element.bib.style.position = "fixed";
66197
- element.bib.style.top = "0px";
66198
- element.bib.style.left = "0px";
66199
- element.bib.style.width = "";
66200
- element.bib.style.height = "";
66201
- element.style.contain = "";
65818
+ this.element.bib.setAttribute("isfullscreen", "");
65819
+ this.element.bib.style.position = "fixed";
65820
+ this.element.bib.style.top = "0px";
65821
+ this.element.bib.style.left = "0px";
65822
+ this.element.bib.style.width = "";
65823
+ this.element.bib.style.height = "";
65824
+ this.element.style.contain = "";
66202
65825
 
66203
65826
  // reset the size that was mirroring `size` css-part
66204
- const bibContent = element.bib.shadowRoot?.querySelector(".container");
65827
+ const bibContent =
65828
+ this.element.bib.shadowRoot.querySelector(".container");
66205
65829
  if (bibContent) {
66206
65830
  bibContent.style.width = "";
66207
65831
  bibContent.style.height = "";
@@ -66216,14 +65840,14 @@ class AuroFloatingUI {
66216
65840
  }, 0);
66217
65841
  }
66218
65842
 
66219
- if (element.isPopoverVisible) {
65843
+ if (this.element.isPopoverVisible) {
66220
65844
  this.lockScroll(true);
66221
65845
  }
66222
65846
  } else {
66223
- element.bib.style.position = "";
66224
- element.bib.removeAttribute("isfullscreen");
66225
- element.isBibFullscreen = false;
66226
- element.style.contain = "layout";
65847
+ this.element.bib.style.position = "";
65848
+ this.element.bib.removeAttribute("isfullscreen");
65849
+ this.element.isBibFullscreen = false;
65850
+ this.element.style.contain = "layout";
66227
65851
  }
66228
65852
 
66229
65853
  const isChanged = this.strategy && this.strategy !== value;
@@ -66241,21 +65865,16 @@ class AuroFloatingUI {
66241
65865
  },
66242
65866
  );
66243
65867
 
66244
- element.dispatchEvent(event);
65868
+ this.element.dispatchEvent(event);
66245
65869
  }
66246
65870
  }
66247
65871
 
66248
65872
  updateState() {
66249
- const element = this.element;
66250
- if (!element) {
66251
- return;
66252
- }
66253
-
66254
- const isVisible = element.isPopoverVisible;
65873
+ const isVisible = this.element.isPopoverVisible;
66255
65874
  if (!isVisible) {
66256
65875
  this.cleanupHideHandlers();
66257
65876
  try {
66258
- element.cleanup?.();
65877
+ this.element.cleanup?.();
66259
65878
  } catch (error) {
66260
65879
  // Do nothing
66261
65880
  }
@@ -66271,30 +65890,28 @@ class AuroFloatingUI {
66271
65890
  * If not, and if the bib isn't in fullscreen mode with focus lost, it hides the bib.
66272
65891
  */
66273
65892
  handleFocusLoss() {
66274
- const element = this.element;
66275
- if (!element?.bib) {
66276
- return;
66277
- }
66278
-
66279
65893
  // if mouse is being pressed, skip and let click event to handle the action
66280
65894
  if (AuroFloatingUI.isMousePressed) {
66281
65895
  return;
66282
65896
  }
66283
65897
 
66284
65898
  if (
66285
- element.noHideOnThisFocusLoss ||
66286
- element.hasAttribute("noHideOnThisFocusLoss")
65899
+ this.element.noHideOnThisFocusLoss ||
65900
+ this.element.hasAttribute("noHideOnThisFocusLoss")
66287
65901
  ) {
66288
65902
  return;
66289
65903
  }
66290
65904
 
66291
65905
  // if focus is still inside of trigger or bib, do not close
66292
- if (element.matches(":focus") || element.matches(":focus-within")) {
65906
+ if (
65907
+ this.element.matches(":focus") ||
65908
+ this.element.matches(":focus-within")
65909
+ ) {
66293
65910
  return;
66294
65911
  }
66295
65912
 
66296
65913
  // if fullscreen bib is in fullscreen mode, do not close
66297
- if (element.bib.hasAttribute("isfullscreen")) {
65914
+ if (this.element.bib.hasAttribute("isfullscreen")) {
66298
65915
  return;
66299
65916
  }
66300
65917
 
@@ -66302,32 +65919,23 @@ class AuroFloatingUI {
66302
65919
  }
66303
65920
 
66304
65921
  setupHideHandlers() {
66305
- if (!this.element) {
66306
- return;
66307
- }
66308
-
66309
65922
  // Define handlers & store references
66310
65923
  this.focusHandler = () => this.handleFocusLoss();
66311
65924
 
66312
65925
  this.clickHandler = (evt) => {
66313
- const element = this.element;
66314
- if (!element?.bib) {
66315
- return;
66316
- }
66317
-
66318
65926
  // When the bib is fullscreen (modal dialog), don't close on outside
66319
65927
  // clicks. VoiceOver's synthetic click events inside a top-layer modal
66320
65928
  // <dialog> may not include the bib in composedPath(), causing false
66321
65929
  // positives. This mirrors the fullscreen guard in handleFocusLoss().
66322
- if (element.bib.hasAttribute("isfullscreen")) {
65930
+ if (this.element.bib && this.element.bib.hasAttribute("isfullscreen")) {
66323
65931
  return;
66324
65932
  }
66325
65933
 
66326
65934
  if (
66327
- (!evt.composedPath().includes(element.trigger) &&
66328
- !evt.composedPath().includes(element.bib)) ||
66329
- (element.bib.backdrop &&
66330
- evt.composedPath().includes(element.bib.backdrop))
65935
+ (!evt.composedPath().includes(this.element.trigger) &&
65936
+ !evt.composedPath().includes(this.element.bib)) ||
65937
+ (this.element.bib.backdrop &&
65938
+ evt.composedPath().includes(this.element.bib.backdrop))
66331
65939
  ) {
66332
65940
  const existedVisibleFloatingUI =
66333
65941
  document.expandedAuroFormkitDropdown || document.expandedAuroFloater;
@@ -66348,12 +65956,7 @@ class AuroFloatingUI {
66348
65956
 
66349
65957
  // ESC key handler
66350
65958
  this.keyDownHandler = (evt) => {
66351
- const element = this.element;
66352
- if (!element) {
66353
- return;
66354
- }
66355
-
66356
- if (evt.key === "Escape" && element.isPopoverVisible) {
65959
+ if (evt.key === "Escape" && this.element.isPopoverVisible) {
66357
65960
  const existedVisibleFloatingUI =
66358
65961
  document.expandedAuroFormkitDropdown || document.expandedAuroFloater;
66359
65962
  if (
@@ -66410,10 +66013,6 @@ class AuroFloatingUI {
66410
66013
  }
66411
66014
 
66412
66015
  updateCurrentExpandedDropdown() {
66413
- if (!this.element) {
66414
- return;
66415
- }
66416
-
66417
66016
  // Close any other dropdown that is already open
66418
66017
  const existedVisibleFloatingUI =
66419
66018
  document.expandedAuroFormkitDropdown || document.expandedAuroFloater;
@@ -66430,34 +66029,25 @@ class AuroFloatingUI {
66430
66029
  }
66431
66030
 
66432
66031
  showBib() {
66433
- const element = this.element;
66434
- if (!element) {
66435
- return;
66436
- }
66437
-
66438
- if (!element.disabled && !this.showing) {
66032
+ if (!this.element.disabled && !this.showing) {
66439
66033
  this.updateCurrentExpandedDropdown();
66440
- element.triggerChevron?.setAttribute("data-expanded", true);
66034
+ this.element.triggerChevron?.setAttribute("data-expanded", true);
66441
66035
 
66442
66036
  // prevent double showing: isPopovervisible gets first and showBib gets called later
66443
66037
  if (!this.showing) {
66444
- if (!element.modal) {
66038
+ if (!this.element.modal) {
66445
66039
  this.setupHideHandlers();
66446
66040
  }
66447
66041
  this.showing = true;
66448
- element.isPopoverVisible = true;
66042
+ this.element.isPopoverVisible = true;
66449
66043
  this.position();
66450
66044
  this.dispatchEventDropdownToggle();
66451
66045
  }
66452
66046
 
66453
- if (!element.bib || (!element.trigger && !element.parentNode)) {
66454
- return;
66455
- }
66456
-
66457
66047
  // Setup auto update to handle resize and scroll
66458
- element.cleanup = autoUpdate(
66459
- element.trigger || element.parentNode,
66460
- element.bib,
66048
+ this.element.cleanup = autoUpdate(
66049
+ this.element.trigger || this.element.parentNode,
66050
+ this.element.bib,
66461
66051
  () => {
66462
66052
  this.position();
66463
66053
  },
@@ -66470,27 +66060,22 @@ class AuroFloatingUI {
66470
66060
  * @param {String} eventType - The event type that triggered the hiding action.
66471
66061
  */
66472
66062
  hideBib(eventType = "unknown") {
66473
- const element = this.element;
66474
- if (!element) {
66475
- return;
66476
- }
66477
-
66478
- if (element.disabled) {
66063
+ if (this.element.disabled) {
66479
66064
  return;
66480
66065
  }
66481
66066
 
66482
66067
  // noToggle dropdowns should not close when the trigger is clicked (the
66483
66068
  // "toggle" behavior), but they CAN still close via other interactions like
66484
66069
  // Escape key or focus loss.
66485
- if (element.noToggle && eventType === "click") {
66070
+ if (this.element.noToggle && eventType === "click") {
66486
66071
  return;
66487
66072
  }
66488
66073
 
66489
66074
  this.lockScroll(false);
66490
- element.triggerChevron?.removeAttribute("data-expanded");
66075
+ this.element.triggerChevron?.removeAttribute("data-expanded");
66491
66076
 
66492
- if (element.isPopoverVisible) {
66493
- element.isPopoverVisible = false;
66077
+ if (this.element.isPopoverVisible) {
66078
+ this.element.isPopoverVisible = false;
66494
66079
  }
66495
66080
  if (this.showing) {
66496
66081
  this.cleanupHideHandlers();
@@ -66510,11 +66095,6 @@ class AuroFloatingUI {
66510
66095
  * @param {String} eventType - The event type that triggered the toggle action.
66511
66096
  */
66512
66097
  dispatchEventDropdownToggle(eventType) {
66513
- const element = this.element;
66514
- if (!element) {
66515
- return;
66516
- }
66517
-
66518
66098
  const event = new CustomEvent(
66519
66099
  this.eventPrefix ? `${this.eventPrefix}-toggled` : "toggled",
66520
66100
  {
@@ -66526,16 +66106,11 @@ class AuroFloatingUI {
66526
66106
  },
66527
66107
  );
66528
66108
 
66529
- element.dispatchEvent(event);
66109
+ this.element.dispatchEvent(event);
66530
66110
  }
66531
66111
 
66532
66112
  handleClick() {
66533
- const element = this.element;
66534
- if (!element) {
66535
- return;
66536
- }
66537
-
66538
- if (element.isPopoverVisible) {
66113
+ if (this.element.isPopoverVisible) {
66539
66114
  this.hideBib("click");
66540
66115
  } else {
66541
66116
  this.showBib();
@@ -66546,66 +66121,63 @@ class AuroFloatingUI {
66546
66121
  {
66547
66122
  composed: true,
66548
66123
  detail: {
66549
- expanded: element.isPopoverVisible,
66124
+ expanded: this.element.isPopoverVisible,
66550
66125
  },
66551
66126
  },
66552
66127
  );
66553
66128
 
66554
- element.dispatchEvent(event);
66129
+ this.element.dispatchEvent(event);
66555
66130
  }
66556
66131
 
66557
66132
  handleEvent(event) {
66558
- const element = this.element;
66559
- if (!element || element.disableEventShow) {
66560
- return;
66561
- }
66562
-
66563
- switch (event.type) {
66564
- case "keydown": {
66565
- // Support both Enter and Space keys for accessibility
66566
- // Space is included as it's expected behavior for interactive elements
66567
-
66568
- const origin = event.composedPath()[0];
66569
- if (
66570
- event.key === "Enter" ||
66571
- (event.key === " " && (!origin || origin.tagName !== "INPUT"))
66572
- ) {
66573
- event.preventDefault();
66574
- this.handleClick();
66133
+ if (!this.element.disableEventShow) {
66134
+ switch (event.type) {
66135
+ case "keydown": {
66136
+ // Support both Enter and Space keys for accessibility
66137
+ // Space is included as it's expected behavior for interactive elements
66138
+
66139
+ const origin = event.composedPath()[0];
66140
+ if (
66141
+ event.key === "Enter" ||
66142
+ (event.key === " " && (!origin || origin.tagName !== "INPUT"))
66143
+ ) {
66144
+ event.preventDefault();
66145
+ this.handleClick();
66146
+ }
66147
+ break;
66575
66148
  }
66576
- break;
66149
+ case "mouseenter":
66150
+ if (this.element.hoverToggle) {
66151
+ this.showBib();
66152
+ }
66153
+ break;
66154
+ case "mouseleave":
66155
+ if (this.element.hoverToggle) {
66156
+ this.hideBib("mouseleave");
66157
+ }
66158
+ break;
66159
+ case "focus":
66160
+ if (this.element.focusShow) {
66161
+ /*
66162
+ This needs to better handle clicking that gives focus -
66163
+ currently it shows and then immediately hides the bib
66164
+ */
66165
+ this.showBib();
66166
+ }
66167
+ break;
66168
+ case "blur":
66169
+ // send this task 100ms later queue to
66170
+ // wait a frame in case focus moves within the floating element/bib
66171
+ setTimeout(() => this.handleFocusLoss(), 0);
66172
+ break;
66173
+ case "click":
66174
+ if (document.activeElement === document.body) {
66175
+ event.currentTarget.focus();
66176
+ }
66177
+ this.handleClick();
66178
+ break;
66179
+ // Do nothing
66577
66180
  }
66578
- case "mouseenter":
66579
- if (element.hoverToggle) {
66580
- this.showBib();
66581
- }
66582
- break;
66583
- case "mouseleave":
66584
- if (element.hoverToggle) {
66585
- this.hideBib("mouseleave");
66586
- }
66587
- break;
66588
- case "focus":
66589
- if (element.focusShow) {
66590
- /*
66591
- This needs to better handle clicking that gives focus -
66592
- currently it shows and then immediately hides the bib
66593
- */
66594
- this.showBib();
66595
- }
66596
- break;
66597
- case "blur":
66598
- // send this task 100ms later queue to
66599
- // wait a frame in case focus moves within the floating element/bib
66600
- setTimeout(() => this.handleFocusLoss(), 0);
66601
- break;
66602
- case "click":
66603
- if (document.activeElement === document.body) {
66604
- event.currentTarget.focus();
66605
- }
66606
- this.handleClick();
66607
- break;
66608
- // Do nothing
66609
66181
  }
66610
66182
  }
66611
66183
 
@@ -66616,11 +66188,6 @@ class AuroFloatingUI {
66616
66188
  * This prevents the component itself from being focusable when the trigger element already handles focus.
66617
66189
  */
66618
66190
  handleTriggerTabIndex() {
66619
- const element = this.element;
66620
- if (!element) {
66621
- return;
66622
- }
66623
-
66624
66191
  const focusableElementSelectors = [
66625
66192
  "a",
66626
66193
  "button",
@@ -66633,7 +66200,7 @@ class AuroFloatingUI {
66633
66200
  "auro-hyperlink",
66634
66201
  ];
66635
66202
 
66636
- const triggerNode = element.querySelectorAll('[slot="trigger"]')[0];
66203
+ const triggerNode = this.element.querySelectorAll('[slot="trigger"]')[0];
66637
66204
  if (!triggerNode) {
66638
66205
  return;
66639
66206
  }
@@ -66642,13 +66209,13 @@ class AuroFloatingUI {
66642
66209
  focusableElementSelectors.forEach((selector) => {
66643
66210
  // Check if the trigger node element is focusable
66644
66211
  if (triggerNodeTagName === selector) {
66645
- element.tabIndex = -1;
66212
+ this.element.tabIndex = -1;
66646
66213
  return;
66647
66214
  }
66648
66215
 
66649
66216
  // Check if any child is focusable
66650
66217
  if (triggerNode.querySelector(selector)) {
66651
- element.tabIndex = -1;
66218
+ this.element.tabIndex = -1;
66652
66219
  }
66653
66220
  });
66654
66221
  }
@@ -66658,18 +66225,13 @@ class AuroFloatingUI {
66658
66225
  * @param {*} eventPrefix
66659
66226
  */
66660
66227
  regenerateBibId() {
66661
- const element = this.element;
66662
- if (!element) {
66663
- return;
66664
- }
66665
-
66666
- this.id = element.getAttribute("id");
66228
+ this.id = this.element.getAttribute("id");
66667
66229
  if (!this.id) {
66668
66230
  this.id = window.crypto.randomUUID();
66669
- element.setAttribute("id", this.id);
66231
+ this.element.setAttribute("id", this.id);
66670
66232
  }
66671
66233
 
66672
- element.bib?.setAttribute("id", `${this.id}-floater-bib`);
66234
+ this.element.bib.setAttribute("id", `${this.id}-floater-bib`);
66673
66235
  }
66674
66236
 
66675
66237
  configure(elem, eventPrefix, enableKeyboardHandling = true) {
@@ -66681,69 +66243,67 @@ class AuroFloatingUI {
66681
66243
  this.element = elem;
66682
66244
  }
66683
66245
 
66684
- const element = this.element;
66685
- if (!element) {
66686
- return;
66246
+ if (this.behavior !== this.element.behavior) {
66247
+ this.behavior = this.element.behavior;
66687
66248
  }
66688
66249
 
66689
- if (this.behavior !== element.behavior) {
66690
- this.behavior = element.behavior;
66691
- }
66692
-
66693
- if (element.trigger) {
66250
+ if (this.element.trigger) {
66694
66251
  this.disconnect();
66695
66252
  }
66696
- element.trigger =
66697
- element.triggerElement ||
66698
- element.shadowRoot?.querySelector("#trigger") ||
66699
- element.trigger;
66700
- element.bib = element.shadowRoot?.querySelector("#bib") || element.bib;
66701
- element.bibSizer = element.shadowRoot?.querySelector("#bibSizer");
66702
- element.triggerChevron =
66703
- element.shadowRoot?.querySelector("#showStateIcon");
66253
+ this.element.trigger =
66254
+ this.element.triggerElement ||
66255
+ this.element.shadowRoot.querySelector("#trigger") ||
66256
+ this.element.trigger;
66257
+ this.element.bib =
66258
+ this.element.shadowRoot.querySelector("#bib") || this.element.bib;
66259
+ this.element.bibSizer = this.element.shadowRoot.querySelector("#bibSizer");
66260
+ this.element.triggerChevron =
66261
+ this.element.shadowRoot.querySelector("#showStateIcon");
66704
66262
 
66705
- if (element.floaterConfig) {
66706
- element.hoverToggle = element.floaterConfig.hoverToggle;
66263
+ if (this.element.floaterConfig) {
66264
+ this.element.hoverToggle = this.element.floaterConfig.hoverToggle;
66707
66265
  }
66708
66266
 
66709
66267
  this.regenerateBibId();
66710
66268
  this.handleTriggerTabIndex();
66711
66269
 
66712
66270
  this.handleEvent = this.handleEvent.bind(this);
66713
- if (element.trigger) {
66271
+ if (this.element.trigger) {
66714
66272
  if (this.enableKeyboardHandling) {
66715
- element.trigger.addEventListener("keydown", this.handleEvent);
66273
+ this.element.trigger.addEventListener("keydown", this.handleEvent);
66716
66274
  }
66717
- element.trigger.addEventListener("click", this.handleEvent);
66718
- element.trigger.addEventListener("mouseenter", this.handleEvent);
66719
- element.trigger.addEventListener("mouseleave", this.handleEvent);
66720
- element.trigger.addEventListener("focus", this.handleEvent);
66721
- element.trigger.addEventListener("blur", this.handleEvent);
66275
+ this.element.trigger.addEventListener("click", this.handleEvent);
66276
+ this.element.trigger.addEventListener("mouseenter", this.handleEvent);
66277
+ this.element.trigger.addEventListener("mouseleave", this.handleEvent);
66278
+ this.element.trigger.addEventListener("focus", this.handleEvent);
66279
+ this.element.trigger.addEventListener("blur", this.handleEvent);
66722
66280
  }
66723
66281
  }
66724
66282
 
66725
66283
  disconnect() {
66726
66284
  this.cleanupHideHandlers();
66285
+ if (this.element) {
66286
+ this.element.cleanup?.();
66727
66287
 
66728
- const element = this.element;
66729
- if (!element) {
66730
- return;
66731
- }
66732
-
66733
- element.cleanup?.();
66734
-
66735
- if (element.bib && element.shadowRoot) {
66736
- element.shadowRoot.append(element.bib);
66737
- }
66288
+ if (this.element.bib) {
66289
+ this.element.shadowRoot.append(this.element.bib);
66290
+ }
66738
66291
 
66739
- // Remove event & keyboard listeners
66740
- if (element.trigger) {
66741
- element.trigger.removeEventListener("keydown", this.handleEvent);
66742
- element.trigger.removeEventListener("click", this.handleEvent);
66743
- element.trigger.removeEventListener("mouseenter", this.handleEvent);
66744
- element.trigger.removeEventListener("mouseleave", this.handleEvent);
66745
- element.trigger.removeEventListener("focus", this.handleEvent);
66746
- element.trigger.removeEventListener("blur", this.handleEvent);
66292
+ // Remove event & keyboard listeners
66293
+ if (this.element?.trigger) {
66294
+ this.element.trigger.removeEventListener("keydown", this.handleEvent);
66295
+ this.element.trigger.removeEventListener("click", this.handleEvent);
66296
+ this.element.trigger.removeEventListener(
66297
+ "mouseenter",
66298
+ this.handleEvent,
66299
+ );
66300
+ this.element.trigger.removeEventListener(
66301
+ "mouseleave",
66302
+ this.handleEvent,
66303
+ );
66304
+ this.element.trigger.removeEventListener("focus", this.handleEvent);
66305
+ this.element.trigger.removeEventListener("blur", this.handleEvent);
66306
+ }
66747
66307
  }
66748
66308
  }
66749
66309
  }
@@ -67871,7 +67431,7 @@ let AuroHelpText$1 = class AuroHelpText extends i$4 {
67871
67431
  }
67872
67432
  };
67873
67433
 
67874
- var formkitVersion$1 = '202604070549';
67434
+ var formkitVersion$1 = '202604071525';
67875
67435
 
67876
67436
  class AuroElement extends i$4 {
67877
67437
  static get properties() {
@@ -69624,7 +69184,7 @@ class AuroHelpText extends i$4 {
69624
69184
  }
69625
69185
  }
69626
69186
 
69627
- var formkitVersion = '202604070549';
69187
+ var formkitVersion = '202604071525';
69628
69188
 
69629
69189
  var styleCss = i$7`.util_displayInline{display:inline}.util_displayInlineBlock{display:inline-block}.util_displayBlock{display:block}.util_displayFlex{display:flex}.util_displayHidden{display:none}.util_displayHiddenVisually{position:absolute;overflow:hidden;clip:rect(1px, 1px, 1px, 1px);width:1px;height:1px;padding:0;border:0}.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, 0.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, 0.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, 0.625rem);font-weight:var(--wcss-body-weight, 450);letter-spacing:var(--wcss-body-letter-spacing, 0);line-height:var(--wcss-body-2xs-line-height, 0.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, 0.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, 0.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, 0.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, 0.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, 0.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, 0.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(0.875rem, 1.1666666667vw, 0.875rem));font-weight:var(--wcss-accent-2xs-weight, 450);letter-spacing:var(--wcss-accent-2xs-letter-spacing, 0.1em);line-height:var(--wcss-accent-2xs-line-height, 1.3);text-transform:uppercase}[auro-dropdown]{--ds-auro-dropdown-trigger-border-color: var(--ds-auro-select-border-color);--ds-auro-dropdown-trigger-background-color: var(--ds-auro-select-background-color);--ds-auro-dropdown-trigger-container-color: var(--ds-auro-select-background-color);--ds-auro-dropdown-trigger-outline-color: var(--ds-auro-select-outline-color)}:host{display:inline-block;text-align:left;vertical-align:top}:host([layout*=emphasized]) [auro-dropdown],:host([layout*=snowflake]) [auro-dropdown]{--ds-auro-select-border-color: transparent}:host([layout*=emphasized]) .mainContent,:host([layout*=snowflake]) .mainContent{text-align:center}.mainContent{position:relative;display:flex;overflow:hidden;flex:1;flex-direction:column;align-items:center;justify-content:center}.valueContainer [slot=displayValue]{display:none}.accents{display:flex;flex-direction:row;align-items:center;justify-content:center}::slotted([slot=typeIcon]){margin-right:var(--ds-size-100, 0.5rem)}.displayValue{display:block}.displayValue:not(.force){display:none}.displayValue:not(.force).hasContent:is(.withValue):not(.hasFocus){display:block}.triggerContent{display:flex;width:100%;align-items:center;justify-content:center}:host([layout*=emphasized]) .triggerContent{padding:0 var(--ds-size-100, 0.5rem) 0 var(--ds-size-300, 1.5rem)}:host([layout*=snowflake]) .triggerContent{padding:0 var(--ds-size-100, 0.5rem) 0 var(--ds-size-200, 1rem)}:host([layout*=snowflake]) label{padding-block:var(--ds-size-25, 0.125rem)}:host([layout*=classic]) .triggerContent{padding:0 var(--ds-size-100, 0.5rem)}:host([layout*=classic]) .mainContent{align-items:start}:host([layout*=classic]) label{overflow:hidden;cursor:text;text-overflow:ellipsis;white-space:nowrap}:host([layout*=classic]) .value{height:auto}label{color:var(--ds-auro-select-label-text-color)}:host(:is([validity]:not([validity=valid]))) [auro-dropdown]{--ds-auro-select-border-color: var(--ds-basic-color-status-error, #e31f26);--ds-auro-select-outline-color: var(--ds-basic-color-status-error, #e31f26);--ds-auro-dropdown-helptext-text-color: var(--ds-basic-color-texticon-default, #2a2a2a)}:host([ondark]:is([validity]:not([validity=valid]))) [auro-dropdown],:host([appearance=inverse]:is([validity]:not([validity=valid]))) [auro-dropdown]{--ds-auro-select-border-color: var(--ds-advanced-color-state-error-inverse, #f9a4a8);--ds-auro-select-outline-color: var(--ds-advanced-color-state-error-inverse, #f9a4a8);--ds-auro-dropdown-helptext-text-color: var(--ds-basic-color-texticon-inverse, #ffffff)}#slotHolder{display:none}:host([fluid]){width:100%}:host([disabled]){pointer-events:none;user-select:none}:host([disabled]:not([ondark])) [auro-dropdown],:host([disabled]:not([appearance=inverse])) [auro-dropdown]{--ds-auro-select-border-color: var(--ds-basic-color-border-subtle, #dddddd)}:host(:not([layout*=classic])[disabled][ondark]) [auro-dropdown],:host(:not([layout*=classic])[disabled][appearance=inverse]) [auro-dropdown]{--ds-auro-select-border-color: transparent}`;
69630
69190