@amogads/ui 1.1.5 → 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 +1154 -1469
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +1071 -1397
- package/dist/index.mjs.map +1 -1
- package/dist/pages.js +2070 -2205
- package/dist/pages.js.map +1 -1
- package/dist/pages.mjs +1378 -1512
- 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
|
@@ -11090,259 +11090,212 @@ function AiChatHeader({
|
|
|
11090
11090
|
}
|
|
11091
11091
|
|
|
11092
11092
|
// src/design-system/components/files/file-card-item.tsx
|
|
11093
|
-
import React19 from "react";
|
|
11094
11093
|
import {
|
|
11095
|
-
Eye as Eye3,
|
|
11096
|
-
Download as Download2,
|
|
11097
11094
|
FileText as FileText3,
|
|
11098
11095
|
Image as ImageIcon,
|
|
11099
|
-
Film,
|
|
11100
11096
|
FileSpreadsheet,
|
|
11101
|
-
|
|
11102
|
-
|
|
11097
|
+
Film,
|
|
11098
|
+
Archive as Archive4,
|
|
11099
|
+
File,
|
|
11100
|
+
Eye as Eye3,
|
|
11101
|
+
Download as Download2,
|
|
11103
11102
|
MoreHorizontal as MoreHorizontal4,
|
|
11104
11103
|
Copy as Copy3,
|
|
11104
|
+
Share2 as Share22,
|
|
11105
11105
|
Trash2 as Trash26,
|
|
11106
|
-
|
|
11107
|
-
Share2 as Share22
|
|
11106
|
+
Edit2
|
|
11108
11107
|
} from "lucide-react";
|
|
11109
|
-
import {
|
|
11110
|
-
|
|
11111
|
-
function getFileCategoryTheme(category) {
|
|
11112
|
-
switch (category) {
|
|
11113
|
-
case "Pdf":
|
|
11114
|
-
return {
|
|
11115
|
-
bg: "bg-red-500/10 dark:bg-red-950/40",
|
|
11116
|
-
text: "text-red-600 dark:text-red-400",
|
|
11117
|
-
border: "border-red-200/40 dark:border-red-900/40",
|
|
11118
|
-
gradient: "from-red-500/20 to-orange-500/10"
|
|
11119
|
-
};
|
|
11120
|
-
case "Doc":
|
|
11121
|
-
return {
|
|
11122
|
-
bg: "bg-blue-500/10 dark:bg-blue-950/40",
|
|
11123
|
-
text: "text-blue-600 dark:text-blue-400",
|
|
11124
|
-
border: "border-blue-200/40 dark:border-blue-900/40",
|
|
11125
|
-
gradient: "from-blue-500/20 to-indigo-500/10"
|
|
11126
|
-
};
|
|
11127
|
-
case "Xls":
|
|
11128
|
-
case "Csv":
|
|
11129
|
-
return {
|
|
11130
|
-
bg: "bg-emerald-500/10 dark:bg-emerald-950/40",
|
|
11131
|
-
text: "text-emerald-600 dark:text-emerald-400",
|
|
11132
|
-
border: "border-emerald-200/40 dark:border-emerald-900/40",
|
|
11133
|
-
gradient: "from-emerald-500/20 to-teal-500/10"
|
|
11134
|
-
};
|
|
11135
|
-
case "Images":
|
|
11136
|
-
return {
|
|
11137
|
-
bg: "bg-amber-500/10 dark:bg-amber-950/40",
|
|
11138
|
-
text: "text-amber-600 dark:text-amber-400",
|
|
11139
|
-
border: "border-amber-200/40 dark:border-amber-900/40",
|
|
11140
|
-
gradient: "from-amber-500/20 to-yellow-500/10"
|
|
11141
|
-
};
|
|
11142
|
-
case "Videos":
|
|
11143
|
-
return {
|
|
11144
|
-
bg: "bg-purple-500/10 dark:bg-purple-950/40",
|
|
11145
|
-
text: "text-purple-600 dark:text-purple-400",
|
|
11146
|
-
border: "border-purple-200/40 dark:border-purple-900/40",
|
|
11147
|
-
gradient: "from-purple-500/20 to-pink-500/10"
|
|
11148
|
-
};
|
|
11149
|
-
case "Zip":
|
|
11150
|
-
return {
|
|
11151
|
-
bg: "bg-orange-500/10 dark:bg-orange-950/40",
|
|
11152
|
-
text: "text-orange-600 dark:text-orange-400",
|
|
11153
|
-
border: "border-orange-200/40 dark:border-orange-900/40",
|
|
11154
|
-
gradient: "from-orange-500/20 to-amber-500/10"
|
|
11155
|
-
};
|
|
11156
|
-
default:
|
|
11157
|
-
return {
|
|
11158
|
-
bg: "bg-indigo-500/10 dark:bg-indigo-950/40",
|
|
11159
|
-
text: "text-indigo-600 dark:text-indigo-400",
|
|
11160
|
-
border: "border-indigo-200/40 dark:border-indigo-900/40",
|
|
11161
|
-
gradient: "from-indigo-500/20 to-purple-500/10"
|
|
11162
|
-
};
|
|
11163
|
-
}
|
|
11164
|
-
}
|
|
11165
|
-
function formatBytes(bytes) {
|
|
11108
|
+
import { jsx as jsx94, jsxs as jsxs56 } from "react/jsx-runtime";
|
|
11109
|
+
function formatBytes(bytes, decimals = 1) {
|
|
11166
11110
|
if (!bytes || bytes === 0) return "0 B";
|
|
11167
11111
|
const k = 1024;
|
|
11112
|
+
const dm = decimals < 0 ? 0 : decimals;
|
|
11168
11113
|
const sizes = ["B", "KB", "MB", "GB", "TB"];
|
|
11169
11114
|
const i = Math.floor(Math.log(bytes) / Math.log(k));
|
|
11170
|
-
return
|
|
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
|
+
}
|
|
11171
11197
|
}
|
|
11172
11198
|
function FileCardItem({
|
|
11173
11199
|
file,
|
|
11174
|
-
isSelected = false,
|
|
11175
11200
|
viewMode = "grid",
|
|
11201
|
+
isSelected = false,
|
|
11176
11202
|
onSelect,
|
|
11177
11203
|
onPreview,
|
|
11178
11204
|
onDownload,
|
|
11205
|
+
onDelete,
|
|
11179
11206
|
onCopyLink,
|
|
11180
11207
|
onRename,
|
|
11181
|
-
onDelete,
|
|
11182
11208
|
onShare,
|
|
11183
11209
|
className
|
|
11184
11210
|
}) {
|
|
11185
11211
|
const theme = getFileCategoryTheme(file.category);
|
|
11186
|
-
const isImage =
|
|
11187
|
-
const isVideo = file.category === "Videos" || /\.(mp4|webm|mov|mkv)$/i.test(file.fileName);
|
|
11188
|
-
const isPdf = file.category === "Pdf" || /\.pdf$/i.test(file.fileName);
|
|
11189
|
-
const isSheet = file.category === "Xls" || file.category === "Csv" || /\.(xls|xlsx|csv)$/i.test(file.fileName);
|
|
11190
|
-
const isZip = file.category === "Zip" || /\.(zip|rar|7z|tar|gz)$/i.test(file.fileName);
|
|
11191
|
-
const updatedTimeDisplay = React19.useMemo(() => {
|
|
11192
|
-
if (!file.updatedAt) return "Recently";
|
|
11193
|
-
try {
|
|
11194
|
-
const d = new Date(file.updatedAt);
|
|
11195
|
-
return formatDistanceToNow(d, { addSuffix: true });
|
|
11196
|
-
} catch {
|
|
11197
|
-
return "Recently";
|
|
11198
|
-
}
|
|
11199
|
-
}, [file.updatedAt]);
|
|
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");
|
|
11200
11213
|
if (viewMode === "table") {
|
|
11201
11214
|
return /* @__PURE__ */ jsxs56(
|
|
11202
11215
|
"tr",
|
|
11203
11216
|
{
|
|
11204
|
-
onClick: () => onSelect?.(file),
|
|
11205
11217
|
className: cn(
|
|
11206
|
-
"group border-b border-border/
|
|
11218
|
+
"group border-b border-border/60 transition-colors hover:bg-muted/40 text-xs",
|
|
11207
11219
|
isSelected && "bg-primary/5",
|
|
11208
11220
|
className
|
|
11209
11221
|
),
|
|
11210
11222
|
children: [
|
|
11211
|
-
/* @__PURE__ */ jsx94("td", { className: "py-
|
|
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: [
|
|
11212
11224
|
/* @__PURE__ */ jsx94(
|
|
11213
11225
|
"div",
|
|
11214
11226
|
{
|
|
11215
11227
|
className: cn(
|
|
11216
|
-
"flex h-
|
|
11217
|
-
theme.
|
|
11218
|
-
theme.
|
|
11228
|
+
"flex h-7 w-7 items-center justify-center rounded-lg shrink-0",
|
|
11229
|
+
theme.bgColor,
|
|
11230
|
+
theme.iconColor
|
|
11219
11231
|
),
|
|
11220
|
-
children:
|
|
11232
|
+
children: /* @__PURE__ */ jsx94(theme.icon, { className: "h-3.5 w-3.5" })
|
|
11221
11233
|
}
|
|
11222
11234
|
),
|
|
11223
|
-
/* @__PURE__ */
|
|
11224
|
-
/* @__PURE__ */ jsx94("p", { className: "font-semibold text-xs text-foreground truncate max-w-[240px] sm:max-w-xs", children: file.fileName }),
|
|
11225
|
-
/* @__PURE__ */ jsx94("p", { className: "text-[11px] text-muted-foreground", children: file.folderPath || file.section || "General" })
|
|
11226
|
-
] })
|
|
11235
|
+
/* @__PURE__ */ jsx94("span", { className: "font-semibold text-foreground truncate max-w-[200px]", children: file.fileName })
|
|
11227
11236
|
] }) }),
|
|
11228
|
-
/* @__PURE__ */ jsx94("td", { className: "py-
|
|
11229
|
-
|
|
11230
|
-
|
|
11231
|
-
|
|
11232
|
-
|
|
11233
|
-
|
|
11234
|
-
}
|
|
11235
|
-
) }),
|
|
11236
|
-
/* @__PURE__ */ jsx94("td", { className: "py-3 px-4 text-xs text-muted-foreground font-mono", children: formatBytes(file.fileSize) }),
|
|
11237
|
-
/* @__PURE__ */ jsx94("td", { className: "py-3 px-4 text-xs text-muted-foreground hidden sm:table-cell", children: updatedTimeDisplay }),
|
|
11238
|
-
/* @__PURE__ */ jsx94("td", { className: "py-3 px-4 text-right", children: /* @__PURE__ */ jsxs56("div", { className: "flex items-center justify-end gap-1", children: [
|
|
11239
|
-
/* @__PURE__ */ jsx94(
|
|
11240
|
-
"button",
|
|
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,
|
|
11241
11243
|
{
|
|
11242
|
-
|
|
11243
|
-
|
|
11244
|
-
|
|
11245
|
-
|
|
11246
|
-
|
|
11247
|
-
|
|
11248
|
-
|
|
11249
|
-
|
|
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
|
+
]
|
|
11250
11252
|
}
|
|
11251
11253
|
),
|
|
11252
11254
|
/* @__PURE__ */ jsx94(
|
|
11253
|
-
|
|
11255
|
+
Button,
|
|
11254
11256
|
{
|
|
11255
|
-
|
|
11256
|
-
|
|
11257
|
-
|
|
11258
|
-
|
|
11259
|
-
}
|
|
11260
|
-
className: "p-1.5 rounded-lg hover:bg-muted text-muted-foreground hover:text-foreground transition-colors cursor-pointer",
|
|
11261
|
-
title: "Download",
|
|
11262
|
-
children: /* @__PURE__ */ jsx94(Download2, { className: "h-4 w-4" })
|
|
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" })
|
|
11263
11262
|
}
|
|
11264
11263
|
),
|
|
11265
11264
|
/* @__PURE__ */ jsxs56(DropdownMenu, { children: [
|
|
11266
11265
|
/* @__PURE__ */ jsx94(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsx94(
|
|
11267
|
-
|
|
11266
|
+
Button,
|
|
11268
11267
|
{
|
|
11269
|
-
|
|
11270
|
-
|
|
11271
|
-
className: "
|
|
11272
|
-
|
|
11273
|
-
children: /* @__PURE__ */ jsx94(MoreHorizontal4, { className: "h-4 w-4" })
|
|
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" })
|
|
11274
11272
|
}
|
|
11275
11273
|
) }),
|
|
11276
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, {}),
|
|
11277
11288
|
/* @__PURE__ */ jsxs56(
|
|
11278
11289
|
DropdownMenuItem,
|
|
11279
11290
|
{
|
|
11280
|
-
onClick: () =>
|
|
11281
|
-
className: "
|
|
11282
|
-
children: [
|
|
11283
|
-
/* @__PURE__ */ jsx94(Eye3, { className: "h-3.5 w-3.5 text-blue-500" }),
|
|
11284
|
-
/* @__PURE__ */ jsx94("span", { children: "Preview" })
|
|
11285
|
-
]
|
|
11286
|
-
}
|
|
11287
|
-
),
|
|
11288
|
-
/* @__PURE__ */ jsxs56(
|
|
11289
|
-
DropdownMenuItem,
|
|
11290
|
-
{
|
|
11291
|
-
onClick: () => onDownload?.(file),
|
|
11292
|
-
className: "cursor-pointer text-xs flex items-center gap-2 py-1.5",
|
|
11293
|
-
children: [
|
|
11294
|
-
/* @__PURE__ */ jsx94(Download2, { className: "h-3.5 w-3.5 text-emerald-500" }),
|
|
11295
|
-
/* @__PURE__ */ jsx94("span", { children: "Download" })
|
|
11296
|
-
]
|
|
11297
|
-
}
|
|
11298
|
-
),
|
|
11299
|
-
/* @__PURE__ */ jsxs56(
|
|
11300
|
-
DropdownMenuItem,
|
|
11301
|
-
{
|
|
11302
|
-
onClick: () => onCopyLink?.(file),
|
|
11303
|
-
className: "cursor-pointer text-xs flex items-center gap-2 py-1.5",
|
|
11291
|
+
onClick: () => onDelete?.(file),
|
|
11292
|
+
className: "gap-2 text-xs text-destructive focus:text-destructive",
|
|
11304
11293
|
children: [
|
|
11305
|
-
/* @__PURE__ */ jsx94(
|
|
11306
|
-
|
|
11294
|
+
/* @__PURE__ */ jsx94(Trash26, { className: "h-3.5 w-3.5" }),
|
|
11295
|
+
" Delete"
|
|
11307
11296
|
]
|
|
11308
11297
|
}
|
|
11309
|
-
)
|
|
11310
|
-
onShare && /* @__PURE__ */ jsxs56(
|
|
11311
|
-
DropdownMenuItem,
|
|
11312
|
-
{
|
|
11313
|
-
onClick: () => onShare(file),
|
|
11314
|
-
className: "cursor-pointer text-xs flex items-center gap-2 py-1.5",
|
|
11315
|
-
children: [
|
|
11316
|
-
/* @__PURE__ */ jsx94(Share22, { className: "h-3.5 w-3.5 text-indigo-500" }),
|
|
11317
|
-
/* @__PURE__ */ jsx94("span", { children: "Share" })
|
|
11318
|
-
]
|
|
11319
|
-
}
|
|
11320
|
-
),
|
|
11321
|
-
onRename && /* @__PURE__ */ jsxs56(
|
|
11322
|
-
DropdownMenuItem,
|
|
11323
|
-
{
|
|
11324
|
-
onClick: () => onRename(file),
|
|
11325
|
-
className: "cursor-pointer text-xs flex items-center gap-2 py-1.5",
|
|
11326
|
-
children: [
|
|
11327
|
-
/* @__PURE__ */ jsx94(Pencil3, { className: "h-3.5 w-3.5 text-purple-500" }),
|
|
11328
|
-
/* @__PURE__ */ jsx94("span", { children: "Rename" })
|
|
11329
|
-
]
|
|
11330
|
-
}
|
|
11331
|
-
),
|
|
11332
|
-
onDelete && /* @__PURE__ */ jsxs56(Fragment3, { children: [
|
|
11333
|
-
/* @__PURE__ */ jsx94(DropdownMenuSeparator, {}),
|
|
11334
|
-
/* @__PURE__ */ jsxs56(
|
|
11335
|
-
DropdownMenuItem,
|
|
11336
|
-
{
|
|
11337
|
-
onClick: () => onDelete(file),
|
|
11338
|
-
className: "cursor-pointer text-xs flex items-center gap-2 py-1.5 text-rose-500 hover:text-rose-600 hover:bg-rose-50 dark:hover:bg-rose-950/30 rounded-md",
|
|
11339
|
-
children: [
|
|
11340
|
-
/* @__PURE__ */ jsx94(Trash26, { className: "h-3.5 w-3.5 text-rose-500" }),
|
|
11341
|
-
/* @__PURE__ */ jsx94("span", { children: "Delete" })
|
|
11342
|
-
]
|
|
11343
|
-
}
|
|
11344
|
-
)
|
|
11345
|
-
] })
|
|
11298
|
+
)
|
|
11346
11299
|
] })
|
|
11347
11300
|
] })
|
|
11348
11301
|
] }) })
|
|
@@ -11353,143 +11306,119 @@ function FileCardItem({
|
|
|
11353
11306
|
return /* @__PURE__ */ jsxs56(
|
|
11354
11307
|
"div",
|
|
11355
11308
|
{
|
|
11356
|
-
onClick: () => onSelect?.(file),
|
|
11357
11309
|
className: cn(
|
|
11358
|
-
"group relative flex flex-col justify-between
|
|
11359
|
-
isSelected && "
|
|
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",
|
|
11360
11312
|
className
|
|
11361
11313
|
),
|
|
11362
11314
|
children: [
|
|
11363
|
-
/* @__PURE__ */ jsxs56("div", {
|
|
11364
|
-
isImage && file.fileUrl ? /* @__PURE__ */ jsx94(
|
|
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(
|
|
11365
11317
|
"img",
|
|
11366
11318
|
{
|
|
11367
11319
|
src: file.fileUrl,
|
|
11368
11320
|
alt: file.fileName,
|
|
11369
|
-
className: "
|
|
11321
|
+
className: "w-full h-full object-cover transition-transform duration-300 group-hover:scale-105",
|
|
11370
11322
|
loading: "lazy"
|
|
11371
11323
|
}
|
|
11372
|
-
) : /* @__PURE__ */
|
|
11324
|
+
) : /* @__PURE__ */ jsxs56(
|
|
11373
11325
|
"div",
|
|
11374
11326
|
{
|
|
11375
11327
|
className: cn(
|
|
11376
|
-
"flex
|
|
11377
|
-
theme.
|
|
11378
|
-
theme.border
|
|
11379
|
-
),
|
|
11380
|
-
children: isPdf ? /* @__PURE__ */ jsx94(FileText3, { className: cn("h-8 w-8", theme.text) }) : isVideo ? /* @__PURE__ */ jsx94(Film, { className: cn("h-8 w-8", theme.text) }) : isSheet ? /* @__PURE__ */ jsx94(FileSpreadsheet, { className: cn("h-8 w-8", theme.text) }) : isZip ? /* @__PURE__ */ jsx94(FileArchive, { className: cn("h-8 w-8", theme.text) }) : /* @__PURE__ */ jsx94(FileCode, { className: cn("h-8 w-8", theme.text) })
|
|
11381
|
-
}
|
|
11382
|
-
),
|
|
11383
|
-
/* @__PURE__ */ jsx94(
|
|
11384
|
-
Badge,
|
|
11385
|
-
{
|
|
11386
|
-
variant: "outline",
|
|
11387
|
-
className: cn(
|
|
11388
|
-
"absolute top-2 right-2 backdrop-blur-md text-[10px] font-bold px-1.5 py-0.5 shadow-2xs",
|
|
11389
|
-
theme.bg,
|
|
11390
|
-
theme.text,
|
|
11391
|
-
theme.border
|
|
11328
|
+
"flex flex-col items-center justify-center gap-1.5 w-full h-full p-4",
|
|
11329
|
+
theme.bgColor
|
|
11392
11330
|
),
|
|
11393
|
-
children:
|
|
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
|
+
]
|
|
11394
11335
|
}
|
|
11395
|
-
)
|
|
11396
|
-
|
|
11397
|
-
/* @__PURE__ */ jsxs56("div", { className: "flex flex-col gap-1 min-w-0", children: [
|
|
11398
|
-
/* @__PURE__ */ jsx94("h4", { className: "font-bold text-xs text-foreground truncate tracking-tight", title: file.fileName, children: file.fileName }),
|
|
11399
|
-
/* @__PURE__ */ jsxs56("div", { className: "flex items-center justify-between text-[11px] text-muted-foreground", children: [
|
|
11400
|
-
/* @__PURE__ */ jsx94("span", { className: "font-mono", children: formatBytes(file.fileSize) }),
|
|
11401
|
-
/* @__PURE__ */ jsx94("span", { className: "truncate", children: updatedTimeDisplay })
|
|
11402
|
-
] })
|
|
11403
|
-
] }),
|
|
11404
|
-
/* @__PURE__ */ jsxs56("div", { className: "mt-3 pt-2.5 flex items-center justify-between border-t border-border/50 text-muted-foreground", children: [
|
|
11405
|
-
/* @__PURE__ */ jsx94("span", { className: "text-[10px] text-muted-foreground/70 font-medium truncate max-w-[120px]", children: file.folderPath || file.section || "General" }),
|
|
11406
|
-
/* @__PURE__ */ jsxs56("div", { className: "flex items-center gap-1", children: [
|
|
11336
|
+
) }),
|
|
11337
|
+
/* @__PURE__ */ jsxs56("div", { className: "px-1 min-w-0", children: [
|
|
11407
11338
|
/* @__PURE__ */ jsx94(
|
|
11408
|
-
"
|
|
11339
|
+
"h3",
|
|
11409
11340
|
{
|
|
11410
|
-
|
|
11411
|
-
|
|
11412
|
-
|
|
11413
|
-
onPreview?.(file);
|
|
11414
|
-
},
|
|
11415
|
-
className: "p-1 rounded-lg hover:bg-muted text-muted-foreground hover:text-foreground transition-colors cursor-pointer",
|
|
11416
|
-
title: "Preview file",
|
|
11417
|
-
children: /* @__PURE__ */ jsx94(Eye3, { className: "h-3.5 w-3.5" })
|
|
11341
|
+
className: "text-sm font-bold text-foreground truncate tracking-tight",
|
|
11342
|
+
title: file.fileName,
|
|
11343
|
+
children: file.fileName
|
|
11418
11344
|
}
|
|
11419
11345
|
),
|
|
11420
|
-
/* @__PURE__ */
|
|
11421
|
-
"
|
|
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,
|
|
11422
11381
|
{
|
|
11423
|
-
|
|
11424
|
-
|
|
11425
|
-
|
|
11426
|
-
|
|
11427
|
-
}
|
|
11428
|
-
className: "p-1 rounded-lg hover:bg-muted text-muted-foreground hover:text-foreground transition-colors cursor-pointer",
|
|
11429
|
-
title: "Download file",
|
|
11430
|
-
children: /* @__PURE__ */ jsx94(Download2, { className: "h-3.5 w-3.5" })
|
|
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" })
|
|
11431
11387
|
}
|
|
11432
|
-
),
|
|
11433
|
-
/* @__PURE__ */ jsxs56(
|
|
11434
|
-
/* @__PURE__ */
|
|
11435
|
-
"
|
|
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,
|
|
11436
11413
|
{
|
|
11437
|
-
|
|
11438
|
-
|
|
11439
|
-
|
|
11440
|
-
|
|
11441
|
-
|
|
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
|
+
]
|
|
11442
11420
|
}
|
|
11443
|
-
)
|
|
11444
|
-
/* @__PURE__ */ jsxs56(DropdownMenuContent, { align: "end", className: "w-38 rounded-xl p-1 shadow-lg", children: [
|
|
11445
|
-
/* @__PURE__ */ jsxs56(
|
|
11446
|
-
DropdownMenuItem,
|
|
11447
|
-
{
|
|
11448
|
-
onClick: () => onPreview?.(file),
|
|
11449
|
-
className: "cursor-pointer text-xs flex items-center gap-2 py-1.5",
|
|
11450
|
-
children: [
|
|
11451
|
-
/* @__PURE__ */ jsx94(Eye3, { className: "h-3.5 w-3.5 text-blue-500" }),
|
|
11452
|
-
/* @__PURE__ */ jsx94("span", { children: "Preview" })
|
|
11453
|
-
]
|
|
11454
|
-
}
|
|
11455
|
-
),
|
|
11456
|
-
/* @__PURE__ */ jsxs56(
|
|
11457
|
-
DropdownMenuItem,
|
|
11458
|
-
{
|
|
11459
|
-
onClick: () => onDownload?.(file),
|
|
11460
|
-
className: "cursor-pointer text-xs flex items-center gap-2 py-1.5",
|
|
11461
|
-
children: [
|
|
11462
|
-
/* @__PURE__ */ jsx94(Download2, { className: "h-3.5 w-3.5 text-emerald-500" }),
|
|
11463
|
-
/* @__PURE__ */ jsx94("span", { children: "Download" })
|
|
11464
|
-
]
|
|
11465
|
-
}
|
|
11466
|
-
),
|
|
11467
|
-
/* @__PURE__ */ jsxs56(
|
|
11468
|
-
DropdownMenuItem,
|
|
11469
|
-
{
|
|
11470
|
-
onClick: () => onCopyLink?.(file),
|
|
11471
|
-
className: "cursor-pointer text-xs flex items-center gap-2 py-1.5",
|
|
11472
|
-
children: [
|
|
11473
|
-
/* @__PURE__ */ jsx94(Copy3, { className: "h-3.5 w-3.5 text-amber-500" }),
|
|
11474
|
-
/* @__PURE__ */ jsx94("span", { children: "Copy Link" })
|
|
11475
|
-
]
|
|
11476
|
-
}
|
|
11477
|
-
),
|
|
11478
|
-
onDelete && /* @__PURE__ */ jsxs56(Fragment3, { children: [
|
|
11479
|
-
/* @__PURE__ */ jsx94(DropdownMenuSeparator, {}),
|
|
11480
|
-
/* @__PURE__ */ jsxs56(
|
|
11481
|
-
DropdownMenuItem,
|
|
11482
|
-
{
|
|
11483
|
-
onClick: () => onDelete(file),
|
|
11484
|
-
className: "cursor-pointer text-xs flex items-center gap-2 py-1.5 text-rose-500 hover:text-rose-600 hover:bg-rose-50 dark:hover:bg-rose-950/30 rounded-md",
|
|
11485
|
-
children: [
|
|
11486
|
-
/* @__PURE__ */ jsx94(Trash26, { className: "h-3.5 w-3.5 text-rose-500" }),
|
|
11487
|
-
/* @__PURE__ */ jsx94("span", { children: "Delete" })
|
|
11488
|
-
]
|
|
11489
|
-
}
|
|
11490
|
-
)
|
|
11491
|
-
] })
|
|
11492
|
-
] })
|
|
11421
|
+
)
|
|
11493
11422
|
] })
|
|
11494
11423
|
] })
|
|
11495
11424
|
] })
|
|
@@ -11737,241 +11666,23 @@ function StorageStatCard({
|
|
|
11737
11666
|
import { useState as useState12, useMemo as useMemo7 } from "react";
|
|
11738
11667
|
import {
|
|
11739
11668
|
Search as Search6,
|
|
11740
|
-
X as
|
|
11669
|
+
X as X4,
|
|
11741
11670
|
FolderOpen as FolderOpen2,
|
|
11742
11671
|
ArrowLeft as ArrowLeft3,
|
|
11672
|
+
Filter,
|
|
11743
11673
|
ArrowUpDown,
|
|
11674
|
+
ArrowLeftRight,
|
|
11675
|
+
SlidersHorizontal,
|
|
11744
11676
|
LayoutGrid,
|
|
11745
|
-
|
|
11677
|
+
List as ListIcon,
|
|
11746
11678
|
ChevronLeft as ChevronLeft2,
|
|
11747
|
-
ChevronRight as
|
|
11679
|
+
ChevronRight as ChevronRight8,
|
|
11748
11680
|
Upload,
|
|
11749
|
-
Trash2 as Trash28,
|
|
11750
|
-
Download as Download3
|
|
11751
|
-
} from "lucide-react";
|
|
11752
|
-
|
|
11753
|
-
// src/features/Message/components/chat/header-actions.tsx
|
|
11754
|
-
import {
|
|
11755
11681
|
Bell as Bell4,
|
|
11756
11682
|
Flag as Flag4,
|
|
11757
|
-
MoreVertical as MoreVertical3
|
|
11758
|
-
Reply,
|
|
11759
|
-
Forward,
|
|
11760
|
-
Pin as Pin4,
|
|
11761
|
-
Star as Star4,
|
|
11762
|
-
Heart as Heart4,
|
|
11763
|
-
Archive as Archive4,
|
|
11764
|
-
Trash2 as Trash27,
|
|
11765
|
-
X as X4
|
|
11683
|
+
MoreVertical as MoreVertical3
|
|
11766
11684
|
} from "lucide-react";
|
|
11767
|
-
import {
|
|
11768
|
-
import { jsx as jsx97, jsxs as jsxs59 } from "react/jsx-runtime";
|
|
11769
|
-
function HeaderActions({
|
|
11770
|
-
onDelete,
|
|
11771
|
-
onDownload,
|
|
11772
|
-
onPrint,
|
|
11773
|
-
onShare,
|
|
11774
|
-
onReply,
|
|
11775
|
-
onForward,
|
|
11776
|
-
onPin,
|
|
11777
|
-
onStar,
|
|
11778
|
-
onFavorite,
|
|
11779
|
-
onArchive,
|
|
11780
|
-
onActionThis,
|
|
11781
|
-
onClose
|
|
11782
|
-
}) {
|
|
11783
|
-
return /* @__PURE__ */ jsxs59("div", { className: "flex items-center gap-1 shrink-0 select-none", children: [
|
|
11784
|
-
/* @__PURE__ */ jsx97(
|
|
11785
|
-
"button",
|
|
11786
|
-
{
|
|
11787
|
-
type: "button",
|
|
11788
|
-
onClick: () => {
|
|
11789
|
-
if (onActionThis) onActionThis();
|
|
11790
|
-
else toast2.info("Act on this option selected");
|
|
11791
|
-
},
|
|
11792
|
-
className: "p-1.5 rounded-lg hover:bg-muted text-amber-500 hover:text-amber-600 transition-colors cursor-pointer",
|
|
11793
|
-
title: "Act on this",
|
|
11794
|
-
children: /* @__PURE__ */ jsx97(Bell4, { className: "h-4.5 w-4.5" })
|
|
11795
|
-
}
|
|
11796
|
-
),
|
|
11797
|
-
/* @__PURE__ */ jsx97(
|
|
11798
|
-
"button",
|
|
11799
|
-
{
|
|
11800
|
-
type: "button",
|
|
11801
|
-
onClick: () => toast2.success("Flagged item"),
|
|
11802
|
-
className: "p-1.5 rounded-lg hover:bg-muted text-muted-foreground hover:text-foreground transition-colors cursor-pointer",
|
|
11803
|
-
title: "Flag",
|
|
11804
|
-
children: /* @__PURE__ */ jsx97(Flag4, { className: "h-4.5 w-4.5" })
|
|
11805
|
-
}
|
|
11806
|
-
),
|
|
11807
|
-
/* @__PURE__ */ jsxs59(DropdownMenu, { children: [
|
|
11808
|
-
/* @__PURE__ */ jsx97(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsx97(
|
|
11809
|
-
"button",
|
|
11810
|
-
{
|
|
11811
|
-
type: "button",
|
|
11812
|
-
className: "p-1.5 rounded-lg hover:bg-muted text-muted-foreground hover:text-foreground transition-colors cursor-pointer",
|
|
11813
|
-
title: "More options",
|
|
11814
|
-
children: /* @__PURE__ */ jsx97(MoreVertical3, { className: "h-4.5 w-4.5" })
|
|
11815
|
-
}
|
|
11816
|
-
) }),
|
|
11817
|
-
/* @__PURE__ */ jsxs59(
|
|
11818
|
-
DropdownMenuContent,
|
|
11819
|
-
{
|
|
11820
|
-
align: "end",
|
|
11821
|
-
className: "w-48 border border-border/80 bg-background shadow-lg p-1 space-y-0.5",
|
|
11822
|
-
children: [
|
|
11823
|
-
/* @__PURE__ */ jsx97(
|
|
11824
|
-
DropdownMenuItem,
|
|
11825
|
-
{
|
|
11826
|
-
onClick: () => {
|
|
11827
|
-
if (onReply) onReply();
|
|
11828
|
-
else toast2.info("Reply option selected");
|
|
11829
|
-
},
|
|
11830
|
-
className: "cursor-pointer text-xs flex items-center justify-between py-2 px-2.5 font-medium hover:bg-muted/80 rounded-md",
|
|
11831
|
-
children: /* @__PURE__ */ jsxs59("div", { className: "flex items-center gap-2.5", children: [
|
|
11832
|
-
/* @__PURE__ */ jsx97(Reply, { className: "h-4 w-4 text-blue-500" }),
|
|
11833
|
-
/* @__PURE__ */ jsx97("span", { className: "text-foreground", children: "Reply" })
|
|
11834
|
-
] })
|
|
11835
|
-
}
|
|
11836
|
-
),
|
|
11837
|
-
/* @__PURE__ */ jsx97(
|
|
11838
|
-
DropdownMenuItem,
|
|
11839
|
-
{
|
|
11840
|
-
onClick: () => {
|
|
11841
|
-
if (onForward) onForward();
|
|
11842
|
-
else toast2.info("Forward option selected");
|
|
11843
|
-
},
|
|
11844
|
-
className: "cursor-pointer text-xs flex items-center justify-between py-2 px-2.5 font-medium hover:bg-muted/80 rounded-md",
|
|
11845
|
-
children: /* @__PURE__ */ jsxs59("div", { className: "flex items-center gap-2.5", children: [
|
|
11846
|
-
/* @__PURE__ */ jsx97(Forward, { className: "h-4 w-4 text-sky-400" }),
|
|
11847
|
-
/* @__PURE__ */ jsx97("span", { className: "text-foreground", children: "Forward" })
|
|
11848
|
-
] })
|
|
11849
|
-
}
|
|
11850
|
-
),
|
|
11851
|
-
/* @__PURE__ */ jsx97(
|
|
11852
|
-
DropdownMenuItem,
|
|
11853
|
-
{
|
|
11854
|
-
onClick: () => {
|
|
11855
|
-
if (onPin) onPin();
|
|
11856
|
-
else toast2.success("Message pinned");
|
|
11857
|
-
},
|
|
11858
|
-
className: "cursor-pointer text-xs flex items-center justify-between py-2 px-2.5 font-medium hover:bg-muted/80 rounded-md",
|
|
11859
|
-
children: /* @__PURE__ */ jsxs59("div", { className: "flex items-center gap-2.5", children: [
|
|
11860
|
-
/* @__PURE__ */ jsx97(Pin4, { className: "h-4 w-4 text-purple-500" }),
|
|
11861
|
-
/* @__PURE__ */ jsx97("span", { className: "text-foreground", children: "Pin Message" })
|
|
11862
|
-
] })
|
|
11863
|
-
}
|
|
11864
|
-
),
|
|
11865
|
-
/* @__PURE__ */ jsx97(
|
|
11866
|
-
DropdownMenuItem,
|
|
11867
|
-
{
|
|
11868
|
-
onClick: () => {
|
|
11869
|
-
if (onStar) onStar();
|
|
11870
|
-
else toast2.success("Starred successfully");
|
|
11871
|
-
},
|
|
11872
|
-
className: "cursor-pointer text-xs flex items-center justify-between py-2 px-2.5 font-medium hover:bg-muted/80 rounded-md",
|
|
11873
|
-
children: /* @__PURE__ */ jsxs59("div", { className: "flex items-center gap-2.5", children: [
|
|
11874
|
-
/* @__PURE__ */ jsx97(Star4, { className: "h-4 w-4 text-amber-500" }),
|
|
11875
|
-
/* @__PURE__ */ jsx97("span", { className: "text-foreground", children: "Star" })
|
|
11876
|
-
] })
|
|
11877
|
-
}
|
|
11878
|
-
),
|
|
11879
|
-
/* @__PURE__ */ jsx97(
|
|
11880
|
-
DropdownMenuItem,
|
|
11881
|
-
{
|
|
11882
|
-
onClick: () => {
|
|
11883
|
-
if (onFavorite) onFavorite();
|
|
11884
|
-
else toast2.success("Added to favorites");
|
|
11885
|
-
},
|
|
11886
|
-
className: "cursor-pointer text-xs flex items-center justify-between py-2 px-2.5 font-medium hover:bg-muted/80 rounded-md",
|
|
11887
|
-
children: /* @__PURE__ */ jsxs59("div", { className: "flex items-center gap-2.5", children: [
|
|
11888
|
-
/* @__PURE__ */ jsx97(Heart4, { className: "h-4 w-4 text-rose-500" }),
|
|
11889
|
-
/* @__PURE__ */ jsx97("span", { className: "text-foreground", children: "Favorite" })
|
|
11890
|
-
] })
|
|
11891
|
-
}
|
|
11892
|
-
),
|
|
11893
|
-
/* @__PURE__ */ jsx97(
|
|
11894
|
-
DropdownMenuItem,
|
|
11895
|
-
{
|
|
11896
|
-
onClick: () => toast2.success("Flagged message"),
|
|
11897
|
-
className: "cursor-pointer text-xs flex items-center justify-between py-2 px-2.5 font-medium hover:bg-muted/80 rounded-md",
|
|
11898
|
-
children: /* @__PURE__ */ jsxs59("div", { className: "flex items-center gap-2.5", children: [
|
|
11899
|
-
/* @__PURE__ */ jsx97(Flag4, { className: "h-4 w-4 text-red-500" }),
|
|
11900
|
-
/* @__PURE__ */ jsx97("span", { className: "text-foreground", children: "Flag" })
|
|
11901
|
-
] })
|
|
11902
|
-
}
|
|
11903
|
-
),
|
|
11904
|
-
/* @__PURE__ */ jsx97(
|
|
11905
|
-
DropdownMenuItem,
|
|
11906
|
-
{
|
|
11907
|
-
onClick: () => {
|
|
11908
|
-
if (onArchive) onArchive();
|
|
11909
|
-
else toast2.success("Archived successfully");
|
|
11910
|
-
},
|
|
11911
|
-
className: "cursor-pointer text-xs flex items-center justify-between py-2 px-2.5 font-medium hover:bg-muted/80 rounded-md",
|
|
11912
|
-
children: /* @__PURE__ */ jsxs59("div", { className: "flex items-center gap-2.5", children: [
|
|
11913
|
-
/* @__PURE__ */ jsx97(Archive4, { className: "h-4 w-4 text-indigo-500" }),
|
|
11914
|
-
/* @__PURE__ */ jsx97("span", { className: "text-foreground", children: "Archive" })
|
|
11915
|
-
] })
|
|
11916
|
-
}
|
|
11917
|
-
),
|
|
11918
|
-
/* @__PURE__ */ jsx97(
|
|
11919
|
-
DropdownMenuItem,
|
|
11920
|
-
{
|
|
11921
|
-
onClick: () => {
|
|
11922
|
-
if (onActionThis) onActionThis();
|
|
11923
|
-
else toast2.info("Action This selected");
|
|
11924
|
-
},
|
|
11925
|
-
className: "cursor-pointer text-xs flex items-center justify-between py-2 px-2.5 font-medium hover:bg-muted/80 rounded-md",
|
|
11926
|
-
children: /* @__PURE__ */ jsxs59("div", { className: "flex items-center gap-2.5", children: [
|
|
11927
|
-
/* @__PURE__ */ jsx97(Bell4, { className: "h-4 w-4 text-amber-500" }),
|
|
11928
|
-
/* @__PURE__ */ jsx97("span", { className: "text-foreground", children: "Action This" })
|
|
11929
|
-
] })
|
|
11930
|
-
}
|
|
11931
|
-
),
|
|
11932
|
-
/* @__PURE__ */ jsx97(
|
|
11933
|
-
DropdownMenuItem,
|
|
11934
|
-
{
|
|
11935
|
-
onClick: () => {
|
|
11936
|
-
if (onDelete) onDelete();
|
|
11937
|
-
else toast2.success("Item deleted");
|
|
11938
|
-
},
|
|
11939
|
-
className: "cursor-pointer text-xs flex items-center justify-between py-2 px-2.5 font-medium hover:bg-red-500/10 rounded-md text-red-500 focus:text-red-500",
|
|
11940
|
-
children: /* @__PURE__ */ jsxs59("div", { className: "flex items-center gap-2.5", children: [
|
|
11941
|
-
/* @__PURE__ */ jsx97(Trash27, { className: "h-4 w-4 text-red-500" }),
|
|
11942
|
-
/* @__PURE__ */ jsx97("span", { className: "font-semibold text-red-500", children: "Delete" })
|
|
11943
|
-
] })
|
|
11944
|
-
}
|
|
11945
|
-
)
|
|
11946
|
-
]
|
|
11947
|
-
}
|
|
11948
|
-
)
|
|
11949
|
-
] }),
|
|
11950
|
-
onClose && /* @__PURE__ */ jsx97(
|
|
11951
|
-
"button",
|
|
11952
|
-
{
|
|
11953
|
-
type: "button",
|
|
11954
|
-
onClick: onClose,
|
|
11955
|
-
className: "p-1.5 rounded-lg hover:bg-muted text-muted-foreground hover:text-foreground transition-colors cursor-pointer ml-0.5",
|
|
11956
|
-
title: "Close",
|
|
11957
|
-
"aria-label": "Close",
|
|
11958
|
-
children: /* @__PURE__ */ jsx97(X4, { className: "h-4.5 w-4.5" })
|
|
11959
|
-
}
|
|
11960
|
-
)
|
|
11961
|
-
] });
|
|
11962
|
-
}
|
|
11963
|
-
|
|
11964
|
-
// src/design-system/components/files/user-file-cards-view.tsx
|
|
11965
|
-
import { jsx as jsx98, jsxs as jsxs60 } from "react/jsx-runtime";
|
|
11966
|
-
var CATEGORY_TABS = [
|
|
11967
|
-
{ label: "All Files", value: "all" },
|
|
11968
|
-
{ label: "PDFs", value: "Pdf" },
|
|
11969
|
-
{ label: "Documents", value: "Doc" },
|
|
11970
|
-
{ label: "Spreadsheets", value: "Xls" },
|
|
11971
|
-
{ label: "Images", value: "Images" },
|
|
11972
|
-
{ label: "Videos", value: "Videos" },
|
|
11973
|
-
{ label: "Archives", value: "Zip" }
|
|
11974
|
-
];
|
|
11685
|
+
import { Fragment as Fragment3, jsx as jsx97, jsxs as jsxs59 } from "react/jsx-runtime";
|
|
11975
11686
|
function UserFileCardsView({
|
|
11976
11687
|
folder,
|
|
11977
11688
|
files,
|
|
@@ -11984,6 +11695,7 @@ function UserFileCardsView({
|
|
|
11984
11695
|
onShareFile,
|
|
11985
11696
|
onUploadClick,
|
|
11986
11697
|
onBack,
|
|
11698
|
+
onClose,
|
|
11987
11699
|
className
|
|
11988
11700
|
}) {
|
|
11989
11701
|
const [searchQuery, setSearchQuery] = useState12("");
|
|
@@ -12024,21 +11736,6 @@ function UserFileCardsView({
|
|
|
12024
11736
|
const totalBytes = useMemo7(() => {
|
|
12025
11737
|
return files.reduce((acc, curr) => acc + (curr.fileSize || 0), 0);
|
|
12026
11738
|
}, [files]);
|
|
12027
|
-
const toggleSelectAll = () => {
|
|
12028
|
-
if (selectedIds.size === paginatedFiles.length) {
|
|
12029
|
-
setSelectedIds(/* @__PURE__ */ new Set());
|
|
12030
|
-
} else {
|
|
12031
|
-
setSelectedIds(new Set(paginatedFiles.map((f) => f.id)));
|
|
12032
|
-
}
|
|
12033
|
-
};
|
|
12034
|
-
const toggleSelectOne = (id) => {
|
|
12035
|
-
setSelectedIds((prev) => {
|
|
12036
|
-
const next = new Set(prev);
|
|
12037
|
-
if (next.has(id)) next.delete(id);
|
|
12038
|
-
else next.add(id);
|
|
12039
|
-
return next;
|
|
12040
|
-
});
|
|
12041
|
-
};
|
|
12042
11739
|
const handleBulkDownload = () => {
|
|
12043
11740
|
const toDownload = files.filter((f) => selectedIds.has(f.id));
|
|
12044
11741
|
toDownload.forEach((f) => onDownloadFile?.(f));
|
|
@@ -12048,7 +11745,9 @@ function UserFileCardsView({
|
|
|
12048
11745
|
toDelete.forEach((f) => onDeleteFile?.(f));
|
|
12049
11746
|
setSelectedIds(/* @__PURE__ */ new Set());
|
|
12050
11747
|
};
|
|
12051
|
-
|
|
11748
|
+
const folderDisplayName = folder?.name || "Images";
|
|
11749
|
+
const folderDisplayPath = folder?.path || "Chat/amanmicropay@gmail.com/Images";
|
|
11750
|
+
return /* @__PURE__ */ jsxs59(
|
|
12052
11751
|
"div",
|
|
12053
11752
|
{
|
|
12054
11753
|
className: cn(
|
|
@@ -12056,306 +11755,283 @@ function UserFileCardsView({
|
|
|
12056
11755
|
className
|
|
12057
11756
|
),
|
|
12058
11757
|
children: [
|
|
12059
|
-
/* @__PURE__ */
|
|
12060
|
-
/* @__PURE__ */
|
|
12061
|
-
onBack && /* @__PURE__ */
|
|
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(
|
|
12062
11761
|
"button",
|
|
12063
11762
|
{
|
|
12064
11763
|
type: "button",
|
|
12065
11764
|
onClick: onBack,
|
|
12066
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",
|
|
12067
11766
|
title: "Back",
|
|
12068
|
-
children: /* @__PURE__ */
|
|
11767
|
+
children: /* @__PURE__ */ jsx97(ArrowLeft3, { className: "h-4 w-4" })
|
|
12069
11768
|
}
|
|
12070
11769
|
),
|
|
12071
|
-
/* @__PURE__ */
|
|
12072
|
-
/* @__PURE__ */
|
|
12073
|
-
/* @__PURE__ */
|
|
12074
|
-
/* @__PURE__ */
|
|
12075
|
-
/* @__PURE__ */
|
|
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: [
|
|
12076
11775
|
filteredFiles.length,
|
|
12077
11776
|
" files"
|
|
12078
11777
|
] })
|
|
12079
11778
|
] }),
|
|
12080
|
-
/* @__PURE__ */
|
|
12081
|
-
|
|
12082
|
-
|
|
12083
|
-
formatBytes(totalBytes)
|
|
11779
|
+
/* @__PURE__ */ jsxs59("p", { className: "truncate text-xs text-muted-foreground mt-0.5", children: [
|
|
11780
|
+
"Storage folder: ",
|
|
11781
|
+
folderDisplayPath
|
|
12084
11782
|
] })
|
|
12085
11783
|
] })
|
|
12086
11784
|
] }),
|
|
12087
|
-
/* @__PURE__ */
|
|
12088
|
-
|
|
12089
|
-
|
|
11785
|
+
/* @__PURE__ */ jsxs59("div", { className: "flex items-center gap-1 shrink-0", children: [
|
|
11786
|
+
/* @__PURE__ */ jsx97(
|
|
11787
|
+
"button",
|
|
12090
11788
|
{
|
|
12091
|
-
|
|
12092
|
-
|
|
12093
|
-
|
|
12094
|
-
children:
|
|
12095
|
-
/* @__PURE__ */ jsx98(Upload, { className: "h-3.5 w-3.5" }),
|
|
12096
|
-
/* @__PURE__ */ jsx98("span", { className: "hidden sm:inline", children: "Upload Files" })
|
|
12097
|
-
]
|
|
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" })
|
|
12098
11793
|
}
|
|
12099
11794
|
),
|
|
12100
|
-
/* @__PURE__ */
|
|
12101
|
-
|
|
12102
|
-
|
|
12103
|
-
|
|
12104
|
-
|
|
12105
|
-
|
|
12106
|
-
|
|
12107
|
-
|
|
12108
|
-
|
|
12109
|
-
|
|
12110
|
-
|
|
12111
|
-
onChange: (e) => {
|
|
12112
|
-
setSearchQuery(e.target.value);
|
|
12113
|
-
setCurrentPage(1);
|
|
12114
|
-
},
|
|
12115
|
-
placeholder: "Search files by name, type, or path...",
|
|
12116
|
-
className: "h-8.5 pl-8 pr-8 text-xs rounded-xl bg-background border-border/80"
|
|
12117
|
-
}
|
|
12118
|
-
),
|
|
12119
|
-
searchQuery && /* @__PURE__ */ jsx98(
|
|
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(
|
|
12120
11806
|
"button",
|
|
12121
11807
|
{
|
|
12122
11808
|
type: "button",
|
|
12123
|
-
|
|
12124
|
-
|
|
12125
|
-
children: /* @__PURE__ */
|
|
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" })
|
|
12126
11812
|
}
|
|
12127
|
-
)
|
|
12128
|
-
|
|
12129
|
-
|
|
12130
|
-
|
|
12131
|
-
|
|
12132
|
-
|
|
12133
|
-
|
|
12134
|
-
|
|
12135
|
-
|
|
12136
|
-
|
|
12137
|
-
|
|
12138
|
-
/* @__PURE__ */ jsxs60(DropdownMenuContent, { align: "end", className: "w-44 rounded-xl p-1 shadow-lg", children: [
|
|
12139
|
-
/* @__PURE__ */ jsx98(DropdownMenuLabel, { className: "text-[10px] text-muted-foreground uppercase font-bold tracking-wider", children: "Sort By" }),
|
|
12140
|
-
/* @__PURE__ */ jsx98(
|
|
12141
|
-
DropdownMenuItem,
|
|
12142
|
-
{
|
|
12143
|
-
onClick: () => setSortBy("date"),
|
|
12144
|
-
className: cn("text-xs cursor-pointer", sortBy === "date" && "font-bold text-primary"),
|
|
12145
|
-
children: "Last Updated"
|
|
12146
|
-
}
|
|
12147
|
-
),
|
|
12148
|
-
/* @__PURE__ */ jsx98(
|
|
12149
|
-
DropdownMenuItem,
|
|
12150
|
-
{
|
|
12151
|
-
onClick: () => setSortBy("name"),
|
|
12152
|
-
className: cn("text-xs cursor-pointer", sortBy === "name" && "font-bold text-primary"),
|
|
12153
|
-
children: "File Name (A-Z)"
|
|
12154
|
-
}
|
|
12155
|
-
),
|
|
12156
|
-
/* @__PURE__ */ jsx98(
|
|
12157
|
-
DropdownMenuItem,
|
|
12158
|
-
{
|
|
12159
|
-
onClick: () => setSortBy("size"),
|
|
12160
|
-
className: cn("text-xs cursor-pointer", sortBy === "size" && "font-bold text-primary"),
|
|
12161
|
-
children: "File Size"
|
|
12162
|
-
}
|
|
12163
|
-
),
|
|
12164
|
-
/* @__PURE__ */ jsx98(DropdownMenuSeparator, {}),
|
|
12165
|
-
/* @__PURE__ */ jsxs60(
|
|
12166
|
-
DropdownMenuItem,
|
|
12167
|
-
{
|
|
12168
|
-
onClick: () => setSortOrder((prev) => prev === "asc" ? "desc" : "asc"),
|
|
12169
|
-
className: "text-xs cursor-pointer",
|
|
12170
|
-
children: [
|
|
12171
|
-
"Order: ",
|
|
12172
|
-
sortOrder === "asc" ? "Ascending \u2191" : "Descending \u2193"
|
|
12173
|
-
]
|
|
12174
|
-
}
|
|
12175
|
-
)
|
|
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"
|
|
12176
11824
|
] })
|
|
12177
|
-
] }),
|
|
12178
|
-
/* @__PURE__ */ jsxs60("div", { className: "flex items-center rounded-xl bg-muted/50 p-0.5 border border-border/60", children: [
|
|
12179
|
-
/* @__PURE__ */ jsx98(
|
|
12180
|
-
"button",
|
|
12181
|
-
{
|
|
12182
|
-
type: "button",
|
|
12183
|
-
onClick: () => setViewMode("grid"),
|
|
12184
|
-
className: cn(
|
|
12185
|
-
"flex h-7 w-7 items-center justify-center rounded-lg transition-all cursor-pointer",
|
|
12186
|
-
viewMode === "grid" ? "bg-background text-foreground shadow-2xs font-bold" : "text-muted-foreground hover:text-foreground"
|
|
12187
|
-
),
|
|
12188
|
-
title: "Grid View",
|
|
12189
|
-
children: /* @__PURE__ */ jsx98(LayoutGrid, { className: "h-3.5 w-3.5" })
|
|
12190
|
-
}
|
|
12191
|
-
),
|
|
12192
|
-
/* @__PURE__ */ jsx98(
|
|
12193
|
-
"button",
|
|
12194
|
-
{
|
|
12195
|
-
type: "button",
|
|
12196
|
-
onClick: () => setViewMode("table"),
|
|
12197
|
-
className: cn(
|
|
12198
|
-
"flex h-7 w-7 items-center justify-center rounded-lg transition-all cursor-pointer",
|
|
12199
|
-
viewMode === "table" ? "bg-background text-foreground shadow-2xs font-bold" : "text-muted-foreground hover:text-foreground"
|
|
12200
|
-
),
|
|
12201
|
-
title: "Table View",
|
|
12202
|
-
children: /* @__PURE__ */ jsx98(TableIcon, { className: "h-3.5 w-3.5" })
|
|
12203
|
-
}
|
|
12204
|
-
)
|
|
12205
11825
|
] })
|
|
12206
|
-
] })
|
|
12207
|
-
|
|
12208
|
-
|
|
12209
|
-
|
|
12210
|
-
|
|
12211
|
-
|
|
12212
|
-
|
|
12213
|
-
|
|
12214
|
-
|
|
12215
|
-
}
|
|
12216
|
-
|
|
12217
|
-
|
|
12218
|
-
selectedCategory === tab.value ? "bg-indigo-600 text-white border-indigo-600 shadow-2xs" : "bg-background border-border/80 text-muted-foreground hover:text-foreground hover:bg-muted/40"
|
|
12219
|
-
),
|
|
12220
|
-
children: tab.label
|
|
12221
|
-
},
|
|
12222
|
-
tab.value
|
|
12223
|
-
)) })
|
|
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
|
+
] })
|
|
12224
11838
|
] }),
|
|
12225
|
-
|
|
12226
|
-
/* @__PURE__ */
|
|
12227
|
-
|
|
12228
|
-
" files selected"
|
|
12229
|
-
] }),
|
|
12230
|
-
/* @__PURE__ */ jsxs60("div", { className: "flex items-center gap-2", children: [
|
|
12231
|
-
/* @__PURE__ */ jsxs60(
|
|
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(
|
|
12232
11842
|
Button,
|
|
12233
11843
|
{
|
|
12234
|
-
size: "sm",
|
|
12235
11844
|
variant: "outline",
|
|
12236
|
-
|
|
12237
|
-
className: "h-
|
|
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",
|
|
12238
11847
|
children: [
|
|
12239
|
-
/* @__PURE__ */
|
|
12240
|
-
|
|
11848
|
+
/* @__PURE__ */ jsx97(ArrowLeftRight, { className: "h-3.5 w-3.5 text-muted-foreground" }),
|
|
11849
|
+
"LTR"
|
|
12241
11850
|
]
|
|
12242
11851
|
}
|
|
12243
11852
|
),
|
|
12244
|
-
|
|
11853
|
+
/* @__PURE__ */ jsxs59(
|
|
12245
11854
|
Button,
|
|
12246
11855
|
{
|
|
11856
|
+
variant: "outline",
|
|
12247
11857
|
size: "sm",
|
|
12248
|
-
|
|
12249
|
-
onClick: handleBulkDelete,
|
|
12250
|
-
className: "h-7 text-xs gap-1",
|
|
11858
|
+
className: "h-8 gap-1.5 text-xs font-bold text-muted-foreground rounded-xl border-border px-3 shrink-0",
|
|
12251
11859
|
children: [
|
|
12252
|
-
/* @__PURE__ */
|
|
12253
|
-
|
|
11860
|
+
/* @__PURE__ */ jsx97(Filter, { className: "h-3.5 w-3.5 text-muted-foreground" }),
|
|
11861
|
+
"FILTER"
|
|
12254
11862
|
]
|
|
12255
11863
|
}
|
|
12256
11864
|
),
|
|
12257
|
-
/* @__PURE__ */
|
|
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(
|
|
12258
11885
|
Button,
|
|
12259
11886
|
{
|
|
11887
|
+
variant: "outline",
|
|
12260
11888
|
size: "sm",
|
|
12261
|
-
|
|
12262
|
-
|
|
12263
|
-
|
|
12264
|
-
|
|
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
|
+
]
|
|
12265
11894
|
}
|
|
12266
11895
|
)
|
|
12267
|
-
] })
|
|
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
|
+
)
|
|
12268
11912
|
] }),
|
|
12269
|
-
/* @__PURE__ */
|
|
12270
|
-
/* @__PURE__ */
|
|
12271
|
-
/* @__PURE__ */
|
|
12272
|
-
|
|
12273
|
-
|
|
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"
|
|
12274
11941
|
] }),
|
|
12275
|
-
|
|
12276
|
-
/* @__PURE__ */
|
|
12277
|
-
|
|
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
|
+
] })
|
|
12278
11971
|
] })
|
|
12279
|
-
] })
|
|
12280
|
-
|
|
12281
|
-
{
|
|
12282
|
-
|
|
12283
|
-
|
|
12284
|
-
|
|
12285
|
-
|
|
12286
|
-
|
|
12287
|
-
|
|
12288
|
-
|
|
12289
|
-
|
|
12290
|
-
|
|
12291
|
-
|
|
12292
|
-
|
|
12293
|
-
|
|
12294
|
-
|
|
12295
|
-
|
|
12296
|
-
|
|
12297
|
-
|
|
12298
|
-
/* @__PURE__ */
|
|
12299
|
-
/* @__PURE__ */
|
|
12300
|
-
/* @__PURE__ */
|
|
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" })
|
|
12301
11996
|
] }) }),
|
|
12302
|
-
/* @__PURE__ */
|
|
11997
|
+
/* @__PURE__ */ jsx97("tbody", { children: paginatedFiles.map((file) => /* @__PURE__ */ jsx97(
|
|
12303
11998
|
FileCardItem,
|
|
12304
11999
|
{
|
|
12305
12000
|
file,
|
|
12306
|
-
isSelected: file.id === selectedFileId || selectedIds.has(file.id),
|
|
12307
12001
|
viewMode: "table",
|
|
12308
|
-
|
|
12309
|
-
|
|
12310
|
-
|
|
12311
|
-
|
|
12312
|
-
|
|
12313
|
-
|
|
12314
|
-
|
|
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
|
|
12315
12017
|
},
|
|
12316
12018
|
file.id
|
|
12317
12019
|
)) })
|
|
12318
|
-
] }) })
|
|
12319
|
-
|
|
12320
|
-
|
|
12321
|
-
|
|
12322
|
-
|
|
12323
|
-
|
|
12324
|
-
|
|
12325
|
-
|
|
12326
|
-
|
|
12327
|
-
|
|
12328
|
-
|
|
12329
|
-
|
|
12330
|
-
|
|
12331
|
-
|
|
12332
|
-
|
|
12333
|
-
variant: "outline",
|
|
12334
|
-
size: "sm",
|
|
12335
|
-
onClick: () => setCurrentPage((p) => Math.max(1, p - 1)),
|
|
12336
|
-
disabled: currentPage === 1,
|
|
12337
|
-
className: "h-7 w-7 p-0 rounded-lg",
|
|
12338
|
-
children: /* @__PURE__ */ jsx98(ChevronLeft2, { className: "h-3.5 w-3.5" })
|
|
12339
|
-
}
|
|
12340
|
-
),
|
|
12341
|
-
/* @__PURE__ */ jsxs60("span", { className: "px-2 font-mono font-bold text-foreground", children: [
|
|
12342
|
-
currentPage,
|
|
12343
|
-
" / ",
|
|
12344
|
-
totalPages
|
|
12345
|
-
] }),
|
|
12346
|
-
/* @__PURE__ */ jsx98(
|
|
12347
|
-
Button,
|
|
12348
|
-
{
|
|
12349
|
-
variant: "outline",
|
|
12350
|
-
size: "sm",
|
|
12351
|
-
onClick: () => setCurrentPage((p) => Math.min(totalPages, p + 1)),
|
|
12352
|
-
disabled: currentPage === totalPages,
|
|
12353
|
-
className: "h-7 w-7 p-0 rounded-lg",
|
|
12354
|
-
children: /* @__PURE__ */ jsx98(ChevronRight9, { className: "h-3.5 w-3.5" })
|
|
12355
|
-
}
|
|
12356
|
-
)
|
|
12357
|
-
] })
|
|
12358
|
-
] })
|
|
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
|
+
)) }) })
|
|
12359
12035
|
]
|
|
12360
12036
|
}
|
|
12361
12037
|
);
|
|
@@ -12372,18 +12048,16 @@ import {
|
|
|
12372
12048
|
Paperclip as Paperclip2,
|
|
12373
12049
|
Save,
|
|
12374
12050
|
ArrowLeft as ArrowLeft4,
|
|
12375
|
-
|
|
12376
|
-
X as X6,
|
|
12051
|
+
X as X5,
|
|
12377
12052
|
Loader2 as Loader22,
|
|
12378
|
-
|
|
12379
|
-
UploadCloud
|
|
12053
|
+
Folder as FolderIcon
|
|
12380
12054
|
} from "lucide-react";
|
|
12381
|
-
import { jsx as
|
|
12055
|
+
import { jsx as jsx98, jsxs as jsxs60 } from "react/jsx-runtime";
|
|
12382
12056
|
var TEMPLATE_OPTIONS = [
|
|
12383
|
-
{ id: "
|
|
12384
|
-
{ id: "
|
|
12385
|
-
{ id: "
|
|
12386
|
-
{ id: "
|
|
12057
|
+
{ id: "standard", name: "Standard Document" },
|
|
12058
|
+
{ id: "invoice", name: "Financial Invoice" },
|
|
12059
|
+
{ id: "report", name: "Report & Spreadsheet" },
|
|
12060
|
+
{ id: "contract", name: "Contract & Legal" }
|
|
12387
12061
|
];
|
|
12388
12062
|
var FOLDER_OPTIONS = ["Finance", "Chat", "Files", "Email", "AI Chat", "Order"];
|
|
12389
12063
|
var SUB_FOLDER_OPTIONS = [
|
|
@@ -12406,11 +12080,12 @@ function FileUploadForm({
|
|
|
12406
12080
|
initialSubFolder = "Pdf",
|
|
12407
12081
|
onClose,
|
|
12408
12082
|
onSave,
|
|
12083
|
+
onSaveDraft,
|
|
12409
12084
|
onUploadSuccess,
|
|
12410
12085
|
onPreviewAttachment,
|
|
12411
12086
|
className
|
|
12412
12087
|
}) {
|
|
12413
|
-
const [template, setTemplate] = useState13(
|
|
12088
|
+
const [template, setTemplate] = useState13("standard");
|
|
12414
12089
|
const [subject, setSubject] = useState13(initialSubject);
|
|
12415
12090
|
const [folder, setFolder] = useState13(initialFolder);
|
|
12416
12091
|
const [subFolder, setSubFolder] = useState13(initialSubFolder);
|
|
@@ -12438,7 +12113,7 @@ function FileUploadForm({
|
|
|
12438
12113
|
setAttachments((prev) => prev.filter((a) => a.id !== id));
|
|
12439
12114
|
};
|
|
12440
12115
|
const handleFormSubmit = async (e) => {
|
|
12441
|
-
e.preventDefault();
|
|
12116
|
+
if (e) e.preventDefault();
|
|
12442
12117
|
setIsSaving(true);
|
|
12443
12118
|
try {
|
|
12444
12119
|
if (onSave) {
|
|
@@ -12456,7 +12131,21 @@ function FileUploadForm({
|
|
|
12456
12131
|
setIsSaving(false);
|
|
12457
12132
|
}
|
|
12458
12133
|
};
|
|
12459
|
-
|
|
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(
|
|
12460
12149
|
"div",
|
|
12461
12150
|
{
|
|
12462
12151
|
className: cn(
|
|
@@ -12464,247 +12153,230 @@ function FileUploadForm({
|
|
|
12464
12153
|
className
|
|
12465
12154
|
),
|
|
12466
12155
|
children: [
|
|
12467
|
-
/* @__PURE__ */
|
|
12468
|
-
/* @__PURE__ */
|
|
12469
|
-
|
|
12470
|
-
|
|
12471
|
-
|
|
12472
|
-
|
|
12473
|
-
|
|
12474
|
-
|
|
12475
|
-
|
|
12476
|
-
|
|
12477
|
-
|
|
12478
|
-
|
|
12479
|
-
|
|
12480
|
-
|
|
12481
|
-
/* @__PURE__ */ jsx99("h2", { className: "truncate text-sm font-bold text-foreground tracking-tight", children: "Create & Upload Document" }),
|
|
12482
|
-
/* @__PURE__ */ jsx99("p", { className: "truncate text-xs text-muted-foreground", children: "Add metadata, descriptions, and attach files to your cloud storage" })
|
|
12483
|
-
] })
|
|
12484
|
-
] }),
|
|
12485
|
-
/* @__PURE__ */ jsxs61("div", { className: "flex items-center gap-2 shrink-0", children: [
|
|
12486
|
-
onClose && /* @__PURE__ */ jsx99(Button, { variant: "ghost", size: "sm", onClick: onClose, className: "h-8 text-xs", children: "Cancel" }),
|
|
12487
|
-
/* @__PURE__ */ jsxs61(
|
|
12488
|
-
Button,
|
|
12489
|
-
{
|
|
12490
|
-
size: "sm",
|
|
12491
|
-
onClick: handleFormSubmit,
|
|
12492
|
-
disabled: isSaving || !subject && attachments.length === 0,
|
|
12493
|
-
className: "h-8 gap-1.5 text-xs font-semibold shadow-xs bg-indigo-600 hover:bg-indigo-700 text-white",
|
|
12494
|
-
children: [
|
|
12495
|
-
isSaving ? /* @__PURE__ */ jsx99(Loader22, { className: "h-3.5 w-3.5 animate-spin" }) : /* @__PURE__ */ jsx99(Save, { className: "h-3.5 w-3.5" }),
|
|
12496
|
-
/* @__PURE__ */ jsx99("span", { children: "Save & Upload" })
|
|
12497
|
-
]
|
|
12498
|
-
}
|
|
12499
|
-
)
|
|
12500
|
-
] })
|
|
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
|
+
)
|
|
12501
12170
|
] }),
|
|
12502
|
-
/* @__PURE__ */
|
|
12503
|
-
/* @__PURE__ */
|
|
12504
|
-
/* @__PURE__ */
|
|
12505
|
-
|
|
12506
|
-
/* @__PURE__ */
|
|
12507
|
-
|
|
12508
|
-
|
|
12509
|
-
] })
|
|
12510
|
-
] }),
|
|
12511
|
-
/* @__PURE__ */ jsxs61("div", { className: "space-y-1.5", children: [
|
|
12512
|
-
/* @__PURE__ */ jsx99(Label, { className: "text-xs font-semibold text-foreground", children: "Target Space" }),
|
|
12513
|
-
/* @__PURE__ */ jsxs61(Select, { value: folder, onValueChange: setFolder, children: [
|
|
12514
|
-
/* @__PURE__ */ jsx99(SelectTrigger, { className: "h-8.5 text-xs rounded-xl bg-background border-border/80", children: /* @__PURE__ */ jsx99(SelectValue, { placeholder: "Select space" }) }),
|
|
12515
|
-
/* @__PURE__ */ jsx99(SelectContent, { className: "rounded-xl shadow-lg", children: (folders || FOLDER_OPTIONS.map((f) => ({ id: f, name: f }))).map((f) => /* @__PURE__ */ jsx99(SelectItem, { value: f.name, className: "text-xs", children: f.name }, f.id)) })
|
|
12516
|
-
] })
|
|
12517
|
-
] }),
|
|
12518
|
-
/* @__PURE__ */ jsxs61("div", { className: "space-y-1.5", children: [
|
|
12519
|
-
/* @__PURE__ */ jsx99(Label, { className: "text-xs font-semibold text-foreground", children: "Category Subfolder" }),
|
|
12520
|
-
/* @__PURE__ */ jsxs61(Select, { value: subFolder, onValueChange: setSubFolder, children: [
|
|
12521
|
-
/* @__PURE__ */ jsx99(SelectTrigger, { className: "h-8.5 text-xs rounded-xl bg-background border-border/80", children: /* @__PURE__ */ jsx99(SelectValue, { placeholder: "Select category" }) }),
|
|
12522
|
-
/* @__PURE__ */ jsx99(SelectContent, { className: "rounded-xl shadow-lg", children: SUB_FOLDER_OPTIONS.map((cat) => /* @__PURE__ */ jsx99(SelectItem, { value: cat, className: "text-xs", children: cat }, cat)) })
|
|
12523
|
-
] })
|
|
12524
|
-
] })
|
|
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
|
+
] }) })
|
|
12525
12178
|
] }),
|
|
12526
|
-
/* @__PURE__ */
|
|
12527
|
-
/* @__PURE__ */
|
|
12528
|
-
/* @__PURE__ */
|
|
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(
|
|
12529
12182
|
Input,
|
|
12530
12183
|
{
|
|
12531
12184
|
value: subject,
|
|
12532
12185
|
onChange: (e) => setSubject(e.target.value),
|
|
12533
|
-
placeholder: "
|
|
12534
|
-
className: "h-
|
|
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"
|
|
12535
12226
|
}
|
|
12536
12227
|
)
|
|
12537
12228
|
] }),
|
|
12538
|
-
/* @__PURE__ */
|
|
12539
|
-
/* @__PURE__ */
|
|
12540
|
-
/* @__PURE__ */
|
|
12541
|
-
/* @__PURE__ */
|
|
12542
|
-
/* @__PURE__ */
|
|
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(
|
|
12543
12234
|
"button",
|
|
12544
12235
|
{
|
|
12545
12236
|
type: "button",
|
|
12546
|
-
className: "
|
|
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",
|
|
12547
12238
|
title: "Bold",
|
|
12548
|
-
children: /* @__PURE__ */
|
|
12239
|
+
children: /* @__PURE__ */ jsx98(Bold, { className: "h-3.5 w-3.5" })
|
|
12549
12240
|
}
|
|
12550
12241
|
),
|
|
12551
|
-
/* @__PURE__ */
|
|
12242
|
+
/* @__PURE__ */ jsx98(
|
|
12552
12243
|
"button",
|
|
12553
12244
|
{
|
|
12554
12245
|
type: "button",
|
|
12555
|
-
className: "
|
|
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",
|
|
12556
12247
|
title: "Italic",
|
|
12557
|
-
children: /* @__PURE__ */
|
|
12248
|
+
children: /* @__PURE__ */ jsx98(Italic, { className: "h-3.5 w-3.5" })
|
|
12558
12249
|
}
|
|
12559
12250
|
),
|
|
12560
|
-
/* @__PURE__ */
|
|
12251
|
+
/* @__PURE__ */ jsx98(
|
|
12561
12252
|
"button",
|
|
12562
12253
|
{
|
|
12563
12254
|
type: "button",
|
|
12564
|
-
className: "
|
|
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",
|
|
12565
12256
|
title: "Underline",
|
|
12566
|
-
children: /* @__PURE__ */
|
|
12257
|
+
children: /* @__PURE__ */ jsx98(Underline, { className: "h-3.5 w-3.5" })
|
|
12567
12258
|
}
|
|
12568
12259
|
),
|
|
12569
|
-
/* @__PURE__ */
|
|
12570
|
-
/* @__PURE__ */
|
|
12260
|
+
/* @__PURE__ */ jsx98("div", { className: "h-4 w-[1px] bg-border mx-1" }),
|
|
12261
|
+
/* @__PURE__ */ jsx98(
|
|
12571
12262
|
"button",
|
|
12572
12263
|
{
|
|
12573
12264
|
type: "button",
|
|
12574
|
-
className: "
|
|
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",
|
|
12575
12266
|
title: "Bullet List",
|
|
12576
|
-
children: /* @__PURE__ */
|
|
12267
|
+
children: /* @__PURE__ */ jsx98(List, { className: "h-3.5 w-3.5" })
|
|
12577
12268
|
}
|
|
12578
12269
|
),
|
|
12579
|
-
/* @__PURE__ */
|
|
12270
|
+
/* @__PURE__ */ jsx98(
|
|
12580
12271
|
"button",
|
|
12581
12272
|
{
|
|
12582
12273
|
type: "button",
|
|
12583
|
-
className: "
|
|
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",
|
|
12584
12275
|
title: "Numbered List",
|
|
12585
|
-
children: /* @__PURE__ */
|
|
12276
|
+
children: /* @__PURE__ */ jsx98(ListOrdered, { className: "h-3.5 w-3.5" })
|
|
12586
12277
|
}
|
|
12587
12278
|
),
|
|
12588
|
-
/* @__PURE__ */
|
|
12589
|
-
/* @__PURE__ */
|
|
12279
|
+
/* @__PURE__ */ jsx98("div", { className: "h-4 w-[1px] bg-border mx-1" }),
|
|
12280
|
+
/* @__PURE__ */ jsx98(
|
|
12590
12281
|
"button",
|
|
12591
12282
|
{
|
|
12592
12283
|
type: "button",
|
|
12593
12284
|
onClick: () => fileInputRef.current?.click(),
|
|
12594
|
-
className: "
|
|
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",
|
|
12595
12286
|
title: "Attach Files",
|
|
12596
|
-
children:
|
|
12597
|
-
|
|
12598
|
-
|
|
12599
|
-
|
|
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
|
|
12600
12298
|
}
|
|
12601
12299
|
)
|
|
12602
12300
|
] }),
|
|
12603
|
-
/* @__PURE__ */
|
|
12301
|
+
/* @__PURE__ */ jsx98(
|
|
12604
12302
|
"textarea",
|
|
12605
12303
|
{
|
|
12606
12304
|
value: body,
|
|
12607
12305
|
onChange: (e) => setBody(e.target.value),
|
|
12608
|
-
placeholder: "
|
|
12306
|
+
placeholder: "Type description, remarks, or notes here...",
|
|
12609
12307
|
rows: 4,
|
|
12610
|
-
className: "w-full p-3 text-
|
|
12308
|
+
className: "w-full bg-transparent p-3 text-sm outline-none resize-y border-0 focus:ring-0"
|
|
12611
12309
|
}
|
|
12612
12310
|
)
|
|
12613
12311
|
] })
|
|
12614
12312
|
] }),
|
|
12615
|
-
/* @__PURE__ */
|
|
12616
|
-
/* @__PURE__ */
|
|
12617
|
-
|
|
12618
|
-
|
|
12619
|
-
|
|
12620
|
-
")"
|
|
12621
|
-
] }),
|
|
12622
|
-
/* @__PURE__ */ jsx99(
|
|
12623
|
-
"input",
|
|
12624
|
-
{
|
|
12625
|
-
type: "file",
|
|
12626
|
-
multiple: true,
|
|
12627
|
-
ref: fileInputRef,
|
|
12628
|
-
onChange: handleFileChange,
|
|
12629
|
-
className: "hidden"
|
|
12630
|
-
}
|
|
12631
|
-
),
|
|
12632
|
-
/* @__PURE__ */ jsxs61(
|
|
12633
|
-
Button,
|
|
12634
|
-
{
|
|
12635
|
-
type: "button",
|
|
12636
|
-
variant: "outline",
|
|
12637
|
-
size: "sm",
|
|
12638
|
-
onClick: () => fileInputRef.current?.click(),
|
|
12639
|
-
className: "h-7 text-xs gap-1.5 rounded-xl border-dashed",
|
|
12640
|
-
children: [
|
|
12641
|
-
/* @__PURE__ */ jsx99(Paperclip2, { className: "h-3 w-3" }),
|
|
12642
|
-
/* @__PURE__ */ jsx99("span", { children: "Browse Files" })
|
|
12643
|
-
]
|
|
12644
|
-
}
|
|
12645
|
-
)
|
|
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
|
+
")"
|
|
12646
12318
|
] }),
|
|
12647
|
-
attachments.
|
|
12648
|
-
"div",
|
|
12649
|
-
{
|
|
12650
|
-
onClick: () => fileInputRef.current?.click(),
|
|
12651
|
-
className: "flex flex-col items-center justify-center gap-2 p-6 border-2 border-dashed border-border/80 rounded-2xl bg-muted/10 text-muted-foreground hover:border-indigo-400 hover:bg-indigo-50/20 dark:hover:bg-indigo-950/20 transition-all cursor-pointer text-center",
|
|
12652
|
-
children: [
|
|
12653
|
-
/* @__PURE__ */ jsx99(UploadCloud, { className: "h-8 w-8 text-indigo-500" }),
|
|
12654
|
-
/* @__PURE__ */ jsxs61("div", { children: [
|
|
12655
|
-
/* @__PURE__ */ jsx99("p", { className: "text-xs font-bold text-foreground", children: "Click to upload or drag and drop" }),
|
|
12656
|
-
/* @__PURE__ */ jsx99("p", { className: "text-[11px] text-muted-foreground mt-0.5", children: "PDF, DOCX, XLSX, PNG, JPG, MP4 or ZIP up to 50MB" })
|
|
12657
|
-
] })
|
|
12658
|
-
]
|
|
12659
|
-
}
|
|
12660
|
-
) : /* @__PURE__ */ jsx99("div", { className: "grid grid-cols-1 sm:grid-cols-2 gap-2", children: attachments.map((att) => /* @__PURE__ */ jsxs61(
|
|
12319
|
+
/* @__PURE__ */ jsx98("div", { className: "flex flex-wrap gap-2", children: attachments.map((att) => /* @__PURE__ */ jsxs60(
|
|
12661
12320
|
"div",
|
|
12662
12321
|
{
|
|
12663
|
-
className: "flex items-center
|
|
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",
|
|
12664
12323
|
children: [
|
|
12665
|
-
/* @__PURE__ */
|
|
12666
|
-
|
|
12667
|
-
|
|
12668
|
-
|
|
12669
|
-
|
|
12670
|
-
|
|
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
|
+
")"
|
|
12671
12330
|
] }),
|
|
12672
|
-
/* @__PURE__ */
|
|
12673
|
-
|
|
12674
|
-
|
|
12675
|
-
|
|
12676
|
-
|
|
12677
|
-
|
|
12678
|
-
|
|
12679
|
-
|
|
12680
|
-
|
|
12681
|
-
}
|
|
12682
|
-
),
|
|
12683
|
-
/* @__PURE__ */ jsx99(
|
|
12684
|
-
"button",
|
|
12685
|
-
{
|
|
12686
|
-
type: "button",
|
|
12687
|
-
onClick: () => handleRemoveAttachment(att.id),
|
|
12688
|
-
className: "p-1 rounded-lg hover:bg-rose-50 dark:hover:bg-rose-950/30 text-rose-500 hover:text-rose-600",
|
|
12689
|
-
title: "Remove",
|
|
12690
|
-
children: /* @__PURE__ */ jsx99(X6, { className: "h-3.5 w-3.5" })
|
|
12691
|
-
}
|
|
12692
|
-
)
|
|
12693
|
-
] })
|
|
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
|
+
)
|
|
12694
12340
|
]
|
|
12695
12341
|
},
|
|
12696
12342
|
att.id
|
|
12697
12343
|
)) })
|
|
12698
|
-
] })
|
|
12699
|
-
|
|
12700
|
-
|
|
12701
|
-
|
|
12702
|
-
|
|
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,
|
|
12703
12359
|
{
|
|
12704
|
-
|
|
12705
|
-
|
|
12706
|
-
|
|
12707
|
-
className: "h-
|
|
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
|
+
]
|
|
12708
12380
|
}
|
|
12709
12381
|
)
|
|
12710
12382
|
] })
|
|
@@ -12715,7 +12387,7 @@ function FileUploadForm({
|
|
|
12715
12387
|
}
|
|
12716
12388
|
|
|
12717
12389
|
// src/design-system/templates/list-template.tsx
|
|
12718
|
-
import { jsx as
|
|
12390
|
+
import { jsx as jsx99, jsxs as jsxs61 } from "react/jsx-runtime";
|
|
12719
12391
|
function ListTemplate({
|
|
12720
12392
|
title,
|
|
12721
12393
|
description,
|
|
@@ -12735,8 +12407,8 @@ function ListTemplate({
|
|
|
12735
12407
|
...props
|
|
12736
12408
|
}) {
|
|
12737
12409
|
const hasFilterBar = Boolean(onSearchChange) || Boolean(filters) || activeFilters && activeFilters.length > 0 || Boolean(filterActions);
|
|
12738
|
-
return /* @__PURE__ */
|
|
12739
|
-
/* @__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(
|
|
12740
12412
|
PageHeader,
|
|
12741
12413
|
{
|
|
12742
12414
|
title,
|
|
@@ -12746,7 +12418,7 @@ function ListTemplate({
|
|
|
12746
12418
|
actions
|
|
12747
12419
|
}
|
|
12748
12420
|
),
|
|
12749
|
-
hasFilterBar && /* @__PURE__ */
|
|
12421
|
+
hasFilterBar && /* @__PURE__ */ jsx99(
|
|
12750
12422
|
FilterBar,
|
|
12751
12423
|
{
|
|
12752
12424
|
searchPlaceholder,
|
|
@@ -12758,14 +12430,14 @@ function ListTemplate({
|
|
|
12758
12430
|
actions: filterActions
|
|
12759
12431
|
}
|
|
12760
12432
|
),
|
|
12761
|
-
/* @__PURE__ */
|
|
12762
|
-
footer && /* @__PURE__ */
|
|
12433
|
+
/* @__PURE__ */ jsx99("div", { className: "flex-1", children }),
|
|
12434
|
+
footer && /* @__PURE__ */ jsx99("div", { className: "pt-2", children: footer })
|
|
12763
12435
|
] });
|
|
12764
12436
|
}
|
|
12765
12437
|
|
|
12766
12438
|
// src/design-system/templates/detail-template.tsx
|
|
12767
12439
|
import { ArrowLeft as ArrowLeft5 } from "lucide-react";
|
|
12768
|
-
import { jsx as
|
|
12440
|
+
import { jsx as jsx100, jsxs as jsxs62 } from "react/jsx-runtime";
|
|
12769
12441
|
function DetailTemplate({
|
|
12770
12442
|
title,
|
|
12771
12443
|
description,
|
|
@@ -12780,9 +12452,9 @@ function DetailTemplate({
|
|
|
12780
12452
|
className,
|
|
12781
12453
|
...props
|
|
12782
12454
|
}) {
|
|
12783
|
-
return /* @__PURE__ */
|
|
12784
|
-
/* @__PURE__ */
|
|
12785
|
-
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(
|
|
12786
12458
|
Button,
|
|
12787
12459
|
{
|
|
12788
12460
|
variant: "ghost",
|
|
@@ -12790,12 +12462,12 @@ function DetailTemplate({
|
|
|
12790
12462
|
onClick: onBack,
|
|
12791
12463
|
className: "w-fit gap-1.5 px-0 text-xs text-muted-foreground hover:bg-transparent hover:text-foreground",
|
|
12792
12464
|
children: [
|
|
12793
|
-
/* @__PURE__ */
|
|
12465
|
+
/* @__PURE__ */ jsx100(ArrowLeft5, { className: "h-3.5 w-3.5" }),
|
|
12794
12466
|
backLabel
|
|
12795
12467
|
]
|
|
12796
12468
|
}
|
|
12797
12469
|
),
|
|
12798
|
-
/* @__PURE__ */
|
|
12470
|
+
/* @__PURE__ */ jsx100(
|
|
12799
12471
|
PageHeader,
|
|
12800
12472
|
{
|
|
12801
12473
|
title,
|
|
@@ -12806,8 +12478,8 @@ function DetailTemplate({
|
|
|
12806
12478
|
}
|
|
12807
12479
|
)
|
|
12808
12480
|
] }),
|
|
12809
|
-
highlights && /* @__PURE__ */
|
|
12810
|
-
/* @__PURE__ */
|
|
12481
|
+
highlights && /* @__PURE__ */ jsx100("div", { className: "grid gap-4 sm:grid-cols-2 lg:grid-cols-4", children: highlights }),
|
|
12482
|
+
/* @__PURE__ */ jsxs62(
|
|
12811
12483
|
"div",
|
|
12812
12484
|
{
|
|
12813
12485
|
className: cn(
|
|
@@ -12815,8 +12487,8 @@ function DetailTemplate({
|
|
|
12815
12487
|
sidebar ? "grid-cols-1 lg:grid-cols-3" : "grid-cols-1"
|
|
12816
12488
|
),
|
|
12817
12489
|
children: [
|
|
12818
|
-
/* @__PURE__ */
|
|
12819
|
-
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 })
|
|
12820
12492
|
]
|
|
12821
12493
|
}
|
|
12822
12494
|
)
|
|
@@ -12825,7 +12497,7 @@ function DetailTemplate({
|
|
|
12825
12497
|
|
|
12826
12498
|
// src/design-system/templates/form-template.tsx
|
|
12827
12499
|
import { ArrowLeft as ArrowLeft6 } from "lucide-react";
|
|
12828
|
-
import { jsx as
|
|
12500
|
+
import { jsx as jsx101, jsxs as jsxs63 } from "react/jsx-runtime";
|
|
12829
12501
|
function FormTemplate({
|
|
12830
12502
|
title,
|
|
12831
12503
|
description,
|
|
@@ -12844,9 +12516,9 @@ function FormTemplate({
|
|
|
12844
12516
|
onSubmit,
|
|
12845
12517
|
...props
|
|
12846
12518
|
}) {
|
|
12847
|
-
return /* @__PURE__ */
|
|
12848
|
-
/* @__PURE__ */
|
|
12849
|
-
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(
|
|
12850
12522
|
Button,
|
|
12851
12523
|
{
|
|
12852
12524
|
type: "button",
|
|
@@ -12855,12 +12527,12 @@ function FormTemplate({
|
|
|
12855
12527
|
onClick: onBack,
|
|
12856
12528
|
className: "w-fit gap-1.5 px-0 text-xs text-muted-foreground hover:bg-transparent hover:text-foreground",
|
|
12857
12529
|
children: [
|
|
12858
|
-
/* @__PURE__ */
|
|
12530
|
+
/* @__PURE__ */ jsx101(ArrowLeft6, { className: "h-3.5 w-3.5" }),
|
|
12859
12531
|
backLabel
|
|
12860
12532
|
]
|
|
12861
12533
|
}
|
|
12862
12534
|
),
|
|
12863
|
-
/* @__PURE__ */
|
|
12535
|
+
/* @__PURE__ */ jsx101(
|
|
12864
12536
|
PageHeader,
|
|
12865
12537
|
{
|
|
12866
12538
|
title,
|
|
@@ -12870,9 +12542,9 @@ function FormTemplate({
|
|
|
12870
12542
|
}
|
|
12871
12543
|
)
|
|
12872
12544
|
] }),
|
|
12873
|
-
/* @__PURE__ */
|
|
12874
|
-
/* @__PURE__ */
|
|
12875
|
-
/* @__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(
|
|
12876
12548
|
"div",
|
|
12877
12549
|
{
|
|
12878
12550
|
className: cn(
|
|
@@ -12880,9 +12552,9 @@ function FormTemplate({
|
|
|
12880
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"
|
|
12881
12553
|
),
|
|
12882
12554
|
children: [
|
|
12883
|
-
/* @__PURE__ */
|
|
12884
|
-
/* @__PURE__ */
|
|
12885
|
-
onCancel && /* @__PURE__ */
|
|
12555
|
+
/* @__PURE__ */ jsx101("div", { children: secondaryActions }),
|
|
12556
|
+
/* @__PURE__ */ jsxs63("div", { className: "flex items-center gap-3", children: [
|
|
12557
|
+
onCancel && /* @__PURE__ */ jsx101(
|
|
12886
12558
|
Button,
|
|
12887
12559
|
{
|
|
12888
12560
|
type: "button",
|
|
@@ -12892,7 +12564,7 @@ function FormTemplate({
|
|
|
12892
12564
|
children: cancelLabel
|
|
12893
12565
|
}
|
|
12894
12566
|
),
|
|
12895
|
-
/* @__PURE__ */
|
|
12567
|
+
/* @__PURE__ */ jsx101(Button, { type: "submit", disabled: isSubmitting, children: isSubmitting ? "Saving..." : submitLabel })
|
|
12896
12568
|
] })
|
|
12897
12569
|
]
|
|
12898
12570
|
}
|
|
@@ -12902,8 +12574,8 @@ function FormTemplate({
|
|
|
12902
12574
|
}
|
|
12903
12575
|
|
|
12904
12576
|
// src/design-system/templates/wizard-template.tsx
|
|
12905
|
-
import { Check as
|
|
12906
|
-
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";
|
|
12907
12579
|
function WizardTemplate({
|
|
12908
12580
|
title,
|
|
12909
12581
|
description,
|
|
@@ -12924,18 +12596,18 @@ function WizardTemplate({
|
|
|
12924
12596
|
}) {
|
|
12925
12597
|
const isLastStep = currentStepIndex === steps.length - 1;
|
|
12926
12598
|
const isFirstStep = currentStepIndex === 0;
|
|
12927
|
-
return /* @__PURE__ */
|
|
12928
|
-
/* @__PURE__ */
|
|
12929
|
-
/* @__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) => {
|
|
12930
12602
|
const isCompleted = idx < currentStepIndex;
|
|
12931
12603
|
const isCurrent = idx === currentStepIndex;
|
|
12932
12604
|
const isClickable = onStepChange && idx < currentStepIndex;
|
|
12933
|
-
return /* @__PURE__ */
|
|
12605
|
+
return /* @__PURE__ */ jsxs64(
|
|
12934
12606
|
"li",
|
|
12935
12607
|
{
|
|
12936
12608
|
className: "flex flex-1 items-center gap-2.5 min-w-[120px]",
|
|
12937
12609
|
children: [
|
|
12938
|
-
/* @__PURE__ */
|
|
12610
|
+
/* @__PURE__ */ jsxs64(
|
|
12939
12611
|
"button",
|
|
12940
12612
|
{
|
|
12941
12613
|
type: "button",
|
|
@@ -12946,7 +12618,7 @@ function WizardTemplate({
|
|
|
12946
12618
|
isClickable && "cursor-pointer hover:opacity-80"
|
|
12947
12619
|
),
|
|
12948
12620
|
children: [
|
|
12949
|
-
/* @__PURE__ */
|
|
12621
|
+
/* @__PURE__ */ jsx102(
|
|
12950
12622
|
"span",
|
|
12951
12623
|
{
|
|
12952
12624
|
className: cn(
|
|
@@ -12955,10 +12627,10 @@ function WizardTemplate({
|
|
|
12955
12627
|
isCurrent && "border-2 border-primary bg-primary/10 text-primary font-bold",
|
|
12956
12628
|
!isCompleted && !isCurrent && "border border-border bg-muted text-muted-foreground"
|
|
12957
12629
|
),
|
|
12958
|
-
children: isCompleted ? /* @__PURE__ */
|
|
12630
|
+
children: isCompleted ? /* @__PURE__ */ jsx102(Check7, { className: "h-4 w-4" }) : idx + 1
|
|
12959
12631
|
}
|
|
12960
12632
|
),
|
|
12961
|
-
/* @__PURE__ */
|
|
12633
|
+
/* @__PURE__ */ jsx102("div", { className: "hidden sm:block", children: /* @__PURE__ */ jsx102(
|
|
12962
12634
|
"div",
|
|
12963
12635
|
{
|
|
12964
12636
|
className: cn(
|
|
@@ -12971,7 +12643,7 @@ function WizardTemplate({
|
|
|
12971
12643
|
]
|
|
12972
12644
|
}
|
|
12973
12645
|
),
|
|
12974
|
-
idx < steps.length - 1 && /* @__PURE__ */
|
|
12646
|
+
idx < steps.length - 1 && /* @__PURE__ */ jsx102(
|
|
12975
12647
|
"div",
|
|
12976
12648
|
{
|
|
12977
12649
|
className: cn(
|
|
@@ -12985,9 +12657,9 @@ function WizardTemplate({
|
|
|
12985
12657
|
step.id
|
|
12986
12658
|
);
|
|
12987
12659
|
}) }) }),
|
|
12988
|
-
/* @__PURE__ */
|
|
12989
|
-
/* @__PURE__ */
|
|
12990
|
-
/* @__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(
|
|
12991
12663
|
Button,
|
|
12992
12664
|
{
|
|
12993
12665
|
type: "button",
|
|
@@ -12995,12 +12667,12 @@ function WizardTemplate({
|
|
|
12995
12667
|
disabled: isFirstStep || isSubmitting,
|
|
12996
12668
|
onClick: onPrevious,
|
|
12997
12669
|
children: [
|
|
12998
|
-
/* @__PURE__ */
|
|
12670
|
+
/* @__PURE__ */ jsx102(ChevronLeft3, { className: "mr-1 h-4 w-4" }),
|
|
12999
12671
|
previousLabel
|
|
13000
12672
|
]
|
|
13001
12673
|
}
|
|
13002
12674
|
),
|
|
13003
|
-
isLastStep ? /* @__PURE__ */
|
|
12675
|
+
isLastStep ? /* @__PURE__ */ jsx102(
|
|
13004
12676
|
Button,
|
|
13005
12677
|
{
|
|
13006
12678
|
type: "button",
|
|
@@ -13008,7 +12680,7 @@ function WizardTemplate({
|
|
|
13008
12680
|
onClick: onSubmit,
|
|
13009
12681
|
children: isSubmitting ? "Submitting..." : submitLabel
|
|
13010
12682
|
}
|
|
13011
|
-
) : /* @__PURE__ */
|
|
12683
|
+
) : /* @__PURE__ */ jsxs64(
|
|
13012
12684
|
Button,
|
|
13013
12685
|
{
|
|
13014
12686
|
type: "button",
|
|
@@ -13016,7 +12688,7 @@ function WizardTemplate({
|
|
|
13016
12688
|
onClick: onNext,
|
|
13017
12689
|
children: [
|
|
13018
12690
|
nextLabel,
|
|
13019
|
-
/* @__PURE__ */
|
|
12691
|
+
/* @__PURE__ */ jsx102(ChevronRight9, { className: "ml-1 h-4 w-4" })
|
|
13020
12692
|
]
|
|
13021
12693
|
}
|
|
13022
12694
|
)
|
|
@@ -13025,7 +12697,7 @@ function WizardTemplate({
|
|
|
13025
12697
|
}
|
|
13026
12698
|
|
|
13027
12699
|
// src/design-system/templates/dashboard-template.tsx
|
|
13028
|
-
import { jsx as
|
|
12700
|
+
import { jsx as jsx103, jsxs as jsxs65 } from "react/jsx-runtime";
|
|
13029
12701
|
function DashboardTemplate({
|
|
13030
12702
|
title,
|
|
13031
12703
|
description,
|
|
@@ -13039,8 +12711,8 @@ function DashboardTemplate({
|
|
|
13039
12711
|
className,
|
|
13040
12712
|
...props
|
|
13041
12713
|
}) {
|
|
13042
|
-
return /* @__PURE__ */
|
|
13043
|
-
/* @__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(
|
|
13044
12716
|
PageHeader,
|
|
13045
12717
|
{
|
|
13046
12718
|
title,
|
|
@@ -13050,15 +12722,15 @@ function DashboardTemplate({
|
|
|
13050
12722
|
actions
|
|
13051
12723
|
}
|
|
13052
12724
|
),
|
|
13053
|
-
metrics && /* @__PURE__ */
|
|
13054
|
-
charts && /* @__PURE__ */
|
|
13055
|
-
activity && /* @__PURE__ */
|
|
13056
|
-
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 })
|
|
13057
12729
|
] });
|
|
13058
12730
|
}
|
|
13059
12731
|
|
|
13060
12732
|
// src/design-system/templates/workspace-template.tsx
|
|
13061
|
-
import { jsx as
|
|
12733
|
+
import { jsx as jsx104, jsxs as jsxs66 } from "react/jsx-runtime";
|
|
13062
12734
|
function WorkspaceTemplate({
|
|
13063
12735
|
header,
|
|
13064
12736
|
leftSidebar,
|
|
@@ -13068,7 +12740,7 @@ function WorkspaceTemplate({
|
|
|
13068
12740
|
className,
|
|
13069
12741
|
...props
|
|
13070
12742
|
}) {
|
|
13071
|
-
return /* @__PURE__ */
|
|
12743
|
+
return /* @__PURE__ */ jsxs66(
|
|
13072
12744
|
"div",
|
|
13073
12745
|
{
|
|
13074
12746
|
className: cn(
|
|
@@ -13077,13 +12749,13 @@ function WorkspaceTemplate({
|
|
|
13077
12749
|
),
|
|
13078
12750
|
...props,
|
|
13079
12751
|
children: [
|
|
13080
|
-
header && /* @__PURE__ */
|
|
13081
|
-
/* @__PURE__ */
|
|
13082
|
-
leftSidebar && /* @__PURE__ */
|
|
13083
|
-
/* @__PURE__ */
|
|
13084
|
-
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 })
|
|
13085
12757
|
] }),
|
|
13086
|
-
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 })
|
|
13087
12759
|
]
|
|
13088
12760
|
}
|
|
13089
12761
|
);
|
|
@@ -13096,7 +12768,7 @@ import { useRouter as useRouter2 } from "next/navigation";
|
|
|
13096
12768
|
|
|
13097
12769
|
// src/components/layout/header.tsx
|
|
13098
12770
|
import { useEffect as useEffect13, useState as useState14 } from "react";
|
|
13099
|
-
import { jsx as
|
|
12771
|
+
import { jsx as jsx105, jsxs as jsxs67 } from "react/jsx-runtime";
|
|
13100
12772
|
function Header({ className, fixed, children, ...props }) {
|
|
13101
12773
|
const [offset, setOffset] = useState14(0);
|
|
13102
12774
|
useEffect13(() => {
|
|
@@ -13108,7 +12780,7 @@ function Header({ className, fixed, children, ...props }) {
|
|
|
13108
12780
|
}, []);
|
|
13109
12781
|
return (
|
|
13110
12782
|
// Page header container: fixed mode me top par sticky behavior deta hai.
|
|
13111
|
-
/* @__PURE__ */
|
|
12783
|
+
/* @__PURE__ */ jsx105(
|
|
13112
12784
|
"header",
|
|
13113
12785
|
{
|
|
13114
12786
|
className: cn(
|
|
@@ -13118,7 +12790,7 @@ function Header({ className, fixed, children, ...props }) {
|
|
|
13118
12790
|
className
|
|
13119
12791
|
),
|
|
13120
12792
|
...props,
|
|
13121
|
-
children: /* @__PURE__ */
|
|
12793
|
+
children: /* @__PURE__ */ jsxs67(
|
|
13122
12794
|
"div",
|
|
13123
12795
|
{
|
|
13124
12796
|
className: cn(
|
|
@@ -13127,7 +12799,7 @@ function Header({ className, fixed, children, ...props }) {
|
|
|
13127
12799
|
offset > 10 && fixed && "after:absolute after:inset-0 after:-z-10 after:bg-background/20 after:backdrop-blur-lg"
|
|
13128
12800
|
),
|
|
13129
12801
|
children: [
|
|
13130
|
-
/* @__PURE__ */
|
|
12802
|
+
/* @__PURE__ */ jsx105(AppLogo, { className: "shrink-0 md:hidden" }),
|
|
13131
12803
|
children
|
|
13132
12804
|
]
|
|
13133
12805
|
}
|
|
@@ -13139,7 +12811,7 @@ function Header({ className, fixed, children, ...props }) {
|
|
|
13139
12811
|
|
|
13140
12812
|
// src/components/search.tsx
|
|
13141
12813
|
import { SearchIcon as SearchIcon5 } from "lucide-react";
|
|
13142
|
-
import { jsx as
|
|
12814
|
+
import { jsx as jsx106 } from "react/jsx-runtime";
|
|
13143
12815
|
function Search7({
|
|
13144
12816
|
className = "",
|
|
13145
12817
|
placeholder = "Search",
|
|
@@ -13152,7 +12824,7 @@ function Search7({
|
|
|
13152
12824
|
search.setOpen(true);
|
|
13153
12825
|
}
|
|
13154
12826
|
};
|
|
13155
|
-
return /* @__PURE__ */
|
|
12827
|
+
return /* @__PURE__ */ jsx106(
|
|
13156
12828
|
Button,
|
|
13157
12829
|
{
|
|
13158
12830
|
...props,
|
|
@@ -13162,7 +12834,7 @@ function Search7({
|
|
|
13162
12834
|
"aria-label": "Search",
|
|
13163
12835
|
"aria-keyshortcuts": "Meta+K Control+K",
|
|
13164
12836
|
onClick: openSearch,
|
|
13165
|
-
children: /* @__PURE__ */
|
|
12837
|
+
children: /* @__PURE__ */ jsx106(SearchIcon5, { className: "size-5", "aria-hidden": "true" })
|
|
13166
12838
|
}
|
|
13167
12839
|
);
|
|
13168
12840
|
}
|
|
@@ -13191,6 +12863,7 @@ function createClient2() {
|
|
|
13191
12863
|
|
|
13192
12864
|
// src/stores/notification-store.ts
|
|
13193
12865
|
var activeChannel = null;
|
|
12866
|
+
var activeUserId = null;
|
|
13194
12867
|
var useNotificationStore = create2((set, get) => ({
|
|
13195
12868
|
notifications: [],
|
|
13196
12869
|
unreadCount: 0,
|
|
@@ -13331,7 +13004,7 @@ var useNotificationStore = create2((set, get) => ({
|
|
|
13331
13004
|
}));
|
|
13332
13005
|
|
|
13333
13006
|
// src/design-system/templates/app-header.tsx
|
|
13334
|
-
import { Fragment as Fragment4, jsx as
|
|
13007
|
+
import { Fragment as Fragment4, jsx as jsx107, jsxs as jsxs68 } from "react/jsx-runtime";
|
|
13335
13008
|
function AppHeader({
|
|
13336
13009
|
title,
|
|
13337
13010
|
fixed = true,
|
|
@@ -13350,12 +13023,12 @@ function AppHeader({
|
|
|
13350
13023
|
unsubscribe();
|
|
13351
13024
|
};
|
|
13352
13025
|
}, [currentUser, fetchNotifications, subscribeToNotifications, unsubscribe]);
|
|
13353
|
-
return /* @__PURE__ */
|
|
13354
|
-
/* @__PURE__ */
|
|
13355
|
-
/* @__PURE__ */
|
|
13356
|
-
/* @__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 }),
|
|
13357
13030
|
children,
|
|
13358
|
-
/* @__PURE__ */
|
|
13031
|
+
/* @__PURE__ */ jsxs68(
|
|
13359
13032
|
Button,
|
|
13360
13033
|
{
|
|
13361
13034
|
variant: "ghost",
|
|
@@ -13364,18 +13037,18 @@ function AppHeader({
|
|
|
13364
13037
|
"aria-label": "Notifications",
|
|
13365
13038
|
onClick: () => router.push("/notification"),
|
|
13366
13039
|
children: [
|
|
13367
|
-
/* @__PURE__ */
|
|
13368
|
-
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 })
|
|
13369
13042
|
]
|
|
13370
13043
|
}
|
|
13371
13044
|
)
|
|
13372
13045
|
] })
|
|
13373
|
-
] }) : /* @__PURE__ */
|
|
13374
|
-
/* @__PURE__ */
|
|
13375
|
-
/* @__PURE__ */
|
|
13376
|
-
/* @__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 }),
|
|
13377
13050
|
children,
|
|
13378
|
-
/* @__PURE__ */
|
|
13051
|
+
/* @__PURE__ */ jsxs68(
|
|
13379
13052
|
Button,
|
|
13380
13053
|
{
|
|
13381
13054
|
variant: "ghost",
|
|
@@ -13384,8 +13057,8 @@ function AppHeader({
|
|
|
13384
13057
|
"aria-label": "Notifications",
|
|
13385
13058
|
onClick: () => router.push("/notification"),
|
|
13386
13059
|
children: [
|
|
13387
|
-
/* @__PURE__ */
|
|
13388
|
-
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 })
|
|
13389
13062
|
]
|
|
13390
13063
|
}
|
|
13391
13064
|
)
|
|
@@ -13497,7 +13170,7 @@ var sidebarData2 = {
|
|
|
13497
13170
|
};
|
|
13498
13171
|
|
|
13499
13172
|
// src/design-system/templates/app-logo.tsx
|
|
13500
|
-
import { jsx as
|
|
13173
|
+
import { jsx as jsx108 } from "react/jsx-runtime";
|
|
13501
13174
|
function AppLogo({ className, onClick }) {
|
|
13502
13175
|
const { toggleSidebar, setOpenMobile, isMobile } = useSidebar();
|
|
13503
13176
|
const team = sidebarData2.teams[0];
|
|
@@ -13514,7 +13187,7 @@ function AppLogo({ className, onClick }) {
|
|
|
13514
13187
|
toggleSidebar();
|
|
13515
13188
|
}
|
|
13516
13189
|
};
|
|
13517
|
-
return /* @__PURE__ */
|
|
13190
|
+
return /* @__PURE__ */ jsx108(
|
|
13518
13191
|
Button,
|
|
13519
13192
|
{
|
|
13520
13193
|
type: "button",
|
|
@@ -13525,14 +13198,14 @@ function AppLogo({ className, onClick }) {
|
|
|
13525
13198
|
className
|
|
13526
13199
|
),
|
|
13527
13200
|
"aria-label": "Open sidebar menu",
|
|
13528
|
-
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" }) })
|
|
13529
13202
|
}
|
|
13530
13203
|
);
|
|
13531
13204
|
}
|
|
13532
13205
|
|
|
13533
13206
|
// src/context/layout-provider.tsx
|
|
13534
13207
|
import { createContext as createContext9, useContext as useContext10, useState as useState15 } from "react";
|
|
13535
|
-
import { jsx as
|
|
13208
|
+
import { jsx as jsx109 } from "react/jsx-runtime";
|
|
13536
13209
|
var LAYOUT_COLLAPSIBLE_COOKIE_NAME = "layout_collapsible";
|
|
13537
13210
|
var LAYOUT_VARIANT_COOKIE_NAME = "layout_variant";
|
|
13538
13211
|
var LAYOUT_COOKIE_MAX_AGE = 60 * 60 * 24 * 7;
|
|
@@ -13576,7 +13249,7 @@ function LayoutProvider({ children }) {
|
|
|
13576
13249
|
showInlineNotFound,
|
|
13577
13250
|
setShowInlineNotFound
|
|
13578
13251
|
};
|
|
13579
|
-
return /* @__PURE__ */
|
|
13252
|
+
return /* @__PURE__ */ jsx109(LayoutContext, { value: contextValue, children });
|
|
13580
13253
|
}
|
|
13581
13254
|
function useLayout() {
|
|
13582
13255
|
const context = useContext10(LayoutContext);
|
|
@@ -13603,13 +13276,13 @@ function useLayout() {
|
|
|
13603
13276
|
// src/design-system/templates/nav-group.tsx
|
|
13604
13277
|
import Link3 from "next/link";
|
|
13605
13278
|
import { usePathname } from "next/navigation";
|
|
13606
|
-
import { ChevronRight as
|
|
13607
|
-
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";
|
|
13608
13281
|
function NavGroup({ title, items }) {
|
|
13609
13282
|
const { state, isMobile, openMobile, setOpenMobile } = useSidebar();
|
|
13610
13283
|
const href = usePathname();
|
|
13611
|
-
return /* @__PURE__ */
|
|
13612
|
-
/* @__PURE__ */
|
|
13284
|
+
return /* @__PURE__ */ jsxs69(SidebarGroup, { className: cn(title === "Menu" && "pt-0"), children: [
|
|
13285
|
+
/* @__PURE__ */ jsxs69(
|
|
13613
13286
|
SidebarGroupLabel,
|
|
13614
13287
|
{
|
|
13615
13288
|
className: cn(
|
|
@@ -13617,8 +13290,8 @@ function NavGroup({ title, items }) {
|
|
|
13617
13290
|
title === "Menu" && state !== "collapsed" && "sticky top-0 z-20 bg-sidebar py-1.5"
|
|
13618
13291
|
),
|
|
13619
13292
|
children: [
|
|
13620
|
-
/* @__PURE__ */
|
|
13621
|
-
title === "Menu" && !isMobile && /* @__PURE__ */
|
|
13293
|
+
/* @__PURE__ */ jsx110("span", { children: title }),
|
|
13294
|
+
title === "Menu" && !isMobile && /* @__PURE__ */ jsx110(
|
|
13622
13295
|
SidebarTrigger,
|
|
13623
13296
|
{
|
|
13624
13297
|
variant: "ghost",
|
|
@@ -13626,7 +13299,7 @@ function NavGroup({ title, items }) {
|
|
|
13626
13299
|
"aria-label": "Toggle sidebar"
|
|
13627
13300
|
}
|
|
13628
13301
|
),
|
|
13629
|
-
title === "Menu" && isMobile && openMobile && /* @__PURE__ */
|
|
13302
|
+
title === "Menu" && isMobile && openMobile && /* @__PURE__ */ jsx110(
|
|
13630
13303
|
Button,
|
|
13631
13304
|
{
|
|
13632
13305
|
type: "button",
|
|
@@ -13635,37 +13308,37 @@ function NavGroup({ title, items }) {
|
|
|
13635
13308
|
className: "size-6 shrink-0",
|
|
13636
13309
|
"aria-label": "Close sidebar",
|
|
13637
13310
|
onClick: () => setOpenMobile(false),
|
|
13638
|
-
children: /* @__PURE__ */
|
|
13311
|
+
children: /* @__PURE__ */ jsx110(X6, { className: "size-4", "aria-hidden": "true" })
|
|
13639
13312
|
}
|
|
13640
13313
|
)
|
|
13641
13314
|
]
|
|
13642
13315
|
}
|
|
13643
13316
|
),
|
|
13644
|
-
/* @__PURE__ */
|
|
13317
|
+
/* @__PURE__ */ jsx110(SidebarMenu, { children: items.map((item) => {
|
|
13645
13318
|
const key = `${item.title}-${item.url}`;
|
|
13646
13319
|
if (!item.items)
|
|
13647
|
-
return /* @__PURE__ */
|
|
13320
|
+
return /* @__PURE__ */ jsx110(SidebarMenuLink, { item, href }, key);
|
|
13648
13321
|
if (item.title === "Settings" && item.items.length === 0)
|
|
13649
|
-
return /* @__PURE__ */
|
|
13322
|
+
return /* @__PURE__ */ jsx110(SidebarMenuSettings, { item }, key);
|
|
13650
13323
|
if (state === "collapsed" && !isMobile)
|
|
13651
|
-
return /* @__PURE__ */
|
|
13652
|
-
return /* @__PURE__ */
|
|
13324
|
+
return /* @__PURE__ */ jsx110(SidebarMenuCollapsedDropdown, { item, href }, key);
|
|
13325
|
+
return /* @__PURE__ */ jsx110(SidebarMenuCollapsible, { item, href }, key);
|
|
13653
13326
|
}) })
|
|
13654
13327
|
] });
|
|
13655
13328
|
}
|
|
13656
13329
|
function NavBadge({ children }) {
|
|
13657
|
-
return /* @__PURE__ */
|
|
13330
|
+
return /* @__PURE__ */ jsx110(Badge, { className: "rounded-full px-1 py-0 text-xs", children });
|
|
13658
13331
|
}
|
|
13659
13332
|
function SidebarMenuLink({ item, href }) {
|
|
13660
13333
|
const { setOpenMobile } = useSidebar();
|
|
13661
13334
|
const { setShowInlineNotFound } = useLayout();
|
|
13662
|
-
return /* @__PURE__ */
|
|
13335
|
+
return /* @__PURE__ */ jsx110(SidebarMenuItem, { children: /* @__PURE__ */ jsx110(
|
|
13663
13336
|
SidebarMenuButton,
|
|
13664
13337
|
{
|
|
13665
13338
|
asChild: true,
|
|
13666
13339
|
isActive: checkIsActive(href, item),
|
|
13667
13340
|
tooltip: item.title,
|
|
13668
|
-
children: /* @__PURE__ */
|
|
13341
|
+
children: /* @__PURE__ */ jsxs69(
|
|
13669
13342
|
Link3,
|
|
13670
13343
|
{
|
|
13671
13344
|
href: item.url,
|
|
@@ -13674,9 +13347,9 @@ function SidebarMenuLink({ item, href }) {
|
|
|
13674
13347
|
setOpenMobile(false);
|
|
13675
13348
|
},
|
|
13676
13349
|
children: [
|
|
13677
|
-
item.icon && /* @__PURE__ */
|
|
13678
|
-
/* @__PURE__ */
|
|
13679
|
-
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 })
|
|
13680
13353
|
]
|
|
13681
13354
|
}
|
|
13682
13355
|
)
|
|
@@ -13686,7 +13359,7 @@ function SidebarMenuLink({ item, href }) {
|
|
|
13686
13359
|
function SidebarMenuSettings({ item }) {
|
|
13687
13360
|
const { setOpenMobile } = useSidebar();
|
|
13688
13361
|
const { showInlineNotFound, setShowInlineNotFound } = useLayout();
|
|
13689
|
-
return /* @__PURE__ */
|
|
13362
|
+
return /* @__PURE__ */ jsx110(SidebarMenuItem, { children: /* @__PURE__ */ jsxs69(
|
|
13690
13363
|
SidebarMenuButton,
|
|
13691
13364
|
{
|
|
13692
13365
|
tooltip: item.title,
|
|
@@ -13696,8 +13369,8 @@ function SidebarMenuSettings({ item }) {
|
|
|
13696
13369
|
setOpenMobile(false);
|
|
13697
13370
|
},
|
|
13698
13371
|
children: [
|
|
13699
|
-
item.icon && /* @__PURE__ */
|
|
13700
|
-
/* @__PURE__ */
|
|
13372
|
+
item.icon && /* @__PURE__ */ jsx110(item.icon, {}),
|
|
13373
|
+
/* @__PURE__ */ jsx110("span", { children: item.title })
|
|
13701
13374
|
]
|
|
13702
13375
|
}
|
|
13703
13376
|
) });
|
|
@@ -13708,25 +13381,25 @@ function SidebarMenuCollapsible({
|
|
|
13708
13381
|
}) {
|
|
13709
13382
|
const { setOpenMobile } = useSidebar();
|
|
13710
13383
|
const { setShowInlineNotFound } = useLayout();
|
|
13711
|
-
return /* @__PURE__ */
|
|
13384
|
+
return /* @__PURE__ */ jsx110(
|
|
13712
13385
|
Collapsible,
|
|
13713
13386
|
{
|
|
13714
13387
|
asChild: true,
|
|
13715
13388
|
defaultOpen: checkIsActive(href, item, true),
|
|
13716
13389
|
className: "group/collapsible",
|
|
13717
|
-
children: /* @__PURE__ */
|
|
13718
|
-
/* @__PURE__ */
|
|
13719
|
-
item.icon && /* @__PURE__ */
|
|
13720
|
-
/* @__PURE__ */
|
|
13721
|
-
item.badge && /* @__PURE__ */
|
|
13722
|
-
/* @__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" })
|
|
13723
13396
|
] }) }),
|
|
13724
|
-
/* @__PURE__ */
|
|
13397
|
+
/* @__PURE__ */ jsx110(CollapsibleContent, { className: "CollapsibleContent", children: /* @__PURE__ */ jsx110(SidebarMenuSub, { children: item.items.map((subItem) => /* @__PURE__ */ jsx110(SidebarMenuSubItem, { children: /* @__PURE__ */ jsx110(
|
|
13725
13398
|
SidebarMenuSubButton,
|
|
13726
13399
|
{
|
|
13727
13400
|
asChild: true,
|
|
13728
13401
|
isActive: checkIsActive(href, subItem),
|
|
13729
|
-
children: /* @__PURE__ */
|
|
13402
|
+
children: /* @__PURE__ */ jsxs69(
|
|
13730
13403
|
Link3,
|
|
13731
13404
|
{
|
|
13732
13405
|
href: subItem.url,
|
|
@@ -13735,9 +13408,9 @@ function SidebarMenuCollapsible({
|
|
|
13735
13408
|
setOpenMobile(false);
|
|
13736
13409
|
},
|
|
13737
13410
|
children: [
|
|
13738
|
-
subItem.icon && /* @__PURE__ */
|
|
13739
|
-
/* @__PURE__ */
|
|
13740
|
-
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 })
|
|
13741
13414
|
]
|
|
13742
13415
|
}
|
|
13743
13416
|
)
|
|
@@ -13751,36 +13424,36 @@ function SidebarMenuCollapsedDropdown({
|
|
|
13751
13424
|
item,
|
|
13752
13425
|
href
|
|
13753
13426
|
}) {
|
|
13754
|
-
return /* @__PURE__ */
|
|
13755
|
-
/* @__PURE__ */
|
|
13427
|
+
return /* @__PURE__ */ jsx110(SidebarMenuItem, { children: /* @__PURE__ */ jsxs69(DropdownMenu, { children: [
|
|
13428
|
+
/* @__PURE__ */ jsx110(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsxs69(
|
|
13756
13429
|
SidebarMenuButton,
|
|
13757
13430
|
{
|
|
13758
13431
|
tooltip: item.title,
|
|
13759
13432
|
isActive: checkIsActive(href, item),
|
|
13760
13433
|
children: [
|
|
13761
|
-
item.icon && /* @__PURE__ */
|
|
13762
|
-
/* @__PURE__ */
|
|
13763
|
-
item.badge && /* @__PURE__ */
|
|
13764
|
-
/* @__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" })
|
|
13765
13438
|
]
|
|
13766
13439
|
}
|
|
13767
13440
|
) }),
|
|
13768
|
-
/* @__PURE__ */
|
|
13769
|
-
/* @__PURE__ */
|
|
13441
|
+
/* @__PURE__ */ jsxs69(DropdownMenuContent, { side: "right", align: "start", sideOffset: 4, children: [
|
|
13442
|
+
/* @__PURE__ */ jsxs69(DropdownMenuLabel, { children: [
|
|
13770
13443
|
item.title,
|
|
13771
13444
|
" ",
|
|
13772
13445
|
item.badge ? `(${item.badge})` : ""
|
|
13773
13446
|
] }),
|
|
13774
|
-
/* @__PURE__ */
|
|
13775
|
-
item.items.map((sub) => /* @__PURE__ */
|
|
13447
|
+
/* @__PURE__ */ jsx110(DropdownMenuSeparator, {}),
|
|
13448
|
+
item.items.map((sub) => /* @__PURE__ */ jsx110(DropdownMenuItem, { asChild: true, children: /* @__PURE__ */ jsxs69(
|
|
13776
13449
|
Link3,
|
|
13777
13450
|
{
|
|
13778
13451
|
href: sub.url,
|
|
13779
13452
|
className: `${checkIsActive(href, sub) ? "bg-secondary" : ""}`,
|
|
13780
13453
|
children: [
|
|
13781
|
-
sub.icon && /* @__PURE__ */
|
|
13782
|
-
/* @__PURE__ */
|
|
13783
|
-
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 })
|
|
13784
13457
|
]
|
|
13785
13458
|
}
|
|
13786
13459
|
) }, `${sub.title}-${sub.url}`))
|
|
@@ -13795,20 +13468,20 @@ function checkIsActive(href, item, mainNav = false) {
|
|
|
13795
13468
|
}
|
|
13796
13469
|
|
|
13797
13470
|
// src/design-system/templates/team-switcher.tsx
|
|
13798
|
-
import { jsx as
|
|
13471
|
+
import { jsx as jsx111, jsxs as jsxs70 } from "react/jsx-runtime";
|
|
13799
13472
|
function TeamSwitcher({ teams }) {
|
|
13800
13473
|
useSidebar();
|
|
13801
13474
|
const activeTeam = teams[0];
|
|
13802
|
-
return /* @__PURE__ */
|
|
13475
|
+
return /* @__PURE__ */ jsx111(SidebarMenu, { children: /* @__PURE__ */ jsx111(SidebarMenuItem, { children: /* @__PURE__ */ jsxs70(
|
|
13803
13476
|
SidebarMenuButton,
|
|
13804
13477
|
{
|
|
13805
13478
|
size: "lg",
|
|
13806
13479
|
className: "data-[state=open]:bg-sidebar-accent data-[state=open]:text-sidebar-accent-foreground",
|
|
13807
13480
|
children: [
|
|
13808
|
-
/* @__PURE__ */
|
|
13809
|
-
/* @__PURE__ */
|
|
13810
|
-
/* @__PURE__ */
|
|
13811
|
-
/* @__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 })
|
|
13812
13485
|
] })
|
|
13813
13486
|
]
|
|
13814
13487
|
}
|
|
@@ -13834,12 +13507,12 @@ function useDialogState(initialState2 = null) {
|
|
|
13834
13507
|
// src/components/config-drawer.tsx
|
|
13835
13508
|
import { useState as useState17 } from "react";
|
|
13836
13509
|
import { Root as Radio, Item as Item2 } from "@radix-ui/react-radio-group";
|
|
13837
|
-
import { Check as
|
|
13510
|
+
import { Check as Check8, CircleCheck, RotateCcw, Search as Search8, Settings as Settings3 } from "lucide-react";
|
|
13838
13511
|
|
|
13839
13512
|
// src/assets/custom/icon-theme-dark.tsx
|
|
13840
|
-
import { jsx as
|
|
13513
|
+
import { jsx as jsx112, jsxs as jsxs71 } from "react/jsx-runtime";
|
|
13841
13514
|
function IconThemeDark(props) {
|
|
13842
|
-
return /* @__PURE__ */
|
|
13515
|
+
return /* @__PURE__ */ jsxs71(
|
|
13843
13516
|
"svg",
|
|
13844
13517
|
{
|
|
13845
13518
|
"data-name": "icon-theme-dark",
|
|
@@ -13847,27 +13520,27 @@ function IconThemeDark(props) {
|
|
|
13847
13520
|
viewBox: "0 0 79.86 51.14",
|
|
13848
13521
|
...props,
|
|
13849
13522
|
children: [
|
|
13850
|
-
/* @__PURE__ */
|
|
13851
|
-
/* @__PURE__ */
|
|
13852
|
-
/* @__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" })
|
|
13853
13526
|
] }),
|
|
13854
|
-
/* @__PURE__ */
|
|
13527
|
+
/* @__PURE__ */ jsx112(
|
|
13855
13528
|
"path",
|
|
13856
13529
|
{
|
|
13857
13530
|
d: "M22.88 0h52.97c2.21 0 4 1.79 4 4v43.14c0 2.21-1.79 4-4 4H22.88V0z",
|
|
13858
13531
|
fill: "#0d1628"
|
|
13859
13532
|
}
|
|
13860
13533
|
),
|
|
13861
|
-
/* @__PURE__ */
|
|
13862
|
-
/* @__PURE__ */
|
|
13534
|
+
/* @__PURE__ */ jsx112("circle", { cx: 6.7, cy: 7.04, r: 3.54, fill: "#426187" }),
|
|
13535
|
+
/* @__PURE__ */ jsx112(
|
|
13863
13536
|
"path",
|
|
13864
13537
|
{
|
|
13865
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",
|
|
13866
13539
|
fill: "#426187"
|
|
13867
13540
|
}
|
|
13868
13541
|
),
|
|
13869
|
-
/* @__PURE__ */
|
|
13870
|
-
/* @__PURE__ */
|
|
13542
|
+
/* @__PURE__ */ jsxs71("g", { fill: "#2a62bc", children: [
|
|
13543
|
+
/* @__PURE__ */ jsx112(
|
|
13871
13544
|
"rect",
|
|
13872
13545
|
{
|
|
13873
13546
|
x: 33.36,
|
|
@@ -13879,7 +13552,7 @@ function IconThemeDark(props) {
|
|
|
13879
13552
|
opacity: 0.32
|
|
13880
13553
|
}
|
|
13881
13554
|
),
|
|
13882
|
-
/* @__PURE__ */
|
|
13555
|
+
/* @__PURE__ */ jsx112(
|
|
13883
13556
|
"rect",
|
|
13884
13557
|
{
|
|
13885
13558
|
x: 29.64,
|
|
@@ -13891,7 +13564,7 @@ function IconThemeDark(props) {
|
|
|
13891
13564
|
opacity: 0.44
|
|
13892
13565
|
}
|
|
13893
13566
|
),
|
|
13894
|
-
/* @__PURE__ */
|
|
13567
|
+
/* @__PURE__ */ jsx112(
|
|
13895
13568
|
"rect",
|
|
13896
13569
|
{
|
|
13897
13570
|
x: 37.16,
|
|
@@ -13903,7 +13576,7 @@ function IconThemeDark(props) {
|
|
|
13903
13576
|
opacity: 0.53
|
|
13904
13577
|
}
|
|
13905
13578
|
),
|
|
13906
|
-
/* @__PURE__ */
|
|
13579
|
+
/* @__PURE__ */ jsx112(
|
|
13907
13580
|
"rect",
|
|
13908
13581
|
{
|
|
13909
13582
|
x: 41.19,
|
|
@@ -13916,8 +13589,8 @@ function IconThemeDark(props) {
|
|
|
13916
13589
|
}
|
|
13917
13590
|
)
|
|
13918
13591
|
] }),
|
|
13919
|
-
/* @__PURE__ */
|
|
13920
|
-
/* @__PURE__ */
|
|
13592
|
+
/* @__PURE__ */ jsx112("circle", { cx: 62.74, cy: 16.32, r: 8, fill: "#2f5491", opacity: 0.5 }),
|
|
13593
|
+
/* @__PURE__ */ jsx112(
|
|
13921
13594
|
"path",
|
|
13922
13595
|
{
|
|
13923
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",
|
|
@@ -13925,7 +13598,7 @@ function IconThemeDark(props) {
|
|
|
13925
13598
|
opacity: 0.74
|
|
13926
13599
|
}
|
|
13927
13600
|
),
|
|
13928
|
-
/* @__PURE__ */
|
|
13601
|
+
/* @__PURE__ */ jsx112(
|
|
13929
13602
|
"rect",
|
|
13930
13603
|
{
|
|
13931
13604
|
x: 29.64,
|
|
@@ -13943,9 +13616,9 @@ function IconThemeDark(props) {
|
|
|
13943
13616
|
}
|
|
13944
13617
|
|
|
13945
13618
|
// src/assets/custom/icon-theme-light.tsx
|
|
13946
|
-
import { jsx as
|
|
13619
|
+
import { jsx as jsx113, jsxs as jsxs72 } from "react/jsx-runtime";
|
|
13947
13620
|
function IconThemeLight(props) {
|
|
13948
|
-
return /* @__PURE__ */
|
|
13621
|
+
return /* @__PURE__ */ jsxs72(
|
|
13949
13622
|
"svg",
|
|
13950
13623
|
{
|
|
13951
13624
|
"data-name": "icon-theme-light",
|
|
@@ -13953,27 +13626,27 @@ function IconThemeLight(props) {
|
|
|
13953
13626
|
viewBox: "0 0 79.86 51.14",
|
|
13954
13627
|
...props,
|
|
13955
13628
|
children: [
|
|
13956
|
-
/* @__PURE__ */
|
|
13957
|
-
/* @__PURE__ */
|
|
13958
|
-
/* @__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" })
|
|
13959
13632
|
] }),
|
|
13960
|
-
/* @__PURE__ */
|
|
13633
|
+
/* @__PURE__ */ jsx113(
|
|
13961
13634
|
"path",
|
|
13962
13635
|
{
|
|
13963
13636
|
d: "M22.88 0h52.97c2.21 0 4 1.79 4 4v43.14c0 2.21-1.79 4-4 4H22.88V0z",
|
|
13964
13637
|
fill: "#ecedef"
|
|
13965
13638
|
}
|
|
13966
13639
|
),
|
|
13967
|
-
/* @__PURE__ */
|
|
13968
|
-
/* @__PURE__ */
|
|
13640
|
+
/* @__PURE__ */ jsx113("circle", { cx: 6.7, cy: 7.04, r: 3.54, fill: "#fff" }),
|
|
13641
|
+
/* @__PURE__ */ jsx113(
|
|
13969
13642
|
"path",
|
|
13970
13643
|
{
|
|
13971
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",
|
|
13972
13645
|
fill: "#fff"
|
|
13973
13646
|
}
|
|
13974
13647
|
),
|
|
13975
|
-
/* @__PURE__ */
|
|
13976
|
-
/* @__PURE__ */
|
|
13648
|
+
/* @__PURE__ */ jsxs72("g", { fill: "#c0c4c4", children: [
|
|
13649
|
+
/* @__PURE__ */ jsx113(
|
|
13977
13650
|
"rect",
|
|
13978
13651
|
{
|
|
13979
13652
|
x: 33.36,
|
|
@@ -13985,7 +13658,7 @@ function IconThemeLight(props) {
|
|
|
13985
13658
|
opacity: 0.32
|
|
13986
13659
|
}
|
|
13987
13660
|
),
|
|
13988
|
-
/* @__PURE__ */
|
|
13661
|
+
/* @__PURE__ */ jsx113(
|
|
13989
13662
|
"rect",
|
|
13990
13663
|
{
|
|
13991
13664
|
x: 29.64,
|
|
@@ -13997,7 +13670,7 @@ function IconThemeLight(props) {
|
|
|
13997
13670
|
opacity: 0.44
|
|
13998
13671
|
}
|
|
13999
13672
|
),
|
|
14000
|
-
/* @__PURE__ */
|
|
13673
|
+
/* @__PURE__ */ jsx113(
|
|
14001
13674
|
"rect",
|
|
14002
13675
|
{
|
|
14003
13676
|
x: 37.16,
|
|
@@ -14009,7 +13682,7 @@ function IconThemeLight(props) {
|
|
|
14009
13682
|
opacity: 0.53
|
|
14010
13683
|
}
|
|
14011
13684
|
),
|
|
14012
|
-
/* @__PURE__ */
|
|
13685
|
+
/* @__PURE__ */ jsx113(
|
|
14013
13686
|
"rect",
|
|
14014
13687
|
{
|
|
14015
13688
|
x: 41.19,
|
|
@@ -14022,12 +13695,12 @@ function IconThemeLight(props) {
|
|
|
14022
13695
|
}
|
|
14023
13696
|
)
|
|
14024
13697
|
] }),
|
|
14025
|
-
/* @__PURE__ */
|
|
14026
|
-
/* @__PURE__ */
|
|
14027
|
-
/* @__PURE__ */
|
|
14028
|
-
/* @__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" })
|
|
14029
13702
|
] }),
|
|
14030
|
-
/* @__PURE__ */
|
|
13703
|
+
/* @__PURE__ */ jsx113(
|
|
14031
13704
|
"rect",
|
|
14032
13705
|
{
|
|
14033
13706
|
x: 29.64,
|
|
@@ -14045,12 +13718,12 @@ function IconThemeLight(props) {
|
|
|
14045
13718
|
}
|
|
14046
13719
|
|
|
14047
13720
|
// src/assets/custom/icon-theme-system.tsx
|
|
14048
|
-
import { jsx as
|
|
13721
|
+
import { jsx as jsx114, jsxs as jsxs73 } from "react/jsx-runtime";
|
|
14049
13722
|
function IconThemeSystem({
|
|
14050
13723
|
className,
|
|
14051
13724
|
...props
|
|
14052
13725
|
}) {
|
|
14053
|
-
return /* @__PURE__ */
|
|
13726
|
+
return /* @__PURE__ */ jsxs73(
|
|
14054
13727
|
"svg",
|
|
14055
13728
|
{
|
|
14056
13729
|
"data-name": "icon-theme-system",
|
|
@@ -14063,8 +13736,8 @@ function IconThemeSystem({
|
|
|
14063
13736
|
),
|
|
14064
13737
|
...props,
|
|
14065
13738
|
children: [
|
|
14066
|
-
/* @__PURE__ */
|
|
14067
|
-
/* @__PURE__ */
|
|
13739
|
+
/* @__PURE__ */ jsx114("path", { opacity: 0.2, d: "M0 0.03H22.88V51.17H0z" }),
|
|
13740
|
+
/* @__PURE__ */ jsx114(
|
|
14068
13741
|
"circle",
|
|
14069
13742
|
{
|
|
14070
13743
|
cx: 6.7,
|
|
@@ -14077,7 +13750,7 @@ function IconThemeSystem({
|
|
|
14077
13750
|
strokeMiterlimit: 10
|
|
14078
13751
|
}
|
|
14079
13752
|
),
|
|
14080
|
-
/* @__PURE__ */
|
|
13753
|
+
/* @__PURE__ */ jsx114(
|
|
14081
13754
|
"path",
|
|
14082
13755
|
{
|
|
14083
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",
|
|
@@ -14086,7 +13759,7 @@ function IconThemeSystem({
|
|
|
14086
13759
|
opacity: 0.75
|
|
14087
13760
|
}
|
|
14088
13761
|
),
|
|
14089
|
-
/* @__PURE__ */
|
|
13762
|
+
/* @__PURE__ */ jsx114(
|
|
14090
13763
|
"path",
|
|
14091
13764
|
{
|
|
14092
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",
|
|
@@ -14095,7 +13768,7 @@ function IconThemeSystem({
|
|
|
14095
13768
|
opacity: 0.72
|
|
14096
13769
|
}
|
|
14097
13770
|
),
|
|
14098
|
-
/* @__PURE__ */
|
|
13771
|
+
/* @__PURE__ */ jsx114(
|
|
14099
13772
|
"path",
|
|
14100
13773
|
{
|
|
14101
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",
|
|
@@ -14104,7 +13777,7 @@ function IconThemeSystem({
|
|
|
14104
13777
|
opacity: 0.55
|
|
14105
13778
|
}
|
|
14106
13779
|
),
|
|
14107
|
-
/* @__PURE__ */
|
|
13780
|
+
/* @__PURE__ */ jsx114(
|
|
14108
13781
|
"path",
|
|
14109
13782
|
{
|
|
14110
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",
|
|
@@ -14113,7 +13786,7 @@ function IconThemeSystem({
|
|
|
14113
13786
|
opacity: 0.67
|
|
14114
13787
|
}
|
|
14115
13788
|
),
|
|
14116
|
-
/* @__PURE__ */
|
|
13789
|
+
/* @__PURE__ */ jsx114(
|
|
14117
13790
|
"rect",
|
|
14118
13791
|
{
|
|
14119
13792
|
x: 33.36,
|
|
@@ -14126,7 +13799,7 @@ function IconThemeSystem({
|
|
|
14126
13799
|
stroke: "none"
|
|
14127
13800
|
}
|
|
14128
13801
|
),
|
|
14129
|
-
/* @__PURE__ */
|
|
13802
|
+
/* @__PURE__ */ jsx114(
|
|
14130
13803
|
"rect",
|
|
14131
13804
|
{
|
|
14132
13805
|
x: 29.64,
|
|
@@ -14139,7 +13812,7 @@ function IconThemeSystem({
|
|
|
14139
13812
|
stroke: "none"
|
|
14140
13813
|
}
|
|
14141
13814
|
),
|
|
14142
|
-
/* @__PURE__ */
|
|
13815
|
+
/* @__PURE__ */ jsx114(
|
|
14143
13816
|
"rect",
|
|
14144
13817
|
{
|
|
14145
13818
|
x: 37.16,
|
|
@@ -14152,7 +13825,7 @@ function IconThemeSystem({
|
|
|
14152
13825
|
stroke: "none"
|
|
14153
13826
|
}
|
|
14154
13827
|
),
|
|
14155
|
-
/* @__PURE__ */
|
|
13828
|
+
/* @__PURE__ */ jsx114(
|
|
14156
13829
|
"rect",
|
|
14157
13830
|
{
|
|
14158
13831
|
x: 41.19,
|
|
@@ -14165,9 +13838,9 @@ function IconThemeSystem({
|
|
|
14165
13838
|
stroke: "none"
|
|
14166
13839
|
}
|
|
14167
13840
|
),
|
|
14168
|
-
/* @__PURE__ */
|
|
14169
|
-
/* @__PURE__ */
|
|
14170
|
-
/* @__PURE__ */
|
|
13841
|
+
/* @__PURE__ */ jsxs73("g", { children: [
|
|
13842
|
+
/* @__PURE__ */ jsx114("circle", { cx: 62.74, cy: 16.32, r: 8, opacity: 0.25 }),
|
|
13843
|
+
/* @__PURE__ */ jsx114(
|
|
14171
13844
|
"path",
|
|
14172
13845
|
{
|
|
14173
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",
|
|
@@ -14175,7 +13848,7 @@ function IconThemeSystem({
|
|
|
14175
13848
|
}
|
|
14176
13849
|
)
|
|
14177
13850
|
] }),
|
|
14178
|
-
/* @__PURE__ */
|
|
13851
|
+
/* @__PURE__ */ jsx114(
|
|
14179
13852
|
"rect",
|
|
14180
13853
|
{
|
|
14181
13854
|
x: 29.64,
|
|
@@ -14196,7 +13869,7 @@ function IconThemeSystem({
|
|
|
14196
13869
|
}
|
|
14197
13870
|
|
|
14198
13871
|
// src/components/config-drawer.tsx
|
|
14199
|
-
import { jsx as
|
|
13872
|
+
import { jsx as jsx115, jsxs as jsxs74 } from "react/jsx-runtime";
|
|
14200
13873
|
function ConfigDrawer({
|
|
14201
13874
|
trigger
|
|
14202
13875
|
}) {
|
|
@@ -14206,27 +13879,27 @@ function ConfigDrawer({
|
|
|
14206
13879
|
resetTheme();
|
|
14207
13880
|
resetColorTheme();
|
|
14208
13881
|
};
|
|
14209
|
-
return /* @__PURE__ */
|
|
14210
|
-
/* @__PURE__ */
|
|
13882
|
+
return /* @__PURE__ */ jsxs74(Sheet, { children: [
|
|
13883
|
+
/* @__PURE__ */ jsx115(SheetTrigger, { asChild: true, children: trigger ?? /* @__PURE__ */ jsx115(
|
|
14211
13884
|
Button,
|
|
14212
13885
|
{
|
|
14213
13886
|
size: "icon",
|
|
14214
13887
|
variant: "ghost",
|
|
14215
13888
|
"aria-label": "Open theme settings",
|
|
14216
13889
|
className: "rounded-full",
|
|
14217
|
-
children: /* @__PURE__ */
|
|
13890
|
+
children: /* @__PURE__ */ jsx115(Settings3, { "aria-hidden": "true" })
|
|
14218
13891
|
}
|
|
14219
13892
|
) }),
|
|
14220
|
-
/* @__PURE__ */
|
|
14221
|
-
/* @__PURE__ */
|
|
14222
|
-
/* @__PURE__ */
|
|
14223
|
-
/* @__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." })
|
|
14224
13897
|
] }),
|
|
14225
|
-
/* @__PURE__ */
|
|
14226
|
-
/* @__PURE__ */
|
|
14227
|
-
/* @__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, {})
|
|
14228
13901
|
] }),
|
|
14229
|
-
/* @__PURE__ */
|
|
13902
|
+
/* @__PURE__ */ jsx115(SheetFooter, { className: "gap-2", children: /* @__PURE__ */ jsx115(
|
|
14230
13903
|
Button,
|
|
14231
13904
|
{
|
|
14232
13905
|
variant: "destructive",
|
|
@@ -14244,7 +13917,7 @@ function SectionTitle({
|
|
|
14244
13917
|
resetAriaLabel,
|
|
14245
13918
|
className
|
|
14246
13919
|
}) {
|
|
14247
|
-
return /* @__PURE__ */
|
|
13920
|
+
return /* @__PURE__ */ jsxs74(
|
|
14248
13921
|
"div",
|
|
14249
13922
|
{
|
|
14250
13923
|
className: cn(
|
|
@@ -14253,7 +13926,7 @@ function SectionTitle({
|
|
|
14253
13926
|
),
|
|
14254
13927
|
children: [
|
|
14255
13928
|
title,
|
|
14256
|
-
showReset && onReset && /* @__PURE__ */
|
|
13929
|
+
showReset && onReset && /* @__PURE__ */ jsx115(
|
|
14257
13930
|
Button,
|
|
14258
13931
|
{
|
|
14259
13932
|
type: "button",
|
|
@@ -14262,7 +13935,7 @@ function SectionTitle({
|
|
|
14262
13935
|
className: "size-4 rounded-full",
|
|
14263
13936
|
onClick: onReset,
|
|
14264
13937
|
"aria-label": resetAriaLabel,
|
|
14265
|
-
children: /* @__PURE__ */
|
|
13938
|
+
children: /* @__PURE__ */ jsx115(RotateCcw, { className: "size-3" })
|
|
14266
13939
|
}
|
|
14267
13940
|
)
|
|
14268
13941
|
]
|
|
@@ -14273,7 +13946,7 @@ function RadioGroupItem2({
|
|
|
14273
13946
|
item,
|
|
14274
13947
|
isTheme = false
|
|
14275
13948
|
}) {
|
|
14276
|
-
return /* @__PURE__ */
|
|
13949
|
+
return /* @__PURE__ */ jsxs74(
|
|
14277
13950
|
Item2,
|
|
14278
13951
|
{
|
|
14279
13952
|
value: item.value,
|
|
@@ -14281,7 +13954,7 @@ function RadioGroupItem2({
|
|
|
14281
13954
|
"aria-label": `Select ${item.label.toLowerCase()}`,
|
|
14282
13955
|
"aria-describedby": `${item.value}-description`,
|
|
14283
13956
|
children: [
|
|
14284
|
-
/* @__PURE__ */
|
|
13957
|
+
/* @__PURE__ */ jsxs74(
|
|
14285
13958
|
"div",
|
|
14286
13959
|
{
|
|
14287
13960
|
className: cn(
|
|
@@ -14293,7 +13966,7 @@ function RadioGroupItem2({
|
|
|
14293
13966
|
"aria-hidden": "false",
|
|
14294
13967
|
"aria-label": `${item.label} option preview`,
|
|
14295
13968
|
children: [
|
|
14296
|
-
/* @__PURE__ */
|
|
13969
|
+
/* @__PURE__ */ jsx115(
|
|
14297
13970
|
CircleCheck,
|
|
14298
13971
|
{
|
|
14299
13972
|
className: cn(
|
|
@@ -14304,7 +13977,7 @@ function RadioGroupItem2({
|
|
|
14304
13977
|
"aria-hidden": "true"
|
|
14305
13978
|
}
|
|
14306
13979
|
),
|
|
14307
|
-
/* @__PURE__ */
|
|
13980
|
+
/* @__PURE__ */ jsx115(
|
|
14308
13981
|
item.icon,
|
|
14309
13982
|
{
|
|
14310
13983
|
className: cn(
|
|
@@ -14316,7 +13989,7 @@ function RadioGroupItem2({
|
|
|
14316
13989
|
]
|
|
14317
13990
|
}
|
|
14318
13991
|
),
|
|
14319
|
-
/* @__PURE__ */
|
|
13992
|
+
/* @__PURE__ */ jsx115(
|
|
14320
13993
|
"div",
|
|
14321
13994
|
{
|
|
14322
13995
|
className: "mt-1 text-xs",
|
|
@@ -14331,8 +14004,8 @@ function RadioGroupItem2({
|
|
|
14331
14004
|
}
|
|
14332
14005
|
function ThemeConfig() {
|
|
14333
14006
|
const { defaultTheme, theme, setTheme } = useTheme2();
|
|
14334
|
-
return /* @__PURE__ */
|
|
14335
|
-
/* @__PURE__ */
|
|
14007
|
+
return /* @__PURE__ */ jsxs74("div", { children: [
|
|
14008
|
+
/* @__PURE__ */ jsx115(
|
|
14336
14009
|
SectionTitle,
|
|
14337
14010
|
{
|
|
14338
14011
|
title: "Theme",
|
|
@@ -14341,7 +14014,7 @@ function ThemeConfig() {
|
|
|
14341
14014
|
resetAriaLabel: "Reset theme preference to default"
|
|
14342
14015
|
}
|
|
14343
14016
|
),
|
|
14344
|
-
/* @__PURE__ */
|
|
14017
|
+
/* @__PURE__ */ jsx115(
|
|
14345
14018
|
Radio,
|
|
14346
14019
|
{
|
|
14347
14020
|
value: theme,
|
|
@@ -14365,10 +14038,10 @@ function ThemeConfig() {
|
|
|
14365
14038
|
label: "Dark",
|
|
14366
14039
|
icon: IconThemeDark
|
|
14367
14040
|
}
|
|
14368
|
-
].map((item) => /* @__PURE__ */
|
|
14041
|
+
].map((item) => /* @__PURE__ */ jsx115(RadioGroupItem2, { item, isTheme: true }, item.value))
|
|
14369
14042
|
}
|
|
14370
14043
|
),
|
|
14371
|
-
/* @__PURE__ */
|
|
14044
|
+
/* @__PURE__ */ jsx115("div", { id: "theme-description", className: "sr-only", children: "Choose between system preference, light mode, or dark mode" })
|
|
14372
14045
|
] });
|
|
14373
14046
|
}
|
|
14374
14047
|
function ThemeListSelector() {
|
|
@@ -14377,8 +14050,8 @@ function ThemeListSelector() {
|
|
|
14377
14050
|
const filtered = colorThemes.filter(
|
|
14378
14051
|
(t) => t.label.toLowerCase().includes(search.toLowerCase())
|
|
14379
14052
|
);
|
|
14380
|
-
return /* @__PURE__ */
|
|
14381
|
-
/* @__PURE__ */
|
|
14053
|
+
return /* @__PURE__ */ jsxs74("div", { className: "flex min-h-0 flex-1 flex-col", children: [
|
|
14054
|
+
/* @__PURE__ */ jsx115(
|
|
14382
14055
|
SectionTitle,
|
|
14383
14056
|
{
|
|
14384
14057
|
title: "Color Theme",
|
|
@@ -14387,9 +14060,9 @@ function ThemeListSelector() {
|
|
|
14387
14060
|
resetAriaLabel: "Reset color theme to default"
|
|
14388
14061
|
}
|
|
14389
14062
|
),
|
|
14390
|
-
/* @__PURE__ */
|
|
14391
|
-
/* @__PURE__ */
|
|
14392
|
-
/* @__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(
|
|
14393
14066
|
"input",
|
|
14394
14067
|
{
|
|
14395
14068
|
type: "text",
|
|
@@ -14405,21 +14078,21 @@ function ThemeListSelector() {
|
|
|
14405
14078
|
}
|
|
14406
14079
|
)
|
|
14407
14080
|
] }),
|
|
14408
|
-
/* @__PURE__ */
|
|
14081
|
+
/* @__PURE__ */ jsxs74("p", { className: "mb-2 text-xs text-muted-foreground font-medium", children: [
|
|
14409
14082
|
filtered.length,
|
|
14410
14083
|
" theme",
|
|
14411
14084
|
filtered.length !== 1 ? "s" : "",
|
|
14412
14085
|
" available"
|
|
14413
14086
|
] }),
|
|
14414
|
-
/* @__PURE__ */
|
|
14087
|
+
/* @__PURE__ */ jsxs74(
|
|
14415
14088
|
"div",
|
|
14416
14089
|
{
|
|
14417
14090
|
className: "flex-1 space-y-1 overflow-y-auto rounded-lg pr-1",
|
|
14418
14091
|
role: "radiogroup",
|
|
14419
14092
|
"aria-label": "Select color theme",
|
|
14420
14093
|
children: [
|
|
14421
|
-
filtered.length === 0 && /* @__PURE__ */
|
|
14422
|
-
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(
|
|
14423
14096
|
"button",
|
|
14424
14097
|
{
|
|
14425
14098
|
onClick: () => setColorTheme(ct.name),
|
|
@@ -14431,7 +14104,7 @@ function ThemeListSelector() {
|
|
|
14431
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"
|
|
14432
14105
|
),
|
|
14433
14106
|
children: [
|
|
14434
|
-
/* @__PURE__ */
|
|
14107
|
+
/* @__PURE__ */ jsx115("div", { className: "flex gap-1.5 shrink-0", children: ct.colors.map((color, i) => /* @__PURE__ */ jsx115(
|
|
14435
14108
|
"span",
|
|
14436
14109
|
{
|
|
14437
14110
|
className: cn(
|
|
@@ -14442,9 +14115,9 @@ function ThemeListSelector() {
|
|
|
14442
14115
|
},
|
|
14443
14116
|
i
|
|
14444
14117
|
)) }),
|
|
14445
|
-
/* @__PURE__ */
|
|
14446
|
-
/* @__PURE__ */
|
|
14447
|
-
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(
|
|
14448
14121
|
"span",
|
|
14449
14122
|
{
|
|
14450
14123
|
className: cn(
|
|
@@ -14454,7 +14127,7 @@ function ThemeListSelector() {
|
|
|
14454
14127
|
}
|
|
14455
14128
|
)
|
|
14456
14129
|
] }),
|
|
14457
|
-
colorTheme === ct.name && /* @__PURE__ */
|
|
14130
|
+
colorTheme === ct.name && /* @__PURE__ */ jsx115(Check8, { className: "ml-auto size-4 shrink-0", strokeWidth: 3 })
|
|
14458
14131
|
]
|
|
14459
14132
|
},
|
|
14460
14133
|
ct.name
|
|
@@ -14466,7 +14139,7 @@ function ThemeListSelector() {
|
|
|
14466
14139
|
}
|
|
14467
14140
|
|
|
14468
14141
|
// src/design-system/templates/nav-user.tsx
|
|
14469
|
-
import { Fragment as Fragment5, jsx as
|
|
14142
|
+
import { Fragment as Fragment5, jsx as jsx116, jsxs as jsxs75 } from "react/jsx-runtime";
|
|
14470
14143
|
function NavUser({ user: fallbackUser }) {
|
|
14471
14144
|
const { isMobile } = useSidebar();
|
|
14472
14145
|
const [open, setOpen] = useDialogState();
|
|
@@ -14475,28 +14148,28 @@ function NavUser({ user: fallbackUser }) {
|
|
|
14475
14148
|
const userEmail = auth.user?.email || fallbackUser.email;
|
|
14476
14149
|
const userAvatar = auth.user?.picture || fallbackUser.avatar;
|
|
14477
14150
|
const userInitials = userName.split(" ").map((n) => n[0]).join("").toUpperCase().slice(0, 2);
|
|
14478
|
-
return /* @__PURE__ */
|
|
14479
|
-
/* @__PURE__ */
|
|
14480
|
-
/* @__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(
|
|
14481
14154
|
SidebarMenuButton,
|
|
14482
14155
|
{
|
|
14483
14156
|
size: "lg",
|
|
14484
14157
|
tooltip: userName,
|
|
14485
14158
|
className: "data-[state=open]:bg-sidebar-accent data-[state=open]:text-sidebar-accent-foreground",
|
|
14486
14159
|
children: [
|
|
14487
|
-
/* @__PURE__ */
|
|
14488
|
-
/* @__PURE__ */
|
|
14489
|
-
/* @__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 })
|
|
14490
14163
|
] }),
|
|
14491
|
-
/* @__PURE__ */
|
|
14492
|
-
/* @__PURE__ */
|
|
14493
|
-
/* @__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 })
|
|
14494
14167
|
] }),
|
|
14495
|
-
/* @__PURE__ */
|
|
14168
|
+
/* @__PURE__ */ jsx116(ChevronsUpDown, { className: "ml-auto size-4 shrink-0" })
|
|
14496
14169
|
]
|
|
14497
14170
|
}
|
|
14498
14171
|
) }),
|
|
14499
|
-
/* @__PURE__ */
|
|
14172
|
+
/* @__PURE__ */ jsxs75(
|
|
14500
14173
|
DropdownMenuContent,
|
|
14501
14174
|
{
|
|
14502
14175
|
className: "w-(--radix-dropdown-menu-trigger-width) min-w-56 rounded-lg",
|
|
@@ -14504,43 +14177,43 @@ function NavUser({ user: fallbackUser }) {
|
|
|
14504
14177
|
align: "end",
|
|
14505
14178
|
sideOffset: 4,
|
|
14506
14179
|
children: [
|
|
14507
|
-
/* @__PURE__ */
|
|
14508
|
-
/* @__PURE__ */
|
|
14509
|
-
/* @__PURE__ */
|
|
14510
|
-
/* @__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 })
|
|
14511
14184
|
] }),
|
|
14512
|
-
/* @__PURE__ */
|
|
14513
|
-
/* @__PURE__ */
|
|
14514
|
-
/* @__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 })
|
|
14515
14188
|
] })
|
|
14516
14189
|
] }) }),
|
|
14517
|
-
/* @__PURE__ */
|
|
14518
|
-
/* @__PURE__ */
|
|
14190
|
+
/* @__PURE__ */ jsx116(DropdownMenuSeparator, {}),
|
|
14191
|
+
/* @__PURE__ */ jsx116(
|
|
14519
14192
|
ConfigDrawer,
|
|
14520
14193
|
{
|
|
14521
|
-
trigger: /* @__PURE__ */
|
|
14522
|
-
/* @__PURE__ */
|
|
14194
|
+
trigger: /* @__PURE__ */ jsxs75(DropdownMenuItem, { onSelect: (e) => e.preventDefault(), children: [
|
|
14195
|
+
/* @__PURE__ */ jsx116(Palette3, { className: "mr-2 h-4 w-4" }),
|
|
14523
14196
|
"Theme"
|
|
14524
14197
|
] })
|
|
14525
14198
|
}
|
|
14526
14199
|
),
|
|
14527
|
-
/* @__PURE__ */
|
|
14200
|
+
/* @__PURE__ */ jsx116(
|
|
14528
14201
|
ConfigDrawer,
|
|
14529
14202
|
{
|
|
14530
|
-
trigger: /* @__PURE__ */
|
|
14531
|
-
/* @__PURE__ */
|
|
14203
|
+
trigger: /* @__PURE__ */ jsxs75(DropdownMenuItem, { onSelect: (e) => e.preventDefault(), children: [
|
|
14204
|
+
/* @__PURE__ */ jsx116(Settings4, { className: "mr-2 h-4 w-4" }),
|
|
14532
14205
|
"Setting"
|
|
14533
14206
|
] })
|
|
14534
14207
|
}
|
|
14535
14208
|
),
|
|
14536
|
-
/* @__PURE__ */
|
|
14537
|
-
/* @__PURE__ */
|
|
14209
|
+
/* @__PURE__ */ jsx116(DropdownMenuSeparator, {}),
|
|
14210
|
+
/* @__PURE__ */ jsxs75(
|
|
14538
14211
|
DropdownMenuItem,
|
|
14539
14212
|
{
|
|
14540
14213
|
variant: "destructive",
|
|
14541
14214
|
onClick: () => setOpen(true),
|
|
14542
14215
|
children: [
|
|
14543
|
-
/* @__PURE__ */
|
|
14216
|
+
/* @__PURE__ */ jsx116(LogOut, { className: "mr-2 h-4 w-4" }),
|
|
14544
14217
|
"Sign out"
|
|
14545
14218
|
]
|
|
14546
14219
|
}
|
|
@@ -14549,19 +14222,19 @@ function NavUser({ user: fallbackUser }) {
|
|
|
14549
14222
|
}
|
|
14550
14223
|
)
|
|
14551
14224
|
] }) }) }),
|
|
14552
|
-
/* @__PURE__ */
|
|
14225
|
+
/* @__PURE__ */ jsx116(SignOutDialog, { open: !!open, onOpenChange: setOpen })
|
|
14553
14226
|
] });
|
|
14554
14227
|
}
|
|
14555
14228
|
|
|
14556
14229
|
// src/design-system/templates/app-sidebar.tsx
|
|
14557
|
-
import { jsx as
|
|
14230
|
+
import { jsx as jsx117, jsxs as jsxs76 } from "react/jsx-runtime";
|
|
14558
14231
|
function AppSidebar() {
|
|
14559
14232
|
const { collapsible } = useLayout();
|
|
14560
|
-
return /* @__PURE__ */
|
|
14561
|
-
/* @__PURE__ */
|
|
14562
|
-
/* @__PURE__ */
|
|
14563
|
-
/* @__PURE__ */
|
|
14564
|
-
/* @__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(
|
|
14565
14238
|
SidebarTrigger,
|
|
14566
14239
|
{
|
|
14567
14240
|
variant: "ghost",
|
|
@@ -14570,7 +14243,7 @@ function AppSidebar() {
|
|
|
14570
14243
|
}
|
|
14571
14244
|
) })
|
|
14572
14245
|
] }),
|
|
14573
|
-
/* @__PURE__ */
|
|
14246
|
+
/* @__PURE__ */ jsx117("div", { className: "hidden group-data-[collapsible=icon]:flex justify-center pt-2 pb-1", children: /* @__PURE__ */ jsx117(
|
|
14574
14247
|
SidebarTrigger,
|
|
14575
14248
|
{
|
|
14576
14249
|
variant: "ghost",
|
|
@@ -14579,37 +14252,37 @@ function AppSidebar() {
|
|
|
14579
14252
|
}
|
|
14580
14253
|
) })
|
|
14581
14254
|
] }),
|
|
14582
|
-
/* @__PURE__ */
|
|
14583
|
-
/* @__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 }) })
|
|
14584
14257
|
] });
|
|
14585
14258
|
}
|
|
14586
14259
|
|
|
14587
14260
|
// src/design-system/templates/app-title.tsx
|
|
14588
14261
|
import Link4 from "next/link";
|
|
14589
|
-
import { Menu, X as
|
|
14590
|
-
import { jsx as
|
|
14262
|
+
import { Menu, X as X7 } from "lucide-react";
|
|
14263
|
+
import { jsx as jsx118, jsxs as jsxs77 } from "react/jsx-runtime";
|
|
14591
14264
|
function AppTitle() {
|
|
14592
14265
|
const { setOpenMobile } = useSidebar();
|
|
14593
|
-
return /* @__PURE__ */
|
|
14266
|
+
return /* @__PURE__ */ jsx118(SidebarMenu, { children: /* @__PURE__ */ jsx118(SidebarMenuItem, { children: /* @__PURE__ */ jsx118(
|
|
14594
14267
|
SidebarMenuButton,
|
|
14595
14268
|
{
|
|
14596
14269
|
size: "lg",
|
|
14597
14270
|
className: "gap-0 py-0 hover:bg-transparent active:bg-transparent",
|
|
14598
14271
|
asChild: true,
|
|
14599
|
-
children: /* @__PURE__ */
|
|
14600
|
-
/* @__PURE__ */
|
|
14272
|
+
children: /* @__PURE__ */ jsxs77("div", { children: [
|
|
14273
|
+
/* @__PURE__ */ jsxs77(
|
|
14601
14274
|
Link4,
|
|
14602
14275
|
{
|
|
14603
14276
|
href: "/",
|
|
14604
14277
|
onClick: () => setOpenMobile(false),
|
|
14605
14278
|
className: "grid flex-1 text-start text-sm leading-tight",
|
|
14606
14279
|
children: [
|
|
14607
|
-
/* @__PURE__ */
|
|
14608
|
-
/* @__PURE__ */
|
|
14280
|
+
/* @__PURE__ */ jsx118("span", { className: "truncate font-bold", children: "Shadcn-Admin" }),
|
|
14281
|
+
/* @__PURE__ */ jsx118("span", { className: "truncate text-xs", children: "Vite + ShadcnUI" })
|
|
14609
14282
|
]
|
|
14610
14283
|
}
|
|
14611
14284
|
),
|
|
14612
|
-
/* @__PURE__ */
|
|
14285
|
+
/* @__PURE__ */ jsx118(ToggleSidebar, {})
|
|
14613
14286
|
] })
|
|
14614
14287
|
}
|
|
14615
14288
|
) }) });
|
|
@@ -14620,7 +14293,7 @@ function ToggleSidebar({
|
|
|
14620
14293
|
...props
|
|
14621
14294
|
}) {
|
|
14622
14295
|
const { toggleSidebar } = useSidebar();
|
|
14623
|
-
return /* @__PURE__ */
|
|
14296
|
+
return /* @__PURE__ */ jsxs77(
|
|
14624
14297
|
Button,
|
|
14625
14298
|
{
|
|
14626
14299
|
"data-sidebar": "trigger",
|
|
@@ -14634,9 +14307,9 @@ function ToggleSidebar({
|
|
|
14634
14307
|
},
|
|
14635
14308
|
...props,
|
|
14636
14309
|
children: [
|
|
14637
|
-
/* @__PURE__ */
|
|
14638
|
-
/* @__PURE__ */
|
|
14639
|
-
/* @__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" })
|
|
14640
14313
|
]
|
|
14641
14314
|
}
|
|
14642
14315
|
);
|
|
@@ -14652,13 +14325,13 @@ import { useEffect as useEffect15 } from "react";
|
|
|
14652
14325
|
// src/components/layout/nav-group.tsx
|
|
14653
14326
|
import Link5 from "next/link";
|
|
14654
14327
|
import { usePathname as usePathname2 } from "next/navigation";
|
|
14655
|
-
import { ChevronRight as
|
|
14656
|
-
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";
|
|
14657
14330
|
function NavGroup2({ title, items }) {
|
|
14658
14331
|
const { state, isMobile, openMobile, setOpenMobile } = useSidebar();
|
|
14659
14332
|
const href = usePathname2();
|
|
14660
|
-
return /* @__PURE__ */
|
|
14661
|
-
/* @__PURE__ */
|
|
14333
|
+
return /* @__PURE__ */ jsxs78(SidebarGroup, { className: cn(title === "Menu" && "pt-0"), children: [
|
|
14334
|
+
/* @__PURE__ */ jsxs78(
|
|
14662
14335
|
SidebarGroupLabel,
|
|
14663
14336
|
{
|
|
14664
14337
|
className: cn(
|
|
@@ -14666,8 +14339,8 @@ function NavGroup2({ title, items }) {
|
|
|
14666
14339
|
title === "Menu" && state !== "collapsed" && "sticky top-0 z-20 bg-sidebar py-1.5"
|
|
14667
14340
|
),
|
|
14668
14341
|
children: [
|
|
14669
|
-
/* @__PURE__ */
|
|
14670
|
-
title === "Menu" && !isMobile && /* @__PURE__ */
|
|
14342
|
+
/* @__PURE__ */ jsx119("span", { children: title }),
|
|
14343
|
+
title === "Menu" && !isMobile && /* @__PURE__ */ jsx119(
|
|
14671
14344
|
SidebarTrigger,
|
|
14672
14345
|
{
|
|
14673
14346
|
variant: "ghost",
|
|
@@ -14675,7 +14348,7 @@ function NavGroup2({ title, items }) {
|
|
|
14675
14348
|
"aria-label": "Toggle sidebar"
|
|
14676
14349
|
}
|
|
14677
14350
|
),
|
|
14678
|
-
title === "Menu" && isMobile && openMobile && /* @__PURE__ */
|
|
14351
|
+
title === "Menu" && isMobile && openMobile && /* @__PURE__ */ jsx119(
|
|
14679
14352
|
Button,
|
|
14680
14353
|
{
|
|
14681
14354
|
type: "button",
|
|
@@ -14684,37 +14357,37 @@ function NavGroup2({ title, items }) {
|
|
|
14684
14357
|
className: "size-6 shrink-0",
|
|
14685
14358
|
"aria-label": "Close sidebar",
|
|
14686
14359
|
onClick: () => setOpenMobile(false),
|
|
14687
|
-
children: /* @__PURE__ */
|
|
14360
|
+
children: /* @__PURE__ */ jsx119(X8, { className: "size-4", "aria-hidden": "true" })
|
|
14688
14361
|
}
|
|
14689
14362
|
)
|
|
14690
14363
|
]
|
|
14691
14364
|
}
|
|
14692
14365
|
),
|
|
14693
|
-
/* @__PURE__ */
|
|
14366
|
+
/* @__PURE__ */ jsx119(SidebarMenu, { children: items.map((item) => {
|
|
14694
14367
|
const key = `${item.title}-${item.url}`;
|
|
14695
14368
|
if (!item.items)
|
|
14696
|
-
return /* @__PURE__ */
|
|
14369
|
+
return /* @__PURE__ */ jsx119(SidebarMenuLink2, { item, href }, key);
|
|
14697
14370
|
if (item.title === "Settings" && item.items.length === 0)
|
|
14698
|
-
return /* @__PURE__ */
|
|
14371
|
+
return /* @__PURE__ */ jsx119(SidebarMenuSettings2, { item }, key);
|
|
14699
14372
|
if (state === "collapsed" && !isMobile)
|
|
14700
|
-
return /* @__PURE__ */
|
|
14701
|
-
return /* @__PURE__ */
|
|
14373
|
+
return /* @__PURE__ */ jsx119(SidebarMenuCollapsedDropdown2, { item, href }, key);
|
|
14374
|
+
return /* @__PURE__ */ jsx119(SidebarMenuCollapsible2, { item, href }, key);
|
|
14702
14375
|
}) })
|
|
14703
14376
|
] });
|
|
14704
14377
|
}
|
|
14705
14378
|
function NavBadge2({ children }) {
|
|
14706
|
-
return /* @__PURE__ */
|
|
14379
|
+
return /* @__PURE__ */ jsx119(Badge, { className: "rounded-full px-1 py-0 text-xs", children });
|
|
14707
14380
|
}
|
|
14708
14381
|
function SidebarMenuLink2({ item, href }) {
|
|
14709
14382
|
const { setOpenMobile } = useSidebar();
|
|
14710
14383
|
const { setShowInlineNotFound } = useLayout();
|
|
14711
|
-
return /* @__PURE__ */
|
|
14384
|
+
return /* @__PURE__ */ jsx119(SidebarMenuItem, { children: /* @__PURE__ */ jsx119(
|
|
14712
14385
|
SidebarMenuButton,
|
|
14713
14386
|
{
|
|
14714
14387
|
asChild: true,
|
|
14715
14388
|
isActive: checkIsActive2(href, item),
|
|
14716
14389
|
tooltip: item.title,
|
|
14717
|
-
children: /* @__PURE__ */
|
|
14390
|
+
children: /* @__PURE__ */ jsxs78(
|
|
14718
14391
|
Link5,
|
|
14719
14392
|
{
|
|
14720
14393
|
href: item.url,
|
|
@@ -14723,9 +14396,9 @@ function SidebarMenuLink2({ item, href }) {
|
|
|
14723
14396
|
setOpenMobile(false);
|
|
14724
14397
|
},
|
|
14725
14398
|
children: [
|
|
14726
|
-
item.icon && /* @__PURE__ */
|
|
14727
|
-
/* @__PURE__ */
|
|
14728
|
-
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 })
|
|
14729
14402
|
]
|
|
14730
14403
|
}
|
|
14731
14404
|
)
|
|
@@ -14735,7 +14408,7 @@ function SidebarMenuLink2({ item, href }) {
|
|
|
14735
14408
|
function SidebarMenuSettings2({ item }) {
|
|
14736
14409
|
const { setOpenMobile } = useSidebar();
|
|
14737
14410
|
const { showInlineNotFound, setShowInlineNotFound } = useLayout();
|
|
14738
|
-
return /* @__PURE__ */
|
|
14411
|
+
return /* @__PURE__ */ jsx119(SidebarMenuItem, { children: /* @__PURE__ */ jsxs78(
|
|
14739
14412
|
SidebarMenuButton,
|
|
14740
14413
|
{
|
|
14741
14414
|
tooltip: item.title,
|
|
@@ -14745,8 +14418,8 @@ function SidebarMenuSettings2({ item }) {
|
|
|
14745
14418
|
setOpenMobile(false);
|
|
14746
14419
|
},
|
|
14747
14420
|
children: [
|
|
14748
|
-
item.icon && /* @__PURE__ */
|
|
14749
|
-
/* @__PURE__ */
|
|
14421
|
+
item.icon && /* @__PURE__ */ jsx119(item.icon, {}),
|
|
14422
|
+
/* @__PURE__ */ jsx119("span", { children: item.title })
|
|
14750
14423
|
]
|
|
14751
14424
|
}
|
|
14752
14425
|
) });
|
|
@@ -14757,25 +14430,25 @@ function SidebarMenuCollapsible2({
|
|
|
14757
14430
|
}) {
|
|
14758
14431
|
const { setOpenMobile } = useSidebar();
|
|
14759
14432
|
const { setShowInlineNotFound } = useLayout();
|
|
14760
|
-
return /* @__PURE__ */
|
|
14433
|
+
return /* @__PURE__ */ jsx119(
|
|
14761
14434
|
Collapsible,
|
|
14762
14435
|
{
|
|
14763
14436
|
asChild: true,
|
|
14764
14437
|
defaultOpen: checkIsActive2(href, item, true),
|
|
14765
14438
|
className: "group/collapsible",
|
|
14766
|
-
children: /* @__PURE__ */
|
|
14767
|
-
/* @__PURE__ */
|
|
14768
|
-
item.icon && /* @__PURE__ */
|
|
14769
|
-
/* @__PURE__ */
|
|
14770
|
-
item.badge && /* @__PURE__ */
|
|
14771
|
-
/* @__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" })
|
|
14772
14445
|
] }) }),
|
|
14773
|
-
/* @__PURE__ */
|
|
14446
|
+
/* @__PURE__ */ jsx119(CollapsibleContent, { className: "CollapsibleContent", children: /* @__PURE__ */ jsx119(SidebarMenuSub, { children: item.items.map((subItem) => /* @__PURE__ */ jsx119(SidebarMenuSubItem, { children: /* @__PURE__ */ jsx119(
|
|
14774
14447
|
SidebarMenuSubButton,
|
|
14775
14448
|
{
|
|
14776
14449
|
asChild: true,
|
|
14777
14450
|
isActive: checkIsActive2(href, subItem),
|
|
14778
|
-
children: /* @__PURE__ */
|
|
14451
|
+
children: /* @__PURE__ */ jsxs78(
|
|
14779
14452
|
Link5,
|
|
14780
14453
|
{
|
|
14781
14454
|
href: subItem.url,
|
|
@@ -14784,9 +14457,9 @@ function SidebarMenuCollapsible2({
|
|
|
14784
14457
|
setOpenMobile(false);
|
|
14785
14458
|
},
|
|
14786
14459
|
children: [
|
|
14787
|
-
subItem.icon && /* @__PURE__ */
|
|
14788
|
-
/* @__PURE__ */
|
|
14789
|
-
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 })
|
|
14790
14463
|
]
|
|
14791
14464
|
}
|
|
14792
14465
|
)
|
|
@@ -14800,36 +14473,36 @@ function SidebarMenuCollapsedDropdown2({
|
|
|
14800
14473
|
item,
|
|
14801
14474
|
href
|
|
14802
14475
|
}) {
|
|
14803
|
-
return /* @__PURE__ */
|
|
14804
|
-
/* @__PURE__ */
|
|
14476
|
+
return /* @__PURE__ */ jsx119(SidebarMenuItem, { children: /* @__PURE__ */ jsxs78(DropdownMenu, { children: [
|
|
14477
|
+
/* @__PURE__ */ jsx119(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsxs78(
|
|
14805
14478
|
SidebarMenuButton,
|
|
14806
14479
|
{
|
|
14807
14480
|
tooltip: item.title,
|
|
14808
14481
|
isActive: checkIsActive2(href, item),
|
|
14809
14482
|
children: [
|
|
14810
|
-
item.icon && /* @__PURE__ */
|
|
14811
|
-
/* @__PURE__ */
|
|
14812
|
-
item.badge && /* @__PURE__ */
|
|
14813
|
-
/* @__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" })
|
|
14814
14487
|
]
|
|
14815
14488
|
}
|
|
14816
14489
|
) }),
|
|
14817
|
-
/* @__PURE__ */
|
|
14818
|
-
/* @__PURE__ */
|
|
14490
|
+
/* @__PURE__ */ jsxs78(DropdownMenuContent, { side: "right", align: "start", sideOffset: 4, children: [
|
|
14491
|
+
/* @__PURE__ */ jsxs78(DropdownMenuLabel, { children: [
|
|
14819
14492
|
item.title,
|
|
14820
14493
|
" ",
|
|
14821
14494
|
item.badge ? `(${item.badge})` : ""
|
|
14822
14495
|
] }),
|
|
14823
|
-
/* @__PURE__ */
|
|
14824
|
-
item.items.map((sub) => /* @__PURE__ */
|
|
14496
|
+
/* @__PURE__ */ jsx119(DropdownMenuSeparator, {}),
|
|
14497
|
+
item.items.map((sub) => /* @__PURE__ */ jsx119(DropdownMenuItem, { asChild: true, children: /* @__PURE__ */ jsxs78(
|
|
14825
14498
|
Link5,
|
|
14826
14499
|
{
|
|
14827
14500
|
href: sub.url,
|
|
14828
14501
|
className: `${checkIsActive2(href, sub) ? "bg-secondary" : ""}`,
|
|
14829
14502
|
children: [
|
|
14830
|
-
sub.icon && /* @__PURE__ */
|
|
14831
|
-
/* @__PURE__ */
|
|
14832
|
-
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 })
|
|
14833
14506
|
]
|
|
14834
14507
|
}
|
|
14835
14508
|
) }, `${sub.title}-${sub.url}`))
|
|
@@ -14856,7 +14529,7 @@ import {
|
|
|
14856
14529
|
Palette as Palette4
|
|
14857
14530
|
} from "lucide-react";
|
|
14858
14531
|
import Link6 from "next/link";
|
|
14859
|
-
import { Fragment as Fragment6, jsx as
|
|
14532
|
+
import { Fragment as Fragment6, jsx as jsx120, jsxs as jsxs79 } from "react/jsx-runtime";
|
|
14860
14533
|
function NavUser2({ user: fallbackUser }) {
|
|
14861
14534
|
const { isMobile } = useSidebar();
|
|
14862
14535
|
const [open, setOpen] = useDialogState();
|
|
@@ -14866,28 +14539,28 @@ function NavUser2({ user: fallbackUser }) {
|
|
|
14866
14539
|
const userEmail = auth.user?.email || fallbackUser.email;
|
|
14867
14540
|
const userAvatar = auth.user?.picture || fallbackUser.avatar;
|
|
14868
14541
|
const userInitials = userName.split(" ").map((n) => n[0]).join("").toUpperCase().slice(0, 2);
|
|
14869
|
-
return /* @__PURE__ */
|
|
14870
|
-
/* @__PURE__ */
|
|
14871
|
-
/* @__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(
|
|
14872
14545
|
SidebarMenuButton,
|
|
14873
14546
|
{
|
|
14874
14547
|
size: "lg",
|
|
14875
14548
|
tooltip: userName,
|
|
14876
14549
|
className: "data-[state=open]:bg-sidebar-accent data-[state=open]:text-sidebar-accent-foreground",
|
|
14877
14550
|
children: [
|
|
14878
|
-
/* @__PURE__ */
|
|
14879
|
-
/* @__PURE__ */
|
|
14880
|
-
/* @__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 })
|
|
14881
14554
|
] }),
|
|
14882
|
-
/* @__PURE__ */
|
|
14883
|
-
/* @__PURE__ */
|
|
14884
|
-
/* @__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 })
|
|
14885
14558
|
] }),
|
|
14886
|
-
/* @__PURE__ */
|
|
14559
|
+
/* @__PURE__ */ jsx120(ChevronsUpDown2, { className: "ml-auto size-4 shrink-0" })
|
|
14887
14560
|
]
|
|
14888
14561
|
}
|
|
14889
14562
|
) }),
|
|
14890
|
-
/* @__PURE__ */
|
|
14563
|
+
/* @__PURE__ */ jsxs79(
|
|
14891
14564
|
DropdownMenuContent,
|
|
14892
14565
|
{
|
|
14893
14566
|
className: "w-(--radix-dropdown-menu-trigger-width) min-w-56 rounded-lg",
|
|
@@ -14895,59 +14568,59 @@ function NavUser2({ user: fallbackUser }) {
|
|
|
14895
14568
|
align: "end",
|
|
14896
14569
|
sideOffset: 4,
|
|
14897
14570
|
children: [
|
|
14898
|
-
/* @__PURE__ */
|
|
14899
|
-
/* @__PURE__ */
|
|
14900
|
-
/* @__PURE__ */
|
|
14901
|
-
/* @__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 })
|
|
14902
14575
|
] }),
|
|
14903
|
-
/* @__PURE__ */
|
|
14904
|
-
/* @__PURE__ */
|
|
14905
|
-
/* @__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 })
|
|
14906
14579
|
] })
|
|
14907
14580
|
] }) }),
|
|
14908
|
-
/* @__PURE__ */
|
|
14909
|
-
/* @__PURE__ */
|
|
14910
|
-
/* @__PURE__ */
|
|
14581
|
+
/* @__PURE__ */ jsx120(DropdownMenuSeparator, {}),
|
|
14582
|
+
/* @__PURE__ */ jsxs79(DropdownMenuItem, { onClick: () => setShowInlineNotFound(true), children: [
|
|
14583
|
+
/* @__PURE__ */ jsx120(User2, { className: "mr-2 h-4 w-4" }),
|
|
14911
14584
|
"My Profile"
|
|
14912
14585
|
] }),
|
|
14913
|
-
/* @__PURE__ */
|
|
14914
|
-
/* @__PURE__ */
|
|
14586
|
+
/* @__PURE__ */ jsxs79(DropdownMenuItem, { onClick: () => setShowInlineNotFound(true), children: [
|
|
14587
|
+
/* @__PURE__ */ jsx120(Bell6, { className: "mr-2 h-4 w-4" }),
|
|
14915
14588
|
"Notifications"
|
|
14916
14589
|
] }),
|
|
14917
|
-
/* @__PURE__ */
|
|
14918
|
-
/* @__PURE__ */
|
|
14590
|
+
/* @__PURE__ */ jsxs79(DropdownMenuItem, { onClick: () => setShowInlineNotFound(true), children: [
|
|
14591
|
+
/* @__PURE__ */ jsx120(MessageCircle, { className: "mr-2 h-4 w-4" }),
|
|
14919
14592
|
"Help & Support"
|
|
14920
14593
|
] }),
|
|
14921
|
-
/* @__PURE__ */
|
|
14922
|
-
/* @__PURE__ */
|
|
14923
|
-
/* @__PURE__ */
|
|
14594
|
+
/* @__PURE__ */ jsx120(DropdownMenuSeparator, {}),
|
|
14595
|
+
/* @__PURE__ */ jsxs79(DropdownMenuItem, { onClick: () => setShowInlineNotFound(true), children: [
|
|
14596
|
+
/* @__PURE__ */ jsx120(CreditCard, { className: "mr-2 h-4 w-4" }),
|
|
14924
14597
|
"Subscriptions"
|
|
14925
14598
|
] }),
|
|
14926
|
-
/* @__PURE__ */
|
|
14927
|
-
/* @__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" }),
|
|
14928
14601
|
"Buy Apps"
|
|
14929
14602
|
] }) }),
|
|
14930
|
-
/* @__PURE__ */
|
|
14603
|
+
/* @__PURE__ */ jsx120(
|
|
14931
14604
|
ConfigDrawer,
|
|
14932
14605
|
{
|
|
14933
|
-
trigger: /* @__PURE__ */
|
|
14934
|
-
/* @__PURE__ */
|
|
14606
|
+
trigger: /* @__PURE__ */ jsxs79(DropdownMenuItem, { onSelect: (e) => e.preventDefault(), children: [
|
|
14607
|
+
/* @__PURE__ */ jsx120(Palette4, { className: "mr-2 h-4 w-4" }),
|
|
14935
14608
|
"Theme Settings"
|
|
14936
14609
|
] })
|
|
14937
14610
|
}
|
|
14938
14611
|
),
|
|
14939
|
-
/* @__PURE__ */
|
|
14940
|
-
/* @__PURE__ */
|
|
14612
|
+
/* @__PURE__ */ jsxs79(DropdownMenuItem, { onClick: () => setShowInlineNotFound(true), children: [
|
|
14613
|
+
/* @__PURE__ */ jsx120(Settings5, { className: "mr-2 h-4 w-4" }),
|
|
14941
14614
|
"Settings"
|
|
14942
14615
|
] }),
|
|
14943
|
-
/* @__PURE__ */
|
|
14944
|
-
/* @__PURE__ */
|
|
14616
|
+
/* @__PURE__ */ jsx120(DropdownMenuSeparator, {}),
|
|
14617
|
+
/* @__PURE__ */ jsxs79(
|
|
14945
14618
|
DropdownMenuItem,
|
|
14946
14619
|
{
|
|
14947
14620
|
variant: "destructive",
|
|
14948
14621
|
onClick: () => setOpen(true),
|
|
14949
14622
|
children: [
|
|
14950
|
-
/* @__PURE__ */
|
|
14623
|
+
/* @__PURE__ */ jsx120(LogOut2, { className: "mr-2 h-4 w-4" }),
|
|
14951
14624
|
"Sign out"
|
|
14952
14625
|
]
|
|
14953
14626
|
}
|
|
@@ -14956,12 +14629,12 @@ function NavUser2({ user: fallbackUser }) {
|
|
|
14956
14629
|
}
|
|
14957
14630
|
)
|
|
14958
14631
|
] }) }) }),
|
|
14959
|
-
/* @__PURE__ */
|
|
14632
|
+
/* @__PURE__ */ jsx120(SignOutDialog, { open: !!open, onOpenChange: setOpen })
|
|
14960
14633
|
] });
|
|
14961
14634
|
}
|
|
14962
14635
|
|
|
14963
14636
|
// src/components/layout/app-sidebar.tsx
|
|
14964
|
-
import { jsx as
|
|
14637
|
+
import { jsx as jsx121, jsxs as jsxs80 } from "react/jsx-runtime";
|
|
14965
14638
|
function AppSidebar2() {
|
|
14966
14639
|
const { collapsible } = useLayout();
|
|
14967
14640
|
const currentUser = useAuthStore((state) => state.auth.user);
|
|
@@ -14992,9 +14665,9 @@ function AppSidebar2() {
|
|
|
14992
14665
|
};
|
|
14993
14666
|
return (
|
|
14994
14667
|
// Sidebar ko fixed "sidebar" variant par lock kiya gaya hai (floating remove).
|
|
14995
|
-
/* @__PURE__ */
|
|
14996
|
-
/* @__PURE__ */
|
|
14997
|
-
/* @__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(
|
|
14998
14671
|
SidebarTrigger,
|
|
14999
14672
|
{
|
|
15000
14673
|
variant: "ghost",
|
|
@@ -15002,16 +14675,16 @@ function AppSidebar2() {
|
|
|
15002
14675
|
"aria-label": "Toggle sidebar"
|
|
15003
14676
|
}
|
|
15004
14677
|
) }),
|
|
15005
|
-
/* @__PURE__ */
|
|
15006
|
-
/* @__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 }) })
|
|
15007
14680
|
] })
|
|
15008
14681
|
);
|
|
15009
14682
|
}
|
|
15010
14683
|
|
|
15011
14684
|
// src/components/skip-to-main.tsx
|
|
15012
|
-
import { jsx as
|
|
14685
|
+
import { jsx as jsx122 } from "react/jsx-runtime";
|
|
15013
14686
|
function SkipToMain() {
|
|
15014
|
-
return /* @__PURE__ */
|
|
14687
|
+
return /* @__PURE__ */ jsx122(
|
|
15015
14688
|
"a",
|
|
15016
14689
|
{
|
|
15017
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`,
|
|
@@ -15023,7 +14696,7 @@ function SkipToMain() {
|
|
|
15023
14696
|
|
|
15024
14697
|
// src/features/errors/not-found-error.tsx
|
|
15025
14698
|
import { useRouter as useRouter3 } from "next/navigation";
|
|
15026
|
-
import { jsx as
|
|
14699
|
+
import { jsx as jsx123, jsxs as jsxs81 } from "react/jsx-runtime";
|
|
15027
14700
|
function NotFoundError({
|
|
15028
14701
|
className,
|
|
15029
14702
|
embedded = false,
|
|
@@ -15041,8 +14714,8 @@ function NotFoundError({
|
|
|
15041
14714
|
if (onDismiss) onDismiss();
|
|
15042
14715
|
router.push("/");
|
|
15043
14716
|
};
|
|
15044
|
-
return /* @__PURE__ */
|
|
15045
|
-
/* @__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(
|
|
15046
14719
|
"h1",
|
|
15047
14720
|
{
|
|
15048
14721
|
className: cn(
|
|
@@ -15052,31 +14725,31 @@ function NotFoundError({
|
|
|
15052
14725
|
children: "404"
|
|
15053
14726
|
}
|
|
15054
14727
|
),
|
|
15055
|
-
/* @__PURE__ */
|
|
15056
|
-
/* @__PURE__ */
|
|
14728
|
+
/* @__PURE__ */ jsx123("span", { className: "font-medium", children: "Oops! Page Not Found :-(!" }),
|
|
14729
|
+
/* @__PURE__ */ jsxs81("p", { className: "text-center text-muted-foreground", children: [
|
|
15057
14730
|
"It seems like the page you're looking for ",
|
|
15058
|
-
/* @__PURE__ */
|
|
14731
|
+
/* @__PURE__ */ jsx123("br", {}),
|
|
15059
14732
|
"does not exist or might have been removed."
|
|
15060
14733
|
] }),
|
|
15061
|
-
/* @__PURE__ */
|
|
15062
|
-
/* @__PURE__ */
|
|
15063
|
-
/* @__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" })
|
|
15064
14737
|
] })
|
|
15065
14738
|
] }) });
|
|
15066
14739
|
}
|
|
15067
14740
|
|
|
15068
14741
|
// src/design-system/templates/authenticated-layout.tsx
|
|
15069
|
-
import { Fragment as Fragment7, jsx as
|
|
14742
|
+
import { Fragment as Fragment7, jsx as jsx124, jsxs as jsxs82 } from "react/jsx-runtime";
|
|
15070
14743
|
function AuthenticatedLayoutContent({ children }) {
|
|
15071
14744
|
const { showInlineNotFound, setShowInlineNotFound } = useLayout();
|
|
15072
14745
|
const pathname = usePathname3();
|
|
15073
14746
|
useEffect16(() => {
|
|
15074
14747
|
setShowInlineNotFound(false);
|
|
15075
14748
|
}, [pathname, setShowInlineNotFound]);
|
|
15076
|
-
return /* @__PURE__ */
|
|
15077
|
-
/* @__PURE__ */
|
|
15078
|
-
/* @__PURE__ */
|
|
15079
|
-
/* @__PURE__ */
|
|
14749
|
+
return /* @__PURE__ */ jsxs82(Fragment7, { children: [
|
|
14750
|
+
/* @__PURE__ */ jsx124(SkipToMain, {}),
|
|
14751
|
+
/* @__PURE__ */ jsx124(AppSidebar2, {}),
|
|
14752
|
+
/* @__PURE__ */ jsx124(
|
|
15080
14753
|
SidebarInset,
|
|
15081
14754
|
{
|
|
15082
14755
|
className: cn(
|
|
@@ -15084,7 +14757,7 @@ function AuthenticatedLayoutContent({ children }) {
|
|
|
15084
14757
|
"has-[[data-layout=fixed]]:h-svh has-data-[layout=fixed]:h-svh",
|
|
15085
14758
|
"peer-data-[variant=inset]:has-data-[layout=fixed]:h-[calc(100svh-(var(--spacing)*4))]"
|
|
15086
14759
|
),
|
|
15087
|
-
children: showInlineNotFound ? /* @__PURE__ */
|
|
14760
|
+
children: showInlineNotFound ? /* @__PURE__ */ jsx124(
|
|
15088
14761
|
NotFoundError,
|
|
15089
14762
|
{
|
|
15090
14763
|
embedded: true,
|
|
@@ -15105,12 +14778,12 @@ function AuthenticatedLayout({ children }) {
|
|
|
15105
14778
|
if (!isMounted) {
|
|
15106
14779
|
return null;
|
|
15107
14780
|
}
|
|
15108
|
-
return /* @__PURE__ */
|
|
14781
|
+
return /* @__PURE__ */ jsx124(SearchProvider, { children: /* @__PURE__ */ jsx124(LayoutProvider, { children: /* @__PURE__ */ jsx124(SidebarProvider, { defaultOpen, children: /* @__PURE__ */ jsx124(AuthenticatedLayoutContent, { children }) }) }) });
|
|
15109
14782
|
}
|
|
15110
14783
|
|
|
15111
14784
|
// src/design-system/templates/header.tsx
|
|
15112
14785
|
import { useEffect as useEffect17, useState as useState19 } from "react";
|
|
15113
|
-
import { jsx as
|
|
14786
|
+
import { jsx as jsx125, jsxs as jsxs83 } from "react/jsx-runtime";
|
|
15114
14787
|
function Header2({ className, fixed, children, ...props }) {
|
|
15115
14788
|
const [offset, setOffset] = useState19(0);
|
|
15116
14789
|
useEffect17(() => {
|
|
@@ -15122,7 +14795,7 @@ function Header2({ className, fixed, children, ...props }) {
|
|
|
15122
14795
|
}, []);
|
|
15123
14796
|
return (
|
|
15124
14797
|
// Page header container: fixed mode me top par sticky behavior deta hai.
|
|
15125
|
-
/* @__PURE__ */
|
|
14798
|
+
/* @__PURE__ */ jsx125(
|
|
15126
14799
|
"header",
|
|
15127
14800
|
{
|
|
15128
14801
|
className: cn(
|
|
@@ -15132,7 +14805,7 @@ function Header2({ className, fixed, children, ...props }) {
|
|
|
15132
14805
|
className
|
|
15133
14806
|
),
|
|
15134
14807
|
...props,
|
|
15135
|
-
children: /* @__PURE__ */
|
|
14808
|
+
children: /* @__PURE__ */ jsxs83(
|
|
15136
14809
|
"div",
|
|
15137
14810
|
{
|
|
15138
14811
|
className: cn(
|
|
@@ -15141,7 +14814,7 @@ function Header2({ className, fixed, children, ...props }) {
|
|
|
15141
14814
|
offset > 10 && fixed && "after:absolute after:inset-0 after:-z-10 after:bg-background/20 after:backdrop-blur-lg"
|
|
15142
14815
|
),
|
|
15143
14816
|
children: [
|
|
15144
|
-
/* @__PURE__ */
|
|
14817
|
+
/* @__PURE__ */ jsx125(AppLogo, { className: "shrink-0 md:hidden" }),
|
|
15145
14818
|
children
|
|
15146
14819
|
]
|
|
15147
14820
|
}
|
|
@@ -15152,9 +14825,9 @@ function Header2({ className, fixed, children, ...props }) {
|
|
|
15152
14825
|
}
|
|
15153
14826
|
|
|
15154
14827
|
// src/design-system/templates/main.tsx
|
|
15155
|
-
import { jsx as
|
|
14828
|
+
import { jsx as jsx126 } from "react/jsx-runtime";
|
|
15156
14829
|
function Main({ fixed, className, fluid, ...props }) {
|
|
15157
|
-
return /* @__PURE__ */
|
|
14830
|
+
return /* @__PURE__ */ jsx126(
|
|
15158
14831
|
"main",
|
|
15159
14832
|
{
|
|
15160
14833
|
"data-layout": fixed ? "fixed" : "auto",
|
|
@@ -15173,20 +14846,20 @@ function Main({ fixed, className, fluid, ...props }) {
|
|
|
15173
14846
|
|
|
15174
14847
|
// src/design-system/templates/sidebar-search.tsx
|
|
15175
14848
|
import { SearchIcon as SearchIcon7 } from "lucide-react";
|
|
15176
|
-
import { jsx as
|
|
14849
|
+
import { jsx as jsx127, jsxs as jsxs84 } from "react/jsx-runtime";
|
|
15177
14850
|
function SidebarSearch() {
|
|
15178
14851
|
const { setOpen } = useSearch();
|
|
15179
|
-
return /* @__PURE__ */
|
|
14852
|
+
return /* @__PURE__ */ jsx127(SidebarMenu, { children: /* @__PURE__ */ jsx127(SidebarMenuItem, { children: /* @__PURE__ */ jsxs84(
|
|
15180
14853
|
SidebarMenuButton,
|
|
15181
14854
|
{
|
|
15182
14855
|
onClick: () => setOpen(true),
|
|
15183
14856
|
tooltip: "Search (\u2318K)",
|
|
15184
14857
|
className: "bg-sidebar-accent/50 hover:bg-sidebar-accent border border-sidebar-border/60 text-muted-foreground hover:text-foreground",
|
|
15185
14858
|
children: [
|
|
15186
|
-
/* @__PURE__ */
|
|
15187
|
-
/* @__PURE__ */
|
|
15188
|
-
/* @__PURE__ */
|
|
15189
|
-
/* @__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" }),
|
|
15190
14863
|
"K"
|
|
15191
14864
|
] })
|
|
15192
14865
|
]
|
|
@@ -15197,7 +14870,7 @@ function SidebarSearch() {
|
|
|
15197
14870
|
// src/design-system/templates/top-nav.tsx
|
|
15198
14871
|
import Link7 from "next/link";
|
|
15199
14872
|
import { Menu as Menu2 } from "lucide-react";
|
|
15200
|
-
import { Fragment as Fragment8, jsx as
|
|
14873
|
+
import { Fragment as Fragment8, jsx as jsx128, jsxs as jsxs85 } from "react/jsx-runtime";
|
|
15201
14874
|
function TopNav({ className, links, ...props }) {
|
|
15202
14875
|
const renderLink = ({
|
|
15203
14876
|
title,
|
|
@@ -15208,7 +14881,7 @@ function TopNav({ className, links, ...props }) {
|
|
|
15208
14881
|
}) => {
|
|
15209
14882
|
const className2 = `text-sm font-medium transition-colors hover:text-primary ${isActive ? "" : "text-muted-foreground"}`;
|
|
15210
14883
|
if (onClick) {
|
|
15211
|
-
return /* @__PURE__ */
|
|
14884
|
+
return /* @__PURE__ */ jsx128(
|
|
15212
14885
|
"button",
|
|
15213
14886
|
{
|
|
15214
14887
|
type: "button",
|
|
@@ -15220,7 +14893,7 @@ function TopNav({ className, links, ...props }) {
|
|
|
15220
14893
|
title
|
|
15221
14894
|
);
|
|
15222
14895
|
}
|
|
15223
|
-
return /* @__PURE__ */
|
|
14896
|
+
return /* @__PURE__ */ jsx128(
|
|
15224
14897
|
Link7,
|
|
15225
14898
|
{
|
|
15226
14899
|
href,
|
|
@@ -15231,9 +14904,9 @@ function TopNav({ className, links, ...props }) {
|
|
|
15231
14904
|
title
|
|
15232
14905
|
);
|
|
15233
14906
|
};
|
|
15234
|
-
return /* @__PURE__ */
|
|
15235
|
-
/* @__PURE__ */
|
|
15236
|
-
/* @__PURE__ */
|
|
14907
|
+
return /* @__PURE__ */ jsxs85(Fragment8, { children: [
|
|
14908
|
+
/* @__PURE__ */ jsxs85(DropdownMenu, { modal: false, children: [
|
|
14909
|
+
/* @__PURE__ */ jsx128(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsxs85(
|
|
15237
14910
|
Button,
|
|
15238
14911
|
{
|
|
15239
14912
|
size: "icon",
|
|
@@ -15243,18 +14916,18 @@ function TopNav({ className, links, ...props }) {
|
|
|
15243
14916
|
className
|
|
15244
14917
|
),
|
|
15245
14918
|
children: [
|
|
15246
|
-
/* @__PURE__ */
|
|
15247
|
-
/* @__PURE__ */
|
|
14919
|
+
/* @__PURE__ */ jsx128(Menu2, {}),
|
|
14920
|
+
/* @__PURE__ */ jsx128("span", { className: "sr-only", children: "Toggle navigation menu" })
|
|
15248
14921
|
]
|
|
15249
14922
|
}
|
|
15250
14923
|
) }),
|
|
15251
|
-
/* @__PURE__ */
|
|
14924
|
+
/* @__PURE__ */ jsx128(DropdownMenuContent, { side: "bottom", align: "start", children: links.map((link) => /* @__PURE__ */ jsx128(
|
|
15252
14925
|
DropdownMenuItem,
|
|
15253
14926
|
{
|
|
15254
14927
|
disabled: link.disabled,
|
|
15255
14928
|
onClick: link.onClick,
|
|
15256
14929
|
asChild: !link.onClick,
|
|
15257
|
-
children: link.onClick ? /* @__PURE__ */
|
|
14930
|
+
children: link.onClick ? /* @__PURE__ */ jsx128("span", { className: !link.isActive ? "text-muted-foreground" : "", children: link.title }) : /* @__PURE__ */ jsx128(
|
|
15258
14931
|
Link7,
|
|
15259
14932
|
{
|
|
15260
14933
|
href: link.href,
|
|
@@ -15267,7 +14940,7 @@ function TopNav({ className, links, ...props }) {
|
|
|
15267
14940
|
link.title
|
|
15268
14941
|
)) })
|
|
15269
14942
|
] }),
|
|
15270
|
-
/* @__PURE__ */
|
|
14943
|
+
/* @__PURE__ */ jsx128(
|
|
15271
14944
|
"nav",
|
|
15272
14945
|
{
|
|
15273
14946
|
className: cn(
|
|
@@ -15641,6 +15314,7 @@ export {
|
|
|
15641
15314
|
buttonVariants,
|
|
15642
15315
|
downloadQrCode,
|
|
15643
15316
|
formatBytes,
|
|
15317
|
+
formatTimeAgo,
|
|
15644
15318
|
getFileCategoryTheme,
|
|
15645
15319
|
navigationMenuTriggerStyle,
|
|
15646
15320
|
sidebarData2 as sidebarData,
|