@muhgholy/next-drive 1.2.0 → 1.4.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.
- package/README.md +114 -54
- package/dist/client/components/dialog.d.ts +21 -0
- package/dist/client/components/dialog.d.ts.map +1 -0
- package/dist/client/components/drive/explorer.d.ts +10 -0
- package/dist/client/components/drive/explorer.d.ts.map +1 -0
- package/dist/client/components/drive/header.d.ts +3 -0
- package/dist/client/components/drive/header.d.ts.map +1 -0
- package/dist/client/components/drive/path-bar.d.ts +3 -0
- package/dist/client/components/drive/path-bar.d.ts.map +1 -0
- package/dist/client/components/drive/sidebar.d.ts +3 -0
- package/dist/client/components/drive/sidebar.d.ts.map +1 -0
- package/dist/client/components/drive/storage/indicator.d.ts +6 -0
- package/dist/client/components/drive/storage/indicator.d.ts.map +1 -0
- package/dist/client/components/drive/upload.d.ts +6 -0
- package/dist/client/components/drive/upload.d.ts.map +1 -0
- package/dist/client/components/ui/alert-dialog.d.ts +21 -0
- package/dist/client/components/ui/alert-dialog.d.ts.map +1 -0
- package/dist/client/components/ui/alert.d.ts +10 -0
- package/dist/client/components/ui/alert.d.ts.map +1 -0
- package/dist/client/components/ui/button.d.ts +11 -0
- package/dist/client/components/ui/button.d.ts.map +1 -0
- package/dist/client/components/ui/context-menu.d.ts +28 -0
- package/dist/client/components/ui/context-menu.d.ts.map +1 -0
- package/dist/client/components/ui/dialog.d.ts +16 -0
- package/dist/client/components/ui/dialog.d.ts.map +1 -0
- package/dist/client/components/ui/dropdown-menu.d.ts +28 -0
- package/dist/client/components/ui/dropdown-menu.d.ts.map +1 -0
- package/dist/client/components/ui/input.d.ts +4 -0
- package/dist/client/components/ui/input.d.ts.map +1 -0
- package/dist/client/components/ui/label.d.ts +5 -0
- package/dist/client/components/ui/label.d.ts.map +1 -0
- package/dist/client/components/ui/progress.d.ts +7 -0
- package/dist/client/components/ui/progress.d.ts.map +1 -0
- package/dist/client/components/ui/separator.d.ts +5 -0
- package/dist/client/components/ui/separator.d.ts.map +1 -0
- package/dist/client/components/ui/sheet.d.ts +26 -0
- package/dist/client/components/ui/sheet.d.ts.map +1 -0
- package/dist/client/components/ui/tooltip.d.ts +8 -0
- package/dist/client/components/ui/tooltip.d.ts.map +1 -0
- package/dist/client/context.d.ts +87 -0
- package/dist/client/context.d.ts.map +1 -0
- package/dist/client/file-chooser.d.ts +14 -0
- package/dist/client/file-chooser.d.ts.map +1 -0
- package/dist/client/hooks/useUpload.d.ts +8 -0
- package/dist/client/hooks/useUpload.d.ts.map +1 -0
- package/dist/client/index.d.ts +13 -133
- package/dist/client/index.d.ts.map +1 -0
- package/dist/client/index.js +401 -602
- package/dist/client/index.js.map +1 -1
- package/dist/client/utils.d.ts +16 -0
- package/dist/client/utils.d.ts.map +1 -0
- package/dist/schemas.d.ts +33 -0
- package/dist/schemas.d.ts.map +1 -0
- package/dist/schemas.js +15 -0
- package/dist/schemas.js.map +1 -0
- package/dist/server/config.d.ts +6 -0
- package/dist/server/config.d.ts.map +1 -0
- package/dist/server/controllers/drive.d.ts +55 -0
- package/dist/server/controllers/drive.d.ts.map +1 -0
- package/dist/server/database/mongoose/schema/drive.d.ts +19 -0
- package/dist/server/database/mongoose/schema/drive.d.ts.map +1 -0
- package/dist/server/database/mongoose/schema/storage/account.d.ts +12 -0
- package/dist/server/database/mongoose/schema/storage/account.d.ts.map +1 -0
- package/dist/server/express.d.ts +10 -0
- package/dist/server/express.d.ts.map +1 -0
- package/dist/server/express.js +1384 -0
- package/dist/server/express.js.map +1 -0
- package/dist/server/index.d.ts +10 -156
- package/dist/server/index.d.ts.map +1 -0
- package/dist/server/index.js +68 -110
- package/dist/server/index.js.map +1 -1
- package/dist/server/providers/google.d.ts +3 -0
- package/dist/server/providers/google.d.ts.map +1 -0
- package/dist/server/providers/local.d.ts +3 -0
- package/dist/server/providers/local.d.ts.map +1 -0
- package/dist/server/security/cryptoUtils.d.ts +13 -0
- package/dist/server/security/cryptoUtils.d.ts.map +1 -0
- package/dist/server/security/mimeFilter.d.ts +6 -0
- package/dist/server/security/mimeFilter.d.ts.map +1 -0
- package/dist/server/utils/ffmpeg.d.ts +14 -0
- package/dist/server/utils/ffmpeg.d.ts.map +1 -0
- package/dist/server/utils/folderValidation.d.ts +9 -0
- package/dist/server/utils/folderValidation.d.ts.map +1 -0
- package/dist/server/utils/imageConvert.d.ts +15 -0
- package/dist/server/utils/imageConvert.d.ts.map +1 -0
- package/dist/server/utils/metadata.d.ts +23 -0
- package/dist/server/utils/metadata.d.ts.map +1 -0
- package/dist/server/utils.d.ts +14 -0
- package/dist/server/utils.d.ts.map +1 -0
- package/dist/server/zod/schemas.d.ts +207 -0
- package/dist/server/zod/schemas.d.ts.map +1 -0
- package/dist/types/client/index.d.ts +32 -0
- package/dist/types/client/index.d.ts.map +1 -0
- package/dist/types/lib/database/drive.d.ts +41 -0
- package/dist/types/lib/database/drive.d.ts.map +1 -0
- package/dist/types/lib/database/index.d.ts +3 -0
- package/dist/types/lib/database/index.d.ts.map +1 -0
- package/dist/types/lib/database/storage/account.d.ts +15 -0
- package/dist/types/lib/database/storage/account.d.ts.map +1 -0
- package/dist/types/server/api.d.ts +16 -0
- package/dist/types/server/api.d.ts.map +1 -0
- package/dist/types/server/config.d.ts +41 -0
- package/dist/types/server/config.d.ts.map +1 -0
- package/dist/types/server/drive.d.ts +2 -0
- package/dist/types/server/drive.d.ts.map +1 -0
- package/dist/types/server/express.d.ts +37 -0
- package/dist/types/server/express.d.ts.map +1 -0
- package/dist/types/server/index.d.ts +4 -0
- package/dist/types/server/index.d.ts.map +1 -0
- package/dist/types/server/storage.d.ts +29 -0
- package/dist/types/server/storage.d.ts.map +1 -0
- package/package.json +102 -92
- package/dist/index-C4pw1JjP.d.ts +0 -121
package/README.md
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
# @muhgholy/next-drive
|
|
2
2
|
|
|
3
|
-
Robust file storage and management solution for Next.js applications, featuring a responsive UI, advanced search, trash management, and secure file handling.
|
|
3
|
+
Robust file storage and management solution for Next.js and Express applications, featuring a responsive UI, advanced search, trash management, and secure file handling.
|
|
4
4
|
|
|
5
5
|
## Features
|
|
6
6
|
|
|
7
|
-
-
|
|
8
|
-
-
|
|
9
|
-
-
|
|
10
|
-
-
|
|
11
|
-
-
|
|
12
|
-
-
|
|
13
|
-
-
|
|
7
|
+
- **File Management**: Upload, rename, move, and organize files and folders.
|
|
8
|
+
- **Advanced Search**: Search both active files and the trash bin with real-time filtering.
|
|
9
|
+
- **Trash System**: specialized trash view with soft delete, restore, and empty trash capabilities.
|
|
10
|
+
- **Responsive UI**: optimized layouts for both desktop (single toolbar) and mobile (search-focused header).
|
|
11
|
+
- **Video Support**: Auto-generates thumbnails for video files (requires FFmpeg).
|
|
12
|
+
- **Security**: Signed URLs for secure file access and configurable upload limits.
|
|
13
|
+
- **View Modes**: Toggle between Grid and List views with custom sorting and grouping.
|
|
14
14
|
|
|
15
15
|
## Installation
|
|
16
16
|
|
|
@@ -20,17 +20,17 @@ npm install @muhgholy/next-drive
|
|
|
20
20
|
|
|
21
21
|
**Peer Dependencies:**
|
|
22
22
|
|
|
23
|
-
-
|
|
24
|
-
-
|
|
25
|
-
-
|
|
26
|
-
-
|
|
23
|
+
- Next.js >= 14
|
|
24
|
+
- React >= 18
|
|
25
|
+
- Mongoose >= 7
|
|
26
|
+
- Tailwind CSS >= 3
|
|
27
27
|
|
|
28
28
|
**System Requirements:**
|
|
29
29
|
|
|
30
|
-
-
|
|
31
|
-
-
|
|
32
|
-
-
|
|
33
|
-
-
|
|
30
|
+
- **FFmpeg**: Required for generating thumbnails from video files.
|
|
31
|
+
- MacOS: `brew install ffmpeg`
|
|
32
|
+
- Ubuntu: `sudo apt install ffmpeg`
|
|
33
|
+
- Windows: Download from official site and add to PATH.
|
|
34
34
|
|
|
35
35
|
### Tailwind CSS Configuration
|
|
36
36
|
|
|
@@ -40,11 +40,11 @@ Since this package uses Tailwind CSS for styling, you **must** configure Tailwin
|
|
|
40
40
|
// tailwind.config.js
|
|
41
41
|
export default {
|
|
42
42
|
content: [
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
43
|
+
'./app/**/*.{js,ts,jsx,tsx,mdx}',
|
|
44
|
+
'./pages/**/*.{js,ts,jsx,tsx,mdx}',
|
|
45
|
+
'./components/**/*.{js,ts,jsx,tsx,mdx}',
|
|
46
46
|
// Add the next-drive package
|
|
47
|
-
|
|
47
|
+
'./node_modules/@muhgholy/next-drive/dist/**/*.{js,mjs}',
|
|
48
48
|
],
|
|
49
49
|
theme: {
|
|
50
50
|
extend: {},
|
|
@@ -63,15 +63,15 @@ Create a configuration file (e.g., `lib/drive.ts`) to set up storage paths, data
|
|
|
63
63
|
|
|
64
64
|
```typescript
|
|
65
65
|
// lib/drive.ts
|
|
66
|
-
import { driveConfiguration } from
|
|
67
|
-
import type { TDriveConfigInformation } from
|
|
66
|
+
import { driveConfiguration } from '@muhgholy/next-drive/server';
|
|
67
|
+
import type { TDriveConfigInformation } from '@muhgholy/next-drive/server';
|
|
68
68
|
|
|
69
69
|
export const drive = driveConfiguration({
|
|
70
|
-
database:
|
|
71
|
-
storage: { path:
|
|
70
|
+
database: 'MONGOOSE',
|
|
71
|
+
storage: { path: '/var/data/drive' },
|
|
72
72
|
security: {
|
|
73
73
|
maxUploadSize: 50 * 1024 * 1024, // 50MB
|
|
74
|
-
allowedMimeTypes: [
|
|
74
|
+
allowedMimeTypes: ['image/*', 'video/*', 'application/pdf'],
|
|
75
75
|
signedUrls: {
|
|
76
76
|
enabled: true,
|
|
77
77
|
secret: process.env.DRIVE_SECRET!,
|
|
@@ -79,13 +79,13 @@ export const drive = driveConfiguration({
|
|
|
79
79
|
},
|
|
80
80
|
},
|
|
81
81
|
image: {
|
|
82
|
-
formats: [
|
|
83
|
-
qualities: [
|
|
82
|
+
formats: ['webp', 'jpeg', 'png'],
|
|
83
|
+
qualities: ['ultralow', 'low', 'medium', 'high', 'normal'],
|
|
84
84
|
},
|
|
85
85
|
information: async (req): Promise<TDriveConfigInformation> => {
|
|
86
86
|
// Implement your auth verification here
|
|
87
87
|
const auth = await verifyAuth(req);
|
|
88
|
-
if (!auth) throw new Error(
|
|
88
|
+
if (!auth) throw new Error('Unauthenticated');
|
|
89
89
|
return {
|
|
90
90
|
key: { userId: auth.userId },
|
|
91
91
|
storage: { quotaInBytes: 1024 * 1024 * 1024 }, // 1GB limit
|
|
@@ -100,33 +100,33 @@ Set up the API route handler that `next-drive` will use to communicate with the
|
|
|
100
100
|
|
|
101
101
|
**Important:**
|
|
102
102
|
|
|
103
|
-
-
|
|
104
|
-
-
|
|
103
|
+
- The API route must be in the `pages` folder (Pages Router)
|
|
104
|
+
- **You MUST disable Next.js body parser** for uploads to work properly
|
|
105
105
|
|
|
106
106
|
```typescript
|
|
107
107
|
// pages/api/drive.ts
|
|
108
|
-
import
|
|
109
|
-
import { driveAPIHandler } from
|
|
110
|
-
import type { NextApiRequest, NextApiResponse } from
|
|
108
|
+
import '@/lib/drive';
|
|
109
|
+
import { driveAPIHandler } from '@muhgholy/next-drive/server';
|
|
110
|
+
import type { NextApiRequest, NextApiResponse } from 'next';
|
|
111
111
|
|
|
112
112
|
export default async function handler(req: NextApiRequest, res: NextApiResponse) {
|
|
113
113
|
// Manually parse JSON body for non-upload requests
|
|
114
114
|
if (!req.body) req.body = {};
|
|
115
115
|
|
|
116
|
-
if (req.headers[
|
|
116
|
+
if (req.headers['content-type']?.includes('application/json')) {
|
|
117
117
|
try {
|
|
118
118
|
const buffer = await new Promise<Buffer>((resolve, reject) => {
|
|
119
119
|
const chunks: Buffer[] = [];
|
|
120
|
-
req.on(
|
|
121
|
-
req.on(
|
|
122
|
-
req.on(
|
|
120
|
+
req.on('data', chunk => chunks.push(chunk));
|
|
121
|
+
req.on('end', () => resolve(Buffer.concat(chunks)));
|
|
122
|
+
req.on('error', reject);
|
|
123
123
|
});
|
|
124
124
|
|
|
125
125
|
if (buffer.length > 0) {
|
|
126
126
|
req.body = JSON.parse(buffer.toString());
|
|
127
127
|
}
|
|
128
128
|
} catch (e) {
|
|
129
|
-
console.error(
|
|
129
|
+
console.error('Failed to parse JSON body', e);
|
|
130
130
|
}
|
|
131
131
|
}
|
|
132
132
|
|
|
@@ -141,6 +141,59 @@ export const config = {
|
|
|
141
141
|
};
|
|
142
142
|
```
|
|
143
143
|
|
|
144
|
+
### 2b. Express Integration (Alternative)
|
|
145
|
+
|
|
146
|
+
If you're using Express instead of Next.js API Routes, use the Express adapter:
|
|
147
|
+
|
|
148
|
+
```typescript
|
|
149
|
+
// lib/drive.ts
|
|
150
|
+
import { driveConfigurationExpress } from '@muhgholy/next-drive/server/express';
|
|
151
|
+
import type { TDriveConfigInformation } from '@muhgholy/next-drive/server/express';
|
|
152
|
+
|
|
153
|
+
export const drive = driveConfigurationExpress({
|
|
154
|
+
database: 'MONGOOSE',
|
|
155
|
+
storage: { path: '/var/data/drive' },
|
|
156
|
+
security: {
|
|
157
|
+
maxUploadSizeInBytes: 50 * 1024 * 1024, // 50MB
|
|
158
|
+
allowedMimeTypes: ['image/*', 'video/*', 'application/pdf'],
|
|
159
|
+
signedUrls: {
|
|
160
|
+
enabled: true,
|
|
161
|
+
secret: process.env.DRIVE_SECRET!,
|
|
162
|
+
expiresIn: 3600,
|
|
163
|
+
},
|
|
164
|
+
},
|
|
165
|
+
apiUrl: '/api/drive',
|
|
166
|
+
information: async (req): Promise<TDriveConfigInformation> => {
|
|
167
|
+
// req is Express Request type
|
|
168
|
+
const auth = await verifyAuth(req);
|
|
169
|
+
if (!auth) throw new Error('Unauthenticated');
|
|
170
|
+
return {
|
|
171
|
+
key: { userId: auth.userId },
|
|
172
|
+
storage: { quotaInBytes: 1024 * 1024 * 1024 },
|
|
173
|
+
};
|
|
174
|
+
},
|
|
175
|
+
});
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
```typescript
|
|
179
|
+
// routes/drive.ts
|
|
180
|
+
import './lib/drive'; // Initialize configuration
|
|
181
|
+
import express from 'express';
|
|
182
|
+
import { driveAPIHandlerExpress } from '@muhgholy/next-drive/server/express';
|
|
183
|
+
|
|
184
|
+
const router = express.Router();
|
|
185
|
+
|
|
186
|
+
// Handle all drive API requests
|
|
187
|
+
router.all('/drive', driveAPIHandlerExpress);
|
|
188
|
+
|
|
189
|
+
export default router;
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
**Important for Express:**
|
|
193
|
+
|
|
194
|
+
- Do NOT use `express.json()` middleware on the drive route (file uploads need raw body)
|
|
195
|
+
- The handler supports all HTTP methods (GET, POST, PATCH, DELETE)
|
|
196
|
+
|
|
144
197
|
### 3. Add Provider
|
|
145
198
|
|
|
146
199
|
Wrap your application or the specific route with `DriveProvider`.
|
|
@@ -186,10 +239,10 @@ function MyForm() {
|
|
|
186
239
|
You can use the exported `driveFileSchemaZod` to validate file data in your forms or API routes.
|
|
187
240
|
|
|
188
241
|
```typescript
|
|
189
|
-
import { z } from
|
|
190
|
-
import { driveFileSchemaZod } from
|
|
242
|
+
import { z } from 'zod';
|
|
243
|
+
import { driveFileSchemaZod } from '@muhgholy/next-drive/schemas';
|
|
191
244
|
|
|
192
|
-
// Use in your form schema
|
|
245
|
+
// Use in your form schema (works in both client and server)
|
|
193
246
|
const myFormSchema = z.object({
|
|
194
247
|
asset: driveFileSchemaZod,
|
|
195
248
|
title: z.string(),
|
|
@@ -199,6 +252,13 @@ const myFormSchema = z.object({
|
|
|
199
252
|
type MyFormData = z.infer<typeof myFormSchema>;
|
|
200
253
|
```
|
|
201
254
|
|
|
255
|
+
> **Note**: The schema is also available from `/client` and `/server` exports for convenience, but `/schemas` is the recommended universal import.
|
|
256
|
+
|
|
257
|
+
// Use in your form schema
|
|
258
|
+
const myFormSchema = z.object({
|
|
259
|
+
|
|
260
|
+
````
|
|
261
|
+
|
|
202
262
|
## Key Capabilities
|
|
203
263
|
|
|
204
264
|
### Client-Side File URLs
|
|
@@ -226,7 +286,7 @@ function MyComponent() {
|
|
|
226
286
|
// Use in Next.js Image component
|
|
227
287
|
return <Image src={createUrl(driveFile)} alt={driveFile.file.name} />;
|
|
228
288
|
}
|
|
229
|
-
|
|
289
|
+
````
|
|
230
290
|
|
|
231
291
|
**Responsive Image SrcSet:**
|
|
232
292
|
|
|
@@ -249,7 +309,7 @@ function ResponsiveImage({ driveFile }: { driveFile: TDriveFile }) {
|
|
|
249
309
|
**Get File URL:**
|
|
250
310
|
|
|
251
311
|
```typescript
|
|
252
|
-
import { driveGetUrl } from
|
|
312
|
+
import { driveGetUrl } from '@muhgholy/next-drive/server';
|
|
253
313
|
|
|
254
314
|
// Generate a secure URL
|
|
255
315
|
const url = driveGetUrl(fileId);
|
|
@@ -259,13 +319,13 @@ const url = driveGetUrl(fileId);
|
|
|
259
319
|
const url = driveGetUrl(fileId, { expiry: 7200 }); // 2 hours
|
|
260
320
|
|
|
261
321
|
// With specific expiry date
|
|
262
|
-
const url = driveGetUrl(fileId, { expiry: new Date(
|
|
322
|
+
const url = driveGetUrl(fileId, { expiry: new Date('2025-12-31') });
|
|
263
323
|
```
|
|
264
324
|
|
|
265
325
|
**Read File Stream:**
|
|
266
326
|
|
|
267
327
|
```typescript
|
|
268
|
-
import { driveReadFile } from
|
|
328
|
+
import { driveReadFile } from '@muhgholy/next-drive/server';
|
|
269
329
|
|
|
270
330
|
// Using file ID
|
|
271
331
|
const { stream, mime, size } = await driveReadFile(fileId);
|
|
@@ -278,7 +338,7 @@ const { stream, mime, size } = await driveReadFile(drive);
|
|
|
278
338
|
// Example: Send file via email
|
|
279
339
|
const { stream } = await driveReadFile(fileId);
|
|
280
340
|
await sendEmail({
|
|
281
|
-
attachments: [{ filename:
|
|
341
|
+
attachments: [{ filename: 'report.pdf', content: stream }],
|
|
282
342
|
});
|
|
283
343
|
|
|
284
344
|
// Example: Process file contents
|
|
@@ -295,8 +355,8 @@ const buffer = Buffer.concat(chunks);
|
|
|
295
355
|
For scenarios requiring direct file system access, `driveFilePath()` provides the absolute path. Google Drive files are automatically downloaded to a local cache.
|
|
296
356
|
|
|
297
357
|
```typescript
|
|
298
|
-
import { driveFilePath } from
|
|
299
|
-
import fs from
|
|
358
|
+
import { driveFilePath } from '@muhgholy/next-drive/server';
|
|
359
|
+
import fs from 'fs';
|
|
300
360
|
|
|
301
361
|
// Get local path (downloads Google Drive files automatically)
|
|
302
362
|
const { path, mime, size, provider } = await driveFilePath(fileId);
|
|
@@ -305,8 +365,8 @@ const { path, mime, size, provider } = await driveFilePath(fileId);
|
|
|
305
365
|
const buffer = fs.readFileSync(path);
|
|
306
366
|
|
|
307
367
|
// Use with libraries requiring file paths
|
|
308
|
-
await sharp(path).resize(800, 600).toFile(
|
|
309
|
-
await ffmpeg(path).format(
|
|
368
|
+
await sharp(path).resize(800, 600).toFile('output.jpg');
|
|
369
|
+
await ffmpeg(path).format('mp4').save('output.mp4');
|
|
310
370
|
|
|
311
371
|
// Google Drive files are cached at: storage/library/google/{fileId}.ext
|
|
312
372
|
// Local files use their original location
|
|
@@ -314,13 +374,13 @@ await ffmpeg(path).format("mp4").save("output.mp4");
|
|
|
314
374
|
|
|
315
375
|
### Search & Trash
|
|
316
376
|
|
|
317
|
-
-
|
|
318
|
-
-
|
|
377
|
+
- **Search Scope**: Search automatically adapts to your current view. If you are browsing the Trash, searches will query deleted items. In the main Browser, searches query active files.
|
|
378
|
+
- **Trash Management**: "Delete" moves items to Trash. From Trash, you can "Restore" items or "Delete Forever". A dedicated "Empty Trash" button is available to clear all deleted items.
|
|
319
379
|
|
|
320
380
|
### Responsive Design
|
|
321
381
|
|
|
322
|
-
-
|
|
323
|
-
-
|
|
382
|
+
- **Desktop**: Features a unified single-row header containing Search, Group, Delete, Sort, View, and Trash controls.
|
|
383
|
+
- **Mobile**: Optimizes for small screens by separating the Search bar into a full-width top row and grouping action buttons in a scrollable toolbar below.
|
|
324
384
|
|
|
325
385
|
## API Endpoints
|
|
326
386
|
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
type TInputDefinition = {
|
|
2
|
+
type: 'INPUT';
|
|
3
|
+
id: string;
|
|
4
|
+
name: string;
|
|
5
|
+
default?: string;
|
|
6
|
+
required?: boolean;
|
|
7
|
+
};
|
|
8
|
+
type TInputValues<T extends readonly TInputDefinition[]> = {
|
|
9
|
+
[K in T[number]['id']]: string;
|
|
10
|
+
};
|
|
11
|
+
export declare const DialogConfirmation: <T extends readonly TInputDefinition[] | undefined = undefined>(props: Readonly<{
|
|
12
|
+
title: string;
|
|
13
|
+
description: string;
|
|
14
|
+
open: boolean;
|
|
15
|
+
onClose: () => void;
|
|
16
|
+
inputs?: T;
|
|
17
|
+
onConfirm: T extends readonly TInputDefinition[] ? (inputs: Readonly<TInputValues<T>>) => Promise<[true] | [false, string]> : () => Promise<[true] | [false, string]>;
|
|
18
|
+
disableEscapeKeyDown?: boolean;
|
|
19
|
+
}>) => import("react").JSX.Element;
|
|
20
|
+
export {};
|
|
21
|
+
//# sourceMappingURL=dialog.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dialog.d.ts","sourceRoot":"","sources":["../../../src/client/components/dialog.tsx"],"names":[],"mappings":"AAgBA,KAAK,gBAAgB,GAAG;IACpB,IAAI,EAAE,OAAO,CAAC;IACd,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAA;CACrB,CAAC;AAGF,KAAK,YAAY,CAAC,CAAC,SAAS,SAAS,gBAAgB,EAAE,IAAI;KAAG,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,MAAM;CAAE,CAAC;AAE9F,eAAO,MAAM,kBAAkB,GAAI,CAAC,SAAS,SAAS,gBAAgB,EAAE,GAAG,SAAS,GAAG,SAAS,EAC5F,OAAO,QAAQ,CAAC;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,EAAE,MAAM,CAAA;IACnB,IAAI,EAAE,OAAO,CAAA;IACb,OAAO,EAAE,MAAM,IAAI,CAAA;IACnB,MAAM,CAAC,EAAE,CAAC,CAAA;IACV,SAAS,EAAE,CAAC,SAAS,SAAS,gBAAgB,EAAE,GAC9C,CAAC,MAAM,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,GACxE,MAAM,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAA;IACzC,oBAAoB,CAAC,EAAE,OAAO,CAAA;CACjC,CAAC,gCAiIL,CAAA"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { TDatabaseDrive } from '../../../types/server';
|
|
3
|
+
export declare const DriveExplorer: (props: Readonly<{
|
|
4
|
+
onItemClick?: (item: TDatabaseDrive) => void;
|
|
5
|
+
onItemDoubleClick?: (item: TDatabaseDrive) => void;
|
|
6
|
+
mimeFilter?: string;
|
|
7
|
+
className?: string;
|
|
8
|
+
selectableFolders?: boolean;
|
|
9
|
+
}>) => React.JSX.Element;
|
|
10
|
+
//# sourceMappingURL=explorer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"explorer.d.ts","sourceRoot":"","sources":["../../../../src/client/components/drive/explorer.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAqC,MAAM,OAAO,CAAC;AAC1D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AA0DrD,eAAO,MAAM,aAAa,GAAI,OAAO,QAAQ,CAAC;IAC1C,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,IAAI,CAAC;IAC7C,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,IAAI,CAAC;IACnD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC/B,CAAC,sBAwlBD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"header.d.ts","sourceRoot":"","sources":["../../../../src/client/components/drive/header.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAexC,eAAO,MAAM,WAAW,yBAgSvB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"path-bar.d.ts","sourceRoot":"","sources":["../../../../src/client/components/drive/path-bar.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,MAAM,OAAO,CAAC;AA4D1B,eAAO,MAAM,YAAY,yBAqBxB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sidebar.d.ts","sourceRoot":"","sources":["../../../../src/client/components/drive/sidebar.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AA6K1B,eAAO,MAAM,YAAY,yBA4BxB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"indicator.d.ts","sourceRoot":"","sources":["../../../../../src/client/components/drive/storage/indicator.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAoB,MAAM,OAAO,CAAC;AAMzC,eAAO,MAAM,qBAAqB,GAAI,OAAO,QAAQ,CAAC;IAAE,OAAO,CAAC,EAAE,OAAO,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,6BAqE/F,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"upload.d.ts","sourceRoot":"","sources":["../../../../src/client/components/drive/upload.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAwC,MAAM,OAAO,CAAC;AAyB7D,eAAO,MAAM,WAAW,GAAI,OAAO,QAAQ,CAAC;IAAE,OAAO,CAAC,EAAE,OAAO,CAAC;IAAC,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAA;CAAE,CAAC,sBAoLvG,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import * as AlertDialogPrimitive from "@radix-ui/react-alert-dialog";
|
|
3
|
+
declare const AlertDialog: React.FC<AlertDialogPrimitive.AlertDialogProps>;
|
|
4
|
+
declare const AlertDialogTrigger: React.ForwardRefExoticComponent<AlertDialogPrimitive.AlertDialogTriggerProps & React.RefAttributes<HTMLButtonElement>>;
|
|
5
|
+
declare const AlertDialogPortal: React.FC<AlertDialogPrimitive.AlertDialogPortalProps>;
|
|
6
|
+
declare const AlertDialogOverlay: React.ForwardRefExoticComponent<Omit<AlertDialogPrimitive.AlertDialogOverlayProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
7
|
+
declare const AlertDialogContent: React.ForwardRefExoticComponent<Omit<AlertDialogPrimitive.AlertDialogContentProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
8
|
+
declare const AlertDialogHeader: {
|
|
9
|
+
({ className, ...props }: React.HTMLAttributes<HTMLDivElement>): React.JSX.Element;
|
|
10
|
+
displayName: string;
|
|
11
|
+
};
|
|
12
|
+
declare const AlertDialogFooter: {
|
|
13
|
+
({ className, ...props }: React.HTMLAttributes<HTMLDivElement>): React.JSX.Element;
|
|
14
|
+
displayName: string;
|
|
15
|
+
};
|
|
16
|
+
declare const AlertDialogTitle: React.ForwardRefExoticComponent<Omit<AlertDialogPrimitive.AlertDialogTitleProps & React.RefAttributes<HTMLHeadingElement>, "ref"> & React.RefAttributes<HTMLHeadingElement>>;
|
|
17
|
+
declare const AlertDialogDescription: React.ForwardRefExoticComponent<Omit<AlertDialogPrimitive.AlertDialogDescriptionProps & React.RefAttributes<HTMLParagraphElement>, "ref"> & React.RefAttributes<HTMLParagraphElement>>;
|
|
18
|
+
declare const AlertDialogAction: React.ForwardRefExoticComponent<Omit<AlertDialogPrimitive.AlertDialogActionProps & React.RefAttributes<HTMLButtonElement>, "ref"> & React.RefAttributes<HTMLButtonElement>>;
|
|
19
|
+
declare const AlertDialogCancel: React.ForwardRefExoticComponent<Omit<AlertDialogPrimitive.AlertDialogCancelProps & React.RefAttributes<HTMLButtonElement>, "ref"> & React.RefAttributes<HTMLButtonElement>>;
|
|
20
|
+
export { AlertDialog, AlertDialogPortal, AlertDialogOverlay, AlertDialogTrigger, AlertDialogContent, AlertDialogHeader, AlertDialogFooter, AlertDialogTitle, AlertDialogDescription, AlertDialogAction, AlertDialogCancel, };
|
|
21
|
+
//# sourceMappingURL=alert-dialog.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"alert-dialog.d.ts","sourceRoot":"","sources":["../../../../src/client/components/ui/alert-dialog.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,KAAK,oBAAoB,MAAM,8BAA8B,CAAA;AAKpE,QAAA,MAAM,WAAW,iDAA4B,CAAA;AAE7C,QAAA,MAAM,kBAAkB,wHAA+B,CAAA;AAEvD,QAAA,MAAM,iBAAiB,uDAA8B,CAAA;AAErD,QAAA,MAAM,kBAAkB,wKAYtB,CAAA;AAGF,QAAA,MAAM,kBAAkB,wKAetB,CAAA;AAGF,QAAA,MAAM,iBAAiB;8BAGpB,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;;CAQtC,CAAA;AAGD,QAAA,MAAM,iBAAiB;8BAGpB,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;;CAQtC,CAAA;AAGD,QAAA,MAAM,gBAAgB,8KASpB,CAAA;AAGF,QAAA,MAAM,sBAAsB,wLAS1B,CAAA;AAIF,QAAA,MAAM,iBAAiB,6KASrB,CAAA;AAGF,QAAA,MAAM,iBAAiB,6KAarB,CAAA;AAGF,OAAO,EACH,WAAW,EACX,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EAChB,sBAAsB,EACtB,iBAAiB,EACjB,iBAAiB,GACpB,CAAA"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import { type VariantProps } from "class-variance-authority";
|
|
3
|
+
declare const alertVariants: (props?: ({
|
|
4
|
+
variant?: "default" | "destructive" | null | undefined;
|
|
5
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
6
|
+
declare function Alert({ className, variant, ...props }: React.ComponentProps<"div"> & VariantProps<typeof alertVariants>): React.JSX.Element;
|
|
7
|
+
declare function AlertTitle({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
|
|
8
|
+
declare function AlertDescription({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
|
|
9
|
+
export { Alert, AlertTitle, AlertDescription };
|
|
10
|
+
//# sourceMappingURL=alert.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"alert.d.ts","sourceRoot":"","sources":["../../../../src/client/components/ui/alert.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAIjE,QAAA,MAAM,aAAa;;8EAclB,CAAA;AAED,iBAAS,KAAK,CAAC,EACX,SAAS,EACT,OAAO,EACP,GAAG,KAAK,EACX,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,YAAY,CAAC,OAAO,aAAa,CAAC,qBASlE;AAED,iBAAS,UAAU,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,qBAWvE;AAED,iBAAS,gBAAgB,CAAC,EACtB,SAAS,EACT,GAAG,KAAK,EACX,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,qBAW7B;AAED,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,CAAA"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import { type VariantProps } from "class-variance-authority";
|
|
3
|
+
declare const buttonVariants: (props?: ({
|
|
4
|
+
variant?: "link" | "default" | "destructive" | "outline" | "secondary" | "ghost" | null | undefined;
|
|
5
|
+
size?: "default" | "sm" | "lg" | "icon" | "icon-sm" | "icon-lg" | null | undefined;
|
|
6
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
7
|
+
declare function Button({ className, variant, size, asChild, ...props }: React.ComponentProps<"button"> & VariantProps<typeof buttonVariants> & {
|
|
8
|
+
asChild?: boolean;
|
|
9
|
+
}): React.JSX.Element;
|
|
10
|
+
export { Button, buttonVariants };
|
|
11
|
+
//# sourceMappingURL=button.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"button.d.ts","sourceRoot":"","sources":["../../../../src/client/components/ui/button.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAIjE,QAAA,MAAM,cAAc;;;8EA8BnB,CAAA;AAED,iBAAS,MAAM,CAAC,EACZ,SAAS,EACT,OAAO,EACP,IAAI,EACJ,OAAe,EACf,GAAG,KAAK,EACX,EAAE,KAAK,CAAC,cAAc,CAAC,QAAQ,CAAC,GAC7B,YAAY,CAAC,OAAO,cAAc,CAAC,GAAG;IAClC,OAAO,CAAC,EAAE,OAAO,CAAA;CACpB,qBAUJ;AAED,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,CAAA"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import * as ContextMenuPrimitive from "@radix-ui/react-context-menu";
|
|
3
|
+
declare const ContextMenu: React.FC<ContextMenuPrimitive.ContextMenuProps>;
|
|
4
|
+
declare const ContextMenuTrigger: React.ForwardRefExoticComponent<ContextMenuPrimitive.ContextMenuTriggerProps & React.RefAttributes<HTMLSpanElement>>;
|
|
5
|
+
declare const ContextMenuGroup: React.ForwardRefExoticComponent<ContextMenuPrimitive.ContextMenuGroupProps & React.RefAttributes<HTMLDivElement>>;
|
|
6
|
+
declare const ContextMenuPortal: React.FC<ContextMenuPrimitive.ContextMenuPortalProps>;
|
|
7
|
+
declare const ContextMenuSub: React.FC<ContextMenuPrimitive.ContextMenuSubProps>;
|
|
8
|
+
declare const ContextMenuRadioGroup: React.ForwardRefExoticComponent<ContextMenuPrimitive.ContextMenuRadioGroupProps & React.RefAttributes<HTMLDivElement>>;
|
|
9
|
+
declare const ContextMenuSubTrigger: React.ForwardRefExoticComponent<Omit<ContextMenuPrimitive.ContextMenuSubTriggerProps & React.RefAttributes<HTMLDivElement>, "ref"> & {
|
|
10
|
+
inset?: boolean;
|
|
11
|
+
} & React.RefAttributes<HTMLDivElement>>;
|
|
12
|
+
declare const ContextMenuSubContent: React.ForwardRefExoticComponent<Omit<ContextMenuPrimitive.ContextMenuSubContentProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
13
|
+
declare const ContextMenuContent: React.ForwardRefExoticComponent<Omit<ContextMenuPrimitive.ContextMenuContentProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
14
|
+
declare const ContextMenuItem: React.ForwardRefExoticComponent<Omit<ContextMenuPrimitive.ContextMenuItemProps & React.RefAttributes<HTMLDivElement>, "ref"> & {
|
|
15
|
+
inset?: boolean;
|
|
16
|
+
} & React.RefAttributes<HTMLDivElement>>;
|
|
17
|
+
declare const ContextMenuCheckboxItem: React.ForwardRefExoticComponent<Omit<ContextMenuPrimitive.ContextMenuCheckboxItemProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
18
|
+
declare const ContextMenuRadioItem: React.ForwardRefExoticComponent<Omit<ContextMenuPrimitive.ContextMenuRadioItemProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
19
|
+
declare const ContextMenuLabel: React.ForwardRefExoticComponent<Omit<ContextMenuPrimitive.ContextMenuLabelProps & React.RefAttributes<HTMLDivElement>, "ref"> & {
|
|
20
|
+
inset?: boolean;
|
|
21
|
+
} & React.RefAttributes<HTMLDivElement>>;
|
|
22
|
+
declare const ContextMenuSeparator: React.ForwardRefExoticComponent<Omit<ContextMenuPrimitive.ContextMenuSeparatorProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
23
|
+
declare const ContextMenuShortcut: {
|
|
24
|
+
({ className, ...props }: React.HTMLAttributes<HTMLSpanElement>): React.JSX.Element;
|
|
25
|
+
displayName: string;
|
|
26
|
+
};
|
|
27
|
+
export { ContextMenu, ContextMenuTrigger, ContextMenuContent, ContextMenuItem, ContextMenuCheckboxItem, ContextMenuRadioItem, ContextMenuLabel, ContextMenuSeparator, ContextMenuShortcut, ContextMenuGroup, ContextMenuPortal, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuRadioGroup, };
|
|
28
|
+
//# sourceMappingURL=context-menu.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context-menu.d.ts","sourceRoot":"","sources":["../../../../src/client/components/ui/context-menu.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,KAAK,oBAAoB,MAAM,8BAA8B,CAAA;AAKpE,QAAA,MAAM,WAAW,iDAA4B,CAAA;AAE7C,QAAA,MAAM,kBAAkB,sHAA+B,CAAA;AAEvD,QAAA,MAAM,gBAAgB,mHAA6B,CAAA;AAEnD,QAAA,MAAM,iBAAiB,uDAA8B,CAAA;AAErD,QAAA,MAAM,cAAc,oDAA2B,CAAA;AAE/C,QAAA,MAAM,qBAAqB,wHAAkC,CAAA;AAE7D,QAAA,MAAM,qBAAqB;YAGX,OAAO;wCAerB,CAAA;AAGF,QAAA,MAAM,qBAAqB,2KAYzB,CAAA;AAGF,QAAA,MAAM,kBAAkB,wKActB,CAAA;AAGF,QAAA,MAAM,eAAe;YAGL,OAAO;wCAYrB,CAAA;AAGF,QAAA,MAAM,uBAAuB,6KAoB3B,CAAA;AAIF,QAAA,MAAM,oBAAoB,0KAmBxB,CAAA;AAGF,QAAA,MAAM,gBAAgB;YAGN,OAAO;wCAYrB,CAAA;AAGF,QAAA,MAAM,oBAAoB,0KASxB,CAAA;AAGF,QAAA,MAAM,mBAAmB;8BAGtB,KAAK,CAAC,cAAc,CAAC,eAAe,CAAC;;CAUvC,CAAA;AAGD,OAAO,EACH,WAAW,EACX,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,EACf,uBAAuB,EACvB,oBAAoB,EACpB,gBAAgB,EAChB,oBAAoB,EACpB,mBAAmB,EACnB,gBAAgB,EAChB,iBAAiB,EACjB,cAAc,EACd,qBAAqB,EACrB,qBAAqB,EACrB,qBAAqB,GACxB,CAAA"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import * as DialogPrimitive from "@radix-ui/react-dialog";
|
|
3
|
+
declare function Dialog({ ...props }: React.ComponentProps<typeof DialogPrimitive.Root>): React.JSX.Element;
|
|
4
|
+
declare function DialogTrigger({ ...props }: React.ComponentProps<typeof DialogPrimitive.Trigger>): React.JSX.Element;
|
|
5
|
+
declare function DialogPortal({ ...props }: React.ComponentProps<typeof DialogPrimitive.Portal>): React.JSX.Element;
|
|
6
|
+
declare function DialogClose({ ...props }: React.ComponentProps<typeof DialogPrimitive.Close>): React.JSX.Element;
|
|
7
|
+
declare function DialogOverlay({ className, ...props }: React.ComponentProps<typeof DialogPrimitive.Overlay>): React.JSX.Element;
|
|
8
|
+
declare function DialogContent({ className, children, showCloseButton, ...props }: React.ComponentProps<typeof DialogPrimitive.Content> & {
|
|
9
|
+
showCloseButton?: boolean;
|
|
10
|
+
}): React.JSX.Element;
|
|
11
|
+
declare function DialogHeader({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
|
|
12
|
+
declare function DialogFooter({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
|
|
13
|
+
declare function DialogTitle({ className, ...props }: React.ComponentProps<typeof DialogPrimitive.Title>): React.JSX.Element;
|
|
14
|
+
declare function DialogDescription({ className, ...props }: React.ComponentProps<typeof DialogPrimitive.Description>): React.JSX.Element;
|
|
15
|
+
export { Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, };
|
|
16
|
+
//# sourceMappingURL=dialog.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dialog.d.ts","sourceRoot":"","sources":["../../../../src/client/components/ui/dialog.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,KAAK,eAAe,MAAM,wBAAwB,CAAA;AAKzD,iBAAS,MAAM,CAAC,EACZ,GAAG,KAAK,EACX,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,IAAI,CAAC,qBAEnD;AAED,iBAAS,aAAa,CAAC,EACnB,GAAG,KAAK,EACX,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,OAAO,CAAC,qBAEtD;AAED,iBAAS,YAAY,CAAC,EAClB,GAAG,KAAK,EACX,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,MAAM,CAAC,qBAErD;AAED,iBAAS,WAAW,CAAC,EACjB,GAAG,KAAK,EACX,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,KAAK,CAAC,qBAEpD;AAED,iBAAS,aAAa,CAAC,EACnB,SAAS,EACT,GAAG,KAAK,EACX,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,OAAO,CAAC,qBAWtD;AAED,iBAAS,aAAa,CAAC,EACnB,SAAS,EACT,QAAQ,EACR,eAAsB,EACtB,GAAG,KAAK,EACX,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,OAAO,CAAC,GAAG;IACtD,eAAe,CAAC,EAAE,OAAO,CAAA;CAC5B,qBAyBA;AAED,iBAAS,YAAY,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,qBAQzE;AAED,iBAAS,YAAY,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,qBAWzE;AAED,iBAAS,WAAW,CAAC,EACjB,SAAS,EACT,GAAG,KAAK,EACX,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,KAAK,CAAC,qBAQpD;AAED,iBAAS,iBAAiB,CAAC,EACvB,SAAS,EACT,GAAG,KAAK,EACX,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,WAAW,CAAC,qBAQ1D;AAED,OAAO,EACH,MAAM,EACN,WAAW,EACX,aAAa,EACb,iBAAiB,EACjB,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,WAAW,EACX,aAAa,GAChB,CAAA"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import * as DropdownMenuPrimitive from "@radix-ui/react-dropdown-menu";
|
|
3
|
+
declare const DropdownMenu: React.FC<DropdownMenuPrimitive.DropdownMenuProps>;
|
|
4
|
+
declare const DropdownMenuTrigger: React.ForwardRefExoticComponent<DropdownMenuPrimitive.DropdownMenuTriggerProps & React.RefAttributes<HTMLButtonElement>>;
|
|
5
|
+
declare const DropdownMenuGroup: React.ForwardRefExoticComponent<DropdownMenuPrimitive.DropdownMenuGroupProps & React.RefAttributes<HTMLDivElement>>;
|
|
6
|
+
declare const DropdownMenuPortal: React.FC<DropdownMenuPrimitive.DropdownMenuPortalProps>;
|
|
7
|
+
declare const DropdownMenuSub: React.FC<DropdownMenuPrimitive.DropdownMenuSubProps>;
|
|
8
|
+
declare const DropdownMenuRadioGroup: React.ForwardRefExoticComponent<DropdownMenuPrimitive.DropdownMenuRadioGroupProps & React.RefAttributes<HTMLDivElement>>;
|
|
9
|
+
declare const DropdownMenuSubTrigger: React.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuSubTriggerProps & React.RefAttributes<HTMLDivElement>, "ref"> & {
|
|
10
|
+
inset?: boolean;
|
|
11
|
+
} & React.RefAttributes<HTMLDivElement>>;
|
|
12
|
+
declare const DropdownMenuSubContent: React.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuSubContentProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
13
|
+
declare const DropdownMenuContent: React.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuContentProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
14
|
+
declare const DropdownMenuItem: React.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuItemProps & React.RefAttributes<HTMLDivElement>, "ref"> & {
|
|
15
|
+
inset?: boolean;
|
|
16
|
+
} & React.RefAttributes<HTMLDivElement>>;
|
|
17
|
+
declare const DropdownMenuCheckboxItem: React.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuCheckboxItemProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
18
|
+
declare const DropdownMenuRadioItem: React.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuRadioItemProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
19
|
+
declare const DropdownMenuLabel: React.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuLabelProps & React.RefAttributes<HTMLDivElement>, "ref"> & {
|
|
20
|
+
inset?: boolean;
|
|
21
|
+
} & React.RefAttributes<HTMLDivElement>>;
|
|
22
|
+
declare const DropdownMenuSeparator: React.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuSeparatorProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
23
|
+
declare const DropdownMenuShortcut: {
|
|
24
|
+
({ className, ...props }: React.HTMLAttributes<HTMLSpanElement>): React.JSX.Element;
|
|
25
|
+
displayName: string;
|
|
26
|
+
};
|
|
27
|
+
export { DropdownMenu, DropdownMenuTrigger, DropdownMenuContent, DropdownMenuItem, DropdownMenuCheckboxItem, DropdownMenuRadioItem, DropdownMenuLabel, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuGroup, DropdownMenuPortal, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuRadioGroup, };
|
|
28
|
+
//# sourceMappingURL=dropdown-menu.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dropdown-menu.d.ts","sourceRoot":"","sources":["../../../../src/client/components/ui/dropdown-menu.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,KAAK,qBAAqB,MAAM,+BAA+B,CAAA;AAKtE,QAAA,MAAM,YAAY,mDAA6B,CAAA;AAE/C,QAAA,MAAM,mBAAmB,0HAAgC,CAAA;AAEzD,QAAA,MAAM,iBAAiB,qHAA8B,CAAA;AAErD,QAAA,MAAM,kBAAkB,yDAA+B,CAAA;AAEvD,QAAA,MAAM,eAAe,sDAA4B,CAAA;AAEjD,QAAA,MAAM,sBAAsB,0HAAmC,CAAA;AAE/D,QAAA,MAAM,sBAAsB;YAGZ,OAAO;wCAerB,CAAA;AAIF,QAAA,MAAM,sBAAsB,6KAY1B,CAAA;AAIF,QAAA,MAAM,mBAAmB,0KAevB,CAAA;AAGF,QAAA,MAAM,gBAAgB;YAGN,OAAO;wCAYrB,CAAA;AAGF,QAAA,MAAM,wBAAwB,+KAoB5B,CAAA;AAIF,QAAA,MAAM,qBAAqB,4KAmBzB,CAAA;AAGF,QAAA,MAAM,iBAAiB;YAGP,OAAO;wCAYrB,CAAA;AAGF,QAAA,MAAM,qBAAqB,4KASzB,CAAA;AAGF,QAAA,MAAM,oBAAoB;8BAGvB,KAAK,CAAC,cAAc,CAAC,eAAe,CAAC;;CAOvC,CAAA;AAGD,OAAO,EACH,YAAY,EACZ,mBAAmB,EACnB,mBAAmB,EACnB,gBAAgB,EAChB,wBAAwB,EACxB,qBAAqB,EACrB,iBAAiB,EACjB,qBAAqB,EACrB,oBAAoB,EACpB,iBAAiB,EACjB,kBAAkB,EAClB,eAAe,EACf,sBAAsB,EACtB,sBAAsB,EACtB,sBAAsB,GACzB,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"input.d.ts","sourceRoot":"","sources":["../../../../src/client/components/ui/input.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAI9B,iBAAS,KAAK,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,qBAc1E;AAED,OAAO,EAAE,KAAK,EAAE,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"label.d.ts","sourceRoot":"","sources":["../../../../src/client/components/ui/label.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,KAAK,cAAc,MAAM,uBAAuB,CAAA;AAIvD,iBAAS,KAAK,CAAC,EACX,SAAS,EACT,GAAG,KAAK,EACX,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,cAAc,CAAC,IAAI,CAAC,qBAWlD;AAED,OAAO,EAAE,KAAK,EAAE,CAAA"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import * as ProgressPrimitive from "@radix-ui/react-progress";
|
|
3
|
+
declare function Progress({ className, value, indicatorClassName, ...props }: React.ComponentProps<typeof ProgressPrimitive.Root> & {
|
|
4
|
+
indicatorClassName?: string;
|
|
5
|
+
}): React.JSX.Element;
|
|
6
|
+
export { Progress };
|
|
7
|
+
//# sourceMappingURL=progress.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"progress.d.ts","sourceRoot":"","sources":["../../../../src/client/components/ui/progress.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,KAAK,iBAAiB,MAAM,0BAA0B,CAAA;AAI7D,iBAAS,QAAQ,CAAC,EACd,SAAS,EACT,KAAK,EACL,kBAAkB,EAClB,GAAG,KAAK,EACX,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,iBAAiB,CAAC,IAAI,CAAC,GAAG;IAAE,kBAAkB,CAAC,EAAE,MAAM,CAAA;CAAE,qBAiBvF;AAED,OAAO,EAAE,QAAQ,EAAE,CAAA"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import * as SeparatorPrimitive from "@radix-ui/react-separator";
|
|
3
|
+
declare function Separator({ className, orientation, decorative, ...props }: React.ComponentProps<typeof SeparatorPrimitive.Root>): React.JSX.Element;
|
|
4
|
+
export { Separator };
|
|
5
|
+
//# sourceMappingURL=separator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"separator.d.ts","sourceRoot":"","sources":["../../../../src/client/components/ui/separator.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,KAAK,kBAAkB,MAAM,2BAA2B,CAAA;AAI/D,iBAAS,SAAS,CAAC,EACf,SAAS,EACT,WAA0B,EAC1B,UAAiB,EACjB,GAAG,KAAK,EACX,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,kBAAkB,CAAC,IAAI,CAAC,qBAatD;AAED,OAAO,EAAE,SAAS,EAAE,CAAA"}
|