@wyxos/vibe 3.0.4 → 3.0.6

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.
@@ -13,12 +13,10 @@ export declare function useVibeMasonryList(options: {
13
13
  commitPendingAppend: Ref<(() => void | Promise<void>) | null | undefined>;
14
14
  requestNextPage: Ref<(() => void | Promise<void>) | null | undefined>;
15
15
  requestPreviousPage: Ref<(() => void | Promise<void>) | null | undefined>;
16
- restoreToken: Ref<number>;
17
16
  setActiveIndex: (index: number) => void;
18
17
  }): {
19
18
  columnWidth: import("vue").ComputedRef<number>;
20
19
  containerHeight: import("vue").ComputedRef<number>;
21
- footerStatusMessage: import("vue").ComputedRef<"Loading the first page" | "Loading more items" | "End of list" | null>;
22
20
  getCardStyle: (index: number) => {
23
21
  height: string;
24
22
  width: string;
@@ -26,10 +24,44 @@ export declare function useVibeMasonryList(options: {
26
24
  transitionDelay: string | undefined;
27
25
  transform: string;
28
26
  };
27
+ getLeavingCardStyle: (item: VibeViewerItem) => {
28
+ opacity: string;
29
+ transform: string;
30
+ transition: string;
31
+ height?: undefined;
32
+ width?: undefined;
33
+ } | {
34
+ height: string;
35
+ opacity: string;
36
+ transform: string;
37
+ transition: string;
38
+ width: string;
39
+ };
29
40
  getScrollbarThumbStyle: () => {
30
41
  height: string;
31
42
  transform: string;
32
43
  };
44
+ leavingItems: import("vue").ComputedRef<{
45
+ height: number;
46
+ item: {
47
+ [x: string]: unknown;
48
+ id: string;
49
+ type: import("../viewer").VibeViewerType;
50
+ title?: string | undefined;
51
+ url: string;
52
+ preview?: {
53
+ url: string;
54
+ width?: number | undefined;
55
+ height?: number | undefined;
56
+ } | undefined;
57
+ width?: number | undefined;
58
+ height?: number | undefined;
59
+ };
60
+ position: {
61
+ x: number;
62
+ y: number;
63
+ };
64
+ }[]>;
33
65
  onScroll: () => void;
34
66
  onWheel: (event: WheelEvent) => void;
35
67
  paginationLabel: import("vue").ComputedRef<string>;
@@ -2,8 +2,14 @@ import { type ComputedRef, type Ref } from 'vue';
2
2
  import type { VibeViewerItem } from '../viewer';
3
3
  import type { LayoutPosition } from './masonryLayout';
4
4
  export type VibeMasonryEnterDirection = 'bottom' | 'top';
5
+ export interface VibeMasonryLeavingItem {
6
+ height: number;
7
+ item: VibeViewerItem;
8
+ position: LayoutPosition;
9
+ }
5
10
  export declare function getVibeMasonryEnterOrder(itemIds: string[], direction: VibeMasonryEnterDirection): string[];
6
11
  export declare function getVibeMasonryEnterDuration(itemCount: number): number;
12
+ export declare function getVibeMasonryLeaveDuration(): number;
7
13
  export declare function getVibeMasonryEnterStartY(options: {
8
14
  direction: VibeMasonryEnterDirection;
9
15
  itemHeight: number;
@@ -24,6 +30,41 @@ export declare function useMasonryMotion(options: {
24
30
  getCardTransform: (index: number) => string;
25
31
  getCardTransition: (itemId: string) => string | undefined;
26
32
  getCardTransitionDelay: (itemId: string) => string | undefined;
33
+ getLeavingCardStyle: (item: VibeViewerItem) => {
34
+ opacity: string;
35
+ transform: string;
36
+ transition: string;
37
+ height?: undefined;
38
+ width?: undefined;
39
+ } | {
40
+ height: string;
41
+ opacity: string;
42
+ transform: string;
43
+ transition: string;
44
+ width: string;
45
+ };
46
+ leavingItems: ComputedRef<{
47
+ height: number;
48
+ item: {
49
+ [x: string]: unknown;
50
+ id: string;
51
+ type: import("../viewer").VibeViewerType;
52
+ title?: string | undefined;
53
+ url: string;
54
+ preview?: {
55
+ url: string;
56
+ width?: number | undefined;
57
+ height?: number | undefined;
58
+ } | undefined;
59
+ width?: number | undefined;
60
+ height?: number | undefined;
61
+ };
62
+ position: {
63
+ x: number;
64
+ y: number;
65
+ };
66
+ }[]>;
27
67
  markEnter: (items: VibeViewerItem[], direction?: VibeMasonryEnterDirection) => void;
68
+ markLeave: (items: VibeMasonryLeavingItem[]) => void;
28
69
  playFlipMoveAnimation: (oldPositionsById: Map<string, LayoutPosition>, skipIds?: Set<string>, durationMs?: number) => void;
29
70
  };
@@ -0,0 +1,15 @@
1
+ import { type Ref } from 'vue';
2
+ import type { VibeEmptyStateMode, VibeEmptyStateSlotProps } from './surfaceSlots';
3
+ export declare const DEFAULT_VIBE_EMPTY_STATE_MESSAGE = "no items available";
4
+ export declare function useSurfaceEmptyState(options: {
5
+ emptyStateMode: Ref<VibeEmptyStateMode | undefined>;
6
+ itemCount: Ref<number>;
7
+ loading: Ref<boolean | undefined>;
8
+ renderSlot?: ((props: VibeEmptyStateSlotProps) => unknown) | undefined;
9
+ surface: VibeEmptyStateSlotProps['surface'];
10
+ }): {
11
+ emptyStateProps: import("vue").ComputedRef<VibeEmptyStateSlotProps | null>;
12
+ showBadgeEmptyState: import("vue").ComputedRef<boolean>;
13
+ showCustomEmptyState: import("vue").ComputedRef<boolean>;
14
+ showInlineEmptyState: import("vue").ComputedRef<boolean>;
15
+ };
@@ -1,20 +1,31 @@
1
1
  import { type Ref } from 'vue';
2
+ import type { VibeViewerItem } from '../viewer';
2
3
  import type { VibeAssetErrorReporter, VibeAssetLoadReporter } from './assetErrors';
3
4
  import { formatPlaybackTime } from './format';
4
- import { type VibeProps } from './useDataSource';
5
- export type { VibeResolveParams, VibeResolveResult, VibeAutoProps, VibeControlledProps, VibeEmit, VibeFeedMode, VibeHandle, VibeInitialState, VibeLoadPhase, VibeProps, } from './useDataSource';
5
+ import type { VibeLoadPhase } from './removalState';
6
+ export type { VibeResolveParams, VibeResolveResult, VibeEmit, VibeFeedMode, VibeHandle, VibeInitialState, VibeLoadPhase, VibeProps, VibeSurfaceMode, } from './useDataSource';
6
7
  export type { VibeAssetErrorKind } from './loadError';
7
8
  export type { VibeStatus } from './removalState';
8
9
  export type { VibeAssetErrorEvent, VibeAssetErrorReporter, VibeAssetErrorSurface, VibeAssetLoadEvent, VibeAssetLoadReporter, VibeAssetLoadSurface } from './assetErrors';
9
- export declare function useViewer(props: Readonly<VibeProps>, emit: (event: 'update:activeIndex', value: number) => void, options?: {
10
+ export type { VibeEmptyStateMode, VibeEmptyStateSlotProps } from './surfaceSlots';
11
+ export interface VibeViewerProps {
12
+ activeIndex?: number;
13
+ errorMessage?: string | null;
14
+ hasNextPage?: boolean;
15
+ items: VibeViewerItem[];
16
+ loading?: boolean;
17
+ paginationDetail?: string | null;
18
+ phase?: VibeLoadPhase | null;
19
+ }
20
+ export declare function useViewer(props: Readonly<VibeViewerProps>, emit: (event: 'update:activeIndex', value: number) => void, options?: {
10
21
  enabled?: Ref<boolean>;
11
22
  onAssetError?: VibeAssetErrorReporter;
12
23
  onAssetLoad?: VibeAssetLoadReporter;
13
24
  }): {
14
- activeItem: import("vue").ComputedRef<import("../viewer").VibeViewerItem>;
25
+ activeItem: import("vue").ComputedRef<VibeViewerItem>;
15
26
  activeAssetErrorKind: import("vue").ComputedRef<import("./loadError").VibeAssetErrorKind | null>;
16
27
  activeMediaDuration: import("vue").ComputedRef<number>;
17
- activeMediaItem: import("vue").ComputedRef<import("../viewer").VibeViewerItem | null>;
28
+ activeMediaItem: import("vue").ComputedRef<VibeViewerItem | null>;
18
29
  activeMediaProgress: import("vue").ComputedRef<number>;
19
30
  activeMediaState: import("vue").ComputedRef<import("./assetState").MediaUiState>;
20
31
  canRetryAsset: (id: string) => boolean;
@@ -24,13 +35,13 @@ export declare function useViewer(props: Readonly<VibeProps>, emit: (event: 'upd
24
35
  getAssetErrorLabel: (id: string) => "404" | "Load error" | null;
25
36
  getAssetRenderKey: (id: string) => string;
26
37
  formatPlaybackTime: typeof formatPlaybackTime;
27
- getImageSource: (item: import("../viewer").VibeViewerItem) => string;
38
+ getImageSource: (item: VibeViewerItem) => string;
28
39
  getSlideStyle: (index: number) => import("vue").CSSProperties;
29
40
  hasNextPage: import("vue").ComputedRef<boolean>;
30
41
  isAtEnd: import("vue").ComputedRef<boolean>;
31
- isAudio: (item: import("../viewer").VibeViewerItem) => boolean;
32
- isVisual: (item: import("../viewer").VibeViewerItem) => boolean;
33
- items: import("vue").ComputedRef<import("../viewer").VibeViewerItem[]>;
42
+ isAudio: (item: VibeViewerItem) => boolean;
43
+ isVisual: (item: VibeViewerItem) => boolean;
44
+ items: import("vue").ComputedRef<VibeViewerItem[]>;
34
45
  loading: import("vue").ComputedRef<boolean>;
35
46
  mediaStates: Ref<Record<string, import("./assetState").MediaUiState>, Record<string, import("./assetState").MediaUiState>>;
36
47
  isImageReady: (id: string) => boolean;
@@ -56,6 +67,8 @@ export declare function useViewer(props: Readonly<VibeProps>, emit: (event: 'upd
56
67
  retryInitialLoad: () => Promise<void>;
57
68
  retryAsset: (id: string) => Promise<void>;
58
69
  stageRef: Ref<HTMLElement | null, HTMLElement | null>;
59
- statusMessage: import("vue").ComputedRef<"Loading the first page" | "Loading more items" | "End of feed" | null>;
70
+ statusKind: import("vue").ComputedRef<import("./surfaceSlots").VibeSurfaceStatusKind | null>;
71
+ statusMessage: import("vue").ComputedRef<string | null>;
60
72
  paginationDetail: import("vue").ComputedRef<string | null>;
73
+ phase: import("vue").ComputedRef<VibeLoadPhase>;
61
74
  };