@tulip-systems/drive-local 0.11.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (61) hide show
  1. package/LICENSE +662 -0
  2. package/dist/client.d.mts +12 -0
  3. package/dist/client.mjs +12 -0
  4. package/dist/database/drizzle/lib/adapter.d.mts +310 -0
  5. package/dist/database/drizzle/lib/adapter.mjs +520 -0
  6. package/dist/database/drizzle/lib/compilers.d.mts +395 -0
  7. package/dist/database/drizzle/lib/compilers.mjs +21 -0
  8. package/dist/database/drizzle/lib/schema.d.mts +61 -0
  9. package/dist/drizzle.d.mts +4 -0
  10. package/dist/drizzle.mjs +3 -0
  11. package/dist/index.d.mts +8 -0
  12. package/dist/index.mjs +8 -0
  13. package/dist/root/components/command-file-update.d.mts +11 -0
  14. package/dist/root/components/command-file-update.mjs +44 -0
  15. package/dist/root/components/command-file-upload.d.mts +5 -0
  16. package/dist/root/components/command-file-upload.mjs +31 -0
  17. package/dist/root/components/command-folder-create.d.mts +11 -0
  18. package/dist/root/components/command-folder-create.mjs +50 -0
  19. package/dist/root/components/command-folder-update.d.mts +11 -0
  20. package/dist/root/components/command-folder-update.mjs +44 -0
  21. package/dist/root/components/content.client.d.mts +5 -0
  22. package/dist/root/components/content.client.mjs +5 -0
  23. package/dist/root/components/navigation.client.d.mts +11 -0
  24. package/dist/root/components/navigation.client.mjs +12 -0
  25. package/dist/root/components/provider.client.d.mts +16 -0
  26. package/dist/root/components/provider.client.mjs +65 -0
  27. package/dist/root/components/upload-zone-context.client.d.mts +36 -0
  28. package/dist/root/components/upload-zone-context.client.mjs +19 -0
  29. package/dist/root/components/upload-zone.client.d.mts +16 -0
  30. package/dist/root/components/upload-zone.client.mjs +147 -0
  31. package/dist/root/components/view.client.d.mts +20 -0
  32. package/dist/root/components/view.client.mjs +86 -0
  33. package/dist/root/config/columns-data.d.mts +6 -0
  34. package/dist/root/config/columns-data.mjs +62 -0
  35. package/dist/root/config/filters.d.mts +404 -0
  36. package/dist/root/config/filters.mjs +122 -0
  37. package/dist/root/config/sorting.d.mts +38 -0
  38. package/dist/root/config/sorting.mjs +26 -0
  39. package/dist/root/lib/constants.d.mts +12 -0
  40. package/dist/root/lib/constants.mjs +27 -0
  41. package/dist/root/lib/database/contracts.d.mts +112 -0
  42. package/dist/root/lib/database/filters.d.mts +28 -0
  43. package/dist/root/lib/database/filters.mjs +73 -0
  44. package/dist/root/lib/helpers.d.mts +33 -0
  45. package/dist/root/lib/helpers.mjs +78 -0
  46. package/dist/root/lib/route-handler.server.d.mts +36 -0
  47. package/dist/root/lib/route-handler.server.mjs +111 -0
  48. package/dist/root/lib/router.server.d.mts +819 -0
  49. package/dist/root/lib/router.server.mjs +87 -0
  50. package/dist/root/lib/search-params.d.mts +15 -0
  51. package/dist/root/lib/search-params.mjs +6 -0
  52. package/dist/root/lib/service.server.d.mts +522 -0
  53. package/dist/root/lib/service.server.mjs +613 -0
  54. package/dist/root/lib/upload.client.d.mts +60 -0
  55. package/dist/root/lib/upload.client.mjs +97 -0
  56. package/dist/root/lib/validators.d.mts +710 -0
  57. package/dist/root/lib/validators.mjs +116 -0
  58. package/dist/server.d.mts +5 -0
  59. package/dist/server.mjs +4 -0
  60. package/package.json +83 -0
  61. package/styles.css +1 -0
@@ -0,0 +1,395 @@
1
+ //#region src/database/drizzle/lib/compilers.d.ts
2
+ /**
3
+ * Node compilers
4
+ */
5
+ declare const compileLocalDriveFiltersToDrizzle: <TFields extends import("@tulip-systems/query/drizzle").DatabaseFilterFields<import("@tulip-systems/query").FiltersFieldUnion<{
6
+ readonly search: import("@tulip-systems/query").Filter<import("nuqs/server").SingleParserBuilder<string>, import("zod").ZodString, {
7
+ readonly field: "name";
8
+ readonly operator: "ilike";
9
+ readonly value: `%${string}%`;
10
+ } | null>;
11
+ readonly types: import("@tulip-systems/query").Filter<import("nuqs/server").SingleParserBuilder<("folder" | "file")[]>, import("zod").ZodArray<import("zod").ZodEnum<{
12
+ readonly folder: "folder";
13
+ readonly file: "file";
14
+ }>>, {
15
+ readonly field: "type";
16
+ readonly operator: "in";
17
+ readonly value: ("folder" | "file")[];
18
+ } | null>;
19
+ readonly contentTypes: import("@tulip-systems/query").Filter<import("nuqs/server").SingleParserBuilder<string[]>, import("zod").ZodArray<import("zod").ZodString>, {
20
+ readonly field: "contentType";
21
+ readonly operator: "in";
22
+ readonly value: string[];
23
+ } | null>;
24
+ readonly nodeIds: import("@tulip-systems/query").Filter<import("nuqs/server").SingleParserBuilder<string[]>, import("zod").ZodArray<import("zod").ZodString>, {
25
+ readonly field: "id";
26
+ readonly operator: "in";
27
+ readonly value: string[];
28
+ } | null>;
29
+ readonly assetIds: import("@tulip-systems/query").Filter<import("nuqs/server").SingleParserBuilder<string[]>, import("zod").ZodArray<import("zod").ZodString>, {
30
+ readonly field: "assetId";
31
+ readonly operator: "in";
32
+ readonly value: string[];
33
+ } | null>;
34
+ readonly namespace: import("@tulip-systems/query").Filter<import("nuqs/server").SingleParserBuilder<string>, import("zod").ZodString, {
35
+ readonly field: "namespace";
36
+ readonly operator: "eq";
37
+ readonly value: string;
38
+ } | null>;
39
+ readonly parentId: import("@tulip-systems/query").Filter<import("nuqs/server").SingleParserBuilder<string>, import("zod").ZodNullable<import("zod").ZodString>, {
40
+ readonly field: "parentId";
41
+ readonly operator: "isNull";
42
+ readonly value?: undefined;
43
+ } | {
44
+ readonly field: "parentId";
45
+ readonly operator: "eq";
46
+ readonly value: string;
47
+ } | null>;
48
+ readonly subtypes: import("@tulip-systems/query").Filter<import("nuqs/server").SingleParserBuilder<("image" | "document" | "spreadsheet" | "video" | "audio" | "archive" | "other")[]>, import("zod").ZodArray<import("zod").ZodEnum<{
49
+ readonly image: "image";
50
+ readonly document: "document";
51
+ readonly spreadsheet: "spreadsheet";
52
+ readonly video: "video";
53
+ readonly audio: "audio";
54
+ readonly archive: "archive";
55
+ readonly other: "other";
56
+ }>>, {
57
+ readonly field: "subtype";
58
+ readonly operator: "in";
59
+ readonly value: ("image" | "document" | "spreadsheet" | "video" | "audio" | "archive" | "other")[];
60
+ } | null>;
61
+ readonly isArchived: import("@tulip-systems/query").Filter<import("nuqs/server").SingleParserBuilder<boolean>, import("zod").ZodBoolean, {
62
+ readonly field: "archivedAt";
63
+ readonly operator: "isNull" | "isNotNull";
64
+ }>;
65
+ readonly hidden: import("@tulip-systems/query").Filter<import("nuqs/server").SingleParserBuilder<boolean>, import("zod").ZodBoolean, {
66
+ readonly field: "hidden";
67
+ readonly operator: "eq";
68
+ readonly value: boolean;
69
+ }>;
70
+ }>> & object>(fields: TFields) => import("@tulip-systems/query/drizzle").DatabaseFilterCompiler<Extract<keyof TFields, string> & import("@tulip-systems/query").FiltersFieldUnion<{
71
+ readonly search: import("@tulip-systems/query").Filter<import("nuqs/server").SingleParserBuilder<string>, import("zod").ZodString, {
72
+ readonly field: "name";
73
+ readonly operator: "ilike";
74
+ readonly value: `%${string}%`;
75
+ } | null>;
76
+ readonly types: import("@tulip-systems/query").Filter<import("nuqs/server").SingleParserBuilder<("folder" | "file")[]>, import("zod").ZodArray<import("zod").ZodEnum<{
77
+ readonly folder: "folder";
78
+ readonly file: "file";
79
+ }>>, {
80
+ readonly field: "type";
81
+ readonly operator: "in";
82
+ readonly value: ("folder" | "file")[];
83
+ } | null>;
84
+ readonly contentTypes: import("@tulip-systems/query").Filter<import("nuqs/server").SingleParserBuilder<string[]>, import("zod").ZodArray<import("zod").ZodString>, {
85
+ readonly field: "contentType";
86
+ readonly operator: "in";
87
+ readonly value: string[];
88
+ } | null>;
89
+ readonly nodeIds: import("@tulip-systems/query").Filter<import("nuqs/server").SingleParserBuilder<string[]>, import("zod").ZodArray<import("zod").ZodString>, {
90
+ readonly field: "id";
91
+ readonly operator: "in";
92
+ readonly value: string[];
93
+ } | null>;
94
+ readonly assetIds: import("@tulip-systems/query").Filter<import("nuqs/server").SingleParserBuilder<string[]>, import("zod").ZodArray<import("zod").ZodString>, {
95
+ readonly field: "assetId";
96
+ readonly operator: "in";
97
+ readonly value: string[];
98
+ } | null>;
99
+ readonly namespace: import("@tulip-systems/query").Filter<import("nuqs/server").SingleParserBuilder<string>, import("zod").ZodString, {
100
+ readonly field: "namespace";
101
+ readonly operator: "eq";
102
+ readonly value: string;
103
+ } | null>;
104
+ readonly parentId: import("@tulip-systems/query").Filter<import("nuqs/server").SingleParserBuilder<string>, import("zod").ZodNullable<import("zod").ZodString>, {
105
+ readonly field: "parentId";
106
+ readonly operator: "isNull";
107
+ readonly value?: undefined;
108
+ } | {
109
+ readonly field: "parentId";
110
+ readonly operator: "eq";
111
+ readonly value: string;
112
+ } | null>;
113
+ readonly subtypes: import("@tulip-systems/query").Filter<import("nuqs/server").SingleParserBuilder<("image" | "document" | "spreadsheet" | "video" | "audio" | "archive" | "other")[]>, import("zod").ZodArray<import("zod").ZodEnum<{
114
+ readonly image: "image";
115
+ readonly document: "document";
116
+ readonly spreadsheet: "spreadsheet";
117
+ readonly video: "video";
118
+ readonly audio: "audio";
119
+ readonly archive: "archive";
120
+ readonly other: "other";
121
+ }>>, {
122
+ readonly field: "subtype";
123
+ readonly operator: "in";
124
+ readonly value: ("image" | "document" | "spreadsheet" | "video" | "audio" | "archive" | "other")[];
125
+ } | null>;
126
+ readonly isArchived: import("@tulip-systems/query").Filter<import("nuqs/server").SingleParserBuilder<boolean>, import("zod").ZodBoolean, {
127
+ readonly field: "archivedAt";
128
+ readonly operator: "isNull" | "isNotNull";
129
+ }>;
130
+ readonly hidden: import("@tulip-systems/query").Filter<import("nuqs/server").SingleParserBuilder<boolean>, import("zod").ZodBoolean, {
131
+ readonly field: "hidden";
132
+ readonly operator: "eq";
133
+ readonly value: boolean;
134
+ }>;
135
+ }>>;
136
+ declare const compileLocalDriveSortsToDrizzle: (fields: import("@tulip-systems/query/drizzle").DatabaseSortFieldMap<import("@tulip-systems/query").SortingFieldUnion<{
137
+ readonly name: import("@tulip-systems/query").Sort<{
138
+ readonly field: "name";
139
+ readonly direction: "asc" | "desc";
140
+ }>;
141
+ readonly createdAt: import("@tulip-systems/query").Sort<{
142
+ readonly field: "createdAt";
143
+ readonly direction: "asc" | "desc";
144
+ }>;
145
+ readonly updatedAt: import("@tulip-systems/query").Sort<{
146
+ readonly field: "updatedAt";
147
+ readonly direction: "asc" | "desc";
148
+ }>;
149
+ }>>) => import("@tulip-systems/query/drizzle").DatabaseSortingCompiler<import("@tulip-systems/query").SortingFieldUnion<{
150
+ readonly name: import("@tulip-systems/query").Sort<{
151
+ readonly field: "name";
152
+ readonly direction: "asc" | "desc";
153
+ }>;
154
+ readonly createdAt: import("@tulip-systems/query").Sort<{
155
+ readonly field: "createdAt";
156
+ readonly direction: "asc" | "desc";
157
+ }>;
158
+ readonly updatedAt: import("@tulip-systems/query").Sort<{
159
+ readonly field: "updatedAt";
160
+ readonly direction: "asc" | "desc";
161
+ }>;
162
+ }>>;
163
+ declare const compileLocalDriveDatabaseNodeFiltersToDrizzle: <TFields extends import("@tulip-systems/query/drizzle").DatabaseFilterFields<import("@tulip-systems/query").FiltersFieldUnion<{
164
+ readonly search: import("@tulip-systems/query").Filter<import("nuqs/server").SingleParserBuilder<string>, import("zod").ZodString, {
165
+ readonly field: "name";
166
+ readonly operator: "ilike";
167
+ readonly value: `%${string}%`;
168
+ } | null>;
169
+ readonly types: import("@tulip-systems/query").Filter<import("nuqs/server").SingleParserBuilder<("folder" | "file")[]>, import("zod").ZodArray<import("zod").ZodEnum<{
170
+ readonly folder: "folder";
171
+ readonly file: "file";
172
+ }>>, {
173
+ readonly field: "type";
174
+ readonly operator: "in";
175
+ readonly value: ("folder" | "file")[];
176
+ } | null>;
177
+ readonly contentTypes: import("@tulip-systems/query").Filter<import("nuqs/server").SingleParserBuilder<string[]>, import("zod").ZodArray<import("zod").ZodString>, {
178
+ readonly field: "contentType";
179
+ readonly operator: "in";
180
+ readonly value: string[];
181
+ } | null>;
182
+ readonly nodeIds: import("@tulip-systems/query").Filter<import("nuqs/server").SingleParserBuilder<string[]>, import("zod").ZodArray<import("zod").ZodString>, {
183
+ readonly field: "id";
184
+ readonly operator: "in";
185
+ readonly value: string[];
186
+ } | null>;
187
+ readonly assetIds: import("@tulip-systems/query").Filter<import("nuqs/server").SingleParserBuilder<string[]>, import("zod").ZodArray<import("zod").ZodString>, {
188
+ readonly field: "assetId";
189
+ readonly operator: "in";
190
+ readonly value: string[];
191
+ } | null>;
192
+ readonly namespace: import("@tulip-systems/query").Filter<import("nuqs/server").SingleParserBuilder<string>, import("zod").ZodString, {
193
+ readonly field: "namespace";
194
+ readonly operator: "eq";
195
+ readonly value: string;
196
+ } | null>;
197
+ readonly parentId: import("@tulip-systems/query").Filter<import("nuqs/server").SingleParserBuilder<string>, import("zod").ZodNullable<import("zod").ZodString>, {
198
+ readonly field: "parentId";
199
+ readonly operator: "isNull";
200
+ readonly value?: undefined;
201
+ } | {
202
+ readonly field: "parentId";
203
+ readonly operator: "eq";
204
+ readonly value: string;
205
+ } | null>;
206
+ readonly subtypes: import("@tulip-systems/query").Filter<import("nuqs/server").SingleParserBuilder<("image" | "document" | "spreadsheet" | "video" | "audio" | "archive" | "other")[]>, import("zod").ZodArray<import("zod").ZodEnum<{
207
+ readonly image: "image";
208
+ readonly document: "document";
209
+ readonly spreadsheet: "spreadsheet";
210
+ readonly video: "video";
211
+ readonly audio: "audio";
212
+ readonly archive: "archive";
213
+ readonly other: "other";
214
+ }>>, {
215
+ readonly field: "subtype";
216
+ readonly operator: "in";
217
+ readonly value: ("image" | "document" | "spreadsheet" | "video" | "audio" | "archive" | "other")[];
218
+ } | null>;
219
+ readonly isArchived: import("@tulip-systems/query").Filter<import("nuqs/server").SingleParserBuilder<boolean>, import("zod").ZodBoolean, {
220
+ readonly field: "archivedAt";
221
+ readonly operator: "isNull" | "isNotNull";
222
+ } | null>;
223
+ readonly hidden: import("@tulip-systems/query").Filter<import("nuqs/server").SingleParserBuilder<boolean>, import("zod").ZodBoolean, {
224
+ readonly field: "hidden";
225
+ readonly operator: "eq";
226
+ readonly value: boolean;
227
+ } | null>;
228
+ }>> & object>(fields: TFields) => import("@tulip-systems/query/drizzle").DatabaseFilterCompiler<Extract<keyof TFields, string> & import("@tulip-systems/query").FiltersFieldUnion<{
229
+ readonly search: import("@tulip-systems/query").Filter<import("nuqs/server").SingleParserBuilder<string>, import("zod").ZodString, {
230
+ readonly field: "name";
231
+ readonly operator: "ilike";
232
+ readonly value: `%${string}%`;
233
+ } | null>;
234
+ readonly types: import("@tulip-systems/query").Filter<import("nuqs/server").SingleParserBuilder<("folder" | "file")[]>, import("zod").ZodArray<import("zod").ZodEnum<{
235
+ readonly folder: "folder";
236
+ readonly file: "file";
237
+ }>>, {
238
+ readonly field: "type";
239
+ readonly operator: "in";
240
+ readonly value: ("folder" | "file")[];
241
+ } | null>;
242
+ readonly contentTypes: import("@tulip-systems/query").Filter<import("nuqs/server").SingleParserBuilder<string[]>, import("zod").ZodArray<import("zod").ZodString>, {
243
+ readonly field: "contentType";
244
+ readonly operator: "in";
245
+ readonly value: string[];
246
+ } | null>;
247
+ readonly nodeIds: import("@tulip-systems/query").Filter<import("nuqs/server").SingleParserBuilder<string[]>, import("zod").ZodArray<import("zod").ZodString>, {
248
+ readonly field: "id";
249
+ readonly operator: "in";
250
+ readonly value: string[];
251
+ } | null>;
252
+ readonly assetIds: import("@tulip-systems/query").Filter<import("nuqs/server").SingleParserBuilder<string[]>, import("zod").ZodArray<import("zod").ZodString>, {
253
+ readonly field: "assetId";
254
+ readonly operator: "in";
255
+ readonly value: string[];
256
+ } | null>;
257
+ readonly namespace: import("@tulip-systems/query").Filter<import("nuqs/server").SingleParserBuilder<string>, import("zod").ZodString, {
258
+ readonly field: "namespace";
259
+ readonly operator: "eq";
260
+ readonly value: string;
261
+ } | null>;
262
+ readonly parentId: import("@tulip-systems/query").Filter<import("nuqs/server").SingleParserBuilder<string>, import("zod").ZodNullable<import("zod").ZodString>, {
263
+ readonly field: "parentId";
264
+ readonly operator: "isNull";
265
+ readonly value?: undefined;
266
+ } | {
267
+ readonly field: "parentId";
268
+ readonly operator: "eq";
269
+ readonly value: string;
270
+ } | null>;
271
+ readonly subtypes: import("@tulip-systems/query").Filter<import("nuqs/server").SingleParserBuilder<("image" | "document" | "spreadsheet" | "video" | "audio" | "archive" | "other")[]>, import("zod").ZodArray<import("zod").ZodEnum<{
272
+ readonly image: "image";
273
+ readonly document: "document";
274
+ readonly spreadsheet: "spreadsheet";
275
+ readonly video: "video";
276
+ readonly audio: "audio";
277
+ readonly archive: "archive";
278
+ readonly other: "other";
279
+ }>>, {
280
+ readonly field: "subtype";
281
+ readonly operator: "in";
282
+ readonly value: ("image" | "document" | "spreadsheet" | "video" | "audio" | "archive" | "other")[];
283
+ } | null>;
284
+ readonly isArchived: import("@tulip-systems/query").Filter<import("nuqs/server").SingleParserBuilder<boolean>, import("zod").ZodBoolean, {
285
+ readonly field: "archivedAt";
286
+ readonly operator: "isNull" | "isNotNull";
287
+ } | null>;
288
+ readonly hidden: import("@tulip-systems/query").Filter<import("nuqs/server").SingleParserBuilder<boolean>, import("zod").ZodBoolean, {
289
+ readonly field: "hidden";
290
+ readonly operator: "eq";
291
+ readonly value: boolean;
292
+ } | null>;
293
+ }>>;
294
+ /**
295
+ * Variant compilers
296
+ */
297
+ declare const compileLocalDriveVariantFiltersToDrizzle: <TFields extends import("@tulip-systems/query/drizzle").DatabaseFilterFields<import("@tulip-systems/query").FiltersFieldUnion<{
298
+ readonly ids: import("@tulip-systems/query").Filter<import("nuqs/server").SingleParserBuilder<string[]>, import("zod").ZodArray<import("zod").ZodString>, {
299
+ readonly field: "id";
300
+ readonly operator: "in";
301
+ readonly value: string[];
302
+ } | null>;
303
+ readonly nodeIds: import("@tulip-systems/query").Filter<import("nuqs/server").SingleParserBuilder<string[]>, import("zod").ZodArray<import("zod").ZodString>, {
304
+ readonly field: "nodeId";
305
+ readonly operator: "in";
306
+ readonly value: string[];
307
+ } | null>;
308
+ readonly assetIds: import("@tulip-systems/query").Filter<import("nuqs/server").SingleParserBuilder<string[]>, import("zod").ZodArray<import("zod").ZodString>, {
309
+ readonly field: "assetId";
310
+ readonly operator: "in";
311
+ readonly value: string[];
312
+ } | null>;
313
+ readonly variants: import("@tulip-systems/query").Filter<import("nuqs/server").SingleParserBuilder<("main" | `preview-${number}`)[]>, import("zod").ZodArray<import("zod").ZodEnum<{
314
+ readonly [x: `preview-${number}`]: `preview-${number}`;
315
+ readonly main: "main";
316
+ }>>, {
317
+ readonly field: "variant";
318
+ readonly operator: "in";
319
+ readonly value: ("main" | `preview-${number}`)[];
320
+ } | null>;
321
+ }>> & object>(fields: TFields) => import("@tulip-systems/query/drizzle").DatabaseFilterCompiler<Extract<keyof TFields, string> & import("@tulip-systems/query").FiltersFieldUnion<{
322
+ readonly ids: import("@tulip-systems/query").Filter<import("nuqs/server").SingleParserBuilder<string[]>, import("zod").ZodArray<import("zod").ZodString>, {
323
+ readonly field: "id";
324
+ readonly operator: "in";
325
+ readonly value: string[];
326
+ } | null>;
327
+ readonly nodeIds: import("@tulip-systems/query").Filter<import("nuqs/server").SingleParserBuilder<string[]>, import("zod").ZodArray<import("zod").ZodString>, {
328
+ readonly field: "nodeId";
329
+ readonly operator: "in";
330
+ readonly value: string[];
331
+ } | null>;
332
+ readonly assetIds: import("@tulip-systems/query").Filter<import("nuqs/server").SingleParserBuilder<string[]>, import("zod").ZodArray<import("zod").ZodString>, {
333
+ readonly field: "assetId";
334
+ readonly operator: "in";
335
+ readonly value: string[];
336
+ } | null>;
337
+ readonly variants: import("@tulip-systems/query").Filter<import("nuqs/server").SingleParserBuilder<("main" | `preview-${number}`)[]>, import("zod").ZodArray<import("zod").ZodEnum<{
338
+ readonly [x: `preview-${number}`]: `preview-${number}`;
339
+ readonly main: "main";
340
+ }>>, {
341
+ readonly field: "variant";
342
+ readonly operator: "in";
343
+ readonly value: ("main" | `preview-${number}`)[];
344
+ } | null>;
345
+ }>>;
346
+ /**
347
+ * Presigned URL compilers
348
+ */
349
+ declare const compileLocalDrivePresignedUrlFiltersToDrizzle: <TFields extends import("@tulip-systems/query/drizzle").DatabaseFilterFields<import("@tulip-systems/query").FiltersFieldUnion<{
350
+ readonly nodeId: import("@tulip-systems/query").Filter<import("nuqs/server").SingleParserBuilder<string>, import("zod").ZodString, {
351
+ readonly field: "nodeId";
352
+ readonly operator: "eq";
353
+ readonly value: string;
354
+ } | null>;
355
+ readonly variant: import("@tulip-systems/query").Filter<import("nuqs/server").SingleParserBuilder<"main" | `preview-${number}`>, import("zod").ZodEnum<{
356
+ readonly [x: `preview-${number}`]: `preview-${number}`;
357
+ readonly main: "main";
358
+ }>, {
359
+ readonly field: "variant";
360
+ readonly operator: "eq";
361
+ readonly value: "main" | `preview-${number}`;
362
+ } | null>;
363
+ readonly disposition: import("@tulip-systems/query").Filter<import("nuqs/server").SingleParserBuilder<"inline" | "attachment">, import("zod").ZodEnum<{
364
+ readonly inline: "inline";
365
+ readonly attachment: "attachment";
366
+ }>, {
367
+ readonly field: "disposition";
368
+ readonly operator: "eq";
369
+ readonly value: "inline" | "attachment";
370
+ } | null>;
371
+ }>> & object>(fields: TFields) => import("@tulip-systems/query/drizzle").DatabaseFilterCompiler<Extract<keyof TFields, string> & import("@tulip-systems/query").FiltersFieldUnion<{
372
+ readonly nodeId: import("@tulip-systems/query").Filter<import("nuqs/server").SingleParserBuilder<string>, import("zod").ZodString, {
373
+ readonly field: "nodeId";
374
+ readonly operator: "eq";
375
+ readonly value: string;
376
+ } | null>;
377
+ readonly variant: import("@tulip-systems/query").Filter<import("nuqs/server").SingleParserBuilder<"main" | `preview-${number}`>, import("zod").ZodEnum<{
378
+ readonly [x: `preview-${number}`]: `preview-${number}`;
379
+ readonly main: "main";
380
+ }>, {
381
+ readonly field: "variant";
382
+ readonly operator: "eq";
383
+ readonly value: "main" | `preview-${number}`;
384
+ } | null>;
385
+ readonly disposition: import("@tulip-systems/query").Filter<import("nuqs/server").SingleParserBuilder<"inline" | "attachment">, import("zod").ZodEnum<{
386
+ readonly inline: "inline";
387
+ readonly attachment: "attachment";
388
+ }>, {
389
+ readonly field: "disposition";
390
+ readonly operator: "eq";
391
+ readonly value: "inline" | "attachment";
392
+ } | null>;
393
+ }>>;
394
+ //#endregion
395
+ export { compileLocalDriveDatabaseNodeFiltersToDrizzle, compileLocalDriveFiltersToDrizzle, compileLocalDrivePresignedUrlFiltersToDrizzle, compileLocalDriveSortsToDrizzle, compileLocalDriveVariantFiltersToDrizzle };
@@ -0,0 +1,21 @@
1
+ import { localDriveFilters, localDrivePresignedUrlFilters, localDriveVariantFilters } from "../../../root/config/filters.mjs";
2
+ import { localDriveTableSorts } from "../../../root/config/sorting.mjs";
3
+ import { localDriveDatabaseNodeFilters } from "../../../root/lib/database/filters.mjs";
4
+ import { createDatabaseFiltersCompiler, createDatabaseSortingCompiler } from "@tulip-systems/query/drizzle";
5
+ //#region src/database/drizzle/lib/compilers.ts
6
+ /**
7
+ * Node compilers
8
+ */
9
+ const compileLocalDriveFiltersToDrizzle = createDatabaseFiltersCompiler(localDriveFilters);
10
+ const compileLocalDriveSortsToDrizzle = createDatabaseSortingCompiler(localDriveTableSorts);
11
+ const compileLocalDriveDatabaseNodeFiltersToDrizzle = createDatabaseFiltersCompiler(localDriveDatabaseNodeFilters);
12
+ /**
13
+ * Variant compilers
14
+ */
15
+ const compileLocalDriveVariantFiltersToDrizzle = createDatabaseFiltersCompiler(localDriveVariantFilters);
16
+ /**
17
+ * Presigned URL compilers
18
+ */
19
+ const compileLocalDrivePresignedUrlFiltersToDrizzle = createDatabaseFiltersCompiler(localDrivePresignedUrlFilters);
20
+ //#endregion
21
+ export { compileLocalDriveDatabaseNodeFiltersToDrizzle, compileLocalDriveFiltersToDrizzle, compileLocalDrivePresignedUrlFiltersToDrizzle, compileLocalDriveSortsToDrizzle, compileLocalDriveVariantFiltersToDrizzle };
@@ -0,0 +1,61 @@
1
+ import { ImageVariant, LocalDriveNodeSubtype } from "../../../root/lib/constants.mjs";
2
+ import { ImageDisposition } from "@tulip-systems/storage";
3
+ import { StorageDrizzleAssetsTable } from "@tulip-systems/storage/drizzle";
4
+ import { AnyPgColumn, PgTable } from "drizzle-orm/pg-core";
5
+ //#region src/database/drizzle/lib/schema.d.ts
6
+ type LocalDriveNodeType = "folder" | "file";
7
+ type LocalDriveDrizzleColumn<TDataType extends "string" | "number" | "date" | "boolean" | "json", TColumnType extends string, TData, TNotNull extends boolean = boolean, THasDefault extends boolean = boolean, TIsPrimaryKey extends boolean = boolean> = AnyPgColumn<{
8
+ dataType: TDataType;
9
+ columnType: TColumnType;
10
+ data: TData;
11
+ notNull: TNotNull;
12
+ hasDefault: THasDefault;
13
+ isPrimaryKey: TIsPrimaryKey;
14
+ }>;
15
+ type LocalDriveDrizzleTextColumn<TData extends string = string, TNotNull extends boolean = boolean, THasDefault extends boolean = boolean> = LocalDriveDrizzleColumn<"string", "PgText", TData, TNotNull, THasDefault>;
16
+ type LocalDriveDrizzleEnumColumn<TData extends string, TNotNull extends boolean = boolean, THasDefault extends boolean = boolean> = LocalDriveDrizzleColumn<"string", "PgEnumColumn", TData, TNotNull, THasDefault>;
17
+ type LocalDriveDrizzleTimestampColumn<TNotNull extends boolean = boolean, THasDefault extends boolean = boolean> = LocalDriveDrizzleColumn<"date", "PgTimestamp", Date, TNotNull, THasDefault>;
18
+ type LocalDriveDrizzleUuidColumn<TNotNull extends boolean = boolean, THasDefault extends boolean = boolean, TIsPrimaryKey extends boolean = boolean> = LocalDriveDrizzleColumn<"string", "PgUUID", string, TNotNull, THasDefault, TIsPrimaryKey>;
19
+ type LocalDriveDrizzleIntegerColumn<TNotNull extends boolean = boolean, THasDefault extends boolean = boolean> = LocalDriveDrizzleColumn<"number", "PgInteger", number, TNotNull, THasDefault>;
20
+ type LocalDriveDrizzleBooleanColumn<TNotNull extends boolean = boolean, THasDefault extends boolean = boolean> = LocalDriveDrizzleColumn<"boolean", "PgBoolean", boolean, TNotNull, THasDefault>;
21
+ type LocalDriveDrizzleVarcharColumn<TNotNull extends boolean = boolean, THasDefault extends boolean = boolean> = LocalDriveDrizzleColumn<"string", "PgVarchar", string, TNotNull, THasDefault>;
22
+ type LocalDriveDrizzleBaseColumns = {
23
+ id: LocalDriveDrizzleUuidColumn<true, true, true>;
24
+ createdAt: LocalDriveDrizzleTimestampColumn<true, true>;
25
+ updatedAt: LocalDriveDrizzleTimestampColumn<true, true>;
26
+ };
27
+ type LocalDriveDrizzleNodesTable = PgTable & LocalDriveDrizzleBaseColumns & {
28
+ name: LocalDriveDrizzleTextColumn<string, true>;
29
+ namespace: LocalDriveDrizzleTextColumn<string, true, true>;
30
+ type: LocalDriveDrizzleEnumColumn<LocalDriveNodeType>;
31
+ subtype: LocalDriveDrizzleTextColumn<LocalDriveNodeSubtype, true, true>;
32
+ size: LocalDriveDrizzleIntegerColumn;
33
+ contentType: LocalDriveDrizzleVarcharColumn;
34
+ readonly: LocalDriveDrizzleBooleanColumn<boolean, true>;
35
+ hidden: LocalDriveDrizzleBooleanColumn<boolean, true>;
36
+ archivedAt: LocalDriveDrizzleTimestampColumn;
37
+ parentId: LocalDriveDrizzleUuidColumn;
38
+ assetId: LocalDriveDrizzleUuidColumn;
39
+ };
40
+ type LocalDriveDrizzleNodeVariantsTable = PgTable & LocalDriveDrizzleBaseColumns & {
41
+ nodeId: LocalDriveDrizzleUuidColumn<true>;
42
+ assetId: LocalDriveDrizzleUuidColumn<true>;
43
+ variant: LocalDriveDrizzleTextColumn<ImageVariant, true>;
44
+ width: LocalDriveDrizzleIntegerColumn<true>;
45
+ };
46
+ type LocalDriveDrizzleNodePresignedUrlsTable = PgTable & LocalDriveDrizzleBaseColumns & {
47
+ url: LocalDriveDrizzleTextColumn<string, true>;
48
+ variant: LocalDriveDrizzleTextColumn<ImageVariant, true>;
49
+ disposition: LocalDriveDrizzleTextColumn<ImageDisposition, true>;
50
+ expiresAt: LocalDriveDrizzleTimestampColumn<true>;
51
+ nodeId: LocalDriveDrizzleUuidColumn<true>;
52
+ variantId: LocalDriveDrizzleUuidColumn;
53
+ };
54
+ type LocalDriveDrizzleSchema = {
55
+ nodes: LocalDriveDrizzleNodesTable;
56
+ nodeVariants: LocalDriveDrizzleNodeVariantsTable;
57
+ nodePresignedUrls: LocalDriveDrizzleNodePresignedUrlsTable;
58
+ storageAssets: StorageDrizzleAssetsTable;
59
+ };
60
+ //#endregion
61
+ export { LocalDriveDrizzleNodePresignedUrlsTable, LocalDriveDrizzleNodeVariantsTable, LocalDriveDrizzleNodesTable, LocalDriveDrizzleSchema };
@@ -0,0 +1,4 @@
1
+ import { LocalDriveDrizzleNodePresignedUrlsTable, LocalDriveDrizzleNodeVariantsTable, LocalDriveDrizzleNodesTable, LocalDriveDrizzleSchema } from "./database/drizzle/lib/schema.mjs";
2
+ import { LocalDriveDrizzleAdapterConfig, LocalDriveDrizzleProvider, localDriveDrizzleAdapter } from "./database/drizzle/lib/adapter.mjs";
3
+ import { compileLocalDriveDatabaseNodeFiltersToDrizzle, compileLocalDriveFiltersToDrizzle, compileLocalDrivePresignedUrlFiltersToDrizzle, compileLocalDriveSortsToDrizzle, compileLocalDriveVariantFiltersToDrizzle } from "./database/drizzle/lib/compilers.mjs";
4
+ export { LocalDriveDrizzleAdapterConfig, type LocalDriveDrizzleNodePresignedUrlsTable, type LocalDriveDrizzleNodeVariantsTable, type LocalDriveDrizzleNodesTable, LocalDriveDrizzleProvider, type LocalDriveDrizzleSchema, compileLocalDriveDatabaseNodeFiltersToDrizzle, compileLocalDriveFiltersToDrizzle, compileLocalDrivePresignedUrlFiltersToDrizzle, compileLocalDriveSortsToDrizzle, compileLocalDriveVariantFiltersToDrizzle, localDriveDrizzleAdapter };
@@ -0,0 +1,3 @@
1
+ import { compileLocalDriveDatabaseNodeFiltersToDrizzle, compileLocalDriveFiltersToDrizzle, compileLocalDrivePresignedUrlFiltersToDrizzle, compileLocalDriveSortsToDrizzle, compileLocalDriveVariantFiltersToDrizzle } from "./database/drizzle/lib/compilers.mjs";
2
+ import { localDriveDrizzleAdapter } from "./database/drizzle/lib/adapter.mjs";
3
+ export { compileLocalDriveDatabaseNodeFiltersToDrizzle, compileLocalDriveFiltersToDrizzle, compileLocalDrivePresignedUrlFiltersToDrizzle, compileLocalDriveSortsToDrizzle, compileLocalDriveVariantFiltersToDrizzle, localDriveDrizzleAdapter };
@@ -0,0 +1,8 @@
1
+ import { LocalDriveFiltersInput, LocalDriveFiltersSchema, LocalDrivePresignedUrlFiltersInput, LocalDrivePresignedUrlFiltersSchema, LocalDriveVariantFiltersInput, LocalDriveVariantFiltersSchema, localDriveFilters, localDriveFiltersParser, localDriveFiltersSchema, localDrivePresignedUrlFilters, localDrivePresignedUrlFiltersParser, localDrivePresignedUrlFiltersSchema, localDriveVariantFilters, localDriveVariantFiltersParser, localDriveVariantFiltersSchema } from "./root/config/filters.mjs";
2
+ import { LocalDriveTableSortsInput, LocalDriveTableSortsSchema, localDriveTableSorts, localDriveTableSortsParser, localDriveTableSortsSchema } from "./root/config/sorting.mjs";
3
+ import { ImageVariant, LocalDriveNodeSubtype, deviceSizes, imageSizes, imageVariants, nodeSubtypes } from "./root/lib/constants.mjs";
4
+ import { CreateLocalDriveFolderInput, CreateLocalDriveFolderSchema, GetLocalDriveNodesByParentIdInput, GetLocalDriveNodesByParentIdSchema, GetLocalFileURLSchema, ListLocalDriveFlatSchema, ListLocalDriveTreeInput, ListLocalDriveTreeSchema, LocalDriveFileNode, LocalDriveFolderNode, LocalDriveNode, LocalDriveNodeChild, LocalDriveNodeWithAsset, LocalDriveNodeWithChildren, LocalNode, PresignLocalDriveFileInput, UpdateLocalDriveNodeInput, UploadLocalDriveFileSchema, createLocalDriveFolderInputSchema, getLocalDriveNodesByParentIdInputSchema, getLocalFileURLSchema, getLocalFileURLSchemaDefaults, listLocalDriveFlatInputSchema, listLocalDriveTreeInputSchema, localDriveFileNodeSchema, localDriveFlatResponseSchema, localDriveFolderNodeSchema, localDriveNodeParentSchema, localDriveNodeSchema, localDriveNodeWithAssetSchema, localDriveNodeWithChildrenSchema, localDrivePresignUploadOutputSchema, localDriveTreeResponseSchema, presignLocalDriveFileInputSchema, updateLocalDriveNodeInputSchema, uploadLocalDriveFileInputSchema } from "./root/lib/validators.mjs";
5
+ import { localDriveColumns } from "./root/config/columns-data.mjs";
6
+ import { getLocalDriveFileUrl, inferLocalDriveNodeSubtype, isLocalDriveFile, isLocalDriveFolder, localDriveImageLoader, renderBytes, toLocalDriveNode } from "./root/lib/helpers.mjs";
7
+ import { localDriveTreeFilterSearchParams } from "./root/lib/search-params.mjs";
8
+ export { CreateLocalDriveFolderInput, CreateLocalDriveFolderSchema, GetLocalDriveNodesByParentIdInput, GetLocalDriveNodesByParentIdSchema, GetLocalFileURLSchema, ImageVariant, ListLocalDriveFlatSchema, ListLocalDriveTreeInput, ListLocalDriveTreeSchema, LocalDriveFileNode, LocalDriveFiltersInput, LocalDriveFiltersSchema, LocalDriveFolderNode, LocalDriveNode, LocalDriveNodeChild, LocalDriveNodeSubtype, LocalDriveNodeWithAsset, LocalDriveNodeWithChildren, LocalDrivePresignedUrlFiltersInput, LocalDrivePresignedUrlFiltersSchema, LocalDriveTableSortsInput, LocalDriveTableSortsSchema, LocalDriveVariantFiltersInput, LocalDriveVariantFiltersSchema, LocalNode, PresignLocalDriveFileInput, UpdateLocalDriveNodeInput, UploadLocalDriveFileSchema, createLocalDriveFolderInputSchema, deviceSizes, getLocalDriveFileUrl, getLocalDriveNodesByParentIdInputSchema, getLocalFileURLSchema, getLocalFileURLSchemaDefaults, imageSizes, imageVariants, inferLocalDriveNodeSubtype, isLocalDriveFile, isLocalDriveFolder, listLocalDriveFlatInputSchema, listLocalDriveTreeInputSchema, localDriveColumns, localDriveFileNodeSchema, localDriveFilters, localDriveFiltersParser, localDriveFiltersSchema, localDriveFlatResponseSchema, localDriveFolderNodeSchema, localDriveImageLoader, localDriveNodeParentSchema, localDriveNodeSchema, localDriveNodeWithAssetSchema, localDriveNodeWithChildrenSchema, localDrivePresignUploadOutputSchema, localDrivePresignedUrlFilters, localDrivePresignedUrlFiltersParser, localDrivePresignedUrlFiltersSchema, localDriveTableSorts, localDriveTableSortsParser, localDriveTableSortsSchema, localDriveTreeFilterSearchParams, localDriveTreeResponseSchema, localDriveVariantFilters, localDriveVariantFiltersParser, localDriveVariantFiltersSchema, nodeSubtypes, presignLocalDriveFileInputSchema, renderBytes, toLocalDriveNode, updateLocalDriveNodeInputSchema, uploadLocalDriveFileInputSchema };
package/dist/index.mjs ADDED
@@ -0,0 +1,8 @@
1
+ import { localDriveColumns } from "./root/config/columns-data.mjs";
2
+ import { deviceSizes, imageSizes, imageVariants, nodeSubtypes } from "./root/lib/constants.mjs";
3
+ import { localDriveFilters, localDriveFiltersParser, localDriveFiltersSchema, localDrivePresignedUrlFilters, localDrivePresignedUrlFiltersParser, localDrivePresignedUrlFiltersSchema, localDriveVariantFilters, localDriveVariantFiltersParser, localDriveVariantFiltersSchema } from "./root/config/filters.mjs";
4
+ import { localDriveTableSorts, localDriveTableSortsParser, localDriveTableSortsSchema } from "./root/config/sorting.mjs";
5
+ import { getLocalDriveFileUrl, inferLocalDriveNodeSubtype, isLocalDriveFile, isLocalDriveFolder, localDriveImageLoader, renderBytes, toLocalDriveNode } from "./root/lib/helpers.mjs";
6
+ import { localDriveTreeFilterSearchParams } from "./root/lib/search-params.mjs";
7
+ import { createLocalDriveFolderInputSchema, getLocalDriveNodesByParentIdInputSchema, getLocalFileURLSchema, getLocalFileURLSchemaDefaults, listLocalDriveFlatInputSchema, listLocalDriveTreeInputSchema, localDriveFileNodeSchema, localDriveFlatResponseSchema, localDriveFolderNodeSchema, localDriveNodeParentSchema, localDriveNodeSchema, localDriveNodeWithAssetSchema, localDriveNodeWithChildrenSchema, localDrivePresignUploadOutputSchema, localDriveTreeResponseSchema, presignLocalDriveFileInputSchema, updateLocalDriveNodeInputSchema, uploadLocalDriveFileInputSchema } from "./root/lib/validators.mjs";
8
+ export { createLocalDriveFolderInputSchema, deviceSizes, getLocalDriveFileUrl, getLocalDriveNodesByParentIdInputSchema, getLocalFileURLSchema, getLocalFileURLSchemaDefaults, imageSizes, imageVariants, inferLocalDriveNodeSubtype, isLocalDriveFile, isLocalDriveFolder, listLocalDriveFlatInputSchema, listLocalDriveTreeInputSchema, localDriveColumns, localDriveFileNodeSchema, localDriveFilters, localDriveFiltersParser, localDriveFiltersSchema, localDriveFlatResponseSchema, localDriveFolderNodeSchema, localDriveImageLoader, localDriveNodeParentSchema, localDriveNodeSchema, localDriveNodeWithAssetSchema, localDriveNodeWithChildrenSchema, localDrivePresignUploadOutputSchema, localDrivePresignedUrlFilters, localDrivePresignedUrlFiltersParser, localDrivePresignedUrlFiltersSchema, localDriveTableSorts, localDriveTableSortsParser, localDriveTableSortsSchema, localDriveTreeFilterSearchParams, localDriveTreeResponseSchema, localDriveVariantFilters, localDriveVariantFiltersParser, localDriveVariantFiltersSchema, nodeSubtypes, presignLocalDriveFileInputSchema, renderBytes, toLocalDriveNode, updateLocalDriveNodeInputSchema, uploadLocalDriveFileInputSchema };
@@ -0,0 +1,11 @@
1
+ import { UpdateLocalDriveNodeInput } from "../lib/validators.mjs";
2
+ import { DefaultError, MutationOptions } from "@tanstack/react-query";
3
+ //#region src/root/components/command-file-update.d.ts
4
+ type LocalDriveFileUpdateCommandProps<TData = unknown, TError = DefaultError, TVariables = unknown, TOnMutateResult = unknown> = {
5
+ defaultValues: Partial<UpdateLocalDriveNodeInput>;
6
+ variables: (values: UpdateLocalDriveNodeInput) => TVariables;
7
+ mutation: MutationOptions<TData, TError, TVariables, TOnMutateResult>;
8
+ };
9
+ declare function LocalDriveFileUpdateCommand<TData = unknown, TError = DefaultError, TVariables = unknown, TOnMutateResult = unknown>({ defaultValues, variables, mutation }: LocalDriveFileUpdateCommandProps<TData, TError, TVariables, TOnMutateResult>): import("react").JSX.Element;
10
+ //#endregion
11
+ export { LocalDriveFileUpdateCommand, LocalDriveFileUpdateCommandProps };
@@ -0,0 +1,44 @@
1
+ "use client";
2
+ import { updateLocalDriveNodeInputSchema } from "../lib/validators.mjs";
3
+ import { FilePen } from "lucide-react";
4
+ import { jsx, jsxs } from "react/jsx-runtime";
5
+ import { standardSchemaResolver } from "@hookform/resolvers/standard-schema";
6
+ import { CommandFormDialog, CommandFormDialogCancel, CommandFormDialogContent, CommandFormDialogFields, CommandFormDialogFooter, CommandFormDialogHeader, CommandFormDialogSubmit, CommandFormDialogTitle, CommandFormDialogTrigger, CommandLabel } from "@tulip-systems/commands/client";
7
+ import { Input } from "@tulip-systems/ui/input";
8
+ import { Form, FormControl, FormField, FormItem, FormLabel, FormMessage } from "@tulip-systems/ui/react-hook-form";
9
+ import { useForm } from "react-hook-form";
10
+ //#region src/root/components/command-file-update.tsx
11
+ function LocalDriveFileUpdateCommand({ defaultValues, variables, mutation }) {
12
+ const form = useForm({
13
+ resolver: standardSchemaResolver(updateLocalDriveNodeInputSchema),
14
+ defaultValues
15
+ });
16
+ return /* @__PURE__ */ jsx(Form, {
17
+ ...form,
18
+ children: /* @__PURE__ */ jsxs(CommandFormDialog, { children: [/* @__PURE__ */ jsxs(CommandFormDialogTrigger, {
19
+ label: "Wijzigen",
20
+ children: [/* @__PURE__ */ jsx(FilePen, { className: "size-4" }), /* @__PURE__ */ jsx(CommandLabel, {})]
21
+ }), /* @__PURE__ */ jsxs(CommandFormDialogContent, {
22
+ variables,
23
+ mutation,
24
+ children: [
25
+ /* @__PURE__ */ jsx(CommandFormDialogHeader, { children: /* @__PURE__ */ jsx(CommandFormDialogTitle, { children: "Bestand wijzigen" }) }),
26
+ /* @__PURE__ */ jsx(CommandFormDialogFields, { children: /* @__PURE__ */ jsx(FormField, {
27
+ control: form.control,
28
+ name: "name",
29
+ render: ({ field }) => /* @__PURE__ */ jsxs(FormItem, { children: [
30
+ /* @__PURE__ */ jsx(FormLabel, { children: "Naam" }),
31
+ /* @__PURE__ */ jsx(FormControl, { children: /* @__PURE__ */ jsx(Input, {
32
+ ...field,
33
+ value: field.value ?? ""
34
+ }) }),
35
+ /* @__PURE__ */ jsx(FormMessage, {})
36
+ ] })
37
+ }) }),
38
+ /* @__PURE__ */ jsxs(CommandFormDialogFooter, { children: [/* @__PURE__ */ jsx(CommandFormDialogCancel, { children: "Annuleren" }), /* @__PURE__ */ jsx(CommandFormDialogSubmit, { children: "Opslaan" })] })
39
+ ]
40
+ })] })
41
+ });
42
+ }
43
+ //#endregion
44
+ export { LocalDriveFileUpdateCommand };
@@ -0,0 +1,5 @@
1
+ import { ComponentProps } from "react";
2
+ //#region src/root/components/command-file-upload.d.ts
3
+ declare function LocalDriveFilesUploadCommand({ className, ...props }: ComponentProps<"div">): import("react").JSX.Element;
4
+ //#endregion
5
+ export { LocalDriveFilesUploadCommand };
@@ -0,0 +1,31 @@
1
+ "use client";
2
+ import { useLocalDriveUploadZone } from "./upload-zone-context.client.mjs";
3
+ import { UploadIcon } from "lucide-react";
4
+ import { jsx, jsxs } from "react/jsx-runtime";
5
+ import { CommandEmpty, CommandLabel } from "@tulip-systems/commands/client";
6
+ import { Input } from "@tulip-systems/ui/input";
7
+ import { cn } from "@tulip-systems/ui/cn";
8
+ //#region src/root/components/command-file-upload.tsx
9
+ function LocalDriveFilesUploadCommand({ className, ...props }) {
10
+ const { onUpload } = useLocalDriveUploadZone();
11
+ return /* @__PURE__ */ jsxs(CommandEmpty, {
12
+ ...props,
13
+ className: cn("relative gap-2", className),
14
+ label: "Upload",
15
+ children: [
16
+ /* @__PURE__ */ jsx(UploadIcon, { className: "h-3 w-3" }),
17
+ /* @__PURE__ */ jsx(CommandLabel, {}),
18
+ /* @__PURE__ */ jsx(Input, {
19
+ type: "file",
20
+ className: "absolute inset-0 z-10 h-full w-full cursor-pointer opacity-0",
21
+ multiple: true,
22
+ onChange: (event) => {
23
+ if (!event.target.files) return;
24
+ Array.from(event.target.files).forEach(onUpload);
25
+ }
26
+ })
27
+ ]
28
+ });
29
+ }
30
+ //#endregion
31
+ export { LocalDriveFilesUploadCommand };
@@ -0,0 +1,11 @@
1
+ import { CreateLocalDriveFolderInput } from "../lib/validators.mjs";
2
+ import { DefaultError, MutationOptions } from "@tanstack/react-query";
3
+ //#region src/root/components/command-folder-create.d.ts
4
+ type LocalDriveFoldersCreateCommandProps<TData = unknown, TError = DefaultError, TVariables = unknown, TOnMutateResult = unknown> = {
5
+ defaultValues?: Partial<CreateLocalDriveFolderInput>;
6
+ variables: (values: CreateLocalDriveFolderInput) => TVariables;
7
+ mutation: MutationOptions<TData, TError, TVariables, TOnMutateResult>;
8
+ };
9
+ declare function LocalDriveFoldersCreateCommand<TData = unknown, TError = DefaultError, TVariables = unknown, TOnMutateResult = unknown>({ defaultValues, variables, mutation }: LocalDriveFoldersCreateCommandProps<TData, TError, TVariables, TOnMutateResult>): import("react").JSX.Element;
10
+ //#endregion
11
+ export { LocalDriveFoldersCreateCommand, LocalDriveFoldersCreateCommandProps };