@wyxos/vibe 5.17.2 → 5.18.0
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/components/VibeSurface.vue.d.ts +1 -0
- package/lib/core/feed.d.ts +1 -0
- package/lib/core/reelViewer.d.ts +4 -0
- package/lib/index.cjs +1 -1
- package/lib/index.js +91 -85
- package/lib/instance.d.ts +49 -0
- package/lib/types.d.ts +1 -46
- package/package.json +1 -1
package/lib/index.js
CHANGED
|
@@ -28,7 +28,7 @@ function R(e) {
|
|
|
28
28
|
width: e.width
|
|
29
29
|
};
|
|
30
30
|
}
|
|
31
|
-
function
|
|
31
|
+
function z(e, t) {
|
|
32
32
|
if (t === "preview" && e.preview) {
|
|
33
33
|
let t = I(e.type, e.src) === "audio" ? I(e.preview.type, e.preview.src) : e.preview.type ?? e.type;
|
|
34
34
|
return {
|
|
@@ -41,30 +41,30 @@ function ee(e, t) {
|
|
|
41
41
|
type: e.mobile.type ?? e.type
|
|
42
42
|
} : R(e);
|
|
43
43
|
}
|
|
44
|
-
function
|
|
44
|
+
function B(e) {
|
|
45
45
|
let t = e.preview;
|
|
46
46
|
return !t?.src || t.src === e.src || I(t.type, t.src) !== "image" ? null : {
|
|
47
47
|
...t,
|
|
48
48
|
type: "image"
|
|
49
49
|
};
|
|
50
50
|
}
|
|
51
|
-
function
|
|
51
|
+
function ee(e, t) {
|
|
52
52
|
return I(e.type, e.src) === "audio" ? t === "mobile" && e.mobile && I(e.mobile.type, e.mobile.src) === "audio" ? {
|
|
53
53
|
...e.mobile,
|
|
54
54
|
type: "audio"
|
|
55
55
|
} : {
|
|
56
56
|
...R(e),
|
|
57
57
|
type: "audio"
|
|
58
|
-
} :
|
|
58
|
+
} : z(e, t);
|
|
59
59
|
}
|
|
60
|
-
function
|
|
60
|
+
function V(e) {
|
|
61
61
|
return [e, ...e.items];
|
|
62
62
|
}
|
|
63
|
-
function
|
|
63
|
+
function H(e, t) {
|
|
64
64
|
return Math.min(e.items.length, Math.max(0, t));
|
|
65
65
|
}
|
|
66
|
-
function
|
|
67
|
-
return
|
|
66
|
+
function te(e, t) {
|
|
67
|
+
return V(e)[H(e, t)] ?? e;
|
|
68
68
|
}
|
|
69
69
|
function U(e, t) {
|
|
70
70
|
return `${String(e)}:${t}`;
|
|
@@ -597,12 +597,12 @@ var Me = ["aria-hidden"], Ne = [
|
|
|
597
597
|
function R(e) {
|
|
598
598
|
!o.value || e.pointerId !== d || (e.currentTarget.releasePointerCapture?.(e.pointerId), d = null, o.value = !1, C && (C = !1, M("content")), k());
|
|
599
599
|
}
|
|
600
|
-
function
|
|
600
|
+
function z(e) {
|
|
601
601
|
if (!E.value) return;
|
|
602
602
|
let n = t.scrollElement?.clientHeight ?? 0, r = t.scrollElement?.scrollTop ?? 0, i = e.key === "ArrowUp" ? r - Fe : e.key === "ArrowDown" ? r + Fe : e.key === "PageUp" ? r - n : e.key === "PageDown" ? r + n : e.key === "Home" ? 0 : e.key === "End" ? a.value.maximumScrollPosition : null;
|
|
603
603
|
i !== null && (e.preventDefault(), A(), P(i));
|
|
604
604
|
}
|
|
605
|
-
function
|
|
605
|
+
function B(e) {
|
|
606
606
|
if (S?.disconnect(), !(typeof ResizeObserver > "u")) {
|
|
607
607
|
S = new ResizeObserver(() => M("content"));
|
|
608
608
|
for (let t of e.children) S.observe(t);
|
|
@@ -611,8 +611,8 @@ var Me = ["aria-hidden"], Ne = [
|
|
|
611
611
|
return O(() => t.scrollElement, (e, t) => {
|
|
612
612
|
t?.removeEventListener("scroll", N), x?.disconnect(), x = null, S?.disconnect(), S = null, T?.disconnect(), T = null, e?.addEventListener("scroll", N, { passive: !0 }), e && typeof ResizeObserver < "u" && (T = new ResizeObserver(() => {
|
|
613
613
|
A(), M("resize");
|
|
614
|
-
}), T.observe(e),
|
|
615
|
-
|
|
614
|
+
}), T.observe(e), B(e)), e && typeof MutationObserver < "u" && (x = new MutationObserver(() => {
|
|
615
|
+
B(e), M("content");
|
|
616
616
|
}), x.observe(e, { childList: !0 })), m(() => M("resize"));
|
|
617
617
|
}, { immediate: !0 }), O(() => t.contentSize, () => {
|
|
618
618
|
m(() => M("content"));
|
|
@@ -640,7 +640,7 @@ var Me = ["aria-hidden"], Ne = [
|
|
|
640
640
|
role: "scrollbar",
|
|
641
641
|
style: _(D.value),
|
|
642
642
|
tabindex: E.value ? 0 : -1,
|
|
643
|
-
onKeydown:
|
|
643
|
+
onKeydown: z,
|
|
644
644
|
onPointercancel: R,
|
|
645
645
|
onPointerdown: I,
|
|
646
646
|
onPointermove: L,
|
|
@@ -779,7 +779,7 @@ var nt = /* @__PURE__ */ d({
|
|
|
779
779
|
total: {}
|
|
780
780
|
},
|
|
781
781
|
setup(e) {
|
|
782
|
-
let t = e, n = r(() =>
|
|
782
|
+
let t = e, n = r(() => H(t.item, t.mediaIndex)), i = r(() => V(t.item)), o = r(() => te(t.item, n.value)), c = r(() => ({
|
|
783
783
|
height: `${t.region.height}px`,
|
|
784
784
|
paddingBlock: t.style?.paddingY === void 0 ? void 0 : `${t.style.paddingY}px`,
|
|
785
785
|
paddingInline: t.style?.paddingX === void 0 ? void 0 : `${t.style.paddingX}px`
|
|
@@ -1000,7 +1000,7 @@ var nt = /* @__PURE__ */ d({
|
|
|
1000
1000
|
function xt(e) {
|
|
1001
1001
|
let t = w("next"), n = null, r = 0, i = !1, a = null, o = null;
|
|
1002
1002
|
function s(n, r) {
|
|
1003
|
-
let i =
|
|
1003
|
+
let i = V(e.item()).length, a = (n + i) % i;
|
|
1004
1004
|
a !== e.mediaIndex() && (t.value = n < e.mediaIndex() ? "previous" : "next", e.onChange(a), r?.detail && r.detail > 0 && r.currentTarget?.blur());
|
|
1005
1005
|
}
|
|
1006
1006
|
function c() {
|
|
@@ -1013,7 +1013,7 @@ function xt(e) {
|
|
|
1013
1013
|
return t === 1 ? e * 16 : t === 2 ? e * n : e;
|
|
1014
1014
|
}
|
|
1015
1015
|
function d(t) {
|
|
1016
|
-
if (
|
|
1016
|
+
if (V(e.item()).length <= 1) return;
|
|
1017
1017
|
let n = t.currentTarget, a = u(t.deltaX, t.deltaMode, n?.clientWidth || 1);
|
|
1018
1018
|
if (a === 0 || (t.preventDefault(), l(), i) || (r += a, Math.abs(r) < bt)) return;
|
|
1019
1019
|
let o = Math.sign(r);
|
|
@@ -1042,9 +1042,9 @@ function Et(e, t) {
|
|
|
1042
1042
|
return `${t ? "timed" : "image"}:${e}`;
|
|
1043
1043
|
}
|
|
1044
1044
|
function Dt(e, t, n) {
|
|
1045
|
-
let r =
|
|
1045
|
+
let r = V(e);
|
|
1046
1046
|
if (r.length < 2) return [];
|
|
1047
|
-
let i =
|
|
1047
|
+
let i = H(e, t), a = [];
|
|
1048
1048
|
for (let e = 1; e < r.length; e += 1) {
|
|
1049
1049
|
let t = i + e, n = i - e;
|
|
1050
1050
|
t < r.length && a.push(t), n >= 0 && a.push(n);
|
|
@@ -1053,7 +1053,7 @@ function Dt(e, t, n) {
|
|
|
1053
1053
|
return a.flatMap((e) => {
|
|
1054
1054
|
let t = r[e];
|
|
1055
1055
|
if (!t) return [];
|
|
1056
|
-
let i = I(t.type, t.src) === "audio" ?
|
|
1056
|
+
let i = I(t.type, t.src) === "audio" ? B(t) : z(t, n);
|
|
1057
1057
|
if (!i) return [];
|
|
1058
1058
|
let a = L(i.type, i.src), s = Et(i.src, a);
|
|
1059
1059
|
return o.has(s) ? [] : (o.add(s), [{
|
|
@@ -1470,7 +1470,7 @@ var Ut = [
|
|
|
1470
1470
|
function f(e = !1, t = "pointer") {
|
|
1471
1471
|
e && d("activate", t);
|
|
1472
1472
|
}
|
|
1473
|
-
let p = r(() =>
|
|
1473
|
+
let p = r(() => V(l.item)), g = r(() => H(l.item, l.mediaIndex)), v = r(() => te(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(() => ee(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 = r(() => `${l.item.postId}:${g.value}:${F.value?.src ?? ""}`), R = w(!1), U = r(() => R.value ? null : F.value), { effectivePreviewState: W, failSourceAttempt: G, imageElement: ne, markSourceReady: K, noteSourceActivity: q, retrySource: re, retrying: ie, sourceGeneration: ae, mediaElement: J } = Ft({
|
|
1474
1474
|
identity: () => `${l.item.postId}:${g.value}:${l.mediaSource ?? "preview"}:${D.value}:${M.value ?? ""}`,
|
|
1475
1475
|
mediaIndex: () => g.value,
|
|
1476
1476
|
onError: (e, t) => {
|
|
@@ -1951,39 +1951,39 @@ var cn = { class: "masonry-feed-shell" }, ln = ["aria-hidden", "inert"], un = {
|
|
|
1951
1951
|
additionalHeight: (d.cardHeader?.height ?? 0) + (d.cardFooter?.height ?? 0),
|
|
1952
1952
|
gap: x.value,
|
|
1953
1953
|
minColumnWidth: De(d.masonry)
|
|
1954
|
-
})),
|
|
1955
|
-
function
|
|
1954
|
+
})), z = [];
|
|
1955
|
+
function B() {
|
|
1956
1956
|
let e = N - k.value + C.value + Oe(d.masonry, C.value), t = M.value.reduce((e, t) => {
|
|
1957
|
-
let n =
|
|
1957
|
+
let n = z[t];
|
|
1958
1958
|
return n ? Math.max(e, n.y + n.height) : e;
|
|
1959
1959
|
}, 0);
|
|
1960
1960
|
return Math.max(e, t);
|
|
1961
1961
|
}
|
|
1962
|
-
function
|
|
1962
|
+
function ee() {
|
|
1963
1963
|
return M.value.reduce((e, t) => Math.max(e, t), -1);
|
|
1964
1964
|
}
|
|
1965
|
-
let
|
|
1965
|
+
let V = sn({
|
|
1966
1966
|
additionalHeight: r(() => R.value.additionalHeight),
|
|
1967
1967
|
gap: x,
|
|
1968
1968
|
items: () => d.items,
|
|
1969
1969
|
minColumnWidth: r(() => R.value.minColumnWidth),
|
|
1970
|
-
packThroughIndex:
|
|
1971
|
-
packUntilBottom:
|
|
1970
|
+
packThroughIndex: ee,
|
|
1971
|
+
packUntilBottom: B,
|
|
1972
1972
|
width: y
|
|
1973
|
-
}),
|
|
1974
|
-
throughIndex:
|
|
1975
|
-
untilBottom:
|
|
1973
|
+
}), H = V.layout, te = V.viewportIndex, W = r(() => d.leavingPostIds.size === 0 ? null : ye(d.items, y.value, R.value, H.value, (e) => d.leavingPostIds.has(d.items[e].postId), {
|
|
1974
|
+
throughIndex: ee(),
|
|
1975
|
+
untilBottom: B()
|
|
1976
1976
|
})), G = r(() => {
|
|
1977
1977
|
let e = W.value;
|
|
1978
1978
|
return e ? {
|
|
1979
1979
|
columns: e.columns,
|
|
1980
1980
|
height: e.height,
|
|
1981
1981
|
items: e.items
|
|
1982
|
-
} :
|
|
1982
|
+
} : H.value;
|
|
1983
1983
|
}), ne = r(() => {
|
|
1984
1984
|
let e = W.value;
|
|
1985
|
-
return e ? we(e.items, e.retainedIndices,
|
|
1986
|
-
}), K = r(() => (
|
|
1985
|
+
return e ? we(e.items, e.retainedIndices, te.value, e.fromIndex) : null;
|
|
1986
|
+
}), K = r(() => (H.value, Math.max(T.value, V.reservedHeight(), d.leavingPostIds.size === 0 ? G.value.height : H.value.height))), q = r(() => ({ height: `${K.value}px` })), re = r(() => !d.infiniteScroll || C.value > 0 && k.value + G.value.height <= C.value + 1), ie = r(() => new Set(j.value)), ae = r(() => M.value.flatMap((e) => {
|
|
1987
1987
|
let t = d.items[e], n = G.value.items[e];
|
|
1988
1988
|
return !t || !n || n.width <= 0 || n.height <= 0 ? [] : [{
|
|
1989
1989
|
fetchPriority: ie.value.has(e) ? "high" : "low",
|
|
@@ -2001,11 +2001,11 @@ var cn = { class: "masonry-feed-shell" }, ln = ["aria-hidden", "inert"], un = {
|
|
|
2001
2001
|
let t = {
|
|
2002
2002
|
scrollTop: N - k.value,
|
|
2003
2003
|
viewportHeight: C.value
|
|
2004
|
-
}, n = ne.value, r = Ee(n ??
|
|
2004
|
+
}, n = ne.value, r = Ee(n ?? te.value, {
|
|
2005
2005
|
...t,
|
|
2006
2006
|
overscan: e
|
|
2007
2007
|
}).indices;
|
|
2008
|
-
return J(r, d.leavingPostIds.size === 0 ? [] : Ee(
|
|
2008
|
+
return J(r, d.leavingPostIds.size === 0 ? [] : Ee(te.value, {
|
|
2009
2009
|
...t,
|
|
2010
2010
|
overscan: e
|
|
2011
2011
|
}).indices.filter((e) => {
|
|
@@ -2046,7 +2046,7 @@ var cn = { class: "masonry-feed-shell" }, ln = ["aria-hidden", "inert"], un = {
|
|
|
2046
2046
|
let t = G.value.items[e], n = d.items[e]?.postId;
|
|
2047
2047
|
if (!t || t.width <= 0 || t.height <= 0) return {};
|
|
2048
2048
|
let r = n !== void 0 && d.enteringPostIds.has(n), i = n !== void 0 && d.leavingPostIds.has(n), a = r || i ? de({
|
|
2049
|
-
containerHeight: Math.max(T.value,
|
|
2049
|
+
containerHeight: Math.max(T.value, H.value.height),
|
|
2050
2050
|
gap: x.value
|
|
2051
2051
|
}) : 0, o = n === void 0 ? 0 : i ? d.removalDelays.get(n) ?? 0 : r ? d.entryDelays.get(n) ?? 0 : 0;
|
|
2052
2052
|
return {
|
|
@@ -2071,7 +2071,7 @@ var cn = { class: "masonry-feed-shell" }, ln = ["aria-hidden", "inert"], un = {
|
|
|
2071
2071
|
}
|
|
2072
2072
|
function Q(e) {
|
|
2073
2073
|
let t = e.currentTarget;
|
|
2074
|
-
t && (N = t.scrollTop,
|
|
2074
|
+
t && (N = t.scrollTop, V.ensurePackedThrough(B()), Y(), Date.now() >= l && !d.loadMoreLocked && d.infiniteScroll && ue(t, d.masonry?.loadMoreThresholdPx) && f("loadMore"));
|
|
2075
2075
|
}
|
|
2076
2076
|
function me() {
|
|
2077
2077
|
let e = p.value;
|
|
@@ -2093,9 +2093,9 @@ var cn = { class: "masonry-feed-shell" }, ln = ["aria-hidden", "inert"], un = {
|
|
|
2093
2093
|
}), O(p, (e) => {
|
|
2094
2094
|
F?.disconnect(), F = null, e && (Z(), !(typeof ResizeObserver > "u") && (F = new ResizeObserver(Z), F.observe(e)));
|
|
2095
2095
|
}), O(G, (e) => {
|
|
2096
|
-
|
|
2096
|
+
z = e.items;
|
|
2097
2097
|
}, { flush: "sync" }), O([
|
|
2098
|
-
|
|
2098
|
+
H,
|
|
2099
2099
|
G,
|
|
2100
2100
|
() => d.masonry
|
|
2101
2101
|
], le, { flush: "post" }), v(() => {
|
|
@@ -2294,10 +2294,10 @@ var _n = ["aria-label"], vn = /* @__PURE__ */ d({
|
|
|
2294
2294
|
}), F = r(() => u.items[x.value]?.postId), I = r(() => u.items[x.value]), R = r(() => {
|
|
2295
2295
|
let e = F.value;
|
|
2296
2296
|
return e === void 0 ? 0 : u.mediaIndices.get(e) ?? 0;
|
|
2297
|
-
}),
|
|
2297
|
+
}), z = r(() => {
|
|
2298
2298
|
let e = F.value;
|
|
2299
2299
|
return e === void 0 ? "loading" : u.previewStates.get(U(e, R.value)) ?? "loading";
|
|
2300
|
-
}),
|
|
2300
|
+
}), B = r(() => I.value ? te(I.value, R.value) : null), H = r(() => B.value ? ee(B.value, u.mediaSource ?? "preview") : null), W = r(() => z.value === "ready" && !!(H.value && L(H.value.type, H.value.src))), G = r(() => [
|
|
2301
2301
|
F.value,
|
|
2302
2302
|
R.value,
|
|
2303
2303
|
u.items.length,
|
|
@@ -2306,9 +2306,9 @@ var _n = ["aria-label"], vn = /* @__PURE__ */ d({
|
|
|
2306
2306
|
u.reelAutoAdvance.includePostItems,
|
|
2307
2307
|
u.reelAutoAdvance.intervalMs
|
|
2308
2308
|
].join(":")), ne = r(() => {
|
|
2309
|
-
let e = I.value, t = !!(e && u.reelAutoAdvance.includePostItems && R.value <
|
|
2309
|
+
let e = I.value, t = !!(e && u.reelAutoAdvance.includePostItems && R.value < V(e).length - 1), n = u.reelAutoAdvance.intervalMs / 1e3;
|
|
2310
2310
|
return `Auto advance to the next ${t ? "post item" : "post"} in ${n}s`;
|
|
2311
|
-
}), K = r(() => u.reelAutoAdvance.enabled && u.reelForward.status === "idle" && I.value !== void 0 &&
|
|
2311
|
+
}), K = r(() => u.reelAutoAdvance.enabled && u.reelForward.status === "idle" && I.value !== void 0 && z.value !== "loading" && !W.value), q = r(() => !u.infiniteScroll || u.items.length <= 1), re = r(() => u.reelForward.status === "end" && u.hasNext && !u.infiniteScroll && !u.loadMoreLocked), ie = r(() => u.reelForward.status === "loading" ? "Loading the next media…" : u.reelForward.status === "error" ? "Unable to load the next media." : re.value ? "Load the next page to continue." : "You reached the end of this feed.");
|
|
2312
2312
|
function ae(e) {
|
|
2313
2313
|
return { gridRow: `${e + 1}` };
|
|
2314
2314
|
}
|
|
@@ -2353,7 +2353,7 @@ var _n = ["aria-label"], vn = /* @__PURE__ */ d({
|
|
|
2353
2353
|
function Z(e) {
|
|
2354
2354
|
let t = I.value;
|
|
2355
2355
|
if (!t) return !1;
|
|
2356
|
-
let n =
|
|
2356
|
+
let n = V(t).length;
|
|
2357
2357
|
if (n <= 1) return !1;
|
|
2358
2358
|
let r = (R.value + e + n) % n;
|
|
2359
2359
|
return d("mediaChange", t.postId, r), !0;
|
|
@@ -2389,7 +2389,7 @@ var _n = ["aria-label"], vn = /* @__PURE__ */ d({
|
|
|
2389
2389
|
if (!u.reelAutoAdvance.enabled) return;
|
|
2390
2390
|
let e = I.value;
|
|
2391
2391
|
if (!e) return;
|
|
2392
|
-
if (u.reelAutoAdvance.includePostItems && R.value <
|
|
2392
|
+
if (u.reelAutoAdvance.includePostItems && R.value < V(e).length - 1) {
|
|
2393
2393
|
d("mediaChange", e.postId, R.value + 1);
|
|
2394
2394
|
return;
|
|
2395
2395
|
}
|
|
@@ -2651,9 +2651,9 @@ var _n = ["aria-label"], vn = /* @__PURE__ */ d({
|
|
|
2651
2651
|
item: e,
|
|
2652
2652
|
layout: "reel",
|
|
2653
2653
|
loadedCount: l.items.length,
|
|
2654
|
-
mediaCount:
|
|
2654
|
+
mediaCount: V(e).length,
|
|
2655
2655
|
mediaIndex: D.value,
|
|
2656
|
-
mediaItem:
|
|
2656
|
+
mediaItem: te(e, D.value),
|
|
2657
2657
|
mediaSource: l.mediaSource ?? "preview",
|
|
2658
2658
|
origin: l.origin,
|
|
2659
2659
|
total: l.total
|
|
@@ -2680,13 +2680,13 @@ var _n = ["aria-label"], vn = /* @__PURE__ */ d({
|
|
|
2680
2680
|
function R(e) {
|
|
2681
2681
|
return p.value?.transitionActivePost(e) ?? Promise.resolve(!1);
|
|
2682
2682
|
}
|
|
2683
|
-
function
|
|
2683
|
+
function z(e, t) {
|
|
2684
2684
|
d("error", e, t);
|
|
2685
2685
|
}
|
|
2686
|
-
function
|
|
2686
|
+
function B(e, t) {
|
|
2687
2687
|
d("mediaChange", e, t);
|
|
2688
2688
|
}
|
|
2689
|
-
function
|
|
2689
|
+
function ee(e, t) {
|
|
2690
2690
|
d("ready", e, t);
|
|
2691
2691
|
}
|
|
2692
2692
|
return O(() => ({
|
|
@@ -2743,11 +2743,11 @@ var _n = ["aria-label"], vn = /* @__PURE__ */ d({
|
|
|
2743
2743
|
state: e.state,
|
|
2744
2744
|
total: e.total,
|
|
2745
2745
|
onActiveChange: r[0] ||= (e) => d("activeChange", e),
|
|
2746
|
-
onError:
|
|
2746
|
+
onError: z,
|
|
2747
2747
|
onMediaError: r[1] ||= (e, t) => d("mediaError", e, t),
|
|
2748
2748
|
onLoadMore: r[2] ||= (e) => d("loadMore"),
|
|
2749
|
-
onMediaChange:
|
|
2750
|
-
onReady:
|
|
2749
|
+
onMediaChange: B,
|
|
2750
|
+
onReady: ee,
|
|
2751
2751
|
onRetryEnd: r[3] ||= (e) => d("retryEnd"),
|
|
2752
2752
|
onRetryForward: r[4] ||= (e) => d("retryForward"),
|
|
2753
2753
|
onReelAudioChange: r[5] ||= (e) => d("reelAudioChange", e)
|
|
@@ -2808,7 +2808,7 @@ var Fn = /* @__PURE__ */ jn(Mn, [["render", Pn]]);
|
|
|
2808
2808
|
function In(e, t, n, r, i) {
|
|
2809
2809
|
let a = e.items.findIndex((e) => e.postId === t), o = e.items[a];
|
|
2810
2810
|
if (!o) return null;
|
|
2811
|
-
let s =
|
|
2811
|
+
let s = H(o, n), c = te(o, s);
|
|
2812
2812
|
return {
|
|
2813
2813
|
item: o,
|
|
2814
2814
|
layout: r,
|
|
@@ -2979,7 +2979,7 @@ function Un(e, t) {
|
|
|
2979
2979
|
let n = w("waiting"), i = typeof matchMedia == "function" ? matchMedia("(prefers-reduced-motion: reduce)") : null, a = !1, o = null, s = r(() => {
|
|
2980
2980
|
let t = e.items.find((t) => t.postId === e.activeReelPostId);
|
|
2981
2981
|
if (!t) return null;
|
|
2982
|
-
let n = e.mediaIndices.get(t.postId) ?? 0, r =
|
|
2982
|
+
let n = e.mediaIndices.get(t.postId) ?? 0, r = te(t, n);
|
|
2983
2983
|
return JSON.stringify([
|
|
2984
2984
|
t.postId,
|
|
2985
2985
|
n,
|
|
@@ -3047,13 +3047,13 @@ var Wn = ["data-reel-entry"], Gn = 35, Kn = 420, qn = /* @__PURE__ */ d({
|
|
|
3047
3047
|
"retryForward"
|
|
3048
3048
|
],
|
|
3049
3049
|
setup(t, { expose: i, emit: c }) {
|
|
3050
|
-
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(() => ne(l.state, T.value)), { markMediaError: A, markMasonryFullyVisible: j, markMasonryVisible: M, markPreviewError: N, markPreviewReady: P, markReelError: F, markReelReady: I, originalStates: L, previewStates: R, reelStates:
|
|
3050
|
+
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(() => ne(l.state, T.value)), { markMediaError: A, markMasonryFullyVisible: j, markMasonryVisible: M, markPreviewError: N, markPreviewReady: P, markReelError: F, markReelReady: I, originalStates: L, previewStates: R, reelStates: z, resetMediaLifecycle: B } = Rn(l.state, {
|
|
3051
3051
|
error: (e) => d("mediaError", e),
|
|
3052
3052
|
fullyVisible: (e) => d("mediaFullyVisible", e),
|
|
3053
3053
|
ready: (e) => d("mediaReady", e),
|
|
3054
3054
|
reelChange: (e) => d("reelMediaChange", e),
|
|
3055
3055
|
visible: (e) => d("mediaVisible", e)
|
|
3056
|
-
}), { phase:
|
|
3056
|
+
}), { phase: ee, finishSlide: te, finishFade: U, markSettled: W } = Un(l.state, h), G = new Set(l.state.items.map((e) => e.postId)), K = null, q = null, re = !1;
|
|
3057
3057
|
function ie() {
|
|
3058
3058
|
return typeof window.matchMedia == "function" && window.matchMedia("(prefers-reduced-motion: reduce)").matches;
|
|
3059
3059
|
}
|
|
@@ -3067,7 +3067,7 @@ var Wn = ["data-reel-entry"], Gn = 35, Kn = 420, qn = /* @__PURE__ */ d({
|
|
|
3067
3067
|
function J(e, t) {
|
|
3068
3068
|
let n = l.state.items.find((t) => t.postId === e);
|
|
3069
3069
|
if (!n) return;
|
|
3070
|
-
let r =
|
|
3070
|
+
let r = H(n, t);
|
|
3071
3071
|
(l.state.mediaIndices.get(e) ?? 0) !== r && (l.state.mediaIndices = new Map(l.state.mediaIndices).set(e, r));
|
|
3072
3072
|
}
|
|
3073
3073
|
async function oe() {
|
|
@@ -3083,7 +3083,7 @@ var Wn = ["data-reel-entry"], Gn = 35, Kn = 420, qn = /* @__PURE__ */ d({
|
|
|
3083
3083
|
if (!(l.state.layout === "reel" || l.state.reelOrigin === "masonry") || l.state.isLoading) return "reel-inactive";
|
|
3084
3084
|
let t = l.state.items.find((t) => t.postId === e.postId);
|
|
3085
3085
|
if (!t) return "not-found";
|
|
3086
|
-
let n =
|
|
3086
|
+
let n = V(t).findIndex((t) => t.mediaId === e.mediaId);
|
|
3087
3087
|
return n < 0 ? "not-found" : p.value?.navigateToItem?.(e.postId, n) ? "navigated" : "reel-inactive";
|
|
3088
3088
|
}
|
|
3089
3089
|
function Y() {
|
|
@@ -3163,7 +3163,8 @@ var Wn = ["data-reel-entry"], Gn = 35, Kn = 420, qn = /* @__PURE__ */ d({
|
|
|
3163
3163
|
loadIfNearBottom: oe,
|
|
3164
3164
|
moveActiveReelPost: ce,
|
|
3165
3165
|
navigateToReelItem: ue,
|
|
3166
|
-
|
|
3166
|
+
openReel: (e) => X(e, "keyboard"),
|
|
3167
|
+
resetMediaLifecycle: B,
|
|
3167
3168
|
startItemRemoval: Z,
|
|
3168
3169
|
transitionActiveReelMedia: (e) => p.value?.transitionActiveMedia?.(e) ?? Promise.resolve(!1),
|
|
3169
3170
|
transitionActiveReelPost: (e) => p.value?.transitionActivePost?.(e) ?? Promise.resolve(!1)
|
|
@@ -3196,7 +3197,7 @@ var Wn = ["data-reel-entry"], Gn = 35, Kn = 420, qn = /* @__PURE__ */ d({
|
|
|
3196
3197
|
"info-sheet-overlay": t.state.reelInfoSheetOverlay,
|
|
3197
3198
|
"next-page-error": !!t.state.nextPageError,
|
|
3198
3199
|
origin: "reel",
|
|
3199
|
-
"preview-states": E(
|
|
3200
|
+
"preview-states": E(z),
|
|
3200
3201
|
"reel-auto-advance": t.state.reelAutoAdvance,
|
|
3201
3202
|
"reel-audio-state": t.reelAudioState,
|
|
3202
3203
|
"reel-forward": t.state.reelForward,
|
|
@@ -3261,7 +3262,7 @@ var Wn = ["data-reel-entry"], Gn = 35, Kn = 420, qn = /* @__PURE__ */ d({
|
|
|
3261
3262
|
onVisible: E(M)
|
|
3262
3263
|
}, null, 8, /* @__PURE__ */ "can-retry-end.entering-post-ids.entry-delays.leaving-post-ids.removal-delays.card-footer.card-header.feed-footer.feed-footer-actions.media-card.masonry.has-next.infinite-scroll.is-loading-more.items.load-more-locked.media-indices.next-page-error.preview-states.suspended.state.total.onError.onFullyVisible.onReady.onVisible".split(".")), u(n, {
|
|
3263
3264
|
name: "vibe-reel-viewer",
|
|
3264
|
-
onAfterEnter: E(
|
|
3265
|
+
onAfterEnter: E(te),
|
|
3265
3266
|
onAfterLeave: he
|
|
3266
3267
|
}, {
|
|
3267
3268
|
default: k(() => [t.state.reelOrigin === "masonry" ? (b(), s("section", {
|
|
@@ -3269,7 +3270,7 @@ var Wn = ["data-reel-entry"], Gn = 35, Kn = 420, qn = /* @__PURE__ */ d({
|
|
|
3269
3270
|
ref_key: "reelOverlay",
|
|
3270
3271
|
ref: h,
|
|
3271
3272
|
class: "vibe-reel-overlay",
|
|
3272
|
-
"data-reel-entry": E(
|
|
3273
|
+
"data-reel-entry": E(ee),
|
|
3273
3274
|
role: "dialog",
|
|
3274
3275
|
"aria-label": "Media viewer",
|
|
3275
3276
|
"aria-modal": "true",
|
|
@@ -3279,7 +3280,7 @@ var Wn = ["data-reel-entry"], Gn = 35, Kn = 420, qn = /* @__PURE__ */ d({
|
|
|
3279
3280
|
}, [u(An, {
|
|
3280
3281
|
ref_key: "reelRenderer",
|
|
3281
3282
|
ref: p,
|
|
3282
|
-
"entry-pending": E(
|
|
3283
|
+
"entry-pending": E(ee) !== "ready",
|
|
3283
3284
|
"can-retry-end": t.canRetryEnd,
|
|
3284
3285
|
"card-footer": t.cardFooter,
|
|
3285
3286
|
"card-header": t.cardHeader,
|
|
@@ -3321,7 +3322,7 @@ var Wn = ["data-reel-entry"], Gn = 35, Kn = 420, qn = /* @__PURE__ */ d({
|
|
|
3321
3322
|
onRetryEnd: i[18] ||= (e) => d("retryEnd"),
|
|
3322
3323
|
onRetryForward: i[19] ||= (e) => d("retryForward"),
|
|
3323
3324
|
onReelAudioChange: i[20] ||= (e) => d("reelAudioChange", e)
|
|
3324
|
-
}, null, 8, /* @__PURE__ */ "entry-pending.can-retry-end.card-footer.card-header.feed-footer.feed-footer-actions.forward-index.forward-item.media-card.has-next.infinite-scroll.initial-post-id.info-sheet.info-sheet-enabled.info-sheet-overlay.is-loading-more.items.load-more-locked.media-indices.next-page-error.preview-states.reel-auto-advance.reel-audio-state.reel-forward.state.total".split(".")), E(
|
|
3325
|
+
}, null, 8, /* @__PURE__ */ "entry-pending.can-retry-end.card-footer.card-header.feed-footer.feed-footer-actions.forward-index.forward-item.media-card.has-next.infinite-scroll.initial-post-id.info-sheet.info-sheet-enabled.info-sheet-overlay.is-loading-more.items.load-more-locked.media-indices.next-page-error.preview-states.reel-auto-advance.reel-audio-state.reel-forward.state.total".split(".")), E(ee) === "waiting" ? (b(), a(Fn, { key: 0 })) : o("", !0)], 40, Wn)) : o("", !0)]),
|
|
3325
3326
|
_: 1
|
|
3326
3327
|
}, 8, ["onAfterEnter"])], 64))], 512));
|
|
3327
3328
|
}
|
|
@@ -4457,7 +4458,7 @@ var si = class {
|
|
|
4457
4458
|
let e = this.options.surface()?.getAutoScrollElement();
|
|
4458
4459
|
e && (e.scrollTop = 0);
|
|
4459
4460
|
}
|
|
4460
|
-
e.mediaIndices = new Map(a.map((t) => [t.postId,
|
|
4461
|
+
e.mediaIndices = new Map(a.map((t) => [t.postId, H(t, e.mediaIndices.get(t.postId) ?? 0)])), e.activeReelPostId !== null && !o.has(String(e.activeReelPostId)) && (e.activeReelPostId = null, e.reelOrigin = null), e.items = a, e.next = n.next, e.total = n.total ?? null, e.error = null, e.nextPageError = null, this.options.commit({
|
|
4461
4462
|
...n,
|
|
4462
4463
|
items: a
|
|
4463
4464
|
});
|
|
@@ -4648,7 +4649,7 @@ var gi = class {
|
|
|
4648
4649
|
hi(e);
|
|
4649
4650
|
let t = this.state.items.findIndex(({ postId: t }) => t === e.postId), n = this.state.items[t];
|
|
4650
4651
|
if (!n) return null;
|
|
4651
|
-
let r = [...
|
|
4652
|
+
let r = [...V(n)], i = r[e.mediaIndex];
|
|
4652
4653
|
if (!i) return null;
|
|
4653
4654
|
let a = Object.freeze({
|
|
4654
4655
|
media: i,
|
|
@@ -4687,7 +4688,7 @@ var gi = class {
|
|
|
4687
4688
|
return this.state.layout === "reel" || this.state.reelOrigin === "masonry";
|
|
4688
4689
|
}
|
|
4689
4690
|
restoreIntoPost(e, t) {
|
|
4690
|
-
let n = this.state.items[e], r = [...
|
|
4691
|
+
let n = this.state.items[e], r = [...V(n)], i = Math.min(t.mediaIndex, r.length);
|
|
4691
4692
|
if (r.splice(i, 0, t.media), this.state.items[e] = mi(n, r), this.state.activeReelPostId !== t.postId) return;
|
|
4692
4693
|
let a = this.state.mediaIndices.get(t.postId) ?? 0;
|
|
4693
4694
|
a >= i && this.state.mediaIndices.set(t.postId, a + 1);
|
|
@@ -4695,7 +4696,7 @@ var gi = class {
|
|
|
4695
4696
|
updateMediaIndexAfterRemoval(e, t, n) {
|
|
4696
4697
|
let r = this.state.items.find((t) => t.postId === e);
|
|
4697
4698
|
if (!r) return;
|
|
4698
|
-
let i =
|
|
4699
|
+
let i = V(r).length, a = this.state.mediaIndices.get(e) ?? 0, o = a;
|
|
4699
4700
|
n ? o = t < i ? t : 0 : t < a && (o = a - 1), this.state.mediaIndices.set(e, Math.min(o, i - 1));
|
|
4700
4701
|
}
|
|
4701
4702
|
};
|
|
@@ -4927,7 +4928,7 @@ var bi = 20, xi = class {
|
|
|
4927
4928
|
if (!n) return;
|
|
4928
4929
|
let r = t.mediaIndices.get(e.postId) ?? 0;
|
|
4929
4930
|
if (e.mediaIndex === r) {
|
|
4930
|
-
if (
|
|
4931
|
+
if (V(n).length > 1) {
|
|
4931
4932
|
await this.options.transitionMedia(1);
|
|
4932
4933
|
return;
|
|
4933
4934
|
}
|
|
@@ -5091,31 +5092,36 @@ var ji = class {
|
|
|
5091
5092
|
}
|
|
5092
5093
|
};
|
|
5093
5094
|
//#endregion
|
|
5095
|
+
//#region src/core/reelViewer.ts
|
|
5096
|
+
function Pi(e, t, n) {
|
|
5097
|
+
e.layout !== "masonry" || !e.items.some((e) => e.postId === n) || (e.activeReelPostId = n, e.reelOrigin = "masonry", t.syncReel(n));
|
|
5098
|
+
}
|
|
5099
|
+
//#endregion
|
|
5094
5100
|
//#region src/core/updateItems.ts
|
|
5095
|
-
function
|
|
5101
|
+
function Fi(e) {
|
|
5096
5102
|
return String(e);
|
|
5097
5103
|
}
|
|
5098
|
-
function
|
|
5099
|
-
let n =
|
|
5104
|
+
function Ii(e, t) {
|
|
5105
|
+
let n = V(t).length;
|
|
5100
5106
|
(e.mediaIndices.get(t.postId) ?? 0) >= n && e.mediaIndices.set(t.postId, Math.max(0, n - 1));
|
|
5101
5107
|
}
|
|
5102
|
-
function
|
|
5108
|
+
function Li(e, t) {
|
|
5103
5109
|
let n = /* @__PURE__ */ new Map();
|
|
5104
|
-
if (t.forEach((e) => n.set(
|
|
5110
|
+
if (t.forEach((e) => n.set(Fi(e.postId), e)), n.size === 0) return [];
|
|
5105
5111
|
let r = [], i = e.items.map((t) => {
|
|
5106
|
-
let i = n.get(
|
|
5112
|
+
let i = n.get(Fi(t.postId));
|
|
5107
5113
|
if (!i) return t;
|
|
5108
5114
|
let a = {
|
|
5109
5115
|
...i,
|
|
5110
5116
|
postId: t.postId
|
|
5111
5117
|
};
|
|
5112
|
-
return
|
|
5118
|
+
return Ii(e, a), e.reelForwardItem && Fi(e.reelForwardItem.postId) === Fi(t.postId) && (e.reelForwardItem = a), r.push(t.postId), a;
|
|
5113
5119
|
});
|
|
5114
5120
|
return r.length > 0 && (e.items = i), r;
|
|
5115
5121
|
}
|
|
5116
5122
|
//#endregion
|
|
5117
5123
|
//#region src/core/createVibe.ts
|
|
5118
|
-
var
|
|
5124
|
+
var Ri = class {
|
|
5119
5125
|
app = null;
|
|
5120
5126
|
autoScroll;
|
|
5121
5127
|
autofillController;
|
|
@@ -5218,7 +5224,7 @@ var Li = class {
|
|
|
5218
5224
|
onLoadMore: () => {
|
|
5219
5225
|
this.loadNext();
|
|
5220
5226
|
},
|
|
5221
|
-
onOpenReel: (e) => this.
|
|
5227
|
+
onOpenReel: (e) => Pi(this.state, this.routing, e),
|
|
5222
5228
|
onReelInfoSheetChange: (e) => this.setReelInfoSheet(e),
|
|
5223
5229
|
onReelAudioChange: (e) => this.reelAudio.set(e, !0),
|
|
5224
5230
|
onRetryEnd: () => {
|
|
@@ -5262,7 +5268,7 @@ var Li = class {
|
|
|
5262
5268
|
return this.itemRemoval.restoreRemoval(e);
|
|
5263
5269
|
}
|
|
5264
5270
|
updateItems(e) {
|
|
5265
|
-
return
|
|
5271
|
+
return Li(this.state, e);
|
|
5266
5272
|
}
|
|
5267
5273
|
retryReelForward() {
|
|
5268
5274
|
return this.reelForward.retry();
|
|
@@ -5442,12 +5448,12 @@ var Li = class {
|
|
|
5442
5448
|
setLayout(e) {
|
|
5443
5449
|
this.responsiveLayout.setLayout(e);
|
|
5444
5450
|
}
|
|
5451
|
+
openReel(e) {
|
|
5452
|
+
this.state.layout !== "masonry" || !this.state.items.some((t) => t.postId === e) || this.surface?.openReel(e);
|
|
5453
|
+
}
|
|
5445
5454
|
closeMasonryReel() {
|
|
5446
5455
|
this.state.reelOrigin === "masonry" && (this.state.activeReelPostId = null, this.state.reelOrigin = null, this.routing.syncFeed());
|
|
5447
5456
|
}
|
|
5448
|
-
openMasonryReel(e) {
|
|
5449
|
-
this.state.layout === "masonry" && this.state.items.some((t) => t.postId === e) && (this.state.activeReelPostId = e, this.state.reelOrigin = "masonry", this.routing.syncReel(e));
|
|
5450
|
-
}
|
|
5451
5457
|
setActiveReelPost(e) {
|
|
5452
5458
|
this.state.layout !== "reel" && this.state.reelOrigin !== "masonry" || (this.state.activeReelPostId = e, this.routing.syncReel(e));
|
|
5453
5459
|
}
|
|
@@ -5502,6 +5508,6 @@ var Li = class {
|
|
|
5502
5508
|
setCurrentCursor(e) {
|
|
5503
5509
|
this.lastLoadedCursor = this.state.current = e;
|
|
5504
5510
|
}
|
|
5505
|
-
},
|
|
5511
|
+
}, zi = (e) => new Ri(e);
|
|
5506
5512
|
//#endregion
|
|
5507
|
-
export {
|
|
5513
|
+
export { zi as createVibe };
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import type { VibeAutofillSessionSnapshot, VibeBackendAutofillUpdate, VibeBackendFillUpdate, VibeFillSessionSnapshot, VibeFillTarget, VibeItem, VibeItemId, VibeItemPlacement, VibeLayoutMode, VibeMediaRemoval, VibeMediaTarget, VibePage, VibeReelAudioState, VibeReelAutoAdvanceOptions, VibeReelItemTarget, VibeReelNavigationResult, VibeRemoval, VibeState } from './types';
|
|
2
|
+
export interface VibeInstance {
|
|
3
|
+
appendPage: (page: VibePage) => void;
|
|
4
|
+
applyAutofillUpdate: (update: VibeBackendAutofillUpdate) => boolean;
|
|
5
|
+
applyFillUpdate: (update: VibeBackendFillUpdate) => boolean;
|
|
6
|
+
cancelAutofill: () => Promise<void>;
|
|
7
|
+
cancelFill: () => Promise<void>;
|
|
8
|
+
cancelLoading: () => Promise<void>;
|
|
9
|
+
destroy: () => void;
|
|
10
|
+
fill: (target: VibeFillTarget) => Promise<void>;
|
|
11
|
+
getState: () => VibeState;
|
|
12
|
+
getReelAudioState: () => VibeReelAudioState;
|
|
13
|
+
loadNext: () => Promise<void>;
|
|
14
|
+
mount: () => Promise<void>;
|
|
15
|
+
navigateToReelItem: (target: VibeReelItemTarget) => VibeReelNavigationResult;
|
|
16
|
+
/** Open a loaded post as a closable viewer without switching the feed layout. */
|
|
17
|
+
openReel: (postId: VibeItemId) => void;
|
|
18
|
+
nextReelMediaItem: () => boolean;
|
|
19
|
+
nextReelPost: () => boolean;
|
|
20
|
+
pauseAutoScroll: () => void;
|
|
21
|
+
previousReelMediaItem: () => boolean;
|
|
22
|
+
previousReelPost: () => boolean;
|
|
23
|
+
replenishAfterRemoval: () => Promise<void>;
|
|
24
|
+
refresh: () => Promise<void>;
|
|
25
|
+
reload: () => Promise<void>;
|
|
26
|
+
replacePage: (page: VibePage, options?: import('./core/pageReplacement').VibePageReplacementOptions) => Promise<void>;
|
|
27
|
+
removeMedia: (target: VibeMediaTarget) => VibeMediaRemoval | null;
|
|
28
|
+
removeMediaAnimated?: (target: VibeMediaTarget) => Promise<VibeMediaRemoval | null>;
|
|
29
|
+
removeItems: (postIds: readonly VibeItemId[], options?: import('./core/itemRemovalOptions').VibeItemRemovalOptions) => Promise<VibeRemoval>;
|
|
30
|
+
resumeAutoScroll: () => void;
|
|
31
|
+
restoreAutofillSession: (snapshot: VibeAutofillSessionSnapshot) => boolean;
|
|
32
|
+
restoreFillSession: (snapshot: VibeFillSessionSnapshot) => boolean;
|
|
33
|
+
restoreItems: (placements: readonly VibeItemPlacement[]) => void;
|
|
34
|
+
restoreMediaRemoval: (removal: VibeMediaRemoval) => boolean;
|
|
35
|
+
restoreRemoval: (removal: VibeRemoval) => boolean;
|
|
36
|
+
retryReelForward: () => Promise<void>;
|
|
37
|
+
retryFill: () => Promise<void>;
|
|
38
|
+
setAutoScroll: (enabled: boolean, speedPxPerSecond?: number) => void;
|
|
39
|
+
setAutoScrollSpeed: (speedPxPerSecond: number) => void;
|
|
40
|
+
setInfiniteScroll: (enabled: boolean) => void;
|
|
41
|
+
setLayout: (layout: VibeLayoutMode) => void;
|
|
42
|
+
setLoadMoreLocked: (locked: boolean) => void;
|
|
43
|
+
setTotal: (total: number | null) => void;
|
|
44
|
+
setReelAutoAdvance: (update: boolean | VibeReelAutoAdvanceOptions) => void;
|
|
45
|
+
setReelAudioState: (state: VibeReelAudioState) => void;
|
|
46
|
+
setReelInfoSheet: (enabled: boolean) => void;
|
|
47
|
+
undoLastRemoval: () => VibeRemoval | null;
|
|
48
|
+
updateItems: (items: readonly VibeItem[]) => VibeItemId[];
|
|
49
|
+
}
|
package/lib/types.d.ts
CHANGED
|
@@ -391,49 +391,4 @@ export interface VibeState {
|
|
|
391
391
|
reelOrigin: 'masonry' | null;
|
|
392
392
|
total: number | null;
|
|
393
393
|
}
|
|
394
|
-
export
|
|
395
|
-
appendPage: (page: VibePage) => void;
|
|
396
|
-
applyAutofillUpdate: (update: VibeBackendAutofillUpdate) => boolean;
|
|
397
|
-
applyFillUpdate: (update: VibeBackendFillUpdate) => boolean;
|
|
398
|
-
cancelAutofill: () => Promise<void>;
|
|
399
|
-
cancelFill: () => Promise<void>;
|
|
400
|
-
cancelLoading: () => Promise<void>;
|
|
401
|
-
destroy: () => void;
|
|
402
|
-
fill: (target: VibeFillTarget) => Promise<void>;
|
|
403
|
-
getState: () => VibeState;
|
|
404
|
-
getReelAudioState: () => VibeReelAudioState;
|
|
405
|
-
loadNext: () => Promise<void>;
|
|
406
|
-
mount: () => Promise<void>;
|
|
407
|
-
navigateToReelItem: (target: VibeReelItemTarget) => VibeReelNavigationResult;
|
|
408
|
-
nextReelMediaItem: () => boolean;
|
|
409
|
-
nextReelPost: () => boolean;
|
|
410
|
-
pauseAutoScroll: () => void;
|
|
411
|
-
previousReelMediaItem: () => boolean;
|
|
412
|
-
previousReelPost: () => boolean;
|
|
413
|
-
replenishAfterRemoval: () => Promise<void>;
|
|
414
|
-
refresh: () => Promise<void>;
|
|
415
|
-
reload: () => Promise<void>;
|
|
416
|
-
replacePage: (page: VibePage, options?: import('./core/pageReplacement').VibePageReplacementOptions) => Promise<void>;
|
|
417
|
-
removeMedia: (target: VibeMediaTarget) => VibeMediaRemoval | null;
|
|
418
|
-
removeMediaAnimated?: (target: VibeMediaTarget) => Promise<VibeMediaRemoval | null>;
|
|
419
|
-
removeItems: (postIds: readonly VibeItemId[], options?: import('./core/itemRemovalOptions').VibeItemRemovalOptions) => Promise<VibeRemoval>;
|
|
420
|
-
resumeAutoScroll: () => void;
|
|
421
|
-
restoreAutofillSession: (snapshot: VibeAutofillSessionSnapshot) => boolean;
|
|
422
|
-
restoreFillSession: (snapshot: VibeFillSessionSnapshot) => boolean;
|
|
423
|
-
restoreItems: (placements: readonly VibeItemPlacement[]) => void;
|
|
424
|
-
restoreMediaRemoval: (removal: VibeMediaRemoval) => boolean;
|
|
425
|
-
restoreRemoval: (removal: VibeRemoval) => boolean;
|
|
426
|
-
retryReelForward: () => Promise<void>;
|
|
427
|
-
retryFill: () => Promise<void>;
|
|
428
|
-
setAutoScroll: (enabled: boolean, speedPxPerSecond?: number) => void;
|
|
429
|
-
setAutoScrollSpeed: (speedPxPerSecond: number) => void;
|
|
430
|
-
setInfiniteScroll: (enabled: boolean) => void;
|
|
431
|
-
setLayout: (layout: VibeLayoutMode) => void;
|
|
432
|
-
setLoadMoreLocked: (locked: boolean) => void;
|
|
433
|
-
setTotal: (total: number | null) => void;
|
|
434
|
-
setReelAutoAdvance: (update: boolean | VibeReelAutoAdvanceOptions) => void;
|
|
435
|
-
setReelAudioState: (state: VibeReelAudioState) => void;
|
|
436
|
-
setReelInfoSheet: (enabled: boolean) => void;
|
|
437
|
-
undoLastRemoval: () => VibeRemoval | null;
|
|
438
|
-
updateItems: (items: readonly VibeItem[]) => VibeItemId[];
|
|
439
|
-
}
|
|
394
|
+
export type { VibeInstance } from './instance';
|