@wyxos/vibe 2.2.1 → 2.2.5

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.
Files changed (3) hide show
  1. package/lib/index.cjs +1 -1
  2. package/lib/index.js +571 -549
  3. package/package.json +1 -1
package/lib/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import { defineComponent as xe, ref as v, computed as k, createElementBlock as T, openBlock as _, createElementVNode as C, normalizeStyle as U, watch as oe, onMounted as Qe, onUnmounted as zt, createCommentVNode as Z, createBlock as Ft, unref as le, toDisplayString as Ze, normalizeClass as _t, createVNode as Q, mergeDefaults as fn, useAttrs as dn, shallowRef as Tt, provide as vn, mergeProps as mn, renderSlot as hn, Fragment as Pt, renderList as Et, nextTick as Bt, inject as gn } from "vue";
1
+ import { defineComponent as xe, ref as v, computed as k, createElementBlock as P, openBlock as _, createElementVNode as N, normalizeStyle as W, watch as Z, onMounted as Ze, onUnmounted as Vt, createCommentVNode as ee, createBlock as Ft, unref as ae, toDisplayString as et, normalizeClass as _t, createVNode as Q, mergeDefaults as fn, useAttrs as dn, shallowRef as Pt, provide as vn, mergeProps as mn, renderSlot as hn, Fragment as Tt, renderList as Et, nextTick as Bt, inject as gn } from "vue";
2
2
  const pn = {
3
3
  mode: "default",
4
4
  pageSize: 20,
@@ -12,7 +12,7 @@ const pn = {
12
12
  headerHeight: 0,
13
13
  footerHeight: 0,
14
14
  overscanPx: 600
15
- }, yn = ["aria-label", "aria-valuemax", "aria-valuenow"], Lt = /* @__PURE__ */ xe({
15
+ }, yn = ["aria-label", "aria-valuemax", "aria-valuenow"], zt = /* @__PURE__ */ xe({
16
16
  __name: "MasonryVideoControls",
17
17
  props: {
18
18
  currentTime: {},
@@ -23,99 +23,99 @@ const pn = {
23
23
  },
24
24
  emits: ["seek"],
25
25
  setup(o, { expose: M, emit: i }) {
26
- const a = o, f = i, y = v(null), w = v(null), g = v(null), d = v(!1), p = k(
26
+ const a = o, d = i, x = v(null), y = v(null), h = v(null), u = v(!1), g = k(
27
27
  () => Number.isFinite(a.step) ? Math.max(0, a.step) : 0
28
- ), b = k(
28
+ ), w = k(
29
29
  () => Number.isFinite(a.duration) ? Math.max(0, a.duration) : 0
30
30
  ), S = k(() => {
31
- const u = Number.isFinite(a.currentTime) ? a.currentTime : 0;
32
- return P(u, 0, b.value);
33
- }), N = k(
34
- () => b.value > 0 ? S.value / b.value : 0
31
+ const c = Number.isFinite(a.currentTime) ? a.currentTime : 0;
32
+ return T(c, 0, w.value);
33
+ }), B = k(
34
+ () => w.value > 0 ? S.value / w.value : 0
35
35
  );
36
- function P(u, I, B) {
37
- return Math.min(B, Math.max(I, u));
38
- }
39
- function F(u) {
40
- return p.value <= 0 ? u : Math.round(u / p.value) * p.value;
41
- }
42
- function L(u) {
43
- const I = P(u, 0, b.value);
44
- f("seek", F(I));
45
- }
46
- function R(u) {
47
- const I = w.value;
48
- if (!I) return;
49
- const B = I.getBoundingClientRect();
50
- if (!B.width) return;
51
- const j = P((u - B.left) / B.width, 0, 1);
52
- L(j * b.value);
53
- }
54
- function X(u) {
55
- const I = w.value;
56
- I && (d.value = !0, I.setPointerCapture && I.setPointerCapture(u.pointerId), R(u.clientX));
57
- }
58
- function $(u) {
59
- d.value && R(u.clientX);
60
- }
61
- function H(u) {
62
- if (!d.value) return;
63
- d.value = !1;
64
- const I = w.value;
65
- I?.releasePointerCapture && I.releasePointerCapture(u.pointerId);
66
- }
67
- function q(u) {
68
- if (b.value <= 0) return;
69
- const I = Number.isFinite(a.keyboardStep) ? a.keyboardStep : 1;
70
- let B = S.value;
71
- switch (u.key) {
36
+ function T(c, F, R) {
37
+ return Math.min(R, Math.max(F, c));
38
+ }
39
+ function I(c) {
40
+ return g.value <= 0 ? c : Math.round(c / g.value) * g.value;
41
+ }
42
+ function z(c) {
43
+ const F = T(c, 0, w.value);
44
+ d("seek", I(F));
45
+ }
46
+ function A(c) {
47
+ const F = y.value;
48
+ if (!F) return;
49
+ const R = F.getBoundingClientRect();
50
+ if (!R.width) return;
51
+ const j = T((c - R.left) / R.width, 0, 1);
52
+ z(j * w.value);
53
+ }
54
+ function X(c) {
55
+ const F = y.value;
56
+ F && (u.value = !0, F.setPointerCapture && F.setPointerCapture(c.pointerId), A(c.clientX));
57
+ }
58
+ function $(c) {
59
+ u.value && A(c.clientX);
60
+ }
61
+ function H(c) {
62
+ if (!u.value) return;
63
+ u.value = !1;
64
+ const F = y.value;
65
+ F?.releasePointerCapture && F.releasePointerCapture(c.pointerId);
66
+ }
67
+ function q(c) {
68
+ if (w.value <= 0) return;
69
+ const F = Number.isFinite(a.keyboardStep) ? a.keyboardStep : 1;
70
+ let R = S.value;
71
+ switch (c.key) {
72
72
  case "ArrowLeft":
73
73
  case "ArrowDown":
74
- B -= I;
74
+ R -= F;
75
75
  break;
76
76
  case "ArrowRight":
77
77
  case "ArrowUp":
78
- B += I;
78
+ R += F;
79
79
  break;
80
80
  case "Home":
81
- B = 0;
81
+ R = 0;
82
82
  break;
83
83
  case "End":
84
- B = b.value;
84
+ R = w.value;
85
85
  break;
86
86
  default:
87
87
  return;
88
88
  }
89
- u.preventDefault(), L(B);
89
+ c.preventDefault(), z(R);
90
90
  }
91
- function ae() {
92
- y.value?.focus();
91
+ function te() {
92
+ x.value?.focus();
93
93
  }
94
94
  return M({
95
- focus: ae,
96
- seekTo: L,
97
- percent: N,
95
+ focus: te,
96
+ seekTo: z,
97
+ percent: B,
98
98
  currentValue: S,
99
- maxValue: b,
100
- isDragging: d,
101
- rootEl: y,
102
- trackEl: w,
103
- thumbEl: g
104
- }), (u, I) => (_(), T("div", {
99
+ maxValue: w,
100
+ isDragging: u,
101
+ rootEl: x,
102
+ trackEl: y,
103
+ thumbEl: h
104
+ }), (c, F) => (_(), P("div", {
105
105
  ref_key: "rootEl",
106
- ref: y,
106
+ ref: x,
107
107
  class: "w-full select-none",
108
108
  role: "slider",
109
109
  tabindex: "0",
110
110
  "aria-label": a.ariaLabel,
111
111
  "aria-valuemin": 0,
112
- "aria-valuemax": b.value,
112
+ "aria-valuemax": w.value,
113
113
  "aria-valuenow": S.value,
114
114
  onKeydown: q
115
115
  }, [
116
- C("div", {
116
+ N("div", {
117
117
  ref_key: "trackEl",
118
- ref: w,
118
+ ref: y,
119
119
  class: "relative h-2 w-full cursor-pointer rounded-full bg-slate-200",
120
120
  onPointerdown: X,
121
121
  onPointermove: $,
@@ -123,15 +123,15 @@ const pn = {
123
123
  onPointercancel: H,
124
124
  onPointerleave: H
125
125
  }, [
126
- C("div", {
126
+ N("div", {
127
127
  class: "absolute inset-y-0 left-0 rounded-full bg-slate-500",
128
- style: U({ width: `${N.value * 100}%` })
128
+ style: W({ width: `${B.value * 100}%` })
129
129
  }, null, 4),
130
- C("div", {
130
+ N("div", {
131
131
  ref_key: "thumbEl",
132
- ref: g,
132
+ ref: h,
133
133
  class: "absolute top-1/2 h-3 w-3 -translate-x-1/2 -translate-y-1/2 rounded-full bg-slate-700 shadow",
134
- style: U({ left: `${N.value * 100}%` }),
134
+ style: W({ left: `${B.value * 100}%` }),
135
135
  "aria-hidden": "true"
136
136
  }, null, 4)
137
137
  ], 544)
@@ -167,7 +167,7 @@ const pn = {
167
167
  },
168
168
  emits: ["success", "error"],
169
169
  setup(o, { emit: M }) {
170
- const i = o, a = M, f = xe({
170
+ const i = o, a = M, d = xe({
171
171
  name: "SlotRenderer",
172
172
  props: {
173
173
  slotFn: {
@@ -181,128 +181,149 @@ const pn = {
181
181
  },
182
182
  setup(s) {
183
183
  return () => {
184
- const x = s.slotFn;
185
- return x ? x(s.slotProps) : null;
184
+ const b = s.slotFn;
185
+ return b ? b(s.slotProps) : null;
186
186
  };
187
187
  }
188
- }), y = v(null), w = v(null), g = v(null), d = v(!1), p = v(!1), b = v(!1), S = v(null), N = k(() => i.item?.type === "video"), P = k(() => {
189
- if (!N.value) return;
190
- const s = i.item?.preview, x = i.item?.original;
191
- if (!(typeof s != "string" || !s) && !(typeof x == "string" && s === x) && !/\.(mp4|webm)(\?|#|$)/i.test(s) && /\.(png|jpe?g|gif|webp)(\?|#|$)/i.test(s))
188
+ }), x = v(null), y = v(null), h = v(null), u = v(!1), g = v(!1), w = v(!1), S = v(null), B = k(() => i.item?.type === "video"), T = k(() => {
189
+ if (!B.value) return;
190
+ const s = i.item?.preview, b = i.item?.original;
191
+ if (!(typeof s != "string" || !s) && !(typeof b == "string" && s === b) && !/\.(mp4|webm)(\?|#|$)/i.test(s) && /\.(png|jpe?g|gif|webp)(\?|#|$)/i.test(s))
192
192
  return s;
193
- }), F = k(() => {
194
- if (!N.value) return;
193
+ }), I = k(() => {
194
+ if (!B.value) return;
195
195
  const s = i.item?.preview;
196
196
  if (typeof s == "string" && s && !/\.(png|jpe?g|gif|webp)(\?|#|$)/i.test(s))
197
197
  return s;
198
- const x = i.item?.original;
199
- if (typeof x == "string" && x) return x;
200
- }), L = v(!1), R = k(() => !!i.hovered), X = v(0), $ = v(0);
198
+ const b = i.item?.original;
199
+ if (typeof b == "string" && b) return b;
200
+ }), z = v(!1), A = k(() => !!i.hovered), X = v(0), $ = v(0);
201
201
  function H() {
202
202
  i.remove?.();
203
203
  }
204
204
  const q = k(() => {
205
- const s = i.item?.width, x = i.item?.height;
206
- return { aspectRatio: `${s} / ${x}` };
207
- }), ae = k(() => i.item?.type === "image");
208
- let u = null, I = null;
209
- function B() {
210
- d.value || (d.value = !0, p.value = !1, b.value = !1, S.value = null);
205
+ const s = i.item?.width, b = i.item?.height;
206
+ return { aspectRatio: `${s} / ${b}` };
207
+ }), te = k(() => !B.value);
208
+ let c = null, F = null;
209
+ function R() {
210
+ u.value || (u.value = !0, g.value = !1, w.value = !1, S.value = null);
211
211
  }
212
212
  function j(s) {
213
213
  X.value = Number.isFinite(s.duration) ? s.duration : 0, $.value = Number.isFinite(s.currentTime) ? s.currentTime : 0;
214
214
  }
215
215
  async function re() {
216
- if (!N.value || !R.value || !d.value || !p.value || !L.value) return;
217
- const s = g.value;
216
+ if (!B.value || !A.value || !u.value || !g.value || !z.value) return;
217
+ const s = h.value;
218
218
  if (s)
219
219
  try {
220
220
  s.muted = !0, await s.play();
221
221
  } catch {
222
222
  }
223
223
  }
224
- function ee() {
225
- const s = g.value;
224
+ function ne() {
225
+ const s = h.value;
226
226
  s && (s.paused || s.pause());
227
227
  }
228
- function Pe() {
229
- const s = g.value;
228
+ function Ee() {
229
+ const s = h.value;
230
230
  s && (s.paused || s.pause());
231
231
  }
232
- oe(
232
+ Z(
233
233
  () => i.hovered,
234
234
  (s) => {
235
235
  if (s) {
236
- B(), re();
236
+ R(), re();
237
237
  return;
238
238
  }
239
- ee();
239
+ ne();
240
240
  }
241
241
  );
242
- function Ee(s) {
243
- const x = g.value;
244
- x && Number.isFinite(s) && (x.currentTime = Math.max(0, Math.min(s, Number.isFinite(x.duration) ? x.duration : s)), j(x));
242
+ function Be(s) {
243
+ const b = h.value;
244
+ b && Number.isFinite(s) && (b.currentTime = Math.max(0, Math.min(s, Number.isFinite(b.duration) ? b.duration : s)), j(b));
245
245
  }
246
- Qe(() => {
246
+ Ze(() => {
247
247
  if (typeof IntersectionObserver > "u") {
248
- B();
248
+ R();
249
249
  return;
250
250
  }
251
- if (u = new IntersectionObserver(
251
+ if (c = new IntersectionObserver(
252
252
  (s) => {
253
- for (const x of s)
254
- if (x.isIntersecting && !((x.intersectionRatio ?? 0) < 0.5)) {
255
- B(), u?.disconnect(), u = null;
253
+ for (const b of s)
254
+ if (b.isIntersecting && !((b.intersectionRatio ?? 0) < 0.5)) {
255
+ R(), c?.disconnect(), c = null;
256
256
  return;
257
257
  }
258
258
  },
259
259
  { threshold: [0, 0.5, 1] }
260
- ), y.value && u.observe(y.value), N.value && y.value) {
261
- const s = y.value.closest('[data-testid="items-scroll-container"]');
262
- I = new IntersectionObserver(
263
- (x) => {
264
- for (const J of x) {
265
- const Be = J.intersectionRatio ?? 0, Me = !!J.isIntersecting && Be >= 0.5;
266
- L.value = Me, Me ? R.value && re() : Pe();
260
+ ), x.value && c.observe(x.value), B.value && x.value) {
261
+ const s = x.value.closest('[data-testid="items-scroll-container"]');
262
+ F = new IntersectionObserver(
263
+ (b) => {
264
+ for (const U of b) {
265
+ const Re = U.intersectionRatio ?? 0, Se = !!U.isIntersecting && Re >= 0.5;
266
+ z.value = Se, Se ? A.value && re() : Ee();
267
267
  }
268
268
  },
269
269
  {
270
270
  root: s ?? void 0,
271
271
  threshold: [0, 0.25, 0.5, 0.75, 1]
272
272
  }
273
- ), I.observe(y.value);
273
+ ), F.observe(x.value);
274
274
  }
275
- }), zt(() => {
276
- u?.disconnect(), u = null, I?.disconnect(), I = null;
275
+ }), Vt(() => {
276
+ c?.disconnect(), c = null, F?.disconnect(), F = null;
277
277
  });
278
278
  function G() {
279
- p.value || (p.value = !0, b.value = !1, S.value = null, a("success", i.item));
279
+ g.value || (g.value = !0, w.value = !1, S.value = null, a("success", i.item));
280
280
  }
281
281
  function K(s) {
282
- b.value || (p.value = !1, b.value = !0, S.value = s, a("error", { item: i.item, error: s }));
282
+ w.value || (g.value = !1, w.value = !0, S.value = s, a("error", { item: i.item, error: s }));
283
283
  }
284
284
  function ke() {
285
+ if (u.value && !g.value && !w.value) {
286
+ if (te.value) {
287
+ const s = y.value;
288
+ if (!s || !s.complete) return;
289
+ s.naturalWidth > 0 && G();
290
+ return;
291
+ }
292
+ if (B.value) {
293
+ const s = h.value;
294
+ s && (s.readyState ?? 0) >= 1 && Me();
295
+ }
296
+ }
297
+ }
298
+ Z(
299
+ [u, () => i.item.preview, () => I.value],
300
+ () => {
301
+ u.value && Promise.resolve().then(ke);
302
+ },
303
+ { flush: "post" }
304
+ );
305
+ function Me() {
285
306
  G();
286
- const s = g.value;
307
+ const s = h.value;
287
308
  s && j(s), re();
288
309
  }
289
- function ge() {
290
- const s = g.value;
310
+ function se() {
311
+ const s = h.value;
291
312
  s && j(s);
292
313
  }
293
- return (s, x) => (_(), T("div", {
314
+ return (s, b) => (_(), P("div", {
294
315
  ref_key: "rootEl",
295
- ref: y,
316
+ ref: x,
296
317
  class: "relative bg-slate-100",
297
- style: U(q.value)
318
+ style: W(q.value)
298
319
  }, [
299
- d.value && !p.value && !b.value ? (_(), T("div", wn, [
300
- i.loaderSlotFn ? (_(), Ft(le(f), {
320
+ u.value && !g.value && !w.value ? (_(), P("div", wn, [
321
+ i.loaderSlotFn ? (_(), Ft(ae(d), {
301
322
  key: 0,
302
323
  "slot-fn": i.loaderSlotFn,
303
324
  "slot-props": { item: i.item, remove: H }
304
- }, null, 8, ["slot-fn", "slot-props"])) : (_(), T("svg", bn, x[2] || (x[2] = [
305
- C("circle", {
325
+ }, null, 8, ["slot-fn", "slot-props"])) : (_(), P("svg", bn, b[3] || (b[3] = [
326
+ N("circle", {
306
327
  class: "opacity-25",
307
328
  cx: "12",
308
329
  cy: "12",
@@ -311,28 +332,28 @@ const pn = {
311
332
  stroke: "currentColor",
312
333
  "stroke-width": "4"
313
334
  }, null, -1),
314
- C("path", {
335
+ N("path", {
315
336
  class: "opacity-75",
316
337
  fill: "currentColor",
317
338
  d: "M4 12a8 8 0 0 1 8-8v4a4 4 0 0 0-4 4H4z"
318
339
  }, null, -1)
319
340
  ])))
320
- ])) : d.value && b.value ? (_(), T("div", xn, [
321
- C("div", kn, [
322
- i.errorSlotFn ? (_(), Ft(le(f), {
341
+ ])) : u.value && w.value ? (_(), P("div", xn, [
342
+ N("div", kn, [
343
+ i.errorSlotFn ? (_(), Ft(ae(d), {
323
344
  key: 0,
324
345
  "slot-fn": i.errorSlotFn,
325
346
  "slot-props": { item: i.item, remove: H, error: S.value }
326
- }, null, 8, ["slot-fn", "slot-props"])) : (_(), T("p", Mn, "Error " + Ze(S.value), 1))
347
+ }, null, 8, ["slot-fn", "slot-props"])) : (_(), P("p", Mn, "Error " + et(S.value), 1))
327
348
  ])
328
- ])) : Z("", !0),
329
- d.value && ae.value && !b.value ? (_(), T("img", {
349
+ ])) : ee("", !0),
350
+ u.value && te.value && !w.value ? (_(), P("img", {
330
351
  key: i.item.id + ":img",
331
352
  ref_key: "imgEl",
332
- ref: w,
353
+ ref: y,
333
354
  class: _t([
334
355
  "h-full w-full object-cover transition-opacity duration-300",
335
- p.value ? "opacity-100" : "opacity-0"
356
+ g.value ? "opacity-100" : "opacity-0"
336
357
  ]),
337
358
  src: i.item.preview,
338
359
  width: i.item.width,
@@ -340,47 +361,48 @@ const pn = {
340
361
  loading: "lazy",
341
362
  alt: i.item.id,
342
363
  onLoad: G,
343
- onError: x[0] || (x[0] = (J) => K(J))
344
- }, null, 42, Sn)) : d.value && !b.value ? (_(), T("video", {
364
+ onError: b[0] || (b[0] = (U) => K(U))
365
+ }, null, 42, Sn)) : u.value && !w.value ? (_(), P("video", {
345
366
  key: i.item.id + ":vid",
346
367
  class: _t([
347
368
  "h-full w-full object-cover transition-opacity duration-300",
348
- p.value ? "opacity-100" : "opacity-0"
369
+ g.value ? "opacity-100" : "opacity-0"
349
370
  ]),
350
- poster: P.value,
371
+ poster: T.value,
351
372
  ref_key: "videoEl",
352
- ref: g,
373
+ ref: h,
353
374
  playsinline: "",
354
375
  loop: "",
355
376
  preload: "metadata",
356
- onLoadedmetadata: ke,
357
- onTimeupdate: ge,
358
- onDurationchange: ge,
359
- onLoadeddata: ge,
360
- onError: x[1] || (x[1] = (J) => K(J))
377
+ onLoadedmetadata: Me,
378
+ onTimeupdate: se,
379
+ onDurationchange: se,
380
+ onLoadeddata: se,
381
+ onError: b[2] || (b[2] = (U) => K(U))
361
382
  }, [
362
- C("source", {
363
- src: F.value,
364
- type: "video/mp4"
365
- }, null, 8, Fn)
366
- ], 42, In)) : Z("", !0),
367
- d.value && N.value && !b.value ? (_(), T("div", _n, [
368
- Q(Lt, {
383
+ N("source", {
384
+ src: I.value,
385
+ type: "video/mp4",
386
+ onError: b[1] || (b[1] = (U) => K(U))
387
+ }, null, 40, Fn)
388
+ ], 42, In)) : ee("", !0),
389
+ u.value && B.value && !w.value ? (_(), P("div", _n, [
390
+ Q(zt, {
369
391
  duration: X.value,
370
392
  "current-time": $.value,
371
- onSeek: Ee
393
+ onSeek: Be
372
394
  }, null, 8, ["duration", "current-time"])
373
- ])) : Z("", !0)
395
+ ])) : ee("", !0)
374
396
  ], 4));
375
397
  }
376
398
  }), $t = Symbol("masonryItemRegistry");
377
- function Tn(o, M) {
399
+ function Pn(o, M) {
378
400
  return !o || o <= 0 || !M || M <= 0 ? 1 : Math.max(1, Math.floor(o / M));
379
401
  }
380
- function Pn(o, M, i, a = 0) {
402
+ function Tn(o, M, i, a = 0) {
381
403
  if (!o || o <= 0 || !M || M <= 0) return i;
382
- const f = typeof a == "number" && a > 0 ? a : 0, y = Math.max(0, M - 1) * f, w = o - y;
383
- return !w || w <= 0 ? i : w / M;
404
+ const d = typeof a == "number" && a > 0 ? a : 0, x = Math.max(0, M - 1) * d, y = o - x;
405
+ return !y || y <= 0 ? i : y / M;
384
406
  }
385
407
  function En(o, M) {
386
408
  const i = o?.width, a = o?.height;
@@ -389,7 +411,7 @@ function En(o, M) {
389
411
  function Dt(o) {
390
412
  return Number.isFinite(o) && o > 0 ? Math.floor(o) : 1;
391
413
  }
392
- function et(o) {
414
+ function tt(o) {
393
415
  return Number.isFinite(o) && o > 0 ? Math.floor(o) : 0;
394
416
  }
395
417
  function Bn() {
@@ -398,172 +420,172 @@ function Bn() {
398
420
  }
399
421
  function Rn(o) {
400
422
  async function M(a) {
401
- const f = et(a);
402
- if (f <= 0) return;
423
+ const d = tt(a);
424
+ if (d <= 0) return;
403
425
  o.stats.value = {
404
426
  ...o.stats.value,
405
- cooldownMsTotal: f,
406
- cooldownMsRemaining: f
427
+ cooldownMsTotal: d,
428
+ cooldownMsRemaining: d
407
429
  };
408
- const y = Date.now(), w = 100;
409
- await new Promise((g) => {
410
- const d = setInterval(() => {
411
- const p = Date.now() - y, b = Math.max(0, f - p);
430
+ const x = Date.now(), y = 100;
431
+ await new Promise((h) => {
432
+ const u = setInterval(() => {
433
+ const g = Date.now() - x, w = Math.max(0, d - g);
412
434
  o.stats.value = {
413
435
  ...o.stats.value,
414
- cooldownMsTotal: f,
415
- cooldownMsRemaining: b
416
- }, b <= 0 && (clearInterval(d), g());
417
- }, w);
436
+ cooldownMsTotal: d,
437
+ cooldownMsRemaining: w
438
+ }, w <= 0 && (clearInterval(u), h());
439
+ }, y);
418
440
  });
419
441
  }
420
442
  async function i(a) {
421
- const f = Dt(o.getPageSize()), y = o.isEnabled(), w = et(o.getRequestDelayMs()), g = o.stats.value.page ?? null, d = o.getCancelToken?.() ?? null, p = () => d !== null && o.getCancelToken && o.getCancelToken() !== d, b = () => {
422
- if (p()) throw Bn();
443
+ const d = Dt(o.getPageSize()), x = o.isEnabled(), y = tt(o.getRequestDelayMs()), h = o.stats.value.page ?? null, u = o.getCancelToken?.() ?? null, g = () => u !== null && o.getCancelToken && o.getCancelToken() !== u, w = () => {
444
+ if (g()) throw Bn();
423
445
  }, S = [];
424
- let N = 0;
425
- o.buffer.value.length && (N = o.buffer.value.length, S.push(...o.buffer.value), o.buffer.value = []), o.stats.value = {
446
+ let B = 0;
447
+ o.buffer.value.length && (B = o.buffer.value.length, S.push(...o.buffer.value), o.buffer.value = []), o.stats.value = {
426
448
  ...o.stats.value,
427
- enabled: y,
449
+ enabled: x,
428
450
  isBackfillActive: !1,
429
451
  isRequestInFlight: !1,
430
- page: g ?? a,
452
+ page: h ?? a,
431
453
  next: a,
432
- cooldownMsTotal: w,
454
+ cooldownMsTotal: y,
433
455
  cooldownMsRemaining: 0,
434
456
  progress: {
435
457
  collected: 0,
436
458
  target: 0
437
459
  },
438
- pageSize: f,
460
+ pageSize: d,
439
461
  bufferSize: 0
440
462
  };
441
- const P = [];
442
- let F = a, L = 0, R = !1;
443
- for (; S.length < f && F != null; ) {
444
- b();
445
- const H = F;
446
- R && (o.stats.value = {
463
+ const T = [];
464
+ let I = a, z = 0, A = !1;
465
+ for (; S.length < d && I != null; ) {
466
+ w();
467
+ const H = I;
468
+ A && (o.stats.value = {
447
469
  ...o.stats.value,
448
- enabled: y,
470
+ enabled: x,
449
471
  isBackfillActive: !0,
450
472
  isRequestInFlight: !0,
451
473
  page: H,
452
474
  next: null,
453
475
  progress: {
454
- collected: Math.min(S.length, f),
455
- target: f
476
+ collected: Math.min(S.length, d),
477
+ target: d
456
478
  },
457
- cooldownMsTotal: w,
479
+ cooldownMsTotal: y,
458
480
  cooldownMsRemaining: 0,
459
- pageSize: f
481
+ pageSize: d
460
482
  });
461
483
  const q = await o.getContent(H);
462
- b(), P.push(H), R && (o.stats.value = {
484
+ w(), T.push(H), A && (o.stats.value = {
463
485
  ...o.stats.value,
464
- enabled: y,
486
+ enabled: x,
465
487
  isBackfillActive: !0,
466
488
  isRequestInFlight: !1,
467
489
  page: H,
468
490
  next: q.nextPage
469
- }), L += q.items.length, o.markEnterFromLeft(q.items), S.push(...q.items), F = q.nextPage, !R && S.length < f && F != null ? (R = !0, o.stats.value = {
491
+ }), z += q.items.length, o.markEnterFromLeft(q.items), S.push(...q.items), I = q.nextPage, !A && S.length < d && I != null ? (A = !0, o.stats.value = {
470
492
  ...o.stats.value,
471
- enabled: y,
493
+ enabled: x,
472
494
  isBackfillActive: !0,
473
495
  isRequestInFlight: !1,
474
496
  page: H,
475
- next: F,
497
+ next: I,
476
498
  progress: {
477
- collected: Math.min(S.length, f),
478
- target: f
499
+ collected: Math.min(S.length, d),
500
+ target: d
479
501
  },
480
- cooldownMsTotal: w,
502
+ cooldownMsTotal: y,
481
503
  cooldownMsRemaining: 0,
482
- pageSize: f
483
- }) : R && (o.stats.value = {
504
+ pageSize: d
505
+ }) : A && (o.stats.value = {
484
506
  ...o.stats.value,
485
- enabled: y,
507
+ enabled: x,
486
508
  isBackfillActive: !0,
487
509
  page: H,
488
- next: F,
510
+ next: I,
489
511
  progress: {
490
- collected: Math.min(S.length, f),
491
- target: f
512
+ collected: Math.min(S.length, d),
513
+ target: d
492
514
  }
493
- }), R && S.length < f && F != null && (await M(w), b());
515
+ }), A && S.length < d && I != null && (await M(y), w());
494
516
  }
495
- const X = S.slice(0, f), $ = S.slice(f);
517
+ const X = S.slice(0, d), $ = S.slice(d);
496
518
  return o.buffer.value = $, o.stats.value = {
497
519
  ...o.stats.value,
498
- enabled: y,
520
+ enabled: x,
499
521
  isBackfillActive: !1,
500
522
  isRequestInFlight: !1,
501
- page: P.length ? P[P.length - 1] : g ?? a,
502
- next: F,
523
+ page: T.length ? T[T.length - 1] : h ?? a,
524
+ next: I,
503
525
  progress: {
504
526
  collected: 0,
505
527
  target: 0
506
528
  },
507
- cooldownMsTotal: w,
529
+ cooldownMsTotal: y,
508
530
  cooldownMsRemaining: 0,
509
- pageSize: f,
531
+ pageSize: d,
510
532
  bufferSize: $.length,
511
533
  lastBatch: {
512
534
  startPage: a,
513
- pages: P,
514
- usedFromBuffer: N,
515
- fetchedFromNetwork: L,
535
+ pages: T,
536
+ usedFromBuffer: B,
537
+ fetchedFromNetwork: z,
516
538
  collectedTotal: S.length,
517
539
  emitted: X.length,
518
540
  carried: $.length
519
541
  },
520
542
  totals: {
521
- pagesFetched: o.stats.value.totals.pagesFetched + P.length,
522
- itemsFetchedFromNetwork: o.stats.value.totals.itemsFetchedFromNetwork + L
543
+ pagesFetched: o.stats.value.totals.pagesFetched + T.length,
544
+ itemsFetchedFromNetwork: o.stats.value.totals.itemsFetchedFromNetwork + z
523
545
  }
524
- }, { batchItems: X, pages: P, nextPage: F };
546
+ }, { batchItems: X, pages: T, nextPage: I };
525
547
  }
526
548
  return { loadBackfillBatch: i };
527
549
  }
528
550
  function An(o) {
529
- const M = o.columnCount, i = o.columnWidth, a = o.gapX, f = o.gapY, y = o.headerHeight, w = o.footerHeight, g = o.bucketPx, d = Array.from({ length: M }, () => 0), p = new Array(o.items.length), b = new Array(o.items.length), S = /* @__PURE__ */ new Map(), N = /* @__PURE__ */ new Map();
530
- let P = 0;
531
- for (let F = 0; F < o.items.length; F += 1) {
532
- const L = o.items[F];
533
- L?.id && N.set(L.id, F);
534
- let R = 0;
535
- for (let u = 1; u < d.length; u += 1)
536
- d[u] < d[R] && (R = u);
537
- const X = R * (i + a), $ = d[R], H = En(L, i) + y + w;
538
- p[F] = { x: X, y: $ }, b[F] = H, d[R] = $ + H + f, P = Math.max(P, $ + H);
539
- const q = Math.floor($ / g), ae = Math.floor(($ + H) / g);
540
- for (let u = q; u <= ae; u += 1) {
541
- const I = S.get(u);
542
- I ? I.push(F) : S.set(u, [F]);
551
+ const M = o.columnCount, i = o.columnWidth, a = o.gapX, d = o.gapY, x = o.headerHeight, y = o.footerHeight, h = o.bucketPx, u = Array.from({ length: M }, () => 0), g = new Array(o.items.length), w = new Array(o.items.length), S = /* @__PURE__ */ new Map(), B = /* @__PURE__ */ new Map();
552
+ let T = 0;
553
+ for (let I = 0; I < o.items.length; I += 1) {
554
+ const z = o.items[I];
555
+ z?.id && B.set(z.id, I);
556
+ let A = 0;
557
+ for (let c = 1; c < u.length; c += 1)
558
+ u[c] < u[A] && (A = c);
559
+ const X = A * (i + a), $ = u[A], H = En(z, i) + x + y;
560
+ g[I] = { x: X, y: $ }, w[I] = H, u[A] = $ + H + d, T = Math.max(T, $ + H);
561
+ const q = Math.floor($ / h), te = Math.floor(($ + H) / h);
562
+ for (let c = q; c <= te; c += 1) {
563
+ const F = S.get(c);
564
+ F ? F.push(I) : S.set(c, [I]);
543
565
  }
544
566
  }
545
- return { positions: p, heights: b, buckets: S, contentHeight: P, indexById: N };
567
+ return { positions: g, heights: w, buckets: S, contentHeight: T, indexById: B };
546
568
  }
547
569
  function Cn(o) {
548
570
  const M = o.itemCount;
549
571
  if (!M) return [];
550
- if (o.viewportHeight <= 0) return Array.from({ length: M }, (d, p) => p);
551
- const i = Math.max(0, o.scrollTop - o.overscanPx), a = o.scrollTop + o.viewportHeight + o.overscanPx, f = Math.floor(i / o.bucketPx), y = Math.floor(a / o.bucketPx), w = /* @__PURE__ */ new Set();
552
- for (let d = f; d <= y; d += 1) {
553
- const p = o.buckets.get(d);
554
- if (p)
555
- for (const b of p) w.add(b);
572
+ if (o.viewportHeight <= 0) return Array.from({ length: M }, (u, g) => g);
573
+ const i = Math.max(0, o.scrollTop - o.overscanPx), a = o.scrollTop + o.viewportHeight + o.overscanPx, d = Math.floor(i / o.bucketPx), x = Math.floor(a / o.bucketPx), y = /* @__PURE__ */ new Set();
574
+ for (let u = d; u <= x; u += 1) {
575
+ const g = o.buckets.get(u);
576
+ if (g)
577
+ for (const w of g) y.add(w);
556
578
  }
557
- const g = Array.from(w);
558
- return g.sort((d, p) => d - p), g;
579
+ const h = Array.from(y);
580
+ return h.sort((u, g) => u - g), h;
559
581
  }
560
582
  const Nn = { class: "hidden" }, Hn = {
561
583
  key: 0,
562
584
  class: "flex h-full items-center justify-center"
563
- }, Vn = {
585
+ }, Ln = {
564
586
  key: 1,
565
587
  class: "text-sm font-medium text-red-700"
566
- }, zn = ["onMouseenter", "onMouseleave"], Ln = {
588
+ }, Vn = ["onMouseenter", "onMouseleave"], zn = {
567
589
  key: 0,
568
590
  class: "pointer-events-auto absolute inset-0 z-10"
569
591
  }, $n = { class: "relative" }, Dn = {
@@ -572,7 +594,7 @@ const Nn = { class: "hidden" }, Hn = {
572
594
  }, On = { class: "mt-4 pb-2 text-center text-xs text-slate-600" }, Yn = {
573
595
  key: 0,
574
596
  class: "inline-flex items-center justify-center gap-2"
575
- }, qn = { key: 1 }, Xn = { key: 2 }, At = 100, jn = 200, Ct = 600, Nt = 300, Ht = 600, Vt = 600, Un = 400, Wn = 5, Gn = 1e3, Kn = /* @__PURE__ */ xe({
597
+ }, qn = { key: 1 }, Xn = { key: 2 }, At = 100, jn = 200, Ct = 600, Nt = 300, Ht = 600, Lt = 600, Un = 400, Wn = 5, Gn = 1e3, Kn = /* @__PURE__ */ xe({
576
598
  inheritAttrs: !1,
577
599
  __name: "Masonry",
578
600
  props: /* @__PURE__ */ fn({
@@ -594,7 +616,7 @@ const Nn = { class: "hidden" }, Hn = {
594
616
  }, pn),
595
617
  emits: ["update:items", "preloaded", "failures", "removed"],
596
618
  setup(o, { expose: M, emit: i }) {
597
- const a = o, f = i, y = dn(), w = xe({
619
+ const a = o, d = i, x = dn(), y = xe({
598
620
  name: "SlotRenderer",
599
621
  props: {
600
622
  slotFn: {
@@ -612,90 +634,90 @@ const Nn = { class: "hidden" }, Hn = {
612
634
  return n ? n(e.slotProps) : null;
613
635
  };
614
636
  }
615
- }), g = Tt(null), d = v(null);
616
- function p(e) {
617
- d.value = e;
637
+ }), h = Pt(null), u = v(null);
638
+ function g(e) {
639
+ u.value = e;
618
640
  }
619
- function b(e) {
620
- d.value === e && (d.value = null);
641
+ function w(e) {
642
+ u.value === e && (u.value = null);
621
643
  }
622
644
  vn($t, (e) => {
623
- g.value || (g.value = e);
645
+ h.value || (h.value = e);
624
646
  });
625
- const S = [], N = [];
626
- let P = null, F = null;
627
- function L() {
647
+ const S = [], B = [];
648
+ let T = null, I = null;
649
+ function z() {
628
650
  if (!S.length) return;
629
651
  const e = S.splice(0, S.length);
630
- f("preloaded", e);
652
+ d("preloaded", e);
631
653
  }
632
- function R() {
633
- if (!N.length) return;
634
- const e = N.splice(0, N.length);
635
- f("failures", e);
654
+ function A() {
655
+ if (!B.length) return;
656
+ const e = B.splice(0, B.length);
657
+ d("failures", e);
636
658
  }
637
659
  function X() {
638
- P || (P = setTimeout(() => {
639
- P = null, L();
660
+ T || (T = setTimeout(() => {
661
+ T = null, z();
640
662
  }, At));
641
663
  }
642
664
  function $() {
643
- F || (F = setTimeout(() => {
644
- F = null, R();
665
+ I || (I = setTimeout(() => {
666
+ I = null, A();
645
667
  }, At));
646
668
  }
647
669
  function H(e) {
648
- g.value?.onPreloaded?.(e), S.push(e), X();
670
+ h.value?.onPreloaded?.(e), S.push(e), X();
649
671
  }
650
672
  function q(e) {
651
- g.value?.onFailed?.(e), N.push(e), $();
673
+ h.value?.onFailed?.(e), B.push(e), $();
652
674
  }
653
- Qe(() => {
654
- if (!g.value)
675
+ Ze(() => {
676
+ if (!h.value)
655
677
  throw new Error("[Masonry] Missing <MasonryItem> definition. Add <MasonryItem> as a child of <Masonry>.");
656
678
  });
657
- const ae = k(() => {
658
- const { class: e, ...n } = y;
679
+ const te = k(() => {
680
+ const { class: e, ...n } = x;
659
681
  return n;
660
- }), u = v(null), I = v(0), B = v(0), j = v(0);
682
+ }), c = v(null), F = v(0), R = v(0), j = v(0);
661
683
  let re;
662
- const ee = k(() => a.gapX), Pe = k(() => a.gapY);
663
- function Ee(e) {
684
+ const ne = k(() => a.gapX), Ee = k(() => a.gapY);
685
+ function Be(e) {
664
686
  if (!e) return 0;
665
- const n = Math.max(0, ee.value);
687
+ const n = Math.max(0, ne.value);
666
688
  return Math.max(0, e.clientWidth - n);
667
689
  }
668
- const G = k(() => a.headerHeight), K = k(() => a.footerHeight), ke = k(() => g.value?.header), ge = k(() => g.value?.loader), s = k(() => g.value?.footer), x = k(() => g.value?.overlay), J = k(() => g.value?.error), Be = k(() => !!ke.value), Me = k(() => !!s.value), tt = k(() => !!x.value), nt = k(() => {
690
+ const G = k(() => a.headerHeight), K = k(() => a.footerHeight), ke = k(() => h.value?.header), Me = k(() => h.value?.loader), se = k(() => h.value?.footer), s = k(() => h.value?.overlay), b = k(() => h.value?.error), U = k(() => !!ke.value), Re = k(() => !!se.value), Se = k(() => !!s.value), nt = k(() => {
669
691
  if (G.value > 0) return { height: `${G.value}px` };
670
692
  }), ot = k(() => {
671
693
  if (K.value > 0) return { height: `${K.value}px` };
672
- }), Se = v([]), Oe = v([]), lt = v(/* @__PURE__ */ new Map()), at = v(0), Re = v(/* @__PURE__ */ new Map());
694
+ }), Ie = v([]), Ye = v([]), lt = v(/* @__PURE__ */ new Map()), at = v(0), Ae = v(/* @__PURE__ */ new Map());
673
695
  function Ot(e) {
674
696
  const n = typeof e == "number" && Number.isFinite(e) ? e : 0;
675
- return j.value + B.value + Math.max(0, n);
697
+ return j.value + R.value + Math.max(0, n);
676
698
  }
677
- const se = v(/* @__PURE__ */ new Set()), ie = v(/* @__PURE__ */ new Set()), Ae = /* @__PURE__ */ new Set(), Ie = v(/* @__PURE__ */ new Map());
699
+ const ie = v(/* @__PURE__ */ new Set()), ue = v(/* @__PURE__ */ new Set()), Ce = /* @__PURE__ */ new Set(), Fe = v(/* @__PURE__ */ new Map());
678
700
  function Yt(e) {
679
701
  return Number.isFinite(e) ? Math.max(0, Math.min(250, e)) : 0;
680
702
  }
681
703
  function qt(e) {
682
- if (!ie.value.has(e)) return;
683
- const n = Ie.value.get(e) ?? 0;
704
+ if (!ue.value.has(e)) return;
705
+ const n = Fe.value.get(e) ?? 0;
684
706
  if (!(n <= 0))
685
707
  return `${n}ms`;
686
708
  }
687
- const Ce = v(/* @__PURE__ */ new Map()), te = v(/* @__PURE__ */ new Set()), ne = v([]);
709
+ const Ne = v(/* @__PURE__ */ new Map()), oe = v(/* @__PURE__ */ new Set()), le = v([]);
688
710
  function Xt(e) {
689
- const n = Ce.value.get(e);
711
+ const n = Ne.value.get(e);
690
712
  return n || { dx: 0, dy: 0 };
691
713
  }
692
714
  function jt(e) {
693
- if (ie.value.has(e)) return `transform ${Ht}ms ease-out`;
694
- if (te.value.has(e)) return `transform ${Nt}ms ease-out`;
715
+ if (ue.value.has(e)) return `transform ${Ht}ms ease-out`;
716
+ if (oe.value.has(e)) return `transform ${Nt}ms ease-out`;
695
717
  }
696
718
  function Ut(e) {
697
- const t = m.value[e]?.id, l = Se.value[e] ?? { x: 0, y: 0 }, r = Oe.value[e] ?? 0, c = r > 0 ? r : Te.value, h = l.x, E = t && se.value.has(t) ? Ot(c) : l.y, O = t ? Xt(t) : { dx: 0, dy: 0 };
698
- return `translate3d(${h + O.dx}px,${E + O.dy}px,0)`;
719
+ const t = m.value[e]?.id, l = Ie.value[e] ?? { x: 0, y: 0 }, r = Ye.value[e] ?? 0, f = r > 0 ? r : Te.value, p = l.x, E = t && ie.value.has(t) ? Ot(f) : l.y, O = t ? Xt(t) : { dx: 0, dy: 0 };
720
+ return `translate3d(${p + O.dx}px,${E + O.dy}px,0)`;
699
721
  }
700
722
  function pe(e) {
701
723
  (typeof requestAnimationFrame == "function" ? requestAnimationFrame : (t) => setTimeout(() => t(0), 0))(() => e());
@@ -707,32 +729,32 @@ const Nn = { class: "hidden" }, Hn = {
707
729
  function st(e) {
708
730
  return typeof e == "number" && Number.isFinite(e) && e > 0;
709
731
  }
710
- function Ne(e) {
732
+ function He(e) {
711
733
  if (!Array.isArray(e) || e.length === 0) return;
712
- const n = new Set(se.value);
734
+ const n = new Set(ie.value);
713
735
  let t = !1;
714
736
  for (const l of e) {
715
737
  const r = l?.id;
716
738
  if (r) {
717
739
  if (!rt.has(r)) {
718
- const c = l?.width, h = l?.height;
719
- (!st(c) || !st(h)) && (rt.add(r), console.warn(
720
- `[Masonry] Item "${r}" has invalid dimensions (width=${String(c)}, height=${String(
721
- h
740
+ const f = l?.width, p = l?.height;
741
+ (!st(f) || !st(p)) && (rt.add(r), console.warn(
742
+ `[Masonry] Item "${r}" has invalid dimensions (width=${String(f)}, height=${String(
743
+ p
722
744
  )}); layout expects { id, width, height }.`
723
745
  ));
724
746
  }
725
747
  n.has(r) || (n.add(r), t = !0);
726
748
  }
727
749
  }
728
- t && (se.value = n);
750
+ t && (ie.value = n);
729
751
  }
730
752
  function it() {
731
753
  const e = /* @__PURE__ */ new Map();
732
- for (const n of We.value) {
754
+ for (const n of Ge.value) {
733
755
  const l = m.value[n]?.id;
734
756
  if (!l) continue;
735
- const r = Se.value[n];
757
+ const r = Ie.value[n];
736
758
  r && e.set(l, { x: r.x, y: r.y });
737
759
  }
738
760
  return e;
@@ -740,31 +762,31 @@ const Nn = { class: "hidden" }, Hn = {
740
762
  function ut(e, n) {
741
763
  if (!e.size) return;
742
764
  const t = /* @__PURE__ */ new Map(), l = [];
743
- for (const [c, h] of e.entries()) {
744
- if (n?.has(c)) continue;
745
- const E = Re.value.get(c);
765
+ for (const [f, p] of e.entries()) {
766
+ if (n?.has(f)) continue;
767
+ const E = Ae.value.get(f);
746
768
  if (E == null) continue;
747
- const O = Se.value[E];
769
+ const O = Ie.value[E];
748
770
  if (!O) continue;
749
- const Y = h.x - O.x, z = h.y - O.y;
750
- (Y || z) && (t.set(c, { dx: Y, dy: z }), l.push(c));
771
+ const Y = p.x - O.x, V = p.y - O.y;
772
+ (Y || V) && (t.set(f, { dx: Y, dy: V }), l.push(f));
751
773
  }
752
774
  if (!t.size) return;
753
- Ce.value = t;
754
- const r = new Set(te.value);
755
- for (const c of l) r.delete(c);
756
- te.value = r, pe(() => {
757
- te.value = /* @__PURE__ */ new Set([...te.value, ...l]), pe(() => {
758
- Ce.value = /* @__PURE__ */ new Map();
775
+ Ne.value = t;
776
+ const r = new Set(oe.value);
777
+ for (const f of l) r.delete(f);
778
+ oe.value = r, pe(() => {
779
+ oe.value = /* @__PURE__ */ new Set([...oe.value, ...l]), pe(() => {
780
+ Ne.value = /* @__PURE__ */ new Map();
759
781
  });
760
782
  }), setTimeout(() => {
761
- const c = new Set(te.value);
762
- for (const h of l) c.delete(h);
763
- te.value = c;
783
+ const f = new Set(oe.value);
784
+ for (const p of l) f.delete(p);
785
+ oe.value = f;
764
786
  }, Nt);
765
787
  }
766
- const ue = v(!0), ce = v(!1), ye = v("");
767
- let D = 0, Ye = 0, He = 0, Ve = 0, Fe = !1;
788
+ const ce = v(!0), fe = v(!1), ye = v("");
789
+ let D = 0, qe = 0, Le = 0, Ve = 0, _e = !1;
768
790
  function ct(e) {
769
791
  return e instanceof Error && e.name === "AbortError";
770
792
  }
@@ -788,101 +810,101 @@ const Nn = { class: "hidden" }, Hn = {
788
810
  }
789
811
  }
790
812
  }
791
- const W = v([]), vt = v([]), qe = v([]), V = v(a.page), ze = v([]);
792
- let fe = null, de = null, Le = 0;
813
+ const J = v([]), vt = v([]), Xe = v([]), L = v(a.page), ze = v([]);
814
+ let de = null, ve = null, $e = 0;
793
815
  function Kt(e) {
794
816
  let n = -1;
795
817
  for (const t of e) {
796
818
  const l = t?.originalIndex;
797
- _e(l) && l > n && (n = l);
819
+ Pe(l) && l > n && (n = l);
798
820
  }
799
- Le = n + 1;
821
+ $e = n + 1;
800
822
  }
801
823
  function we(e) {
802
824
  for (const n of e)
803
- !n || typeof n != "object" || n.id && n.originalIndex == null && (n.originalIndex = Le, Le += 1);
825
+ !n || typeof n != "object" || n.id && n.originalIndex == null && (n.originalIndex = $e, $e += 1);
804
826
  }
805
- const ve = /* @__PURE__ */ new Map(), me = [];
806
- function _e(e) {
827
+ const me = /* @__PURE__ */ new Map(), he = [];
828
+ function Pe(e) {
807
829
  return typeof e == "number" && Number.isFinite(e);
808
830
  }
809
831
  function Jt(e, n) {
810
832
  if (!n.length) return e;
811
833
  const t = /* @__PURE__ */ new Set();
812
- for (const h of e) {
813
- const E = h?.id;
834
+ for (const p of e) {
835
+ const E = p?.id;
814
836
  E && t.add(E);
815
837
  }
816
838
  const l = [];
817
- for (const h of n) {
818
- const E = h?.id;
819
- E && (t.has(E) || (l.push(h), t.add(E)));
839
+ for (const p of n) {
840
+ const E = p?.id;
841
+ E && (t.has(E) || (l.push(p), t.add(E)));
820
842
  }
821
843
  if (!l.length) return e;
822
- const r = l.slice().sort((h, E) => {
823
- const O = _e(h.originalIndex) ? h.originalIndex : Number.POSITIVE_INFINITY, Y = _e(E.originalIndex) ? E.originalIndex : Number.POSITIVE_INFINITY;
844
+ const r = l.slice().sort((p, E) => {
845
+ const O = Pe(p.originalIndex) ? p.originalIndex : Number.POSITIVE_INFINITY, Y = Pe(E.originalIndex) ? E.originalIndex : Number.POSITIVE_INFINITY;
824
846
  return O - Y;
825
- }), c = e.slice();
826
- for (const h of r) {
827
- const E = h.originalIndex;
828
- if (!_e(E)) {
829
- c.push(h);
847
+ }), f = e.slice();
848
+ for (const p of r) {
849
+ const E = p.originalIndex;
850
+ if (!Pe(E)) {
851
+ f.push(p);
830
852
  continue;
831
853
  }
832
- let O = 0, Y = c.length;
854
+ let O = 0, Y = f.length;
833
855
  for (; O < Y; ) {
834
- const z = O + Y >> 1, A = c[z]?.originalIndex;
835
- (_e(A) ? A : Number.POSITIVE_INFINITY) <= E ? O = z + 1 : Y = z;
856
+ const V = O + Y >> 1, C = f[V]?.originalIndex;
857
+ (Pe(C) ? C : Number.POSITIVE_INFINITY) <= E ? O = V + 1 : Y = V;
836
858
  }
837
- c.splice(O, 0, h);
859
+ f.splice(O, 0, p);
838
860
  }
839
- return c;
861
+ return f;
840
862
  }
841
863
  async function mt(e) {
842
864
  if (!e.length) return;
843
- Fe = !0, Ne(e);
865
+ _e = !0, He(e);
844
866
  const n = it();
845
867
  m.value = Jt(m.value, e), await Bt(), ut(n);
846
868
  }
847
869
  async function Qt(e) {
848
- const t = (Array.isArray(e) ? e : [e]).map(Ue).filter(Boolean);
870
+ const t = (Array.isArray(e) ? e : [e]).map(We).filter(Boolean);
849
871
  if (!t.length) return;
850
872
  const l = [];
851
873
  for (const r of t) {
852
- const c = ve.get(r);
853
- c && l.push(c);
874
+ const f = me.get(r);
875
+ f && l.push(f);
854
876
  }
855
877
  if (l.length) {
856
878
  await mt(l);
857
879
  for (const r of l)
858
- r?.id && ve.delete(r.id);
880
+ r?.id && me.delete(r.id);
859
881
  }
860
882
  }
861
883
  async function Zt() {
862
- const e = me.pop();
884
+ const e = he.pop();
863
885
  if (!e?.length) return;
864
886
  const n = [];
865
887
  for (const t of e) {
866
- const l = ve.get(t);
888
+ const l = me.get(t);
867
889
  l && n.push(l);
868
890
  }
869
891
  if (n.length) {
870
892
  await mt(n);
871
893
  for (const t of n)
872
- t?.id && ve.delete(t.id);
894
+ t?.id && me.delete(t.id);
873
895
  }
874
896
  }
875
897
  function en(e) {
876
- const t = (Array.isArray(e) ? e : [e]).map(Ue).filter(Boolean);
898
+ const t = (Array.isArray(e) ? e : [e]).map(We).filter(Boolean);
877
899
  if (!t.length) return;
878
900
  const l = new Set(t);
879
- for (const r of l) ve.delete(r);
880
- for (let r = me.length - 1; r >= 0; r -= 1) {
881
- const h = me[r].filter((E) => !l.has(E));
882
- h.length ? me[r] = h : me.splice(r, 1);
901
+ for (const r of l) me.delete(r);
902
+ for (let r = he.length - 1; r >= 0; r -= 1) {
903
+ const p = he[r].filter((E) => !l.has(E));
904
+ p.length ? he[r] = p : he.splice(r, 1);
883
905
  }
884
906
  }
885
- const Xe = Tt({
907
+ const je = Pt({
886
908
  enabled: !1,
887
909
  isBackfillActive: !1,
888
910
  isRequestInFlight: !1,
@@ -903,85 +925,85 @@ const Nn = { class: "hidden" }, Hn = {
903
925
  }
904
926
  }), ht = Rn({
905
927
  getContent: (e) => dt(e, D),
906
- markEnterFromLeft: Ne,
928
+ markEnterFromLeft: He,
907
929
  buffer: ze,
908
- stats: Xe,
930
+ stats: je,
909
931
  isEnabled: () => a.mode === "backfill",
910
932
  getPageSize: () => a.pageSize,
911
933
  getRequestDelayMs: () => a.backfillRequestDelayMs,
912
- getCancelToken: () => Ye
913
- }), $e = k(() => a.items !== void 0);
914
- oe(
934
+ getCancelToken: () => qe
935
+ }), De = k(() => a.items !== void 0);
936
+ Z(
915
937
  () => a.items,
916
938
  (e) => {
917
- $e.value && (qe.value = Array.isArray(e) ? e : []);
939
+ De.value && (Xe.value = Array.isArray(e) ? e : []);
918
940
  },
919
941
  { immediate: !0 }
920
942
  );
921
943
  const m = k({
922
944
  get() {
923
- return $e.value ? qe.value : vt.value;
945
+ return De.value ? Xe.value : vt.value;
924
946
  },
925
947
  set(e) {
926
- $e.value ? (qe.value = e, f("update:items", e)) : vt.value = e;
948
+ De.value ? (Xe.value = e, d("update:items", e)) : vt.value = e;
927
949
  }
928
- }), be = v(!1), je = v(!1);
950
+ }), be = v(!1), Ue = v(!1);
929
951
  async function gt(e) {
930
952
  const n = await dt(e, D);
931
- return we(n.items), Ne(n.items), { items: n.items, nextPage: n.nextPage };
953
+ return we(n.items), He(n.items), { items: n.items, nextPage: n.nextPage };
932
954
  }
933
- function Ue(e) {
955
+ function We(e) {
934
956
  return e ? typeof e == "string" ? e : e?.id : null;
935
957
  }
936
958
  async function pt(e) {
937
- const t = (Array.isArray(e) ? e : [e]).map(Ue).filter(Boolean);
959
+ const t = (Array.isArray(e) ? e : [e]).map(We).filter(Boolean);
938
960
  if (!t.length) return;
939
- const l = new Set(t), r = [], c = [];
940
- for (const z of l) {
941
- const A = Re.value.get(z);
942
- if (A == null) continue;
943
- const he = m.value[A];
944
- he && (ve.set(z, he), c.push(z), r.push(he));
961
+ const l = new Set(t), r = [], f = [];
962
+ for (const V of l) {
963
+ const C = Ae.value.get(V);
964
+ if (C == null) continue;
965
+ const ge = m.value[C];
966
+ ge && (me.set(V, ge), f.push(V), r.push(ge));
945
967
  }
946
- c.length && (me.push(c), Fe = !0);
947
- const h = it(), E = Te.value, O = j.value + B.value, Y = [];
948
- for (const z of l) {
949
- const A = Re.value.get(z);
950
- if (A == null) continue;
951
- const he = m.value[A];
952
- if (!he) continue;
953
- const Je = Se.value[A] ?? { x: 0, y: 0 }, It = Oe.value[A] ?? E, cn = Math.max(Je.y, O);
968
+ f.length && (he.push(f), _e = !0);
969
+ const p = it(), E = Te.value, O = j.value + R.value, Y = [];
970
+ for (const V of l) {
971
+ const C = Ae.value.get(V);
972
+ if (C == null) continue;
973
+ const ge = m.value[C];
974
+ if (!ge) continue;
975
+ const Qe = Ie.value[C] ?? { x: 0, y: 0 }, It = Ye.value[C] ?? E, cn = Math.max(Qe.y, O);
954
976
  Y.push({
955
- id: z,
956
- item: he,
957
- fromX: Je.x,
958
- fromY: Je.y,
977
+ id: V,
978
+ item: ge,
979
+ fromX: Qe.x,
980
+ fromY: Qe.y,
959
981
  toY: cn + Math.max(0, It),
960
982
  width: E,
961
983
  height: It,
962
984
  leaving: !0
963
985
  });
964
986
  }
965
- if (Y.length && (ne.value = [...ne.value, ...Y]), m.value = m.value.filter((z) => {
966
- const A = z?.id;
967
- return !A || !l.has(A);
968
- }), await Bt(), ut(h, l), Y.length) {
969
- const z = new Set(Y.map((A) => A.id));
987
+ if (Y.length && (le.value = [...le.value, ...Y]), m.value = m.value.filter((V) => {
988
+ const C = V?.id;
989
+ return !C || !l.has(C);
990
+ }), await Bt(), ut(p, l), Y.length) {
991
+ const V = new Set(Y.map((C) => C.id));
970
992
  pe(() => {
971
- ne.value = ne.value.map(
972
- (A) => z.has(A.id) ? { ...A, leaving: !1 } : A
993
+ le.value = le.value.map(
994
+ (C) => V.has(C.id) ? { ...C, leaving: !1 } : C
973
995
  ), setTimeout(() => {
974
- ne.value = ne.value.filter((A) => !z.has(A.id));
975
- }, Vt);
996
+ le.value = le.value.filter((C) => !V.has(C.id));
997
+ }, Lt);
976
998
  });
977
999
  }
978
- r.length && f("removed", { items: r, ids: c });
1000
+ r.length && d("removed", { items: r, ids: f });
979
1001
  }
980
- async function De(e) {
1002
+ async function Oe(e) {
981
1003
  return pt(e);
982
1004
  }
983
1005
  function tn() {
984
- D += 1, Ye += 1, fe = null, de = null, ue.value = !1, ce.value = !1;
1006
+ D += 1, qe += 1, de = null, ve = null, ce.value = !1, fe.value = !1;
985
1007
  }
986
1008
  M({
987
1009
  remove: pt,
@@ -991,137 +1013,137 @@ const Nn = { class: "hidden" }, Hn = {
991
1013
  loadNextPage: wt,
992
1014
  cancel: tn,
993
1015
  get pagesLoaded() {
994
- return W.value;
1016
+ return J.value;
995
1017
  },
996
1018
  set pagesLoaded(e) {
997
- W.value = e;
1019
+ J.value = e;
998
1020
  },
999
1021
  get nextPage() {
1000
- return V.value;
1022
+ return L.value;
1001
1023
  },
1002
1024
  set nextPage(e) {
1003
- V.value = e;
1025
+ L.value = e;
1004
1026
  },
1005
1027
  get isLoading() {
1006
- return ue.value || ce.value;
1028
+ return ce.value || fe.value;
1007
1029
  },
1008
1030
  get hasReachedEnd() {
1009
- return a.mode !== "backfill" ? V.value == null : V.value == null && ze.value.length === 0;
1031
+ return a.mode !== "backfill" ? L.value == null : L.value == null && ze.value.length === 0;
1010
1032
  },
1011
1033
  get backfillStats() {
1012
- return Xe.value;
1034
+ return je.value;
1013
1035
  }
1014
1036
  });
1015
1037
  function yt() {
1016
1038
  const e = An({
1017
1039
  items: m.value,
1018
- columnCount: Ke.value,
1040
+ columnCount: Je.value,
1019
1041
  columnWidth: Te.value,
1020
- gapX: ee.value,
1021
- gapY: Pe.value,
1042
+ gapX: ne.value,
1043
+ gapY: Ee.value,
1022
1044
  headerHeight: G.value,
1023
1045
  footerHeight: K.value,
1024
1046
  bucketPx: Ct
1025
1047
  });
1026
- Se.value = e.positions, Oe.value = e.heights, lt.value = e.buckets, at.value = e.contentHeight, Re.value = e.indexById;
1048
+ Ie.value = e.positions, Ye.value = e.heights, lt.value = e.buckets, at.value = e.contentHeight, Ae.value = e.indexById;
1027
1049
  }
1028
- const nn = k(() => Math.max(at.value, B.value) + jn), We = k(() => Cn({
1050
+ const nn = k(() => Math.max(at.value, R.value) + jn), Ge = k(() => Cn({
1029
1051
  itemCount: m.value.length,
1030
- viewportHeight: B.value,
1052
+ viewportHeight: R.value,
1031
1053
  scrollTop: j.value,
1032
1054
  overscanPx: a.overscanPx,
1033
1055
  bucketPx: Ct,
1034
1056
  buckets: lt.value
1035
1057
  }));
1036
- oe(
1037
- We,
1058
+ Z(
1059
+ Ge,
1038
1060
  (e) => {
1039
1061
  if (!e?.length) return;
1040
- if (be.value && !je.value) {
1062
+ if (be.value && !Ue.value) {
1041
1063
  const l = [];
1042
1064
  for (const r of e) {
1043
- const c = m.value[r];
1044
- c && l.push(c);
1065
+ const f = m.value[r];
1066
+ f && l.push(f);
1045
1067
  }
1046
- l.length && Ne(l), je.value = !0;
1068
+ l.length && He(l), Ue.value = !0;
1047
1069
  }
1048
1070
  const n = [];
1049
1071
  for (const l of e) {
1050
1072
  const r = m.value[l]?.id;
1051
- r && se.value.has(r) && (Ae.has(r) || (Ae.add(r), n.push(r)));
1073
+ r && ie.value.has(r) && (Ce.has(r) || (Ce.add(r), n.push(r)));
1052
1074
  }
1053
1075
  if (!n.length) return;
1054
1076
  const t = n.length > 1 ? Yt(a.enterStaggerMs) : 0;
1055
1077
  if (t > 0) {
1056
- const l = new Map(Ie.value);
1078
+ const l = new Map(Fe.value);
1057
1079
  for (let r = 0; r < n.length; r += 1) {
1058
- const c = n[r], h = Math.min(r * t, Un);
1059
- l.set(c, h);
1080
+ const f = n[r], p = Math.min(r * t, Un);
1081
+ l.set(f, p);
1060
1082
  }
1061
- Ie.value = l;
1083
+ Fe.value = l;
1062
1084
  }
1063
1085
  pe(() => {
1064
- const l = new Set(ie.value);
1086
+ const l = new Set(ue.value);
1065
1087
  for (const r of n) l.add(r);
1066
- ie.value = l;
1088
+ ue.value = l;
1067
1089
  }), Wt(() => {
1068
- const l = new Set(se.value);
1090
+ const l = new Set(ie.value);
1069
1091
  for (const r of n) l.delete(r);
1070
- se.value = l, setTimeout(() => {
1071
- const r = new Set(ie.value), c = new Map(Ie.value);
1072
- for (const h of n)
1073
- r.delete(h), Ae.delete(h), c.delete(h);
1074
- ie.value = r, Ie.value = c;
1092
+ ie.value = l, setTimeout(() => {
1093
+ const r = new Set(ue.value), f = new Map(Fe.value);
1094
+ for (const p of n)
1095
+ r.delete(p), Ce.delete(p), f.delete(p);
1096
+ ue.value = r, Fe.value = f;
1075
1097
  }, Ht);
1076
1098
  });
1077
1099
  },
1078
1100
  { flush: "post" }
1079
1101
  );
1080
1102
  async function wt() {
1081
- if (fe) return fe;
1082
- if (ue.value || ce.value || a.mode !== "backfill" && V.value == null || a.mode === "backfill" && V.value == null && ze.value.length === 0)
1103
+ if (de) return de;
1104
+ if (ce.value || fe.value || a.mode !== "backfill" && L.value == null || a.mode === "backfill" && L.value == null && ze.value.length === 0)
1083
1105
  return;
1084
1106
  const e = D;
1085
1107
  let n = null;
1086
1108
  return n = (async () => {
1087
1109
  try {
1088
- if (ce.value = !0, ye.value = "", a.mode === "backfill") {
1089
- const r = await ht.loadBackfillBatch(V.value);
1110
+ if (fe.value = !0, ye.value = "", a.mode === "backfill") {
1111
+ const r = await ht.loadBackfillBatch(L.value);
1090
1112
  if (e !== D) return;
1091
- r.pages.length && (W.value = [...W.value, ...r.pages]), we(r.batchItems), m.value = [...m.value, ...r.batchItems], V.value = r.nextPage;
1113
+ r.pages.length && (J.value = [...J.value, ...r.pages]), we(r.batchItems), m.value = [...m.value, ...r.batchItems], L.value = r.nextPage;
1092
1114
  return;
1093
1115
  }
1094
- const t = V.value;
1116
+ const t = L.value;
1095
1117
  if (t == null) return;
1096
1118
  const l = await gt(t);
1097
1119
  if (e !== D) return;
1098
- W.value = [...W.value, t], we(l.items), m.value = [...m.value, ...l.items], V.value = l.nextPage;
1120
+ J.value = [...J.value, t], we(l.items), m.value = [...m.value, ...l.items], L.value = l.nextPage;
1099
1121
  } catch (t) {
1100
1122
  if (e !== D || ct(t)) return;
1101
1123
  ye.value = t instanceof Error ? t.message : String(t);
1102
1124
  } finally {
1103
- e === D && (ce.value = !1), fe === n && (fe = null);
1125
+ e === D && (fe.value = !1), de === n && (de = null);
1104
1126
  }
1105
- })(), fe = n, n;
1127
+ })(), de = n, n;
1106
1128
  }
1107
1129
  function on() {
1108
- const e = u.value;
1130
+ const e = c.value;
1109
1131
  if (!e) return;
1110
1132
  const n = e.scrollTop, t = e.clientHeight, l = e.scrollHeight;
1111
- j.value = n, B.value = t;
1112
- const r = He, c = Ve, h = n > r, E = c > 0 && l < c;
1113
- if (He = n, Ve = l, Fe) {
1114
- if (!h) return;
1115
- Fe = !1;
1133
+ j.value = n, R.value = t;
1134
+ const r = Le, f = Ve, p = n > r, E = f > 0 && l < f;
1135
+ if (Le = n, Ve = l, _e) {
1136
+ if (!p) return;
1137
+ _e = !1;
1116
1138
  }
1117
- if (E && !h) return;
1139
+ if (E && !p) return;
1118
1140
  l - (n + t) <= a.prefetchThresholdPx && wt();
1119
1141
  }
1120
1142
  function bt() {
1121
- return u.value;
1143
+ return c.value;
1122
1144
  }
1123
1145
  function xt(e) {
1124
- I.value = Ee(e), B.value = e.clientHeight;
1146
+ F.value = Be(e), R.value = e.clientHeight;
1125
1147
  }
1126
1148
  function ln() {
1127
1149
  typeof ResizeObserver > "u" || (re = new ResizeObserver(() => {
@@ -1141,7 +1163,7 @@ const Nn = { class: "hidden" }, Hn = {
1141
1163
  target: 0
1142
1164
  },
1143
1165
  cooldownMsRemaining: 0,
1144
- cooldownMsTotal: et(a.backfillRequestDelayMs),
1166
+ cooldownMsTotal: tt(a.backfillRequestDelayMs),
1145
1167
  pageSize: Dt(a.pageSize),
1146
1168
  bufferSize: 0,
1147
1169
  lastBatch: null,
@@ -1152,25 +1174,25 @@ const Nn = { class: "hidden" }, Hn = {
1152
1174
  };
1153
1175
  }
1154
1176
  function kt() {
1155
- D += 1, Ye += 1, fe = null, de = null, He = 0, Ve = 0, Fe = !1, Le = 0, ve.clear(), me.length = 0, se.value = /* @__PURE__ */ new Set(), ie.value = /* @__PURE__ */ new Set(), Ae.clear(), Ce.value = /* @__PURE__ */ new Map(), te.value = /* @__PURE__ */ new Set(), ne.value = [], W.value = [], V.value = null, ze.value = [], Xe.value = an(), ue.value = !0, ce.value = !1, ye.value = "", je.value = !1;
1177
+ D += 1, qe += 1, de = null, ve = null, Le = 0, Ve = 0, _e = !1, $e = 0, me.clear(), he.length = 0, ie.value = /* @__PURE__ */ new Set(), ue.value = /* @__PURE__ */ new Set(), Ce.clear(), Ne.value = /* @__PURE__ */ new Map(), oe.value = /* @__PURE__ */ new Set(), le.value = [], J.value = [], L.value = null, ze.value = [], je.value = an(), ce.value = !0, fe.value = !1, ye.value = "", Ue.value = !1;
1156
1178
  }
1157
1179
  function Mt(e) {
1158
- kt(), m.value = [], V.value = e;
1180
+ kt(), m.value = [], L.value = e;
1159
1181
  }
1160
1182
  function rn(e) {
1161
1183
  const n = Array.isArray(e) ? e : [e], t = [], l = /* @__PURE__ */ new Set();
1162
1184
  for (const r of n) {
1163
1185
  if (r == null) continue;
1164
- const c = typeof r == "string" ? `s:${r}` : `n:${String(r)}`;
1165
- l.has(c) || (l.add(c), t.push(r));
1186
+ const f = typeof r == "string" ? `s:${r}` : `n:${String(r)}`;
1187
+ l.has(f) || (l.add(f), t.push(r));
1166
1188
  }
1167
1189
  return t;
1168
1190
  }
1169
- function Ge(e) {
1170
- kt(), W.value = e ? rn(e) : [], V.value = a.page, ue.value = !1, Kt(m.value), we(m.value);
1191
+ function Ke(e) {
1192
+ kt(), J.value = e ? rn(e) : [], L.value = a.page, ce.value = !1, Kt(m.value), we(m.value);
1171
1193
  }
1172
1194
  async function St(e) {
1173
- if (de) return de;
1195
+ if (ve) return ve;
1174
1196
  const n = D;
1175
1197
  let t = null;
1176
1198
  return t = (async () => {
@@ -1178,68 +1200,68 @@ const Nn = { class: "hidden" }, Hn = {
1178
1200
  if (a.mode === "backfill") {
1179
1201
  const l = await ht.loadBackfillBatch(e);
1180
1202
  if (n !== D) return;
1181
- W.value = l.pages.length ? l.pages : [e], we(l.batchItems), m.value = l.batchItems, V.value = l.nextPage;
1203
+ J.value = l.pages.length ? l.pages : [e], we(l.batchItems), m.value = l.batchItems, L.value = l.nextPage;
1182
1204
  } else {
1183
1205
  const l = await gt(e);
1184
1206
  if (n !== D) return;
1185
- W.value = [e], we(l.items), m.value = l.items, V.value = l.nextPage;
1207
+ J.value = [e], we(l.items), m.value = l.items, L.value = l.nextPage;
1186
1208
  }
1187
1209
  } catch (l) {
1188
1210
  if (n !== D || ct(l)) return;
1189
1211
  ye.value = l instanceof Error ? l.message : String(l);
1190
1212
  } finally {
1191
- n === D && (ue.value = !1), de === t && (de = null);
1213
+ n === D && (ce.value = !1), ve === t && (ve = null);
1192
1214
  }
1193
- })(), de = t, t;
1215
+ })(), ve = t, t;
1194
1216
  }
1195
1217
  function sn() {
1196
1218
  const e = bt();
1197
- e && (xt(e), j.value = e.scrollTop, He = e.scrollTop, Ve = e.scrollHeight, re?.observe(e));
1219
+ e && (xt(e), j.value = e.scrollTop, Le = e.scrollTop, Ve = e.scrollHeight, re?.observe(e));
1198
1220
  }
1199
- Qe(async () => {
1221
+ Ze(async () => {
1200
1222
  if (ln(), sn(), a.restoredPages != null) {
1201
- be.value = !0, Ge(a.restoredPages);
1223
+ be.value = !0, Ke(a.restoredPages);
1202
1224
  return;
1203
1225
  }
1204
- if ($e.value && m.value.length > 0) {
1205
- be.value = !0, Ge();
1226
+ if (De.value && m.value.length > 0) {
1227
+ be.value = !0, Ke();
1206
1228
  return;
1207
1229
  }
1208
1230
  be.value = !1, Mt(a.page), await St(a.page);
1209
- }), zt(() => {
1210
- re?.disconnect(), P && (clearTimeout(P), P = null), F && (clearTimeout(F), F = null), L(), R();
1211
- }), oe(
1231
+ }), Vt(() => {
1232
+ re?.disconnect(), T && (clearTimeout(T), T = null), I && (clearTimeout(I), I = null), z(), A();
1233
+ }), Z(
1212
1234
  () => a.page,
1213
1235
  async (e) => {
1214
1236
  if (be.value) {
1215
- V.value = e;
1237
+ L.value = e;
1216
1238
  return;
1217
1239
  }
1218
1240
  Mt(e), await St(e);
1219
1241
  }
1220
- ), oe(
1242
+ ), Z(
1221
1243
  () => a.restoredPages,
1222
1244
  (e) => {
1223
- e && (be.value = !0, Ge(e));
1245
+ e && (be.value = !0, Ke(e));
1224
1246
  }
1225
- ), oe(
1226
- ee,
1247
+ ), Z(
1248
+ ne,
1227
1249
  () => {
1228
- const e = u.value;
1229
- e && (I.value = Ee(e));
1250
+ const e = c.value;
1251
+ e && (F.value = Be(e));
1230
1252
  },
1231
1253
  { immediate: !1 }
1232
1254
  );
1233
- const Ke = k(() => Tn(I.value, a.itemWidth)), Te = k(
1234
- () => Pn(I.value, Ke.value, a.itemWidth, ee.value)
1255
+ const Je = k(() => Pn(F.value, a.itemWidth)), Te = k(
1256
+ () => Tn(F.value, Je.value, a.itemWidth, ne.value)
1235
1257
  );
1236
- oe(
1237
- [Ke, Te, ee, Pe, G, K],
1258
+ Z(
1259
+ [Je, Te, ne, Ee, G, K],
1238
1260
  () => {
1239
1261
  yt();
1240
1262
  },
1241
1263
  { immediate: !0 }
1242
- ), oe(
1264
+ ), Z(
1243
1265
  // Performance note: this component targets very large arrays (e.g. 10k items).
1244
1266
  // Avoid deep watchers over items; rebuild layout only when the list structure
1245
1267
  // changes (new array reference or length change). This keeps metadata-only
@@ -1250,28 +1272,28 @@ const Nn = { class: "hidden" }, Hn = {
1250
1272
  );
1251
1273
  const un = k(() => [
1252
1274
  "mt-8 flex min-h-0 flex-1 flex-col rounded-2xl border border-slate-200/70 bg-white/70 p-5 shadow-sm backdrop-blur",
1253
- y.class
1275
+ x.class
1254
1276
  ]);
1255
- return (e, n) => (_(), T("section", mn(ae.value, { class: un.value }), [
1256
- C("div", Nn, [
1277
+ return (e, n) => (_(), P("section", mn(te.value, { class: un.value }), [
1278
+ N("div", Nn, [
1257
1279
  hn(e.$slots, "default")
1258
1280
  ]),
1259
- C("div", {
1281
+ N("div", {
1260
1282
  ref_key: "scrollViewportRef",
1261
- ref: u,
1283
+ ref: c,
1262
1284
  "data-testid": "items-scroll-container",
1263
1285
  class: "mt-4 min-h-0 flex-1 overflow-auto",
1264
- style: U({ paddingRight: ee.value + "px" }),
1286
+ style: W({ paddingRight: ne.value + "px" }),
1265
1287
  onScroll: on
1266
1288
  }, [
1267
- ue.value ? (_(), T("div", Hn, n[0] || (n[0] = [
1268
- C("div", { class: "inline-flex items-center gap-3 text-sm text-slate-600" }, [
1269
- C("svg", {
1289
+ ce.value ? (_(), P("div", Hn, n[0] || (n[0] = [
1290
+ N("div", { class: "inline-flex items-center gap-3 text-sm text-slate-600" }, [
1291
+ N("svg", {
1270
1292
  class: "h-5 w-5 animate-spin text-slate-500",
1271
1293
  viewBox: "0 0 24 24",
1272
1294
  "aria-hidden": "true"
1273
1295
  }, [
1274
- C("circle", {
1296
+ N("circle", {
1275
1297
  class: "opacity-25",
1276
1298
  cx: "12",
1277
1299
  cy: "12",
@@ -1280,135 +1302,135 @@ const Nn = { class: "hidden" }, Hn = {
1280
1302
  stroke: "currentColor",
1281
1303
  "stroke-width": "4"
1282
1304
  }),
1283
- C("path", {
1305
+ N("path", {
1284
1306
  class: "opacity-75",
1285
1307
  fill: "currentColor",
1286
1308
  d: "M4 12a8 8 0 0 1 8-8v4a4 4 0 0 0-4 4H4z"
1287
1309
  })
1288
1310
  ]),
1289
- C("span", null, "Loading…")
1311
+ N("span", null, "Loading…")
1290
1312
  ], -1)
1291
- ]))) : ye.value ? (_(), T("p", Vn, "Error: " + Ze(ye.value), 1)) : (_(), T("div", {
1313
+ ]))) : ye.value ? (_(), P("p", Ln, "Error: " + et(ye.value), 1)) : (_(), P("div", {
1292
1314
  key: 2,
1293
1315
  class: "relative",
1294
- style: U({ height: nn.value + "px" })
1316
+ style: W({ height: nn.value + "px" })
1295
1317
  }, [
1296
- (_(!0), T(Pt, null, Et(We.value, (t) => (_(), T("article", {
1318
+ (_(!0), P(Tt, null, Et(Ge.value, (t) => (_(), P("article", {
1297
1319
  key: m.value[t].id,
1298
1320
  "data-testid": "item-card",
1299
1321
  class: "absolute overflow-hidden rounded-xl border border-slate-200/60 bg-white shadow-sm",
1300
- style: U({
1322
+ style: W({
1301
1323
  width: Te.value + "px",
1302
1324
  transition: jt(m.value[t].id),
1303
1325
  transitionDelay: qt(m.value[t].id),
1304
1326
  transform: Ut(t)
1305
1327
  })
1306
1328
  }, [
1307
- Be.value || G.value > 0 ? (_(), T("div", {
1329
+ U.value || G.value > 0 ? (_(), P("div", {
1308
1330
  key: 0,
1309
1331
  "data-testid": "item-header-container",
1310
1332
  class: "w-full",
1311
- style: U(nt.value)
1333
+ style: W(nt.value)
1312
1334
  }, [
1313
- Q(le(w), {
1335
+ Q(ae(y), {
1314
1336
  "slot-fn": ke.value,
1315
- "slot-props": { item: m.value[t], remove: () => De(m.value[t]) }
1337
+ "slot-props": { item: m.value[t], remove: () => Oe(m.value[t]) }
1316
1338
  }, null, 8, ["slot-fn", "slot-props"])
1317
- ], 4)) : Z("", !0),
1318
- C("div", {
1339
+ ], 4)) : ee("", !0),
1340
+ N("div", {
1319
1341
  class: "group relative",
1320
- onMouseenter: (l) => p(m.value[t].id),
1321
- onMouseleave: (l) => b(m.value[t].id)
1342
+ onMouseenter: (l) => g(m.value[t].id),
1343
+ onMouseleave: (l) => w(m.value[t].id)
1322
1344
  }, [
1323
1345
  Q(Rt, {
1324
1346
  item: m.value[t],
1325
- remove: () => De(m.value[t]),
1326
- "loader-slot-fn": ge.value,
1327
- "error-slot-fn": J.value,
1328
- hovered: d.value === m.value[t].id,
1347
+ remove: () => Oe(m.value[t]),
1348
+ "loader-slot-fn": Me.value,
1349
+ "error-slot-fn": b.value,
1350
+ hovered: u.value === m.value[t].id,
1329
1351
  onSuccess: H,
1330
1352
  onError: q
1331
1353
  }, null, 8, ["item", "remove", "loader-slot-fn", "error-slot-fn", "hovered"]),
1332
- tt.value ? (_(), T("div", Ln, [
1333
- Q(le(w), {
1334
- "slot-fn": x.value,
1335
- "slot-props": { item: m.value[t], remove: () => De(m.value[t]) }
1354
+ Se.value ? (_(), P("div", zn, [
1355
+ Q(ae(y), {
1356
+ "slot-fn": s.value,
1357
+ "slot-props": { item: m.value[t], remove: () => Oe(m.value[t]) }
1336
1358
  }, null, 8, ["slot-fn", "slot-props"])
1337
- ])) : Z("", !0)
1338
- ], 40, zn),
1339
- Me.value || K.value > 0 ? (_(), T("div", {
1359
+ ])) : ee("", !0)
1360
+ ], 40, Vn),
1361
+ Re.value || K.value > 0 ? (_(), P("div", {
1340
1362
  key: 1,
1341
1363
  "data-testid": "item-footer-container",
1342
1364
  class: "w-full",
1343
- style: U(ot.value)
1365
+ style: W(ot.value)
1344
1366
  }, [
1345
- Q(le(w), {
1346
- "slot-fn": s.value,
1347
- "slot-props": { item: m.value[t], remove: () => De(m.value[t]) }
1367
+ Q(ae(y), {
1368
+ "slot-fn": se.value,
1369
+ "slot-props": { item: m.value[t], remove: () => Oe(m.value[t]) }
1348
1370
  }, null, 8, ["slot-fn", "slot-props"])
1349
- ], 4)) : Z("", !0)
1371
+ ], 4)) : ee("", !0)
1350
1372
  ], 4))), 128)),
1351
- (_(!0), T(Pt, null, Et(ne.value, (t) => (_(), T("article", {
1373
+ (_(!0), P(Tt, null, Et(le.value, (t) => (_(), P("article", {
1352
1374
  key: t.id + ":leaving",
1353
1375
  "data-testid": "item-card-leaving",
1354
1376
  class: "pointer-events-none absolute overflow-hidden rounded-xl border border-slate-200/60 bg-white shadow-sm",
1355
- style: U({
1377
+ style: W({
1356
1378
  width: t.width + "px",
1357
- transition: "transform " + Vt + "ms ease-out",
1379
+ transition: "transform " + Lt + "ms ease-out",
1358
1380
  transform: t.leaving ? "translate3d(" + t.fromX + "px," + t.fromY + "px,0)" : "translate3d(" + t.fromX + "px," + t.toY + "px,0)"
1359
1381
  })
1360
1382
  }, [
1361
- Be.value || G.value > 0 ? (_(), T("div", {
1383
+ U.value || G.value > 0 ? (_(), P("div", {
1362
1384
  key: 0,
1363
1385
  "data-testid": "item-header-container",
1364
1386
  class: "w-full",
1365
- style: U(nt.value)
1387
+ style: W(nt.value)
1366
1388
  }, [
1367
- Q(le(w), {
1389
+ Q(ae(y), {
1368
1390
  "slot-fn": ke.value,
1369
1391
  "slot-props": { item: t.item, remove: () => {
1370
1392
  } }
1371
1393
  }, null, 8, ["slot-fn", "slot-props"])
1372
- ], 4)) : Z("", !0),
1373
- C("div", $n, [
1394
+ ], 4)) : ee("", !0),
1395
+ N("div", $n, [
1374
1396
  Q(Rt, {
1375
1397
  item: t.item,
1376
1398
  remove: () => {
1377
1399
  },
1378
- "loader-slot-fn": ge.value,
1379
- "error-slot-fn": J.value,
1400
+ "loader-slot-fn": Me.value,
1401
+ "error-slot-fn": b.value,
1380
1402
  hovered: !1
1381
1403
  }, null, 8, ["item", "loader-slot-fn", "error-slot-fn"]),
1382
- tt.value ? (_(), T("div", Dn, [
1383
- Q(le(w), {
1384
- "slot-fn": x.value,
1404
+ Se.value ? (_(), P("div", Dn, [
1405
+ Q(ae(y), {
1406
+ "slot-fn": s.value,
1385
1407
  "slot-props": { item: t.item, remove: () => {
1386
1408
  } }
1387
1409
  }, null, 8, ["slot-fn", "slot-props"])
1388
- ])) : Z("", !0)
1410
+ ])) : ee("", !0)
1389
1411
  ]),
1390
- Me.value || K.value > 0 ? (_(), T("div", {
1412
+ Re.value || K.value > 0 ? (_(), P("div", {
1391
1413
  key: 1,
1392
1414
  "data-testid": "item-footer-container",
1393
1415
  class: "w-full",
1394
- style: U(ot.value)
1416
+ style: W(ot.value)
1395
1417
  }, [
1396
- Q(le(w), {
1397
- "slot-fn": s.value,
1418
+ Q(ae(y), {
1419
+ "slot-fn": se.value,
1398
1420
  "slot-props": { item: t.item, remove: () => {
1399
1421
  } }
1400
1422
  }, null, 8, ["slot-fn", "slot-props"])
1401
- ], 4)) : Z("", !0)
1423
+ ], 4)) : ee("", !0)
1402
1424
  ], 4))), 128))
1403
1425
  ], 4)),
1404
- C("div", On, [
1405
- ce.value ? (_(), T("span", Yn, n[1] || (n[1] = [
1406
- C("svg", {
1426
+ N("div", On, [
1427
+ fe.value ? (_(), P("span", Yn, n[1] || (n[1] = [
1428
+ N("svg", {
1407
1429
  class: "h-4 w-4 animate-spin text-slate-500",
1408
1430
  viewBox: "0 0 24 24",
1409
1431
  "aria-hidden": "true"
1410
1432
  }, [
1411
- C("circle", {
1433
+ N("circle", {
1412
1434
  class: "opacity-25",
1413
1435
  cx: "12",
1414
1436
  cy: "12",
@@ -1417,14 +1439,14 @@ const Nn = { class: "hidden" }, Hn = {
1417
1439
  stroke: "currentColor",
1418
1440
  "stroke-width": "4"
1419
1441
  }),
1420
- C("path", {
1442
+ N("path", {
1421
1443
  class: "opacity-75",
1422
1444
  fill: "currentColor",
1423
1445
  d: "M4 12a8 8 0 0 1 8-8v4a4 4 0 0 0-4 4H4z"
1424
1446
  })
1425
1447
  ], -1),
1426
- C("span", null, "Loading more…", -1)
1427
- ]))) : V.value == null ? (_(), T("span", qn, "End of list")) : (_(), T("span", Xn, "Scroll to load page " + Ze(V.value), 1))
1448
+ N("span", null, "Loading more…", -1)
1449
+ ]))) : L.value == null ? (_(), P("span", qn, "End of list")) : (_(), P("span", Xn, "Scroll to load page " + et(L.value), 1))
1428
1450
  ])
1429
1451
  ], 36)
1430
1452
  ], 16));
@@ -1435,32 +1457,32 @@ const Nn = { class: "hidden" }, Hn = {
1435
1457
  const a = gn($t, null);
1436
1458
  if (!a)
1437
1459
  return () => null;
1438
- const f = i.onPreloaded, y = i.onFailed, w = M.overlay, g = M.default;
1460
+ const d = i.onPreloaded, x = i.onFailed, y = M.overlay, h = M.default;
1439
1461
  return a({
1440
1462
  header: M.header,
1441
1463
  loader: M.loader,
1442
- overlay: w ?? g,
1464
+ overlay: y ?? h,
1443
1465
  error: M.error,
1444
1466
  footer: M.footer,
1445
- onPreloaded: typeof f == "function" ? f : Array.isArray(f) ? (d) => {
1446
- for (const p of f)
1447
- typeof p == "function" && p(d);
1467
+ onPreloaded: typeof d == "function" ? d : Array.isArray(d) ? (u) => {
1468
+ for (const g of d)
1469
+ typeof g == "function" && g(u);
1448
1470
  } : void 0,
1449
- onFailed: typeof y == "function" ? y : Array.isArray(y) ? (d) => {
1450
- for (const p of y)
1451
- typeof p == "function" && p(d);
1471
+ onFailed: typeof x == "function" ? x : Array.isArray(x) ? (u) => {
1472
+ for (const g of x)
1473
+ typeof g == "function" && g(u);
1452
1474
  } : void 0
1453
1475
  }), () => null;
1454
1476
  }
1455
1477
  }), Zn = {
1456
1478
  install(o) {
1457
- o.component("Masonry", Kn), o.component("MasonryItem", Jn), o.component("MasonryVideoControls", Lt);
1479
+ o.component("Masonry", Kn), o.component("MasonryItem", Jn), o.component("MasonryVideoControls", zt);
1458
1480
  }
1459
1481
  };
1460
1482
  export {
1461
1483
  Kn as Masonry,
1462
1484
  Jn as MasonryItem,
1463
- Lt as MasonryVideoControls,
1485
+ zt as MasonryVideoControls,
1464
1486
  Zn as VibePlugin,
1465
1487
  pn as masonryDefaults
1466
1488
  };