@egose/shadcn-theme 0.1.5 → 0.1.6
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/{chunk-UQJ4A4H2.mjs → chunk-4IDPSNL3.mjs} +2 -2
- package/{chunk-GAJQQPUC.mjs → chunk-5CBMRDT7.mjs} +3 -3
- package/{chunk-FCE22MQI.js → chunk-AQIBLBXW.js} +9 -9
- package/{chunk-FCE22MQI.js.map → chunk-AQIBLBXW.js.map} +1 -1
- package/{chunk-6C4NHVD6.js → chunk-BMAIJZN6.js} +3 -2
- package/chunk-BMAIJZN6.js.map +1 -0
- package/{chunk-S3CRUBGL.mjs → chunk-CNYC22IA.mjs} +2 -2
- package/{chunk-E5TF7QLI.mjs → chunk-D6YGFMSG.mjs} +5 -5
- package/{chunk-WHQINNUB.js → chunk-FOEQYO2Q.js} +5 -5
- package/{chunk-WHQINNUB.js.map → chunk-FOEQYO2Q.js.map} +1 -1
- package/{chunk-KO4TIQLS.mjs → chunk-M6UKU56L.mjs} +2 -1
- package/chunk-M6UKU56L.mjs.map +1 -0
- package/{chunk-Y6CUGIQB.js → chunk-NRCL342G.js} +9 -9
- package/{chunk-Y6CUGIQB.js.map → chunk-NRCL342G.js.map} +1 -1
- package/{chunk-4I6SLZWT.mjs → chunk-O6PHWGJH.mjs} +2 -1
- package/chunk-O6PHWGJH.mjs.map +1 -0
- package/{chunk-KUD4Z2MZ.mjs → chunk-P4DW3EEW.mjs} +2 -2
- package/{chunk-WREXRSAA.js → chunk-P4EDRIBH.js} +4 -4
- package/{chunk-WREXRSAA.js.map → chunk-P4EDRIBH.js.map} +1 -1
- package/{chunk-2UTAR6ZA.js → chunk-SC6IX6NJ.js} +3 -2
- package/chunk-SC6IX6NJ.js.map +1 -0
- package/{chunk-SLADFPSL.js → chunk-VBPJD7U3.js} +5 -5
- package/{chunk-SLADFPSL.js.map → chunk-VBPJD7U3.js.map} +1 -1
- package/components/ui/aspect-ratio.d.mts +2 -2
- package/components/ui/aspect-ratio.d.ts +2 -2
- package/components/ui/aspect-ratio.js +2 -1
- package/components/ui/aspect-ratio.js.map +1 -1
- package/components/ui/aspect-ratio.mjs +1 -0
- package/components/ui/aspect-ratio.mjs.map +1 -1
- package/components/ui/button-group.d.mts +4 -4
- package/components/ui/button-group.d.ts +4 -4
- package/components/ui/button-group.js +2 -1
- package/components/ui/button-group.js.map +1 -1
- package/components/ui/button-group.mjs +1 -0
- package/components/ui/button-group.mjs.map +1 -1
- package/components/ui/collapsible.d.mts +4 -4
- package/components/ui/collapsible.d.ts +4 -4
- package/components/ui/collapsible.js +2 -2
- package/components/ui/collapsible.mjs +1 -1
- package/components/ui/copy-button.d.mts +3 -3
- package/components/ui/copy-button.d.ts +3 -3
- package/components/ui/copy-button.js +12 -12
- package/components/ui/copy-button.js.map +1 -1
- package/components/ui/copy-button.mjs +2 -2
- package/components/ui/copy-button.mjs.map +1 -1
- package/components/ui/empty.d.mts +7 -7
- package/components/ui/empty.d.ts +7 -7
- package/components/ui/empty.js +2 -1
- package/components/ui/empty.js.map +1 -1
- package/components/ui/empty.mjs +1 -0
- package/components/ui/empty.mjs.map +1 -1
- package/components/ui/field.d.mts +11 -11
- package/components/ui/field.d.ts +11 -11
- package/components/ui/field.js +3 -3
- package/components/ui/field.js.map +1 -1
- package/components/ui/field.mjs +2 -2
- package/components/ui/field.mjs.map +1 -1
- package/components/ui/kbd.d.mts +3 -3
- package/components/ui/kbd.d.ts +3 -3
- package/components/ui/kbd.js +2 -1
- package/components/ui/kbd.js.map +1 -1
- package/components/ui/kbd.mjs +1 -0
- package/components/ui/kbd.mjs.map +1 -1
- package/components/ui/native-select.d.mts +4 -4
- package/components/ui/native-select.d.ts +4 -4
- package/components/ui/native-select.js +2 -1
- package/components/ui/native-select.js.map +1 -1
- package/components/ui/native-select.mjs +1 -0
- package/components/ui/native-select.mjs.map +1 -1
- package/components/ui/resizable.js +1 -0
- package/components/ui/resizable.js.map +1 -1
- package/components/ui/resizable.mjs +1 -0
- package/components/ui/resizable.mjs.map +1 -1
- package/components/ui/sidebar.js +3 -3
- package/components/ui/sidebar.mjs +2 -2
- package/components/ui/skeleton.d.mts +2 -2
- package/components/ui/skeleton.d.ts +2 -2
- package/components/ui/skeleton.js +2 -2
- package/components/ui/skeleton.mjs +1 -1
- package/layouts/sidebar1/app-sidebar.js +8 -8
- package/layouts/sidebar1/app-sidebar.mjs +7 -7
- package/layouts/sidebar1/context-switcher.js +4 -4
- package/layouts/sidebar1/context-switcher.mjs +3 -3
- package/layouts/sidebar1/index.js +9 -9
- package/layouts/sidebar1/index.mjs +7 -7
- package/layouts/sidebar1/nav-menus.js +5 -5
- package/layouts/sidebar1/nav-menus.mjs +4 -4
- package/layouts/sidebar1/nav-user.js +4 -4
- package/layouts/sidebar1/nav-user.mjs +3 -3
- package/package.json +1 -1
- package/chunk-2UTAR6ZA.js.map +0 -1
- package/chunk-4I6SLZWT.mjs.map +0 -1
- package/chunk-6C4NHVD6.js.map +0 -1
- package/chunk-KO4TIQLS.mjs.map +0 -1
- /package/{chunk-UQJ4A4H2.mjs.map → chunk-4IDPSNL3.mjs.map} +0 -0
- /package/{chunk-GAJQQPUC.mjs.map → chunk-5CBMRDT7.mjs.map} +0 -0
- /package/{chunk-S3CRUBGL.mjs.map → chunk-CNYC22IA.mjs.map} +0 -0
- /package/{chunk-E5TF7QLI.mjs.map → chunk-D6YGFMSG.mjs.map} +0 -0
- /package/{chunk-KUD4Z2MZ.mjs.map → chunk-P4DW3EEW.mjs.map} +0 -0
|
@@ -7,7 +7,7 @@ import {
|
|
|
7
7
|
} from "./chunk-ICOZ5BK7.mjs";
|
|
8
8
|
import {
|
|
9
9
|
Skeleton
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-O6PHWGJH.mjs";
|
|
11
11
|
import {
|
|
12
12
|
Tooltip,
|
|
13
13
|
TooltipContent,
|
|
@@ -621,4 +621,4 @@ export {
|
|
|
621
621
|
SidebarMenuSubItem,
|
|
622
622
|
SidebarMenuSubButton
|
|
623
623
|
};
|
|
624
|
-
//# sourceMappingURL=chunk-
|
|
624
|
+
//# sourceMappingURL=chunk-4IDPSNL3.mjs.map
|
|
@@ -8,12 +8,12 @@ import {
|
|
|
8
8
|
SidebarMenuSubButton,
|
|
9
9
|
SidebarMenuSubItem,
|
|
10
10
|
useSidebar
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-4IDPSNL3.mjs";
|
|
12
12
|
import {
|
|
13
13
|
Collapsible,
|
|
14
14
|
CollapsibleContent,
|
|
15
15
|
CollapsibleTrigger
|
|
16
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-M6UKU56L.mjs";
|
|
17
17
|
import {
|
|
18
18
|
cn
|
|
19
19
|
} from "./chunk-KGUUDFJE.mjs";
|
|
@@ -61,4 +61,4 @@ function NavMenus({ menus, aslink }) {
|
|
|
61
61
|
export {
|
|
62
62
|
NavMenus
|
|
63
63
|
};
|
|
64
|
-
//# sourceMappingURL=chunk-
|
|
64
|
+
//# sourceMappingURL=chunk-5CBMRDT7.mjs.map
|
|
@@ -9,12 +9,12 @@
|
|
|
9
9
|
|
|
10
10
|
|
|
11
11
|
|
|
12
|
-
var
|
|
12
|
+
var _chunkP4EDRIBHjs = require('./chunk-P4EDRIBH.js');
|
|
13
13
|
|
|
14
14
|
|
|
15
15
|
|
|
16
16
|
|
|
17
|
-
var
|
|
17
|
+
var _chunkSC6IX6NJjs = require('./chunk-SC6IX6NJ.js');
|
|
18
18
|
|
|
19
19
|
|
|
20
20
|
var _chunkPSPAJNNBjs = require('./chunk-PSPAJNNB.js');
|
|
@@ -23,19 +23,19 @@ var _chunkPSPAJNNBjs = require('./chunk-PSPAJNNB.js');
|
|
|
23
23
|
var _react = require('react'); var React = _interopRequireWildcard(_react);
|
|
24
24
|
var _lucidereact = require('lucide-react');
|
|
25
25
|
function SidebarMenuLink({ item, as: LinkComponent }) {
|
|
26
|
-
const { setOpenMobile } =
|
|
26
|
+
const { setOpenMobile } = _chunkP4EDRIBHjs.useSidebar.call(void 0, );
|
|
27
27
|
const Comp = LinkComponent && item.url ? LinkComponent : "button";
|
|
28
|
-
return /* @__PURE__ */ React.createElement(
|
|
28
|
+
return /* @__PURE__ */ React.createElement(_chunkP4EDRIBHjs.SidebarMenuItem, null, /* @__PURE__ */ React.createElement(_chunkP4EDRIBHjs.SidebarMenuButton, { asChild: true, isActive: item.isActive, tooltip: item.title, onClick: () => setOpenMobile(false) }, /* @__PURE__ */ React.createElement(Comp, { to: item.url, href: item.url, onClick: () => {
|
|
29
29
|
var _a;
|
|
30
30
|
return (_a = item.onClick) == null ? void 0 : _a.call(item, item.title);
|
|
31
31
|
} }, item.icon && /* @__PURE__ */ React.createElement(item.icon, null), /* @__PURE__ */ React.createElement("span", null, item.title))));
|
|
32
32
|
}
|
|
33
33
|
function SidebarMenuCollapsible({ item, as: LinkComponent }) {
|
|
34
|
-
const { setOpenMobile } =
|
|
34
|
+
const { setOpenMobile } = _chunkP4EDRIBHjs.useSidebar.call(void 0, );
|
|
35
35
|
if (!item.subItems) return null;
|
|
36
|
-
return /* @__PURE__ */ React.createElement(
|
|
36
|
+
return /* @__PURE__ */ React.createElement(_chunkSC6IX6NJjs.Collapsible, { key: item.title, asChild: true, defaultOpen: item.isActive, className: "group/collapsible" }, /* @__PURE__ */ React.createElement(_chunkP4EDRIBHjs.SidebarMenuItem, null, /* @__PURE__ */ React.createElement(_chunkSC6IX6NJjs.CollapsibleTrigger, { asChild: true }, /* @__PURE__ */ React.createElement(_chunkP4EDRIBHjs.SidebarMenuButton, { tooltip: item.title }, item.icon && /* @__PURE__ */ React.createElement(item.icon, null), /* @__PURE__ */ React.createElement("span", null, item.title), /* @__PURE__ */ React.createElement(_lucidereact.ChevronRight, { className: "ml-auto transition-transform duration-200 group-data-[state=open]/collapsible:rotate-90" }))), /* @__PURE__ */ React.createElement(_chunkSC6IX6NJjs.CollapsibleContent, null, /* @__PURE__ */ React.createElement(_chunkP4EDRIBHjs.SidebarMenuSub, null, item.subItems.map((subItem) => {
|
|
37
37
|
const Comp = LinkComponent && subItem.url ? LinkComponent : "button";
|
|
38
|
-
return /* @__PURE__ */ React.createElement(
|
|
38
|
+
return /* @__PURE__ */ React.createElement(_chunkP4EDRIBHjs.SidebarMenuSubItem, { key: subItem.title }, /* @__PURE__ */ React.createElement(_chunkP4EDRIBHjs.SidebarMenuSubButton, { asChild: true, isActive: subItem.isActive, onClick: () => setOpenMobile(false) }, /* @__PURE__ */ React.createElement(
|
|
39
39
|
Comp,
|
|
40
40
|
{
|
|
41
41
|
to: subItem.url,
|
|
@@ -53,7 +53,7 @@ function SidebarMenuCollapsible({ item, as: LinkComponent }) {
|
|
|
53
53
|
}
|
|
54
54
|
function NavMenus({ menus, aslink }) {
|
|
55
55
|
return menus.map((menu) => {
|
|
56
|
-
return /* @__PURE__ */ React.createElement(
|
|
56
|
+
return /* @__PURE__ */ React.createElement(_chunkP4EDRIBHjs.SidebarGroup, { key: menu.title, className: _chunkPSPAJNNBjs.cn.call(void 0, menu.className) }, !menu.hideTitle && /* @__PURE__ */ React.createElement(_chunkP4EDRIBHjs.SidebarGroupLabel, null, menu.title), /* @__PURE__ */ React.createElement(_chunkP4EDRIBHjs.SidebarMenu, null, menu.items.map(
|
|
57
57
|
(item) => item.subItems && item.subItems.length > 0 ? /* @__PURE__ */ React.createElement(SidebarMenuCollapsible, { key: item.title, item, as: aslink }) : /* @__PURE__ */ React.createElement(SidebarMenuLink, { key: item.title, item, as: aslink })
|
|
58
58
|
)));
|
|
59
59
|
});
|
|
@@ -62,4 +62,4 @@ function NavMenus({ menus, aslink }) {
|
|
|
62
62
|
|
|
63
63
|
|
|
64
64
|
exports.NavMenus = NavMenus;
|
|
65
|
-
//# sourceMappingURL=chunk-
|
|
65
|
+
//# sourceMappingURL=chunk-AQIBLBXW.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/jahn/projects/shadcn-theme/packages/react/dist/chunk-
|
|
1
|
+
{"version":3,"sources":["/home/jahn/projects/shadcn-theme/packages/react/dist/chunk-AQIBLBXW.js","../layouts/sidebar1/nav-menus.tsx"],"names":[],"mappings":"AAAA;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,sDAA4B;AAC5B;AACE;AACA;AACA;AACF,sDAA4B;AAC5B;AACE;AACF,sDAA4B;AAC5B;AACA;ACnBA,2EAAuB;AACvB,2CAA6B;AAkC7B,SAAS,eAAA,CAAgB,EAAE,IAAA,EAAM,EAAA,EAAI,cAAc,CAAA,EAAkD;AACnG,EAAA,MAAM,EAAE,cAAc,EAAA,EAAI,yCAAA,CAAW;AACrC,EAAA,MAAM,KAAA,EAAO,cAAA,GAAiB,IAAA,CAAK,IAAA,EAAM,cAAA,EAAgB,QAAA;AAEzD,EAAA,uBACE,KAAA,CAAA,aAAA,CAAC,gCAAA,EAAA,IAAA,kBACC,KAAA,CAAA,aAAA,CAAC,kCAAA,EAAA,EAAkB,OAAA,EAAO,IAAA,EAAC,QAAA,EAAU,IAAA,CAAK,QAAA,EAAU,OAAA,EAAS,IAAA,CAAK,KAAA,EAAO,OAAA,EAAS,CAAA,EAAA,GAAM,aAAA,CAAc,KAAK,EAAA,CAAA,kBACzG,KAAA,CAAA,aAAA,CAAC,IAAA,EAAA,EAAK,EAAA,EAAI,IAAA,CAAK,GAAA,EAAK,IAAA,EAAM,IAAA,CAAK,GAAA,EAAK,OAAA,EAAS,CAAA,EAAA,GAAG;AA3CxD,IAAA,IAAA,EAAA;AA2C2D,IAAA,OAAA,CAAA,GAAA,EAAA,IAAA,CAAK,OAAA,EAAA,GAAL,KAAA,EAAA,KAAA,EAAA,EAAA,EAAA,CAAA,IAAA,CAAA,IAAA,EAAe,IAAA,CAAK,KAAA,CAAA;AAAA,EAAA,EAAA,CAAA,EACpE,IAAA,CAAK,KAAA,mBAAQ,KAAA,CAAA,aAAA,CAAC,IAAA,CAAK,IAAA,EAAL,IAAU,CAAA,kBACzB,KAAA,CAAA,aAAA,CAAC,MAAA,EAAA,IAAA,EAAM,IAAA,CAAK,KAAM,CACpB,CACF,CACF,CAAA;AAEJ;AAEA,SAAS,sBAAA,CAAuB,EAAE,IAAA,EAAM,EAAA,EAAI,cAAc,CAAA,EAA+C;AACvG,EAAA,MAAM,EAAE,cAAc,EAAA,EAAI,yCAAA,CAAW;AACrC,EAAA,GAAA,CAAI,CAAC,IAAA,CAAK,QAAA,EAAU,OAAO,IAAA;AAE3B,EAAA,uBACE,KAAA,CAAA,aAAA,CAAC,4BAAA,EAAA,EAAY,GAAA,EAAK,IAAA,CAAK,KAAA,EAAO,OAAA,EAAO,IAAA,EAAC,WAAA,EAAa,IAAA,CAAK,QAAA,EAAU,SAAA,EAAU,oBAAA,CAAA,kBAC1E,KAAA,CAAA,aAAA,CAAC,gCAAA,EAAA,IAAA,kBACC,KAAA,CAAA,aAAA,CAAC,mCAAA,EAAA,EAAmB,OAAA,EAAO,KAAA,CAAA,kBACzB,KAAA,CAAA,aAAA,CAAC,kCAAA,EAAA,EAAkB,OAAA,EAAS,IAAA,CAAK,MAAA,CAAA,EAC9B,IAAA,CAAK,KAAA,mBAAQ,KAAA,CAAA,aAAA,CAAC,IAAA,CAAK,IAAA,EAAL,IAAU,CAAA,kBACzB,KAAA,CAAA,aAAA,CAAC,MAAA,EAAA,IAAA,EAAM,IAAA,CAAK,KAAM,CAAA,kBAElB,KAAA,CAAA,aAAA,CAAC,yBAAA,EAAA,EAAa,SAAA,EAAU,0FAAA,CAA0F,CACpH,CACF,CAAA,kBAEA,KAAA,CAAA,aAAA,CAAC,mCAAA,EAAA,IAAA,kBACC,KAAA,CAAA,aAAA,CAAC,+BAAA,EAAA,IAAA,EACE,IAAA,CAAK,QAAA,CAAS,GAAA,CAAI,CAAC,OAAA,EAAA,GAAY;AAC9B,IAAA,MAAM,KAAA,EAAO,cAAA,GAAiB,OAAA,CAAQ,IAAA,EAAM,cAAA,EAAgB,QAAA;AAE5D,IAAA,uBACE,KAAA,CAAA,aAAA,CAAC,mCAAA,EAAA,EAAmB,GAAA,EAAK,OAAA,CAAQ,MAAA,CAAA,kBAC/B,KAAA,CAAA,aAAA,CAAC,qCAAA,EAAA,EAAqB,OAAA,EAAO,IAAA,EAAC,QAAA,EAAU,OAAA,CAAQ,QAAA,EAAU,OAAA,EAAS,CAAA,EAAA,GAAM,aAAA,CAAc,KAAK,EAAA,CAAA,kBAC1F,KAAA,CAAA,aAAA;AAAA,MAAC,IAAA;AAAA,MAAA;AAAA,QACC,EAAA,EAAI,OAAA,CAAQ,GAAA;AAAA,QACZ,IAAA,EAAM,OAAA,CAAQ,GAAA;AAAA,QACd,OAAA,EAAS,CAAA,EAAA,GAAG;AA/ElC,UAAA,IAAA,EAAA;AA+EqC,UAAA,OAAA,CAAA,GAAA,EAAA,IAAA,CAAK,OAAA,EAAA,GAAL,KAAA,EAAA,KAAA,EAAA,EAAA,EAAA,CAAA,IAAA,CAAA,IAAA,EAAe,OAAA,CAAQ,KAAA,CAAA;AAAA,QAAA,CAAA;AAAA,QACtC,SAAA,EAAU;AAAA,MAAA,CAAA;AAAA,MAET,OAAA,CAAQ,KAAA,mBAAQ,KAAA,CAAA,aAAA,CAAC,OAAA,CAAQ,IAAA,EAAR,IAAa,CAAA;AAAA,sBAC/B,KAAA,CAAA,aAAA,CAAC,MAAA,EAAA,IAAA,EAAM,OAAA,CAAQ,KAAM;AAAA,IACvB,CACF,CACF,CAAA;AAAA,EAEJ,CAAC,CACH,CACF,CACF,CACF,CAAA;AAEJ;AAEO,SAAS,QAAA,CAAS,EAAE,KAAA,EAAO,OAAO,CAAA,EAAqD;AAC5F,EAAA,OAAO,KAAA,CAAM,GAAA,CAAI,CAAC,IAAA,EAAA,GAAS;AACzB,IAAA,uBACE,KAAA,CAAA,aAAA,CAAC,6BAAA,EAAA,EAAa,GAAA,EAAK,IAAA,CAAK,KAAA,EAAO,SAAA,EAAW,iCAAA,IAAG,CAAK,SAAS,EAAA,CAAA,EACxD,CAAC,IAAA,CAAK,UAAA,mBAAa,KAAA,CAAA,aAAA,CAAC,kCAAA,EAAA,IAAA,EAAmB,IAAA,CAAK,KAAM,CAAA,kBAEnD,KAAA,CAAA,aAAA,CAAC,4BAAA,EAAA,IAAA,EACE,IAAA,CAAK,KAAA,CAAM,GAAA;AAAA,MAAI,CAAC,IAAA,EAAA,GACf,IAAA,CAAK,SAAA,GAAY,IAAA,CAAK,QAAA,CAAS,OAAA,EAAS,EAAA,kBACtC,KAAA,CAAA,aAAA,CAAC,sBAAA,EAAA,EAAuB,GAAA,EAAK,IAAA,CAAK,KAAA,EAAO,IAAA,EAAY,EAAA,EAAI,OAAA,CAAQ,EAAA,kBAEjE,KAAA,CAAA,aAAA,CAAC,eAAA,EAAA,EAAgB,GAAA,EAAK,IAAA,CAAK,KAAA,EAAO,IAAA,EAAY,EAAA,EAAI,OAAA,CAAQ;AAAA,IAE9D,CACF,CACF,CAAA;AAAA,EAEJ,CAAC,CAAA;AACH;ADvDA;AACA;AACE;AACF,4BAAC","file":"/home/jahn/projects/shadcn-theme/packages/react/dist/chunk-AQIBLBXW.js","sourcesContent":[null,"\"use client\";\nimport * as React from 'react';\nimport { ChevronRight } from 'lucide-react';\nimport { Collapsible, CollapsibleContent, CollapsibleTrigger } from '../../components/ui/collapsible';\nimport {\n SidebarGroup,\n SidebarGroupLabel,\n SidebarMenu,\n SidebarMenuButton,\n SidebarMenuItem,\n SidebarMenuSub,\n SidebarMenuSubButton,\n SidebarMenuSubItem,\n} from '../../components/ui/sidebar';\nimport { useSidebar } from '../../components/ui/sidebar';\nimport { cn } from '../../utils/ui';\n\nexport interface IMenuSubItem {\n title: string;\n url?: string;\n icon?: React.ElementType;\n isActive?: boolean;\n onClick?: (title: string) => void;\n}\n\nexport interface IMenuItem extends IMenuSubItem {\n subItems?: IMenuSubItem[];\n}\n\nexport interface INavMenu {\n title: string;\n items: IMenuItem[];\n hideTitle?: boolean;\n className?: string;\n}\n\nfunction SidebarMenuLink({ item, as: LinkComponent }: { item: IMenuSubItem; as: React.ElementType }) {\n const { setOpenMobile } = useSidebar();\n const Comp = LinkComponent && item.url ? LinkComponent : 'button';\n\n return (\n <SidebarMenuItem>\n <SidebarMenuButton asChild isActive={item.isActive} tooltip={item.title} onClick={() => setOpenMobile(false)}>\n <Comp to={item.url} href={item.url} onClick={() => item.onClick?.(item.title)}>\n {item.icon && <item.icon />}\n <span>{item.title}</span>\n </Comp>\n </SidebarMenuButton>\n </SidebarMenuItem>\n );\n}\n\nfunction SidebarMenuCollapsible({ item, as: LinkComponent }: { item: IMenuItem; as: React.ElementType }) {\n const { setOpenMobile } = useSidebar();\n if (!item.subItems) return null;\n\n return (\n <Collapsible key={item.title} asChild defaultOpen={item.isActive} className=\"group/collapsible\">\n <SidebarMenuItem>\n <CollapsibleTrigger asChild>\n <SidebarMenuButton tooltip={item.title}>\n {item.icon && <item.icon />}\n <span>{item.title}</span>\n\n <ChevronRight className=\"ml-auto transition-transform duration-200 group-data-[state=open]/collapsible:rotate-90\" />\n </SidebarMenuButton>\n </CollapsibleTrigger>\n\n <CollapsibleContent>\n <SidebarMenuSub>\n {item.subItems.map((subItem) => {\n const Comp = LinkComponent && subItem.url ? LinkComponent : 'button';\n\n return (\n <SidebarMenuSubItem key={subItem.title}>\n <SidebarMenuSubButton asChild isActive={subItem.isActive} onClick={() => setOpenMobile(false)}>\n <Comp\n to={subItem.url}\n href={subItem.url}\n onClick={() => item.onClick?.(subItem.title)}\n className=\"block w-full\"\n >\n {subItem.icon && <subItem.icon />}\n <span>{subItem.title}</span>\n </Comp>\n </SidebarMenuSubButton>\n </SidebarMenuSubItem>\n );\n })}\n </SidebarMenuSub>\n </CollapsibleContent>\n </SidebarMenuItem>\n </Collapsible>\n );\n}\n\nexport function NavMenus({ menus, aslink }: { menus: INavMenu[]; aslink: React.ElementType }) {\n return menus.map((menu) => {\n return (\n <SidebarGroup key={menu.title} className={cn(menu.className)}>\n {!menu.hideTitle && <SidebarGroupLabel>{menu.title}</SidebarGroupLabel>}\n\n <SidebarMenu>\n {menu.items.map((item) =>\n item.subItems && item.subItems.length > 0 ? (\n <SidebarMenuCollapsible key={item.title} item={item} as={aslink} />\n ) : (\n <SidebarMenuLink key={item.title} item={item} as={aslink} />\n ),\n )}\n </SidebarMenu>\n </SidebarGroup>\n );\n });\n}\n"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
2
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } }
|
|
3
3
|
|
|
4
4
|
var _chunkPSPAJNNBjs = require('./chunk-PSPAJNNB.js');
|
|
5
5
|
|
|
@@ -8,6 +8,7 @@ var _chunkPSPAJNNBjs = require('./chunk-PSPAJNNB.js');
|
|
|
8
8
|
var _chunk2NMEKWO5js = require('./chunk-2NMEKWO5.js');
|
|
9
9
|
|
|
10
10
|
// components/ui/skeleton.tsx
|
|
11
|
+
var _react = require('react'); var React = _interopRequireWildcard(_react);
|
|
11
12
|
function Skeleton(_a) {
|
|
12
13
|
var _b = _a, { className } = _b, props = _chunk2NMEKWO5js.__objRest.call(void 0, _b, ["className"]);
|
|
13
14
|
return /* @__PURE__ */ React.createElement("div", _chunk2NMEKWO5js.__spreadValues.call(void 0, { "data-slot": "skeleton", className: _chunkPSPAJNNBjs.cn.call(void 0, "bg-muted rounded-md animate-pulse", className) }, props));
|
|
@@ -16,4 +17,4 @@ function Skeleton(_a) {
|
|
|
16
17
|
|
|
17
18
|
|
|
18
19
|
exports.Skeleton = Skeleton;
|
|
19
|
-
//# sourceMappingURL=chunk-
|
|
20
|
+
//# sourceMappingURL=chunk-BMAIJZN6.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/home/jahn/projects/shadcn-theme/packages/react/dist/chunk-BMAIJZN6.js","../components/ui/skeleton.tsx"],"names":[],"mappings":"AAAA;AACE;AACF,sDAA4B;AAC5B;AACE;AACA;AACF,sDAA4B;AAC5B;AACA;ACPA,2EAAuB;AAGvB,SAAS,QAAA,CAAS,EAAA,EAAsD;AAAtD,EAAA,IAAA,GAAA,EAAA,EAAA,EAAE,EAAA,UAJpB,EAAA,EAIkB,EAAA,EAAgB,MAAA,EAAA,wCAAA,EAAhB,EAAgB,CAAd,WAAA,CAAA,CAAA;AAClB,EAAA,uBAAO,KAAA,CAAA,aAAA,CAAC,KAAA,EAAA,6CAAA,EAAI,WAAA,EAAU,UAAA,EAAW,SAAA,EAAW,iCAAA,mCAAG,EAAqC,SAAS,EAAA,CAAA,EAAO,KAAA,CAAO,CAAA;AAC7G;ADQA;AACA;AACE;AACF,4BAAC","file":"/home/jahn/projects/shadcn-theme/packages/react/dist/chunk-BMAIJZN6.js","sourcesContent":[null,"\"use client\";\nimport * as React from 'react';\nimport { cn } from '../../utils/ui';\n\nfunction Skeleton({ className, ...props }: React.ComponentProps<'div'>) {\n return <div data-slot=\"skeleton\" className={cn('bg-muted rounded-md animate-pulse', className)} {...props} />;\n}\n\nexport { Skeleton };\n"]}
|
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
SidebarMenuButton,
|
|
4
4
|
SidebarMenuItem,
|
|
5
5
|
useSidebar
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-4IDPSNL3.mjs";
|
|
7
7
|
import {
|
|
8
8
|
DropdownMenu,
|
|
9
9
|
DropdownMenuContent,
|
|
@@ -97,4 +97,4 @@ function ContextSwitcher({
|
|
|
97
97
|
export {
|
|
98
98
|
ContextSwitcher
|
|
99
99
|
};
|
|
100
|
-
//# sourceMappingURL=chunk-
|
|
100
|
+
//# sourceMappingURL=chunk-CNYC22IA.mjs.map
|
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
import {
|
|
2
2
|
ContextSwitcher
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-CNYC22IA.mjs";
|
|
4
4
|
import {
|
|
5
5
|
NavMenus
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-5CBMRDT7.mjs";
|
|
7
7
|
import {
|
|
8
8
|
NavUser
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-P4DW3EEW.mjs";
|
|
10
10
|
import {
|
|
11
11
|
Sidebar,
|
|
12
12
|
SidebarContent,
|
|
13
13
|
SidebarFooter,
|
|
14
14
|
SidebarHeader,
|
|
15
15
|
SidebarRail
|
|
16
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-4IDPSNL3.mjs";
|
|
17
17
|
import {
|
|
18
18
|
Button
|
|
19
19
|
} from "./chunk-7BYWDRRI.mjs";
|
|
@@ -67,4 +67,4 @@ function AppSidebar(_a) {
|
|
|
67
67
|
export {
|
|
68
68
|
AppSidebar
|
|
69
69
|
};
|
|
70
|
-
//# sourceMappingURL=chunk-
|
|
70
|
+
//# sourceMappingURL=chunk-D6YGFMSG.mjs.map
|
|
@@ -7,7 +7,7 @@ var _chunk5TXFHYQ5js = require('./chunk-5TXFHYQ5.js');
|
|
|
7
7
|
|
|
8
8
|
|
|
9
9
|
|
|
10
|
-
var
|
|
10
|
+
var _chunkP4EDRIBHjs = require('./chunk-P4EDRIBH.js');
|
|
11
11
|
|
|
12
12
|
|
|
13
13
|
|
|
@@ -32,9 +32,9 @@ function NavUser({
|
|
|
32
32
|
aslink: LinkComponent,
|
|
33
33
|
onLogout
|
|
34
34
|
}) {
|
|
35
|
-
const { isMobile } =
|
|
36
|
-
return /* @__PURE__ */ React.createElement(
|
|
37
|
-
|
|
35
|
+
const { isMobile } = _chunkP4EDRIBHjs.useSidebar.call(void 0, );
|
|
36
|
+
return /* @__PURE__ */ React.createElement(_chunkP4EDRIBHjs.SidebarMenu, null, /* @__PURE__ */ React.createElement(_chunkP4EDRIBHjs.SidebarMenuItem, null, /* @__PURE__ */ React.createElement(_chunkUKPBHVOTjs.DropdownMenu, null, /* @__PURE__ */ React.createElement(_chunkUKPBHVOTjs.DropdownMenuTrigger, { asChild: true }, /* @__PURE__ */ React.createElement(
|
|
37
|
+
_chunkP4EDRIBHjs.SidebarMenuButton,
|
|
38
38
|
{
|
|
39
39
|
size: "lg",
|
|
40
40
|
className: "data-[state=open]:bg-sidebar-accent data-[state=open]:text-sidebar-accent-foreground"
|
|
@@ -78,4 +78,4 @@ function NavUser({
|
|
|
78
78
|
|
|
79
79
|
|
|
80
80
|
exports.NavUser = NavUser;
|
|
81
|
-
//# sourceMappingURL=chunk-
|
|
81
|
+
//# sourceMappingURL=chunk-FOEQYO2Q.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/jahn/projects/shadcn-theme/packages/react/dist/chunk-
|
|
1
|
+
{"version":3,"sources":["/home/jahn/projects/shadcn-theme/packages/react/dist/chunk-FOEQYO2Q.js","../layouts/sidebar1/nav-user.tsx"],"names":[],"mappings":"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","file":"/home/jahn/projects/shadcn-theme/packages/react/dist/chunk-FOEQYO2Q.js","sourcesContent":[null,"\"use client\";\nimport * as React from 'react';\nimport { ChevronsUpDown, LogOut } from 'lucide-react';\nimport { Avatar, AvatarFallback, AvatarImage } from '../../components/ui/avatar';\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuTrigger,\n} from '../../components/ui/dropdown-menu';\nimport { SidebarMenu, SidebarMenuButton, SidebarMenuItem, useSidebar } from '../../components/ui/sidebar';\nimport { ThemeSwitcher } from './theme-switcher';\n\nexport interface INavUser {\n name: string;\n email: string;\n avatar: string;\n}\n\nexport interface INavUserMenuItem {\n title: string;\n url?: string;\n icon?: React.ElementType;\n onClick?: (title: string) => void;\n}\n\nexport function NavUser({\n user,\n menus = [],\n aslink: LinkComponent,\n onLogout,\n}: {\n user: INavUser;\n menus: INavUserMenuItem[];\n aslink?: React.ElementType;\n onLogout?: (user: INavUser) => void;\n}) {\n const { isMobile } = useSidebar();\n\n return (\n <SidebarMenu>\n <SidebarMenuItem>\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <SidebarMenuButton\n size=\"lg\"\n className=\"data-[state=open]:bg-sidebar-accent data-[state=open]:text-sidebar-accent-foreground\"\n >\n <Avatar className=\"h-8 w-8 rounded-lg\">\n <AvatarImage src={user.avatar} alt={user.name} />\n <AvatarFallback className=\"rounded-lg\">CN</AvatarFallback>\n </Avatar>\n\n <div className=\"grid flex-1 text-left text-sm leading-tight\">\n <span className=\"truncate font-semibold\">{user.name}</span>\n <span className=\"truncate text-xs\">{user.email}</span>\n </div>\n\n <ChevronsUpDown className=\"ml-auto size-4\" />\n </SidebarMenuButton>\n </DropdownMenuTrigger>\n\n <DropdownMenuContent\n className=\"w-[--radix-dropdown-menu-trigger-width] min-w-56 rounded-lg\"\n side={isMobile ? 'bottom' : 'right'}\n align=\"end\"\n sideOffset={4}\n >\n <DropdownMenuLabel className=\"p-0 font-normal\">\n <div className=\"flex items-center gap-2 px-1 py-1.5 text-left text-sm\">\n <Avatar className=\"h-8 w-8 rounded-lg\">\n <AvatarImage src={user.avatar} alt={user.name} />\n <AvatarFallback className=\"rounded-lg\">CN</AvatarFallback>\n </Avatar>\n\n <div className=\"grid flex-1 text-left text-sm leading-tight\">\n <span className=\"truncate font-semibold\">{user.name}</span>\n <span className=\"truncate text-xs\">{user.email}</span>\n </div>\n </div>\n </DropdownMenuLabel>\n {menus.length > 0 && <DropdownMenuSeparator />}\n\n <DropdownMenuGroup>\n {menus.map((menu) => {\n const Comp = LinkComponent && menu.url ? LinkComponent : 'button';\n\n return (\n <Comp\n key={menu.title}\n to={menu.url}\n href={menu.url}\n onClick={() => menu.onClick?.(menu.title)}\n className=\"block w-full\"\n >\n <DropdownMenuItem>\n {menu.icon && <menu.icon />}\n {menu.title}\n </DropdownMenuItem>\n </Comp>\n );\n })}\n </DropdownMenuGroup>\n\n <DropdownMenuSeparator />\n\n <ThemeSwitcher />\n {onLogout && (\n <>\n <DropdownMenuSeparator />\n\n <DropdownMenuItem onClick={() => onLogout(user)}>\n <LogOut />\n Log out\n </DropdownMenuItem>\n </>\n )}\n </DropdownMenuContent>\n </DropdownMenu>\n </SidebarMenuItem>\n </SidebarMenu>\n );\n}\n"]}
|
|
@@ -4,6 +4,7 @@ import {
|
|
|
4
4
|
} from "./chunk-YOSPWY5K.mjs";
|
|
5
5
|
|
|
6
6
|
// components/ui/collapsible.tsx
|
|
7
|
+
import * as React from "react";
|
|
7
8
|
import { Collapsible as CollapsiblePrimitive } from "radix-ui";
|
|
8
9
|
function Collapsible(_a) {
|
|
9
10
|
var props = __objRest(_a, []);
|
|
@@ -23,4 +24,4 @@ export {
|
|
|
23
24
|
CollapsibleTrigger,
|
|
24
25
|
CollapsibleContent
|
|
25
26
|
};
|
|
26
|
-
//# sourceMappingURL=chunk-
|
|
27
|
+
//# sourceMappingURL=chunk-M6UKU56L.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../components/ui/collapsible.tsx"],"sourcesContent":["\"use client\";\nimport * as React from 'react';\nimport { Collapsible as CollapsiblePrimitive } from 'radix-ui';\n\nfunction Collapsible({ ...props }: React.ComponentProps<typeof CollapsiblePrimitive.Root>) {\n return <CollapsiblePrimitive.Root data-slot=\"collapsible\" {...props} />;\n}\n\nfunction CollapsibleTrigger({ ...props }: React.ComponentProps<typeof CollapsiblePrimitive.CollapsibleTrigger>) {\n return <CollapsiblePrimitive.CollapsibleTrigger data-slot=\"collapsible-trigger\" {...props} />;\n}\n\nfunction CollapsibleContent({ ...props }: React.ComponentProps<typeof CollapsiblePrimitive.CollapsibleContent>) {\n return <CollapsiblePrimitive.CollapsibleContent data-slot=\"collapsible-content\" {...props} />;\n}\n\nexport { Collapsible, CollapsibleTrigger, CollapsibleContent };\n"],"mappings":";;;;;;AACA,YAAY,WAAW;AACvB,SAAS,eAAe,4BAA4B;AAEpD,SAAS,YAAY,IAAsE;AAAtE,MAAK,kBAAL,IAAK;AACxB,SAAO,oCAAC,qBAAqB,MAArB,iBAA0B,aAAU,iBAAkB,MAAO;AACvE;AAEA,SAAS,mBAAmB,IAAoF;AAApF,MAAK,kBAAL,IAAK;AAC/B,SAAO,oCAAC,qBAAqB,oBAArB,iBAAwC,aAAU,yBAA0B,MAAO;AAC7F;AAEA,SAAS,mBAAmB,IAAoF;AAApF,MAAK,kBAAL,IAAK;AAC/B,SAAO,oCAAC,qBAAqB,oBAArB,iBAAwC,aAAU,yBAA0B,MAAO;AAC7F;","names":[]}
|
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } }
|
|
3
3
|
|
|
4
|
-
var
|
|
4
|
+
var _chunkVBPJD7U3js = require('./chunk-VBPJD7U3.js');
|
|
5
5
|
|
|
6
6
|
|
|
7
|
-
var
|
|
7
|
+
var _chunkAQIBLBXWjs = require('./chunk-AQIBLBXW.js');
|
|
8
8
|
|
|
9
9
|
|
|
10
|
-
var
|
|
10
|
+
var _chunkFOEQYO2Qjs = require('./chunk-FOEQYO2Q.js');
|
|
11
11
|
|
|
12
12
|
|
|
13
13
|
|
|
14
14
|
|
|
15
15
|
|
|
16
16
|
|
|
17
|
-
var
|
|
17
|
+
var _chunkP4EDRIBHjs = require('./chunk-P4EDRIBH.js');
|
|
18
18
|
|
|
19
19
|
|
|
20
20
|
var _chunkKB6BX6LAjs = require('./chunk-KB6BX6LA.js');
|
|
@@ -30,8 +30,8 @@ function AppSidebar(_a) {
|
|
|
30
30
|
var _b;
|
|
31
31
|
const _a2 = props, { data, aslink } = _a2, rest = _chunk2NMEKWO5js.__objRest.call(void 0, _a2, ["data", "aslink"]);
|
|
32
32
|
const { context } = data;
|
|
33
|
-
return /* @__PURE__ */ React.createElement(
|
|
34
|
-
|
|
33
|
+
return /* @__PURE__ */ React.createElement(_chunkP4EDRIBHjs.Sidebar, _chunk2NMEKWO5js.__spreadValues.call(void 0, { collapsible: "icon" }, rest), (context == null ? void 0 : context.items) && context.items.length > 0 && /* @__PURE__ */ React.createElement(_chunkP4EDRIBHjs.SidebarHeader, null, /* @__PURE__ */ React.createElement(
|
|
34
|
+
_chunkVBPJD7U3js.ContextSwitcher,
|
|
35
35
|
{
|
|
36
36
|
items: context.items,
|
|
37
37
|
title: context.title,
|
|
@@ -50,7 +50,7 @@ function AppSidebar(_a) {
|
|
|
50
50
|
}
|
|
51
51
|
}
|
|
52
52
|
}
|
|
53
|
-
)), /* @__PURE__ */ React.createElement(
|
|
53
|
+
)), /* @__PURE__ */ React.createElement(_chunkP4EDRIBHjs.SidebarContent, null, /* @__PURE__ */ React.createElement(_chunkAQIBLBXWjs.NavMenus, { menus: data.menus, aslink })), /* @__PURE__ */ React.createElement(_chunkP4EDRIBHjs.SidebarFooter, null, data.user ? /* @__PURE__ */ React.createElement(_chunkFOEQYO2Qjs.NavUser, { user: data.user, menus: data.userMenus, aslink, onLogout: (_b = data.events) == null ? void 0 : _b.logout }) : /* @__PURE__ */ React.createElement(
|
|
54
54
|
_chunkKB6BX6LAjs.Button,
|
|
55
55
|
{
|
|
56
56
|
variant: "action",
|
|
@@ -62,10 +62,10 @@ function AppSidebar(_a) {
|
|
|
62
62
|
}
|
|
63
63
|
},
|
|
64
64
|
"Sign in"
|
|
65
|
-
)), /* @__PURE__ */ React.createElement(
|
|
65
|
+
)), /* @__PURE__ */ React.createElement(_chunkP4EDRIBHjs.SidebarRail, null));
|
|
66
66
|
}
|
|
67
67
|
|
|
68
68
|
|
|
69
69
|
|
|
70
70
|
exports.AppSidebar = AppSidebar;
|
|
71
|
-
//# sourceMappingURL=chunk-
|
|
71
|
+
//# sourceMappingURL=chunk-NRCL342G.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/jahn/projects/shadcn-theme/packages/react/dist/chunk-
|
|
1
|
+
{"version":3,"sources":["/home/jahn/projects/shadcn-theme/packages/react/dist/chunk-NRCL342G.js","../layouts/sidebar1/app-sidebar.tsx"],"names":["_a","context"],"mappings":"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","file":"/home/jahn/projects/shadcn-theme/packages/react/dist/chunk-NRCL342G.js","sourcesContent":[null,"\"use client\";\nimport * as React from 'react';\nimport { NavMenus } from './nav-menus';\nimport { NavUser, INavUser, INavUserMenuItem } from './nav-user';\nimport { ContextSwitcher, INavContext } from './context-switcher';\nimport { INavMenu } from './nav-menus';\nimport { Sidebar, SidebarContent, SidebarFooter, SidebarHeader, SidebarRail } from '../../components/ui/sidebar';\nimport { Button } from '../../components/ui/button';\n\nexport interface ISidebarContext {\n title?: string;\n addText?: string;\n items?: INavContext[];\n canAdd?: boolean;\n}\n\nexport interface ISidebarData {\n user?: INavUser;\n context?: ISidebarContext;\n menus: INavMenu[];\n userMenus: INavUserMenuItem[];\n events?: {\n login?: () => void;\n logout?: (user: INavUser) => void;\n newContext?: () => void;\n contextSelect?: (context: INavContext) => void;\n };\n}\n\nexport function AppSidebar({\n ...props\n}: React.ComponentProps<typeof Sidebar> & {\n data: ISidebarData;\n aslink: React.ElementType;\n}) {\n const { data, aslink, ...rest } = props;\n const { context } = data;\n\n return (\n <Sidebar collapsible=\"icon\" {...rest}>\n {context?.items && context.items.length > 0 && (\n <SidebarHeader>\n <ContextSwitcher\n items={context.items}\n title={context.title}\n newContextText={context.addText}\n canAdd={context.canAdd}\n onContextAdd={() => {\n if (data.events?.newContext) {\n data.events.newContext();\n }\n }}\n onContextSelected={(context: INavContext) => {\n if (data.events?.contextSelect) {\n data.events.contextSelect(context);\n }\n }}\n />\n </SidebarHeader>\n )}\n\n <SidebarContent>\n <NavMenus menus={data.menus} aslink={aslink} />\n </SidebarContent>\n\n <SidebarFooter>\n {data.user ? (\n <NavUser user={data.user} menus={data.userMenus} aslink={aslink} onLogout={data.events?.logout} />\n ) : (\n <Button\n variant=\"action\"\n onClick={() => {\n if (data.events?.login) {\n data.events.login();\n }\n }}\n >\n Sign in\n </Button>\n )}\n </SidebarFooter>\n\n <SidebarRail />\n </Sidebar>\n );\n}\n"]}
|
|
@@ -7,6 +7,7 @@ import {
|
|
|
7
7
|
} from "./chunk-YOSPWY5K.mjs";
|
|
8
8
|
|
|
9
9
|
// components/ui/skeleton.tsx
|
|
10
|
+
import * as React from "react";
|
|
10
11
|
function Skeleton(_a) {
|
|
11
12
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
12
13
|
return /* @__PURE__ */ React.createElement("div", __spreadValues({ "data-slot": "skeleton", className: cn("bg-muted rounded-md animate-pulse", className) }, props));
|
|
@@ -15,4 +16,4 @@ function Skeleton(_a) {
|
|
|
15
16
|
export {
|
|
16
17
|
Skeleton
|
|
17
18
|
};
|
|
18
|
-
//# sourceMappingURL=chunk-
|
|
19
|
+
//# sourceMappingURL=chunk-O6PHWGJH.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../components/ui/skeleton.tsx"],"sourcesContent":["\"use client\";\nimport * as React from 'react';\nimport { cn } from '../../utils/ui';\n\nfunction Skeleton({ className, ...props }: React.ComponentProps<'div'>) {\n return <div data-slot=\"skeleton\" className={cn('bg-muted rounded-md animate-pulse', className)} {...props} />;\n}\n\nexport { Skeleton };\n"],"mappings":";;;;;;;;;AACA,YAAY,WAAW;AAGvB,SAAS,SAAS,IAAsD;AAAtD,eAAE,YAJpB,IAIkB,IAAgB,kBAAhB,IAAgB,CAAd;AAClB,SAAO,oCAAC,wBAAI,aAAU,YAAW,WAAW,GAAG,qCAAqC,SAAS,KAAO,MAAO;AAC7G;","names":[]}
|
|
@@ -6,7 +6,7 @@ import {
|
|
|
6
6
|
SidebarMenuButton,
|
|
7
7
|
SidebarMenuItem,
|
|
8
8
|
useSidebar
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-4IDPSNL3.mjs";
|
|
10
10
|
import {
|
|
11
11
|
DropdownMenu,
|
|
12
12
|
DropdownMenuContent,
|
|
@@ -77,4 +77,4 @@ function NavUser({
|
|
|
77
77
|
export {
|
|
78
78
|
NavUser
|
|
79
79
|
};
|
|
80
|
-
//# sourceMappingURL=chunk-
|
|
80
|
+
//# sourceMappingURL=chunk-P4DW3EEW.mjs.map
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
var _chunkWKQDHQASjs = require('./chunk-WKQDHQAS.js');
|
|
9
9
|
|
|
10
10
|
|
|
11
|
-
var
|
|
11
|
+
var _chunkBMAIJZN6js = require('./chunk-BMAIJZN6.js');
|
|
12
12
|
|
|
13
13
|
|
|
14
14
|
|
|
@@ -530,9 +530,9 @@ function SidebarMenuSkeleton(_a) {
|
|
|
530
530
|
"data-sidebar": "menu-skeleton",
|
|
531
531
|
className: _chunkPSPAJNNBjs.cn.call(void 0, "h-8 gap-2 rounded-md px-2 flex items-center", className)
|
|
532
532
|
}, props),
|
|
533
|
-
showIcon && /* @__PURE__ */ React.createElement(
|
|
533
|
+
showIcon && /* @__PURE__ */ React.createElement(_chunkBMAIJZN6js.Skeleton, { className: "size-4 rounded-md", "data-sidebar": "menu-skeleton-icon" }),
|
|
534
534
|
/* @__PURE__ */ React.createElement(
|
|
535
|
-
|
|
535
|
+
_chunkBMAIJZN6js.Skeleton,
|
|
536
536
|
{
|
|
537
537
|
className: "h-4 max-w-(--skeleton-width) flex-1",
|
|
538
538
|
"data-sidebar": "menu-skeleton-text",
|
|
@@ -622,4 +622,4 @@ function SidebarMenuSubButton(_a) {
|
|
|
622
622
|
|
|
623
623
|
|
|
624
624
|
exports.useSidebar = useSidebar; exports.SidebarProvider = SidebarProvider; exports.Sidebar = Sidebar; exports.SidebarTrigger = SidebarTrigger; exports.SidebarRail = SidebarRail; exports.SidebarInset = SidebarInset; exports.SidebarInput = SidebarInput; exports.SidebarHeader = SidebarHeader; exports.SidebarFooter = SidebarFooter; exports.SidebarSeparator = SidebarSeparator; exports.SidebarContent = SidebarContent; exports.SidebarGroup = SidebarGroup; exports.SidebarGroupLabel = SidebarGroupLabel; exports.SidebarGroupAction = SidebarGroupAction; exports.SidebarGroupContent = SidebarGroupContent; exports.SidebarMenu = SidebarMenu; exports.SidebarMenuItem = SidebarMenuItem; exports.SidebarMenuButton = SidebarMenuButton; exports.SidebarMenuAction = SidebarMenuAction; exports.SidebarMenuBadge = SidebarMenuBadge; exports.SidebarMenuSkeleton = SidebarMenuSkeleton; exports.SidebarMenuSub = SidebarMenuSub; exports.SidebarMenuSubItem = SidebarMenuSubItem; exports.SidebarMenuSubButton = SidebarMenuSubButton;
|
|
625
|
-
//# sourceMappingURL=chunk-
|
|
625
|
+
//# sourceMappingURL=chunk-P4EDRIBH.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/jahn/projects/shadcn-theme/packages/react/dist/chunk-WREXRSAA.js","../components/ui/sidebar.tsx"],"names":[],"mappings":"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","file":"/home/jahn/projects/shadcn-theme/packages/react/dist/chunk-WREXRSAA.js","sourcesContent":[null,"\"use client\";\nimport * as React from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { Slot } from 'radix-ui';\n\nimport { useIsMobile } from '../../hooks/use-mobile';\nimport { cn } from '../../utils/ui';\nimport { Button } from './button';\nimport { Input } from './input';\nimport { Separator } from './separator';\nimport { Sheet, SheetContent, SheetDescription, SheetHeader, SheetTitle } from './sheet';\nimport { Skeleton } from './skeleton';\nimport { Tooltip, TooltipContent, TooltipTrigger } from './tooltip';\nimport { PanelLeftIcon } from 'lucide-react';\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\ntype SidebarContextProps = {\n state: 'expanded' | 'collapsed';\n open: boolean;\n setOpen: (open: boolean) => void;\n openMobile: boolean;\n setOpenMobile: (open: boolean) => void;\n isMobile: boolean;\n toggleSidebar: () => void;\n};\n\nconst SidebarContext = React.createContext<SidebarContextProps | null>(null);\n\nfunction useSidebar() {\n const context = React.useContext(SidebarContext);\n if (!context) {\n throw new Error('useSidebar must be used within a SidebarProvider.');\n }\n\n return context;\n}\n\nfunction SidebarProvider({\n defaultOpen = true,\n open: openProp,\n onOpenChange: setOpenProp,\n className,\n style,\n children,\n ...props\n}: React.ComponentProps<'div'> & {\n defaultOpen?: boolean;\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n}) {\n const isMobile = useIsMobile();\n const [openMobile, setOpenMobile] = React.useState(false);\n\n // This is the internal state of the sidebar.\n // We use openProp and setOpenProp for control from outside the component.\n const [_open, _setOpen] = React.useState(defaultOpen);\n const open = openProp ?? _open;\n const setOpen = React.useCallback(\n (value: boolean | ((value: boolean) => boolean)) => {\n const openState = typeof value === 'function' ? value(open) : value;\n if (setOpenProp) {\n setOpenProp(openState);\n } else {\n _setOpen(openState);\n }\n\n // This sets the cookie to keep the sidebar state.\n document.cookie = `${SIDEBAR_COOKIE_NAME}=${openState}; path=/; max-age=${SIDEBAR_COOKIE_MAX_AGE}`;\n },\n [setOpenProp, open],\n );\n\n // Helper to toggle the sidebar.\n const toggleSidebar = React.useCallback(() => {\n return isMobile ? setOpenMobile((open) => !open) : setOpen((open) => !open);\n }, [isMobile, setOpen, setOpenMobile]);\n\n // Adds a keyboard shortcut to toggle the sidebar.\n React.useEffect(() => {\n const handleKeyDown = (event: KeyboardEvent) => {\n if (event.key === SIDEBAR_KEYBOARD_SHORTCUT && (event.metaKey || event.ctrlKey)) {\n event.preventDefault();\n toggleSidebar();\n }\n };\n\n window.addEventListener('keydown', handleKeyDown);\n return () => window.removeEventListener('keydown', handleKeyDown);\n }, [toggleSidebar]);\n\n // We add a state so that we can do data-state=\"expanded\" or \"collapsed\".\n // This makes it easier to style the sidebar with Tailwind classes.\n const state = open ? 'expanded' : 'collapsed';\n\n const contextValue = React.useMemo<SidebarContextProps>(\n () => ({\n state,\n open,\n setOpen,\n isMobile,\n openMobile,\n setOpenMobile,\n toggleSidebar,\n }),\n [state, open, setOpen, isMobile, openMobile, setOpenMobile, toggleSidebar],\n );\n\n return (\n <SidebarContext.Provider value={contextValue}>\n <div\n data-slot=\"sidebar-wrapper\"\n style={\n {\n '--sidebar-width': SIDEBAR_WIDTH,\n '--sidebar-width-icon': SIDEBAR_WIDTH_ICON,\n ...style,\n } as React.CSSProperties\n }\n className={cn('group/sidebar-wrapper flex min-h-svh w-full has-data-[variant=inset]:bg-sidebar', className)}\n {...props}\n >\n {children}\n </div>\n </SidebarContext.Provider>\n );\n}\n\nfunction Sidebar({\n side = 'left',\n variant = 'sidebar',\n collapsible = 'offcanvas',\n className,\n children,\n dir,\n ...props\n}: React.ComponentProps<'div'> & {\n side?: 'left' | 'right';\n variant?: 'sidebar' | 'floating' | 'inset';\n collapsible?: 'offcanvas' | 'icon' | 'none';\n}) {\n const { isMobile, state, openMobile, setOpenMobile } = useSidebar();\n\n if (collapsible === 'none') {\n return (\n <div\n data-slot=\"sidebar\"\n className={cn('flex h-full w-(--sidebar-width) flex-col bg-sidebar text-sidebar-foreground', className)}\n {...props}\n >\n {children}\n </div>\n );\n }\n\n if (isMobile) {\n return (\n <Sheet open={openMobile} onOpenChange={setOpenMobile} {...props}>\n <SheetContent\n dir={dir}\n data-sidebar=\"sidebar\"\n data-slot=\"sidebar\"\n data-mobile=\"true\"\n className=\"w-(--sidebar-width) bg-sidebar p-0 text-sidebar-foreground [&>button]:hidden\"\n style={\n {\n '--sidebar-width': SIDEBAR_WIDTH_MOBILE,\n } as React.CSSProperties\n }\n side={side}\n >\n <SheetHeader className=\"sr-only\">\n <SheetTitle>Sidebar</SheetTitle>\n <SheetDescription>Displays the mobile sidebar.</SheetDescription>\n </SheetHeader>\n <div className=\"flex h-full w-full flex-col\">{children}</div>\n </SheetContent>\n </Sheet>\n );\n }\n\n return (\n <div\n className=\"group peer hidden text-sidebar-foreground md:block\"\n data-state={state}\n data-collapsible={state === 'collapsed' ? collapsible : ''}\n data-variant={variant}\n data-side={side}\n data-slot=\"sidebar\"\n >\n {/* This is what handles the sidebar gap on desktop */}\n <div\n data-slot=\"sidebar-gap\"\n className={cn(\n 'transition-[width] duration-200 ease-linear relative w-(--sidebar-width) bg-transparent',\n 'group-data-[collapsible=offcanvas]:w-0',\n 'group-data-[side=right]:rotate-180',\n variant === 'floating' || variant === 'inset'\n ? 'group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]'\n : 'group-data-[collapsible=icon]:w-(--sidebar-width-icon)',\n )}\n />\n <div\n data-slot=\"sidebar-container\"\n data-side={side}\n className={cn(\n 'fixed inset-y-0 z-10 hidden h-svh w-(--sidebar-width) transition-[left,right,width] duration-200 ease-linear data-[side=left]:left-0 data-[side=left]:group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)] data-[side=right]:right-0 data-[side=right]:group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)] md:flex',\n // Adjust the padding for floating and inset variants.\n variant === 'floating' || variant === 'inset'\n ? 'p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)]'\n : 'group-data-[collapsible=icon]:w-(--sidebar-width-icon) group-data-[side=left]:border-r group-data-[side=right]:border-l',\n className,\n )}\n {...props}\n >\n <div\n data-sidebar=\"sidebar\"\n data-slot=\"sidebar-inner\"\n className=\"bg-sidebar group-data-[variant=floating]:ring-sidebar-border group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:shadow-sm group-data-[variant=floating]:ring-1 flex size-full flex-col\"\n >\n {children}\n </div>\n </div>\n </div>\n );\n}\n\nfunction SidebarTrigger({ className, onClick, ...props }: React.ComponentProps<typeof Button>) {\n const { toggleSidebar } = useSidebar();\n\n return (\n <Button\n data-sidebar=\"trigger\"\n data-slot=\"sidebar-trigger\"\n variant=\"ghost\"\n size=\"icon\"\n className={cn(className)}\n onClick={(event) => {\n onClick?.(event);\n toggleSidebar();\n }}\n {...props}\n >\n <PanelLeftIcon className=\"cn-rtl-flip\" />\n <span className=\"sr-only\">Toggle Sidebar</span>\n </Button>\n );\n}\n\nfunction SidebarRail({ className, ...props }: React.ComponentProps<'button'>) {\n const { toggleSidebar } = useSidebar();\n\n return (\n <button\n data-sidebar=\"rail\"\n data-slot=\"sidebar-rail\"\n aria-label=\"Toggle Sidebar\"\n tabIndex={-1}\n onClick={toggleSidebar}\n title=\"Toggle Sidebar\"\n className={cn(\n 'hover:after:bg-sidebar-border absolute inset-y-0 z-20 hidden w-4 transition-all ease-linear group-data-[side=left]:-right-4 group-data-[side=right]:left-0 after:absolute after:inset-y-0 after:start-1/2 after:w-[2px] sm:flex ltr:-translate-x-1/2 rtl:-translate-x-1/2',\n 'in-data-[side=left]:cursor-w-resize in-data-[side=right]:cursor-e-resize',\n '[[data-side=left][data-state=collapsed]_&]:cursor-e-resize [[data-side=right][data-state=collapsed]_&]:cursor-w-resize',\n 'group-data-[collapsible=offcanvas]:translate-x-0 group-data-[collapsible=offcanvas]:after:left-full hover:group-data-[collapsible=offcanvas]:bg-sidebar',\n '[[data-side=left][data-collapsible=offcanvas]_&]:-right-2',\n '[[data-side=right][data-collapsible=offcanvas]_&]:-left-2',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction SidebarInset({ className, ...props }: React.ComponentProps<'main'>) {\n return (\n <main\n data-slot=\"sidebar-inset\"\n className={cn(\n 'bg-background md:peer-data-[variant=inset]:m-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow-sm md:peer-data-[variant=inset]:peer-data-[state=collapsed]:ml-2 relative flex w-full flex-1 flex-col',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction SidebarInput({ className, ...props }: React.ComponentProps<typeof Input>) {\n return (\n <Input\n data-slot=\"sidebar-input\"\n data-sidebar=\"input\"\n className={cn('bg-background h-8 w-full shadow-none', className)}\n {...props}\n />\n );\n}\n\nfunction SidebarHeader({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"sidebar-header\"\n data-sidebar=\"header\"\n className={cn('gap-2 p-2 flex flex-col', className)}\n {...props}\n />\n );\n}\n\nfunction SidebarFooter({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"sidebar-footer\"\n data-sidebar=\"footer\"\n className={cn('gap-2 p-2 flex flex-col', className)}\n {...props}\n />\n );\n}\n\nfunction SidebarSeparator({ className, ...props }: React.ComponentProps<typeof Separator>) {\n return (\n <Separator\n data-slot=\"sidebar-separator\"\n data-sidebar=\"separator\"\n className={cn('bg-sidebar-border mx-2 w-auto', className)}\n {...props}\n />\n );\n}\n\nfunction SidebarContent({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"sidebar-content\"\n data-sidebar=\"content\"\n className={cn(\n 'no-scrollbar gap-0 flex min-h-0 flex-1 flex-col overflow-auto group-data-[collapsible=icon]:overflow-hidden',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction SidebarGroup({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"sidebar-group\"\n data-sidebar=\"group\"\n className={cn('p-2 relative flex w-full min-w-0 flex-col', className)}\n {...props}\n />\n );\n}\n\nfunction SidebarGroupLabel({\n className,\n asChild = false,\n ...props\n}: React.ComponentProps<'div'> & { asChild?: boolean }) {\n const Comp = asChild ? Slot.Root : 'div';\n\n return (\n <Comp\n data-slot=\"sidebar-group-label\"\n data-sidebar=\"group-label\"\n className={cn(\n 'text-sidebar-foreground/70 ring-sidebar-ring h-8 rounded-md px-2 text-xs font-medium transition-[margin,opacity] duration-200 ease-linear group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0 focus-visible:ring-2 [&>svg]:size-4 flex shrink-0 items-center outline-hidden [&>svg]:shrink-0',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction SidebarGroupAction({\n className,\n asChild = false,\n ...props\n}: React.ComponentProps<'button'> & { asChild?: boolean }) {\n const Comp = asChild ? Slot.Root : 'button';\n\n return (\n <Comp\n data-slot=\"sidebar-group-action\"\n data-sidebar=\"group-action\"\n className={cn(\n 'text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground absolute top-3.5 right-3 w-5 rounded-md p-0 focus-visible:ring-2 [&>svg]:size-4 flex aspect-square items-center justify-center outline-hidden transition-transform group-data-[collapsible=icon]:hidden after:absolute after:-inset-2 md:after:hidden [&>svg]:shrink-0',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction SidebarGroupContent({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"sidebar-group-content\"\n data-sidebar=\"group-content\"\n className={cn('text-sm w-full', className)}\n {...props}\n />\n );\n}\n\nfunction SidebarMenu({ className, ...props }: React.ComponentProps<'ul'>) {\n return (\n <ul\n data-slot=\"sidebar-menu\"\n data-sidebar=\"menu\"\n className={cn('gap-0 flex w-full min-w-0 flex-col', className)}\n {...props}\n />\n );\n}\n\nfunction SidebarMenuItem({ className, ...props }: React.ComponentProps<'li'>) {\n return (\n <li\n data-slot=\"sidebar-menu-item\"\n data-sidebar=\"menu-item\"\n className={cn('group/menu-item relative', className)}\n {...props}\n />\n );\n}\n\nconst sidebarMenuButtonVariants = cva(\n 'ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground active:bg-sidebar-accent active:text-sidebar-accent-foreground data-[active=true]:bg-sidebar-accent data-[active=true]:text-sidebar-accent-foreground data-open:hover:bg-sidebar-accent data-open:hover:text-sidebar-accent-foreground gap-2 rounded-md p-2 text-left text-sm transition-[width,height,padding] group-has-data-[sidebar=menu-action]/menu-item:pr-8 group-data-[collapsible=icon]:size-8! group-data-[collapsible=icon]:p-2! focus-visible:ring-2 data-[active=true]:font-medium peer/menu-button group/menu-button flex w-full items-center overflow-hidden outline-hidden disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 [&_svg]:size-4 [&_svg]:shrink-0 [&>span:last-child]:truncate',\n {\n variants: {\n variant: {\n default: 'hover:bg-sidebar-accent hover:text-sidebar-accent-foreground',\n outline:\n 'bg-background hover:bg-sidebar-accent hover:text-sidebar-accent-foreground shadow-[0_0_0_1px_hsl(var(--sidebar-border))] hover:shadow-[0_0_0_1px_hsl(var(--sidebar-accent))]',\n },\n size: {\n default: 'h-8 text-sm',\n sm: 'h-7 text-xs',\n lg: 'h-12 text-sm group-data-[collapsible=icon]:p-0!',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'default',\n },\n },\n);\n\nfunction SidebarMenuButton({\n asChild = false,\n isActive = false,\n variant = 'default',\n size = 'default',\n tooltip,\n className,\n ...props\n}: React.ComponentProps<'button'> & {\n asChild?: boolean;\n isActive?: boolean;\n tooltip?: string | React.ComponentProps<typeof TooltipContent>;\n} & VariantProps<typeof sidebarMenuButtonVariants>) {\n const Comp = asChild ? Slot.Root : 'button';\n const { isMobile, state } = useSidebar();\n\n const button = (\n <Comp\n data-slot=\"sidebar-menu-button\"\n data-sidebar=\"menu-button\"\n data-size={size}\n data-active={isActive}\n className={cn(sidebarMenuButtonVariants({ variant, size }), className)}\n {...props}\n />\n );\n\n if (!tooltip) {\n return button;\n }\n\n if (typeof tooltip === 'string') {\n tooltip = {\n children: tooltip,\n };\n }\n\n return (\n <Tooltip>\n <TooltipTrigger asChild>{button}</TooltipTrigger>\n <TooltipContent side=\"right\" align=\"center\" hidden={state !== 'collapsed' || isMobile} {...tooltip} />\n </Tooltip>\n );\n}\n\nfunction SidebarMenuAction({\n className,\n asChild = false,\n showOnHover = false,\n ...props\n}: React.ComponentProps<'button'> & {\n asChild?: boolean;\n showOnHover?: boolean;\n}) {\n const Comp = asChild ? Slot.Root : 'button';\n\n return (\n <Comp\n data-slot=\"sidebar-menu-action\"\n data-sidebar=\"menu-action\"\n className={cn(\n 'text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground peer-hover/menu-button:text-sidebar-accent-foreground absolute top-1.5 right-1 aspect-square w-5 rounded-md p-0 peer-data-[size=default]/menu-button:top-1.5 peer-data-[size=lg]/menu-button:top-2.5 peer-data-[size=sm]/menu-button:top-1 focus-visible:ring-2 [&>svg]:size-4 flex items-center justify-center outline-hidden transition-transform group-data-[collapsible=icon]:hidden after:absolute after:-inset-2 md:after:hidden [&>svg]:shrink-0',\n showOnHover &&\n 'group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 peer-data-active/menu-button:text-sidebar-accent-foreground aria-expanded:opacity-100 md:opacity-0',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction SidebarMenuBadge({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"sidebar-menu-badge\"\n data-sidebar=\"menu-badge\"\n className={cn(\n 'text-sidebar-foreground peer-hover/menu-button:text-sidebar-accent-foreground peer-data-active/menu-button:text-sidebar-accent-foreground pointer-events-none absolute right-1 h-5 min-w-5 rounded-md px-1 text-xs font-medium peer-data-[size=default]/menu-button:top-1.5 peer-data-[size=lg]/menu-button:top-2.5 peer-data-[size=sm]/menu-button:top-1 flex items-center justify-center tabular-nums select-none group-data-[collapsible=icon]:hidden',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction SidebarMenuSkeleton({\n className,\n showIcon = false,\n ...props\n}: React.ComponentProps<'div'> & {\n showIcon?: boolean;\n}) {\n // Random width between 50 to 90%.\n const [width] = React.useState(() => {\n return `${Math.floor(Math.random() * 40) + 50}%`;\n });\n\n return (\n <div\n data-slot=\"sidebar-menu-skeleton\"\n data-sidebar=\"menu-skeleton\"\n className={cn('h-8 gap-2 rounded-md px-2 flex items-center', className)}\n {...props}\n >\n {showIcon && <Skeleton className=\"size-4 rounded-md\" data-sidebar=\"menu-skeleton-icon\" />}\n <Skeleton\n className=\"h-4 max-w-(--skeleton-width) flex-1\"\n data-sidebar=\"menu-skeleton-text\"\n style={\n {\n '--skeleton-width': width,\n } as React.CSSProperties\n }\n />\n </div>\n );\n}\n\nfunction SidebarMenuSub({ className, ...props }: React.ComponentProps<'ul'>) {\n return (\n <ul\n data-slot=\"sidebar-menu-sub\"\n data-sidebar=\"menu-sub\"\n className={cn(\n 'border-sidebar-border mx-3.5 translate-x-px gap-1 border-l px-2.5 py-0.5 group-data-[collapsible=icon]:hidden flex min-w-0 flex-col',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction SidebarMenuSubItem({ className, ...props }: React.ComponentProps<'li'>) {\n return (\n <li\n data-slot=\"sidebar-menu-sub-item\"\n data-sidebar=\"menu-sub-item\"\n className={cn('group/menu-sub-item relative', className)}\n {...props}\n />\n );\n}\n\nfunction SidebarMenuSubButton({\n asChild = false,\n size = 'md',\n isActive = false,\n className,\n ...props\n}: React.ComponentProps<'a'> & {\n asChild?: boolean;\n size?: 'sm' | 'md';\n isActive?: boolean;\n}) {\n const Comp = asChild ? Slot.Root : 'a';\n\n return (\n <Comp\n data-slot=\"sidebar-menu-sub-button\"\n data-sidebar=\"menu-sub-button\"\n data-size={size}\n data-active={isActive}\n className={cn(\n 'text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground active:bg-sidebar-accent active:text-sidebar-accent-foreground [&>svg]:text-sidebar-accent-foreground data-[active=true]:bg-sidebar-accent data-[active=true]:text-sidebar-accent-foreground h-7 gap-2 rounded-md px-2 focus-visible:ring-2 data-[size=md]:text-sm data-[size=sm]:text-xs [&>svg]:size-4 flex min-w-0 -translate-x-px items-center overflow-hidden outline-hidden group-data-[collapsible=icon]:hidden disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 [&>span:last-child]:truncate [&>svg]:shrink-0',\n className,\n )}\n {...props}\n />\n );\n}\n\nexport {\n Sidebar,\n SidebarContent,\n SidebarFooter,\n SidebarGroup,\n SidebarGroupAction,\n SidebarGroupContent,\n SidebarGroupLabel,\n SidebarHeader,\n SidebarInput,\n SidebarInset,\n SidebarMenu,\n SidebarMenuAction,\n SidebarMenuBadge,\n SidebarMenuButton,\n SidebarMenuItem,\n SidebarMenuSkeleton,\n SidebarMenuSub,\n SidebarMenuSubButton,\n SidebarMenuSubItem,\n SidebarProvider,\n SidebarRail,\n SidebarSeparator,\n SidebarTrigger,\n useSidebar,\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["/home/jahn/projects/shadcn-theme/packages/react/dist/chunk-P4EDRIBH.js","../components/ui/sidebar.tsx"],"names":[],"mappings":"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","file":"/home/jahn/projects/shadcn-theme/packages/react/dist/chunk-P4EDRIBH.js","sourcesContent":[null,"\"use client\";\nimport * as React from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { Slot } from 'radix-ui';\n\nimport { useIsMobile } from '../../hooks/use-mobile';\nimport { cn } from '../../utils/ui';\nimport { Button } from './button';\nimport { Input } from './input';\nimport { Separator } from './separator';\nimport { Sheet, SheetContent, SheetDescription, SheetHeader, SheetTitle } from './sheet';\nimport { Skeleton } from './skeleton';\nimport { Tooltip, TooltipContent, TooltipTrigger } from './tooltip';\nimport { PanelLeftIcon } from 'lucide-react';\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\ntype SidebarContextProps = {\n state: 'expanded' | 'collapsed';\n open: boolean;\n setOpen: (open: boolean) => void;\n openMobile: boolean;\n setOpenMobile: (open: boolean) => void;\n isMobile: boolean;\n toggleSidebar: () => void;\n};\n\nconst SidebarContext = React.createContext<SidebarContextProps | null>(null);\n\nfunction useSidebar() {\n const context = React.useContext(SidebarContext);\n if (!context) {\n throw new Error('useSidebar must be used within a SidebarProvider.');\n }\n\n return context;\n}\n\nfunction SidebarProvider({\n defaultOpen = true,\n open: openProp,\n onOpenChange: setOpenProp,\n className,\n style,\n children,\n ...props\n}: React.ComponentProps<'div'> & {\n defaultOpen?: boolean;\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n}) {\n const isMobile = useIsMobile();\n const [openMobile, setOpenMobile] = React.useState(false);\n\n // This is the internal state of the sidebar.\n // We use openProp and setOpenProp for control from outside the component.\n const [_open, _setOpen] = React.useState(defaultOpen);\n const open = openProp ?? _open;\n const setOpen = React.useCallback(\n (value: boolean | ((value: boolean) => boolean)) => {\n const openState = typeof value === 'function' ? value(open) : value;\n if (setOpenProp) {\n setOpenProp(openState);\n } else {\n _setOpen(openState);\n }\n\n // This sets the cookie to keep the sidebar state.\n document.cookie = `${SIDEBAR_COOKIE_NAME}=${openState}; path=/; max-age=${SIDEBAR_COOKIE_MAX_AGE}`;\n },\n [setOpenProp, open],\n );\n\n // Helper to toggle the sidebar.\n const toggleSidebar = React.useCallback(() => {\n return isMobile ? setOpenMobile((open) => !open) : setOpen((open) => !open);\n }, [isMobile, setOpen, setOpenMobile]);\n\n // Adds a keyboard shortcut to toggle the sidebar.\n React.useEffect(() => {\n const handleKeyDown = (event: KeyboardEvent) => {\n if (event.key === SIDEBAR_KEYBOARD_SHORTCUT && (event.metaKey || event.ctrlKey)) {\n event.preventDefault();\n toggleSidebar();\n }\n };\n\n window.addEventListener('keydown', handleKeyDown);\n return () => window.removeEventListener('keydown', handleKeyDown);\n }, [toggleSidebar]);\n\n // We add a state so that we can do data-state=\"expanded\" or \"collapsed\".\n // This makes it easier to style the sidebar with Tailwind classes.\n const state = open ? 'expanded' : 'collapsed';\n\n const contextValue = React.useMemo<SidebarContextProps>(\n () => ({\n state,\n open,\n setOpen,\n isMobile,\n openMobile,\n setOpenMobile,\n toggleSidebar,\n }),\n [state, open, setOpen, isMobile, openMobile, setOpenMobile, toggleSidebar],\n );\n\n return (\n <SidebarContext.Provider value={contextValue}>\n <div\n data-slot=\"sidebar-wrapper\"\n style={\n {\n '--sidebar-width': SIDEBAR_WIDTH,\n '--sidebar-width-icon': SIDEBAR_WIDTH_ICON,\n ...style,\n } as React.CSSProperties\n }\n className={cn('group/sidebar-wrapper flex min-h-svh w-full has-data-[variant=inset]:bg-sidebar', className)}\n {...props}\n >\n {children}\n </div>\n </SidebarContext.Provider>\n );\n}\n\nfunction Sidebar({\n side = 'left',\n variant = 'sidebar',\n collapsible = 'offcanvas',\n className,\n children,\n dir,\n ...props\n}: React.ComponentProps<'div'> & {\n side?: 'left' | 'right';\n variant?: 'sidebar' | 'floating' | 'inset';\n collapsible?: 'offcanvas' | 'icon' | 'none';\n}) {\n const { isMobile, state, openMobile, setOpenMobile } = useSidebar();\n\n if (collapsible === 'none') {\n return (\n <div\n data-slot=\"sidebar\"\n className={cn('flex h-full w-(--sidebar-width) flex-col bg-sidebar text-sidebar-foreground', className)}\n {...props}\n >\n {children}\n </div>\n );\n }\n\n if (isMobile) {\n return (\n <Sheet open={openMobile} onOpenChange={setOpenMobile} {...props}>\n <SheetContent\n dir={dir}\n data-sidebar=\"sidebar\"\n data-slot=\"sidebar\"\n data-mobile=\"true\"\n className=\"w-(--sidebar-width) bg-sidebar p-0 text-sidebar-foreground [&>button]:hidden\"\n style={\n {\n '--sidebar-width': SIDEBAR_WIDTH_MOBILE,\n } as React.CSSProperties\n }\n side={side}\n >\n <SheetHeader className=\"sr-only\">\n <SheetTitle>Sidebar</SheetTitle>\n <SheetDescription>Displays the mobile sidebar.</SheetDescription>\n </SheetHeader>\n <div className=\"flex h-full w-full flex-col\">{children}</div>\n </SheetContent>\n </Sheet>\n );\n }\n\n return (\n <div\n className=\"group peer hidden text-sidebar-foreground md:block\"\n data-state={state}\n data-collapsible={state === 'collapsed' ? collapsible : ''}\n data-variant={variant}\n data-side={side}\n data-slot=\"sidebar\"\n >\n {/* This is what handles the sidebar gap on desktop */}\n <div\n data-slot=\"sidebar-gap\"\n className={cn(\n 'transition-[width] duration-200 ease-linear relative w-(--sidebar-width) bg-transparent',\n 'group-data-[collapsible=offcanvas]:w-0',\n 'group-data-[side=right]:rotate-180',\n variant === 'floating' || variant === 'inset'\n ? 'group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]'\n : 'group-data-[collapsible=icon]:w-(--sidebar-width-icon)',\n )}\n />\n <div\n data-slot=\"sidebar-container\"\n data-side={side}\n className={cn(\n 'fixed inset-y-0 z-10 hidden h-svh w-(--sidebar-width) transition-[left,right,width] duration-200 ease-linear data-[side=left]:left-0 data-[side=left]:group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)] data-[side=right]:right-0 data-[side=right]:group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)] md:flex',\n // Adjust the padding for floating and inset variants.\n variant === 'floating' || variant === 'inset'\n ? 'p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)]'\n : 'group-data-[collapsible=icon]:w-(--sidebar-width-icon) group-data-[side=left]:border-r group-data-[side=right]:border-l',\n className,\n )}\n {...props}\n >\n <div\n data-sidebar=\"sidebar\"\n data-slot=\"sidebar-inner\"\n className=\"bg-sidebar group-data-[variant=floating]:ring-sidebar-border group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:shadow-sm group-data-[variant=floating]:ring-1 flex size-full flex-col\"\n >\n {children}\n </div>\n </div>\n </div>\n );\n}\n\nfunction SidebarTrigger({ className, onClick, ...props }: React.ComponentProps<typeof Button>) {\n const { toggleSidebar } = useSidebar();\n\n return (\n <Button\n data-sidebar=\"trigger\"\n data-slot=\"sidebar-trigger\"\n variant=\"ghost\"\n size=\"icon\"\n className={cn(className)}\n onClick={(event) => {\n onClick?.(event);\n toggleSidebar();\n }}\n {...props}\n >\n <PanelLeftIcon className=\"cn-rtl-flip\" />\n <span className=\"sr-only\">Toggle Sidebar</span>\n </Button>\n );\n}\n\nfunction SidebarRail({ className, ...props }: React.ComponentProps<'button'>) {\n const { toggleSidebar } = useSidebar();\n\n return (\n <button\n data-sidebar=\"rail\"\n data-slot=\"sidebar-rail\"\n aria-label=\"Toggle Sidebar\"\n tabIndex={-1}\n onClick={toggleSidebar}\n title=\"Toggle Sidebar\"\n className={cn(\n 'hover:after:bg-sidebar-border absolute inset-y-0 z-20 hidden w-4 transition-all ease-linear group-data-[side=left]:-right-4 group-data-[side=right]:left-0 after:absolute after:inset-y-0 after:start-1/2 after:w-[2px] sm:flex ltr:-translate-x-1/2 rtl:-translate-x-1/2',\n 'in-data-[side=left]:cursor-w-resize in-data-[side=right]:cursor-e-resize',\n '[[data-side=left][data-state=collapsed]_&]:cursor-e-resize [[data-side=right][data-state=collapsed]_&]:cursor-w-resize',\n 'group-data-[collapsible=offcanvas]:translate-x-0 group-data-[collapsible=offcanvas]:after:left-full hover:group-data-[collapsible=offcanvas]:bg-sidebar',\n '[[data-side=left][data-collapsible=offcanvas]_&]:-right-2',\n '[[data-side=right][data-collapsible=offcanvas]_&]:-left-2',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction SidebarInset({ className, ...props }: React.ComponentProps<'main'>) {\n return (\n <main\n data-slot=\"sidebar-inset\"\n className={cn(\n 'bg-background md:peer-data-[variant=inset]:m-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow-sm md:peer-data-[variant=inset]:peer-data-[state=collapsed]:ml-2 relative flex w-full flex-1 flex-col',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction SidebarInput({ className, ...props }: React.ComponentProps<typeof Input>) {\n return (\n <Input\n data-slot=\"sidebar-input\"\n data-sidebar=\"input\"\n className={cn('bg-background h-8 w-full shadow-none', className)}\n {...props}\n />\n );\n}\n\nfunction SidebarHeader({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"sidebar-header\"\n data-sidebar=\"header\"\n className={cn('gap-2 p-2 flex flex-col', className)}\n {...props}\n />\n );\n}\n\nfunction SidebarFooter({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"sidebar-footer\"\n data-sidebar=\"footer\"\n className={cn('gap-2 p-2 flex flex-col', className)}\n {...props}\n />\n );\n}\n\nfunction SidebarSeparator({ className, ...props }: React.ComponentProps<typeof Separator>) {\n return (\n <Separator\n data-slot=\"sidebar-separator\"\n data-sidebar=\"separator\"\n className={cn('bg-sidebar-border mx-2 w-auto', className)}\n {...props}\n />\n );\n}\n\nfunction SidebarContent({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"sidebar-content\"\n data-sidebar=\"content\"\n className={cn(\n 'no-scrollbar gap-0 flex min-h-0 flex-1 flex-col overflow-auto group-data-[collapsible=icon]:overflow-hidden',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction SidebarGroup({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"sidebar-group\"\n data-sidebar=\"group\"\n className={cn('p-2 relative flex w-full min-w-0 flex-col', className)}\n {...props}\n />\n );\n}\n\nfunction SidebarGroupLabel({\n className,\n asChild = false,\n ...props\n}: React.ComponentProps<'div'> & { asChild?: boolean }) {\n const Comp = asChild ? Slot.Root : 'div';\n\n return (\n <Comp\n data-slot=\"sidebar-group-label\"\n data-sidebar=\"group-label\"\n className={cn(\n 'text-sidebar-foreground/70 ring-sidebar-ring h-8 rounded-md px-2 text-xs font-medium transition-[margin,opacity] duration-200 ease-linear group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0 focus-visible:ring-2 [&>svg]:size-4 flex shrink-0 items-center outline-hidden [&>svg]:shrink-0',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction SidebarGroupAction({\n className,\n asChild = false,\n ...props\n}: React.ComponentProps<'button'> & { asChild?: boolean }) {\n const Comp = asChild ? Slot.Root : 'button';\n\n return (\n <Comp\n data-slot=\"sidebar-group-action\"\n data-sidebar=\"group-action\"\n className={cn(\n 'text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground absolute top-3.5 right-3 w-5 rounded-md p-0 focus-visible:ring-2 [&>svg]:size-4 flex aspect-square items-center justify-center outline-hidden transition-transform group-data-[collapsible=icon]:hidden after:absolute after:-inset-2 md:after:hidden [&>svg]:shrink-0',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction SidebarGroupContent({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"sidebar-group-content\"\n data-sidebar=\"group-content\"\n className={cn('text-sm w-full', className)}\n {...props}\n />\n );\n}\n\nfunction SidebarMenu({ className, ...props }: React.ComponentProps<'ul'>) {\n return (\n <ul\n data-slot=\"sidebar-menu\"\n data-sidebar=\"menu\"\n className={cn('gap-0 flex w-full min-w-0 flex-col', className)}\n {...props}\n />\n );\n}\n\nfunction SidebarMenuItem({ className, ...props }: React.ComponentProps<'li'>) {\n return (\n <li\n data-slot=\"sidebar-menu-item\"\n data-sidebar=\"menu-item\"\n className={cn('group/menu-item relative', className)}\n {...props}\n />\n );\n}\n\nconst sidebarMenuButtonVariants = cva(\n 'ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground active:bg-sidebar-accent active:text-sidebar-accent-foreground data-[active=true]:bg-sidebar-accent data-[active=true]:text-sidebar-accent-foreground data-open:hover:bg-sidebar-accent data-open:hover:text-sidebar-accent-foreground gap-2 rounded-md p-2 text-left text-sm transition-[width,height,padding] group-has-data-[sidebar=menu-action]/menu-item:pr-8 group-data-[collapsible=icon]:size-8! group-data-[collapsible=icon]:p-2! focus-visible:ring-2 data-[active=true]:font-medium peer/menu-button group/menu-button flex w-full items-center overflow-hidden outline-hidden disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 [&_svg]:size-4 [&_svg]:shrink-0 [&>span:last-child]:truncate',\n {\n variants: {\n variant: {\n default: 'hover:bg-sidebar-accent hover:text-sidebar-accent-foreground',\n outline:\n 'bg-background hover:bg-sidebar-accent hover:text-sidebar-accent-foreground shadow-[0_0_0_1px_hsl(var(--sidebar-border))] hover:shadow-[0_0_0_1px_hsl(var(--sidebar-accent))]',\n },\n size: {\n default: 'h-8 text-sm',\n sm: 'h-7 text-xs',\n lg: 'h-12 text-sm group-data-[collapsible=icon]:p-0!',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'default',\n },\n },\n);\n\nfunction SidebarMenuButton({\n asChild = false,\n isActive = false,\n variant = 'default',\n size = 'default',\n tooltip,\n className,\n ...props\n}: React.ComponentProps<'button'> & {\n asChild?: boolean;\n isActive?: boolean;\n tooltip?: string | React.ComponentProps<typeof TooltipContent>;\n} & VariantProps<typeof sidebarMenuButtonVariants>) {\n const Comp = asChild ? Slot.Root : 'button';\n const { isMobile, state } = useSidebar();\n\n const button = (\n <Comp\n data-slot=\"sidebar-menu-button\"\n data-sidebar=\"menu-button\"\n data-size={size}\n data-active={isActive}\n className={cn(sidebarMenuButtonVariants({ variant, size }), className)}\n {...props}\n />\n );\n\n if (!tooltip) {\n return button;\n }\n\n if (typeof tooltip === 'string') {\n tooltip = {\n children: tooltip,\n };\n }\n\n return (\n <Tooltip>\n <TooltipTrigger asChild>{button}</TooltipTrigger>\n <TooltipContent side=\"right\" align=\"center\" hidden={state !== 'collapsed' || isMobile} {...tooltip} />\n </Tooltip>\n );\n}\n\nfunction SidebarMenuAction({\n className,\n asChild = false,\n showOnHover = false,\n ...props\n}: React.ComponentProps<'button'> & {\n asChild?: boolean;\n showOnHover?: boolean;\n}) {\n const Comp = asChild ? Slot.Root : 'button';\n\n return (\n <Comp\n data-slot=\"sidebar-menu-action\"\n data-sidebar=\"menu-action\"\n className={cn(\n 'text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground peer-hover/menu-button:text-sidebar-accent-foreground absolute top-1.5 right-1 aspect-square w-5 rounded-md p-0 peer-data-[size=default]/menu-button:top-1.5 peer-data-[size=lg]/menu-button:top-2.5 peer-data-[size=sm]/menu-button:top-1 focus-visible:ring-2 [&>svg]:size-4 flex items-center justify-center outline-hidden transition-transform group-data-[collapsible=icon]:hidden after:absolute after:-inset-2 md:after:hidden [&>svg]:shrink-0',\n showOnHover &&\n 'group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 peer-data-active/menu-button:text-sidebar-accent-foreground aria-expanded:opacity-100 md:opacity-0',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction SidebarMenuBadge({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"sidebar-menu-badge\"\n data-sidebar=\"menu-badge\"\n className={cn(\n 'text-sidebar-foreground peer-hover/menu-button:text-sidebar-accent-foreground peer-data-active/menu-button:text-sidebar-accent-foreground pointer-events-none absolute right-1 h-5 min-w-5 rounded-md px-1 text-xs font-medium peer-data-[size=default]/menu-button:top-1.5 peer-data-[size=lg]/menu-button:top-2.5 peer-data-[size=sm]/menu-button:top-1 flex items-center justify-center tabular-nums select-none group-data-[collapsible=icon]:hidden',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction SidebarMenuSkeleton({\n className,\n showIcon = false,\n ...props\n}: React.ComponentProps<'div'> & {\n showIcon?: boolean;\n}) {\n // Random width between 50 to 90%.\n const [width] = React.useState(() => {\n return `${Math.floor(Math.random() * 40) + 50}%`;\n });\n\n return (\n <div\n data-slot=\"sidebar-menu-skeleton\"\n data-sidebar=\"menu-skeleton\"\n className={cn('h-8 gap-2 rounded-md px-2 flex items-center', className)}\n {...props}\n >\n {showIcon && <Skeleton className=\"size-4 rounded-md\" data-sidebar=\"menu-skeleton-icon\" />}\n <Skeleton\n className=\"h-4 max-w-(--skeleton-width) flex-1\"\n data-sidebar=\"menu-skeleton-text\"\n style={\n {\n '--skeleton-width': width,\n } as React.CSSProperties\n }\n />\n </div>\n );\n}\n\nfunction SidebarMenuSub({ className, ...props }: React.ComponentProps<'ul'>) {\n return (\n <ul\n data-slot=\"sidebar-menu-sub\"\n data-sidebar=\"menu-sub\"\n className={cn(\n 'border-sidebar-border mx-3.5 translate-x-px gap-1 border-l px-2.5 py-0.5 group-data-[collapsible=icon]:hidden flex min-w-0 flex-col',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction SidebarMenuSubItem({ className, ...props }: React.ComponentProps<'li'>) {\n return (\n <li\n data-slot=\"sidebar-menu-sub-item\"\n data-sidebar=\"menu-sub-item\"\n className={cn('group/menu-sub-item relative', className)}\n {...props}\n />\n );\n}\n\nfunction SidebarMenuSubButton({\n asChild = false,\n size = 'md',\n isActive = false,\n className,\n ...props\n}: React.ComponentProps<'a'> & {\n asChild?: boolean;\n size?: 'sm' | 'md';\n isActive?: boolean;\n}) {\n const Comp = asChild ? Slot.Root : 'a';\n\n return (\n <Comp\n data-slot=\"sidebar-menu-sub-button\"\n data-sidebar=\"menu-sub-button\"\n data-size={size}\n data-active={isActive}\n className={cn(\n 'text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground active:bg-sidebar-accent active:text-sidebar-accent-foreground [&>svg]:text-sidebar-accent-foreground data-[active=true]:bg-sidebar-accent data-[active=true]:text-sidebar-accent-foreground h-7 gap-2 rounded-md px-2 focus-visible:ring-2 data-[size=md]:text-sm data-[size=sm]:text-xs [&>svg]:size-4 flex min-w-0 -translate-x-px items-center overflow-hidden outline-hidden group-data-[collapsible=icon]:hidden disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 [&>span:last-child]:truncate [&>svg]:shrink-0',\n className,\n )}\n {...props}\n />\n );\n}\n\nexport {\n Sidebar,\n SidebarContent,\n SidebarFooter,\n SidebarGroup,\n SidebarGroupAction,\n SidebarGroupContent,\n SidebarGroupLabel,\n SidebarHeader,\n SidebarInput,\n SidebarInset,\n SidebarMenu,\n SidebarMenuAction,\n SidebarMenuBadge,\n SidebarMenuButton,\n SidebarMenuItem,\n SidebarMenuSkeleton,\n SidebarMenuSub,\n SidebarMenuSubButton,\n SidebarMenuSubItem,\n SidebarProvider,\n SidebarRail,\n SidebarSeparator,\n SidebarTrigger,\n useSidebar,\n};\n"]}
|