@sqlrooms/s3-browser 0.0.1 → 0.0.3

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.
@@ -1,13 +1,57 @@
1
1
  import { FC } from 'react';
2
2
  import { S3FileOrDirectory } from './S3FileOrDirectory';
3
- type Props = {
3
+ /**
4
+ * A file browser component for navigating and selecting files from an S3-like storage.
5
+ *
6
+ * This component provides a familiar file explorer interface with features like:
7
+ * - Directory navigation with breadcrumbs
8
+ * - File and directory listing
9
+ * - Multiple file selection
10
+ * - File metadata display (size, type, last modified)
11
+ *
12
+ * ![S3 File Browser Interface](https://github.com/user-attachments/assets/dd79fbb9-c487-4050-96ef-81cff39930d3)
13
+ *
14
+ * @example
15
+ * ```tsx
16
+ * const [selectedFiles, setSelectedFiles] = useState<string[]>([]);
17
+ * const [selectedDirectory, setSelectedDirectory] = useState('');
18
+ *
19
+ * return (
20
+ * <S3FileBrowser
21
+ * files={[
22
+ * { key: 'documents', isDirectory: true },
23
+ * {
24
+ * key: 'example.txt',
25
+ * isDirectory: false,
26
+ * size: 1024,
27
+ * contentType: 'text/plain',
28
+ * lastModified: new Date()
29
+ * }
30
+ * ]}
31
+ * selectedFiles={selectedFiles}
32
+ * selectedDirectory={selectedDirectory}
33
+ * onCanConfirmChange={(canConfirm) => console.log('Can confirm:', canConfirm)}
34
+ * onChangeSelectedDirectory={setSelectedDirectory}
35
+ * onChangeSelectedFiles={setSelectedFiles}
36
+ * />
37
+ * );
38
+ * ```
39
+ *
40
+ * @param props - The component props
41
+ * @param props.files - Array of files and directories to display
42
+ * @param props.selectedFiles - Array of currently selected file keys
43
+ * @param props.selectedDirectory - Current directory path (empty string for root)
44
+ * @param props.onCanConfirmChange - Callback fired when selection state changes
45
+ * @param props.onChangeSelectedDirectory - Callback fired when directory navigation occurs
46
+ * @param props.onChangeSelectedFiles - Callback fired when file selection changes
47
+ */
48
+ declare const S3FileBrowser: FC<{
4
49
  files?: S3FileOrDirectory[];
5
50
  selectedFiles: string[];
6
51
  selectedDirectory: string;
7
52
  onCanConfirmChange: (canConfirm: boolean) => void;
8
53
  onChangeSelectedDirectory: (directory: string) => void;
9
54
  onChangeSelectedFiles: (files: string[]) => void;
10
- };
11
- declare const S3FileBrowser: FC<Props>;
55
+ }>;
12
56
  export default S3FileBrowser;
13
57
  //# sourceMappingURL=S3FileBrowser.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"S3FileBrowser.d.ts","sourceRoot":"","sources":["../src/S3FileBrowser.tsx"],"names":[],"mappings":"AAkBA,OAAO,EAAC,EAAE,EAAkC,MAAM,OAAO,CAAC;AAC1D,OAAO,EAAC,iBAAiB,EAAC,MAAM,qBAAqB,CAAC;AAEtD,KAAK,KAAK,GAAG;IACX,KAAK,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAC5B,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,kBAAkB,EAAE,CAAC,UAAU,EAAE,OAAO,KAAK,IAAI,CAAC;IAClD,yBAAyB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IACvD,qBAAqB,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;CAClD,CAAC;AAEF,QAAA,MAAM,aAAa,EAAE,EAAE,CAAC,KAAK,CA2L5B,CAAC;AAEF,eAAe,aAAa,CAAC"}
1
+ {"version":3,"file":"S3FileBrowser.d.ts","sourceRoot":"","sources":["../src/S3FileBrowser.tsx"],"names":[],"mappings":"AAkBA,OAAO,EAAC,EAAE,EAAkC,MAAM,OAAO,CAAC;AAC1D,OAAO,EAAC,iBAAiB,EAAC,MAAM,qBAAqB,CAAC;AAEtD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AACH,QAAA,MAAM,aAAa,EAAE,EAAE,CAAC;IACtB,KAAK,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAC5B,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,kBAAkB,EAAE,CAAC,UAAU,EAAE,OAAO,KAAK,IAAI,CAAC;IAClD,yBAAyB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IACvD,qBAAqB,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;CAClD,CA2LA,CAAC;AAEF,eAAe,aAAa,CAAC"}
@@ -3,6 +3,51 @@ import { Breadcrumb, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbS
3
3
  import { Undo2Icon, FolderIcon } from 'lucide-react';
4
4
  import { formatBytes, formatTimeRelative } from '@sqlrooms/utils';
5
5
  import { useCallback, useEffect, useMemo } from 'react';
6
+ /**
7
+ * A file browser component for navigating and selecting files from an S3-like storage.
8
+ *
9
+ * This component provides a familiar file explorer interface with features like:
10
+ * - Directory navigation with breadcrumbs
11
+ * - File and directory listing
12
+ * - Multiple file selection
13
+ * - File metadata display (size, type, last modified)
14
+ *
15
+ * ![S3 File Browser Interface](https://github.com/user-attachments/assets/dd79fbb9-c487-4050-96ef-81cff39930d3)
16
+ *
17
+ * @example
18
+ * ```tsx
19
+ * const [selectedFiles, setSelectedFiles] = useState<string[]>([]);
20
+ * const [selectedDirectory, setSelectedDirectory] = useState('');
21
+ *
22
+ * return (
23
+ * <S3FileBrowser
24
+ * files={[
25
+ * { key: 'documents', isDirectory: true },
26
+ * {
27
+ * key: 'example.txt',
28
+ * isDirectory: false,
29
+ * size: 1024,
30
+ * contentType: 'text/plain',
31
+ * lastModified: new Date()
32
+ * }
33
+ * ]}
34
+ * selectedFiles={selectedFiles}
35
+ * selectedDirectory={selectedDirectory}
36
+ * onCanConfirmChange={(canConfirm) => console.log('Can confirm:', canConfirm)}
37
+ * onChangeSelectedDirectory={setSelectedDirectory}
38
+ * onChangeSelectedFiles={setSelectedFiles}
39
+ * />
40
+ * );
41
+ * ```
42
+ *
43
+ * @param props - The component props
44
+ * @param props.files - Array of files and directories to display
45
+ * @param props.selectedFiles - Array of currently selected file keys
46
+ * @param props.selectedDirectory - Current directory path (empty string for root)
47
+ * @param props.onCanConfirmChange - Callback fired when selection state changes
48
+ * @param props.onChangeSelectedDirectory - Callback fired when directory navigation occurs
49
+ * @param props.onChangeSelectedFiles - Callback fired when file selection changes
50
+ */
6
51
  const S3FileBrowser = (props) => {
7
52
  const { files, selectedDirectory, selectedFiles, onCanConfirmChange, onChangeSelectedFiles, onChangeSelectedDirectory, } = props;
8
53
  useEffect(() => {
package/package.json CHANGED
@@ -1,18 +1,27 @@
1
1
  {
2
2
  "name": "@sqlrooms/s3-browser",
3
- "version": "0.0.1",
3
+ "version": "0.0.3",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "module": "dist/index.js",
7
7
  "type": "module",
8
8
  "private": false,
9
+ "author": "Ilya Boyandin <ilya@boyandin.me>",
10
+ "license": "MIT",
11
+ "repository": {
12
+ "type": "git",
13
+ "url": "https://github.com/sqlrooms/sqlrooms.git"
14
+ },
15
+ "files": [
16
+ "dist"
17
+ ],
9
18
  "publishConfig": {
10
19
  "access": "public"
11
20
  },
12
21
  "dependencies": {
13
22
  "@aws-sdk/client-s3": "^3.726.1",
14
- "@sqlrooms/ui": "0.0.1",
15
- "@sqlrooms/utils": "0.0.1",
23
+ "@sqlrooms/ui": "0.0.3",
24
+ "@sqlrooms/utils": "0.0.3",
16
25
  "lucide-react": "^0.473.0",
17
26
  "zod": "^3.24.1"
18
27
  },
@@ -22,7 +31,8 @@
22
31
  "scripts": {
23
32
  "dev": "tsc -w",
24
33
  "build": "tsc",
25
- "lint": "eslint ."
34
+ "lint": "eslint .",
35
+ "typedoc": "typedoc"
26
36
  },
27
- "gitHead": "5d8893a604a91d109dc5b5f80b4a3e937b4cf520"
37
+ "gitHead": "4269a3efdb5a903cb2498c126e9c36683b3bbae0"
28
38
  }
package/CHANGELOG.md DELETED
@@ -1,14 +0,0 @@
1
- # Change Log
2
-
3
- All notable changes to this project will be documented in this file.
4
- See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
-
6
- ## [0.0.1](https://github.com/ilyabo/sqlrooms/compare/v0.0.1-alpha.0...v0.0.1) (2025-01-30)
7
-
8
- **Note:** Version bump only for package @sqlrooms/s3-browser
9
-
10
- ## 0.0.1-alpha.0 (2025-01-30)
11
-
12
- **Note:** Version bump only for package @sqlrooms/s3-browser
13
-
14
- **Note:** Version bump only for package @sqlrooms/s3-browser