@tlglobal/ui 2.0.0 → 2.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +70 -0
- package/dist/AI_CONTEXT.md +1 -1
- package/dist/AI_INVENTORY.md +1 -1
- package/dist/{chunk-L5ASRHVY.js → chunk-2HCSVAI5.js} +2 -2
- package/dist/{chunk-CVXFVAS4.cjs → chunk-2ZWGB3S2.cjs} +42 -29
- package/dist/chunk-2ZWGB3S2.cjs.map +1 -0
- package/dist/{chunk-Y523KUML.js → chunk-3G65Q7C4.js} +5 -2
- package/dist/chunk-3G65Q7C4.js.map +1 -0
- package/dist/{chunk-N7NOXL4I.js → chunk-3TYFCWQ3.js} +29 -24
- package/dist/chunk-3TYFCWQ3.js.map +1 -0
- package/dist/{chunk-43UYUOCI.cjs → chunk-44WYLL4S.cjs} +5 -2
- package/dist/chunk-44WYLL4S.cjs.map +1 -0
- package/dist/{chunk-IRV6TBCD.js → chunk-4NNTKMOB.js} +5 -3
- package/dist/chunk-4NNTKMOB.js.map +1 -0
- package/dist/{chunk-V3NEBNKV.js → chunk-4OS2O7Z4.js} +41 -28
- package/dist/chunk-4OS2O7Z4.js.map +1 -0
- package/dist/{chunk-F5XBFNFL.cjs → chunk-5H6YBTVY.cjs} +12 -10
- package/dist/chunk-5H6YBTVY.cjs.map +1 -0
- package/dist/{chunk-EADT2IDZ.cjs → chunk-5YRHXI5B.cjs} +5 -2
- package/dist/chunk-5YRHXI5B.cjs.map +1 -0
- package/dist/chunk-6HVA6YPU.js +92 -0
- package/dist/chunk-6HVA6YPU.js.map +1 -0
- package/dist/{chunk-CQNMLNRY.js → chunk-6MJNOSPS.js} +14 -11
- package/dist/chunk-6MJNOSPS.js.map +1 -0
- package/dist/{chunk-HJCCG7JW.js → chunk-6PBJ4G23.js} +11 -9
- package/dist/chunk-6PBJ4G23.js.map +1 -0
- package/dist/{chunk-DBCPNZ6H.js → chunk-7PGGVGL6.js} +5 -3
- package/dist/chunk-7PGGVGL6.js.map +1 -0
- package/dist/{chunk-HRO7NGJR.cjs → chunk-A2ZOWFFG.cjs} +27 -21
- package/dist/chunk-A2ZOWFFG.cjs.map +1 -0
- package/dist/{chunk-ENO36WFO.cjs → chunk-ACSNQJA2.cjs} +15 -12
- package/dist/chunk-ACSNQJA2.cjs.map +1 -0
- package/dist/{chunk-ASXOVY3O.js → chunk-AEQRMYFY.js} +6 -2
- package/dist/chunk-AEQRMYFY.js.map +1 -0
- package/dist/{chunk-SKQHJJ6L.js → chunk-AHTKZYY6.js} +5 -3
- package/dist/chunk-AHTKZYY6.js.map +1 -0
- package/dist/{chunk-BG3HP3NJ.cjs → chunk-ASR6S6DB.cjs} +6 -4
- package/dist/chunk-ASR6S6DB.cjs.map +1 -0
- package/dist/{chunk-5TOJI2VT.cjs → chunk-BUXNYXY3.cjs} +5 -2
- package/dist/chunk-BUXNYXY3.cjs.map +1 -0
- package/dist/{chunk-ATQSUWAB.cjs → chunk-C4F5WANA.cjs} +15 -12
- package/dist/chunk-C4F5WANA.cjs.map +1 -0
- package/dist/{chunk-QX75NAXT.js → chunk-COYRHKMS.js} +21 -13
- package/dist/chunk-COYRHKMS.js.map +1 -0
- package/dist/{chunk-KG4EGAMK.js → chunk-DRL2Z5QN.js} +14 -11
- package/dist/chunk-DRL2Z5QN.js.map +1 -0
- package/dist/{chunk-4XLHRXFU.cjs → chunk-DU6MB3UR.cjs} +18 -14
- package/dist/chunk-DU6MB3UR.cjs.map +1 -0
- package/dist/{chunk-VONXCRR4.cjs → chunk-E7VMBMME.cjs} +5 -2
- package/dist/chunk-E7VMBMME.cjs.map +1 -0
- package/dist/chunk-ERR4JYSK.js +37 -0
- package/dist/chunk-ERR4JYSK.js.map +1 -0
- package/dist/{chunk-GJQOXOSX.cjs → chunk-F6AMISYP.cjs} +12 -10
- package/dist/chunk-F6AMISYP.cjs.map +1 -0
- package/dist/{chunk-NCYN3QQU.cjs → chunk-GD6QZD2T.cjs} +22 -14
- package/dist/chunk-GD6QZD2T.cjs.map +1 -0
- package/dist/{chunk-GAIT5TGX.js → chunk-GLOGO66M.js} +2 -2
- package/dist/{chunk-QEVPIMPR.js → chunk-ITPU3GJP.js} +17 -13
- package/dist/chunk-ITPU3GJP.js.map +1 -0
- package/dist/{chunk-7VXLTE5S.cjs → chunk-JFDZ7CML.cjs} +8 -8
- package/dist/{chunk-7VXLTE5S.cjs.map → chunk-JFDZ7CML.cjs.map} +1 -1
- package/dist/{chunk-HWVBYDV7.cjs → chunk-JVNI5OEZ.cjs} +39 -15
- package/dist/chunk-JVNI5OEZ.cjs.map +1 -0
- package/dist/{chunk-3PA53VKD.js → chunk-KLCAYZB2.js} +37 -13
- package/dist/chunk-KLCAYZB2.js.map +1 -0
- package/dist/{chunk-77VS352K.js → chunk-KTKJUALJ.js} +5 -2
- package/dist/chunk-KTKJUALJ.js.map +1 -0
- package/dist/{chunk-H3RKRRVM.js → chunk-L5KEJ5FQ.js} +202 -190
- package/dist/chunk-L5KEJ5FQ.js.map +1 -0
- package/dist/chunk-LDABSX4U.js +9 -0
- package/dist/chunk-LDABSX4U.js.map +1 -0
- package/dist/chunk-LEAPQI7O.cjs +37 -0
- package/dist/chunk-LEAPQI7O.cjs.map +1 -0
- package/dist/{chunk-XGCIOWNR.cjs → chunk-LS6JKLML.cjs} +6 -4
- package/dist/chunk-LS6JKLML.cjs.map +1 -0
- package/dist/{chunk-GJGPQRIK.js → chunk-NKZBBAJ5.js} +2 -2
- package/dist/{chunk-QT6A3IGJ.js → chunk-ODXGLPJL.js} +11 -8
- package/dist/chunk-ODXGLPJL.js.map +1 -0
- package/dist/{chunk-2GWZWHLI.cjs → chunk-OFJMBPJN.cjs} +3 -3
- package/dist/{chunk-2GWZWHLI.cjs.map → chunk-OFJMBPJN.cjs.map} +1 -1
- package/dist/{chunk-3FJ2AYA2.js → chunk-OKUW3EEZ.js} +26 -20
- package/dist/chunk-OKUW3EEZ.js.map +1 -0
- package/dist/{chunk-ZWS4E67U.cjs → chunk-PSNYF5AW.cjs} +3 -3
- package/dist/{chunk-ZWS4E67U.cjs.map → chunk-PSNYF5AW.cjs.map} +1 -1
- package/dist/{chunk-QET47X4U.cjs → chunk-PXVC4OBB.cjs} +12 -9
- package/dist/chunk-PXVC4OBB.cjs.map +1 -0
- package/dist/{chunk-T4FTROIQ.cjs → chunk-PZN4WYN7.cjs} +20 -23
- package/dist/chunk-PZN4WYN7.cjs.map +1 -0
- package/dist/chunk-Q2JCE4CK.cjs +9 -0
- package/dist/chunk-Q2JCE4CK.cjs.map +1 -0
- package/dist/{chunk-XWMDE3D5.cjs → chunk-RKPN6UFK.cjs} +6 -4
- package/dist/chunk-RKPN6UFK.cjs.map +1 -0
- package/dist/{chunk-LZEQUT4L.cjs → chunk-RX5FOAD2.cjs} +15 -12
- package/dist/chunk-RX5FOAD2.cjs.map +1 -0
- package/dist/{chunk-XMCP5ITG.cjs → chunk-RXX2IGK5.cjs} +3 -3
- package/dist/{chunk-XMCP5ITG.cjs.map → chunk-RXX2IGK5.cjs.map} +1 -1
- package/dist/{chunk-JPABWZU4.js → chunk-S5CNVXZ3.js} +2 -2
- package/dist/{chunk-OZR3RLEW.cjs → chunk-SQAK5ZSK.cjs} +191 -179
- package/dist/chunk-SQAK5ZSK.cjs.map +1 -0
- package/dist/chunk-TAAZXDXC.cjs +92 -0
- package/dist/chunk-TAAZXDXC.cjs.map +1 -0
- package/dist/chunk-TS6NCZG4.cjs +84 -0
- package/dist/chunk-TS6NCZG4.cjs.map +1 -0
- package/dist/{chunk-PNBLW6BD.cjs → chunk-UAQVDWOH.cjs} +6 -2
- package/dist/chunk-UAQVDWOH.cjs.map +1 -0
- package/dist/{chunk-7KV2ASQZ.js → chunk-UC2Y7ECN.js} +5 -2
- package/dist/chunk-UC2Y7ECN.js.map +1 -0
- package/dist/{chunk-NROYDPOG.js → chunk-UCL2G3AW.js} +5 -2
- package/dist/chunk-UCL2G3AW.js.map +1 -0
- package/dist/{chunk-JSVWJPQG.js → chunk-UDYPJDYS.js} +5 -2
- package/dist/chunk-UDYPJDYS.js.map +1 -0
- package/dist/{chunk-HAMZFEZO.cjs → chunk-UMGGVQCD.cjs} +5 -2
- package/dist/chunk-UMGGVQCD.cjs.map +1 -0
- package/dist/{chunk-FSFKN344.js → chunk-VZSNQ6KY.js} +26 -19
- package/dist/chunk-VZSNQ6KY.js.map +1 -0
- package/dist/{chunk-G362MHBO.cjs → chunk-W2IIKFUQ.cjs} +5 -2
- package/dist/chunk-W2IIKFUQ.cjs.map +1 -0
- package/dist/{chunk-C35O5Z4E.js → chunk-WDQGXT4B.js} +11 -9
- package/dist/chunk-WDQGXT4B.js.map +1 -0
- package/dist/{chunk-KIAO4YXV.js → chunk-X2DTRB5I.js} +18 -21
- package/dist/chunk-X2DTRB5I.js.map +1 -0
- package/dist/chunk-XBXIJY6C.js +84 -0
- package/dist/chunk-XBXIJY6C.js.map +1 -0
- package/dist/{chunk-SN6MWJU6.js → chunk-YPW3ZNNH.js} +5 -2
- package/dist/chunk-YPW3ZNNH.js.map +1 -0
- package/dist/{chunk-YEH5VLWU.js → chunk-YY7LSY6F.js} +14 -11
- package/dist/chunk-YY7LSY6F.js.map +1 -0
- package/dist/{chunk-PFK42QIX.cjs → chunk-Z2LS4QUV.cjs} +27 -20
- package/dist/chunk-Z2LS4QUV.cjs.map +1 -0
- package/dist/{chunk-6LNO6LIW.cjs → chunk-ZSPEIPFP.cjs} +30 -25
- package/dist/chunk-ZSPEIPFP.cjs.map +1 -0
- package/dist/components/accordion/Accordion.d.ts +10 -4
- package/dist/components/accordion/index.cjs +2 -2
- package/dist/components/accordion/index.js +1 -1
- package/dist/components/alert-dialog/AlertDialog.d.ts +12 -5
- package/dist/components/alert-dialog/index.cjs +2 -2
- package/dist/components/alert-dialog/index.js +1 -1
- package/dist/components/attachment/Attachment.d.ts +16 -9
- package/dist/components/attachment/index.cjs +2 -2
- package/dist/components/attachment/index.js +1 -1
- package/dist/components/button/index.cjs +3 -2
- package/dist/components/button/index.cjs.map +1 -1
- package/dist/components/button/index.js +2 -1
- package/dist/components/calendar/index.cjs +3 -2
- package/dist/components/calendar/index.cjs.map +1 -1
- package/dist/components/calendar/index.js +2 -1
- package/dist/components/carousel/Carousel.d.ts +6 -6
- package/dist/components/carousel/index.cjs +4 -3
- package/dist/components/carousel/index.cjs.map +1 -1
- package/dist/components/carousel/index.js +3 -2
- package/dist/components/chart/Chart.d.ts +4 -4
- package/dist/components/chart/index.cjs +2 -2
- package/dist/components/chart/index.js +1 -1
- package/dist/components/combobox/index.cjs +3 -3
- package/dist/components/combobox/index.js +2 -2
- package/dist/components/command/Command.d.ts +11 -9
- package/dist/components/command/index.cjs +2 -2
- package/dist/components/command/index.js +1 -1
- package/dist/components/context-menu/ContextMenu.d.ts +33 -10
- package/dist/components/context-menu/index.cjs +2 -2
- package/dist/components/context-menu/index.js +1 -1
- package/dist/components/date-picker/index.cjs +4 -3
- package/dist/components/date-picker/index.cjs.map +1 -1
- package/dist/components/date-picker/index.js +3 -2
- package/dist/components/dialog/Dialog.d.ts +11 -5
- package/dist/components/dialog/index.cjs +2 -2
- package/dist/components/dialog/index.js +1 -1
- package/dist/components/drawer/Drawer.d.ts +11 -5
- package/dist/components/drawer/index.cjs +2 -2
- package/dist/components/drawer/index.js +1 -1
- package/dist/components/dropdown-menu/DropdownMenu.d.ts +33 -10
- package/dist/components/dropdown-menu/index.cjs +2 -2
- package/dist/components/dropdown-menu/index.js +1 -1
- package/dist/components/hover-card/HoverCard.d.ts +4 -2
- package/dist/components/hover-card/index.cjs +2 -2
- package/dist/components/hover-card/index.js +1 -1
- package/dist/components/icon-button/index.cjs +3 -2
- package/dist/components/icon-button/index.cjs.map +1 -1
- package/dist/components/icon-button/index.js +2 -1
- package/dist/components/menubar/Menubar.d.ts +34 -11
- package/dist/components/menubar/index.cjs +2 -2
- package/dist/components/menubar/index.js +1 -1
- package/dist/components/message/Message.d.ts +10 -10
- package/dist/components/message/index.cjs +2 -2
- package/dist/components/message/index.js +1 -1
- package/dist/components/message-scroller/MessageScroller.d.ts +5 -5
- package/dist/components/message-scroller/index.cjs +4 -3
- package/dist/components/message-scroller/index.cjs.map +1 -1
- package/dist/components/message-scroller/index.js +3 -2
- package/dist/components/navigation-menu/NavigationMenu.d.ts +18 -6
- package/dist/components/navigation-menu/index.cjs +2 -2
- package/dist/components/navigation-menu/index.js +1 -1
- package/dist/components/pagination/index.cjs +3 -2
- package/dist/components/pagination/index.cjs.map +1 -1
- package/dist/components/pagination/index.js +2 -1
- package/dist/components/popover/Popover.d.ts +4 -2
- package/dist/components/popover/index.cjs +2 -2
- package/dist/components/popover/index.js +1 -1
- package/dist/components/questionnaire/index.cjs +3 -2
- package/dist/components/questionnaire/index.cjs.map +1 -1
- package/dist/components/questionnaire/index.js +2 -1
- package/dist/components/resizable/Resizable.d.ts +4 -4
- package/dist/components/resizable/index.cjs +2 -2
- package/dist/components/resizable/index.js +1 -1
- package/dist/components/sheet/Sheet.d.ts +13 -7
- package/dist/components/sheet/index.cjs +2 -2
- package/dist/components/sheet/index.js +1 -1
- package/dist/components/sidebar/index.cjs +6 -5
- package/dist/components/sidebar/index.cjs.map +1 -1
- package/dist/components/sidebar/index.js +5 -4
- package/dist/components/slider/index.cjs +3 -2
- package/dist/components/slider/index.cjs.map +1 -1
- package/dist/components/slider/index.js +2 -1
- package/dist/components/tabs/Tabs.d.ts +7 -3
- package/dist/components/tabs/index.cjs +3 -2
- package/dist/components/tabs/index.cjs.map +1 -1
- package/dist/components/tabs/index.js +2 -1
- package/dist/components/toggle/index.cjs +4 -3
- package/dist/components/toggle/index.cjs.map +1 -1
- package/dist/components/toggle/index.js +3 -2
- package/dist/components/toggle-group/index.cjs +4 -3
- package/dist/components/toggle-group/index.cjs.map +1 -1
- package/dist/components/toggle-group/index.js +3 -2
- package/dist/components/tooltip/Tooltip.d.ts +2 -2
- package/dist/components/tooltip/index.cjs +2 -2
- package/dist/components/tooltip/index.js +1 -1
- package/dist/index.cjs +36 -35
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +36 -35
- package/dist/ui-manifest.json +1 -1
- package/package.json +3 -3
- package/dist/chunk-3FJ2AYA2.js.map +0 -1
- package/dist/chunk-3PA53VKD.js.map +0 -1
- package/dist/chunk-3WN2VYVW.js +0 -74
- package/dist/chunk-3WN2VYVW.js.map +0 -1
- package/dist/chunk-43UYUOCI.cjs.map +0 -1
- package/dist/chunk-4XLHRXFU.cjs.map +0 -1
- package/dist/chunk-5TOJI2VT.cjs.map +0 -1
- package/dist/chunk-6LNO6LIW.cjs.map +0 -1
- package/dist/chunk-77VS352K.js.map +0 -1
- package/dist/chunk-7KV2ASQZ.js.map +0 -1
- package/dist/chunk-7USP3KPM.js +0 -74
- package/dist/chunk-7USP3KPM.js.map +0 -1
- package/dist/chunk-ASXOVY3O.js.map +0 -1
- package/dist/chunk-ATQSUWAB.cjs.map +0 -1
- package/dist/chunk-BG3HP3NJ.cjs.map +0 -1
- package/dist/chunk-C35O5Z4E.js.map +0 -1
- package/dist/chunk-C4M7CGEJ.cjs +0 -33
- package/dist/chunk-C4M7CGEJ.cjs.map +0 -1
- package/dist/chunk-CQNMLNRY.js.map +0 -1
- package/dist/chunk-CVXFVAS4.cjs.map +0 -1
- package/dist/chunk-DBCPNZ6H.js.map +0 -1
- package/dist/chunk-EADT2IDZ.cjs.map +0 -1
- package/dist/chunk-ENO36WFO.cjs.map +0 -1
- package/dist/chunk-F5XBFNFL.cjs.map +0 -1
- package/dist/chunk-FSFKN344.js.map +0 -1
- package/dist/chunk-G362MHBO.cjs.map +0 -1
- package/dist/chunk-GJQOXOSX.cjs.map +0 -1
- package/dist/chunk-H3RKRRVM.js.map +0 -1
- package/dist/chunk-HAMZFEZO.cjs.map +0 -1
- package/dist/chunk-HFYNUSDC.cjs +0 -74
- package/dist/chunk-HFYNUSDC.cjs.map +0 -1
- package/dist/chunk-HJCCG7JW.js.map +0 -1
- package/dist/chunk-HRO7NGJR.cjs.map +0 -1
- package/dist/chunk-HWVBYDV7.cjs.map +0 -1
- package/dist/chunk-IQ62AKGY.cjs +0 -74
- package/dist/chunk-IQ62AKGY.cjs.map +0 -1
- package/dist/chunk-IRV6TBCD.js.map +0 -1
- package/dist/chunk-JSVWJPQG.js.map +0 -1
- package/dist/chunk-K5CAZ7C4.js +0 -33
- package/dist/chunk-K5CAZ7C4.js.map +0 -1
- package/dist/chunk-KG4EGAMK.js.map +0 -1
- package/dist/chunk-KIAO4YXV.js.map +0 -1
- package/dist/chunk-LZEQUT4L.cjs.map +0 -1
- package/dist/chunk-N7NOXL4I.js.map +0 -1
- package/dist/chunk-NCYN3QQU.cjs.map +0 -1
- package/dist/chunk-NROYDPOG.js.map +0 -1
- package/dist/chunk-OZR3RLEW.cjs.map +0 -1
- package/dist/chunk-PFK42QIX.cjs.map +0 -1
- package/dist/chunk-PNBLW6BD.cjs.map +0 -1
- package/dist/chunk-QET47X4U.cjs.map +0 -1
- package/dist/chunk-QEVPIMPR.js.map +0 -1
- package/dist/chunk-QT6A3IGJ.js.map +0 -1
- package/dist/chunk-QX75NAXT.js.map +0 -1
- package/dist/chunk-SKQHJJ6L.js.map +0 -1
- package/dist/chunk-SN6MWJU6.js.map +0 -1
- package/dist/chunk-T4FTROIQ.cjs.map +0 -1
- package/dist/chunk-V3NEBNKV.js.map +0 -1
- package/dist/chunk-VONXCRR4.cjs.map +0 -1
- package/dist/chunk-XGCIOWNR.cjs.map +0 -1
- package/dist/chunk-XWMDE3D5.cjs.map +0 -1
- package/dist/chunk-Y523KUML.js.map +0 -1
- package/dist/chunk-YEH5VLWU.js.map +0 -1
- /package/dist/{chunk-L5ASRHVY.js.map → chunk-2HCSVAI5.js.map} +0 -0
- /package/dist/{chunk-GAIT5TGX.js.map → chunk-GLOGO66M.js.map} +0 -0
- /package/dist/{chunk-GJGPQRIK.js.map → chunk-NKZBBAJ5.js.map} +0 -0
- /package/dist/{chunk-JPABWZU4.js.map → chunk-S5CNVXZ3.js.map} +0 -0
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import {
|
|
3
3
|
Tooltip
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-AHTKZYY6.js";
|
|
5
5
|
import {
|
|
6
6
|
Separator
|
|
7
7
|
} from "./chunk-YFS2VFC5.js";
|
|
8
8
|
import {
|
|
9
9
|
Sheet
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-COYRHKMS.js";
|
|
11
11
|
import {
|
|
12
12
|
Skeleton
|
|
13
13
|
} from "./chunk-MIKQY57Q.js";
|
|
@@ -16,16 +16,91 @@ import {
|
|
|
16
16
|
} from "./chunk-72IENMXB.js";
|
|
17
17
|
import {
|
|
18
18
|
IconButton
|
|
19
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-3G65Q7C4.js";
|
|
20
|
+
import {
|
|
21
|
+
disabledClass
|
|
22
|
+
} from "./chunk-LDABSX4U.js";
|
|
20
23
|
import {
|
|
21
24
|
cn
|
|
22
25
|
} from "./chunk-74GQ35MJ.js";
|
|
23
26
|
|
|
24
27
|
// src/components/sidebar/Sidebar.jsx
|
|
25
|
-
import
|
|
26
|
-
import { Slot } from "radix-ui";
|
|
28
|
+
import React2, { createContext, useCallback, useContext, useEffect, useMemo, useState } from "react";
|
|
27
29
|
import { PanelLeft } from "@tlglobal/icons";
|
|
28
30
|
|
|
31
|
+
// src/components/sidebar/SidebarSection.jsx
|
|
32
|
+
import { jsx } from "react/jsx-runtime";
|
|
33
|
+
function Header({ className, ...props }) {
|
|
34
|
+
return /* @__PURE__ */ jsx("div", { "data-sidebar": "header", className: cn("flex flex-col gap-2 p-2", className), ...props });
|
|
35
|
+
}
|
|
36
|
+
function Footer({ className, ...props }) {
|
|
37
|
+
return /* @__PURE__ */ jsx("div", { "data-sidebar": "footer", className: cn("mt-auto flex flex-col gap-2 p-2", className), ...props });
|
|
38
|
+
}
|
|
39
|
+
function Content({ className, ...props }) {
|
|
40
|
+
return /* @__PURE__ */ jsx(
|
|
41
|
+
"div",
|
|
42
|
+
{
|
|
43
|
+
"data-sidebar": "content",
|
|
44
|
+
className: cn(
|
|
45
|
+
"flex min-h-0 flex-1 flex-col gap-2 overflow-auto",
|
|
46
|
+
"group-data-[collapsible=icon]:overflow-hidden",
|
|
47
|
+
className
|
|
48
|
+
),
|
|
49
|
+
...props
|
|
50
|
+
}
|
|
51
|
+
);
|
|
52
|
+
}
|
|
53
|
+
function SidebarSeparator({ className, ...props }) {
|
|
54
|
+
return /* @__PURE__ */ jsx(Separator, { "data-sidebar": "separator", className: cn("mx-2 w-auto", className), ...props });
|
|
55
|
+
}
|
|
56
|
+
function SidebarInput({ className, ...props }) {
|
|
57
|
+
return /* @__PURE__ */ jsx(Input, { "data-sidebar": "input", className: cn("h-8 w-full bg-bg-page", className), ...props });
|
|
58
|
+
}
|
|
59
|
+
function Group({ className, ...props }) {
|
|
60
|
+
return /* @__PURE__ */ jsx("div", { "data-sidebar": "group", className: cn("relative flex w-full min-w-0 flex-col p-2", className), ...props });
|
|
61
|
+
}
|
|
62
|
+
function GroupLabel({ className, ...props }) {
|
|
63
|
+
return /* @__PURE__ */ jsx(
|
|
64
|
+
"div",
|
|
65
|
+
{
|
|
66
|
+
"data-sidebar": "group-label",
|
|
67
|
+
className: cn(
|
|
68
|
+
"flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium text-text-secondary",
|
|
69
|
+
"transition-[margin,opacity] duration-200 ease-linear",
|
|
70
|
+
"group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0",
|
|
71
|
+
className
|
|
72
|
+
),
|
|
73
|
+
...props
|
|
74
|
+
}
|
|
75
|
+
);
|
|
76
|
+
}
|
|
77
|
+
function GroupAction({ className, ...props }) {
|
|
78
|
+
return /* @__PURE__ */ jsx(
|
|
79
|
+
"button",
|
|
80
|
+
{
|
|
81
|
+
type: "button",
|
|
82
|
+
"data-sidebar": "group-action",
|
|
83
|
+
className: cn(
|
|
84
|
+
"absolute right-3 top-3.5 flex h-5 w-5 items-center justify-center rounded-md",
|
|
85
|
+
"text-text-secondary outline-none transition-colors",
|
|
86
|
+
"hover:bg-bg-surface-hover hover:text-text-primary",
|
|
87
|
+
"focus-visible:outline-none focus-visible:shadow-[var(--shadow-focus-ring)]",
|
|
88
|
+
"[&>svg]:h-4 [&>svg]:w-4 [&>svg]:shrink-0",
|
|
89
|
+
"group-data-[collapsible=icon]:hidden",
|
|
90
|
+
className
|
|
91
|
+
),
|
|
92
|
+
...props
|
|
93
|
+
}
|
|
94
|
+
);
|
|
95
|
+
}
|
|
96
|
+
function GroupContent({ className, ...props }) {
|
|
97
|
+
return /* @__PURE__ */ jsx("div", { "data-sidebar": "group-content", className: cn("w-full text-sm", className), ...props });
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
// src/components/sidebar/SidebarMenu.jsx
|
|
101
|
+
import React from "react";
|
|
102
|
+
import { Slot } from "radix-ui";
|
|
103
|
+
|
|
29
104
|
// src/components/sidebar/Sidebar.variants.js
|
|
30
105
|
import { cva } from "class-variance-authority";
|
|
31
106
|
var sidebarMenuButtonVariants = cva(
|
|
@@ -34,7 +109,7 @@ var sidebarMenuButtonVariants = cva(
|
|
|
34
109
|
"px-2 py-2 text-left font-sans text-text-primary outline-none transition-colors",
|
|
35
110
|
"hover:bg-bg-surface-hover",
|
|
36
111
|
"focus-visible:outline-none focus-visible:shadow-[var(--shadow-focus-ring)]",
|
|
37
|
-
|
|
112
|
+
disabledClass,
|
|
38
113
|
"aria-disabled:pointer-events-none aria-disabled:opacity-50",
|
|
39
114
|
"data-[active=true]:bg-bg-surface-hover data-[active=true]:font-medium data-[active=true]:text-text-primary",
|
|
40
115
|
"[&>svg]:h-4 [&>svg]:w-4 [&>svg]:shrink-0 [&>svg]:text-text-secondary",
|
|
@@ -84,8 +159,113 @@ var sidebarMenuSubButtonVariants = cva(
|
|
|
84
159
|
}
|
|
85
160
|
);
|
|
86
161
|
|
|
162
|
+
// src/components/sidebar/SidebarMenu.jsx
|
|
163
|
+
import { jsx as jsx2, jsxs } from "react/jsx-runtime";
|
|
164
|
+
function Menu({ className, ...props }) {
|
|
165
|
+
return /* @__PURE__ */ jsx2("ul", { "data-sidebar": "menu", className: cn("flex w-full min-w-0 flex-col gap-1", className), ...props });
|
|
166
|
+
}
|
|
167
|
+
function MenuItem({ className, ...props }) {
|
|
168
|
+
return /* @__PURE__ */ jsx2("li", { "data-sidebar": "menu-item", className: cn("group/menu-item relative", className), ...props });
|
|
169
|
+
}
|
|
170
|
+
var MenuButton = React.forwardRef(function MenuButton2({ asChild = false, isActive = false, variant, size, tooltip, className, ...props }, ref) {
|
|
171
|
+
const { state, isMobile } = useSidebar();
|
|
172
|
+
const Comp = asChild ? Slot.Root : "button";
|
|
173
|
+
const button = /* @__PURE__ */ jsx2(
|
|
174
|
+
Comp,
|
|
175
|
+
{
|
|
176
|
+
ref,
|
|
177
|
+
type: asChild ? void 0 : "button",
|
|
178
|
+
"data-sidebar": "menu-button",
|
|
179
|
+
"data-active": isActive,
|
|
180
|
+
className: cn(sidebarMenuButtonVariants({ variant, size }), className),
|
|
181
|
+
...props
|
|
182
|
+
}
|
|
183
|
+
);
|
|
184
|
+
if (!tooltip || state !== "collapsed" || isMobile) return button;
|
|
185
|
+
return /* @__PURE__ */ jsx2(Tooltip, { label: tooltip, side: "right", children: button });
|
|
186
|
+
});
|
|
187
|
+
function MenuAction({ className, showOnHover = false, ...props }) {
|
|
188
|
+
return /* @__PURE__ */ jsx2(
|
|
189
|
+
"button",
|
|
190
|
+
{
|
|
191
|
+
type: "button",
|
|
192
|
+
"data-sidebar": "menu-action",
|
|
193
|
+
className: cn(
|
|
194
|
+
"absolute right-1 top-1/2 flex h-6 w-6 -translate-y-1/2 items-center justify-center rounded-md",
|
|
195
|
+
"text-text-secondary outline-none transition-colors",
|
|
196
|
+
"hover:bg-bg-surface-hover hover:text-text-primary",
|
|
197
|
+
"focus-visible:outline-none focus-visible:shadow-[var(--shadow-focus-ring)]",
|
|
198
|
+
"[&>svg]:h-4 [&>svg]:w-4 [&>svg]:shrink-0",
|
|
199
|
+
"group-data-[collapsible=icon]:hidden",
|
|
200
|
+
showOnHover && "opacity-0 focus-within:opacity-100 group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100",
|
|
201
|
+
className
|
|
202
|
+
),
|
|
203
|
+
...props
|
|
204
|
+
}
|
|
205
|
+
);
|
|
206
|
+
}
|
|
207
|
+
function MenuBadge({ className, ...props }) {
|
|
208
|
+
return /* @__PURE__ */ jsx2(
|
|
209
|
+
"div",
|
|
210
|
+
{
|
|
211
|
+
"data-sidebar": "menu-badge",
|
|
212
|
+
className: cn(
|
|
213
|
+
"pointer-events-none absolute right-2 top-1/2 flex h-5 min-w-5 -translate-y-1/2 select-none",
|
|
214
|
+
"items-center justify-center rounded-md px-1 text-xs font-medium tabular-nums text-text-secondary",
|
|
215
|
+
"group-data-[collapsible=icon]:hidden",
|
|
216
|
+
className
|
|
217
|
+
),
|
|
218
|
+
...props
|
|
219
|
+
}
|
|
220
|
+
);
|
|
221
|
+
}
|
|
222
|
+
function MenuSkeleton({ showIcon = false, width = "70%", className, ...props }) {
|
|
223
|
+
return /* @__PURE__ */ jsxs(
|
|
224
|
+
"div",
|
|
225
|
+
{
|
|
226
|
+
"data-sidebar": "menu-skeleton",
|
|
227
|
+
className: cn("flex h-8 items-center gap-2 rounded-md px-2", className),
|
|
228
|
+
...props,
|
|
229
|
+
children: [
|
|
230
|
+
showIcon && /* @__PURE__ */ jsx2(Skeleton, { className: "h-4 w-4 shrink-0 rounded-sm" }),
|
|
231
|
+
/* @__PURE__ */ jsx2(Skeleton, { className: "h-4 max-w-full flex-1", style: { width } })
|
|
232
|
+
]
|
|
233
|
+
}
|
|
234
|
+
);
|
|
235
|
+
}
|
|
236
|
+
function MenuSub({ className, ...props }) {
|
|
237
|
+
return /* @__PURE__ */ jsx2(
|
|
238
|
+
"ul",
|
|
239
|
+
{
|
|
240
|
+
"data-sidebar": "menu-sub",
|
|
241
|
+
className: cn(
|
|
242
|
+
"mx-3.5 flex min-w-0 flex-col gap-1 border-l border-border-default px-2.5 py-0.5",
|
|
243
|
+
"group-data-[collapsible=icon]:hidden",
|
|
244
|
+
className
|
|
245
|
+
),
|
|
246
|
+
...props
|
|
247
|
+
}
|
|
248
|
+
);
|
|
249
|
+
}
|
|
250
|
+
function MenuSubItem({ className, ...props }) {
|
|
251
|
+
return /* @__PURE__ */ jsx2("li", { "data-sidebar": "menu-sub-item", className: cn("group/menu-sub-item relative", className), ...props });
|
|
252
|
+
}
|
|
253
|
+
var MenuSubButton = React.forwardRef(function MenuSubButton2({ asChild = false, isActive = false, size, className, ...props }, ref) {
|
|
254
|
+
const Comp = asChild ? Slot.Root : "a";
|
|
255
|
+
return /* @__PURE__ */ jsx2(
|
|
256
|
+
Comp,
|
|
257
|
+
{
|
|
258
|
+
ref,
|
|
259
|
+
"data-sidebar": "menu-sub-button",
|
|
260
|
+
"data-active": isActive,
|
|
261
|
+
className: cn(sidebarMenuSubButtonVariants({ size }), className),
|
|
262
|
+
...props
|
|
263
|
+
}
|
|
264
|
+
);
|
|
265
|
+
});
|
|
266
|
+
|
|
87
267
|
// src/components/sidebar/Sidebar.jsx
|
|
88
|
-
import { jsx, jsxs } from "react/jsx-runtime";
|
|
268
|
+
import { jsx as jsx3, jsxs as jsxs2 } from "react/jsx-runtime";
|
|
89
269
|
var SIDEBAR_WIDTH = "16rem";
|
|
90
270
|
var SIDEBAR_WIDTH_ICON = "3rem";
|
|
91
271
|
var SIDEBAR_WIDTH_MOBILE = "18rem";
|
|
@@ -165,7 +345,7 @@ function Provider({
|
|
|
165
345
|
() => ({ state, open, setOpen, openMobile, setOpenMobile, isMobile, toggleSidebar }),
|
|
166
346
|
[state, open, setOpen, openMobile, isMobile, toggleSidebar]
|
|
167
347
|
);
|
|
168
|
-
return /* @__PURE__ */
|
|
348
|
+
return /* @__PURE__ */ jsx3(SidebarContext.Provider, { value: context, children: /* @__PURE__ */ jsx3(
|
|
169
349
|
"div",
|
|
170
350
|
{
|
|
171
351
|
"data-slot": "sidebar-wrapper",
|
|
@@ -193,7 +373,7 @@ function Root({
|
|
|
193
373
|
const { isMobile, state, openMobile, setOpenMobile } = useSidebar();
|
|
194
374
|
const detached = variant === "floating" || variant === "inset";
|
|
195
375
|
if (collapsible === "none") {
|
|
196
|
-
return /* @__PURE__ */
|
|
376
|
+
return /* @__PURE__ */ jsx3(
|
|
197
377
|
"div",
|
|
198
378
|
{
|
|
199
379
|
"data-sidebar": "root",
|
|
@@ -204,7 +384,7 @@ function Root({
|
|
|
204
384
|
);
|
|
205
385
|
}
|
|
206
386
|
if (isMobile) {
|
|
207
|
-
return /* @__PURE__ */
|
|
387
|
+
return /* @__PURE__ */ jsx3(Sheet.Root, { open: openMobile, onOpenChange: setOpenMobile, children: /* @__PURE__ */ jsxs2(
|
|
208
388
|
Sheet.Content,
|
|
209
389
|
{
|
|
210
390
|
side,
|
|
@@ -213,13 +393,13 @@ function Root({
|
|
|
213
393
|
className: cn("w-[var(--sidebar-width-mobile)] gap-0 bg-bg-surface p-0", className),
|
|
214
394
|
...props,
|
|
215
395
|
children: [
|
|
216
|
-
/* @__PURE__ */
|
|
217
|
-
/* @__PURE__ */
|
|
396
|
+
/* @__PURE__ */ jsx3(Sheet.Title, { className: "sr-only", children: mobileTitle }),
|
|
397
|
+
/* @__PURE__ */ jsx3("div", { className: "flex h-full w-full flex-col", children })
|
|
218
398
|
]
|
|
219
399
|
}
|
|
220
400
|
) });
|
|
221
401
|
}
|
|
222
|
-
return /* @__PURE__ */
|
|
402
|
+
return /* @__PURE__ */ jsxs2(
|
|
223
403
|
"div",
|
|
224
404
|
{
|
|
225
405
|
className: "group peer hidden md:block",
|
|
@@ -229,7 +409,7 @@ function Root({
|
|
|
229
409
|
"data-variant": variant,
|
|
230
410
|
"data-side": side,
|
|
231
411
|
children: [
|
|
232
|
-
/* @__PURE__ */
|
|
412
|
+
/* @__PURE__ */ jsx3(
|
|
233
413
|
"div",
|
|
234
414
|
{
|
|
235
415
|
"aria-hidden": "true",
|
|
@@ -240,7 +420,7 @@ function Root({
|
|
|
240
420
|
)
|
|
241
421
|
}
|
|
242
422
|
),
|
|
243
|
-
/* @__PURE__ */
|
|
423
|
+
/* @__PURE__ */ jsx3(
|
|
244
424
|
"div",
|
|
245
425
|
{
|
|
246
426
|
"data-sidebar": "root",
|
|
@@ -253,7 +433,7 @@ function Root({
|
|
|
253
433
|
className
|
|
254
434
|
),
|
|
255
435
|
...props,
|
|
256
|
-
children: /* @__PURE__ */
|
|
436
|
+
children: /* @__PURE__ */ jsx3(
|
|
257
437
|
"div",
|
|
258
438
|
{
|
|
259
439
|
"data-sidebar": "panel",
|
|
@@ -271,7 +451,7 @@ function Root({
|
|
|
271
451
|
);
|
|
272
452
|
}
|
|
273
453
|
function Inset({ className, ...props }) {
|
|
274
|
-
return /* @__PURE__ */
|
|
454
|
+
return /* @__PURE__ */ jsx3(
|
|
275
455
|
"main",
|
|
276
456
|
{
|
|
277
457
|
className: cn(
|
|
@@ -284,16 +464,16 @@ function Inset({ className, ...props }) {
|
|
|
284
464
|
}
|
|
285
465
|
);
|
|
286
466
|
}
|
|
287
|
-
var Trigger =
|
|
467
|
+
var Trigger = React2.forwardRef(function Trigger2({ className, onClick, ...props }, ref) {
|
|
288
468
|
const { toggleSidebar } = useSidebar();
|
|
289
|
-
return /* @__PURE__ */
|
|
469
|
+
return /* @__PURE__ */ jsx3(
|
|
290
470
|
IconButton,
|
|
291
471
|
{
|
|
292
472
|
ref,
|
|
293
473
|
variant: "ghost",
|
|
294
474
|
size: "sm",
|
|
295
475
|
"aria-label": "Toggle sidebar",
|
|
296
|
-
icon: /* @__PURE__ */
|
|
476
|
+
icon: /* @__PURE__ */ jsx3(PanelLeft, { size: 16 }),
|
|
297
477
|
onClick: (event) => {
|
|
298
478
|
onClick == null ? void 0 : onClick(event);
|
|
299
479
|
toggleSidebar();
|
|
@@ -305,7 +485,7 @@ var Trigger = React.forwardRef(function Trigger2({ className, onClick, ...props
|
|
|
305
485
|
});
|
|
306
486
|
function Rail({ className, ...props }) {
|
|
307
487
|
const { toggleSidebar } = useSidebar();
|
|
308
|
-
return /* @__PURE__ */
|
|
488
|
+
return /* @__PURE__ */ jsx3(
|
|
309
489
|
"button",
|
|
310
490
|
{
|
|
311
491
|
type: "button",
|
|
@@ -325,174 +505,6 @@ function Rail({ className, ...props }) {
|
|
|
325
505
|
}
|
|
326
506
|
);
|
|
327
507
|
}
|
|
328
|
-
function Header({ className, ...props }) {
|
|
329
|
-
return /* @__PURE__ */ jsx("div", { "data-sidebar": "header", className: cn("flex flex-col gap-2 p-2", className), ...props });
|
|
330
|
-
}
|
|
331
|
-
function Footer({ className, ...props }) {
|
|
332
|
-
return /* @__PURE__ */ jsx("div", { "data-sidebar": "footer", className: cn("mt-auto flex flex-col gap-2 p-2", className), ...props });
|
|
333
|
-
}
|
|
334
|
-
function Content({ className, ...props }) {
|
|
335
|
-
return /* @__PURE__ */ jsx(
|
|
336
|
-
"div",
|
|
337
|
-
{
|
|
338
|
-
"data-sidebar": "content",
|
|
339
|
-
className: cn(
|
|
340
|
-
"flex min-h-0 flex-1 flex-col gap-2 overflow-auto",
|
|
341
|
-
"group-data-[collapsible=icon]:overflow-hidden",
|
|
342
|
-
className
|
|
343
|
-
),
|
|
344
|
-
...props
|
|
345
|
-
}
|
|
346
|
-
);
|
|
347
|
-
}
|
|
348
|
-
function SidebarSeparator({ className, ...props }) {
|
|
349
|
-
return /* @__PURE__ */ jsx(Separator, { "data-sidebar": "separator", className: cn("mx-2 w-auto", className), ...props });
|
|
350
|
-
}
|
|
351
|
-
function SidebarInput({ className, ...props }) {
|
|
352
|
-
return /* @__PURE__ */ jsx(Input, { "data-sidebar": "input", className: cn("h-8 w-full bg-bg-page", className), ...props });
|
|
353
|
-
}
|
|
354
|
-
function Group({ className, ...props }) {
|
|
355
|
-
return /* @__PURE__ */ jsx("div", { "data-sidebar": "group", className: cn("relative flex w-full min-w-0 flex-col p-2", className), ...props });
|
|
356
|
-
}
|
|
357
|
-
function GroupLabel({ className, ...props }) {
|
|
358
|
-
return /* @__PURE__ */ jsx(
|
|
359
|
-
"div",
|
|
360
|
-
{
|
|
361
|
-
"data-sidebar": "group-label",
|
|
362
|
-
className: cn(
|
|
363
|
-
"flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium text-text-secondary",
|
|
364
|
-
"transition-[margin,opacity] duration-200 ease-linear",
|
|
365
|
-
"group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0",
|
|
366
|
-
className
|
|
367
|
-
),
|
|
368
|
-
...props
|
|
369
|
-
}
|
|
370
|
-
);
|
|
371
|
-
}
|
|
372
|
-
function GroupAction({ className, ...props }) {
|
|
373
|
-
return /* @__PURE__ */ jsx(
|
|
374
|
-
"button",
|
|
375
|
-
{
|
|
376
|
-
type: "button",
|
|
377
|
-
"data-sidebar": "group-action",
|
|
378
|
-
className: cn(
|
|
379
|
-
"absolute right-3 top-3.5 flex h-5 w-5 items-center justify-center rounded-md",
|
|
380
|
-
"text-text-secondary outline-none transition-colors",
|
|
381
|
-
"hover:bg-bg-surface-hover hover:text-text-primary",
|
|
382
|
-
"focus-visible:outline-none focus-visible:shadow-[var(--shadow-focus-ring)]",
|
|
383
|
-
"[&>svg]:h-4 [&>svg]:w-4 [&>svg]:shrink-0",
|
|
384
|
-
"group-data-[collapsible=icon]:hidden",
|
|
385
|
-
className
|
|
386
|
-
),
|
|
387
|
-
...props
|
|
388
|
-
}
|
|
389
|
-
);
|
|
390
|
-
}
|
|
391
|
-
function GroupContent({ className, ...props }) {
|
|
392
|
-
return /* @__PURE__ */ jsx("div", { "data-sidebar": "group-content", className: cn("w-full text-sm", className), ...props });
|
|
393
|
-
}
|
|
394
|
-
function Menu({ className, ...props }) {
|
|
395
|
-
return /* @__PURE__ */ jsx("ul", { "data-sidebar": "menu", className: cn("flex w-full min-w-0 flex-col gap-1", className), ...props });
|
|
396
|
-
}
|
|
397
|
-
function MenuItem({ className, ...props }) {
|
|
398
|
-
return /* @__PURE__ */ jsx("li", { "data-sidebar": "menu-item", className: cn("group/menu-item relative", className), ...props });
|
|
399
|
-
}
|
|
400
|
-
var MenuButton = React.forwardRef(function MenuButton2({ asChild = false, isActive = false, variant, size, tooltip, className, ...props }, ref) {
|
|
401
|
-
const { state, isMobile } = useSidebar();
|
|
402
|
-
const Comp = asChild ? Slot.Root : "button";
|
|
403
|
-
const button = /* @__PURE__ */ jsx(
|
|
404
|
-
Comp,
|
|
405
|
-
{
|
|
406
|
-
ref,
|
|
407
|
-
type: asChild ? void 0 : "button",
|
|
408
|
-
"data-sidebar": "menu-button",
|
|
409
|
-
"data-active": isActive,
|
|
410
|
-
className: cn(sidebarMenuButtonVariants({ variant, size }), className),
|
|
411
|
-
...props
|
|
412
|
-
}
|
|
413
|
-
);
|
|
414
|
-
if (!tooltip || state !== "collapsed" || isMobile) return button;
|
|
415
|
-
return /* @__PURE__ */ jsx(Tooltip, { label: tooltip, side: "right", children: button });
|
|
416
|
-
});
|
|
417
|
-
function MenuAction({ className, showOnHover = false, ...props }) {
|
|
418
|
-
return /* @__PURE__ */ jsx(
|
|
419
|
-
"button",
|
|
420
|
-
{
|
|
421
|
-
type: "button",
|
|
422
|
-
"data-sidebar": "menu-action",
|
|
423
|
-
className: cn(
|
|
424
|
-
"absolute right-1 top-1/2 flex h-6 w-6 -translate-y-1/2 items-center justify-center rounded-md",
|
|
425
|
-
"text-text-secondary outline-none transition-colors",
|
|
426
|
-
"hover:bg-bg-surface-hover hover:text-text-primary",
|
|
427
|
-
"focus-visible:outline-none focus-visible:shadow-[var(--shadow-focus-ring)]",
|
|
428
|
-
"[&>svg]:h-4 [&>svg]:w-4 [&>svg]:shrink-0",
|
|
429
|
-
"group-data-[collapsible=icon]:hidden",
|
|
430
|
-
showOnHover && "opacity-0 focus-within:opacity-100 group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100",
|
|
431
|
-
className
|
|
432
|
-
),
|
|
433
|
-
...props
|
|
434
|
-
}
|
|
435
|
-
);
|
|
436
|
-
}
|
|
437
|
-
function MenuBadge({ className, ...props }) {
|
|
438
|
-
return /* @__PURE__ */ jsx(
|
|
439
|
-
"div",
|
|
440
|
-
{
|
|
441
|
-
"data-sidebar": "menu-badge",
|
|
442
|
-
className: cn(
|
|
443
|
-
"pointer-events-none absolute right-2 top-1/2 flex h-5 min-w-5 -translate-y-1/2 select-none",
|
|
444
|
-
"items-center justify-center rounded-md px-1 text-xs font-medium tabular-nums text-text-secondary",
|
|
445
|
-
"group-data-[collapsible=icon]:hidden",
|
|
446
|
-
className
|
|
447
|
-
),
|
|
448
|
-
...props
|
|
449
|
-
}
|
|
450
|
-
);
|
|
451
|
-
}
|
|
452
|
-
function MenuSkeleton({ showIcon = false, width = "70%", className, ...props }) {
|
|
453
|
-
return /* @__PURE__ */ jsxs(
|
|
454
|
-
"div",
|
|
455
|
-
{
|
|
456
|
-
"data-sidebar": "menu-skeleton",
|
|
457
|
-
className: cn("flex h-8 items-center gap-2 rounded-md px-2", className),
|
|
458
|
-
...props,
|
|
459
|
-
children: [
|
|
460
|
-
showIcon && /* @__PURE__ */ jsx(Skeleton, { className: "h-4 w-4 shrink-0 rounded-sm" }),
|
|
461
|
-
/* @__PURE__ */ jsx(Skeleton, { className: "h-4 max-w-full flex-1", style: { width } })
|
|
462
|
-
]
|
|
463
|
-
}
|
|
464
|
-
);
|
|
465
|
-
}
|
|
466
|
-
function MenuSub({ className, ...props }) {
|
|
467
|
-
return /* @__PURE__ */ jsx(
|
|
468
|
-
"ul",
|
|
469
|
-
{
|
|
470
|
-
"data-sidebar": "menu-sub",
|
|
471
|
-
className: cn(
|
|
472
|
-
"mx-3.5 flex min-w-0 flex-col gap-1 border-l border-border-default px-2.5 py-0.5",
|
|
473
|
-
"group-data-[collapsible=icon]:hidden",
|
|
474
|
-
className
|
|
475
|
-
),
|
|
476
|
-
...props
|
|
477
|
-
}
|
|
478
|
-
);
|
|
479
|
-
}
|
|
480
|
-
function MenuSubItem({ className, ...props }) {
|
|
481
|
-
return /* @__PURE__ */ jsx("li", { "data-sidebar": "menu-sub-item", className: cn("group/menu-sub-item relative", className), ...props });
|
|
482
|
-
}
|
|
483
|
-
var MenuSubButton = React.forwardRef(function MenuSubButton2({ asChild = false, isActive = false, size, className, ...props }, ref) {
|
|
484
|
-
const Comp = asChild ? Slot.Root : "a";
|
|
485
|
-
return /* @__PURE__ */ jsx(
|
|
486
|
-
Comp,
|
|
487
|
-
{
|
|
488
|
-
ref,
|
|
489
|
-
"data-sidebar": "menu-sub-button",
|
|
490
|
-
"data-active": isActive,
|
|
491
|
-
className: cn(sidebarMenuSubButtonVariants({ size }), className),
|
|
492
|
-
...props
|
|
493
|
-
}
|
|
494
|
-
);
|
|
495
|
-
});
|
|
496
508
|
var Sidebar = {
|
|
497
509
|
Provider,
|
|
498
510
|
Root,
|
|
@@ -523,4 +535,4 @@ export {
|
|
|
523
535
|
useSidebar,
|
|
524
536
|
Sidebar
|
|
525
537
|
};
|
|
526
|
-
//# sourceMappingURL=chunk-
|
|
538
|
+
//# sourceMappingURL=chunk-L5KEJ5FQ.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/sidebar/Sidebar.jsx","../src/components/sidebar/SidebarSection.jsx","../src/components/sidebar/SidebarMenu.jsx","../src/components/sidebar/Sidebar.variants.js"],"sourcesContent":["import React, { createContext, useCallback, useContext, useEffect, useMemo, useState } from \"react\";\nimport { PanelLeft } from \"@tlglobal/icons\";\nimport { cn } from \"../../lib/cn.js\";\nimport { IconButton } from \"../icon-button/IconButton.jsx\";\nimport { Sheet } from \"../sheet/Sheet.jsx\";\nimport {\n Content,\n Footer,\n Group,\n GroupAction,\n GroupContent,\n GroupLabel,\n Header,\n SidebarInput,\n SidebarSeparator,\n} from \"./SidebarSection.jsx\";\nimport { Menu, MenuAction, MenuBadge, MenuButton, MenuItem, MenuSkeleton, MenuSub, MenuSubButton, MenuSubItem } from \"./SidebarMenu.jsx\";\n\nconst SIDEBAR_WIDTH = \"16rem\";\nconst SIDEBAR_WIDTH_ICON = \"3rem\";\nconst SIDEBAR_WIDTH_MOBILE = \"18rem\";\n\nconst SidebarContext = createContext(null);\n\nexport function useSidebar() {\n const context = useContext(SidebarContext);\n if (!context) throw new Error(\"Sidebar parts must be used within Sidebar.Provider\");\n return context;\n}\n\n/*\n * Starts false so the first render matches what a server would produce, then corrects on mount.\n * The desktop panel is `hidden md:block` in CSS anyway, so the pre-hydration frame is already\n * correct at both sizes — this hook only drives *which tree* renders (fixed panel vs. Sheet).\n */\nfunction useIsMobile(breakpoint) {\n const [isMobile, setIsMobile] = useState(false);\n\n useEffect(() => {\n const query = window.matchMedia(`(max-width: ${breakpoint - 1}px)`);\n const update = () => setIsMobile(query.matches);\n update();\n query.addEventListener(\"change\", update);\n return () => query.removeEventListener(\"change\", update);\n }, [breakpoint]);\n\n return isMobile;\n}\n\nfunction Provider({\n defaultOpen = true,\n open: openProp,\n onOpenChange,\n persistKey,\n mobileBreakpoint = 768,\n keyboardShortcut = \"b\",\n className,\n style,\n children,\n ...props\n}) {\n const isMobile = useIsMobile(mobileBreakpoint);\n const [openMobile, setOpenMobile] = useState(false);\n const [uncontrolledOpen, setUncontrolledOpen] = useState(defaultOpen);\n\n const isControlled = openProp !== undefined;\n const open = isControlled ? openProp : uncontrolledOpen;\n\n const setOpen = useCallback(\n (value) => {\n const next = typeof value === \"function\" ? value(open) : value;\n if (!isControlled) setUncontrolledOpen(next);\n onOpenChange?.(next);\n if (persistKey) {\n // Storage throws in Safari private mode and when cookies/storage are blocked outright;\n // persistence is a nicety, so a failure here must never take the sidebar down with it.\n try {\n window.localStorage.setItem(persistKey, String(next));\n } catch {\n /* ignore */\n }\n }\n },\n [open, isControlled, onOpenChange, persistKey],\n );\n\n /*\n * Rehydrate after mount rather than in the useState initializer: reading localStorage during\n * render would produce server/client markup that disagrees and blow up hydration. The cost is\n * one corrective frame — SSR apps that care should read their own cookie and pass `defaultOpen`.\n */\n useEffect(() => {\n if (!persistKey || isControlled) return;\n try {\n const stored = window.localStorage.getItem(persistKey);\n if (stored !== null) setUncontrolledOpen(stored === \"true\");\n } catch {\n /* ignore */\n }\n }, [persistKey, isControlled]);\n\n const toggleSidebar = useCallback(() => {\n if (isMobile) setOpenMobile((value) => !value);\n else setOpen((value) => !value);\n }, [isMobile, setOpen]);\n\n useEffect(() => {\n if (!keyboardShortcut) return undefined;\n const onKeyDown = (event) => {\n if (event.key.toLowerCase() !== keyboardShortcut.toLowerCase()) return;\n if (!event.metaKey && !event.ctrlKey) return;\n event.preventDefault();\n toggleSidebar();\n };\n window.addEventListener(\"keydown\", onKeyDown);\n return () => window.removeEventListener(\"keydown\", onKeyDown);\n }, [keyboardShortcut, toggleSidebar]);\n\n const state = open ? \"expanded\" : \"collapsed\";\n\n const context = useMemo(\n () => ({ state, open, setOpen, openMobile, setOpenMobile, isMobile, toggleSidebar }),\n [state, open, setOpen, openMobile, isMobile, toggleSidebar],\n );\n\n return (\n <SidebarContext.Provider value={context}>\n <div\n data-slot=\"sidebar-wrapper\"\n style={{\n \"--sidebar-width\": SIDEBAR_WIDTH,\n \"--sidebar-width-icon\": SIDEBAR_WIDTH_ICON,\n \"--sidebar-width-mobile\": SIDEBAR_WIDTH_MOBILE,\n ...style,\n }}\n className={cn(\"group/sidebar-wrapper flex min-h-svh w-full font-sans\", className)}\n {...props}\n >\n {children}\n </div>\n </SidebarContext.Provider>\n );\n}\n\nfunction Root({\n side = \"left\",\n variant = \"sidebar\",\n collapsible = \"offcanvas\",\n mobileTitle = \"Sidebar\",\n className,\n children,\n ...props\n}) {\n const { isMobile, state, openMobile, setOpenMobile } = useSidebar();\n const detached = variant === \"floating\" || variant === \"inset\";\n\n if (collapsible === \"none\") {\n return (\n <div\n data-sidebar=\"root\"\n className={cn(\"flex h-full w-[var(--sidebar-width)] flex-col bg-bg-surface\", className)}\n {...props}\n >\n {children}\n </div>\n );\n }\n\n if (isMobile) {\n return (\n <Sheet.Root open={openMobile} onOpenChange={setOpenMobile}>\n <Sheet.Content\n side={side}\n data-sidebar=\"root\"\n data-mobile=\"true\"\n className={cn(\"w-[var(--sidebar-width-mobile)] gap-0 bg-bg-surface p-0\", className)}\n {...props}\n >\n <Sheet.Title className=\"sr-only\">{mobileTitle}</Sheet.Title>\n <div className=\"flex h-full w-full flex-col\">{children}</div>\n </Sheet.Content>\n </Sheet.Root>\n );\n }\n\n /*\n * Two elements, deliberately: the first is an inert spacer that occupies the sidebar's width in\n * normal flow so Sidebar.Inset lays out beside it, and the second is the fixed panel the user\n * actually sees. Collapsing animates both — the spacer's width and the panel's offset — which is\n * what lets the main content reflow in step with the panel sliding away, without either element\n * needing to know about the other.\n */\n return (\n <div\n className=\"group peer hidden md:block\"\n data-sidebar=\"wrapper\"\n data-state={state}\n data-collapsible={state === \"collapsed\" ? collapsible : \"\"}\n data-variant={variant}\n data-side={side}\n >\n <div\n aria-hidden=\"true\"\n className={cn(\n \"relative h-svh w-[var(--sidebar-width)] bg-transparent transition-[width] duration-200 ease-linear\",\n \"group-data-[collapsible=offcanvas]:w-0\",\n detached\n ? \"group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+1rem)]\"\n : \"group-data-[collapsible=icon]:w-[var(--sidebar-width-icon)]\",\n )}\n />\n <div\n data-sidebar=\"root\"\n className={cn(\n \"fixed inset-y-0 z-30 hidden h-svh w-[var(--sidebar-width)] md:flex\",\n \"transition-[left,right,width] duration-200 ease-linear\",\n side === \"left\"\n ? \"left-0 group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]\"\n : \"right-0 group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)]\",\n detached\n ? \"p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+1rem)]\"\n : \"group-data-[collapsible=icon]:w-[var(--sidebar-width-icon)]\",\n !detached && (side === \"left\" ? \"border-r border-border-default\" : \"border-l border-border-default\"),\n className,\n )}\n {...props}\n >\n <div\n data-sidebar=\"panel\"\n className={cn(\n \"relative flex h-full w-full flex-col overflow-hidden bg-bg-surface\",\n detached && \"rounded-lg border border-border-default shadow-sm\",\n )}\n >\n {children}\n </div>\n </div>\n </div>\n );\n}\n\nfunction Inset({ className, ...props }) {\n return (\n <main\n className={cn(\n \"relative flex min-h-svh flex-1 flex-col bg-bg-page\",\n \"peer-data-[variant=inset]:m-2 peer-data-[variant=inset]:min-h-[calc(100svh-1rem)]\",\n \"peer-data-[variant=inset]:rounded-xl peer-data-[variant=inset]:border peer-data-[variant=inset]:border-border-default\",\n className,\n )}\n {...props}\n />\n );\n}\n\nconst Trigger = React.forwardRef(function Trigger({ className, onClick, ...props }, ref) {\n const { toggleSidebar } = useSidebar();\n return (\n <IconButton\n ref={ref}\n variant=\"ghost\"\n size=\"sm\"\n aria-label=\"Toggle sidebar\"\n icon={<PanelLeft size={16} />}\n onClick={(event) => {\n onClick?.(event);\n toggleSidebar();\n }}\n className={cn(\"shrink-0\", className)}\n {...props}\n />\n );\n});\n\n/*\n * The hit strip along the panel's outer edge. tabIndex={-1} is deliberate: Sidebar.Trigger is the\n * keyboard-and-screen-reader path, and exposing a second focusable control that does exactly the\n * same thing just adds a stop to the tab order for no benefit. aria-hidden matches that intent.\n */\nfunction Rail({ className, ...props }) {\n const { toggleSidebar } = useSidebar();\n return (\n <button\n type=\"button\"\n tabIndex={-1}\n aria-hidden=\"true\"\n title=\"Toggle sidebar\"\n data-sidebar=\"rail\"\n onClick={toggleSidebar}\n className={cn(\n \"absolute inset-y-0 z-20 hidden w-4 cursor-pointer transition-colors sm:block\",\n \"after:absolute after:inset-y-0 after:left-1/2 after:w-px after:-translate-x-1/2\",\n \"hover:after:bg-border-strong\",\n \"group-data-[side=left]:right-0 group-data-[side=right]:left-0\",\n className,\n )}\n {...props}\n />\n );\n}\n\nexport const Sidebar = {\n Provider,\n Root,\n Inset,\n Trigger,\n Rail,\n Header,\n Footer,\n Content,\n Separator: SidebarSeparator,\n Input: SidebarInput,\n Group,\n GroupLabel,\n GroupAction,\n GroupContent,\n Menu,\n MenuItem,\n MenuButton,\n MenuAction,\n MenuBadge,\n MenuSkeleton,\n MenuSub,\n MenuSubItem,\n MenuSubButton,\n};\n","import { cn } from \"../../lib/cn.js\";\nimport { Input } from \"../input/Input.jsx\";\nimport { Separator as BaseSeparator } from \"../separator/Separator.jsx\";\n\nexport function Header({ className, ...props }) {\n return <div data-sidebar=\"header\" className={cn(\"flex flex-col gap-2 p-2\", className)} {...props} />;\n}\n\nexport function Footer({ className, ...props }) {\n return <div data-sidebar=\"footer\" className={cn(\"mt-auto flex flex-col gap-2 p-2\", className)} {...props} />;\n}\n\nexport function Content({ className, ...props }) {\n return (\n <div\n data-sidebar=\"content\"\n className={cn(\n \"flex min-h-0 flex-1 flex-col gap-2 overflow-auto\",\n \"group-data-[collapsible=icon]:overflow-hidden\",\n className,\n )}\n {...props}\n />\n );\n}\n\nexport function SidebarSeparator({ className, ...props }) {\n return <BaseSeparator data-sidebar=\"separator\" className={cn(\"mx-2 w-auto\", className)} {...props} />;\n}\n\nexport function SidebarInput({ className, ...props }) {\n return <Input data-sidebar=\"input\" className={cn(\"h-8 w-full bg-bg-page\", className)} {...props} />;\n}\n\nexport function Group({ className, ...props }) {\n return (\n <div data-sidebar=\"group\" className={cn(\"relative flex w-full min-w-0 flex-col p-2\", className)} {...props} />\n );\n}\n\n/*\n * Collapses upward into the group above it rather than disappearing outright — the negative margin\n * plus opacity keeps the transition continuous, where `hidden` would snap the whole menu up a row.\n */\nexport function GroupLabel({ className, ...props }) {\n return (\n <div\n data-sidebar=\"group-label\"\n className={cn(\n \"flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium text-text-secondary\",\n \"transition-[margin,opacity] duration-200 ease-linear\",\n \"group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0\",\n className,\n )}\n {...props}\n />\n );\n}\n\nexport function GroupAction({ className, ...props }) {\n return (\n <button\n type=\"button\"\n data-sidebar=\"group-action\"\n className={cn(\n \"absolute right-3 top-3.5 flex h-5 w-5 items-center justify-center rounded-md\",\n \"text-text-secondary outline-none transition-colors\",\n \"hover:bg-bg-surface-hover hover:text-text-primary\",\n \"focus-visible:outline-none focus-visible:shadow-[var(--shadow-focus-ring)]\",\n \"[&>svg]:h-4 [&>svg]:w-4 [&>svg]:shrink-0\",\n \"group-data-[collapsible=icon]:hidden\",\n className,\n )}\n {...props}\n />\n );\n}\n\nexport function GroupContent({ className, ...props }) {\n return <div data-sidebar=\"group-content\" className={cn(\"w-full text-sm\", className)} {...props} />;\n}\n","import React from \"react\";\nimport { Slot } from \"radix-ui\";\nimport { cn } from \"../../lib/cn.js\";\nimport { Skeleton } from \"../skeleton/Skeleton.jsx\";\nimport { Tooltip } from \"../tooltip/Tooltip.jsx\";\nimport { useSidebar } from \"./Sidebar.jsx\";\nimport { sidebarMenuButtonVariants, sidebarMenuSubButtonVariants } from \"./Sidebar.variants.js\";\n\nexport function Menu({ className, ...props }) {\n return <ul data-sidebar=\"menu\" className={cn(\"flex w-full min-w-0 flex-col gap-1\", className)} {...props} />;\n}\n\nexport function MenuItem({ className, ...props }) {\n return <li data-sidebar=\"menu-item\" className={cn(\"group/menu-item relative\", className)} {...props} />;\n}\n\nexport const MenuButton = React.forwardRef(function MenuButton(\n { asChild = false, isActive = false, variant, size, tooltip, className, ...props },\n ref,\n) {\n const { state, isMobile } = useSidebar();\n const Comp = asChild ? Slot.Root : \"button\";\n\n const button = (\n <Comp\n ref={ref}\n type={asChild ? undefined : \"button\"}\n data-sidebar=\"menu-button\"\n data-active={isActive}\n className={cn(sidebarMenuButtonVariants({ variant, size }), className)}\n {...props}\n />\n );\n\n // Only worth mounting once the label is actually hidden — the mobile panel is full-width, so\n // there's nothing a tooltip could reveal there.\n if (!tooltip || state !== \"collapsed\" || isMobile) return button;\n\n return (\n <Tooltip label={tooltip} side=\"right\">\n {button}\n </Tooltip>\n );\n});\n\nexport function MenuAction({ className, showOnHover = false, ...props }) {\n return (\n <button\n type=\"button\"\n data-sidebar=\"menu-action\"\n className={cn(\n \"absolute right-1 top-1/2 flex h-6 w-6 -translate-y-1/2 items-center justify-center rounded-md\",\n \"text-text-secondary outline-none transition-colors\",\n \"hover:bg-bg-surface-hover hover:text-text-primary\",\n \"focus-visible:outline-none focus-visible:shadow-[var(--shadow-focus-ring)]\",\n \"[&>svg]:h-4 [&>svg]:w-4 [&>svg]:shrink-0\",\n \"group-data-[collapsible=icon]:hidden\",\n showOnHover &&\n \"opacity-0 focus-within:opacity-100 group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100\",\n className,\n )}\n {...props}\n />\n );\n}\n\nexport function MenuBadge({ className, ...props }) {\n return (\n <div\n data-sidebar=\"menu-badge\"\n className={cn(\n \"pointer-events-none absolute right-2 top-1/2 flex h-5 min-w-5 -translate-y-1/2 select-none\",\n \"items-center justify-center rounded-md px-1 text-xs font-medium tabular-nums text-text-secondary\",\n \"group-data-[collapsible=icon]:hidden\",\n className,\n )}\n {...props}\n />\n );\n}\n\n/*\n * `width` is a prop rather than the randomised value shadcn uses, so a page of skeletons renders\n * identically every time — otherwise visual-regression snapshots would diff on every run.\n */\nexport function MenuSkeleton({ showIcon = false, width = \"70%\", className, ...props }) {\n return (\n <div\n data-sidebar=\"menu-skeleton\"\n className={cn(\"flex h-8 items-center gap-2 rounded-md px-2\", className)}\n {...props}\n >\n {showIcon && <Skeleton className=\"h-4 w-4 shrink-0 rounded-sm\" />}\n <Skeleton className=\"h-4 max-w-full flex-1\" style={{ width }} />\n </div>\n );\n}\n\nexport function MenuSub({ className, ...props }) {\n return (\n <ul\n data-sidebar=\"menu-sub\"\n className={cn(\n \"mx-3.5 flex min-w-0 flex-col gap-1 border-l border-border-default px-2.5 py-0.5\",\n \"group-data-[collapsible=icon]:hidden\",\n className,\n )}\n {...props}\n />\n );\n}\n\nexport function MenuSubItem({ className, ...props }) {\n return <li data-sidebar=\"menu-sub-item\" className={cn(\"group/menu-sub-item relative\", className)} {...props} />;\n}\n\nexport const MenuSubButton = React.forwardRef(function MenuSubButton(\n { asChild = false, isActive = false, size, className, ...props },\n ref,\n) {\n const Comp = asChild ? Slot.Root : \"a\";\n return (\n <Comp\n ref={ref}\n data-sidebar=\"menu-sub-button\"\n data-active={isActive}\n className={cn(sidebarMenuSubButtonVariants({ size }), className)}\n {...props}\n />\n );\n});\n","import { cva } from \"class-variance-authority\";\nimport { disabledClass } from \"../../lib/disabled.js\";\n\n/*\n * The `group-data-[collapsible=icon]:` variants throughout this file key off the data attributes\n * set by Sidebar.Root's outer wrapper — that's how every nested part knows the rail has collapsed\n * without each one subscribing to context. Anything that should vanish in the icon rail (labels,\n * badges, actions, sub-menus) hides itself here rather than being conditionally rendered, so the\n * collapse stays a pure CSS transition with no remount.\n */\nexport const sidebarMenuButtonVariants = cva(\n [\n \"group/menu-button peer/menu-button relative flex w-full items-center gap-2 overflow-hidden rounded-md\",\n \"px-2 py-2 text-left font-sans text-text-primary outline-none transition-colors\",\n \"hover:bg-bg-surface-hover\",\n \"focus-visible:outline-none focus-visible:shadow-[var(--shadow-focus-ring)]\",\n disabledClass,\n \"aria-disabled:pointer-events-none aria-disabled:opacity-50\",\n \"data-[active=true]:bg-bg-surface-hover data-[active=true]:font-medium data-[active=true]:text-text-primary\",\n \"[&>svg]:h-4 [&>svg]:w-4 [&>svg]:shrink-0 [&>svg]:text-text-secondary\",\n \"data-[active=true]:[&>svg]:text-text-primary\",\n // In the icon rail only the leading icon survives: the label collapses to zero width rather\n // than unmounting, so expanding again doesn't re-run the consumer's render.\n \"group-data-[collapsible=icon]:justify-center group-data-[collapsible=icon]:px-0\",\n \"group-data-[collapsible=icon]:[&>span]:hidden\",\n ],\n {\n variants: {\n variant: {\n default: \"\",\n outline: [\n \"bg-bg-page shadow-[0_0_0_1px_var(--border-default)]\",\n \"hover:shadow-[0_0_0_1px_var(--border-strong)]\",\n ],\n },\n size: {\n sm: \"h-7 text-xs\",\n md: \"h-8 text-sm\",\n lg: \"h-12 text-sm\",\n },\n },\n defaultVariants: { variant: \"default\", size: \"md\" },\n },\n);\n\nexport const sidebarMenuSubButtonVariants = cva(\n [\n \"relative flex h-7 w-full items-center gap-2 overflow-hidden rounded-md px-2\",\n \"font-sans text-text-secondary outline-none transition-colors\",\n \"hover:bg-bg-surface-hover hover:text-text-primary\",\n \"focus-visible:outline-none focus-visible:shadow-[var(--shadow-focus-ring)]\",\n \"aria-disabled:pointer-events-none aria-disabled:opacity-50\",\n \"data-[active=true]:bg-bg-surface-hover data-[active=true]:font-medium data-[active=true]:text-text-primary\",\n \"[&>svg]:h-4 [&>svg]:w-4 [&>svg]:shrink-0\",\n \"[&>span]:truncate\",\n ],\n {\n variants: {\n size: {\n sm: \"text-xs\",\n md: \"text-sm\",\n },\n },\n defaultVariants: { size: \"md\" },\n },\n);\n"],"mappings":"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","names":["React","jsx","MenuButton","MenuSubButton","jsx","jsxs","React","Trigger"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/lib/disabled.js"],"sourcesContent":["// Shared across every interactive component's variant classes so the disabled treatment (dimmed,\n// non-interactive) stays visually identical everywhere instead of drifting between components.\nexport const disabledClass = \"disabled:pointer-events-none disabled:opacity-50\";\n"],"mappings":";;;AAEO,IAAM,gBAAgB;","names":[]}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }'use client';
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
var _chunkQ2JCE4CKcjs = require('./chunk-Q2JCE4CK.cjs');
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
var _chunkNSTYHMFWcjs = require('./chunk-NSTYHMFW.cjs');
|
|
8
|
+
|
|
9
|
+
// src/components/tabs/Tabs.jsx
|
|
10
|
+
var _react = require('react'); var _react2 = _interopRequireDefault(_react);
|
|
11
|
+
var _radixui = require('radix-ui');
|
|
12
|
+
|
|
13
|
+
// src/components/tabs/Tabs.variants.js
|
|
14
|
+
var _classvarianceauthority = require('class-variance-authority');
|
|
15
|
+
var tabsTriggerVariants = _classvarianceauthority.cva.call(void 0,
|
|
16
|
+
`-mb-px mr-5 border-b-2 border-transparent px-1 py-2.5 text-base font-semibold text-text-secondary transition-colors last:mr-0 hover:text-text-primary data-[state=active]:border-accent data-[state=active]:text-text-primary focus-visible:outline-none ${_chunkQ2JCE4CKcjs.disabledClass}`
|
|
17
|
+
);
|
|
18
|
+
|
|
19
|
+
// src/components/tabs/Tabs.jsx
|
|
20
|
+
var _jsxruntime = require('react/jsx-runtime');
|
|
21
|
+
var List = _react2.default.forwardRef(function List2({ className, ...props }, ref) {
|
|
22
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _radixui.Tabs.List, { ref, className: _chunkNSTYHMFWcjs.cn.call(void 0, "flex border-b border-border-default font-sans", className), ...props });
|
|
23
|
+
});
|
|
24
|
+
var Trigger = _react2.default.forwardRef(function Trigger2({ className, ...props }, ref) {
|
|
25
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _radixui.Tabs.Trigger, { ref, className: _chunkNSTYHMFWcjs.cn.call(void 0, tabsTriggerVariants(), className), ...props });
|
|
26
|
+
});
|
|
27
|
+
var Tabs = {
|
|
28
|
+
Root: _radixui.Tabs.Root,
|
|
29
|
+
List,
|
|
30
|
+
Trigger,
|
|
31
|
+
Content: _radixui.Tabs.Content
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
exports.Tabs = Tabs;
|
|
37
|
+
//# sourceMappingURL=chunk-LEAPQI7O.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/home/runner/work/Atoms/Atoms/packages/ui/dist/chunk-LEAPQI7O.cjs","../src/components/tabs/Tabs.jsx","../src/components/tabs/Tabs.variants.js"],"names":[],"mappings":"AAAA,qLAAY;AACZ;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACA;ACRA,4EAAkB;AAClB,mCAAkC;ADUlC;AACA;AEZA,kEAAoB;AAGb,IAAM,oBAAA,EAAsB,yCAAA;AAAA,EACjC,CAAA,yPAAA,EAA4P,+BAAa,CAAA;AAC3Q;AFY4Q;AACA;ACXxQ;AAFsE;AAE0C,EAAA;AAEnH;AAE+E;AACkB,EAAA;AACjG;AAEmB;AACF,EAAA;AAChB,EAAA;AACA,EAAA;AACmB,EAAA;AACrB;ADY4Q;AACA;AACA;AACA","file":"/home/runner/work/Atoms/Atoms/packages/ui/dist/chunk-LEAPQI7O.cjs","sourcesContent":[null,"import React from \"react\";\nimport { Tabs as RadixTabs } from \"radix-ui\";\nimport { cn } from \"../../lib/cn.js\";\nimport { tabsTriggerVariants } from \"./Tabs.variants.js\";\n\nconst List = React.forwardRef(function List({ className, ...props }, ref) {\n return (\n <RadixTabs.List ref={ref} className={cn(\"flex border-b border-border-default font-sans\", className)} {...props} />\n );\n});\n\nconst Trigger = React.forwardRef(function Trigger({ className, ...props }, ref) {\n return <RadixTabs.Trigger ref={ref} className={cn(tabsTriggerVariants(), className)} {...props} />;\n});\n\nexport const Tabs = {\n Root: RadixTabs.Root,\n List,\n Trigger,\n Content: RadixTabs.Content,\n};\n","import { cva } from \"class-variance-authority\";\nimport { disabledClass } from \"../../lib/disabled.js\";\n\nexport const tabsTriggerVariants = cva(\n `-mb-px mr-5 border-b-2 border-transparent px-1 py-2.5 text-base font-semibold text-text-secondary transition-colors last:mr-0 hover:text-text-primary data-[state=active]:border-accent data-[state=active]:text-text-primary focus-visible:outline-none ${disabledClass}`,\n);\n"]}
|