@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.
Files changed (106) hide show
  1. package/dist/button-BB4n8b0z.mjs +46 -0
  2. package/dist/button-BB4n8b0z.mjs.map +1 -0
  3. package/dist/button-BSp9VyHi.cjs +58 -0
  4. package/dist/button-BSp9VyHi.cjs.map +1 -0
  5. package/dist/chunk-CUT6urMc.cjs +30 -0
  6. package/dist/components/data-display/index.cjs +27 -0
  7. package/dist/components/data-display/index.d.cts +2 -0
  8. package/dist/components/data-display/index.d.mts +2 -0
  9. package/dist/components/data-display/index.mjs +6 -0
  10. package/dist/components/feedback/index.cjs +26 -0
  11. package/dist/components/feedback/index.d.cts +2 -0
  12. package/dist/components/feedback/index.d.mts +2 -0
  13. package/dist/components/feedback/index.mjs +6 -0
  14. package/dist/components/layout/index.cjs +26 -0
  15. package/dist/components/layout/index.d.cts +2 -0
  16. package/dist/components/layout/index.d.mts +2 -0
  17. package/dist/components/layout/index.mjs +6 -0
  18. package/dist/components/ui/index.cjs +73 -0
  19. package/dist/components/ui/index.d.cts +2 -0
  20. package/dist/components/ui/index.d.mts +2 -0
  21. package/dist/components/ui/index.mjs +7 -0
  22. package/dist/data-display-BSUj4rIc.cjs +1318 -0
  23. package/dist/data-display-BSUj4rIc.cjs.map +1 -0
  24. package/dist/data-display-IcuThGEY.mjs +1186 -0
  25. package/dist/data-display-IcuThGEY.mjs.map +1 -0
  26. package/dist/feedback-B9rTsQdJ.cjs +505 -0
  27. package/dist/feedback-B9rTsQdJ.cjs.map +1 -0
  28. package/dist/feedback-DBLrs44v.mjs +379 -0
  29. package/dist/feedback-DBLrs44v.mjs.map +1 -0
  30. package/dist/hooks/index.cjs +1 -1
  31. package/dist/hooks/index.d.cts +1 -1
  32. package/dist/hooks/index.d.mts +1 -1
  33. package/dist/hooks/index.mjs +1 -1
  34. package/dist/{hooks-DuxmSO-h.cjs → hooks-C5O7RXTd.cjs} +3 -31
  35. package/dist/{hooks-DuxmSO-h.cjs.map → hooks-C5O7RXTd.cjs.map} +1 -1
  36. package/dist/{hooks-DBc-Cw9X.mjs → hooks-Dhkovxbo.mjs} +1 -1
  37. package/dist/{hooks-DBc-Cw9X.mjs.map → hooks-Dhkovxbo.mjs.map} +1 -1
  38. package/dist/index-BHdsb44U.d.mts +102 -0
  39. package/dist/index-BHdsb44U.d.mts.map +1 -0
  40. package/dist/index-CBBJ6vmK.d.cts +154 -0
  41. package/dist/index-CBBJ6vmK.d.cts.map +1 -0
  42. package/dist/index-CcP4i-Xr.d.cts +102 -0
  43. package/dist/index-CcP4i-Xr.d.cts.map +1 -0
  44. package/dist/index-D4moB7PV.d.mts +153 -0
  45. package/dist/index-D4moB7PV.d.mts.map +1 -0
  46. package/dist/index-DDztdxvr.d.mts +329 -0
  47. package/dist/index-DDztdxvr.d.mts.map +1 -0
  48. package/dist/{index-DmtSyJ1q.d.mts → index-DTIa7Ryw.d.cts} +1 -1
  49. package/dist/{index-DmtSyJ1q.d.mts.map → index-DTIa7Ryw.d.cts.map} +1 -1
  50. package/dist/index-DsQW2bkf.d.mts +154 -0
  51. package/dist/index-DsQW2bkf.d.mts.map +1 -0
  52. package/dist/{index-QNnnyGjB.d.cts → index-DvzSne29.d.mts} +1 -1
  53. package/dist/{index-QNnnyGjB.d.cts.map → index-DvzSne29.d.mts.map} +1 -1
  54. package/dist/index-FnnlSxxr.d.cts +153 -0
  55. package/dist/index-FnnlSxxr.d.cts.map +1 -0
  56. package/dist/index-uRu0ad4_.d.cts +329 -0
  57. package/dist/index-uRu0ad4_.d.cts.map +1 -0
  58. package/dist/index.cjs +144 -2560
  59. package/dist/index.d.cts +8 -727
  60. package/dist/index.d.mts +8 -727
  61. package/dist/index.mjs +12 -2428
  62. package/dist/layout-CIIQOb1x.mjs +387 -0
  63. package/dist/layout-CIIQOb1x.mjs.map +1 -0
  64. package/dist/layout-CcO0svmw.cjs +513 -0
  65. package/dist/layout-CcO0svmw.cjs.map +1 -0
  66. package/dist/lib/utils.cjs +3 -0
  67. package/dist/lib/utils.d.cts +2 -0
  68. package/dist/lib/utils.d.mts +2 -0
  69. package/dist/lib/utils.mjs +3 -0
  70. package/dist/styles/theme.cjs +1 -1
  71. package/dist/styles/theme.d.cts +1 -1
  72. package/dist/styles/theme.d.mts +1 -1
  73. package/dist/styles/theme.mjs +1 -1
  74. package/dist/table-CrFSBSDe.mjs +129 -0
  75. package/dist/table-CrFSBSDe.mjs.map +1 -0
  76. package/dist/table-DNX6iqH5.cjs +237 -0
  77. package/dist/table-DNX6iqH5.cjs.map +1 -0
  78. package/dist/{theme-BRGSS8qx.cjs → theme-BBoDSysS.cjs} +1 -1
  79. package/dist/{theme-BRGSS8qx.cjs.map → theme-BBoDSysS.cjs.map} +1 -1
  80. package/dist/{theme-vpDwDfcR.d.mts → theme-BsXPj5m4.d.cts} +1 -1
  81. package/dist/{theme-B5mGkTlU.d.cts.map → theme-BsXPj5m4.d.cts.map} +1 -1
  82. package/dist/{theme-DAiFBbyM.mjs → theme-DI0sgbjj.mjs} +1 -1
  83. package/dist/{theme-DAiFBbyM.mjs.map → theme-DI0sgbjj.mjs.map} +1 -1
  84. package/dist/{theme-B5mGkTlU.d.cts → theme-aIIK_kn9.d.mts} +1 -1
  85. package/dist/{theme-vpDwDfcR.d.mts.map → theme-aIIK_kn9.d.mts.map} +1 -1
  86. package/dist/tooltip-BuTZvLTX.cjs +82 -0
  87. package/dist/tooltip-BuTZvLTX.cjs.map +1 -0
  88. package/dist/tooltip-z8o59BXq.mjs +46 -0
  89. package/dist/tooltip-z8o59BXq.mjs.map +1 -0
  90. package/dist/ui-B6Pj_ZAW.mjs +296 -0
  91. package/dist/ui-B6Pj_ZAW.mjs.map +1 -0
  92. package/dist/ui-PFNfvwdv.cjs +542 -0
  93. package/dist/ui-PFNfvwdv.cjs.map +1 -0
  94. package/dist/utils-0J5jzmnT.mjs +11 -0
  95. package/dist/utils-0J5jzmnT.mjs.map +1 -0
  96. package/dist/utils-3XfDEz8-.d.cts +9 -0
  97. package/dist/utils-3XfDEz8-.d.cts.map +1 -0
  98. package/dist/utils-CgSGIxhd.d.mts +9 -0
  99. package/dist/utils-CgSGIxhd.d.mts.map +1 -0
  100. package/dist/utils-DTuzb7hO.cjs +17 -0
  101. package/dist/utils-DTuzb7hO.cjs.map +1 -0
  102. package/package.json +1 -1
  103. package/dist/index.cjs.map +0 -1
  104. package/dist/index.d.cts.map +0 -1
  105. package/dist/index.d.mts.map +0 -1
  106. 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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"}
@@ -0,0 +1,3 @@
1
+ const require_utils = require('../utils-DTuzb7hO.cjs');
2
+
3
+ exports.cn = require_utils.cn;
@@ -0,0 +1,2 @@
1
+ import { cn } from "../utils-3XfDEz8-.cjs";
2
+ export { cn };
@@ -0,0 +1,2 @@
1
+ import { cn } from "../utils-CgSGIxhd.mjs";
2
+ export { cn };
@@ -0,0 +1,3 @@
1
+ import { cn } from "../utils-0J5jzmnT.mjs";
2
+
3
+ export { cn };
@@ -1,4 +1,4 @@
1
- const require_theme = require('../theme-BRGSS8qx.cjs');
1
+ const require_theme = require('../theme-BBoDSysS.cjs');
2
2
 
3
3
  exports.getLogLevelColor = require_theme.getLogLevelColor;
4
4
  exports.getMethodColor = require_theme.getMethodColor;
@@ -1,2 +1,2 @@
1
- import { HttpMethod, LogLevel, StatusRange, Theme, ThemeColors, getLogLevelColor, getMethodColor, getStatusColor, theme } from "../theme-B5mGkTlU.cjs";
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 };
@@ -1,2 +1,2 @@
1
- import { HttpMethod, LogLevel, StatusRange, Theme, ThemeColors, getLogLevelColor, getMethodColor, getStatusColor, theme } from "../theme-vpDwDfcR.mjs";
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 };
@@ -1,3 +1,3 @@
1
- import { getLogLevelColor, getMethodColor, getStatusColor, theme } from "../theme-DAiFBbyM.mjs";
1
+ import { getLogLevelColor, getMethodColor, getStatusColor, theme } from "../theme-DI0sgbjj.mjs";
2
2
 
3
3
  export { getLogLevelColor, getMethodColor, getStatusColor, theme };