@flexilla/alpine-dropdown 0.3.0 → 0.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,15 +1,15 @@
1
1
  // ../../node_modules/@flexilla/dropdown/dist/dropdown.js
2
- var B = Object.defineProperty;
3
- var j = (i, e, t) => e in i ? B(i, e, { enumerable: true, configurable: true, writable: true, value: t }) : i[e] = t;
4
- var a = (i, e, t) => j(i, typeof e != "symbol" ? e + "" : e, t);
5
2
  var q = Object.defineProperty;
6
- var G = (i, e, t) => e in i ? q(i, e, { enumerable: true, configurable: true, writable: true, value: t }) : i[e] = t;
7
- var p = (i, e, t) => G(i, typeof e != "symbol" ? e + "" : e, t);
8
- var V = "bottom";
9
- var X = ({ reference: i, popper: e }) => {
10
- if (!i || !e)
3
+ var G = (n, e, t) => e in n ? q(n, e, { enumerable: true, configurable: true, writable: true, value: t }) : n[e] = t;
4
+ var a = (n, e, t) => G(n, typeof e != "symbol" ? e + "" : e, t);
5
+ var V = Object.defineProperty;
6
+ var X = (n, e, t) => e in n ? V(n, e, { enumerable: true, configurable: true, writable: true, value: t }) : n[e] = t;
7
+ var p = (n, e, t) => X(n, typeof e != "symbol" ? e + "" : e, t);
8
+ var Y = "bottom";
9
+ var J = ({ reference: n, popper: e }) => {
10
+ if (!n || !e)
11
11
  throw new Error("Reference or popper element is null or undefined");
12
- const t = /* @__PURE__ */ new WeakMap(), n = (o) => (t.has(o) || t.set(o, o.getBoundingClientRect()), t.get(o)), r = n(e), s = n(i);
12
+ const t = /* @__PURE__ */ new WeakMap(), i = (o) => (t.has(o) || t.set(o, o.getBoundingClientRect()), t.get(o)), r = i(e), s = i(n);
13
13
  return {
14
14
  popperHeight: r.height,
15
15
  popperWidth: r.width,
@@ -20,25 +20,25 @@ var X = ({ reference: i, popper: e }) => {
20
20
  refRight: s.right
21
21
  };
22
22
  };
23
- var Y = (i, e, t, n) => {
24
- const r = t, s = n - (t + e);
25
- return r >= (i - e) / 2 && s >= (i - e) / 2;
23
+ var Q = (n, e, t, i) => {
24
+ const r = t, s = i - (t + e);
25
+ return r >= (n - e) / 2 && s >= (n - e) / 2;
26
26
  };
27
- var J = (i, e, t, n) => (i - e) / 2 <= t && t + i / 2 + e / 2 <= n;
28
- var Q = (i, e, t, n, r) => t > r - n ? e() ? window.innerHeight - r : t - r : i() ? 0 : t + n;
29
- var Z = (i, e, t, n) => i <= n && t - i <= e;
30
- var _ = (i, e, t, n) => t <= n && -i <= e;
31
- var ee = (i, e, t, n, r, s) => {
32
- const o = r - t - s, l = t - n, m = t + s - n + (r - t - s), c = o >= 0 ? r - n : l >= 0 ? t - n : t;
33
- return i() ? 0 : e() ? m : c;
27
+ var Z = (n, e, t, i) => (n - e) / 2 <= t && t + n / 2 + e / 2 <= i;
28
+ var _ = (n, e, t, i, r) => t > r - i ? e() ? window.innerHeight - r : t - r : n() ? 0 : t + i;
29
+ var ee = (n, e, t, i) => n <= i && t - n <= e;
30
+ var te = (n, e, t, i) => t <= i && -n <= e;
31
+ var ne = (n, e, t, i, r, s) => {
32
+ const o = r - t - s, l = t - i, m = t + s - i + (r - t - s), c = o >= 0 ? r - i : l >= 0 ? t - i : t;
33
+ return n() ? 0 : e() ? m : c;
34
34
  };
35
- var te = (i, e, t, n) => i <= t && e - i - n >= i;
36
- var ne = (i, e) => i >= e;
37
- var ie = ({
38
- placement: i,
35
+ var ie = (n, e, t, i) => n <= t && e - n - i >= n;
36
+ var se = (n, e) => n >= e;
37
+ var re = ({
38
+ placement: n,
39
39
  refWidth: e,
40
40
  refTop: t,
41
- refLeft: n,
41
+ refLeft: i,
42
42
  refHeight: r,
43
43
  popperWidth: s,
44
44
  popperHeight: o,
@@ -46,34 +46,34 @@ var ie = ({
46
46
  windowWidth: m,
47
47
  offsetDistance: c
48
48
  }) => {
49
- const d = m - n - e, f = n, E = l - t - r, g = t, w = () => Q(
50
- () => _(t, r, o, l),
51
- () => Z(t, r, o, l),
49
+ const d = m - i - e, f = i, E = l - t - r, g = t, w = () => _(
50
+ () => te(t, r, o, l),
51
+ () => ee(t, r, o, l),
52
52
  t,
53
53
  r,
54
54
  o
55
- ), b = () => ee(
56
- () => te(n, m, s, e),
57
- () => ne(n, s),
58
- n,
55
+ ), b = () => ne(
56
+ () => ie(i, m, s, e),
57
+ () => se(i, s),
58
+ i,
59
59
  s,
60
60
  m,
61
61
  e
62
- ), M = () => Y(s, e, n, m) ? n + e / 2 - s / 2 : b(), A = () => J(o, r, t, l) ? t + r / 2 - o / 2 : w(), C = () => n + s <= m ? n : b(), L = () => n + e - s >= 0 ? n + e - s : b(), x = () => t + o <= l ? t : w(), U = () => t + r - o >= 0 ? t + r - o : w();
62
+ ), H = () => Q(s, e, i, m) ? i + e / 2 - s / 2 : b(), M = () => Z(o, r, t, l) ? t + r / 2 - o / 2 : w(), C = () => i + s <= m ? i : b(), L = () => i + e - s >= 0 ? i + e - s : b(), x = () => t + o <= l ? t : w(), j = () => t + r - o >= 0 ? t + r - o : w();
63
63
  let u = 0, v = 0;
64
- const T = t - o - c, I = t + r + c, D = n - s - c, H = n + e + c, P = g >= o + c, W = E >= o + c, R = f >= s + c, $ = d >= s + c;
65
- switch (i.startsWith("top") ? v = P ? T : W ? I : Math.max(T, I) : i.startsWith("bottom") ? v = W ? I : P ? T : Math.max(I) : i.startsWith("left") ? u = R ? D : $ ? H : Math.max(D, H) : i.startsWith("right") && (u = $ ? H : R ? D : Math.max(H, D)), i) {
64
+ const T = t - o - c, A = t + r + c, I = i - s - c, D = i + e + c, W = g >= o + c, $ = E >= o + c, R = f >= s + c, N = d >= s + c;
65
+ switch (n.startsWith("top") ? v = W ? T : $ ? A : Math.max(T, A) : n.startsWith("bottom") ? v = $ ? A : W ? T : Math.max(A) : n.startsWith("left") ? u = R ? I : N ? D : Math.max(I, D) : n.startsWith("right") && (u = N ? D : R ? I : Math.max(D, I)), n) {
66
66
  case "bottom":
67
67
  case "bottom-middle":
68
68
  case "top":
69
69
  case "top-middle":
70
- u = M();
70
+ u = H();
71
71
  break;
72
72
  case "left":
73
73
  case "left-middle":
74
74
  case "right":
75
75
  case "right-middle":
76
- v = A();
76
+ v = M();
77
77
  break;
78
78
  case "bottom-start":
79
79
  case "top-start":
@@ -89,12 +89,12 @@ var ie = ({
89
89
  break;
90
90
  case "left-end":
91
91
  case "right-end":
92
- v = U();
92
+ v = j();
93
93
  break;
94
94
  }
95
95
  return { x: u, y: v };
96
96
  };
97
- var se = class {
97
+ var oe = class {
98
98
  /**
99
99
  * Flexilla Popper
100
100
  * @param reference
@@ -113,7 +113,7 @@ var se = class {
113
113
  * @param {boolean} [options.eventEffect.disableOnScroll] - Disable position updates on scroll
114
114
  * @param {Function} [options.onUpdate] - Callback function when position updates
115
115
  */
116
- constructor(e, t, n = {}) {
116
+ constructor(e, t, i = {}) {
117
117
  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", () => {
118
118
  if (!(this.reference instanceof HTMLElement))
119
119
  throw new Error("Invalid HTMLElement for Reference Element");
@@ -128,12 +128,12 @@ var se = class {
128
128
  }), p(this, "initPlacement", () => {
129
129
  var d;
130
130
  this.validateElements(), this.setInitialStyles();
131
- const f = window.innerWidth, E = window.innerHeight, { popperHeight: g, popperWidth: w, refHeight: b, refWidth: M, refLeft: A, refTop: C } = X({ reference: this.reference, popper: this.popper }), { x: L, y: x } = ie(
131
+ const f = window.innerWidth, E = window.innerHeight, { popperHeight: g, popperWidth: w, refHeight: b, refWidth: H, refLeft: M, refTop: C } = J({ reference: this.reference, popper: this.popper }), { x: L, y: x } = re(
132
132
  {
133
133
  placement: this.placement,
134
- refWidth: M,
134
+ refWidth: H,
135
135
  refTop: C,
136
- refLeft: A,
136
+ refLeft: M,
137
137
  popperWidth: w,
138
138
  refHeight: b,
139
139
  popperHeight: g,
@@ -156,15 +156,15 @@ var se = class {
156
156
  });
157
157
  const {
158
158
  offsetDistance: r = 10,
159
- placement: s = V,
159
+ placement: s = Y,
160
160
  eventEffect: o = {},
161
161
  onUpdate: l
162
- } = n;
162
+ } = i;
163
163
  if (!(e instanceof HTMLElement))
164
164
  throw new Error("Invalid HTMLElement for Reference Element");
165
165
  if (!(t instanceof HTMLElement))
166
166
  throw new Error("Invalid HTMLElement for Popper");
167
- if (n.offsetDistance && typeof n.offsetDistance != "number")
167
+ if (i.offsetDistance && typeof i.offsetDistance != "number")
168
168
  throw new Error("OffsetDistance must be a number");
169
169
  const { disableOnResize: m, disableOnScroll: c } = o;
170
170
  this.isWindowEventsRegistered = false, this.reference = e, this.popper = t, this.offsetDistance = r, this.placement = s, this.disableOnResize = m || false, this.disableOnScroll = c || false, this.onUpdate = l;
@@ -180,53 +180,53 @@ var se = class {
180
180
  this.placement = e, this.offsetDistance = t || this.offsetDistance, this.initPlacement(), this.attachWindowEvent();
181
181
  }
182
182
  };
183
- var re = Object.defineProperty;
184
- var oe = (i, e, t) => e in i ? re(i, e, { enumerable: true, configurable: true, writable: true, value: t }) : i[e] = t;
185
- var h = (i, e, t) => oe(i, typeof e != "symbol" ? e + "" : e, t);
186
- var ae = (i, e = document.body) => e.querySelector(i);
187
- var N = (i, e) => {
188
- for (const [t, n] of Object.entries(e))
189
- i.setAttribute(t, n);
183
+ var ae = Object.defineProperty;
184
+ var le = (n, e, t) => e in n ? ae(n, e, { enumerable: true, configurable: true, writable: true, value: t }) : n[e] = t;
185
+ var h = (n, e, t) => le(n, typeof e != "symbol" ? e + "" : e, t);
186
+ var he = (n, e = document.body) => e.querySelector(n);
187
+ var z = (n, e) => {
188
+ for (const [t, i] of Object.entries(e))
189
+ n.setAttribute(t, i);
190
190
  };
191
- var le = ({
192
- element: i,
191
+ var de = ({
192
+ element: n,
193
193
  callback: e,
194
194
  type: t,
195
- keysCheck: n
195
+ keysCheck: i
196
196
  }) => {
197
- const r = getComputedStyle(i), s = r.transition;
198
- if (s !== "none" && s !== "" && !n.includes(s)) {
197
+ const r = getComputedStyle(n), s = r.transition;
198
+ if (s !== "none" && s !== "" && !i.includes(s)) {
199
199
  const o = "transitionend", l = () => {
200
- i.removeEventListener(o, l), e();
200
+ n.removeEventListener(o, l), e();
201
201
  };
202
- i.addEventListener(o, l, { once: true });
202
+ n.addEventListener(o, l, { once: true });
203
203
  } else
204
204
  e();
205
205
  };
206
- var he = ({
207
- element: i,
206
+ var ce = ({
207
+ element: n,
208
208
  callback: e
209
209
  }) => {
210
- le({
211
- element: i,
210
+ de({
211
+ element: n,
212
212
  callback: e,
213
213
  type: "transition",
214
214
  keysCheck: ["all 0s ease 0s", "all"]
215
215
  });
216
216
  };
217
- var de = (i, e, t) => {
218
- const n = new CustomEvent(e, { detail: t });
219
- i.dispatchEvent(n);
217
+ var pe = (n, e, t) => {
218
+ const i = new CustomEvent(e, { detail: t });
219
+ n.dispatchEvent(i);
220
220
  };
221
- var y = ({ state: i, trigger: e, popper: t }) => {
222
- const n = i === "open";
223
- N(t, {
224
- "data-state": i
225
- }), N(e, {
226
- "aria-expanded": `${n}`
221
+ var y = ({ state: n, trigger: e, popper: t }) => {
222
+ const i = n === "open";
223
+ z(t, {
224
+ "data-state": n
225
+ }), z(e, {
226
+ "aria-expanded": `${i}`
227
227
  });
228
228
  };
229
- var ce = class {
229
+ var me = class {
230
230
  /**
231
231
  * Creates an instance of CreateOverlay
232
232
  * @param {Object} params - The initialization parameters
@@ -234,8 +234,8 @@ var ce = class {
234
234
  * @param {string | HTMLElement} params.content - The content element selector or HTMLElement
235
235
  * @param {OverlayOptions} [params.options] - Configuration options for the overlay
236
236
  */
237
- constructor({ trigger: e, content: t, options: n = {} }) {
238
- 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", (s) => typeof s == "string" ? ae(s) : s instanceof HTMLElement ? s : void 0), h(this, "handleDocumentClick", (s) => {
237
+ constructor({ trigger: e, content: t, options: i = {} }) {
238
+ 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", (s) => typeof s == "string" ? he(s) : s instanceof HTMLElement ? s : void 0), h(this, "handleDocumentClick", (s) => {
239
239
  this.contentElement.getAttribute("data-state") === "open" && (!this.triggerElement.contains(s.target) && !this.preventFromCloseInside && !this.preventFromCloseOutside ? this.hide() : !this.triggerElement.contains(s.target) && !this.contentElement.contains(s.target) && !this.preventFromCloseOutside ? this.hide() : !this.triggerElement.contains(s.target) && !this.contentElement.contains(s.target) && !this.preventFromCloseOutside ? this.hide() : !this.triggerElement.contains(s.target) && this.contentElement.contains(s.target) && !this.preventFromCloseInside && this.hide());
240
240
  }), h(this, "handleKeyDown", (s) => {
241
241
  s.preventDefault(), this.triggerStrategy !== "hover" && s.key === "Escape" && this.contentElement.getAttribute("data-state") === "open" && (this.preventFromCloseOutside || this.hide());
@@ -281,7 +281,7 @@ var ce = class {
281
281
  throw new Error("Trigger element must be a valid HTML element");
282
282
  if (!(this.contentElement instanceof HTMLElement))
283
283
  throw new Error("Content element must be a valid HTML element");
284
- this.options = 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 = (r = this.options.popper) == null ? void 0 : r.eventEffect, this.popper = new se(
284
+ this.options = i, this.triggerStrategy = this.options.triggerStrategy || "click", this.placement = this.options.placement || "bottom", this.offsetDistance = this.options.offsetDistance || 6, this.preventFromCloseOutside = this.options.preventFromCloseOutside || false, this.preventFromCloseInside = this.options.preventCloseFromInside || false, this.defaultState = this.options.defaultState || "close", this.eventEffect = (r = this.options.popper) == null ? void 0 : r.eventEffect, this.popper = new oe(
285
285
  this.triggerElement,
286
286
  this.contentElement,
287
287
  {
@@ -292,39 +292,39 @@ var ce = class {
292
292
  ), this.initInstance();
293
293
  }
294
294
  onToggleState(e) {
295
- var t, n;
296
- (n = (t = this.options).onToggle) == null || n.call(t, { isHidden: e });
295
+ var t, i;
296
+ (i = (t = this.options).onToggle) == null || i.call(t, { isHidden: e });
297
297
  }
298
298
  /**
299
299
  * Shows the overlay
300
300
  * Positions the overlay, adds event listeners, and triggers related callbacks
301
301
  */
302
302
  show() {
303
- var e, t, n, r;
303
+ var e, t, i, r;
304
304
  this.popper.updatePosition(), document.addEventListener("keydown", this.handleKeyDown), document.addEventListener("click", this.handleDocumentClick), (t = (e = this.options).beforeShow) == null || t.call(e), y({
305
305
  state: "open",
306
306
  popper: this.contentElement,
307
307
  trigger: this.triggerElement
308
- }), this.onToggleState(false), (r = (n = this.options).onShow) == null || r.call(n);
308
+ }), this.onToggleState(false), (r = (i = this.options).onShow) == null || r.call(i);
309
309
  }
310
310
  /**
311
311
  * Hides the overlay
312
312
  * Removes event listeners and triggers related callbacks
313
313
  */
314
314
  hide() {
315
- var e, t, n;
315
+ var e, t, i;
316
316
  let r = false;
317
- de(this.contentElement, "before-hide", {
317
+ pe(this.contentElement, "before-hide", {
318
318
  setExitAction: (o) => {
319
319
  r = o;
320
320
  }
321
321
  });
322
- const s = (n = (t = (e = this.options).beforeHide) == null ? void 0 : t.call(e)) == null ? void 0 : n.cancelAction;
322
+ const s = (i = (t = (e = this.options).beforeHide) == null ? void 0 : t.call(e)) == null ? void 0 : i.cancelAction;
323
323
  r || s || (y({
324
324
  state: "close",
325
325
  popper: this.contentElement,
326
326
  trigger: this.triggerElement
327
- }), this.triggerStrategy === "click" && document.removeEventListener("click", this.handleDocumentClick), document.removeEventListener("keydown", this.handleKeyDown), this.triggerStrategy === "hover" && (this.triggerElement.removeEventListener("mouseleave", this.hideOnMouseLeaseTrigger), this.contentElement.removeEventListener("mouseleave", this.hideOnMouseLeave)), he({
327
+ }), this.triggerStrategy === "click" && document.removeEventListener("click", this.handleDocumentClick), document.removeEventListener("keydown", this.handleKeyDown), this.triggerStrategy === "hover" && (this.triggerElement.removeEventListener("mouseleave", this.hideOnMouseLeaseTrigger), this.contentElement.removeEventListener("mouseleave", this.hideOnMouseLeave)), ce({
328
328
  element: this.contentElement,
329
329
  callback: () => {
330
330
  var o, l;
@@ -344,12 +344,12 @@ var ce = class {
344
344
  }), this.triggerElement.addEventListener("click", this.toggleStateOnClick), this.triggerStrategy === "hover" && this.triggerElement.addEventListener("mouseenter", this.showOnMouseEnter);
345
345
  }
346
346
  };
347
- var F = (i, e = document.body) => e.querySelector(i);
348
- var S = (i, e = document.body) => Array.from(e.querySelectorAll(i));
349
- var pe = (i) => typeof i == "string" ? F(i) : i;
350
- var me = ({ containerElement: i, targetChildren: e = "a:not([disabled]), button:not([disabled])", direction: t }) => {
351
- let n = false;
352
- const r = pe(i) || document.body, s = typeof e == "string" ? S(e, r) : e, o = (l) => {
347
+ var P = (n, e = document.body) => e.querySelector(n);
348
+ var S = (n, e = document.body) => Array.from(e.querySelectorAll(n));
349
+ var ge = (n) => typeof n == "string" ? P(n) : n;
350
+ var fe = ({ containerElement: n, targetChildren: e = "a:not([disabled]), button:not([disabled])", direction: t }) => {
351
+ let i = false;
352
+ const r = ge(n) || document.body, s = typeof e == "string" ? S(e, r) : e, o = (l) => {
353
353
  if (l.preventDefault(), r.focus(), s.length === 0)
354
354
  return;
355
355
  const m = l.key, c = document.activeElement;
@@ -383,53 +383,67 @@ var me = ({ containerElement: i, targetChildren: e = "a:not([disabled]), button:
383
383
  };
384
384
  return {
385
385
  make: () => {
386
- n || (document.addEventListener("keydown", o), n = true);
386
+ i || (document.addEventListener("keydown", o), i = true);
387
387
  },
388
388
  destroy: () => {
389
- n && (document.removeEventListener("keydown", o), n = false);
389
+ i && (document.removeEventListener("keydown", o), i = false);
390
390
  }
391
391
  };
392
392
  };
393
- var z = (i, e, t) => {
394
- const n = new CustomEvent(e, { detail: t });
395
- i.dispatchEvent(n);
393
+ var K = (n, e, t) => {
394
+ const i = new CustomEvent(e, { detail: t });
395
+ n.dispatchEvent(i);
396
396
  };
397
- function ge(i) {
397
+ function ue(n) {
398
398
  const e = () => {
399
399
  document.querySelector(
400
400
  "[data-fx-component]:not([data-component-initialized])"
401
- ) ? requestAnimationFrame(e) : i();
401
+ ) ? requestAnimationFrame(e) : n();
402
402
  };
403
403
  e();
404
404
  }
405
- function fe(i, e, t = "move") {
406
- if (!(i instanceof HTMLElement))
405
+ var U = "data-fx-teleport-root";
406
+ var F = "data-fx-teleported";
407
+ var ve = {
408
+ append: () => {
409
+ },
410
+ remove: () => {
411
+ },
412
+ restore: () => {
413
+ }
414
+ };
415
+ function Ee(n, e, t = "move") {
416
+ var i;
417
+ if (!(n instanceof HTMLElement))
407
418
  throw new Error("Source element must be an HTMLElement");
408
419
  if (!(e instanceof HTMLElement))
409
420
  throw new Error("Target element must be an HTMLElement");
410
421
  if (!["move", "detachable"].includes(t))
411
422
  throw new Error(`Invalid teleport mode: ${t}. Must be "move" or "detachable".`);
412
- let n = document.createComment("teleporter-placeholder");
413
- const r = i.parentNode;
414
- return r ? r.insertBefore(n, i) : console.warn("Element has no parent; placeholder not inserted."), t === "move" ? (i.parentNode && e.appendChild(i), {
423
+ if ((i = n.parentElement) != null && i.closest(`[${U}]`))
424
+ return ve;
425
+ n.setAttribute(U, "");
426
+ let r = document.createComment("teleporter-placeholder");
427
+ const s = n.parentNode;
428
+ return s && s.insertBefore(r, n), t === "move" ? (n.parentNode && (e.appendChild(n), n.setAttribute(F, "")), {
415
429
  append() {
416
- i.parentNode !== e && e.appendChild(i);
430
+ n.parentNode !== e && (e.appendChild(n), n.setAttribute(F, ""));
417
431
  },
418
432
  remove() {
419
- n != null && n.parentNode && i.parentNode && n.parentNode.insertBefore(i, n);
433
+ r != null && r.parentNode && n.parentNode && r.parentNode.insertBefore(n, r);
420
434
  },
421
435
  restore() {
422
- n != null && n.parentNode && i.parentNode !== r && n.parentNode.insertBefore(i, n);
436
+ r != null && r.parentNode && n.parentNode !== s && r.parentNode.insertBefore(n, r);
423
437
  }
424
- }) : (i.parentNode && e.appendChild(i), {
438
+ }) : (n.parentNode && (e.appendChild(n), n.setAttribute(F, "")), {
425
439
  append() {
426
- e.contains(i) || e.appendChild(i);
440
+ e.contains(n) || e.appendChild(n);
427
441
  },
428
442
  remove() {
429
- i.parentNode && i.remove();
443
+ n.parentNode && n.remove();
430
444
  },
431
445
  restore() {
432
- n != null && n.parentNode && !i.parentNode && n.parentNode.insertBefore(i, n);
446
+ r != null && r.parentNode && !n.parentNode && r.parentNode.insertBefore(n, r);
433
447
  }
434
448
  });
435
449
  }
@@ -437,18 +451,18 @@ var O = class {
437
451
  static initGlobalRegistry() {
438
452
  window.$flexillaInstances || (window.$flexillaInstances = {});
439
453
  }
440
- static register(e, t, n) {
441
- return this.initGlobalRegistry(), window.$flexillaInstances[e] || (window.$flexillaInstances[e] = []), this.getInstance(e, t) || (window.$flexillaInstances[e].push({ element: t, instance: n }), n);
454
+ static register(e, t, i) {
455
+ return this.initGlobalRegistry(), window.$flexillaInstances[e] || (window.$flexillaInstances[e] = []), this.getInstance(e, t) || (window.$flexillaInstances[e].push({ element: t, instance: i }), i);
442
456
  }
443
457
  static getInstance(e, t) {
444
- var n, r;
445
- return this.initGlobalRegistry(), (r = (n = window.$flexillaInstances[e]) == null ? void 0 : n.find(
458
+ var i, r;
459
+ return this.initGlobalRegistry(), (r = (i = window.$flexillaInstances[e]) == null ? void 0 : i.find(
446
460
  (s) => s.element === t
447
461
  )) == null ? void 0 : r.instance;
448
462
  }
449
463
  static removeInstance(e, t) {
450
464
  this.initGlobalRegistry(), window.$flexillaInstances[e] && (window.$flexillaInstances[e] = window.$flexillaInstances[e].filter(
451
- (n) => n.element !== t
465
+ (i) => i.element !== t
452
466
  ));
453
467
  }
454
468
  static setup(e) {
@@ -458,7 +472,7 @@ var O = class {
458
472
  e.setAttribute("data-component-initialized", "initialized");
459
473
  }
460
474
  };
461
- var ue = {
475
+ var we = {
462
476
  teleport: true,
463
477
  teleportMode: "move"
464
478
  };
@@ -491,8 +505,8 @@ var k = class k2 {
491
505
  });
492
506
  a(this, "updateObserverFor", (e2) => {
493
507
  const t2 = S("[data-dropdown-trigger]", this.contentElement);
494
- for (const n2 of t2)
495
- e2.observe(n2, {
508
+ for (const i2 of t2)
509
+ e2.observe(i2, {
496
510
  attributes: true,
497
511
  attributeFilter: ["aria-expanded"]
498
512
  });
@@ -507,17 +521,17 @@ var k = class k2 {
507
521
  this.subtriggerObserver = new MutationObserver((e2) => {
508
522
  for (const t2 of e2)
509
523
  if (t2.type === "attributes" && t2.attributeName === "aria-expanded") {
510
- const n2 = t2.target, r2 = n2.getAttribute("aria-expanded");
511
- this.updateSubtriggerAttr(n2, r2 === "true" ? "add" : "remove");
524
+ const i2 = t2.target, r2 = i2.getAttribute("aria-expanded");
525
+ this.updateSubtriggerAttr(i2, r2 === "true" ? "add" : "remove");
512
526
  }
513
527
  }), this.updateObserverFor(this.subtriggerObserver);
514
528
  });
515
529
  a(this, "onToggle", ({ isHidden: e2 }) => {
516
- var t2, n2;
517
- (n2 = (t2 = this.options).onToggle) == null || n2.call(t2, { isHidden: e2 });
530
+ var t2, i2;
531
+ (i2 = (t2 = this.options).onToggle) == null || i2.call(t2, { isHidden: e2 });
518
532
  });
519
533
  a(this, "moveElOnInit", () => {
520
- this.experimentalOptions.teleport && ge(() => {
534
+ this.experimentalOptions.teleport && ue(() => {
521
535
  this.experimentalOptions.teleportMode === "detachable" ? this.teleporter.remove() : this.teleporter.append();
522
536
  });
523
537
  });
@@ -535,14 +549,14 @@ var k = class k2 {
535
549
  });
536
550
  a(this, "showHideOnArrow", (e2) => {
537
551
  e2.preventDefault();
538
- const t2 = e2.key, n2 = document.activeElement;
539
- if (n2 != null && n2.hasAttribute("data-dropdown-trigger"))
552
+ const t2 = e2.key, i2 = document.activeElement;
553
+ if (i2 != null && i2.hasAttribute("data-dropdown-trigger"))
540
554
  switch (t2) {
541
555
  case "ArrowRight":
542
- n2.getAttribute("aria-expanded") !== "true" && (n2.click(), this.updateSubtriggerAttr(n2, "add"));
556
+ i2.getAttribute("aria-expanded") !== "true" && (i2.click(), this.updateSubtriggerAttr(i2, "add"));
543
557
  break;
544
558
  case "ArrowLeft":
545
- n2.getAttribute("aria-expanded") === "true" && (n2.click(), this.updateSubtriggerAttr(n2, "remove"));
559
+ i2.getAttribute("aria-expanded") === "true" && (i2.click(), this.updateSubtriggerAttr(i2, "remove"));
546
560
  break;
547
561
  default:
548
562
  return;
@@ -564,13 +578,13 @@ var k = class k2 {
564
578
  });
565
579
  a(this, "onShow", () => {
566
580
  var e2, t2;
567
- z(this.contentElement, "dropdown-show", {
581
+ K(this.contentElement, "dropdown-show", {
568
582
  isHidden: false
569
583
  }), (t2 = (e2 = this.options).onShow) == null || t2.call(e2), this.observeEl(), this.observeSubtriggers();
570
584
  });
571
585
  a(this, "onHide", () => {
572
586
  var e2, t2;
573
- z(this.contentElement, "dropdown-hide", {
587
+ K(this.contentElement, "dropdown-hide", {
574
588
  isHidden: true
575
589
  }), (t2 = (e2 = this.options).onHide) == null || t2.call(e2), this.moveEl(), this.triggerElement.hasAttribute("data-current-subtrigger") && this.updateSubtriggerAttr(this.triggerElement, "remove"), this.disconnectObserver();
576
590
  });
@@ -591,22 +605,22 @@ var k = class k2 {
591
605
  a(this, "cleanup", () => {
592
606
  this.disconnectObserver(), this.OverlayInstance.cleanup(), O.removeInstance("dropdown", this.contentElement);
593
607
  });
594
- const n = typeof e == "string" ? F(e) : e;
595
- if (!(n instanceof HTMLElement))
608
+ const i = typeof e == "string" ? P(e) : e;
609
+ if (!(i instanceof HTMLElement))
596
610
  throw new Error(
597
611
  "Invalid dropdown content element: Must provide either a valid HTMLElement or a selector string that resolves to an existing HTMLElement"
598
612
  );
599
- if (!n.id)
613
+ if (!i.id)
600
614
  throw new Error("Dropdown content element must have an 'id' attribute for trigger association");
601
- this.contentElement = n;
615
+ this.contentElement = i;
602
616
  const r = O.getInstance("dropdown", this.contentElement);
603
617
  if (r)
604
618
  return r;
605
619
  O.setup(this.contentElement);
606
620
  const s = `[data-dropdown-trigger][data-dropdown-id=${this.contentElement.id}]`;
607
- if (this.triggerElement = F(s), !(this.triggerElement instanceof HTMLElement))
621
+ if (this.triggerElement = P(s), !(this.triggerElement instanceof HTMLElement))
608
622
  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}"`);
609
- this.options = t, this.triggerStrategy = this.contentElement.dataset.triggerStrategy || this.options.triggerStrategy || "click", this.placement = this.contentElement.dataset.placement || this.options.placement || "bottom-start", this.offsetDistance = parseInt(`${this.contentElement.dataset.offsetDistance}`) || this.options.offsetDistance || 6, this.preventFromCloseOutside = this.contentElement.hasAttribute("data-prevent-close-outside") || this.options.preventFromCloseOutside || false, this.preventFromCloseInside = this.contentElement.hasAttribute("data-prevent-close-inside") || this.options.preventCloseFromInside || false, this.defaultState = this.contentElement.dataset.defaultState || this.options.defaultState || "close", this.experimentalOptions = Object.assign({}, ue, t.experimental), this.teleporter = fe(this.contentElement, document.body, this.experimentalOptions.teleportMode), this.OverlayInstance = new ce({
623
+ this.options = t, this.triggerStrategy = this.contentElement.dataset.triggerStrategy || this.options.triggerStrategy || "click", this.placement = this.contentElement.dataset.placement || this.options.placement || "bottom-start", this.offsetDistance = parseInt(`${this.contentElement.dataset.offsetDistance}`) || this.options.offsetDistance || 6, this.preventFromCloseOutside = this.contentElement.hasAttribute("data-prevent-close-outside") || this.options.preventFromCloseOutside || false, this.preventFromCloseInside = this.contentElement.hasAttribute("data-prevent-close-inside") || this.options.preventCloseFromInside || false, this.defaultState = this.contentElement.dataset.defaultState || this.options.defaultState || "close", this.experimentalOptions = Object.assign({}, we, t.experimental), this.teleporter = Ee(this.contentElement, document.body, this.experimentalOptions.teleportMode), this.OverlayInstance = new me({
610
624
  trigger: this.triggerElement,
611
625
  content: this.contentElement,
612
626
  options: {
@@ -629,7 +643,7 @@ var k = class k2 {
629
643
  },
630
644
  popper: this.options.popper
631
645
  }
632
- }), this.moveElOnInit(), this.items = S("a:not([disabled]), button:not([disabled])", this.contentElement), this.navigationKeys = me({
646
+ }), this.moveElOnInit(), this.items = S("a:not([disabled]), button:not([disabled])", this.contentElement), this.navigationKeys = fe({
633
647
  containerElement: this.contentElement,
634
648
  targetChildren: this.items,
635
649
  direction: "up-down"
@@ -647,15 +661,15 @@ var k = class k2 {
647
661
  };
648
662
  a(k, "autoInit", (e = "[data-fx-dropdown]") => {
649
663
  const t = S(e);
650
- for (const n of t)
651
- new k(n);
664
+ for (const i of t)
665
+ new k(i);
652
666
  });
653
- var K = k;
667
+ var B = k;
654
668
 
655
669
  // src/index.js
656
670
  function Dropdown(Alpine) {
657
671
  Alpine.directive("dropdown", (el, {}, { cleanup }) => {
658
- const dropdown_ = new K(el);
672
+ const dropdown_ = new B(el);
659
673
  cleanup(() => {
660
674
  dropdown_.cleanup();
661
675
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@flexilla/alpine-dropdown",
3
- "version": "0.3.0",
3
+ "version": "0.3.1",
4
4
  "description": "AlpineJS plugin for adding Dropdown functionality to your AlpineJS components",
5
5
  "type": "module",
6
6
  "private": false,
@@ -60,7 +60,7 @@
60
60
  "Flexilla"
61
61
  ],
62
62
  "dependencies": {
63
- "@flexilla/dropdown": "^2.2.6"
63
+ "@flexilla/dropdown": "^2.2.7"
64
64
  },
65
- "gitHead": "9ac916234e8bb129724224819f3b59420b34081f"
65
+ "gitHead": "ae2c044692676906202ec6d8bb7a61a553c3bf74"
66
66
  }