@unciatech/file-manager 0.0.25 → 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 CHANGED
@@ -3256,7 +3256,7 @@ function VideoCardMetadata({ file }) {
3256
3256
 
3257
3257
  // components/cards/audio-card.tsx
3258
3258
  var import_jsx_runtime53 = require("react/jsx-runtime");
3259
- function AudioCard({ className }) {
3259
+ function AudioCard({ file, className }) {
3260
3260
  return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("div", { className: "w-full h-full flex items-center justify-center bg-transparent", children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("div", { className: "text-center", children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("div", { className: "text-4xl", children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Icons, { type: "audio", className }) }) }) });
3261
3261
  }
3262
3262
  function AudioCardMetadata({ file }) {
@@ -3383,9 +3383,12 @@ function UploadModal() {
3383
3383
  const newUploadItems = newFiles.map((file) => {
3384
3384
  const existingFile = uploadItems.find((existing) => existing.id === file.id);
3385
3385
  if (existingFile) {
3386
- return __spreadValues(__spreadValues({}, existingFile), file);
3386
+ return __spreadProps(__spreadValues(__spreadValues({}, existingFile), file), {
3387
+ file: file.file
3388
+ });
3387
3389
  } else {
3388
3390
  return __spreadProps(__spreadValues({}, file), {
3391
+ file: file.file,
3389
3392
  progress: 100,
3390
3393
  status: "completed"
3391
3394
  });
@@ -4140,61 +4143,8 @@ function MoveModal() {
4140
4143
  // components/modals/image-modal.tsx
4141
4144
  var import_react14 = require("react");
4142
4145
 
4143
- // components/ui/scroll-area.tsx
4144
- var import_radix_ui3 = require("radix-ui");
4145
- var import_jsx_runtime61 = require("react/jsx-runtime");
4146
- function ScrollArea(_a) {
4147
- var _b = _a, {
4148
- className,
4149
- viewportClassName,
4150
- children,
4151
- viewportRef
4152
- } = _b, props = __objRest(_b, [
4153
- "className",
4154
- "viewportClassName",
4155
- "children",
4156
- "viewportRef"
4157
- ]);
4158
- return /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)(import_radix_ui3.ScrollArea.Root, __spreadProps(__spreadValues({ "data-slot": "scroll-area", className: cn("relative overflow-hidden", className) }, props), { children: [
4159
- /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
4160
- import_radix_ui3.ScrollArea.Viewport,
4161
- {
4162
- ref: viewportRef,
4163
- className: cn("h-full w-full rounded-[inherit]", viewportClassName),
4164
- children
4165
- }
4166
- ),
4167
- /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(ScrollBar, {}),
4168
- /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(import_radix_ui3.ScrollArea.Corner, {})
4169
- ] }));
4170
- }
4171
- function ScrollBar(_a) {
4172
- var _b = _a, {
4173
- className,
4174
- orientation = "vertical"
4175
- } = _b, props = __objRest(_b, [
4176
- "className",
4177
- "orientation"
4178
- ]);
4179
- return /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
4180
- import_radix_ui3.ScrollArea.ScrollAreaScrollbar,
4181
- __spreadProps(__spreadValues({
4182
- "data-slot": "scroll-area-scrollbar",
4183
- orientation,
4184
- className: cn(
4185
- "flex touch-none select-none transition-colors",
4186
- orientation === "vertical" && "h-full w-2 border-l border-l-transparent p-[1px]",
4187
- orientation === "horizontal" && "h-2 flex-col border-t border-t-transparent p-[1px]",
4188
- className
4189
- )
4190
- }, props), {
4191
- children: /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(import_radix_ui3.ScrollArea.ScrollAreaThumb, { className: "relative flex-1 rounded-full bg-border" })
4192
- })
4193
- );
4194
- }
4195
-
4196
4146
  // components/file-details/details-layout.tsx
4197
- var import_jsx_runtime62 = require("react/jsx-runtime");
4147
+ var import_jsx_runtime61 = require("react/jsx-runtime");
4198
4148
  function DetailsLayout({
4199
4149
  title,
4200
4150
  open,
@@ -4203,26 +4153,34 @@ function DetailsLayout({
4203
4153
  metadataSection,
4204
4154
  footer
4205
4155
  }) {
4206
- return /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(Dialog, { open, onOpenChange: (isOpen) => !isOpen && onClose(), children: /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)(DialogContent, { className: "p-0 max-w-6xl w-full mx-auto flex flex-col min-h-fit my-auto", variant: "fullscreen", showCloseButton: false, children: [
4207
- /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)(DialogHeader, { className: "pt-5 pb-3 m-0 border-b border-border", children: [
4208
- /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(DialogTitle, { className: "px-6 text-base", children: /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)("div", { className: "flex w-full justify-between gap-2", children: [
4209
- /* @__PURE__ */ (0, import_jsx_runtime62.jsx)("span", { children: title }),
4210
- /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(CloseButton, { onClick: () => onClose() })
4211
- ] }) }),
4212
- /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(DialogDescription, {})
4213
- ] }),
4214
- /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(ScrollArea, { className: "flex-1 h-0", children: /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)("div", { className: "grid grid-cols-1 lg:grid-cols-2 min-h-full", children: [
4215
- /* @__PURE__ */ (0, import_jsx_runtime62.jsx)("div", { className: "p-6 border-b lg:border-b-0 lg:border-r border-slate-200 dark:border-zinc-700", children: previewSection }),
4216
- /* @__PURE__ */ (0, import_jsx_runtime62.jsx)("div", { className: "p-6 overflow-y-auto ", children: metadataSection })
4217
- ] }) }),
4218
- /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(DialogFooter, { className: "px-6 py-4 border-t border-border", children: footer })
4219
- ] }) });
4156
+ return /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(Dialog, { open, onOpenChange: (isOpen) => !isOpen && onClose(), children: /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)(
4157
+ DialogContent,
4158
+ {
4159
+ className: "p-0 max-w-6xl w-full m-auto h-[80vh] flex flex-col overflow-hidden",
4160
+ variant: "fullscreen",
4161
+ showCloseButton: false,
4162
+ children: [
4163
+ /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)(DialogHeader, { className: "pt-5 pb-3 border-b border-border shrink-0", children: [
4164
+ /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(DialogTitle, { className: "px-6 text-base", children: /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)("div", { className: "flex w-full items-center justify-between gap-2", children: [
4165
+ /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("span", { className: "truncate", children: title }),
4166
+ /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(CloseButton, { onClick: onClose })
4167
+ ] }) }),
4168
+ /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(DialogDescription, {})
4169
+ ] }),
4170
+ /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("div", { className: "flex-1 min-h-0", children: /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)("div", { className: "grid grid-cols-1 lg:grid-cols-2 h-full", children: [
4171
+ /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("div", { className: "p-6 border-b lg:border-b-0 lg:border-r border-slate-200 dark:border-zinc-700 overflow-auto", children: previewSection }),
4172
+ /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("div", { className: "p-6 overflow-auto", children: metadataSection })
4173
+ ] }) }),
4174
+ /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(DialogFooter, { className: "px-6 py-4 border-t border-border shrink-0", children: footer })
4175
+ ]
4176
+ }
4177
+ ) });
4220
4178
  }
4221
4179
 
4222
4180
  // components/file-details/file-action-buttons.tsx
4223
4181
  var import_sonner3 = require("sonner");
4224
4182
  var import_react12 = require("react");
4225
- var import_jsx_runtime63 = require("react/jsx-runtime");
4183
+ var import_jsx_runtime62 = require("react/jsx-runtime");
4226
4184
  function FileDeleteButton({ file }) {
4227
4185
  const { provider, setFileDetailsModalFile, refreshData } = useFileManager();
4228
4186
  const [deleting, setDeleting] = (0, import_react12.useState)(false);
@@ -4240,7 +4198,7 @@ function FileDeleteButton({ file }) {
4240
4198
  setDeleting(false);
4241
4199
  }
4242
4200
  };
4243
- return /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
4201
+ return /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(
4244
4202
  Button,
4245
4203
  {
4246
4204
  variant: "outline",
@@ -4250,7 +4208,7 @@ function FileDeleteButton({ file }) {
4250
4208
  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",
4251
4209
  onClick: handleDelete,
4252
4210
  disabled: deleting,
4253
- children: deleting ? /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(Loader2Icon, { className: "size-5 animate-spin" }) : /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(TrashIcon, { className: "size-5" })
4211
+ children: deleting ? /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(Loader2Icon, { className: "size-5 animate-spin" }) : /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(TrashIcon, { className: "size-5" })
4254
4212
  }
4255
4213
  );
4256
4214
  }
@@ -4272,7 +4230,7 @@ function FileDownloadButton({ file }) {
4272
4230
  setDownloading(false);
4273
4231
  }
4274
4232
  };
4275
- return /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
4233
+ return /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(
4276
4234
  Button,
4277
4235
  {
4278
4236
  variant: "outline",
@@ -4282,7 +4240,7 @@ function FileDownloadButton({ file }) {
4282
4240
  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",
4283
4241
  title: "Download",
4284
4242
  disabled: downloading,
4285
- children: downloading ? /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(Loader2Icon, { className: "size-5 animate-spin" }) : /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(DownloadIcon, { className: "size-5", strokeWidth: 2.5 })
4243
+ children: downloading ? /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(Loader2Icon, { className: "size-5 animate-spin" }) : /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(DownloadIcon, { className: "size-5", strokeWidth: 2.5 })
4286
4244
  }
4287
4245
  );
4288
4246
  }
@@ -4300,7 +4258,7 @@ function FileCopyLinkButton({ file }) {
4300
4258
  import_sonner3.toast.error("Failed to copy link");
4301
4259
  }
4302
4260
  };
4303
- return /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
4261
+ return /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(
4304
4262
  Button,
4305
4263
  {
4306
4264
  variant: "outline",
@@ -4311,12 +4269,12 @@ function FileCopyLinkButton({ file }) {
4311
4269
  ${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"}`,
4312
4270
  title: "Copy Link",
4313
4271
  disabled: copied,
4314
- children: copied ? /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(CheckIcon, { className: "size-5 animate-in zoom-in duration-200", strokeWidth: 3 }) : /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(LinkIcon, { className: "size-5", strokeWidth: 2.5 })
4272
+ children: copied ? /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(CheckIcon, { className: "size-5 animate-in zoom-in duration-200", strokeWidth: 3 }) : /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(LinkIcon, { className: "size-5", strokeWidth: 2.5 })
4315
4273
  }
4316
4274
  );
4317
4275
  }
4318
4276
  function FileFullscreenButton({ onFullscreen }) {
4319
- return /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
4277
+ return /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(
4320
4278
  Button,
4321
4279
  {
4322
4280
  variant: "outline",
@@ -4325,14 +4283,14 @@ function FileFullscreenButton({ onFullscreen }) {
4325
4283
  onClick: onFullscreen,
4326
4284
  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",
4327
4285
  title: "Fullscreen",
4328
- children: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(FullscreenIcon, { className: "size-5", strokeWidth: 1 })
4286
+ children: /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(FullscreenIcon, { className: "size-5", strokeWidth: 1 })
4329
4287
  }
4330
4288
  );
4331
4289
  }
4332
4290
 
4333
4291
  // components/ui/textarea.tsx
4334
4292
  var import_class_variance_authority5 = require("class-variance-authority");
4335
- var import_jsx_runtime64 = require("react/jsx-runtime");
4293
+ var import_jsx_runtime63 = require("react/jsx-runtime");
4336
4294
  var textareaVariants = (0, import_class_variance_authority5.cva)(
4337
4295
  `
4338
4296
  w-full bg-background border border-input bg-background text-foreground shadow-xs shadow-black/5 transition-[color,box-shadow]
@@ -4361,13 +4319,13 @@ function Textarea(_a) {
4361
4319
  "className",
4362
4320
  "variant"
4363
4321
  ]);
4364
- return /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("textarea", __spreadValues({ "data-slot": "textarea", className: cn(textareaVariants({ variant }), className) }, props));
4322
+ return /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("textarea", __spreadValues({ "data-slot": "textarea", className: cn(textareaVariants({ variant }), className) }, props));
4365
4323
  }
4366
4324
 
4367
4325
  // components/ui/label.tsx
4368
4326
  var import_class_variance_authority6 = require("class-variance-authority");
4369
- var import_radix_ui4 = require("radix-ui");
4370
- var import_jsx_runtime65 = require("react/jsx-runtime");
4327
+ var import_radix_ui3 = require("radix-ui");
4328
+ var import_jsx_runtime64 = require("react/jsx-runtime");
4371
4329
  var labelVariants = (0, import_class_variance_authority6.cva)(
4372
4330
  "text-sm leading-none text-foreground peer-disabled:cursor-not-allowed peer-disabled:opacity-50",
4373
4331
  {
@@ -4390,7 +4348,7 @@ function Label(_a) {
4390
4348
  "className",
4391
4349
  "variant"
4392
4350
  ]);
4393
- return /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(import_radix_ui4.Label.Root, __spreadValues({ "data-slot": "label", className: cn(labelVariants({ variant }), className) }, props));
4351
+ return /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(import_radix_ui3.Label.Root, __spreadValues({ "data-slot": "label", className: cn(labelVariants({ variant }), className) }, props));
4394
4352
  }
4395
4353
 
4396
4354
  // lib/format-utils.ts
@@ -4410,7 +4368,7 @@ function formatDuration(seconds) {
4410
4368
  // components/ui/field.tsx
4411
4369
  var import_react13 = require("react");
4412
4370
  var import_class_variance_authority7 = require("class-variance-authority");
4413
- var import_jsx_runtime66 = require("react/jsx-runtime");
4371
+ var import_jsx_runtime65 = require("react/jsx-runtime");
4414
4372
  var fieldVariants = (0, import_class_variance_authority7.cva)(
4415
4373
  "group/field flex w-full gap-3 data-[invalid=true]:text-destructive",
4416
4374
  {
@@ -4442,7 +4400,7 @@ function Field(_a) {
4442
4400
  "className",
4443
4401
  "orientation"
4444
4402
  ]);
4445
- return /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
4403
+ return /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
4446
4404
  "div",
4447
4405
  __spreadValues({
4448
4406
  role: "group",
@@ -4458,7 +4416,7 @@ function FieldLabel(_a) {
4458
4416
  } = _b, props = __objRest(_b, [
4459
4417
  "className"
4460
4418
  ]);
4461
- return /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
4419
+ return /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
4462
4420
  Label,
4463
4421
  __spreadValues({
4464
4422
  "data-slot": "field-label",
@@ -4474,10 +4432,10 @@ function FieldLabel(_a) {
4474
4432
 
4475
4433
  // components/ui/input-group.tsx
4476
4434
  var import_class_variance_authority8 = require("class-variance-authority");
4477
- var import_jsx_runtime67 = require("react/jsx-runtime");
4435
+ var import_jsx_runtime66 = require("react/jsx-runtime");
4478
4436
  function InputGroup(_a) {
4479
4437
  var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
4480
- return /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(
4438
+ return /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
4481
4439
  "div",
4482
4440
  __spreadValues({
4483
4441
  "data-slot": "input-group",
@@ -4523,7 +4481,7 @@ function InputGroupAddon(_a) {
4523
4481
  "className",
4524
4482
  "align"
4525
4483
  ]);
4526
- return /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(
4484
+ return /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
4527
4485
  "div",
4528
4486
  __spreadValues({
4529
4487
  role: "group",
@@ -4558,7 +4516,7 @@ var inputGroupButtonVariants = (0, import_class_variance_authority8.cva)(
4558
4516
  );
4559
4517
  function InputGroupText(_a) {
4560
4518
  var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
4561
- return /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(
4519
+ return /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
4562
4520
  "span",
4563
4521
  __spreadValues({
4564
4522
  className: cn(
@@ -4574,7 +4532,7 @@ function InputGroupInput(_a) {
4574
4532
  } = _b, props = __objRest(_b, [
4575
4533
  "className"
4576
4534
  ]);
4577
- return /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(
4535
+ return /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
4578
4536
  Input,
4579
4537
  __spreadValues({
4580
4538
  "data-slot": "input-group-control",
@@ -4587,7 +4545,7 @@ function InputGroupInput(_a) {
4587
4545
  }
4588
4546
 
4589
4547
  // components/modals/image-modal.tsx
4590
- var import_jsx_runtime68 = require("react/jsx-runtime");
4548
+ var import_jsx_runtime67 = require("react/jsx-runtime");
4591
4549
  function ImageModal({ file, onClose, onSave }) {
4592
4550
  var _a;
4593
4551
  const [isSaving, setIsSaving] = (0, import_react14.useState)(false);
@@ -4607,14 +4565,14 @@ function ImageModal({ file, onClose, onSave }) {
4607
4565
  setIsSaving(false);
4608
4566
  }
4609
4567
  };
4610
- const previewSection = /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)("div", { className: "flex flex-col h-full", children: [
4611
- /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)("div", { className: "flex gap-2 mb-4", children: [
4612
- /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(FileDeleteButton, { file }),
4613
- /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(FileDownloadButton, { file }),
4614
- /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(FileCopyLinkButton, { file }),
4615
- /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(FileFullscreenButton, { onFullscreen: () => window.open(file.url, "_blank") })
4568
+ const previewSection = /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)("div", { className: "flex flex-col h-full", children: [
4569
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)("div", { className: "flex gap-2 mb-4", children: [
4570
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(FileDeleteButton, { file }),
4571
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(FileDownloadButton, { file }),
4572
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(FileCopyLinkButton, { file }),
4573
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(FileFullscreenButton, { onFullscreen: () => window.open(file.url, "_blank") })
4616
4574
  ] }),
4617
- /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(
4575
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(
4618
4576
  "div",
4619
4577
  {
4620
4578
  className: "flex-1 flex items-center justify-center bg-gray-50 rounded-lg overflow-hidden",
@@ -4628,7 +4586,7 @@ function ImageModal({ file, onClose, onSave }) {
4628
4586
  backgroundSize: "20px 20px",
4629
4587
  backgroundPosition: "0 0, 0 10px, 10px -10px, -10px 0px"
4630
4588
  },
4631
- children: /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(
4589
+ children: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(
4632
4590
  "img",
4633
4591
  {
4634
4592
  src: file.previewUrl || file.url,
@@ -4639,36 +4597,36 @@ function ImageModal({ file, onClose, onSave }) {
4639
4597
  }
4640
4598
  )
4641
4599
  ] });
4642
- const metadataSection = /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)("div", { className: "space-y-6", children: [
4643
- /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)("div", { className: "grid grid-cols-2 gap-4", children: [
4644
- /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)("div", { children: [
4645
- /* @__PURE__ */ (0, import_jsx_runtime68.jsx)("p", { className: "text-xs font-medium text-muted-foreground tracking-wide mb-1", children: "Size" }),
4646
- /* @__PURE__ */ (0, import_jsx_runtime68.jsx)("p", { className: "text-xs font-bold text-primary", children: getFileSize(file.size) })
4600
+ const metadataSection = /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)("div", { className: "space-y-6", children: [
4601
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)("div", { className: "grid grid-cols-2 gap-4", children: [
4602
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)("div", { children: [
4603
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("p", { className: "text-xs font-medium text-muted-foreground tracking-wide mb-1", children: "Size" }),
4604
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("p", { className: "text-xs font-bold text-primary", children: getFileSize(file.size) })
4647
4605
  ] }),
4648
- /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)("div", { children: [
4649
- /* @__PURE__ */ (0, import_jsx_runtime68.jsx)("p", { className: "text-xs font-medium text-muted-foreground tracking-wide mb-1", children: "Dimensions" }),
4650
- /* @__PURE__ */ (0, import_jsx_runtime68.jsx)("p", { className: "text-xs font-bold text-primary", children: file.width && file.height ? `${file.width}\xD7${file.height}` : "N/A" })
4606
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)("div", { children: [
4607
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("p", { className: "text-xs font-medium text-muted-foreground tracking-wide mb-1", children: "Dimensions" }),
4608
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("p", { className: "text-xs font-bold text-primary", children: file.width && file.height ? `${file.width}\xD7${file.height}` : "N/A" })
4651
4609
  ] }),
4652
- /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)("div", { children: [
4653
- /* @__PURE__ */ (0, import_jsx_runtime68.jsx)("p", { className: "text-xs font-medium text-muted-foreground tracking-wide mb-1", children: "Date" }),
4654
- /* @__PURE__ */ (0, import_jsx_runtime68.jsx)("p", { className: "text-xs font-bold text-primary", children: formatDate(file.createdAt) })
4610
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)("div", { children: [
4611
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("p", { className: "text-xs font-medium text-muted-foreground tracking-wide mb-1", children: "Date" }),
4612
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("p", { className: "text-xs font-bold text-primary", children: formatDate(file.createdAt) })
4655
4613
  ] }),
4656
- /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)("div", { children: [
4657
- /* @__PURE__ */ (0, import_jsx_runtime68.jsx)("p", { className: "text-xs font-medium text-muted-foreground tracking-wide mb-1", children: "Extension" }),
4658
- /* @__PURE__ */ (0, import_jsx_runtime68.jsx)("p", { className: "text-xs font-bold text-primary", children: ((_a = file.ext) == null ? void 0 : _a.replace(".", "")) || "N/A" })
4614
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)("div", { children: [
4615
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("p", { className: "text-xs font-medium text-muted-foreground tracking-wide mb-1", children: "Extension" }),
4616
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("p", { className: "text-xs font-bold text-primary", children: ((_a = file.ext) == null ? void 0 : _a.replace(".", "")) || "N/A" })
4659
4617
  ] })
4660
4618
  ] }),
4661
- /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)("div", { className: "space-y-4 pt-4 border-t border-border", children: [
4662
- /* @__PURE__ */ (0, import_jsx_runtime68.jsx)("div", { className: "space-y-2", children: /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)(Field, { className: "gap-0", children: [
4663
- /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(FieldLabel, { htmlFor: "fileName", children: "File name" }),
4664
- /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)(InputGroup, { children: [
4665
- /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(InputGroupInput, { id: "fileName", placeholder: "Enter file name", value: fileName.replace(file.ext || "", ""), onChange: (e) => setFileName(e.target.value) }),
4666
- /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(InputGroupAddon, { align: "inline-end", className: "pr-1", children: /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(InputGroupText, { className: "font-bold bg-accent rounded-lg py-1 px-3", children: file.ext }) })
4619
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)("div", { className: "space-y-4 pt-4 border-t border-border", children: [
4620
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("div", { className: "space-y-2", children: /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)(Field, { className: "gap-0", children: [
4621
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(FieldLabel, { htmlFor: "fileName", children: "File name" }),
4622
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)(InputGroup, { children: [
4623
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(InputGroupInput, { id: "fileName", placeholder: "Enter file name", value: fileName.replace(file.ext || "", ""), onChange: (e) => setFileName(e.target.value) }),
4624
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(InputGroupAddon, { align: "inline-end", className: "pr-1", children: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(InputGroupText, { className: "font-bold bg-accent rounded-lg py-1 px-3", children: file.ext }) })
4667
4625
  ] })
4668
4626
  ] }) }),
4669
- /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)("div", { className: "space-y-2", children: [
4670
- /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(Label, { htmlFor: "altText", children: "Alternative text" }),
4671
- /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(
4627
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)("div", { className: "space-y-2", children: [
4628
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(Label, { htmlFor: "altText", children: "Alternative text" }),
4629
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(
4672
4630
  Textarea,
4673
4631
  {
4674
4632
  id: "altText",
@@ -4678,11 +4636,11 @@ function ImageModal({ file, onClose, onSave }) {
4678
4636
  rows: 3
4679
4637
  }
4680
4638
  ),
4681
- /* @__PURE__ */ (0, import_jsx_runtime68.jsx)("p", { className: "text-xs text-muted-foreground", children: "This text will be displayed if the asset can't be shown." })
4639
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("p", { className: "text-xs text-muted-foreground", children: "This text will be displayed if the asset can't be shown." })
4682
4640
  ] }),
4683
- /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)("div", { className: "space-y-2", children: [
4684
- /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(Label, { htmlFor: "caption", children: "Caption" }),
4685
- /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(
4641
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)("div", { className: "space-y-2", children: [
4642
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(Label, { htmlFor: "caption", children: "Caption" }),
4643
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(
4686
4644
  Textarea,
4687
4645
  {
4688
4646
  id: "caption",
@@ -4695,14 +4653,14 @@ function ImageModal({ file, onClose, onSave }) {
4695
4653
  ] })
4696
4654
  ] })
4697
4655
  ] });
4698
- const footer = /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)("div", { className: "flex w-full justify-between items-center flex-col sm:flex-row gap-2 ", children: [
4699
- /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(Button, { className: "w-full md:w-auto", variant: "outline", onClick: onClose, radius: "full", disabled: isSaving, children: "Cancel" }),
4700
- /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)(Button, { className: "w-full md:w-auto", onClick: handleSave, radius: "full", disabled: isSaving, children: [
4701
- isSaving && /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(Loader2Icon, { className: "mr-2 h-4 w-4 animate-spin" }),
4656
+ const footer = /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)("div", { className: "flex w-full justify-between items-center flex-col sm:flex-row gap-2 ", children: [
4657
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(Button, { className: "w-full md:w-auto", variant: "outline", onClick: onClose, radius: "full", disabled: isSaving, children: "Cancel" }),
4658
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)(Button, { className: "w-full md:w-auto", onClick: handleSave, radius: "full", disabled: isSaving, children: [
4659
+ isSaving && /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(Loader2Icon, { className: "mr-2 h-4 w-4 animate-spin" }),
4702
4660
  "Finish"
4703
4661
  ] })
4704
4662
  ] });
4705
- return /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(
4663
+ return /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(
4706
4664
  DetailsLayout,
4707
4665
  {
4708
4666
  title: "Details",
@@ -4717,7 +4675,7 @@ function ImageModal({ file, onClose, onSave }) {
4717
4675
 
4718
4676
  // components/modals/video-modal.tsx
4719
4677
  var import_react15 = require("react");
4720
- var import_jsx_runtime69 = require("react/jsx-runtime");
4678
+ var import_jsx_runtime68 = require("react/jsx-runtime");
4721
4679
  function VideoModal({ file, onClose, onSave }) {
4722
4680
  var _a, _b, _c;
4723
4681
  const [isSaving, setIsSaving] = (0, import_react15.useState)(false);
@@ -4735,13 +4693,13 @@ function VideoModal({ file, onClose, onSave }) {
4735
4693
  setIsSaving(false);
4736
4694
  }
4737
4695
  };
4738
- const previewSection = /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)("div", { className: "flex flex-col h-full", children: [
4739
- /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)("div", { className: "flex gap-2 mb-4", children: [
4740
- /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(FileDeleteButton, { file }),
4741
- /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(FileDownloadButton, { file }),
4742
- /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(FileCopyLinkButton, { file })
4696
+ const previewSection = /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)("div", { className: "flex flex-col h-full", children: [
4697
+ /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)("div", { className: "flex gap-2 mb-4", children: [
4698
+ /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(FileDeleteButton, { file }),
4699
+ /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(FileDownloadButton, { file }),
4700
+ /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(FileCopyLinkButton, { file })
4743
4701
  ] }),
4744
- /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("div", { className: "flex-1 flex items-center justify-center bg-black rounded-lg overflow-hidden", children: /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
4702
+ /* @__PURE__ */ (0, import_jsx_runtime68.jsx)("div", { className: "flex-1 flex items-center justify-center bg-black rounded-lg overflow-hidden", children: /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(
4745
4703
  "video",
4746
4704
  {
4747
4705
  src: file.url,
@@ -4752,44 +4710,44 @@ function VideoModal({ file, onClose, onSave }) {
4752
4710
  }
4753
4711
  ) })
4754
4712
  ] });
4755
- const metadataSection = /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)("div", { className: "space-y-6", children: [
4756
- /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)("div", { className: "grid grid-cols-2 gap-4", children: [
4757
- /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)("div", { children: [
4758
- /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("p", { className: "text-xs font-medium text-muted-foreground uppercase tracking-wide mb-1", children: "Size" }),
4759
- /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("p", { className: "text-xs font-bold text-primary", children: getFileSize(file.size) })
4713
+ const metadataSection = /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)("div", { className: "space-y-6", children: [
4714
+ /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)("div", { className: "grid grid-cols-2 gap-4", children: [
4715
+ /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)("div", { children: [
4716
+ /* @__PURE__ */ (0, import_jsx_runtime68.jsx)("p", { className: "text-xs font-medium text-muted-foreground uppercase tracking-wide mb-1", children: "Size" }),
4717
+ /* @__PURE__ */ (0, import_jsx_runtime68.jsx)("p", { className: "text-xs font-bold text-primary", children: getFileSize(file.size) })
4760
4718
  ] }),
4761
- /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)("div", { children: [
4762
- /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("p", { className: "text-xs font-medium text-muted-foreground uppercase tracking-wide mb-1", children: "Dimensions" }),
4763
- /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("p", { className: "text-xs font-bold text-primary", children: file.width && file.height ? `${file.width}\xD7${file.height}` : "N/A" })
4719
+ /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)("div", { children: [
4720
+ /* @__PURE__ */ (0, import_jsx_runtime68.jsx)("p", { className: "text-xs font-medium text-muted-foreground uppercase tracking-wide mb-1", children: "Dimensions" }),
4721
+ /* @__PURE__ */ (0, import_jsx_runtime68.jsx)("p", { className: "text-xs font-bold text-primary", children: file.width && file.height ? `${file.width}\xD7${file.height}` : "N/A" })
4764
4722
  ] }),
4765
- /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)("div", { children: [
4766
- /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("p", { className: "text-xs font-medium text-muted-foreground uppercase tracking-wide mb-1", children: "Duration" }),
4767
- /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("p", { className: "text-xs font-bold text-primary", children: ((_a = file.metaData) == null ? void 0 : _a.duration) ? formatDuration(file.metaData.duration) : "N/A" })
4723
+ /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)("div", { children: [
4724
+ /* @__PURE__ */ (0, import_jsx_runtime68.jsx)("p", { className: "text-xs font-medium text-muted-foreground uppercase tracking-wide mb-1", children: "Duration" }),
4725
+ /* @__PURE__ */ (0, import_jsx_runtime68.jsx)("p", { className: "text-xs font-bold text-primary", children: ((_a = file.metaData) == null ? void 0 : _a.duration) ? formatDuration(file.metaData.duration) : "N/A" })
4768
4726
  ] }),
4769
- /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)("div", { children: [
4770
- /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("p", { className: "text-xs font-medium text-muted-foreground uppercase tracking-wide mb-1", children: "Date" }),
4771
- /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("p", { className: "text-xs font-bold text-primary", children: formatDate(file.createdAt) })
4727
+ /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)("div", { children: [
4728
+ /* @__PURE__ */ (0, import_jsx_runtime68.jsx)("p", { className: "text-xs font-medium text-muted-foreground uppercase tracking-wide mb-1", children: "Date" }),
4729
+ /* @__PURE__ */ (0, import_jsx_runtime68.jsx)("p", { className: "text-xs font-bold text-primary", children: formatDate(file.createdAt) })
4772
4730
  ] }),
4773
- /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)("div", { children: [
4774
- /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("p", { className: "text-xs font-medium text-muted-foreground uppercase tracking-wide mb-1", children: "Extension" }),
4775
- /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("p", { className: "text-xs font-bold text-primary", children: ((_b = file.ext) == null ? void 0 : _b.replace(".", "")) || "N/A" })
4731
+ /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)("div", { children: [
4732
+ /* @__PURE__ */ (0, import_jsx_runtime68.jsx)("p", { className: "text-xs font-medium text-muted-foreground uppercase tracking-wide mb-1", children: "Extension" }),
4733
+ /* @__PURE__ */ (0, import_jsx_runtime68.jsx)("p", { className: "text-xs font-bold text-primary", children: ((_b = file.ext) == null ? void 0 : _b.replace(".", "")) || "N/A" })
4776
4734
  ] }),
4777
- /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)("div", { children: [
4778
- /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("p", { className: "text-xs font-medium text-muted-foreground uppercase tracking-wide mb-1", children: "Video Source" }),
4779
- /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("p", { className: "text-xs font-bold text-primary capitalize", children: ((_c = file.metaData) == null ? void 0 : _c.videoSource) || "local" })
4735
+ /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)("div", { children: [
4736
+ /* @__PURE__ */ (0, import_jsx_runtime68.jsx)("p", { className: "text-xs font-medium text-muted-foreground uppercase tracking-wide mb-1", children: "Video Source" }),
4737
+ /* @__PURE__ */ (0, import_jsx_runtime68.jsx)("p", { className: "text-xs font-bold text-primary capitalize", children: ((_c = file.metaData) == null ? void 0 : _c.videoSource) || "local" })
4780
4738
  ] })
4781
4739
  ] }),
4782
- /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)("div", { className: "space-y-4 pt-4 border-t border-border", children: [
4783
- /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("div", { className: "space-y-2", children: /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)(Field, { className: "gap-0", children: [
4784
- /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(FieldLabel, { htmlFor: "fileName", children: "File name" }),
4785
- /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)(InputGroup, { children: [
4786
- /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(InputGroupInput, { id: "fileName", placeholder: "Enter file name", value: fileName.replace(file.ext || "", ""), onChange: (e) => setFileName(e.target.value) }),
4787
- /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(InputGroupAddon, { align: "inline-end", className: "pr-1", children: /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(InputGroupText, { className: "font-bold bg-accent rounded-lg py-1 px-3", children: file.ext }) })
4740
+ /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)("div", { className: "space-y-4 pt-4 border-t border-border", children: [
4741
+ /* @__PURE__ */ (0, import_jsx_runtime68.jsx)("div", { className: "space-y-2", children: /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)(Field, { className: "gap-0", children: [
4742
+ /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(FieldLabel, { htmlFor: "fileName", children: "File name" }),
4743
+ /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)(InputGroup, { children: [
4744
+ /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(InputGroupInput, { id: "fileName", placeholder: "Enter file name", value: fileName.replace(file.ext || "", ""), onChange: (e) => setFileName(e.target.value) }),
4745
+ /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(InputGroupAddon, { align: "inline-end", className: "pr-1", children: /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(InputGroupText, { className: "font-bold bg-accent rounded-lg py-1 px-3", children: file.ext }) })
4788
4746
  ] })
4789
4747
  ] }) }),
4790
- /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)("div", { className: "space-y-2", children: [
4791
- /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(Label, { htmlFor: "caption", children: "Caption" }),
4792
- /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
4748
+ /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)("div", { className: "space-y-2", children: [
4749
+ /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(Label, { htmlFor: "caption", children: "Caption" }),
4750
+ /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(
4793
4751
  Textarea,
4794
4752
  {
4795
4753
  id: "caption",
@@ -4802,14 +4760,14 @@ function VideoModal({ file, onClose, onSave }) {
4802
4760
  ] })
4803
4761
  ] })
4804
4762
  ] });
4805
- const footer = /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)("div", { className: "flex w-full sm:justify-between justify-center items-center flex-col sm:flex-row gap-2 ", children: [
4806
- /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(Button, { variant: "outline", onClick: onClose, radius: "full", className: "w-full md:w-auto", disabled: isSaving, children: "Cancel" }),
4807
- /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)(Button, { onClick: handleSave, radius: "full", className: "w-full md:w-auto", disabled: isSaving, children: [
4808
- isSaving && /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(Loader2Icon, { className: "mr-2 h-4 w-4 animate-spin" }),
4763
+ const footer = /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)("div", { className: "flex w-full sm:justify-between justify-center items-center flex-col sm:flex-row gap-2 ", children: [
4764
+ /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(Button, { variant: "outline", onClick: onClose, radius: "full", className: "w-full md:w-auto", disabled: isSaving, children: "Cancel" }),
4765
+ /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)(Button, { onClick: handleSave, radius: "full", className: "w-full md:w-auto", disabled: isSaving, children: [
4766
+ isSaving && /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(Loader2Icon, { className: "mr-2 h-4 w-4 animate-spin" }),
4809
4767
  "Finish"
4810
4768
  ] })
4811
4769
  ] });
4812
- return /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
4770
+ return /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(
4813
4771
  DetailsLayout,
4814
4772
  {
4815
4773
  title: "Details",
@@ -4824,7 +4782,7 @@ function VideoModal({ file, onClose, onSave }) {
4824
4782
 
4825
4783
  // components/modals/audio-modal.tsx
4826
4784
  var import_react16 = require("react");
4827
- var import_jsx_runtime70 = require("react/jsx-runtime");
4785
+ var import_jsx_runtime69 = require("react/jsx-runtime");
4828
4786
  function AudioModal({ file, onClose, onSave }) {
4829
4787
  var _a, _b, _c;
4830
4788
  const [isSaving, setIsSaving] = (0, import_react16.useState)(false);
@@ -4842,62 +4800,62 @@ function AudioModal({ file, onClose, onSave }) {
4842
4800
  setIsSaving(false);
4843
4801
  }
4844
4802
  };
4845
- const previewSection = /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)("div", { className: "flex flex-col h-full", children: [
4846
- /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)("div", { className: "flex gap-2 mb-4", children: [
4847
- /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(FileDeleteButton, { file }),
4848
- /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(FileDownloadButton, { file }),
4849
- /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(FileCopyLinkButton, { file })
4803
+ const previewSection = /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)("div", { className: "flex flex-col h-full", children: [
4804
+ /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)("div", { className: "flex gap-2 mb-4", children: [
4805
+ /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(FileDeleteButton, { file }),
4806
+ /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(FileDownloadButton, { file }),
4807
+ /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(FileCopyLinkButton, { file })
4850
4808
  ] }),
4851
- /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)("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: [
4852
- /* @__PURE__ */ (0, import_jsx_runtime70.jsx)("div", { className: "mb-8", children: /* @__PURE__ */ (0, import_jsx_runtime70.jsx)("div", { className: "w-32 h-32 rounded-full bg-white dark:bg-gray-800 shadow-lg flex items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(MusicIcon, { className: "w-16 h-16 text-purple-600 dark:text-purple-400" }) }) }),
4853
- /* @__PURE__ */ (0, import_jsx_runtime70.jsx)("div", { className: "w-full max-w-md", children: /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)(
4809
+ /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)("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: [
4810
+ /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("div", { className: "mb-8", children: /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("div", { className: "w-32 h-32 rounded-full bg-white dark:bg-gray-800 shadow-lg flex items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(MusicIcon, { className: "w-16 h-16 text-purple-600 dark:text-purple-400" }) }) }),
4811
+ /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("div", { className: "w-full max-w-md", children: /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)(
4854
4812
  "audio",
4855
4813
  {
4856
4814
  src: file.url,
4857
4815
  controls: true,
4858
4816
  className: "w-full",
4859
4817
  children: [
4860
- /* @__PURE__ */ (0, import_jsx_runtime70.jsx)("track", { kind: "captions", srcLang: "en", label: "English" }),
4818
+ /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("track", { kind: "captions", srcLang: "en", label: "English" }),
4861
4819
  "Your browser does not support the audio tag."
4862
4820
  ]
4863
4821
  }
4864
4822
  ) })
4865
4823
  ] })
4866
4824
  ] });
4867
- const metadataSection = /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)("div", { className: "space-y-6", children: [
4868
- /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)("div", { className: "grid grid-cols-2 gap-4", children: [
4869
- /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)("div", { children: [
4870
- /* @__PURE__ */ (0, import_jsx_runtime70.jsx)("p", { className: "text-xs font-medium text-muted-foreground uppercase tracking-wide mb-1", children: "Size" }),
4871
- /* @__PURE__ */ (0, import_jsx_runtime70.jsx)("p", { className: "text-xs font-bold text-primary", children: getFileSize(file.size) })
4825
+ const metadataSection = /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)("div", { className: "space-y-6", children: [
4826
+ /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)("div", { className: "grid grid-cols-2 gap-4", children: [
4827
+ /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)("div", { children: [
4828
+ /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("p", { className: "text-xs font-medium text-muted-foreground uppercase tracking-wide mb-1", children: "Size" }),
4829
+ /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("p", { className: "text-xs font-bold text-primary", children: getFileSize(file.size) })
4872
4830
  ] }),
4873
- /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)("div", { children: [
4874
- /* @__PURE__ */ (0, import_jsx_runtime70.jsx)("p", { className: "text-xs font-medium text-muted-foreground uppercase tracking-wide mb-1", children: "Duration" }),
4875
- /* @__PURE__ */ (0, import_jsx_runtime70.jsx)("p", { className: "text-xs font-bold text-primary", children: ((_a = file.metaData) == null ? void 0 : _a.duration) ? formatDuration(file.metaData.duration) : "N/A" })
4831
+ /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)("div", { children: [
4832
+ /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("p", { className: "text-xs font-medium text-muted-foreground uppercase tracking-wide mb-1", children: "Duration" }),
4833
+ /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("p", { className: "text-xs font-bold text-primary", children: ((_a = file.metaData) == null ? void 0 : _a.duration) ? formatDuration(file.metaData.duration) : "N/A" })
4876
4834
  ] }),
4877
- /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)("div", { children: [
4878
- /* @__PURE__ */ (0, import_jsx_runtime70.jsx)("p", { className: "text-xs font-medium text-muted-foreground uppercase tracking-wide mb-1", children: "Bitrate" }),
4879
- /* @__PURE__ */ (0, import_jsx_runtime70.jsx)("p", { className: "text-xs font-bold text-primary", children: ((_b = file.metaData) == null ? void 0 : _b.bitrate) ? `${file.metaData.bitrate} kbps` : "N/A" })
4835
+ /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)("div", { children: [
4836
+ /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("p", { className: "text-xs font-medium text-muted-foreground uppercase tracking-wide mb-1", children: "Bitrate" }),
4837
+ /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("p", { className: "text-xs font-bold text-primary", children: ((_b = file.metaData) == null ? void 0 : _b.bitrate) ? `${file.metaData.bitrate} kbps` : "N/A" })
4880
4838
  ] }),
4881
- /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)("div", { children: [
4882
- /* @__PURE__ */ (0, import_jsx_runtime70.jsx)("p", { className: "text-xs font-medium text-muted-foreground uppercase tracking-wide mb-1", children: "Date" }),
4883
- /* @__PURE__ */ (0, import_jsx_runtime70.jsx)("p", { className: "text-xs font-bold text-primary", children: formatDate(file.createdAt) })
4839
+ /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)("div", { children: [
4840
+ /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("p", { className: "text-xs font-medium text-muted-foreground uppercase tracking-wide mb-1", children: "Date" }),
4841
+ /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("p", { className: "text-xs font-bold text-primary", children: formatDate(file.createdAt) })
4884
4842
  ] }),
4885
- /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)("div", { children: [
4886
- /* @__PURE__ */ (0, import_jsx_runtime70.jsx)("p", { className: "text-xs font-medium text-muted-foreground uppercase tracking-wide mb-1", children: "Extension" }),
4887
- /* @__PURE__ */ (0, import_jsx_runtime70.jsx)("p", { className: "text-xs font-bold text-primary", children: ((_c = file.ext) == null ? void 0 : _c.replace(".", "")) || "N/A" })
4843
+ /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)("div", { children: [
4844
+ /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("p", { className: "text-xs font-medium text-muted-foreground uppercase tracking-wide mb-1", children: "Extension" }),
4845
+ /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("p", { className: "text-xs font-bold text-primary", children: ((_c = file.ext) == null ? void 0 : _c.replace(".", "")) || "N/A" })
4888
4846
  ] })
4889
4847
  ] }),
4890
- /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)("div", { className: "space-y-4 pt-4 border-t border-border", children: [
4891
- /* @__PURE__ */ (0, import_jsx_runtime70.jsx)("div", { className: "space-y-2", children: /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)(Field, { className: "gap-0", children: [
4892
- /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(FieldLabel, { htmlFor: "fileName", children: "File name" }),
4893
- /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)(InputGroup, { children: [
4894
- /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(InputGroupInput, { id: "fileName", placeholder: "Enter file name", value: fileName.replace(file.ext || "", ""), onChange: (e) => setFileName(e.target.value) }),
4895
- /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(InputGroupAddon, { align: "inline-end", className: "pr-1", children: /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(InputGroupText, { className: "font-bold bg-accent rounded-lg py-1 px-3", children: file.ext }) })
4848
+ /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)("div", { className: "space-y-4 pt-4 border-t border-border", children: [
4849
+ /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("div", { className: "space-y-2", children: /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)(Field, { className: "gap-0", children: [
4850
+ /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(FieldLabel, { htmlFor: "fileName", children: "File name" }),
4851
+ /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)(InputGroup, { children: [
4852
+ /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(InputGroupInput, { id: "fileName", placeholder: "Enter file name", value: fileName.replace(file.ext || "", ""), onChange: (e) => setFileName(e.target.value) }),
4853
+ /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(InputGroupAddon, { align: "inline-end", className: "pr-1", children: /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(InputGroupText, { className: "font-bold bg-accent rounded-lg py-1 px-3", children: file.ext }) })
4896
4854
  ] })
4897
4855
  ] }) }),
4898
- /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)("div", { className: "space-y-2", children: [
4899
- /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(Label, { htmlFor: "caption", children: "Caption" }),
4900
- /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
4856
+ /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)("div", { className: "space-y-2", children: [
4857
+ /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(Label, { htmlFor: "caption", children: "Caption" }),
4858
+ /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
4901
4859
  Textarea,
4902
4860
  {
4903
4861
  id: "caption",
@@ -4910,14 +4868,14 @@ function AudioModal({ file, onClose, onSave }) {
4910
4868
  ] })
4911
4869
  ] })
4912
4870
  ] });
4913
- const footer = /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)("div", { className: "flex gap-2 w-full sm:justify-between justify-center items-center flex-col sm:flex-row ", children: [
4914
- /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(Button, { variant: "outline", onClick: onClose, radius: "full", className: "w-full md:w-auto", disabled: isSaving, children: "Cancel" }),
4915
- /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)(Button, { onClick: handleSave, radius: "full", className: "w-full md:w-auto", disabled: isSaving, children: [
4916
- isSaving && /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(Loader2Icon, { className: "mr-2 h-4 w-4 animate-spin" }),
4871
+ const footer = /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)("div", { className: "flex gap-2 w-full sm:justify-between justify-center items-center flex-col sm:flex-row ", children: [
4872
+ /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(Button, { variant: "outline", onClick: onClose, radius: "full", className: "w-full md:w-auto", disabled: isSaving, children: "Cancel" }),
4873
+ /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)(Button, { onClick: handleSave, radius: "full", className: "w-full md:w-auto", disabled: isSaving, children: [
4874
+ isSaving && /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(Loader2Icon, { className: "mr-2 h-4 w-4 animate-spin" }),
4917
4875
  "Finish"
4918
4876
  ] })
4919
4877
  ] });
4920
- return /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
4878
+ return /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
4921
4879
  DetailsLayout,
4922
4880
  {
4923
4881
  title: "Details",
@@ -4932,7 +4890,7 @@ function AudioModal({ file, onClose, onSave }) {
4932
4890
 
4933
4891
  // components/modals/file-modal.tsx
4934
4892
  var import_react17 = require("react");
4935
- var import_jsx_runtime71 = require("react/jsx-runtime");
4893
+ var import_jsx_runtime70 = require("react/jsx-runtime");
4936
4894
  function FileModal({ file, onClose, onSave }) {
4937
4895
  var _a, _b, _c, _d;
4938
4896
  const [isSaving, setIsSaving] = (0, import_react17.useState)(false);
@@ -4954,54 +4912,54 @@ function FileModal({ file, onClose, onSave }) {
4954
4912
  };
4955
4913
  const ext = ((_b = file.ext) == null ? void 0 : _b.replace(".", "")) || "file";
4956
4914
  const { component: FilePreviewComponent } = getFileComponents(file);
4957
- const previewSection = /* @__PURE__ */ (0, import_jsx_runtime71.jsxs)("div", { className: "flex flex-col h-full", children: [
4958
- /* @__PURE__ */ (0, import_jsx_runtime71.jsxs)("div", { className: "flex gap-2 mb-4", children: [
4959
- /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(FileDeleteButton, { file }),
4960
- /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(FileDownloadButton, { file }),
4961
- /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(FileCopyLinkButton, { file })
4915
+ const previewSection = /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)("div", { className: "flex flex-col h-full", children: [
4916
+ /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)("div", { className: "flex gap-2 mb-4", children: [
4917
+ /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(FileDeleteButton, { file }),
4918
+ /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(FileDownloadButton, { file }),
4919
+ /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(FileCopyLinkButton, { file })
4962
4920
  ] }),
4963
- /* @__PURE__ */ (0, import_jsx_runtime71.jsxs)("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: [
4964
- /* @__PURE__ */ (0, import_jsx_runtime71.jsx)("div", { className: "mb-4 w-32 h-32 flex items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(FilePreviewComponent, { file, metaData: file.metaData }) }),
4965
- /* @__PURE__ */ (0, import_jsx_runtime71.jsxs)("p", { className: "text-sm font-medium text-muted-foreground uppercase tracking-wider", children: [
4921
+ /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)("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: [
4922
+ /* @__PURE__ */ (0, import_jsx_runtime70.jsx)("div", { className: "mb-4 w-32 h-32 flex items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(FilePreviewComponent, { file, metaData: file.metaData }) }),
4923
+ /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)("p", { className: "text-sm font-medium text-muted-foreground uppercase tracking-wider", children: [
4966
4924
  ext,
4967
4925
  " File"
4968
4926
  ] })
4969
4927
  ] })
4970
4928
  ] });
4971
- const metadataSection = /* @__PURE__ */ (0, import_jsx_runtime71.jsxs)("div", { className: "space-y-6", children: [
4972
- /* @__PURE__ */ (0, import_jsx_runtime71.jsxs)("div", { className: "grid grid-cols-2 gap-4", children: [
4973
- /* @__PURE__ */ (0, import_jsx_runtime71.jsxs)("div", { children: [
4974
- /* @__PURE__ */ (0, import_jsx_runtime71.jsx)("p", { className: "text-xs font-medium text-muted-foreground tracking-wide mb-1", children: "Size" }),
4975
- /* @__PURE__ */ (0, import_jsx_runtime71.jsx)("p", { className: "text-xs font-bold text-blue-600 dark:text-blue-400", children: getFileSize(file.size) })
4929
+ const metadataSection = /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)("div", { className: "space-y-6", children: [
4930
+ /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)("div", { className: "grid grid-cols-2 gap-4", children: [
4931
+ /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)("div", { children: [
4932
+ /* @__PURE__ */ (0, import_jsx_runtime70.jsx)("p", { className: "text-xs font-medium text-muted-foreground tracking-wide mb-1", children: "Size" }),
4933
+ /* @__PURE__ */ (0, import_jsx_runtime70.jsx)("p", { className: "text-xs font-bold text-blue-600 dark:text-blue-400", children: getFileSize(file.size) })
4976
4934
  ] }),
4977
- /* @__PURE__ */ (0, import_jsx_runtime71.jsxs)("div", { children: [
4978
- /* @__PURE__ */ (0, import_jsx_runtime71.jsx)("p", { className: "text-xs font-medium text-muted-foreground tracking-wide mb-1", children: "Date" }),
4979
- /* @__PURE__ */ (0, import_jsx_runtime71.jsx)("p", { className: "text-xs font-bold text-blue-600 dark:text-blue-400", children: formatDate(file.createdAt) })
4935
+ /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)("div", { children: [
4936
+ /* @__PURE__ */ (0, import_jsx_runtime70.jsx)("p", { className: "text-xs font-medium text-muted-foreground tracking-wide mb-1", children: "Date" }),
4937
+ /* @__PURE__ */ (0, import_jsx_runtime70.jsx)("p", { className: "text-xs font-bold text-blue-600 dark:text-blue-400", children: formatDate(file.createdAt) })
4980
4938
  ] }),
4981
- /* @__PURE__ */ (0, import_jsx_runtime71.jsxs)("div", { children: [
4982
- /* @__PURE__ */ (0, import_jsx_runtime71.jsx)("p", { className: "text-xs font-medium text-muted-foreground tracking-wide mb-1", children: "Extension" }),
4983
- /* @__PURE__ */ (0, import_jsx_runtime71.jsx)("p", { className: "text-xs font-bold text-blue-600 dark:text-blue-400", children: ext })
4939
+ /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)("div", { children: [
4940
+ /* @__PURE__ */ (0, import_jsx_runtime70.jsx)("p", { className: "text-xs font-medium text-muted-foreground tracking-wide mb-1", children: "Extension" }),
4941
+ /* @__PURE__ */ (0, import_jsx_runtime70.jsx)("p", { className: "text-xs font-bold text-blue-600 dark:text-blue-400", children: ext })
4984
4942
  ] }),
4985
- ((_c = file.metaData) == null ? void 0 : _c.pageCount) && /* @__PURE__ */ (0, import_jsx_runtime71.jsxs)("div", { children: [
4986
- /* @__PURE__ */ (0, import_jsx_runtime71.jsx)("p", { className: "text-xs font-medium text-muted-foreground uppercase tracking-wide mb-1", children: "Page Count" }),
4987
- /* @__PURE__ */ (0, import_jsx_runtime71.jsx)("p", { className: "text-xs font-bold text-blue-600 dark:text-blue-400", children: file.metaData.pageCount })
4943
+ ((_c = file.metaData) == null ? void 0 : _c.pageCount) && /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)("div", { children: [
4944
+ /* @__PURE__ */ (0, import_jsx_runtime70.jsx)("p", { className: "text-xs font-medium text-muted-foreground uppercase tracking-wide mb-1", children: "Page Count" }),
4945
+ /* @__PURE__ */ (0, import_jsx_runtime70.jsx)("p", { className: "text-xs font-bold text-blue-600 dark:text-blue-400", children: file.metaData.pageCount })
4988
4946
  ] }),
4989
- ((_d = file.metaData) == null ? void 0 : _d.author) && /* @__PURE__ */ (0, import_jsx_runtime71.jsxs)("div", { children: [
4990
- /* @__PURE__ */ (0, import_jsx_runtime71.jsx)("p", { className: "text-xs font-medium text-muted-foreground uppercase tracking-wide mb-1", children: "Author" }),
4991
- /* @__PURE__ */ (0, import_jsx_runtime71.jsx)("p", { className: "text-xs font-bold text-blue-600 dark:text-blue-400", children: file.metaData.author })
4947
+ ((_d = file.metaData) == null ? void 0 : _d.author) && /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)("div", { children: [
4948
+ /* @__PURE__ */ (0, import_jsx_runtime70.jsx)("p", { className: "text-xs font-medium text-muted-foreground uppercase tracking-wide mb-1", children: "Author" }),
4949
+ /* @__PURE__ */ (0, import_jsx_runtime70.jsx)("p", { className: "text-xs font-bold text-blue-600 dark:text-blue-400", children: file.metaData.author })
4992
4950
  ] })
4993
4951
  ] }),
4994
- /* @__PURE__ */ (0, import_jsx_runtime71.jsxs)("div", { className: "space-y-4 pt-4 border-t border-slate-200", children: [
4995
- /* @__PURE__ */ (0, import_jsx_runtime71.jsx)("div", { className: "space-y-2", children: /* @__PURE__ */ (0, import_jsx_runtime71.jsxs)(Field, { className: "gap-0", children: [
4996
- /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(FieldLabel, { htmlFor: "fileName", children: "File name" }),
4997
- /* @__PURE__ */ (0, import_jsx_runtime71.jsxs)(InputGroup, { children: [
4998
- /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(InputGroupInput, { id: "fileName", placeholder: "Enter file name", value: fileName.replace(file.ext || "", ""), onChange: (e) => setFileName(e.target.value) }),
4999
- /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(InputGroupAddon, { align: "inline-end", className: "pr-1", children: /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(InputGroupText, { className: "font-bold bg-gray-200 dark:bg-zinc-700 rounded-lg py-1 px-3", children: file.ext }) })
4952
+ /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)("div", { className: "space-y-4 pt-4 border-t border-slate-200", children: [
4953
+ /* @__PURE__ */ (0, import_jsx_runtime70.jsx)("div", { className: "space-y-2", children: /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)(Field, { className: "gap-0", children: [
4954
+ /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(FieldLabel, { htmlFor: "fileName", children: "File name" }),
4955
+ /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)(InputGroup, { children: [
4956
+ /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(InputGroupInput, { id: "fileName", placeholder: "Enter file name", value: fileName.replace(file.ext || "", ""), onChange: (e) => setFileName(e.target.value) }),
4957
+ /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(InputGroupAddon, { align: "inline-end", className: "pr-1", children: /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(InputGroupText, { className: "font-bold bg-gray-200 dark:bg-zinc-700 rounded-lg py-1 px-3", children: file.ext }) })
5000
4958
  ] })
5001
4959
  ] }) }),
5002
- /* @__PURE__ */ (0, import_jsx_runtime71.jsxs)("div", { className: "space-y-2", children: [
5003
- /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(Label, { htmlFor: "description", children: "Description" }),
5004
- /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(
4960
+ /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)("div", { className: "space-y-2", children: [
4961
+ /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(Label, { htmlFor: "description", children: "Description" }),
4962
+ /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
5005
4963
  Textarea,
5006
4964
  {
5007
4965
  id: "description",
@@ -5014,14 +4972,14 @@ function FileModal({ file, onClose, onSave }) {
5014
4972
  ] })
5015
4973
  ] })
5016
4974
  ] });
5017
- const footer = /* @__PURE__ */ (0, import_jsx_runtime71.jsxs)("div", { className: "flex w-full justify-between items-center flex-col sm:flex-row gap-2 ", children: [
5018
- /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(Button, { className: "w-full md:w-auto", variant: "outline", onClick: onClose, radius: "full", disabled: isSaving, children: "Cancel" }),
5019
- /* @__PURE__ */ (0, import_jsx_runtime71.jsxs)(Button, { className: "w-full md:w-auto", onClick: handleSave, radius: "full", disabled: isSaving, children: [
5020
- isSaving && /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(Loader2Icon, { className: "mr-2 h-4 w-4 animate-spin" }),
4975
+ const footer = /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)("div", { className: "flex w-full justify-between items-center flex-col sm:flex-row gap-2 ", children: [
4976
+ /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(Button, { className: "w-full md:w-auto", variant: "outline", onClick: onClose, radius: "full", disabled: isSaving, children: "Cancel" }),
4977
+ /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)(Button, { className: "w-full md:w-auto", onClick: handleSave, radius: "full", disabled: isSaving, children: [
4978
+ isSaving && /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(Loader2Icon, { className: "mr-2 h-4 w-4 animate-spin" }),
5021
4979
  "Save"
5022
4980
  ] })
5023
4981
  ] });
5024
- return /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(
4982
+ return /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
5025
4983
  DetailsLayout,
5026
4984
  {
5027
4985
  title: "Details",
@@ -5035,7 +4993,7 @@ function FileModal({ file, onClose, onSave }) {
5035
4993
  }
5036
4994
 
5037
4995
  // components/layout/overlays.tsx
5038
- var import_jsx_runtime72 = require("react/jsx-runtime");
4996
+ var import_jsx_runtime71 = require("react/jsx-runtime");
5039
4997
  function FileManagerOverlays({ className }) {
5040
4998
  const {
5041
4999
  fileDetailsModalFile,
@@ -5058,7 +5016,7 @@ function FileManagerOverlays({ className }) {
5058
5016
  );
5059
5017
  switch (fileType) {
5060
5018
  case FILE_TYPE.IMAGE:
5061
- return /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
5019
+ return /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(
5062
5020
  ImageModal,
5063
5021
  {
5064
5022
  file: fileDetailsModalFile,
@@ -5067,7 +5025,7 @@ function FileManagerOverlays({ className }) {
5067
5025
  }
5068
5026
  );
5069
5027
  case FILE_TYPE.VIDEO:
5070
- return /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
5028
+ return /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(
5071
5029
  VideoModal,
5072
5030
  {
5073
5031
  file: fileDetailsModalFile,
@@ -5076,7 +5034,7 @@ function FileManagerOverlays({ className }) {
5076
5034
  }
5077
5035
  );
5078
5036
  case FILE_TYPE.AUDIO:
5079
- return /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
5037
+ return /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(
5080
5038
  AudioModal,
5081
5039
  {
5082
5040
  file: fileDetailsModalFile,
@@ -5086,7 +5044,7 @@ function FileManagerOverlays({ className }) {
5086
5044
  );
5087
5045
  case FILE_TYPE.FILE:
5088
5046
  default:
5089
- return /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
5047
+ return /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(
5090
5048
  FileModal,
5091
5049
  {
5092
5050
  file: fileDetailsModalFile,
@@ -5096,23 +5054,23 @@ function FileManagerOverlays({ className }) {
5096
5054
  );
5097
5055
  }
5098
5056
  };
5099
- return /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)("div", { className: cn("", className), children: [
5100
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(UploadModal, {}),
5101
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(CreateFolderModal, {}),
5102
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(MoveModal, {}),
5057
+ return /* @__PURE__ */ (0, import_jsx_runtime71.jsxs)("div", { className: cn("", className), children: [
5058
+ /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(UploadModal, {}),
5059
+ /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(CreateFolderModal, {}),
5060
+ /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(MoveModal, {}),
5103
5061
  renderFileDetailsModal()
5104
5062
  ] });
5105
5063
  }
5106
5064
 
5107
5065
  // components/file-manager-root.tsx
5108
- var import_jsx_runtime73 = require("react/jsx-runtime");
5066
+ var import_jsx_runtime72 = require("react/jsx-runtime");
5109
5067
  function FileManagerPageProvider(_a) {
5110
5068
  var _b = _a, {
5111
5069
  children
5112
5070
  } = _b, props = __objRest(_b, [
5113
5071
  "children"
5114
5072
  ]);
5115
- return /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
5073
+ return /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
5116
5074
  FileManagerProvider,
5117
5075
  __spreadProps(__spreadValues({
5118
5076
  mode: MODE.PAGE,
@@ -5138,7 +5096,7 @@ function FileManagerModalProvider(_a) {
5138
5096
  "onFilesSelected",
5139
5097
  "onClose"
5140
5098
  ]);
5141
- return /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
5099
+ return /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
5142
5100
  FileManagerProvider,
5143
5101
  __spreadProps(__spreadValues({
5144
5102
  mode: MODE.MODAL,
@@ -5161,10 +5119,10 @@ var FileManagerComposition = {
5161
5119
  };
5162
5120
 
5163
5121
  // components/layout/bulk-actions-bar.tsx
5164
- var import_jsx_runtime74 = require("react/jsx-runtime");
5122
+ var import_jsx_runtime73 = require("react/jsx-runtime");
5165
5123
  function MoveButton() {
5166
5124
  const { setIsMoveFileModalOpen } = useFileManager();
5167
- return /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)(
5125
+ return /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)(
5168
5126
  Button,
5169
5127
  {
5170
5128
  variant: "outline",
@@ -5173,15 +5131,15 @@ function MoveButton() {
5173
5131
  onClick: () => setIsMoveFileModalOpen(true),
5174
5132
  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",
5175
5133
  children: [
5176
- /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(MoveIcon, { className: "size-5" }),
5177
- /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("span", { className: "hidden sm:inline", children: "Move" })
5134
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(MoveIcon, { className: "size-5" }),
5135
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("span", { className: "hidden sm:inline", children: "Move" })
5178
5136
  ]
5179
5137
  }
5180
5138
  );
5181
5139
  }
5182
5140
  function DeleteButton() {
5183
5141
  const { bulkDelete } = useFileManager();
5184
- return /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)(
5142
+ return /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)(
5185
5143
  Button,
5186
5144
  {
5187
5145
  variant: "outline",
@@ -5190,15 +5148,15 @@ function DeleteButton() {
5190
5148
  onClick: bulkDelete,
5191
5149
  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",
5192
5150
  children: [
5193
- /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(TrashIcon, { className: "size-5" }),
5194
- /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("span", { className: "hidden", children: "Delete" })
5151
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(TrashIcon, { className: "size-5" }),
5152
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("span", { className: "hidden", children: "Delete" })
5195
5153
  ]
5196
5154
  }
5197
5155
  );
5198
5156
  }
5199
5157
  function ClearSelectionButton() {
5200
5158
  const { handleClearSelection } = useFileManager();
5201
- return /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)(
5159
+ return /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)(
5202
5160
  Button,
5203
5161
  {
5204
5162
  variant: "outline",
@@ -5206,7 +5164,7 @@ function ClearSelectionButton() {
5206
5164
  onClick: handleClearSelection,
5207
5165
  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",
5208
5166
  children: [
5209
- /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(CrossIcon, { className: "size-5 transition-colors" }),
5167
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(CrossIcon, { className: "size-5 transition-colors" }),
5210
5168
  "Clear"
5211
5169
  ]
5212
5170
  }
@@ -5219,12 +5177,12 @@ function BulkActionsStatic() {
5219
5177
  } = useFileManager();
5220
5178
  const totalSelected = selectedFiles.length + selectedFolders.length;
5221
5179
  if (totalSelected === 0) return null;
5222
- return /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("div", { className: "w-full", children: /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)("div", { className: "flex flex-wrap items-center gap-2 sm:gap-3", children: [
5223
- /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)("div", { className: "flex items-center gap-2 flex-1 sm:flex-initial", children: [
5224
- /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(MoveButton, {}),
5225
- /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(DeleteButton, {})
5180
+ return /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("div", { className: "w-full", children: /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("div", { className: "flex flex-wrap items-center gap-2 sm:gap-3", children: [
5181
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("div", { className: "flex items-center gap-2 flex-1 sm:flex-initial", children: [
5182
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(MoveButton, {}),
5183
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(DeleteButton, {})
5226
5184
  ] }),
5227
- /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(ClearSelectionButton, {})
5185
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(ClearSelectionButton, {})
5228
5186
  ] }) });
5229
5187
  }
5230
5188
  function BulkActionsFloating({ className }) {
@@ -5234,25 +5192,25 @@ function BulkActionsFloating({ className }) {
5234
5192
  } = useFileManager();
5235
5193
  const totalSelected = selectedFiles.length + selectedFolders.length;
5236
5194
  if (totalSelected === 0) return null;
5237
- return /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("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__ */ (0, import_jsx_runtime74.jsx)("div", { className: "px-4 sm:px-6 py-3 mx-auto", children: /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)("div", { className: "flex flex-wrap items-center gap-2 sm:gap-3", children: [
5238
- /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)("div", { className: "flex items-center gap-2 flex-1 sm:flex-initial", children: [
5239
- /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(MoveButton, {}),
5240
- /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(DeleteButton, {})
5195
+ return /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("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__ */ (0, import_jsx_runtime73.jsx)("div", { className: "px-4 sm:px-6 py-3 mx-auto", children: /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("div", { className: "flex flex-wrap items-center gap-2 sm:gap-3", children: [
5196
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("div", { className: "flex items-center gap-2 flex-1 sm:flex-initial", children: [
5197
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(MoveButton, {}),
5198
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(DeleteButton, {})
5241
5199
  ] }),
5242
- /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(ClearSelectionButton, {})
5200
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(ClearSelectionButton, {})
5243
5201
  ] }) }) });
5244
5202
  }
5245
5203
 
5246
5204
  // components/ui/skeleton.tsx
5247
- var import_jsx_runtime75 = require("react/jsx-runtime");
5205
+ var import_jsx_runtime74 = require("react/jsx-runtime");
5248
5206
  function Skeleton(_a) {
5249
5207
  var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
5250
- return /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("div", __spreadValues({ "data-slot": "skeleton", className: cn("animate-pulse rounded-md bg-accent", className) }, props));
5208
+ return /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("div", __spreadValues({ "data-slot": "skeleton", className: cn("animate-pulse rounded-md bg-accent", className) }, props));
5251
5209
  }
5252
5210
 
5253
5211
  // components/layout/header-navigation.tsx
5254
5212
  var import_navigation3 = require("next/navigation");
5255
- var import_jsx_runtime76 = require("react/jsx-runtime");
5213
+ var import_jsx_runtime75 = require("react/jsx-runtime");
5256
5214
  function HeaderNavigation() {
5257
5215
  const {
5258
5216
  currentFolder,
@@ -5264,13 +5222,13 @@ function HeaderNavigation() {
5264
5222
  router.back();
5265
5223
  };
5266
5224
  if (isLoading) {
5267
- return /* @__PURE__ */ (0, import_jsx_runtime76.jsxs)("div", { className: "flex item-center w-full", children: [
5268
- /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(Skeleton, { className: "rounded-full size-10 mr-2 shrink-0" }),
5269
- /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(Skeleton, { className: "min-w-32 rounded-md h-full" })
5225
+ return /* @__PURE__ */ (0, import_jsx_runtime75.jsxs)("div", { className: "flex item-center w-full", children: [
5226
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(Skeleton, { className: "rounded-full size-10 mr-2 shrink-0" }),
5227
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(Skeleton, { className: "min-w-32 rounded-md h-full" })
5270
5228
  ] });
5271
5229
  }
5272
- return /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(import_jsx_runtime76.Fragment, { children: currentFolder ? /* @__PURE__ */ (0, import_jsx_runtime76.jsxs)("div", { className: "flex items-center flex-1 min-w-0 max-w-[calc(100%-40px)]", children: [
5273
- /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(
5230
+ return /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(import_jsx_runtime75.Fragment, { children: currentFolder ? /* @__PURE__ */ (0, import_jsx_runtime75.jsxs)("div", { className: "flex items-center flex-1 min-w-0 max-w-[calc(100%-40px)]", children: [
5231
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(
5274
5232
  Button,
5275
5233
  {
5276
5234
  variant: "outline",
@@ -5279,12 +5237,12 @@ function HeaderNavigation() {
5279
5237
  disabled: isLoading,
5280
5238
  className: "border-gray-200 dark:border-zinc-700 bg-white dark:bg-zinc-900 mr-2",
5281
5239
  onClick: handleBackClick,
5282
- children: /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(ChevronLeftIcon, { className: "size-5 text-gray-900 dark:text-zinc-100", strokeWidth: "1.5" })
5240
+ children: /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(ChevronLeftIcon, { className: "size-5 text-gray-900 dark:text-zinc-100", strokeWidth: "1.5" })
5283
5241
  }
5284
5242
  ),
5285
- /* @__PURE__ */ (0, import_jsx_runtime76.jsx)("h1", { className: "text-lg flex-1 min-w-0 align-middle font-semibold", children: middleTruncate(currentFolder.name, 20) })
5286
- ] }) : /* @__PURE__ */ (0, import_jsx_runtime76.jsxs)("div", { className: "flex items-center flex-1 min-w-0 max-w-[calc(100%-40px)]", children: [
5287
- /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(
5243
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("h1", { className: "text-lg flex-1 min-w-0 align-middle font-semibold", children: middleTruncate(currentFolder.name, 20) })
5244
+ ] }) : /* @__PURE__ */ (0, import_jsx_runtime75.jsxs)("div", { className: "flex items-center flex-1 min-w-0 max-w-[calc(100%-40px)]", children: [
5245
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(
5288
5246
  Button,
5289
5247
  {
5290
5248
  className: "mr-2 shrink-0",
@@ -5293,23 +5251,23 @@ function HeaderNavigation() {
5293
5251
  mode: "icon",
5294
5252
  size: "icon",
5295
5253
  onClick: () => handleFolderClick(null),
5296
- children: /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(HomeIcon, { className: "size-6 text-gray-900 dark:text-zinc-100" })
5254
+ children: /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(HomeIcon, { className: "size-6 text-gray-900 dark:text-zinc-100" })
5297
5255
  }
5298
5256
  ),
5299
- /* @__PURE__ */ (0, import_jsx_runtime76.jsx)("h1", { className: "text-lg flex-1 min-w-0 align-middle font-semibold", children: "Home" })
5257
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("h1", { className: "text-lg flex-1 min-w-0 align-middle font-semibold", children: "Home" })
5300
5258
  ] }) });
5301
5259
  }
5302
5260
 
5303
5261
  // components/ui/dropdown-menu.tsx
5304
- var import_radix_ui5 = require("radix-ui");
5305
- var import_jsx_runtime77 = require("react/jsx-runtime");
5262
+ var import_radix_ui4 = require("radix-ui");
5263
+ var import_jsx_runtime76 = require("react/jsx-runtime");
5306
5264
  function DropdownMenu(_a) {
5307
5265
  var props = __objRest(_a, []);
5308
- return /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(import_radix_ui5.DropdownMenu.Root, __spreadValues({ "data-slot": "dropdown-menu" }, props));
5266
+ return /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(import_radix_ui4.DropdownMenu.Root, __spreadValues({ "data-slot": "dropdown-menu" }, props));
5309
5267
  }
5310
5268
  function DropdownMenuTrigger(_a) {
5311
5269
  var props = __objRest(_a, []);
5312
- return /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(import_radix_ui5.DropdownMenu.Trigger, __spreadValues({ className: "select-none", "data-slot": "dropdown-menu-trigger" }, props));
5270
+ return /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(import_radix_ui4.DropdownMenu.Trigger, __spreadValues({ className: "select-none", "data-slot": "dropdown-menu-trigger" }, props));
5313
5271
  }
5314
5272
  function DropdownMenuContent(_a) {
5315
5273
  var _b = _a, {
@@ -5319,8 +5277,8 @@ function DropdownMenuContent(_a) {
5319
5277
  "className",
5320
5278
  "sideOffset"
5321
5279
  ]);
5322
- return /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(import_radix_ui5.DropdownMenu.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(
5323
- import_radix_ui5.DropdownMenu.Content,
5280
+ return /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(import_radix_ui4.DropdownMenu.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(
5281
+ import_radix_ui4.DropdownMenu.Content,
5324
5282
  __spreadValues({
5325
5283
  "data-slot": "dropdown-menu-content",
5326
5284
  sideOffset,
@@ -5341,8 +5299,8 @@ function DropdownMenuItem(_a) {
5341
5299
  "inset",
5342
5300
  "variant"
5343
5301
  ]);
5344
- return /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(
5345
- import_radix_ui5.DropdownMenu.Item,
5302
+ return /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(
5303
+ import_radix_ui4.DropdownMenu.Item,
5346
5304
  __spreadValues({
5347
5305
  "data-slot": "dropdown-menu-item",
5348
5306
  className: cn(
@@ -5358,8 +5316,8 @@ function DropdownMenuItem(_a) {
5358
5316
  }
5359
5317
  function DropdownMenuSeparator(_a) {
5360
5318
  var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
5361
- return /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(
5362
- import_radix_ui5.DropdownMenu.Separator,
5319
+ return /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(
5320
+ import_radix_ui4.DropdownMenu.Separator,
5363
5321
  __spreadValues({
5364
5322
  "data-slot": "dropdown-menu-separator",
5365
5323
  className: cn("-mx-2 my-1.5 h-px bg-muted", className)
@@ -5372,10 +5330,10 @@ var import_react19 = require("react");
5372
5330
 
5373
5331
  // components/ui/command.tsx
5374
5332
  var import_cmdk = require("cmdk");
5375
- var import_jsx_runtime78 = require("react/jsx-runtime");
5333
+ var import_jsx_runtime77 = require("react/jsx-runtime");
5376
5334
  function Command(_a) {
5377
5335
  var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
5378
- return /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(
5336
+ return /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(
5379
5337
  import_cmdk.Command,
5380
5338
  __spreadValues({
5381
5339
  className: cn(
@@ -5387,9 +5345,9 @@ function Command(_a) {
5387
5345
  }
5388
5346
  var CommandDialog = (_a) => {
5389
5347
  var _b = _a, { children, className, shouldFilter } = _b, props = __objRest(_b, ["children", "className", "shouldFilter"]);
5390
- return /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(Dialog, __spreadProps(__spreadValues({}, props), { children: /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)(DialogContent, { className: cn("overflow-hidden p-0 shadow-lg", className), children: [
5391
- /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(DialogTitle, { className: "hidden" }),
5392
- /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(
5348
+ return /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(Dialog, __spreadProps(__spreadValues({}, props), { children: /* @__PURE__ */ (0, import_jsx_runtime77.jsxs)(DialogContent, { className: cn("overflow-hidden p-0 shadow-lg", className), children: [
5349
+ /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(DialogTitle, { className: "hidden" }),
5350
+ /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(
5393
5351
  Command,
5394
5352
  {
5395
5353
  shouldFilter,
@@ -5401,13 +5359,13 @@ var CommandDialog = (_a) => {
5401
5359
  };
5402
5360
  function CommandInput(_a) {
5403
5361
  var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
5404
- return /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)("div", { className: "flex items-center border-border border-b px-3", "cmdk-input-wrapper": "", "data-slot": "command-input", children: [
5405
- /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(SearchIcon, { className: "me-2 h-4 w-4 shrink-0 opacity-50" }),
5406
- /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(
5362
+ return /* @__PURE__ */ (0, import_jsx_runtime77.jsxs)("div", { className: "flex items-center border-border border-b px-3", "cmdk-input-wrapper": "", "data-slot": "command-input", children: [
5363
+ /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(SearchIcon, { className: "me-2 h-4 w-4 shrink-0 opacity-50" }),
5364
+ /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(
5407
5365
  import_cmdk.Command.Input,
5408
5366
  __spreadValues({
5409
5367
  className: cn(
5410
- "flex h-11 w-full rounded-md bg-transparent py-3 text-sm outline-hidden text-foreground placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50",
5368
+ "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",
5411
5369
  className
5412
5370
  )
5413
5371
  }, props)
@@ -5416,7 +5374,7 @@ function CommandInput(_a) {
5416
5374
  }
5417
5375
  function CommandList(_a) {
5418
5376
  var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
5419
- return /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(
5377
+ return /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(
5420
5378
  import_cmdk.Command.List,
5421
5379
  __spreadValues({
5422
5380
  "data-slot": "command-list",
@@ -5426,11 +5384,11 @@ function CommandList(_a) {
5426
5384
  }
5427
5385
  function CommandEmpty(_a) {
5428
5386
  var props = __objRest(_a, []);
5429
- return /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(import_cmdk.Command.Empty, __spreadValues({ "data-slot": "command-empty", className: "py-6 text-center text-sm" }, props));
5387
+ return /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(import_cmdk.Command.Empty, __spreadValues({ "data-slot": "command-empty", className: "py-6 text-center text-sm" }, props));
5430
5388
  }
5431
5389
  function CommandGroup(_a) {
5432
5390
  var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
5433
- return /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(
5391
+ return /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(
5434
5392
  import_cmdk.Command.Group,
5435
5393
  __spreadValues({
5436
5394
  "data-slot": "command-group",
@@ -5443,7 +5401,7 @@ function CommandGroup(_a) {
5443
5401
  }
5444
5402
  function CommandItem(_a) {
5445
5403
  var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
5446
- return /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(
5404
+ return /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(
5447
5405
  import_cmdk.Command.Item,
5448
5406
  __spreadValues({
5449
5407
  "data-slot": "command-item",
@@ -5473,7 +5431,7 @@ function useDebouncedValue(value, delay2 = 500) {
5473
5431
 
5474
5432
  // components/modals/search-modal.tsx
5475
5433
  var import_sonner4 = require("sonner");
5476
- var import_jsx_runtime79 = require("react/jsx-runtime");
5434
+ var import_jsx_runtime78 = require("react/jsx-runtime");
5477
5435
  function SearchDialog() {
5478
5436
  const [searchQuery, setSearchQuery] = (0, import_react19.useState)("");
5479
5437
  const [fileResults, setFileResults] = (0, import_react19.useState)([]);
@@ -5520,8 +5478,8 @@ function SearchDialog() {
5520
5478
  setFolderResults([]);
5521
5479
  }
5522
5480
  };
5523
- return /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)(import_jsx_runtime79.Fragment, { children: [
5524
- /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)(
5481
+ return /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)(import_jsx_runtime78.Fragment, { children: [
5482
+ /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)(
5525
5483
  Button,
5526
5484
  {
5527
5485
  variant: "outline",
@@ -5530,13 +5488,13 @@ function SearchDialog() {
5530
5488
  className: "border-gray-200 dark:border-zinc-700 bg-white dark:bg-zinc-900",
5531
5489
  onClick: () => setIsSearchModalOpen(true),
5532
5490
  children: [
5533
- /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(SearchIcon, { className: "size-4 text-gray-700 dark:text-zinc-300" }),
5534
- /* @__PURE__ */ (0, import_jsx_runtime79.jsx)("span", { className: "hidden", children: "Search" })
5491
+ /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(SearchIcon, { className: "size-4 text-gray-700 dark:text-zinc-300" }),
5492
+ /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("span", { className: "hidden", children: "Search" })
5535
5493
  ]
5536
5494
  }
5537
5495
  ),
5538
- /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)(CommandDialog, { className: "max-w-4xl w-full", open: isSearchModalOpen, onOpenChange: handleModalOpenChange, shouldFilter: false, children: [
5539
- /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(
5496
+ /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)(CommandDialog, { className: "max-w-4xl w-full", open: isSearchModalOpen, onOpenChange: handleModalOpenChange, shouldFilter: false, children: [
5497
+ /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(
5540
5498
  CommandInput,
5541
5499
  {
5542
5500
  placeholder: "Type to search files or folders...",
@@ -5544,23 +5502,23 @@ function SearchDialog() {
5544
5502
  onValueChange: handleInputChange
5545
5503
  }
5546
5504
  ),
5547
- /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)(CommandList, { children: [
5548
- loading && /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(CommandEmpty, { children: "Searching..." }),
5549
- !loading && fileResults.length === 0 && folderResults.length === 0 && !searchQuery && /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(CommandEmpty, { children: /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)("div", { className: "flex flex-col items-center justify-center py-8 px-4 text-center", children: [
5550
- /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(SearchIcon, { className: "size-12 text-gray-300 dark:text-zinc-600 mb-3" }),
5551
- /* @__PURE__ */ (0, import_jsx_runtime79.jsx)("p", { className: "text-sm font-medium text-gray-900 dark:text-zinc-100 mb-1", children: "Search your files and folders" }),
5552
- /* @__PURE__ */ (0, import_jsx_runtime79.jsx)("p", { className: "text-xs text-gray-500 dark:text-zinc-400", children: "Start typing to find what you're looking for" }),
5553
- /* @__PURE__ */ (0, import_jsx_runtime79.jsx)("p", { className: "text-xs text-gray-500 dark:text-zinc-400 mt-2", children: /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(KbdGroup, { children: /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)(Kbd, { children: [
5554
- /* @__PURE__ */ (0, import_jsx_runtime79.jsx)("span", { className: "text-lg", children: "\u2318" }),
5505
+ /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)(CommandList, { children: [
5506
+ loading && /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(CommandEmpty, { children: "Searching..." }),
5507
+ !loading && fileResults.length === 0 && folderResults.length === 0 && !searchQuery && /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(CommandEmpty, { children: /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)("div", { className: "flex flex-col items-center justify-center py-8 px-4 text-center", children: [
5508
+ /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(SearchIcon, { className: "size-12 text-gray-300 dark:text-zinc-600 mb-3" }),
5509
+ /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("p", { className: "text-sm font-medium text-gray-900 dark:text-zinc-100 mb-1", children: "Search your files and folders" }),
5510
+ /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("p", { className: "text-xs text-gray-500 dark:text-zinc-400", children: "Start typing to find what you're looking for" }),
5511
+ /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("p", { className: "text-xs text-gray-500 dark:text-zinc-400 mt-2", children: /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(KbdGroup, { children: /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)(Kbd, { children: [
5512
+ /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("span", { className: "text-lg", children: "\u2318" }),
5555
5513
  " + K"
5556
5514
  ] }) }) })
5557
5515
  ] }) }),
5558
- !loading && fileResults.length === 0 && folderResults.length === 0 && searchQuery && /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(CommandEmpty, { children: /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)("div", { className: "flex flex-col items-center justify-center py-8 px-4 text-center", children: [
5559
- /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(SearchIcon, { className: "size-12 text-gray-300 dark:text-zinc-600 mb-3" }),
5560
- /* @__PURE__ */ (0, import_jsx_runtime79.jsx)("p", { className: "text-sm font-medium text-gray-900 dark:text-zinc-100 mb-1", children: "No results found" }),
5561
- /* @__PURE__ */ (0, import_jsx_runtime79.jsx)("p", { className: "text-xs text-gray-500 dark:text-zinc-400", children: "Try searching with different keywords" })
5516
+ !loading && fileResults.length === 0 && folderResults.length === 0 && searchQuery && /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(CommandEmpty, { children: /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)("div", { className: "flex flex-col items-center justify-center py-8 px-4 text-center", children: [
5517
+ /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(SearchIcon, { className: "size-12 text-gray-300 dark:text-zinc-600 mb-3" }),
5518
+ /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("p", { className: "text-sm font-medium text-gray-900 dark:text-zinc-100 mb-1", children: "No results found" }),
5519
+ /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("p", { className: "text-xs text-gray-500 dark:text-zinc-400", children: "Try searching with different keywords" })
5562
5520
  ] }) }),
5563
- folderResults.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(CommandGroup, { heading: "Folders", children: folderResults.map((folder) => /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)(
5521
+ folderResults.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(CommandGroup, { heading: "Folders", children: folderResults.map((folder) => /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)(
5564
5522
  CommandItem,
5565
5523
  {
5566
5524
  onSelect: () => {
@@ -5569,15 +5527,15 @@ function SearchDialog() {
5569
5527
  handleFolderClick(folder);
5570
5528
  },
5571
5529
  children: [
5572
- /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(FolderIcon, { className: "size-4 mr-2 shrink-0", strokeWidth: 1.5 }),
5573
- /* @__PURE__ */ (0, import_jsx_runtime79.jsx)("span", { children: middleTruncate(folder.name, 60) })
5530
+ /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(FolderIcon, { className: "size-4 mr-2 shrink-0", strokeWidth: 1.5 }),
5531
+ /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("span", { children: middleTruncate(folder.name, 60) })
5574
5532
  ]
5575
5533
  },
5576
5534
  folder.id
5577
5535
  )) }),
5578
- fileResults.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(CommandGroup, { heading: "Files", children: fileResults.map((file) => {
5536
+ fileResults.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(CommandGroup, { heading: "Files", children: fileResults.map((file) => {
5579
5537
  const { component: FilePreviewComponent } = getFileComponents(file);
5580
- return /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)(
5538
+ return /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)(
5581
5539
  CommandItem,
5582
5540
  {
5583
5541
  onSelect: () => {
@@ -5585,8 +5543,8 @@ function SearchDialog() {
5585
5543
  setFileDetailsModalFile(file);
5586
5544
  },
5587
5545
  children: [
5588
- /* @__PURE__ */ (0, import_jsx_runtime79.jsx)("div", { className: "size-6 mr-2 shrink-0 flex items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(FilePreviewComponent, { file, metaData: file.metaData }) }),
5589
- /* @__PURE__ */ (0, import_jsx_runtime79.jsx)("span", { children: middleTruncate(file.name, 60) })
5546
+ /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("div", { className: "size-6 mr-2 shrink-0 flex items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(FilePreviewComponent, { file, metaData: file.metaData }) }),
5547
+ /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("span", { children: middleTruncate(file.name, 60) })
5590
5548
  ]
5591
5549
  },
5592
5550
  file.id
@@ -5599,8 +5557,8 @@ function SearchDialog() {
5599
5557
 
5600
5558
  // components/ui/checkbox.tsx
5601
5559
  var import_class_variance_authority9 = require("class-variance-authority");
5602
- var import_radix_ui6 = require("radix-ui");
5603
- var import_jsx_runtime80 = require("react/jsx-runtime");
5560
+ var import_radix_ui5 = require("radix-ui");
5561
+ var import_jsx_runtime79 = require("react/jsx-runtime");
5604
5562
  var checkboxVariants = (0, import_class_variance_authority9.cva)(
5605
5563
  `
5606
5564
  group peer bg-background shrink-0 rounded-md border border-input ring-offset-background focus-visible:outline-none
@@ -5630,20 +5588,20 @@ function Checkbox(_a) {
5630
5588
  "className",
5631
5589
  "size"
5632
5590
  ]);
5633
- return /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(import_radix_ui6.Checkbox.Root, __spreadProps(__spreadValues({ "data-slot": "checkbox", className: cn(checkboxVariants({ size }), className) }, props), { children: /* @__PURE__ */ (0, import_jsx_runtime80.jsxs)(import_radix_ui6.Checkbox.Indicator, { className: cn("flex items-center justify-center text-current"), children: [
5634
- /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(CheckIcon, { className: "group-data-[state=indeterminate]:hidden" }),
5635
- /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(MinusIcon, { className: "hidden group-data-[state=indeterminate]:block" })
5591
+ return /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(import_radix_ui5.Checkbox.Root, __spreadProps(__spreadValues({ "data-slot": "checkbox", className: cn(checkboxVariants({ size }), className) }, props), { children: /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)(import_radix_ui5.Checkbox.Indicator, { className: cn("flex items-center justify-center text-current"), children: [
5592
+ /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(CheckIcon, { className: "group-data-[state=indeterminate]:hidden" }),
5593
+ /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(MinusIcon, { className: "hidden group-data-[state=indeterminate]:block" })
5636
5594
  ] }) }));
5637
5595
  }
5638
5596
 
5639
5597
  // components/layout/header-actions.tsx
5640
- var import_jsx_runtime81 = require("react/jsx-runtime");
5598
+ var import_jsx_runtime80 = require("react/jsx-runtime");
5641
5599
  function SearchAction() {
5642
- return /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(SearchDialog, {});
5600
+ return /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(SearchDialog, {});
5643
5601
  }
5644
5602
  function UploadFileAction() {
5645
5603
  const { setIsUploadModalOpen } = useFileManager();
5646
- return /* @__PURE__ */ (0, import_jsx_runtime81.jsxs)(
5604
+ return /* @__PURE__ */ (0, import_jsx_runtime80.jsxs)(
5647
5605
  Button,
5648
5606
  {
5649
5607
  variant: "outline",
@@ -5652,15 +5610,15 @@ function UploadFileAction() {
5652
5610
  className: "border-gray-200 dark:border-zinc-700 bg-white dark:bg-zinc-900 text-md font-medium",
5653
5611
  onClick: () => setIsUploadModalOpen(true),
5654
5612
  children: [
5655
- /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(PlusIcon, { strokeWidth: 2, className: "size-5 text-gray-900 dark:text-zinc-100" }),
5656
- /* @__PURE__ */ (0, import_jsx_runtime81.jsx)("span", { className: "hidden sm:inline", children: "Upload File" })
5613
+ /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(PlusIcon, { strokeWidth: 2, className: "size-5 text-gray-900 dark:text-zinc-100" }),
5614
+ /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("span", { className: "hidden sm:inline", children: "Upload File" })
5657
5615
  ]
5658
5616
  }
5659
5617
  );
5660
5618
  }
5661
5619
  function CreateFolderAction() {
5662
5620
  const { setIsCreateFolderModalOpen } = useFileManager();
5663
- return /* @__PURE__ */ (0, import_jsx_runtime81.jsxs)(
5621
+ return /* @__PURE__ */ (0, import_jsx_runtime80.jsxs)(
5664
5622
  Button,
5665
5623
  {
5666
5624
  variant: "outline",
@@ -5669,8 +5627,8 @@ function CreateFolderAction() {
5669
5627
  className: "border-gray-200 dark:border-zinc-700 bg-white dark:bg-zinc-900",
5670
5628
  onClick: () => setIsCreateFolderModalOpen(true),
5671
5629
  children: [
5672
- /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(UploadFolderIcon, { className: "size-5 text-gray-900 dark:text-zinc-100" }),
5673
- /* @__PURE__ */ (0, import_jsx_runtime81.jsx)("span", { className: "hidden", children: "Create Folder" })
5630
+ /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(UploadFolderIcon, { className: "size-5 text-gray-900 dark:text-zinc-100" }),
5631
+ /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("span", { className: "hidden", children: "Create Folder" })
5674
5632
  ]
5675
5633
  }
5676
5634
  );
@@ -5680,9 +5638,9 @@ function CreateFolderAction() {
5680
5638
  var import_react20 = require("react");
5681
5639
 
5682
5640
  // components/icons/theme.tsx
5683
- var import_jsx_runtime82 = require("react/jsx-runtime");
5641
+ var import_jsx_runtime81 = require("react/jsx-runtime");
5684
5642
  function SunIcon(props) {
5685
- return /* @__PURE__ */ (0, import_jsx_runtime82.jsxs)(
5643
+ return /* @__PURE__ */ (0, import_jsx_runtime81.jsxs)(
5686
5644
  "svg",
5687
5645
  __spreadProps(__spreadValues({
5688
5646
  xmlns: "http://www.w3.org/2000/svg",
@@ -5696,14 +5654,14 @@ function SunIcon(props) {
5696
5654
  strokeLinejoin: "round"
5697
5655
  }, props), {
5698
5656
  children: [
5699
- /* @__PURE__ */ (0, import_jsx_runtime82.jsx)("circle", { cx: "12", cy: "12", r: "4" }),
5700
- /* @__PURE__ */ (0, import_jsx_runtime82.jsx)("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" })
5657
+ /* @__PURE__ */ (0, import_jsx_runtime81.jsx)("circle", { cx: "12", cy: "12", r: "4" }),
5658
+ /* @__PURE__ */ (0, import_jsx_runtime81.jsx)("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" })
5701
5659
  ]
5702
5660
  })
5703
5661
  );
5704
5662
  }
5705
5663
  function MoonIcon(props) {
5706
- return /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(
5664
+ return /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(
5707
5665
  "svg",
5708
5666
  __spreadProps(__spreadValues({
5709
5667
  xmlns: "http://www.w3.org/2000/svg",
@@ -5716,13 +5674,13 @@ function MoonIcon(props) {
5716
5674
  strokeLinecap: "round",
5717
5675
  strokeLinejoin: "round"
5718
5676
  }, props), {
5719
- children: /* @__PURE__ */ (0, import_jsx_runtime82.jsx)("path", { d: "M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z" })
5677
+ children: /* @__PURE__ */ (0, import_jsx_runtime81.jsx)("path", { d: "M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z" })
5720
5678
  })
5721
5679
  );
5722
5680
  }
5723
5681
 
5724
5682
  // components/layout/theme-toggle.tsx
5725
- var import_jsx_runtime83 = require("react/jsx-runtime");
5683
+ var import_jsx_runtime82 = require("react/jsx-runtime");
5726
5684
  function ThemeToggle() {
5727
5685
  const [isDark, setIsDark] = (0, import_react20.useState)(false);
5728
5686
  (0, import_react20.useEffect)(() => {
@@ -5737,7 +5695,7 @@ function ThemeToggle() {
5737
5695
  document.documentElement.classList.toggle("dark", next);
5738
5696
  localStorage.setItem("theme", next ? "dark" : "light");
5739
5697
  };
5740
- return /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(
5698
+ return /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(
5741
5699
  Button,
5742
5700
  {
5743
5701
  variant: "outline",
@@ -5746,64 +5704,64 @@ function ThemeToggle() {
5746
5704
  onClick: toggle,
5747
5705
  className: "border-gray-200 dark:border-zinc-700 bg-white dark:bg-zinc-900",
5748
5706
  "aria-label": isDark ? "Switch to light mode" : "Switch to dark mode",
5749
- children: isDark ? /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(SunIcon, { className: "size-4 text-yellow-500" }) : /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(MoonIcon, { className: "size-4 text-gray-700 dark:text-zinc-300" })
5707
+ children: isDark ? /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(SunIcon, { className: "size-4 text-yellow-500" }) : /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(MoonIcon, { className: "size-4 text-gray-700 dark:text-zinc-300" })
5750
5708
  }
5751
5709
  );
5752
5710
  }
5753
5711
 
5754
5712
  // components/layout/header-actions-responsive.tsx
5755
- var import_jsx_runtime84 = require("react/jsx-runtime");
5713
+ var import_jsx_runtime83 = require("react/jsx-runtime");
5756
5714
  function ResponsiveHeaderActions() {
5757
5715
  const { setIsUploadModalOpen, setIsCreateFolderModalOpen, setIsSearchModalOpen } = useFileManager();
5758
- return /* @__PURE__ */ (0, import_jsx_runtime84.jsxs)(import_jsx_runtime84.Fragment, { children: [
5759
- /* @__PURE__ */ (0, import_jsx_runtime84.jsxs)("div", { className: "hidden md:flex gap-2", children: [
5760
- /* @__PURE__ */ (0, import_jsx_runtime84.jsx)(UploadFileAction, {}),
5761
- /* @__PURE__ */ (0, import_jsx_runtime84.jsx)(CreateFolderAction, {}),
5762
- /* @__PURE__ */ (0, import_jsx_runtime84.jsx)(SearchAction, {}),
5763
- /* @__PURE__ */ (0, import_jsx_runtime84.jsx)(ThemeToggle, {})
5716
+ return /* @__PURE__ */ (0, import_jsx_runtime83.jsxs)(import_jsx_runtime83.Fragment, { children: [
5717
+ /* @__PURE__ */ (0, import_jsx_runtime83.jsxs)("div", { className: "hidden md:flex gap-2", children: [
5718
+ /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(UploadFileAction, {}),
5719
+ /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(CreateFolderAction, {}),
5720
+ /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(SearchAction, {}),
5721
+ /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(ThemeToggle, {})
5764
5722
  ] }),
5765
- /* @__PURE__ */ (0, import_jsx_runtime84.jsx)("div", { className: "flex md:hidden", children: /* @__PURE__ */ (0, import_jsx_runtime84.jsxs)(DropdownMenu, { children: [
5766
- /* @__PURE__ */ (0, import_jsx_runtime84.jsx)(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime84.jsx)(
5723
+ /* @__PURE__ */ (0, import_jsx_runtime83.jsx)("div", { className: "flex md:hidden", children: /* @__PURE__ */ (0, import_jsx_runtime83.jsxs)(DropdownMenu, { children: [
5724
+ /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(
5767
5725
  Button,
5768
5726
  {
5769
5727
  variant: "outline",
5770
5728
  size: "icon",
5771
5729
  radius: "full",
5772
5730
  className: "border-gray-200 dark:border-zinc-700 bg-white dark:bg-zinc-900",
5773
- children: /* @__PURE__ */ (0, import_jsx_runtime84.jsx)(MoveHorizontalIcon, { className: "size-5" })
5731
+ children: /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(MoveHorizontalIcon, { className: "size-5" })
5774
5732
  }
5775
5733
  ) }),
5776
- /* @__PURE__ */ (0, import_jsx_runtime84.jsxs)(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: [
5777
- /* @__PURE__ */ (0, import_jsx_runtime84.jsxs)(
5734
+ /* @__PURE__ */ (0, import_jsx_runtime83.jsxs)(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: [
5735
+ /* @__PURE__ */ (0, import_jsx_runtime83.jsxs)(
5778
5736
  DropdownMenuItem,
5779
5737
  {
5780
5738
  onClick: () => setIsUploadModalOpen(true),
5781
5739
  className: "cursor-pointer",
5782
5740
  children: [
5783
- /* @__PURE__ */ (0, import_jsx_runtime84.jsx)(PlusIcon, { className: "size-5 text-gray-900 dark:text-zinc-100" }),
5784
- /* @__PURE__ */ (0, import_jsx_runtime84.jsx)("span", { className: "inline", children: "Upload File" })
5741
+ /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(PlusIcon, { className: "size-5 text-gray-900 dark:text-zinc-100" }),
5742
+ /* @__PURE__ */ (0, import_jsx_runtime83.jsx)("span", { className: "inline", children: "Upload File" })
5785
5743
  ]
5786
5744
  }
5787
5745
  ),
5788
- /* @__PURE__ */ (0, import_jsx_runtime84.jsxs)(
5746
+ /* @__PURE__ */ (0, import_jsx_runtime83.jsxs)(
5789
5747
  DropdownMenuItem,
5790
5748
  {
5791
5749
  onClick: () => setIsCreateFolderModalOpen(true),
5792
5750
  className: "cursor-pointer",
5793
5751
  children: [
5794
- /* @__PURE__ */ (0, import_jsx_runtime84.jsx)(UploadFolderIcon, { className: "size-5 text-gray-900 dark:text-zinc-100" }),
5795
- /* @__PURE__ */ (0, import_jsx_runtime84.jsx)("span", { className: "inline", children: "Create Folder" })
5752
+ /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(UploadFolderIcon, { className: "size-5 text-gray-900 dark:text-zinc-100" }),
5753
+ /* @__PURE__ */ (0, import_jsx_runtime83.jsx)("span", { className: "inline", children: "Create Folder" })
5796
5754
  ]
5797
5755
  }
5798
5756
  ),
5799
- /* @__PURE__ */ (0, import_jsx_runtime84.jsxs)(
5757
+ /* @__PURE__ */ (0, import_jsx_runtime83.jsxs)(
5800
5758
  DropdownMenuItem,
5801
5759
  {
5802
5760
  onClick: () => setIsSearchModalOpen(true),
5803
5761
  className: "cursor-pointer",
5804
5762
  children: [
5805
- /* @__PURE__ */ (0, import_jsx_runtime84.jsx)(SearchIcon, { className: "size-5 text-gray-700 dark:text-zinc-300" }),
5806
- /* @__PURE__ */ (0, import_jsx_runtime84.jsx)("span", { className: "inline", children: "Search" })
5763
+ /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(SearchIcon, { className: "size-5 text-gray-700 dark:text-zinc-300" }),
5764
+ /* @__PURE__ */ (0, import_jsx_runtime83.jsx)("span", { className: "inline", children: "Search" })
5807
5765
  ]
5808
5766
  }
5809
5767
  )
@@ -5813,11 +5771,11 @@ function ResponsiveHeaderActions() {
5813
5771
  }
5814
5772
  function ModalResponsiveHeaderActions({ onSearchClick }) {
5815
5773
  const { setIsUploadModalOpen, setIsCreateFolderModalOpen } = useFileManager();
5816
- return /* @__PURE__ */ (0, import_jsx_runtime84.jsxs)(import_jsx_runtime84.Fragment, { children: [
5817
- /* @__PURE__ */ (0, import_jsx_runtime84.jsxs)("div", { className: "hidden md:flex gap-2", children: [
5818
- /* @__PURE__ */ (0, import_jsx_runtime84.jsx)(UploadFileAction, {}),
5819
- /* @__PURE__ */ (0, import_jsx_runtime84.jsx)(CreateFolderAction, {}),
5820
- onSearchClick ? /* @__PURE__ */ (0, import_jsx_runtime84.jsxs)(
5774
+ return /* @__PURE__ */ (0, import_jsx_runtime83.jsxs)(import_jsx_runtime83.Fragment, { children: [
5775
+ /* @__PURE__ */ (0, import_jsx_runtime83.jsxs)("div", { className: "hidden md:flex gap-2", children: [
5776
+ /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(UploadFileAction, {}),
5777
+ /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(CreateFolderAction, {}),
5778
+ onSearchClick ? /* @__PURE__ */ (0, import_jsx_runtime83.jsxs)(
5821
5779
  Button,
5822
5780
  {
5823
5781
  variant: "outline",
@@ -5826,54 +5784,54 @@ function ModalResponsiveHeaderActions({ onSearchClick }) {
5826
5784
  className: "border-gray-200 dark:border-zinc-700 bg-white dark:bg-zinc-900",
5827
5785
  onClick: onSearchClick,
5828
5786
  children: [
5829
- /* @__PURE__ */ (0, import_jsx_runtime84.jsx)(SearchIcon, { className: "size-5 text-gray-900 dark:text-zinc-100" }),
5830
- /* @__PURE__ */ (0, import_jsx_runtime84.jsx)("span", { className: "hidden", children: "Search" })
5787
+ /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(SearchIcon, { className: "size-5 text-gray-900 dark:text-zinc-100" }),
5788
+ /* @__PURE__ */ (0, import_jsx_runtime83.jsx)("span", { className: "hidden", children: "Search" })
5831
5789
  ]
5832
5790
  }
5833
5791
  ) : null
5834
5792
  ] }),
5835
- /* @__PURE__ */ (0, import_jsx_runtime84.jsx)("div", { className: "flex md:hidden", children: /* @__PURE__ */ (0, import_jsx_runtime84.jsxs)(DropdownMenu, { children: [
5836
- /* @__PURE__ */ (0, import_jsx_runtime84.jsx)(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime84.jsx)(
5793
+ /* @__PURE__ */ (0, import_jsx_runtime83.jsx)("div", { className: "flex md:hidden", children: /* @__PURE__ */ (0, import_jsx_runtime83.jsxs)(DropdownMenu, { children: [
5794
+ /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(
5837
5795
  Button,
5838
5796
  {
5839
5797
  variant: "outline",
5840
5798
  size: "icon",
5841
5799
  radius: "full",
5842
5800
  className: "border-gray-200 dark:border-zinc-700 bg-white dark:bg-zinc-900",
5843
- children: /* @__PURE__ */ (0, import_jsx_runtime84.jsx)(MoveHorizontalIcon, { className: "size-5" })
5801
+ children: /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(MoveHorizontalIcon, { className: "size-5" })
5844
5802
  }
5845
5803
  ) }),
5846
- /* @__PURE__ */ (0, import_jsx_runtime84.jsxs)(DropdownMenuContent, { align: "end", className: "w-48", children: [
5847
- /* @__PURE__ */ (0, import_jsx_runtime84.jsxs)(
5804
+ /* @__PURE__ */ (0, import_jsx_runtime83.jsxs)(DropdownMenuContent, { align: "end", className: "w-48", children: [
5805
+ /* @__PURE__ */ (0, import_jsx_runtime83.jsxs)(
5848
5806
  DropdownMenuItem,
5849
5807
  {
5850
5808
  onClick: () => setIsUploadModalOpen(true),
5851
5809
  className: "cursor-pointer",
5852
5810
  children: [
5853
- /* @__PURE__ */ (0, import_jsx_runtime84.jsx)(PlusIcon, { className: "size-5 text-gray-900 dark:text-zinc-100" }),
5854
- /* @__PURE__ */ (0, import_jsx_runtime84.jsx)("span", { className: "inline", children: "Upload File" })
5811
+ /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(PlusIcon, { className: "size-5 text-gray-900 dark:text-zinc-100" }),
5812
+ /* @__PURE__ */ (0, import_jsx_runtime83.jsx)("span", { className: "inline", children: "Upload File" })
5855
5813
  ]
5856
5814
  }
5857
5815
  ),
5858
- /* @__PURE__ */ (0, import_jsx_runtime84.jsxs)(
5816
+ /* @__PURE__ */ (0, import_jsx_runtime83.jsxs)(
5859
5817
  DropdownMenuItem,
5860
5818
  {
5861
5819
  onClick: () => setIsCreateFolderModalOpen(true),
5862
5820
  className: "cursor-pointer",
5863
5821
  children: [
5864
- /* @__PURE__ */ (0, import_jsx_runtime84.jsx)(UploadFolderIcon, { className: "size-5 text-gray-900 dark:text-zinc-100" }),
5865
- /* @__PURE__ */ (0, import_jsx_runtime84.jsx)("span", { className: "inline", children: "Create Folder" })
5822
+ /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(UploadFolderIcon, { className: "size-5 text-gray-900 dark:text-zinc-100" }),
5823
+ /* @__PURE__ */ (0, import_jsx_runtime83.jsx)("span", { className: "inline", children: "Create Folder" })
5866
5824
  ]
5867
5825
  }
5868
5826
  ),
5869
- onSearchClick ? /* @__PURE__ */ (0, import_jsx_runtime84.jsxs)(
5827
+ onSearchClick ? /* @__PURE__ */ (0, import_jsx_runtime83.jsxs)(
5870
5828
  DropdownMenuItem,
5871
5829
  {
5872
5830
  onClick: onSearchClick,
5873
5831
  className: "cursor-pointer",
5874
5832
  children: [
5875
- /* @__PURE__ */ (0, import_jsx_runtime84.jsx)(SearchIcon, { className: "size-5 text-gray-700 dark:text-zinc-300" }),
5876
- /* @__PURE__ */ (0, import_jsx_runtime84.jsx)("span", { className: "inline", children: "Search" })
5833
+ /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(SearchIcon, { className: "size-5 text-gray-700 dark:text-zinc-300" }),
5834
+ /* @__PURE__ */ (0, import_jsx_runtime83.jsx)("span", { className: "inline", children: "Search" })
5877
5835
  ]
5878
5836
  }
5879
5837
  ) : null
@@ -5887,18 +5845,18 @@ var import_react21 = __toESM(require("react"), 1);
5887
5845
 
5888
5846
  // components/ui/context-menu.tsx
5889
5847
  var ContextMenuPrimitive = __toESM(require("@radix-ui/react-context-menu"), 1);
5890
- var import_jsx_runtime85 = require("react/jsx-runtime");
5848
+ var import_jsx_runtime84 = require("react/jsx-runtime");
5891
5849
  function ContextMenu(_a) {
5892
5850
  var props = __objRest(_a, []);
5893
- return /* @__PURE__ */ (0, import_jsx_runtime85.jsx)(ContextMenuPrimitive.Root, __spreadValues({ "data-slot": "context-menu" }, props));
5851
+ return /* @__PURE__ */ (0, import_jsx_runtime84.jsx)(ContextMenuPrimitive.Root, __spreadValues({ "data-slot": "context-menu" }, props));
5894
5852
  }
5895
5853
  function ContextMenuTrigger(_a) {
5896
5854
  var props = __objRest(_a, []);
5897
- return /* @__PURE__ */ (0, import_jsx_runtime85.jsx)(ContextMenuPrimitive.Trigger, __spreadValues({ "data-slot": "context-menu-trigger" }, props));
5855
+ return /* @__PURE__ */ (0, import_jsx_runtime84.jsx)(ContextMenuPrimitive.Trigger, __spreadValues({ "data-slot": "context-menu-trigger" }, props));
5898
5856
  }
5899
5857
  function ContextMenuContent(_a) {
5900
5858
  var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
5901
- return /* @__PURE__ */ (0, import_jsx_runtime85.jsx)(ContextMenuPrimitive.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime85.jsx)(
5859
+ return /* @__PURE__ */ (0, import_jsx_runtime84.jsx)(ContextMenuPrimitive.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime84.jsx)(
5902
5860
  ContextMenuPrimitive.Content,
5903
5861
  __spreadValues({
5904
5862
  "data-slot": "context-menu-content",
@@ -5919,7 +5877,7 @@ function ContextMenuItem(_a) {
5919
5877
  "inset",
5920
5878
  "variant"
5921
5879
  ]);
5922
- return /* @__PURE__ */ (0, import_jsx_runtime85.jsx)(
5880
+ return /* @__PURE__ */ (0, import_jsx_runtime84.jsx)(
5923
5881
  ContextMenuPrimitive.Item,
5924
5882
  __spreadValues({
5925
5883
  "data-slot": "context-menu-item",
@@ -5934,7 +5892,7 @@ function ContextMenuItem(_a) {
5934
5892
  }
5935
5893
  function ContextMenuSeparator(_a) {
5936
5894
  var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
5937
- return /* @__PURE__ */ (0, import_jsx_runtime85.jsx)(
5895
+ return /* @__PURE__ */ (0, import_jsx_runtime84.jsx)(
5938
5896
  ContextMenuPrimitive.Separator,
5939
5897
  __spreadValues({
5940
5898
  "data-slot": "context-menu-separator",
@@ -5944,7 +5902,7 @@ function ContextMenuSeparator(_a) {
5944
5902
  }
5945
5903
 
5946
5904
  // components/cards/card-context-menu.tsx
5947
- var import_jsx_runtime86 = require("react/jsx-runtime");
5905
+ var import_jsx_runtime85 = require("react/jsx-runtime");
5948
5906
  function CardContextMenu({
5949
5907
  children,
5950
5908
  menuItems,
@@ -5959,8 +5917,8 @@ function CardContextMenu({
5959
5917
  const MenuItemComponent = isDropdown ? DropdownMenuItem : ContextMenuItem;
5960
5918
  const SeparatorComponent = isDropdown ? DropdownMenuSeparator : ContextMenuSeparator;
5961
5919
  const nextItemIsDestructive = index < menuItems.length - 1 && menuItems[index + 1].variant === "destructive";
5962
- return /* @__PURE__ */ (0, import_jsx_runtime86.jsxs)(import_react21.default.Fragment, { children: [
5963
- /* @__PURE__ */ (0, import_jsx_runtime86.jsxs)(
5920
+ return /* @__PURE__ */ (0, import_jsx_runtime85.jsxs)(import_react21.default.Fragment, { children: [
5921
+ /* @__PURE__ */ (0, import_jsx_runtime85.jsxs)(
5964
5922
  MenuItemComponent,
5965
5923
  {
5966
5924
  onClick: item.onClick,
@@ -5971,40 +5929,40 @@ function CardContextMenu({
5971
5929
  ]
5972
5930
  }
5973
5931
  ),
5974
- nextItemIsDestructive && !isLast && /* @__PURE__ */ (0, import_jsx_runtime86.jsx)(SeparatorComponent, { className: "bg-gray-200 dark:bg-zinc-700" })
5932
+ nextItemIsDestructive && !isLast && /* @__PURE__ */ (0, import_jsx_runtime85.jsx)(SeparatorComponent, { className: "bg-gray-200 dark:bg-zinc-700" })
5975
5933
  ] }, index);
5976
5934
  });
5977
5935
  };
5978
- return /* @__PURE__ */ (0, import_jsx_runtime86.jsxs)(ContextMenu, { children: [
5979
- /* @__PURE__ */ (0, import_jsx_runtime86.jsx)(ContextMenuTrigger, { children: /* @__PURE__ */ (0, import_jsx_runtime86.jsxs)("div", { className: "relative w-full h-full", children: [
5936
+ return /* @__PURE__ */ (0, import_jsx_runtime85.jsxs)(ContextMenu, { children: [
5937
+ /* @__PURE__ */ (0, import_jsx_runtime85.jsx)(ContextMenuTrigger, { children: /* @__PURE__ */ (0, import_jsx_runtime85.jsxs)("div", { className: "relative w-full h-full", children: [
5980
5938
  children,
5981
- shouldShowMenu && /* @__PURE__ */ (0, import_jsx_runtime86.jsx)(
5939
+ shouldShowMenu && /* @__PURE__ */ (0, import_jsx_runtime85.jsx)(
5982
5940
  "div",
5983
5941
  {
5984
5942
  className: "absolute top-0 right-0 z-10 md:hidden",
5985
5943
  onClick: (e) => e.stopPropagation(),
5986
- children: /* @__PURE__ */ (0, import_jsx_runtime86.jsxs)(DropdownMenu, { children: [
5987
- /* @__PURE__ */ (0, import_jsx_runtime86.jsx)(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime86.jsx)(
5944
+ children: /* @__PURE__ */ (0, import_jsx_runtime85.jsxs)(DropdownMenu, { children: [
5945
+ /* @__PURE__ */ (0, import_jsx_runtime85.jsx)(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime85.jsx)(
5988
5946
  Button,
5989
5947
  {
5990
5948
  variant: "ghost",
5991
5949
  size: "icon",
5992
5950
  radius: "full",
5993
5951
  className: "focus-visible:ring-0 focus-visible:ring-offset-0",
5994
- children: /* @__PURE__ */ (0, import_jsx_runtime86.jsx)(MoveVerticalIcon, { className: "size-4 text-gray-700 dark:text-zinc-300" })
5952
+ children: /* @__PURE__ */ (0, import_jsx_runtime85.jsx)(MoveVerticalIcon, { className: "size-4 text-gray-700 dark:text-zinc-300" })
5995
5953
  }
5996
5954
  ) }),
5997
- /* @__PURE__ */ (0, import_jsx_runtime86.jsx)(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) })
5955
+ /* @__PURE__ */ (0, import_jsx_runtime85.jsx)(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) })
5998
5956
  ] })
5999
5957
  }
6000
5958
  )
6001
5959
  ] }) }),
6002
- shouldShowMenu && /* @__PURE__ */ (0, import_jsx_runtime86.jsx)(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) })
5960
+ shouldShowMenu && /* @__PURE__ */ (0, import_jsx_runtime85.jsx)(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) })
6003
5961
  ] });
6004
5962
  }
6005
5963
 
6006
5964
  // components/cards/file-card.tsx
6007
- var import_jsx_runtime87 = require("react/jsx-runtime");
5965
+ var import_jsx_runtime86 = require("react/jsx-runtime");
6008
5966
  function FileCard({
6009
5967
  file,
6010
5968
  isSelected,
@@ -6050,45 +6008,45 @@ function FileCard({
6050
6008
  const menuItems = [
6051
6009
  {
6052
6010
  label: "Edit",
6053
- icon: /* @__PURE__ */ (0, import_jsx_runtime87.jsx)(EditIcon, { className: "size-6" }),
6011
+ icon: /* @__PURE__ */ (0, import_jsx_runtime86.jsx)(EditIcon, { className: "size-6" }),
6054
6012
  onClick: handleEdit
6055
6013
  },
6056
6014
  {
6057
6015
  label: "Select File",
6058
- icon: /* @__PURE__ */ (0, import_jsx_runtime87.jsx)(SelectIcon, { className: "size-6" }),
6016
+ icon: /* @__PURE__ */ (0, import_jsx_runtime86.jsx)(SelectIcon, { className: "size-6" }),
6059
6017
  onClick: handleSelectFile
6060
6018
  },
6061
6019
  {
6062
6020
  label: "Move to...",
6063
- icon: /* @__PURE__ */ (0, import_jsx_runtime87.jsx)(MoveIcon, { className: "size-6" }),
6021
+ icon: /* @__PURE__ */ (0, import_jsx_runtime86.jsx)(MoveIcon, { className: "size-6" }),
6064
6022
  onClick: handleMove
6065
6023
  },
6066
6024
  {
6067
6025
  label: "Delete",
6068
- icon: /* @__PURE__ */ (0, import_jsx_runtime87.jsx)(TrashIcon, { className: "size-6 text-red-600" }),
6026
+ icon: /* @__PURE__ */ (0, import_jsx_runtime86.jsx)(TrashIcon, { className: "size-6 text-red-600" }),
6069
6027
  onClick: handleDelete,
6070
6028
  variant: "destructive"
6071
6029
  }
6072
6030
  ];
6073
- return /* @__PURE__ */ (0, import_jsx_runtime87.jsx)(
6031
+ return /* @__PURE__ */ (0, import_jsx_runtime86.jsx)(
6074
6032
  CardContextMenu,
6075
6033
  {
6076
6034
  menuItems,
6077
6035
  isInSelectionMode,
6078
6036
  mode,
6079
- children: /* @__PURE__ */ (0, import_jsx_runtime87.jsxs)(
6037
+ children: /* @__PURE__ */ (0, import_jsx_runtime86.jsxs)(
6080
6038
  "div",
6081
6039
  {
6082
6040
  className: "group relative flex flex-col items-center justify-start transition-all duration-200 cursor-pointer w-full select-none",
6083
6041
  onDoubleClick: handleClick,
6084
6042
  onClick: handleClick,
6085
6043
  children: [
6086
- /* @__PURE__ */ (0, import_jsx_runtime87.jsxs)("div", { className: `
6044
+ /* @__PURE__ */ (0, import_jsx_runtime86.jsxs)("div", { className: `
6087
6045
  relative w-full aspect-square flex items-center justify-center mb-1 overflow-hidden rounded-2xl hover:bg-accent/60
6088
6046
  ${isSelected ? "bg-accent/60" : ""}
6089
6047
  `, children: [
6090
- /* @__PURE__ */ (0, import_jsx_runtime87.jsx)("div", { className: "w-[75%] h-[75%] flex items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime87.jsx)(FilePreviewComponent, { file, metaData: file.metaData }) }),
6091
- (selectionMode === SELECTION_MODE.MULTIPLE || showCheckbox) && /* @__PURE__ */ (0, import_jsx_runtime87.jsx)("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__ */ (0, import_jsx_runtime87.jsx)(
6048
+ /* @__PURE__ */ (0, import_jsx_runtime86.jsx)("div", { className: "w-[75%] h-[75%] flex items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime86.jsx)(FilePreviewComponent, { file, metaData: file.metaData }) }),
6049
+ (selectionMode === SELECTION_MODE.MULTIPLE || showCheckbox) && /* @__PURE__ */ (0, import_jsx_runtime86.jsx)("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__ */ (0, import_jsx_runtime86.jsx)(
6092
6050
  Checkbox,
6093
6051
  {
6094
6052
  checked: isSelected,
@@ -6097,14 +6055,14 @@ function FileCard({
6097
6055
  }
6098
6056
  ) })
6099
6057
  ] }),
6100
- /* @__PURE__ */ (0, import_jsx_runtime87.jsxs)("div", { className: "w-full text-center px-0.5 flex flex-col items-center", children: [
6101
- /* @__PURE__ */ (0, import_jsx_runtime87.jsx)("span", { className: `
6058
+ /* @__PURE__ */ (0, import_jsx_runtime86.jsxs)("div", { className: "w-full text-center px-0.5 flex flex-col items-center", children: [
6059
+ /* @__PURE__ */ (0, import_jsx_runtime86.jsx)("span", { className: `
6102
6060
  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
6103
6061
  ${isSelected ? "bg-primary text-primary-foreground antialiased shadow-sm" : "text-foreground group-hover:text-foreground/80"}
6104
6062
  `, children: file.name }),
6105
- /* @__PURE__ */ (0, import_jsx_runtime87.jsxs)("div", { className: `flex flex-col items-center justify-center gap-0.5 mt-1 transition-opacity duration-200 ${isSelected ? "opacity-60" : "opacity-100"}`, children: [
6106
- /* @__PURE__ */ (0, import_jsx_runtime87.jsx)("span", { className: "text-[11px] text-primary font-medium tracking-tight", children: getFileSize(file.size) }),
6107
- FileMetadataComponent ? /* @__PURE__ */ (0, import_jsx_runtime87.jsx)("div", { className: "text-[11px] text-muted-foreground flex items-center scale-95", children: /* @__PURE__ */ (0, import_jsx_runtime87.jsx)(FileMetadataComponent, { file }) }) : null
6063
+ /* @__PURE__ */ (0, import_jsx_runtime86.jsxs)("div", { className: `flex flex-col items-center justify-center gap-0.5 mt-1 transition-opacity duration-200 ${isSelected ? "opacity-60" : "opacity-100"}`, children: [
6064
+ /* @__PURE__ */ (0, import_jsx_runtime86.jsx)("span", { className: "text-[11px] text-primary font-medium tracking-tight", children: getFileSize(file.size) }),
6065
+ FileMetadataComponent ? /* @__PURE__ */ (0, import_jsx_runtime86.jsx)("div", { className: "text-[11px] text-muted-foreground flex items-center scale-95", children: /* @__PURE__ */ (0, import_jsx_runtime86.jsx)(FileMetadataComponent, { file }) }) : null
6108
6066
  ] })
6109
6067
  ] })
6110
6068
  ]
@@ -6115,7 +6073,7 @@ function FileCard({
6115
6073
  }
6116
6074
 
6117
6075
  // components/cards/folder-card.tsx
6118
- var import_jsx_runtime88 = require("react/jsx-runtime");
6076
+ var import_jsx_runtime87 = require("react/jsx-runtime");
6119
6077
  function FolderCard({
6120
6078
  folder,
6121
6079
  isSelected,
@@ -6160,45 +6118,45 @@ function FolderCard({
6160
6118
  const menuItems = [
6161
6119
  {
6162
6120
  label: "Rename",
6163
- icon: /* @__PURE__ */ (0, import_jsx_runtime88.jsx)(EditIcon, { className: "size-6" }),
6121
+ icon: /* @__PURE__ */ (0, import_jsx_runtime87.jsx)(EditIcon, { className: "size-6" }),
6164
6122
  onClick: handleRename
6165
6123
  },
6166
6124
  {
6167
6125
  label: "Select Folder",
6168
- icon: /* @__PURE__ */ (0, import_jsx_runtime88.jsx)(SelectIcon, { className: "size-6" }),
6126
+ icon: /* @__PURE__ */ (0, import_jsx_runtime87.jsx)(SelectIcon, { className: "size-6" }),
6169
6127
  onClick: handleSelectFolder
6170
6128
  },
6171
6129
  {
6172
6130
  label: "Move to...",
6173
- icon: /* @__PURE__ */ (0, import_jsx_runtime88.jsx)(MoveIcon, { className: "size-5 mr-1" }),
6131
+ icon: /* @__PURE__ */ (0, import_jsx_runtime87.jsx)(MoveIcon, { className: "size-5 mr-1" }),
6174
6132
  onClick: handleMove
6175
6133
  },
6176
6134
  {
6177
6135
  label: "Delete",
6178
- icon: /* @__PURE__ */ (0, import_jsx_runtime88.jsx)(TrashIcon, { className: "size-5 mr-1 text-red-600" }),
6136
+ icon: /* @__PURE__ */ (0, import_jsx_runtime87.jsx)(TrashIcon, { className: "size-5 mr-1 text-red-600" }),
6179
6137
  onClick: handleDelete,
6180
6138
  variant: "destructive"
6181
6139
  }
6182
6140
  ];
6183
- return /* @__PURE__ */ (0, import_jsx_runtime88.jsx)(
6141
+ return /* @__PURE__ */ (0, import_jsx_runtime87.jsx)(
6184
6142
  CardContextMenu,
6185
6143
  {
6186
6144
  menuItems,
6187
6145
  isInSelectionMode,
6188
6146
  mode,
6189
- children: /* @__PURE__ */ (0, import_jsx_runtime88.jsxs)(
6147
+ children: /* @__PURE__ */ (0, import_jsx_runtime87.jsxs)(
6190
6148
  "div",
6191
6149
  {
6192
6150
  className: "group relative flex flex-col items-center justify-start transition-all duration-200 cursor-pointer w-full select-none",
6193
6151
  onDoubleClick: handleClick,
6194
6152
  onClick: handleClick,
6195
6153
  children: [
6196
- /* @__PURE__ */ (0, import_jsx_runtime88.jsxs)("div", { className: `
6154
+ /* @__PURE__ */ (0, import_jsx_runtime87.jsxs)("div", { className: `
6197
6155
  relative w-full aspect-square flex items-center justify-center mb-1 overflow-hidden rounded-2xl hover:bg-accent/60
6198
6156
  ${isSelected ? "bg-accent/60" : ""}
6199
6157
  `, children: [
6200
- /* @__PURE__ */ (0, import_jsx_runtime88.jsx)("div", { className: "w-[75%] h-[75%] flex items-center justify-center transform dark:brightness-[2]", children: /* @__PURE__ */ (0, import_jsx_runtime88.jsx)(FolderIcon, { className: "w-full h-full text-blue-400 fill-blue-400/20 drop-shadow-sm", strokeWidth: 1.5 }) }),
6201
- (selectionMode === SELECTION_MODE.MULTIPLE || showCheckbox) && /* @__PURE__ */ (0, import_jsx_runtime88.jsx)("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__ */ (0, import_jsx_runtime88.jsx)(
6158
+ /* @__PURE__ */ (0, import_jsx_runtime87.jsx)("div", { className: "w-[75%] h-[75%] flex items-center justify-center transform dark:brightness-[2]", children: /* @__PURE__ */ (0, import_jsx_runtime87.jsx)(FolderIcon, { className: "w-full h-full text-blue-400 fill-blue-400/20 drop-shadow-sm", strokeWidth: 1.5 }) }),
6159
+ (selectionMode === SELECTION_MODE.MULTIPLE || showCheckbox) && /* @__PURE__ */ (0, import_jsx_runtime87.jsx)("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__ */ (0, import_jsx_runtime87.jsx)(
6202
6160
  Checkbox,
6203
6161
  {
6204
6162
  checked: isSelected,
@@ -6207,12 +6165,12 @@ function FolderCard({
6207
6165
  }
6208
6166
  ) })
6209
6167
  ] }),
6210
- /* @__PURE__ */ (0, import_jsx_runtime88.jsxs)("div", { className: "w-full text-center px-0.5 flex flex-col items-center", children: [
6211
- /* @__PURE__ */ (0, import_jsx_runtime88.jsx)("span", { className: `
6168
+ /* @__PURE__ */ (0, import_jsx_runtime87.jsxs)("div", { className: "w-full text-center px-0.5 flex flex-col items-center", children: [
6169
+ /* @__PURE__ */ (0, import_jsx_runtime87.jsx)("span", { className: `
6212
6170
  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
6213
6171
  ${isSelected ? "bg-primary text-primary-foreground antialiased shadow-sm" : "text-foreground group-hover:text-foreground/80"}
6214
6172
  `, children: folder.name }),
6215
- /* @__PURE__ */ (0, import_jsx_runtime88.jsx)("div", { className: `flex items-center justify-center gap-1 mt-1 transition-opacity duration-200 ${isSelected ? "opacity-60" : "opacity-100"}`, children: /* @__PURE__ */ (0, import_jsx_runtime88.jsxs)("span", { className: "text-[11px] text-primary font-medium tracking-tight px-1.5 rounded-full", children: [
6173
+ /* @__PURE__ */ (0, import_jsx_runtime87.jsx)("div", { className: `flex items-center justify-center gap-1 mt-1 transition-opacity duration-200 ${isSelected ? "opacity-60" : "opacity-100"}`, children: /* @__PURE__ */ (0, import_jsx_runtime87.jsxs)("span", { className: "text-[11px] text-primary font-medium tracking-tight px-1.5 rounded-full", children: [
6216
6174
  folder.fileCount,
6217
6175
  " items"
6218
6176
  ] }) })
@@ -6225,7 +6183,7 @@ function FolderCard({
6225
6183
  }
6226
6184
 
6227
6185
  // components/grid/unified-grid.tsx
6228
- var import_jsx_runtime89 = require("react/jsx-runtime");
6186
+ var import_jsx_runtime88 = require("react/jsx-runtime");
6229
6187
  function UnifiedGrid() {
6230
6188
  const {
6231
6189
  files,
@@ -6258,19 +6216,19 @@ function UnifiedGrid() {
6258
6216
  };
6259
6217
  const skeletonCount = getSkeletonCount();
6260
6218
  if (isLoading) {
6261
- return /* @__PURE__ */ (0, import_jsx_runtime89.jsx)("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) => {
6219
+ return /* @__PURE__ */ (0, import_jsx_runtime88.jsx)("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) => {
6262
6220
  var _a;
6263
- return /* @__PURE__ */ (0, import_jsx_runtime89.jsxs)("div", { className: "flex flex-col items-center justify-start w-full gap-2", children: [
6264
- /* @__PURE__ */ (0, import_jsx_runtime89.jsx)("div", { className: "w-full aspect-square bg-muted rounded-2xl animate-pulse" }),
6265
- /* @__PURE__ */ (0, import_jsx_runtime89.jsxs)("div", { className: "flex flex-col items-center gap-1 w-full", children: [
6266
- /* @__PURE__ */ (0, import_jsx_runtime89.jsx)("div", { className: "h-4 w-20 bg-muted rounded animate-pulse" }),
6267
- /* @__PURE__ */ (0, import_jsx_runtime89.jsx)("div", { className: "h-3 w-12 bg-muted rounded animate-pulse" })
6221
+ return /* @__PURE__ */ (0, import_jsx_runtime88.jsxs)("div", { className: "flex flex-col items-center justify-start w-full gap-2", children: [
6222
+ /* @__PURE__ */ (0, import_jsx_runtime88.jsx)("div", { className: "w-full aspect-square bg-muted rounded-2xl animate-pulse" }),
6223
+ /* @__PURE__ */ (0, import_jsx_runtime88.jsxs)("div", { className: "flex flex-col items-center gap-1 w-full", children: [
6224
+ /* @__PURE__ */ (0, import_jsx_runtime88.jsx)("div", { className: "h-4 w-20 bg-muted rounded animate-pulse" }),
6225
+ /* @__PURE__ */ (0, import_jsx_runtime88.jsx)("div", { className: "h-3 w-12 bg-muted rounded animate-pulse" })
6268
6226
  ] })
6269
6227
  ] }, `skeleton-${(_a = currentFolder == null ? void 0 : currentFolder.id) != null ? _a : "root"}-${i}`);
6270
6228
  }) });
6271
6229
  }
6272
- return /* @__PURE__ */ (0, import_jsx_runtime89.jsxs)("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: [
6273
- folders.map((folder) => /* @__PURE__ */ (0, import_jsx_runtime89.jsx)(
6230
+ return /* @__PURE__ */ (0, import_jsx_runtime88.jsxs)("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: [
6231
+ folders.map((folder) => /* @__PURE__ */ (0, import_jsx_runtime88.jsx)(
6274
6232
  FolderCard,
6275
6233
  {
6276
6234
  folder,
@@ -6292,7 +6250,7 @@ function UnifiedGrid() {
6292
6250
  },
6293
6251
  folder.id
6294
6252
  )),
6295
- files.map((file) => /* @__PURE__ */ (0, import_jsx_runtime89.jsx)(
6253
+ files.map((file) => /* @__PURE__ */ (0, import_jsx_runtime88.jsx)(
6296
6254
  FileCard,
6297
6255
  {
6298
6256
  file,
@@ -6318,7 +6276,7 @@ function UnifiedGrid() {
6318
6276
 
6319
6277
  // components/error-boundary.tsx
6320
6278
  var import_react22 = require("react");
6321
- var import_jsx_runtime90 = require("react/jsx-runtime");
6279
+ var import_jsx_runtime89 = require("react/jsx-runtime");
6322
6280
  var FileManagerErrorBoundary = class extends import_react22.Component {
6323
6281
  constructor(props) {
6324
6282
  super(props);
@@ -6344,16 +6302,16 @@ var FileManagerErrorBoundary = class extends import_react22.Component {
6344
6302
  if (this.props.fallback) {
6345
6303
  return this.props.fallback;
6346
6304
  }
6347
- return /* @__PURE__ */ (0, import_jsx_runtime90.jsx)("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__ */ (0, import_jsx_runtime90.jsxs)("div", { className: "text-center max-w-md flex flex-col items-center", children: [
6348
- /* @__PURE__ */ (0, import_jsx_runtime90.jsx)("div", { className: "bg-red-100 p-3 rounded-full mb-4", children: /* @__PURE__ */ (0, import_jsx_runtime90.jsx)(AlertCircleIcon, { className: "size-8 text-red-600" }) }),
6349
- /* @__PURE__ */ (0, import_jsx_runtime90.jsx)("h2", { className: "text-xl font-semibold text-slate-900 mb-2", children: "Something went wrong" }),
6350
- /* @__PURE__ */ (0, import_jsx_runtime90.jsx)("p", { className: "text-sm text-slate-500 mb-6", children: "The file manager encountered an unexpected error. Refreshing the page usually resolves this issue." }),
6351
- this.state.error && /* @__PURE__ */ (0, import_jsx_runtime90.jsxs)("details", { className: "mb-6 text-left w-full border border-slate-200 rounded-lg overflow-hidden flex-col group", children: [
6352
- /* @__PURE__ */ (0, import_jsx_runtime90.jsx)("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" }),
6353
- /* @__PURE__ */ (0, import_jsx_runtime90.jsx)("div", { className: "p-3 bg-white dark:bg-zinc-900", children: /* @__PURE__ */ (0, import_jsx_runtime90.jsx)("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() }) })
6305
+ return /* @__PURE__ */ (0, import_jsx_runtime89.jsx)("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__ */ (0, import_jsx_runtime89.jsxs)("div", { className: "text-center max-w-md flex flex-col items-center", children: [
6306
+ /* @__PURE__ */ (0, import_jsx_runtime89.jsx)("div", { className: "bg-red-100 p-3 rounded-full mb-4", children: /* @__PURE__ */ (0, import_jsx_runtime89.jsx)(AlertCircleIcon, { className: "size-8 text-red-600" }) }),
6307
+ /* @__PURE__ */ (0, import_jsx_runtime89.jsx)("h2", { className: "text-xl font-semibold text-slate-900 mb-2", children: "Something went wrong" }),
6308
+ /* @__PURE__ */ (0, import_jsx_runtime89.jsx)("p", { className: "text-sm text-slate-500 mb-6", children: "The file manager encountered an unexpected error. Refreshing the page usually resolves this issue." }),
6309
+ this.state.error && /* @__PURE__ */ (0, import_jsx_runtime89.jsxs)("details", { className: "mb-6 text-left w-full border border-slate-200 rounded-lg overflow-hidden flex-col group", children: [
6310
+ /* @__PURE__ */ (0, import_jsx_runtime89.jsx)("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" }),
6311
+ /* @__PURE__ */ (0, import_jsx_runtime89.jsx)("div", { className: "p-3 bg-white dark:bg-zinc-900", children: /* @__PURE__ */ (0, import_jsx_runtime89.jsx)("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() }) })
6354
6312
  ] }),
6355
- /* @__PURE__ */ (0, import_jsx_runtime90.jsxs)(Button, { onClick: this.handleReset, radius: "full", className: "gap-2", children: [
6356
- /* @__PURE__ */ (0, import_jsx_runtime90.jsx)(RefreshCwIcon, { className: "size-4" }),
6313
+ /* @__PURE__ */ (0, import_jsx_runtime89.jsxs)(Button, { onClick: this.handleReset, radius: "full", className: "gap-2", children: [
6314
+ /* @__PURE__ */ (0, import_jsx_runtime89.jsx)(RefreshCwIcon, { className: "size-4" }),
6357
6315
  "Reload Application"
6358
6316
  ] })
6359
6317
  ] }) });
@@ -6407,28 +6365,28 @@ function KeyboardShortcuts() {
6407
6365
  }
6408
6366
 
6409
6367
  // components/file-manager.tsx
6410
- var import_jsx_runtime91 = require("react/jsx-runtime");
6368
+ var import_jsx_runtime90 = require("react/jsx-runtime");
6411
6369
  function FileManager(props) {
6412
- return /* @__PURE__ */ (0, import_jsx_runtime91.jsx)(FileManagerErrorBoundary, { children: /* @__PURE__ */ (0, import_jsx_runtime91.jsxs)(FileManagerComposition.Page, __spreadProps(__spreadValues({}, props), { children: [
6413
- /* @__PURE__ */ (0, import_jsx_runtime91.jsx)(KeyboardShortcuts, {}),
6414
- /* @__PURE__ */ (0, import_jsx_runtime91.jsxs)("div", { className: "flex h-full relative pb-12 overflow-hidden", children: [
6415
- /* @__PURE__ */ (0, import_jsx_runtime91.jsxs)("div", { className: "flex-1 flex w-full flex-col", children: [
6416
- /* @__PURE__ */ (0, import_jsx_runtime91.jsx)(FileManagerComposition.Header, { children: /* @__PURE__ */ (0, import_jsx_runtime91.jsxs)("div", { className: "flex w-full justify-between gap-2", children: [
6417
- /* @__PURE__ */ (0, import_jsx_runtime91.jsx)(HeaderNavigation, {}),
6418
- /* @__PURE__ */ (0, import_jsx_runtime91.jsx)(ResponsiveHeaderActions, {})
6370
+ return /* @__PURE__ */ (0, import_jsx_runtime90.jsx)(FileManagerErrorBoundary, { children: /* @__PURE__ */ (0, import_jsx_runtime90.jsxs)(FileManagerComposition.Page, __spreadProps(__spreadValues({}, props), { children: [
6371
+ /* @__PURE__ */ (0, import_jsx_runtime90.jsx)(KeyboardShortcuts, {}),
6372
+ /* @__PURE__ */ (0, import_jsx_runtime90.jsxs)("div", { className: "flex h-full relative pb-12 overflow-hidden bg-background text-foreground", children: [
6373
+ /* @__PURE__ */ (0, import_jsx_runtime90.jsxs)("div", { className: "flex-1 flex w-full flex-col", children: [
6374
+ /* @__PURE__ */ (0, import_jsx_runtime90.jsx)(FileManagerComposition.Header, { children: /* @__PURE__ */ (0, import_jsx_runtime90.jsxs)("div", { className: "flex w-full justify-between gap-2", children: [
6375
+ /* @__PURE__ */ (0, import_jsx_runtime90.jsx)(HeaderNavigation, {}),
6376
+ /* @__PURE__ */ (0, import_jsx_runtime90.jsx)(ResponsiveHeaderActions, {})
6419
6377
  ] }) }),
6420
- /* @__PURE__ */ (0, import_jsx_runtime91.jsx)(BulkActionsFloating, { className: "-mb-1" }),
6421
- /* @__PURE__ */ (0, import_jsx_runtime91.jsx)(UnifiedGrid, {}),
6422
- /* @__PURE__ */ (0, import_jsx_runtime91.jsx)(FileManagerComposition.Footer, { className: "pt-6 pb-10" })
6378
+ /* @__PURE__ */ (0, import_jsx_runtime90.jsx)(BulkActionsFloating, { className: "-mb-1" }),
6379
+ /* @__PURE__ */ (0, import_jsx_runtime90.jsx)(UnifiedGrid, {}),
6380
+ /* @__PURE__ */ (0, import_jsx_runtime90.jsx)(FileManagerComposition.Footer, { className: "pt-6 pb-10" })
6423
6381
  ] }),
6424
- /* @__PURE__ */ (0, import_jsx_runtime91.jsx)(FileManagerComposition.Overlays, {})
6382
+ /* @__PURE__ */ (0, import_jsx_runtime90.jsx)(FileManagerComposition.Overlays, {})
6425
6383
  ] })
6426
6384
  ] })) });
6427
6385
  }
6428
6386
 
6429
6387
  // components/file-manager-modal.tsx
6430
6388
  var import_react24 = require("react");
6431
- var import_jsx_runtime92 = require("react/jsx-runtime");
6389
+ var import_jsx_runtime91 = require("react/jsx-runtime");
6432
6390
  function FileManagerModal(_a) {
6433
6391
  var _b = _a, {
6434
6392
  open,
@@ -6437,7 +6395,7 @@ function FileManagerModal(_a) {
6437
6395
  "open",
6438
6396
  "onClose"
6439
6397
  ]);
6440
- return /* @__PURE__ */ (0, import_jsx_runtime92.jsx)(FileManagerComposition.Modal, __spreadProps(__spreadValues({}, props), { onClose, children: /* @__PURE__ */ (0, import_jsx_runtime92.jsx)(Dialog, { open, onOpenChange: onClose, children: /* @__PURE__ */ (0, import_jsx_runtime92.jsx)(ModalContent, { onClose }) }) }));
6398
+ return /* @__PURE__ */ (0, import_jsx_runtime91.jsx)(FileManagerComposition.Modal, __spreadProps(__spreadValues({}, props), { onClose, children: /* @__PURE__ */ (0, import_jsx_runtime91.jsx)(Dialog, { open, onOpenChange: onClose, children: /* @__PURE__ */ (0, import_jsx_runtime91.jsx)(ModalContent, { onClose }) }) }));
6441
6399
  }
6442
6400
  function ModalContent({ onClose }) {
6443
6401
  const { updateSearchQuery } = useFileManager();
@@ -6453,13 +6411,13 @@ function ModalContent({ onClose }) {
6453
6411
  searchInputRef.current.focus();
6454
6412
  }
6455
6413
  }, [isSearchActive]);
6456
- return /* @__PURE__ */ (0, import_jsx_runtime92.jsxs)(DialogContent, { className: "p-0", variant: "fullscreen", showCloseButton: false, children: [
6457
- /* @__PURE__ */ (0, import_jsx_runtime92.jsxs)(DialogHeader, { className: "pt-5 pb-3 m-0 border-b border-border", children: [
6458
- /* @__PURE__ */ (0, import_jsx_runtime92.jsx)(DialogTitle, { className: "px-6 text-base", children: /* @__PURE__ */ (0, import_jsx_runtime92.jsx)("div", { className: "flex w-full justify-between gap-2", children: isSearchActive ? (
6414
+ return /* @__PURE__ */ (0, import_jsx_runtime91.jsxs)(DialogContent, { className: "p-0", variant: "fullscreen", showCloseButton: false, children: [
6415
+ /* @__PURE__ */ (0, import_jsx_runtime91.jsxs)(DialogHeader, { className: "pt-5 pb-3 m-0 border-b border-border", children: [
6416
+ /* @__PURE__ */ (0, import_jsx_runtime91.jsx)(DialogTitle, { className: "px-6 text-base", children: /* @__PURE__ */ (0, import_jsx_runtime91.jsx)("div", { className: "flex w-full justify-between gap-2", children: isSearchActive ? (
6459
6417
  /* Inline Search Mode */
6460
- /* @__PURE__ */ (0, import_jsx_runtime92.jsxs)("div", { className: "flex items-center gap-4 flex-1", children: [
6461
- /* @__PURE__ */ (0, import_jsx_runtime92.jsx)(SearchIcon, { className: "size-5 text-gray-500 shrink-0" }),
6462
- /* @__PURE__ */ (0, import_jsx_runtime92.jsx)(
6418
+ /* @__PURE__ */ (0, import_jsx_runtime91.jsxs)("div", { className: "flex items-center gap-4 flex-1", children: [
6419
+ /* @__PURE__ */ (0, import_jsx_runtime91.jsx)(SearchIcon, { className: "size-5 text-gray-500 shrink-0" }),
6420
+ /* @__PURE__ */ (0, import_jsx_runtime91.jsx)(
6463
6421
  Input,
6464
6422
  {
6465
6423
  ref: searchInputRef,
@@ -6477,7 +6435,7 @@ function ModalContent({ onClose }) {
6477
6435
  }
6478
6436
  }
6479
6437
  ),
6480
- /* @__PURE__ */ (0, import_jsx_runtime92.jsx)(
6438
+ /* @__PURE__ */ (0, import_jsx_runtime91.jsx)(
6481
6439
  CloseButton,
6482
6440
  {
6483
6441
  onClick: () => {
@@ -6492,20 +6450,20 @@ function ModalContent({ onClose }) {
6492
6450
  ] })
6493
6451
  ) : (
6494
6452
  /* Normal Header Mode */
6495
- /* @__PURE__ */ (0, import_jsx_runtime92.jsxs)(import_jsx_runtime92.Fragment, { children: [
6496
- /* @__PURE__ */ (0, import_jsx_runtime92.jsx)(HeaderNavigation, {}),
6497
- /* @__PURE__ */ (0, import_jsx_runtime92.jsx)(ModalResponsiveHeaderActions, { onSearchClick: () => setIsSearchActive(true) }),
6498
- /* @__PURE__ */ (0, import_jsx_runtime92.jsx)(CloseButton, { onClick: onClose })
6453
+ /* @__PURE__ */ (0, import_jsx_runtime91.jsxs)(import_jsx_runtime91.Fragment, { children: [
6454
+ /* @__PURE__ */ (0, import_jsx_runtime91.jsx)(HeaderNavigation, {}),
6455
+ /* @__PURE__ */ (0, import_jsx_runtime91.jsx)(ModalResponsiveHeaderActions, { onSearchClick: () => setIsSearchActive(true) }),
6456
+ /* @__PURE__ */ (0, import_jsx_runtime91.jsx)(CloseButton, { onClick: onClose })
6499
6457
  ] })
6500
6458
  ) }) }),
6501
- /* @__PURE__ */ (0, import_jsx_runtime92.jsx)(DialogDescription, { className: "sr-only", children: "Browse and select files from your media library" })
6459
+ /* @__PURE__ */ (0, import_jsx_runtime91.jsx)(DialogDescription, { className: "sr-only", children: "Browse and select files from your media library" })
6502
6460
  ] }),
6503
- /* @__PURE__ */ (0, import_jsx_runtime92.jsxs)("div", { className: "overflow-y-auto flex-1 pb-4", children: [
6504
- /* @__PURE__ */ (0, import_jsx_runtime92.jsx)(UnifiedGrid, {}),
6505
- /* @__PURE__ */ (0, import_jsx_runtime92.jsx)(FileManagerComposition.Footer, { className: "my-4" }),
6506
- /* @__PURE__ */ (0, import_jsx_runtime92.jsx)(FileManagerComposition.Overlays, {})
6461
+ /* @__PURE__ */ (0, import_jsx_runtime91.jsxs)("div", { className: "overflow-y-auto flex-1 pb-4", children: [
6462
+ /* @__PURE__ */ (0, import_jsx_runtime91.jsx)(UnifiedGrid, {}),
6463
+ /* @__PURE__ */ (0, import_jsx_runtime91.jsx)(FileManagerComposition.Footer, { className: "my-4" }),
6464
+ /* @__PURE__ */ (0, import_jsx_runtime91.jsx)(FileManagerComposition.Overlays, {})
6507
6465
  ] }),
6508
- /* @__PURE__ */ (0, import_jsx_runtime92.jsx)(FileManagerModalFooter, { onClose })
6466
+ /* @__PURE__ */ (0, import_jsx_runtime91.jsx)(FileManagerModalFooter, { onClose })
6509
6467
  ] });
6510
6468
  }
6511
6469
  function FileManagerModalFooter({ onClose }) {
@@ -6527,10 +6485,10 @@ function FileManagerModalFooter({ onClose }) {
6527
6485
  onClose();
6528
6486
  }
6529
6487
  };
6530
- return /* @__PURE__ */ (0, import_jsx_runtime92.jsxs)(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: [
6531
- /* @__PURE__ */ (0, import_jsx_runtime92.jsx)(BulkActionsStatic, {}),
6532
- /* @__PURE__ */ (0, import_jsx_runtime92.jsx)(DialogClose, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime92.jsx)(Button, { type: "button", variant: "outline", onClick: onClose, radius: "full", className: "w-full md:w-auto mr-0", children: "Cancel" }) }),
6533
- /* @__PURE__ */ (0, import_jsx_runtime92.jsxs)(
6488
+ return /* @__PURE__ */ (0, import_jsx_runtime91.jsxs)(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: [
6489
+ /* @__PURE__ */ (0, import_jsx_runtime91.jsx)(BulkActionsStatic, {}),
6490
+ /* @__PURE__ */ (0, import_jsx_runtime91.jsx)(DialogClose, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime91.jsx)(Button, { type: "button", variant: "outline", onClick: onClose, radius: "full", className: "w-full md:w-auto mr-0", children: "Cancel" }) }),
6491
+ /* @__PURE__ */ (0, import_jsx_runtime91.jsxs)(
6534
6492
  Button,
6535
6493
  {
6536
6494
  type: "button",