@harryy/react-file-browser 0.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 (57) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +247 -0
  3. package/dist/adapters/cloud-adapter-base.d.ts +27 -0
  4. package/dist/adapters/cloud-adapter-base.d.ts.map +1 -0
  5. package/dist/adapters/in-memory/in-memory-file-browser-adapter.d.ts +53 -0
  6. package/dist/adapters/in-memory/in-memory-file-browser-adapter.d.ts.map +1 -0
  7. package/dist/adapters/in-memory/index.d.ts +2 -0
  8. package/dist/adapters/in-memory/index.d.ts.map +1 -0
  9. package/dist/adapters/in-memory/index.js +270 -0
  10. package/dist/adapters/in-memory/index.js.map +1 -0
  11. package/dist/adapters/r2/index.d.ts +7 -0
  12. package/dist/adapters/r2/index.d.ts.map +1 -0
  13. package/dist/adapters/r2/index.js +11 -0
  14. package/dist/adapters/r2/index.js.map +1 -0
  15. package/dist/adapters/s3/index.d.ts +7 -0
  16. package/dist/adapters/s3/index.d.ts.map +1 -0
  17. package/dist/adapters/s3/index.js +11 -0
  18. package/dist/adapters/s3/index.js.map +1 -0
  19. package/dist/adapters/s3-compatible-adapter.d.ts +50 -0
  20. package/dist/adapters/s3-compatible-adapter.d.ts.map +1 -0
  21. package/dist/adapters/supabase/index.d.ts +7 -0
  22. package/dist/adapters/supabase/index.d.ts.map +1 -0
  23. package/dist/adapters/supabase/index.js +216 -0
  24. package/dist/adapters/supabase/index.js.map +1 -0
  25. package/dist/adapters/supabase/supabase-file-browser-adapter.d.ts +88 -0
  26. package/dist/adapters/supabase/supabase-file-browser-adapter.d.ts.map +1 -0
  27. package/dist/chunks/browser-4lIkMGbo.js +436 -0
  28. package/dist/chunks/browser-4lIkMGbo.js.map +1 -0
  29. package/dist/chunks/cloud-adapter-base-CBUoZYLS.js +39 -0
  30. package/dist/chunks/cloud-adapter-base-CBUoZYLS.js.map +1 -0
  31. package/dist/chunks/path-CPm7s9NF.js +52 -0
  32. package/dist/chunks/path-CPm7s9NF.js.map +1 -0
  33. package/dist/chunks/s3-compatible-adapter-D9agsn9e.js +317 -0
  34. package/dist/chunks/s3-compatible-adapter-D9agsn9e.js.map +1 -0
  35. package/dist/components/file-browser.d.ts +28 -0
  36. package/dist/components/file-browser.d.ts.map +1 -0
  37. package/dist/core/path.d.ts +9 -0
  38. package/dist/core/path.d.ts.map +1 -0
  39. package/dist/core/types.d.ts +84 -0
  40. package/dist/core/types.d.ts.map +1 -0
  41. package/dist/core/upload-drop.d.ts +7 -0
  42. package/dist/core/upload-drop.d.ts.map +1 -0
  43. package/dist/core/use-file-browser.d.ts +78 -0
  44. package/dist/core/use-file-browser.d.ts.map +1 -0
  45. package/dist/index.d.ts +9 -0
  46. package/dist/index.d.ts.map +1 -0
  47. package/dist/index.js +3212 -0
  48. package/dist/index.js.map +1 -0
  49. package/dist/theme/index.d.ts +25 -0
  50. package/dist/theme/index.d.ts.map +1 -0
  51. package/dist/theme/index.js +28 -0
  52. package/dist/theme/index.js.map +1 -0
  53. package/dist/transfers/file-browser-provider.d.ts +13 -0
  54. package/dist/transfers/file-browser-provider.d.ts.map +1 -0
  55. package/dist/transfers/transfer-manager.d.ts +118 -0
  56. package/dist/transfers/transfer-manager.d.ts.map +1 -0
  57. package/package.json +137 -0
@@ -0,0 +1,25 @@
1
+ export type FileBrowserDensity = 'comfortable' | 'compact';
2
+ export declare const FILE_BROWSER_THEME_CONTRACT: {
3
+ readonly accent: "var(--color-primary-500, oklch(.54 .19 285))";
4
+ readonly accentSoft: "var(--color-primary-50, oklch(.54 .19 285 / .09))";
5
+ readonly bg: "var(--color-gray-50, #f5f5f9)";
6
+ readonly surface: "var(--color-white, #fff)";
7
+ readonly surface2: "var(--color-gray-100, #f1f1f6)";
8
+ readonly border: "var(--color-gray-200, #e5e5ee)";
9
+ readonly borderStrong: "var(--color-gray-300, #d3d3e2)";
10
+ readonly text: "var(--color-gray-950, #1a1a24)";
11
+ readonly muted: "var(--color-gray-500, #71717f)";
12
+ readonly ok: "var(--color-green-600, oklch(.54 .15 150))";
13
+ readonly okSoft: "var(--color-green-50, oklch(.54 .15 150 / .12))";
14
+ readonly warn: "var(--color-yellow-600, oklch(.54 .15 80))";
15
+ readonly warnSoft: "var(--color-yellow-50, oklch(.54 .15 80 / .12))";
16
+ readonly danger: "var(--color-red-600, oklch(.54 .19 25))";
17
+ readonly dangerSoft: "var(--color-red-50, oklch(.54 .19 25 / .1))";
18
+ readonly folder: "var(--color-amber-300, oklch(.78 .12 80))";
19
+ readonly radius: "var(--radius-lg, 10px)";
20
+ readonly gap: "var(--spacing, .25rem)";
21
+ };
22
+ export declare function getFileBrowserDensityAttributes(density?: FileBrowserDensity): {
23
+ 'data-fb-density': FileBrowserDensity;
24
+ };
25
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/theme/index.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,kBAAkB,GAAG,aAAa,GAAG,SAAS,CAAA;AAE1D,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;CAmB9B,CAAA;AAEV,wBAAgB,+BAA+B,CAAC,OAAO,GAAE,kBAAkC,GAAG;IAC7F,iBAAiB,EAAE,kBAAkB,CAAA;CACrC,CAEA"}
@@ -0,0 +1,28 @@
1
+ //#region src/theme/index.ts
2
+ var e = {
3
+ accent: "var(--color-primary-500, oklch(.54 .19 285))",
4
+ accentSoft: "var(--color-primary-50, oklch(.54 .19 285 / .09))",
5
+ bg: "var(--color-gray-50, #f5f5f9)",
6
+ surface: "var(--color-white, #fff)",
7
+ surface2: "var(--color-gray-100, #f1f1f6)",
8
+ border: "var(--color-gray-200, #e5e5ee)",
9
+ borderStrong: "var(--color-gray-300, #d3d3e2)",
10
+ text: "var(--color-gray-950, #1a1a24)",
11
+ muted: "var(--color-gray-500, #71717f)",
12
+ ok: "var(--color-green-600, oklch(.54 .15 150))",
13
+ okSoft: "var(--color-green-50, oklch(.54 .15 150 / .12))",
14
+ warn: "var(--color-yellow-600, oklch(.54 .15 80))",
15
+ warnSoft: "var(--color-yellow-50, oklch(.54 .15 80 / .12))",
16
+ danger: "var(--color-red-600, oklch(.54 .19 25))",
17
+ dangerSoft: "var(--color-red-50, oklch(.54 .19 25 / .1))",
18
+ folder: "var(--color-amber-300, oklch(.78 .12 80))",
19
+ radius: "var(--radius-lg, 10px)",
20
+ gap: "var(--spacing, .25rem)"
21
+ };
22
+ function t(e = "comfortable") {
23
+ return { "data-fb-density": e };
24
+ }
25
+ //#endregion
26
+ export { e as FILE_BROWSER_THEME_CONTRACT, t as getFileBrowserDensityAttributes };
27
+
28
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../src/theme/index.ts"],"sourcesContent":["export type FileBrowserDensity = 'comfortable' | 'compact'\n\nexport const FILE_BROWSER_THEME_CONTRACT = {\n\taccent: 'var(--color-primary-500, oklch(.54 .19 285))',\n\taccentSoft: 'var(--color-primary-50, oklch(.54 .19 285 / .09))',\n\tbg: 'var(--color-gray-50, #f5f5f9)',\n\tsurface: 'var(--color-white, #fff)',\n\tsurface2: 'var(--color-gray-100, #f1f1f6)',\n\tborder: 'var(--color-gray-200, #e5e5ee)',\n\tborderStrong: 'var(--color-gray-300, #d3d3e2)',\n\ttext: 'var(--color-gray-950, #1a1a24)',\n\tmuted: 'var(--color-gray-500, #71717f)',\n\tok: 'var(--color-green-600, oklch(.54 .15 150))',\n\tokSoft: 'var(--color-green-50, oklch(.54 .15 150 / .12))',\n\twarn: 'var(--color-yellow-600, oklch(.54 .15 80))',\n\twarnSoft: 'var(--color-yellow-50, oklch(.54 .15 80 / .12))',\n\tdanger: 'var(--color-red-600, oklch(.54 .19 25))',\n\tdangerSoft: 'var(--color-red-50, oklch(.54 .19 25 / .1))',\n\tfolder: 'var(--color-amber-300, oklch(.78 .12 80))',\n\tradius: 'var(--radius-lg, 10px)',\n\tgap: 'var(--spacing, .25rem)'\n} as const\n\nexport function getFileBrowserDensityAttributes(density: FileBrowserDensity = 'comfortable'): {\n\t'data-fb-density': FileBrowserDensity\n} {\n\treturn { 'data-fb-density': density }\n}\n"],"mappings":";AAEA,IAAa,IAA8B;CAC1C,QAAQ;CACR,YAAY;CACZ,IAAI;CACJ,SAAS;CACT,UAAU;CACV,QAAQ;CACR,cAAc;CACd,MAAM;CACN,OAAO;CACP,IAAI;CACJ,QAAQ;CACR,MAAM;CACN,UAAU;CACV,QAAQ;CACR,YAAY;CACZ,QAAQ;CACR,QAAQ;CACR,KAAK;AACN;AAEA,SAAgB,EAAgC,IAA8B,eAE5E;CACD,OAAO,EAAE,mBAAmB,EAAQ;AACrC"}
@@ -0,0 +1,13 @@
1
+ import type { PropsWithChildren } from 'react';
2
+ import { TransferManager } from './transfer-manager';
3
+ import type { ResumeRestoredUploadInput, TransferManagerOptions, TransferSnapshot, UploadTransfer } from './transfer-manager';
4
+ export type FileBrowserProviderProps = PropsWithChildren<{
5
+ manager?: TransferManager;
6
+ options?: TransferManagerOptions;
7
+ resolveRestoredUpload?: (upload: UploadTransfer) => Omit<ResumeRestoredUploadInput, 'id'> | Promise<Omit<ResumeRestoredUploadInput, 'id'> | undefined> | undefined;
8
+ showFloatingWidget?: boolean;
9
+ }>;
10
+ export declare function FileBrowserProvider({ children, manager, options, resolveRestoredUpload, showFloatingWidget }: FileBrowserProviderProps): import("react").JSX.Element;
11
+ export declare function useTransfers(): TransferManager;
12
+ export declare function useTransferSnapshot(): TransferSnapshot;
13
+ //# sourceMappingURL=file-browser-provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-browser-provider.d.ts","sourceRoot":"","sources":["../../src/transfers/file-browser-provider.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAA;AAE9C,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AACpD,OAAO,KAAK,EAEX,yBAAyB,EACzB,sBAAsB,EACtB,gBAAgB,EAChB,cAAc,EAEd,MAAM,oBAAoB,CAAA;AAQ3B,MAAM,MAAM,wBAAwB,GAAG,iBAAiB,CAAC;IACxD,OAAO,CAAC,EAAE,eAAe,CAAA;IACzB,OAAO,CAAC,EAAE,sBAAsB,CAAA;IAChC,qBAAqB,CAAC,EAAE,CACvB,MAAM,EAAE,cAAc,KAClB,IAAI,CAAC,yBAAyB,EAAE,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,yBAAyB,EAAE,IAAI,CAAC,GAAG,SAAS,CAAC,GAAG,SAAS,CAAA;IACnH,kBAAkB,CAAC,EAAE,OAAO,CAAA;CAC5B,CAAC,CAAA;AAEF,wBAAgB,mBAAmB,CAAC,EACnC,QAAQ,EACR,OAAO,EACP,OAAO,EACP,qBAAqB,EACrB,kBAAyB,EACzB,EAAE,wBAAwB,+BA4C1B;AAED,wBAAgB,YAAY,IAAI,eAAe,CAG9C;AAED,wBAAgB,mBAAmB,IAAI,gBAAgB,CAEtD"}
@@ -0,0 +1,118 @@
1
+ import type { FileBrowserAdapter, FileBrowserUploadOptions, FileNode, MultipartUploadPart } from '../core/types';
2
+ export type TransferStatus = 'queued' | 'uploading' | 'paused' | 'failed' | 'completed' | 'cancelled';
3
+ export type UploadTransfer = {
4
+ id: string;
5
+ kind: 'upload';
6
+ status: TransferStatus;
7
+ path: string;
8
+ name: string;
9
+ loadedBytes: number;
10
+ totalBytes: number;
11
+ bytesPerSecond?: number;
12
+ completedParts: MultipartUploadPart[];
13
+ createdAt: string;
14
+ updatedAt: string;
15
+ error?: string;
16
+ uploadId?: string;
17
+ partSize?: number;
18
+ file?: File;
19
+ onConflict?: FileBrowserUploadOptions['onConflict'];
20
+ adapter?: FileBrowserAdapter;
21
+ result?: FileNode;
22
+ abortController?: AbortController;
23
+ group?: UploadTransferGroup;
24
+ };
25
+ export type UploadTransferGroup = {
26
+ id: string;
27
+ name: string;
28
+ totalFiles: number;
29
+ createdFolders: number;
30
+ };
31
+ export type BulkDownloadJob = {
32
+ id: string;
33
+ kind: 'bulk-download';
34
+ status: 'preparing' | 'warning' | 'ready' | 'failed';
35
+ strategy: 'single' | 'server' | 'client';
36
+ paths: string[];
37
+ selectedBytes: number;
38
+ createdAt: string;
39
+ updatedAt: string;
40
+ url?: string;
41
+ expiresAt?: string;
42
+ warning?: 'client_zip_size';
43
+ error?: string;
44
+ };
45
+ export type TransferSnapshot = {
46
+ uploads: UploadTransfer[];
47
+ downloads: BulkDownloadJob[];
48
+ };
49
+ export type EnqueueUploadInput = {
50
+ adapter: FileBrowserAdapter;
51
+ destinationPath: string;
52
+ file: File;
53
+ onConflict?: FileBrowserUploadOptions['onConflict'];
54
+ group?: UploadTransferGroup;
55
+ };
56
+ export type ResumeRestoredUploadInput = {
57
+ id: string;
58
+ adapter: FileBrowserAdapter;
59
+ file: File;
60
+ onConflict?: FileBrowserUploadOptions['onConflict'];
61
+ };
62
+ export type PrepareBulkDownloadInput = {
63
+ adapter: FileBrowserAdapter;
64
+ paths: string[];
65
+ selectedBytes: number;
66
+ warnZipSizeBytes?: number;
67
+ };
68
+ export type PrepareSingleDownloadInput = {
69
+ adapter: FileBrowserAdapter;
70
+ path: string;
71
+ selectedBytes?: number;
72
+ };
73
+ export type TransferManagerOptions = {
74
+ storage?: Storage;
75
+ storageKey?: string;
76
+ idFactory?: () => string;
77
+ now?: () => Date;
78
+ };
79
+ export declare class TransferManager {
80
+ private readonly uploads;
81
+ private readonly downloads;
82
+ private readonly uploadSpeedSamples;
83
+ private readonly subscribers;
84
+ private readonly activeTasks;
85
+ private readonly storage?;
86
+ private readonly storageKey;
87
+ private readonly idFactory;
88
+ private readonly now;
89
+ private snapshotCache;
90
+ constructor(options?: TransferManagerOptions);
91
+ subscribe(listener: () => void): () => void;
92
+ getSnapshot(): TransferSnapshot;
93
+ getUpload(id: string): UploadTransfer | undefined;
94
+ getRestorableUploads(): UploadTransfer[];
95
+ dismissRestoredUploads(ids: string[]): void;
96
+ dismissDownload(id: string): void;
97
+ hasActiveTransfers(): boolean;
98
+ enqueueUpload({ adapter, destinationPath, file, group, onConflict }: EnqueueUploadInput): string;
99
+ resumeUpload(id: string): Promise<void>;
100
+ resumeRestoredUpload({ adapter, file, id, onConflict }: ResumeRestoredUploadInput): Promise<void>;
101
+ pauseUpload(id: string): void;
102
+ cancelUpload(id: string): Promise<void>;
103
+ waitForIdle(): Promise<void>;
104
+ prepareBulkDownload({ adapter, paths, selectedBytes, warnZipSizeBytes }: PrepareBulkDownloadInput): Promise<BulkDownloadJob>;
105
+ prepareSingleDownload({ adapter, path, selectedBytes }: PrepareSingleDownloadInput): Promise<BulkDownloadJob>;
106
+ confirmBulkDownload(id: string): Promise<BulkDownloadJob | undefined>;
107
+ private runUpload;
108
+ private runSimpleUpload;
109
+ private runMultipartUpload;
110
+ private updateUploadProgress;
111
+ private track;
112
+ private persistAndNotify;
113
+ private persist;
114
+ private restorePersisted;
115
+ private timestamp;
116
+ private pruneExpiredDownloads;
117
+ }
118
+ //# sourceMappingURL=transfer-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transfer-manager.d.ts","sourceRoot":"","sources":["../../src/transfers/transfer-manager.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,137 @@
1
+ {
2
+ "name": "@harryy/react-file-browser",
3
+ "version": "0.0.0",
4
+ "description": "A standalone, storage-agnostic React file manager component library.",
5
+ "keywords": [
6
+ "file-browser",
7
+ "file-explorer",
8
+ "file-manager",
9
+ "r2",
10
+ "react",
11
+ "s3",
12
+ "storage",
13
+ "supabase",
14
+ "typescript",
15
+ "upload"
16
+ ],
17
+ "homepage": "https://harryy2510.github.io/react-file-browser/",
18
+ "bugs": {
19
+ "url": "https://github.com/harryy2510/react-file-browser/issues"
20
+ },
21
+ "license": "MIT",
22
+ "author": "Hariom Sharma",
23
+ "repository": {
24
+ "type": "git",
25
+ "url": "git+https://github.com/harryy2510/react-file-browser.git"
26
+ },
27
+ "files": [
28
+ "dist",
29
+ "README.md",
30
+ "LICENSE"
31
+ ],
32
+ "type": "module",
33
+ "sideEffects": false,
34
+ "module": "./dist/index.js",
35
+ "types": "./dist/index.d.ts",
36
+ "exports": {
37
+ ".": {
38
+ "types": "./dist/index.d.ts",
39
+ "import": "./dist/index.js"
40
+ },
41
+ "./adapters/in-memory": {
42
+ "types": "./dist/adapters/in-memory/index.d.ts",
43
+ "import": "./dist/adapters/in-memory/index.js"
44
+ },
45
+ "./adapters/s3": {
46
+ "types": "./dist/adapters/s3/index.d.ts",
47
+ "import": "./dist/adapters/s3/index.js"
48
+ },
49
+ "./adapters/r2": {
50
+ "types": "./dist/adapters/r2/index.d.ts",
51
+ "import": "./dist/adapters/r2/index.js"
52
+ },
53
+ "./adapters/supabase": {
54
+ "types": "./dist/adapters/supabase/index.d.ts",
55
+ "import": "./dist/adapters/supabase/index.js"
56
+ },
57
+ "./theme": {
58
+ "types": "./dist/theme/index.d.ts",
59
+ "import": "./dist/theme/index.js"
60
+ }
61
+ },
62
+ "publishConfig": {
63
+ "access": "public"
64
+ },
65
+ "scripts": {
66
+ "build": "bun run build:lib && bun run build:demo",
67
+ "build:lib": "vite build && tsc -p tsconfig.build.json",
68
+ "build:demo": "vite build --config demo/vite.config.ts",
69
+ "dev": "vite --config demo/vite.config.ts",
70
+ "oxfmt": "oxfmt",
71
+ "oxlint": "oxlint",
72
+ "format": "bun run oxfmt --write .",
73
+ "format:check": "bun run oxfmt --check .",
74
+ "lint": "bun run oxlint --type-aware --type-check .",
75
+ "test": "vitest run",
76
+ "typecheck": "bun run lint",
77
+ "validate": "bun run format:check && bun run lint && bun run test && bun run build",
78
+ "commitlint": "commitlint --edit",
79
+ "hooks:install": "lefthook install --reset-hooks-path",
80
+ "hooks:validate": "lefthook run pre-commit --no-stage-fixed",
81
+ "release": "semantic-release"
82
+ },
83
+ "dependencies": {
84
+ "fflate": "^0.8.3",
85
+ "lucide-react": "^1.23.0",
86
+ "react-selecto": "^1.26.3"
87
+ },
88
+ "devDependencies": {
89
+ "@aws-sdk/client-s3": "^3.1079.0",
90
+ "@aws-sdk/s3-request-presigner": "^3.1079.0",
91
+ "@commitlint/cli": "^21.2.0",
92
+ "@commitlint/config-conventional": "^21.2.0",
93
+ "@semantic-release/changelog": "^6.0.3",
94
+ "@semantic-release/git": "^10.0.1",
95
+ "@semantic-release/npm": "^13.1.5",
96
+ "@supabase/supabase-js": "^2.110.0",
97
+ "@tailwindcss/vite": "^4.3.2",
98
+ "@testing-library/jest-dom": "^6.9.1",
99
+ "@testing-library/react": "^16.3.2",
100
+ "@testing-library/user-event": "^14.6.1",
101
+ "@types/node": "^26.1.0",
102
+ "@types/react": "^19.2.17",
103
+ "@types/react-dom": "^19.2.3",
104
+ "@vitejs/plugin-react": "^6.0.3",
105
+ "jsdom": "^29.1.1",
106
+ "lefthook": "^2.1.9",
107
+ "oxfmt": "^0.57.0",
108
+ "oxlint": "^1.72.0",
109
+ "oxlint-tsgolint": "^0.24.0",
110
+ "semantic-release": "^25.0.5",
111
+ "tailwindcss": "^4.3.2",
112
+ "typescript": "^6.0.3",
113
+ "vite": "^8.1.3",
114
+ "vitest": "^4.1.9"
115
+ },
116
+ "peerDependencies": {
117
+ "@aws-sdk/client-s3": "^3.1079.0",
118
+ "@aws-sdk/s3-request-presigner": "^3.1079.0",
119
+ "@supabase/supabase-js": "^2.110.0",
120
+ "react": ">=18 <20",
121
+ "react-dom": ">=18 <20"
122
+ },
123
+ "peerDependenciesMeta": {
124
+ "@aws-sdk/client-s3": {
125
+ "optional": true
126
+ },
127
+ "@aws-sdk/s3-request-presigner": {
128
+ "optional": true
129
+ },
130
+ "@supabase/supabase-js": {
131
+ "optional": true
132
+ }
133
+ },
134
+ "engines": {
135
+ "node": ">=24"
136
+ }
137
+ }