@loopstack/loopstack-studio 0.21.0-rc.0 → 0.21.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. package/dist/components/LoadingCentered.js +28 -0
  2. package/dist/components/data-table/DataList.js +102 -102
  3. package/dist/components/data-table/DataTable.js +3 -3
  4. package/dist/components/dynamic-form/fields/RadioField.js +3 -3
  5. package/dist/components/dynamic-form/fields/SliderField.js +13 -13
  6. package/dist/components/dynamic-form/fields/SwitchField.js +1 -1
  7. package/dist/components/dynamic-form/fields/TextareaField.js +4 -4
  8. package/dist/components/index.js +45 -0
  9. package/dist/components/messages/CompletionMessagePaper.js +110 -0
  10. package/dist/components/snackbars/ErrorSnackbar.js +1 -1
  11. package/dist/components/ui/DiscordLogo.js +31 -0
  12. package/dist/components/ui/GoogleLogo.js +44 -0
  13. package/dist/components/ui/accordion.js +64 -0
  14. package/dist/components/ui/alert-dialog.js +91 -82
  15. package/dist/components/ui/alert.js +50 -0
  16. package/dist/components/ui/avatar.js +42 -0
  17. package/dist/components/ui/badge.js +1 -1
  18. package/dist/components/ui/breadcrumb.js +76 -56
  19. package/dist/components/ui/card.js +79 -19
  20. package/dist/components/ui/dialog.js +89 -47
  21. package/dist/components/ui/drawer.js +122 -0
  22. package/dist/components/ui/dropdown-menu.js +190 -0
  23. package/dist/components/ui/popover.js +47 -0
  24. package/dist/components/ui/scroll-area.js +50 -0
  25. package/dist/components/ui/select.js +115 -82
  26. package/dist/components/ui/separator.js +20 -0
  27. package/dist/components/ui/sheet.js +87 -57
  28. package/dist/components/ui/sidebar.js +557 -0
  29. package/dist/components/ui/skeleton.js +16 -0
  30. package/dist/components/ui/table.js +85 -61
  31. package/dist/features/health/LocalHealthCheck.js +1 -1
  32. package/dist/features/workspaces/Workspaces.js +1 -1
  33. package/dist/features/workspaces/components/CreateWorkspace.js +4 -4
  34. package/dist/features/workspaces/components/ExecutionTimeline.js +1 -1
  35. package/dist/features/workspaces/components/PipelineForm.js +2 -2
  36. package/dist/hooks/useApi.js +1 -1
  37. package/dist/index.d.ts +751 -9
  38. package/dist/index.js +47 -1
  39. package/dist/loopstack-studio.css +1 -1
  40. package/dist/node_modules/katex/dist/katex.js +717 -861
  41. package/dist/node_modules/vaul/dist/index.js +912 -0
  42. package/dist/pages/WorkspacePage.js +1 -1
  43. package/package.json +16 -16
@@ -0,0 +1,557 @@
1
+ "use client";
2
+ import { useIsMobile } from "../../hooks/use-mobile.js";
3
+ import { cn } from "../../lib/utils.js";
4
+ import { Button } from "./button.js";
5
+ import { Input } from "./input.js";
6
+ import { Separator } from "./separator.js";
7
+ import { Sheet, SheetContent, SheetDescription, SheetHeader, SheetTitle } from "./sheet.js";
8
+ import { Skeleton } from "./skeleton.js";
9
+ import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from "./tooltip.js";
10
+ import { c } from "react/compiler-runtime";
11
+ import * as React$1 from "react";
12
+ import { jsx, jsxs } from "react/jsx-runtime";
13
+ import { PanelLeftIcon } from "lucide-react";
14
+ import { Slot } from "@radix-ui/react-slot";
15
+ import { cva } from "class-variance-authority";
16
+ var SIDEBAR_COOKIE_NAME = "sidebar_state", SIDEBAR_COOKIE_MAX_AGE = 3600 * 24 * 7, SIDEBAR_WIDTH = "16rem", SIDEBAR_WIDTH_MOBILE = "18rem", SIDEBAR_WIDTH_ICON = "3rem", SIDEBAR_KEYBOARD_SHORTCUT = "b", SidebarContext = React$1.createContext(null);
17
+ function useSidebar() {
18
+ let t = React$1.useContext(SidebarContext);
19
+ if (!t) throw Error("useSidebar must be used within a SidebarProvider.");
20
+ return t;
21
+ }
22
+ function SidebarProvider(m) {
23
+ let h = c(36), g, _, v, y, b, x, S;
24
+ h[0] === m ? (g = h[1], _ = h[2], v = h[3], y = h[4], b = h[5], x = h[6], S = h[7]) : ({defaultOpen: S, open: v, onOpenChange: b, className: _, style: x, children: g, ...y} = m, h[0] = m, h[1] = g, h[2] = _, h[3] = v, h[4] = y, h[5] = b, h[6] = x, h[7] = S);
25
+ let C = S === void 0 ? !0 : S, w = useIsMobile(), [E, O] = React$1.useState(!1), [k, A] = React$1.useState(C), j = v ?? k, F;
26
+ h[8] !== j || h[9] !== b ? (F = (t) => {
27
+ let p = typeof t == "function" ? t(j) : t;
28
+ b ? b(p) : A(p), document.cookie = `${SIDEBAR_COOKIE_NAME}=${p}; path=/; max-age=${SIDEBAR_COOKIE_MAX_AGE}`;
29
+ }, h[8] = j, h[9] = b, h[10] = F) : F = h[10];
30
+ let z = F, B;
31
+ h[11] !== w || h[12] !== z ? (B = () => w ? O(_temp) : z(_temp2), h[11] = w, h[12] = z, h[13] = B) : B = h[13];
32
+ let U = B, W, G;
33
+ h[14] === U ? (W = h[15], G = h[16]) : (W = () => {
34
+ let t = (t) => {
35
+ t.key === SIDEBAR_KEYBOARD_SHORTCUT && (t.metaKey || t.ctrlKey) && (t.preventDefault(), U());
36
+ };
37
+ return window.addEventListener("keydown", t), () => window.removeEventListener("keydown", t);
38
+ }, G = [U], h[14] = U, h[15] = W, h[16] = G), React$1.useEffect(W, G);
39
+ let K = j ? "expanded" : "collapsed", q;
40
+ h[17] !== w || h[18] !== j || h[19] !== E || h[20] !== z || h[21] !== K || h[22] !== U ? (q = {
41
+ state: K,
42
+ open: j,
43
+ setOpen: z,
44
+ isMobile: w,
45
+ openMobile: E,
46
+ setOpenMobile: O,
47
+ toggleSidebar: U
48
+ }, h[17] = w, h[18] = j, h[19] = E, h[20] = z, h[21] = K, h[22] = U, h[23] = q) : q = h[23];
49
+ let J = q, Y;
50
+ h[24] === x ? Y = h[25] : (Y = {
51
+ "--sidebar-width": SIDEBAR_WIDTH,
52
+ "--sidebar-width-icon": SIDEBAR_WIDTH_ICON,
53
+ ...x
54
+ }, h[24] = x, h[25] = Y);
55
+ let X = Y, Z;
56
+ h[26] === _ ? Z = h[27] : (Z = cn("group/sidebar-wrapper has-data-[variant=inset]:bg-sidebar flex min-h-svh w-full", _), h[26] = _, h[27] = Z);
57
+ let Q;
58
+ h[28] !== g || h[29] !== y || h[30] !== X || h[31] !== Z ? (Q = /* @__PURE__ */ jsx(TooltipProvider, {
59
+ delayDuration: 0,
60
+ children: /* @__PURE__ */ jsx("div", {
61
+ "data-slot": "sidebar-wrapper",
62
+ style: X,
63
+ className: Z,
64
+ ...y,
65
+ children: g
66
+ })
67
+ }), h[28] = g, h[29] = y, h[30] = X, h[31] = Z, h[32] = Q) : Q = h[32];
68
+ let $;
69
+ return h[33] !== J || h[34] !== Q ? ($ = /* @__PURE__ */ jsx(SidebarContext.Provider, {
70
+ value: J,
71
+ children: Q
72
+ }), h[33] = J, h[34] = Q, h[35] = $) : $ = h[35], $;
73
+ }
74
+ function _temp2(t) {
75
+ return !t;
76
+ }
77
+ function _temp(t) {
78
+ return !t;
79
+ }
80
+ function Sidebar(t) {
81
+ let m = c(46), h, g, S, C, w, T;
82
+ m[0] === t ? (h = m[1], g = m[2], S = m[3], C = m[4], w = m[5], T = m[6]) : ({side: C, variant: w, collapsible: T, className: g, children: h, ...S} = t, m[0] = t, m[1] = h, m[2] = g, m[3] = S, m[4] = C, m[5] = w, m[6] = T);
83
+ let E = C === void 0 ? "left" : C, D = w === void 0 ? "sidebar" : w, k = T === void 0 ? "offcanvas" : T, { isMobile: A, state: j, openMobile: M, setOpenMobile: N } = useSidebar();
84
+ if (k === "none") {
85
+ let t;
86
+ m[7] === g ? t = m[8] : (t = cn("bg-sidebar text-sidebar-foreground flex h-full w-(--sidebar-width) flex-col", g), m[7] = g, m[8] = t);
87
+ let _;
88
+ return m[9] !== h || m[10] !== S || m[11] !== t ? (_ = /* @__PURE__ */ jsx("div", {
89
+ "data-slot": "sidebar",
90
+ className: t,
91
+ ...S,
92
+ children: h
93
+ }), m[9] = h, m[10] = S, m[11] = t, m[12] = _) : _ = m[12], _;
94
+ }
95
+ if (A) {
96
+ let t;
97
+ m[13] === Symbol.for("react.memo_cache_sentinel") ? (t = { "--sidebar-width": SIDEBAR_WIDTH_MOBILE }, m[13] = t) : t = m[13];
98
+ let p;
99
+ m[14] === Symbol.for("react.memo_cache_sentinel") ? (p = /* @__PURE__ */ jsxs(SheetHeader, {
100
+ className: "sr-only",
101
+ children: [/* @__PURE__ */ jsx(SheetTitle, { children: "Sidebar" }), /* @__PURE__ */ jsx(SheetDescription, { children: "Displays the mobile sidebar." })]
102
+ }), m[14] = p) : p = m[14];
103
+ let g;
104
+ m[15] === h ? g = m[16] : (g = /* @__PURE__ */ jsx("div", {
105
+ className: "flex h-full w-full flex-col",
106
+ children: h
107
+ }), m[15] = h, m[16] = g);
108
+ let C;
109
+ m[17] !== E || m[18] !== g ? (C = /* @__PURE__ */ jsxs(SheetContent, {
110
+ "data-sidebar": "sidebar",
111
+ "data-slot": "sidebar",
112
+ "data-mobile": "true",
113
+ className: "bg-sidebar text-sidebar-foreground w-(--sidebar-width) p-0 [&>button]:hidden",
114
+ style: t,
115
+ side: E,
116
+ children: [p, g]
117
+ }), m[17] = E, m[18] = g, m[19] = C) : C = m[19];
118
+ let w;
119
+ return m[20] !== M || m[21] !== S || m[22] !== N || m[23] !== C ? (w = /* @__PURE__ */ jsx(Sheet, {
120
+ open: M,
121
+ onOpenChange: N,
122
+ ...S,
123
+ children: C
124
+ }), m[20] = M, m[21] = S, m[22] = N, m[23] = C, m[24] = w) : w = m[24], w;
125
+ }
126
+ let P = j === "collapsed" ? k : "", I = D === "floating" || D === "inset" ? "group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]" : "group-data-[collapsible=icon]:w-(--sidebar-width-icon)", L;
127
+ m[25] === I ? L = m[26] : (L = cn("relative w-(--sidebar-width) bg-transparent transition-[width] duration-200 ease-linear", "group-data-[collapsible=offcanvas]:w-0", "group-data-[side=right]:rotate-180", I), m[25] = I, m[26] = L);
128
+ let R;
129
+ m[27] === L ? R = m[28] : (R = /* @__PURE__ */ jsx("div", {
130
+ "data-slot": "sidebar-gap",
131
+ className: L
132
+ }), m[27] = L, m[28] = R);
133
+ let B = E === "left" ? "left-0 group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]" : "right-0 group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)]", V = D === "floating" || D === "inset" ? "p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)]" : "group-data-[collapsible=icon]:w-(--sidebar-width-icon) group-data-[side=left]:border-r group-data-[side=right]:border-l", H;
134
+ m[29] !== g || m[30] !== B || m[31] !== V ? (H = cn("fixed inset-y-0 z-10 hidden h-svh w-(--sidebar-width) transition-[left,right,width] duration-200 ease-linear md:flex", B, V, g), m[29] = g, m[30] = B, m[31] = V, m[32] = H) : H = m[32];
135
+ let U;
136
+ m[33] === h ? U = m[34] : (U = /* @__PURE__ */ jsx("div", {
137
+ "data-sidebar": "sidebar",
138
+ "data-slot": "sidebar-inner",
139
+ className: "bg-sidebar group-data-[variant=floating]:border-sidebar-border flex h-full w-full flex-col group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:border group-data-[variant=floating]:shadow-sm",
140
+ children: h
141
+ }), m[33] = h, m[34] = U);
142
+ let W;
143
+ m[35] !== S || m[36] !== H || m[37] !== U ? (W = /* @__PURE__ */ jsx("div", {
144
+ "data-slot": "sidebar-container",
145
+ className: H,
146
+ ...S,
147
+ children: U
148
+ }), m[35] = S, m[36] = H, m[37] = U, m[38] = W) : W = m[38];
149
+ let G;
150
+ return m[39] !== E || m[40] !== j || m[41] !== W || m[42] !== P || m[43] !== R || m[44] !== D ? (G = /* @__PURE__ */ jsxs("div", {
151
+ className: "group peer text-sidebar-foreground hidden md:block",
152
+ "data-state": j,
153
+ "data-collapsible": P,
154
+ "data-variant": D,
155
+ "data-side": E,
156
+ "data-slot": "sidebar",
157
+ children: [R, W]
158
+ }), m[39] = E, m[40] = j, m[41] = W, m[42] = P, m[43] = R, m[44] = D, m[45] = G) : G = m[45], G;
159
+ }
160
+ function SidebarTrigger(t) {
161
+ let h = c(15), g, _, v;
162
+ h[0] === t ? (g = h[1], _ = h[2], v = h[3]) : ({className: g, onClick: _, ...v} = t, h[0] = t, h[1] = g, h[2] = _, h[3] = v);
163
+ let { toggleSidebar: y } = useSidebar(), b;
164
+ h[4] === g ? b = h[5] : (b = cn("size-7", g), h[4] = g, h[5] = b);
165
+ let x;
166
+ h[6] !== _ || h[7] !== y ? (x = (t) => {
167
+ _?.(t), y();
168
+ }, h[6] = _, h[7] = y, h[8] = x) : x = h[8];
169
+ let S, C;
170
+ h[9] === Symbol.for("react.memo_cache_sentinel") ? (S = /* @__PURE__ */ jsx(PanelLeftIcon, {}), C = /* @__PURE__ */ jsx("span", {
171
+ className: "sr-only",
172
+ children: "Toggle Sidebar"
173
+ }), h[9] = S, h[10] = C) : (S = h[9], C = h[10]);
174
+ let w;
175
+ return h[11] !== v || h[12] !== b || h[13] !== x ? (w = /* @__PURE__ */ jsxs(Button, {
176
+ "data-sidebar": "trigger",
177
+ "data-slot": "sidebar-trigger",
178
+ variant: "ghost",
179
+ size: "icon",
180
+ className: b,
181
+ onClick: x,
182
+ ...v,
183
+ children: [S, C]
184
+ }), h[11] = v, h[12] = b, h[13] = x, h[14] = w) : w = h[14], w;
185
+ }
186
+ function SidebarRail(t) {
187
+ let m = c(9), h, g;
188
+ m[0] === t ? (h = m[1], g = m[2]) : ({className: h, ...g} = t, m[0] = t, m[1] = h, m[2] = g);
189
+ let { toggleSidebar: _ } = useSidebar(), v;
190
+ m[3] === h ? v = m[4] : (v = cn("hover:after:bg-sidebar-border absolute inset-y-0 z-20 hidden w-4 -translate-x-1/2 transition-all ease-linear group-data-[side=left]:-right-4 group-data-[side=right]:left-0 after:absolute after:inset-y-0 after:left-1/2 after:w-[2px] sm:flex", "in-data-[side=left]:cursor-w-resize in-data-[side=right]:cursor-e-resize", "[[data-side=left][data-state=collapsed]_&]:cursor-e-resize [[data-side=right][data-state=collapsed]_&]:cursor-w-resize", "hover:group-data-[collapsible=offcanvas]:bg-sidebar group-data-[collapsible=offcanvas]:translate-x-0 group-data-[collapsible=offcanvas]:after:left-full", "[[data-side=left][data-collapsible=offcanvas]_&]:-right-2", "[[data-side=right][data-collapsible=offcanvas]_&]:-left-2", h), m[3] = h, m[4] = v);
191
+ let y;
192
+ return m[5] !== g || m[6] !== v || m[7] !== _ ? (y = /* @__PURE__ */ jsx("button", {
193
+ "data-sidebar": "rail",
194
+ "data-slot": "sidebar-rail",
195
+ "aria-label": "Toggle Sidebar",
196
+ tabIndex: -1,
197
+ onClick: _,
198
+ title: "Toggle Sidebar",
199
+ className: v,
200
+ ...g
201
+ }), m[5] = g, m[6] = v, m[7] = _, m[8] = y) : y = m[8], y;
202
+ }
203
+ function SidebarInset(t) {
204
+ let m = c(8), h, g;
205
+ m[0] === t ? (h = m[1], g = m[2]) : ({className: h, ...g} = t, m[0] = t, m[1] = h, m[2] = g);
206
+ let _;
207
+ m[3] === h ? _ = m[4] : (_ = cn("bg-background relative flex w-full flex-1 flex-col overflow-auto", "md:peer-data-[variant=inset]:m-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow-sm md:peer-data-[variant=inset]:peer-data-[state=collapsed]:ml-2", h), m[3] = h, m[4] = _);
208
+ let v;
209
+ return m[5] !== g || m[6] !== _ ? (v = /* @__PURE__ */ jsx("main", {
210
+ "data-slot": "sidebar-inset",
211
+ className: _,
212
+ ...g
213
+ }), m[5] = g, m[6] = _, m[7] = v) : v = m[7], v;
214
+ }
215
+ function SidebarInsetDiv(t) {
216
+ let m = c(8), h, g;
217
+ m[0] === t ? (h = m[1], g = m[2]) : ({className: h, ...g} = t, m[0] = t, m[1] = h, m[2] = g);
218
+ let _;
219
+ m[3] === h ? _ = m[4] : (_ = cn("bg-background relative flex w-full flex-1 flex-col overflow-auto", "md:peer-data-[variant=inset]:m-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow-sm md:peer-data-[variant=inset]:peer-data-[state=collapsed]:ml-2", h), m[3] = h, m[4] = _);
220
+ let v;
221
+ return m[5] !== g || m[6] !== _ ? (v = /* @__PURE__ */ jsx("div", {
222
+ "data-slot": "sidebar-inset",
223
+ className: _,
224
+ ...g
225
+ }), m[5] = g, m[6] = _, m[7] = v) : v = m[7], v;
226
+ }
227
+ function SidebarInput(t) {
228
+ let m = c(8), g, _;
229
+ m[0] === t ? (g = m[1], _ = m[2]) : ({className: g, ..._} = t, m[0] = t, m[1] = g, m[2] = _);
230
+ let v;
231
+ m[3] === g ? v = m[4] : (v = cn("bg-background h-8 w-full shadow-none", g), m[3] = g, m[4] = v);
232
+ let y;
233
+ return m[5] !== _ || m[6] !== v ? (y = /* @__PURE__ */ jsx(Input, {
234
+ "data-slot": "sidebar-input",
235
+ "data-sidebar": "input",
236
+ className: v,
237
+ ..._
238
+ }), m[5] = _, m[6] = v, m[7] = y) : y = m[7], y;
239
+ }
240
+ function SidebarHeader(t) {
241
+ let m = c(8), h, g;
242
+ m[0] === t ? (h = m[1], g = m[2]) : ({className: h, ...g} = t, m[0] = t, m[1] = h, m[2] = g);
243
+ let _;
244
+ m[3] === h ? _ = m[4] : (_ = cn("flex flex-col gap-2 p-2", h), m[3] = h, m[4] = _);
245
+ let v;
246
+ return m[5] !== g || m[6] !== _ ? (v = /* @__PURE__ */ jsx("div", {
247
+ "data-slot": "sidebar-header",
248
+ "data-sidebar": "header",
249
+ className: _,
250
+ ...g
251
+ }), m[5] = g, m[6] = _, m[7] = v) : v = m[7], v;
252
+ }
253
+ function SidebarFooter(t) {
254
+ let m = c(8), h, g;
255
+ m[0] === t ? (h = m[1], g = m[2]) : ({className: h, ...g} = t, m[0] = t, m[1] = h, m[2] = g);
256
+ let _;
257
+ m[3] === h ? _ = m[4] : (_ = cn("flex flex-col gap-2 p-2", h), m[3] = h, m[4] = _);
258
+ let v;
259
+ return m[5] !== g || m[6] !== _ ? (v = /* @__PURE__ */ jsx("div", {
260
+ "data-slot": "sidebar-footer",
261
+ "data-sidebar": "footer",
262
+ className: _,
263
+ ...g
264
+ }), m[5] = g, m[6] = _, m[7] = v) : v = m[7], v;
265
+ }
266
+ function SidebarSeparator(t) {
267
+ let m = c(8), h, _;
268
+ m[0] === t ? (h = m[1], _ = m[2]) : ({className: h, ..._} = t, m[0] = t, m[1] = h, m[2] = _);
269
+ let v;
270
+ m[3] === h ? v = m[4] : (v = cn("bg-sidebar-border mx-2 w-auto", h), m[3] = h, m[4] = v);
271
+ let y;
272
+ return m[5] !== _ || m[6] !== v ? (y = /* @__PURE__ */ jsx(Separator, {
273
+ "data-slot": "sidebar-separator",
274
+ "data-sidebar": "separator",
275
+ className: v,
276
+ ..._
277
+ }), m[5] = _, m[6] = v, m[7] = y) : y = m[7], y;
278
+ }
279
+ function SidebarContent(t) {
280
+ let m = c(8), h, g;
281
+ m[0] === t ? (h = m[1], g = m[2]) : ({className: h, ...g} = t, m[0] = t, m[1] = h, m[2] = g);
282
+ let _;
283
+ m[3] === h ? _ = m[4] : (_ = cn("flex min-h-0 flex-1 flex-col gap-2 overflow-auto group-data-[collapsible=icon]:overflow-hidden", h), m[3] = h, m[4] = _);
284
+ let v;
285
+ return m[5] !== g || m[6] !== _ ? (v = /* @__PURE__ */ jsx("div", {
286
+ "data-slot": "sidebar-content",
287
+ "data-sidebar": "content",
288
+ className: _,
289
+ ...g
290
+ }), m[5] = g, m[6] = _, m[7] = v) : v = m[7], v;
291
+ }
292
+ function SidebarGroup(t) {
293
+ let m = c(8), h, g;
294
+ m[0] === t ? (h = m[1], g = m[2]) : ({className: h, ...g} = t, m[0] = t, m[1] = h, m[2] = g);
295
+ let _;
296
+ m[3] === h ? _ = m[4] : (_ = cn("relative flex w-full min-w-0 flex-col p-2", h), m[3] = h, m[4] = _);
297
+ let v;
298
+ return m[5] !== g || m[6] !== _ ? (v = /* @__PURE__ */ jsx("div", {
299
+ "data-slot": "sidebar-group",
300
+ "data-sidebar": "group",
301
+ className: _,
302
+ ...g
303
+ }), m[5] = g, m[6] = _, m[7] = v) : v = m[7], v;
304
+ }
305
+ function SidebarGroupLabel(t) {
306
+ let m = c(10), h, g, _;
307
+ m[0] === t ? (h = m[1], g = m[2], _ = m[3]) : ({className: h, asChild: _, ...g} = t, m[0] = t, m[1] = h, m[2] = g, m[3] = _);
308
+ let v = _ !== void 0 && _ ? Slot : "div", y;
309
+ m[4] === h ? y = m[5] : (y = cn("text-sidebar-foreground/70 ring-sidebar-ring flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium outline-hidden transition-[margin,opacity] duration-200 ease-linear focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0", "group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0", h), m[4] = h, m[5] = y);
310
+ let b;
311
+ return m[6] !== v || m[7] !== g || m[8] !== y ? (b = /* @__PURE__ */ jsx(v, {
312
+ "data-slot": "sidebar-group-label",
313
+ "data-sidebar": "group-label",
314
+ className: y,
315
+ ...g
316
+ }), m[6] = v, m[7] = g, m[8] = y, m[9] = b) : b = m[9], b;
317
+ }
318
+ function SidebarGroupAction(t) {
319
+ let m = c(10), h, g, _;
320
+ m[0] === t ? (h = m[1], g = m[2], _ = m[3]) : ({className: h, asChild: _, ...g} = t, m[0] = t, m[1] = h, m[2] = g, m[3] = _);
321
+ let v = _ !== void 0 && _ ? Slot : "button", y;
322
+ m[4] === h ? y = m[5] : (y = cn("text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground absolute top-3.5 right-3 flex aspect-square w-5 items-center justify-center rounded-md p-0 outline-hidden transition-transform focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0", "after:absolute after:-inset-2 md:after:hidden", "group-data-[collapsible=icon]:hidden", h), m[4] = h, m[5] = y);
323
+ let b;
324
+ return m[6] !== v || m[7] !== g || m[8] !== y ? (b = /* @__PURE__ */ jsx(v, {
325
+ "data-slot": "sidebar-group-action",
326
+ "data-sidebar": "group-action",
327
+ className: y,
328
+ ...g
329
+ }), m[6] = v, m[7] = g, m[8] = y, m[9] = b) : b = m[9], b;
330
+ }
331
+ function SidebarGroupContent(t) {
332
+ let m = c(8), h, g;
333
+ m[0] === t ? (h = m[1], g = m[2]) : ({className: h, ...g} = t, m[0] = t, m[1] = h, m[2] = g);
334
+ let _;
335
+ m[3] === h ? _ = m[4] : (_ = cn("w-full text-sm", h), m[3] = h, m[4] = _);
336
+ let v;
337
+ return m[5] !== g || m[6] !== _ ? (v = /* @__PURE__ */ jsx("div", {
338
+ "data-slot": "sidebar-group-content",
339
+ "data-sidebar": "group-content",
340
+ className: _,
341
+ ...g
342
+ }), m[5] = g, m[6] = _, m[7] = v) : v = m[7], v;
343
+ }
344
+ function SidebarMenu(t) {
345
+ let m = c(8), h, g;
346
+ m[0] === t ? (h = m[1], g = m[2]) : ({className: h, ...g} = t, m[0] = t, m[1] = h, m[2] = g);
347
+ let _;
348
+ m[3] === h ? _ = m[4] : (_ = cn("flex w-full min-w-0 flex-col gap-1", h), m[3] = h, m[4] = _);
349
+ let v;
350
+ return m[5] !== g || m[6] !== _ ? (v = /* @__PURE__ */ jsx("ul", {
351
+ "data-slot": "sidebar-menu",
352
+ "data-sidebar": "menu",
353
+ className: _,
354
+ ...g
355
+ }), m[5] = g, m[6] = _, m[7] = v) : v = m[7], v;
356
+ }
357
+ function SidebarMenuItem(t) {
358
+ let m = c(8), h, g;
359
+ m[0] === t ? (h = m[1], g = m[2]) : ({className: h, ...g} = t, m[0] = t, m[1] = h, m[2] = g);
360
+ let _;
361
+ m[3] === h ? _ = m[4] : (_ = cn("group/menu-item relative", h), m[3] = h, m[4] = _);
362
+ let v;
363
+ return m[5] !== g || m[6] !== _ ? (v = /* @__PURE__ */ jsx("li", {
364
+ "data-slot": "sidebar-menu-item",
365
+ "data-sidebar": "menu-item",
366
+ className: _,
367
+ ...g
368
+ }), m[5] = g, m[6] = _, m[7] = v) : v = m[7], v;
369
+ }
370
+ var sidebarMenuButtonVariants = cva("peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm outline-hidden ring-sidebar-ring transition-[width,height,padding] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 group-has-data-[sidebar=menu-action]/menu-item:pr-8 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-accent data-[active=true]:font-medium data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground group-data-[collapsible=icon]:size-8! group-data-[collapsible=icon]:p-2! [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0", {
371
+ variants: {
372
+ variant: {
373
+ default: "hover:bg-sidebar-accent hover:text-sidebar-accent-foreground",
374
+ outline: "bg-background shadow-[0_0_0_1px_hsl(var(--sidebar-border))] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground hover:shadow-[0_0_0_1px_hsl(var(--sidebar-accent))]"
375
+ },
376
+ size: {
377
+ default: "h-8 text-sm",
378
+ sm: "h-7 text-xs",
379
+ lg: "h-12 text-sm group-data-[collapsible=icon]:p-0!"
380
+ }
381
+ },
382
+ defaultVariants: {
383
+ variant: "default",
384
+ size: "default"
385
+ }
386
+ });
387
+ function SidebarMenuButton(t) {
388
+ let m = c(28), h, g, _, v, y, b, x;
389
+ m[0] === t ? (h = m[1], g = m[2], _ = m[3], v = m[4], y = m[5], b = m[6], x = m[7]) : ({asChild: _, isActive: v, variant: y, size: b, tooltip: x, className: h, ...g} = t, m[0] = t, m[1] = h, m[2] = g, m[3] = _, m[4] = v, m[5] = y, m[6] = b, m[7] = x);
390
+ let S = _ === void 0 ? !1 : _, T = v === void 0 ? !1 : v, D = y === void 0 ? "default" : y, k = b === void 0 ? "default" : b, j = S ? Slot : "button", { isMobile: M, state: N } = useSidebar(), P;
391
+ m[8] !== h || m[9] !== k || m[10] !== D ? (P = cn(sidebarMenuButtonVariants({
392
+ variant: D,
393
+ size: k
394
+ }), h), m[8] = h, m[9] = k, m[10] = D, m[11] = P) : P = m[11];
395
+ let F;
396
+ m[12] !== j || m[13] !== T || m[14] !== g || m[15] !== k || m[16] !== P ? (F = /* @__PURE__ */ jsx(j, {
397
+ "data-slot": "sidebar-menu-button",
398
+ "data-sidebar": "menu-button",
399
+ "data-size": k,
400
+ "data-active": T,
401
+ className: P,
402
+ ...g
403
+ }), m[12] = j, m[13] = T, m[14] = g, m[15] = k, m[16] = P, m[17] = F) : F = m[17];
404
+ let I = F;
405
+ if (!x) return I;
406
+ if (typeof x == "string") {
407
+ let t;
408
+ m[18] === x ? t = m[19] : (t = { children: x }, m[18] = x, m[19] = t), x = t;
409
+ }
410
+ let L;
411
+ m[20] === I ? L = m[21] : (L = /* @__PURE__ */ jsx(TooltipTrigger, {
412
+ asChild: !0,
413
+ children: I
414
+ }), m[20] = I, m[21] = L);
415
+ let R = N !== "collapsed" || M, B;
416
+ m[22] !== R || m[23] !== x ? (B = /* @__PURE__ */ jsx(TooltipContent, {
417
+ side: "right",
418
+ align: "center",
419
+ hidden: R,
420
+ ...x
421
+ }), m[22] = R, m[23] = x, m[24] = B) : B = m[24];
422
+ let V;
423
+ return m[25] !== L || m[26] !== B ? (V = /* @__PURE__ */ jsxs(Tooltip, { children: [L, B] }), m[25] = L, m[26] = B, m[27] = V) : V = m[27], V;
424
+ }
425
+ function SidebarMenuDiv(t) {
426
+ let m = c(28), h, g, _, v, y, b, x;
427
+ m[0] === t ? (h = m[1], g = m[2], _ = m[3], v = m[4], y = m[5], b = m[6], x = m[7]) : ({asChild: _, isActive: v, variant: y, size: b, tooltip: x, className: h, ...g} = t, m[0] = t, m[1] = h, m[2] = g, m[3] = _, m[4] = v, m[5] = y, m[6] = b, m[7] = x);
428
+ let S = _ === void 0 ? !1 : _, T = v === void 0 ? !1 : v, D = y === void 0 ? "default" : y, k = b === void 0 ? "default" : b, j = S ? Slot : "div", { isMobile: M, state: N } = useSidebar(), P;
429
+ m[8] !== h || m[9] !== k || m[10] !== D ? (P = cn(sidebarMenuButtonVariants({
430
+ variant: D,
431
+ size: k
432
+ }), h), m[8] = h, m[9] = k, m[10] = D, m[11] = P) : P = m[11];
433
+ let F;
434
+ m[12] !== j || m[13] !== T || m[14] !== g || m[15] !== k || m[16] !== P ? (F = /* @__PURE__ */ jsx(j, {
435
+ "data-slot": "sidebar-menu-button",
436
+ "data-sidebar": "menu-button",
437
+ "data-size": k,
438
+ "data-active": T,
439
+ className: P,
440
+ ...g
441
+ }), m[12] = j, m[13] = T, m[14] = g, m[15] = k, m[16] = P, m[17] = F) : F = m[17];
442
+ let I = F;
443
+ if (!x) return I;
444
+ if (typeof x == "string") {
445
+ let t;
446
+ m[18] === x ? t = m[19] : (t = { children: x }, m[18] = x, m[19] = t), x = t;
447
+ }
448
+ let L;
449
+ m[20] === I ? L = m[21] : (L = /* @__PURE__ */ jsx(TooltipTrigger, {
450
+ asChild: !0,
451
+ children: I
452
+ }), m[20] = I, m[21] = L);
453
+ let R = N !== "collapsed" || M, B;
454
+ m[22] !== R || m[23] !== x ? (B = /* @__PURE__ */ jsx(TooltipContent, {
455
+ side: "right",
456
+ align: "center",
457
+ hidden: R,
458
+ ...x
459
+ }), m[22] = R, m[23] = x, m[24] = B) : B = m[24];
460
+ let V;
461
+ return m[25] !== L || m[26] !== B ? (V = /* @__PURE__ */ jsxs(Tooltip, { children: [L, B] }), m[25] = L, m[26] = B, m[27] = V) : V = m[27], V;
462
+ }
463
+ function SidebarMenuAction(t) {
464
+ let m = c(12), h, g, _, v;
465
+ m[0] === t ? (h = m[1], g = m[2], _ = m[3], v = m[4]) : ({className: h, asChild: _, showOnHover: v, ...g} = t, m[0] = t, m[1] = h, m[2] = g, m[3] = _, m[4] = v);
466
+ let y = _ === void 0 ? !1 : _, b = v === void 0 ? !1 : v, x = y ? Slot : "button", S = b && "peer-data-[active=true]/menu-button:text-sidebar-accent-foreground group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 data-[state=open]:opacity-100 md:opacity-0", C;
467
+ m[5] !== h || m[6] !== S ? (C = cn("text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground peer-hover/menu-button:text-sidebar-accent-foreground absolute top-1.5 right-1 flex aspect-square w-5 items-center justify-center rounded-md p-0 outline-hidden transition-transform focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0", "after:absolute after:-inset-2 md:after:hidden", "peer-data-[size=sm]/menu-button:top-1", "peer-data-[size=default]/menu-button:top-1.5", "peer-data-[size=lg]/menu-button:top-2.5", "group-data-[collapsible=icon]:hidden", S, h), m[5] = h, m[6] = S, m[7] = C) : C = m[7];
468
+ let w;
469
+ return m[8] !== x || m[9] !== g || m[10] !== C ? (w = /* @__PURE__ */ jsx(x, {
470
+ "data-slot": "sidebar-menu-action",
471
+ "data-sidebar": "menu-action",
472
+ className: C,
473
+ ...g
474
+ }), m[8] = x, m[9] = g, m[10] = C, m[11] = w) : w = m[11], w;
475
+ }
476
+ function SidebarMenuBadge(t) {
477
+ let m = c(8), h, g;
478
+ m[0] === t ? (h = m[1], g = m[2]) : ({className: h, ...g} = t, m[0] = t, m[1] = h, m[2] = g);
479
+ let _;
480
+ m[3] === h ? _ = m[4] : (_ = cn("text-sidebar-foreground pointer-events-none absolute right-1 flex h-5 min-w-5 items-center justify-center rounded-md px-1 text-xs font-medium tabular-nums select-none", "peer-hover/menu-button:text-sidebar-accent-foreground peer-data-[active=true]/menu-button:text-sidebar-accent-foreground", "peer-data-[size=sm]/menu-button:top-1", "peer-data-[size=default]/menu-button:top-1.5", "peer-data-[size=lg]/menu-button:top-2.5", "group-data-[collapsible=icon]:hidden", h), m[3] = h, m[4] = _);
481
+ let v;
482
+ return m[5] !== g || m[6] !== _ ? (v = /* @__PURE__ */ jsx("div", {
483
+ "data-slot": "sidebar-menu-badge",
484
+ "data-sidebar": "menu-badge",
485
+ className: _,
486
+ ...g
487
+ }), m[5] = g, m[6] = _, m[7] = v) : v = m[7], v;
488
+ }
489
+ function SidebarMenuSkeleton(t) {
490
+ let m = c(14), h, g, _;
491
+ m[0] === t ? (h = m[1], g = m[2], _ = m[3]) : ({className: h, showIcon: _, ...g} = t, m[0] = t, m[1] = h, m[2] = g, m[3] = _);
492
+ let v = _ === void 0 ? !1 : _, y = `${Math.floor(Math.random() * 40) + 50}%`, b;
493
+ m[4] === h ? b = m[5] : (b = cn("flex h-8 items-center gap-2 rounded-md px-2", h), m[4] = h, m[5] = b);
494
+ let x;
495
+ m[6] === v ? x = m[7] : (x = v && /* @__PURE__ */ jsx(Skeleton, {
496
+ className: "size-4 rounded-md",
497
+ "data-sidebar": "menu-skeleton-icon"
498
+ }), m[6] = v, m[7] = x);
499
+ let C;
500
+ m[8] === Symbol.for("react.memo_cache_sentinel") ? (C = { "--skeleton-width": y }, m[8] = C) : C = m[8];
501
+ let w;
502
+ m[9] === Symbol.for("react.memo_cache_sentinel") ? (w = /* @__PURE__ */ jsx(Skeleton, {
503
+ className: "h-4 max-w-(--skeleton-width) flex-1",
504
+ "data-sidebar": "menu-skeleton-text",
505
+ style: C
506
+ }), m[9] = w) : w = m[9];
507
+ let T;
508
+ return m[10] !== g || m[11] !== b || m[12] !== x ? (T = /* @__PURE__ */ jsxs("div", {
509
+ "data-slot": "sidebar-menu-skeleton",
510
+ "data-sidebar": "menu-skeleton",
511
+ className: b,
512
+ ...g,
513
+ children: [x, w]
514
+ }), m[10] = g, m[11] = b, m[12] = x, m[13] = T) : T = m[13], T;
515
+ }
516
+ function SidebarMenuSub(t) {
517
+ let m = c(8), h, g;
518
+ m[0] === t ? (h = m[1], g = m[2]) : ({className: h, ...g} = t, m[0] = t, m[1] = h, m[2] = g);
519
+ let _;
520
+ m[3] === h ? _ = m[4] : (_ = cn("border-sidebar-border mx-3.5 flex min-w-0 translate-x-px flex-col gap-1 border-l px-2.5 py-0.5", "group-data-[collapsible=icon]:hidden", h), m[3] = h, m[4] = _);
521
+ let v;
522
+ return m[5] !== g || m[6] !== _ ? (v = /* @__PURE__ */ jsx("ul", {
523
+ "data-slot": "sidebar-menu-sub",
524
+ "data-sidebar": "menu-sub",
525
+ className: _,
526
+ ...g
527
+ }), m[5] = g, m[6] = _, m[7] = v) : v = m[7], v;
528
+ }
529
+ function SidebarMenuSubItem(t) {
530
+ let m = c(8), h, g;
531
+ m[0] === t ? (h = m[1], g = m[2]) : ({className: h, ...g} = t, m[0] = t, m[1] = h, m[2] = g);
532
+ let _;
533
+ m[3] === h ? _ = m[4] : (_ = cn("group/menu-sub-item relative", h), m[3] = h, m[4] = _);
534
+ let v;
535
+ return m[5] !== g || m[6] !== _ ? (v = /* @__PURE__ */ jsx("li", {
536
+ "data-slot": "sidebar-menu-sub-item",
537
+ "data-sidebar": "menu-sub-item",
538
+ className: _,
539
+ ...g
540
+ }), m[5] = g, m[6] = _, m[7] = v) : v = m[7], v;
541
+ }
542
+ function SidebarMenuSubButton(t) {
543
+ let m = c(16), h, g, _, v, y;
544
+ m[0] === t ? (h = m[1], g = m[2], _ = m[3], v = m[4], y = m[5]) : ({asChild: _, size: v, isActive: y, className: h, ...g} = t, m[0] = t, m[1] = h, m[2] = g, m[3] = _, m[4] = v, m[5] = y);
545
+ let b = _ === void 0 ? !1 : _, x = v === void 0 ? "md" : v, S = y === void 0 ? !1 : y, C = b ? Slot : "a", w = x === "sm" && "text-xs", T = x === "md" && "text-sm", E;
546
+ m[6] !== h || m[7] !== w || m[8] !== T ? (E = cn("text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground active:bg-sidebar-accent active:text-sidebar-accent-foreground [&>svg]:text-sidebar-accent-foreground flex h-7 min-w-0 -translate-x-px items-center gap-2 overflow-hidden rounded-md px-2 outline-hidden focus-visible:ring-2 disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0", "data-[active=true]:bg-sidebar-accent data-[active=true]:text-sidebar-accent-foreground", w, T, "group-data-[collapsible=icon]:hidden", h), m[6] = h, m[7] = w, m[8] = T, m[9] = E) : E = m[9];
547
+ let D;
548
+ return m[10] !== C || m[11] !== S || m[12] !== g || m[13] !== x || m[14] !== E ? (D = /* @__PURE__ */ jsx(C, {
549
+ "data-slot": "sidebar-menu-sub-button",
550
+ "data-sidebar": "menu-sub-button",
551
+ "data-size": x,
552
+ "data-active": S,
553
+ className: E,
554
+ ...g
555
+ }), m[10] = C, m[11] = S, m[12] = g, m[13] = x, m[14] = E, m[15] = D) : D = m[15], D;
556
+ }
557
+ export { Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarInsetDiv, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuDiv, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, useSidebar };
@@ -0,0 +1,16 @@
1
+ import { cn } from "../../lib/utils.js";
2
+ import { c } from "react/compiler-runtime";
3
+ import { jsx } from "react/jsx-runtime";
4
+ function Skeleton(r) {
5
+ let i = c(8), a, o;
6
+ i[0] === r ? (a = i[1], o = i[2]) : ({className: a, ...o} = r, i[0] = r, i[1] = a, i[2] = o);
7
+ let s;
8
+ i[3] === a ? s = i[4] : (s = cn("bg-accent animate-pulse rounded-md", a), i[3] = a, i[4] = s);
9
+ let l;
10
+ return i[5] !== o || i[6] !== s ? (l = /* @__PURE__ */ jsx("div", {
11
+ "data-slot": "skeleton",
12
+ className: s,
13
+ ...o
14
+ }), i[5] = o, i[6] = s, i[7] = l) : l = i[7], l;
15
+ }
16
+ export { Skeleton };