@amogads/ui 1.1.4 → 1.1.6

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.mjs CHANGED
@@ -11089,8 +11089,1305 @@ function AiChatHeader({
11089
11089
  );
11090
11090
  }
11091
11091
 
11092
- // src/design-system/templates/list-template.tsx
11092
+ // src/design-system/components/files/file-card-item.tsx
11093
+ import {
11094
+ FileText as FileText3,
11095
+ Image as ImageIcon,
11096
+ FileSpreadsheet,
11097
+ Film,
11098
+ Archive as Archive4,
11099
+ File,
11100
+ Eye as Eye3,
11101
+ Download as Download2,
11102
+ MoreHorizontal as MoreHorizontal4,
11103
+ Copy as Copy3,
11104
+ Share2 as Share22,
11105
+ Trash2 as Trash26,
11106
+ Edit2
11107
+ } from "lucide-react";
11093
11108
  import { jsx as jsx94, jsxs as jsxs56 } from "react/jsx-runtime";
11109
+ function formatBytes(bytes, decimals = 1) {
11110
+ if (!bytes || bytes === 0) return "0 B";
11111
+ const k = 1024;
11112
+ const dm = decimals < 0 ? 0 : decimals;
11113
+ const sizes = ["B", "KB", "MB", "GB", "TB"];
11114
+ const i = Math.floor(Math.log(bytes) / Math.log(k));
11115
+ return parseFloat((bytes / Math.pow(k, i)).toFixed(dm)) + " " + sizes[i];
11116
+ }
11117
+ function getFileCategoryTheme(category) {
11118
+ const cat = (category || "").toLowerCase();
11119
+ if (cat.includes("pdf")) {
11120
+ return {
11121
+ name: "Pdf",
11122
+ icon: FileText3,
11123
+ badgeColor: "bg-red-500/10 text-red-600 dark:text-red-400 border-red-200/50",
11124
+ iconColor: "text-red-500",
11125
+ bgColor: "bg-red-50 dark:bg-red-950/30"
11126
+ };
11127
+ }
11128
+ if (cat.includes("doc") || cat.includes("word") || cat.includes("txt")) {
11129
+ return {
11130
+ name: "Doc",
11131
+ icon: FileText3,
11132
+ badgeColor: "bg-blue-500/10 text-blue-600 dark:text-blue-400 border-blue-200/50",
11133
+ iconColor: "text-blue-500",
11134
+ bgColor: "bg-blue-50 dark:bg-blue-950/30"
11135
+ };
11136
+ }
11137
+ if (cat.includes("xls") || cat.includes("csv") || cat.includes("sheet")) {
11138
+ return {
11139
+ name: "Spreadsheet",
11140
+ icon: FileSpreadsheet,
11141
+ badgeColor: "bg-emerald-500/10 text-emerald-600 dark:text-emerald-400 border-emerald-200/50",
11142
+ iconColor: "text-emerald-500",
11143
+ bgColor: "bg-emerald-50 dark:bg-emerald-950/30"
11144
+ };
11145
+ }
11146
+ if (cat.includes("image") || cat.includes("img") || cat.includes("png") || cat.includes("jpg")) {
11147
+ return {
11148
+ name: "Images",
11149
+ icon: ImageIcon,
11150
+ badgeColor: "bg-amber-500/10 text-amber-600 dark:text-amber-400 border-amber-200/50",
11151
+ iconColor: "text-amber-500",
11152
+ bgColor: "bg-amber-50 dark:bg-amber-950/30"
11153
+ };
11154
+ }
11155
+ if (cat.includes("video") || cat.includes("mp4") || cat.includes("mov")) {
11156
+ return {
11157
+ name: "Videos",
11158
+ icon: Film,
11159
+ badgeColor: "bg-purple-500/10 text-purple-600 dark:text-purple-400 border-purple-200/50",
11160
+ iconColor: "text-purple-500",
11161
+ bgColor: "bg-purple-50 dark:bg-purple-950/30"
11162
+ };
11163
+ }
11164
+ if (cat.includes("zip") || cat.includes("rar") || cat.includes("tar")) {
11165
+ return {
11166
+ name: "Archives",
11167
+ icon: Archive4,
11168
+ badgeColor: "bg-orange-500/10 text-orange-600 dark:text-orange-400 border-orange-200/50",
11169
+ iconColor: "text-orange-500",
11170
+ bgColor: "bg-orange-50 dark:bg-orange-950/30"
11171
+ };
11172
+ }
11173
+ return {
11174
+ name: "Other",
11175
+ icon: File,
11176
+ badgeColor: "bg-muted text-muted-foreground border-border/80",
11177
+ iconColor: "text-muted-foreground",
11178
+ bgColor: "bg-muted/40"
11179
+ };
11180
+ }
11181
+ function formatTimeAgo(dateString) {
11182
+ if (!dateString) return "recently";
11183
+ try {
11184
+ const d = new Date(dateString);
11185
+ const diff = (Date.now() - d.getTime()) / 1e3;
11186
+ if (diff < 60) return "just now";
11187
+ if (diff < 3600) return `${Math.floor(diff / 60)} mins ago`;
11188
+ if (diff < 86400) {
11189
+ const hours = Math.floor(diff / 3600);
11190
+ return `${hours} hour${hours > 1 ? "s" : ""} ago`;
11191
+ }
11192
+ const days = Math.floor(diff / 86400);
11193
+ return `${days} day${days > 1 ? "s" : ""} ago`;
11194
+ } catch {
11195
+ return "recently";
11196
+ }
11197
+ }
11198
+ function FileCardItem({
11199
+ file,
11200
+ viewMode = "grid",
11201
+ isSelected = false,
11202
+ onSelect,
11203
+ onPreview,
11204
+ onDownload,
11205
+ onDelete,
11206
+ onCopyLink,
11207
+ onRename,
11208
+ onShare,
11209
+ className
11210
+ }) {
11211
+ const theme = getFileCategoryTheme(file.category);
11212
+ const isImage = theme.name === "Images" || file.fileName.match(/\.(jpg|jpeg|png|webp|gif|svg)$/i) || file.fileUrl && file.fileUrl.startsWith("http") && !file.fileUrl.endsWith(".pdf");
11213
+ if (viewMode === "table") {
11214
+ return /* @__PURE__ */ jsxs56(
11215
+ "tr",
11216
+ {
11217
+ className: cn(
11218
+ "group border-b border-border/60 transition-colors hover:bg-muted/40 text-xs",
11219
+ isSelected && "bg-primary/5",
11220
+ className
11221
+ ),
11222
+ children: [
11223
+ /* @__PURE__ */ jsx94("td", { className: "py-2.5 px-3", children: /* @__PURE__ */ jsxs56("div", { className: "flex items-center gap-2.5 min-w-0", children: [
11224
+ /* @__PURE__ */ jsx94(
11225
+ "div",
11226
+ {
11227
+ className: cn(
11228
+ "flex h-7 w-7 items-center justify-center rounded-lg shrink-0",
11229
+ theme.bgColor,
11230
+ theme.iconColor
11231
+ ),
11232
+ children: /* @__PURE__ */ jsx94(theme.icon, { className: "h-3.5 w-3.5" })
11233
+ }
11234
+ ),
11235
+ /* @__PURE__ */ jsx94("span", { className: "font-semibold text-foreground truncate max-w-[200px]", children: file.fileName })
11236
+ ] }) }),
11237
+ /* @__PURE__ */ jsx94("td", { className: "py-2.5 px-3 text-muted-foreground truncate max-w-[140px]", children: file.folderPath || file.section || "General" }),
11238
+ /* @__PURE__ */ jsx94("td", { className: "py-2.5 px-3 text-muted-foreground font-mono", children: formatBytes(file.fileSize) }),
11239
+ /* @__PURE__ */ jsx94("td", { className: "py-2.5 px-3 text-muted-foreground", children: formatTimeAgo(file.updatedAt) }),
11240
+ /* @__PURE__ */ jsx94("td", { className: "py-2.5 px-3 text-right", children: /* @__PURE__ */ jsxs56("div", { className: "flex items-center justify-end gap-1", children: [
11241
+ /* @__PURE__ */ jsxs56(
11242
+ Button,
11243
+ {
11244
+ size: "sm",
11245
+ variant: "ghost",
11246
+ onClick: () => onPreview?.(file),
11247
+ className: "h-7 px-2.5 rounded-lg bg-indigo-500/10 text-indigo-600 dark:text-indigo-400 hover:bg-indigo-500/20 text-xs font-semibold gap-1.5",
11248
+ children: [
11249
+ /* @__PURE__ */ jsx94(Eye3, { className: "h-3.5 w-3.5" }),
11250
+ " Preview"
11251
+ ]
11252
+ }
11253
+ ),
11254
+ /* @__PURE__ */ jsx94(
11255
+ Button,
11256
+ {
11257
+ size: "icon",
11258
+ variant: "ghost",
11259
+ onClick: () => onDownload?.(file),
11260
+ className: "h-7 w-7 rounded-lg text-muted-foreground hover:bg-muted hover:text-foreground",
11261
+ children: /* @__PURE__ */ jsx94(Download2, { className: "h-3.5 w-3.5" })
11262
+ }
11263
+ ),
11264
+ /* @__PURE__ */ jsxs56(DropdownMenu, { children: [
11265
+ /* @__PURE__ */ jsx94(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsx94(
11266
+ Button,
11267
+ {
11268
+ size: "icon",
11269
+ variant: "ghost",
11270
+ className: "h-7 w-7 rounded-lg text-muted-foreground hover:bg-muted hover:text-foreground",
11271
+ children: /* @__PURE__ */ jsx94(MoreHorizontal4, { className: "h-3.5 w-3.5" })
11272
+ }
11273
+ ) }),
11274
+ /* @__PURE__ */ jsxs56(DropdownMenuContent, { align: "end", className: "w-40 rounded-xl p-1 shadow-lg", children: [
11275
+ /* @__PURE__ */ jsxs56(DropdownMenuItem, { onClick: () => onPreview?.(file), className: "gap-2 text-xs", children: [
11276
+ /* @__PURE__ */ jsx94(Eye3, { className: "h-3.5 w-3.5" }),
11277
+ " Preview"
11278
+ ] }),
11279
+ /* @__PURE__ */ jsxs56(DropdownMenuItem, { onClick: () => onDownload?.(file), className: "gap-2 text-xs", children: [
11280
+ /* @__PURE__ */ jsx94(Download2, { className: "h-3.5 w-3.5" }),
11281
+ " Download"
11282
+ ] }),
11283
+ /* @__PURE__ */ jsxs56(DropdownMenuItem, { onClick: () => onCopyLink?.(file), className: "gap-2 text-xs", children: [
11284
+ /* @__PURE__ */ jsx94(Copy3, { className: "h-3.5 w-3.5" }),
11285
+ " Copy Link"
11286
+ ] }),
11287
+ /* @__PURE__ */ jsx94(DropdownMenuSeparator, {}),
11288
+ /* @__PURE__ */ jsxs56(
11289
+ DropdownMenuItem,
11290
+ {
11291
+ onClick: () => onDelete?.(file),
11292
+ className: "gap-2 text-xs text-destructive focus:text-destructive",
11293
+ children: [
11294
+ /* @__PURE__ */ jsx94(Trash26, { className: "h-3.5 w-3.5" }),
11295
+ " Delete"
11296
+ ]
11297
+ }
11298
+ )
11299
+ ] })
11300
+ ] })
11301
+ ] }) })
11302
+ ]
11303
+ }
11304
+ );
11305
+ }
11306
+ return /* @__PURE__ */ jsxs56(
11307
+ "div",
11308
+ {
11309
+ className: cn(
11310
+ "group relative flex flex-col justify-between rounded-2xl border border-border/80 bg-card p-2.5 shadow-2xs hover:shadow-md transition-all hover:border-indigo-300 dark:hover:border-indigo-700 select-none",
11311
+ isSelected && "ring-2 ring-indigo-500 bg-indigo-500/5",
11312
+ className
11313
+ ),
11314
+ children: [
11315
+ /* @__PURE__ */ jsxs56("div", { children: [
11316
+ /* @__PURE__ */ jsx94("div", { className: "relative w-full aspect-[16/10] rounded-xl overflow-hidden bg-muted/60 mb-2.5 flex items-center justify-center", children: isImage && file.fileUrl ? /* @__PURE__ */ jsx94(
11317
+ "img",
11318
+ {
11319
+ src: file.fileUrl,
11320
+ alt: file.fileName,
11321
+ className: "w-full h-full object-cover transition-transform duration-300 group-hover:scale-105",
11322
+ loading: "lazy"
11323
+ }
11324
+ ) : /* @__PURE__ */ jsxs56(
11325
+ "div",
11326
+ {
11327
+ className: cn(
11328
+ "flex flex-col items-center justify-center gap-1.5 w-full h-full p-4",
11329
+ theme.bgColor
11330
+ ),
11331
+ children: [
11332
+ /* @__PURE__ */ jsx94(theme.icon, { className: cn("h-10 w-10", theme.iconColor) }),
11333
+ /* @__PURE__ */ jsx94("span", { className: "text-[11px] font-bold uppercase tracking-wider text-muted-foreground", children: theme.name })
11334
+ ]
11335
+ }
11336
+ ) }),
11337
+ /* @__PURE__ */ jsxs56("div", { className: "px-1 min-w-0", children: [
11338
+ /* @__PURE__ */ jsx94(
11339
+ "h3",
11340
+ {
11341
+ className: "text-sm font-bold text-foreground truncate tracking-tight",
11342
+ title: file.fileName,
11343
+ children: file.fileName
11344
+ }
11345
+ ),
11346
+ /* @__PURE__ */ jsxs56("p", { className: "text-xs text-muted-foreground truncate mt-0.5 flex items-center gap-1", children: [
11347
+ /* @__PURE__ */ jsx94("span", { children: file.folderPath || `Chat/${file.senderEmail || "amanmicropay@gmail.com"}` }),
11348
+ /* @__PURE__ */ jsx94("span", { children: "\xB7" }),
11349
+ /* @__PURE__ */ jsx94("span", { children: formatTimeAgo(file.updatedAt) })
11350
+ ] })
11351
+ ] })
11352
+ ] }),
11353
+ /* @__PURE__ */ jsxs56("div", { className: "flex items-center gap-1.5 mt-2.5 pt-2 border-t border-border/40 px-1", children: [
11354
+ /* @__PURE__ */ jsxs56(
11355
+ Button,
11356
+ {
11357
+ size: "sm",
11358
+ variant: "ghost",
11359
+ onClick: () => onPreview?.(file),
11360
+ className: "h-7 px-2.5 rounded-lg bg-indigo-500/10 text-indigo-600 dark:text-indigo-400 hover:bg-indigo-500/20 text-xs font-semibold gap-1.5 flex-1 justify-center cursor-pointer",
11361
+ children: [
11362
+ /* @__PURE__ */ jsx94(Eye3, { className: "h-3.5 w-3.5" }),
11363
+ " Preview"
11364
+ ]
11365
+ }
11366
+ ),
11367
+ /* @__PURE__ */ jsx94(
11368
+ Button,
11369
+ {
11370
+ size: "icon",
11371
+ variant: "ghost",
11372
+ onClick: () => onDownload?.(file),
11373
+ className: "h-7 w-7 rounded-lg text-muted-foreground hover:bg-muted hover:text-foreground cursor-pointer",
11374
+ title: "Download",
11375
+ children: /* @__PURE__ */ jsx94(Download2, { className: "h-3.5 w-3.5" })
11376
+ }
11377
+ ),
11378
+ /* @__PURE__ */ jsxs56(DropdownMenu, { children: [
11379
+ /* @__PURE__ */ jsx94(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsx94(
11380
+ Button,
11381
+ {
11382
+ size: "icon",
11383
+ variant: "ghost",
11384
+ className: "h-7 w-7 rounded-lg text-muted-foreground hover:bg-muted hover:text-foreground cursor-pointer",
11385
+ title: "More actions",
11386
+ children: /* @__PURE__ */ jsx94(MoreHorizontal4, { className: "h-3.5 w-3.5" })
11387
+ }
11388
+ ) }),
11389
+ /* @__PURE__ */ jsxs56(DropdownMenuContent, { align: "end", className: "w-40 rounded-xl p-1 shadow-lg", children: [
11390
+ /* @__PURE__ */ jsxs56(DropdownMenuItem, { onClick: () => onPreview?.(file), className: "gap-2 text-xs", children: [
11391
+ /* @__PURE__ */ jsx94(Eye3, { className: "h-3.5 w-3.5" }),
11392
+ " Preview"
11393
+ ] }),
11394
+ /* @__PURE__ */ jsxs56(DropdownMenuItem, { onClick: () => onDownload?.(file), className: "gap-2 text-xs", children: [
11395
+ /* @__PURE__ */ jsx94(Download2, { className: "h-3.5 w-3.5" }),
11396
+ " Download"
11397
+ ] }),
11398
+ /* @__PURE__ */ jsxs56(DropdownMenuItem, { onClick: () => onCopyLink?.(file), className: "gap-2 text-xs", children: [
11399
+ /* @__PURE__ */ jsx94(Copy3, { className: "h-3.5 w-3.5" }),
11400
+ " Copy Link"
11401
+ ] }),
11402
+ onShare && /* @__PURE__ */ jsxs56(DropdownMenuItem, { onClick: () => onShare?.(file), className: "gap-2 text-xs", children: [
11403
+ /* @__PURE__ */ jsx94(Share22, { className: "h-3.5 w-3.5" }),
11404
+ " Share"
11405
+ ] }),
11406
+ onRename && /* @__PURE__ */ jsxs56(DropdownMenuItem, { onClick: () => onRename?.(file), className: "gap-2 text-xs", children: [
11407
+ /* @__PURE__ */ jsx94(Edit2, { className: "h-3.5 w-3.5" }),
11408
+ " Rename"
11409
+ ] }),
11410
+ /* @__PURE__ */ jsx94(DropdownMenuSeparator, {}),
11411
+ /* @__PURE__ */ jsxs56(
11412
+ DropdownMenuItem,
11413
+ {
11414
+ onClick: () => onDelete?.(file),
11415
+ className: "gap-2 text-xs text-destructive focus:text-destructive",
11416
+ children: [
11417
+ /* @__PURE__ */ jsx94(Trash26, { className: "h-3.5 w-3.5" }),
11418
+ " Delete"
11419
+ ]
11420
+ }
11421
+ )
11422
+ ] })
11423
+ ] })
11424
+ ] })
11425
+ ]
11426
+ }
11427
+ );
11428
+ }
11429
+
11430
+ // src/design-system/components/files/folder-tree-item.tsx
11431
+ import { FolderOpen, ChevronDown as ChevronDown3, ChevronRight as ChevronRight7, Folder } from "lucide-react";
11432
+ import { jsx as jsx95, jsxs as jsxs57 } from "react/jsx-runtime";
11433
+ function FolderTreeItem({
11434
+ folder,
11435
+ isFolderActive,
11436
+ isExpanded,
11437
+ onToggleExpand,
11438
+ onSelectFolder,
11439
+ className
11440
+ }) {
11441
+ const isLevel0 = folder.level === 0;
11442
+ const isLevel1 = folder.level === 1;
11443
+ const isLevel2 = folder.level === 2;
11444
+ const hasChildren = isLevel0 || isLevel1;
11445
+ return /* @__PURE__ */ jsxs57(
11446
+ "div",
11447
+ {
11448
+ id: `folder-card-${folder.id}`,
11449
+ onClick: () => {
11450
+ if (hasChildren) {
11451
+ onToggleExpand(folder.id);
11452
+ } else {
11453
+ onSelectFolder(folder);
11454
+ }
11455
+ },
11456
+ className: cn(
11457
+ "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",
11458
+ isLevel0 && "font-bold bg-muted/20 border-border/50 my-1",
11459
+ isLevel1 && "ml-3 border-border/40 my-0.5",
11460
+ isLevel2 && "ml-6 border-transparent hover:bg-muted/40 my-0.5",
11461
+ 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",
11462
+ className
11463
+ ),
11464
+ children: [
11465
+ isFolderActive && /* @__PURE__ */ jsx95("div", { className: "absolute top-1 bottom-1 left-0 w-1 rounded-l-full bg-indigo-600" }),
11466
+ /* @__PURE__ */ jsxs57("div", { className: "flex items-center gap-1.5 min-w-0 flex-1", children: [
11467
+ hasChildren && /* @__PURE__ */ jsx95(
11468
+ "button",
11469
+ {
11470
+ type: "button",
11471
+ onClick: (e) => onToggleExpand(folder.id, e),
11472
+ className: "flex h-4 w-4 shrink-0 items-center justify-center rounded text-muted-foreground hover:bg-muted hover:text-foreground cursor-pointer",
11473
+ children: isExpanded ? /* @__PURE__ */ jsx95(ChevronDown3, { className: "h-3 w-3" }) : /* @__PURE__ */ jsx95(ChevronRight7, { className: "h-3 w-3" })
11474
+ }
11475
+ ),
11476
+ /* @__PURE__ */ jsx95(
11477
+ "div",
11478
+ {
11479
+ className: cn(
11480
+ "flex shrink-0 items-center justify-center rounded-lg text-indigo-600 dark:text-indigo-400 transition-colors",
11481
+ 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"
11482
+ ),
11483
+ children: isExpanded ? /* @__PURE__ */ jsx95(
11484
+ FolderOpen,
11485
+ {
11486
+ className: isLevel0 ? "h-3.5 w-3.5" : isLevel1 ? "h-3 w-3" : "h-3 w-3 text-indigo-500"
11487
+ }
11488
+ ) : /* @__PURE__ */ jsx95(
11489
+ Folder,
11490
+ {
11491
+ className: isLevel0 ? "h-3.5 w-3.5" : isLevel1 ? "h-3 w-3" : "h-3 w-3 text-indigo-500"
11492
+ }
11493
+ )
11494
+ }
11495
+ ),
11496
+ /* @__PURE__ */ jsx95(
11497
+ "span",
11498
+ {
11499
+ className: cn(
11500
+ "truncate text-foreground",
11501
+ isLevel0 ? "text-xs font-bold" : isLevel1 ? "text-[11px] font-semibold" : "text-[11px] font-medium",
11502
+ isFolderActive && "text-indigo-600 dark:text-indigo-400"
11503
+ ),
11504
+ children: folder.name
11505
+ }
11506
+ )
11507
+ ] }),
11508
+ /* @__PURE__ */ jsx95(
11509
+ Badge,
11510
+ {
11511
+ variant: isFolderActive ? "default" : "secondary",
11512
+ className: cn(
11513
+ "text-[10px] px-1.5 py-0 h-4 min-w-4 flex items-center justify-center font-mono",
11514
+ isFolderActive ? "bg-indigo-600 text-white" : "bg-muted text-muted-foreground group-hover:bg-indigo-500/10 group-hover:text-indigo-600"
11515
+ ),
11516
+ children: folder.fileCount
11517
+ }
11518
+ )
11519
+ ]
11520
+ }
11521
+ );
11522
+ }
11523
+
11524
+ // src/design-system/components/files/storage-stat-card.tsx
11525
+ import { HardDrive, FileText as FileText4, Image as ImageIcon2, Film as Film2, Database, ArrowUpRight as ArrowUpRight2 } from "lucide-react";
11526
+ import { jsx as jsx96, jsxs as jsxs58 } from "react/jsx-runtime";
11527
+ function StorageStatCard({
11528
+ totalFiles,
11529
+ totalSizeBytes = 0,
11530
+ maxStorageBytes = 10 * 1024 * 1024 * 1024,
11531
+ // 10 GB default
11532
+ stats,
11533
+ onViewAllFiles,
11534
+ onUploadClick,
11535
+ className
11536
+ }) {
11537
+ const percentUsed = Math.min(
11538
+ 100,
11539
+ Math.max(1, Math.round(totalSizeBytes / (maxStorageBytes || 1) * 100))
11540
+ );
11541
+ const defaultStats = stats || [
11542
+ {
11543
+ label: "Documents & PDFs",
11544
+ count: Math.round(totalFiles * 0.4),
11545
+ sizeBytes: Math.round(totalSizeBytes * 0.45),
11546
+ colorClass: "bg-red-500",
11547
+ icon: /* @__PURE__ */ jsx96(FileText4, { className: "h-4 w-4 text-red-500" })
11548
+ },
11549
+ {
11550
+ label: "Images & Photos",
11551
+ count: Math.round(totalFiles * 0.35),
11552
+ sizeBytes: Math.round(totalSizeBytes * 0.3),
11553
+ colorClass: "bg-amber-500",
11554
+ icon: /* @__PURE__ */ jsx96(ImageIcon2, { className: "h-4 w-4 text-amber-500" })
11555
+ },
11556
+ {
11557
+ label: "Media & Videos",
11558
+ count: Math.round(totalFiles * 0.15),
11559
+ sizeBytes: Math.round(totalSizeBytes * 0.2),
11560
+ colorClass: "bg-purple-500",
11561
+ icon: /* @__PURE__ */ jsx96(Film2, { className: "h-4 w-4 text-purple-500" })
11562
+ },
11563
+ {
11564
+ label: "Other & Archives",
11565
+ count: Math.max(0, totalFiles - Math.round(totalFiles * 0.9)),
11566
+ sizeBytes: Math.round(totalSizeBytes * 0.05),
11567
+ colorClass: "bg-indigo-500",
11568
+ icon: /* @__PURE__ */ jsx96(Database, { className: "h-4 w-4 text-indigo-500" })
11569
+ }
11570
+ ];
11571
+ return /* @__PURE__ */ jsxs58(
11572
+ "div",
11573
+ {
11574
+ className: cn(
11575
+ "flex flex-col gap-4 rounded-2xl border border-border/80 bg-card p-4 shadow-2xs select-none",
11576
+ className
11577
+ ),
11578
+ children: [
11579
+ /* @__PURE__ */ jsxs58("div", { className: "flex items-center justify-between", children: [
11580
+ /* @__PURE__ */ jsxs58("div", { className: "flex items-center gap-2.5", children: [
11581
+ /* @__PURE__ */ jsx96("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__ */ jsx96(HardDrive, { className: "h-5 w-5" }) }),
11582
+ /* @__PURE__ */ jsxs58("div", { children: [
11583
+ /* @__PURE__ */ jsx96("h3", { className: "text-xs font-bold text-foreground", children: "Storage Overview" }),
11584
+ /* @__PURE__ */ jsxs58("p", { className: "text-[11px] text-muted-foreground", children: [
11585
+ totalFiles,
11586
+ " items stored in workspace"
11587
+ ] })
11588
+ ] })
11589
+ ] }),
11590
+ /* @__PURE__ */ jsxs58("div", { className: "text-right", children: [
11591
+ /* @__PURE__ */ jsx96("p", { className: "text-xs font-bold text-foreground font-mono", children: formatBytes(totalSizeBytes) }),
11592
+ /* @__PURE__ */ jsxs58("p", { className: "text-[10px] text-muted-foreground font-mono", children: [
11593
+ "of ",
11594
+ formatBytes(maxStorageBytes)
11595
+ ] })
11596
+ ] })
11597
+ ] }),
11598
+ /* @__PURE__ */ jsxs58("div", { className: "space-y-1.5", children: [
11599
+ /* @__PURE__ */ jsx96("div", { className: "flex h-2.5 w-full overflow-hidden rounded-full bg-muted/60 p-0.5 border border-border/40", children: /* @__PURE__ */ jsx96(
11600
+ "div",
11601
+ {
11602
+ className: "h-full rounded-full bg-linear-to-r from-indigo-500 via-purple-500 to-amber-500 transition-all duration-500",
11603
+ style: { width: `${percentUsed}%` }
11604
+ }
11605
+ ) }),
11606
+ /* @__PURE__ */ jsxs58("div", { className: "flex justify-between text-[10px] text-muted-foreground", children: [
11607
+ /* @__PURE__ */ jsxs58("span", { children: [
11608
+ percentUsed,
11609
+ "% capacity utilized"
11610
+ ] }),
11611
+ /* @__PURE__ */ jsxs58("span", { children: [
11612
+ formatBytes(Math.max(0, maxStorageBytes - totalSizeBytes)),
11613
+ " available"
11614
+ ] })
11615
+ ] })
11616
+ ] }),
11617
+ /* @__PURE__ */ jsx96("div", { className: "grid grid-cols-2 gap-2 pt-1", children: defaultStats.map((item, idx) => /* @__PURE__ */ jsxs58(
11618
+ "div",
11619
+ {
11620
+ className: "flex items-center gap-2 rounded-xl border border-border/40 bg-muted/20 p-2",
11621
+ children: [
11622
+ /* @__PURE__ */ jsx96("div", { className: "shrink-0", children: item.icon }),
11623
+ /* @__PURE__ */ jsxs58("div", { className: "min-w-0 flex-1", children: [
11624
+ /* @__PURE__ */ jsx96("p", { className: "truncate text-[11px] font-semibold text-foreground", children: item.label }),
11625
+ /* @__PURE__ */ jsxs58("div", { className: "flex items-center justify-between text-[10px] text-muted-foreground", children: [
11626
+ /* @__PURE__ */ jsxs58("span", { children: [
11627
+ item.count,
11628
+ " files"
11629
+ ] }),
11630
+ /* @__PURE__ */ jsx96("span", { className: "font-mono", children: formatBytes(item.sizeBytes) })
11631
+ ] })
11632
+ ] })
11633
+ ]
11634
+ },
11635
+ idx
11636
+ )) }),
11637
+ (onViewAllFiles || onUploadClick) && /* @__PURE__ */ jsxs58("div", { className: "flex items-center justify-between pt-2 border-t border-border/50", children: [
11638
+ onViewAllFiles && /* @__PURE__ */ jsxs58(
11639
+ "button",
11640
+ {
11641
+ type: "button",
11642
+ onClick: onViewAllFiles,
11643
+ className: "text-xs font-semibold text-indigo-600 dark:text-indigo-400 hover:underline flex items-center gap-1 cursor-pointer",
11644
+ children: [
11645
+ /* @__PURE__ */ jsx96("span", { children: "Explore All Files" }),
11646
+ /* @__PURE__ */ jsx96(ArrowUpRight2, { className: "h-3.5 w-3.5" })
11647
+ ]
11648
+ }
11649
+ ),
11650
+ onUploadClick && /* @__PURE__ */ jsx96(
11651
+ "button",
11652
+ {
11653
+ type: "button",
11654
+ onClick: onUploadClick,
11655
+ className: "text-xs font-semibold bg-indigo-600 text-white hover:bg-indigo-700 px-3 py-1 rounded-lg transition-colors cursor-pointer",
11656
+ children: "Upload New"
11657
+ }
11658
+ )
11659
+ ] })
11660
+ ]
11661
+ }
11662
+ );
11663
+ }
11664
+
11665
+ // src/design-system/components/files/user-file-cards-view.tsx
11666
+ import { useState as useState12, useMemo as useMemo7 } from "react";
11667
+ import {
11668
+ Search as Search6,
11669
+ X as X4,
11670
+ FolderOpen as FolderOpen2,
11671
+ ArrowLeft as ArrowLeft3,
11672
+ Filter,
11673
+ ArrowUpDown,
11674
+ ArrowLeftRight,
11675
+ SlidersHorizontal,
11676
+ LayoutGrid,
11677
+ List as ListIcon,
11678
+ ChevronLeft as ChevronLeft2,
11679
+ ChevronRight as ChevronRight8,
11680
+ Upload,
11681
+ Bell as Bell4,
11682
+ Flag as Flag4,
11683
+ MoreVertical as MoreVertical3
11684
+ } from "lucide-react";
11685
+ import { Fragment as Fragment3, jsx as jsx97, jsxs as jsxs59 } from "react/jsx-runtime";
11686
+ function UserFileCardsView({
11687
+ folder,
11688
+ files,
11689
+ selectedFileId,
11690
+ onSelectFileForPreview,
11691
+ onDownloadFile,
11692
+ onDeleteFile,
11693
+ onCopyLink,
11694
+ onRenameFile,
11695
+ onShareFile,
11696
+ onUploadClick,
11697
+ onBack,
11698
+ onClose,
11699
+ className
11700
+ }) {
11701
+ const [searchQuery, setSearchQuery] = useState12("");
11702
+ const [selectedCategory, setSelectedCategory] = useState12("all");
11703
+ const [sortBy, setSortBy] = useState12("date");
11704
+ const [sortOrder, setSortOrder] = useState12("desc");
11705
+ const [viewMode, setViewMode] = useState12("grid");
11706
+ const [currentPage, setCurrentPage] = useState12(1);
11707
+ const itemsPerPage = viewMode === "grid" ? 12 : 20;
11708
+ const [selectedIds, setSelectedIds] = useState12(/* @__PURE__ */ new Set());
11709
+ const filteredFiles = useMemo7(() => {
11710
+ return files.filter((f) => {
11711
+ const matchCategory = selectedCategory === "all" || f.category.toLowerCase() === selectedCategory.toLowerCase() || selectedCategory === "Xls" && (f.category === "Csv" || f.category === "Xls");
11712
+ const matchSearch = !searchQuery.trim() || f.fileName.toLowerCase().includes(searchQuery.toLowerCase()) || f.folderPath && f.folderPath.toLowerCase().includes(searchQuery.toLowerCase());
11713
+ return matchCategory && matchSearch;
11714
+ });
11715
+ }, [files, selectedCategory, searchQuery]);
11716
+ const sortedFiles = useMemo7(() => {
11717
+ return [...filteredFiles].sort((a, b) => {
11718
+ let compare = 0;
11719
+ if (sortBy === "date") {
11720
+ const timeA = a.updatedAt ? new Date(a.updatedAt).getTime() : 0;
11721
+ const timeB = b.updatedAt ? new Date(b.updatedAt).getTime() : 0;
11722
+ compare = timeB - timeA;
11723
+ } else if (sortBy === "name") {
11724
+ compare = a.fileName.localeCompare(b.fileName);
11725
+ } else if (sortBy === "size") {
11726
+ compare = (b.fileSize || 0) - (a.fileSize || 0);
11727
+ }
11728
+ return sortOrder === "asc" ? -compare : compare;
11729
+ });
11730
+ }, [filteredFiles, sortBy, sortOrder]);
11731
+ const totalPages = Math.ceil(sortedFiles.length / itemsPerPage) || 1;
11732
+ const paginatedFiles = useMemo7(() => {
11733
+ const start = (currentPage - 1) * itemsPerPage;
11734
+ return sortedFiles.slice(start, start + itemsPerPage);
11735
+ }, [sortedFiles, currentPage, itemsPerPage]);
11736
+ const totalBytes = useMemo7(() => {
11737
+ return files.reduce((acc, curr) => acc + (curr.fileSize || 0), 0);
11738
+ }, [files]);
11739
+ const handleBulkDownload = () => {
11740
+ const toDownload = files.filter((f) => selectedIds.has(f.id));
11741
+ toDownload.forEach((f) => onDownloadFile?.(f));
11742
+ };
11743
+ const handleBulkDelete = () => {
11744
+ const toDelete = files.filter((f) => selectedIds.has(f.id));
11745
+ toDelete.forEach((f) => onDeleteFile?.(f));
11746
+ setSelectedIds(/* @__PURE__ */ new Set());
11747
+ };
11748
+ const folderDisplayName = folder?.name || "Images";
11749
+ const folderDisplayPath = folder?.path || "Chat/amanmicropay@gmail.com/Images";
11750
+ return /* @__PURE__ */ jsxs59(
11751
+ "div",
11752
+ {
11753
+ className: cn(
11754
+ "flex h-full min-h-0 w-full flex-1 flex-col overflow-hidden bg-background select-none",
11755
+ className
11756
+ ),
11757
+ children: [
11758
+ /* @__PURE__ */ jsxs59("div", { className: "flex items-center justify-between border-b border-border bg-background px-4 py-3 shrink-0", children: [
11759
+ /* @__PURE__ */ jsxs59("div", { className: "flex items-center gap-3 min-w-0", children: [
11760
+ onBack && /* @__PURE__ */ jsx97(
11761
+ "button",
11762
+ {
11763
+ type: "button",
11764
+ onClick: onBack,
11765
+ 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",
11766
+ title: "Back",
11767
+ children: /* @__PURE__ */ jsx97(ArrowLeft3, { className: "h-4 w-4" })
11768
+ }
11769
+ ),
11770
+ /* @__PURE__ */ jsx97("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 dark:border-indigo-900/40 shrink-0 shadow-2xs", children: /* @__PURE__ */ jsx97(FolderOpen2, { className: "h-5 w-5" }) }),
11771
+ /* @__PURE__ */ jsxs59("div", { className: "min-w-0", children: [
11772
+ /* @__PURE__ */ jsxs59("div", { className: "flex items-center gap-2", children: [
11773
+ /* @__PURE__ */ jsx97("h2", { className: "truncate text-base font-bold text-foreground tracking-tight", children: folderDisplayName }),
11774
+ /* @__PURE__ */ jsxs59("span", { className: "px-2 py-0.5 rounded-full bg-muted text-xs font-normal text-muted-foreground shrink-0", children: [
11775
+ filteredFiles.length,
11776
+ " files"
11777
+ ] })
11778
+ ] }),
11779
+ /* @__PURE__ */ jsxs59("p", { className: "truncate text-xs text-muted-foreground mt-0.5", children: [
11780
+ "Storage folder: ",
11781
+ folderDisplayPath
11782
+ ] })
11783
+ ] })
11784
+ ] }),
11785
+ /* @__PURE__ */ jsxs59("div", { className: "flex items-center gap-1 shrink-0", children: [
11786
+ /* @__PURE__ */ jsx97(
11787
+ "button",
11788
+ {
11789
+ type: "button",
11790
+ className: "p-2 rounded-lg text-amber-500 hover:bg-muted transition-colors cursor-pointer",
11791
+ title: "Notifications",
11792
+ children: /* @__PURE__ */ jsx97(Bell4, { className: "h-4 w-4" })
11793
+ }
11794
+ ),
11795
+ /* @__PURE__ */ jsx97(
11796
+ "button",
11797
+ {
11798
+ type: "button",
11799
+ className: "p-2 rounded-lg text-muted-foreground hover:text-foreground hover:bg-muted transition-colors cursor-pointer",
11800
+ title: "Flag / Report",
11801
+ children: /* @__PURE__ */ jsx97(Flag4, { className: "h-4 w-4" })
11802
+ }
11803
+ ),
11804
+ /* @__PURE__ */ jsxs59(DropdownMenu, { children: [
11805
+ /* @__PURE__ */ jsx97(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsx97(
11806
+ "button",
11807
+ {
11808
+ type: "button",
11809
+ className: "p-2 rounded-lg text-muted-foreground hover:text-foreground hover:bg-muted transition-colors cursor-pointer",
11810
+ title: "Options",
11811
+ children: /* @__PURE__ */ jsx97(MoreVertical3, { className: "h-4 w-4" })
11812
+ }
11813
+ ) }),
11814
+ /* @__PURE__ */ jsxs59(DropdownMenuContent, { align: "end", className: "w-44 rounded-xl p-1 shadow-lg", children: [
11815
+ onUploadClick && /* @__PURE__ */ jsxs59(DropdownMenuItem, { onClick: onUploadClick, className: "gap-2 text-xs", children: [
11816
+ /* @__PURE__ */ jsx97(Upload, { className: "h-3.5 w-3.5" }),
11817
+ " Upload Files"
11818
+ ] }),
11819
+ /* @__PURE__ */ jsxs59(DropdownMenuItem, { onClick: () => setViewMode(viewMode === "grid" ? "table" : "grid"), className: "gap-2 text-xs", children: [
11820
+ viewMode === "grid" ? /* @__PURE__ */ jsx97(ListIcon, { className: "h-3.5 w-3.5" }) : /* @__PURE__ */ jsx97(LayoutGrid, { className: "h-3.5 w-3.5" }),
11821
+ "Switch to ",
11822
+ viewMode === "grid" ? "Table" : "Card",
11823
+ " View"
11824
+ ] })
11825
+ ] })
11826
+ ] }),
11827
+ (onClose || onBack) && /* @__PURE__ */ jsx97(
11828
+ "button",
11829
+ {
11830
+ type: "button",
11831
+ onClick: onClose || onBack,
11832
+ className: "p-2 rounded-lg text-muted-foreground hover:text-foreground hover:bg-muted transition-colors cursor-pointer",
11833
+ title: "Close",
11834
+ children: /* @__PURE__ */ jsx97(X4, { className: "h-4 w-4" })
11835
+ }
11836
+ )
11837
+ ] })
11838
+ ] }),
11839
+ /* @__PURE__ */ jsxs59("div", { className: "flex flex-wrap items-center justify-between gap-2 px-4 pt-3 pb-2 shrink-0", children: [
11840
+ /* @__PURE__ */ jsxs59("div", { className: "flex items-center gap-2 overflow-x-auto py-0.5", children: [
11841
+ /* @__PURE__ */ jsxs59(
11842
+ Button,
11843
+ {
11844
+ variant: "outline",
11845
+ size: "sm",
11846
+ className: "h-8 gap-1.5 text-xs font-bold text-muted-foreground rounded-xl border-border px-3 shrink-0",
11847
+ children: [
11848
+ /* @__PURE__ */ jsx97(ArrowLeftRight, { className: "h-3.5 w-3.5 text-muted-foreground" }),
11849
+ "LTR"
11850
+ ]
11851
+ }
11852
+ ),
11853
+ /* @__PURE__ */ jsxs59(
11854
+ Button,
11855
+ {
11856
+ variant: "outline",
11857
+ size: "sm",
11858
+ className: "h-8 gap-1.5 text-xs font-bold text-muted-foreground rounded-xl border-border px-3 shrink-0",
11859
+ children: [
11860
+ /* @__PURE__ */ jsx97(Filter, { className: "h-3.5 w-3.5 text-muted-foreground" }),
11861
+ "FILTER"
11862
+ ]
11863
+ }
11864
+ ),
11865
+ /* @__PURE__ */ jsxs59(DropdownMenu, { children: [
11866
+ /* @__PURE__ */ jsx97(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsxs59(
11867
+ Button,
11868
+ {
11869
+ variant: "outline",
11870
+ size: "sm",
11871
+ className: "h-8 gap-1.5 text-xs font-bold text-muted-foreground rounded-xl border-border px-3 shrink-0",
11872
+ children: [
11873
+ /* @__PURE__ */ jsx97(ArrowUpDown, { className: "h-3.5 w-3.5 text-muted-foreground" }),
11874
+ "SORT"
11875
+ ]
11876
+ }
11877
+ ) }),
11878
+ /* @__PURE__ */ jsxs59(DropdownMenuContent, { align: "start", className: "w-40 rounded-xl p-1 shadow-lg", children: [
11879
+ /* @__PURE__ */ jsx97(DropdownMenuItem, { onClick: () => setSortBy("date"), className: "text-xs", children: "Date Modified" }),
11880
+ /* @__PURE__ */ jsx97(DropdownMenuItem, { onClick: () => setSortBy("name"), className: "text-xs", children: "File Name" }),
11881
+ /* @__PURE__ */ jsx97(DropdownMenuItem, { onClick: () => setSortBy("size"), className: "text-xs", children: "File Size" })
11882
+ ] })
11883
+ ] }),
11884
+ /* @__PURE__ */ jsxs59(
11885
+ Button,
11886
+ {
11887
+ variant: "outline",
11888
+ size: "sm",
11889
+ className: "h-8 gap-1.5 text-xs font-bold text-muted-foreground rounded-xl border-border px-3 shrink-0",
11890
+ children: [
11891
+ /* @__PURE__ */ jsx97(SlidersHorizontal, { className: "h-3.5 w-3.5 text-muted-foreground" }),
11892
+ "SHORT"
11893
+ ]
11894
+ }
11895
+ )
11896
+ ] }),
11897
+ /* @__PURE__ */ jsx97(
11898
+ Button,
11899
+ {
11900
+ onClick: () => setViewMode(viewMode === "grid" ? "table" : "grid"),
11901
+ size: "sm",
11902
+ className: "h-8 gap-1.5 text-xs font-bold rounded-xl bg-indigo-600 hover:bg-indigo-700 text-white shadow-xs px-3.5 shrink-0 cursor-pointer",
11903
+ children: viewMode === "grid" ? /* @__PURE__ */ jsxs59(Fragment3, { children: [
11904
+ /* @__PURE__ */ jsx97(LayoutGrid, { className: "h-3.5 w-3.5" }),
11905
+ "VIEW: CARD"
11906
+ ] }) : /* @__PURE__ */ jsxs59(Fragment3, { children: [
11907
+ /* @__PURE__ */ jsx97(ListIcon, { className: "h-3.5 w-3.5" }),
11908
+ "VIEW: TABLE"
11909
+ ] })
11910
+ }
11911
+ )
11912
+ ] }),
11913
+ /* @__PURE__ */ jsx97("div", { className: "px-4 pb-2 shrink-0", children: /* @__PURE__ */ jsxs59("div", { className: "relative w-full", children: [
11914
+ /* @__PURE__ */ jsx97(Search6, { className: "absolute left-3.5 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground" }),
11915
+ /* @__PURE__ */ jsx97(
11916
+ Input,
11917
+ {
11918
+ value: searchQuery,
11919
+ onChange: (e) => {
11920
+ setSearchQuery(e.target.value);
11921
+ setCurrentPage(1);
11922
+ },
11923
+ placeholder: "Search files by name, format, or sender...",
11924
+ className: "h-10 pl-10 pr-9 text-sm rounded-xl bg-background border-border/80 focus-visible:ring-1 focus-visible:ring-indigo-500"
11925
+ }
11926
+ ),
11927
+ searchQuery && /* @__PURE__ */ jsx97(
11928
+ "button",
11929
+ {
11930
+ type: "button",
11931
+ onClick: () => setSearchQuery(""),
11932
+ className: "absolute right-3 top-1/2 -translate-y-1/2 text-muted-foreground hover:text-foreground",
11933
+ children: /* @__PURE__ */ jsx97(X4, { className: "h-4 w-4" })
11934
+ }
11935
+ )
11936
+ ] }) }),
11937
+ /* @__PURE__ */ jsxs59("div", { className: "flex items-center justify-between px-4 py-2 text-xs text-muted-foreground font-medium shrink-0", children: [
11938
+ /* @__PURE__ */ jsxs59("span", { children: [
11939
+ filteredFiles.length,
11940
+ " files"
11941
+ ] }),
11942
+ /* @__PURE__ */ jsxs59("div", { className: "flex items-center gap-2", children: [
11943
+ /* @__PURE__ */ jsx97("span", { children: sortedFiles.length === 0 ? "0 of 0" : `${(currentPage - 1) * itemsPerPage + 1}\u2013${Math.min(
11944
+ currentPage * itemsPerPage,
11945
+ sortedFiles.length
11946
+ )} of ${sortedFiles.length}` }),
11947
+ /* @__PURE__ */ jsxs59("div", { className: "flex items-center gap-0.5", children: [
11948
+ /* @__PURE__ */ jsx97(
11949
+ Button,
11950
+ {
11951
+ variant: "ghost",
11952
+ size: "icon",
11953
+ disabled: currentPage <= 1,
11954
+ onClick: () => setCurrentPage((p) => Math.max(1, p - 1)),
11955
+ className: "h-6 w-6 rounded-md text-muted-foreground hover:text-foreground",
11956
+ children: /* @__PURE__ */ jsx97(ChevronLeft2, { className: "h-3.5 w-3.5" })
11957
+ }
11958
+ ),
11959
+ /* @__PURE__ */ jsx97(
11960
+ Button,
11961
+ {
11962
+ variant: "ghost",
11963
+ size: "icon",
11964
+ disabled: currentPage >= totalPages,
11965
+ onClick: () => setCurrentPage((p) => Math.min(totalPages, p + 1)),
11966
+ className: "h-6 w-6 rounded-md text-muted-foreground hover:text-foreground",
11967
+ children: /* @__PURE__ */ jsx97(ChevronRight8, { className: "h-3.5 w-3.5" })
11968
+ }
11969
+ )
11970
+ ] })
11971
+ ] })
11972
+ ] }),
11973
+ /* @__PURE__ */ jsx97("div", { className: "min-h-0 flex-1 overflow-y-auto p-4", children: paginatedFiles.length === 0 ? /* @__PURE__ */ jsxs59("div", { className: "flex flex-col items-center justify-center h-64 text-center p-6 rounded-2xl border border-dashed border-border/80 bg-muted/5", children: [
11974
+ /* @__PURE__ */ jsx97("div", { className: "flex h-12 w-12 items-center justify-center rounded-2xl bg-indigo-500/10 text-indigo-600 mb-3", children: /* @__PURE__ */ jsx97(FolderOpen2, { className: "h-6 w-6" }) }),
11975
+ /* @__PURE__ */ jsx97("h3", { className: "text-sm font-bold text-foreground", children: "No files found" }),
11976
+ /* @__PURE__ */ jsx97("p", { className: "text-xs text-muted-foreground max-w-xs mt-1", children: searchQuery ? `No files match your query "${searchQuery}" in this folder.` : "This folder is currently empty. Upload documents or media to get started." }),
11977
+ onUploadClick && /* @__PURE__ */ jsxs59(
11978
+ Button,
11979
+ {
11980
+ size: "sm",
11981
+ onClick: onUploadClick,
11982
+ className: "mt-4 gap-1.5 text-xs font-semibold bg-indigo-600 hover:bg-indigo-700 text-white rounded-xl shadow-xs",
11983
+ children: [
11984
+ /* @__PURE__ */ jsx97(Upload, { className: "h-3.5 w-3.5" }),
11985
+ "Upload First File"
11986
+ ]
11987
+ }
11988
+ )
11989
+ ] }) : viewMode === "table" ? /* @__PURE__ */ jsx97("div", { className: "overflow-x-auto rounded-2xl border border-border/80 bg-card shadow-2xs", children: /* @__PURE__ */ jsxs59("table", { className: "w-full text-left text-xs border-collapse", children: [
11990
+ /* @__PURE__ */ jsx97("thead", { children: /* @__PURE__ */ jsxs59("tr", { className: "border-b border-border/60 bg-muted/20 text-muted-foreground font-semibold", children: [
11991
+ /* @__PURE__ */ jsx97("th", { className: "py-2.5 px-3", children: "File Name" }),
11992
+ /* @__PURE__ */ jsx97("th", { className: "py-2.5 px-3", children: "Storage Space" }),
11993
+ /* @__PURE__ */ jsx97("th", { className: "py-2.5 px-3", children: "Size" }),
11994
+ /* @__PURE__ */ jsx97("th", { className: "py-2.5 px-3", children: "Updated" }),
11995
+ /* @__PURE__ */ jsx97("th", { className: "py-2.5 px-3 text-right", children: "Actions" })
11996
+ ] }) }),
11997
+ /* @__PURE__ */ jsx97("tbody", { children: paginatedFiles.map((file) => /* @__PURE__ */ jsx97(
11998
+ FileCardItem,
11999
+ {
12000
+ file,
12001
+ viewMode: "table",
12002
+ isSelected: selectedIds.has(file.id),
12003
+ onSelect: () => {
12004
+ setSelectedIds((prev) => {
12005
+ const next = new Set(prev);
12006
+ if (next.has(file.id)) next.delete(file.id);
12007
+ else next.add(file.id);
12008
+ return next;
12009
+ });
12010
+ },
12011
+ onPreview: onSelectFileForPreview,
12012
+ onDownload: onDownloadFile,
12013
+ onDelete: onDeleteFile,
12014
+ onCopyLink,
12015
+ onRename: onRenameFile,
12016
+ onShare: onShareFile
12017
+ },
12018
+ file.id
12019
+ )) })
12020
+ ] }) }) : /* @__PURE__ */ jsx97("div", { className: "grid grid-cols-1 sm:grid-cols-2 md:grid-cols-3 lg:grid-cols-4 gap-4", children: paginatedFiles.map((file) => /* @__PURE__ */ jsx97(
12021
+ FileCardItem,
12022
+ {
12023
+ file,
12024
+ viewMode: "grid",
12025
+ isSelected: selectedIds.has(file.id),
12026
+ onPreview: onSelectFileForPreview,
12027
+ onDownload: onDownloadFile,
12028
+ onDelete: onDeleteFile,
12029
+ onCopyLink,
12030
+ onRename: onRenameFile,
12031
+ onShare: onShareFile
12032
+ },
12033
+ file.id
12034
+ )) }) })
12035
+ ]
12036
+ }
12037
+ );
12038
+ }
12039
+
12040
+ // src/design-system/components/files/file-upload-form.tsx
12041
+ import { useState as useState13, useRef as useRef7 } from "react";
12042
+ import {
12043
+ Bold,
12044
+ Italic,
12045
+ Underline,
12046
+ List,
12047
+ ListOrdered,
12048
+ Paperclip as Paperclip2,
12049
+ Save,
12050
+ ArrowLeft as ArrowLeft4,
12051
+ X as X5,
12052
+ Loader2 as Loader22,
12053
+ Folder as FolderIcon
12054
+ } from "lucide-react";
12055
+ import { jsx as jsx98, jsxs as jsxs60 } from "react/jsx-runtime";
12056
+ var TEMPLATE_OPTIONS = [
12057
+ { id: "standard", name: "Standard Document" },
12058
+ { id: "invoice", name: "Financial Invoice" },
12059
+ { id: "report", name: "Report & Spreadsheet" },
12060
+ { id: "contract", name: "Contract & Legal" }
12061
+ ];
12062
+ var FOLDER_OPTIONS = ["Finance", "Chat", "Files", "Email", "AI Chat", "Order"];
12063
+ var SUB_FOLDER_OPTIONS = [
12064
+ "Pdf",
12065
+ "Doc",
12066
+ "Xls",
12067
+ "Images",
12068
+ "Videos",
12069
+ "Ppt",
12070
+ "Txt",
12071
+ "Csv",
12072
+ "Zip",
12073
+ "Other"
12074
+ ];
12075
+ function FileUploadForm({
12076
+ userEmail,
12077
+ folders,
12078
+ initialSubject = "",
12079
+ initialFolder = "Finance",
12080
+ initialSubFolder = "Pdf",
12081
+ onClose,
12082
+ onSave,
12083
+ onSaveDraft,
12084
+ onUploadSuccess,
12085
+ onPreviewAttachment,
12086
+ className
12087
+ }) {
12088
+ const [template, setTemplate] = useState13("standard");
12089
+ const [subject, setSubject] = useState13(initialSubject);
12090
+ const [folder, setFolder] = useState13(initialFolder);
12091
+ const [subFolder, setSubFolder] = useState13(initialSubFolder);
12092
+ const [remarks, setRemarks] = useState13("");
12093
+ const [body, setBody] = useState13("");
12094
+ const [attachments, setAttachments] = useState13([]);
12095
+ const [isSaving, setIsSaving] = useState13(false);
12096
+ const fileInputRef = useRef7(null);
12097
+ const handleFileChange = (e) => {
12098
+ const files = e.target.files;
12099
+ if (!files || files.length === 0) return;
12100
+ const newAttachments = Array.from(files).map((f) => ({
12101
+ id: `att-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`,
12102
+ name: f.name,
12103
+ type: f.type || "application/octet-stream",
12104
+ size: formatBytes(f.size),
12105
+ url: URL.createObjectURL(f),
12106
+ fileObj: f,
12107
+ progress: 100
12108
+ }));
12109
+ setAttachments((prev) => [...prev, ...newAttachments]);
12110
+ if (fileInputRef.current) fileInputRef.current.value = "";
12111
+ };
12112
+ const handleRemoveAttachment = (id) => {
12113
+ setAttachments((prev) => prev.filter((a) => a.id !== id));
12114
+ };
12115
+ const handleFormSubmit = async (e) => {
12116
+ if (e) e.preventDefault();
12117
+ setIsSaving(true);
12118
+ try {
12119
+ if (onSave) {
12120
+ await onSave({
12121
+ subject,
12122
+ folder,
12123
+ subFolder,
12124
+ remarks,
12125
+ body,
12126
+ attachments
12127
+ });
12128
+ }
12129
+ onUploadSuccess?.();
12130
+ } finally {
12131
+ setIsSaving(false);
12132
+ }
12133
+ };
12134
+ const handleDraftSubmit = async () => {
12135
+ if (onSaveDraft) {
12136
+ await onSaveDraft({
12137
+ subject,
12138
+ folder,
12139
+ subFolder,
12140
+ remarks,
12141
+ body,
12142
+ attachments
12143
+ });
12144
+ } else {
12145
+ await handleFormSubmit();
12146
+ }
12147
+ };
12148
+ return /* @__PURE__ */ jsxs60(
12149
+ "div",
12150
+ {
12151
+ className: cn(
12152
+ "flex h-full min-h-0 w-full flex-1 flex-col overflow-hidden bg-background select-none",
12153
+ className
12154
+ ),
12155
+ children: [
12156
+ /* @__PURE__ */ jsxs60("div", { className: "flex items-center justify-between border-b border-border bg-background px-6 py-4 shrink-0", children: [
12157
+ /* @__PURE__ */ jsx98("h2", { className: "text-xl font-bold text-foreground tracking-tight", children: "New File Upload" }),
12158
+ onClose && /* @__PURE__ */ jsxs60(
12159
+ "button",
12160
+ {
12161
+ type: "button",
12162
+ onClick: onClose,
12163
+ className: "flex items-center gap-1.5 text-sm font-semibold text-muted-foreground hover:text-foreground transition-colors cursor-pointer",
12164
+ children: [
12165
+ /* @__PURE__ */ jsx98(ArrowLeft4, { className: "h-4 w-4" }),
12166
+ /* @__PURE__ */ jsx98("span", { children: "Back to Storage" })
12167
+ ]
12168
+ }
12169
+ )
12170
+ ] }),
12171
+ /* @__PURE__ */ jsxs60("div", { className: "min-h-0 flex-1 overflow-y-auto p-6 space-y-5", children: [
12172
+ /* @__PURE__ */ jsxs60("div", { className: "space-y-1.5", children: [
12173
+ /* @__PURE__ */ jsx98(Label, { className: "text-xs font-semibold text-foreground", children: "Select Template" }),
12174
+ /* @__PURE__ */ jsx98("div", { className: "w-full max-w-sm", children: /* @__PURE__ */ jsxs60(Select, { value: template, onValueChange: setTemplate, children: [
12175
+ /* @__PURE__ */ jsx98(SelectTrigger, { className: "h-10 text-sm rounded-xl bg-background border-border/80", children: /* @__PURE__ */ jsx98(SelectValue, { placeholder: "Select template" }) }),
12176
+ /* @__PURE__ */ jsx98(SelectContent, { className: "rounded-xl shadow-lg", children: TEMPLATE_OPTIONS.map((t) => /* @__PURE__ */ jsx98(SelectItem, { value: t.id, className: "text-sm", children: t.name }, t.id)) })
12177
+ ] }) })
12178
+ ] }),
12179
+ /* @__PURE__ */ jsxs60("div", { className: "space-y-1.5", children: [
12180
+ /* @__PURE__ */ jsx98(Label, { className: "text-xs font-semibold text-foreground", children: "Document Title / Subject" }),
12181
+ /* @__PURE__ */ jsx98(
12182
+ Input,
12183
+ {
12184
+ value: subject,
12185
+ onChange: (e) => setSubject(e.target.value),
12186
+ placeholder: "Enter document title or reference name",
12187
+ className: "h-10 text-sm rounded-xl bg-background border-border/80"
12188
+ }
12189
+ )
12190
+ ] }),
12191
+ /* @__PURE__ */ jsxs60("div", { className: "space-y-1.5", children: [
12192
+ /* @__PURE__ */ jsx98(Label, { className: "text-xs font-semibold text-foreground", children: "Folder" }),
12193
+ /* @__PURE__ */ jsx98("div", { className: "w-full max-w-xs", children: /* @__PURE__ */ jsxs60(Select, { value: folder, onValueChange: setFolder, children: [
12194
+ /* @__PURE__ */ jsx98(SelectTrigger, { className: "h-10 text-sm rounded-xl bg-background border-border/80", children: /* @__PURE__ */ jsxs60("div", { className: "flex items-center gap-2", children: [
12195
+ /* @__PURE__ */ jsx98(FolderIcon, { className: "h-4 w-4 text-amber-500 fill-amber-500" }),
12196
+ /* @__PURE__ */ jsx98(SelectValue, { placeholder: "Select folder" })
12197
+ ] }) }),
12198
+ /* @__PURE__ */ jsx98(SelectContent, { className: "rounded-xl shadow-lg", children: (folders || FOLDER_OPTIONS.map((f) => ({ id: f, name: f }))).map((f) => /* @__PURE__ */ jsx98(SelectItem, { value: f.name, className: "text-sm", children: /* @__PURE__ */ jsxs60("div", { className: "flex items-center gap-2", children: [
12199
+ /* @__PURE__ */ jsx98(FolderIcon, { className: "h-3.5 w-3.5 text-amber-500 fill-amber-500" }),
12200
+ /* @__PURE__ */ jsx98("span", { children: f.name })
12201
+ ] }) }, f.id)) })
12202
+ ] }) })
12203
+ ] }),
12204
+ /* @__PURE__ */ jsxs60("div", { className: "space-y-1.5", children: [
12205
+ /* @__PURE__ */ jsx98(Label, { className: "text-xs font-semibold text-foreground", children: "Sub folder" }),
12206
+ /* @__PURE__ */ jsx98("div", { className: "w-full max-w-xs", children: /* @__PURE__ */ jsxs60(Select, { value: subFolder, onValueChange: setSubFolder, children: [
12207
+ /* @__PURE__ */ jsx98(SelectTrigger, { className: "h-10 text-sm rounded-xl bg-background border-border/80", children: /* @__PURE__ */ jsxs60("div", { className: "flex items-center gap-2", children: [
12208
+ /* @__PURE__ */ jsx98(FolderIcon, { className: "h-4 w-4 text-amber-500 fill-amber-500" }),
12209
+ /* @__PURE__ */ jsx98(SelectValue, { placeholder: "Select subfolder" })
12210
+ ] }) }),
12211
+ /* @__PURE__ */ jsx98(SelectContent, { className: "rounded-xl shadow-lg", children: SUB_FOLDER_OPTIONS.map((sf) => /* @__PURE__ */ jsx98(SelectItem, { value: sf, className: "text-sm", children: /* @__PURE__ */ jsxs60("div", { className: "flex items-center gap-2", children: [
12212
+ /* @__PURE__ */ jsx98(FolderIcon, { className: "h-3.5 w-3.5 text-amber-500 fill-amber-500" }),
12213
+ /* @__PURE__ */ jsx98("span", { children: sf })
12214
+ ] }) }, sf)) })
12215
+ ] }) })
12216
+ ] }),
12217
+ /* @__PURE__ */ jsxs60("div", { className: "space-y-1.5", children: [
12218
+ /* @__PURE__ */ jsx98(Label, { className: "text-xs font-semibold text-foreground", children: "Remarks" }),
12219
+ /* @__PURE__ */ jsx98(
12220
+ Textarea,
12221
+ {
12222
+ value: remarks,
12223
+ onChange: (e) => setRemarks(e.target.value),
12224
+ placeholder: "Add a note about these attachments...",
12225
+ className: "min-h-[80px] text-sm rounded-xl bg-background border-border/80 resize-y"
12226
+ }
12227
+ )
12228
+ ] }),
12229
+ /* @__PURE__ */ jsxs60("div", { className: "space-y-1.5", children: [
12230
+ /* @__PURE__ */ jsx98(Label, { className: "text-xs font-semibold text-foreground", children: "Description / Notes" }),
12231
+ /* @__PURE__ */ jsxs60("div", { className: "overflow-hidden rounded-xl border border-border/80 bg-background focus-within:ring-1 focus-within:ring-indigo-500", children: [
12232
+ /* @__PURE__ */ jsxs60("div", { className: "flex items-center gap-1 p-2 border-b border-border/60 bg-muted/20", children: [
12233
+ /* @__PURE__ */ jsx98(
12234
+ "button",
12235
+ {
12236
+ type: "button",
12237
+ className: "flex h-7 w-7 items-center justify-center rounded-lg text-muted-foreground hover:bg-muted hover:text-foreground text-xs font-bold transition-colors",
12238
+ title: "Bold",
12239
+ children: /* @__PURE__ */ jsx98(Bold, { className: "h-3.5 w-3.5" })
12240
+ }
12241
+ ),
12242
+ /* @__PURE__ */ jsx98(
12243
+ "button",
12244
+ {
12245
+ type: "button",
12246
+ className: "flex h-7 w-7 items-center justify-center rounded-lg text-muted-foreground hover:bg-muted hover:text-foreground text-xs font-bold transition-colors",
12247
+ title: "Italic",
12248
+ children: /* @__PURE__ */ jsx98(Italic, { className: "h-3.5 w-3.5" })
12249
+ }
12250
+ ),
12251
+ /* @__PURE__ */ jsx98(
12252
+ "button",
12253
+ {
12254
+ type: "button",
12255
+ className: "flex h-7 w-7 items-center justify-center rounded-lg text-muted-foreground hover:bg-muted hover:text-foreground text-xs font-bold transition-colors",
12256
+ title: "Underline",
12257
+ children: /* @__PURE__ */ jsx98(Underline, { className: "h-3.5 w-3.5" })
12258
+ }
12259
+ ),
12260
+ /* @__PURE__ */ jsx98("div", { className: "h-4 w-[1px] bg-border mx-1" }),
12261
+ /* @__PURE__ */ jsx98(
12262
+ "button",
12263
+ {
12264
+ type: "button",
12265
+ className: "flex h-7 w-7 items-center justify-center rounded-lg text-muted-foreground hover:bg-muted hover:text-foreground text-xs font-bold transition-colors",
12266
+ title: "Bullet List",
12267
+ children: /* @__PURE__ */ jsx98(List, { className: "h-3.5 w-3.5" })
12268
+ }
12269
+ ),
12270
+ /* @__PURE__ */ jsx98(
12271
+ "button",
12272
+ {
12273
+ type: "button",
12274
+ className: "flex h-7 w-7 items-center justify-center rounded-lg text-muted-foreground hover:bg-muted hover:text-foreground text-xs font-bold transition-colors",
12275
+ title: "Numbered List",
12276
+ children: /* @__PURE__ */ jsx98(ListOrdered, { className: "h-3.5 w-3.5" })
12277
+ }
12278
+ ),
12279
+ /* @__PURE__ */ jsx98("div", { className: "h-4 w-[1px] bg-border mx-1" }),
12280
+ /* @__PURE__ */ jsx98(
12281
+ "button",
12282
+ {
12283
+ type: "button",
12284
+ onClick: () => fileInputRef.current?.click(),
12285
+ className: "flex h-7 w-7 items-center justify-center rounded-lg text-muted-foreground hover:bg-muted hover:text-foreground text-xs font-bold transition-colors cursor-pointer",
12286
+ title: "Attach Files",
12287
+ children: /* @__PURE__ */ jsx98(Paperclip2, { className: "h-3.5 w-3.5" })
12288
+ }
12289
+ ),
12290
+ /* @__PURE__ */ jsx98(
12291
+ "input",
12292
+ {
12293
+ ref: fileInputRef,
12294
+ type: "file",
12295
+ multiple: true,
12296
+ className: "hidden",
12297
+ onChange: handleFileChange
12298
+ }
12299
+ )
12300
+ ] }),
12301
+ /* @__PURE__ */ jsx98(
12302
+ "textarea",
12303
+ {
12304
+ value: body,
12305
+ onChange: (e) => setBody(e.target.value),
12306
+ placeholder: "Type description, remarks, or notes here...",
12307
+ rows: 4,
12308
+ className: "w-full bg-transparent p-3 text-sm outline-none resize-y border-0 focus:ring-0"
12309
+ }
12310
+ )
12311
+ ] })
12312
+ ] }),
12313
+ attachments.length > 0 && /* @__PURE__ */ jsxs60("div", { className: "space-y-2 pt-1", children: [
12314
+ /* @__PURE__ */ jsxs60(Label, { className: "text-xs font-semibold text-foreground", children: [
12315
+ "Attached Files (",
12316
+ attachments.length,
12317
+ ")"
12318
+ ] }),
12319
+ /* @__PURE__ */ jsx98("div", { className: "flex flex-wrap gap-2", children: attachments.map((att) => /* @__PURE__ */ jsxs60(
12320
+ "div",
12321
+ {
12322
+ className: "flex items-center gap-2 px-3 py-1.5 rounded-xl border border-border/80 bg-muted/30 text-xs text-foreground font-medium",
12323
+ children: [
12324
+ /* @__PURE__ */ jsx98(Paperclip2, { className: "h-3.5 w-3.5 text-indigo-500" }),
12325
+ /* @__PURE__ */ jsx98("span", { className: "max-w-[200px] truncate", children: att.name }),
12326
+ /* @__PURE__ */ jsxs60("span", { className: "text-[10px] text-muted-foreground", children: [
12327
+ "(",
12328
+ att.size,
12329
+ ")"
12330
+ ] }),
12331
+ /* @__PURE__ */ jsx98(
12332
+ "button",
12333
+ {
12334
+ type: "button",
12335
+ onClick: () => handleRemoveAttachment(att.id),
12336
+ className: "text-muted-foreground hover:text-destructive cursor-pointer ml-1",
12337
+ children: /* @__PURE__ */ jsx98(X5, { className: "h-3.5 w-3.5" })
12338
+ }
12339
+ )
12340
+ ]
12341
+ },
12342
+ att.id
12343
+ )) })
12344
+ ] })
12345
+ ] }),
12346
+ /* @__PURE__ */ jsxs60("div", { className: "flex items-center justify-between border-t border-border bg-background px-6 py-4 shrink-0", children: [
12347
+ /* @__PURE__ */ jsx98(
12348
+ Button,
12349
+ {
12350
+ variant: "outline",
12351
+ onClick: onClose,
12352
+ className: "h-9 px-4 rounded-xl text-sm font-semibold border-border/80 cursor-pointer",
12353
+ children: "Cancel"
12354
+ }
12355
+ ),
12356
+ /* @__PURE__ */ jsxs60("div", { className: "flex items-center gap-2", children: [
12357
+ /* @__PURE__ */ jsxs60(
12358
+ Button,
12359
+ {
12360
+ variant: "outline",
12361
+ onClick: handleDraftSubmit,
12362
+ disabled: isSaving,
12363
+ className: "h-9 px-4 rounded-xl text-sm font-semibold border-border/80 gap-2 cursor-pointer",
12364
+ children: [
12365
+ /* @__PURE__ */ jsx98(Save, { className: "h-4 w-4 text-muted-foreground" }),
12366
+ /* @__PURE__ */ jsx98("span", { children: "Save as Draft" })
12367
+ ]
12368
+ }
12369
+ ),
12370
+ /* @__PURE__ */ jsxs60(
12371
+ Button,
12372
+ {
12373
+ onClick: () => handleFormSubmit(),
12374
+ disabled: isSaving,
12375
+ className: "h-9 px-5 rounded-xl text-sm font-semibold gap-2 bg-indigo-600 hover:bg-indigo-700 text-white shadow-xs cursor-pointer",
12376
+ children: [
12377
+ isSaving ? /* @__PURE__ */ jsx98(Loader22, { className: "h-4 w-4 animate-spin" }) : /* @__PURE__ */ jsx98(Save, { className: "h-4 w-4" }),
12378
+ /* @__PURE__ */ jsx98("span", { children: "Save" })
12379
+ ]
12380
+ }
12381
+ )
12382
+ ] })
12383
+ ] })
12384
+ ]
12385
+ }
12386
+ );
12387
+ }
12388
+
12389
+ // src/design-system/templates/list-template.tsx
12390
+ import { jsx as jsx99, jsxs as jsxs61 } from "react/jsx-runtime";
11094
12391
  function ListTemplate({
11095
12392
  title,
11096
12393
  description,
@@ -11110,8 +12407,8 @@ function ListTemplate({
11110
12407
  ...props
11111
12408
  }) {
11112
12409
  const hasFilterBar = Boolean(onSearchChange) || Boolean(filters) || activeFilters && activeFilters.length > 0 || Boolean(filterActions);
11113
- return /* @__PURE__ */ jsxs56("div", { className: cn("flex flex-col gap-6 p-4 sm:p-6 md:p-8", className), ...props, children: [
11114
- /* @__PURE__ */ jsx94(
12410
+ return /* @__PURE__ */ jsxs61("div", { className: cn("flex flex-col gap-6 p-4 sm:p-6 md:p-8", className), ...props, children: [
12411
+ /* @__PURE__ */ jsx99(
11115
12412
  PageHeader,
11116
12413
  {
11117
12414
  title,
@@ -11121,7 +12418,7 @@ function ListTemplate({
11121
12418
  actions
11122
12419
  }
11123
12420
  ),
11124
- hasFilterBar && /* @__PURE__ */ jsx94(
12421
+ hasFilterBar && /* @__PURE__ */ jsx99(
11125
12422
  FilterBar,
11126
12423
  {
11127
12424
  searchPlaceholder,
@@ -11133,14 +12430,14 @@ function ListTemplate({
11133
12430
  actions: filterActions
11134
12431
  }
11135
12432
  ),
11136
- /* @__PURE__ */ jsx94("div", { className: "flex-1", children }),
11137
- footer && /* @__PURE__ */ jsx94("div", { className: "pt-2", children: footer })
12433
+ /* @__PURE__ */ jsx99("div", { className: "flex-1", children }),
12434
+ footer && /* @__PURE__ */ jsx99("div", { className: "pt-2", children: footer })
11138
12435
  ] });
11139
12436
  }
11140
12437
 
11141
12438
  // src/design-system/templates/detail-template.tsx
11142
- import { ArrowLeft as ArrowLeft3 } from "lucide-react";
11143
- import { jsx as jsx95, jsxs as jsxs57 } from "react/jsx-runtime";
12439
+ import { ArrowLeft as ArrowLeft5 } from "lucide-react";
12440
+ import { jsx as jsx100, jsxs as jsxs62 } from "react/jsx-runtime";
11144
12441
  function DetailTemplate({
11145
12442
  title,
11146
12443
  description,
@@ -11155,9 +12452,9 @@ function DetailTemplate({
11155
12452
  className,
11156
12453
  ...props
11157
12454
  }) {
11158
- return /* @__PURE__ */ jsxs57("div", { className: cn("flex flex-col gap-6 p-4 sm:p-6 md:p-8", className), ...props, children: [
11159
- /* @__PURE__ */ jsxs57("div", { className: "flex flex-col gap-2", children: [
11160
- onBack && /* @__PURE__ */ jsxs57(
12455
+ return /* @__PURE__ */ jsxs62("div", { className: cn("flex flex-col gap-6 p-4 sm:p-6 md:p-8", className), ...props, children: [
12456
+ /* @__PURE__ */ jsxs62("div", { className: "flex flex-col gap-2", children: [
12457
+ onBack && /* @__PURE__ */ jsxs62(
11161
12458
  Button,
11162
12459
  {
11163
12460
  variant: "ghost",
@@ -11165,12 +12462,12 @@ function DetailTemplate({
11165
12462
  onClick: onBack,
11166
12463
  className: "w-fit gap-1.5 px-0 text-xs text-muted-foreground hover:bg-transparent hover:text-foreground",
11167
12464
  children: [
11168
- /* @__PURE__ */ jsx95(ArrowLeft3, { className: "h-3.5 w-3.5" }),
12465
+ /* @__PURE__ */ jsx100(ArrowLeft5, { className: "h-3.5 w-3.5" }),
11169
12466
  backLabel
11170
12467
  ]
11171
12468
  }
11172
12469
  ),
11173
- /* @__PURE__ */ jsx95(
12470
+ /* @__PURE__ */ jsx100(
11174
12471
  PageHeader,
11175
12472
  {
11176
12473
  title,
@@ -11181,8 +12478,8 @@ function DetailTemplate({
11181
12478
  }
11182
12479
  )
11183
12480
  ] }),
11184
- highlights && /* @__PURE__ */ jsx95("div", { className: "grid gap-4 sm:grid-cols-2 lg:grid-cols-4", children: highlights }),
11185
- /* @__PURE__ */ jsxs57(
12481
+ highlights && /* @__PURE__ */ jsx100("div", { className: "grid gap-4 sm:grid-cols-2 lg:grid-cols-4", children: highlights }),
12482
+ /* @__PURE__ */ jsxs62(
11186
12483
  "div",
11187
12484
  {
11188
12485
  className: cn(
@@ -11190,8 +12487,8 @@ function DetailTemplate({
11190
12487
  sidebar ? "grid-cols-1 lg:grid-cols-3" : "grid-cols-1"
11191
12488
  ),
11192
12489
  children: [
11193
- /* @__PURE__ */ jsx95("div", { className: cn(sidebar ? "lg:col-span-2 space-y-6" : "space-y-6"), children }),
11194
- sidebar && /* @__PURE__ */ jsx95("aside", { className: "space-y-6 lg:col-span-1", children: sidebar })
12490
+ /* @__PURE__ */ jsx100("div", { className: cn(sidebar ? "lg:col-span-2 space-y-6" : "space-y-6"), children }),
12491
+ sidebar && /* @__PURE__ */ jsx100("aside", { className: "space-y-6 lg:col-span-1", children: sidebar })
11195
12492
  ]
11196
12493
  }
11197
12494
  )
@@ -11199,8 +12496,8 @@ function DetailTemplate({
11199
12496
  }
11200
12497
 
11201
12498
  // src/design-system/templates/form-template.tsx
11202
- import { ArrowLeft as ArrowLeft4 } from "lucide-react";
11203
- import { jsx as jsx96, jsxs as jsxs58 } from "react/jsx-runtime";
12499
+ import { ArrowLeft as ArrowLeft6 } from "lucide-react";
12500
+ import { jsx as jsx101, jsxs as jsxs63 } from "react/jsx-runtime";
11204
12501
  function FormTemplate({
11205
12502
  title,
11206
12503
  description,
@@ -11219,9 +12516,9 @@ function FormTemplate({
11219
12516
  onSubmit,
11220
12517
  ...props
11221
12518
  }) {
11222
- return /* @__PURE__ */ jsxs58("div", { className: "flex flex-col gap-6 p-4 sm:p-6 md:p-8", children: [
11223
- /* @__PURE__ */ jsxs58("div", { className: "flex flex-col gap-2", children: [
11224
- onBack && /* @__PURE__ */ jsxs58(
12519
+ return /* @__PURE__ */ jsxs63("div", { className: "flex flex-col gap-6 p-4 sm:p-6 md:p-8", children: [
12520
+ /* @__PURE__ */ jsxs63("div", { className: "flex flex-col gap-2", children: [
12521
+ onBack && /* @__PURE__ */ jsxs63(
11225
12522
  Button,
11226
12523
  {
11227
12524
  type: "button",
@@ -11230,12 +12527,12 @@ function FormTemplate({
11230
12527
  onClick: onBack,
11231
12528
  className: "w-fit gap-1.5 px-0 text-xs text-muted-foreground hover:bg-transparent hover:text-foreground",
11232
12529
  children: [
11233
- /* @__PURE__ */ jsx96(ArrowLeft4, { className: "h-3.5 w-3.5" }),
12530
+ /* @__PURE__ */ jsx101(ArrowLeft6, { className: "h-3.5 w-3.5" }),
11234
12531
  backLabel
11235
12532
  ]
11236
12533
  }
11237
12534
  ),
11238
- /* @__PURE__ */ jsx96(
12535
+ /* @__PURE__ */ jsx101(
11239
12536
  PageHeader,
11240
12537
  {
11241
12538
  title,
@@ -11245,9 +12542,9 @@ function FormTemplate({
11245
12542
  }
11246
12543
  )
11247
12544
  ] }),
11248
- /* @__PURE__ */ jsxs58("form", { onSubmit, className: cn("space-y-8", className), ...props, children: [
11249
- /* @__PURE__ */ jsx96("div", { className: "space-y-6", children }),
11250
- /* @__PURE__ */ jsxs58(
12545
+ /* @__PURE__ */ jsxs63("form", { onSubmit, className: cn("space-y-8", className), ...props, children: [
12546
+ /* @__PURE__ */ jsx101("div", { className: "space-y-6", children }),
12547
+ /* @__PURE__ */ jsxs63(
11251
12548
  "div",
11252
12549
  {
11253
12550
  className: cn(
@@ -11255,9 +12552,9 @@ function FormTemplate({
11255
12552
  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"
11256
12553
  ),
11257
12554
  children: [
11258
- /* @__PURE__ */ jsx96("div", { children: secondaryActions }),
11259
- /* @__PURE__ */ jsxs58("div", { className: "flex items-center gap-3", children: [
11260
- onCancel && /* @__PURE__ */ jsx96(
12555
+ /* @__PURE__ */ jsx101("div", { children: secondaryActions }),
12556
+ /* @__PURE__ */ jsxs63("div", { className: "flex items-center gap-3", children: [
12557
+ onCancel && /* @__PURE__ */ jsx101(
11261
12558
  Button,
11262
12559
  {
11263
12560
  type: "button",
@@ -11267,7 +12564,7 @@ function FormTemplate({
11267
12564
  children: cancelLabel
11268
12565
  }
11269
12566
  ),
11270
- /* @__PURE__ */ jsx96(Button, { type: "submit", disabled: isSubmitting, children: isSubmitting ? "Saving..." : submitLabel })
12567
+ /* @__PURE__ */ jsx101(Button, { type: "submit", disabled: isSubmitting, children: isSubmitting ? "Saving..." : submitLabel })
11271
12568
  ] })
11272
12569
  ]
11273
12570
  }
@@ -11277,8 +12574,8 @@ function FormTemplate({
11277
12574
  }
11278
12575
 
11279
12576
  // src/design-system/templates/wizard-template.tsx
11280
- import { Check as Check7, ChevronLeft as ChevronLeft2, ChevronRight as ChevronRight7 } from "lucide-react";
11281
- import { jsx as jsx97, jsxs as jsxs59 } from "react/jsx-runtime";
12577
+ import { Check as Check7, ChevronLeft as ChevronLeft3, ChevronRight as ChevronRight9 } from "lucide-react";
12578
+ import { jsx as jsx102, jsxs as jsxs64 } from "react/jsx-runtime";
11282
12579
  function WizardTemplate({
11283
12580
  title,
11284
12581
  description,
@@ -11299,18 +12596,18 @@ function WizardTemplate({
11299
12596
  }) {
11300
12597
  const isLastStep = currentStepIndex === steps.length - 1;
11301
12598
  const isFirstStep = currentStepIndex === 0;
11302
- return /* @__PURE__ */ jsxs59("div", { className: cn("flex flex-col gap-6 p-4 sm:p-6 md:p-8", className), ...props, children: [
11303
- /* @__PURE__ */ jsx97(PageHeader, { title, description }),
11304
- /* @__PURE__ */ jsx97("nav", { "aria-label": "Wizard Progress", className: "py-2", children: /* @__PURE__ */ jsx97("ol", { className: "flex items-center justify-between gap-2 overflow-x-auto pb-2", children: steps.map((step, idx) => {
12599
+ return /* @__PURE__ */ jsxs64("div", { className: cn("flex flex-col gap-6 p-4 sm:p-6 md:p-8", className), ...props, children: [
12600
+ /* @__PURE__ */ jsx102(PageHeader, { title, description }),
12601
+ /* @__PURE__ */ jsx102("nav", { "aria-label": "Wizard Progress", className: "py-2", children: /* @__PURE__ */ jsx102("ol", { className: "flex items-center justify-between gap-2 overflow-x-auto pb-2", children: steps.map((step, idx) => {
11305
12602
  const isCompleted = idx < currentStepIndex;
11306
12603
  const isCurrent = idx === currentStepIndex;
11307
12604
  const isClickable = onStepChange && idx < currentStepIndex;
11308
- return /* @__PURE__ */ jsxs59(
12605
+ return /* @__PURE__ */ jsxs64(
11309
12606
  "li",
11310
12607
  {
11311
12608
  className: "flex flex-1 items-center gap-2.5 min-w-[120px]",
11312
12609
  children: [
11313
- /* @__PURE__ */ jsxs59(
12610
+ /* @__PURE__ */ jsxs64(
11314
12611
  "button",
11315
12612
  {
11316
12613
  type: "button",
@@ -11321,7 +12618,7 @@ function WizardTemplate({
11321
12618
  isClickable && "cursor-pointer hover:opacity-80"
11322
12619
  ),
11323
12620
  children: [
11324
- /* @__PURE__ */ jsx97(
12621
+ /* @__PURE__ */ jsx102(
11325
12622
  "span",
11326
12623
  {
11327
12624
  className: cn(
@@ -11330,10 +12627,10 @@ function WizardTemplate({
11330
12627
  isCurrent && "border-2 border-primary bg-primary/10 text-primary font-bold",
11331
12628
  !isCompleted && !isCurrent && "border border-border bg-muted text-muted-foreground"
11332
12629
  ),
11333
- children: isCompleted ? /* @__PURE__ */ jsx97(Check7, { className: "h-4 w-4" }) : idx + 1
12630
+ children: isCompleted ? /* @__PURE__ */ jsx102(Check7, { className: "h-4 w-4" }) : idx + 1
11334
12631
  }
11335
12632
  ),
11336
- /* @__PURE__ */ jsx97("div", { className: "hidden sm:block", children: /* @__PURE__ */ jsx97(
12633
+ /* @__PURE__ */ jsx102("div", { className: "hidden sm:block", children: /* @__PURE__ */ jsx102(
11337
12634
  "div",
11338
12635
  {
11339
12636
  className: cn(
@@ -11346,7 +12643,7 @@ function WizardTemplate({
11346
12643
  ]
11347
12644
  }
11348
12645
  ),
11349
- idx < steps.length - 1 && /* @__PURE__ */ jsx97(
12646
+ idx < steps.length - 1 && /* @__PURE__ */ jsx102(
11350
12647
  "div",
11351
12648
  {
11352
12649
  className: cn(
@@ -11360,9 +12657,9 @@ function WizardTemplate({
11360
12657
  step.id
11361
12658
  );
11362
12659
  }) }) }),
11363
- /* @__PURE__ */ jsx97("div", { className: "flex-1 rounded-lg border bg-card p-4 sm:p-6", children }),
11364
- /* @__PURE__ */ jsxs59("div", { className: "flex items-center justify-between pt-2", children: [
11365
- /* @__PURE__ */ jsxs59(
12660
+ /* @__PURE__ */ jsx102("div", { className: "flex-1 rounded-lg border bg-card p-4 sm:p-6", children }),
12661
+ /* @__PURE__ */ jsxs64("div", { className: "flex items-center justify-between pt-2", children: [
12662
+ /* @__PURE__ */ jsxs64(
11366
12663
  Button,
11367
12664
  {
11368
12665
  type: "button",
@@ -11370,12 +12667,12 @@ function WizardTemplate({
11370
12667
  disabled: isFirstStep || isSubmitting,
11371
12668
  onClick: onPrevious,
11372
12669
  children: [
11373
- /* @__PURE__ */ jsx97(ChevronLeft2, { className: "mr-1 h-4 w-4" }),
12670
+ /* @__PURE__ */ jsx102(ChevronLeft3, { className: "mr-1 h-4 w-4" }),
11374
12671
  previousLabel
11375
12672
  ]
11376
12673
  }
11377
12674
  ),
11378
- isLastStep ? /* @__PURE__ */ jsx97(
12675
+ isLastStep ? /* @__PURE__ */ jsx102(
11379
12676
  Button,
11380
12677
  {
11381
12678
  type: "button",
@@ -11383,7 +12680,7 @@ function WizardTemplate({
11383
12680
  onClick: onSubmit,
11384
12681
  children: isSubmitting ? "Submitting..." : submitLabel
11385
12682
  }
11386
- ) : /* @__PURE__ */ jsxs59(
12683
+ ) : /* @__PURE__ */ jsxs64(
11387
12684
  Button,
11388
12685
  {
11389
12686
  type: "button",
@@ -11391,7 +12688,7 @@ function WizardTemplate({
11391
12688
  onClick: onNext,
11392
12689
  children: [
11393
12690
  nextLabel,
11394
- /* @__PURE__ */ jsx97(ChevronRight7, { className: "ml-1 h-4 w-4" })
12691
+ /* @__PURE__ */ jsx102(ChevronRight9, { className: "ml-1 h-4 w-4" })
11395
12692
  ]
11396
12693
  }
11397
12694
  )
@@ -11400,7 +12697,7 @@ function WizardTemplate({
11400
12697
  }
11401
12698
 
11402
12699
  // src/design-system/templates/dashboard-template.tsx
11403
- import { jsx as jsx98, jsxs as jsxs60 } from "react/jsx-runtime";
12700
+ import { jsx as jsx103, jsxs as jsxs65 } from "react/jsx-runtime";
11404
12701
  function DashboardTemplate({
11405
12702
  title,
11406
12703
  description,
@@ -11414,8 +12711,8 @@ function DashboardTemplate({
11414
12711
  className,
11415
12712
  ...props
11416
12713
  }) {
11417
- return /* @__PURE__ */ jsxs60("div", { className: cn("flex flex-col gap-6 p-4 sm:p-6 md:p-8", className), ...props, children: [
11418
- /* @__PURE__ */ jsx98(
12714
+ return /* @__PURE__ */ jsxs65("div", { className: cn("flex flex-col gap-6 p-4 sm:p-6 md:p-8", className), ...props, children: [
12715
+ /* @__PURE__ */ jsx103(
11419
12716
  PageHeader,
11420
12717
  {
11421
12718
  title,
@@ -11425,15 +12722,15 @@ function DashboardTemplate({
11425
12722
  actions
11426
12723
  }
11427
12724
  ),
11428
- metrics && /* @__PURE__ */ jsx98("section", { "aria-label": "Key Metrics", className: "grid gap-4 sm:grid-cols-2 lg:grid-cols-4", children: metrics }),
11429
- charts && /* @__PURE__ */ jsx98("section", { "aria-label": "Charts and Visualizations", className: "grid gap-4 md:grid-cols-2 lg:grid-cols-7", children: charts }),
11430
- activity && /* @__PURE__ */ jsx98("section", { "aria-label": "Recent Activity", className: "space-y-4", children: activity }),
11431
- children && /* @__PURE__ */ jsx98("div", { className: "space-y-6", children })
12725
+ metrics && /* @__PURE__ */ jsx103("section", { "aria-label": "Key Metrics", className: "grid gap-4 sm:grid-cols-2 lg:grid-cols-4", children: metrics }),
12726
+ charts && /* @__PURE__ */ jsx103("section", { "aria-label": "Charts and Visualizations", className: "grid gap-4 md:grid-cols-2 lg:grid-cols-7", children: charts }),
12727
+ activity && /* @__PURE__ */ jsx103("section", { "aria-label": "Recent Activity", className: "space-y-4", children: activity }),
12728
+ children && /* @__PURE__ */ jsx103("div", { className: "space-y-6", children })
11432
12729
  ] });
11433
12730
  }
11434
12731
 
11435
12732
  // src/design-system/templates/workspace-template.tsx
11436
- import { jsx as jsx99, jsxs as jsxs61 } from "react/jsx-runtime";
12733
+ import { jsx as jsx104, jsxs as jsxs66 } from "react/jsx-runtime";
11437
12734
  function WorkspaceTemplate({
11438
12735
  header,
11439
12736
  leftSidebar,
@@ -11443,7 +12740,7 @@ function WorkspaceTemplate({
11443
12740
  className,
11444
12741
  ...props
11445
12742
  }) {
11446
- return /* @__PURE__ */ jsxs61(
12743
+ return /* @__PURE__ */ jsxs66(
11447
12744
  "div",
11448
12745
  {
11449
12746
  className: cn(
@@ -11452,13 +12749,13 @@ function WorkspaceTemplate({
11452
12749
  ),
11453
12750
  ...props,
11454
12751
  children: [
11455
- header && /* @__PURE__ */ jsx99("header", { className: "flex h-14 shrink-0 items-center border-b px-4 bg-background z-10", children: header }),
11456
- /* @__PURE__ */ jsxs61("div", { className: "flex flex-1 overflow-hidden", children: [
11457
- leftSidebar && /* @__PURE__ */ jsx99("aside", { className: "hidden md:flex w-64 shrink-0 flex-col border-r bg-sidebar p-3 overflow-y-auto", children: leftSidebar }),
11458
- /* @__PURE__ */ jsx99("main", { className: "flex flex-1 flex-col overflow-y-auto p-4 sm:p-6 bg-muted/20", children }),
11459
- rightSidebar && /* @__PURE__ */ jsx99("aside", { className: "hidden lg:flex w-80 shrink-0 flex-col border-l bg-background p-4 overflow-y-auto", children: rightSidebar })
12752
+ header && /* @__PURE__ */ jsx104("header", { className: "flex h-14 shrink-0 items-center border-b px-4 bg-background z-10", children: header }),
12753
+ /* @__PURE__ */ jsxs66("div", { className: "flex flex-1 overflow-hidden", children: [
12754
+ leftSidebar && /* @__PURE__ */ jsx104("aside", { className: "hidden md:flex w-64 shrink-0 flex-col border-r bg-sidebar p-3 overflow-y-auto", children: leftSidebar }),
12755
+ /* @__PURE__ */ jsx104("main", { className: "flex flex-1 flex-col overflow-y-auto p-4 sm:p-6 bg-muted/20", children }),
12756
+ rightSidebar && /* @__PURE__ */ jsx104("aside", { className: "hidden lg:flex w-80 shrink-0 flex-col border-l bg-background p-4 overflow-y-auto", children: rightSidebar })
11460
12757
  ] }),
11461
- footer && /* @__PURE__ */ jsx99("footer", { className: "flex h-10 shrink-0 items-center border-t px-4 text-xs text-muted-foreground bg-background", children: footer })
12758
+ footer && /* @__PURE__ */ jsx104("footer", { className: "flex h-10 shrink-0 items-center border-t px-4 text-xs text-muted-foreground bg-background", children: footer })
11462
12759
  ]
11463
12760
  }
11464
12761
  );
@@ -11466,14 +12763,14 @@ function WorkspaceTemplate({
11466
12763
 
11467
12764
  // src/design-system/templates/app-header.tsx
11468
12765
  import { useEffect as useEffect14 } from "react";
11469
- import { Bell as Bell4 } from "lucide-react";
12766
+ import { Bell as Bell5 } from "lucide-react";
11470
12767
  import { useRouter as useRouter2 } from "next/navigation";
11471
12768
 
11472
12769
  // src/components/layout/header.tsx
11473
- import { useEffect as useEffect13, useState as useState12 } from "react";
11474
- import { jsx as jsx100, jsxs as jsxs62 } from "react/jsx-runtime";
12770
+ import { useEffect as useEffect13, useState as useState14 } from "react";
12771
+ import { jsx as jsx105, jsxs as jsxs67 } from "react/jsx-runtime";
11475
12772
  function Header({ className, fixed, children, ...props }) {
11476
- const [offset, setOffset] = useState12(0);
12773
+ const [offset, setOffset] = useState14(0);
11477
12774
  useEffect13(() => {
11478
12775
  const onScroll = () => {
11479
12776
  setOffset(document.body.scrollTop || document.documentElement.scrollTop);
@@ -11483,7 +12780,7 @@ function Header({ className, fixed, children, ...props }) {
11483
12780
  }, []);
11484
12781
  return (
11485
12782
  // Page header container: fixed mode me top par sticky behavior deta hai.
11486
- /* @__PURE__ */ jsx100(
12783
+ /* @__PURE__ */ jsx105(
11487
12784
  "header",
11488
12785
  {
11489
12786
  className: cn(
@@ -11493,7 +12790,7 @@ function Header({ className, fixed, children, ...props }) {
11493
12790
  className
11494
12791
  ),
11495
12792
  ...props,
11496
- children: /* @__PURE__ */ jsxs62(
12793
+ children: /* @__PURE__ */ jsxs67(
11497
12794
  "div",
11498
12795
  {
11499
12796
  className: cn(
@@ -11502,7 +12799,7 @@ function Header({ className, fixed, children, ...props }) {
11502
12799
  offset > 10 && fixed && "after:absolute after:inset-0 after:-z-10 after:bg-background/20 after:backdrop-blur-lg"
11503
12800
  ),
11504
12801
  children: [
11505
- /* @__PURE__ */ jsx100(AppLogo, { className: "shrink-0 md:hidden" }),
12802
+ /* @__PURE__ */ jsx105(AppLogo, { className: "shrink-0 md:hidden" }),
11506
12803
  children
11507
12804
  ]
11508
12805
  }
@@ -11514,8 +12811,8 @@ function Header({ className, fixed, children, ...props }) {
11514
12811
 
11515
12812
  // src/components/search.tsx
11516
12813
  import { SearchIcon as SearchIcon5 } from "lucide-react";
11517
- import { jsx as jsx101 } from "react/jsx-runtime";
11518
- function Search6({
12814
+ import { jsx as jsx106 } from "react/jsx-runtime";
12815
+ function Search7({
11519
12816
  className = "",
11520
12817
  placeholder = "Search",
11521
12818
  iconOnly = true,
@@ -11527,7 +12824,7 @@ function Search6({
11527
12824
  search.setOpen(true);
11528
12825
  }
11529
12826
  };
11530
- return /* @__PURE__ */ jsx101(
12827
+ return /* @__PURE__ */ jsx106(
11531
12828
  Button,
11532
12829
  {
11533
12830
  ...props,
@@ -11537,7 +12834,7 @@ function Search6({
11537
12834
  "aria-label": "Search",
11538
12835
  "aria-keyshortcuts": "Meta+K Control+K",
11539
12836
  onClick: openSearch,
11540
- children: /* @__PURE__ */ jsx101(SearchIcon5, { className: "size-5", "aria-hidden": "true" })
12837
+ children: /* @__PURE__ */ jsx106(SearchIcon5, { className: "size-5", "aria-hidden": "true" })
11541
12838
  }
11542
12839
  );
11543
12840
  }
@@ -11566,6 +12863,7 @@ function createClient2() {
11566
12863
 
11567
12864
  // src/stores/notification-store.ts
11568
12865
  var activeChannel = null;
12866
+ var activeUserId = null;
11569
12867
  var useNotificationStore = create2((set, get) => ({
11570
12868
  notifications: [],
11571
12869
  unreadCount: 0,
@@ -11706,7 +13004,7 @@ var useNotificationStore = create2((set, get) => ({
11706
13004
  }));
11707
13005
 
11708
13006
  // src/design-system/templates/app-header.tsx
11709
- import { Fragment as Fragment3, jsx as jsx102, jsxs as jsxs63 } from "react/jsx-runtime";
13007
+ import { Fragment as Fragment4, jsx as jsx107, jsxs as jsxs68 } from "react/jsx-runtime";
11710
13008
  function AppHeader({
11711
13009
  title,
11712
13010
  fixed = true,
@@ -11725,12 +13023,12 @@ function AppHeader({
11725
13023
  unsubscribe();
11726
13024
  };
11727
13025
  }, [currentUser, fetchNotifications, subscribeToNotifications, unsubscribe]);
11728
- return /* @__PURE__ */ jsx102(Header, { fixed, className: "border-b bg-background", children: /* @__PURE__ */ jsx102("div", { className: "flex flex-1 items-center justify-between w-full", children: iconsPosition === "left" ? /* @__PURE__ */ jsxs63("div", { className: "flex items-center gap-2 sm:gap-3 min-w-0", children: [
11729
- /* @__PURE__ */ jsx102("h1", { className: "min-w-0 truncate text-base font-semibold sm:text-lg", children: title }),
11730
- /* @__PURE__ */ jsxs63("div", { className: "flex items-center gap-1 sm:gap-2 shrink-0 ml-1", children: [
11731
- /* @__PURE__ */ jsx102(Search6, { iconOnly: true }),
13026
+ return /* @__PURE__ */ jsx107(Header, { fixed, className: "border-b bg-background", children: /* @__PURE__ */ jsx107("div", { className: "flex flex-1 items-center justify-between w-full", children: iconsPosition === "left" ? /* @__PURE__ */ jsxs68("div", { className: "flex items-center gap-2 sm:gap-3 min-w-0", children: [
13027
+ /* @__PURE__ */ jsx107("h1", { className: "min-w-0 truncate text-base font-semibold sm:text-lg", children: title }),
13028
+ /* @__PURE__ */ jsxs68("div", { className: "flex items-center gap-1 sm:gap-2 shrink-0 ml-1", children: [
13029
+ /* @__PURE__ */ jsx107(Search7, { iconOnly: true }),
11732
13030
  children,
11733
- /* @__PURE__ */ jsxs63(
13031
+ /* @__PURE__ */ jsxs68(
11734
13032
  Button,
11735
13033
  {
11736
13034
  variant: "ghost",
@@ -11739,18 +13037,18 @@ function AppHeader({
11739
13037
  "aria-label": "Notifications",
11740
13038
  onClick: () => router.push("/notification"),
11741
13039
  children: [
11742
- /* @__PURE__ */ jsx102(Bell4, { className: "size-5" }),
11743
- unreadCount > 0 && /* @__PURE__ */ jsx102("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 })
13040
+ /* @__PURE__ */ jsx107(Bell5, { className: "size-5" }),
13041
+ unreadCount > 0 && /* @__PURE__ */ jsx107("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 })
11744
13042
  ]
11745
13043
  }
11746
13044
  )
11747
13045
  ] })
11748
- ] }) : /* @__PURE__ */ jsxs63(Fragment3, { children: [
11749
- /* @__PURE__ */ jsx102("h1", { className: "min-w-0 truncate text-base font-semibold sm:text-lg", children: title }),
11750
- /* @__PURE__ */ jsxs63("div", { className: "ml-auto flex items-center gap-2 sm:gap-3", children: [
11751
- /* @__PURE__ */ jsx102(Search6, { iconOnly: true }),
13046
+ ] }) : /* @__PURE__ */ jsxs68(Fragment4, { children: [
13047
+ /* @__PURE__ */ jsx107("h1", { className: "min-w-0 truncate text-base font-semibold sm:text-lg", children: title }),
13048
+ /* @__PURE__ */ jsxs68("div", { className: "ml-auto flex items-center gap-2 sm:gap-3", children: [
13049
+ /* @__PURE__ */ jsx107(Search7, { iconOnly: true }),
11752
13050
  children,
11753
- /* @__PURE__ */ jsxs63(
13051
+ /* @__PURE__ */ jsxs68(
11754
13052
  Button,
11755
13053
  {
11756
13054
  variant: "ghost",
@@ -11759,8 +13057,8 @@ function AppHeader({
11759
13057
  "aria-label": "Notifications",
11760
13058
  onClick: () => router.push("/notification"),
11761
13059
  children: [
11762
- /* @__PURE__ */ jsx102(Bell4, { className: "size-5" }),
11763
- unreadCount > 0 && /* @__PURE__ */ jsx102("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 })
13060
+ /* @__PURE__ */ jsx107(Bell5, { className: "size-5" }),
13061
+ unreadCount > 0 && /* @__PURE__ */ jsx107("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 })
11764
13062
  ]
11765
13063
  }
11766
13064
  )
@@ -11872,7 +13170,7 @@ var sidebarData2 = {
11872
13170
  };
11873
13171
 
11874
13172
  // src/design-system/templates/app-logo.tsx
11875
- import { jsx as jsx103 } from "react/jsx-runtime";
13173
+ import { jsx as jsx108 } from "react/jsx-runtime";
11876
13174
  function AppLogo({ className, onClick }) {
11877
13175
  const { toggleSidebar, setOpenMobile, isMobile } = useSidebar();
11878
13176
  const team = sidebarData2.teams[0];
@@ -11889,7 +13187,7 @@ function AppLogo({ className, onClick }) {
11889
13187
  toggleSidebar();
11890
13188
  }
11891
13189
  };
11892
- return /* @__PURE__ */ jsx103(
13190
+ return /* @__PURE__ */ jsx108(
11893
13191
  Button,
11894
13192
  {
11895
13193
  type: "button",
@@ -11900,14 +13198,14 @@ function AppLogo({ className, onClick }) {
11900
13198
  className
11901
13199
  ),
11902
13200
  "aria-label": "Open sidebar menu",
11903
- children: /* @__PURE__ */ jsx103("div", { className: "flex size-full items-center justify-center rounded-lg bg-primary text-primary-foreground", children: /* @__PURE__ */ jsx103(Logo, { className: "size-4" }) })
13201
+ children: /* @__PURE__ */ jsx108("div", { className: "flex size-full items-center justify-center rounded-lg bg-primary text-primary-foreground", children: /* @__PURE__ */ jsx108(Logo, { className: "size-4" }) })
11904
13202
  }
11905
13203
  );
11906
13204
  }
11907
13205
 
11908
13206
  // src/context/layout-provider.tsx
11909
- import { createContext as createContext9, useContext as useContext10, useState as useState13 } from "react";
11910
- import { jsx as jsx104 } from "react/jsx-runtime";
13207
+ import { createContext as createContext9, useContext as useContext10, useState as useState15 } from "react";
13208
+ import { jsx as jsx109 } from "react/jsx-runtime";
11911
13209
  var LAYOUT_COLLAPSIBLE_COOKIE_NAME = "layout_collapsible";
11912
13210
  var LAYOUT_VARIANT_COOKIE_NAME = "layout_variant";
11913
13211
  var LAYOUT_COOKIE_MAX_AGE = 60 * 60 * 24 * 7;
@@ -11915,15 +13213,15 @@ var DEFAULT_VARIANT = "inset";
11915
13213
  var DEFAULT_COLLAPSIBLE = "icon";
11916
13214
  var LayoutContext = createContext9(null);
11917
13215
  function LayoutProvider({ children }) {
11918
- const [collapsible, _setCollapsible] = useState13(() => {
13216
+ const [collapsible, _setCollapsible] = useState15(() => {
11919
13217
  const saved = getCookie(LAYOUT_COLLAPSIBLE_COOKIE_NAME);
11920
13218
  return saved || DEFAULT_COLLAPSIBLE;
11921
13219
  });
11922
- const [variant, _setVariant] = useState13(() => {
13220
+ const [variant, _setVariant] = useState15(() => {
11923
13221
  const saved = getCookie(LAYOUT_VARIANT_COOKIE_NAME);
11924
13222
  return saved || DEFAULT_VARIANT;
11925
13223
  });
11926
- const [showInlineNotFound, setShowInlineNotFound] = useState13(false);
13224
+ const [showInlineNotFound, setShowInlineNotFound] = useState15(false);
11927
13225
  const setCollapsible = (newCollapsible) => {
11928
13226
  _setCollapsible(newCollapsible);
11929
13227
  setCookie(
@@ -11951,7 +13249,7 @@ function LayoutProvider({ children }) {
11951
13249
  showInlineNotFound,
11952
13250
  setShowInlineNotFound
11953
13251
  };
11954
- return /* @__PURE__ */ jsx104(LayoutContext, { value: contextValue, children });
13252
+ return /* @__PURE__ */ jsx109(LayoutContext, { value: contextValue, children });
11955
13253
  }
11956
13254
  function useLayout() {
11957
13255
  const context = useContext10(LayoutContext);
@@ -11978,13 +13276,13 @@ function useLayout() {
11978
13276
  // src/design-system/templates/nav-group.tsx
11979
13277
  import Link3 from "next/link";
11980
13278
  import { usePathname } from "next/navigation";
11981
- import { ChevronRight as ChevronRight8, X as X4 } from "lucide-react";
11982
- import { jsx as jsx105, jsxs as jsxs64 } from "react/jsx-runtime";
13279
+ import { ChevronRight as ChevronRight10, X as X6 } from "lucide-react";
13280
+ import { jsx as jsx110, jsxs as jsxs69 } from "react/jsx-runtime";
11983
13281
  function NavGroup({ title, items }) {
11984
13282
  const { state, isMobile, openMobile, setOpenMobile } = useSidebar();
11985
13283
  const href = usePathname();
11986
- return /* @__PURE__ */ jsxs64(SidebarGroup, { className: cn(title === "Menu" && "pt-0"), children: [
11987
- /* @__PURE__ */ jsxs64(
13284
+ return /* @__PURE__ */ jsxs69(SidebarGroup, { className: cn(title === "Menu" && "pt-0"), children: [
13285
+ /* @__PURE__ */ jsxs69(
11988
13286
  SidebarGroupLabel,
11989
13287
  {
11990
13288
  className: cn(
@@ -11992,8 +13290,8 @@ function NavGroup({ title, items }) {
11992
13290
  title === "Menu" && state !== "collapsed" && "sticky top-0 z-20 bg-sidebar py-1.5"
11993
13291
  ),
11994
13292
  children: [
11995
- /* @__PURE__ */ jsx105("span", { children: title }),
11996
- title === "Menu" && !isMobile && /* @__PURE__ */ jsx105(
13293
+ /* @__PURE__ */ jsx110("span", { children: title }),
13294
+ title === "Menu" && !isMobile && /* @__PURE__ */ jsx110(
11997
13295
  SidebarTrigger,
11998
13296
  {
11999
13297
  variant: "ghost",
@@ -12001,7 +13299,7 @@ function NavGroup({ title, items }) {
12001
13299
  "aria-label": "Toggle sidebar"
12002
13300
  }
12003
13301
  ),
12004
- title === "Menu" && isMobile && openMobile && /* @__PURE__ */ jsx105(
13302
+ title === "Menu" && isMobile && openMobile && /* @__PURE__ */ jsx110(
12005
13303
  Button,
12006
13304
  {
12007
13305
  type: "button",
@@ -12010,37 +13308,37 @@ function NavGroup({ title, items }) {
12010
13308
  className: "size-6 shrink-0",
12011
13309
  "aria-label": "Close sidebar",
12012
13310
  onClick: () => setOpenMobile(false),
12013
- children: /* @__PURE__ */ jsx105(X4, { className: "size-4", "aria-hidden": "true" })
13311
+ children: /* @__PURE__ */ jsx110(X6, { className: "size-4", "aria-hidden": "true" })
12014
13312
  }
12015
13313
  )
12016
13314
  ]
12017
13315
  }
12018
13316
  ),
12019
- /* @__PURE__ */ jsx105(SidebarMenu, { children: items.map((item) => {
13317
+ /* @__PURE__ */ jsx110(SidebarMenu, { children: items.map((item) => {
12020
13318
  const key = `${item.title}-${item.url}`;
12021
13319
  if (!item.items)
12022
- return /* @__PURE__ */ jsx105(SidebarMenuLink, { item, href }, key);
13320
+ return /* @__PURE__ */ jsx110(SidebarMenuLink, { item, href }, key);
12023
13321
  if (item.title === "Settings" && item.items.length === 0)
12024
- return /* @__PURE__ */ jsx105(SidebarMenuSettings, { item }, key);
13322
+ return /* @__PURE__ */ jsx110(SidebarMenuSettings, { item }, key);
12025
13323
  if (state === "collapsed" && !isMobile)
12026
- return /* @__PURE__ */ jsx105(SidebarMenuCollapsedDropdown, { item, href }, key);
12027
- return /* @__PURE__ */ jsx105(SidebarMenuCollapsible, { item, href }, key);
13324
+ return /* @__PURE__ */ jsx110(SidebarMenuCollapsedDropdown, { item, href }, key);
13325
+ return /* @__PURE__ */ jsx110(SidebarMenuCollapsible, { item, href }, key);
12028
13326
  }) })
12029
13327
  ] });
12030
13328
  }
12031
13329
  function NavBadge({ children }) {
12032
- return /* @__PURE__ */ jsx105(Badge, { className: "rounded-full px-1 py-0 text-xs", children });
13330
+ return /* @__PURE__ */ jsx110(Badge, { className: "rounded-full px-1 py-0 text-xs", children });
12033
13331
  }
12034
13332
  function SidebarMenuLink({ item, href }) {
12035
13333
  const { setOpenMobile } = useSidebar();
12036
13334
  const { setShowInlineNotFound } = useLayout();
12037
- return /* @__PURE__ */ jsx105(SidebarMenuItem, { children: /* @__PURE__ */ jsx105(
13335
+ return /* @__PURE__ */ jsx110(SidebarMenuItem, { children: /* @__PURE__ */ jsx110(
12038
13336
  SidebarMenuButton,
12039
13337
  {
12040
13338
  asChild: true,
12041
13339
  isActive: checkIsActive(href, item),
12042
13340
  tooltip: item.title,
12043
- children: /* @__PURE__ */ jsxs64(
13341
+ children: /* @__PURE__ */ jsxs69(
12044
13342
  Link3,
12045
13343
  {
12046
13344
  href: item.url,
@@ -12049,9 +13347,9 @@ function SidebarMenuLink({ item, href }) {
12049
13347
  setOpenMobile(false);
12050
13348
  },
12051
13349
  children: [
12052
- item.icon && /* @__PURE__ */ jsx105(item.icon, {}),
12053
- /* @__PURE__ */ jsx105("span", { children: item.title }),
12054
- item.badge && /* @__PURE__ */ jsx105(NavBadge, { children: item.badge })
13350
+ item.icon && /* @__PURE__ */ jsx110(item.icon, {}),
13351
+ /* @__PURE__ */ jsx110("span", { children: item.title }),
13352
+ item.badge && /* @__PURE__ */ jsx110(NavBadge, { children: item.badge })
12055
13353
  ]
12056
13354
  }
12057
13355
  )
@@ -12061,7 +13359,7 @@ function SidebarMenuLink({ item, href }) {
12061
13359
  function SidebarMenuSettings({ item }) {
12062
13360
  const { setOpenMobile } = useSidebar();
12063
13361
  const { showInlineNotFound, setShowInlineNotFound } = useLayout();
12064
- return /* @__PURE__ */ jsx105(SidebarMenuItem, { children: /* @__PURE__ */ jsxs64(
13362
+ return /* @__PURE__ */ jsx110(SidebarMenuItem, { children: /* @__PURE__ */ jsxs69(
12065
13363
  SidebarMenuButton,
12066
13364
  {
12067
13365
  tooltip: item.title,
@@ -12071,8 +13369,8 @@ function SidebarMenuSettings({ item }) {
12071
13369
  setOpenMobile(false);
12072
13370
  },
12073
13371
  children: [
12074
- item.icon && /* @__PURE__ */ jsx105(item.icon, {}),
12075
- /* @__PURE__ */ jsx105("span", { children: item.title })
13372
+ item.icon && /* @__PURE__ */ jsx110(item.icon, {}),
13373
+ /* @__PURE__ */ jsx110("span", { children: item.title })
12076
13374
  ]
12077
13375
  }
12078
13376
  ) });
@@ -12083,25 +13381,25 @@ function SidebarMenuCollapsible({
12083
13381
  }) {
12084
13382
  const { setOpenMobile } = useSidebar();
12085
13383
  const { setShowInlineNotFound } = useLayout();
12086
- return /* @__PURE__ */ jsx105(
13384
+ return /* @__PURE__ */ jsx110(
12087
13385
  Collapsible,
12088
13386
  {
12089
13387
  asChild: true,
12090
13388
  defaultOpen: checkIsActive(href, item, true),
12091
13389
  className: "group/collapsible",
12092
- children: /* @__PURE__ */ jsxs64(SidebarMenuItem, { children: [
12093
- /* @__PURE__ */ jsx105(CollapsibleTrigger, { asChild: true, children: /* @__PURE__ */ jsxs64(SidebarMenuButton, { tooltip: item.title, children: [
12094
- item.icon && /* @__PURE__ */ jsx105(item.icon, {}),
12095
- /* @__PURE__ */ jsx105("span", { children: item.title }),
12096
- item.badge && /* @__PURE__ */ jsx105(NavBadge, { children: item.badge }),
12097
- /* @__PURE__ */ jsx105(ChevronRight8, { className: "ms-auto transition-transform duration-200 group-data-[state=open]/collapsible:rotate-90 rtl:rotate-180" })
13390
+ children: /* @__PURE__ */ jsxs69(SidebarMenuItem, { children: [
13391
+ /* @__PURE__ */ jsx110(CollapsibleTrigger, { asChild: true, children: /* @__PURE__ */ jsxs69(SidebarMenuButton, { tooltip: item.title, children: [
13392
+ item.icon && /* @__PURE__ */ jsx110(item.icon, {}),
13393
+ /* @__PURE__ */ jsx110("span", { children: item.title }),
13394
+ item.badge && /* @__PURE__ */ jsx110(NavBadge, { children: item.badge }),
13395
+ /* @__PURE__ */ jsx110(ChevronRight10, { className: "ms-auto transition-transform duration-200 group-data-[state=open]/collapsible:rotate-90 rtl:rotate-180" })
12098
13396
  ] }) }),
12099
- /* @__PURE__ */ jsx105(CollapsibleContent, { className: "CollapsibleContent", children: /* @__PURE__ */ jsx105(SidebarMenuSub, { children: item.items.map((subItem) => /* @__PURE__ */ jsx105(SidebarMenuSubItem, { children: /* @__PURE__ */ jsx105(
13397
+ /* @__PURE__ */ jsx110(CollapsibleContent, { className: "CollapsibleContent", children: /* @__PURE__ */ jsx110(SidebarMenuSub, { children: item.items.map((subItem) => /* @__PURE__ */ jsx110(SidebarMenuSubItem, { children: /* @__PURE__ */ jsx110(
12100
13398
  SidebarMenuSubButton,
12101
13399
  {
12102
13400
  asChild: true,
12103
13401
  isActive: checkIsActive(href, subItem),
12104
- children: /* @__PURE__ */ jsxs64(
13402
+ children: /* @__PURE__ */ jsxs69(
12105
13403
  Link3,
12106
13404
  {
12107
13405
  href: subItem.url,
@@ -12110,9 +13408,9 @@ function SidebarMenuCollapsible({
12110
13408
  setOpenMobile(false);
12111
13409
  },
12112
13410
  children: [
12113
- subItem.icon && /* @__PURE__ */ jsx105(subItem.icon, {}),
12114
- /* @__PURE__ */ jsx105("span", { children: subItem.title }),
12115
- subItem.badge && /* @__PURE__ */ jsx105(NavBadge, { children: subItem.badge })
13411
+ subItem.icon && /* @__PURE__ */ jsx110(subItem.icon, {}),
13412
+ /* @__PURE__ */ jsx110("span", { children: subItem.title }),
13413
+ subItem.badge && /* @__PURE__ */ jsx110(NavBadge, { children: subItem.badge })
12116
13414
  ]
12117
13415
  }
12118
13416
  )
@@ -12126,36 +13424,36 @@ function SidebarMenuCollapsedDropdown({
12126
13424
  item,
12127
13425
  href
12128
13426
  }) {
12129
- return /* @__PURE__ */ jsx105(SidebarMenuItem, { children: /* @__PURE__ */ jsxs64(DropdownMenu, { children: [
12130
- /* @__PURE__ */ jsx105(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsxs64(
13427
+ return /* @__PURE__ */ jsx110(SidebarMenuItem, { children: /* @__PURE__ */ jsxs69(DropdownMenu, { children: [
13428
+ /* @__PURE__ */ jsx110(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsxs69(
12131
13429
  SidebarMenuButton,
12132
13430
  {
12133
13431
  tooltip: item.title,
12134
13432
  isActive: checkIsActive(href, item),
12135
13433
  children: [
12136
- item.icon && /* @__PURE__ */ jsx105(item.icon, {}),
12137
- /* @__PURE__ */ jsx105("span", { children: item.title }),
12138
- item.badge && /* @__PURE__ */ jsx105(NavBadge, { children: item.badge }),
12139
- /* @__PURE__ */ jsx105(ChevronRight8, { className: "ms-auto transition-transform duration-200 group-data-[state=open]/collapsible:rotate-90" })
13434
+ item.icon && /* @__PURE__ */ jsx110(item.icon, {}),
13435
+ /* @__PURE__ */ jsx110("span", { children: item.title }),
13436
+ item.badge && /* @__PURE__ */ jsx110(NavBadge, { children: item.badge }),
13437
+ /* @__PURE__ */ jsx110(ChevronRight10, { className: "ms-auto transition-transform duration-200 group-data-[state=open]/collapsible:rotate-90" })
12140
13438
  ]
12141
13439
  }
12142
13440
  ) }),
12143
- /* @__PURE__ */ jsxs64(DropdownMenuContent, { side: "right", align: "start", sideOffset: 4, children: [
12144
- /* @__PURE__ */ jsxs64(DropdownMenuLabel, { children: [
13441
+ /* @__PURE__ */ jsxs69(DropdownMenuContent, { side: "right", align: "start", sideOffset: 4, children: [
13442
+ /* @__PURE__ */ jsxs69(DropdownMenuLabel, { children: [
12145
13443
  item.title,
12146
13444
  " ",
12147
13445
  item.badge ? `(${item.badge})` : ""
12148
13446
  ] }),
12149
- /* @__PURE__ */ jsx105(DropdownMenuSeparator, {}),
12150
- item.items.map((sub) => /* @__PURE__ */ jsx105(DropdownMenuItem, { asChild: true, children: /* @__PURE__ */ jsxs64(
13447
+ /* @__PURE__ */ jsx110(DropdownMenuSeparator, {}),
13448
+ item.items.map((sub) => /* @__PURE__ */ jsx110(DropdownMenuItem, { asChild: true, children: /* @__PURE__ */ jsxs69(
12151
13449
  Link3,
12152
13450
  {
12153
13451
  href: sub.url,
12154
13452
  className: `${checkIsActive(href, sub) ? "bg-secondary" : ""}`,
12155
13453
  children: [
12156
- sub.icon && /* @__PURE__ */ jsx105(sub.icon, {}),
12157
- /* @__PURE__ */ jsx105("span", { className: "max-w-52 text-wrap", children: sub.title }),
12158
- sub.badge && /* @__PURE__ */ jsx105("span", { className: "ms-auto text-xs", children: sub.badge })
13454
+ sub.icon && /* @__PURE__ */ jsx110(sub.icon, {}),
13455
+ /* @__PURE__ */ jsx110("span", { className: "max-w-52 text-wrap", children: sub.title }),
13456
+ sub.badge && /* @__PURE__ */ jsx110("span", { className: "ms-auto text-xs", children: sub.badge })
12159
13457
  ]
12160
13458
  }
12161
13459
  ) }, `${sub.title}-${sub.url}`))
@@ -12170,20 +13468,20 @@ function checkIsActive(href, item, mainNav = false) {
12170
13468
  }
12171
13469
 
12172
13470
  // src/design-system/templates/team-switcher.tsx
12173
- import { jsx as jsx106, jsxs as jsxs65 } from "react/jsx-runtime";
13471
+ import { jsx as jsx111, jsxs as jsxs70 } from "react/jsx-runtime";
12174
13472
  function TeamSwitcher({ teams }) {
12175
13473
  useSidebar();
12176
13474
  const activeTeam = teams[0];
12177
- return /* @__PURE__ */ jsx106(SidebarMenu, { children: /* @__PURE__ */ jsx106(SidebarMenuItem, { children: /* @__PURE__ */ jsxs65(
13475
+ return /* @__PURE__ */ jsx111(SidebarMenu, { children: /* @__PURE__ */ jsx111(SidebarMenuItem, { children: /* @__PURE__ */ jsxs70(
12178
13476
  SidebarMenuButton,
12179
13477
  {
12180
13478
  size: "lg",
12181
13479
  className: "data-[state=open]:bg-sidebar-accent data-[state=open]:text-sidebar-accent-foreground",
12182
13480
  children: [
12183
- /* @__PURE__ */ jsx106("div", { className: "flex aspect-square size-8 items-center justify-center rounded-lg bg-sidebar-primary text-sidebar-primary-foreground", children: /* @__PURE__ */ jsx106(activeTeam.logo, { className: "size-4" }) }),
12184
- /* @__PURE__ */ jsxs65("div", { className: "grid flex-1 text-start text-sm leading-tight", children: [
12185
- /* @__PURE__ */ jsx106("span", { className: "truncate font-semibold", children: activeTeam.name }),
12186
- /* @__PURE__ */ jsx106("span", { className: "truncate text-xs", children: activeTeam.plan })
13481
+ /* @__PURE__ */ jsx111("div", { className: "flex aspect-square size-8 items-center justify-center rounded-lg bg-sidebar-primary text-sidebar-primary-foreground", children: /* @__PURE__ */ jsx111(activeTeam.logo, { className: "size-4" }) }),
13482
+ /* @__PURE__ */ jsxs70("div", { className: "grid flex-1 text-start text-sm leading-tight", children: [
13483
+ /* @__PURE__ */ jsx111("span", { className: "truncate font-semibold", children: activeTeam.name }),
13484
+ /* @__PURE__ */ jsx111("span", { className: "truncate text-xs", children: activeTeam.plan })
12187
13485
  ] })
12188
13486
  ]
12189
13487
  }
@@ -12199,22 +13497,22 @@ import {
12199
13497
  } from "lucide-react";
12200
13498
 
12201
13499
  // src/hooks/use-dialog-state.tsx
12202
- import { useState as useState14 } from "react";
13500
+ import { useState as useState16 } from "react";
12203
13501
  function useDialogState(initialState2 = null) {
12204
- const [open, _setOpen] = useState14(initialState2);
13502
+ const [open, _setOpen] = useState16(initialState2);
12205
13503
  const setOpen = (str) => _setOpen((prev) => prev === str ? null : str);
12206
13504
  return [open, setOpen];
12207
13505
  }
12208
13506
 
12209
13507
  // src/components/config-drawer.tsx
12210
- import { useState as useState15 } from "react";
13508
+ import { useState as useState17 } from "react";
12211
13509
  import { Root as Radio, Item as Item2 } from "@radix-ui/react-radio-group";
12212
- import { Check as Check8, CircleCheck, RotateCcw, Search as Search7, Settings as Settings3 } from "lucide-react";
13510
+ import { Check as Check8, CircleCheck, RotateCcw, Search as Search8, Settings as Settings3 } from "lucide-react";
12213
13511
 
12214
13512
  // src/assets/custom/icon-theme-dark.tsx
12215
- import { jsx as jsx107, jsxs as jsxs66 } from "react/jsx-runtime";
13513
+ import { jsx as jsx112, jsxs as jsxs71 } from "react/jsx-runtime";
12216
13514
  function IconThemeDark(props) {
12217
- return /* @__PURE__ */ jsxs66(
13515
+ return /* @__PURE__ */ jsxs71(
12218
13516
  "svg",
12219
13517
  {
12220
13518
  "data-name": "icon-theme-dark",
@@ -12222,27 +13520,27 @@ function IconThemeDark(props) {
12222
13520
  viewBox: "0 0 79.86 51.14",
12223
13521
  ...props,
12224
13522
  children: [
12225
- /* @__PURE__ */ jsxs66("g", { fill: "#1d2b3f", children: [
12226
- /* @__PURE__ */ jsx107("rect", { x: 0.53, y: 0.5, width: 78.83, height: 50.14, rx: 3.5, ry: 3.5 }),
12227
- /* @__PURE__ */ jsx107("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" })
13523
+ /* @__PURE__ */ jsxs71("g", { fill: "#1d2b3f", children: [
13524
+ /* @__PURE__ */ jsx112("rect", { x: 0.53, y: 0.5, width: 78.83, height: 50.14, rx: 3.5, ry: 3.5 }),
13525
+ /* @__PURE__ */ jsx112("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" })
12228
13526
  ] }),
12229
- /* @__PURE__ */ jsx107(
13527
+ /* @__PURE__ */ jsx112(
12230
13528
  "path",
12231
13529
  {
12232
13530
  d: "M22.88 0h52.97c2.21 0 4 1.79 4 4v43.14c0 2.21-1.79 4-4 4H22.88V0z",
12233
13531
  fill: "#0d1628"
12234
13532
  }
12235
13533
  ),
12236
- /* @__PURE__ */ jsx107("circle", { cx: 6.7, cy: 7.04, r: 3.54, fill: "#426187" }),
12237
- /* @__PURE__ */ jsx107(
13534
+ /* @__PURE__ */ jsx112("circle", { cx: 6.7, cy: 7.04, r: 3.54, fill: "#426187" }),
13535
+ /* @__PURE__ */ jsx112(
12238
13536
  "path",
12239
13537
  {
12240
13538
  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",
12241
13539
  fill: "#426187"
12242
13540
  }
12243
13541
  ),
12244
- /* @__PURE__ */ jsxs66("g", { fill: "#2a62bc", children: [
12245
- /* @__PURE__ */ jsx107(
13542
+ /* @__PURE__ */ jsxs71("g", { fill: "#2a62bc", children: [
13543
+ /* @__PURE__ */ jsx112(
12246
13544
  "rect",
12247
13545
  {
12248
13546
  x: 33.36,
@@ -12254,7 +13552,7 @@ function IconThemeDark(props) {
12254
13552
  opacity: 0.32
12255
13553
  }
12256
13554
  ),
12257
- /* @__PURE__ */ jsx107(
13555
+ /* @__PURE__ */ jsx112(
12258
13556
  "rect",
12259
13557
  {
12260
13558
  x: 29.64,
@@ -12266,7 +13564,7 @@ function IconThemeDark(props) {
12266
13564
  opacity: 0.44
12267
13565
  }
12268
13566
  ),
12269
- /* @__PURE__ */ jsx107(
13567
+ /* @__PURE__ */ jsx112(
12270
13568
  "rect",
12271
13569
  {
12272
13570
  x: 37.16,
@@ -12278,7 +13576,7 @@ function IconThemeDark(props) {
12278
13576
  opacity: 0.53
12279
13577
  }
12280
13578
  ),
12281
- /* @__PURE__ */ jsx107(
13579
+ /* @__PURE__ */ jsx112(
12282
13580
  "rect",
12283
13581
  {
12284
13582
  x: 41.19,
@@ -12291,8 +13589,8 @@ function IconThemeDark(props) {
12291
13589
  }
12292
13590
  )
12293
13591
  ] }),
12294
- /* @__PURE__ */ jsx107("circle", { cx: 62.74, cy: 16.32, r: 8, fill: "#2f5491", opacity: 0.5 }),
12295
- /* @__PURE__ */ jsx107(
13592
+ /* @__PURE__ */ jsx112("circle", { cx: 62.74, cy: 16.32, r: 8, fill: "#2f5491", opacity: 0.5 }),
13593
+ /* @__PURE__ */ jsx112(
12296
13594
  "path",
12297
13595
  {
12298
13596
  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",
@@ -12300,7 +13598,7 @@ function IconThemeDark(props) {
12300
13598
  opacity: 0.74
12301
13599
  }
12302
13600
  ),
12303
- /* @__PURE__ */ jsx107(
13601
+ /* @__PURE__ */ jsx112(
12304
13602
  "rect",
12305
13603
  {
12306
13604
  x: 29.64,
@@ -12318,9 +13616,9 @@ function IconThemeDark(props) {
12318
13616
  }
12319
13617
 
12320
13618
  // src/assets/custom/icon-theme-light.tsx
12321
- import { jsx as jsx108, jsxs as jsxs67 } from "react/jsx-runtime";
13619
+ import { jsx as jsx113, jsxs as jsxs72 } from "react/jsx-runtime";
12322
13620
  function IconThemeLight(props) {
12323
- return /* @__PURE__ */ jsxs67(
13621
+ return /* @__PURE__ */ jsxs72(
12324
13622
  "svg",
12325
13623
  {
12326
13624
  "data-name": "icon-theme-light",
@@ -12328,27 +13626,27 @@ function IconThemeLight(props) {
12328
13626
  viewBox: "0 0 79.86 51.14",
12329
13627
  ...props,
12330
13628
  children: [
12331
- /* @__PURE__ */ jsxs67("g", { fill: "#d9d9d9", children: [
12332
- /* @__PURE__ */ jsx108("rect", { x: 0.53, y: 0.5, width: 78.83, height: 50.14, rx: 3.5, ry: 3.5 }),
12333
- /* @__PURE__ */ jsx108("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" })
13629
+ /* @__PURE__ */ jsxs72("g", { fill: "#d9d9d9", children: [
13630
+ /* @__PURE__ */ jsx113("rect", { x: 0.53, y: 0.5, width: 78.83, height: 50.14, rx: 3.5, ry: 3.5 }),
13631
+ /* @__PURE__ */ jsx113("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" })
12334
13632
  ] }),
12335
- /* @__PURE__ */ jsx108(
13633
+ /* @__PURE__ */ jsx113(
12336
13634
  "path",
12337
13635
  {
12338
13636
  d: "M22.88 0h52.97c2.21 0 4 1.79 4 4v43.14c0 2.21-1.79 4-4 4H22.88V0z",
12339
13637
  fill: "#ecedef"
12340
13638
  }
12341
13639
  ),
12342
- /* @__PURE__ */ jsx108("circle", { cx: 6.7, cy: 7.04, r: 3.54, fill: "#fff" }),
12343
- /* @__PURE__ */ jsx108(
13640
+ /* @__PURE__ */ jsx113("circle", { cx: 6.7, cy: 7.04, r: 3.54, fill: "#fff" }),
13641
+ /* @__PURE__ */ jsx113(
12344
13642
  "path",
12345
13643
  {
12346
13644
  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",
12347
13645
  fill: "#fff"
12348
13646
  }
12349
13647
  ),
12350
- /* @__PURE__ */ jsxs67("g", { fill: "#c0c4c4", children: [
12351
- /* @__PURE__ */ jsx108(
13648
+ /* @__PURE__ */ jsxs72("g", { fill: "#c0c4c4", children: [
13649
+ /* @__PURE__ */ jsx113(
12352
13650
  "rect",
12353
13651
  {
12354
13652
  x: 33.36,
@@ -12360,7 +13658,7 @@ function IconThemeLight(props) {
12360
13658
  opacity: 0.32
12361
13659
  }
12362
13660
  ),
12363
- /* @__PURE__ */ jsx108(
13661
+ /* @__PURE__ */ jsx113(
12364
13662
  "rect",
12365
13663
  {
12366
13664
  x: 29.64,
@@ -12372,7 +13670,7 @@ function IconThemeLight(props) {
12372
13670
  opacity: 0.44
12373
13671
  }
12374
13672
  ),
12375
- /* @__PURE__ */ jsx108(
13673
+ /* @__PURE__ */ jsx113(
12376
13674
  "rect",
12377
13675
  {
12378
13676
  x: 37.16,
@@ -12384,7 +13682,7 @@ function IconThemeLight(props) {
12384
13682
  opacity: 0.53
12385
13683
  }
12386
13684
  ),
12387
- /* @__PURE__ */ jsx108(
13685
+ /* @__PURE__ */ jsx113(
12388
13686
  "rect",
12389
13687
  {
12390
13688
  x: 41.19,
@@ -12397,12 +13695,12 @@ function IconThemeLight(props) {
12397
13695
  }
12398
13696
  )
12399
13697
  ] }),
12400
- /* @__PURE__ */ jsx108("circle", { cx: 62.74, cy: 16.32, r: 8, fill: "#fff" }),
12401
- /* @__PURE__ */ jsxs67("g", { fill: "#d9d9d9", children: [
12402
- /* @__PURE__ */ jsx108("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" }),
12403
- /* @__PURE__ */ jsx108("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" })
13698
+ /* @__PURE__ */ jsx113("circle", { cx: 62.74, cy: 16.32, r: 8, fill: "#fff" }),
13699
+ /* @__PURE__ */ jsxs72("g", { fill: "#d9d9d9", children: [
13700
+ /* @__PURE__ */ jsx113("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" }),
13701
+ /* @__PURE__ */ jsx113("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" })
12404
13702
  ] }),
12405
- /* @__PURE__ */ jsx108(
13703
+ /* @__PURE__ */ jsx113(
12406
13704
  "rect",
12407
13705
  {
12408
13706
  x: 29.64,
@@ -12420,12 +13718,12 @@ function IconThemeLight(props) {
12420
13718
  }
12421
13719
 
12422
13720
  // src/assets/custom/icon-theme-system.tsx
12423
- import { jsx as jsx109, jsxs as jsxs68 } from "react/jsx-runtime";
13721
+ import { jsx as jsx114, jsxs as jsxs73 } from "react/jsx-runtime";
12424
13722
  function IconThemeSystem({
12425
13723
  className,
12426
13724
  ...props
12427
13725
  }) {
12428
- return /* @__PURE__ */ jsxs68(
13726
+ return /* @__PURE__ */ jsxs73(
12429
13727
  "svg",
12430
13728
  {
12431
13729
  "data-name": "icon-theme-system",
@@ -12438,8 +13736,8 @@ function IconThemeSystem({
12438
13736
  ),
12439
13737
  ...props,
12440
13738
  children: [
12441
- /* @__PURE__ */ jsx109("path", { opacity: 0.2, d: "M0 0.03H22.88V51.17H0z" }),
12442
- /* @__PURE__ */ jsx109(
13739
+ /* @__PURE__ */ jsx114("path", { opacity: 0.2, d: "M0 0.03H22.88V51.17H0z" }),
13740
+ /* @__PURE__ */ jsx114(
12443
13741
  "circle",
12444
13742
  {
12445
13743
  cx: 6.7,
@@ -12452,7 +13750,7 @@ function IconThemeSystem({
12452
13750
  strokeMiterlimit: 10
12453
13751
  }
12454
13752
  ),
12455
- /* @__PURE__ */ jsx109(
13753
+ /* @__PURE__ */ jsx114(
12456
13754
  "path",
12457
13755
  {
12458
13756
  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",
@@ -12461,7 +13759,7 @@ function IconThemeSystem({
12461
13759
  opacity: 0.75
12462
13760
  }
12463
13761
  ),
12464
- /* @__PURE__ */ jsx109(
13762
+ /* @__PURE__ */ jsx114(
12465
13763
  "path",
12466
13764
  {
12467
13765
  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",
@@ -12470,7 +13768,7 @@ function IconThemeSystem({
12470
13768
  opacity: 0.72
12471
13769
  }
12472
13770
  ),
12473
- /* @__PURE__ */ jsx109(
13771
+ /* @__PURE__ */ jsx114(
12474
13772
  "path",
12475
13773
  {
12476
13774
  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",
@@ -12479,7 +13777,7 @@ function IconThemeSystem({
12479
13777
  opacity: 0.55
12480
13778
  }
12481
13779
  ),
12482
- /* @__PURE__ */ jsx109(
13780
+ /* @__PURE__ */ jsx114(
12483
13781
  "path",
12484
13782
  {
12485
13783
  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",
@@ -12488,7 +13786,7 @@ function IconThemeSystem({
12488
13786
  opacity: 0.67
12489
13787
  }
12490
13788
  ),
12491
- /* @__PURE__ */ jsx109(
13789
+ /* @__PURE__ */ jsx114(
12492
13790
  "rect",
12493
13791
  {
12494
13792
  x: 33.36,
@@ -12501,7 +13799,7 @@ function IconThemeSystem({
12501
13799
  stroke: "none"
12502
13800
  }
12503
13801
  ),
12504
- /* @__PURE__ */ jsx109(
13802
+ /* @__PURE__ */ jsx114(
12505
13803
  "rect",
12506
13804
  {
12507
13805
  x: 29.64,
@@ -12514,7 +13812,7 @@ function IconThemeSystem({
12514
13812
  stroke: "none"
12515
13813
  }
12516
13814
  ),
12517
- /* @__PURE__ */ jsx109(
13815
+ /* @__PURE__ */ jsx114(
12518
13816
  "rect",
12519
13817
  {
12520
13818
  x: 37.16,
@@ -12527,7 +13825,7 @@ function IconThemeSystem({
12527
13825
  stroke: "none"
12528
13826
  }
12529
13827
  ),
12530
- /* @__PURE__ */ jsx109(
13828
+ /* @__PURE__ */ jsx114(
12531
13829
  "rect",
12532
13830
  {
12533
13831
  x: 41.19,
@@ -12540,9 +13838,9 @@ function IconThemeSystem({
12540
13838
  stroke: "none"
12541
13839
  }
12542
13840
  ),
12543
- /* @__PURE__ */ jsxs68("g", { children: [
12544
- /* @__PURE__ */ jsx109("circle", { cx: 62.74, cy: 16.32, r: 8, opacity: 0.25 }),
12545
- /* @__PURE__ */ jsx109(
13841
+ /* @__PURE__ */ jsxs73("g", { children: [
13842
+ /* @__PURE__ */ jsx114("circle", { cx: 62.74, cy: 16.32, r: 8, opacity: 0.25 }),
13843
+ /* @__PURE__ */ jsx114(
12546
13844
  "path",
12547
13845
  {
12548
13846
  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",
@@ -12550,7 +13848,7 @@ function IconThemeSystem({
12550
13848
  }
12551
13849
  )
12552
13850
  ] }),
12553
- /* @__PURE__ */ jsx109(
13851
+ /* @__PURE__ */ jsx114(
12554
13852
  "rect",
12555
13853
  {
12556
13854
  x: 29.64,
@@ -12571,7 +13869,7 @@ function IconThemeSystem({
12571
13869
  }
12572
13870
 
12573
13871
  // src/components/config-drawer.tsx
12574
- import { jsx as jsx110, jsxs as jsxs69 } from "react/jsx-runtime";
13872
+ import { jsx as jsx115, jsxs as jsxs74 } from "react/jsx-runtime";
12575
13873
  function ConfigDrawer({
12576
13874
  trigger
12577
13875
  }) {
@@ -12581,27 +13879,27 @@ function ConfigDrawer({
12581
13879
  resetTheme();
12582
13880
  resetColorTheme();
12583
13881
  };
12584
- return /* @__PURE__ */ jsxs69(Sheet, { children: [
12585
- /* @__PURE__ */ jsx110(SheetTrigger, { asChild: true, children: trigger ?? /* @__PURE__ */ jsx110(
13882
+ return /* @__PURE__ */ jsxs74(Sheet, { children: [
13883
+ /* @__PURE__ */ jsx115(SheetTrigger, { asChild: true, children: trigger ?? /* @__PURE__ */ jsx115(
12586
13884
  Button,
12587
13885
  {
12588
13886
  size: "icon",
12589
13887
  variant: "ghost",
12590
13888
  "aria-label": "Open theme settings",
12591
13889
  className: "rounded-full",
12592
- children: /* @__PURE__ */ jsx110(Settings3, { "aria-hidden": "true" })
13890
+ children: /* @__PURE__ */ jsx115(Settings3, { "aria-hidden": "true" })
12593
13891
  }
12594
13892
  ) }),
12595
- /* @__PURE__ */ jsxs69(SheetContent, { className: "flex flex-col", children: [
12596
- /* @__PURE__ */ jsxs69(SheetHeader, { className: "pb-0 text-start", children: [
12597
- /* @__PURE__ */ jsx110(SheetTitle, { children: "Theme Settings" }),
12598
- /* @__PURE__ */ jsx110(SheetDescription, { children: "Customize the look and feel of your dashboard." })
13893
+ /* @__PURE__ */ jsxs74(SheetContent, { className: "flex flex-col", children: [
13894
+ /* @__PURE__ */ jsxs74(SheetHeader, { className: "pb-0 text-start", children: [
13895
+ /* @__PURE__ */ jsx115(SheetTitle, { children: "Theme Settings" }),
13896
+ /* @__PURE__ */ jsx115(SheetDescription, { children: "Customize the look and feel of your dashboard." })
12599
13897
  ] }),
12600
- /* @__PURE__ */ jsxs69("div", { className: "flex flex-1 flex-col gap-6 overflow-hidden px-4", children: [
12601
- /* @__PURE__ */ jsx110(ThemeConfig, {}),
12602
- /* @__PURE__ */ jsx110(ThemeListSelector, {})
13898
+ /* @__PURE__ */ jsxs74("div", { className: "flex flex-1 flex-col gap-6 overflow-hidden px-4", children: [
13899
+ /* @__PURE__ */ jsx115(ThemeConfig, {}),
13900
+ /* @__PURE__ */ jsx115(ThemeListSelector, {})
12603
13901
  ] }),
12604
- /* @__PURE__ */ jsx110(SheetFooter, { className: "gap-2", children: /* @__PURE__ */ jsx110(
13902
+ /* @__PURE__ */ jsx115(SheetFooter, { className: "gap-2", children: /* @__PURE__ */ jsx115(
12605
13903
  Button,
12606
13904
  {
12607
13905
  variant: "destructive",
@@ -12619,7 +13917,7 @@ function SectionTitle({
12619
13917
  resetAriaLabel,
12620
13918
  className
12621
13919
  }) {
12622
- return /* @__PURE__ */ jsxs69(
13920
+ return /* @__PURE__ */ jsxs74(
12623
13921
  "div",
12624
13922
  {
12625
13923
  className: cn(
@@ -12628,7 +13926,7 @@ function SectionTitle({
12628
13926
  ),
12629
13927
  children: [
12630
13928
  title,
12631
- showReset && onReset && /* @__PURE__ */ jsx110(
13929
+ showReset && onReset && /* @__PURE__ */ jsx115(
12632
13930
  Button,
12633
13931
  {
12634
13932
  type: "button",
@@ -12637,7 +13935,7 @@ function SectionTitle({
12637
13935
  className: "size-4 rounded-full",
12638
13936
  onClick: onReset,
12639
13937
  "aria-label": resetAriaLabel,
12640
- children: /* @__PURE__ */ jsx110(RotateCcw, { className: "size-3" })
13938
+ children: /* @__PURE__ */ jsx115(RotateCcw, { className: "size-3" })
12641
13939
  }
12642
13940
  )
12643
13941
  ]
@@ -12648,7 +13946,7 @@ function RadioGroupItem2({
12648
13946
  item,
12649
13947
  isTheme = false
12650
13948
  }) {
12651
- return /* @__PURE__ */ jsxs69(
13949
+ return /* @__PURE__ */ jsxs74(
12652
13950
  Item2,
12653
13951
  {
12654
13952
  value: item.value,
@@ -12656,7 +13954,7 @@ function RadioGroupItem2({
12656
13954
  "aria-label": `Select ${item.label.toLowerCase()}`,
12657
13955
  "aria-describedby": `${item.value}-description`,
12658
13956
  children: [
12659
- /* @__PURE__ */ jsxs69(
13957
+ /* @__PURE__ */ jsxs74(
12660
13958
  "div",
12661
13959
  {
12662
13960
  className: cn(
@@ -12668,7 +13966,7 @@ function RadioGroupItem2({
12668
13966
  "aria-hidden": "false",
12669
13967
  "aria-label": `${item.label} option preview`,
12670
13968
  children: [
12671
- /* @__PURE__ */ jsx110(
13969
+ /* @__PURE__ */ jsx115(
12672
13970
  CircleCheck,
12673
13971
  {
12674
13972
  className: cn(
@@ -12679,7 +13977,7 @@ function RadioGroupItem2({
12679
13977
  "aria-hidden": "true"
12680
13978
  }
12681
13979
  ),
12682
- /* @__PURE__ */ jsx110(
13980
+ /* @__PURE__ */ jsx115(
12683
13981
  item.icon,
12684
13982
  {
12685
13983
  className: cn(
@@ -12691,7 +13989,7 @@ function RadioGroupItem2({
12691
13989
  ]
12692
13990
  }
12693
13991
  ),
12694
- /* @__PURE__ */ jsx110(
13992
+ /* @__PURE__ */ jsx115(
12695
13993
  "div",
12696
13994
  {
12697
13995
  className: "mt-1 text-xs",
@@ -12706,8 +14004,8 @@ function RadioGroupItem2({
12706
14004
  }
12707
14005
  function ThemeConfig() {
12708
14006
  const { defaultTheme, theme, setTheme } = useTheme2();
12709
- return /* @__PURE__ */ jsxs69("div", { children: [
12710
- /* @__PURE__ */ jsx110(
14007
+ return /* @__PURE__ */ jsxs74("div", { children: [
14008
+ /* @__PURE__ */ jsx115(
12711
14009
  SectionTitle,
12712
14010
  {
12713
14011
  title: "Theme",
@@ -12716,7 +14014,7 @@ function ThemeConfig() {
12716
14014
  resetAriaLabel: "Reset theme preference to default"
12717
14015
  }
12718
14016
  ),
12719
- /* @__PURE__ */ jsx110(
14017
+ /* @__PURE__ */ jsx115(
12720
14018
  Radio,
12721
14019
  {
12722
14020
  value: theme,
@@ -12740,20 +14038,20 @@ function ThemeConfig() {
12740
14038
  label: "Dark",
12741
14039
  icon: IconThemeDark
12742
14040
  }
12743
- ].map((item) => /* @__PURE__ */ jsx110(RadioGroupItem2, { item, isTheme: true }, item.value))
14041
+ ].map((item) => /* @__PURE__ */ jsx115(RadioGroupItem2, { item, isTheme: true }, item.value))
12744
14042
  }
12745
14043
  ),
12746
- /* @__PURE__ */ jsx110("div", { id: "theme-description", className: "sr-only", children: "Choose between system preference, light mode, or dark mode" })
14044
+ /* @__PURE__ */ jsx115("div", { id: "theme-description", className: "sr-only", children: "Choose between system preference, light mode, or dark mode" })
12747
14045
  ] });
12748
14046
  }
12749
14047
  function ThemeListSelector() {
12750
- const [search, setSearch] = useState15("");
14048
+ const [search, setSearch] = useState17("");
12751
14049
  const { colorTheme, setColorTheme } = useColorTheme();
12752
14050
  const filtered = colorThemes.filter(
12753
14051
  (t) => t.label.toLowerCase().includes(search.toLowerCase())
12754
14052
  );
12755
- return /* @__PURE__ */ jsxs69("div", { className: "flex min-h-0 flex-1 flex-col", children: [
12756
- /* @__PURE__ */ jsx110(
14053
+ return /* @__PURE__ */ jsxs74("div", { className: "flex min-h-0 flex-1 flex-col", children: [
14054
+ /* @__PURE__ */ jsx115(
12757
14055
  SectionTitle,
12758
14056
  {
12759
14057
  title: "Color Theme",
@@ -12762,9 +14060,9 @@ function ThemeListSelector() {
12762
14060
  resetAriaLabel: "Reset color theme to default"
12763
14061
  }
12764
14062
  ),
12765
- /* @__PURE__ */ jsxs69("div", { className: "relative mb-2.5", children: [
12766
- /* @__PURE__ */ jsx110(Search7, { className: "pointer-events-none absolute left-3 top-1/2 size-4 -translate-y-1/2 text-muted-foreground" }),
12767
- /* @__PURE__ */ jsx110(
14063
+ /* @__PURE__ */ jsxs74("div", { className: "relative mb-2.5", children: [
14064
+ /* @__PURE__ */ jsx115(Search8, { className: "pointer-events-none absolute left-3 top-1/2 size-4 -translate-y-1/2 text-muted-foreground" }),
14065
+ /* @__PURE__ */ jsx115(
12768
14066
  "input",
12769
14067
  {
12770
14068
  type: "text",
@@ -12780,21 +14078,21 @@ function ThemeListSelector() {
12780
14078
  }
12781
14079
  )
12782
14080
  ] }),
12783
- /* @__PURE__ */ jsxs69("p", { className: "mb-2 text-xs text-muted-foreground font-medium", children: [
14081
+ /* @__PURE__ */ jsxs74("p", { className: "mb-2 text-xs text-muted-foreground font-medium", children: [
12784
14082
  filtered.length,
12785
14083
  " theme",
12786
14084
  filtered.length !== 1 ? "s" : "",
12787
14085
  " available"
12788
14086
  ] }),
12789
- /* @__PURE__ */ jsxs69(
14087
+ /* @__PURE__ */ jsxs74(
12790
14088
  "div",
12791
14089
  {
12792
14090
  className: "flex-1 space-y-1 overflow-y-auto rounded-lg pr-1",
12793
14091
  role: "radiogroup",
12794
14092
  "aria-label": "Select color theme",
12795
14093
  children: [
12796
- filtered.length === 0 && /* @__PURE__ */ jsx110("p", { className: "py-8 text-center text-sm text-muted-foreground", children: "No themes found" }),
12797
- filtered.map((ct) => /* @__PURE__ */ jsxs69(
14094
+ filtered.length === 0 && /* @__PURE__ */ jsx115("p", { className: "py-8 text-center text-sm text-muted-foreground", children: "No themes found" }),
14095
+ filtered.map((ct) => /* @__PURE__ */ jsxs74(
12798
14096
  "button",
12799
14097
  {
12800
14098
  onClick: () => setColorTheme(ct.name),
@@ -12806,7 +14104,7 @@ function ThemeListSelector() {
12806
14104
  colorTheme === ct.name ? "bg-primary text-primary-foreground shadow-md" : "hover:bg-accent/80 hover:text-foreground border border-transparent hover:border-border/40"
12807
14105
  ),
12808
14106
  children: [
12809
- /* @__PURE__ */ jsx110("div", { className: "flex gap-1.5 shrink-0", children: ct.colors.map((color, i) => /* @__PURE__ */ jsx110(
14107
+ /* @__PURE__ */ jsx115("div", { className: "flex gap-1.5 shrink-0", children: ct.colors.map((color, i) => /* @__PURE__ */ jsx115(
12810
14108
  "span",
12811
14109
  {
12812
14110
  className: cn(
@@ -12817,9 +14115,9 @@ function ThemeListSelector() {
12817
14115
  },
12818
14116
  i
12819
14117
  )) }),
12820
- /* @__PURE__ */ jsxs69("div", { className: "flex items-center gap-1.5 truncate", children: [
12821
- /* @__PURE__ */ jsx110("span", { className: "text-sm font-medium truncate", children: ct.label }),
12822
- ct.category === "tweakcn" && /* @__PURE__ */ jsx110(
14118
+ /* @__PURE__ */ jsxs74("div", { className: "flex items-center gap-1.5 truncate", children: [
14119
+ /* @__PURE__ */ jsx115("span", { className: "text-sm font-medium truncate", children: ct.label }),
14120
+ ct.category === "tweakcn" && /* @__PURE__ */ jsx115(
12823
14121
  "span",
12824
14122
  {
12825
14123
  className: cn(
@@ -12829,7 +14127,7 @@ function ThemeListSelector() {
12829
14127
  }
12830
14128
  )
12831
14129
  ] }),
12832
- colorTheme === ct.name && /* @__PURE__ */ jsx110(Check8, { className: "ml-auto size-4 shrink-0", strokeWidth: 3 })
14130
+ colorTheme === ct.name && /* @__PURE__ */ jsx115(Check8, { className: "ml-auto size-4 shrink-0", strokeWidth: 3 })
12833
14131
  ]
12834
14132
  },
12835
14133
  ct.name
@@ -12841,7 +14139,7 @@ function ThemeListSelector() {
12841
14139
  }
12842
14140
 
12843
14141
  // src/design-system/templates/nav-user.tsx
12844
- import { Fragment as Fragment4, jsx as jsx111, jsxs as jsxs70 } from "react/jsx-runtime";
14142
+ import { Fragment as Fragment5, jsx as jsx116, jsxs as jsxs75 } from "react/jsx-runtime";
12845
14143
  function NavUser({ user: fallbackUser }) {
12846
14144
  const { isMobile } = useSidebar();
12847
14145
  const [open, setOpen] = useDialogState();
@@ -12850,28 +14148,28 @@ function NavUser({ user: fallbackUser }) {
12850
14148
  const userEmail = auth.user?.email || fallbackUser.email;
12851
14149
  const userAvatar = auth.user?.picture || fallbackUser.avatar;
12852
14150
  const userInitials = userName.split(" ").map((n) => n[0]).join("").toUpperCase().slice(0, 2);
12853
- return /* @__PURE__ */ jsxs70(Fragment4, { children: [
12854
- /* @__PURE__ */ jsx111(SidebarMenu, { children: /* @__PURE__ */ jsx111(SidebarMenuItem, { children: /* @__PURE__ */ jsxs70(DropdownMenu, { modal: false, children: [
12855
- /* @__PURE__ */ jsx111(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsxs70(
14151
+ return /* @__PURE__ */ jsxs75(Fragment5, { children: [
14152
+ /* @__PURE__ */ jsx116(SidebarMenu, { children: /* @__PURE__ */ jsx116(SidebarMenuItem, { children: /* @__PURE__ */ jsxs75(DropdownMenu, { modal: false, children: [
14153
+ /* @__PURE__ */ jsx116(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsxs75(
12856
14154
  SidebarMenuButton,
12857
14155
  {
12858
14156
  size: "lg",
12859
14157
  tooltip: userName,
12860
14158
  className: "data-[state=open]:bg-sidebar-accent data-[state=open]:text-sidebar-accent-foreground",
12861
14159
  children: [
12862
- /* @__PURE__ */ jsxs70(Avatar, { className: "h-8 w-8 rounded-lg", children: [
12863
- /* @__PURE__ */ jsx111(AvatarImage, { src: userAvatar, alt: userName }),
12864
- /* @__PURE__ */ jsx111(AvatarFallback, { className: "rounded-lg", children: userInitials })
14160
+ /* @__PURE__ */ jsxs75(Avatar, { className: "h-8 w-8 rounded-lg", children: [
14161
+ /* @__PURE__ */ jsx116(AvatarImage, { src: userAvatar, alt: userName }),
14162
+ /* @__PURE__ */ jsx116(AvatarFallback, { className: "rounded-lg", children: userInitials })
12865
14163
  ] }),
12866
- /* @__PURE__ */ jsxs70("div", { className: "grid flex-1 text-start text-sm leading-tight", children: [
12867
- /* @__PURE__ */ jsx111("span", { className: "truncate font-semibold", children: userName }),
12868
- /* @__PURE__ */ jsx111("span", { className: "truncate text-xs text-muted-foreground", children: userEmail })
14164
+ /* @__PURE__ */ jsxs75("div", { className: "grid flex-1 text-start text-sm leading-tight", children: [
14165
+ /* @__PURE__ */ jsx116("span", { className: "truncate font-semibold", children: userName }),
14166
+ /* @__PURE__ */ jsx116("span", { className: "truncate text-xs text-muted-foreground", children: userEmail })
12869
14167
  ] }),
12870
- /* @__PURE__ */ jsx111(ChevronsUpDown, { className: "ml-auto size-4 shrink-0" })
14168
+ /* @__PURE__ */ jsx116(ChevronsUpDown, { className: "ml-auto size-4 shrink-0" })
12871
14169
  ]
12872
14170
  }
12873
14171
  ) }),
12874
- /* @__PURE__ */ jsxs70(
14172
+ /* @__PURE__ */ jsxs75(
12875
14173
  DropdownMenuContent,
12876
14174
  {
12877
14175
  className: "w-(--radix-dropdown-menu-trigger-width) min-w-56 rounded-lg",
@@ -12879,43 +14177,43 @@ function NavUser({ user: fallbackUser }) {
12879
14177
  align: "end",
12880
14178
  sideOffset: 4,
12881
14179
  children: [
12882
- /* @__PURE__ */ jsx111(DropdownMenuLabel, { className: "p-0 font-normal", children: /* @__PURE__ */ jsxs70("div", { className: "flex items-center gap-2 px-1 py-1.5 text-start text-sm", children: [
12883
- /* @__PURE__ */ jsxs70(Avatar, { className: "h-8 w-8 rounded-lg", children: [
12884
- /* @__PURE__ */ jsx111(AvatarImage, { src: userAvatar, alt: userName }),
12885
- /* @__PURE__ */ jsx111(AvatarFallback, { className: "rounded-lg", children: userInitials })
14180
+ /* @__PURE__ */ jsx116(DropdownMenuLabel, { className: "p-0 font-normal", children: /* @__PURE__ */ jsxs75("div", { className: "flex items-center gap-2 px-1 py-1.5 text-start text-sm", children: [
14181
+ /* @__PURE__ */ jsxs75(Avatar, { className: "h-8 w-8 rounded-lg", children: [
14182
+ /* @__PURE__ */ jsx116(AvatarImage, { src: userAvatar, alt: userName }),
14183
+ /* @__PURE__ */ jsx116(AvatarFallback, { className: "rounded-lg", children: userInitials })
12886
14184
  ] }),
12887
- /* @__PURE__ */ jsxs70("div", { className: "grid flex-1 text-start text-sm leading-tight", children: [
12888
- /* @__PURE__ */ jsx111("span", { className: "truncate font-semibold", children: userName }),
12889
- /* @__PURE__ */ jsx111("span", { className: "truncate text-xs text-muted-foreground", children: userEmail })
14185
+ /* @__PURE__ */ jsxs75("div", { className: "grid flex-1 text-start text-sm leading-tight", children: [
14186
+ /* @__PURE__ */ jsx116("span", { className: "truncate font-semibold", children: userName }),
14187
+ /* @__PURE__ */ jsx116("span", { className: "truncate text-xs text-muted-foreground", children: userEmail })
12890
14188
  ] })
12891
14189
  ] }) }),
12892
- /* @__PURE__ */ jsx111(DropdownMenuSeparator, {}),
12893
- /* @__PURE__ */ jsx111(
14190
+ /* @__PURE__ */ jsx116(DropdownMenuSeparator, {}),
14191
+ /* @__PURE__ */ jsx116(
12894
14192
  ConfigDrawer,
12895
14193
  {
12896
- trigger: /* @__PURE__ */ jsxs70(DropdownMenuItem, { onSelect: (e) => e.preventDefault(), children: [
12897
- /* @__PURE__ */ jsx111(Palette3, { className: "mr-2 h-4 w-4" }),
14194
+ trigger: /* @__PURE__ */ jsxs75(DropdownMenuItem, { onSelect: (e) => e.preventDefault(), children: [
14195
+ /* @__PURE__ */ jsx116(Palette3, { className: "mr-2 h-4 w-4" }),
12898
14196
  "Theme"
12899
14197
  ] })
12900
14198
  }
12901
14199
  ),
12902
- /* @__PURE__ */ jsx111(
14200
+ /* @__PURE__ */ jsx116(
12903
14201
  ConfigDrawer,
12904
14202
  {
12905
- trigger: /* @__PURE__ */ jsxs70(DropdownMenuItem, { onSelect: (e) => e.preventDefault(), children: [
12906
- /* @__PURE__ */ jsx111(Settings4, { className: "mr-2 h-4 w-4" }),
14203
+ trigger: /* @__PURE__ */ jsxs75(DropdownMenuItem, { onSelect: (e) => e.preventDefault(), children: [
14204
+ /* @__PURE__ */ jsx116(Settings4, { className: "mr-2 h-4 w-4" }),
12907
14205
  "Setting"
12908
14206
  ] })
12909
14207
  }
12910
14208
  ),
12911
- /* @__PURE__ */ jsx111(DropdownMenuSeparator, {}),
12912
- /* @__PURE__ */ jsxs70(
14209
+ /* @__PURE__ */ jsx116(DropdownMenuSeparator, {}),
14210
+ /* @__PURE__ */ jsxs75(
12913
14211
  DropdownMenuItem,
12914
14212
  {
12915
14213
  variant: "destructive",
12916
14214
  onClick: () => setOpen(true),
12917
14215
  children: [
12918
- /* @__PURE__ */ jsx111(LogOut, { className: "mr-2 h-4 w-4" }),
14216
+ /* @__PURE__ */ jsx116(LogOut, { className: "mr-2 h-4 w-4" }),
12919
14217
  "Sign out"
12920
14218
  ]
12921
14219
  }
@@ -12924,19 +14222,19 @@ function NavUser({ user: fallbackUser }) {
12924
14222
  }
12925
14223
  )
12926
14224
  ] }) }) }),
12927
- /* @__PURE__ */ jsx111(SignOutDialog, { open: !!open, onOpenChange: setOpen })
14225
+ /* @__PURE__ */ jsx116(SignOutDialog, { open: !!open, onOpenChange: setOpen })
12928
14226
  ] });
12929
14227
  }
12930
14228
 
12931
14229
  // src/design-system/templates/app-sidebar.tsx
12932
- import { jsx as jsx112, jsxs as jsxs71 } from "react/jsx-runtime";
14230
+ import { jsx as jsx117, jsxs as jsxs76 } from "react/jsx-runtime";
12933
14231
  function AppSidebar() {
12934
14232
  const { collapsible } = useLayout();
12935
- return /* @__PURE__ */ jsxs71(Sidebar, { collapsible, variant: "sidebar", children: [
12936
- /* @__PURE__ */ jsxs71(SidebarHeader, { className: "p-2 pb-1", children: [
12937
- /* @__PURE__ */ jsxs71("div", { className: "flex items-center justify-between gap-1", children: [
12938
- /* @__PURE__ */ jsx112("div", { className: "flex-1 min-w-0", children: /* @__PURE__ */ jsx112(TeamSwitcher, { teams: sidebarData2.teams }) }),
12939
- /* @__PURE__ */ jsx112("div", { className: "group-data-[collapsible=icon]:hidden shrink-0", children: /* @__PURE__ */ jsx112(
14233
+ return /* @__PURE__ */ jsxs76(Sidebar, { collapsible, variant: "sidebar", children: [
14234
+ /* @__PURE__ */ jsxs76(SidebarHeader, { className: "p-2 pb-1", children: [
14235
+ /* @__PURE__ */ jsxs76("div", { className: "flex items-center justify-between gap-1", children: [
14236
+ /* @__PURE__ */ jsx117("div", { className: "flex-1 min-w-0", children: /* @__PURE__ */ jsx117(TeamSwitcher, { teams: sidebarData2.teams }) }),
14237
+ /* @__PURE__ */ jsx117("div", { className: "group-data-[collapsible=icon]:hidden shrink-0", children: /* @__PURE__ */ jsx117(
12940
14238
  SidebarTrigger,
12941
14239
  {
12942
14240
  variant: "ghost",
@@ -12945,7 +14243,7 @@ function AppSidebar() {
12945
14243
  }
12946
14244
  ) })
12947
14245
  ] }),
12948
- /* @__PURE__ */ jsx112("div", { className: "hidden group-data-[collapsible=icon]:flex justify-center pt-2 pb-1", children: /* @__PURE__ */ jsx112(
14246
+ /* @__PURE__ */ jsx117("div", { className: "hidden group-data-[collapsible=icon]:flex justify-center pt-2 pb-1", children: /* @__PURE__ */ jsx117(
12949
14247
  SidebarTrigger,
12950
14248
  {
12951
14249
  variant: "ghost",
@@ -12954,37 +14252,37 @@ function AppSidebar() {
12954
14252
  }
12955
14253
  ) })
12956
14254
  ] }),
12957
- /* @__PURE__ */ jsx112(SidebarContent, { children: sidebarData2.navGroups.map((props) => /* @__PURE__ */ jsx112(NavGroup, { ...props }, props.title)) }),
12958
- /* @__PURE__ */ jsx112(SidebarFooter, { children: /* @__PURE__ */ jsx112(NavUser, { user: sidebarData2.user }) })
14255
+ /* @__PURE__ */ jsx117(SidebarContent, { children: sidebarData2.navGroups.map((props) => /* @__PURE__ */ jsx117(NavGroup, { ...props }, props.title)) }),
14256
+ /* @__PURE__ */ jsx117(SidebarFooter, { children: /* @__PURE__ */ jsx117(NavUser, { user: sidebarData2.user }) })
12959
14257
  ] });
12960
14258
  }
12961
14259
 
12962
14260
  // src/design-system/templates/app-title.tsx
12963
14261
  import Link4 from "next/link";
12964
- import { Menu, X as X5 } from "lucide-react";
12965
- import { jsx as jsx113, jsxs as jsxs72 } from "react/jsx-runtime";
14262
+ import { Menu, X as X7 } from "lucide-react";
14263
+ import { jsx as jsx118, jsxs as jsxs77 } from "react/jsx-runtime";
12966
14264
  function AppTitle() {
12967
14265
  const { setOpenMobile } = useSidebar();
12968
- return /* @__PURE__ */ jsx113(SidebarMenu, { children: /* @__PURE__ */ jsx113(SidebarMenuItem, { children: /* @__PURE__ */ jsx113(
14266
+ return /* @__PURE__ */ jsx118(SidebarMenu, { children: /* @__PURE__ */ jsx118(SidebarMenuItem, { children: /* @__PURE__ */ jsx118(
12969
14267
  SidebarMenuButton,
12970
14268
  {
12971
14269
  size: "lg",
12972
14270
  className: "gap-0 py-0 hover:bg-transparent active:bg-transparent",
12973
14271
  asChild: true,
12974
- children: /* @__PURE__ */ jsxs72("div", { children: [
12975
- /* @__PURE__ */ jsxs72(
14272
+ children: /* @__PURE__ */ jsxs77("div", { children: [
14273
+ /* @__PURE__ */ jsxs77(
12976
14274
  Link4,
12977
14275
  {
12978
14276
  href: "/",
12979
14277
  onClick: () => setOpenMobile(false),
12980
14278
  className: "grid flex-1 text-start text-sm leading-tight",
12981
14279
  children: [
12982
- /* @__PURE__ */ jsx113("span", { className: "truncate font-bold", children: "Shadcn-Admin" }),
12983
- /* @__PURE__ */ jsx113("span", { className: "truncate text-xs", children: "Vite + ShadcnUI" })
14280
+ /* @__PURE__ */ jsx118("span", { className: "truncate font-bold", children: "Shadcn-Admin" }),
14281
+ /* @__PURE__ */ jsx118("span", { className: "truncate text-xs", children: "Vite + ShadcnUI" })
12984
14282
  ]
12985
14283
  }
12986
14284
  ),
12987
- /* @__PURE__ */ jsx113(ToggleSidebar, {})
14285
+ /* @__PURE__ */ jsx118(ToggleSidebar, {})
12988
14286
  ] })
12989
14287
  }
12990
14288
  ) }) });
@@ -12995,7 +14293,7 @@ function ToggleSidebar({
12995
14293
  ...props
12996
14294
  }) {
12997
14295
  const { toggleSidebar } = useSidebar();
12998
- return /* @__PURE__ */ jsxs72(
14296
+ return /* @__PURE__ */ jsxs77(
12999
14297
  Button,
13000
14298
  {
13001
14299
  "data-sidebar": "trigger",
@@ -13009,16 +14307,16 @@ function ToggleSidebar({
13009
14307
  },
13010
14308
  ...props,
13011
14309
  children: [
13012
- /* @__PURE__ */ jsx113(X5, { className: "md:hidden" }),
13013
- /* @__PURE__ */ jsx113(Menu, { className: "max-md:hidden" }),
13014
- /* @__PURE__ */ jsx113("span", { className: "sr-only", children: "Toggle Sidebar" })
14310
+ /* @__PURE__ */ jsx118(X7, { className: "md:hidden" }),
14311
+ /* @__PURE__ */ jsx118(Menu, { className: "max-md:hidden" }),
14312
+ /* @__PURE__ */ jsx118("span", { className: "sr-only", children: "Toggle Sidebar" })
13015
14313
  ]
13016
14314
  }
13017
14315
  );
13018
14316
  }
13019
14317
 
13020
14318
  // src/design-system/templates/authenticated-layout.tsx
13021
- import { useEffect as useEffect16, useState as useState16 } from "react";
14319
+ import { useEffect as useEffect16, useState as useState18 } from "react";
13022
14320
  import { usePathname as usePathname3 } from "next/navigation";
13023
14321
 
13024
14322
  // src/components/layout/app-sidebar.tsx
@@ -13027,13 +14325,13 @@ import { useEffect as useEffect15 } from "react";
13027
14325
  // src/components/layout/nav-group.tsx
13028
14326
  import Link5 from "next/link";
13029
14327
  import { usePathname as usePathname2 } from "next/navigation";
13030
- import { ChevronRight as ChevronRight9, X as X6 } from "lucide-react";
13031
- import { jsx as jsx114, jsxs as jsxs73 } from "react/jsx-runtime";
14328
+ import { ChevronRight as ChevronRight11, X as X8 } from "lucide-react";
14329
+ import { jsx as jsx119, jsxs as jsxs78 } from "react/jsx-runtime";
13032
14330
  function NavGroup2({ title, items }) {
13033
14331
  const { state, isMobile, openMobile, setOpenMobile } = useSidebar();
13034
14332
  const href = usePathname2();
13035
- return /* @__PURE__ */ jsxs73(SidebarGroup, { className: cn(title === "Menu" && "pt-0"), children: [
13036
- /* @__PURE__ */ jsxs73(
14333
+ return /* @__PURE__ */ jsxs78(SidebarGroup, { className: cn(title === "Menu" && "pt-0"), children: [
14334
+ /* @__PURE__ */ jsxs78(
13037
14335
  SidebarGroupLabel,
13038
14336
  {
13039
14337
  className: cn(
@@ -13041,8 +14339,8 @@ function NavGroup2({ title, items }) {
13041
14339
  title === "Menu" && state !== "collapsed" && "sticky top-0 z-20 bg-sidebar py-1.5"
13042
14340
  ),
13043
14341
  children: [
13044
- /* @__PURE__ */ jsx114("span", { children: title }),
13045
- title === "Menu" && !isMobile && /* @__PURE__ */ jsx114(
14342
+ /* @__PURE__ */ jsx119("span", { children: title }),
14343
+ title === "Menu" && !isMobile && /* @__PURE__ */ jsx119(
13046
14344
  SidebarTrigger,
13047
14345
  {
13048
14346
  variant: "ghost",
@@ -13050,7 +14348,7 @@ function NavGroup2({ title, items }) {
13050
14348
  "aria-label": "Toggle sidebar"
13051
14349
  }
13052
14350
  ),
13053
- title === "Menu" && isMobile && openMobile && /* @__PURE__ */ jsx114(
14351
+ title === "Menu" && isMobile && openMobile && /* @__PURE__ */ jsx119(
13054
14352
  Button,
13055
14353
  {
13056
14354
  type: "button",
@@ -13059,37 +14357,37 @@ function NavGroup2({ title, items }) {
13059
14357
  className: "size-6 shrink-0",
13060
14358
  "aria-label": "Close sidebar",
13061
14359
  onClick: () => setOpenMobile(false),
13062
- children: /* @__PURE__ */ jsx114(X6, { className: "size-4", "aria-hidden": "true" })
14360
+ children: /* @__PURE__ */ jsx119(X8, { className: "size-4", "aria-hidden": "true" })
13063
14361
  }
13064
14362
  )
13065
14363
  ]
13066
14364
  }
13067
14365
  ),
13068
- /* @__PURE__ */ jsx114(SidebarMenu, { children: items.map((item) => {
14366
+ /* @__PURE__ */ jsx119(SidebarMenu, { children: items.map((item) => {
13069
14367
  const key = `${item.title}-${item.url}`;
13070
14368
  if (!item.items)
13071
- return /* @__PURE__ */ jsx114(SidebarMenuLink2, { item, href }, key);
14369
+ return /* @__PURE__ */ jsx119(SidebarMenuLink2, { item, href }, key);
13072
14370
  if (item.title === "Settings" && item.items.length === 0)
13073
- return /* @__PURE__ */ jsx114(SidebarMenuSettings2, { item }, key);
14371
+ return /* @__PURE__ */ jsx119(SidebarMenuSettings2, { item }, key);
13074
14372
  if (state === "collapsed" && !isMobile)
13075
- return /* @__PURE__ */ jsx114(SidebarMenuCollapsedDropdown2, { item, href }, key);
13076
- return /* @__PURE__ */ jsx114(SidebarMenuCollapsible2, { item, href }, key);
14373
+ return /* @__PURE__ */ jsx119(SidebarMenuCollapsedDropdown2, { item, href }, key);
14374
+ return /* @__PURE__ */ jsx119(SidebarMenuCollapsible2, { item, href }, key);
13077
14375
  }) })
13078
14376
  ] });
13079
14377
  }
13080
14378
  function NavBadge2({ children }) {
13081
- return /* @__PURE__ */ jsx114(Badge, { className: "rounded-full px-1 py-0 text-xs", children });
14379
+ return /* @__PURE__ */ jsx119(Badge, { className: "rounded-full px-1 py-0 text-xs", children });
13082
14380
  }
13083
14381
  function SidebarMenuLink2({ item, href }) {
13084
14382
  const { setOpenMobile } = useSidebar();
13085
14383
  const { setShowInlineNotFound } = useLayout();
13086
- return /* @__PURE__ */ jsx114(SidebarMenuItem, { children: /* @__PURE__ */ jsx114(
14384
+ return /* @__PURE__ */ jsx119(SidebarMenuItem, { children: /* @__PURE__ */ jsx119(
13087
14385
  SidebarMenuButton,
13088
14386
  {
13089
14387
  asChild: true,
13090
14388
  isActive: checkIsActive2(href, item),
13091
14389
  tooltip: item.title,
13092
- children: /* @__PURE__ */ jsxs73(
14390
+ children: /* @__PURE__ */ jsxs78(
13093
14391
  Link5,
13094
14392
  {
13095
14393
  href: item.url,
@@ -13098,9 +14396,9 @@ function SidebarMenuLink2({ item, href }) {
13098
14396
  setOpenMobile(false);
13099
14397
  },
13100
14398
  children: [
13101
- item.icon && /* @__PURE__ */ jsx114(item.icon, {}),
13102
- /* @__PURE__ */ jsx114("span", { children: item.title }),
13103
- item.badge && /* @__PURE__ */ jsx114(NavBadge2, { children: item.badge })
14399
+ item.icon && /* @__PURE__ */ jsx119(item.icon, {}),
14400
+ /* @__PURE__ */ jsx119("span", { children: item.title }),
14401
+ item.badge && /* @__PURE__ */ jsx119(NavBadge2, { children: item.badge })
13104
14402
  ]
13105
14403
  }
13106
14404
  )
@@ -13110,7 +14408,7 @@ function SidebarMenuLink2({ item, href }) {
13110
14408
  function SidebarMenuSettings2({ item }) {
13111
14409
  const { setOpenMobile } = useSidebar();
13112
14410
  const { showInlineNotFound, setShowInlineNotFound } = useLayout();
13113
- return /* @__PURE__ */ jsx114(SidebarMenuItem, { children: /* @__PURE__ */ jsxs73(
14411
+ return /* @__PURE__ */ jsx119(SidebarMenuItem, { children: /* @__PURE__ */ jsxs78(
13114
14412
  SidebarMenuButton,
13115
14413
  {
13116
14414
  tooltip: item.title,
@@ -13120,8 +14418,8 @@ function SidebarMenuSettings2({ item }) {
13120
14418
  setOpenMobile(false);
13121
14419
  },
13122
14420
  children: [
13123
- item.icon && /* @__PURE__ */ jsx114(item.icon, {}),
13124
- /* @__PURE__ */ jsx114("span", { children: item.title })
14421
+ item.icon && /* @__PURE__ */ jsx119(item.icon, {}),
14422
+ /* @__PURE__ */ jsx119("span", { children: item.title })
13125
14423
  ]
13126
14424
  }
13127
14425
  ) });
@@ -13132,25 +14430,25 @@ function SidebarMenuCollapsible2({
13132
14430
  }) {
13133
14431
  const { setOpenMobile } = useSidebar();
13134
14432
  const { setShowInlineNotFound } = useLayout();
13135
- return /* @__PURE__ */ jsx114(
14433
+ return /* @__PURE__ */ jsx119(
13136
14434
  Collapsible,
13137
14435
  {
13138
14436
  asChild: true,
13139
14437
  defaultOpen: checkIsActive2(href, item, true),
13140
14438
  className: "group/collapsible",
13141
- children: /* @__PURE__ */ jsxs73(SidebarMenuItem, { children: [
13142
- /* @__PURE__ */ jsx114(CollapsibleTrigger, { asChild: true, children: /* @__PURE__ */ jsxs73(SidebarMenuButton, { tooltip: item.title, children: [
13143
- item.icon && /* @__PURE__ */ jsx114(item.icon, {}),
13144
- /* @__PURE__ */ jsx114("span", { children: item.title }),
13145
- item.badge && /* @__PURE__ */ jsx114(NavBadge2, { children: item.badge }),
13146
- /* @__PURE__ */ jsx114(ChevronRight9, { className: "ms-auto transition-transform duration-200 group-data-[state=open]/collapsible:rotate-90 rtl:rotate-180" })
14439
+ children: /* @__PURE__ */ jsxs78(SidebarMenuItem, { children: [
14440
+ /* @__PURE__ */ jsx119(CollapsibleTrigger, { asChild: true, children: /* @__PURE__ */ jsxs78(SidebarMenuButton, { tooltip: item.title, children: [
14441
+ item.icon && /* @__PURE__ */ jsx119(item.icon, {}),
14442
+ /* @__PURE__ */ jsx119("span", { children: item.title }),
14443
+ item.badge && /* @__PURE__ */ jsx119(NavBadge2, { children: item.badge }),
14444
+ /* @__PURE__ */ jsx119(ChevronRight11, { className: "ms-auto transition-transform duration-200 group-data-[state=open]/collapsible:rotate-90 rtl:rotate-180" })
13147
14445
  ] }) }),
13148
- /* @__PURE__ */ jsx114(CollapsibleContent, { className: "CollapsibleContent", children: /* @__PURE__ */ jsx114(SidebarMenuSub, { children: item.items.map((subItem) => /* @__PURE__ */ jsx114(SidebarMenuSubItem, { children: /* @__PURE__ */ jsx114(
14446
+ /* @__PURE__ */ jsx119(CollapsibleContent, { className: "CollapsibleContent", children: /* @__PURE__ */ jsx119(SidebarMenuSub, { children: item.items.map((subItem) => /* @__PURE__ */ jsx119(SidebarMenuSubItem, { children: /* @__PURE__ */ jsx119(
13149
14447
  SidebarMenuSubButton,
13150
14448
  {
13151
14449
  asChild: true,
13152
14450
  isActive: checkIsActive2(href, subItem),
13153
- children: /* @__PURE__ */ jsxs73(
14451
+ children: /* @__PURE__ */ jsxs78(
13154
14452
  Link5,
13155
14453
  {
13156
14454
  href: subItem.url,
@@ -13159,9 +14457,9 @@ function SidebarMenuCollapsible2({
13159
14457
  setOpenMobile(false);
13160
14458
  },
13161
14459
  children: [
13162
- subItem.icon && /* @__PURE__ */ jsx114(subItem.icon, {}),
13163
- /* @__PURE__ */ jsx114("span", { children: subItem.title }),
13164
- subItem.badge && /* @__PURE__ */ jsx114(NavBadge2, { children: subItem.badge })
14460
+ subItem.icon && /* @__PURE__ */ jsx119(subItem.icon, {}),
14461
+ /* @__PURE__ */ jsx119("span", { children: subItem.title }),
14462
+ subItem.badge && /* @__PURE__ */ jsx119(NavBadge2, { children: subItem.badge })
13165
14463
  ]
13166
14464
  }
13167
14465
  )
@@ -13175,36 +14473,36 @@ function SidebarMenuCollapsedDropdown2({
13175
14473
  item,
13176
14474
  href
13177
14475
  }) {
13178
- return /* @__PURE__ */ jsx114(SidebarMenuItem, { children: /* @__PURE__ */ jsxs73(DropdownMenu, { children: [
13179
- /* @__PURE__ */ jsx114(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsxs73(
14476
+ return /* @__PURE__ */ jsx119(SidebarMenuItem, { children: /* @__PURE__ */ jsxs78(DropdownMenu, { children: [
14477
+ /* @__PURE__ */ jsx119(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsxs78(
13180
14478
  SidebarMenuButton,
13181
14479
  {
13182
14480
  tooltip: item.title,
13183
14481
  isActive: checkIsActive2(href, item),
13184
14482
  children: [
13185
- item.icon && /* @__PURE__ */ jsx114(item.icon, {}),
13186
- /* @__PURE__ */ jsx114("span", { children: item.title }),
13187
- item.badge && /* @__PURE__ */ jsx114(NavBadge2, { children: item.badge }),
13188
- /* @__PURE__ */ jsx114(ChevronRight9, { className: "ms-auto transition-transform duration-200 group-data-[state=open]/collapsible:rotate-90" })
14483
+ item.icon && /* @__PURE__ */ jsx119(item.icon, {}),
14484
+ /* @__PURE__ */ jsx119("span", { children: item.title }),
14485
+ item.badge && /* @__PURE__ */ jsx119(NavBadge2, { children: item.badge }),
14486
+ /* @__PURE__ */ jsx119(ChevronRight11, { className: "ms-auto transition-transform duration-200 group-data-[state=open]/collapsible:rotate-90" })
13189
14487
  ]
13190
14488
  }
13191
14489
  ) }),
13192
- /* @__PURE__ */ jsxs73(DropdownMenuContent, { side: "right", align: "start", sideOffset: 4, children: [
13193
- /* @__PURE__ */ jsxs73(DropdownMenuLabel, { children: [
14490
+ /* @__PURE__ */ jsxs78(DropdownMenuContent, { side: "right", align: "start", sideOffset: 4, children: [
14491
+ /* @__PURE__ */ jsxs78(DropdownMenuLabel, { children: [
13194
14492
  item.title,
13195
14493
  " ",
13196
14494
  item.badge ? `(${item.badge})` : ""
13197
14495
  ] }),
13198
- /* @__PURE__ */ jsx114(DropdownMenuSeparator, {}),
13199
- item.items.map((sub) => /* @__PURE__ */ jsx114(DropdownMenuItem, { asChild: true, children: /* @__PURE__ */ jsxs73(
14496
+ /* @__PURE__ */ jsx119(DropdownMenuSeparator, {}),
14497
+ item.items.map((sub) => /* @__PURE__ */ jsx119(DropdownMenuItem, { asChild: true, children: /* @__PURE__ */ jsxs78(
13200
14498
  Link5,
13201
14499
  {
13202
14500
  href: sub.url,
13203
14501
  className: `${checkIsActive2(href, sub) ? "bg-secondary" : ""}`,
13204
14502
  children: [
13205
- sub.icon && /* @__PURE__ */ jsx114(sub.icon, {}),
13206
- /* @__PURE__ */ jsx114("span", { className: "max-w-52 text-wrap", children: sub.title }),
13207
- sub.badge && /* @__PURE__ */ jsx114("span", { className: "ms-auto text-xs", children: sub.badge })
14503
+ sub.icon && /* @__PURE__ */ jsx119(sub.icon, {}),
14504
+ /* @__PURE__ */ jsx119("span", { className: "max-w-52 text-wrap", children: sub.title }),
14505
+ sub.badge && /* @__PURE__ */ jsx119("span", { className: "ms-auto text-xs", children: sub.badge })
13208
14506
  ]
13209
14507
  }
13210
14508
  ) }, `${sub.title}-${sub.url}`))
@@ -13223,7 +14521,7 @@ import {
13223
14521
  ChevronsUpDown as ChevronsUpDown2,
13224
14522
  LogOut as LogOut2,
13225
14523
  User as User2,
13226
- Bell as Bell5,
14524
+ Bell as Bell6,
13227
14525
  MessageCircle,
13228
14526
  CreditCard,
13229
14527
  ShoppingBag,
@@ -13231,7 +14529,7 @@ import {
13231
14529
  Palette as Palette4
13232
14530
  } from "lucide-react";
13233
14531
  import Link6 from "next/link";
13234
- import { Fragment as Fragment5, jsx as jsx115, jsxs as jsxs74 } from "react/jsx-runtime";
14532
+ import { Fragment as Fragment6, jsx as jsx120, jsxs as jsxs79 } from "react/jsx-runtime";
13235
14533
  function NavUser2({ user: fallbackUser }) {
13236
14534
  const { isMobile } = useSidebar();
13237
14535
  const [open, setOpen] = useDialogState();
@@ -13241,28 +14539,28 @@ function NavUser2({ user: fallbackUser }) {
13241
14539
  const userEmail = auth.user?.email || fallbackUser.email;
13242
14540
  const userAvatar = auth.user?.picture || fallbackUser.avatar;
13243
14541
  const userInitials = userName.split(" ").map((n) => n[0]).join("").toUpperCase().slice(0, 2);
13244
- return /* @__PURE__ */ jsxs74(Fragment5, { children: [
13245
- /* @__PURE__ */ jsx115(SidebarMenu, { children: /* @__PURE__ */ jsx115(SidebarMenuItem, { children: /* @__PURE__ */ jsxs74(DropdownMenu, { modal: false, children: [
13246
- /* @__PURE__ */ jsx115(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsxs74(
14542
+ return /* @__PURE__ */ jsxs79(Fragment6, { children: [
14543
+ /* @__PURE__ */ jsx120(SidebarMenu, { children: /* @__PURE__ */ jsx120(SidebarMenuItem, { children: /* @__PURE__ */ jsxs79(DropdownMenu, { modal: false, children: [
14544
+ /* @__PURE__ */ jsx120(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsxs79(
13247
14545
  SidebarMenuButton,
13248
14546
  {
13249
14547
  size: "lg",
13250
14548
  tooltip: userName,
13251
14549
  className: "data-[state=open]:bg-sidebar-accent data-[state=open]:text-sidebar-accent-foreground",
13252
14550
  children: [
13253
- /* @__PURE__ */ jsxs74(Avatar, { className: "h-8 w-8 rounded-lg", children: [
13254
- /* @__PURE__ */ jsx115(AvatarImage, { src: userAvatar, alt: userName }),
13255
- /* @__PURE__ */ jsx115(AvatarFallback, { className: "rounded-lg", children: userInitials })
14551
+ /* @__PURE__ */ jsxs79(Avatar, { className: "h-8 w-8 rounded-lg", children: [
14552
+ /* @__PURE__ */ jsx120(AvatarImage, { src: userAvatar, alt: userName }),
14553
+ /* @__PURE__ */ jsx120(AvatarFallback, { className: "rounded-lg", children: userInitials })
13256
14554
  ] }),
13257
- /* @__PURE__ */ jsxs74("div", { className: "grid flex-1 text-start text-sm leading-tight", children: [
13258
- /* @__PURE__ */ jsx115("span", { className: "truncate font-semibold", children: userName }),
13259
- /* @__PURE__ */ jsx115("span", { className: "truncate text-xs text-muted-foreground", children: userEmail })
14555
+ /* @__PURE__ */ jsxs79("div", { className: "grid flex-1 text-start text-sm leading-tight", children: [
14556
+ /* @__PURE__ */ jsx120("span", { className: "truncate font-semibold", children: userName }),
14557
+ /* @__PURE__ */ jsx120("span", { className: "truncate text-xs text-muted-foreground", children: userEmail })
13260
14558
  ] }),
13261
- /* @__PURE__ */ jsx115(ChevronsUpDown2, { className: "ml-auto size-4 shrink-0" })
14559
+ /* @__PURE__ */ jsx120(ChevronsUpDown2, { className: "ml-auto size-4 shrink-0" })
13262
14560
  ]
13263
14561
  }
13264
14562
  ) }),
13265
- /* @__PURE__ */ jsxs74(
14563
+ /* @__PURE__ */ jsxs79(
13266
14564
  DropdownMenuContent,
13267
14565
  {
13268
14566
  className: "w-(--radix-dropdown-menu-trigger-width) min-w-56 rounded-lg",
@@ -13270,59 +14568,59 @@ function NavUser2({ user: fallbackUser }) {
13270
14568
  align: "end",
13271
14569
  sideOffset: 4,
13272
14570
  children: [
13273
- /* @__PURE__ */ jsx115(DropdownMenuLabel, { className: "p-0 font-normal", children: /* @__PURE__ */ jsxs74("div", { className: "flex items-center gap-2 px-1 py-1.5 text-start text-sm", children: [
13274
- /* @__PURE__ */ jsxs74(Avatar, { className: "h-8 w-8 rounded-lg", children: [
13275
- /* @__PURE__ */ jsx115(AvatarImage, { src: userAvatar, alt: userName }),
13276
- /* @__PURE__ */ jsx115(AvatarFallback, { className: "rounded-lg", children: userInitials })
14571
+ /* @__PURE__ */ jsx120(DropdownMenuLabel, { className: "p-0 font-normal", children: /* @__PURE__ */ jsxs79("div", { className: "flex items-center gap-2 px-1 py-1.5 text-start text-sm", children: [
14572
+ /* @__PURE__ */ jsxs79(Avatar, { className: "h-8 w-8 rounded-lg", children: [
14573
+ /* @__PURE__ */ jsx120(AvatarImage, { src: userAvatar, alt: userName }),
14574
+ /* @__PURE__ */ jsx120(AvatarFallback, { className: "rounded-lg", children: userInitials })
13277
14575
  ] }),
13278
- /* @__PURE__ */ jsxs74("div", { className: "grid flex-1 text-start text-sm leading-tight", children: [
13279
- /* @__PURE__ */ jsx115("span", { className: "truncate font-semibold", children: userName }),
13280
- /* @__PURE__ */ jsx115("span", { className: "truncate text-xs text-muted-foreground", children: userEmail })
14576
+ /* @__PURE__ */ jsxs79("div", { className: "grid flex-1 text-start text-sm leading-tight", children: [
14577
+ /* @__PURE__ */ jsx120("span", { className: "truncate font-semibold", children: userName }),
14578
+ /* @__PURE__ */ jsx120("span", { className: "truncate text-xs text-muted-foreground", children: userEmail })
13281
14579
  ] })
13282
14580
  ] }) }),
13283
- /* @__PURE__ */ jsx115(DropdownMenuSeparator, {}),
13284
- /* @__PURE__ */ jsxs74(DropdownMenuItem, { onClick: () => setShowInlineNotFound(true), children: [
13285
- /* @__PURE__ */ jsx115(User2, { className: "mr-2 h-4 w-4" }),
14581
+ /* @__PURE__ */ jsx120(DropdownMenuSeparator, {}),
14582
+ /* @__PURE__ */ jsxs79(DropdownMenuItem, { onClick: () => setShowInlineNotFound(true), children: [
14583
+ /* @__PURE__ */ jsx120(User2, { className: "mr-2 h-4 w-4" }),
13286
14584
  "My Profile"
13287
14585
  ] }),
13288
- /* @__PURE__ */ jsxs74(DropdownMenuItem, { onClick: () => setShowInlineNotFound(true), children: [
13289
- /* @__PURE__ */ jsx115(Bell5, { className: "mr-2 h-4 w-4" }),
14586
+ /* @__PURE__ */ jsxs79(DropdownMenuItem, { onClick: () => setShowInlineNotFound(true), children: [
14587
+ /* @__PURE__ */ jsx120(Bell6, { className: "mr-2 h-4 w-4" }),
13290
14588
  "Notifications"
13291
14589
  ] }),
13292
- /* @__PURE__ */ jsxs74(DropdownMenuItem, { onClick: () => setShowInlineNotFound(true), children: [
13293
- /* @__PURE__ */ jsx115(MessageCircle, { className: "mr-2 h-4 w-4" }),
14590
+ /* @__PURE__ */ jsxs79(DropdownMenuItem, { onClick: () => setShowInlineNotFound(true), children: [
14591
+ /* @__PURE__ */ jsx120(MessageCircle, { className: "mr-2 h-4 w-4" }),
13294
14592
  "Help & Support"
13295
14593
  ] }),
13296
- /* @__PURE__ */ jsx115(DropdownMenuSeparator, {}),
13297
- /* @__PURE__ */ jsxs74(DropdownMenuItem, { onClick: () => setShowInlineNotFound(true), children: [
13298
- /* @__PURE__ */ jsx115(CreditCard, { className: "mr-2 h-4 w-4" }),
14594
+ /* @__PURE__ */ jsx120(DropdownMenuSeparator, {}),
14595
+ /* @__PURE__ */ jsxs79(DropdownMenuItem, { onClick: () => setShowInlineNotFound(true), children: [
14596
+ /* @__PURE__ */ jsx120(CreditCard, { className: "mr-2 h-4 w-4" }),
13299
14597
  "Subscriptions"
13300
14598
  ] }),
13301
- /* @__PURE__ */ jsx115(DropdownMenuItem, { asChild: true, children: /* @__PURE__ */ jsxs74(Link6, { href: "/apps", children: [
13302
- /* @__PURE__ */ jsx115(ShoppingBag, { className: "mr-2 h-4 w-4" }),
14599
+ /* @__PURE__ */ jsx120(DropdownMenuItem, { asChild: true, children: /* @__PURE__ */ jsxs79(Link6, { href: "/apps", children: [
14600
+ /* @__PURE__ */ jsx120(ShoppingBag, { className: "mr-2 h-4 w-4" }),
13303
14601
  "Buy Apps"
13304
14602
  ] }) }),
13305
- /* @__PURE__ */ jsx115(
14603
+ /* @__PURE__ */ jsx120(
13306
14604
  ConfigDrawer,
13307
14605
  {
13308
- trigger: /* @__PURE__ */ jsxs74(DropdownMenuItem, { onSelect: (e) => e.preventDefault(), children: [
13309
- /* @__PURE__ */ jsx115(Palette4, { className: "mr-2 h-4 w-4" }),
14606
+ trigger: /* @__PURE__ */ jsxs79(DropdownMenuItem, { onSelect: (e) => e.preventDefault(), children: [
14607
+ /* @__PURE__ */ jsx120(Palette4, { className: "mr-2 h-4 w-4" }),
13310
14608
  "Theme Settings"
13311
14609
  ] })
13312
14610
  }
13313
14611
  ),
13314
- /* @__PURE__ */ jsxs74(DropdownMenuItem, { onClick: () => setShowInlineNotFound(true), children: [
13315
- /* @__PURE__ */ jsx115(Settings5, { className: "mr-2 h-4 w-4" }),
14612
+ /* @__PURE__ */ jsxs79(DropdownMenuItem, { onClick: () => setShowInlineNotFound(true), children: [
14613
+ /* @__PURE__ */ jsx120(Settings5, { className: "mr-2 h-4 w-4" }),
13316
14614
  "Settings"
13317
14615
  ] }),
13318
- /* @__PURE__ */ jsx115(DropdownMenuSeparator, {}),
13319
- /* @__PURE__ */ jsxs74(
14616
+ /* @__PURE__ */ jsx120(DropdownMenuSeparator, {}),
14617
+ /* @__PURE__ */ jsxs79(
13320
14618
  DropdownMenuItem,
13321
14619
  {
13322
14620
  variant: "destructive",
13323
14621
  onClick: () => setOpen(true),
13324
14622
  children: [
13325
- /* @__PURE__ */ jsx115(LogOut2, { className: "mr-2 h-4 w-4" }),
14623
+ /* @__PURE__ */ jsx120(LogOut2, { className: "mr-2 h-4 w-4" }),
13326
14624
  "Sign out"
13327
14625
  ]
13328
14626
  }
@@ -13331,12 +14629,12 @@ function NavUser2({ user: fallbackUser }) {
13331
14629
  }
13332
14630
  )
13333
14631
  ] }) }) }),
13334
- /* @__PURE__ */ jsx115(SignOutDialog, { open: !!open, onOpenChange: setOpen })
14632
+ /* @__PURE__ */ jsx120(SignOutDialog, { open: !!open, onOpenChange: setOpen })
13335
14633
  ] });
13336
14634
  }
13337
14635
 
13338
14636
  // src/components/layout/app-sidebar.tsx
13339
- import { jsx as jsx116, jsxs as jsxs75 } from "react/jsx-runtime";
14637
+ import { jsx as jsx121, jsxs as jsxs80 } from "react/jsx-runtime";
13340
14638
  function AppSidebar2() {
13341
14639
  const { collapsible } = useLayout();
13342
14640
  const currentUser = useAuthStore((state) => state.auth.user);
@@ -13367,9 +14665,9 @@ function AppSidebar2() {
13367
14665
  };
13368
14666
  return (
13369
14667
  // Sidebar ko fixed "sidebar" variant par lock kiya gaya hai (floating remove).
13370
- /* @__PURE__ */ jsxs75(Sidebar, { collapsible, variant: "sidebar", children: [
13371
- /* @__PURE__ */ jsx116(SidebarHeader, { className: "pb-0", children: /* @__PURE__ */ jsx116(TeamSwitcher, { teams: dynamicSidebarData.teams }) }),
13372
- /* @__PURE__ */ jsx116("div", { className: "hidden group-data-[state=collapsed]:flex justify-center py-2", children: /* @__PURE__ */ jsx116(
14668
+ /* @__PURE__ */ jsxs80(Sidebar, { collapsible, variant: "sidebar", children: [
14669
+ /* @__PURE__ */ jsx121(SidebarHeader, { className: "pb-0", children: /* @__PURE__ */ jsx121(TeamSwitcher, { teams: dynamicSidebarData.teams }) }),
14670
+ /* @__PURE__ */ jsx121("div", { className: "hidden group-data-[state=collapsed]:flex justify-center py-2", children: /* @__PURE__ */ jsx121(
13373
14671
  SidebarTrigger,
13374
14672
  {
13375
14673
  variant: "ghost",
@@ -13377,16 +14675,16 @@ function AppSidebar2() {
13377
14675
  "aria-label": "Toggle sidebar"
13378
14676
  }
13379
14677
  ) }),
13380
- /* @__PURE__ */ jsx116(SidebarContent, { children: dynamicSidebarData.navGroups.map((props) => /* @__PURE__ */ jsx116(NavGroup2, { ...props }, props.title)) }),
13381
- /* @__PURE__ */ jsx116(SidebarFooter, { children: /* @__PURE__ */ jsx116(NavUser2, { user: dynamicSidebarData.user }) })
14678
+ /* @__PURE__ */ jsx121(SidebarContent, { children: dynamicSidebarData.navGroups.map((props) => /* @__PURE__ */ jsx121(NavGroup2, { ...props }, props.title)) }),
14679
+ /* @__PURE__ */ jsx121(SidebarFooter, { children: /* @__PURE__ */ jsx121(NavUser2, { user: dynamicSidebarData.user }) })
13382
14680
  ] })
13383
14681
  );
13384
14682
  }
13385
14683
 
13386
14684
  // src/components/skip-to-main.tsx
13387
- import { jsx as jsx117 } from "react/jsx-runtime";
14685
+ import { jsx as jsx122 } from "react/jsx-runtime";
13388
14686
  function SkipToMain() {
13389
- return /* @__PURE__ */ jsx117(
14687
+ return /* @__PURE__ */ jsx122(
13390
14688
  "a",
13391
14689
  {
13392
14690
  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`,
@@ -13398,7 +14696,7 @@ function SkipToMain() {
13398
14696
 
13399
14697
  // src/features/errors/not-found-error.tsx
13400
14698
  import { useRouter as useRouter3 } from "next/navigation";
13401
- import { jsx as jsx118, jsxs as jsxs76 } from "react/jsx-runtime";
14699
+ import { jsx as jsx123, jsxs as jsxs81 } from "react/jsx-runtime";
13402
14700
  function NotFoundError({
13403
14701
  className,
13404
14702
  embedded = false,
@@ -13416,8 +14714,8 @@ function NotFoundError({
13416
14714
  if (onDismiss) onDismiss();
13417
14715
  router.push("/");
13418
14716
  };
13419
- return /* @__PURE__ */ jsx118("div", { className: cn(embedded ? "min-h-96 w-full py-8" : "h-svh", className), children: /* @__PURE__ */ jsxs76("div", { className: "m-auto flex h-full w-full flex-col items-center justify-center gap-2", children: [
13420
- /* @__PURE__ */ jsx118(
14717
+ return /* @__PURE__ */ jsx123("div", { className: cn(embedded ? "min-h-96 w-full py-8" : "h-svh", className), children: /* @__PURE__ */ jsxs81("div", { className: "m-auto flex h-full w-full flex-col items-center justify-center gap-2", children: [
14718
+ /* @__PURE__ */ jsx123(
13421
14719
  "h1",
13422
14720
  {
13423
14721
  className: cn(
@@ -13427,31 +14725,31 @@ function NotFoundError({
13427
14725
  children: "404"
13428
14726
  }
13429
14727
  ),
13430
- /* @__PURE__ */ jsx118("span", { className: "font-medium", children: "Oops! Page Not Found :-(!" }),
13431
- /* @__PURE__ */ jsxs76("p", { className: "text-center text-muted-foreground", children: [
14728
+ /* @__PURE__ */ jsx123("span", { className: "font-medium", children: "Oops! Page Not Found :-(!" }),
14729
+ /* @__PURE__ */ jsxs81("p", { className: "text-center text-muted-foreground", children: [
13432
14730
  "It seems like the page you're looking for ",
13433
- /* @__PURE__ */ jsx118("br", {}),
14731
+ /* @__PURE__ */ jsx123("br", {}),
13434
14732
  "does not exist or might have been removed."
13435
14733
  ] }),
13436
- /* @__PURE__ */ jsxs76("div", { className: "mt-6 flex gap-4", children: [
13437
- /* @__PURE__ */ jsx118(Button, { variant: "outline", onClick: handleGoBack, children: "Go Back" }),
13438
- /* @__PURE__ */ jsx118(Button, { onClick: handleGoHome, children: "Back to Home" })
14734
+ /* @__PURE__ */ jsxs81("div", { className: "mt-6 flex gap-4", children: [
14735
+ /* @__PURE__ */ jsx123(Button, { variant: "outline", onClick: handleGoBack, children: "Go Back" }),
14736
+ /* @__PURE__ */ jsx123(Button, { onClick: handleGoHome, children: "Back to Home" })
13439
14737
  ] })
13440
14738
  ] }) });
13441
14739
  }
13442
14740
 
13443
14741
  // src/design-system/templates/authenticated-layout.tsx
13444
- import { Fragment as Fragment6, jsx as jsx119, jsxs as jsxs77 } from "react/jsx-runtime";
14742
+ import { Fragment as Fragment7, jsx as jsx124, jsxs as jsxs82 } from "react/jsx-runtime";
13445
14743
  function AuthenticatedLayoutContent({ children }) {
13446
14744
  const { showInlineNotFound, setShowInlineNotFound } = useLayout();
13447
14745
  const pathname = usePathname3();
13448
14746
  useEffect16(() => {
13449
14747
  setShowInlineNotFound(false);
13450
14748
  }, [pathname, setShowInlineNotFound]);
13451
- return /* @__PURE__ */ jsxs77(Fragment6, { children: [
13452
- /* @__PURE__ */ jsx119(SkipToMain, {}),
13453
- /* @__PURE__ */ jsx119(AppSidebar2, {}),
13454
- /* @__PURE__ */ jsx119(
14749
+ return /* @__PURE__ */ jsxs82(Fragment7, { children: [
14750
+ /* @__PURE__ */ jsx124(SkipToMain, {}),
14751
+ /* @__PURE__ */ jsx124(AppSidebar2, {}),
14752
+ /* @__PURE__ */ jsx124(
13455
14753
  SidebarInset,
13456
14754
  {
13457
14755
  className: cn(
@@ -13459,7 +14757,7 @@ function AuthenticatedLayoutContent({ children }) {
13459
14757
  "has-[[data-layout=fixed]]:h-svh has-data-[layout=fixed]:h-svh",
13460
14758
  "peer-data-[variant=inset]:has-data-[layout=fixed]:h-[calc(100svh-(var(--spacing)*4))]"
13461
14759
  ),
13462
- children: showInlineNotFound ? /* @__PURE__ */ jsx119(
14760
+ children: showInlineNotFound ? /* @__PURE__ */ jsx124(
13463
14761
  NotFoundError,
13464
14762
  {
13465
14763
  embedded: true,
@@ -13471,8 +14769,8 @@ function AuthenticatedLayoutContent({ children }) {
13471
14769
  ] });
13472
14770
  }
13473
14771
  function AuthenticatedLayout({ children }) {
13474
- const [defaultOpen, setDefaultOpen] = useState16(true);
13475
- const [isMounted, setIsMounted] = useState16(false);
14772
+ const [defaultOpen, setDefaultOpen] = useState18(true);
14773
+ const [isMounted, setIsMounted] = useState18(false);
13476
14774
  useEffect16(() => {
13477
14775
  setDefaultOpen(getCookie("sidebar_state") !== "false");
13478
14776
  setIsMounted(true);
@@ -13480,14 +14778,14 @@ function AuthenticatedLayout({ children }) {
13480
14778
  if (!isMounted) {
13481
14779
  return null;
13482
14780
  }
13483
- return /* @__PURE__ */ jsx119(SearchProvider, { children: /* @__PURE__ */ jsx119(LayoutProvider, { children: /* @__PURE__ */ jsx119(SidebarProvider, { defaultOpen, children: /* @__PURE__ */ jsx119(AuthenticatedLayoutContent, { children }) }) }) });
14781
+ return /* @__PURE__ */ jsx124(SearchProvider, { children: /* @__PURE__ */ jsx124(LayoutProvider, { children: /* @__PURE__ */ jsx124(SidebarProvider, { defaultOpen, children: /* @__PURE__ */ jsx124(AuthenticatedLayoutContent, { children }) }) }) });
13484
14782
  }
13485
14783
 
13486
14784
  // src/design-system/templates/header.tsx
13487
- import { useEffect as useEffect17, useState as useState17 } from "react";
13488
- import { jsx as jsx120, jsxs as jsxs78 } from "react/jsx-runtime";
14785
+ import { useEffect as useEffect17, useState as useState19 } from "react";
14786
+ import { jsx as jsx125, jsxs as jsxs83 } from "react/jsx-runtime";
13489
14787
  function Header2({ className, fixed, children, ...props }) {
13490
- const [offset, setOffset] = useState17(0);
14788
+ const [offset, setOffset] = useState19(0);
13491
14789
  useEffect17(() => {
13492
14790
  const onScroll = () => {
13493
14791
  setOffset(document.body.scrollTop || document.documentElement.scrollTop);
@@ -13497,7 +14795,7 @@ function Header2({ className, fixed, children, ...props }) {
13497
14795
  }, []);
13498
14796
  return (
13499
14797
  // Page header container: fixed mode me top par sticky behavior deta hai.
13500
- /* @__PURE__ */ jsx120(
14798
+ /* @__PURE__ */ jsx125(
13501
14799
  "header",
13502
14800
  {
13503
14801
  className: cn(
@@ -13507,7 +14805,7 @@ function Header2({ className, fixed, children, ...props }) {
13507
14805
  className
13508
14806
  ),
13509
14807
  ...props,
13510
- children: /* @__PURE__ */ jsxs78(
14808
+ children: /* @__PURE__ */ jsxs83(
13511
14809
  "div",
13512
14810
  {
13513
14811
  className: cn(
@@ -13516,7 +14814,7 @@ function Header2({ className, fixed, children, ...props }) {
13516
14814
  offset > 10 && fixed && "after:absolute after:inset-0 after:-z-10 after:bg-background/20 after:backdrop-blur-lg"
13517
14815
  ),
13518
14816
  children: [
13519
- /* @__PURE__ */ jsx120(AppLogo, { className: "shrink-0 md:hidden" }),
14817
+ /* @__PURE__ */ jsx125(AppLogo, { className: "shrink-0 md:hidden" }),
13520
14818
  children
13521
14819
  ]
13522
14820
  }
@@ -13527,9 +14825,9 @@ function Header2({ className, fixed, children, ...props }) {
13527
14825
  }
13528
14826
 
13529
14827
  // src/design-system/templates/main.tsx
13530
- import { jsx as jsx121 } from "react/jsx-runtime";
14828
+ import { jsx as jsx126 } from "react/jsx-runtime";
13531
14829
  function Main({ fixed, className, fluid, ...props }) {
13532
- return /* @__PURE__ */ jsx121(
14830
+ return /* @__PURE__ */ jsx126(
13533
14831
  "main",
13534
14832
  {
13535
14833
  "data-layout": fixed ? "fixed" : "auto",
@@ -13548,20 +14846,20 @@ function Main({ fixed, className, fluid, ...props }) {
13548
14846
 
13549
14847
  // src/design-system/templates/sidebar-search.tsx
13550
14848
  import { SearchIcon as SearchIcon7 } from "lucide-react";
13551
- import { jsx as jsx122, jsxs as jsxs79 } from "react/jsx-runtime";
14849
+ import { jsx as jsx127, jsxs as jsxs84 } from "react/jsx-runtime";
13552
14850
  function SidebarSearch() {
13553
14851
  const { setOpen } = useSearch();
13554
- return /* @__PURE__ */ jsx122(SidebarMenu, { children: /* @__PURE__ */ jsx122(SidebarMenuItem, { children: /* @__PURE__ */ jsxs79(
14852
+ return /* @__PURE__ */ jsx127(SidebarMenu, { children: /* @__PURE__ */ jsx127(SidebarMenuItem, { children: /* @__PURE__ */ jsxs84(
13555
14853
  SidebarMenuButton,
13556
14854
  {
13557
14855
  onClick: () => setOpen(true),
13558
14856
  tooltip: "Search (\u2318K)",
13559
14857
  className: "bg-sidebar-accent/50 hover:bg-sidebar-accent border border-sidebar-border/60 text-muted-foreground hover:text-foreground",
13560
14858
  children: [
13561
- /* @__PURE__ */ jsx122(SearchIcon7, { className: "size-4 shrink-0" }),
13562
- /* @__PURE__ */ jsx122("span", { className: "flex-1 text-left text-xs font-normal group-data-[collapsible=icon]:hidden", children: "Search..." }),
13563
- /* @__PURE__ */ jsxs79("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: [
13564
- /* @__PURE__ */ jsx122("span", { className: "text-[10px]", children: "\u2318" }),
14859
+ /* @__PURE__ */ jsx127(SearchIcon7, { className: "size-4 shrink-0" }),
14860
+ /* @__PURE__ */ jsx127("span", { className: "flex-1 text-left text-xs font-normal group-data-[collapsible=icon]:hidden", children: "Search..." }),
14861
+ /* @__PURE__ */ jsxs84("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: [
14862
+ /* @__PURE__ */ jsx127("span", { className: "text-[10px]", children: "\u2318" }),
13565
14863
  "K"
13566
14864
  ] })
13567
14865
  ]
@@ -13572,7 +14870,7 @@ function SidebarSearch() {
13572
14870
  // src/design-system/templates/top-nav.tsx
13573
14871
  import Link7 from "next/link";
13574
14872
  import { Menu as Menu2 } from "lucide-react";
13575
- import { Fragment as Fragment7, jsx as jsx123, jsxs as jsxs80 } from "react/jsx-runtime";
14873
+ import { Fragment as Fragment8, jsx as jsx128, jsxs as jsxs85 } from "react/jsx-runtime";
13576
14874
  function TopNav({ className, links, ...props }) {
13577
14875
  const renderLink = ({
13578
14876
  title,
@@ -13583,7 +14881,7 @@ function TopNav({ className, links, ...props }) {
13583
14881
  }) => {
13584
14882
  const className2 = `text-sm font-medium transition-colors hover:text-primary ${isActive ? "" : "text-muted-foreground"}`;
13585
14883
  if (onClick) {
13586
- return /* @__PURE__ */ jsx123(
14884
+ return /* @__PURE__ */ jsx128(
13587
14885
  "button",
13588
14886
  {
13589
14887
  type: "button",
@@ -13595,7 +14893,7 @@ function TopNav({ className, links, ...props }) {
13595
14893
  title
13596
14894
  );
13597
14895
  }
13598
- return /* @__PURE__ */ jsx123(
14896
+ return /* @__PURE__ */ jsx128(
13599
14897
  Link7,
13600
14898
  {
13601
14899
  href,
@@ -13606,9 +14904,9 @@ function TopNav({ className, links, ...props }) {
13606
14904
  title
13607
14905
  );
13608
14906
  };
13609
- return /* @__PURE__ */ jsxs80(Fragment7, { children: [
13610
- /* @__PURE__ */ jsxs80(DropdownMenu, { modal: false, children: [
13611
- /* @__PURE__ */ jsx123(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsxs80(
14907
+ return /* @__PURE__ */ jsxs85(Fragment8, { children: [
14908
+ /* @__PURE__ */ jsxs85(DropdownMenu, { modal: false, children: [
14909
+ /* @__PURE__ */ jsx128(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsxs85(
13612
14910
  Button,
13613
14911
  {
13614
14912
  size: "icon",
@@ -13618,18 +14916,18 @@ function TopNav({ className, links, ...props }) {
13618
14916
  className
13619
14917
  ),
13620
14918
  children: [
13621
- /* @__PURE__ */ jsx123(Menu2, {}),
13622
- /* @__PURE__ */ jsx123("span", { className: "sr-only", children: "Toggle navigation menu" })
14919
+ /* @__PURE__ */ jsx128(Menu2, {}),
14920
+ /* @__PURE__ */ jsx128("span", { className: "sr-only", children: "Toggle navigation menu" })
13623
14921
  ]
13624
14922
  }
13625
14923
  ) }),
13626
- /* @__PURE__ */ jsx123(DropdownMenuContent, { side: "bottom", align: "start", children: links.map((link) => /* @__PURE__ */ jsx123(
14924
+ /* @__PURE__ */ jsx128(DropdownMenuContent, { side: "bottom", align: "start", children: links.map((link) => /* @__PURE__ */ jsx128(
13627
14925
  DropdownMenuItem,
13628
14926
  {
13629
14927
  disabled: link.disabled,
13630
14928
  onClick: link.onClick,
13631
14929
  asChild: !link.onClick,
13632
- children: link.onClick ? /* @__PURE__ */ jsx123("span", { className: !link.isActive ? "text-muted-foreground" : "", children: link.title }) : /* @__PURE__ */ jsx123(
14930
+ children: link.onClick ? /* @__PURE__ */ jsx128("span", { className: !link.isActive ? "text-muted-foreground" : "", children: link.title }) : /* @__PURE__ */ jsx128(
13633
14931
  Link7,
13634
14932
  {
13635
14933
  href: link.href,
@@ -13642,7 +14940,7 @@ function TopNav({ className, links, ...props }) {
13642
14940
  link.title
13643
14941
  )) })
13644
14942
  ] }),
13645
- /* @__PURE__ */ jsx123(
14943
+ /* @__PURE__ */ jsx128(
13646
14944
  "nav",
13647
14945
  {
13648
14946
  className: cn(
@@ -13824,7 +15122,10 @@ export {
13824
15122
  FieldSeparator,
13825
15123
  FieldSet,
13826
15124
  FieldTitle,
15125
+ FileCardItem,
15126
+ FileUploadForm,
13827
15127
  FilterBar,
15128
+ FolderTreeItem,
13828
15129
  Form,
13829
15130
  FormControl,
13830
15131
  FormDescription,
@@ -13977,6 +15278,7 @@ export {
13977
15278
  Spinner,
13978
15279
  Stats01,
13979
15280
  StatusBadge,
15281
+ StorageStatCard,
13980
15282
  Switch,
13981
15283
  Table,
13982
15284
  TableBody,
@@ -14004,12 +15306,16 @@ export {
14004
15306
  TooltipTrigger,
14005
15307
  TopNav,
14006
15308
  TypingIndicator,
15309
+ UserFileCardsView,
14007
15310
  WizardTemplate,
14008
15311
  WorkspaceTemplate,
14009
15312
  badgeVariants,
14010
15313
  buttonGroupVariants,
14011
15314
  buttonVariants,
14012
15315
  downloadQrCode,
15316
+ formatBytes,
15317
+ formatTimeAgo,
15318
+ getFileCategoryTheme,
14013
15319
  navigationMenuTriggerStyle,
14014
15320
  sidebarData2 as sidebarData,
14015
15321
  statusBadgeVariants,