@wyxos/vibe 2.2.5 → 3.0.1

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 (75) hide show
  1. package/README.md +451 -95
  2. package/lib/components/FullscreenHeader.vue.d.ts +25 -0
  3. package/lib/components/FullscreenMediaBar.vue.d.ts +14 -0
  4. package/lib/components/FullscreenSurface.vue.d.ts +46 -0
  5. package/lib/components/Layout.vue.d.ts +42 -0
  6. package/lib/components/ListCard.vue.d.ts +44 -0
  7. package/lib/components/ListSurface.vue.d.ts +64 -0
  8. package/lib/components/viewer-core/assetErrors.d.ts +30 -0
  9. package/lib/components/viewer-core/assetState.d.ts +12 -0
  10. package/lib/components/viewer-core/autoBuckets.d.ts +18 -0
  11. package/lib/components/viewer-core/autoResolveHelpers.d.ts +19 -0
  12. package/lib/components/viewer-core/autoResolveState.d.ts +50 -0
  13. package/lib/components/viewer-core/dom.d.ts +2 -0
  14. package/lib/components/viewer-core/fillDelay.d.ts +9 -0
  15. package/lib/components/viewer-core/format.d.ts +1 -0
  16. package/lib/components/viewer-core/itemIdentity.d.ts +6 -0
  17. package/lib/components/viewer-core/listCardAsset.d.ts +4 -0
  18. package/lib/components/viewer-core/listPreview.d.ts +10 -0
  19. package/lib/components/viewer-core/loadError.d.ts +4 -0
  20. package/lib/components/viewer-core/masonryLayout.d.ts +37 -0
  21. package/lib/components/viewer-core/masonryViewport.d.ts +7 -0
  22. package/lib/components/viewer-core/media.d.ts +4 -0
  23. package/lib/components/viewer-core/mediaPlayback.d.ts +1 -0
  24. package/lib/components/viewer-core/removalState.d.ts +50 -0
  25. package/lib/components/viewer-core/slotContent.d.ts +2 -0
  26. package/lib/components/viewer-core/surfaceSlots.d.ts +22 -0
  27. package/lib/components/viewer-core/theme.d.ts +3 -0
  28. package/lib/components/viewer-core/useActivation.d.ts +8 -0
  29. package/lib/components/viewer-core/useAssetLoadQueue.d.ts +22 -0
  30. package/lib/components/viewer-core/useAutoResolveSource.d.ts +51 -0
  31. package/lib/components/viewer-core/useController.d.ts +71 -0
  32. package/lib/components/viewer-core/useDataSource.d.ts +100 -0
  33. package/lib/components/viewer-core/useEdgeBoundary.d.ts +16 -0
  34. package/lib/components/viewer-core/useFullscreen.d.ts +1 -0
  35. package/lib/components/viewer-core/useMasonryList.d.ts +43 -0
  36. package/lib/components/viewer-core/useMasonryMotion.d.ts +29 -0
  37. package/lib/components/viewer-core/useMedia.d.ts +40 -0
  38. package/lib/components/viewer-core/useViewer.d.ts +61 -0
  39. package/lib/components/viewer-core/virtualization.d.ts +14 -0
  40. package/lib/components/viewer.d.ts +16 -0
  41. package/lib/index.cjs +1 -1
  42. package/lib/index.d.ts +58 -5
  43. package/lib/index.js +3202 -1486
  44. package/lib/style.css +3 -0
  45. package/package.json +86 -83
  46. package/lib/App.vue.d.ts +0 -3
  47. package/lib/apple-touch-icon-114x114.png +0 -0
  48. package/lib/apple-touch-icon-120x120.png +0 -0
  49. package/lib/apple-touch-icon-144x144.png +0 -0
  50. package/lib/apple-touch-icon-152x152.png +0 -0
  51. package/lib/apple-touch-icon-180x180.png +0 -0
  52. package/lib/apple-touch-icon-57x57.png +0 -0
  53. package/lib/apple-touch-icon-60x60.png +0 -0
  54. package/lib/apple-touch-icon-72x72.png +0 -0
  55. package/lib/apple-touch-icon-76x76.png +0 -0
  56. package/lib/components/Masonry.vue.d.ts +0 -68
  57. package/lib/components/MasonryItem.vue.d.ts +0 -3
  58. package/lib/components/MasonryLoader.vue.d.ts +0 -27
  59. package/lib/components/MasonryVideoControls.vue.d.ts +0 -30
  60. package/lib/components/masonryItemRegistry.d.ts +0 -24
  61. package/lib/favicon-128x128.png +0 -0
  62. package/lib/favicon-16x16.png +0 -0
  63. package/lib/favicon-256x256.png +0 -0
  64. package/lib/favicon-32x32.png +0 -0
  65. package/lib/favicon-48x48.png +0 -0
  66. package/lib/favicon-64x64.png +0 -0
  67. package/lib/favicon.ico +0 -0
  68. package/lib/logo-dark.svg +0 -36
  69. package/lib/logo-light.svg +0 -29
  70. package/lib/logo.svg +0 -32
  71. package/lib/manifest.json +0 -41
  72. package/lib/masonry/backfill.d.ts +0 -53
  73. package/lib/masonry/layout.d.ts +0 -13
  74. package/lib/masonry/layoutEngine.d.ts +0 -33
  75. package/lib/masonry/types.d.ts +0 -95
package/lib/manifest.json DELETED
@@ -1,41 +0,0 @@
1
- {
2
- "name": "VIBE - Vue Infinite Block Engine",
3
- "short_name": "VIBE",
4
- "description": "A high-performance, responsive masonry layout engine for Vue 3",
5
- "start_url": "/",
6
- "display": "standalone",
7
- "background_color": "#f8fafc",
8
- "theme_color": "#3b82f6",
9
- "icons": [
10
- {
11
- "src": "favicon-16x16.png",
12
- "sizes": "16x16",
13
- "type": "image/png"
14
- },
15
- {
16
- "src": "favicon-32x32.png",
17
- "sizes": "32x32",
18
- "type": "image/png"
19
- },
20
- {
21
- "src": "favicon-48x48.png",
22
- "sizes": "48x48",
23
- "type": "image/png"
24
- },
25
- {
26
- "src": "favicon-64x64.png",
27
- "sizes": "64x64",
28
- "type": "image/png"
29
- },
30
- {
31
- "src": "favicon-128x128.png",
32
- "sizes": "128x128",
33
- "type": "image/png"
34
- },
35
- {
36
- "src": "favicon-256x256.png",
37
- "sizes": "256x256",
38
- "type": "image/png"
39
- }
40
- ]
41
- }
@@ -1,53 +0,0 @@
1
- import type { Ref, ShallowRef } from 'vue';
2
- export type BackfillBatchResult<TItem, TPageToken> = {
3
- batchItems: TItem[];
4
- pages: TPageToken[];
5
- nextPage: TPageToken | null;
6
- };
7
- export type BackfillGetContentResult<TItem, TPageToken> = {
8
- items: TItem[];
9
- nextPage: TPageToken | null;
10
- };
11
- export type BackfillGetContentFn<TItem, TPageToken> = (pageToken: TPageToken) => Promise<BackfillGetContentResult<TItem, TPageToken>>;
12
- export type BackfillStatsShape<TPageToken> = {
13
- enabled: boolean;
14
- isBackfillActive: boolean;
15
- isRequestInFlight: boolean;
16
- page: TPageToken | null;
17
- next: TPageToken | null;
18
- progress: {
19
- collected: number;
20
- target: number;
21
- };
22
- cooldownMsRemaining: number;
23
- cooldownMsTotal: number;
24
- pageSize: number;
25
- bufferSize: number;
26
- lastBatch: {
27
- startPage: TPageToken | null;
28
- pages: TPageToken[];
29
- usedFromBuffer: number;
30
- fetchedFromNetwork: number;
31
- collectedTotal: number;
32
- emitted: number;
33
- carried: number;
34
- } | null;
35
- totals: {
36
- pagesFetched: number;
37
- itemsFetchedFromNetwork: number;
38
- };
39
- };
40
- export declare function clampPageSize(n: number): number;
41
- export declare function clampDelayMs(n: number): number;
42
- export declare function createBackfillBatchLoader<TItem, TPageToken>(options: {
43
- getContent: BackfillGetContentFn<TItem, TPageToken>;
44
- markEnterFromLeft: (items: TItem[]) => void;
45
- buffer: Ref<TItem[]>;
46
- stats: ShallowRef<BackfillStatsShape<TPageToken>>;
47
- isEnabled: () => boolean;
48
- getPageSize: () => number;
49
- getRequestDelayMs: () => number;
50
- getCancelToken?: () => number;
51
- }): {
52
- loadBackfillBatch: (startPage: TPageToken | null) => Promise<BackfillBatchResult<TItem, TPageToken>>;
53
- };
@@ -1,13 +0,0 @@
1
- export declare function getColumnCount(containerWidth: number, itemWidth: number): number;
2
- export declare function getColumnWidth(containerWidth: number, columnCount: number, fallbackItemWidth: number, gapX?: number): number;
3
- export declare function estimateItemHeight(item: {
4
- width?: number;
5
- height?: number;
6
- } | null | undefined, columnWidth: number): number;
7
- export declare function distributeItemsIntoColumns<T extends {
8
- width?: number;
9
- height?: number;
10
- }>(items: T[], { columnCount, columnWidth }: {
11
- columnCount: number;
12
- columnWidth: number;
13
- }): T[][];
@@ -1,33 +0,0 @@
1
- export type LayoutPosition = {
2
- x: number;
3
- y: number;
4
- };
5
- export type MasonryLayoutResult = {
6
- positions: LayoutPosition[];
7
- heights: number[];
8
- buckets: Map<number, number[]>;
9
- contentHeight: number;
10
- indexById: Map<string, number>;
11
- };
12
- export declare function buildMasonryLayout<TItem extends {
13
- id?: string;
14
- width: number;
15
- height: number;
16
- }>(options: {
17
- items: TItem[];
18
- columnCount: number;
19
- columnWidth: number;
20
- gapX: number;
21
- gapY: number;
22
- headerHeight: number;
23
- footerHeight: number;
24
- bucketPx: number;
25
- }): MasonryLayoutResult;
26
- export declare function getVisibleIndicesFromBuckets(options: {
27
- itemCount: number;
28
- viewportHeight: number;
29
- scrollTop: number;
30
- overscanPx: number;
31
- bucketPx: number;
32
- buckets: Map<number, number[]>;
33
- }): number[];
@@ -1,95 +0,0 @@
1
- export type PageToken = string | number;
2
- export type MasonryRestoredPages = PageToken | PageToken[];
3
- export type BackfillStats = {
4
- enabled: boolean;
5
- isBackfillActive: boolean;
6
- isRequestInFlight: boolean;
7
- page: PageToken | null;
8
- next: PageToken | null;
9
- progress: {
10
- collected: number;
11
- target: number;
12
- };
13
- cooldownMsRemaining: number;
14
- cooldownMsTotal: number;
15
- pageSize: number;
16
- bufferSize: number;
17
- lastBatch: {
18
- startPage: PageToken | null;
19
- pages: PageToken[];
20
- usedFromBuffer: number;
21
- fetchedFromNetwork: number;
22
- collectedTotal: number;
23
- emitted: number;
24
- carried: number;
25
- } | null;
26
- totals: {
27
- pagesFetched: number;
28
- itemsFetchedFromNetwork: number;
29
- };
30
- };
31
- export type MasonryItemBase = {
32
- id: string;
33
- width: number;
34
- height: number;
35
- originalIndex?: number;
36
- type?: string;
37
- preview?: string;
38
- original?: string;
39
- [key: string]: unknown;
40
- };
41
- export type MasonryItemOrId = string | MasonryItemBase;
42
- export type GetContentResult<TItem extends MasonryItemBase> = {
43
- items: TItem[];
44
- nextPage: PageToken | null;
45
- };
46
- export type GetContentFn<TItem extends MasonryItemBase> = (pageToken: PageToken) => Promise<GetContentResult<TItem>>;
47
- export type MasonryMode = 'default' | 'backfill';
48
- export type MasonryProps = {
49
- getContent: GetContentFn<MasonryItemBase>;
50
- mode?: MasonryMode;
51
- pageSize?: number;
52
- backfillRequestDelayMs?: number;
53
- /**
54
- * Staggers the enter animation when multiple items start entering together.
55
- * Set to 0 to disable.
56
- */
57
- enterStaggerMs?: number;
58
- items?: MasonryItemBase[];
59
- page?: PageToken;
60
- restoredPages?: MasonryRestoredPages;
61
- itemWidth?: number;
62
- prefetchThresholdPx?: number;
63
- gapX?: number;
64
- gapY?: number;
65
- headerHeight?: number;
66
- footerHeight?: number;
67
- overscanPx?: number;
68
- };
69
- export interface MasonryInstance {
70
- remove: (itemsOrIds: MasonryItemOrId | MasonryItemOrId[]) => Promise<void> | void;
71
- restore: (itemsOrIds: MasonryItemOrId | MasonryItemOrId[]) => Promise<void> | void;
72
- undo: () => Promise<void> | void;
73
- forget: (itemsOrIds: MasonryItemOrId | MasonryItemOrId[]) => void;
74
- pagesLoaded: PageToken[];
75
- nextPage: PageToken | null;
76
- loadNextPage: () => Promise<void>;
77
- cancel: () => void;
78
- backfillStats?: BackfillStats | null;
79
- readonly isLoading: boolean;
80
- readonly hasReachedEnd: boolean;
81
- }
82
- export declare const masonryDefaults: {
83
- readonly mode: "default";
84
- readonly pageSize: 20;
85
- readonly backfillRequestDelayMs: 2000;
86
- readonly enterStaggerMs: 40;
87
- readonly page: 1;
88
- readonly itemWidth: 300;
89
- readonly prefetchThresholdPx: 200;
90
- readonly gapX: 16;
91
- readonly gapY: 16;
92
- readonly headerHeight: 0;
93
- readonly footerHeight: 0;
94
- readonly overscanPx: 600;
95
- };