@egose/shadcn-theme 0.1.9 → 0.1.11
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/LICENSE +201 -0
- package/README.md +88 -29
- package/{chunk-GBNJFKPB.js → chunk-26NBTW3I.js} +3 -3
- package/{chunk-7PX7GVOR.mjs → chunk-2EXZ4JQX.mjs} +2 -2
- package/{chunk-YJR5JBXS.js → chunk-36GT5EGU.js} +3 -3
- package/{chunk-AGPEWIPR.mjs → chunk-3R2OBHS6.mjs} +5 -5
- package/{chunk-QCHBJMD6.mjs → chunk-3R7FZDQ7.mjs} +2 -2
- package/{chunk-PS3LNHTA.js → chunk-3RQTEIV5.js} +3 -3
- package/{chunk-E7F5KADG.mjs → chunk-3YFVUGSK.mjs} +2 -2
- package/{chunk-7MDWTJEP.mjs → chunk-42IQSRLZ.mjs} +2 -2
- package/{chunk-GV62APQ6.js → chunk-5CUM73VT.js} +3 -3
- package/{chunk-P4EDRIBH.js → chunk-5LDEF3T6.js} +44 -44
- package/{chunk-HWDU5KVD.mjs → chunk-6M7NWFTI.mjs} +4 -4
- package/{chunk-CNYC22IA.mjs → chunk-6SAR4RAU.mjs} +4 -4
- package/{chunk-XMRJIUYX.mjs → chunk-7DB2YNKV.mjs} +2 -2
- package/{chunk-RPF753T2.mjs → chunk-7S5XDE3W.mjs} +2 -2
- package/{chunk-OMQVDSR6.js → chunk-A4VKE26S.js} +4 -4
- package/{chunk-WK4MG4VT.js → chunk-AH57ACVP.js} +6 -6
- package/{chunk-4BKWF5FK.js → chunk-AIZ3XYAI.js} +6 -6
- package/{chunk-RFORRZRN.js → chunk-AOGFHEQH.js} +11 -11
- package/{chunk-WJBTXKFN.js → chunk-AQWVA6TL.js} +14 -14
- package/{chunk-6ECNY4VS.mjs → chunk-ASPR3W6A.mjs} +4 -4
- package/{chunk-OVHPXYDN.mjs → chunk-B6SBEOMV.mjs} +2 -2
- package/{chunk-ZFSZ6K4K.js → chunk-BGITSWS4.js} +1 -1
- package/{chunk-RJVQU443.mjs → chunk-BKUEN3CP.mjs} +6 -6
- package/{chunk-OUVM5NST.js → chunk-BM53W77T.js} +9 -9
- package/{chunk-JZXOJAMQ.js → chunk-C4JWWUXI.js} +8 -8
- package/{chunk-IYVLRZJ4.js → chunk-C74J4JWA.js} +1 -1
- package/{chunk-OPNHC6JN.mjs → chunk-CFG4GTRV.mjs} +3 -3
- package/{chunk-YQENFZOY.mjs → chunk-CHV7CG5L.mjs} +2 -2
- package/{chunk-UFRPUC7K.js → chunk-CRBQL2FG.js} +3 -3
- package/{chunk-K4JVHEI2.js → chunk-CZZWPS2I.js} +3 -3
- package/{chunk-LAIO3QZX.js → chunk-DD3MCW6L.js} +17 -17
- package/{chunk-US2CUADK.mjs → chunk-DL6HJ3OB.mjs} +3 -3
- package/{chunk-WXEEDLLR.js → chunk-DNOZXQ2U.js} +15 -15
- package/{chunk-BJK4J4VY.js → chunk-DYYTK4BP.js} +7 -7
- package/{chunk-N7JSYNXM.js → chunk-FUFUQWRV.js} +1 -1
- package/{chunk-LPDYWZN6.js → chunk-GOATL3D5.js} +14 -14
- package/{chunk-VBPJD7U3.js → chunk-HCWYPASJ.js} +13 -13
- package/{chunk-SX4LQFOF.mjs → chunk-HD7GX5UE.mjs} +1 -1
- package/{chunk-6POWZMND.js → chunk-HDO7OG7I.js} +3 -3
- package/{chunk-AQIBLBXW.js → chunk-I4ICCNHG.js} +9 -9
- package/{chunk-KB6BX6LA.js → chunk-IEPLSUBR.js} +5 -5
- package/{chunk-NRCL342G.js → chunk-IOCZ25V7.js} +11 -11
- package/{chunk-FOEQYO2Q.js → chunk-JXITZDN4.js} +15 -15
- package/{chunk-6CRGZEQF.js → chunk-JYRR3NKH.js} +9 -9
- package/{chunk-Z342XYFY.js → chunk-KDDWHY5M.js} +6 -6
- package/{chunk-KGUUDFJE.mjs → chunk-KKCJ2GMO.mjs} +1 -1
- package/{chunk-4IDPSNL3.mjs → chunk-KS7PUPPU.mjs} +9 -9
- package/{chunk-RNKMPQDZ.mjs → chunk-L7EN73HA.mjs} +4 -4
- package/{chunk-NCJI2DCV.mjs → chunk-LBOUUQFM.mjs} +3 -3
- package/{chunk-RIBB6GXJ.mjs → chunk-MBDPHX4P.mjs} +3 -3
- package/{chunk-77MASFCZ.mjs → chunk-MLXTZKBJ.mjs} +1 -1
- package/{chunk-4ETXRZKO.js → chunk-MMD72AEX.js} +8 -8
- package/{chunk-O6PHWGJH.mjs → chunk-MP7OH5ZP.mjs} +2 -2
- package/{chunk-HTEQHRTK.mjs → chunk-MSZ2AHQM.mjs} +2 -2
- package/{chunk-CSL3CTEN.mjs → chunk-N3WWOWZ4.mjs} +2 -2
- package/{chunk-PSPAJNNB.js → chunk-NBQEF4JD.js} +1 -1
- package/{chunk-P4DW3EEW.mjs → chunk-NPEOZHKQ.mjs} +4 -4
- package/{chunk-GUB2Y4JK.mjs → chunk-NQQR2NDC.mjs} +3 -3
- package/{chunk-ZEZK2FJ4.mjs → chunk-O6E6RGZT.mjs} +1 -1
- package/{chunk-7ZMTJBXT.mjs → chunk-OURAYOOM.mjs} +7 -7
- package/{chunk-QF6PFV6M.mjs → chunk-OXUVPYJE.mjs} +2 -2
- package/{chunk-CKGMFUU2.js → chunk-OZAVO5UA.js} +3 -3
- package/{chunk-ICOZ5BK7.mjs → chunk-PBCJ476S.mjs} +3 -3
- package/{chunk-OXCN3BD6.mjs → chunk-PODBONNQ.mjs} +2 -2
- package/{chunk-5CBMRDT7.mjs → chunk-PW4ITUWI.mjs} +3 -3
- package/{chunk-F2QWMBUB.mjs → chunk-Q23ZKF2E.mjs} +2 -2
- package/{chunk-ELSPE6GB.mjs → chunk-QFLEJVD3.mjs} +5 -4
- package/{chunk-XVWILFYQ.mjs → chunk-RG3G5IZC.mjs} +2 -2
- package/{chunk-PDB2VCWX.mjs → chunk-RKVMGHH3.mjs} +1 -1
- package/{chunk-WKQDHQAS.js → chunk-RV4AOZUL.js} +10 -10
- package/{chunk-7BYWDRRI.mjs → chunk-S2LLOGBR.mjs} +3 -3
- package/{chunk-VHYQNTH7.mjs → chunk-S7HB64F7.mjs} +4 -4
- package/{chunk-TTCGK36S.js → chunk-SOJSGQJO.js} +8 -8
- package/{chunk-YEGS4ETW.js → chunk-SSBVBEDI.js} +12 -12
- package/{chunk-FD7CNCJW.mjs → chunk-SVZMGPZC.mjs} +4 -4
- package/{chunk-P6L4JTWO.js → chunk-TGQA25KR.js} +7 -6
- package/{chunk-3HZTA2ZQ.js → chunk-UHYOQN4B.js} +11 -11
- package/{chunk-K3LYDDTD.js → chunk-VHXALM6O.js} +5 -5
- package/{chunk-ZFBUIBJH.mjs → chunk-VQWCEF3I.mjs} +4 -4
- package/{chunk-4SYFVOM2.js → chunk-VRY6WSXJ.js} +1 -1
- package/{chunk-2YMMYND2.js → chunk-VVU3Q7KV.js} +3 -3
- package/{chunk-QHCOMBHI.js → chunk-W4ZJYYQP.js} +6 -6
- package/{chunk-D6YGFMSG.mjs → chunk-W7CX2O2V.mjs} +6 -6
- package/{chunk-NMYVYLKF.js → chunk-W7PK2KN7.js} +3 -3
- package/{chunk-UQW3H2JS.js → chunk-WEZTFUOR.js} +7 -7
- package/{chunk-X3V6YE47.mjs → chunk-WR7C2Q2O.mjs} +1 -1
- package/{chunk-G6WKPZTL.js → chunk-X3FLPO26.js} +10 -10
- package/{chunk-QMLV5G5Z.js → chunk-XF75HZNV.js} +36 -36
- package/{chunk-YDRPNCWF.mjs → chunk-XH7WQWOD.mjs} +5 -5
- package/{chunk-A4FV6TTM.js → chunk-XR7BY66N.js} +1 -1
- package/{chunk-UKPBHVOT.js → chunk-XWASPFJ7.js} +11 -11
- package/{chunk-7MDE2NEO.mjs → chunk-YAFFRILU.mjs} +2 -2
- package/{chunk-MM5OJOOR.mjs → chunk-YHL7Q5J3.mjs} +2 -2
- package/{chunk-RJG7QLDD.js → chunk-YMBEAV7N.js} +3 -3
- package/{chunk-BMAIJZN6.js → chunk-ZE53QYI6.js} +3 -3
- package/{chunk-3GHC4JQU.mjs → chunk-ZJRJN2UJ.mjs} +2 -2
- package/{chunk-WIISPZZE.mjs → chunk-ZLGQUL4Y.mjs} +2 -2
- package/{chunk-BEPAUXCN.mjs → chunk-ZSHUAH66.mjs} +4 -4
- package/components/form/checkbox.js +5 -5
- package/components/form/checkbox.mjs +4 -4
- package/components/form/date-picker.js +9 -9
- package/components/form/date-picker.mjs +8 -8
- package/components/form/date-range-picker.js +13 -13
- package/components/form/date-range-picker.mjs +7 -7
- package/components/form/error.js +3 -3
- package/components/form/error.mjs +2 -2
- package/components/form/hook-checkbox.js +10 -10
- package/components/form/hook-checkbox.mjs +5 -5
- package/components/form/hook-date-picker.js +12 -12
- package/components/form/hook-date-picker.mjs +9 -9
- package/components/form/hook-multi-select.js +17 -17
- package/components/form/hook-multi-select.mjs +14 -14
- package/components/form/hook-native-select.js +9 -9
- package/components/form/hook-native-select.mjs +4 -4
- package/components/form/hook-searchable-select.js +15 -15
- package/components/form/hook-searchable-select.mjs +12 -12
- package/components/form/hook-select.js +8 -8
- package/components/form/hook-select.mjs +5 -5
- package/components/form/hook-tag-picker.js +9 -9
- package/components/form/hook-tag-picker.mjs +6 -6
- package/components/form/hook-text-input.js +10 -10
- package/components/form/hook-text-input.mjs +5 -5
- package/components/form/hook-textarea.js +10 -10
- package/components/form/hook-textarea.mjs +5 -5
- package/components/form/hook-time-input.js +12 -12
- package/components/form/hook-time-input.mjs +7 -7
- package/components/form/multi-select.js +14 -14
- package/components/form/multi-select.mjs +13 -13
- package/components/form/native-select.js +4 -4
- package/components/form/native-select.mjs +3 -3
- package/components/form/searchable-select.js +12 -12
- package/components/form/searchable-select.mjs +11 -11
- package/components/form/select.js +5 -5
- package/components/form/select.mjs +4 -4
- package/components/form/tag-picker.d.mts +2 -2
- package/components/form/tag-picker.d.ts +2 -2
- package/components/form/tag-picker.js +6 -6
- package/components/form/tag-picker.mjs +5 -5
- package/components/form/text-input.d.mts +12 -0
- package/components/form/text-input.d.ts +12 -0
- package/components/form/text-input.js +5 -5
- package/components/form/text-input.mjs +4 -4
- package/components/form/textarea.js +5 -5
- package/components/form/textarea.mjs +4 -4
- package/components/form/time-input.js +7 -7
- package/components/form/time-input.mjs +6 -6
- package/components/form/types.d.mts +6 -0
- package/components/form/types.d.ts +6 -0
- package/components/ui/accordion.js +5 -5
- package/components/ui/accordion.mjs +1 -1
- package/components/ui/alert-dialog.js +12 -12
- package/components/ui/alert-dialog.mjs +3 -3
- package/components/ui/alert.js +3 -3
- package/components/ui/alert.mjs +2 -2
- package/components/ui/avatar.js +3 -3
- package/components/ui/avatar.mjs +2 -2
- package/components/ui/badge.js +3 -3
- package/components/ui/badge.mjs +2 -2
- package/components/ui/basic-alert.js +3 -3
- package/components/ui/basic-alert.mjs +2 -2
- package/components/ui/breadcrumb.js +3 -3
- package/components/ui/breadcrumb.mjs +2 -2
- package/components/ui/button-group.js +6 -6
- package/components/ui/button-group.mjs +2 -2
- package/components/ui/button.d.mts +23 -0
- package/components/ui/button.d.ts +23 -0
- package/components/ui/button.js +4 -4
- package/components/ui/button.mjs +3 -3
- package/components/ui/calendar.js +5 -5
- package/components/ui/calendar.mjs +4 -4
- package/components/ui/card.js +8 -8
- package/components/ui/card.mjs +1 -1
- package/components/ui/carousel.js +10 -10
- package/components/ui/carousel.mjs +3 -3
- package/components/ui/checkbox.js +3 -3
- package/components/ui/checkbox.mjs +2 -2
- package/components/ui/combobox.js +22 -22
- package/components/ui/combobox.mjs +6 -6
- package/components/ui/command.js +9 -9
- package/components/ui/command.mjs +8 -8
- package/components/ui/context-menu.js +11 -11
- package/components/ui/context-menu.mjs +1 -1
- package/components/ui/copy-button.js +8 -8
- package/components/ui/copy-button.mjs +3 -3
- package/components/ui/dialog.js +5 -5
- package/components/ui/dialog.mjs +4 -4
- package/components/ui/drawer.js +7 -7
- package/components/ui/drawer.mjs +1 -1
- package/components/ui/dropdown-menu.js +3 -3
- package/components/ui/dropdown-menu.mjs +2 -2
- package/components/ui/empty.js +7 -7
- package/components/ui/empty.mjs +1 -1
- package/components/ui/extension/file-input.js +5 -5
- package/components/ui/extension/file-input.mjs +4 -4
- package/components/ui/field.js +15 -15
- package/components/ui/field.mjs +3 -3
- package/components/ui/hover-card.js +2 -2
- package/components/ui/hover-card.mjs +1 -1
- package/components/ui/input-group.js +7 -7
- package/components/ui/input-group.mjs +6 -6
- package/components/ui/input-otp.js +5 -5
- package/components/ui/input-otp.mjs +1 -1
- package/components/ui/input.js +3 -3
- package/components/ui/input.mjs +2 -2
- package/components/ui/item.js +12 -12
- package/components/ui/item.mjs +2 -2
- package/components/ui/kbd.js +3 -3
- package/components/ui/kbd.mjs +1 -1
- package/components/ui/label.js +3 -3
- package/components/ui/label.mjs +2 -2
- package/components/ui/menubar.js +12 -12
- package/components/ui/menubar.mjs +1 -1
- package/components/ui/multi-select.js +11 -11
- package/components/ui/multi-select.mjs +10 -10
- package/components/ui/native-select.js +3 -3
- package/components/ui/native-select.mjs +1 -1
- package/components/ui/navigation-menu.js +10 -10
- package/components/ui/navigation-menu.mjs +1 -1
- package/components/ui/pagination.js +9 -9
- package/components/ui/pagination.mjs +3 -3
- package/components/ui/popover.js +3 -3
- package/components/ui/popover.mjs +2 -2
- package/components/ui/progress.js +2 -2
- package/components/ui/progress.mjs +1 -1
- package/components/ui/radio-group.js +3 -3
- package/components/ui/radio-group.mjs +1 -1
- package/components/ui/resizable.js +3 -3
- package/components/ui/resizable.mjs +1 -1
- package/components/ui/scroll-area.js +3 -3
- package/components/ui/scroll-area.mjs +1 -1
- package/components/ui/select.js +3 -3
- package/components/ui/select.mjs +2 -2
- package/components/ui/separator.js +3 -3
- package/components/ui/separator.mjs +2 -2
- package/components/ui/sheet.js +5 -5
- package/components/ui/sheet.mjs +4 -4
- package/components/ui/sidebar.js +11 -11
- package/components/ui/sidebar.mjs +10 -10
- package/components/ui/skeleton.js +3 -3
- package/components/ui/skeleton.mjs +2 -2
- package/components/ui/slider.js +2 -2
- package/components/ui/slider.mjs +1 -1
- package/components/ui/spinner.js +3 -3
- package/components/ui/spinner.mjs +2 -2
- package/components/ui/switch.js +2 -2
- package/components/ui/switch.mjs +1 -1
- package/components/ui/table.js +9 -9
- package/components/ui/table.mjs +1 -1
- package/components/ui/tabs.js +5 -5
- package/components/ui/tabs.mjs +1 -1
- package/components/ui/tag-picker.js +4 -4
- package/components/ui/tag-picker.mjs +3 -3
- package/components/ui/textarea.js +3 -3
- package/components/ui/textarea.mjs +2 -2
- package/components/ui/toggle-group.js +5 -5
- package/components/ui/toggle-group.mjs +2 -2
- package/components/ui/toggle.js +3 -3
- package/components/ui/toggle.mjs +2 -2
- package/components/ui/tooltip.js +3 -3
- package/components/ui/tooltip.mjs +2 -2
- package/components/widgets/dialog-manager/context.d.mts +26 -0
- package/components/widgets/dialog-manager/context.d.ts +26 -0
- package/components/widgets/dialog-manager/context.js +2 -2
- package/components/widgets/dialog-manager/context.mjs +1 -1
- package/components/widgets/dialog-manager/index.js +3 -3
- package/components/widgets/dialog-manager/index.mjs +2 -2
- package/components/widgets/dialog-manager/provider.d.mts +13 -0
- package/components/widgets/dialog-manager/provider.d.ts +13 -0
- package/components/widgets/dialog-manager/provider.js +3 -3
- package/components/widgets/dialog-manager/provider.mjs +2 -2
- package/components/widgets/dialog-manager/types.d.mts +10 -0
- package/components/widgets/dialog-manager/types.d.ts +10 -0
- package/hooks/use-clipboard.d.mts +12 -0
- package/hooks/use-clipboard.d.ts +12 -0
- package/hooks/use-clipboard.js +2 -2
- package/hooks/use-clipboard.mjs +1 -1
- package/hooks/use-mobile.d.mts +5 -0
- package/hooks/use-mobile.d.ts +5 -0
- package/hooks/use-mobile.js +2 -2
- package/hooks/use-mobile.mjs +1 -1
- package/layouts/sidebar1/app-sidebar.d.mts +12 -0
- package/layouts/sidebar1/app-sidebar.d.ts +12 -0
- package/layouts/sidebar1/app-sidebar.js +17 -17
- package/layouts/sidebar1/app-sidebar.mjs +16 -16
- package/layouts/sidebar1/context-switcher.js +13 -13
- package/layouts/sidebar1/context-switcher.mjs +12 -12
- package/layouts/sidebar1/index.d.mts +22 -0
- package/layouts/sidebar1/index.d.ts +22 -0
- package/layouts/sidebar1/index.js +23 -23
- package/layouts/sidebar1/index.js.map +1 -1
- package/layouts/sidebar1/index.mjs +17 -17
- package/layouts/sidebar1/index.mjs.map +1 -1
- package/layouts/sidebar1/nav-menus.js +12 -12
- package/layouts/sidebar1/nav-menus.mjs +11 -11
- package/layouts/sidebar1/nav-user.d.mts +9 -0
- package/layouts/sidebar1/nav-user.d.ts +9 -0
- package/layouts/sidebar1/nav-user.js +14 -14
- package/layouts/sidebar1/nav-user.mjs +13 -13
- package/layouts/simple/index.d.mts +23 -0
- package/layouts/simple/index.d.ts +23 -0
- package/layouts/simple/index.js +17 -17
- package/layouts/simple/index.js.map +1 -1
- package/layouts/simple/index.mjs +4 -4
- package/layouts/simple/index.mjs.map +1 -1
- package/layouts/simple/mobile-menu.js +3 -3
- package/layouts/simple/mobile-menu.mjs +2 -2
- package/layouts/simple/types.d.mts +11 -0
- package/layouts/simple/types.d.ts +11 -0
- package/layouts/simple/user-menu.js +4 -4
- package/layouts/simple/user-menu.mjs +3 -3
- package/llms.txt +102 -0
- package/package.json +84 -4
- package/utils/date.d.mts +9 -0
- package/utils/date.d.ts +9 -0
- package/utils/date.js +2 -2
- package/utils/date.mjs +1 -1
- package/utils/time.d.mts +12 -0
- package/utils/time.d.ts +12 -0
- package/utils/time.js +2 -2
- package/utils/time.mjs +1 -1
- package/utils/ui.d.mts +8 -0
- package/utils/ui.d.ts +8 -0
- package/utils/ui.js +2 -2
- package/utils/ui.mjs +1 -1
- package/chunk-2NMEKWO5.js.map +0 -1
- package/chunk-2YMMYND2.js.map +0 -1
- package/chunk-3GHC4JQU.mjs.map +0 -1
- package/chunk-3HZTA2ZQ.js.map +0 -1
- package/chunk-4BKWF5FK.js.map +0 -1
- package/chunk-4ETXRZKO.js.map +0 -1
- package/chunk-4IDPSNL3.mjs.map +0 -1
- package/chunk-4SYFVOM2.js.map +0 -1
- package/chunk-5CBMRDT7.mjs.map +0 -1
- package/chunk-5SLUBHNN.js.map +0 -1
- package/chunk-5TXFHYQ5.js.map +0 -1
- package/chunk-6CRGZEQF.js.map +0 -1
- package/chunk-6ECNY4VS.mjs.map +0 -1
- package/chunk-6POWZMND.js.map +0 -1
- package/chunk-6T6UTNWD.mjs.map +0 -1
- package/chunk-77MASFCZ.mjs.map +0 -1
- package/chunk-7BYWDRRI.mjs.map +0 -1
- package/chunk-7GZ7NWTV.js.map +0 -1
- package/chunk-7MDE2NEO.mjs.map +0 -1
- package/chunk-7MDWTJEP.mjs.map +0 -1
- package/chunk-7PX7GVOR.mjs.map +0 -1
- package/chunk-7ZMTJBXT.mjs.map +0 -1
- package/chunk-A4FV6TTM.js.map +0 -1
- package/chunk-AGPEWIPR.mjs.map +0 -1
- package/chunk-AQIBLBXW.js.map +0 -1
- package/chunk-B2Z7BNYW.mjs.map +0 -1
- package/chunk-BEPAUXCN.mjs.map +0 -1
- package/chunk-BJK4J4VY.js.map +0 -1
- package/chunk-BMAIJZN6.js.map +0 -1
- package/chunk-CKGMFUU2.js.map +0 -1
- package/chunk-CNYC22IA.mjs.map +0 -1
- package/chunk-CSL3CTEN.mjs.map +0 -1
- package/chunk-D6YGFMSG.mjs.map +0 -1
- package/chunk-E7F5KADG.mjs.map +0 -1
- package/chunk-ELSPE6GB.mjs.map +0 -1
- package/chunk-F2QWMBUB.mjs.map +0 -1
- package/chunk-FD7CNCJW.mjs.map +0 -1
- package/chunk-FOEQYO2Q.js.map +0 -1
- package/chunk-G6WKPZTL.js.map +0 -1
- package/chunk-GBNJFKPB.js.map +0 -1
- package/chunk-GUB2Y4JK.mjs.map +0 -1
- package/chunk-GV62APQ6.js.map +0 -1
- package/chunk-HTEQHRTK.mjs.map +0 -1
- package/chunk-HWDU5KVD.mjs.map +0 -1
- package/chunk-ICOZ5BK7.mjs.map +0 -1
- package/chunk-IYVLRZJ4.js.map +0 -1
- package/chunk-JZXOJAMQ.js.map +0 -1
- package/chunk-K3LYDDTD.js.map +0 -1
- package/chunk-K4JVHEI2.js.map +0 -1
- package/chunk-KB6BX6LA.js.map +0 -1
- package/chunk-KGUUDFJE.mjs.map +0 -1
- package/chunk-LAIO3QZX.js.map +0 -1
- package/chunk-LPDYWZN6.js.map +0 -1
- package/chunk-LVXIGNFJ.mjs.map +0 -1
- package/chunk-M6UKU56L.mjs.map +0 -1
- package/chunk-MM5OJOOR.mjs.map +0 -1
- package/chunk-N7JSYNXM.js.map +0 -1
- package/chunk-NCJI2DCV.mjs.map +0 -1
- package/chunk-NMYVYLKF.js.map +0 -1
- package/chunk-NRCL342G.js.map +0 -1
- package/chunk-O6PHWGJH.mjs.map +0 -1
- package/chunk-OMQVDSR6.js.map +0 -1
- package/chunk-OPNHC6JN.mjs.map +0 -1
- package/chunk-OUVM5NST.js.map +0 -1
- package/chunk-OVHPXYDN.mjs.map +0 -1
- package/chunk-OXCN3BD6.mjs.map +0 -1
- package/chunk-P4DW3EEW.mjs.map +0 -1
- package/chunk-P4EDRIBH.js.map +0 -1
- package/chunk-P6L4JTWO.js.map +0 -1
- package/chunk-PDB2VCWX.mjs.map +0 -1
- package/chunk-PS3LNHTA.js.map +0 -1
- package/chunk-PSPAJNNB.js.map +0 -1
- package/chunk-QCHBJMD6.mjs.map +0 -1
- package/chunk-QF6PFV6M.mjs.map +0 -1
- package/chunk-QHCOMBHI.js.map +0 -1
- package/chunk-QMLV5G5Z.js.map +0 -1
- package/chunk-RFORRZRN.js.map +0 -1
- package/chunk-RIBB6GXJ.mjs.map +0 -1
- package/chunk-RJG7QLDD.js.map +0 -1
- package/chunk-RJVQU443.mjs.map +0 -1
- package/chunk-RNKMPQDZ.mjs.map +0 -1
- package/chunk-RPF753T2.mjs.map +0 -1
- package/chunk-SC6IX6NJ.js.map +0 -1
- package/chunk-SX4LQFOF.mjs.map +0 -1
- package/chunk-TTCGK36S.js.map +0 -1
- package/chunk-UFRPUC7K.js.map +0 -1
- package/chunk-UKPBHVOT.js.map +0 -1
- package/chunk-UQW3H2JS.js.map +0 -1
- package/chunk-US2CUADK.mjs.map +0 -1
- package/chunk-VBPJD7U3.js.map +0 -1
- package/chunk-VHYQNTH7.mjs.map +0 -1
- package/chunk-WIISPZZE.mjs.map +0 -1
- package/chunk-WJBTXKFN.js.map +0 -1
- package/chunk-WK4MG4VT.js.map +0 -1
- package/chunk-WKQDHQAS.js.map +0 -1
- package/chunk-WXEEDLLR.js.map +0 -1
- package/chunk-X3V6YE47.mjs.map +0 -1
- package/chunk-XMRJIUYX.mjs.map +0 -1
- package/chunk-XVWILFYQ.mjs.map +0 -1
- package/chunk-YDRPNCWF.mjs.map +0 -1
- package/chunk-YEGS4ETW.js.map +0 -1
- package/chunk-YJR5JBXS.js.map +0 -1
- package/chunk-YOSPWY5K.mjs.map +0 -1
- package/chunk-YQENFZOY.mjs.map +0 -1
- package/chunk-Z342XYFY.js.map +0 -1
- package/chunk-ZEZK2FJ4.mjs.map +0 -1
- package/chunk-ZFBUIBJH.mjs.map +0 -1
- package/chunk-ZFSZ6K4K.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../layouts/simple/index.tsx"],"sourcesContent":["\"use client\";\nimport React, { useState, useMemo, useEffect } from 'react';\nimport { Menu } from 'lucide-react';\nimport { cn } from '../../utils/ui';\nimport { UserMenus } from './user-menu';\nimport { MobileMenu } from './mobile-menu';\nimport type { MenuItem, UserMenuSection } from './types';\n\ninterface LayoutProps {\n logo?: {\n src?: string;\n link?: string;\n };\n user?: {\n menuSections: UserMenuSection[];\n trigger?: React.ReactNode;\n };\n left?: {\n menus: MenuItem[];\n };\n right?: {\n menus: MenuItem[];\n };\n sidebar?: {\n title: string;\n content: React.ReactNode;\n };\n footer?: {\n menus: MenuItem[];\n content?: string;\n };\n classNames?: {\n header?: {\n wrapper: string;\n logo?: string;\n left?: {\n nav?: string;\n link?: string;\n };\n right?: {\n nav?: string;\n link?: string;\n };\n };\n content?: {\n wrapper?: string;\n bottom?: string;\n };\n footer?: {\n wrapper?: string;\n nav?: string;\n link?: string;\n };\n };\n loading?: boolean;\n children?: React.ReactNode;\n aslink: React.ElementType;\n}\n\nexport default function SimpleLayout(props: LayoutProps) {\n const { logo, user, left, right, sidebar, footer, classNames, loading, children, aslink } = props;\n\n const [mobileMenuOpen, setMobileMenuOpen] = useState(false);\n const [isMobile, setIsMobile] = useState(false);\n\n const LinkComponent = aslink ?? 'button';\n\n useEffect(() => {\n const handleResize = () => {\n setIsMobile(window.innerWidth < 768);\n };\n handleResize();\n window.addEventListener('resize', handleResize);\n return () => window.removeEventListener('resize', handleResize);\n }, []);\n\n const toggleMobileMenu = () => setMobileMenuOpen(!mobileMenuOpen);\n\n const leftMenus = left?.menus ?? [];\n const rightMenus = right?.menus ?? [];\n const topMenus = [...leftMenus, ...rightMenus];\n const userMenuSections = user?.menuSections ?? [];\n const footerMenus = footer?.menus ?? [];\n\n return (\n <div className=\"flex flex-col min-h-screen\">\n {/* Header */}\n <header\n className={cn(\n 'px-4 py-2 flex items-center justify-between bg-gray-100 border-b border-gray-300',\n classNames?.header?.wrapper,\n )}\n >\n <div className=\"flex items-center space-x-4\">\n {sidebar && (\n <button\n className=\"bg-transparent border-gray-400 hover:border-gray-500\"\n onClick={() => {\n /* open sidebar */\n }}\n >\n {/* icon */}\n </button>\n )}\n {logo && (\n <div className={cn('_logo')}>\n <LinkComponent to={logo.link ?? '/'} href={logo.link ?? '/'}>\n <img src={logo.src} alt=\"Logo\" className={cn('h-10', classNames?.header?.logo)} />\n </LinkComponent>\n </div>\n )}\n\n {/* Left Menus */}\n <nav className={cn('flex space-x-4 items-center', classNames?.header?.left?.nav)}>\n {leftMenus.map((item) =>\n item.link ? (\n <LinkComponent\n key={item.label}\n to={item.link}\n href={item.link}\n className={cn(\n 'text-left text-secondary visited:text-secondary hover:text-primary cursor-pointer no-underline',\n classNames?.header?.left?.link,\n item.className,\n item.title || !isMobile ? 'inline-block' : 'hidden',\n )}\n >\n {item.label}\n </LinkComponent>\n ) : (\n <button\n key={item.label}\n onClick={item.action}\n className={cn(\n 'text-left text-secondary visited:text-secondary hover:text-primary cursor-pointer no-underline',\n classNames?.header?.left?.link,\n item.className,\n item.title || !isMobile ? 'inline-block' : 'hidden',\n )}\n >\n {item.label}\n </button>\n ),\n )}\n </nav>\n </div>\n\n {/* Right menus */}\n <nav className={cn('hidden md:flex space-x-4 items-center', classNames?.header?.right?.nav)}>\n {rightMenus.map((item) =>\n item.link ? (\n <LinkComponent\n key={item.label}\n to={item.link}\n href={item.link}\n className={cn(\n 'text-left text-secondary visited:text-secondary hover:text-primary cursor-pointer no-underline',\n classNames?.header?.right?.link,\n item.className,\n )}\n >\n {item.label}\n </LinkComponent>\n ) : (\n <button\n key={item.label}\n onClick={item.action}\n className={cn(\n 'text-left text-secondary visited:text-secondary hover:text-primary cursor-pointer no-underline',\n classNames?.header?.right?.link,\n item.className,\n )}\n >\n {item.label}\n </button>\n ),\n )}\n {userMenuSections.length > 0 && (\n <UserMenus sections={userMenuSections} trigger={user?.trigger} aslink={aslink} />\n )}\n </nav>\n\n {/* Mobile menu button */}\n <button onClick={toggleMobileMenu} className=\"md:hidden p-2 text-gray-700 hover:text-primary cursor-pointer\">\n <Menu className=\"\" />\n </button>\n </header>\n\n {/* Mobile menu */}\n {isMobile && mobileMenuOpen && (\n <div className=\"w-full\">\n <MobileMenu sections={userMenuSections} aslink={aslink} onClick={toggleMobileMenu} />\n </div>\n )}\n\n {/* Main content */}\n <main className={cn('p-4 flex flex-col flex-1', classNames?.content)}>\n {!loading && <div className=\"flex items-center justify-center h-full\">{children}</div>}\n <div className={cn('flex-1', classNames?.content?.bottom)}></div>\n </main>\n\n {/* Footer */}\n {footer && (\n <footer\n className={cn(\n 'px-4 py-4 bg-gray-100 border-t border-gray-300 text-sm text-gray-600',\n classNames?.footer?.wrapper,\n )}\n >\n <nav className={cn('flex flex-wrap justify-center space-x-4', classNames?.footer?.nav)}>\n {footerMenus.map((item) =>\n item.link ? (\n <LinkComponent\n key={item.label}\n to={item.link}\n href={item.link}\n className={cn(\n 'text-secondary hover:text-primary cursor-pointer no-underline',\n classNames?.footer?.link,\n item.className,\n )}\n >\n {item.label}\n </LinkComponent>\n ) : (\n <button\n key={item.label}\n onClick={item.action}\n className={cn(\n 'text-secondary hover:text-primary cursor-pointer no-underline',\n classNames?.footer?.link,\n item.className,\n )}\n >\n {item.label}\n </button>\n ),\n )}\n </nav>\n <div className=\"mt-2 text-center\">{footer?.content}</div>\n </footer>\n )}\n </div>\n );\n}\n"],"mappings":"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","names":["_a","_b","_c","_d"]}
|
|
1
|
+
{"version":3,"sources":["../../../layouts/simple/index.tsx"],"sourcesContent":["\"use client\";\nimport React, { useState, useMemo, useEffect } from 'react';\nimport { Menu } from 'lucide-react';\nimport { cn } from '../../utils/ui';\nimport { UserMenus } from './user-menu';\nimport { MobileMenu } from './mobile-menu';\nimport type { MenuItem, UserMenuSection } from './types';\n\n/**\n * Props for {@link SimpleLayout}. The layout renders a fixed header with\n * optional left/right nav menus, an optional user dropdown, an optional\n * mobile menu, an optional footer, and a main content slot for `children`.\n *\n * `aslink` is required: pass your router's `Link` component so internal\n * navigation works without re-implementing it. The same component is\n * rendered for both `to=` (React Router) and `href=` (Next.js) prop styles.\n */\ninterface LayoutProps {\n logo?: {\n src?: string;\n link?: string;\n };\n user?: {\n menuSections: UserMenuSection[];\n trigger?: React.ReactNode;\n };\n left?: {\n menus: MenuItem[];\n };\n right?: {\n menus: MenuItem[];\n };\n sidebar?: {\n title: string;\n content: React.ReactNode;\n };\n footer?: {\n menus: MenuItem[];\n content?: string;\n };\n classNames?: {\n header?: {\n wrapper: string;\n logo?: string;\n left?: {\n nav?: string;\n link?: string;\n };\n right?: {\n nav?: string;\n link?: string;\n };\n };\n content?: {\n wrapper?: string;\n bottom?: string;\n };\n footer?: {\n wrapper?: string;\n nav?: string;\n link?: string;\n };\n };\n loading?: boolean;\n children?: React.ReactNode;\n aslink: React.ElementType;\n}\n\n/**\n * Header + main + footer layout for content-light pages. Mobile-aware\n * (collapsible menu under 768px). Compose the inner pieces with the\n * `classNames` slots rather than overriding internal markup.\n *\n * @example\n * <SimpleLayout\n * aslink={Link}\n * left={{ menus: [{ label: 'Home', link: '/' }] }}\n * user={{ menuSections: [...] }}\n * >\n * {children}\n * </SimpleLayout>\n */\nexport default function SimpleLayout(props: LayoutProps) {\n const { logo, user, left, right, sidebar, footer, classNames, loading, children, aslink } = props;\n\n const [mobileMenuOpen, setMobileMenuOpen] = useState(false);\n const [isMobile, setIsMobile] = useState(false);\n\n const LinkComponent = aslink ?? 'button';\n\n useEffect(() => {\n const handleResize = () => {\n setIsMobile(window.innerWidth < 768);\n };\n handleResize();\n window.addEventListener('resize', handleResize);\n return () => window.removeEventListener('resize', handleResize);\n }, []);\n\n const toggleMobileMenu = () => setMobileMenuOpen(!mobileMenuOpen);\n\n const leftMenus = left?.menus ?? [];\n const rightMenus = right?.menus ?? [];\n const topMenus = [...leftMenus, ...rightMenus];\n const userMenuSections = user?.menuSections ?? [];\n const footerMenus = footer?.menus ?? [];\n\n return (\n <div className=\"flex flex-col min-h-screen\">\n {/* Header */}\n <header\n className={cn(\n 'px-4 py-2 flex items-center justify-between bg-gray-100 border-b border-gray-300',\n classNames?.header?.wrapper,\n )}\n >\n <div className=\"flex items-center space-x-4\">\n {sidebar && (\n <button\n className=\"bg-transparent border-gray-400 hover:border-gray-500\"\n onClick={() => {\n /* open sidebar */\n }}\n >\n {/* icon */}\n </button>\n )}\n {logo && (\n <div className={cn('_logo')}>\n <LinkComponent to={logo.link ?? '/'} href={logo.link ?? '/'}>\n <img src={logo.src} alt=\"Logo\" className={cn('h-10', classNames?.header?.logo)} />\n </LinkComponent>\n </div>\n )}\n\n {/* Left Menus */}\n <nav className={cn('flex space-x-4 items-center', classNames?.header?.left?.nav)}>\n {leftMenus.map((item) =>\n item.link ? (\n <LinkComponent\n key={item.label}\n to={item.link}\n href={item.link}\n className={cn(\n 'text-left text-secondary visited:text-secondary hover:text-primary cursor-pointer no-underline',\n classNames?.header?.left?.link,\n item.className,\n item.title || !isMobile ? 'inline-block' : 'hidden',\n )}\n >\n {item.label}\n </LinkComponent>\n ) : (\n <button\n key={item.label}\n onClick={item.action}\n className={cn(\n 'text-left text-secondary visited:text-secondary hover:text-primary cursor-pointer no-underline',\n classNames?.header?.left?.link,\n item.className,\n item.title || !isMobile ? 'inline-block' : 'hidden',\n )}\n >\n {item.label}\n </button>\n ),\n )}\n </nav>\n </div>\n\n {/* Right menus */}\n <nav className={cn('hidden md:flex space-x-4 items-center', classNames?.header?.right?.nav)}>\n {rightMenus.map((item) =>\n item.link ? (\n <LinkComponent\n key={item.label}\n to={item.link}\n href={item.link}\n className={cn(\n 'text-left text-secondary visited:text-secondary hover:text-primary cursor-pointer no-underline',\n classNames?.header?.right?.link,\n item.className,\n )}\n >\n {item.label}\n </LinkComponent>\n ) : (\n <button\n key={item.label}\n onClick={item.action}\n className={cn(\n 'text-left text-secondary visited:text-secondary hover:text-primary cursor-pointer no-underline',\n classNames?.header?.right?.link,\n item.className,\n )}\n >\n {item.label}\n </button>\n ),\n )}\n {userMenuSections.length > 0 && (\n <UserMenus sections={userMenuSections} trigger={user?.trigger} aslink={aslink} />\n )}\n </nav>\n\n {/* Mobile menu button */}\n <button onClick={toggleMobileMenu} className=\"md:hidden p-2 text-gray-700 hover:text-primary cursor-pointer\">\n <Menu className=\"\" />\n </button>\n </header>\n\n {/* Mobile menu */}\n {isMobile && mobileMenuOpen && (\n <div className=\"w-full\">\n <MobileMenu sections={userMenuSections} aslink={aslink} onClick={toggleMobileMenu} />\n </div>\n )}\n\n {/* Main content */}\n <main className={cn('p-4 flex flex-col flex-1', classNames?.content)}>\n {!loading && <div className=\"flex items-center justify-center h-full\">{children}</div>}\n <div className={cn('flex-1', classNames?.content?.bottom)}></div>\n </main>\n\n {/* Footer */}\n {footer && (\n <footer\n className={cn(\n 'px-4 py-4 bg-gray-100 border-t border-gray-300 text-sm text-gray-600',\n classNames?.footer?.wrapper,\n )}\n >\n <nav className={cn('flex flex-wrap justify-center space-x-4', classNames?.footer?.nav)}>\n {footerMenus.map((item) =>\n item.link ? (\n <LinkComponent\n key={item.label}\n to={item.link}\n href={item.link}\n className={cn(\n 'text-secondary hover:text-primary cursor-pointer no-underline',\n classNames?.footer?.link,\n item.className,\n )}\n >\n {item.label}\n </LinkComponent>\n ) : (\n <button\n key={item.label}\n onClick={item.action}\n className={cn(\n 'text-secondary hover:text-primary cursor-pointer no-underline',\n classNames?.footer?.link,\n item.className,\n )}\n >\n {item.label}\n </button>\n ),\n )}\n </nav>\n <div className=\"mt-2 text-center\">{footer?.content}</div>\n </footer>\n )}\n </div>\n );\n}\n"],"mappings":"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","names":["_a","_b","_c","_d"]}
|
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
3
3
|
|
|
4
4
|
|
|
5
|
-
var
|
|
6
|
-
require('../../chunk-
|
|
5
|
+
var _chunkA4VKE26Sjs = require('../../chunk-A4VKE26S.js');
|
|
6
|
+
require('../../chunk-NBQEF4JD.js');
|
|
7
7
|
require('../../chunk-2NMEKWO5.js');
|
|
8
8
|
|
|
9
9
|
|
|
10
|
-
exports.MobileMenu =
|
|
10
|
+
exports.MobileMenu = _chunkA4VKE26Sjs.MobileMenu;
|
|
11
11
|
//# sourceMappingURL=mobile-menu.js.map
|
|
@@ -1,3 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A single menu entry rendered by {@link SimpleLayout}. Either `link` (for
|
|
3
|
+
* navigation) or `action` (for callbacks) should be supplied; `link` wins
|
|
4
|
+
* when both are present. `title: true` hides the entry on mobile widths and
|
|
5
|
+
* surfaces it as a section title in the mobile menu instead.
|
|
6
|
+
*/
|
|
1
7
|
interface MenuItem {
|
|
2
8
|
label: string;
|
|
3
9
|
icon?: React.ReactNode;
|
|
@@ -6,6 +12,11 @@ interface MenuItem {
|
|
|
6
12
|
className?: string;
|
|
7
13
|
title?: boolean;
|
|
8
14
|
}
|
|
15
|
+
/**
|
|
16
|
+
* Group of items rendered inside the user dropdown. A section with
|
|
17
|
+
* `separator: true` renders as a divider; otherwise `items` (if any) is
|
|
18
|
+
* rendered under `label`.
|
|
19
|
+
*/
|
|
9
20
|
interface UserMenuSection {
|
|
10
21
|
label?: string;
|
|
11
22
|
separator?: boolean;
|
|
@@ -1,3 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A single menu entry rendered by {@link SimpleLayout}. Either `link` (for
|
|
3
|
+
* navigation) or `action` (for callbacks) should be supplied; `link` wins
|
|
4
|
+
* when both are present. `title: true` hides the entry on mobile widths and
|
|
5
|
+
* surfaces it as a section title in the mobile menu instead.
|
|
6
|
+
*/
|
|
1
7
|
interface MenuItem {
|
|
2
8
|
label: string;
|
|
3
9
|
icon?: React.ReactNode;
|
|
@@ -6,6 +12,11 @@ interface MenuItem {
|
|
|
6
12
|
className?: string;
|
|
7
13
|
title?: boolean;
|
|
8
14
|
}
|
|
15
|
+
/**
|
|
16
|
+
* Group of items rendered inside the user dropdown. A section with
|
|
17
|
+
* `separator: true` renders as a divider; otherwise `items` (if any) is
|
|
18
|
+
* rendered under `label`.
|
|
19
|
+
*/
|
|
9
20
|
interface UserMenuSection {
|
|
10
21
|
label?: string;
|
|
11
22
|
separator?: boolean;
|
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
3
3
|
|
|
4
4
|
|
|
5
|
-
var
|
|
6
|
-
require('../../chunk-
|
|
7
|
-
require('../../chunk-
|
|
5
|
+
var _chunkBM53W77Tjs = require('../../chunk-BM53W77T.js');
|
|
6
|
+
require('../../chunk-XWASPFJ7.js');
|
|
7
|
+
require('../../chunk-NBQEF4JD.js');
|
|
8
8
|
require('../../chunk-2NMEKWO5.js');
|
|
9
9
|
|
|
10
10
|
|
|
11
|
-
exports.UserMenus =
|
|
11
|
+
exports.UserMenus = _chunkBM53W77Tjs.UserMenus;
|
|
12
12
|
//# sourceMappingURL=user-menu.js.map
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import {
|
|
3
3
|
UserMenus
|
|
4
|
-
} from "../../chunk-
|
|
5
|
-
import "../../chunk-
|
|
6
|
-
import "../../chunk-
|
|
4
|
+
} from "../../chunk-MBDPHX4P.mjs";
|
|
5
|
+
import "../../chunk-7S5XDE3W.mjs";
|
|
6
|
+
import "../../chunk-KKCJ2GMO.mjs";
|
|
7
7
|
import "../../chunk-YOSPWY5K.mjs";
|
|
8
8
|
export {
|
|
9
9
|
UserMenus
|
package/llms.txt
ADDED
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
# @egose/shadcn-theme
|
|
2
|
+
|
|
3
|
+
> shadcn/ui-style React component theme. Deep-import only — every module is its own subpath. All shipped modules are `"use client"`.
|
|
4
|
+
|
|
5
|
+
## Install
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
npm i @egose/shadcn-theme react react-dom react-hook-form sonner
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
Peers: react ^18.3.1 || ^19.0.0 · react-dom ^18.3.1 || ^19.0.0 · react-hook-form ^7.54.2 · sonner ^2.0.7 · tailwindcss v4 (consumer-side setup).
|
|
12
|
+
|
|
13
|
+
## Subpath map
|
|
14
|
+
|
|
15
|
+
### UI primitives — `@egose/shadcn-theme/components/ui/<name>`
|
|
16
|
+
|
|
17
|
+
`accordion` · `alert` · `alert-dialog` · `aspect-ratio` · `avatar` · `badge` · `basic-alert` · `breadcrumb` · `button` · `button-group` · `calendar` · `card` · `carousel` · `checkbox` · `collapsible` · `combobox` · `command` · `context-menu` · `copy-button` · `dialog` · `direction` · `drawer` · `dropdown-menu` · `empty` · `field` · `hover-card` · `input` · `input-group` · `input-otp` · `item` · `kbd` · `label` · `menubar` · `multi-select` · `native-select` · `navigation-menu` · `pagination` · `popover` · `progress` · `radio-group` · `resizable` · `scroll-area` · `select` · `separator` · `sheet` · `sidebar` · `skeleton` · `slider` · `sonner` · `spinner` · `switch` · `table` · `tabs` · `tag-picker` · `textarea` · `toggle` · `toggle-group` · `tooltip` · `unstyled-button` · `extension/file-input`
|
|
18
|
+
|
|
19
|
+
### Form fields (react-hook-form) — `@egose/shadcn-theme/components/form/<name>`
|
|
20
|
+
|
|
21
|
+
`checkbox` · `date-picker` · `date-range-picker` · `error` · `hook-checkbox` · `hook-date-picker` · `hook-multi-select` · `hook-native-select` · `hook-searchable-select` · `hook-select` · `hook-tag-picker` · `hook-text-input` · `hook-textarea` · `hook-time-input` · `multi-select` · `native-select` · `searchable-select` · `select` · `tag-picker` · `text-input` · `textarea` · `time-input` · `types`
|
|
22
|
+
|
|
23
|
+
### Widgets — `@egose/shadcn-theme/components/widgets/<name>`
|
|
24
|
+
|
|
25
|
+
- `dialog-manager` (and `dialog-manager/*`): `DialogProvider`, `useDialog`, `createTypedDialog`, `DialogContext`, `DialogProps`, `TypedDialogComponent`
|
|
26
|
+
|
|
27
|
+
### Hooks — `@egose/shadcn-theme/hooks/<name>`
|
|
28
|
+
|
|
29
|
+
- `use-clipboard` → `useClipboard({ timeout? })` → `{ copied, copy, error }`
|
|
30
|
+
- `use-mobile` → `useIsMobile()` → `boolean`
|
|
31
|
+
|
|
32
|
+
### Utils — `@egose/shadcn-theme/utils/<name>`
|
|
33
|
+
|
|
34
|
+
- `ui` → `cn(...inputs: ClassValue[])` (clsx + tailwind-merge)
|
|
35
|
+
- `date` → `isEqualDate`, `isEqualDates`
|
|
36
|
+
- `time` → `convertToHours(value, asNumber?)` (parses `90m`, `1.5h`, `3600s`, bare numbers)
|
|
37
|
+
|
|
38
|
+
### Layouts — `@egose/shadcn-theme/layouts/<name>`
|
|
39
|
+
|
|
40
|
+
- `simple` (and `simple/*`): `SimpleLayout` (default) · `MenuItem`, `UserMenuSection` (types)
|
|
41
|
+
- `sidebar1` (and `sidebar1/*`): `SidebarLayout` (default) · `setLayoutHeader`, `headerStore` · `ISidebarData`, `ISidebarContext`, `INavUser`, `INavUserMenuItem`, `INavMenu`, `IMenuItem`, `IMenuSubItem`, `INavContext` (types) · `AppSidebar`, `NavUser`, `NavMenus`, `ContextSwitcher`, `ThemeSwitcher`, `LinkPlaceholder`
|
|
42
|
+
|
|
43
|
+
## Canonical patterns
|
|
44
|
+
|
|
45
|
+
```tsx
|
|
46
|
+
"use client";
|
|
47
|
+
|
|
48
|
+
import { Button } from "@egose/shadcn-theme/components/ui/button";
|
|
49
|
+
import { FormTextInput } from "@egose/shadcn-theme/components/form/text-input";
|
|
50
|
+
import { useClipboard } from "@egose/shadcn-theme/hooks/use-clipboard";
|
|
51
|
+
import { cn } from "@egose/shadcn-theme/utils/ui";
|
|
52
|
+
import SimpleLayout from "@egose/shadcn-theme/layouts/simple";
|
|
53
|
+
|
|
54
|
+
export function Demo() {
|
|
55
|
+
const { copy, copied } = useClipboard();
|
|
56
|
+
return (
|
|
57
|
+
<SimpleLayout aslink={Link} left={{ menus: [{ label: "Home", link: "/" }] }}>
|
|
58
|
+
<Button variant="primary" loading={copied} onClick={() => copy("hi")}>
|
|
59
|
+
{copied ? "Copied" : "Copy"}
|
|
60
|
+
</Button>
|
|
61
|
+
<FormTextInput name="title" label="Title" required />
|
|
62
|
+
</SimpleLayout>
|
|
63
|
+
);
|
|
64
|
+
}
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
Promise-based dialog flow:
|
|
68
|
+
|
|
69
|
+
```tsx
|
|
70
|
+
"use client";
|
|
71
|
+
import { DialogProvider, useDialog, createTypedDialog } from "@egose/shadcn-theme/components/widgets/dialog-manager";
|
|
72
|
+
import { Dialog, DialogContent, DialogFooter, Button } from "@egose/shadcn-theme/components/ui/dialog";
|
|
73
|
+
|
|
74
|
+
const ConfirmDialog = createTypedDialog<{ title: string }, boolean>(
|
|
75
|
+
({ open, args, onClose }) => (
|
|
76
|
+
<Dialog open={open} onOpenChange={(o) => !o && onClose(false)}>
|
|
77
|
+
<DialogContent>
|
|
78
|
+
{args.title}
|
|
79
|
+
<DialogFooter>
|
|
80
|
+
<Button variant="ghost" onClick={() => onClose(false)}>Cancel</Button>
|
|
81
|
+
<Button variant="danger" onClick={() => onClose(true)}>Confirm</Button>
|
|
82
|
+
</DialogFooter>
|
|
83
|
+
</DialogContent>
|
|
84
|
+
</Dialog>
|
|
85
|
+
),
|
|
86
|
+
);
|
|
87
|
+
|
|
88
|
+
// inside a component under <DialogProvider>:
|
|
89
|
+
// const ok = await openDialog(ConfirmDialog, { title: "Delete?" });
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
## Notable conventions
|
|
93
|
+
|
|
94
|
+
- All shipped modules start with `"use client";` — only import from client components / pages.
|
|
95
|
+
- `Button` accepts `variant`, `size`, `appearance`, `loading`, `icon`, `iconPosition`; see `buttonVariants` for the resolved class string.
|
|
96
|
+
- Form-field wrappers (`components/form/text-input`, `select`, `checkbox`, `date-picker`, `textarea`, …) compose with `react-hook-form` via `inputProps={{ ...register('name', rules) }}`. `HookFormRules<T>` (in `components/form/types`) is the safe `RegisterOptions` subset.
|
|
97
|
+
- Layout `aslink` prop is required — pass your router's `Link` (works for both `to=` and `href=` APIs).
|
|
98
|
+
- `cn` is the single point for class composition; pass `classNames` slots on layouts/form-fields to extend (never override) defaults.
|
|
99
|
+
|
|
100
|
+
## License
|
|
101
|
+
|
|
102
|
+
MIT. See https://github.com/egose/shadcn-theme.
|
package/package.json
CHANGED
|
@@ -1,11 +1,38 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "0.1.
|
|
3
|
-
"description": "shadcn UI theme",
|
|
4
|
-
"
|
|
2
|
+
"version": "0.1.11",
|
|
3
|
+
"description": "shadcn UI theme for React",
|
|
4
|
+
"keywords": [
|
|
5
|
+
"shadcn",
|
|
6
|
+
"shadcn-ui",
|
|
7
|
+
"react",
|
|
8
|
+
"tailwindcss",
|
|
9
|
+
"ui",
|
|
10
|
+
"components",
|
|
11
|
+
"design-system"
|
|
12
|
+
],
|
|
13
|
+
"homepage": "https://github.com/egose/shadcn-theme",
|
|
14
|
+
"bugs": {
|
|
15
|
+
"url": "https://github.com/egose/shadcn-theme/issues"
|
|
16
|
+
},
|
|
17
|
+
"license": "Apache-2.0",
|
|
18
|
+
"author": "Junmin Ahn",
|
|
5
19
|
"sideEffects": false,
|
|
20
|
+
"files": [
|
|
21
|
+
"components",
|
|
22
|
+
"hooks",
|
|
23
|
+
"utils",
|
|
24
|
+
"layouts",
|
|
25
|
+
"lib",
|
|
26
|
+
"*.mjs",
|
|
27
|
+
"*.js",
|
|
28
|
+
"README.md",
|
|
29
|
+
"LICENSE",
|
|
30
|
+
"llms.txt"
|
|
31
|
+
],
|
|
6
32
|
"repository": {
|
|
7
33
|
"type": "git",
|
|
8
|
-
"url": "https://github.com/egose/shadcn-theme"
|
|
34
|
+
"url": "https://github.com/egose/shadcn-theme",
|
|
35
|
+
"directory": "packages/react"
|
|
9
36
|
},
|
|
10
37
|
"dependencies": {
|
|
11
38
|
"@base-ui/react": "^1.3.0",
|
|
@@ -37,6 +64,59 @@
|
|
|
37
64
|
"engines": {
|
|
38
65
|
"node": ">=20"
|
|
39
66
|
},
|
|
67
|
+
"exports": {
|
|
68
|
+
"./components/ui/*": {
|
|
69
|
+
"types": "./components/ui/*.d.mts",
|
|
70
|
+
"import": "./components/ui/*.mjs",
|
|
71
|
+
"require": "./components/ui/*.js"
|
|
72
|
+
},
|
|
73
|
+
"./components/form/*": {
|
|
74
|
+
"types": "./components/form/*.d.mts",
|
|
75
|
+
"import": "./components/form/*.mjs",
|
|
76
|
+
"require": "./components/form/*.js"
|
|
77
|
+
},
|
|
78
|
+
"./components/widgets/dialog-manager": {
|
|
79
|
+
"types": "./components/widgets/dialog-manager/index.d.mts",
|
|
80
|
+
"import": "./components/widgets/dialog-manager/index.mjs",
|
|
81
|
+
"require": "./components/widgets/dialog-manager/index.js"
|
|
82
|
+
},
|
|
83
|
+
"./components/widgets/dialog-manager/*": {
|
|
84
|
+
"types": "./components/widgets/dialog-manager/*.d.mts",
|
|
85
|
+
"import": "./components/widgets/dialog-manager/*.mjs",
|
|
86
|
+
"require": "./components/widgets/dialog-manager/*.js"
|
|
87
|
+
},
|
|
88
|
+
"./hooks/*": {
|
|
89
|
+
"types": "./hooks/*.d.mts",
|
|
90
|
+
"import": "./hooks/*.mjs",
|
|
91
|
+
"require": "./hooks/*.js"
|
|
92
|
+
},
|
|
93
|
+
"./utils/*": {
|
|
94
|
+
"types": "./utils/*.d.mts",
|
|
95
|
+
"import": "./utils/*.mjs",
|
|
96
|
+
"require": "./utils/*.js"
|
|
97
|
+
},
|
|
98
|
+
"./layouts/simple": {
|
|
99
|
+
"types": "./layouts/simple/index.d.mts",
|
|
100
|
+
"import": "./layouts/simple/index.mjs",
|
|
101
|
+
"require": "./layouts/simple/index.js"
|
|
102
|
+
},
|
|
103
|
+
"./layouts/simple/*": {
|
|
104
|
+
"types": "./layouts/simple/*.d.mts",
|
|
105
|
+
"import": "./layouts/simple/*.mjs",
|
|
106
|
+
"require": "./layouts/simple/*.js"
|
|
107
|
+
},
|
|
108
|
+
"./layouts/sidebar1": {
|
|
109
|
+
"types": "./layouts/sidebar1/index.d.mts",
|
|
110
|
+
"import": "./layouts/sidebar1/index.mjs",
|
|
111
|
+
"require": "./layouts/sidebar1/index.js"
|
|
112
|
+
},
|
|
113
|
+
"./layouts/sidebar1/*": {
|
|
114
|
+
"types": "./layouts/sidebar1/*.d.mts",
|
|
115
|
+
"import": "./layouts/sidebar1/*.mjs",
|
|
116
|
+
"require": "./layouts/sidebar1/*.js"
|
|
117
|
+
},
|
|
118
|
+
"./package.json": "./package.json"
|
|
119
|
+
},
|
|
40
120
|
"name": "@egose/shadcn-theme",
|
|
41
121
|
"publishConfig": {
|
|
42
122
|
"access": "public"
|
package/utils/date.d.mts
CHANGED
|
@@ -1,4 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Compare two dates by value, treating `null` and `undefined` as equivalent.
|
|
3
|
+
* Returns true when both are nil or when both refer to the same calendar
|
|
4
|
+
* instant (date-fns `isEqual`).
|
|
5
|
+
*/
|
|
1
6
|
declare function isEqualDate(dt1: Date | undefined, dt2: Date | undefined): boolean;
|
|
7
|
+
/**
|
|
8
|
+
* Compare two date ranges (each expressed as `[start, end]`) for equality
|
|
9
|
+
* using {@link isEqualDate} on both ends. Useful for date-range picker state.
|
|
10
|
+
*/
|
|
2
11
|
declare function isEqualDates(dts1: [Date | undefined, Date | undefined], dts2: [Date | undefined, Date | undefined]): boolean;
|
|
3
12
|
|
|
4
13
|
export { isEqualDate, isEqualDates };
|
package/utils/date.d.ts
CHANGED
|
@@ -1,4 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Compare two dates by value, treating `null` and `undefined` as equivalent.
|
|
3
|
+
* Returns true when both are nil or when both refer to the same calendar
|
|
4
|
+
* instant (date-fns `isEqual`).
|
|
5
|
+
*/
|
|
1
6
|
declare function isEqualDate(dt1: Date | undefined, dt2: Date | undefined): boolean;
|
|
7
|
+
/**
|
|
8
|
+
* Compare two date ranges (each expressed as `[start, end]`) for equality
|
|
9
|
+
* using {@link isEqualDate} on both ends. Useful for date-range picker state.
|
|
10
|
+
*/
|
|
2
11
|
declare function isEqualDates(dts1: [Date | undefined, Date | undefined], dts2: [Date | undefined, Date | undefined]): boolean;
|
|
3
12
|
|
|
4
13
|
export { isEqualDate, isEqualDates };
|
package/utils/date.js
CHANGED
|
@@ -3,10 +3,10 @@
|
|
|
3
3
|
|
|
4
4
|
|
|
5
5
|
|
|
6
|
-
var
|
|
6
|
+
var _chunkC74J4JWAjs = require('../chunk-C74J4JWA.js');
|
|
7
7
|
require('../chunk-2NMEKWO5.js');
|
|
8
8
|
|
|
9
9
|
|
|
10
10
|
|
|
11
|
-
exports.isEqualDate =
|
|
11
|
+
exports.isEqualDate = _chunkC74J4JWAjs.isEqualDate; exports.isEqualDates = _chunkC74J4JWAjs.isEqualDates;
|
|
12
12
|
//# sourceMappingURL=date.js.map
|
package/utils/date.mjs
CHANGED
package/utils/time.d.mts
CHANGED
|
@@ -1,3 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Parse a human-readable duration string into hours.
|
|
3
|
+
*
|
|
4
|
+
* Accepts bare numbers (`"1.5"`), and strings with `h` / `m` / `s` suffixes
|
|
5
|
+
* (case-insensitive). Unparseable input returns `0`. Pass `asNumber: true`
|
|
6
|
+
* for a numeric return value; otherwise a string is returned (no trailing
|
|
7
|
+
* zeros).
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* convertToHours('90m') // '1.5'
|
|
11
|
+
* convertToHours('90m', true) // 1.5
|
|
12
|
+
*/
|
|
1
13
|
declare function convertToHours(value: string): string;
|
|
2
14
|
declare function convertToHours(value: string, asNumber: true): number;
|
|
3
15
|
declare function convertToHours(value: string, asNumber: false): string;
|
package/utils/time.d.ts
CHANGED
|
@@ -1,3 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Parse a human-readable duration string into hours.
|
|
3
|
+
*
|
|
4
|
+
* Accepts bare numbers (`"1.5"`), and strings with `h` / `m` / `s` suffixes
|
|
5
|
+
* (case-insensitive). Unparseable input returns `0`. Pass `asNumber: true`
|
|
6
|
+
* for a numeric return value; otherwise a string is returned (no trailing
|
|
7
|
+
* zeros).
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* convertToHours('90m') // '1.5'
|
|
11
|
+
* convertToHours('90m', true) // 1.5
|
|
12
|
+
*/
|
|
1
13
|
declare function convertToHours(value: string): string;
|
|
2
14
|
declare function convertToHours(value: string, asNumber: true): number;
|
|
3
15
|
declare function convertToHours(value: string, asNumber: false): string;
|
package/utils/time.js
CHANGED
|
@@ -4,11 +4,11 @@
|
|
|
4
4
|
|
|
5
5
|
|
|
6
6
|
|
|
7
|
-
var
|
|
7
|
+
var _chunkVRY6WSXJjs = require('../chunk-VRY6WSXJ.js');
|
|
8
8
|
require('../chunk-2NMEKWO5.js');
|
|
9
9
|
|
|
10
10
|
|
|
11
11
|
|
|
12
12
|
|
|
13
|
-
exports.convertFromHours =
|
|
13
|
+
exports.convertFromHours = _chunkVRY6WSXJjs.convertFromHours; exports.convertToHours = _chunkVRY6WSXJjs.convertToHours; exports.convertToWholeFromHours = _chunkVRY6WSXJjs.convertToWholeFromHours;
|
|
14
14
|
//# sourceMappingURL=time.js.map
|
package/utils/time.mjs
CHANGED
package/utils/ui.d.mts
CHANGED
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
import { ClassValue } from 'clsx';
|
|
2
2
|
|
|
3
|
+
/**
|
|
4
|
+
* Merge Tailwind CSS class names safely. Combines `clsx` (conditional classes)
|
|
5
|
+
* with `tailwind-merge` (de-duplicates conflicting Tailwind utilities, last
|
|
6
|
+
* one wins). Use this for every component's `className` / `classNames` prop.
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* cn('px-2 py-1', isActive && 'bg-primary', condition && 'hidden')
|
|
10
|
+
*/
|
|
3
11
|
declare function cn(...inputs: ClassValue[]): string;
|
|
4
12
|
|
|
5
13
|
export { cn };
|
package/utils/ui.d.ts
CHANGED
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
import { ClassValue } from 'clsx';
|
|
2
2
|
|
|
3
|
+
/**
|
|
4
|
+
* Merge Tailwind CSS class names safely. Combines `clsx` (conditional classes)
|
|
5
|
+
* with `tailwind-merge` (de-duplicates conflicting Tailwind utilities, last
|
|
6
|
+
* one wins). Use this for every component's `className` / `classNames` prop.
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* cn('px-2 py-1', isActive && 'bg-primary', condition && 'hidden')
|
|
10
|
+
*/
|
|
3
11
|
declare function cn(...inputs: ClassValue[]): string;
|
|
4
12
|
|
|
5
13
|
export { cn };
|
package/utils/ui.js
CHANGED
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
3
3
|
|
|
4
4
|
|
|
5
|
-
var
|
|
5
|
+
var _chunkNBQEF4JDjs = require('../chunk-NBQEF4JD.js');
|
|
6
6
|
require('../chunk-2NMEKWO5.js');
|
|
7
7
|
|
|
8
8
|
|
|
9
|
-
exports.cn =
|
|
9
|
+
exports.cn = _chunkNBQEF4JDjs.cn;
|
|
10
10
|
//# sourceMappingURL=ui.js.map
|
package/utils/ui.mjs
CHANGED
package/chunk-2NMEKWO5.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/jahn/projects/shadcn-theme/packages/react/dist/chunk-2NMEKWO5.js"],"names":[],"mappings":"AAAA,6EAAI,UAAU,EAAE,MAAM,CAAC,cAAc;AACrC,IAAI,WAAW,EAAE,MAAM,CAAC,gBAAgB;AACxC,IAAI,kBAAkB,EAAE,MAAM,CAAC,yBAAyB;AACxD,IAAI,oBAAoB,EAAE,MAAM,CAAC,qBAAqB;AACtD,IAAI,aAAa,EAAE,MAAM,CAAC,SAAS,CAAC,cAAc;AAClD,IAAI,aAAa,EAAE,MAAM,CAAC,SAAS,CAAC,oBAAoB;AACxD,IAAI,gBAAgB,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,IAAI,GAAG,IAAI,EAAE,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,EAAE,EAAE,KAAK;AAC/J,IAAI,eAAe,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG;AAC/B,EAAE,IAAI,CAAC,IAAI,KAAK,GAAG,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;AAChC,IAAI,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC;AAClC,MAAM,eAAe,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;AACvC,EAAE,GAAG,CAAC,mBAAmB;AACzB,IAAI,IAAI,CAAC,IAAI,KAAK,GAAG,mBAAmB,CAAC,CAAC,CAAC,EAAE;AAC7C,MAAM,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC;AACpC,QAAQ,eAAe,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;AACzC,IAAI;AACJ,EAAE,OAAO,CAAC;AACV,CAAC;AACD,IAAI,cAAc,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,UAAU,CAAC,CAAC,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC;AACjE,IAAI,UAAU,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG;AACrC,EAAE,IAAI,OAAO,EAAE,CAAC,CAAC;AACjB,EAAE,IAAI,CAAC,IAAI,KAAK,GAAG,MAAM;AACzB,IAAI,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;AACpE,MAAM,MAAM,CAAC,IAAI,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC;AACjC,EAAE,GAAG,CAAC,OAAO,GAAG,KAAK,GAAG,mBAAmB;AAC3C,IAAI,IAAI,CAAC,IAAI,KAAK,GAAG,mBAAmB,CAAC,MAAM,CAAC,EAAE;AAClD,MAAM,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,EAAE,GAAG,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC;AACtE,QAAQ,MAAM,CAAC,IAAI,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC;AACnC,IAAI;AACJ,EAAE,OAAO,MAAM;AACf,CAAC;AACD;AACA;AACE;AACA;AACA;AACF,8GAAC","file":"/home/jahn/projects/shadcn-theme/packages/react/dist/chunk-2NMEKWO5.js"}
|
package/chunk-2YMMYND2.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/jahn/projects/shadcn-theme/packages/react/dist/chunk-2YMMYND2.js","../components/ui/badge.tsx"],"names":[],"mappings":"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","file":"/home/jahn/projects/shadcn-theme/packages/react/dist/chunk-2YMMYND2.js","sourcesContent":[null,"\"use client\";\nimport * as React from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { Slot } from 'radix-ui';\nimport { cn } from '../../utils/ui';\n\nconst badgeVariants = cva(\n [\n '[&>svg]:pointer-events-none [&>svg]:size-3',\n 'aria-invalid:border-destructive',\n 'aria-invalid:ring-destructive/20',\n 'border',\n 'border-transparent',\n 'dark:aria-invalid:ring-destructive/40',\n 'focus-visible:border-ring',\n 'focus-visible:ring-[3px]',\n 'focus-visible:ring-ring/50',\n 'font-medium',\n 'gap-1',\n 'inline-flex',\n 'items-center',\n 'justify-center',\n 'overflow-hidden',\n 'px-2',\n 'py-0.5',\n 'rounded-sm',\n 'shrink-0',\n 'text-xs',\n 'transition-[color,box-shadow]',\n 'w-fit',\n 'whitespace-nowrap',\n 'transition-colors',\n ],\n {\n variants: {\n variant: {\n primary: 'bg-primary text-primary-foreground hover:bg-primary/90',\n secondary: 'bg-secondary text-secondary-foreground hover:bg-secondary/90',\n action: 'bg-action text-action-foreground hover:bg-action/90',\n success: 'bg-success text-success-foreground hover:bg-success/90',\n warning: 'bg-warning text-warning-foreground hover:bg-warning/90',\n danger: 'bg-danger text-danger-foreground hover:bg-danger/90',\n info: 'bg-info text-info-foreground hover:bg-info/90',\n light: 'bg-light text-light-foreground hover:bg-light/90',\n dark: 'bg-dark text-dark-foreground hover:bg-dark/90',\n accent: 'bg-accent text-accent-foreground hover:bg-accent/90',\n destructive: 'bg-destructive text-destructive-foreground hover:bg-destructive/90',\n muted: 'bg-muted text-muted-foreground hover:bg-muted/90',\n link: 'text-primary underline-offset-4 hover:underline',\n ghost: 'hover:bg-light hover:text-light-foreground',\n },\n size: {\n sm: 'h-5 px-2 text-xs',\n default: 'h-6 px-3 text-sm',\n lg: 'h-7 px-4 text-base',\n },\n appearance: {\n solid: '',\n outline: 'bg-background border',\n 'outline-filled': 'bg-background border',\n },\n },\n defaultVariants: {\n variant: 'primary',\n size: 'default',\n appearance: 'solid',\n },\n },\n);\n\nexport type BadgeVariant = NonNullable<VariantProps<typeof badgeVariants>['variant']>;\nexport type BadgeSize = NonNullable<VariantProps<typeof badgeVariants>['size']>;\nexport type BadgeAppearance = NonNullable<VariantProps<typeof badgeVariants>['appearance']>;\n\nexport interface BadgeProps extends React.HTMLAttributes<HTMLSpanElement>, VariantProps<typeof badgeVariants> {\n asChild?: boolean;\n}\n\nfunction getOutlineClasses(variant: BadgeVariant) {\n const colors: Record<BadgeVariant, string> = {\n primary: 'border-primary text-primary hover:bg-primary/10',\n secondary: 'border-secondary text-secondary hover:bg-secondary/10',\n action: 'border-action text-action hover:bg-action/10',\n success: 'border-success text-success hover:bg-success/10',\n warning: 'border-warning text-warning hover:bg-warning/10',\n danger: 'border-danger text-danger hover:bg-danger/10',\n info: 'border-info text-info hover:bg-info/10',\n light: 'border-light text-light-foreground hover:bg-light/10',\n dark: 'border-dark text-dark hover:bg-dark/10',\n accent: 'border-accent text-accent hover:bg-accent/10',\n destructive: 'border-destructive text-destructive hover:bg-destructive/10',\n muted: 'border-muted text-muted-foreground hover:bg-muted/10',\n link: 'text-primary',\n ghost: 'text-light-foreground',\n };\n return colors[variant];\n}\n\nfunction getOutlineFilledClasses(variant: BadgeVariant) {\n const colors: Record<BadgeVariant, string> = {\n primary: 'hover:bg-primary hover:text-primary-foreground',\n secondary: 'hover:bg-secondary hover:text-secondary-foreground',\n action: 'hover:bg-action hover:text-action-foreground',\n success: 'hover:bg-success hover:text-success-foreground',\n warning: 'hover:bg-warning hover:text-warning-foreground',\n danger: 'hover:bg-danger hover:text-danger-foreground',\n info: 'hover:bg-info hover:text-info-foreground',\n light: 'hover:bg-light hover:text-light-foreground',\n dark: 'hover:bg-dark hover:text-dark-foreground',\n accent: 'hover:bg-accent hover:text-accent-foreground',\n destructive: 'hover:bg-destructive hover:text-destructive-foreground',\n muted: 'hover:bg-muted hover:text-muted-foreground',\n link: 'hover:underline',\n ghost: 'hover:bg-light',\n };\n return colors[variant];\n}\n\nfunction Badge({\n className,\n variant,\n size,\n appearance,\n asChild = false,\n ...props\n}: React.ComponentProps<'span'> & VariantProps<typeof badgeVariants> & { asChild?: boolean }) {\n const Comp = asChild ? Slot.Root : 'span';\n\n const outlineClasses =\n appearance === 'outline' || appearance === 'outline-filled' ? [getOutlineClasses(variant as BadgeVariant)] : [];\n if (appearance === 'outline-filled') {\n outlineClasses.push(getOutlineFilledClasses(variant as BadgeVariant));\n }\n\n return (\n <Comp\n data-slot=\"badge\"\n data-variant={variant}\n className={cn(badgeVariants({ variant, size, appearance }), className, outlineClasses)}\n {...props}\n />\n );\n}\nexport { Badge, badgeVariants };\n"]}
|
package/chunk-3GHC4JQU.mjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../components/ui/spinner.tsx"],"sourcesContent":["\"use client\";\nimport * as React from 'react';\nimport { cn } from '../../utils/ui';\nimport { VariantProps, cva } from 'class-variance-authority';\nimport { Loader2 } from 'lucide-react';\n\nconst spinnerVariants = cva('flex-col items-center justify-center', {\n variants: {\n show: {\n true: 'flex',\n false: 'hidden',\n },\n },\n defaultVariants: {\n show: true,\n },\n});\n\nconst loaderVariants = cva('animate-spin text-primary', {\n variants: {\n size: {\n small: 'size-6',\n medium: 'size-8',\n large: 'size-12',\n },\n },\n defaultVariants: {\n size: 'medium',\n },\n});\n\ninterface SpinnerContentProps extends VariantProps<typeof spinnerVariants>, VariantProps<typeof loaderVariants> {\n className?: string;\n children?: React.ReactNode;\n}\n\nexport function Spinner({ size, show, children, className }: SpinnerContentProps) {\n return (\n <span className={spinnerVariants({ show })}>\n <Loader2 role=\"status\" aria-label=\"Loading\" className={cn(loaderVariants({ size }), className)} />\n {children}\n </span>\n );\n}\n\nSpinner.displayName = 'Spinner';\n"],"mappings":";;;;;AACA,YAAY,WAAW;AAEvB,SAAuB,WAAW;AAClC,SAAS,eAAe;AAExB,IAAM,kBAAkB,IAAI,wCAAwC;AAAA,EAClE,UAAU;AAAA,IACR,MAAM;AAAA,MACJ,MAAM;AAAA,MACN,OAAO;AAAA,IACT;AAAA,EACF;AAAA,EACA,iBAAiB;AAAA,IACf,MAAM;AAAA,EACR;AACF,CAAC;AAED,IAAM,iBAAiB,IAAI,6BAA6B;AAAA,EACtD,UAAU;AAAA,IACR,MAAM;AAAA,MACJ,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,OAAO;AAAA,IACT;AAAA,EACF;AAAA,EACA,iBAAiB;AAAA,IACf,MAAM;AAAA,EACR;AACF,CAAC;AAOM,SAAS,QAAQ,EAAE,MAAM,MAAM,UAAU,UAAU,GAAwB;AAChF,SACE,oCAAC,UAAK,WAAW,gBAAgB,EAAE,KAAK,CAAC,KACvC,oCAAC,WAAQ,MAAK,UAAS,cAAW,WAAU,WAAW,GAAG,eAAe,EAAE,KAAK,CAAC,GAAG,SAAS,GAAG,GAC/F,QACH;AAEJ;AAEA,QAAQ,cAAc;","names":[]}
|
package/chunk-3HZTA2ZQ.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/jahn/projects/shadcn-theme/packages/react/dist/chunk-3HZTA2ZQ.js","../components/ui/select.tsx"],"names":[],"mappings":"AAAA;AACE;AACF,sDAA4B;AAC5B;AACE;AACA;AACF,sDAA4B;AAC5B;AACA;ACPA,2EAAuB;AACvB,mCAA0C;AAG1C,2CAA0D;AAE1D,SAAS,MAAA,CAAO,EAAA,EAAiE;AAAjE,EAAA,IAAK,MAAA,EAAA,wCAAA,EAAL,EAAK,CAAA,CAAA,CAAA;AACnB,EAAA,uBAAO,KAAA,CAAA,aAAA,CAAC,eAAA,CAAgB,IAAA,EAAhB,6CAAA,EAAqB,WAAA,EAAU,SAAA,CAAA,EAAa,KAAA,CAAO,CAAA;AAC7D;AAEA,SAAS,WAAA,CAAY,EAAA,EAA6E;AAA7E,EAAA,IAAA,GAAA,EAAA,EAAA,EAAE,EAAA,UAXvB,EAAA,EAWqB,EAAA,EAAgB,MAAA,EAAA,wCAAA,EAAhB,EAAgB,CAAd,WAAA,CAAA,CAAA;AACrB,EAAA,uBAAO,KAAA,CAAA,aAAA,CAAC,eAAA,CAAgB,KAAA,EAAhB,6CAAA,EAAsB,WAAA,EAAU,cAAA,EAAe,SAAA,EAAW,iCAAA,iBAAG,EAAmB,SAAS,EAAA,CAAA,EAAO,KAAA,CAAO,CAAA;AACjH;AAEA,SAAS,WAAA,CAAY,EAAA,EAAkE;AAAlE,EAAA,IAAK,MAAA,EAAA,wCAAA,EAAL,EAAK,CAAA,CAAA,CAAA;AACxB,EAAA,uBAAO,KAAA,CAAA,aAAA,CAAC,eAAA,CAAgB,KAAA,EAAhB,6CAAA,EAAsB,WAAA,EAAU,eAAA,CAAA,EAAmB,KAAA,CAAO,CAAA;AACpE;AAEA,SAAS,aAAA,CAAc,EAAA,EAOpB;AAPoB,EAAA,IAAA,GAAA,EAAA,EAAA,EACrB;AAAA,IAAA,SAAA;AAAA,IACA,KAAA,EAAO,SAAA;AAAA,IACP;AAAA,EAtBF,EAAA,EAmBuB,EAAA,EAIlB,MAAA,EAAA,wCAAA,EAJkB,EAIlB;AAAA,IAHH,WAAA;AAAA,IACA,MAAA;AAAA,IACA;AAAA,EAAA,CAAA,CAAA;AAKA,EAAA,uBACE,KAAA,CAAA,aAAA;AAAA,IAAC,eAAA,CAAgB,OAAA;AAAA,IAAhB,6CAAA;AAAA,MACC,WAAA,EAAU,gBAAA;AAAA,MACV,WAAA,EAAW,IAAA;AAAA,MACX,SAAA,EAAW,iCAAA;AAAA,QACT,s2BAAA;AAAA,QACA;AAAA,MACF;AAAA,IAAA,CAAA,EACI,KAAA,CAAA;AAAA,IAEH,QAAA;AAAA,oBACD,KAAA,CAAA,aAAA,CAAC,eAAA,CAAgB,IAAA,EAAhB,EAAqB,OAAA,EAAO,KAAA,CAAA,kBAC3B,KAAA,CAAA,aAAA,CAAC,4BAAA,EAAA,EAAgB,SAAA,EAAU,mDAAA,CAAmD,CAChF;AAAA,EACF,CAAA;AAEJ;AAEA,SAAS,aAAA,CAAc,EAAA,EAMkC;AANlC,EAAA,IAAA,GAAA,EAAA,EAAA,EACrB;AAAA,IAAA,SAAA;AAAA,IACA,QAAA;AAAA,IACA,SAAA,EAAW,cAAA;AAAA,IACX,MAAA,EAAQ;AAAA,EAjDV,EAAA,EA6CuB,EAAA,EAKlB,MAAA,EAAA,wCAAA,EALkB,EAKlB;AAAA,IAJH,WAAA;AAAA,IACA,UAAA;AAAA,IACA,UAAA;AAAA,IACA;AAAA,EAAA,CAAA,CAAA;AAGA,EAAA,uBACE,KAAA,CAAA,aAAA,CAAC,eAAA,CAAgB,MAAA,EAAhB,IAAA,kBACC,KAAA,CAAA,aAAA;AAAA,IAAC,eAAA,CAAgB,OAAA;AAAA,IAAhB,6CAAA;AAAA,MACC,WAAA,EAAU,gBAAA;AAAA,MACV,oBAAA,EAAoB,SAAA,IAAa,cAAA;AAAA,MACjC,SAAA,EAAW,iCAAA;AAAA,QACT,kkBAAA;AAAA,QACA,SAAA,IAAa,SAAA,GACX,iIAAA;AAAA,QACF;AAAA,MACF,CAAA;AAAA,MACA,QAAA;AAAA,MACA;AAAA,IAAA,CAAA,EACI,KAAA,CAAA;AAAA,oBAEJ,KAAA,CAAA,aAAA,CAAC,oBAAA,EAAA,IAAqB,CAAA;AAAA,oBACtB,KAAA,CAAA,aAAA;AAAA,MAAC,eAAA,CAAgB,QAAA;AAAA,MAAhB;AAAA,QACC,eAAA,EAAe,QAAA;AAAA,QACf,SAAA,EAAW,iCAAA;AAAA,UACT,oJAAA;AAAA,UACA,SAAA,IAAa,SAAA,GAAY;AAAA,QAC3B;AAAA,MAAA,CAAA;AAAA,MAEC;AAAA,IACH,CAAA;AAAA,oBACA,KAAA,CAAA,aAAA,CAAC,sBAAA,EAAA,IAAuB;AAAA,EAC1B,CACF,CAAA;AAEJ;AAEA,SAAS,WAAA,CAAY,EAAA,EAA6E;AAA7E,EAAA,IAAA,GAAA,EAAA,EAAA,EAAE,EAAA,UAnFvB,EAAA,EAmFqB,EAAA,EAAgB,MAAA,EAAA,wCAAA,EAAhB,EAAgB,CAAd,WAAA,CAAA,CAAA;AACrB,EAAA,uBACE,KAAA,CAAA,aAAA;AAAA,IAAC,eAAA,CAAgB,KAAA;AAAA,IAAhB,6CAAA;AAAA,MACC,WAAA,EAAU,cAAA;AAAA,MACV,SAAA,EAAW,iCAAA,2CAAG,EAA6C,SAAS;AAAA,IAAA,CAAA,EAChE,KAAA;AAAA,EACN,CAAA;AAEJ;AAEA,SAAS,UAAA,CAAW,EAAA,EAAsF;AAAtF,EAAA,IAAA,GAAA,EAAA,EAAA,EAAE,EAAA,SAAA,EAAW,SA7FjC,EAAA,EA6FoB,EAAA,EAA0B,MAAA,EAAA,wCAAA,EAA1B,EAA0B,CAAxB,WAAA,EAAW,UAAA,CAAA,CAAA;AAC/B,EAAA,uBACE,KAAA,CAAA,aAAA;AAAA,IAAC,eAAA,CAAgB,IAAA;AAAA,IAAhB,6CAAA;AAAA,MACC,WAAA,EAAU,aAAA;AAAA,MACV,SAAA,EAAW,iCAAA;AAAA,QACT,obAAA;AAAA,QACA;AAAA,MACF;AAAA,IAAA,CAAA,EACI,KAAA,CAAA;AAAA,oBAEJ,KAAA,CAAA,aAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,+EAAA,CAAA,kBACd,KAAA,CAAA,aAAA,CAAC,eAAA,CAAgB,aAAA,EAAhB,IAAA,kBACC,KAAA,CAAA,aAAA,CAAC,sBAAA,EAAA,EAAU,SAAA,EAAU,sBAAA,CAAsB,CAC7C,CACF,CAAA;AAAA,oBACA,KAAA,CAAA,aAAA,CAAC,eAAA,CAAgB,QAAA,EAAhB,IAAA,EAA0B,QAAS;AAAA,EACtC,CAAA;AAEJ;AAEA,SAAS,eAAA,CAAgB,EAAA,EAAiF;AAAjF,EAAA,IAAA,GAAA,EAAA,EAAA,EAAE,EAAA,UAjH3B,EAAA,EAiHyB,EAAA,EAAgB,MAAA,EAAA,wCAAA,EAAhB,EAAgB,CAAd,WAAA,CAAA,CAAA;AACzB,EAAA,uBACE,KAAA,CAAA,aAAA;AAAA,IAAC,eAAA,CAAgB,SAAA;AAAA,IAAhB,6CAAA;AAAA,MACC,WAAA,EAAU,kBAAA;AAAA,MACV,SAAA,EAAW,iCAAA,+CAAG,EAAiD,SAAS;AAAA,IAAA,CAAA,EACpE,KAAA;AAAA,EACN,CAAA;AAEJ;AAEA,SAAS,oBAAA,CAAqB,EAAA,EAAsF;AAAtF,EAAA,IAAA,GAAA,EAAA,EAAA,EAAE,EAAA,UA3HhC,EAAA,EA2H8B,EAAA,EAAgB,MAAA,EAAA,wCAAA,EAAhB,EAAgB,CAAd,WAAA,CAAA,CAAA;AAC9B,EAAA,uBACE,KAAA,CAAA,aAAA;AAAA,IAAC,eAAA,CAAgB,cAAA;AAAA,IAAhB,6CAAA;AAAA,MACC,WAAA,EAAU,yBAAA;AAAA,MACV,SAAA,EAAW,iCAAA;AAAA,QACT,2GAAA;AAAA,QACA;AAAA,MACF;AAAA,IAAA,CAAA,EACI,KAAA,CAAA;AAAA,oBAEJ,KAAA,CAAA,aAAA,CAAC,0BAAA,EAAA,IAAc;AAAA,EACjB,CAAA;AAEJ;AAEA,SAAS,sBAAA,CAAuB,EAAA,EAGkC;AAHlC,EAAA,IAAA,GAAA,EAAA,EAAA,EAC9B;AAAA,IAAA;AAAA,EA3IF,EAAA,EA0IgC,EAAA,EAE3B,MAAA,EAAA,wCAAA,EAF2B,EAE3B;AAAA,IADH;AAAA,EAAA,CAAA,CAAA;AAGA,EAAA,uBACE,KAAA,CAAA,aAAA;AAAA,IAAC,eAAA,CAAgB,gBAAA;AAAA,IAAhB,6CAAA;AAAA,MACC,WAAA,EAAU,2BAAA;AAAA,MACV,SAAA,EAAW,iCAAA;AAAA,QACT,2GAAA;AAAA,QACA;AAAA,MACF;AAAA,IAAA,CAAA,EACI,KAAA,CAAA;AAAA,oBAEJ,KAAA,CAAA,aAAA,CAAC,4BAAA,EAAA,IAAgB;AAAA,EACnB,CAAA;AAEJ;ADCA;AACA;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,yYAAC","file":"/home/jahn/projects/shadcn-theme/packages/react/dist/chunk-3HZTA2ZQ.js","sourcesContent":[null,"\"use client\";\nimport * as React from 'react';\nimport { Select as SelectPrimitive } from 'radix-ui';\n\nimport { cn } from '../../utils/ui';\nimport { ChevronDownIcon, CheckIcon, ChevronUpIcon } from 'lucide-react';\n\nfunction Select({ ...props }: React.ComponentProps<typeof SelectPrimitive.Root>) {\n return <SelectPrimitive.Root data-slot=\"select\" {...props} />;\n}\n\nfunction SelectGroup({ className, ...props }: React.ComponentProps<typeof SelectPrimitive.Group>) {\n return <SelectPrimitive.Group data-slot=\"select-group\" className={cn('scroll-my-1 p-1', className)} {...props} />;\n}\n\nfunction SelectValue({ ...props }: React.ComponentProps<typeof SelectPrimitive.Value>) {\n return <SelectPrimitive.Value data-slot=\"select-value\" {...props} />;\n}\n\nfunction SelectTrigger({\n className,\n size = 'default',\n children,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Trigger> & {\n size?: 'sm' | 'default';\n}) {\n return (\n <SelectPrimitive.Trigger\n data-slot=\"select-trigger\"\n data-size={size}\n className={cn(\n \"border-input data-placeholder:text-muted-foreground dark:bg-input/30 dark:hover:bg-input/50 focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:aria-invalid:border-destructive/50 gap-1.5 rounded-sm border bg-transparent py-2 pr-2 pl-2.5 text-sm transition-colors select-none focus-visible:ring-3 aria-invalid:ring-3 data-[size=default]:h-8 data-[size=sm]:h-7 data-[size=sm]:rounded-[min(var(--radius-md),10px)] *:data-[slot=select-value]:gap-1.5 [&_svg:not([class*='size-'])]:size-4 flex w-full items-center justify-between whitespace-nowrap outline-none disabled:cursor-not-allowed disabled:opacity-50 *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center [&_svg]:pointer-events-none [&_svg]:shrink-0\",\n className,\n )}\n {...props}\n >\n {children}\n <SelectPrimitive.Icon asChild>\n <ChevronDownIcon className=\"text-muted-foreground size-4 pointer-events-none\" />\n </SelectPrimitive.Icon>\n </SelectPrimitive.Trigger>\n );\n}\n\nfunction SelectContent({\n className,\n children,\n position = 'item-aligned',\n align = 'center',\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Content>) {\n return (\n <SelectPrimitive.Portal>\n <SelectPrimitive.Content\n data-slot=\"select-content\"\n data-align-trigger={position === 'item-aligned'}\n className={cn(\n 'bg-popover text-popover-foreground data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-open:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 ring-foreground/10 min-w-36 rounded-sm shadow-md ring-1 duration-100 relative z-50 max-h-(--radix-select-content-available-height) origin-(--radix-select-content-transform-origin) overflow-x-hidden overflow-y-auto data-[align-trigger=true]:animate-none',\n position === 'popper' &&\n 'data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1',\n className,\n )}\n position={position}\n align={align}\n {...props}\n >\n <SelectScrollUpButton />\n <SelectPrimitive.Viewport\n data-position={position}\n className={cn(\n 'data-[position=popper]:h-(--radix-select-trigger-height) data-[position=popper]:w-full data-[position=popper]:min-w-(--radix-select-trigger-width)',\n position === 'popper' && '',\n )}\n >\n {children}\n </SelectPrimitive.Viewport>\n <SelectScrollDownButton />\n </SelectPrimitive.Content>\n </SelectPrimitive.Portal>\n );\n}\n\nfunction SelectLabel({ className, ...props }: React.ComponentProps<typeof SelectPrimitive.Label>) {\n return (\n <SelectPrimitive.Label\n data-slot=\"select-label\"\n className={cn('text-muted-foreground px-1.5 py-1 text-xs', className)}\n {...props}\n />\n );\n}\n\nfunction SelectItem({ className, children, ...props }: React.ComponentProps<typeof SelectPrimitive.Item>) {\n return (\n <SelectPrimitive.Item\n data-slot=\"select-item\"\n className={cn(\n \"focus:bg-accent focus:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground gap-1.5 rounded-sm py-1 pr-8 pl-1.5 text-sm [&_svg:not([class*='size-'])]:size-4 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2 relative flex w-full cursor-default items-center outline-hidden select-none data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0\",\n className,\n )}\n {...props}\n >\n <span className=\"pointer-events-none absolute right-2 flex size-4 items-center justify-center\">\n <SelectPrimitive.ItemIndicator>\n <CheckIcon className=\"pointer-events-none\" />\n </SelectPrimitive.ItemIndicator>\n </span>\n <SelectPrimitive.ItemText>{children}</SelectPrimitive.ItemText>\n </SelectPrimitive.Item>\n );\n}\n\nfunction SelectSeparator({ className, ...props }: React.ComponentProps<typeof SelectPrimitive.Separator>) {\n return (\n <SelectPrimitive.Separator\n data-slot=\"select-separator\"\n className={cn('bg-border -mx-1 my-1 h-px pointer-events-none', className)}\n {...props}\n />\n );\n}\n\nfunction SelectScrollUpButton({ className, ...props }: React.ComponentProps<typeof SelectPrimitive.ScrollUpButton>) {\n return (\n <SelectPrimitive.ScrollUpButton\n data-slot=\"select-scroll-up-button\"\n className={cn(\n \"bg-popover z-10 flex cursor-default items-center justify-center py-1 [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n {...props}\n >\n <ChevronUpIcon />\n </SelectPrimitive.ScrollUpButton>\n );\n}\n\nfunction SelectScrollDownButton({\n className,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.ScrollDownButton>) {\n return (\n <SelectPrimitive.ScrollDownButton\n data-slot=\"select-scroll-down-button\"\n className={cn(\n \"bg-popover z-10 flex cursor-default items-center justify-center py-1 [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n {...props}\n >\n <ChevronDownIcon />\n </SelectPrimitive.ScrollDownButton>\n );\n}\n\nexport {\n Select,\n SelectContent,\n SelectGroup,\n SelectItem,\n SelectLabel,\n SelectScrollDownButton,\n SelectScrollUpButton,\n SelectSeparator,\n SelectTrigger,\n SelectValue,\n};\n"]}
|
package/chunk-4BKWF5FK.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/jahn/projects/shadcn-theme/packages/react/dist/chunk-4BKWF5FK.js","../components/form/select.tsx"],"names":["_a"],"mappings":"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","file":"/home/jahn/projects/shadcn-theme/packages/react/dist/chunk-4BKWF5FK.js","sourcesContent":[null,"\"use client\";\nimport React from 'react';\nimport _kebabCase from 'lodash-es/kebabCase';\nimport _isString from 'lodash-es/isString';\nimport { cn } from '../../utils/ui';\nimport { Label } from '../ui/label';\nimport { Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectTrigger, SelectValue } from '../ui/select';\n\nexport interface SelectOption {\n label: string;\n value: string;\n}\n\nfunction listToSelectOptions(items: string[]) {\n return items.map((item) => {\n return { label: item, value: item };\n });\n}\n\nexport interface FormSelectProps {\n id?: string;\n name: string;\n label?: string;\n placeholder?: string;\n data: SelectOption[] | string[];\n defaultValue?: string;\n value?: string;\n onChange: (value?: string) => void;\n classNames?: {\n wrapper?: string;\n label?: string;\n input?: string;\n };\n required?: boolean;\n disabled?: boolean;\n}\n\nexport function FormSelect({\n id,\n name,\n label,\n placeholder = '',\n data,\n defaultValue,\n value,\n onChange,\n classNames,\n required,\n disabled,\n ...rest\n}: FormSelectProps) {\n let _options: SelectOption[] = [];\n if (data.length > 0) {\n if (_isString(data[0])) {\n _options = listToSelectOptions(data as string[]);\n } else {\n _options = data as SelectOption[];\n }\n }\n\n if (!id) id = _kebabCase(name);\n\n return (\n <div className={cn('$form-select space-y-1', classNames?.wrapper)}>\n {label && (\n <Label htmlFor={id} className={classNames?.label} required={required}>\n {label}\n </Label>\n )}\n\n <Select onValueChange={onChange} defaultValue={defaultValue ?? value ?? ''} value={value}>\n <SelectTrigger className=\"mb-0\">\n <SelectValue placeholder={placeholder} />\n </SelectTrigger>\n\n <SelectContent className={cn(classNames?.input)}>\n {_options.map((option, index) => {\n return (\n <SelectItem key={option.value} value={option.value}>\n {option.label}\n </SelectItem>\n );\n })}\n </SelectContent>\n </Select>\n </div>\n );\n}\n"]}
|