@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
package/dist/avl/index.cjs
CHANGED
|
@@ -182,7 +182,7 @@ var init_types = __esm({
|
|
|
182
182
|
}
|
|
183
183
|
});
|
|
184
184
|
|
|
185
|
-
// node_modules
|
|
185
|
+
// node_modules/clsx/dist/clsx.mjs
|
|
186
186
|
function r(e) {
|
|
187
187
|
var t, f, n = "";
|
|
188
188
|
if ("string" == typeof e || "number" == typeof e) n += e;
|
|
@@ -197,11 +197,11 @@ function clsx() {
|
|
|
197
197
|
return n;
|
|
198
198
|
}
|
|
199
199
|
var init_clsx = __esm({
|
|
200
|
-
"node_modules
|
|
200
|
+
"node_modules/clsx/dist/clsx.mjs"() {
|
|
201
201
|
}
|
|
202
202
|
});
|
|
203
203
|
|
|
204
|
-
// node_modules
|
|
204
|
+
// node_modules/tailwind-merge/dist/bundle-mjs.mjs
|
|
205
205
|
function twJoin() {
|
|
206
206
|
let index = 0;
|
|
207
207
|
let argument;
|
|
@@ -245,7 +245,7 @@ function createTailwindMerge(createConfigFirst, ...createConfigRest) {
|
|
|
245
245
|
}
|
|
246
246
|
var CLASS_PART_SEPARATOR, createClassGroupUtils, getGroupRecursive, arbitraryPropertyRegex, getGroupIdForArbitraryProperty, createClassMap, processClassesRecursively, getPart, isThemeGetter, getPrefixedClassGroupEntries, createLruCache, IMPORTANT_MODIFIER, createParseClassName, sortModifiers, createConfigUtils, SPLIT_CLASSES_REGEX, mergeClassList, toValue, fromTheme, arbitraryValueRegex, fractionRegex, stringLengths, tshirtUnitRegex, lengthUnitRegex, colorFunctionRegex, shadowRegex, imageRegex, isLength, isArbitraryLength, isNumber, isArbitraryNumber, isInteger, isPercent, isArbitraryValue, isTshirtSize, sizeLabels, isArbitrarySize, isArbitraryPosition, imageLabels, isArbitraryImage, isArbitraryShadow, isAny, getIsArbitraryValue, isLengthOnly, isNever, isShadow, isImage, getDefaultConfig, twMerge;
|
|
247
247
|
var init_bundle_mjs = __esm({
|
|
248
|
-
"node_modules
|
|
248
|
+
"node_modules/tailwind-merge/dist/bundle-mjs.mjs"() {
|
|
249
249
|
CLASS_PART_SEPARATOR = "-";
|
|
250
250
|
createClassGroupUtils = (config) => {
|
|
251
251
|
const classMap = createClassMap(config);
|
|
@@ -12838,9 +12838,9 @@ var init_ScaledDiagram = __esm({
|
|
|
12838
12838
|
}
|
|
12839
12839
|
});
|
|
12840
12840
|
|
|
12841
|
-
// node_modules
|
|
12841
|
+
// node_modules/katex/dist/katex.min.css
|
|
12842
12842
|
var init_katex_min = __esm({
|
|
12843
|
-
"node_modules
|
|
12843
|
+
"node_modules/katex/dist/katex.min.css"() {
|
|
12844
12844
|
}
|
|
12845
12845
|
});
|
|
12846
12846
|
var MarkdownContent;
|
|
@@ -20668,265 +20668,255 @@ var init_DashboardLayout = __esm({
|
|
|
20668
20668
|
const user = userProp || (null);
|
|
20669
20669
|
const { t } = useTranslate();
|
|
20670
20670
|
const handleSignOut = onSignOutProp || authSignOut;
|
|
20671
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
20672
|
-
|
|
20673
|
-
|
|
20674
|
-
|
|
20675
|
-
|
|
20676
|
-
|
|
20677
|
-
|
|
20678
|
-
|
|
20679
|
-
|
|
20680
|
-
|
|
20681
|
-
|
|
20682
|
-
|
|
20671
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(Box, { className: "min-h-screen bg-background dark:bg-background", children: [
|
|
20672
|
+
sidebarOpen && /* @__PURE__ */ jsxRuntime.jsx(
|
|
20673
|
+
Box,
|
|
20674
|
+
{
|
|
20675
|
+
className: "fixed inset-0 bg-foreground/50 dark:bg-foreground/70 z-20 lg:hidden",
|
|
20676
|
+
onClick: () => setSidebarOpen(false)
|
|
20677
|
+
}
|
|
20678
|
+
),
|
|
20679
|
+
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
20680
|
+
Box,
|
|
20681
|
+
{
|
|
20682
|
+
as: "aside",
|
|
20683
|
+
className: cn(
|
|
20684
|
+
"fixed inset-y-0 left-0 z-30 w-64 bg-card dark:bg-card border-r border-border dark:border-border",
|
|
20685
|
+
"transform transition-transform duration-200 ease-in-out lg:translate-x-0",
|
|
20686
|
+
sidebarOpen ? "translate-x-0" : "-translate-x-full"
|
|
20683
20687
|
),
|
|
20684
|
-
|
|
20685
|
-
|
|
20686
|
-
|
|
20687
|
-
|
|
20688
|
-
|
|
20689
|
-
|
|
20690
|
-
"
|
|
20691
|
-
|
|
20692
|
-
|
|
20693
|
-
|
|
20694
|
-
|
|
20695
|
-
|
|
20696
|
-
|
|
20697
|
-
|
|
20688
|
+
children: [
|
|
20689
|
+
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
20690
|
+
HStack,
|
|
20691
|
+
{
|
|
20692
|
+
align: "center",
|
|
20693
|
+
justify: "between",
|
|
20694
|
+
className: "h-16 px-4 border-b border-border dark:border-border",
|
|
20695
|
+
children: [
|
|
20696
|
+
/* @__PURE__ */ jsxRuntime.jsxs(reactRouterDom.Link, { to: "/", className: "flex items-center gap-2", children: [
|
|
20697
|
+
logo || /* @__PURE__ */ jsxRuntime.jsx(Box, { className: "w-8 h-8 bg-primary-600 rounded-lg flex items-center justify-center", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
20698
|
+
Typography,
|
|
20699
|
+
{
|
|
20700
|
+
variant: "small",
|
|
20701
|
+
className: "text-white font-bold text-sm",
|
|
20702
|
+
as: "span",
|
|
20703
|
+
children: appName.charAt(0).toUpperCase()
|
|
20704
|
+
}
|
|
20705
|
+
) }),
|
|
20706
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
20707
|
+
Typography,
|
|
20708
|
+
{
|
|
20709
|
+
variant: "label",
|
|
20710
|
+
className: "font-semibold text-foreground dark:text-foreground",
|
|
20711
|
+
as: "span",
|
|
20712
|
+
children: appName
|
|
20713
|
+
}
|
|
20714
|
+
)
|
|
20715
|
+
] }),
|
|
20716
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
20717
|
+
Button,
|
|
20718
|
+
{
|
|
20719
|
+
variant: "ghost",
|
|
20720
|
+
className: "lg:hidden p-2 rounded-md hover:bg-muted dark:hover:bg-muted text-muted-foreground dark:text-muted-foreground",
|
|
20721
|
+
onClick: () => setSidebarOpen(false),
|
|
20722
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(LucideIcons.X, { className: "h-5 w-5" })
|
|
20723
|
+
}
|
|
20724
|
+
)
|
|
20725
|
+
]
|
|
20726
|
+
}
|
|
20727
|
+
),
|
|
20728
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
20729
|
+
VStack,
|
|
20730
|
+
{
|
|
20731
|
+
as: "nav",
|
|
20732
|
+
gap: "none",
|
|
20733
|
+
className: "flex-1 px-3 py-4 space-y-1 overflow-y-auto",
|
|
20734
|
+
children: navItems.map((item) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
20735
|
+
NavLink,
|
|
20698
20736
|
{
|
|
20699
|
-
|
|
20700
|
-
|
|
20701
|
-
|
|
20702
|
-
|
|
20703
|
-
|
|
20704
|
-
|
|
20705
|
-
|
|
20706
|
-
|
|
20707
|
-
|
|
20708
|
-
|
|
20709
|
-
|
|
20710
|
-
|
|
20711
|
-
|
|
20712
|
-
|
|
20713
|
-
|
|
20714
|
-
|
|
20715
|
-
|
|
20716
|
-
|
|
20717
|
-
|
|
20718
|
-
|
|
20719
|
-
|
|
20737
|
+
item,
|
|
20738
|
+
currentPath: location.pathname
|
|
20739
|
+
},
|
|
20740
|
+
item.href
|
|
20741
|
+
))
|
|
20742
|
+
}
|
|
20743
|
+
),
|
|
20744
|
+
sidebarFooter && /* @__PURE__ */ jsxRuntime.jsx(Box, { className: "p-4 border-t border-border dark:border-border", children: sidebarFooter })
|
|
20745
|
+
]
|
|
20746
|
+
}
|
|
20747
|
+
),
|
|
20748
|
+
/* @__PURE__ */ jsxRuntime.jsxs(Box, { className: "lg:pl-64", children: [
|
|
20749
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
20750
|
+
Box,
|
|
20751
|
+
{
|
|
20752
|
+
as: "header",
|
|
20753
|
+
className: "sticky top-0 z-20 h-16 bg-card dark:bg-card border-b border-border dark:border-border",
|
|
20754
|
+
children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
20755
|
+
HStack,
|
|
20756
|
+
{
|
|
20757
|
+
align: "center",
|
|
20758
|
+
justify: "between",
|
|
20759
|
+
className: "h-full px-4 gap-4",
|
|
20760
|
+
children: [
|
|
20761
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
20762
|
+
Button,
|
|
20763
|
+
{
|
|
20764
|
+
variant: "ghost",
|
|
20765
|
+
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",
|
|
20766
|
+
onClick: () => setSidebarOpen(true),
|
|
20767
|
+
"aria-label": "Open sidebar",
|
|
20768
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(LucideIcons.Menu, { className: "h-5 w-5" })
|
|
20769
|
+
}
|
|
20770
|
+
),
|
|
20771
|
+
searchEnabled && /* @__PURE__ */ jsxRuntime.jsx(Box, { className: "hidden sm:block flex-1 max-w-md", children: /* @__PURE__ */ jsxRuntime.jsxs(Box, { className: "relative", children: [
|
|
20772
|
+
/* @__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" }),
|
|
20773
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
20774
|
+
Input,
|
|
20775
|
+
{
|
|
20776
|
+
type: "search",
|
|
20777
|
+
placeholder: t("common.search"),
|
|
20778
|
+
className: "pl-10 w-full",
|
|
20779
|
+
onKeyDown: (e) => {
|
|
20780
|
+
if (e.key === "Enter") {
|
|
20781
|
+
handleSearchSubmit(e.target.value);
|
|
20720
20782
|
}
|
|
20721
|
-
)
|
|
20722
|
-
] }),
|
|
20723
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
20724
|
-
Button,
|
|
20725
|
-
{
|
|
20726
|
-
variant: "ghost",
|
|
20727
|
-
className: "lg:hidden p-2 rounded-md hover:bg-muted dark:hover:bg-muted text-muted-foreground dark:text-muted-foreground",
|
|
20728
|
-
onClick: () => setSidebarOpen(false),
|
|
20729
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(LucideIcons.X, { className: "h-5 w-5" })
|
|
20730
20783
|
}
|
|
20731
|
-
|
|
20732
|
-
|
|
20733
|
-
}
|
|
20734
|
-
|
|
20735
|
-
|
|
20736
|
-
|
|
20737
|
-
|
|
20738
|
-
|
|
20739
|
-
gap: "none",
|
|
20740
|
-
className: "flex-1 px-3 py-4 space-y-1 overflow-y-auto",
|
|
20741
|
-
children: navItems.map((item) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
20742
|
-
NavLink,
|
|
20784
|
+
}
|
|
20785
|
+
)
|
|
20786
|
+
] }) }),
|
|
20787
|
+
/* @__PURE__ */ jsxRuntime.jsxs(HStack, { align: "center", gap: "xs", children: [
|
|
20788
|
+
headerActions,
|
|
20789
|
+
showThemeToggle && /* @__PURE__ */ jsxRuntime.jsx(ThemeToggle, {}),
|
|
20790
|
+
topBarActions.map((action, idx) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
20791
|
+
Button,
|
|
20743
20792
|
{
|
|
20744
|
-
|
|
20745
|
-
|
|
20793
|
+
variant: "ghost",
|
|
20794
|
+
className: "relative p-2 rounded-full hover:bg-muted dark:hover:bg-muted",
|
|
20795
|
+
onClick: () => handleTopBarActionClick(action.event),
|
|
20796
|
+
"aria-label": action.label ?? action.icon,
|
|
20797
|
+
children: [
|
|
20798
|
+
/* @__PURE__ */ jsxRuntime.jsx(Icon, { name: action.icon, className: "h-5 w-5 text-muted-foreground dark:text-muted-foreground" }),
|
|
20799
|
+
action.badge !== void 0 && action.badge !== null && action.badge !== 0 && action.badge !== "" && /* @__PURE__ */ jsxRuntime.jsx(
|
|
20800
|
+
Box,
|
|
20801
|
+
{
|
|
20802
|
+
as: "span",
|
|
20803
|
+
className: cn(
|
|
20804
|
+
"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",
|
|
20805
|
+
action.variant === "danger" ? "bg-error" : action.variant === "primary" ? "bg-primary" : "bg-foreground"
|
|
20806
|
+
),
|
|
20807
|
+
children: action.badge
|
|
20808
|
+
}
|
|
20809
|
+
)
|
|
20810
|
+
]
|
|
20746
20811
|
},
|
|
20747
|
-
|
|
20748
|
-
))
|
|
20749
|
-
|
|
20750
|
-
|
|
20751
|
-
|
|
20752
|
-
|
|
20753
|
-
|
|
20754
|
-
|
|
20755
|
-
|
|
20756
|
-
|
|
20757
|
-
|
|
20758
|
-
|
|
20759
|
-
|
|
20760
|
-
|
|
20761
|
-
|
|
20762
|
-
|
|
20763
|
-
|
|
20764
|
-
|
|
20765
|
-
|
|
20766
|
-
|
|
20767
|
-
|
|
20768
|
-
|
|
20812
|
+
`${action.event}-${idx}`
|
|
20813
|
+
)),
|
|
20814
|
+
notificationsEnabled && /* @__PURE__ */ jsxRuntime.jsxs(
|
|
20815
|
+
Button,
|
|
20816
|
+
{
|
|
20817
|
+
variant: "ghost",
|
|
20818
|
+
className: "relative p-2 rounded-full hover:bg-muted dark:hover:bg-muted",
|
|
20819
|
+
onClick: handleNotificationClick,
|
|
20820
|
+
"aria-label": t("common.notifications"),
|
|
20821
|
+
children: [
|
|
20822
|
+
/* @__PURE__ */ jsxRuntime.jsx(LucideIcons.Bell, { className: "h-5 w-5 text-muted-foreground dark:text-muted-foreground" }),
|
|
20823
|
+
unreadCount > 0 && /* @__PURE__ */ jsxRuntime.jsx(
|
|
20824
|
+
Box,
|
|
20825
|
+
{
|
|
20826
|
+
as: "span",
|
|
20827
|
+
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",
|
|
20828
|
+
children: unreadCount > 99 ? "99+" : unreadCount
|
|
20829
|
+
}
|
|
20830
|
+
)
|
|
20831
|
+
]
|
|
20832
|
+
}
|
|
20833
|
+
),
|
|
20834
|
+
user && /* @__PURE__ */ jsxRuntime.jsxs(Box, { className: "relative", children: [
|
|
20835
|
+
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
20769
20836
|
Button,
|
|
20770
20837
|
{
|
|
20771
20838
|
variant: "ghost",
|
|
20772
|
-
className: "
|
|
20773
|
-
onClick: () =>
|
|
20774
|
-
|
|
20775
|
-
|
|
20839
|
+
className: "flex items-center gap-2 p-2 rounded-lg hover:bg-muted dark:hover:bg-muted",
|
|
20840
|
+
onClick: () => setUserMenuOpen(!userMenuOpen),
|
|
20841
|
+
children: [
|
|
20842
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
20843
|
+
Avatar,
|
|
20844
|
+
{
|
|
20845
|
+
src: user.avatar,
|
|
20846
|
+
alt: user.name,
|
|
20847
|
+
initials: user.name.split(" ").map((n) => n[0]).join("").substring(0, 2),
|
|
20848
|
+
size: "sm"
|
|
20849
|
+
}
|
|
20850
|
+
),
|
|
20851
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
20852
|
+
Typography,
|
|
20853
|
+
{
|
|
20854
|
+
variant: "small",
|
|
20855
|
+
className: "hidden sm:block text-sm font-medium text-foreground dark:text-foreground",
|
|
20856
|
+
as: "span",
|
|
20857
|
+
children: user.name
|
|
20858
|
+
}
|
|
20859
|
+
),
|
|
20860
|
+
/* @__PURE__ */ jsxRuntime.jsx(LucideIcons.ChevronDown, { className: "hidden sm:block h-4 w-4 text-muted-foreground dark:text-muted-foreground" })
|
|
20861
|
+
]
|
|
20776
20862
|
}
|
|
20777
20863
|
),
|
|
20778
|
-
|
|
20779
|
-
/* @__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" }),
|
|
20864
|
+
userMenuOpen && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
20780
20865
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
20781
|
-
|
|
20782
|
-
{
|
|
20783
|
-
type: "search",
|
|
20784
|
-
placeholder: t("common.search"),
|
|
20785
|
-
className: "pl-10 w-full",
|
|
20786
|
-
onKeyDown: (e) => {
|
|
20787
|
-
if (e.key === "Enter") {
|
|
20788
|
-
handleSearchSubmit(e.target.value);
|
|
20789
|
-
}
|
|
20790
|
-
}
|
|
20791
|
-
}
|
|
20792
|
-
)
|
|
20793
|
-
] }) }),
|
|
20794
|
-
!searchEnabled && /* @__PURE__ */ jsxRuntime.jsx(Box, { className: "flex-1" }),
|
|
20795
|
-
/* @__PURE__ */ jsxRuntime.jsxs(HStack, { align: "center", gap: "xs", children: [
|
|
20796
|
-
headerActions,
|
|
20797
|
-
showThemeToggle && /* @__PURE__ */ jsxRuntime.jsx(ThemeToggle, {}),
|
|
20798
|
-
topBarActions.map((action, idx) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
20799
|
-
Button,
|
|
20866
|
+
Box,
|
|
20800
20867
|
{
|
|
20801
|
-
|
|
20802
|
-
|
|
20803
|
-
onClick: () => handleTopBarActionClick(action.event),
|
|
20804
|
-
"aria-label": action.label ?? action.icon,
|
|
20805
|
-
children: [
|
|
20806
|
-
/* @__PURE__ */ jsxRuntime.jsx(Icon, { name: action.icon, className: "h-5 w-5 text-muted-foreground dark:text-muted-foreground" }),
|
|
20807
|
-
action.badge !== void 0 && action.badge !== null && action.badge !== 0 && action.badge !== "" && /* @__PURE__ */ jsxRuntime.jsx(
|
|
20808
|
-
Box,
|
|
20809
|
-
{
|
|
20810
|
-
as: "span",
|
|
20811
|
-
className: cn(
|
|
20812
|
-
"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",
|
|
20813
|
-
action.variant === "danger" ? "bg-error" : action.variant === "primary" ? "bg-primary" : "bg-foreground"
|
|
20814
|
-
),
|
|
20815
|
-
children: action.badge
|
|
20816
|
-
}
|
|
20817
|
-
)
|
|
20818
|
-
]
|
|
20819
|
-
},
|
|
20820
|
-
`${action.event}-${idx}`
|
|
20821
|
-
)),
|
|
20822
|
-
notificationsEnabled && /* @__PURE__ */ jsxRuntime.jsxs(
|
|
20823
|
-
Button,
|
|
20824
|
-
{
|
|
20825
|
-
variant: "ghost",
|
|
20826
|
-
className: "relative p-2 rounded-full hover:bg-muted dark:hover:bg-muted",
|
|
20827
|
-
onClick: handleNotificationClick,
|
|
20828
|
-
"aria-label": t("common.notifications"),
|
|
20829
|
-
children: [
|
|
20830
|
-
/* @__PURE__ */ jsxRuntime.jsx(LucideIcons.Bell, { className: "h-5 w-5 text-muted-foreground dark:text-muted-foreground" }),
|
|
20831
|
-
unreadCount > 0 && /* @__PURE__ */ jsxRuntime.jsx(
|
|
20832
|
-
Box,
|
|
20833
|
-
{
|
|
20834
|
-
as: "span",
|
|
20835
|
-
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",
|
|
20836
|
-
children: unreadCount > 99 ? "99+" : unreadCount
|
|
20837
|
-
}
|
|
20838
|
-
)
|
|
20839
|
-
]
|
|
20868
|
+
className: "fixed inset-0 z-20",
|
|
20869
|
+
onClick: () => setUserMenuOpen(false)
|
|
20840
20870
|
}
|
|
20841
20871
|
),
|
|
20842
|
-
|
|
20872
|
+
/* @__PURE__ */ jsxRuntime.jsxs(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: [
|
|
20873
|
+
/* @__PURE__ */ jsxRuntime.jsxs(Box, { className: "px-4 py-2 border-b border-border dark:border-border", children: [
|
|
20874
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
20875
|
+
Typography,
|
|
20876
|
+
{
|
|
20877
|
+
variant: "small",
|
|
20878
|
+
className: "text-sm font-medium text-foreground dark:text-foreground",
|
|
20879
|
+
as: "p",
|
|
20880
|
+
children: user.name
|
|
20881
|
+
}
|
|
20882
|
+
),
|
|
20883
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
20884
|
+
Typography,
|
|
20885
|
+
{
|
|
20886
|
+
variant: "caption",
|
|
20887
|
+
className: "text-xs text-muted-foreground dark:text-muted-foreground",
|
|
20888
|
+
as: "p",
|
|
20889
|
+
children: user.email
|
|
20890
|
+
}
|
|
20891
|
+
)
|
|
20892
|
+
] }),
|
|
20843
20893
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
20844
20894
|
Button,
|
|
20845
20895
|
{
|
|
20846
20896
|
variant: "ghost",
|
|
20847
|
-
|
|
20848
|
-
|
|
20897
|
+
onClick: () => {
|
|
20898
|
+
setUserMenuOpen(false);
|
|
20899
|
+
handleSignOut?.();
|
|
20900
|
+
},
|
|
20901
|
+
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",
|
|
20849
20902
|
children: [
|
|
20850
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
20851
|
-
|
|
20852
|
-
{
|
|
20853
|
-
src: user.avatar,
|
|
20854
|
-
alt: user.name,
|
|
20855
|
-
initials: user.name.split(" ").map((n) => n[0]).join("").substring(0, 2),
|
|
20856
|
-
size: "sm"
|
|
20857
|
-
}
|
|
20858
|
-
),
|
|
20859
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
20860
|
-
Typography,
|
|
20861
|
-
{
|
|
20862
|
-
variant: "small",
|
|
20863
|
-
className: "hidden sm:block text-sm font-medium text-foreground dark:text-foreground",
|
|
20864
|
-
as: "span",
|
|
20865
|
-
children: user.name
|
|
20866
|
-
}
|
|
20867
|
-
),
|
|
20868
|
-
/* @__PURE__ */ jsxRuntime.jsx(LucideIcons.ChevronDown, { className: "hidden sm:block h-4 w-4 text-muted-foreground dark:text-muted-foreground" })
|
|
20903
|
+
/* @__PURE__ */ jsxRuntime.jsx(LucideIcons.LogOut, { className: "h-4 w-4" }),
|
|
20904
|
+
t("auth.signOut")
|
|
20869
20905
|
]
|
|
20870
20906
|
}
|
|
20871
|
-
)
|
|
20872
|
-
userMenuOpen && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
20873
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
20874
|
-
Box,
|
|
20875
|
-
{
|
|
20876
|
-
className: "fixed inset-0 z-20",
|
|
20877
|
-
onClick: () => setUserMenuOpen(false)
|
|
20878
|
-
}
|
|
20879
|
-
),
|
|
20880
|
-
/* @__PURE__ */ jsxRuntime.jsxs(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: [
|
|
20881
|
-
/* @__PURE__ */ jsxRuntime.jsxs(Box, { className: "px-4 py-2 border-b border-border dark:border-border", children: [
|
|
20882
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
20883
|
-
Typography,
|
|
20884
|
-
{
|
|
20885
|
-
variant: "small",
|
|
20886
|
-
className: "text-sm font-medium text-foreground dark:text-foreground",
|
|
20887
|
-
as: "p",
|
|
20888
|
-
children: user.name
|
|
20889
|
-
}
|
|
20890
|
-
),
|
|
20891
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
20892
|
-
Typography,
|
|
20893
|
-
{
|
|
20894
|
-
variant: "caption",
|
|
20895
|
-
className: "text-xs text-muted-foreground dark:text-muted-foreground",
|
|
20896
|
-
as: "p",
|
|
20897
|
-
children: user.email
|
|
20898
|
-
}
|
|
20899
|
-
)
|
|
20900
|
-
] }),
|
|
20901
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
20902
|
-
Button,
|
|
20903
|
-
{
|
|
20904
|
-
variant: "ghost",
|
|
20905
|
-
onClick: () => {
|
|
20906
|
-
setUserMenuOpen(false);
|
|
20907
|
-
handleSignOut?.();
|
|
20908
|
-
},
|
|
20909
|
-
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",
|
|
20910
|
-
children: [
|
|
20911
|
-
/* @__PURE__ */ jsxRuntime.jsx(LucideIcons.LogOut, { className: "h-4 w-4" }),
|
|
20912
|
-
t("auth.signOut")
|
|
20913
|
-
]
|
|
20914
|
-
}
|
|
20915
|
-
)
|
|
20916
|
-
] })
|
|
20917
|
-
] })
|
|
20907
|
+
)
|
|
20918
20908
|
] })
|
|
20919
20909
|
] })
|
|
20920
|
-
]
|
|
20921
|
-
}
|
|
20922
|
-
|
|
20910
|
+
] })
|
|
20911
|
+
] })
|
|
20912
|
+
]
|
|
20923
20913
|
}
|
|
20924
|
-
)
|
|
20925
|
-
|
|
20926
|
-
|
|
20927
|
-
|
|
20928
|
-
}
|
|
20929
|
-
);
|
|
20914
|
+
)
|
|
20915
|
+
}
|
|
20916
|
+
),
|
|
20917
|
+
/* @__PURE__ */ jsxRuntime.jsx(Box, { as: "main", className: "p-4 sm:p-6", children })
|
|
20918
|
+
] })
|
|
20919
|
+
] });
|
|
20930
20920
|
};
|
|
20931
20921
|
DashboardLayout.displayName = "DashboardLayout";
|
|
20932
20922
|
NavLink = ({
|
|
@@ -49015,7 +49005,7 @@ init_logger();
|
|
|
49015
49005
|
|
|
49016
49006
|
// runtime/createClientEffectHandlers.ts
|
|
49017
49007
|
function createClientEffectHandlers(options) {
|
|
49018
|
-
const { eventBus, slotSetter, navigate, notify
|
|
49008
|
+
const { eventBus, slotSetter, navigate, notify } = options;
|
|
49019
49009
|
return {
|
|
49020
49010
|
emit: (event, payload) => {
|
|
49021
49011
|
const prefixedEvent = event.startsWith("UI:") ? event : `UI:${event}`;
|
|
@@ -49027,24 +49017,9 @@ function createClientEffectHandlers(options) {
|
|
|
49027
49017
|
set: () => {
|
|
49028
49018
|
console.warn("[ClientEffectHandlers] set is server-side only, ignored on client");
|
|
49029
49019
|
},
|
|
49030
|
-
callService: async (
|
|
49031
|
-
|
|
49032
|
-
|
|
49033
|
-
const paramsEcho = {};
|
|
49034
|
-
if (params) {
|
|
49035
|
-
for (const [k, v] of Object.entries(params)) {
|
|
49036
|
-
if (v !== void 0 && (typeof v === "string" || typeof v === "number" || typeof v === "boolean" || v === null || v instanceof Date)) {
|
|
49037
|
-
paramsEcho[k] = v;
|
|
49038
|
-
}
|
|
49039
|
-
}
|
|
49040
|
-
}
|
|
49041
|
-
return {
|
|
49042
|
-
id: mockId,
|
|
49043
|
-
clientSecret: `secret_${mockId}`,
|
|
49044
|
-
success: true,
|
|
49045
|
-
status: "succeeded",
|
|
49046
|
-
...paramsEcho
|
|
49047
|
-
};
|
|
49020
|
+
callService: async () => {
|
|
49021
|
+
console.warn("[ClientEffectHandlers] callService is server-side only, ignored on client");
|
|
49022
|
+
return {};
|
|
49048
49023
|
},
|
|
49049
49024
|
renderUI: (slot, pattern, props) => {
|
|
49050
49025
|
if (pattern === null) {
|
|
@@ -49427,8 +49402,7 @@ function useTraitStateMachine(traitBindings, uiSlots, options) {
|
|
|
49427
49402
|
}
|
|
49428
49403
|
},
|
|
49429
49404
|
navigate: optionsRef.current?.navigate,
|
|
49430
|
-
notify: optionsRef.current?.notify
|
|
49431
|
-
callService: optionsRef.current?.callService
|
|
49405
|
+
notify: optionsRef.current?.notify
|
|
49432
49406
|
});
|
|
49433
49407
|
const persistence = optionsRef.current?.persistence;
|
|
49434
49408
|
let handlers = clientHandlers;
|
package/dist/avl/index.css
CHANGED