@flexilla/alpine-dropdown 0.2.0 → 0.3.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.
package/dist/cdn.js CHANGED
@@ -3,9 +3,9 @@
3
3
  var B = Object.defineProperty;
4
4
  var j = (i, e, t) => e in i ? B(i, e, { enumerable: true, configurable: true, writable: true, value: t }) : i[e] = t;
5
5
  var a = (i, e, t) => j(i, typeof e != "symbol" ? e + "" : e, t);
6
- var G = Object.defineProperty;
7
- var q = (i, e, t) => e in i ? G(i, e, { enumerable: true, configurable: true, writable: true, value: t }) : i[e] = t;
8
- var p = (i, e, t) => q(i, typeof e != "symbol" ? e + "" : e, t);
6
+ var q = Object.defineProperty;
7
+ var G = (i, e, t) => e in i ? q(i, e, { enumerable: true, configurable: true, writable: true, value: t }) : i[e] = t;
8
+ var p = (i, e, t) => G(i, typeof e != "symbol" ? e + "" : e, t);
9
9
  var V = "bottom";
10
10
  var X = ({ reference: i, popper: e }) => {
11
11
  if (!i || !e)
@@ -60,33 +60,33 @@
60
60
  s,
61
61
  m,
62
62
  e
63
- ), H = () => Y(s, e, n, m) ? n + e / 2 - s / 2 : b(), M = () => J(o, r, t, l) ? t + r / 2 - o / 2 : w(), A = () => n + s <= m ? n : b(), k = () => n + e - s >= 0 ? n + e - s : b(), L = () => t + o <= l ? t : w(), U = () => t + r - o >= 0 ? t + r - o : w();
63
+ ), M = () => Y(s, e, n, m) ? n + e / 2 - s / 2 : b(), A = () => J(o, r, t, l) ? t + r / 2 - o / 2 : w(), C = () => n + s <= m ? n : b(), L = () => n + e - s >= 0 ? n + e - s : b(), x = () => t + o <= l ? t : w(), U = () => t + r - o >= 0 ? t + r - o : w();
64
64
  let u = 0, v = 0;
65
- const C = t - o - c, x = t + r + c, I = n - s - c, D = n + e + c, W = g >= o + c, F = E >= o + c, R = f >= s + c, $ = d >= s + c;
66
- switch (i.startsWith("top") ? v = W ? C : F ? x : Math.max(C, x) : i.startsWith("bottom") ? v = F ? x : W ? C : Math.max(x) : i.startsWith("left") ? u = R ? I : $ ? D : Math.max(I, D) : i.startsWith("right") && (u = $ ? D : R ? I : Math.max(D, I)), i) {
65
+ const T = t - o - c, I = t + r + c, D = n - s - c, H = n + e + c, P = g >= o + c, W = E >= o + c, R = f >= s + c, $ = d >= s + c;
66
+ switch (i.startsWith("top") ? v = P ? T : W ? I : Math.max(T, I) : i.startsWith("bottom") ? v = W ? I : P ? T : Math.max(I) : i.startsWith("left") ? u = R ? D : $ ? H : Math.max(D, H) : i.startsWith("right") && (u = $ ? H : R ? D : Math.max(H, D)), i) {
67
67
  case "bottom":
68
68
  case "bottom-middle":
69
69
  case "top":
70
70
  case "top-middle":
71
- u = H();
71
+ u = M();
72
72
  break;
73
73
  case "left":
74
74
  case "left-middle":
75
75
  case "right":
76
76
  case "right-middle":
77
- v = M();
77
+ v = A();
78
78
  break;
79
79
  case "bottom-start":
80
80
  case "top-start":
81
- u = A();
81
+ u = C();
82
82
  break;
83
83
  case "bottom-end":
84
84
  case "top-end":
85
- u = k();
85
+ u = L();
86
86
  break;
87
87
  case "left-start":
88
88
  case "right-start":
89
- v = L();
89
+ v = x();
90
90
  break;
91
91
  case "left-end":
92
92
  case "right-end":
@@ -129,12 +129,12 @@
129
129
  }), p(this, "initPlacement", () => {
130
130
  var d;
131
131
  this.validateElements(), this.setInitialStyles();
132
- const f = window.innerWidth, E = window.innerHeight, { popperHeight: g, popperWidth: w, refHeight: b, refWidth: H, refLeft: M, refTop: A } = X({ reference: this.reference, popper: this.popper }), { x: k, y: L } = ie(
132
+ const f = window.innerWidth, E = window.innerHeight, { popperHeight: g, popperWidth: w, refHeight: b, refWidth: M, refLeft: A, refTop: C } = X({ reference: this.reference, popper: this.popper }), { x: L, y: x } = ie(
133
133
  {
134
134
  placement: this.placement,
135
- refWidth: H,
136
- refTop: A,
137
- refLeft: M,
135
+ refWidth: M,
136
+ refTop: C,
137
+ refLeft: A,
138
138
  popperWidth: w,
139
139
  refHeight: b,
140
140
  popperHeight: g,
@@ -143,7 +143,7 @@
143
143
  offsetDistance: this.offsetDistance
144
144
  }
145
145
  );
146
- this.setPopperStyleProperty(k, L), (d = this.onUpdate) == null || d.call(this, { x: k, y: L, placement: this.placement });
146
+ this.setPopperStyleProperty(L, x), (d = this.onUpdate) == null || d.call(this, { x: L, y: x, placement: this.placement });
147
147
  }), p(this, "removeWindowEvents", () => {
148
148
  this.isWindowEventsRegistered && (!this.disableOnResize && window.removeEventListener("resize", this.updatePosition), !this.disableOnScroll && window.removeEventListener("scroll", this.updatePosition), this.isWindowEventsRegistered = false);
149
149
  }), p(this, "attachWindowEvent", () => {
@@ -345,12 +345,12 @@
345
345
  }), this.triggerElement.addEventListener("click", this.toggleStateOnClick), this.triggerStrategy === "hover" && this.triggerElement.addEventListener("mouseenter", this.showOnMouseEnter);
346
346
  }
347
347
  };
348
- var P = (i, e = document.body) => e.querySelector(i);
349
- var O = (i, e = document.body) => Array.from(e.querySelectorAll(i));
350
- var pe = (i) => typeof i == "string" ? P(i) : i;
348
+ var F = (i, e = document.body) => e.querySelector(i);
349
+ var S = (i, e = document.body) => Array.from(e.querySelectorAll(i));
350
+ var pe = (i) => typeof i == "string" ? F(i) : i;
351
351
  var me = ({ containerElement: i, targetChildren: e = "a:not([disabled]), button:not([disabled])", direction: t }) => {
352
352
  let n = false;
353
- const r = pe(i) || document.body, s = typeof e == "string" ? O(e, r) : e, o = (l) => {
353
+ const r = pe(i) || document.body, s = typeof e == "string" ? S(e, r) : e, o = (l) => {
354
354
  if (l.preventDefault(), r.focus(), s.length === 0)
355
355
  return;
356
356
  const m = l.key, c = document.activeElement;
@@ -391,11 +391,19 @@
391
391
  }
392
392
  };
393
393
  };
394
- var K = (i, e, t) => {
394
+ var z = (i, e, t) => {
395
395
  const n = new CustomEvent(e, { detail: t });
396
396
  i.dispatchEvent(n);
397
397
  };
398
- function ge(i, e, t = "move") {
398
+ function ge(i) {
399
+ const e = () => {
400
+ document.querySelector(
401
+ "[data-fx-component]:not([data-component-initialized])"
402
+ ) ? requestAnimationFrame(e) : i();
403
+ };
404
+ e();
405
+ }
406
+ function fe(i, e, t = "move") {
399
407
  if (!(i instanceof HTMLElement))
400
408
  throw new Error("Source element must be an HTMLElement");
401
409
  if (!(e instanceof HTMLElement))
@@ -426,7 +434,7 @@
426
434
  }
427
435
  });
428
436
  }
429
- var T = class {
437
+ var O = class {
430
438
  static initGlobalRegistry() {
431
439
  window.$flexillaInstances || (window.$flexillaInstances = {});
432
440
  }
@@ -444,12 +452,18 @@
444
452
  (n) => n.element !== t
445
453
  ));
446
454
  }
455
+ static setup(e) {
456
+ e.setAttribute("data-fx-component", "fx");
457
+ }
458
+ static initialized(e) {
459
+ e.setAttribute("data-component-initialized", "initialized");
460
+ }
447
461
  };
448
- var fe = {
462
+ var ue = {
449
463
  teleport: true,
450
464
  teleportMode: "move"
451
465
  };
452
- var S = class S2 {
466
+ var k = class k2 {
453
467
  /**
454
468
  * Creates a new Dropdown instance
455
469
  * @param dropdown - The dropdown content element or selector
@@ -477,7 +491,7 @@
477
491
  t2 === "add" ? (e2.setAttribute("data-current-subtrigger", ""), e2.setAttribute("data-focus", "active")) : (e2.removeAttribute("data-current-subtrigger"), e2.removeAttribute("data-focus"));
478
492
  });
479
493
  a(this, "updateObserverFor", (e2) => {
480
- const t2 = O("[data-dropdown-trigger]", this.contentElement);
494
+ const t2 = S("[data-dropdown-trigger]", this.contentElement);
481
495
  for (const n2 of t2)
482
496
  e2.observe(n2, {
483
497
  attributes: true,
@@ -504,7 +518,9 @@
504
518
  (n2 = (t2 = this.options).onToggle) == null || n2.call(t2, { isHidden: e2 });
505
519
  });
506
520
  a(this, "moveElOnInit", () => {
507
- this.experimentalOptions.teleport && (this.experimentalOptions.teleportMode === "detachable" ? this.teleporter.remove() : this.teleporter.append());
521
+ this.experimentalOptions.teleport && ge(() => {
522
+ this.experimentalOptions.teleportMode === "detachable" ? this.teleporter.remove() : this.teleporter.append();
523
+ });
508
524
  });
509
525
  a(this, "moveEl", () => {
510
526
  this.experimentalOptions.teleport && this.experimentalOptions.teleportMode === "detachable" && this.teleporter.remove();
@@ -549,13 +565,13 @@
549
565
  });
550
566
  a(this, "onShow", () => {
551
567
  var e2, t2;
552
- K(this.contentElement, "dropdown-show", {
568
+ z(this.contentElement, "dropdown-show", {
553
569
  isHidden: false
554
570
  }), (t2 = (e2 = this.options).onShow) == null || t2.call(e2), this.observeEl(), this.observeSubtriggers();
555
571
  });
556
572
  a(this, "onHide", () => {
557
573
  var e2, t2;
558
- K(this.contentElement, "dropdown-hide", {
574
+ z(this.contentElement, "dropdown-hide", {
559
575
  isHidden: true
560
576
  }), (t2 = (e2 = this.options).onHide) == null || t2.call(e2), this.moveEl(), this.triggerElement.hasAttribute("data-current-subtrigger") && this.updateSubtriggerAttr(this.triggerElement, "remove"), this.disconnectObserver();
561
577
  });
@@ -574,9 +590,9 @@
574
590
  this.keyObserver && this.keyObserver.disconnect(), this.subtriggerObserver && this.subtriggerObserver.disconnect();
575
591
  });
576
592
  a(this, "cleanup", () => {
577
- this.disconnectObserver(), this.OverlayInstance.cleanup(), T.removeInstance("dropdown", this.contentElement);
593
+ this.disconnectObserver(), this.OverlayInstance.cleanup(), O.removeInstance("dropdown", this.contentElement);
578
594
  });
579
- const n = typeof e == "string" ? P(e) : e;
595
+ const n = typeof e == "string" ? F(e) : e;
580
596
  if (!(n instanceof HTMLElement))
581
597
  throw new Error(
582
598
  "Invalid dropdown content element: Must provide either a valid HTMLElement or a selector string that resolves to an existing HTMLElement"
@@ -584,13 +600,14 @@
584
600
  if (!n.id)
585
601
  throw new Error("Dropdown content element must have an 'id' attribute for trigger association");
586
602
  this.contentElement = n;
587
- const r = T.getInstance("dropdown", this.contentElement);
603
+ const r = O.getInstance("dropdown", this.contentElement);
588
604
  if (r)
589
605
  return r;
606
+ O.setup(this.contentElement);
590
607
  const s = `[data-dropdown-trigger][data-dropdown-id=${this.contentElement.id}]`;
591
- if (this.triggerElement = P(s), !(this.triggerElement instanceof HTMLElement))
608
+ if (this.triggerElement = F(s), !(this.triggerElement instanceof HTMLElement))
592
609
  throw new Error(`No valid trigger element found. Ensure a trigger element exists with attributes: data-dropdown-trigger and data-dropdown-id="${this.contentElement.id}"`);
593
- this.options = t, this.triggerStrategy = this.contentElement.dataset.triggerStrategy || this.options.triggerStrategy || "click", this.placement = this.contentElement.dataset.placement || this.options.placement || "bottom-start", this.offsetDistance = parseInt(`${this.contentElement.dataset.offsetDistance}`) || this.options.offsetDistance || 6, this.preventFromCloseOutside = this.contentElement.hasAttribute("data-prevent-close-outside") || this.options.preventFromCloseOutside || false, this.preventFromCloseInside = this.contentElement.hasAttribute("data-prevent-close-inside") || this.options.preventCloseFromInside || false, this.defaultState = this.contentElement.dataset.defaultState || this.options.defaultState || "close", this.experimentalOptions = Object.assign({}, fe, t.experimental), this.teleporter = ge(this.contentElement, document.body, this.experimentalOptions.teleportMode), this.OverlayInstance = new ce({
610
+ this.options = t, this.triggerStrategy = this.contentElement.dataset.triggerStrategy || this.options.triggerStrategy || "click", this.placement = this.contentElement.dataset.placement || this.options.placement || "bottom-start", this.offsetDistance = parseInt(`${this.contentElement.dataset.offsetDistance}`) || this.options.offsetDistance || 6, this.preventFromCloseOutside = this.contentElement.hasAttribute("data-prevent-close-outside") || this.options.preventFromCloseOutside || false, this.preventFromCloseInside = this.contentElement.hasAttribute("data-prevent-close-inside") || this.options.preventCloseFromInside || false, this.defaultState = this.contentElement.dataset.defaultState || this.options.defaultState || "close", this.experimentalOptions = Object.assign({}, ue, t.experimental), this.teleporter = fe(this.contentElement, document.body, this.experimentalOptions.teleportMode), this.OverlayInstance = new ce({
594
611
  trigger: this.triggerElement,
595
612
  content: this.contentElement,
596
613
  options: {
@@ -602,7 +619,7 @@
602
619
  defaultState: this.defaultState,
603
620
  beforeShow: this.beforeShow,
604
621
  beforeHide: () => {
605
- if (O("[data-dropdown-trigger][aria-expanded=true]", this.contentElement).length >= 1)
622
+ if (S("[data-dropdown-trigger][aria-expanded=true]", this.contentElement).length >= 1)
606
623
  return { cancelAction: true };
607
624
  this.beforeHide();
608
625
  },
@@ -613,11 +630,11 @@
613
630
  },
614
631
  popper: this.options.popper
615
632
  }
616
- }), this.moveElOnInit(), this.items = O("a:not([disabled]), button:not([disabled])", this.contentElement), this.navigationKeys = me({
633
+ }), this.moveElOnInit(), this.items = S("a:not([disabled]), button:not([disabled])", this.contentElement), this.navigationKeys = me({
617
634
  containerElement: this.contentElement,
618
635
  targetChildren: this.items,
619
636
  direction: "up-down"
620
- }), T.register("dropdown", this.contentElement, this);
637
+ }), O.register("dropdown", this.contentElement, this), O.initialized(this.contentElement);
621
638
  }
622
639
  /**
623
640
  * Initializes a single dropdown instance
@@ -626,20 +643,20 @@
626
643
  * @returns A new Dropdown instance
627
644
  */
628
645
  static init(e, t = {}) {
629
- new S2(e, t);
646
+ new k2(e, t);
630
647
  }
631
648
  };
632
- a(S, "autoInit", (e = "[data-fx-dropdown]") => {
633
- const t = O(e);
649
+ a(k, "autoInit", (e = "[data-fx-dropdown]") => {
650
+ const t = S(e);
634
651
  for (const n of t)
635
- new S(n);
652
+ new k(n);
636
653
  });
637
- var z = S;
654
+ var K = k;
638
655
 
639
656
  // src/index.js
640
657
  function Dropdown(Alpine) {
641
658
  Alpine.directive("dropdown", (el, {}, { cleanup }) => {
642
- const dropdown_ = new z(el);
659
+ const dropdown_ = new K(el);
643
660
  cleanup(() => {
644
661
  dropdown_.cleanup();
645
662
  });
package/dist/cdn.min.js CHANGED
@@ -1 +1 @@
1
- (()=>{var J=Object.defineProperty,Q=(t,e,n)=>e in t?J(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,l=(t,e,n)=>Q(t,typeof e!="symbol"?e+"":e,n),V=Object.defineProperty,X=(t,e,n)=>e in t?V(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,m=(t,e,n)=>X(t,typeof e!="symbol"?e+"":e,n),Y="bottom",Z=({reference:t,popper:e})=>{if(!t||!e)throw new Error("Reference or popper element is null or undefined");let n=new WeakMap,i=r=>(n.has(r)||n.set(r,r.getBoundingClientRect()),n.get(r)),a=i(e),s=i(t);return{popperHeight:a.height,popperWidth:a.width,refHeight:s.height,refWidth:s.width,refLeft:s.left,refTop:s.top,refRight:s.right}},_=(t,e,n,i)=>{let a=n,s=i-(n+e);return a>=(t-e)/2&&s>=(t-e)/2},ee=(t,e,n,i)=>(t-e)/2<=n&&n+t/2+e/2<=i,te=(t,e,n,i,a)=>n>a-i?e()?window.innerHeight-a:n-a:t()?0:n+i,ne=(t,e,n,i)=>t<=i&&n-t<=e,ie=(t,e,n,i)=>n<=i&&-t<=e,se=(t,e,n,i,a,s)=>{let r=a-n-s,o=n-i,h=n+s-i+(a-n-s),c=r>=0?a-i:o>=0?n-i:n;return t()?0:e()?h:c},re=(t,e,n,i)=>t<=n&&e-t-i>=t,oe=(t,e)=>t>=e,ae=({placement:t,refWidth:e,refTop:n,refLeft:i,refHeight:a,popperWidth:s,popperHeight:r,windowHeight:o,windowWidth:h,offsetDistance:c})=>{let p=h-i-e,f=i,E=o-n-a,g=n,w=()=>te(()=>ie(n,a,r,o),()=>ne(n,a,r,o),n,a,r),b=()=>se(()=>re(i,h,s,e),()=>oe(i,s),i,s,h,e),I=()=>_(s,e,i,h)?i+e/2-s/2:b(),M=()=>ee(r,a,n,o)?n+a/2-r/2:w(),A=()=>i+s<=h?i:b(),k=()=>i+e-s>=0?i+e-s:b(),L=()=>n+r<=o?n:w(),q=()=>n+a-r>=0?n+a-r:w(),u=0,v=0,C=n-r-c,D=n+a+c,H=i-s-c,x=i+e+c,R=g>=r+c,N=E>=r+c,$=f>=s+c,K=p>=s+c;switch(t.startsWith("top")?v=R?C:N?D:Math.max(C,D):t.startsWith("bottom")?v=N?D:R?C:Math.max(D):t.startsWith("left")?u=$?H:K?x:Math.max(H,x):t.startsWith("right")&&(u=K?x:$?H:Math.max(x,H)),t){case"bottom":case"bottom-middle":case"top":case"top-middle":u=I();break;case"left":case"left-middle":case"right":case"right-middle":v=M();break;case"bottom-start":case"top-start":u=A();break;case"bottom-end":case"top-end":u=k();break;case"left-start":case"right-start":v=L();break;case"left-end":case"right-end":v=q();break}return{x:u,y:v}},T=class{constructor(e,n,i={}){m(this,"reference"),m(this,"popper"),m(this,"offsetDistance"),m(this,"placement"),m(this,"disableOnResize"),m(this,"disableOnScroll"),m(this,"onUpdate"),m(this,"isWindowEventsRegistered"),m(this,"validateElements",()=>{if(!(this.reference instanceof HTMLElement))throw new Error("Invalid HTMLElement for Reference Element");if(!(this.popper instanceof HTMLElement))throw new Error("Invalid HTMLElement for Popper");if(typeof this.offsetDistance!="number")throw new Error("OffsetDistance must be a number")}),m(this,"setPopperStyleProperty",(p,f)=>{this.popper.style.setProperty("--fx-popper-placement-x",`${p}px`),this.popper.style.setProperty("--fx-popper-placement-y",`${f}px`)}),m(this,"setInitialStyles",()=>{this.popper.style.setProperty("--fx-popper-placement-x",""),this.popper.style.setProperty("--fx-popper-placement-y","")}),m(this,"initPlacement",()=>{var p;this.validateElements(),this.setInitialStyles();let f=window.innerWidth,E=window.innerHeight,{popperHeight:g,popperWidth:w,refHeight:b,refWidth:I,refLeft:M,refTop:A}=Z({reference:this.reference,popper:this.popper}),{x:k,y:L}=ae({placement:this.placement,refWidth:I,refTop:A,refLeft:M,popperWidth:w,refHeight:b,popperHeight:g,windowHeight:E,windowWidth:f,offsetDistance:this.offsetDistance});this.setPopperStyleProperty(k,L),(p=this.onUpdate)==null||p.call(this,{x:k,y:L,placement:this.placement})}),m(this,"removeWindowEvents",()=>{this.isWindowEventsRegistered&&(!this.disableOnResize&&window.removeEventListener("resize",this.updatePosition),!this.disableOnScroll&&window.removeEventListener("scroll",this.updatePosition),this.isWindowEventsRegistered=!1)}),m(this,"attachWindowEvent",()=>{this.isWindowEventsRegistered&&this.removeWindowEvents(),this.disableOnResize||window.addEventListener("resize",this.updatePosition),this.disableOnScroll||window.addEventListener("scroll",this.updatePosition),this.isWindowEventsRegistered=!0}),m(this,"resetPosition",()=>{this.setInitialStyles()}),m(this,"updatePosition",()=>{this.initPlacement(),this.attachWindowEvent()}),m(this,"cleanupEvents",()=>{this.setInitialStyles(),this.removeWindowEvents()});let{offsetDistance:a=10,placement:s=Y,eventEffect:r={},onUpdate:o}=i;if(!(e instanceof HTMLElement))throw new Error("Invalid HTMLElement for Reference Element");if(!(n instanceof HTMLElement))throw new Error("Invalid HTMLElement for Popper");if(i.offsetDistance&&typeof i.offsetDistance!="number")throw new Error("OffsetDistance must be a number");let{disableOnResize:h,disableOnScroll:c}=r;this.isWindowEventsRegistered=!1,this.reference=e,this.popper=n,this.offsetDistance=a,this.placement=s,this.disableOnResize=h||!1,this.disableOnScroll=c||!1,this.onUpdate=o}setOptions({placement:e,offsetDistance:n}){this.placement=e,this.offsetDistance=n||this.offsetDistance,this.initPlacement(),this.attachWindowEvent()}},le=Object.defineProperty,he=(t,e,n)=>e in t?le(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,d=(t,e,n)=>he(t,typeof e!="symbol"?e+"":e,n),de=(t,e=document.body)=>e.querySelector(t),z=(t,e)=>{for(let[n,i]of Object.entries(e))t.setAttribute(n,i)},ce=({element:t,callback:e,type:n,keysCheck:i})=>{let a=getComputedStyle(t),s=a.transition;if(s!=="none"&&s!==""&&!i.includes(s)){let r="transitionend",o=()=>{t.removeEventListener(r,o),e()};t.addEventListener(r,o,{once:!0})}else e()},pe=({element:t,callback:e})=>{ce({element:t,callback:e,type:"transition",keysCheck:["all 0s ease 0s","all"]})},me=(t,e,n)=>{let i=new CustomEvent(e,{detail:n});t.dispatchEvent(i)},y=({state:t,trigger:e,popper:n})=>{let i=t==="open";z(n,{"data-state":t}),z(e,{"aria-expanded":`${i}`})},P=class{constructor({trigger:e,content:n,options:i={}}){d(this,"triggerElement"),d(this,"contentElement"),d(this,"triggerStrategy"),d(this,"placement"),d(this,"offsetDistance"),d(this,"preventFromCloseOutside"),d(this,"preventFromCloseInside"),d(this,"options"),d(this,"defaultState"),d(this,"popper"),d(this,"eventEffect"),d(this,"getElement",s=>typeof s=="string"?de(s):s instanceof HTMLElement?s:void 0),d(this,"handleDocumentClick",s=>{this.contentElement.getAttribute("data-state")==="open"&&(!this.triggerElement.contains(s.target)&&!this.preventFromCloseInside&&!this.preventFromCloseOutside?this.hide():!this.triggerElement.contains(s.target)&&!this.contentElement.contains(s.target)&&!this.preventFromCloseOutside?this.hide():!this.triggerElement.contains(s.target)&&!this.contentElement.contains(s.target)&&!this.preventFromCloseOutside?this.hide():!this.triggerElement.contains(s.target)&&this.contentElement.contains(s.target)&&!this.preventFromCloseInside&&this.hide())}),d(this,"handleKeyDown",s=>{s.preventDefault(),this.triggerStrategy!=="hover"&&s.key==="Escape"&&this.contentElement.getAttribute("data-state")==="open"&&(this.preventFromCloseOutside||this.hide())}),d(this,"toggleStateOnClick",()=>{(this.contentElement.dataset.state||"close")==="close"?(this.show(),this.triggerStrategy==="hover"&&this.addEventOnMouseEnter()):this.hide()}),d(this,"hideOnMouseLeaseTrigger",()=>{setTimeout(()=>{this.contentElement.matches(":hover")||this.hide()},150)}),d(this,"hideOnMouseLeave",()=>{setTimeout(()=>{this.triggerElement.matches(":hover")||this.hide()},150)}),d(this,"addEventOnMouseEnter",()=>{this.triggerElement.addEventListener("mouseleave",this.hideOnMouseLeaseTrigger),this.contentElement.addEventListener("mouseleave",this.hideOnMouseLeave)}),d(this,"showOnMouseEnter",()=>{this.show(),this.addEventOnMouseEnter()}),d(this,"setShowOptions",({placement:s,offsetDistance:r})=>{var o,h,c,p;this.popper.setOptions({placement:s,offsetDistance:r}),document.addEventListener("keydown",this.handleKeyDown),document.addEventListener("click",this.handleDocumentClick),(h=(o=this.options).beforeShow)==null||h.call(o),y({state:"open",popper:this.contentElement,trigger:this.triggerElement}),this.onToggleState(!1),(p=(c=this.options).onShow)==null||p.call(c)}),d(this,"setPopperOptions",({placement:s,offsetDistance:r})=>{this.popper.setOptions({placement:s,offsetDistance:r||this.offsetDistance})}),d(this,"setPopperTrigger",(s,r)=>{this.cleanup(),this.popper.setOptions({placement:r.placement||this.placement,offsetDistance:r.offsetDistance||this.offsetDistance}),this.triggerElement=s,this.triggerElement.addEventListener("click",this.toggleStateOnClick),this.triggerStrategy==="hover"&&this.triggerElement.addEventListener("mouseenter",this.showOnMouseEnter)}),d(this,"cleanup",()=>{this.triggerElement.removeEventListener("click",this.toggleStateOnClick),this.triggerStrategy==="hover"&&this.triggerElement.removeEventListener("mouseenter",this.showOnMouseEnter)});var a;if(this.contentElement=this.getElement(n),this.triggerElement=this.getElement(e),!(this.triggerElement instanceof HTMLElement))throw new Error("Trigger element must be a valid HTML element");if(!(this.contentElement instanceof HTMLElement))throw new Error("Content element must be a valid HTML element");this.options=i,this.triggerStrategy=this.options.triggerStrategy||"click",this.placement=this.options.placement||"bottom",this.offsetDistance=this.options.offsetDistance||6,this.preventFromCloseOutside=this.options.preventFromCloseOutside||!1,this.preventFromCloseInside=this.options.preventCloseFromInside||!1,this.defaultState=this.options.defaultState||"close",this.eventEffect=(a=this.options.popper)==null?void 0:a.eventEffect,this.popper=new T(this.triggerElement,this.contentElement,{placement:this.placement,offsetDistance:this.offsetDistance,eventEffect:this.eventEffect}),this.initInstance()}onToggleState(e){var n,i;(i=(n=this.options).onToggle)==null||i.call(n,{isHidden:e})}show(){var e,n,i,a;this.popper.updatePosition(),document.addEventListener("keydown",this.handleKeyDown),document.addEventListener("click",this.handleDocumentClick),(n=(e=this.options).beforeShow)==null||n.call(e),y({state:"open",popper:this.contentElement,trigger:this.triggerElement}),this.onToggleState(!1),(a=(i=this.options).onShow)==null||a.call(i)}hide(){var e,n,i;let a=!1;me(this.contentElement,"before-hide",{setExitAction:r=>{a=r}});let s=(i=(n=(e=this.options).beforeHide)==null?void 0:n.call(e))==null?void 0:i.cancelAction;a||s||(y({state:"close",popper:this.contentElement,trigger:this.triggerElement}),this.triggerStrategy==="click"&&document.removeEventListener("click",this.handleDocumentClick),document.removeEventListener("keydown",this.handleKeyDown),this.triggerStrategy==="hover"&&(this.triggerElement.removeEventListener("mouseleave",this.hideOnMouseLeaseTrigger),this.contentElement.removeEventListener("mouseleave",this.hideOnMouseLeave)),pe({element:this.contentElement,callback:()=>{var r,o;this.onToggleState(!0),this.popper.cleanupEvents(),(o=(r=this.options).onHide)==null||o.call(r)}}))}initInstance(){y({state:this.defaultState,popper:this.contentElement,trigger:this.triggerElement}),this.defaultState==="open"?this.show():y({state:"close",popper:this.contentElement,trigger:this.triggerElement}),this.triggerElement.addEventListener("click",this.toggleStateOnClick),this.triggerStrategy==="hover"&&this.triggerElement.addEventListener("mouseenter",this.showOnMouseEnter)}},W=(t,e=document.body)=>e.querySelector(t),O=(t,e=document.body)=>Array.from(e.querySelectorAll(t)),ge=t=>typeof t=="string"?W(t):t,fe=({containerElement:t,targetChildren:e="a:not([disabled]), button:not([disabled])",direction:n})=>{let i=!1,a=ge(t)||document.body,s=typeof e=="string"?O(e,a):e,r=o=>{if(o.preventDefault(),a.focus(),s.length===0)return;let h=o.key,c=document.activeElement,p=s.findIndex(g=>g===c);if(p===-1){h==="ArrowUp"||h==="ArrowLeft"?s[s.length-1].focus():s[0].focus();return}let f=g=>g>0?g-1:s.length-1,E=g=>g<s.length-1?g+1:0;switch(h){case"ArrowDown":o.preventDefault(),p=E(p);break;case"ArrowRight":break;case"ArrowUp":o.preventDefault(),p=f(p);break;case"ArrowLeft":break;case"Home":o.preventDefault(),p=0;break;case"End":o.preventDefault(),p=s.length-1;break;default:return}s[p]!==c&&s[p].focus()};return{make:()=>{i||(document.addEventListener("keydown",r),i=!0)},destroy:()=>{i&&(document.removeEventListener("keydown",r),i=!1)}}},U=(t,e,n)=>{let i=new CustomEvent(e,{detail:n});t.dispatchEvent(i)};function ue(t,e,n="move"){if(!(t instanceof HTMLElement))throw new Error("Source element must be an HTMLElement");if(!(e instanceof HTMLElement))throw new Error("Target element must be an HTMLElement");if(!["move","detachable"].includes(n))throw new Error(`Invalid teleport mode: ${n}. Must be "move" or "detachable".`);let i=document.createComment("teleporter-placeholder"),a=t.parentNode;return a?a.insertBefore(i,t):console.warn("Element has no parent; placeholder not inserted."),n==="move"?(t.parentNode&&e.appendChild(t),{append(){t.parentNode!==e&&e.appendChild(t)},remove(){i!=null&&i.parentNode&&t.parentNode&&i.parentNode.insertBefore(t,i)},restore(){i!=null&&i.parentNode&&t.parentNode!==a&&i.parentNode.insertBefore(t,i)}}):(t.parentNode&&e.appendChild(t),{append(){e.contains(t)||e.appendChild(t)},remove(){t.parentNode&&t.remove()},restore(){i!=null&&i.parentNode&&!t.parentNode&&i.parentNode.insertBefore(t,i)}})}var S=class{static initGlobalRegistry(){window.$flexillaInstances||(window.$flexillaInstances={})}static register(e,n,i){return this.initGlobalRegistry(),window.$flexillaInstances[e]||(window.$flexillaInstances[e]=[]),this.getInstance(e,n)||(window.$flexillaInstances[e].push({element:n,instance:i}),i)}static getInstance(e,n){var i,a;return this.initGlobalRegistry(),(a=(i=window.$flexillaInstances[e])==null?void 0:i.find(s=>s.element===n))==null?void 0:a.instance}static removeInstance(e,n){this.initGlobalRegistry(),window.$flexillaInstances[e]&&(window.$flexillaInstances[e]=window.$flexillaInstances[e].filter(i=>i.element!==n))}},ve={teleport:!0,teleportMode:"move"},F=class j{constructor(e,n={}){l(this,"triggerElement"),l(this,"contentElement"),l(this,"items",[]),l(this,"options"),l(this,"OverlayInstance"),l(this,"navigationKeys"),l(this,"keyObserver"),l(this,"subtriggerObserver"),l(this,"triggerStrategy"),l(this,"placement"),l(this,"offsetDistance"),l(this,"preventFromCloseOutside"),l(this,"preventFromCloseInside"),l(this,"defaultState"),l(this,"experimentalOptions"),l(this,"teleporter"),l(this,"updateSubtriggerAttr",(r,o)=>{o==="add"?(r.setAttribute("data-current-subtrigger",""),r.setAttribute("data-focus","active")):(r.removeAttribute("data-current-subtrigger"),r.removeAttribute("data-focus"))}),l(this,"updateObserverFor",r=>{let o=O("[data-dropdown-trigger]",this.contentElement);for(let h of o)r.observe(h,{attributes:!0,attributeFilter:["aria-expanded"]})}),l(this,"observeEl",()=>{this.keyObserver=new MutationObserver(r=>{for(let o of r)o.type==="attributes"&&o.attributeName==="aria-expanded"&&(o.target.getAttribute("aria-expanded")==="true"?this.navigationKeys.destroy():this.contentElement.dataset.state==="open"&&this.navigationKeys.make())}),this.updateObserverFor(this.keyObserver)}),l(this,"observeSubtriggers",()=>{this.subtriggerObserver=new MutationObserver(r=>{for(let o of r)if(o.type==="attributes"&&o.attributeName==="aria-expanded"){let h=o.target,c=h.getAttribute("aria-expanded");this.updateSubtriggerAttr(h,c==="true"?"add":"remove")}}),this.updateObserverFor(this.subtriggerObserver)}),l(this,"onToggle",({isHidden:r})=>{var o,h;(h=(o=this.options).onToggle)==null||h.call(o,{isHidden:r})}),l(this,"moveElOnInit",()=>{this.experimentalOptions.teleport&&(this.experimentalOptions.teleportMode==="detachable"?this.teleporter.remove():this.teleporter.append())}),l(this,"moveEl",()=>{this.experimentalOptions.teleport&&this.experimentalOptions.teleportMode==="detachable"&&this.teleporter.remove()}),l(this,"restoreEl",()=>{this.experimentalOptions.teleport&&this.experimentalOptions.teleportMode==="detachable"&&this.teleporter.append()}),l(this,"beforeShow",()=>{this.restoreEl(),this.contentElement.focus(),this.navigationKeys.make(),this.addArrowEvent()}),l(this,"beforeHide",()=>{this.contentElement.blur(),this.navigationKeys.destroy(),this.removeArrowEvent()}),l(this,"showHideOnArrow",r=>{r.preventDefault();let o=r.key,h=document.activeElement;if(h!=null&&h.hasAttribute("data-dropdown-trigger"))switch(o){case"ArrowRight":h.getAttribute("aria-expanded")!=="true"&&(h.click(),this.updateSubtriggerAttr(h,"add"));break;case"ArrowLeft":h.getAttribute("aria-expanded")==="true"&&(h.click(),this.updateSubtriggerAttr(h,"remove"));break;default:return}if(this.triggerElement.hasAttribute("data-current-subtrigger"))switch(o){case"ArrowLeft":this.triggerElement.click(),this.triggerElement.focus(),this.updateSubtriggerAttr(this.triggerElement,"remove");break;default:return}}),l(this,"addArrowEvent",()=>{document.addEventListener("keydown",this.showHideOnArrow)}),l(this,"removeArrowEvent",()=>{document.removeEventListener("keydown",this.showHideOnArrow)}),l(this,"onShow",()=>{var r,o;U(this.contentElement,"dropdown-show",{isHidden:!1}),(o=(r=this.options).onShow)==null||o.call(r),this.observeEl(),this.observeSubtriggers()}),l(this,"onHide",()=>{var r,o;U(this.contentElement,"dropdown-hide",{isHidden:!0}),(o=(r=this.options).onHide)==null||o.call(r),this.moveEl(),this.triggerElement.hasAttribute("data-current-subtrigger")&&this.updateSubtriggerAttr(this.triggerElement,"remove"),this.disconnectObserver()}),l(this,"show",()=>this.OverlayInstance.show()),l(this,"hide",()=>this.OverlayInstance.hide()),l(this,"setShowOptions",({placement:r,offsetDistance:o})=>{this.OverlayInstance.setShowOptions({placement:r,offsetDistance:o})}),l(this,"setOptions",({placement:r,offsetDistance:o})=>{this.OverlayInstance.setPopperOptions({placement:r,offsetDistance:o})}),l(this,"setPopperTrigger",(r,o)=>{this.OverlayInstance.setPopperTrigger(r,o)}),l(this,"disconnectObserver",()=>{this.keyObserver&&this.keyObserver.disconnect(),this.subtriggerObserver&&this.subtriggerObserver.disconnect()}),l(this,"cleanup",()=>{this.disconnectObserver(),this.OverlayInstance.cleanup(),S.removeInstance("dropdown",this.contentElement)});let i=typeof e=="string"?W(e):e;if(!(i instanceof HTMLElement))throw new Error("Invalid dropdown content element: Must provide either a valid HTMLElement or a selector string that resolves to an existing HTMLElement");if(!i.id)throw new Error("Dropdown content element must have an 'id' attribute for trigger association");this.contentElement=i;let a=S.getInstance("dropdown",this.contentElement);if(a)return a;let s=`[data-dropdown-trigger][data-dropdown-id=${this.contentElement.id}]`;if(this.triggerElement=W(s),!(this.triggerElement instanceof HTMLElement))throw new Error(`No valid trigger element found. Ensure a trigger element exists with attributes: data-dropdown-trigger and data-dropdown-id="${this.contentElement.id}"`);this.options=n,this.triggerStrategy=this.contentElement.dataset.triggerStrategy||this.options.triggerStrategy||"click",this.placement=this.contentElement.dataset.placement||this.options.placement||"bottom-start",this.offsetDistance=parseInt(`${this.contentElement.dataset.offsetDistance}`)||this.options.offsetDistance||6,this.preventFromCloseOutside=this.contentElement.hasAttribute("data-prevent-close-outside")||this.options.preventFromCloseOutside||!1,this.preventFromCloseInside=this.contentElement.hasAttribute("data-prevent-close-inside")||this.options.preventCloseFromInside||!1,this.defaultState=this.contentElement.dataset.defaultState||this.options.defaultState||"close",this.experimentalOptions=Object.assign({},ve,n.experimental),this.teleporter=ue(this.contentElement,document.body,this.experimentalOptions.teleportMode),this.OverlayInstance=new P({trigger:this.triggerElement,content:this.contentElement,options:{placement:this.placement,offsetDistance:this.offsetDistance,triggerStrategy:this.triggerStrategy,preventFromCloseOutside:this.preventFromCloseOutside,preventCloseFromInside:this.preventFromCloseInside,defaultState:this.defaultState,beforeShow:this.beforeShow,beforeHide:()=>{if(O("[data-dropdown-trigger][aria-expanded=true]",this.contentElement).length>=1)return{cancelAction:!0};this.beforeHide()},onShow:this.onShow,onHide:this.onHide,onToggle:({isHidden:r})=>{this.onToggle({isHidden:r})},popper:this.options.popper}}),this.moveElOnInit(),this.items=O("a:not([disabled]), button:not([disabled])",this.contentElement),this.navigationKeys=fe({containerElement:this.contentElement,targetChildren:this.items,direction:"up-down"}),S.register("dropdown",this.contentElement,this)}static init(e,n={}){new j(e,n)}};l(F,"autoInit",(t="[data-fx-dropdown]")=>{let e=O(t);for(let n of e)new F(n)});var B=F;function Ee(t){t.directive("dropdown",(e,{},{cleanup:n})=>{let i=new B(e);n(()=>{i.cleanup()})})}var G=Ee;document.addEventListener("alpine:init",()=>{G(window.Alpine)});})();
1
+ (()=>{var J=Object.defineProperty,Q=(t,e,n)=>e in t?J(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,l=(t,e,n)=>Q(t,typeof e!="symbol"?e+"":e,n),V=Object.defineProperty,X=(t,e,n)=>e in t?V(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,m=(t,e,n)=>X(t,typeof e!="symbol"?e+"":e,n),Y="bottom",Z=({reference:t,popper:e})=>{if(!t||!e)throw new Error("Reference or popper element is null or undefined");let n=new WeakMap,i=r=>(n.has(r)||n.set(r,r.getBoundingClientRect()),n.get(r)),a=i(e),s=i(t);return{popperHeight:a.height,popperWidth:a.width,refHeight:s.height,refWidth:s.width,refLeft:s.left,refTop:s.top,refRight:s.right}},_=(t,e,n,i)=>{let a=n,s=i-(n+e);return a>=(t-e)/2&&s>=(t-e)/2},ee=(t,e,n,i)=>(t-e)/2<=n&&n+t/2+e/2<=i,te=(t,e,n,i,a)=>n>a-i?e()?window.innerHeight-a:n-a:t()?0:n+i,ne=(t,e,n,i)=>t<=i&&n-t<=e,ie=(t,e,n,i)=>n<=i&&-t<=e,se=(t,e,n,i,a,s)=>{let r=a-n-s,o=n-i,h=n+s-i+(a-n-s),c=r>=0?a-i:o>=0?n-i:n;return t()?0:e()?h:c},re=(t,e,n,i)=>t<=n&&e-t-i>=t,oe=(t,e)=>t>=e,ae=({placement:t,refWidth:e,refTop:n,refLeft:i,refHeight:a,popperWidth:s,popperHeight:r,windowHeight:o,windowWidth:h,offsetDistance:c})=>{let p=h-i-e,f=i,w=o-n-a,g=n,b=()=>te(()=>ie(n,a,r,o),()=>ne(n,a,r,o),n,a,r),y=()=>se(()=>re(i,h,s,e),()=>oe(i,s),i,s,h,e),I=()=>_(s,e,i,h)?i+e/2-s/2:y(),M=()=>ee(r,a,n,o)?n+a/2-r/2:b(),A=()=>i+s<=h?i:y(),k=()=>i+e-s>=0?i+e-s:y(),L=()=>n+r<=o?n:b(),G=()=>n+a-r>=0?n+a-r:b(),v=0,E=0,C=n-r-c,D=n+a+c,x=i-s-c,H=i+e+c,R=g>=r+c,N=w>=r+c,$=f>=s+c,z=p>=s+c;switch(t.startsWith("top")?E=R?C:N?D:Math.max(C,D):t.startsWith("bottom")?E=N?D:R?C:Math.max(D):t.startsWith("left")?v=$?x:z?H:Math.max(x,H):t.startsWith("right")&&(v=z?H:$?x:Math.max(H,x)),t){case"bottom":case"bottom-middle":case"top":case"top-middle":v=I();break;case"left":case"left-middle":case"right":case"right-middle":E=M();break;case"bottom-start":case"top-start":v=A();break;case"bottom-end":case"top-end":v=k();break;case"left-start":case"right-start":E=L();break;case"left-end":case"right-end":E=G();break}return{x:v,y:E}},T=class{constructor(e,n,i={}){m(this,"reference"),m(this,"popper"),m(this,"offsetDistance"),m(this,"placement"),m(this,"disableOnResize"),m(this,"disableOnScroll"),m(this,"onUpdate"),m(this,"isWindowEventsRegistered"),m(this,"validateElements",()=>{if(!(this.reference instanceof HTMLElement))throw new Error("Invalid HTMLElement for Reference Element");if(!(this.popper instanceof HTMLElement))throw new Error("Invalid HTMLElement for Popper");if(typeof this.offsetDistance!="number")throw new Error("OffsetDistance must be a number")}),m(this,"setPopperStyleProperty",(p,f)=>{this.popper.style.setProperty("--fx-popper-placement-x",`${p}px`),this.popper.style.setProperty("--fx-popper-placement-y",`${f}px`)}),m(this,"setInitialStyles",()=>{this.popper.style.setProperty("--fx-popper-placement-x",""),this.popper.style.setProperty("--fx-popper-placement-y","")}),m(this,"initPlacement",()=>{var p;this.validateElements(),this.setInitialStyles();let f=window.innerWidth,w=window.innerHeight,{popperHeight:g,popperWidth:b,refHeight:y,refWidth:I,refLeft:M,refTop:A}=Z({reference:this.reference,popper:this.popper}),{x:k,y:L}=ae({placement:this.placement,refWidth:I,refTop:A,refLeft:M,popperWidth:b,refHeight:y,popperHeight:g,windowHeight:w,windowWidth:f,offsetDistance:this.offsetDistance});this.setPopperStyleProperty(k,L),(p=this.onUpdate)==null||p.call(this,{x:k,y:L,placement:this.placement})}),m(this,"removeWindowEvents",()=>{this.isWindowEventsRegistered&&(!this.disableOnResize&&window.removeEventListener("resize",this.updatePosition),!this.disableOnScroll&&window.removeEventListener("scroll",this.updatePosition),this.isWindowEventsRegistered=!1)}),m(this,"attachWindowEvent",()=>{this.isWindowEventsRegistered&&this.removeWindowEvents(),this.disableOnResize||window.addEventListener("resize",this.updatePosition),this.disableOnScroll||window.addEventListener("scroll",this.updatePosition),this.isWindowEventsRegistered=!0}),m(this,"resetPosition",()=>{this.setInitialStyles()}),m(this,"updatePosition",()=>{this.initPlacement(),this.attachWindowEvent()}),m(this,"cleanupEvents",()=>{this.setInitialStyles(),this.removeWindowEvents()});let{offsetDistance:a=10,placement:s=Y,eventEffect:r={},onUpdate:o}=i;if(!(e instanceof HTMLElement))throw new Error("Invalid HTMLElement for Reference Element");if(!(n instanceof HTMLElement))throw new Error("Invalid HTMLElement for Popper");if(i.offsetDistance&&typeof i.offsetDistance!="number")throw new Error("OffsetDistance must be a number");let{disableOnResize:h,disableOnScroll:c}=r;this.isWindowEventsRegistered=!1,this.reference=e,this.popper=n,this.offsetDistance=a,this.placement=s,this.disableOnResize=h||!1,this.disableOnScroll=c||!1,this.onUpdate=o}setOptions({placement:e,offsetDistance:n}){this.placement=e,this.offsetDistance=n||this.offsetDistance,this.initPlacement(),this.attachWindowEvent()}},le=Object.defineProperty,he=(t,e,n)=>e in t?le(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,d=(t,e,n)=>he(t,typeof e!="symbol"?e+"":e,n),de=(t,e=document.body)=>e.querySelector(t),K=(t,e)=>{for(let[n,i]of Object.entries(e))t.setAttribute(n,i)},ce=({element:t,callback:e,type:n,keysCheck:i})=>{let a=getComputedStyle(t),s=a.transition;if(s!=="none"&&s!==""&&!i.includes(s)){let r="transitionend",o=()=>{t.removeEventListener(r,o),e()};t.addEventListener(r,o,{once:!0})}else e()},pe=({element:t,callback:e})=>{ce({element:t,callback:e,type:"transition",keysCheck:["all 0s ease 0s","all"]})},me=(t,e,n)=>{let i=new CustomEvent(e,{detail:n});t.dispatchEvent(i)},O=({state:t,trigger:e,popper:n})=>{let i=t==="open";K(n,{"data-state":t}),K(e,{"aria-expanded":`${i}`})},F=class{constructor({trigger:e,content:n,options:i={}}){d(this,"triggerElement"),d(this,"contentElement"),d(this,"triggerStrategy"),d(this,"placement"),d(this,"offsetDistance"),d(this,"preventFromCloseOutside"),d(this,"preventFromCloseInside"),d(this,"options"),d(this,"defaultState"),d(this,"popper"),d(this,"eventEffect"),d(this,"getElement",s=>typeof s=="string"?de(s):s instanceof HTMLElement?s:void 0),d(this,"handleDocumentClick",s=>{this.contentElement.getAttribute("data-state")==="open"&&(!this.triggerElement.contains(s.target)&&!this.preventFromCloseInside&&!this.preventFromCloseOutside?this.hide():!this.triggerElement.contains(s.target)&&!this.contentElement.contains(s.target)&&!this.preventFromCloseOutside?this.hide():!this.triggerElement.contains(s.target)&&!this.contentElement.contains(s.target)&&!this.preventFromCloseOutside?this.hide():!this.triggerElement.contains(s.target)&&this.contentElement.contains(s.target)&&!this.preventFromCloseInside&&this.hide())}),d(this,"handleKeyDown",s=>{s.preventDefault(),this.triggerStrategy!=="hover"&&s.key==="Escape"&&this.contentElement.getAttribute("data-state")==="open"&&(this.preventFromCloseOutside||this.hide())}),d(this,"toggleStateOnClick",()=>{(this.contentElement.dataset.state||"close")==="close"?(this.show(),this.triggerStrategy==="hover"&&this.addEventOnMouseEnter()):this.hide()}),d(this,"hideOnMouseLeaseTrigger",()=>{setTimeout(()=>{this.contentElement.matches(":hover")||this.hide()},150)}),d(this,"hideOnMouseLeave",()=>{setTimeout(()=>{this.triggerElement.matches(":hover")||this.hide()},150)}),d(this,"addEventOnMouseEnter",()=>{this.triggerElement.addEventListener("mouseleave",this.hideOnMouseLeaseTrigger),this.contentElement.addEventListener("mouseleave",this.hideOnMouseLeave)}),d(this,"showOnMouseEnter",()=>{this.show(),this.addEventOnMouseEnter()}),d(this,"setShowOptions",({placement:s,offsetDistance:r})=>{var o,h,c,p;this.popper.setOptions({placement:s,offsetDistance:r}),document.addEventListener("keydown",this.handleKeyDown),document.addEventListener("click",this.handleDocumentClick),(h=(o=this.options).beforeShow)==null||h.call(o),O({state:"open",popper:this.contentElement,trigger:this.triggerElement}),this.onToggleState(!1),(p=(c=this.options).onShow)==null||p.call(c)}),d(this,"setPopperOptions",({placement:s,offsetDistance:r})=>{this.popper.setOptions({placement:s,offsetDistance:r||this.offsetDistance})}),d(this,"setPopperTrigger",(s,r)=>{this.cleanup(),this.popper.setOptions({placement:r.placement||this.placement,offsetDistance:r.offsetDistance||this.offsetDistance}),this.triggerElement=s,this.triggerElement.addEventListener("click",this.toggleStateOnClick),this.triggerStrategy==="hover"&&this.triggerElement.addEventListener("mouseenter",this.showOnMouseEnter)}),d(this,"cleanup",()=>{this.triggerElement.removeEventListener("click",this.toggleStateOnClick),this.triggerStrategy==="hover"&&this.triggerElement.removeEventListener("mouseenter",this.showOnMouseEnter)});var a;if(this.contentElement=this.getElement(n),this.triggerElement=this.getElement(e),!(this.triggerElement instanceof HTMLElement))throw new Error("Trigger element must be a valid HTML element");if(!(this.contentElement instanceof HTMLElement))throw new Error("Content element must be a valid HTML element");this.options=i,this.triggerStrategy=this.options.triggerStrategy||"click",this.placement=this.options.placement||"bottom",this.offsetDistance=this.options.offsetDistance||6,this.preventFromCloseOutside=this.options.preventFromCloseOutside||!1,this.preventFromCloseInside=this.options.preventCloseFromInside||!1,this.defaultState=this.options.defaultState||"close",this.eventEffect=(a=this.options.popper)==null?void 0:a.eventEffect,this.popper=new T(this.triggerElement,this.contentElement,{placement:this.placement,offsetDistance:this.offsetDistance,eventEffect:this.eventEffect}),this.initInstance()}onToggleState(e){var n,i;(i=(n=this.options).onToggle)==null||i.call(n,{isHidden:e})}show(){var e,n,i,a;this.popper.updatePosition(),document.addEventListener("keydown",this.handleKeyDown),document.addEventListener("click",this.handleDocumentClick),(n=(e=this.options).beforeShow)==null||n.call(e),O({state:"open",popper:this.contentElement,trigger:this.triggerElement}),this.onToggleState(!1),(a=(i=this.options).onShow)==null||a.call(i)}hide(){var e,n,i;let a=!1;me(this.contentElement,"before-hide",{setExitAction:r=>{a=r}});let s=(i=(n=(e=this.options).beforeHide)==null?void 0:n.call(e))==null?void 0:i.cancelAction;a||s||(O({state:"close",popper:this.contentElement,trigger:this.triggerElement}),this.triggerStrategy==="click"&&document.removeEventListener("click",this.handleDocumentClick),document.removeEventListener("keydown",this.handleKeyDown),this.triggerStrategy==="hover"&&(this.triggerElement.removeEventListener("mouseleave",this.hideOnMouseLeaseTrigger),this.contentElement.removeEventListener("mouseleave",this.hideOnMouseLeave)),pe({element:this.contentElement,callback:()=>{var r,o;this.onToggleState(!0),this.popper.cleanupEvents(),(o=(r=this.options).onHide)==null||o.call(r)}}))}initInstance(){O({state:this.defaultState,popper:this.contentElement,trigger:this.triggerElement}),this.defaultState==="open"?this.show():O({state:"close",popper:this.contentElement,trigger:this.triggerElement}),this.triggerElement.addEventListener("click",this.toggleStateOnClick),this.triggerStrategy==="hover"&&this.triggerElement.addEventListener("mouseenter",this.showOnMouseEnter)}},P=(t,e=document.body)=>e.querySelector(t),S=(t,e=document.body)=>Array.from(e.querySelectorAll(t)),ge=t=>typeof t=="string"?P(t):t,fe=({containerElement:t,targetChildren:e="a:not([disabled]), button:not([disabled])",direction:n})=>{let i=!1,a=ge(t)||document.body,s=typeof e=="string"?S(e,a):e,r=o=>{if(o.preventDefault(),a.focus(),s.length===0)return;let h=o.key,c=document.activeElement,p=s.findIndex(g=>g===c);if(p===-1){h==="ArrowUp"||h==="ArrowLeft"?s[s.length-1].focus():s[0].focus();return}let f=g=>g>0?g-1:s.length-1,w=g=>g<s.length-1?g+1:0;switch(h){case"ArrowDown":o.preventDefault(),p=w(p);break;case"ArrowRight":break;case"ArrowUp":o.preventDefault(),p=f(p);break;case"ArrowLeft":break;case"Home":o.preventDefault(),p=0;break;case"End":o.preventDefault(),p=s.length-1;break;default:return}s[p]!==c&&s[p].focus()};return{make:()=>{i||(document.addEventListener("keydown",r),i=!0)},destroy:()=>{i&&(document.removeEventListener("keydown",r),i=!1)}}},U=(t,e,n)=>{let i=new CustomEvent(e,{detail:n});t.dispatchEvent(i)};function ue(t){let e=()=>{document.querySelector("[data-fx-component]:not([data-component-initialized])")?requestAnimationFrame(e):t()};e()}function ve(t,e,n="move"){if(!(t instanceof HTMLElement))throw new Error("Source element must be an HTMLElement");if(!(e instanceof HTMLElement))throw new Error("Target element must be an HTMLElement");if(!["move","detachable"].includes(n))throw new Error(`Invalid teleport mode: ${n}. Must be "move" or "detachable".`);let i=document.createComment("teleporter-placeholder"),a=t.parentNode;return a?a.insertBefore(i,t):console.warn("Element has no parent; placeholder not inserted."),n==="move"?(t.parentNode&&e.appendChild(t),{append(){t.parentNode!==e&&e.appendChild(t)},remove(){i!=null&&i.parentNode&&t.parentNode&&i.parentNode.insertBefore(t,i)},restore(){i!=null&&i.parentNode&&t.parentNode!==a&&i.parentNode.insertBefore(t,i)}}):(t.parentNode&&e.appendChild(t),{append(){e.contains(t)||e.appendChild(t)},remove(){t.parentNode&&t.remove()},restore(){i!=null&&i.parentNode&&!t.parentNode&&i.parentNode.insertBefore(t,i)}})}var u=class{static initGlobalRegistry(){window.$flexillaInstances||(window.$flexillaInstances={})}static register(e,n,i){return this.initGlobalRegistry(),window.$flexillaInstances[e]||(window.$flexillaInstances[e]=[]),this.getInstance(e,n)||(window.$flexillaInstances[e].push({element:n,instance:i}),i)}static getInstance(e,n){var i,a;return this.initGlobalRegistry(),(a=(i=window.$flexillaInstances[e])==null?void 0:i.find(s=>s.element===n))==null?void 0:a.instance}static removeInstance(e,n){this.initGlobalRegistry(),window.$flexillaInstances[e]&&(window.$flexillaInstances[e]=window.$flexillaInstances[e].filter(i=>i.element!==n))}static setup(e){e.setAttribute("data-fx-component","fx")}static initialized(e){e.setAttribute("data-component-initialized","initialized")}},Ee={teleport:!0,teleportMode:"move"},W=class j{constructor(e,n={}){l(this,"triggerElement"),l(this,"contentElement"),l(this,"items",[]),l(this,"options"),l(this,"OverlayInstance"),l(this,"navigationKeys"),l(this,"keyObserver"),l(this,"subtriggerObserver"),l(this,"triggerStrategy"),l(this,"placement"),l(this,"offsetDistance"),l(this,"preventFromCloseOutside"),l(this,"preventFromCloseInside"),l(this,"defaultState"),l(this,"experimentalOptions"),l(this,"teleporter"),l(this,"updateSubtriggerAttr",(r,o)=>{o==="add"?(r.setAttribute("data-current-subtrigger",""),r.setAttribute("data-focus","active")):(r.removeAttribute("data-current-subtrigger"),r.removeAttribute("data-focus"))}),l(this,"updateObserverFor",r=>{let o=S("[data-dropdown-trigger]",this.contentElement);for(let h of o)r.observe(h,{attributes:!0,attributeFilter:["aria-expanded"]})}),l(this,"observeEl",()=>{this.keyObserver=new MutationObserver(r=>{for(let o of r)o.type==="attributes"&&o.attributeName==="aria-expanded"&&(o.target.getAttribute("aria-expanded")==="true"?this.navigationKeys.destroy():this.contentElement.dataset.state==="open"&&this.navigationKeys.make())}),this.updateObserverFor(this.keyObserver)}),l(this,"observeSubtriggers",()=>{this.subtriggerObserver=new MutationObserver(r=>{for(let o of r)if(o.type==="attributes"&&o.attributeName==="aria-expanded"){let h=o.target,c=h.getAttribute("aria-expanded");this.updateSubtriggerAttr(h,c==="true"?"add":"remove")}}),this.updateObserverFor(this.subtriggerObserver)}),l(this,"onToggle",({isHidden:r})=>{var o,h;(h=(o=this.options).onToggle)==null||h.call(o,{isHidden:r})}),l(this,"moveElOnInit",()=>{this.experimentalOptions.teleport&&ue(()=>{this.experimentalOptions.teleportMode==="detachable"?this.teleporter.remove():this.teleporter.append()})}),l(this,"moveEl",()=>{this.experimentalOptions.teleport&&this.experimentalOptions.teleportMode==="detachable"&&this.teleporter.remove()}),l(this,"restoreEl",()=>{this.experimentalOptions.teleport&&this.experimentalOptions.teleportMode==="detachable"&&this.teleporter.append()}),l(this,"beforeShow",()=>{this.restoreEl(),this.contentElement.focus(),this.navigationKeys.make(),this.addArrowEvent()}),l(this,"beforeHide",()=>{this.contentElement.blur(),this.navigationKeys.destroy(),this.removeArrowEvent()}),l(this,"showHideOnArrow",r=>{r.preventDefault();let o=r.key,h=document.activeElement;if(h!=null&&h.hasAttribute("data-dropdown-trigger"))switch(o){case"ArrowRight":h.getAttribute("aria-expanded")!=="true"&&(h.click(),this.updateSubtriggerAttr(h,"add"));break;case"ArrowLeft":h.getAttribute("aria-expanded")==="true"&&(h.click(),this.updateSubtriggerAttr(h,"remove"));break;default:return}if(this.triggerElement.hasAttribute("data-current-subtrigger"))switch(o){case"ArrowLeft":this.triggerElement.click(),this.triggerElement.focus(),this.updateSubtriggerAttr(this.triggerElement,"remove");break;default:return}}),l(this,"addArrowEvent",()=>{document.addEventListener("keydown",this.showHideOnArrow)}),l(this,"removeArrowEvent",()=>{document.removeEventListener("keydown",this.showHideOnArrow)}),l(this,"onShow",()=>{var r,o;U(this.contentElement,"dropdown-show",{isHidden:!1}),(o=(r=this.options).onShow)==null||o.call(r),this.observeEl(),this.observeSubtriggers()}),l(this,"onHide",()=>{var r,o;U(this.contentElement,"dropdown-hide",{isHidden:!0}),(o=(r=this.options).onHide)==null||o.call(r),this.moveEl(),this.triggerElement.hasAttribute("data-current-subtrigger")&&this.updateSubtriggerAttr(this.triggerElement,"remove"),this.disconnectObserver()}),l(this,"show",()=>this.OverlayInstance.show()),l(this,"hide",()=>this.OverlayInstance.hide()),l(this,"setShowOptions",({placement:r,offsetDistance:o})=>{this.OverlayInstance.setShowOptions({placement:r,offsetDistance:o})}),l(this,"setOptions",({placement:r,offsetDistance:o})=>{this.OverlayInstance.setPopperOptions({placement:r,offsetDistance:o})}),l(this,"setPopperTrigger",(r,o)=>{this.OverlayInstance.setPopperTrigger(r,o)}),l(this,"disconnectObserver",()=>{this.keyObserver&&this.keyObserver.disconnect(),this.subtriggerObserver&&this.subtriggerObserver.disconnect()}),l(this,"cleanup",()=>{this.disconnectObserver(),this.OverlayInstance.cleanup(),u.removeInstance("dropdown",this.contentElement)});let i=typeof e=="string"?P(e):e;if(!(i instanceof HTMLElement))throw new Error("Invalid dropdown content element: Must provide either a valid HTMLElement or a selector string that resolves to an existing HTMLElement");if(!i.id)throw new Error("Dropdown content element must have an 'id' attribute for trigger association");this.contentElement=i;let a=u.getInstance("dropdown",this.contentElement);if(a)return a;u.setup(this.contentElement);let s=`[data-dropdown-trigger][data-dropdown-id=${this.contentElement.id}]`;if(this.triggerElement=P(s),!(this.triggerElement instanceof HTMLElement))throw new Error(`No valid trigger element found. Ensure a trigger element exists with attributes: data-dropdown-trigger and data-dropdown-id="${this.contentElement.id}"`);this.options=n,this.triggerStrategy=this.contentElement.dataset.triggerStrategy||this.options.triggerStrategy||"click",this.placement=this.contentElement.dataset.placement||this.options.placement||"bottom-start",this.offsetDistance=parseInt(`${this.contentElement.dataset.offsetDistance}`)||this.options.offsetDistance||6,this.preventFromCloseOutside=this.contentElement.hasAttribute("data-prevent-close-outside")||this.options.preventFromCloseOutside||!1,this.preventFromCloseInside=this.contentElement.hasAttribute("data-prevent-close-inside")||this.options.preventCloseFromInside||!1,this.defaultState=this.contentElement.dataset.defaultState||this.options.defaultState||"close",this.experimentalOptions=Object.assign({},Ee,n.experimental),this.teleporter=ve(this.contentElement,document.body,this.experimentalOptions.teleportMode),this.OverlayInstance=new F({trigger:this.triggerElement,content:this.contentElement,options:{placement:this.placement,offsetDistance:this.offsetDistance,triggerStrategy:this.triggerStrategy,preventFromCloseOutside:this.preventFromCloseOutside,preventCloseFromInside:this.preventFromCloseInside,defaultState:this.defaultState,beforeShow:this.beforeShow,beforeHide:()=>{if(S("[data-dropdown-trigger][aria-expanded=true]",this.contentElement).length>=1)return{cancelAction:!0};this.beforeHide()},onShow:this.onShow,onHide:this.onHide,onToggle:({isHidden:r})=>{this.onToggle({isHidden:r})},popper:this.options.popper}}),this.moveElOnInit(),this.items=S("a:not([disabled]), button:not([disabled])",this.contentElement),this.navigationKeys=fe({containerElement:this.contentElement,targetChildren:this.items,direction:"up-down"}),u.register("dropdown",this.contentElement,this),u.initialized(this.contentElement)}static init(e,n={}){new j(e,n)}};l(W,"autoInit",(t="[data-fx-dropdown]")=>{let e=S(t);for(let n of e)new W(n)});var q=W;function we(t){t.directive("dropdown",(e,{},{cleanup:n})=>{let i=new q(e);n(()=>{i.cleanup()})})}var B=we;document.addEventListener("alpine:init",()=>{B(window.Alpine)});})();
@@ -27,9 +27,9 @@ module.exports = __toCommonJS(module_exports);
27
27
  var B = Object.defineProperty;
28
28
  var j = (i, e, t) => e in i ? B(i, e, { enumerable: true, configurable: true, writable: true, value: t }) : i[e] = t;
29
29
  var a = (i, e, t) => j(i, typeof e != "symbol" ? e + "" : e, t);
30
- var G = Object.defineProperty;
31
- var q = (i, e, t) => e in i ? G(i, e, { enumerable: true, configurable: true, writable: true, value: t }) : i[e] = t;
32
- var p = (i, e, t) => q(i, typeof e != "symbol" ? e + "" : e, t);
30
+ var q = Object.defineProperty;
31
+ var G = (i, e, t) => e in i ? q(i, e, { enumerable: true, configurable: true, writable: true, value: t }) : i[e] = t;
32
+ var p = (i, e, t) => G(i, typeof e != "symbol" ? e + "" : e, t);
33
33
  var V = "bottom";
34
34
  var X = ({ reference: i, popper: e }) => {
35
35
  if (!i || !e)
@@ -84,33 +84,33 @@ var ie = ({
84
84
  s,
85
85
  m,
86
86
  e
87
- ), H = () => Y(s, e, n, m) ? n + e / 2 - s / 2 : b(), M = () => J(o, r, t, l) ? t + r / 2 - o / 2 : w(), A = () => n + s <= m ? n : b(), k = () => n + e - s >= 0 ? n + e - s : b(), L = () => t + o <= l ? t : w(), U = () => t + r - o >= 0 ? t + r - o : w();
87
+ ), M = () => Y(s, e, n, m) ? n + e / 2 - s / 2 : b(), A = () => J(o, r, t, l) ? t + r / 2 - o / 2 : w(), C = () => n + s <= m ? n : b(), L = () => n + e - s >= 0 ? n + e - s : b(), x = () => t + o <= l ? t : w(), U = () => t + r - o >= 0 ? t + r - o : w();
88
88
  let u = 0, v = 0;
89
- const C = t - o - c, x = t + r + c, I = n - s - c, D = n + e + c, W = g >= o + c, F = E >= o + c, R = f >= s + c, $ = d >= s + c;
90
- switch (i.startsWith("top") ? v = W ? C : F ? x : Math.max(C, x) : i.startsWith("bottom") ? v = F ? x : W ? C : Math.max(x) : i.startsWith("left") ? u = R ? I : $ ? D : Math.max(I, D) : i.startsWith("right") && (u = $ ? D : R ? I : Math.max(D, I)), i) {
89
+ const T = t - o - c, I = t + r + c, D = n - s - c, H = n + e + c, P = g >= o + c, W = E >= o + c, R = f >= s + c, $ = d >= s + c;
90
+ switch (i.startsWith("top") ? v = P ? T : W ? I : Math.max(T, I) : i.startsWith("bottom") ? v = W ? I : P ? T : Math.max(I) : i.startsWith("left") ? u = R ? D : $ ? H : Math.max(D, H) : i.startsWith("right") && (u = $ ? H : R ? D : Math.max(H, D)), i) {
91
91
  case "bottom":
92
92
  case "bottom-middle":
93
93
  case "top":
94
94
  case "top-middle":
95
- u = H();
95
+ u = M();
96
96
  break;
97
97
  case "left":
98
98
  case "left-middle":
99
99
  case "right":
100
100
  case "right-middle":
101
- v = M();
101
+ v = A();
102
102
  break;
103
103
  case "bottom-start":
104
104
  case "top-start":
105
- u = A();
105
+ u = C();
106
106
  break;
107
107
  case "bottom-end":
108
108
  case "top-end":
109
- u = k();
109
+ u = L();
110
110
  break;
111
111
  case "left-start":
112
112
  case "right-start":
113
- v = L();
113
+ v = x();
114
114
  break;
115
115
  case "left-end":
116
116
  case "right-end":
@@ -153,12 +153,12 @@ var se = class {
153
153
  }), p(this, "initPlacement", () => {
154
154
  var d;
155
155
  this.validateElements(), this.setInitialStyles();
156
- const f = window.innerWidth, E = window.innerHeight, { popperHeight: g, popperWidth: w, refHeight: b, refWidth: H, refLeft: M, refTop: A } = X({ reference: this.reference, popper: this.popper }), { x: k, y: L } = ie(
156
+ const f = window.innerWidth, E = window.innerHeight, { popperHeight: g, popperWidth: w, refHeight: b, refWidth: M, refLeft: A, refTop: C } = X({ reference: this.reference, popper: this.popper }), { x: L, y: x } = ie(
157
157
  {
158
158
  placement: this.placement,
159
- refWidth: H,
160
- refTop: A,
161
- refLeft: M,
159
+ refWidth: M,
160
+ refTop: C,
161
+ refLeft: A,
162
162
  popperWidth: w,
163
163
  refHeight: b,
164
164
  popperHeight: g,
@@ -167,7 +167,7 @@ var se = class {
167
167
  offsetDistance: this.offsetDistance
168
168
  }
169
169
  );
170
- this.setPopperStyleProperty(k, L), (d = this.onUpdate) == null || d.call(this, { x: k, y: L, placement: this.placement });
170
+ this.setPopperStyleProperty(L, x), (d = this.onUpdate) == null || d.call(this, { x: L, y: x, placement: this.placement });
171
171
  }), p(this, "removeWindowEvents", () => {
172
172
  this.isWindowEventsRegistered && (!this.disableOnResize && window.removeEventListener("resize", this.updatePosition), !this.disableOnScroll && window.removeEventListener("scroll", this.updatePosition), this.isWindowEventsRegistered = false);
173
173
  }), p(this, "attachWindowEvent", () => {
@@ -369,12 +369,12 @@ var ce = class {
369
369
  }), this.triggerElement.addEventListener("click", this.toggleStateOnClick), this.triggerStrategy === "hover" && this.triggerElement.addEventListener("mouseenter", this.showOnMouseEnter);
370
370
  }
371
371
  };
372
- var P = (i, e = document.body) => e.querySelector(i);
373
- var O = (i, e = document.body) => Array.from(e.querySelectorAll(i));
374
- var pe = (i) => typeof i == "string" ? P(i) : i;
372
+ var F = (i, e = document.body) => e.querySelector(i);
373
+ var S = (i, e = document.body) => Array.from(e.querySelectorAll(i));
374
+ var pe = (i) => typeof i == "string" ? F(i) : i;
375
375
  var me = ({ containerElement: i, targetChildren: e = "a:not([disabled]), button:not([disabled])", direction: t }) => {
376
376
  let n = false;
377
- const r = pe(i) || document.body, s = typeof e == "string" ? O(e, r) : e, o = (l) => {
377
+ const r = pe(i) || document.body, s = typeof e == "string" ? S(e, r) : e, o = (l) => {
378
378
  if (l.preventDefault(), r.focus(), s.length === 0)
379
379
  return;
380
380
  const m = l.key, c = document.activeElement;
@@ -415,11 +415,19 @@ var me = ({ containerElement: i, targetChildren: e = "a:not([disabled]), button:
415
415
  }
416
416
  };
417
417
  };
418
- var K = (i, e, t) => {
418
+ var z = (i, e, t) => {
419
419
  const n = new CustomEvent(e, { detail: t });
420
420
  i.dispatchEvent(n);
421
421
  };
422
- function ge(i, e, t = "move") {
422
+ function ge(i) {
423
+ const e = () => {
424
+ document.querySelector(
425
+ "[data-fx-component]:not([data-component-initialized])"
426
+ ) ? requestAnimationFrame(e) : i();
427
+ };
428
+ e();
429
+ }
430
+ function fe(i, e, t = "move") {
423
431
  if (!(i instanceof HTMLElement))
424
432
  throw new Error("Source element must be an HTMLElement");
425
433
  if (!(e instanceof HTMLElement))
@@ -450,7 +458,7 @@ function ge(i, e, t = "move") {
450
458
  }
451
459
  });
452
460
  }
453
- var T = class {
461
+ var O = class {
454
462
  static initGlobalRegistry() {
455
463
  window.$flexillaInstances || (window.$flexillaInstances = {});
456
464
  }
@@ -468,12 +476,18 @@ var T = class {
468
476
  (n) => n.element !== t
469
477
  ));
470
478
  }
479
+ static setup(e) {
480
+ e.setAttribute("data-fx-component", "fx");
481
+ }
482
+ static initialized(e) {
483
+ e.setAttribute("data-component-initialized", "initialized");
484
+ }
471
485
  };
472
- var fe = {
486
+ var ue = {
473
487
  teleport: true,
474
488
  teleportMode: "move"
475
489
  };
476
- var S = class S2 {
490
+ var k = class k2 {
477
491
  /**
478
492
  * Creates a new Dropdown instance
479
493
  * @param dropdown - The dropdown content element or selector
@@ -501,7 +515,7 @@ var S = class S2 {
501
515
  t2 === "add" ? (e2.setAttribute("data-current-subtrigger", ""), e2.setAttribute("data-focus", "active")) : (e2.removeAttribute("data-current-subtrigger"), e2.removeAttribute("data-focus"));
502
516
  });
503
517
  a(this, "updateObserverFor", (e2) => {
504
- const t2 = O("[data-dropdown-trigger]", this.contentElement);
518
+ const t2 = S("[data-dropdown-trigger]", this.contentElement);
505
519
  for (const n2 of t2)
506
520
  e2.observe(n2, {
507
521
  attributes: true,
@@ -528,7 +542,9 @@ var S = class S2 {
528
542
  (n2 = (t2 = this.options).onToggle) == null || n2.call(t2, { isHidden: e2 });
529
543
  });
530
544
  a(this, "moveElOnInit", () => {
531
- this.experimentalOptions.teleport && (this.experimentalOptions.teleportMode === "detachable" ? this.teleporter.remove() : this.teleporter.append());
545
+ this.experimentalOptions.teleport && ge(() => {
546
+ this.experimentalOptions.teleportMode === "detachable" ? this.teleporter.remove() : this.teleporter.append();
547
+ });
532
548
  });
533
549
  a(this, "moveEl", () => {
534
550
  this.experimentalOptions.teleport && this.experimentalOptions.teleportMode === "detachable" && this.teleporter.remove();
@@ -573,13 +589,13 @@ var S = class S2 {
573
589
  });
574
590
  a(this, "onShow", () => {
575
591
  var e2, t2;
576
- K(this.contentElement, "dropdown-show", {
592
+ z(this.contentElement, "dropdown-show", {
577
593
  isHidden: false
578
594
  }), (t2 = (e2 = this.options).onShow) == null || t2.call(e2), this.observeEl(), this.observeSubtriggers();
579
595
  });
580
596
  a(this, "onHide", () => {
581
597
  var e2, t2;
582
- K(this.contentElement, "dropdown-hide", {
598
+ z(this.contentElement, "dropdown-hide", {
583
599
  isHidden: true
584
600
  }), (t2 = (e2 = this.options).onHide) == null || t2.call(e2), this.moveEl(), this.triggerElement.hasAttribute("data-current-subtrigger") && this.updateSubtriggerAttr(this.triggerElement, "remove"), this.disconnectObserver();
585
601
  });
@@ -598,9 +614,9 @@ var S = class S2 {
598
614
  this.keyObserver && this.keyObserver.disconnect(), this.subtriggerObserver && this.subtriggerObserver.disconnect();
599
615
  });
600
616
  a(this, "cleanup", () => {
601
- this.disconnectObserver(), this.OverlayInstance.cleanup(), T.removeInstance("dropdown", this.contentElement);
617
+ this.disconnectObserver(), this.OverlayInstance.cleanup(), O.removeInstance("dropdown", this.contentElement);
602
618
  });
603
- const n = typeof e == "string" ? P(e) : e;
619
+ const n = typeof e == "string" ? F(e) : e;
604
620
  if (!(n instanceof HTMLElement))
605
621
  throw new Error(
606
622
  "Invalid dropdown content element: Must provide either a valid HTMLElement or a selector string that resolves to an existing HTMLElement"
@@ -608,13 +624,14 @@ var S = class S2 {
608
624
  if (!n.id)
609
625
  throw new Error("Dropdown content element must have an 'id' attribute for trigger association");
610
626
  this.contentElement = n;
611
- const r = T.getInstance("dropdown", this.contentElement);
627
+ const r = O.getInstance("dropdown", this.contentElement);
612
628
  if (r)
613
629
  return r;
630
+ O.setup(this.contentElement);
614
631
  const s = `[data-dropdown-trigger][data-dropdown-id=${this.contentElement.id}]`;
615
- if (this.triggerElement = P(s), !(this.triggerElement instanceof HTMLElement))
632
+ if (this.triggerElement = F(s), !(this.triggerElement instanceof HTMLElement))
616
633
  throw new Error(`No valid trigger element found. Ensure a trigger element exists with attributes: data-dropdown-trigger and data-dropdown-id="${this.contentElement.id}"`);
617
- this.options = t, this.triggerStrategy = this.contentElement.dataset.triggerStrategy || this.options.triggerStrategy || "click", this.placement = this.contentElement.dataset.placement || this.options.placement || "bottom-start", this.offsetDistance = parseInt(`${this.contentElement.dataset.offsetDistance}`) || this.options.offsetDistance || 6, this.preventFromCloseOutside = this.contentElement.hasAttribute("data-prevent-close-outside") || this.options.preventFromCloseOutside || false, this.preventFromCloseInside = this.contentElement.hasAttribute("data-prevent-close-inside") || this.options.preventCloseFromInside || false, this.defaultState = this.contentElement.dataset.defaultState || this.options.defaultState || "close", this.experimentalOptions = Object.assign({}, fe, t.experimental), this.teleporter = ge(this.contentElement, document.body, this.experimentalOptions.teleportMode), this.OverlayInstance = new ce({
634
+ this.options = t, this.triggerStrategy = this.contentElement.dataset.triggerStrategy || this.options.triggerStrategy || "click", this.placement = this.contentElement.dataset.placement || this.options.placement || "bottom-start", this.offsetDistance = parseInt(`${this.contentElement.dataset.offsetDistance}`) || this.options.offsetDistance || 6, this.preventFromCloseOutside = this.contentElement.hasAttribute("data-prevent-close-outside") || this.options.preventFromCloseOutside || false, this.preventFromCloseInside = this.contentElement.hasAttribute("data-prevent-close-inside") || this.options.preventCloseFromInside || false, this.defaultState = this.contentElement.dataset.defaultState || this.options.defaultState || "close", this.experimentalOptions = Object.assign({}, ue, t.experimental), this.teleporter = fe(this.contentElement, document.body, this.experimentalOptions.teleportMode), this.OverlayInstance = new ce({
618
635
  trigger: this.triggerElement,
619
636
  content: this.contentElement,
620
637
  options: {
@@ -626,7 +643,7 @@ var S = class S2 {
626
643
  defaultState: this.defaultState,
627
644
  beforeShow: this.beforeShow,
628
645
  beforeHide: () => {
629
- if (O("[data-dropdown-trigger][aria-expanded=true]", this.contentElement).length >= 1)
646
+ if (S("[data-dropdown-trigger][aria-expanded=true]", this.contentElement).length >= 1)
630
647
  return { cancelAction: true };
631
648
  this.beforeHide();
632
649
  },
@@ -637,11 +654,11 @@ var S = class S2 {
637
654
  },
638
655
  popper: this.options.popper
639
656
  }
640
- }), this.moveElOnInit(), this.items = O("a:not([disabled]), button:not([disabled])", this.contentElement), this.navigationKeys = me({
657
+ }), this.moveElOnInit(), this.items = S("a:not([disabled]), button:not([disabled])", this.contentElement), this.navigationKeys = me({
641
658
  containerElement: this.contentElement,
642
659
  targetChildren: this.items,
643
660
  direction: "up-down"
644
- }), T.register("dropdown", this.contentElement, this);
661
+ }), O.register("dropdown", this.contentElement, this), O.initialized(this.contentElement);
645
662
  }
646
663
  /**
647
664
  * Initializes a single dropdown instance
@@ -650,20 +667,20 @@ var S = class S2 {
650
667
  * @returns A new Dropdown instance
651
668
  */
652
669
  static init(e, t = {}) {
653
- new S2(e, t);
670
+ new k2(e, t);
654
671
  }
655
672
  };
656
- a(S, "autoInit", (e = "[data-fx-dropdown]") => {
657
- const t = O(e);
673
+ a(k, "autoInit", (e = "[data-fx-dropdown]") => {
674
+ const t = S(e);
658
675
  for (const n of t)
659
- new S(n);
676
+ new k(n);
660
677
  });
661
- var z = S;
678
+ var K = k;
662
679
 
663
680
  // src/index.js
664
681
  function Dropdown(Alpine) {
665
682
  Alpine.directive("dropdown", (el, {}, { cleanup }) => {
666
- const dropdown_ = new z(el);
683
+ const dropdown_ = new K(el);
667
684
  cleanup(() => {
668
685
  dropdown_.cleanup();
669
686
  });
@@ -2,9 +2,9 @@
2
2
  var B = Object.defineProperty;
3
3
  var j = (i, e, t) => e in i ? B(i, e, { enumerable: true, configurable: true, writable: true, value: t }) : i[e] = t;
4
4
  var a = (i, e, t) => j(i, typeof e != "symbol" ? e + "" : e, t);
5
- var G = Object.defineProperty;
6
- var q = (i, e, t) => e in i ? G(i, e, { enumerable: true, configurable: true, writable: true, value: t }) : i[e] = t;
7
- var p = (i, e, t) => q(i, typeof e != "symbol" ? e + "" : e, t);
5
+ var q = Object.defineProperty;
6
+ var G = (i, e, t) => e in i ? q(i, e, { enumerable: true, configurable: true, writable: true, value: t }) : i[e] = t;
7
+ var p = (i, e, t) => G(i, typeof e != "symbol" ? e + "" : e, t);
8
8
  var V = "bottom";
9
9
  var X = ({ reference: i, popper: e }) => {
10
10
  if (!i || !e)
@@ -59,33 +59,33 @@ var ie = ({
59
59
  s,
60
60
  m,
61
61
  e
62
- ), H = () => Y(s, e, n, m) ? n + e / 2 - s / 2 : b(), M = () => J(o, r, t, l) ? t + r / 2 - o / 2 : w(), A = () => n + s <= m ? n : b(), k = () => n + e - s >= 0 ? n + e - s : b(), L = () => t + o <= l ? t : w(), U = () => t + r - o >= 0 ? t + r - o : w();
62
+ ), M = () => Y(s, e, n, m) ? n + e / 2 - s / 2 : b(), A = () => J(o, r, t, l) ? t + r / 2 - o / 2 : w(), C = () => n + s <= m ? n : b(), L = () => n + e - s >= 0 ? n + e - s : b(), x = () => t + o <= l ? t : w(), U = () => t + r - o >= 0 ? t + r - o : w();
63
63
  let u = 0, v = 0;
64
- const C = t - o - c, x = t + r + c, I = n - s - c, D = n + e + c, W = g >= o + c, F = E >= o + c, R = f >= s + c, $ = d >= s + c;
65
- switch (i.startsWith("top") ? v = W ? C : F ? x : Math.max(C, x) : i.startsWith("bottom") ? v = F ? x : W ? C : Math.max(x) : i.startsWith("left") ? u = R ? I : $ ? D : Math.max(I, D) : i.startsWith("right") && (u = $ ? D : R ? I : Math.max(D, I)), i) {
64
+ const T = t - o - c, I = t + r + c, D = n - s - c, H = n + e + c, P = g >= o + c, W = E >= o + c, R = f >= s + c, $ = d >= s + c;
65
+ switch (i.startsWith("top") ? v = P ? T : W ? I : Math.max(T, I) : i.startsWith("bottom") ? v = W ? I : P ? T : Math.max(I) : i.startsWith("left") ? u = R ? D : $ ? H : Math.max(D, H) : i.startsWith("right") && (u = $ ? H : R ? D : Math.max(H, D)), i) {
66
66
  case "bottom":
67
67
  case "bottom-middle":
68
68
  case "top":
69
69
  case "top-middle":
70
- u = H();
70
+ u = M();
71
71
  break;
72
72
  case "left":
73
73
  case "left-middle":
74
74
  case "right":
75
75
  case "right-middle":
76
- v = M();
76
+ v = A();
77
77
  break;
78
78
  case "bottom-start":
79
79
  case "top-start":
80
- u = A();
80
+ u = C();
81
81
  break;
82
82
  case "bottom-end":
83
83
  case "top-end":
84
- u = k();
84
+ u = L();
85
85
  break;
86
86
  case "left-start":
87
87
  case "right-start":
88
- v = L();
88
+ v = x();
89
89
  break;
90
90
  case "left-end":
91
91
  case "right-end":
@@ -128,12 +128,12 @@ var se = class {
128
128
  }), p(this, "initPlacement", () => {
129
129
  var d;
130
130
  this.validateElements(), this.setInitialStyles();
131
- const f = window.innerWidth, E = window.innerHeight, { popperHeight: g, popperWidth: w, refHeight: b, refWidth: H, refLeft: M, refTop: A } = X({ reference: this.reference, popper: this.popper }), { x: k, y: L } = ie(
131
+ const f = window.innerWidth, E = window.innerHeight, { popperHeight: g, popperWidth: w, refHeight: b, refWidth: M, refLeft: A, refTop: C } = X({ reference: this.reference, popper: this.popper }), { x: L, y: x } = ie(
132
132
  {
133
133
  placement: this.placement,
134
- refWidth: H,
135
- refTop: A,
136
- refLeft: M,
134
+ refWidth: M,
135
+ refTop: C,
136
+ refLeft: A,
137
137
  popperWidth: w,
138
138
  refHeight: b,
139
139
  popperHeight: g,
@@ -142,7 +142,7 @@ var se = class {
142
142
  offsetDistance: this.offsetDistance
143
143
  }
144
144
  );
145
- this.setPopperStyleProperty(k, L), (d = this.onUpdate) == null || d.call(this, { x: k, y: L, placement: this.placement });
145
+ this.setPopperStyleProperty(L, x), (d = this.onUpdate) == null || d.call(this, { x: L, y: x, placement: this.placement });
146
146
  }), p(this, "removeWindowEvents", () => {
147
147
  this.isWindowEventsRegistered && (!this.disableOnResize && window.removeEventListener("resize", this.updatePosition), !this.disableOnScroll && window.removeEventListener("scroll", this.updatePosition), this.isWindowEventsRegistered = false);
148
148
  }), p(this, "attachWindowEvent", () => {
@@ -344,12 +344,12 @@ var ce = class {
344
344
  }), this.triggerElement.addEventListener("click", this.toggleStateOnClick), this.triggerStrategy === "hover" && this.triggerElement.addEventListener("mouseenter", this.showOnMouseEnter);
345
345
  }
346
346
  };
347
- var P = (i, e = document.body) => e.querySelector(i);
348
- var O = (i, e = document.body) => Array.from(e.querySelectorAll(i));
349
- var pe = (i) => typeof i == "string" ? P(i) : i;
347
+ var F = (i, e = document.body) => e.querySelector(i);
348
+ var S = (i, e = document.body) => Array.from(e.querySelectorAll(i));
349
+ var pe = (i) => typeof i == "string" ? F(i) : i;
350
350
  var me = ({ containerElement: i, targetChildren: e = "a:not([disabled]), button:not([disabled])", direction: t }) => {
351
351
  let n = false;
352
- const r = pe(i) || document.body, s = typeof e == "string" ? O(e, r) : e, o = (l) => {
352
+ const r = pe(i) || document.body, s = typeof e == "string" ? S(e, r) : e, o = (l) => {
353
353
  if (l.preventDefault(), r.focus(), s.length === 0)
354
354
  return;
355
355
  const m = l.key, c = document.activeElement;
@@ -390,11 +390,19 @@ var me = ({ containerElement: i, targetChildren: e = "a:not([disabled]), button:
390
390
  }
391
391
  };
392
392
  };
393
- var K = (i, e, t) => {
393
+ var z = (i, e, t) => {
394
394
  const n = new CustomEvent(e, { detail: t });
395
395
  i.dispatchEvent(n);
396
396
  };
397
- function ge(i, e, t = "move") {
397
+ function ge(i) {
398
+ const e = () => {
399
+ document.querySelector(
400
+ "[data-fx-component]:not([data-component-initialized])"
401
+ ) ? requestAnimationFrame(e) : i();
402
+ };
403
+ e();
404
+ }
405
+ function fe(i, e, t = "move") {
398
406
  if (!(i instanceof HTMLElement))
399
407
  throw new Error("Source element must be an HTMLElement");
400
408
  if (!(e instanceof HTMLElement))
@@ -425,7 +433,7 @@ function ge(i, e, t = "move") {
425
433
  }
426
434
  });
427
435
  }
428
- var T = class {
436
+ var O = class {
429
437
  static initGlobalRegistry() {
430
438
  window.$flexillaInstances || (window.$flexillaInstances = {});
431
439
  }
@@ -443,12 +451,18 @@ var T = class {
443
451
  (n) => n.element !== t
444
452
  ));
445
453
  }
454
+ static setup(e) {
455
+ e.setAttribute("data-fx-component", "fx");
456
+ }
457
+ static initialized(e) {
458
+ e.setAttribute("data-component-initialized", "initialized");
459
+ }
446
460
  };
447
- var fe = {
461
+ var ue = {
448
462
  teleport: true,
449
463
  teleportMode: "move"
450
464
  };
451
- var S = class S2 {
465
+ var k = class k2 {
452
466
  /**
453
467
  * Creates a new Dropdown instance
454
468
  * @param dropdown - The dropdown content element or selector
@@ -476,7 +490,7 @@ var S = class S2 {
476
490
  t2 === "add" ? (e2.setAttribute("data-current-subtrigger", ""), e2.setAttribute("data-focus", "active")) : (e2.removeAttribute("data-current-subtrigger"), e2.removeAttribute("data-focus"));
477
491
  });
478
492
  a(this, "updateObserverFor", (e2) => {
479
- const t2 = O("[data-dropdown-trigger]", this.contentElement);
493
+ const t2 = S("[data-dropdown-trigger]", this.contentElement);
480
494
  for (const n2 of t2)
481
495
  e2.observe(n2, {
482
496
  attributes: true,
@@ -503,7 +517,9 @@ var S = class S2 {
503
517
  (n2 = (t2 = this.options).onToggle) == null || n2.call(t2, { isHidden: e2 });
504
518
  });
505
519
  a(this, "moveElOnInit", () => {
506
- this.experimentalOptions.teleport && (this.experimentalOptions.teleportMode === "detachable" ? this.teleporter.remove() : this.teleporter.append());
520
+ this.experimentalOptions.teleport && ge(() => {
521
+ this.experimentalOptions.teleportMode === "detachable" ? this.teleporter.remove() : this.teleporter.append();
522
+ });
507
523
  });
508
524
  a(this, "moveEl", () => {
509
525
  this.experimentalOptions.teleport && this.experimentalOptions.teleportMode === "detachable" && this.teleporter.remove();
@@ -548,13 +564,13 @@ var S = class S2 {
548
564
  });
549
565
  a(this, "onShow", () => {
550
566
  var e2, t2;
551
- K(this.contentElement, "dropdown-show", {
567
+ z(this.contentElement, "dropdown-show", {
552
568
  isHidden: false
553
569
  }), (t2 = (e2 = this.options).onShow) == null || t2.call(e2), this.observeEl(), this.observeSubtriggers();
554
570
  });
555
571
  a(this, "onHide", () => {
556
572
  var e2, t2;
557
- K(this.contentElement, "dropdown-hide", {
573
+ z(this.contentElement, "dropdown-hide", {
558
574
  isHidden: true
559
575
  }), (t2 = (e2 = this.options).onHide) == null || t2.call(e2), this.moveEl(), this.triggerElement.hasAttribute("data-current-subtrigger") && this.updateSubtriggerAttr(this.triggerElement, "remove"), this.disconnectObserver();
560
576
  });
@@ -573,9 +589,9 @@ var S = class S2 {
573
589
  this.keyObserver && this.keyObserver.disconnect(), this.subtriggerObserver && this.subtriggerObserver.disconnect();
574
590
  });
575
591
  a(this, "cleanup", () => {
576
- this.disconnectObserver(), this.OverlayInstance.cleanup(), T.removeInstance("dropdown", this.contentElement);
592
+ this.disconnectObserver(), this.OverlayInstance.cleanup(), O.removeInstance("dropdown", this.contentElement);
577
593
  });
578
- const n = typeof e == "string" ? P(e) : e;
594
+ const n = typeof e == "string" ? F(e) : e;
579
595
  if (!(n instanceof HTMLElement))
580
596
  throw new Error(
581
597
  "Invalid dropdown content element: Must provide either a valid HTMLElement or a selector string that resolves to an existing HTMLElement"
@@ -583,13 +599,14 @@ var S = class S2 {
583
599
  if (!n.id)
584
600
  throw new Error("Dropdown content element must have an 'id' attribute for trigger association");
585
601
  this.contentElement = n;
586
- const r = T.getInstance("dropdown", this.contentElement);
602
+ const r = O.getInstance("dropdown", this.contentElement);
587
603
  if (r)
588
604
  return r;
605
+ O.setup(this.contentElement);
589
606
  const s = `[data-dropdown-trigger][data-dropdown-id=${this.contentElement.id}]`;
590
- if (this.triggerElement = P(s), !(this.triggerElement instanceof HTMLElement))
607
+ if (this.triggerElement = F(s), !(this.triggerElement instanceof HTMLElement))
591
608
  throw new Error(`No valid trigger element found. Ensure a trigger element exists with attributes: data-dropdown-trigger and data-dropdown-id="${this.contentElement.id}"`);
592
- this.options = t, this.triggerStrategy = this.contentElement.dataset.triggerStrategy || this.options.triggerStrategy || "click", this.placement = this.contentElement.dataset.placement || this.options.placement || "bottom-start", this.offsetDistance = parseInt(`${this.contentElement.dataset.offsetDistance}`) || this.options.offsetDistance || 6, this.preventFromCloseOutside = this.contentElement.hasAttribute("data-prevent-close-outside") || this.options.preventFromCloseOutside || false, this.preventFromCloseInside = this.contentElement.hasAttribute("data-prevent-close-inside") || this.options.preventCloseFromInside || false, this.defaultState = this.contentElement.dataset.defaultState || this.options.defaultState || "close", this.experimentalOptions = Object.assign({}, fe, t.experimental), this.teleporter = ge(this.contentElement, document.body, this.experimentalOptions.teleportMode), this.OverlayInstance = new ce({
609
+ this.options = t, this.triggerStrategy = this.contentElement.dataset.triggerStrategy || this.options.triggerStrategy || "click", this.placement = this.contentElement.dataset.placement || this.options.placement || "bottom-start", this.offsetDistance = parseInt(`${this.contentElement.dataset.offsetDistance}`) || this.options.offsetDistance || 6, this.preventFromCloseOutside = this.contentElement.hasAttribute("data-prevent-close-outside") || this.options.preventFromCloseOutside || false, this.preventFromCloseInside = this.contentElement.hasAttribute("data-prevent-close-inside") || this.options.preventCloseFromInside || false, this.defaultState = this.contentElement.dataset.defaultState || this.options.defaultState || "close", this.experimentalOptions = Object.assign({}, ue, t.experimental), this.teleporter = fe(this.contentElement, document.body, this.experimentalOptions.teleportMode), this.OverlayInstance = new ce({
593
610
  trigger: this.triggerElement,
594
611
  content: this.contentElement,
595
612
  options: {
@@ -601,7 +618,7 @@ var S = class S2 {
601
618
  defaultState: this.defaultState,
602
619
  beforeShow: this.beforeShow,
603
620
  beforeHide: () => {
604
- if (O("[data-dropdown-trigger][aria-expanded=true]", this.contentElement).length >= 1)
621
+ if (S("[data-dropdown-trigger][aria-expanded=true]", this.contentElement).length >= 1)
605
622
  return { cancelAction: true };
606
623
  this.beforeHide();
607
624
  },
@@ -612,11 +629,11 @@ var S = class S2 {
612
629
  },
613
630
  popper: this.options.popper
614
631
  }
615
- }), this.moveElOnInit(), this.items = O("a:not([disabled]), button:not([disabled])", this.contentElement), this.navigationKeys = me({
632
+ }), this.moveElOnInit(), this.items = S("a:not([disabled]), button:not([disabled])", this.contentElement), this.navigationKeys = me({
616
633
  containerElement: this.contentElement,
617
634
  targetChildren: this.items,
618
635
  direction: "up-down"
619
- }), T.register("dropdown", this.contentElement, this);
636
+ }), O.register("dropdown", this.contentElement, this), O.initialized(this.contentElement);
620
637
  }
621
638
  /**
622
639
  * Initializes a single dropdown instance
@@ -625,20 +642,20 @@ var S = class S2 {
625
642
  * @returns A new Dropdown instance
626
643
  */
627
644
  static init(e, t = {}) {
628
- new S2(e, t);
645
+ new k2(e, t);
629
646
  }
630
647
  };
631
- a(S, "autoInit", (e = "[data-fx-dropdown]") => {
632
- const t = O(e);
648
+ a(k, "autoInit", (e = "[data-fx-dropdown]") => {
649
+ const t = S(e);
633
650
  for (const n of t)
634
- new S(n);
651
+ new k(n);
635
652
  });
636
- var z = S;
653
+ var K = k;
637
654
 
638
655
  // src/index.js
639
656
  function Dropdown(Alpine) {
640
657
  Alpine.directive("dropdown", (el, {}, { cleanup }) => {
641
- const dropdown_ = new z(el);
658
+ const dropdown_ = new K(el);
642
659
  cleanup(() => {
643
660
  dropdown_.cleanup();
644
661
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@flexilla/alpine-dropdown",
3
- "version": "0.2.0",
3
+ "version": "0.3.0",
4
4
  "description": "AlpineJS plugin for adding Dropdown functionality to your AlpineJS components",
5
5
  "type": "module",
6
6
  "private": false,
@@ -60,7 +60,7 @@
60
60
  "Flexilla"
61
61
  ],
62
62
  "dependencies": {
63
- "@flexilla/dropdown": "^2.2.3"
63
+ "@flexilla/dropdown": "^2.2.6"
64
64
  },
65
- "gitHead": "869394b528d21d4842486a7396449aa9fbe3cbcb"
65
+ "gitHead": "9ac916234e8bb129724224819f3b59420b34081f"
66
66
  }