@unciatech/file-manager 0.0.26 → 0.0.27
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/dist/index.cjs +470 -512
- package/dist/index.js +464 -506
- package/dist/styles.css +1 -3
- package/package.json +2 -2
- package/styles.css +1 -3
package/dist/index.js
CHANGED
|
@@ -3209,7 +3209,7 @@ function VideoCardMetadata({ file }) {
|
|
|
3209
3209
|
|
|
3210
3210
|
// components/cards/audio-card.tsx
|
|
3211
3211
|
import { jsx as jsx53, jsxs as jsxs37 } from "react/jsx-runtime";
|
|
3212
|
-
function AudioCard({ className }) {
|
|
3212
|
+
function AudioCard({ file, className }) {
|
|
3213
3213
|
return /* @__PURE__ */ jsx53("div", { className: "w-full h-full flex items-center justify-center bg-transparent", children: /* @__PURE__ */ jsx53("div", { className: "text-center", children: /* @__PURE__ */ jsx53("div", { className: "text-4xl", children: /* @__PURE__ */ jsx53(Icons, { type: "audio", className }) }) }) });
|
|
3214
3214
|
}
|
|
3215
3215
|
function AudioCardMetadata({ file }) {
|
|
@@ -3336,9 +3336,12 @@ function UploadModal() {
|
|
|
3336
3336
|
const newUploadItems = newFiles.map((file) => {
|
|
3337
3337
|
const existingFile = uploadItems.find((existing) => existing.id === file.id);
|
|
3338
3338
|
if (existingFile) {
|
|
3339
|
-
return __spreadValues(__spreadValues({}, existingFile), file)
|
|
3339
|
+
return __spreadProps(__spreadValues(__spreadValues({}, existingFile), file), {
|
|
3340
|
+
file: file.file
|
|
3341
|
+
});
|
|
3340
3342
|
} else {
|
|
3341
3343
|
return __spreadProps(__spreadValues({}, file), {
|
|
3344
|
+
file: file.file,
|
|
3342
3345
|
progress: 100,
|
|
3343
3346
|
status: "completed"
|
|
3344
3347
|
});
|
|
@@ -4093,61 +4096,8 @@ function MoveModal() {
|
|
|
4093
4096
|
// components/modals/image-modal.tsx
|
|
4094
4097
|
import { useState as useState10 } from "react";
|
|
4095
4098
|
|
|
4096
|
-
// components/ui/scroll-area.tsx
|
|
4097
|
-
import { ScrollArea as ScrollAreaPrimitive } from "radix-ui";
|
|
4098
|
-
import { jsx as jsx61, jsxs as jsxs42 } from "react/jsx-runtime";
|
|
4099
|
-
function ScrollArea(_a) {
|
|
4100
|
-
var _b = _a, {
|
|
4101
|
-
className,
|
|
4102
|
-
viewportClassName,
|
|
4103
|
-
children,
|
|
4104
|
-
viewportRef
|
|
4105
|
-
} = _b, props = __objRest(_b, [
|
|
4106
|
-
"className",
|
|
4107
|
-
"viewportClassName",
|
|
4108
|
-
"children",
|
|
4109
|
-
"viewportRef"
|
|
4110
|
-
]);
|
|
4111
|
-
return /* @__PURE__ */ jsxs42(ScrollAreaPrimitive.Root, __spreadProps(__spreadValues({ "data-slot": "scroll-area", className: cn("relative overflow-hidden", className) }, props), { children: [
|
|
4112
|
-
/* @__PURE__ */ jsx61(
|
|
4113
|
-
ScrollAreaPrimitive.Viewport,
|
|
4114
|
-
{
|
|
4115
|
-
ref: viewportRef,
|
|
4116
|
-
className: cn("h-full w-full rounded-[inherit]", viewportClassName),
|
|
4117
|
-
children
|
|
4118
|
-
}
|
|
4119
|
-
),
|
|
4120
|
-
/* @__PURE__ */ jsx61(ScrollBar, {}),
|
|
4121
|
-
/* @__PURE__ */ jsx61(ScrollAreaPrimitive.Corner, {})
|
|
4122
|
-
] }));
|
|
4123
|
-
}
|
|
4124
|
-
function ScrollBar(_a) {
|
|
4125
|
-
var _b = _a, {
|
|
4126
|
-
className,
|
|
4127
|
-
orientation = "vertical"
|
|
4128
|
-
} = _b, props = __objRest(_b, [
|
|
4129
|
-
"className",
|
|
4130
|
-
"orientation"
|
|
4131
|
-
]);
|
|
4132
|
-
return /* @__PURE__ */ jsx61(
|
|
4133
|
-
ScrollAreaPrimitive.ScrollAreaScrollbar,
|
|
4134
|
-
__spreadProps(__spreadValues({
|
|
4135
|
-
"data-slot": "scroll-area-scrollbar",
|
|
4136
|
-
orientation,
|
|
4137
|
-
className: cn(
|
|
4138
|
-
"flex touch-none select-none transition-colors",
|
|
4139
|
-
orientation === "vertical" && "h-full w-2 border-l border-l-transparent p-[1px]",
|
|
4140
|
-
orientation === "horizontal" && "h-2 flex-col border-t border-t-transparent p-[1px]",
|
|
4141
|
-
className
|
|
4142
|
-
)
|
|
4143
|
-
}, props), {
|
|
4144
|
-
children: /* @__PURE__ */ jsx61(ScrollAreaPrimitive.ScrollAreaThumb, { className: "relative flex-1 rounded-full bg-border" })
|
|
4145
|
-
})
|
|
4146
|
-
);
|
|
4147
|
-
}
|
|
4148
|
-
|
|
4149
4099
|
// components/file-details/details-layout.tsx
|
|
4150
|
-
import { jsx as
|
|
4100
|
+
import { jsx as jsx61, jsxs as jsxs42 } from "react/jsx-runtime";
|
|
4151
4101
|
function DetailsLayout({
|
|
4152
4102
|
title,
|
|
4153
4103
|
open,
|
|
@@ -4156,26 +4106,34 @@ function DetailsLayout({
|
|
|
4156
4106
|
metadataSection,
|
|
4157
4107
|
footer
|
|
4158
4108
|
}) {
|
|
4159
|
-
return /* @__PURE__ */
|
|
4160
|
-
|
|
4161
|
-
|
|
4162
|
-
|
|
4163
|
-
|
|
4164
|
-
|
|
4165
|
-
|
|
4166
|
-
|
|
4167
|
-
|
|
4168
|
-
|
|
4169
|
-
|
|
4170
|
-
|
|
4171
|
-
|
|
4172
|
-
|
|
4109
|
+
return /* @__PURE__ */ jsx61(Dialog, { open, onOpenChange: (isOpen) => !isOpen && onClose(), children: /* @__PURE__ */ jsxs42(
|
|
4110
|
+
DialogContent,
|
|
4111
|
+
{
|
|
4112
|
+
className: "p-0 max-w-6xl w-full m-auto h-[80vh] flex flex-col overflow-hidden",
|
|
4113
|
+
variant: "fullscreen",
|
|
4114
|
+
showCloseButton: false,
|
|
4115
|
+
children: [
|
|
4116
|
+
/* @__PURE__ */ jsxs42(DialogHeader, { className: "pt-5 pb-3 border-b border-border shrink-0", children: [
|
|
4117
|
+
/* @__PURE__ */ jsx61(DialogTitle, { className: "px-6 text-base", children: /* @__PURE__ */ jsxs42("div", { className: "flex w-full items-center justify-between gap-2", children: [
|
|
4118
|
+
/* @__PURE__ */ jsx61("span", { className: "truncate", children: title }),
|
|
4119
|
+
/* @__PURE__ */ jsx61(CloseButton, { onClick: onClose })
|
|
4120
|
+
] }) }),
|
|
4121
|
+
/* @__PURE__ */ jsx61(DialogDescription, {})
|
|
4122
|
+
] }),
|
|
4123
|
+
/* @__PURE__ */ jsx61("div", { className: "flex-1 min-h-0", children: /* @__PURE__ */ jsxs42("div", { className: "grid grid-cols-1 lg:grid-cols-2 h-full", children: [
|
|
4124
|
+
/* @__PURE__ */ jsx61("div", { className: "p-6 border-b lg:border-b-0 lg:border-r border-slate-200 dark:border-zinc-700 overflow-auto", children: previewSection }),
|
|
4125
|
+
/* @__PURE__ */ jsx61("div", { className: "p-6 overflow-auto", children: metadataSection })
|
|
4126
|
+
] }) }),
|
|
4127
|
+
/* @__PURE__ */ jsx61(DialogFooter, { className: "px-6 py-4 border-t border-border shrink-0", children: footer })
|
|
4128
|
+
]
|
|
4129
|
+
}
|
|
4130
|
+
) });
|
|
4173
4131
|
}
|
|
4174
4132
|
|
|
4175
4133
|
// components/file-details/file-action-buttons.tsx
|
|
4176
4134
|
import { toast as toast3 } from "sonner";
|
|
4177
4135
|
import { useState as useState9 } from "react";
|
|
4178
|
-
import { jsx as
|
|
4136
|
+
import { jsx as jsx62 } from "react/jsx-runtime";
|
|
4179
4137
|
function FileDeleteButton({ file }) {
|
|
4180
4138
|
const { provider, setFileDetailsModalFile, refreshData } = useFileManager();
|
|
4181
4139
|
const [deleting, setDeleting] = useState9(false);
|
|
@@ -4193,7 +4151,7 @@ function FileDeleteButton({ file }) {
|
|
|
4193
4151
|
setDeleting(false);
|
|
4194
4152
|
}
|
|
4195
4153
|
};
|
|
4196
|
-
return /* @__PURE__ */
|
|
4154
|
+
return /* @__PURE__ */ jsx62(
|
|
4197
4155
|
Button,
|
|
4198
4156
|
{
|
|
4199
4157
|
variant: "outline",
|
|
@@ -4203,7 +4161,7 @@ function FileDeleteButton({ file }) {
|
|
|
4203
4161
|
className: "border border-gray-200 dark:border-zinc-700 bg-white dark:bg-zinc-900 hover:text-red-600 dark:hover:text-red-400 hover:border-red-300 dark:hover:border-red-700 hover:bg-red-50 dark:hover:bg-red-900/40 active:scale-95 transition-all duration-200",
|
|
4204
4162
|
onClick: handleDelete,
|
|
4205
4163
|
disabled: deleting,
|
|
4206
|
-
children: deleting ? /* @__PURE__ */
|
|
4164
|
+
children: deleting ? /* @__PURE__ */ jsx62(Loader2Icon, { className: "size-5 animate-spin" }) : /* @__PURE__ */ jsx62(TrashIcon, { className: "size-5" })
|
|
4207
4165
|
}
|
|
4208
4166
|
);
|
|
4209
4167
|
}
|
|
@@ -4225,7 +4183,7 @@ function FileDownloadButton({ file }) {
|
|
|
4225
4183
|
setDownloading(false);
|
|
4226
4184
|
}
|
|
4227
4185
|
};
|
|
4228
|
-
return /* @__PURE__ */
|
|
4186
|
+
return /* @__PURE__ */ jsx62(
|
|
4229
4187
|
Button,
|
|
4230
4188
|
{
|
|
4231
4189
|
variant: "outline",
|
|
@@ -4235,7 +4193,7 @@ function FileDownloadButton({ file }) {
|
|
|
4235
4193
|
className: "border border-gray-200 dark:border-zinc-700 bg-white dark:bg-zinc-900 hover:text-blue-600 dark:hover:text-blue-400 hover:border-blue-300 dark:hover:border-blue-700 hover:bg-blue-50 dark:hover:bg-blue-900/40 active:scale-95 transition-all duration-200",
|
|
4236
4194
|
title: "Download",
|
|
4237
4195
|
disabled: downloading,
|
|
4238
|
-
children: downloading ? /* @__PURE__ */
|
|
4196
|
+
children: downloading ? /* @__PURE__ */ jsx62(Loader2Icon, { className: "size-5 animate-spin" }) : /* @__PURE__ */ jsx62(DownloadIcon, { className: "size-5", strokeWidth: 2.5 })
|
|
4239
4197
|
}
|
|
4240
4198
|
);
|
|
4241
4199
|
}
|
|
@@ -4253,7 +4211,7 @@ function FileCopyLinkButton({ file }) {
|
|
|
4253
4211
|
toast3.error("Failed to copy link");
|
|
4254
4212
|
}
|
|
4255
4213
|
};
|
|
4256
|
-
return /* @__PURE__ */
|
|
4214
|
+
return /* @__PURE__ */ jsx62(
|
|
4257
4215
|
Button,
|
|
4258
4216
|
{
|
|
4259
4217
|
variant: "outline",
|
|
@@ -4264,12 +4222,12 @@ function FileCopyLinkButton({ file }) {
|
|
|
4264
4222
|
${copied ? "text-green-700 dark:text-green-400 border-green-400 dark:border-green-700 bg-green-100 dark:bg-green-900/40 font-bold" : "hover:text-orange-600 dark:hover:text-orange-400 hover:border-orange-300 dark:hover:border-orange-700 hover:bg-orange-50 dark:hover:bg-orange-900/40"}`,
|
|
4265
4223
|
title: "Copy Link",
|
|
4266
4224
|
disabled: copied,
|
|
4267
|
-
children: copied ? /* @__PURE__ */
|
|
4225
|
+
children: copied ? /* @__PURE__ */ jsx62(CheckIcon, { className: "size-5 animate-in zoom-in duration-200", strokeWidth: 3 }) : /* @__PURE__ */ jsx62(LinkIcon, { className: "size-5", strokeWidth: 2.5 })
|
|
4268
4226
|
}
|
|
4269
4227
|
);
|
|
4270
4228
|
}
|
|
4271
4229
|
function FileFullscreenButton({ onFullscreen }) {
|
|
4272
|
-
return /* @__PURE__ */
|
|
4230
|
+
return /* @__PURE__ */ jsx62(
|
|
4273
4231
|
Button,
|
|
4274
4232
|
{
|
|
4275
4233
|
variant: "outline",
|
|
@@ -4278,14 +4236,14 @@ function FileFullscreenButton({ onFullscreen }) {
|
|
|
4278
4236
|
onClick: onFullscreen,
|
|
4279
4237
|
className: "border border-gray-200 dark:border-zinc-700 bg-white dark:bg-zinc-900 hover:text-purple-600 dark:hover:text-purple-400 hover:border-purple-300 dark:hover:border-purple-700 hover:bg-purple-50 dark:hover:bg-purple-900/40 active:scale-95 transition-all duration-200",
|
|
4280
4238
|
title: "Fullscreen",
|
|
4281
|
-
children: /* @__PURE__ */
|
|
4239
|
+
children: /* @__PURE__ */ jsx62(FullscreenIcon, { className: "size-5", strokeWidth: 1 })
|
|
4282
4240
|
}
|
|
4283
4241
|
);
|
|
4284
4242
|
}
|
|
4285
4243
|
|
|
4286
4244
|
// components/ui/textarea.tsx
|
|
4287
4245
|
import { cva as cva5 } from "class-variance-authority";
|
|
4288
|
-
import { jsx as
|
|
4246
|
+
import { jsx as jsx63 } from "react/jsx-runtime";
|
|
4289
4247
|
var textareaVariants = cva5(
|
|
4290
4248
|
`
|
|
4291
4249
|
w-full bg-background border border-input bg-background text-foreground shadow-xs shadow-black/5 transition-[color,box-shadow]
|
|
@@ -4314,13 +4272,13 @@ function Textarea(_a) {
|
|
|
4314
4272
|
"className",
|
|
4315
4273
|
"variant"
|
|
4316
4274
|
]);
|
|
4317
|
-
return /* @__PURE__ */
|
|
4275
|
+
return /* @__PURE__ */ jsx63("textarea", __spreadValues({ "data-slot": "textarea", className: cn(textareaVariants({ variant }), className) }, props));
|
|
4318
4276
|
}
|
|
4319
4277
|
|
|
4320
4278
|
// components/ui/label.tsx
|
|
4321
4279
|
import { cva as cva6 } from "class-variance-authority";
|
|
4322
4280
|
import { Label as LabelPrimitive } from "radix-ui";
|
|
4323
|
-
import { jsx as
|
|
4281
|
+
import { jsx as jsx64 } from "react/jsx-runtime";
|
|
4324
4282
|
var labelVariants = cva6(
|
|
4325
4283
|
"text-sm leading-none text-foreground peer-disabled:cursor-not-allowed peer-disabled:opacity-50",
|
|
4326
4284
|
{
|
|
@@ -4343,7 +4301,7 @@ function Label(_a) {
|
|
|
4343
4301
|
"className",
|
|
4344
4302
|
"variant"
|
|
4345
4303
|
]);
|
|
4346
|
-
return /* @__PURE__ */
|
|
4304
|
+
return /* @__PURE__ */ jsx64(LabelPrimitive.Root, __spreadValues({ "data-slot": "label", className: cn(labelVariants({ variant }), className) }, props));
|
|
4347
4305
|
}
|
|
4348
4306
|
|
|
4349
4307
|
// lib/format-utils.ts
|
|
@@ -4363,7 +4321,7 @@ function formatDuration(seconds) {
|
|
|
4363
4321
|
// components/ui/field.tsx
|
|
4364
4322
|
import { useMemo as useMemo3 } from "react";
|
|
4365
4323
|
import { cva as cva7 } from "class-variance-authority";
|
|
4366
|
-
import { jsx as
|
|
4324
|
+
import { jsx as jsx65, jsxs as jsxs43 } from "react/jsx-runtime";
|
|
4367
4325
|
var fieldVariants = cva7(
|
|
4368
4326
|
"group/field flex w-full gap-3 data-[invalid=true]:text-destructive",
|
|
4369
4327
|
{
|
|
@@ -4395,7 +4353,7 @@ function Field(_a) {
|
|
|
4395
4353
|
"className",
|
|
4396
4354
|
"orientation"
|
|
4397
4355
|
]);
|
|
4398
|
-
return /* @__PURE__ */
|
|
4356
|
+
return /* @__PURE__ */ jsx65(
|
|
4399
4357
|
"div",
|
|
4400
4358
|
__spreadValues({
|
|
4401
4359
|
role: "group",
|
|
@@ -4411,7 +4369,7 @@ function FieldLabel(_a) {
|
|
|
4411
4369
|
} = _b, props = __objRest(_b, [
|
|
4412
4370
|
"className"
|
|
4413
4371
|
]);
|
|
4414
|
-
return /* @__PURE__ */
|
|
4372
|
+
return /* @__PURE__ */ jsx65(
|
|
4415
4373
|
Label,
|
|
4416
4374
|
__spreadValues({
|
|
4417
4375
|
"data-slot": "field-label",
|
|
@@ -4427,10 +4385,10 @@ function FieldLabel(_a) {
|
|
|
4427
4385
|
|
|
4428
4386
|
// components/ui/input-group.tsx
|
|
4429
4387
|
import { cva as cva8 } from "class-variance-authority";
|
|
4430
|
-
import { jsx as
|
|
4388
|
+
import { jsx as jsx66 } from "react/jsx-runtime";
|
|
4431
4389
|
function InputGroup(_a) {
|
|
4432
4390
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
4433
|
-
return /* @__PURE__ */
|
|
4391
|
+
return /* @__PURE__ */ jsx66(
|
|
4434
4392
|
"div",
|
|
4435
4393
|
__spreadValues({
|
|
4436
4394
|
"data-slot": "input-group",
|
|
@@ -4476,7 +4434,7 @@ function InputGroupAddon(_a) {
|
|
|
4476
4434
|
"className",
|
|
4477
4435
|
"align"
|
|
4478
4436
|
]);
|
|
4479
|
-
return /* @__PURE__ */
|
|
4437
|
+
return /* @__PURE__ */ jsx66(
|
|
4480
4438
|
"div",
|
|
4481
4439
|
__spreadValues({
|
|
4482
4440
|
role: "group",
|
|
@@ -4511,7 +4469,7 @@ var inputGroupButtonVariants = cva8(
|
|
|
4511
4469
|
);
|
|
4512
4470
|
function InputGroupText(_a) {
|
|
4513
4471
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
4514
|
-
return /* @__PURE__ */
|
|
4472
|
+
return /* @__PURE__ */ jsx66(
|
|
4515
4473
|
"span",
|
|
4516
4474
|
__spreadValues({
|
|
4517
4475
|
className: cn(
|
|
@@ -4527,7 +4485,7 @@ function InputGroupInput(_a) {
|
|
|
4527
4485
|
} = _b, props = __objRest(_b, [
|
|
4528
4486
|
"className"
|
|
4529
4487
|
]);
|
|
4530
|
-
return /* @__PURE__ */
|
|
4488
|
+
return /* @__PURE__ */ jsx66(
|
|
4531
4489
|
Input,
|
|
4532
4490
|
__spreadValues({
|
|
4533
4491
|
"data-slot": "input-group-control",
|
|
@@ -4540,7 +4498,7 @@ function InputGroupInput(_a) {
|
|
|
4540
4498
|
}
|
|
4541
4499
|
|
|
4542
4500
|
// components/modals/image-modal.tsx
|
|
4543
|
-
import { jsx as
|
|
4501
|
+
import { jsx as jsx67, jsxs as jsxs44 } from "react/jsx-runtime";
|
|
4544
4502
|
function ImageModal({ file, onClose, onSave }) {
|
|
4545
4503
|
var _a;
|
|
4546
4504
|
const [isSaving, setIsSaving] = useState10(false);
|
|
@@ -4560,14 +4518,14 @@ function ImageModal({ file, onClose, onSave }) {
|
|
|
4560
4518
|
setIsSaving(false);
|
|
4561
4519
|
}
|
|
4562
4520
|
};
|
|
4563
|
-
const previewSection = /* @__PURE__ */
|
|
4564
|
-
/* @__PURE__ */
|
|
4565
|
-
/* @__PURE__ */
|
|
4566
|
-
/* @__PURE__ */
|
|
4567
|
-
/* @__PURE__ */
|
|
4568
|
-
/* @__PURE__ */
|
|
4521
|
+
const previewSection = /* @__PURE__ */ jsxs44("div", { className: "flex flex-col h-full", children: [
|
|
4522
|
+
/* @__PURE__ */ jsxs44("div", { className: "flex gap-2 mb-4", children: [
|
|
4523
|
+
/* @__PURE__ */ jsx67(FileDeleteButton, { file }),
|
|
4524
|
+
/* @__PURE__ */ jsx67(FileDownloadButton, { file }),
|
|
4525
|
+
/* @__PURE__ */ jsx67(FileCopyLinkButton, { file }),
|
|
4526
|
+
/* @__PURE__ */ jsx67(FileFullscreenButton, { onFullscreen: () => window.open(file.url, "_blank") })
|
|
4569
4527
|
] }),
|
|
4570
|
-
/* @__PURE__ */
|
|
4528
|
+
/* @__PURE__ */ jsx67(
|
|
4571
4529
|
"div",
|
|
4572
4530
|
{
|
|
4573
4531
|
className: "flex-1 flex items-center justify-center bg-gray-50 rounded-lg overflow-hidden",
|
|
@@ -4581,7 +4539,7 @@ function ImageModal({ file, onClose, onSave }) {
|
|
|
4581
4539
|
backgroundSize: "20px 20px",
|
|
4582
4540
|
backgroundPosition: "0 0, 0 10px, 10px -10px, -10px 0px"
|
|
4583
4541
|
},
|
|
4584
|
-
children: /* @__PURE__ */
|
|
4542
|
+
children: /* @__PURE__ */ jsx67(
|
|
4585
4543
|
"img",
|
|
4586
4544
|
{
|
|
4587
4545
|
src: file.previewUrl || file.url,
|
|
@@ -4592,36 +4550,36 @@ function ImageModal({ file, onClose, onSave }) {
|
|
|
4592
4550
|
}
|
|
4593
4551
|
)
|
|
4594
4552
|
] });
|
|
4595
|
-
const metadataSection = /* @__PURE__ */
|
|
4596
|
-
/* @__PURE__ */
|
|
4597
|
-
/* @__PURE__ */
|
|
4598
|
-
/* @__PURE__ */
|
|
4599
|
-
/* @__PURE__ */
|
|
4553
|
+
const metadataSection = /* @__PURE__ */ jsxs44("div", { className: "space-y-6", children: [
|
|
4554
|
+
/* @__PURE__ */ jsxs44("div", { className: "grid grid-cols-2 gap-4", children: [
|
|
4555
|
+
/* @__PURE__ */ jsxs44("div", { children: [
|
|
4556
|
+
/* @__PURE__ */ jsx67("p", { className: "text-xs font-medium text-muted-foreground tracking-wide mb-1", children: "Size" }),
|
|
4557
|
+
/* @__PURE__ */ jsx67("p", { className: "text-xs font-bold text-primary", children: getFileSize(file.size) })
|
|
4600
4558
|
] }),
|
|
4601
|
-
/* @__PURE__ */
|
|
4602
|
-
/* @__PURE__ */
|
|
4603
|
-
/* @__PURE__ */
|
|
4559
|
+
/* @__PURE__ */ jsxs44("div", { children: [
|
|
4560
|
+
/* @__PURE__ */ jsx67("p", { className: "text-xs font-medium text-muted-foreground tracking-wide mb-1", children: "Dimensions" }),
|
|
4561
|
+
/* @__PURE__ */ jsx67("p", { className: "text-xs font-bold text-primary", children: file.width && file.height ? `${file.width}\xD7${file.height}` : "N/A" })
|
|
4604
4562
|
] }),
|
|
4605
|
-
/* @__PURE__ */
|
|
4606
|
-
/* @__PURE__ */
|
|
4607
|
-
/* @__PURE__ */
|
|
4563
|
+
/* @__PURE__ */ jsxs44("div", { children: [
|
|
4564
|
+
/* @__PURE__ */ jsx67("p", { className: "text-xs font-medium text-muted-foreground tracking-wide mb-1", children: "Date" }),
|
|
4565
|
+
/* @__PURE__ */ jsx67("p", { className: "text-xs font-bold text-primary", children: formatDate(file.createdAt) })
|
|
4608
4566
|
] }),
|
|
4609
|
-
/* @__PURE__ */
|
|
4610
|
-
/* @__PURE__ */
|
|
4611
|
-
/* @__PURE__ */
|
|
4567
|
+
/* @__PURE__ */ jsxs44("div", { children: [
|
|
4568
|
+
/* @__PURE__ */ jsx67("p", { className: "text-xs font-medium text-muted-foreground tracking-wide mb-1", children: "Extension" }),
|
|
4569
|
+
/* @__PURE__ */ jsx67("p", { className: "text-xs font-bold text-primary", children: ((_a = file.ext) == null ? void 0 : _a.replace(".", "")) || "N/A" })
|
|
4612
4570
|
] })
|
|
4613
4571
|
] }),
|
|
4614
|
-
/* @__PURE__ */
|
|
4615
|
-
/* @__PURE__ */
|
|
4616
|
-
/* @__PURE__ */
|
|
4617
|
-
/* @__PURE__ */
|
|
4618
|
-
/* @__PURE__ */
|
|
4619
|
-
/* @__PURE__ */
|
|
4572
|
+
/* @__PURE__ */ jsxs44("div", { className: "space-y-4 pt-4 border-t border-border", children: [
|
|
4573
|
+
/* @__PURE__ */ jsx67("div", { className: "space-y-2", children: /* @__PURE__ */ jsxs44(Field, { className: "gap-0", children: [
|
|
4574
|
+
/* @__PURE__ */ jsx67(FieldLabel, { htmlFor: "fileName", children: "File name" }),
|
|
4575
|
+
/* @__PURE__ */ jsxs44(InputGroup, { children: [
|
|
4576
|
+
/* @__PURE__ */ jsx67(InputGroupInput, { id: "fileName", placeholder: "Enter file name", value: fileName.replace(file.ext || "", ""), onChange: (e) => setFileName(e.target.value) }),
|
|
4577
|
+
/* @__PURE__ */ jsx67(InputGroupAddon, { align: "inline-end", className: "pr-1", children: /* @__PURE__ */ jsx67(InputGroupText, { className: "font-bold bg-accent rounded-lg py-1 px-3", children: file.ext }) })
|
|
4620
4578
|
] })
|
|
4621
4579
|
] }) }),
|
|
4622
|
-
/* @__PURE__ */
|
|
4623
|
-
/* @__PURE__ */
|
|
4624
|
-
/* @__PURE__ */
|
|
4580
|
+
/* @__PURE__ */ jsxs44("div", { className: "space-y-2", children: [
|
|
4581
|
+
/* @__PURE__ */ jsx67(Label, { htmlFor: "altText", children: "Alternative text" }),
|
|
4582
|
+
/* @__PURE__ */ jsx67(
|
|
4625
4583
|
Textarea,
|
|
4626
4584
|
{
|
|
4627
4585
|
id: "altText",
|
|
@@ -4631,11 +4589,11 @@ function ImageModal({ file, onClose, onSave }) {
|
|
|
4631
4589
|
rows: 3
|
|
4632
4590
|
}
|
|
4633
4591
|
),
|
|
4634
|
-
/* @__PURE__ */
|
|
4592
|
+
/* @__PURE__ */ jsx67("p", { className: "text-xs text-muted-foreground", children: "This text will be displayed if the asset can't be shown." })
|
|
4635
4593
|
] }),
|
|
4636
|
-
/* @__PURE__ */
|
|
4637
|
-
/* @__PURE__ */
|
|
4638
|
-
/* @__PURE__ */
|
|
4594
|
+
/* @__PURE__ */ jsxs44("div", { className: "space-y-2", children: [
|
|
4595
|
+
/* @__PURE__ */ jsx67(Label, { htmlFor: "caption", children: "Caption" }),
|
|
4596
|
+
/* @__PURE__ */ jsx67(
|
|
4639
4597
|
Textarea,
|
|
4640
4598
|
{
|
|
4641
4599
|
id: "caption",
|
|
@@ -4648,14 +4606,14 @@ function ImageModal({ file, onClose, onSave }) {
|
|
|
4648
4606
|
] })
|
|
4649
4607
|
] })
|
|
4650
4608
|
] });
|
|
4651
|
-
const footer = /* @__PURE__ */
|
|
4652
|
-
/* @__PURE__ */
|
|
4653
|
-
/* @__PURE__ */
|
|
4654
|
-
isSaving && /* @__PURE__ */
|
|
4609
|
+
const footer = /* @__PURE__ */ jsxs44("div", { className: "flex w-full justify-between items-center flex-col sm:flex-row gap-2 ", children: [
|
|
4610
|
+
/* @__PURE__ */ jsx67(Button, { className: "w-full md:w-auto", variant: "outline", onClick: onClose, radius: "full", disabled: isSaving, children: "Cancel" }),
|
|
4611
|
+
/* @__PURE__ */ jsxs44(Button, { className: "w-full md:w-auto", onClick: handleSave, radius: "full", disabled: isSaving, children: [
|
|
4612
|
+
isSaving && /* @__PURE__ */ jsx67(Loader2Icon, { className: "mr-2 h-4 w-4 animate-spin" }),
|
|
4655
4613
|
"Finish"
|
|
4656
4614
|
] })
|
|
4657
4615
|
] });
|
|
4658
|
-
return /* @__PURE__ */
|
|
4616
|
+
return /* @__PURE__ */ jsx67(
|
|
4659
4617
|
DetailsLayout,
|
|
4660
4618
|
{
|
|
4661
4619
|
title: "Details",
|
|
@@ -4670,7 +4628,7 @@ function ImageModal({ file, onClose, onSave }) {
|
|
|
4670
4628
|
|
|
4671
4629
|
// components/modals/video-modal.tsx
|
|
4672
4630
|
import { useState as useState11 } from "react";
|
|
4673
|
-
import { jsx as
|
|
4631
|
+
import { jsx as jsx68, jsxs as jsxs45 } from "react/jsx-runtime";
|
|
4674
4632
|
function VideoModal({ file, onClose, onSave }) {
|
|
4675
4633
|
var _a, _b, _c;
|
|
4676
4634
|
const [isSaving, setIsSaving] = useState11(false);
|
|
@@ -4688,13 +4646,13 @@ function VideoModal({ file, onClose, onSave }) {
|
|
|
4688
4646
|
setIsSaving(false);
|
|
4689
4647
|
}
|
|
4690
4648
|
};
|
|
4691
|
-
const previewSection = /* @__PURE__ */
|
|
4692
|
-
/* @__PURE__ */
|
|
4693
|
-
/* @__PURE__ */
|
|
4694
|
-
/* @__PURE__ */
|
|
4695
|
-
/* @__PURE__ */
|
|
4649
|
+
const previewSection = /* @__PURE__ */ jsxs45("div", { className: "flex flex-col h-full", children: [
|
|
4650
|
+
/* @__PURE__ */ jsxs45("div", { className: "flex gap-2 mb-4", children: [
|
|
4651
|
+
/* @__PURE__ */ jsx68(FileDeleteButton, { file }),
|
|
4652
|
+
/* @__PURE__ */ jsx68(FileDownloadButton, { file }),
|
|
4653
|
+
/* @__PURE__ */ jsx68(FileCopyLinkButton, { file })
|
|
4696
4654
|
] }),
|
|
4697
|
-
/* @__PURE__ */
|
|
4655
|
+
/* @__PURE__ */ jsx68("div", { className: "flex-1 flex items-center justify-center bg-black rounded-lg overflow-hidden", children: /* @__PURE__ */ jsx68(
|
|
4698
4656
|
"video",
|
|
4699
4657
|
{
|
|
4700
4658
|
src: file.url,
|
|
@@ -4705,44 +4663,44 @@ function VideoModal({ file, onClose, onSave }) {
|
|
|
4705
4663
|
}
|
|
4706
4664
|
) })
|
|
4707
4665
|
] });
|
|
4708
|
-
const metadataSection = /* @__PURE__ */
|
|
4709
|
-
/* @__PURE__ */
|
|
4710
|
-
/* @__PURE__ */
|
|
4711
|
-
/* @__PURE__ */
|
|
4712
|
-
/* @__PURE__ */
|
|
4666
|
+
const metadataSection = /* @__PURE__ */ jsxs45("div", { className: "space-y-6", children: [
|
|
4667
|
+
/* @__PURE__ */ jsxs45("div", { className: "grid grid-cols-2 gap-4", children: [
|
|
4668
|
+
/* @__PURE__ */ jsxs45("div", { children: [
|
|
4669
|
+
/* @__PURE__ */ jsx68("p", { className: "text-xs font-medium text-muted-foreground uppercase tracking-wide mb-1", children: "Size" }),
|
|
4670
|
+
/* @__PURE__ */ jsx68("p", { className: "text-xs font-bold text-primary", children: getFileSize(file.size) })
|
|
4713
4671
|
] }),
|
|
4714
|
-
/* @__PURE__ */
|
|
4715
|
-
/* @__PURE__ */
|
|
4716
|
-
/* @__PURE__ */
|
|
4672
|
+
/* @__PURE__ */ jsxs45("div", { children: [
|
|
4673
|
+
/* @__PURE__ */ jsx68("p", { className: "text-xs font-medium text-muted-foreground uppercase tracking-wide mb-1", children: "Dimensions" }),
|
|
4674
|
+
/* @__PURE__ */ jsx68("p", { className: "text-xs font-bold text-primary", children: file.width && file.height ? `${file.width}\xD7${file.height}` : "N/A" })
|
|
4717
4675
|
] }),
|
|
4718
|
-
/* @__PURE__ */
|
|
4719
|
-
/* @__PURE__ */
|
|
4720
|
-
/* @__PURE__ */
|
|
4676
|
+
/* @__PURE__ */ jsxs45("div", { children: [
|
|
4677
|
+
/* @__PURE__ */ jsx68("p", { className: "text-xs font-medium text-muted-foreground uppercase tracking-wide mb-1", children: "Duration" }),
|
|
4678
|
+
/* @__PURE__ */ jsx68("p", { className: "text-xs font-bold text-primary", children: ((_a = file.metaData) == null ? void 0 : _a.duration) ? formatDuration(file.metaData.duration) : "N/A" })
|
|
4721
4679
|
] }),
|
|
4722
|
-
/* @__PURE__ */
|
|
4723
|
-
/* @__PURE__ */
|
|
4724
|
-
/* @__PURE__ */
|
|
4680
|
+
/* @__PURE__ */ jsxs45("div", { children: [
|
|
4681
|
+
/* @__PURE__ */ jsx68("p", { className: "text-xs font-medium text-muted-foreground uppercase tracking-wide mb-1", children: "Date" }),
|
|
4682
|
+
/* @__PURE__ */ jsx68("p", { className: "text-xs font-bold text-primary", children: formatDate(file.createdAt) })
|
|
4725
4683
|
] }),
|
|
4726
|
-
/* @__PURE__ */
|
|
4727
|
-
/* @__PURE__ */
|
|
4728
|
-
/* @__PURE__ */
|
|
4684
|
+
/* @__PURE__ */ jsxs45("div", { children: [
|
|
4685
|
+
/* @__PURE__ */ jsx68("p", { className: "text-xs font-medium text-muted-foreground uppercase tracking-wide mb-1", children: "Extension" }),
|
|
4686
|
+
/* @__PURE__ */ jsx68("p", { className: "text-xs font-bold text-primary", children: ((_b = file.ext) == null ? void 0 : _b.replace(".", "")) || "N/A" })
|
|
4729
4687
|
] }),
|
|
4730
|
-
/* @__PURE__ */
|
|
4731
|
-
/* @__PURE__ */
|
|
4732
|
-
/* @__PURE__ */
|
|
4688
|
+
/* @__PURE__ */ jsxs45("div", { children: [
|
|
4689
|
+
/* @__PURE__ */ jsx68("p", { className: "text-xs font-medium text-muted-foreground uppercase tracking-wide mb-1", children: "Video Source" }),
|
|
4690
|
+
/* @__PURE__ */ jsx68("p", { className: "text-xs font-bold text-primary capitalize", children: ((_c = file.metaData) == null ? void 0 : _c.videoSource) || "local" })
|
|
4733
4691
|
] })
|
|
4734
4692
|
] }),
|
|
4735
|
-
/* @__PURE__ */
|
|
4736
|
-
/* @__PURE__ */
|
|
4737
|
-
/* @__PURE__ */
|
|
4738
|
-
/* @__PURE__ */
|
|
4739
|
-
/* @__PURE__ */
|
|
4740
|
-
/* @__PURE__ */
|
|
4693
|
+
/* @__PURE__ */ jsxs45("div", { className: "space-y-4 pt-4 border-t border-border", children: [
|
|
4694
|
+
/* @__PURE__ */ jsx68("div", { className: "space-y-2", children: /* @__PURE__ */ jsxs45(Field, { className: "gap-0", children: [
|
|
4695
|
+
/* @__PURE__ */ jsx68(FieldLabel, { htmlFor: "fileName", children: "File name" }),
|
|
4696
|
+
/* @__PURE__ */ jsxs45(InputGroup, { children: [
|
|
4697
|
+
/* @__PURE__ */ jsx68(InputGroupInput, { id: "fileName", placeholder: "Enter file name", value: fileName.replace(file.ext || "", ""), onChange: (e) => setFileName(e.target.value) }),
|
|
4698
|
+
/* @__PURE__ */ jsx68(InputGroupAddon, { align: "inline-end", className: "pr-1", children: /* @__PURE__ */ jsx68(InputGroupText, { className: "font-bold bg-accent rounded-lg py-1 px-3", children: file.ext }) })
|
|
4741
4699
|
] })
|
|
4742
4700
|
] }) }),
|
|
4743
|
-
/* @__PURE__ */
|
|
4744
|
-
/* @__PURE__ */
|
|
4745
|
-
/* @__PURE__ */
|
|
4701
|
+
/* @__PURE__ */ jsxs45("div", { className: "space-y-2", children: [
|
|
4702
|
+
/* @__PURE__ */ jsx68(Label, { htmlFor: "caption", children: "Caption" }),
|
|
4703
|
+
/* @__PURE__ */ jsx68(
|
|
4746
4704
|
Textarea,
|
|
4747
4705
|
{
|
|
4748
4706
|
id: "caption",
|
|
@@ -4755,14 +4713,14 @@ function VideoModal({ file, onClose, onSave }) {
|
|
|
4755
4713
|
] })
|
|
4756
4714
|
] })
|
|
4757
4715
|
] });
|
|
4758
|
-
const footer = /* @__PURE__ */
|
|
4759
|
-
/* @__PURE__ */
|
|
4760
|
-
/* @__PURE__ */
|
|
4761
|
-
isSaving && /* @__PURE__ */
|
|
4716
|
+
const footer = /* @__PURE__ */ jsxs45("div", { className: "flex w-full sm:justify-between justify-center items-center flex-col sm:flex-row gap-2 ", children: [
|
|
4717
|
+
/* @__PURE__ */ jsx68(Button, { variant: "outline", onClick: onClose, radius: "full", className: "w-full md:w-auto", disabled: isSaving, children: "Cancel" }),
|
|
4718
|
+
/* @__PURE__ */ jsxs45(Button, { onClick: handleSave, radius: "full", className: "w-full md:w-auto", disabled: isSaving, children: [
|
|
4719
|
+
isSaving && /* @__PURE__ */ jsx68(Loader2Icon, { className: "mr-2 h-4 w-4 animate-spin" }),
|
|
4762
4720
|
"Finish"
|
|
4763
4721
|
] })
|
|
4764
4722
|
] });
|
|
4765
|
-
return /* @__PURE__ */
|
|
4723
|
+
return /* @__PURE__ */ jsx68(
|
|
4766
4724
|
DetailsLayout,
|
|
4767
4725
|
{
|
|
4768
4726
|
title: "Details",
|
|
@@ -4777,7 +4735,7 @@ function VideoModal({ file, onClose, onSave }) {
|
|
|
4777
4735
|
|
|
4778
4736
|
// components/modals/audio-modal.tsx
|
|
4779
4737
|
import { useState as useState12 } from "react";
|
|
4780
|
-
import { jsx as
|
|
4738
|
+
import { jsx as jsx69, jsxs as jsxs46 } from "react/jsx-runtime";
|
|
4781
4739
|
function AudioModal({ file, onClose, onSave }) {
|
|
4782
4740
|
var _a, _b, _c;
|
|
4783
4741
|
const [isSaving, setIsSaving] = useState12(false);
|
|
@@ -4795,62 +4753,62 @@ function AudioModal({ file, onClose, onSave }) {
|
|
|
4795
4753
|
setIsSaving(false);
|
|
4796
4754
|
}
|
|
4797
4755
|
};
|
|
4798
|
-
const previewSection = /* @__PURE__ */
|
|
4799
|
-
/* @__PURE__ */
|
|
4800
|
-
/* @__PURE__ */
|
|
4801
|
-
/* @__PURE__ */
|
|
4802
|
-
/* @__PURE__ */
|
|
4756
|
+
const previewSection = /* @__PURE__ */ jsxs46("div", { className: "flex flex-col h-full", children: [
|
|
4757
|
+
/* @__PURE__ */ jsxs46("div", { className: "flex gap-2 mb-4", children: [
|
|
4758
|
+
/* @__PURE__ */ jsx69(FileDeleteButton, { file }),
|
|
4759
|
+
/* @__PURE__ */ jsx69(FileDownloadButton, { file }),
|
|
4760
|
+
/* @__PURE__ */ jsx69(FileCopyLinkButton, { file })
|
|
4803
4761
|
] }),
|
|
4804
|
-
/* @__PURE__ */
|
|
4805
|
-
/* @__PURE__ */
|
|
4806
|
-
/* @__PURE__ */
|
|
4762
|
+
/* @__PURE__ */ jsxs46("div", { className: "flex-1 flex flex-col items-center justify-center bg-linear-to-br from-purple-50 to-blue-50 dark:from-purple-950 dark:to-blue-950 rounded-lg p-8", children: [
|
|
4763
|
+
/* @__PURE__ */ jsx69("div", { className: "mb-8", children: /* @__PURE__ */ jsx69("div", { className: "w-32 h-32 rounded-full bg-white dark:bg-gray-800 shadow-lg flex items-center justify-center", children: /* @__PURE__ */ jsx69(MusicIcon, { className: "w-16 h-16 text-purple-600 dark:text-purple-400" }) }) }),
|
|
4764
|
+
/* @__PURE__ */ jsx69("div", { className: "w-full max-w-md", children: /* @__PURE__ */ jsxs46(
|
|
4807
4765
|
"audio",
|
|
4808
4766
|
{
|
|
4809
4767
|
src: file.url,
|
|
4810
4768
|
controls: true,
|
|
4811
4769
|
className: "w-full",
|
|
4812
4770
|
children: [
|
|
4813
|
-
/* @__PURE__ */
|
|
4771
|
+
/* @__PURE__ */ jsx69("track", { kind: "captions", srcLang: "en", label: "English" }),
|
|
4814
4772
|
"Your browser does not support the audio tag."
|
|
4815
4773
|
]
|
|
4816
4774
|
}
|
|
4817
4775
|
) })
|
|
4818
4776
|
] })
|
|
4819
4777
|
] });
|
|
4820
|
-
const metadataSection = /* @__PURE__ */
|
|
4821
|
-
/* @__PURE__ */
|
|
4822
|
-
/* @__PURE__ */
|
|
4823
|
-
/* @__PURE__ */
|
|
4824
|
-
/* @__PURE__ */
|
|
4778
|
+
const metadataSection = /* @__PURE__ */ jsxs46("div", { className: "space-y-6", children: [
|
|
4779
|
+
/* @__PURE__ */ jsxs46("div", { className: "grid grid-cols-2 gap-4", children: [
|
|
4780
|
+
/* @__PURE__ */ jsxs46("div", { children: [
|
|
4781
|
+
/* @__PURE__ */ jsx69("p", { className: "text-xs font-medium text-muted-foreground uppercase tracking-wide mb-1", children: "Size" }),
|
|
4782
|
+
/* @__PURE__ */ jsx69("p", { className: "text-xs font-bold text-primary", children: getFileSize(file.size) })
|
|
4825
4783
|
] }),
|
|
4826
|
-
/* @__PURE__ */
|
|
4827
|
-
/* @__PURE__ */
|
|
4828
|
-
/* @__PURE__ */
|
|
4784
|
+
/* @__PURE__ */ jsxs46("div", { children: [
|
|
4785
|
+
/* @__PURE__ */ jsx69("p", { className: "text-xs font-medium text-muted-foreground uppercase tracking-wide mb-1", children: "Duration" }),
|
|
4786
|
+
/* @__PURE__ */ jsx69("p", { className: "text-xs font-bold text-primary", children: ((_a = file.metaData) == null ? void 0 : _a.duration) ? formatDuration(file.metaData.duration) : "N/A" })
|
|
4829
4787
|
] }),
|
|
4830
|
-
/* @__PURE__ */
|
|
4831
|
-
/* @__PURE__ */
|
|
4832
|
-
/* @__PURE__ */
|
|
4788
|
+
/* @__PURE__ */ jsxs46("div", { children: [
|
|
4789
|
+
/* @__PURE__ */ jsx69("p", { className: "text-xs font-medium text-muted-foreground uppercase tracking-wide mb-1", children: "Bitrate" }),
|
|
4790
|
+
/* @__PURE__ */ jsx69("p", { className: "text-xs font-bold text-primary", children: ((_b = file.metaData) == null ? void 0 : _b.bitrate) ? `${file.metaData.bitrate} kbps` : "N/A" })
|
|
4833
4791
|
] }),
|
|
4834
|
-
/* @__PURE__ */
|
|
4835
|
-
/* @__PURE__ */
|
|
4836
|
-
/* @__PURE__ */
|
|
4792
|
+
/* @__PURE__ */ jsxs46("div", { children: [
|
|
4793
|
+
/* @__PURE__ */ jsx69("p", { className: "text-xs font-medium text-muted-foreground uppercase tracking-wide mb-1", children: "Date" }),
|
|
4794
|
+
/* @__PURE__ */ jsx69("p", { className: "text-xs font-bold text-primary", children: formatDate(file.createdAt) })
|
|
4837
4795
|
] }),
|
|
4838
|
-
/* @__PURE__ */
|
|
4839
|
-
/* @__PURE__ */
|
|
4840
|
-
/* @__PURE__ */
|
|
4796
|
+
/* @__PURE__ */ jsxs46("div", { children: [
|
|
4797
|
+
/* @__PURE__ */ jsx69("p", { className: "text-xs font-medium text-muted-foreground uppercase tracking-wide mb-1", children: "Extension" }),
|
|
4798
|
+
/* @__PURE__ */ jsx69("p", { className: "text-xs font-bold text-primary", children: ((_c = file.ext) == null ? void 0 : _c.replace(".", "")) || "N/A" })
|
|
4841
4799
|
] })
|
|
4842
4800
|
] }),
|
|
4843
|
-
/* @__PURE__ */
|
|
4844
|
-
/* @__PURE__ */
|
|
4845
|
-
/* @__PURE__ */
|
|
4846
|
-
/* @__PURE__ */
|
|
4847
|
-
/* @__PURE__ */
|
|
4848
|
-
/* @__PURE__ */
|
|
4801
|
+
/* @__PURE__ */ jsxs46("div", { className: "space-y-4 pt-4 border-t border-border", children: [
|
|
4802
|
+
/* @__PURE__ */ jsx69("div", { className: "space-y-2", children: /* @__PURE__ */ jsxs46(Field, { className: "gap-0", children: [
|
|
4803
|
+
/* @__PURE__ */ jsx69(FieldLabel, { htmlFor: "fileName", children: "File name" }),
|
|
4804
|
+
/* @__PURE__ */ jsxs46(InputGroup, { children: [
|
|
4805
|
+
/* @__PURE__ */ jsx69(InputGroupInput, { id: "fileName", placeholder: "Enter file name", value: fileName.replace(file.ext || "", ""), onChange: (e) => setFileName(e.target.value) }),
|
|
4806
|
+
/* @__PURE__ */ jsx69(InputGroupAddon, { align: "inline-end", className: "pr-1", children: /* @__PURE__ */ jsx69(InputGroupText, { className: "font-bold bg-accent rounded-lg py-1 px-3", children: file.ext }) })
|
|
4849
4807
|
] })
|
|
4850
4808
|
] }) }),
|
|
4851
|
-
/* @__PURE__ */
|
|
4852
|
-
/* @__PURE__ */
|
|
4853
|
-
/* @__PURE__ */
|
|
4809
|
+
/* @__PURE__ */ jsxs46("div", { className: "space-y-2", children: [
|
|
4810
|
+
/* @__PURE__ */ jsx69(Label, { htmlFor: "caption", children: "Caption" }),
|
|
4811
|
+
/* @__PURE__ */ jsx69(
|
|
4854
4812
|
Textarea,
|
|
4855
4813
|
{
|
|
4856
4814
|
id: "caption",
|
|
@@ -4863,14 +4821,14 @@ function AudioModal({ file, onClose, onSave }) {
|
|
|
4863
4821
|
] })
|
|
4864
4822
|
] })
|
|
4865
4823
|
] });
|
|
4866
|
-
const footer = /* @__PURE__ */
|
|
4867
|
-
/* @__PURE__ */
|
|
4868
|
-
/* @__PURE__ */
|
|
4869
|
-
isSaving && /* @__PURE__ */
|
|
4824
|
+
const footer = /* @__PURE__ */ jsxs46("div", { className: "flex gap-2 w-full sm:justify-between justify-center items-center flex-col sm:flex-row ", children: [
|
|
4825
|
+
/* @__PURE__ */ jsx69(Button, { variant: "outline", onClick: onClose, radius: "full", className: "w-full md:w-auto", disabled: isSaving, children: "Cancel" }),
|
|
4826
|
+
/* @__PURE__ */ jsxs46(Button, { onClick: handleSave, radius: "full", className: "w-full md:w-auto", disabled: isSaving, children: [
|
|
4827
|
+
isSaving && /* @__PURE__ */ jsx69(Loader2Icon, { className: "mr-2 h-4 w-4 animate-spin" }),
|
|
4870
4828
|
"Finish"
|
|
4871
4829
|
] })
|
|
4872
4830
|
] });
|
|
4873
|
-
return /* @__PURE__ */
|
|
4831
|
+
return /* @__PURE__ */ jsx69(
|
|
4874
4832
|
DetailsLayout,
|
|
4875
4833
|
{
|
|
4876
4834
|
title: "Details",
|
|
@@ -4885,7 +4843,7 @@ function AudioModal({ file, onClose, onSave }) {
|
|
|
4885
4843
|
|
|
4886
4844
|
// components/modals/file-modal.tsx
|
|
4887
4845
|
import { useState as useState13 } from "react";
|
|
4888
|
-
import { jsx as
|
|
4846
|
+
import { jsx as jsx70, jsxs as jsxs47 } from "react/jsx-runtime";
|
|
4889
4847
|
function FileModal({ file, onClose, onSave }) {
|
|
4890
4848
|
var _a, _b, _c, _d;
|
|
4891
4849
|
const [isSaving, setIsSaving] = useState13(false);
|
|
@@ -4907,54 +4865,54 @@ function FileModal({ file, onClose, onSave }) {
|
|
|
4907
4865
|
};
|
|
4908
4866
|
const ext = ((_b = file.ext) == null ? void 0 : _b.replace(".", "")) || "file";
|
|
4909
4867
|
const { component: FilePreviewComponent } = getFileComponents(file);
|
|
4910
|
-
const previewSection = /* @__PURE__ */
|
|
4911
|
-
/* @__PURE__ */
|
|
4912
|
-
/* @__PURE__ */
|
|
4913
|
-
/* @__PURE__ */
|
|
4914
|
-
/* @__PURE__ */
|
|
4868
|
+
const previewSection = /* @__PURE__ */ jsxs47("div", { className: "flex flex-col h-full", children: [
|
|
4869
|
+
/* @__PURE__ */ jsxs47("div", { className: "flex gap-2 mb-4", children: [
|
|
4870
|
+
/* @__PURE__ */ jsx70(FileDeleteButton, { file }),
|
|
4871
|
+
/* @__PURE__ */ jsx70(FileDownloadButton, { file }),
|
|
4872
|
+
/* @__PURE__ */ jsx70(FileCopyLinkButton, { file })
|
|
4915
4873
|
] }),
|
|
4916
|
-
/* @__PURE__ */
|
|
4917
|
-
/* @__PURE__ */
|
|
4918
|
-
/* @__PURE__ */
|
|
4874
|
+
/* @__PURE__ */ jsxs47("div", { className: "flex-1 flex flex-col items-center justify-center bg-linear-to-br from-gray-50 to-gray-100 dark:from-gray-900 dark:to-gray-800 rounded-lg p-8", children: [
|
|
4875
|
+
/* @__PURE__ */ jsx70("div", { className: "mb-4 w-32 h-32 flex items-center justify-center", children: /* @__PURE__ */ jsx70(FilePreviewComponent, { file, metaData: file.metaData }) }),
|
|
4876
|
+
/* @__PURE__ */ jsxs47("p", { className: "text-sm font-medium text-muted-foreground uppercase tracking-wider", children: [
|
|
4919
4877
|
ext,
|
|
4920
4878
|
" File"
|
|
4921
4879
|
] })
|
|
4922
4880
|
] })
|
|
4923
4881
|
] });
|
|
4924
|
-
const metadataSection = /* @__PURE__ */
|
|
4925
|
-
/* @__PURE__ */
|
|
4926
|
-
/* @__PURE__ */
|
|
4927
|
-
/* @__PURE__ */
|
|
4928
|
-
/* @__PURE__ */
|
|
4882
|
+
const metadataSection = /* @__PURE__ */ jsxs47("div", { className: "space-y-6", children: [
|
|
4883
|
+
/* @__PURE__ */ jsxs47("div", { className: "grid grid-cols-2 gap-4", children: [
|
|
4884
|
+
/* @__PURE__ */ jsxs47("div", { children: [
|
|
4885
|
+
/* @__PURE__ */ jsx70("p", { className: "text-xs font-medium text-muted-foreground tracking-wide mb-1", children: "Size" }),
|
|
4886
|
+
/* @__PURE__ */ jsx70("p", { className: "text-xs font-bold text-blue-600 dark:text-blue-400", children: getFileSize(file.size) })
|
|
4929
4887
|
] }),
|
|
4930
|
-
/* @__PURE__ */
|
|
4931
|
-
/* @__PURE__ */
|
|
4932
|
-
/* @__PURE__ */
|
|
4888
|
+
/* @__PURE__ */ jsxs47("div", { children: [
|
|
4889
|
+
/* @__PURE__ */ jsx70("p", { className: "text-xs font-medium text-muted-foreground tracking-wide mb-1", children: "Date" }),
|
|
4890
|
+
/* @__PURE__ */ jsx70("p", { className: "text-xs font-bold text-blue-600 dark:text-blue-400", children: formatDate(file.createdAt) })
|
|
4933
4891
|
] }),
|
|
4934
|
-
/* @__PURE__ */
|
|
4935
|
-
/* @__PURE__ */
|
|
4936
|
-
/* @__PURE__ */
|
|
4892
|
+
/* @__PURE__ */ jsxs47("div", { children: [
|
|
4893
|
+
/* @__PURE__ */ jsx70("p", { className: "text-xs font-medium text-muted-foreground tracking-wide mb-1", children: "Extension" }),
|
|
4894
|
+
/* @__PURE__ */ jsx70("p", { className: "text-xs font-bold text-blue-600 dark:text-blue-400", children: ext })
|
|
4937
4895
|
] }),
|
|
4938
|
-
((_c = file.metaData) == null ? void 0 : _c.pageCount) && /* @__PURE__ */
|
|
4939
|
-
/* @__PURE__ */
|
|
4940
|
-
/* @__PURE__ */
|
|
4896
|
+
((_c = file.metaData) == null ? void 0 : _c.pageCount) && /* @__PURE__ */ jsxs47("div", { children: [
|
|
4897
|
+
/* @__PURE__ */ jsx70("p", { className: "text-xs font-medium text-muted-foreground uppercase tracking-wide mb-1", children: "Page Count" }),
|
|
4898
|
+
/* @__PURE__ */ jsx70("p", { className: "text-xs font-bold text-blue-600 dark:text-blue-400", children: file.metaData.pageCount })
|
|
4941
4899
|
] }),
|
|
4942
|
-
((_d = file.metaData) == null ? void 0 : _d.author) && /* @__PURE__ */
|
|
4943
|
-
/* @__PURE__ */
|
|
4944
|
-
/* @__PURE__ */
|
|
4900
|
+
((_d = file.metaData) == null ? void 0 : _d.author) && /* @__PURE__ */ jsxs47("div", { children: [
|
|
4901
|
+
/* @__PURE__ */ jsx70("p", { className: "text-xs font-medium text-muted-foreground uppercase tracking-wide mb-1", children: "Author" }),
|
|
4902
|
+
/* @__PURE__ */ jsx70("p", { className: "text-xs font-bold text-blue-600 dark:text-blue-400", children: file.metaData.author })
|
|
4945
4903
|
] })
|
|
4946
4904
|
] }),
|
|
4947
|
-
/* @__PURE__ */
|
|
4948
|
-
/* @__PURE__ */
|
|
4949
|
-
/* @__PURE__ */
|
|
4950
|
-
/* @__PURE__ */
|
|
4951
|
-
/* @__PURE__ */
|
|
4952
|
-
/* @__PURE__ */
|
|
4905
|
+
/* @__PURE__ */ jsxs47("div", { className: "space-y-4 pt-4 border-t border-slate-200", children: [
|
|
4906
|
+
/* @__PURE__ */ jsx70("div", { className: "space-y-2", children: /* @__PURE__ */ jsxs47(Field, { className: "gap-0", children: [
|
|
4907
|
+
/* @__PURE__ */ jsx70(FieldLabel, { htmlFor: "fileName", children: "File name" }),
|
|
4908
|
+
/* @__PURE__ */ jsxs47(InputGroup, { children: [
|
|
4909
|
+
/* @__PURE__ */ jsx70(InputGroupInput, { id: "fileName", placeholder: "Enter file name", value: fileName.replace(file.ext || "", ""), onChange: (e) => setFileName(e.target.value) }),
|
|
4910
|
+
/* @__PURE__ */ jsx70(InputGroupAddon, { align: "inline-end", className: "pr-1", children: /* @__PURE__ */ jsx70(InputGroupText, { className: "font-bold bg-gray-200 dark:bg-zinc-700 rounded-lg py-1 px-3", children: file.ext }) })
|
|
4953
4911
|
] })
|
|
4954
4912
|
] }) }),
|
|
4955
|
-
/* @__PURE__ */
|
|
4956
|
-
/* @__PURE__ */
|
|
4957
|
-
/* @__PURE__ */
|
|
4913
|
+
/* @__PURE__ */ jsxs47("div", { className: "space-y-2", children: [
|
|
4914
|
+
/* @__PURE__ */ jsx70(Label, { htmlFor: "description", children: "Description" }),
|
|
4915
|
+
/* @__PURE__ */ jsx70(
|
|
4958
4916
|
Textarea,
|
|
4959
4917
|
{
|
|
4960
4918
|
id: "description",
|
|
@@ -4967,14 +4925,14 @@ function FileModal({ file, onClose, onSave }) {
|
|
|
4967
4925
|
] })
|
|
4968
4926
|
] })
|
|
4969
4927
|
] });
|
|
4970
|
-
const footer = /* @__PURE__ */
|
|
4971
|
-
/* @__PURE__ */
|
|
4972
|
-
/* @__PURE__ */
|
|
4973
|
-
isSaving && /* @__PURE__ */
|
|
4928
|
+
const footer = /* @__PURE__ */ jsxs47("div", { className: "flex w-full justify-between items-center flex-col sm:flex-row gap-2 ", children: [
|
|
4929
|
+
/* @__PURE__ */ jsx70(Button, { className: "w-full md:w-auto", variant: "outline", onClick: onClose, radius: "full", disabled: isSaving, children: "Cancel" }),
|
|
4930
|
+
/* @__PURE__ */ jsxs47(Button, { className: "w-full md:w-auto", onClick: handleSave, radius: "full", disabled: isSaving, children: [
|
|
4931
|
+
isSaving && /* @__PURE__ */ jsx70(Loader2Icon, { className: "mr-2 h-4 w-4 animate-spin" }),
|
|
4974
4932
|
"Save"
|
|
4975
4933
|
] })
|
|
4976
4934
|
] });
|
|
4977
|
-
return /* @__PURE__ */
|
|
4935
|
+
return /* @__PURE__ */ jsx70(
|
|
4978
4936
|
DetailsLayout,
|
|
4979
4937
|
{
|
|
4980
4938
|
title: "Details",
|
|
@@ -4988,7 +4946,7 @@ function FileModal({ file, onClose, onSave }) {
|
|
|
4988
4946
|
}
|
|
4989
4947
|
|
|
4990
4948
|
// components/layout/overlays.tsx
|
|
4991
|
-
import { jsx as
|
|
4949
|
+
import { jsx as jsx71, jsxs as jsxs48 } from "react/jsx-runtime";
|
|
4992
4950
|
function FileManagerOverlays({ className }) {
|
|
4993
4951
|
const {
|
|
4994
4952
|
fileDetailsModalFile,
|
|
@@ -5011,7 +4969,7 @@ function FileManagerOverlays({ className }) {
|
|
|
5011
4969
|
);
|
|
5012
4970
|
switch (fileType) {
|
|
5013
4971
|
case FILE_TYPE.IMAGE:
|
|
5014
|
-
return /* @__PURE__ */
|
|
4972
|
+
return /* @__PURE__ */ jsx71(
|
|
5015
4973
|
ImageModal,
|
|
5016
4974
|
{
|
|
5017
4975
|
file: fileDetailsModalFile,
|
|
@@ -5020,7 +4978,7 @@ function FileManagerOverlays({ className }) {
|
|
|
5020
4978
|
}
|
|
5021
4979
|
);
|
|
5022
4980
|
case FILE_TYPE.VIDEO:
|
|
5023
|
-
return /* @__PURE__ */
|
|
4981
|
+
return /* @__PURE__ */ jsx71(
|
|
5024
4982
|
VideoModal,
|
|
5025
4983
|
{
|
|
5026
4984
|
file: fileDetailsModalFile,
|
|
@@ -5029,7 +4987,7 @@ function FileManagerOverlays({ className }) {
|
|
|
5029
4987
|
}
|
|
5030
4988
|
);
|
|
5031
4989
|
case FILE_TYPE.AUDIO:
|
|
5032
|
-
return /* @__PURE__ */
|
|
4990
|
+
return /* @__PURE__ */ jsx71(
|
|
5033
4991
|
AudioModal,
|
|
5034
4992
|
{
|
|
5035
4993
|
file: fileDetailsModalFile,
|
|
@@ -5039,7 +4997,7 @@ function FileManagerOverlays({ className }) {
|
|
|
5039
4997
|
);
|
|
5040
4998
|
case FILE_TYPE.FILE:
|
|
5041
4999
|
default:
|
|
5042
|
-
return /* @__PURE__ */
|
|
5000
|
+
return /* @__PURE__ */ jsx71(
|
|
5043
5001
|
FileModal,
|
|
5044
5002
|
{
|
|
5045
5003
|
file: fileDetailsModalFile,
|
|
@@ -5049,23 +5007,23 @@ function FileManagerOverlays({ className }) {
|
|
|
5049
5007
|
);
|
|
5050
5008
|
}
|
|
5051
5009
|
};
|
|
5052
|
-
return /* @__PURE__ */
|
|
5053
|
-
/* @__PURE__ */
|
|
5054
|
-
/* @__PURE__ */
|
|
5055
|
-
/* @__PURE__ */
|
|
5010
|
+
return /* @__PURE__ */ jsxs48("div", { className: cn("", className), children: [
|
|
5011
|
+
/* @__PURE__ */ jsx71(UploadModal, {}),
|
|
5012
|
+
/* @__PURE__ */ jsx71(CreateFolderModal, {}),
|
|
5013
|
+
/* @__PURE__ */ jsx71(MoveModal, {}),
|
|
5056
5014
|
renderFileDetailsModal()
|
|
5057
5015
|
] });
|
|
5058
5016
|
}
|
|
5059
5017
|
|
|
5060
5018
|
// components/file-manager-root.tsx
|
|
5061
|
-
import { jsx as
|
|
5019
|
+
import { jsx as jsx72 } from "react/jsx-runtime";
|
|
5062
5020
|
function FileManagerPageProvider(_a) {
|
|
5063
5021
|
var _b = _a, {
|
|
5064
5022
|
children
|
|
5065
5023
|
} = _b, props = __objRest(_b, [
|
|
5066
5024
|
"children"
|
|
5067
5025
|
]);
|
|
5068
|
-
return /* @__PURE__ */
|
|
5026
|
+
return /* @__PURE__ */ jsx72(
|
|
5069
5027
|
FileManagerProvider,
|
|
5070
5028
|
__spreadProps(__spreadValues({
|
|
5071
5029
|
mode: MODE.PAGE,
|
|
@@ -5091,7 +5049,7 @@ function FileManagerModalProvider(_a) {
|
|
|
5091
5049
|
"onFilesSelected",
|
|
5092
5050
|
"onClose"
|
|
5093
5051
|
]);
|
|
5094
|
-
return /* @__PURE__ */
|
|
5052
|
+
return /* @__PURE__ */ jsx72(
|
|
5095
5053
|
FileManagerProvider,
|
|
5096
5054
|
__spreadProps(__spreadValues({
|
|
5097
5055
|
mode: MODE.MODAL,
|
|
@@ -5114,10 +5072,10 @@ var FileManagerComposition = {
|
|
|
5114
5072
|
};
|
|
5115
5073
|
|
|
5116
5074
|
// components/layout/bulk-actions-bar.tsx
|
|
5117
|
-
import { jsx as
|
|
5075
|
+
import { jsx as jsx73, jsxs as jsxs49 } from "react/jsx-runtime";
|
|
5118
5076
|
function MoveButton() {
|
|
5119
5077
|
const { setIsMoveFileModalOpen } = useFileManager();
|
|
5120
|
-
return /* @__PURE__ */
|
|
5078
|
+
return /* @__PURE__ */ jsxs49(
|
|
5121
5079
|
Button,
|
|
5122
5080
|
{
|
|
5123
5081
|
variant: "outline",
|
|
@@ -5126,15 +5084,15 @@ function MoveButton() {
|
|
|
5126
5084
|
onClick: () => setIsMoveFileModalOpen(true),
|
|
5127
5085
|
className: "text-md font-medium border border-gray-200 dark:border-zinc-700 bg-white dark:bg-zinc-900 hover:bg-blue-50 dark:hover:bg-blue-900/40 hover:text-blue-600 dark:hover:text-blue-400 hover:border-blue-300 dark:hover:border-blue-700 shadow-sm transition-all duration-200",
|
|
5128
5086
|
children: [
|
|
5129
|
-
/* @__PURE__ */
|
|
5130
|
-
/* @__PURE__ */
|
|
5087
|
+
/* @__PURE__ */ jsx73(MoveIcon, { className: "size-5" }),
|
|
5088
|
+
/* @__PURE__ */ jsx73("span", { className: "hidden sm:inline", children: "Move" })
|
|
5131
5089
|
]
|
|
5132
5090
|
}
|
|
5133
5091
|
);
|
|
5134
5092
|
}
|
|
5135
5093
|
function DeleteButton() {
|
|
5136
5094
|
const { bulkDelete } = useFileManager();
|
|
5137
|
-
return /* @__PURE__ */
|
|
5095
|
+
return /* @__PURE__ */ jsxs49(
|
|
5138
5096
|
Button,
|
|
5139
5097
|
{
|
|
5140
5098
|
variant: "outline",
|
|
@@ -5143,15 +5101,15 @@ function DeleteButton() {
|
|
|
5143
5101
|
onClick: bulkDelete,
|
|
5144
5102
|
className: "text-md font-medium border border-gray-200 dark:border-zinc-700 bg-white dark:bg-zinc-900 hover:bg-red-50 dark:hover:bg-red-900/40 hover:text-red-600 dark:hover:text-red-400 hover:border-red-300 dark:hover:border-red-700 shadow-sm transition-all duration-200",
|
|
5145
5103
|
children: [
|
|
5146
|
-
/* @__PURE__ */
|
|
5147
|
-
/* @__PURE__ */
|
|
5104
|
+
/* @__PURE__ */ jsx73(TrashIcon, { className: "size-5" }),
|
|
5105
|
+
/* @__PURE__ */ jsx73("span", { className: "hidden", children: "Delete" })
|
|
5148
5106
|
]
|
|
5149
5107
|
}
|
|
5150
5108
|
);
|
|
5151
5109
|
}
|
|
5152
5110
|
function ClearSelectionButton() {
|
|
5153
5111
|
const { handleClearSelection } = useFileManager();
|
|
5154
|
-
return /* @__PURE__ */
|
|
5112
|
+
return /* @__PURE__ */ jsxs49(
|
|
5155
5113
|
Button,
|
|
5156
5114
|
{
|
|
5157
5115
|
variant: "outline",
|
|
@@ -5159,7 +5117,7 @@ function ClearSelectionButton() {
|
|
|
5159
5117
|
onClick: handleClearSelection,
|
|
5160
5118
|
className: "rounded-full text-md font-medium border border-transparent text-blue-600 dark:text-blue-400 hover:text-blue-700 dark:hover:text-blue-300 hover:bg-blue-50 dark:hover:bg-blue-900/40 hover:border-blue-300 dark:hover:border-blue-700 hover:font-semibold transition-all duration-200",
|
|
5161
5119
|
children: [
|
|
5162
|
-
/* @__PURE__ */
|
|
5120
|
+
/* @__PURE__ */ jsx73(CrossIcon, { className: "size-5 transition-colors" }),
|
|
5163
5121
|
"Clear"
|
|
5164
5122
|
]
|
|
5165
5123
|
}
|
|
@@ -5172,12 +5130,12 @@ function BulkActionsStatic() {
|
|
|
5172
5130
|
} = useFileManager();
|
|
5173
5131
|
const totalSelected = selectedFiles.length + selectedFolders.length;
|
|
5174
5132
|
if (totalSelected === 0) return null;
|
|
5175
|
-
return /* @__PURE__ */
|
|
5176
|
-
/* @__PURE__ */
|
|
5177
|
-
/* @__PURE__ */
|
|
5178
|
-
/* @__PURE__ */
|
|
5133
|
+
return /* @__PURE__ */ jsx73("div", { className: "w-full", children: /* @__PURE__ */ jsxs49("div", { className: "flex flex-wrap items-center gap-2 sm:gap-3", children: [
|
|
5134
|
+
/* @__PURE__ */ jsxs49("div", { className: "flex items-center gap-2 flex-1 sm:flex-initial", children: [
|
|
5135
|
+
/* @__PURE__ */ jsx73(MoveButton, {}),
|
|
5136
|
+
/* @__PURE__ */ jsx73(DeleteButton, {})
|
|
5179
5137
|
] }),
|
|
5180
|
-
/* @__PURE__ */
|
|
5138
|
+
/* @__PURE__ */ jsx73(ClearSelectionButton, {})
|
|
5181
5139
|
] }) });
|
|
5182
5140
|
}
|
|
5183
5141
|
function BulkActionsFloating({ className }) {
|
|
@@ -5187,25 +5145,25 @@ function BulkActionsFloating({ className }) {
|
|
|
5187
5145
|
} = useFileManager();
|
|
5188
5146
|
const totalSelected = selectedFiles.length + selectedFolders.length;
|
|
5189
5147
|
if (totalSelected === 0) return null;
|
|
5190
|
-
return /* @__PURE__ */
|
|
5191
|
-
/* @__PURE__ */
|
|
5192
|
-
/* @__PURE__ */
|
|
5193
|
-
/* @__PURE__ */
|
|
5148
|
+
return /* @__PURE__ */ jsx73("div", { className: `fixed bottom-0 left-0 right-0 z-50 bg-white/80 dark:bg-zinc-900/80 backdrop-blur-sm border-t border-gray-200 dark:border-zinc-700 shadow-lg ${className || ""}`, children: /* @__PURE__ */ jsx73("div", { className: "px-4 sm:px-6 py-3 mx-auto", children: /* @__PURE__ */ jsxs49("div", { className: "flex flex-wrap items-center gap-2 sm:gap-3", children: [
|
|
5149
|
+
/* @__PURE__ */ jsxs49("div", { className: "flex items-center gap-2 flex-1 sm:flex-initial", children: [
|
|
5150
|
+
/* @__PURE__ */ jsx73(MoveButton, {}),
|
|
5151
|
+
/* @__PURE__ */ jsx73(DeleteButton, {})
|
|
5194
5152
|
] }),
|
|
5195
|
-
/* @__PURE__ */
|
|
5153
|
+
/* @__PURE__ */ jsx73(ClearSelectionButton, {})
|
|
5196
5154
|
] }) }) });
|
|
5197
5155
|
}
|
|
5198
5156
|
|
|
5199
5157
|
// components/ui/skeleton.tsx
|
|
5200
|
-
import { jsx as
|
|
5158
|
+
import { jsx as jsx74 } from "react/jsx-runtime";
|
|
5201
5159
|
function Skeleton(_a) {
|
|
5202
5160
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
5203
|
-
return /* @__PURE__ */
|
|
5161
|
+
return /* @__PURE__ */ jsx74("div", __spreadValues({ "data-slot": "skeleton", className: cn("animate-pulse rounded-md bg-accent", className) }, props));
|
|
5204
5162
|
}
|
|
5205
5163
|
|
|
5206
5164
|
// components/layout/header-navigation.tsx
|
|
5207
5165
|
import { useRouter as useRouter3 } from "next/navigation";
|
|
5208
|
-
import { Fragment, jsx as
|
|
5166
|
+
import { Fragment, jsx as jsx75, jsxs as jsxs50 } from "react/jsx-runtime";
|
|
5209
5167
|
function HeaderNavigation() {
|
|
5210
5168
|
const {
|
|
5211
5169
|
currentFolder,
|
|
@@ -5217,13 +5175,13 @@ function HeaderNavigation() {
|
|
|
5217
5175
|
router.back();
|
|
5218
5176
|
};
|
|
5219
5177
|
if (isLoading) {
|
|
5220
|
-
return /* @__PURE__ */
|
|
5221
|
-
/* @__PURE__ */
|
|
5222
|
-
/* @__PURE__ */
|
|
5178
|
+
return /* @__PURE__ */ jsxs50("div", { className: "flex item-center w-full", children: [
|
|
5179
|
+
/* @__PURE__ */ jsx75(Skeleton, { className: "rounded-full size-10 mr-2 shrink-0" }),
|
|
5180
|
+
/* @__PURE__ */ jsx75(Skeleton, { className: "min-w-32 rounded-md h-full" })
|
|
5223
5181
|
] });
|
|
5224
5182
|
}
|
|
5225
|
-
return /* @__PURE__ */
|
|
5226
|
-
/* @__PURE__ */
|
|
5183
|
+
return /* @__PURE__ */ jsx75(Fragment, { children: currentFolder ? /* @__PURE__ */ jsxs50("div", { className: "flex items-center flex-1 min-w-0 max-w-[calc(100%-40px)]", children: [
|
|
5184
|
+
/* @__PURE__ */ jsx75(
|
|
5227
5185
|
Button,
|
|
5228
5186
|
{
|
|
5229
5187
|
variant: "outline",
|
|
@@ -5232,12 +5190,12 @@ function HeaderNavigation() {
|
|
|
5232
5190
|
disabled: isLoading,
|
|
5233
5191
|
className: "border-gray-200 dark:border-zinc-700 bg-white dark:bg-zinc-900 mr-2",
|
|
5234
5192
|
onClick: handleBackClick,
|
|
5235
|
-
children: /* @__PURE__ */
|
|
5193
|
+
children: /* @__PURE__ */ jsx75(ChevronLeftIcon, { className: "size-5 text-gray-900 dark:text-zinc-100", strokeWidth: "1.5" })
|
|
5236
5194
|
}
|
|
5237
5195
|
),
|
|
5238
|
-
/* @__PURE__ */
|
|
5239
|
-
] }) : /* @__PURE__ */
|
|
5240
|
-
/* @__PURE__ */
|
|
5196
|
+
/* @__PURE__ */ jsx75("h1", { className: "text-lg flex-1 min-w-0 align-middle font-semibold", children: middleTruncate(currentFolder.name, 20) })
|
|
5197
|
+
] }) : /* @__PURE__ */ jsxs50("div", { className: "flex items-center flex-1 min-w-0 max-w-[calc(100%-40px)]", children: [
|
|
5198
|
+
/* @__PURE__ */ jsx75(
|
|
5241
5199
|
Button,
|
|
5242
5200
|
{
|
|
5243
5201
|
className: "mr-2 shrink-0",
|
|
@@ -5246,23 +5204,23 @@ function HeaderNavigation() {
|
|
|
5246
5204
|
mode: "icon",
|
|
5247
5205
|
size: "icon",
|
|
5248
5206
|
onClick: () => handleFolderClick(null),
|
|
5249
|
-
children: /* @__PURE__ */
|
|
5207
|
+
children: /* @__PURE__ */ jsx75(HomeIcon, { className: "size-6 text-gray-900 dark:text-zinc-100" })
|
|
5250
5208
|
}
|
|
5251
5209
|
),
|
|
5252
|
-
/* @__PURE__ */
|
|
5210
|
+
/* @__PURE__ */ jsx75("h1", { className: "text-lg flex-1 min-w-0 align-middle font-semibold", children: "Home" })
|
|
5253
5211
|
] }) });
|
|
5254
5212
|
}
|
|
5255
5213
|
|
|
5256
5214
|
// components/ui/dropdown-menu.tsx
|
|
5257
5215
|
import { DropdownMenu as DropdownMenuPrimitive } from "radix-ui";
|
|
5258
|
-
import { jsx as
|
|
5216
|
+
import { jsx as jsx76, jsxs as jsxs51 } from "react/jsx-runtime";
|
|
5259
5217
|
function DropdownMenu(_a) {
|
|
5260
5218
|
var props = __objRest(_a, []);
|
|
5261
|
-
return /* @__PURE__ */
|
|
5219
|
+
return /* @__PURE__ */ jsx76(DropdownMenuPrimitive.Root, __spreadValues({ "data-slot": "dropdown-menu" }, props));
|
|
5262
5220
|
}
|
|
5263
5221
|
function DropdownMenuTrigger(_a) {
|
|
5264
5222
|
var props = __objRest(_a, []);
|
|
5265
|
-
return /* @__PURE__ */
|
|
5223
|
+
return /* @__PURE__ */ jsx76(DropdownMenuPrimitive.Trigger, __spreadValues({ className: "select-none", "data-slot": "dropdown-menu-trigger" }, props));
|
|
5266
5224
|
}
|
|
5267
5225
|
function DropdownMenuContent(_a) {
|
|
5268
5226
|
var _b = _a, {
|
|
@@ -5272,7 +5230,7 @@ function DropdownMenuContent(_a) {
|
|
|
5272
5230
|
"className",
|
|
5273
5231
|
"sideOffset"
|
|
5274
5232
|
]);
|
|
5275
|
-
return /* @__PURE__ */
|
|
5233
|
+
return /* @__PURE__ */ jsx76(DropdownMenuPrimitive.Portal, { children: /* @__PURE__ */ jsx76(
|
|
5276
5234
|
DropdownMenuPrimitive.Content,
|
|
5277
5235
|
__spreadValues({
|
|
5278
5236
|
"data-slot": "dropdown-menu-content",
|
|
@@ -5294,7 +5252,7 @@ function DropdownMenuItem(_a) {
|
|
|
5294
5252
|
"inset",
|
|
5295
5253
|
"variant"
|
|
5296
5254
|
]);
|
|
5297
|
-
return /* @__PURE__ */
|
|
5255
|
+
return /* @__PURE__ */ jsx76(
|
|
5298
5256
|
DropdownMenuPrimitive.Item,
|
|
5299
5257
|
__spreadValues({
|
|
5300
5258
|
"data-slot": "dropdown-menu-item",
|
|
@@ -5311,7 +5269,7 @@ function DropdownMenuItem(_a) {
|
|
|
5311
5269
|
}
|
|
5312
5270
|
function DropdownMenuSeparator(_a) {
|
|
5313
5271
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
5314
|
-
return /* @__PURE__ */
|
|
5272
|
+
return /* @__PURE__ */ jsx76(
|
|
5315
5273
|
DropdownMenuPrimitive.Separator,
|
|
5316
5274
|
__spreadValues({
|
|
5317
5275
|
"data-slot": "dropdown-menu-separator",
|
|
@@ -5325,10 +5283,10 @@ import { useCallback as useCallback5, useEffect as useEffect6, useState as useSt
|
|
|
5325
5283
|
|
|
5326
5284
|
// components/ui/command.tsx
|
|
5327
5285
|
import { Command as CommandPrimitive } from "cmdk";
|
|
5328
|
-
import { jsx as
|
|
5286
|
+
import { jsx as jsx77, jsxs as jsxs52 } from "react/jsx-runtime";
|
|
5329
5287
|
function Command(_a) {
|
|
5330
5288
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
5331
|
-
return /* @__PURE__ */
|
|
5289
|
+
return /* @__PURE__ */ jsx77(
|
|
5332
5290
|
CommandPrimitive,
|
|
5333
5291
|
__spreadValues({
|
|
5334
5292
|
className: cn(
|
|
@@ -5340,9 +5298,9 @@ function Command(_a) {
|
|
|
5340
5298
|
}
|
|
5341
5299
|
var CommandDialog = (_a) => {
|
|
5342
5300
|
var _b = _a, { children, className, shouldFilter } = _b, props = __objRest(_b, ["children", "className", "shouldFilter"]);
|
|
5343
|
-
return /* @__PURE__ */
|
|
5344
|
-
/* @__PURE__ */
|
|
5345
|
-
/* @__PURE__ */
|
|
5301
|
+
return /* @__PURE__ */ jsx77(Dialog, __spreadProps(__spreadValues({}, props), { children: /* @__PURE__ */ jsxs52(DialogContent, { className: cn("overflow-hidden p-0 shadow-lg", className), children: [
|
|
5302
|
+
/* @__PURE__ */ jsx77(DialogTitle, { className: "hidden" }),
|
|
5303
|
+
/* @__PURE__ */ jsx77(
|
|
5346
5304
|
Command,
|
|
5347
5305
|
{
|
|
5348
5306
|
shouldFilter,
|
|
@@ -5354,13 +5312,13 @@ var CommandDialog = (_a) => {
|
|
|
5354
5312
|
};
|
|
5355
5313
|
function CommandInput(_a) {
|
|
5356
5314
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
5357
|
-
return /* @__PURE__ */
|
|
5358
|
-
/* @__PURE__ */
|
|
5359
|
-
/* @__PURE__ */
|
|
5315
|
+
return /* @__PURE__ */ jsxs52("div", { className: "flex items-center border-border border-b px-3", "cmdk-input-wrapper": "", "data-slot": "command-input", children: [
|
|
5316
|
+
/* @__PURE__ */ jsx77(SearchIcon, { className: "me-2 h-4 w-4 shrink-0 opacity-50" }),
|
|
5317
|
+
/* @__PURE__ */ jsx77(
|
|
5360
5318
|
CommandPrimitive.Input,
|
|
5361
5319
|
__spreadValues({
|
|
5362
5320
|
className: cn(
|
|
5363
|
-
"flex h-11 w-full rounded-md bg-transparent py-3 text-sm outline-
|
|
5321
|
+
"flex h-11 w-full rounded-md bg-transparent py-3 text-sm outline-none! shadow-none! focus:outline-none focus:ring-0 focus-visible:outline-none focus-visible:ring-0 border-none text-foreground placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50",
|
|
5364
5322
|
className
|
|
5365
5323
|
)
|
|
5366
5324
|
}, props)
|
|
@@ -5369,7 +5327,7 @@ function CommandInput(_a) {
|
|
|
5369
5327
|
}
|
|
5370
5328
|
function CommandList(_a) {
|
|
5371
5329
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
5372
|
-
return /* @__PURE__ */
|
|
5330
|
+
return /* @__PURE__ */ jsx77(
|
|
5373
5331
|
CommandPrimitive.List,
|
|
5374
5332
|
__spreadValues({
|
|
5375
5333
|
"data-slot": "command-list",
|
|
@@ -5379,11 +5337,11 @@ function CommandList(_a) {
|
|
|
5379
5337
|
}
|
|
5380
5338
|
function CommandEmpty(_a) {
|
|
5381
5339
|
var props = __objRest(_a, []);
|
|
5382
|
-
return /* @__PURE__ */
|
|
5340
|
+
return /* @__PURE__ */ jsx77(CommandPrimitive.Empty, __spreadValues({ "data-slot": "command-empty", className: "py-6 text-center text-sm" }, props));
|
|
5383
5341
|
}
|
|
5384
5342
|
function CommandGroup(_a) {
|
|
5385
5343
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
5386
|
-
return /* @__PURE__ */
|
|
5344
|
+
return /* @__PURE__ */ jsx77(
|
|
5387
5345
|
CommandPrimitive.Group,
|
|
5388
5346
|
__spreadValues({
|
|
5389
5347
|
"data-slot": "command-group",
|
|
@@ -5396,7 +5354,7 @@ function CommandGroup(_a) {
|
|
|
5396
5354
|
}
|
|
5397
5355
|
function CommandItem(_a) {
|
|
5398
5356
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
5399
|
-
return /* @__PURE__ */
|
|
5357
|
+
return /* @__PURE__ */ jsx77(
|
|
5400
5358
|
CommandPrimitive.Item,
|
|
5401
5359
|
__spreadValues({
|
|
5402
5360
|
"data-slot": "command-item",
|
|
@@ -5426,7 +5384,7 @@ function useDebouncedValue(value, delay2 = 500) {
|
|
|
5426
5384
|
|
|
5427
5385
|
// components/modals/search-modal.tsx
|
|
5428
5386
|
import { toast as toast4 } from "sonner";
|
|
5429
|
-
import { Fragment as Fragment2, jsx as
|
|
5387
|
+
import { Fragment as Fragment2, jsx as jsx78, jsxs as jsxs53 } from "react/jsx-runtime";
|
|
5430
5388
|
function SearchDialog() {
|
|
5431
5389
|
const [searchQuery, setSearchQuery] = useState15("");
|
|
5432
5390
|
const [fileResults, setFileResults] = useState15([]);
|
|
@@ -5473,8 +5431,8 @@ function SearchDialog() {
|
|
|
5473
5431
|
setFolderResults([]);
|
|
5474
5432
|
}
|
|
5475
5433
|
};
|
|
5476
|
-
return /* @__PURE__ */
|
|
5477
|
-
/* @__PURE__ */
|
|
5434
|
+
return /* @__PURE__ */ jsxs53(Fragment2, { children: [
|
|
5435
|
+
/* @__PURE__ */ jsxs53(
|
|
5478
5436
|
Button,
|
|
5479
5437
|
{
|
|
5480
5438
|
variant: "outline",
|
|
@@ -5483,13 +5441,13 @@ function SearchDialog() {
|
|
|
5483
5441
|
className: "border-gray-200 dark:border-zinc-700 bg-white dark:bg-zinc-900",
|
|
5484
5442
|
onClick: () => setIsSearchModalOpen(true),
|
|
5485
5443
|
children: [
|
|
5486
|
-
/* @__PURE__ */
|
|
5487
|
-
/* @__PURE__ */
|
|
5444
|
+
/* @__PURE__ */ jsx78(SearchIcon, { className: "size-4 text-gray-700 dark:text-zinc-300" }),
|
|
5445
|
+
/* @__PURE__ */ jsx78("span", { className: "hidden", children: "Search" })
|
|
5488
5446
|
]
|
|
5489
5447
|
}
|
|
5490
5448
|
),
|
|
5491
|
-
/* @__PURE__ */
|
|
5492
|
-
/* @__PURE__ */
|
|
5449
|
+
/* @__PURE__ */ jsxs53(CommandDialog, { className: "max-w-4xl w-full", open: isSearchModalOpen, onOpenChange: handleModalOpenChange, shouldFilter: false, children: [
|
|
5450
|
+
/* @__PURE__ */ jsx78(
|
|
5493
5451
|
CommandInput,
|
|
5494
5452
|
{
|
|
5495
5453
|
placeholder: "Type to search files or folders...",
|
|
@@ -5497,23 +5455,23 @@ function SearchDialog() {
|
|
|
5497
5455
|
onValueChange: handleInputChange
|
|
5498
5456
|
}
|
|
5499
5457
|
),
|
|
5500
|
-
/* @__PURE__ */
|
|
5501
|
-
loading && /* @__PURE__ */
|
|
5502
|
-
!loading && fileResults.length === 0 && folderResults.length === 0 && !searchQuery && /* @__PURE__ */
|
|
5503
|
-
/* @__PURE__ */
|
|
5504
|
-
/* @__PURE__ */
|
|
5505
|
-
/* @__PURE__ */
|
|
5506
|
-
/* @__PURE__ */
|
|
5507
|
-
/* @__PURE__ */
|
|
5458
|
+
/* @__PURE__ */ jsxs53(CommandList, { children: [
|
|
5459
|
+
loading && /* @__PURE__ */ jsx78(CommandEmpty, { children: "Searching..." }),
|
|
5460
|
+
!loading && fileResults.length === 0 && folderResults.length === 0 && !searchQuery && /* @__PURE__ */ jsx78(CommandEmpty, { children: /* @__PURE__ */ jsxs53("div", { className: "flex flex-col items-center justify-center py-8 px-4 text-center", children: [
|
|
5461
|
+
/* @__PURE__ */ jsx78(SearchIcon, { className: "size-12 text-gray-300 dark:text-zinc-600 mb-3" }),
|
|
5462
|
+
/* @__PURE__ */ jsx78("p", { className: "text-sm font-medium text-gray-900 dark:text-zinc-100 mb-1", children: "Search your files and folders" }),
|
|
5463
|
+
/* @__PURE__ */ jsx78("p", { className: "text-xs text-gray-500 dark:text-zinc-400", children: "Start typing to find what you're looking for" }),
|
|
5464
|
+
/* @__PURE__ */ jsx78("p", { className: "text-xs text-gray-500 dark:text-zinc-400 mt-2", children: /* @__PURE__ */ jsx78(KbdGroup, { children: /* @__PURE__ */ jsxs53(Kbd, { children: [
|
|
5465
|
+
/* @__PURE__ */ jsx78("span", { className: "text-lg", children: "\u2318" }),
|
|
5508
5466
|
" + K"
|
|
5509
5467
|
] }) }) })
|
|
5510
5468
|
] }) }),
|
|
5511
|
-
!loading && fileResults.length === 0 && folderResults.length === 0 && searchQuery && /* @__PURE__ */
|
|
5512
|
-
/* @__PURE__ */
|
|
5513
|
-
/* @__PURE__ */
|
|
5514
|
-
/* @__PURE__ */
|
|
5469
|
+
!loading && fileResults.length === 0 && folderResults.length === 0 && searchQuery && /* @__PURE__ */ jsx78(CommandEmpty, { children: /* @__PURE__ */ jsxs53("div", { className: "flex flex-col items-center justify-center py-8 px-4 text-center", children: [
|
|
5470
|
+
/* @__PURE__ */ jsx78(SearchIcon, { className: "size-12 text-gray-300 dark:text-zinc-600 mb-3" }),
|
|
5471
|
+
/* @__PURE__ */ jsx78("p", { className: "text-sm font-medium text-gray-900 dark:text-zinc-100 mb-1", children: "No results found" }),
|
|
5472
|
+
/* @__PURE__ */ jsx78("p", { className: "text-xs text-gray-500 dark:text-zinc-400", children: "Try searching with different keywords" })
|
|
5515
5473
|
] }) }),
|
|
5516
|
-
folderResults.length > 0 && /* @__PURE__ */
|
|
5474
|
+
folderResults.length > 0 && /* @__PURE__ */ jsx78(CommandGroup, { heading: "Folders", children: folderResults.map((folder) => /* @__PURE__ */ jsxs53(
|
|
5517
5475
|
CommandItem,
|
|
5518
5476
|
{
|
|
5519
5477
|
onSelect: () => {
|
|
@@ -5522,15 +5480,15 @@ function SearchDialog() {
|
|
|
5522
5480
|
handleFolderClick(folder);
|
|
5523
5481
|
},
|
|
5524
5482
|
children: [
|
|
5525
|
-
/* @__PURE__ */
|
|
5526
|
-
/* @__PURE__ */
|
|
5483
|
+
/* @__PURE__ */ jsx78(FolderIcon, { className: "size-4 mr-2 shrink-0", strokeWidth: 1.5 }),
|
|
5484
|
+
/* @__PURE__ */ jsx78("span", { children: middleTruncate(folder.name, 60) })
|
|
5527
5485
|
]
|
|
5528
5486
|
},
|
|
5529
5487
|
folder.id
|
|
5530
5488
|
)) }),
|
|
5531
|
-
fileResults.length > 0 && /* @__PURE__ */
|
|
5489
|
+
fileResults.length > 0 && /* @__PURE__ */ jsx78(CommandGroup, { heading: "Files", children: fileResults.map((file) => {
|
|
5532
5490
|
const { component: FilePreviewComponent } = getFileComponents(file);
|
|
5533
|
-
return /* @__PURE__ */
|
|
5491
|
+
return /* @__PURE__ */ jsxs53(
|
|
5534
5492
|
CommandItem,
|
|
5535
5493
|
{
|
|
5536
5494
|
onSelect: () => {
|
|
@@ -5538,8 +5496,8 @@ function SearchDialog() {
|
|
|
5538
5496
|
setFileDetailsModalFile(file);
|
|
5539
5497
|
},
|
|
5540
5498
|
children: [
|
|
5541
|
-
/* @__PURE__ */
|
|
5542
|
-
/* @__PURE__ */
|
|
5499
|
+
/* @__PURE__ */ jsx78("div", { className: "size-6 mr-2 shrink-0 flex items-center justify-center", children: /* @__PURE__ */ jsx78(FilePreviewComponent, { file, metaData: file.metaData }) }),
|
|
5500
|
+
/* @__PURE__ */ jsx78("span", { children: middleTruncate(file.name, 60) })
|
|
5543
5501
|
]
|
|
5544
5502
|
},
|
|
5545
5503
|
file.id
|
|
@@ -5553,7 +5511,7 @@ function SearchDialog() {
|
|
|
5553
5511
|
// components/ui/checkbox.tsx
|
|
5554
5512
|
import { cva as cva9 } from "class-variance-authority";
|
|
5555
5513
|
import { Checkbox as CheckboxPrimitive } from "radix-ui";
|
|
5556
|
-
import { jsx as
|
|
5514
|
+
import { jsx as jsx79, jsxs as jsxs54 } from "react/jsx-runtime";
|
|
5557
5515
|
var checkboxVariants = cva9(
|
|
5558
5516
|
`
|
|
5559
5517
|
group peer bg-background shrink-0 rounded-md border border-input ring-offset-background focus-visible:outline-none
|
|
@@ -5583,20 +5541,20 @@ function Checkbox(_a) {
|
|
|
5583
5541
|
"className",
|
|
5584
5542
|
"size"
|
|
5585
5543
|
]);
|
|
5586
|
-
return /* @__PURE__ */
|
|
5587
|
-
/* @__PURE__ */
|
|
5588
|
-
/* @__PURE__ */
|
|
5544
|
+
return /* @__PURE__ */ jsx79(CheckboxPrimitive.Root, __spreadProps(__spreadValues({ "data-slot": "checkbox", className: cn(checkboxVariants({ size }), className) }, props), { children: /* @__PURE__ */ jsxs54(CheckboxPrimitive.Indicator, { className: cn("flex items-center justify-center text-current"), children: [
|
|
5545
|
+
/* @__PURE__ */ jsx79(CheckIcon, { className: "group-data-[state=indeterminate]:hidden" }),
|
|
5546
|
+
/* @__PURE__ */ jsx79(MinusIcon, { className: "hidden group-data-[state=indeterminate]:block" })
|
|
5589
5547
|
] }) }));
|
|
5590
5548
|
}
|
|
5591
5549
|
|
|
5592
5550
|
// components/layout/header-actions.tsx
|
|
5593
|
-
import { jsx as
|
|
5551
|
+
import { jsx as jsx80, jsxs as jsxs55 } from "react/jsx-runtime";
|
|
5594
5552
|
function SearchAction() {
|
|
5595
|
-
return /* @__PURE__ */
|
|
5553
|
+
return /* @__PURE__ */ jsx80(SearchDialog, {});
|
|
5596
5554
|
}
|
|
5597
5555
|
function UploadFileAction() {
|
|
5598
5556
|
const { setIsUploadModalOpen } = useFileManager();
|
|
5599
|
-
return /* @__PURE__ */
|
|
5557
|
+
return /* @__PURE__ */ jsxs55(
|
|
5600
5558
|
Button,
|
|
5601
5559
|
{
|
|
5602
5560
|
variant: "outline",
|
|
@@ -5605,15 +5563,15 @@ function UploadFileAction() {
|
|
|
5605
5563
|
className: "border-gray-200 dark:border-zinc-700 bg-white dark:bg-zinc-900 text-md font-medium",
|
|
5606
5564
|
onClick: () => setIsUploadModalOpen(true),
|
|
5607
5565
|
children: [
|
|
5608
|
-
/* @__PURE__ */
|
|
5609
|
-
/* @__PURE__ */
|
|
5566
|
+
/* @__PURE__ */ jsx80(PlusIcon, { strokeWidth: 2, className: "size-5 text-gray-900 dark:text-zinc-100" }),
|
|
5567
|
+
/* @__PURE__ */ jsx80("span", { className: "hidden sm:inline", children: "Upload File" })
|
|
5610
5568
|
]
|
|
5611
5569
|
}
|
|
5612
5570
|
);
|
|
5613
5571
|
}
|
|
5614
5572
|
function CreateFolderAction() {
|
|
5615
5573
|
const { setIsCreateFolderModalOpen } = useFileManager();
|
|
5616
|
-
return /* @__PURE__ */
|
|
5574
|
+
return /* @__PURE__ */ jsxs55(
|
|
5617
5575
|
Button,
|
|
5618
5576
|
{
|
|
5619
5577
|
variant: "outline",
|
|
@@ -5622,8 +5580,8 @@ function CreateFolderAction() {
|
|
|
5622
5580
|
className: "border-gray-200 dark:border-zinc-700 bg-white dark:bg-zinc-900",
|
|
5623
5581
|
onClick: () => setIsCreateFolderModalOpen(true),
|
|
5624
5582
|
children: [
|
|
5625
|
-
/* @__PURE__ */
|
|
5626
|
-
/* @__PURE__ */
|
|
5583
|
+
/* @__PURE__ */ jsx80(UploadFolderIcon, { className: "size-5 text-gray-900 dark:text-zinc-100" }),
|
|
5584
|
+
/* @__PURE__ */ jsx80("span", { className: "hidden", children: "Create Folder" })
|
|
5627
5585
|
]
|
|
5628
5586
|
}
|
|
5629
5587
|
);
|
|
@@ -5633,9 +5591,9 @@ function CreateFolderAction() {
|
|
|
5633
5591
|
import { useEffect as useEffect7, useState as useState16 } from "react";
|
|
5634
5592
|
|
|
5635
5593
|
// components/icons/theme.tsx
|
|
5636
|
-
import { jsx as
|
|
5594
|
+
import { jsx as jsx81, jsxs as jsxs56 } from "react/jsx-runtime";
|
|
5637
5595
|
function SunIcon(props) {
|
|
5638
|
-
return /* @__PURE__ */
|
|
5596
|
+
return /* @__PURE__ */ jsxs56(
|
|
5639
5597
|
"svg",
|
|
5640
5598
|
__spreadProps(__spreadValues({
|
|
5641
5599
|
xmlns: "http://www.w3.org/2000/svg",
|
|
@@ -5649,14 +5607,14 @@ function SunIcon(props) {
|
|
|
5649
5607
|
strokeLinejoin: "round"
|
|
5650
5608
|
}, props), {
|
|
5651
5609
|
children: [
|
|
5652
|
-
/* @__PURE__ */
|
|
5653
|
-
/* @__PURE__ */
|
|
5610
|
+
/* @__PURE__ */ jsx81("circle", { cx: "12", cy: "12", r: "4" }),
|
|
5611
|
+
/* @__PURE__ */ jsx81("path", { d: "M12 2v2M12 20v2M4.93 4.93l1.41 1.41M17.66 17.66l1.41 1.41M2 12h2M20 12h2M6.34 17.66l-1.41 1.41M19.07 4.93l-1.41 1.41" })
|
|
5654
5612
|
]
|
|
5655
5613
|
})
|
|
5656
5614
|
);
|
|
5657
5615
|
}
|
|
5658
5616
|
function MoonIcon(props) {
|
|
5659
|
-
return /* @__PURE__ */
|
|
5617
|
+
return /* @__PURE__ */ jsx81(
|
|
5660
5618
|
"svg",
|
|
5661
5619
|
__spreadProps(__spreadValues({
|
|
5662
5620
|
xmlns: "http://www.w3.org/2000/svg",
|
|
@@ -5669,13 +5627,13 @@ function MoonIcon(props) {
|
|
|
5669
5627
|
strokeLinecap: "round",
|
|
5670
5628
|
strokeLinejoin: "round"
|
|
5671
5629
|
}, props), {
|
|
5672
|
-
children: /* @__PURE__ */
|
|
5630
|
+
children: /* @__PURE__ */ jsx81("path", { d: "M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z" })
|
|
5673
5631
|
})
|
|
5674
5632
|
);
|
|
5675
5633
|
}
|
|
5676
5634
|
|
|
5677
5635
|
// components/layout/theme-toggle.tsx
|
|
5678
|
-
import { jsx as
|
|
5636
|
+
import { jsx as jsx82 } from "react/jsx-runtime";
|
|
5679
5637
|
function ThemeToggle() {
|
|
5680
5638
|
const [isDark, setIsDark] = useState16(false);
|
|
5681
5639
|
useEffect7(() => {
|
|
@@ -5690,7 +5648,7 @@ function ThemeToggle() {
|
|
|
5690
5648
|
document.documentElement.classList.toggle("dark", next);
|
|
5691
5649
|
localStorage.setItem("theme", next ? "dark" : "light");
|
|
5692
5650
|
};
|
|
5693
|
-
return /* @__PURE__ */
|
|
5651
|
+
return /* @__PURE__ */ jsx82(
|
|
5694
5652
|
Button,
|
|
5695
5653
|
{
|
|
5696
5654
|
variant: "outline",
|
|
@@ -5699,64 +5657,64 @@ function ThemeToggle() {
|
|
|
5699
5657
|
onClick: toggle,
|
|
5700
5658
|
className: "border-gray-200 dark:border-zinc-700 bg-white dark:bg-zinc-900",
|
|
5701
5659
|
"aria-label": isDark ? "Switch to light mode" : "Switch to dark mode",
|
|
5702
|
-
children: isDark ? /* @__PURE__ */
|
|
5660
|
+
children: isDark ? /* @__PURE__ */ jsx82(SunIcon, { className: "size-4 text-yellow-500" }) : /* @__PURE__ */ jsx82(MoonIcon, { className: "size-4 text-gray-700 dark:text-zinc-300" })
|
|
5703
5661
|
}
|
|
5704
5662
|
);
|
|
5705
5663
|
}
|
|
5706
5664
|
|
|
5707
5665
|
// components/layout/header-actions-responsive.tsx
|
|
5708
|
-
import { Fragment as Fragment3, jsx as
|
|
5666
|
+
import { Fragment as Fragment3, jsx as jsx83, jsxs as jsxs57 } from "react/jsx-runtime";
|
|
5709
5667
|
function ResponsiveHeaderActions() {
|
|
5710
5668
|
const { setIsUploadModalOpen, setIsCreateFolderModalOpen, setIsSearchModalOpen } = useFileManager();
|
|
5711
|
-
return /* @__PURE__ */
|
|
5712
|
-
/* @__PURE__ */
|
|
5713
|
-
/* @__PURE__ */
|
|
5714
|
-
/* @__PURE__ */
|
|
5715
|
-
/* @__PURE__ */
|
|
5716
|
-
/* @__PURE__ */
|
|
5669
|
+
return /* @__PURE__ */ jsxs57(Fragment3, { children: [
|
|
5670
|
+
/* @__PURE__ */ jsxs57("div", { className: "hidden md:flex gap-2", children: [
|
|
5671
|
+
/* @__PURE__ */ jsx83(UploadFileAction, {}),
|
|
5672
|
+
/* @__PURE__ */ jsx83(CreateFolderAction, {}),
|
|
5673
|
+
/* @__PURE__ */ jsx83(SearchAction, {}),
|
|
5674
|
+
/* @__PURE__ */ jsx83(ThemeToggle, {})
|
|
5717
5675
|
] }),
|
|
5718
|
-
/* @__PURE__ */
|
|
5719
|
-
/* @__PURE__ */
|
|
5676
|
+
/* @__PURE__ */ jsx83("div", { className: "flex md:hidden", children: /* @__PURE__ */ jsxs57(DropdownMenu, { children: [
|
|
5677
|
+
/* @__PURE__ */ jsx83(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsx83(
|
|
5720
5678
|
Button,
|
|
5721
5679
|
{
|
|
5722
5680
|
variant: "outline",
|
|
5723
5681
|
size: "icon",
|
|
5724
5682
|
radius: "full",
|
|
5725
5683
|
className: "border-gray-200 dark:border-zinc-700 bg-white dark:bg-zinc-900",
|
|
5726
|
-
children: /* @__PURE__ */
|
|
5684
|
+
children: /* @__PURE__ */ jsx83(MoveHorizontalIcon, { className: "size-5" })
|
|
5727
5685
|
}
|
|
5728
5686
|
) }),
|
|
5729
|
-
/* @__PURE__ */
|
|
5730
|
-
/* @__PURE__ */
|
|
5687
|
+
/* @__PURE__ */ jsxs57(DropdownMenuContent, { align: "end", className: "w-56 rounded-2xl shadow-xl bg-white/50 dark:bg-zinc-900/80 backdrop-blur-2xl border-gray-200 dark:border-zinc-700", children: [
|
|
5688
|
+
/* @__PURE__ */ jsxs57(
|
|
5731
5689
|
DropdownMenuItem,
|
|
5732
5690
|
{
|
|
5733
5691
|
onClick: () => setIsUploadModalOpen(true),
|
|
5734
5692
|
className: "cursor-pointer",
|
|
5735
5693
|
children: [
|
|
5736
|
-
/* @__PURE__ */
|
|
5737
|
-
/* @__PURE__ */
|
|
5694
|
+
/* @__PURE__ */ jsx83(PlusIcon, { className: "size-5 text-gray-900 dark:text-zinc-100" }),
|
|
5695
|
+
/* @__PURE__ */ jsx83("span", { className: "inline", children: "Upload File" })
|
|
5738
5696
|
]
|
|
5739
5697
|
}
|
|
5740
5698
|
),
|
|
5741
|
-
/* @__PURE__ */
|
|
5699
|
+
/* @__PURE__ */ jsxs57(
|
|
5742
5700
|
DropdownMenuItem,
|
|
5743
5701
|
{
|
|
5744
5702
|
onClick: () => setIsCreateFolderModalOpen(true),
|
|
5745
5703
|
className: "cursor-pointer",
|
|
5746
5704
|
children: [
|
|
5747
|
-
/* @__PURE__ */
|
|
5748
|
-
/* @__PURE__ */
|
|
5705
|
+
/* @__PURE__ */ jsx83(UploadFolderIcon, { className: "size-5 text-gray-900 dark:text-zinc-100" }),
|
|
5706
|
+
/* @__PURE__ */ jsx83("span", { className: "inline", children: "Create Folder" })
|
|
5749
5707
|
]
|
|
5750
5708
|
}
|
|
5751
5709
|
),
|
|
5752
|
-
/* @__PURE__ */
|
|
5710
|
+
/* @__PURE__ */ jsxs57(
|
|
5753
5711
|
DropdownMenuItem,
|
|
5754
5712
|
{
|
|
5755
5713
|
onClick: () => setIsSearchModalOpen(true),
|
|
5756
5714
|
className: "cursor-pointer",
|
|
5757
5715
|
children: [
|
|
5758
|
-
/* @__PURE__ */
|
|
5759
|
-
/* @__PURE__ */
|
|
5716
|
+
/* @__PURE__ */ jsx83(SearchIcon, { className: "size-5 text-gray-700 dark:text-zinc-300" }),
|
|
5717
|
+
/* @__PURE__ */ jsx83("span", { className: "inline", children: "Search" })
|
|
5760
5718
|
]
|
|
5761
5719
|
}
|
|
5762
5720
|
)
|
|
@@ -5766,11 +5724,11 @@ function ResponsiveHeaderActions() {
|
|
|
5766
5724
|
}
|
|
5767
5725
|
function ModalResponsiveHeaderActions({ onSearchClick }) {
|
|
5768
5726
|
const { setIsUploadModalOpen, setIsCreateFolderModalOpen } = useFileManager();
|
|
5769
|
-
return /* @__PURE__ */
|
|
5770
|
-
/* @__PURE__ */
|
|
5771
|
-
/* @__PURE__ */
|
|
5772
|
-
/* @__PURE__ */
|
|
5773
|
-
onSearchClick ? /* @__PURE__ */
|
|
5727
|
+
return /* @__PURE__ */ jsxs57(Fragment3, { children: [
|
|
5728
|
+
/* @__PURE__ */ jsxs57("div", { className: "hidden md:flex gap-2", children: [
|
|
5729
|
+
/* @__PURE__ */ jsx83(UploadFileAction, {}),
|
|
5730
|
+
/* @__PURE__ */ jsx83(CreateFolderAction, {}),
|
|
5731
|
+
onSearchClick ? /* @__PURE__ */ jsxs57(
|
|
5774
5732
|
Button,
|
|
5775
5733
|
{
|
|
5776
5734
|
variant: "outline",
|
|
@@ -5779,54 +5737,54 @@ function ModalResponsiveHeaderActions({ onSearchClick }) {
|
|
|
5779
5737
|
className: "border-gray-200 dark:border-zinc-700 bg-white dark:bg-zinc-900",
|
|
5780
5738
|
onClick: onSearchClick,
|
|
5781
5739
|
children: [
|
|
5782
|
-
/* @__PURE__ */
|
|
5783
|
-
/* @__PURE__ */
|
|
5740
|
+
/* @__PURE__ */ jsx83(SearchIcon, { className: "size-5 text-gray-900 dark:text-zinc-100" }),
|
|
5741
|
+
/* @__PURE__ */ jsx83("span", { className: "hidden", children: "Search" })
|
|
5784
5742
|
]
|
|
5785
5743
|
}
|
|
5786
5744
|
) : null
|
|
5787
5745
|
] }),
|
|
5788
|
-
/* @__PURE__ */
|
|
5789
|
-
/* @__PURE__ */
|
|
5746
|
+
/* @__PURE__ */ jsx83("div", { className: "flex md:hidden", children: /* @__PURE__ */ jsxs57(DropdownMenu, { children: [
|
|
5747
|
+
/* @__PURE__ */ jsx83(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsx83(
|
|
5790
5748
|
Button,
|
|
5791
5749
|
{
|
|
5792
5750
|
variant: "outline",
|
|
5793
5751
|
size: "icon",
|
|
5794
5752
|
radius: "full",
|
|
5795
5753
|
className: "border-gray-200 dark:border-zinc-700 bg-white dark:bg-zinc-900",
|
|
5796
|
-
children: /* @__PURE__ */
|
|
5754
|
+
children: /* @__PURE__ */ jsx83(MoveHorizontalIcon, { className: "size-5" })
|
|
5797
5755
|
}
|
|
5798
5756
|
) }),
|
|
5799
|
-
/* @__PURE__ */
|
|
5800
|
-
/* @__PURE__ */
|
|
5757
|
+
/* @__PURE__ */ jsxs57(DropdownMenuContent, { align: "end", className: "w-48", children: [
|
|
5758
|
+
/* @__PURE__ */ jsxs57(
|
|
5801
5759
|
DropdownMenuItem,
|
|
5802
5760
|
{
|
|
5803
5761
|
onClick: () => setIsUploadModalOpen(true),
|
|
5804
5762
|
className: "cursor-pointer",
|
|
5805
5763
|
children: [
|
|
5806
|
-
/* @__PURE__ */
|
|
5807
|
-
/* @__PURE__ */
|
|
5764
|
+
/* @__PURE__ */ jsx83(PlusIcon, { className: "size-5 text-gray-900 dark:text-zinc-100" }),
|
|
5765
|
+
/* @__PURE__ */ jsx83("span", { className: "inline", children: "Upload File" })
|
|
5808
5766
|
]
|
|
5809
5767
|
}
|
|
5810
5768
|
),
|
|
5811
|
-
/* @__PURE__ */
|
|
5769
|
+
/* @__PURE__ */ jsxs57(
|
|
5812
5770
|
DropdownMenuItem,
|
|
5813
5771
|
{
|
|
5814
5772
|
onClick: () => setIsCreateFolderModalOpen(true),
|
|
5815
5773
|
className: "cursor-pointer",
|
|
5816
5774
|
children: [
|
|
5817
|
-
/* @__PURE__ */
|
|
5818
|
-
/* @__PURE__ */
|
|
5775
|
+
/* @__PURE__ */ jsx83(UploadFolderIcon, { className: "size-5 text-gray-900 dark:text-zinc-100" }),
|
|
5776
|
+
/* @__PURE__ */ jsx83("span", { className: "inline", children: "Create Folder" })
|
|
5819
5777
|
]
|
|
5820
5778
|
}
|
|
5821
5779
|
),
|
|
5822
|
-
onSearchClick ? /* @__PURE__ */
|
|
5780
|
+
onSearchClick ? /* @__PURE__ */ jsxs57(
|
|
5823
5781
|
DropdownMenuItem,
|
|
5824
5782
|
{
|
|
5825
5783
|
onClick: onSearchClick,
|
|
5826
5784
|
className: "cursor-pointer",
|
|
5827
5785
|
children: [
|
|
5828
|
-
/* @__PURE__ */
|
|
5829
|
-
/* @__PURE__ */
|
|
5786
|
+
/* @__PURE__ */ jsx83(SearchIcon, { className: "size-5 text-gray-700 dark:text-zinc-300" }),
|
|
5787
|
+
/* @__PURE__ */ jsx83("span", { className: "inline", children: "Search" })
|
|
5830
5788
|
]
|
|
5831
5789
|
}
|
|
5832
5790
|
) : null
|
|
@@ -5840,18 +5798,18 @@ import React from "react";
|
|
|
5840
5798
|
|
|
5841
5799
|
// components/ui/context-menu.tsx
|
|
5842
5800
|
import * as ContextMenuPrimitive from "@radix-ui/react-context-menu";
|
|
5843
|
-
import { jsx as
|
|
5801
|
+
import { jsx as jsx84, jsxs as jsxs58 } from "react/jsx-runtime";
|
|
5844
5802
|
function ContextMenu(_a) {
|
|
5845
5803
|
var props = __objRest(_a, []);
|
|
5846
|
-
return /* @__PURE__ */
|
|
5804
|
+
return /* @__PURE__ */ jsx84(ContextMenuPrimitive.Root, __spreadValues({ "data-slot": "context-menu" }, props));
|
|
5847
5805
|
}
|
|
5848
5806
|
function ContextMenuTrigger(_a) {
|
|
5849
5807
|
var props = __objRest(_a, []);
|
|
5850
|
-
return /* @__PURE__ */
|
|
5808
|
+
return /* @__PURE__ */ jsx84(ContextMenuPrimitive.Trigger, __spreadValues({ "data-slot": "context-menu-trigger" }, props));
|
|
5851
5809
|
}
|
|
5852
5810
|
function ContextMenuContent(_a) {
|
|
5853
5811
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
5854
|
-
return /* @__PURE__ */
|
|
5812
|
+
return /* @__PURE__ */ jsx84(ContextMenuPrimitive.Portal, { children: /* @__PURE__ */ jsx84(
|
|
5855
5813
|
ContextMenuPrimitive.Content,
|
|
5856
5814
|
__spreadValues({
|
|
5857
5815
|
"data-slot": "context-menu-content",
|
|
@@ -5872,7 +5830,7 @@ function ContextMenuItem(_a) {
|
|
|
5872
5830
|
"inset",
|
|
5873
5831
|
"variant"
|
|
5874
5832
|
]);
|
|
5875
|
-
return /* @__PURE__ */
|
|
5833
|
+
return /* @__PURE__ */ jsx84(
|
|
5876
5834
|
ContextMenuPrimitive.Item,
|
|
5877
5835
|
__spreadValues({
|
|
5878
5836
|
"data-slot": "context-menu-item",
|
|
@@ -5887,7 +5845,7 @@ function ContextMenuItem(_a) {
|
|
|
5887
5845
|
}
|
|
5888
5846
|
function ContextMenuSeparator(_a) {
|
|
5889
5847
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
5890
|
-
return /* @__PURE__ */
|
|
5848
|
+
return /* @__PURE__ */ jsx84(
|
|
5891
5849
|
ContextMenuPrimitive.Separator,
|
|
5892
5850
|
__spreadValues({
|
|
5893
5851
|
"data-slot": "context-menu-separator",
|
|
@@ -5897,7 +5855,7 @@ function ContextMenuSeparator(_a) {
|
|
|
5897
5855
|
}
|
|
5898
5856
|
|
|
5899
5857
|
// components/cards/card-context-menu.tsx
|
|
5900
|
-
import { jsx as
|
|
5858
|
+
import { jsx as jsx85, jsxs as jsxs59 } from "react/jsx-runtime";
|
|
5901
5859
|
function CardContextMenu({
|
|
5902
5860
|
children,
|
|
5903
5861
|
menuItems,
|
|
@@ -5912,8 +5870,8 @@ function CardContextMenu({
|
|
|
5912
5870
|
const MenuItemComponent = isDropdown ? DropdownMenuItem : ContextMenuItem;
|
|
5913
5871
|
const SeparatorComponent = isDropdown ? DropdownMenuSeparator : ContextMenuSeparator;
|
|
5914
5872
|
const nextItemIsDestructive = index < menuItems.length - 1 && menuItems[index + 1].variant === "destructive";
|
|
5915
|
-
return /* @__PURE__ */
|
|
5916
|
-
/* @__PURE__ */
|
|
5873
|
+
return /* @__PURE__ */ jsxs59(React.Fragment, { children: [
|
|
5874
|
+
/* @__PURE__ */ jsxs59(
|
|
5917
5875
|
MenuItemComponent,
|
|
5918
5876
|
{
|
|
5919
5877
|
onClick: item.onClick,
|
|
@@ -5924,40 +5882,40 @@ function CardContextMenu({
|
|
|
5924
5882
|
]
|
|
5925
5883
|
}
|
|
5926
5884
|
),
|
|
5927
|
-
nextItemIsDestructive && !isLast && /* @__PURE__ */
|
|
5885
|
+
nextItemIsDestructive && !isLast && /* @__PURE__ */ jsx85(SeparatorComponent, { className: "bg-gray-200 dark:bg-zinc-700" })
|
|
5928
5886
|
] }, index);
|
|
5929
5887
|
});
|
|
5930
5888
|
};
|
|
5931
|
-
return /* @__PURE__ */
|
|
5932
|
-
/* @__PURE__ */
|
|
5889
|
+
return /* @__PURE__ */ jsxs59(ContextMenu, { children: [
|
|
5890
|
+
/* @__PURE__ */ jsx85(ContextMenuTrigger, { children: /* @__PURE__ */ jsxs59("div", { className: "relative w-full h-full", children: [
|
|
5933
5891
|
children,
|
|
5934
|
-
shouldShowMenu && /* @__PURE__ */
|
|
5892
|
+
shouldShowMenu && /* @__PURE__ */ jsx85(
|
|
5935
5893
|
"div",
|
|
5936
5894
|
{
|
|
5937
5895
|
className: "absolute top-0 right-0 z-10 md:hidden",
|
|
5938
5896
|
onClick: (e) => e.stopPropagation(),
|
|
5939
|
-
children: /* @__PURE__ */
|
|
5940
|
-
/* @__PURE__ */
|
|
5897
|
+
children: /* @__PURE__ */ jsxs59(DropdownMenu, { children: [
|
|
5898
|
+
/* @__PURE__ */ jsx85(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsx85(
|
|
5941
5899
|
Button,
|
|
5942
5900
|
{
|
|
5943
5901
|
variant: "ghost",
|
|
5944
5902
|
size: "icon",
|
|
5945
5903
|
radius: "full",
|
|
5946
5904
|
className: "focus-visible:ring-0 focus-visible:ring-offset-0",
|
|
5947
|
-
children: /* @__PURE__ */
|
|
5905
|
+
children: /* @__PURE__ */ jsx85(MoveVerticalIcon, { className: "size-4 text-gray-700 dark:text-zinc-300" })
|
|
5948
5906
|
}
|
|
5949
5907
|
) }),
|
|
5950
|
-
/* @__PURE__ */
|
|
5908
|
+
/* @__PURE__ */ jsx85(DropdownMenuContent, { className: "w-56 rounded-2xl shadow-xl bg-white/50 dark:bg-zinc-900/80 backdrop-blur-2xl border-gray-200 dark:border-zinc-700", children: renderMenuItems(true) })
|
|
5951
5909
|
] })
|
|
5952
5910
|
}
|
|
5953
5911
|
)
|
|
5954
5912
|
] }) }),
|
|
5955
|
-
shouldShowMenu && /* @__PURE__ */
|
|
5913
|
+
shouldShowMenu && /* @__PURE__ */ jsx85(ContextMenuContent, { className: "w-56 rounded-2xl shadow-xl bg-white/50 dark:bg-zinc-900/80 backdrop-blur-2xl border-gray-200 dark:border-zinc-700", children: renderMenuItems(false) })
|
|
5956
5914
|
] });
|
|
5957
5915
|
}
|
|
5958
5916
|
|
|
5959
5917
|
// components/cards/file-card.tsx
|
|
5960
|
-
import { jsx as
|
|
5918
|
+
import { jsx as jsx86, jsxs as jsxs60 } from "react/jsx-runtime";
|
|
5961
5919
|
function FileCard({
|
|
5962
5920
|
file,
|
|
5963
5921
|
isSelected,
|
|
@@ -6003,45 +5961,45 @@ function FileCard({
|
|
|
6003
5961
|
const menuItems = [
|
|
6004
5962
|
{
|
|
6005
5963
|
label: "Edit",
|
|
6006
|
-
icon: /* @__PURE__ */
|
|
5964
|
+
icon: /* @__PURE__ */ jsx86(EditIcon, { className: "size-6" }),
|
|
6007
5965
|
onClick: handleEdit
|
|
6008
5966
|
},
|
|
6009
5967
|
{
|
|
6010
5968
|
label: "Select File",
|
|
6011
|
-
icon: /* @__PURE__ */
|
|
5969
|
+
icon: /* @__PURE__ */ jsx86(SelectIcon, { className: "size-6" }),
|
|
6012
5970
|
onClick: handleSelectFile
|
|
6013
5971
|
},
|
|
6014
5972
|
{
|
|
6015
5973
|
label: "Move to...",
|
|
6016
|
-
icon: /* @__PURE__ */
|
|
5974
|
+
icon: /* @__PURE__ */ jsx86(MoveIcon, { className: "size-6" }),
|
|
6017
5975
|
onClick: handleMove
|
|
6018
5976
|
},
|
|
6019
5977
|
{
|
|
6020
5978
|
label: "Delete",
|
|
6021
|
-
icon: /* @__PURE__ */
|
|
5979
|
+
icon: /* @__PURE__ */ jsx86(TrashIcon, { className: "size-6 text-red-600" }),
|
|
6022
5980
|
onClick: handleDelete,
|
|
6023
5981
|
variant: "destructive"
|
|
6024
5982
|
}
|
|
6025
5983
|
];
|
|
6026
|
-
return /* @__PURE__ */
|
|
5984
|
+
return /* @__PURE__ */ jsx86(
|
|
6027
5985
|
CardContextMenu,
|
|
6028
5986
|
{
|
|
6029
5987
|
menuItems,
|
|
6030
5988
|
isInSelectionMode,
|
|
6031
5989
|
mode,
|
|
6032
|
-
children: /* @__PURE__ */
|
|
5990
|
+
children: /* @__PURE__ */ jsxs60(
|
|
6033
5991
|
"div",
|
|
6034
5992
|
{
|
|
6035
5993
|
className: "group relative flex flex-col items-center justify-start transition-all duration-200 cursor-pointer w-full select-none",
|
|
6036
5994
|
onDoubleClick: handleClick,
|
|
6037
5995
|
onClick: handleClick,
|
|
6038
5996
|
children: [
|
|
6039
|
-
/* @__PURE__ */
|
|
5997
|
+
/* @__PURE__ */ jsxs60("div", { className: `
|
|
6040
5998
|
relative w-full aspect-square flex items-center justify-center mb-1 overflow-hidden rounded-2xl hover:bg-accent/60
|
|
6041
5999
|
${isSelected ? "bg-accent/60" : ""}
|
|
6042
6000
|
`, children: [
|
|
6043
|
-
/* @__PURE__ */
|
|
6044
|
-
(selectionMode === SELECTION_MODE.MULTIPLE || showCheckbox) && /* @__PURE__ */
|
|
6001
|
+
/* @__PURE__ */ jsx86("div", { className: "w-[75%] h-[75%] flex items-center justify-center", children: /* @__PURE__ */ jsx86(FilePreviewComponent, { file, metaData: file.metaData }) }),
|
|
6002
|
+
(selectionMode === SELECTION_MODE.MULTIPLE || showCheckbox) && /* @__PURE__ */ jsx86("div", { className: `absolute top-2 left-2 z-10 ${isSelected ? "opacity-100" : "opacity-0 group-hover:opacity-100"} transition-opacity duration-200`, onClick: handleCheckboxClick, children: /* @__PURE__ */ jsx86(
|
|
6045
6003
|
Checkbox,
|
|
6046
6004
|
{
|
|
6047
6005
|
checked: isSelected,
|
|
@@ -6050,14 +6008,14 @@ function FileCard({
|
|
|
6050
6008
|
}
|
|
6051
6009
|
) })
|
|
6052
6010
|
] }),
|
|
6053
|
-
/* @__PURE__ */
|
|
6054
|
-
/* @__PURE__ */
|
|
6011
|
+
/* @__PURE__ */ jsxs60("div", { className: "w-full text-center px-0.5 flex flex-col items-center", children: [
|
|
6012
|
+
/* @__PURE__ */ jsx86("span", { className: `
|
|
6055
6013
|
text-[13px] font-semibold leading-[1.3] tracking-tight line-clamp-2 px-2.5 py-[2px] rounded-[6px] transition-colors duration-100 wrap-break-word max-w-full
|
|
6056
6014
|
${isSelected ? "bg-primary text-primary-foreground antialiased shadow-sm" : "text-foreground group-hover:text-foreground/80"}
|
|
6057
6015
|
`, children: file.name }),
|
|
6058
|
-
/* @__PURE__ */
|
|
6059
|
-
/* @__PURE__ */
|
|
6060
|
-
FileMetadataComponent ? /* @__PURE__ */
|
|
6016
|
+
/* @__PURE__ */ jsxs60("div", { className: `flex flex-col items-center justify-center gap-0.5 mt-1 transition-opacity duration-200 ${isSelected ? "opacity-60" : "opacity-100"}`, children: [
|
|
6017
|
+
/* @__PURE__ */ jsx86("span", { className: "text-[11px] text-primary font-medium tracking-tight", children: getFileSize(file.size) }),
|
|
6018
|
+
FileMetadataComponent ? /* @__PURE__ */ jsx86("div", { className: "text-[11px] text-muted-foreground flex items-center scale-95", children: /* @__PURE__ */ jsx86(FileMetadataComponent, { file }) }) : null
|
|
6061
6019
|
] })
|
|
6062
6020
|
] })
|
|
6063
6021
|
]
|
|
@@ -6068,7 +6026,7 @@ function FileCard({
|
|
|
6068
6026
|
}
|
|
6069
6027
|
|
|
6070
6028
|
// components/cards/folder-card.tsx
|
|
6071
|
-
import { jsx as
|
|
6029
|
+
import { jsx as jsx87, jsxs as jsxs61 } from "react/jsx-runtime";
|
|
6072
6030
|
function FolderCard({
|
|
6073
6031
|
folder,
|
|
6074
6032
|
isSelected,
|
|
@@ -6113,45 +6071,45 @@ function FolderCard({
|
|
|
6113
6071
|
const menuItems = [
|
|
6114
6072
|
{
|
|
6115
6073
|
label: "Rename",
|
|
6116
|
-
icon: /* @__PURE__ */
|
|
6074
|
+
icon: /* @__PURE__ */ jsx87(EditIcon, { className: "size-6" }),
|
|
6117
6075
|
onClick: handleRename
|
|
6118
6076
|
},
|
|
6119
6077
|
{
|
|
6120
6078
|
label: "Select Folder",
|
|
6121
|
-
icon: /* @__PURE__ */
|
|
6079
|
+
icon: /* @__PURE__ */ jsx87(SelectIcon, { className: "size-6" }),
|
|
6122
6080
|
onClick: handleSelectFolder
|
|
6123
6081
|
},
|
|
6124
6082
|
{
|
|
6125
6083
|
label: "Move to...",
|
|
6126
|
-
icon: /* @__PURE__ */
|
|
6084
|
+
icon: /* @__PURE__ */ jsx87(MoveIcon, { className: "size-5 mr-1" }),
|
|
6127
6085
|
onClick: handleMove
|
|
6128
6086
|
},
|
|
6129
6087
|
{
|
|
6130
6088
|
label: "Delete",
|
|
6131
|
-
icon: /* @__PURE__ */
|
|
6089
|
+
icon: /* @__PURE__ */ jsx87(TrashIcon, { className: "size-5 mr-1 text-red-600" }),
|
|
6132
6090
|
onClick: handleDelete,
|
|
6133
6091
|
variant: "destructive"
|
|
6134
6092
|
}
|
|
6135
6093
|
];
|
|
6136
|
-
return /* @__PURE__ */
|
|
6094
|
+
return /* @__PURE__ */ jsx87(
|
|
6137
6095
|
CardContextMenu,
|
|
6138
6096
|
{
|
|
6139
6097
|
menuItems,
|
|
6140
6098
|
isInSelectionMode,
|
|
6141
6099
|
mode,
|
|
6142
|
-
children: /* @__PURE__ */
|
|
6100
|
+
children: /* @__PURE__ */ jsxs61(
|
|
6143
6101
|
"div",
|
|
6144
6102
|
{
|
|
6145
6103
|
className: "group relative flex flex-col items-center justify-start transition-all duration-200 cursor-pointer w-full select-none",
|
|
6146
6104
|
onDoubleClick: handleClick,
|
|
6147
6105
|
onClick: handleClick,
|
|
6148
6106
|
children: [
|
|
6149
|
-
/* @__PURE__ */
|
|
6107
|
+
/* @__PURE__ */ jsxs61("div", { className: `
|
|
6150
6108
|
relative w-full aspect-square flex items-center justify-center mb-1 overflow-hidden rounded-2xl hover:bg-accent/60
|
|
6151
6109
|
${isSelected ? "bg-accent/60" : ""}
|
|
6152
6110
|
`, children: [
|
|
6153
|
-
/* @__PURE__ */
|
|
6154
|
-
(selectionMode === SELECTION_MODE.MULTIPLE || showCheckbox) && /* @__PURE__ */
|
|
6111
|
+
/* @__PURE__ */ jsx87("div", { className: "w-[75%] h-[75%] flex items-center justify-center transform dark:brightness-[2]", children: /* @__PURE__ */ jsx87(FolderIcon, { className: "w-full h-full text-blue-400 fill-blue-400/20 drop-shadow-sm", strokeWidth: 1.5 }) }),
|
|
6112
|
+
(selectionMode === SELECTION_MODE.MULTIPLE || showCheckbox) && /* @__PURE__ */ jsx87("div", { className: `absolute top-2 left-2 z-10 ${isSelected ? "opacity-100" : "opacity-0 group-hover:opacity-100"} transition-opacity duration-200`, onClick: handleCheckboxClick, children: /* @__PURE__ */ jsx87(
|
|
6155
6113
|
Checkbox,
|
|
6156
6114
|
{
|
|
6157
6115
|
checked: isSelected,
|
|
@@ -6160,12 +6118,12 @@ function FolderCard({
|
|
|
6160
6118
|
}
|
|
6161
6119
|
) })
|
|
6162
6120
|
] }),
|
|
6163
|
-
/* @__PURE__ */
|
|
6164
|
-
/* @__PURE__ */
|
|
6121
|
+
/* @__PURE__ */ jsxs61("div", { className: "w-full text-center px-0.5 flex flex-col items-center", children: [
|
|
6122
|
+
/* @__PURE__ */ jsx87("span", { className: `
|
|
6165
6123
|
text-[13px] font-semibold leading-[1.3] tracking-tight line-clamp-2 px-2.5 pb-[2px] rounded-[6px] transition-colors duration-100 wrap-break-word max-w-full
|
|
6166
6124
|
${isSelected ? "bg-primary text-primary-foreground antialiased shadow-sm" : "text-foreground group-hover:text-foreground/80"}
|
|
6167
6125
|
`, children: folder.name }),
|
|
6168
|
-
/* @__PURE__ */
|
|
6126
|
+
/* @__PURE__ */ jsx87("div", { className: `flex items-center justify-center gap-1 mt-1 transition-opacity duration-200 ${isSelected ? "opacity-60" : "opacity-100"}`, children: /* @__PURE__ */ jsxs61("span", { className: "text-[11px] text-primary font-medium tracking-tight px-1.5 rounded-full", children: [
|
|
6169
6127
|
folder.fileCount,
|
|
6170
6128
|
" items"
|
|
6171
6129
|
] }) })
|
|
@@ -6178,7 +6136,7 @@ function FolderCard({
|
|
|
6178
6136
|
}
|
|
6179
6137
|
|
|
6180
6138
|
// components/grid/unified-grid.tsx
|
|
6181
|
-
import { jsx as
|
|
6139
|
+
import { jsx as jsx88, jsxs as jsxs62 } from "react/jsx-runtime";
|
|
6182
6140
|
function UnifiedGrid() {
|
|
6183
6141
|
const {
|
|
6184
6142
|
files,
|
|
@@ -6211,19 +6169,19 @@ function UnifiedGrid() {
|
|
|
6211
6169
|
};
|
|
6212
6170
|
const skeletonCount = getSkeletonCount();
|
|
6213
6171
|
if (isLoading) {
|
|
6214
|
-
return /* @__PURE__ */
|
|
6172
|
+
return /* @__PURE__ */ jsx88("div", { className: "p-4 grid grid-cols-2 gap-x-4 gap-y-8 sm:grid-cols-3 md:grid-cols-5 lg:grid-cols-6 xl:grid-cols-7 2xl:grid-cols-8 content-start", children: Array.from({ length: skeletonCount }).map((_, i) => {
|
|
6215
6173
|
var _a;
|
|
6216
|
-
return /* @__PURE__ */
|
|
6217
|
-
/* @__PURE__ */
|
|
6218
|
-
/* @__PURE__ */
|
|
6219
|
-
/* @__PURE__ */
|
|
6220
|
-
/* @__PURE__ */
|
|
6174
|
+
return /* @__PURE__ */ jsxs62("div", { className: "flex flex-col items-center justify-start w-full gap-2", children: [
|
|
6175
|
+
/* @__PURE__ */ jsx88("div", { className: "w-full aspect-square bg-muted rounded-2xl animate-pulse" }),
|
|
6176
|
+
/* @__PURE__ */ jsxs62("div", { className: "flex flex-col items-center gap-1 w-full", children: [
|
|
6177
|
+
/* @__PURE__ */ jsx88("div", { className: "h-4 w-20 bg-muted rounded animate-pulse" }),
|
|
6178
|
+
/* @__PURE__ */ jsx88("div", { className: "h-3 w-12 bg-muted rounded animate-pulse" })
|
|
6221
6179
|
] })
|
|
6222
6180
|
] }, `skeleton-${(_a = currentFolder == null ? void 0 : currentFolder.id) != null ? _a : "root"}-${i}`);
|
|
6223
6181
|
}) });
|
|
6224
6182
|
}
|
|
6225
|
-
return /* @__PURE__ */
|
|
6226
|
-
folders.map((folder) => /* @__PURE__ */
|
|
6183
|
+
return /* @__PURE__ */ jsxs62("div", { className: "p-4 grid grid-cols-2 gap-x-4 gap-y-8 sm:grid-cols-3 md:grid-cols-5 lg:grid-cols-6 xl:grid-cols-7 2xl:grid-cols-8 content-start", children: [
|
|
6184
|
+
folders.map((folder) => /* @__PURE__ */ jsx88(
|
|
6227
6185
|
FolderCard,
|
|
6228
6186
|
{
|
|
6229
6187
|
folder,
|
|
@@ -6245,7 +6203,7 @@ function UnifiedGrid() {
|
|
|
6245
6203
|
},
|
|
6246
6204
|
folder.id
|
|
6247
6205
|
)),
|
|
6248
|
-
files.map((file) => /* @__PURE__ */
|
|
6206
|
+
files.map((file) => /* @__PURE__ */ jsx88(
|
|
6249
6207
|
FileCard,
|
|
6250
6208
|
{
|
|
6251
6209
|
file,
|
|
@@ -6271,7 +6229,7 @@ function UnifiedGrid() {
|
|
|
6271
6229
|
|
|
6272
6230
|
// components/error-boundary.tsx
|
|
6273
6231
|
import { Component } from "react";
|
|
6274
|
-
import { jsx as
|
|
6232
|
+
import { jsx as jsx89, jsxs as jsxs63 } from "react/jsx-runtime";
|
|
6275
6233
|
var FileManagerErrorBoundary = class extends Component {
|
|
6276
6234
|
constructor(props) {
|
|
6277
6235
|
super(props);
|
|
@@ -6297,16 +6255,16 @@ var FileManagerErrorBoundary = class extends Component {
|
|
|
6297
6255
|
if (this.props.fallback) {
|
|
6298
6256
|
return this.props.fallback;
|
|
6299
6257
|
}
|
|
6300
|
-
return /* @__PURE__ */
|
|
6301
|
-
/* @__PURE__ */
|
|
6302
|
-
/* @__PURE__ */
|
|
6303
|
-
/* @__PURE__ */
|
|
6304
|
-
this.state.error && /* @__PURE__ */
|
|
6305
|
-
/* @__PURE__ */
|
|
6306
|
-
/* @__PURE__ */
|
|
6258
|
+
return /* @__PURE__ */ jsx89("div", { className: "flex items-center justify-center min-h-[400px] p-8 w-full h-full bg-slate-50/50 rounded-lg border border-dashed border-slate-200", children: /* @__PURE__ */ jsxs63("div", { className: "text-center max-w-md flex flex-col items-center", children: [
|
|
6259
|
+
/* @__PURE__ */ jsx89("div", { className: "bg-red-100 p-3 rounded-full mb-4", children: /* @__PURE__ */ jsx89(AlertCircleIcon, { className: "size-8 text-red-600" }) }),
|
|
6260
|
+
/* @__PURE__ */ jsx89("h2", { className: "text-xl font-semibold text-slate-900 mb-2", children: "Something went wrong" }),
|
|
6261
|
+
/* @__PURE__ */ jsx89("p", { className: "text-sm text-slate-500 mb-6", children: "The file manager encountered an unexpected error. Refreshing the page usually resolves this issue." }),
|
|
6262
|
+
this.state.error && /* @__PURE__ */ jsxs63("details", { className: "mb-6 text-left w-full border border-slate-200 rounded-lg overflow-hidden flex-col group", children: [
|
|
6263
|
+
/* @__PURE__ */ jsx89("summary", { className: "cursor-pointer text-xs font-mono bg-slate-100 p-2 text-slate-600 hover:bg-slate-200 transition-colors", children: "View Technical Details" }),
|
|
6264
|
+
/* @__PURE__ */ jsx89("div", { className: "p-3 bg-white dark:bg-zinc-900", children: /* @__PURE__ */ jsx89("pre", { className: "text-[10px] text-slate-600 font-mono whitespace-pre-wrap word-break-all max-h-40 overflow-auto", children: this.state.error.toString() }) })
|
|
6307
6265
|
] }),
|
|
6308
|
-
/* @__PURE__ */
|
|
6309
|
-
/* @__PURE__ */
|
|
6266
|
+
/* @__PURE__ */ jsxs63(Button, { onClick: this.handleReset, radius: "full", className: "gap-2", children: [
|
|
6267
|
+
/* @__PURE__ */ jsx89(RefreshCwIcon, { className: "size-4" }),
|
|
6310
6268
|
"Reload Application"
|
|
6311
6269
|
] })
|
|
6312
6270
|
] }) });
|
|
@@ -6360,28 +6318,28 @@ function KeyboardShortcuts() {
|
|
|
6360
6318
|
}
|
|
6361
6319
|
|
|
6362
6320
|
// components/file-manager.tsx
|
|
6363
|
-
import { jsx as
|
|
6321
|
+
import { jsx as jsx90, jsxs as jsxs64 } from "react/jsx-runtime";
|
|
6364
6322
|
function FileManager(props) {
|
|
6365
|
-
return /* @__PURE__ */
|
|
6366
|
-
/* @__PURE__ */
|
|
6367
|
-
/* @__PURE__ */
|
|
6368
|
-
/* @__PURE__ */
|
|
6369
|
-
/* @__PURE__ */
|
|
6370
|
-
/* @__PURE__ */
|
|
6371
|
-
/* @__PURE__ */
|
|
6323
|
+
return /* @__PURE__ */ jsx90(FileManagerErrorBoundary, { children: /* @__PURE__ */ jsxs64(FileManagerComposition.Page, __spreadProps(__spreadValues({}, props), { children: [
|
|
6324
|
+
/* @__PURE__ */ jsx90(KeyboardShortcuts, {}),
|
|
6325
|
+
/* @__PURE__ */ jsxs64("div", { className: "flex h-full relative pb-12 overflow-hidden bg-background text-foreground", children: [
|
|
6326
|
+
/* @__PURE__ */ jsxs64("div", { className: "flex-1 flex w-full flex-col", children: [
|
|
6327
|
+
/* @__PURE__ */ jsx90(FileManagerComposition.Header, { children: /* @__PURE__ */ jsxs64("div", { className: "flex w-full justify-between gap-2", children: [
|
|
6328
|
+
/* @__PURE__ */ jsx90(HeaderNavigation, {}),
|
|
6329
|
+
/* @__PURE__ */ jsx90(ResponsiveHeaderActions, {})
|
|
6372
6330
|
] }) }),
|
|
6373
|
-
/* @__PURE__ */
|
|
6374
|
-
/* @__PURE__ */
|
|
6375
|
-
/* @__PURE__ */
|
|
6331
|
+
/* @__PURE__ */ jsx90(BulkActionsFloating, { className: "-mb-1" }),
|
|
6332
|
+
/* @__PURE__ */ jsx90(UnifiedGrid, {}),
|
|
6333
|
+
/* @__PURE__ */ jsx90(FileManagerComposition.Footer, { className: "pt-6 pb-10" })
|
|
6376
6334
|
] }),
|
|
6377
|
-
/* @__PURE__ */
|
|
6335
|
+
/* @__PURE__ */ jsx90(FileManagerComposition.Overlays, {})
|
|
6378
6336
|
] })
|
|
6379
6337
|
] })) });
|
|
6380
6338
|
}
|
|
6381
6339
|
|
|
6382
6340
|
// components/file-manager-modal.tsx
|
|
6383
6341
|
import { useState as useState17, useRef as useRef5, useEffect as useEffect9 } from "react";
|
|
6384
|
-
import { Fragment as Fragment4, jsx as
|
|
6342
|
+
import { Fragment as Fragment4, jsx as jsx91, jsxs as jsxs65 } from "react/jsx-runtime";
|
|
6385
6343
|
function FileManagerModal(_a) {
|
|
6386
6344
|
var _b = _a, {
|
|
6387
6345
|
open,
|
|
@@ -6390,7 +6348,7 @@ function FileManagerModal(_a) {
|
|
|
6390
6348
|
"open",
|
|
6391
6349
|
"onClose"
|
|
6392
6350
|
]);
|
|
6393
|
-
return /* @__PURE__ */
|
|
6351
|
+
return /* @__PURE__ */ jsx91(FileManagerComposition.Modal, __spreadProps(__spreadValues({}, props), { onClose, children: /* @__PURE__ */ jsx91(Dialog, { open, onOpenChange: onClose, children: /* @__PURE__ */ jsx91(ModalContent, { onClose }) }) }));
|
|
6394
6352
|
}
|
|
6395
6353
|
function ModalContent({ onClose }) {
|
|
6396
6354
|
const { updateSearchQuery } = useFileManager();
|
|
@@ -6406,13 +6364,13 @@ function ModalContent({ onClose }) {
|
|
|
6406
6364
|
searchInputRef.current.focus();
|
|
6407
6365
|
}
|
|
6408
6366
|
}, [isSearchActive]);
|
|
6409
|
-
return /* @__PURE__ */
|
|
6410
|
-
/* @__PURE__ */
|
|
6411
|
-
/* @__PURE__ */
|
|
6367
|
+
return /* @__PURE__ */ jsxs65(DialogContent, { className: "p-0", variant: "fullscreen", showCloseButton: false, children: [
|
|
6368
|
+
/* @__PURE__ */ jsxs65(DialogHeader, { className: "pt-5 pb-3 m-0 border-b border-border", children: [
|
|
6369
|
+
/* @__PURE__ */ jsx91(DialogTitle, { className: "px-6 text-base", children: /* @__PURE__ */ jsx91("div", { className: "flex w-full justify-between gap-2", children: isSearchActive ? (
|
|
6412
6370
|
/* Inline Search Mode */
|
|
6413
|
-
/* @__PURE__ */
|
|
6414
|
-
/* @__PURE__ */
|
|
6415
|
-
/* @__PURE__ */
|
|
6371
|
+
/* @__PURE__ */ jsxs65("div", { className: "flex items-center gap-4 flex-1", children: [
|
|
6372
|
+
/* @__PURE__ */ jsx91(SearchIcon, { className: "size-5 text-gray-500 shrink-0" }),
|
|
6373
|
+
/* @__PURE__ */ jsx91(
|
|
6416
6374
|
Input,
|
|
6417
6375
|
{
|
|
6418
6376
|
ref: searchInputRef,
|
|
@@ -6430,7 +6388,7 @@ function ModalContent({ onClose }) {
|
|
|
6430
6388
|
}
|
|
6431
6389
|
}
|
|
6432
6390
|
),
|
|
6433
|
-
/* @__PURE__ */
|
|
6391
|
+
/* @__PURE__ */ jsx91(
|
|
6434
6392
|
CloseButton,
|
|
6435
6393
|
{
|
|
6436
6394
|
onClick: () => {
|
|
@@ -6445,20 +6403,20 @@ function ModalContent({ onClose }) {
|
|
|
6445
6403
|
] })
|
|
6446
6404
|
) : (
|
|
6447
6405
|
/* Normal Header Mode */
|
|
6448
|
-
/* @__PURE__ */
|
|
6449
|
-
/* @__PURE__ */
|
|
6450
|
-
/* @__PURE__ */
|
|
6451
|
-
/* @__PURE__ */
|
|
6406
|
+
/* @__PURE__ */ jsxs65(Fragment4, { children: [
|
|
6407
|
+
/* @__PURE__ */ jsx91(HeaderNavigation, {}),
|
|
6408
|
+
/* @__PURE__ */ jsx91(ModalResponsiveHeaderActions, { onSearchClick: () => setIsSearchActive(true) }),
|
|
6409
|
+
/* @__PURE__ */ jsx91(CloseButton, { onClick: onClose })
|
|
6452
6410
|
] })
|
|
6453
6411
|
) }) }),
|
|
6454
|
-
/* @__PURE__ */
|
|
6412
|
+
/* @__PURE__ */ jsx91(DialogDescription, { className: "sr-only", children: "Browse and select files from your media library" })
|
|
6455
6413
|
] }),
|
|
6456
|
-
/* @__PURE__ */
|
|
6457
|
-
/* @__PURE__ */
|
|
6458
|
-
/* @__PURE__ */
|
|
6459
|
-
/* @__PURE__ */
|
|
6414
|
+
/* @__PURE__ */ jsxs65("div", { className: "overflow-y-auto flex-1 pb-4", children: [
|
|
6415
|
+
/* @__PURE__ */ jsx91(UnifiedGrid, {}),
|
|
6416
|
+
/* @__PURE__ */ jsx91(FileManagerComposition.Footer, { className: "my-4" }),
|
|
6417
|
+
/* @__PURE__ */ jsx91(FileManagerComposition.Overlays, {})
|
|
6460
6418
|
] }),
|
|
6461
|
-
/* @__PURE__ */
|
|
6419
|
+
/* @__PURE__ */ jsx91(FileManagerModalFooter, { onClose })
|
|
6462
6420
|
] });
|
|
6463
6421
|
}
|
|
6464
6422
|
function FileManagerModalFooter({ onClose }) {
|
|
@@ -6480,10 +6438,10 @@ function FileManagerModalFooter({ onClose }) {
|
|
|
6480
6438
|
onClose();
|
|
6481
6439
|
}
|
|
6482
6440
|
};
|
|
6483
|
-
return /* @__PURE__ */
|
|
6484
|
-
/* @__PURE__ */
|
|
6485
|
-
/* @__PURE__ */
|
|
6486
|
-
/* @__PURE__ */
|
|
6441
|
+
return /* @__PURE__ */ jsxs65(DialogFooter, { className: "px-6 py-4 border-t border-border w-full sm:justify-between justify-center items-center flex-col sm:flex-row gap-2", children: [
|
|
6442
|
+
/* @__PURE__ */ jsx91(BulkActionsStatic, {}),
|
|
6443
|
+
/* @__PURE__ */ jsx91(DialogClose, { asChild: true, children: /* @__PURE__ */ jsx91(Button, { type: "button", variant: "outline", onClick: onClose, radius: "full", className: "w-full md:w-auto mr-0", children: "Cancel" }) }),
|
|
6444
|
+
/* @__PURE__ */ jsxs65(
|
|
6487
6445
|
Button,
|
|
6488
6446
|
{
|
|
6489
6447
|
type: "button",
|