@almadar/ui 4.32.0 → 4.34.0
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/avl/index.cjs +235 -261
- package/dist/avl/index.css +1 -1
- package/dist/avl/index.js +235 -261
- package/dist/components/index.cjs +226 -236
- package/dist/components/index.css +1 -1
- package/dist/components/index.js +226 -236
- package/dist/docs/index.cjs +2 -2
- package/dist/docs/index.js +2 -2
- package/dist/marketing/index.cjs +2 -2
- package/dist/marketing/index.js +2 -2
- package/dist/providers/index.cjs +226 -236
- package/dist/providers/index.css +1 -1
- package/dist/providers/index.js +226 -236
- package/dist/runtime/createClientEffectHandlers.d.ts +1 -9
- package/dist/runtime/index.cjs +231 -257
- package/dist/runtime/index.css +1 -1
- package/dist/runtime/index.js +231 -257
- package/package.json +14 -8
|
@@ -8974,9 +8974,9 @@ var init_ScaledDiagram = __esm({
|
|
|
8974
8974
|
}
|
|
8975
8975
|
});
|
|
8976
8976
|
|
|
8977
|
-
// node_modules
|
|
8977
|
+
// node_modules/katex/dist/katex.min.css
|
|
8978
8978
|
var init_katex_min = __esm({
|
|
8979
|
-
"node_modules
|
|
8979
|
+
"node_modules/katex/dist/katex.min.css"() {
|
|
8980
8980
|
}
|
|
8981
8981
|
});
|
|
8982
8982
|
exports.MarkdownContent = void 0;
|
|
@@ -17035,265 +17035,255 @@ var init_DashboardLayout = __esm({
|
|
|
17035
17035
|
} : null);
|
|
17036
17036
|
const { t } = useTranslate();
|
|
17037
17037
|
const handleSignOut = onSignOutProp || authSignOut;
|
|
17038
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
17039
|
-
|
|
17040
|
-
|
|
17041
|
-
|
|
17042
|
-
|
|
17043
|
-
|
|
17044
|
-
|
|
17045
|
-
|
|
17046
|
-
|
|
17047
|
-
|
|
17048
|
-
|
|
17049
|
-
|
|
17038
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(exports.Box, { className: "min-h-screen bg-background dark:bg-background", children: [
|
|
17039
|
+
sidebarOpen && /* @__PURE__ */ jsxRuntime.jsx(
|
|
17040
|
+
exports.Box,
|
|
17041
|
+
{
|
|
17042
|
+
className: "fixed inset-0 bg-foreground/50 dark:bg-foreground/70 z-20 lg:hidden",
|
|
17043
|
+
onClick: () => setSidebarOpen(false)
|
|
17044
|
+
}
|
|
17045
|
+
),
|
|
17046
|
+
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
17047
|
+
exports.Box,
|
|
17048
|
+
{
|
|
17049
|
+
as: "aside",
|
|
17050
|
+
className: cn(
|
|
17051
|
+
"fixed inset-y-0 left-0 z-30 w-64 bg-card dark:bg-card border-r border-border dark:border-border",
|
|
17052
|
+
"transform transition-transform duration-200 ease-in-out lg:translate-x-0",
|
|
17053
|
+
sidebarOpen ? "translate-x-0" : "-translate-x-full"
|
|
17050
17054
|
),
|
|
17051
|
-
|
|
17052
|
-
|
|
17053
|
-
|
|
17054
|
-
|
|
17055
|
-
|
|
17056
|
-
|
|
17057
|
-
"
|
|
17058
|
-
|
|
17059
|
-
|
|
17060
|
-
|
|
17061
|
-
|
|
17062
|
-
|
|
17063
|
-
|
|
17064
|
-
|
|
17055
|
+
children: [
|
|
17056
|
+
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
17057
|
+
exports.HStack,
|
|
17058
|
+
{
|
|
17059
|
+
align: "center",
|
|
17060
|
+
justify: "between",
|
|
17061
|
+
className: "h-16 px-4 border-b border-border dark:border-border",
|
|
17062
|
+
children: [
|
|
17063
|
+
/* @__PURE__ */ jsxRuntime.jsxs(reactRouterDom.Link, { to: "/", className: "flex items-center gap-2", children: [
|
|
17064
|
+
logo || /* @__PURE__ */ jsxRuntime.jsx(exports.Box, { className: "w-8 h-8 bg-primary-600 rounded-lg flex items-center justify-center", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
17065
|
+
exports.Typography,
|
|
17066
|
+
{
|
|
17067
|
+
variant: "small",
|
|
17068
|
+
className: "text-white font-bold text-sm",
|
|
17069
|
+
as: "span",
|
|
17070
|
+
children: appName.charAt(0).toUpperCase()
|
|
17071
|
+
}
|
|
17072
|
+
) }),
|
|
17073
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
17074
|
+
exports.Typography,
|
|
17075
|
+
{
|
|
17076
|
+
variant: "label",
|
|
17077
|
+
className: "font-semibold text-foreground dark:text-foreground",
|
|
17078
|
+
as: "span",
|
|
17079
|
+
children: appName
|
|
17080
|
+
}
|
|
17081
|
+
)
|
|
17082
|
+
] }),
|
|
17083
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
17084
|
+
exports.Button,
|
|
17085
|
+
{
|
|
17086
|
+
variant: "ghost",
|
|
17087
|
+
className: "lg:hidden p-2 rounded-md hover:bg-muted dark:hover:bg-muted text-muted-foreground dark:text-muted-foreground",
|
|
17088
|
+
onClick: () => setSidebarOpen(false),
|
|
17089
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(LucideIcons.X, { className: "h-5 w-5" })
|
|
17090
|
+
}
|
|
17091
|
+
)
|
|
17092
|
+
]
|
|
17093
|
+
}
|
|
17094
|
+
),
|
|
17095
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
17096
|
+
exports.VStack,
|
|
17097
|
+
{
|
|
17098
|
+
as: "nav",
|
|
17099
|
+
gap: "none",
|
|
17100
|
+
className: "flex-1 px-3 py-4 space-y-1 overflow-y-auto",
|
|
17101
|
+
children: navItems.map((item) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
17102
|
+
NavLink,
|
|
17065
17103
|
{
|
|
17066
|
-
|
|
17067
|
-
|
|
17068
|
-
|
|
17069
|
-
|
|
17070
|
-
|
|
17071
|
-
|
|
17072
|
-
|
|
17073
|
-
|
|
17074
|
-
|
|
17075
|
-
|
|
17076
|
-
|
|
17077
|
-
|
|
17078
|
-
|
|
17079
|
-
|
|
17080
|
-
|
|
17081
|
-
|
|
17082
|
-
|
|
17083
|
-
|
|
17084
|
-
|
|
17085
|
-
|
|
17086
|
-
|
|
17104
|
+
item,
|
|
17105
|
+
currentPath: location.pathname
|
|
17106
|
+
},
|
|
17107
|
+
item.href
|
|
17108
|
+
))
|
|
17109
|
+
}
|
|
17110
|
+
),
|
|
17111
|
+
sidebarFooter && /* @__PURE__ */ jsxRuntime.jsx(exports.Box, { className: "p-4 border-t border-border dark:border-border", children: sidebarFooter })
|
|
17112
|
+
]
|
|
17113
|
+
}
|
|
17114
|
+
),
|
|
17115
|
+
/* @__PURE__ */ jsxRuntime.jsxs(exports.Box, { className: "lg:pl-64", children: [
|
|
17116
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
17117
|
+
exports.Box,
|
|
17118
|
+
{
|
|
17119
|
+
as: "header",
|
|
17120
|
+
className: "sticky top-0 z-20 h-16 bg-card dark:bg-card border-b border-border dark:border-border",
|
|
17121
|
+
children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
17122
|
+
exports.HStack,
|
|
17123
|
+
{
|
|
17124
|
+
align: "center",
|
|
17125
|
+
justify: "between",
|
|
17126
|
+
className: "h-full px-4 gap-4",
|
|
17127
|
+
children: [
|
|
17128
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
17129
|
+
exports.Button,
|
|
17130
|
+
{
|
|
17131
|
+
variant: "ghost",
|
|
17132
|
+
className: "lg:hidden p-2 rounded-md hover:bg-muted dark:hover:bg-muted text-muted-foreground dark:text-muted-foreground touch-manipulation min-h-[44px] min-w-[44px] flex items-center justify-center",
|
|
17133
|
+
onClick: () => setSidebarOpen(true),
|
|
17134
|
+
"aria-label": "Open sidebar",
|
|
17135
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(LucideIcons.Menu, { className: "h-5 w-5" })
|
|
17136
|
+
}
|
|
17137
|
+
),
|
|
17138
|
+
searchEnabled && /* @__PURE__ */ jsxRuntime.jsx(exports.Box, { className: "hidden sm:block flex-1 max-w-md", children: /* @__PURE__ */ jsxRuntime.jsxs(exports.Box, { className: "relative", children: [
|
|
17139
|
+
/* @__PURE__ */ jsxRuntime.jsx(LucideIcons.Search, { className: "absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground dark:text-muted-foreground" }),
|
|
17140
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
17141
|
+
exports.Input,
|
|
17142
|
+
{
|
|
17143
|
+
type: "search",
|
|
17144
|
+
placeholder: t("common.search"),
|
|
17145
|
+
className: "pl-10 w-full",
|
|
17146
|
+
onKeyDown: (e) => {
|
|
17147
|
+
if (e.key === "Enter") {
|
|
17148
|
+
handleSearchSubmit(e.target.value);
|
|
17087
17149
|
}
|
|
17088
|
-
)
|
|
17089
|
-
] }),
|
|
17090
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
17091
|
-
exports.Button,
|
|
17092
|
-
{
|
|
17093
|
-
variant: "ghost",
|
|
17094
|
-
className: "lg:hidden p-2 rounded-md hover:bg-muted dark:hover:bg-muted text-muted-foreground dark:text-muted-foreground",
|
|
17095
|
-
onClick: () => setSidebarOpen(false),
|
|
17096
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(LucideIcons.X, { className: "h-5 w-5" })
|
|
17097
17150
|
}
|
|
17098
|
-
|
|
17099
|
-
|
|
17100
|
-
}
|
|
17101
|
-
|
|
17102
|
-
|
|
17103
|
-
|
|
17104
|
-
|
|
17105
|
-
|
|
17106
|
-
gap: "none",
|
|
17107
|
-
className: "flex-1 px-3 py-4 space-y-1 overflow-y-auto",
|
|
17108
|
-
children: navItems.map((item) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
17109
|
-
NavLink,
|
|
17151
|
+
}
|
|
17152
|
+
)
|
|
17153
|
+
] }) }),
|
|
17154
|
+
/* @__PURE__ */ jsxRuntime.jsxs(exports.HStack, { align: "center", gap: "xs", children: [
|
|
17155
|
+
headerActions,
|
|
17156
|
+
showThemeToggle && /* @__PURE__ */ jsxRuntime.jsx(exports.ThemeToggle, {}),
|
|
17157
|
+
topBarActions.map((action, idx) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
17158
|
+
exports.Button,
|
|
17110
17159
|
{
|
|
17111
|
-
|
|
17112
|
-
|
|
17160
|
+
variant: "ghost",
|
|
17161
|
+
className: "relative p-2 rounded-full hover:bg-muted dark:hover:bg-muted",
|
|
17162
|
+
onClick: () => handleTopBarActionClick(action.event),
|
|
17163
|
+
"aria-label": action.label ?? action.icon,
|
|
17164
|
+
children: [
|
|
17165
|
+
/* @__PURE__ */ jsxRuntime.jsx(exports.Icon, { name: action.icon, className: "h-5 w-5 text-muted-foreground dark:text-muted-foreground" }),
|
|
17166
|
+
action.badge !== void 0 && action.badge !== null && action.badge !== 0 && action.badge !== "" && /* @__PURE__ */ jsxRuntime.jsx(
|
|
17167
|
+
exports.Box,
|
|
17168
|
+
{
|
|
17169
|
+
as: "span",
|
|
17170
|
+
className: cn(
|
|
17171
|
+
"absolute -top-0.5 -right-0.5 min-w-[18px] h-[18px] px-1 rounded-full text-[10px] font-semibold text-white flex items-center justify-center",
|
|
17172
|
+
action.variant === "danger" ? "bg-error" : action.variant === "primary" ? "bg-primary" : "bg-foreground"
|
|
17173
|
+
),
|
|
17174
|
+
children: action.badge
|
|
17175
|
+
}
|
|
17176
|
+
)
|
|
17177
|
+
]
|
|
17113
17178
|
},
|
|
17114
|
-
|
|
17115
|
-
))
|
|
17116
|
-
|
|
17117
|
-
|
|
17118
|
-
|
|
17119
|
-
|
|
17120
|
-
|
|
17121
|
-
|
|
17122
|
-
|
|
17123
|
-
|
|
17124
|
-
|
|
17125
|
-
|
|
17126
|
-
|
|
17127
|
-
|
|
17128
|
-
|
|
17129
|
-
|
|
17130
|
-
|
|
17131
|
-
|
|
17132
|
-
|
|
17133
|
-
|
|
17134
|
-
|
|
17135
|
-
|
|
17179
|
+
`${action.event}-${idx}`
|
|
17180
|
+
)),
|
|
17181
|
+
notificationsEnabled && /* @__PURE__ */ jsxRuntime.jsxs(
|
|
17182
|
+
exports.Button,
|
|
17183
|
+
{
|
|
17184
|
+
variant: "ghost",
|
|
17185
|
+
className: "relative p-2 rounded-full hover:bg-muted dark:hover:bg-muted",
|
|
17186
|
+
onClick: handleNotificationClick,
|
|
17187
|
+
"aria-label": t("common.notifications"),
|
|
17188
|
+
children: [
|
|
17189
|
+
/* @__PURE__ */ jsxRuntime.jsx(LucideIcons.Bell, { className: "h-5 w-5 text-muted-foreground dark:text-muted-foreground" }),
|
|
17190
|
+
unreadCount > 0 && /* @__PURE__ */ jsxRuntime.jsx(
|
|
17191
|
+
exports.Box,
|
|
17192
|
+
{
|
|
17193
|
+
as: "span",
|
|
17194
|
+
className: "absolute -top-0.5 -right-0.5 min-w-[18px] h-[18px] px-1 bg-error rounded-full text-[10px] font-semibold text-white flex items-center justify-center",
|
|
17195
|
+
children: unreadCount > 99 ? "99+" : unreadCount
|
|
17196
|
+
}
|
|
17197
|
+
)
|
|
17198
|
+
]
|
|
17199
|
+
}
|
|
17200
|
+
),
|
|
17201
|
+
user && /* @__PURE__ */ jsxRuntime.jsxs(exports.Box, { className: "relative", children: [
|
|
17202
|
+
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
17136
17203
|
exports.Button,
|
|
17137
17204
|
{
|
|
17138
17205
|
variant: "ghost",
|
|
17139
|
-
className: "
|
|
17140
|
-
onClick: () =>
|
|
17141
|
-
|
|
17142
|
-
|
|
17206
|
+
className: "flex items-center gap-2 p-2 rounded-lg hover:bg-muted dark:hover:bg-muted",
|
|
17207
|
+
onClick: () => setUserMenuOpen(!userMenuOpen),
|
|
17208
|
+
children: [
|
|
17209
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
17210
|
+
exports.Avatar,
|
|
17211
|
+
{
|
|
17212
|
+
src: user.avatar,
|
|
17213
|
+
alt: user.name,
|
|
17214
|
+
initials: user.name.split(" ").map((n) => n[0]).join("").substring(0, 2),
|
|
17215
|
+
size: "sm"
|
|
17216
|
+
}
|
|
17217
|
+
),
|
|
17218
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
17219
|
+
exports.Typography,
|
|
17220
|
+
{
|
|
17221
|
+
variant: "small",
|
|
17222
|
+
className: "hidden sm:block text-sm font-medium text-foreground dark:text-foreground",
|
|
17223
|
+
as: "span",
|
|
17224
|
+
children: user.name
|
|
17225
|
+
}
|
|
17226
|
+
),
|
|
17227
|
+
/* @__PURE__ */ jsxRuntime.jsx(LucideIcons.ChevronDown, { className: "hidden sm:block h-4 w-4 text-muted-foreground dark:text-muted-foreground" })
|
|
17228
|
+
]
|
|
17143
17229
|
}
|
|
17144
17230
|
),
|
|
17145
|
-
|
|
17146
|
-
/* @__PURE__ */ jsxRuntime.jsx(LucideIcons.Search, { className: "absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground dark:text-muted-foreground" }),
|
|
17231
|
+
userMenuOpen && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
17147
17232
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
17148
|
-
exports.
|
|
17149
|
-
{
|
|
17150
|
-
type: "search",
|
|
17151
|
-
placeholder: t("common.search"),
|
|
17152
|
-
className: "pl-10 w-full",
|
|
17153
|
-
onKeyDown: (e) => {
|
|
17154
|
-
if (e.key === "Enter") {
|
|
17155
|
-
handleSearchSubmit(e.target.value);
|
|
17156
|
-
}
|
|
17157
|
-
}
|
|
17158
|
-
}
|
|
17159
|
-
)
|
|
17160
|
-
] }) }),
|
|
17161
|
-
!searchEnabled && /* @__PURE__ */ jsxRuntime.jsx(exports.Box, { className: "flex-1" }),
|
|
17162
|
-
/* @__PURE__ */ jsxRuntime.jsxs(exports.HStack, { align: "center", gap: "xs", children: [
|
|
17163
|
-
headerActions,
|
|
17164
|
-
showThemeToggle && /* @__PURE__ */ jsxRuntime.jsx(exports.ThemeToggle, {}),
|
|
17165
|
-
topBarActions.map((action, idx) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
17166
|
-
exports.Button,
|
|
17167
|
-
{
|
|
17168
|
-
variant: "ghost",
|
|
17169
|
-
className: "relative p-2 rounded-full hover:bg-muted dark:hover:bg-muted",
|
|
17170
|
-
onClick: () => handleTopBarActionClick(action.event),
|
|
17171
|
-
"aria-label": action.label ?? action.icon,
|
|
17172
|
-
children: [
|
|
17173
|
-
/* @__PURE__ */ jsxRuntime.jsx(exports.Icon, { name: action.icon, className: "h-5 w-5 text-muted-foreground dark:text-muted-foreground" }),
|
|
17174
|
-
action.badge !== void 0 && action.badge !== null && action.badge !== 0 && action.badge !== "" && /* @__PURE__ */ jsxRuntime.jsx(
|
|
17175
|
-
exports.Box,
|
|
17176
|
-
{
|
|
17177
|
-
as: "span",
|
|
17178
|
-
className: cn(
|
|
17179
|
-
"absolute -top-0.5 -right-0.5 min-w-[18px] h-[18px] px-1 rounded-full text-[10px] font-semibold text-white flex items-center justify-center",
|
|
17180
|
-
action.variant === "danger" ? "bg-error" : action.variant === "primary" ? "bg-primary" : "bg-foreground"
|
|
17181
|
-
),
|
|
17182
|
-
children: action.badge
|
|
17183
|
-
}
|
|
17184
|
-
)
|
|
17185
|
-
]
|
|
17186
|
-
},
|
|
17187
|
-
`${action.event}-${idx}`
|
|
17188
|
-
)),
|
|
17189
|
-
notificationsEnabled && /* @__PURE__ */ jsxRuntime.jsxs(
|
|
17190
|
-
exports.Button,
|
|
17233
|
+
exports.Box,
|
|
17191
17234
|
{
|
|
17192
|
-
|
|
17193
|
-
|
|
17194
|
-
onClick: handleNotificationClick,
|
|
17195
|
-
"aria-label": t("common.notifications"),
|
|
17196
|
-
children: [
|
|
17197
|
-
/* @__PURE__ */ jsxRuntime.jsx(LucideIcons.Bell, { className: "h-5 w-5 text-muted-foreground dark:text-muted-foreground" }),
|
|
17198
|
-
unreadCount > 0 && /* @__PURE__ */ jsxRuntime.jsx(
|
|
17199
|
-
exports.Box,
|
|
17200
|
-
{
|
|
17201
|
-
as: "span",
|
|
17202
|
-
className: "absolute -top-0.5 -right-0.5 min-w-[18px] h-[18px] px-1 bg-error rounded-full text-[10px] font-semibold text-white flex items-center justify-center",
|
|
17203
|
-
children: unreadCount > 99 ? "99+" : unreadCount
|
|
17204
|
-
}
|
|
17205
|
-
)
|
|
17206
|
-
]
|
|
17235
|
+
className: "fixed inset-0 z-20",
|
|
17236
|
+
onClick: () => setUserMenuOpen(false)
|
|
17207
17237
|
}
|
|
17208
17238
|
),
|
|
17209
|
-
|
|
17239
|
+
/* @__PURE__ */ jsxRuntime.jsxs(exports.Box, { className: "absolute right-0 mt-2 w-48 bg-card dark:bg-card rounded-lg shadow-lg border border-border dark:border-border py-1 z-30", children: [
|
|
17240
|
+
/* @__PURE__ */ jsxRuntime.jsxs(exports.Box, { className: "px-4 py-2 border-b border-border dark:border-border", children: [
|
|
17241
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
17242
|
+
exports.Typography,
|
|
17243
|
+
{
|
|
17244
|
+
variant: "small",
|
|
17245
|
+
className: "text-sm font-medium text-foreground dark:text-foreground",
|
|
17246
|
+
as: "p",
|
|
17247
|
+
children: user.name
|
|
17248
|
+
}
|
|
17249
|
+
),
|
|
17250
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
17251
|
+
exports.Typography,
|
|
17252
|
+
{
|
|
17253
|
+
variant: "caption",
|
|
17254
|
+
className: "text-xs text-muted-foreground dark:text-muted-foreground",
|
|
17255
|
+
as: "p",
|
|
17256
|
+
children: user.email
|
|
17257
|
+
}
|
|
17258
|
+
)
|
|
17259
|
+
] }),
|
|
17210
17260
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
17211
17261
|
exports.Button,
|
|
17212
17262
|
{
|
|
17213
17263
|
variant: "ghost",
|
|
17214
|
-
|
|
17215
|
-
|
|
17264
|
+
onClick: () => {
|
|
17265
|
+
setUserMenuOpen(false);
|
|
17266
|
+
handleSignOut?.();
|
|
17267
|
+
},
|
|
17268
|
+
className: "w-full flex items-center gap-2 px-4 py-2 text-sm text-error dark:text-error hover:bg-error/10 dark:hover:bg-error/20",
|
|
17216
17269
|
children: [
|
|
17217
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
17218
|
-
|
|
17219
|
-
{
|
|
17220
|
-
src: user.avatar,
|
|
17221
|
-
alt: user.name,
|
|
17222
|
-
initials: user.name.split(" ").map((n) => n[0]).join("").substring(0, 2),
|
|
17223
|
-
size: "sm"
|
|
17224
|
-
}
|
|
17225
|
-
),
|
|
17226
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
17227
|
-
exports.Typography,
|
|
17228
|
-
{
|
|
17229
|
-
variant: "small",
|
|
17230
|
-
className: "hidden sm:block text-sm font-medium text-foreground dark:text-foreground",
|
|
17231
|
-
as: "span",
|
|
17232
|
-
children: user.name
|
|
17233
|
-
}
|
|
17234
|
-
),
|
|
17235
|
-
/* @__PURE__ */ jsxRuntime.jsx(LucideIcons.ChevronDown, { className: "hidden sm:block h-4 w-4 text-muted-foreground dark:text-muted-foreground" })
|
|
17270
|
+
/* @__PURE__ */ jsxRuntime.jsx(LucideIcons.LogOut, { className: "h-4 w-4" }),
|
|
17271
|
+
t("auth.signOut")
|
|
17236
17272
|
]
|
|
17237
17273
|
}
|
|
17238
|
-
)
|
|
17239
|
-
userMenuOpen && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
17240
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
17241
|
-
exports.Box,
|
|
17242
|
-
{
|
|
17243
|
-
className: "fixed inset-0 z-20",
|
|
17244
|
-
onClick: () => setUserMenuOpen(false)
|
|
17245
|
-
}
|
|
17246
|
-
),
|
|
17247
|
-
/* @__PURE__ */ jsxRuntime.jsxs(exports.Box, { className: "absolute right-0 mt-2 w-48 bg-card dark:bg-card rounded-lg shadow-lg border border-border dark:border-border py-1 z-30", children: [
|
|
17248
|
-
/* @__PURE__ */ jsxRuntime.jsxs(exports.Box, { className: "px-4 py-2 border-b border-border dark:border-border", children: [
|
|
17249
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
17250
|
-
exports.Typography,
|
|
17251
|
-
{
|
|
17252
|
-
variant: "small",
|
|
17253
|
-
className: "text-sm font-medium text-foreground dark:text-foreground",
|
|
17254
|
-
as: "p",
|
|
17255
|
-
children: user.name
|
|
17256
|
-
}
|
|
17257
|
-
),
|
|
17258
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
17259
|
-
exports.Typography,
|
|
17260
|
-
{
|
|
17261
|
-
variant: "caption",
|
|
17262
|
-
className: "text-xs text-muted-foreground dark:text-muted-foreground",
|
|
17263
|
-
as: "p",
|
|
17264
|
-
children: user.email
|
|
17265
|
-
}
|
|
17266
|
-
)
|
|
17267
|
-
] }),
|
|
17268
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
17269
|
-
exports.Button,
|
|
17270
|
-
{
|
|
17271
|
-
variant: "ghost",
|
|
17272
|
-
onClick: () => {
|
|
17273
|
-
setUserMenuOpen(false);
|
|
17274
|
-
handleSignOut?.();
|
|
17275
|
-
},
|
|
17276
|
-
className: "w-full flex items-center gap-2 px-4 py-2 text-sm text-error dark:text-error hover:bg-error/10 dark:hover:bg-error/20",
|
|
17277
|
-
children: [
|
|
17278
|
-
/* @__PURE__ */ jsxRuntime.jsx(LucideIcons.LogOut, { className: "h-4 w-4" }),
|
|
17279
|
-
t("auth.signOut")
|
|
17280
|
-
]
|
|
17281
|
-
}
|
|
17282
|
-
)
|
|
17283
|
-
] })
|
|
17284
|
-
] })
|
|
17274
|
+
)
|
|
17285
17275
|
] })
|
|
17286
17276
|
] })
|
|
17287
|
-
]
|
|
17288
|
-
}
|
|
17289
|
-
|
|
17277
|
+
] })
|
|
17278
|
+
] })
|
|
17279
|
+
]
|
|
17290
17280
|
}
|
|
17291
|
-
)
|
|
17292
|
-
|
|
17293
|
-
|
|
17294
|
-
|
|
17295
|
-
}
|
|
17296
|
-
);
|
|
17281
|
+
)
|
|
17282
|
+
}
|
|
17283
|
+
),
|
|
17284
|
+
/* @__PURE__ */ jsxRuntime.jsx(exports.Box, { as: "main", className: "p-4 sm:p-6", children })
|
|
17285
|
+
] })
|
|
17286
|
+
] });
|
|
17297
17287
|
};
|
|
17298
17288
|
exports.DashboardLayout.displayName = "DashboardLayout";
|
|
17299
17289
|
NavLink = ({
|