@flexilla/alpine-popover 0.3.0 → 0.3.1

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
@@ -1,13 +1,13 @@
1
1
  (() => {
2
2
  // ../../node_modules/@flexilla/popover/dist/popover.js
3
- var B = Object.defineProperty;
4
- var j = (n, e, t) => e in n ? B(n, e, { enumerable: true, configurable: true, writable: true, value: t }) : n[e] = t;
5
- var a = (n, e, t) => j(n, typeof e != "symbol" ? e + "" : e, t);
6
3
  var q = Object.defineProperty;
7
4
  var G = (n, e, t) => e in n ? q(n, e, { enumerable: true, configurable: true, writable: true, value: t }) : n[e] = t;
8
- var p = (n, e, t) => G(n, typeof e != "symbol" ? e + "" : e, t);
9
- var U = "bottom";
10
- var K = ({ reference: n, popper: e }) => {
5
+ var a = (n, e, t) => G(n, typeof e != "symbol" ? e + "" : e, t);
6
+ var U = Object.defineProperty;
7
+ var K = (n, e, t) => e in n ? U(n, e, { enumerable: true, configurable: true, writable: true, value: t }) : n[e] = t;
8
+ var p = (n, e, t) => K(n, typeof e != "symbol" ? e + "" : e, t);
9
+ var V = "bottom";
10
+ var X = ({ reference: n, popper: e }) => {
11
11
  if (!n || !e)
12
12
  throw new Error("Reference or popper element is null or undefined");
13
13
  const t = /* @__PURE__ */ new WeakMap(), i = (r) => (t.has(r) || t.set(r, r.getBoundingClientRect()), t.get(r)), o = i(e), s = i(n);
@@ -21,21 +21,21 @@
21
21
  refRight: s.right
22
22
  };
23
23
  };
24
- var V = (n, e, t, i) => {
24
+ var Y = (n, e, t, i) => {
25
25
  const o = t, s = i - (t + e);
26
26
  return o >= (n - e) / 2 && s >= (n - e) / 2;
27
27
  };
28
- var X = (n, e, t, i) => (n - e) / 2 <= t && t + n / 2 + e / 2 <= i;
29
- var Y = (n, e, t, i, o) => t > o - i ? e() ? window.innerHeight - o : t - o : n() ? 0 : t + i;
30
- var J = (n, e, t, i) => n <= i && t - n <= e;
31
- var Q = (n, e, t, i) => t <= i && -n <= e;
32
- var Z = (n, e, t, i, o, s) => {
28
+ var J = (n, e, t, i) => (n - e) / 2 <= t && t + n / 2 + e / 2 <= i;
29
+ var Q = (n, e, t, i, o) => t > o - i ? e() ? window.innerHeight - o : t - o : n() ? 0 : t + i;
30
+ var Z = (n, e, t, i) => n <= i && t - n <= e;
31
+ var _ = (n, e, t, i) => t <= i && -n <= e;
32
+ var ee = (n, e, t, i, o, s) => {
33
33
  const r = o - t - s, h = t - i, d = t + s - i + (o - t - s), c = r >= 0 ? o - i : h >= 0 ? t - i : t;
34
34
  return n() ? 0 : e() ? d : c;
35
35
  };
36
- var _ = (n, e, t, i) => n <= t && e - n - i >= n;
37
- var ee = (n, e) => n >= e;
38
- var te = ({
36
+ var te = (n, e, t, i) => n <= t && e - n - i >= n;
37
+ var ne = (n, e) => n >= e;
38
+ var ie = ({
39
39
  placement: n,
40
40
  refWidth: e,
41
41
  refTop: t,
@@ -47,23 +47,23 @@
47
47
  windowWidth: d,
48
48
  offsetDistance: c
49
49
  }) => {
50
- const m = d - i - e, v = i, x = h - t - o, C = t, u = () => Y(
51
- () => Q(t, o, r, h),
52
- () => J(t, o, r, h),
50
+ const m = d - i - e, u = i, x = h - t - o, C = t, v = () => Q(
51
+ () => _(t, o, r, h),
52
+ () => Z(t, o, r, h),
53
53
  t,
54
54
  o,
55
55
  r
56
- ), E = () => Z(
57
- () => _(i, d, s, e),
58
- () => ee(i, s),
56
+ ), E = () => ee(
57
+ () => te(i, d, s, e),
58
+ () => ne(i, s),
59
59
  i,
60
60
  s,
61
61
  d,
62
62
  e
63
- ), D = () => V(s, e, i, d) ? i + e / 2 - s / 2 : E(), M = () => X(r, o, t, h) ? t + o / 2 - r / 2 : u(), T = () => i + s <= d ? i : E(), y = () => i + e - s >= 0 ? i + e - s : E(), O = () => t + r <= h ? t : u(), z = () => t + o - r >= 0 ? t + o - r : u();
63
+ ), D = () => Y(s, e, i, d) ? i + e / 2 - s / 2 : E(), M = () => J(r, o, t, h) ? t + o / 2 - r / 2 : v(), T = () => i + s <= d ? i : E(), y = () => i + e - s >= 0 ? i + e - s : E(), O = () => t + r <= h ? t : v(), j = () => t + o - r >= 0 ? t + o - r : v();
64
64
  let f = 0, g = 0;
65
- const k = t - r - c, S = t + o + c, L = i - s - c, I = i + e + c, W = C >= r + c, F = x >= r + c, R = v >= s + c, $ = m >= s + c;
66
- switch (n.startsWith("top") ? g = W ? k : F ? S : Math.max(k, S) : n.startsWith("bottom") ? g = F ? S : W ? k : Math.max(S) : n.startsWith("left") ? f = R ? L : $ ? I : Math.max(L, I) : n.startsWith("right") && (f = $ ? I : R ? L : Math.max(I, L)), n) {
65
+ const k = t - r - c, S = t + o + c, L = i - s - c, I = i + e + c, F = C >= r + c, $ = x >= r + c, R = u >= s + c, A = m >= s + c;
66
+ switch (n.startsWith("top") ? g = F ? k : $ ? S : Math.max(k, S) : n.startsWith("bottom") ? g = $ ? S : F ? k : Math.max(S) : n.startsWith("left") ? f = R ? L : A ? I : Math.max(L, I) : n.startsWith("right") && (f = A ? I : R ? L : Math.max(I, L)), n) {
67
67
  case "bottom":
68
68
  case "bottom-middle":
69
69
  case "top":
@@ -90,12 +90,12 @@
90
90
  break;
91
91
  case "left-end":
92
92
  case "right-end":
93
- g = z();
93
+ g = j();
94
94
  break;
95
95
  }
96
96
  return { x: f, y: g };
97
97
  };
98
- var ne = class {
98
+ var se = class {
99
99
  /**
100
100
  * Flexilla Popper
101
101
  * @param reference
@@ -122,24 +122,24 @@
122
122
  throw new Error("Invalid HTMLElement for Popper");
123
123
  if (typeof this.offsetDistance != "number")
124
124
  throw new Error("OffsetDistance must be a number");
125
- }), p(this, "setPopperStyleProperty", (m, v) => {
126
- this.popper.style.setProperty("--fx-popper-placement-x", `${m}px`), this.popper.style.setProperty("--fx-popper-placement-y", `${v}px`);
125
+ }), p(this, "setPopperStyleProperty", (m, u) => {
126
+ this.popper.style.setProperty("--fx-popper-placement-x", `${m}px`), this.popper.style.setProperty("--fx-popper-placement-y", `${u}px`);
127
127
  }), p(this, "setInitialStyles", () => {
128
128
  this.popper.style.setProperty("--fx-popper-placement-x", ""), this.popper.style.setProperty("--fx-popper-placement-y", "");
129
129
  }), p(this, "initPlacement", () => {
130
130
  var m;
131
131
  this.validateElements(), this.setInitialStyles();
132
- const v = window.innerWidth, x = window.innerHeight, { popperHeight: C, popperWidth: u, refHeight: E, refWidth: D, refLeft: M, refTop: T } = K({ reference: this.reference, popper: this.popper }), { x: y, y: O } = te(
132
+ const u = window.innerWidth, x = window.innerHeight, { popperHeight: C, popperWidth: v, refHeight: E, refWidth: D, refLeft: M, refTop: T } = X({ reference: this.reference, popper: this.popper }), { x: y, y: O } = ie(
133
133
  {
134
134
  placement: this.placement,
135
135
  refWidth: D,
136
136
  refTop: T,
137
137
  refLeft: M,
138
- popperWidth: u,
138
+ popperWidth: v,
139
139
  refHeight: E,
140
140
  popperHeight: C,
141
141
  windowHeight: x,
142
- windowWidth: v,
142
+ windowWidth: u,
143
143
  offsetDistance: this.offsetDistance
144
144
  }
145
145
  );
@@ -157,7 +157,7 @@
157
157
  });
158
158
  const {
159
159
  offsetDistance: o = 10,
160
- placement: s = U,
160
+ placement: s = V,
161
161
  eventEffect: r = {},
162
162
  onUpdate: h
163
163
  } = i;
@@ -181,15 +181,15 @@
181
181
  this.placement = e, this.offsetDistance = t || this.offsetDistance, this.initPlacement(), this.attachWindowEvent();
182
182
  }
183
183
  };
184
- var ie = Object.defineProperty;
185
- var se = (n, e, t) => e in n ? ie(n, e, { enumerable: true, configurable: true, writable: true, value: t }) : n[e] = t;
186
- var l = (n, e, t) => se(n, typeof e != "symbol" ? e + "" : e, t);
187
- var oe = (n, e = document.body) => e.querySelector(n);
184
+ var oe = Object.defineProperty;
185
+ var re = (n, e, t) => e in n ? oe(n, e, { enumerable: true, configurable: true, writable: true, value: t }) : n[e] = t;
186
+ var l = (n, e, t) => re(n, typeof e != "symbol" ? e + "" : e, t);
187
+ var ae = (n, e = document.body) => e.querySelector(n);
188
188
  var N = (n, e) => {
189
189
  for (const [t, i] of Object.entries(e))
190
190
  n.setAttribute(t, i);
191
191
  };
192
- var re = ({
192
+ var le = ({
193
193
  element: n,
194
194
  callback: e,
195
195
  type: t,
@@ -204,18 +204,18 @@
204
204
  } else
205
205
  e();
206
206
  };
207
- var ae = ({
207
+ var he = ({
208
208
  element: n,
209
209
  callback: e
210
210
  }) => {
211
- re({
211
+ le({
212
212
  element: n,
213
213
  callback: e,
214
214
  type: "transition",
215
215
  keysCheck: ["all 0s ease 0s", "all"]
216
216
  });
217
217
  };
218
- var le = (n, e, t) => {
218
+ var pe = (n, e, t) => {
219
219
  const i = new CustomEvent(e, { detail: t });
220
220
  n.dispatchEvent(i);
221
221
  };
@@ -227,7 +227,7 @@
227
227
  "aria-expanded": `${i}`
228
228
  });
229
229
  };
230
- var he = class {
230
+ var ce = class {
231
231
  /**
232
232
  * Creates an instance of CreateOverlay
233
233
  * @param {Object} params - The initialization parameters
@@ -236,7 +236,7 @@
236
236
  * @param {OverlayOptions} [params.options] - Configuration options for the overlay
237
237
  */
238
238
  constructor({ trigger: e, content: t, options: i = {} }) {
239
- l(this, "triggerElement"), l(this, "contentElement"), l(this, "triggerStrategy"), l(this, "placement"), l(this, "offsetDistance"), l(this, "preventFromCloseOutside"), l(this, "preventFromCloseInside"), l(this, "options"), l(this, "defaultState"), l(this, "popper"), l(this, "eventEffect"), l(this, "getElement", (s) => typeof s == "string" ? oe(s) : s instanceof HTMLElement ? s : void 0), l(this, "handleDocumentClick", (s) => {
239
+ l(this, "triggerElement"), l(this, "contentElement"), l(this, "triggerStrategy"), l(this, "placement"), l(this, "offsetDistance"), l(this, "preventFromCloseOutside"), l(this, "preventFromCloseInside"), l(this, "options"), l(this, "defaultState"), l(this, "popper"), l(this, "eventEffect"), l(this, "getElement", (s) => typeof s == "string" ? ae(s) : s instanceof HTMLElement ? s : void 0), l(this, "handleDocumentClick", (s) => {
240
240
  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());
241
241
  }), l(this, "handleKeyDown", (s) => {
242
242
  s.preventDefault(), this.triggerStrategy !== "hover" && s.key === "Escape" && this.contentElement.getAttribute("data-state") === "open" && (this.preventFromCloseOutside || this.hide());
@@ -282,7 +282,7 @@
282
282
  throw new Error("Trigger element must be a valid HTML element");
283
283
  if (!(this.contentElement instanceof HTMLElement))
284
284
  throw new Error("Content element must be a valid HTML element");
285
- 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 || false, this.preventFromCloseInside = this.options.preventCloseFromInside || false, this.defaultState = this.options.defaultState || "close", this.eventEffect = (o = this.options.popper) == null ? void 0 : o.eventEffect, this.popper = new ne(
285
+ 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 || false, this.preventFromCloseInside = this.options.preventCloseFromInside || false, this.defaultState = this.options.defaultState || "close", this.eventEffect = (o = this.options.popper) == null ? void 0 : o.eventEffect, this.popper = new se(
286
286
  this.triggerElement,
287
287
  this.contentElement,
288
288
  {
@@ -315,7 +315,7 @@
315
315
  hide() {
316
316
  var e, t, i;
317
317
  let o = false;
318
- le(this.contentElement, "before-hide", {
318
+ pe(this.contentElement, "before-hide", {
319
319
  setExitAction: (r) => {
320
320
  o = r;
321
321
  }
@@ -325,7 +325,7 @@
325
325
  state: "close",
326
326
  popper: this.contentElement,
327
327
  trigger: this.triggerElement
328
- }), 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)), ae({
328
+ }), 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)), he({
329
329
  element: this.contentElement,
330
330
  callback: () => {
331
331
  var r, h;
@@ -345,13 +345,13 @@
345
345
  }), this.triggerElement.addEventListener("click", this.toggleStateOnClick), this.triggerStrategy === "hover" && this.triggerElement.addEventListener("mouseenter", this.showOnMouseEnter);
346
346
  }
347
347
  };
348
- var A = (n, e = document.body) => e.querySelector(n);
349
- var pe = (n, e = document.body) => Array.from(e.querySelectorAll(n));
348
+ var z = (n, e = document.body) => e.querySelector(n);
349
+ var de = (n, e = document.body) => Array.from(e.querySelectorAll(n));
350
350
  var H = (n, e, t) => {
351
351
  const i = new CustomEvent(e, { detail: t });
352
352
  n.dispatchEvent(i);
353
353
  };
354
- function ce(n) {
354
+ function me(n) {
355
355
  const e = () => {
356
356
  document.querySelector(
357
357
  "[data-fx-component]:not([data-component-initialized])"
@@ -359,26 +359,40 @@
359
359
  };
360
360
  e();
361
361
  }
362
- function de(n, e, t = "move") {
362
+ var B = "data-fx-teleport-root";
363
+ var P = "data-fx-teleported";
364
+ var fe = {
365
+ append: () => {
366
+ },
367
+ remove: () => {
368
+ },
369
+ restore: () => {
370
+ }
371
+ };
372
+ function ge(n, e, t = "move") {
373
+ var i;
363
374
  if (!(n instanceof HTMLElement))
364
375
  throw new Error("Source element must be an HTMLElement");
365
376
  if (!(e instanceof HTMLElement))
366
377
  throw new Error("Target element must be an HTMLElement");
367
378
  if (!["move", "detachable"].includes(t))
368
379
  throw new Error(`Invalid teleport mode: ${t}. Must be "move" or "detachable".`);
369
- let i = document.createComment("teleporter-placeholder");
370
- const o = n.parentNode;
371
- return o ? o.insertBefore(i, n) : console.warn("Element has no parent; placeholder not inserted."), t === "move" ? (n.parentNode && e.appendChild(n), {
380
+ if ((i = n.parentElement) != null && i.closest(`[${B}]`))
381
+ return fe;
382
+ n.setAttribute(B, "");
383
+ let o = document.createComment("teleporter-placeholder");
384
+ const s = n.parentNode;
385
+ return s && s.insertBefore(o, n), t === "move" ? (n.parentNode && (e.appendChild(n), n.setAttribute(P, "")), {
372
386
  append() {
373
- n.parentNode !== e && e.appendChild(n);
387
+ n.parentNode !== e && (e.appendChild(n), n.setAttribute(P, ""));
374
388
  },
375
389
  remove() {
376
- i != null && i.parentNode && n.parentNode && i.parentNode.insertBefore(n, i);
390
+ o != null && o.parentNode && n.parentNode && o.parentNode.insertBefore(n, o);
377
391
  },
378
392
  restore() {
379
- i != null && i.parentNode && n.parentNode !== o && i.parentNode.insertBefore(n, i);
393
+ o != null && o.parentNode && n.parentNode !== s && o.parentNode.insertBefore(n, o);
380
394
  }
381
- }) : (n.parentNode && e.appendChild(n), {
395
+ }) : (n.parentNode && (e.appendChild(n), n.setAttribute(P, "")), {
382
396
  append() {
383
397
  e.contains(n) || e.appendChild(n);
384
398
  },
@@ -386,7 +400,7 @@
386
400
  n.parentNode && n.remove();
387
401
  },
388
402
  restore() {
389
- i != null && i.parentNode && !n.parentNode && i.parentNode.insertBefore(n, i);
403
+ o != null && o.parentNode && !n.parentNode && o.parentNode.insertBefore(n, o);
390
404
  }
391
405
  });
392
406
  }
@@ -415,11 +429,11 @@
415
429
  e.setAttribute("data-component-initialized", "initialized");
416
430
  }
417
431
  };
418
- var me = {
432
+ var ue = {
419
433
  teleport: true,
420
434
  teleportMode: "move"
421
435
  };
422
- var P = class _P {
436
+ var W = class _W {
423
437
  /**
424
438
  * Creates a new Popover instance.
425
439
  * @param {string | HTMLElement} popoverEl - The popover content element or its selector.
@@ -449,7 +463,7 @@
449
463
  a(this, "experimentalOptions");
450
464
  a(this, "teleporter");
451
465
  a(this, "moveElOnInit", () => {
452
- this.experimentalOptions.teleport && ce(() => {
466
+ this.experimentalOptions.teleport && me(() => {
453
467
  this.experimentalOptions.teleportMode === "detachable" ? this.teleporter.remove() : this.teleporter.append();
454
468
  });
455
469
  });
@@ -492,12 +506,12 @@
492
506
  a(this, "cleanup", () => {
493
507
  this.PopoverInstance.cleanup(), b.removeInstance("popover", this.contentElement);
494
508
  });
495
- const i = typeof e == "string" ? A(e) : e;
509
+ const i = typeof e == "string" ? z(e) : e;
496
510
  this.contentElement = i;
497
511
  const o = b.getInstance("popover", this.contentElement);
498
512
  if (o)
499
513
  return o;
500
- b.setup(this.contentElement), this.triggerElement = A(`[data-popover-trigger][data-popover-id=${i.getAttribute("id")}]`), this.options = t, this.triggerStrategy = i.dataset.triggerStrategy ?? this.options.triggerStrategy ?? "click", this.placement = i.dataset.placement ?? this.options.placement ?? "bottom-middle", this.offsetDistance = parseInt(`${i.dataset.offsetDistance}`) ?? this.options.offsetDistance ?? 6, this.preventFromCloseOutside = i.hasAttribute("data-prevent-close-outside") ?? this.options.preventFromCloseOutside ?? false, this.preventFromCloseInside = i.hasAttribute("data-close-inside") ? false : this.options.preventCloseFromInside ?? true, this.defaultState = i.dataset.defaultState ?? this.options.defaultState ?? "close", this.experimentalOptions = Object.assign({}, me, t.experimental), this.teleporter = de(this.contentElement, document.body, this.experimentalOptions.teleportMode), this.PopoverInstance = new he({
514
+ b.setup(this.contentElement), this.triggerElement = z(`[data-popover-trigger][data-popover-id=${i.getAttribute("id")}]`), this.options = t, this.triggerStrategy = i.dataset.triggerStrategy ?? this.options.triggerStrategy ?? "click", this.placement = i.dataset.placement ?? this.options.placement ?? "bottom-middle", this.offsetDistance = parseInt(`${i.dataset.offsetDistance}`) ?? this.options.offsetDistance ?? 6, this.preventFromCloseOutside = i.hasAttribute("data-prevent-close-outside") ?? this.options.preventFromCloseOutside ?? false, this.preventFromCloseInside = i.hasAttribute("data-close-inside") ? false : this.options.preventCloseFromInside ?? true, this.defaultState = i.dataset.defaultState ?? this.options.defaultState ?? "close", this.experimentalOptions = Object.assign({}, ue, t.experimental), this.teleporter = ge(this.contentElement, document.body, this.experimentalOptions.teleportMode), this.PopoverInstance = new ce({
501
515
  trigger: this.triggerElement,
502
516
  content: this.contentElement,
503
517
  options: {
@@ -532,7 +546,7 @@
532
546
  * });
533
547
  */
534
548
  static init(e, t) {
535
- return new _P(e, t);
549
+ return new _W(e, t);
536
550
  }
537
551
  /**
538
552
  * Automatically initializes all popover elements matching the specified selector.
@@ -545,16 +559,16 @@
545
559
  * Popover.autoInit('.custom-popover');
546
560
  */
547
561
  static autoInit(e = "[data-fx-popover]") {
548
- const t = pe(e);
562
+ const t = de(e);
549
563
  for (const i of t)
550
- new _P(i);
564
+ new _W(i);
551
565
  }
552
566
  };
553
567
 
554
568
  // src/index.js
555
569
  function Popover(Alpine) {
556
570
  Alpine.directive("popover", (el, {}, { cleanup }) => {
557
- const popover_ = new P(el);
571
+ const popover_ = new W(el);
558
572
  cleanup(() => {
559
573
  popover_.cleanup();
560
574
  });
package/dist/cdn.min.js CHANGED
@@ -1 +1 @@
1
- (()=>{var G=Object.defineProperty,K=(i,e,t)=>e in i?G(i,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):i[e]=t,a=(i,e,t)=>K(i,typeof e!="symbol"?e+"":e,t),U=Object.defineProperty,J=(i,e,t)=>e in i?U(i,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):i[e]=t,p=(i,e,t)=>J(i,typeof e!="symbol"?e+"":e,t),Q="bottom",V=({reference:i,popper:e})=>{if(!i||!e)throw new Error("Reference or popper element is null or undefined");let t=new WeakMap,n=o=>(t.has(o)||t.set(o,o.getBoundingClientRect()),t.get(o)),r=n(e),s=n(i);return{popperHeight:r.height,popperWidth:r.width,refHeight:s.height,refWidth:s.width,refLeft:s.left,refTop:s.top,refRight:s.right}},X=(i,e,t,n)=>{let r=t,s=n-(t+e);return r>=(i-e)/2&&s>=(i-e)/2},Y=(i,e,t,n)=>(i-e)/2<=t&&t+i/2+e/2<=n,Z=(i,e,t,n,r)=>t>r-n?e()?window.innerHeight-r:t-r:i()?0:t+n,_=(i,e,t,n)=>i<=n&&t-i<=e,ee=(i,e,t,n)=>t<=n&&-i<=e,te=(i,e,t,n,r,s)=>{let o=r-t-s,h=t-n,d=t+s-n+(r-t-s),c=o>=0?r-n:h>=0?t-n:t;return i()?0:e()?d:c},ie=(i,e,t,n)=>i<=t&&e-i-n>=i,ne=(i,e)=>i>=e,se=({placement:i,refWidth:e,refTop:t,refLeft:n,refHeight:r,popperWidth:s,popperHeight:o,windowHeight:h,windowWidth:d,offsetDistance:c})=>{let m=d-n-e,E=n,x=h-t-r,C=t,u=()=>Z(()=>ee(t,r,o,h),()=>_(t,r,o,h),t,r,o),w=()=>te(()=>ie(n,d,s,e),()=>ne(n,s),n,s,d,e),M=()=>X(s,e,n,d)?n+e/2-s/2:w(),H=()=>Y(o,r,t,h)?t+r/2-o/2:u(),P=()=>n+s<=d?n:w(),y=()=>n+e-s>=0?n+e-s:w(),O=()=>t+o<=h?t:u(),B=()=>t+r-o>=0?t+r-o:u(),g=0,v=0,T=t-o-c,S=t+r+c,L=n-s-c,D=n+e+c,R=C>=o+c,$=x>=o+c,A=E>=s+c,N=m>=s+c;switch(i.startsWith("top")?v=R?T:$?S:Math.max(T,S):i.startsWith("bottom")?v=$?S:R?T:Math.max(S):i.startsWith("left")?g=A?L:N?D:Math.max(L,D):i.startsWith("right")&&(g=N?D:A?L:Math.max(D,L)),i){case"bottom":case"bottom-middle":case"top":case"top-middle":g=M();break;case"left":case"left-middle":case"right":case"right-middle":v=H();break;case"bottom-start":case"top-start":g=P();break;case"bottom-end":case"top-end":g=y();break;case"left-start":case"right-start":v=O();break;case"left-end":case"right-end":v=B();break}return{x:g,y:v}},W=class{constructor(e,t,n={}){p(this,"reference"),p(this,"popper"),p(this,"offsetDistance"),p(this,"placement"),p(this,"disableOnResize"),p(this,"disableOnScroll"),p(this,"onUpdate"),p(this,"isWindowEventsRegistered"),p(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")}),p(this,"setPopperStyleProperty",(m,E)=>{this.popper.style.setProperty("--fx-popper-placement-x",`${m}px`),this.popper.style.setProperty("--fx-popper-placement-y",`${E}px`)}),p(this,"setInitialStyles",()=>{this.popper.style.setProperty("--fx-popper-placement-x",""),this.popper.style.setProperty("--fx-popper-placement-y","")}),p(this,"initPlacement",()=>{var m;this.validateElements(),this.setInitialStyles();let E=window.innerWidth,x=window.innerHeight,{popperHeight:C,popperWidth:u,refHeight:w,refWidth:M,refLeft:H,refTop:P}=V({reference:this.reference,popper:this.popper}),{x:y,y:O}=se({placement:this.placement,refWidth:M,refTop:P,refLeft:H,popperWidth:u,refHeight:w,popperHeight:C,windowHeight:x,windowWidth:E,offsetDistance:this.offsetDistance});this.setPopperStyleProperty(y,O),(m=this.onUpdate)==null||m.call(this,{x:y,y:O,placement:this.placement})}),p(this,"removeWindowEvents",()=>{this.isWindowEventsRegistered&&(!this.disableOnResize&&window.removeEventListener("resize",this.updatePosition),!this.disableOnScroll&&window.removeEventListener("scroll",this.updatePosition),this.isWindowEventsRegistered=!1)}),p(this,"attachWindowEvent",()=>{this.isWindowEventsRegistered&&this.removeWindowEvents(),this.disableOnResize||window.addEventListener("resize",this.updatePosition),this.disableOnScroll||window.addEventListener("scroll",this.updatePosition),this.isWindowEventsRegistered=!0}),p(this,"resetPosition",()=>{this.setInitialStyles()}),p(this,"updatePosition",()=>{this.initPlacement(),this.attachWindowEvent()}),p(this,"cleanupEvents",()=>{this.setInitialStyles(),this.removeWindowEvents()});let{offsetDistance:r=10,placement:s=Q,eventEffect:o={},onUpdate:h}=n;if(!(e instanceof HTMLElement))throw new Error("Invalid HTMLElement for Reference Element");if(!(t instanceof HTMLElement))throw new Error("Invalid HTMLElement for Popper");if(n.offsetDistance&&typeof n.offsetDistance!="number")throw new Error("OffsetDistance must be a number");let{disableOnResize:d,disableOnScroll:c}=o;this.isWindowEventsRegistered=!1,this.reference=e,this.popper=t,this.offsetDistance=r,this.placement=s,this.disableOnResize=d||!1,this.disableOnScroll=c||!1,this.onUpdate=h}setOptions({placement:e,offsetDistance:t}){this.placement=e,this.offsetDistance=t||this.offsetDistance,this.initPlacement(),this.attachWindowEvent()}},oe=Object.defineProperty,re=(i,e,t)=>e in i?oe(i,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):i[e]=t,l=(i,e,t)=>re(i,typeof e!="symbol"?e+"":e,t),ae=(i,e=document.body)=>e.querySelector(i),z=(i,e)=>{for(let[t,n]of Object.entries(e))i.setAttribute(t,n)},le=({element:i,callback:e,type:t,keysCheck:n})=>{let r=getComputedStyle(i),s=r.transition;if(s!=="none"&&s!==""&&!n.includes(s)){let o="transitionend",h=()=>{i.removeEventListener(o,h),e()};i.addEventListener(o,h,{once:!0})}else e()},he=({element:i,callback:e})=>{le({element:i,callback:e,type:"transition",keysCheck:["all 0s ease 0s","all"]})},pe=(i,e,t)=>{let n=new CustomEvent(e,{detail:t});i.dispatchEvent(n)},b=({state:i,trigger:e,popper:t})=>{let n=i==="open";z(t,{"data-state":i}),z(e,{"aria-expanded":`${n}`})},F=class{constructor({trigger:e,content:t,options:n={}}){l(this,"triggerElement"),l(this,"contentElement"),l(this,"triggerStrategy"),l(this,"placement"),l(this,"offsetDistance"),l(this,"preventFromCloseOutside"),l(this,"preventFromCloseInside"),l(this,"options"),l(this,"defaultState"),l(this,"popper"),l(this,"eventEffect"),l(this,"getElement",s=>typeof s=="string"?ae(s):s instanceof HTMLElement?s:void 0),l(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())}),l(this,"handleKeyDown",s=>{s.preventDefault(),this.triggerStrategy!=="hover"&&s.key==="Escape"&&this.contentElement.getAttribute("data-state")==="open"&&(this.preventFromCloseOutside||this.hide())}),l(this,"toggleStateOnClick",()=>{(this.contentElement.dataset.state||"close")==="close"?(this.show(),this.triggerStrategy==="hover"&&this.addEventOnMouseEnter()):this.hide()}),l(this,"hideOnMouseLeaseTrigger",()=>{setTimeout(()=>{this.contentElement.matches(":hover")||this.hide()},150)}),l(this,"hideOnMouseLeave",()=>{setTimeout(()=>{this.triggerElement.matches(":hover")||this.hide()},150)}),l(this,"addEventOnMouseEnter",()=>{this.triggerElement.addEventListener("mouseleave",this.hideOnMouseLeaseTrigger),this.contentElement.addEventListener("mouseleave",this.hideOnMouseLeave)}),l(this,"showOnMouseEnter",()=>{this.show(),this.addEventOnMouseEnter()}),l(this,"setShowOptions",({placement:s,offsetDistance:o})=>{var h,d,c,m;this.popper.setOptions({placement:s,offsetDistance:o}),document.addEventListener("keydown",this.handleKeyDown),document.addEventListener("click",this.handleDocumentClick),(d=(h=this.options).beforeShow)==null||d.call(h),b({state:"open",popper:this.contentElement,trigger:this.triggerElement}),this.onToggleState(!1),(m=(c=this.options).onShow)==null||m.call(c)}),l(this,"setPopperOptions",({placement:s,offsetDistance:o})=>{this.popper.setOptions({placement:s,offsetDistance:o||this.offsetDistance})}),l(this,"setPopperTrigger",(s,o)=>{this.cleanup(),this.popper.setOptions({placement:o.placement||this.placement,offsetDistance:o.offsetDistance||this.offsetDistance}),this.triggerElement=s,this.triggerElement.addEventListener("click",this.toggleStateOnClick),this.triggerStrategy==="hover"&&this.triggerElement.addEventListener("mouseenter",this.showOnMouseEnter)}),l(this,"cleanup",()=>{this.triggerElement.removeEventListener("click",this.toggleStateOnClick),this.triggerStrategy==="hover"&&this.triggerElement.removeEventListener("mouseenter",this.showOnMouseEnter)});var r;if(this.contentElement=this.getElement(t),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=n,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=(r=this.options.popper)==null?void 0:r.eventEffect,this.popper=new W(this.triggerElement,this.contentElement,{placement:this.placement,offsetDistance:this.offsetDistance,eventEffect:this.eventEffect}),this.initInstance()}onToggleState(e){var t,n;(n=(t=this.options).onToggle)==null||n.call(t,{isHidden:e})}show(){var e,t,n,r;this.popper.updatePosition(),document.addEventListener("keydown",this.handleKeyDown),document.addEventListener("click",this.handleDocumentClick),(t=(e=this.options).beforeShow)==null||t.call(e),b({state:"open",popper:this.contentElement,trigger:this.triggerElement}),this.onToggleState(!1),(r=(n=this.options).onShow)==null||r.call(n)}hide(){var e,t,n;let r=!1;pe(this.contentElement,"before-hide",{setExitAction:o=>{r=o}});let s=(n=(t=(e=this.options).beforeHide)==null?void 0:t.call(e))==null?void 0:n.cancelAction;r||s||(b({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)),he({element:this.contentElement,callback:()=>{var o,h;this.onToggleState(!0),this.popper.cleanupEvents(),(h=(o=this.options).onHide)==null||h.call(o)}}))}initInstance(){b({state:this.defaultState,popper:this.contentElement,trigger:this.triggerElement}),this.defaultState==="open"?this.show():b({state:"close",popper:this.contentElement,trigger:this.triggerElement}),this.triggerElement.addEventListener("click",this.toggleStateOnClick),this.triggerStrategy==="hover"&&this.triggerElement.addEventListener("mouseenter",this.showOnMouseEnter)}},j=(i,e=document.body)=>e.querySelector(i),ce=(i,e=document.body)=>Array.from(e.querySelectorAll(i)),k=(i,e,t)=>{let n=new CustomEvent(e,{detail:t});i.dispatchEvent(n)};function de(i){let e=()=>{document.querySelector("[data-fx-component]:not([data-component-initialized])")?requestAnimationFrame(e):i()};e()}function me(i,e,t="move"){if(!(i 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(t))throw new Error(`Invalid teleport mode: ${t}. Must be "move" or "detachable".`);let n=document.createComment("teleporter-placeholder"),r=i.parentNode;return r?r.insertBefore(n,i):console.warn("Element has no parent; placeholder not inserted."),t==="move"?(i.parentNode&&e.appendChild(i),{append(){i.parentNode!==e&&e.appendChild(i)},remove(){n!=null&&n.parentNode&&i.parentNode&&n.parentNode.insertBefore(i,n)},restore(){n!=null&&n.parentNode&&i.parentNode!==r&&n.parentNode.insertBefore(i,n)}}):(i.parentNode&&e.appendChild(i),{append(){e.contains(i)||e.appendChild(i)},remove(){i.parentNode&&i.remove()},restore(){n!=null&&n.parentNode&&!i.parentNode&&n.parentNode.insertBefore(i,n)}})}var f=class{static initGlobalRegistry(){window.$flexillaInstances||(window.$flexillaInstances={})}static register(e,t,n){return this.initGlobalRegistry(),window.$flexillaInstances[e]||(window.$flexillaInstances[e]=[]),this.getInstance(e,t)||(window.$flexillaInstances[e].push({element:t,instance:n}),n)}static getInstance(e,t){var n,r;return this.initGlobalRegistry(),(r=(n=window.$flexillaInstances[e])==null?void 0:n.find(s=>s.element===t))==null?void 0:r.instance}static removeInstance(e,t){this.initGlobalRegistry(),window.$flexillaInstances[e]&&(window.$flexillaInstances[e]=window.$flexillaInstances[e].filter(n=>n.element!==t))}static setup(e){e.setAttribute("data-fx-component","fx")}static initialized(e){e.setAttribute("data-component-initialized","initialized")}},fe={teleport:!0,teleportMode:"move"},I=class i{constructor(e,t={}){a(this,"triggerElement"),a(this,"contentElement"),a(this,"options"),a(this,"PopoverInstance"),a(this,"triggerStrategy"),a(this,"placement"),a(this,"offsetDistance"),a(this,"preventFromCloseOutside"),a(this,"preventFromCloseInside"),a(this,"defaultState"),a(this,"experimentalOptions"),a(this,"teleporter"),a(this,"moveElOnInit",()=>{this.experimentalOptions.teleport&&de(()=>{this.experimentalOptions.teleportMode==="detachable"?this.teleporter.remove():this.teleporter.append()})}),a(this,"moveEl",()=>{this.experimentalOptions.teleport&&this.experimentalOptions.teleportMode==="detachable"&&this.teleporter.remove()}),a(this,"restoreEl",()=>{this.experimentalOptions.teleport&&this.experimentalOptions.teleportMode==="detachable"&&this.teleporter.append()}),a(this,"beforeShow",()=>{this.restoreEl()}),a(this,"onHide",()=>{var s,o;(o=(s=this.options).onHide)==null||o.call(s),this.moveEl(),k(this.contentElement,"popover-hide",{isHidden:!0})}),a(this,"onShow",()=>{var s,o;(o=(s=this.options).onShow)==null||o.call(s),k(this.contentElement,"popover-show",{isHidden:!1})}),a(this,"setShowOptions",({placement:s,offsetDistance:o})=>{this.PopoverInstance.setShowOptions({placement:s,offsetDistance:o})}),a(this,"setOptions",({placement:s,offsetDistance:o})=>{this.PopoverInstance.setPopperOptions({placement:s,offsetDistance:o})}),a(this,"setPopperTrigger",(s,o)=>{this.PopoverInstance.setPopperTrigger(s,o)}),a(this,"show",()=>{this.PopoverInstance.show()}),a(this,"hide",()=>{this.PopoverInstance.hide()}),a(this,"cleanup",()=>{this.PopoverInstance.cleanup(),f.removeInstance("popover",this.contentElement)});let n=typeof e=="string"?j(e):e;this.contentElement=n;let r=f.getInstance("popover",this.contentElement);if(r)return r;f.setup(this.contentElement),this.triggerElement=j(`[data-popover-trigger][data-popover-id=${n.getAttribute("id")}]`),this.options=t,this.triggerStrategy=n.dataset.triggerStrategy??this.options.triggerStrategy??"click",this.placement=n.dataset.placement??this.options.placement??"bottom-middle",this.offsetDistance=parseInt(`${n.dataset.offsetDistance}`)??this.options.offsetDistance??6,this.preventFromCloseOutside=n.hasAttribute("data-prevent-close-outside")??this.options.preventFromCloseOutside??!1,this.preventFromCloseInside=n.hasAttribute("data-close-inside")?!1:this.options.preventCloseFromInside??!0,this.defaultState=n.dataset.defaultState??this.options.defaultState??"close",this.experimentalOptions=Object.assign({},fe,t.experimental),this.teleporter=me(this.contentElement,document.body,this.experimentalOptions.teleportMode),this.PopoverInstance=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,onShow:this.onShow,onHide:this.onHide,onToggle:({isHidden:s})=>{var o,h;(h=(o=this.options).onToggle)==null||h.call(o,{isHidden:s}),k(this.contentElement,"popover-toggle",{isHidden:s})},popper:this.options.popper}}),this.moveElOnInit(),f.register("popover",this.contentElement,this),f.initialized(this.contentElement)}static init(e,t){return new i(e,t)}static autoInit(e="[data-fx-popover]"){let t=ce(e);for(let n of t)new i(n)}};function ge(i){i.directive("popover",(e,{},{cleanup:t})=>{let n=new I(e);t(()=>{n.cleanup()})})}var q=ge;document.addEventListener("alpine:init",()=>{q(window.Alpine)});})();
1
+ (()=>{var U=Object.defineProperty,J=(t,e,i)=>e in t?U(t,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[e]=i,a=(t,e,i)=>J(t,typeof e!="symbol"?e+"":e,i),Q=Object.defineProperty,V=(t,e,i)=>e in t?Q(t,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[e]=i,p=(t,e,i)=>V(t,typeof e!="symbol"?e+"":e,i),X="bottom",Y=({reference:t,popper:e})=>{if(!t||!e)throw new Error("Reference or popper element is null or undefined");let i=new WeakMap,n=r=>(i.has(r)||i.set(r,r.getBoundingClientRect()),i.get(r)),o=n(e),s=n(t);return{popperHeight:o.height,popperWidth:o.width,refHeight:s.height,refWidth:s.width,refLeft:s.left,refTop:s.top,refRight:s.right}},Z=(t,e,i,n)=>{let o=i,s=n-(i+e);return o>=(t-e)/2&&s>=(t-e)/2},_=(t,e,i,n)=>(t-e)/2<=i&&i+t/2+e/2<=n,ee=(t,e,i,n,o)=>i>o-n?e()?window.innerHeight-o:i-o:t()?0:i+n,te=(t,e,i,n)=>t<=n&&i-t<=e,ie=(t,e,i,n)=>i<=n&&-t<=e,ne=(t,e,i,n,o,s)=>{let r=o-i-s,h=i-n,d=i+s-n+(o-i-s),c=r>=0?o-n:h>=0?i-n:i;return t()?0:e()?d:c},se=(t,e,i,n)=>t<=i&&e-t-n>=t,oe=(t,e)=>t>=e,re=({placement:t,refWidth:e,refTop:i,refLeft:n,refHeight:o,popperWidth:s,popperHeight:r,windowHeight:h,windowWidth:d,offsetDistance:c})=>{let m=d-n-e,u=n,x=h-i-o,C=i,E=()=>ee(()=>ie(i,o,r,h),()=>te(i,o,r,h),i,o,r),w=()=>ne(()=>se(n,d,s,e),()=>oe(n,s),n,s,d,e),M=()=>Z(s,e,n,d)?n+e/2-s/2:w(),H=()=>_(r,o,i,h)?i+o/2-r/2:E(),P=()=>n+s<=d?n:w(),y=()=>n+e-s>=0?n+e-s:w(),O=()=>i+r<=h?i:E(),K=()=>i+o-r>=0?i+o-r:E(),g=0,v=0,T=i-r-c,S=i+o+c,L=n-s-c,D=n+e+c,A=C>=r+c,$=x>=r+c,N=u>=s+c,z=m>=s+c;switch(t.startsWith("top")?v=A?T:$?S:Math.max(T,S):t.startsWith("bottom")?v=$?S:A?T:Math.max(S):t.startsWith("left")?g=N?L:z?D:Math.max(L,D):t.startsWith("right")&&(g=z?D:N?L:Math.max(D,L)),t){case"bottom":case"bottom-middle":case"top":case"top-middle":g=M();break;case"left":case"left-middle":case"right":case"right-middle":v=H();break;case"bottom-start":case"top-start":g=P();break;case"bottom-end":case"top-end":g=y();break;case"left-start":case"right-start":v=O();break;case"left-end":case"right-end":v=K();break}return{x:g,y:v}},F=class{constructor(e,i,n={}){p(this,"reference"),p(this,"popper"),p(this,"offsetDistance"),p(this,"placement"),p(this,"disableOnResize"),p(this,"disableOnScroll"),p(this,"onUpdate"),p(this,"isWindowEventsRegistered"),p(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")}),p(this,"setPopperStyleProperty",(m,u)=>{this.popper.style.setProperty("--fx-popper-placement-x",`${m}px`),this.popper.style.setProperty("--fx-popper-placement-y",`${u}px`)}),p(this,"setInitialStyles",()=>{this.popper.style.setProperty("--fx-popper-placement-x",""),this.popper.style.setProperty("--fx-popper-placement-y","")}),p(this,"initPlacement",()=>{var m;this.validateElements(),this.setInitialStyles();let u=window.innerWidth,x=window.innerHeight,{popperHeight:C,popperWidth:E,refHeight:w,refWidth:M,refLeft:H,refTop:P}=Y({reference:this.reference,popper:this.popper}),{x:y,y:O}=re({placement:this.placement,refWidth:M,refTop:P,refLeft:H,popperWidth:E,refHeight:w,popperHeight:C,windowHeight:x,windowWidth:u,offsetDistance:this.offsetDistance});this.setPopperStyleProperty(y,O),(m=this.onUpdate)==null||m.call(this,{x:y,y:O,placement:this.placement})}),p(this,"removeWindowEvents",()=>{this.isWindowEventsRegistered&&(!this.disableOnResize&&window.removeEventListener("resize",this.updatePosition),!this.disableOnScroll&&window.removeEventListener("scroll",this.updatePosition),this.isWindowEventsRegistered=!1)}),p(this,"attachWindowEvent",()=>{this.isWindowEventsRegistered&&this.removeWindowEvents(),this.disableOnResize||window.addEventListener("resize",this.updatePosition),this.disableOnScroll||window.addEventListener("scroll",this.updatePosition),this.isWindowEventsRegistered=!0}),p(this,"resetPosition",()=>{this.setInitialStyles()}),p(this,"updatePosition",()=>{this.initPlacement(),this.attachWindowEvent()}),p(this,"cleanupEvents",()=>{this.setInitialStyles(),this.removeWindowEvents()});let{offsetDistance:o=10,placement:s=X,eventEffect:r={},onUpdate:h}=n;if(!(e instanceof HTMLElement))throw new Error("Invalid HTMLElement for Reference Element");if(!(i instanceof HTMLElement))throw new Error("Invalid HTMLElement for Popper");if(n.offsetDistance&&typeof n.offsetDistance!="number")throw new Error("OffsetDistance must be a number");let{disableOnResize:d,disableOnScroll:c}=r;this.isWindowEventsRegistered=!1,this.reference=e,this.popper=i,this.offsetDistance=o,this.placement=s,this.disableOnResize=d||!1,this.disableOnScroll=c||!1,this.onUpdate=h}setOptions({placement:e,offsetDistance:i}){this.placement=e,this.offsetDistance=i||this.offsetDistance,this.initPlacement(),this.attachWindowEvent()}},ae=Object.defineProperty,le=(t,e,i)=>e in t?ae(t,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[e]=i,l=(t,e,i)=>le(t,typeof e!="symbol"?e+"":e,i),he=(t,e=document.body)=>e.querySelector(t),j=(t,e)=>{for(let[i,n]of Object.entries(e))t.setAttribute(i,n)},pe=({element:t,callback:e,type:i,keysCheck:n})=>{let o=getComputedStyle(t),s=o.transition;if(s!=="none"&&s!==""&&!n.includes(s)){let r="transitionend",h=()=>{t.removeEventListener(r,h),e()};t.addEventListener(r,h,{once:!0})}else e()},ce=({element:t,callback:e})=>{pe({element:t,callback:e,type:"transition",keysCheck:["all 0s ease 0s","all"]})},de=(t,e,i)=>{let n=new CustomEvent(e,{detail:i});t.dispatchEvent(n)},b=({state:t,trigger:e,popper:i})=>{let n=t==="open";j(i,{"data-state":t}),j(e,{"aria-expanded":`${n}`})},R=class{constructor({trigger:e,content:i,options:n={}}){l(this,"triggerElement"),l(this,"contentElement"),l(this,"triggerStrategy"),l(this,"placement"),l(this,"offsetDistance"),l(this,"preventFromCloseOutside"),l(this,"preventFromCloseInside"),l(this,"options"),l(this,"defaultState"),l(this,"popper"),l(this,"eventEffect"),l(this,"getElement",s=>typeof s=="string"?he(s):s instanceof HTMLElement?s:void 0),l(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())}),l(this,"handleKeyDown",s=>{s.preventDefault(),this.triggerStrategy!=="hover"&&s.key==="Escape"&&this.contentElement.getAttribute("data-state")==="open"&&(this.preventFromCloseOutside||this.hide())}),l(this,"toggleStateOnClick",()=>{(this.contentElement.dataset.state||"close")==="close"?(this.show(),this.triggerStrategy==="hover"&&this.addEventOnMouseEnter()):this.hide()}),l(this,"hideOnMouseLeaseTrigger",()=>{setTimeout(()=>{this.contentElement.matches(":hover")||this.hide()},150)}),l(this,"hideOnMouseLeave",()=>{setTimeout(()=>{this.triggerElement.matches(":hover")||this.hide()},150)}),l(this,"addEventOnMouseEnter",()=>{this.triggerElement.addEventListener("mouseleave",this.hideOnMouseLeaseTrigger),this.contentElement.addEventListener("mouseleave",this.hideOnMouseLeave)}),l(this,"showOnMouseEnter",()=>{this.show(),this.addEventOnMouseEnter()}),l(this,"setShowOptions",({placement:s,offsetDistance:r})=>{var h,d,c,m;this.popper.setOptions({placement:s,offsetDistance:r}),document.addEventListener("keydown",this.handleKeyDown),document.addEventListener("click",this.handleDocumentClick),(d=(h=this.options).beforeShow)==null||d.call(h),b({state:"open",popper:this.contentElement,trigger:this.triggerElement}),this.onToggleState(!1),(m=(c=this.options).onShow)==null||m.call(c)}),l(this,"setPopperOptions",({placement:s,offsetDistance:r})=>{this.popper.setOptions({placement:s,offsetDistance:r||this.offsetDistance})}),l(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)}),l(this,"cleanup",()=>{this.triggerElement.removeEventListener("click",this.toggleStateOnClick),this.triggerStrategy==="hover"&&this.triggerElement.removeEventListener("mouseenter",this.showOnMouseEnter)});var o;if(this.contentElement=this.getElement(i),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=n,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=(o=this.options.popper)==null?void 0:o.eventEffect,this.popper=new F(this.triggerElement,this.contentElement,{placement:this.placement,offsetDistance:this.offsetDistance,eventEffect:this.eventEffect}),this.initInstance()}onToggleState(e){var i,n;(n=(i=this.options).onToggle)==null||n.call(i,{isHidden:e})}show(){var e,i,n,o;this.popper.updatePosition(),document.addEventListener("keydown",this.handleKeyDown),document.addEventListener("click",this.handleDocumentClick),(i=(e=this.options).beforeShow)==null||i.call(e),b({state:"open",popper:this.contentElement,trigger:this.triggerElement}),this.onToggleState(!1),(o=(n=this.options).onShow)==null||o.call(n)}hide(){var e,i,n;let o=!1;de(this.contentElement,"before-hide",{setExitAction:r=>{o=r}});let s=(n=(i=(e=this.options).beforeHide)==null?void 0:i.call(e))==null?void 0:n.cancelAction;o||s||(b({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)),ce({element:this.contentElement,callback:()=>{var r,h;this.onToggleState(!0),this.popper.cleanupEvents(),(h=(r=this.options).onHide)==null||h.call(r)}}))}initInstance(){b({state:this.defaultState,popper:this.contentElement,trigger:this.triggerElement}),this.defaultState==="open"?this.show():b({state:"close",popper:this.contentElement,trigger:this.triggerElement}),this.triggerElement.addEventListener("click",this.toggleStateOnClick),this.triggerStrategy==="hover"&&this.triggerElement.addEventListener("mouseenter",this.showOnMouseEnter)}},q=(t,e=document.body)=>e.querySelector(t),me=(t,e=document.body)=>Array.from(e.querySelectorAll(t)),k=(t,e,i)=>{let n=new CustomEvent(e,{detail:i});t.dispatchEvent(n)};function fe(t){let e=()=>{document.querySelector("[data-fx-component]:not([data-component-initialized])")?requestAnimationFrame(e):t()};e()}var B="data-fx-teleport-root",W="data-fx-teleported",ge={append:()=>{},remove:()=>{},restore:()=>{}};function ve(t,e,i="move"){var n;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(i))throw new Error(`Invalid teleport mode: ${i}. Must be "move" or "detachable".`);if((n=t.parentElement)!=null&&n.closest(`[${B}]`))return ge;t.setAttribute(B,"");let o=document.createComment("teleporter-placeholder"),s=t.parentNode;return s&&s.insertBefore(o,t),i==="move"?(t.parentNode&&(e.appendChild(t),t.setAttribute(W,"")),{append(){t.parentNode!==e&&(e.appendChild(t),t.setAttribute(W,""))},remove(){o!=null&&o.parentNode&&t.parentNode&&o.parentNode.insertBefore(t,o)},restore(){o!=null&&o.parentNode&&t.parentNode!==s&&o.parentNode.insertBefore(t,o)}}):(t.parentNode&&(e.appendChild(t),t.setAttribute(W,"")),{append(){e.contains(t)||e.appendChild(t)},remove(){t.parentNode&&t.remove()},restore(){o!=null&&o.parentNode&&!t.parentNode&&o.parentNode.insertBefore(t,o)}})}var f=class{static initGlobalRegistry(){window.$flexillaInstances||(window.$flexillaInstances={})}static register(e,i,n){return this.initGlobalRegistry(),window.$flexillaInstances[e]||(window.$flexillaInstances[e]=[]),this.getInstance(e,i)||(window.$flexillaInstances[e].push({element:i,instance:n}),n)}static getInstance(e,i){var n,o;return this.initGlobalRegistry(),(o=(n=window.$flexillaInstances[e])==null?void 0:n.find(s=>s.element===i))==null?void 0:o.instance}static removeInstance(e,i){this.initGlobalRegistry(),window.$flexillaInstances[e]&&(window.$flexillaInstances[e]=window.$flexillaInstances[e].filter(n=>n.element!==i))}static setup(e){e.setAttribute("data-fx-component","fx")}static initialized(e){e.setAttribute("data-component-initialized","initialized")}},ue={teleport:!0,teleportMode:"move"},I=class t{constructor(e,i={}){a(this,"triggerElement"),a(this,"contentElement"),a(this,"options"),a(this,"PopoverInstance"),a(this,"triggerStrategy"),a(this,"placement"),a(this,"offsetDistance"),a(this,"preventFromCloseOutside"),a(this,"preventFromCloseInside"),a(this,"defaultState"),a(this,"experimentalOptions"),a(this,"teleporter"),a(this,"moveElOnInit",()=>{this.experimentalOptions.teleport&&fe(()=>{this.experimentalOptions.teleportMode==="detachable"?this.teleporter.remove():this.teleporter.append()})}),a(this,"moveEl",()=>{this.experimentalOptions.teleport&&this.experimentalOptions.teleportMode==="detachable"&&this.teleporter.remove()}),a(this,"restoreEl",()=>{this.experimentalOptions.teleport&&this.experimentalOptions.teleportMode==="detachable"&&this.teleporter.append()}),a(this,"beforeShow",()=>{this.restoreEl()}),a(this,"onHide",()=>{var s,r;(r=(s=this.options).onHide)==null||r.call(s),this.moveEl(),k(this.contentElement,"popover-hide",{isHidden:!0})}),a(this,"onShow",()=>{var s,r;(r=(s=this.options).onShow)==null||r.call(s),k(this.contentElement,"popover-show",{isHidden:!1})}),a(this,"setShowOptions",({placement:s,offsetDistance:r})=>{this.PopoverInstance.setShowOptions({placement:s,offsetDistance:r})}),a(this,"setOptions",({placement:s,offsetDistance:r})=>{this.PopoverInstance.setPopperOptions({placement:s,offsetDistance:r})}),a(this,"setPopperTrigger",(s,r)=>{this.PopoverInstance.setPopperTrigger(s,r)}),a(this,"show",()=>{this.PopoverInstance.show()}),a(this,"hide",()=>{this.PopoverInstance.hide()}),a(this,"cleanup",()=>{this.PopoverInstance.cleanup(),f.removeInstance("popover",this.contentElement)});let n=typeof e=="string"?q(e):e;this.contentElement=n;let o=f.getInstance("popover",this.contentElement);if(o)return o;f.setup(this.contentElement),this.triggerElement=q(`[data-popover-trigger][data-popover-id=${n.getAttribute("id")}]`),this.options=i,this.triggerStrategy=n.dataset.triggerStrategy??this.options.triggerStrategy??"click",this.placement=n.dataset.placement??this.options.placement??"bottom-middle",this.offsetDistance=parseInt(`${n.dataset.offsetDistance}`)??this.options.offsetDistance??6,this.preventFromCloseOutside=n.hasAttribute("data-prevent-close-outside")??this.options.preventFromCloseOutside??!1,this.preventFromCloseInside=n.hasAttribute("data-close-inside")?!1:this.options.preventCloseFromInside??!0,this.defaultState=n.dataset.defaultState??this.options.defaultState??"close",this.experimentalOptions=Object.assign({},ue,i.experimental),this.teleporter=ve(this.contentElement,document.body,this.experimentalOptions.teleportMode),this.PopoverInstance=new R({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,onShow:this.onShow,onHide:this.onHide,onToggle:({isHidden:s})=>{var r,h;(h=(r=this.options).onToggle)==null||h.call(r,{isHidden:s}),k(this.contentElement,"popover-toggle",{isHidden:s})},popper:this.options.popper}}),this.moveElOnInit(),f.register("popover",this.contentElement,this),f.initialized(this.contentElement)}static init(e,i){return new t(e,i)}static autoInit(e="[data-fx-popover]"){let i=me(e);for(let n of i)new t(n)}};function Ee(t){t.directive("popover",(e,{},{cleanup:i})=>{let n=new I(e);i(()=>{n.cleanup()})})}var G=Ee;document.addEventListener("alpine:init",()=>{G(window.Alpine)});})();
@@ -24,14 +24,14 @@ __export(module_exports, {
24
24
  module.exports = __toCommonJS(module_exports);
25
25
 
26
26
  // ../../node_modules/@flexilla/popover/dist/popover.js
27
- var B = Object.defineProperty;
28
- var j = (n, e, t) => e in n ? B(n, e, { enumerable: true, configurable: true, writable: true, value: t }) : n[e] = t;
29
- var a = (n, e, t) => j(n, typeof e != "symbol" ? e + "" : e, t);
30
27
  var q = Object.defineProperty;
31
28
  var G = (n, e, t) => e in n ? q(n, e, { enumerable: true, configurable: true, writable: true, value: t }) : n[e] = t;
32
- var p = (n, e, t) => G(n, typeof e != "symbol" ? e + "" : e, t);
33
- var U = "bottom";
34
- var K = ({ reference: n, popper: e }) => {
29
+ var a = (n, e, t) => G(n, typeof e != "symbol" ? e + "" : e, t);
30
+ var U = Object.defineProperty;
31
+ var K = (n, e, t) => e in n ? U(n, e, { enumerable: true, configurable: true, writable: true, value: t }) : n[e] = t;
32
+ var p = (n, e, t) => K(n, typeof e != "symbol" ? e + "" : e, t);
33
+ var V = "bottom";
34
+ var X = ({ reference: n, popper: e }) => {
35
35
  if (!n || !e)
36
36
  throw new Error("Reference or popper element is null or undefined");
37
37
  const t = /* @__PURE__ */ new WeakMap(), i = (r) => (t.has(r) || t.set(r, r.getBoundingClientRect()), t.get(r)), o = i(e), s = i(n);
@@ -45,21 +45,21 @@ var K = ({ reference: n, popper: e }) => {
45
45
  refRight: s.right
46
46
  };
47
47
  };
48
- var V = (n, e, t, i) => {
48
+ var Y = (n, e, t, i) => {
49
49
  const o = t, s = i - (t + e);
50
50
  return o >= (n - e) / 2 && s >= (n - e) / 2;
51
51
  };
52
- var X = (n, e, t, i) => (n - e) / 2 <= t && t + n / 2 + e / 2 <= i;
53
- var Y = (n, e, t, i, o) => t > o - i ? e() ? window.innerHeight - o : t - o : n() ? 0 : t + i;
54
- var J = (n, e, t, i) => n <= i && t - n <= e;
55
- var Q = (n, e, t, i) => t <= i && -n <= e;
56
- var Z = (n, e, t, i, o, s) => {
52
+ var J = (n, e, t, i) => (n - e) / 2 <= t && t + n / 2 + e / 2 <= i;
53
+ var Q = (n, e, t, i, o) => t > o - i ? e() ? window.innerHeight - o : t - o : n() ? 0 : t + i;
54
+ var Z = (n, e, t, i) => n <= i && t - n <= e;
55
+ var _ = (n, e, t, i) => t <= i && -n <= e;
56
+ var ee = (n, e, t, i, o, s) => {
57
57
  const r = o - t - s, h = t - i, d = t + s - i + (o - t - s), c = r >= 0 ? o - i : h >= 0 ? t - i : t;
58
58
  return n() ? 0 : e() ? d : c;
59
59
  };
60
- var _ = (n, e, t, i) => n <= t && e - n - i >= n;
61
- var ee = (n, e) => n >= e;
62
- var te = ({
60
+ var te = (n, e, t, i) => n <= t && e - n - i >= n;
61
+ var ne = (n, e) => n >= e;
62
+ var ie = ({
63
63
  placement: n,
64
64
  refWidth: e,
65
65
  refTop: t,
@@ -71,23 +71,23 @@ var te = ({
71
71
  windowWidth: d,
72
72
  offsetDistance: c
73
73
  }) => {
74
- const m = d - i - e, v = i, x = h - t - o, C = t, u = () => Y(
75
- () => Q(t, o, r, h),
76
- () => J(t, o, r, h),
74
+ const m = d - i - e, u = i, x = h - t - o, C = t, v = () => Q(
75
+ () => _(t, o, r, h),
76
+ () => Z(t, o, r, h),
77
77
  t,
78
78
  o,
79
79
  r
80
- ), E = () => Z(
81
- () => _(i, d, s, e),
82
- () => ee(i, s),
80
+ ), E = () => ee(
81
+ () => te(i, d, s, e),
82
+ () => ne(i, s),
83
83
  i,
84
84
  s,
85
85
  d,
86
86
  e
87
- ), D = () => V(s, e, i, d) ? i + e / 2 - s / 2 : E(), M = () => X(r, o, t, h) ? t + o / 2 - r / 2 : u(), T = () => i + s <= d ? i : E(), y = () => i + e - s >= 0 ? i + e - s : E(), O = () => t + r <= h ? t : u(), z = () => t + o - r >= 0 ? t + o - r : u();
87
+ ), D = () => Y(s, e, i, d) ? i + e / 2 - s / 2 : E(), M = () => J(r, o, t, h) ? t + o / 2 - r / 2 : v(), T = () => i + s <= d ? i : E(), y = () => i + e - s >= 0 ? i + e - s : E(), O = () => t + r <= h ? t : v(), j = () => t + o - r >= 0 ? t + o - r : v();
88
88
  let f = 0, g = 0;
89
- const k = t - r - c, S = t + o + c, L = i - s - c, I = i + e + c, W = C >= r + c, F = x >= r + c, R = v >= s + c, $ = m >= s + c;
90
- switch (n.startsWith("top") ? g = W ? k : F ? S : Math.max(k, S) : n.startsWith("bottom") ? g = F ? S : W ? k : Math.max(S) : n.startsWith("left") ? f = R ? L : $ ? I : Math.max(L, I) : n.startsWith("right") && (f = $ ? I : R ? L : Math.max(I, L)), n) {
89
+ const k = t - r - c, S = t + o + c, L = i - s - c, I = i + e + c, F = C >= r + c, $ = x >= r + c, R = u >= s + c, A = m >= s + c;
90
+ switch (n.startsWith("top") ? g = F ? k : $ ? S : Math.max(k, S) : n.startsWith("bottom") ? g = $ ? S : F ? k : Math.max(S) : n.startsWith("left") ? f = R ? L : A ? I : Math.max(L, I) : n.startsWith("right") && (f = A ? I : R ? L : Math.max(I, L)), n) {
91
91
  case "bottom":
92
92
  case "bottom-middle":
93
93
  case "top":
@@ -114,12 +114,12 @@ var te = ({
114
114
  break;
115
115
  case "left-end":
116
116
  case "right-end":
117
- g = z();
117
+ g = j();
118
118
  break;
119
119
  }
120
120
  return { x: f, y: g };
121
121
  };
122
- var ne = class {
122
+ var se = class {
123
123
  /**
124
124
  * Flexilla Popper
125
125
  * @param reference
@@ -146,24 +146,24 @@ var ne = class {
146
146
  throw new Error("Invalid HTMLElement for Popper");
147
147
  if (typeof this.offsetDistance != "number")
148
148
  throw new Error("OffsetDistance must be a number");
149
- }), p(this, "setPopperStyleProperty", (m, v) => {
150
- this.popper.style.setProperty("--fx-popper-placement-x", `${m}px`), this.popper.style.setProperty("--fx-popper-placement-y", `${v}px`);
149
+ }), p(this, "setPopperStyleProperty", (m, u) => {
150
+ this.popper.style.setProperty("--fx-popper-placement-x", `${m}px`), this.popper.style.setProperty("--fx-popper-placement-y", `${u}px`);
151
151
  }), p(this, "setInitialStyles", () => {
152
152
  this.popper.style.setProperty("--fx-popper-placement-x", ""), this.popper.style.setProperty("--fx-popper-placement-y", "");
153
153
  }), p(this, "initPlacement", () => {
154
154
  var m;
155
155
  this.validateElements(), this.setInitialStyles();
156
- const v = window.innerWidth, x = window.innerHeight, { popperHeight: C, popperWidth: u, refHeight: E, refWidth: D, refLeft: M, refTop: T } = K({ reference: this.reference, popper: this.popper }), { x: y, y: O } = te(
156
+ const u = window.innerWidth, x = window.innerHeight, { popperHeight: C, popperWidth: v, refHeight: E, refWidth: D, refLeft: M, refTop: T } = X({ reference: this.reference, popper: this.popper }), { x: y, y: O } = ie(
157
157
  {
158
158
  placement: this.placement,
159
159
  refWidth: D,
160
160
  refTop: T,
161
161
  refLeft: M,
162
- popperWidth: u,
162
+ popperWidth: v,
163
163
  refHeight: E,
164
164
  popperHeight: C,
165
165
  windowHeight: x,
166
- windowWidth: v,
166
+ windowWidth: u,
167
167
  offsetDistance: this.offsetDistance
168
168
  }
169
169
  );
@@ -181,7 +181,7 @@ var ne = class {
181
181
  });
182
182
  const {
183
183
  offsetDistance: o = 10,
184
- placement: s = U,
184
+ placement: s = V,
185
185
  eventEffect: r = {},
186
186
  onUpdate: h
187
187
  } = i;
@@ -205,15 +205,15 @@ var ne = class {
205
205
  this.placement = e, this.offsetDistance = t || this.offsetDistance, this.initPlacement(), this.attachWindowEvent();
206
206
  }
207
207
  };
208
- var ie = Object.defineProperty;
209
- var se = (n, e, t) => e in n ? ie(n, e, { enumerable: true, configurable: true, writable: true, value: t }) : n[e] = t;
210
- var l = (n, e, t) => se(n, typeof e != "symbol" ? e + "" : e, t);
211
- var oe = (n, e = document.body) => e.querySelector(n);
208
+ var oe = Object.defineProperty;
209
+ var re = (n, e, t) => e in n ? oe(n, e, { enumerable: true, configurable: true, writable: true, value: t }) : n[e] = t;
210
+ var l = (n, e, t) => re(n, typeof e != "symbol" ? e + "" : e, t);
211
+ var ae = (n, e = document.body) => e.querySelector(n);
212
212
  var N = (n, e) => {
213
213
  for (const [t, i] of Object.entries(e))
214
214
  n.setAttribute(t, i);
215
215
  };
216
- var re = ({
216
+ var le = ({
217
217
  element: n,
218
218
  callback: e,
219
219
  type: t,
@@ -228,18 +228,18 @@ var re = ({
228
228
  } else
229
229
  e();
230
230
  };
231
- var ae = ({
231
+ var he = ({
232
232
  element: n,
233
233
  callback: e
234
234
  }) => {
235
- re({
235
+ le({
236
236
  element: n,
237
237
  callback: e,
238
238
  type: "transition",
239
239
  keysCheck: ["all 0s ease 0s", "all"]
240
240
  });
241
241
  };
242
- var le = (n, e, t) => {
242
+ var pe = (n, e, t) => {
243
243
  const i = new CustomEvent(e, { detail: t });
244
244
  n.dispatchEvent(i);
245
245
  };
@@ -251,7 +251,7 @@ var w = ({ state: n, trigger: e, popper: t }) => {
251
251
  "aria-expanded": `${i}`
252
252
  });
253
253
  };
254
- var he = class {
254
+ var ce = class {
255
255
  /**
256
256
  * Creates an instance of CreateOverlay
257
257
  * @param {Object} params - The initialization parameters
@@ -260,7 +260,7 @@ var he = class {
260
260
  * @param {OverlayOptions} [params.options] - Configuration options for the overlay
261
261
  */
262
262
  constructor({ trigger: e, content: t, options: i = {} }) {
263
- l(this, "triggerElement"), l(this, "contentElement"), l(this, "triggerStrategy"), l(this, "placement"), l(this, "offsetDistance"), l(this, "preventFromCloseOutside"), l(this, "preventFromCloseInside"), l(this, "options"), l(this, "defaultState"), l(this, "popper"), l(this, "eventEffect"), l(this, "getElement", (s) => typeof s == "string" ? oe(s) : s instanceof HTMLElement ? s : void 0), l(this, "handleDocumentClick", (s) => {
263
+ l(this, "triggerElement"), l(this, "contentElement"), l(this, "triggerStrategy"), l(this, "placement"), l(this, "offsetDistance"), l(this, "preventFromCloseOutside"), l(this, "preventFromCloseInside"), l(this, "options"), l(this, "defaultState"), l(this, "popper"), l(this, "eventEffect"), l(this, "getElement", (s) => typeof s == "string" ? ae(s) : s instanceof HTMLElement ? s : void 0), l(this, "handleDocumentClick", (s) => {
264
264
  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());
265
265
  }), l(this, "handleKeyDown", (s) => {
266
266
  s.preventDefault(), this.triggerStrategy !== "hover" && s.key === "Escape" && this.contentElement.getAttribute("data-state") === "open" && (this.preventFromCloseOutside || this.hide());
@@ -306,7 +306,7 @@ var he = class {
306
306
  throw new Error("Trigger element must be a valid HTML element");
307
307
  if (!(this.contentElement instanceof HTMLElement))
308
308
  throw new Error("Content element must be a valid HTML element");
309
- 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 || false, this.preventFromCloseInside = this.options.preventCloseFromInside || false, this.defaultState = this.options.defaultState || "close", this.eventEffect = (o = this.options.popper) == null ? void 0 : o.eventEffect, this.popper = new ne(
309
+ 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 || false, this.preventFromCloseInside = this.options.preventCloseFromInside || false, this.defaultState = this.options.defaultState || "close", this.eventEffect = (o = this.options.popper) == null ? void 0 : o.eventEffect, this.popper = new se(
310
310
  this.triggerElement,
311
311
  this.contentElement,
312
312
  {
@@ -339,7 +339,7 @@ var he = class {
339
339
  hide() {
340
340
  var e, t, i;
341
341
  let o = false;
342
- le(this.contentElement, "before-hide", {
342
+ pe(this.contentElement, "before-hide", {
343
343
  setExitAction: (r) => {
344
344
  o = r;
345
345
  }
@@ -349,7 +349,7 @@ var he = class {
349
349
  state: "close",
350
350
  popper: this.contentElement,
351
351
  trigger: this.triggerElement
352
- }), 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)), ae({
352
+ }), 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)), he({
353
353
  element: this.contentElement,
354
354
  callback: () => {
355
355
  var r, h;
@@ -369,13 +369,13 @@ var he = class {
369
369
  }), this.triggerElement.addEventListener("click", this.toggleStateOnClick), this.triggerStrategy === "hover" && this.triggerElement.addEventListener("mouseenter", this.showOnMouseEnter);
370
370
  }
371
371
  };
372
- var A = (n, e = document.body) => e.querySelector(n);
373
- var pe = (n, e = document.body) => Array.from(e.querySelectorAll(n));
372
+ var z = (n, e = document.body) => e.querySelector(n);
373
+ var de = (n, e = document.body) => Array.from(e.querySelectorAll(n));
374
374
  var H = (n, e, t) => {
375
375
  const i = new CustomEvent(e, { detail: t });
376
376
  n.dispatchEvent(i);
377
377
  };
378
- function ce(n) {
378
+ function me(n) {
379
379
  const e = () => {
380
380
  document.querySelector(
381
381
  "[data-fx-component]:not([data-component-initialized])"
@@ -383,26 +383,40 @@ function ce(n) {
383
383
  };
384
384
  e();
385
385
  }
386
- function de(n, e, t = "move") {
386
+ var B = "data-fx-teleport-root";
387
+ var P = "data-fx-teleported";
388
+ var fe = {
389
+ append: () => {
390
+ },
391
+ remove: () => {
392
+ },
393
+ restore: () => {
394
+ }
395
+ };
396
+ function ge(n, e, t = "move") {
397
+ var i;
387
398
  if (!(n instanceof HTMLElement))
388
399
  throw new Error("Source element must be an HTMLElement");
389
400
  if (!(e instanceof HTMLElement))
390
401
  throw new Error("Target element must be an HTMLElement");
391
402
  if (!["move", "detachable"].includes(t))
392
403
  throw new Error(`Invalid teleport mode: ${t}. Must be "move" or "detachable".`);
393
- let i = document.createComment("teleporter-placeholder");
394
- const o = n.parentNode;
395
- return o ? o.insertBefore(i, n) : console.warn("Element has no parent; placeholder not inserted."), t === "move" ? (n.parentNode && e.appendChild(n), {
404
+ if ((i = n.parentElement) != null && i.closest(`[${B}]`))
405
+ return fe;
406
+ n.setAttribute(B, "");
407
+ let o = document.createComment("teleporter-placeholder");
408
+ const s = n.parentNode;
409
+ return s && s.insertBefore(o, n), t === "move" ? (n.parentNode && (e.appendChild(n), n.setAttribute(P, "")), {
396
410
  append() {
397
- n.parentNode !== e && e.appendChild(n);
411
+ n.parentNode !== e && (e.appendChild(n), n.setAttribute(P, ""));
398
412
  },
399
413
  remove() {
400
- i != null && i.parentNode && n.parentNode && i.parentNode.insertBefore(n, i);
414
+ o != null && o.parentNode && n.parentNode && o.parentNode.insertBefore(n, o);
401
415
  },
402
416
  restore() {
403
- i != null && i.parentNode && n.parentNode !== o && i.parentNode.insertBefore(n, i);
417
+ o != null && o.parentNode && n.parentNode !== s && o.parentNode.insertBefore(n, o);
404
418
  }
405
- }) : (n.parentNode && e.appendChild(n), {
419
+ }) : (n.parentNode && (e.appendChild(n), n.setAttribute(P, "")), {
406
420
  append() {
407
421
  e.contains(n) || e.appendChild(n);
408
422
  },
@@ -410,7 +424,7 @@ function de(n, e, t = "move") {
410
424
  n.parentNode && n.remove();
411
425
  },
412
426
  restore() {
413
- i != null && i.parentNode && !n.parentNode && i.parentNode.insertBefore(n, i);
427
+ o != null && o.parentNode && !n.parentNode && o.parentNode.insertBefore(n, o);
414
428
  }
415
429
  });
416
430
  }
@@ -439,11 +453,11 @@ var b = class {
439
453
  e.setAttribute("data-component-initialized", "initialized");
440
454
  }
441
455
  };
442
- var me = {
456
+ var ue = {
443
457
  teleport: true,
444
458
  teleportMode: "move"
445
459
  };
446
- var P = class _P {
460
+ var W = class _W {
447
461
  /**
448
462
  * Creates a new Popover instance.
449
463
  * @param {string | HTMLElement} popoverEl - The popover content element or its selector.
@@ -474,7 +488,7 @@ var P = class _P {
474
488
  a(this, "experimentalOptions");
475
489
  a(this, "teleporter");
476
490
  a(this, "moveElOnInit", () => {
477
- this.experimentalOptions.teleport && ce(() => {
491
+ this.experimentalOptions.teleport && me(() => {
478
492
  this.experimentalOptions.teleportMode === "detachable" ? this.teleporter.remove() : this.teleporter.append();
479
493
  });
480
494
  });
@@ -517,12 +531,12 @@ var P = class _P {
517
531
  a(this, "cleanup", () => {
518
532
  this.PopoverInstance.cleanup(), b.removeInstance("popover", this.contentElement);
519
533
  });
520
- const i = typeof e == "string" ? A(e) : e;
534
+ const i = typeof e == "string" ? z(e) : e;
521
535
  this.contentElement = i;
522
536
  const o = b.getInstance("popover", this.contentElement);
523
537
  if (o)
524
538
  return o;
525
- b.setup(this.contentElement), this.triggerElement = A(`[data-popover-trigger][data-popover-id=${i.getAttribute("id")}]`), this.options = t, this.triggerStrategy = (_b = (_a = i.dataset.triggerStrategy) != null ? _a : this.options.triggerStrategy) != null ? _b : "click", this.placement = (_d = (_c = i.dataset.placement) != null ? _c : this.options.placement) != null ? _d : "bottom-middle", this.offsetDistance = (_f = (_e = parseInt(`${i.dataset.offsetDistance}`)) != null ? _e : this.options.offsetDistance) != null ? _f : 6, this.preventFromCloseOutside = (_h = (_g = i.hasAttribute("data-prevent-close-outside")) != null ? _g : this.options.preventFromCloseOutside) != null ? _h : false, this.preventFromCloseInside = i.hasAttribute("data-close-inside") ? false : (_i = this.options.preventCloseFromInside) != null ? _i : true, this.defaultState = (_k = (_j = i.dataset.defaultState) != null ? _j : this.options.defaultState) != null ? _k : "close", this.experimentalOptions = Object.assign({}, me, t.experimental), this.teleporter = de(this.contentElement, document.body, this.experimentalOptions.teleportMode), this.PopoverInstance = new he({
539
+ b.setup(this.contentElement), this.triggerElement = z(`[data-popover-trigger][data-popover-id=${i.getAttribute("id")}]`), this.options = t, this.triggerStrategy = (_b = (_a = i.dataset.triggerStrategy) != null ? _a : this.options.triggerStrategy) != null ? _b : "click", this.placement = (_d = (_c = i.dataset.placement) != null ? _c : this.options.placement) != null ? _d : "bottom-middle", this.offsetDistance = (_f = (_e = parseInt(`${i.dataset.offsetDistance}`)) != null ? _e : this.options.offsetDistance) != null ? _f : 6, this.preventFromCloseOutside = (_h = (_g = i.hasAttribute("data-prevent-close-outside")) != null ? _g : this.options.preventFromCloseOutside) != null ? _h : false, this.preventFromCloseInside = i.hasAttribute("data-close-inside") ? false : (_i = this.options.preventCloseFromInside) != null ? _i : true, this.defaultState = (_k = (_j = i.dataset.defaultState) != null ? _j : this.options.defaultState) != null ? _k : "close", this.experimentalOptions = Object.assign({}, ue, t.experimental), this.teleporter = ge(this.contentElement, document.body, this.experimentalOptions.teleportMode), this.PopoverInstance = new ce({
526
540
  trigger: this.triggerElement,
527
541
  content: this.contentElement,
528
542
  options: {
@@ -557,7 +571,7 @@ var P = class _P {
557
571
  * });
558
572
  */
559
573
  static init(e, t) {
560
- return new _P(e, t);
574
+ return new _W(e, t);
561
575
  }
562
576
  /**
563
577
  * Automatically initializes all popover elements matching the specified selector.
@@ -570,16 +584,16 @@ var P = class _P {
570
584
  * Popover.autoInit('.custom-popover');
571
585
  */
572
586
  static autoInit(e = "[data-fx-popover]") {
573
- const t = pe(e);
587
+ const t = de(e);
574
588
  for (const i of t)
575
- new _P(i);
589
+ new _W(i);
576
590
  }
577
591
  };
578
592
 
579
593
  // src/index.js
580
594
  function Popover(Alpine) {
581
595
  Alpine.directive("popover", (el, {}, { cleanup }) => {
582
- const popover_ = new P(el);
596
+ const popover_ = new W(el);
583
597
  cleanup(() => {
584
598
  popover_.cleanup();
585
599
  });
@@ -1,12 +1,12 @@
1
1
  // ../../node_modules/@flexilla/popover/dist/popover.js
2
- var B = Object.defineProperty;
3
- var j = (n, e, t) => e in n ? B(n, e, { enumerable: true, configurable: true, writable: true, value: t }) : n[e] = t;
4
- var a = (n, e, t) => j(n, typeof e != "symbol" ? e + "" : e, t);
5
2
  var q = Object.defineProperty;
6
3
  var G = (n, e, t) => e in n ? q(n, e, { enumerable: true, configurable: true, writable: true, value: t }) : n[e] = t;
7
- var p = (n, e, t) => G(n, typeof e != "symbol" ? e + "" : e, t);
8
- var U = "bottom";
9
- var K = ({ reference: n, popper: e }) => {
4
+ var a = (n, e, t) => G(n, typeof e != "symbol" ? e + "" : e, t);
5
+ var U = Object.defineProperty;
6
+ var K = (n, e, t) => e in n ? U(n, e, { enumerable: true, configurable: true, writable: true, value: t }) : n[e] = t;
7
+ var p = (n, e, t) => K(n, typeof e != "symbol" ? e + "" : e, t);
8
+ var V = "bottom";
9
+ var X = ({ reference: n, popper: e }) => {
10
10
  if (!n || !e)
11
11
  throw new Error("Reference or popper element is null or undefined");
12
12
  const t = /* @__PURE__ */ new WeakMap(), i = (r) => (t.has(r) || t.set(r, r.getBoundingClientRect()), t.get(r)), o = i(e), s = i(n);
@@ -20,21 +20,21 @@ var K = ({ reference: n, popper: e }) => {
20
20
  refRight: s.right
21
21
  };
22
22
  };
23
- var V = (n, e, t, i) => {
23
+ var Y = (n, e, t, i) => {
24
24
  const o = t, s = i - (t + e);
25
25
  return o >= (n - e) / 2 && s >= (n - e) / 2;
26
26
  };
27
- var X = (n, e, t, i) => (n - e) / 2 <= t && t + n / 2 + e / 2 <= i;
28
- var Y = (n, e, t, i, o) => t > o - i ? e() ? window.innerHeight - o : t - o : n() ? 0 : t + i;
29
- var J = (n, e, t, i) => n <= i && t - n <= e;
30
- var Q = (n, e, t, i) => t <= i && -n <= e;
31
- var Z = (n, e, t, i, o, s) => {
27
+ var J = (n, e, t, i) => (n - e) / 2 <= t && t + n / 2 + e / 2 <= i;
28
+ var Q = (n, e, t, i, o) => t > o - i ? e() ? window.innerHeight - o : t - o : n() ? 0 : t + i;
29
+ var Z = (n, e, t, i) => n <= i && t - n <= e;
30
+ var _ = (n, e, t, i) => t <= i && -n <= e;
31
+ var ee = (n, e, t, i, o, s) => {
32
32
  const r = o - t - s, h = t - i, d = t + s - i + (o - t - s), c = r >= 0 ? o - i : h >= 0 ? t - i : t;
33
33
  return n() ? 0 : e() ? d : c;
34
34
  };
35
- var _ = (n, e, t, i) => n <= t && e - n - i >= n;
36
- var ee = (n, e) => n >= e;
37
- var te = ({
35
+ var te = (n, e, t, i) => n <= t && e - n - i >= n;
36
+ var ne = (n, e) => n >= e;
37
+ var ie = ({
38
38
  placement: n,
39
39
  refWidth: e,
40
40
  refTop: t,
@@ -46,23 +46,23 @@ var te = ({
46
46
  windowWidth: d,
47
47
  offsetDistance: c
48
48
  }) => {
49
- const m = d - i - e, v = i, x = h - t - o, C = t, u = () => Y(
50
- () => Q(t, o, r, h),
51
- () => J(t, o, r, h),
49
+ const m = d - i - e, u = i, x = h - t - o, C = t, v = () => Q(
50
+ () => _(t, o, r, h),
51
+ () => Z(t, o, r, h),
52
52
  t,
53
53
  o,
54
54
  r
55
- ), E = () => Z(
56
- () => _(i, d, s, e),
57
- () => ee(i, s),
55
+ ), E = () => ee(
56
+ () => te(i, d, s, e),
57
+ () => ne(i, s),
58
58
  i,
59
59
  s,
60
60
  d,
61
61
  e
62
- ), D = () => V(s, e, i, d) ? i + e / 2 - s / 2 : E(), M = () => X(r, o, t, h) ? t + o / 2 - r / 2 : u(), T = () => i + s <= d ? i : E(), y = () => i + e - s >= 0 ? i + e - s : E(), O = () => t + r <= h ? t : u(), z = () => t + o - r >= 0 ? t + o - r : u();
62
+ ), D = () => Y(s, e, i, d) ? i + e / 2 - s / 2 : E(), M = () => J(r, o, t, h) ? t + o / 2 - r / 2 : v(), T = () => i + s <= d ? i : E(), y = () => i + e - s >= 0 ? i + e - s : E(), O = () => t + r <= h ? t : v(), j = () => t + o - r >= 0 ? t + o - r : v();
63
63
  let f = 0, g = 0;
64
- const k = t - r - c, S = t + o + c, L = i - s - c, I = i + e + c, W = C >= r + c, F = x >= r + c, R = v >= s + c, $ = m >= s + c;
65
- switch (n.startsWith("top") ? g = W ? k : F ? S : Math.max(k, S) : n.startsWith("bottom") ? g = F ? S : W ? k : Math.max(S) : n.startsWith("left") ? f = R ? L : $ ? I : Math.max(L, I) : n.startsWith("right") && (f = $ ? I : R ? L : Math.max(I, L)), n) {
64
+ const k = t - r - c, S = t + o + c, L = i - s - c, I = i + e + c, F = C >= r + c, $ = x >= r + c, R = u >= s + c, A = m >= s + c;
65
+ switch (n.startsWith("top") ? g = F ? k : $ ? S : Math.max(k, S) : n.startsWith("bottom") ? g = $ ? S : F ? k : Math.max(S) : n.startsWith("left") ? f = R ? L : A ? I : Math.max(L, I) : n.startsWith("right") && (f = A ? I : R ? L : Math.max(I, L)), n) {
66
66
  case "bottom":
67
67
  case "bottom-middle":
68
68
  case "top":
@@ -89,12 +89,12 @@ var te = ({
89
89
  break;
90
90
  case "left-end":
91
91
  case "right-end":
92
- g = z();
92
+ g = j();
93
93
  break;
94
94
  }
95
95
  return { x: f, y: g };
96
96
  };
97
- var ne = class {
97
+ var se = class {
98
98
  /**
99
99
  * Flexilla Popper
100
100
  * @param reference
@@ -121,24 +121,24 @@ var ne = class {
121
121
  throw new Error("Invalid HTMLElement for Popper");
122
122
  if (typeof this.offsetDistance != "number")
123
123
  throw new Error("OffsetDistance must be a number");
124
- }), p(this, "setPopperStyleProperty", (m, v) => {
125
- this.popper.style.setProperty("--fx-popper-placement-x", `${m}px`), this.popper.style.setProperty("--fx-popper-placement-y", `${v}px`);
124
+ }), p(this, "setPopperStyleProperty", (m, u) => {
125
+ this.popper.style.setProperty("--fx-popper-placement-x", `${m}px`), this.popper.style.setProperty("--fx-popper-placement-y", `${u}px`);
126
126
  }), p(this, "setInitialStyles", () => {
127
127
  this.popper.style.setProperty("--fx-popper-placement-x", ""), this.popper.style.setProperty("--fx-popper-placement-y", "");
128
128
  }), p(this, "initPlacement", () => {
129
129
  var m;
130
130
  this.validateElements(), this.setInitialStyles();
131
- const v = window.innerWidth, x = window.innerHeight, { popperHeight: C, popperWidth: u, refHeight: E, refWidth: D, refLeft: M, refTop: T } = K({ reference: this.reference, popper: this.popper }), { x: y, y: O } = te(
131
+ const u = window.innerWidth, x = window.innerHeight, { popperHeight: C, popperWidth: v, refHeight: E, refWidth: D, refLeft: M, refTop: T } = X({ reference: this.reference, popper: this.popper }), { x: y, y: O } = ie(
132
132
  {
133
133
  placement: this.placement,
134
134
  refWidth: D,
135
135
  refTop: T,
136
136
  refLeft: M,
137
- popperWidth: u,
137
+ popperWidth: v,
138
138
  refHeight: E,
139
139
  popperHeight: C,
140
140
  windowHeight: x,
141
- windowWidth: v,
141
+ windowWidth: u,
142
142
  offsetDistance: this.offsetDistance
143
143
  }
144
144
  );
@@ -156,7 +156,7 @@ var ne = class {
156
156
  });
157
157
  const {
158
158
  offsetDistance: o = 10,
159
- placement: s = U,
159
+ placement: s = V,
160
160
  eventEffect: r = {},
161
161
  onUpdate: h
162
162
  } = i;
@@ -180,15 +180,15 @@ var ne = class {
180
180
  this.placement = e, this.offsetDistance = t || this.offsetDistance, this.initPlacement(), this.attachWindowEvent();
181
181
  }
182
182
  };
183
- var ie = Object.defineProperty;
184
- var se = (n, e, t) => e in n ? ie(n, e, { enumerable: true, configurable: true, writable: true, value: t }) : n[e] = t;
185
- var l = (n, e, t) => se(n, typeof e != "symbol" ? e + "" : e, t);
186
- var oe = (n, e = document.body) => e.querySelector(n);
183
+ var oe = Object.defineProperty;
184
+ var re = (n, e, t) => e in n ? oe(n, e, { enumerable: true, configurable: true, writable: true, value: t }) : n[e] = t;
185
+ var l = (n, e, t) => re(n, typeof e != "symbol" ? e + "" : e, t);
186
+ var ae = (n, e = document.body) => e.querySelector(n);
187
187
  var N = (n, e) => {
188
188
  for (const [t, i] of Object.entries(e))
189
189
  n.setAttribute(t, i);
190
190
  };
191
- var re = ({
191
+ var le = ({
192
192
  element: n,
193
193
  callback: e,
194
194
  type: t,
@@ -203,18 +203,18 @@ var re = ({
203
203
  } else
204
204
  e();
205
205
  };
206
- var ae = ({
206
+ var he = ({
207
207
  element: n,
208
208
  callback: e
209
209
  }) => {
210
- re({
210
+ le({
211
211
  element: n,
212
212
  callback: e,
213
213
  type: "transition",
214
214
  keysCheck: ["all 0s ease 0s", "all"]
215
215
  });
216
216
  };
217
- var le = (n, e, t) => {
217
+ var pe = (n, e, t) => {
218
218
  const i = new CustomEvent(e, { detail: t });
219
219
  n.dispatchEvent(i);
220
220
  };
@@ -226,7 +226,7 @@ var w = ({ state: n, trigger: e, popper: t }) => {
226
226
  "aria-expanded": `${i}`
227
227
  });
228
228
  };
229
- var he = class {
229
+ var ce = class {
230
230
  /**
231
231
  * Creates an instance of CreateOverlay
232
232
  * @param {Object} params - The initialization parameters
@@ -235,7 +235,7 @@ var he = class {
235
235
  * @param {OverlayOptions} [params.options] - Configuration options for the overlay
236
236
  */
237
237
  constructor({ trigger: e, content: t, options: i = {} }) {
238
- l(this, "triggerElement"), l(this, "contentElement"), l(this, "triggerStrategy"), l(this, "placement"), l(this, "offsetDistance"), l(this, "preventFromCloseOutside"), l(this, "preventFromCloseInside"), l(this, "options"), l(this, "defaultState"), l(this, "popper"), l(this, "eventEffect"), l(this, "getElement", (s) => typeof s == "string" ? oe(s) : s instanceof HTMLElement ? s : void 0), l(this, "handleDocumentClick", (s) => {
238
+ l(this, "triggerElement"), l(this, "contentElement"), l(this, "triggerStrategy"), l(this, "placement"), l(this, "offsetDistance"), l(this, "preventFromCloseOutside"), l(this, "preventFromCloseInside"), l(this, "options"), l(this, "defaultState"), l(this, "popper"), l(this, "eventEffect"), l(this, "getElement", (s) => typeof s == "string" ? ae(s) : s instanceof HTMLElement ? s : void 0), l(this, "handleDocumentClick", (s) => {
239
239
  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());
240
240
  }), l(this, "handleKeyDown", (s) => {
241
241
  s.preventDefault(), this.triggerStrategy !== "hover" && s.key === "Escape" && this.contentElement.getAttribute("data-state") === "open" && (this.preventFromCloseOutside || this.hide());
@@ -281,7 +281,7 @@ var he = class {
281
281
  throw new Error("Trigger element must be a valid HTML element");
282
282
  if (!(this.contentElement instanceof HTMLElement))
283
283
  throw new Error("Content element must be a valid HTML element");
284
- 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 || false, this.preventFromCloseInside = this.options.preventCloseFromInside || false, this.defaultState = this.options.defaultState || "close", this.eventEffect = (o = this.options.popper) == null ? void 0 : o.eventEffect, this.popper = new ne(
284
+ 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 || false, this.preventFromCloseInside = this.options.preventCloseFromInside || false, this.defaultState = this.options.defaultState || "close", this.eventEffect = (o = this.options.popper) == null ? void 0 : o.eventEffect, this.popper = new se(
285
285
  this.triggerElement,
286
286
  this.contentElement,
287
287
  {
@@ -314,7 +314,7 @@ var he = class {
314
314
  hide() {
315
315
  var e, t, i;
316
316
  let o = false;
317
- le(this.contentElement, "before-hide", {
317
+ pe(this.contentElement, "before-hide", {
318
318
  setExitAction: (r) => {
319
319
  o = r;
320
320
  }
@@ -324,7 +324,7 @@ var he = class {
324
324
  state: "close",
325
325
  popper: this.contentElement,
326
326
  trigger: this.triggerElement
327
- }), 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)), ae({
327
+ }), 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)), he({
328
328
  element: this.contentElement,
329
329
  callback: () => {
330
330
  var r, h;
@@ -344,13 +344,13 @@ var he = class {
344
344
  }), this.triggerElement.addEventListener("click", this.toggleStateOnClick), this.triggerStrategy === "hover" && this.triggerElement.addEventListener("mouseenter", this.showOnMouseEnter);
345
345
  }
346
346
  };
347
- var A = (n, e = document.body) => e.querySelector(n);
348
- var pe = (n, e = document.body) => Array.from(e.querySelectorAll(n));
347
+ var z = (n, e = document.body) => e.querySelector(n);
348
+ var de = (n, e = document.body) => Array.from(e.querySelectorAll(n));
349
349
  var H = (n, e, t) => {
350
350
  const i = new CustomEvent(e, { detail: t });
351
351
  n.dispatchEvent(i);
352
352
  };
353
- function ce(n) {
353
+ function me(n) {
354
354
  const e = () => {
355
355
  document.querySelector(
356
356
  "[data-fx-component]:not([data-component-initialized])"
@@ -358,26 +358,40 @@ function ce(n) {
358
358
  };
359
359
  e();
360
360
  }
361
- function de(n, e, t = "move") {
361
+ var B = "data-fx-teleport-root";
362
+ var P = "data-fx-teleported";
363
+ var fe = {
364
+ append: () => {
365
+ },
366
+ remove: () => {
367
+ },
368
+ restore: () => {
369
+ }
370
+ };
371
+ function ge(n, e, t = "move") {
372
+ var i;
362
373
  if (!(n instanceof HTMLElement))
363
374
  throw new Error("Source element must be an HTMLElement");
364
375
  if (!(e instanceof HTMLElement))
365
376
  throw new Error("Target element must be an HTMLElement");
366
377
  if (!["move", "detachable"].includes(t))
367
378
  throw new Error(`Invalid teleport mode: ${t}. Must be "move" or "detachable".`);
368
- let i = document.createComment("teleporter-placeholder");
369
- const o = n.parentNode;
370
- return o ? o.insertBefore(i, n) : console.warn("Element has no parent; placeholder not inserted."), t === "move" ? (n.parentNode && e.appendChild(n), {
379
+ if ((i = n.parentElement) != null && i.closest(`[${B}]`))
380
+ return fe;
381
+ n.setAttribute(B, "");
382
+ let o = document.createComment("teleporter-placeholder");
383
+ const s = n.parentNode;
384
+ return s && s.insertBefore(o, n), t === "move" ? (n.parentNode && (e.appendChild(n), n.setAttribute(P, "")), {
371
385
  append() {
372
- n.parentNode !== e && e.appendChild(n);
386
+ n.parentNode !== e && (e.appendChild(n), n.setAttribute(P, ""));
373
387
  },
374
388
  remove() {
375
- i != null && i.parentNode && n.parentNode && i.parentNode.insertBefore(n, i);
389
+ o != null && o.parentNode && n.parentNode && o.parentNode.insertBefore(n, o);
376
390
  },
377
391
  restore() {
378
- i != null && i.parentNode && n.parentNode !== o && i.parentNode.insertBefore(n, i);
392
+ o != null && o.parentNode && n.parentNode !== s && o.parentNode.insertBefore(n, o);
379
393
  }
380
- }) : (n.parentNode && e.appendChild(n), {
394
+ }) : (n.parentNode && (e.appendChild(n), n.setAttribute(P, "")), {
381
395
  append() {
382
396
  e.contains(n) || e.appendChild(n);
383
397
  },
@@ -385,7 +399,7 @@ function de(n, e, t = "move") {
385
399
  n.parentNode && n.remove();
386
400
  },
387
401
  restore() {
388
- i != null && i.parentNode && !n.parentNode && i.parentNode.insertBefore(n, i);
402
+ o != null && o.parentNode && !n.parentNode && o.parentNode.insertBefore(n, o);
389
403
  }
390
404
  });
391
405
  }
@@ -414,11 +428,11 @@ var b = class {
414
428
  e.setAttribute("data-component-initialized", "initialized");
415
429
  }
416
430
  };
417
- var me = {
431
+ var ue = {
418
432
  teleport: true,
419
433
  teleportMode: "move"
420
434
  };
421
- var P = class _P {
435
+ var W = class _W {
422
436
  /**
423
437
  * Creates a new Popover instance.
424
438
  * @param {string | HTMLElement} popoverEl - The popover content element or its selector.
@@ -448,7 +462,7 @@ var P = class _P {
448
462
  a(this, "experimentalOptions");
449
463
  a(this, "teleporter");
450
464
  a(this, "moveElOnInit", () => {
451
- this.experimentalOptions.teleport && ce(() => {
465
+ this.experimentalOptions.teleport && me(() => {
452
466
  this.experimentalOptions.teleportMode === "detachable" ? this.teleporter.remove() : this.teleporter.append();
453
467
  });
454
468
  });
@@ -491,12 +505,12 @@ var P = class _P {
491
505
  a(this, "cleanup", () => {
492
506
  this.PopoverInstance.cleanup(), b.removeInstance("popover", this.contentElement);
493
507
  });
494
- const i = typeof e == "string" ? A(e) : e;
508
+ const i = typeof e == "string" ? z(e) : e;
495
509
  this.contentElement = i;
496
510
  const o = b.getInstance("popover", this.contentElement);
497
511
  if (o)
498
512
  return o;
499
- b.setup(this.contentElement), this.triggerElement = A(`[data-popover-trigger][data-popover-id=${i.getAttribute("id")}]`), this.options = t, this.triggerStrategy = i.dataset.triggerStrategy ?? this.options.triggerStrategy ?? "click", this.placement = i.dataset.placement ?? this.options.placement ?? "bottom-middle", this.offsetDistance = parseInt(`${i.dataset.offsetDistance}`) ?? this.options.offsetDistance ?? 6, this.preventFromCloseOutside = i.hasAttribute("data-prevent-close-outside") ?? this.options.preventFromCloseOutside ?? false, this.preventFromCloseInside = i.hasAttribute("data-close-inside") ? false : this.options.preventCloseFromInside ?? true, this.defaultState = i.dataset.defaultState ?? this.options.defaultState ?? "close", this.experimentalOptions = Object.assign({}, me, t.experimental), this.teleporter = de(this.contentElement, document.body, this.experimentalOptions.teleportMode), this.PopoverInstance = new he({
513
+ b.setup(this.contentElement), this.triggerElement = z(`[data-popover-trigger][data-popover-id=${i.getAttribute("id")}]`), this.options = t, this.triggerStrategy = i.dataset.triggerStrategy ?? this.options.triggerStrategy ?? "click", this.placement = i.dataset.placement ?? this.options.placement ?? "bottom-middle", this.offsetDistance = parseInt(`${i.dataset.offsetDistance}`) ?? this.options.offsetDistance ?? 6, this.preventFromCloseOutside = i.hasAttribute("data-prevent-close-outside") ?? this.options.preventFromCloseOutside ?? false, this.preventFromCloseInside = i.hasAttribute("data-close-inside") ? false : this.options.preventCloseFromInside ?? true, this.defaultState = i.dataset.defaultState ?? this.options.defaultState ?? "close", this.experimentalOptions = Object.assign({}, ue, t.experimental), this.teleporter = ge(this.contentElement, document.body, this.experimentalOptions.teleportMode), this.PopoverInstance = new ce({
500
514
  trigger: this.triggerElement,
501
515
  content: this.contentElement,
502
516
  options: {
@@ -531,7 +545,7 @@ var P = class _P {
531
545
  * });
532
546
  */
533
547
  static init(e, t) {
534
- return new _P(e, t);
548
+ return new _W(e, t);
535
549
  }
536
550
  /**
537
551
  * Automatically initializes all popover elements matching the specified selector.
@@ -544,16 +558,16 @@ var P = class _P {
544
558
  * Popover.autoInit('.custom-popover');
545
559
  */
546
560
  static autoInit(e = "[data-fx-popover]") {
547
- const t = pe(e);
561
+ const t = de(e);
548
562
  for (const i of t)
549
- new _P(i);
563
+ new _W(i);
550
564
  }
551
565
  };
552
566
 
553
567
  // src/index.js
554
568
  function Popover(Alpine) {
555
569
  Alpine.directive("popover", (el, {}, { cleanup }) => {
556
- const popover_ = new P(el);
570
+ const popover_ = new W(el);
557
571
  cleanup(() => {
558
572
  popover_.cleanup();
559
573
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@flexilla/alpine-popover",
3
- "version": "0.3.0",
3
+ "version": "0.3.1",
4
4
  "description": "AlpineJS plugin for adding Popover 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/popover": "^1.0.3"
63
+ "@flexilla/popover": "^1.0.4"
64
64
  },
65
- "gitHead": "9ac916234e8bb129724224819f3b59420b34081f"
65
+ "gitHead": "ae2c044692676906202ec6d8bb7a61a553c3bf74"
66
66
  }