@geekmidas/ui 9.0.2 → 10.0.0-alpha.1
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/button-BB4n8b0z.mjs +46 -0
- package/dist/button-BB4n8b0z.mjs.map +1 -0
- package/dist/button-BSp9VyHi.cjs +58 -0
- package/dist/button-BSp9VyHi.cjs.map +1 -0
- package/dist/chunk-CUT6urMc.cjs +30 -0
- package/dist/components/data-display/index.cjs +27 -0
- package/dist/components/data-display/index.d.cts +2 -0
- package/dist/components/data-display/index.d.mts +2 -0
- package/dist/components/data-display/index.mjs +6 -0
- package/dist/components/feedback/index.cjs +26 -0
- package/dist/components/feedback/index.d.cts +2 -0
- package/dist/components/feedback/index.d.mts +2 -0
- package/dist/components/feedback/index.mjs +6 -0
- package/dist/components/layout/index.cjs +26 -0
- package/dist/components/layout/index.d.cts +2 -0
- package/dist/components/layout/index.d.mts +2 -0
- package/dist/components/layout/index.mjs +6 -0
- package/dist/components/ui/index.cjs +73 -0
- package/dist/components/ui/index.d.cts +2 -0
- package/dist/components/ui/index.d.mts +2 -0
- package/dist/components/ui/index.mjs +7 -0
- package/dist/data-display-BSUj4rIc.cjs +1318 -0
- package/dist/data-display-BSUj4rIc.cjs.map +1 -0
- package/dist/data-display-IcuThGEY.mjs +1186 -0
- package/dist/data-display-IcuThGEY.mjs.map +1 -0
- package/dist/feedback-B9rTsQdJ.cjs +505 -0
- package/dist/feedback-B9rTsQdJ.cjs.map +1 -0
- package/dist/feedback-DBLrs44v.mjs +379 -0
- package/dist/feedback-DBLrs44v.mjs.map +1 -0
- package/dist/hooks/index.cjs +1 -1
- package/dist/hooks/index.d.cts +1 -1
- package/dist/hooks/index.d.mts +1 -1
- package/dist/hooks/index.mjs +1 -1
- package/dist/{hooks-DuxmSO-h.cjs → hooks-C5O7RXTd.cjs} +3 -31
- package/dist/{hooks-DuxmSO-h.cjs.map → hooks-C5O7RXTd.cjs.map} +1 -1
- package/dist/{hooks-DBc-Cw9X.mjs → hooks-Dhkovxbo.mjs} +1 -1
- package/dist/{hooks-DBc-Cw9X.mjs.map → hooks-Dhkovxbo.mjs.map} +1 -1
- package/dist/index-BHdsb44U.d.mts +102 -0
- package/dist/index-BHdsb44U.d.mts.map +1 -0
- package/dist/index-CBBJ6vmK.d.cts +154 -0
- package/dist/index-CBBJ6vmK.d.cts.map +1 -0
- package/dist/index-CcP4i-Xr.d.cts +102 -0
- package/dist/index-CcP4i-Xr.d.cts.map +1 -0
- package/dist/index-D4moB7PV.d.mts +153 -0
- package/dist/index-D4moB7PV.d.mts.map +1 -0
- package/dist/index-DDztdxvr.d.mts +329 -0
- package/dist/index-DDztdxvr.d.mts.map +1 -0
- package/dist/{index-DmtSyJ1q.d.mts → index-DTIa7Ryw.d.cts} +1 -1
- package/dist/{index-DmtSyJ1q.d.mts.map → index-DTIa7Ryw.d.cts.map} +1 -1
- package/dist/index-DsQW2bkf.d.mts +154 -0
- package/dist/index-DsQW2bkf.d.mts.map +1 -0
- package/dist/{index-QNnnyGjB.d.cts → index-DvzSne29.d.mts} +1 -1
- package/dist/{index-QNnnyGjB.d.cts.map → index-DvzSne29.d.mts.map} +1 -1
- package/dist/index-FnnlSxxr.d.cts +153 -0
- package/dist/index-FnnlSxxr.d.cts.map +1 -0
- package/dist/index-uRu0ad4_.d.cts +329 -0
- package/dist/index-uRu0ad4_.d.cts.map +1 -0
- package/dist/index.cjs +144 -2560
- package/dist/index.d.cts +8 -727
- package/dist/index.d.mts +8 -727
- package/dist/index.mjs +12 -2428
- package/dist/layout-CIIQOb1x.mjs +387 -0
- package/dist/layout-CIIQOb1x.mjs.map +1 -0
- package/dist/layout-CcO0svmw.cjs +513 -0
- package/dist/layout-CcO0svmw.cjs.map +1 -0
- package/dist/lib/utils.cjs +3 -0
- package/dist/lib/utils.d.cts +2 -0
- package/dist/lib/utils.d.mts +2 -0
- package/dist/lib/utils.mjs +3 -0
- package/dist/styles/theme.cjs +1 -1
- package/dist/styles/theme.d.cts +1 -1
- package/dist/styles/theme.d.mts +1 -1
- package/dist/styles/theme.mjs +1 -1
- package/dist/table-CrFSBSDe.mjs +129 -0
- package/dist/table-CrFSBSDe.mjs.map +1 -0
- package/dist/table-DNX6iqH5.cjs +237 -0
- package/dist/table-DNX6iqH5.cjs.map +1 -0
- package/dist/{theme-BRGSS8qx.cjs → theme-BBoDSysS.cjs} +1 -1
- package/dist/{theme-BRGSS8qx.cjs.map → theme-BBoDSysS.cjs.map} +1 -1
- package/dist/{theme-vpDwDfcR.d.mts → theme-BsXPj5m4.d.cts} +1 -1
- package/dist/{theme-B5mGkTlU.d.cts.map → theme-BsXPj5m4.d.cts.map} +1 -1
- package/dist/{theme-DAiFBbyM.mjs → theme-DI0sgbjj.mjs} +1 -1
- package/dist/{theme-DAiFBbyM.mjs.map → theme-DI0sgbjj.mjs.map} +1 -1
- package/dist/{theme-B5mGkTlU.d.cts → theme-aIIK_kn9.d.mts} +1 -1
- package/dist/{theme-vpDwDfcR.d.mts.map → theme-aIIK_kn9.d.mts.map} +1 -1
- package/dist/tooltip-BuTZvLTX.cjs +82 -0
- package/dist/tooltip-BuTZvLTX.cjs.map +1 -0
- package/dist/tooltip-z8o59BXq.mjs +46 -0
- package/dist/tooltip-z8o59BXq.mjs.map +1 -0
- package/dist/ui-B6Pj_ZAW.mjs +296 -0
- package/dist/ui-B6Pj_ZAW.mjs.map +1 -0
- package/dist/ui-PFNfvwdv.cjs +542 -0
- package/dist/ui-PFNfvwdv.cjs.map +1 -0
- package/dist/utils-0J5jzmnT.mjs +11 -0
- package/dist/utils-0J5jzmnT.mjs.map +1 -0
- package/dist/utils-3XfDEz8-.d.cts +9 -0
- package/dist/utils-3XfDEz8-.d.cts.map +1 -0
- package/dist/utils-CgSGIxhd.d.mts +9 -0
- package/dist/utils-CgSGIxhd.d.mts.map +1 -0
- package/dist/utils-DTuzb7hO.cjs +17 -0
- package/dist/utils-DTuzb7hO.cjs.map +1 -0
- package/package.json +1 -1
- package/dist/index.cjs.map +0 -1
- package/dist/index.d.cts.map +0 -1
- package/dist/index.d.mts.map +0 -1
- package/dist/index.mjs.map +0 -1
|
@@ -0,0 +1,513 @@
|
|
|
1
|
+
const require_chunk = require('./chunk-CUT6urMc.cjs');
|
|
2
|
+
const require_utils = require('./utils-DTuzb7hO.cjs');
|
|
3
|
+
const require_button = require('./button-BSp9VyHi.cjs');
|
|
4
|
+
const require_tooltip = require('./tooltip-BuTZvLTX.cjs');
|
|
5
|
+
const react_jsx_runtime = require_chunk.__toESM(require("react/jsx-runtime"));
|
|
6
|
+
const lucide_react = require_chunk.__toESM(require("lucide-react"));
|
|
7
|
+
const react = require_chunk.__toESM(require("react"));
|
|
8
|
+
const class_variance_authority = require_chunk.__toESM(require("class-variance-authority"));
|
|
9
|
+
|
|
10
|
+
//#region src/components/layout/header.tsx
|
|
11
|
+
const Header = react.forwardRef(({ className, sticky = false, children,...props }, ref) => {
|
|
12
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("header", {
|
|
13
|
+
ref,
|
|
14
|
+
className: require_utils.cn("flex h-14 items-center gap-4 border-b border-border bg-surface px-4", sticky && "sticky top-0 z-10", className),
|
|
15
|
+
...props,
|
|
16
|
+
children
|
|
17
|
+
});
|
|
18
|
+
});
|
|
19
|
+
Header.displayName = "Header";
|
|
20
|
+
const HeaderTitle = react.forwardRef(({ className, children,...props }, ref) => {
|
|
21
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("h1", {
|
|
22
|
+
ref,
|
|
23
|
+
className: require_utils.cn("text-lg font-semibold text-foreground", className),
|
|
24
|
+
...props,
|
|
25
|
+
children
|
|
26
|
+
});
|
|
27
|
+
});
|
|
28
|
+
HeaderTitle.displayName = "HeaderTitle";
|
|
29
|
+
const HeaderDescription = react.forwardRef(({ className, children,...props }, ref) => {
|
|
30
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
|
|
31
|
+
ref,
|
|
32
|
+
className: require_utils.cn("text-sm text-muted-foreground", className),
|
|
33
|
+
...props,
|
|
34
|
+
children
|
|
35
|
+
});
|
|
36
|
+
});
|
|
37
|
+
HeaderDescription.displayName = "HeaderDescription";
|
|
38
|
+
const HeaderActions = react.forwardRef(({ className, children,...props }, ref) => {
|
|
39
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
40
|
+
ref,
|
|
41
|
+
className: require_utils.cn("ml-auto flex items-center gap-2", className),
|
|
42
|
+
...props,
|
|
43
|
+
children
|
|
44
|
+
});
|
|
45
|
+
});
|
|
46
|
+
HeaderActions.displayName = "HeaderActions";
|
|
47
|
+
const HeaderBreadcrumbs = react.forwardRef(({ className, items, separator,...props }, ref) => {
|
|
48
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("nav", {
|
|
49
|
+
ref,
|
|
50
|
+
"aria-label": "Breadcrumb",
|
|
51
|
+
className: require_utils.cn("flex items-center gap-1 text-sm", className),
|
|
52
|
+
...props,
|
|
53
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("ol", {
|
|
54
|
+
className: "flex items-center gap-1",
|
|
55
|
+
children: items.map((item, index) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("li", {
|
|
56
|
+
className: "flex items-center gap-1",
|
|
57
|
+
children: [index > 0 && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
58
|
+
className: "text-muted-foreground",
|
|
59
|
+
children: separator ?? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(lucide_react.ChevronRight, { className: "h-3.5 w-3.5" })
|
|
60
|
+
}), item.href && !item.current ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("a", {
|
|
61
|
+
href: item.href,
|
|
62
|
+
className: "text-muted-foreground hover:text-foreground transition-colors",
|
|
63
|
+
children: item.label
|
|
64
|
+
}) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
65
|
+
className: require_utils.cn(item.current ? "text-foreground font-medium" : "text-muted-foreground"),
|
|
66
|
+
"aria-current": item.current ? "page" : void 0,
|
|
67
|
+
children: item.label
|
|
68
|
+
})]
|
|
69
|
+
}, item.label))
|
|
70
|
+
})
|
|
71
|
+
});
|
|
72
|
+
});
|
|
73
|
+
HeaderBreadcrumbs.displayName = "HeaderBreadcrumbs";
|
|
74
|
+
const HeaderGroup = react.forwardRef(({ className, align = "start", children,...props }, ref) => {
|
|
75
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
76
|
+
ref,
|
|
77
|
+
className: require_utils.cn("flex items-center gap-3", align === "center" && "justify-center", align === "end" && "justify-end ml-auto", className),
|
|
78
|
+
...props,
|
|
79
|
+
children
|
|
80
|
+
});
|
|
81
|
+
});
|
|
82
|
+
HeaderGroup.displayName = "HeaderGroup";
|
|
83
|
+
|
|
84
|
+
//#endregion
|
|
85
|
+
//#region src/components/layout/shell.tsx
|
|
86
|
+
const Shell = react.forwardRef(({ className, children,...props }, ref) => {
|
|
87
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
88
|
+
ref,
|
|
89
|
+
className: require_utils.cn("flex h-screen w-full bg-background", className),
|
|
90
|
+
...props,
|
|
91
|
+
children
|
|
92
|
+
});
|
|
93
|
+
});
|
|
94
|
+
Shell.displayName = "Shell";
|
|
95
|
+
const ShellSidebar = react.forwardRef(({ className, children,...props }, ref) => {
|
|
96
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
97
|
+
ref,
|
|
98
|
+
className: require_utils.cn("shrink-0", className),
|
|
99
|
+
...props,
|
|
100
|
+
children
|
|
101
|
+
});
|
|
102
|
+
});
|
|
103
|
+
ShellSidebar.displayName = "ShellSidebar";
|
|
104
|
+
const ShellMain = react.forwardRef(({ className, children,...props }, ref) => {
|
|
105
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
106
|
+
ref,
|
|
107
|
+
className: require_utils.cn("flex flex-1 flex-col overflow-hidden", className),
|
|
108
|
+
...props,
|
|
109
|
+
children
|
|
110
|
+
});
|
|
111
|
+
});
|
|
112
|
+
ShellMain.displayName = "ShellMain";
|
|
113
|
+
const ShellHeader = react.forwardRef(({ className, children,...props }, ref) => {
|
|
114
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
115
|
+
ref,
|
|
116
|
+
className: require_utils.cn("shrink-0", className),
|
|
117
|
+
...props,
|
|
118
|
+
children
|
|
119
|
+
});
|
|
120
|
+
});
|
|
121
|
+
ShellHeader.displayName = "ShellHeader";
|
|
122
|
+
const ShellContent = react.forwardRef(({ className, scrollable = true, children,...props }, ref) => {
|
|
123
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
124
|
+
ref,
|
|
125
|
+
className: require_utils.cn("flex-1", scrollable && "overflow-auto", className),
|
|
126
|
+
...props,
|
|
127
|
+
children
|
|
128
|
+
});
|
|
129
|
+
});
|
|
130
|
+
ShellContent.displayName = "ShellContent";
|
|
131
|
+
const ShellFooter = react.forwardRef(({ className, children,...props }, ref) => {
|
|
132
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
133
|
+
ref,
|
|
134
|
+
className: require_utils.cn("shrink-0 border-t border-border bg-surface", className),
|
|
135
|
+
...props,
|
|
136
|
+
children
|
|
137
|
+
});
|
|
138
|
+
});
|
|
139
|
+
ShellFooter.displayName = "ShellFooter";
|
|
140
|
+
|
|
141
|
+
//#endregion
|
|
142
|
+
//#region src/components/layout/sidebar.tsx
|
|
143
|
+
const sidebarVariants = (0, class_variance_authority.cva)("flex flex-col border-r border-border bg-surface transition-all duration-200", {
|
|
144
|
+
variants: { collapsed: {
|
|
145
|
+
true: "w-16",
|
|
146
|
+
false: "w-64"
|
|
147
|
+
} },
|
|
148
|
+
defaultVariants: { collapsed: false }
|
|
149
|
+
});
|
|
150
|
+
const SidebarContext = react.createContext({
|
|
151
|
+
collapsed: false,
|
|
152
|
+
setCollapsed: () => {}
|
|
153
|
+
});
|
|
154
|
+
function useSidebar() {
|
|
155
|
+
const context = react.useContext(SidebarContext);
|
|
156
|
+
if (!context) throw new Error("useSidebar must be used within a Sidebar");
|
|
157
|
+
return context;
|
|
158
|
+
}
|
|
159
|
+
const Sidebar = react.forwardRef(({ className, collapsed: controlledCollapsed, onCollapsedChange, header, footer, children,...props }, ref) => {
|
|
160
|
+
const [internalCollapsed, setInternalCollapsed] = react.useState(false);
|
|
161
|
+
const collapsed = controlledCollapsed ?? internalCollapsed;
|
|
162
|
+
const setCollapsed = react.useCallback((value) => {
|
|
163
|
+
setInternalCollapsed(value);
|
|
164
|
+
onCollapsedChange?.(value);
|
|
165
|
+
}, [onCollapsedChange]);
|
|
166
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(SidebarContext.Provider, {
|
|
167
|
+
value: {
|
|
168
|
+
collapsed,
|
|
169
|
+
setCollapsed
|
|
170
|
+
},
|
|
171
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_tooltip.TooltipProvider, {
|
|
172
|
+
delayDuration: 0,
|
|
173
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
174
|
+
ref,
|
|
175
|
+
className: require_utils.cn(sidebarVariants({
|
|
176
|
+
collapsed,
|
|
177
|
+
className
|
|
178
|
+
})),
|
|
179
|
+
...props,
|
|
180
|
+
children: [
|
|
181
|
+
header && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
182
|
+
className: "flex h-14 items-center border-b border-border px-4",
|
|
183
|
+
children: header
|
|
184
|
+
}),
|
|
185
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_tooltip.ScrollArea, {
|
|
186
|
+
className: "flex-1",
|
|
187
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
188
|
+
className: "flex flex-col gap-1 p-2",
|
|
189
|
+
children
|
|
190
|
+
})
|
|
191
|
+
}),
|
|
192
|
+
footer && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
193
|
+
className: "border-t border-border p-2",
|
|
194
|
+
children: footer
|
|
195
|
+
})
|
|
196
|
+
]
|
|
197
|
+
})
|
|
198
|
+
})
|
|
199
|
+
});
|
|
200
|
+
});
|
|
201
|
+
Sidebar.displayName = "Sidebar";
|
|
202
|
+
const SidebarToggle = react.forwardRef(({ className,...props }, ref) => {
|
|
203
|
+
const { collapsed, setCollapsed } = useSidebar();
|
|
204
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(require_button.Button, {
|
|
205
|
+
ref,
|
|
206
|
+
variant: "ghost",
|
|
207
|
+
size: "icon",
|
|
208
|
+
className: require_utils.cn("h-8 w-8", className),
|
|
209
|
+
onClick: () => setCollapsed(!collapsed),
|
|
210
|
+
...props,
|
|
211
|
+
children: [collapsed ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(lucide_react.PanelLeftOpen, { className: "h-4 w-4" }) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)(lucide_react.PanelLeftClose, { className: "h-4 w-4" }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
212
|
+
className: "sr-only",
|
|
213
|
+
children: collapsed ? "Expand sidebar" : "Collapse sidebar"
|
|
214
|
+
})]
|
|
215
|
+
});
|
|
216
|
+
});
|
|
217
|
+
SidebarToggle.displayName = "SidebarToggle";
|
|
218
|
+
const SidebarSection = react.forwardRef(({ className, title, children,...props }, ref) => {
|
|
219
|
+
const { collapsed } = useSidebar();
|
|
220
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
221
|
+
ref,
|
|
222
|
+
className: require_utils.cn("flex flex-col gap-1", className),
|
|
223
|
+
...props,
|
|
224
|
+
children: [
|
|
225
|
+
title && !collapsed && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
226
|
+
className: "px-2 py-1.5 text-xs font-medium text-muted-foreground uppercase tracking-wider",
|
|
227
|
+
children: title
|
|
228
|
+
}),
|
|
229
|
+
title && collapsed && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", { className: "mx-auto my-1 h-px w-6 bg-border" }),
|
|
230
|
+
children
|
|
231
|
+
]
|
|
232
|
+
});
|
|
233
|
+
});
|
|
234
|
+
SidebarSection.displayName = "SidebarSection";
|
|
235
|
+
const SidebarItem = react.forwardRef(({ className, icon: Icon, active, badge, children,...props }, ref) => {
|
|
236
|
+
const { collapsed } = useSidebar();
|
|
237
|
+
const button = /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("button", {
|
|
238
|
+
ref,
|
|
239
|
+
className: require_utils.cn("flex w-full items-center gap-3 rounded-md px-3 py-2 text-sm font-medium transition-colors", "text-muted-foreground hover:bg-surface-hover hover:text-foreground", "focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring", active && "bg-surface-hover text-foreground", collapsed && "justify-center px-0", className),
|
|
240
|
+
...props,
|
|
241
|
+
children: [
|
|
242
|
+
Icon && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Icon, { className: "h-4 w-4 shrink-0" }),
|
|
243
|
+
!collapsed && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
244
|
+
className: "flex-1 truncate",
|
|
245
|
+
children
|
|
246
|
+
}),
|
|
247
|
+
!collapsed && badge && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { children: badge })
|
|
248
|
+
]
|
|
249
|
+
});
|
|
250
|
+
if (collapsed) return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(require_tooltip.Tooltip, { children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_tooltip.TooltipTrigger, {
|
|
251
|
+
asChild: true,
|
|
252
|
+
children: button
|
|
253
|
+
}), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(require_tooltip.TooltipContent, {
|
|
254
|
+
side: "right",
|
|
255
|
+
className: "flex items-center gap-2",
|
|
256
|
+
children: [children, badge]
|
|
257
|
+
})] });
|
|
258
|
+
return button;
|
|
259
|
+
});
|
|
260
|
+
SidebarItem.displayName = "SidebarItem";
|
|
261
|
+
const SidebarLink = react.forwardRef(({ className, icon: Icon, active, badge, children,...props }, ref) => {
|
|
262
|
+
const { collapsed } = useSidebar();
|
|
263
|
+
const link = /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("a", {
|
|
264
|
+
ref,
|
|
265
|
+
className: require_utils.cn("flex w-full items-center gap-3 rounded-md px-3 py-2 text-sm font-medium transition-colors", "text-muted-foreground hover:bg-surface-hover hover:text-foreground", "focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring", active && "bg-surface-hover text-foreground", collapsed && "justify-center px-0", className),
|
|
266
|
+
...props,
|
|
267
|
+
children: [
|
|
268
|
+
Icon && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Icon, { className: "h-4 w-4 shrink-0" }),
|
|
269
|
+
!collapsed && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
270
|
+
className: "flex-1 truncate",
|
|
271
|
+
children
|
|
272
|
+
}),
|
|
273
|
+
!collapsed && badge && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { children: badge })
|
|
274
|
+
]
|
|
275
|
+
});
|
|
276
|
+
if (collapsed) return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(require_tooltip.Tooltip, { children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_tooltip.TooltipTrigger, {
|
|
277
|
+
asChild: true,
|
|
278
|
+
children: link
|
|
279
|
+
}), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(require_tooltip.TooltipContent, {
|
|
280
|
+
side: "right",
|
|
281
|
+
className: "flex items-center gap-2",
|
|
282
|
+
children: [children, badge]
|
|
283
|
+
})] });
|
|
284
|
+
return link;
|
|
285
|
+
});
|
|
286
|
+
SidebarLink.displayName = "SidebarLink";
|
|
287
|
+
|
|
288
|
+
//#endregion
|
|
289
|
+
//#region src/components/layout/split-pane.tsx
|
|
290
|
+
const SplitPane = react.forwardRef(({ className, direction = "horizontal", defaultSize = "50%", minSize = 100, maxSize, onSizeChange, resizable = true, children,...props }, ref) => {
|
|
291
|
+
const containerRef = react.useRef(null);
|
|
292
|
+
const [size, setSize] = react.useState(null);
|
|
293
|
+
const [isDragging, setIsDragging] = react.useState(false);
|
|
294
|
+
const childArray = react.Children.toArray(children);
|
|
295
|
+
const firstPane = childArray[0];
|
|
296
|
+
const secondPane = childArray[1];
|
|
297
|
+
const isHorizontal = direction === "horizontal";
|
|
298
|
+
react.useEffect(() => {
|
|
299
|
+
if (size !== null || !containerRef.current) return;
|
|
300
|
+
const containerSize = isHorizontal ? containerRef.current.offsetWidth : containerRef.current.offsetHeight;
|
|
301
|
+
if (typeof defaultSize === "string" && defaultSize.endsWith("%")) {
|
|
302
|
+
const percent = parseFloat(defaultSize) / 100;
|
|
303
|
+
setSize(Math.round(containerSize * percent));
|
|
304
|
+
} else if (typeof defaultSize === "number") setSize(defaultSize);
|
|
305
|
+
else setSize(Math.round(containerSize / 2));
|
|
306
|
+
}, [
|
|
307
|
+
defaultSize,
|
|
308
|
+
isHorizontal,
|
|
309
|
+
size
|
|
310
|
+
]);
|
|
311
|
+
const handleMouseDown = react.useCallback((e) => {
|
|
312
|
+
if (!resizable) return;
|
|
313
|
+
e.preventDefault();
|
|
314
|
+
setIsDragging(true);
|
|
315
|
+
}, [resizable]);
|
|
316
|
+
react.useEffect(() => {
|
|
317
|
+
if (!isDragging) return;
|
|
318
|
+
const handleMouseMove = (e) => {
|
|
319
|
+
if (!containerRef.current) return;
|
|
320
|
+
const containerRect = containerRef.current.getBoundingClientRect();
|
|
321
|
+
const containerSize = isHorizontal ? containerRect.width : containerRect.height;
|
|
322
|
+
let newSize = isHorizontal ? e.clientX - containerRect.left : e.clientY - containerRect.top;
|
|
323
|
+
newSize = Math.max(minSize, newSize);
|
|
324
|
+
if (maxSize) newSize = Math.min(maxSize, newSize);
|
|
325
|
+
newSize = Math.min(containerSize - minSize, newSize);
|
|
326
|
+
setSize(newSize);
|
|
327
|
+
onSizeChange?.(newSize);
|
|
328
|
+
};
|
|
329
|
+
const handleMouseUp = () => {
|
|
330
|
+
setIsDragging(false);
|
|
331
|
+
};
|
|
332
|
+
document.addEventListener("mousemove", handleMouseMove);
|
|
333
|
+
document.addEventListener("mouseup", handleMouseUp);
|
|
334
|
+
return () => {
|
|
335
|
+
document.removeEventListener("mousemove", handleMouseMove);
|
|
336
|
+
document.removeEventListener("mouseup", handleMouseUp);
|
|
337
|
+
};
|
|
338
|
+
}, [
|
|
339
|
+
isDragging,
|
|
340
|
+
isHorizontal,
|
|
341
|
+
minSize,
|
|
342
|
+
maxSize,
|
|
343
|
+
onSizeChange
|
|
344
|
+
]);
|
|
345
|
+
const firstPaneStyle = {
|
|
346
|
+
[isHorizontal ? "width" : "height"]: size !== null ? `${size}px` : defaultSize,
|
|
347
|
+
flexShrink: 0
|
|
348
|
+
};
|
|
349
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
350
|
+
ref: (node) => {
|
|
351
|
+
containerRef.current = node;
|
|
352
|
+
if (typeof ref === "function") ref(node);
|
|
353
|
+
else if (ref) ref.current = node;
|
|
354
|
+
},
|
|
355
|
+
className: require_utils.cn("flex overflow-hidden", isHorizontal ? "flex-row" : "flex-col", isDragging && "cursor-col-resize select-none", className),
|
|
356
|
+
...props,
|
|
357
|
+
children: [
|
|
358
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
359
|
+
className: require_utils.cn("overflow-auto", isHorizontal ? "min-w-0" : "min-h-0"),
|
|
360
|
+
style: firstPaneStyle,
|
|
361
|
+
children: firstPane
|
|
362
|
+
}),
|
|
363
|
+
resizable && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
364
|
+
className: require_utils.cn("flex shrink-0 items-center justify-center bg-border transition-colors", isHorizontal ? "w-1 cursor-col-resize hover:bg-border-hover active:bg-accent" : "h-1 cursor-row-resize hover:bg-border-hover active:bg-accent", isDragging && "bg-accent"),
|
|
365
|
+
onMouseDown: handleMouseDown,
|
|
366
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", { className: require_utils.cn("rounded-full bg-muted-foreground/50", isHorizontal ? "h-8 w-1" : "h-1 w-8") })
|
|
367
|
+
}),
|
|
368
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
369
|
+
className: require_utils.cn("flex-1 overflow-auto", isHorizontal ? "min-w-0" : "min-h-0"),
|
|
370
|
+
children: secondPane
|
|
371
|
+
})
|
|
372
|
+
]
|
|
373
|
+
});
|
|
374
|
+
});
|
|
375
|
+
SplitPane.displayName = "SplitPane";
|
|
376
|
+
const SplitPanePanel = react.forwardRef(({ className, children,...props }, ref) => {
|
|
377
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
378
|
+
ref,
|
|
379
|
+
className: require_utils.cn("h-full w-full", className),
|
|
380
|
+
...props,
|
|
381
|
+
children
|
|
382
|
+
});
|
|
383
|
+
});
|
|
384
|
+
SplitPanePanel.displayName = "SplitPanePanel";
|
|
385
|
+
|
|
386
|
+
//#endregion
|
|
387
|
+
Object.defineProperty(exports, 'Header', {
|
|
388
|
+
enumerable: true,
|
|
389
|
+
get: function () {
|
|
390
|
+
return Header;
|
|
391
|
+
}
|
|
392
|
+
});
|
|
393
|
+
Object.defineProperty(exports, 'HeaderActions', {
|
|
394
|
+
enumerable: true,
|
|
395
|
+
get: function () {
|
|
396
|
+
return HeaderActions;
|
|
397
|
+
}
|
|
398
|
+
});
|
|
399
|
+
Object.defineProperty(exports, 'HeaderBreadcrumbs', {
|
|
400
|
+
enumerable: true,
|
|
401
|
+
get: function () {
|
|
402
|
+
return HeaderBreadcrumbs;
|
|
403
|
+
}
|
|
404
|
+
});
|
|
405
|
+
Object.defineProperty(exports, 'HeaderDescription', {
|
|
406
|
+
enumerable: true,
|
|
407
|
+
get: function () {
|
|
408
|
+
return HeaderDescription;
|
|
409
|
+
}
|
|
410
|
+
});
|
|
411
|
+
Object.defineProperty(exports, 'HeaderGroup', {
|
|
412
|
+
enumerable: true,
|
|
413
|
+
get: function () {
|
|
414
|
+
return HeaderGroup;
|
|
415
|
+
}
|
|
416
|
+
});
|
|
417
|
+
Object.defineProperty(exports, 'HeaderTitle', {
|
|
418
|
+
enumerable: true,
|
|
419
|
+
get: function () {
|
|
420
|
+
return HeaderTitle;
|
|
421
|
+
}
|
|
422
|
+
});
|
|
423
|
+
Object.defineProperty(exports, 'Shell', {
|
|
424
|
+
enumerable: true,
|
|
425
|
+
get: function () {
|
|
426
|
+
return Shell;
|
|
427
|
+
}
|
|
428
|
+
});
|
|
429
|
+
Object.defineProperty(exports, 'ShellContent', {
|
|
430
|
+
enumerable: true,
|
|
431
|
+
get: function () {
|
|
432
|
+
return ShellContent;
|
|
433
|
+
}
|
|
434
|
+
});
|
|
435
|
+
Object.defineProperty(exports, 'ShellFooter', {
|
|
436
|
+
enumerable: true,
|
|
437
|
+
get: function () {
|
|
438
|
+
return ShellFooter;
|
|
439
|
+
}
|
|
440
|
+
});
|
|
441
|
+
Object.defineProperty(exports, 'ShellHeader', {
|
|
442
|
+
enumerable: true,
|
|
443
|
+
get: function () {
|
|
444
|
+
return ShellHeader;
|
|
445
|
+
}
|
|
446
|
+
});
|
|
447
|
+
Object.defineProperty(exports, 'ShellMain', {
|
|
448
|
+
enumerable: true,
|
|
449
|
+
get: function () {
|
|
450
|
+
return ShellMain;
|
|
451
|
+
}
|
|
452
|
+
});
|
|
453
|
+
Object.defineProperty(exports, 'ShellSidebar', {
|
|
454
|
+
enumerable: true,
|
|
455
|
+
get: function () {
|
|
456
|
+
return ShellSidebar;
|
|
457
|
+
}
|
|
458
|
+
});
|
|
459
|
+
Object.defineProperty(exports, 'Sidebar', {
|
|
460
|
+
enumerable: true,
|
|
461
|
+
get: function () {
|
|
462
|
+
return Sidebar;
|
|
463
|
+
}
|
|
464
|
+
});
|
|
465
|
+
Object.defineProperty(exports, 'SidebarItem', {
|
|
466
|
+
enumerable: true,
|
|
467
|
+
get: function () {
|
|
468
|
+
return SidebarItem;
|
|
469
|
+
}
|
|
470
|
+
});
|
|
471
|
+
Object.defineProperty(exports, 'SidebarLink', {
|
|
472
|
+
enumerable: true,
|
|
473
|
+
get: function () {
|
|
474
|
+
return SidebarLink;
|
|
475
|
+
}
|
|
476
|
+
});
|
|
477
|
+
Object.defineProperty(exports, 'SidebarSection', {
|
|
478
|
+
enumerable: true,
|
|
479
|
+
get: function () {
|
|
480
|
+
return SidebarSection;
|
|
481
|
+
}
|
|
482
|
+
});
|
|
483
|
+
Object.defineProperty(exports, 'SidebarToggle', {
|
|
484
|
+
enumerable: true,
|
|
485
|
+
get: function () {
|
|
486
|
+
return SidebarToggle;
|
|
487
|
+
}
|
|
488
|
+
});
|
|
489
|
+
Object.defineProperty(exports, 'SplitPane', {
|
|
490
|
+
enumerable: true,
|
|
491
|
+
get: function () {
|
|
492
|
+
return SplitPane;
|
|
493
|
+
}
|
|
494
|
+
});
|
|
495
|
+
Object.defineProperty(exports, 'SplitPanePanel', {
|
|
496
|
+
enumerable: true,
|
|
497
|
+
get: function () {
|
|
498
|
+
return SplitPanePanel;
|
|
499
|
+
}
|
|
500
|
+
});
|
|
501
|
+
Object.defineProperty(exports, 'sidebarVariants', {
|
|
502
|
+
enumerable: true,
|
|
503
|
+
get: function () {
|
|
504
|
+
return sidebarVariants;
|
|
505
|
+
}
|
|
506
|
+
});
|
|
507
|
+
Object.defineProperty(exports, 'useSidebar', {
|
|
508
|
+
enumerable: true,
|
|
509
|
+
get: function () {
|
|
510
|
+
return useSidebar;
|
|
511
|
+
}
|
|
512
|
+
});
|
|
513
|
+
//# sourceMappingURL=layout-CcO0svmw.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"layout-CcO0svmw.cjs","names":["ChevronRight","value: boolean","TooltipProvider","ScrollArea","Button","PanelLeftOpen","PanelLeftClose","Tooltip","TooltipTrigger","TooltipContent","e: React.MouseEvent","e: MouseEvent","firstPaneStyle: React.CSSProperties"],"sources":["../src/components/layout/header.tsx","../src/components/layout/shell.tsx","../src/components/layout/sidebar.tsx","../src/components/layout/split-pane.tsx"],"sourcesContent":["'use client';\n\nimport { ChevronRight } from 'lucide-react';\nimport * as React from 'react';\nimport { cn } from '../../lib/utils';\n\nexport interface HeaderProps extends React.HTMLAttributes<HTMLElement> {\n\tsticky?: boolean;\n}\n\nconst Header = React.forwardRef<HTMLElement, HeaderProps>(\n\t({ className, sticky = false, children, ...props }, ref) => {\n\t\treturn (\n\t\t\t<header\n\t\t\t\tref={ref}\n\t\t\t\tclassName={cn(\n\t\t\t\t\t'flex h-14 items-center gap-4 border-b border-border bg-surface px-4',\n\t\t\t\t\tsticky && 'sticky top-0 z-10',\n\t\t\t\t\tclassName,\n\t\t\t\t)}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t{children}\n\t\t\t</header>\n\t\t);\n\t},\n);\nHeader.displayName = 'Header';\n\nexport interface HeaderTitleProps\n\textends React.HTMLAttributes<HTMLHeadingElement> {}\n\nconst HeaderTitle = React.forwardRef<HTMLHeadingElement, HeaderTitleProps>(\n\t({ className, children, ...props }, ref) => {\n\t\treturn (\n\t\t\t<h1\n\t\t\t\tref={ref}\n\t\t\t\tclassName={cn('text-lg font-semibold text-foreground', className)}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t{children}\n\t\t\t</h1>\n\t\t);\n\t},\n);\nHeaderTitle.displayName = 'HeaderTitle';\n\nexport interface HeaderDescriptionProps\n\textends React.HTMLAttributes<HTMLParagraphElement> {}\n\nconst HeaderDescription = React.forwardRef<\n\tHTMLParagraphElement,\n\tHeaderDescriptionProps\n>(({ className, children, ...props }, ref) => {\n\treturn (\n\t\t<p\n\t\t\tref={ref}\n\t\t\tclassName={cn('text-sm text-muted-foreground', className)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{children}\n\t\t</p>\n\t);\n});\nHeaderDescription.displayName = 'HeaderDescription';\n\nexport interface HeaderActionsProps\n\textends React.HTMLAttributes<HTMLDivElement> {}\n\nconst HeaderActions = React.forwardRef<HTMLDivElement, HeaderActionsProps>(\n\t({ className, children, ...props }, ref) => {\n\t\treturn (\n\t\t\t<div\n\t\t\t\tref={ref}\n\t\t\t\tclassName={cn('ml-auto flex items-center gap-2', className)}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t{children}\n\t\t\t</div>\n\t\t);\n\t},\n);\nHeaderActions.displayName = 'HeaderActions';\n\nexport interface BreadcrumbItem {\n\tlabel: string;\n\thref?: string;\n\tcurrent?: boolean;\n}\n\nexport interface HeaderBreadcrumbsProps\n\textends React.HTMLAttributes<HTMLElement> {\n\titems: BreadcrumbItem[];\n\tseparator?: React.ReactNode;\n}\n\nconst HeaderBreadcrumbs = React.forwardRef<HTMLElement, HeaderBreadcrumbsProps>(\n\t({ className, items, separator, ...props }, ref) => {\n\t\treturn (\n\t\t\t<nav\n\t\t\t\tref={ref}\n\t\t\t\taria-label=\"Breadcrumb\"\n\t\t\t\tclassName={cn('flex items-center gap-1 text-sm', className)}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t<ol className=\"flex items-center gap-1\">\n\t\t\t\t\t{items.map((item, index) => (\n\t\t\t\t\t\t<li key={item.label} className=\"flex items-center gap-1\">\n\t\t\t\t\t\t\t{index > 0 && (\n\t\t\t\t\t\t\t\t<span className=\"text-muted-foreground\">\n\t\t\t\t\t\t\t\t\t{separator ?? <ChevronRight className=\"h-3.5 w-3.5\" />}\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t{item.href && !item.current ? (\n\t\t\t\t\t\t\t\t<a\n\t\t\t\t\t\t\t\t\thref={item.href}\n\t\t\t\t\t\t\t\t\tclassName=\"text-muted-foreground hover:text-foreground transition-colors\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{item.label}\n\t\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\t\titem.current\n\t\t\t\t\t\t\t\t\t\t\t? 'text-foreground font-medium'\n\t\t\t\t\t\t\t\t\t\t\t: 'text-muted-foreground',\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\taria-current={item.current ? 'page' : undefined}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{item.label}\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</li>\n\t\t\t\t\t))}\n\t\t\t\t</ol>\n\t\t\t</nav>\n\t\t);\n\t},\n);\nHeaderBreadcrumbs.displayName = 'HeaderBreadcrumbs';\n\nexport interface HeaderGroupProps extends React.HTMLAttributes<HTMLDivElement> {\n\talign?: 'start' | 'center' | 'end';\n}\n\nconst HeaderGroup = React.forwardRef<HTMLDivElement, HeaderGroupProps>(\n\t({ className, align = 'start', children, ...props }, ref) => {\n\t\treturn (\n\t\t\t<div\n\t\t\t\tref={ref}\n\t\t\t\tclassName={cn(\n\t\t\t\t\t'flex items-center gap-3',\n\t\t\t\t\talign === 'center' && 'justify-center',\n\t\t\t\t\talign === 'end' && 'justify-end ml-auto',\n\t\t\t\t\tclassName,\n\t\t\t\t)}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t{children}\n\t\t\t</div>\n\t\t);\n\t},\n);\nHeaderGroup.displayName = 'HeaderGroup';\n\nexport {\n\tHeader,\n\tHeaderTitle,\n\tHeaderDescription,\n\tHeaderActions,\n\tHeaderBreadcrumbs,\n\tHeaderGroup,\n};\n","'use client';\n\nimport * as React from 'react';\nimport { cn } from '../../lib/utils';\n\nexport interface ShellProps extends React.HTMLAttributes<HTMLDivElement> {}\n\nconst Shell = React.forwardRef<HTMLDivElement, ShellProps>(\n\t({ className, children, ...props }, ref) => {\n\t\treturn (\n\t\t\t<div\n\t\t\t\tref={ref}\n\t\t\t\tclassName={cn('flex h-screen w-full bg-background', className)}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t{children}\n\t\t\t</div>\n\t\t);\n\t},\n);\nShell.displayName = 'Shell';\n\nexport interface ShellSidebarProps\n\textends React.HTMLAttributes<HTMLDivElement> {}\n\nconst ShellSidebar = React.forwardRef<HTMLDivElement, ShellSidebarProps>(\n\t({ className, children, ...props }, ref) => {\n\t\treturn (\n\t\t\t<div ref={ref} className={cn('shrink-0', className)} {...props}>\n\t\t\t\t{children}\n\t\t\t</div>\n\t\t);\n\t},\n);\nShellSidebar.displayName = 'ShellSidebar';\n\nexport interface ShellMainProps extends React.HTMLAttributes<HTMLDivElement> {}\n\nconst ShellMain = React.forwardRef<HTMLDivElement, ShellMainProps>(\n\t({ className, children, ...props }, ref) => {\n\t\treturn (\n\t\t\t<div\n\t\t\t\tref={ref}\n\t\t\t\tclassName={cn('flex flex-1 flex-col overflow-hidden', className)}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t{children}\n\t\t\t</div>\n\t\t);\n\t},\n);\nShellMain.displayName = 'ShellMain';\n\nexport interface ShellHeaderProps\n\textends React.HTMLAttributes<HTMLDivElement> {}\n\nconst ShellHeader = React.forwardRef<HTMLDivElement, ShellHeaderProps>(\n\t({ className, children, ...props }, ref) => {\n\t\treturn (\n\t\t\t<div ref={ref} className={cn('shrink-0', className)} {...props}>\n\t\t\t\t{children}\n\t\t\t</div>\n\t\t);\n\t},\n);\nShellHeader.displayName = 'ShellHeader';\n\nexport interface ShellContentProps\n\textends React.HTMLAttributes<HTMLDivElement> {\n\tscrollable?: boolean;\n}\n\nconst ShellContent = React.forwardRef<HTMLDivElement, ShellContentProps>(\n\t({ className, scrollable = true, children, ...props }, ref) => {\n\t\treturn (\n\t\t\t<div\n\t\t\t\tref={ref}\n\t\t\t\tclassName={cn('flex-1', scrollable && 'overflow-auto', className)}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t{children}\n\t\t\t</div>\n\t\t);\n\t},\n);\nShellContent.displayName = 'ShellContent';\n\nexport interface ShellFooterProps\n\textends React.HTMLAttributes<HTMLDivElement> {}\n\nconst ShellFooter = React.forwardRef<HTMLDivElement, ShellFooterProps>(\n\t({ className, children, ...props }, ref) => {\n\t\treturn (\n\t\t\t<div\n\t\t\t\tref={ref}\n\t\t\t\tclassName={cn('shrink-0 border-t border-border bg-surface', className)}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t{children}\n\t\t\t</div>\n\t\t);\n\t},\n);\nShellFooter.displayName = 'ShellFooter';\n\nexport {\n\tShell,\n\tShellSidebar,\n\tShellMain,\n\tShellHeader,\n\tShellContent,\n\tShellFooter,\n};\n","'use client';\n\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { type LucideIcon, PanelLeftClose, PanelLeftOpen } from 'lucide-react';\nimport * as React from 'react';\nimport { cn } from '../../lib/utils';\nimport { Button } from '../ui/button';\nimport { ScrollArea } from '../ui/scroll-area';\nimport {\n\tTooltip,\n\tTooltipContent,\n\tTooltipProvider,\n\tTooltipTrigger,\n} from '../ui/tooltip';\n\nconst sidebarVariants = cva(\n\t'flex flex-col border-r border-border bg-surface transition-all duration-200',\n\t{\n\t\tvariants: {\n\t\t\tcollapsed: {\n\t\t\t\ttrue: 'w-16',\n\t\t\t\tfalse: 'w-64',\n\t\t\t},\n\t\t},\n\t\tdefaultVariants: {\n\t\t\tcollapsed: false,\n\t\t},\n\t},\n);\n\nexport interface SidebarProps\n\textends React.HTMLAttributes<HTMLDivElement>,\n\t\tVariantProps<typeof sidebarVariants> {\n\tcollapsed?: boolean;\n\tonCollapsedChange?: (collapsed: boolean) => void;\n\theader?: React.ReactNode;\n\tfooter?: React.ReactNode;\n}\n\nconst SidebarContext = React.createContext<{\n\tcollapsed: boolean;\n\tsetCollapsed: (collapsed: boolean) => void;\n}>({\n\tcollapsed: false,\n\tsetCollapsed: () => {},\n});\n\nexport function useSidebar() {\n\tconst context = React.useContext(SidebarContext);\n\tif (!context) {\n\t\tthrow new Error('useSidebar must be used within a Sidebar');\n\t}\n\treturn context;\n}\n\nconst Sidebar = React.forwardRef<HTMLDivElement, SidebarProps>(\n\t(\n\t\t{\n\t\t\tclassName,\n\t\t\tcollapsed: controlledCollapsed,\n\t\t\tonCollapsedChange,\n\t\t\theader,\n\t\t\tfooter,\n\t\t\tchildren,\n\t\t\t...props\n\t\t},\n\t\tref,\n\t) => {\n\t\tconst [internalCollapsed, setInternalCollapsed] = React.useState(false);\n\t\tconst collapsed = controlledCollapsed ?? internalCollapsed;\n\n\t\tconst setCollapsed = React.useCallback(\n\t\t\t(value: boolean) => {\n\t\t\t\tsetInternalCollapsed(value);\n\t\t\t\tonCollapsedChange?.(value);\n\t\t\t},\n\t\t\t[onCollapsedChange],\n\t\t);\n\n\t\treturn (\n\t\t\t<SidebarContext.Provider value={{ collapsed, setCollapsed }}>\n\t\t\t\t<TooltipProvider delayDuration={0}>\n\t\t\t\t\t<div\n\t\t\t\t\t\tref={ref}\n\t\t\t\t\t\tclassName={cn(sidebarVariants({ collapsed, className }))}\n\t\t\t\t\t\t{...props}\n\t\t\t\t\t>\n\t\t\t\t\t\t{header && (\n\t\t\t\t\t\t\t<div className=\"flex h-14 items-center border-b border-border px-4\">\n\t\t\t\t\t\t\t\t{header}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t<ScrollArea className=\"flex-1\">\n\t\t\t\t\t\t\t<div className=\"flex flex-col gap-1 p-2\">{children}</div>\n\t\t\t\t\t\t</ScrollArea>\n\t\t\t\t\t\t{footer && (\n\t\t\t\t\t\t\t<div className=\"border-t border-border p-2\">{footer}</div>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</div>\n\t\t\t\t</TooltipProvider>\n\t\t\t</SidebarContext.Provider>\n\t\t);\n\t},\n);\nSidebar.displayName = 'Sidebar';\n\nexport interface SidebarToggleProps\n\textends React.ButtonHTMLAttributes<HTMLButtonElement> {}\n\nconst SidebarToggle = React.forwardRef<HTMLButtonElement, SidebarToggleProps>(\n\t({ className, ...props }, ref) => {\n\t\tconst { collapsed, setCollapsed } = useSidebar();\n\n\t\treturn (\n\t\t\t<Button\n\t\t\t\tref={ref}\n\t\t\t\tvariant=\"ghost\"\n\t\t\t\tsize=\"icon\"\n\t\t\t\tclassName={cn('h-8 w-8', className)}\n\t\t\t\tonClick={() => setCollapsed(!collapsed)}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t{collapsed ? (\n\t\t\t\t\t<PanelLeftOpen className=\"h-4 w-4\" />\n\t\t\t\t) : (\n\t\t\t\t\t<PanelLeftClose className=\"h-4 w-4\" />\n\t\t\t\t)}\n\t\t\t\t<span className=\"sr-only\">\n\t\t\t\t\t{collapsed ? 'Expand sidebar' : 'Collapse sidebar'}\n\t\t\t\t</span>\n\t\t\t</Button>\n\t\t);\n\t},\n);\nSidebarToggle.displayName = 'SidebarToggle';\n\nexport interface SidebarSectionProps\n\textends React.HTMLAttributes<HTMLDivElement> {\n\ttitle?: string;\n}\n\nconst SidebarSection = React.forwardRef<HTMLDivElement, SidebarSectionProps>(\n\t({ className, title, children, ...props }, ref) => {\n\t\tconst { collapsed } = useSidebar();\n\n\t\treturn (\n\t\t\t<div\n\t\t\t\tref={ref}\n\t\t\t\tclassName={cn('flex flex-col gap-1', className)}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t{title && !collapsed && (\n\t\t\t\t\t<div className=\"px-2 py-1.5 text-xs font-medium text-muted-foreground uppercase tracking-wider\">\n\t\t\t\t\t\t{title}\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t\t\t{title && collapsed && (\n\t\t\t\t\t<div className=\"mx-auto my-1 h-px w-6 bg-border\" />\n\t\t\t\t)}\n\t\t\t\t{children}\n\t\t\t</div>\n\t\t);\n\t},\n);\nSidebarSection.displayName = 'SidebarSection';\n\nexport interface SidebarItemProps\n\textends React.ButtonHTMLAttributes<HTMLButtonElement> {\n\ticon?: LucideIcon;\n\tactive?: boolean;\n\tbadge?: React.ReactNode;\n}\n\nconst SidebarItem = React.forwardRef<HTMLButtonElement, SidebarItemProps>(\n\t({ className, icon: Icon, active, badge, children, ...props }, ref) => {\n\t\tconst { collapsed } = useSidebar();\n\n\t\tconst button = (\n\t\t\t<button\n\t\t\t\tref={ref}\n\t\t\t\tclassName={cn(\n\t\t\t\t\t'flex w-full items-center gap-3 rounded-md px-3 py-2 text-sm font-medium transition-colors',\n\t\t\t\t\t'text-muted-foreground hover:bg-surface-hover hover:text-foreground',\n\t\t\t\t\t'focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring',\n\t\t\t\t\tactive && 'bg-surface-hover text-foreground',\n\t\t\t\t\tcollapsed && 'justify-center px-0',\n\t\t\t\t\tclassName,\n\t\t\t\t)}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t{Icon && <Icon className=\"h-4 w-4 shrink-0\" />}\n\t\t\t\t{!collapsed && <span className=\"flex-1 truncate\">{children}</span>}\n\t\t\t\t{!collapsed && badge && <span>{badge}</span>}\n\t\t\t</button>\n\t\t);\n\n\t\tif (collapsed) {\n\t\t\treturn (\n\t\t\t\t<Tooltip>\n\t\t\t\t\t<TooltipTrigger asChild>{button}</TooltipTrigger>\n\t\t\t\t\t<TooltipContent side=\"right\" className=\"flex items-center gap-2\">\n\t\t\t\t\t\t{children}\n\t\t\t\t\t\t{badge}\n\t\t\t\t\t</TooltipContent>\n\t\t\t\t</Tooltip>\n\t\t\t);\n\t\t}\n\n\t\treturn button;\n\t},\n);\nSidebarItem.displayName = 'SidebarItem';\n\nexport interface SidebarLinkProps\n\textends React.AnchorHTMLAttributes<HTMLAnchorElement> {\n\ticon?: LucideIcon;\n\tactive?: boolean;\n\tbadge?: React.ReactNode;\n}\n\nconst SidebarLink = React.forwardRef<HTMLAnchorElement, SidebarLinkProps>(\n\t({ className, icon: Icon, active, badge, children, ...props }, ref) => {\n\t\tconst { collapsed } = useSidebar();\n\n\t\tconst link = (\n\t\t\t<a\n\t\t\t\tref={ref}\n\t\t\t\tclassName={cn(\n\t\t\t\t\t'flex w-full items-center gap-3 rounded-md px-3 py-2 text-sm font-medium transition-colors',\n\t\t\t\t\t'text-muted-foreground hover:bg-surface-hover hover:text-foreground',\n\t\t\t\t\t'focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring',\n\t\t\t\t\tactive && 'bg-surface-hover text-foreground',\n\t\t\t\t\tcollapsed && 'justify-center px-0',\n\t\t\t\t\tclassName,\n\t\t\t\t)}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t{Icon && <Icon className=\"h-4 w-4 shrink-0\" />}\n\t\t\t\t{!collapsed && <span className=\"flex-1 truncate\">{children}</span>}\n\t\t\t\t{!collapsed && badge && <span>{badge}</span>}\n\t\t\t</a>\n\t\t);\n\n\t\tif (collapsed) {\n\t\t\treturn (\n\t\t\t\t<Tooltip>\n\t\t\t\t\t<TooltipTrigger asChild>{link}</TooltipTrigger>\n\t\t\t\t\t<TooltipContent side=\"right\" className=\"flex items-center gap-2\">\n\t\t\t\t\t\t{children}\n\t\t\t\t\t\t{badge}\n\t\t\t\t\t</TooltipContent>\n\t\t\t\t</Tooltip>\n\t\t\t);\n\t\t}\n\n\t\treturn link;\n\t},\n);\nSidebarLink.displayName = 'SidebarLink';\n\nexport {\n\tSidebar,\n\tSidebarToggle,\n\tSidebarSection,\n\tSidebarItem,\n\tSidebarLink,\n\tsidebarVariants,\n};\n","'use client';\nimport * as React from 'react';\nimport { cn } from '../../lib/utils';\n\nexport interface SplitPaneProps extends React.HTMLAttributes<HTMLDivElement> {\n\t/** Direction of the split */\n\tdirection?: 'horizontal' | 'vertical';\n\t/** Initial size of the first pane (in pixels or percentage) */\n\tdefaultSize?: number | string;\n\t/** Minimum size of the first pane in pixels */\n\tminSize?: number;\n\t/** Maximum size of the first pane in pixels */\n\tmaxSize?: number;\n\t/** Called when the pane size changes */\n\tonSizeChange?: (size: number) => void;\n\t/** Whether to show the resize handle */\n\tresizable?: boolean;\n}\n\nconst SplitPane = React.forwardRef<HTMLDivElement, SplitPaneProps>(\n\t(\n\t\t{\n\t\t\tclassName,\n\t\t\tdirection = 'horizontal',\n\t\t\tdefaultSize = '50%',\n\t\t\tminSize = 100,\n\t\t\tmaxSize,\n\t\t\tonSizeChange,\n\t\t\tresizable = true,\n\t\t\tchildren,\n\t\t\t...props\n\t\t},\n\t\tref,\n\t) => {\n\t\tconst containerRef = React.useRef<HTMLDivElement>(null);\n\t\tconst [size, setSize] = React.useState<number | null>(null);\n\t\tconst [isDragging, setIsDragging] = React.useState(false);\n\n\t\tconst childArray = React.Children.toArray(children);\n\t\tconst firstPane = childArray[0];\n\t\tconst secondPane = childArray[1];\n\n\t\tconst isHorizontal = direction === 'horizontal';\n\n\t\t// Initialize size from defaultSize\n\t\tReact.useEffect(() => {\n\t\t\tif (size !== null || !containerRef.current) return;\n\n\t\t\tconst containerSize = isHorizontal\n\t\t\t\t? containerRef.current.offsetWidth\n\t\t\t\t: containerRef.current.offsetHeight;\n\n\t\t\tif (typeof defaultSize === 'string' && defaultSize.endsWith('%')) {\n\t\t\t\tconst percent = parseFloat(defaultSize) / 100;\n\t\t\t\tsetSize(Math.round(containerSize * percent));\n\t\t\t} else if (typeof defaultSize === 'number') {\n\t\t\t\tsetSize(defaultSize);\n\t\t\t} else {\n\t\t\t\tsetSize(Math.round(containerSize / 2));\n\t\t\t}\n\t\t}, [defaultSize, isHorizontal, size]);\n\n\t\tconst handleMouseDown = React.useCallback(\n\t\t\t(e: React.MouseEvent) => {\n\t\t\t\tif (!resizable) return;\n\t\t\t\te.preventDefault();\n\t\t\t\tsetIsDragging(true);\n\t\t\t},\n\t\t\t[resizable],\n\t\t);\n\n\t\tReact.useEffect(() => {\n\t\t\tif (!isDragging) return;\n\n\t\t\tconst handleMouseMove = (e: MouseEvent) => {\n\t\t\t\tif (!containerRef.current) return;\n\n\t\t\t\tconst containerRect = containerRef.current.getBoundingClientRect();\n\t\t\t\tconst containerSize = isHorizontal\n\t\t\t\t\t? containerRect.width\n\t\t\t\t\t: containerRect.height;\n\n\t\t\t\tlet newSize = isHorizontal\n\t\t\t\t\t? e.clientX - containerRect.left\n\t\t\t\t\t: e.clientY - containerRect.top;\n\n\t\t\t\t// Apply constraints\n\t\t\t\tnewSize = Math.max(minSize, newSize);\n\t\t\t\tif (maxSize) {\n\t\t\t\t\tnewSize = Math.min(maxSize, newSize);\n\t\t\t\t}\n\t\t\t\tnewSize = Math.min(containerSize - minSize, newSize);\n\n\t\t\t\tsetSize(newSize);\n\t\t\t\tonSizeChange?.(newSize);\n\t\t\t};\n\n\t\t\tconst handleMouseUp = () => {\n\t\t\t\tsetIsDragging(false);\n\t\t\t};\n\n\t\t\tdocument.addEventListener('mousemove', handleMouseMove);\n\t\t\tdocument.addEventListener('mouseup', handleMouseUp);\n\n\t\t\treturn () => {\n\t\t\t\tdocument.removeEventListener('mousemove', handleMouseMove);\n\t\t\t\tdocument.removeEventListener('mouseup', handleMouseUp);\n\t\t\t};\n\t\t}, [isDragging, isHorizontal, minSize, maxSize, onSizeChange]);\n\n\t\tconst firstPaneStyle: React.CSSProperties = {\n\t\t\t[isHorizontal ? 'width' : 'height']:\n\t\t\t\tsize !== null ? `${size}px` : defaultSize,\n\t\t\tflexShrink: 0,\n\t\t};\n\n\t\treturn (\n\t\t\t<div\n\t\t\t\tref={(node) => {\n\t\t\t\t\t(\n\t\t\t\t\t\tcontainerRef as React.MutableRefObject<HTMLDivElement | null>\n\t\t\t\t\t).current = node;\n\t\t\t\t\tif (typeof ref === 'function') {\n\t\t\t\t\t\tref(node);\n\t\t\t\t\t} else if (ref) {\n\t\t\t\t\t\tref.current = node;\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t\tclassName={cn(\n\t\t\t\t\t'flex overflow-hidden',\n\t\t\t\t\tisHorizontal ? 'flex-row' : 'flex-col',\n\t\t\t\t\tisDragging && 'cursor-col-resize select-none',\n\t\t\t\t\tclassName,\n\t\t\t\t)}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t<div\n\t\t\t\t\tclassName={cn('overflow-auto', isHorizontal ? 'min-w-0' : 'min-h-0')}\n\t\t\t\t\tstyle={firstPaneStyle}\n\t\t\t\t>\n\t\t\t\t\t{firstPane}\n\t\t\t\t</div>\n\n\t\t\t\t{resizable && (\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t'flex shrink-0 items-center justify-center bg-border transition-colors',\n\t\t\t\t\t\t\tisHorizontal\n\t\t\t\t\t\t\t\t? 'w-1 cursor-col-resize hover:bg-border-hover active:bg-accent'\n\t\t\t\t\t\t\t\t: 'h-1 cursor-row-resize hover:bg-border-hover active:bg-accent',\n\t\t\t\t\t\t\tisDragging && 'bg-accent',\n\t\t\t\t\t\t)}\n\t\t\t\t\t\tonMouseDown={handleMouseDown}\n\t\t\t\t\t>\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t'rounded-full bg-muted-foreground/50',\n\t\t\t\t\t\t\t\tisHorizontal ? 'h-8 w-1' : 'h-1 w-8',\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\n\t\t\t\t<div\n\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t'flex-1 overflow-auto',\n\t\t\t\t\t\tisHorizontal ? 'min-w-0' : 'min-h-0',\n\t\t\t\t\t)}\n\t\t\t\t>\n\t\t\t\t\t{secondPane}\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t);\n\t},\n);\nSplitPane.displayName = 'SplitPane';\n\nexport interface SplitPanePanelProps\n\textends React.HTMLAttributes<HTMLDivElement> {}\n\nconst SplitPanePanel = React.forwardRef<HTMLDivElement, SplitPanePanelProps>(\n\t({ className, children, ...props }, ref) => {\n\t\treturn (\n\t\t\t<div ref={ref} className={cn('h-full w-full', className)} {...props}>\n\t\t\t\t{children}\n\t\t\t</div>\n\t\t);\n\t},\n);\nSplitPanePanel.displayName = 'SplitPanePanel';\n\nexport { SplitPane, SplitPanePanel };\n"],"mappings":"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"}
|
package/dist/styles/theme.cjs
CHANGED
package/dist/styles/theme.d.cts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { HttpMethod, LogLevel, StatusRange, Theme, ThemeColors, getLogLevelColor, getMethodColor, getStatusColor, theme } from "../theme-
|
|
1
|
+
import { HttpMethod, LogLevel, StatusRange, Theme, ThemeColors, getLogLevelColor, getMethodColor, getStatusColor, theme } from "../theme-BsXPj5m4.cjs";
|
|
2
2
|
export { HttpMethod, LogLevel, StatusRange, Theme, ThemeColors, getLogLevelColor, getMethodColor, getStatusColor, theme };
|
package/dist/styles/theme.d.mts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { HttpMethod, LogLevel, StatusRange, Theme, ThemeColors, getLogLevelColor, getMethodColor, getStatusColor, theme } from "../theme-
|
|
1
|
+
import { HttpMethod, LogLevel, StatusRange, Theme, ThemeColors, getLogLevelColor, getMethodColor, getStatusColor, theme } from "../theme-aIIK_kn9.mjs";
|
|
2
2
|
export { HttpMethod, LogLevel, StatusRange, Theme, ThemeColors, getLogLevelColor, getMethodColor, getStatusColor, theme };
|
package/dist/styles/theme.mjs
CHANGED