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