@kamod-ch/ui 1.1.0 → 1.3.0
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.md +9 -0
- package/README.md +12 -0
- package/dist/{Accordion-D1PiNspd.d.ts → Accordion-BiCBkB8o.d.ts} +7 -1
- package/dist/{AlertDialog-GadhKjPC.d.ts → AlertDialog-CZ2taZg4.d.ts} +3 -3
- package/dist/Button-OI3VvO-J.d.ts +84 -0
- package/dist/{Collapsible-CW1hQwqV.d.ts → Collapsible-BdQqvk35.d.ts} +6 -1
- package/dist/{ComboboxValue-BGfXgtZt.d.ts → ComboboxValue-Cq6zoDkt.d.ts} +1 -1
- package/dist/{Dialog-BOIteLfe.d.ts → Dialog-DdD1sMwk.d.ts} +12 -1
- package/dist/{DialogContent-cQHSRQdT.d.ts → DialogContent-YWzwWdSv.d.ts} +6 -1
- package/dist/{Drawer-CdjXZxxK.d.ts → Drawer-8xfn9KLf.d.ts} +2 -2
- package/dist/{Dropdown-CVbWVKok.d.ts → Dropdown-CzDJJgXQ.d.ts} +32 -27
- package/dist/{FieldTitle-aSgThW-B.d.ts → FieldTitle-hsI0Y6Zm.d.ts} +13 -13
- package/dist/{HoverCard-aVEEtkyO.d.ts → HoverCard-CBBr-tT9.d.ts} +14 -14
- package/dist/{Input-Cem05el9.d.ts → Input-C_X0Xpn2.d.ts} +11 -11
- package/dist/{PopoverTrigger-CH_Kx2mn.d.ts → PopoverTrigger-CIPAh0h0.d.ts} +14 -14
- package/dist/{RadioGroup-BaElzLwa.d.ts → RadioGroup-BDF3NaXQ.d.ts} +8 -8
- package/dist/{Sheet-DZ-p-aHY.d.ts → Sheet-DVt5iTiK.d.ts} +1 -1
- package/dist/{SidebarProvider-Bx7-BdQn.d.ts → SidebarProvider-CoVCItNd.d.ts} +18 -18
- package/dist/{Switch-CTTkNdqF.d.ts → Switch-BcNJFeRY.d.ts} +8 -8
- package/dist/{Tabs-CR-thcs6.d.ts → Tabs-CrXH3YED.d.ts} +18 -9
- package/dist/{Textarea-DbKkduOG.d.ts → Textarea-CST17pYW.d.ts} +11 -11
- package/dist/Toggle-BgvkYUI8.d.ts +49 -0
- package/dist/{ToggleGroup-UeYHzQe7.d.ts → ToggleGroup-CqYICGsS.d.ts} +42 -42
- package/dist/TreeProvider-Cpu8yo3y.d.ts +270 -0
- package/dist/Typography-Df9IVmw2.d.ts +64 -0
- package/dist/{chunk-ZM67EKZC.js → chunk-22G3DW5M.js} +4 -4
- package/dist/{chunk-ZM67EKZC.js.map → chunk-22G3DW5M.js.map} +1 -1
- package/dist/{chunk-BDK7CDEI.js → chunk-2F3PWEDR.js} +3 -3
- package/dist/{chunk-BDK7CDEI.js.map → chunk-2F3PWEDR.js.map} +1 -1
- package/dist/{chunk-ZHAGKFSO.js → chunk-2SPOI3MX.js} +3 -3
- package/dist/{chunk-ZHAGKFSO.js.map → chunk-2SPOI3MX.js.map} +1 -1
- package/dist/chunk-2UTJHQTS.js +162 -0
- package/dist/chunk-2UTJHQTS.js.map +1 -0
- package/dist/{chunk-NKKMM6CK.js → chunk-3AFRSB5R.js} +3 -3
- package/dist/{chunk-NKKMM6CK.js.map → chunk-3AFRSB5R.js.map} +1 -1
- package/dist/{chunk-LCMPFPBN.js → chunk-3ETRJPBL.js} +3 -3
- package/dist/{chunk-LCMPFPBN.js.map → chunk-3ETRJPBL.js.map} +1 -1
- package/dist/{chunk-WAPRVVDQ.js → chunk-3HBKDY64.js} +3 -3
- package/dist/{chunk-WAPRVVDQ.js.map → chunk-3HBKDY64.js.map} +1 -1
- package/dist/{chunk-PPYJQNE5.js → chunk-3XMFQKWB.js} +9 -5
- package/dist/chunk-3XMFQKWB.js.map +1 -0
- package/dist/{chunk-HCTZJYHK.js → chunk-4SQKSVBH.js} +6 -6
- package/dist/chunk-4SQKSVBH.js.map +1 -0
- package/dist/{chunk-ZVAW22GX.js → chunk-4ZFKDNSK.js} +3 -3
- package/dist/{chunk-ZVAW22GX.js.map → chunk-4ZFKDNSK.js.map} +1 -1
- package/dist/{chunk-IJ4ZRIR4.js → chunk-53FZEAOJ.js} +5 -5
- package/dist/{chunk-IJ4ZRIR4.js.map → chunk-53FZEAOJ.js.map} +1 -1
- package/dist/{chunk-BYG2ULS3.js → chunk-5ATODZ6L.js} +5 -7
- package/dist/chunk-5ATODZ6L.js.map +1 -0
- package/dist/{chunk-TXKPDNRD.js → chunk-5I7ULBDP.js} +3 -3
- package/dist/{chunk-TXKPDNRD.js.map → chunk-5I7ULBDP.js.map} +1 -1
- package/dist/{chunk-UEXTD7ZB.js → chunk-6HFTTHSY.js} +3 -3
- package/dist/{chunk-UEXTD7ZB.js.map → chunk-6HFTTHSY.js.map} +1 -1
- package/dist/{chunk-6RASPU5N.js → chunk-7LWAWZHM.js} +4 -11
- package/dist/chunk-7LWAWZHM.js.map +1 -0
- package/dist/{chunk-RHNI5UQO.js → chunk-A6ZZZFZN.js} +4 -4
- package/dist/{chunk-RHNI5UQO.js.map → chunk-A6ZZZFZN.js.map} +1 -1
- package/dist/{chunk-V63YIVKJ.js → chunk-APZXMU2X.js} +4 -4
- package/dist/{chunk-V63YIVKJ.js.map → chunk-APZXMU2X.js.map} +1 -1
- package/dist/{chunk-6FYSVMH7.js → chunk-AYLEWD77.js} +3 -3
- package/dist/{chunk-6FYSVMH7.js.map → chunk-AYLEWD77.js.map} +1 -1
- package/dist/{chunk-D3DQ4ICC.js → chunk-BZMD4EZC.js} +4 -11
- package/dist/chunk-BZMD4EZC.js.map +1 -0
- package/dist/{chunk-PU5J5EPY.js → chunk-C7TARE5T.js} +5 -5
- package/dist/{chunk-PU5J5EPY.js.map → chunk-C7TARE5T.js.map} +1 -1
- package/dist/{chunk-5FBD2NTR.js → chunk-DDRX6NNW.js} +6 -9
- package/dist/chunk-DDRX6NNW.js.map +1 -0
- package/dist/{chunk-HHLQYMPT.js → chunk-DUTKHOH3.js} +4 -4
- package/dist/{chunk-HHLQYMPT.js.map → chunk-DUTKHOH3.js.map} +1 -1
- package/dist/{chunk-24QD2FTA.js → chunk-EBXTNL52.js} +12 -15
- package/dist/chunk-EBXTNL52.js.map +1 -0
- package/dist/{chunk-STRBBF45.js → chunk-FOQ32NEP.js} +5 -5
- package/dist/chunk-FOQ32NEP.js.map +1 -0
- package/dist/{chunk-UIA74JVN.js → chunk-FXG53XY2.js} +5 -5
- package/dist/chunk-FXG53XY2.js.map +1 -0
- package/dist/{chunk-2KY7P27I.js → chunk-G7LTWXRN.js} +3 -3
- package/dist/{chunk-2KY7P27I.js.map → chunk-G7LTWXRN.js.map} +1 -1
- package/dist/{chunk-6BK3PIRX.js → chunk-GD3VBO44.js} +6 -6
- package/dist/{chunk-6BK3PIRX.js.map → chunk-GD3VBO44.js.map} +1 -1
- package/dist/{chunk-MD6HHORY.js → chunk-GPRE2VWB.js} +3 -3
- package/dist/{chunk-MD6HHORY.js.map → chunk-GPRE2VWB.js.map} +1 -1
- package/dist/{chunk-QZX3RFIC.js → chunk-HJF5AV4L.js} +11 -34
- package/dist/chunk-HJF5AV4L.js.map +1 -0
- package/dist/{chunk-QFDTG2ZJ.js → chunk-HWPROYKB.js} +3 -3
- package/dist/{chunk-QFDTG2ZJ.js.map → chunk-HWPROYKB.js.map} +1 -1
- package/dist/chunk-ISISDJ3Z.js +205 -0
- package/dist/chunk-ISISDJ3Z.js.map +1 -0
- package/dist/{chunk-3LIT5GWF.js → chunk-IW43BO47.js} +57 -19
- package/dist/chunk-IW43BO47.js.map +1 -0
- package/dist/{chunk-CLEC2RMU.js → chunk-JKEILBHG.js} +3 -3
- package/dist/{chunk-CLEC2RMU.js.map → chunk-JKEILBHG.js.map} +1 -1
- package/dist/{chunk-TFLSEEM4.js → chunk-KCN3GXRK.js} +3 -3
- package/dist/{chunk-TFLSEEM4.js.map → chunk-KCN3GXRK.js.map} +1 -1
- package/dist/{chunk-EMUPVA2F.js → chunk-KHV3WV6T.js} +4 -4
- package/dist/{chunk-EMUPVA2F.js.map → chunk-KHV3WV6T.js.map} +1 -1
- package/dist/{chunk-G6TV6TF7.js → chunk-KJ5PYCJG.js} +4 -12
- package/dist/chunk-KJ5PYCJG.js.map +1 -0
- package/dist/{chunk-5KS2VSX2.js → chunk-LAM4GIME.js} +4 -4
- package/dist/chunk-LAM4GIME.js.map +1 -0
- package/dist/{chunk-OCLVMKVC.js → chunk-MDXTENZ4.js} +8 -31
- package/dist/chunk-MDXTENZ4.js.map +1 -0
- package/dist/{chunk-CP55TVOV.js → chunk-MJUKNUFV.js} +3 -3
- package/dist/{chunk-CP55TVOV.js.map → chunk-MJUKNUFV.js.map} +1 -1
- package/dist/{chunk-GGTDJEE2.js → chunk-MTNLY7AY.js} +3 -3
- package/dist/{chunk-GGTDJEE2.js.map → chunk-MTNLY7AY.js.map} +1 -1
- package/dist/{chunk-67J4KBOW.js → chunk-NBIBBLP6.js} +10 -52
- package/dist/chunk-NBIBBLP6.js.map +1 -0
- package/dist/chunk-NBP4J2QF.js +200 -0
- package/dist/chunk-NBP4J2QF.js.map +1 -0
- package/dist/{chunk-NGKQBNZ5.js → chunk-NJYJCMKY.js} +3 -3
- package/dist/{chunk-NGKQBNZ5.js.map → chunk-NJYJCMKY.js.map} +1 -1
- package/dist/{chunk-COPT6I2D.js → chunk-NSEY5IC6.js} +9 -10
- package/dist/chunk-NSEY5IC6.js.map +1 -0
- package/dist/{chunk-UARVH66B.js → chunk-O4PHGLXF.js} +5 -5
- package/dist/{chunk-UARVH66B.js.map → chunk-O4PHGLXF.js.map} +1 -1
- package/dist/{chunk-J4DMQV64.js → chunk-OCZC4PDM.js} +3 -3
- package/dist/{chunk-J4DMQV64.js.map → chunk-OCZC4PDM.js.map} +1 -1
- package/dist/{chunk-IQH3XSOI.js → chunk-ODYHA3O5.js} +4 -4
- package/dist/{chunk-IQH3XSOI.js.map → chunk-ODYHA3O5.js.map} +1 -1
- package/dist/chunk-OJEZZVZB.js +9 -0
- package/dist/{chunk-CMBERB5B.js.map → chunk-OJEZZVZB.js.map} +1 -1
- package/dist/{chunk-7IOAIEIA.js → chunk-OTXP2QJ7.js} +6 -6
- package/dist/{chunk-7IOAIEIA.js.map → chunk-OTXP2QJ7.js.map} +1 -1
- package/dist/{chunk-JSHUWI3C.js → chunk-OUVUK3E7.js} +9 -9
- package/dist/chunk-OUVUK3E7.js.map +1 -0
- package/dist/{chunk-3KB54OYF.js → chunk-P6ICWO5B.js} +3 -3
- package/dist/{chunk-3KB54OYF.js.map → chunk-P6ICWO5B.js.map} +1 -1
- package/dist/{chunk-GIU6BZTW.js → chunk-P7PPE4P5.js} +8 -11
- package/dist/chunk-P7PPE4P5.js.map +1 -0
- package/dist/{chunk-XGFJJ2YB.js → chunk-PVQUVEZV.js} +4 -11
- package/dist/chunk-PVQUVEZV.js.map +1 -0
- package/dist/{chunk-LCWXIQKA.js → chunk-Q3RL7TOY.js} +4 -4
- package/dist/chunk-Q3RL7TOY.js.map +1 -0
- package/dist/{chunk-5Q4RBIMZ.js → chunk-Q5B6ROW6.js} +3 -3
- package/dist/{chunk-5Q4RBIMZ.js.map → chunk-Q5B6ROW6.js.map} +1 -1
- package/dist/{chunk-262EK2XT.js → chunk-Q7ZDP6DS.js} +9 -7
- package/dist/chunk-Q7ZDP6DS.js.map +1 -0
- package/dist/{chunk-4IBTERDG.js → chunk-QFTOABOJ.js} +3 -3
- package/dist/{chunk-4IBTERDG.js.map → chunk-QFTOABOJ.js.map} +1 -1
- package/dist/{chunk-JURNPBSW.js → chunk-QINEFXUA.js} +3 -3
- package/dist/{chunk-JURNPBSW.js.map → chunk-QINEFXUA.js.map} +1 -1
- package/dist/{chunk-FIOKWIJP.js → chunk-QWSD34JA.js} +4 -4
- package/dist/{chunk-FIOKWIJP.js.map → chunk-QWSD34JA.js.map} +1 -1
- package/dist/{chunk-Q5IUIA6B.js → chunk-RLBAA7WW.js} +3 -3
- package/dist/{chunk-Q5IUIA6B.js.map → chunk-RLBAA7WW.js.map} +1 -1
- package/dist/{chunk-MJQ6R345.js → chunk-SEC7UN45.js} +5 -5
- package/dist/chunk-SEC7UN45.js.map +1 -0
- package/dist/chunk-SIA46B4Q.js +9 -0
- package/dist/{chunk-RTIFG4XT.js.map → chunk-SIA46B4Q.js.map} +1 -1
- package/dist/{chunk-X4HPHMYW.js → chunk-TMPADU74.js} +4 -4
- package/dist/{chunk-X4HPHMYW.js.map → chunk-TMPADU74.js.map} +1 -1
- package/dist/{chunk-YTHUHPE5.js → chunk-USPWL4KC.js} +3 -3
- package/dist/{chunk-YTHUHPE5.js.map → chunk-USPWL4KC.js.map} +1 -1
- package/dist/{chunk-U2UNWXBC.js → chunk-VEQ7X2PO.js} +7 -6
- package/dist/chunk-VEQ7X2PO.js.map +1 -0
- package/dist/{chunk-YZLPO4B2.js → chunk-WRXXU5F6.js} +4 -11
- package/dist/chunk-WRXXU5F6.js.map +1 -0
- package/dist/{chunk-XNYAQZIB.js → chunk-X4B6I3M4.js} +4 -4
- package/dist/{chunk-XNYAQZIB.js.map → chunk-X4B6I3M4.js.map} +1 -1
- package/dist/{chunk-JNF7FDJO.js → chunk-XCYEWILH.js} +4 -4
- package/dist/{chunk-JNF7FDJO.js.map → chunk-XCYEWILH.js.map} +1 -1
- package/dist/{chunk-V2MG5Y5F.js → chunk-XGVQXRLA.js} +4 -4
- package/dist/chunk-XGVQXRLA.js.map +1 -0
- package/dist/chunk-XIANSPQO.js +11 -0
- package/dist/chunk-XIANSPQO.js.map +1 -0
- package/dist/{chunk-UNWEH4Z6.js → chunk-XOMPJYYA.js} +4 -4
- package/dist/chunk-XOMPJYYA.js.map +1 -0
- package/dist/{chunk-UXWUFNXY.js → chunk-XSYSV3R3.js} +3 -3
- package/dist/{chunk-UXWUFNXY.js.map → chunk-XSYSV3R3.js.map} +1 -1
- package/dist/{chunk-ERBGZZ2U.js → chunk-XZYJUJED.js} +4 -4
- package/dist/chunk-XZYJUJED.js.map +1 -0
- package/dist/chunk-YMKC3H55.js +921 -0
- package/dist/chunk-YMKC3H55.js.map +1 -0
- package/dist/{chunk-PFV7YIEP.js → chunk-Z4JNYSV3.js} +4 -4
- package/dist/{chunk-PFV7YIEP.js.map → chunk-Z4JNYSV3.js.map} +1 -1
- package/dist/{chunk-4V3WHQJE.js → chunk-ZLSCHWTN.js} +4 -4
- package/dist/{chunk-4V3WHQJE.js.map → chunk-ZLSCHWTN.js.map} +1 -1
- package/dist/chunk-ZQ2WOX4X.js +29 -0
- package/dist/chunk-ZQ2WOX4X.js.map +1 -0
- package/dist/{chunk-NILG56Z7.js → chunk-ZROHNZDC.js} +4 -4
- package/dist/{chunk-NILG56Z7.js.map → chunk-ZROHNZDC.js.map} +1 -1
- package/dist/{chunk-PGOCR4LG.js → chunk-ZVYCUG4N.js} +4 -4
- package/dist/chunk-ZVYCUG4N.js.map +1 -0
- package/dist/components/accordion/index.d.ts +2 -2
- package/dist/components/accordion/index.js +3 -2
- package/dist/components/alert/index.d.ts +26 -26
- package/dist/components/alert/index.js +2 -2
- package/dist/components/alert-dialog/index.d.ts +6 -5
- package/dist/components/alert-dialog/index.js +6 -6
- package/dist/components/aspect-ratio/index.js +2 -2
- package/dist/components/avatar/index.d.ts +11 -11
- package/dist/components/avatar/index.js +2 -2
- package/dist/components/badge/index.d.ts +112 -112
- package/dist/components/badge/index.js +2 -2
- package/dist/components/breadcrumb/index.js +2 -2
- package/dist/components/button/index.d.ts +51 -51
- package/dist/components/button/index.js +3 -3
- package/dist/components/button-group/index.js +2 -2
- package/dist/components/calendar/index.js +10 -10
- package/dist/components/card/index.d.ts +22 -22
- package/dist/components/card/index.js +2 -1
- package/dist/components/carousel/index.js +3 -3
- package/dist/components/chart/index.js +2 -2
- package/dist/components/checkbox/index.js +2 -2
- package/dist/components/collapsible/index.d.ts +2 -2
- package/dist/components/collapsible/index.js +3 -2
- package/dist/components/combobox/index.d.ts +2 -2
- package/dist/components/combobox/index.js +5 -5
- package/dist/components/command/index.js +7 -7
- package/dist/components/context-menu/index.d.ts +11 -11
- package/dist/components/context-menu/index.js +3 -3
- package/dist/components/data-table/index.js +3 -3
- package/dist/components/date-picker/index.js +6 -6
- package/dist/components/dialog/index.d.ts +26 -5
- package/dist/components/dialog/index.js +5 -5
- package/dist/components/direction/index.js +2 -2
- package/dist/components/drawer/index.d.ts +5 -4
- package/dist/components/drawer/index.js +5 -5
- package/dist/components/dropdown/index.d.ts +3 -3
- package/dist/components/dropdown/index.js +3 -3
- package/dist/components/dropzone/index.js +3 -3
- package/dist/components/empty/index.d.ts +6 -6
- package/dist/components/empty/index.js +2 -2
- package/dist/components/field/index.d.ts +2 -2
- package/dist/components/field/index.js +4 -4
- package/dist/components/hover-card/index.d.ts +2 -2
- package/dist/components/hover-card/index.js +2 -1
- package/dist/components/image/index.js +2 -2
- package/dist/components/input/index.d.ts +12 -12
- package/dist/components/input/index.js +3 -2
- package/dist/components/input-group/index.d.ts +56 -56
- package/dist/components/input-group/index.js +5 -5
- package/dist/components/input-otp/index.js +2 -2
- package/dist/components/item/index.d.ts +31 -31
- package/dist/components/item/index.js +3 -3
- package/dist/components/kbd/index.d.ts +8 -8
- package/dist/components/kbd/index.js +2 -2
- package/dist/components/label/index.d.ts +22 -22
- package/dist/components/label/index.js +3 -2
- package/dist/components/locale-segment-group/index.js +2 -2
- package/dist/components/menubar/index.js +3 -3
- package/dist/components/native-select/index.d.ts +34 -34
- package/dist/components/native-select/index.js +2 -1
- package/dist/components/navigation-menu/index.d.ts +2 -2
- package/dist/components/navigation-menu/index.js +3 -3
- package/dist/components/pagination/index.d.ts +1 -1
- package/dist/components/pagination/index.js +3 -3
- package/dist/components/popover/index.d.ts +22 -22
- package/dist/components/popover/index.js +4 -3
- package/dist/components/progress/index.js +2 -2
- package/dist/components/prose/index.js +2 -2
- package/dist/components/radio-group/index.d.ts +2 -2
- package/dist/components/radio-group/index.js +3 -3
- package/dist/components/scroll-area/index.js +2 -2
- package/dist/components/select/index.js +3 -3
- package/dist/components/selectable-card/index.js +3 -3
- package/dist/components/separator/index.d.ts +8 -8
- package/dist/components/separator/index.js +3 -2
- package/dist/components/sheet/index.d.ts +5 -4
- package/dist/components/sheet/index.js +5 -5
- package/dist/components/sidebar/index.d.ts +3 -3
- package/dist/components/sidebar/index.js +10 -10
- package/dist/components/skeleton/index.d.ts +22 -22
- package/dist/components/skeleton/index.js +2 -1
- package/dist/components/slider/index.js +2 -2
- package/dist/components/spinner/index.js +2 -2
- package/dist/components/switch/index.d.ts +1 -1
- package/dist/components/switch/index.js +2 -2
- package/dist/components/table/index.js +3 -3
- package/dist/components/tabs/index.d.ts +2 -2
- package/dist/components/tabs/index.js +3 -3
- package/dist/components/textarea/index.d.ts +12 -12
- package/dist/components/textarea/index.js +3 -2
- package/dist/components/theme-toggle/index.js +4 -4
- package/dist/components/toggle/index.d.ts +1 -1
- package/dist/components/toggle/index.js +2 -2
- package/dist/components/toggle-group/index.d.ts +2 -2
- package/dist/components/toggle-group/index.js +2 -2
- package/dist/components/tree/index.d.ts +24 -0
- package/dist/components/tree/index.js +5 -0
- package/dist/components/tree/index.js.map +1 -0
- package/dist/components/typography/index.d.ts +2 -2
- package/dist/components/typography/index.js +2 -2
- package/dist/components/video/index.js +2 -2
- package/dist/index.d.ts +25 -24
- package/dist/index.js +80 -78
- package/dist/lib/interactive/index.js +1 -1
- package/dist/lib/utils.d.ts +2 -1
- package/dist/lib/utils.js +1 -1
- package/dist/{navigationMenuTriggerStyle-BWnESpon.d.ts → navigationMenuTriggerStyle-DUhqCYxO.d.ts} +1 -1
- package/dist/theme.css +16 -0
- package/dist/utils.d.ts +2 -0
- package/dist/utils.js +3 -0
- package/dist/utils.js.map +1 -0
- package/package.json +34 -25
- package/dist/Button-vQnkiVTI.d.ts +0 -84
- package/dist/Toggle-CseZl7XN.d.ts +0 -49
- package/dist/Typography-ccTtE182.d.ts +0 -64
- package/dist/chunk-24QD2FTA.js.map +0 -1
- package/dist/chunk-262EK2XT.js.map +0 -1
- package/dist/chunk-3LIT5GWF.js.map +0 -1
- package/dist/chunk-5FBD2NTR.js.map +0 -1
- package/dist/chunk-5KS2VSX2.js.map +0 -1
- package/dist/chunk-67J4KBOW.js.map +0 -1
- package/dist/chunk-6RASPU5N.js.map +0 -1
- package/dist/chunk-BYG2ULS3.js.map +0 -1
- package/dist/chunk-CMBERB5B.js +0 -9
- package/dist/chunk-COPT6I2D.js.map +0 -1
- package/dist/chunk-D3DQ4ICC.js.map +0 -1
- package/dist/chunk-ERBGZZ2U.js.map +0 -1
- package/dist/chunk-G6TV6TF7.js.map +0 -1
- package/dist/chunk-GIU6BZTW.js.map +0 -1
- package/dist/chunk-HCTZJYHK.js.map +0 -1
- package/dist/chunk-JSHUWI3C.js.map +0 -1
- package/dist/chunk-LCWXIQKA.js.map +0 -1
- package/dist/chunk-MJQ6R345.js.map +0 -1
- package/dist/chunk-MKG3UAP6.js +0 -347
- package/dist/chunk-MKG3UAP6.js.map +0 -1
- package/dist/chunk-MS2ZNYCJ.js +0 -9
- package/dist/chunk-MS2ZNYCJ.js.map +0 -1
- package/dist/chunk-OCLVMKVC.js.map +0 -1
- package/dist/chunk-PGOCR4LG.js.map +0 -1
- package/dist/chunk-PPYJQNE5.js.map +0 -1
- package/dist/chunk-QZX3RFIC.js.map +0 -1
- package/dist/chunk-RTIFG4XT.js +0 -9
- package/dist/chunk-STRBBF45.js.map +0 -1
- package/dist/chunk-U2UNWXBC.js.map +0 -1
- package/dist/chunk-UEGIKBX6.js +0 -385
- package/dist/chunk-UEGIKBX6.js.map +0 -1
- package/dist/chunk-UIA74JVN.js.map +0 -1
- package/dist/chunk-UNWEH4Z6.js.map +0 -1
- package/dist/chunk-V2MG5Y5F.js.map +0 -1
- package/dist/chunk-X2YUFNK7.js +0 -18
- package/dist/chunk-X2YUFNK7.js.map +0 -1
- package/dist/chunk-XGFJJ2YB.js.map +0 -1
- package/dist/chunk-YZLPO4B2.js.map +0 -1
package/dist/chunk-RTIFG4XT.js
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { label, Label } from './chunk-D3DQ4ICC.js';
|
|
2
|
-
|
|
3
|
-
// src/components/label/index.ts
|
|
4
|
-
var LabelVariants = { label };
|
|
5
|
-
var label_default = Label;
|
|
6
|
-
|
|
7
|
-
export { LabelVariants, label_default };
|
|
8
|
-
//# sourceMappingURL=chunk-RTIFG4XT.js.map
|
|
9
|
-
//# sourceMappingURL=chunk-RTIFG4XT.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/radio-group/RadioGroupItem.tsx","../src/components/radio-group/index.ts"],"names":["selected"],"mappings":"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","file":"chunk-STRBBF45.js","sourcesContent":["import type { ComponentChildren, JSX } from \"preact\";\nimport { tv, type VariantProps } from \"tailwind-variants\";\nimport { cn } from \"../../lib/utils\";\nimport { useRadioGroup } from \"./RadioGroup\";\n\nconst itemRoot = tv({\n base: [\n \"flex cursor-pointer items-center gap-3 text-sm leading-none font-medium text-foreground\",\n \"has-[:disabled]:cursor-not-allowed has-[:disabled]:opacity-50\",\n ],\n variants: {\n size: {\n default: \"\",\n sm: \"gap-2 text-xs\",\n },\n },\n defaultVariants: { size: \"default\" },\n});\n\nconst indicatorBox = tv({\n base: \"relative inline-flex shrink-0 items-center justify-center\",\n variants: {\n size: {\n default: \"size-4\",\n sm: \"size-3.5\",\n },\n },\n defaultVariants: { size: \"default\" },\n});\n\nconst dotSize = tv({\n base: \"pointer-events-none absolute left-1/2 top-1/2 z-10 -translate-x-1/2 -translate-y-1/2 rounded-full bg-primary opacity-0 transition-[opacity,transform] peer-checked:scale-100 peer-checked:opacity-100 scale-75\",\n variants: {\n size: {\n default: \"size-2.5\",\n sm: \"size-2\",\n },\n },\n defaultVariants: { size: \"default\" },\n});\n\ntype ItemVariants = VariantProps<typeof itemRoot>;\n\nexport type RadioGroupItemProps = Omit<\n JSX.InputHTMLAttributes<HTMLInputElement>,\n \"type\" | \"name\" | \"class\" | \"size\"\n> &\n ItemVariants & {\n value: string;\n children?: ComponentChildren;\n class?: string;\n };\n\nexport const RadioGroupItem = ({\n value,\n children,\n size,\n class: className,\n onChange,\n disabled,\n ...rest\n}: RadioGroupItemProps) => {\n const group = useRadioGroup();\n const selected = group.controlledValue !== undefined ? group.controlledValue : group.value;\n const checked = selected === value;\n\n return (\n <label\n data-slot=\"radio-group-item\"\n data-state={checked ? \"checked\" : \"unchecked\"}\n data-size={size ?? \"default\"}\n class={cn(itemRoot({ size, class: className }))}\n >\n <span class={indicatorBox({ size })}>\n <input\n type=\"radio\"\n data-slot=\"radio-group-input\"\n class=\"peer absolute inset-0 z-20 size-full cursor-pointer opacity-0 disabled:cursor-not-allowed\"\n name={group.name}\n value={value}\n checked={checked}\n disabled={disabled}\n onChange={(event) => {\n group.setValue(value);\n onChange?.(event);\n const el = event.currentTarget as HTMLInputElement;\n const selected =\n group.controlledValue !== undefined ? group.controlledValue : group.value;\n el.checked = selected === value;\n }}\n {...rest}\n />\n <span\n aria-hidden\n class={cn(\n \"pointer-events-none absolute inset-0 z-0 flex items-center justify-center rounded-full border border-input bg-background shadow-xs transition-[color,box-shadow]\",\n \"peer-focus-visible:outline-none peer-focus-visible:ring-[3px] peer-focus-visible:ring-ring/50\",\n \"peer-disabled:opacity-50\",\n \"peer-checked:border-primary\",\n \"peer-aria-invalid:border-destructive peer-aria-invalid:ring-destructive/20\",\n )}\n />\n <span aria-hidden class={dotSize({ size })} />\n </span>\n {children ? <span data-slot=\"radio-group-label\">{children}</span> : null}\n </label>\n );\n};\n","import { RadioGroup } from \"./RadioGroup\";\nimport { RadioGroupItem } from \"./RadioGroupItem\";\n\nexport { RadioGroup, RadioGroupItem };\n\nexport default {\n Root: RadioGroup,\n Item: RadioGroupItem,\n};\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/popover/Popover.tsx","../src/components/popover/PopoverTrigger.tsx","../src/components/popover/PopoverContent.tsx"],"names":["tv","popover","jsx"],"mappings":"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","file":"chunk-U2UNWXBC.js","sourcesContent":["import { signal } from \"@preact/signals\";\nimport type { ComponentChildren, JSX } from \"preact\";\nimport { createContext } from \"preact\";\nimport { useContext, useEffect, useMemo, useRef } from \"preact/hooks\";\nimport { tv } from \"tailwind-variants\";\nimport { createDismissableLayer, createIdFactory } from \"../../lib/interactive\";\n\ntype PopoverContextValue = {\n open: ReturnType<typeof signal<boolean>>;\n setOpen: (next: boolean) => void;\n triggerId: string;\n contentId: string;\n rootRef: { current: HTMLDivElement | null };\n triggerRef: { current: HTMLElement | null };\n contentRef: { current: HTMLDivElement | null };\n};\n\nconst PopoverContext = createContext<PopoverContextValue | null>(null);\nconst nextPopoverId = createIdFactory(\"kamod-popover\");\n\nexport const usePopover = () => {\n const context = useContext(PopoverContext);\n if (!context) throw new Error(\"Popover subcomponents must be used within Popover\");\n return context;\n};\n\nexport const popover = tv({\n base: \"relative inline-flex\",\n});\n\nexport type PopoverProps = JSX.HTMLAttributes<HTMLDivElement> & {\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n children?: ComponentChildren;\n};\n\nexport const Popover = ({\n open: openProp,\n defaultOpen = false,\n onOpenChange,\n class: className,\n children,\n ...rest\n}: PopoverProps) => {\n const isControlled = openProp !== undefined;\n const open = useMemo(() => signal(isControlled ? openProp : defaultOpen), []);\n const rootRef = useRef<HTMLDivElement | null>(null);\n const triggerRef = useRef<HTMLElement | null>(null);\n const contentRef = useRef<HTMLDivElement | null>(null);\n const instanceId = useMemo(() => nextPopoverId(), []);\n\n useEffect(() => {\n if (isControlled && openProp !== undefined) {\n open.value = openProp;\n }\n }, [openProp, isControlled, open]);\n\n const setOpen = (next: boolean) => {\n onOpenChange?.(next);\n if (!isControlled) {\n open.value = next;\n }\n };\n\n const setOpenRef = useRef(setOpen);\n setOpenRef.current = setOpen;\n\n useEffect(() => {\n const layer = createDismissableLayer({\n root: () => rootRef.current,\n open: () => open.value,\n onDismiss: () => {\n setOpenRef.current(false);\n },\n });\n return () => layer.dispose();\n }, []);\n\n return (\n <PopoverContext.Provider\n value={{\n open,\n setOpen,\n triggerId: `${instanceId}-trigger`,\n contentId: `${instanceId}-content`,\n rootRef,\n triggerRef,\n contentRef,\n }}\n >\n <div\n ref={rootRef}\n class={popover({ class: className as string | undefined })}\n data-slot=\"popover\"\n data-state={open.value ? \"open\" : \"closed\"}\n {...rest}\n >\n {children}\n </div>\n </PopoverContext.Provider>\n );\n};\n","import { type ComponentChildren, cloneElement, isValidElement, type JSX } from \"preact\";\nimport { tv } from \"tailwind-variants\";\nimport { usePopover } from \"./Popover\";\n\nexport const popoverTrigger = tv({\n base: [\n \"inline-flex items-center justify-center\",\n \"focus-visible:ring-outline/50 transition-[color,box-shadow] outline-none focus-visible:ring-3\",\n \"disabled:pointer-events-none\",\n ],\n});\n\nexport type PopoverTriggerProps = JSX.ButtonHTMLAttributes<HTMLButtonElement> & {\n asChild?: boolean;\n children?: ComponentChildren;\n};\n\nconst callRef = <T extends HTMLElement>(ref: unknown, node: T | null) => {\n if (typeof ref === \"function\") {\n ref(node);\n } else if (ref && typeof ref === \"object\" && \"current\" in ref) {\n (ref as { current: T | null }).current = node;\n }\n};\n\nexport const PopoverTrigger = ({\n asChild = false,\n class: className,\n children,\n onClick,\n ref: outerRef,\n ...rest\n}: PopoverTriggerProps) => {\n const popover = usePopover();\n\n const handleClick = (event: JSX.TargetedMouseEvent<HTMLElement>) => {\n onClick?.(event as JSX.TargetedMouseEvent<HTMLButtonElement>);\n if (event.defaultPrevented) return;\n popover.setOpen(!popover.open.value);\n };\n\n if (asChild) {\n if (!isValidElement(children)) {\n return null;\n }\n\n const childProps = (children.props ?? {}) as JSX.HTMLAttributes<HTMLElement> & {\n ref?: unknown;\n onClick?: (event: JSX.TargetedMouseEvent<HTMLElement>) => void;\n };\n\n return cloneElement(children, {\n ...(childProps as Record<string, unknown>),\n ...(rest as Record<string, unknown>),\n id: popover.triggerId,\n \"aria-controls\": popover.contentId,\n \"aria-haspopup\": \"dialog\",\n \"aria-expanded\": popover.open.value,\n \"data-slot\": \"popover-trigger\",\n \"data-state\": popover.open.value ? \"open\" : \"closed\",\n onClick: (event: JSX.TargetedMouseEvent<HTMLElement>) => {\n childProps.onClick?.(event);\n handleClick(event);\n },\n ref: (node: HTMLElement | null) => {\n popover.triggerRef.current = node;\n callRef(childProps.ref, node);\n callRef(outerRef, node);\n },\n } as never);\n }\n\n return (\n <button\n ref={(node) => {\n popover.triggerRef.current = node;\n callRef(outerRef, node);\n }}\n id={popover.triggerId}\n type=\"button\"\n class={popoverTrigger({ class: className as string | undefined })}\n data-slot=\"popover-trigger\"\n data-state={popover.open.value ? \"open\" : \"closed\"}\n aria-controls={popover.contentId}\n aria-haspopup=\"dialog\"\n aria-expanded={popover.open.value}\n onClick={(event) => handleClick(event as unknown as JSX.TargetedMouseEvent<HTMLElement>)}\n {...rest}\n >\n {children}\n </button>\n );\n};\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { tv, type VariantProps } from \"tailwind-variants\";\nimport { usePopover } from \"./Popover\";\n\nconst positionBySide = {\n top: \"bottom-full\",\n bottom: \"top-full\",\n left: \"right-full\",\n right: \"left-full\",\n} as const;\n\nconst alignByAxis = {\n vertical: {\n start: \"left-0\",\n center: \"left-1/2 -translate-x-1/2\",\n end: \"right-0\",\n },\n horizontal: {\n start: \"top-0\",\n center: \"top-1/2 -translate-y-1/2\",\n end: \"bottom-0\",\n },\n} as const;\n\nexport const popoverContent = tv({\n base: [\n \"bg-popover text-popover-foreground z-50 flex min-w-0 w-80 max-w-[calc(100vw-1.5rem)] max-h-[calc(100dvh-2rem)] flex-col gap-3 overflow-x-hidden overflow-y-auto rounded-lg border p-4 shadow-md outline-none\",\n \"data-[state=open]:animate-in fade-in zoom-in-95\",\n \"data-[state=closed]:animate-out data-[state=closed]:fill-mode-forwards fade-out zoom-out-95\",\n \"absolute isolate\",\n ],\n variants: {\n side: {\n bottom: \"slide-in-from-top-2\",\n top: \"slide-in-from-bottom-2\",\n right: \"slide-in-from-left-2\",\n left: \"slide-in-from-right-2\",\n },\n },\n defaultVariants: {\n side: \"bottom\",\n },\n});\n\nexport type PopoverContentProps = JSX.HTMLAttributes<HTMLDivElement> &\n VariantProps<typeof popoverContent> & {\n forceMount?: boolean;\n side?: \"top\" | \"bottom\" | \"left\" | \"right\";\n align?: \"start\" | \"center\" | \"end\";\n sideOffset?: number;\n children?: ComponentChildren;\n };\n\nexport const PopoverContent = ({\n forceMount = false,\n side = \"bottom\",\n align = \"center\",\n sideOffset = 4,\n class: className,\n style,\n children,\n onKeyDown,\n ...rest\n}: PopoverContentProps) => {\n const popover = usePopover();\n if (!popover.open.value && !forceMount) return null;\n\n const isVertical = side === \"top\" || side === \"bottom\";\n const alignClass = isVertical ? alignByAxis.vertical[align] : alignByAxis.horizontal[align];\n const inlineStyle = typeof style === \"object\" && style !== null ? style : undefined;\n const offsetStyle: JSX.CSSProperties =\n side === \"bottom\"\n ? { marginTop: `${sideOffset}px` }\n : side === \"top\"\n ? { marginBottom: `${sideOffset}px` }\n : side === \"right\"\n ? { marginLeft: `${sideOffset}px` }\n : { marginRight: `${sideOffset}px` };\n\n return (\n <div\n ref={(node) => {\n popover.contentRef.current = node;\n }}\n id={popover.contentId}\n role=\"dialog\"\n tabIndex={-1}\n aria-labelledby={popover.triggerId}\n data-slot=\"popover-content\"\n data-side={side}\n data-align={align}\n data-state={popover.open.value ? \"open\" : \"closed\"}\n class={`${positionBySide[side]} ${alignClass} ${popoverContent({ side, class: className as string | undefined })}`}\n style={inlineStyle ? { ...offsetStyle, ...inlineStyle } : offsetStyle}\n onKeyDown={(event) => {\n if (event.key === \"Escape\") {\n event.preventDefault();\n popover.setOpen(false);\n popover.triggerRef.current?.focus();\n return;\n }\n onKeyDown?.(event);\n }}\n {...rest}\n >\n {children}\n </div>\n );\n};\n"]}
|
package/dist/chunk-UEGIKBX6.js
DELETED
|
@@ -1,385 +0,0 @@
|
|
|
1
|
-
import { cn } from './chunk-MS2ZNYCJ.js';
|
|
2
|
-
import { signal } from '@preact/signals';
|
|
3
|
-
import { createContext } from 'preact';
|
|
4
|
-
import { useMemo, useRef, useState, useLayoutEffect, useContext } from 'preact/hooks';
|
|
5
|
-
import { jsx, jsxs } from 'preact/jsx-runtime';
|
|
6
|
-
|
|
7
|
-
var AccordionContext = createContext(null);
|
|
8
|
-
var useAccordion = () => {
|
|
9
|
-
const context = useContext(AccordionContext);
|
|
10
|
-
if (!context) throw new Error("Accordion subcomponents must be used within Accordion");
|
|
11
|
-
return context;
|
|
12
|
-
};
|
|
13
|
-
var Accordion = ({
|
|
14
|
-
type = "single",
|
|
15
|
-
collapsible = true,
|
|
16
|
-
defaultValue,
|
|
17
|
-
children,
|
|
18
|
-
...rest
|
|
19
|
-
}) => {
|
|
20
|
-
const openValues = useMemo(() => {
|
|
21
|
-
const initialSet = new Set(
|
|
22
|
-
defaultValue ? Array.isArray(defaultValue) ? defaultValue : [defaultValue] : []
|
|
23
|
-
);
|
|
24
|
-
return signal(initialSet);
|
|
25
|
-
}, []);
|
|
26
|
-
const context = {
|
|
27
|
-
type,
|
|
28
|
-
openValues,
|
|
29
|
-
toggleValue: (value) => {
|
|
30
|
-
const next = new Set(openValues.value);
|
|
31
|
-
const isOpen = next.has(value);
|
|
32
|
-
if (type === "single") {
|
|
33
|
-
if (isOpen && !collapsible) {
|
|
34
|
-
return;
|
|
35
|
-
}
|
|
36
|
-
next.clear();
|
|
37
|
-
if (!isOpen) next.add(value);
|
|
38
|
-
} else if (isOpen) {
|
|
39
|
-
next.delete(value);
|
|
40
|
-
} else {
|
|
41
|
-
next.add(value);
|
|
42
|
-
}
|
|
43
|
-
openValues.value = next;
|
|
44
|
-
}
|
|
45
|
-
};
|
|
46
|
-
return /* @__PURE__ */ jsx(AccordionContext.Provider, { value: context, children: /* @__PURE__ */ jsx("div", { "data-slot": "accordion", ...rest, children }) });
|
|
47
|
-
};
|
|
48
|
-
var AccordionItemContext = createContext(null);
|
|
49
|
-
var useAccordionItem = () => {
|
|
50
|
-
const context = useContext(AccordionItemContext);
|
|
51
|
-
if (!context) throw new Error("Accordion item subcomponents must be used within AccordionItem");
|
|
52
|
-
return context;
|
|
53
|
-
};
|
|
54
|
-
var AccordionItem = ({
|
|
55
|
-
value,
|
|
56
|
-
disabled = false,
|
|
57
|
-
children,
|
|
58
|
-
...rest
|
|
59
|
-
}) => {
|
|
60
|
-
const { openValues } = useAccordion();
|
|
61
|
-
const isOpen = openValues.value.has(value);
|
|
62
|
-
return /* @__PURE__ */ jsx(AccordionItemContext.Provider, { value: { value, isOpen, disabled }, children: /* @__PURE__ */ jsx(
|
|
63
|
-
"div",
|
|
64
|
-
{
|
|
65
|
-
"data-slot": "accordion-item",
|
|
66
|
-
"data-state": isOpen ? "open" : "closed",
|
|
67
|
-
"data-disabled": disabled ? "" : void 0,
|
|
68
|
-
...rest,
|
|
69
|
-
children
|
|
70
|
-
}
|
|
71
|
-
) });
|
|
72
|
-
};
|
|
73
|
-
var AccordionContent = ({
|
|
74
|
-
forceMount = false,
|
|
75
|
-
duration = "320ms",
|
|
76
|
-
timingFunction = "cubic-bezier(0.22, 1, 0.36, 1)",
|
|
77
|
-
largeContentThreshold = 560,
|
|
78
|
-
children,
|
|
79
|
-
class: className,
|
|
80
|
-
style,
|
|
81
|
-
...rest
|
|
82
|
-
}) => {
|
|
83
|
-
const { isOpen } = useAccordionItem();
|
|
84
|
-
const innerRef = useRef(null);
|
|
85
|
-
const outerRef = useRef(null);
|
|
86
|
-
const isOpenRef = useRef(isOpen);
|
|
87
|
-
isOpenRef.current = isOpen;
|
|
88
|
-
const hasInitializedRef = useRef(false);
|
|
89
|
-
const [mounted, setMounted] = useState(() => isOpen || forceMount);
|
|
90
|
-
const [isAnimatingClose, setIsAnimatingClose] = useState(false);
|
|
91
|
-
const [isAnimatingOpen, setIsAnimatingOpen] = useState(false);
|
|
92
|
-
const prefersReducedMotionRef = useRef(false);
|
|
93
|
-
const rafRef = useRef(null);
|
|
94
|
-
const rafSecondRef = useRef(null);
|
|
95
|
-
const resizeObserverRef = useRef(null);
|
|
96
|
-
const usesMaxHeightRef = useRef(false);
|
|
97
|
-
useLayoutEffect(() => {
|
|
98
|
-
if (typeof window !== "undefined") {
|
|
99
|
-
prefersReducedMotionRef.current = window.matchMedia(
|
|
100
|
-
"(prefers-reduced-motion: reduce)"
|
|
101
|
-
).matches;
|
|
102
|
-
}
|
|
103
|
-
const outer = outerRef.current;
|
|
104
|
-
const inner = innerRef.current;
|
|
105
|
-
if (!outer || !inner) return;
|
|
106
|
-
if (rafRef.current !== null) {
|
|
107
|
-
cancelAnimationFrame(rafRef.current);
|
|
108
|
-
rafRef.current = null;
|
|
109
|
-
}
|
|
110
|
-
if (rafSecondRef.current !== null) {
|
|
111
|
-
cancelAnimationFrame(rafSecondRef.current);
|
|
112
|
-
rafSecondRef.current = null;
|
|
113
|
-
}
|
|
114
|
-
if (resizeObserverRef.current) {
|
|
115
|
-
resizeObserverRef.current.disconnect();
|
|
116
|
-
resizeObserverRef.current = null;
|
|
117
|
-
}
|
|
118
|
-
const syncOpenStyles = () => {
|
|
119
|
-
outer.style.transition = "none";
|
|
120
|
-
outer.style.height = "auto";
|
|
121
|
-
outer.style.maxHeight = "none";
|
|
122
|
-
outer.style.overflow = "";
|
|
123
|
-
outer.style.willChange = "";
|
|
124
|
-
};
|
|
125
|
-
const syncClosedStyles = () => {
|
|
126
|
-
outer.style.transition = "none";
|
|
127
|
-
outer.style.height = "0px";
|
|
128
|
-
outer.style.maxHeight = "0px";
|
|
129
|
-
outer.style.overflow = "hidden";
|
|
130
|
-
outer.style.willChange = "";
|
|
131
|
-
};
|
|
132
|
-
const measureExpandedHeight = () => {
|
|
133
|
-
const contentHeight = inner.getBoundingClientRect().height;
|
|
134
|
-
const computed = window.getComputedStyle(inner);
|
|
135
|
-
const marginTop = Number.parseFloat(computed.marginTop || "0") || 0;
|
|
136
|
-
const marginBottom = Number.parseFloat(computed.marginBottom || "0") || 0;
|
|
137
|
-
return Math.ceil(contentHeight + marginTop + marginBottom);
|
|
138
|
-
};
|
|
139
|
-
if (!hasInitializedRef.current) {
|
|
140
|
-
hasInitializedRef.current = true;
|
|
141
|
-
if (isOpen) {
|
|
142
|
-
setMounted(true);
|
|
143
|
-
syncOpenStyles();
|
|
144
|
-
} else {
|
|
145
|
-
syncClosedStyles();
|
|
146
|
-
}
|
|
147
|
-
return;
|
|
148
|
-
}
|
|
149
|
-
if (isOpen) {
|
|
150
|
-
if (!mounted) {
|
|
151
|
-
setMounted(true);
|
|
152
|
-
return;
|
|
153
|
-
}
|
|
154
|
-
setIsAnimatingClose(false);
|
|
155
|
-
const endHeight = measureExpandedHeight();
|
|
156
|
-
const startHeight2 = outer.getBoundingClientRect().height;
|
|
157
|
-
usesMaxHeightRef.current = endHeight >= largeContentThreshold;
|
|
158
|
-
const animateProperty2 = usesMaxHeightRef.current ? "max-height" : "height";
|
|
159
|
-
const transitionValue2 = `${animateProperty2} ${duration} ${timingFunction}`;
|
|
160
|
-
if (prefersReducedMotionRef.current || Math.abs(endHeight - startHeight2) < 1) {
|
|
161
|
-
setIsAnimatingOpen(false);
|
|
162
|
-
syncOpenStyles();
|
|
163
|
-
return;
|
|
164
|
-
}
|
|
165
|
-
setIsAnimatingOpen(true);
|
|
166
|
-
outer.style.transition = "none";
|
|
167
|
-
outer.style.overflow = "hidden";
|
|
168
|
-
outer.style.willChange = animateProperty2;
|
|
169
|
-
outer.style.height = usesMaxHeightRef.current ? "auto" : `${startHeight2}px`;
|
|
170
|
-
outer.style.maxHeight = `${startHeight2}px`;
|
|
171
|
-
rafRef.current = requestAnimationFrame(() => {
|
|
172
|
-
rafRef.current = null;
|
|
173
|
-
rafSecondRef.current = requestAnimationFrame(() => {
|
|
174
|
-
rafSecondRef.current = null;
|
|
175
|
-
outer.style.transition = transitionValue2;
|
|
176
|
-
if (usesMaxHeightRef.current) {
|
|
177
|
-
outer.style.maxHeight = `${endHeight}px`;
|
|
178
|
-
} else {
|
|
179
|
-
outer.style.height = `${endHeight}px`;
|
|
180
|
-
outer.style.maxHeight = `${endHeight}px`;
|
|
181
|
-
}
|
|
182
|
-
});
|
|
183
|
-
});
|
|
184
|
-
if (typeof ResizeObserver !== "undefined") {
|
|
185
|
-
resizeObserverRef.current = new ResizeObserver(() => {
|
|
186
|
-
if (!isOpenRef.current) return;
|
|
187
|
-
const nextHeight = measureExpandedHeight();
|
|
188
|
-
if (nextHeight <= 0) return;
|
|
189
|
-
if (usesMaxHeightRef.current) {
|
|
190
|
-
outer.style.maxHeight = `${nextHeight}px`;
|
|
191
|
-
} else {
|
|
192
|
-
outer.style.height = `${nextHeight}px`;
|
|
193
|
-
outer.style.maxHeight = `${nextHeight}px`;
|
|
194
|
-
}
|
|
195
|
-
});
|
|
196
|
-
resizeObserverRef.current.observe(inner);
|
|
197
|
-
}
|
|
198
|
-
return;
|
|
199
|
-
}
|
|
200
|
-
if (!mounted) {
|
|
201
|
-
if (forceMount) syncClosedStyles();
|
|
202
|
-
return;
|
|
203
|
-
}
|
|
204
|
-
const startHeight = outer.getBoundingClientRect().height || measureExpandedHeight();
|
|
205
|
-
usesMaxHeightRef.current = startHeight >= largeContentThreshold;
|
|
206
|
-
const animateProperty = usesMaxHeightRef.current ? "max-height" : "height";
|
|
207
|
-
const transitionValue = `${animateProperty} ${duration} ${timingFunction}`;
|
|
208
|
-
if (prefersReducedMotionRef.current || startHeight < 1) {
|
|
209
|
-
setIsAnimatingOpen(false);
|
|
210
|
-
setIsAnimatingClose(false);
|
|
211
|
-
if (!forceMount) {
|
|
212
|
-
setMounted(false);
|
|
213
|
-
} else {
|
|
214
|
-
syncClosedStyles();
|
|
215
|
-
}
|
|
216
|
-
return;
|
|
217
|
-
}
|
|
218
|
-
setIsAnimatingOpen(false);
|
|
219
|
-
setIsAnimatingClose(true);
|
|
220
|
-
outer.style.transition = "none";
|
|
221
|
-
outer.style.overflow = "hidden";
|
|
222
|
-
outer.style.willChange = animateProperty;
|
|
223
|
-
outer.style.height = usesMaxHeightRef.current ? "auto" : `${startHeight}px`;
|
|
224
|
-
outer.style.maxHeight = `${startHeight}px`;
|
|
225
|
-
rafRef.current = requestAnimationFrame(() => {
|
|
226
|
-
rafRef.current = null;
|
|
227
|
-
rafSecondRef.current = requestAnimationFrame(() => {
|
|
228
|
-
rafSecondRef.current = null;
|
|
229
|
-
outer.style.transition = transitionValue;
|
|
230
|
-
if (usesMaxHeightRef.current) {
|
|
231
|
-
outer.style.maxHeight = "0px";
|
|
232
|
-
} else {
|
|
233
|
-
outer.style.height = "0px";
|
|
234
|
-
outer.style.maxHeight = "0px";
|
|
235
|
-
}
|
|
236
|
-
});
|
|
237
|
-
});
|
|
238
|
-
return () => {
|
|
239
|
-
if (rafRef.current !== null) {
|
|
240
|
-
cancelAnimationFrame(rafRef.current);
|
|
241
|
-
rafRef.current = null;
|
|
242
|
-
}
|
|
243
|
-
if (rafSecondRef.current !== null) {
|
|
244
|
-
cancelAnimationFrame(rafSecondRef.current);
|
|
245
|
-
rafSecondRef.current = null;
|
|
246
|
-
}
|
|
247
|
-
if (resizeObserverRef.current) {
|
|
248
|
-
resizeObserverRef.current.disconnect();
|
|
249
|
-
resizeObserverRef.current = null;
|
|
250
|
-
}
|
|
251
|
-
};
|
|
252
|
-
}, [forceMount, isOpen, mounted, timingFunction, duration, largeContentThreshold]);
|
|
253
|
-
const handleTransitionEnd = (e) => {
|
|
254
|
-
if (e.target !== outerRef.current) return;
|
|
255
|
-
if (e.propertyName !== "height" && e.propertyName !== "max-height") return;
|
|
256
|
-
const outer = outerRef.current;
|
|
257
|
-
if (!outer) return;
|
|
258
|
-
if (isOpenRef.current) {
|
|
259
|
-
setIsAnimatingOpen(false);
|
|
260
|
-
outer.style.transition = "none";
|
|
261
|
-
outer.style.height = "auto";
|
|
262
|
-
outer.style.maxHeight = "none";
|
|
263
|
-
outer.style.overflow = "";
|
|
264
|
-
outer.style.willChange = "";
|
|
265
|
-
if (resizeObserverRef.current) {
|
|
266
|
-
resizeObserverRef.current.disconnect();
|
|
267
|
-
resizeObserverRef.current = null;
|
|
268
|
-
}
|
|
269
|
-
return;
|
|
270
|
-
}
|
|
271
|
-
setIsAnimatingClose(false);
|
|
272
|
-
if (!forceMount) {
|
|
273
|
-
outer.style.willChange = "";
|
|
274
|
-
setMounted(false);
|
|
275
|
-
} else {
|
|
276
|
-
outer.style.transition = "none";
|
|
277
|
-
outer.style.height = "0px";
|
|
278
|
-
outer.style.maxHeight = "0px";
|
|
279
|
-
outer.style.overflow = "hidden";
|
|
280
|
-
outer.style.willChange = "";
|
|
281
|
-
}
|
|
282
|
-
};
|
|
283
|
-
const allowRender = mounted || forceMount || isOpen;
|
|
284
|
-
if (!allowRender) return null;
|
|
285
|
-
const mergedStyle = {
|
|
286
|
-
...typeof style === "object" && style !== null && !Array.isArray(style) ? style : {},
|
|
287
|
-
["--kamodui-accordion-duration"]: duration,
|
|
288
|
-
["--kamodui-accordion-timing-function"]: timingFunction
|
|
289
|
-
};
|
|
290
|
-
return /* @__PURE__ */ jsx(
|
|
291
|
-
"div",
|
|
292
|
-
{
|
|
293
|
-
ref: outerRef,
|
|
294
|
-
"data-slot": "accordion-content",
|
|
295
|
-
"data-state": isOpen ? "open" : "closed",
|
|
296
|
-
onTransitionEnd: handleTransitionEnd,
|
|
297
|
-
style: mergedStyle,
|
|
298
|
-
class: cn(
|
|
299
|
-
"min-h-0 overflow-hidden",
|
|
300
|
-
(isAnimatingOpen || isAnimatingClose) && "will-change-[height]"
|
|
301
|
-
),
|
|
302
|
-
"aria-hidden": !isOpen && !isAnimatingClose,
|
|
303
|
-
inert: !isOpen || void 0,
|
|
304
|
-
...rest,
|
|
305
|
-
children: /* @__PURE__ */ jsx(
|
|
306
|
-
"div",
|
|
307
|
-
{
|
|
308
|
-
ref: innerRef,
|
|
309
|
-
"data-slot": "accordion-content-inner",
|
|
310
|
-
class: cn("min-h-0 min-w-0", className),
|
|
311
|
-
children
|
|
312
|
-
}
|
|
313
|
-
)
|
|
314
|
-
}
|
|
315
|
-
);
|
|
316
|
-
};
|
|
317
|
-
var DefaultIndicator = () => /* @__PURE__ */ jsx("svg", { viewBox: "0 0 16 16", width: "16", height: "16", fill: "none", "aria-hidden": "true", focusable: "false", children: /* @__PURE__ */ jsx(
|
|
318
|
-
"path",
|
|
319
|
-
{
|
|
320
|
-
d: "M4 6l4 4 4-4",
|
|
321
|
-
stroke: "currentColor",
|
|
322
|
-
strokeWidth: "1.5",
|
|
323
|
-
strokeLinecap: "round",
|
|
324
|
-
strokeLinejoin: "round"
|
|
325
|
-
}
|
|
326
|
-
) });
|
|
327
|
-
var AccordionTrigger = ({
|
|
328
|
-
hideIndicator = false,
|
|
329
|
-
indicator,
|
|
330
|
-
children,
|
|
331
|
-
class: className,
|
|
332
|
-
onClick,
|
|
333
|
-
...rest
|
|
334
|
-
}) => {
|
|
335
|
-
const { toggleValue } = useAccordion();
|
|
336
|
-
const { value, isOpen, disabled } = useAccordionItem();
|
|
337
|
-
return /* @__PURE__ */ jsxs(
|
|
338
|
-
"button",
|
|
339
|
-
{
|
|
340
|
-
type: "button",
|
|
341
|
-
"data-slot": "accordion-trigger",
|
|
342
|
-
"aria-expanded": isOpen,
|
|
343
|
-
disabled,
|
|
344
|
-
"data-state": isOpen ? "open" : "closed",
|
|
345
|
-
class: cn(
|
|
346
|
-
"flex w-full items-center justify-between gap-2 rounded-md py-4 text-left text-sm font-medium outline-none transition-colors focus-visible:border-ring focus-visible:ring-2 focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50",
|
|
347
|
-
!isOpen && "hover:bg-muted/40",
|
|
348
|
-
className
|
|
349
|
-
),
|
|
350
|
-
onClick: (event) => {
|
|
351
|
-
if (disabled) return;
|
|
352
|
-
toggleValue(value);
|
|
353
|
-
onClick?.(event);
|
|
354
|
-
},
|
|
355
|
-
...rest,
|
|
356
|
-
children: [
|
|
357
|
-
/* @__PURE__ */ jsx("span", { "data-slot": "accordion-trigger-label", class: "min-w-0 flex-1 text-start", children }),
|
|
358
|
-
!hideIndicator ? /* @__PURE__ */ jsx(
|
|
359
|
-
"span",
|
|
360
|
-
{
|
|
361
|
-
"data-slot": "accordion-trigger-indicator",
|
|
362
|
-
"data-state": isOpen ? "open" : "closed",
|
|
363
|
-
class: cn(
|
|
364
|
-
"shrink-0 text-muted-foreground transition-transform duration-200",
|
|
365
|
-
isOpen && "rotate-180"
|
|
366
|
-
),
|
|
367
|
-
children: indicator ?? /* @__PURE__ */ jsx(DefaultIndicator, {})
|
|
368
|
-
}
|
|
369
|
-
) : null
|
|
370
|
-
]
|
|
371
|
-
}
|
|
372
|
-
);
|
|
373
|
-
};
|
|
374
|
-
|
|
375
|
-
// src/components/accordion/index.ts
|
|
376
|
-
var accordion_default = {
|
|
377
|
-
Root: Accordion,
|
|
378
|
-
Item: AccordionItem,
|
|
379
|
-
Trigger: AccordionTrigger,
|
|
380
|
-
Content: AccordionContent
|
|
381
|
-
};
|
|
382
|
-
|
|
383
|
-
export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, accordion_default };
|
|
384
|
-
//# sourceMappingURL=chunk-UEGIKBX6.js.map
|
|
385
|
-
//# sourceMappingURL=chunk-UEGIKBX6.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/accordion/Accordion.tsx","../src/components/accordion/AccordionItem.tsx","../src/components/accordion/AccordionContent.tsx","../src/components/accordion/AccordionTrigger.tsx","../src/components/accordion/index.ts"],"names":["createContext","useContext","jsx","startHeight","animateProperty","transitionValue"],"mappings":"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","file":"chunk-UEGIKBX6.js","sourcesContent":["import { type Signal, signal } from \"@preact/signals\";\nimport type { ComponentChildren, JSX } from \"preact\";\nimport { createContext } from \"preact\";\nimport { useContext, useMemo } from \"preact/hooks\";\n\ntype AccordionType = \"single\" | \"multiple\";\n\ntype AccordionContextValue = {\n type: AccordionType;\n openValues: Signal<Set<string>>;\n toggleValue: (value: string) => void;\n};\n\nconst AccordionContext = createContext<AccordionContextValue | null>(null);\n\nexport const useAccordion = () => {\n const context = useContext(AccordionContext);\n if (!context) throw new Error(\"Accordion subcomponents must be used within Accordion\");\n return context;\n};\n\nexport type AccordionProps = JSX.HTMLAttributes<HTMLDivElement> & {\n type?: AccordionType;\n /** When `type=\"single\"`, `false` keeps one panel always open (clicking the open trigger does not close it). Default `true` matches common shadcn examples. */\n collapsible?: boolean;\n defaultValue?: string | string[];\n children?: ComponentChildren;\n};\n\nexport const Accordion = ({\n type = \"single\",\n collapsible = true,\n defaultValue,\n children,\n ...rest\n}: AccordionProps) => {\n const openValues = useMemo(() => {\n const initialSet = new Set<string>(\n defaultValue ? (Array.isArray(defaultValue) ? defaultValue : [defaultValue]) : [],\n );\n return signal(initialSet);\n }, []);\n\n const context: AccordionContextValue = {\n type,\n openValues,\n toggleValue: (value) => {\n const next = new Set(openValues.value);\n const isOpen = next.has(value);\n\n if (type === \"single\") {\n if (isOpen && !collapsible) {\n return;\n }\n next.clear();\n if (!isOpen) next.add(value);\n } else if (isOpen) {\n next.delete(value);\n } else {\n next.add(value);\n }\n\n openValues.value = next;\n },\n };\n\n return (\n <AccordionContext.Provider value={context}>\n <div data-slot=\"accordion\" {...rest}>\n {children}\n </div>\n </AccordionContext.Provider>\n );\n};\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { createContext } from \"preact\";\nimport { useContext } from \"preact/hooks\";\nimport { useAccordion } from \"./Accordion\";\n\ntype AccordionItemContextValue = {\n value: string;\n isOpen: boolean;\n disabled: boolean;\n};\n\nconst AccordionItemContext = createContext<AccordionItemContextValue | null>(null);\n\nexport const useAccordionItem = () => {\n const context = useContext(AccordionItemContext);\n if (!context) throw new Error(\"Accordion item subcomponents must be used within AccordionItem\");\n return context;\n};\n\nexport type AccordionItemProps = JSX.HTMLAttributes<HTMLDivElement> & {\n value: string;\n disabled?: boolean;\n children?: ComponentChildren;\n};\n\nexport const AccordionItem = ({\n value,\n disabled = false,\n children,\n ...rest\n}: AccordionItemProps) => {\n const { openValues } = useAccordion();\n const isOpen = openValues.value.has(value);\n\n return (\n <AccordionItemContext.Provider value={{ value, isOpen, disabled }}>\n <div\n data-slot=\"accordion-item\"\n data-state={isOpen ? \"open\" : \"closed\"}\n data-disabled={disabled ? \"\" : undefined}\n {...rest}\n >\n {children}\n </div>\n </AccordionItemContext.Provider>\n );\n};\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { useLayoutEffect, useRef, useState } from \"preact/hooks\";\nimport { cn } from \"../../lib/utils\";\nimport { useAccordionItem } from \"./AccordionItem\";\n\nexport type AccordionContentProps = JSX.HTMLAttributes<HTMLDivElement> & {\n forceMount?: boolean;\n /** Grid transition duration, e.g. `400ms` */\n duration?: string;\n /** CSS timing function, e.g. `cubic-bezier(0.4, 0, 0.2, 1)` */\n timingFunction?: string;\n /** Use max-height animation for very tall content to reduce micro-jank. */\n largeContentThreshold?: number;\n children?: ComponentChildren;\n};\n\nexport const AccordionContent = ({\n forceMount = false,\n duration = \"320ms\",\n timingFunction = \"cubic-bezier(0.22, 1, 0.36, 1)\",\n largeContentThreshold = 560,\n children,\n class: className,\n style,\n ...rest\n}: AccordionContentProps) => {\n const { isOpen } = useAccordionItem();\n const innerRef = useRef<HTMLDivElement>(null);\n const outerRef = useRef<HTMLDivElement>(null);\n const isOpenRef = useRef(isOpen);\n isOpenRef.current = isOpen;\n const hasInitializedRef = useRef(false);\n\n const [mounted, setMounted] = useState(() => isOpen || forceMount);\n const [isAnimatingClose, setIsAnimatingClose] = useState(false);\n const [isAnimatingOpen, setIsAnimatingOpen] = useState(false);\n const prefersReducedMotionRef = useRef(false);\n const rafRef = useRef<number | null>(null);\n const rafSecondRef = useRef<number | null>(null);\n const resizeObserverRef = useRef<ResizeObserver | null>(null);\n const usesMaxHeightRef = useRef(false);\n\n useLayoutEffect(() => {\n if (typeof window !== \"undefined\") {\n prefersReducedMotionRef.current = window.matchMedia(\n \"(prefers-reduced-motion: reduce)\",\n ).matches;\n }\n\n const outer = outerRef.current;\n const inner = innerRef.current;\n if (!outer || !inner) return;\n\n if (rafRef.current !== null) {\n cancelAnimationFrame(rafRef.current);\n rafRef.current = null;\n }\n if (rafSecondRef.current !== null) {\n cancelAnimationFrame(rafSecondRef.current);\n rafSecondRef.current = null;\n }\n if (resizeObserverRef.current) {\n resizeObserverRef.current.disconnect();\n resizeObserverRef.current = null;\n }\n\n const syncOpenStyles = () => {\n outer.style.transition = \"none\";\n outer.style.height = \"auto\";\n outer.style.maxHeight = \"none\";\n outer.style.overflow = \"\";\n outer.style.willChange = \"\";\n };\n\n const syncClosedStyles = () => {\n outer.style.transition = \"none\";\n outer.style.height = \"0px\";\n outer.style.maxHeight = \"0px\";\n outer.style.overflow = \"hidden\";\n outer.style.willChange = \"\";\n };\n\n const measureExpandedHeight = () => {\n const contentHeight = inner.getBoundingClientRect().height;\n const computed = window.getComputedStyle(inner);\n const marginTop = Number.parseFloat(computed.marginTop || \"0\") || 0;\n const marginBottom = Number.parseFloat(computed.marginBottom || \"0\") || 0;\n return Math.ceil(contentHeight + marginTop + marginBottom);\n };\n\n if (!hasInitializedRef.current) {\n hasInitializedRef.current = true;\n if (isOpen) {\n setMounted(true);\n syncOpenStyles();\n } else {\n syncClosedStyles();\n }\n return;\n }\n\n if (isOpen) {\n if (!mounted) {\n // First render closed content into the DOM, then animate on the next layout pass.\n setMounted(true);\n return;\n }\n\n setIsAnimatingClose(false);\n const endHeight = measureExpandedHeight();\n const startHeight = outer.getBoundingClientRect().height;\n usesMaxHeightRef.current = endHeight >= largeContentThreshold;\n const animateProperty = usesMaxHeightRef.current ? \"max-height\" : \"height\";\n const transitionValue = `${animateProperty} ${duration} ${timingFunction}`;\n\n if (prefersReducedMotionRef.current || Math.abs(endHeight - startHeight) < 1) {\n setIsAnimatingOpen(false);\n syncOpenStyles();\n return;\n }\n\n setIsAnimatingOpen(true);\n outer.style.transition = \"none\";\n outer.style.overflow = \"hidden\";\n outer.style.willChange = animateProperty;\n outer.style.height = usesMaxHeightRef.current ? \"auto\" : `${startHeight}px`;\n outer.style.maxHeight = `${startHeight}px`;\n rafRef.current = requestAnimationFrame(() => {\n rafRef.current = null;\n rafSecondRef.current = requestAnimationFrame(() => {\n rafSecondRef.current = null;\n outer.style.transition = transitionValue;\n if (usesMaxHeightRef.current) {\n outer.style.maxHeight = `${endHeight}px`;\n } else {\n outer.style.height = `${endHeight}px`;\n outer.style.maxHeight = `${endHeight}px`;\n }\n });\n });\n\n if (typeof ResizeObserver !== \"undefined\") {\n resizeObserverRef.current = new ResizeObserver(() => {\n if (!isOpenRef.current) return;\n const nextHeight = measureExpandedHeight();\n if (nextHeight <= 0) return;\n if (usesMaxHeightRef.current) {\n outer.style.maxHeight = `${nextHeight}px`;\n } else {\n outer.style.height = `${nextHeight}px`;\n outer.style.maxHeight = `${nextHeight}px`;\n }\n });\n resizeObserverRef.current.observe(inner);\n }\n return;\n }\n\n if (!mounted) {\n if (forceMount) syncClosedStyles();\n return;\n }\n\n const startHeight = outer.getBoundingClientRect().height || measureExpandedHeight();\n usesMaxHeightRef.current = startHeight >= largeContentThreshold;\n const animateProperty = usesMaxHeightRef.current ? \"max-height\" : \"height\";\n const transitionValue = `${animateProperty} ${duration} ${timingFunction}`;\n if (prefersReducedMotionRef.current || startHeight < 1) {\n setIsAnimatingOpen(false);\n setIsAnimatingClose(false);\n if (!forceMount) {\n setMounted(false);\n } else {\n syncClosedStyles();\n }\n return;\n }\n\n setIsAnimatingOpen(false);\n setIsAnimatingClose(true);\n outer.style.transition = \"none\";\n outer.style.overflow = \"hidden\";\n outer.style.willChange = animateProperty;\n outer.style.height = usesMaxHeightRef.current ? \"auto\" : `${startHeight}px`;\n outer.style.maxHeight = `${startHeight}px`;\n rafRef.current = requestAnimationFrame(() => {\n rafRef.current = null;\n rafSecondRef.current = requestAnimationFrame(() => {\n rafSecondRef.current = null;\n outer.style.transition = transitionValue;\n if (usesMaxHeightRef.current) {\n outer.style.maxHeight = \"0px\";\n } else {\n outer.style.height = \"0px\";\n outer.style.maxHeight = \"0px\";\n }\n });\n });\n return () => {\n if (rafRef.current !== null) {\n cancelAnimationFrame(rafRef.current);\n rafRef.current = null;\n }\n if (rafSecondRef.current !== null) {\n cancelAnimationFrame(rafSecondRef.current);\n rafSecondRef.current = null;\n }\n if (resizeObserverRef.current) {\n resizeObserverRef.current.disconnect();\n resizeObserverRef.current = null;\n }\n };\n }, [forceMount, isOpen, mounted, timingFunction, duration, largeContentThreshold]);\n\n const handleTransitionEnd = (e: TransitionEvent) => {\n if (e.target !== outerRef.current) return;\n if (e.propertyName !== \"height\" && e.propertyName !== \"max-height\") return;\n const outer = outerRef.current;\n if (!outer) return;\n\n if (isOpenRef.current) {\n setIsAnimatingOpen(false);\n outer.style.transition = \"none\";\n outer.style.height = \"auto\";\n outer.style.maxHeight = \"none\";\n outer.style.overflow = \"\";\n outer.style.willChange = \"\";\n if (resizeObserverRef.current) {\n resizeObserverRef.current.disconnect();\n resizeObserverRef.current = null;\n }\n return;\n }\n setIsAnimatingClose(false);\n if (!forceMount) {\n outer.style.willChange = \"\";\n setMounted(false);\n } else {\n outer.style.transition = \"none\";\n outer.style.height = \"0px\";\n outer.style.maxHeight = \"0px\";\n outer.style.overflow = \"hidden\";\n outer.style.willChange = \"\";\n }\n };\n\n const allowRender = mounted || forceMount || isOpen;\n if (!allowRender) return null;\n\n const mergedStyle: JSX.CSSProperties = {\n ...(typeof style === \"object\" && style !== null && !Array.isArray(style)\n ? (style as JSX.CSSProperties)\n : {}),\n [\"--kamodui-accordion-duration\" as string]: duration,\n [\"--kamodui-accordion-timing-function\" as string]: timingFunction,\n };\n\n return (\n <div\n ref={outerRef}\n data-slot=\"accordion-content\"\n data-state={isOpen ? \"open\" : \"closed\"}\n onTransitionEnd={handleTransitionEnd}\n style={mergedStyle}\n class={cn(\n \"min-h-0 overflow-hidden\",\n (isAnimatingOpen || isAnimatingClose) && \"will-change-[height]\",\n )}\n aria-hidden={!isOpen && !isAnimatingClose}\n inert={!isOpen || undefined}\n {...rest}\n >\n <div\n ref={innerRef}\n data-slot=\"accordion-content-inner\"\n class={cn(\"min-h-0 min-w-0\", className)}\n >\n {children}\n </div>\n </div>\n );\n};\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\nimport { useAccordion } from \"./Accordion\";\nimport { useAccordionItem } from \"./AccordionItem\";\n\nexport type AccordionTriggerProps = JSX.ButtonHTMLAttributes<HTMLButtonElement> & {\n hideIndicator?: boolean;\n indicator?: ComponentChildren;\n children?: ComponentChildren;\n};\n\nconst DefaultIndicator = () => (\n <svg viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" fill=\"none\" aria-hidden=\"true\" focusable=\"false\">\n <path\n d=\"M4 6l4 4 4-4\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n);\n\nexport const AccordionTrigger = ({\n hideIndicator = false,\n indicator,\n children,\n class: className,\n onClick,\n ...rest\n}: AccordionTriggerProps) => {\n const { toggleValue } = useAccordion();\n const { value, isOpen, disabled } = useAccordionItem();\n\n return (\n <button\n type=\"button\"\n data-slot=\"accordion-trigger\"\n aria-expanded={isOpen}\n disabled={disabled}\n data-state={isOpen ? \"open\" : \"closed\"}\n class={cn(\n \"flex w-full items-center justify-between gap-2 rounded-md py-4 text-left text-sm font-medium outline-none transition-colors focus-visible:border-ring focus-visible:ring-2 focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50\",\n !isOpen && \"hover:bg-muted/40\",\n className,\n )}\n onClick={(event) => {\n if (disabled) return;\n toggleValue(value);\n onClick?.(event);\n }}\n {...rest}\n >\n <span data-slot=\"accordion-trigger-label\" class=\"min-w-0 flex-1 text-start\">\n {children}\n </span>\n {!hideIndicator ? (\n <span\n data-slot=\"accordion-trigger-indicator\"\n data-state={isOpen ? \"open\" : \"closed\"}\n class={cn(\n \"shrink-0 text-muted-foreground transition-transform duration-200\",\n isOpen && \"rotate-180\",\n )}\n >\n {indicator ?? <DefaultIndicator />}\n </span>\n ) : null}\n </button>\n );\n};\n","import { Accordion } from \"./Accordion\";\nimport { AccordionContent } from \"./AccordionContent\";\nimport { AccordionItem } from \"./AccordionItem\";\nimport { AccordionTrigger } from \"./AccordionTrigger\";\n\nexport { Accordion, AccordionContent, AccordionItem, AccordionTrigger };\n\nexport default {\n Root: Accordion,\n Item: AccordionItem,\n Trigger: AccordionTrigger,\n Content: AccordionContent,\n};\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/context-menu/ContextMenu.tsx","../src/components/context-menu/ContextMenuCheckboxItem.tsx","../src/components/context-menu/ContextMenuContent.tsx","../src/components/context-menu/ContextMenuGroup.tsx","../src/components/context-menu/ContextMenuItem.tsx","../src/components/context-menu/ContextMenuLabel.tsx","../src/components/context-menu/context-menu-radio-context.tsx","../src/components/context-menu/ContextMenuRadioGroup.tsx","../src/components/context-menu/ContextMenuRadioItem.tsx","../src/components/context-menu/ContextMenuSeparator.tsx","../src/components/context-menu/ContextMenuShortcut.tsx","../src/components/context-menu/context-menu-sub-context.tsx","../src/components/context-menu/ContextMenuSub.tsx","../src/components/context-menu/ContextMenuSubContent.tsx","../src/components/context-menu/ContextMenuSubTrigger.tsx","../src/components/context-menu/ContextMenuTrigger.tsx"],"names":["useMemo","signal","useEffect","jsx","useRef","createContext","useContext","useState","jsxs"],"mappings":"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","file":"chunk-UIA74JVN.js","sourcesContent":["import { signal } from \"@preact/signals\";\nimport type { ComponentChildren, JSX } from \"preact\";\nimport { createContext } from \"preact\";\nimport { useContext, useEffect, useMemo, useRef } from \"preact/hooks\";\nimport { cn } from \"../../lib/utils\";\n\nexport type ContextMenuPoint = { x: number; y: number };\n\nexport type ContextMenuContextValue = {\n open: ReturnType<typeof signal<boolean>>;\n setOpen: (next: boolean) => void;\n position: ReturnType<typeof signal<ContextMenuPoint>>;\n setPosition: (p: ContextMenuPoint) => void;\n contentWrapperRef: { current: HTMLDivElement | null };\n};\n\nconst ContextMenuContext = createContext<ContextMenuContextValue | null>(null);\n\nexport const useContextMenu = () => {\n const ctx = useContext(ContextMenuContext);\n if (!ctx) throw new Error(\"ContextMenu subcomponents must be used within ContextMenu\");\n return ctx;\n};\n\nexport type ContextMenuProps = JSX.HTMLAttributes<HTMLDivElement> & {\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n children?: ComponentChildren;\n};\n\nexport const ContextMenu = ({\n open: openProp,\n defaultOpen = false,\n onOpenChange,\n class: className,\n children,\n ...rest\n}: ContextMenuProps) => {\n const isControlled = openProp !== undefined;\n const open = useMemo(() => signal(isControlled ? Boolean(openProp) : defaultOpen), []);\n const position = useMemo(() => signal<ContextMenuPoint>({ x: 0, y: 0 }), []);\n const contentWrapperRef = useRef<HTMLDivElement | null>(null);\n\n useEffect(() => {\n if (isControlled && openProp !== undefined) {\n open.value = openProp;\n }\n }, [openProp, isControlled, open]);\n\n const setOpen = (next: boolean) => {\n onOpenChange?.(next);\n if (!isControlled) {\n open.value = next;\n }\n };\n\n const setOpenRef = useRef(setOpen);\n setOpenRef.current = setOpen;\n\n return (\n <ContextMenuContext.Provider\n value={{\n open,\n setOpen: (next) => setOpenRef.current(next),\n position,\n setPosition: (p) => {\n position.value = p;\n },\n contentWrapperRef,\n }}\n >\n <div\n data-slot=\"context-menu\"\n data-state={open.value ? \"open\" : \"closed\"}\n class={cn(\"relative inline-flex\", className)}\n {...rest}\n >\n {children}\n </div>\n </ContextMenuContext.Provider>\n );\n};\n","import { signal } from \"@preact/signals\";\nimport type { ComponentChildren, JSX } from \"preact\";\nimport { useEffect, useMemo } from \"preact/hooks\";\nimport { cn } from \"../../lib/utils\";\n\nexport type ContextMenuCheckboxItemProps = Omit<\n JSX.ButtonHTMLAttributes<HTMLButtonElement>,\n \"children\"\n> & {\n checked?: boolean;\n defaultChecked?: boolean;\n onCheckedChange?: (checked: boolean) => void;\n children?: ComponentChildren;\n};\n\nexport const ContextMenuCheckboxItem = ({\n checked: checkedProp,\n defaultChecked = false,\n onCheckedChange,\n class: className,\n children,\n onClick,\n ...rest\n}: ContextMenuCheckboxItemProps) => {\n const internal = useMemo(() => signal(defaultChecked), []);\n const isControlled = checkedProp !== undefined;\n\n useEffect(() => {\n if (checkedProp !== undefined) {\n internal.value = checkedProp;\n }\n }, [checkedProp, internal]);\n\n const checked = isControlled ? Boolean(checkedProp) : internal.value;\n\n return (\n <button\n type=\"button\"\n role=\"menuitemcheckbox\"\n data-slot=\"context-menu-checkbox-item\"\n aria-checked={checked}\n class={cn(\n \"relative flex w-full cursor-default select-none items-center gap-2 rounded-sm py-1.5 ps-8 pe-2 text-sm outline-none\",\n \"focus:bg-accent focus:text-accent-foreground\",\n \"data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n className,\n )}\n onClick={(event) => {\n onClick?.(event);\n if (event.defaultPrevented) return;\n const next = !checked;\n if (!isControlled) {\n internal.value = next;\n }\n onCheckedChange?.(next);\n }}\n {...rest}\n >\n <span\n class=\"pointer-events-none absolute start-2 flex size-3.5 items-center justify-center\"\n aria-hidden\n >\n {checked ? (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n class=\"size-4\"\n >\n <path d=\"M20 6 9 17l-5-5\" />\n </svg>\n ) : null}\n </span>\n {children}\n </button>\n );\n};\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { useEffect, useLayoutEffect, useRef, useState } from \"preact/hooks\";\nimport { createPortal } from \"../../lib/createPortal\";\nimport { createDismissableLayer } from \"../../lib/interactive\";\nimport { cn } from \"../../lib/utils\";\nimport { useContextMenu } from \"./ContextMenu\";\n\nexport type ContextMenuContentProps = JSX.HTMLAttributes<HTMLDivElement> & {\n children?: ComponentChildren;\n};\n\nconst clamp = (v: number, min: number, max: number) => Math.min(Math.max(v, min), max);\n\nexport const ContextMenuContent = ({\n class: className,\n children,\n style,\n ...rest\n}: ContextMenuContentProps) => {\n const { open, setOpen, position, contentWrapperRef } = useContextMenu();\n const innerRef = useRef<HTMLDivElement | null>(null);\n const pt = position.value ?? { x: 0, y: 0 };\n const [fixedPos, setFixedPos] = useState(() => ({ left: pt.x, top: pt.y }));\n\n const isOpen = Boolean(open.value);\n const px = pt.x;\n const py = pt.y;\n\n const assignRef = (node: HTMLDivElement | null) => {\n innerRef.current = node;\n contentWrapperRef.current = node;\n };\n\n useLayoutEffect(() => {\n if (!isOpen) return;\n const el = innerRef.current;\n if (!el) return;\n const rect = el.getBoundingClientRect();\n const margin = 8;\n const maxX = window.innerWidth - rect.width - margin;\n const maxY = window.innerHeight - rect.height - margin;\n setFixedPos({\n left: clamp(px, margin, Math.max(margin, maxX)),\n top: clamp(py, margin, Math.max(margin, maxY)),\n });\n }, [isOpen, px, py]);\n\n useEffect(() => {\n const setOpenRef = { current: setOpen };\n setOpenRef.current = setOpen;\n const layer = createDismissableLayer({\n root: () => contentWrapperRef.current,\n open: () => Boolean(open.value),\n onDismiss: () => setOpenRef.current(false),\n });\n return () => layer.dispose();\n }, [open, setOpen, contentWrapperRef]);\n\n if (!isOpen) return null;\n\n const inlineStyle =\n typeof style === \"object\" && style !== null\n ? { position: \"fixed\" as const, left: fixedPos.left, top: fixedPos.top, zIndex: 50, ...style }\n : ({\n position: \"fixed\" as const,\n left: fixedPos.left,\n top: fixedPos.top,\n zIndex: 50,\n } as const);\n\n return createPortal(\n <div\n ref={assignRef}\n data-slot=\"context-menu-content\"\n role=\"presentation\"\n class={cn(\"min-w-40 outline-none\", className)}\n style={inlineStyle}\n {...rest}\n >\n <div\n role=\"menu\"\n class=\"text-popover-foreground max-h-[min(24rem,calc(100dvh-2rem))] overflow-y-auto rounded-md border bg-popover p-1 shadow-md\"\n >\n {children}\n </div>\n </div>,\n document.body,\n );\n};\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\n\nexport type ContextMenuGroupProps = JSX.HTMLAttributes<HTMLDivElement> & {\n children?: ComponentChildren;\n};\n\nexport const ContextMenuGroup = ({\n class: className,\n children,\n ...rest\n}: ContextMenuGroupProps) => (\n <div data-slot=\"context-menu-group\" role=\"group\" class={cn(className)} {...rest}>\n {children}\n </div>\n);\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { tv, type VariantProps } from \"tailwind-variants\";\nimport { useContextMenu } from \"./ContextMenu\";\n\nexport const contextMenuItem = tv({\n base: [\n \"relative flex w-full cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none\",\n \"focus:bg-accent focus:text-accent-foreground\",\n \"data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n \"[&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n ],\n variants: {\n variant: {\n default: \"\",\n destructive:\n \"text-destructive focus:bg-destructive/10 focus:text-destructive dark:focus:bg-destructive/20\",\n },\n inset: {\n true: \"ps-8\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n inset: false,\n },\n});\n\nexport type ContextMenuItemProps = JSX.ButtonHTMLAttributes<HTMLButtonElement> &\n VariantProps<typeof contextMenuItem> & {\n children?: ComponentChildren;\n };\n\nexport const ContextMenuItem = ({\n inset = false,\n variant = \"default\",\n class: className,\n children,\n onClick,\n ...rest\n}: ContextMenuItemProps) => {\n const { setOpen } = useContextMenu();\n return (\n <button\n type=\"button\"\n role=\"menuitem\"\n data-slot=\"context-menu-item\"\n data-inset={inset ? \"true\" : undefined}\n data-variant={variant}\n class={contextMenuItem({ inset, variant, class: className as string | undefined })}\n onClick={(event) => {\n onClick?.(event);\n if (event.defaultPrevented) return;\n setOpen(false);\n }}\n {...rest}\n >\n {children}\n </button>\n );\n};\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\n\nexport type ContextMenuLabelProps = JSX.HTMLAttributes<HTMLDivElement> & {\n children?: ComponentChildren;\n inset?: boolean;\n};\n\nexport const ContextMenuLabel = ({\n inset = false,\n class: className,\n children,\n ...rest\n}: ContextMenuLabelProps) => (\n <div\n data-slot=\"context-menu-label\"\n data-inset={inset ? \"true\" : undefined}\n class={cn(\"text-muted-foreground px-2 py-1.5 text-xs font-medium\", inset && \"ps-8\", className)}\n {...rest}\n >\n {children}\n </div>\n);\n","import type { ComponentChildren } from \"preact\";\nimport { createContext } from \"preact\";\nimport { useContext } from \"preact/hooks\";\n\nexport type ContextMenuRadioContextValue = {\n value: string;\n setValue: (next: string) => void;\n};\n\nconst ContextMenuRadioContext = createContext<ContextMenuRadioContextValue | null>(null);\n\nexport const ContextMenuRadioProvider = ({\n children,\n value,\n}: {\n children: ComponentChildren;\n value: ContextMenuRadioContextValue;\n}) => <ContextMenuRadioContext.Provider value={value}>{children}</ContextMenuRadioContext.Provider>;\n\nexport const useContextMenuRadio = () => {\n const ctx = useContext(ContextMenuRadioContext);\n if (!ctx) throw new Error(\"ContextMenuRadioItem must be used within ContextMenuRadioGroup\");\n return ctx;\n};\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { useState } from \"preact/hooks\";\nimport { cn } from \"../../lib/utils\";\nimport { ContextMenuRadioProvider } from \"./context-menu-radio-context\";\n\nexport type ContextMenuRadioGroupProps = JSX.HTMLAttributes<HTMLDivElement> & {\n value?: string;\n defaultValue?: string;\n onValueChange?: (value: string) => void;\n children?: ComponentChildren;\n};\n\nexport const ContextMenuRadioGroup = ({\n value: valueProp,\n defaultValue,\n onValueChange,\n class: className,\n children,\n ...rest\n}: ContextMenuRadioGroupProps) => {\n const [inner, setInner] = useState(() => defaultValue ?? \"\");\n const isControlled = valueProp !== undefined;\n const current = isControlled ? valueProp! : inner;\n const setValue = (next: string) => {\n onValueChange?.(next);\n if (!isControlled) setInner(next);\n };\n\n return (\n <ContextMenuRadioProvider value={{ value: current, setValue }}>\n <div role=\"radiogroup\" data-slot=\"context-menu-radio-group\" class={cn(className)} {...rest}>\n {children}\n </div>\n </ContextMenuRadioProvider>\n );\n};\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\nimport { useContextMenuRadio } from \"./context-menu-radio-context\";\n\nexport type ContextMenuRadioItemProps = JSX.ButtonHTMLAttributes<HTMLButtonElement> & {\n value: string;\n children?: ComponentChildren;\n};\n\nexport const ContextMenuRadioItem = ({\n value,\n class: className,\n children,\n onClick,\n ...rest\n}: ContextMenuRadioItemProps) => {\n const radio = useContextMenuRadio();\n const selected = radio.value === value;\n\n return (\n <button\n type=\"button\"\n role=\"menuitemradio\"\n data-slot=\"context-menu-radio-item\"\n aria-checked={selected}\n class={cn(\n \"relative flex w-full cursor-default select-none items-center gap-2 rounded-sm py-1.5 ps-8 pe-2 text-sm outline-none\",\n \"focus:bg-accent focus:text-accent-foreground\",\n \"data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n className,\n )}\n onClick={(event) => {\n onClick?.(event);\n if (event.defaultPrevented) return;\n radio.setValue(value);\n }}\n {...rest}\n >\n <span\n class=\"pointer-events-none absolute start-2 flex size-3.5 items-center justify-center\"\n aria-hidden\n >\n {selected ? <span class=\"size-2 rounded-full bg-current\" /> : null}\n </span>\n {children}\n </button>\n );\n};\n","import type { JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\n\nexport type ContextMenuSeparatorProps = JSX.HTMLAttributes<HTMLHRElement>;\n\nexport const ContextMenuSeparator = ({ class: className, ...rest }: ContextMenuSeparatorProps) => (\n <hr\n data-slot=\"context-menu-separator\"\n class={cn(\"bg-border -mx-1 my-1 h-px border-0\", className)}\n {...rest}\n />\n);\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\n\nexport type ContextMenuShortcutProps = JSX.HTMLAttributes<HTMLSpanElement> & {\n children?: ComponentChildren;\n};\n\nexport const ContextMenuShortcut = ({\n class: className,\n children,\n ...rest\n}: ContextMenuShortcutProps) => (\n <span\n data-slot=\"context-menu-shortcut\"\n class={cn(\"text-muted-foreground ms-auto text-xs tracking-widest\", className)}\n {...rest}\n >\n {children}\n </span>\n);\n","import { signal } from \"@preact/signals\";\nimport type { ComponentChildren } from \"preact\";\nimport { createContext } from \"preact\";\nimport { useContext, useMemo } from \"preact/hooks\";\n\nexport type ContextMenuSubContextValue = {\n open: ReturnType<typeof signal<boolean>>;\n setOpen: (next: boolean) => void;\n};\n\nconst ContextMenuSubContext = createContext<ContextMenuSubContextValue | null>(null);\n\nexport const ContextMenuSubProvider = ({\n children,\n value,\n}: {\n children: ComponentChildren;\n value: ContextMenuSubContextValue;\n}) => <ContextMenuSubContext.Provider value={value}>{children}</ContextMenuSubContext.Provider>;\n\nexport const useContextMenuSub = () => {\n const ctx = useContext(ContextMenuSubContext);\n if (!ctx) throw new Error(\"ContextMenu subcomponents must be used within ContextMenuSub\");\n return ctx;\n};\n\nexport const useMemoContextMenuSub = (): ContextMenuSubContextValue =>\n useMemo(() => {\n const open = signal(false);\n return {\n open,\n setOpen: (next) => {\n open.value = next;\n },\n };\n }, []);\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\nimport { ContextMenuSubProvider, useMemoContextMenuSub } from \"./context-menu-sub-context\";\n\nexport type ContextMenuSubProps = JSX.HTMLAttributes<HTMLDivElement> & {\n children?: ComponentChildren;\n};\n\nexport const ContextMenuSub = ({ class: className, children, ...rest }: ContextMenuSubProps) => {\n const ctx = useMemoContextMenuSub();\n\n return (\n <ContextMenuSubProvider value={ctx}>\n <div\n data-slot=\"context-menu-sub\"\n class={cn(\"relative\", className)}\n onPointerLeave={() => {\n ctx.setOpen(false);\n }}\n {...rest}\n >\n {children}\n </div>\n </ContextMenuSubProvider>\n );\n};\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\nimport { useContextMenuSub } from \"./context-menu-sub-context\";\n\nexport type ContextMenuSubContentProps = JSX.HTMLAttributes<HTMLDivElement> & {\n children?: ComponentChildren;\n};\n\nexport const ContextMenuSubContent = ({\n class: className,\n children,\n onPointerEnter,\n ...rest\n}: ContextMenuSubContentProps) => {\n const sub = useContextMenuSub();\n\n if (!sub.open.value) return null;\n\n return (\n <div\n role=\"menu\"\n data-slot=\"context-menu-sub-content\"\n data-state=\"open\"\n class={cn(\n \"absolute start-full top-0 z-50 min-w-40 rounded-md border border-border bg-popover p-1 text-popover-foreground shadow-md outline-none ms-1 rtl:me-1 rtl:ms-0\",\n className,\n )}\n onPointerEnter={(e) => {\n onPointerEnter?.(e);\n sub.setOpen(true);\n }}\n {...rest}\n >\n {children}\n </div>\n );\n};\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\nimport { useContextMenuSub } from \"./context-menu-sub-context\";\n\nconst ChevronRight = ({ class: className }: { class?: string }) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n class={cn(\"size-4 shrink-0 rtl:rotate-180\", className)}\n aria-hidden\n >\n <path d=\"m9 18 6-6-6-6\" />\n </svg>\n);\n\nexport type ContextMenuSubTriggerProps = JSX.ButtonHTMLAttributes<HTMLButtonElement> & {\n children?: ComponentChildren;\n};\n\nexport const ContextMenuSubTrigger = ({\n class: className,\n children,\n onClick,\n onPointerEnter,\n ...rest\n}: ContextMenuSubTriggerProps) => {\n const sub = useContextMenuSub();\n const open = sub.open.value;\n\n return (\n <button\n type=\"button\"\n role=\"menuitem\"\n data-slot=\"context-menu-sub-trigger\"\n data-state={open ? \"open\" : \"closed\"}\n aria-expanded={open}\n aria-haspopup=\"menu\"\n class={cn(\n \"flex w-full cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-start text-sm outline-none\",\n \"focus:bg-accent focus:text-accent-foreground\",\n \"data-[state=open]:bg-accent data-[state=open]:text-accent-foreground\",\n \"[&_svg]:shrink-0\",\n className,\n )}\n onPointerEnter={(e) => {\n onPointerEnter?.(e);\n if (e.defaultPrevented) return;\n sub.setOpen(true);\n }}\n onClick={(e) => {\n onClick?.(e);\n if (e.defaultPrevented) return;\n sub.setOpen(!open);\n }}\n {...rest}\n >\n {children}\n <ChevronRight class=\"ms-auto\" />\n </button>\n );\n};\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { useRef } from \"preact/hooks\";\nimport { cn } from \"../../lib/utils\";\nimport { useContextMenu } from \"./ContextMenu\";\n\nconst LONG_PRESS_MS = 500;\n\nexport type ContextMenuTriggerProps = JSX.HTMLAttributes<HTMLDivElement> & {\n children?: ComponentChildren;\n};\n\nexport const ContextMenuTrigger = ({\n children,\n class: className,\n onContextMenu,\n onPointerDown,\n onPointerUp,\n onPointerCancel,\n onPointerLeave,\n ...rest\n}: ContextMenuTriggerProps) => {\n const { setOpen, setPosition } = useContextMenu();\n const longPressTimer = useRef<ReturnType<typeof setTimeout> | null>(null);\n const lastPointer = useRef({ x: 0, y: 0 });\n\n const clearLongPress = () => {\n if (longPressTimer.current !== null) {\n clearTimeout(longPressTimer.current);\n longPressTimer.current = null;\n }\n };\n\n return (\n <div\n data-slot=\"context-menu-trigger\"\n class={cn(className)}\n onContextMenu={(event) => {\n event.preventDefault();\n setPosition({ x: event.clientX, y: event.clientY });\n setOpen(true);\n onContextMenu?.(event);\n }}\n onPointerDown={(e) => {\n onPointerDown?.(e);\n if (e.defaultPrevented) return;\n if (e.pointerType === \"touch\") {\n lastPointer.current = { x: e.clientX, y: e.clientY };\n clearLongPress();\n longPressTimer.current = setTimeout(() => {\n longPressTimer.current = null;\n setPosition(lastPointer.current);\n setOpen(true);\n }, LONG_PRESS_MS);\n }\n }}\n onPointerUp={(e) => {\n onPointerUp?.(e);\n clearLongPress();\n }}\n onPointerCancel={(e) => {\n onPointerCancel?.(e);\n clearLongPress();\n }}\n onPointerLeave={(e) => {\n onPointerLeave?.(e);\n if (e.pointerType === \"touch\") clearLongPress();\n }}\n {...rest}\n >\n {children}\n </div>\n );\n};\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/alert/Alert.tsx","../src/components/alert/AlertAction.tsx","../src/components/alert/AlertDescription.tsx","../src/components/alert/AlertTitle.tsx"],"names":["jsx"],"mappings":";;;;AAGO,IAAM,QAAQ,EAAA,CAAG;AAAA,EACtB,IAAA,EAAM;AAAA,IACJ,0FAAA;AAAA,IACA,sFAAA;AAAA,IACA,0DAAA;AAAA,IACA,mDAAA;AAAA,IACA,iHAAA;AAAA,IACA,2BAAA;AAAA,IACA;AAAA,GACF;AAAA,EACA,QAAA,EAAU;AAAA,IACR,OAAA,EAAS;AAAA,MACP,OAAA,EAAS,4CAAA;AAAA;AAAA,MAET,WAAA,EACE,iHAAA;AAAA,MACF,OAAA,EAAS,iDAAA;AAAA,MACT,SAAA,EAAW,+DAAA;AAAA,MACX,IAAA,EAAM,2CAAA;AAAA,MACN,OAAA,EACE,gGAAA;AAAA,MACF,OAAA,EAAS,iDAAA;AAAA,MACT,KAAA,EAAO;AAAA;AACT,GACF;AAAA,EACA,eAAA,EAAiB;AAAA,IACf,OAAA,EAAS;AAAA;AAEb,CAAC;AAQM,IAAM,KAAA,GAAQ,CAAC,EAAE,QAAA,EAAU,SAAS,KAAA,EAAO,SAAA,EAAW,GAAG,IAAA,EAAK,qBACnE,GAAA;AAAA,EAAC,KAAA;AAAA,EAAA;AAAA,IACC,IAAA,EAAK,OAAA;AAAA,IACL,WAAA,EAAU,OAAA;AAAA,IACV,gBAAc,OAAA,IAAW,SAAA;AAAA,IACzB,OAAO,KAAA,CAAM,EAAE,OAAA,EAAS,KAAA,EAAO,WAAiC,CAAA;AAAA,IAC/D,GAAG,IAAA;AAAA,IAEH;AAAA;AACH;ACxCK,IAAM,WAAA,GAAc,CAAC,EAAE,KAAA,EAAO,WAAW,QAAA,EAAU,GAAG,IAAA,EAAK,qBAChEA,GAAAA;AAAA,EAAC,KAAA;AAAA,EAAA;AAAA,IACC,WAAA,EAAU,cAAA;AAAA,IACV,KAAA,EAAO,EAAA,CAAG,8CAAA,EAAgD,SAAS,CAAA;AAAA,IAClE,GAAG,IAAA;AAAA,IAEH;AAAA;AACH;ACRK,IAAM,mBAAmB,CAAC;AAAA,EAC/B,QAAA;AAAA,EACA,KAAA,EAAO,SAAA;AAAA,EACP,GAAG;AACL,CAAA,qBACEA,GAAAA;AAAA,EAAC,KAAA;AAAA,EAAA;AAAA,IACC,WAAA,EAAU,mBAAA;AAAA,IACV,KAAA,EAAO,EAAA;AAAA,MACL,4KAAA;AAAA,MACA;AAAA,KACF;AAAA,IACC,GAAG,IAAA;AAAA,IAEH;AAAA;AACH;ACdK,IAAM,UAAA,GAAa,CAAC,EAAE,QAAA,EAAU,OAAO,SAAA,EAAW,GAAG,IAAA,EAAK,qBAC/DA,GAAAA;AAAA,EAAC,IAAA;AAAA,EAAA;AAAA,IACC,WAAA,EAAU,aAAA;AAAA,IACV,KAAA,EAAO,EAAA;AAAA,MACL,+JAAA;AAAA,MACA;AAAA,KACF;AAAA,IACC,GAAG,IAAA;AAAA,IAEH;AAAA;AACH","file":"chunk-UNWEH4Z6.js","sourcesContent":["import type { ComponentChildren, JSX } from \"preact\";\nimport { tv, type VariantProps } from \"tailwind-variants\";\n\nexport const alert = tv({\n base: [\n \"group/alert relative grid w-full gap-y-0.5 rounded-lg border px-4 py-3 text-left text-sm\",\n \"[&:has(>[data-slot=alert-action])]:relative [&:has(>[data-slot=alert-action])]:pr-18\",\n \"[&:has(>svg)]:grid-cols-[auto_1fr] [&:has(>svg)]:gap-x-3\",\n \"[&:has(>svg)_[data-slot=alert-title]]:col-start-2\",\n \"[&:has(>svg)_[data-slot=alert-description]]:col-start-2 [&:has(>svg)_[data-slot=alert-description]]:row-start-2\",\n \"[&:has(>svg)]:items-start\",\n \"[&>svg]:shrink-0 [&>svg]:translate-y-0.5 [&>svg]:text-current [&>svg:not([class*='size-'])]:size-4\",\n ],\n variants: {\n variant: {\n default: \"border-border bg-card text-card-foreground\",\n /** shadcn parity — title + icon use `text-destructive`; description muted via descendant selector. */\n destructive:\n \"border-border bg-card text-destructive *:data-[slot=alert-description]:text-destructive/90 [&>svg]:text-current\",\n primary: \"border-primary/30 bg-primary/10 text-foreground\",\n secondary: \"border-secondary/40 bg-secondary/40 text-secondary-foreground\",\n info: \"border-info/35 bg-info/10 text-foreground\",\n success:\n \"border-success/50 bg-success/18 text-foreground shadow-[inset_0_1px_0_rgb(255_255_255_/_0.28)]\",\n warning: \"border-warning/40 bg-warning/12 text-foreground\",\n error: \"border-error/40 bg-error/10 text-foreground\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n});\n\nexport type AlertProps = JSX.HTMLAttributes<HTMLDivElement> &\n VariantProps<typeof alert> & {\n children?: ComponentChildren;\n };\n\n/** For icon + title + description layout, put the icon SVG as the first child (sibling before `AlertTitle`) so the description aligns with the title text. */\nexport const Alert = ({ children, variant, class: className, ...rest }: AlertProps) => (\n <div\n role=\"alert\"\n data-slot=\"alert\"\n data-variant={variant ?? \"default\"}\n class={alert({ variant, class: className as string | undefined })}\n {...rest}\n >\n {children}\n </div>\n);\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\n\nexport type AlertActionProps = JSX.HTMLAttributes<HTMLDivElement> & {\n children?: ComponentChildren;\n};\n\n/** Top-end action slot; Alert reserves horizontal padding when this is present. */\nexport const AlertAction = ({ class: className, children, ...rest }: AlertActionProps) => (\n <div\n data-slot=\"alert-action\"\n class={cn(\"absolute end-3 top-3 flex items-center gap-2\", className)}\n {...rest}\n >\n {children}\n </div>\n);\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\n\nexport type AlertDescriptionProps = JSX.HTMLAttributes<HTMLDivElement> & {\n children?: ComponentChildren;\n};\n\nexport const AlertDescription = ({\n children,\n class: className,\n ...rest\n}: AlertDescriptionProps) => (\n <div\n data-slot=\"alert-description\"\n class={cn(\n \"text-sm leading-relaxed text-balance text-muted-foreground md:text-pretty [&_a]:underline [&_a]:underline-offset-3 [&_a]:hover:text-foreground [&_p:not(:last-child)]:mb-4\",\n className,\n )}\n {...rest}\n >\n {children}\n </div>\n);\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\n\nexport type AlertTitleProps = JSX.HTMLAttributes<HTMLHeadingElement> & {\n children?: ComponentChildren;\n};\n\nexport const AlertTitle = ({ children, class: className, ...rest }: AlertTitleProps) => (\n <h5\n data-slot=\"alert-title\"\n class={cn(\n \"flex items-center gap-2 text-sm font-medium leading-snug [&_svg]:size-4 [&_svg]:shrink-0 [&_a]:underline [&_a]:underline-offset-3 [&_a]:hover:text-foreground\",\n className,\n )}\n {...rest}\n >\n {children}\n </h5>\n);\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/toggle/Toggle.tsx","../src/components/toggle/index.ts"],"names":[],"mappings":";;;;;AAKA,IAAM,SAAS,EAAA,CAAG;AAAA,EAChB,IAAA,EAAM;AAAA,IACJ,yGAAA;AAAA,IACA,qFAAA;AAAA,IACA,qDAAA;AAAA,IACA,qDAAA;AAAA,IACA,yCAAA;AAAA,IACA,2EAAA;AAAA,IACA,kDAAA;AAAA,IACA;AAAA,GACF;AAAA,EACA,QAAA,EAAU;AAAA,IACR,OAAA,EAAS;AAAA,MACP,OAAA,EAAS,2DAAA;AAAA,MACT,OAAA,EACE;AAAA,KACJ;AAAA,IACA,IAAA,EAAM;AAAA,MACJ,EAAA,EAAI,6CAAA;AAAA,MACJ,OAAA,EAAS,kBAAA;AAAA,MACT,EAAA,EAAI,4BAAA;AAAA,MACJ,IAAA,EAAM;AAAA;AACR,GACF;AAAA,EACA,eAAA,EAAiB;AAAA,IACf,OAAA,EAAS,SAAA;AAAA,IACT,IAAA,EAAM;AAAA;AAEV,CAAC,CAAA;AAaM,IAAM,SAAS,CAAC;AAAA,EACrB,cAAA,GAAiB,KAAA;AAAA,EACjB,OAAA;AAAA,EACA,eAAA;AAAA,EACA,OAAA;AAAA,EACA,IAAA;AAAA,EACA,KAAA,EAAO,SAAA;AAAA,EACP,QAAA;AAAA,EACA,OAAA;AAAA,EACA,GAAG;AACL,CAAA,KAAmB;AACjB,EAAA,MAAM,CAAC,YAAA,EAAc,eAAe,CAAA,GAAI,SAAS,cAAc,CAAA;AAC/D,EAAA,MAAM,YAAA,GAAe,OAAO,OAAA,KAAY,SAAA;AACxC,EAAA,MAAM,WAAA,GAAc,eAAe,OAAA,GAAU,YAAA;AAE7C,EAAA,uBACE,GAAA;AAAA,IAAC,QAAA;AAAA,IAAA;AAAA,MACC,IAAA,EAAK,QAAA;AAAA,MACL,cAAA,EAAc,WAAA;AAAA,MACd,WAAA,EAAU,QAAA;AAAA,MACV,gBAAc,OAAA,IAAW,SAAA;AAAA,MACzB,aAAW,IAAA,IAAQ,SAAA;AAAA,MACnB,YAAA,EAAY,cAAc,IAAA,GAAO,KAAA;AAAA,MACjC,KAAA,EAAO,GAAG,MAAA,CAAO,EAAE,SAAS,IAAA,EAAM,KAAA,EAAO,SAAA,EAAW,CAAC,CAAA;AAAA,MACrD,OAAA,EAAS,CAAC,KAAA,KAAU;AAClB,QAAA,MAAM,UAAU,CAAC,WAAA;AACjB,QAAA,IAAI,CAAC,YAAA,EAAc;AACjB,UAAA,eAAA,CAAgB,OAAO,CAAA;AAAA,QACzB;AACA,QAAA,eAAA,GAAkB,OAAO,CAAA;AACzB,QAAA,OAAA,GAAU,KAAK,CAAA;AAAA,MACjB,CAAA;AAAA,MACC,GAAG,IAAA;AAAA,MAEH;AAAA;AAAA,GACH;AAEJ;;;AC/EA,IAAO,cAAA,GAAQ","file":"chunk-V2MG5Y5F.js","sourcesContent":["import type { ComponentChildren, JSX } from \"preact\";\nimport { useState } from \"preact/hooks\";\nimport { tv, type VariantProps } from \"tailwind-variants\";\nimport { cn } from \"../../lib/utils\";\n\nconst toggle = tv({\n base: [\n \"inline-flex shrink-0 items-center justify-center gap-1 rounded-sm text-xs font-medium whitespace-nowrap\",\n \"[&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-3.5\",\n \"data-[size=sm]:[&_svg:not([class*='size-'])]:size-3\",\n \"data-[size=lg]:[&_svg:not([class*='size-'])]:size-4\",\n \"select-none transition-all outline-none\",\n \"focus-visible:border-ring focus-visible:ring-2 focus-visible:ring-ring/45\",\n \"disabled:pointer-events-none disabled:opacity-50\",\n \"data-[state=on]:bg-accent data-[state=on]:text-accent-foreground data-[state=on]:shadow-xs\",\n ],\n variants: {\n variant: {\n default: \"bg-transparent hover:bg-muted hover:text-muted-foreground\",\n outline:\n \"border border-input/80 bg-transparent shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/25 dark:border-input/80 dark:hover:bg-input/45\",\n },\n size: {\n sm: \"h-7 min-w-7 px-1.5 text-[11px] leading-none\",\n default: \"h-8 min-w-8 px-2\",\n lg: \"h-9 min-w-9 px-2.5 text-sm\",\n icon: \"size-8 p-0\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n});\n\ntype ToggleVariants = VariantProps<typeof toggle>;\n\nexport type ToggleProps = Omit<JSX.ButtonHTMLAttributes<HTMLButtonElement>, \"class\"> &\n ToggleVariants & {\n class?: string;\n defaultPressed?: boolean;\n pressed?: boolean;\n onPressedChange?: (next: boolean) => void;\n children?: ComponentChildren;\n };\n\nexport const Toggle = ({\n defaultPressed = false,\n pressed,\n onPressedChange,\n variant,\n size,\n class: className,\n children,\n onClick,\n ...rest\n}: ToggleProps) => {\n const [localPressed, setLocalPressed] = useState(defaultPressed);\n const isControlled = typeof pressed === \"boolean\";\n const nextPressed = isControlled ? pressed : localPressed;\n\n return (\n <button\n type=\"button\"\n aria-pressed={nextPressed}\n data-slot=\"toggle\"\n data-variant={variant ?? \"default\"}\n data-size={size ?? \"default\"}\n data-state={nextPressed ? \"on\" : \"off\"}\n class={cn(toggle({ variant, size, class: className }))}\n onClick={(event) => {\n const updated = !nextPressed;\n if (!isControlled) {\n setLocalPressed(updated);\n }\n onPressedChange?.(updated);\n onClick?.(event);\n }}\n {...rest}\n >\n {children}\n </button>\n );\n};\n","import { Toggle } from \"./Toggle\";\n\nexport { Toggle };\n\nexport default Toggle;\n"]}
|