@wyxos/vibe 3.1.34 → 4.0.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.
Files changed (104) hide show
  1. package/README.md +531 -308
  2. package/lib/components/CardRegion.vue.d.ts +15 -0
  3. package/lib/components/GalleryFooter.vue.d.ts +17 -0
  4. package/lib/components/GalleryScrollbar.vue.d.ts +9 -0
  5. package/lib/components/MasonryFeed.vue.d.ts +24 -0
  6. package/lib/components/MediaCard.vue.d.ts +35 -0
  7. package/lib/components/MediaControls.vue.d.ts +22 -0
  8. package/lib/components/ReelAutoAdvanceProgress.vue.d.ts +11 -0
  9. package/lib/components/ReelFeed.vue.d.ts +28 -0
  10. package/lib/components/ReelLayout.vue.d.ts +28 -0
  11. package/lib/components/VibeSurface.vue.d.ts +35 -0
  12. package/lib/core/autoScroll.d.ts +26 -0
  13. package/lib/core/autofill.d.ts +35 -0
  14. package/lib/core/backendAutofill.d.ts +5 -0
  15. package/lib/core/backendFill.d.ts +5 -0
  16. package/lib/core/createVibe.d.ts +2 -0
  17. package/lib/core/feed.d.ts +40 -0
  18. package/lib/core/fill.d.ts +29 -0
  19. package/lib/core/fillController.d.ts +28 -0
  20. package/lib/core/initialAutofill.d.ts +12 -0
  21. package/lib/core/initialRuntimeState.d.ts +3 -0
  22. package/lib/core/masonry.d.ts +37 -0
  23. package/lib/core/mediaAsset.d.ts +5 -0
  24. package/lib/core/mediaPreview.d.ts +3 -0
  25. package/lib/core/mediaType.d.ts +1 -0
  26. package/lib/core/options.d.ts +3 -0
  27. package/lib/core/page.d.ts +3 -0
  28. package/lib/core/reelAutoAdvance.d.ts +5 -0
  29. package/lib/core/reelInfoSheet.d.ts +3 -0
  30. package/lib/core/requestDelay.d.ts +24 -0
  31. package/lib/core/responsiveLayout.d.ts +13 -0
  32. package/lib/core/runtime.d.ts +23 -0
  33. package/lib/core/scrollbar.d.ts +15 -0
  34. package/lib/core/vibeRouting.d.ts +11 -0
  35. package/lib/index.cjs +1 -1
  36. package/lib/index.d.ts +3 -73
  37. package/lib/index.js +2586 -4949
  38. package/lib/style.css +1 -2
  39. package/lib/types.d.ts +323 -0
  40. package/package.json +13 -7
  41. package/lib/components/FullscreenFooter.vue.d.ts +0 -22
  42. package/lib/components/FullscreenForwardFillPlaceholder.vue.d.ts +0 -29
  43. package/lib/components/FullscreenHeader.vue.d.ts +0 -25
  44. package/lib/components/FullscreenMediaBar.vue.d.ts +0 -26
  45. package/lib/components/FullscreenSurface.vue.d.ts +0 -83
  46. package/lib/components/Layout.vue.d.ts +0 -48
  47. package/lib/components/ListCard.vue.d.ts +0 -44
  48. package/lib/components/ListSurface.vue.d.ts +0 -87
  49. package/lib/components/SurfaceEmptyState.vue.d.ts +0 -21
  50. package/lib/components/viewer-core/assetErrors.d.ts +0 -30
  51. package/lib/components/viewer-core/assetState.d.ts +0 -14
  52. package/lib/components/viewer-core/autoBuckets.d.ts +0 -24
  53. package/lib/components/viewer-core/autoResolveBucketFactory.d.ts +0 -15
  54. package/lib/components/viewer-core/autoResolveCursors.d.ts +0 -15
  55. package/lib/components/viewer-core/autoResolveFillUntil.d.ts +0 -46
  56. package/lib/components/viewer-core/autoResolveHelpers.d.ts +0 -20
  57. package/lib/components/viewer-core/autoResolveLoading.d.ts +0 -44
  58. package/lib/components/viewer-core/autoResolveState.d.ts +0 -72
  59. package/lib/components/viewer-core/dom.d.ts +0 -2
  60. package/lib/components/viewer-core/dominantImageTone.d.ts +0 -6
  61. package/lib/components/viewer-core/emptyVisiblePrefetch.d.ts +0 -18
  62. package/lib/components/viewer-core/fillDelay.d.ts +0 -9
  63. package/lib/components/viewer-core/fillProgress.d.ts +0 -12
  64. package/lib/components/viewer-core/format.d.ts +0 -1
  65. package/lib/components/viewer-core/fullscreenPreviews.d.ts +0 -8
  66. package/lib/components/viewer-core/itemIdentity.d.ts +0 -6
  67. package/lib/components/viewer-core/listCardAsset.d.ts +0 -4
  68. package/lib/components/viewer-core/listPreview.d.ts +0 -10
  69. package/lib/components/viewer-core/loadError.d.ts +0 -5
  70. package/lib/components/viewer-core/masonryBoundaryLock.d.ts +0 -5
  71. package/lib/components/viewer-core/masonryItemMutation.d.ts +0 -35
  72. package/lib/components/viewer-core/masonryLayout.d.ts +0 -64
  73. package/lib/components/viewer-core/masonryLayoutState.d.ts +0 -22
  74. package/lib/components/viewer-core/masonryPendingAppend.d.ts +0 -19
  75. package/lib/components/viewer-core/masonryScrollBehavior.d.ts +0 -37
  76. package/lib/components/viewer-core/masonryViewport.d.ts +0 -7
  77. package/lib/components/viewer-core/media.d.ts +0 -4
  78. package/lib/components/viewer-core/mediaPlayback.d.ts +0 -1
  79. package/lib/components/viewer-core/nativeVideoFullscreen.d.ts +0 -2
  80. package/lib/components/viewer-core/removalState.d.ts +0 -71
  81. package/lib/components/viewer-core/slotContent.d.ts +0 -2
  82. package/lib/components/viewer-core/surfaceSlots.d.ts +0 -33
  83. package/lib/components/viewer-core/surfaceStatus.d.ts +0 -18
  84. package/lib/components/viewer-core/theme.d.ts +0 -3
  85. package/lib/components/viewer-core/useActivation.d.ts +0 -8
  86. package/lib/components/viewer-core/useAssetLoadQueue.d.ts +0 -17
  87. package/lib/components/viewer-core/useAutoResolveSource.d.ts +0 -67
  88. package/lib/components/viewer-core/useController.d.ts +0 -98
  89. package/lib/components/viewer-core/useDataSource.d.ts +0 -98
  90. package/lib/components/viewer-core/useEdgeBoundary.d.ts +0 -18
  91. package/lib/components/viewer-core/useFullscreen.d.ts +0 -1
  92. package/lib/components/viewer-core/useFullscreenAssetEvents.d.ts +0 -24
  93. package/lib/components/viewer-core/useFullscreenDominantTone.d.ts +0 -12
  94. package/lib/components/viewer-core/useFullscreenPreloadController.d.ts +0 -18
  95. package/lib/components/viewer-core/useFullscreenSurfaceMedia.d.ts +0 -32
  96. package/lib/components/viewer-core/useListCardHealthCheck.d.ts +0 -20
  97. package/lib/components/viewer-core/useMasonryList.d.ts +0 -85
  98. package/lib/components/viewer-core/useMasonryMotion.d.ts +0 -76
  99. package/lib/components/viewer-core/useMedia.d.ts +0 -44
  100. package/lib/components/viewer-core/useSurfaceEmptyState.d.ts +0 -15
  101. package/lib/components/viewer-core/useVideoFullscreen.d.ts +0 -9
  102. package/lib/components/viewer-core/useViewer.d.ts +0 -78
  103. package/lib/components/viewer-core/virtualization.d.ts +0 -18
  104. package/lib/components/viewer.d.ts +0 -23
@@ -1,4 +0,0 @@
1
- export declare function abortListCardImageLoad(image: HTMLImageElement | null): void;
2
- export declare function abortListCardVideoLoad(video: HTMLVideoElement | null): void;
3
- export declare function isListCardWithinViewport(itemBounds: DOMRectReadOnly | DOMRect, viewportBounds: DOMRectReadOnly | DOMRect | null): boolean;
4
- export declare function normalizeListCardAssetUrl(url: string | null): string | null;
@@ -1,10 +0,0 @@
1
- import type { VibeViewerItem } from '../viewer';
2
- export type VibeListRenderableKind = 'image' | 'video' | 'fallback';
3
- export interface VibeListRenderableAsset {
4
- kind: VibeListRenderableKind;
5
- url: string | null;
6
- width: number;
7
- height: number;
8
- label: string;
9
- }
10
- export declare function getListRenderableAsset(item: VibeViewerItem): VibeListRenderableAsset;
@@ -1,5 +0,0 @@
1
- export type VibeAssetErrorKind = 'generic' | 'not-found';
2
- export declare function getVibeAssetErrorLabel(kind: VibeAssetErrorKind): "404" | "Load error";
3
- export declare function canRetryVibeAssetError(kind: VibeAssetErrorKind | null | undefined): kind is "generic";
4
- export declare function resolveVibeAssetErrorKind(url: string): Promise<"generic" | "not-found">;
5
- export declare function probeVibeAssetUrl(url: string): Promise<VibeAssetErrorKind | null>;
@@ -1,5 +0,0 @@
1
- export declare function useMasonryBoundaryLock(): {
2
- clearBoundaryInteractionReleaseTimer: () => void;
3
- isBoundaryInteractionLocked: import("vue").Ref<boolean, boolean>;
4
- lockBoundaryInteraction: (durationMs: number) => void;
5
- };
@@ -1,35 +0,0 @@
1
- import type { VibeViewerItem } from '../viewer';
2
- export interface MasonryRemovedItem {
3
- height: number;
4
- item: VibeViewerItem;
5
- position: {
6
- x: number;
7
- y: number;
8
- };
9
- }
10
- export declare function getMasonryItemMutation(options: {
11
- activeIndex: number;
12
- currentItems: VibeViewerItem[];
13
- gapPx: number;
14
- contentInsetPx: number;
15
- layoutHeights: number[];
16
- layoutIndexById: Map<string, number>;
17
- layoutPositions: {
18
- x: number;
19
- y: number;
20
- }[];
21
- previousItems: VibeViewerItem[];
22
- scrollTop: number;
23
- }): {
24
- addedItems: VibeViewerItem[];
25
- anchorId: string | null;
26
- isPrepend: boolean;
27
- oldPositionsById: Map<string, {
28
- x: number;
29
- y: number;
30
- }>;
31
- previousIds: string[];
32
- removedItems: MasonryRemovedItem[];
33
- shouldLockBoundaryInteractionForRemoval: boolean;
34
- shouldResetScrollForEmptyRemoval: boolean;
35
- };
@@ -1,64 +0,0 @@
1
- import type { VibeViewerItem } from '../viewer';
2
- export type LayoutPosition = {
3
- x: number;
4
- y: number;
5
- };
6
- export interface VibeMasonryDimensions {
7
- width: number;
8
- height: number;
9
- source: 'preview' | 'original' | 'fallback';
10
- }
11
- export interface VibeMasonryLayoutResult {
12
- positions: LayoutPosition[];
13
- heights: number[];
14
- buckets: Map<number, number[]>;
15
- contentHeight: number;
16
- indexById: Map<string, number>;
17
- columnHeights: number[];
18
- }
19
- export declare function getMasonryDimensions(item: VibeViewerItem): VibeMasonryDimensions;
20
- export declare function getColumnCount(containerWidth: number, itemWidth: number): number;
21
- export declare function getColumnWidth(containerWidth: number, columnCount: number, fallbackItemWidth: number, gapX?: number): number;
22
- export declare function estimateItemHeight(item: VibeViewerItem, columnWidth: number): number;
23
- export declare function buildMasonryLayout(items: VibeViewerItem[], options: {
24
- columnCount: number;
25
- columnWidth: number;
26
- gapX: number;
27
- gapY: number;
28
- bucketPx: number;
29
- }): VibeMasonryLayoutResult;
30
- export declare function appendMasonryLayoutItems(layout: VibeMasonryLayoutResult, items: VibeViewerItem[], options: {
31
- columnCount: number;
32
- columnWidth: number;
33
- gapX: number;
34
- gapY: number;
35
- bucketPx: number;
36
- startIndex: number;
37
- positionOffsetX?: number;
38
- positionOffsetY?: number;
39
- }): VibeMasonryLayoutResult;
40
- export declare function estimateMasonryAppendContentHeight(items: VibeViewerItem[], options: {
41
- columnHeights: number[];
42
- columnWidth: number;
43
- contentHeight: number;
44
- gapY: number;
45
- }): number;
46
- export declare function canAppendMasonryLayout(options: {
47
- addedItems: VibeViewerItem[];
48
- columnCount: number;
49
- columnHeights: number[];
50
- currentItems: VibeViewerItem[];
51
- isPrepend: boolean;
52
- layoutItemCount: number;
53
- previousItems: VibeViewerItem[];
54
- removedItemCount: number;
55
- }): boolean;
56
- export declare function getVisibleIndicesFromBuckets(options: {
57
- itemCount: number;
58
- viewportHeight: number;
59
- scrollTop: number;
60
- overscanPx: number;
61
- bucketPx: number;
62
- buckets: Map<number, number[]>;
63
- }): number[];
64
- export declare function snapshotPositionsById(items: VibeViewerItem[], indexById: Map<string, number>, positions: LayoutPosition[]): Map<string, LayoutPosition>;
@@ -1,22 +0,0 @@
1
- import type { VibeViewerItem } from '../viewer';
2
- import { type LayoutPosition } from './masonryLayout';
3
- import type { MasonryRemovedItem } from './masonryItemMutation';
4
- export declare function useMasonryLayoutState(options: {
5
- bucketPx: number;
6
- contentInsetPx: number;
7
- gapPx: number;
8
- }): {
9
- append: (items: VibeViewerItem[], startIndex: number, columnCount: number, columnWidth: number) => void;
10
- buckets: import("vue").ShallowRef<Map<number, number[]>, Map<number, number[]>>;
11
- canAppend: (currentItems: VibeViewerItem[], previousItems: VibeViewerItem[], mutation: {
12
- addedItems: VibeViewerItem[];
13
- isPrepend: boolean;
14
- removedItems: MasonryRemovedItem[];
15
- }, columnCount: number) => boolean;
16
- columnHeights: import("vue").ShallowRef<number[], number[]>;
17
- contentHeight: import("vue").ShallowRef<number, number>;
18
- heights: import("vue").ShallowRef<number[], number[]>;
19
- indexById: import("vue").ShallowRef<Map<string, number>, Map<string, number>>;
20
- positions: import("vue").ShallowRef<LayoutPosition[], LayoutPosition[]>;
21
- rebuild: (items: VibeViewerItem[], columnCount: number, columnWidth: number) => void;
22
- };
@@ -1,19 +0,0 @@
1
- import { type Ref } from 'vue';
2
- import type { VibeViewerItem } from '../viewer';
3
- export declare function useMasonryPendingAppend(options: {
4
- bucketPx: number;
5
- columnHeights: Ref<number[]>;
6
- columnCount: Ref<number>;
7
- columnWidth: Ref<number>;
8
- commitPendingAppend: Ref<(() => void | Promise<void>) | null | undefined>;
9
- contentHeight: Ref<number>;
10
- contentInsetPx: number;
11
- gapPx: number;
12
- items: Ref<VibeViewerItem[]>;
13
- pendingAppendItems: Ref<VibeViewerItem[]>;
14
- }): {
15
- clearAppendCommitTimer: () => void;
16
- clearReservedHeightWhenIdle: (isLoading: boolean) => void;
17
- refreshReservedContentHeight: () => void;
18
- reservedContentHeight: Ref<number | null, number | null>;
19
- };
@@ -1,37 +0,0 @@
1
- import { type Ref } from 'vue';
2
- export declare function useMasonryAutoScroll(options: {
3
- active: Ref<boolean>;
4
- getMaxScrollTop: () => number;
5
- getViewport: () => HTMLElement | null;
6
- onScroll: () => void;
7
- }): {
8
- autoScroll: (speed: number) => void;
9
- start: () => void;
10
- stop: () => void;
11
- };
12
- export declare function getLeadingBoundaryLoadProgress(options: {
13
- active: boolean;
14
- maxScrollTop: number;
15
- progressDistancePx: number;
16
- thresholdPx: number;
17
- triggerEnabled: boolean;
18
- }): number;
19
- export declare function getTrailingBoundaryLoadProgress(options: {
20
- active: boolean;
21
- maxScrollTop: number;
22
- progressDistancePx: number;
23
- thresholdPx: number;
24
- triggerEnabled: boolean;
25
- }): number;
26
- export declare function useMasonryScrollbar(options: {
27
- containerHeight: Ref<number>;
28
- scrollTop: Ref<number>;
29
- viewportHeight: Ref<number>;
30
- }): {
31
- getScrollbarThumbStyle: () => {
32
- height: string;
33
- transform: string;
34
- };
35
- showScrollbar: import("vue").ComputedRef<boolean>;
36
- };
37
- export declare function normalizeMasonryBottomLoadBufferPx(value: number | undefined): number;
@@ -1,7 +0,0 @@
1
- export declare function getVibeMasonryViewportHeight(viewport: HTMLElement | null, fallbackHeight: number): number;
2
- export declare function getVibeMasonryViewportWidth(viewport: HTMLElement | null, fallbackWidth: number, itemWidth: number): number;
3
- export declare function getVibeMasonryDistanceFromBottom(viewport: HTMLElement | null, scrollTop: number, viewportHeight: number, containerHeight: number): number;
4
- export declare function getVibeMasonryScrollbarThumbStyle(scrollbarThumbHeight: number, scrollbarThumbTop: number): {
5
- height: string;
6
- transform: string;
7
- };
@@ -1,4 +0,0 @@
1
- import type { Component } from 'vue';
2
- import type { VibeViewerType } from '../viewer';
3
- export declare function getItemIcon(type: VibeViewerType): Component;
4
- export declare function getItemLabel(type: VibeViewerType): string;
@@ -1 +0,0 @@
1
- export declare function playMediaElement(media: HTMLMediaElement): void;
@@ -1,2 +0,0 @@
1
- export declare function isNativeFullscreenVideoElement(element: unknown): boolean;
2
- export declare function requestNativeVideoFullscreen(video: HTMLVideoElement): void;
@@ -1,71 +0,0 @@
1
- import type { VibeViewerItem } from '../viewer';
2
- export interface VibeRemoveResult {
3
- ids: string[];
4
- }
5
- export type VibeLoadPhase = 'failed' | 'filling' | 'idle' | 'initializing' | 'loading' | 'refreshing';
6
- export type VibeFillMode = 'count' | 'cursor' | 'end' | 'idle';
7
- export type VibeSurfaceMode = 'fullscreen' | 'list';
8
- export interface VibeStatus {
9
- activeIndex: number;
10
- currentCursor: string | null;
11
- errorMessage: string | null;
12
- fillCollectedCount: number | null;
13
- fillCompletedCalls: number;
14
- fillCursor: string | null;
15
- fillDelayRemainingMs: number | null;
16
- fillLoadedCount: number;
17
- fillMode: VibeFillMode;
18
- fillProgress: number | null;
19
- fillTargetCalls: number | null;
20
- fillTargetCount: number | null;
21
- fillTotalCount: number | null;
22
- hasNextPage: boolean;
23
- hasPreviousPage: boolean;
24
- itemCount: number;
25
- itemsRevision: number;
26
- loadState: 'failed' | 'loaded' | 'loading';
27
- nextBoundaryLoadProgress: number;
28
- nextCursor: string | null;
29
- pageLoadingLocked: boolean;
30
- phase: VibeLoadPhase;
31
- previousBoundaryLoadProgress: number;
32
- previousCursor: string | null;
33
- removedCount: number;
34
- removedIds: readonly string[];
35
- removedRevision: number;
36
- surfaceMode: VibeSurfaceMode;
37
- }
38
- export interface VibeHandle {
39
- autoScroll: (speedPxPerSecond: number) => void;
40
- cancel: () => void;
41
- cancelFill: () => void;
42
- clearRemoved: () => void;
43
- fillUntil: (cursorOrCount: number | string) => Promise<void>;
44
- fillUntilEnd: () => Promise<void>;
45
- getItemByOccurrenceKey: (occurrenceKey: string) => VibeViewerItem | null;
46
- getItems: () => VibeViewerItem[];
47
- getRemovedIds: () => string[];
48
- lockPageLoading: () => void;
49
- loadNext: () => Promise<void>;
50
- loadPrevious: () => Promise<void>;
51
- remove: (ids: string | string[]) => VibeRemoveResult;
52
- restore: (ids: string | string[]) => VibeRemoveResult;
53
- retry: () => Promise<void>;
54
- status: Readonly<VibeStatus>;
55
- undo: () => VibeRemoveResult | null;
56
- unlockPageLoading: () => void;
57
- }
58
- export declare function useVibeRemovalState(): {
59
- clearRemoved: () => void;
60
- getRemovedIds: () => string[];
61
- remove: (ids: string | string[]) => {
62
- ids: string[];
63
- };
64
- removedIds: import("vue").Ref<Set<string> & Omit<Set<string>, keyof Set<any>>, Set<string> | (Set<string> & Omit<Set<string>, keyof Set<any>>)>;
65
- restore: (ids: string | string[]) => {
66
- ids: string[];
67
- };
68
- undo: () => {
69
- ids: string[];
70
- } | null;
71
- };
@@ -1,2 +0,0 @@
1
- import { type VNodeArrayChildren } from 'vue';
2
- export declare function hasRenderableSlotContent(children: VNodeArrayChildren | unknown): boolean;
@@ -1,33 +0,0 @@
1
- import type { VibeViewerItem } from '../viewer';
2
- import type { VibeFullscreenPreviewItem } from './fullscreenPreviews';
3
- export type { VibeFullscreenPreviewItem } from './fullscreenPreviews';
4
- export type VibeSurfaceSlotProps = {
5
- hasNextPage: boolean;
6
- index: number;
7
- item: VibeViewerItem;
8
- loading: boolean;
9
- nextPreviews: VibeFullscreenPreviewItem[];
10
- paginationDetail: string | null;
11
- total: number;
12
- };
13
- export type VibeEmptyStateMode = 'inline' | 'badge' | 'hidden';
14
- export type VibeEmptyStateSlotProps = {
15
- loading: boolean;
16
- message: string;
17
- mode: Exclude<VibeEmptyStateMode, 'hidden'>;
18
- surface: 'fullscreen' | 'grid';
19
- total: number;
20
- };
21
- export type VibeSurfaceStatusKind = 'end' | 'failed' | 'filling' | 'initializing' | 'loading-more' | 'refreshing';
22
- export type VibeFullscreenStatusSlotProps = VibeSurfaceSlotProps & {
23
- kind: VibeSurfaceStatusKind;
24
- message: string;
25
- };
26
- export type VibeGridStatusSlotProps = {
27
- activeIndex: number;
28
- kind: VibeSurfaceStatusKind;
29
- loading: boolean;
30
- message: string;
31
- paginationDetail: string | null;
32
- total: number;
33
- };
@@ -1,18 +0,0 @@
1
- import type { VibeLoadPhase } from './removalState';
2
- import type { VibeSurfaceStatusKind } from './surfaceSlots';
3
- export interface VibeSurfaceStatus {
4
- kind: VibeSurfaceStatusKind;
5
- message: string;
6
- }
7
- export declare function resolveVibeSurfacePhase(options: {
8
- itemCount: number;
9
- loading: boolean;
10
- phase?: VibeLoadPhase | null;
11
- }): VibeLoadPhase;
12
- export declare function getVibeSurfaceStatus(options: {
13
- errorMessage?: string | null;
14
- hasItems: boolean;
15
- hasNextPage: boolean;
16
- phase: VibeLoadPhase;
17
- surface: 'fullscreen' | 'grid';
18
- }): VibeSurfaceStatus | null;
@@ -1,3 +0,0 @@
1
- import type { VibeViewerType } from '../viewer';
2
- export declare function getStageToneClass(type: VibeViewerType): string;
3
- export declare function getSlideToneClass(type: VibeViewerType): string;
@@ -1,8 +0,0 @@
1
- import { type Ref } from 'vue';
2
- export declare function useActivation(options: {
3
- enabled: Ref<boolean>;
4
- onDisable: () => void;
5
- onEnable: () => Promise<void> | void;
6
- onKeydown: (event: KeyboardEvent) => void;
7
- onResize: () => void;
8
- }): void;
@@ -1,17 +0,0 @@
1
- export interface VibeAssetLoadRequest {
2
- assetType: 'image' | 'video' | 'probe';
3
- getPriority: () => number;
4
- onGrant: () => void;
5
- url: string;
6
- }
7
- export interface VibeAssetLoadLease {
8
- cancel: () => void;
9
- refresh: () => void;
10
- release: () => void;
11
- }
12
- export declare function createAssetLoadQueue(): {
13
- request: (options: VibeAssetLoadRequest) => VibeAssetLoadLease;
14
- };
15
- export declare const defaultAssetLoadQueue: {
16
- request: (options: VibeAssetLoadRequest) => VibeAssetLoadLease;
17
- };
@@ -1,67 +0,0 @@
1
- import { type Ref } from 'vue';
2
- import type { VibeViewerItem } from '../viewer';
3
- import type { VibeLoadPhase } from './removalState';
4
- import { type ResolveFn } from './autoResolveHelpers';
5
- type VibeAutoEmit = (event: 'update:activeIndex', value: number) => void;
6
- export declare function useAutoResolveSource(options: {
7
- emit: VibeAutoEmit;
8
- fillDelayMs?: number;
9
- fillDelayStepMs?: number;
10
- initialCursor?: string | null;
11
- initialState?: {
12
- activeIndex?: number;
13
- cursor: string | null;
14
- items: VibeViewerItem[];
15
- nextCursor?: string | null;
16
- previousCursor?: string | null;
17
- };
18
- pageSize?: number;
19
- removedIds: Ref<Set<string>>;
20
- resolve?: ResolveFn;
21
- }): {
22
- fillUntil: (cursorOrCount: number | string) => Promise<void>;
23
- fillUntilEnd: () => Promise<void>;
24
- hasNextPage: import("vue").ComputedRef<boolean>;
25
- hasPreviousPage: import("vue").ComputedRef<boolean>;
26
- isAutoPrefetchEnabled: Ref<boolean, boolean>;
27
- isPageLoadingLocked: import("vue").ComputedRef<boolean>;
28
- items: import("vue").ComputedRef<VibeViewerItem[]>;
29
- lockPageLoading: () => void;
30
- loading: import("vue").ComputedRef<boolean>;
31
- maybePrefetchAround: () => Promise<void>;
32
- nextCursor: import("vue").ComputedRef<string | null>;
33
- pendingAppendItems: import("vue").ComputedRef<VibeViewerItem[]>;
34
- phase: Ref<VibeLoadPhase, VibeLoadPhase>;
35
- prefetchNextPage: () => Promise<void>;
36
- prefetchPreviousPage: () => Promise<void>;
37
- previousCursor: import("vue").ComputedRef<string | null>;
38
- retryInitialLoad: () => Promise<void>;
39
- retry: () => Promise<void>;
40
- setActiveIndex: (nextIndex: number) => void;
41
- setAutoPrefetchEnabled: (nextValue: boolean) => void;
42
- syncActiveIndexAfterVisibilityChange: (anchorOccurrenceKey?: string | null, options?: {
43
- preserveTrailingPlaceholder?: boolean;
44
- }) => void;
45
- unlockPageLoading: () => void;
46
- getActiveOccurrenceKey: () => string | null;
47
- maybeCommitPendingAppendWhenFilteredOut: () => void;
48
- fillCompletedCalls: Ref<number, number>;
49
- fillLoadedCount: Ref<number, number>;
50
- fillMode: Ref<import("./removalState").VibeFillMode, import("./removalState").VibeFillMode>;
51
- fillProgress: Ref<number | null, number | null>;
52
- fillTargetCalls: Ref<number | null, number | null>;
53
- fillTotalCount: Ref<number | null, number | null>;
54
- activeIndex: import("vue").ComputedRef<number>;
55
- canRetryInitialLoad: import("vue").ComputedRef<boolean>;
56
- cancel: () => void;
57
- cancelFill: () => void;
58
- canRefreshTrailingBoundary: import("vue").ComputedRef<boolean>;
59
- commitPendingAppend: () => Promise<void>;
60
- currentCursor: import("vue").ComputedRef<string | null>;
61
- errorMessage: Ref<string | null, string | null>;
62
- fillCollectedCount: Ref<number | null, number | null>;
63
- fillCursor: Ref<string | null, string | null>;
64
- fillDelayRemainingMs: Ref<number | null, number | null>;
65
- fillTargetCount: Ref<number | null, number | null>;
66
- };
67
- export {};
@@ -1,98 +0,0 @@
1
- import type { VibeSurfaceMode } from './removalState';
2
- import { type VibeEmit, type VibeProps } from './useDataSource';
3
- export declare const DESKTOP_BREAKPOINT_PX = 1024;
4
- export declare function useController(props: Readonly<VibeProps>, emit: VibeEmit): {
5
- cancel: () => void;
6
- isDesktop: import("vue").ComputedRef<boolean>;
7
- lockPageLoading: () => void;
8
- loadNext: () => Promise<void>;
9
- loadPrevious: () => Promise<void>;
10
- openFullscreen: (index: number) => void;
11
- returnToList: () => void;
12
- retry: () => Promise<void>;
13
- setBoundaryLoadProgress: (value: {
14
- nextBoundaryLoadProgress: number;
15
- previousBoundaryLoadProgress: number;
16
- }) => void;
17
- showBackToList: import("vue").ComputedRef<boolean>;
18
- status: {
19
- readonly activeIndex: number;
20
- readonly currentCursor: string | null;
21
- readonly errorMessage: string | null;
22
- readonly fillCollectedCount: number | null;
23
- readonly fillCompletedCalls: number;
24
- readonly fillCursor: string | null;
25
- readonly fillDelayRemainingMs: number | null;
26
- readonly fillLoadedCount: number;
27
- readonly fillMode: import("./removalState").VibeFillMode;
28
- readonly fillProgress: number | null;
29
- readonly fillTargetCalls: number | null;
30
- readonly fillTargetCount: number | null;
31
- readonly fillTotalCount: number | null;
32
- readonly hasNextPage: boolean;
33
- readonly hasPreviousPage: boolean;
34
- readonly itemCount: number;
35
- readonly itemsRevision: number;
36
- readonly loadState: "failed" | "loaded" | "loading";
37
- readonly nextBoundaryLoadProgress: number;
38
- readonly nextCursor: string | null;
39
- readonly pageLoadingLocked: boolean;
40
- readonly phase: import("./removalState").VibeLoadPhase;
41
- readonly previousBoundaryLoadProgress: number;
42
- readonly previousCursor: string | null;
43
- readonly removedCount: number;
44
- readonly removedIds: readonly string[];
45
- readonly removedRevision: number;
46
- readonly surfaceMode: VibeSurfaceMode;
47
- };
48
- surfaceMode: import("vue").ComputedRef<VibeSurfaceMode>;
49
- unlockPageLoading: () => void;
50
- activeIndex: import("vue").ComputedRef<number>;
51
- canRefreshExhaustedNextPage: import("vue").ComputedRef<boolean>;
52
- canRetryInitialLoad: import("vue").ComputedRef<boolean>;
53
- cancelFill: () => void;
54
- clearRemoved: () => void;
55
- commitPendingAppend: () => Promise<void>;
56
- currentCursor: import("vue").ComputedRef<string | null>;
57
- errorMessage: import("vue").Ref<string | null, string | null>;
58
- fillCollectedCount: import("vue").Ref<number | null, number | null>;
59
- fillCompletedCalls: import("vue").Ref<number, number>;
60
- fillCursor: import("vue").Ref<string | null, string | null>;
61
- fillDelayRemainingMs: import("vue").Ref<number | null, number | null>;
62
- fillLoadedCount: import("vue").Ref<number, number>;
63
- fillMode: import("vue").Ref<import("./removalState").VibeFillMode, import("./removalState").VibeFillMode>;
64
- fillProgress: import("vue").Ref<number | null, number | null>;
65
- fillTargetCalls: import("vue").Ref<number | null, number | null>;
66
- fillTargetCount: import("vue").Ref<number | null, number | null>;
67
- fillTotalCount: import("vue").Ref<number | null, number | null>;
68
- fillUntil: (cursorOrCount: number | string) => Promise<void>;
69
- fillUntilEnd: () => Promise<void>;
70
- getItemByOccurrenceKey: (occurrenceKey: string) => import("../viewer").VibeViewerItem | null;
71
- getItems: () => import("../viewer").VibeViewerItem[];
72
- getRemovedIds: () => string[];
73
- hasNextPage: import("vue").ComputedRef<boolean>;
74
- hasPreviousPage: import("vue").ComputedRef<boolean>;
75
- isPageLoadingLocked: import("vue").ComputedRef<boolean>;
76
- items: import("vue").ComputedRef<import("../viewer").VibeViewerItem[]>;
77
- loading: import("vue").ComputedRef<boolean>;
78
- nextCursor: import("vue").ComputedRef<string | null>;
79
- paginationDetail: import("vue").ComputedRef<string | null>;
80
- pendingAppendItems: import("vue").ComputedRef<import("../viewer").VibeViewerItem[]>;
81
- phase: import("vue").Ref<import("./removalState").VibeLoadPhase, import("./removalState").VibeLoadPhase>;
82
- prefetchNextPage: () => Promise<void>;
83
- prefetchPreviousPage: () => Promise<void>;
84
- previousCursor: import("vue").ComputedRef<string | null>;
85
- removedCount: import("vue").ComputedRef<number>;
86
- remove: (ids: string | string[]) => {
87
- ids: string[];
88
- };
89
- restore: (ids: string | string[]) => {
90
- ids: string[];
91
- };
92
- retryInitialLoad: () => Promise<void>;
93
- setActiveIndex: (nextIndex: number) => void;
94
- setAutoPrefetchEnabled: (nextValue: boolean) => void;
95
- undo: () => {
96
- ids: string[];
97
- } | null;
98
- };
@@ -1,98 +0,0 @@
1
- import type { VibeViewerItem } from '../viewer';
2
- import type { VibeEmptyStateMode } from './surfaceSlots';
3
- export type { VibeHandle, VibeRemoveResult } from './removalState';
4
- export type { VibeFillMode, VibeLoadPhase, VibeSurfaceMode } from './removalState';
5
- export interface VibeResolveParams {
6
- cursor: string | null;
7
- pageSize: number;
8
- signal?: AbortSignal;
9
- }
10
- export interface VibeResolveResult {
11
- items: VibeViewerItem[];
12
- nextPage: string | null;
13
- previousPage?: string | null;
14
- total?: number | null;
15
- }
16
- export interface VibeInitialState {
17
- items: VibeViewerItem[];
18
- cursor: string | null;
19
- nextCursor?: string | null;
20
- previousCursor?: string | null;
21
- activeIndex?: number;
22
- }
23
- export interface VibeProps {
24
- bottomLoadBufferPx?: number;
25
- emptyStateMode?: VibeEmptyStateMode;
26
- fillDelayMs?: number;
27
- fillDelayStepMs?: number;
28
- initialCursor?: string | null;
29
- initialState?: VibeInitialState;
30
- loopFullscreenVideo?: boolean;
31
- pageSize?: number;
32
- paginationDetail?: string | null;
33
- resolve?: (params: VibeResolveParams) => Promise<VibeResolveResult>;
34
- showDominantImageTone?: boolean;
35
- showEndBadge?: boolean;
36
- showStatusBadges?: boolean;
37
- surfaceMode?: import('./removalState').VibeSurfaceMode;
38
- }
39
- export interface VibeEmit {
40
- (event: 'update:activeIndex', value: number): void;
41
- (event: 'update:surfaceMode', value: import('./removalState').VibeSurfaceMode): void;
42
- }
43
- export declare function useDataSource(props: Readonly<VibeProps>, emit: VibeEmit): {
44
- activeIndex: import("vue").ComputedRef<number>;
45
- canRefreshExhaustedNextPage: import("vue").ComputedRef<boolean>;
46
- canRetryInitialLoad: import("vue").ComputedRef<boolean>;
47
- cancel: () => void;
48
- cancelFill: () => void;
49
- clearRemoved: () => void;
50
- commitPendingAppend: () => Promise<void>;
51
- currentCursor: import("vue").ComputedRef<string | null>;
52
- errorMessage: import("vue").Ref<string | null, string | null>;
53
- fillCollectedCount: import("vue").Ref<number | null, number | null>;
54
- fillCompletedCalls: import("vue").Ref<number, number>;
55
- fillCursor: import("vue").Ref<string | null, string | null>;
56
- fillDelayRemainingMs: import("vue").Ref<number | null, number | null>;
57
- fillLoadedCount: import("vue").Ref<number, number>;
58
- fillMode: import("vue").Ref<import("./removalState").VibeFillMode, import("./removalState").VibeFillMode>;
59
- fillProgress: import("vue").Ref<number | null, number | null>;
60
- fillTargetCalls: import("vue").Ref<number | null, number | null>;
61
- fillTargetCount: import("vue").Ref<number | null, number | null>;
62
- fillTotalCount: import("vue").Ref<number | null, number | null>;
63
- fillUntil: (cursorOrCount: number | string) => Promise<void>;
64
- fillUntilEnd: () => Promise<void>;
65
- getItemByOccurrenceKey: (occurrenceKey: string) => VibeViewerItem | null;
66
- getItems: () => VibeViewerItem[];
67
- getRemovedIds: () => string[];
68
- hasNextPage: import("vue").ComputedRef<boolean>;
69
- hasPreviousPage: import("vue").ComputedRef<boolean>;
70
- isPageLoadingLocked: import("vue").ComputedRef<boolean>;
71
- items: import("vue").ComputedRef<VibeViewerItem[]>;
72
- lockPageLoading: () => void;
73
- loading: import("vue").ComputedRef<boolean>;
74
- loadNext: () => Promise<void>;
75
- loadPrevious: () => Promise<void>;
76
- nextCursor: import("vue").ComputedRef<string | null>;
77
- paginationDetail: import("vue").ComputedRef<string | null>;
78
- pendingAppendItems: import("vue").ComputedRef<VibeViewerItem[]>;
79
- phase: import("vue").Ref<import("./removalState").VibeLoadPhase, import("./removalState").VibeLoadPhase>;
80
- prefetchNextPage: () => Promise<void>;
81
- prefetchPreviousPage: () => Promise<void>;
82
- previousCursor: import("vue").ComputedRef<string | null>;
83
- removedCount: import("vue").ComputedRef<number>;
84
- remove: (ids: string | string[]) => {
85
- ids: string[];
86
- };
87
- restore: (ids: string | string[]) => {
88
- ids: string[];
89
- };
90
- retry: () => Promise<void>;
91
- retryInitialLoad: () => Promise<void>;
92
- setActiveIndex: (nextIndex: number) => void;
93
- setAutoPrefetchEnabled: (nextValue: boolean) => void;
94
- undo: () => {
95
- ids: string[];
96
- } | null;
97
- unlockPageLoading: () => void;
98
- };