@egose/shadcn-theme 0.0.51 → 0.0.53
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/components/ui/command.d.mts +1 -1
- package/components/ui/command.d.ts +1 -1
- package/layouts/simple/index.d.mts +19 -15
- package/layouts/simple/index.d.ts +19 -15
- package/layouts/simple/index.js +15 -15
- package/layouts/simple/index.js.map +1 -1
- package/layouts/simple/index.mjs +15 -15
- package/layouts/simple/index.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -23,7 +23,7 @@ declare const CommandInput: React.ForwardRefExoticComponent<Omit<Omit<Pick<Pick<
|
|
|
23
23
|
ref?: React.Ref<HTMLInputElement>;
|
|
24
24
|
} & {
|
|
25
25
|
asChild?: boolean;
|
|
26
|
-
}, "key" | "asChild" | keyof React.InputHTMLAttributes<HTMLInputElement>>, "
|
|
26
|
+
}, "key" | "asChild" | keyof React.InputHTMLAttributes<HTMLInputElement>>, "value" | "onChange" | "type"> & {
|
|
27
27
|
value?: string;
|
|
28
28
|
onValueChange?: (search: string) => void;
|
|
29
29
|
} & React.RefAttributes<HTMLInputElement>, "ref"> & React.RefAttributes<HTMLInputElement>>;
|
|
@@ -23,7 +23,7 @@ declare const CommandInput: React.ForwardRefExoticComponent<Omit<Omit<Pick<Pick<
|
|
|
23
23
|
ref?: React.Ref<HTMLInputElement>;
|
|
24
24
|
} & {
|
|
25
25
|
asChild?: boolean;
|
|
26
|
-
}, "key" | "asChild" | keyof React.InputHTMLAttributes<HTMLInputElement>>, "
|
|
26
|
+
}, "key" | "asChild" | keyof React.InputHTMLAttributes<HTMLInputElement>>, "value" | "onChange" | "type"> & {
|
|
27
27
|
value?: string;
|
|
28
28
|
onValueChange?: (search: string) => void;
|
|
29
29
|
} & React.RefAttributes<HTMLInputElement>, "ref"> & React.RefAttributes<HTMLInputElement>>;
|
|
@@ -5,7 +5,6 @@ interface LayoutProps {
|
|
|
5
5
|
logo?: {
|
|
6
6
|
src?: string;
|
|
7
7
|
link?: string;
|
|
8
|
-
className?: string;
|
|
9
8
|
};
|
|
10
9
|
user?: {
|
|
11
10
|
menuSections: UserMenuSection[];
|
|
@@ -13,17 +12,9 @@ interface LayoutProps {
|
|
|
13
12
|
};
|
|
14
13
|
left?: {
|
|
15
14
|
menus: MenuItem[];
|
|
16
|
-
classNames?: {
|
|
17
|
-
nav?: string;
|
|
18
|
-
link?: string;
|
|
19
|
-
};
|
|
20
15
|
};
|
|
21
16
|
right?: {
|
|
22
17
|
menus: MenuItem[];
|
|
23
|
-
classNames?: {
|
|
24
|
-
nav?: string;
|
|
25
|
-
link?: string;
|
|
26
|
-
};
|
|
27
18
|
};
|
|
28
19
|
sidebar?: {
|
|
29
20
|
title: string;
|
|
@@ -32,17 +23,30 @@ interface LayoutProps {
|
|
|
32
23
|
footer?: {
|
|
33
24
|
menus: MenuItem[];
|
|
34
25
|
content?: string;
|
|
35
|
-
|
|
26
|
+
};
|
|
27
|
+
classNames?: {
|
|
28
|
+
header?: {
|
|
29
|
+
wrapper: string;
|
|
30
|
+
logo?: string;
|
|
31
|
+
left?: {
|
|
32
|
+
nav?: string;
|
|
33
|
+
link?: string;
|
|
34
|
+
};
|
|
35
|
+
right?: {
|
|
36
|
+
nav?: string;
|
|
37
|
+
link?: string;
|
|
38
|
+
};
|
|
39
|
+
};
|
|
40
|
+
content?: {
|
|
41
|
+
wrapper?: string;
|
|
42
|
+
bottom?: string;
|
|
43
|
+
};
|
|
44
|
+
footer?: {
|
|
36
45
|
wrapper?: string;
|
|
37
46
|
nav?: string;
|
|
38
47
|
link?: string;
|
|
39
48
|
};
|
|
40
49
|
};
|
|
41
|
-
classNames?: {
|
|
42
|
-
header?: string;
|
|
43
|
-
content?: string;
|
|
44
|
-
contentBottom?: string;
|
|
45
|
-
};
|
|
46
50
|
loading?: boolean;
|
|
47
51
|
children?: React__default.ReactNode;
|
|
48
52
|
aslink: React__default.ElementType;
|
|
@@ -5,7 +5,6 @@ interface LayoutProps {
|
|
|
5
5
|
logo?: {
|
|
6
6
|
src?: string;
|
|
7
7
|
link?: string;
|
|
8
|
-
className?: string;
|
|
9
8
|
};
|
|
10
9
|
user?: {
|
|
11
10
|
menuSections: UserMenuSection[];
|
|
@@ -13,17 +12,9 @@ interface LayoutProps {
|
|
|
13
12
|
};
|
|
14
13
|
left?: {
|
|
15
14
|
menus: MenuItem[];
|
|
16
|
-
classNames?: {
|
|
17
|
-
nav?: string;
|
|
18
|
-
link?: string;
|
|
19
|
-
};
|
|
20
15
|
};
|
|
21
16
|
right?: {
|
|
22
17
|
menus: MenuItem[];
|
|
23
|
-
classNames?: {
|
|
24
|
-
nav?: string;
|
|
25
|
-
link?: string;
|
|
26
|
-
};
|
|
27
18
|
};
|
|
28
19
|
sidebar?: {
|
|
29
20
|
title: string;
|
|
@@ -32,17 +23,30 @@ interface LayoutProps {
|
|
|
32
23
|
footer?: {
|
|
33
24
|
menus: MenuItem[];
|
|
34
25
|
content?: string;
|
|
35
|
-
|
|
26
|
+
};
|
|
27
|
+
classNames?: {
|
|
28
|
+
header?: {
|
|
29
|
+
wrapper: string;
|
|
30
|
+
logo?: string;
|
|
31
|
+
left?: {
|
|
32
|
+
nav?: string;
|
|
33
|
+
link?: string;
|
|
34
|
+
};
|
|
35
|
+
right?: {
|
|
36
|
+
nav?: string;
|
|
37
|
+
link?: string;
|
|
38
|
+
};
|
|
39
|
+
};
|
|
40
|
+
content?: {
|
|
41
|
+
wrapper?: string;
|
|
42
|
+
bottom?: string;
|
|
43
|
+
};
|
|
44
|
+
footer?: {
|
|
36
45
|
wrapper?: string;
|
|
37
46
|
nav?: string;
|
|
38
47
|
link?: string;
|
|
39
48
|
};
|
|
40
49
|
};
|
|
41
|
-
classNames?: {
|
|
42
|
-
header?: string;
|
|
43
|
-
content?: string;
|
|
44
|
-
contentBottom?: string;
|
|
45
|
-
};
|
|
46
50
|
loading?: boolean;
|
|
47
51
|
children?: React__default.ReactNode;
|
|
48
52
|
aslink: React__default.ElementType;
|
package/layouts/simple/index.js
CHANGED
|
@@ -16,7 +16,7 @@ require('../../chunk-2NMEKWO5.js');
|
|
|
16
16
|
var _react = require('react'); var _react2 = _interopRequireDefault(_react);
|
|
17
17
|
var _lucidereact = require('lucide-react');
|
|
18
18
|
function SimpleLayout(props) {
|
|
19
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j;
|
|
19
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o;
|
|
20
20
|
const { logo, user, left, right, sidebar, footer, classNames, loading, children, aslink } = props;
|
|
21
21
|
const [mobileMenuOpen, setMobileMenuOpen] = _react.useState.call(void 0, false);
|
|
22
22
|
const [isMobile, setIsMobile] = _react.useState.call(void 0, false);
|
|
@@ -40,7 +40,7 @@ function SimpleLayout(props) {
|
|
|
40
40
|
{
|
|
41
41
|
className: _chunk6N4WCMTEjs.cn.call(void 0,
|
|
42
42
|
"px-4 py-2 flex items-center justify-between bg-gray-100 border-b border-gray-300",
|
|
43
|
-
classNames == null ? void 0 : classNames.header
|
|
43
|
+
(_e = classNames == null ? void 0 : classNames.header) == null ? void 0 : _e.wrapper
|
|
44
44
|
)
|
|
45
45
|
},
|
|
46
46
|
/* @__PURE__ */ _react2.default.createElement("div", { className: "flex items-center space-x-4" }, sidebar && /* @__PURE__ */ _react2.default.createElement(
|
|
@@ -50,9 +50,9 @@ function SimpleLayout(props) {
|
|
|
50
50
|
onClick: () => {
|
|
51
51
|
}
|
|
52
52
|
}
|
|
53
|
-
), logo && /* @__PURE__ */ _react2.default.createElement("div", { className: _chunk6N4WCMTEjs.cn.call(void 0, "_logo") }, /* @__PURE__ */ _react2.default.createElement(LinkComponent, { to: (
|
|
53
|
+
), logo && /* @__PURE__ */ _react2.default.createElement("div", { className: _chunk6N4WCMTEjs.cn.call(void 0, "_logo") }, /* @__PURE__ */ _react2.default.createElement(LinkComponent, { to: (_f = logo.link) != null ? _f : "/", href: (_g = logo.link) != null ? _g : "/" }, /* @__PURE__ */ _react2.default.createElement("img", { src: logo.src, alt: "Logo", className: _chunk6N4WCMTEjs.cn.call(void 0, "h-10", (_h = classNames == null ? void 0 : classNames.header) == null ? void 0 : _h.logo) }))), /* @__PURE__ */ _react2.default.createElement("nav", { className: _chunk6N4WCMTEjs.cn.call(void 0, "flex space-x-4 items-center", (_j = (_i = classNames == null ? void 0 : classNames.header) == null ? void 0 : _i.left) == null ? void 0 : _j.nav) }, leftMenus.map(
|
|
54
54
|
(item) => {
|
|
55
|
-
var _a2, _b2;
|
|
55
|
+
var _a2, _b2, _c2, _d2;
|
|
56
56
|
return item.link ? /* @__PURE__ */ _react2.default.createElement(
|
|
57
57
|
LinkComponent,
|
|
58
58
|
{
|
|
@@ -61,7 +61,7 @@ function SimpleLayout(props) {
|
|
|
61
61
|
href: item.link,
|
|
62
62
|
className: _chunk6N4WCMTEjs.cn.call(void 0,
|
|
63
63
|
"text-left text-secondary visited:text-secondary hover:text-primary cursor-pointer no-underline",
|
|
64
|
-
(_a2 =
|
|
64
|
+
(_b2 = (_a2 = classNames == null ? void 0 : classNames.header) == null ? void 0 : _a2.left) == null ? void 0 : _b2.link,
|
|
65
65
|
item.className,
|
|
66
66
|
item.title || !isMobile ? "inline-block" : "hidden"
|
|
67
67
|
)
|
|
@@ -74,7 +74,7 @@ function SimpleLayout(props) {
|
|
|
74
74
|
onClick: item.action,
|
|
75
75
|
className: _chunk6N4WCMTEjs.cn.call(void 0,
|
|
76
76
|
"text-left text-secondary visited:text-secondary hover:text-primary cursor-pointer no-underline",
|
|
77
|
-
(
|
|
77
|
+
(_d2 = (_c2 = classNames == null ? void 0 : classNames.header) == null ? void 0 : _c2.left) == null ? void 0 : _d2.link,
|
|
78
78
|
item.className,
|
|
79
79
|
item.title || !isMobile ? "inline-block" : "hidden"
|
|
80
80
|
)
|
|
@@ -83,9 +83,9 @@ function SimpleLayout(props) {
|
|
|
83
83
|
);
|
|
84
84
|
}
|
|
85
85
|
))),
|
|
86
|
-
/* @__PURE__ */ _react2.default.createElement("nav", { className: _chunk6N4WCMTEjs.cn.call(void 0, "hidden md:flex space-x-4 items-center", (
|
|
86
|
+
/* @__PURE__ */ _react2.default.createElement("nav", { className: _chunk6N4WCMTEjs.cn.call(void 0, "hidden md:flex space-x-4 items-center", (_l = (_k = classNames == null ? void 0 : classNames.header) == null ? void 0 : _k.right) == null ? void 0 : _l.nav) }, rightMenus.map(
|
|
87
87
|
(item) => {
|
|
88
|
-
var _a2, _b2;
|
|
88
|
+
var _a2, _b2, _c2, _d2;
|
|
89
89
|
return item.link ? /* @__PURE__ */ _react2.default.createElement(
|
|
90
90
|
LinkComponent,
|
|
91
91
|
{
|
|
@@ -94,7 +94,7 @@ function SimpleLayout(props) {
|
|
|
94
94
|
href: item.link,
|
|
95
95
|
className: _chunk6N4WCMTEjs.cn.call(void 0,
|
|
96
96
|
"text-left text-secondary visited:text-secondary hover:text-primary cursor-pointer no-underline",
|
|
97
|
-
(_a2 =
|
|
97
|
+
(_b2 = (_a2 = classNames == null ? void 0 : classNames.header) == null ? void 0 : _a2.right) == null ? void 0 : _b2.link,
|
|
98
98
|
item.className
|
|
99
99
|
)
|
|
100
100
|
},
|
|
@@ -106,7 +106,7 @@ function SimpleLayout(props) {
|
|
|
106
106
|
onClick: item.action,
|
|
107
107
|
className: _chunk6N4WCMTEjs.cn.call(void 0,
|
|
108
108
|
"text-left text-secondary visited:text-secondary hover:text-primary cursor-pointer no-underline",
|
|
109
|
-
(
|
|
109
|
+
(_d2 = (_c2 = classNames == null ? void 0 : classNames.header) == null ? void 0 : _c2.right) == null ? void 0 : _d2.link,
|
|
110
110
|
item.className
|
|
111
111
|
)
|
|
112
112
|
},
|
|
@@ -115,15 +115,15 @@ function SimpleLayout(props) {
|
|
|
115
115
|
}
|
|
116
116
|
), userMenuSections.length > 0 && /* @__PURE__ */ _react2.default.createElement(_chunkZOF6UW3Djs.UserMenus, { sections: userMenuSections, trigger: user == null ? void 0 : user.trigger, aslink })),
|
|
117
117
|
/* @__PURE__ */ _react2.default.createElement("button", { onClick: toggleMobileMenu, className: "md:hidden p-2 text-gray-700 hover:text-primary cursor-pointer" }, /* @__PURE__ */ _react2.default.createElement(_lucidereact.Menu, { className: "" }))
|
|
118
|
-
), isMobile && mobileMenuOpen && /* @__PURE__ */ _react2.default.createElement("div", { className: "w-full" }, /* @__PURE__ */ _react2.default.createElement(_chunkQGXFFTPHjs.MobileMenu, { sections: userMenuSections, aslink, onClick: toggleMobileMenu })), /* @__PURE__ */ _react2.default.createElement("main", { className: _chunk6N4WCMTEjs.cn.call(void 0, "p-4 flex flex-col flex-1", classNames == null ? void 0 : classNames.content) }, !loading && /* @__PURE__ */ _react2.default.createElement("div", { className: "flex items-center justify-center h-full" }, children), /* @__PURE__ */ _react2.default.createElement("div", { className: _chunk6N4WCMTEjs.cn.call(void 0, "flex-1", classNames == null ? void 0 : classNames.
|
|
118
|
+
), isMobile && mobileMenuOpen && /* @__PURE__ */ _react2.default.createElement("div", { className: "w-full" }, /* @__PURE__ */ _react2.default.createElement(_chunkQGXFFTPHjs.MobileMenu, { sections: userMenuSections, aslink, onClick: toggleMobileMenu })), /* @__PURE__ */ _react2.default.createElement("main", { className: _chunk6N4WCMTEjs.cn.call(void 0, "p-4 flex flex-col flex-1", classNames == null ? void 0 : classNames.content) }, !loading && /* @__PURE__ */ _react2.default.createElement("div", { className: "flex items-center justify-center h-full" }, children), /* @__PURE__ */ _react2.default.createElement("div", { className: _chunk6N4WCMTEjs.cn.call(void 0, "flex-1", (_m = classNames == null ? void 0 : classNames.content) == null ? void 0 : _m.bottom) })), footer && /* @__PURE__ */ _react2.default.createElement(
|
|
119
119
|
"footer",
|
|
120
120
|
{
|
|
121
121
|
className: _chunk6N4WCMTEjs.cn.call(void 0,
|
|
122
122
|
"px-4 py-4 bg-gray-100 border-t border-gray-300 text-sm text-gray-600",
|
|
123
|
-
(
|
|
123
|
+
(_n = classNames == null ? void 0 : classNames.footer) == null ? void 0 : _n.wrapper
|
|
124
124
|
)
|
|
125
125
|
},
|
|
126
|
-
/* @__PURE__ */ _react2.default.createElement("nav", { className: _chunk6N4WCMTEjs.cn.call(void 0, "flex flex-wrap justify-center space-x-4", (
|
|
126
|
+
/* @__PURE__ */ _react2.default.createElement("nav", { className: _chunk6N4WCMTEjs.cn.call(void 0, "flex flex-wrap justify-center space-x-4", (_o = classNames == null ? void 0 : classNames.footer) == null ? void 0 : _o.nav) }, footerMenus.map(
|
|
127
127
|
(item) => {
|
|
128
128
|
var _a2, _b2;
|
|
129
129
|
return item.link ? /* @__PURE__ */ _react2.default.createElement(
|
|
@@ -134,7 +134,7 @@ function SimpleLayout(props) {
|
|
|
134
134
|
href: item.link,
|
|
135
135
|
className: _chunk6N4WCMTEjs.cn.call(void 0,
|
|
136
136
|
"text-secondary hover:text-primary cursor-pointer no-underline",
|
|
137
|
-
(_a2 =
|
|
137
|
+
(_a2 = classNames == null ? void 0 : classNames.footer) == null ? void 0 : _a2.link,
|
|
138
138
|
item.className
|
|
139
139
|
)
|
|
140
140
|
},
|
|
@@ -146,7 +146,7 @@ function SimpleLayout(props) {
|
|
|
146
146
|
onClick: item.action,
|
|
147
147
|
className: _chunk6N4WCMTEjs.cn.call(void 0,
|
|
148
148
|
"text-secondary hover:text-primary cursor-pointer no-underline",
|
|
149
|
-
(_b2 =
|
|
149
|
+
(_b2 = classNames == null ? void 0 : classNames.footer) == null ? void 0 : _b2.link,
|
|
150
150
|
item.className
|
|
151
151
|
)
|
|
152
152
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/jahn/projects/shadcn-theme/packages/react/dist/layouts/simple/index.js","../../../layouts/simple/index.tsx"],"names":["_a","_b"],"mappings":"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","file":"/home/jahn/projects/shadcn-theme/packages/react/dist/layouts/simple/index.js","sourcesContent":[null,"\"use client\";\nimport React, { useState, useMemo, useEffect } from 'react';\nimport { Menu } from 'lucide-react';\nimport { cn } from '../../lib/utils';\nimport { UserMenus } from './user-menu';\nimport { MobileMenu } from './mobile-menu';\nimport type { MenuItem, UserMenuSection } from './types';\n\ninterface LayoutProps {\n logo?: {\n src?: string;\n link?: string;\n className?: string;\n };\n user?: {\n menuSections: UserMenuSection[];\n trigger?: React.ReactNode;\n };\n left?: {\n menus: MenuItem[];\n classNames?: {\n nav?: string;\n link?: string;\n };\n };\n right?: {\n menus: MenuItem[];\n classNames?: {\n nav?: string;\n link?: string;\n };\n };\n sidebar?: {\n title: string;\n content: React.ReactNode;\n };\n footer?: {\n menus: MenuItem[];\n content?: string;\n classNames?: {\n wrapper?: string;\n nav?: string;\n link?: string;\n };\n };\n classNames?: {\n header?: string;\n content?: string;\n contentBottom?: string;\n };\n loading?: boolean;\n children?: React.ReactNode;\n aslink: React.ElementType;\n}\n\nexport default function SimpleLayout(props: LayoutProps) {\n const { logo, user, left, right, sidebar, footer, classNames, loading, children, aslink } = props;\n\n const [mobileMenuOpen, setMobileMenuOpen] = useState(false);\n const [isMobile, setIsMobile] = useState(false);\n\n const LinkComponent = aslink ?? 'button';\n\n useEffect(() => {\n const handleResize = () => {\n setIsMobile(window.innerWidth < 768);\n };\n handleResize();\n window.addEventListener('resize', handleResize);\n return () => window.removeEventListener('resize', handleResize);\n }, []);\n\n const toggleMobileMenu = () => setMobileMenuOpen(!mobileMenuOpen);\n\n const leftMenus = left?.menus ?? [];\n const rightMenus = right?.menus ?? [];\n const topMenus = [...leftMenus, ...rightMenus];\n const userMenuSections = user?.menuSections ?? [];\n const footerMenus = footer?.menus ?? [];\n\n return (\n <div className=\"flex flex-col min-h-screen\">\n {/* Header */}\n <header\n className={cn(\n 'px-4 py-2 flex items-center justify-between bg-gray-100 border-b border-gray-300',\n classNames?.header,\n )}\n >\n <div className=\"flex items-center space-x-4\">\n {sidebar && (\n <button\n className=\"bg-transparent border-gray-400 hover:border-gray-500\"\n onClick={() => {\n /* open sidebar */\n }}\n >\n {/* icon */}\n </button>\n )}\n {logo && (\n <div className={cn('_logo')}>\n <LinkComponent to={logo.link ?? '/'} href={logo.link ?? '/'}>\n <img src={logo.src} alt=\"Logo\" className={cn('h-10', logo?.className)} />\n </LinkComponent>\n </div>\n )}\n\n {/* Left Menus */}\n <nav className={cn('flex space-x-4 items-center', left?.classNames?.nav)}>\n {leftMenus.map((item) =>\n item.link ? (\n <LinkComponent\n key={item.label}\n to={item.link}\n href={item.link}\n className={cn(\n 'text-left text-secondary visited:text-secondary hover:text-primary cursor-pointer no-underline',\n left?.classNames?.nav,\n item.className,\n item.title || !isMobile ? 'inline-block' : 'hidden',\n )}\n >\n {item.label}\n </LinkComponent>\n ) : (\n <button\n key={item.label}\n onClick={item.action}\n className={cn(\n 'text-left text-secondary visited:text-secondary hover:text-primary cursor-pointer no-underline',\n left?.classNames?.nav,\n item.className,\n item.title || !isMobile ? 'inline-block' : 'hidden',\n )}\n >\n {item.label}\n </button>\n ),\n )}\n </nav>\n </div>\n\n {/* Right menus */}\n <nav className={cn('hidden md:flex space-x-4 items-center', right?.classNames?.nav)}>\n {rightMenus.map((item) =>\n item.link ? (\n <LinkComponent\n key={item.label}\n to={item.link}\n href={item.link}\n className={cn(\n 'text-left text-secondary visited:text-secondary hover:text-primary cursor-pointer no-underline',\n right?.classNames?.nav,\n item.className,\n )}\n >\n {item.label}\n </LinkComponent>\n ) : (\n <button\n key={item.label}\n onClick={item.action}\n className={cn(\n 'text-left text-secondary visited:text-secondary hover:text-primary cursor-pointer no-underline',\n right?.classNames?.nav,\n item.className,\n )}\n >\n {item.label}\n </button>\n ),\n )}\n {userMenuSections.length > 0 && (\n <UserMenus sections={userMenuSections} trigger={user?.trigger} aslink={aslink} />\n )}\n </nav>\n\n {/* Mobile menu button */}\n <button onClick={toggleMobileMenu} className=\"md:hidden p-2 text-gray-700 hover:text-primary cursor-pointer\">\n <Menu className=\"\" />\n </button>\n </header>\n\n {/* Mobile menu */}\n {isMobile && mobileMenuOpen && (\n <div className=\"w-full\">\n <MobileMenu sections={userMenuSections} aslink={aslink} onClick={toggleMobileMenu} />\n </div>\n )}\n\n {/* Main content */}\n <main className={cn('p-4 flex flex-col flex-1', classNames?.content)}>\n {!loading && <div className=\"flex items-center justify-center h-full\">{children}</div>}\n <div className={cn('flex-1', classNames?.contentBottom)}></div>\n </main>\n\n {/* Footer */}\n {footer && (\n <footer\n className={cn(\n 'px-4 py-4 bg-gray-100 border-t border-gray-300 text-sm text-gray-600',\n footer?.classNames?.wrapper,\n )}\n >\n <nav className={cn('flex flex-wrap justify-center space-x-4', footer?.classNames?.nav)}>\n {footerMenus.map((item) =>\n item.link ? (\n <LinkComponent\n key={item.label}\n to={item.link}\n href={item.link}\n className={cn(\n 'text-secondary hover:text-primary cursor-pointer no-underline',\n footer?.classNames?.link,\n item.className,\n )}\n >\n {item.label}\n </LinkComponent>\n ) : (\n <button\n key={item.label}\n onClick={item.action}\n className={cn(\n 'text-secondary hover:text-primary cursor-pointer no-underline',\n footer?.classNames?.link,\n item.className,\n )}\n >\n {item.label}\n </button>\n ),\n )}\n </nav>\n <div className=\"mt-2 text-center\">{footer?.content}</div>\n </footer>\n )}\n </div>\n );\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["/home/jahn/projects/shadcn-theme/packages/react/dist/layouts/simple/index.js","../../../layouts/simple/index.tsx"],"names":["_a","_b","_c","_d"],"mappings":"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","file":"/home/jahn/projects/shadcn-theme/packages/react/dist/layouts/simple/index.js","sourcesContent":[null,"\"use client\";\nimport React, { useState, useMemo, useEffect } from 'react';\nimport { Menu } from 'lucide-react';\nimport { cn } from '../../lib/utils';\nimport { UserMenus } from './user-menu';\nimport { MobileMenu } from './mobile-menu';\nimport type { MenuItem, UserMenuSection } from './types';\n\ninterface LayoutProps {\n logo?: {\n src?: string;\n link?: string;\n };\n user?: {\n menuSections: UserMenuSection[];\n trigger?: React.ReactNode;\n };\n left?: {\n menus: MenuItem[];\n };\n right?: {\n menus: MenuItem[];\n };\n sidebar?: {\n title: string;\n content: React.ReactNode;\n };\n footer?: {\n menus: MenuItem[];\n content?: string;\n };\n classNames?: {\n header?: {\n wrapper: string;\n logo?: string;\n left?: {\n nav?: string;\n link?: string;\n };\n right?: {\n nav?: string;\n link?: string;\n };\n };\n content?: {\n wrapper?: string;\n bottom?: string;\n };\n footer?: {\n wrapper?: string;\n nav?: string;\n link?: string;\n };\n };\n loading?: boolean;\n children?: React.ReactNode;\n aslink: React.ElementType;\n}\n\nexport default function SimpleLayout(props: LayoutProps) {\n const { logo, user, left, right, sidebar, footer, classNames, loading, children, aslink } = props;\n\n const [mobileMenuOpen, setMobileMenuOpen] = useState(false);\n const [isMobile, setIsMobile] = useState(false);\n\n const LinkComponent = aslink ?? 'button';\n\n useEffect(() => {\n const handleResize = () => {\n setIsMobile(window.innerWidth < 768);\n };\n handleResize();\n window.addEventListener('resize', handleResize);\n return () => window.removeEventListener('resize', handleResize);\n }, []);\n\n const toggleMobileMenu = () => setMobileMenuOpen(!mobileMenuOpen);\n\n const leftMenus = left?.menus ?? [];\n const rightMenus = right?.menus ?? [];\n const topMenus = [...leftMenus, ...rightMenus];\n const userMenuSections = user?.menuSections ?? [];\n const footerMenus = footer?.menus ?? [];\n\n return (\n <div className=\"flex flex-col min-h-screen\">\n {/* Header */}\n <header\n className={cn(\n 'px-4 py-2 flex items-center justify-between bg-gray-100 border-b border-gray-300',\n classNames?.header?.wrapper,\n )}\n >\n <div className=\"flex items-center space-x-4\">\n {sidebar && (\n <button\n className=\"bg-transparent border-gray-400 hover:border-gray-500\"\n onClick={() => {\n /* open sidebar */\n }}\n >\n {/* icon */}\n </button>\n )}\n {logo && (\n <div className={cn('_logo')}>\n <LinkComponent to={logo.link ?? '/'} href={logo.link ?? '/'}>\n <img src={logo.src} alt=\"Logo\" className={cn('h-10', classNames?.header?.logo)} />\n </LinkComponent>\n </div>\n )}\n\n {/* Left Menus */}\n <nav className={cn('flex space-x-4 items-center', classNames?.header?.left?.nav)}>\n {leftMenus.map((item) =>\n item.link ? (\n <LinkComponent\n key={item.label}\n to={item.link}\n href={item.link}\n className={cn(\n 'text-left text-secondary visited:text-secondary hover:text-primary cursor-pointer no-underline',\n classNames?.header?.left?.link,\n item.className,\n item.title || !isMobile ? 'inline-block' : 'hidden',\n )}\n >\n {item.label}\n </LinkComponent>\n ) : (\n <button\n key={item.label}\n onClick={item.action}\n className={cn(\n 'text-left text-secondary visited:text-secondary hover:text-primary cursor-pointer no-underline',\n classNames?.header?.left?.link,\n item.className,\n item.title || !isMobile ? 'inline-block' : 'hidden',\n )}\n >\n {item.label}\n </button>\n ),\n )}\n </nav>\n </div>\n\n {/* Right menus */}\n <nav className={cn('hidden md:flex space-x-4 items-center', classNames?.header?.right?.nav)}>\n {rightMenus.map((item) =>\n item.link ? (\n <LinkComponent\n key={item.label}\n to={item.link}\n href={item.link}\n className={cn(\n 'text-left text-secondary visited:text-secondary hover:text-primary cursor-pointer no-underline',\n classNames?.header?.right?.link,\n item.className,\n )}\n >\n {item.label}\n </LinkComponent>\n ) : (\n <button\n key={item.label}\n onClick={item.action}\n className={cn(\n 'text-left text-secondary visited:text-secondary hover:text-primary cursor-pointer no-underline',\n classNames?.header?.right?.link,\n item.className,\n )}\n >\n {item.label}\n </button>\n ),\n )}\n {userMenuSections.length > 0 && (\n <UserMenus sections={userMenuSections} trigger={user?.trigger} aslink={aslink} />\n )}\n </nav>\n\n {/* Mobile menu button */}\n <button onClick={toggleMobileMenu} className=\"md:hidden p-2 text-gray-700 hover:text-primary cursor-pointer\">\n <Menu className=\"\" />\n </button>\n </header>\n\n {/* Mobile menu */}\n {isMobile && mobileMenuOpen && (\n <div className=\"w-full\">\n <MobileMenu sections={userMenuSections} aslink={aslink} onClick={toggleMobileMenu} />\n </div>\n )}\n\n {/* Main content */}\n <main className={cn('p-4 flex flex-col flex-1', classNames?.content)}>\n {!loading && <div className=\"flex items-center justify-center h-full\">{children}</div>}\n <div className={cn('flex-1', classNames?.content?.bottom)}></div>\n </main>\n\n {/* Footer */}\n {footer && (\n <footer\n className={cn(\n 'px-4 py-4 bg-gray-100 border-t border-gray-300 text-sm text-gray-600',\n classNames?.footer?.wrapper,\n )}\n >\n <nav className={cn('flex flex-wrap justify-center space-x-4', classNames?.footer?.nav)}>\n {footerMenus.map((item) =>\n item.link ? (\n <LinkComponent\n key={item.label}\n to={item.link}\n href={item.link}\n className={cn(\n 'text-secondary hover:text-primary cursor-pointer no-underline',\n classNames?.footer?.link,\n item.className,\n )}\n >\n {item.label}\n </LinkComponent>\n ) : (\n <button\n key={item.label}\n onClick={item.action}\n className={cn(\n 'text-secondary hover:text-primary cursor-pointer no-underline',\n classNames?.footer?.link,\n item.className,\n )}\n >\n {item.label}\n </button>\n ),\n )}\n </nav>\n <div className=\"mt-2 text-center\">{footer?.content}</div>\n </footer>\n )}\n </div>\n );\n}\n"]}
|
package/layouts/simple/index.mjs
CHANGED
|
@@ -15,7 +15,7 @@ import "../../chunk-YOSPWY5K.mjs";
|
|
|
15
15
|
import React, { useState, useEffect } from "react";
|
|
16
16
|
import { Menu } from "lucide-react";
|
|
17
17
|
function SimpleLayout(props) {
|
|
18
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j;
|
|
18
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o;
|
|
19
19
|
const { logo, user, left, right, sidebar, footer, classNames, loading, children, aslink } = props;
|
|
20
20
|
const [mobileMenuOpen, setMobileMenuOpen] = useState(false);
|
|
21
21
|
const [isMobile, setIsMobile] = useState(false);
|
|
@@ -39,7 +39,7 @@ function SimpleLayout(props) {
|
|
|
39
39
|
{
|
|
40
40
|
className: cn(
|
|
41
41
|
"px-4 py-2 flex items-center justify-between bg-gray-100 border-b border-gray-300",
|
|
42
|
-
classNames == null ? void 0 : classNames.header
|
|
42
|
+
(_e = classNames == null ? void 0 : classNames.header) == null ? void 0 : _e.wrapper
|
|
43
43
|
)
|
|
44
44
|
},
|
|
45
45
|
/* @__PURE__ */ React.createElement("div", { className: "flex items-center space-x-4" }, sidebar && /* @__PURE__ */ React.createElement(
|
|
@@ -49,9 +49,9 @@ function SimpleLayout(props) {
|
|
|
49
49
|
onClick: () => {
|
|
50
50
|
}
|
|
51
51
|
}
|
|
52
|
-
), logo && /* @__PURE__ */ React.createElement("div", { className: cn("_logo") }, /* @__PURE__ */ React.createElement(LinkComponent, { to: (
|
|
52
|
+
), logo && /* @__PURE__ */ React.createElement("div", { className: cn("_logo") }, /* @__PURE__ */ React.createElement(LinkComponent, { to: (_f = logo.link) != null ? _f : "/", href: (_g = logo.link) != null ? _g : "/" }, /* @__PURE__ */ React.createElement("img", { src: logo.src, alt: "Logo", className: cn("h-10", (_h = classNames == null ? void 0 : classNames.header) == null ? void 0 : _h.logo) }))), /* @__PURE__ */ React.createElement("nav", { className: cn("flex space-x-4 items-center", (_j = (_i = classNames == null ? void 0 : classNames.header) == null ? void 0 : _i.left) == null ? void 0 : _j.nav) }, leftMenus.map(
|
|
53
53
|
(item) => {
|
|
54
|
-
var _a2, _b2;
|
|
54
|
+
var _a2, _b2, _c2, _d2;
|
|
55
55
|
return item.link ? /* @__PURE__ */ React.createElement(
|
|
56
56
|
LinkComponent,
|
|
57
57
|
{
|
|
@@ -60,7 +60,7 @@ function SimpleLayout(props) {
|
|
|
60
60
|
href: item.link,
|
|
61
61
|
className: cn(
|
|
62
62
|
"text-left text-secondary visited:text-secondary hover:text-primary cursor-pointer no-underline",
|
|
63
|
-
(_a2 =
|
|
63
|
+
(_b2 = (_a2 = classNames == null ? void 0 : classNames.header) == null ? void 0 : _a2.left) == null ? void 0 : _b2.link,
|
|
64
64
|
item.className,
|
|
65
65
|
item.title || !isMobile ? "inline-block" : "hidden"
|
|
66
66
|
)
|
|
@@ -73,7 +73,7 @@ function SimpleLayout(props) {
|
|
|
73
73
|
onClick: item.action,
|
|
74
74
|
className: cn(
|
|
75
75
|
"text-left text-secondary visited:text-secondary hover:text-primary cursor-pointer no-underline",
|
|
76
|
-
(
|
|
76
|
+
(_d2 = (_c2 = classNames == null ? void 0 : classNames.header) == null ? void 0 : _c2.left) == null ? void 0 : _d2.link,
|
|
77
77
|
item.className,
|
|
78
78
|
item.title || !isMobile ? "inline-block" : "hidden"
|
|
79
79
|
)
|
|
@@ -82,9 +82,9 @@ function SimpleLayout(props) {
|
|
|
82
82
|
);
|
|
83
83
|
}
|
|
84
84
|
))),
|
|
85
|
-
/* @__PURE__ */ React.createElement("nav", { className: cn("hidden md:flex space-x-4 items-center", (
|
|
85
|
+
/* @__PURE__ */ React.createElement("nav", { className: cn("hidden md:flex space-x-4 items-center", (_l = (_k = classNames == null ? void 0 : classNames.header) == null ? void 0 : _k.right) == null ? void 0 : _l.nav) }, rightMenus.map(
|
|
86
86
|
(item) => {
|
|
87
|
-
var _a2, _b2;
|
|
87
|
+
var _a2, _b2, _c2, _d2;
|
|
88
88
|
return item.link ? /* @__PURE__ */ React.createElement(
|
|
89
89
|
LinkComponent,
|
|
90
90
|
{
|
|
@@ -93,7 +93,7 @@ function SimpleLayout(props) {
|
|
|
93
93
|
href: item.link,
|
|
94
94
|
className: cn(
|
|
95
95
|
"text-left text-secondary visited:text-secondary hover:text-primary cursor-pointer no-underline",
|
|
96
|
-
(_a2 =
|
|
96
|
+
(_b2 = (_a2 = classNames == null ? void 0 : classNames.header) == null ? void 0 : _a2.right) == null ? void 0 : _b2.link,
|
|
97
97
|
item.className
|
|
98
98
|
)
|
|
99
99
|
},
|
|
@@ -105,7 +105,7 @@ function SimpleLayout(props) {
|
|
|
105
105
|
onClick: item.action,
|
|
106
106
|
className: cn(
|
|
107
107
|
"text-left text-secondary visited:text-secondary hover:text-primary cursor-pointer no-underline",
|
|
108
|
-
(
|
|
108
|
+
(_d2 = (_c2 = classNames == null ? void 0 : classNames.header) == null ? void 0 : _c2.right) == null ? void 0 : _d2.link,
|
|
109
109
|
item.className
|
|
110
110
|
)
|
|
111
111
|
},
|
|
@@ -114,15 +114,15 @@ function SimpleLayout(props) {
|
|
|
114
114
|
}
|
|
115
115
|
), userMenuSections.length > 0 && /* @__PURE__ */ React.createElement(UserMenus, { sections: userMenuSections, trigger: user == null ? void 0 : user.trigger, aslink })),
|
|
116
116
|
/* @__PURE__ */ React.createElement("button", { onClick: toggleMobileMenu, className: "md:hidden p-2 text-gray-700 hover:text-primary cursor-pointer" }, /* @__PURE__ */ React.createElement(Menu, { className: "" }))
|
|
117
|
-
), isMobile && mobileMenuOpen && /* @__PURE__ */ React.createElement("div", { className: "w-full" }, /* @__PURE__ */ React.createElement(MobileMenu, { sections: userMenuSections, aslink, onClick: toggleMobileMenu })), /* @__PURE__ */ React.createElement("main", { className: cn("p-4 flex flex-col flex-1", classNames == null ? void 0 : classNames.content) }, !loading && /* @__PURE__ */ React.createElement("div", { className: "flex items-center justify-center h-full" }, children), /* @__PURE__ */ React.createElement("div", { className: cn("flex-1", classNames == null ? void 0 : classNames.
|
|
117
|
+
), isMobile && mobileMenuOpen && /* @__PURE__ */ React.createElement("div", { className: "w-full" }, /* @__PURE__ */ React.createElement(MobileMenu, { sections: userMenuSections, aslink, onClick: toggleMobileMenu })), /* @__PURE__ */ React.createElement("main", { className: cn("p-4 flex flex-col flex-1", classNames == null ? void 0 : classNames.content) }, !loading && /* @__PURE__ */ React.createElement("div", { className: "flex items-center justify-center h-full" }, children), /* @__PURE__ */ React.createElement("div", { className: cn("flex-1", (_m = classNames == null ? void 0 : classNames.content) == null ? void 0 : _m.bottom) })), footer && /* @__PURE__ */ React.createElement(
|
|
118
118
|
"footer",
|
|
119
119
|
{
|
|
120
120
|
className: cn(
|
|
121
121
|
"px-4 py-4 bg-gray-100 border-t border-gray-300 text-sm text-gray-600",
|
|
122
|
-
(
|
|
122
|
+
(_n = classNames == null ? void 0 : classNames.footer) == null ? void 0 : _n.wrapper
|
|
123
123
|
)
|
|
124
124
|
},
|
|
125
|
-
/* @__PURE__ */ React.createElement("nav", { className: cn("flex flex-wrap justify-center space-x-4", (
|
|
125
|
+
/* @__PURE__ */ React.createElement("nav", { className: cn("flex flex-wrap justify-center space-x-4", (_o = classNames == null ? void 0 : classNames.footer) == null ? void 0 : _o.nav) }, footerMenus.map(
|
|
126
126
|
(item) => {
|
|
127
127
|
var _a2, _b2;
|
|
128
128
|
return item.link ? /* @__PURE__ */ React.createElement(
|
|
@@ -133,7 +133,7 @@ function SimpleLayout(props) {
|
|
|
133
133
|
href: item.link,
|
|
134
134
|
className: cn(
|
|
135
135
|
"text-secondary hover:text-primary cursor-pointer no-underline",
|
|
136
|
-
(_a2 =
|
|
136
|
+
(_a2 = classNames == null ? void 0 : classNames.footer) == null ? void 0 : _a2.link,
|
|
137
137
|
item.className
|
|
138
138
|
)
|
|
139
139
|
},
|
|
@@ -145,7 +145,7 @@ function SimpleLayout(props) {
|
|
|
145
145
|
onClick: item.action,
|
|
146
146
|
className: cn(
|
|
147
147
|
"text-secondary hover:text-primary cursor-pointer no-underline",
|
|
148
|
-
(_b2 =
|
|
148
|
+
(_b2 = classNames == null ? void 0 : classNames.footer) == null ? void 0 : _b2.link,
|
|
149
149
|
item.className
|
|
150
150
|
)
|
|
151
151
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../layouts/simple/index.tsx"],"sourcesContent":["\"use client\";\nimport React, { useState, useMemo, useEffect } from 'react';\nimport { Menu } from 'lucide-react';\nimport { cn } from '../../lib/utils';\nimport { UserMenus } from './user-menu';\nimport { MobileMenu } from './mobile-menu';\nimport type { MenuItem, UserMenuSection } from './types';\n\ninterface LayoutProps {\n logo?: {\n src?: string;\n link?: string;\n className?: string;\n };\n user?: {\n menuSections: UserMenuSection[];\n trigger?: React.ReactNode;\n };\n left?: {\n menus: MenuItem[];\n classNames?: {\n nav?: string;\n link?: string;\n };\n };\n right?: {\n menus: MenuItem[];\n classNames?: {\n nav?: string;\n link?: string;\n };\n };\n sidebar?: {\n title: string;\n content: React.ReactNode;\n };\n footer?: {\n menus: MenuItem[];\n content?: string;\n classNames?: {\n wrapper?: string;\n nav?: string;\n link?: string;\n };\n };\n classNames?: {\n header?: string;\n content?: string;\n contentBottom?: string;\n };\n loading?: boolean;\n children?: React.ReactNode;\n aslink: React.ElementType;\n}\n\nexport default function SimpleLayout(props: LayoutProps) {\n const { logo, user, left, right, sidebar, footer, classNames, loading, children, aslink } = props;\n\n const [mobileMenuOpen, setMobileMenuOpen] = useState(false);\n const [isMobile, setIsMobile] = useState(false);\n\n const LinkComponent = aslink ?? 'button';\n\n useEffect(() => {\n const handleResize = () => {\n setIsMobile(window.innerWidth < 768);\n };\n handleResize();\n window.addEventListener('resize', handleResize);\n return () => window.removeEventListener('resize', handleResize);\n }, []);\n\n const toggleMobileMenu = () => setMobileMenuOpen(!mobileMenuOpen);\n\n const leftMenus = left?.menus ?? [];\n const rightMenus = right?.menus ?? [];\n const topMenus = [...leftMenus, ...rightMenus];\n const userMenuSections = user?.menuSections ?? [];\n const footerMenus = footer?.menus ?? [];\n\n return (\n <div className=\"flex flex-col min-h-screen\">\n {/* Header */}\n <header\n className={cn(\n 'px-4 py-2 flex items-center justify-between bg-gray-100 border-b border-gray-300',\n classNames?.header,\n )}\n >\n <div className=\"flex items-center space-x-4\">\n {sidebar && (\n <button\n className=\"bg-transparent border-gray-400 hover:border-gray-500\"\n onClick={() => {\n /* open sidebar */\n }}\n >\n {/* icon */}\n </button>\n )}\n {logo && (\n <div className={cn('_logo')}>\n <LinkComponent to={logo.link ?? '/'} href={logo.link ?? '/'}>\n <img src={logo.src} alt=\"Logo\" className={cn('h-10', logo?.className)} />\n </LinkComponent>\n </div>\n )}\n\n {/* Left Menus */}\n <nav className={cn('flex space-x-4 items-center', left?.classNames?.nav)}>\n {leftMenus.map((item) =>\n item.link ? (\n <LinkComponent\n key={item.label}\n to={item.link}\n href={item.link}\n className={cn(\n 'text-left text-secondary visited:text-secondary hover:text-primary cursor-pointer no-underline',\n left?.classNames?.nav,\n item.className,\n item.title || !isMobile ? 'inline-block' : 'hidden',\n )}\n >\n {item.label}\n </LinkComponent>\n ) : (\n <button\n key={item.label}\n onClick={item.action}\n className={cn(\n 'text-left text-secondary visited:text-secondary hover:text-primary cursor-pointer no-underline',\n left?.classNames?.nav,\n item.className,\n item.title || !isMobile ? 'inline-block' : 'hidden',\n )}\n >\n {item.label}\n </button>\n ),\n )}\n </nav>\n </div>\n\n {/* Right menus */}\n <nav className={cn('hidden md:flex space-x-4 items-center', right?.classNames?.nav)}>\n {rightMenus.map((item) =>\n item.link ? (\n <LinkComponent\n key={item.label}\n to={item.link}\n href={item.link}\n className={cn(\n 'text-left text-secondary visited:text-secondary hover:text-primary cursor-pointer no-underline',\n right?.classNames?.nav,\n item.className,\n )}\n >\n {item.label}\n </LinkComponent>\n ) : (\n <button\n key={item.label}\n onClick={item.action}\n className={cn(\n 'text-left text-secondary visited:text-secondary hover:text-primary cursor-pointer no-underline',\n right?.classNames?.nav,\n item.className,\n )}\n >\n {item.label}\n </button>\n ),\n )}\n {userMenuSections.length > 0 && (\n <UserMenus sections={userMenuSections} trigger={user?.trigger} aslink={aslink} />\n )}\n </nav>\n\n {/* Mobile menu button */}\n <button onClick={toggleMobileMenu} className=\"md:hidden p-2 text-gray-700 hover:text-primary cursor-pointer\">\n <Menu className=\"\" />\n </button>\n </header>\n\n {/* Mobile menu */}\n {isMobile && mobileMenuOpen && (\n <div className=\"w-full\">\n <MobileMenu sections={userMenuSections} aslink={aslink} onClick={toggleMobileMenu} />\n </div>\n )}\n\n {/* Main content */}\n <main className={cn('p-4 flex flex-col flex-1', classNames?.content)}>\n {!loading && <div className=\"flex items-center justify-center h-full\">{children}</div>}\n <div className={cn('flex-1', classNames?.contentBottom)}></div>\n </main>\n\n {/* Footer */}\n {footer && (\n <footer\n className={cn(\n 'px-4 py-4 bg-gray-100 border-t border-gray-300 text-sm text-gray-600',\n footer?.classNames?.wrapper,\n )}\n >\n <nav className={cn('flex flex-wrap justify-center space-x-4', footer?.classNames?.nav)}>\n {footerMenus.map((item) =>\n item.link ? (\n <LinkComponent\n key={item.label}\n to={item.link}\n href={item.link}\n className={cn(\n 'text-secondary hover:text-primary cursor-pointer no-underline',\n footer?.classNames?.link,\n item.className,\n )}\n >\n {item.label}\n </LinkComponent>\n ) : (\n <button\n key={item.label}\n onClick={item.action}\n className={cn(\n 'text-secondary hover:text-primary cursor-pointer no-underline',\n footer?.classNames?.link,\n item.className,\n )}\n >\n {item.label}\n </button>\n ),\n )}\n </nav>\n <div className=\"mt-2 text-center\">{footer?.content}</div>\n </footer>\n )}\n </div>\n );\n}\n"],"mappings":"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","names":["_a","_b"]}
|
|
1
|
+
{"version":3,"sources":["../../../layouts/simple/index.tsx"],"sourcesContent":["\"use client\";\nimport React, { useState, useMemo, useEffect } from 'react';\nimport { Menu } from 'lucide-react';\nimport { cn } from '../../lib/utils';\nimport { UserMenus } from './user-menu';\nimport { MobileMenu } from './mobile-menu';\nimport type { MenuItem, UserMenuSection } from './types';\n\ninterface LayoutProps {\n logo?: {\n src?: string;\n link?: string;\n };\n user?: {\n menuSections: UserMenuSection[];\n trigger?: React.ReactNode;\n };\n left?: {\n menus: MenuItem[];\n };\n right?: {\n menus: MenuItem[];\n };\n sidebar?: {\n title: string;\n content: React.ReactNode;\n };\n footer?: {\n menus: MenuItem[];\n content?: string;\n };\n classNames?: {\n header?: {\n wrapper: string;\n logo?: string;\n left?: {\n nav?: string;\n link?: string;\n };\n right?: {\n nav?: string;\n link?: string;\n };\n };\n content?: {\n wrapper?: string;\n bottom?: string;\n };\n footer?: {\n wrapper?: string;\n nav?: string;\n link?: string;\n };\n };\n loading?: boolean;\n children?: React.ReactNode;\n aslink: React.ElementType;\n}\n\nexport default function SimpleLayout(props: LayoutProps) {\n const { logo, user, left, right, sidebar, footer, classNames, loading, children, aslink } = props;\n\n const [mobileMenuOpen, setMobileMenuOpen] = useState(false);\n const [isMobile, setIsMobile] = useState(false);\n\n const LinkComponent = aslink ?? 'button';\n\n useEffect(() => {\n const handleResize = () => {\n setIsMobile(window.innerWidth < 768);\n };\n handleResize();\n window.addEventListener('resize', handleResize);\n return () => window.removeEventListener('resize', handleResize);\n }, []);\n\n const toggleMobileMenu = () => setMobileMenuOpen(!mobileMenuOpen);\n\n const leftMenus = left?.menus ?? [];\n const rightMenus = right?.menus ?? [];\n const topMenus = [...leftMenus, ...rightMenus];\n const userMenuSections = user?.menuSections ?? [];\n const footerMenus = footer?.menus ?? [];\n\n return (\n <div className=\"flex flex-col min-h-screen\">\n {/* Header */}\n <header\n className={cn(\n 'px-4 py-2 flex items-center justify-between bg-gray-100 border-b border-gray-300',\n classNames?.header?.wrapper,\n )}\n >\n <div className=\"flex items-center space-x-4\">\n {sidebar && (\n <button\n className=\"bg-transparent border-gray-400 hover:border-gray-500\"\n onClick={() => {\n /* open sidebar */\n }}\n >\n {/* icon */}\n </button>\n )}\n {logo && (\n <div className={cn('_logo')}>\n <LinkComponent to={logo.link ?? '/'} href={logo.link ?? '/'}>\n <img src={logo.src} alt=\"Logo\" className={cn('h-10', classNames?.header?.logo)} />\n </LinkComponent>\n </div>\n )}\n\n {/* Left Menus */}\n <nav className={cn('flex space-x-4 items-center', classNames?.header?.left?.nav)}>\n {leftMenus.map((item) =>\n item.link ? (\n <LinkComponent\n key={item.label}\n to={item.link}\n href={item.link}\n className={cn(\n 'text-left text-secondary visited:text-secondary hover:text-primary cursor-pointer no-underline',\n classNames?.header?.left?.link,\n item.className,\n item.title || !isMobile ? 'inline-block' : 'hidden',\n )}\n >\n {item.label}\n </LinkComponent>\n ) : (\n <button\n key={item.label}\n onClick={item.action}\n className={cn(\n 'text-left text-secondary visited:text-secondary hover:text-primary cursor-pointer no-underline',\n classNames?.header?.left?.link,\n item.className,\n item.title || !isMobile ? 'inline-block' : 'hidden',\n )}\n >\n {item.label}\n </button>\n ),\n )}\n </nav>\n </div>\n\n {/* Right menus */}\n <nav className={cn('hidden md:flex space-x-4 items-center', classNames?.header?.right?.nav)}>\n {rightMenus.map((item) =>\n item.link ? (\n <LinkComponent\n key={item.label}\n to={item.link}\n href={item.link}\n className={cn(\n 'text-left text-secondary visited:text-secondary hover:text-primary cursor-pointer no-underline',\n classNames?.header?.right?.link,\n item.className,\n )}\n >\n {item.label}\n </LinkComponent>\n ) : (\n <button\n key={item.label}\n onClick={item.action}\n className={cn(\n 'text-left text-secondary visited:text-secondary hover:text-primary cursor-pointer no-underline',\n classNames?.header?.right?.link,\n item.className,\n )}\n >\n {item.label}\n </button>\n ),\n )}\n {userMenuSections.length > 0 && (\n <UserMenus sections={userMenuSections} trigger={user?.trigger} aslink={aslink} />\n )}\n </nav>\n\n {/* Mobile menu button */}\n <button onClick={toggleMobileMenu} className=\"md:hidden p-2 text-gray-700 hover:text-primary cursor-pointer\">\n <Menu className=\"\" />\n </button>\n </header>\n\n {/* Mobile menu */}\n {isMobile && mobileMenuOpen && (\n <div className=\"w-full\">\n <MobileMenu sections={userMenuSections} aslink={aslink} onClick={toggleMobileMenu} />\n </div>\n )}\n\n {/* Main content */}\n <main className={cn('p-4 flex flex-col flex-1', classNames?.content)}>\n {!loading && <div className=\"flex items-center justify-center h-full\">{children}</div>}\n <div className={cn('flex-1', classNames?.content?.bottom)}></div>\n </main>\n\n {/* Footer */}\n {footer && (\n <footer\n className={cn(\n 'px-4 py-4 bg-gray-100 border-t border-gray-300 text-sm text-gray-600',\n classNames?.footer?.wrapper,\n )}\n >\n <nav className={cn('flex flex-wrap justify-center space-x-4', classNames?.footer?.nav)}>\n {footerMenus.map((item) =>\n item.link ? (\n <LinkComponent\n key={item.label}\n to={item.link}\n href={item.link}\n className={cn(\n 'text-secondary hover:text-primary cursor-pointer no-underline',\n classNames?.footer?.link,\n item.className,\n )}\n >\n {item.label}\n </LinkComponent>\n ) : (\n <button\n key={item.label}\n onClick={item.action}\n className={cn(\n 'text-secondary hover:text-primary cursor-pointer no-underline',\n classNames?.footer?.link,\n item.className,\n )}\n >\n {item.label}\n </button>\n ),\n )}\n </nav>\n <div className=\"mt-2 text-center\">{footer?.content}</div>\n </footer>\n )}\n </div>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;AACA,OAAO,SAAS,UAAmB,iBAAiB;AACpD,SAAS,YAAY;AAyDN,SAAR,aAA8B,OAAoB;AA3DzD;AA4DE,QAAM,EAAE,MAAM,MAAM,MAAM,OAAO,SAAS,QAAQ,YAAY,SAAS,UAAU,OAAO,IAAI;AAE5F,QAAM,CAAC,gBAAgB,iBAAiB,IAAI,SAAS,KAAK;AAC1D,QAAM,CAAC,UAAU,WAAW,IAAI,SAAS,KAAK;AAE9C,QAAM,gBAAgB,0BAAU;AAEhC,YAAU,MAAM;AACd,UAAM,eAAe,MAAM;AACzB,kBAAY,OAAO,aAAa,GAAG;AAAA,IACrC;AACA,iBAAa;AACb,WAAO,iBAAiB,UAAU,YAAY;AAC9C,WAAO,MAAM,OAAO,oBAAoB,UAAU,YAAY;AAAA,EAChE,GAAG,CAAC,CAAC;AAEL,QAAM,mBAAmB,MAAM,kBAAkB,CAAC,cAAc;AAEhE,QAAM,aAAY,kCAAM,UAAN,YAAe,CAAC;AAClC,QAAM,cAAa,oCAAO,UAAP,YAAgB,CAAC;AACpC,QAAM,WAAW,CAAC,GAAG,WAAW,GAAG,UAAU;AAC7C,QAAM,oBAAmB,kCAAM,iBAAN,YAAsB,CAAC;AAChD,QAAM,eAAc,sCAAQ,UAAR,YAAiB,CAAC;AAEtC,SACE,oCAAC,SAAI,WAAU,gCAEb;AAAA,IAAC;AAAA;AAAA,MACC,WAAW;AAAA,QACT;AAAA,SACA,8CAAY,WAAZ,mBAAoB;AAAA,MACtB;AAAA;AAAA,IAEA,oCAAC,SAAI,WAAU,iCACZ,WACC;AAAA,MAAC;AAAA;AAAA,QACC,WAAU;AAAA,QACV,SAAS,MAAM;AAAA,QAEf;AAAA;AAAA,IAGF,GAED,QACC,oCAAC,SAAI,WAAW,GAAG,OAAO,KACxB,oCAAC,iBAAc,KAAI,UAAK,SAAL,YAAa,KAAK,OAAM,UAAK,SAAL,YAAa,OACtD,oCAAC,SAAI,KAAK,KAAK,KAAK,KAAI,QAAO,WAAW,GAAG,SAAQ,8CAAY,WAAZ,mBAAoB,IAAI,GAAG,CAClF,CACF,GAIF,oCAAC,SAAI,WAAW,GAAG,gCAA+B,oDAAY,WAAZ,mBAAoB,SAApB,mBAA0B,GAAG,KAC5E,UAAU;AAAA,MAAI,CAAC,SAAM;AAlHlC,YAAAA,KAAAC,KAAAC,KAAAC;AAmHc,oBAAK,OACH;AAAA,UAAC;AAAA;AAAA,YACC,KAAK,KAAK;AAAA,YACV,IAAI,KAAK;AAAA,YACT,MAAM,KAAK;AAAA,YACX,WAAW;AAAA,cACT;AAAA,eACAF,OAAAD,MAAA,yCAAY,WAAZ,gBAAAA,IAAoB,SAApB,gBAAAC,IAA0B;AAAA,cAC1B,KAAK;AAAA,cACL,KAAK,SAAS,CAAC,WAAW,iBAAiB;AAAA,YAC7C;AAAA;AAAA,UAEC,KAAK;AAAA,QACR,IAEA;AAAA,UAAC;AAAA;AAAA,YACC,KAAK,KAAK;AAAA,YACV,SAAS,KAAK;AAAA,YACd,WAAW;AAAA,cACT;AAAA,eACAE,OAAAD,MAAA,yCAAY,WAAZ,gBAAAA,IAAoB,SAApB,gBAAAC,IAA0B;AAAA,cAC1B,KAAK;AAAA,cACL,KAAK,SAAS,CAAC,WAAW,iBAAiB;AAAA,YAC7C;AAAA;AAAA,UAEC,KAAK;AAAA,QACR;AAAA;AAAA,IAEJ,CACF,CACF;AAAA,IAGA,oCAAC,SAAI,WAAW,GAAG,0CAAyC,oDAAY,WAAZ,mBAAoB,UAApB,mBAA2B,GAAG,KACvF,WAAW;AAAA,MAAI,CAAC,SAAM;AArJjC,YAAAH,KAAAC,KAAAC,KAAAC;AAsJY,oBAAK,OACH;AAAA,UAAC;AAAA;AAAA,YACC,KAAK,KAAK;AAAA,YACV,IAAI,KAAK;AAAA,YACT,MAAM,KAAK;AAAA,YACX,WAAW;AAAA,cACT;AAAA,eACAF,OAAAD,MAAA,yCAAY,WAAZ,gBAAAA,IAAoB,UAApB,gBAAAC,IAA2B;AAAA,cAC3B,KAAK;AAAA,YACP;AAAA;AAAA,UAEC,KAAK;AAAA,QACR,IAEA;AAAA,UAAC;AAAA;AAAA,YACC,KAAK,KAAK;AAAA,YACV,SAAS,KAAK;AAAA,YACd,WAAW;AAAA,cACT;AAAA,eACAE,OAAAD,MAAA,yCAAY,WAAZ,gBAAAA,IAAoB,UAApB,gBAAAC,IAA2B;AAAA,cAC3B,KAAK;AAAA,YACP;AAAA;AAAA,UAEC,KAAK;AAAA,QACR;AAAA;AAAA,IAEJ,GACC,iBAAiB,SAAS,KACzB,oCAAC,aAAU,UAAU,kBAAkB,SAAS,6BAAM,SAAS,QAAgB,CAEnF;AAAA,IAGA,oCAAC,YAAO,SAAS,kBAAkB,WAAU,mEAC3C,oCAAC,QAAK,WAAU,IAAG,CACrB;AAAA,EACF,GAGC,YAAY,kBACX,oCAAC,SAAI,WAAU,YACb,oCAAC,cAAW,UAAU,kBAAkB,QAAgB,SAAS,kBAAkB,CACrF,GAIF,oCAAC,UAAK,WAAW,GAAG,4BAA4B,yCAAY,OAAO,KAChE,CAAC,WAAW,oCAAC,SAAI,WAAU,6CAA2C,QAAS,GAChF,oCAAC,SAAI,WAAW,GAAG,WAAU,8CAAY,YAAZ,mBAAqB,MAAM,GAAG,CAC7D,GAGC,UACC;AAAA,IAAC;AAAA;AAAA,MACC,WAAW;AAAA,QACT;AAAA,SACA,8CAAY,WAAZ,mBAAoB;AAAA,MACtB;AAAA;AAAA,IAEA,oCAAC,SAAI,WAAW,GAAG,4CAA2C,8CAAY,WAAZ,mBAAoB,GAAG,KAClF,YAAY;AAAA,MAAI,CAAC,SAAM;AAlNpC,YAAAH,KAAAC;AAmNc,oBAAK,OACH;AAAA,UAAC;AAAA;AAAA,YACC,KAAK,KAAK;AAAA,YACV,IAAI,KAAK;AAAA,YACT,MAAM,KAAK;AAAA,YACX,WAAW;AAAA,cACT;AAAA,eACAD,MAAA,yCAAY,WAAZ,gBAAAA,IAAoB;AAAA,cACpB,KAAK;AAAA,YACP;AAAA;AAAA,UAEC,KAAK;AAAA,QACR,IAEA;AAAA,UAAC;AAAA;AAAA,YACC,KAAK,KAAK;AAAA,YACV,SAAS,KAAK;AAAA,YACd,WAAW;AAAA,cACT;AAAA,eACAC,MAAA,yCAAY,WAAZ,gBAAAA,IAAoB;AAAA,cACpB,KAAK;AAAA,YACP;AAAA;AAAA,UAEC,KAAK;AAAA,QACR;AAAA;AAAA,IAEJ,CACF;AAAA,IACA,oCAAC,SAAI,WAAU,sBAAoB,iCAAQ,OAAQ;AAAA,EACrD,CAEJ;AAEJ;","names":["_a","_b","_c","_d"]}
|
package/package.json
CHANGED