@wyxos/vibe 5.13.1 → 5.13.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/index.js CHANGED
@@ -74,7 +74,7 @@ function G(e, t) {
74
74
  function K(e) {
75
75
  return r(() => Object.freeze([...e.items]));
76
76
  }
77
- function ee(e, t = [...e.items]) {
77
+ function q(e, t = [...e.items]) {
78
78
  return {
79
79
  activeReelPostId: e.activeReelPostId,
80
80
  autoScroll: { ...e.autoScroll },
@@ -104,17 +104,17 @@ function ee(e, t = [...e.items]) {
104
104
  }
105
105
  //#endregion
106
106
  //#region src/components/GalleryFooter.vue?vue&type=script&setup=true&lang.ts
107
- var q = {
107
+ var J = {
108
108
  key: 0,
109
109
  class: "gallery-footer"
110
- }, J = {
110
+ }, Y = {
111
111
  key: 0,
112
112
  class: "load-more-status",
113
113
  role: "status"
114
- }, te = ["disabled"], ne = {
114
+ }, ee = ["disabled"], te = {
115
115
  key: 2,
116
116
  class: "end-feed"
117
- }, re = ["disabled"], ie = /* @__PURE__ */ d({
117
+ }, ne = ["disabled"], re = /* @__PURE__ */ d({
118
118
  __name: "GalleryFooter",
119
119
  props: {
120
120
  canRetryEnd: { type: Boolean },
@@ -130,14 +130,14 @@ var q = {
130
130
  function i() {
131
131
  n.loadMoreLocked || (n.hasNext ? r("loadMore") : r("retryEnd"));
132
132
  }
133
- return (t, n) => e.isLoading || e.hasError || e.hasNext && e.showLoadMore || !e.hasNext && e.canRetryEnd ? (b(), s("footer", q, [e.isLoading ? (b(), s("p", J, " Loading more… ")) : e.hasError || e.hasNext && e.showLoadMore ? (b(), s("button", {
133
+ return (t, n) => e.isLoading || e.hasError || e.hasNext && e.showLoadMore || !e.hasNext && e.canRetryEnd ? (b(), s("footer", J, [e.isLoading ? (b(), s("p", Y, " Loading more… ")) : e.hasError || e.hasNext && e.showLoadMore ? (b(), s("button", {
134
134
  key: 1,
135
135
  "data-test": "load-more",
136
136
  class: "load-more-button",
137
137
  type: "button",
138
138
  disabled: e.loadMoreLocked,
139
139
  onClick: i
140
- }, T(e.hasError ? "Try again" : e.loadMoreLocked ? "Loading paused" : "Load more"), 9, te)) : (b(), s("div", ne, [n[1] ||= c("p", {
140
+ }, T(e.hasError ? "Try again" : e.loadMoreLocked ? "Loading paused" : "Load more"), 9, ee)) : (b(), s("div", te, [n[1] ||= c("p", {
141
141
  class: "end-feed-message",
142
142
  role: "status"
143
143
  }, " You've reached the end. ", -1), c("button", {
@@ -146,9 +146,9 @@ var q = {
146
146
  type: "button",
147
147
  disabled: e.loadMoreLocked,
148
148
  onClick: n[0] ||= (e) => t.$emit("retryEnd")
149
- }, " Check for more ", 8, re)]))])) : o("", !0);
149
+ }, " Check for more ", 8, ne)]))])) : o("", !0);
150
150
  }
151
- }), ae = /* @__PURE__ */ d({
151
+ }), ie = /* @__PURE__ */ d({
152
152
  __name: "FeedFooter",
153
153
  props: {
154
154
  actions: {},
@@ -185,7 +185,7 @@ var q = {
185
185
  "can-retry-end",
186
186
  "show-load-more",
187
187
  "state"
188
- ])) : (b(), a(ie, {
188
+ ])) : (b(), a(re, {
189
189
  key: 1,
190
190
  "can-retry-end": e.canRetryEnd,
191
191
  "has-error": e.hasError,
@@ -204,7 +204,7 @@ var q = {
204
204
  "show-load-more"
205
205
  ]));
206
206
  }
207
- }), oe = ["role"], Y = { class: "gallery-status" }, se = /* @__PURE__ */ d({
207
+ }), ae = ["role"], X = { class: "gallery-status" }, oe = /* @__PURE__ */ d({
208
208
  __name: "FeedStatus",
209
209
  props: {
210
210
  actions: {},
@@ -218,7 +218,7 @@ var q = {
218
218
  return (n, u) => (b(), s("main", {
219
219
  class: "gallery-shell",
220
220
  role: r.state.error ? "alert" : r.state.isLoading || r.state.isLoadingMore ? "status" : void 0
221
- }, [c("p", Y, [r.state.error ? (b(), s(e, { key: 0 }, [l(" Unable to load media. ")], 64)) : r.state.isLoading || r.state.isLoadingMore ? (b(), s(e, { key: 1 }, [l(" Loading media… ")], 64)) : (b(), s(e, { key: 2 }, [l(" No media found. ")], 64))]), t.feedFooter ? (b(), a(ae, {
221
+ }, [c("p", X, [r.state.error ? (b(), s(e, { key: 0 }, [l(" Unable to load media. ")], 64)) : r.state.isLoading || r.state.isLoadingMore ? (b(), s(e, { key: 1 }, [l(" Loading media… ")], 64)) : (b(), s(e, { key: 2 }, [l(" No media found. ")], 64))]), t.feedFooter ? (b(), a(ie, {
222
222
  key: 0,
223
223
  actions: t.actions,
224
224
  "can-retry-end": t.canRetryEnd,
@@ -240,19 +240,19 @@ var q = {
240
240
  "is-loading",
241
241
  "load-more-locked",
242
242
  "state"
243
- ])) : o("", !0)], 8, oe));
243
+ ])) : o("", !0)], 8, ae));
244
244
  }
245
245
  });
246
- function ce(e) {
246
+ function se(e) {
247
247
  return e.scrollHeight - e.scrollTop - e.clientHeight <= 240;
248
248
  }
249
249
  //#endregion
250
250
  //#region src/core/masonry.ts
251
- function X(e) {
251
+ function Z(e) {
252
252
  let t = e.preview?.width ?? e.width, n = e.preview?.height ?? e.height;
253
253
  return !t || !n || t <= 0 || n <= 0 ? 1 : n / t;
254
254
  }
255
- function Z(e) {
255
+ function ce(e) {
256
256
  return e.reduce((t, n, r) => n < e[t] ? r : t, 0);
257
257
  }
258
258
  function le(e) {
@@ -281,7 +281,7 @@ function Q(e, t) {
281
281
  };
282
282
  }
283
283
  function pe(e, t, n) {
284
- let r = Z(t), i = n.itemWidth * X(e) + n.additionalHeight, a = {
284
+ let r = ce(t), i = n.itemWidth * Z(e) + n.additionalHeight, a = {
285
285
  x: r * (n.itemWidth + n.gap),
286
286
  y: t[r],
287
287
  width: n.itemWidth,
@@ -321,12 +321,12 @@ function _e(e, t, n, r, i, a) {
321
321
  items: []
322
322
  };
323
323
  if (r.columns !== o.columns || i > 0 && r.items.length < i) return ge(e, t, n);
324
- let s = Math.max(0, i), c = a?.untilIndex ?? e.length, l = a?.untilBottom, u = s === 0 ? [] : r.items.slice(0, s), d = s === 0 ? Array.from({ length: o.columns }, () => 0) : me(u, o);
325
- for (let t = s; t < e.length && t < c && !(l !== void 0 && t > s && d.every((e) => e >= l)); t += 1) u.push(pe(e[t], d, o));
324
+ let s = Math.max(0, i), c = a?.untilIndex ?? e.length, l = a?.untilBottom, u = a?.throughIndex ?? s, d = s === 0 ? [] : r.items.slice(0, s), f = s === 0 ? Array.from({ length: o.columns }, () => 0) : me(d, o);
325
+ for (let t = s; t < e.length && t < c && !(l !== void 0 && t > s && t > u && f.every((e) => e >= l)); t += 1) d.push(pe(e[t], f, o));
326
326
  return {
327
327
  columns: o.columns,
328
- height: he(d, o.gap),
329
- items: u
328
+ height: he(f, o.gap),
329
+ items: d
330
330
  };
331
331
  }
332
332
  function ve(e, t, n, r, i, a) {
@@ -364,15 +364,22 @@ function ve(e, t, n, r, i, a) {
364
364
  };
365
365
  let c = r.items.slice(), l = [];
366
366
  for (let e = 0; e < s; e += 1) l.push(e);
367
- let u = me(c.slice(0, s), o);
367
+ let u = a?.untilBottom, d = a?.throughIndex ?? s, f = me(c.slice(0, s), o);
368
368
  for (let t = s; t < e.length; t += 1) if (!i(t)) {
369
- if (a !== void 0 && l.length > s && u.every((e) => e >= a)) break;
370
- c[t] = pe(e[t], u, o), l.push(t);
369
+ if (u !== void 0 && l.length > s && t > d && f.every((e) => e >= u)) break;
370
+ c[t] = pe(e[t], f, o), l.push(t);
371
371
  }
372
+ let p = new Set(l);
373
+ for (let t = s; t < e.length; t += 1) i(t) || p.has(t) || (c[t] = {
374
+ height: 0,
375
+ width: 0,
376
+ x: 0,
377
+ y: 0
378
+ });
372
379
  return {
373
380
  columns: o.columns,
374
381
  fromIndex: s,
375
- height: he(u, o.gap),
382
+ height: he(f, o.gap),
376
383
  items: c,
377
384
  retainedIndices: l
378
385
  };
@@ -1448,7 +1455,7 @@ var Ut = [
1448
1455
  function f(e = !1, t = "pointer") {
1449
1456
  e && d("activate", t);
1450
1457
  }
1451
- let p = r(() => H(l.item)), g = r(() => U(l.item, l.mediaIndex)), v = r(() => W(l.item, g.value)), y = r(() => z(v.value, l.mediaSource ?? "preview")), x = r(() => I(v.value.type, v.value.src)), S = r(() => x.value === "audio"), C = r(() => V(v.value, l.mediaSource ?? "preview")), T = r(() => S.value ? C.value : y.value), D = r(() => T.value.src), M = r(() => I(T.value.type, T.value.src)), N = r(() => y.value.width), P = r(() => y.value.height), F = r(() => B(v.value)), L = w(!1), R = r(() => L.value ? null : F.value), { effectivePreviewState: G, failSourceAttempt: K, imageElement: ee, markSourceReady: q, noteSourceActivity: J, retrySource: te, retrying: ne, sourceGeneration: re, mediaElement: ie } = Ft({
1458
+ let p = r(() => H(l.item)), g = r(() => U(l.item, l.mediaIndex)), v = r(() => W(l.item, g.value)), y = r(() => z(v.value, l.mediaSource ?? "preview")), x = r(() => I(v.value.type, v.value.src)), S = r(() => x.value === "audio"), C = r(() => V(v.value, l.mediaSource ?? "preview")), T = r(() => S.value ? C.value : y.value), D = r(() => T.value.src), M = r(() => I(T.value.type, T.value.src)), N = r(() => y.value.width), P = r(() => y.value.height), F = r(() => B(v.value)), L = w(!1), R = r(() => L.value ? null : F.value), { effectivePreviewState: G, failSourceAttempt: K, imageElement: q, markSourceReady: J, noteSourceActivity: Y, retrySource: ee, retrying: te, sourceGeneration: ne, mediaElement: re } = Ft({
1452
1459
  identity: () => `${l.item.postId}:${g.value}:${l.mediaSource ?? "preview"}:${D.value}:${M.value ?? ""}`,
1453
1460
  mediaIndex: () => g.value,
1454
1461
  onError: (e) => d("error", e),
@@ -1464,15 +1471,15 @@ var Ut = [
1464
1471
  mediaReady: () => G.value === "ready",
1465
1472
  mediaSource: () => l.mediaSource ?? "preview"
1466
1473
  });
1467
- let { currentTime: ae, duration: oe, effectiveMuted: Y, isMuted: se, isPlaying: ce, onEnded: X, onLoadedMetadata: Z, onPlaying: le, playbackAllowed: ue, seek: de, setVolume: fe, sync: Q, toggleMute: pe, togglePlayback: me, volume: he } = Ht({
1474
+ let { currentTime: ie, duration: ae, effectiveMuted: X, isMuted: oe, isPlaying: se, onEnded: Z, onLoadedMetadata: ce, onPlaying: le, playbackAllowed: ue, seek: de, setVolume: fe, sync: Q, toggleMute: pe, togglePlayback: me, volume: he } = Ht({
1468
1475
  active: () => l.active,
1469
1476
  inViewport: () => l.inViewport === !0,
1470
1477
  layout: () => l.layout,
1471
1478
  mediaCard: () => l.mediaCard,
1472
- mediaElement: ie,
1479
+ mediaElement: re,
1473
1480
  onAudioChange: (e) => d("reelAudioChange", e),
1474
1481
  onEnded: () => d("ended", g.value),
1475
- onReady: q,
1482
+ onReady: J,
1476
1483
  reelAudioState: () => l.reelAudioState
1477
1484
  }), ge = r(() => l.interactive && !!(l.cardHeader || l.cardFooter));
1478
1485
  function _e(e) {
@@ -1489,13 +1496,13 @@ var Ut = [
1489
1496
  layout: () => l.layout,
1490
1497
  mediaSource: () => D.value,
1491
1498
  mediaType: () => M.value,
1492
- mediaElement: ie
1499
+ mediaElement: re
1493
1500
  }), Ee = r(() => l.layout === "reel" && l.stationaryReelControls === !0), De = r(() => we.value && (!S.value || l.layout === "reel") && G.value === "ready" && (!Ee.value || !!(l.active && l.reelControlsTarget))), Oe = r(() => `${l.item.postId}:${g.value}:${D.value}`);
1494
1501
  function ke(e) {
1495
1502
  l.layout === "reel" && (e.stopPropagation(), me());
1496
1503
  }
1497
1504
  function Ae() {
1498
- L.value = !0, l.layout === "masonry" && q();
1505
+ L.value = !0, l.layout === "masonry" && J();
1499
1506
  }
1500
1507
  return O(() => F.value?.src, () => {
1501
1508
  L.value = !1;
@@ -1504,7 +1511,7 @@ var Ut = [
1504
1511
  () => l.layout,
1505
1512
  R
1506
1513
  ], ([e, t, n]) => {
1507
- e && t === "masonry" && !n && m(() => q());
1514
+ e && t === "masonry" && !n && m(() => J());
1508
1515
  }, { immediate: !0 }), (r, i) => (b(), s("article", {
1509
1516
  "data-post-id": e.item.postId,
1510
1517
  "data-media-index": g.value,
@@ -1516,7 +1523,7 @@ var Ut = [
1516
1523
  }]),
1517
1524
  style: _(e.itemStyle),
1518
1525
  "aria-hidden": e.leaving || void 0,
1519
- "aria-busy": E(G) === "loading" || E(ne),
1526
+ "aria-busy": E(G) === "loading" || E(te),
1520
1527
  inert: e.leaving || void 0,
1521
1528
  role: e.interactive && !e.leaving && !ge.value ? "button" : void 0,
1522
1529
  tabindex: e.interactive && !e.leaving && !ge.value ? 0 : void 0,
@@ -1554,11 +1561,11 @@ var Ut = [
1554
1561
  onTouchendPassive: i[33] ||= (...e) => E(be) && E(be)(...e)
1555
1562
  }, [
1556
1563
  u(n, {
1557
- css: !E(ne),
1564
+ css: !E(te),
1558
1565
  name: `media-slide-${E(ye)}`
1559
1566
  }, {
1560
1567
  default: k(() => [(b(), s("div", {
1561
- key: `${e.item.postId}:${v.value.src}:${e.mediaSource ?? "preview"}:${E(re)}`,
1568
+ key: `${e.item.postId}:${v.value.src}:${e.mediaSource ?? "preview"}:${E(ne)}`,
1562
1569
  class: "media-card-frame",
1563
1570
  "data-media-index": g.value
1564
1571
  }, [
@@ -1566,9 +1573,9 @@ var Ut = [
1566
1573
  key: 1,
1567
1574
  component: e.mediaCard?.error?.component,
1568
1575
  label: E(tt)(D.value),
1569
- retrying: E(ne),
1576
+ retrying: E(te),
1570
1577
  status: E(et)(D.value),
1571
- onRetry: E(te)
1578
+ onRetry: E(ee)
1572
1579
  }, null, 8, [
1573
1580
  "component",
1574
1581
  "label",
@@ -1579,31 +1586,31 @@ var Ut = [
1579
1586
  S.value && e.layout === "reel" ? (b(), s("audio", {
1580
1587
  key: 2,
1581
1588
  ref_key: "mediaElement",
1582
- ref: ie,
1583
- "data-source-generation": E(re),
1589
+ ref: re,
1590
+ "data-source-generation": E(ne),
1584
1591
  class: "media-audio-element",
1585
1592
  src: D.value,
1586
1593
  autoplay: E(ue),
1587
1594
  loop: !e.advanceOnMediaEnd,
1588
- muted: E(Y),
1595
+ muted: E(X),
1589
1596
  preload: E(Te),
1590
- onLoadedmetadata: i[0] ||= (...e) => E(Z) && E(Z)(...e),
1591
- onProgress: i[1] ||= (...e) => E(J) && E(J)(...e),
1592
- onLoadeddata: i[2] ||= (...e) => E(J) && E(J)(...e),
1593
- onCanplay: i[3] ||= (...e) => E(J) && E(J)(...e),
1597
+ onLoadedmetadata: i[0] ||= (...e) => E(ce) && E(ce)(...e),
1598
+ onProgress: i[1] ||= (...e) => E(Y) && E(Y)(...e),
1599
+ onLoadeddata: i[2] ||= (...e) => E(Y) && E(Y)(...e),
1600
+ onCanplay: i[3] ||= (...e) => E(Y) && E(Y)(...e),
1594
1601
  onDurationchange: i[4] ||= (...e) => E(Q) && E(Q)(...e),
1595
1602
  onTimeupdate: i[5] ||= (...e) => E(Q) && E(Q)(...e),
1596
1603
  onVolumechange: i[6] ||= (...e) => E(Q) && E(Q)(...e),
1597
1604
  onPlaying: i[7] ||= (...e) => E(le) && E(le)(...e),
1598
- onPause: i[8] ||= (e) => ce.value = !1,
1599
- onEnded: i[9] ||= (...e) => E(X) && E(X)(...e),
1605
+ onPause: i[8] ||= (e) => se.value = !1,
1606
+ onEnded: i[9] ||= (...e) => E(Z) && E(Z)(...e),
1600
1607
  onError: i[10] ||= (...e) => E(K) && E(K)(...e)
1601
1608
  }, null, 40, Jt)) : o("", !0),
1602
1609
  S.value ? (b(), s("button", {
1603
1610
  key: 3,
1604
1611
  type: "button",
1605
1612
  class: h(["media-audio-artwork media-preview", { "media-preview--ready": E(G) === "ready" }]),
1606
- "aria-label": e.layout === "reel" ? E(ce) ? "Pause audio" : "Play audio" : "Audio",
1613
+ "aria-label": e.layout === "reel" ? E(se) ? "Pause audio" : "Play audio" : "Audio",
1607
1614
  disabled: e.layout !== "reel",
1608
1615
  onClick: ke
1609
1616
  }, [R.value ? (b(), s("img", {
@@ -1616,7 +1623,7 @@ var Ut = [
1616
1623
  alt: "",
1617
1624
  decoding: "async",
1618
1625
  loading: E(Ce),
1619
- onLoad: i[11] ||= (t) => e.layout === "masonry" && E(q)(t),
1626
+ onLoad: i[11] ||= (t) => e.layout === "masonry" && E(J)(t),
1620
1627
  onError: Ae
1621
1628
  }, null, 40, Xt)) : (b(), s("span", Zt, [u(E(Je), {
1622
1629
  size: 64,
@@ -1624,8 +1631,8 @@ var Ut = [
1624
1631
  })]))], 10, Yt)) : E(we) ? (b(), s("video", {
1625
1632
  key: 4,
1626
1633
  ref_key: "mediaElement",
1627
- ref: ie,
1628
- "data-source-generation": E(re),
1634
+ ref: re,
1635
+ "data-source-generation": E(ne),
1629
1636
  class: h(["media-preview", {
1630
1637
  "media-preview--ready": E(G) === "ready",
1631
1638
  "media-preview--reel-video": e.layout === "reel"
@@ -1635,26 +1642,26 @@ var Ut = [
1635
1642
  height: P.value ?? void 0,
1636
1643
  autoplay: E(ue),
1637
1644
  loop: !e.advanceOnMediaEnd,
1638
- muted: E(Y),
1645
+ muted: E(X),
1639
1646
  playsinline: "",
1640
1647
  preload: E(Te),
1641
- onLoadedmetadata: i[12] ||= (...e) => E(Z) && E(Z)(...e),
1642
- onProgress: i[13] ||= (...e) => E(J) && E(J)(...e),
1643
- onLoadeddata: i[14] ||= (...e) => E(J) && E(J)(...e),
1644
- onCanplay: i[15] ||= (...e) => E(J) && E(J)(...e),
1648
+ onLoadedmetadata: i[12] ||= (...e) => E(ce) && E(ce)(...e),
1649
+ onProgress: i[13] ||= (...e) => E(Y) && E(Y)(...e),
1650
+ onLoadeddata: i[14] ||= (...e) => E(Y) && E(Y)(...e),
1651
+ onCanplay: i[15] ||= (...e) => E(Y) && E(Y)(...e),
1645
1652
  onDurationchange: i[16] ||= (...e) => E(Q) && E(Q)(...e),
1646
1653
  onTimeupdate: i[17] ||= (...e) => E(Q) && E(Q)(...e),
1647
1654
  onVolumechange: i[18] ||= (...e) => E(Q) && E(Q)(...e),
1648
1655
  onPlaying: i[19] ||= (...e) => E(le) && E(le)(...e),
1649
- onPause: i[20] ||= (e) => ce.value = !1,
1650
- onEnded: i[21] ||= (...e) => E(X) && E(X)(...e),
1656
+ onPause: i[20] ||= (e) => se.value = !1,
1657
+ onEnded: i[21] ||= (...e) => E(Z) && E(Z)(...e),
1651
1658
  onClick: ke,
1652
1659
  onError: i[22] ||= (...e) => E(K) && E(K)(...e)
1653
1660
  }, null, 42, Qt)) : S.value ? o("", !0) : (b(), s("img", {
1654
1661
  key: 5,
1655
1662
  ref_key: "imageElement",
1656
- ref: ee,
1657
- "data-source-generation": E(re),
1663
+ ref: q,
1664
+ "data-source-generation": E(ne),
1658
1665
  class: h(["media-preview", { "media-preview--ready": E(G) === "ready" }]),
1659
1666
  src: D.value,
1660
1667
  width: N.value ?? void 0,
@@ -1663,7 +1670,7 @@ var Ut = [
1663
1670
  alt: "",
1664
1671
  decoding: "async",
1665
1672
  loading: E(Ce),
1666
- onLoad: i[23] ||= (...e) => E(q) && E(q)(...e),
1673
+ onLoad: i[23] ||= (...e) => E(J) && E(J)(...e),
1667
1674
  onError: i[24] ||= (...e) => E(K) && E(K)(...e)
1668
1675
  }, null, 42, $t))
1669
1676
  ], 8, Kt))]),
@@ -1691,13 +1698,13 @@ var Ut = [
1691
1698
  }, {
1692
1699
  default: k(() => [De.value ? (b(), a(ht, {
1693
1700
  key: Oe.value,
1694
- "current-time": E(ae),
1701
+ "current-time": E(ie),
1695
1702
  "data-control-post-id": Ee.value ? e.item.postId : void 0,
1696
- duration: E(oe),
1703
+ duration: E(ae),
1697
1704
  layout: e.layout,
1698
1705
  "media-type": S.value ? "audio" : "video",
1699
- muted: E(se),
1700
- playing: E(ce),
1706
+ muted: E(oe),
1707
+ playing: E(se),
1701
1708
  volume: E(he),
1702
1709
  onSeek: E(de),
1703
1710
  onToggleMute: E(pe),
@@ -1821,7 +1828,10 @@ function sn(e) {
1821
1828
  additionalHeight: e.additionalHeight.value,
1822
1829
  gap: e.gap.value,
1823
1830
  minColumnWidth: e.minColumnWidth.value
1824
- }, r, a, { untilIndex: a + on }), n, a, r), t.value += 1;
1831
+ }, r, a, {
1832
+ throughIndex: e.packThroughIndex(),
1833
+ untilIndex: a + on
1834
+ }), n, a, r), t.value += 1;
1825
1835
  }));
1826
1836
  }
1827
1837
  let h = r(() => {
@@ -1834,7 +1844,10 @@ function sn(e) {
1834
1844
  if (g && l && d === s && a === h.gap && n === h.additionalHeight && o === h.minColumnWidth) {
1835
1845
  let t = 0, n = l, i = Math.min(n.length, r.length);
1836
1846
  for (; t < i && n[t] === r[t];) t += 1;
1837
- return t === r.length && t === n.length ? (g.items.length > 0 && g.items.length < r.length && m(), g) : (f(), p(_e(r, s, h, g, t, { untilBottom: e.packUntilBottom() }), r, t, g));
1847
+ return t === r.length && t === n.length ? (g.items.length > 0 && g.items.length < r.length && m(), g) : (f(), p(_e(r, s, h, g, t, {
1848
+ throughIndex: e.packThroughIndex(),
1849
+ untilBottom: e.packUntilBottom()
1850
+ }), r, t, g));
1838
1851
  }
1839
1852
  f();
1840
1853
  let _ = ge(r, s, h);
@@ -1850,7 +1863,10 @@ function sn(e) {
1850
1863
  additionalHeight: e.additionalHeight.value,
1851
1864
  gap: e.gap.value,
1852
1865
  minColumnWidth: e.minColumnWidth.value
1853
- }, a, o, { untilBottom: n }), r, o, a), t.value += 1;
1866
+ }, a, o, {
1867
+ throughIndex: e.packThroughIndex(),
1868
+ untilBottom: n
1869
+ }), r, o, a), t.value += 1;
1854
1870
  },
1855
1871
  layout: h,
1856
1872
  reservedHeight: () => c,
@@ -1904,71 +1920,85 @@ var cn = { class: "masonry-feed-shell" }, ln = ["aria-hidden", "inert"], un = {
1904
1920
  additionalHeight: (d.cardHeader?.height ?? 0) + (d.cardFooter?.height ?? 0),
1905
1921
  gap: x.value,
1906
1922
  minColumnWidth: Ee(d.masonry)
1907
- }));
1908
- function z() {
1909
- return N - k.value + C.value + De(d.masonry, C.value);
1923
+ })), z = [];
1924
+ function B() {
1925
+ let e = N - k.value + C.value + De(d.masonry, C.value), t = M.value.reduce((e, t) => {
1926
+ let n = z[t];
1927
+ return n ? Math.max(e, n.y + n.height) : e;
1928
+ }, 0);
1929
+ return Math.max(e, t);
1930
+ }
1931
+ function V() {
1932
+ return M.value.reduce((e, t) => Math.max(e, t), -1);
1910
1933
  }
1911
- let B = sn({
1934
+ let H = sn({
1912
1935
  additionalHeight: r(() => R.value.additionalHeight),
1913
1936
  gap: x,
1914
1937
  items: () => d.items,
1915
1938
  minColumnWidth: r(() => R.value.minColumnWidth),
1916
- packUntilBottom: z,
1939
+ packThroughIndex: V,
1940
+ packUntilBottom: B,
1917
1941
  width: y
1918
- }), V = B.layout, H = B.viewportIndex, U = r(() => d.leavingPostIds.size === 0 ? null : ve(d.items, y.value, R.value, V.value, (e) => d.leavingPostIds.has(d.items[e].postId), z())), W = r(() => {
1919
- let e = U.value;
1942
+ }), U = H.layout, W = H.viewportIndex, K = r(() => d.leavingPostIds.size === 0 ? null : ve(d.items, y.value, R.value, U.value, (e) => d.leavingPostIds.has(d.items[e].postId), {
1943
+ throughIndex: V(),
1944
+ untilBottom: B()
1945
+ })), q = r(() => {
1946
+ let e = K.value;
1920
1947
  return e ? {
1921
1948
  columns: e.columns,
1922
1949
  height: e.height,
1923
1950
  items: e.items
1924
- } : V.value;
1925
- }), K = r(() => {
1926
- let e = U.value;
1927
- return e ? Ce(e.items, e.retainedIndices, H.value, e.fromIndex) : null;
1928
- }), ee = r(() => (V.value, Math.max(T.value, B.reservedHeight(), d.leavingPostIds.size === 0 ? W.value.height : V.value.height))), q = r(() => ({ height: `${ee.value}px` })), J = r(() => !d.infiniteScroll || C.value > 0 && k.value + W.value.height <= C.value + 1), te = r(() => new Set(j.value)), ne = r(() => M.value.flatMap((e) => {
1929
- let t = d.items[e];
1930
- return t ? [{
1931
- fetchPriority: te.value.has(e) ? "high" : "low",
1951
+ } : U.value;
1952
+ }), J = r(() => {
1953
+ let e = K.value;
1954
+ return e ? Ce(e.items, e.retainedIndices, W.value, e.fromIndex) : null;
1955
+ }), Y = r(() => (U.value, Math.max(T.value, H.reservedHeight(), d.leavingPostIds.size === 0 ? q.value.height : U.value.height))), ee = r(() => ({ height: `${Y.value}px` })), te = r(() => !d.infiniteScroll || C.value > 0 && k.value + q.value.height <= C.value + 1), ne = r(() => new Set(j.value)), re = r(() => M.value.flatMap((e) => {
1956
+ let t = d.items[e], n = q.value.items[e];
1957
+ return !t || !n || n.width <= 0 || n.height <= 0 ? [] : [{
1958
+ fetchPriority: ne.value.has(e) ? "high" : "low",
1932
1959
  index: e,
1933
1960
  item: t
1934
- }] : [];
1961
+ }];
1935
1962
  }));
1936
- function re(e, t) {
1963
+ function ae(e, t) {
1937
1964
  return [...new Set([...e, ...t])].sort((e, t) => e - t);
1938
1965
  }
1939
- function ie(e, t) {
1966
+ function X(e, t) {
1940
1967
  return e.length === t.length && e.every((e, n) => e === t[n]);
1941
1968
  }
1942
1969
  function oe(e) {
1943
1970
  let t = {
1944
1971
  scrollTop: N - k.value,
1945
1972
  viewportHeight: C.value
1946
- }, n = K.value, r = Te(n ?? H.value, {
1973
+ }, n = J.value, r = Te(n ?? W.value, {
1947
1974
  ...t,
1948
1975
  overscan: e
1949
1976
  }).indices;
1950
- return re(r, d.leavingPostIds.size === 0 ? [] : Te(H.value, {
1977
+ return ae(r, d.leavingPostIds.size === 0 ? [] : Te(W.value, {
1951
1978
  ...t,
1952
1979
  overscan: e
1953
- }).indices);
1980
+ }).indices.filter((e) => {
1981
+ let t = d.items[e];
1982
+ return t !== void 0 && d.leavingPostIds.has(t.postId);
1983
+ }));
1954
1984
  }
1955
- function Y() {
1985
+ function Z() {
1956
1986
  let e = oe(0), t = oe(De(d.masonry, C.value));
1957
- ie(j.value, e) || (j.value = e);
1958
- let n = fe(W.value.items, e.filter((e) => {
1987
+ X(j.value, e) || (j.value = e);
1988
+ let n = fe(q.value.items, e.filter((e) => {
1959
1989
  let t = d.items[e];
1960
1990
  return t && !d.leavingPostIds.has(t.postId);
1961
1991
  }), {
1962
1992
  scrollTop: N - k.value,
1963
1993
  viewportHeight: C.value
1964
1994
  });
1965
- ie(A.value, n) || (A.value = n), ie(M.value, t) || (M.value = t);
1995
+ X(A.value, n) || (A.value = n), X(M.value, t) || (M.value = t);
1966
1996
  }
1967
- function se() {
1997
+ function ce() {
1968
1998
  if (L !== null) return;
1969
1999
  L = -1;
1970
2000
  let e = requestAnimationFrame(() => {
1971
- L = null, Y();
2001
+ L = null, Z();
1972
2002
  });
1973
2003
  L !== null && (L = e);
1974
2004
  }
@@ -1981,11 +2011,11 @@ var cn = { class: "masonry-feed-shell" }, ln = ["aria-hidden", "inert"], un = {
1981
2011
  previewStates: () => d.previewStates,
1982
2012
  visibleIndices: () => j.value
1983
2013
  });
1984
- function X(e) {
1985
- let t = W.value.items[e], n = d.items[e]?.postId;
1986
- if (!t) return {};
2014
+ function ue(e) {
2015
+ let t = q.value.items[e], n = d.items[e]?.postId;
2016
+ if (!t || t.width <= 0 || t.height <= 0) return {};
1987
2017
  let r = n !== void 0 && d.enteringPostIds.has(n), i = n !== void 0 && d.leavingPostIds.has(n), a = r || i ? le({
1988
- containerHeight: Math.max(T.value, V.value.height),
2018
+ containerHeight: Math.max(T.value, U.value.height),
1989
2019
  gap: x.value
1990
2020
  }) : 0, o = n === void 0 ? 0 : i ? d.removalDelays.get(n) ?? 0 : r ? d.entryDelays.get(n) ?? 0 : 0;
1991
2021
  return {
@@ -1995,51 +2025,53 @@ var cn = { class: "masonry-feed-shell" }, ln = ["aria-hidden", "inert"], un = {
1995
2025
  transform: `translate3d(${t.x}px, ${t.y + a}px, 0)`
1996
2026
  };
1997
2027
  }
1998
- function Z() {
2028
+ function de() {
1999
2029
  let e = p.value;
2000
2030
  if (!e) return;
2001
2031
  N = e.scrollTop, C.value = e.clientHeight;
2002
2032
  let t = e.ownerDocument.defaultView?.getComputedStyle(e), n = (Number.parseFloat(t?.paddingTop ?? "") || 0) + (Number.parseFloat(t?.paddingBottom ?? "") || 0);
2003
2033
  T.value = Math.max(0, e.clientHeight - n);
2004
2034
  let r = g.value;
2005
- r && (k.value = r.getBoundingClientRect().top - e.getBoundingClientRect().top + e.scrollTop, Y());
2035
+ r && (k.value = r.getBoundingClientRect().top - e.getBoundingClientRect().top + e.scrollTop, Z());
2006
2036
  }
2007
- function ue(e) {
2037
+ function Q(e) {
2008
2038
  let t = e.ownerDocument.documentElement.clientWidth;
2009
- y.value = e.clientWidth, x.value = Math.min(fn, Math.max(dn, t * .0075)), Z();
2039
+ y.value = e.clientWidth, x.value = Math.min(fn, Math.max(dn, t * .0075)), de();
2010
2040
  }
2011
- function de(e) {
2041
+ function pe(e) {
2012
2042
  let t = e.currentTarget;
2013
- t && (N = t.scrollTop, B.ensurePackedThrough(z()), se(), Date.now() >= l && !d.loadMoreLocked && d.infiniteScroll && ce(t) && f("loadMore"));
2043
+ t && (N = t.scrollTop, H.ensurePackedThrough(B()), ce(), Date.now() >= l && !d.loadMoreLocked && d.infiniteScroll && se(t) && f("loadMore"));
2014
2044
  }
2015
- function Q() {
2045
+ function me() {
2016
2046
  let e = p.value;
2017
- Date.now() >= l && !d.loadMoreLocked && e && ce(e) && f("loadMore");
2047
+ Date.now() >= l && !d.loadMoreLocked && e && se(e) && f("loadMore");
2018
2048
  }
2019
2049
  O(() => d.items.length, (e, t) => {
2020
2050
  e > 0 && e < t && (l = Date.now() + pn);
2021
2051
  });
2022
- function pe() {
2052
+ function he() {
2023
2053
  return p.value;
2024
2054
  }
2025
2055
  return O(g, (e) => {
2026
- P?.disconnect(), P = null, I !== null && cancelAnimationFrame(I), e && (ue(e), !(typeof ResizeObserver > "u") && (P = new ResizeObserver(([t]) => {
2056
+ P?.disconnect(), P = null, I !== null && cancelAnimationFrame(I), e && (Q(e), !(typeof ResizeObserver > "u") && (P = new ResizeObserver(([t]) => {
2027
2057
  let n = t?.contentRect.width ?? e.clientWidth;
2028
2058
  Math.abs(n - y.value) < .5 || (I = requestAnimationFrame(() => {
2029
- I = null, ue(e);
2059
+ I = null, Q(e);
2030
2060
  }));
2031
2061
  }), P.observe(e)));
2032
2062
  }), O(p, (e) => {
2033
- F?.disconnect(), F = null, e && (Z(), !(typeof ResizeObserver > "u") && (F = new ResizeObserver(Z), F.observe(e)));
2034
- }), O([
2035
- V,
2036
- W,
2063
+ F?.disconnect(), F = null, e && (de(), !(typeof ResizeObserver > "u") && (F = new ResizeObserver(de), F.observe(e)));
2064
+ }), O(q, (e) => {
2065
+ z = e.items;
2066
+ }, { flush: "sync" }), O([
2067
+ U,
2068
+ q,
2037
2069
  () => d.masonry
2038
- ], Y, { flush: "post" }), v(() => {
2070
+ ], Z, { flush: "post" }), v(() => {
2039
2071
  P?.disconnect(), F?.disconnect(), I !== null && cancelAnimationFrame(I), L !== null && cancelAnimationFrame(L);
2040
2072
  }), n({
2041
- getScrollElement: pe,
2042
- loadIfNearBottom: Q
2073
+ getScrollElement: he,
2074
+ loadIfNearBottom: me
2043
2075
  }), (n, r) => (b(), s("div", cn, [
2044
2076
  c("main", {
2045
2077
  id: m,
@@ -2049,14 +2081,14 @@ var cn = { class: "masonry-feed-shell" }, ln = ["aria-hidden", "inert"], un = {
2049
2081
  "data-layout-mode": "masonry",
2050
2082
  "aria-hidden": t.suspended || void 0,
2051
2083
  inert: t.suspended || void 0,
2052
- onScrollPassive: de
2084
+ onScrollPassive: pe
2053
2085
  }, [c("section", {
2054
2086
  ref_key: "masonryElement",
2055
2087
  ref: g,
2056
2088
  class: h(["masonry", { "masonry--ready": y.value > 0 }]),
2057
- style: _(q.value),
2089
+ style: _(ee.value),
2058
2090
  "aria-label": "Media gallery"
2059
- }, [(b(!0), s(e, null, S(ne.value, ({ fetchPriority: e, item: n, index: r }) => (b(), a(rn, {
2091
+ }, [(b(!0), s(e, null, S(re.value, ({ fetchPriority: e, item: n, index: r }) => (b(), a(rn, {
2060
2092
  key: n.postId,
2061
2093
  class: "masonry-item",
2062
2094
  entering: t.enteringPostIds.has(n.postId),
@@ -2065,10 +2097,10 @@ var cn = { class: "masonry-feed-shell" }, ln = ["aria-hidden", "inert"], un = {
2065
2097
  "card-footer": t.cardFooter,
2066
2098
  "card-header": t.cardHeader,
2067
2099
  "media-card": t.mediaCard,
2068
- "in-viewport": te.value.has(r),
2100
+ "in-viewport": ne.value.has(r),
2069
2101
  index: r,
2070
2102
  item: n,
2071
- "item-style": X(r),
2103
+ "item-style": ue(r),
2072
2104
  interactive: "",
2073
2105
  layout: "masonry",
2074
2106
  "loaded-count": t.items.length,
@@ -2099,7 +2131,7 @@ var cn = { class: "masonry-feed-shell" }, ln = ["aria-hidden", "inert"], un = {
2099
2131
  "onReady",
2100
2132
  "onError"
2101
2133
  ]))), 128))], 6)], 42, ln),
2102
- t.feedFooter || t.isLoadingMore || t.nextPageError || t.hasNext && J.value || !t.hasNext && t.canRetryEnd ? (b(), s("div", un, [u(ae, {
2134
+ t.feedFooter || t.isLoadingMore || t.nextPageError || t.hasNext && te.value || !t.hasNext && t.canRetryEnd ? (b(), s("div", un, [u(ie, {
2103
2135
  actions: t.feedFooterActions,
2104
2136
  "can-retry-end": t.canRetryEnd,
2105
2137
  "feed-footer": t.feedFooter,
@@ -2107,7 +2139,7 @@ var cn = { class: "masonry-feed-shell" }, ln = ["aria-hidden", "inert"], un = {
2107
2139
  "has-next": t.hasNext,
2108
2140
  "is-loading": t.isLoadingMore,
2109
2141
  "load-more-locked": t.loadMoreLocked,
2110
- "show-load-more": J.value,
2142
+ "show-load-more": te.value,
2111
2143
  state: t.state,
2112
2144
  onLoadMore: r[0] ||= (e) => f("loadMore"),
2113
2145
  onRetryEnd: r[1] ||= (e) => f("retryEnd")
@@ -2123,7 +2155,7 @@ var cn = { class: "masonry-feed-shell" }, ln = ["aria-hidden", "inert"], un = {
2123
2155
  "state"
2124
2156
  ])])) : o("", !0),
2125
2157
  u(Ie, {
2126
- "content-size": W.value.height,
2158
+ "content-size": q.value.height,
2127
2159
  "controls-id": m,
2128
2160
  "scroll-element": p.value,
2129
2161
  suspended: t.suspended
@@ -2227,7 +2259,7 @@ var _n = ["aria-label"], vn = /* @__PURE__ */ d({
2227
2259
  }), z = r(() => {
2228
2260
  let e = F.value;
2229
2261
  return e === void 0 ? "loading" : u.previewStates.get(G(e, R.value)) ?? "loading";
2230
- }), B = r(() => I.value ? W(I.value, R.value) : null), U = r(() => B.value ? V(B.value, u.mediaSource ?? "preview") : null), K = r(() => z.value === "ready" && !!(U.value && L(U.value.type, U.value.src))), ee = r(() => [
2262
+ }), B = r(() => I.value ? W(I.value, R.value) : null), U = r(() => B.value ? V(B.value, u.mediaSource ?? "preview") : null), K = r(() => z.value === "ready" && !!(U.value && L(U.value.type, U.value.src))), q = r(() => [
2231
2263
  F.value,
2232
2264
  R.value,
2233
2265
  u.items.length,
@@ -2235,47 +2267,47 @@ var _n = ["aria-label"], vn = /* @__PURE__ */ d({
2235
2267
  u.reelAutoAdvance.enabled,
2236
2268
  u.reelAutoAdvance.includePostItems,
2237
2269
  u.reelAutoAdvance.intervalMs
2238
- ].join(":")), q = r(() => {
2270
+ ].join(":")), J = r(() => {
2239
2271
  let e = I.value, t = !!(e && u.reelAutoAdvance.includePostItems && R.value < H(e).length - 1), n = u.reelAutoAdvance.intervalMs / 1e3;
2240
2272
  return `Auto advance to the next ${t ? "post item" : "post"} in ${n}s`;
2241
- }), J = r(() => u.reelAutoAdvance.enabled && u.reelForward.status === "idle" && I.value !== void 0 && z.value !== "loading" && !K.value), te = r(() => !u.infiniteScroll || u.items.length <= 1), ne = r(() => u.reelForward.status === "loading" ? "Loading the next media…" : u.reelForward.status === "error" ? "Unable to load the next media." : "You reached the end of this feed.");
2242
- function re(e) {
2273
+ }), Y = r(() => u.reelAutoAdvance.enabled && u.reelForward.status === "idle" && I.value !== void 0 && z.value !== "loading" && !K.value), ee = r(() => !u.infiniteScroll || u.items.length <= 1), te = r(() => u.reelForward.status === "loading" ? "Loading the next media…" : u.reelForward.status === "error" ? "Unable to load the next media." : "You reached the end of this feed.");
2274
+ function ne(e) {
2243
2275
  return { gridRow: `${e + 1}` };
2244
2276
  }
2245
- function ie(e) {
2277
+ function re(e) {
2246
2278
  let t = k || e.clientHeight;
2247
2279
  return t <= 0 || u.items.length === 0 ? 0 : Math.min(u.items.length - 1, Math.max(0, Math.round(e.scrollTop / t)));
2248
2280
  }
2249
- function oe(e) {
2281
+ function ae(e) {
2250
2282
  let t = e.currentTarget;
2251
2283
  if (!t) return;
2252
2284
  let n = k || t.clientHeight, r = Math.max(0, u.items.length - 1) * n;
2253
- C.value = u.items.length > 0 && t.scrollTop > r + 1, D.value || (x.value = ie(t)), Date.now() >= l && !u.loadMoreLocked && u.infiniteScroll && ce(t) && d("loadMore");
2285
+ C.value = u.items.length > 0 && t.scrollTop > r + 1, D.value || (x.value = re(t)), Date.now() >= l && !u.loadMoreLocked && u.infiniteScroll && se(t) && d("loadMore");
2254
2286
  }
2255
- function Y() {
2287
+ function X() {
2256
2288
  let e = f.value;
2257
- e && (C.value = !1, Z(!0), k = e.clientHeight, e.scrollTop = x.value * k, j !== null && cancelAnimationFrame(j), j = requestAnimationFrame(() => {
2289
+ e && (C.value = !1, ce(!0), k = e.clientHeight, e.scrollTop = x.value * k, j !== null && cancelAnimationFrame(j), j = requestAnimationFrame(() => {
2258
2290
  e.scrollTop = x.value * e.clientHeight, k = e.clientHeight, j = null;
2259
- }), se());
2291
+ }), oe());
2260
2292
  }
2261
- function se() {
2293
+ function oe() {
2262
2294
  M !== null && clearTimeout(M), M = setTimeout(() => {
2263
2295
  M = null;
2264
2296
  let e = f.value;
2265
- e && (k = e.clientHeight, e.scrollTop = x.value * k), Z(!1);
2297
+ e && (k = e.clientHeight, e.scrollTop = x.value * k), ce(!1);
2266
2298
  }, 120);
2267
2299
  }
2268
- function X() {
2269
- Z(!0);
2300
+ function Z() {
2301
+ ce(!0);
2270
2302
  let e = f.value;
2271
- e && (k = e.clientHeight, e.scrollTop = x.value * k), se();
2303
+ e && (k = e.clientHeight, e.scrollTop = x.value * k), oe();
2272
2304
  }
2273
- function Z(e) {
2305
+ function ce(e) {
2274
2306
  D.value = e, f.value?.toggleAttribute("data-resizing", e);
2275
2307
  }
2276
2308
  function le() {
2277
2309
  let e = f.value;
2278
- Date.now() >= l && !u.loadMoreLocked && e && ce(e) && d("loadMore");
2310
+ Date.now() >= l && !u.loadMoreLocked && e && se(e) && d("loadMore");
2279
2311
  }
2280
2312
  O(() => u.items.length, (e, t) => {
2281
2313
  e > 0 && e < t && (l = Date.now() + Cn);
@@ -2334,16 +2366,16 @@ var _n = ["aria-label"], vn = /* @__PURE__ */ d({
2334
2366
  !u.reelAutoAdvance.enabled || e !== F.value || t !== R.value || !K.value || _e();
2335
2367
  }
2336
2368
  return O(f, (e) => {
2337
- A?.disconnect(), A = null, e && (k = e.clientHeight, !(typeof ResizeObserver > "u") && (A = new ResizeObserver(Y), A.observe(e)));
2369
+ A?.disconnect(), A = null, e && (k = e.clientHeight, !(typeof ResizeObserver > "u") && (A = new ResizeObserver(X), A.observe(e)));
2338
2370
  }), O(() => u.items.length, async (e) => {
2339
2371
  let t = u.initialPostId, n = t == null ? -1 : u.items.findIndex(({ postId: e }) => e === t);
2340
- x.value = n >= 0 ? n : Math.min(x.value, Math.max(0, e - 1)), await m(), Y();
2372
+ x.value = n >= 0 ? n : Math.min(x.value, Math.max(0, e - 1)), await m(), X();
2341
2373
  }), O(F, (e) => {
2342
2374
  e !== void 0 && d("activeChange", e);
2343
2375
  }, { immediate: !0 }), y(() => {
2344
- window.addEventListener("resize", X), window.addEventListener("orientationchange", X), g >= 0 && m(Y);
2376
+ window.addEventListener("resize", Z), window.addEventListener("orientationchange", Z), g >= 0 && m(X);
2345
2377
  }), v(() => {
2346
- window.removeEventListener("resize", X), window.removeEventListener("orientationchange", X), A?.disconnect(), j !== null && cancelAnimationFrame(j), M !== null && clearTimeout(M);
2378
+ window.removeEventListener("resize", Z), window.removeEventListener("orientationchange", Z), A?.disconnect(), j !== null && cancelAnimationFrame(j), M !== null && clearTimeout(M);
2347
2379
  }), n({
2348
2380
  activeIndex: x,
2349
2381
  activePostId: F,
@@ -2388,7 +2420,7 @@ var _n = ["aria-label"], vn = /* @__PURE__ */ d({
2388
2420
  class: "gallery-shell reel-feed",
2389
2421
  "data-active-post-id": F.value,
2390
2422
  "data-active-media-index": R.value,
2391
- onScrollPassive: oe
2423
+ onScrollPassive: ae
2392
2424
  }, [t.reelForward.status === "idle" ? (b(), s("section", {
2393
2425
  key: 1,
2394
2426
  class: "reel-track",
@@ -2403,7 +2435,7 @@ var _n = ["aria-label"], vn = /* @__PURE__ */ d({
2403
2435
  "fetch-priority": e,
2404
2436
  index: i,
2405
2437
  item: n,
2406
- "item-style": re(i),
2438
+ "item-style": ne(i),
2407
2439
  "media-card": t.mediaCard,
2408
2440
  layout: "reel",
2409
2441
  "loaded-count": t.items.length,
@@ -2443,12 +2475,12 @@ var _n = ["aria-label"], vn = /* @__PURE__ */ d({
2443
2475
  class: "reel-forward-status",
2444
2476
  role: t.reelForward.status === "error" ? "alert" : "status",
2445
2477
  "data-status": t.reelForward.status
2446
- }, [c("p", null, T(ne.value), 1), t.reelForward.status === "error" || t.reelForward.status === "end" ? (b(), s("button", {
2478
+ }, [c("p", null, T(te.value), 1), t.reelForward.status === "error" || t.reelForward.status === "end" ? (b(), s("button", {
2447
2479
  key: 0,
2448
2480
  class: "reel-forward-retry",
2449
2481
  type: "button",
2450
2482
  onClick: r[0] ||= (e) => d("retryForward")
2451
- }, " Retry ")) : o("", !0)], 8, xn)), t.reelForward.status === "idle" ? (b(), a(ae, {
2483
+ }, " Retry ")) : o("", !0)], 8, xn)), t.reelForward.status === "idle" ? (b(), a(ie, {
2452
2484
  key: 2,
2453
2485
  actions: t.feedFooterActions,
2454
2486
  "can-retry-end": t.canRetryEnd,
@@ -2457,7 +2489,7 @@ var _n = ["aria-label"], vn = /* @__PURE__ */ d({
2457
2489
  "has-next": t.hasNext,
2458
2490
  "is-loading": t.isLoadingMore,
2459
2491
  "load-more-locked": t.loadMoreLocked,
2460
- "show-load-more": te.value,
2492
+ "show-load-more": ee.value,
2461
2493
  state: t.state,
2462
2494
  onLoadMore: r[2] ||= (e) => d("loadMore"),
2463
2495
  onRetryEnd: r[3] ||= (e) => d("retryEnd")
@@ -2499,10 +2531,10 @@ var _n = ["aria-label"], vn = /* @__PURE__ */ d({
2499
2531
  "style",
2500
2532
  "total"
2501
2533
  ])) : o("", !0),
2502
- J.value ? (b(), a(vn, {
2503
- key: ee.value,
2534
+ Y.value ? (b(), a(vn, {
2535
+ key: q.value,
2504
2536
  "duration-ms": t.reelAutoAdvance.intervalMs,
2505
- label: q.value,
2537
+ label: J.value,
2506
2538
  onComplete: _e
2507
2539
  }, null, 8, ["duration-ms", "label"])) : o("", !0)
2508
2540
  ], 2));
@@ -2902,7 +2934,7 @@ var Ln = 35, Rn = 420, zn = /* @__PURE__ */ d({
2902
2934
  "retryForward"
2903
2935
  ],
2904
2936
  setup(t, { expose: i, emit: c }) {
2905
- let l = t, d = c, f = w(null), p = w(null), h = w(null), g = w(null), _ = w(!1), y = w(/* @__PURE__ */ new Set()), x = w(/* @__PURE__ */ new Map()), S = w(/* @__PURE__ */ new Set()), C = w(/* @__PURE__ */ new Map()), T = r(() => Object.freeze([...l.state.items])), D = r(() => ee(l.state, T.value)), { markMasonryFullyVisible: A, markMasonryVisible: j, markPreviewError: M, markPreviewReady: N, markReelError: P, markReelReady: F, originalStates: I, previewStates: L, reelStates: R, resetMediaLifecycle: z } = Mn(l.state, {
2937
+ let l = t, d = c, f = w(null), p = w(null), h = w(null), g = w(null), _ = w(!1), y = w(/* @__PURE__ */ new Set()), x = w(/* @__PURE__ */ new Map()), S = w(/* @__PURE__ */ new Set()), C = w(/* @__PURE__ */ new Map()), T = r(() => Object.freeze([...l.state.items])), D = r(() => q(l.state, T.value)), { markMasonryFullyVisible: A, markMasonryVisible: j, markPreviewError: M, markPreviewReady: N, markReelError: P, markReelReady: F, originalStates: I, previewStates: L, reelStates: R, resetMediaLifecycle: z } = Mn(l.state, {
2906
2938
  fullyVisible: (e) => d("mediaFullyVisible", e),
2907
2939
  ready: (e) => d("mediaReady", e),
2908
2940
  reelChange: (e) => d("reelMediaChange", e),
@@ -2911,71 +2943,71 @@ var Ln = 35, Rn = 420, zn = /* @__PURE__ */ d({
2911
2943
  function K() {
2912
2944
  return typeof window.matchMedia == "function" && window.matchMedia("(prefers-reduced-motion: reduce)").matches;
2913
2945
  }
2914
- function q() {
2946
+ function J() {
2915
2947
  V !== null && cancelAnimationFrame(V), V = requestAnimationFrame(() => {
2916
2948
  V = requestAnimationFrame(() => {
2917
2949
  V = null, y.value = /* @__PURE__ */ new Set();
2918
2950
  });
2919
2951
  });
2920
2952
  }
2921
- function J(e, t) {
2953
+ function Y(e, t) {
2922
2954
  let n = l.state.items.find((t) => t.postId === e);
2923
2955
  if (!n) return;
2924
2956
  let r = U(n, t);
2925
2957
  (l.state.mediaIndices.get(e) ?? 0) !== r && (l.state.mediaIndices = new Map(l.state.mediaIndices).set(e, r));
2926
2958
  }
2927
- async function te() {
2959
+ async function ee() {
2928
2960
  await m(), (l.state.layout === "reel" || l.state.reelOrigin === "masonry" ? p.value : f.value)?.loadIfNearBottom();
2929
2961
  }
2930
- function ne(e) {
2962
+ function te(e) {
2931
2963
  return l.state.isLoading || l.state.items.length === 0 || l.state.layout !== "reel" && l.state.reelOrigin !== "masonry" ? !1 : p.value?.changeActiveMedia?.(e) ?? !1;
2932
2964
  }
2933
- function re(e) {
2965
+ function ne(e) {
2934
2966
  return l.state.isLoading || l.state.items.length === 0 || l.state.layout !== "reel" && l.state.reelOrigin !== "masonry" ? !1 : p.value?.moveActivePost?.(e) ?? !1;
2935
2967
  }
2936
- function ie(e) {
2968
+ function re(e) {
2937
2969
  if (!(l.state.layout === "reel" || l.state.reelOrigin === "masonry") || l.state.isLoading) return "reel-inactive";
2938
2970
  let t = l.state.items.find((t) => t.postId === e.postId);
2939
2971
  if (!t) return "not-found";
2940
2972
  let n = H(t).findIndex((t) => t.mediaId === e.mediaId);
2941
2973
  return n < 0 ? "not-found" : p.value?.navigateToItem?.(e.postId, n) ? "navigated" : "reel-inactive";
2942
2974
  }
2943
- function ae() {
2975
+ function ie() {
2944
2976
  return l.state.layout !== "masonry" || l.state.reelOrigin === "masonry" ? null : f.value?.getScrollElement?.() ?? null;
2945
2977
  }
2946
- function oe(e, t) {
2978
+ function ae(e, t) {
2947
2979
  W = e, G = t === "keyboard", d("openReel", e), m(() => h.value?.focus());
2948
2980
  }
2949
- function Y(e) {
2981
+ function X(e) {
2950
2982
  let t = g.value?.querySelectorAll(".masonry-feed [data-post-id]") ?? [];
2951
2983
  return Array.from(t).find((t) => t.dataset.postId === String(e)) ?? null;
2952
2984
  }
2953
- function ce(e, t) {
2985
+ function se(e, t) {
2954
2986
  if (l.state.layout !== "masonry" || l.state.reelOrigin !== null || K()) return 0;
2955
- let n = [...new Set(e)], r = n.filter(Y);
2987
+ let n = [...new Set(e)], r = n.filter(X);
2956
2988
  if (r.length === 0) return 0;
2957
2989
  let i = new Map(C.value), a = t?.staggerMs ?? Ln;
2958
2990
  return r.forEach((e, t) => {
2959
2991
  i.set(e, t * a);
2960
2992
  }), y.value = new Set([...y.value].filter((e) => !r.includes(e))), S.value = new Set([...S.value, ...n]), C.value = i, Rn + (r.length - 1) * a;
2961
2993
  }
2962
- function X(e, t) {
2963
- let n = Y(e), r = n?.querySelector(".media-card-activator") ?? n;
2994
+ function Z(e, t) {
2995
+ let n = X(e), r = n?.querySelector(".media-card-activator") ?? n;
2964
2996
  r && (r.classList.toggle("media-card-focus-silent", !t), t || r.addEventListener("blur", () => {
2965
2997
  r.classList.remove("media-card-focus-silent");
2966
2998
  }, { once: !0 }), r?.focus({ preventScroll: !0 }));
2967
2999
  }
2968
- function Z() {
3000
+ function ce() {
2969
3001
  l.state.reelOrigin === "masonry" && (W ??= l.state.activeReelPostId, _.value = !0, d("closeReel"));
2970
3002
  }
2971
3003
  function le() {
2972
3004
  let e = W, t = G;
2973
3005
  _.value = !1, W = null, G = !1, m(() => {
2974
- e !== null && X(e, t);
3006
+ e !== null && Z(e, t);
2975
3007
  });
2976
3008
  }
2977
3009
  return In({
2978
- closeMasonryReel: Z,
3010
+ closeMasonryReel: ce,
2979
3011
  element: () => g.value,
2980
3012
  isReelLeaving: () => _.value,
2981
3013
  reelRenderer: () => p.value,
@@ -2993,17 +3025,17 @@ var Ln = 35, Rn = 420, zn = /* @__PURE__ */ d({
2993
3025
  t !== void 0 && i.set(e, t);
2994
3026
  }), n.forEach((e, t) => {
2995
3027
  i.set(e, t * Ln);
2996
- }), x.value = i, y.value = new Set([...y.value, ...n]), q();
3028
+ }), x.value = i, y.value = new Set([...y.value, ...n]), J();
2997
3029
  }, { flush: "sync" }), v(() => {
2998
3030
  V !== null && cancelAnimationFrame(V);
2999
3031
  }), i({
3000
- changeActiveReelMedia: ne,
3001
- getAutoScrollElement: ae,
3002
- loadIfNearBottom: te,
3003
- moveActiveReelPost: re,
3004
- navigateToReelItem: ie,
3032
+ changeActiveReelMedia: te,
3033
+ getAutoScrollElement: ie,
3034
+ loadIfNearBottom: ee,
3035
+ moveActiveReelPost: ne,
3036
+ navigateToReelItem: re,
3005
3037
  resetMediaLifecycle: z,
3006
- startItemRemoval: ce,
3038
+ startItemRemoval: se,
3007
3039
  transitionActiveReelMedia: (e) => p.value?.transitionActiveMedia?.(e) ?? Promise.resolve(!1),
3008
3040
  transitionActiveReelPost: (e) => p.value?.transitionActivePost?.(e) ?? Promise.resolve(!1)
3009
3041
  }), (r, i) => (b(), s("div", {
@@ -3045,12 +3077,12 @@ var Ln = 35, Rn = 420, zn = /* @__PURE__ */ d({
3045
3077
  onCloseInfoSheet: i[1] ||= (e) => d("reelInfoSheetChange", !1),
3046
3078
  onError: E(P),
3047
3079
  onLoadMore: i[2] ||= (e) => d("loadMore"),
3048
- onMediaChange: J,
3080
+ onMediaChange: Y,
3049
3081
  onReady: E(F),
3050
3082
  onRetryEnd: i[3] ||= (e) => d("retryEnd"),
3051
3083
  onRetryForward: i[4] ||= (e) => d("retryForward"),
3052
3084
  onReelAudioChange: i[5] ||= (e) => d("reelAudioChange", e)
3053
- }, null, 8, /* @__PURE__ */ "can-retry-end.has-next.card-footer.card-header.feed-footer.feed-footer-actions.forward-index.forward-item.media-card.infinite-scroll.is-loading-more.items.load-more-locked.media-source.media-indices.initial-post-id.info-sheet.info-sheet-enabled.info-sheet-overlay.next-page-error.preview-states.reel-auto-advance.reel-audio-state.reel-forward.state.total.onError.onReady".split("."))) : t.state.error || t.state.isLoading || t.state.items.length === 0 && t.state.reelForward.status === "idle" ? (b(), a(se, {
3085
+ }, null, 8, /* @__PURE__ */ "can-retry-end.has-next.card-footer.card-header.feed-footer.feed-footer-actions.forward-index.forward-item.media-card.infinite-scroll.is-loading-more.items.load-more-locked.media-source.media-indices.initial-post-id.info-sheet.info-sheet-enabled.info-sheet-overlay.next-page-error.preview-states.reel-auto-advance.reel-audio-state.reel-forward.state.total.onError.onReady".split("."))) : t.state.error || t.state.isLoading || t.state.items.length === 0 && t.state.reelForward.status === "idle" ? (b(), a(oe, {
3054
3086
  key: 1,
3055
3087
  actions: t.feedFooterActions,
3056
3088
  "can-retry-end": t.canRetryEnd,
@@ -3088,11 +3120,11 @@ var Ln = 35, Rn = 420, zn = /* @__PURE__ */ d({
3088
3120
  suspended: t.state.reelOrigin === "masonry" || _.value,
3089
3121
  state: D.value,
3090
3122
  total: t.state.total,
3091
- onActivate: oe,
3123
+ onActivate: ae,
3092
3124
  onError: E(M),
3093
3125
  onFullyVisible: E(A),
3094
3126
  onLoadMore: i[8] ||= (e) => d("loadMore"),
3095
- onMediaChange: J,
3127
+ onMediaChange: Y,
3096
3128
  onReady: E(N),
3097
3129
  onRetryEnd: i[9] ||= (e) => d("retryEnd"),
3098
3130
  onVisible: E(j)
@@ -3143,7 +3175,7 @@ var Ln = 35, Rn = 420, zn = /* @__PURE__ */ d({
3143
3175
  onCloseInfoSheet: i[11] ||= (e) => d("reelInfoSheetChange", !1),
3144
3176
  onError: E(P),
3145
3177
  onLoadMore: i[12] ||= (e) => d("loadMore"),
3146
- onMediaChange: J,
3178
+ onMediaChange: Y,
3147
3179
  onReady: E(F),
3148
3180
  onRetryEnd: i[13] ||= (e) => d("retryEnd"),
3149
3181
  onRetryForward: i[14] ||= (e) => d("retryForward"),
@@ -4987,7 +5019,7 @@ var Di = class {
4987
5019
  this.restoreController?.abort(), this.restoreController = null, this.autoScroll.destroy(), this.fillController.destroy(), this.cancelRequest(), this.reelForward.reset(), this.reelRemoval.reset(), this.exactMediaRemoval.reset(), this.itemRemoval.destroy(), this.removalReconciliation.reset(), this.responsiveLayout.destroy(), this.stopStateWatcher?.(), this.stopStateWatcher = null, this.app?.unmount(), this.app = null, this.surface = null;
4988
5020
  }
4989
5021
  getState() {
4990
- return ee(this.state);
5022
+ return q(this.state);
4991
5023
  }
4992
5024
  getReelAudioState() {
4993
5025
  return this.reelAudio.get();
@@ -5244,7 +5276,7 @@ var Di = class {
5244
5276
  }
5245
5277
  startStateNotifications() {
5246
5278
  let e = this.options.onStateChange;
5247
- !e || this.stopStateWatcher || (e(ee(this.state, this.notificationItems.value)), this.stopStateWatcher = O(() => ee(this.state, this.notificationItems.value), (t) => e(t), { flush: "post" }));
5279
+ !e || this.stopStateWatcher || (e(q(this.state, this.notificationItems.value)), this.stopStateWatcher = O(() => q(this.state, this.notificationItems.value), (t) => e(t), { flush: "post" }));
5248
5280
  }
5249
5281
  setCurrentCursor(e) {
5250
5282
  this.lastLoadedCursor = e, this.state.current = e;