@flexilla/alpine-popover 0.0.0 → 0.0.2

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
@@ -2,7 +2,7 @@
2
2
  // ../../node_modules/@flexilla/popover/dist/popover.js
3
3
  var K = Object.defineProperty;
4
4
  var U = (i, e, t) => e in i ? K(i, e, { enumerable: true, configurable: true, writable: true, value: t }) : i[e] = t;
5
- var p = (i, e, t) => U(i, typeof e != "symbol" ? e + "" : e, t);
5
+ var h = (i, e, t) => U(i, typeof e != "symbol" ? e + "" : e, t);
6
6
  var A = (i, e = document.body) => e.querySelector(i);
7
7
  var j = (i, e = document.body) => Array.from(e.querySelectorAll(i));
8
8
  var M = (i, e, t) => {
@@ -14,20 +14,22 @@
14
14
  var a = (i, e, t) => B(i, typeof e != "symbol" ? e + "" : e, t);
15
15
  var J = "bottom";
16
16
  var N = ({ reference: i, popper: e }) => {
17
- const t = e.getBoundingClientRect(), s = i.getBoundingClientRect();
17
+ if (!i || !e)
18
+ throw new Error("Reference or popper element is null or undefined");
19
+ const t = /* @__PURE__ */ new WeakMap(), s = (r) => (t.has(r) || t.set(r, r.getBoundingClientRect()), t.get(r)), o = s(e), n = s(i);
18
20
  return {
19
- popperHeight: t.height,
20
- popperWidth: t.width,
21
- refHeight: s.height,
22
- refWidth: s.width,
23
- refLeft: s.left,
24
- refTop: s.top,
25
- refRight: s.right
21
+ popperHeight: o.height,
22
+ popperWidth: o.width,
23
+ refHeight: n.height,
24
+ refWidth: n.width,
25
+ refLeft: n.left,
26
+ refTop: n.top,
27
+ refRight: n.right
26
28
  };
27
29
  };
28
30
  var Q = Object.defineProperty;
29
31
  var V = (i, e, t) => e in i ? Q(i, e, { enumerable: true, configurable: true, writable: true, value: t }) : i[e] = t;
30
- var h = (i, e, t) => V(i, typeof e != "symbol" ? e + "" : e, t);
32
+ var p = (i, e, t) => V(i, typeof e != "symbol" ? e + "" : e, t);
31
33
  var X = (i, e, t, s) => {
32
34
  const o = t, n = s - (t + e);
33
35
  return o >= (i - e) / 2 && n >= (i - e) / 2;
@@ -54,7 +56,7 @@
54
56
  windowWidth: d,
55
57
  offsetDistance: c
56
58
  }) => {
57
- const m = d - s - e, v = s, D = l - t - o, C = t, u = () => Z(
59
+ const g = d - s - e, v = s, L = l - t - o, D = t, u = () => Z(
58
60
  () => ee(t, o, r, l),
59
61
  () => _(t, o, r, l),
60
62
  t,
@@ -67,29 +69,29 @@
67
69
  n,
68
70
  d,
69
71
  e
70
- ), k = () => X(n, e, s, d) ? s + e / 2 - n / 2 : E(), H = () => Y(r, o, t, l) ? t + o / 2 - r / 2 : u(), T = () => s + n <= d ? s : E(), y = () => s + e - n >= 0 ? s + e - n : E(), b = () => t + r <= l ? t : u(), G = () => t + o - r >= 0 ? t + o - r : u();
71
- let g = 0, f = 0;
72
- const S = t - r - c, O = t + o + c, I = s - n - c, L = s + e + c, W = C >= r + c, F = D >= r + c, R = v >= n + c, $ = m >= n + c;
73
- switch (i.startsWith("top") ? f = W ? S : F ? O : Math.max(S, O) : i.startsWith("bottom") ? f = F ? O : W ? S : Math.max(S, O) : i.startsWith("left") ? g = R ? I : $ ? L : Math.max(I, L) : i.startsWith("right") && (g = $ ? L : R ? I : Math.max(I, L)), i) {
72
+ ), k = () => X(n, e, s, d) ? s + e / 2 - n / 2 : E(), C = () => Y(r, o, t, l) ? t + o / 2 - r / 2 : u(), P = () => s + n <= d ? s : E(), y = () => s + e - n >= 0 ? s + e - n : E(), b = () => t + r <= l ? t : u(), G = () => t + o - r >= 0 ? t + o - r : u();
73
+ let m = 0, f = 0;
74
+ const T = t - r - c, S = t + o + c, O = s - n - c, I = s + e + c, W = D >= r + c, F = L >= r + c, R = v >= n + c, $ = g >= n + c;
75
+ switch (i.startsWith("top") ? f = W ? T : F ? S : Math.max(T, S) : i.startsWith("bottom") ? f = F ? S : W ? T : Math.max(S) : i.startsWith("left") ? m = R ? O : $ ? I : Math.max(O, I) : i.startsWith("right") && (m = $ ? I : R ? O : Math.max(I, O)), i) {
74
76
  case "bottom":
75
77
  case "bottom-middle":
76
78
  case "top":
77
79
  case "top-middle":
78
- g = k();
80
+ m = k();
79
81
  break;
80
82
  case "left":
81
83
  case "left-middle":
82
84
  case "right":
83
85
  case "right-middle":
84
- f = H();
86
+ f = C();
85
87
  break;
86
88
  case "bottom-start":
87
89
  case "top-start":
88
- g = T();
90
+ m = P();
89
91
  break;
90
92
  case "bottom-end":
91
93
  case "top-end":
92
- g = y();
94
+ m = y();
93
95
  break;
94
96
  case "left-start":
95
97
  case "right-start":
@@ -100,7 +102,7 @@
100
102
  f = G();
101
103
  break;
102
104
  }
103
- return { x: g, y: f };
105
+ return { x: m, y: f };
104
106
  };
105
107
  var oe = class {
106
108
  /**
@@ -109,42 +111,57 @@
109
111
  * @param popper
110
112
  * @param options
111
113
  */
114
+ /**
115
+ * Creates an instance of CreatePopper
116
+ * @param {HTMLElement} reference - The reference element to position against
117
+ * @param {HTMLElement} popper - The element to be positioned
118
+ * @param {PopperOptions} [options] - Configuration options
119
+ * @param {number} [options.offsetDistance] - Distance between popper and reference element
120
+ * @param {Placement} [options.placement] - Preferred placement of the popper
121
+ * @param {Object} [options.eventEffect] - Event handling configuration
122
+ * @param {boolean} [options.eventEffect.disableOnResize] - Disable position updates on window resize
123
+ * @param {boolean} [options.eventEffect.disableOnScroll] - Disable position updates on scroll
124
+ * @param {Function} [options.onUpdate] - Callback function when position updates
125
+ */
112
126
  constructor(e, t, s = {}) {
113
- h(this, "reference"), h(this, "popper"), h(this, "offsetDistance"), h(this, "placement"), h(this, "disableOnResize"), h(this, "disableOnScroll"), h(this, "onUpdate"), h(this, "isWindowEventsRegistered"), h(this, "validateElements", () => {
114
- if (!(this.reference instanceof HTMLElement)) throw new Error("Invalid HTMLElement for Reference Element");
115
- if (!(this.popper instanceof HTMLElement)) throw new Error("Invalid HTMLElement for Popper");
116
- if (typeof this.offsetDistance != "number") throw new Error("OffsetDistance must be a number");
117
- }), h(this, "setPopperStyleProperty", (m, v) => {
118
- this.popper.style.setProperty("--fx-popper-placement-x", `${m}px`), this.popper.style.setProperty("--fx-popper-placement-y", `${v}px`);
119
- }), h(this, "setInitialStyles", () => {
127
+ 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", () => {
128
+ if (!(this.reference instanceof HTMLElement))
129
+ throw new Error("Invalid HTMLElement for Reference Element");
130
+ if (!(this.popper instanceof HTMLElement))
131
+ throw new Error("Invalid HTMLElement for Popper");
132
+ if (typeof this.offsetDistance != "number")
133
+ throw new Error("OffsetDistance must be a number");
134
+ }), p(this, "setPopperStyleProperty", (g, v) => {
135
+ this.popper.style.setProperty("--fx-popper-placement-x", `${g}px`), this.popper.style.setProperty("--fx-popper-placement-y", `${v}px`);
136
+ }), p(this, "setInitialStyles", () => {
120
137
  this.popper.style.setProperty("--fx-popper-placement-x", ""), this.popper.style.setProperty("--fx-popper-placement-y", "");
121
- }), h(this, "initPlacement", () => {
122
- var m;
138
+ }), p(this, "initPlacement", () => {
139
+ var g;
123
140
  this.validateElements(), this.setInitialStyles();
124
- const v = window.innerWidth, D = window.innerHeight, { popperHeight: C, popperWidth: u, refHeight: E, refWidth: k, refLeft: H, refTop: T } = N({ reference: this.reference, popper: this.popper }), { x: y, y: b } = ne(
141
+ const v = window.innerWidth, L = window.innerHeight, { popperHeight: D, popperWidth: u, refHeight: E, refWidth: k, refLeft: C, refTop: P } = N({ reference: this.reference, popper: this.popper }), { x: y, y: b } = ne(
125
142
  {
126
143
  placement: this.placement,
127
144
  refWidth: k,
128
- refTop: T,
129
- refLeft: H,
145
+ refTop: P,
146
+ refLeft: C,
130
147
  popperWidth: u,
131
148
  refHeight: E,
132
- popperHeight: C,
133
- windowHeight: D,
149
+ popperHeight: D,
150
+ windowHeight: L,
134
151
  windowWidth: v,
135
152
  offsetDistance: this.offsetDistance
136
153
  }
137
154
  );
138
- this.setPopperStyleProperty(y, b), (m = this.onUpdate) == null || m.call(this, { x: y, y: b, placement: this.placement });
139
- }), h(this, "removeWindowEvents", () => {
155
+ this.setPopperStyleProperty(y, b), (g = this.onUpdate) == null || g.call(this, { x: y, y: b, placement: this.placement });
156
+ }), p(this, "removeWindowEvents", () => {
140
157
  this.isWindowEventsRegistered && (!this.disableOnResize && window.removeEventListener("resize", this.updatePosition), !this.disableOnScroll && window.removeEventListener("scroll", this.updatePosition), this.isWindowEventsRegistered = false);
141
- }), h(this, "attachWindowEvent", () => {
158
+ }), p(this, "attachWindowEvent", () => {
142
159
  this.isWindowEventsRegistered && this.removeWindowEvents(), this.disableOnResize || window.addEventListener("resize", this.updatePosition), this.disableOnScroll || window.addEventListener("scroll", this.updatePosition), this.isWindowEventsRegistered = true;
143
- }), h(this, "resetPosition", () => {
160
+ }), p(this, "resetPosition", () => {
144
161
  this.setInitialStyles();
145
- }), h(this, "updatePosition", () => {
162
+ }), p(this, "updatePosition", () => {
146
163
  this.initPlacement(), this.attachWindowEvent();
147
- }), h(this, "cleanupEvents", () => {
164
+ }), p(this, "cleanupEvents", () => {
148
165
  this.setInitialStyles(), this.removeWindowEvents();
149
166
  });
150
167
  const {
@@ -153,12 +170,22 @@
153
170
  eventEffect: r = {},
154
171
  onUpdate: l
155
172
  } = s;
156
- if (!(e instanceof HTMLElement)) throw new Error("Invalid HTMLElement for Reference Element");
157
- if (!(t instanceof HTMLElement)) throw new Error("Invalid HTMLElement for Popper");
158
- if (s.offsetDistance && typeof s.offsetDistance != "number") throw new Error("OffsetDistance must be a number");
173
+ if (!(e instanceof HTMLElement))
174
+ throw new Error("Invalid HTMLElement for Reference Element");
175
+ if (!(t instanceof HTMLElement))
176
+ throw new Error("Invalid HTMLElement for Popper");
177
+ if (s.offsetDistance && typeof s.offsetDistance != "number")
178
+ throw new Error("OffsetDistance must be a number");
159
179
  const { disableOnResize: d, disableOnScroll: c } = r;
160
180
  this.isWindowEventsRegistered = false, this.reference = e, this.popper = t, this.offsetDistance = o, this.placement = n, this.disableOnResize = d || false, this.disableOnScroll = c || false, this.onUpdate = l;
161
181
  }
182
+ /**
183
+ * Updates popper configuration and recalculates position
184
+ * @public
185
+ * @param {Object} options - New configuration options
186
+ * @param {Placement} options.placement - New placement value
187
+ * @param {number} [options.offsetDistance] - New offset distance
188
+ */
162
189
  setOptions({ placement: e, offsetDistance: t }) {
163
190
  this.placement = e, this.offsetDistance = t || this.offsetDistance, this.initPlacement(), this.attachWindowEvent();
164
191
  }
@@ -195,10 +222,11 @@
195
222
  });
196
223
  };
197
224
  var w = ({ state: i, trigger: e, popper: t }) => {
225
+ const s = i === "open";
198
226
  z(t, {
199
227
  "data-state": i
200
228
  }), z(e, {
201
- "aria-expanded": `${i}`
229
+ "aria-expanded": `${s}`
202
230
  });
203
231
  };
204
232
  var he = class {
@@ -208,7 +236,6 @@
208
236
  * @param {string | HTMLElement} params.trigger - The trigger element selector or HTMLElement
209
237
  * @param {string | HTMLElement} params.content - The content element selector or HTMLElement
210
238
  * @param {OverlayOptions} [params.options] - Configuration options for the overlay
211
- * @throws {Error} When trigger or content elements are invalid
212
239
  */
213
240
  constructor({ trigger: e, content: t, options: s = {} }) {
214
241
  a(this, "triggerElement"), a(this, "contentElement"), a(this, "triggerStrategy"), a(this, "placement"), a(this, "offsetDistance"), a(this, "preventFromCloseOutside"), a(this, "preventFromCloseInside"), a(this, "options"), a(this, "defaultState"), a(this, "popper"), a(this, "eventEffect"), a(this, "getElement", (n) => typeof n == "string" ? re(n) : n instanceof HTMLElement ? n : void 0), a(this, "handleDocumentClick", (n) => {
@@ -230,7 +257,7 @@
230
257
  }), a(this, "showOnMouseEnter", () => {
231
258
  this.show(), this.addEventOnMouseEnter();
232
259
  }), a(this, "setShowOptions", ({ placement: n, offsetDistance: r }) => {
233
- var l, d, c, m;
260
+ var l, d, c, g;
234
261
  this.popper.setOptions({
235
262
  placement: n,
236
263
  offsetDistance: r
@@ -238,18 +265,25 @@
238
265
  state: "open",
239
266
  popper: this.contentElement,
240
267
  trigger: this.triggerElement
241
- }), this.onToggleState(false), (m = (c = this.options).onShow) == null || m.call(c);
268
+ }), this.onToggleState(false), (g = (c = this.options).onShow) == null || g.call(c);
242
269
  }), a(this, "setPopperOptions", ({ placement: n, offsetDistance: r }) => {
243
270
  this.popper.setOptions({
244
271
  placement: n,
245
- offsetDistance: r
272
+ offsetDistance: r || this.offsetDistance
246
273
  });
274
+ }), a(this, "setPopperTrigger", (n, r) => {
275
+ this.cleanup(), this.popper.setOptions({
276
+ placement: r.placement || this.placement,
277
+ offsetDistance: r.offsetDistance || this.offsetDistance
278
+ }), this.triggerElement = n, this.triggerElement.addEventListener("click", this.toggleStateOnClick), this.triggerStrategy === "hover" && this.triggerElement.addEventListener("mouseenter", this.showOnMouseEnter);
247
279
  }), a(this, "cleanup", () => {
248
280
  this.triggerElement.removeEventListener("click", this.toggleStateOnClick), this.triggerStrategy === "hover" && this.triggerElement.removeEventListener("mouseenter", this.showOnMouseEnter);
249
281
  });
250
282
  var o;
251
- 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");
252
- if (!(this.contentElement instanceof HTMLElement)) throw new Error("Content element must be a valid HTML element");
283
+ if (this.contentElement = this.getElement(t), this.triggerElement = this.getElement(e), !(this.triggerElement instanceof HTMLElement))
284
+ throw new Error("Trigger element must be a valid HTML element");
285
+ if (!(this.contentElement instanceof HTMLElement))
286
+ throw new Error("Content element must be a valid HTML element");
253
287
  this.options = s, 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 oe(
254
288
  this.triggerElement,
255
289
  this.contentElement,
@@ -306,7 +340,7 @@
306
340
  }), this.triggerElement.addEventListener("click", this.toggleStateOnClick), this.triggerStrategy === "hover" && this.triggerElement.addEventListener("mouseenter", this.showOnMouseEnter);
307
341
  }
308
342
  };
309
- var x = class {
343
+ var H = class {
310
344
  static initGlobalRegistry() {
311
345
  window.$flexillaInstances || (window.$flexillaInstances = {});
312
346
  }
@@ -325,7 +359,7 @@
325
359
  ));
326
360
  }
327
361
  };
328
- var P = class _P {
362
+ var x = class _x {
329
363
  /**
330
364
  * Creates a new Popover instance.
331
365
  * @param {string | HTMLElement} popoverEl - The popover content element or its selector.
@@ -342,35 +376,41 @@
342
376
  * });
343
377
  */
344
378
  constructor(e, t = {}) {
345
- p(this, "triggerElement");
346
- p(this, "contentElement");
347
- p(this, "options");
348
- p(this, "PopoverInstance");
349
- p(this, "triggerStrategy");
350
- p(this, "placement");
351
- p(this, "offsetDistance");
352
- p(this, "preventFromCloseOutside");
353
- p(this, "preventFromCloseInside");
354
- p(this, "defaultState");
355
- p(this, "setShowOptions", ({ placement: e2, offsetDistance: t2 }) => {
379
+ h(this, "triggerElement");
380
+ h(this, "contentElement");
381
+ h(this, "options");
382
+ h(this, "PopoverInstance");
383
+ h(this, "triggerStrategy");
384
+ h(this, "placement");
385
+ h(this, "offsetDistance");
386
+ h(this, "preventFromCloseOutside");
387
+ h(this, "preventFromCloseInside");
388
+ h(this, "defaultState");
389
+ h(this, "setShowOptions", ({ placement: e2, offsetDistance: t2 }) => {
356
390
  this.PopoverInstance.setShowOptions({ placement: e2, offsetDistance: t2 });
357
391
  });
358
- p(this, "show", () => {
392
+ h(this, "setOptions", ({ placement: e2, offsetDistance: t2 }) => {
393
+ this.PopoverInstance.setPopperOptions({ placement: e2, offsetDistance: t2 });
394
+ });
395
+ h(this, "setPopperTrigger", (e2, t2) => {
396
+ this.PopoverInstance.setPopperTrigger(e2, t2);
397
+ });
398
+ h(this, "show", () => {
359
399
  this.PopoverInstance.show(), M(this.contentElement, "popover-show", {
360
400
  isHidden: false
361
401
  });
362
402
  });
363
- p(this, "hide", () => {
403
+ h(this, "hide", () => {
364
404
  this.PopoverInstance.hide(), M(this.contentElement, "popover-hide", {
365
405
  isHidden: true
366
406
  });
367
407
  });
368
- p(this, "cleanup", () => {
369
- this.PopoverInstance.cleanup(), x.removeInstance("popover", this.contentElement);
408
+ h(this, "cleanup", () => {
409
+ this.PopoverInstance.cleanup(), H.removeInstance("popover", this.contentElement);
370
410
  });
371
411
  const s = typeof e == "string" ? A(e) : e;
372
412
  this.contentElement = s;
373
- const o = x.getInstance("popover", this.contentElement);
413
+ const o = H.getInstance("popover", this.contentElement);
374
414
  if (o)
375
415
  return o;
376
416
  this.triggerElement = A(`[data-popover-trigger][data-popover-id=${s.getAttribute("id")}]`), this.options = t, this.triggerStrategy = this.options.triggerStrategy || s.dataset.triggerStrategy || "click", this.placement = this.options.placement || s.dataset.placement || "bottom-middle", this.offsetDistance = this.options.offsetDistance || parseInt(`${s.dataset.offsetDistance}`) | 6, this.preventFromCloseOutside = this.options.preventFromCloseOutside || s.hasAttribute("data-prevent-close-outside") || false, this.preventFromCloseInside = this.options.preventCloseFromInside || s.hasAttribute("data-prevent-close-inside") || false, this.defaultState = this.options.defaultState || s.dataset.defaultState || "close", this.PopoverInstance = new he({
@@ -393,7 +433,7 @@
393
433
  },
394
434
  popper: this.options.popper
395
435
  }
396
- }), x.register("popover", this.contentElement, this);
436
+ }), H.register("popover", this.contentElement, this);
397
437
  }
398
438
  /**
399
439
  * Creates a new Popover instance with the specified options.
@@ -407,7 +447,7 @@
407
447
  * });
408
448
  */
409
449
  static init(e, t) {
410
- return new _P(e, t);
450
+ return new _x(e, t);
411
451
  }
412
452
  /**
413
453
  * Automatically initializes all popover elements matching the specified selector.
@@ -421,14 +461,15 @@
421
461
  */
422
462
  static autoInit(e = "[data-fx-popover]") {
423
463
  const t = j(e);
424
- for (const s of t) new _P(s);
464
+ for (const s of t)
465
+ new _x(s);
425
466
  }
426
467
  };
427
468
 
428
469
  // src/index.js
429
470
  function Popover(Alpine) {
430
471
  Alpine.directive("popover", (el, {}, { cleanup }) => {
431
- const popover_ = new P(el);
472
+ const popover_ = new x(el);
432
473
  cleanup(() => {
433
474
  popover_.cleanup();
434
475
  });
package/dist/cdn.min.js CHANGED
@@ -1 +1 @@
1
- (()=>{var q=Object.defineProperty,B=(s,e,t)=>e in s?q(s,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):s[e]=t,c=(s,e,t)=>B(s,typeof e!="symbol"?e+"":e,t),j=(s,e=document.body)=>e.querySelector(s),J=(s,e=document.body)=>Array.from(e.querySelectorAll(s)),x=(s,e,t)=>{let i=new CustomEvent(e,{detail:t});s.dispatchEvent(i)},N=Object.defineProperty,Q=(s,e,t)=>e in s?N(s,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):s[e]=t,a=(s,e,t)=>Q(s,typeof e!="symbol"?e+"":e,t),V="bottom",X=({reference:s,popper:e})=>{let t=e.getBoundingClientRect(),i=s.getBoundingClientRect();return{popperHeight:t.height,popperWidth:t.width,refHeight:i.height,refWidth:i.width,refLeft:i.left,refTop:i.top,refRight:i.right}},Y=Object.defineProperty,Z=(s,e,t)=>e in s?Y(s,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):s[e]=t,h=(s,e,t)=>Z(s,typeof e!="symbol"?e+"":e,t),_=(s,e,t,i)=>{let o=t,n=i-(t+e);return o>=(s-e)/2&&n>=(s-e)/2},ee=(s,e,t,i)=>(s-e)/2<=t&&t+s/2+e/2<=i,te=(s,e,t,i,o)=>t>o-i?e()?window.innerHeight-o:t-o:s()?0:t+i,ie=(s,e,t,i)=>s<=i&&t-s<=e,se=(s,e,t,i)=>t<=i&&-s<=e,ne=(s,e,t,i,o,n)=>{let r=o-t-n,l=t-i,d=t+n-i+(o-t-n),p=r>=0?o-i:l>=0?t-i:t;return s()?0:e()?d:p},oe=(s,e,t,i)=>s<=t&&e-s-i>=s,re=(s,e)=>s>=e,ae=({placement:s,refWidth:e,refTop:t,refLeft:i,refHeight:o,popperWidth:n,popperHeight:r,windowHeight:l,windowWidth:d,offsetDistance:p})=>{let m=d-i-e,v=i,H=l-t-o,k=t,E=()=>te(()=>se(t,o,r,l),()=>ie(t,o,r,l),t,o,r),u=()=>ne(()=>oe(i,d,n,e),()=>re(i,n),i,n,d,e),P=()=>_(n,e,i,d)?i+e/2-n/2:u(),T=()=>ee(r,o,t,l)?t+o/2-r/2:E(),M=()=>i+n<=d?i:u(),b=()=>i+e-n>=0?i+e-n:u(),S=()=>t+r<=l?t:E(),U=()=>t+o-r>=0?t+o-r:E(),g=0,f=0,O=t-r-p,L=t+o+p,I=i-n-p,D=i+e+p,R=k>=r+p,$=H>=r+p,A=v>=n+p,z=m>=n+p;switch(s.startsWith("top")?f=R?O:$?L:Math.max(O,L):s.startsWith("bottom")?f=$?L:R?O:Math.max(O,L):s.startsWith("left")?g=A?I:z?D:Math.max(I,D):s.startsWith("right")&&(g=z?D:A?I:Math.max(I,D)),s){case"bottom":case"bottom-middle":case"top":case"top-middle":g=P();break;case"left":case"left-middle":case"right":case"right-middle":f=T();break;case"bottom-start":case"top-start":g=M();break;case"bottom-end":case"top-end":g=b();break;case"left-start":case"right-start":f=S();break;case"left-end":case"right-end":f=U();break}return{x:g,y:f}},W=class{constructor(e,t,i={}){h(this,"reference"),h(this,"popper"),h(this,"offsetDistance"),h(this,"placement"),h(this,"disableOnResize"),h(this,"disableOnScroll"),h(this,"onUpdate"),h(this,"isWindowEventsRegistered"),h(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")}),h(this,"setPopperStyleProperty",(m,v)=>{this.popper.style.setProperty("--fx-popper-placement-x",`${m}px`),this.popper.style.setProperty("--fx-popper-placement-y",`${v}px`)}),h(this,"setInitialStyles",()=>{this.popper.style.setProperty("--fx-popper-placement-x",""),this.popper.style.setProperty("--fx-popper-placement-y","")}),h(this,"initPlacement",()=>{var m;this.validateElements(),this.setInitialStyles();let v=window.innerWidth,H=window.innerHeight,{popperHeight:k,popperWidth:E,refHeight:u,refWidth:P,refLeft:T,refTop:M}=X({reference:this.reference,popper:this.popper}),{x:b,y:S}=ae({placement:this.placement,refWidth:P,refTop:M,refLeft:T,popperWidth:E,refHeight:u,popperHeight:k,windowHeight:H,windowWidth:v,offsetDistance:this.offsetDistance});this.setPopperStyleProperty(b,S),(m=this.onUpdate)==null||m.call(this,{x:b,y:S,placement:this.placement})}),h(this,"removeWindowEvents",()=>{this.isWindowEventsRegistered&&(!this.disableOnResize&&window.removeEventListener("resize",this.updatePosition),!this.disableOnScroll&&window.removeEventListener("scroll",this.updatePosition),this.isWindowEventsRegistered=!1)}),h(this,"attachWindowEvent",()=>{this.isWindowEventsRegistered&&this.removeWindowEvents(),this.disableOnResize||window.addEventListener("resize",this.updatePosition),this.disableOnScroll||window.addEventListener("scroll",this.updatePosition),this.isWindowEventsRegistered=!0}),h(this,"resetPosition",()=>{this.setInitialStyles()}),h(this,"updatePosition",()=>{this.initPlacement(),this.attachWindowEvent()}),h(this,"cleanupEvents",()=>{this.setInitialStyles(),this.removeWindowEvents()});let{offsetDistance:o=10,placement:n=V,eventEffect:r={},onUpdate:l}=i;if(!(e instanceof HTMLElement))throw new Error("Invalid HTMLElement for Reference Element");if(!(t instanceof HTMLElement))throw new Error("Invalid HTMLElement for Popper");if(i.offsetDistance&&typeof i.offsetDistance!="number")throw new Error("OffsetDistance must be a number");let{disableOnResize:d,disableOnScroll:p}=r;this.isWindowEventsRegistered=!1,this.reference=e,this.popper=t,this.offsetDistance=o,this.placement=n,this.disableOnResize=d||!1,this.disableOnScroll=p||!1,this.onUpdate=l}setOptions({placement:e,offsetDistance:t}){this.placement=e,this.offsetDistance=t||this.offsetDistance,this.initPlacement(),this.attachWindowEvent()}},le=(s,e=document.body)=>e.querySelector(s),G=(s,e)=>{for(let[t,i]of Object.entries(e))s.setAttribute(t,i)},he=({element:s,callback:e,type:t,keysCheck:i})=>{let o=getComputedStyle(s),n=o.transition;if(n!=="none"&&n!==""&&!i.includes(n)){let r="transitionend",l=()=>{s.removeEventListener(r,l),e()};s.addEventListener(r,l,{once:!0})}else e()},pe=({element:s,callback:e})=>{he({element:s,callback:e,type:"transition",keysCheck:["all 0s ease 0s","all"]})},w=({state:s,trigger:e,popper:t})=>{G(t,{"data-state":s}),G(e,{"aria-expanded":`${s}`})},F=class{constructor({trigger:e,content:t,options:i={}}){a(this,"triggerElement"),a(this,"contentElement"),a(this,"triggerStrategy"),a(this,"placement"),a(this,"offsetDistance"),a(this,"preventFromCloseOutside"),a(this,"preventFromCloseInside"),a(this,"options"),a(this,"defaultState"),a(this,"popper"),a(this,"eventEffect"),a(this,"getElement",n=>typeof n=="string"?le(n):n instanceof HTMLElement?n:void 0),a(this,"handleDocumentClick",n=>{this.contentElement.getAttribute("data-state")==="open"&&(!this.triggerElement.contains(n.target)&&!this.preventFromCloseInside&&!this.preventFromCloseOutside?this.hide():!this.triggerElement.contains(n.target)&&!this.contentElement.contains(n.target)&&!this.preventFromCloseOutside?this.hide():!this.triggerElement.contains(n.target)&&!this.contentElement.contains(n.target)&&!this.preventFromCloseOutside?this.hide():!this.triggerElement.contains(n.target)&&this.contentElement.contains(n.target)&&!this.preventFromCloseInside&&this.hide())}),a(this,"handleKeyDown",n=>{n.preventDefault(),this.triggerStrategy!=="hover"&&n.key==="Escape"&&this.contentElement.getAttribute("data-state")==="open"&&(this.preventFromCloseOutside||this.hide())}),a(this,"toggleStateOnClick",()=>{(this.contentElement.dataset.state||"close")==="close"?(this.show(),this.triggerStrategy==="hover"&&this.addEventOnMouseEnter()):this.hide()}),a(this,"hideOnMouseLeaseTrigger",()=>{setTimeout(()=>{this.contentElement.matches(":hover")||this.hide()},150)}),a(this,"hideOnMouseLeave",()=>{setTimeout(()=>{this.triggerElement.matches(":hover")||this.hide()},150)}),a(this,"addEventOnMouseEnter",()=>{this.triggerElement.addEventListener("mouseleave",this.hideOnMouseLeaseTrigger),this.contentElement.addEventListener("mouseleave",this.hideOnMouseLeave)}),a(this,"showOnMouseEnter",()=>{this.show(),this.addEventOnMouseEnter()}),a(this,"setShowOptions",({placement:n,offsetDistance:r})=>{var l,d,p,m;this.popper.setOptions({placement:n,offsetDistance:r}),document.addEventListener("keydown",this.handleKeyDown),document.addEventListener("click",this.handleDocumentClick),(d=(l=this.options).beforeShow)==null||d.call(l),w({state:"open",popper:this.contentElement,trigger:this.triggerElement}),this.onToggleState(!1),(m=(p=this.options).onShow)==null||m.call(p)}),a(this,"setPopperOptions",({placement:n,offsetDistance:r})=>{this.popper.setOptions({placement:n,offsetDistance:r})}),a(this,"cleanup",()=>{this.triggerElement.removeEventListener("click",this.toggleStateOnClick),this.triggerStrategy==="hover"&&this.triggerElement.removeEventListener("mouseenter",this.showOnMouseEnter)});var o;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=i,this.triggerStrategy=this.options.triggerStrategy||"click",this.placement=this.options.placement||"bottom",this.offsetDistance=this.options.offsetDistance||6,this.preventFromCloseOutside=this.options.preventFromCloseOutside||!1,this.preventFromCloseInside=this.options.preventCloseFromInside||!1,this.defaultState=this.options.defaultState||"close",this.eventEffect=(o=this.options.popper)==null?void 0:o.eventEffect,this.popper=new W(this.triggerElement,this.contentElement,{placement:this.placement,offsetDistance:this.offsetDistance,eventEffect:this.eventEffect}),this.initInstance()}onToggleState(e){var t,i;(i=(t=this.options).onToggle)==null||i.call(t,{isHidden:e})}show(){var e,t,i,o;this.popper.updatePosition(),document.addEventListener("keydown",this.handleKeyDown),document.addEventListener("click",this.handleDocumentClick),(t=(e=this.options).beforeShow)==null||t.call(e),w({state:"open",popper:this.contentElement,trigger:this.triggerElement}),this.onToggleState(!1),(o=(i=this.options).onShow)==null||o.call(i)}hide(){var e,t;(t=(e=this.options).beforeHide)==null||t.call(e),w({state:"close",popper:this.contentElement,trigger:this.triggerElement}),this.triggerStrategy==="click"&&document.removeEventListener("click",this.handleDocumentClick),document.removeEventListener("keydown",this.handleKeyDown),this.triggerStrategy==="hover"&&(this.triggerElement.removeEventListener("mouseleave",this.hideOnMouseLeaseTrigger),this.contentElement.removeEventListener("mouseleave",this.hideOnMouseLeave)),pe({element:this.contentElement,callback:()=>{var i,o;this.onToggleState(!0),this.popper.cleanupEvents(),(o=(i=this.options).onHide)==null||o.call(i)}})}initInstance(){w({state:this.defaultState,popper:this.contentElement,trigger:this.triggerElement}),this.defaultState==="open"?this.show():w({state:"close",popper:this.contentElement,trigger:this.triggerElement}),this.triggerElement.addEventListener("click",this.toggleStateOnClick),this.triggerStrategy==="hover"&&this.triggerElement.addEventListener("mouseenter",this.showOnMouseEnter)}},y=class{static initGlobalRegistry(){window.$flexillaInstances||(window.$flexillaInstances={})}static register(e,t,i){return this.initGlobalRegistry(),window.$flexillaInstances[e]||(window.$flexillaInstances[e]=[]),this.getInstance(e,t)||(window.$flexillaInstances[e].push({element:t,instance:i}),i)}static getInstance(e,t){var i,o;return this.initGlobalRegistry(),(o=(i=window.$flexillaInstances[e])==null?void 0:i.find(n=>n.element===t))==null?void 0:o.instance}static removeInstance(e,t){this.initGlobalRegistry(),window.$flexillaInstances[e]&&(window.$flexillaInstances[e]=window.$flexillaInstances[e].filter(i=>i.element!==t))}},C=class s{constructor(e,t={}){c(this,"triggerElement"),c(this,"contentElement"),c(this,"options"),c(this,"PopoverInstance"),c(this,"triggerStrategy"),c(this,"placement"),c(this,"offsetDistance"),c(this,"preventFromCloseOutside"),c(this,"preventFromCloseInside"),c(this,"defaultState"),c(this,"setShowOptions",({placement:n,offsetDistance:r})=>{this.PopoverInstance.setShowOptions({placement:n,offsetDistance:r})}),c(this,"show",()=>{this.PopoverInstance.show(),x(this.contentElement,"popover-show",{isHidden:!1})}),c(this,"hide",()=>{this.PopoverInstance.hide(),x(this.contentElement,"popover-hide",{isHidden:!0})}),c(this,"cleanup",()=>{this.PopoverInstance.cleanup(),y.removeInstance("popover",this.contentElement)});let i=typeof e=="string"?j(e):e;this.contentElement=i;let o=y.getInstance("popover",this.contentElement);if(o)return o;this.triggerElement=j(`[data-popover-trigger][data-popover-id=${i.getAttribute("id")}]`),this.options=t,this.triggerStrategy=this.options.triggerStrategy||i.dataset.triggerStrategy||"click",this.placement=this.options.placement||i.dataset.placement||"bottom-middle",this.offsetDistance=this.options.offsetDistance||parseInt(`${i.dataset.offsetDistance}`)|6,this.preventFromCloseOutside=this.options.preventFromCloseOutside||i.hasAttribute("data-prevent-close-outside")||!1,this.preventFromCloseInside=this.options.preventCloseFromInside||i.hasAttribute("data-prevent-close-inside")||!1,this.defaultState=this.options.defaultState||i.dataset.defaultState||"close",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,onShow:this.options.onShow,onHide:this.options.onHide,onToggle:({isHidden:n})=>{var r,l;(l=(r=this.options).onToggle)==null||l.call(r,{isHidden:n}),x(this.contentElement,"popover-toggle",{isHidden:n})},popper:this.options.popper}}),y.register("popover",this.contentElement,this)}static init(e,t){return new s(e,t)}static autoInit(e="[data-fx-popover]"){let t=J(e);for(let i of t)new s(i)}};function ce(s){s.directive("popover",(e,{},{cleanup:t})=>{let i=new C(e);t(()=>{i.cleanup()})})}var K=ce;document.addEventListener("alpine:init",()=>{K(window.Alpine)});})();
1
+ (()=>{var q=Object.defineProperty,B=(i,e,t)=>e in i?q(i,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):i[e]=t,p=(i,e,t)=>B(i,typeof e!="symbol"?e+"":e,t),j=(i,e=document.body)=>e.querySelector(i),J=(i,e=document.body)=>Array.from(e.querySelectorAll(i)),W=(i,e,t)=>{let s=new CustomEvent(e,{detail:t});i.dispatchEvent(s)},N=Object.defineProperty,Q=(i,e,t)=>e in i?N(i,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):i[e]=t,a=(i,e,t)=>Q(i,typeof e!="symbol"?e+"":e,t),V="bottom",X=({reference:i,popper:e})=>{if(!i||!e)throw new Error("Reference or popper element is null or undefined");let t=new WeakMap,s=r=>(t.has(r)||t.set(r,r.getBoundingClientRect()),t.get(r)),o=s(e),n=s(i);return{popperHeight:o.height,popperWidth:o.width,refHeight:n.height,refWidth:n.width,refLeft:n.left,refTop:n.top,refRight:n.right}},Y=Object.defineProperty,Z=(i,e,t)=>e in i?Y(i,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):i[e]=t,h=(i,e,t)=>Z(i,typeof e!="symbol"?e+"":e,t),_=(i,e,t,s)=>{let o=t,n=s-(t+e);return o>=(i-e)/2&&n>=(i-e)/2},ee=(i,e,t,s)=>(i-e)/2<=t&&t+i/2+e/2<=s,te=(i,e,t,s,o)=>t>o-s?e()?window.innerHeight-o:t-o:i()?0:t+s,se=(i,e,t,s)=>i<=s&&t-i<=e,ie=(i,e,t,s)=>t<=s&&-i<=e,ne=(i,e,t,s,o,n)=>{let r=o-t-n,l=t-s,d=t+n-s+(o-t-n),c=r>=0?o-s:l>=0?t-s:t;return i()?0:e()?d:c},oe=(i,e,t,s)=>i<=t&&e-i-s>=i,re=(i,e)=>i>=e,ae=({placement:i,refWidth:e,refTop:t,refLeft:s,refHeight:o,popperWidth:n,popperHeight:r,windowHeight:l,windowWidth:d,offsetDistance:c})=>{let m=d-s-e,v=s,P=l-t-o,k=t,E=()=>te(()=>ie(t,o,r,l),()=>se(t,o,r,l),t,o,r),u=()=>ne(()=>oe(s,d,n,e),()=>re(s,n),s,n,d,e),C=()=>_(n,e,s,d)?s+e/2-n/2:u(),H=()=>ee(r,o,t,l)?t+o/2-r/2:E(),T=()=>s+n<=d?s:u(),b=()=>s+e-n>=0?s+e-n:u(),S=()=>t+r<=l?t:E(),U=()=>t+o-r>=0?t+o-r:E(),g=0,f=0,M=t-r-c,O=t+o+c,D=s-n-c,L=s+e+c,R=k>=r+c,$=P>=r+c,A=v>=n+c,z=m>=n+c;switch(i.startsWith("top")?f=R?M:$?O:Math.max(M,O):i.startsWith("bottom")?f=$?O:R?M:Math.max(O):i.startsWith("left")?g=A?D:z?L:Math.max(D,L):i.startsWith("right")&&(g=z?L:A?D:Math.max(L,D)),i){case"bottom":case"bottom-middle":case"top":case"top-middle":g=C();break;case"left":case"left-middle":case"right":case"right-middle":f=H();break;case"bottom-start":case"top-start":g=T();break;case"bottom-end":case"top-end":g=b();break;case"left-start":case"right-start":f=S();break;case"left-end":case"right-end":f=U();break}return{x:g,y:f}},x=class{constructor(e,t,s={}){h(this,"reference"),h(this,"popper"),h(this,"offsetDistance"),h(this,"placement"),h(this,"disableOnResize"),h(this,"disableOnScroll"),h(this,"onUpdate"),h(this,"isWindowEventsRegistered"),h(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")}),h(this,"setPopperStyleProperty",(m,v)=>{this.popper.style.setProperty("--fx-popper-placement-x",`${m}px`),this.popper.style.setProperty("--fx-popper-placement-y",`${v}px`)}),h(this,"setInitialStyles",()=>{this.popper.style.setProperty("--fx-popper-placement-x",""),this.popper.style.setProperty("--fx-popper-placement-y","")}),h(this,"initPlacement",()=>{var m;this.validateElements(),this.setInitialStyles();let v=window.innerWidth,P=window.innerHeight,{popperHeight:k,popperWidth:E,refHeight:u,refWidth:C,refLeft:H,refTop:T}=X({reference:this.reference,popper:this.popper}),{x:b,y:S}=ae({placement:this.placement,refWidth:C,refTop:T,refLeft:H,popperWidth:E,refHeight:u,popperHeight:k,windowHeight:P,windowWidth:v,offsetDistance:this.offsetDistance});this.setPopperStyleProperty(b,S),(m=this.onUpdate)==null||m.call(this,{x:b,y:S,placement:this.placement})}),h(this,"removeWindowEvents",()=>{this.isWindowEventsRegistered&&(!this.disableOnResize&&window.removeEventListener("resize",this.updatePosition),!this.disableOnScroll&&window.removeEventListener("scroll",this.updatePosition),this.isWindowEventsRegistered=!1)}),h(this,"attachWindowEvent",()=>{this.isWindowEventsRegistered&&this.removeWindowEvents(),this.disableOnResize||window.addEventListener("resize",this.updatePosition),this.disableOnScroll||window.addEventListener("scroll",this.updatePosition),this.isWindowEventsRegistered=!0}),h(this,"resetPosition",()=>{this.setInitialStyles()}),h(this,"updatePosition",()=>{this.initPlacement(),this.attachWindowEvent()}),h(this,"cleanupEvents",()=>{this.setInitialStyles(),this.removeWindowEvents()});let{offsetDistance:o=10,placement:n=V,eventEffect:r={},onUpdate:l}=s;if(!(e instanceof HTMLElement))throw new Error("Invalid HTMLElement for Reference Element");if(!(t instanceof HTMLElement))throw new Error("Invalid HTMLElement for Popper");if(s.offsetDistance&&typeof s.offsetDistance!="number")throw new Error("OffsetDistance must be a number");let{disableOnResize:d,disableOnScroll:c}=r;this.isWindowEventsRegistered=!1,this.reference=e,this.popper=t,this.offsetDistance=o,this.placement=n,this.disableOnResize=d||!1,this.disableOnScroll=c||!1,this.onUpdate=l}setOptions({placement:e,offsetDistance:t}){this.placement=e,this.offsetDistance=t||this.offsetDistance,this.initPlacement(),this.attachWindowEvent()}},le=(i,e=document.body)=>e.querySelector(i),G=(i,e)=>{for(let[t,s]of Object.entries(e))i.setAttribute(t,s)},he=({element:i,callback:e,type:t,keysCheck:s})=>{let o=getComputedStyle(i),n=o.transition;if(n!=="none"&&n!==""&&!s.includes(n)){let r="transitionend",l=()=>{i.removeEventListener(r,l),e()};i.addEventListener(r,l,{once:!0})}else e()},pe=({element:i,callback:e})=>{he({element:i,callback:e,type:"transition",keysCheck:["all 0s ease 0s","all"]})},w=({state:i,trigger:e,popper:t})=>{let s=i==="open";G(t,{"data-state":i}),G(e,{"aria-expanded":`${s}`})},F=class{constructor({trigger:e,content:t,options:s={}}){a(this,"triggerElement"),a(this,"contentElement"),a(this,"triggerStrategy"),a(this,"placement"),a(this,"offsetDistance"),a(this,"preventFromCloseOutside"),a(this,"preventFromCloseInside"),a(this,"options"),a(this,"defaultState"),a(this,"popper"),a(this,"eventEffect"),a(this,"getElement",n=>typeof n=="string"?le(n):n instanceof HTMLElement?n:void 0),a(this,"handleDocumentClick",n=>{this.contentElement.getAttribute("data-state")==="open"&&(!this.triggerElement.contains(n.target)&&!this.preventFromCloseInside&&!this.preventFromCloseOutside?this.hide():!this.triggerElement.contains(n.target)&&!this.contentElement.contains(n.target)&&!this.preventFromCloseOutside?this.hide():!this.triggerElement.contains(n.target)&&!this.contentElement.contains(n.target)&&!this.preventFromCloseOutside?this.hide():!this.triggerElement.contains(n.target)&&this.contentElement.contains(n.target)&&!this.preventFromCloseInside&&this.hide())}),a(this,"handleKeyDown",n=>{n.preventDefault(),this.triggerStrategy!=="hover"&&n.key==="Escape"&&this.contentElement.getAttribute("data-state")==="open"&&(this.preventFromCloseOutside||this.hide())}),a(this,"toggleStateOnClick",()=>{(this.contentElement.dataset.state||"close")==="close"?(this.show(),this.triggerStrategy==="hover"&&this.addEventOnMouseEnter()):this.hide()}),a(this,"hideOnMouseLeaseTrigger",()=>{setTimeout(()=>{this.contentElement.matches(":hover")||this.hide()},150)}),a(this,"hideOnMouseLeave",()=>{setTimeout(()=>{this.triggerElement.matches(":hover")||this.hide()},150)}),a(this,"addEventOnMouseEnter",()=>{this.triggerElement.addEventListener("mouseleave",this.hideOnMouseLeaseTrigger),this.contentElement.addEventListener("mouseleave",this.hideOnMouseLeave)}),a(this,"showOnMouseEnter",()=>{this.show(),this.addEventOnMouseEnter()}),a(this,"setShowOptions",({placement:n,offsetDistance:r})=>{var l,d,c,m;this.popper.setOptions({placement:n,offsetDistance:r}),document.addEventListener("keydown",this.handleKeyDown),document.addEventListener("click",this.handleDocumentClick),(d=(l=this.options).beforeShow)==null||d.call(l),w({state:"open",popper:this.contentElement,trigger:this.triggerElement}),this.onToggleState(!1),(m=(c=this.options).onShow)==null||m.call(c)}),a(this,"setPopperOptions",({placement:n,offsetDistance:r})=>{this.popper.setOptions({placement:n,offsetDistance:r||this.offsetDistance})}),a(this,"setPopperTrigger",(n,r)=>{this.cleanup(),this.popper.setOptions({placement:r.placement||this.placement,offsetDistance:r.offsetDistance||this.offsetDistance}),this.triggerElement=n,this.triggerElement.addEventListener("click",this.toggleStateOnClick),this.triggerStrategy==="hover"&&this.triggerElement.addEventListener("mouseenter",this.showOnMouseEnter)}),a(this,"cleanup",()=>{this.triggerElement.removeEventListener("click",this.toggleStateOnClick),this.triggerStrategy==="hover"&&this.triggerElement.removeEventListener("mouseenter",this.showOnMouseEnter)});var o;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=s,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 x(this.triggerElement,this.contentElement,{placement:this.placement,offsetDistance:this.offsetDistance,eventEffect:this.eventEffect}),this.initInstance()}onToggleState(e){var t,s;(s=(t=this.options).onToggle)==null||s.call(t,{isHidden:e})}show(){var e,t,s,o;this.popper.updatePosition(),document.addEventListener("keydown",this.handleKeyDown),document.addEventListener("click",this.handleDocumentClick),(t=(e=this.options).beforeShow)==null||t.call(e),w({state:"open",popper:this.contentElement,trigger:this.triggerElement}),this.onToggleState(!1),(o=(s=this.options).onShow)==null||o.call(s)}hide(){var e,t;(t=(e=this.options).beforeHide)==null||t.call(e),w({state:"close",popper:this.contentElement,trigger:this.triggerElement}),this.triggerStrategy==="click"&&document.removeEventListener("click",this.handleDocumentClick),document.removeEventListener("keydown",this.handleKeyDown),this.triggerStrategy==="hover"&&(this.triggerElement.removeEventListener("mouseleave",this.hideOnMouseLeaseTrigger),this.contentElement.removeEventListener("mouseleave",this.hideOnMouseLeave)),pe({element:this.contentElement,callback:()=>{var s,o;this.onToggleState(!0),this.popper.cleanupEvents(),(o=(s=this.options).onHide)==null||o.call(s)}})}initInstance(){w({state:this.defaultState,popper:this.contentElement,trigger:this.triggerElement}),this.defaultState==="open"?this.show():w({state:"close",popper:this.contentElement,trigger:this.triggerElement}),this.triggerElement.addEventListener("click",this.toggleStateOnClick),this.triggerStrategy==="hover"&&this.triggerElement.addEventListener("mouseenter",this.showOnMouseEnter)}},y=class{static initGlobalRegistry(){window.$flexillaInstances||(window.$flexillaInstances={})}static register(e,t,s){return this.initGlobalRegistry(),window.$flexillaInstances[e]||(window.$flexillaInstances[e]=[]),this.getInstance(e,t)||(window.$flexillaInstances[e].push({element:t,instance:s}),s)}static getInstance(e,t){var s,o;return this.initGlobalRegistry(),(o=(s=window.$flexillaInstances[e])==null?void 0:s.find(n=>n.element===t))==null?void 0:o.instance}static removeInstance(e,t){this.initGlobalRegistry(),window.$flexillaInstances[e]&&(window.$flexillaInstances[e]=window.$flexillaInstances[e].filter(s=>s.element!==t))}},I=class i{constructor(e,t={}){p(this,"triggerElement"),p(this,"contentElement"),p(this,"options"),p(this,"PopoverInstance"),p(this,"triggerStrategy"),p(this,"placement"),p(this,"offsetDistance"),p(this,"preventFromCloseOutside"),p(this,"preventFromCloseInside"),p(this,"defaultState"),p(this,"setShowOptions",({placement:n,offsetDistance:r})=>{this.PopoverInstance.setShowOptions({placement:n,offsetDistance:r})}),p(this,"setOptions",({placement:n,offsetDistance:r})=>{this.PopoverInstance.setPopperOptions({placement:n,offsetDistance:r})}),p(this,"setPopperTrigger",(n,r)=>{this.PopoverInstance.setPopperTrigger(n,r)}),p(this,"show",()=>{this.PopoverInstance.show(),W(this.contentElement,"popover-show",{isHidden:!1})}),p(this,"hide",()=>{this.PopoverInstance.hide(),W(this.contentElement,"popover-hide",{isHidden:!0})}),p(this,"cleanup",()=>{this.PopoverInstance.cleanup(),y.removeInstance("popover",this.contentElement)});let s=typeof e=="string"?j(e):e;this.contentElement=s;let o=y.getInstance("popover",this.contentElement);if(o)return o;this.triggerElement=j(`[data-popover-trigger][data-popover-id=${s.getAttribute("id")}]`),this.options=t,this.triggerStrategy=this.options.triggerStrategy||s.dataset.triggerStrategy||"click",this.placement=this.options.placement||s.dataset.placement||"bottom-middle",this.offsetDistance=this.options.offsetDistance||parseInt(`${s.dataset.offsetDistance}`)|6,this.preventFromCloseOutside=this.options.preventFromCloseOutside||s.hasAttribute("data-prevent-close-outside")||!1,this.preventFromCloseInside=this.options.preventCloseFromInside||s.hasAttribute("data-prevent-close-inside")||!1,this.defaultState=this.options.defaultState||s.dataset.defaultState||"close",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,onShow:this.options.onShow,onHide:this.options.onHide,onToggle:({isHidden:n})=>{var r,l;(l=(r=this.options).onToggle)==null||l.call(r,{isHidden:n}),W(this.contentElement,"popover-toggle",{isHidden:n})},popper:this.options.popper}}),y.register("popover",this.contentElement,this)}static init(e,t){return new i(e,t)}static autoInit(e="[data-fx-popover]"){let t=J(e);for(let s of t)new i(s)}};function ce(i){i.directive("popover",(e,{},{cleanup:t})=>{let s=new I(e);t(()=>{s.cleanup()})})}var K=ce;document.addEventListener("alpine:init",()=>{K(window.Alpine)});})();
@@ -26,7 +26,7 @@ module.exports = __toCommonJS(module_exports);
26
26
  // ../../node_modules/@flexilla/popover/dist/popover.js
27
27
  var K = Object.defineProperty;
28
28
  var U = (i, e, t) => e in i ? K(i, e, { enumerable: true, configurable: true, writable: true, value: t }) : i[e] = t;
29
- var p = (i, e, t) => U(i, typeof e != "symbol" ? e + "" : e, t);
29
+ var h = (i, e, t) => U(i, typeof e != "symbol" ? e + "" : e, t);
30
30
  var A = (i, e = document.body) => e.querySelector(i);
31
31
  var j = (i, e = document.body) => Array.from(e.querySelectorAll(i));
32
32
  var M = (i, e, t) => {
@@ -38,20 +38,22 @@ var B = (i, e, t) => e in i ? q(i, e, { enumerable: true, configurable: true, wr
38
38
  var a = (i, e, t) => B(i, typeof e != "symbol" ? e + "" : e, t);
39
39
  var J = "bottom";
40
40
  var N = ({ reference: i, popper: e }) => {
41
- const t = e.getBoundingClientRect(), s = i.getBoundingClientRect();
41
+ if (!i || !e)
42
+ throw new Error("Reference or popper element is null or undefined");
43
+ const t = /* @__PURE__ */ new WeakMap(), s = (r) => (t.has(r) || t.set(r, r.getBoundingClientRect()), t.get(r)), o = s(e), n = s(i);
42
44
  return {
43
- popperHeight: t.height,
44
- popperWidth: t.width,
45
- refHeight: s.height,
46
- refWidth: s.width,
47
- refLeft: s.left,
48
- refTop: s.top,
49
- refRight: s.right
45
+ popperHeight: o.height,
46
+ popperWidth: o.width,
47
+ refHeight: n.height,
48
+ refWidth: n.width,
49
+ refLeft: n.left,
50
+ refTop: n.top,
51
+ refRight: n.right
50
52
  };
51
53
  };
52
54
  var Q = Object.defineProperty;
53
55
  var V = (i, e, t) => e in i ? Q(i, e, { enumerable: true, configurable: true, writable: true, value: t }) : i[e] = t;
54
- var h = (i, e, t) => V(i, typeof e != "symbol" ? e + "" : e, t);
56
+ var p = (i, e, t) => V(i, typeof e != "symbol" ? e + "" : e, t);
55
57
  var X = (i, e, t, s) => {
56
58
  const o = t, n = s - (t + e);
57
59
  return o >= (i - e) / 2 && n >= (i - e) / 2;
@@ -78,7 +80,7 @@ var ne = ({
78
80
  windowWidth: d,
79
81
  offsetDistance: c
80
82
  }) => {
81
- const m = d - s - e, v = s, D = l - t - o, C = t, u = () => Z(
83
+ const g = d - s - e, v = s, L = l - t - o, D = t, u = () => Z(
82
84
  () => ee(t, o, r, l),
83
85
  () => _(t, o, r, l),
84
86
  t,
@@ -91,29 +93,29 @@ var ne = ({
91
93
  n,
92
94
  d,
93
95
  e
94
- ), k = () => X(n, e, s, d) ? s + e / 2 - n / 2 : E(), H = () => Y(r, o, t, l) ? t + o / 2 - r / 2 : u(), T = () => s + n <= d ? s : E(), y = () => s + e - n >= 0 ? s + e - n : E(), b = () => t + r <= l ? t : u(), G = () => t + o - r >= 0 ? t + o - r : u();
95
- let g = 0, f = 0;
96
- const S = t - r - c, O = t + o + c, I = s - n - c, L = s + e + c, W = C >= r + c, F = D >= r + c, R = v >= n + c, $ = m >= n + c;
97
- switch (i.startsWith("top") ? f = W ? S : F ? O : Math.max(S, O) : i.startsWith("bottom") ? f = F ? O : W ? S : Math.max(S, O) : i.startsWith("left") ? g = R ? I : $ ? L : Math.max(I, L) : i.startsWith("right") && (g = $ ? L : R ? I : Math.max(I, L)), i) {
96
+ ), k = () => X(n, e, s, d) ? s + e / 2 - n / 2 : E(), C = () => Y(r, o, t, l) ? t + o / 2 - r / 2 : u(), P = () => s + n <= d ? s : E(), y = () => s + e - n >= 0 ? s + e - n : E(), b = () => t + r <= l ? t : u(), G = () => t + o - r >= 0 ? t + o - r : u();
97
+ let m = 0, f = 0;
98
+ const T = t - r - c, S = t + o + c, O = s - n - c, I = s + e + c, W = D >= r + c, F = L >= r + c, R = v >= n + c, $ = g >= n + c;
99
+ switch (i.startsWith("top") ? f = W ? T : F ? S : Math.max(T, S) : i.startsWith("bottom") ? f = F ? S : W ? T : Math.max(S) : i.startsWith("left") ? m = R ? O : $ ? I : Math.max(O, I) : i.startsWith("right") && (m = $ ? I : R ? O : Math.max(I, O)), i) {
98
100
  case "bottom":
99
101
  case "bottom-middle":
100
102
  case "top":
101
103
  case "top-middle":
102
- g = k();
104
+ m = k();
103
105
  break;
104
106
  case "left":
105
107
  case "left-middle":
106
108
  case "right":
107
109
  case "right-middle":
108
- f = H();
110
+ f = C();
109
111
  break;
110
112
  case "bottom-start":
111
113
  case "top-start":
112
- g = T();
114
+ m = P();
113
115
  break;
114
116
  case "bottom-end":
115
117
  case "top-end":
116
- g = y();
118
+ m = y();
117
119
  break;
118
120
  case "left-start":
119
121
  case "right-start":
@@ -124,7 +126,7 @@ var ne = ({
124
126
  f = G();
125
127
  break;
126
128
  }
127
- return { x: g, y: f };
129
+ return { x: m, y: f };
128
130
  };
129
131
  var oe = class {
130
132
  /**
@@ -133,42 +135,57 @@ var oe = class {
133
135
  * @param popper
134
136
  * @param options
135
137
  */
138
+ /**
139
+ * Creates an instance of CreatePopper
140
+ * @param {HTMLElement} reference - The reference element to position against
141
+ * @param {HTMLElement} popper - The element to be positioned
142
+ * @param {PopperOptions} [options] - Configuration options
143
+ * @param {number} [options.offsetDistance] - Distance between popper and reference element
144
+ * @param {Placement} [options.placement] - Preferred placement of the popper
145
+ * @param {Object} [options.eventEffect] - Event handling configuration
146
+ * @param {boolean} [options.eventEffect.disableOnResize] - Disable position updates on window resize
147
+ * @param {boolean} [options.eventEffect.disableOnScroll] - Disable position updates on scroll
148
+ * @param {Function} [options.onUpdate] - Callback function when position updates
149
+ */
136
150
  constructor(e, t, s = {}) {
137
- h(this, "reference"), h(this, "popper"), h(this, "offsetDistance"), h(this, "placement"), h(this, "disableOnResize"), h(this, "disableOnScroll"), h(this, "onUpdate"), h(this, "isWindowEventsRegistered"), h(this, "validateElements", () => {
138
- if (!(this.reference instanceof HTMLElement)) throw new Error("Invalid HTMLElement for Reference Element");
139
- if (!(this.popper instanceof HTMLElement)) throw new Error("Invalid HTMLElement for Popper");
140
- if (typeof this.offsetDistance != "number") throw new Error("OffsetDistance must be a number");
141
- }), h(this, "setPopperStyleProperty", (m, v) => {
142
- this.popper.style.setProperty("--fx-popper-placement-x", `${m}px`), this.popper.style.setProperty("--fx-popper-placement-y", `${v}px`);
143
- }), h(this, "setInitialStyles", () => {
151
+ 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", () => {
152
+ if (!(this.reference instanceof HTMLElement))
153
+ throw new Error("Invalid HTMLElement for Reference Element");
154
+ if (!(this.popper instanceof HTMLElement))
155
+ throw new Error("Invalid HTMLElement for Popper");
156
+ if (typeof this.offsetDistance != "number")
157
+ throw new Error("OffsetDistance must be a number");
158
+ }), p(this, "setPopperStyleProperty", (g, v) => {
159
+ this.popper.style.setProperty("--fx-popper-placement-x", `${g}px`), this.popper.style.setProperty("--fx-popper-placement-y", `${v}px`);
160
+ }), p(this, "setInitialStyles", () => {
144
161
  this.popper.style.setProperty("--fx-popper-placement-x", ""), this.popper.style.setProperty("--fx-popper-placement-y", "");
145
- }), h(this, "initPlacement", () => {
146
- var m;
162
+ }), p(this, "initPlacement", () => {
163
+ var g;
147
164
  this.validateElements(), this.setInitialStyles();
148
- const v = window.innerWidth, D = window.innerHeight, { popperHeight: C, popperWidth: u, refHeight: E, refWidth: k, refLeft: H, refTop: T } = N({ reference: this.reference, popper: this.popper }), { x: y, y: b } = ne(
165
+ const v = window.innerWidth, L = window.innerHeight, { popperHeight: D, popperWidth: u, refHeight: E, refWidth: k, refLeft: C, refTop: P } = N({ reference: this.reference, popper: this.popper }), { x: y, y: b } = ne(
149
166
  {
150
167
  placement: this.placement,
151
168
  refWidth: k,
152
- refTop: T,
153
- refLeft: H,
169
+ refTop: P,
170
+ refLeft: C,
154
171
  popperWidth: u,
155
172
  refHeight: E,
156
- popperHeight: C,
157
- windowHeight: D,
173
+ popperHeight: D,
174
+ windowHeight: L,
158
175
  windowWidth: v,
159
176
  offsetDistance: this.offsetDistance
160
177
  }
161
178
  );
162
- this.setPopperStyleProperty(y, b), (m = this.onUpdate) == null || m.call(this, { x: y, y: b, placement: this.placement });
163
- }), h(this, "removeWindowEvents", () => {
179
+ this.setPopperStyleProperty(y, b), (g = this.onUpdate) == null || g.call(this, { x: y, y: b, placement: this.placement });
180
+ }), p(this, "removeWindowEvents", () => {
164
181
  this.isWindowEventsRegistered && (!this.disableOnResize && window.removeEventListener("resize", this.updatePosition), !this.disableOnScroll && window.removeEventListener("scroll", this.updatePosition), this.isWindowEventsRegistered = false);
165
- }), h(this, "attachWindowEvent", () => {
182
+ }), p(this, "attachWindowEvent", () => {
166
183
  this.isWindowEventsRegistered && this.removeWindowEvents(), this.disableOnResize || window.addEventListener("resize", this.updatePosition), this.disableOnScroll || window.addEventListener("scroll", this.updatePosition), this.isWindowEventsRegistered = true;
167
- }), h(this, "resetPosition", () => {
184
+ }), p(this, "resetPosition", () => {
168
185
  this.setInitialStyles();
169
- }), h(this, "updatePosition", () => {
186
+ }), p(this, "updatePosition", () => {
170
187
  this.initPlacement(), this.attachWindowEvent();
171
- }), h(this, "cleanupEvents", () => {
188
+ }), p(this, "cleanupEvents", () => {
172
189
  this.setInitialStyles(), this.removeWindowEvents();
173
190
  });
174
191
  const {
@@ -177,12 +194,22 @@ var oe = class {
177
194
  eventEffect: r = {},
178
195
  onUpdate: l
179
196
  } = s;
180
- if (!(e instanceof HTMLElement)) throw new Error("Invalid HTMLElement for Reference Element");
181
- if (!(t instanceof HTMLElement)) throw new Error("Invalid HTMLElement for Popper");
182
- if (s.offsetDistance && typeof s.offsetDistance != "number") throw new Error("OffsetDistance must be a number");
197
+ if (!(e instanceof HTMLElement))
198
+ throw new Error("Invalid HTMLElement for Reference Element");
199
+ if (!(t instanceof HTMLElement))
200
+ throw new Error("Invalid HTMLElement for Popper");
201
+ if (s.offsetDistance && typeof s.offsetDistance != "number")
202
+ throw new Error("OffsetDistance must be a number");
183
203
  const { disableOnResize: d, disableOnScroll: c } = r;
184
204
  this.isWindowEventsRegistered = false, this.reference = e, this.popper = t, this.offsetDistance = o, this.placement = n, this.disableOnResize = d || false, this.disableOnScroll = c || false, this.onUpdate = l;
185
205
  }
206
+ /**
207
+ * Updates popper configuration and recalculates position
208
+ * @public
209
+ * @param {Object} options - New configuration options
210
+ * @param {Placement} options.placement - New placement value
211
+ * @param {number} [options.offsetDistance] - New offset distance
212
+ */
186
213
  setOptions({ placement: e, offsetDistance: t }) {
187
214
  this.placement = e, this.offsetDistance = t || this.offsetDistance, this.initPlacement(), this.attachWindowEvent();
188
215
  }
@@ -219,10 +246,11 @@ var le = ({
219
246
  });
220
247
  };
221
248
  var w = ({ state: i, trigger: e, popper: t }) => {
249
+ const s = i === "open";
222
250
  z(t, {
223
251
  "data-state": i
224
252
  }), z(e, {
225
- "aria-expanded": `${i}`
253
+ "aria-expanded": `${s}`
226
254
  });
227
255
  };
228
256
  var he = class {
@@ -232,7 +260,6 @@ var he = class {
232
260
  * @param {string | HTMLElement} params.trigger - The trigger element selector or HTMLElement
233
261
  * @param {string | HTMLElement} params.content - The content element selector or HTMLElement
234
262
  * @param {OverlayOptions} [params.options] - Configuration options for the overlay
235
- * @throws {Error} When trigger or content elements are invalid
236
263
  */
237
264
  constructor({ trigger: e, content: t, options: s = {} }) {
238
265
  a(this, "triggerElement"), a(this, "contentElement"), a(this, "triggerStrategy"), a(this, "placement"), a(this, "offsetDistance"), a(this, "preventFromCloseOutside"), a(this, "preventFromCloseInside"), a(this, "options"), a(this, "defaultState"), a(this, "popper"), a(this, "eventEffect"), a(this, "getElement", (n) => typeof n == "string" ? re(n) : n instanceof HTMLElement ? n : void 0), a(this, "handleDocumentClick", (n) => {
@@ -254,7 +281,7 @@ var he = class {
254
281
  }), a(this, "showOnMouseEnter", () => {
255
282
  this.show(), this.addEventOnMouseEnter();
256
283
  }), a(this, "setShowOptions", ({ placement: n, offsetDistance: r }) => {
257
- var l, d, c, m;
284
+ var l, d, c, g;
258
285
  this.popper.setOptions({
259
286
  placement: n,
260
287
  offsetDistance: r
@@ -262,18 +289,25 @@ var he = class {
262
289
  state: "open",
263
290
  popper: this.contentElement,
264
291
  trigger: this.triggerElement
265
- }), this.onToggleState(false), (m = (c = this.options).onShow) == null || m.call(c);
292
+ }), this.onToggleState(false), (g = (c = this.options).onShow) == null || g.call(c);
266
293
  }), a(this, "setPopperOptions", ({ placement: n, offsetDistance: r }) => {
267
294
  this.popper.setOptions({
268
295
  placement: n,
269
- offsetDistance: r
296
+ offsetDistance: r || this.offsetDistance
270
297
  });
298
+ }), a(this, "setPopperTrigger", (n, r) => {
299
+ this.cleanup(), this.popper.setOptions({
300
+ placement: r.placement || this.placement,
301
+ offsetDistance: r.offsetDistance || this.offsetDistance
302
+ }), this.triggerElement = n, this.triggerElement.addEventListener("click", this.toggleStateOnClick), this.triggerStrategy === "hover" && this.triggerElement.addEventListener("mouseenter", this.showOnMouseEnter);
271
303
  }), a(this, "cleanup", () => {
272
304
  this.triggerElement.removeEventListener("click", this.toggleStateOnClick), this.triggerStrategy === "hover" && this.triggerElement.removeEventListener("mouseenter", this.showOnMouseEnter);
273
305
  });
274
306
  var o;
275
- 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");
276
- if (!(this.contentElement instanceof HTMLElement)) throw new Error("Content element must be a valid HTML element");
307
+ if (this.contentElement = this.getElement(t), this.triggerElement = this.getElement(e), !(this.triggerElement instanceof HTMLElement))
308
+ throw new Error("Trigger element must be a valid HTML element");
309
+ if (!(this.contentElement instanceof HTMLElement))
310
+ throw new Error("Content element must be a valid HTML element");
277
311
  this.options = s, 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 oe(
278
312
  this.triggerElement,
279
313
  this.contentElement,
@@ -330,7 +364,7 @@ var he = class {
330
364
  }), this.triggerElement.addEventListener("click", this.toggleStateOnClick), this.triggerStrategy === "hover" && this.triggerElement.addEventListener("mouseenter", this.showOnMouseEnter);
331
365
  }
332
366
  };
333
- var x = class {
367
+ var H = class {
334
368
  static initGlobalRegistry() {
335
369
  window.$flexillaInstances || (window.$flexillaInstances = {});
336
370
  }
@@ -349,7 +383,7 @@ var x = class {
349
383
  ));
350
384
  }
351
385
  };
352
- var P = class _P {
386
+ var x = class _x {
353
387
  /**
354
388
  * Creates a new Popover instance.
355
389
  * @param {string | HTMLElement} popoverEl - The popover content element or its selector.
@@ -366,35 +400,41 @@ var P = class _P {
366
400
  * });
367
401
  */
368
402
  constructor(e, t = {}) {
369
- p(this, "triggerElement");
370
- p(this, "contentElement");
371
- p(this, "options");
372
- p(this, "PopoverInstance");
373
- p(this, "triggerStrategy");
374
- p(this, "placement");
375
- p(this, "offsetDistance");
376
- p(this, "preventFromCloseOutside");
377
- p(this, "preventFromCloseInside");
378
- p(this, "defaultState");
379
- p(this, "setShowOptions", ({ placement: e2, offsetDistance: t2 }) => {
403
+ h(this, "triggerElement");
404
+ h(this, "contentElement");
405
+ h(this, "options");
406
+ h(this, "PopoverInstance");
407
+ h(this, "triggerStrategy");
408
+ h(this, "placement");
409
+ h(this, "offsetDistance");
410
+ h(this, "preventFromCloseOutside");
411
+ h(this, "preventFromCloseInside");
412
+ h(this, "defaultState");
413
+ h(this, "setShowOptions", ({ placement: e2, offsetDistance: t2 }) => {
380
414
  this.PopoverInstance.setShowOptions({ placement: e2, offsetDistance: t2 });
381
415
  });
382
- p(this, "show", () => {
416
+ h(this, "setOptions", ({ placement: e2, offsetDistance: t2 }) => {
417
+ this.PopoverInstance.setPopperOptions({ placement: e2, offsetDistance: t2 });
418
+ });
419
+ h(this, "setPopperTrigger", (e2, t2) => {
420
+ this.PopoverInstance.setPopperTrigger(e2, t2);
421
+ });
422
+ h(this, "show", () => {
383
423
  this.PopoverInstance.show(), M(this.contentElement, "popover-show", {
384
424
  isHidden: false
385
425
  });
386
426
  });
387
- p(this, "hide", () => {
427
+ h(this, "hide", () => {
388
428
  this.PopoverInstance.hide(), M(this.contentElement, "popover-hide", {
389
429
  isHidden: true
390
430
  });
391
431
  });
392
- p(this, "cleanup", () => {
393
- this.PopoverInstance.cleanup(), x.removeInstance("popover", this.contentElement);
432
+ h(this, "cleanup", () => {
433
+ this.PopoverInstance.cleanup(), H.removeInstance("popover", this.contentElement);
394
434
  });
395
435
  const s = typeof e == "string" ? A(e) : e;
396
436
  this.contentElement = s;
397
- const o = x.getInstance("popover", this.contentElement);
437
+ const o = H.getInstance("popover", this.contentElement);
398
438
  if (o)
399
439
  return o;
400
440
  this.triggerElement = A(`[data-popover-trigger][data-popover-id=${s.getAttribute("id")}]`), this.options = t, this.triggerStrategy = this.options.triggerStrategy || s.dataset.triggerStrategy || "click", this.placement = this.options.placement || s.dataset.placement || "bottom-middle", this.offsetDistance = this.options.offsetDistance || parseInt(`${s.dataset.offsetDistance}`) | 6, this.preventFromCloseOutside = this.options.preventFromCloseOutside || s.hasAttribute("data-prevent-close-outside") || false, this.preventFromCloseInside = this.options.preventCloseFromInside || s.hasAttribute("data-prevent-close-inside") || false, this.defaultState = this.options.defaultState || s.dataset.defaultState || "close", this.PopoverInstance = new he({
@@ -417,7 +457,7 @@ var P = class _P {
417
457
  },
418
458
  popper: this.options.popper
419
459
  }
420
- }), x.register("popover", this.contentElement, this);
460
+ }), H.register("popover", this.contentElement, this);
421
461
  }
422
462
  /**
423
463
  * Creates a new Popover instance with the specified options.
@@ -431,7 +471,7 @@ var P = class _P {
431
471
  * });
432
472
  */
433
473
  static init(e, t) {
434
- return new _P(e, t);
474
+ return new _x(e, t);
435
475
  }
436
476
  /**
437
477
  * Automatically initializes all popover elements matching the specified selector.
@@ -445,14 +485,15 @@ var P = class _P {
445
485
  */
446
486
  static autoInit(e = "[data-fx-popover]") {
447
487
  const t = j(e);
448
- for (const s of t) new _P(s);
488
+ for (const s of t)
489
+ new _x(s);
449
490
  }
450
491
  };
451
492
 
452
493
  // src/index.js
453
494
  function Popover(Alpine) {
454
495
  Alpine.directive("popover", (el, {}, { cleanup }) => {
455
- const popover_ = new P(el);
496
+ const popover_ = new x(el);
456
497
  cleanup(() => {
457
498
  popover_.cleanup();
458
499
  });
@@ -1,7 +1,7 @@
1
1
  // ../../node_modules/@flexilla/popover/dist/popover.js
2
2
  var K = Object.defineProperty;
3
3
  var U = (i, e, t) => e in i ? K(i, e, { enumerable: true, configurable: true, writable: true, value: t }) : i[e] = t;
4
- var p = (i, e, t) => U(i, typeof e != "symbol" ? e + "" : e, t);
4
+ var h = (i, e, t) => U(i, typeof e != "symbol" ? e + "" : e, t);
5
5
  var A = (i, e = document.body) => e.querySelector(i);
6
6
  var j = (i, e = document.body) => Array.from(e.querySelectorAll(i));
7
7
  var M = (i, e, t) => {
@@ -13,20 +13,22 @@ var B = (i, e, t) => e in i ? q(i, e, { enumerable: true, configurable: true, wr
13
13
  var a = (i, e, t) => B(i, typeof e != "symbol" ? e + "" : e, t);
14
14
  var J = "bottom";
15
15
  var N = ({ reference: i, popper: e }) => {
16
- const t = e.getBoundingClientRect(), s = i.getBoundingClientRect();
16
+ if (!i || !e)
17
+ throw new Error("Reference or popper element is null or undefined");
18
+ const t = /* @__PURE__ */ new WeakMap(), s = (r) => (t.has(r) || t.set(r, r.getBoundingClientRect()), t.get(r)), o = s(e), n = s(i);
17
19
  return {
18
- popperHeight: t.height,
19
- popperWidth: t.width,
20
- refHeight: s.height,
21
- refWidth: s.width,
22
- refLeft: s.left,
23
- refTop: s.top,
24
- refRight: s.right
20
+ popperHeight: o.height,
21
+ popperWidth: o.width,
22
+ refHeight: n.height,
23
+ refWidth: n.width,
24
+ refLeft: n.left,
25
+ refTop: n.top,
26
+ refRight: n.right
25
27
  };
26
28
  };
27
29
  var Q = Object.defineProperty;
28
30
  var V = (i, e, t) => e in i ? Q(i, e, { enumerable: true, configurable: true, writable: true, value: t }) : i[e] = t;
29
- var h = (i, e, t) => V(i, typeof e != "symbol" ? e + "" : e, t);
31
+ var p = (i, e, t) => V(i, typeof e != "symbol" ? e + "" : e, t);
30
32
  var X = (i, e, t, s) => {
31
33
  const o = t, n = s - (t + e);
32
34
  return o >= (i - e) / 2 && n >= (i - e) / 2;
@@ -53,7 +55,7 @@ var ne = ({
53
55
  windowWidth: d,
54
56
  offsetDistance: c
55
57
  }) => {
56
- const m = d - s - e, v = s, D = l - t - o, C = t, u = () => Z(
58
+ const g = d - s - e, v = s, L = l - t - o, D = t, u = () => Z(
57
59
  () => ee(t, o, r, l),
58
60
  () => _(t, o, r, l),
59
61
  t,
@@ -66,29 +68,29 @@ var ne = ({
66
68
  n,
67
69
  d,
68
70
  e
69
- ), k = () => X(n, e, s, d) ? s + e / 2 - n / 2 : E(), H = () => Y(r, o, t, l) ? t + o / 2 - r / 2 : u(), T = () => s + n <= d ? s : E(), y = () => s + e - n >= 0 ? s + e - n : E(), b = () => t + r <= l ? t : u(), G = () => t + o - r >= 0 ? t + o - r : u();
70
- let g = 0, f = 0;
71
- const S = t - r - c, O = t + o + c, I = s - n - c, L = s + e + c, W = C >= r + c, F = D >= r + c, R = v >= n + c, $ = m >= n + c;
72
- switch (i.startsWith("top") ? f = W ? S : F ? O : Math.max(S, O) : i.startsWith("bottom") ? f = F ? O : W ? S : Math.max(S, O) : i.startsWith("left") ? g = R ? I : $ ? L : Math.max(I, L) : i.startsWith("right") && (g = $ ? L : R ? I : Math.max(I, L)), i) {
71
+ ), k = () => X(n, e, s, d) ? s + e / 2 - n / 2 : E(), C = () => Y(r, o, t, l) ? t + o / 2 - r / 2 : u(), P = () => s + n <= d ? s : E(), y = () => s + e - n >= 0 ? s + e - n : E(), b = () => t + r <= l ? t : u(), G = () => t + o - r >= 0 ? t + o - r : u();
72
+ let m = 0, f = 0;
73
+ const T = t - r - c, S = t + o + c, O = s - n - c, I = s + e + c, W = D >= r + c, F = L >= r + c, R = v >= n + c, $ = g >= n + c;
74
+ switch (i.startsWith("top") ? f = W ? T : F ? S : Math.max(T, S) : i.startsWith("bottom") ? f = F ? S : W ? T : Math.max(S) : i.startsWith("left") ? m = R ? O : $ ? I : Math.max(O, I) : i.startsWith("right") && (m = $ ? I : R ? O : Math.max(I, O)), i) {
73
75
  case "bottom":
74
76
  case "bottom-middle":
75
77
  case "top":
76
78
  case "top-middle":
77
- g = k();
79
+ m = k();
78
80
  break;
79
81
  case "left":
80
82
  case "left-middle":
81
83
  case "right":
82
84
  case "right-middle":
83
- f = H();
85
+ f = C();
84
86
  break;
85
87
  case "bottom-start":
86
88
  case "top-start":
87
- g = T();
89
+ m = P();
88
90
  break;
89
91
  case "bottom-end":
90
92
  case "top-end":
91
- g = y();
93
+ m = y();
92
94
  break;
93
95
  case "left-start":
94
96
  case "right-start":
@@ -99,7 +101,7 @@ var ne = ({
99
101
  f = G();
100
102
  break;
101
103
  }
102
- return { x: g, y: f };
104
+ return { x: m, y: f };
103
105
  };
104
106
  var oe = class {
105
107
  /**
@@ -108,42 +110,57 @@ var oe = class {
108
110
  * @param popper
109
111
  * @param options
110
112
  */
113
+ /**
114
+ * Creates an instance of CreatePopper
115
+ * @param {HTMLElement} reference - The reference element to position against
116
+ * @param {HTMLElement} popper - The element to be positioned
117
+ * @param {PopperOptions} [options] - Configuration options
118
+ * @param {number} [options.offsetDistance] - Distance between popper and reference element
119
+ * @param {Placement} [options.placement] - Preferred placement of the popper
120
+ * @param {Object} [options.eventEffect] - Event handling configuration
121
+ * @param {boolean} [options.eventEffect.disableOnResize] - Disable position updates on window resize
122
+ * @param {boolean} [options.eventEffect.disableOnScroll] - Disable position updates on scroll
123
+ * @param {Function} [options.onUpdate] - Callback function when position updates
124
+ */
111
125
  constructor(e, t, s = {}) {
112
- h(this, "reference"), h(this, "popper"), h(this, "offsetDistance"), h(this, "placement"), h(this, "disableOnResize"), h(this, "disableOnScroll"), h(this, "onUpdate"), h(this, "isWindowEventsRegistered"), h(this, "validateElements", () => {
113
- if (!(this.reference instanceof HTMLElement)) throw new Error("Invalid HTMLElement for Reference Element");
114
- if (!(this.popper instanceof HTMLElement)) throw new Error("Invalid HTMLElement for Popper");
115
- if (typeof this.offsetDistance != "number") throw new Error("OffsetDistance must be a number");
116
- }), h(this, "setPopperStyleProperty", (m, v) => {
117
- this.popper.style.setProperty("--fx-popper-placement-x", `${m}px`), this.popper.style.setProperty("--fx-popper-placement-y", `${v}px`);
118
- }), h(this, "setInitialStyles", () => {
126
+ 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", () => {
127
+ if (!(this.reference instanceof HTMLElement))
128
+ throw new Error("Invalid HTMLElement for Reference Element");
129
+ if (!(this.popper instanceof HTMLElement))
130
+ throw new Error("Invalid HTMLElement for Popper");
131
+ if (typeof this.offsetDistance != "number")
132
+ throw new Error("OffsetDistance must be a number");
133
+ }), p(this, "setPopperStyleProperty", (g, v) => {
134
+ this.popper.style.setProperty("--fx-popper-placement-x", `${g}px`), this.popper.style.setProperty("--fx-popper-placement-y", `${v}px`);
135
+ }), p(this, "setInitialStyles", () => {
119
136
  this.popper.style.setProperty("--fx-popper-placement-x", ""), this.popper.style.setProperty("--fx-popper-placement-y", "");
120
- }), h(this, "initPlacement", () => {
121
- var m;
137
+ }), p(this, "initPlacement", () => {
138
+ var g;
122
139
  this.validateElements(), this.setInitialStyles();
123
- const v = window.innerWidth, D = window.innerHeight, { popperHeight: C, popperWidth: u, refHeight: E, refWidth: k, refLeft: H, refTop: T } = N({ reference: this.reference, popper: this.popper }), { x: y, y: b } = ne(
140
+ const v = window.innerWidth, L = window.innerHeight, { popperHeight: D, popperWidth: u, refHeight: E, refWidth: k, refLeft: C, refTop: P } = N({ reference: this.reference, popper: this.popper }), { x: y, y: b } = ne(
124
141
  {
125
142
  placement: this.placement,
126
143
  refWidth: k,
127
- refTop: T,
128
- refLeft: H,
144
+ refTop: P,
145
+ refLeft: C,
129
146
  popperWidth: u,
130
147
  refHeight: E,
131
- popperHeight: C,
132
- windowHeight: D,
148
+ popperHeight: D,
149
+ windowHeight: L,
133
150
  windowWidth: v,
134
151
  offsetDistance: this.offsetDistance
135
152
  }
136
153
  );
137
- this.setPopperStyleProperty(y, b), (m = this.onUpdate) == null || m.call(this, { x: y, y: b, placement: this.placement });
138
- }), h(this, "removeWindowEvents", () => {
154
+ this.setPopperStyleProperty(y, b), (g = this.onUpdate) == null || g.call(this, { x: y, y: b, placement: this.placement });
155
+ }), p(this, "removeWindowEvents", () => {
139
156
  this.isWindowEventsRegistered && (!this.disableOnResize && window.removeEventListener("resize", this.updatePosition), !this.disableOnScroll && window.removeEventListener("scroll", this.updatePosition), this.isWindowEventsRegistered = false);
140
- }), h(this, "attachWindowEvent", () => {
157
+ }), p(this, "attachWindowEvent", () => {
141
158
  this.isWindowEventsRegistered && this.removeWindowEvents(), this.disableOnResize || window.addEventListener("resize", this.updatePosition), this.disableOnScroll || window.addEventListener("scroll", this.updatePosition), this.isWindowEventsRegistered = true;
142
- }), h(this, "resetPosition", () => {
159
+ }), p(this, "resetPosition", () => {
143
160
  this.setInitialStyles();
144
- }), h(this, "updatePosition", () => {
161
+ }), p(this, "updatePosition", () => {
145
162
  this.initPlacement(), this.attachWindowEvent();
146
- }), h(this, "cleanupEvents", () => {
163
+ }), p(this, "cleanupEvents", () => {
147
164
  this.setInitialStyles(), this.removeWindowEvents();
148
165
  });
149
166
  const {
@@ -152,12 +169,22 @@ var oe = class {
152
169
  eventEffect: r = {},
153
170
  onUpdate: l
154
171
  } = s;
155
- if (!(e instanceof HTMLElement)) throw new Error("Invalid HTMLElement for Reference Element");
156
- if (!(t instanceof HTMLElement)) throw new Error("Invalid HTMLElement for Popper");
157
- if (s.offsetDistance && typeof s.offsetDistance != "number") throw new Error("OffsetDistance must be a number");
172
+ if (!(e instanceof HTMLElement))
173
+ throw new Error("Invalid HTMLElement for Reference Element");
174
+ if (!(t instanceof HTMLElement))
175
+ throw new Error("Invalid HTMLElement for Popper");
176
+ if (s.offsetDistance && typeof s.offsetDistance != "number")
177
+ throw new Error("OffsetDistance must be a number");
158
178
  const { disableOnResize: d, disableOnScroll: c } = r;
159
179
  this.isWindowEventsRegistered = false, this.reference = e, this.popper = t, this.offsetDistance = o, this.placement = n, this.disableOnResize = d || false, this.disableOnScroll = c || false, this.onUpdate = l;
160
180
  }
181
+ /**
182
+ * Updates popper configuration and recalculates position
183
+ * @public
184
+ * @param {Object} options - New configuration options
185
+ * @param {Placement} options.placement - New placement value
186
+ * @param {number} [options.offsetDistance] - New offset distance
187
+ */
161
188
  setOptions({ placement: e, offsetDistance: t }) {
162
189
  this.placement = e, this.offsetDistance = t || this.offsetDistance, this.initPlacement(), this.attachWindowEvent();
163
190
  }
@@ -194,10 +221,11 @@ var le = ({
194
221
  });
195
222
  };
196
223
  var w = ({ state: i, trigger: e, popper: t }) => {
224
+ const s = i === "open";
197
225
  z(t, {
198
226
  "data-state": i
199
227
  }), z(e, {
200
- "aria-expanded": `${i}`
228
+ "aria-expanded": `${s}`
201
229
  });
202
230
  };
203
231
  var he = class {
@@ -207,7 +235,6 @@ var he = class {
207
235
  * @param {string | HTMLElement} params.trigger - The trigger element selector or HTMLElement
208
236
  * @param {string | HTMLElement} params.content - The content element selector or HTMLElement
209
237
  * @param {OverlayOptions} [params.options] - Configuration options for the overlay
210
- * @throws {Error} When trigger or content elements are invalid
211
238
  */
212
239
  constructor({ trigger: e, content: t, options: s = {} }) {
213
240
  a(this, "triggerElement"), a(this, "contentElement"), a(this, "triggerStrategy"), a(this, "placement"), a(this, "offsetDistance"), a(this, "preventFromCloseOutside"), a(this, "preventFromCloseInside"), a(this, "options"), a(this, "defaultState"), a(this, "popper"), a(this, "eventEffect"), a(this, "getElement", (n) => typeof n == "string" ? re(n) : n instanceof HTMLElement ? n : void 0), a(this, "handleDocumentClick", (n) => {
@@ -229,7 +256,7 @@ var he = class {
229
256
  }), a(this, "showOnMouseEnter", () => {
230
257
  this.show(), this.addEventOnMouseEnter();
231
258
  }), a(this, "setShowOptions", ({ placement: n, offsetDistance: r }) => {
232
- var l, d, c, m;
259
+ var l, d, c, g;
233
260
  this.popper.setOptions({
234
261
  placement: n,
235
262
  offsetDistance: r
@@ -237,18 +264,25 @@ var he = class {
237
264
  state: "open",
238
265
  popper: this.contentElement,
239
266
  trigger: this.triggerElement
240
- }), this.onToggleState(false), (m = (c = this.options).onShow) == null || m.call(c);
267
+ }), this.onToggleState(false), (g = (c = this.options).onShow) == null || g.call(c);
241
268
  }), a(this, "setPopperOptions", ({ placement: n, offsetDistance: r }) => {
242
269
  this.popper.setOptions({
243
270
  placement: n,
244
- offsetDistance: r
271
+ offsetDistance: r || this.offsetDistance
245
272
  });
273
+ }), a(this, "setPopperTrigger", (n, r) => {
274
+ this.cleanup(), this.popper.setOptions({
275
+ placement: r.placement || this.placement,
276
+ offsetDistance: r.offsetDistance || this.offsetDistance
277
+ }), this.triggerElement = n, this.triggerElement.addEventListener("click", this.toggleStateOnClick), this.triggerStrategy === "hover" && this.triggerElement.addEventListener("mouseenter", this.showOnMouseEnter);
246
278
  }), a(this, "cleanup", () => {
247
279
  this.triggerElement.removeEventListener("click", this.toggleStateOnClick), this.triggerStrategy === "hover" && this.triggerElement.removeEventListener("mouseenter", this.showOnMouseEnter);
248
280
  });
249
281
  var o;
250
- 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");
251
- if (!(this.contentElement instanceof HTMLElement)) throw new Error("Content element must be a valid HTML element");
282
+ if (this.contentElement = this.getElement(t), this.triggerElement = this.getElement(e), !(this.triggerElement instanceof HTMLElement))
283
+ throw new Error("Trigger element must be a valid HTML element");
284
+ if (!(this.contentElement instanceof HTMLElement))
285
+ throw new Error("Content element must be a valid HTML element");
252
286
  this.options = s, 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 oe(
253
287
  this.triggerElement,
254
288
  this.contentElement,
@@ -305,7 +339,7 @@ var he = class {
305
339
  }), this.triggerElement.addEventListener("click", this.toggleStateOnClick), this.triggerStrategy === "hover" && this.triggerElement.addEventListener("mouseenter", this.showOnMouseEnter);
306
340
  }
307
341
  };
308
- var x = class {
342
+ var H = class {
309
343
  static initGlobalRegistry() {
310
344
  window.$flexillaInstances || (window.$flexillaInstances = {});
311
345
  }
@@ -324,7 +358,7 @@ var x = class {
324
358
  ));
325
359
  }
326
360
  };
327
- var P = class _P {
361
+ var x = class _x {
328
362
  /**
329
363
  * Creates a new Popover instance.
330
364
  * @param {string | HTMLElement} popoverEl - The popover content element or its selector.
@@ -341,35 +375,41 @@ var P = class _P {
341
375
  * });
342
376
  */
343
377
  constructor(e, t = {}) {
344
- p(this, "triggerElement");
345
- p(this, "contentElement");
346
- p(this, "options");
347
- p(this, "PopoverInstance");
348
- p(this, "triggerStrategy");
349
- p(this, "placement");
350
- p(this, "offsetDistance");
351
- p(this, "preventFromCloseOutside");
352
- p(this, "preventFromCloseInside");
353
- p(this, "defaultState");
354
- p(this, "setShowOptions", ({ placement: e2, offsetDistance: t2 }) => {
378
+ h(this, "triggerElement");
379
+ h(this, "contentElement");
380
+ h(this, "options");
381
+ h(this, "PopoverInstance");
382
+ h(this, "triggerStrategy");
383
+ h(this, "placement");
384
+ h(this, "offsetDistance");
385
+ h(this, "preventFromCloseOutside");
386
+ h(this, "preventFromCloseInside");
387
+ h(this, "defaultState");
388
+ h(this, "setShowOptions", ({ placement: e2, offsetDistance: t2 }) => {
355
389
  this.PopoverInstance.setShowOptions({ placement: e2, offsetDistance: t2 });
356
390
  });
357
- p(this, "show", () => {
391
+ h(this, "setOptions", ({ placement: e2, offsetDistance: t2 }) => {
392
+ this.PopoverInstance.setPopperOptions({ placement: e2, offsetDistance: t2 });
393
+ });
394
+ h(this, "setPopperTrigger", (e2, t2) => {
395
+ this.PopoverInstance.setPopperTrigger(e2, t2);
396
+ });
397
+ h(this, "show", () => {
358
398
  this.PopoverInstance.show(), M(this.contentElement, "popover-show", {
359
399
  isHidden: false
360
400
  });
361
401
  });
362
- p(this, "hide", () => {
402
+ h(this, "hide", () => {
363
403
  this.PopoverInstance.hide(), M(this.contentElement, "popover-hide", {
364
404
  isHidden: true
365
405
  });
366
406
  });
367
- p(this, "cleanup", () => {
368
- this.PopoverInstance.cleanup(), x.removeInstance("popover", this.contentElement);
407
+ h(this, "cleanup", () => {
408
+ this.PopoverInstance.cleanup(), H.removeInstance("popover", this.contentElement);
369
409
  });
370
410
  const s = typeof e == "string" ? A(e) : e;
371
411
  this.contentElement = s;
372
- const o = x.getInstance("popover", this.contentElement);
412
+ const o = H.getInstance("popover", this.contentElement);
373
413
  if (o)
374
414
  return o;
375
415
  this.triggerElement = A(`[data-popover-trigger][data-popover-id=${s.getAttribute("id")}]`), this.options = t, this.triggerStrategy = this.options.triggerStrategy || s.dataset.triggerStrategy || "click", this.placement = this.options.placement || s.dataset.placement || "bottom-middle", this.offsetDistance = this.options.offsetDistance || parseInt(`${s.dataset.offsetDistance}`) | 6, this.preventFromCloseOutside = this.options.preventFromCloseOutside || s.hasAttribute("data-prevent-close-outside") || false, this.preventFromCloseInside = this.options.preventCloseFromInside || s.hasAttribute("data-prevent-close-inside") || false, this.defaultState = this.options.defaultState || s.dataset.defaultState || "close", this.PopoverInstance = new he({
@@ -392,7 +432,7 @@ var P = class _P {
392
432
  },
393
433
  popper: this.options.popper
394
434
  }
395
- }), x.register("popover", this.contentElement, this);
435
+ }), H.register("popover", this.contentElement, this);
396
436
  }
397
437
  /**
398
438
  * Creates a new Popover instance with the specified options.
@@ -406,7 +446,7 @@ var P = class _P {
406
446
  * });
407
447
  */
408
448
  static init(e, t) {
409
- return new _P(e, t);
449
+ return new _x(e, t);
410
450
  }
411
451
  /**
412
452
  * Automatically initializes all popover elements matching the specified selector.
@@ -420,14 +460,15 @@ var P = class _P {
420
460
  */
421
461
  static autoInit(e = "[data-fx-popover]") {
422
462
  const t = j(e);
423
- for (const s of t) new _P(s);
463
+ for (const s of t)
464
+ new _x(s);
424
465
  }
425
466
  };
426
467
 
427
468
  // src/index.js
428
469
  function Popover(Alpine) {
429
470
  Alpine.directive("popover", (el, {}, { cleanup }) => {
430
- const popover_ = new P(el);
471
+ const popover_ = new x(el);
431
472
  cleanup(() => {
432
473
  popover_.cleanup();
433
474
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@flexilla/alpine-popover",
3
- "version": "0.0.0",
3
+ "version": "0.0.2",
4
4
  "description": "AlpineJS plugin for adding Popover functionality to your AlpineJS components",
5
5
  "type": "module",
6
6
  "private": false,
@@ -58,7 +58,7 @@
58
58
  "Flexilla"
59
59
  ],
60
60
  "dependencies": {
61
- "@flexilla/popover": "^0.2.1"
61
+ "@flexilla/popover": "^0.2.3"
62
62
  },
63
- "gitHead": "3c7ea3f74d67ac5d9ab2817d747ad7127eb542b5"
63
+ "gitHead": "584636c3f3b85dfa71666f5354221dcfc385f9e6"
64
64
  }