@amogads/ui 1.1.3 → 1.1.5

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.js CHANGED
@@ -198,7 +198,10 @@ __export(design_system_exports, {
198
198
  FieldSeparator: () => FieldSeparator,
199
199
  FieldSet: () => FieldSet,
200
200
  FieldTitle: () => FieldTitle,
201
+ FileCardItem: () => FileCardItem,
202
+ FileUploadForm: () => FileUploadForm,
201
203
  FilterBar: () => FilterBar,
204
+ FolderTreeItem: () => FolderTreeItem,
202
205
  Form: () => Form,
203
206
  FormControl: () => FormControl,
204
207
  FormDescription: () => FormDescription,
@@ -351,6 +354,7 @@ __export(design_system_exports, {
351
354
  Spinner: () => Spinner,
352
355
  Stats01: () => Stats01,
353
356
  StatusBadge: () => StatusBadge,
357
+ StorageStatCard: () => StorageStatCard,
354
358
  Switch: () => Switch,
355
359
  Table: () => Table,
356
360
  TableBody: () => TableBody,
@@ -378,12 +382,15 @@ __export(design_system_exports, {
378
382
  TooltipTrigger: () => TooltipTrigger,
379
383
  TopNav: () => TopNav,
380
384
  TypingIndicator: () => TypingIndicator,
385
+ UserFileCardsView: () => UserFileCardsView,
381
386
  WizardTemplate: () => WizardTemplate,
382
387
  WorkspaceTemplate: () => WorkspaceTemplate,
383
388
  badgeVariants: () => badgeVariants,
384
389
  buttonGroupVariants: () => buttonGroupVariants,
385
390
  buttonVariants: () => buttonVariants,
386
391
  downloadQrCode: () => downloadQrCode,
392
+ formatBytes: () => formatBytes,
393
+ getFileCategoryTheme: () => getFileCategoryTheme,
387
394
  navigationMenuTriggerStyle: () => navigationMenuTriggerStyle,
388
395
  sidebarData: () => sidebarData2,
389
396
  statusBadgeVariants: () => statusBadgeVariants,
@@ -4942,6 +4949,22 @@ function SidebarProvider({
4942
4949
  window.addEventListener("keydown", handleKeyDown);
4943
4950
  return () => window.removeEventListener("keydown", handleKeyDown);
4944
4951
  }, [toggleSidebar]);
4952
+ React7.useEffect(() => {
4953
+ const handleCustomToggle = (e) => {
4954
+ const customEvent = e;
4955
+ if (customEvent.detail && typeof customEvent.detail.open === "boolean") {
4956
+ if (isMobile) {
4957
+ setOpenMobile(customEvent.detail.open);
4958
+ } else {
4959
+ setOpen(customEvent.detail.open);
4960
+ }
4961
+ } else {
4962
+ toggleSidebar();
4963
+ }
4964
+ };
4965
+ window.addEventListener("amoga:toggle-sidebar", handleCustomToggle);
4966
+ return () => window.removeEventListener("amoga:toggle-sidebar", handleCustomToggle);
4967
+ }, [isMobile, setOpenMobile, setOpen, toggleSidebar]);
4945
4968
  const state = open ? "expanded" : "collapsed";
4946
4969
  const contextValue = React7.useMemo(
4947
4970
  () => ({
@@ -11366,280 +11389,1852 @@ function AiChatHeader({
11366
11389
  );
11367
11390
  }
11368
11391
 
11369
- // src/design-system/templates/list-template.tsx
11392
+ // src/design-system/components/files/file-card-item.tsx
11393
+ var import_react17 = __toESM(require("react"));
11394
+ var import_lucide_react48 = require("lucide-react");
11395
+ var import_date_fns3 = require("date-fns");
11370
11396
  var import_jsx_runtime94 = require("react/jsx-runtime");
11371
- function ListTemplate({
11372
- title,
11373
- description,
11374
- badge,
11375
- breadcrumbs,
11376
- actions,
11377
- searchPlaceholder,
11378
- searchValue,
11379
- onSearchChange,
11380
- filters,
11381
- activeFilters,
11382
- onClearAllFilters,
11383
- filterActions,
11384
- children,
11385
- footer,
11386
- className,
11387
- ...props
11388
- }) {
11389
- const hasFilterBar = Boolean(onSearchChange) || Boolean(filters) || activeFilters && activeFilters.length > 0 || Boolean(filterActions);
11390
- return /* @__PURE__ */ (0, import_jsx_runtime94.jsxs)("div", { className: cn("flex flex-col gap-6 p-4 sm:p-6 md:p-8", className), ...props, children: [
11391
- /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(
11392
- PageHeader,
11393
- {
11394
- title,
11395
- description,
11396
- badge,
11397
- breadcrumbs,
11398
- actions
11399
- }
11400
- ),
11401
- hasFilterBar && /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(
11402
- FilterBar,
11403
- {
11404
- searchPlaceholder,
11405
- searchValue,
11406
- onSearchChange,
11407
- filters,
11408
- activeFilters,
11409
- onClearAll: onClearAllFilters,
11410
- actions: filterActions
11411
- }
11412
- ),
11413
- /* @__PURE__ */ (0, import_jsx_runtime94.jsx)("div", { className: "flex-1", children }),
11414
- footer && /* @__PURE__ */ (0, import_jsx_runtime94.jsx)("div", { className: "pt-2", children: footer })
11415
- ] });
11397
+ function getFileCategoryTheme(category) {
11398
+ switch (category) {
11399
+ case "Pdf":
11400
+ return {
11401
+ bg: "bg-red-500/10 dark:bg-red-950/40",
11402
+ text: "text-red-600 dark:text-red-400",
11403
+ border: "border-red-200/40 dark:border-red-900/40",
11404
+ gradient: "from-red-500/20 to-orange-500/10"
11405
+ };
11406
+ case "Doc":
11407
+ return {
11408
+ bg: "bg-blue-500/10 dark:bg-blue-950/40",
11409
+ text: "text-blue-600 dark:text-blue-400",
11410
+ border: "border-blue-200/40 dark:border-blue-900/40",
11411
+ gradient: "from-blue-500/20 to-indigo-500/10"
11412
+ };
11413
+ case "Xls":
11414
+ case "Csv":
11415
+ return {
11416
+ bg: "bg-emerald-500/10 dark:bg-emerald-950/40",
11417
+ text: "text-emerald-600 dark:text-emerald-400",
11418
+ border: "border-emerald-200/40 dark:border-emerald-900/40",
11419
+ gradient: "from-emerald-500/20 to-teal-500/10"
11420
+ };
11421
+ case "Images":
11422
+ return {
11423
+ bg: "bg-amber-500/10 dark:bg-amber-950/40",
11424
+ text: "text-amber-600 dark:text-amber-400",
11425
+ border: "border-amber-200/40 dark:border-amber-900/40",
11426
+ gradient: "from-amber-500/20 to-yellow-500/10"
11427
+ };
11428
+ case "Videos":
11429
+ return {
11430
+ bg: "bg-purple-500/10 dark:bg-purple-950/40",
11431
+ text: "text-purple-600 dark:text-purple-400",
11432
+ border: "border-purple-200/40 dark:border-purple-900/40",
11433
+ gradient: "from-purple-500/20 to-pink-500/10"
11434
+ };
11435
+ case "Zip":
11436
+ return {
11437
+ bg: "bg-orange-500/10 dark:bg-orange-950/40",
11438
+ text: "text-orange-600 dark:text-orange-400",
11439
+ border: "border-orange-200/40 dark:border-orange-900/40",
11440
+ gradient: "from-orange-500/20 to-amber-500/10"
11441
+ };
11442
+ default:
11443
+ return {
11444
+ bg: "bg-indigo-500/10 dark:bg-indigo-950/40",
11445
+ text: "text-indigo-600 dark:text-indigo-400",
11446
+ border: "border-indigo-200/40 dark:border-indigo-900/40",
11447
+ gradient: "from-indigo-500/20 to-purple-500/10"
11448
+ };
11449
+ }
11416
11450
  }
11417
-
11418
- // src/design-system/templates/detail-template.tsx
11419
- var import_lucide_react48 = require("lucide-react");
11420
- var import_jsx_runtime95 = require("react/jsx-runtime");
11421
- function DetailTemplate({
11422
- title,
11423
- description,
11424
- badge,
11425
- breadcrumbs,
11426
- actions,
11427
- onBack,
11428
- backLabel = "Back",
11429
- highlights,
11430
- sidebar,
11431
- children,
11432
- className,
11433
- ...props
11451
+ function formatBytes(bytes) {
11452
+ if (!bytes || bytes === 0) return "0 B";
11453
+ const k = 1024;
11454
+ const sizes = ["B", "KB", "MB", "GB", "TB"];
11455
+ const i = Math.floor(Math.log(bytes) / Math.log(k));
11456
+ return `${parseFloat((bytes / Math.pow(k, i)).toFixed(1))} ${sizes[i]}`;
11457
+ }
11458
+ function FileCardItem({
11459
+ file,
11460
+ isSelected = false,
11461
+ viewMode = "grid",
11462
+ onSelect,
11463
+ onPreview,
11464
+ onDownload,
11465
+ onCopyLink,
11466
+ onRename,
11467
+ onDelete,
11468
+ onShare,
11469
+ className
11434
11470
  }) {
11435
- return /* @__PURE__ */ (0, import_jsx_runtime95.jsxs)("div", { className: cn("flex flex-col gap-6 p-4 sm:p-6 md:p-8", className), ...props, children: [
11436
- /* @__PURE__ */ (0, import_jsx_runtime95.jsxs)("div", { className: "flex flex-col gap-2", children: [
11437
- onBack && /* @__PURE__ */ (0, import_jsx_runtime95.jsxs)(
11438
- Button,
11439
- {
11440
- variant: "ghost",
11441
- size: "sm",
11442
- onClick: onBack,
11443
- className: "w-fit gap-1.5 px-0 text-xs text-muted-foreground hover:bg-transparent hover:text-foreground",
11444
- children: [
11445
- /* @__PURE__ */ (0, import_jsx_runtime95.jsx)(import_lucide_react48.ArrowLeft, { className: "h-3.5 w-3.5" }),
11446
- backLabel
11447
- ]
11448
- }
11449
- ),
11450
- /* @__PURE__ */ (0, import_jsx_runtime95.jsx)(
11451
- PageHeader,
11452
- {
11453
- title,
11454
- description,
11455
- badge,
11456
- breadcrumbs,
11457
- actions
11458
- }
11459
- )
11460
- ] }),
11461
- highlights && /* @__PURE__ */ (0, import_jsx_runtime95.jsx)("div", { className: "grid gap-4 sm:grid-cols-2 lg:grid-cols-4", children: highlights }),
11462
- /* @__PURE__ */ (0, import_jsx_runtime95.jsxs)(
11463
- "div",
11471
+ const theme = getFileCategoryTheme(file.category);
11472
+ const isImage = file.category === "Images" || /\.(jpg|jpeg|png|webp|svg|gif)$/i.test(file.fileName);
11473
+ const isVideo = file.category === "Videos" || /\.(mp4|webm|mov|mkv)$/i.test(file.fileName);
11474
+ const isPdf = file.category === "Pdf" || /\.pdf$/i.test(file.fileName);
11475
+ const isSheet = file.category === "Xls" || file.category === "Csv" || /\.(xls|xlsx|csv)$/i.test(file.fileName);
11476
+ const isZip = file.category === "Zip" || /\.(zip|rar|7z|tar|gz)$/i.test(file.fileName);
11477
+ const updatedTimeDisplay = import_react17.default.useMemo(() => {
11478
+ if (!file.updatedAt) return "Recently";
11479
+ try {
11480
+ const d = new Date(file.updatedAt);
11481
+ return (0, import_date_fns3.formatDistanceToNow)(d, { addSuffix: true });
11482
+ } catch {
11483
+ return "Recently";
11484
+ }
11485
+ }, [file.updatedAt]);
11486
+ if (viewMode === "table") {
11487
+ return /* @__PURE__ */ (0, import_jsx_runtime94.jsxs)(
11488
+ "tr",
11464
11489
  {
11490
+ onClick: () => onSelect?.(file),
11465
11491
  className: cn(
11466
- "grid gap-6",
11467
- sidebar ? "grid-cols-1 lg:grid-cols-3" : "grid-cols-1"
11492
+ "group border-b border-border/50 transition-colors hover:bg-muted/40 cursor-pointer",
11493
+ isSelected && "bg-primary/5",
11494
+ className
11468
11495
  ),
11469
11496
  children: [
11470
- /* @__PURE__ */ (0, import_jsx_runtime95.jsx)("div", { className: cn(sidebar ? "lg:col-span-2 space-y-6" : "space-y-6"), children }),
11471
- sidebar && /* @__PURE__ */ (0, import_jsx_runtime95.jsx)("aside", { className: "space-y-6 lg:col-span-1", children: sidebar })
11472
- ]
11473
- }
11474
- )
11475
- ] });
11476
- }
11477
-
11478
- // src/design-system/templates/form-template.tsx
11479
- var import_lucide_react49 = require("lucide-react");
11480
- var import_jsx_runtime96 = require("react/jsx-runtime");
11481
- function FormTemplate({
11482
- title,
11483
- description,
11484
- badge,
11485
- breadcrumbs,
11486
- onBack,
11487
- backLabel = "Back",
11488
- submitLabel = "Save changes",
11489
- cancelLabel = "Cancel",
11490
- onCancel,
11491
- isSubmitting = false,
11492
- stickyFooter = false,
11493
- secondaryActions,
11494
- children,
11495
- className,
11496
- onSubmit,
11497
- ...props
11498
- }) {
11499
- return /* @__PURE__ */ (0, import_jsx_runtime96.jsxs)("div", { className: "flex flex-col gap-6 p-4 sm:p-6 md:p-8", children: [
11500
- /* @__PURE__ */ (0, import_jsx_runtime96.jsxs)("div", { className: "flex flex-col gap-2", children: [
11501
- onBack && /* @__PURE__ */ (0, import_jsx_runtime96.jsxs)(
11502
- Button,
11503
- {
11504
- type: "button",
11505
- variant: "ghost",
11506
- size: "sm",
11507
- onClick: onBack,
11508
- className: "w-fit gap-1.5 px-0 text-xs text-muted-foreground hover:bg-transparent hover:text-foreground",
11509
- children: [
11510
- /* @__PURE__ */ (0, import_jsx_runtime96.jsx)(import_lucide_react49.ArrowLeft, { className: "h-3.5 w-3.5" }),
11511
- backLabel
11512
- ]
11513
- }
11514
- ),
11515
- /* @__PURE__ */ (0, import_jsx_runtime96.jsx)(
11516
- PageHeader,
11517
- {
11518
- title,
11519
- description,
11520
- badge,
11521
- breadcrumbs
11522
- }
11523
- )
11524
- ] }),
11525
- /* @__PURE__ */ (0, import_jsx_runtime96.jsxs)("form", { onSubmit, className: cn("space-y-8", className), ...props, children: [
11526
- /* @__PURE__ */ (0, import_jsx_runtime96.jsx)("div", { className: "space-y-6", children }),
11527
- /* @__PURE__ */ (0, import_jsx_runtime96.jsxs)(
11528
- "div",
11529
- {
11530
- className: cn(
11531
- "flex flex-wrap items-center justify-between gap-4 pt-6",
11532
- stickyFooter && "sticky bottom-0 -mx-4 -mb-4 bg-background/95 p-4 backdrop-blur border-t sm:-mx-6 sm:-mb-6 sm:p-6 md:-mx-8 md:-mb-8 md:p-8"
11533
- ),
11534
- children: [
11535
- /* @__PURE__ */ (0, import_jsx_runtime96.jsx)("div", { children: secondaryActions }),
11536
- /* @__PURE__ */ (0, import_jsx_runtime96.jsxs)("div", { className: "flex items-center gap-3", children: [
11537
- onCancel && /* @__PURE__ */ (0, import_jsx_runtime96.jsx)(
11538
- Button,
11539
- {
11540
- type: "button",
11541
- variant: "outline",
11542
- disabled: isSubmitting,
11543
- onClick: onCancel,
11544
- children: cancelLabel
11545
- }
11546
- ),
11547
- /* @__PURE__ */ (0, import_jsx_runtime96.jsx)(Button, { type: "submit", disabled: isSubmitting, children: isSubmitting ? "Saving..." : submitLabel })
11497
+ /* @__PURE__ */ (0, import_jsx_runtime94.jsx)("td", { className: "py-3 px-4", children: /* @__PURE__ */ (0, import_jsx_runtime94.jsxs)("div", { className: "flex items-center gap-3", children: [
11498
+ /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(
11499
+ "div",
11500
+ {
11501
+ className: cn(
11502
+ "flex h-9 w-9 shrink-0 items-center justify-center rounded-lg border shadow-2xs",
11503
+ theme.bg,
11504
+ theme.border
11505
+ ),
11506
+ children: isImage ? /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(import_lucide_react48.Image, { className: cn("h-4 w-4", theme.text) }) : isVideo ? /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(import_lucide_react48.Film, { className: cn("h-4 w-4", theme.text) }) : isPdf ? /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(import_lucide_react48.FileText, { className: cn("h-4 w-4", theme.text) }) : isSheet ? /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(import_lucide_react48.FileSpreadsheet, { className: cn("h-4 w-4", theme.text) }) : isZip ? /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(import_lucide_react48.FileArchive, { className: cn("h-4 w-4", theme.text) }) : /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(import_lucide_react48.FileCode, { className: cn("h-4 w-4", theme.text) })
11507
+ }
11508
+ ),
11509
+ /* @__PURE__ */ (0, import_jsx_runtime94.jsxs)("div", { className: "min-w-0", children: [
11510
+ /* @__PURE__ */ (0, import_jsx_runtime94.jsx)("p", { className: "font-semibold text-xs text-foreground truncate max-w-[240px] sm:max-w-xs", children: file.fileName }),
11511
+ /* @__PURE__ */ (0, import_jsx_runtime94.jsx)("p", { className: "text-[11px] text-muted-foreground", children: file.folderPath || file.section || "General" })
11548
11512
  ] })
11549
- ]
11550
- }
11551
- )
11552
- ] })
11553
- ] });
11554
- }
11555
-
11556
- // src/design-system/templates/wizard-template.tsx
11557
- var import_lucide_react50 = require("lucide-react");
11558
- var import_jsx_runtime97 = require("react/jsx-runtime");
11559
- function WizardTemplate({
11560
- title,
11561
- description,
11562
- steps,
11563
- currentStepIndex,
11564
- onStepChange,
11565
- onNext,
11566
- onPrevious,
11567
- onSubmit,
11568
- nextLabel = "Next",
11569
- previousLabel = "Previous",
11570
- submitLabel = "Complete",
11571
- isSubmitting = false,
11572
- canProceed = true,
11573
- children,
11574
- className,
11575
- ...props
11576
- }) {
11577
- const isLastStep = currentStepIndex === steps.length - 1;
11578
- const isFirstStep = currentStepIndex === 0;
11579
- return /* @__PURE__ */ (0, import_jsx_runtime97.jsxs)("div", { className: cn("flex flex-col gap-6 p-4 sm:p-6 md:p-8", className), ...props, children: [
11580
- /* @__PURE__ */ (0, import_jsx_runtime97.jsx)(PageHeader, { title, description }),
11581
- /* @__PURE__ */ (0, import_jsx_runtime97.jsx)("nav", { "aria-label": "Wizard Progress", className: "py-2", children: /* @__PURE__ */ (0, import_jsx_runtime97.jsx)("ol", { className: "flex items-center justify-between gap-2 overflow-x-auto pb-2", children: steps.map((step, idx) => {
11582
- const isCompleted = idx < currentStepIndex;
11583
- const isCurrent = idx === currentStepIndex;
11584
- const isClickable = onStepChange && idx < currentStepIndex;
11585
- return /* @__PURE__ */ (0, import_jsx_runtime97.jsxs)(
11586
- "li",
11587
- {
11588
- className: "flex flex-1 items-center gap-2.5 min-w-[120px]",
11589
- children: [
11590
- /* @__PURE__ */ (0, import_jsx_runtime97.jsxs)(
11513
+ ] }) }),
11514
+ /* @__PURE__ */ (0, import_jsx_runtime94.jsx)("td", { className: "py-3 px-4 text-xs", children: /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(
11515
+ Badge,
11516
+ {
11517
+ variant: "outline",
11518
+ className: cn("text-[10px] px-2 py-0.5 font-bold", theme.bg, theme.text, theme.border),
11519
+ children: file.category
11520
+ }
11521
+ ) }),
11522
+ /* @__PURE__ */ (0, import_jsx_runtime94.jsx)("td", { className: "py-3 px-4 text-xs text-muted-foreground font-mono", children: formatBytes(file.fileSize) }),
11523
+ /* @__PURE__ */ (0, import_jsx_runtime94.jsx)("td", { className: "py-3 px-4 text-xs text-muted-foreground hidden sm:table-cell", children: updatedTimeDisplay }),
11524
+ /* @__PURE__ */ (0, import_jsx_runtime94.jsx)("td", { className: "py-3 px-4 text-right", children: /* @__PURE__ */ (0, import_jsx_runtime94.jsxs)("div", { className: "flex items-center justify-end gap-1", children: [
11525
+ /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(
11591
11526
  "button",
11592
11527
  {
11593
11528
  type: "button",
11594
- disabled: !isClickable,
11595
- onClick: isClickable ? () => onStepChange(idx) : void 0,
11596
- className: cn(
11597
- "flex items-center gap-2 text-left transition-colors",
11598
- isClickable && "cursor-pointer hover:opacity-80"
11599
- ),
11600
- children: [
11601
- /* @__PURE__ */ (0, import_jsx_runtime97.jsx)(
11602
- "span",
11603
- {
11604
- className: cn(
11605
- "flex h-7 w-7 shrink-0 items-center justify-center rounded-full text-xs font-semibold",
11606
- isCompleted && "bg-primary text-primary-foreground",
11607
- isCurrent && "border-2 border-primary bg-primary/10 text-primary font-bold",
11608
- !isCompleted && !isCurrent && "border border-border bg-muted text-muted-foreground"
11609
- ),
11610
- children: isCompleted ? /* @__PURE__ */ (0, import_jsx_runtime97.jsx)(import_lucide_react50.Check, { className: "h-4 w-4" }) : idx + 1
11611
- }
11612
- ),
11613
- /* @__PURE__ */ (0, import_jsx_runtime97.jsx)("div", { className: "hidden sm:block", children: /* @__PURE__ */ (0, import_jsx_runtime97.jsx)(
11614
- "div",
11615
- {
11616
- className: cn(
11617
- "text-xs font-medium",
11618
- isCurrent ? "text-foreground font-semibold" : "text-muted-foreground"
11619
- ),
11620
- children: step.title
11621
- }
11622
- ) })
11623
- ]
11529
+ onClick: (e) => {
11530
+ e.stopPropagation();
11531
+ onPreview?.(file);
11532
+ },
11533
+ className: "p-1.5 rounded-lg hover:bg-muted text-muted-foreground hover:text-foreground transition-colors cursor-pointer",
11534
+ title: "Preview",
11535
+ children: /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(import_lucide_react48.Eye, { className: "h-4 w-4" })
11624
11536
  }
11625
11537
  ),
11626
- idx < steps.length - 1 && /* @__PURE__ */ (0, import_jsx_runtime97.jsx)(
11627
- "div",
11538
+ /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(
11539
+ "button",
11628
11540
  {
11629
- className: cn(
11630
- "h-0.5 flex-1 rounded-full",
11631
- idx < currentStepIndex ? "bg-primary" : "bg-border"
11632
- )
11541
+ type: "button",
11542
+ onClick: (e) => {
11543
+ e.stopPropagation();
11544
+ onDownload?.(file);
11545
+ },
11546
+ className: "p-1.5 rounded-lg hover:bg-muted text-muted-foreground hover:text-foreground transition-colors cursor-pointer",
11547
+ title: "Download",
11548
+ children: /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(import_lucide_react48.Download, { className: "h-4 w-4" })
11633
11549
  }
11634
- )
11550
+ ),
11551
+ /* @__PURE__ */ (0, import_jsx_runtime94.jsxs)(DropdownMenu, { children: [
11552
+ /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(
11553
+ "button",
11554
+ {
11555
+ type: "button",
11556
+ onClick: (e) => e.stopPropagation(),
11557
+ className: "p-1.5 rounded-lg hover:bg-muted text-muted-foreground hover:text-foreground transition-colors cursor-pointer",
11558
+ title: "More actions",
11559
+ children: /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(import_lucide_react48.MoreHorizontal, { className: "h-4 w-4" })
11560
+ }
11561
+ ) }),
11562
+ /* @__PURE__ */ (0, import_jsx_runtime94.jsxs)(DropdownMenuContent, { align: "end", className: "w-40 rounded-xl p-1 shadow-lg", children: [
11563
+ /* @__PURE__ */ (0, import_jsx_runtime94.jsxs)(
11564
+ DropdownMenuItem,
11565
+ {
11566
+ onClick: () => onPreview?.(file),
11567
+ className: "cursor-pointer text-xs flex items-center gap-2 py-1.5",
11568
+ children: [
11569
+ /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(import_lucide_react48.Eye, { className: "h-3.5 w-3.5 text-blue-500" }),
11570
+ /* @__PURE__ */ (0, import_jsx_runtime94.jsx)("span", { children: "Preview" })
11571
+ ]
11572
+ }
11573
+ ),
11574
+ /* @__PURE__ */ (0, import_jsx_runtime94.jsxs)(
11575
+ DropdownMenuItem,
11576
+ {
11577
+ onClick: () => onDownload?.(file),
11578
+ className: "cursor-pointer text-xs flex items-center gap-2 py-1.5",
11579
+ children: [
11580
+ /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(import_lucide_react48.Download, { className: "h-3.5 w-3.5 text-emerald-500" }),
11581
+ /* @__PURE__ */ (0, import_jsx_runtime94.jsx)("span", { children: "Download" })
11582
+ ]
11583
+ }
11584
+ ),
11585
+ /* @__PURE__ */ (0, import_jsx_runtime94.jsxs)(
11586
+ DropdownMenuItem,
11587
+ {
11588
+ onClick: () => onCopyLink?.(file),
11589
+ className: "cursor-pointer text-xs flex items-center gap-2 py-1.5",
11590
+ children: [
11591
+ /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(import_lucide_react48.Copy, { className: "h-3.5 w-3.5 text-amber-500" }),
11592
+ /* @__PURE__ */ (0, import_jsx_runtime94.jsx)("span", { children: "Copy Link" })
11593
+ ]
11594
+ }
11595
+ ),
11596
+ onShare && /* @__PURE__ */ (0, import_jsx_runtime94.jsxs)(
11597
+ DropdownMenuItem,
11598
+ {
11599
+ onClick: () => onShare(file),
11600
+ className: "cursor-pointer text-xs flex items-center gap-2 py-1.5",
11601
+ children: [
11602
+ /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(import_lucide_react48.Share2, { className: "h-3.5 w-3.5 text-indigo-500" }),
11603
+ /* @__PURE__ */ (0, import_jsx_runtime94.jsx)("span", { children: "Share" })
11604
+ ]
11605
+ }
11606
+ ),
11607
+ onRename && /* @__PURE__ */ (0, import_jsx_runtime94.jsxs)(
11608
+ DropdownMenuItem,
11609
+ {
11610
+ onClick: () => onRename(file),
11611
+ className: "cursor-pointer text-xs flex items-center gap-2 py-1.5",
11612
+ children: [
11613
+ /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(import_lucide_react48.Pencil, { className: "h-3.5 w-3.5 text-purple-500" }),
11614
+ /* @__PURE__ */ (0, import_jsx_runtime94.jsx)("span", { children: "Rename" })
11615
+ ]
11616
+ }
11617
+ ),
11618
+ onDelete && /* @__PURE__ */ (0, import_jsx_runtime94.jsxs)(import_jsx_runtime94.Fragment, { children: [
11619
+ /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(DropdownMenuSeparator, {}),
11620
+ /* @__PURE__ */ (0, import_jsx_runtime94.jsxs)(
11621
+ DropdownMenuItem,
11622
+ {
11623
+ onClick: () => onDelete(file),
11624
+ className: "cursor-pointer text-xs flex items-center gap-2 py-1.5 text-rose-500 hover:text-rose-600 hover:bg-rose-50 dark:hover:bg-rose-950/30 rounded-md",
11625
+ children: [
11626
+ /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(import_lucide_react48.Trash2, { className: "h-3.5 w-3.5 text-rose-500" }),
11627
+ /* @__PURE__ */ (0, import_jsx_runtime94.jsx)("span", { children: "Delete" })
11628
+ ]
11629
+ }
11630
+ )
11631
+ ] })
11632
+ ] })
11633
+ ] })
11634
+ ] }) })
11635
+ ]
11636
+ }
11637
+ );
11638
+ }
11639
+ return /* @__PURE__ */ (0, import_jsx_runtime94.jsxs)(
11640
+ "div",
11641
+ {
11642
+ onClick: () => onSelect?.(file),
11643
+ className: cn(
11644
+ "group relative flex flex-col justify-between overflow-hidden rounded-2xl border border-border/80 bg-card p-3.5 shadow-2xs transition-all duration-200 hover:shadow-md hover:border-indigo-300 dark:hover:border-indigo-700/60 cursor-pointer select-none",
11645
+ isSelected && "border-indigo-500 ring-2 ring-indigo-500/20 bg-indigo-500/5",
11646
+ className
11647
+ ),
11648
+ children: [
11649
+ /* @__PURE__ */ (0, import_jsx_runtime94.jsxs)("div", { className: "relative mb-3 flex items-center justify-center overflow-hidden rounded-xl bg-muted/20 border border-border/40 min-h-[105px]", children: [
11650
+ isImage && file.fileUrl ? /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(
11651
+ "img",
11652
+ {
11653
+ src: file.fileUrl,
11654
+ alt: file.fileName,
11655
+ className: "h-28 w-full object-cover transition-transform duration-300 group-hover:scale-105",
11656
+ loading: "lazy"
11657
+ }
11658
+ ) : /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(
11659
+ "div",
11660
+ {
11661
+ className: cn(
11662
+ "flex h-16 w-16 items-center justify-center rounded-2xl border shadow-inner transition-transform duration-200 group-hover:scale-110",
11663
+ theme.bg,
11664
+ theme.border
11665
+ ),
11666
+ children: isPdf ? /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(import_lucide_react48.FileText, { className: cn("h-8 w-8", theme.text) }) : isVideo ? /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(import_lucide_react48.Film, { className: cn("h-8 w-8", theme.text) }) : isSheet ? /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(import_lucide_react48.FileSpreadsheet, { className: cn("h-8 w-8", theme.text) }) : isZip ? /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(import_lucide_react48.FileArchive, { className: cn("h-8 w-8", theme.text) }) : /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(import_lucide_react48.FileCode, { className: cn("h-8 w-8", theme.text) })
11667
+ }
11668
+ ),
11669
+ /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(
11670
+ Badge,
11671
+ {
11672
+ variant: "outline",
11673
+ className: cn(
11674
+ "absolute top-2 right-2 backdrop-blur-md text-[10px] font-bold px-1.5 py-0.5 shadow-2xs",
11675
+ theme.bg,
11676
+ theme.text,
11677
+ theme.border
11678
+ ),
11679
+ children: file.category
11680
+ }
11681
+ )
11682
+ ] }),
11683
+ /* @__PURE__ */ (0, import_jsx_runtime94.jsxs)("div", { className: "flex flex-col gap-1 min-w-0", children: [
11684
+ /* @__PURE__ */ (0, import_jsx_runtime94.jsx)("h4", { className: "font-bold text-xs text-foreground truncate tracking-tight", title: file.fileName, children: file.fileName }),
11685
+ /* @__PURE__ */ (0, import_jsx_runtime94.jsxs)("div", { className: "flex items-center justify-between text-[11px] text-muted-foreground", children: [
11686
+ /* @__PURE__ */ (0, import_jsx_runtime94.jsx)("span", { className: "font-mono", children: formatBytes(file.fileSize) }),
11687
+ /* @__PURE__ */ (0, import_jsx_runtime94.jsx)("span", { className: "truncate", children: updatedTimeDisplay })
11688
+ ] })
11689
+ ] }),
11690
+ /* @__PURE__ */ (0, import_jsx_runtime94.jsxs)("div", { className: "mt-3 pt-2.5 flex items-center justify-between border-t border-border/50 text-muted-foreground", children: [
11691
+ /* @__PURE__ */ (0, import_jsx_runtime94.jsx)("span", { className: "text-[10px] text-muted-foreground/70 font-medium truncate max-w-[120px]", children: file.folderPath || file.section || "General" }),
11692
+ /* @__PURE__ */ (0, import_jsx_runtime94.jsxs)("div", { className: "flex items-center gap-1", children: [
11693
+ /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(
11694
+ "button",
11695
+ {
11696
+ type: "button",
11697
+ onClick: (e) => {
11698
+ e.stopPropagation();
11699
+ onPreview?.(file);
11700
+ },
11701
+ className: "p-1 rounded-lg hover:bg-muted text-muted-foreground hover:text-foreground transition-colors cursor-pointer",
11702
+ title: "Preview file",
11703
+ children: /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(import_lucide_react48.Eye, { className: "h-3.5 w-3.5" })
11704
+ }
11705
+ ),
11706
+ /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(
11707
+ "button",
11708
+ {
11709
+ type: "button",
11710
+ onClick: (e) => {
11711
+ e.stopPropagation();
11712
+ onDownload?.(file);
11713
+ },
11714
+ className: "p-1 rounded-lg hover:bg-muted text-muted-foreground hover:text-foreground transition-colors cursor-pointer",
11715
+ title: "Download file",
11716
+ children: /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(import_lucide_react48.Download, { className: "h-3.5 w-3.5" })
11717
+ }
11718
+ ),
11719
+ /* @__PURE__ */ (0, import_jsx_runtime94.jsxs)(DropdownMenu, { children: [
11720
+ /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(
11721
+ "button",
11722
+ {
11723
+ type: "button",
11724
+ onClick: (e) => e.stopPropagation(),
11725
+ className: "p-1 rounded-lg hover:bg-muted text-muted-foreground hover:text-foreground transition-colors cursor-pointer",
11726
+ title: "More",
11727
+ children: /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(import_lucide_react48.MoreHorizontal, { className: "h-3.5 w-3.5" })
11728
+ }
11729
+ ) }),
11730
+ /* @__PURE__ */ (0, import_jsx_runtime94.jsxs)(DropdownMenuContent, { align: "end", className: "w-38 rounded-xl p-1 shadow-lg", children: [
11731
+ /* @__PURE__ */ (0, import_jsx_runtime94.jsxs)(
11732
+ DropdownMenuItem,
11733
+ {
11734
+ onClick: () => onPreview?.(file),
11735
+ className: "cursor-pointer text-xs flex items-center gap-2 py-1.5",
11736
+ children: [
11737
+ /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(import_lucide_react48.Eye, { className: "h-3.5 w-3.5 text-blue-500" }),
11738
+ /* @__PURE__ */ (0, import_jsx_runtime94.jsx)("span", { children: "Preview" })
11739
+ ]
11740
+ }
11741
+ ),
11742
+ /* @__PURE__ */ (0, import_jsx_runtime94.jsxs)(
11743
+ DropdownMenuItem,
11744
+ {
11745
+ onClick: () => onDownload?.(file),
11746
+ className: "cursor-pointer text-xs flex items-center gap-2 py-1.5",
11747
+ children: [
11748
+ /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(import_lucide_react48.Download, { className: "h-3.5 w-3.5 text-emerald-500" }),
11749
+ /* @__PURE__ */ (0, import_jsx_runtime94.jsx)("span", { children: "Download" })
11750
+ ]
11751
+ }
11752
+ ),
11753
+ /* @__PURE__ */ (0, import_jsx_runtime94.jsxs)(
11754
+ DropdownMenuItem,
11755
+ {
11756
+ onClick: () => onCopyLink?.(file),
11757
+ className: "cursor-pointer text-xs flex items-center gap-2 py-1.5",
11758
+ children: [
11759
+ /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(import_lucide_react48.Copy, { className: "h-3.5 w-3.5 text-amber-500" }),
11760
+ /* @__PURE__ */ (0, import_jsx_runtime94.jsx)("span", { children: "Copy Link" })
11761
+ ]
11762
+ }
11763
+ ),
11764
+ onDelete && /* @__PURE__ */ (0, import_jsx_runtime94.jsxs)(import_jsx_runtime94.Fragment, { children: [
11765
+ /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(DropdownMenuSeparator, {}),
11766
+ /* @__PURE__ */ (0, import_jsx_runtime94.jsxs)(
11767
+ DropdownMenuItem,
11768
+ {
11769
+ onClick: () => onDelete(file),
11770
+ className: "cursor-pointer text-xs flex items-center gap-2 py-1.5 text-rose-500 hover:text-rose-600 hover:bg-rose-50 dark:hover:bg-rose-950/30 rounded-md",
11771
+ children: [
11772
+ /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(import_lucide_react48.Trash2, { className: "h-3.5 w-3.5 text-rose-500" }),
11773
+ /* @__PURE__ */ (0, import_jsx_runtime94.jsx)("span", { children: "Delete" })
11774
+ ]
11775
+ }
11776
+ )
11777
+ ] })
11778
+ ] })
11779
+ ] })
11780
+ ] })
11781
+ ] })
11782
+ ]
11783
+ }
11784
+ );
11785
+ }
11786
+
11787
+ // src/design-system/components/files/folder-tree-item.tsx
11788
+ var import_lucide_react49 = require("lucide-react");
11789
+ var import_jsx_runtime95 = require("react/jsx-runtime");
11790
+ function FolderTreeItem({
11791
+ folder,
11792
+ isFolderActive,
11793
+ isExpanded,
11794
+ onToggleExpand,
11795
+ onSelectFolder,
11796
+ className
11797
+ }) {
11798
+ const isLevel0 = folder.level === 0;
11799
+ const isLevel1 = folder.level === 1;
11800
+ const isLevel2 = folder.level === 2;
11801
+ const hasChildren = isLevel0 || isLevel1;
11802
+ return /* @__PURE__ */ (0, import_jsx_runtime95.jsxs)(
11803
+ "div",
11804
+ {
11805
+ id: `folder-card-${folder.id}`,
11806
+ onClick: () => {
11807
+ if (hasChildren) {
11808
+ onToggleExpand(folder.id);
11809
+ } else {
11810
+ onSelectFolder(folder);
11811
+ }
11812
+ },
11813
+ className: cn(
11814
+ "group relative flex cursor-pointer items-center justify-between gap-2 rounded-xl py-1.5 px-2 transition-all duration-200 select-none border",
11815
+ isLevel0 && "font-bold bg-muted/20 border-border/50 my-1",
11816
+ isLevel1 && "ml-3 border-border/40 my-0.5",
11817
+ isLevel2 && "ml-6 border-transparent hover:bg-muted/40 my-0.5",
11818
+ isFolderActive ? "border-indigo-300 bg-indigo-500/15 text-indigo-600 dark:border-indigo-800 dark:bg-indigo-950/40 dark:text-indigo-400 font-bold shadow-2xs" : "bg-card hover:bg-indigo-500/5 hover:border-indigo-200/40",
11819
+ className
11820
+ ),
11821
+ children: [
11822
+ isFolderActive && /* @__PURE__ */ (0, import_jsx_runtime95.jsx)("div", { className: "absolute top-1 bottom-1 left-0 w-1 rounded-l-full bg-indigo-600" }),
11823
+ /* @__PURE__ */ (0, import_jsx_runtime95.jsxs)("div", { className: "flex items-center gap-1.5 min-w-0 flex-1", children: [
11824
+ hasChildren && /* @__PURE__ */ (0, import_jsx_runtime95.jsx)(
11825
+ "button",
11826
+ {
11827
+ type: "button",
11828
+ onClick: (e) => onToggleExpand(folder.id, e),
11829
+ className: "flex h-4 w-4 shrink-0 items-center justify-center rounded text-muted-foreground hover:bg-muted hover:text-foreground cursor-pointer",
11830
+ children: isExpanded ? /* @__PURE__ */ (0, import_jsx_runtime95.jsx)(import_lucide_react49.ChevronDown, { className: "h-3 w-3" }) : /* @__PURE__ */ (0, import_jsx_runtime95.jsx)(import_lucide_react49.ChevronRight, { className: "h-3 w-3" })
11831
+ }
11832
+ ),
11833
+ /* @__PURE__ */ (0, import_jsx_runtime95.jsx)(
11834
+ "div",
11835
+ {
11836
+ className: cn(
11837
+ "flex shrink-0 items-center justify-center rounded-lg text-indigo-600 dark:text-indigo-400 transition-colors",
11838
+ isLevel0 ? "h-6 w-6 border border-indigo-200/40 bg-indigo-500/10" : isLevel1 ? "h-5.5 w-5.5 border border-indigo-200/30 bg-indigo-500/5" : "h-5 w-5"
11839
+ ),
11840
+ children: isExpanded ? /* @__PURE__ */ (0, import_jsx_runtime95.jsx)(
11841
+ import_lucide_react49.FolderOpen,
11842
+ {
11843
+ className: isLevel0 ? "h-3.5 w-3.5" : isLevel1 ? "h-3 w-3" : "h-3 w-3 text-indigo-500"
11844
+ }
11845
+ ) : /* @__PURE__ */ (0, import_jsx_runtime95.jsx)(
11846
+ import_lucide_react49.Folder,
11847
+ {
11848
+ className: isLevel0 ? "h-3.5 w-3.5" : isLevel1 ? "h-3 w-3" : "h-3 w-3 text-indigo-500"
11849
+ }
11850
+ )
11851
+ }
11852
+ ),
11853
+ /* @__PURE__ */ (0, import_jsx_runtime95.jsx)(
11854
+ "span",
11855
+ {
11856
+ className: cn(
11857
+ "truncate text-foreground",
11858
+ isLevel0 ? "text-xs font-bold" : isLevel1 ? "text-[11px] font-semibold" : "text-[11px] font-medium",
11859
+ isFolderActive && "text-indigo-600 dark:text-indigo-400"
11860
+ ),
11861
+ children: folder.name
11862
+ }
11863
+ )
11864
+ ] }),
11865
+ /* @__PURE__ */ (0, import_jsx_runtime95.jsx)(
11866
+ Badge,
11867
+ {
11868
+ variant: isFolderActive ? "default" : "secondary",
11869
+ className: cn(
11870
+ "text-[10px] px-1.5 py-0 h-4 min-w-4 flex items-center justify-center font-mono",
11871
+ isFolderActive ? "bg-indigo-600 text-white" : "bg-muted text-muted-foreground group-hover:bg-indigo-500/10 group-hover:text-indigo-600"
11872
+ ),
11873
+ children: folder.fileCount
11874
+ }
11875
+ )
11876
+ ]
11877
+ }
11878
+ );
11879
+ }
11880
+
11881
+ // src/design-system/components/files/storage-stat-card.tsx
11882
+ var import_lucide_react50 = require("lucide-react");
11883
+ var import_jsx_runtime96 = require("react/jsx-runtime");
11884
+ function StorageStatCard({
11885
+ totalFiles,
11886
+ totalSizeBytes = 0,
11887
+ maxStorageBytes = 10 * 1024 * 1024 * 1024,
11888
+ // 10 GB default
11889
+ stats,
11890
+ onViewAllFiles,
11891
+ onUploadClick,
11892
+ className
11893
+ }) {
11894
+ const percentUsed = Math.min(
11895
+ 100,
11896
+ Math.max(1, Math.round(totalSizeBytes / (maxStorageBytes || 1) * 100))
11897
+ );
11898
+ const defaultStats = stats || [
11899
+ {
11900
+ label: "Documents & PDFs",
11901
+ count: Math.round(totalFiles * 0.4),
11902
+ sizeBytes: Math.round(totalSizeBytes * 0.45),
11903
+ colorClass: "bg-red-500",
11904
+ icon: /* @__PURE__ */ (0, import_jsx_runtime96.jsx)(import_lucide_react50.FileText, { className: "h-4 w-4 text-red-500" })
11905
+ },
11906
+ {
11907
+ label: "Images & Photos",
11908
+ count: Math.round(totalFiles * 0.35),
11909
+ sizeBytes: Math.round(totalSizeBytes * 0.3),
11910
+ colorClass: "bg-amber-500",
11911
+ icon: /* @__PURE__ */ (0, import_jsx_runtime96.jsx)(import_lucide_react50.Image, { className: "h-4 w-4 text-amber-500" })
11912
+ },
11913
+ {
11914
+ label: "Media & Videos",
11915
+ count: Math.round(totalFiles * 0.15),
11916
+ sizeBytes: Math.round(totalSizeBytes * 0.2),
11917
+ colorClass: "bg-purple-500",
11918
+ icon: /* @__PURE__ */ (0, import_jsx_runtime96.jsx)(import_lucide_react50.Film, { className: "h-4 w-4 text-purple-500" })
11919
+ },
11920
+ {
11921
+ label: "Other & Archives",
11922
+ count: Math.max(0, totalFiles - Math.round(totalFiles * 0.9)),
11923
+ sizeBytes: Math.round(totalSizeBytes * 0.05),
11924
+ colorClass: "bg-indigo-500",
11925
+ icon: /* @__PURE__ */ (0, import_jsx_runtime96.jsx)(import_lucide_react50.Database, { className: "h-4 w-4 text-indigo-500" })
11926
+ }
11927
+ ];
11928
+ return /* @__PURE__ */ (0, import_jsx_runtime96.jsxs)(
11929
+ "div",
11930
+ {
11931
+ className: cn(
11932
+ "flex flex-col gap-4 rounded-2xl border border-border/80 bg-card p-4 shadow-2xs select-none",
11933
+ className
11934
+ ),
11935
+ children: [
11936
+ /* @__PURE__ */ (0, import_jsx_runtime96.jsxs)("div", { className: "flex items-center justify-between", children: [
11937
+ /* @__PURE__ */ (0, import_jsx_runtime96.jsxs)("div", { className: "flex items-center gap-2.5", children: [
11938
+ /* @__PURE__ */ (0, import_jsx_runtime96.jsx)("div", { className: "flex h-9 w-9 items-center justify-center rounded-xl bg-indigo-500/10 text-indigo-600 dark:text-indigo-400 border border-indigo-200/40", children: /* @__PURE__ */ (0, import_jsx_runtime96.jsx)(import_lucide_react50.HardDrive, { className: "h-5 w-5" }) }),
11939
+ /* @__PURE__ */ (0, import_jsx_runtime96.jsxs)("div", { children: [
11940
+ /* @__PURE__ */ (0, import_jsx_runtime96.jsx)("h3", { className: "text-xs font-bold text-foreground", children: "Storage Overview" }),
11941
+ /* @__PURE__ */ (0, import_jsx_runtime96.jsxs)("p", { className: "text-[11px] text-muted-foreground", children: [
11942
+ totalFiles,
11943
+ " items stored in workspace"
11944
+ ] })
11945
+ ] })
11946
+ ] }),
11947
+ /* @__PURE__ */ (0, import_jsx_runtime96.jsxs)("div", { className: "text-right", children: [
11948
+ /* @__PURE__ */ (0, import_jsx_runtime96.jsx)("p", { className: "text-xs font-bold text-foreground font-mono", children: formatBytes(totalSizeBytes) }),
11949
+ /* @__PURE__ */ (0, import_jsx_runtime96.jsxs)("p", { className: "text-[10px] text-muted-foreground font-mono", children: [
11950
+ "of ",
11951
+ formatBytes(maxStorageBytes)
11952
+ ] })
11953
+ ] })
11954
+ ] }),
11955
+ /* @__PURE__ */ (0, import_jsx_runtime96.jsxs)("div", { className: "space-y-1.5", children: [
11956
+ /* @__PURE__ */ (0, import_jsx_runtime96.jsx)("div", { className: "flex h-2.5 w-full overflow-hidden rounded-full bg-muted/60 p-0.5 border border-border/40", children: /* @__PURE__ */ (0, import_jsx_runtime96.jsx)(
11957
+ "div",
11958
+ {
11959
+ className: "h-full rounded-full bg-linear-to-r from-indigo-500 via-purple-500 to-amber-500 transition-all duration-500",
11960
+ style: { width: `${percentUsed}%` }
11961
+ }
11962
+ ) }),
11963
+ /* @__PURE__ */ (0, import_jsx_runtime96.jsxs)("div", { className: "flex justify-between text-[10px] text-muted-foreground", children: [
11964
+ /* @__PURE__ */ (0, import_jsx_runtime96.jsxs)("span", { children: [
11965
+ percentUsed,
11966
+ "% capacity utilized"
11967
+ ] }),
11968
+ /* @__PURE__ */ (0, import_jsx_runtime96.jsxs)("span", { children: [
11969
+ formatBytes(Math.max(0, maxStorageBytes - totalSizeBytes)),
11970
+ " available"
11971
+ ] })
11972
+ ] })
11973
+ ] }),
11974
+ /* @__PURE__ */ (0, import_jsx_runtime96.jsx)("div", { className: "grid grid-cols-2 gap-2 pt-1", children: defaultStats.map((item, idx) => /* @__PURE__ */ (0, import_jsx_runtime96.jsxs)(
11975
+ "div",
11976
+ {
11977
+ className: "flex items-center gap-2 rounded-xl border border-border/40 bg-muted/20 p-2",
11978
+ children: [
11979
+ /* @__PURE__ */ (0, import_jsx_runtime96.jsx)("div", { className: "shrink-0", children: item.icon }),
11980
+ /* @__PURE__ */ (0, import_jsx_runtime96.jsxs)("div", { className: "min-w-0 flex-1", children: [
11981
+ /* @__PURE__ */ (0, import_jsx_runtime96.jsx)("p", { className: "truncate text-[11px] font-semibold text-foreground", children: item.label }),
11982
+ /* @__PURE__ */ (0, import_jsx_runtime96.jsxs)("div", { className: "flex items-center justify-between text-[10px] text-muted-foreground", children: [
11983
+ /* @__PURE__ */ (0, import_jsx_runtime96.jsxs)("span", { children: [
11984
+ item.count,
11985
+ " files"
11986
+ ] }),
11987
+ /* @__PURE__ */ (0, import_jsx_runtime96.jsx)("span", { className: "font-mono", children: formatBytes(item.sizeBytes) })
11988
+ ] })
11989
+ ] })
11990
+ ]
11991
+ },
11992
+ idx
11993
+ )) }),
11994
+ (onViewAllFiles || onUploadClick) && /* @__PURE__ */ (0, import_jsx_runtime96.jsxs)("div", { className: "flex items-center justify-between pt-2 border-t border-border/50", children: [
11995
+ onViewAllFiles && /* @__PURE__ */ (0, import_jsx_runtime96.jsxs)(
11996
+ "button",
11997
+ {
11998
+ type: "button",
11999
+ onClick: onViewAllFiles,
12000
+ className: "text-xs font-semibold text-indigo-600 dark:text-indigo-400 hover:underline flex items-center gap-1 cursor-pointer",
12001
+ children: [
12002
+ /* @__PURE__ */ (0, import_jsx_runtime96.jsx)("span", { children: "Explore All Files" }),
12003
+ /* @__PURE__ */ (0, import_jsx_runtime96.jsx)(import_lucide_react50.ArrowUpRight, { className: "h-3.5 w-3.5" })
12004
+ ]
12005
+ }
12006
+ ),
12007
+ onUploadClick && /* @__PURE__ */ (0, import_jsx_runtime96.jsx)(
12008
+ "button",
12009
+ {
12010
+ type: "button",
12011
+ onClick: onUploadClick,
12012
+ className: "text-xs font-semibold bg-indigo-600 text-white hover:bg-indigo-700 px-3 py-1 rounded-lg transition-colors cursor-pointer",
12013
+ children: "Upload New"
12014
+ }
12015
+ )
12016
+ ] })
12017
+ ]
12018
+ }
12019
+ );
12020
+ }
12021
+
12022
+ // src/design-system/components/files/user-file-cards-view.tsx
12023
+ var import_react18 = require("react");
12024
+ var import_lucide_react52 = require("lucide-react");
12025
+
12026
+ // src/features/Message/components/chat/header-actions.tsx
12027
+ var import_lucide_react51 = require("lucide-react");
12028
+ var import_sonner3 = require("sonner");
12029
+ var import_jsx_runtime97 = require("react/jsx-runtime");
12030
+ function HeaderActions({
12031
+ onDelete,
12032
+ onDownload,
12033
+ onPrint,
12034
+ onShare,
12035
+ onReply,
12036
+ onForward,
12037
+ onPin,
12038
+ onStar,
12039
+ onFavorite,
12040
+ onArchive,
12041
+ onActionThis,
12042
+ onClose
12043
+ }) {
12044
+ return /* @__PURE__ */ (0, import_jsx_runtime97.jsxs)("div", { className: "flex items-center gap-1 shrink-0 select-none", children: [
12045
+ /* @__PURE__ */ (0, import_jsx_runtime97.jsx)(
12046
+ "button",
12047
+ {
12048
+ type: "button",
12049
+ onClick: () => {
12050
+ if (onActionThis) onActionThis();
12051
+ else import_sonner3.toast.info("Act on this option selected");
12052
+ },
12053
+ className: "p-1.5 rounded-lg hover:bg-muted text-amber-500 hover:text-amber-600 transition-colors cursor-pointer",
12054
+ title: "Act on this",
12055
+ children: /* @__PURE__ */ (0, import_jsx_runtime97.jsx)(import_lucide_react51.Bell, { className: "h-4.5 w-4.5" })
12056
+ }
12057
+ ),
12058
+ /* @__PURE__ */ (0, import_jsx_runtime97.jsx)(
12059
+ "button",
12060
+ {
12061
+ type: "button",
12062
+ onClick: () => import_sonner3.toast.success("Flagged item"),
12063
+ className: "p-1.5 rounded-lg hover:bg-muted text-muted-foreground hover:text-foreground transition-colors cursor-pointer",
12064
+ title: "Flag",
12065
+ children: /* @__PURE__ */ (0, import_jsx_runtime97.jsx)(import_lucide_react51.Flag, { className: "h-4.5 w-4.5" })
12066
+ }
12067
+ ),
12068
+ /* @__PURE__ */ (0, import_jsx_runtime97.jsxs)(DropdownMenu, { children: [
12069
+ /* @__PURE__ */ (0, import_jsx_runtime97.jsx)(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime97.jsx)(
12070
+ "button",
12071
+ {
12072
+ type: "button",
12073
+ className: "p-1.5 rounded-lg hover:bg-muted text-muted-foreground hover:text-foreground transition-colors cursor-pointer",
12074
+ title: "More options",
12075
+ children: /* @__PURE__ */ (0, import_jsx_runtime97.jsx)(import_lucide_react51.MoreVertical, { className: "h-4.5 w-4.5" })
12076
+ }
12077
+ ) }),
12078
+ /* @__PURE__ */ (0, import_jsx_runtime97.jsxs)(
12079
+ DropdownMenuContent,
12080
+ {
12081
+ align: "end",
12082
+ className: "w-48 border border-border/80 bg-background shadow-lg p-1 space-y-0.5",
12083
+ children: [
12084
+ /* @__PURE__ */ (0, import_jsx_runtime97.jsx)(
12085
+ DropdownMenuItem,
12086
+ {
12087
+ onClick: () => {
12088
+ if (onReply) onReply();
12089
+ else import_sonner3.toast.info("Reply option selected");
12090
+ },
12091
+ className: "cursor-pointer text-xs flex items-center justify-between py-2 px-2.5 font-medium hover:bg-muted/80 rounded-md",
12092
+ children: /* @__PURE__ */ (0, import_jsx_runtime97.jsxs)("div", { className: "flex items-center gap-2.5", children: [
12093
+ /* @__PURE__ */ (0, import_jsx_runtime97.jsx)(import_lucide_react51.Reply, { className: "h-4 w-4 text-blue-500" }),
12094
+ /* @__PURE__ */ (0, import_jsx_runtime97.jsx)("span", { className: "text-foreground", children: "Reply" })
12095
+ ] })
12096
+ }
12097
+ ),
12098
+ /* @__PURE__ */ (0, import_jsx_runtime97.jsx)(
12099
+ DropdownMenuItem,
12100
+ {
12101
+ onClick: () => {
12102
+ if (onForward) onForward();
12103
+ else import_sonner3.toast.info("Forward option selected");
12104
+ },
12105
+ className: "cursor-pointer text-xs flex items-center justify-between py-2 px-2.5 font-medium hover:bg-muted/80 rounded-md",
12106
+ children: /* @__PURE__ */ (0, import_jsx_runtime97.jsxs)("div", { className: "flex items-center gap-2.5", children: [
12107
+ /* @__PURE__ */ (0, import_jsx_runtime97.jsx)(import_lucide_react51.Forward, { className: "h-4 w-4 text-sky-400" }),
12108
+ /* @__PURE__ */ (0, import_jsx_runtime97.jsx)("span", { className: "text-foreground", children: "Forward" })
12109
+ ] })
12110
+ }
12111
+ ),
12112
+ /* @__PURE__ */ (0, import_jsx_runtime97.jsx)(
12113
+ DropdownMenuItem,
12114
+ {
12115
+ onClick: () => {
12116
+ if (onPin) onPin();
12117
+ else import_sonner3.toast.success("Message pinned");
12118
+ },
12119
+ className: "cursor-pointer text-xs flex items-center justify-between py-2 px-2.5 font-medium hover:bg-muted/80 rounded-md",
12120
+ children: /* @__PURE__ */ (0, import_jsx_runtime97.jsxs)("div", { className: "flex items-center gap-2.5", children: [
12121
+ /* @__PURE__ */ (0, import_jsx_runtime97.jsx)(import_lucide_react51.Pin, { className: "h-4 w-4 text-purple-500" }),
12122
+ /* @__PURE__ */ (0, import_jsx_runtime97.jsx)("span", { className: "text-foreground", children: "Pin Message" })
12123
+ ] })
12124
+ }
12125
+ ),
12126
+ /* @__PURE__ */ (0, import_jsx_runtime97.jsx)(
12127
+ DropdownMenuItem,
12128
+ {
12129
+ onClick: () => {
12130
+ if (onStar) onStar();
12131
+ else import_sonner3.toast.success("Starred successfully");
12132
+ },
12133
+ className: "cursor-pointer text-xs flex items-center justify-between py-2 px-2.5 font-medium hover:bg-muted/80 rounded-md",
12134
+ children: /* @__PURE__ */ (0, import_jsx_runtime97.jsxs)("div", { className: "flex items-center gap-2.5", children: [
12135
+ /* @__PURE__ */ (0, import_jsx_runtime97.jsx)(import_lucide_react51.Star, { className: "h-4 w-4 text-amber-500" }),
12136
+ /* @__PURE__ */ (0, import_jsx_runtime97.jsx)("span", { className: "text-foreground", children: "Star" })
12137
+ ] })
12138
+ }
12139
+ ),
12140
+ /* @__PURE__ */ (0, import_jsx_runtime97.jsx)(
12141
+ DropdownMenuItem,
12142
+ {
12143
+ onClick: () => {
12144
+ if (onFavorite) onFavorite();
12145
+ else import_sonner3.toast.success("Added to favorites");
12146
+ },
12147
+ className: "cursor-pointer text-xs flex items-center justify-between py-2 px-2.5 font-medium hover:bg-muted/80 rounded-md",
12148
+ children: /* @__PURE__ */ (0, import_jsx_runtime97.jsxs)("div", { className: "flex items-center gap-2.5", children: [
12149
+ /* @__PURE__ */ (0, import_jsx_runtime97.jsx)(import_lucide_react51.Heart, { className: "h-4 w-4 text-rose-500" }),
12150
+ /* @__PURE__ */ (0, import_jsx_runtime97.jsx)("span", { className: "text-foreground", children: "Favorite" })
12151
+ ] })
12152
+ }
12153
+ ),
12154
+ /* @__PURE__ */ (0, import_jsx_runtime97.jsx)(
12155
+ DropdownMenuItem,
12156
+ {
12157
+ onClick: () => import_sonner3.toast.success("Flagged message"),
12158
+ className: "cursor-pointer text-xs flex items-center justify-between py-2 px-2.5 font-medium hover:bg-muted/80 rounded-md",
12159
+ children: /* @__PURE__ */ (0, import_jsx_runtime97.jsxs)("div", { className: "flex items-center gap-2.5", children: [
12160
+ /* @__PURE__ */ (0, import_jsx_runtime97.jsx)(import_lucide_react51.Flag, { className: "h-4 w-4 text-red-500" }),
12161
+ /* @__PURE__ */ (0, import_jsx_runtime97.jsx)("span", { className: "text-foreground", children: "Flag" })
12162
+ ] })
12163
+ }
12164
+ ),
12165
+ /* @__PURE__ */ (0, import_jsx_runtime97.jsx)(
12166
+ DropdownMenuItem,
12167
+ {
12168
+ onClick: () => {
12169
+ if (onArchive) onArchive();
12170
+ else import_sonner3.toast.success("Archived successfully");
12171
+ },
12172
+ className: "cursor-pointer text-xs flex items-center justify-between py-2 px-2.5 font-medium hover:bg-muted/80 rounded-md",
12173
+ children: /* @__PURE__ */ (0, import_jsx_runtime97.jsxs)("div", { className: "flex items-center gap-2.5", children: [
12174
+ /* @__PURE__ */ (0, import_jsx_runtime97.jsx)(import_lucide_react51.Archive, { className: "h-4 w-4 text-indigo-500" }),
12175
+ /* @__PURE__ */ (0, import_jsx_runtime97.jsx)("span", { className: "text-foreground", children: "Archive" })
12176
+ ] })
12177
+ }
12178
+ ),
12179
+ /* @__PURE__ */ (0, import_jsx_runtime97.jsx)(
12180
+ DropdownMenuItem,
12181
+ {
12182
+ onClick: () => {
12183
+ if (onActionThis) onActionThis();
12184
+ else import_sonner3.toast.info("Action This selected");
12185
+ },
12186
+ className: "cursor-pointer text-xs flex items-center justify-between py-2 px-2.5 font-medium hover:bg-muted/80 rounded-md",
12187
+ children: /* @__PURE__ */ (0, import_jsx_runtime97.jsxs)("div", { className: "flex items-center gap-2.5", children: [
12188
+ /* @__PURE__ */ (0, import_jsx_runtime97.jsx)(import_lucide_react51.Bell, { className: "h-4 w-4 text-amber-500" }),
12189
+ /* @__PURE__ */ (0, import_jsx_runtime97.jsx)("span", { className: "text-foreground", children: "Action This" })
12190
+ ] })
12191
+ }
12192
+ ),
12193
+ /* @__PURE__ */ (0, import_jsx_runtime97.jsx)(
12194
+ DropdownMenuItem,
12195
+ {
12196
+ onClick: () => {
12197
+ if (onDelete) onDelete();
12198
+ else import_sonner3.toast.success("Item deleted");
12199
+ },
12200
+ className: "cursor-pointer text-xs flex items-center justify-between py-2 px-2.5 font-medium hover:bg-red-500/10 rounded-md text-red-500 focus:text-red-500",
12201
+ children: /* @__PURE__ */ (0, import_jsx_runtime97.jsxs)("div", { className: "flex items-center gap-2.5", children: [
12202
+ /* @__PURE__ */ (0, import_jsx_runtime97.jsx)(import_lucide_react51.Trash2, { className: "h-4 w-4 text-red-500" }),
12203
+ /* @__PURE__ */ (0, import_jsx_runtime97.jsx)("span", { className: "font-semibold text-red-500", children: "Delete" })
12204
+ ] })
12205
+ }
12206
+ )
12207
+ ]
12208
+ }
12209
+ )
12210
+ ] }),
12211
+ onClose && /* @__PURE__ */ (0, import_jsx_runtime97.jsx)(
12212
+ "button",
12213
+ {
12214
+ type: "button",
12215
+ onClick: onClose,
12216
+ className: "p-1.5 rounded-lg hover:bg-muted text-muted-foreground hover:text-foreground transition-colors cursor-pointer ml-0.5",
12217
+ title: "Close",
12218
+ "aria-label": "Close",
12219
+ children: /* @__PURE__ */ (0, import_jsx_runtime97.jsx)(import_lucide_react51.X, { className: "h-4.5 w-4.5" })
12220
+ }
12221
+ )
12222
+ ] });
12223
+ }
12224
+
12225
+ // src/design-system/components/files/user-file-cards-view.tsx
12226
+ var import_jsx_runtime98 = require("react/jsx-runtime");
12227
+ var CATEGORY_TABS = [
12228
+ { label: "All Files", value: "all" },
12229
+ { label: "PDFs", value: "Pdf" },
12230
+ { label: "Documents", value: "Doc" },
12231
+ { label: "Spreadsheets", value: "Xls" },
12232
+ { label: "Images", value: "Images" },
12233
+ { label: "Videos", value: "Videos" },
12234
+ { label: "Archives", value: "Zip" }
12235
+ ];
12236
+ function UserFileCardsView({
12237
+ folder,
12238
+ files,
12239
+ selectedFileId,
12240
+ onSelectFileForPreview,
12241
+ onDownloadFile,
12242
+ onDeleteFile,
12243
+ onCopyLink,
12244
+ onRenameFile,
12245
+ onShareFile,
12246
+ onUploadClick,
12247
+ onBack,
12248
+ className
12249
+ }) {
12250
+ const [searchQuery, setSearchQuery] = (0, import_react18.useState)("");
12251
+ const [selectedCategory, setSelectedCategory] = (0, import_react18.useState)("all");
12252
+ const [sortBy, setSortBy] = (0, import_react18.useState)("date");
12253
+ const [sortOrder, setSortOrder] = (0, import_react18.useState)("desc");
12254
+ const [viewMode, setViewMode] = (0, import_react18.useState)("grid");
12255
+ const [currentPage, setCurrentPage] = (0, import_react18.useState)(1);
12256
+ const itemsPerPage = viewMode === "grid" ? 12 : 20;
12257
+ const [selectedIds, setSelectedIds] = (0, import_react18.useState)(/* @__PURE__ */ new Set());
12258
+ const filteredFiles = (0, import_react18.useMemo)(() => {
12259
+ return files.filter((f) => {
12260
+ const matchCategory = selectedCategory === "all" || f.category.toLowerCase() === selectedCategory.toLowerCase() || selectedCategory === "Xls" && (f.category === "Csv" || f.category === "Xls");
12261
+ const matchSearch = !searchQuery.trim() || f.fileName.toLowerCase().includes(searchQuery.toLowerCase()) || f.folderPath && f.folderPath.toLowerCase().includes(searchQuery.toLowerCase());
12262
+ return matchCategory && matchSearch;
12263
+ });
12264
+ }, [files, selectedCategory, searchQuery]);
12265
+ const sortedFiles = (0, import_react18.useMemo)(() => {
12266
+ return [...filteredFiles].sort((a, b) => {
12267
+ let compare = 0;
12268
+ if (sortBy === "date") {
12269
+ const timeA = a.updatedAt ? new Date(a.updatedAt).getTime() : 0;
12270
+ const timeB = b.updatedAt ? new Date(b.updatedAt).getTime() : 0;
12271
+ compare = timeB - timeA;
12272
+ } else if (sortBy === "name") {
12273
+ compare = a.fileName.localeCompare(b.fileName);
12274
+ } else if (sortBy === "size") {
12275
+ compare = (b.fileSize || 0) - (a.fileSize || 0);
12276
+ }
12277
+ return sortOrder === "asc" ? -compare : compare;
12278
+ });
12279
+ }, [filteredFiles, sortBy, sortOrder]);
12280
+ const totalPages = Math.ceil(sortedFiles.length / itemsPerPage) || 1;
12281
+ const paginatedFiles = (0, import_react18.useMemo)(() => {
12282
+ const start = (currentPage - 1) * itemsPerPage;
12283
+ return sortedFiles.slice(start, start + itemsPerPage);
12284
+ }, [sortedFiles, currentPage, itemsPerPage]);
12285
+ const totalBytes = (0, import_react18.useMemo)(() => {
12286
+ return files.reduce((acc, curr) => acc + (curr.fileSize || 0), 0);
12287
+ }, [files]);
12288
+ const toggleSelectAll = () => {
12289
+ if (selectedIds.size === paginatedFiles.length) {
12290
+ setSelectedIds(/* @__PURE__ */ new Set());
12291
+ } else {
12292
+ setSelectedIds(new Set(paginatedFiles.map((f) => f.id)));
12293
+ }
12294
+ };
12295
+ const toggleSelectOne = (id) => {
12296
+ setSelectedIds((prev) => {
12297
+ const next = new Set(prev);
12298
+ if (next.has(id)) next.delete(id);
12299
+ else next.add(id);
12300
+ return next;
12301
+ });
12302
+ };
12303
+ const handleBulkDownload = () => {
12304
+ const toDownload = files.filter((f) => selectedIds.has(f.id));
12305
+ toDownload.forEach((f) => onDownloadFile?.(f));
12306
+ };
12307
+ const handleBulkDelete = () => {
12308
+ const toDelete = files.filter((f) => selectedIds.has(f.id));
12309
+ toDelete.forEach((f) => onDeleteFile?.(f));
12310
+ setSelectedIds(/* @__PURE__ */ new Set());
12311
+ };
12312
+ return /* @__PURE__ */ (0, import_jsx_runtime98.jsxs)(
12313
+ "div",
12314
+ {
12315
+ className: cn(
12316
+ "flex h-full min-h-0 w-full flex-1 flex-col overflow-hidden bg-background select-none",
12317
+ className
12318
+ ),
12319
+ children: [
12320
+ /* @__PURE__ */ (0, import_jsx_runtime98.jsxs)("div", { className: "flex items-center justify-between border-b border-border bg-background px-4 py-3 shrink-0", children: [
12321
+ /* @__PURE__ */ (0, import_jsx_runtime98.jsxs)("div", { className: "flex items-center gap-2.5 min-w-0", children: [
12322
+ onBack && /* @__PURE__ */ (0, import_jsx_runtime98.jsx)(
12323
+ "button",
12324
+ {
12325
+ type: "button",
12326
+ onClick: onBack,
12327
+ className: "flex h-8 w-8 items-center justify-center rounded-xl text-muted-foreground hover:bg-muted hover:text-foreground transition-colors cursor-pointer",
12328
+ title: "Back",
12329
+ children: /* @__PURE__ */ (0, import_jsx_runtime98.jsx)(import_lucide_react52.ArrowLeft, { className: "h-4 w-4" })
12330
+ }
12331
+ ),
12332
+ /* @__PURE__ */ (0, import_jsx_runtime98.jsx)("div", { className: "flex h-10 w-10 items-center justify-center rounded-xl bg-indigo-500/10 text-indigo-600 dark:text-indigo-400 border border-indigo-200/50 shrink-0 shadow-2xs", children: /* @__PURE__ */ (0, import_jsx_runtime98.jsx)(import_lucide_react52.FolderOpen, { className: "h-5 w-5" }) }),
12333
+ /* @__PURE__ */ (0, import_jsx_runtime98.jsxs)("div", { className: "min-w-0", children: [
12334
+ /* @__PURE__ */ (0, import_jsx_runtime98.jsxs)("div", { className: "flex items-center gap-2", children: [
12335
+ /* @__PURE__ */ (0, import_jsx_runtime98.jsx)("h2", { className: "truncate text-sm font-bold text-foreground tracking-tight", children: folder?.name || "All Files & Folders" }),
12336
+ /* @__PURE__ */ (0, import_jsx_runtime98.jsxs)(Badge, { variant: "secondary", className: "text-[10px] px-1.5 py-0 h-4 font-mono", children: [
12337
+ filteredFiles.length,
12338
+ " files"
12339
+ ] })
12340
+ ] }),
12341
+ /* @__PURE__ */ (0, import_jsx_runtime98.jsxs)("p", { className: "truncate text-xs text-muted-foreground", children: [
12342
+ folder?.path || "Storage Space",
12343
+ " \xB7 Total size: ",
12344
+ formatBytes(totalBytes)
12345
+ ] })
12346
+ ] })
12347
+ ] }),
12348
+ /* @__PURE__ */ (0, import_jsx_runtime98.jsxs)("div", { className: "flex items-center gap-1.5 shrink-0", children: [
12349
+ onUploadClick && /* @__PURE__ */ (0, import_jsx_runtime98.jsxs)(
12350
+ Button,
12351
+ {
12352
+ size: "sm",
12353
+ onClick: onUploadClick,
12354
+ className: "gap-1.5 h-8 text-xs font-semibold shadow-xs",
12355
+ children: [
12356
+ /* @__PURE__ */ (0, import_jsx_runtime98.jsx)(import_lucide_react52.Upload, { className: "h-3.5 w-3.5" }),
12357
+ /* @__PURE__ */ (0, import_jsx_runtime98.jsx)("span", { className: "hidden sm:inline", children: "Upload Files" })
12358
+ ]
12359
+ }
12360
+ ),
12361
+ /* @__PURE__ */ (0, import_jsx_runtime98.jsx)(HeaderActions, { onDelete: onBack })
12362
+ ] })
12363
+ ] }),
12364
+ /* @__PURE__ */ (0, import_jsx_runtime98.jsxs)("div", { className: "flex flex-col gap-2.5 border-b border-border/60 bg-muted/10 p-3 shrink-0", children: [
12365
+ /* @__PURE__ */ (0, import_jsx_runtime98.jsxs)("div", { className: "flex flex-wrap items-center justify-between gap-2", children: [
12366
+ /* @__PURE__ */ (0, import_jsx_runtime98.jsxs)("div", { className: "relative min-w-[200px] flex-1 max-w-md", children: [
12367
+ /* @__PURE__ */ (0, import_jsx_runtime98.jsx)(import_lucide_react52.Search, { className: "absolute left-2.5 top-1/2 -translate-y-1/2 h-3.5 w-3.5 text-muted-foreground" }),
12368
+ /* @__PURE__ */ (0, import_jsx_runtime98.jsx)(
12369
+ Input,
12370
+ {
12371
+ value: searchQuery,
12372
+ onChange: (e) => {
12373
+ setSearchQuery(e.target.value);
12374
+ setCurrentPage(1);
12375
+ },
12376
+ placeholder: "Search files by name, type, or path...",
12377
+ className: "h-8.5 pl-8 pr-8 text-xs rounded-xl bg-background border-border/80"
12378
+ }
12379
+ ),
12380
+ searchQuery && /* @__PURE__ */ (0, import_jsx_runtime98.jsx)(
12381
+ "button",
12382
+ {
12383
+ type: "button",
12384
+ onClick: () => setSearchQuery(""),
12385
+ className: "absolute right-2.5 top-1/2 -translate-y-1/2 text-muted-foreground hover:text-foreground",
12386
+ children: /* @__PURE__ */ (0, import_jsx_runtime98.jsx)(import_lucide_react52.X, { className: "h-3.5 w-3.5" })
12387
+ }
12388
+ )
12389
+ ] }),
12390
+ /* @__PURE__ */ (0, import_jsx_runtime98.jsxs)("div", { className: "flex items-center gap-1.5", children: [
12391
+ /* @__PURE__ */ (0, import_jsx_runtime98.jsxs)(DropdownMenu, { children: [
12392
+ /* @__PURE__ */ (0, import_jsx_runtime98.jsx)(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime98.jsxs)(Button, { variant: "outline", size: "sm", className: "h-8 gap-1.5 text-xs rounded-xl", children: [
12393
+ /* @__PURE__ */ (0, import_jsx_runtime98.jsx)(import_lucide_react52.ArrowUpDown, { className: "h-3.5 w-3.5 text-muted-foreground" }),
12394
+ /* @__PURE__ */ (0, import_jsx_runtime98.jsxs)("span", { className: "hidden sm:inline capitalize", children: [
12395
+ "Sort: ",
12396
+ sortBy
12397
+ ] })
12398
+ ] }) }),
12399
+ /* @__PURE__ */ (0, import_jsx_runtime98.jsxs)(DropdownMenuContent, { align: "end", className: "w-44 rounded-xl p-1 shadow-lg", children: [
12400
+ /* @__PURE__ */ (0, import_jsx_runtime98.jsx)(DropdownMenuLabel, { className: "text-[10px] text-muted-foreground uppercase font-bold tracking-wider", children: "Sort By" }),
12401
+ /* @__PURE__ */ (0, import_jsx_runtime98.jsx)(
12402
+ DropdownMenuItem,
12403
+ {
12404
+ onClick: () => setSortBy("date"),
12405
+ className: cn("text-xs cursor-pointer", sortBy === "date" && "font-bold text-primary"),
12406
+ children: "Last Updated"
12407
+ }
12408
+ ),
12409
+ /* @__PURE__ */ (0, import_jsx_runtime98.jsx)(
12410
+ DropdownMenuItem,
12411
+ {
12412
+ onClick: () => setSortBy("name"),
12413
+ className: cn("text-xs cursor-pointer", sortBy === "name" && "font-bold text-primary"),
12414
+ children: "File Name (A-Z)"
12415
+ }
12416
+ ),
12417
+ /* @__PURE__ */ (0, import_jsx_runtime98.jsx)(
12418
+ DropdownMenuItem,
12419
+ {
12420
+ onClick: () => setSortBy("size"),
12421
+ className: cn("text-xs cursor-pointer", sortBy === "size" && "font-bold text-primary"),
12422
+ children: "File Size"
12423
+ }
12424
+ ),
12425
+ /* @__PURE__ */ (0, import_jsx_runtime98.jsx)(DropdownMenuSeparator, {}),
12426
+ /* @__PURE__ */ (0, import_jsx_runtime98.jsxs)(
12427
+ DropdownMenuItem,
12428
+ {
12429
+ onClick: () => setSortOrder((prev) => prev === "asc" ? "desc" : "asc"),
12430
+ className: "text-xs cursor-pointer",
12431
+ children: [
12432
+ "Order: ",
12433
+ sortOrder === "asc" ? "Ascending \u2191" : "Descending \u2193"
12434
+ ]
12435
+ }
12436
+ )
12437
+ ] })
12438
+ ] }),
12439
+ /* @__PURE__ */ (0, import_jsx_runtime98.jsxs)("div", { className: "flex items-center rounded-xl bg-muted/50 p-0.5 border border-border/60", children: [
12440
+ /* @__PURE__ */ (0, import_jsx_runtime98.jsx)(
12441
+ "button",
12442
+ {
12443
+ type: "button",
12444
+ onClick: () => setViewMode("grid"),
12445
+ className: cn(
12446
+ "flex h-7 w-7 items-center justify-center rounded-lg transition-all cursor-pointer",
12447
+ viewMode === "grid" ? "bg-background text-foreground shadow-2xs font-bold" : "text-muted-foreground hover:text-foreground"
12448
+ ),
12449
+ title: "Grid View",
12450
+ children: /* @__PURE__ */ (0, import_jsx_runtime98.jsx)(import_lucide_react52.LayoutGrid, { className: "h-3.5 w-3.5" })
12451
+ }
12452
+ ),
12453
+ /* @__PURE__ */ (0, import_jsx_runtime98.jsx)(
12454
+ "button",
12455
+ {
12456
+ type: "button",
12457
+ onClick: () => setViewMode("table"),
12458
+ className: cn(
12459
+ "flex h-7 w-7 items-center justify-center rounded-lg transition-all cursor-pointer",
12460
+ viewMode === "table" ? "bg-background text-foreground shadow-2xs font-bold" : "text-muted-foreground hover:text-foreground"
12461
+ ),
12462
+ title: "Table View",
12463
+ children: /* @__PURE__ */ (0, import_jsx_runtime98.jsx)(import_lucide_react52.Table, { className: "h-3.5 w-3.5" })
12464
+ }
12465
+ )
12466
+ ] })
12467
+ ] })
12468
+ ] }),
12469
+ /* @__PURE__ */ (0, import_jsx_runtime98.jsx)("div", { className: "flex items-center gap-1.5 overflow-x-auto scrollbar-none pb-0.5", children: CATEGORY_TABS.map((tab) => /* @__PURE__ */ (0, import_jsx_runtime98.jsx)(
12470
+ "button",
12471
+ {
12472
+ type: "button",
12473
+ onClick: () => {
12474
+ setSelectedCategory(tab.value);
12475
+ setCurrentPage(1);
12476
+ },
12477
+ className: cn(
12478
+ "rounded-lg px-2.5 py-1 text-xs font-semibold whitespace-nowrap transition-all duration-200 cursor-pointer border",
12479
+ selectedCategory === tab.value ? "bg-indigo-600 text-white border-indigo-600 shadow-2xs" : "bg-background border-border/80 text-muted-foreground hover:text-foreground hover:bg-muted/40"
12480
+ ),
12481
+ children: tab.label
12482
+ },
12483
+ tab.value
12484
+ )) })
12485
+ ] }),
12486
+ selectedIds.size > 0 && /* @__PURE__ */ (0, import_jsx_runtime98.jsxs)("div", { className: "flex items-center justify-between bg-indigo-500/10 border-b border-indigo-200/40 px-4 py-2 text-xs", children: [
12487
+ /* @__PURE__ */ (0, import_jsx_runtime98.jsxs)("span", { className: "font-semibold text-indigo-700 dark:text-indigo-300", children: [
12488
+ selectedIds.size,
12489
+ " files selected"
12490
+ ] }),
12491
+ /* @__PURE__ */ (0, import_jsx_runtime98.jsxs)("div", { className: "flex items-center gap-2", children: [
12492
+ /* @__PURE__ */ (0, import_jsx_runtime98.jsxs)(
12493
+ Button,
12494
+ {
12495
+ size: "sm",
12496
+ variant: "outline",
12497
+ onClick: handleBulkDownload,
12498
+ className: "h-7 text-xs gap-1 bg-background",
12499
+ children: [
12500
+ /* @__PURE__ */ (0, import_jsx_runtime98.jsx)(import_lucide_react52.Download, { className: "h-3 w-3" }),
12501
+ /* @__PURE__ */ (0, import_jsx_runtime98.jsx)("span", { children: "Download" })
12502
+ ]
12503
+ }
12504
+ ),
12505
+ onDeleteFile && /* @__PURE__ */ (0, import_jsx_runtime98.jsxs)(
12506
+ Button,
12507
+ {
12508
+ size: "sm",
12509
+ variant: "destructive",
12510
+ onClick: handleBulkDelete,
12511
+ className: "h-7 text-xs gap-1",
12512
+ children: [
12513
+ /* @__PURE__ */ (0, import_jsx_runtime98.jsx)(import_lucide_react52.Trash2, { className: "h-3 w-3" }),
12514
+ /* @__PURE__ */ (0, import_jsx_runtime98.jsx)("span", { children: "Delete" })
12515
+ ]
12516
+ }
12517
+ ),
12518
+ /* @__PURE__ */ (0, import_jsx_runtime98.jsx)(
12519
+ Button,
12520
+ {
12521
+ size: "sm",
12522
+ variant: "ghost",
12523
+ onClick: () => setSelectedIds(/* @__PURE__ */ new Set()),
12524
+ className: "h-7 text-xs",
12525
+ children: "Clear"
12526
+ }
12527
+ )
12528
+ ] })
12529
+ ] }),
12530
+ /* @__PURE__ */ (0, import_jsx_runtime98.jsx)("div", { className: "min-h-0 flex-1 overflow-y-auto p-4", children: paginatedFiles.length === 0 ? /* @__PURE__ */ (0, import_jsx_runtime98.jsxs)("div", { className: "flex h-64 flex-col items-center justify-center gap-3 text-center text-muted-foreground border-2 border-dashed border-border/60 rounded-2xl bg-muted/5 p-8", children: [
12531
+ /* @__PURE__ */ (0, import_jsx_runtime98.jsx)(import_lucide_react52.FolderOpen, { className: "h-10 w-10 text-muted-foreground/40" }),
12532
+ /* @__PURE__ */ (0, import_jsx_runtime98.jsxs)("div", { children: [
12533
+ /* @__PURE__ */ (0, import_jsx_runtime98.jsx)("p", { className: "text-sm font-bold text-foreground", children: "No files found" }),
12534
+ /* @__PURE__ */ (0, import_jsx_runtime98.jsx)("p", { className: "text-xs text-muted-foreground mt-0.5", children: searchQuery ? "No documents match your search criteria" : "This folder is currently empty. Upload your first document." })
12535
+ ] }),
12536
+ onUploadClick && /* @__PURE__ */ (0, import_jsx_runtime98.jsxs)(Button, { size: "sm", onClick: onUploadClick, className: "gap-1.5 text-xs mt-2", children: [
12537
+ /* @__PURE__ */ (0, import_jsx_runtime98.jsx)(import_lucide_react52.Upload, { className: "h-3.5 w-3.5" }),
12538
+ /* @__PURE__ */ (0, import_jsx_runtime98.jsx)("span", { children: "Upload New File" })
12539
+ ] })
12540
+ ] }) : viewMode === "grid" ? /* @__PURE__ */ (0, import_jsx_runtime98.jsx)("div", { className: "grid grid-cols-1 sm:grid-cols-2 md:grid-cols-3 lg:grid-cols-4 gap-3.5", children: paginatedFiles.map((file) => /* @__PURE__ */ (0, import_jsx_runtime98.jsx)(
12541
+ FileCardItem,
12542
+ {
12543
+ file,
12544
+ isSelected: file.id === selectedFileId || selectedIds.has(file.id),
12545
+ viewMode: "grid",
12546
+ onSelect: () => onSelectFileForPreview?.(file),
12547
+ onPreview: () => onSelectFileForPreview?.(file),
12548
+ onDownload: () => onDownloadFile?.(file),
12549
+ onCopyLink: () => onCopyLink?.(file),
12550
+ onRename: () => onRenameFile?.(file),
12551
+ onDelete: () => onDeleteFile?.(file),
12552
+ onShare: () => onShareFile?.(file)
12553
+ },
12554
+ file.id
12555
+ )) }) : /* @__PURE__ */ (0, import_jsx_runtime98.jsx)("div", { className: "overflow-hidden rounded-2xl border border-border/80 bg-card shadow-2xs", children: /* @__PURE__ */ (0, import_jsx_runtime98.jsxs)("table", { className: "w-full text-left text-xs border-collapse", children: [
12556
+ /* @__PURE__ */ (0, import_jsx_runtime98.jsx)("thead", { className: "border-b border-border/80 bg-muted/30 text-muted-foreground font-bold", children: /* @__PURE__ */ (0, import_jsx_runtime98.jsxs)("tr", { children: [
12557
+ /* @__PURE__ */ (0, import_jsx_runtime98.jsx)("th", { className: "py-2.5 px-4", children: "Name" }),
12558
+ /* @__PURE__ */ (0, import_jsx_runtime98.jsx)("th", { className: "py-2.5 px-4", children: "Category" }),
12559
+ /* @__PURE__ */ (0, import_jsx_runtime98.jsx)("th", { className: "py-2.5 px-4", children: "Size" }),
12560
+ /* @__PURE__ */ (0, import_jsx_runtime98.jsx)("th", { className: "py-2.5 px-4 hidden sm:table-cell", children: "Updated" }),
12561
+ /* @__PURE__ */ (0, import_jsx_runtime98.jsx)("th", { className: "py-2.5 px-4 text-right", children: "Actions" })
12562
+ ] }) }),
12563
+ /* @__PURE__ */ (0, import_jsx_runtime98.jsx)("tbody", { children: paginatedFiles.map((file) => /* @__PURE__ */ (0, import_jsx_runtime98.jsx)(
12564
+ FileCardItem,
12565
+ {
12566
+ file,
12567
+ isSelected: file.id === selectedFileId || selectedIds.has(file.id),
12568
+ viewMode: "table",
12569
+ onSelect: () => onSelectFileForPreview?.(file),
12570
+ onPreview: () => onSelectFileForPreview?.(file),
12571
+ onDownload: () => onDownloadFile?.(file),
12572
+ onCopyLink: () => onCopyLink?.(file),
12573
+ onRename: () => onRenameFile?.(file),
12574
+ onDelete: () => onDeleteFile?.(file),
12575
+ onShare: () => onShareFile?.(file)
12576
+ },
12577
+ file.id
12578
+ )) })
12579
+ ] }) }) }),
12580
+ totalPages > 1 && /* @__PURE__ */ (0, import_jsx_runtime98.jsxs)("div", { className: "flex items-center justify-between border-t border-border bg-background px-4 py-2.5 shrink-0 text-xs text-muted-foreground", children: [
12581
+ /* @__PURE__ */ (0, import_jsx_runtime98.jsxs)("span", { children: [
12582
+ "Showing ",
12583
+ (currentPage - 1) * itemsPerPage + 1,
12584
+ " -",
12585
+ " ",
12586
+ Math.min(currentPage * itemsPerPage, sortedFiles.length),
12587
+ " of ",
12588
+ sortedFiles.length
12589
+ ] }),
12590
+ /* @__PURE__ */ (0, import_jsx_runtime98.jsxs)("div", { className: "flex items-center gap-1", children: [
12591
+ /* @__PURE__ */ (0, import_jsx_runtime98.jsx)(
12592
+ Button,
12593
+ {
12594
+ variant: "outline",
12595
+ size: "sm",
12596
+ onClick: () => setCurrentPage((p) => Math.max(1, p - 1)),
12597
+ disabled: currentPage === 1,
12598
+ className: "h-7 w-7 p-0 rounded-lg",
12599
+ children: /* @__PURE__ */ (0, import_jsx_runtime98.jsx)(import_lucide_react52.ChevronLeft, { className: "h-3.5 w-3.5" })
12600
+ }
12601
+ ),
12602
+ /* @__PURE__ */ (0, import_jsx_runtime98.jsxs)("span", { className: "px-2 font-mono font-bold text-foreground", children: [
12603
+ currentPage,
12604
+ " / ",
12605
+ totalPages
12606
+ ] }),
12607
+ /* @__PURE__ */ (0, import_jsx_runtime98.jsx)(
12608
+ Button,
12609
+ {
12610
+ variant: "outline",
12611
+ size: "sm",
12612
+ onClick: () => setCurrentPage((p) => Math.min(totalPages, p + 1)),
12613
+ disabled: currentPage === totalPages,
12614
+ className: "h-7 w-7 p-0 rounded-lg",
12615
+ children: /* @__PURE__ */ (0, import_jsx_runtime98.jsx)(import_lucide_react52.ChevronRight, { className: "h-3.5 w-3.5" })
12616
+ }
12617
+ )
12618
+ ] })
12619
+ ] })
12620
+ ]
12621
+ }
12622
+ );
12623
+ }
12624
+
12625
+ // src/design-system/components/files/file-upload-form.tsx
12626
+ var import_react19 = require("react");
12627
+ var import_lucide_react53 = require("lucide-react");
12628
+ var import_jsx_runtime99 = require("react/jsx-runtime");
12629
+ var TEMPLATE_OPTIONS = [
12630
+ { id: "1", name: "Standard Document" },
12631
+ { id: "2", name: "Financial Invoice" },
12632
+ { id: "3", name: "Report & Spreadsheet" },
12633
+ { id: "4", name: "Contract & Legal" }
12634
+ ];
12635
+ var FOLDER_OPTIONS = ["Finance", "Chat", "Files", "Email", "AI Chat", "Order"];
12636
+ var SUB_FOLDER_OPTIONS = [
12637
+ "Pdf",
12638
+ "Doc",
12639
+ "Xls",
12640
+ "Images",
12641
+ "Videos",
12642
+ "Ppt",
12643
+ "Txt",
12644
+ "Csv",
12645
+ "Zip",
12646
+ "Other"
12647
+ ];
12648
+ function FileUploadForm({
12649
+ userEmail,
12650
+ folders,
12651
+ initialSubject = "",
12652
+ initialFolder = "Finance",
12653
+ initialSubFolder = "Pdf",
12654
+ onClose,
12655
+ onSave,
12656
+ onUploadSuccess,
12657
+ onPreviewAttachment,
12658
+ className
12659
+ }) {
12660
+ const [template, setTemplate] = (0, import_react19.useState)(TEMPLATE_OPTIONS[0].id);
12661
+ const [subject, setSubject] = (0, import_react19.useState)(initialSubject);
12662
+ const [folder, setFolder] = (0, import_react19.useState)(initialFolder);
12663
+ const [subFolder, setSubFolder] = (0, import_react19.useState)(initialSubFolder);
12664
+ const [remarks, setRemarks] = (0, import_react19.useState)("");
12665
+ const [body, setBody] = (0, import_react19.useState)("");
12666
+ const [attachments, setAttachments] = (0, import_react19.useState)([]);
12667
+ const [isSaving, setIsSaving] = (0, import_react19.useState)(false);
12668
+ const fileInputRef = (0, import_react19.useRef)(null);
12669
+ const handleFileChange = (e) => {
12670
+ const files = e.target.files;
12671
+ if (!files || files.length === 0) return;
12672
+ const newAttachments = Array.from(files).map((f) => ({
12673
+ id: `att-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`,
12674
+ name: f.name,
12675
+ type: f.type || "application/octet-stream",
12676
+ size: formatBytes(f.size),
12677
+ url: URL.createObjectURL(f),
12678
+ fileObj: f,
12679
+ progress: 100
12680
+ }));
12681
+ setAttachments((prev) => [...prev, ...newAttachments]);
12682
+ if (fileInputRef.current) fileInputRef.current.value = "";
12683
+ };
12684
+ const handleRemoveAttachment = (id) => {
12685
+ setAttachments((prev) => prev.filter((a) => a.id !== id));
12686
+ };
12687
+ const handleFormSubmit = async (e) => {
12688
+ e.preventDefault();
12689
+ setIsSaving(true);
12690
+ try {
12691
+ if (onSave) {
12692
+ await onSave({
12693
+ subject,
12694
+ folder,
12695
+ subFolder,
12696
+ remarks,
12697
+ body,
12698
+ attachments
12699
+ });
12700
+ }
12701
+ onUploadSuccess?.();
12702
+ } finally {
12703
+ setIsSaving(false);
12704
+ }
12705
+ };
12706
+ return /* @__PURE__ */ (0, import_jsx_runtime99.jsxs)(
12707
+ "div",
12708
+ {
12709
+ className: cn(
12710
+ "flex h-full min-h-0 w-full flex-1 flex-col overflow-hidden bg-background select-none",
12711
+ className
12712
+ ),
12713
+ children: [
12714
+ /* @__PURE__ */ (0, import_jsx_runtime99.jsxs)("div", { className: "flex items-center justify-between border-b border-border bg-background px-4 py-3 shrink-0", children: [
12715
+ /* @__PURE__ */ (0, import_jsx_runtime99.jsxs)("div", { className: "flex items-center gap-2.5 min-w-0", children: [
12716
+ onClose && /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(
12717
+ "button",
12718
+ {
12719
+ type: "button",
12720
+ onClick: onClose,
12721
+ className: "flex h-8 w-8 items-center justify-center rounded-xl text-muted-foreground hover:bg-muted hover:text-foreground transition-colors cursor-pointer",
12722
+ title: "Back",
12723
+ children: /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(import_lucide_react53.ArrowLeft, { className: "h-4 w-4" })
12724
+ }
12725
+ ),
12726
+ /* @__PURE__ */ (0, import_jsx_runtime99.jsx)("div", { className: "flex h-10 w-10 items-center justify-center rounded-xl bg-indigo-500/10 text-indigo-600 dark:text-indigo-400 border border-indigo-200/50 shrink-0 shadow-2xs", children: /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(import_lucide_react53.FileText, { className: "h-5 w-5" }) }),
12727
+ /* @__PURE__ */ (0, import_jsx_runtime99.jsxs)("div", { className: "min-w-0", children: [
12728
+ /* @__PURE__ */ (0, import_jsx_runtime99.jsx)("h2", { className: "truncate text-sm font-bold text-foreground tracking-tight", children: "Create & Upload Document" }),
12729
+ /* @__PURE__ */ (0, import_jsx_runtime99.jsx)("p", { className: "truncate text-xs text-muted-foreground", children: "Add metadata, descriptions, and attach files to your cloud storage" })
12730
+ ] })
12731
+ ] }),
12732
+ /* @__PURE__ */ (0, import_jsx_runtime99.jsxs)("div", { className: "flex items-center gap-2 shrink-0", children: [
12733
+ onClose && /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(Button, { variant: "ghost", size: "sm", onClick: onClose, className: "h-8 text-xs", children: "Cancel" }),
12734
+ /* @__PURE__ */ (0, import_jsx_runtime99.jsxs)(
12735
+ Button,
12736
+ {
12737
+ size: "sm",
12738
+ onClick: handleFormSubmit,
12739
+ disabled: isSaving || !subject && attachments.length === 0,
12740
+ className: "h-8 gap-1.5 text-xs font-semibold shadow-xs bg-indigo-600 hover:bg-indigo-700 text-white",
12741
+ children: [
12742
+ isSaving ? /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(import_lucide_react53.Loader2, { className: "h-3.5 w-3.5 animate-spin" }) : /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(import_lucide_react53.Save, { className: "h-3.5 w-3.5" }),
12743
+ /* @__PURE__ */ (0, import_jsx_runtime99.jsx)("span", { children: "Save & Upload" })
12744
+ ]
12745
+ }
12746
+ )
12747
+ ] })
12748
+ ] }),
12749
+ /* @__PURE__ */ (0, import_jsx_runtime99.jsxs)("div", { className: "min-h-0 flex-1 overflow-y-auto p-4 space-y-4", children: [
12750
+ /* @__PURE__ */ (0, import_jsx_runtime99.jsxs)("div", { className: "grid grid-cols-1 sm:grid-cols-3 gap-3 p-3.5 rounded-2xl border border-border/80 bg-muted/10", children: [
12751
+ /* @__PURE__ */ (0, import_jsx_runtime99.jsxs)("div", { className: "space-y-1.5", children: [
12752
+ /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(Label, { className: "text-xs font-semibold text-foreground", children: "Document Template" }),
12753
+ /* @__PURE__ */ (0, import_jsx_runtime99.jsxs)(Select, { value: template, onValueChange: setTemplate, children: [
12754
+ /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(SelectTrigger, { className: "h-8.5 text-xs rounded-xl bg-background border-border/80", children: /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(SelectValue, { placeholder: "Select template" }) }),
12755
+ /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(SelectContent, { className: "rounded-xl shadow-lg", children: TEMPLATE_OPTIONS.map((t) => /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(SelectItem, { value: t.id, className: "text-xs", children: t.name }, t.id)) })
12756
+ ] })
12757
+ ] }),
12758
+ /* @__PURE__ */ (0, import_jsx_runtime99.jsxs)("div", { className: "space-y-1.5", children: [
12759
+ /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(Label, { className: "text-xs font-semibold text-foreground", children: "Target Space" }),
12760
+ /* @__PURE__ */ (0, import_jsx_runtime99.jsxs)(Select, { value: folder, onValueChange: setFolder, children: [
12761
+ /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(SelectTrigger, { className: "h-8.5 text-xs rounded-xl bg-background border-border/80", children: /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(SelectValue, { placeholder: "Select space" }) }),
12762
+ /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(SelectContent, { className: "rounded-xl shadow-lg", children: (folders || FOLDER_OPTIONS.map((f) => ({ id: f, name: f }))).map((f) => /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(SelectItem, { value: f.name, className: "text-xs", children: f.name }, f.id)) })
12763
+ ] })
12764
+ ] }),
12765
+ /* @__PURE__ */ (0, import_jsx_runtime99.jsxs)("div", { className: "space-y-1.5", children: [
12766
+ /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(Label, { className: "text-xs font-semibold text-foreground", children: "Category Subfolder" }),
12767
+ /* @__PURE__ */ (0, import_jsx_runtime99.jsxs)(Select, { value: subFolder, onValueChange: setSubFolder, children: [
12768
+ /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(SelectTrigger, { className: "h-8.5 text-xs rounded-xl bg-background border-border/80", children: /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(SelectValue, { placeholder: "Select category" }) }),
12769
+ /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(SelectContent, { className: "rounded-xl shadow-lg", children: SUB_FOLDER_OPTIONS.map((cat) => /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(SelectItem, { value: cat, className: "text-xs", children: cat }, cat)) })
12770
+ ] })
12771
+ ] })
12772
+ ] }),
12773
+ /* @__PURE__ */ (0, import_jsx_runtime99.jsxs)("div", { className: "space-y-1.5", children: [
12774
+ /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(Label, { className: "text-xs font-semibold text-foreground", children: "Document Title / Subject" }),
12775
+ /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(
12776
+ Input,
12777
+ {
12778
+ value: subject,
12779
+ onChange: (e) => setSubject(e.target.value),
12780
+ placeholder: "e.g. Q3 Sales & Performance Report",
12781
+ className: "h-9 text-xs rounded-xl bg-background border-border/80"
12782
+ }
12783
+ )
12784
+ ] }),
12785
+ /* @__PURE__ */ (0, import_jsx_runtime99.jsxs)("div", { className: "space-y-1.5", children: [
12786
+ /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(Label, { className: "text-xs font-semibold text-foreground", children: "Document Content / Notes" }),
12787
+ /* @__PURE__ */ (0, import_jsx_runtime99.jsxs)("div", { className: "rounded-2xl border border-border/80 overflow-hidden bg-background", children: [
12788
+ /* @__PURE__ */ (0, import_jsx_runtime99.jsxs)("div", { className: "flex items-center gap-1 border-b border-border/60 bg-muted/20 p-1.5", children: [
12789
+ /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(
12790
+ "button",
12791
+ {
12792
+ type: "button",
12793
+ className: "p-1.5 rounded-lg hover:bg-muted text-muted-foreground hover:text-foreground",
12794
+ title: "Bold",
12795
+ children: /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(import_lucide_react53.Bold, { className: "h-3.5 w-3.5" })
12796
+ }
12797
+ ),
12798
+ /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(
12799
+ "button",
12800
+ {
12801
+ type: "button",
12802
+ className: "p-1.5 rounded-lg hover:bg-muted text-muted-foreground hover:text-foreground",
12803
+ title: "Italic",
12804
+ children: /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(import_lucide_react53.Italic, { className: "h-3.5 w-3.5" })
12805
+ }
12806
+ ),
12807
+ /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(
12808
+ "button",
12809
+ {
12810
+ type: "button",
12811
+ className: "p-1.5 rounded-lg hover:bg-muted text-muted-foreground hover:text-foreground",
12812
+ title: "Underline",
12813
+ children: /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(import_lucide_react53.Underline, { className: "h-3.5 w-3.5" })
12814
+ }
12815
+ ),
12816
+ /* @__PURE__ */ (0, import_jsx_runtime99.jsx)("div", { className: "h-4 w-px bg-border/80 mx-1" }),
12817
+ /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(
12818
+ "button",
12819
+ {
12820
+ type: "button",
12821
+ className: "p-1.5 rounded-lg hover:bg-muted text-muted-foreground hover:text-foreground",
12822
+ title: "Bullet List",
12823
+ children: /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(import_lucide_react53.List, { className: "h-3.5 w-3.5" })
12824
+ }
12825
+ ),
12826
+ /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(
12827
+ "button",
12828
+ {
12829
+ type: "button",
12830
+ className: "p-1.5 rounded-lg hover:bg-muted text-muted-foreground hover:text-foreground",
12831
+ title: "Numbered List",
12832
+ children: /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(import_lucide_react53.ListOrdered, { className: "h-3.5 w-3.5" })
12833
+ }
12834
+ ),
12835
+ /* @__PURE__ */ (0, import_jsx_runtime99.jsx)("div", { className: "h-4 w-px bg-border/80 mx-1" }),
12836
+ /* @__PURE__ */ (0, import_jsx_runtime99.jsxs)(
12837
+ "button",
12838
+ {
12839
+ type: "button",
12840
+ onClick: () => fileInputRef.current?.click(),
12841
+ className: "p-1.5 rounded-lg hover:bg-muted text-indigo-600 dark:text-indigo-400 font-semibold flex items-center gap-1 text-xs",
12842
+ title: "Attach Files",
12843
+ children: [
12844
+ /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(import_lucide_react53.Paperclip, { className: "h-3.5 w-3.5" }),
12845
+ /* @__PURE__ */ (0, import_jsx_runtime99.jsx)("span", { children: "Attach" })
12846
+ ]
12847
+ }
12848
+ )
12849
+ ] }),
12850
+ /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(
12851
+ "textarea",
12852
+ {
12853
+ value: body,
12854
+ onChange: (e) => setBody(e.target.value),
12855
+ placeholder: "Write or paste your document notes and text here...",
12856
+ rows: 4,
12857
+ className: "w-full p-3 text-xs bg-transparent border-0 focus:outline-hidden resize-y min-h-[90px]"
12858
+ }
12859
+ )
12860
+ ] })
12861
+ ] }),
12862
+ /* @__PURE__ */ (0, import_jsx_runtime99.jsxs)("div", { className: "space-y-2", children: [
12863
+ /* @__PURE__ */ (0, import_jsx_runtime99.jsxs)("div", { className: "flex items-center justify-between", children: [
12864
+ /* @__PURE__ */ (0, import_jsx_runtime99.jsxs)(Label, { className: "text-xs font-semibold text-foreground", children: [
12865
+ "Attachments (",
12866
+ attachments.length,
12867
+ ")"
12868
+ ] }),
12869
+ /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(
12870
+ "input",
12871
+ {
12872
+ type: "file",
12873
+ multiple: true,
12874
+ ref: fileInputRef,
12875
+ onChange: handleFileChange,
12876
+ className: "hidden"
12877
+ }
12878
+ ),
12879
+ /* @__PURE__ */ (0, import_jsx_runtime99.jsxs)(
12880
+ Button,
12881
+ {
12882
+ type: "button",
12883
+ variant: "outline",
12884
+ size: "sm",
12885
+ onClick: () => fileInputRef.current?.click(),
12886
+ className: "h-7 text-xs gap-1.5 rounded-xl border-dashed",
12887
+ children: [
12888
+ /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(import_lucide_react53.Paperclip, { className: "h-3 w-3" }),
12889
+ /* @__PURE__ */ (0, import_jsx_runtime99.jsx)("span", { children: "Browse Files" })
12890
+ ]
12891
+ }
12892
+ )
12893
+ ] }),
12894
+ attachments.length === 0 ? /* @__PURE__ */ (0, import_jsx_runtime99.jsxs)(
12895
+ "div",
12896
+ {
12897
+ onClick: () => fileInputRef.current?.click(),
12898
+ className: "flex flex-col items-center justify-center gap-2 p-6 border-2 border-dashed border-border/80 rounded-2xl bg-muted/10 text-muted-foreground hover:border-indigo-400 hover:bg-indigo-50/20 dark:hover:bg-indigo-950/20 transition-all cursor-pointer text-center",
12899
+ children: [
12900
+ /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(import_lucide_react53.UploadCloud, { className: "h-8 w-8 text-indigo-500" }),
12901
+ /* @__PURE__ */ (0, import_jsx_runtime99.jsxs)("div", { children: [
12902
+ /* @__PURE__ */ (0, import_jsx_runtime99.jsx)("p", { className: "text-xs font-bold text-foreground", children: "Click to upload or drag and drop" }),
12903
+ /* @__PURE__ */ (0, import_jsx_runtime99.jsx)("p", { className: "text-[11px] text-muted-foreground mt-0.5", children: "PDF, DOCX, XLSX, PNG, JPG, MP4 or ZIP up to 50MB" })
12904
+ ] })
12905
+ ]
12906
+ }
12907
+ ) : /* @__PURE__ */ (0, import_jsx_runtime99.jsx)("div", { className: "grid grid-cols-1 sm:grid-cols-2 gap-2", children: attachments.map((att) => /* @__PURE__ */ (0, import_jsx_runtime99.jsxs)(
12908
+ "div",
12909
+ {
12910
+ className: "flex items-center justify-between gap-2 p-2.5 rounded-xl border border-border/80 bg-card shadow-2xs",
12911
+ children: [
12912
+ /* @__PURE__ */ (0, import_jsx_runtime99.jsxs)("div", { className: "flex items-center gap-2.5 min-w-0", children: [
12913
+ /* @__PURE__ */ (0, import_jsx_runtime99.jsx)("div", { className: "flex h-8 w-8 items-center justify-center rounded-lg bg-indigo-500/10 text-indigo-600 shrink-0", children: /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(import_lucide_react53.FileText, { className: "h-4 w-4" }) }),
12914
+ /* @__PURE__ */ (0, import_jsx_runtime99.jsxs)("div", { className: "min-w-0", children: [
12915
+ /* @__PURE__ */ (0, import_jsx_runtime99.jsx)("p", { className: "truncate text-xs font-semibold text-foreground", children: att.name }),
12916
+ /* @__PURE__ */ (0, import_jsx_runtime99.jsx)("p", { className: "text-[10px] text-muted-foreground font-mono", children: att.size })
12917
+ ] })
12918
+ ] }),
12919
+ /* @__PURE__ */ (0, import_jsx_runtime99.jsxs)("div", { className: "flex items-center gap-1 shrink-0", children: [
12920
+ onPreviewAttachment && att.url && /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(
12921
+ "button",
12922
+ {
12923
+ type: "button",
12924
+ onClick: () => onPreviewAttachment({ name: att.name, url: att.url }),
12925
+ className: "p-1 rounded-lg hover:bg-muted text-muted-foreground hover:text-foreground",
12926
+ title: "Preview",
12927
+ children: /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(import_lucide_react53.Eye, { className: "h-3.5 w-3.5" })
12928
+ }
12929
+ ),
12930
+ /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(
12931
+ "button",
12932
+ {
12933
+ type: "button",
12934
+ onClick: () => handleRemoveAttachment(att.id),
12935
+ className: "p-1 rounded-lg hover:bg-rose-50 dark:hover:bg-rose-950/30 text-rose-500 hover:text-rose-600",
12936
+ title: "Remove",
12937
+ children: /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(import_lucide_react53.X, { className: "h-3.5 w-3.5" })
12938
+ }
12939
+ )
12940
+ ] })
12941
+ ]
12942
+ },
12943
+ att.id
12944
+ )) })
12945
+ ] }),
12946
+ /* @__PURE__ */ (0, import_jsx_runtime99.jsxs)("div", { className: "space-y-1.5", children: [
12947
+ /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(Label, { className: "text-xs font-semibold text-foreground", children: "Remarks / Tags" }),
12948
+ /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(
12949
+ Input,
12950
+ {
12951
+ value: remarks,
12952
+ onChange: (e) => setRemarks(e.target.value),
12953
+ placeholder: "e.g. Confidential, Q3 Approved, Client Copy",
12954
+ className: "h-8.5 text-xs rounded-xl bg-background border-border/80"
12955
+ }
12956
+ )
12957
+ ] })
12958
+ ] })
12959
+ ]
12960
+ }
12961
+ );
12962
+ }
12963
+
12964
+ // src/design-system/templates/list-template.tsx
12965
+ var import_jsx_runtime100 = require("react/jsx-runtime");
12966
+ function ListTemplate({
12967
+ title,
12968
+ description,
12969
+ badge,
12970
+ breadcrumbs,
12971
+ actions,
12972
+ searchPlaceholder,
12973
+ searchValue,
12974
+ onSearchChange,
12975
+ filters,
12976
+ activeFilters,
12977
+ onClearAllFilters,
12978
+ filterActions,
12979
+ children,
12980
+ footer,
12981
+ className,
12982
+ ...props
12983
+ }) {
12984
+ const hasFilterBar = Boolean(onSearchChange) || Boolean(filters) || activeFilters && activeFilters.length > 0 || Boolean(filterActions);
12985
+ return /* @__PURE__ */ (0, import_jsx_runtime100.jsxs)("div", { className: cn("flex flex-col gap-6 p-4 sm:p-6 md:p-8", className), ...props, children: [
12986
+ /* @__PURE__ */ (0, import_jsx_runtime100.jsx)(
12987
+ PageHeader,
12988
+ {
12989
+ title,
12990
+ description,
12991
+ badge,
12992
+ breadcrumbs,
12993
+ actions
12994
+ }
12995
+ ),
12996
+ hasFilterBar && /* @__PURE__ */ (0, import_jsx_runtime100.jsx)(
12997
+ FilterBar,
12998
+ {
12999
+ searchPlaceholder,
13000
+ searchValue,
13001
+ onSearchChange,
13002
+ filters,
13003
+ activeFilters,
13004
+ onClearAll: onClearAllFilters,
13005
+ actions: filterActions
13006
+ }
13007
+ ),
13008
+ /* @__PURE__ */ (0, import_jsx_runtime100.jsx)("div", { className: "flex-1", children }),
13009
+ footer && /* @__PURE__ */ (0, import_jsx_runtime100.jsx)("div", { className: "pt-2", children: footer })
13010
+ ] });
13011
+ }
13012
+
13013
+ // src/design-system/templates/detail-template.tsx
13014
+ var import_lucide_react54 = require("lucide-react");
13015
+ var import_jsx_runtime101 = require("react/jsx-runtime");
13016
+ function DetailTemplate({
13017
+ title,
13018
+ description,
13019
+ badge,
13020
+ breadcrumbs,
13021
+ actions,
13022
+ onBack,
13023
+ backLabel = "Back",
13024
+ highlights,
13025
+ sidebar,
13026
+ children,
13027
+ className,
13028
+ ...props
13029
+ }) {
13030
+ return /* @__PURE__ */ (0, import_jsx_runtime101.jsxs)("div", { className: cn("flex flex-col gap-6 p-4 sm:p-6 md:p-8", className), ...props, children: [
13031
+ /* @__PURE__ */ (0, import_jsx_runtime101.jsxs)("div", { className: "flex flex-col gap-2", children: [
13032
+ onBack && /* @__PURE__ */ (0, import_jsx_runtime101.jsxs)(
13033
+ Button,
13034
+ {
13035
+ variant: "ghost",
13036
+ size: "sm",
13037
+ onClick: onBack,
13038
+ className: "w-fit gap-1.5 px-0 text-xs text-muted-foreground hover:bg-transparent hover:text-foreground",
13039
+ children: [
13040
+ /* @__PURE__ */ (0, import_jsx_runtime101.jsx)(import_lucide_react54.ArrowLeft, { className: "h-3.5 w-3.5" }),
13041
+ backLabel
13042
+ ]
13043
+ }
13044
+ ),
13045
+ /* @__PURE__ */ (0, import_jsx_runtime101.jsx)(
13046
+ PageHeader,
13047
+ {
13048
+ title,
13049
+ description,
13050
+ badge,
13051
+ breadcrumbs,
13052
+ actions
13053
+ }
13054
+ )
13055
+ ] }),
13056
+ highlights && /* @__PURE__ */ (0, import_jsx_runtime101.jsx)("div", { className: "grid gap-4 sm:grid-cols-2 lg:grid-cols-4", children: highlights }),
13057
+ /* @__PURE__ */ (0, import_jsx_runtime101.jsxs)(
13058
+ "div",
13059
+ {
13060
+ className: cn(
13061
+ "grid gap-6",
13062
+ sidebar ? "grid-cols-1 lg:grid-cols-3" : "grid-cols-1"
13063
+ ),
13064
+ children: [
13065
+ /* @__PURE__ */ (0, import_jsx_runtime101.jsx)("div", { className: cn(sidebar ? "lg:col-span-2 space-y-6" : "space-y-6"), children }),
13066
+ sidebar && /* @__PURE__ */ (0, import_jsx_runtime101.jsx)("aside", { className: "space-y-6 lg:col-span-1", children: sidebar })
13067
+ ]
13068
+ }
13069
+ )
13070
+ ] });
13071
+ }
13072
+
13073
+ // src/design-system/templates/form-template.tsx
13074
+ var import_lucide_react55 = require("lucide-react");
13075
+ var import_jsx_runtime102 = require("react/jsx-runtime");
13076
+ function FormTemplate({
13077
+ title,
13078
+ description,
13079
+ badge,
13080
+ breadcrumbs,
13081
+ onBack,
13082
+ backLabel = "Back",
13083
+ submitLabel = "Save changes",
13084
+ cancelLabel = "Cancel",
13085
+ onCancel,
13086
+ isSubmitting = false,
13087
+ stickyFooter = false,
13088
+ secondaryActions,
13089
+ children,
13090
+ className,
13091
+ onSubmit,
13092
+ ...props
13093
+ }) {
13094
+ return /* @__PURE__ */ (0, import_jsx_runtime102.jsxs)("div", { className: "flex flex-col gap-6 p-4 sm:p-6 md:p-8", children: [
13095
+ /* @__PURE__ */ (0, import_jsx_runtime102.jsxs)("div", { className: "flex flex-col gap-2", children: [
13096
+ onBack && /* @__PURE__ */ (0, import_jsx_runtime102.jsxs)(
13097
+ Button,
13098
+ {
13099
+ type: "button",
13100
+ variant: "ghost",
13101
+ size: "sm",
13102
+ onClick: onBack,
13103
+ className: "w-fit gap-1.5 px-0 text-xs text-muted-foreground hover:bg-transparent hover:text-foreground",
13104
+ children: [
13105
+ /* @__PURE__ */ (0, import_jsx_runtime102.jsx)(import_lucide_react55.ArrowLeft, { className: "h-3.5 w-3.5" }),
13106
+ backLabel
13107
+ ]
13108
+ }
13109
+ ),
13110
+ /* @__PURE__ */ (0, import_jsx_runtime102.jsx)(
13111
+ PageHeader,
13112
+ {
13113
+ title,
13114
+ description,
13115
+ badge,
13116
+ breadcrumbs
13117
+ }
13118
+ )
13119
+ ] }),
13120
+ /* @__PURE__ */ (0, import_jsx_runtime102.jsxs)("form", { onSubmit, className: cn("space-y-8", className), ...props, children: [
13121
+ /* @__PURE__ */ (0, import_jsx_runtime102.jsx)("div", { className: "space-y-6", children }),
13122
+ /* @__PURE__ */ (0, import_jsx_runtime102.jsxs)(
13123
+ "div",
13124
+ {
13125
+ className: cn(
13126
+ "flex flex-wrap items-center justify-between gap-4 pt-6",
13127
+ stickyFooter && "sticky bottom-0 -mx-4 -mb-4 bg-background/95 p-4 backdrop-blur border-t sm:-mx-6 sm:-mb-6 sm:p-6 md:-mx-8 md:-mb-8 md:p-8"
13128
+ ),
13129
+ children: [
13130
+ /* @__PURE__ */ (0, import_jsx_runtime102.jsx)("div", { children: secondaryActions }),
13131
+ /* @__PURE__ */ (0, import_jsx_runtime102.jsxs)("div", { className: "flex items-center gap-3", children: [
13132
+ onCancel && /* @__PURE__ */ (0, import_jsx_runtime102.jsx)(
13133
+ Button,
13134
+ {
13135
+ type: "button",
13136
+ variant: "outline",
13137
+ disabled: isSubmitting,
13138
+ onClick: onCancel,
13139
+ children: cancelLabel
13140
+ }
13141
+ ),
13142
+ /* @__PURE__ */ (0, import_jsx_runtime102.jsx)(Button, { type: "submit", disabled: isSubmitting, children: isSubmitting ? "Saving..." : submitLabel })
13143
+ ] })
13144
+ ]
13145
+ }
13146
+ )
13147
+ ] })
13148
+ ] });
13149
+ }
13150
+
13151
+ // src/design-system/templates/wizard-template.tsx
13152
+ var import_lucide_react56 = require("lucide-react");
13153
+ var import_jsx_runtime103 = require("react/jsx-runtime");
13154
+ function WizardTemplate({
13155
+ title,
13156
+ description,
13157
+ steps,
13158
+ currentStepIndex,
13159
+ onStepChange,
13160
+ onNext,
13161
+ onPrevious,
13162
+ onSubmit,
13163
+ nextLabel = "Next",
13164
+ previousLabel = "Previous",
13165
+ submitLabel = "Complete",
13166
+ isSubmitting = false,
13167
+ canProceed = true,
13168
+ children,
13169
+ className,
13170
+ ...props
13171
+ }) {
13172
+ const isLastStep = currentStepIndex === steps.length - 1;
13173
+ const isFirstStep = currentStepIndex === 0;
13174
+ return /* @__PURE__ */ (0, import_jsx_runtime103.jsxs)("div", { className: cn("flex flex-col gap-6 p-4 sm:p-6 md:p-8", className), ...props, children: [
13175
+ /* @__PURE__ */ (0, import_jsx_runtime103.jsx)(PageHeader, { title, description }),
13176
+ /* @__PURE__ */ (0, import_jsx_runtime103.jsx)("nav", { "aria-label": "Wizard Progress", className: "py-2", children: /* @__PURE__ */ (0, import_jsx_runtime103.jsx)("ol", { className: "flex items-center justify-between gap-2 overflow-x-auto pb-2", children: steps.map((step, idx) => {
13177
+ const isCompleted = idx < currentStepIndex;
13178
+ const isCurrent = idx === currentStepIndex;
13179
+ const isClickable = onStepChange && idx < currentStepIndex;
13180
+ return /* @__PURE__ */ (0, import_jsx_runtime103.jsxs)(
13181
+ "li",
13182
+ {
13183
+ className: "flex flex-1 items-center gap-2.5 min-w-[120px]",
13184
+ children: [
13185
+ /* @__PURE__ */ (0, import_jsx_runtime103.jsxs)(
13186
+ "button",
13187
+ {
13188
+ type: "button",
13189
+ disabled: !isClickable,
13190
+ onClick: isClickable ? () => onStepChange(idx) : void 0,
13191
+ className: cn(
13192
+ "flex items-center gap-2 text-left transition-colors",
13193
+ isClickable && "cursor-pointer hover:opacity-80"
13194
+ ),
13195
+ children: [
13196
+ /* @__PURE__ */ (0, import_jsx_runtime103.jsx)(
13197
+ "span",
13198
+ {
13199
+ className: cn(
13200
+ "flex h-7 w-7 shrink-0 items-center justify-center rounded-full text-xs font-semibold",
13201
+ isCompleted && "bg-primary text-primary-foreground",
13202
+ isCurrent && "border-2 border-primary bg-primary/10 text-primary font-bold",
13203
+ !isCompleted && !isCurrent && "border border-border bg-muted text-muted-foreground"
13204
+ ),
13205
+ children: isCompleted ? /* @__PURE__ */ (0, import_jsx_runtime103.jsx)(import_lucide_react56.Check, { className: "h-4 w-4" }) : idx + 1
13206
+ }
13207
+ ),
13208
+ /* @__PURE__ */ (0, import_jsx_runtime103.jsx)("div", { className: "hidden sm:block", children: /* @__PURE__ */ (0, import_jsx_runtime103.jsx)(
13209
+ "div",
13210
+ {
13211
+ className: cn(
13212
+ "text-xs font-medium",
13213
+ isCurrent ? "text-foreground font-semibold" : "text-muted-foreground"
13214
+ ),
13215
+ children: step.title
13216
+ }
13217
+ ) })
13218
+ ]
13219
+ }
13220
+ ),
13221
+ idx < steps.length - 1 && /* @__PURE__ */ (0, import_jsx_runtime103.jsx)(
13222
+ "div",
13223
+ {
13224
+ className: cn(
13225
+ "h-0.5 flex-1 rounded-full",
13226
+ idx < currentStepIndex ? "bg-primary" : "bg-border"
13227
+ )
13228
+ }
13229
+ )
11635
13230
  ]
11636
13231
  },
11637
13232
  step.id
11638
13233
  );
11639
13234
  }) }) }),
11640
- /* @__PURE__ */ (0, import_jsx_runtime97.jsx)("div", { className: "flex-1 rounded-lg border bg-card p-4 sm:p-6", children }),
11641
- /* @__PURE__ */ (0, import_jsx_runtime97.jsxs)("div", { className: "flex items-center justify-between pt-2", children: [
11642
- /* @__PURE__ */ (0, import_jsx_runtime97.jsxs)(
13235
+ /* @__PURE__ */ (0, import_jsx_runtime103.jsx)("div", { className: "flex-1 rounded-lg border bg-card p-4 sm:p-6", children }),
13236
+ /* @__PURE__ */ (0, import_jsx_runtime103.jsxs)("div", { className: "flex items-center justify-between pt-2", children: [
13237
+ /* @__PURE__ */ (0, import_jsx_runtime103.jsxs)(
11643
13238
  Button,
11644
13239
  {
11645
13240
  type: "button",
@@ -11647,12 +13242,12 @@ function WizardTemplate({
11647
13242
  disabled: isFirstStep || isSubmitting,
11648
13243
  onClick: onPrevious,
11649
13244
  children: [
11650
- /* @__PURE__ */ (0, import_jsx_runtime97.jsx)(import_lucide_react50.ChevronLeft, { className: "mr-1 h-4 w-4" }),
13245
+ /* @__PURE__ */ (0, import_jsx_runtime103.jsx)(import_lucide_react56.ChevronLeft, { className: "mr-1 h-4 w-4" }),
11651
13246
  previousLabel
11652
13247
  ]
11653
13248
  }
11654
13249
  ),
11655
- isLastStep ? /* @__PURE__ */ (0, import_jsx_runtime97.jsx)(
13250
+ isLastStep ? /* @__PURE__ */ (0, import_jsx_runtime103.jsx)(
11656
13251
  Button,
11657
13252
  {
11658
13253
  type: "button",
@@ -11660,7 +13255,7 @@ function WizardTemplate({
11660
13255
  onClick: onSubmit,
11661
13256
  children: isSubmitting ? "Submitting..." : submitLabel
11662
13257
  }
11663
- ) : /* @__PURE__ */ (0, import_jsx_runtime97.jsxs)(
13258
+ ) : /* @__PURE__ */ (0, import_jsx_runtime103.jsxs)(
11664
13259
  Button,
11665
13260
  {
11666
13261
  type: "button",
@@ -11668,7 +13263,7 @@ function WizardTemplate({
11668
13263
  onClick: onNext,
11669
13264
  children: [
11670
13265
  nextLabel,
11671
- /* @__PURE__ */ (0, import_jsx_runtime97.jsx)(import_lucide_react50.ChevronRight, { className: "ml-1 h-4 w-4" })
13266
+ /* @__PURE__ */ (0, import_jsx_runtime103.jsx)(import_lucide_react56.ChevronRight, { className: "ml-1 h-4 w-4" })
11672
13267
  ]
11673
13268
  }
11674
13269
  )
@@ -11677,7 +13272,7 @@ function WizardTemplate({
11677
13272
  }
11678
13273
 
11679
13274
  // src/design-system/templates/dashboard-template.tsx
11680
- var import_jsx_runtime98 = require("react/jsx-runtime");
13275
+ var import_jsx_runtime104 = require("react/jsx-runtime");
11681
13276
  function DashboardTemplate({
11682
13277
  title,
11683
13278
  description,
@@ -11691,8 +13286,8 @@ function DashboardTemplate({
11691
13286
  className,
11692
13287
  ...props
11693
13288
  }) {
11694
- return /* @__PURE__ */ (0, import_jsx_runtime98.jsxs)("div", { className: cn("flex flex-col gap-6 p-4 sm:p-6 md:p-8", className), ...props, children: [
11695
- /* @__PURE__ */ (0, import_jsx_runtime98.jsx)(
13289
+ return /* @__PURE__ */ (0, import_jsx_runtime104.jsxs)("div", { className: cn("flex flex-col gap-6 p-4 sm:p-6 md:p-8", className), ...props, children: [
13290
+ /* @__PURE__ */ (0, import_jsx_runtime104.jsx)(
11696
13291
  PageHeader,
11697
13292
  {
11698
13293
  title,
@@ -11702,15 +13297,15 @@ function DashboardTemplate({
11702
13297
  actions
11703
13298
  }
11704
13299
  ),
11705
- metrics && /* @__PURE__ */ (0, import_jsx_runtime98.jsx)("section", { "aria-label": "Key Metrics", className: "grid gap-4 sm:grid-cols-2 lg:grid-cols-4", children: metrics }),
11706
- charts && /* @__PURE__ */ (0, import_jsx_runtime98.jsx)("section", { "aria-label": "Charts and Visualizations", className: "grid gap-4 md:grid-cols-2 lg:grid-cols-7", children: charts }),
11707
- activity && /* @__PURE__ */ (0, import_jsx_runtime98.jsx)("section", { "aria-label": "Recent Activity", className: "space-y-4", children: activity }),
11708
- children && /* @__PURE__ */ (0, import_jsx_runtime98.jsx)("div", { className: "space-y-6", children })
13300
+ metrics && /* @__PURE__ */ (0, import_jsx_runtime104.jsx)("section", { "aria-label": "Key Metrics", className: "grid gap-4 sm:grid-cols-2 lg:grid-cols-4", children: metrics }),
13301
+ charts && /* @__PURE__ */ (0, import_jsx_runtime104.jsx)("section", { "aria-label": "Charts and Visualizations", className: "grid gap-4 md:grid-cols-2 lg:grid-cols-7", children: charts }),
13302
+ activity && /* @__PURE__ */ (0, import_jsx_runtime104.jsx)("section", { "aria-label": "Recent Activity", className: "space-y-4", children: activity }),
13303
+ children && /* @__PURE__ */ (0, import_jsx_runtime104.jsx)("div", { className: "space-y-6", children })
11709
13304
  ] });
11710
13305
  }
11711
13306
 
11712
13307
  // src/design-system/templates/workspace-template.tsx
11713
- var import_jsx_runtime99 = require("react/jsx-runtime");
13308
+ var import_jsx_runtime105 = require("react/jsx-runtime");
11714
13309
  function WorkspaceTemplate({
11715
13310
  header,
11716
13311
  leftSidebar,
@@ -11720,7 +13315,7 @@ function WorkspaceTemplate({
11720
13315
  className,
11721
13316
  ...props
11722
13317
  }) {
11723
- return /* @__PURE__ */ (0, import_jsx_runtime99.jsxs)(
13318
+ return /* @__PURE__ */ (0, import_jsx_runtime105.jsxs)(
11724
13319
  "div",
11725
13320
  {
11726
13321
  className: cn(
@@ -11729,29 +13324,29 @@ function WorkspaceTemplate({
11729
13324
  ),
11730
13325
  ...props,
11731
13326
  children: [
11732
- header && /* @__PURE__ */ (0, import_jsx_runtime99.jsx)("header", { className: "flex h-14 shrink-0 items-center border-b px-4 bg-background z-10", children: header }),
11733
- /* @__PURE__ */ (0, import_jsx_runtime99.jsxs)("div", { className: "flex flex-1 overflow-hidden", children: [
11734
- leftSidebar && /* @__PURE__ */ (0, import_jsx_runtime99.jsx)("aside", { className: "hidden md:flex w-64 shrink-0 flex-col border-r bg-sidebar p-3 overflow-y-auto", children: leftSidebar }),
11735
- /* @__PURE__ */ (0, import_jsx_runtime99.jsx)("main", { className: "flex flex-1 flex-col overflow-y-auto p-4 sm:p-6 bg-muted/20", children }),
11736
- rightSidebar && /* @__PURE__ */ (0, import_jsx_runtime99.jsx)("aside", { className: "hidden lg:flex w-80 shrink-0 flex-col border-l bg-background p-4 overflow-y-auto", children: rightSidebar })
13327
+ header && /* @__PURE__ */ (0, import_jsx_runtime105.jsx)("header", { className: "flex h-14 shrink-0 items-center border-b px-4 bg-background z-10", children: header }),
13328
+ /* @__PURE__ */ (0, import_jsx_runtime105.jsxs)("div", { className: "flex flex-1 overflow-hidden", children: [
13329
+ leftSidebar && /* @__PURE__ */ (0, import_jsx_runtime105.jsx)("aside", { className: "hidden md:flex w-64 shrink-0 flex-col border-r bg-sidebar p-3 overflow-y-auto", children: leftSidebar }),
13330
+ /* @__PURE__ */ (0, import_jsx_runtime105.jsx)("main", { className: "flex flex-1 flex-col overflow-y-auto p-4 sm:p-6 bg-muted/20", children }),
13331
+ rightSidebar && /* @__PURE__ */ (0, import_jsx_runtime105.jsx)("aside", { className: "hidden lg:flex w-80 shrink-0 flex-col border-l bg-background p-4 overflow-y-auto", children: rightSidebar })
11737
13332
  ] }),
11738
- footer && /* @__PURE__ */ (0, import_jsx_runtime99.jsx)("footer", { className: "flex h-10 shrink-0 items-center border-t px-4 text-xs text-muted-foreground bg-background", children: footer })
13333
+ footer && /* @__PURE__ */ (0, import_jsx_runtime105.jsx)("footer", { className: "flex h-10 shrink-0 items-center border-t px-4 text-xs text-muted-foreground bg-background", children: footer })
11739
13334
  ]
11740
13335
  }
11741
13336
  );
11742
13337
  }
11743
13338
 
11744
13339
  // src/design-system/templates/app-header.tsx
11745
- var import_react18 = require("react");
11746
- var import_lucide_react52 = require("lucide-react");
13340
+ var import_react21 = require("react");
13341
+ var import_lucide_react58 = require("lucide-react");
11747
13342
  var import_navigation2 = require("next/navigation");
11748
13343
 
11749
13344
  // src/components/layout/header.tsx
11750
- var import_react17 = require("react");
11751
- var import_jsx_runtime100 = require("react/jsx-runtime");
13345
+ var import_react20 = require("react");
13346
+ var import_jsx_runtime106 = require("react/jsx-runtime");
11752
13347
  function Header({ className, fixed, children, ...props }) {
11753
- const [offset, setOffset] = (0, import_react17.useState)(0);
11754
- (0, import_react17.useEffect)(() => {
13348
+ const [offset, setOffset] = (0, import_react20.useState)(0);
13349
+ (0, import_react20.useEffect)(() => {
11755
13350
  const onScroll = () => {
11756
13351
  setOffset(document.body.scrollTop || document.documentElement.scrollTop);
11757
13352
  };
@@ -11760,7 +13355,7 @@ function Header({ className, fixed, children, ...props }) {
11760
13355
  }, []);
11761
13356
  return (
11762
13357
  // Page header container: fixed mode me top par sticky behavior deta hai.
11763
- /* @__PURE__ */ (0, import_jsx_runtime100.jsx)(
13358
+ /* @__PURE__ */ (0, import_jsx_runtime106.jsx)(
11764
13359
  "header",
11765
13360
  {
11766
13361
  className: cn(
@@ -11770,7 +13365,7 @@ function Header({ className, fixed, children, ...props }) {
11770
13365
  className
11771
13366
  ),
11772
13367
  ...props,
11773
- children: /* @__PURE__ */ (0, import_jsx_runtime100.jsxs)(
13368
+ children: /* @__PURE__ */ (0, import_jsx_runtime106.jsxs)(
11774
13369
  "div",
11775
13370
  {
11776
13371
  className: cn(
@@ -11779,7 +13374,7 @@ function Header({ className, fixed, children, ...props }) {
11779
13374
  offset > 10 && fixed && "after:absolute after:inset-0 after:-z-10 after:bg-background/20 after:backdrop-blur-lg"
11780
13375
  ),
11781
13376
  children: [
11782
- /* @__PURE__ */ (0, import_jsx_runtime100.jsx)(AppLogo, { className: "shrink-0 md:hidden" }),
13377
+ /* @__PURE__ */ (0, import_jsx_runtime106.jsx)(AppLogo, { className: "shrink-0 md:hidden" }),
11783
13378
  children
11784
13379
  ]
11785
13380
  }
@@ -11790,9 +13385,9 @@ function Header({ className, fixed, children, ...props }) {
11790
13385
  }
11791
13386
 
11792
13387
  // src/components/search.tsx
11793
- var import_lucide_react51 = require("lucide-react");
11794
- var import_jsx_runtime101 = require("react/jsx-runtime");
11795
- function Search6({
13388
+ var import_lucide_react57 = require("lucide-react");
13389
+ var import_jsx_runtime107 = require("react/jsx-runtime");
13390
+ function Search7({
11796
13391
  className = "",
11797
13392
  placeholder = "Search",
11798
13393
  iconOnly = true,
@@ -11804,7 +13399,7 @@ function Search6({
11804
13399
  search.setOpen(true);
11805
13400
  }
11806
13401
  };
11807
- return /* @__PURE__ */ (0, import_jsx_runtime101.jsx)(
13402
+ return /* @__PURE__ */ (0, import_jsx_runtime107.jsx)(
11808
13403
  Button,
11809
13404
  {
11810
13405
  ...props,
@@ -11814,7 +13409,7 @@ function Search6({
11814
13409
  "aria-label": "Search",
11815
13410
  "aria-keyshortcuts": "Meta+K Control+K",
11816
13411
  onClick: openSearch,
11817
- children: /* @__PURE__ */ (0, import_jsx_runtime101.jsx)(import_lucide_react51.SearchIcon, { className: "size-5", "aria-hidden": "true" })
13412
+ children: /* @__PURE__ */ (0, import_jsx_runtime107.jsx)(import_lucide_react57.SearchIcon, { className: "size-5", "aria-hidden": "true" })
11818
13413
  }
11819
13414
  );
11820
13415
  }
@@ -11983,7 +13578,7 @@ var useNotificationStore = (0, import_zustand2.create)((set, get) => ({
11983
13578
  }));
11984
13579
 
11985
13580
  // src/design-system/templates/app-header.tsx
11986
- var import_jsx_runtime102 = require("react/jsx-runtime");
13581
+ var import_jsx_runtime108 = require("react/jsx-runtime");
11987
13582
  function AppHeader({
11988
13583
  title,
11989
13584
  fixed = true,
@@ -11993,7 +13588,7 @@ function AppHeader({
11993
13588
  const router = (0, import_navigation2.useRouter)();
11994
13589
  const currentUser = useAuthStore((state) => state.auth.user);
11995
13590
  const { unreadCount, fetchNotifications, subscribeToNotifications, unsubscribe } = useNotificationStore();
11996
- (0, import_react18.useEffect)(() => {
13591
+ (0, import_react21.useEffect)(() => {
11997
13592
  if (currentUser) {
11998
13593
  fetchNotifications(currentUser.accountNo);
11999
13594
  subscribeToNotifications(currentUser.accountNo);
@@ -12002,12 +13597,12 @@ function AppHeader({
12002
13597
  unsubscribe();
12003
13598
  };
12004
13599
  }, [currentUser, fetchNotifications, subscribeToNotifications, unsubscribe]);
12005
- return /* @__PURE__ */ (0, import_jsx_runtime102.jsx)(Header, { fixed, className: "border-b bg-background", children: /* @__PURE__ */ (0, import_jsx_runtime102.jsx)("div", { className: "flex flex-1 items-center justify-between w-full", children: iconsPosition === "left" ? /* @__PURE__ */ (0, import_jsx_runtime102.jsxs)("div", { className: "flex items-center gap-2 sm:gap-3 min-w-0", children: [
12006
- /* @__PURE__ */ (0, import_jsx_runtime102.jsx)("h1", { className: "min-w-0 truncate text-base font-semibold sm:text-lg", children: title }),
12007
- /* @__PURE__ */ (0, import_jsx_runtime102.jsxs)("div", { className: "flex items-center gap-1 sm:gap-2 shrink-0 ml-1", children: [
12008
- /* @__PURE__ */ (0, import_jsx_runtime102.jsx)(Search6, { iconOnly: true }),
13600
+ return /* @__PURE__ */ (0, import_jsx_runtime108.jsx)(Header, { fixed, className: "border-b bg-background", children: /* @__PURE__ */ (0, import_jsx_runtime108.jsx)("div", { className: "flex flex-1 items-center justify-between w-full", children: iconsPosition === "left" ? /* @__PURE__ */ (0, import_jsx_runtime108.jsxs)("div", { className: "flex items-center gap-2 sm:gap-3 min-w-0", children: [
13601
+ /* @__PURE__ */ (0, import_jsx_runtime108.jsx)("h1", { className: "min-w-0 truncate text-base font-semibold sm:text-lg", children: title }),
13602
+ /* @__PURE__ */ (0, import_jsx_runtime108.jsxs)("div", { className: "flex items-center gap-1 sm:gap-2 shrink-0 ml-1", children: [
13603
+ /* @__PURE__ */ (0, import_jsx_runtime108.jsx)(Search7, { iconOnly: true }),
12009
13604
  children,
12010
- /* @__PURE__ */ (0, import_jsx_runtime102.jsxs)(
13605
+ /* @__PURE__ */ (0, import_jsx_runtime108.jsxs)(
12011
13606
  Button,
12012
13607
  {
12013
13608
  variant: "ghost",
@@ -12016,18 +13611,18 @@ function AppHeader({
12016
13611
  "aria-label": "Notifications",
12017
13612
  onClick: () => router.push("/notification"),
12018
13613
  children: [
12019
- /* @__PURE__ */ (0, import_jsx_runtime102.jsx)(import_lucide_react52.Bell, { className: "size-5" }),
12020
- unreadCount > 0 && /* @__PURE__ */ (0, import_jsx_runtime102.jsx)("span", { className: "absolute -top-1 -right-1 flex h-4 min-w-4 items-center justify-center rounded-full bg-red-500 px-1 text-[10px] font-medium text-white shadow-xs", children: unreadCount > 5 ? "5+" : unreadCount })
13614
+ /* @__PURE__ */ (0, import_jsx_runtime108.jsx)(import_lucide_react58.Bell, { className: "size-5" }),
13615
+ unreadCount > 0 && /* @__PURE__ */ (0, import_jsx_runtime108.jsx)("span", { className: "absolute -top-1 -right-1 flex h-4 min-w-4 items-center justify-center rounded-full bg-red-500 px-1 text-[10px] font-medium text-white shadow-xs", children: unreadCount > 5 ? "5+" : unreadCount })
12021
13616
  ]
12022
13617
  }
12023
13618
  )
12024
13619
  ] })
12025
- ] }) : /* @__PURE__ */ (0, import_jsx_runtime102.jsxs)(import_jsx_runtime102.Fragment, { children: [
12026
- /* @__PURE__ */ (0, import_jsx_runtime102.jsx)("h1", { className: "min-w-0 truncate text-base font-semibold sm:text-lg", children: title }),
12027
- /* @__PURE__ */ (0, import_jsx_runtime102.jsxs)("div", { className: "ml-auto flex items-center gap-2 sm:gap-3", children: [
12028
- /* @__PURE__ */ (0, import_jsx_runtime102.jsx)(Search6, { iconOnly: true }),
13620
+ ] }) : /* @__PURE__ */ (0, import_jsx_runtime108.jsxs)(import_jsx_runtime108.Fragment, { children: [
13621
+ /* @__PURE__ */ (0, import_jsx_runtime108.jsx)("h1", { className: "min-w-0 truncate text-base font-semibold sm:text-lg", children: title }),
13622
+ /* @__PURE__ */ (0, import_jsx_runtime108.jsxs)("div", { className: "ml-auto flex items-center gap-2 sm:gap-3", children: [
13623
+ /* @__PURE__ */ (0, import_jsx_runtime108.jsx)(Search7, { iconOnly: true }),
12029
13624
  children,
12030
- /* @__PURE__ */ (0, import_jsx_runtime102.jsxs)(
13625
+ /* @__PURE__ */ (0, import_jsx_runtime108.jsxs)(
12031
13626
  Button,
12032
13627
  {
12033
13628
  variant: "ghost",
@@ -12036,8 +13631,8 @@ function AppHeader({
12036
13631
  "aria-label": "Notifications",
12037
13632
  onClick: () => router.push("/notification"),
12038
13633
  children: [
12039
- /* @__PURE__ */ (0, import_jsx_runtime102.jsx)(import_lucide_react52.Bell, { className: "size-5" }),
12040
- unreadCount > 0 && /* @__PURE__ */ (0, import_jsx_runtime102.jsx)("span", { className: "absolute -top-1 -right-1 flex h-4 min-w-4 items-center justify-center rounded-full bg-red-500 px-1 text-[10px] font-medium text-white shadow-xs", children: unreadCount > 5 ? "5+" : unreadCount })
13634
+ /* @__PURE__ */ (0, import_jsx_runtime108.jsx)(import_lucide_react58.Bell, { className: "size-5" }),
13635
+ unreadCount > 0 && /* @__PURE__ */ (0, import_jsx_runtime108.jsx)("span", { className: "absolute -top-1 -right-1 flex h-4 min-w-4 items-center justify-center rounded-full bg-red-500 px-1 text-[10px] font-medium text-white shadow-xs", children: unreadCount > 5 ? "5+" : unreadCount })
12041
13636
  ]
12042
13637
  }
12043
13638
  )
@@ -12046,7 +13641,7 @@ function AppHeader({
12046
13641
  }
12047
13642
 
12048
13643
  // src/design-system/templates/data/sidebar-data.ts
12049
- var import_lucide_react53 = require("lucide-react");
13644
+ var import_lucide_react59 = require("lucide-react");
12050
13645
  var sidebarData2 = {
12051
13646
  user: {
12052
13647
  name: "satnaing",
@@ -12056,7 +13651,7 @@ var sidebarData2 = {
12056
13651
  teams: [
12057
13652
  {
12058
13653
  name: "Amoga App",
12059
- logo: import_lucide_react53.Command,
13654
+ logo: import_lucide_react59.Command,
12060
13655
  plan: "Demo Company"
12061
13656
  }
12062
13657
  ],
@@ -12067,52 +13662,52 @@ var sidebarData2 = {
12067
13662
  {
12068
13663
  title: "Message",
12069
13664
  url: "/message",
12070
- icon: import_lucide_react53.Mail
13665
+ icon: import_lucide_react59.Mail
12071
13666
  },
12072
13667
  {
12073
13668
  title: "Email Settings",
12074
13669
  url: "/email-settings",
12075
- icon: import_lucide_react53.Settings
13670
+ icon: import_lucide_react59.Settings
12076
13671
  },
12077
13672
  {
12078
13673
  title: "Design System",
12079
13674
  url: "/",
12080
- icon: import_lucide_react53.Settings
13675
+ icon: import_lucide_react59.Settings
12081
13676
  },
12082
13677
  {
12083
13678
  title: "Vouchers",
12084
13679
  url: "/vouchers",
12085
- icon: import_lucide_react53.Ticket
13680
+ icon: import_lucide_react59.Ticket
12086
13681
  },
12087
13682
  {
12088
13683
  title: "AI Chat",
12089
13684
  url: "/ai_chat",
12090
- icon: import_lucide_react53.Bot
13685
+ icon: import_lucide_react59.Bot
12091
13686
  },
12092
13687
  {
12093
13688
  title: "AI Search",
12094
13689
  url: "/ai_search",
12095
- icon: import_lucide_react53.SearchIcon
13690
+ icon: import_lucide_react59.SearchIcon
12096
13691
  },
12097
13692
  {
12098
13693
  title: "Chart Template",
12099
13694
  url: "/charttemplate",
12100
- icon: import_lucide_react53.ChartArea
13695
+ icon: import_lucide_react59.ChartArea
12101
13696
  },
12102
13697
  {
12103
13698
  title: "Map Template",
12104
13699
  url: "/map",
12105
- icon: import_lucide_react53.Map
13700
+ icon: import_lucide_react59.Map
12106
13701
  },
12107
13702
  {
12108
13703
  title: "Route Doc",
12109
13704
  url: "/routedoc",
12110
- icon: import_lucide_react53.Route
13705
+ icon: import_lucide_react59.Route
12111
13706
  },
12112
13707
  {
12113
13708
  title: "Link Maker",
12114
13709
  url: "/link-maker",
12115
- icon: import_lucide_react53.Link
13710
+ icon: import_lucide_react59.Link
12116
13711
  }
12117
13712
  ]
12118
13713
  },
@@ -12121,7 +13716,7 @@ var sidebarData2 = {
12121
13716
  items: [
12122
13717
  {
12123
13718
  title: "Settings",
12124
- icon: import_lucide_react53.Settings,
13719
+ icon: import_lucide_react59.Settings,
12125
13720
  items: [
12126
13721
  // Add settings pages here
12127
13722
  ]
@@ -12129,7 +13724,7 @@ var sidebarData2 = {
12129
13724
  {
12130
13725
  title: "Help Center",
12131
13726
  url: "/help-center",
12132
- icon: import_lucide_react53.HelpCircle
13727
+ icon: import_lucide_react59.HelpCircle
12133
13728
  }
12134
13729
  ]
12135
13730
  }
@@ -12137,7 +13732,7 @@ var sidebarData2 = {
12137
13732
  };
12138
13733
 
12139
13734
  // src/design-system/templates/app-logo.tsx
12140
- var import_jsx_runtime103 = require("react/jsx-runtime");
13735
+ var import_jsx_runtime109 = require("react/jsx-runtime");
12141
13736
  function AppLogo({ className, onClick }) {
12142
13737
  const { toggleSidebar, setOpenMobile, isMobile } = useSidebar();
12143
13738
  const team = sidebarData2.teams[0];
@@ -12154,7 +13749,7 @@ function AppLogo({ className, onClick }) {
12154
13749
  toggleSidebar();
12155
13750
  }
12156
13751
  };
12157
- return /* @__PURE__ */ (0, import_jsx_runtime103.jsx)(
13752
+ return /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(
12158
13753
  Button,
12159
13754
  {
12160
13755
  type: "button",
@@ -12165,30 +13760,30 @@ function AppLogo({ className, onClick }) {
12165
13760
  className
12166
13761
  ),
12167
13762
  "aria-label": "Open sidebar menu",
12168
- children: /* @__PURE__ */ (0, import_jsx_runtime103.jsx)("div", { className: "flex size-full items-center justify-center rounded-lg bg-primary text-primary-foreground", children: /* @__PURE__ */ (0, import_jsx_runtime103.jsx)(Logo, { className: "size-4" }) })
13763
+ children: /* @__PURE__ */ (0, import_jsx_runtime109.jsx)("div", { className: "flex size-full items-center justify-center rounded-lg bg-primary text-primary-foreground", children: /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Logo, { className: "size-4" }) })
12169
13764
  }
12170
13765
  );
12171
13766
  }
12172
13767
 
12173
13768
  // src/context/layout-provider.tsx
12174
- var import_react19 = require("react");
12175
- var import_jsx_runtime104 = require("react/jsx-runtime");
13769
+ var import_react22 = require("react");
13770
+ var import_jsx_runtime110 = require("react/jsx-runtime");
12176
13771
  var LAYOUT_COLLAPSIBLE_COOKIE_NAME = "layout_collapsible";
12177
13772
  var LAYOUT_VARIANT_COOKIE_NAME = "layout_variant";
12178
13773
  var LAYOUT_COOKIE_MAX_AGE = 60 * 60 * 24 * 7;
12179
13774
  var DEFAULT_VARIANT = "inset";
12180
13775
  var DEFAULT_COLLAPSIBLE = "icon";
12181
- var LayoutContext = (0, import_react19.createContext)(null);
13776
+ var LayoutContext = (0, import_react22.createContext)(null);
12182
13777
  function LayoutProvider({ children }) {
12183
- const [collapsible, _setCollapsible] = (0, import_react19.useState)(() => {
13778
+ const [collapsible, _setCollapsible] = (0, import_react22.useState)(() => {
12184
13779
  const saved = getCookie(LAYOUT_COLLAPSIBLE_COOKIE_NAME);
12185
13780
  return saved || DEFAULT_COLLAPSIBLE;
12186
13781
  });
12187
- const [variant, _setVariant] = (0, import_react19.useState)(() => {
13782
+ const [variant, _setVariant] = (0, import_react22.useState)(() => {
12188
13783
  const saved = getCookie(LAYOUT_VARIANT_COOKIE_NAME);
12189
13784
  return saved || DEFAULT_VARIANT;
12190
13785
  });
12191
- const [showInlineNotFound, setShowInlineNotFound] = (0, import_react19.useState)(false);
13786
+ const [showInlineNotFound, setShowInlineNotFound] = (0, import_react22.useState)(false);
12192
13787
  const setCollapsible = (newCollapsible) => {
12193
13788
  _setCollapsible(newCollapsible);
12194
13789
  setCookie(
@@ -12216,10 +13811,10 @@ function LayoutProvider({ children }) {
12216
13811
  showInlineNotFound,
12217
13812
  setShowInlineNotFound
12218
13813
  };
12219
- return /* @__PURE__ */ (0, import_jsx_runtime104.jsx)(LayoutContext, { value: contextValue, children });
13814
+ return /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(LayoutContext, { value: contextValue, children });
12220
13815
  }
12221
13816
  function useLayout() {
12222
- const context = (0, import_react19.useContext)(LayoutContext);
13817
+ const context = (0, import_react22.useContext)(LayoutContext);
12223
13818
  if (!context) {
12224
13819
  return {
12225
13820
  resetLayout: () => {
@@ -12243,13 +13838,13 @@ function useLayout() {
12243
13838
  // src/design-system/templates/nav-group.tsx
12244
13839
  var import_link = __toESM(require("next/link"));
12245
13840
  var import_navigation3 = require("next/navigation");
12246
- var import_lucide_react54 = require("lucide-react");
12247
- var import_jsx_runtime105 = require("react/jsx-runtime");
13841
+ var import_lucide_react60 = require("lucide-react");
13842
+ var import_jsx_runtime111 = require("react/jsx-runtime");
12248
13843
  function NavGroup({ title, items }) {
12249
13844
  const { state, isMobile, openMobile, setOpenMobile } = useSidebar();
12250
13845
  const href = (0, import_navigation3.usePathname)();
12251
- return /* @__PURE__ */ (0, import_jsx_runtime105.jsxs)(SidebarGroup, { className: cn(title === "Menu" && "pt-0"), children: [
12252
- /* @__PURE__ */ (0, import_jsx_runtime105.jsxs)(
13846
+ return /* @__PURE__ */ (0, import_jsx_runtime111.jsxs)(SidebarGroup, { className: cn(title === "Menu" && "pt-0"), children: [
13847
+ /* @__PURE__ */ (0, import_jsx_runtime111.jsxs)(
12253
13848
  SidebarGroupLabel,
12254
13849
  {
12255
13850
  className: cn(
@@ -12257,8 +13852,8 @@ function NavGroup({ title, items }) {
12257
13852
  title === "Menu" && state !== "collapsed" && "sticky top-0 z-20 bg-sidebar py-1.5"
12258
13853
  ),
12259
13854
  children: [
12260
- /* @__PURE__ */ (0, import_jsx_runtime105.jsx)("span", { children: title }),
12261
- title === "Menu" && !isMobile && /* @__PURE__ */ (0, import_jsx_runtime105.jsx)(
13855
+ /* @__PURE__ */ (0, import_jsx_runtime111.jsx)("span", { children: title }),
13856
+ title === "Menu" && !isMobile && /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
12262
13857
  SidebarTrigger,
12263
13858
  {
12264
13859
  variant: "ghost",
@@ -12266,7 +13861,7 @@ function NavGroup({ title, items }) {
12266
13861
  "aria-label": "Toggle sidebar"
12267
13862
  }
12268
13863
  ),
12269
- title === "Menu" && isMobile && openMobile && /* @__PURE__ */ (0, import_jsx_runtime105.jsx)(
13864
+ title === "Menu" && isMobile && openMobile && /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
12270
13865
  Button,
12271
13866
  {
12272
13867
  type: "button",
@@ -12275,37 +13870,37 @@ function NavGroup({ title, items }) {
12275
13870
  className: "size-6 shrink-0",
12276
13871
  "aria-label": "Close sidebar",
12277
13872
  onClick: () => setOpenMobile(false),
12278
- children: /* @__PURE__ */ (0, import_jsx_runtime105.jsx)(import_lucide_react54.X, { className: "size-4", "aria-hidden": "true" })
13873
+ children: /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(import_lucide_react60.X, { className: "size-4", "aria-hidden": "true" })
12279
13874
  }
12280
13875
  )
12281
13876
  ]
12282
13877
  }
12283
13878
  ),
12284
- /* @__PURE__ */ (0, import_jsx_runtime105.jsx)(SidebarMenu, { children: items.map((item) => {
13879
+ /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(SidebarMenu, { children: items.map((item) => {
12285
13880
  const key = `${item.title}-${item.url}`;
12286
13881
  if (!item.items)
12287
- return /* @__PURE__ */ (0, import_jsx_runtime105.jsx)(SidebarMenuLink, { item, href }, key);
13882
+ return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(SidebarMenuLink, { item, href }, key);
12288
13883
  if (item.title === "Settings" && item.items.length === 0)
12289
- return /* @__PURE__ */ (0, import_jsx_runtime105.jsx)(SidebarMenuSettings, { item }, key);
13884
+ return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(SidebarMenuSettings, { item }, key);
12290
13885
  if (state === "collapsed" && !isMobile)
12291
- return /* @__PURE__ */ (0, import_jsx_runtime105.jsx)(SidebarMenuCollapsedDropdown, { item, href }, key);
12292
- return /* @__PURE__ */ (0, import_jsx_runtime105.jsx)(SidebarMenuCollapsible, { item, href }, key);
13886
+ return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(SidebarMenuCollapsedDropdown, { item, href }, key);
13887
+ return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(SidebarMenuCollapsible, { item, href }, key);
12293
13888
  }) })
12294
13889
  ] });
12295
13890
  }
12296
13891
  function NavBadge({ children }) {
12297
- return /* @__PURE__ */ (0, import_jsx_runtime105.jsx)(Badge, { className: "rounded-full px-1 py-0 text-xs", children });
13892
+ return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(Badge, { className: "rounded-full px-1 py-0 text-xs", children });
12298
13893
  }
12299
13894
  function SidebarMenuLink({ item, href }) {
12300
13895
  const { setOpenMobile } = useSidebar();
12301
13896
  const { setShowInlineNotFound } = useLayout();
12302
- return /* @__PURE__ */ (0, import_jsx_runtime105.jsx)(SidebarMenuItem, { children: /* @__PURE__ */ (0, import_jsx_runtime105.jsx)(
13897
+ return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(SidebarMenuItem, { children: /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
12303
13898
  SidebarMenuButton,
12304
13899
  {
12305
13900
  asChild: true,
12306
13901
  isActive: checkIsActive(href, item),
12307
13902
  tooltip: item.title,
12308
- children: /* @__PURE__ */ (0, import_jsx_runtime105.jsxs)(
13903
+ children: /* @__PURE__ */ (0, import_jsx_runtime111.jsxs)(
12309
13904
  import_link.default,
12310
13905
  {
12311
13906
  href: item.url,
@@ -12314,9 +13909,9 @@ function SidebarMenuLink({ item, href }) {
12314
13909
  setOpenMobile(false);
12315
13910
  },
12316
13911
  children: [
12317
- item.icon && /* @__PURE__ */ (0, import_jsx_runtime105.jsx)(item.icon, {}),
12318
- /* @__PURE__ */ (0, import_jsx_runtime105.jsx)("span", { children: item.title }),
12319
- item.badge && /* @__PURE__ */ (0, import_jsx_runtime105.jsx)(NavBadge, { children: item.badge })
13912
+ item.icon && /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(item.icon, {}),
13913
+ /* @__PURE__ */ (0, import_jsx_runtime111.jsx)("span", { children: item.title }),
13914
+ item.badge && /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(NavBadge, { children: item.badge })
12320
13915
  ]
12321
13916
  }
12322
13917
  )
@@ -12326,7 +13921,7 @@ function SidebarMenuLink({ item, href }) {
12326
13921
  function SidebarMenuSettings({ item }) {
12327
13922
  const { setOpenMobile } = useSidebar();
12328
13923
  const { showInlineNotFound, setShowInlineNotFound } = useLayout();
12329
- return /* @__PURE__ */ (0, import_jsx_runtime105.jsx)(SidebarMenuItem, { children: /* @__PURE__ */ (0, import_jsx_runtime105.jsxs)(
13924
+ return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(SidebarMenuItem, { children: /* @__PURE__ */ (0, import_jsx_runtime111.jsxs)(
12330
13925
  SidebarMenuButton,
12331
13926
  {
12332
13927
  tooltip: item.title,
@@ -12336,8 +13931,8 @@ function SidebarMenuSettings({ item }) {
12336
13931
  setOpenMobile(false);
12337
13932
  },
12338
13933
  children: [
12339
- item.icon && /* @__PURE__ */ (0, import_jsx_runtime105.jsx)(item.icon, {}),
12340
- /* @__PURE__ */ (0, import_jsx_runtime105.jsx)("span", { children: item.title })
13934
+ item.icon && /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(item.icon, {}),
13935
+ /* @__PURE__ */ (0, import_jsx_runtime111.jsx)("span", { children: item.title })
12341
13936
  ]
12342
13937
  }
12343
13938
  ) });
@@ -12348,25 +13943,25 @@ function SidebarMenuCollapsible({
12348
13943
  }) {
12349
13944
  const { setOpenMobile } = useSidebar();
12350
13945
  const { setShowInlineNotFound } = useLayout();
12351
- return /* @__PURE__ */ (0, import_jsx_runtime105.jsx)(
13946
+ return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
12352
13947
  Collapsible,
12353
13948
  {
12354
13949
  asChild: true,
12355
13950
  defaultOpen: checkIsActive(href, item, true),
12356
13951
  className: "group/collapsible",
12357
- children: /* @__PURE__ */ (0, import_jsx_runtime105.jsxs)(SidebarMenuItem, { children: [
12358
- /* @__PURE__ */ (0, import_jsx_runtime105.jsx)(CollapsibleTrigger, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime105.jsxs)(SidebarMenuButton, { tooltip: item.title, children: [
12359
- item.icon && /* @__PURE__ */ (0, import_jsx_runtime105.jsx)(item.icon, {}),
12360
- /* @__PURE__ */ (0, import_jsx_runtime105.jsx)("span", { children: item.title }),
12361
- item.badge && /* @__PURE__ */ (0, import_jsx_runtime105.jsx)(NavBadge, { children: item.badge }),
12362
- /* @__PURE__ */ (0, import_jsx_runtime105.jsx)(import_lucide_react54.ChevronRight, { className: "ms-auto transition-transform duration-200 group-data-[state=open]/collapsible:rotate-90 rtl:rotate-180" })
13952
+ children: /* @__PURE__ */ (0, import_jsx_runtime111.jsxs)(SidebarMenuItem, { children: [
13953
+ /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(CollapsibleTrigger, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime111.jsxs)(SidebarMenuButton, { tooltip: item.title, children: [
13954
+ item.icon && /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(item.icon, {}),
13955
+ /* @__PURE__ */ (0, import_jsx_runtime111.jsx)("span", { children: item.title }),
13956
+ item.badge && /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(NavBadge, { children: item.badge }),
13957
+ /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(import_lucide_react60.ChevronRight, { className: "ms-auto transition-transform duration-200 group-data-[state=open]/collapsible:rotate-90 rtl:rotate-180" })
12363
13958
  ] }) }),
12364
- /* @__PURE__ */ (0, import_jsx_runtime105.jsx)(CollapsibleContent, { className: "CollapsibleContent", children: /* @__PURE__ */ (0, import_jsx_runtime105.jsx)(SidebarMenuSub, { children: item.items.map((subItem) => /* @__PURE__ */ (0, import_jsx_runtime105.jsx)(SidebarMenuSubItem, { children: /* @__PURE__ */ (0, import_jsx_runtime105.jsx)(
13959
+ /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(CollapsibleContent, { className: "CollapsibleContent", children: /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(SidebarMenuSub, { children: item.items.map((subItem) => /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(SidebarMenuSubItem, { children: /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
12365
13960
  SidebarMenuSubButton,
12366
13961
  {
12367
13962
  asChild: true,
12368
13963
  isActive: checkIsActive(href, subItem),
12369
- children: /* @__PURE__ */ (0, import_jsx_runtime105.jsxs)(
13964
+ children: /* @__PURE__ */ (0, import_jsx_runtime111.jsxs)(
12370
13965
  import_link.default,
12371
13966
  {
12372
13967
  href: subItem.url,
@@ -12375,9 +13970,9 @@ function SidebarMenuCollapsible({
12375
13970
  setOpenMobile(false);
12376
13971
  },
12377
13972
  children: [
12378
- subItem.icon && /* @__PURE__ */ (0, import_jsx_runtime105.jsx)(subItem.icon, {}),
12379
- /* @__PURE__ */ (0, import_jsx_runtime105.jsx)("span", { children: subItem.title }),
12380
- subItem.badge && /* @__PURE__ */ (0, import_jsx_runtime105.jsx)(NavBadge, { children: subItem.badge })
13973
+ subItem.icon && /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(subItem.icon, {}),
13974
+ /* @__PURE__ */ (0, import_jsx_runtime111.jsx)("span", { children: subItem.title }),
13975
+ subItem.badge && /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(NavBadge, { children: subItem.badge })
12381
13976
  ]
12382
13977
  }
12383
13978
  )
@@ -12391,36 +13986,36 @@ function SidebarMenuCollapsedDropdown({
12391
13986
  item,
12392
13987
  href
12393
13988
  }) {
12394
- return /* @__PURE__ */ (0, import_jsx_runtime105.jsx)(SidebarMenuItem, { children: /* @__PURE__ */ (0, import_jsx_runtime105.jsxs)(DropdownMenu, { children: [
12395
- /* @__PURE__ */ (0, import_jsx_runtime105.jsx)(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime105.jsxs)(
13989
+ return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(SidebarMenuItem, { children: /* @__PURE__ */ (0, import_jsx_runtime111.jsxs)(DropdownMenu, { children: [
13990
+ /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime111.jsxs)(
12396
13991
  SidebarMenuButton,
12397
13992
  {
12398
13993
  tooltip: item.title,
12399
13994
  isActive: checkIsActive(href, item),
12400
13995
  children: [
12401
- item.icon && /* @__PURE__ */ (0, import_jsx_runtime105.jsx)(item.icon, {}),
12402
- /* @__PURE__ */ (0, import_jsx_runtime105.jsx)("span", { children: item.title }),
12403
- item.badge && /* @__PURE__ */ (0, import_jsx_runtime105.jsx)(NavBadge, { children: item.badge }),
12404
- /* @__PURE__ */ (0, import_jsx_runtime105.jsx)(import_lucide_react54.ChevronRight, { className: "ms-auto transition-transform duration-200 group-data-[state=open]/collapsible:rotate-90" })
13996
+ item.icon && /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(item.icon, {}),
13997
+ /* @__PURE__ */ (0, import_jsx_runtime111.jsx)("span", { children: item.title }),
13998
+ item.badge && /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(NavBadge, { children: item.badge }),
13999
+ /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(import_lucide_react60.ChevronRight, { className: "ms-auto transition-transform duration-200 group-data-[state=open]/collapsible:rotate-90" })
12405
14000
  ]
12406
14001
  }
12407
14002
  ) }),
12408
- /* @__PURE__ */ (0, import_jsx_runtime105.jsxs)(DropdownMenuContent, { side: "right", align: "start", sideOffset: 4, children: [
12409
- /* @__PURE__ */ (0, import_jsx_runtime105.jsxs)(DropdownMenuLabel, { children: [
14003
+ /* @__PURE__ */ (0, import_jsx_runtime111.jsxs)(DropdownMenuContent, { side: "right", align: "start", sideOffset: 4, children: [
14004
+ /* @__PURE__ */ (0, import_jsx_runtime111.jsxs)(DropdownMenuLabel, { children: [
12410
14005
  item.title,
12411
14006
  " ",
12412
14007
  item.badge ? `(${item.badge})` : ""
12413
14008
  ] }),
12414
- /* @__PURE__ */ (0, import_jsx_runtime105.jsx)(DropdownMenuSeparator, {}),
12415
- item.items.map((sub) => /* @__PURE__ */ (0, import_jsx_runtime105.jsx)(DropdownMenuItem, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime105.jsxs)(
14009
+ /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(DropdownMenuSeparator, {}),
14010
+ item.items.map((sub) => /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(DropdownMenuItem, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime111.jsxs)(
12416
14011
  import_link.default,
12417
14012
  {
12418
14013
  href: sub.url,
12419
14014
  className: `${checkIsActive(href, sub) ? "bg-secondary" : ""}`,
12420
14015
  children: [
12421
- sub.icon && /* @__PURE__ */ (0, import_jsx_runtime105.jsx)(sub.icon, {}),
12422
- /* @__PURE__ */ (0, import_jsx_runtime105.jsx)("span", { className: "max-w-52 text-wrap", children: sub.title }),
12423
- sub.badge && /* @__PURE__ */ (0, import_jsx_runtime105.jsx)("span", { className: "ms-auto text-xs", children: sub.badge })
14016
+ sub.icon && /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(sub.icon, {}),
14017
+ /* @__PURE__ */ (0, import_jsx_runtime111.jsx)("span", { className: "max-w-52 text-wrap", children: sub.title }),
14018
+ sub.badge && /* @__PURE__ */ (0, import_jsx_runtime111.jsx)("span", { className: "ms-auto text-xs", children: sub.badge })
12424
14019
  ]
12425
14020
  }
12426
14021
  ) }, `${sub.title}-${sub.url}`))
@@ -12435,20 +14030,20 @@ function checkIsActive(href, item, mainNav = false) {
12435
14030
  }
12436
14031
 
12437
14032
  // src/design-system/templates/team-switcher.tsx
12438
- var import_jsx_runtime106 = require("react/jsx-runtime");
14033
+ var import_jsx_runtime112 = require("react/jsx-runtime");
12439
14034
  function TeamSwitcher({ teams }) {
12440
14035
  useSidebar();
12441
14036
  const activeTeam = teams[0];
12442
- return /* @__PURE__ */ (0, import_jsx_runtime106.jsx)(SidebarMenu, { children: /* @__PURE__ */ (0, import_jsx_runtime106.jsx)(SidebarMenuItem, { children: /* @__PURE__ */ (0, import_jsx_runtime106.jsxs)(
14037
+ return /* @__PURE__ */ (0, import_jsx_runtime112.jsx)(SidebarMenu, { children: /* @__PURE__ */ (0, import_jsx_runtime112.jsx)(SidebarMenuItem, { children: /* @__PURE__ */ (0, import_jsx_runtime112.jsxs)(
12443
14038
  SidebarMenuButton,
12444
14039
  {
12445
14040
  size: "lg",
12446
14041
  className: "data-[state=open]:bg-sidebar-accent data-[state=open]:text-sidebar-accent-foreground",
12447
14042
  children: [
12448
- /* @__PURE__ */ (0, import_jsx_runtime106.jsx)("div", { className: "flex aspect-square size-8 items-center justify-center rounded-lg bg-sidebar-primary text-sidebar-primary-foreground", children: /* @__PURE__ */ (0, import_jsx_runtime106.jsx)(activeTeam.logo, { className: "size-4" }) }),
12449
- /* @__PURE__ */ (0, import_jsx_runtime106.jsxs)("div", { className: "grid flex-1 text-start text-sm leading-tight", children: [
12450
- /* @__PURE__ */ (0, import_jsx_runtime106.jsx)("span", { className: "truncate font-semibold", children: activeTeam.name }),
12451
- /* @__PURE__ */ (0, import_jsx_runtime106.jsx)("span", { className: "truncate text-xs", children: activeTeam.plan })
14043
+ /* @__PURE__ */ (0, import_jsx_runtime112.jsx)("div", { className: "flex aspect-square size-8 items-center justify-center rounded-lg bg-sidebar-primary text-sidebar-primary-foreground", children: /* @__PURE__ */ (0, import_jsx_runtime112.jsx)(activeTeam.logo, { className: "size-4" }) }),
14044
+ /* @__PURE__ */ (0, import_jsx_runtime112.jsxs)("div", { className: "grid flex-1 text-start text-sm leading-tight", children: [
14045
+ /* @__PURE__ */ (0, import_jsx_runtime112.jsx)("span", { className: "truncate font-semibold", children: activeTeam.name }),
14046
+ /* @__PURE__ */ (0, import_jsx_runtime112.jsx)("span", { className: "truncate text-xs", children: activeTeam.plan })
12452
14047
  ] })
12453
14048
  ]
12454
14049
  }
@@ -12456,25 +14051,25 @@ function TeamSwitcher({ teams }) {
12456
14051
  }
12457
14052
 
12458
14053
  // src/design-system/templates/nav-user.tsx
12459
- var import_lucide_react56 = require("lucide-react");
14054
+ var import_lucide_react62 = require("lucide-react");
12460
14055
 
12461
14056
  // src/hooks/use-dialog-state.tsx
12462
- var import_react20 = require("react");
14057
+ var import_react23 = require("react");
12463
14058
  function useDialogState(initialState2 = null) {
12464
- const [open, _setOpen] = (0, import_react20.useState)(initialState2);
14059
+ const [open, _setOpen] = (0, import_react23.useState)(initialState2);
12465
14060
  const setOpen = (str) => _setOpen((prev) => prev === str ? null : str);
12466
14061
  return [open, setOpen];
12467
14062
  }
12468
14063
 
12469
14064
  // src/components/config-drawer.tsx
12470
- var import_react21 = require("react");
14065
+ var import_react24 = require("react");
12471
14066
  var import_react_radio_group = require("@radix-ui/react-radio-group");
12472
- var import_lucide_react55 = require("lucide-react");
14067
+ var import_lucide_react61 = require("lucide-react");
12473
14068
 
12474
14069
  // src/assets/custom/icon-theme-dark.tsx
12475
- var import_jsx_runtime107 = require("react/jsx-runtime");
14070
+ var import_jsx_runtime113 = require("react/jsx-runtime");
12476
14071
  function IconThemeDark(props) {
12477
- return /* @__PURE__ */ (0, import_jsx_runtime107.jsxs)(
14072
+ return /* @__PURE__ */ (0, import_jsx_runtime113.jsxs)(
12478
14073
  "svg",
12479
14074
  {
12480
14075
  "data-name": "icon-theme-dark",
@@ -12482,27 +14077,27 @@ function IconThemeDark(props) {
12482
14077
  viewBox: "0 0 79.86 51.14",
12483
14078
  ...props,
12484
14079
  children: [
12485
- /* @__PURE__ */ (0, import_jsx_runtime107.jsxs)("g", { fill: "#1d2b3f", children: [
12486
- /* @__PURE__ */ (0, import_jsx_runtime107.jsx)("rect", { x: 0.53, y: 0.5, width: 78.83, height: 50.14, rx: 3.5, ry: 3.5 }),
12487
- /* @__PURE__ */ (0, import_jsx_runtime107.jsx)("path", { d: "M75.86 1c1.65 0 3 1.35 3 3v43.14c0 1.65-1.35 3-3 3H4.03c-1.65 0-3-1.35-3-3V4c0-1.65 1.35-3 3-3h71.83m0-1H4.03c-2.21 0-4 1.79-4 4v43.14c0 2.21 1.79 4 4 4h71.83c2.21 0 4-1.79 4-4V4c0-2.21-1.79-4-4-4z" })
14080
+ /* @__PURE__ */ (0, import_jsx_runtime113.jsxs)("g", { fill: "#1d2b3f", children: [
14081
+ /* @__PURE__ */ (0, import_jsx_runtime113.jsx)("rect", { x: 0.53, y: 0.5, width: 78.83, height: 50.14, rx: 3.5, ry: 3.5 }),
14082
+ /* @__PURE__ */ (0, import_jsx_runtime113.jsx)("path", { d: "M75.86 1c1.65 0 3 1.35 3 3v43.14c0 1.65-1.35 3-3 3H4.03c-1.65 0-3-1.35-3-3V4c0-1.65 1.35-3 3-3h71.83m0-1H4.03c-2.21 0-4 1.79-4 4v43.14c0 2.21 1.79 4 4 4h71.83c2.21 0 4-1.79 4-4V4c0-2.21-1.79-4-4-4z" })
12488
14083
  ] }),
12489
- /* @__PURE__ */ (0, import_jsx_runtime107.jsx)(
14084
+ /* @__PURE__ */ (0, import_jsx_runtime113.jsx)(
12490
14085
  "path",
12491
14086
  {
12492
14087
  d: "M22.88 0h52.97c2.21 0 4 1.79 4 4v43.14c0 2.21-1.79 4-4 4H22.88V0z",
12493
14088
  fill: "#0d1628"
12494
14089
  }
12495
14090
  ),
12496
- /* @__PURE__ */ (0, import_jsx_runtime107.jsx)("circle", { cx: 6.7, cy: 7.04, r: 3.54, fill: "#426187" }),
12497
- /* @__PURE__ */ (0, import_jsx_runtime107.jsx)(
14091
+ /* @__PURE__ */ (0, import_jsx_runtime113.jsx)("circle", { cx: 6.7, cy: 7.04, r: 3.54, fill: "#426187" }),
14092
+ /* @__PURE__ */ (0, import_jsx_runtime113.jsx)(
12498
14093
  "path",
12499
14094
  {
12500
14095
  d: "M18.12 6.39h-5.87c-.6 0-1.09-.45-1.09-1s.49-1 1.09-1h5.87c.6 0 1.09.45 1.09 1s-.49 1-1.09 1zM16.55 9.77h-4.24c-.55 0-1-.45-1-1s.45-1 1-1h4.24c.55 0 1 .45 1 1s-.45 1-1 1zM18.32 17.37H4.59c-.69 0-1.25-.47-1.25-1.05s.56-1.05 1.25-1.05h13.73c.69 0 1.25.47 1.25 1.05s-.56 1.05-1.25 1.05zM15.34 21.26h-11c-.55 0-1-.41-1-.91s.45-.91 1-.91h11c.55 0 1 .41 1 .91s-.45.91-1 .91zM16.46 25.57H4.43c-.6 0-1.09-.44-1.09-.98s.49-.98 1.09-.98h12.03c.6 0 1.09.44 1.09.98s-.49.98-1.09.98z",
12501
14096
  fill: "#426187"
12502
14097
  }
12503
14098
  ),
12504
- /* @__PURE__ */ (0, import_jsx_runtime107.jsxs)("g", { fill: "#2a62bc", children: [
12505
- /* @__PURE__ */ (0, import_jsx_runtime107.jsx)(
14099
+ /* @__PURE__ */ (0, import_jsx_runtime113.jsxs)("g", { fill: "#2a62bc", children: [
14100
+ /* @__PURE__ */ (0, import_jsx_runtime113.jsx)(
12506
14101
  "rect",
12507
14102
  {
12508
14103
  x: 33.36,
@@ -12514,7 +14109,7 @@ function IconThemeDark(props) {
12514
14109
  opacity: 0.32
12515
14110
  }
12516
14111
  ),
12517
- /* @__PURE__ */ (0, import_jsx_runtime107.jsx)(
14112
+ /* @__PURE__ */ (0, import_jsx_runtime113.jsx)(
12518
14113
  "rect",
12519
14114
  {
12520
14115
  x: 29.64,
@@ -12526,7 +14121,7 @@ function IconThemeDark(props) {
12526
14121
  opacity: 0.44
12527
14122
  }
12528
14123
  ),
12529
- /* @__PURE__ */ (0, import_jsx_runtime107.jsx)(
14124
+ /* @__PURE__ */ (0, import_jsx_runtime113.jsx)(
12530
14125
  "rect",
12531
14126
  {
12532
14127
  x: 37.16,
@@ -12538,7 +14133,7 @@ function IconThemeDark(props) {
12538
14133
  opacity: 0.53
12539
14134
  }
12540
14135
  ),
12541
- /* @__PURE__ */ (0, import_jsx_runtime107.jsx)(
14136
+ /* @__PURE__ */ (0, import_jsx_runtime113.jsx)(
12542
14137
  "rect",
12543
14138
  {
12544
14139
  x: 41.19,
@@ -12551,8 +14146,8 @@ function IconThemeDark(props) {
12551
14146
  }
12552
14147
  )
12553
14148
  ] }),
12554
- /* @__PURE__ */ (0, import_jsx_runtime107.jsx)("circle", { cx: 62.74, cy: 16.32, r: 8, fill: "#2f5491", opacity: 0.5 }),
12555
- /* @__PURE__ */ (0, import_jsx_runtime107.jsx)(
14149
+ /* @__PURE__ */ (0, import_jsx_runtime113.jsx)("circle", { cx: 62.74, cy: 16.32, r: 8, fill: "#2f5491", opacity: 0.5 }),
14150
+ /* @__PURE__ */ (0, import_jsx_runtime113.jsx)(
12556
14151
  "path",
12557
14152
  {
12558
14153
  d: "M62.74 16.32l4.1-6.87c1.19.71 2.18 1.72 2.86 2.92s1.04 2.57 1.04 3.95h-8z",
@@ -12560,7 +14155,7 @@ function IconThemeDark(props) {
12560
14155
  opacity: 0.74
12561
14156
  }
12562
14157
  ),
12563
- /* @__PURE__ */ (0, import_jsx_runtime107.jsx)(
14158
+ /* @__PURE__ */ (0, import_jsx_runtime113.jsx)(
12564
14159
  "rect",
12565
14160
  {
12566
14161
  x: 29.64,
@@ -12578,9 +14173,9 @@ function IconThemeDark(props) {
12578
14173
  }
12579
14174
 
12580
14175
  // src/assets/custom/icon-theme-light.tsx
12581
- var import_jsx_runtime108 = require("react/jsx-runtime");
14176
+ var import_jsx_runtime114 = require("react/jsx-runtime");
12582
14177
  function IconThemeLight(props) {
12583
- return /* @__PURE__ */ (0, import_jsx_runtime108.jsxs)(
14178
+ return /* @__PURE__ */ (0, import_jsx_runtime114.jsxs)(
12584
14179
  "svg",
12585
14180
  {
12586
14181
  "data-name": "icon-theme-light",
@@ -12588,27 +14183,27 @@ function IconThemeLight(props) {
12588
14183
  viewBox: "0 0 79.86 51.14",
12589
14184
  ...props,
12590
14185
  children: [
12591
- /* @__PURE__ */ (0, import_jsx_runtime108.jsxs)("g", { fill: "#d9d9d9", children: [
12592
- /* @__PURE__ */ (0, import_jsx_runtime108.jsx)("rect", { x: 0.53, y: 0.5, width: 78.83, height: 50.14, rx: 3.5, ry: 3.5 }),
12593
- /* @__PURE__ */ (0, import_jsx_runtime108.jsx)("path", { d: "M75.86 1c1.65 0 3 1.35 3 3v43.14c0 1.65-1.35 3-3 3H4.03c-1.65 0-3-1.35-3-3V4c0-1.65 1.35-3 3-3h71.83m0-1H4.03c-2.21 0-4 1.79-4 4v43.14c0 2.21 1.79 4 4 4h71.83c2.21 0 4-1.79 4-4V4c0-2.21-1.79-4-4-4z" })
14186
+ /* @__PURE__ */ (0, import_jsx_runtime114.jsxs)("g", { fill: "#d9d9d9", children: [
14187
+ /* @__PURE__ */ (0, import_jsx_runtime114.jsx)("rect", { x: 0.53, y: 0.5, width: 78.83, height: 50.14, rx: 3.5, ry: 3.5 }),
14188
+ /* @__PURE__ */ (0, import_jsx_runtime114.jsx)("path", { d: "M75.86 1c1.65 0 3 1.35 3 3v43.14c0 1.65-1.35 3-3 3H4.03c-1.65 0-3-1.35-3-3V4c0-1.65 1.35-3 3-3h71.83m0-1H4.03c-2.21 0-4 1.79-4 4v43.14c0 2.21 1.79 4 4 4h71.83c2.21 0 4-1.79 4-4V4c0-2.21-1.79-4-4-4z" })
12594
14189
  ] }),
12595
- /* @__PURE__ */ (0, import_jsx_runtime108.jsx)(
14190
+ /* @__PURE__ */ (0, import_jsx_runtime114.jsx)(
12596
14191
  "path",
12597
14192
  {
12598
14193
  d: "M22.88 0h52.97c2.21 0 4 1.79 4 4v43.14c0 2.21-1.79 4-4 4H22.88V0z",
12599
14194
  fill: "#ecedef"
12600
14195
  }
12601
14196
  ),
12602
- /* @__PURE__ */ (0, import_jsx_runtime108.jsx)("circle", { cx: 6.7, cy: 7.04, r: 3.54, fill: "#fff" }),
12603
- /* @__PURE__ */ (0, import_jsx_runtime108.jsx)(
14197
+ /* @__PURE__ */ (0, import_jsx_runtime114.jsx)("circle", { cx: 6.7, cy: 7.04, r: 3.54, fill: "#fff" }),
14198
+ /* @__PURE__ */ (0, import_jsx_runtime114.jsx)(
12604
14199
  "path",
12605
14200
  {
12606
14201
  d: "M18.12 6.39h-5.87c-.6 0-1.09-.45-1.09-1s.49-1 1.09-1h5.87c.6 0 1.09.45 1.09 1s-.49 1-1.09 1zM16.55 9.77h-4.24c-.55 0-1-.45-1-1s.45-1 1-1h4.24c.55 0 1 .45 1 1s-.45 1-1 1zM18.32 17.37H4.59c-.69 0-1.25-.47-1.25-1.05s.56-1.05 1.25-1.05h13.73c.69 0 1.25.47 1.25 1.05s-.56 1.05-1.25 1.05zM15.34 21.26h-11c-.55 0-1-.41-1-.91s.45-.91 1-.91h11c.55 0 1 .41 1 .91s-.45.91-1 .91zM16.46 25.57H4.43c-.6 0-1.09-.44-1.09-.98s.49-.98 1.09-.98h12.03c.6 0 1.09.44 1.09.98s-.49.98-1.09.98z",
12607
14202
  fill: "#fff"
12608
14203
  }
12609
14204
  ),
12610
- /* @__PURE__ */ (0, import_jsx_runtime108.jsxs)("g", { fill: "#c0c4c4", children: [
12611
- /* @__PURE__ */ (0, import_jsx_runtime108.jsx)(
14205
+ /* @__PURE__ */ (0, import_jsx_runtime114.jsxs)("g", { fill: "#c0c4c4", children: [
14206
+ /* @__PURE__ */ (0, import_jsx_runtime114.jsx)(
12612
14207
  "rect",
12613
14208
  {
12614
14209
  x: 33.36,
@@ -12620,7 +14215,7 @@ function IconThemeLight(props) {
12620
14215
  opacity: 0.32
12621
14216
  }
12622
14217
  ),
12623
- /* @__PURE__ */ (0, import_jsx_runtime108.jsx)(
14218
+ /* @__PURE__ */ (0, import_jsx_runtime114.jsx)(
12624
14219
  "rect",
12625
14220
  {
12626
14221
  x: 29.64,
@@ -12632,7 +14227,7 @@ function IconThemeLight(props) {
12632
14227
  opacity: 0.44
12633
14228
  }
12634
14229
  ),
12635
- /* @__PURE__ */ (0, import_jsx_runtime108.jsx)(
14230
+ /* @__PURE__ */ (0, import_jsx_runtime114.jsx)(
12636
14231
  "rect",
12637
14232
  {
12638
14233
  x: 37.16,
@@ -12644,7 +14239,7 @@ function IconThemeLight(props) {
12644
14239
  opacity: 0.53
12645
14240
  }
12646
14241
  ),
12647
- /* @__PURE__ */ (0, import_jsx_runtime108.jsx)(
14242
+ /* @__PURE__ */ (0, import_jsx_runtime114.jsx)(
12648
14243
  "rect",
12649
14244
  {
12650
14245
  x: 41.19,
@@ -12657,12 +14252,12 @@ function IconThemeLight(props) {
12657
14252
  }
12658
14253
  )
12659
14254
  ] }),
12660
- /* @__PURE__ */ (0, import_jsx_runtime108.jsx)("circle", { cx: 62.74, cy: 16.32, r: 8, fill: "#fff" }),
12661
- /* @__PURE__ */ (0, import_jsx_runtime108.jsxs)("g", { fill: "#d9d9d9", children: [
12662
- /* @__PURE__ */ (0, import_jsx_runtime108.jsx)("path", { d: "M63.62 15.82L67 10.15c.93.64 1.7 1.48 2.26 2.47.56.98.89 2.08.96 3.21h-6.6z" }),
12663
- /* @__PURE__ */ (0, import_jsx_runtime108.jsx)("path", { d: "M67.14 10.88a6.977 6.977 0 012.52 4.44h-5.17l2.65-4.44m-.31-1.43l-4.1 6.87h8c0-1.39-.36-2.75-1.04-3.95s-1.67-2.21-2.86-2.92z" })
14255
+ /* @__PURE__ */ (0, import_jsx_runtime114.jsx)("circle", { cx: 62.74, cy: 16.32, r: 8, fill: "#fff" }),
14256
+ /* @__PURE__ */ (0, import_jsx_runtime114.jsxs)("g", { fill: "#d9d9d9", children: [
14257
+ /* @__PURE__ */ (0, import_jsx_runtime114.jsx)("path", { d: "M63.62 15.82L67 10.15c.93.64 1.7 1.48 2.26 2.47.56.98.89 2.08.96 3.21h-6.6z" }),
14258
+ /* @__PURE__ */ (0, import_jsx_runtime114.jsx)("path", { d: "M67.14 10.88a6.977 6.977 0 012.52 4.44h-5.17l2.65-4.44m-.31-1.43l-4.1 6.87h8c0-1.39-.36-2.75-1.04-3.95s-1.67-2.21-2.86-2.92z" })
12664
14259
  ] }),
12665
- /* @__PURE__ */ (0, import_jsx_runtime108.jsx)(
14260
+ /* @__PURE__ */ (0, import_jsx_runtime114.jsx)(
12666
14261
  "rect",
12667
14262
  {
12668
14263
  x: 29.64,
@@ -12680,12 +14275,12 @@ function IconThemeLight(props) {
12680
14275
  }
12681
14276
 
12682
14277
  // src/assets/custom/icon-theme-system.tsx
12683
- var import_jsx_runtime109 = require("react/jsx-runtime");
14278
+ var import_jsx_runtime115 = require("react/jsx-runtime");
12684
14279
  function IconThemeSystem({
12685
14280
  className,
12686
14281
  ...props
12687
14282
  }) {
12688
- return /* @__PURE__ */ (0, import_jsx_runtime109.jsxs)(
14283
+ return /* @__PURE__ */ (0, import_jsx_runtime115.jsxs)(
12689
14284
  "svg",
12690
14285
  {
12691
14286
  "data-name": "icon-theme-system",
@@ -12698,8 +14293,8 @@ function IconThemeSystem({
12698
14293
  ),
12699
14294
  ...props,
12700
14295
  children: [
12701
- /* @__PURE__ */ (0, import_jsx_runtime109.jsx)("path", { opacity: 0.2, d: "M0 0.03H22.88V51.17H0z" }),
12702
- /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(
14296
+ /* @__PURE__ */ (0, import_jsx_runtime115.jsx)("path", { opacity: 0.2, d: "M0 0.03H22.88V51.17H0z" }),
14297
+ /* @__PURE__ */ (0, import_jsx_runtime115.jsx)(
12703
14298
  "circle",
12704
14299
  {
12705
14300
  cx: 6.7,
@@ -12712,7 +14307,7 @@ function IconThemeSystem({
12712
14307
  strokeMiterlimit: 10
12713
14308
  }
12714
14309
  ),
12715
- /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(
14310
+ /* @__PURE__ */ (0, import_jsx_runtime115.jsx)(
12716
14311
  "path",
12717
14312
  {
12718
14313
  d: "M18.12 6.39h-5.87c-.6 0-1.09-.45-1.09-1s.49-1 1.09-1h5.87c.6 0 1.09.45 1.09 1s-.49 1-1.09 1zM16.55 9.77h-4.24c-.55 0-1-.45-1-1s.45-1 1-1h4.24c.55 0 1 .45 1 1s-.45 1-1 1z",
@@ -12721,7 +14316,7 @@ function IconThemeSystem({
12721
14316
  opacity: 0.75
12722
14317
  }
12723
14318
  ),
12724
- /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(
14319
+ /* @__PURE__ */ (0, import_jsx_runtime115.jsx)(
12725
14320
  "path",
12726
14321
  {
12727
14322
  d: "M18.32 17.37H4.59c-.69 0-1.25-.47-1.25-1.05s.56-1.05 1.25-1.05h13.73c.69 0 1.25.47 1.25 1.05s-.56 1.05-1.25 1.05z",
@@ -12730,7 +14325,7 @@ function IconThemeSystem({
12730
14325
  opacity: 0.72
12731
14326
  }
12732
14327
  ),
12733
- /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(
14328
+ /* @__PURE__ */ (0, import_jsx_runtime115.jsx)(
12734
14329
  "path",
12735
14330
  {
12736
14331
  d: "M15.34 21.26h-11c-.55 0-1-.41-1-.91s.45-.91 1-.91h11c.55 0 1 .41 1 .91s-.45.91-1 .91z",
@@ -12739,7 +14334,7 @@ function IconThemeSystem({
12739
14334
  opacity: 0.55
12740
14335
  }
12741
14336
  ),
12742
- /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(
14337
+ /* @__PURE__ */ (0, import_jsx_runtime115.jsx)(
12743
14338
  "path",
12744
14339
  {
12745
14340
  d: "M16.46 25.57H4.43c-.6 0-1.09-.44-1.09-.98s.49-.98 1.09-.98h12.03c.6 0 1.09.44 1.09.98s-.49.98-1.09.98z",
@@ -12748,7 +14343,7 @@ function IconThemeSystem({
12748
14343
  opacity: 0.67
12749
14344
  }
12750
14345
  ),
12751
- /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(
14346
+ /* @__PURE__ */ (0, import_jsx_runtime115.jsx)(
12752
14347
  "rect",
12753
14348
  {
12754
14349
  x: 33.36,
@@ -12761,7 +14356,7 @@ function IconThemeSystem({
12761
14356
  stroke: "none"
12762
14357
  }
12763
14358
  ),
12764
- /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(
14359
+ /* @__PURE__ */ (0, import_jsx_runtime115.jsx)(
12765
14360
  "rect",
12766
14361
  {
12767
14362
  x: 29.64,
@@ -12774,7 +14369,7 @@ function IconThemeSystem({
12774
14369
  stroke: "none"
12775
14370
  }
12776
14371
  ),
12777
- /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(
14372
+ /* @__PURE__ */ (0, import_jsx_runtime115.jsx)(
12778
14373
  "rect",
12779
14374
  {
12780
14375
  x: 37.16,
@@ -12787,7 +14382,7 @@ function IconThemeSystem({
12787
14382
  stroke: "none"
12788
14383
  }
12789
14384
  ),
12790
- /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(
14385
+ /* @__PURE__ */ (0, import_jsx_runtime115.jsx)(
12791
14386
  "rect",
12792
14387
  {
12793
14388
  x: 41.19,
@@ -12800,9 +14395,9 @@ function IconThemeSystem({
12800
14395
  stroke: "none"
12801
14396
  }
12802
14397
  ),
12803
- /* @__PURE__ */ (0, import_jsx_runtime109.jsxs)("g", { children: [
12804
- /* @__PURE__ */ (0, import_jsx_runtime109.jsx)("circle", { cx: 62.74, cy: 16.32, r: 8, opacity: 0.25 }),
12805
- /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(
14398
+ /* @__PURE__ */ (0, import_jsx_runtime115.jsxs)("g", { children: [
14399
+ /* @__PURE__ */ (0, import_jsx_runtime115.jsx)("circle", { cx: 62.74, cy: 16.32, r: 8, opacity: 0.25 }),
14400
+ /* @__PURE__ */ (0, import_jsx_runtime115.jsx)(
12806
14401
  "path",
12807
14402
  {
12808
14403
  d: "M62.74 16.32l4.1-6.87c1.19.71 2.18 1.72 2.86 2.92s1.04 2.57 1.04 3.95h-8z",
@@ -12810,7 +14405,7 @@ function IconThemeSystem({
12810
14405
  }
12811
14406
  )
12812
14407
  ] }),
12813
- /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(
14408
+ /* @__PURE__ */ (0, import_jsx_runtime115.jsx)(
12814
14409
  "rect",
12815
14410
  {
12816
14411
  x: 29.64,
@@ -12831,7 +14426,7 @@ function IconThemeSystem({
12831
14426
  }
12832
14427
 
12833
14428
  // src/components/config-drawer.tsx
12834
- var import_jsx_runtime110 = require("react/jsx-runtime");
14429
+ var import_jsx_runtime116 = require("react/jsx-runtime");
12835
14430
  function ConfigDrawer({
12836
14431
  trigger
12837
14432
  }) {
@@ -12841,27 +14436,27 @@ function ConfigDrawer({
12841
14436
  resetTheme();
12842
14437
  resetColorTheme();
12843
14438
  };
12844
- return /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(Sheet, { children: [
12845
- /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(SheetTrigger, { asChild: true, children: trigger ?? /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(
14439
+ return /* @__PURE__ */ (0, import_jsx_runtime116.jsxs)(Sheet, { children: [
14440
+ /* @__PURE__ */ (0, import_jsx_runtime116.jsx)(SheetTrigger, { asChild: true, children: trigger ?? /* @__PURE__ */ (0, import_jsx_runtime116.jsx)(
12846
14441
  Button,
12847
14442
  {
12848
14443
  size: "icon",
12849
14444
  variant: "ghost",
12850
14445
  "aria-label": "Open theme settings",
12851
14446
  className: "rounded-full",
12852
- children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(import_lucide_react55.Settings, { "aria-hidden": "true" })
14447
+ children: /* @__PURE__ */ (0, import_jsx_runtime116.jsx)(import_lucide_react61.Settings, { "aria-hidden": "true" })
12853
14448
  }
12854
14449
  ) }),
12855
- /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(SheetContent, { className: "flex flex-col", children: [
12856
- /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(SheetHeader, { className: "pb-0 text-start", children: [
12857
- /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(SheetTitle, { children: "Theme Settings" }),
12858
- /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(SheetDescription, { children: "Customize the look and feel of your dashboard." })
14450
+ /* @__PURE__ */ (0, import_jsx_runtime116.jsxs)(SheetContent, { className: "flex flex-col", children: [
14451
+ /* @__PURE__ */ (0, import_jsx_runtime116.jsxs)(SheetHeader, { className: "pb-0 text-start", children: [
14452
+ /* @__PURE__ */ (0, import_jsx_runtime116.jsx)(SheetTitle, { children: "Theme Settings" }),
14453
+ /* @__PURE__ */ (0, import_jsx_runtime116.jsx)(SheetDescription, { children: "Customize the look and feel of your dashboard." })
12859
14454
  ] }),
12860
- /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)("div", { className: "flex flex-1 flex-col gap-6 overflow-hidden px-4", children: [
12861
- /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(ThemeConfig, {}),
12862
- /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(ThemeListSelector, {})
14455
+ /* @__PURE__ */ (0, import_jsx_runtime116.jsxs)("div", { className: "flex flex-1 flex-col gap-6 overflow-hidden px-4", children: [
14456
+ /* @__PURE__ */ (0, import_jsx_runtime116.jsx)(ThemeConfig, {}),
14457
+ /* @__PURE__ */ (0, import_jsx_runtime116.jsx)(ThemeListSelector, {})
12863
14458
  ] }),
12864
- /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(SheetFooter, { className: "gap-2", children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(
14459
+ /* @__PURE__ */ (0, import_jsx_runtime116.jsx)(SheetFooter, { className: "gap-2", children: /* @__PURE__ */ (0, import_jsx_runtime116.jsx)(
12865
14460
  Button,
12866
14461
  {
12867
14462
  variant: "destructive",
@@ -12879,7 +14474,7 @@ function SectionTitle({
12879
14474
  resetAriaLabel,
12880
14475
  className
12881
14476
  }) {
12882
- return /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(
14477
+ return /* @__PURE__ */ (0, import_jsx_runtime116.jsxs)(
12883
14478
  "div",
12884
14479
  {
12885
14480
  className: cn(
@@ -12888,7 +14483,7 @@ function SectionTitle({
12888
14483
  ),
12889
14484
  children: [
12890
14485
  title,
12891
- showReset && onReset && /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(
14486
+ showReset && onReset && /* @__PURE__ */ (0, import_jsx_runtime116.jsx)(
12892
14487
  Button,
12893
14488
  {
12894
14489
  type: "button",
@@ -12897,7 +14492,7 @@ function SectionTitle({
12897
14492
  className: "size-4 rounded-full",
12898
14493
  onClick: onReset,
12899
14494
  "aria-label": resetAriaLabel,
12900
- children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(import_lucide_react55.RotateCcw, { className: "size-3" })
14495
+ children: /* @__PURE__ */ (0, import_jsx_runtime116.jsx)(import_lucide_react61.RotateCcw, { className: "size-3" })
12901
14496
  }
12902
14497
  )
12903
14498
  ]
@@ -12908,7 +14503,7 @@ function RadioGroupItem2({
12908
14503
  item,
12909
14504
  isTheme = false
12910
14505
  }) {
12911
- return /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(
14506
+ return /* @__PURE__ */ (0, import_jsx_runtime116.jsxs)(
12912
14507
  import_react_radio_group.Item,
12913
14508
  {
12914
14509
  value: item.value,
@@ -12916,7 +14511,7 @@ function RadioGroupItem2({
12916
14511
  "aria-label": `Select ${item.label.toLowerCase()}`,
12917
14512
  "aria-describedby": `${item.value}-description`,
12918
14513
  children: [
12919
- /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(
14514
+ /* @__PURE__ */ (0, import_jsx_runtime116.jsxs)(
12920
14515
  "div",
12921
14516
  {
12922
14517
  className: cn(
@@ -12928,8 +14523,8 @@ function RadioGroupItem2({
12928
14523
  "aria-hidden": "false",
12929
14524
  "aria-label": `${item.label} option preview`,
12930
14525
  children: [
12931
- /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(
12932
- import_lucide_react55.CircleCheck,
14526
+ /* @__PURE__ */ (0, import_jsx_runtime116.jsx)(
14527
+ import_lucide_react61.CircleCheck,
12933
14528
  {
12934
14529
  className: cn(
12935
14530
  "size-6 fill-primary stroke-white",
@@ -12939,7 +14534,7 @@ function RadioGroupItem2({
12939
14534
  "aria-hidden": "true"
12940
14535
  }
12941
14536
  ),
12942
- /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(
14537
+ /* @__PURE__ */ (0, import_jsx_runtime116.jsx)(
12943
14538
  item.icon,
12944
14539
  {
12945
14540
  className: cn(
@@ -12951,7 +14546,7 @@ function RadioGroupItem2({
12951
14546
  ]
12952
14547
  }
12953
14548
  ),
12954
- /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(
14549
+ /* @__PURE__ */ (0, import_jsx_runtime116.jsx)(
12955
14550
  "div",
12956
14551
  {
12957
14552
  className: "mt-1 text-xs",
@@ -12966,8 +14561,8 @@ function RadioGroupItem2({
12966
14561
  }
12967
14562
  function ThemeConfig() {
12968
14563
  const { defaultTheme, theme, setTheme } = useTheme2();
12969
- return /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)("div", { children: [
12970
- /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(
14564
+ return /* @__PURE__ */ (0, import_jsx_runtime116.jsxs)("div", { children: [
14565
+ /* @__PURE__ */ (0, import_jsx_runtime116.jsx)(
12971
14566
  SectionTitle,
12972
14567
  {
12973
14568
  title: "Theme",
@@ -12976,7 +14571,7 @@ function ThemeConfig() {
12976
14571
  resetAriaLabel: "Reset theme preference to default"
12977
14572
  }
12978
14573
  ),
12979
- /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(
14574
+ /* @__PURE__ */ (0, import_jsx_runtime116.jsx)(
12980
14575
  import_react_radio_group.Root,
12981
14576
  {
12982
14577
  value: theme,
@@ -13000,20 +14595,20 @@ function ThemeConfig() {
13000
14595
  label: "Dark",
13001
14596
  icon: IconThemeDark
13002
14597
  }
13003
- ].map((item) => /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(RadioGroupItem2, { item, isTheme: true }, item.value))
14598
+ ].map((item) => /* @__PURE__ */ (0, import_jsx_runtime116.jsx)(RadioGroupItem2, { item, isTheme: true }, item.value))
13004
14599
  }
13005
14600
  ),
13006
- /* @__PURE__ */ (0, import_jsx_runtime110.jsx)("div", { id: "theme-description", className: "sr-only", children: "Choose between system preference, light mode, or dark mode" })
14601
+ /* @__PURE__ */ (0, import_jsx_runtime116.jsx)("div", { id: "theme-description", className: "sr-only", children: "Choose between system preference, light mode, or dark mode" })
13007
14602
  ] });
13008
14603
  }
13009
14604
  function ThemeListSelector() {
13010
- const [search, setSearch] = (0, import_react21.useState)("");
14605
+ const [search, setSearch] = (0, import_react24.useState)("");
13011
14606
  const { colorTheme, setColorTheme } = useColorTheme();
13012
14607
  const filtered = colorThemes.filter(
13013
14608
  (t) => t.label.toLowerCase().includes(search.toLowerCase())
13014
14609
  );
13015
- return /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)("div", { className: "flex min-h-0 flex-1 flex-col", children: [
13016
- /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(
14610
+ return /* @__PURE__ */ (0, import_jsx_runtime116.jsxs)("div", { className: "flex min-h-0 flex-1 flex-col", children: [
14611
+ /* @__PURE__ */ (0, import_jsx_runtime116.jsx)(
13017
14612
  SectionTitle,
13018
14613
  {
13019
14614
  title: "Color Theme",
@@ -13022,9 +14617,9 @@ function ThemeListSelector() {
13022
14617
  resetAriaLabel: "Reset color theme to default"
13023
14618
  }
13024
14619
  ),
13025
- /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)("div", { className: "relative mb-2.5", children: [
13026
- /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(import_lucide_react55.Search, { className: "pointer-events-none absolute left-3 top-1/2 size-4 -translate-y-1/2 text-muted-foreground" }),
13027
- /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(
14620
+ /* @__PURE__ */ (0, import_jsx_runtime116.jsxs)("div", { className: "relative mb-2.5", children: [
14621
+ /* @__PURE__ */ (0, import_jsx_runtime116.jsx)(import_lucide_react61.Search, { className: "pointer-events-none absolute left-3 top-1/2 size-4 -translate-y-1/2 text-muted-foreground" }),
14622
+ /* @__PURE__ */ (0, import_jsx_runtime116.jsx)(
13028
14623
  "input",
13029
14624
  {
13030
14625
  type: "text",
@@ -13040,21 +14635,21 @@ function ThemeListSelector() {
13040
14635
  }
13041
14636
  )
13042
14637
  ] }),
13043
- /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)("p", { className: "mb-2 text-xs text-muted-foreground font-medium", children: [
14638
+ /* @__PURE__ */ (0, import_jsx_runtime116.jsxs)("p", { className: "mb-2 text-xs text-muted-foreground font-medium", children: [
13044
14639
  filtered.length,
13045
14640
  " theme",
13046
14641
  filtered.length !== 1 ? "s" : "",
13047
14642
  " available"
13048
14643
  ] }),
13049
- /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(
14644
+ /* @__PURE__ */ (0, import_jsx_runtime116.jsxs)(
13050
14645
  "div",
13051
14646
  {
13052
14647
  className: "flex-1 space-y-1 overflow-y-auto rounded-lg pr-1",
13053
14648
  role: "radiogroup",
13054
14649
  "aria-label": "Select color theme",
13055
14650
  children: [
13056
- filtered.length === 0 && /* @__PURE__ */ (0, import_jsx_runtime110.jsx)("p", { className: "py-8 text-center text-sm text-muted-foreground", children: "No themes found" }),
13057
- filtered.map((ct) => /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(
14651
+ filtered.length === 0 && /* @__PURE__ */ (0, import_jsx_runtime116.jsx)("p", { className: "py-8 text-center text-sm text-muted-foreground", children: "No themes found" }),
14652
+ filtered.map((ct) => /* @__PURE__ */ (0, import_jsx_runtime116.jsxs)(
13058
14653
  "button",
13059
14654
  {
13060
14655
  onClick: () => setColorTheme(ct.name),
@@ -13066,7 +14661,7 @@ function ThemeListSelector() {
13066
14661
  colorTheme === ct.name ? "bg-primary text-primary-foreground shadow-md" : "hover:bg-accent/80 hover:text-foreground border border-transparent hover:border-border/40"
13067
14662
  ),
13068
14663
  children: [
13069
- /* @__PURE__ */ (0, import_jsx_runtime110.jsx)("div", { className: "flex gap-1.5 shrink-0", children: ct.colors.map((color, i) => /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(
14664
+ /* @__PURE__ */ (0, import_jsx_runtime116.jsx)("div", { className: "flex gap-1.5 shrink-0", children: ct.colors.map((color, i) => /* @__PURE__ */ (0, import_jsx_runtime116.jsx)(
13070
14665
  "span",
13071
14666
  {
13072
14667
  className: cn(
@@ -13077,9 +14672,9 @@ function ThemeListSelector() {
13077
14672
  },
13078
14673
  i
13079
14674
  )) }),
13080
- /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)("div", { className: "flex items-center gap-1.5 truncate", children: [
13081
- /* @__PURE__ */ (0, import_jsx_runtime110.jsx)("span", { className: "text-sm font-medium truncate", children: ct.label }),
13082
- ct.category === "tweakcn" && /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(
14675
+ /* @__PURE__ */ (0, import_jsx_runtime116.jsxs)("div", { className: "flex items-center gap-1.5 truncate", children: [
14676
+ /* @__PURE__ */ (0, import_jsx_runtime116.jsx)("span", { className: "text-sm font-medium truncate", children: ct.label }),
14677
+ ct.category === "tweakcn" && /* @__PURE__ */ (0, import_jsx_runtime116.jsx)(
13083
14678
  "span",
13084
14679
  {
13085
14680
  className: cn(
@@ -13089,7 +14684,7 @@ function ThemeListSelector() {
13089
14684
  }
13090
14685
  )
13091
14686
  ] }),
13092
- colorTheme === ct.name && /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(import_lucide_react55.Check, { className: "ml-auto size-4 shrink-0", strokeWidth: 3 })
14687
+ colorTheme === ct.name && /* @__PURE__ */ (0, import_jsx_runtime116.jsx)(import_lucide_react61.Check, { className: "ml-auto size-4 shrink-0", strokeWidth: 3 })
13093
14688
  ]
13094
14689
  },
13095
14690
  ct.name
@@ -13101,7 +14696,7 @@ function ThemeListSelector() {
13101
14696
  }
13102
14697
 
13103
14698
  // src/design-system/templates/nav-user.tsx
13104
- var import_jsx_runtime111 = require("react/jsx-runtime");
14699
+ var import_jsx_runtime117 = require("react/jsx-runtime");
13105
14700
  function NavUser({ user: fallbackUser }) {
13106
14701
  const { isMobile } = useSidebar();
13107
14702
  const [open, setOpen] = useDialogState();
@@ -13110,28 +14705,28 @@ function NavUser({ user: fallbackUser }) {
13110
14705
  const userEmail = auth.user?.email || fallbackUser.email;
13111
14706
  const userAvatar = auth.user?.picture || fallbackUser.avatar;
13112
14707
  const userInitials = userName.split(" ").map((n) => n[0]).join("").toUpperCase().slice(0, 2);
13113
- return /* @__PURE__ */ (0, import_jsx_runtime111.jsxs)(import_jsx_runtime111.Fragment, { children: [
13114
- /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(SidebarMenu, { children: /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(SidebarMenuItem, { children: /* @__PURE__ */ (0, import_jsx_runtime111.jsxs)(DropdownMenu, { modal: false, children: [
13115
- /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime111.jsxs)(
14708
+ return /* @__PURE__ */ (0, import_jsx_runtime117.jsxs)(import_jsx_runtime117.Fragment, { children: [
14709
+ /* @__PURE__ */ (0, import_jsx_runtime117.jsx)(SidebarMenu, { children: /* @__PURE__ */ (0, import_jsx_runtime117.jsx)(SidebarMenuItem, { children: /* @__PURE__ */ (0, import_jsx_runtime117.jsxs)(DropdownMenu, { modal: false, children: [
14710
+ /* @__PURE__ */ (0, import_jsx_runtime117.jsx)(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime117.jsxs)(
13116
14711
  SidebarMenuButton,
13117
14712
  {
13118
14713
  size: "lg",
13119
14714
  tooltip: userName,
13120
14715
  className: "data-[state=open]:bg-sidebar-accent data-[state=open]:text-sidebar-accent-foreground",
13121
14716
  children: [
13122
- /* @__PURE__ */ (0, import_jsx_runtime111.jsxs)(Avatar, { className: "h-8 w-8 rounded-lg", children: [
13123
- /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(AvatarImage, { src: userAvatar, alt: userName }),
13124
- /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(AvatarFallback, { className: "rounded-lg", children: userInitials })
14717
+ /* @__PURE__ */ (0, import_jsx_runtime117.jsxs)(Avatar, { className: "h-8 w-8 rounded-lg", children: [
14718
+ /* @__PURE__ */ (0, import_jsx_runtime117.jsx)(AvatarImage, { src: userAvatar, alt: userName }),
14719
+ /* @__PURE__ */ (0, import_jsx_runtime117.jsx)(AvatarFallback, { className: "rounded-lg", children: userInitials })
13125
14720
  ] }),
13126
- /* @__PURE__ */ (0, import_jsx_runtime111.jsxs)("div", { className: "grid flex-1 text-start text-sm leading-tight", children: [
13127
- /* @__PURE__ */ (0, import_jsx_runtime111.jsx)("span", { className: "truncate font-semibold", children: userName }),
13128
- /* @__PURE__ */ (0, import_jsx_runtime111.jsx)("span", { className: "truncate text-xs text-muted-foreground", children: userEmail })
14721
+ /* @__PURE__ */ (0, import_jsx_runtime117.jsxs)("div", { className: "grid flex-1 text-start text-sm leading-tight", children: [
14722
+ /* @__PURE__ */ (0, import_jsx_runtime117.jsx)("span", { className: "truncate font-semibold", children: userName }),
14723
+ /* @__PURE__ */ (0, import_jsx_runtime117.jsx)("span", { className: "truncate text-xs text-muted-foreground", children: userEmail })
13129
14724
  ] }),
13130
- /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(import_lucide_react56.ChevronsUpDown, { className: "ml-auto size-4 shrink-0" })
14725
+ /* @__PURE__ */ (0, import_jsx_runtime117.jsx)(import_lucide_react62.ChevronsUpDown, { className: "ml-auto size-4 shrink-0" })
13131
14726
  ]
13132
14727
  }
13133
14728
  ) }),
13134
- /* @__PURE__ */ (0, import_jsx_runtime111.jsxs)(
14729
+ /* @__PURE__ */ (0, import_jsx_runtime117.jsxs)(
13135
14730
  DropdownMenuContent,
13136
14731
  {
13137
14732
  className: "w-(--radix-dropdown-menu-trigger-width) min-w-56 rounded-lg",
@@ -13139,43 +14734,43 @@ function NavUser({ user: fallbackUser }) {
13139
14734
  align: "end",
13140
14735
  sideOffset: 4,
13141
14736
  children: [
13142
- /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(DropdownMenuLabel, { className: "p-0 font-normal", children: /* @__PURE__ */ (0, import_jsx_runtime111.jsxs)("div", { className: "flex items-center gap-2 px-1 py-1.5 text-start text-sm", children: [
13143
- /* @__PURE__ */ (0, import_jsx_runtime111.jsxs)(Avatar, { className: "h-8 w-8 rounded-lg", children: [
13144
- /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(AvatarImage, { src: userAvatar, alt: userName }),
13145
- /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(AvatarFallback, { className: "rounded-lg", children: userInitials })
14737
+ /* @__PURE__ */ (0, import_jsx_runtime117.jsx)(DropdownMenuLabel, { className: "p-0 font-normal", children: /* @__PURE__ */ (0, import_jsx_runtime117.jsxs)("div", { className: "flex items-center gap-2 px-1 py-1.5 text-start text-sm", children: [
14738
+ /* @__PURE__ */ (0, import_jsx_runtime117.jsxs)(Avatar, { className: "h-8 w-8 rounded-lg", children: [
14739
+ /* @__PURE__ */ (0, import_jsx_runtime117.jsx)(AvatarImage, { src: userAvatar, alt: userName }),
14740
+ /* @__PURE__ */ (0, import_jsx_runtime117.jsx)(AvatarFallback, { className: "rounded-lg", children: userInitials })
13146
14741
  ] }),
13147
- /* @__PURE__ */ (0, import_jsx_runtime111.jsxs)("div", { className: "grid flex-1 text-start text-sm leading-tight", children: [
13148
- /* @__PURE__ */ (0, import_jsx_runtime111.jsx)("span", { className: "truncate font-semibold", children: userName }),
13149
- /* @__PURE__ */ (0, import_jsx_runtime111.jsx)("span", { className: "truncate text-xs text-muted-foreground", children: userEmail })
14742
+ /* @__PURE__ */ (0, import_jsx_runtime117.jsxs)("div", { className: "grid flex-1 text-start text-sm leading-tight", children: [
14743
+ /* @__PURE__ */ (0, import_jsx_runtime117.jsx)("span", { className: "truncate font-semibold", children: userName }),
14744
+ /* @__PURE__ */ (0, import_jsx_runtime117.jsx)("span", { className: "truncate text-xs text-muted-foreground", children: userEmail })
13150
14745
  ] })
13151
14746
  ] }) }),
13152
- /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(DropdownMenuSeparator, {}),
13153
- /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
14747
+ /* @__PURE__ */ (0, import_jsx_runtime117.jsx)(DropdownMenuSeparator, {}),
14748
+ /* @__PURE__ */ (0, import_jsx_runtime117.jsx)(
13154
14749
  ConfigDrawer,
13155
14750
  {
13156
- trigger: /* @__PURE__ */ (0, import_jsx_runtime111.jsxs)(DropdownMenuItem, { onSelect: (e) => e.preventDefault(), children: [
13157
- /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(import_lucide_react56.Palette, { className: "mr-2 h-4 w-4" }),
14751
+ trigger: /* @__PURE__ */ (0, import_jsx_runtime117.jsxs)(DropdownMenuItem, { onSelect: (e) => e.preventDefault(), children: [
14752
+ /* @__PURE__ */ (0, import_jsx_runtime117.jsx)(import_lucide_react62.Palette, { className: "mr-2 h-4 w-4" }),
13158
14753
  "Theme"
13159
14754
  ] })
13160
14755
  }
13161
14756
  ),
13162
- /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
14757
+ /* @__PURE__ */ (0, import_jsx_runtime117.jsx)(
13163
14758
  ConfigDrawer,
13164
14759
  {
13165
- trigger: /* @__PURE__ */ (0, import_jsx_runtime111.jsxs)(DropdownMenuItem, { onSelect: (e) => e.preventDefault(), children: [
13166
- /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(import_lucide_react56.Settings, { className: "mr-2 h-4 w-4" }),
14760
+ trigger: /* @__PURE__ */ (0, import_jsx_runtime117.jsxs)(DropdownMenuItem, { onSelect: (e) => e.preventDefault(), children: [
14761
+ /* @__PURE__ */ (0, import_jsx_runtime117.jsx)(import_lucide_react62.Settings, { className: "mr-2 h-4 w-4" }),
13167
14762
  "Setting"
13168
14763
  ] })
13169
14764
  }
13170
14765
  ),
13171
- /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(DropdownMenuSeparator, {}),
13172
- /* @__PURE__ */ (0, import_jsx_runtime111.jsxs)(
14766
+ /* @__PURE__ */ (0, import_jsx_runtime117.jsx)(DropdownMenuSeparator, {}),
14767
+ /* @__PURE__ */ (0, import_jsx_runtime117.jsxs)(
13173
14768
  DropdownMenuItem,
13174
14769
  {
13175
14770
  variant: "destructive",
13176
14771
  onClick: () => setOpen(true),
13177
14772
  children: [
13178
- /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(import_lucide_react56.LogOut, { className: "mr-2 h-4 w-4" }),
14773
+ /* @__PURE__ */ (0, import_jsx_runtime117.jsx)(import_lucide_react62.LogOut, { className: "mr-2 h-4 w-4" }),
13179
14774
  "Sign out"
13180
14775
  ]
13181
14776
  }
@@ -13184,19 +14779,19 @@ function NavUser({ user: fallbackUser }) {
13184
14779
  }
13185
14780
  )
13186
14781
  ] }) }) }),
13187
- /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(SignOutDialog, { open: !!open, onOpenChange: setOpen })
14782
+ /* @__PURE__ */ (0, import_jsx_runtime117.jsx)(SignOutDialog, { open: !!open, onOpenChange: setOpen })
13188
14783
  ] });
13189
14784
  }
13190
14785
 
13191
14786
  // src/design-system/templates/app-sidebar.tsx
13192
- var import_jsx_runtime112 = require("react/jsx-runtime");
14787
+ var import_jsx_runtime118 = require("react/jsx-runtime");
13193
14788
  function AppSidebar() {
13194
14789
  const { collapsible } = useLayout();
13195
- return /* @__PURE__ */ (0, import_jsx_runtime112.jsxs)(Sidebar, { collapsible, variant: "sidebar", children: [
13196
- /* @__PURE__ */ (0, import_jsx_runtime112.jsxs)(SidebarHeader, { className: "p-2 pb-1", children: [
13197
- /* @__PURE__ */ (0, import_jsx_runtime112.jsxs)("div", { className: "flex items-center justify-between gap-1", children: [
13198
- /* @__PURE__ */ (0, import_jsx_runtime112.jsx)("div", { className: "flex-1 min-w-0", children: /* @__PURE__ */ (0, import_jsx_runtime112.jsx)(TeamSwitcher, { teams: sidebarData2.teams }) }),
13199
- /* @__PURE__ */ (0, import_jsx_runtime112.jsx)("div", { className: "group-data-[collapsible=icon]:hidden shrink-0", children: /* @__PURE__ */ (0, import_jsx_runtime112.jsx)(
14790
+ return /* @__PURE__ */ (0, import_jsx_runtime118.jsxs)(Sidebar, { collapsible, variant: "sidebar", children: [
14791
+ /* @__PURE__ */ (0, import_jsx_runtime118.jsxs)(SidebarHeader, { className: "p-2 pb-1", children: [
14792
+ /* @__PURE__ */ (0, import_jsx_runtime118.jsxs)("div", { className: "flex items-center justify-between gap-1", children: [
14793
+ /* @__PURE__ */ (0, import_jsx_runtime118.jsx)("div", { className: "flex-1 min-w-0", children: /* @__PURE__ */ (0, import_jsx_runtime118.jsx)(TeamSwitcher, { teams: sidebarData2.teams }) }),
14794
+ /* @__PURE__ */ (0, import_jsx_runtime118.jsx)("div", { className: "group-data-[collapsible=icon]:hidden shrink-0", children: /* @__PURE__ */ (0, import_jsx_runtime118.jsx)(
13200
14795
  SidebarTrigger,
13201
14796
  {
13202
14797
  variant: "ghost",
@@ -13205,7 +14800,7 @@ function AppSidebar() {
13205
14800
  }
13206
14801
  ) })
13207
14802
  ] }),
13208
- /* @__PURE__ */ (0, import_jsx_runtime112.jsx)("div", { className: "hidden group-data-[collapsible=icon]:flex justify-center pt-2 pb-1", children: /* @__PURE__ */ (0, import_jsx_runtime112.jsx)(
14803
+ /* @__PURE__ */ (0, import_jsx_runtime118.jsx)("div", { className: "hidden group-data-[collapsible=icon]:flex justify-center pt-2 pb-1", children: /* @__PURE__ */ (0, import_jsx_runtime118.jsx)(
13209
14804
  SidebarTrigger,
13210
14805
  {
13211
14806
  variant: "ghost",
@@ -13214,37 +14809,37 @@ function AppSidebar() {
13214
14809
  }
13215
14810
  ) })
13216
14811
  ] }),
13217
- /* @__PURE__ */ (0, import_jsx_runtime112.jsx)(SidebarContent, { children: sidebarData2.navGroups.map((props) => /* @__PURE__ */ (0, import_jsx_runtime112.jsx)(NavGroup, { ...props }, props.title)) }),
13218
- /* @__PURE__ */ (0, import_jsx_runtime112.jsx)(SidebarFooter, { children: /* @__PURE__ */ (0, import_jsx_runtime112.jsx)(NavUser, { user: sidebarData2.user }) })
14812
+ /* @__PURE__ */ (0, import_jsx_runtime118.jsx)(SidebarContent, { children: sidebarData2.navGroups.map((props) => /* @__PURE__ */ (0, import_jsx_runtime118.jsx)(NavGroup, { ...props }, props.title)) }),
14813
+ /* @__PURE__ */ (0, import_jsx_runtime118.jsx)(SidebarFooter, { children: /* @__PURE__ */ (0, import_jsx_runtime118.jsx)(NavUser, { user: sidebarData2.user }) })
13219
14814
  ] });
13220
14815
  }
13221
14816
 
13222
14817
  // src/design-system/templates/app-title.tsx
13223
14818
  var import_link2 = __toESM(require("next/link"));
13224
- var import_lucide_react57 = require("lucide-react");
13225
- var import_jsx_runtime113 = require("react/jsx-runtime");
14819
+ var import_lucide_react63 = require("lucide-react");
14820
+ var import_jsx_runtime119 = require("react/jsx-runtime");
13226
14821
  function AppTitle() {
13227
14822
  const { setOpenMobile } = useSidebar();
13228
- return /* @__PURE__ */ (0, import_jsx_runtime113.jsx)(SidebarMenu, { children: /* @__PURE__ */ (0, import_jsx_runtime113.jsx)(SidebarMenuItem, { children: /* @__PURE__ */ (0, import_jsx_runtime113.jsx)(
14823
+ return /* @__PURE__ */ (0, import_jsx_runtime119.jsx)(SidebarMenu, { children: /* @__PURE__ */ (0, import_jsx_runtime119.jsx)(SidebarMenuItem, { children: /* @__PURE__ */ (0, import_jsx_runtime119.jsx)(
13229
14824
  SidebarMenuButton,
13230
14825
  {
13231
14826
  size: "lg",
13232
14827
  className: "gap-0 py-0 hover:bg-transparent active:bg-transparent",
13233
14828
  asChild: true,
13234
- children: /* @__PURE__ */ (0, import_jsx_runtime113.jsxs)("div", { children: [
13235
- /* @__PURE__ */ (0, import_jsx_runtime113.jsxs)(
14829
+ children: /* @__PURE__ */ (0, import_jsx_runtime119.jsxs)("div", { children: [
14830
+ /* @__PURE__ */ (0, import_jsx_runtime119.jsxs)(
13236
14831
  import_link2.default,
13237
14832
  {
13238
14833
  href: "/",
13239
14834
  onClick: () => setOpenMobile(false),
13240
14835
  className: "grid flex-1 text-start text-sm leading-tight",
13241
14836
  children: [
13242
- /* @__PURE__ */ (0, import_jsx_runtime113.jsx)("span", { className: "truncate font-bold", children: "Shadcn-Admin" }),
13243
- /* @__PURE__ */ (0, import_jsx_runtime113.jsx)("span", { className: "truncate text-xs", children: "Vite + ShadcnUI" })
14837
+ /* @__PURE__ */ (0, import_jsx_runtime119.jsx)("span", { className: "truncate font-bold", children: "Shadcn-Admin" }),
14838
+ /* @__PURE__ */ (0, import_jsx_runtime119.jsx)("span", { className: "truncate text-xs", children: "Vite + ShadcnUI" })
13244
14839
  ]
13245
14840
  }
13246
14841
  ),
13247
- /* @__PURE__ */ (0, import_jsx_runtime113.jsx)(ToggleSidebar, {})
14842
+ /* @__PURE__ */ (0, import_jsx_runtime119.jsx)(ToggleSidebar, {})
13248
14843
  ] })
13249
14844
  }
13250
14845
  ) }) });
@@ -13255,7 +14850,7 @@ function ToggleSidebar({
13255
14850
  ...props
13256
14851
  }) {
13257
14852
  const { toggleSidebar } = useSidebar();
13258
- return /* @__PURE__ */ (0, import_jsx_runtime113.jsxs)(
14853
+ return /* @__PURE__ */ (0, import_jsx_runtime119.jsxs)(
13259
14854
  Button,
13260
14855
  {
13261
14856
  "data-sidebar": "trigger",
@@ -13269,31 +14864,31 @@ function ToggleSidebar({
13269
14864
  },
13270
14865
  ...props,
13271
14866
  children: [
13272
- /* @__PURE__ */ (0, import_jsx_runtime113.jsx)(import_lucide_react57.X, { className: "md:hidden" }),
13273
- /* @__PURE__ */ (0, import_jsx_runtime113.jsx)(import_lucide_react57.Menu, { className: "max-md:hidden" }),
13274
- /* @__PURE__ */ (0, import_jsx_runtime113.jsx)("span", { className: "sr-only", children: "Toggle Sidebar" })
14867
+ /* @__PURE__ */ (0, import_jsx_runtime119.jsx)(import_lucide_react63.X, { className: "md:hidden" }),
14868
+ /* @__PURE__ */ (0, import_jsx_runtime119.jsx)(import_lucide_react63.Menu, { className: "max-md:hidden" }),
14869
+ /* @__PURE__ */ (0, import_jsx_runtime119.jsx)("span", { className: "sr-only", children: "Toggle Sidebar" })
13275
14870
  ]
13276
14871
  }
13277
14872
  );
13278
14873
  }
13279
14874
 
13280
14875
  // src/design-system/templates/authenticated-layout.tsx
13281
- var import_react23 = require("react");
14876
+ var import_react26 = require("react");
13282
14877
  var import_navigation6 = require("next/navigation");
13283
14878
 
13284
14879
  // src/components/layout/app-sidebar.tsx
13285
- var import_react22 = require("react");
14880
+ var import_react25 = require("react");
13286
14881
 
13287
14882
  // src/components/layout/nav-group.tsx
13288
14883
  var import_link3 = __toESM(require("next/link"));
13289
14884
  var import_navigation4 = require("next/navigation");
13290
- var import_lucide_react58 = require("lucide-react");
13291
- var import_jsx_runtime114 = require("react/jsx-runtime");
14885
+ var import_lucide_react64 = require("lucide-react");
14886
+ var import_jsx_runtime120 = require("react/jsx-runtime");
13292
14887
  function NavGroup2({ title, items }) {
13293
14888
  const { state, isMobile, openMobile, setOpenMobile } = useSidebar();
13294
14889
  const href = (0, import_navigation4.usePathname)();
13295
- return /* @__PURE__ */ (0, import_jsx_runtime114.jsxs)(SidebarGroup, { className: cn(title === "Menu" && "pt-0"), children: [
13296
- /* @__PURE__ */ (0, import_jsx_runtime114.jsxs)(
14890
+ return /* @__PURE__ */ (0, import_jsx_runtime120.jsxs)(SidebarGroup, { className: cn(title === "Menu" && "pt-0"), children: [
14891
+ /* @__PURE__ */ (0, import_jsx_runtime120.jsxs)(
13297
14892
  SidebarGroupLabel,
13298
14893
  {
13299
14894
  className: cn(
@@ -13301,8 +14896,8 @@ function NavGroup2({ title, items }) {
13301
14896
  title === "Menu" && state !== "collapsed" && "sticky top-0 z-20 bg-sidebar py-1.5"
13302
14897
  ),
13303
14898
  children: [
13304
- /* @__PURE__ */ (0, import_jsx_runtime114.jsx)("span", { children: title }),
13305
- title === "Menu" && !isMobile && /* @__PURE__ */ (0, import_jsx_runtime114.jsx)(
14899
+ /* @__PURE__ */ (0, import_jsx_runtime120.jsx)("span", { children: title }),
14900
+ title === "Menu" && !isMobile && /* @__PURE__ */ (0, import_jsx_runtime120.jsx)(
13306
14901
  SidebarTrigger,
13307
14902
  {
13308
14903
  variant: "ghost",
@@ -13310,7 +14905,7 @@ function NavGroup2({ title, items }) {
13310
14905
  "aria-label": "Toggle sidebar"
13311
14906
  }
13312
14907
  ),
13313
- title === "Menu" && isMobile && openMobile && /* @__PURE__ */ (0, import_jsx_runtime114.jsx)(
14908
+ title === "Menu" && isMobile && openMobile && /* @__PURE__ */ (0, import_jsx_runtime120.jsx)(
13314
14909
  Button,
13315
14910
  {
13316
14911
  type: "button",
@@ -13319,37 +14914,37 @@ function NavGroup2({ title, items }) {
13319
14914
  className: "size-6 shrink-0",
13320
14915
  "aria-label": "Close sidebar",
13321
14916
  onClick: () => setOpenMobile(false),
13322
- children: /* @__PURE__ */ (0, import_jsx_runtime114.jsx)(import_lucide_react58.X, { className: "size-4", "aria-hidden": "true" })
14917
+ children: /* @__PURE__ */ (0, import_jsx_runtime120.jsx)(import_lucide_react64.X, { className: "size-4", "aria-hidden": "true" })
13323
14918
  }
13324
14919
  )
13325
14920
  ]
13326
14921
  }
13327
14922
  ),
13328
- /* @__PURE__ */ (0, import_jsx_runtime114.jsx)(SidebarMenu, { children: items.map((item) => {
14923
+ /* @__PURE__ */ (0, import_jsx_runtime120.jsx)(SidebarMenu, { children: items.map((item) => {
13329
14924
  const key = `${item.title}-${item.url}`;
13330
14925
  if (!item.items)
13331
- return /* @__PURE__ */ (0, import_jsx_runtime114.jsx)(SidebarMenuLink2, { item, href }, key);
14926
+ return /* @__PURE__ */ (0, import_jsx_runtime120.jsx)(SidebarMenuLink2, { item, href }, key);
13332
14927
  if (item.title === "Settings" && item.items.length === 0)
13333
- return /* @__PURE__ */ (0, import_jsx_runtime114.jsx)(SidebarMenuSettings2, { item }, key);
14928
+ return /* @__PURE__ */ (0, import_jsx_runtime120.jsx)(SidebarMenuSettings2, { item }, key);
13334
14929
  if (state === "collapsed" && !isMobile)
13335
- return /* @__PURE__ */ (0, import_jsx_runtime114.jsx)(SidebarMenuCollapsedDropdown2, { item, href }, key);
13336
- return /* @__PURE__ */ (0, import_jsx_runtime114.jsx)(SidebarMenuCollapsible2, { item, href }, key);
14930
+ return /* @__PURE__ */ (0, import_jsx_runtime120.jsx)(SidebarMenuCollapsedDropdown2, { item, href }, key);
14931
+ return /* @__PURE__ */ (0, import_jsx_runtime120.jsx)(SidebarMenuCollapsible2, { item, href }, key);
13337
14932
  }) })
13338
14933
  ] });
13339
14934
  }
13340
14935
  function NavBadge2({ children }) {
13341
- return /* @__PURE__ */ (0, import_jsx_runtime114.jsx)(Badge, { className: "rounded-full px-1 py-0 text-xs", children });
14936
+ return /* @__PURE__ */ (0, import_jsx_runtime120.jsx)(Badge, { className: "rounded-full px-1 py-0 text-xs", children });
13342
14937
  }
13343
14938
  function SidebarMenuLink2({ item, href }) {
13344
14939
  const { setOpenMobile } = useSidebar();
13345
14940
  const { setShowInlineNotFound } = useLayout();
13346
- return /* @__PURE__ */ (0, import_jsx_runtime114.jsx)(SidebarMenuItem, { children: /* @__PURE__ */ (0, import_jsx_runtime114.jsx)(
14941
+ return /* @__PURE__ */ (0, import_jsx_runtime120.jsx)(SidebarMenuItem, { children: /* @__PURE__ */ (0, import_jsx_runtime120.jsx)(
13347
14942
  SidebarMenuButton,
13348
14943
  {
13349
14944
  asChild: true,
13350
14945
  isActive: checkIsActive2(href, item),
13351
14946
  tooltip: item.title,
13352
- children: /* @__PURE__ */ (0, import_jsx_runtime114.jsxs)(
14947
+ children: /* @__PURE__ */ (0, import_jsx_runtime120.jsxs)(
13353
14948
  import_link3.default,
13354
14949
  {
13355
14950
  href: item.url,
@@ -13358,9 +14953,9 @@ function SidebarMenuLink2({ item, href }) {
13358
14953
  setOpenMobile(false);
13359
14954
  },
13360
14955
  children: [
13361
- item.icon && /* @__PURE__ */ (0, import_jsx_runtime114.jsx)(item.icon, {}),
13362
- /* @__PURE__ */ (0, import_jsx_runtime114.jsx)("span", { children: item.title }),
13363
- item.badge && /* @__PURE__ */ (0, import_jsx_runtime114.jsx)(NavBadge2, { children: item.badge })
14956
+ item.icon && /* @__PURE__ */ (0, import_jsx_runtime120.jsx)(item.icon, {}),
14957
+ /* @__PURE__ */ (0, import_jsx_runtime120.jsx)("span", { children: item.title }),
14958
+ item.badge && /* @__PURE__ */ (0, import_jsx_runtime120.jsx)(NavBadge2, { children: item.badge })
13364
14959
  ]
13365
14960
  }
13366
14961
  )
@@ -13370,7 +14965,7 @@ function SidebarMenuLink2({ item, href }) {
13370
14965
  function SidebarMenuSettings2({ item }) {
13371
14966
  const { setOpenMobile } = useSidebar();
13372
14967
  const { showInlineNotFound, setShowInlineNotFound } = useLayout();
13373
- return /* @__PURE__ */ (0, import_jsx_runtime114.jsx)(SidebarMenuItem, { children: /* @__PURE__ */ (0, import_jsx_runtime114.jsxs)(
14968
+ return /* @__PURE__ */ (0, import_jsx_runtime120.jsx)(SidebarMenuItem, { children: /* @__PURE__ */ (0, import_jsx_runtime120.jsxs)(
13374
14969
  SidebarMenuButton,
13375
14970
  {
13376
14971
  tooltip: item.title,
@@ -13380,8 +14975,8 @@ function SidebarMenuSettings2({ item }) {
13380
14975
  setOpenMobile(false);
13381
14976
  },
13382
14977
  children: [
13383
- item.icon && /* @__PURE__ */ (0, import_jsx_runtime114.jsx)(item.icon, {}),
13384
- /* @__PURE__ */ (0, import_jsx_runtime114.jsx)("span", { children: item.title })
14978
+ item.icon && /* @__PURE__ */ (0, import_jsx_runtime120.jsx)(item.icon, {}),
14979
+ /* @__PURE__ */ (0, import_jsx_runtime120.jsx)("span", { children: item.title })
13385
14980
  ]
13386
14981
  }
13387
14982
  ) });
@@ -13392,25 +14987,25 @@ function SidebarMenuCollapsible2({
13392
14987
  }) {
13393
14988
  const { setOpenMobile } = useSidebar();
13394
14989
  const { setShowInlineNotFound } = useLayout();
13395
- return /* @__PURE__ */ (0, import_jsx_runtime114.jsx)(
14990
+ return /* @__PURE__ */ (0, import_jsx_runtime120.jsx)(
13396
14991
  Collapsible,
13397
14992
  {
13398
14993
  asChild: true,
13399
14994
  defaultOpen: checkIsActive2(href, item, true),
13400
14995
  className: "group/collapsible",
13401
- children: /* @__PURE__ */ (0, import_jsx_runtime114.jsxs)(SidebarMenuItem, { children: [
13402
- /* @__PURE__ */ (0, import_jsx_runtime114.jsx)(CollapsibleTrigger, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime114.jsxs)(SidebarMenuButton, { tooltip: item.title, children: [
13403
- item.icon && /* @__PURE__ */ (0, import_jsx_runtime114.jsx)(item.icon, {}),
13404
- /* @__PURE__ */ (0, import_jsx_runtime114.jsx)("span", { children: item.title }),
13405
- item.badge && /* @__PURE__ */ (0, import_jsx_runtime114.jsx)(NavBadge2, { children: item.badge }),
13406
- /* @__PURE__ */ (0, import_jsx_runtime114.jsx)(import_lucide_react58.ChevronRight, { className: "ms-auto transition-transform duration-200 group-data-[state=open]/collapsible:rotate-90 rtl:rotate-180" })
14996
+ children: /* @__PURE__ */ (0, import_jsx_runtime120.jsxs)(SidebarMenuItem, { children: [
14997
+ /* @__PURE__ */ (0, import_jsx_runtime120.jsx)(CollapsibleTrigger, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime120.jsxs)(SidebarMenuButton, { tooltip: item.title, children: [
14998
+ item.icon && /* @__PURE__ */ (0, import_jsx_runtime120.jsx)(item.icon, {}),
14999
+ /* @__PURE__ */ (0, import_jsx_runtime120.jsx)("span", { children: item.title }),
15000
+ item.badge && /* @__PURE__ */ (0, import_jsx_runtime120.jsx)(NavBadge2, { children: item.badge }),
15001
+ /* @__PURE__ */ (0, import_jsx_runtime120.jsx)(import_lucide_react64.ChevronRight, { className: "ms-auto transition-transform duration-200 group-data-[state=open]/collapsible:rotate-90 rtl:rotate-180" })
13407
15002
  ] }) }),
13408
- /* @__PURE__ */ (0, import_jsx_runtime114.jsx)(CollapsibleContent, { className: "CollapsibleContent", children: /* @__PURE__ */ (0, import_jsx_runtime114.jsx)(SidebarMenuSub, { children: item.items.map((subItem) => /* @__PURE__ */ (0, import_jsx_runtime114.jsx)(SidebarMenuSubItem, { children: /* @__PURE__ */ (0, import_jsx_runtime114.jsx)(
15003
+ /* @__PURE__ */ (0, import_jsx_runtime120.jsx)(CollapsibleContent, { className: "CollapsibleContent", children: /* @__PURE__ */ (0, import_jsx_runtime120.jsx)(SidebarMenuSub, { children: item.items.map((subItem) => /* @__PURE__ */ (0, import_jsx_runtime120.jsx)(SidebarMenuSubItem, { children: /* @__PURE__ */ (0, import_jsx_runtime120.jsx)(
13409
15004
  SidebarMenuSubButton,
13410
15005
  {
13411
15006
  asChild: true,
13412
15007
  isActive: checkIsActive2(href, subItem),
13413
- children: /* @__PURE__ */ (0, import_jsx_runtime114.jsxs)(
15008
+ children: /* @__PURE__ */ (0, import_jsx_runtime120.jsxs)(
13414
15009
  import_link3.default,
13415
15010
  {
13416
15011
  href: subItem.url,
@@ -13419,9 +15014,9 @@ function SidebarMenuCollapsible2({
13419
15014
  setOpenMobile(false);
13420
15015
  },
13421
15016
  children: [
13422
- subItem.icon && /* @__PURE__ */ (0, import_jsx_runtime114.jsx)(subItem.icon, {}),
13423
- /* @__PURE__ */ (0, import_jsx_runtime114.jsx)("span", { children: subItem.title }),
13424
- subItem.badge && /* @__PURE__ */ (0, import_jsx_runtime114.jsx)(NavBadge2, { children: subItem.badge })
15017
+ subItem.icon && /* @__PURE__ */ (0, import_jsx_runtime120.jsx)(subItem.icon, {}),
15018
+ /* @__PURE__ */ (0, import_jsx_runtime120.jsx)("span", { children: subItem.title }),
15019
+ subItem.badge && /* @__PURE__ */ (0, import_jsx_runtime120.jsx)(NavBadge2, { children: subItem.badge })
13425
15020
  ]
13426
15021
  }
13427
15022
  )
@@ -13435,36 +15030,36 @@ function SidebarMenuCollapsedDropdown2({
13435
15030
  item,
13436
15031
  href
13437
15032
  }) {
13438
- return /* @__PURE__ */ (0, import_jsx_runtime114.jsx)(SidebarMenuItem, { children: /* @__PURE__ */ (0, import_jsx_runtime114.jsxs)(DropdownMenu, { children: [
13439
- /* @__PURE__ */ (0, import_jsx_runtime114.jsx)(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime114.jsxs)(
15033
+ return /* @__PURE__ */ (0, import_jsx_runtime120.jsx)(SidebarMenuItem, { children: /* @__PURE__ */ (0, import_jsx_runtime120.jsxs)(DropdownMenu, { children: [
15034
+ /* @__PURE__ */ (0, import_jsx_runtime120.jsx)(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime120.jsxs)(
13440
15035
  SidebarMenuButton,
13441
15036
  {
13442
15037
  tooltip: item.title,
13443
15038
  isActive: checkIsActive2(href, item),
13444
15039
  children: [
13445
- item.icon && /* @__PURE__ */ (0, import_jsx_runtime114.jsx)(item.icon, {}),
13446
- /* @__PURE__ */ (0, import_jsx_runtime114.jsx)("span", { children: item.title }),
13447
- item.badge && /* @__PURE__ */ (0, import_jsx_runtime114.jsx)(NavBadge2, { children: item.badge }),
13448
- /* @__PURE__ */ (0, import_jsx_runtime114.jsx)(import_lucide_react58.ChevronRight, { className: "ms-auto transition-transform duration-200 group-data-[state=open]/collapsible:rotate-90" })
15040
+ item.icon && /* @__PURE__ */ (0, import_jsx_runtime120.jsx)(item.icon, {}),
15041
+ /* @__PURE__ */ (0, import_jsx_runtime120.jsx)("span", { children: item.title }),
15042
+ item.badge && /* @__PURE__ */ (0, import_jsx_runtime120.jsx)(NavBadge2, { children: item.badge }),
15043
+ /* @__PURE__ */ (0, import_jsx_runtime120.jsx)(import_lucide_react64.ChevronRight, { className: "ms-auto transition-transform duration-200 group-data-[state=open]/collapsible:rotate-90" })
13449
15044
  ]
13450
15045
  }
13451
15046
  ) }),
13452
- /* @__PURE__ */ (0, import_jsx_runtime114.jsxs)(DropdownMenuContent, { side: "right", align: "start", sideOffset: 4, children: [
13453
- /* @__PURE__ */ (0, import_jsx_runtime114.jsxs)(DropdownMenuLabel, { children: [
15047
+ /* @__PURE__ */ (0, import_jsx_runtime120.jsxs)(DropdownMenuContent, { side: "right", align: "start", sideOffset: 4, children: [
15048
+ /* @__PURE__ */ (0, import_jsx_runtime120.jsxs)(DropdownMenuLabel, { children: [
13454
15049
  item.title,
13455
15050
  " ",
13456
15051
  item.badge ? `(${item.badge})` : ""
13457
15052
  ] }),
13458
- /* @__PURE__ */ (0, import_jsx_runtime114.jsx)(DropdownMenuSeparator, {}),
13459
- item.items.map((sub) => /* @__PURE__ */ (0, import_jsx_runtime114.jsx)(DropdownMenuItem, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime114.jsxs)(
15053
+ /* @__PURE__ */ (0, import_jsx_runtime120.jsx)(DropdownMenuSeparator, {}),
15054
+ item.items.map((sub) => /* @__PURE__ */ (0, import_jsx_runtime120.jsx)(DropdownMenuItem, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime120.jsxs)(
13460
15055
  import_link3.default,
13461
15056
  {
13462
15057
  href: sub.url,
13463
15058
  className: `${checkIsActive2(href, sub) ? "bg-secondary" : ""}`,
13464
15059
  children: [
13465
- sub.icon && /* @__PURE__ */ (0, import_jsx_runtime114.jsx)(sub.icon, {}),
13466
- /* @__PURE__ */ (0, import_jsx_runtime114.jsx)("span", { className: "max-w-52 text-wrap", children: sub.title }),
13467
- sub.badge && /* @__PURE__ */ (0, import_jsx_runtime114.jsx)("span", { className: "ms-auto text-xs", children: sub.badge })
15060
+ sub.icon && /* @__PURE__ */ (0, import_jsx_runtime120.jsx)(sub.icon, {}),
15061
+ /* @__PURE__ */ (0, import_jsx_runtime120.jsx)("span", { className: "max-w-52 text-wrap", children: sub.title }),
15062
+ sub.badge && /* @__PURE__ */ (0, import_jsx_runtime120.jsx)("span", { className: "ms-auto text-xs", children: sub.badge })
13468
15063
  ]
13469
15064
  }
13470
15065
  ) }, `${sub.title}-${sub.url}`))
@@ -13479,9 +15074,9 @@ function checkIsActive2(href, item, mainNav = false) {
13479
15074
  }
13480
15075
 
13481
15076
  // src/components/layout/nav-user.tsx
13482
- var import_lucide_react59 = require("lucide-react");
15077
+ var import_lucide_react65 = require("lucide-react");
13483
15078
  var import_link4 = __toESM(require("next/link"));
13484
- var import_jsx_runtime115 = require("react/jsx-runtime");
15079
+ var import_jsx_runtime121 = require("react/jsx-runtime");
13485
15080
  function NavUser2({ user: fallbackUser }) {
13486
15081
  const { isMobile } = useSidebar();
13487
15082
  const [open, setOpen] = useDialogState();
@@ -13491,28 +15086,28 @@ function NavUser2({ user: fallbackUser }) {
13491
15086
  const userEmail = auth.user?.email || fallbackUser.email;
13492
15087
  const userAvatar = auth.user?.picture || fallbackUser.avatar;
13493
15088
  const userInitials = userName.split(" ").map((n) => n[0]).join("").toUpperCase().slice(0, 2);
13494
- return /* @__PURE__ */ (0, import_jsx_runtime115.jsxs)(import_jsx_runtime115.Fragment, { children: [
13495
- /* @__PURE__ */ (0, import_jsx_runtime115.jsx)(SidebarMenu, { children: /* @__PURE__ */ (0, import_jsx_runtime115.jsx)(SidebarMenuItem, { children: /* @__PURE__ */ (0, import_jsx_runtime115.jsxs)(DropdownMenu, { modal: false, children: [
13496
- /* @__PURE__ */ (0, import_jsx_runtime115.jsx)(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime115.jsxs)(
15089
+ return /* @__PURE__ */ (0, import_jsx_runtime121.jsxs)(import_jsx_runtime121.Fragment, { children: [
15090
+ /* @__PURE__ */ (0, import_jsx_runtime121.jsx)(SidebarMenu, { children: /* @__PURE__ */ (0, import_jsx_runtime121.jsx)(SidebarMenuItem, { children: /* @__PURE__ */ (0, import_jsx_runtime121.jsxs)(DropdownMenu, { modal: false, children: [
15091
+ /* @__PURE__ */ (0, import_jsx_runtime121.jsx)(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime121.jsxs)(
13497
15092
  SidebarMenuButton,
13498
15093
  {
13499
15094
  size: "lg",
13500
15095
  tooltip: userName,
13501
15096
  className: "data-[state=open]:bg-sidebar-accent data-[state=open]:text-sidebar-accent-foreground",
13502
15097
  children: [
13503
- /* @__PURE__ */ (0, import_jsx_runtime115.jsxs)(Avatar, { className: "h-8 w-8 rounded-lg", children: [
13504
- /* @__PURE__ */ (0, import_jsx_runtime115.jsx)(AvatarImage, { src: userAvatar, alt: userName }),
13505
- /* @__PURE__ */ (0, import_jsx_runtime115.jsx)(AvatarFallback, { className: "rounded-lg", children: userInitials })
15098
+ /* @__PURE__ */ (0, import_jsx_runtime121.jsxs)(Avatar, { className: "h-8 w-8 rounded-lg", children: [
15099
+ /* @__PURE__ */ (0, import_jsx_runtime121.jsx)(AvatarImage, { src: userAvatar, alt: userName }),
15100
+ /* @__PURE__ */ (0, import_jsx_runtime121.jsx)(AvatarFallback, { className: "rounded-lg", children: userInitials })
13506
15101
  ] }),
13507
- /* @__PURE__ */ (0, import_jsx_runtime115.jsxs)("div", { className: "grid flex-1 text-start text-sm leading-tight", children: [
13508
- /* @__PURE__ */ (0, import_jsx_runtime115.jsx)("span", { className: "truncate font-semibold", children: userName }),
13509
- /* @__PURE__ */ (0, import_jsx_runtime115.jsx)("span", { className: "truncate text-xs text-muted-foreground", children: userEmail })
15102
+ /* @__PURE__ */ (0, import_jsx_runtime121.jsxs)("div", { className: "grid flex-1 text-start text-sm leading-tight", children: [
15103
+ /* @__PURE__ */ (0, import_jsx_runtime121.jsx)("span", { className: "truncate font-semibold", children: userName }),
15104
+ /* @__PURE__ */ (0, import_jsx_runtime121.jsx)("span", { className: "truncate text-xs text-muted-foreground", children: userEmail })
13510
15105
  ] }),
13511
- /* @__PURE__ */ (0, import_jsx_runtime115.jsx)(import_lucide_react59.ChevronsUpDown, { className: "ml-auto size-4 shrink-0" })
15106
+ /* @__PURE__ */ (0, import_jsx_runtime121.jsx)(import_lucide_react65.ChevronsUpDown, { className: "ml-auto size-4 shrink-0" })
13512
15107
  ]
13513
15108
  }
13514
15109
  ) }),
13515
- /* @__PURE__ */ (0, import_jsx_runtime115.jsxs)(
15110
+ /* @__PURE__ */ (0, import_jsx_runtime121.jsxs)(
13516
15111
  DropdownMenuContent,
13517
15112
  {
13518
15113
  className: "w-(--radix-dropdown-menu-trigger-width) min-w-56 rounded-lg",
@@ -13520,59 +15115,59 @@ function NavUser2({ user: fallbackUser }) {
13520
15115
  align: "end",
13521
15116
  sideOffset: 4,
13522
15117
  children: [
13523
- /* @__PURE__ */ (0, import_jsx_runtime115.jsx)(DropdownMenuLabel, { className: "p-0 font-normal", children: /* @__PURE__ */ (0, import_jsx_runtime115.jsxs)("div", { className: "flex items-center gap-2 px-1 py-1.5 text-start text-sm", children: [
13524
- /* @__PURE__ */ (0, import_jsx_runtime115.jsxs)(Avatar, { className: "h-8 w-8 rounded-lg", children: [
13525
- /* @__PURE__ */ (0, import_jsx_runtime115.jsx)(AvatarImage, { src: userAvatar, alt: userName }),
13526
- /* @__PURE__ */ (0, import_jsx_runtime115.jsx)(AvatarFallback, { className: "rounded-lg", children: userInitials })
15118
+ /* @__PURE__ */ (0, import_jsx_runtime121.jsx)(DropdownMenuLabel, { className: "p-0 font-normal", children: /* @__PURE__ */ (0, import_jsx_runtime121.jsxs)("div", { className: "flex items-center gap-2 px-1 py-1.5 text-start text-sm", children: [
15119
+ /* @__PURE__ */ (0, import_jsx_runtime121.jsxs)(Avatar, { className: "h-8 w-8 rounded-lg", children: [
15120
+ /* @__PURE__ */ (0, import_jsx_runtime121.jsx)(AvatarImage, { src: userAvatar, alt: userName }),
15121
+ /* @__PURE__ */ (0, import_jsx_runtime121.jsx)(AvatarFallback, { className: "rounded-lg", children: userInitials })
13527
15122
  ] }),
13528
- /* @__PURE__ */ (0, import_jsx_runtime115.jsxs)("div", { className: "grid flex-1 text-start text-sm leading-tight", children: [
13529
- /* @__PURE__ */ (0, import_jsx_runtime115.jsx)("span", { className: "truncate font-semibold", children: userName }),
13530
- /* @__PURE__ */ (0, import_jsx_runtime115.jsx)("span", { className: "truncate text-xs text-muted-foreground", children: userEmail })
15123
+ /* @__PURE__ */ (0, import_jsx_runtime121.jsxs)("div", { className: "grid flex-1 text-start text-sm leading-tight", children: [
15124
+ /* @__PURE__ */ (0, import_jsx_runtime121.jsx)("span", { className: "truncate font-semibold", children: userName }),
15125
+ /* @__PURE__ */ (0, import_jsx_runtime121.jsx)("span", { className: "truncate text-xs text-muted-foreground", children: userEmail })
13531
15126
  ] })
13532
15127
  ] }) }),
13533
- /* @__PURE__ */ (0, import_jsx_runtime115.jsx)(DropdownMenuSeparator, {}),
13534
- /* @__PURE__ */ (0, import_jsx_runtime115.jsxs)(DropdownMenuItem, { onClick: () => setShowInlineNotFound(true), children: [
13535
- /* @__PURE__ */ (0, import_jsx_runtime115.jsx)(import_lucide_react59.User, { className: "mr-2 h-4 w-4" }),
15128
+ /* @__PURE__ */ (0, import_jsx_runtime121.jsx)(DropdownMenuSeparator, {}),
15129
+ /* @__PURE__ */ (0, import_jsx_runtime121.jsxs)(DropdownMenuItem, { onClick: () => setShowInlineNotFound(true), children: [
15130
+ /* @__PURE__ */ (0, import_jsx_runtime121.jsx)(import_lucide_react65.User, { className: "mr-2 h-4 w-4" }),
13536
15131
  "My Profile"
13537
15132
  ] }),
13538
- /* @__PURE__ */ (0, import_jsx_runtime115.jsxs)(DropdownMenuItem, { onClick: () => setShowInlineNotFound(true), children: [
13539
- /* @__PURE__ */ (0, import_jsx_runtime115.jsx)(import_lucide_react59.Bell, { className: "mr-2 h-4 w-4" }),
15133
+ /* @__PURE__ */ (0, import_jsx_runtime121.jsxs)(DropdownMenuItem, { onClick: () => setShowInlineNotFound(true), children: [
15134
+ /* @__PURE__ */ (0, import_jsx_runtime121.jsx)(import_lucide_react65.Bell, { className: "mr-2 h-4 w-4" }),
13540
15135
  "Notifications"
13541
15136
  ] }),
13542
- /* @__PURE__ */ (0, import_jsx_runtime115.jsxs)(DropdownMenuItem, { onClick: () => setShowInlineNotFound(true), children: [
13543
- /* @__PURE__ */ (0, import_jsx_runtime115.jsx)(import_lucide_react59.MessageCircle, { className: "mr-2 h-4 w-4" }),
15137
+ /* @__PURE__ */ (0, import_jsx_runtime121.jsxs)(DropdownMenuItem, { onClick: () => setShowInlineNotFound(true), children: [
15138
+ /* @__PURE__ */ (0, import_jsx_runtime121.jsx)(import_lucide_react65.MessageCircle, { className: "mr-2 h-4 w-4" }),
13544
15139
  "Help & Support"
13545
15140
  ] }),
13546
- /* @__PURE__ */ (0, import_jsx_runtime115.jsx)(DropdownMenuSeparator, {}),
13547
- /* @__PURE__ */ (0, import_jsx_runtime115.jsxs)(DropdownMenuItem, { onClick: () => setShowInlineNotFound(true), children: [
13548
- /* @__PURE__ */ (0, import_jsx_runtime115.jsx)(import_lucide_react59.CreditCard, { className: "mr-2 h-4 w-4" }),
15141
+ /* @__PURE__ */ (0, import_jsx_runtime121.jsx)(DropdownMenuSeparator, {}),
15142
+ /* @__PURE__ */ (0, import_jsx_runtime121.jsxs)(DropdownMenuItem, { onClick: () => setShowInlineNotFound(true), children: [
15143
+ /* @__PURE__ */ (0, import_jsx_runtime121.jsx)(import_lucide_react65.CreditCard, { className: "mr-2 h-4 w-4" }),
13549
15144
  "Subscriptions"
13550
15145
  ] }),
13551
- /* @__PURE__ */ (0, import_jsx_runtime115.jsx)(DropdownMenuItem, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime115.jsxs)(import_link4.default, { href: "/apps", children: [
13552
- /* @__PURE__ */ (0, import_jsx_runtime115.jsx)(import_lucide_react59.ShoppingBag, { className: "mr-2 h-4 w-4" }),
15146
+ /* @__PURE__ */ (0, import_jsx_runtime121.jsx)(DropdownMenuItem, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime121.jsxs)(import_link4.default, { href: "/apps", children: [
15147
+ /* @__PURE__ */ (0, import_jsx_runtime121.jsx)(import_lucide_react65.ShoppingBag, { className: "mr-2 h-4 w-4" }),
13553
15148
  "Buy Apps"
13554
15149
  ] }) }),
13555
- /* @__PURE__ */ (0, import_jsx_runtime115.jsx)(
15150
+ /* @__PURE__ */ (0, import_jsx_runtime121.jsx)(
13556
15151
  ConfigDrawer,
13557
15152
  {
13558
- trigger: /* @__PURE__ */ (0, import_jsx_runtime115.jsxs)(DropdownMenuItem, { onSelect: (e) => e.preventDefault(), children: [
13559
- /* @__PURE__ */ (0, import_jsx_runtime115.jsx)(import_lucide_react59.Palette, { className: "mr-2 h-4 w-4" }),
15153
+ trigger: /* @__PURE__ */ (0, import_jsx_runtime121.jsxs)(DropdownMenuItem, { onSelect: (e) => e.preventDefault(), children: [
15154
+ /* @__PURE__ */ (0, import_jsx_runtime121.jsx)(import_lucide_react65.Palette, { className: "mr-2 h-4 w-4" }),
13560
15155
  "Theme Settings"
13561
15156
  ] })
13562
15157
  }
13563
15158
  ),
13564
- /* @__PURE__ */ (0, import_jsx_runtime115.jsxs)(DropdownMenuItem, { onClick: () => setShowInlineNotFound(true), children: [
13565
- /* @__PURE__ */ (0, import_jsx_runtime115.jsx)(import_lucide_react59.Settings, { className: "mr-2 h-4 w-4" }),
15159
+ /* @__PURE__ */ (0, import_jsx_runtime121.jsxs)(DropdownMenuItem, { onClick: () => setShowInlineNotFound(true), children: [
15160
+ /* @__PURE__ */ (0, import_jsx_runtime121.jsx)(import_lucide_react65.Settings, { className: "mr-2 h-4 w-4" }),
13566
15161
  "Settings"
13567
15162
  ] }),
13568
- /* @__PURE__ */ (0, import_jsx_runtime115.jsx)(DropdownMenuSeparator, {}),
13569
- /* @__PURE__ */ (0, import_jsx_runtime115.jsxs)(
15163
+ /* @__PURE__ */ (0, import_jsx_runtime121.jsx)(DropdownMenuSeparator, {}),
15164
+ /* @__PURE__ */ (0, import_jsx_runtime121.jsxs)(
13570
15165
  DropdownMenuItem,
13571
15166
  {
13572
15167
  variant: "destructive",
13573
15168
  onClick: () => setOpen(true),
13574
15169
  children: [
13575
- /* @__PURE__ */ (0, import_jsx_runtime115.jsx)(import_lucide_react59.LogOut, { className: "mr-2 h-4 w-4" }),
15170
+ /* @__PURE__ */ (0, import_jsx_runtime121.jsx)(import_lucide_react65.LogOut, { className: "mr-2 h-4 w-4" }),
13576
15171
  "Sign out"
13577
15172
  ]
13578
15173
  }
@@ -13581,12 +15176,12 @@ function NavUser2({ user: fallbackUser }) {
13581
15176
  }
13582
15177
  )
13583
15178
  ] }) }) }),
13584
- /* @__PURE__ */ (0, import_jsx_runtime115.jsx)(SignOutDialog, { open: !!open, onOpenChange: setOpen })
15179
+ /* @__PURE__ */ (0, import_jsx_runtime121.jsx)(SignOutDialog, { open: !!open, onOpenChange: setOpen })
13585
15180
  ] });
13586
15181
  }
13587
15182
 
13588
15183
  // src/components/layout/app-sidebar.tsx
13589
- var import_jsx_runtime116 = (
15184
+ var import_jsx_runtime122 = (
13590
15185
  // Sidebar ko fixed "sidebar" variant par lock kiya gaya hai (floating remove).
13591
15186
  require("react/jsx-runtime")
13592
15187
  );
@@ -13594,7 +15189,7 @@ function AppSidebar2() {
13594
15189
  const { collapsible } = useLayout();
13595
15190
  const currentUser = useAuthStore((state) => state.auth.user);
13596
15191
  const { unreadCount, fetchNotifications, subscribeToNotifications, unsubscribe } = useNotificationStore();
13597
- (0, import_react22.useEffect)(() => {
15192
+ (0, import_react25.useEffect)(() => {
13598
15193
  if (currentUser) {
13599
15194
  fetchNotifications(currentUser.accountNo);
13600
15195
  subscribeToNotifications(currentUser.accountNo);
@@ -13618,9 +15213,9 @@ function AppSidebar2() {
13618
15213
  })
13619
15214
  }))
13620
15215
  };
13621
- return /* @__PURE__ */ (0, import_jsx_runtime116.jsxs)(Sidebar, { collapsible, variant: "sidebar", children: [
13622
- /* @__PURE__ */ (0, import_jsx_runtime116.jsx)(SidebarHeader, { className: "pb-0", children: /* @__PURE__ */ (0, import_jsx_runtime116.jsx)(TeamSwitcher, { teams: dynamicSidebarData.teams }) }),
13623
- /* @__PURE__ */ (0, import_jsx_runtime116.jsx)("div", { className: "hidden group-data-[state=collapsed]:flex justify-center py-2", children: /* @__PURE__ */ (0, import_jsx_runtime116.jsx)(
15216
+ return /* @__PURE__ */ (0, import_jsx_runtime122.jsxs)(Sidebar, { collapsible, variant: "sidebar", children: [
15217
+ /* @__PURE__ */ (0, import_jsx_runtime122.jsx)(SidebarHeader, { className: "pb-0", children: /* @__PURE__ */ (0, import_jsx_runtime122.jsx)(TeamSwitcher, { teams: dynamicSidebarData.teams }) }),
15218
+ /* @__PURE__ */ (0, import_jsx_runtime122.jsx)("div", { className: "hidden group-data-[state=collapsed]:flex justify-center py-2", children: /* @__PURE__ */ (0, import_jsx_runtime122.jsx)(
13624
15219
  SidebarTrigger,
13625
15220
  {
13626
15221
  variant: "ghost",
@@ -13628,15 +15223,15 @@ function AppSidebar2() {
13628
15223
  "aria-label": "Toggle sidebar"
13629
15224
  }
13630
15225
  ) }),
13631
- /* @__PURE__ */ (0, import_jsx_runtime116.jsx)(SidebarContent, { children: dynamicSidebarData.navGroups.map((props) => /* @__PURE__ */ (0, import_jsx_runtime116.jsx)(NavGroup2, { ...props }, props.title)) }),
13632
- /* @__PURE__ */ (0, import_jsx_runtime116.jsx)(SidebarFooter, { children: /* @__PURE__ */ (0, import_jsx_runtime116.jsx)(NavUser2, { user: dynamicSidebarData.user }) })
15226
+ /* @__PURE__ */ (0, import_jsx_runtime122.jsx)(SidebarContent, { children: dynamicSidebarData.navGroups.map((props) => /* @__PURE__ */ (0, import_jsx_runtime122.jsx)(NavGroup2, { ...props }, props.title)) }),
15227
+ /* @__PURE__ */ (0, import_jsx_runtime122.jsx)(SidebarFooter, { children: /* @__PURE__ */ (0, import_jsx_runtime122.jsx)(NavUser2, { user: dynamicSidebarData.user }) })
13633
15228
  ] });
13634
15229
  }
13635
15230
 
13636
15231
  // src/components/skip-to-main.tsx
13637
- var import_jsx_runtime117 = require("react/jsx-runtime");
15232
+ var import_jsx_runtime123 = require("react/jsx-runtime");
13638
15233
  function SkipToMain() {
13639
- return /* @__PURE__ */ (0, import_jsx_runtime117.jsx)(
15234
+ return /* @__PURE__ */ (0, import_jsx_runtime123.jsx)(
13640
15235
  "a",
13641
15236
  {
13642
15237
  className: `fixed inset-s-44 z-999 -translate-y-52 bg-primary px-4 py-2 text-sm font-medium whitespace-nowrap text-primary-foreground opacity-95 shadow-sm transition hover:bg-primary/90 focus:translate-y-3 focus:transform focus-visible:ring-1 focus-visible:ring-ring`,
@@ -13648,7 +15243,7 @@ function SkipToMain() {
13648
15243
 
13649
15244
  // src/features/errors/not-found-error.tsx
13650
15245
  var import_navigation5 = require("next/navigation");
13651
- var import_jsx_runtime118 = require("react/jsx-runtime");
15246
+ var import_jsx_runtime124 = require("react/jsx-runtime");
13652
15247
  function NotFoundError({
13653
15248
  className,
13654
15249
  embedded = false,
@@ -13666,8 +15261,8 @@ function NotFoundError({
13666
15261
  if (onDismiss) onDismiss();
13667
15262
  router.push("/");
13668
15263
  };
13669
- return /* @__PURE__ */ (0, import_jsx_runtime118.jsx)("div", { className: cn(embedded ? "min-h-96 w-full py-8" : "h-svh", className), children: /* @__PURE__ */ (0, import_jsx_runtime118.jsxs)("div", { className: "m-auto flex h-full w-full flex-col items-center justify-center gap-2", children: [
13670
- /* @__PURE__ */ (0, import_jsx_runtime118.jsx)(
15264
+ return /* @__PURE__ */ (0, import_jsx_runtime124.jsx)("div", { className: cn(embedded ? "min-h-96 w-full py-8" : "h-svh", className), children: /* @__PURE__ */ (0, import_jsx_runtime124.jsxs)("div", { className: "m-auto flex h-full w-full flex-col items-center justify-center gap-2", children: [
15265
+ /* @__PURE__ */ (0, import_jsx_runtime124.jsx)(
13671
15266
  "h1",
13672
15267
  {
13673
15268
  className: cn(
@@ -13677,31 +15272,31 @@ function NotFoundError({
13677
15272
  children: "404"
13678
15273
  }
13679
15274
  ),
13680
- /* @__PURE__ */ (0, import_jsx_runtime118.jsx)("span", { className: "font-medium", children: "Oops! Page Not Found :-(!" }),
13681
- /* @__PURE__ */ (0, import_jsx_runtime118.jsxs)("p", { className: "text-center text-muted-foreground", children: [
15275
+ /* @__PURE__ */ (0, import_jsx_runtime124.jsx)("span", { className: "font-medium", children: "Oops! Page Not Found :-(!" }),
15276
+ /* @__PURE__ */ (0, import_jsx_runtime124.jsxs)("p", { className: "text-center text-muted-foreground", children: [
13682
15277
  "It seems like the page you're looking for ",
13683
- /* @__PURE__ */ (0, import_jsx_runtime118.jsx)("br", {}),
15278
+ /* @__PURE__ */ (0, import_jsx_runtime124.jsx)("br", {}),
13684
15279
  "does not exist or might have been removed."
13685
15280
  ] }),
13686
- /* @__PURE__ */ (0, import_jsx_runtime118.jsxs)("div", { className: "mt-6 flex gap-4", children: [
13687
- /* @__PURE__ */ (0, import_jsx_runtime118.jsx)(Button, { variant: "outline", onClick: handleGoBack, children: "Go Back" }),
13688
- /* @__PURE__ */ (0, import_jsx_runtime118.jsx)(Button, { onClick: handleGoHome, children: "Back to Home" })
15281
+ /* @__PURE__ */ (0, import_jsx_runtime124.jsxs)("div", { className: "mt-6 flex gap-4", children: [
15282
+ /* @__PURE__ */ (0, import_jsx_runtime124.jsx)(Button, { variant: "outline", onClick: handleGoBack, children: "Go Back" }),
15283
+ /* @__PURE__ */ (0, import_jsx_runtime124.jsx)(Button, { onClick: handleGoHome, children: "Back to Home" })
13689
15284
  ] })
13690
15285
  ] }) });
13691
15286
  }
13692
15287
 
13693
15288
  // src/design-system/templates/authenticated-layout.tsx
13694
- var import_jsx_runtime119 = require("react/jsx-runtime");
15289
+ var import_jsx_runtime125 = require("react/jsx-runtime");
13695
15290
  function AuthenticatedLayoutContent({ children }) {
13696
15291
  const { showInlineNotFound, setShowInlineNotFound } = useLayout();
13697
15292
  const pathname = (0, import_navigation6.usePathname)();
13698
- (0, import_react23.useEffect)(() => {
15293
+ (0, import_react26.useEffect)(() => {
13699
15294
  setShowInlineNotFound(false);
13700
15295
  }, [pathname, setShowInlineNotFound]);
13701
- return /* @__PURE__ */ (0, import_jsx_runtime119.jsxs)(import_jsx_runtime119.Fragment, { children: [
13702
- /* @__PURE__ */ (0, import_jsx_runtime119.jsx)(SkipToMain, {}),
13703
- /* @__PURE__ */ (0, import_jsx_runtime119.jsx)(AppSidebar2, {}),
13704
- /* @__PURE__ */ (0, import_jsx_runtime119.jsx)(
15296
+ return /* @__PURE__ */ (0, import_jsx_runtime125.jsxs)(import_jsx_runtime125.Fragment, { children: [
15297
+ /* @__PURE__ */ (0, import_jsx_runtime125.jsx)(SkipToMain, {}),
15298
+ /* @__PURE__ */ (0, import_jsx_runtime125.jsx)(AppSidebar2, {}),
15299
+ /* @__PURE__ */ (0, import_jsx_runtime125.jsx)(
13705
15300
  SidebarInset,
13706
15301
  {
13707
15302
  className: cn(
@@ -13709,7 +15304,7 @@ function AuthenticatedLayoutContent({ children }) {
13709
15304
  "has-[[data-layout=fixed]]:h-svh has-data-[layout=fixed]:h-svh",
13710
15305
  "peer-data-[variant=inset]:has-data-[layout=fixed]:h-[calc(100svh-(var(--spacing)*4))]"
13711
15306
  ),
13712
- children: showInlineNotFound ? /* @__PURE__ */ (0, import_jsx_runtime119.jsx)(
15307
+ children: showInlineNotFound ? /* @__PURE__ */ (0, import_jsx_runtime125.jsx)(
13713
15308
  NotFoundError,
13714
15309
  {
13715
15310
  embedded: true,
@@ -13721,24 +15316,24 @@ function AuthenticatedLayoutContent({ children }) {
13721
15316
  ] });
13722
15317
  }
13723
15318
  function AuthenticatedLayout({ children }) {
13724
- const [defaultOpen, setDefaultOpen] = (0, import_react23.useState)(true);
13725
- const [isMounted, setIsMounted] = (0, import_react23.useState)(false);
13726
- (0, import_react23.useEffect)(() => {
15319
+ const [defaultOpen, setDefaultOpen] = (0, import_react26.useState)(true);
15320
+ const [isMounted, setIsMounted] = (0, import_react26.useState)(false);
15321
+ (0, import_react26.useEffect)(() => {
13727
15322
  setDefaultOpen(getCookie("sidebar_state") !== "false");
13728
15323
  setIsMounted(true);
13729
15324
  }, []);
13730
15325
  if (!isMounted) {
13731
15326
  return null;
13732
15327
  }
13733
- return /* @__PURE__ */ (0, import_jsx_runtime119.jsx)(SearchProvider, { children: /* @__PURE__ */ (0, import_jsx_runtime119.jsx)(LayoutProvider, { children: /* @__PURE__ */ (0, import_jsx_runtime119.jsx)(SidebarProvider, { defaultOpen, children: /* @__PURE__ */ (0, import_jsx_runtime119.jsx)(AuthenticatedLayoutContent, { children }) }) }) });
15328
+ return /* @__PURE__ */ (0, import_jsx_runtime125.jsx)(SearchProvider, { children: /* @__PURE__ */ (0, import_jsx_runtime125.jsx)(LayoutProvider, { children: /* @__PURE__ */ (0, import_jsx_runtime125.jsx)(SidebarProvider, { defaultOpen, children: /* @__PURE__ */ (0, import_jsx_runtime125.jsx)(AuthenticatedLayoutContent, { children }) }) }) });
13734
15329
  }
13735
15330
 
13736
15331
  // src/design-system/templates/header.tsx
13737
- var import_react24 = require("react");
13738
- var import_jsx_runtime120 = require("react/jsx-runtime");
15332
+ var import_react27 = require("react");
15333
+ var import_jsx_runtime126 = require("react/jsx-runtime");
13739
15334
  function Header2({ className, fixed, children, ...props }) {
13740
- const [offset, setOffset] = (0, import_react24.useState)(0);
13741
- (0, import_react24.useEffect)(() => {
15335
+ const [offset, setOffset] = (0, import_react27.useState)(0);
15336
+ (0, import_react27.useEffect)(() => {
13742
15337
  const onScroll = () => {
13743
15338
  setOffset(document.body.scrollTop || document.documentElement.scrollTop);
13744
15339
  };
@@ -13747,7 +15342,7 @@ function Header2({ className, fixed, children, ...props }) {
13747
15342
  }, []);
13748
15343
  return (
13749
15344
  // Page header container: fixed mode me top par sticky behavior deta hai.
13750
- /* @__PURE__ */ (0, import_jsx_runtime120.jsx)(
15345
+ /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(
13751
15346
  "header",
13752
15347
  {
13753
15348
  className: cn(
@@ -13757,7 +15352,7 @@ function Header2({ className, fixed, children, ...props }) {
13757
15352
  className
13758
15353
  ),
13759
15354
  ...props,
13760
- children: /* @__PURE__ */ (0, import_jsx_runtime120.jsxs)(
15355
+ children: /* @__PURE__ */ (0, import_jsx_runtime126.jsxs)(
13761
15356
  "div",
13762
15357
  {
13763
15358
  className: cn(
@@ -13766,7 +15361,7 @@ function Header2({ className, fixed, children, ...props }) {
13766
15361
  offset > 10 && fixed && "after:absolute after:inset-0 after:-z-10 after:bg-background/20 after:backdrop-blur-lg"
13767
15362
  ),
13768
15363
  children: [
13769
- /* @__PURE__ */ (0, import_jsx_runtime120.jsx)(AppLogo, { className: "shrink-0 md:hidden" }),
15364
+ /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(AppLogo, { className: "shrink-0 md:hidden" }),
13770
15365
  children
13771
15366
  ]
13772
15367
  }
@@ -13777,9 +15372,9 @@ function Header2({ className, fixed, children, ...props }) {
13777
15372
  }
13778
15373
 
13779
15374
  // src/design-system/templates/main.tsx
13780
- var import_jsx_runtime121 = require("react/jsx-runtime");
15375
+ var import_jsx_runtime127 = require("react/jsx-runtime");
13781
15376
  function Main({ fixed, className, fluid, ...props }) {
13782
- return /* @__PURE__ */ (0, import_jsx_runtime121.jsx)(
15377
+ return /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(
13783
15378
  "main",
13784
15379
  {
13785
15380
  "data-layout": fixed ? "fixed" : "auto",
@@ -13797,21 +15392,21 @@ function Main({ fixed, className, fluid, ...props }) {
13797
15392
  }
13798
15393
 
13799
15394
  // src/design-system/templates/sidebar-search.tsx
13800
- var import_lucide_react60 = require("lucide-react");
13801
- var import_jsx_runtime122 = require("react/jsx-runtime");
15395
+ var import_lucide_react66 = require("lucide-react");
15396
+ var import_jsx_runtime128 = require("react/jsx-runtime");
13802
15397
  function SidebarSearch() {
13803
15398
  const { setOpen } = useSearch();
13804
- return /* @__PURE__ */ (0, import_jsx_runtime122.jsx)(SidebarMenu, { children: /* @__PURE__ */ (0, import_jsx_runtime122.jsx)(SidebarMenuItem, { children: /* @__PURE__ */ (0, import_jsx_runtime122.jsxs)(
15399
+ return /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(SidebarMenu, { children: /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(SidebarMenuItem, { children: /* @__PURE__ */ (0, import_jsx_runtime128.jsxs)(
13805
15400
  SidebarMenuButton,
13806
15401
  {
13807
15402
  onClick: () => setOpen(true),
13808
15403
  tooltip: "Search (\u2318K)",
13809
15404
  className: "bg-sidebar-accent/50 hover:bg-sidebar-accent border border-sidebar-border/60 text-muted-foreground hover:text-foreground",
13810
15405
  children: [
13811
- /* @__PURE__ */ (0, import_jsx_runtime122.jsx)(import_lucide_react60.SearchIcon, { className: "size-4 shrink-0" }),
13812
- /* @__PURE__ */ (0, import_jsx_runtime122.jsx)("span", { className: "flex-1 text-left text-xs font-normal group-data-[collapsible=icon]:hidden", children: "Search..." }),
13813
- /* @__PURE__ */ (0, import_jsx_runtime122.jsxs)("kbd", { className: "pointer-events-none hidden h-4 select-none items-center gap-0.5 rounded border bg-muted px-1.5 font-mono text-[10px] font-medium opacity-100 group-data-[collapsible=icon]:hidden sm:flex", children: [
13814
- /* @__PURE__ */ (0, import_jsx_runtime122.jsx)("span", { className: "text-[10px]", children: "\u2318" }),
15406
+ /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(import_lucide_react66.SearchIcon, { className: "size-4 shrink-0" }),
15407
+ /* @__PURE__ */ (0, import_jsx_runtime128.jsx)("span", { className: "flex-1 text-left text-xs font-normal group-data-[collapsible=icon]:hidden", children: "Search..." }),
15408
+ /* @__PURE__ */ (0, import_jsx_runtime128.jsxs)("kbd", { className: "pointer-events-none hidden h-4 select-none items-center gap-0.5 rounded border bg-muted px-1.5 font-mono text-[10px] font-medium opacity-100 group-data-[collapsible=icon]:hidden sm:flex", children: [
15409
+ /* @__PURE__ */ (0, import_jsx_runtime128.jsx)("span", { className: "text-[10px]", children: "\u2318" }),
13815
15410
  "K"
13816
15411
  ] })
13817
15412
  ]
@@ -13821,8 +15416,8 @@ function SidebarSearch() {
13821
15416
 
13822
15417
  // src/design-system/templates/top-nav.tsx
13823
15418
  var import_link5 = __toESM(require("next/link"));
13824
- var import_lucide_react61 = require("lucide-react");
13825
- var import_jsx_runtime123 = require("react/jsx-runtime");
15419
+ var import_lucide_react67 = require("lucide-react");
15420
+ var import_jsx_runtime129 = require("react/jsx-runtime");
13826
15421
  function TopNav({ className, links, ...props }) {
13827
15422
  const renderLink = ({
13828
15423
  title,
@@ -13833,7 +15428,7 @@ function TopNav({ className, links, ...props }) {
13833
15428
  }) => {
13834
15429
  const className2 = `text-sm font-medium transition-colors hover:text-primary ${isActive ? "" : "text-muted-foreground"}`;
13835
15430
  if (onClick) {
13836
- return /* @__PURE__ */ (0, import_jsx_runtime123.jsx)(
15431
+ return /* @__PURE__ */ (0, import_jsx_runtime129.jsx)(
13837
15432
  "button",
13838
15433
  {
13839
15434
  type: "button",
@@ -13845,7 +15440,7 @@ function TopNav({ className, links, ...props }) {
13845
15440
  title
13846
15441
  );
13847
15442
  }
13848
- return /* @__PURE__ */ (0, import_jsx_runtime123.jsx)(
15443
+ return /* @__PURE__ */ (0, import_jsx_runtime129.jsx)(
13849
15444
  import_link5.default,
13850
15445
  {
13851
15446
  href,
@@ -13856,9 +15451,9 @@ function TopNav({ className, links, ...props }) {
13856
15451
  title
13857
15452
  );
13858
15453
  };
13859
- return /* @__PURE__ */ (0, import_jsx_runtime123.jsxs)(import_jsx_runtime123.Fragment, { children: [
13860
- /* @__PURE__ */ (0, import_jsx_runtime123.jsxs)(DropdownMenu, { modal: false, children: [
13861
- /* @__PURE__ */ (0, import_jsx_runtime123.jsx)(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime123.jsxs)(
15454
+ return /* @__PURE__ */ (0, import_jsx_runtime129.jsxs)(import_jsx_runtime129.Fragment, { children: [
15455
+ /* @__PURE__ */ (0, import_jsx_runtime129.jsxs)(DropdownMenu, { modal: false, children: [
15456
+ /* @__PURE__ */ (0, import_jsx_runtime129.jsx)(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime129.jsxs)(
13862
15457
  Button,
13863
15458
  {
13864
15459
  size: "icon",
@@ -13868,18 +15463,18 @@ function TopNav({ className, links, ...props }) {
13868
15463
  className
13869
15464
  ),
13870
15465
  children: [
13871
- /* @__PURE__ */ (0, import_jsx_runtime123.jsx)(import_lucide_react61.Menu, {}),
13872
- /* @__PURE__ */ (0, import_jsx_runtime123.jsx)("span", { className: "sr-only", children: "Toggle navigation menu" })
15466
+ /* @__PURE__ */ (0, import_jsx_runtime129.jsx)(import_lucide_react67.Menu, {}),
15467
+ /* @__PURE__ */ (0, import_jsx_runtime129.jsx)("span", { className: "sr-only", children: "Toggle navigation menu" })
13873
15468
  ]
13874
15469
  }
13875
15470
  ) }),
13876
- /* @__PURE__ */ (0, import_jsx_runtime123.jsx)(DropdownMenuContent, { side: "bottom", align: "start", children: links.map((link) => /* @__PURE__ */ (0, import_jsx_runtime123.jsx)(
15471
+ /* @__PURE__ */ (0, import_jsx_runtime129.jsx)(DropdownMenuContent, { side: "bottom", align: "start", children: links.map((link) => /* @__PURE__ */ (0, import_jsx_runtime129.jsx)(
13877
15472
  DropdownMenuItem,
13878
15473
  {
13879
15474
  disabled: link.disabled,
13880
15475
  onClick: link.onClick,
13881
15476
  asChild: !link.onClick,
13882
- children: link.onClick ? /* @__PURE__ */ (0, import_jsx_runtime123.jsx)("span", { className: !link.isActive ? "text-muted-foreground" : "", children: link.title }) : /* @__PURE__ */ (0, import_jsx_runtime123.jsx)(
15477
+ children: link.onClick ? /* @__PURE__ */ (0, import_jsx_runtime129.jsx)("span", { className: !link.isActive ? "text-muted-foreground" : "", children: link.title }) : /* @__PURE__ */ (0, import_jsx_runtime129.jsx)(
13883
15478
  import_link5.default,
13884
15479
  {
13885
15480
  href: link.href,
@@ -13892,7 +15487,7 @@ function TopNav({ className, links, ...props }) {
13892
15487
  link.title
13893
15488
  )) })
13894
15489
  ] }),
13895
- /* @__PURE__ */ (0, import_jsx_runtime123.jsx)(
15490
+ /* @__PURE__ */ (0, import_jsx_runtime129.jsx)(
13896
15491
  "nav",
13897
15492
  {
13898
15493
  className: cn(
@@ -14075,7 +15670,10 @@ function TopNav({ className, links, ...props }) {
14075
15670
  FieldSeparator,
14076
15671
  FieldSet,
14077
15672
  FieldTitle,
15673
+ FileCardItem,
15674
+ FileUploadForm,
14078
15675
  FilterBar,
15676
+ FolderTreeItem,
14079
15677
  Form,
14080
15678
  FormControl,
14081
15679
  FormDescription,
@@ -14228,6 +15826,7 @@ function TopNav({ className, links, ...props }) {
14228
15826
  Spinner,
14229
15827
  Stats01,
14230
15828
  StatusBadge,
15829
+ StorageStatCard,
14231
15830
  Switch,
14232
15831
  Table,
14233
15832
  TableBody,
@@ -14255,12 +15854,15 @@ function TopNav({ className, links, ...props }) {
14255
15854
  TooltipTrigger,
14256
15855
  TopNav,
14257
15856
  TypingIndicator,
15857
+ UserFileCardsView,
14258
15858
  WizardTemplate,
14259
15859
  WorkspaceTemplate,
14260
15860
  badgeVariants,
14261
15861
  buttonGroupVariants,
14262
15862
  buttonVariants,
14263
15863
  downloadQrCode,
15864
+ formatBytes,
15865
+ getFileCategoryTheme,
14264
15866
  navigationMenuTriggerStyle,
14265
15867
  sidebarData,
14266
15868
  statusBadgeVariants,