@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.js +1737 -466
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +1743 -437
- package/dist/index.mjs.map +1 -1
- package/dist/pages.js +6365 -6279
- package/dist/pages.js.map +1 -1
- package/dist/pages.mjs +6265 -6178
- package/dist/pages.mjs.map +1 -1
- package/dist/server.js +6 -3
- package/dist/server.js.map +1 -1
- package/dist/server.mjs +6 -3
- package/dist/server.mjs.map +1 -1
- package/dist/services.js +6 -1
- package/dist/services.js.map +1 -1
- package/dist/services.mjs +6 -1
- package/dist/services.mjs.map +1 -1
- package/dist/stores.js +1 -0
- package/dist/stores.js.map +1 -1
- package/dist/stores.mjs +1 -0
- package/dist/stores.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.mjs
CHANGED
|
@@ -11089,8 +11089,1305 @@ function AiChatHeader({
|
|
|
11089
11089
|
);
|
|
11090
11090
|
}
|
|
11091
11091
|
|
|
11092
|
-
// src/design-system/
|
|
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__ */
|
|
11114
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
11137
|
-
footer && /* @__PURE__ */
|
|
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
|
|
11143
|
-
import { jsx as
|
|
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__ */
|
|
11159
|
-
/* @__PURE__ */
|
|
11160
|
-
onBack && /* @__PURE__ */
|
|
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__ */
|
|
12465
|
+
/* @__PURE__ */ jsx100(ArrowLeft5, { className: "h-3.5 w-3.5" }),
|
|
11169
12466
|
backLabel
|
|
11170
12467
|
]
|
|
11171
12468
|
}
|
|
11172
12469
|
),
|
|
11173
|
-
/* @__PURE__ */
|
|
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__ */
|
|
11185
|
-
/* @__PURE__ */
|
|
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__ */
|
|
11194
|
-
sidebar && /* @__PURE__ */
|
|
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
|
|
11203
|
-
import { jsx as
|
|
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__ */
|
|
11223
|
-
/* @__PURE__ */
|
|
11224
|
-
onBack && /* @__PURE__ */
|
|
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__ */
|
|
12530
|
+
/* @__PURE__ */ jsx101(ArrowLeft6, { className: "h-3.5 w-3.5" }),
|
|
11234
12531
|
backLabel
|
|
11235
12532
|
]
|
|
11236
12533
|
}
|
|
11237
12534
|
),
|
|
11238
|
-
/* @__PURE__ */
|
|
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__ */
|
|
11249
|
-
/* @__PURE__ */
|
|
11250
|
-
/* @__PURE__ */
|
|
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__ */
|
|
11259
|
-
/* @__PURE__ */
|
|
11260
|
-
onCancel && /* @__PURE__ */
|
|
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__ */
|
|
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
|
|
11281
|
-
import { jsx as
|
|
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__ */
|
|
11303
|
-
/* @__PURE__ */
|
|
11304
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
12630
|
+
children: isCompleted ? /* @__PURE__ */ jsx102(Check7, { className: "h-4 w-4" }) : idx + 1
|
|
11334
12631
|
}
|
|
11335
12632
|
),
|
|
11336
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
11364
|
-
/* @__PURE__ */
|
|
11365
|
-
/* @__PURE__ */
|
|
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__ */
|
|
12670
|
+
/* @__PURE__ */ jsx102(ChevronLeft3, { className: "mr-1 h-4 w-4" }),
|
|
11374
12671
|
previousLabel
|
|
11375
12672
|
]
|
|
11376
12673
|
}
|
|
11377
12674
|
),
|
|
11378
|
-
isLastStep ? /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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
|
|
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__ */
|
|
11418
|
-
/* @__PURE__ */
|
|
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__ */
|
|
11429
|
-
charts && /* @__PURE__ */
|
|
11430
|
-
activity && /* @__PURE__ */
|
|
11431
|
-
children && /* @__PURE__ */
|
|
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
|
|
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__ */
|
|
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__ */
|
|
11456
|
-
/* @__PURE__ */
|
|
11457
|
-
leftSidebar && /* @__PURE__ */
|
|
11458
|
-
/* @__PURE__ */
|
|
11459
|
-
rightSidebar && /* @__PURE__ */
|
|
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__ */
|
|
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
|
|
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
|
|
11474
|
-
import { jsx as
|
|
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] =
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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
|
|
11518
|
-
function
|
|
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__ */
|
|
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__ */
|
|
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
|
|
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__ */
|
|
11729
|
-
/* @__PURE__ */
|
|
11730
|
-
/* @__PURE__ */
|
|
11731
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
11743
|
-
unreadCount > 0 && /* @__PURE__ */
|
|
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__ */
|
|
11749
|
-
/* @__PURE__ */
|
|
11750
|
-
/* @__PURE__ */
|
|
11751
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
11763
|
-
unreadCount > 0 && /* @__PURE__ */
|
|
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
|
|
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__ */
|
|
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__ */
|
|
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
|
|
11910
|
-
import { jsx as
|
|
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] =
|
|
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] =
|
|
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] =
|
|
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__ */
|
|
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
|
|
11982
|
-
import { jsx as
|
|
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__ */
|
|
11987
|
-
/* @__PURE__ */
|
|
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__ */
|
|
11996
|
-
title === "Menu" && !isMobile && /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
13311
|
+
children: /* @__PURE__ */ jsx110(X6, { className: "size-4", "aria-hidden": "true" })
|
|
12014
13312
|
}
|
|
12015
13313
|
)
|
|
12016
13314
|
]
|
|
12017
13315
|
}
|
|
12018
13316
|
),
|
|
12019
|
-
/* @__PURE__ */
|
|
13317
|
+
/* @__PURE__ */ jsx110(SidebarMenu, { children: items.map((item) => {
|
|
12020
13318
|
const key = `${item.title}-${item.url}`;
|
|
12021
13319
|
if (!item.items)
|
|
12022
|
-
return /* @__PURE__ */
|
|
13320
|
+
return /* @__PURE__ */ jsx110(SidebarMenuLink, { item, href }, key);
|
|
12023
13321
|
if (item.title === "Settings" && item.items.length === 0)
|
|
12024
|
-
return /* @__PURE__ */
|
|
13322
|
+
return /* @__PURE__ */ jsx110(SidebarMenuSettings, { item }, key);
|
|
12025
13323
|
if (state === "collapsed" && !isMobile)
|
|
12026
|
-
return /* @__PURE__ */
|
|
12027
|
-
return /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
12053
|
-
/* @__PURE__ */
|
|
12054
|
-
item.badge && /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
12075
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
12093
|
-
/* @__PURE__ */
|
|
12094
|
-
item.icon && /* @__PURE__ */
|
|
12095
|
-
/* @__PURE__ */
|
|
12096
|
-
item.badge && /* @__PURE__ */
|
|
12097
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
12114
|
-
/* @__PURE__ */
|
|
12115
|
-
subItem.badge && /* @__PURE__ */
|
|
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__ */
|
|
12130
|
-
/* @__PURE__ */
|
|
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__ */
|
|
12137
|
-
/* @__PURE__ */
|
|
12138
|
-
item.badge && /* @__PURE__ */
|
|
12139
|
-
/* @__PURE__ */
|
|
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__ */
|
|
12144
|
-
/* @__PURE__ */
|
|
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__ */
|
|
12150
|
-
item.items.map((sub) => /* @__PURE__ */
|
|
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__ */
|
|
12157
|
-
/* @__PURE__ */
|
|
12158
|
-
sub.badge && /* @__PURE__ */
|
|
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
|
|
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__ */
|
|
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__ */
|
|
12184
|
-
/* @__PURE__ */
|
|
12185
|
-
/* @__PURE__ */
|
|
12186
|
-
/* @__PURE__ */
|
|
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
|
|
13500
|
+
import { useState as useState16 } from "react";
|
|
12203
13501
|
function useDialogState(initialState2 = null) {
|
|
12204
|
-
const [open, _setOpen] =
|
|
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
|
|
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
|
|
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
|
|
13513
|
+
import { jsx as jsx112, jsxs as jsxs71 } from "react/jsx-runtime";
|
|
12216
13514
|
function IconThemeDark(props) {
|
|
12217
|
-
return /* @__PURE__ */
|
|
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__ */
|
|
12226
|
-
/* @__PURE__ */
|
|
12227
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
12237
|
-
/* @__PURE__ */
|
|
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__ */
|
|
12245
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
12295
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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
|
|
13619
|
+
import { jsx as jsx113, jsxs as jsxs72 } from "react/jsx-runtime";
|
|
12322
13620
|
function IconThemeLight(props) {
|
|
12323
|
-
return /* @__PURE__ */
|
|
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__ */
|
|
12332
|
-
/* @__PURE__ */
|
|
12333
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
12343
|
-
/* @__PURE__ */
|
|
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__ */
|
|
12351
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
12401
|
-
/* @__PURE__ */
|
|
12402
|
-
/* @__PURE__ */
|
|
12403
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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
|
|
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__ */
|
|
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__ */
|
|
12442
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
12544
|
-
/* @__PURE__ */
|
|
12545
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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
|
|
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__ */
|
|
12585
|
-
/* @__PURE__ */
|
|
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__ */
|
|
13890
|
+
children: /* @__PURE__ */ jsx115(Settings3, { "aria-hidden": "true" })
|
|
12593
13891
|
}
|
|
12594
13892
|
) }),
|
|
12595
|
-
/* @__PURE__ */
|
|
12596
|
-
/* @__PURE__ */
|
|
12597
|
-
/* @__PURE__ */
|
|
12598
|
-
/* @__PURE__ */
|
|
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__ */
|
|
12601
|
-
/* @__PURE__ */
|
|
12602
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
12710
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
14041
|
+
].map((item) => /* @__PURE__ */ jsx115(RadioGroupItem2, { item, isTheme: true }, item.value))
|
|
12744
14042
|
}
|
|
12745
14043
|
),
|
|
12746
|
-
/* @__PURE__ */
|
|
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] =
|
|
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__ */
|
|
12756
|
-
/* @__PURE__ */
|
|
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__ */
|
|
12766
|
-
/* @__PURE__ */
|
|
12767
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
12797
|
-
filtered.map((ct) => /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
12821
|
-
/* @__PURE__ */
|
|
12822
|
-
ct.category === "tweakcn" && /* @__PURE__ */
|
|
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__ */
|
|
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
|
|
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__ */
|
|
12854
|
-
/* @__PURE__ */
|
|
12855
|
-
/* @__PURE__ */
|
|
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__ */
|
|
12863
|
-
/* @__PURE__ */
|
|
12864
|
-
/* @__PURE__ */
|
|
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__ */
|
|
12867
|
-
/* @__PURE__ */
|
|
12868
|
-
/* @__PURE__ */
|
|
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__ */
|
|
14168
|
+
/* @__PURE__ */ jsx116(ChevronsUpDown, { className: "ml-auto size-4 shrink-0" })
|
|
12871
14169
|
]
|
|
12872
14170
|
}
|
|
12873
14171
|
) }),
|
|
12874
|
-
/* @__PURE__ */
|
|
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__ */
|
|
12883
|
-
/* @__PURE__ */
|
|
12884
|
-
/* @__PURE__ */
|
|
12885
|
-
/* @__PURE__ */
|
|
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__ */
|
|
12888
|
-
/* @__PURE__ */
|
|
12889
|
-
/* @__PURE__ */
|
|
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__ */
|
|
12893
|
-
/* @__PURE__ */
|
|
14190
|
+
/* @__PURE__ */ jsx116(DropdownMenuSeparator, {}),
|
|
14191
|
+
/* @__PURE__ */ jsx116(
|
|
12894
14192
|
ConfigDrawer,
|
|
12895
14193
|
{
|
|
12896
|
-
trigger: /* @__PURE__ */
|
|
12897
|
-
/* @__PURE__ */
|
|
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__ */
|
|
14200
|
+
/* @__PURE__ */ jsx116(
|
|
12903
14201
|
ConfigDrawer,
|
|
12904
14202
|
{
|
|
12905
|
-
trigger: /* @__PURE__ */
|
|
12906
|
-
/* @__PURE__ */
|
|
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__ */
|
|
12912
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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
|
|
14230
|
+
import { jsx as jsx117, jsxs as jsxs76 } from "react/jsx-runtime";
|
|
12933
14231
|
function AppSidebar() {
|
|
12934
14232
|
const { collapsible } = useLayout();
|
|
12935
|
-
return /* @__PURE__ */
|
|
12936
|
-
/* @__PURE__ */
|
|
12937
|
-
/* @__PURE__ */
|
|
12938
|
-
/* @__PURE__ */
|
|
12939
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
12958
|
-
/* @__PURE__ */
|
|
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
|
|
12965
|
-
import { jsx as
|
|
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__ */
|
|
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__ */
|
|
12975
|
-
/* @__PURE__ */
|
|
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__ */
|
|
12983
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
13013
|
-
/* @__PURE__ */
|
|
13014
|
-
/* @__PURE__ */
|
|
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
|
|
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
|
|
13031
|
-
import { jsx as
|
|
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__ */
|
|
13036
|
-
/* @__PURE__ */
|
|
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__ */
|
|
13045
|
-
title === "Menu" && !isMobile && /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
14360
|
+
children: /* @__PURE__ */ jsx119(X8, { className: "size-4", "aria-hidden": "true" })
|
|
13063
14361
|
}
|
|
13064
14362
|
)
|
|
13065
14363
|
]
|
|
13066
14364
|
}
|
|
13067
14365
|
),
|
|
13068
|
-
/* @__PURE__ */
|
|
14366
|
+
/* @__PURE__ */ jsx119(SidebarMenu, { children: items.map((item) => {
|
|
13069
14367
|
const key = `${item.title}-${item.url}`;
|
|
13070
14368
|
if (!item.items)
|
|
13071
|
-
return /* @__PURE__ */
|
|
14369
|
+
return /* @__PURE__ */ jsx119(SidebarMenuLink2, { item, href }, key);
|
|
13072
14370
|
if (item.title === "Settings" && item.items.length === 0)
|
|
13073
|
-
return /* @__PURE__ */
|
|
14371
|
+
return /* @__PURE__ */ jsx119(SidebarMenuSettings2, { item }, key);
|
|
13074
14372
|
if (state === "collapsed" && !isMobile)
|
|
13075
|
-
return /* @__PURE__ */
|
|
13076
|
-
return /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
13102
|
-
/* @__PURE__ */
|
|
13103
|
-
item.badge && /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
13124
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
13142
|
-
/* @__PURE__ */
|
|
13143
|
-
item.icon && /* @__PURE__ */
|
|
13144
|
-
/* @__PURE__ */
|
|
13145
|
-
item.badge && /* @__PURE__ */
|
|
13146
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
13163
|
-
/* @__PURE__ */
|
|
13164
|
-
subItem.badge && /* @__PURE__ */
|
|
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__ */
|
|
13179
|
-
/* @__PURE__ */
|
|
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__ */
|
|
13186
|
-
/* @__PURE__ */
|
|
13187
|
-
item.badge && /* @__PURE__ */
|
|
13188
|
-
/* @__PURE__ */
|
|
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__ */
|
|
13193
|
-
/* @__PURE__ */
|
|
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__ */
|
|
13199
|
-
item.items.map((sub) => /* @__PURE__ */
|
|
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__ */
|
|
13206
|
-
/* @__PURE__ */
|
|
13207
|
-
sub.badge && /* @__PURE__ */
|
|
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
|
|
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
|
|
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__ */
|
|
13245
|
-
/* @__PURE__ */
|
|
13246
|
-
/* @__PURE__ */
|
|
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__ */
|
|
13254
|
-
/* @__PURE__ */
|
|
13255
|
-
/* @__PURE__ */
|
|
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__ */
|
|
13258
|
-
/* @__PURE__ */
|
|
13259
|
-
/* @__PURE__ */
|
|
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__ */
|
|
14559
|
+
/* @__PURE__ */ jsx120(ChevronsUpDown2, { className: "ml-auto size-4 shrink-0" })
|
|
13262
14560
|
]
|
|
13263
14561
|
}
|
|
13264
14562
|
) }),
|
|
13265
|
-
/* @__PURE__ */
|
|
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__ */
|
|
13274
|
-
/* @__PURE__ */
|
|
13275
|
-
/* @__PURE__ */
|
|
13276
|
-
/* @__PURE__ */
|
|
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__ */
|
|
13279
|
-
/* @__PURE__ */
|
|
13280
|
-
/* @__PURE__ */
|
|
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__ */
|
|
13284
|
-
/* @__PURE__ */
|
|
13285
|
-
/* @__PURE__ */
|
|
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__ */
|
|
13289
|
-
/* @__PURE__ */
|
|
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__ */
|
|
13293
|
-
/* @__PURE__ */
|
|
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__ */
|
|
13297
|
-
/* @__PURE__ */
|
|
13298
|
-
/* @__PURE__ */
|
|
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__ */
|
|
13302
|
-
/* @__PURE__ */
|
|
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__ */
|
|
14603
|
+
/* @__PURE__ */ jsx120(
|
|
13306
14604
|
ConfigDrawer,
|
|
13307
14605
|
{
|
|
13308
|
-
trigger: /* @__PURE__ */
|
|
13309
|
-
/* @__PURE__ */
|
|
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__ */
|
|
13315
|
-
/* @__PURE__ */
|
|
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__ */
|
|
13319
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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
|
|
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__ */
|
|
13371
|
-
/* @__PURE__ */
|
|
13372
|
-
/* @__PURE__ */
|
|
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__ */
|
|
13381
|
-
/* @__PURE__ */
|
|
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
|
|
14685
|
+
import { jsx as jsx122 } from "react/jsx-runtime";
|
|
13388
14686
|
function SkipToMain() {
|
|
13389
|
-
return /* @__PURE__ */
|
|
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
|
|
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__ */
|
|
13420
|
-
/* @__PURE__ */
|
|
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__ */
|
|
13431
|
-
/* @__PURE__ */
|
|
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__ */
|
|
14731
|
+
/* @__PURE__ */ jsx123("br", {}),
|
|
13434
14732
|
"does not exist or might have been removed."
|
|
13435
14733
|
] }),
|
|
13436
|
-
/* @__PURE__ */
|
|
13437
|
-
/* @__PURE__ */
|
|
13438
|
-
/* @__PURE__ */
|
|
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
|
|
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__ */
|
|
13452
|
-
/* @__PURE__ */
|
|
13453
|
-
/* @__PURE__ */
|
|
13454
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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] =
|
|
13475
|
-
const [isMounted, setIsMounted] =
|
|
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__ */
|
|
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
|
|
13488
|
-
import { jsx as
|
|
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] =
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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
|
|
14828
|
+
import { jsx as jsx126 } from "react/jsx-runtime";
|
|
13531
14829
|
function Main({ fixed, className, fluid, ...props }) {
|
|
13532
|
-
return /* @__PURE__ */
|
|
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
|
|
14849
|
+
import { jsx as jsx127, jsxs as jsxs84 } from "react/jsx-runtime";
|
|
13552
14850
|
function SidebarSearch() {
|
|
13553
14851
|
const { setOpen } = useSearch();
|
|
13554
|
-
return /* @__PURE__ */
|
|
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__ */
|
|
13562
|
-
/* @__PURE__ */
|
|
13563
|
-
/* @__PURE__ */
|
|
13564
|
-
/* @__PURE__ */
|
|
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
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
13610
|
-
/* @__PURE__ */
|
|
13611
|
-
/* @__PURE__ */
|
|
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__ */
|
|
13622
|
-
/* @__PURE__ */
|
|
14919
|
+
/* @__PURE__ */ jsx128(Menu2, {}),
|
|
14920
|
+
/* @__PURE__ */ jsx128("span", { className: "sr-only", children: "Toggle navigation menu" })
|
|
13623
14921
|
]
|
|
13624
14922
|
}
|
|
13625
14923
|
) }),
|
|
13626
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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,
|