ics-ui-kit 0.1.0-alpha.47 → 0.1.0-alpha.49
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/README.md +32 -32
- package/dist/AlertContext-CxjW1LVL.js.map +1 -1
- package/dist/AlertIcon-DQs4wtDT.js.map +1 -1
- package/dist/Button--ooZ8ALo.js.map +1 -1
- package/dist/ButtonBase-Sf-fcVor.js.map +1 -1
- package/dist/CarouselItem-DCAuGIKz.js.map +1 -1
- package/dist/{CheckboxField-DvsGq3kV.js → CheckboxField-BR2hWwTO.js} +2 -2
- package/dist/CheckboxField-BR2hWwTO.js.map +1 -0
- package/dist/{Command-BU9Ouar3.js → Command-C_iW2joV.js} +2 -2
- package/dist/Command-C_iW2joV.js.map +1 -0
- package/dist/ComponentVariantProvider-B0SFUaXB.js.map +1 -1
- package/dist/Description-BTPMlTT-.js.map +1 -1
- package/dist/Dialog-CkDUxZUj.js.map +1 -1
- package/dist/Divider-Dm2gjy8W.js.map +1 -1
- package/dist/EmptyState-DRKjscH-.js.map +1 -1
- package/dist/ErrorState-B26k67-z.js.map +1 -1
- package/dist/FeatureIcon-yM7FhAXa.js.map +1 -1
- package/dist/{Field-CdocNMjg.js → Field-DpbrZvvg.js} +2 -2
- package/dist/Field-DpbrZvvg.js.map +1 -0
- package/dist/{FieldLabel-DRwAhGMz.js → FieldLabel-saPDMPPr.js} +2 -2
- package/dist/FieldLabel-saPDMPPr.js.map +1 -0
- package/dist/FolderSvg-cw0DxNVy.js.map +1 -1
- package/dist/{FormFooterTemplate-1MNxzQ7J.js → FormFooterTemplate-DV4pN3b-.js} +2 -2
- package/dist/FormFooterTemplate-DV4pN3b-.js.map +1 -0
- package/dist/FormHeader-BA2dJOPS.js.map +1 -1
- package/dist/{FormStack-DbtLshF8.js → FormStack-D-0fK-Zy.js} +3 -3
- package/dist/FormStack-D-0fK-Zy.js.map +1 -0
- package/dist/HintState-BxrCAWqq.js.map +1 -1
- package/dist/Icon-DH3ev9GK.js.map +1 -1
- package/dist/IconButton-moydR8IU.js.map +1 -1
- package/dist/{IconTooltip-CibXkFmt.js → IconTooltip-BbswlF6Q.js} +3 -3
- package/dist/IconTooltip-BbswlF6Q.js.map +1 -0
- package/dist/ImagePlaceholder-B6mGYVx2.js.map +1 -1
- package/dist/ImagePreview-BIBDrLVV.js.map +1 -1
- package/dist/ImageUploader-C-_ZPptv.js.map +1 -1
- package/dist/Indicator-B75A1Vgp.js.map +1 -1
- package/dist/InputGroup-CmstXpkX.js.map +1 -1
- package/dist/InputOTP-B2e1nfSO.js.map +1 -1
- package/dist/Loader-BpHiL6W-.js.map +1 -1
- package/dist/MenuItem-pvsONHlh.js.map +1 -1
- package/dist/{MenuItemShortcut-CGbVYqRi.js → MenuItemShortcut-DK7VneTR.js} +2 -2
- package/dist/MenuItemShortcut-DK7VneTR.js.map +1 -0
- package/dist/MenuItemText-7uPl9P3z.js.map +1 -1
- package/dist/Overlay-CLw_hvAN.js.map +1 -1
- package/dist/{Popover-CkezMtEz.js → Popover-DmwXZwYd.js} +17 -17
- package/dist/Popover-DmwXZwYd.js.map +1 -0
- package/dist/RichButton-BuenN3bJ.js.map +1 -1
- package/dist/ScrollShadowContainer-ODG9ChxA.js.map +1 -1
- package/dist/{SearchSelectTag-D1bFK1ux.js → SearchSelectTag-Ce-Q9JGR.js} +2 -2
- package/dist/SearchSelectTag-Ce-Q9JGR.js.map +1 -0
- package/dist/{Select-Bfrb-J8s.js → Select-CWbLja8r.js} +195 -195
- package/dist/Select-CWbLja8r.js.map +1 -0
- package/dist/Sheet-Dx9mwcF6.js.map +1 -1
- package/dist/Shortcut-D8L15_ed.js +22 -0
- package/dist/Shortcut-D8L15_ed.js.map +1 -0
- package/dist/Skeleton-y6I-i9q5.js.map +1 -1
- package/dist/{Tag-DJuVSJh5.js → Tag-CofZF1d0.js} +6 -6
- package/dist/Tag-CofZF1d0.js.map +1 -0
- package/dist/Text-DeBE8AKl.js.map +1 -1
- package/dist/TextInput-DTzujp77.js.map +1 -1
- package/dist/{Toggle-CS29Nksd.js → Toggle-CCD2UHWr.js} +15 -13
- package/dist/Toggle-CCD2UHWr.js.map +1 -0
- package/dist/{Tooltip-Cm1-WEdA.js → Tooltip-BH_Jc6ub.js} +2 -2
- package/dist/Tooltip-BH_Jc6ub.js.map +1 -0
- package/dist/TriggerButton-a2ClSj7f.js +33 -0
- package/dist/TriggerButton-a2ClSj7f.js.map +1 -0
- package/dist/blocks/auth/otp-form.js +1 -1
- package/dist/blocks/auth/otp-form.js.map +1 -1
- package/dist/cn-dsXlqdJg.js.map +1 -1
- package/dist/components/alert-dialog.js.map +1 -1
- package/dist/components/alert.js.map +1 -1
- package/dist/components/avatar/Avatar.d.ts +1 -1
- package/dist/components/avatar/avatar-indicator/AvatarIndicator.d.ts +3 -1
- package/dist/components/avatar/avatar-label/AvatarLabel.d.ts +1 -1
- package/dist/components/avatar.js +110 -93
- package/dist/components/avatar.js.map +1 -1
- package/dist/components/badge.js.map +1 -1
- package/dist/components/breadcrumb.js.map +1 -1
- package/dist/components/button.js +1 -1
- package/dist/components/button.js.map +1 -1
- package/dist/components/calendar.js.map +1 -1
- package/dist/components/card.js.map +1 -1
- package/dist/components/carousel.js.map +1 -1
- package/dist/components/checkbox.js +1 -1
- package/dist/components/collapsible.js.map +1 -1
- package/dist/components/color-tile.js.map +1 -1
- package/dist/components/command.js +1 -1
- package/dist/components/container.js.map +1 -1
- package/dist/components/counter.js.map +1 -1
- package/dist/components/dialog.js +1 -1
- package/dist/components/dialog.js.map +1 -1
- package/dist/components/divider.js.map +1 -1
- package/dist/components/drawer.js +1 -1
- package/dist/components/drawer.js.map +1 -1
- package/dist/components/dropdown.js +2 -2
- package/dist/components/dropdown.js.map +1 -1
- package/dist/components/error-state.js.map +1 -1
- package/dist/components/field.js +1 -1
- package/dist/components/file-upload.js.map +1 -1
- package/dist/components/form.js +3 -3
- package/dist/components/form.js.map +1 -1
- package/dist/components/gallery.js.map +1 -1
- package/dist/components/icon-tooltip.js +1 -1
- package/dist/components/input.js.map +1 -1
- package/dist/components/label.js +1 -1
- package/dist/components/menu-item.js +1 -1
- package/dist/components/menu-item.js.map +1 -1
- package/dist/components/overflow-tooltip.js +1 -1
- package/dist/components/overflow-tooltip.js.map +1 -1
- package/dist/components/page-state.js.map +1 -1
- package/dist/components/popover.js +1 -1
- package/dist/components/portal-container.js.map +1 -1
- package/dist/components/progress-circle.js.map +1 -1
- package/dist/components/progress.js.map +1 -1
- package/dist/components/prose.js.map +1 -1
- package/dist/components/radio-group.js.map +1 -1
- package/dist/components/resizable.js.map +1 -1
- package/dist/components/scheduler.js +1 -1
- package/dist/components/scheduler.js.map +1 -1
- package/dist/components/search-select.js +4 -4
- package/dist/components/search-select.js.map +1 -1
- package/dist/components/select.js +1 -1
- package/dist/components/shortcut.js +1 -1
- package/dist/components/sidebar.js +71 -68
- package/dist/components/sidebar.js.map +1 -1
- package/dist/components/slider.js.map +1 -1
- package/dist/components/stepper.js.map +1 -1
- package/dist/components/switch.js +1 -1
- package/dist/components/switch.js.map +1 -1
- package/dist/components/system-state.js.map +1 -1
- package/dist/components/table.js.map +1 -1
- package/dist/components/tabs.js.map +1 -1
- package/dist/components/tag-input.js +2 -2
- package/dist/components/tag-input.js.map +1 -1
- package/dist/components/tag.js +1 -1
- package/dist/components/textarea.js.map +1 -1
- package/dist/components/toast.js.map +1 -1
- package/dist/components/toggle/Toggle.d.ts +8 -2
- package/dist/components/toggle-group.js +1 -1
- package/dist/components/toggle-group.js.map +1 -1
- package/dist/components/toggle.js +1 -1
- package/dist/components/toolbar.js.map +1 -1
- package/dist/components/tooltip.js +1 -1
- package/dist/downloadFile-yZV-aaO2.js.map +1 -1
- package/dist/font-inter.css +15 -15
- package/dist/font-menlo.css +15 -15
- package/dist/index-0ioNhtNM.js.map +1 -1
- package/dist/index-5Bhkapwi.js.map +1 -1
- package/dist/index-BGQepRFJ.js.map +1 -1
- package/dist/index-BGfrl8IX.js.map +1 -1
- package/dist/index-BNirMMl4.js.map +1 -1
- package/dist/index-BVqs-uqP.js.map +1 -1
- package/dist/index-BZPx6jYI.js.map +1 -1
- package/dist/index-BdXokVmb.js.map +1 -1
- package/dist/index-Bwf2hSw6.js.map +1 -1
- package/dist/index-C0UREtMP.js.map +1 -1
- package/dist/index-C3surxzg.js.map +1 -1
- package/dist/index-CCKe-Mpx.js.map +1 -1
- package/dist/index-CpDnqHCm.js.map +1 -1
- package/dist/index-DFZozV_h.js.map +1 -1
- package/dist/index-DG36Jang.js.map +1 -1
- package/dist/index-DfNPZZ8M.js.map +1 -1
- package/dist/index-DpXwz_9G.js.map +1 -1
- package/dist/index-Nzc5v6h6.js.map +1 -1
- package/dist/index-l1F44JQJ.js.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/inputBaseStyles-BZJgQP7O.js.map +1 -1
- package/dist/lib/utils.js.map +1 -1
- package/dist/styles-scoped.css +5846 -5832
- package/dist/styles.css +1949 -1935
- package/dist/types/css.d.ts +4 -4
- package/dist/useBreakpoints-wEcfJPHd.js.map +1 -1
- package/dist/useDebounce-BRah78CF.js.map +1 -1
- package/dist/useFileUpload-iDag0iqM.js.map +1 -1
- package/dist/useMergeRefs-qoKniYqT.js.map +1 -1
- package/dist/usePortalContainer-ae6EzS08.js.map +1 -1
- package/dist/vendors/tanstack/react-table.js.map +1 -1
- package/dist/zod-BMNoK3aM.js.map +1 -1
- package/package.json +172 -172
- package/dist/CheckboxField-DvsGq3kV.js.map +0 -1
- package/dist/Command-BU9Ouar3.js.map +0 -1
- package/dist/Field-CdocNMjg.js.map +0 -1
- package/dist/FieldLabel-DRwAhGMz.js.map +0 -1
- package/dist/FormFooterTemplate-1MNxzQ7J.js.map +0 -1
- package/dist/FormStack-DbtLshF8.js.map +0 -1
- package/dist/IconTooltip-CibXkFmt.js.map +0 -1
- package/dist/MenuItemShortcut-CGbVYqRi.js.map +0 -1
- package/dist/Popover-CkezMtEz.js.map +0 -1
- package/dist/SearchSelectTag-D1bFK1ux.js.map +0 -1
- package/dist/Select-Bfrb-J8s.js.map +0 -1
- package/dist/Shortcut-Cm4nUx2C.js +0 -22
- package/dist/Shortcut-Cm4nUx2C.js.map +0 -1
- package/dist/Tag-DJuVSJh5.js.map +0 -1
- package/dist/Toggle-CS29Nksd.js.map +0 -1
- package/dist/Tooltip-Cm1-WEdA.js.map +0 -1
- package/dist/TriggerButton-BzXO5wcQ.js +0 -33
- package/dist/TriggerButton-BzXO5wcQ.js.map +0 -1
- package/dist/design-tokens.source.json +0 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsx as r, jsxs as h } from "react/jsx-runtime";
|
|
2
2
|
import { u as _ } from "../useBreakpoints-wEcfJPHd.js";
|
|
3
3
|
import s from "react";
|
|
4
|
-
import { T as z, b as T, c as B, a as D } from "../Tooltip-
|
|
4
|
+
import { T as z, b as T, c as B, a as D } from "../Tooltip-BH_Jc6ub.js";
|
|
5
5
|
import { c as w } from "../cn-dsXlqdJg.js";
|
|
6
6
|
import { S as A, a as E, b as G, d as O, e as H } from "../Sheet-Dx9mwcF6.js";
|
|
7
7
|
import { I as L } from "../IconButton-moydR8IU.js";
|
|
@@ -30,8 +30,8 @@ function N() {
|
|
|
30
30
|
}
|
|
31
31
|
const F = "sidebar_state", W = 60 * 60 * 24 * 7, V = "16rem", U = "18rem", X = "3rem", Y = "b", J = n({
|
|
32
32
|
base: "group/sidebar-wrapper flex min-h-svh w-full has-[[data-variant=inset]]:bg-primary-bg"
|
|
33
|
-
}), Q = s.forwardRef(({ defaultOpen: e = !0, open: a, onOpenChange: t, className:
|
|
34
|
-
const c = _(), [
|
|
33
|
+
}), Q = s.forwardRef(({ defaultOpen: e = !0, open: a, onOpenChange: t, className: o, style: i, children: d, ...p }, f) => {
|
|
34
|
+
const c = _(), [m, b] = s.useState(!1), [y, C] = s.useState(e), g = a ?? y, S = s.useCallback(
|
|
35
35
|
(l) => {
|
|
36
36
|
const u = typeof l == "function" ? l(g) : l;
|
|
37
37
|
t ? t(u) : C(u), document.cookie = `${F}=${u}; path=/; max-age=${W}`;
|
|
@@ -50,11 +50,11 @@ const F = "sidebar_state", W = 60 * 60 * 24 * 7, V = "16rem", U = "18rem", X = "
|
|
|
50
50
|
open: g,
|
|
51
51
|
setOpen: S,
|
|
52
52
|
isMobile: c,
|
|
53
|
-
openMobile:
|
|
53
|
+
openMobile: m,
|
|
54
54
|
setOpenMobile: b,
|
|
55
55
|
toggleSidebar: x
|
|
56
56
|
}),
|
|
57
|
-
[M, g, S, c,
|
|
57
|
+
[M, g, S, c, m, b, x]
|
|
58
58
|
);
|
|
59
59
|
return /* @__PURE__ */ r(I.Provider, { value: k, children: /* @__PURE__ */ r(D, { delayDuration: 0, children: /* @__PURE__ */ r(
|
|
60
60
|
"div",
|
|
@@ -62,27 +62,30 @@ const F = "sidebar_state", W = 60 * 60 * 24 * 7, V = "16rem", U = "18rem", X = "
|
|
|
62
62
|
style: {
|
|
63
63
|
"--sidebar-width": V,
|
|
64
64
|
"--sidebar-width-icon": X,
|
|
65
|
-
...
|
|
65
|
+
...i
|
|
66
66
|
},
|
|
67
|
-
className: J({ className:
|
|
68
|
-
ref:
|
|
67
|
+
className: J({ className: o }),
|
|
68
|
+
ref: f,
|
|
69
69
|
...p,
|
|
70
70
|
children: d
|
|
71
71
|
}
|
|
72
72
|
) }) });
|
|
73
73
|
});
|
|
74
74
|
Q.displayName = "SidebarProvider";
|
|
75
|
-
const Z = s.forwardRef(({ side: e = "left", variant: a = "sidebar", collapsible: t = "offcanvas", className:
|
|
76
|
-
const { isMobile:
|
|
75
|
+
const Z = s.forwardRef(({ side: e = "left", variant: a = "sidebar", collapsible: t = "offcanvas", className: o, children: i, ...d }, p) => {
|
|
76
|
+
const { isMobile: f, state: c, openMobile: m, setOpenMobile: b } = N();
|
|
77
77
|
return t === "none" ? /* @__PURE__ */ r(
|
|
78
78
|
"div",
|
|
79
79
|
{
|
|
80
|
-
className: w(
|
|
80
|
+
className: w(
|
|
81
|
+
"text-sidebar-foreground flex h-full w-[--sidebar-width] flex-col bg-primary-bg",
|
|
82
|
+
o
|
|
83
|
+
),
|
|
81
84
|
ref: p,
|
|
82
85
|
...d,
|
|
83
|
-
children:
|
|
86
|
+
children: i
|
|
84
87
|
}
|
|
85
|
-
) :
|
|
88
|
+
) : f ? /* @__PURE__ */ r(A, { open: m, onOpenChange: b, ...d, children: /* @__PURE__ */ h(
|
|
86
89
|
E,
|
|
87
90
|
{
|
|
88
91
|
"data-sidebar": "sidebar",
|
|
@@ -97,7 +100,7 @@ const Z = s.forwardRef(({ side: e = "left", variant: a = "sidebar", collapsible:
|
|
|
97
100
|
/* @__PURE__ */ r(O, { children: "Sidebar" }),
|
|
98
101
|
/* @__PURE__ */ r(H, { children: "Displays the mobile sidebar." })
|
|
99
102
|
] }),
|
|
100
|
-
/* @__PURE__ */ r("div", { className: "flex h-full w-full flex-col", children:
|
|
103
|
+
/* @__PURE__ */ r("div", { className: "flex h-full w-full flex-col", children: i })
|
|
101
104
|
]
|
|
102
105
|
}
|
|
103
106
|
) }) : /* @__PURE__ */ h(
|
|
@@ -129,15 +132,15 @@ const Z = s.forwardRef(({ side: e = "left", variant: a = "sidebar", collapsible:
|
|
|
129
132
|
e === "left" ? "left-0 group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]" : "right-0 group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)]",
|
|
130
133
|
// Adjust the padding for floating and inset variants.
|
|
131
134
|
a === "floating" || a === "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",
|
|
132
|
-
|
|
135
|
+
o
|
|
133
136
|
),
|
|
134
137
|
...d,
|
|
135
138
|
children: /* @__PURE__ */ r(
|
|
136
139
|
"div",
|
|
137
140
|
{
|
|
138
141
|
"data-sidebar": "sidebar",
|
|
139
|
-
className: "
|
|
140
|
-
children:
|
|
142
|
+
className: "group-data-[variant=floating]:border-sidebar-border flex h-full w-full flex-col bg-primary-bg group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:border group-data-[variant=floating]:shadow",
|
|
143
|
+
children: i
|
|
141
144
|
}
|
|
142
145
|
)
|
|
143
146
|
}
|
|
@@ -149,7 +152,7 @@ const Z = s.forwardRef(({ side: e = "left", variant: a = "sidebar", collapsible:
|
|
|
149
152
|
Z.displayName = "Sidebar";
|
|
150
153
|
const ee = s.forwardRef(
|
|
151
154
|
({ onClick: e, ...a }, t) => {
|
|
152
|
-
const { toggleSidebar:
|
|
155
|
+
const { toggleSidebar: o } = N();
|
|
153
156
|
return /* @__PURE__ */ r(
|
|
154
157
|
L,
|
|
155
158
|
{
|
|
@@ -157,8 +160,8 @@ const ee = s.forwardRef(
|
|
|
157
160
|
ref: t,
|
|
158
161
|
"data-sidebar": "trigger",
|
|
159
162
|
variant: "ghost",
|
|
160
|
-
onClick: (
|
|
161
|
-
e?.(
|
|
163
|
+
onClick: (i) => {
|
|
164
|
+
e?.(i), o();
|
|
162
165
|
},
|
|
163
166
|
...a,
|
|
164
167
|
children: /* @__PURE__ */ r("span", { className: "sr-only", children: "Toggle Sidebar" })
|
|
@@ -178,7 +181,7 @@ const ae = n({
|
|
|
178
181
|
]
|
|
179
182
|
}), te = s.forwardRef(
|
|
180
183
|
({ className: e, ...a }, t) => {
|
|
181
|
-
const { toggleSidebar:
|
|
184
|
+
const { toggleSidebar: o } = N();
|
|
182
185
|
return /* @__PURE__ */ r(
|
|
183
186
|
"button",
|
|
184
187
|
{
|
|
@@ -186,7 +189,7 @@ const ae = n({
|
|
|
186
189
|
"data-sidebar": "rail",
|
|
187
190
|
"aria-label": "Toggle Sidebar",
|
|
188
191
|
tabIndex: -1,
|
|
189
|
-
onClick:
|
|
192
|
+
onClick: o,
|
|
190
193
|
title: "Toggle Sidebar",
|
|
191
194
|
className: ae({ className: e }),
|
|
192
195
|
...a
|
|
@@ -202,12 +205,12 @@ const re = n({
|
|
|
202
205
|
]
|
|
203
206
|
}), se = s.forwardRef(({ className: e, ...a }, t) => /* @__PURE__ */ r("main", { ref: t, className: re({ className: e }), ...a }));
|
|
204
207
|
se.displayName = "SidebarInset";
|
|
205
|
-
const
|
|
208
|
+
const ie = n({
|
|
206
209
|
base: "h-8 w-full shadow-none"
|
|
207
|
-
}),
|
|
208
|
-
({ className: e, ...a }, t) => /* @__PURE__ */ r(K, { ref: t, "data-sidebar": "input", className:
|
|
210
|
+
}), oe = s.forwardRef(
|
|
211
|
+
({ className: e, ...a }, t) => /* @__PURE__ */ r(K, { ref: t, "data-sidebar": "input", className: ie({ className: e }), ...a })
|
|
209
212
|
);
|
|
210
|
-
|
|
213
|
+
oe.displayName = "SidebarInput";
|
|
211
214
|
const ne = n({
|
|
212
215
|
base: "flex flex-col gap-2 p-2"
|
|
213
216
|
}), de = s.forwardRef(({ className: e, ...a }, t) => /* @__PURE__ */ r("div", { ref: t, "data-sidebar": "header", className: ne({ className: e }), ...a }));
|
|
@@ -217,7 +220,7 @@ const le = n({
|
|
|
217
220
|
}), ce = s.forwardRef(({ className: e, ...a }, t) => /* @__PURE__ */ r("div", { ref: t, "data-sidebar": "footer", className: le({ className: e }), ...a }));
|
|
218
221
|
ce.displayName = "SidebarFooter";
|
|
219
222
|
const be = n({
|
|
220
|
-
base: "
|
|
223
|
+
base: "w-auto bg-secondary-border"
|
|
221
224
|
}), ue = s.forwardRef(
|
|
222
225
|
({ className: e, ...a }, t) => /* @__PURE__ */ r(
|
|
223
226
|
P,
|
|
@@ -236,26 +239,26 @@ const pe = n({
|
|
|
236
239
|
wrapper: "flex min-h-0 flex-1 flex-col bg-primary-bg",
|
|
237
240
|
content: "flex flex-col gap-2 group-data-[collapsible=icon]:overflow-hidden"
|
|
238
241
|
}
|
|
239
|
-
}),
|
|
240
|
-
({ className: e, children: a, ...t },
|
|
241
|
-
const
|
|
242
|
+
}), me = s.forwardRef(
|
|
243
|
+
({ className: e, children: a, ...t }, o) => {
|
|
244
|
+
const i = pe();
|
|
242
245
|
return /* @__PURE__ */ r(
|
|
243
246
|
j,
|
|
244
247
|
{
|
|
245
|
-
ref:
|
|
248
|
+
ref: o,
|
|
246
249
|
"data-sidebar": "content",
|
|
247
|
-
wrapperClassName:
|
|
248
|
-
className:
|
|
250
|
+
wrapperClassName: i.wrapper(),
|
|
251
|
+
className: i.content({ className: e }),
|
|
249
252
|
...t,
|
|
250
253
|
children: a
|
|
251
254
|
}
|
|
252
255
|
);
|
|
253
256
|
}
|
|
254
257
|
);
|
|
255
|
-
|
|
256
|
-
const
|
|
258
|
+
me.displayName = "SidebarContent";
|
|
259
|
+
const fe = n({
|
|
257
260
|
base: "relative flex w-full min-w-0 flex-col p-2"
|
|
258
|
-
}), ge = s.forwardRef(({ className: e, ...a }, t) => /* @__PURE__ */ r("div", { ref: t, "data-sidebar": "group", className:
|
|
261
|
+
}), ge = s.forwardRef(({ className: e, ...a }, t) => /* @__PURE__ */ r("div", { ref: t, "data-sidebar": "group", className: fe({ className: e }), ...a }));
|
|
259
262
|
ge.displayName = "SidebarGroup";
|
|
260
263
|
const he = n({
|
|
261
264
|
base: [
|
|
@@ -263,7 +266,7 @@ const he = n({
|
|
|
263
266
|
"group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0"
|
|
264
267
|
]
|
|
265
268
|
}), ve = s.forwardRef(
|
|
266
|
-
({ className: e, asChild: a = !1, ...t },
|
|
269
|
+
({ className: e, asChild: a = !1, ...t }, o) => /* @__PURE__ */ r(a ? v : "div", { ref: o, "data-sidebar": "group-label", className: he({ className: e }), ...t })
|
|
267
270
|
);
|
|
268
271
|
ve.displayName = "SidebarGroupLabel";
|
|
269
272
|
const ye = n({
|
|
@@ -274,10 +277,10 @@ const ye = n({
|
|
|
274
277
|
"group-data-[collapsible=icon]:hidden"
|
|
275
278
|
]
|
|
276
279
|
}), Se = s.forwardRef(
|
|
277
|
-
({ className: e, asChild: a = !1, ...t },
|
|
280
|
+
({ className: e, asChild: a = !1, ...t }, o) => /* @__PURE__ */ r(
|
|
278
281
|
a ? v : "button",
|
|
279
282
|
{
|
|
280
|
-
ref:
|
|
283
|
+
ref: o,
|
|
281
284
|
"data-sidebar": "group-action",
|
|
282
285
|
className: ye({ className: e }),
|
|
283
286
|
...t
|
|
@@ -303,13 +306,13 @@ const Ce = n({
|
|
|
303
306
|
base: [
|
|
304
307
|
"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]",
|
|
305
308
|
"hover:bg-secondary-bg-hover hover:text-primary-fg focus-visible:shadow-focus",
|
|
306
|
-
"active:bg-
|
|
309
|
+
"active:bg-primary-bg-hover active:text-primary-accent",
|
|
307
310
|
"disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50",
|
|
308
|
-
"data-[active=true]:bg-
|
|
311
|
+
"data-[active=true]:bg-primary-bg-hover data-[active=true]:font-medium data-[active=true]:text-primary-accent data-[active=true]:hover:bg-primary-bg-hover data-[active=true]:hover:text-primary-accent",
|
|
309
312
|
"data-[state=open]:hover:bg-secondary-bg-hover data-[state=open]:hover:text-primary-fg",
|
|
310
313
|
"group-data-[collapsible=icon]:!size-8 group-data-[collapsible=icon]:!p-2 [&>span:last-child]:truncate",
|
|
311
|
-
"[&>svg]:size-4 [&>svg]:shrink-0 [&>svg]:text-muted data-
|
|
312
|
-
"group-data-[collapsible=icon]:[&>svg]:text-secondary-fg group-data-[collapsible=icon]:[&>svg]:hover:text-primary-fg group-data-[collapsible=icon]:data-
|
|
314
|
+
"[&>svg]:size-4 [&>svg]:shrink-0 [&>svg]:text-muted [&[data-active=true]>svg]:text-primary-accent",
|
|
315
|
+
"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",
|
|
313
316
|
"group-has-[[data-sidebar=menu-action]]/menu-item:pr-8"
|
|
314
317
|
],
|
|
315
318
|
variants: {
|
|
@@ -327,23 +330,23 @@ const Ce = n({
|
|
|
327
330
|
variant: "default",
|
|
328
331
|
size: "default"
|
|
329
332
|
}
|
|
330
|
-
}), ke = s.forwardRef(({ asChild: e = !1, isActive: a = !1, variant: t = "default", size:
|
|
331
|
-
const c = e ? v : "button", { isMobile:
|
|
333
|
+
}), ke = s.forwardRef(({ asChild: e = !1, isActive: a = !1, variant: t = "default", size: o = "default", tooltip: i, className: d, ...p }, f) => {
|
|
334
|
+
const c = e ? v : "button", { isMobile: m, state: b } = N(), y = /* @__PURE__ */ r(
|
|
332
335
|
c,
|
|
333
336
|
{
|
|
334
|
-
ref:
|
|
337
|
+
ref: f,
|
|
335
338
|
"data-sidebar": "menu-button",
|
|
336
|
-
"data-size":
|
|
339
|
+
"data-size": o,
|
|
337
340
|
"data-active": a,
|
|
338
|
-
className: w(Ce({ variant: t, size:
|
|
341
|
+
className: w(Ce({ variant: t, size: o }), d),
|
|
339
342
|
...p
|
|
340
343
|
}
|
|
341
344
|
);
|
|
342
|
-
return
|
|
343
|
-
children:
|
|
345
|
+
return i ? (typeof i == "string" && (i = {
|
|
346
|
+
children: i
|
|
344
347
|
}), /* @__PURE__ */ h(z, { children: [
|
|
345
348
|
/* @__PURE__ */ r(T, { asChild: !0, children: y }),
|
|
346
|
-
/* @__PURE__ */ r(B, { side: "right", align: "center", hidden: b !== "collapsed" ||
|
|
349
|
+
/* @__PURE__ */ r(B, { side: "right", align: "center", hidden: b !== "collapsed" || m, ...i })
|
|
347
350
|
] })) : y;
|
|
348
351
|
});
|
|
349
352
|
ke.displayName = "SidebarMenuButton";
|
|
@@ -359,23 +362,23 @@ const _e = n({
|
|
|
359
362
|
],
|
|
360
363
|
variants: {
|
|
361
364
|
isHover: {
|
|
362
|
-
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-
|
|
365
|
+
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"
|
|
363
366
|
}
|
|
364
367
|
}
|
|
365
|
-
}), ze = s.forwardRef(({ className: e, asChild: a = !1, showOnHover: t = !1, ...
|
|
368
|
+
}), ze = s.forwardRef(({ className: e, asChild: a = !1, showOnHover: t = !1, ...o }, i) => /* @__PURE__ */ r(
|
|
366
369
|
a ? v : "button",
|
|
367
370
|
{
|
|
368
|
-
ref:
|
|
371
|
+
ref: i,
|
|
369
372
|
"data-sidebar": "menu-action",
|
|
370
373
|
className: _e({ isHover: t, className: e }),
|
|
371
|
-
...
|
|
374
|
+
...o
|
|
372
375
|
}
|
|
373
376
|
));
|
|
374
377
|
ze.displayName = "SidebarMenuAction";
|
|
375
378
|
const Te = n({
|
|
376
379
|
base: [
|
|
377
|
-
"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-
|
|
378
|
-
"peer-hover/menu-button:text-
|
|
380
|
+
"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",
|
|
381
|
+
"peer-hover/menu-button:text-muted peer-disabled/menu-button:opacity-50 peer-data-[active=true]/menu-button:text-muted",
|
|
379
382
|
"peer-data-[size=sm]/menu-button:top-1",
|
|
380
383
|
"peer-data-[size=default]/menu-button:top-1.5",
|
|
381
384
|
"peer-data-[size=lg]/menu-button:top-2.5",
|
|
@@ -391,9 +394,9 @@ const De = n({
|
|
|
391
394
|
skeleton: "h-4 max-w-[--skeleton-width] flex-1",
|
|
392
395
|
skeletonIcon: "size-4 rounded-md"
|
|
393
396
|
}
|
|
394
|
-
}), Ae = s.forwardRef(({ className: e, showIcon: a = !1, ...t },
|
|
395
|
-
const
|
|
396
|
-
return /* @__PURE__ */ h("div", { ref:
|
|
397
|
+
}), Ae = s.forwardRef(({ className: e, showIcon: a = !1, ...t }, o) => {
|
|
398
|
+
const i = s.useMemo(() => `${Math.floor(Math.random() * 40) + 50}%`, []), d = De();
|
|
399
|
+
return /* @__PURE__ */ h("div", { ref: o, "data-sidebar": "menu-skeleton", className: d.wrapper({ className: e }), ...t, children: [
|
|
397
400
|
a && /* @__PURE__ */ r(R, { className: d.skeletonIcon(), "data-sidebar": "menu-skeleton-icon" }),
|
|
398
401
|
/* @__PURE__ */ r(
|
|
399
402
|
R,
|
|
@@ -401,7 +404,7 @@ const De = n({
|
|
|
401
404
|
className: d.skeleton(),
|
|
402
405
|
"data-sidebar": "menu-skeleton-text",
|
|
403
406
|
style: {
|
|
404
|
-
"--skeleton-width":
|
|
407
|
+
"--skeleton-width": i
|
|
405
408
|
}
|
|
406
409
|
}
|
|
407
410
|
)
|
|
@@ -425,8 +428,8 @@ const Oe = n({
|
|
|
425
428
|
He.displayName = "SidebarMenuSubItem";
|
|
426
429
|
const Le = n({
|
|
427
430
|
base: [
|
|
428
|
-
"flex h-7 min-w-0 -translate-x-px 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:ring-2 active:bg-
|
|
429
|
-
"data-[active=true]:bg-
|
|
431
|
+
"flex h-7 min-w-0 -translate-x-px 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:ring-2 active:bg-primary-bg-hover active:text-primary-accent 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",
|
|
432
|
+
"data-[active=true]:bg-primary-bg-hover data-[active=true]:text-primary-accent",
|
|
430
433
|
"group-data-[collapsible=icon]:hidden"
|
|
431
434
|
],
|
|
432
435
|
variants: {
|
|
@@ -435,28 +438,28 @@ const Le = n({
|
|
|
435
438
|
md: "text-sm"
|
|
436
439
|
}
|
|
437
440
|
}
|
|
438
|
-
}), Ke = s.forwardRef(({ asChild: e = !1, size: a = "md", isActive: t, className:
|
|
441
|
+
}), Ke = s.forwardRef(({ asChild: e = !1, size: a = "md", isActive: t, className: o, ...i }, d) => /* @__PURE__ */ r(
|
|
439
442
|
e ? v : "a",
|
|
440
443
|
{
|
|
441
444
|
ref: d,
|
|
442
445
|
"data-sidebar": "menu-sub-button",
|
|
443
446
|
"data-size": a,
|
|
444
447
|
"data-active": t,
|
|
445
|
-
className: Le({ size: a, className:
|
|
446
|
-
...
|
|
448
|
+
className: Le({ size: a, className: o }),
|
|
449
|
+
...i
|
|
447
450
|
}
|
|
448
451
|
));
|
|
449
452
|
Ke.displayName = "SidebarMenuSubButton";
|
|
450
453
|
export {
|
|
451
454
|
Z as Sidebar,
|
|
452
|
-
|
|
455
|
+
me as SidebarContent,
|
|
453
456
|
ce as SidebarFooter,
|
|
454
457
|
ge as SidebarGroup,
|
|
455
458
|
Se as SidebarGroupAction,
|
|
456
459
|
we as SidebarGroupContent,
|
|
457
460
|
ve as SidebarGroupLabel,
|
|
458
461
|
de as SidebarHeader,
|
|
459
|
-
|
|
462
|
+
oe as SidebarInput,
|
|
460
463
|
se as SidebarInset,
|
|
461
464
|
Me as SidebarMenu,
|
|
462
465
|
ze as SidebarMenuAction,
|
|
@@ -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\";\r\n\r\nexport type SidebarContextProps = {\r\n\tstate: \"expanded\" | \"collapsed\";\r\n\topen: boolean;\r\n\tsetOpen: (open: boolean) => void;\r\n\topenMobile: boolean;\r\n\tsetOpenMobile: (open: boolean) => void;\r\n\tisMobile: boolean;\r\n\ttoggleSidebar: () => void;\r\n};\r\n\r\nexport const SidebarContext = React.createContext<SidebarContextProps | null>(null);\r\n\r\nexport function useSidebar() {\r\n\tconst context = React.useContext(SidebarContext);\r\n\tif (!context) {\r\n\t\tthrow new Error(\"useSidebar must be used within a SidebarProvider.\");\r\n\t}\r\n\r\n\treturn context;\r\n}\r\n","import { useIsMobile } from \"@/hooks/useBreakpoints\";\r\nimport React from \"react\";\r\nimport { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from \"../tooltip\";\r\nimport { cn } from \"@/lib/utils\";\r\nimport { Sheet, SheetContent, SheetDescription, SheetHeader, SheetTitle } from \"../sheet/Sheet\";\r\nimport { Button, IconButton } from \"../button\";\r\nimport { PanelLeft } from \"lucide-react\";\r\nimport { TextInput } from \"../input\";\r\nimport { Divider } from \"../divider\";\r\nimport { Slot } from \"@radix-ui/react-slot\";\r\nimport { tv } from \"tailwind-variants\";\r\nimport { Skeleton } from \"../skeleton\";\r\nimport { SidebarContext, SidebarContextProps, useSidebar } from \"./SidebarContext\";\r\nimport { ScrollShadowContainer } from \"../scroll-shadow-container\";\r\nimport { VariantsConfig } from \"@/lib/utils/variants\";\r\n\r\nconst SIDEBAR_COOKIE_NAME = \"sidebar_state\";\r\nconst SIDEBAR_COOKIE_MAX_AGE = 60 * 60 * 24 * 7;\r\nconst SIDEBAR_WIDTH = \"16rem\";\r\nconst SIDEBAR_WIDTH_MOBILE = \"18rem\";\r\nconst SIDEBAR_WIDTH_ICON = \"3rem\";\r\nconst SIDEBAR_KEYBOARD_SHORTCUT = \"b\";\r\n\r\nconst sizebarProviderStyles = tv({\r\n\tbase: \"group/sidebar-wrapper flex min-h-svh w-full has-[[data-variant=inset]]:bg-primary-bg\"\r\n});\r\n\r\nconst SidebarProvider = React.forwardRef<\r\n\tHTMLDivElement,\r\n\tReact.ComponentProps<\"div\"> & {\r\n\t\tdefaultOpen?: boolean;\r\n\t\topen?: boolean;\r\n\t\tonOpenChange?: (open: boolean) => void;\r\n\t}\r\n>(({ defaultOpen = true, open: openProp, onOpenChange: setOpenProp, className, style, children, ...props }, ref) => {\r\n\tconst isMobile = useIsMobile();\r\n\tconst [openMobile, setOpenMobile] = React.useState(false);\r\n\r\n\t// This is the internal state of the sidebar.\r\n\t// We use openProp and setOpenProp for control from outside the component.\r\n\tconst [_open, _setOpen] = React.useState(defaultOpen);\r\n\tconst open = openProp ?? _open;\r\n\tconst setOpen = React.useCallback(\r\n\t\t(value: boolean | ((value: boolean) => boolean)) => {\r\n\t\t\tconst openState = typeof value === \"function\" ? value(open) : value;\r\n\t\t\tif (setOpenProp) {\r\n\t\t\t\tsetOpenProp(openState);\r\n\t\t\t} else {\r\n\t\t\t\t_setOpen(openState);\r\n\t\t\t}\r\n\r\n\t\t\t// This sets the cookie to keep the sidebar state.\r\n\t\t\tdocument.cookie = `${SIDEBAR_COOKIE_NAME}=${openState}; path=/; max-age=${SIDEBAR_COOKIE_MAX_AGE}`;\r\n\t\t},\r\n\t\t[setOpenProp, open]\r\n\t);\r\n\r\n\t// Helper to toggle the sidebar.\r\n\tconst toggleSidebar = React.useCallback(() => {\r\n\t\treturn isMobile ? setOpenMobile((open) => !open) : setOpen((open) => !open);\r\n\t}, [isMobile, setOpen, setOpenMobile]);\r\n\r\n\t// Adds a keyboard shortcut to toggle the sidebar.\r\n\tReact.useEffect(() => {\r\n\t\tconst handleKeyDown = (event: KeyboardEvent) => {\r\n\t\t\tif (event.key === SIDEBAR_KEYBOARD_SHORTCUT && (event.metaKey || event.ctrlKey)) {\r\n\t\t\t\tevent.preventDefault();\r\n\t\t\t\ttoggleSidebar();\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\twindow.addEventListener(\"keydown\", handleKeyDown);\r\n\t\treturn () => window.removeEventListener(\"keydown\", handleKeyDown);\r\n\t}, [toggleSidebar]);\r\n\r\n\t// We add a state so that we can do data-state=\"expanded\" or \"collapsed\".\r\n\t// This makes it easier to style the sidebar with Tailwind classes.\r\n\tconst state = open ? \"expanded\" : \"collapsed\";\r\n\r\n\tconst contextValue = React.useMemo<SidebarContextProps>(\r\n\t\t() => ({\r\n\t\t\tstate,\r\n\t\t\topen,\r\n\t\t\tsetOpen,\r\n\t\t\tisMobile,\r\n\t\t\topenMobile,\r\n\t\t\tsetOpenMobile,\r\n\t\t\ttoggleSidebar\r\n\t\t}),\r\n\t\t[state, open, setOpen, isMobile, openMobile, setOpenMobile, toggleSidebar]\r\n\t);\r\n\r\n\treturn (\r\n\t\t<SidebarContext.Provider value={contextValue}>\r\n\t\t\t<TooltipProvider delayDuration={0}>\r\n\t\t\t\t<div\r\n\t\t\t\t\tstyle={\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\"--sidebar-width\": SIDEBAR_WIDTH,\r\n\t\t\t\t\t\t\t\"--sidebar-width-icon\": SIDEBAR_WIDTH_ICON,\r\n\t\t\t\t\t\t\t...style\r\n\t\t\t\t\t\t} as React.CSSProperties\r\n\t\t\t\t\t}\r\n\t\t\t\t\tclassName={sizebarProviderStyles({ className })}\r\n\t\t\t\t\tref={ref}\r\n\t\t\t\t\t{...props}\r\n\t\t\t\t>\r\n\t\t\t\t\t{children}\r\n\t\t\t\t</div>\r\n\t\t\t</TooltipProvider>\r\n\t\t</SidebarContext.Provider>\r\n\t);\r\n});\r\nSidebarProvider.displayName = \"SidebarProvider\";\r\n\r\nconst Sidebar = React.forwardRef<\r\n\tHTMLDivElement,\r\n\tReact.ComponentProps<\"div\"> & {\r\n\t\tside?: \"left\" | \"right\";\r\n\t\tvariant?: \"sidebar\" | \"floating\" | \"inset\";\r\n\t\tcollapsible?: \"offcanvas\" | \"icon\" | \"none\";\r\n\t}\r\n>(({ side = \"left\", variant = \"sidebar\", collapsible = \"offcanvas\", className, children, ...props }, ref) => {\r\n\tconst { isMobile, state, openMobile, setOpenMobile } = useSidebar();\r\n\r\n\tif (collapsible === \"none\") {\r\n\t\treturn (\r\n\t\t\t<div\r\n\t\t\t\tclassName={cn(\"bg-sidebar text-sidebar-foreground flex h-full w-[--sidebar-width] flex-col\", className)}\r\n\t\t\t\tref={ref}\r\n\t\t\t\t{...props}\r\n\t\t\t>\r\n\t\t\t\t{children}\r\n\t\t\t</div>\r\n\t\t);\r\n\t}\r\n\r\n\tif (isMobile) {\r\n\t\treturn (\r\n\t\t\t<Sheet open={openMobile} onOpenChange={setOpenMobile} {...props}>\r\n\t\t\t\t<SheetContent\r\n\t\t\t\t\tdata-sidebar=\"sidebar\"\r\n\t\t\t\t\tdata-mobile=\"true\"\r\n\t\t\t\t\tclassName=\"w-[--sidebar-width] bg-primary-bg p-0 text-secondary-fg [&>button]:hidden\"\r\n\t\t\t\t\tstyle={\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\"--sidebar-width\": SIDEBAR_WIDTH_MOBILE\r\n\t\t\t\t\t\t} as React.CSSProperties\r\n\t\t\t\t\t}\r\n\t\t\t\t\tside={side}\r\n\t\t\t\t>\r\n\t\t\t\t\t<SheetHeader className=\"sr-only\">\r\n\t\t\t\t\t\t<SheetTitle>Sidebar</SheetTitle>\r\n\t\t\t\t\t\t<SheetDescription>Displays the mobile sidebar.</SheetDescription>\r\n\t\t\t\t\t</SheetHeader>\r\n\t\t\t\t\t<div className=\"flex h-full w-full flex-col\">{children}</div>\r\n\t\t\t\t</SheetContent>\r\n\t\t\t</Sheet>\r\n\t\t);\r\n\t}\r\n\r\n\treturn (\r\n\t\t<div\r\n\t\t\tref={ref}\r\n\t\t\tclassName=\"text-sidebar-foreground group peer hidden md:block\"\r\n\t\t\tdata-state={state}\r\n\t\t\tdata-collapsible={state === \"collapsed\" ? collapsible : \"\"}\r\n\t\t\tdata-variant={variant}\r\n\t\t\tdata-side={side}\r\n\t\t>\r\n\t\t\t{/* This is what handles the sidebar gap on desktop */}\r\n\t\t\t<div\r\n\t\t\t\tclassName={cn(\r\n\t\t\t\t\t\"relative w-[--sidebar-width] bg-transparent transition-[width] duration-200 ease-linear\",\r\n\t\t\t\t\t\"group-data-[collapsible=offcanvas]:w-0\",\r\n\t\t\t\t\t\"group-data-[side=right]:rotate-180\",\r\n\t\t\t\t\tvariant === \"floating\" || variant === \"inset\"\r\n\t\t\t\t\t\t? \"group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)_+_theme(spacing.4))]\"\r\n\t\t\t\t\t\t: \"group-data-[collapsible=icon]:w-[--sidebar-width-icon]\"\r\n\t\t\t\t)}\r\n\t\t\t/>\r\n\t\t\t<div\r\n\t\t\t\tclassName={cn(\r\n\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 md:flex\",\r\n\t\t\t\t\tside === \"left\"\r\n\t\t\t\t\t\t? \"left-0 group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]\"\r\n\t\t\t\t\t\t: \"right-0 group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)]\",\r\n\t\t\t\t\t// Adjust the padding for floating and inset variants.\r\n\t\t\t\t\tvariant === \"floating\" || variant === \"inset\"\r\n\t\t\t\t\t\t? \"p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)_+_theme(spacing.4)_+2px)]\"\r\n\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\",\r\n\t\t\t\t\tclassName\r\n\t\t\t\t)}\r\n\t\t\t\t{...props}\r\n\t\t\t>\r\n\t\t\t\t<div\r\n\t\t\t\t\tdata-sidebar=\"sidebar\"\r\n\t\t\t\t\tclassName=\"bg-sidebar group-data-[variant=floating]:border-sidebar-border flex h-full w-full flex-col group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:border group-data-[variant=floating]:shadow\"\r\n\t\t\t\t>\r\n\t\t\t\t\t{children}\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t);\r\n});\r\n\r\nSidebar.displayName = \"Sidebar\";\r\n\r\nconst SidebarTrigger = React.forwardRef<React.ElementRef<typeof Button>, React.ComponentProps<typeof Button>>(\r\n\t({ onClick, ...props }, ref) => {\r\n\t\tconst { toggleSidebar } = useSidebar();\r\n\r\n\t\treturn (\r\n\t\t\t<IconButton\r\n\t\t\t\ticon={PanelLeft}\r\n\t\t\t\tref={ref}\r\n\t\t\t\tdata-sidebar=\"trigger\"\r\n\t\t\t\tvariant=\"ghost\"\r\n\t\t\t\tonClick={(event) => {\r\n\t\t\t\t\tonClick?.(event);\r\n\t\t\t\t\ttoggleSidebar();\r\n\t\t\t\t}}\r\n\t\t\t\t{...props}\r\n\t\t\t>\r\n\t\t\t\t<span className=\"sr-only\">Toggle Sidebar</span>\r\n\t\t\t</IconButton>\r\n\t\t);\r\n\t}\r\n);\r\n\r\nSidebarTrigger.displayName = \"SidebarTrigger\";\r\n\r\nconst sidebarRailStyles = tv({\r\n\tbase: [\r\n\t\t\"absolute inset-y-0 z-20 hidden w-4 -translate-x-1/2 transition-all ease-linear after:absolute after:inset-y-0 after:left-1/2 after:w-[2px] hover:after:bg-secondary-border group-data-[side=left]:-right-4 group-data-[side=right]:left-0 sm:flex\",\r\n\t\t\"[[data-side=left]_&]:cursor-w-resize [[data-side=right]_&]:cursor-e-resize\",\r\n\t\t\"[[data-side=left][data-state=collapsed]_&]:cursor-e-resize [[data-side=right][data-state=collapsed]_&]:cursor-w-resize\",\r\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\",\r\n\t\t\"[[data-side=left][data-collapsible=offcanvas]_&]:-right-2\",\r\n\t\t\"[[data-side=right][data-collapsible=offcanvas]_&]:-left-2\"\r\n\t]\r\n});\r\n\r\nconst SidebarRail = React.forwardRef<HTMLButtonElement, React.ComponentProps<\"button\">>(\r\n\t({ className, ...props }, ref) => {\r\n\t\tconst { toggleSidebar } = useSidebar();\r\n\r\n\t\treturn (\r\n\t\t\t<button\r\n\t\t\t\tref={ref}\r\n\t\t\t\tdata-sidebar=\"rail\"\r\n\t\t\t\taria-label=\"Toggle Sidebar\"\r\n\t\t\t\ttabIndex={-1}\r\n\t\t\t\tonClick={toggleSidebar}\r\n\t\t\t\ttitle=\"Toggle Sidebar\"\r\n\t\t\t\tclassName={sidebarRailStyles({ className })}\r\n\t\t\t\t{...props}\r\n\t\t\t/>\r\n\t\t);\r\n\t}\r\n);\r\n\r\nSidebarRail.displayName = \"SidebarRail\";\r\n\r\nconst sidebarInsetStyles = tv({\r\n\tbase: [\r\n\t\t\"relative flex w-full flex-1 flex-col bg-secondary-bg\",\r\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\"\r\n\t]\r\n});\r\n\r\nconst SidebarInset = React.forwardRef<HTMLDivElement, React.ComponentProps<\"main\">>(({ className, ...props }, ref) => {\r\n\treturn <main ref={ref} className={sidebarInsetStyles({ className })} {...props} />;\r\n});\r\n\r\nSidebarInset.displayName = \"SidebarInset\";\r\n\r\nconst sidebarInputStyles = tv({\r\n\tbase: \"h-8 w-full shadow-none\"\r\n});\r\n\r\nconst SidebarInput = React.forwardRef<React.ElementRef<typeof TextInput>, React.ComponentProps<typeof TextInput>>(\r\n\t({ className, ...props }, ref) => {\r\n\t\treturn <TextInput ref={ref} data-sidebar=\"input\" className={sidebarInputStyles({ className })} {...props} />;\r\n\t}\r\n);\r\n\r\nSidebarInput.displayName = \"SidebarInput\";\r\n\r\nconst sidebarHeaderStyles = tv({\r\n\tbase: \"flex flex-col gap-2 p-2\"\r\n});\r\n\r\nconst SidebarHeader = React.forwardRef<HTMLDivElement, React.ComponentProps<\"div\">>(({ className, ...props }, ref) => {\r\n\treturn <div ref={ref} data-sidebar=\"header\" className={sidebarHeaderStyles({ className })} {...props} />;\r\n});\r\n\r\nSidebarHeader.displayName = \"SidebarHeader\";\r\n\r\nconst sidebarFooterStyles = tv({\r\n\tbase: \"flex flex-col gap-2 p-2\"\r\n});\r\n\r\nconst SidebarFooter = React.forwardRef<HTMLDivElement, React.ComponentProps<\"div\">>(({ className, ...props }, ref) => {\r\n\treturn <div ref={ref} data-sidebar=\"footer\" className={sidebarFooterStyles({ className })} {...props} />;\r\n});\r\n\r\nSidebarFooter.displayName = \"SidebarFooter\";\r\n\r\nconst sidebarSeparatorStyles = tv({\r\n\tbase: \"mx-2 w-auto bg-secondary-border\"\r\n});\r\n\r\nconst SidebarSeparator = React.forwardRef<React.ElementRef<typeof Divider>, React.ComponentProps<typeof Divider>>(\r\n\t({ className, ...props }, ref) => {\r\n\t\treturn (\r\n\t\t\t<Divider\r\n\t\t\t\tref={ref}\r\n\t\t\t\torientation=\"horizontal\"\r\n\t\t\t\tdata-sidebar=\"separator\"\r\n\t\t\t\tclassName={sidebarSeparatorStyles({ className })}\r\n\t\t\t\t{...props}\r\n\t\t\t/>\r\n\t\t);\r\n\t}\r\n);\r\n\r\nSidebarSeparator.displayName = \"SidebarSeparator\";\r\n\r\nconst sidebarContentStyles = tv({\r\n\tslots: {\r\n\t\twrapper: \"flex min-h-0 flex-1 flex-col bg-primary-bg\",\r\n\t\tcontent: \"flex flex-col gap-2 group-data-[collapsible=icon]:overflow-hidden\"\r\n\t}\r\n});\r\n\r\nconst SidebarContent = React.forwardRef<HTMLDivElement, React.ComponentProps<\"div\">>(\r\n\t({ className, children, ...props }, ref) => {\r\n\t\tconst styles = sidebarContentStyles();\r\n\r\n\t\treturn (\r\n\t\t\t<ScrollShadowContainer\r\n\t\t\t\tref={ref}\r\n\t\t\t\tdata-sidebar=\"content\"\r\n\t\t\t\twrapperClassName={styles.wrapper()}\r\n\t\t\t\tclassName={styles.content({ className })}\r\n\t\t\t\t{...props}\r\n\t\t\t>\r\n\t\t\t\t{children}\r\n\t\t\t</ScrollShadowContainer>\r\n\t\t);\r\n\t}\r\n);\r\n\r\nSidebarContent.displayName = \"SidebarContent\";\r\n\r\nconst sidebarGroupStyles = tv({\r\n\tbase: \"relative flex w-full min-w-0 flex-col p-2\"\r\n});\r\n\r\nconst SidebarGroup = React.forwardRef<HTMLDivElement, React.ComponentProps<\"div\">>(({ className, ...props }, ref) => {\r\n\treturn <div ref={ref} data-sidebar=\"group\" className={sidebarGroupStyles({ className })} {...props} />;\r\n});\r\n\r\nSidebarGroup.displayName = \"SidebarGroup\";\r\n\r\nconst sidebarGroupLabelStyles = tv({\r\n\tbase: [\r\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\",\r\n\t\t\"group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0\"\r\n\t]\r\n});\r\n\r\nconst SidebarGroupLabel = React.forwardRef<HTMLDivElement, React.ComponentProps<\"div\"> & { asChild?: boolean }>(\r\n\t({ className, asChild = false, ...props }, ref) => {\r\n\t\tconst Comp = asChild ? Slot : \"div\";\r\n\r\n\t\treturn (\r\n\t\t\t<Comp ref={ref} data-sidebar=\"group-label\" className={sidebarGroupLabelStyles({ className })} {...props} />\r\n\t\t);\r\n\t}\r\n);\r\n\r\nSidebarGroupLabel.displayName = \"SidebarGroupLabel\";\r\n\r\nconst sidebarGroupActionStyles = tv({\r\n\tbase: [\r\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\",\r\n\t\t// Increases the hit area of the button on mobile.\r\n\t\t\"after:absolute after:-inset-2 after:md:hidden\",\r\n\t\t\"group-data-[collapsible=icon]:hidden\"\r\n\t]\r\n});\r\n\r\nconst SidebarGroupAction = React.forwardRef<HTMLButtonElement, React.ComponentProps<\"button\"> & { asChild?: boolean }>(\r\n\t({ className, asChild = false, ...props }, ref) => {\r\n\t\tconst Comp = asChild ? Slot : \"button\";\r\n\r\n\t\treturn (\r\n\t\t\t<Comp\r\n\t\t\t\tref={ref}\r\n\t\t\t\tdata-sidebar=\"group-action\"\r\n\t\t\t\tclassName={sidebarGroupActionStyles({ className })}\r\n\t\t\t\t{...props}\r\n\t\t\t/>\r\n\t\t);\r\n\t}\r\n);\r\n\r\nSidebarGroupAction.displayName = \"SidebarGroupAction\";\r\n\r\nconst sidebarGroupContentStyles = tv({\r\n\tbase: \"w-full text-sm\"\r\n});\r\n\r\nconst SidebarGroupContent = React.forwardRef<HTMLDivElement, React.ComponentProps<\"div\">>(\r\n\t({ className, ...props }, ref) => (\r\n\t\t<div ref={ref} data-sidebar=\"group-content\" className={sidebarGroupContentStyles({ className })} {...props} />\r\n\t)\r\n);\r\n\r\nSidebarGroupContent.displayName = \"SidebarGroupContent\";\r\n\r\nconst sidebarMenuStyles = tv({\r\n\tbase: \"flex w-full min-w-0 flex-col gap-1\"\r\n});\r\n\r\nconst SidebarMenu = React.forwardRef<HTMLUListElement, React.ComponentProps<\"ul\">>(({ className, ...props }, ref) => (\r\n\t<ul ref={ref} data-sidebar=\"menu\" className={sidebarMenuStyles({ className })} {...props} />\r\n));\r\n\r\nSidebarMenu.displayName = \"SidebarMenu\";\r\n\r\nconst sidebarMenuItemStyles = tv({\r\n\tbase: \"group/menu-item relative\"\r\n});\r\n\r\nconst SidebarMenuItem = React.forwardRef<HTMLLIElement, React.ComponentProps<\"li\">>(({ className, ...props }, ref) => (\r\n\t<li ref={ref} data-sidebar=\"menu-item\" className={sidebarMenuItemStyles({ className })} {...props} />\r\n));\r\n\r\nSidebarMenuItem.displayName = \"SidebarMenuItem\";\r\n\r\nexport interface SidebarMenuButtonVariants {\r\n\tvariant?: \"default\" | \"outline\";\r\n\tsize?: \"default\" | \"sm\" | \"lg\";\r\n}\r\n\r\nconst sidebarMenuButtonStyles = tv({\r\n\tbase: [\r\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]\",\r\n\t\t\"hover:bg-secondary-bg-hover hover:text-primary-fg focus-visible:shadow-focus\",\r\n\t\t\"active:bg-secondary-bg-hover active:text-primary-fg\",\r\n\t\t\"disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50\",\r\n\t\t\"data-[active=true]:bg-secondary-bg-hover data-[active=true]:font-medium data-[active=true]:text-primary-accent\",\r\n\t\t\"data-[state=open]:hover:bg-secondary-bg-hover data-[state=open]:hover:text-primary-fg\",\r\n\t\t\"group-data-[collapsible=icon]:!size-8 group-data-[collapsible=icon]:!p-2 [&>span:last-child]:truncate\",\r\n\t\t\"[&>svg]:size-4 [&>svg]:shrink-0 [&>svg]:text-muted data-[active=true]:[&>svg]:text-primary-accent\",\r\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\",\r\n\t\t\"group-has-[[data-sidebar=menu-action]]/menu-item:pr-8\"\r\n\t],\r\n\tvariants: {\r\n\t\tvariant: {\r\n\t\t\tdefault: \"hover:bg-secondary-bg-hover hover:text-primary-fg\",\r\n\t\t\toutline:\r\n\t\t\t\t\"border border-secondary-border bg-primary-bg shadow-soft-sm hover:bg-secondary-bg-hover hover:text-primary-fg\"\r\n\t\t},\r\n\t\tsize: {\r\n\t\t\tdefault: \"h-8 text-sm\",\r\n\t\t\tsm: \"h-7 text-xs\",\r\n\t\t\tlg: \"h-12 text-sm group-data-[collapsible=icon]:!p-0\"\r\n\t\t}\r\n\t} satisfies VariantsConfig<SidebarMenuButtonVariants>,\r\n\tdefaultVariants: {\r\n\t\tvariant: \"default\",\r\n\t\tsize: \"default\"\r\n\t}\r\n});\r\n\r\nconst SidebarMenuButton = React.forwardRef<\r\n\tHTMLButtonElement,\r\n\tReact.ComponentProps<\"button\"> & {\r\n\t\tasChild?: boolean;\r\n\t\tisActive?: boolean;\r\n\t\ttooltip?: string | React.ComponentProps<typeof TooltipContent>;\r\n\t} & SidebarMenuButtonVariants\r\n>(({ asChild = false, isActive = false, variant = \"default\", size = \"default\", tooltip, className, ...props }, ref) => {\r\n\tconst Comp = asChild ? Slot : \"button\";\r\n\tconst { isMobile, state } = useSidebar();\r\n\r\n\tconst button = (\r\n\t\t<Comp\r\n\t\t\tref={ref}\r\n\t\t\tdata-sidebar=\"menu-button\"\r\n\t\t\tdata-size={size}\r\n\t\t\tdata-active={isActive}\r\n\t\t\tclassName={cn(sidebarMenuButtonStyles({ variant, size }), className)}\r\n\t\t\t{...props}\r\n\t\t/>\r\n\t);\r\n\r\n\tif (!tooltip) {\r\n\t\treturn button;\r\n\t}\r\n\r\n\tif (typeof tooltip === \"string\") {\r\n\t\ttooltip = {\r\n\t\t\tchildren: tooltip\r\n\t\t};\r\n\t}\r\n\r\n\treturn (\r\n\t\t<Tooltip>\r\n\t\t\t<TooltipTrigger asChild>{button}</TooltipTrigger>\r\n\t\t\t<TooltipContent side=\"right\" align=\"center\" hidden={state !== \"collapsed\" || isMobile} {...tooltip} />\r\n\t\t</Tooltip>\r\n\t);\r\n});\r\n\r\nSidebarMenuButton.displayName = \"SidebarMenuButton\";\r\n\r\nconst sidebarMenuActionStyles = tv({\r\n\tbase: [\r\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\",\r\n\t\t// Increases the hit area of the button on mobile.\r\n\t\t\"after:absolute after:-inset-2 after:md:hidden\",\r\n\t\t\"peer-data-[size=sm]/menu-button:top-1\",\r\n\t\t\"peer-data-[size=default]/menu-button:top-1.5\",\r\n\t\t\"peer-data-[size=lg]/menu-button:top-2.5\",\r\n\t\t\"group-data-[collapsible=icon]:hidden\"\r\n\t],\r\n\tvariants: {\r\n\t\tisHover: {\r\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-fg md:opacity-0\"\r\n\t\t}\r\n\t}\r\n});\r\n\r\nconst SidebarMenuAction = React.forwardRef<\r\n\tHTMLButtonElement,\r\n\tReact.ComponentProps<\"button\"> & {\r\n\t\tasChild?: boolean;\r\n\t\tshowOnHover?: boolean;\r\n\t}\r\n>(({ className, asChild = false, showOnHover = false, ...props }, ref) => {\r\n\tconst Comp = asChild ? Slot : \"button\";\r\n\r\n\treturn (\r\n\t\t<Comp\r\n\t\t\tref={ref}\r\n\t\t\tdata-sidebar=\"menu-action\"\r\n\t\t\tclassName={sidebarMenuActionStyles({ isHover: showOnHover, className })}\r\n\t\t\t{...props}\r\n\t\t/>\r\n\t);\r\n});\r\n\r\nSidebarMenuAction.displayName = \"SidebarMenuAction\";\r\n\r\nconst sidebarMenuBadgeStyles = tv({\r\n\tbase: [\r\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-medium tabular-nums text-secondary-fg\",\r\n\t\t\"peer-hover/menu-button:text-primary-fg peer-data-[active=true]/menu-button:text-primary-fg\",\r\n\t\t\"peer-data-[size=sm]/menu-button:top-1\",\r\n\t\t\"peer-data-[size=default]/menu-button:top-1.5\",\r\n\t\t\"peer-data-[size=lg]/menu-button:top-2.5\",\r\n\t\t\"group-data-[collapsible=icon]:hidden\"\r\n\t]\r\n});\r\n\r\nconst SidebarMenuBadge = React.forwardRef<HTMLDivElement, React.ComponentProps<\"div\">>(\r\n\t({ className, ...props }, ref) => (\r\n\t\t<div ref={ref} data-sidebar=\"menu-badge\" className={sidebarMenuBadgeStyles({ className })} {...props} />\r\n\t)\r\n);\r\n\r\nSidebarMenuBadge.displayName = \"SidebarMenuBadge\";\r\n\r\nconst sidebarMenuSkeletonStyles = tv({\r\n\tslots: {\r\n\t\twrapper: \"flex h-8 items-center gap-2 rounded-md px-2\",\r\n\t\tskeleton: \"h-4 max-w-[--skeleton-width] flex-1\",\r\n\t\tskeletonIcon: \"size-4 rounded-md\"\r\n\t}\r\n});\r\n\r\nconst SidebarMenuSkeleton = React.forwardRef<\r\n\tHTMLDivElement,\r\n\tReact.ComponentProps<\"div\"> & {\r\n\t\tshowIcon?: boolean;\r\n\t}\r\n>(({ className, showIcon = false, ...props }, ref) => {\r\n\t// Random width between 50 to 90%.\r\n\tconst width = React.useMemo(() => {\r\n\t\treturn `${Math.floor(Math.random() * 40) + 50}%`;\r\n\t}, []);\r\n\r\n\tconst styles = sidebarMenuSkeletonStyles();\r\n\r\n\treturn (\r\n\t\t<div ref={ref} data-sidebar=\"menu-skeleton\" className={styles.wrapper({ className })} {...props}>\r\n\t\t\t{showIcon && <Skeleton className={styles.skeletonIcon()} data-sidebar=\"menu-skeleton-icon\" />}\r\n\t\t\t<Skeleton\r\n\t\t\t\tclassName={styles.skeleton()}\r\n\t\t\t\tdata-sidebar=\"menu-skeleton-text\"\r\n\t\t\t\tstyle={\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\t\"--skeleton-width\": width\r\n\t\t\t\t\t} as React.CSSProperties\r\n\t\t\t\t}\r\n\t\t\t/>\r\n\t\t</div>\r\n\t);\r\n});\r\n\r\nSidebarMenuSkeleton.displayName = \"SidebarMenuSkeleton\";\r\n\r\nconst sidebarMenuSubStyles = tv({\r\n\tbase: [\r\n\t\t\"ml-3.5 flex min-w-0 translate-x-px flex-col gap-1 border-l border-secondary-border py-0.5 pl-2.5\",\r\n\t\t\"group-data-[collapsible=icon]:hidden\"\r\n\t]\r\n});\r\n\r\nconst SidebarMenuSub = React.forwardRef<HTMLUListElement, React.ComponentProps<\"ul\">>(\r\n\t({ className, ...props }, ref) => (\r\n\t\t<ul ref={ref} data-sidebar=\"menu-sub\" className={sidebarMenuSubStyles({ className })} {...props} />\r\n\t)\r\n);\r\n\r\nSidebarMenuSub.displayName = \"SidebarMenuSub\";\r\n\r\nconst sidebarMenuSubItemStyles = tv({\r\n\tbase: \"rounded-md focus-visible:shadow-focus focus-visible:outline-none\"\r\n});\r\n\r\nconst SidebarMenuSubItem = React.forwardRef<HTMLLIElement, React.ComponentProps<\"li\">>(\r\n\t({ className, ...props }, ref) => (\r\n\t\t<li ref={ref} tabIndex={0} className={sidebarMenuSubItemStyles({ className })} {...props} />\r\n\t)\r\n);\r\n\r\nSidebarMenuSubItem.displayName = \"SidebarMenuSubItem\";\r\n\r\nconst sidebarMenuSubButtonStyles = tv({\r\n\tbase: [\r\n\t\t\"flex h-7 min-w-0 -translate-x-px 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:ring-2 active:bg-secondary-bg-hover active:text-primary-fg 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\",\r\n\t\t\"data-[active=true]:bg-secondary-bg-hover data-[active=true]:text-primary-fg\",\r\n\t\t\"group-data-[collapsible=icon]:hidden\"\r\n\t],\r\n\tvariants: {\r\n\t\tsize: {\r\n\t\t\tsm: \"text-xs\",\r\n\t\t\tmd: \"text-sm\"\r\n\t\t}\r\n\t}\r\n});\r\n\r\nconst SidebarMenuSubButton = React.forwardRef<\r\n\tHTMLAnchorElement,\r\n\tReact.ComponentProps<\"a\"> & {\r\n\t\tasChild?: boolean;\r\n\t\tsize?: \"sm\" | \"md\";\r\n\t\tisActive?: boolean;\r\n\t}\r\n>(({ asChild = false, size = \"md\", isActive, className, ...props }, ref) => {\r\n\tconst Comp = asChild ? Slot : \"a\";\r\n\r\n\treturn (\r\n\t\t<Comp\r\n\t\t\tref={ref}\r\n\t\t\tdata-sidebar=\"menu-sub-button\"\r\n\t\t\tdata-size={size}\r\n\t\t\tdata-active={isActive}\r\n\t\t\tclassName={sidebarMenuSubButtonStyles({ size, className })}\r\n\t\t\t{...props}\r\n\t\t/>\r\n\t);\r\n});\r\n\r\nSidebarMenuSubButton.displayName = \"SidebarMenuSubButton\";\r\n\r\nexport {\r\n\tSidebar,\r\n\tSidebarContent,\r\n\tSidebarFooter,\r\n\tSidebarGroup,\r\n\tSidebarGroupAction,\r\n\tSidebarGroupContent,\r\n\tSidebarGroupLabel,\r\n\tSidebarHeader,\r\n\tSidebarInput,\r\n\tSidebarInset,\r\n\tSidebarMenu,\r\n\tSidebarMenuAction,\r\n\tSidebarMenuBadge,\r\n\tSidebarMenuButton,\r\n\tSidebarMenuItem,\r\n\tSidebarMenuSkeleton,\r\n\tSidebarMenuSub,\r\n\tSidebarMenuSubButton,\r\n\tSidebarMenuSubItem,\r\n\tSidebarProvider,\r\n\tSidebarRail,\r\n\tSidebarSeparator,\r\n\tSidebarTrigger\r\n};\r\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","_open","_setOpen","open","setOpen","value","openState","toggleSidebar","handleKeyDown","event","state","contextValue","jsx","TooltipProvider","Sidebar","side","variant","collapsible","cn","Sheet","jsxs","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"],"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};\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, TooltipProvider, TooltipTrigger } from \"../tooltip\";\nimport { cn } from \"@/lib/utils\";\nimport { Sheet, SheetContent, SheetDescription, SheetHeader, SheetTitle } from \"../sheet/Sheet\";\nimport { Button, IconButton } from \"../button\";\nimport { PanelLeft } 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 has-[[data-variant=inset]]:bg-primary-bg\"\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\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}),\n\t\t[state, open, setOpen, isMobile, openMobile, setOpenMobile, toggleSidebar]\n\t);\n\n\treturn (\n\t\t<SidebarContext.Provider value={contextValue}>\n\t\t\t<TooltipProvider delayDuration={0}>\n\t\t\t\t<div\n\t\t\t\t\tstyle={\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"--sidebar-width\": SIDEBAR_WIDTH,\n\t\t\t\t\t\t\t\"--sidebar-width-icon\": SIDEBAR_WIDTH_ICON,\n\t\t\t\t\t\t\t...style\n\t\t\t\t\t\t} as React.CSSProperties\n\t\t\t\t\t}\n\t\t\t\t\tclassName={sizebarProviderStyles({ className })}\n\t\t\t\t\tref={ref}\n\t\t\t\t\t{...props}\n\t\t\t\t>\n\t\t\t\t\t{children}\n\t\t\t\t</div>\n\t\t\t</TooltipProvider>\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 { isMobile, state, openMobile, setOpenMobile } = useSidebar();\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-primary-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\tif (isMobile) {\n\t\treturn (\n\t\t\t<Sheet open={openMobile} onOpenChange={setOpenMobile} {...props}>\n\t\t\t\t<SheetContent\n\t\t\t\t\tdata-sidebar=\"sidebar\"\n\t\t\t\t\tdata-mobile=\"true\"\n\t\t\t\t\tclassName=\"w-[--sidebar-width] bg-primary-bg p-0 text-secondary-fg [&>button]:hidden\"\n\t\t\t\t\tstyle={\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"--sidebar-width\": SIDEBAR_WIDTH_MOBILE\n\t\t\t\t\t\t} as React.CSSProperties\n\t\t\t\t\t}\n\t\t\t\t\tside={side}\n\t\t\t\t>\n\t\t\t\t\t<SheetHeader className=\"sr-only\">\n\t\t\t\t\t\t<SheetTitle>Sidebar</SheetTitle>\n\t\t\t\t\t\t<SheetDescription>Displays the mobile sidebar.</SheetDescription>\n\t\t\t\t\t</SheetHeader>\n\t\t\t\t\t<div className=\"flex h-full w-full flex-col\">{children}</div>\n\t\t\t\t</SheetContent>\n\t\t\t</Sheet>\n\t\t);\n\t}\n\n\treturn (\n\t\t<div\n\t\t\tref={ref}\n\t\t\tclassName=\"text-sidebar-foreground group peer hidden md:block\"\n\t\t\tdata-state={state}\n\t\t\tdata-collapsible={state === \"collapsed\" ? collapsible : \"\"}\n\t\t\tdata-variant={variant}\n\t\t\tdata-side={side}\n\t\t>\n\t\t\t{/* This is what handles the sidebar gap on desktop */}\n\t\t\t<div\n\t\t\t\tclassName={cn(\n\t\t\t\t\t\"relative w-[--sidebar-width] bg-transparent transition-[width] duration-200 ease-linear\",\n\t\t\t\t\t\"group-data-[collapsible=offcanvas]:w-0\",\n\t\t\t\t\t\"group-data-[side=right]:rotate-180\",\n\t\t\t\t\tvariant === \"floating\" || variant === \"inset\"\n\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: \"group-data-[collapsible=icon]:w-[--sidebar-width-icon]\"\n\t\t\t\t)}\n\t\t\t/>\n\t\t\t<div\n\t\t\t\tclassName={cn(\n\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 md:flex\",\n\t\t\t\t\tside === \"left\"\n\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: \"right-0 group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)]\",\n\t\t\t\t\t// Adjust the padding for floating and inset variants.\n\t\t\t\t\tvariant === \"floating\" || variant === \"inset\"\n\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: \"group-data-[collapsible=icon]:w-[--sidebar-width-icon] group-data-[side=left]:border-r group-data-[side=right]:border-l\",\n\t\t\t\t\tclassName\n\t\t\t\t)}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t<div\n\t\t\t\t\tdata-sidebar=\"sidebar\"\n\t\t\t\t\tclassName=\"group-data-[variant=floating]:border-sidebar-border flex h-full w-full flex-col bg-primary-bg group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:border group-data-[variant=floating]:shadow\"\n\t\t\t\t>\n\t\t\t\t\t{children}\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\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-4 -translate-x-1/2 transition-all ease-linear after:absolute after:inset-y-0 after:left-1/2 after:w-[2px] hover:after:bg-secondary-border group-data-[side=left]:-right-4 group-data-[side=right]:left-0 sm:flex\",\n\t\t\"[[data-side=left]_&]:cursor-w-resize [[data-side=right]_&]:cursor-e-resize\",\n\t\t\"[[data-side=left][data-state=collapsed]_&]:cursor-e-resize [[data-side=right][data-state=collapsed]_&]:cursor-w-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\",\n\t\t\"[[data-side=right][data-collapsible=offcanvas]_&]:-left-2\"\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\"\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\"\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\twrapper: \"flex min-h-0 flex-1 flex-col bg-primary-bg\",\n\t\tcontent: \"flex 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\twrapperClassName={styles.wrapper()}\n\t\t\t\tclassName={styles.content({ className })}\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\"\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-secondary-bg-hover hover:text-primary-fg focus-visible:shadow-focus\",\n\t\t\"active:bg-primary-bg-hover active:text-primary-accent\",\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 data-[active=true]:hover:bg-primary-bg-hover data-[active=true]:hover:text-primary-accent\",\n\t\t\"data-[state=open]:hover:bg-secondary-bg-hover data-[state=open]:hover:text-primary-fg\",\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-secondary-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-secondary-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 translate-x-px 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) => (\n\t\t<li ref={ref} tabIndex={0} className={sidebarMenuSubItemStyles({ className })} {...props} />\n\t)\n);\n\nSidebarMenuSubItem.displayName = \"SidebarMenuSubItem\";\n\nconst sidebarMenuSubButtonStyles = tv({\n\tbase: [\n\t\t\"flex h-7 min-w-0 -translate-x-px 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:ring-2 active:bg-primary-bg-hover active:text-primary-accent 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\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\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","_open","_setOpen","open","setOpen","value","openState","toggleSidebar","handleKeyDown","event","state","contextValue","jsx","TooltipProvider","Sidebar","side","variant","collapsible","cn","Sheet","jsxs","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"],"mappings":"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","x_google_ignoreList":[0]}
|