@wyxos/vibe 5.17.1 → 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.
@@ -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/style.css CHANGED
@@ -1,2 +1,2 @@
1
- .vibe-surface,.vibe-surface *{box-sizing:border-box}.vibe-surface{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;background:#080808;height:100%;min-height:0;position:relative;overflow:hidden;container-type:inline-size}.vibe-reel-overlay{z-index:10;background:#080808;outline:none;min-height:0;position:absolute;inset:0;overflow:hidden}.vibe-reel-overlay>.reel-layout{height:100%}.vibe-reel-viewer-enter-active,.vibe-reel-viewer-leave-active{will-change:transform;transition:transform .16s ease-out}.vibe-reel-viewer-enter-from,.vibe-reel-viewer-leave-to{transform:translate(-100%)}.reel-layout{background:#080808;flex-direction:column;width:100%;min-width:0;height:100%;min-height:0;display:flex;position:relative;overflow:hidden}.reel-layout-main{flex:1 1 0;min-width:0;min-height:0;overflow:hidden}.reel-layout-main>.reel-shell{height:100%}.reel-info-sheet-layer{z-index:12;background:#111;min-width:0;min-height:0;overflow:hidden}.reel-info-sheet{overscroll-behavior:contain;background:#111;outline:none;width:100%;min-width:0;max-width:100%;min-height:0;overflow:auto}.reel-layout--overlay>.reel-info-sheet-layer{background:#00000094;align-items:flex-end;display:flex;position:absolute;inset:0}.reel-layout--overlay .reel-info-sheet{border-top:1px solid #333;max-height:80%;box-shadow:0 -1rem 2.5rem #0006}.reel-layout--layout>.reel-info-sheet-layer{border-top:1px solid #333;flex:0 0 50%;width:100%;height:50%;max-height:50%}.reel-layout--layout .reel-info-sheet{height:100%;max-height:100%}.vibe-info-sheet-enter-active,.vibe-info-sheet-leave-active{will-change:max-height, opacity;transition:max-height .3s cubic-bezier(.22,1,.36,1),opacity .22s}.vibe-info-sheet-enter-active>.reel-info-sheet,.vibe-info-sheet-leave-active>.reel-info-sheet{will-change:opacity, transform;transition:opacity .22s,transform .3s cubic-bezier(.22,1,.36,1)}.reel-layout--overlay>.vibe-info-sheet-enter-from,.reel-layout--overlay>.vibe-info-sheet-leave-to{opacity:0}.reel-layout--layout>.vibe-info-sheet-enter-from,.reel-layout--layout>.vibe-info-sheet-leave-to{opacity:0;max-height:0}.reel-layout--overlay>.vibe-info-sheet-enter-from>.reel-info-sheet,.reel-layout--overlay>.vibe-info-sheet-leave-to>.reel-info-sheet,.reel-layout--layout>.vibe-info-sheet-enter-from>.reel-info-sheet,.reel-layout--layout>.vibe-info-sheet-leave-to>.reel-info-sheet{opacity:0;transform:translateY(100%)}@container (width>=1025px){.reel-layout--layout{flex-direction:row}.reel-layout--layout>.reel-info-sheet-layer{border-top:0;border-left:1px solid #333;flex:0 0 25cqw;width:25cqw;height:100%;max-height:none}.reel-layout--layout>.vibe-info-sheet-enter-active,.reel-layout--layout>.vibe-info-sheet-leave-active{will-change:flex-basis, width, opacity;transition:flex-basis .3s cubic-bezier(.22,1,.36,1),width .3s cubic-bezier(.22,1,.36,1),opacity .22s}.reel-layout--layout>.vibe-info-sheet-enter-from,.reel-layout--layout>.vibe-info-sheet-leave-to{flex-basis:0;width:0;max-height:none}.reel-layout--layout>.vibe-info-sheet-enter-from>.reel-info-sheet,.reel-layout--layout>.vibe-info-sheet-leave-to>.reel-info-sheet{transform:translate(100%)}}@media (width>=1920px){@container (width>=1025px){.reel-layout--layout>.reel-info-sheet-layer{flex-basis:40cqw;width:40cqw}.reel-layout--layout>.vibe-info-sheet-enter-from,.reel-layout--layout>.vibe-info-sheet-leave-to{flex-basis:0;width:0}}}.gallery-shell{--gallery-padding:clamp(.375rem, 1vw, .875rem);overscroll-behavior-y:contain;height:100%;min-height:0;padding:var(--gallery-padding);scrollbar-color:#525252 #111;scrollbar-gutter:stable;scrollbar-width:thin;-webkit-user-select:none;user-select:none;overflow:hidden auto}.gallery-shell::-webkit-scrollbar{width:.625rem}.gallery-shell::-webkit-scrollbar-track{background:#111}.gallery-shell::-webkit-scrollbar-thumb{background:#525252;border:.125rem solid #111;border-radius:999px}.gallery-shell::-webkit-scrollbar-thumb:hover{background:#737373}.masonry-feed-shell{--gallery-padding:clamp(.375rem, 1vw, .875rem);height:100%;min-height:0;position:relative;overflow:hidden}.masonry-feed{padding-right:calc(var(--gallery-padding) + .5rem);scrollbar-gutter:auto;scrollbar-width:none;flex-direction:column;display:flex}.masonry-feed::-webkit-scrollbar{width:0;height:0;display:none}.masonry-feed-status-overlay{z-index:9;right:calc(var(--gallery-padding) + 1rem);bottom:var(--gallery-padding);left:var(--gallery-padding);pointer-events:none;justify-items:center;display:grid;position:absolute}.masonry-feed-status-overlay>*{pointer-events:auto}.masonry-feed-status-overlay .gallery-footer{min-height:0;padding:.375rem}.masonry-feed-status-overlay .load-more-status,.masonry-feed-status-overlay .end-feed-message{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#080808ad;border:1px solid #ffffff29;border-radius:999px;padding:.375rem .625rem}.gallery-scrollbar{z-index:8;top:var(--gallery-padding);right:.125rem;bottom:var(--gallery-padding);opacity:0;visibility:hidden;cursor:pointer;pointer-events:none;touch-action:none;-webkit-user-select:none;user-select:none;background:#111;border-radius:999px;width:.625rem;transition:opacity .16s,visibility .16s;position:absolute;overflow:hidden}.gallery-scrollbar--visible{opacity:1;visibility:visible;pointer-events:auto}.gallery-scrollbar-thumb{cursor:grab;touch-action:none;background:#525252;border:.125rem solid #111;border-radius:999px;width:100%;min-height:2rem;position:absolute;top:0;left:0}.gallery-scrollbar--ready:not(.gallery-scrollbar--interacting):not(.gallery-scrollbar--dragging) .gallery-scrollbar-thumb{will-change:height, transform;transition:height .22s cubic-bezier(.22,1,.36,1),transform .22s cubic-bezier(.22,1,.36,1)}.gallery-scrollbar-thumb:hover{background:#737373}.gallery-scrollbar-thumb:focus-visible{outline-offset:-1px;outline:2px solid #d4d4d4}.gallery-scrollbar--dragging .gallery-scrollbar-thumb{cursor:grabbing}.gallery-status{color:#a3a3a3;place-items:center;min-height:calc(100% - 1.75rem);margin:0;font:500 .875rem/1.5 system-ui,sans-serif;display:grid}.masonry{opacity:0;flex:1 0 auto;transition:opacity .16s;position:relative;overflow:clip}.masonry-feed--suspended{pointer-events:none;overflow:hidden}.masonry--ready{opacity:1}.masonry-item{transition:transform .42s cubic-bezier(.22, 1, .36, 1) var(--masonry-entry-delay,0s);background:#171717;border-radius:.5rem;position:absolute;top:0;left:0;overflow:hidden}.masonry-item.media-card--entering{will-change:transform;transition:none}.masonry-item.media-card--leaving{pointer-events:none;will-change:transform}.media-card{background:#171717}.media-card[role=button]{cursor:pointer}.media-card[role=button]:focus-visible{outline-offset:-2px;outline:2px solid #f5f5f5}.media-card-focus-silent:focus{outline:none!important}.media-card--error{background:#121212}.media-card--transparent-chrome{background:0 0}.media-card-content{flex-direction:column;width:100%;height:100%;display:flex;position:relative}.media-card-media{background:#171717;flex:auto;min-width:0;min-height:0;position:relative;overflow:hidden}.media-card-media--carousel{touch-action:pan-y}.media-card-frame{position:absolute;inset:0}.media-slide-next-enter-active,.media-slide-next-leave-active,.media-slide-previous-enter-active,.media-slide-previous-leave-active{will-change:opacity, transform;transition:opacity .22s,transform .28s cubic-bezier(.22,1,.36,1)}.media-slide-next-enter-from,.media-slide-previous-leave-to{opacity:.72;transform:translate(100%)}.media-slide-next-leave-to,.media-slide-previous-enter-from{opacity:.72;transform:translate(-100%)}.media-card-header,.media-card-footer{z-index:2;pointer-events:auto;background:#111;flex:none;min-width:0;position:relative;overflow:hidden}.media-card-region--transparent{background:0 0}.media-card-activator{z-index:1;cursor:pointer;background:0 0;border:0;padding:0;position:absolute;inset:0}.media-card-activator:focus-visible{outline-offset:-2px;outline:2px solid #f5f5f5}.media-carousel-controls{z-index:4;pointer-events:none;opacity:0;visibility:hidden;justify-content:space-between;transition:opacity .16s,visibility .16s;display:flex;position:absolute;top:50%;left:.625rem;right:.625rem;transform:translateY(-50%)}.media-card:hover .media-carousel-controls,.media-carousel-controls--persistent{opacity:1;visibility:visible}.media-card:focus-within:not(.media-card-focus-silent):not(:has(.media-card-focus-silent)) .media-carousel-controls{opacity:1;visibility:visible}.media-carousel-control{color:#f5f5f5;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);cursor:pointer;pointer-events:auto;background:#080808c7;border:1px solid #ffffff59;border-radius:50%;place-items:center;width:2.5rem;height:2.5rem;padding:0;transition:background .16s,opacity .16s,transform .16s;display:grid}.media-carousel-control:hover:not(:disabled){background:#262626f0;transform:scale(1.04)}.media-carousel-control:active:not(:disabled){transform:scale(.96)}.media-carousel-control:disabled{cursor:default;opacity:.28}.media-carousel-control:focus-visible{outline-offset:3px;outline:2px solid #f5f5f5}.media-preview--reel-video{cursor:default}.media-audio-element{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute;overflow:hidden}.media-audio-artwork{color:#d4d4d4;cursor:pointer;border:0;padding:0;position:relative}.media-audio-artwork:disabled{color:#d4d4d4;cursor:default}.media-audio-artwork:focus-visible{outline-offset:-3px;outline:2px solid #f5f5f5}.media-audio-cover{object-fit:cover;width:100%;height:100%;display:block}.reel-item .media-audio-cover{object-fit:contain}.media-audio-fallback{background:radial-gradient(circle,#ffffff1a 0 13%,#0000 14%),radial-gradient(circle,#262626 0 42%,#171717 43% 100%);place-items:center;width:100%;height:100%;display:grid}.media-controls{z-index:5;color:#f5f5f5;cursor:default;background:0 0;border:0;border-radius:0;gap:0;padding:0;display:grid;position:absolute;bottom:0;left:0;right:0}.reel-media-controls-host{--vibe-reel-media-seek-height:.9rem;--vibe-reel-media-row-height:2.5rem;z-index:6;height:calc(var(--vibe-reel-media-seek-height) + var(--vibe-reel-media-row-height));pointer-events:none;position:absolute;bottom:0;left:0;right:0}.reel-media-controls-host .media-controls{pointer-events:auto;position:absolute;inset:0}.reel-media-controls-host .media-control-seek{height:var(--vibe-reel-media-seek-height)}.reel-media-controls-host .media-controls-row{min-height:var(--vibe-reel-media-row-height)}.vibe-reel-media-controls-enter-active,.vibe-reel-media-controls-leave-active{transition:opacity .18s,transform .18s}.reel-media-controls-host .vibe-reel-media-controls-leave-active{pointer-events:none}.vibe-reel-media-controls-enter-from,.vibe-reel-media-controls-leave-to{opacity:0;transform:translateY(.25rem)}.media-controls-row{justify-content:flex-start;align-items:center;gap:.5rem;min-width:0;min-height:2.5rem;padding:.375rem;display:flex}.media-controls-audio{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#080808bf;border-radius:999px;align-items:center;gap:.375rem;min-width:0;padding:.125rem .375rem .125rem .125rem;display:flex}.media-control-button{width:1.75rem;height:1.75rem;color:inherit;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);cursor:pointer;background:#080808bf;border:0;border-radius:50%;flex:none;place-items:center;padding:0;transition:background .16s,transform .16s;display:grid}.media-controls-audio .media-control-button{-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0}.media-control-button:hover{background:#262626f0;transform:scale(1.04)}.media-controls-audio .media-control-button:hover{background:#ffffff29}.media-control-button:active{transform:scale(.92)}.media-control-button:focus-visible,.media-control-range:focus-visible{outline-offset:2px;outline:2px solid #f5f5f5}.media-control-time{color:#f5f5f5;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);font-variant-numeric:tabular-nums;white-space:nowrap;background:#080808bf;border-radius:999px;flex:none;padding:.5rem .75rem;font:500 .72rem/1 system-ui,sans-serif}.media-control-range{appearance:none;background:linear-gradient(to right, #f5f5f5 var(--media-range-progress), #ffffff4d var(--media-range-progress));cursor:pointer;height:.9rem;margin:0}.media-control-range::-webkit-slider-thumb{appearance:none;background:#f5f5f5;border:0;border-radius:50%;width:.75rem;height:.75rem;box-shadow:0 0 0 1px #0000004d}.media-control-range::-webkit-slider-runnable-track{background:0 0;height:100%}.media-control-range::-moz-range-thumb{background:#f5f5f5;border:0;border-radius:50%;width:.75rem;height:.75rem;box-shadow:0 0 0 1px #0000004d}.media-control-range::-moz-range-track{background:0 0;height:100%}.media-control-range:disabled{cursor:default;opacity:.45}.media-control-seek{border-radius:0;width:100%;height:.45rem}.media-control-seek::-webkit-slider-thumb{appearance:none;width:0;height:0;box-shadow:none;background:0 0;border-radius:0}.media-control-seek::-moz-range-thumb{width:0;height:0;box-shadow:none;background:0 0;border:0;border-radius:0}.media-control-volume{border-radius:999px;flex:0 5rem;width:clamp(2.75rem,18%,5rem);min-width:2.75rem}.reel-feed{scroll-snap-type:y mandatory;scrollbar-color:auto;scrollbar-gutter:auto;scrollbar-width:none;flex:auto;width:100%;min-height:0;padding:0;container-type:size}.reel-viewport{flex:auto;width:100%;min-height:0;position:relative}.reel-viewport>.reel-feed{height:100%}.reel-shell{--gallery-padding:clamp(.375rem, 1vw, .875rem);width:100%;height:100%;min-height:0;padding:var(--gallery-padding);-webkit-user-select:none;user-select:none;background:#080808;flex-direction:column;display:flex;overflow:hidden}.media-card-overlay-host{pointer-events:none;z-index:4;position:absolute;inset:0}.reel-shell>.media-card-region{width:100%}.reel-shell>.media-card-header{border-radius:.5rem .5rem 0 0}.reel-shell>.media-card-footer{border-radius:0 0 .5rem .5rem}.reel-feed::-webkit-scrollbar{width:0;height:0;display:none}.reel-feed[data-resizing],.reel-feed[data-transitioning]{scroll-snap-type:none}.reel-forward-status{color:#a3a3a3;text-align:center;place-content:center;place-items:center;gap:.75rem;min-height:100%;font:500 .875rem/1.5 system-ui,sans-serif;display:grid}.reel-forward-status p{margin:0}.reel-forward-retry{color:#f5f5f5;cursor:pointer;background:#171717;border:1px solid #404040;border-radius:.25rem;min-height:2rem;padding:.375rem .75rem}.reel-forward-retry:hover,.reel-forward-retry:focus-visible{background:#262626;border-color:#737373}.reel-forward-retry:focus-visible{outline-offset:2px;outline:2px solid #a3a3a3}.reel-track{width:100%;display:grid}.reel-item{scroll-snap-align:start;scroll-snap-stop:always;background:#080808;width:100%;min-width:0;height:100%;padding:0;position:relative}.reel-item .media-card-content{background:#171717;border-radius:.5rem;overflow:hidden}.reel-shell--has-header .reel-item .media-card-content{border-top-left-radius:0;border-top-right-radius:0}.reel-shell--has-footer .reel-item .media-card-content{border-bottom-right-radius:0;border-bottom-left-radius:0}.reel-item .media-preview{object-fit:contain}.reel-feed .gallery-footer{scroll-snap-align:end}.reel-auto-advance{width:calc(100% + (var(--gallery-padding) * 2));margin-right:calc(var(--gallery-padding) * -1);margin-bottom:calc(var(--gallery-padding) * -1);margin-left:calc(var(--gallery-padding) * -1);background:#ffffff2e;flex:0 0 .25rem;overflow:hidden}.reel-auto-advance-progress{transform-origin:0;width:100%;height:100%;animation:reel-auto-advance var(--vibe-reel-auto-advance-duration) linear forwards;background:#f5f5f5;display:block;transform:scaleX(0)}@keyframes reel-auto-advance{to{transform:scaleX(1)}}.media-loading,.media-error{z-index:1;position:absolute;inset:0}.media-loading{background:#171717;overflow:hidden}.media-loading-shimmer{background:linear-gradient(105deg,#0000 30%,#ffffff12 46%,#ffffff1c 50%,#ffffff12 54%,#0000 70%);animation:1.4s ease-in-out infinite media-loading-shimmer;position:absolute;inset:0;transform:translate(-100%)}.media-error{z-index:3;color:#a3a3a3;pointer-events:none;text-align:center;background:linear-gradient(145deg,#171717,#101010);align-content:center;justify-items:center;gap:.375rem;padding:1rem;font:500 .75rem/1.35 system-ui,sans-serif;display:grid}.media-error-retry{color:#f5f5f5;cursor:pointer;pointer-events:auto;background:#171717;border:1px solid #404040;border-radius:.25rem;min-height:2rem;margin-top:.375rem;padding:.375rem .75rem}.media-error-component{pointer-events:auto;display:contents}.media-error-retry:hover,.media-error-retry:focus-visible{background:#262626;border-color:#737373}.media-error-retry:disabled{cursor:wait;opacity:.72}.media-error-retry:focus-visible{outline-offset:2px;outline:2px solid #a3a3a3}.media-error-code{color:#e5e5e5;letter-spacing:.04em;font:650 1rem/1 system-ui,sans-serif}.media-preview{opacity:0;object-fit:cover;background:#171717;width:100%;height:100%;transition:opacity .22s,transform .32s;display:block;transform:scale(1.01)}.media-preview--ready{opacity:1;transform:none}.gallery-footer{place-items:center;min-height:5rem;display:grid}.load-more-status{color:#a3a3a3;margin:0;font:500 .8125rem/1.5 system-ui,sans-serif}.end-feed{justify-items:center;gap:.625rem;animation:.22s both end-feed-enter;display:grid}.end-feed-message{color:#a3a3a3;margin:0;font:500 .8125rem/1.5 system-ui,sans-serif}.load-more-button{color:#f5f5f5;cursor:pointer;background:#171717;border:1px solid #404040;border-radius:999px;min-width:8rem;min-height:2.5rem;padding:.625rem 1rem;font:600 .8125rem/1 system-ui,sans-serif;transition:border-color .16s,background .16s,transform .16s}.load-more-button:not(:disabled):hover{background:#262626;border-color:#737373}.load-more-button:not(:disabled):active{transform:translateY(1px)}.load-more-button:disabled{color:#737373;cursor:not-allowed;background:#171717;border-color:#262626}.load-more-button:focus-visible{outline-offset:3px;outline:2px solid #a3a3a3}@keyframes media-loading-shimmer{to{transform:translate(100%)}}@keyframes end-feed-enter{0%{opacity:0;transform:translateY(.375rem)}}@media (prefers-reduced-motion:reduce){.masonry,.masonry-item,.load-more-button,.end-feed,.media-control-button,.media-carousel-control,.media-carousel-controls,.media-slide-next-enter-active,.media-slide-next-leave-active,.media-slide-previous-enter-active,.media-slide-previous-leave-active,.vibe-reel-media-controls-enter-active,.vibe-reel-media-controls-leave-active,.media-preview,.gallery-scrollbar,.gallery-scrollbar-thumb,.vibe-reel-viewer-enter-active,.vibe-reel-viewer-leave-active,.vibe-info-sheet-enter-active,.vibe-info-sheet-leave-active,.vibe-info-sheet-enter-active>.reel-info-sheet,.vibe-info-sheet-leave-active>.reel-info-sheet{transition:none}.media-loading-shimmer{animation:none}}
1
+ .vibe-surface,.vibe-surface *{box-sizing:border-box}.vibe-surface{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;background:#080808;height:100%;min-height:0;position:relative;overflow:hidden;container-type:inline-size}.vibe-reel-overlay{z-index:10;background:#080808;outline:none;min-height:0;position:absolute;inset:0;overflow:hidden}.vibe-reel-overlay>.reel-layout{height:100%}.vibe-reel-viewer-enter-active,.vibe-reel-viewer-leave-active{will-change:transform;transition:transform .16s ease-out}.vibe-reel-viewer-enter-from,.vibe-reel-viewer-leave-to{transform:translate(-100%)}.vibe-reel-overlay[data-reel-entry=waiting] .reel-layout-main{opacity:0;transition:none}.vibe-reel-overlay[data-reel-entry=revealing] .reel-layout-main{opacity:1;transition:opacity .16s ease-out}.vibe-reel-overlay[data-reel-entry]:not([data-reel-entry=ready]) .media-preview--ready{opacity:1;transition:none;transform:none}.vibe-reel-entry-spinner{pointer-events:none;place-items:center;display:grid;position:absolute;inset:0}.vibe-reel-entry-spinner-ring{border:2px solid var(--vibe-reel-spinner-track,#333);border-top-color:var(--vibe-reel-spinner-accent,#fff);border-radius:50%;width:28px;height:28px;animation:.7s linear infinite vibe-reel-loading}@keyframes vibe-reel-loading{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.vibe-reel-overlay[data-reel-entry] .reel-layout-main{transition:none}.vibe-reel-entry-spinner-ring{animation:none}}.reel-layout{background:#080808;flex-direction:column;width:100%;min-width:0;height:100%;min-height:0;display:flex;position:relative;overflow:hidden}.reel-layout-main{flex:1 1 0;min-width:0;min-height:0;overflow:hidden}.reel-layout-main>.reel-shell{height:100%}.reel-info-sheet-layer{z-index:12;background:#111;min-width:0;min-height:0;overflow:hidden}.reel-info-sheet{overscroll-behavior:contain;background:#111;outline:none;width:100%;min-width:0;max-width:100%;min-height:0;overflow:auto}.reel-layout--overlay>.reel-info-sheet-layer{background:#00000094;align-items:flex-end;display:flex;position:absolute;inset:0}.reel-layout--overlay .reel-info-sheet{border-top:1px solid #333;max-height:80%;box-shadow:0 -1rem 2.5rem #0006}.reel-layout--layout>.reel-info-sheet-layer{border-top:1px solid #333;flex:0 0 50%;width:100%;height:50%;max-height:50%}.reel-layout--layout .reel-info-sheet{height:100%;max-height:100%}.vibe-info-sheet-enter-active,.vibe-info-sheet-leave-active{will-change:max-height, opacity;transition:max-height .3s cubic-bezier(.22,1,.36,1),opacity .22s}.vibe-info-sheet-enter-active>.reel-info-sheet,.vibe-info-sheet-leave-active>.reel-info-sheet{will-change:opacity, transform;transition:opacity .22s,transform .3s cubic-bezier(.22,1,.36,1)}.reel-layout--overlay>.vibe-info-sheet-enter-from,.reel-layout--overlay>.vibe-info-sheet-leave-to{opacity:0}.reel-layout--layout>.vibe-info-sheet-enter-from,.reel-layout--layout>.vibe-info-sheet-leave-to{opacity:0;max-height:0}.reel-layout--overlay>.vibe-info-sheet-enter-from>.reel-info-sheet,.reel-layout--overlay>.vibe-info-sheet-leave-to>.reel-info-sheet,.reel-layout--layout>.vibe-info-sheet-enter-from>.reel-info-sheet,.reel-layout--layout>.vibe-info-sheet-leave-to>.reel-info-sheet{opacity:0;transform:translateY(100%)}@container (width>=1025px){.reel-layout--layout{flex-direction:row}.reel-layout--layout>.reel-info-sheet-layer{border-top:0;border-left:1px solid #333;flex:0 0 25cqw;width:25cqw;height:100%;max-height:none}.reel-layout--layout>.vibe-info-sheet-enter-active,.reel-layout--layout>.vibe-info-sheet-leave-active{will-change:flex-basis, width, opacity;transition:flex-basis .3s cubic-bezier(.22,1,.36,1),width .3s cubic-bezier(.22,1,.36,1),opacity .22s}.reel-layout--layout>.vibe-info-sheet-enter-from,.reel-layout--layout>.vibe-info-sheet-leave-to{flex-basis:0;width:0;max-height:none}.reel-layout--layout>.vibe-info-sheet-enter-from>.reel-info-sheet,.reel-layout--layout>.vibe-info-sheet-leave-to>.reel-info-sheet{transform:translate(100%)}}@media (width>=1920px){@container (width>=1025px){.reel-layout--layout>.reel-info-sheet-layer{flex-basis:40cqw;width:40cqw}.reel-layout--layout>.vibe-info-sheet-enter-from,.reel-layout--layout>.vibe-info-sheet-leave-to{flex-basis:0;width:0}}}.gallery-shell{--gallery-padding:clamp(.375rem, 1vw, .875rem);overscroll-behavior-y:contain;height:100%;min-height:0;padding:var(--gallery-padding);scrollbar-color:#525252 #111;scrollbar-gutter:stable;scrollbar-width:thin;-webkit-user-select:none;user-select:none;overflow:hidden auto}.gallery-shell::-webkit-scrollbar{width:.625rem}.gallery-shell::-webkit-scrollbar-track{background:#111}.gallery-shell::-webkit-scrollbar-thumb{background:#525252;border:.125rem solid #111;border-radius:999px}.gallery-shell::-webkit-scrollbar-thumb:hover{background:#737373}.masonry-feed-shell{--gallery-padding:clamp(.375rem, 1vw, .875rem);height:100%;min-height:0;position:relative;overflow:hidden}.masonry-feed{padding-right:calc(var(--gallery-padding) + .5rem);scrollbar-gutter:auto;scrollbar-width:none;flex-direction:column;display:flex}.masonry-feed::-webkit-scrollbar{width:0;height:0;display:none}.masonry-feed-status-overlay{z-index:9;right:calc(var(--gallery-padding) + 1rem);bottom:var(--gallery-padding);left:var(--gallery-padding);pointer-events:none;justify-items:center;display:grid;position:absolute}.masonry-feed-status-overlay>*{pointer-events:auto}.masonry-feed-status-overlay .gallery-footer{min-height:0;padding:.375rem}.masonry-feed-status-overlay .load-more-status,.masonry-feed-status-overlay .end-feed-message{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#080808ad;border:1px solid #ffffff29;border-radius:999px;padding:.375rem .625rem}.gallery-scrollbar{z-index:8;top:var(--gallery-padding);right:.125rem;bottom:var(--gallery-padding);opacity:0;visibility:hidden;cursor:pointer;pointer-events:none;touch-action:none;-webkit-user-select:none;user-select:none;background:#111;border-radius:999px;width:.625rem;transition:opacity .16s,visibility .16s;position:absolute;overflow:hidden}.gallery-scrollbar--visible{opacity:1;visibility:visible;pointer-events:auto}.gallery-scrollbar-thumb{cursor:grab;touch-action:none;background:#525252;border:.125rem solid #111;border-radius:999px;width:100%;min-height:2rem;position:absolute;top:0;left:0}.gallery-scrollbar--ready:not(.gallery-scrollbar--interacting):not(.gallery-scrollbar--dragging) .gallery-scrollbar-thumb{will-change:height, transform;transition:height .22s cubic-bezier(.22,1,.36,1),transform .22s cubic-bezier(.22,1,.36,1)}.gallery-scrollbar-thumb:hover{background:#737373}.gallery-scrollbar-thumb:focus-visible{outline-offset:-1px;outline:2px solid #d4d4d4}.gallery-scrollbar--dragging .gallery-scrollbar-thumb{cursor:grabbing}.gallery-status{color:#a3a3a3;place-items:center;min-height:calc(100% - 1.75rem);margin:0;font:500 .875rem/1.5 system-ui,sans-serif;display:grid}.masonry{opacity:0;flex:1 0 auto;transition:opacity .16s;position:relative;overflow:clip}.masonry-feed--suspended{pointer-events:none;overflow:hidden}.masonry--ready{opacity:1}.masonry-item{transition:transform .42s cubic-bezier(.22, 1, .36, 1) var(--masonry-entry-delay,0s);background:#171717;border-radius:.5rem;position:absolute;top:0;left:0;overflow:hidden}.masonry-item.media-card--entering{will-change:transform;transition:none}.masonry-item.media-card--leaving{pointer-events:none;will-change:transform}.media-card{background:#171717}.media-card[role=button]{cursor:pointer}.media-card[role=button]:focus-visible{outline-offset:-2px;outline:2px solid #f5f5f5}.media-card-focus-silent:focus{outline:none!important}.media-card--error{background:#121212}.media-card--transparent-chrome{background:0 0}.media-card-content{flex-direction:column;width:100%;height:100%;display:flex;position:relative}.media-card-media{background:#171717;flex:auto;min-width:0;min-height:0;position:relative;overflow:hidden}.media-card-media--carousel{touch-action:pan-y}.media-card-frame{position:absolute;inset:0}.media-slide-next-enter-active,.media-slide-next-leave-active,.media-slide-previous-enter-active,.media-slide-previous-leave-active{will-change:opacity, transform;transition:opacity .22s,transform .28s cubic-bezier(.22,1,.36,1)}.media-slide-next-enter-from,.media-slide-previous-leave-to{opacity:.72;transform:translate(100%)}.media-slide-next-leave-to,.media-slide-previous-enter-from{opacity:.72;transform:translate(-100%)}.media-card-header,.media-card-footer{z-index:2;pointer-events:auto;background:#111;flex:none;min-width:0;position:relative;overflow:hidden}.media-card-region--transparent{background:0 0}.media-card-activator{z-index:1;cursor:pointer;background:0 0;border:0;padding:0;position:absolute;inset:0}.media-card-activator:focus-visible{outline-offset:-2px;outline:2px solid #f5f5f5}.media-carousel-controls{z-index:4;pointer-events:none;opacity:0;visibility:hidden;justify-content:space-between;transition:opacity .16s,visibility .16s;display:flex;position:absolute;top:50%;left:.625rem;right:.625rem;transform:translateY(-50%)}.media-card:hover .media-carousel-controls,.media-carousel-controls--persistent{opacity:1;visibility:visible}.media-card:focus-within:not(.media-card-focus-silent):not(:has(.media-card-focus-silent)) .media-carousel-controls{opacity:1;visibility:visible}.media-carousel-control{color:#f5f5f5;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);cursor:pointer;pointer-events:auto;background:#080808c7;border:1px solid #ffffff59;border-radius:50%;place-items:center;width:2.5rem;height:2.5rem;padding:0;transition:background .16s,opacity .16s,transform .16s;display:grid}.media-carousel-control:hover:not(:disabled){background:#262626f0;transform:scale(1.04)}.media-carousel-control:active:not(:disabled){transform:scale(.96)}.media-carousel-control:disabled{cursor:default;opacity:.28}.media-carousel-control:focus-visible{outline-offset:3px;outline:2px solid #f5f5f5}.media-preview--reel-video{cursor:default}.media-audio-element{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute;overflow:hidden}.media-audio-artwork{color:#d4d4d4;cursor:pointer;border:0;padding:0;position:relative}.media-audio-artwork:disabled{color:#d4d4d4;cursor:default}.media-audio-artwork:focus-visible{outline-offset:-3px;outline:2px solid #f5f5f5}.media-audio-cover{object-fit:cover;width:100%;height:100%;display:block}.reel-item .media-audio-cover{object-fit:contain}.media-audio-fallback{background:radial-gradient(circle,#ffffff1a 0 13%,#0000 14%),radial-gradient(circle,#262626 0 42%,#171717 43% 100%);place-items:center;width:100%;height:100%;display:grid}.media-controls{z-index:5;color:#f5f5f5;cursor:default;background:0 0;border:0;border-radius:0;gap:0;padding:0;display:grid;position:absolute;bottom:0;left:0;right:0}.reel-media-controls-host{--vibe-reel-media-seek-height:.9rem;--vibe-reel-media-row-height:2.5rem;z-index:6;height:calc(var(--vibe-reel-media-seek-height) + var(--vibe-reel-media-row-height));pointer-events:none;position:absolute;bottom:0;left:0;right:0}.reel-media-controls-host .media-controls{pointer-events:auto;position:absolute;inset:0}.reel-media-controls-host .media-control-seek{height:var(--vibe-reel-media-seek-height)}.reel-media-controls-host .media-controls-row{min-height:var(--vibe-reel-media-row-height)}.vibe-reel-media-controls-enter-active,.vibe-reel-media-controls-leave-active{transition:opacity .18s,transform .18s}.reel-media-controls-host .vibe-reel-media-controls-leave-active{pointer-events:none}.vibe-reel-media-controls-enter-from,.vibe-reel-media-controls-leave-to{opacity:0;transform:translateY(.25rem)}.media-controls-row{justify-content:flex-start;align-items:center;gap:.5rem;min-width:0;min-height:2.5rem;padding:.375rem;display:flex}.media-controls-audio{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#080808bf;border-radius:999px;align-items:center;gap:.375rem;min-width:0;padding:.125rem .375rem .125rem .125rem;display:flex}.media-control-button{width:1.75rem;height:1.75rem;color:inherit;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);cursor:pointer;background:#080808bf;border:0;border-radius:50%;flex:none;place-items:center;padding:0;transition:background .16s,transform .16s;display:grid}.media-controls-audio .media-control-button{-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0}.media-control-button:hover{background:#262626f0;transform:scale(1.04)}.media-controls-audio .media-control-button:hover{background:#ffffff29}.media-control-button:active{transform:scale(.92)}.media-control-button:focus-visible,.media-control-range:focus-visible{outline-offset:2px;outline:2px solid #f5f5f5}.media-control-time{color:#f5f5f5;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);font-variant-numeric:tabular-nums;white-space:nowrap;background:#080808bf;border-radius:999px;flex:none;padding:.5rem .75rem;font:500 .72rem/1 system-ui,sans-serif}.media-control-range{appearance:none;background:linear-gradient(to right, #f5f5f5 var(--media-range-progress), #ffffff4d var(--media-range-progress));cursor:pointer;height:.9rem;margin:0}.media-control-range::-webkit-slider-thumb{appearance:none;background:#f5f5f5;border:0;border-radius:50%;width:.75rem;height:.75rem;box-shadow:0 0 0 1px #0000004d}.media-control-range::-webkit-slider-runnable-track{background:0 0;height:100%}.media-control-range::-moz-range-thumb{background:#f5f5f5;border:0;border-radius:50%;width:.75rem;height:.75rem;box-shadow:0 0 0 1px #0000004d}.media-control-range::-moz-range-track{background:0 0;height:100%}.media-control-range:disabled{cursor:default;opacity:.45}.media-control-seek{border-radius:0;width:100%;height:.45rem}.media-control-seek::-webkit-slider-thumb{appearance:none;width:0;height:0;box-shadow:none;background:0 0;border-radius:0}.media-control-seek::-moz-range-thumb{width:0;height:0;box-shadow:none;background:0 0;border:0;border-radius:0}.media-control-volume{border-radius:999px;flex:0 5rem;width:clamp(2.75rem,18%,5rem);min-width:2.75rem}.reel-feed{scroll-snap-type:y mandatory;scrollbar-color:auto;scrollbar-gutter:auto;scrollbar-width:none;flex:auto;width:100%;min-height:0;padding:0;container-type:size}.reel-viewport{flex:auto;width:100%;min-height:0;position:relative}.reel-viewport>.reel-feed{height:100%}.reel-shell{--gallery-padding:clamp(.375rem, 1vw, .875rem);width:100%;height:100%;min-height:0;padding:var(--gallery-padding);-webkit-user-select:none;user-select:none;background:#080808;flex-direction:column;display:flex;overflow:hidden}.media-card-overlay-host{pointer-events:none;z-index:4;position:absolute;inset:0}.reel-shell>.media-card-region{width:100%}.reel-shell>.media-card-header{border-radius:.5rem .5rem 0 0}.reel-shell>.media-card-footer{border-radius:0 0 .5rem .5rem}.reel-feed::-webkit-scrollbar{width:0;height:0;display:none}.reel-feed[data-resizing],.reel-feed[data-transitioning]{scroll-snap-type:none}.reel-forward-status{color:#a3a3a3;text-align:center;place-content:center;place-items:center;gap:.75rem;min-height:100%;font:500 .875rem/1.5 system-ui,sans-serif;display:grid}.reel-forward-status p{margin:0}.reel-forward-retry{color:#f5f5f5;cursor:pointer;background:#171717;border:1px solid #404040;border-radius:.25rem;min-height:2rem;padding:.375rem .75rem}.reel-forward-retry:hover,.reel-forward-retry:focus-visible{background:#262626;border-color:#737373}.reel-forward-retry:focus-visible{outline-offset:2px;outline:2px solid #a3a3a3}.reel-track{width:100%;display:grid}.reel-item{scroll-snap-align:start;scroll-snap-stop:always;background:#080808;width:100%;min-width:0;height:100%;padding:0;position:relative}.reel-item .media-card-content{background:#171717;border-radius:.5rem;overflow:hidden}.reel-shell--has-header .reel-item .media-card-content{border-top-left-radius:0;border-top-right-radius:0}.reel-shell--has-footer .reel-item .media-card-content{border-bottom-right-radius:0;border-bottom-left-radius:0}.reel-item .media-preview{object-fit:contain;transition:opacity .16s ease-out,transform .16s ease-out}.reel-feed .gallery-footer{scroll-snap-align:end}.reel-auto-advance{width:calc(100% + (var(--gallery-padding) * 2));margin-right:calc(var(--gallery-padding) * -1);margin-bottom:calc(var(--gallery-padding) * -1);margin-left:calc(var(--gallery-padding) * -1);background:#ffffff2e;flex:0 0 .25rem;overflow:hidden}.reel-auto-advance-progress{transform-origin:0;width:100%;height:100%;animation:reel-auto-advance var(--vibe-reel-auto-advance-duration) linear forwards;background:#f5f5f5;display:block;transform:scaleX(0)}@keyframes reel-auto-advance{to{transform:scaleX(1)}}.media-loading,.media-error{z-index:1;position:absolute;inset:0}.media-loading{background:#171717;overflow:hidden}.media-loading-shimmer{background:linear-gradient(105deg,#0000 30%,#ffffff12 46%,#ffffff1c 50%,#ffffff12 54%,#0000 70%);animation:1.4s ease-in-out infinite media-loading-shimmer;position:absolute;inset:0;transform:translate(-100%)}.media-error{z-index:3;color:#a3a3a3;pointer-events:none;text-align:center;background:linear-gradient(145deg,#171717,#101010);align-content:center;justify-items:center;gap:.375rem;padding:1rem;font:500 .75rem/1.35 system-ui,sans-serif;display:grid}.media-error-retry{color:#f5f5f5;cursor:pointer;pointer-events:auto;background:#171717;border:1px solid #404040;border-radius:.25rem;min-height:2rem;margin-top:.375rem;padding:.375rem .75rem}.media-error-component{pointer-events:auto;display:contents}.media-error-retry:hover,.media-error-retry:focus-visible{background:#262626;border-color:#737373}.media-error-retry:disabled{cursor:wait;opacity:.72}.media-error-retry:focus-visible{outline-offset:2px;outline:2px solid #a3a3a3}.media-error-code{color:#e5e5e5;letter-spacing:.04em;font:650 1rem/1 system-ui,sans-serif}.media-preview{opacity:0;object-fit:cover;background:#171717;width:100%;height:100%;transition:opacity .22s,transform .32s;display:block;transform:scale(1.01)}.media-preview--ready{opacity:1;transform:none}.gallery-footer{place-items:center;min-height:5rem;display:grid}.load-more-status{color:#a3a3a3;margin:0;font:500 .8125rem/1.5 system-ui,sans-serif}.end-feed{justify-items:center;gap:.625rem;animation:.22s both end-feed-enter;display:grid}.end-feed-message{color:#a3a3a3;margin:0;font:500 .8125rem/1.5 system-ui,sans-serif}.load-more-button{color:#f5f5f5;cursor:pointer;background:#171717;border:1px solid #404040;border-radius:999px;min-width:8rem;min-height:2.5rem;padding:.625rem 1rem;font:600 .8125rem/1 system-ui,sans-serif;transition:border-color .16s,background .16s,transform .16s}.load-more-button:not(:disabled):hover{background:#262626;border-color:#737373}.load-more-button:not(:disabled):active{transform:translateY(1px)}.load-more-button:disabled{color:#737373;cursor:not-allowed;background:#171717;border-color:#262626}.load-more-button:focus-visible{outline-offset:3px;outline:2px solid #a3a3a3}@keyframes media-loading-shimmer{to{transform:translate(100%)}}@keyframes end-feed-enter{0%{opacity:0;transform:translateY(.375rem)}}@media (prefers-reduced-motion:reduce){.masonry,.masonry-item,.load-more-button,.end-feed,.media-control-button,.media-carousel-control,.media-carousel-controls,.media-slide-next-enter-active,.media-slide-next-leave-active,.media-slide-previous-enter-active,.media-slide-previous-leave-active,.vibe-reel-media-controls-enter-active,.vibe-reel-media-controls-leave-active,.media-preview,.gallery-scrollbar,.gallery-scrollbar-thumb,.vibe-reel-viewer-enter-active,.vibe-reel-viewer-leave-active,.vibe-info-sheet-enter-active,.vibe-info-sheet-leave-active,.vibe-info-sheet-enter-active>.reel-info-sheet,.vibe-info-sheet-leave-active>.reel-info-sheet{transition:none}.media-loading-shimmer{animation:none}}
2
2
  /*$vite$:1*/
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 interface VibeInstance {
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';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wyxos/vibe",
3
- "version": "5.17.1",
3
+ "version": "5.18.0",
4
4
  "description": "An initializable Vue 3 media feed with virtualized masonry and reel layouts.",
5
5
  "keywords": [
6
6
  "vue",
@@ -14,7 +14,6 @@
14
14
  "type": "git",
15
15
  "url": "https://github.com/wyxos/vibe.git"
16
16
  },
17
- "homepage": "https://vibe.wyxos.com/",
18
17
  "bugs": {
19
18
  "url": "https://github.com/wyxos/vibe/issues"
20
19
  },
@@ -36,24 +35,18 @@
36
35
  "lib"
37
36
  ],
38
37
  "scripts": {
39
- "dev": "concurrently --kill-others --names demo,docs \"npm:dev:demo\" \"npm:docs:dev\"",
40
- "dev:demo": "vite --host 127.0.0.1 --port 5173 --strictPort",
41
- "docs:build": "vitepress build docs",
42
- "docs:dev": "vitepress dev docs --host 127.0.0.1 --port 5174 --strictPort",
43
- "docs:preview": "vitepress preview docs",
44
- "build": "vite build && vitepress build docs && node scripts/write-cname.mjs",
38
+ "dev": "vite --config site/vite.config.ts --host 127.0.0.1 --port 5175",
39
+ "build": "npm run build:lib",
45
40
  "build:lib": "vite build --config vite.config.lib.ts && npm run build:types",
46
41
  "build:types": "vue-tsc -p tsconfig.lib.json",
47
- "check:demo-dist": "node scripts/check-demo-dist.mjs",
48
42
  "check:package": "node scripts/check-package-shape.mjs",
49
- "prepublishOnly": "npm run check && npm run test:unit && npm run build:lib && npm run test:e2e && npm run check:package",
50
- "preview": "vite preview",
43
+ "prepublishOnly": "npm run check && npm run test:unit && npm run test:runner && npm run test:e2e:built && npm run check:package",
51
44
  "release": "npx @wyxos/zephyr --type=node",
52
45
  "release:atlas": "npm exec --yes --package @wyxos/zephyr@latest -- zephyr --type=node --non-interactive --auto-commit --then-deploy ../../php/atlas --consumer-preset \"Atlas Production (Windows)\" --consumer-package @wyxos/vibe --consumer-maintenance off --consumer-skip-git-hooks --consumer-auto-commit --skip-git-hooks patch",
53
46
  "release:verified": "npm run release && npm run verify:published -- --wait",
54
47
  "verify:published": "node scripts/verify-published-version.mjs",
55
48
  "test:e2e": "node scripts/run-playwright.mjs",
56
- "test:e2e:built": "npm run build && npm run check:demo-dist && node scripts/run-playwright.mjs --built",
49
+ "test:e2e:built": "npm run build:lib && node scripts/run-playwright.mjs --built",
57
50
  "test:e2e:headed": "node scripts/run-playwright.mjs --headed",
58
51
  "test:e2e:install": "playwright install chromium",
59
52
  "test:e2e:ui": "node scripts/run-playwright.mjs --ui",
@@ -62,7 +55,12 @@
62
55
  "check": "npm run lint && npm run typecheck",
63
56
  "lint": "eslint . --max-warnings 0",
64
57
  "lint:fix": "eslint . --fix",
65
- "typecheck": "vue-tsc --noEmit --pretty false"
58
+ "typecheck": "vue-tsc --noEmit --pretty false && vue-tsc --noEmit -p tests/browser/tsconfig.json --pretty false && vue-tsc --noEmit -p site/tsconfig.json --pretty false",
59
+ "test:runner": "node --test tests/tooling/playwright-guard.test.mjs tests/tooling/library-watch.test.mjs",
60
+ "dev:lib": "npm run build:lib && concurrently --kill-others --names bundle,types \"vite build --watch --mode development --config vite.config.lib.ts\" \"vue-tsc --watch -p tsconfig.lib.json\"",
61
+ "build:site": "vite build --config site/vite.config.ts",
62
+ "build:site:dev": "vite build --config site/vite.config.ts --mode development",
63
+ "test:site": "node scripts/run-playwright.mjs --site"
66
64
  },
67
65
  "peerDependencies": {
68
66
  "vue": "^3.5.0",
@@ -90,7 +88,6 @@
90
88
  "tailwindcss": "^4.1.18",
91
89
  "typescript": "~5.9.3",
92
90
  "vite": "^8.0.1",
93
- "vitepress": "^1.6.4",
94
91
  "vitest": "^4.1.2",
95
92
  "vue": "^3.5.30",
96
93
  "vue-eslint-parser": "^10.0.0",