ics-ui-kit 0.1.15 → 0.1.17
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/components/avatar.js +7 -7
- package/dist/components/avatar.js.map +1 -1
- package/dist/components/dropdown.js +3 -3
- package/dist/components/dropdown.js.map +1 -1
- package/dist/components/sidebar.js +61 -61
- package/dist/components/sidebar.js.map +1 -1
- package/dist/components/table/column-reorder.js +1 -1
- package/dist/components/table/rowTint.d.ts +1 -1
- package/dist/components/table/sticky.js +1 -1
- package/dist/components/table/tree.js +1 -1
- package/dist/components/table.js +3 -3
- package/dist/{opaqueCell-SGaiyL54.js → opaqueCell-D95h1mFM.js} +6 -6
- package/dist/opaqueCell-D95h1mFM.js.map +1 -0
- package/dist/styles-scoped.css +59 -64
- package/dist/styles.css +59 -64
- package/dist/theme.css +11 -15
- package/dist/{treeModel-BlPWVj4W.js → treeModel-BlJWP4sc.js} +3 -3
- package/dist/treeModel-BlJWP4sc.js.map +1 -0
- package/dist/{useColumnReorder-BxVZQ_Y5.js → useColumnReorder-tE5pMONm.js} +2 -2
- package/dist/{useColumnReorder-BxVZQ_Y5.js.map → useColumnReorder-tE5pMONm.js.map} +1 -1
- package/package.json +1 -1
- package/tailwind.preset.js +9 -9
- package/dist/opaqueCell-SGaiyL54.js.map +0 -1
- package/dist/treeModel-BlPWVj4W.js.map +0 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsx as r, jsxs as f, Fragment as B } from "react/jsx-runtime";
|
|
2
2
|
import { e as E } from "../useBreakpoints-DHvp74UL.js";
|
|
3
|
-
import
|
|
3
|
+
import o from "react";
|
|
4
4
|
import { T as A, b as D, c as G } from "../Tooltip-7Duaau0S.js";
|
|
5
5
|
import { c as w } from "../cn-dsXlqdJg.js";
|
|
6
6
|
import { S as L, a as H, b as O, d as P, e as K } from "../Sheet-qTIXsqm0.js";
|
|
@@ -22,9 +22,9 @@ import { c as W } from "../createLucideIcon-DwBrHnj9.js";
|
|
|
22
22
|
const V = W("PanelLeft", [
|
|
23
23
|
["rect", { width: "18", height: "18", x: "3", y: "3", rx: "2", key: "afitv7" }],
|
|
24
24
|
["path", { d: "M9 3v18", key: "fh3hqa" }]
|
|
25
|
-
]), C =
|
|
25
|
+
]), C = o.createContext(null);
|
|
26
26
|
function N() {
|
|
27
|
-
const a =
|
|
27
|
+
const a = o.useContext(C);
|
|
28
28
|
if (!a)
|
|
29
29
|
throw new Error("useSidebar must be used within a SidebarProvider.");
|
|
30
30
|
return a;
|
|
@@ -36,21 +36,21 @@ const U = "sidebar_state", X = 60 * 60 * 24 * 7, Y = "16rem", J = "18rem", Q = "
|
|
|
36
36
|
true: "bg-primary-bg"
|
|
37
37
|
}
|
|
38
38
|
}
|
|
39
|
-
}), ae =
|
|
40
|
-
const u = E(), [g, l] =
|
|
39
|
+
}), ae = o.forwardRef(({ defaultOpen: a = !0, open: e, onOpenChange: t, className: s, style: i, children: d, ...p }, m) => {
|
|
40
|
+
const u = E(), [g, l] = o.useState(!1), [h, k] = o.useState(!1), [_, z] = o.useState(a), v = e ?? _, S = o.useCallback(
|
|
41
41
|
(c) => {
|
|
42
42
|
const b = typeof c == "function" ? c(v) : c;
|
|
43
43
|
t ? t(b) : z(b), document.cookie = `${U}=${b}; path=/; max-age=${X}`;
|
|
44
44
|
},
|
|
45
45
|
[t, v]
|
|
46
|
-
), x =
|
|
47
|
-
|
|
46
|
+
), x = o.useCallback(() => u ? l((c) => !c) : S((c) => !c), [u, S, l]);
|
|
47
|
+
o.useEffect(() => {
|
|
48
48
|
const c = (b) => {
|
|
49
49
|
b.key === Z && (b.metaKey || b.ctrlKey) && (b.preventDefault(), x());
|
|
50
50
|
};
|
|
51
51
|
return window.addEventListener("keydown", c), () => window.removeEventListener("keydown", c);
|
|
52
52
|
}, [x]);
|
|
53
|
-
const M = v ? "expanded" : "collapsed", T =
|
|
53
|
+
const M = v ? "expanded" : "collapsed", T = o.useMemo(
|
|
54
54
|
() => ({
|
|
55
55
|
state: M,
|
|
56
56
|
open: v,
|
|
@@ -72,7 +72,7 @@ const U = "sidebar_state", X = 60 * 60 * 24 * 7, Y = "16rem", J = "18rem", Q = "
|
|
|
72
72
|
"--sidebar-width-icon": Q,
|
|
73
73
|
...i
|
|
74
74
|
},
|
|
75
|
-
className: ee({ hasInset: h, className:
|
|
75
|
+
className: ee({ hasInset: h, className: s }),
|
|
76
76
|
ref: m,
|
|
77
77
|
...p,
|
|
78
78
|
children: d
|
|
@@ -80,9 +80,9 @@ const U = "sidebar_state", X = 60 * 60 * 24 * 7, Y = "16rem", J = "18rem", Q = "
|
|
|
80
80
|
) });
|
|
81
81
|
});
|
|
82
82
|
ae.displayName = "SidebarProvider";
|
|
83
|
-
const te =
|
|
83
|
+
const te = o.forwardRef(({ side: a = "left", variant: e = "sidebar", collapsible: t = "offcanvas", className: s, children: i, ...d }, p) => {
|
|
84
84
|
const { state: m, openMobile: u, setOpenMobile: g, setHasInset: l } = N();
|
|
85
|
-
return
|
|
85
|
+
return o.useLayoutEffect(() => {
|
|
86
86
|
if (e === "inset")
|
|
87
87
|
return l(!0), () => l(!1);
|
|
88
88
|
}, [e, l]), t === "none" ? /* @__PURE__ */ r(
|
|
@@ -90,7 +90,7 @@ const te = s.forwardRef(({ side: a = "left", variant: e = "sidebar", collapsible
|
|
|
90
90
|
{
|
|
91
91
|
className: w(
|
|
92
92
|
"text-sidebar-foreground flex h-full w-[--sidebar-width] flex-col bg-sidebar-bg",
|
|
93
|
-
|
|
93
|
+
s
|
|
94
94
|
),
|
|
95
95
|
ref: p,
|
|
96
96
|
...d,
|
|
@@ -145,7 +145,7 @@ const te = s.forwardRef(({ side: a = "left", variant: e = "sidebar", collapsible
|
|
|
145
145
|
a === "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)]",
|
|
146
146
|
// Adjust the padding for floating and inset variants.
|
|
147
147
|
e === "floating" || e === "inset" ? "p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)_+_theme(spacing.4)_+2px)]" : "group-data-[collapsible=icon]:w-[--sidebar-width-icon] group-data-[side=left]:border-r group-data-[side=right]:border-l group-data-[side=left]:border-secondary-border group-data-[side=right]:border-secondary-border",
|
|
148
|
-
|
|
148
|
+
s
|
|
149
149
|
),
|
|
150
150
|
...d,
|
|
151
151
|
children: /* @__PURE__ */ r(
|
|
@@ -164,9 +164,9 @@ const te = s.forwardRef(({ side: a = "left", variant: e = "sidebar", collapsible
|
|
|
164
164
|
] });
|
|
165
165
|
});
|
|
166
166
|
te.displayName = "Sidebar";
|
|
167
|
-
const re =
|
|
167
|
+
const re = o.forwardRef(
|
|
168
168
|
({ onClick: a, ...e }, t) => {
|
|
169
|
-
const { toggleSidebar:
|
|
169
|
+
const { toggleSidebar: s } = N();
|
|
170
170
|
return /* @__PURE__ */ r(
|
|
171
171
|
R,
|
|
172
172
|
{
|
|
@@ -175,7 +175,7 @@ const re = s.forwardRef(
|
|
|
175
175
|
"data-sidebar": "trigger",
|
|
176
176
|
variant: "ghost",
|
|
177
177
|
onClick: (i) => {
|
|
178
|
-
a?.(i),
|
|
178
|
+
a?.(i), s();
|
|
179
179
|
},
|
|
180
180
|
...e,
|
|
181
181
|
children: /* @__PURE__ */ r("span", { className: "sr-only", children: "Toggle Sidebar" })
|
|
@@ -184,7 +184,7 @@ const re = s.forwardRef(
|
|
|
184
184
|
}
|
|
185
185
|
);
|
|
186
186
|
re.displayName = "SidebarTrigger";
|
|
187
|
-
const
|
|
187
|
+
const oe = n({
|
|
188
188
|
base: [
|
|
189
189
|
"absolute inset-y-0 z-20 hidden w-[5px] -translate-x-1/2 transition-all ease-linear after:absolute after:inset-y-0 after:left-1/2 after:w-0 hover:after:-translate-x-1/2 hover:after:border-l hover:after:border-primary-border group-data-[side=left]:-right-[5px] group-data-[side=right]:left-0 sm:flex",
|
|
190
190
|
"cursor-ew-resize",
|
|
@@ -192,9 +192,9 @@ const se = n({
|
|
|
192
192
|
"[[data-side=left][data-collapsible=offcanvas]_&]:-right-[2.5px]",
|
|
193
193
|
"[[data-side=right][data-collapsible=offcanvas]_&]:-left-[2.5px]"
|
|
194
194
|
]
|
|
195
|
-
}),
|
|
195
|
+
}), se = o.forwardRef(
|
|
196
196
|
({ className: a, ...e }, t) => {
|
|
197
|
-
const { toggleSidebar:
|
|
197
|
+
const { toggleSidebar: s } = N();
|
|
198
198
|
return /* @__PURE__ */ r(
|
|
199
199
|
"button",
|
|
200
200
|
{
|
|
@@ -202,39 +202,39 @@ const se = n({
|
|
|
202
202
|
"data-sidebar": "rail",
|
|
203
203
|
"aria-label": "Toggle Sidebar",
|
|
204
204
|
tabIndex: -1,
|
|
205
|
-
onClick:
|
|
205
|
+
onClick: s,
|
|
206
206
|
title: "Toggle Sidebar",
|
|
207
|
-
className:
|
|
207
|
+
className: oe({ className: a }),
|
|
208
208
|
...e
|
|
209
209
|
}
|
|
210
210
|
);
|
|
211
211
|
}
|
|
212
212
|
);
|
|
213
|
-
|
|
213
|
+
se.displayName = "SidebarRail";
|
|
214
214
|
const ie = n({
|
|
215
215
|
base: [
|
|
216
216
|
"relative flex w-full flex-1 flex-col bg-secondary-bg",
|
|
217
217
|
"md:peer-data-[variant=inset]:m-2 md:peer-data-[state=collapsed]:peer-data-[variant=inset]:ml-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow"
|
|
218
218
|
]
|
|
219
|
-
}), ne =
|
|
219
|
+
}), ne = o.forwardRef(({ className: a, ...e }, t) => /* @__PURE__ */ r("main", { ref: t, className: ie({ className: a }), ...e }));
|
|
220
220
|
ne.displayName = "SidebarInset";
|
|
221
221
|
const de = n({
|
|
222
222
|
base: "h-8 w-full shadow-none"
|
|
223
|
-
}), le =
|
|
223
|
+
}), le = o.forwardRef(
|
|
224
224
|
({ className: a, ...e }, t) => /* @__PURE__ */ r(j, { ref: t, "data-sidebar": "input", className: de({ className: a }), ...e })
|
|
225
225
|
);
|
|
226
226
|
le.displayName = "SidebarInput";
|
|
227
227
|
const ce = n({
|
|
228
|
-
base: "flex flex-col gap-2 p-2 group-data-[variant=floating]:px-2.5"
|
|
229
|
-
}), ue =
|
|
228
|
+
base: "flex flex-col gap-2 p-2 group-data-[variant=floating]:px-2.5 overflow-y-hidden [scrollbar-gutter:stable]"
|
|
229
|
+
}), ue = o.forwardRef(({ className: a, ...e }, t) => /* @__PURE__ */ r("div", { ref: t, "data-sidebar": "header", className: ce({ className: a }), ...e }));
|
|
230
230
|
ue.displayName = "SidebarHeader";
|
|
231
231
|
const be = n({
|
|
232
|
-
base: "flex flex-col gap-2 p-2 group-data-[variant=floating]:px-2.5"
|
|
233
|
-
}), pe =
|
|
232
|
+
base: "flex flex-col gap-2 p-2 group-data-[variant=floating]:px-2.5 overflow-y-hidden [scrollbar-gutter:stable]"
|
|
233
|
+
}), pe = o.forwardRef(({ className: a, ...e }, t) => /* @__PURE__ */ r("div", { ref: t, "data-sidebar": "footer", className: be({ className: a }), ...e }));
|
|
234
234
|
pe.displayName = "SidebarFooter";
|
|
235
235
|
const fe = n({
|
|
236
236
|
base: "w-auto bg-secondary-border"
|
|
237
|
-
}), me =
|
|
237
|
+
}), me = o.forwardRef(
|
|
238
238
|
({ className: a, ...e }, t) => /* @__PURE__ */ r(
|
|
239
239
|
F,
|
|
240
240
|
{
|
|
@@ -249,15 +249,15 @@ const fe = n({
|
|
|
249
249
|
me.displayName = "SidebarSeparator";
|
|
250
250
|
const ge = n({
|
|
251
251
|
slots: {
|
|
252
|
-
content: "flex flex-1 flex-col gap-2 group-data-[collapsible=icon]:overflow-hidden"
|
|
252
|
+
content: "flex flex-1 flex-col gap-2 [scrollbar-gutter:stable] group-data-[collapsible=icon]:overflow-hidden"
|
|
253
253
|
}
|
|
254
|
-
}), he =
|
|
255
|
-
({ className: a, children: e, ...t },
|
|
254
|
+
}), he = o.forwardRef(
|
|
255
|
+
({ className: a, children: e, ...t }, s) => {
|
|
256
256
|
const i = ge();
|
|
257
257
|
return /* @__PURE__ */ r(
|
|
258
258
|
$,
|
|
259
259
|
{
|
|
260
|
-
ref:
|
|
260
|
+
ref: s,
|
|
261
261
|
"data-sidebar": "content",
|
|
262
262
|
className: i.content({ className: a }),
|
|
263
263
|
shadowSize: 32,
|
|
@@ -270,15 +270,15 @@ const ge = n({
|
|
|
270
270
|
he.displayName = "SidebarContent";
|
|
271
271
|
const ve = n({
|
|
272
272
|
base: "relative flex w-full min-w-0 flex-col p-2 group-data-[variant=floating]:px-2.5"
|
|
273
|
-
}), ye =
|
|
273
|
+
}), ye = o.forwardRef(({ className: a, ...e }, t) => /* @__PURE__ */ r("div", { ref: t, "data-sidebar": "group", className: ve({ className: a }), ...e }));
|
|
274
274
|
ye.displayName = "SidebarGroup";
|
|
275
275
|
const Se = n({
|
|
276
276
|
base: [
|
|
277
277
|
"flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium text-secondary-fg/70 outline-none transition-[margin,opacity] duration-200 ease-linear focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0",
|
|
278
278
|
"group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0"
|
|
279
279
|
]
|
|
280
|
-
}), xe =
|
|
281
|
-
({ className: a, asChild: e = !1, ...t },
|
|
280
|
+
}), xe = o.forwardRef(
|
|
281
|
+
({ className: a, asChild: e = !1, ...t }, s) => /* @__PURE__ */ r(e ? y : "div", { ref: s, "data-sidebar": "group-label", className: Se({ className: a }), ...t })
|
|
282
282
|
);
|
|
283
283
|
xe.displayName = "SidebarGroupLabel";
|
|
284
284
|
const we = n({
|
|
@@ -288,11 +288,11 @@ const we = n({
|
|
|
288
288
|
"after:absolute after:-inset-2 after:md:hidden",
|
|
289
289
|
"group-data-[collapsible=icon]:hidden"
|
|
290
290
|
]
|
|
291
|
-
}), Ne =
|
|
292
|
-
({ className: a, asChild: e = !1, ...t },
|
|
291
|
+
}), Ne = o.forwardRef(
|
|
292
|
+
({ className: a, asChild: e = !1, ...t }, s) => /* @__PURE__ */ r(
|
|
293
293
|
e ? y : "button",
|
|
294
294
|
{
|
|
295
|
-
ref:
|
|
295
|
+
ref: s,
|
|
296
296
|
"data-sidebar": "group-action",
|
|
297
297
|
className: we({ className: a }),
|
|
298
298
|
...t
|
|
@@ -302,17 +302,17 @@ const we = n({
|
|
|
302
302
|
Ne.displayName = "SidebarGroupAction";
|
|
303
303
|
const Me = n({
|
|
304
304
|
base: "w-full text-sm"
|
|
305
|
-
}), Ie =
|
|
305
|
+
}), Ie = o.forwardRef(
|
|
306
306
|
({ className: a, ...e }, t) => /* @__PURE__ */ r("div", { ref: t, "data-sidebar": "group-content", className: Me({ className: a }), ...e })
|
|
307
307
|
);
|
|
308
308
|
Ie.displayName = "SidebarGroupContent";
|
|
309
309
|
const Re = n({
|
|
310
310
|
base: "flex w-full min-w-0 flex-col gap-1"
|
|
311
|
-
}), Ce =
|
|
311
|
+
}), Ce = o.forwardRef(({ className: a, ...e }, t) => /* @__PURE__ */ r("ul", { ref: t, "data-sidebar": "menu", className: Re({ className: a }), ...e }));
|
|
312
312
|
Ce.displayName = "SidebarMenu";
|
|
313
313
|
const ke = n({
|
|
314
314
|
base: "group/menu-item relative"
|
|
315
|
-
}), _e =
|
|
315
|
+
}), _e = o.forwardRef(({ className: a, ...e }, t) => /* @__PURE__ */ r("li", { ref: t, "data-sidebar": "menu-item", className: ke({ className: a }), ...e }));
|
|
316
316
|
_e.displayName = "SidebarMenuItem";
|
|
317
317
|
const ze = n({
|
|
318
318
|
base: [
|
|
@@ -343,15 +343,15 @@ const ze = n({
|
|
|
343
343
|
variant: "default",
|
|
344
344
|
size: "default"
|
|
345
345
|
}
|
|
346
|
-
}), Te =
|
|
346
|
+
}), Te = o.forwardRef(({ asChild: a = !1, isActive: e = !1, variant: t = "default", size: s = "default", tooltip: i, className: d, ...p }, m) => {
|
|
347
347
|
const u = a ? y : "button", { isMobile: g, state: l } = N(), h = /* @__PURE__ */ r(
|
|
348
348
|
u,
|
|
349
349
|
{
|
|
350
350
|
ref: m,
|
|
351
351
|
"data-sidebar": "menu-button",
|
|
352
|
-
"data-size":
|
|
352
|
+
"data-size": s,
|
|
353
353
|
"data-active": e,
|
|
354
|
-
className: w(ze({ variant: t, size:
|
|
354
|
+
className: w(ze({ variant: t, size: s }), d),
|
|
355
355
|
...p
|
|
356
356
|
}
|
|
357
357
|
);
|
|
@@ -378,13 +378,13 @@ const Be = n({
|
|
|
378
378
|
true: "group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 data-[state=open]:opacity-100 peer-data-[active=true]/menu-button:text-primary-accent md:opacity-0"
|
|
379
379
|
}
|
|
380
380
|
}
|
|
381
|
-
}), Ee =
|
|
381
|
+
}), Ee = o.forwardRef(({ className: a, asChild: e = !1, showOnHover: t = !1, ...s }, i) => /* @__PURE__ */ r(
|
|
382
382
|
e ? y : "button",
|
|
383
383
|
{
|
|
384
384
|
ref: i,
|
|
385
385
|
"data-sidebar": "menu-action",
|
|
386
386
|
className: Be({ isHover: t, className: a }),
|
|
387
|
-
...
|
|
387
|
+
...s
|
|
388
388
|
}
|
|
389
389
|
));
|
|
390
390
|
Ee.displayName = "SidebarMenuAction";
|
|
@@ -397,7 +397,7 @@ const Ae = n({
|
|
|
397
397
|
"peer-data-[size=lg]/menu-button:top-2.5",
|
|
398
398
|
"group-data-[collapsible=icon]:hidden"
|
|
399
399
|
]
|
|
400
|
-
}), De =
|
|
400
|
+
}), De = o.forwardRef(
|
|
401
401
|
({ className: a, ...e }, t) => /* @__PURE__ */ r("div", { ref: t, "data-sidebar": "menu-badge", className: Ae({ className: a }), ...e })
|
|
402
402
|
);
|
|
403
403
|
De.displayName = "SidebarMenuBadge";
|
|
@@ -407,9 +407,9 @@ const Ge = n({
|
|
|
407
407
|
skeleton: "h-4 max-w-[--skeleton-width] flex-1",
|
|
408
408
|
skeletonIcon: "size-4 rounded-md"
|
|
409
409
|
}
|
|
410
|
-
}), Le =
|
|
411
|
-
const i =
|
|
412
|
-
return /* @__PURE__ */ f("div", { ref:
|
|
410
|
+
}), Le = o.forwardRef(({ className: a, showIcon: e = !1, ...t }, s) => {
|
|
411
|
+
const i = o.useMemo(() => `${Math.floor(Math.random() * 40) + 50}%`, []), d = Ge();
|
|
412
|
+
return /* @__PURE__ */ f("div", { ref: s, "data-sidebar": "menu-skeleton", className: d.wrapper({ className: a }), ...t, children: [
|
|
413
413
|
e && /* @__PURE__ */ r(I, { className: d.skeletonIcon(), "data-sidebar": "menu-skeleton-icon" }),
|
|
414
414
|
/* @__PURE__ */ r(
|
|
415
415
|
I,
|
|
@@ -429,13 +429,13 @@ const He = n({
|
|
|
429
429
|
"ml-3.5 flex min-w-0 flex-col gap-1 border-l border-secondary-border py-0.5 pl-2.5",
|
|
430
430
|
"group-data-[collapsible=icon]:hidden"
|
|
431
431
|
]
|
|
432
|
-
}), Oe =
|
|
432
|
+
}), Oe = o.forwardRef(
|
|
433
433
|
({ className: a, ...e }, t) => /* @__PURE__ */ r("ul", { ref: t, "data-sidebar": "menu-sub", className: He({ className: a }), ...e })
|
|
434
434
|
);
|
|
435
435
|
Oe.displayName = "SidebarMenuSub";
|
|
436
436
|
const Pe = n({
|
|
437
437
|
base: "rounded-md focus-visible:shadow-focus focus-visible:outline-none"
|
|
438
|
-
}), Ke =
|
|
438
|
+
}), Ke = o.forwardRef(
|
|
439
439
|
({ className: a, ...e }, t) => /* @__PURE__ */ r("li", { ref: t, className: Pe({ className: a }), ...e })
|
|
440
440
|
);
|
|
441
441
|
Ke.displayName = "SidebarMenuSubItem";
|
|
@@ -451,14 +451,14 @@ const je = n({
|
|
|
451
451
|
md: "text-sm"
|
|
452
452
|
}
|
|
453
453
|
}
|
|
454
|
-
}), Fe =
|
|
454
|
+
}), Fe = o.forwardRef(({ asChild: a = !1, size: e = "md", isActive: t, className: s, ...i }, d) => /* @__PURE__ */ r(
|
|
455
455
|
a ? y : "a",
|
|
456
456
|
{
|
|
457
457
|
ref: d,
|
|
458
458
|
"data-sidebar": "menu-sub-button",
|
|
459
459
|
"data-size": e,
|
|
460
460
|
"data-active": t,
|
|
461
|
-
className: je({ size: e, className:
|
|
461
|
+
className: je({ size: e, className: s }),
|
|
462
462
|
...i
|
|
463
463
|
}
|
|
464
464
|
));
|
|
@@ -469,12 +469,12 @@ const $e = n({
|
|
|
469
469
|
icon: "peer/icon h-4 w-4 p-0.5 text-muted opacity-0 group-hover/insertion:opacity-100",
|
|
470
470
|
line: "h-px w-full bg-transparent group-hover/insertion:bg-muted peer-hover/icon:bg-primary-fg"
|
|
471
471
|
}
|
|
472
|
-
}), qe =
|
|
472
|
+
}), qe = o.forwardRef(
|
|
473
473
|
({ className: a, ...e }, t) => {
|
|
474
|
-
const
|
|
475
|
-
return /* @__PURE__ */ f("div", { "data-sidebar": "sidebar-insertion-line", className:
|
|
476
|
-
/* @__PURE__ */ r(R, { icon: q, size: "xs", className:
|
|
477
|
-
/* @__PURE__ */ r("div", { className:
|
|
474
|
+
const s = $e();
|
|
475
|
+
return /* @__PURE__ */ f("div", { "data-sidebar": "sidebar-insertion-line", className: s.wrapper({ className: a }), ref: t, ...e, children: [
|
|
476
|
+
/* @__PURE__ */ r(R, { icon: q, size: "xs", className: s.icon(), variant: "link" }),
|
|
477
|
+
/* @__PURE__ */ r("div", { className: s.line() })
|
|
478
478
|
] });
|
|
479
479
|
}
|
|
480
480
|
);
|
|
@@ -501,7 +501,7 @@ export {
|
|
|
501
501
|
Fe as SidebarMenuSubButton,
|
|
502
502
|
Ke as SidebarMenuSubItem,
|
|
503
503
|
ae as SidebarProvider,
|
|
504
|
-
|
|
504
|
+
se as SidebarRail,
|
|
505
505
|
me as SidebarSeparator,
|
|
506
506
|
re as SidebarTrigger,
|
|
507
507
|
N as useSidebar
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sidebar.js","sources":["../../node_modules/.pnpm/lucide-react@0.460.0_react@18.3.1/node_modules/lucide-react/dist/esm/icons/panel-left.js","../../src/components/sidebar/SidebarContext.tsx","../../src/components/sidebar/Sidebar.tsx"],"sourcesContent":["/**\n * @license lucide-react v0.460.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst PanelLeft = createLucideIcon(\"PanelLeft\", [\n [\"rect\", { width: \"18\", height: \"18\", x: \"3\", y: \"3\", rx: \"2\", key: \"afitv7\" }],\n [\"path\", { d: \"M9 3v18\", key: \"fh3hqa\" }]\n]);\n\nexport { PanelLeft as default };\n//# sourceMappingURL=panel-left.js.map\n","import React from \"react\";\n\nexport type SidebarContextProps = {\n\tstate: \"expanded\" | \"collapsed\";\n\topen: boolean;\n\tsetOpen: (open: boolean) => void;\n\topenMobile: boolean;\n\tsetOpenMobile: (open: boolean) => void;\n\tisMobile: boolean;\n\ttoggleSidebar: () => void;\n\thasInset: boolean;\n\tsetHasInset: (hasInset: boolean) => void;\n};\n\nexport const SidebarContext = React.createContext<SidebarContextProps | null>(null);\n\nexport function useSidebar() {\n\tconst context = React.useContext(SidebarContext);\n\tif (!context) {\n\t\tthrow new Error(\"useSidebar must be used within a SidebarProvider.\");\n\t}\n\n\treturn context;\n}\n","import { useIsMobile } from \"@/hooks/useBreakpoints\";\nimport React from \"react\";\nimport { Tooltip, TooltipContent, TooltipTrigger } from \"../tooltip\";\nimport { cn } from \"@/lib/utils\";\nimport { Sheet, SheetContent, SheetDescription, SheetHeader, SheetTitle } from \"../sheet/Sheet\";\nimport { Button, IconButton } from \"../button\";\nimport { PanelLeft, Plus } from \"lucide-react\";\nimport { TextInput } from \"../input\";\nimport { Divider } from \"../divider\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { tv } from \"tailwind-variants\";\nimport { Skeleton } from \"../skeleton\";\nimport { SidebarContext, SidebarContextProps, useSidebar } from \"./SidebarContext\";\nimport { ScrollShadowContainer } from \"../scroll-shadow-container\";\nimport { VariantsConfig } from \"@/lib/utils/variants\";\n\nconst SIDEBAR_COOKIE_NAME = \"sidebar_state\";\nconst SIDEBAR_COOKIE_MAX_AGE = 60 * 60 * 24 * 7;\nconst SIDEBAR_WIDTH = \"16rem\";\nconst SIDEBAR_WIDTH_MOBILE = \"18rem\";\nconst SIDEBAR_WIDTH_ICON = \"3rem\";\nconst SIDEBAR_KEYBOARD_SHORTCUT = \"b\";\n\nconst sizebarProviderStyles = tv({\n\tbase: \"group/sidebar-wrapper flex min-h-svh w-full\",\n\tvariants: {\n\t\thasInset: {\n\t\t\ttrue: \"bg-primary-bg\"\n\t\t}\n\t}\n});\n\nconst SidebarProvider = React.forwardRef<\n\tHTMLDivElement,\n\tReact.ComponentProps<\"div\"> & {\n\t\tdefaultOpen?: boolean;\n\t\topen?: boolean;\n\t\tonOpenChange?: (open: boolean) => void;\n\t}\n>(({ defaultOpen = true, open: openProp, onOpenChange: setOpenProp, className, style, children, ...props }, ref) => {\n\tconst isMobile = useIsMobile();\n\tconst [openMobile, setOpenMobile] = React.useState(false);\n\tconst [hasInset, setHasInset] = React.useState(false);\n\n\t// This is the internal state of the sidebar.\n\t// We use openProp and setOpenProp for control from outside the component.\n\tconst [_open, _setOpen] = React.useState(defaultOpen);\n\tconst open = openProp ?? _open;\n\tconst setOpen = React.useCallback(\n\t\t(value: boolean | ((value: boolean) => boolean)) => {\n\t\t\tconst openState = typeof value === \"function\" ? value(open) : value;\n\t\t\tif (setOpenProp) {\n\t\t\t\tsetOpenProp(openState);\n\t\t\t} else {\n\t\t\t\t_setOpen(openState);\n\t\t\t}\n\n\t\t\t// This sets the cookie to keep the sidebar state.\n\t\t\tdocument.cookie = `${SIDEBAR_COOKIE_NAME}=${openState}; path=/; max-age=${SIDEBAR_COOKIE_MAX_AGE}`;\n\t\t},\n\t\t[setOpenProp, open]\n\t);\n\n\t// Helper to toggle the sidebar.\n\tconst toggleSidebar = React.useCallback(() => {\n\t\treturn isMobile ? setOpenMobile((open) => !open) : setOpen((open) => !open);\n\t}, [isMobile, setOpen, setOpenMobile]);\n\n\t// Adds a keyboard shortcut to toggle the sidebar.\n\tReact.useEffect(() => {\n\t\tconst handleKeyDown = (event: KeyboardEvent) => {\n\t\t\tif (event.key === SIDEBAR_KEYBOARD_SHORTCUT && (event.metaKey || event.ctrlKey)) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\ttoggleSidebar();\n\t\t\t}\n\t\t};\n\n\t\twindow.addEventListener(\"keydown\", handleKeyDown);\n\t\treturn () => window.removeEventListener(\"keydown\", handleKeyDown);\n\t}, [toggleSidebar]);\n\n\t// We add a state so that we can do data-state=\"expanded\" or \"collapsed\".\n\t// This makes it easier to style the sidebar with Tailwind classes.\n\tconst state = open ? \"expanded\" : \"collapsed\";\n\n\tconst contextValue = React.useMemo<SidebarContextProps>(\n\t\t() => ({\n\t\t\tstate,\n\t\t\topen,\n\t\t\tsetOpen,\n\t\t\tisMobile,\n\t\t\topenMobile,\n\t\t\tsetOpenMobile,\n\t\t\ttoggleSidebar,\n\t\t\thasInset,\n\t\t\tsetHasInset\n\t\t}),\n\t\t[state, open, setOpen, isMobile, openMobile, setOpenMobile, toggleSidebar, hasInset]\n\t);\n\n\treturn (\n\t\t<SidebarContext.Provider value={contextValue}>\n\t\t\t<div\n\t\t\t\tstyle={\n\t\t\t\t\t{\n\t\t\t\t\t\t\"--sidebar-width\": SIDEBAR_WIDTH,\n\t\t\t\t\t\t\"--sidebar-width-icon\": SIDEBAR_WIDTH_ICON,\n\t\t\t\t\t\t...style\n\t\t\t\t\t} as React.CSSProperties\n\t\t\t\t}\n\t\t\t\tclassName={sizebarProviderStyles({ hasInset, className })}\n\t\t\t\tref={ref}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t{children}\n\t\t\t</div>\n\t\t</SidebarContext.Provider>\n\t);\n});\nSidebarProvider.displayName = \"SidebarProvider\";\n\nconst Sidebar = React.forwardRef<\n\tHTMLDivElement,\n\tReact.ComponentProps<\"div\"> & {\n\t\tside?: \"left\" | \"right\";\n\t\tvariant?: \"sidebar\" | \"floating\" | \"inset\";\n\t\tcollapsible?: \"offcanvas\" | \"icon\" | \"none\";\n\t}\n>(({ side = \"left\", variant = \"sidebar\", collapsible = \"offcanvas\", className, children, ...props }, ref) => {\n\tconst { state, openMobile, setOpenMobile, setHasInset } = useSidebar();\n\n\tReact.useLayoutEffect(() => {\n\t\tif (variant !== \"inset\") return;\n\t\tsetHasInset(true);\n\t\treturn () => setHasInset(false);\n\t}, [variant, setHasInset]);\n\n\tif (collapsible === \"none\") {\n\t\treturn (\n\t\t\t<div\n\t\t\t\tclassName={cn(\n\t\t\t\t\t\"text-sidebar-foreground flex h-full w-[--sidebar-width] flex-col bg-sidebar-bg\",\n\t\t\t\t\tclassName\n\t\t\t\t)}\n\t\t\t\tref={ref}\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\n\treturn (\n\t\t<>\n\t\t\t<div className=\"contents lg:hidden\">\n\t\t\t\t<Sheet open={openMobile} onOpenChange={setOpenMobile} {...props}>\n\t\t\t\t\t<SheetContent\n\t\t\t\t\t\tdata-sidebar=\"sidebar\"\n\t\t\t\t\t\tdata-mobile=\"true\"\n\t\t\t\t\t\tclassName=\"w-[--sidebar-width] bg-sidebar-bg p-0 text-secondary-fg [&>button]:hidden\"\n\t\t\t\t\t\tstyle={\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\"--sidebar-width\": SIDEBAR_WIDTH_MOBILE\n\t\t\t\t\t\t\t} as React.CSSProperties\n\t\t\t\t\t\t}\n\t\t\t\t\t\tside={side}\n\t\t\t\t\t>\n\t\t\t\t\t\t<SheetHeader className=\"sr-only\">\n\t\t\t\t\t\t\t<SheetTitle>Sidebar</SheetTitle>\n\t\t\t\t\t\t\t<SheetDescription>Displays the mobile sidebar.</SheetDescription>\n\t\t\t\t\t\t</SheetHeader>\n\t\t\t\t\t\t<div className=\"flex h-full w-full flex-col\">{children}</div>\n\t\t\t\t\t</SheetContent>\n\t\t\t\t</Sheet>\n\t\t\t</div>\n\n\t\t\t<div\n\t\t\t\tref={ref}\n\t\t\t\tclassName=\"text-sidebar-foreground group peer hidden lg:block\"\n\t\t\t\tdata-state={state}\n\t\t\t\tdata-collapsible={state === \"collapsed\" ? collapsible : \"\"}\n\t\t\t\tdata-variant={variant}\n\t\t\t\tdata-side={side}\n\t\t\t>\n\t\t\t\t{/* This is what handles the sidebar gap on desktop */}\n\t\t\t\t<div\n\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\"relative w-[--sidebar-width] bg-transparent transition-[width] duration-200 ease-linear\",\n\t\t\t\t\t\t\"group-data-[collapsible=offcanvas]:w-0\",\n\t\t\t\t\t\t\"group-data-[side=right]:rotate-180\",\n\t\t\t\t\t\tvariant === \"floating\" || variant === \"inset\"\n\t\t\t\t\t\t\t? \"group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)_+_theme(spacing.4))]\"\n\t\t\t\t\t\t\t: \"group-data-[collapsible=icon]:w-[--sidebar-width-icon]\"\n\t\t\t\t\t)}\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\"fixed inset-y-0 z-10 hidden h-svh w-[--sidebar-width] transition-[left,right,width] duration-200 ease-linear lg:flex\",\n\t\t\t\t\t\tside === \"left\"\n\t\t\t\t\t\t\t? \"left-0 group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]\"\n\t\t\t\t\t\t\t: \"right-0 group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)]\",\n\t\t\t\t\t\t// Adjust the padding for floating and inset variants.\n\t\t\t\t\t\tvariant === \"floating\" || variant === \"inset\"\n\t\t\t\t\t\t\t? \"p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)_+_theme(spacing.4)_+2px)]\"\n\t\t\t\t\t\t\t: \"group-data-[collapsible=icon]:w-[--sidebar-width-icon] group-data-[side=left]:border-r group-data-[side=right]:border-l group-data-[side=left]:border-secondary-border group-data-[side=right]:border-secondary-border\",\n\t\t\t\t\t\tclassName\n\t\t\t\t\t)}\n\t\t\t\t\t{...props}\n\t\t\t\t>\n\t\t\t\t\t<div\n\t\t\t\t\t\tdata-sidebar=\"sidebar\"\n\t\t\t\t\t\tclassName=\"flex h-full w-full flex-col bg-sidebar-bg group-data-[variant=floating]:rounded-xl group-data-[variant=floating]:border-0.5 group-data-[variant=floating]:border-primary-border group-data-[variant=floating]:shadow-soft-xl\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{children}\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</>\n\t);\n});\n\nSidebar.displayName = \"Sidebar\";\n\nconst SidebarTrigger = React.forwardRef<React.ElementRef<typeof Button>, React.ComponentProps<typeof Button>>(\n\t({ onClick, ...props }, ref) => {\n\t\tconst { toggleSidebar } = useSidebar();\n\n\t\treturn (\n\t\t\t<IconButton\n\t\t\t\ticon={PanelLeft}\n\t\t\t\tref={ref}\n\t\t\t\tdata-sidebar=\"trigger\"\n\t\t\t\tvariant=\"ghost\"\n\t\t\t\tonClick={(event) => {\n\t\t\t\t\tonClick?.(event);\n\t\t\t\t\ttoggleSidebar();\n\t\t\t\t}}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t<span className=\"sr-only\">Toggle Sidebar</span>\n\t\t\t</IconButton>\n\t\t);\n\t}\n);\n\nSidebarTrigger.displayName = \"SidebarTrigger\";\n\nconst sidebarRailStyles = tv({\n\tbase: [\n\t\t\"absolute inset-y-0 z-20 hidden w-[5px] -translate-x-1/2 transition-all ease-linear after:absolute after:inset-y-0 after:left-1/2 after:w-0 hover:after:-translate-x-1/2 hover:after:border-l hover:after:border-primary-border group-data-[side=left]:-right-[5px] group-data-[side=right]:left-0 sm:flex\",\n\t\t\"cursor-ew-resize\",\n\t\t\"group-data-[collapsible=offcanvas]:translate-x-0 group-data-[collapsible=offcanvas]:after:left-full group-data-[collapsible=offcanvas]:hover:bg-secondary-border\",\n\t\t\"[[data-side=left][data-collapsible=offcanvas]_&]:-right-[2.5px]\",\n\t\t\"[[data-side=right][data-collapsible=offcanvas]_&]:-left-[2.5px]\"\n\t]\n});\n\nconst SidebarRail = React.forwardRef<HTMLButtonElement, React.ComponentProps<\"button\">>(\n\t({ className, ...props }, ref) => {\n\t\tconst { toggleSidebar } = useSidebar();\n\n\t\treturn (\n\t\t\t<button\n\t\t\t\tref={ref}\n\t\t\t\tdata-sidebar=\"rail\"\n\t\t\t\taria-label=\"Toggle Sidebar\"\n\t\t\t\ttabIndex={-1}\n\t\t\t\tonClick={toggleSidebar}\n\t\t\t\ttitle=\"Toggle Sidebar\"\n\t\t\t\tclassName={sidebarRailStyles({ className })}\n\t\t\t\t{...props}\n\t\t\t/>\n\t\t);\n\t}\n);\n\nSidebarRail.displayName = \"SidebarRail\";\n\nconst sidebarInsetStyles = tv({\n\tbase: [\n\t\t\"relative flex w-full flex-1 flex-col bg-secondary-bg\",\n\t\t\"md:peer-data-[variant=inset]:m-2 md:peer-data-[state=collapsed]:peer-data-[variant=inset]:ml-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow\"\n\t]\n});\n\nconst SidebarInset = React.forwardRef<HTMLDivElement, React.ComponentProps<\"main\">>(({ className, ...props }, ref) => {\n\treturn <main ref={ref} className={sidebarInsetStyles({ className })} {...props} />;\n});\n\nSidebarInset.displayName = \"SidebarInset\";\n\nconst sidebarInputStyles = tv({\n\tbase: \"h-8 w-full shadow-none\"\n});\n\nconst SidebarInput = React.forwardRef<React.ElementRef<typeof TextInput>, React.ComponentProps<typeof TextInput>>(\n\t({ className, ...props }, ref) => {\n\t\treturn <TextInput ref={ref} data-sidebar=\"input\" className={sidebarInputStyles({ className })} {...props} />;\n\t}\n);\n\nSidebarInput.displayName = \"SidebarInput\";\n\nconst sidebarHeaderStyles = tv({\n\tbase: \"flex flex-col gap-2 p-2 group-data-[variant=floating]:px-2.5\"\n});\n\nconst SidebarHeader = React.forwardRef<HTMLDivElement, React.ComponentProps<\"div\">>(({ className, ...props }, ref) => {\n\treturn <div ref={ref} data-sidebar=\"header\" className={sidebarHeaderStyles({ className })} {...props} />;\n});\n\nSidebarHeader.displayName = \"SidebarHeader\";\n\nconst sidebarFooterStyles = tv({\n\tbase: \"flex flex-col gap-2 p-2 group-data-[variant=floating]:px-2.5\"\n});\n\nconst SidebarFooter = React.forwardRef<HTMLDivElement, React.ComponentProps<\"div\">>(({ className, ...props }, ref) => {\n\treturn <div ref={ref} data-sidebar=\"footer\" className={sidebarFooterStyles({ className })} {...props} />;\n});\n\nSidebarFooter.displayName = \"SidebarFooter\";\n\nconst sidebarSeparatorStyles = tv({\n\tbase: \"w-auto bg-secondary-border\"\n});\n\nconst SidebarSeparator = React.forwardRef<React.ElementRef<typeof Divider>, React.ComponentProps<typeof Divider>>(\n\t({ className, ...props }, ref) => {\n\t\treturn (\n\t\t\t<Divider\n\t\t\t\tref={ref}\n\t\t\t\torientation=\"horizontal\"\n\t\t\t\tdata-sidebar=\"separator\"\n\t\t\t\tclassName={sidebarSeparatorStyles({ className })}\n\t\t\t\t{...props}\n\t\t\t/>\n\t\t);\n\t}\n);\n\nSidebarSeparator.displayName = \"SidebarSeparator\";\n\nconst sidebarContentStyles = tv({\n\tslots: {\n\t\tcontent: \"flex flex-1 flex-col gap-2 group-data-[collapsible=icon]:overflow-hidden\"\n\t}\n});\n\nconst SidebarContent = React.forwardRef<HTMLDivElement, React.ComponentProps<\"div\">>(\n\t({ className, children, ...props }, ref) => {\n\t\tconst styles = sidebarContentStyles();\n\n\t\treturn (\n\t\t\t<ScrollShadowContainer\n\t\t\t\tref={ref}\n\t\t\t\tdata-sidebar=\"content\"\n\t\t\t\tclassName={styles.content({ className })}\n\t\t\t\tshadowSize={32}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t{children}\n\t\t\t</ScrollShadowContainer>\n\t\t);\n\t}\n);\n\nSidebarContent.displayName = \"SidebarContent\";\n\nconst sidebarGroupStyles = tv({\n\tbase: \"relative flex w-full min-w-0 flex-col p-2 group-data-[variant=floating]:px-2.5\"\n});\n\nconst SidebarGroup = React.forwardRef<HTMLDivElement, React.ComponentProps<\"div\">>(({ className, ...props }, ref) => {\n\treturn <div ref={ref} data-sidebar=\"group\" className={sidebarGroupStyles({ className })} {...props} />;\n});\n\nSidebarGroup.displayName = \"SidebarGroup\";\n\nconst sidebarGroupLabelStyles = tv({\n\tbase: [\n\t\t\"flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium text-secondary-fg/70 outline-none transition-[margin,opacity] duration-200 ease-linear focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0\",\n\t\t\"group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0\"\n\t]\n});\n\nconst SidebarGroupLabel = React.forwardRef<HTMLDivElement, React.ComponentProps<\"div\"> & { asChild?: boolean }>(\n\t({ className, asChild = false, ...props }, ref) => {\n\t\tconst Comp = asChild ? Slot : \"div\";\n\n\t\treturn (\n\t\t\t<Comp ref={ref} data-sidebar=\"group-label\" className={sidebarGroupLabelStyles({ className })} {...props} />\n\t\t);\n\t}\n);\n\nSidebarGroupLabel.displayName = \"SidebarGroupLabel\";\n\nconst sidebarGroupActionStyles = tv({\n\tbase: [\n\t\t\"focus-visible:ring-primary2 absolute right-3 top-3.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-muted outline-none transition-transform hover:text-primary-fg focus-visible:shadow-focus [&>svg]:size-4 [&>svg]:shrink-0\",\n\t\t// Increases the hit area of the button on mobile.\n\t\t\"after:absolute after:-inset-2 after:md:hidden\",\n\t\t\"group-data-[collapsible=icon]:hidden\"\n\t]\n});\n\nconst SidebarGroupAction = React.forwardRef<HTMLButtonElement, React.ComponentProps<\"button\"> & { asChild?: boolean }>(\n\t({ className, asChild = false, ...props }, ref) => {\n\t\tconst Comp = asChild ? Slot : \"button\";\n\n\t\treturn (\n\t\t\t<Comp\n\t\t\t\tref={ref}\n\t\t\t\tdata-sidebar=\"group-action\"\n\t\t\t\tclassName={sidebarGroupActionStyles({ className })}\n\t\t\t\t{...props}\n\t\t\t/>\n\t\t);\n\t}\n);\n\nSidebarGroupAction.displayName = \"SidebarGroupAction\";\n\nconst sidebarGroupContentStyles = tv({\n\tbase: \"w-full text-sm\"\n});\n\nconst SidebarGroupContent = React.forwardRef<HTMLDivElement, React.ComponentProps<\"div\">>(\n\t({ className, ...props }, ref) => (\n\t\t<div ref={ref} data-sidebar=\"group-content\" className={sidebarGroupContentStyles({ className })} {...props} />\n\t)\n);\n\nSidebarGroupContent.displayName = \"SidebarGroupContent\";\n\nconst sidebarMenuStyles = tv({\n\tbase: \"flex w-full min-w-0 flex-col gap-1\"\n});\n\nconst SidebarMenu = React.forwardRef<HTMLUListElement, React.ComponentProps<\"ul\">>(({ className, ...props }, ref) => (\n\t<ul ref={ref} data-sidebar=\"menu\" className={sidebarMenuStyles({ className })} {...props} />\n));\n\nSidebarMenu.displayName = \"SidebarMenu\";\n\nconst sidebarMenuItemStyles = tv({\n\tbase: \"group/menu-item relative\"\n});\n\nconst SidebarMenuItem = React.forwardRef<HTMLLIElement, React.ComponentProps<\"li\">>(({ className, ...props }, ref) => (\n\t<li ref={ref} data-sidebar=\"menu-item\" className={sidebarMenuItemStyles({ className })} {...props} />\n));\n\nSidebarMenuItem.displayName = \"SidebarMenuItem\";\n\nexport interface SidebarMenuButtonVariants {\n\tvariant?: \"default\" | \"outline\";\n\tsize?: \"default\" | \"sm\" | \"lg\";\n}\n\nconst sidebarMenuButtonStyles = tv({\n\tbase: [\n\t\t\"peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md bg-primary-bg p-2 text-left text-sm text-secondary-fg outline-none transition-[width,height,padding]\",\n\t\t\"hover:bg-primary-bg-hover hover:text-primary-fg focus-visible:shadow-focus\",\n\t\t\"disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50\",\n\t\t\"data-[active=true]:bg-primary-bg-hover data-[active=true]:font-medium data-[active=true]:text-primary-accent\",\n\t\t\"data-[active=true]:hover:bg-primary-bg-hover data-[active=true]:hover:text-primary-accent\",\n\t\t\"data-[state=open]:hover:bg-primary-bg-hover data-[state=open]:hover:text-primary-fg\",\n\t\t\"data-[active=true]:data-[state=open]:hover:bg-primary-bg-hover data-[active=true]:data-[state=open]:hover:text-primary-accent\",\n\t\t\"group-data-[collapsible=icon]:!size-8 group-data-[collapsible=icon]:!p-2 [&>span:last-child]:truncate\",\n\t\t\"[&>svg]:size-4 [&>svg]:shrink-0 [&>svg]:text-muted [&[data-active=true]>svg]:text-primary-accent\",\n\t\t\"group-data-[collapsible=icon]:[&>svg]:text-secondary-fg group-data-[collapsible=icon]:[&>svg]:hover:text-primary-fg group-data-[collapsible=icon]:[&[data-active=true]>svg]:text-primary-accent\",\n\t\t\"group-has-[[data-sidebar=menu-action]]/menu-item:pr-8\"\n\t],\n\tvariants: {\n\t\tvariant: {\n\t\t\tdefault: \"hover:bg-primary-bg-hover hover:text-primary-fg\",\n\t\t\toutline:\n\t\t\t\t\"border border-secondary-border bg-primary-bg shadow-soft-sm hover:bg-primary-bg-hover hover:text-primary-fg\"\n\t\t},\n\t\tsize: {\n\t\t\tdefault: \"h-8 text-sm\",\n\t\t\tsm: \"h-7 text-xs\",\n\t\t\tlg: \"h-12 text-sm group-data-[collapsible=icon]:!p-0\"\n\t\t}\n\t} satisfies VariantsConfig<SidebarMenuButtonVariants>,\n\tdefaultVariants: {\n\t\tvariant: \"default\",\n\t\tsize: \"default\"\n\t}\n});\n\nconst SidebarMenuButton = React.forwardRef<\n\tHTMLButtonElement,\n\tReact.ComponentProps<\"button\"> & {\n\t\tasChild?: boolean;\n\t\tisActive?: boolean;\n\t\ttooltip?: string | React.ComponentProps<typeof TooltipContent>;\n\t} & SidebarMenuButtonVariants\n>(({ asChild = false, isActive = false, variant = \"default\", size = \"default\", tooltip, className, ...props }, ref) => {\n\tconst Comp = asChild ? Slot : \"button\";\n\tconst { isMobile, state } = useSidebar();\n\n\tconst button = (\n\t\t<Comp\n\t\t\tref={ref}\n\t\t\tdata-sidebar=\"menu-button\"\n\t\t\tdata-size={size}\n\t\t\tdata-active={isActive}\n\t\t\tclassName={cn(sidebarMenuButtonStyles({ variant, size }), className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n\n\tif (!tooltip) {\n\t\treturn button;\n\t}\n\n\tif (typeof tooltip === \"string\") {\n\t\ttooltip = {\n\t\t\tchildren: tooltip\n\t\t};\n\t}\n\n\treturn (\n\t\t<Tooltip>\n\t\t\t<TooltipTrigger asChild>{button}</TooltipTrigger>\n\t\t\t<TooltipContent side=\"right\" align=\"center\" hidden={state !== \"collapsed\" || isMobile} {...tooltip} />\n\t\t</Tooltip>\n\t);\n});\n\nSidebarMenuButton.displayName = \"SidebarMenuButton\";\n\nconst sidebarMenuActionStyles = tv({\n\tbase: [\n\t\t\"absolute right-1 top-1.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-muted outline-none transition-transform hover:text-primary-fg focus-visible:ring-1 focus-visible:ring-primary peer-hover/menu-button:text-primary-fg [&>svg]:size-4 [&>svg]:shrink-0\",\n\t\t// Increases the hit area of the button on mobile.\n\t\t\"after:absolute after:-inset-2 after:md:hidden\",\n\t\t\"peer-data-[size=sm]/menu-button:top-1\",\n\t\t\"peer-data-[size=default]/menu-button:top-1.5\",\n\t\t\"peer-data-[size=lg]/menu-button:top-2.5\",\n\t\t\"group-data-[collapsible=icon]:hidden\"\n\t],\n\tvariants: {\n\t\tisHover: {\n\t\t\ttrue: \"group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 data-[state=open]:opacity-100 peer-data-[active=true]/menu-button:text-primary-accent md:opacity-0\"\n\t\t}\n\t}\n});\n\nconst SidebarMenuAction = React.forwardRef<\n\tHTMLButtonElement,\n\tReact.ComponentProps<\"button\"> & {\n\t\tasChild?: boolean;\n\t\tshowOnHover?: boolean;\n\t}\n>(({ className, asChild = false, showOnHover = false, ...props }, ref) => {\n\tconst Comp = asChild ? Slot : \"button\";\n\n\treturn (\n\t\t<Comp\n\t\t\tref={ref}\n\t\t\tdata-sidebar=\"menu-action\"\n\t\t\tclassName={sidebarMenuActionStyles({ isHover: showOnHover, className })}\n\t\t\t{...props}\n\t\t/>\n\t);\n});\n\nSidebarMenuAction.displayName = \"SidebarMenuAction\";\n\nconst sidebarMenuBadgeStyles = tv({\n\tbase: [\n\t\t\"pointer-events-none absolute right-1 flex h-5 min-w-5 select-none items-center justify-center rounded-md px-1 text-xs font-normal tabular-nums leading-none text-muted\",\n\t\t\"peer-hover/menu-button:text-muted peer-disabled/menu-button:opacity-50 peer-data-[active=true]/menu-button:text-muted\",\n\t\t\"peer-data-[size=sm]/menu-button:top-1\",\n\t\t\"peer-data-[size=default]/menu-button:top-1.5\",\n\t\t\"peer-data-[size=lg]/menu-button:top-2.5\",\n\t\t\"group-data-[collapsible=icon]:hidden\"\n\t]\n});\n\nconst SidebarMenuBadge = React.forwardRef<HTMLDivElement, React.ComponentProps<\"div\">>(\n\t({ className, ...props }, ref) => (\n\t\t<div ref={ref} data-sidebar=\"menu-badge\" className={sidebarMenuBadgeStyles({ className })} {...props} />\n\t)\n);\n\nSidebarMenuBadge.displayName = \"SidebarMenuBadge\";\n\nconst sidebarMenuSkeletonStyles = tv({\n\tslots: {\n\t\twrapper: \"flex h-8 items-center gap-2 rounded-md px-2\",\n\t\tskeleton: \"h-4 max-w-[--skeleton-width] flex-1\",\n\t\tskeletonIcon: \"size-4 rounded-md\"\n\t}\n});\n\nconst SidebarMenuSkeleton = React.forwardRef<\n\tHTMLDivElement,\n\tReact.ComponentProps<\"div\"> & {\n\t\tshowIcon?: boolean;\n\t}\n>(({ className, showIcon = false, ...props }, ref) => {\n\t// Random width between 50 to 90%.\n\tconst width = React.useMemo(() => {\n\t\treturn `${Math.floor(Math.random() * 40) + 50}%`;\n\t}, []);\n\n\tconst styles = sidebarMenuSkeletonStyles();\n\n\treturn (\n\t\t<div ref={ref} data-sidebar=\"menu-skeleton\" className={styles.wrapper({ className })} {...props}>\n\t\t\t{showIcon && <Skeleton className={styles.skeletonIcon()} data-sidebar=\"menu-skeleton-icon\" />}\n\t\t\t<Skeleton\n\t\t\t\tclassName={styles.skeleton()}\n\t\t\t\tdata-sidebar=\"menu-skeleton-text\"\n\t\t\t\tstyle={\n\t\t\t\t\t{\n\t\t\t\t\t\t\"--skeleton-width\": width\n\t\t\t\t\t} as React.CSSProperties\n\t\t\t\t}\n\t\t\t/>\n\t\t</div>\n\t);\n});\n\nSidebarMenuSkeleton.displayName = \"SidebarMenuSkeleton\";\n\nconst sidebarMenuSubStyles = tv({\n\tbase: [\n\t\t\"ml-3.5 flex min-w-0 flex-col gap-1 border-l border-secondary-border py-0.5 pl-2.5\",\n\t\t\"group-data-[collapsible=icon]:hidden\"\n\t]\n});\n\nconst SidebarMenuSub = React.forwardRef<HTMLUListElement, React.ComponentProps<\"ul\">>(\n\t({ className, ...props }, ref) => (\n\t\t<ul ref={ref} data-sidebar=\"menu-sub\" className={sidebarMenuSubStyles({ className })} {...props} />\n\t)\n);\n\nSidebarMenuSub.displayName = \"SidebarMenuSub\";\n\nconst sidebarMenuSubItemStyles = tv({\n\tbase: \"rounded-md focus-visible:shadow-focus focus-visible:outline-none\"\n});\n\nconst SidebarMenuSubItem = React.forwardRef<HTMLLIElement, React.ComponentProps<\"li\">>(\n\t({ className, ...props }, ref) => <li ref={ref} className={sidebarMenuSubItemStyles({ className })} {...props} />\n);\n\nSidebarMenuSubItem.displayName = \"SidebarMenuSubItem\";\n\nconst sidebarMenuSubButtonStyles = tv({\n\tbase: [\n\t\t\"flex h-7 min-w-0 items-center gap-2 overflow-hidden rounded-md px-2 text-secondary-fg outline-none hover:bg-secondary-bg-hover hover:text-primary-fg focus-visible:mr-0.5 focus-visible:shadow-focus 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 [&>svg]:text-primary-fg\",\n\t\t\"data-[active=true]:bg-primary-bg-hover data-[active=true]:text-primary-accent\",\n\t\t\"group-data-[collapsible=icon]:hidden\"\n\t],\n\tvariants: {\n\t\tsize: {\n\t\t\tsm: \"text-xs\",\n\t\t\tmd: \"text-sm\"\n\t\t}\n\t}\n});\n\nconst SidebarMenuSubButton = React.forwardRef<\n\tHTMLAnchorElement,\n\tReact.ComponentProps<\"a\"> & {\n\t\tasChild?: boolean;\n\t\tsize?: \"sm\" | \"md\";\n\t\tisActive?: boolean;\n\t}\n>(({ asChild = false, size = \"md\", isActive, className, ...props }, ref) => {\n\tconst Comp = asChild ? Slot : \"a\";\n\n\treturn (\n\t\t<Comp\n\t\t\tref={ref}\n\t\t\tdata-sidebar=\"menu-sub-button\"\n\t\t\tdata-size={size}\n\t\t\tdata-active={isActive}\n\t\t\tclassName={sidebarMenuSubButtonStyles({ size, className })}\n\t\t\t{...props}\n\t\t/>\n\t);\n});\n\nSidebarMenuSubButton.displayName = \"SidebarMenuSubButton\";\n\nconst sidebarInsertionLineStyles = tv({\n\tslots: {\n\t\twrapper: \"group/insertion flex cursor-pointer flex-row items-center border-none bg-transparent p-0\",\n\t\ticon: \"peer/icon h-4 w-4 p-0.5 text-muted opacity-0 group-hover/insertion:opacity-100\",\n\t\tline: \"h-px w-full bg-transparent group-hover/insertion:bg-muted peer-hover/icon:bg-primary-fg\"\n\t}\n});\n\nexport type SidebarInsertionLineProps = React.HTMLAttributes<HTMLDivElement>;\n\nconst SidebarInsertionLine = React.forwardRef<HTMLDivElement, SidebarInsertionLineProps>(\n\t({ className, ...props }, ref) => {\n\t\tconst styles = sidebarInsertionLineStyles();\n\t\treturn (\n\t\t\t<div data-sidebar=\"sidebar-insertion-line\" className={styles.wrapper({ className })} ref={ref} {...props}>\n\t\t\t\t<IconButton icon={Plus} size=\"xs\" className={styles.icon()} variant=\"link\" />\n\t\t\t\t<div className={styles.line()} />\n\t\t\t</div>\n\t\t);\n\t}\n);\nSidebarInsertionLine.displayName = \"SidebarInsertionLine\";\n\nexport {\n\tSidebar,\n\tSidebarContent,\n\tSidebarFooter,\n\tSidebarGroup,\n\tSidebarGroupAction,\n\tSidebarGroupContent,\n\tSidebarGroupLabel,\n\tSidebarHeader,\n\tSidebarInput,\n\tSidebarInset,\n\tSidebarMenu,\n\tSidebarMenuAction,\n\tSidebarMenuBadge,\n\tSidebarMenuButton,\n\tSidebarMenuItem,\n\tSidebarMenuSkeleton,\n\tSidebarMenuSub,\n\tSidebarMenuSubButton,\n\tSidebarMenuSubItem,\n\tSidebarProvider,\n\tSidebarRail,\n\tSidebarSeparator,\n\tSidebarInsertionLine,\n\tSidebarTrigger\n};\n"],"names":["PanelLeft","createLucideIcon","SidebarContext","React","useSidebar","context","SIDEBAR_COOKIE_NAME","SIDEBAR_COOKIE_MAX_AGE","SIDEBAR_WIDTH","SIDEBAR_WIDTH_MOBILE","SIDEBAR_WIDTH_ICON","SIDEBAR_KEYBOARD_SHORTCUT","sizebarProviderStyles","tv","SidebarProvider","defaultOpen","openProp","setOpenProp","className","style","children","props","ref","isMobile","useIsMobile","openMobile","setOpenMobile","hasInset","setHasInset","_open","_setOpen","open","setOpen","value","openState","toggleSidebar","handleKeyDown","event","state","contextValue","jsx","Sidebar","side","variant","collapsible","cn","jsxs","Fragment","Sheet","SheetContent","SheetHeader","SheetTitle","SheetDescription","SidebarTrigger","onClick","IconButton","sidebarRailStyles","SidebarRail","sidebarInsetStyles","SidebarInset","sidebarInputStyles","SidebarInput","TextInput","sidebarHeaderStyles","SidebarHeader","sidebarFooterStyles","SidebarFooter","sidebarSeparatorStyles","SidebarSeparator","Divider","sidebarContentStyles","SidebarContent","styles","ScrollShadowContainer","sidebarGroupStyles","SidebarGroup","sidebarGroupLabelStyles","SidebarGroupLabel","asChild","Slot","sidebarGroupActionStyles","SidebarGroupAction","sidebarGroupContentStyles","SidebarGroupContent","sidebarMenuStyles","SidebarMenu","sidebarMenuItemStyles","SidebarMenuItem","sidebarMenuButtonStyles","SidebarMenuButton","isActive","size","tooltip","Comp","button","Tooltip","TooltipTrigger","TooltipContent","sidebarMenuActionStyles","SidebarMenuAction","showOnHover","sidebarMenuBadgeStyles","SidebarMenuBadge","sidebarMenuSkeletonStyles","SidebarMenuSkeleton","showIcon","width","Skeleton","sidebarMenuSubStyles","SidebarMenuSub","sidebarMenuSubItemStyles","SidebarMenuSubItem","sidebarMenuSubButtonStyles","SidebarMenuSubButton","sidebarInsertionLineStyles","SidebarInsertionLine","Plus"],"mappings":"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","x_google_ignoreList":[0]}
|
|
1
|
+
{"version":3,"file":"sidebar.js","sources":["../../node_modules/.pnpm/lucide-react@0.460.0_react@18.3.1/node_modules/lucide-react/dist/esm/icons/panel-left.js","../../src/components/sidebar/SidebarContext.tsx","../../src/components/sidebar/Sidebar.tsx"],"sourcesContent":["/**\n * @license lucide-react v0.460.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst PanelLeft = createLucideIcon(\"PanelLeft\", [\n [\"rect\", { width: \"18\", height: \"18\", x: \"3\", y: \"3\", rx: \"2\", key: \"afitv7\" }],\n [\"path\", { d: \"M9 3v18\", key: \"fh3hqa\" }]\n]);\n\nexport { PanelLeft as default };\n//# sourceMappingURL=panel-left.js.map\n","import React from \"react\";\n\nexport type SidebarContextProps = {\n\tstate: \"expanded\" | \"collapsed\";\n\topen: boolean;\n\tsetOpen: (open: boolean) => void;\n\topenMobile: boolean;\n\tsetOpenMobile: (open: boolean) => void;\n\tisMobile: boolean;\n\ttoggleSidebar: () => void;\n\thasInset: boolean;\n\tsetHasInset: (hasInset: boolean) => void;\n};\n\nexport const SidebarContext = React.createContext<SidebarContextProps | null>(null);\n\nexport function useSidebar() {\n\tconst context = React.useContext(SidebarContext);\n\tif (!context) {\n\t\tthrow new Error(\"useSidebar must be used within a SidebarProvider.\");\n\t}\n\n\treturn context;\n}\n","import { useIsMobile } from \"@/hooks/useBreakpoints\";\nimport React from \"react\";\nimport { Tooltip, TooltipContent, TooltipTrigger } from \"../tooltip\";\nimport { cn } from \"@/lib/utils\";\nimport { Sheet, SheetContent, SheetDescription, SheetHeader, SheetTitle } from \"../sheet/Sheet\";\nimport { Button, IconButton } from \"../button\";\nimport { PanelLeft, Plus } from \"lucide-react\";\nimport { TextInput } from \"../input\";\nimport { Divider } from \"../divider\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { tv } from \"tailwind-variants\";\nimport { Skeleton } from \"../skeleton\";\nimport { SidebarContext, SidebarContextProps, useSidebar } from \"./SidebarContext\";\nimport { ScrollShadowContainer } from \"../scroll-shadow-container\";\nimport { VariantsConfig } from \"@/lib/utils/variants\";\n\nconst SIDEBAR_COOKIE_NAME = \"sidebar_state\";\nconst SIDEBAR_COOKIE_MAX_AGE = 60 * 60 * 24 * 7;\nconst SIDEBAR_WIDTH = \"16rem\";\nconst SIDEBAR_WIDTH_MOBILE = \"18rem\";\nconst SIDEBAR_WIDTH_ICON = \"3rem\";\nconst SIDEBAR_KEYBOARD_SHORTCUT = \"b\";\n\nconst sizebarProviderStyles = tv({\n\tbase: \"group/sidebar-wrapper flex min-h-svh w-full\",\n\tvariants: {\n\t\thasInset: {\n\t\t\ttrue: \"bg-primary-bg\"\n\t\t}\n\t}\n});\n\nconst SidebarProvider = React.forwardRef<\n\tHTMLDivElement,\n\tReact.ComponentProps<\"div\"> & {\n\t\tdefaultOpen?: boolean;\n\t\topen?: boolean;\n\t\tonOpenChange?: (open: boolean) => void;\n\t}\n>(({ defaultOpen = true, open: openProp, onOpenChange: setOpenProp, className, style, children, ...props }, ref) => {\n\tconst isMobile = useIsMobile();\n\tconst [openMobile, setOpenMobile] = React.useState(false);\n\tconst [hasInset, setHasInset] = React.useState(false);\n\n\t// This is the internal state of the sidebar.\n\t// We use openProp and setOpenProp for control from outside the component.\n\tconst [_open, _setOpen] = React.useState(defaultOpen);\n\tconst open = openProp ?? _open;\n\tconst setOpen = React.useCallback(\n\t\t(value: boolean | ((value: boolean) => boolean)) => {\n\t\t\tconst openState = typeof value === \"function\" ? value(open) : value;\n\t\t\tif (setOpenProp) {\n\t\t\t\tsetOpenProp(openState);\n\t\t\t} else {\n\t\t\t\t_setOpen(openState);\n\t\t\t}\n\n\t\t\t// This sets the cookie to keep the sidebar state.\n\t\t\tdocument.cookie = `${SIDEBAR_COOKIE_NAME}=${openState}; path=/; max-age=${SIDEBAR_COOKIE_MAX_AGE}`;\n\t\t},\n\t\t[setOpenProp, open]\n\t);\n\n\t// Helper to toggle the sidebar.\n\tconst toggleSidebar = React.useCallback(() => {\n\t\treturn isMobile ? setOpenMobile((open) => !open) : setOpen((open) => !open);\n\t}, [isMobile, setOpen, setOpenMobile]);\n\n\t// Adds a keyboard shortcut to toggle the sidebar.\n\tReact.useEffect(() => {\n\t\tconst handleKeyDown = (event: KeyboardEvent) => {\n\t\t\tif (event.key === SIDEBAR_KEYBOARD_SHORTCUT && (event.metaKey || event.ctrlKey)) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\ttoggleSidebar();\n\t\t\t}\n\t\t};\n\n\t\twindow.addEventListener(\"keydown\", handleKeyDown);\n\t\treturn () => window.removeEventListener(\"keydown\", handleKeyDown);\n\t}, [toggleSidebar]);\n\n\t// We add a state so that we can do data-state=\"expanded\" or \"collapsed\".\n\t// This makes it easier to style the sidebar with Tailwind classes.\n\tconst state = open ? \"expanded\" : \"collapsed\";\n\n\tconst contextValue = React.useMemo<SidebarContextProps>(\n\t\t() => ({\n\t\t\tstate,\n\t\t\topen,\n\t\t\tsetOpen,\n\t\t\tisMobile,\n\t\t\topenMobile,\n\t\t\tsetOpenMobile,\n\t\t\ttoggleSidebar,\n\t\t\thasInset,\n\t\t\tsetHasInset\n\t\t}),\n\t\t[state, open, setOpen, isMobile, openMobile, setOpenMobile, toggleSidebar, hasInset]\n\t);\n\n\treturn (\n\t\t<SidebarContext.Provider value={contextValue}>\n\t\t\t<div\n\t\t\t\tstyle={\n\t\t\t\t\t{\n\t\t\t\t\t\t\"--sidebar-width\": SIDEBAR_WIDTH,\n\t\t\t\t\t\t\"--sidebar-width-icon\": SIDEBAR_WIDTH_ICON,\n\t\t\t\t\t\t...style\n\t\t\t\t\t} as React.CSSProperties\n\t\t\t\t}\n\t\t\t\tclassName={sizebarProviderStyles({ hasInset, className })}\n\t\t\t\tref={ref}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t{children}\n\t\t\t</div>\n\t\t</SidebarContext.Provider>\n\t);\n});\nSidebarProvider.displayName = \"SidebarProvider\";\n\nconst Sidebar = React.forwardRef<\n\tHTMLDivElement,\n\tReact.ComponentProps<\"div\"> & {\n\t\tside?: \"left\" | \"right\";\n\t\tvariant?: \"sidebar\" | \"floating\" | \"inset\";\n\t\tcollapsible?: \"offcanvas\" | \"icon\" | \"none\";\n\t}\n>(({ side = \"left\", variant = \"sidebar\", collapsible = \"offcanvas\", className, children, ...props }, ref) => {\n\tconst { state, openMobile, setOpenMobile, setHasInset } = useSidebar();\n\n\tReact.useLayoutEffect(() => {\n\t\tif (variant !== \"inset\") return;\n\t\tsetHasInset(true);\n\t\treturn () => setHasInset(false);\n\t}, [variant, setHasInset]);\n\n\tif (collapsible === \"none\") {\n\t\treturn (\n\t\t\t<div\n\t\t\t\tclassName={cn(\n\t\t\t\t\t\"text-sidebar-foreground flex h-full w-[--sidebar-width] flex-col bg-sidebar-bg\",\n\t\t\t\t\tclassName\n\t\t\t\t)}\n\t\t\t\tref={ref}\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\n\treturn (\n\t\t<>\n\t\t\t<div className=\"contents lg:hidden\">\n\t\t\t\t<Sheet open={openMobile} onOpenChange={setOpenMobile} {...props}>\n\t\t\t\t\t<SheetContent\n\t\t\t\t\t\tdata-sidebar=\"sidebar\"\n\t\t\t\t\t\tdata-mobile=\"true\"\n\t\t\t\t\t\tclassName=\"w-[--sidebar-width] bg-sidebar-bg p-0 text-secondary-fg [&>button]:hidden\"\n\t\t\t\t\t\tstyle={\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\"--sidebar-width\": SIDEBAR_WIDTH_MOBILE\n\t\t\t\t\t\t\t} as React.CSSProperties\n\t\t\t\t\t\t}\n\t\t\t\t\t\tside={side}\n\t\t\t\t\t>\n\t\t\t\t\t\t<SheetHeader className=\"sr-only\">\n\t\t\t\t\t\t\t<SheetTitle>Sidebar</SheetTitle>\n\t\t\t\t\t\t\t<SheetDescription>Displays the mobile sidebar.</SheetDescription>\n\t\t\t\t\t\t</SheetHeader>\n\t\t\t\t\t\t<div className=\"flex h-full w-full flex-col\">{children}</div>\n\t\t\t\t\t</SheetContent>\n\t\t\t\t</Sheet>\n\t\t\t</div>\n\n\t\t\t<div\n\t\t\t\tref={ref}\n\t\t\t\tclassName=\"text-sidebar-foreground group peer hidden lg:block\"\n\t\t\t\tdata-state={state}\n\t\t\t\tdata-collapsible={state === \"collapsed\" ? collapsible : \"\"}\n\t\t\t\tdata-variant={variant}\n\t\t\t\tdata-side={side}\n\t\t\t>\n\t\t\t\t{/* This is what handles the sidebar gap on desktop */}\n\t\t\t\t<div\n\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\"relative w-[--sidebar-width] bg-transparent transition-[width] duration-200 ease-linear\",\n\t\t\t\t\t\t\"group-data-[collapsible=offcanvas]:w-0\",\n\t\t\t\t\t\t\"group-data-[side=right]:rotate-180\",\n\t\t\t\t\t\tvariant === \"floating\" || variant === \"inset\"\n\t\t\t\t\t\t\t? \"group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)_+_theme(spacing.4))]\"\n\t\t\t\t\t\t\t: \"group-data-[collapsible=icon]:w-[--sidebar-width-icon]\"\n\t\t\t\t\t)}\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\"fixed inset-y-0 z-10 hidden h-svh w-[--sidebar-width] transition-[left,right,width] duration-200 ease-linear lg:flex\",\n\t\t\t\t\t\tside === \"left\"\n\t\t\t\t\t\t\t? \"left-0 group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]\"\n\t\t\t\t\t\t\t: \"right-0 group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)]\",\n\t\t\t\t\t\t// Adjust the padding for floating and inset variants.\n\t\t\t\t\t\tvariant === \"floating\" || variant === \"inset\"\n\t\t\t\t\t\t\t? \"p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)_+_theme(spacing.4)_+2px)]\"\n\t\t\t\t\t\t\t: \"group-data-[collapsible=icon]:w-[--sidebar-width-icon] group-data-[side=left]:border-r group-data-[side=right]:border-l group-data-[side=left]:border-secondary-border group-data-[side=right]:border-secondary-border\",\n\t\t\t\t\t\tclassName\n\t\t\t\t\t)}\n\t\t\t\t\t{...props}\n\t\t\t\t>\n\t\t\t\t\t<div\n\t\t\t\t\t\tdata-sidebar=\"sidebar\"\n\t\t\t\t\t\tclassName=\"flex h-full w-full flex-col bg-sidebar-bg group-data-[variant=floating]:rounded-xl group-data-[variant=floating]:border-0.5 group-data-[variant=floating]:border-primary-border group-data-[variant=floating]:shadow-soft-xl\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{children}\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</>\n\t);\n});\n\nSidebar.displayName = \"Sidebar\";\n\nconst SidebarTrigger = React.forwardRef<React.ElementRef<typeof Button>, React.ComponentProps<typeof Button>>(\n\t({ onClick, ...props }, ref) => {\n\t\tconst { toggleSidebar } = useSidebar();\n\n\t\treturn (\n\t\t\t<IconButton\n\t\t\t\ticon={PanelLeft}\n\t\t\t\tref={ref}\n\t\t\t\tdata-sidebar=\"trigger\"\n\t\t\t\tvariant=\"ghost\"\n\t\t\t\tonClick={(event) => {\n\t\t\t\t\tonClick?.(event);\n\t\t\t\t\ttoggleSidebar();\n\t\t\t\t}}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t<span className=\"sr-only\">Toggle Sidebar</span>\n\t\t\t</IconButton>\n\t\t);\n\t}\n);\n\nSidebarTrigger.displayName = \"SidebarTrigger\";\n\nconst sidebarRailStyles = tv({\n\tbase: [\n\t\t\"absolute inset-y-0 z-20 hidden w-[5px] -translate-x-1/2 transition-all ease-linear after:absolute after:inset-y-0 after:left-1/2 after:w-0 hover:after:-translate-x-1/2 hover:after:border-l hover:after:border-primary-border group-data-[side=left]:-right-[5px] group-data-[side=right]:left-0 sm:flex\",\n\t\t\"cursor-ew-resize\",\n\t\t\"group-data-[collapsible=offcanvas]:translate-x-0 group-data-[collapsible=offcanvas]:after:left-full group-data-[collapsible=offcanvas]:hover:bg-secondary-border\",\n\t\t\"[[data-side=left][data-collapsible=offcanvas]_&]:-right-[2.5px]\",\n\t\t\"[[data-side=right][data-collapsible=offcanvas]_&]:-left-[2.5px]\"\n\t]\n});\n\nconst SidebarRail = React.forwardRef<HTMLButtonElement, React.ComponentProps<\"button\">>(\n\t({ className, ...props }, ref) => {\n\t\tconst { toggleSidebar } = useSidebar();\n\n\t\treturn (\n\t\t\t<button\n\t\t\t\tref={ref}\n\t\t\t\tdata-sidebar=\"rail\"\n\t\t\t\taria-label=\"Toggle Sidebar\"\n\t\t\t\ttabIndex={-1}\n\t\t\t\tonClick={toggleSidebar}\n\t\t\t\ttitle=\"Toggle Sidebar\"\n\t\t\t\tclassName={sidebarRailStyles({ className })}\n\t\t\t\t{...props}\n\t\t\t/>\n\t\t);\n\t}\n);\n\nSidebarRail.displayName = \"SidebarRail\";\n\nconst sidebarInsetStyles = tv({\n\tbase: [\n\t\t\"relative flex w-full flex-1 flex-col bg-secondary-bg\",\n\t\t\"md:peer-data-[variant=inset]:m-2 md:peer-data-[state=collapsed]:peer-data-[variant=inset]:ml-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow\"\n\t]\n});\n\nconst SidebarInset = React.forwardRef<HTMLDivElement, React.ComponentProps<\"main\">>(({ className, ...props }, ref) => {\n\treturn <main ref={ref} className={sidebarInsetStyles({ className })} {...props} />;\n});\n\nSidebarInset.displayName = \"SidebarInset\";\n\nconst sidebarInputStyles = tv({\n\tbase: \"h-8 w-full shadow-none\"\n});\n\nconst SidebarInput = React.forwardRef<React.ElementRef<typeof TextInput>, React.ComponentProps<typeof TextInput>>(\n\t({ className, ...props }, ref) => {\n\t\treturn <TextInput ref={ref} data-sidebar=\"input\" className={sidebarInputStyles({ className })} {...props} />;\n\t}\n);\n\nSidebarInput.displayName = \"SidebarInput\";\n\nconst sidebarHeaderStyles = tv({\n\tbase: \"flex flex-col gap-2 p-2 group-data-[variant=floating]:px-2.5 overflow-y-hidden [scrollbar-gutter:stable]\"\n});\n\nconst SidebarHeader = React.forwardRef<HTMLDivElement, React.ComponentProps<\"div\">>(({ className, ...props }, ref) => {\n\treturn <div ref={ref} data-sidebar=\"header\" className={sidebarHeaderStyles({ className })} {...props} />;\n});\n\nSidebarHeader.displayName = \"SidebarHeader\";\n\nconst sidebarFooterStyles = tv({\n\tbase: \"flex flex-col gap-2 p-2 group-data-[variant=floating]:px-2.5 overflow-y-hidden [scrollbar-gutter:stable]\"\n});\n\nconst SidebarFooter = React.forwardRef<HTMLDivElement, React.ComponentProps<\"div\">>(({ className, ...props }, ref) => {\n\treturn <div ref={ref} data-sidebar=\"footer\" className={sidebarFooterStyles({ className })} {...props} />;\n});\n\nSidebarFooter.displayName = \"SidebarFooter\";\n\nconst sidebarSeparatorStyles = tv({\n\tbase: \"w-auto bg-secondary-border\"\n});\n\nconst SidebarSeparator = React.forwardRef<React.ElementRef<typeof Divider>, React.ComponentProps<typeof Divider>>(\n\t({ className, ...props }, ref) => {\n\t\treturn (\n\t\t\t<Divider\n\t\t\t\tref={ref}\n\t\t\t\torientation=\"horizontal\"\n\t\t\t\tdata-sidebar=\"separator\"\n\t\t\t\tclassName={sidebarSeparatorStyles({ className })}\n\t\t\t\t{...props}\n\t\t\t/>\n\t\t);\n\t}\n);\n\nSidebarSeparator.displayName = \"SidebarSeparator\";\n\nconst sidebarContentStyles = tv({\n\tslots: {\n\t\tcontent: \"flex flex-1 flex-col gap-2 [scrollbar-gutter:stable] group-data-[collapsible=icon]:overflow-hidden\"\n\t}\n});\n\nconst SidebarContent = React.forwardRef<HTMLDivElement, React.ComponentProps<\"div\">>(\n\t({ className, children, ...props }, ref) => {\n\t\tconst styles = sidebarContentStyles();\n\n\t\treturn (\n\t\t\t<ScrollShadowContainer\n\t\t\t\tref={ref}\n\t\t\t\tdata-sidebar=\"content\"\n\t\t\t\tclassName={styles.content({ className })}\n\t\t\t\tshadowSize={32}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t{children}\n\t\t\t</ScrollShadowContainer>\n\t\t);\n\t}\n);\n\nSidebarContent.displayName = \"SidebarContent\";\n\nconst sidebarGroupStyles = tv({\n\tbase: \"relative flex w-full min-w-0 flex-col p-2 group-data-[variant=floating]:px-2.5\"\n});\n\nconst SidebarGroup = React.forwardRef<HTMLDivElement, React.ComponentProps<\"div\">>(({ className, ...props }, ref) => {\n\treturn <div ref={ref} data-sidebar=\"group\" className={sidebarGroupStyles({ className })} {...props} />;\n});\n\nSidebarGroup.displayName = \"SidebarGroup\";\n\nconst sidebarGroupLabelStyles = tv({\n\tbase: [\n\t\t\"flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium text-secondary-fg/70 outline-none transition-[margin,opacity] duration-200 ease-linear focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0\",\n\t\t\"group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0\"\n\t]\n});\n\nconst SidebarGroupLabel = React.forwardRef<HTMLDivElement, React.ComponentProps<\"div\"> & { asChild?: boolean }>(\n\t({ className, asChild = false, ...props }, ref) => {\n\t\tconst Comp = asChild ? Slot : \"div\";\n\n\t\treturn (\n\t\t\t<Comp ref={ref} data-sidebar=\"group-label\" className={sidebarGroupLabelStyles({ className })} {...props} />\n\t\t);\n\t}\n);\n\nSidebarGroupLabel.displayName = \"SidebarGroupLabel\";\n\nconst sidebarGroupActionStyles = tv({\n\tbase: [\n\t\t\"focus-visible:ring-primary2 absolute right-3 top-3.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-muted outline-none transition-transform hover:text-primary-fg focus-visible:shadow-focus [&>svg]:size-4 [&>svg]:shrink-0\",\n\t\t// Increases the hit area of the button on mobile.\n\t\t\"after:absolute after:-inset-2 after:md:hidden\",\n\t\t\"group-data-[collapsible=icon]:hidden\"\n\t]\n});\n\nconst SidebarGroupAction = React.forwardRef<HTMLButtonElement, React.ComponentProps<\"button\"> & { asChild?: boolean }>(\n\t({ className, asChild = false, ...props }, ref) => {\n\t\tconst Comp = asChild ? Slot : \"button\";\n\n\t\treturn (\n\t\t\t<Comp\n\t\t\t\tref={ref}\n\t\t\t\tdata-sidebar=\"group-action\"\n\t\t\t\tclassName={sidebarGroupActionStyles({ className })}\n\t\t\t\t{...props}\n\t\t\t/>\n\t\t);\n\t}\n);\n\nSidebarGroupAction.displayName = \"SidebarGroupAction\";\n\nconst sidebarGroupContentStyles = tv({\n\tbase: \"w-full text-sm\"\n});\n\nconst SidebarGroupContent = React.forwardRef<HTMLDivElement, React.ComponentProps<\"div\">>(\n\t({ className, ...props }, ref) => (\n\t\t<div ref={ref} data-sidebar=\"group-content\" className={sidebarGroupContentStyles({ className })} {...props} />\n\t)\n);\n\nSidebarGroupContent.displayName = \"SidebarGroupContent\";\n\nconst sidebarMenuStyles = tv({\n\tbase: \"flex w-full min-w-0 flex-col gap-1\"\n});\n\nconst SidebarMenu = React.forwardRef<HTMLUListElement, React.ComponentProps<\"ul\">>(({ className, ...props }, ref) => (\n\t<ul ref={ref} data-sidebar=\"menu\" className={sidebarMenuStyles({ className })} {...props} />\n));\n\nSidebarMenu.displayName = \"SidebarMenu\";\n\nconst sidebarMenuItemStyles = tv({\n\tbase: \"group/menu-item relative\"\n});\n\nconst SidebarMenuItem = React.forwardRef<HTMLLIElement, React.ComponentProps<\"li\">>(({ className, ...props }, ref) => (\n\t<li ref={ref} data-sidebar=\"menu-item\" className={sidebarMenuItemStyles({ className })} {...props} />\n));\n\nSidebarMenuItem.displayName = \"SidebarMenuItem\";\n\nexport interface SidebarMenuButtonVariants {\n\tvariant?: \"default\" | \"outline\";\n\tsize?: \"default\" | \"sm\" | \"lg\";\n}\n\nconst sidebarMenuButtonStyles = tv({\n\tbase: [\n\t\t\"peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md bg-primary-bg p-2 text-left text-sm text-secondary-fg outline-none transition-[width,height,padding]\",\n\t\t\"hover:bg-primary-bg-hover hover:text-primary-fg focus-visible:shadow-focus\",\n\t\t\"disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50\",\n\t\t\"data-[active=true]:bg-primary-bg-hover data-[active=true]:font-medium data-[active=true]:text-primary-accent\",\n\t\t\"data-[active=true]:hover:bg-primary-bg-hover data-[active=true]:hover:text-primary-accent\",\n\t\t\"data-[state=open]:hover:bg-primary-bg-hover data-[state=open]:hover:text-primary-fg\",\n\t\t\"data-[active=true]:data-[state=open]:hover:bg-primary-bg-hover data-[active=true]:data-[state=open]:hover:text-primary-accent\",\n\t\t\"group-data-[collapsible=icon]:!size-8 group-data-[collapsible=icon]:!p-2 [&>span:last-child]:truncate\",\n\t\t\"[&>svg]:size-4 [&>svg]:shrink-0 [&>svg]:text-muted [&[data-active=true]>svg]:text-primary-accent\",\n\t\t\"group-data-[collapsible=icon]:[&>svg]:text-secondary-fg group-data-[collapsible=icon]:[&>svg]:hover:text-primary-fg group-data-[collapsible=icon]:[&[data-active=true]>svg]:text-primary-accent\",\n\t\t\"group-has-[[data-sidebar=menu-action]]/menu-item:pr-8\"\n\t],\n\tvariants: {\n\t\tvariant: {\n\t\t\tdefault: \"hover:bg-primary-bg-hover hover:text-primary-fg\",\n\t\t\toutline:\n\t\t\t\t\"border border-secondary-border bg-primary-bg shadow-soft-sm hover:bg-primary-bg-hover hover:text-primary-fg\"\n\t\t},\n\t\tsize: {\n\t\t\tdefault: \"h-8 text-sm\",\n\t\t\tsm: \"h-7 text-xs\",\n\t\t\tlg: \"h-12 text-sm group-data-[collapsible=icon]:!p-0\"\n\t\t}\n\t} satisfies VariantsConfig<SidebarMenuButtonVariants>,\n\tdefaultVariants: {\n\t\tvariant: \"default\",\n\t\tsize: \"default\"\n\t}\n});\n\nconst SidebarMenuButton = React.forwardRef<\n\tHTMLButtonElement,\n\tReact.ComponentProps<\"button\"> & {\n\t\tasChild?: boolean;\n\t\tisActive?: boolean;\n\t\ttooltip?: string | React.ComponentProps<typeof TooltipContent>;\n\t} & SidebarMenuButtonVariants\n>(({ asChild = false, isActive = false, variant = \"default\", size = \"default\", tooltip, className, ...props }, ref) => {\n\tconst Comp = asChild ? Slot : \"button\";\n\tconst { isMobile, state } = useSidebar();\n\n\tconst button = (\n\t\t<Comp\n\t\t\tref={ref}\n\t\t\tdata-sidebar=\"menu-button\"\n\t\t\tdata-size={size}\n\t\t\tdata-active={isActive}\n\t\t\tclassName={cn(sidebarMenuButtonStyles({ variant, size }), className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n\n\tif (!tooltip) {\n\t\treturn button;\n\t}\n\n\tif (typeof tooltip === \"string\") {\n\t\ttooltip = {\n\t\t\tchildren: tooltip\n\t\t};\n\t}\n\n\treturn (\n\t\t<Tooltip>\n\t\t\t<TooltipTrigger asChild>{button}</TooltipTrigger>\n\t\t\t<TooltipContent side=\"right\" align=\"center\" hidden={state !== \"collapsed\" || isMobile} {...tooltip} />\n\t\t</Tooltip>\n\t);\n});\n\nSidebarMenuButton.displayName = \"SidebarMenuButton\";\n\nconst sidebarMenuActionStyles = tv({\n\tbase: [\n\t\t\"absolute right-1 top-1.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-muted outline-none transition-transform hover:text-primary-fg focus-visible:ring-1 focus-visible:ring-primary peer-hover/menu-button:text-primary-fg [&>svg]:size-4 [&>svg]:shrink-0\",\n\t\t// Increases the hit area of the button on mobile.\n\t\t\"after:absolute after:-inset-2 after:md:hidden\",\n\t\t\"peer-data-[size=sm]/menu-button:top-1\",\n\t\t\"peer-data-[size=default]/menu-button:top-1.5\",\n\t\t\"peer-data-[size=lg]/menu-button:top-2.5\",\n\t\t\"group-data-[collapsible=icon]:hidden\"\n\t],\n\tvariants: {\n\t\tisHover: {\n\t\t\ttrue: \"group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 data-[state=open]:opacity-100 peer-data-[active=true]/menu-button:text-primary-accent md:opacity-0\"\n\t\t}\n\t}\n});\n\nconst SidebarMenuAction = React.forwardRef<\n\tHTMLButtonElement,\n\tReact.ComponentProps<\"button\"> & {\n\t\tasChild?: boolean;\n\t\tshowOnHover?: boolean;\n\t}\n>(({ className, asChild = false, showOnHover = false, ...props }, ref) => {\n\tconst Comp = asChild ? Slot : \"button\";\n\n\treturn (\n\t\t<Comp\n\t\t\tref={ref}\n\t\t\tdata-sidebar=\"menu-action\"\n\t\t\tclassName={sidebarMenuActionStyles({ isHover: showOnHover, className })}\n\t\t\t{...props}\n\t\t/>\n\t);\n});\n\nSidebarMenuAction.displayName = \"SidebarMenuAction\";\n\nconst sidebarMenuBadgeStyles = tv({\n\tbase: [\n\t\t\"pointer-events-none absolute right-1 flex h-5 min-w-5 select-none items-center justify-center rounded-md px-1 text-xs font-normal tabular-nums leading-none text-muted\",\n\t\t\"peer-hover/menu-button:text-muted peer-disabled/menu-button:opacity-50 peer-data-[active=true]/menu-button:text-muted\",\n\t\t\"peer-data-[size=sm]/menu-button:top-1\",\n\t\t\"peer-data-[size=default]/menu-button:top-1.5\",\n\t\t\"peer-data-[size=lg]/menu-button:top-2.5\",\n\t\t\"group-data-[collapsible=icon]:hidden\"\n\t]\n});\n\nconst SidebarMenuBadge = React.forwardRef<HTMLDivElement, React.ComponentProps<\"div\">>(\n\t({ className, ...props }, ref) => (\n\t\t<div ref={ref} data-sidebar=\"menu-badge\" className={sidebarMenuBadgeStyles({ className })} {...props} />\n\t)\n);\n\nSidebarMenuBadge.displayName = \"SidebarMenuBadge\";\n\nconst sidebarMenuSkeletonStyles = tv({\n\tslots: {\n\t\twrapper: \"flex h-8 items-center gap-2 rounded-md px-2\",\n\t\tskeleton: \"h-4 max-w-[--skeleton-width] flex-1\",\n\t\tskeletonIcon: \"size-4 rounded-md\"\n\t}\n});\n\nconst SidebarMenuSkeleton = React.forwardRef<\n\tHTMLDivElement,\n\tReact.ComponentProps<\"div\"> & {\n\t\tshowIcon?: boolean;\n\t}\n>(({ className, showIcon = false, ...props }, ref) => {\n\t// Random width between 50 to 90%.\n\tconst width = React.useMemo(() => {\n\t\treturn `${Math.floor(Math.random() * 40) + 50}%`;\n\t}, []);\n\n\tconst styles = sidebarMenuSkeletonStyles();\n\n\treturn (\n\t\t<div ref={ref} data-sidebar=\"menu-skeleton\" className={styles.wrapper({ className })} {...props}>\n\t\t\t{showIcon && <Skeleton className={styles.skeletonIcon()} data-sidebar=\"menu-skeleton-icon\" />}\n\t\t\t<Skeleton\n\t\t\t\tclassName={styles.skeleton()}\n\t\t\t\tdata-sidebar=\"menu-skeleton-text\"\n\t\t\t\tstyle={\n\t\t\t\t\t{\n\t\t\t\t\t\t\"--skeleton-width\": width\n\t\t\t\t\t} as React.CSSProperties\n\t\t\t\t}\n\t\t\t/>\n\t\t</div>\n\t);\n});\n\nSidebarMenuSkeleton.displayName = \"SidebarMenuSkeleton\";\n\nconst sidebarMenuSubStyles = tv({\n\tbase: [\n\t\t\"ml-3.5 flex min-w-0 flex-col gap-1 border-l border-secondary-border py-0.5 pl-2.5\",\n\t\t\"group-data-[collapsible=icon]:hidden\"\n\t]\n});\n\nconst SidebarMenuSub = React.forwardRef<HTMLUListElement, React.ComponentProps<\"ul\">>(\n\t({ className, ...props }, ref) => (\n\t\t<ul ref={ref} data-sidebar=\"menu-sub\" className={sidebarMenuSubStyles({ className })} {...props} />\n\t)\n);\n\nSidebarMenuSub.displayName = \"SidebarMenuSub\";\n\nconst sidebarMenuSubItemStyles = tv({\n\tbase: \"rounded-md focus-visible:shadow-focus focus-visible:outline-none\"\n});\n\nconst SidebarMenuSubItem = React.forwardRef<HTMLLIElement, React.ComponentProps<\"li\">>(\n\t({ className, ...props }, ref) => <li ref={ref} className={sidebarMenuSubItemStyles({ className })} {...props} />\n);\n\nSidebarMenuSubItem.displayName = \"SidebarMenuSubItem\";\n\nconst sidebarMenuSubButtonStyles = tv({\n\tbase: [\n\t\t\"flex h-7 min-w-0 items-center gap-2 overflow-hidden rounded-md px-2 text-secondary-fg outline-none hover:bg-secondary-bg-hover hover:text-primary-fg focus-visible:mr-0.5 focus-visible:shadow-focus 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 [&>svg]:text-primary-fg\",\n\t\t\"data-[active=true]:bg-primary-bg-hover data-[active=true]:text-primary-accent\",\n\t\t\"group-data-[collapsible=icon]:hidden\"\n\t],\n\tvariants: {\n\t\tsize: {\n\t\t\tsm: \"text-xs\",\n\t\t\tmd: \"text-sm\"\n\t\t}\n\t}\n});\n\nconst SidebarMenuSubButton = React.forwardRef<\n\tHTMLAnchorElement,\n\tReact.ComponentProps<\"a\"> & {\n\t\tasChild?: boolean;\n\t\tsize?: \"sm\" | \"md\";\n\t\tisActive?: boolean;\n\t}\n>(({ asChild = false, size = \"md\", isActive, className, ...props }, ref) => {\n\tconst Comp = asChild ? Slot : \"a\";\n\n\treturn (\n\t\t<Comp\n\t\t\tref={ref}\n\t\t\tdata-sidebar=\"menu-sub-button\"\n\t\t\tdata-size={size}\n\t\t\tdata-active={isActive}\n\t\t\tclassName={sidebarMenuSubButtonStyles({ size, className })}\n\t\t\t{...props}\n\t\t/>\n\t);\n});\n\nSidebarMenuSubButton.displayName = \"SidebarMenuSubButton\";\n\nconst sidebarInsertionLineStyles = tv({\n\tslots: {\n\t\twrapper: \"group/insertion flex cursor-pointer flex-row items-center border-none bg-transparent p-0\",\n\t\ticon: \"peer/icon h-4 w-4 p-0.5 text-muted opacity-0 group-hover/insertion:opacity-100\",\n\t\tline: \"h-px w-full bg-transparent group-hover/insertion:bg-muted peer-hover/icon:bg-primary-fg\"\n\t}\n});\n\nexport type SidebarInsertionLineProps = React.HTMLAttributes<HTMLDivElement>;\n\nconst SidebarInsertionLine = React.forwardRef<HTMLDivElement, SidebarInsertionLineProps>(\n\t({ className, ...props }, ref) => {\n\t\tconst styles = sidebarInsertionLineStyles();\n\t\treturn (\n\t\t\t<div data-sidebar=\"sidebar-insertion-line\" className={styles.wrapper({ className })} ref={ref} {...props}>\n\t\t\t\t<IconButton icon={Plus} size=\"xs\" className={styles.icon()} variant=\"link\" />\n\t\t\t\t<div className={styles.line()} />\n\t\t\t</div>\n\t\t);\n\t}\n);\nSidebarInsertionLine.displayName = \"SidebarInsertionLine\";\n\nexport {\n\tSidebar,\n\tSidebarContent,\n\tSidebarFooter,\n\tSidebarGroup,\n\tSidebarGroupAction,\n\tSidebarGroupContent,\n\tSidebarGroupLabel,\n\tSidebarHeader,\n\tSidebarInput,\n\tSidebarInset,\n\tSidebarMenu,\n\tSidebarMenuAction,\n\tSidebarMenuBadge,\n\tSidebarMenuButton,\n\tSidebarMenuItem,\n\tSidebarMenuSkeleton,\n\tSidebarMenuSub,\n\tSidebarMenuSubButton,\n\tSidebarMenuSubItem,\n\tSidebarProvider,\n\tSidebarRail,\n\tSidebarSeparator,\n\tSidebarInsertionLine,\n\tSidebarTrigger\n};\n"],"names":["PanelLeft","createLucideIcon","SidebarContext","React","useSidebar","context","SIDEBAR_COOKIE_NAME","SIDEBAR_COOKIE_MAX_AGE","SIDEBAR_WIDTH","SIDEBAR_WIDTH_MOBILE","SIDEBAR_WIDTH_ICON","SIDEBAR_KEYBOARD_SHORTCUT","sizebarProviderStyles","tv","SidebarProvider","defaultOpen","openProp","setOpenProp","className","style","children","props","ref","isMobile","useIsMobile","openMobile","setOpenMobile","hasInset","setHasInset","_open","_setOpen","open","setOpen","value","openState","toggleSidebar","handleKeyDown","event","state","contextValue","jsx","Sidebar","side","variant","collapsible","cn","jsxs","Fragment","Sheet","SheetContent","SheetHeader","SheetTitle","SheetDescription","SidebarTrigger","onClick","IconButton","sidebarRailStyles","SidebarRail","sidebarInsetStyles","SidebarInset","sidebarInputStyles","SidebarInput","TextInput","sidebarHeaderStyles","SidebarHeader","sidebarFooterStyles","SidebarFooter","sidebarSeparatorStyles","SidebarSeparator","Divider","sidebarContentStyles","SidebarContent","styles","ScrollShadowContainer","sidebarGroupStyles","SidebarGroup","sidebarGroupLabelStyles","SidebarGroupLabel","asChild","Slot","sidebarGroupActionStyles","SidebarGroupAction","sidebarGroupContentStyles","SidebarGroupContent","sidebarMenuStyles","SidebarMenu","sidebarMenuItemStyles","SidebarMenuItem","sidebarMenuButtonStyles","SidebarMenuButton","isActive","size","tooltip","Comp","button","Tooltip","TooltipTrigger","TooltipContent","sidebarMenuActionStyles","SidebarMenuAction","showOnHover","sidebarMenuBadgeStyles","SidebarMenuBadge","sidebarMenuSkeletonStyles","SidebarMenuSkeleton","showIcon","width","Skeleton","sidebarMenuSubStyles","SidebarMenuSub","sidebarMenuSubItemStyles","SidebarMenuSubItem","sidebarMenuSubButtonStyles","SidebarMenuSubButton","sidebarInsertionLineStyles","SidebarInsertionLine","Plus"],"mappings":";;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AASA,MAAMA,IAAYC,EAAiB,aAAa;AAAA,EAC9C,CAAC,QAAQ,EAAE,OAAO,MAAM,QAAQ,MAAM,GAAG,KAAK,GAAG,KAAK,IAAI,KAAK,KAAK,SAAQ,CAAE;AAAA,EAC9E,CAAC,QAAQ,EAAE,GAAG,WAAW,KAAK,SAAU,CAAA;AAC1C,CAAC,GCEYC,IAAiBC,EAAM,cAA0C,IAAI;AAE3E,SAASC,IAAa;AACtB,QAAAC,IAAUF,EAAM,WAAWD,CAAc;AAC/C,MAAI,CAACG;AACE,UAAA,IAAI,MAAM,mDAAmD;AAG7D,SAAAA;AACR;ACPA,MAAMC,IAAsB,iBACtBC,IAAyB,KAAK,KAAK,KAAK,GACxCC,IAAgB,SAChBC,IAAuB,SACvBC,IAAqB,QACrBC,IAA4B,KAE5BC,KAAwBC,EAAG;AAAA,EAChC,MAAM;AAAA,EACN,UAAU;AAAA,IACT,UAAU;AAAA,MACT,MAAM;AAAA,IAAA;AAAA,EACP;AAEF,CAAC,GAEKC,KAAkBX,EAAM,WAO5B,CAAC,EAAE,aAAAY,IAAc,IAAM,MAAMC,GAAU,cAAcC,GAAa,WAAAC,GAAW,OAAAC,GAAO,UAAAC,GAAU,GAAGC,KAASC,MAAQ;AACnH,QAAMC,IAAWC,EAAY,GACvB,CAACC,GAAYC,CAAa,IAAIvB,EAAM,SAAS,EAAK,GAClD,CAACwB,GAAUC,CAAW,IAAIzB,EAAM,SAAS,EAAK,GAI9C,CAAC0B,GAAOC,CAAQ,IAAI3B,EAAM,SAASY,CAAW,GAC9CgB,IAAOf,KAAYa,GACnBG,IAAU7B,EAAM;AAAA,IACrB,CAAC8B,MAAmD;AACnD,YAAMC,IAAY,OAAOD,KAAU,aAAaA,EAAMF,CAAI,IAAIE;AAC9D,MAAIhB,IACHA,EAAYiB,CAAS,IAErBJ,EAASI,CAAS,GAInB,SAAS,SAAS,GAAG5B,CAAmB,IAAI4B,CAAS,qBAAqB3B,CAAsB;AAAA,IACjG;AAAA,IACA,CAACU,GAAac,CAAI;AAAA,EACnB,GAGMI,IAAgBhC,EAAM,YAAY,MAChCoB,IAAWG,EAAc,CAACK,MAAS,CAACA,CAAI,IAAIC,EAAQ,CAACD,MAAS,CAACA,CAAI,GACxE,CAACR,GAAUS,GAASN,CAAa,CAAC;AAGrCvB,EAAAA,EAAM,UAAU,MAAM;AACf,UAAAiC,IAAgB,CAACC,MAAyB;AAC/C,MAAIA,EAAM,QAAQ1B,MAA8B0B,EAAM,WAAWA,EAAM,aACtEA,EAAM,eAAe,GACPF,EAAA;AAAA,IAEhB;AAEO,kBAAA,iBAAiB,WAAWC,CAAa,GACzC,MAAM,OAAO,oBAAoB,WAAWA,CAAa;AAAA,EAAA,GAC9D,CAACD,CAAa,CAAC;AAIZ,QAAAG,IAAQP,IAAO,aAAa,aAE5BQ,IAAepC,EAAM;AAAA,IAC1B,OAAO;AAAA,MACN,OAAAmC;AAAA,MACA,MAAAP;AAAA,MACA,SAAAC;AAAA,MACA,UAAAT;AAAA,MACA,YAAAE;AAAA,MACA,eAAAC;AAAA,MACA,eAAAS;AAAA,MACA,UAAAR;AAAA,MACA,aAAAC;AAAA,IAAA;AAAA,IAED,CAACU,GAAOP,GAAMC,GAAST,GAAUE,GAAYC,GAAeS,GAAeR,CAAQ;AAAA,EACpF;AAEA,SACE,gBAAAa,EAAAtC,EAAe,UAAf,EAAwB,OAAOqC,GAC/B,UAAA,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACA,OACC;AAAA,QACC,mBAAmBhC;AAAA,QACnB,wBAAwBE;AAAA,QACxB,GAAGS;AAAA,MACJ;AAAA,MAED,WAAWP,GAAsB,EAAE,UAAAe,GAAU,WAAAT,GAAW;AAAA,MACxD,KAAAI;AAAA,MACC,GAAGD;AAAA,MAEH,UAAAD;AAAA,IAAA;AAAA,EAAA,GAEH;AAEF,CAAC;AACDN,GAAgB,cAAc;AAE9B,MAAM2B,KAAUtC,EAAM,WAOpB,CAAC,EAAE,MAAAuC,IAAO,QAAQ,SAAAC,IAAU,WAAW,aAAAC,IAAc,aAAa,WAAA1B,GAAW,UAAAE,GAAU,GAAGC,KAASC,MAAQ;AAC5G,QAAM,EAAE,OAAAgB,GAAO,YAAAb,GAAY,eAAAC,GAAe,aAAAE,EAAA,IAAgBxB,EAAW;AAQrE,SANAD,EAAM,gBAAgB,MAAM;AAC3B,QAAIwC,MAAY;AAChB,aAAAf,EAAY,EAAI,GACT,MAAMA,EAAY,EAAK;AAAA,EAAA,GAC5B,CAACe,GAASf,CAAW,CAAC,GAErBgB,MAAgB,SAElB,gBAAAJ;AAAA,IAAC;AAAA,IAAA;AAAA,MACA,WAAWK;AAAA,QACV;AAAA,QACA3B;AAAA,MACD;AAAA,MACA,KAAAI;AAAA,MACC,GAAGD;AAAA,MAEH,UAAAD;AAAA,IAAA;AAAA,EACF,IAMA,gBAAA0B,EAAAC,GAAA,EAAA,UAAA;AAAA,IAAC,gBAAAP,EAAA,OAAA,EAAI,WAAU,sBACd,UAAC,gBAAAA,EAAAQ,GAAA,EAAM,MAAMvB,GAAY,cAAcC,GAAgB,GAAGL,GACzD,UAAA,gBAAAyB;AAAA,MAACG;AAAA,MAAA;AAAA,QACA,gBAAa;AAAA,QACb,eAAY;AAAA,QACZ,WAAU;AAAA,QACV,OACC;AAAA,UACC,mBAAmBxC;AAAA,QACpB;AAAA,QAED,MAAAiC;AAAA,QAEA,UAAA;AAAA,UAAC,gBAAAI,EAAAI,GAAA,EAAY,WAAU,WACtB,UAAA;AAAA,YAAA,gBAAAV,EAACW,KAAW,UAAO,UAAA,CAAA;AAAA,YACnB,gBAAAX,EAACY,KAAiB,UAA4B,+BAAA,CAAA;AAAA,UAAA,GAC/C;AAAA,UACC,gBAAAZ,EAAA,OAAA,EAAI,WAAU,+BAA+B,UAAApB,EAAS,CAAA;AAAA,QAAA;AAAA,MAAA;AAAA,OAEzD,EACD,CAAA;AAAA,IAEA,gBAAA0B;AAAA,MAAC;AAAA,MAAA;AAAA,QACA,KAAAxB;AAAA,QACA,WAAU;AAAA,QACV,cAAYgB;AAAA,QACZ,oBAAkBA,MAAU,cAAcM,IAAc;AAAA,QACxD,gBAAcD;AAAA,QACd,aAAWD;AAAA,QAGX,UAAA;AAAA,UAAA,gBAAAF;AAAA,YAAC;AAAA,YAAA;AAAA,cACA,WAAWK;AAAA,gBACV;AAAA,gBACA;AAAA,gBACA;AAAA,gBACAF,MAAY,cAAcA,MAAY,UACnC,yFACA;AAAA,cAAA;AAAA,YACJ;AAAA,UACD;AAAA,UAEA,gBAAAH;AAAA,YAAC;AAAA,YAAA;AAAA,cACA,WAAWK;AAAA,gBACV;AAAA,gBACAH,MAAS,SACN,mFACA;AAAA;AAAA,gBAEHC,MAAY,cAAcA,MAAY,UACnC,kGACA;AAAA,gBACHzB;AAAA,cACD;AAAA,cACC,GAAGG;AAAA,cAEJ,UAAA,gBAAAmB;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBACA,gBAAa;AAAA,kBACb,WAAU;AAAA,kBAET,UAAApB;AAAA,gBAAA;AAAA,cAAA;AAAA,YACF;AAAA,UAAA;AAAA,QACD;AAAA,MAAA;AAAA,IAAA;AAAA,EACD,GACD;AAEF,CAAC;AAEDqB,GAAQ,cAAc;AAEtB,MAAMY,KAAiBlD,EAAM;AAAA,EAC5B,CAAC,EAAE,SAAAmD,GAAS,GAAGjC,EAAA,GAASC,MAAQ;AACzB,UAAA,EAAE,eAAAa,EAAc,IAAI/B,EAAW;AAGpC,WAAA,gBAAAoC;AAAA,MAACe;AAAA,MAAA;AAAA,QACA,MAAMvD;AAAA,QACN,KAAAsB;AAAA,QACA,gBAAa;AAAA,QACb,SAAQ;AAAA,QACR,SAAS,CAACe,MAAU;AACnB,UAAAiB,IAAUjB,CAAK,GACDF,EAAA;AAAA,QACf;AAAA,QACC,GAAGd;AAAA,QAEJ,UAAC,gBAAAmB,EAAA,QAAA,EAAK,WAAU,WAAU,UAAc,iBAAA,CAAA;AAAA,MAAA;AAAA,IACzC;AAAA,EAAA;AAGH;AAEAa,GAAe,cAAc;AAE7B,MAAMG,KAAoB3C,EAAG;AAAA,EAC5B,MAAM;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAEF,CAAC,GAEK4C,KAActD,EAAM;AAAA,EACzB,CAAC,EAAE,WAAAe,GAAW,GAAGG,EAAA,GAASC,MAAQ;AAC3B,UAAA,EAAE,eAAAa,EAAc,IAAI/B,EAAW;AAGpC,WAAA,gBAAAoC;AAAA,MAAC;AAAA,MAAA;AAAA,QACA,KAAAlB;AAAA,QACA,gBAAa;AAAA,QACb,cAAW;AAAA,QACX,UAAU;AAAA,QACV,SAASa;AAAA,QACT,OAAM;AAAA,QACN,WAAWqB,GAAkB,EAAE,WAAAtC,GAAW;AAAA,QACzC,GAAGG;AAAA,MAAA;AAAA,IACL;AAAA,EAAA;AAGH;AAEAoC,GAAY,cAAc;AAE1B,MAAMC,KAAqB7C,EAAG;AAAA,EAC7B,MAAM;AAAA,IACL;AAAA,IACA;AAAA,EAAA;AAEF,CAAC,GAEK8C,KAAexD,EAAM,WAAyD,CAAC,EAAE,WAAAe,GAAW,GAAGG,EAAM,GAAGC,MACtG,gBAAAkB,EAAC,QAAK,EAAA,KAAAlB,GAAU,WAAWoC,GAAmB,EAAE,WAAAxC,EAAW,CAAA,GAAI,GAAGG,GAAO,CAChF;AAEDsC,GAAa,cAAc;AAE3B,MAAMC,KAAqB/C,EAAG;AAAA,EAC7B,MAAM;AACP,CAAC,GAEKgD,KAAe1D,EAAM;AAAA,EAC1B,CAAC,EAAE,WAAAe,GAAW,GAAGG,EAAA,GAASC,MACjB,gBAAAkB,EAAAsB,GAAA,EAAU,KAAAxC,GAAU,gBAAa,SAAQ,WAAWsC,GAAmB,EAAE,WAAA1C,EAAU,CAAC,GAAI,GAAGG,EAAO,CAAA;AAE5G;AAEAwC,GAAa,cAAc;AAE3B,MAAME,KAAsBlD,EAAG;AAAA,EAC9B,MAAM;AACP,CAAC,GAEKmD,KAAgB7D,EAAM,WAAwD,CAAC,EAAE,WAAAe,GAAW,GAAGG,EAAM,GAAGC,MACrG,gBAAAkB,EAAA,OAAA,EAAI,KAAAlB,GAAU,gBAAa,UAAS,WAAWyC,GAAoB,EAAE,WAAA7C,EAAU,CAAC,GAAI,GAAGG,EAAO,CAAA,CACtG;AAED2C,GAAc,cAAc;AAE5B,MAAMC,KAAsBpD,EAAG;AAAA,EAC9B,MAAM;AACP,CAAC,GAEKqD,KAAgB/D,EAAM,WAAwD,CAAC,EAAE,WAAAe,GAAW,GAAGG,EAAM,GAAGC,MACrG,gBAAAkB,EAAA,OAAA,EAAI,KAAAlB,GAAU,gBAAa,UAAS,WAAW2C,GAAoB,EAAE,WAAA/C,EAAU,CAAC,GAAI,GAAGG,EAAO,CAAA,CACtG;AAED6C,GAAc,cAAc;AAE5B,MAAMC,KAAyBtD,EAAG;AAAA,EACjC,MAAM;AACP,CAAC,GAEKuD,KAAmBjE,EAAM;AAAA,EAC9B,CAAC,EAAE,WAAAe,GAAW,GAAGG,EAAA,GAASC,MAExB,gBAAAkB;AAAA,IAAC6B;AAAA,IAAA;AAAA,MACA,KAAA/C;AAAA,MACA,aAAY;AAAA,MACZ,gBAAa;AAAA,MACb,WAAW6C,GAAuB,EAAE,WAAAjD,GAAW;AAAA,MAC9C,GAAGG;AAAA,IAAA;AAAA,EACL;AAGH;AAEA+C,GAAiB,cAAc;AAE/B,MAAME,KAAuBzD,EAAG;AAAA,EAC/B,OAAO;AAAA,IACN,SAAS;AAAA,EAAA;AAEX,CAAC,GAEK0D,KAAiBpE,EAAM;AAAA,EAC5B,CAAC,EAAE,WAAAe,GAAW,UAAAE,GAAU,GAAGC,EAAA,GAASC,MAAQ;AAC3C,UAAMkD,IAASF,GAAqB;AAGnC,WAAA,gBAAA9B;AAAA,MAACiC;AAAA,MAAA;AAAA,QACA,KAAAnD;AAAA,QACA,gBAAa;AAAA,QACb,WAAWkD,EAAO,QAAQ,EAAE,WAAAtD,GAAW;AAAA,QACvC,YAAY;AAAA,QACX,GAAGG;AAAA,QAEH,UAAAD;AAAA,MAAA;AAAA,IACF;AAAA,EAAA;AAGH;AAEAmD,GAAe,cAAc;AAE7B,MAAMG,KAAqB7D,EAAG;AAAA,EAC7B,MAAM;AACP,CAAC,GAEK8D,KAAexE,EAAM,WAAwD,CAAC,EAAE,WAAAe,GAAW,GAAGG,EAAM,GAAGC,MACpG,gBAAAkB,EAAA,OAAA,EAAI,KAAAlB,GAAU,gBAAa,SAAQ,WAAWoD,GAAmB,EAAE,WAAAxD,EAAU,CAAC,GAAI,GAAGG,EAAO,CAAA,CACpG;AAEDsD,GAAa,cAAc;AAE3B,MAAMC,KAA0B/D,EAAG;AAAA,EAClC,MAAM;AAAA,IACL;AAAA,IACA;AAAA,EAAA;AAEF,CAAC,GAEKgE,KAAoB1E,EAAM;AAAA,EAC/B,CAAC,EAAE,WAAAe,GAAW,SAAA4D,IAAU,IAAO,GAAGzD,KAASC,MAIxC,gBAAAkB,EAHWsC,IAAUC,IAAO,OAG5B,EAAK,KAAAzD,GAAU,gBAAa,eAAc,WAAWsD,GAAwB,EAAE,WAAA1D,EAAU,CAAC,GAAI,GAAGG,EAAO,CAAA;AAG5G;AAEAwD,GAAkB,cAAc;AAEhC,MAAMG,KAA2BnE,EAAG;AAAA,EACnC,MAAM;AAAA,IACL;AAAA;AAAA,IAEA;AAAA,IACA;AAAA,EAAA;AAEF,CAAC,GAEKoE,KAAqB9E,EAAM;AAAA,EAChC,CAAC,EAAE,WAAAe,GAAW,SAAA4D,IAAU,IAAO,GAAGzD,KAASC,MAIzC,gBAAAkB;AAAA,IAHYsC,IAAUC,IAAO;AAAA,IAG5B;AAAA,MACA,KAAAzD;AAAA,MACA,gBAAa;AAAA,MACb,WAAW0D,GAAyB,EAAE,WAAA9D,GAAW;AAAA,MAChD,GAAGG;AAAA,IAAA;AAAA,EACL;AAGH;AAEA4D,GAAmB,cAAc;AAEjC,MAAMC,KAA4BrE,EAAG;AAAA,EACpC,MAAM;AACP,CAAC,GAEKsE,KAAsBhF,EAAM;AAAA,EACjC,CAAC,EAAE,WAAAe,GAAW,GAAGG,EAAM,GAAGC,MACxB,gBAAAkB,EAAA,OAAA,EAAI,KAAAlB,GAAU,gBAAa,iBAAgB,WAAW4D,GAA0B,EAAE,WAAAhE,EAAW,CAAA,GAAI,GAAGG,EAAO,CAAA;AAE9G;AAEA8D,GAAoB,cAAc;AAElC,MAAMC,KAAoBvE,EAAG;AAAA,EAC5B,MAAM;AACP,CAAC,GAEKwE,KAAclF,EAAM,WAAyD,CAAC,EAAE,WAAAe,GAAW,GAAGG,EAAM,GAAGC,MAC5G,gBAAAkB,EAAC,QAAG,KAAAlB,GAAU,gBAAa,QAAO,WAAW8D,GAAkB,EAAE,WAAAlE,EAAW,CAAA,GAAI,GAAGG,GAAO,CAC1F;AAEDgE,GAAY,cAAc;AAE1B,MAAMC,KAAwBzE,EAAG;AAAA,EAChC,MAAM;AACP,CAAC,GAEK0E,KAAkBpF,EAAM,WAAsD,CAAC,EAAE,WAAAe,GAAW,GAAGG,EAAM,GAAGC,MAC7G,gBAAAkB,EAAC,QAAG,KAAAlB,GAAU,gBAAa,aAAY,WAAWgE,GAAsB,EAAE,WAAApE,EAAW,CAAA,GAAI,GAAGG,GAAO,CACnG;AAEDkE,GAAgB,cAAc;AAO9B,MAAMC,KAA0B3E,EAAG;AAAA,EAClC,MAAM;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD;AAAA,EACA,UAAU;AAAA,IACT,SAAS;AAAA,MACR,SAAS;AAAA,MACT,SACC;AAAA,IACF;AAAA,IACA,MAAM;AAAA,MACL,SAAS;AAAA,MACT,IAAI;AAAA,MACJ,IAAI;AAAA,IAAA;AAAA,EAEN;AAAA,EACA,iBAAiB;AAAA,IAChB,SAAS;AAAA,IACT,MAAM;AAAA,EAAA;AAER,CAAC,GAEK4E,KAAoBtF,EAAM,WAO9B,CAAC,EAAE,SAAA2E,IAAU,IAAO,UAAAY,IAAW,IAAO,SAAA/C,IAAU,WAAW,MAAAgD,IAAO,WAAW,SAAAC,GAAS,WAAA1E,GAAW,GAAGG,KAASC,MAAQ;AAChH,QAAAuE,IAAOf,IAAUC,IAAO,UACxB,EAAE,UAAAxD,GAAU,OAAAe,EAAM,IAAIlC,EAAW,GAEjC0F,IACL,gBAAAtD;AAAA,IAACqD;AAAA,IAAA;AAAA,MACA,KAAAvE;AAAA,MACA,gBAAa;AAAA,MACb,aAAWqE;AAAA,MACX,eAAaD;AAAA,MACb,WAAW7C,EAAG2C,GAAwB,EAAE,SAAA7C,GAAS,MAAAgD,EAAK,CAAC,GAAGzE,CAAS;AAAA,MAClE,GAAGG;AAAA,IAAA;AAAA,EACL;AAGD,SAAKuE,KAID,OAAOA,KAAY,aACZA,IAAA;AAAA,IACT,UAAUA;AAAA,EACX,sBAICG,GACA,EAAA,UAAA;AAAA,IAAC,gBAAAvD,EAAAwD,GAAA,EAAe,SAAO,IAAE,UAAOF,GAAA;AAAA,IAChC,gBAAAtD,EAACyD,GAAe,EAAA,MAAK,SAAQ,OAAM,UAAS,QAAQ3D,MAAU,eAAef,GAAW,GAAGqE,EAAS,CAAA;AAAA,EAAA,GACrG,KAbOE;AAeT,CAAC;AAEDL,GAAkB,cAAc;AAEhC,MAAMS,KAA0BrF,EAAG;AAAA,EAClC,MAAM;AAAA,IACL;AAAA;AAAA,IAEA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD;AAAA,EACA,UAAU;AAAA,IACT,SAAS;AAAA,MACR,MAAM;AAAA,IAAA;AAAA,EACP;AAEF,CAAC,GAEKsF,KAAoBhG,EAAM,WAM9B,CAAC,EAAE,WAAAe,GAAW,SAAA4D,IAAU,IAAO,aAAAsB,IAAc,IAAO,GAAG/E,EAAA,GAASC,MAIhE,gBAAAkB;AAAA,EAHYsC,IAAUC,IAAO;AAAA,EAG5B;AAAA,IACA,KAAAzD;AAAA,IACA,gBAAa;AAAA,IACb,WAAW4E,GAAwB,EAAE,SAASE,GAAa,WAAAlF,GAAW;AAAA,IACrE,GAAGG;AAAA,EAAA;AACL,CAED;AAED8E,GAAkB,cAAc;AAEhC,MAAME,KAAyBxF,EAAG;AAAA,EACjC,MAAM;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAEF,CAAC,GAEKyF,KAAmBnG,EAAM;AAAA,EAC9B,CAAC,EAAE,WAAAe,GAAW,GAAGG,EAAM,GAAGC,MACxB,gBAAAkB,EAAA,OAAA,EAAI,KAAAlB,GAAU,gBAAa,cAAa,WAAW+E,GAAuB,EAAE,WAAAnF,EAAW,CAAA,GAAI,GAAGG,EAAO,CAAA;AAExG;AAEAiF,GAAiB,cAAc;AAE/B,MAAMC,KAA4B1F,EAAG;AAAA,EACpC,OAAO;AAAA,IACN,SAAS;AAAA,IACT,UAAU;AAAA,IACV,cAAc;AAAA,EAAA;AAEhB,CAAC,GAEK2F,KAAsBrG,EAAM,WAKhC,CAAC,EAAE,WAAAe,GAAW,UAAAuF,IAAW,IAAO,GAAGpF,EAAM,GAAGC,MAAQ;AAE/C,QAAAoF,IAAQvG,EAAM,QAAQ,MACpB,GAAG,KAAK,MAAM,KAAK,WAAW,EAAE,IAAI,EAAE,KAC3C,EAAE,GAECqE,IAAS+B,GAA0B;AAEzC,SACE,gBAAAzD,EAAA,OAAA,EAAI,KAAAxB,GAAU,gBAAa,iBAAgB,WAAWkD,EAAO,QAAQ,EAAE,WAAAtD,EAAA,CAAW,GAAI,GAAGG,GACxF,UAAA;AAAA,IAAAoF,uBAAaE,GAAS,EAAA,WAAWnC,EAAO,aAAa,GAAG,gBAAa,sBAAqB;AAAA,IAC3F,gBAAAhC;AAAA,MAACmE;AAAA,MAAA;AAAA,QACA,WAAWnC,EAAO,SAAS;AAAA,QAC3B,gBAAa;AAAA,QACb,OACC;AAAA,UACC,oBAAoBkC;AAAA,QAAA;AAAA,MACrB;AAAA,IAAA;AAAA,EAEF,GACD;AAEF,CAAC;AAEDF,GAAoB,cAAc;AAElC,MAAMI,KAAuB/F,EAAG;AAAA,EAC/B,MAAM;AAAA,IACL;AAAA,IACA;AAAA,EAAA;AAEF,CAAC,GAEKgG,KAAiB1G,EAAM;AAAA,EAC5B,CAAC,EAAE,WAAAe,GAAW,GAAGG,EAAM,GAAGC,MACxB,gBAAAkB,EAAA,MAAA,EAAG,KAAAlB,GAAU,gBAAa,YAAW,WAAWsF,GAAqB,EAAE,WAAA1F,EAAW,CAAA,GAAI,GAAGG,EAAO,CAAA;AAEnG;AAEAwF,GAAe,cAAc;AAE7B,MAAMC,KAA2BjG,EAAG;AAAA,EACnC,MAAM;AACP,CAAC,GAEKkG,KAAqB5G,EAAM;AAAA,EAChC,CAAC,EAAE,WAAAe,GAAW,GAAGG,KAASC,MAAQ,gBAAAkB,EAAC,MAAG,EAAA,KAAAlB,GAAU,WAAWwF,GAAyB,EAAE,WAAA5F,GAAW,GAAI,GAAGG,EAAO,CAAA;AAChH;AAEA0F,GAAmB,cAAc;AAEjC,MAAMC,KAA6BnG,EAAG;AAAA,EACrC,MAAM;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,EACD;AAAA,EACA,UAAU;AAAA,IACT,MAAM;AAAA,MACL,IAAI;AAAA,MACJ,IAAI;AAAA,IAAA;AAAA,EACL;AAEF,CAAC,GAEKoG,KAAuB9G,EAAM,WAOjC,CAAC,EAAE,SAAA2E,IAAU,IAAO,MAAAa,IAAO,MAAM,UAAAD,GAAU,WAAAxE,GAAW,GAAGG,EAAA,GAASC,MAIlE,gBAAAkB;AAAA,EAHYsC,IAAUC,IAAO;AAAA,EAG5B;AAAA,IACA,KAAAzD;AAAA,IACA,gBAAa;AAAA,IACb,aAAWqE;AAAA,IACX,eAAaD;AAAA,IACb,WAAWsB,GAA2B,EAAE,MAAArB,GAAM,WAAAzE,GAAW;AAAA,IACxD,GAAGG;AAAA,EAAA;AACL,CAED;AAED4F,GAAqB,cAAc;AAEnC,MAAMC,KAA6BrG,EAAG;AAAA,EACrC,OAAO;AAAA,IACN,SAAS;AAAA,IACT,MAAM;AAAA,IACN,MAAM;AAAA,EAAA;AAER,CAAC,GAIKsG,KAAuBhH,EAAM;AAAA,EAClC,CAAC,EAAE,WAAAe,GAAW,GAAGG,EAAA,GAASC,MAAQ;AACjC,UAAMkD,IAAS0C,GAA2B;AAC1C,WACE,gBAAApE,EAAA,OAAA,EAAI,gBAAa,0BAAyB,WAAW0B,EAAO,QAAQ,EAAE,WAAAtD,EAAU,CAAC,GAAG,KAAAI,GAAW,GAAGD,GAClG,UAAA;AAAA,MAAC,gBAAAmB,EAAAe,GAAA,EAAW,MAAM6D,GAAM,MAAK,MAAK,WAAW5C,EAAO,KAAA,GAAQ,SAAQ,OAAO,CAAA;AAAA,MAC1E,gBAAAhC,EAAA,OAAA,EAAI,WAAWgC,EAAO,OAAQ,CAAA;AAAA,IAAA,GAChC;AAAA,EAAA;AAGH;AACA2C,GAAqB,cAAc;","x_google_ignoreList":[0]}
|
|
@@ -24,7 +24,7 @@ import { CSSProperties } from 'react';
|
|
|
24
24
|
* полупрозрачный CSS-цвет.
|
|
25
25
|
*/
|
|
26
26
|
export declare const TABLE_ROW_TINT: {
|
|
27
|
-
readonly selected: "hsl(var(--alpha-high-
|
|
27
|
+
readonly selected: "hsl(var(--alpha-accent-high-secondary))";
|
|
28
28
|
readonly inactive: "hsl(var(--status-error) / 5%)";
|
|
29
29
|
};
|
|
30
30
|
/**
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { s as a, o as E, p as s, u as l, r, q as _, v as R, j as t, k as L, m as N, l as O, x as n, w as G, n as i, t as b } from "../../treeModel-
|
|
1
|
+
import { s as a, o as E, p as s, u as l, r, q as _, v as R, j as t, k as L, m as N, l as O, x as n, w as G, n as i, t as b } from "../../treeModel-BlJWP4sc.js";
|
|
2
2
|
export {
|
|
3
3
|
a as TREE_CONNECTOR_Y,
|
|
4
4
|
E as TREE_INDENT,
|
package/dist/components/table.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { s, o as T, p as l, u as E, r as t, q as o, v as R, T as r, b as _, c as n, h as i, g as C, d as b, e as d, a as L, i as O, f as S, j as A, k as N, m as c, l as f, x as g, w as m, n as u, t as p } from "../treeModel-
|
|
1
|
+
import { s, o as T, p as l, u as E, r as t, q as o, v as R, T as r, b as _, c as n, h as i, g as C, d as b, e as d, a as L, i as O, f as S, j as A, k as N, m as c, l as f, x as g, w as m, n as u, t as p } from "../treeModel-BlJWP4sc.js";
|
|
2
2
|
import { C as I, g as G, u as x } from "../useColumnResize-wjfEyBBg.js";
|
|
3
|
-
import { C as F, u as H } from "../useColumnReorder-
|
|
4
|
-
import { T as W, a as h, b as k, o as w, t as z } from "../opaqueCell-
|
|
3
|
+
import { C as F, u as H } from "../useColumnReorder-tE5pMONm.js";
|
|
4
|
+
import { T as W, a as h, b as k, o as w, t as z } from "../opaqueCell-D95h1mFM.js";
|
|
5
5
|
import { C as K, T as U, a as q, b as M, d as P, e as j, c as v, i as V } from "../TableFillHandle-C_yvCTSl.js";
|
|
6
6
|
import { STICKY_FOOTER as J, STICKY_HEADER as Q, stickyCellStyles as Z, stickyOffset as $ } from "./table/sticky.js";
|
|
7
7
|
export {
|