@wyxos/vibe 5.0.2 → 5.1.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/types.d.ts CHANGED
@@ -58,6 +58,7 @@ export interface VibePreview {
58
58
  height: number | null;
59
59
  }
60
60
  export interface VibeMediaAsset {
61
+ mediaId?: VibeItemId;
61
62
  src: string;
62
63
  preview: VibePreview;
63
64
  width: number | null;
@@ -75,10 +76,21 @@ export interface VibeMediaTarget {
75
76
  mediaIndex: number;
76
77
  postId: VibeItemId;
77
78
  }
79
+ export interface VibeReelItemTarget {
80
+ mediaId: VibeItemId;
81
+ postId: VibeItemId;
82
+ }
83
+ export type VibeReelNavigationResult = 'navigated' | 'not-found' | 'reel-inactive';
78
84
  export interface VibeMediaPlacement extends VibeMediaTarget {
79
85
  media: VibeMediaAsset;
80
86
  postIndex: number;
81
87
  }
88
+ export interface VibeMediaLifecycleContext extends VibeMediaPlacement {
89
+ item: VibeItem;
90
+ layout: VibeLayout;
91
+ mediaId: VibeItemId | null;
92
+ origin: VibeReelOrigin | null;
93
+ }
82
94
  declare const vibeRemovalBrand: unique symbol;
83
95
  declare const vibeMediaRemovalBrand: unique symbol;
84
96
  export type VibeRemoval = readonly VibeItemPlacement[] & {
@@ -322,6 +334,8 @@ export interface CreateVibeOptions {
322
334
  initialPage?: VibeInitialPage;
323
335
  loadPage?: VibePageLoader;
324
336
  mediaCard?: VibeMediaCardOptions;
337
+ onMediaReady?: (context: VibeMediaLifecycleContext) => void;
338
+ onReelMediaChange?: (context: VibeMediaLifecycleContext) => void;
325
339
  onStateChange?: (state: VibeState) => void;
326
340
  removalHistoryLimit?: number;
327
341
  reelAutoAdvance?: VibeReelAutoAdvanceOptions;
@@ -359,6 +373,7 @@ export interface VibeInstance {
359
373
  getState: () => VibeState;
360
374
  loadNext: () => Promise<void>;
361
375
  mount: () => Promise<void>;
376
+ navigateToReelItem: (target: VibeReelItemTarget) => VibeReelNavigationResult;
362
377
  nextReelMediaItem: () => boolean;
363
378
  nextReelPost: () => boolean;
364
379
  pauseAutoScroll: () => void;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wyxos/vibe",
3
- "version": "5.0.2",
3
+ "version": "5.1.0",
4
4
  "description": "An initializable Vue 3 media feed with virtualized masonry and reel layouts.",
5
5
  "keywords": [
6
6
  "vue",