@muhgholy/next-drive 1.3.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 +107 -59
- 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 +3 -5
- package/dist/schemas.d.ts.map +1 -0
- package/dist/schemas.js +5 -4
- package/dist/schemas.js.map +1 -1
- 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 -96
- package/dist/index-CUS76o75.d.ts +0 -90
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,8 +239,8 @@ 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
245
|
// Use in your form schema (works in both client and server)
|
|
193
246
|
const myFormSchema = z.object({
|
|
@@ -203,13 +256,8 @@ type MyFormData = z.infer<typeof myFormSchema>;
|
|
|
203
256
|
|
|
204
257
|
// Use in your form schema
|
|
205
258
|
const myFormSchema = z.object({
|
|
206
|
-
asset: driveFileSchemaZod,
|
|
207
|
-
title: z.string(),
|
|
208
|
-
description: z.string().optional(),
|
|
209
|
-
});
|
|
210
259
|
|
|
211
|
-
|
|
212
|
-
```
|
|
260
|
+
````
|
|
213
261
|
|
|
214
262
|
## Key Capabilities
|
|
215
263
|
|
|
@@ -238,7 +286,7 @@ function MyComponent() {
|
|
|
238
286
|
// Use in Next.js Image component
|
|
239
287
|
return <Image src={createUrl(driveFile)} alt={driveFile.file.name} />;
|
|
240
288
|
}
|
|
241
|
-
|
|
289
|
+
````
|
|
242
290
|
|
|
243
291
|
**Responsive Image SrcSet:**
|
|
244
292
|
|
|
@@ -261,7 +309,7 @@ function ResponsiveImage({ driveFile }: { driveFile: TDriveFile }) {
|
|
|
261
309
|
**Get File URL:**
|
|
262
310
|
|
|
263
311
|
```typescript
|
|
264
|
-
import { driveGetUrl } from
|
|
312
|
+
import { driveGetUrl } from '@muhgholy/next-drive/server';
|
|
265
313
|
|
|
266
314
|
// Generate a secure URL
|
|
267
315
|
const url = driveGetUrl(fileId);
|
|
@@ -271,13 +319,13 @@ const url = driveGetUrl(fileId);
|
|
|
271
319
|
const url = driveGetUrl(fileId, { expiry: 7200 }); // 2 hours
|
|
272
320
|
|
|
273
321
|
// With specific expiry date
|
|
274
|
-
const url = driveGetUrl(fileId, { expiry: new Date(
|
|
322
|
+
const url = driveGetUrl(fileId, { expiry: new Date('2025-12-31') });
|
|
275
323
|
```
|
|
276
324
|
|
|
277
325
|
**Read File Stream:**
|
|
278
326
|
|
|
279
327
|
```typescript
|
|
280
|
-
import { driveReadFile } from
|
|
328
|
+
import { driveReadFile } from '@muhgholy/next-drive/server';
|
|
281
329
|
|
|
282
330
|
// Using file ID
|
|
283
331
|
const { stream, mime, size } = await driveReadFile(fileId);
|
|
@@ -290,7 +338,7 @@ const { stream, mime, size } = await driveReadFile(drive);
|
|
|
290
338
|
// Example: Send file via email
|
|
291
339
|
const { stream } = await driveReadFile(fileId);
|
|
292
340
|
await sendEmail({
|
|
293
|
-
attachments: [{ filename:
|
|
341
|
+
attachments: [{ filename: 'report.pdf', content: stream }],
|
|
294
342
|
});
|
|
295
343
|
|
|
296
344
|
// Example: Process file contents
|
|
@@ -307,8 +355,8 @@ const buffer = Buffer.concat(chunks);
|
|
|
307
355
|
For scenarios requiring direct file system access, `driveFilePath()` provides the absolute path. Google Drive files are automatically downloaded to a local cache.
|
|
308
356
|
|
|
309
357
|
```typescript
|
|
310
|
-
import { driveFilePath } from
|
|
311
|
-
import fs from
|
|
358
|
+
import { driveFilePath } from '@muhgholy/next-drive/server';
|
|
359
|
+
import fs from 'fs';
|
|
312
360
|
|
|
313
361
|
// Get local path (downloads Google Drive files automatically)
|
|
314
362
|
const { path, mime, size, provider } = await driveFilePath(fileId);
|
|
@@ -317,8 +365,8 @@ const { path, mime, size, provider } = await driveFilePath(fileId);
|
|
|
317
365
|
const buffer = fs.readFileSync(path);
|
|
318
366
|
|
|
319
367
|
// Use with libraries requiring file paths
|
|
320
|
-
await sharp(path).resize(800, 600).toFile(
|
|
321
|
-
await ffmpeg(path).format(
|
|
368
|
+
await sharp(path).resize(800, 600).toFile('output.jpg');
|
|
369
|
+
await ffmpeg(path).format('mp4').save('output.mp4');
|
|
322
370
|
|
|
323
371
|
// Google Drive files are cached at: storage/library/google/{fileId}.ext
|
|
324
372
|
// Local files use their original location
|
|
@@ -326,13 +374,13 @@ await ffmpeg(path).format("mp4").save("output.mp4");
|
|
|
326
374
|
|
|
327
375
|
### Search & Trash
|
|
328
376
|
|
|
329
|
-
-
|
|
330
|
-
-
|
|
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.
|
|
331
379
|
|
|
332
380
|
### Responsive Design
|
|
333
381
|
|
|
334
|
-
-
|
|
335
|
-
-
|
|
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.
|
|
336
384
|
|
|
337
385
|
## API Endpoints
|
|
338
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"}
|