@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.
Files changed (336) hide show
  1. package/LICENSE.md +9 -0
  2. package/README.md +12 -0
  3. package/dist/{Accordion-D1PiNspd.d.ts → Accordion-BiCBkB8o.d.ts} +7 -1
  4. package/dist/{AlertDialog-GadhKjPC.d.ts → AlertDialog-CZ2taZg4.d.ts} +3 -3
  5. package/dist/Button-OI3VvO-J.d.ts +84 -0
  6. package/dist/{Collapsible-CW1hQwqV.d.ts → Collapsible-BdQqvk35.d.ts} +6 -1
  7. package/dist/{ComboboxValue-BGfXgtZt.d.ts → ComboboxValue-Cq6zoDkt.d.ts} +1 -1
  8. package/dist/{Dialog-BOIteLfe.d.ts → Dialog-DdD1sMwk.d.ts} +12 -1
  9. package/dist/{DialogContent-cQHSRQdT.d.ts → DialogContent-YWzwWdSv.d.ts} +6 -1
  10. package/dist/{Drawer-CdjXZxxK.d.ts → Drawer-8xfn9KLf.d.ts} +2 -2
  11. package/dist/{Dropdown-CVbWVKok.d.ts → Dropdown-CzDJJgXQ.d.ts} +32 -27
  12. package/dist/{FieldTitle-aSgThW-B.d.ts → FieldTitle-hsI0Y6Zm.d.ts} +13 -13
  13. package/dist/{HoverCard-aVEEtkyO.d.ts → HoverCard-CBBr-tT9.d.ts} +14 -14
  14. package/dist/{Input-Cem05el9.d.ts → Input-C_X0Xpn2.d.ts} +11 -11
  15. package/dist/{PopoverTrigger-CH_Kx2mn.d.ts → PopoverTrigger-CIPAh0h0.d.ts} +14 -14
  16. package/dist/{RadioGroup-BaElzLwa.d.ts → RadioGroup-BDF3NaXQ.d.ts} +8 -8
  17. package/dist/{Sheet-DZ-p-aHY.d.ts → Sheet-DVt5iTiK.d.ts} +1 -1
  18. package/dist/{SidebarProvider-Bx7-BdQn.d.ts → SidebarProvider-CoVCItNd.d.ts} +18 -18
  19. package/dist/{Switch-CTTkNdqF.d.ts → Switch-BcNJFeRY.d.ts} +8 -8
  20. package/dist/{Tabs-CR-thcs6.d.ts → Tabs-CrXH3YED.d.ts} +18 -9
  21. package/dist/{Textarea-DbKkduOG.d.ts → Textarea-CST17pYW.d.ts} +11 -11
  22. package/dist/Toggle-BgvkYUI8.d.ts +49 -0
  23. package/dist/{ToggleGroup-UeYHzQe7.d.ts → ToggleGroup-CqYICGsS.d.ts} +42 -42
  24. package/dist/TreeProvider-Cpu8yo3y.d.ts +270 -0
  25. package/dist/Typography-Df9IVmw2.d.ts +64 -0
  26. package/dist/{chunk-ZM67EKZC.js → chunk-22G3DW5M.js} +4 -4
  27. package/dist/{chunk-ZM67EKZC.js.map → chunk-22G3DW5M.js.map} +1 -1
  28. package/dist/{chunk-BDK7CDEI.js → chunk-2F3PWEDR.js} +3 -3
  29. package/dist/{chunk-BDK7CDEI.js.map → chunk-2F3PWEDR.js.map} +1 -1
  30. package/dist/{chunk-ZHAGKFSO.js → chunk-2SPOI3MX.js} +3 -3
  31. package/dist/{chunk-ZHAGKFSO.js.map → chunk-2SPOI3MX.js.map} +1 -1
  32. package/dist/chunk-2UTJHQTS.js +162 -0
  33. package/dist/chunk-2UTJHQTS.js.map +1 -0
  34. package/dist/{chunk-NKKMM6CK.js → chunk-3AFRSB5R.js} +3 -3
  35. package/dist/{chunk-NKKMM6CK.js.map → chunk-3AFRSB5R.js.map} +1 -1
  36. package/dist/{chunk-LCMPFPBN.js → chunk-3ETRJPBL.js} +3 -3
  37. package/dist/{chunk-LCMPFPBN.js.map → chunk-3ETRJPBL.js.map} +1 -1
  38. package/dist/{chunk-WAPRVVDQ.js → chunk-3HBKDY64.js} +3 -3
  39. package/dist/{chunk-WAPRVVDQ.js.map → chunk-3HBKDY64.js.map} +1 -1
  40. package/dist/{chunk-PPYJQNE5.js → chunk-3XMFQKWB.js} +9 -5
  41. package/dist/chunk-3XMFQKWB.js.map +1 -0
  42. package/dist/{chunk-HCTZJYHK.js → chunk-4SQKSVBH.js} +6 -6
  43. package/dist/chunk-4SQKSVBH.js.map +1 -0
  44. package/dist/{chunk-ZVAW22GX.js → chunk-4ZFKDNSK.js} +3 -3
  45. package/dist/{chunk-ZVAW22GX.js.map → chunk-4ZFKDNSK.js.map} +1 -1
  46. package/dist/{chunk-IJ4ZRIR4.js → chunk-53FZEAOJ.js} +5 -5
  47. package/dist/{chunk-IJ4ZRIR4.js.map → chunk-53FZEAOJ.js.map} +1 -1
  48. package/dist/{chunk-BYG2ULS3.js → chunk-5ATODZ6L.js} +5 -7
  49. package/dist/chunk-5ATODZ6L.js.map +1 -0
  50. package/dist/{chunk-TXKPDNRD.js → chunk-5I7ULBDP.js} +3 -3
  51. package/dist/{chunk-TXKPDNRD.js.map → chunk-5I7ULBDP.js.map} +1 -1
  52. package/dist/{chunk-UEXTD7ZB.js → chunk-6HFTTHSY.js} +3 -3
  53. package/dist/{chunk-UEXTD7ZB.js.map → chunk-6HFTTHSY.js.map} +1 -1
  54. package/dist/{chunk-6RASPU5N.js → chunk-7LWAWZHM.js} +4 -11
  55. package/dist/chunk-7LWAWZHM.js.map +1 -0
  56. package/dist/{chunk-RHNI5UQO.js → chunk-A6ZZZFZN.js} +4 -4
  57. package/dist/{chunk-RHNI5UQO.js.map → chunk-A6ZZZFZN.js.map} +1 -1
  58. package/dist/{chunk-V63YIVKJ.js → chunk-APZXMU2X.js} +4 -4
  59. package/dist/{chunk-V63YIVKJ.js.map → chunk-APZXMU2X.js.map} +1 -1
  60. package/dist/{chunk-6FYSVMH7.js → chunk-AYLEWD77.js} +3 -3
  61. package/dist/{chunk-6FYSVMH7.js.map → chunk-AYLEWD77.js.map} +1 -1
  62. package/dist/{chunk-D3DQ4ICC.js → chunk-BZMD4EZC.js} +4 -11
  63. package/dist/chunk-BZMD4EZC.js.map +1 -0
  64. package/dist/{chunk-PU5J5EPY.js → chunk-C7TARE5T.js} +5 -5
  65. package/dist/{chunk-PU5J5EPY.js.map → chunk-C7TARE5T.js.map} +1 -1
  66. package/dist/{chunk-5FBD2NTR.js → chunk-DDRX6NNW.js} +6 -9
  67. package/dist/chunk-DDRX6NNW.js.map +1 -0
  68. package/dist/{chunk-HHLQYMPT.js → chunk-DUTKHOH3.js} +4 -4
  69. package/dist/{chunk-HHLQYMPT.js.map → chunk-DUTKHOH3.js.map} +1 -1
  70. package/dist/{chunk-24QD2FTA.js → chunk-EBXTNL52.js} +12 -15
  71. package/dist/chunk-EBXTNL52.js.map +1 -0
  72. package/dist/{chunk-STRBBF45.js → chunk-FOQ32NEP.js} +5 -5
  73. package/dist/chunk-FOQ32NEP.js.map +1 -0
  74. package/dist/{chunk-UIA74JVN.js → chunk-FXG53XY2.js} +5 -5
  75. package/dist/chunk-FXG53XY2.js.map +1 -0
  76. package/dist/{chunk-2KY7P27I.js → chunk-G7LTWXRN.js} +3 -3
  77. package/dist/{chunk-2KY7P27I.js.map → chunk-G7LTWXRN.js.map} +1 -1
  78. package/dist/{chunk-6BK3PIRX.js → chunk-GD3VBO44.js} +6 -6
  79. package/dist/{chunk-6BK3PIRX.js.map → chunk-GD3VBO44.js.map} +1 -1
  80. package/dist/{chunk-MD6HHORY.js → chunk-GPRE2VWB.js} +3 -3
  81. package/dist/{chunk-MD6HHORY.js.map → chunk-GPRE2VWB.js.map} +1 -1
  82. package/dist/{chunk-QZX3RFIC.js → chunk-HJF5AV4L.js} +11 -34
  83. package/dist/chunk-HJF5AV4L.js.map +1 -0
  84. package/dist/{chunk-QFDTG2ZJ.js → chunk-HWPROYKB.js} +3 -3
  85. package/dist/{chunk-QFDTG2ZJ.js.map → chunk-HWPROYKB.js.map} +1 -1
  86. package/dist/chunk-ISISDJ3Z.js +205 -0
  87. package/dist/chunk-ISISDJ3Z.js.map +1 -0
  88. package/dist/{chunk-3LIT5GWF.js → chunk-IW43BO47.js} +57 -19
  89. package/dist/chunk-IW43BO47.js.map +1 -0
  90. package/dist/{chunk-CLEC2RMU.js → chunk-JKEILBHG.js} +3 -3
  91. package/dist/{chunk-CLEC2RMU.js.map → chunk-JKEILBHG.js.map} +1 -1
  92. package/dist/{chunk-TFLSEEM4.js → chunk-KCN3GXRK.js} +3 -3
  93. package/dist/{chunk-TFLSEEM4.js.map → chunk-KCN3GXRK.js.map} +1 -1
  94. package/dist/{chunk-EMUPVA2F.js → chunk-KHV3WV6T.js} +4 -4
  95. package/dist/{chunk-EMUPVA2F.js.map → chunk-KHV3WV6T.js.map} +1 -1
  96. package/dist/{chunk-G6TV6TF7.js → chunk-KJ5PYCJG.js} +4 -12
  97. package/dist/chunk-KJ5PYCJG.js.map +1 -0
  98. package/dist/{chunk-5KS2VSX2.js → chunk-LAM4GIME.js} +4 -4
  99. package/dist/chunk-LAM4GIME.js.map +1 -0
  100. package/dist/{chunk-OCLVMKVC.js → chunk-MDXTENZ4.js} +8 -31
  101. package/dist/chunk-MDXTENZ4.js.map +1 -0
  102. package/dist/{chunk-CP55TVOV.js → chunk-MJUKNUFV.js} +3 -3
  103. package/dist/{chunk-CP55TVOV.js.map → chunk-MJUKNUFV.js.map} +1 -1
  104. package/dist/{chunk-GGTDJEE2.js → chunk-MTNLY7AY.js} +3 -3
  105. package/dist/{chunk-GGTDJEE2.js.map → chunk-MTNLY7AY.js.map} +1 -1
  106. package/dist/{chunk-67J4KBOW.js → chunk-NBIBBLP6.js} +10 -52
  107. package/dist/chunk-NBIBBLP6.js.map +1 -0
  108. package/dist/chunk-NBP4J2QF.js +200 -0
  109. package/dist/chunk-NBP4J2QF.js.map +1 -0
  110. package/dist/{chunk-NGKQBNZ5.js → chunk-NJYJCMKY.js} +3 -3
  111. package/dist/{chunk-NGKQBNZ5.js.map → chunk-NJYJCMKY.js.map} +1 -1
  112. package/dist/{chunk-COPT6I2D.js → chunk-NSEY5IC6.js} +9 -10
  113. package/dist/chunk-NSEY5IC6.js.map +1 -0
  114. package/dist/{chunk-UARVH66B.js → chunk-O4PHGLXF.js} +5 -5
  115. package/dist/{chunk-UARVH66B.js.map → chunk-O4PHGLXF.js.map} +1 -1
  116. package/dist/{chunk-J4DMQV64.js → chunk-OCZC4PDM.js} +3 -3
  117. package/dist/{chunk-J4DMQV64.js.map → chunk-OCZC4PDM.js.map} +1 -1
  118. package/dist/{chunk-IQH3XSOI.js → chunk-ODYHA3O5.js} +4 -4
  119. package/dist/{chunk-IQH3XSOI.js.map → chunk-ODYHA3O5.js.map} +1 -1
  120. package/dist/chunk-OJEZZVZB.js +9 -0
  121. package/dist/{chunk-CMBERB5B.js.map → chunk-OJEZZVZB.js.map} +1 -1
  122. package/dist/{chunk-7IOAIEIA.js → chunk-OTXP2QJ7.js} +6 -6
  123. package/dist/{chunk-7IOAIEIA.js.map → chunk-OTXP2QJ7.js.map} +1 -1
  124. package/dist/{chunk-JSHUWI3C.js → chunk-OUVUK3E7.js} +9 -9
  125. package/dist/chunk-OUVUK3E7.js.map +1 -0
  126. package/dist/{chunk-3KB54OYF.js → chunk-P6ICWO5B.js} +3 -3
  127. package/dist/{chunk-3KB54OYF.js.map → chunk-P6ICWO5B.js.map} +1 -1
  128. package/dist/{chunk-GIU6BZTW.js → chunk-P7PPE4P5.js} +8 -11
  129. package/dist/chunk-P7PPE4P5.js.map +1 -0
  130. package/dist/{chunk-XGFJJ2YB.js → chunk-PVQUVEZV.js} +4 -11
  131. package/dist/chunk-PVQUVEZV.js.map +1 -0
  132. package/dist/{chunk-LCWXIQKA.js → chunk-Q3RL7TOY.js} +4 -4
  133. package/dist/chunk-Q3RL7TOY.js.map +1 -0
  134. package/dist/{chunk-5Q4RBIMZ.js → chunk-Q5B6ROW6.js} +3 -3
  135. package/dist/{chunk-5Q4RBIMZ.js.map → chunk-Q5B6ROW6.js.map} +1 -1
  136. package/dist/{chunk-262EK2XT.js → chunk-Q7ZDP6DS.js} +9 -7
  137. package/dist/chunk-Q7ZDP6DS.js.map +1 -0
  138. package/dist/{chunk-4IBTERDG.js → chunk-QFTOABOJ.js} +3 -3
  139. package/dist/{chunk-4IBTERDG.js.map → chunk-QFTOABOJ.js.map} +1 -1
  140. package/dist/{chunk-JURNPBSW.js → chunk-QINEFXUA.js} +3 -3
  141. package/dist/{chunk-JURNPBSW.js.map → chunk-QINEFXUA.js.map} +1 -1
  142. package/dist/{chunk-FIOKWIJP.js → chunk-QWSD34JA.js} +4 -4
  143. package/dist/{chunk-FIOKWIJP.js.map → chunk-QWSD34JA.js.map} +1 -1
  144. package/dist/{chunk-Q5IUIA6B.js → chunk-RLBAA7WW.js} +3 -3
  145. package/dist/{chunk-Q5IUIA6B.js.map → chunk-RLBAA7WW.js.map} +1 -1
  146. package/dist/{chunk-MJQ6R345.js → chunk-SEC7UN45.js} +5 -5
  147. package/dist/chunk-SEC7UN45.js.map +1 -0
  148. package/dist/chunk-SIA46B4Q.js +9 -0
  149. package/dist/{chunk-RTIFG4XT.js.map → chunk-SIA46B4Q.js.map} +1 -1
  150. package/dist/{chunk-X4HPHMYW.js → chunk-TMPADU74.js} +4 -4
  151. package/dist/{chunk-X4HPHMYW.js.map → chunk-TMPADU74.js.map} +1 -1
  152. package/dist/{chunk-YTHUHPE5.js → chunk-USPWL4KC.js} +3 -3
  153. package/dist/{chunk-YTHUHPE5.js.map → chunk-USPWL4KC.js.map} +1 -1
  154. package/dist/{chunk-U2UNWXBC.js → chunk-VEQ7X2PO.js} +7 -6
  155. package/dist/chunk-VEQ7X2PO.js.map +1 -0
  156. package/dist/{chunk-YZLPO4B2.js → chunk-WRXXU5F6.js} +4 -11
  157. package/dist/chunk-WRXXU5F6.js.map +1 -0
  158. package/dist/{chunk-XNYAQZIB.js → chunk-X4B6I3M4.js} +4 -4
  159. package/dist/{chunk-XNYAQZIB.js.map → chunk-X4B6I3M4.js.map} +1 -1
  160. package/dist/{chunk-JNF7FDJO.js → chunk-XCYEWILH.js} +4 -4
  161. package/dist/{chunk-JNF7FDJO.js.map → chunk-XCYEWILH.js.map} +1 -1
  162. package/dist/{chunk-V2MG5Y5F.js → chunk-XGVQXRLA.js} +4 -4
  163. package/dist/chunk-XGVQXRLA.js.map +1 -0
  164. package/dist/chunk-XIANSPQO.js +11 -0
  165. package/dist/chunk-XIANSPQO.js.map +1 -0
  166. package/dist/{chunk-UNWEH4Z6.js → chunk-XOMPJYYA.js} +4 -4
  167. package/dist/chunk-XOMPJYYA.js.map +1 -0
  168. package/dist/{chunk-UXWUFNXY.js → chunk-XSYSV3R3.js} +3 -3
  169. package/dist/{chunk-UXWUFNXY.js.map → chunk-XSYSV3R3.js.map} +1 -1
  170. package/dist/{chunk-ERBGZZ2U.js → chunk-XZYJUJED.js} +4 -4
  171. package/dist/chunk-XZYJUJED.js.map +1 -0
  172. package/dist/chunk-YMKC3H55.js +921 -0
  173. package/dist/chunk-YMKC3H55.js.map +1 -0
  174. package/dist/{chunk-PFV7YIEP.js → chunk-Z4JNYSV3.js} +4 -4
  175. package/dist/{chunk-PFV7YIEP.js.map → chunk-Z4JNYSV3.js.map} +1 -1
  176. package/dist/{chunk-4V3WHQJE.js → chunk-ZLSCHWTN.js} +4 -4
  177. package/dist/{chunk-4V3WHQJE.js.map → chunk-ZLSCHWTN.js.map} +1 -1
  178. package/dist/chunk-ZQ2WOX4X.js +29 -0
  179. package/dist/chunk-ZQ2WOX4X.js.map +1 -0
  180. package/dist/{chunk-NILG56Z7.js → chunk-ZROHNZDC.js} +4 -4
  181. package/dist/{chunk-NILG56Z7.js.map → chunk-ZROHNZDC.js.map} +1 -1
  182. package/dist/{chunk-PGOCR4LG.js → chunk-ZVYCUG4N.js} +4 -4
  183. package/dist/chunk-ZVYCUG4N.js.map +1 -0
  184. package/dist/components/accordion/index.d.ts +2 -2
  185. package/dist/components/accordion/index.js +3 -2
  186. package/dist/components/alert/index.d.ts +26 -26
  187. package/dist/components/alert/index.js +2 -2
  188. package/dist/components/alert-dialog/index.d.ts +6 -5
  189. package/dist/components/alert-dialog/index.js +6 -6
  190. package/dist/components/aspect-ratio/index.js +2 -2
  191. package/dist/components/avatar/index.d.ts +11 -11
  192. package/dist/components/avatar/index.js +2 -2
  193. package/dist/components/badge/index.d.ts +112 -112
  194. package/dist/components/badge/index.js +2 -2
  195. package/dist/components/breadcrumb/index.js +2 -2
  196. package/dist/components/button/index.d.ts +51 -51
  197. package/dist/components/button/index.js +3 -3
  198. package/dist/components/button-group/index.js +2 -2
  199. package/dist/components/calendar/index.js +10 -10
  200. package/dist/components/card/index.d.ts +22 -22
  201. package/dist/components/card/index.js +2 -1
  202. package/dist/components/carousel/index.js +3 -3
  203. package/dist/components/chart/index.js +2 -2
  204. package/dist/components/checkbox/index.js +2 -2
  205. package/dist/components/collapsible/index.d.ts +2 -2
  206. package/dist/components/collapsible/index.js +3 -2
  207. package/dist/components/combobox/index.d.ts +2 -2
  208. package/dist/components/combobox/index.js +5 -5
  209. package/dist/components/command/index.js +7 -7
  210. package/dist/components/context-menu/index.d.ts +11 -11
  211. package/dist/components/context-menu/index.js +3 -3
  212. package/dist/components/data-table/index.js +3 -3
  213. package/dist/components/date-picker/index.js +6 -6
  214. package/dist/components/dialog/index.d.ts +26 -5
  215. package/dist/components/dialog/index.js +5 -5
  216. package/dist/components/direction/index.js +2 -2
  217. package/dist/components/drawer/index.d.ts +5 -4
  218. package/dist/components/drawer/index.js +5 -5
  219. package/dist/components/dropdown/index.d.ts +3 -3
  220. package/dist/components/dropdown/index.js +3 -3
  221. package/dist/components/dropzone/index.js +3 -3
  222. package/dist/components/empty/index.d.ts +6 -6
  223. package/dist/components/empty/index.js +2 -2
  224. package/dist/components/field/index.d.ts +2 -2
  225. package/dist/components/field/index.js +4 -4
  226. package/dist/components/hover-card/index.d.ts +2 -2
  227. package/dist/components/hover-card/index.js +2 -1
  228. package/dist/components/image/index.js +2 -2
  229. package/dist/components/input/index.d.ts +12 -12
  230. package/dist/components/input/index.js +3 -2
  231. package/dist/components/input-group/index.d.ts +56 -56
  232. package/dist/components/input-group/index.js +5 -5
  233. package/dist/components/input-otp/index.js +2 -2
  234. package/dist/components/item/index.d.ts +31 -31
  235. package/dist/components/item/index.js +3 -3
  236. package/dist/components/kbd/index.d.ts +8 -8
  237. package/dist/components/kbd/index.js +2 -2
  238. package/dist/components/label/index.d.ts +22 -22
  239. package/dist/components/label/index.js +3 -2
  240. package/dist/components/locale-segment-group/index.js +2 -2
  241. package/dist/components/menubar/index.js +3 -3
  242. package/dist/components/native-select/index.d.ts +34 -34
  243. package/dist/components/native-select/index.js +2 -1
  244. package/dist/components/navigation-menu/index.d.ts +2 -2
  245. package/dist/components/navigation-menu/index.js +3 -3
  246. package/dist/components/pagination/index.d.ts +1 -1
  247. package/dist/components/pagination/index.js +3 -3
  248. package/dist/components/popover/index.d.ts +22 -22
  249. package/dist/components/popover/index.js +4 -3
  250. package/dist/components/progress/index.js +2 -2
  251. package/dist/components/prose/index.js +2 -2
  252. package/dist/components/radio-group/index.d.ts +2 -2
  253. package/dist/components/radio-group/index.js +3 -3
  254. package/dist/components/scroll-area/index.js +2 -2
  255. package/dist/components/select/index.js +3 -3
  256. package/dist/components/selectable-card/index.js +3 -3
  257. package/dist/components/separator/index.d.ts +8 -8
  258. package/dist/components/separator/index.js +3 -2
  259. package/dist/components/sheet/index.d.ts +5 -4
  260. package/dist/components/sheet/index.js +5 -5
  261. package/dist/components/sidebar/index.d.ts +3 -3
  262. package/dist/components/sidebar/index.js +10 -10
  263. package/dist/components/skeleton/index.d.ts +22 -22
  264. package/dist/components/skeleton/index.js +2 -1
  265. package/dist/components/slider/index.js +2 -2
  266. package/dist/components/spinner/index.js +2 -2
  267. package/dist/components/switch/index.d.ts +1 -1
  268. package/dist/components/switch/index.js +2 -2
  269. package/dist/components/table/index.js +3 -3
  270. package/dist/components/tabs/index.d.ts +2 -2
  271. package/dist/components/tabs/index.js +3 -3
  272. package/dist/components/textarea/index.d.ts +12 -12
  273. package/dist/components/textarea/index.js +3 -2
  274. package/dist/components/theme-toggle/index.js +4 -4
  275. package/dist/components/toggle/index.d.ts +1 -1
  276. package/dist/components/toggle/index.js +2 -2
  277. package/dist/components/toggle-group/index.d.ts +2 -2
  278. package/dist/components/toggle-group/index.js +2 -2
  279. package/dist/components/tree/index.d.ts +24 -0
  280. package/dist/components/tree/index.js +5 -0
  281. package/dist/components/tree/index.js.map +1 -0
  282. package/dist/components/typography/index.d.ts +2 -2
  283. package/dist/components/typography/index.js +2 -2
  284. package/dist/components/video/index.js +2 -2
  285. package/dist/index.d.ts +25 -24
  286. package/dist/index.js +80 -78
  287. package/dist/lib/interactive/index.js +1 -1
  288. package/dist/lib/utils.d.ts +2 -1
  289. package/dist/lib/utils.js +1 -1
  290. package/dist/{navigationMenuTriggerStyle-BWnESpon.d.ts → navigationMenuTriggerStyle-DUhqCYxO.d.ts} +1 -1
  291. package/dist/theme.css +16 -0
  292. package/dist/utils.d.ts +2 -0
  293. package/dist/utils.js +3 -0
  294. package/dist/utils.js.map +1 -0
  295. package/package.json +34 -25
  296. package/dist/Button-vQnkiVTI.d.ts +0 -84
  297. package/dist/Toggle-CseZl7XN.d.ts +0 -49
  298. package/dist/Typography-ccTtE182.d.ts +0 -64
  299. package/dist/chunk-24QD2FTA.js.map +0 -1
  300. package/dist/chunk-262EK2XT.js.map +0 -1
  301. package/dist/chunk-3LIT5GWF.js.map +0 -1
  302. package/dist/chunk-5FBD2NTR.js.map +0 -1
  303. package/dist/chunk-5KS2VSX2.js.map +0 -1
  304. package/dist/chunk-67J4KBOW.js.map +0 -1
  305. package/dist/chunk-6RASPU5N.js.map +0 -1
  306. package/dist/chunk-BYG2ULS3.js.map +0 -1
  307. package/dist/chunk-CMBERB5B.js +0 -9
  308. package/dist/chunk-COPT6I2D.js.map +0 -1
  309. package/dist/chunk-D3DQ4ICC.js.map +0 -1
  310. package/dist/chunk-ERBGZZ2U.js.map +0 -1
  311. package/dist/chunk-G6TV6TF7.js.map +0 -1
  312. package/dist/chunk-GIU6BZTW.js.map +0 -1
  313. package/dist/chunk-HCTZJYHK.js.map +0 -1
  314. package/dist/chunk-JSHUWI3C.js.map +0 -1
  315. package/dist/chunk-LCWXIQKA.js.map +0 -1
  316. package/dist/chunk-MJQ6R345.js.map +0 -1
  317. package/dist/chunk-MKG3UAP6.js +0 -347
  318. package/dist/chunk-MKG3UAP6.js.map +0 -1
  319. package/dist/chunk-MS2ZNYCJ.js +0 -9
  320. package/dist/chunk-MS2ZNYCJ.js.map +0 -1
  321. package/dist/chunk-OCLVMKVC.js.map +0 -1
  322. package/dist/chunk-PGOCR4LG.js.map +0 -1
  323. package/dist/chunk-PPYJQNE5.js.map +0 -1
  324. package/dist/chunk-QZX3RFIC.js.map +0 -1
  325. package/dist/chunk-RTIFG4XT.js +0 -9
  326. package/dist/chunk-STRBBF45.js.map +0 -1
  327. package/dist/chunk-U2UNWXBC.js.map +0 -1
  328. package/dist/chunk-UEGIKBX6.js +0 -385
  329. package/dist/chunk-UEGIKBX6.js.map +0 -1
  330. package/dist/chunk-UIA74JVN.js.map +0 -1
  331. package/dist/chunk-UNWEH4Z6.js.map +0 -1
  332. package/dist/chunk-V2MG5Y5F.js.map +0 -1
  333. package/dist/chunk-X2YUFNK7.js +0 -18
  334. package/dist/chunk-X2YUFNK7.js.map +0 -1
  335. package/dist/chunk-XGFJJ2YB.js.map +0 -1
  336. package/dist/chunk-YZLPO4B2.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/dialog/Dialog.tsx","../src/components/dialog/DialogClose.tsx","../src/components/dialog/useModalPanelA11y.ts","../src/components/dialog/DialogContent.tsx","../src/components/dialog/DialogDescription.tsx","../src/components/dialog/DialogTitle.tsx","../src/components/dialog/DialogTrigger.tsx"],"names":["jsx","useRef","useEffect","useMemo","useLayoutEffect","callRef","isValidElement","cloneElement"],"mappings":"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","file":"chunk-HHLQYMPT.js","sourcesContent":["import { type Signal, signal } from \"@preact/signals\";\nimport type { ComponentChildren, JSX } from \"preact\";\nimport { createContext } from \"preact\";\nimport { useContext, useEffect, useMemo, useRef } from \"preact/hooks\";\nimport { createDismissableLayer } from \"../../lib/interactive\";\nimport { createControllableSignal } from \"../../lib/signals\";\n\nconst SCROLL_LOCK_COUNT_ATTR = \"data-kamod-scroll-lock-count\";\nconst SCROLL_LOCK_BODY_OVERFLOW_ATTR = \"data-kamod-scroll-lock-body-overflow\";\nconst SCROLL_LOCK_HTML_OVERFLOW_ATTR = \"data-kamod-scroll-lock-html-overflow\";\nconst SCROLL_LOCK_BODY_PADDING_RIGHT_ATTR = \"data-kamod-scroll-lock-body-padding-right\";\nconst SCROLL_LOCK_HTML_SCROLLBAR_GUTTER_ATTR = \"data-kamod-scroll-lock-html-scrollbar-gutter\";\n\nconst lockDocumentScroll = () => {\n const body = document.body;\n const html = document.documentElement;\n const lockCount = Number.parseInt(body.getAttribute(SCROLL_LOCK_COUNT_ATTR) ?? \"0\", 10);\n\n if (lockCount === 0) {\n body.setAttribute(SCROLL_LOCK_BODY_OVERFLOW_ATTR, body.style.overflow);\n body.setAttribute(SCROLL_LOCK_BODY_PADDING_RIGHT_ATTR, body.style.paddingRight);\n html.setAttribute(SCROLL_LOCK_HTML_OVERFLOW_ATTR, html.style.overflow);\n html.setAttribute(SCROLL_LOCK_HTML_SCROLLBAR_GUTTER_ATTR, html.style.scrollbarGutter);\n\n const gutter = getComputedStyle(html).scrollbarGutter;\n const viewportUsesStableGutter = gutter === \"stable\" || gutter === \"stable both-edges\";\n\n if (viewportUsesStableGutter) {\n // Stylesheet `html { scrollbar-gutter: stable }` already reserves scrollbar width; do not\n // force `auto` or add body padding-right (that combo reintroduces the header “jump”).\n html.style.setProperty(\"--kamod-scroll-lock-gutter\", \"0px\");\n } else {\n // If the page does not use stable gutter, measure scrollbar width and pad like Radix/shadcn.\n html.style.scrollbarGutter = \"auto\";\n void html.offsetHeight;\n\n const scrollbarWidth = Math.max(0, window.innerWidth - document.documentElement.clientWidth);\n html.style.setProperty(\"--kamod-scroll-lock-gutter\", `${scrollbarWidth}px`);\n\n if (scrollbarWidth > 0) {\n body.style.paddingRight = `${scrollbarWidth}px`;\n }\n }\n\n html.style.overflow = \"hidden\";\n body.style.overflow = \"hidden\";\n html.setAttribute(\"data-kamod-scroll-lock\", \"\");\n }\n\n body.setAttribute(SCROLL_LOCK_COUNT_ATTR, String(lockCount + 1));\n\n return () => {\n const currentCount = Number.parseInt(body.getAttribute(SCROLL_LOCK_COUNT_ATTR) ?? \"0\", 10);\n const nextCount = Math.max(0, currentCount - 1);\n\n if (nextCount > 0) {\n body.setAttribute(SCROLL_LOCK_COUNT_ATTR, String(nextCount));\n return;\n }\n\n const previousBodyOverflow = body.getAttribute(SCROLL_LOCK_BODY_OVERFLOW_ATTR) ?? \"\";\n const previousHtmlOverflow = html.getAttribute(SCROLL_LOCK_HTML_OVERFLOW_ATTR) ?? \"\";\n const previousBodyPaddingRight = body.getAttribute(SCROLL_LOCK_BODY_PADDING_RIGHT_ATTR) ?? \"\";\n const previousHtmlScrollbarGutter =\n html.getAttribute(SCROLL_LOCK_HTML_SCROLLBAR_GUTTER_ATTR) ?? \"\";\n\n body.style.overflow = previousBodyOverflow;\n body.style.paddingRight = previousBodyPaddingRight;\n html.style.overflow = previousHtmlOverflow;\n if (previousHtmlScrollbarGutter === \"\") {\n html.style.removeProperty(\"scrollbar-gutter\");\n } else {\n html.style.scrollbarGutter = previousHtmlScrollbarGutter;\n }\n html.style.removeProperty(\"--kamod-scroll-lock-gutter\");\n html.removeAttribute(\"data-kamod-scroll-lock\");\n body.removeAttribute(SCROLL_LOCK_COUNT_ATTR);\n body.removeAttribute(SCROLL_LOCK_BODY_OVERFLOW_ATTR);\n body.removeAttribute(SCROLL_LOCK_BODY_PADDING_RIGHT_ATTR);\n html.removeAttribute(SCROLL_LOCK_HTML_OVERFLOW_ATTR);\n html.removeAttribute(SCROLL_LOCK_HTML_SCROLLBAR_GUTTER_ATTR);\n };\n};\n\nexport type DialogContextValue = {\n open: ReturnType<typeof signal<boolean>>;\n setOpen: (next: boolean) => void;\n triggerRef: { current: HTMLElement | null };\n titleId: Signal<string | undefined>;\n descriptionId: Signal<string | undefined>;\n};\n\nconst DialogContext = createContext<DialogContextValue | null>(null);\n\nexport const useDialog = () => {\n const context = useContext(DialogContext);\n if (!context) throw new Error(\"Dialog subcomponents must be used within Dialog\");\n return context;\n};\n\nexport type DialogProps = JSX.HTMLAttributes<HTMLDivElement> & {\n defaultOpen?: boolean;\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n /** When true, locks document scroll while open (shadcn default). */\n lockBodyScroll?: boolean;\n children?: ComponentChildren;\n};\n\nexport const Dialog = ({\n defaultOpen = false,\n open: openProp,\n onOpenChange,\n lockBodyScroll = true,\n children,\n ...rest\n}: DialogProps) => {\n const onOpenChangeRef = useRef(onOpenChange);\n onOpenChangeRef.current = onOpenChange;\n const triggerRef = useRef<HTMLElement | null>(null);\n const titleId = useMemo(() => signal<string | undefined>(undefined), []);\n const descriptionId = useMemo(() => signal<string | undefined>(undefined), []);\n\n const controllable = useMemo(\n () =>\n createControllableSignal<boolean>({\n value: openProp,\n defaultValue: defaultOpen,\n onChange: (next) => onOpenChangeRef.current?.(next),\n }),\n [],\n );\n const open = controllable.state;\n\n // Controlled mode: keep the internal signal in sync before paint. If we only\n // sync in useEffect, the first commit can render DialogContent with open=false\n // while openProp is already true (portal stays unmounted / dismiss layer races).\n if (openProp !== undefined && open.value !== openProp) {\n open.value = openProp;\n }\n\n const setOpen = (next: boolean) => {\n const wasOpen = open.value;\n controllable.setState(next);\n if (wasOpen && !next) {\n const trigger = triggerRef.current;\n if (trigger && typeof trigger.focus === \"function\") {\n trigger.focus();\n }\n }\n };\n\n const rootRef = useRef<HTMLDivElement | null>(null);\n\n useEffect(() => {\n const layer = createDismissableLayer({\n root: () => rootRef.current,\n open: () => open.value,\n onDismiss: () => {\n setOpen(false);\n },\n });\n return () => layer.dispose();\n }, []);\n\n useEffect(() => {\n if (!lockBodyScroll || typeof document === \"undefined\") return;\n if (!open.value) return;\n return lockDocumentScroll();\n }, [lockBodyScroll, open.value]);\n\n return (\n <DialogContext.Provider value={{ open, setOpen, triggerRef, titleId, descriptionId }}>\n <div ref={rootRef} data-slot=\"dialog\" data-state={open.value ? \"open\" : \"closed\"} {...rest}>\n {children}\n </div>\n </DialogContext.Provider>\n );\n};\n","import { type ComponentChildren, cloneElement, isValidElement, type JSX } from \"preact\";\nimport { useDialog } from \"./Dialog\";\n\nexport type DialogCloseProps = JSX.ButtonHTMLAttributes<HTMLButtonElement> & {\n asChild?: boolean;\n children?: ComponentChildren;\n \"data-slot\"?: string;\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 DialogClose = ({\n asChild = false,\n children,\n onClick,\n ref: outerRef,\n \"data-slot\": dataSlot = \"dialog-close\",\n ...rest\n}: DialogCloseProps) => {\n const dialog = useDialog();\n\n const handleClick = (event: JSX.TargetedMouseEvent<HTMLElement>) => {\n onClick?.(event as JSX.TargetedMouseEvent<HTMLButtonElement>);\n if (event.defaultPrevented) return;\n dialog.setOpen(false);\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 \"data-slot\": dataSlot,\n onClick: (event: JSX.TargetedMouseEvent<HTMLElement>) => {\n childProps.onClick?.(event);\n handleClick(event);\n },\n ref: (node: HTMLElement | null) => {\n callRef(childProps.ref, node);\n callRef(outerRef, node);\n },\n } as never);\n }\n\n return (\n <button\n ref={(node) => {\n callRef(outerRef, node);\n }}\n type=\"button\"\n data-slot={dataSlot}\n onClick={(event) => handleClick(event as unknown as JSX.TargetedMouseEvent<HTMLElement>)}\n {...rest}\n >\n {children}\n </button>\n );\n};\n","import { useEffect, useRef } from \"preact/hooks\";\nimport { trapFocus } from \"../../lib/interactive\";\nimport { useDialog } from \"./Dialog\";\n\nexport const useModalPanelA11y = (open: boolean) => {\n const dialog = useDialog();\n const panelRef = useRef<HTMLDivElement | null>(null);\n\n const labelledBy = dialog.titleId.value;\n const describedBy = dialog.descriptionId.value;\n\n useEffect(() => {\n if (!open) return;\n const panel = panelRef.current;\n if (!panel) return;\n return trapFocus(panel);\n }, [open]);\n\n return {\n panelRef,\n labelledBy,\n describedBy,\n };\n};\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { createPortal } from \"../../lib/createPortal\";\nimport { isPointerWithinModalDialogPanelSlop } from \"../../lib/interactive\";\nimport { cn } from \"../../lib/utils\";\nimport { useDialog } from \"./Dialog\";\nimport { DialogClose } from \"./DialogClose\";\nimport { useModalPanelA11y } from \"./useModalPanelA11y\";\n\n/**\n * `fixed inset-0` can miss edge pixels vs full-viewport overlays; explicit `100vw` / `100vh`\n * keeps the backdrop flush with the visual viewport.\n */\nexport const dialogViewportBleedClass =\n \"fixed left-0 top-0 h-screen min-h-[100dvh] w-screen min-w-[100vw]\";\n\nconst modalOverlayClass = [\n dialogViewportBleedClass,\n \"z-40 bg-black/50 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fill-mode-forwards fade-in fade-out\",\n].join(\" \");\n\nconst modalPanelBase = [\n \"fixed left-1/2 top-1/2 z-50 grid w-full max-w-[calc(100vw-2rem)] -translate-x-1/2 -translate-y-1/2 gap-4 border bg-background p-6 shadow-lg outline-none\",\n \"rounded-lg sm:max-w-lg\",\n \"data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fill-mode-forwards\",\n \"fade-in zoom-in-95 fade-out zoom-out-95 duration-200\",\n \"max-h-[calc(100dvh-2rem)] overflow-y-auto overflow-x-hidden\",\n].join(\" \");\n\nexport type DialogContentPresentation = \"modal\" | \"slot\";\n\nexport type DialogContentProps = JSX.HTMLAttributes<HTMLDivElement> & {\n forceMount?: boolean;\n /**\n * `modal` — built-in overlay + centered panel + optional corner close.\n * `slot` — one portaled element only; use when **you** provide overlay + panel (legacy fullscreen `DialogContent` pattern with `fixed inset-0 …`).\n */\n presentation?: DialogContentPresentation;\n showCloseButton?: boolean;\n children?: ComponentChildren;\n \"data-slot\"?: string;\n};\n\n/**\n * Renders dialog body in a portal.\n *\n * - **modal (default):** Backdrop + centered panel; use `class` only for sizing (e.g. `sm:max-w-sm`).\n * - **slot:** Single root node — **required** for legacy/custom layouts that already implement `fixed inset-0` overlay + inner card (otherwise you stack two modals).\n */\nexport const DialogContent = ({\n forceMount = false,\n presentation = \"modal\",\n showCloseButton = true,\n class: className,\n children,\n onKeyDown,\n \"data-slot\": dataSlot = \"dialog-content\",\n \"aria-labelledby\": ariaLabelledBy,\n \"aria-describedby\": ariaDescribedBy,\n ...rest\n}: DialogContentProps) => {\n const dialog = useDialog();\n const isOpen = dialog.open.value;\n const { panelRef, labelledBy, describedBy } = useModalPanelA11y(isOpen || forceMount);\n if (!isOpen && !forceMount) return null;\n\n const state = isOpen ? \"open\" : \"closed\";\n const modalA11y = {\n \"aria-labelledby\": ariaLabelledBy ?? labelledBy,\n \"aria-describedby\": ariaDescribedBy ?? describedBy,\n };\n\n const handleKeyDown = (event: JSX.TargetedKeyboardEvent<HTMLDivElement>) => {\n if (event.key === \"Escape\") {\n event.preventDefault();\n dialog.setOpen(false);\n }\n onKeyDown?.(event);\n };\n\n if (presentation === \"slot\") {\n const content = (\n <div\n ref={panelRef}\n role=\"dialog\"\n aria-modal=\"true\"\n tabIndex={-1}\n data-slot={dataSlot}\n data-kamod-root-dismissible=\"\"\n data-state={state}\n {...modalA11y}\n {...rest}\n onKeyDown={handleKeyDown}\n class={cn(className as string | undefined)}\n >\n {children}\n </div>\n );\n\n if (typeof document === \"undefined\") return content;\n return createPortal(content, document.body);\n }\n\n const tree = (\n <>\n <div\n aria-hidden=\"true\"\n data-slot=\"dialog-overlay\"\n data-state={state}\n class={modalOverlayClass}\n onPointerDown={(event) => {\n if (event.target !== event.currentTarget) return;\n if (isPointerWithinModalDialogPanelSlop(event)) return;\n dialog.setOpen(false);\n }}\n />\n <div\n ref={panelRef}\n role=\"dialog\"\n aria-modal=\"true\"\n tabIndex={-1}\n data-slot={dataSlot}\n data-state={state}\n {...rest}\n {...modalA11y}\n onKeyDown={handleKeyDown}\n class={cn(modalPanelBase, className as string | undefined)}\n >\n {showCloseButton ? (\n <DialogClose\n aria-label=\"Close\"\n data-slot=\"dialog-close\"\n class={cn(\n \"absolute end-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100\",\n \"focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2\",\n \"disabled:pointer-events-none\",\n )}\n >\n <span class=\"sr-only\">Close</span>\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=\"size-4\"\n aria-hidden\n >\n <path d=\"M18 6 6 18M6 6l12 12\" />\n </svg>\n </DialogClose>\n ) : null}\n {children}\n </div>\n </>\n );\n\n if (typeof document === \"undefined\") return tree;\n return createPortal(tree, document.body);\n};\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { useLayoutEffect, useMemo } from \"preact/hooks\";\nimport { createIdFactory } from \"../../lib/interactive\";\nimport { cn } from \"../../lib/utils\";\nimport { useDialog } from \"./Dialog\";\n\nconst nextDescriptionId = createIdFactory(\"dialog-description\");\n\nexport type DialogDescriptionProps = JSX.HTMLAttributes<HTMLParagraphElement> & {\n children?: ComponentChildren;\n};\n\nexport const DialogDescription = ({\n class: className,\n children,\n id: idProp,\n ...rest\n}: DialogDescriptionProps) => {\n const dialog = useDialog();\n const id = useMemo(() => {\n if (typeof idProp === \"string\") return idProp;\n return nextDescriptionId();\n }, [idProp]);\n\n useLayoutEffect(() => {\n dialog.descriptionId.value = id;\n return () => {\n if (dialog.descriptionId.value === id) {\n dialog.descriptionId.value = undefined;\n }\n };\n }, [dialog.descriptionId, id]);\n\n return (\n <p\n data-slot=\"dialog-description\"\n id={id}\n class={cn(\"text-muted-foreground text-sm\", className)}\n {...rest}\n >\n {children}\n </p>\n );\n};\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { useLayoutEffect, useMemo } from \"preact/hooks\";\nimport { createIdFactory } from \"../../lib/interactive\";\nimport { cn } from \"../../lib/utils\";\nimport { useDialog } from \"./Dialog\";\n\nconst nextTitleId = createIdFactory(\"dialog-title\");\n\nexport type DialogTitleProps = JSX.HTMLAttributes<HTMLHeadingElement> & {\n children?: ComponentChildren;\n};\n\nexport const DialogTitle = ({\n class: className,\n children,\n id: idProp,\n ...rest\n}: DialogTitleProps) => {\n const dialog = useDialog();\n const id = useMemo(() => {\n if (typeof idProp === \"string\") return idProp;\n return nextTitleId();\n }, [idProp]);\n\n useLayoutEffect(() => {\n dialog.titleId.value = id;\n return () => {\n if (dialog.titleId.value === id) {\n dialog.titleId.value = undefined;\n }\n };\n }, [dialog.titleId, id]);\n\n return (\n <h2\n data-slot=\"dialog-title\"\n id={id}\n class={cn(\"text-lg leading-none font-semibold tracking-tight\", className)}\n {...rest}\n >\n {children}\n </h2>\n );\n};\n","import { type ComponentChildren, cloneElement, isValidElement, type JSX } from \"preact\";\nimport { useDialog } from \"./Dialog\";\n\nexport type DialogTriggerProps = JSX.ButtonHTMLAttributes<HTMLButtonElement> & {\n asChild?: boolean;\n children?: ComponentChildren;\n \"data-slot\"?: string;\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 DialogTrigger = ({\n asChild = false,\n children,\n onClick,\n onPointerDown,\n ref: outerRef,\n \"data-slot\": dataSlot = \"dialog-trigger\",\n ...rest\n}: DialogTriggerProps) => {\n const dialog = useDialog();\n\n const openDialog = () => {\n dialog.setOpen(true);\n };\n\n const handlePointerDown = (event: JSX.TargetedPointerEvent<HTMLElement>) => {\n onPointerDown?.(event as JSX.TargetedPointerEvent<HTMLButtonElement>);\n if (event.defaultPrevented) return;\n if (event.button === 0) {\n openDialog();\n }\n };\n\n const handleClick = (event: JSX.TargetedMouseEvent<HTMLElement>) => {\n onClick?.(event as JSX.TargetedMouseEvent<HTMLButtonElement>);\n if (event.defaultPrevented) return;\n openDialog();\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 onPointerDown?: (event: JSX.TargetedPointerEvent<HTMLElement>) => void;\n };\n\n return cloneElement(children, {\n ...(childProps as Record<string, unknown>),\n ...(rest as Record<string, unknown>),\n \"aria-expanded\": dialog.open.value,\n \"data-slot\": dataSlot,\n onPointerDown: (event: JSX.TargetedPointerEvent<HTMLElement>) => {\n childProps.onPointerDown?.(event);\n handlePointerDown(event);\n },\n onClick: (event: JSX.TargetedMouseEvent<HTMLElement>) => {\n childProps.onClick?.(event);\n handleClick(event);\n },\n ref: (node: HTMLElement | null) => {\n dialog.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 dialog.triggerRef.current = node;\n callRef(outerRef, node);\n }}\n {...rest}\n type=\"button\"\n data-slot={dataSlot}\n aria-expanded={dialog.open.value}\n onPointerDown={(event) => {\n if (event.button === 0) {\n openDialog();\n }\n onPointerDown?.(event);\n }}\n onClick={(event) => {\n openDialog();\n onClick?.(event);\n }}\n >\n {children}\n </button>\n );\n};\n"]}
1
+ {"version":3,"sources":["../src/components/dialog/Dialog.tsx","../src/components/dialog/DialogClose.tsx","../src/components/dialog/useModalPanelA11y.ts","../src/components/dialog/DialogContent.tsx","../src/components/dialog/DialogDescription.tsx","../src/components/dialog/DialogTitle.tsx","../src/components/dialog/DialogTrigger.tsx"],"names":["jsx","useRef","useEffect","useMemo","useLayoutEffect","callRef","isValidElement","cloneElement"],"mappings":";;;;;;;;;AAOA,IAAM,sBAAA,GAAyB,8BAAA;AAC/B,IAAM,8BAAA,GAAiC,sCAAA;AACvC,IAAM,8BAAA,GAAiC,sCAAA;AACvC,IAAM,mCAAA,GAAsC,2CAAA;AAC5C,IAAM,sCAAA,GAAyC,8CAAA;AAE/C,IAAM,qBAAqB,MAAM;AAC/B,EAAA,MAAM,OAAO,QAAA,CAAS,IAAA;AACtB,EAAA,MAAM,OAAO,QAAA,CAAS,eAAA;AACtB,EAAA,MAAM,SAAA,GAAY,OAAO,QAAA,CAAS,IAAA,CAAK,aAAa,sBAAsB,CAAA,IAAK,KAAK,EAAE,CAAA;AAEtF,EAAA,IAAI,cAAc,CAAA,EAAG;AACnB,IAAA,IAAA,CAAK,YAAA,CAAa,8BAAA,EAAgC,IAAA,CAAK,KAAA,CAAM,QAAQ,CAAA;AACrE,IAAA,IAAA,CAAK,YAAA,CAAa,mCAAA,EAAqC,IAAA,CAAK,KAAA,CAAM,YAAY,CAAA;AAC9E,IAAA,IAAA,CAAK,YAAA,CAAa,8BAAA,EAAgC,IAAA,CAAK,KAAA,CAAM,QAAQ,CAAA;AACrE,IAAA,IAAA,CAAK,YAAA,CAAa,sCAAA,EAAwC,IAAA,CAAK,KAAA,CAAM,eAAe,CAAA;AAEpF,IAAA,MAAM,MAAA,GAAS,gBAAA,CAAiB,IAAI,CAAA,CAAE,eAAA;AACtC,IAAA,MAAM,wBAAA,GAA2B,MAAA,KAAW,QAAA,IAAY,MAAA,KAAW,mBAAA;AAEnE,IAAA,IAAI,wBAAA,EAA0B;AAG5B,MAAA,IAAA,CAAK,KAAA,CAAM,WAAA,CAAY,4BAAA,EAA8B,KAAK,CAAA;AAAA,IAC5D,CAAA,MAAO;AAEL,MAAA,IAAA,CAAK,MAAM,eAAA,GAAkB,MAAA;AAC7B,MAAA,KAAK,IAAA,CAAK,YAAA;AAEV,MAAA,MAAM,cAAA,GAAiB,KAAK,GAAA,CAAI,CAAA,EAAG,OAAO,UAAA,GAAa,QAAA,CAAS,gBAAgB,WAAW,CAAA;AAC3F,MAAA,IAAA,CAAK,KAAA,CAAM,WAAA,CAAY,4BAAA,EAA8B,CAAA,EAAG,cAAc,CAAA,EAAA,CAAI,CAAA;AAE1E,MAAA,IAAI,iBAAiB,CAAA,EAAG;AACtB,QAAA,IAAA,CAAK,KAAA,CAAM,YAAA,GAAe,CAAA,EAAG,cAAc,CAAA,EAAA,CAAA;AAAA,MAC7C;AAAA,IACF;AAEA,IAAA,IAAA,CAAK,MAAM,QAAA,GAAW,QAAA;AACtB,IAAA,IAAA,CAAK,MAAM,QAAA,GAAW,QAAA;AACtB,IAAA,IAAA,CAAK,YAAA,CAAa,0BAA0B,EAAE,CAAA;AAAA,EAChD;AAEA,EAAA,IAAA,CAAK,YAAA,CAAa,sBAAA,EAAwB,MAAA,CAAO,SAAA,GAAY,CAAC,CAAC,CAAA;AAE/D,EAAA,OAAO,MAAM;AACX,IAAA,MAAM,YAAA,GAAe,OAAO,QAAA,CAAS,IAAA,CAAK,aAAa,sBAAsB,CAAA,IAAK,KAAK,EAAE,CAAA;AACzF,IAAA,MAAM,SAAA,GAAY,IAAA,CAAK,GAAA,CAAI,CAAA,EAAG,eAAe,CAAC,CAAA;AAE9C,IAAA,IAAI,YAAY,CAAA,EAAG;AACjB,MAAA,IAAA,CAAK,YAAA,CAAa,sBAAA,EAAwB,MAAA,CAAO,SAAS,CAAC,CAAA;AAC3D,MAAA;AAAA,IACF;AAEA,IAAA,MAAM,oBAAA,GAAuB,IAAA,CAAK,YAAA,CAAa,8BAA8B,CAAA,IAAK,EAAA;AAClF,IAAA,MAAM,oBAAA,GAAuB,IAAA,CAAK,YAAA,CAAa,8BAA8B,CAAA,IAAK,EAAA;AAClF,IAAA,MAAM,wBAAA,GAA2B,IAAA,CAAK,YAAA,CAAa,mCAAmC,CAAA,IAAK,EAAA;AAC3F,IAAA,MAAM,2BAAA,GACJ,IAAA,CAAK,YAAA,CAAa,sCAAsC,CAAA,IAAK,EAAA;AAE/D,IAAA,IAAA,CAAK,MAAM,QAAA,GAAW,oBAAA;AACtB,IAAA,IAAA,CAAK,MAAM,YAAA,GAAe,wBAAA;AAC1B,IAAA,IAAA,CAAK,MAAM,QAAA,GAAW,oBAAA;AACtB,IAAA,IAAI,gCAAgC,EAAA,EAAI;AACtC,MAAA,IAAA,CAAK,KAAA,CAAM,eAAe,kBAAkB,CAAA;AAAA,IAC9C,CAAA,MAAO;AACL,MAAA,IAAA,CAAK,MAAM,eAAA,GAAkB,2BAAA;AAAA,IAC/B;AACA,IAAA,IAAA,CAAK,KAAA,CAAM,eAAe,4BAA4B,CAAA;AACtD,IAAA,IAAA,CAAK,gBAAgB,wBAAwB,CAAA;AAC7C,IAAA,IAAA,CAAK,gBAAgB,sBAAsB,CAAA;AAC3C,IAAA,IAAA,CAAK,gBAAgB,8BAA8B,CAAA;AACnD,IAAA,IAAA,CAAK,gBAAgB,mCAAmC,CAAA;AACxD,IAAA,IAAA,CAAK,gBAAgB,8BAA8B,CAAA;AACnD,IAAA,IAAA,CAAK,gBAAgB,sCAAsC,CAAA;AAAA,EAC7D,CAAA;AACF,CAAA;AAUA,IAAM,aAAA,GAAgB,cAAyC,IAAI,CAAA;AAE5D,IAAM,YAAY,MAAM;AAC7B,EAAA,MAAM,OAAA,GAAU,WAAW,aAAa,CAAA;AACxC,EAAA,IAAI,CAAC,OAAA,EAAS,MAAM,IAAI,MAAM,iDAAiD,CAAA;AAC/E,EAAA,OAAO,OAAA;AACT;AAWO,IAAM,SAAS,CAAC;AAAA,EACrB,WAAA,GAAc,KAAA;AAAA,EACd,IAAA,EAAM,QAAA;AAAA,EACN,YAAA;AAAA,EACA,cAAA,GAAiB,IAAA;AAAA,EACjB,QAAA;AAAA,EACA,GAAG;AACL,CAAA,KAAmB;AACjB,EAAA,MAAM,eAAA,GAAkB,OAAO,YAAY,CAAA;AAC3C,EAAA,eAAA,CAAgB,OAAA,GAAU,YAAA;AAC1B,EAAA,MAAM,UAAA,GAAa,OAA2B,IAAI,CAAA;AAClD,EAAA,MAAM,UAAU,OAAA,CAAQ,MAAM,OAA2B,MAAS,CAAA,EAAG,EAAE,CAAA;AACvE,EAAA,MAAM,gBAAgB,OAAA,CAAQ,MAAM,OAA2B,MAAS,CAAA,EAAG,EAAE,CAAA;AAE7E,EAAA,MAAM,YAAA,GAAe,OAAA;AAAA,IACnB,MACE,wBAAA,CAAkC;AAAA,MAChC,KAAA,EAAO,QAAA;AAAA,MACP,YAAA,EAAc,WAAA;AAAA,MACd,QAAA,EAAU,CAAC,IAAA,KAAS,eAAA,CAAgB,UAAU,IAAI;AAAA,KACnD,CAAA;AAAA,IACH;AAAC,GACH;AACA,EAAA,MAAM,OAAO,YAAA,CAAa,KAAA;AAK1B,EAAA,IAAI,QAAA,KAAa,MAAA,IAAa,IAAA,CAAK,KAAA,KAAU,QAAA,EAAU;AACrD,IAAA,IAAA,CAAK,KAAA,GAAQ,QAAA;AAAA,EACf;AAEA,EAAA,MAAM,OAAA,GAAU,CAAC,IAAA,KAAkB;AACjC,IAAA,MAAM,UAAU,IAAA,CAAK,KAAA;AACrB,IAAA,YAAA,CAAa,SAAS,IAAI,CAAA;AAC1B,IAAA,IAAI,OAAA,IAAW,CAAC,IAAA,EAAM;AACpB,MAAA,MAAM,UAAU,UAAA,CAAW,OAAA;AAC3B,MAAA,IAAI,OAAA,IAAW,OAAO,OAAA,CAAQ,KAAA,KAAU,UAAA,EAAY;AAClD,QAAA,OAAA,CAAQ,KAAA,EAAM;AAAA,MAChB;AAAA,IACF;AAAA,EACF,CAAA;AAEA,EAAA,MAAM,OAAA,GAAU,OAA8B,IAAI,CAAA;AAElD,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,MAAM,QAAQ,sBAAA,CAAuB;AAAA,MACnC,IAAA,EAAM,MAAM,OAAA,CAAQ,OAAA;AAAA,MACpB,IAAA,EAAM,MAAM,IAAA,CAAK,KAAA;AAAA,MACjB,WAAW,MAAM;AACf,QAAA,OAAA,CAAQ,KAAK,CAAA;AAAA,MACf;AAAA,KACD,CAAA;AACD,IAAA,OAAO,MAAM,MAAM,OAAA,EAAQ;AAAA,EAC7B,CAAA,EAAG,EAAE,CAAA;AAEL,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,IAAI,CAAC,cAAA,IAAkB,OAAO,QAAA,KAAa,WAAA,EAAa;AACxD,IAAA,IAAI,CAAC,KAAK,KAAA,EAAO;AACjB,IAAA,OAAO,kBAAA,EAAmB;AAAA,EAC5B,CAAA,EAAG,CAAC,cAAA,EAAgB,IAAA,CAAK,KAAK,CAAC,CAAA;AAE/B,EAAA,uBACE,GAAA,CAAC,aAAA,CAAc,QAAA,EAAd,EAAuB,KAAA,EAAO,EAAE,IAAA,EAAM,OAAA,EAAS,UAAA,EAAY,OAAA,EAAS,aAAA,EAAc,EACjF,QAAA,kBAAA,GAAA,CAAC,SAAI,GAAA,EAAK,OAAA,EAAS,WAAA,EAAU,QAAA,EAAS,YAAA,EAAY,IAAA,CAAK,KAAA,GAAQ,MAAA,GAAS,QAAA,EAAW,GAAG,IAAA,EACnF,QAAA,EACH,CAAA,EACF,CAAA;AAEJ;ACzKA,IAAM,OAAA,GAAU,CAAwB,GAAA,EAAc,IAAA,KAAmB;AACvE,EAAA,IAAI,OAAO,QAAQ,UAAA,EAAY;AAC7B,IAAA,GAAA,CAAI,IAAI,CAAA;AAAA,EACV,WAAW,GAAA,IAAO,OAAO,GAAA,KAAQ,QAAA,IAAY,aAAa,GAAA,EAAK;AAC7D,IAAC,IAA8B,OAAA,GAAU,IAAA;AAAA,EAC3C;AACF,CAAA;AAEO,IAAM,cAAc,CAAC;AAAA,EAC1B,OAAA,GAAU,KAAA;AAAA,EACV,QAAA;AAAA,EACA,OAAA;AAAA,EACA,GAAA,EAAK,QAAA;AAAA,EACL,aAAa,QAAA,GAAW,cAAA;AAAA,EACxB,GAAG;AACL,CAAA,KAAwB;AACtB,EAAA,MAAM,SAAS,SAAA,EAAU;AAEzB,EAAA,MAAM,WAAA,GAAc,CAAC,KAAA,KAA+C;AAClE,IAAA,OAAA,GAAU,KAAkD,CAAA;AAC5D,IAAA,IAAI,MAAM,gBAAA,EAAkB;AAC5B,IAAA,MAAA,CAAO,QAAQ,KAAK,CAAA;AAAA,EACtB,CAAA;AAEA,EAAA,IAAI,OAAA,EAAS;AACX,IAAA,IAAI,CAAC,cAAA,CAAe,QAAQ,CAAA,EAAG;AAC7B,MAAA,OAAO,IAAA;AAAA,IACT;AAEA,IAAA,MAAM,UAAA,GAAc,QAAA,CAAS,KAAA,IAAS,EAAC;AAKvC,IAAA,OAAO,aAAa,QAAA,EAAU;AAAA,MAC5B,GAAI,UAAA;AAAA,MACJ,GAAI,IAAA;AAAA,MACJ,WAAA,EAAa,QAAA;AAAA,MACb,OAAA,EAAS,CAAC,KAAA,KAA+C;AACvD,QAAA,UAAA,CAAW,UAAU,KAAK,CAAA;AAC1B,QAAA,WAAA,CAAY,KAAK,CAAA;AAAA,MACnB,CAAA;AAAA,MACA,GAAA,EAAK,CAAC,IAAA,KAA6B;AACjC,QAAA,OAAA,CAAQ,UAAA,CAAW,KAAK,IAAI,CAAA;AAC5B,QAAA,OAAA,CAAQ,UAAU,IAAI,CAAA;AAAA,MACxB;AAAA,KACQ,CAAA;AAAA,EACZ;AAEA,EAAA,uBACEA,GAAAA;AAAA,IAAC,QAAA;AAAA,IAAA;AAAA,MACC,GAAA,EAAK,CAAC,IAAA,KAAS;AACb,QAAA,OAAA,CAAQ,UAAU,IAAI,CAAA;AAAA,MACxB,CAAA;AAAA,MACA,IAAA,EAAK,QAAA;AAAA,MACL,WAAA,EAAW,QAAA;AAAA,MACX,OAAA,EAAS,CAAC,KAAA,KAAU,WAAA,CAAY,KAAuD,CAAA;AAAA,MACtF,GAAG,IAAA;AAAA,MAEH;AAAA;AAAA,GACH;AAEJ;ACnEO,IAAM,iBAAA,GAAoB,CAAC,IAAA,KAAkB;AAClD,EAAA,MAAM,SAAS,SAAA,EAAU;AACzB,EAAA,MAAM,QAAA,GAAWC,OAA8B,IAAI,CAAA;AAEnD,EAAA,MAAM,UAAA,GAAa,OAAO,OAAA,CAAQ,KAAA;AAClC,EAAA,MAAM,WAAA,GAAc,OAAO,aAAA,CAAc,KAAA;AAEzC,EAAAC,UAAU,MAAM;AACd,IAAA,IAAI,CAAC,IAAA,EAAM;AACX,IAAA,MAAM,QAAQ,QAAA,CAAS,OAAA;AACvB,IAAA,IAAI,CAAC,KAAA,EAAO;AACZ,IAAA,OAAO,UAAU,KAAK,CAAA;AAAA,EACxB,CAAA,EAAG,CAAC,IAAI,CAAC,CAAA;AAET,EAAA,OAAO;AAAA,IACL,QAAA;AAAA,IACA,UAAA;AAAA,IACA;AAAA,GACF;AACF;ACXO,IAAM,wBAAA,GACX;AAEF,IAAM,iBAAA,GAAoB;AAAA,EACxB,wBAAA;AAAA,EACA;AACF,CAAA,CAAE,KAAK,GAAG,CAAA;AAEV,IAAM,cAAA,GAAiB;AAAA,EACrB,0JAAA;AAAA,EACA,wBAAA;AAAA,EACA,qGAAA;AAAA,EACA,sDAAA;AAAA,EACA;AACF,CAAA,CAAE,KAAK,GAAG,CAAA;AAsBH,IAAM,gBAAgB,CAAC;AAAA,EAC5B,UAAA,GAAa,KAAA;AAAA,EACb,YAAA,GAAe,OAAA;AAAA,EACf,eAAA,GAAkB,IAAA;AAAA,EAClB,KAAA,EAAO,SAAA;AAAA,EACP,QAAA;AAAA,EACA,SAAA;AAAA,EACA,aAAa,QAAA,GAAW,gBAAA;AAAA,EACxB,iBAAA,EAAmB,cAAA;AAAA,EACnB,kBAAA,EAAoB,eAAA;AAAA,EACpB,GAAG;AACL,CAAA,KAA0B;AACxB,EAAA,MAAM,SAAS,SAAA,EAAU;AACzB,EAAA,MAAM,MAAA,GAAS,OAAO,IAAA,CAAK,KAAA;AAC3B,EAAA,MAAM,EAAE,QAAA,EAAU,UAAA,EAAY,aAAY,GAAI,iBAAA,CAAkB,UAAU,UAAU,CAAA;AACpF,EAAA,IAAI,CAAC,MAAA,IAAU,CAAC,UAAA,EAAY,OAAO,IAAA;AAEnC,EAAA,MAAM,KAAA,GAAQ,SAAS,MAAA,GAAS,QAAA;AAChC,EAAA,MAAM,SAAA,GAAY;AAAA,IAChB,mBAAmB,cAAA,IAAkB,UAAA;AAAA,IACrC,oBAAoB,eAAA,IAAmB;AAAA,GACzC;AAEA,EAAA,MAAM,aAAA,GAAgB,CAAC,KAAA,KAAqD;AAC1E,IAAA,IAAI,KAAA,CAAM,QAAQ,QAAA,EAAU;AAC1B,MAAA,KAAA,CAAM,cAAA,EAAe;AACrB,MAAA,MAAA,CAAO,QAAQ,KAAK,CAAA;AAAA,IACtB;AACA,IAAA,SAAA,GAAY,KAAK,CAAA;AAAA,EACnB,CAAA;AAEA,EAAA,IAAI,iBAAiB,MAAA,EAAQ;AAC3B,IAAA,MAAM,0BACJF,GAAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,GAAA,EAAK,QAAA;AAAA,QACL,IAAA,EAAK,QAAA;AAAA,QACL,YAAA,EAAW,MAAA;AAAA,QACX,QAAA,EAAU,EAAA;AAAA,QACV,WAAA,EAAW,QAAA;AAAA,QACX,6BAAA,EAA4B,EAAA;AAAA,QAC5B,YAAA,EAAY,KAAA;AAAA,QACX,GAAG,SAAA;AAAA,QACH,GAAG,IAAA;AAAA,QACJ,SAAA,EAAW,aAAA;AAAA,QACX,KAAA,EAAO,GAAG,SAA+B,CAAA;AAAA,QAExC;AAAA;AAAA,KACH;AAGF,IAAA,IAAI,OAAO,QAAA,KAAa,WAAA,EAAa,OAAO,OAAA;AAC5C,IAAA,OAAO,YAAA,CAAa,OAAA,EAAS,QAAA,CAAS,IAAI,CAAA;AAAA,EAC5C;AAEA,EAAA,MAAM,uBACJ,IAAA,CAAA,QAAA,EAAA,EACE,QAAA,EAAA;AAAA,oBAAAA,GAAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,aAAA,EAAY,MAAA;AAAA,QACZ,WAAA,EAAU,gBAAA;AAAA,QACV,YAAA,EAAY,KAAA;AAAA,QACZ,KAAA,EAAO,iBAAA;AAAA,QACP,aAAA,EAAe,CAAC,KAAA,KAAU;AACxB,UAAA,IAAI,KAAA,CAAM,MAAA,KAAW,KAAA,CAAM,aAAA,EAAe;AAC1C,UAAA,IAAI,mCAAA,CAAoC,KAAK,CAAA,EAAG;AAChD,UAAA,MAAA,CAAO,QAAQ,KAAK,CAAA;AAAA,QACtB;AAAA;AAAA,KACF;AAAA,oBACA,IAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,GAAA,EAAK,QAAA;AAAA,QACL,IAAA,EAAK,QAAA;AAAA,QACL,YAAA,EAAW,MAAA;AAAA,QACX,QAAA,EAAU,EAAA;AAAA,QACV,WAAA,EAAW,QAAA;AAAA,QACX,YAAA,EAAY,KAAA;AAAA,QACX,GAAG,IAAA;AAAA,QACH,GAAG,SAAA;AAAA,QACJ,SAAA,EAAW,aAAA;AAAA,QACX,KAAA,EAAO,EAAA,CAAG,cAAA,EAAgB,SAA+B,CAAA;AAAA,QAExD,QAAA,EAAA;AAAA,UAAA,eAAA,mBACC,IAAA;AAAA,YAAC,WAAA;AAAA,YAAA;AAAA,cACC,YAAA,EAAW,OAAA;AAAA,cACX,WAAA,EAAU,cAAA;AAAA,cACV,KAAA,EAAO,EAAA;AAAA,gBACL,wGAAA;AAAA,gBACA,qEAAA;AAAA,gBACA;AAAA,eACF;AAAA,cAEA,QAAA,EAAA;AAAA,gCAAAA,GAAAA,CAAC,MAAA,EAAA,EAAK,KAAA,EAAM,SAAA,EAAU,QAAA,EAAA,OAAA,EAAK,CAAA;AAAA,gCAC3BA,GAAAA;AAAA,kBAAC,KAAA;AAAA,kBAAA;AAAA,oBACC,KAAA,EAAM,4BAAA;AAAA,oBACN,KAAA,EAAM,IAAA;AAAA,oBACN,MAAA,EAAO,IAAA;AAAA,oBACP,OAAA,EAAQ,WAAA;AAAA,oBACR,IAAA,EAAK,MAAA;AAAA,oBACL,MAAA,EAAO,cAAA;AAAA,oBACP,cAAA,EAAa,GAAA;AAAA,oBACb,gBAAA,EAAe,OAAA;AAAA,oBACf,iBAAA,EAAgB,OAAA;AAAA,oBAChB,KAAA,EAAM,QAAA;AAAA,oBACN,aAAA,EAAW,IAAA;AAAA,oBAEX,QAAA,kBAAAA,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,sBAAA,EAAuB;AAAA;AAAA;AACjC;AAAA;AAAA,WACF,GACE,IAAA;AAAA,UACH;AAAA;AAAA;AAAA;AACH,GAAA,EACF,CAAA;AAGF,EAAA,IAAI,OAAO,QAAA,KAAa,WAAA,EAAa,OAAO,IAAA;AAC5C,EAAA,OAAO,YAAA,CAAa,IAAA,EAAM,QAAA,CAAS,IAAI,CAAA;AACzC;AC5JA,IAAM,iBAAA,GAAoB,gBAAgB,oBAAoB,CAAA;AAMvD,IAAM,oBAAoB,CAAC;AAAA,EAChC,KAAA,EAAO,SAAA;AAAA,EACP,QAAA;AAAA,EACA,EAAA,EAAI,MAAA;AAAA,EACJ,GAAG;AACL,CAAA,KAA8B;AAC5B,EAAA,MAAM,SAAS,SAAA,EAAU;AACzB,EAAA,MAAM,EAAA,GAAKG,QAAQ,MAAM;AACvB,IAAA,IAAI,OAAO,MAAA,KAAW,QAAA,EAAU,OAAO,MAAA;AACvC,IAAA,OAAO,iBAAA,EAAkB;AAAA,EAC3B,CAAA,EAAG,CAAC,MAAM,CAAC,CAAA;AAEX,EAAA,eAAA,CAAgB,MAAM;AACpB,IAAA,MAAA,CAAO,cAAc,KAAA,GAAQ,EAAA;AAC7B,IAAA,OAAO,MAAM;AACX,MAAA,IAAI,MAAA,CAAO,aAAA,CAAc,KAAA,KAAU,EAAA,EAAI;AACrC,QAAA,MAAA,CAAO,cAAc,KAAA,GAAQ,MAAA;AAAA,MAC/B;AAAA,IACF,CAAA;AAAA,EACF,CAAA,EAAG,CAAC,MAAA,CAAO,aAAA,EAAe,EAAE,CAAC,CAAA;AAE7B,EAAA,uBACEH,GAAAA;AAAA,IAAC,GAAA;AAAA,IAAA;AAAA,MACC,WAAA,EAAU,oBAAA;AAAA,MACV,EAAA;AAAA,MACA,KAAA,EAAO,EAAA,CAAG,+BAAA,EAAiC,SAAS,CAAA;AAAA,MACnD,GAAG,IAAA;AAAA,MAEH;AAAA;AAAA,GACH;AAEJ;ACrCA,IAAM,WAAA,GAAc,gBAAgB,cAAc,CAAA;AAM3C,IAAM,cAAc,CAAC;AAAA,EAC1B,KAAA,EAAO,SAAA;AAAA,EACP,QAAA;AAAA,EACA,EAAA,EAAI,MAAA;AAAA,EACJ,GAAG;AACL,CAAA,KAAwB;AACtB,EAAA,MAAM,SAAS,SAAA,EAAU;AACzB,EAAA,MAAM,EAAA,GAAKG,QAAQ,MAAM;AACvB,IAAA,IAAI,OAAO,MAAA,KAAW,QAAA,EAAU,OAAO,MAAA;AACvC,IAAA,OAAO,WAAA,EAAY;AAAA,EACrB,CAAA,EAAG,CAAC,MAAM,CAAC,CAAA;AAEX,EAAAC,gBAAgB,MAAM;AACpB,IAAA,MAAA,CAAO,QAAQ,KAAA,GAAQ,EAAA;AACvB,IAAA,OAAO,MAAM;AACX,MAAA,IAAI,MAAA,CAAO,OAAA,CAAQ,KAAA,KAAU,EAAA,EAAI;AAC/B,QAAA,MAAA,CAAO,QAAQ,KAAA,GAAQ,MAAA;AAAA,MACzB;AAAA,IACF,CAAA;AAAA,EACF,CAAA,EAAG,CAAC,MAAA,CAAO,OAAA,EAAS,EAAE,CAAC,CAAA;AAEvB,EAAA,uBACEJ,GAAAA;AAAA,IAAC,IAAA;AAAA,IAAA;AAAA,MACC,WAAA,EAAU,cAAA;AAAA,MACV,EAAA;AAAA,MACA,KAAA,EAAO,EAAA,CAAG,mDAAA,EAAqD,SAAS,CAAA;AAAA,MACvE,GAAG,IAAA;AAAA,MAEH;AAAA;AAAA,GACH;AAEJ;AClCA,IAAMK,QAAAA,GAAU,CAAwB,GAAA,EAAc,IAAA,KAAmB;AACvE,EAAA,IAAI,OAAO,QAAQ,UAAA,EAAY;AAC7B,IAAA,GAAA,CAAI,IAAI,CAAA;AAAA,EACV,WAAW,GAAA,IAAO,OAAO,GAAA,KAAQ,QAAA,IAAY,aAAa,GAAA,EAAK;AAC7D,IAAC,IAA8B,OAAA,GAAU,IAAA;AAAA,EAC3C;AACF,CAAA;AAEO,IAAM,gBAAgB,CAAC;AAAA,EAC5B,OAAA,GAAU,KAAA;AAAA,EACV,QAAA;AAAA,EACA,OAAA;AAAA,EACA,aAAA;AAAA,EACA,GAAA,EAAK,QAAA;AAAA,EACL,aAAa,QAAA,GAAW,gBAAA;AAAA,EACxB,GAAG;AACL,CAAA,KAA0B;AACxB,EAAA,MAAM,SAAS,SAAA,EAAU;AAEzB,EAAA,MAAM,aAAa,MAAM;AACvB,IAAA,MAAA,CAAO,QAAQ,IAAI,CAAA;AAAA,EACrB,CAAA;AAEA,EAAA,MAAM,iBAAA,GAAoB,CAAC,KAAA,KAAiD;AAC1E,IAAA,aAAA,GAAgB,KAAoD,CAAA;AACpE,IAAA,IAAI,MAAM,gBAAA,EAAkB;AAC5B,IAAA,IAAI,KAAA,CAAM,WAAW,CAAA,EAAG;AACtB,MAAA,UAAA,EAAW;AAAA,IACb;AAAA,EACF,CAAA;AAEA,EAAA,MAAM,WAAA,GAAc,CAAC,KAAA,KAA+C;AAClE,IAAA,OAAA,GAAU,KAAkD,CAAA;AAC5D,IAAA,IAAI,MAAM,gBAAA,EAAkB;AAC5B,IAAA,UAAA,EAAW;AAAA,EACb,CAAA;AAEA,EAAA,IAAI,OAAA,EAAS;AACX,IAAA,IAAI,CAACC,cAAAA,CAAe,QAAQ,CAAA,EAAG;AAC7B,MAAA,OAAO,IAAA;AAAA,IACT;AAEA,IAAA,MAAM,UAAA,GAAc,QAAA,CAAS,KAAA,IAAS,EAAC;AAMvC,IAAA,OAAOC,aAAa,QAAA,EAAU;AAAA,MAC5B,GAAI,UAAA;AAAA,MACJ,GAAI,IAAA;AAAA,MACJ,eAAA,EAAiB,OAAO,IAAA,CAAK,KAAA;AAAA,MAC7B,WAAA,EAAa,QAAA;AAAA,MACb,aAAA,EAAe,CAAC,KAAA,KAAiD;AAC/D,QAAA,UAAA,CAAW,gBAAgB,KAAK,CAAA;AAChC,QAAA,iBAAA,CAAkB,KAAK,CAAA;AAAA,MACzB,CAAA;AAAA,MACA,OAAA,EAAS,CAAC,KAAA,KAA+C;AACvD,QAAA,UAAA,CAAW,UAAU,KAAK,CAAA;AAC1B,QAAA,WAAA,CAAY,KAAK,CAAA;AAAA,MACnB,CAAA;AAAA,MACA,GAAA,EAAK,CAAC,IAAA,KAA6B;AACjC,QAAA,MAAA,CAAO,WAAW,OAAA,GAAU,IAAA;AAC5B,QAAAF,QAAAA,CAAQ,UAAA,CAAW,GAAA,EAAK,IAAI,CAAA;AAC5B,QAAAA,QAAAA,CAAQ,UAAU,IAAI,CAAA;AAAA,MACxB;AAAA,KACQ,CAAA;AAAA,EACZ;AAEA,EAAA,uBACEL,GAAAA;AAAA,IAAC,QAAA;AAAA,IAAA;AAAA,MACC,GAAA,EAAK,CAAC,IAAA,KAAS;AACb,QAAA,MAAA,CAAO,WAAW,OAAA,GAAU,IAAA;AAC5B,QAAAK,QAAAA,CAAQ,UAAU,IAAI,CAAA;AAAA,MACxB,CAAA;AAAA,MACC,GAAG,IAAA;AAAA,MACJ,IAAA,EAAK,QAAA;AAAA,MACL,WAAA,EAAW,QAAA;AAAA,MACX,eAAA,EAAe,OAAO,IAAA,CAAK,KAAA;AAAA,MAC3B,aAAA,EAAe,CAAC,KAAA,KAAU;AACxB,QAAA,IAAI,KAAA,CAAM,WAAW,CAAA,EAAG;AACtB,UAAA,UAAA,EAAW;AAAA,QACb;AACA,QAAA,aAAA,GAAgB,KAAK,CAAA;AAAA,MACvB,CAAA;AAAA,MACA,OAAA,EAAS,CAAC,KAAA,KAAU;AAClB,QAAA,UAAA,EAAW;AACX,QAAA,OAAA,GAAU,KAAK,CAAA;AAAA,MACjB,CAAA;AAAA,MAEC;AAAA;AAAA,GACH;AAEJ","file":"chunk-DUTKHOH3.js","sourcesContent":["import { type Signal, signal } from \"@preact/signals\";\nimport type { ComponentChildren, JSX } from \"preact\";\nimport { createContext } from \"preact\";\nimport { useContext, useEffect, useMemo, useRef } from \"preact/hooks\";\nimport { createDismissableLayer } from \"../../lib/interactive\";\nimport { createControllableSignal } from \"../../lib/signals\";\n\nconst SCROLL_LOCK_COUNT_ATTR = \"data-kamod-scroll-lock-count\";\nconst SCROLL_LOCK_BODY_OVERFLOW_ATTR = \"data-kamod-scroll-lock-body-overflow\";\nconst SCROLL_LOCK_HTML_OVERFLOW_ATTR = \"data-kamod-scroll-lock-html-overflow\";\nconst SCROLL_LOCK_BODY_PADDING_RIGHT_ATTR = \"data-kamod-scroll-lock-body-padding-right\";\nconst SCROLL_LOCK_HTML_SCROLLBAR_GUTTER_ATTR = \"data-kamod-scroll-lock-html-scrollbar-gutter\";\n\nconst lockDocumentScroll = () => {\n const body = document.body;\n const html = document.documentElement;\n const lockCount = Number.parseInt(body.getAttribute(SCROLL_LOCK_COUNT_ATTR) ?? \"0\", 10);\n\n if (lockCount === 0) {\n body.setAttribute(SCROLL_LOCK_BODY_OVERFLOW_ATTR, body.style.overflow);\n body.setAttribute(SCROLL_LOCK_BODY_PADDING_RIGHT_ATTR, body.style.paddingRight);\n html.setAttribute(SCROLL_LOCK_HTML_OVERFLOW_ATTR, html.style.overflow);\n html.setAttribute(SCROLL_LOCK_HTML_SCROLLBAR_GUTTER_ATTR, html.style.scrollbarGutter);\n\n const gutter = getComputedStyle(html).scrollbarGutter;\n const viewportUsesStableGutter = gutter === \"stable\" || gutter === \"stable both-edges\";\n\n if (viewportUsesStableGutter) {\n // Stylesheet `html { scrollbar-gutter: stable }` already reserves scrollbar width; do not\n // force `auto` or add body padding-right (that combo reintroduces the header “jump”).\n html.style.setProperty(\"--kamod-scroll-lock-gutter\", \"0px\");\n } else {\n // If the page does not use stable gutter, measure scrollbar width and pad like Radix/shadcn.\n html.style.scrollbarGutter = \"auto\";\n void html.offsetHeight;\n\n const scrollbarWidth = Math.max(0, window.innerWidth - document.documentElement.clientWidth);\n html.style.setProperty(\"--kamod-scroll-lock-gutter\", `${scrollbarWidth}px`);\n\n if (scrollbarWidth > 0) {\n body.style.paddingRight = `${scrollbarWidth}px`;\n }\n }\n\n html.style.overflow = \"hidden\";\n body.style.overflow = \"hidden\";\n html.setAttribute(\"data-kamod-scroll-lock\", \"\");\n }\n\n body.setAttribute(SCROLL_LOCK_COUNT_ATTR, String(lockCount + 1));\n\n return () => {\n const currentCount = Number.parseInt(body.getAttribute(SCROLL_LOCK_COUNT_ATTR) ?? \"0\", 10);\n const nextCount = Math.max(0, currentCount - 1);\n\n if (nextCount > 0) {\n body.setAttribute(SCROLL_LOCK_COUNT_ATTR, String(nextCount));\n return;\n }\n\n const previousBodyOverflow = body.getAttribute(SCROLL_LOCK_BODY_OVERFLOW_ATTR) ?? \"\";\n const previousHtmlOverflow = html.getAttribute(SCROLL_LOCK_HTML_OVERFLOW_ATTR) ?? \"\";\n const previousBodyPaddingRight = body.getAttribute(SCROLL_LOCK_BODY_PADDING_RIGHT_ATTR) ?? \"\";\n const previousHtmlScrollbarGutter =\n html.getAttribute(SCROLL_LOCK_HTML_SCROLLBAR_GUTTER_ATTR) ?? \"\";\n\n body.style.overflow = previousBodyOverflow;\n body.style.paddingRight = previousBodyPaddingRight;\n html.style.overflow = previousHtmlOverflow;\n if (previousHtmlScrollbarGutter === \"\") {\n html.style.removeProperty(\"scrollbar-gutter\");\n } else {\n html.style.scrollbarGutter = previousHtmlScrollbarGutter;\n }\n html.style.removeProperty(\"--kamod-scroll-lock-gutter\");\n html.removeAttribute(\"data-kamod-scroll-lock\");\n body.removeAttribute(SCROLL_LOCK_COUNT_ATTR);\n body.removeAttribute(SCROLL_LOCK_BODY_OVERFLOW_ATTR);\n body.removeAttribute(SCROLL_LOCK_BODY_PADDING_RIGHT_ATTR);\n html.removeAttribute(SCROLL_LOCK_HTML_OVERFLOW_ATTR);\n html.removeAttribute(SCROLL_LOCK_HTML_SCROLLBAR_GUTTER_ATTR);\n };\n};\n\nexport type DialogContextValue = {\n open: ReturnType<typeof signal<boolean>>;\n setOpen: (next: boolean) => void;\n triggerRef: { current: HTMLElement | null };\n titleId: Signal<string | undefined>;\n descriptionId: Signal<string | undefined>;\n};\n\nconst DialogContext = createContext<DialogContextValue | null>(null);\n\nexport const useDialog = () => {\n const context = useContext(DialogContext);\n if (!context) throw new Error(\"Dialog subcomponents must be used within Dialog\");\n return context;\n};\n\nexport type DialogProps = JSX.HTMLAttributes<HTMLDivElement> & {\n defaultOpen?: boolean;\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n /** When true, locks document scroll while open (shadcn default). */\n lockBodyScroll?: boolean;\n children?: ComponentChildren;\n};\n\nexport const Dialog = ({\n defaultOpen = false,\n open: openProp,\n onOpenChange,\n lockBodyScroll = true,\n children,\n ...rest\n}: DialogProps) => {\n const onOpenChangeRef = useRef(onOpenChange);\n onOpenChangeRef.current = onOpenChange;\n const triggerRef = useRef<HTMLElement | null>(null);\n const titleId = useMemo(() => signal<string | undefined>(undefined), []);\n const descriptionId = useMemo(() => signal<string | undefined>(undefined), []);\n\n const controllable = useMemo(\n () =>\n createControllableSignal<boolean>({\n value: openProp,\n defaultValue: defaultOpen,\n onChange: (next) => onOpenChangeRef.current?.(next),\n }),\n [],\n );\n const open = controllable.state;\n\n // Controlled mode: keep the internal signal in sync before paint. If we only\n // sync in useEffect, the first commit can render DialogContent with open=false\n // while openProp is already true (portal stays unmounted / dismiss layer races).\n if (openProp !== undefined && open.value !== openProp) {\n open.value = openProp;\n }\n\n const setOpen = (next: boolean) => {\n const wasOpen = open.value;\n controllable.setState(next);\n if (wasOpen && !next) {\n const trigger = triggerRef.current;\n if (trigger && typeof trigger.focus === \"function\") {\n trigger.focus();\n }\n }\n };\n\n const rootRef = useRef<HTMLDivElement | null>(null);\n\n useEffect(() => {\n const layer = createDismissableLayer({\n root: () => rootRef.current,\n open: () => open.value,\n onDismiss: () => {\n setOpen(false);\n },\n });\n return () => layer.dispose();\n }, []);\n\n useEffect(() => {\n if (!lockBodyScroll || typeof document === \"undefined\") return;\n if (!open.value) return;\n return lockDocumentScroll();\n }, [lockBodyScroll, open.value]);\n\n return (\n <DialogContext.Provider value={{ open, setOpen, triggerRef, titleId, descriptionId }}>\n <div ref={rootRef} data-slot=\"dialog\" data-state={open.value ? \"open\" : \"closed\"} {...rest}>\n {children}\n </div>\n </DialogContext.Provider>\n );\n};\n","import { type ComponentChildren, cloneElement, isValidElement, type JSX } from \"preact\";\nimport { useDialog } from \"./Dialog\";\n\nexport type DialogCloseProps = JSX.ButtonHTMLAttributes<HTMLButtonElement> & {\n asChild?: boolean;\n children?: ComponentChildren;\n \"data-slot\"?: string;\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 DialogClose = ({\n asChild = false,\n children,\n onClick,\n ref: outerRef,\n \"data-slot\": dataSlot = \"dialog-close\",\n ...rest\n}: DialogCloseProps) => {\n const dialog = useDialog();\n\n const handleClick = (event: JSX.TargetedMouseEvent<HTMLElement>) => {\n onClick?.(event as JSX.TargetedMouseEvent<HTMLButtonElement>);\n if (event.defaultPrevented) return;\n dialog.setOpen(false);\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 \"data-slot\": dataSlot,\n onClick: (event: JSX.TargetedMouseEvent<HTMLElement>) => {\n childProps.onClick?.(event);\n handleClick(event);\n },\n ref: (node: HTMLElement | null) => {\n callRef(childProps.ref, node);\n callRef(outerRef, node);\n },\n } as never);\n }\n\n return (\n <button\n ref={(node) => {\n callRef(outerRef, node);\n }}\n type=\"button\"\n data-slot={dataSlot}\n onClick={(event) => handleClick(event as unknown as JSX.TargetedMouseEvent<HTMLElement>)}\n {...rest}\n >\n {children}\n </button>\n );\n};\n","import { useEffect, useRef } from \"preact/hooks\";\nimport { trapFocus } from \"../../lib/interactive\";\nimport { useDialog } from \"./Dialog\";\n\nexport const useModalPanelA11y = (open: boolean) => {\n const dialog = useDialog();\n const panelRef = useRef<HTMLDivElement | null>(null);\n\n const labelledBy = dialog.titleId.value;\n const describedBy = dialog.descriptionId.value;\n\n useEffect(() => {\n if (!open) return;\n const panel = panelRef.current;\n if (!panel) return;\n return trapFocus(panel);\n }, [open]);\n\n return {\n panelRef,\n labelledBy,\n describedBy,\n };\n};\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { createPortal } from \"../../lib/createPortal\";\nimport { isPointerWithinModalDialogPanelSlop } from \"../../lib/interactive\";\nimport { cn } from \"../../lib/utils\";\nimport { useDialog } from \"./Dialog\";\nimport { DialogClose } from \"./DialogClose\";\nimport { useModalPanelA11y } from \"./useModalPanelA11y\";\n\n/**\n * `fixed inset-0` can miss edge pixels vs full-viewport overlays; explicit `100vw` / `100vh`\n * keeps the backdrop flush with the visual viewport.\n */\nexport const dialogViewportBleedClass =\n \"fixed left-0 top-0 h-screen min-h-[100dvh] w-screen min-w-[100vw]\";\n\nconst modalOverlayClass = [\n dialogViewportBleedClass,\n \"z-40 bg-black/50 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fill-mode-forwards fade-in fade-out\",\n].join(\" \");\n\nconst modalPanelBase = [\n \"fixed left-1/2 top-1/2 z-50 grid w-full max-w-[calc(100vw-2rem)] -translate-x-1/2 -translate-y-1/2 gap-4 border bg-background p-6 shadow-lg outline-none\",\n \"rounded-lg sm:max-w-lg\",\n \"data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fill-mode-forwards\",\n \"fade-in zoom-in-95 fade-out zoom-out-95 duration-200\",\n \"max-h-[calc(100dvh-2rem)] overflow-y-auto overflow-x-hidden\",\n].join(\" \");\n\nexport type DialogContentPresentation = \"modal\" | \"slot\";\n\nexport type DialogContentProps = JSX.HTMLAttributes<HTMLDivElement> & {\n forceMount?: boolean;\n /**\n * `modal` — built-in overlay + centered panel + optional corner close.\n * `slot` — one portaled element only; use when **you** provide overlay + panel (legacy fullscreen `DialogContent` pattern with `fixed inset-0 …`).\n */\n presentation?: DialogContentPresentation;\n showCloseButton?: boolean;\n children?: ComponentChildren;\n \"data-slot\"?: string;\n};\n\n/**\n * Renders dialog body in a portal.\n *\n * - **modal (default):** Backdrop + centered panel; use `class` only for sizing (e.g. `sm:max-w-sm`).\n * - **slot:** Single root node — **required** for legacy/custom layouts that already implement `fixed inset-0` overlay + inner card (otherwise you stack two modals).\n */\nexport const DialogContent = ({\n forceMount = false,\n presentation = \"modal\",\n showCloseButton = true,\n class: className,\n children,\n onKeyDown,\n \"data-slot\": dataSlot = \"dialog-content\",\n \"aria-labelledby\": ariaLabelledBy,\n \"aria-describedby\": ariaDescribedBy,\n ...rest\n}: DialogContentProps) => {\n const dialog = useDialog();\n const isOpen = dialog.open.value;\n const { panelRef, labelledBy, describedBy } = useModalPanelA11y(isOpen || forceMount);\n if (!isOpen && !forceMount) return null;\n\n const state = isOpen ? \"open\" : \"closed\";\n const modalA11y = {\n \"aria-labelledby\": ariaLabelledBy ?? labelledBy,\n \"aria-describedby\": ariaDescribedBy ?? describedBy,\n };\n\n const handleKeyDown = (event: JSX.TargetedKeyboardEvent<HTMLDivElement>) => {\n if (event.key === \"Escape\") {\n event.preventDefault();\n dialog.setOpen(false);\n }\n onKeyDown?.(event);\n };\n\n if (presentation === \"slot\") {\n const content = (\n <div\n ref={panelRef}\n role=\"dialog\"\n aria-modal=\"true\"\n tabIndex={-1}\n data-slot={dataSlot}\n data-kamod-root-dismissible=\"\"\n data-state={state}\n {...modalA11y}\n {...rest}\n onKeyDown={handleKeyDown}\n class={cn(className as string | undefined)}\n >\n {children}\n </div>\n );\n\n if (typeof document === \"undefined\") return content;\n return createPortal(content, document.body);\n }\n\n const tree = (\n <>\n <div\n aria-hidden=\"true\"\n data-slot=\"dialog-overlay\"\n data-state={state}\n class={modalOverlayClass}\n onPointerDown={(event) => {\n if (event.target !== event.currentTarget) return;\n if (isPointerWithinModalDialogPanelSlop(event)) return;\n dialog.setOpen(false);\n }}\n />\n <div\n ref={panelRef}\n role=\"dialog\"\n aria-modal=\"true\"\n tabIndex={-1}\n data-slot={dataSlot}\n data-state={state}\n {...rest}\n {...modalA11y}\n onKeyDown={handleKeyDown}\n class={cn(modalPanelBase, className as string | undefined)}\n >\n {showCloseButton ? (\n <DialogClose\n aria-label=\"Close\"\n data-slot=\"dialog-close\"\n class={cn(\n \"absolute end-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100\",\n \"focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2\",\n \"disabled:pointer-events-none\",\n )}\n >\n <span class=\"sr-only\">Close</span>\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=\"size-4\"\n aria-hidden\n >\n <path d=\"M18 6 6 18M6 6l12 12\" />\n </svg>\n </DialogClose>\n ) : null}\n {children}\n </div>\n </>\n );\n\n if (typeof document === \"undefined\") return tree;\n return createPortal(tree, document.body);\n};\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { useLayoutEffect, useMemo } from \"preact/hooks\";\nimport { createIdFactory } from \"../../lib/interactive\";\nimport { cn } from \"../../lib/utils\";\nimport { useDialog } from \"./Dialog\";\n\nconst nextDescriptionId = createIdFactory(\"dialog-description\");\n\nexport type DialogDescriptionProps = JSX.HTMLAttributes<HTMLParagraphElement> & {\n children?: ComponentChildren;\n};\n\nexport const DialogDescription = ({\n class: className,\n children,\n id: idProp,\n ...rest\n}: DialogDescriptionProps) => {\n const dialog = useDialog();\n const id = useMemo(() => {\n if (typeof idProp === \"string\") return idProp;\n return nextDescriptionId();\n }, [idProp]);\n\n useLayoutEffect(() => {\n dialog.descriptionId.value = id;\n return () => {\n if (dialog.descriptionId.value === id) {\n dialog.descriptionId.value = undefined;\n }\n };\n }, [dialog.descriptionId, id]);\n\n return (\n <p\n data-slot=\"dialog-description\"\n id={id}\n class={cn(\"text-muted-foreground text-sm\", className)}\n {...rest}\n >\n {children}\n </p>\n );\n};\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { useLayoutEffect, useMemo } from \"preact/hooks\";\nimport { createIdFactory } from \"../../lib/interactive\";\nimport { cn } from \"../../lib/utils\";\nimport { useDialog } from \"./Dialog\";\n\nconst nextTitleId = createIdFactory(\"dialog-title\");\n\nexport type DialogTitleProps = JSX.HTMLAttributes<HTMLHeadingElement> & {\n children?: ComponentChildren;\n};\n\nexport const DialogTitle = ({\n class: className,\n children,\n id: idProp,\n ...rest\n}: DialogTitleProps) => {\n const dialog = useDialog();\n const id = useMemo(() => {\n if (typeof idProp === \"string\") return idProp;\n return nextTitleId();\n }, [idProp]);\n\n useLayoutEffect(() => {\n dialog.titleId.value = id;\n return () => {\n if (dialog.titleId.value === id) {\n dialog.titleId.value = undefined;\n }\n };\n }, [dialog.titleId, id]);\n\n return (\n <h2\n data-slot=\"dialog-title\"\n id={id}\n class={cn(\"text-lg leading-none font-semibold tracking-tight\", className)}\n {...rest}\n >\n {children}\n </h2>\n );\n};\n","import { type ComponentChildren, cloneElement, isValidElement, type JSX } from \"preact\";\nimport { useDialog } from \"./Dialog\";\n\nexport type DialogTriggerProps = JSX.ButtonHTMLAttributes<HTMLButtonElement> & {\n asChild?: boolean;\n children?: ComponentChildren;\n \"data-slot\"?: string;\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 DialogTrigger = ({\n asChild = false,\n children,\n onClick,\n onPointerDown,\n ref: outerRef,\n \"data-slot\": dataSlot = \"dialog-trigger\",\n ...rest\n}: DialogTriggerProps) => {\n const dialog = useDialog();\n\n const openDialog = () => {\n dialog.setOpen(true);\n };\n\n const handlePointerDown = (event: JSX.TargetedPointerEvent<HTMLElement>) => {\n onPointerDown?.(event as JSX.TargetedPointerEvent<HTMLButtonElement>);\n if (event.defaultPrevented) return;\n if (event.button === 0) {\n openDialog();\n }\n };\n\n const handleClick = (event: JSX.TargetedMouseEvent<HTMLElement>) => {\n onClick?.(event as JSX.TargetedMouseEvent<HTMLButtonElement>);\n if (event.defaultPrevented) return;\n openDialog();\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 onPointerDown?: (event: JSX.TargetedPointerEvent<HTMLElement>) => void;\n };\n\n return cloneElement(children, {\n ...(childProps as Record<string, unknown>),\n ...(rest as Record<string, unknown>),\n \"aria-expanded\": dialog.open.value,\n \"data-slot\": dataSlot,\n onPointerDown: (event: JSX.TargetedPointerEvent<HTMLElement>) => {\n childProps.onPointerDown?.(event);\n handlePointerDown(event);\n },\n onClick: (event: JSX.TargetedMouseEvent<HTMLElement>) => {\n childProps.onClick?.(event);\n handleClick(event);\n },\n ref: (node: HTMLElement | null) => {\n dialog.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 dialog.triggerRef.current = node;\n callRef(outerRef, node);\n }}\n {...rest}\n type=\"button\"\n data-slot={dataSlot}\n aria-expanded={dialog.open.value}\n onPointerDown={(event) => {\n if (event.button === 0) {\n openDialog();\n }\n onPointerDown?.(event);\n }}\n onClick={(event) => {\n openDialog();\n onClick?.(event);\n }}\n >\n {children}\n </button>\n );\n};\n"]}
@@ -1,11 +1,11 @@
1
1
  import { TooltipProvider, Tooltip, TooltipTrigger, TooltipContent } from './chunk-HTSAUMF5.js';
2
- import { Skeleton } from './chunk-YZLPO4B2.js';
3
- import { Sheet, SheetContent, SheetHeader } from './chunk-EMUPVA2F.js';
4
- import { Input } from './chunk-6RASPU5N.js';
5
- import { Separator } from './chunk-LCWXIQKA.js';
6
- import { DialogTitle, DialogDescription } from './chunk-HHLQYMPT.js';
7
- import { Button } from './chunk-5FBD2NTR.js';
8
- import { cn } from './chunk-MS2ZNYCJ.js';
2
+ import { Skeleton } from './chunk-WRXXU5F6.js';
3
+ import { Sheet, SheetContent, SheetHeader } from './chunk-KHV3WV6T.js';
4
+ import { Input } from './chunk-7LWAWZHM.js';
5
+ import { Separator } from './chunk-Q3RL7TOY.js';
6
+ import { DialogTitle, DialogDescription } from './chunk-DUTKHOH3.js';
7
+ import { Button } from './chunk-DDRX6NNW.js';
8
+ import { cn } from './chunk-XIANSPQO.js';
9
9
  import { createContext, isValidElement, cloneElement } from 'preact';
10
10
  import { useContext, useState, useCallback, useEffect, useMemo } from 'preact/hooks';
11
11
  import { jsx, jsxs } from 'preact/jsx-runtime';
@@ -429,11 +429,7 @@ var SidebarMenuButton = ({
429
429
  ...rest
430
430
  }) => {
431
431
  const { isMobile, state } = useSidebar();
432
- const classes = sidebarMenuButton({
433
- variant,
434
- size,
435
- class: className
436
- });
432
+ const classes = cn(sidebarMenuButton({ variant, size }), className);
437
433
  const button = asChild ? /* @__PURE__ */ jsx(
438
434
  Slot,
439
435
  {
@@ -688,13 +684,14 @@ var SidebarTrigger = ({ class: className, onClick, ...rest }) => {
688
684
  "data-slot": "sidebar-trigger",
689
685
  variant: "ghost",
690
686
  size: "icon",
687
+ type: "button",
691
688
  class: cn("size-7", className),
692
689
  "aria-label": "Toggle Sidebar",
690
+ ...rest,
693
691
  onClick: (event) => {
694
692
  onClick?.(event);
695
693
  toggleSidebar();
696
694
  },
697
- ...rest,
698
695
  children: [
699
696
  /* @__PURE__ */ jsx(PanelLeftIcon, {}),
700
697
  /* @__PURE__ */ jsx("span", { class: "sr-only", children: "Toggle Sidebar" })
@@ -718,5 +715,5 @@ var sidebar_default = {
718
715
  };
719
716
 
720
717
  export { Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, sidebar_default, useSidebar };
721
- //# sourceMappingURL=chunk-24QD2FTA.js.map
722
- //# sourceMappingURL=chunk-24QD2FTA.js.map
718
+ //# sourceMappingURL=chunk-EBXTNL52.js.map
719
+ //# sourceMappingURL=chunk-EBXTNL52.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/sidebar/use-mobile.ts","../src/components/sidebar/SidebarProvider.tsx","../src/components/sidebar/Sidebar.tsx","../src/components/sidebar/SidebarContent.tsx","../src/components/sidebar/SidebarFooter.tsx","../src/components/sidebar/slot.tsx","../src/components/sidebar/SidebarGroup.tsx","../src/components/sidebar/SidebarHeader.tsx","../src/components/sidebar/SidebarInset.tsx","../src/components/sidebar/SidebarMenu.tsx","../src/components/sidebar/SidebarRail.tsx","../src/components/sidebar/PanelLeftIcon.tsx","../src/components/sidebar/SidebarTrigger.tsx","../src/components/sidebar/index.ts"],"names":["useState","useEffect","jsx","jsxs","useMemo"],"mappings":"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","file":"chunk-EBXTNL52.js","sourcesContent":["import { useEffect, useState } from \"preact/hooks\";\n\nconst MOBILE_BREAKPOINT = 768;\n\nexport const useIsMobile = () => {\n const [isMobile, setIsMobile] = useState(false);\n\n useEffect(() => {\n const mql = window.matchMedia(`(max-width: ${MOBILE_BREAKPOINT - 1}px)`);\n const onChange = () => {\n setIsMobile(window.innerWidth < MOBILE_BREAKPOINT);\n };\n mql.addEventListener(\"change\", onChange);\n onChange();\n return () => mql.removeEventListener(\"change\", onChange);\n }, []);\n\n return isMobile;\n};\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { createContext } from \"preact\";\nimport { useCallback, useContext, useEffect, useMemo, useState } from \"preact/hooks\";\nimport { cn } from \"../../lib/utils\";\nimport { TooltipProvider } from \"../tooltip\";\nimport { useIsMobile } from \"./use-mobile\";\n\nconst SIDEBAR_COOKIE_NAME = \"sidebar_state\";\nconst SIDEBAR_COOKIE_MAX_AGE = 60 * 60 * 24 * 7;\nconst SIDEBAR_WIDTH = \"16rem\";\nexport const SIDEBAR_WIDTH_MOBILE = \"18rem\";\nconst SIDEBAR_WIDTH_ICON = \"3rem\";\nconst SIDEBAR_KEYBOARD_SHORTCUT = \"b\";\n\nexport type SidebarContextValue = {\n state: \"expanded\" | \"collapsed\";\n open: boolean;\n setOpen: (open: boolean | ((prev: boolean) => boolean)) => void;\n openMobile: boolean;\n setOpenMobile: (open: boolean | ((prev: boolean) => boolean)) => void;\n isMobile: boolean;\n toggleSidebar: () => void;\n};\n\nconst SidebarContext = createContext<SidebarContextValue | null>(null);\n\nexport const useSidebar = () => {\n const context = useContext(SidebarContext);\n if (!context) throw new Error(\"Sidebar components must be used within SidebarProvider\");\n return context;\n};\n\nexport type SidebarProviderProps = JSX.HTMLAttributes<HTMLDivElement> & {\n defaultOpen?: boolean;\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n children?: ComponentChildren;\n};\n\nexport const SidebarProvider = ({\n defaultOpen = true,\n open: openProp,\n onOpenChange: setOpenProp,\n class: className,\n style,\n children,\n ...rest\n}: SidebarProviderProps) => {\n const isMobile = useIsMobile();\n const [openMobile, setOpenMobile] = useState(false);\n const [_open, _setOpen] = useState(defaultOpen);\n const open = openProp ?? _open;\n\n const setOpen = useCallback(\n (value: boolean | ((prev: boolean) => boolean)) => {\n const openState = typeof value === \"function\" ? value(open) : value;\n if (setOpenProp) {\n setOpenProp(openState);\n } else {\n _setOpen(openState);\n }\n if (typeof document !== \"undefined\") {\n document.cookie = `${SIDEBAR_COOKIE_NAME}=${openState}; path=/; max-age=${SIDEBAR_COOKIE_MAX_AGE}`;\n }\n },\n [setOpenProp, open],\n );\n\n const toggleSidebar = useCallback(() => {\n if (isMobile) {\n setOpenMobile((prev) => !prev);\n } else {\n setOpen((prev) => !prev);\n }\n }, [isMobile, setOpen]);\n\n useEffect(() => {\n const handleKeyDown = (event: KeyboardEvent) => {\n if (event.key === SIDEBAR_KEYBOARD_SHORTCUT && (event.metaKey || event.ctrlKey)) {\n event.preventDefault();\n toggleSidebar();\n }\n };\n window.addEventListener(\"keydown\", handleKeyDown);\n return () => window.removeEventListener(\"keydown\", handleKeyDown);\n }, [toggleSidebar]);\n\n const state = open ? \"expanded\" : \"collapsed\";\n\n const contextValue = useMemo<SidebarContextValue>(\n () => ({\n state,\n open,\n setOpen,\n isMobile,\n openMobile,\n setOpenMobile,\n toggleSidebar,\n }),\n [state, open, setOpen, isMobile, openMobile, toggleSidebar],\n );\n\n return (\n <SidebarContext.Provider value={contextValue}>\n <TooltipProvider delayDuration={0}>\n <div\n data-slot=\"sidebar-wrapper\"\n style={{\n [\"--sidebar-width\" as string]: SIDEBAR_WIDTH,\n [\"--sidebar-width-icon\" as string]: SIDEBAR_WIDTH_ICON,\n ...(typeof style === \"object\" && style !== null ? style : {}),\n }}\n class={cn(\n \"group/sidebar-wrapper flex min-h-svh w-full has-data-[variant=inset]:bg-sidebar\",\n className,\n )}\n {...rest}\n >\n {children}\n </div>\n </TooltipProvider>\n </SidebarContext.Provider>\n );\n};\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\nimport { Sheet, SheetContent, SheetDescription, SheetHeader, SheetTitle } from \"../sheet\";\nimport { SIDEBAR_WIDTH_MOBILE, useSidebar } from \"./SidebarProvider\";\n\nexport type SidebarProps = JSX.HTMLAttributes<HTMLDivElement> & {\n side?: \"left\" | \"right\";\n variant?: \"sidebar\" | \"floating\" | \"inset\";\n collapsible?: \"offcanvas\" | \"icon\" | \"none\";\n children?: ComponentChildren;\n};\n\nexport const Sidebar = ({\n side = \"left\",\n variant = \"sidebar\",\n collapsible = \"offcanvas\",\n class: className,\n children,\n ...rest\n}: SidebarProps) => {\n const { isMobile, state, openMobile, setOpenMobile } = useSidebar();\n\n if (collapsible === \"none\") {\n return (\n <div\n data-slot=\"sidebar\"\n class={cn(\n \"flex h-full w-(--sidebar-width) flex-col bg-sidebar text-sidebar-foreground\",\n className,\n )}\n {...rest}\n >\n {children}\n </div>\n );\n }\n\n if (isMobile) {\n return (\n <Sheet open={openMobile} onOpenChange={setOpenMobile}>\n <SheetContent\n data-sidebar=\"sidebar\"\n data-slot=\"sidebar\"\n data-mobile=\"true\"\n class={cn(\n \"w-(--sidebar-width) bg-sidebar p-0 text-sidebar-foreground [&>button]:hidden\",\n className,\n )}\n style={{ [\"--sidebar-width\" as string]: SIDEBAR_WIDTH_MOBILE }}\n side={side}\n >\n <SheetHeader class=\"sr-only\">\n <SheetTitle>Sidebar</SheetTitle>\n <SheetDescription>Displays the mobile sidebar.</SheetDescription>\n </SheetHeader>\n <div class=\"flex h-full w-full flex-col\">{children}</div>\n </SheetContent>\n </Sheet>\n );\n }\n\n return (\n <div\n class=\"group peer hidden text-sidebar-foreground md:block\"\n data-state={state}\n data-collapsible={state === \"collapsed\" ? collapsible : \"\"}\n data-variant={variant}\n data-side={side}\n data-slot=\"sidebar\"\n >\n <div\n data-slot=\"sidebar-gap\"\n class={cn(\n \"relative w-(--sidebar-width) bg-transparent transition-[width] duration-200 ease-linear\",\n \"group-data-[collapsible=offcanvas]:w-0\",\n \"group-data-[side=right]:rotate-180\",\n variant === \"floating\" || variant === \"inset\"\n ? \"group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]\"\n : \"group-data-[collapsible=icon]:w-(--sidebar-width-icon)\",\n )}\n />\n <div\n data-slot=\"sidebar-container\"\n class={cn(\n \"fixed inset-y-0 z-10 hidden h-svh w-(--sidebar-width) transition-[left,right,width] duration-200 ease-linear md:flex\",\n side === \"left\"\n ? \"left-0 group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]\"\n : \"right-0 group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)]\",\n variant === \"floating\" || variant === \"inset\"\n ? \"p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)]\"\n : \"group-data-[collapsible=icon]:w-(--sidebar-width-icon) group-data-[side=left]:border-r group-data-[side=right]:border-l\",\n className,\n )}\n {...rest}\n >\n <div\n data-sidebar=\"sidebar\"\n data-slot=\"sidebar-inner\"\n class=\"flex h-full w-full flex-col bg-sidebar group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:border group-data-[variant=floating]:border-sidebar-border group-data-[variant=floating]:shadow-sm\"\n >\n {children}\n </div>\n </div>\n </div>\n );\n};\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\n\nexport type SidebarContentProps = JSX.HTMLAttributes<HTMLDivElement> & {\n children?: ComponentChildren;\n};\n\nexport const SidebarContent = ({ class: className, children, ...rest }: SidebarContentProps) => (\n <div\n data-slot=\"sidebar-content\"\n data-sidebar=\"content\"\n class={cn(\n \"flex min-h-0 flex-1 flex-col gap-2 overflow-auto group-data-[collapsible=icon]:overflow-hidden\",\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 SidebarFooterProps = JSX.HTMLAttributes<HTMLDivElement> & {\n children?: ComponentChildren;\n};\n\nexport const SidebarFooter = ({ class: className, children, ...rest }: SidebarFooterProps) => (\n <div\n data-slot=\"sidebar-footer\"\n data-sidebar=\"footer\"\n class={cn(\"flex flex-col gap-2 p-2\", className)}\n {...rest}\n >\n {children}\n </div>\n);\n","import { type ComponentChildren, cloneElement, isValidElement, type VNode } from \"preact\";\nimport { cn } from \"../../lib/utils\";\n\n/** Merge props onto a single element child (shadcn Slot / asChild). */\nexport const Slot = (props: Record<string, unknown> & { children?: ComponentChildren }) => {\n const { children, class: className, ...rest } = props;\n if (!isValidElement(children)) return null;\n const child = children as VNode<Record<string, unknown>>;\n const childProps = (child.props ?? {}) as Record<string, unknown>;\n return cloneElement(child, {\n ...rest,\n ...childProps,\n class: cn(\n className as string | undefined,\n childProps.class as string | undefined,\n childProps.className as string | undefined,\n ),\n });\n};\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\nimport { Input, type InputProps } from \"../input/Input\";\nimport { Separator, type SeparatorProps } from \"../separator/Separator\";\nimport { Slot } from \"./slot\";\n\nexport type SidebarInputProps = InputProps;\n\nexport const SidebarInput = ({ class: className, ...rest }: SidebarInputProps) => (\n <Input\n data-slot=\"sidebar-input\"\n data-sidebar=\"input\"\n class={cn(\"h-8 w-full bg-background shadow-none\", className)}\n {...rest}\n />\n);\n\nexport type SidebarSeparatorProps = SeparatorProps;\n\nexport const SidebarSeparator = ({ class: className, ...rest }: SidebarSeparatorProps) => (\n <Separator\n data-slot=\"sidebar-separator\"\n data-sidebar=\"separator\"\n class={cn(\"mx-2 w-auto bg-sidebar-border\", className)}\n {...rest}\n />\n);\n\nexport type SidebarGroupProps = JSX.HTMLAttributes<HTMLDivElement> & {\n children?: ComponentChildren;\n};\n\nexport const SidebarGroup = ({ class: className, children, ...rest }: SidebarGroupProps) => (\n <div\n data-slot=\"sidebar-group\"\n data-sidebar=\"group\"\n class={cn(\"relative flex w-full min-w-0 flex-col p-2\", className)}\n {...rest}\n >\n {children}\n </div>\n);\n\nexport type SidebarGroupLabelProps = JSX.HTMLAttributes<HTMLDivElement> & {\n asChild?: boolean;\n children?: ComponentChildren;\n};\n\nexport const SidebarGroupLabel = ({\n class: className,\n asChild = false,\n children,\n ...rest\n}: SidebarGroupLabelProps) => {\n const classes = cn(\n \"flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium text-sidebar-foreground/70 ring-sidebar-ring outline-hidden transition-[margin,opacity] duration-200 ease-linear focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0\",\n \"group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0\",\n className as string | undefined,\n );\n if (asChild) {\n return (\n <Slot\n data-slot=\"sidebar-group-label\"\n data-sidebar=\"group-label\"\n class={classes}\n {...(rest as Record<string, unknown>)}\n >\n {children}\n </Slot>\n );\n }\n return (\n <div data-slot=\"sidebar-group-label\" data-sidebar=\"group-label\" class={classes} {...rest}>\n {children}\n </div>\n );\n};\n\nexport type SidebarGroupActionProps = JSX.ButtonHTMLAttributes<HTMLButtonElement> & {\n asChild?: boolean;\n children?: ComponentChildren;\n};\n\nexport const SidebarGroupAction = ({\n class: className,\n asChild = false,\n children,\n ...rest\n}: SidebarGroupActionProps) => {\n const classes = cn(\n \"absolute top-3.5 right-3 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-sidebar-foreground ring-sidebar-ring outline-hidden transition-transform hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0\",\n \"after:absolute after:-inset-2 md:after:hidden\",\n \"group-data-[collapsible=icon]:hidden\",\n className as string | undefined,\n );\n if (asChild) {\n return (\n <Slot\n data-slot=\"sidebar-group-action\"\n data-sidebar=\"group-action\"\n class={classes}\n {...(rest as Record<string, unknown>)}\n >\n {children}\n </Slot>\n );\n }\n return (\n <button\n type=\"button\"\n data-slot=\"sidebar-group-action\"\n data-sidebar=\"group-action\"\n class={classes}\n {...rest}\n >\n {children}\n </button>\n );\n};\n\nexport type SidebarGroupContentProps = JSX.HTMLAttributes<HTMLDivElement> & {\n children?: ComponentChildren;\n};\n\nexport const SidebarGroupContent = ({\n class: className,\n children,\n ...rest\n}: SidebarGroupContentProps) => (\n <div\n data-slot=\"sidebar-group-content\"\n data-sidebar=\"group-content\"\n class={cn(\"w-full text-sm\", className)}\n {...rest}\n >\n {children}\n </div>\n);\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\n\nexport type SidebarHeaderProps = JSX.HTMLAttributes<HTMLDivElement> & {\n children?: ComponentChildren;\n};\n\nexport const SidebarHeader = ({ class: className, children, ...rest }: SidebarHeaderProps) => (\n <div\n data-slot=\"sidebar-header\"\n data-sidebar=\"header\"\n class={cn(\"flex flex-col gap-2 p-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 SidebarInsetProps = JSX.HTMLAttributes<HTMLElement> & {\n children?: ComponentChildren;\n};\n\nexport const SidebarInset = ({ class: className, children, ...rest }: SidebarInsetProps) => (\n <main\n data-slot=\"sidebar-inset\"\n class={cn(\n \"relative flex w-full flex-1 flex-col bg-background\",\n \"md:peer-data-[variant=inset]:m-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow-sm md:peer-data-[variant=inset]:peer-data-[state=collapsed]:ml-2\",\n className,\n )}\n {...rest}\n >\n {children}\n </main>\n);\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { useMemo } from \"preact/hooks\";\nimport { tv, type VariantProps } from \"tailwind-variants\";\nimport { cn } from \"../../lib/utils\";\nimport { Skeleton } from \"../skeleton\";\nimport { Tooltip, TooltipContent, TooltipTrigger } from \"../tooltip\";\nimport { useSidebar } from \"./SidebarProvider\";\nimport { Slot } from \"./slot\";\n\nexport type SidebarMenuProps = JSX.HTMLAttributes<HTMLUListElement> & {\n children?: ComponentChildren;\n};\n\nexport const SidebarMenu = ({ class: className, children, ...rest }: SidebarMenuProps) => (\n <ul\n data-slot=\"sidebar-menu\"\n data-sidebar=\"menu\"\n class={cn(\"flex w-full min-w-0 flex-col gap-1\", className)}\n {...rest}\n >\n {children}\n </ul>\n);\n\nexport type SidebarMenuItemProps = JSX.HTMLAttributes<HTMLLIElement> & {\n children?: ComponentChildren;\n};\n\nexport const SidebarMenuItem = ({ class: className, children, ...rest }: SidebarMenuItemProps) => (\n <li\n data-slot=\"sidebar-menu-item\"\n data-sidebar=\"menu-item\"\n class={cn(\"group/menu-item relative\", className)}\n {...rest}\n >\n {children}\n </li>\n);\n\nexport const sidebarMenuButton = tv({\n base: [\n \"peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm ring-sidebar-ring outline-hidden transition-[width,height,padding]\",\n \"group-has-data-[sidebar=menu-action]/menu-item:pr-8\",\n \"group-data-[collapsible=icon]:size-8! group-data-[collapsible=icon]:p-2!\",\n \"hover:bg-sidebar-accent hover:text-sidebar-accent-foreground\",\n \"focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground\",\n \"disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50\",\n \"data-[active=true]:bg-sidebar-accent data-[active=true]:font-medium data-[active=true]:text-sidebar-accent-foreground\",\n \"data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground\",\n \"[&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0\",\n ],\n variants: {\n variant: {\n default: \"hover:bg-sidebar-accent hover:text-sidebar-accent-foreground\",\n outline:\n \"bg-background shadow-[0_0_0_1px_var(--sidebar-border)] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground hover:shadow-[0_0_0_1px_var(--sidebar-accent)]\",\n },\n size: {\n default: \"h-8 text-sm\",\n sm: \"h-7 text-xs\",\n lg: \"h-12 text-sm group-data-[collapsible=icon]:p-0!\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n});\n\nexport type SidebarMenuButtonProps = JSX.ButtonHTMLAttributes<HTMLButtonElement> &\n VariantProps<typeof sidebarMenuButton> & {\n asChild?: boolean;\n isActive?: boolean;\n tooltip?: string | JSX.HTMLAttributes<HTMLDivElement>;\n children?: ComponentChildren;\n };\n\nexport const SidebarMenuButton = ({\n asChild = false,\n isActive = false,\n variant = \"default\",\n size = \"default\",\n tooltip,\n class: className,\n children,\n ...rest\n}: SidebarMenuButtonProps) => {\n const { isMobile, state } = useSidebar();\n const classes = cn(sidebarMenuButton({ variant, size }), className);\n\n const button = asChild ? (\n <Slot\n data-slot=\"sidebar-menu-button\"\n data-sidebar=\"menu-button\"\n data-size={size}\n data-active={isActive}\n class={classes}\n {...(rest as Record<string, unknown>)}\n >\n {children}\n </Slot>\n ) : (\n <button\n type=\"button\"\n data-slot=\"sidebar-menu-button\"\n data-sidebar=\"menu-button\"\n data-size={size}\n data-active={isActive}\n class={classes}\n {...rest}\n >\n {children}\n </button>\n );\n\n if (!tooltip) return button;\n\n const tooltipProps =\n typeof tooltip === \"string\"\n ? { children: tooltip }\n : (tooltip as JSX.HTMLAttributes<HTMLDivElement>);\n\n return (\n <Tooltip>\n <TooltipTrigger asChild>{button}</TooltipTrigger>\n <TooltipContent\n side=\"right\"\n align=\"center\"\n hidden={state !== \"collapsed\" || isMobile}\n {...tooltipProps}\n />\n </Tooltip>\n );\n};\n\nexport type SidebarMenuActionProps = JSX.ButtonHTMLAttributes<HTMLButtonElement> & {\n asChild?: boolean;\n showOnHover?: boolean;\n children?: ComponentChildren;\n};\n\nexport const SidebarMenuAction = ({\n class: className,\n asChild = false,\n showOnHover = false,\n children,\n ...rest\n}: SidebarMenuActionProps) => {\n const classes = cn(\n \"absolute top-1.5 right-1 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-sidebar-foreground ring-sidebar-ring outline-hidden transition-transform peer-hover/menu-button:text-sidebar-accent-foreground hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0\",\n \"after:absolute after:-inset-2 md:after:hidden\",\n \"peer-data-[size=sm]/menu-button:top-1\",\n \"peer-data-[size=default]/menu-button:top-1.5\",\n \"peer-data-[size=lg]/menu-button:top-2.5\",\n \"group-data-[collapsible=icon]:hidden\",\n showOnHover &&\n \"group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 peer-data-[active=true]/menu-button:text-sidebar-accent-foreground data-[state=open]:opacity-100 md:opacity-0\",\n className as string | undefined,\n );\n if (asChild) {\n return (\n <Slot\n data-slot=\"sidebar-menu-action\"\n data-sidebar=\"menu-action\"\n class={classes}\n {...(rest as Record<string, unknown>)}\n >\n {children}\n </Slot>\n );\n }\n return (\n <button\n type=\"button\"\n data-slot=\"sidebar-menu-action\"\n data-sidebar=\"menu-action\"\n class={classes}\n {...rest}\n >\n {children}\n </button>\n );\n};\n\nexport type SidebarMenuBadgeProps = JSX.HTMLAttributes<HTMLDivElement> & {\n children?: ComponentChildren;\n};\n\nexport const SidebarMenuBadge = ({\n class: className,\n children,\n ...rest\n}: SidebarMenuBadgeProps) => (\n <div\n data-slot=\"sidebar-menu-badge\"\n data-sidebar=\"menu-badge\"\n class={cn(\n \"pointer-events-none absolute right-1 flex h-5 min-w-5 items-center justify-center rounded-md px-1 text-xs font-medium text-sidebar-foreground tabular-nums select-none\",\n \"peer-hover/menu-button:text-sidebar-accent-foreground peer-data-[active=true]/menu-button:text-sidebar-accent-foreground\",\n \"peer-data-[size=sm]/menu-button:top-1\",\n \"peer-data-[size=default]/menu-button:top-1.5\",\n \"peer-data-[size=lg]/menu-button:top-2.5\",\n \"group-data-[collapsible=icon]:hidden\",\n className,\n )}\n {...rest}\n >\n {children}\n </div>\n);\n\nexport type SidebarMenuSkeletonProps = JSX.HTMLAttributes<HTMLDivElement> & {\n showIcon?: boolean;\n};\n\nexport const SidebarMenuSkeleton = ({\n class: className,\n showIcon = false,\n ...rest\n}: SidebarMenuSkeletonProps) => {\n const width = useMemo(() => `${Math.floor(Math.random() * 40) + 50}%`, []);\n return (\n <div\n data-slot=\"sidebar-menu-skeleton\"\n data-sidebar=\"menu-skeleton\"\n class={cn(\"flex h-8 items-center gap-2 rounded-md px-2\", className)}\n {...rest}\n >\n {showIcon ? <Skeleton class=\"size-4 rounded-md\" data-sidebar=\"menu-skeleton-icon\" /> : null}\n <Skeleton\n class=\"h-4 max-w-(--skeleton-width) flex-1\"\n data-sidebar=\"menu-skeleton-text\"\n style={{ [\"--skeleton-width\" as string]: width }}\n />\n </div>\n );\n};\n\nexport type SidebarMenuSubProps = JSX.HTMLAttributes<HTMLUListElement> & {\n children?: ComponentChildren;\n};\n\nexport const SidebarMenuSub = ({ class: className, children, ...rest }: SidebarMenuSubProps) => (\n <ul\n data-slot=\"sidebar-menu-sub\"\n data-sidebar=\"menu-sub\"\n class={cn(\n \"mx-3.5 flex min-w-0 translate-x-px flex-col gap-1 border-l border-sidebar-border px-2.5 py-0.5\",\n \"group-data-[collapsible=icon]:hidden\",\n className,\n )}\n {...rest}\n >\n {children}\n </ul>\n);\n\nexport type SidebarMenuSubItemProps = JSX.HTMLAttributes<HTMLLIElement> & {\n children?: ComponentChildren;\n};\n\nexport const SidebarMenuSubItem = ({\n class: className,\n children,\n ...rest\n}: SidebarMenuSubItemProps) => (\n <li\n data-slot=\"sidebar-menu-sub-item\"\n data-sidebar=\"menu-sub-item\"\n class={cn(\"group/menu-sub-item relative\", className)}\n {...rest}\n >\n {children}\n </li>\n);\n\nexport type SidebarMenuSubButtonProps = JSX.AnchorHTMLAttributes<HTMLAnchorElement> & {\n asChild?: boolean;\n size?: \"sm\" | \"md\";\n isActive?: boolean;\n children?: ComponentChildren;\n};\n\nexport const SidebarMenuSubButton = ({\n asChild = false,\n size = \"md\",\n isActive = false,\n class: className,\n children,\n ...rest\n}: SidebarMenuSubButtonProps) => {\n const classes = cn(\n \"flex h-7 min-w-0 -translate-x-px items-center gap-2 overflow-hidden rounded-md px-2 text-sidebar-foreground ring-sidebar-ring outline-hidden hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0 [&>svg]:text-sidebar-accent-foreground\",\n \"data-[active=true]:bg-sidebar-accent data-[active=true]:text-sidebar-accent-foreground\",\n size === \"sm\" && \"text-xs\",\n size === \"md\" && \"text-sm\",\n \"group-data-[collapsible=icon]:hidden\",\n className as string | undefined,\n );\n if (asChild) {\n return (\n <Slot\n data-slot=\"sidebar-menu-sub-button\"\n data-sidebar=\"menu-sub-button\"\n data-size={size}\n data-active={isActive}\n class={classes}\n {...(rest as Record<string, unknown>)}\n >\n {children}\n </Slot>\n );\n }\n return (\n <a\n data-slot=\"sidebar-menu-sub-button\"\n data-sidebar=\"menu-sub-button\"\n data-size={size}\n data-active={isActive}\n class={classes}\n {...rest}\n >\n {children}\n </a>\n );\n};\n","import type { JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\nimport { useSidebar } from \"./SidebarProvider\";\n\nexport type SidebarRailProps = JSX.ButtonHTMLAttributes<HTMLButtonElement>;\n\nexport const SidebarRail = ({ class: className, ...rest }: SidebarRailProps) => {\n const { toggleSidebar } = useSidebar();\n\n return (\n <button\n type=\"button\"\n data-sidebar=\"rail\"\n data-slot=\"sidebar-rail\"\n aria-label=\"Toggle Sidebar\"\n tabIndex={-1}\n onClick={toggleSidebar}\n title=\"Toggle Sidebar\"\n class={cn(\n \"absolute inset-y-0 z-20 hidden w-4 -translate-x-1/2 transition-all ease-linear group-data-[side=left]:-right-4 group-data-[side=right]:left-0 after:absolute after:inset-y-0 after:left-1/2 after:w-[2px] hover:after:bg-sidebar-border sm:flex\",\n \"in-data-[side=left]:cursor-w-resize in-data-[side=right]:cursor-e-resize\",\n \"[[data-side=left][data-state=collapsed]_&]:cursor-e-resize [[data-side=right][data-state=collapsed]_&]:cursor-w-resize\",\n \"group-data-[collapsible=offcanvas]:translate-x-0 group-data-[collapsible=offcanvas]:after:left-full hover:group-data-[collapsible=offcanvas]:bg-sidebar\",\n \"[[data-side=left][data-collapsible=offcanvas]_&]:-right-2\",\n \"[[data-side=right][data-collapsible=offcanvas]_&]:-left-2\",\n className,\n )}\n {...rest}\n />\n );\n};\n","import type { JSX } from \"preact\";\n\n/** Inline panel icon so @kamod-ch/ui stays free of lucide as a hard dependency. */\nexport const PanelLeftIcon = (props: JSX.SVGAttributes<SVGSVGElement>) => (\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 aria-hidden=\"true\"\n {...props}\n >\n <rect width=\"18\" height=\"18\" x=\"3\" y=\"3\" rx=\"2\" />\n <path d=\"M9 3v18\" />\n </svg>\n);\n","import type { JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\nimport { Button } from \"../button/Button\";\nimport { PanelLeftIcon } from \"./PanelLeftIcon\";\nimport { useSidebar } from \"./SidebarProvider\";\n\nexport type SidebarTriggerProps = Omit<JSX.ButtonHTMLAttributes<HTMLButtonElement>, \"size\"> & {\n class?: string;\n};\n\nexport const SidebarTrigger = ({ class: className, onClick, ...rest }: SidebarTriggerProps) => {\n const { toggleSidebar } = useSidebar();\n\n return (\n <Button\n data-sidebar=\"trigger\"\n data-slot=\"sidebar-trigger\"\n variant=\"ghost\"\n size=\"icon\"\n type=\"button\"\n class={cn(\"size-7\", className)}\n aria-label=\"Toggle Sidebar\"\n {...rest}\n onClick={(event) => {\n onClick?.(event);\n toggleSidebar();\n }}\n >\n <PanelLeftIcon />\n <span class=\"sr-only\">Toggle Sidebar</span>\n </Button>\n );\n};\n","import { Sidebar } from \"./Sidebar\";\nimport { SidebarContent } from \"./SidebarContent\";\nimport { SidebarFooter } from \"./SidebarFooter\";\nimport {\n SidebarGroup,\n SidebarGroupAction,\n SidebarGroupContent,\n SidebarGroupLabel,\n SidebarInput,\n SidebarSeparator,\n} from \"./SidebarGroup\";\nimport { SidebarHeader } from \"./SidebarHeader\";\nimport { SidebarInset } from \"./SidebarInset\";\nimport {\n SidebarMenu,\n SidebarMenuAction,\n SidebarMenuBadge,\n SidebarMenuButton,\n SidebarMenuItem,\n SidebarMenuSkeleton,\n SidebarMenuSub,\n SidebarMenuSubButton,\n SidebarMenuSubItem,\n} from \"./SidebarMenu\";\nimport { SidebarProvider, useSidebar } from \"./SidebarProvider\";\nimport { SidebarRail } from \"./SidebarRail\";\nimport { SidebarTrigger } from \"./SidebarTrigger\";\n\nexport {\n Sidebar,\n SidebarContent,\n SidebarFooter,\n SidebarGroup,\n SidebarGroupAction,\n SidebarGroupContent,\n SidebarGroupLabel,\n SidebarHeader,\n SidebarInput,\n SidebarInset,\n SidebarMenu,\n SidebarMenuAction,\n SidebarMenuBadge,\n SidebarMenuButton,\n SidebarMenuItem,\n SidebarMenuSkeleton,\n SidebarMenuSub,\n SidebarMenuSubButton,\n SidebarMenuSubItem,\n SidebarProvider,\n SidebarRail,\n SidebarSeparator,\n SidebarTrigger,\n useSidebar,\n};\n\nexport default {\n Provider: SidebarProvider,\n Root: Sidebar,\n Trigger: SidebarTrigger,\n Header: SidebarHeader,\n Content: SidebarContent,\n Footer: SidebarFooter,\n Inset: SidebarInset,\n Rail: SidebarRail,\n Group: SidebarGroup,\n Menu: SidebarMenu,\n};\n"]}
@@ -1,5 +1,5 @@
1
- import { RadioGroup, useRadioGroup } from './chunk-TXKPDNRD.js';
2
- import { cn } from './chunk-MS2ZNYCJ.js';
1
+ import { RadioGroup, useRadioGroup } from './chunk-5I7ULBDP.js';
2
+ import { cn } from './chunk-XIANSPQO.js';
3
3
  import { tv } from 'tailwind-variants';
4
4
  import { jsxs, jsx } from 'preact/jsx-runtime';
5
5
 
@@ -54,7 +54,7 @@ var RadioGroupItem = ({
54
54
  "data-slot": "radio-group-item",
55
55
  "data-state": checked ? "checked" : "unchecked",
56
56
  "data-size": size ?? "default",
57
- class: cn(itemRoot({ size, class: className })),
57
+ class: cn(itemRoot({ size }), className),
58
58
  children: [
59
59
  /* @__PURE__ */ jsxs("span", { class: indicatorBox({ size }), children: [
60
60
  /* @__PURE__ */ jsx(
@@ -105,5 +105,5 @@ var radio_group_default = {
105
105
  };
106
106
 
107
107
  export { RadioGroupItem, radio_group_default };
108
- //# sourceMappingURL=chunk-STRBBF45.js.map
109
- //# sourceMappingURL=chunk-STRBBF45.js.map
108
+ //# sourceMappingURL=chunk-FOQ32NEP.js.map
109
+ //# sourceMappingURL=chunk-FOQ32NEP.js.map
@@ -0,0 +1 @@
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-FOQ32NEP.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 }), 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,6 +1,6 @@
1
1
  import { createPortal } from './chunk-B47B6KK6.js';
2
- import { createDismissableLayer } from './chunk-PPYJQNE5.js';
3
- import { cn } from './chunk-MS2ZNYCJ.js';
2
+ import { createDismissableLayer } from './chunk-3XMFQKWB.js';
3
+ import { cn } from './chunk-XIANSPQO.js';
4
4
  import { signal } from '@preact/signals';
5
5
  import { createContext } from 'preact';
6
6
  import { useMemo, useRef, useEffect, useState, useLayoutEffect, useContext } from 'preact/hooks';
@@ -246,7 +246,7 @@ var ContextMenuItem = ({
246
246
  "data-slot": "context-menu-item",
247
247
  "data-inset": inset ? "true" : void 0,
248
248
  "data-variant": variant,
249
- class: contextMenuItem({ inset, variant, class: className }),
249
+ class: cn(contextMenuItem({ inset, variant }), className),
250
250
  onClick: (event) => {
251
251
  onClick?.(event);
252
252
  if (event.defaultPrevented) return;
@@ -546,5 +546,5 @@ var ContextMenuTrigger = ({
546
546
  };
547
547
 
548
548
  export { ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger };
549
- //# sourceMappingURL=chunk-UIA74JVN.js.map
550
- //# sourceMappingURL=chunk-UIA74JVN.js.map
549
+ //# sourceMappingURL=chunk-FXG53XY2.js.map
550
+ //# sourceMappingURL=chunk-FXG53XY2.js.map
@@ -0,0 +1 @@
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-FXG53XY2.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 { cn } from \"../../lib/utils\";\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={cn(contextMenuItem({ inset, variant }), className)}\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,4 +1,4 @@
1
- import { cn } from './chunk-MS2ZNYCJ.js';
1
+ import { cn } from './chunk-XIANSPQO.js';
2
2
  import { jsx } from 'preact/jsx-runtime';
3
3
 
4
4
  var TableBody = ({ class: className, children, ...rest }) => /* @__PURE__ */ jsx("tbody", { "data-slot": "table-body", class: cn("[&_tr:last-child]:border-0", className), ...rest, children });
@@ -60,5 +60,5 @@ var TableRow = ({ class: className, children, ...rest }) => /* @__PURE__ */ jsx(
60
60
  );
61
61
 
62
62
  export { TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow };
63
- //# sourceMappingURL=chunk-2KY7P27I.js.map
64
- //# sourceMappingURL=chunk-2KY7P27I.js.map
63
+ //# sourceMappingURL=chunk-G7LTWXRN.js.map
64
+ //# sourceMappingURL=chunk-G7LTWXRN.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/table/TableBody.tsx","../src/components/table/TableCaption.tsx","../src/components/table/TableCell.tsx","../src/components/table/TableFooter.tsx","../src/components/table/TableHead.tsx","../src/components/table/TableHeader.tsx","../src/components/table/TableRow.tsx"],"names":["jsx"],"mappings":";;;AAOO,IAAM,SAAA,GAAY,CAAC,EAAE,KAAA,EAAO,WAAW,QAAA,EAAU,GAAG,MAAK,qBAC9D,GAAA,CAAC,WAAM,WAAA,EAAU,YAAA,EAAa,OAAO,EAAA,CAAG,4BAAA,EAA8B,SAAS,CAAA,EAAI,GAAG,MACnF,QAAA,EACH;ACHK,IAAM,YAAA,GAAe,CAAC,EAAE,KAAA,EAAO,WAAW,QAAA,EAAU,GAAG,IAAA,EAAK,qBACjEA,GAAAA;AAAA,EAAC,SAAA;AAAA,EAAA;AAAA,IACC,WAAA,EAAU,eAAA;AAAA,IACV,KAAA,EAAO,EAAA,CAAG,oCAAA,EAAsC,SAAS,CAAA;AAAA,IACxD,GAAG,IAAA;AAAA,IAEH;AAAA;AACH;ACLK,IAAM,SAAA,GAAY,CAAC,EAAE,KAAA,EAAO,SAAA,EAAW,UAAU,OAAA,EAAS,GAAG,IAAA,EAAK,qBACvEA,GAAAA;AAAA,EAAC,IAAA;AAAA,EAAA;AAAA,IACC,WAAA,EAAU,YAAA;AAAA,IACV,KAAA,EAAO,EAAA;AAAA,MACL,mFAAA;AAAA,MACA;AAAA,KACF;AAAA,IACA,OAAA;AAAA,IACC,GAAG,IAAA;AAAA,IAEH;AAAA;AACH;ACbK,IAAM,WAAA,GAAc,CAAC,EAAE,KAAA,EAAO,WAAW,QAAA,EAAU,GAAG,IAAA,EAAK,qBAChEA,GAAAA;AAAA,EAAC,OAAA;AAAA,EAAA;AAAA,IACC,WAAA,EAAU,cAAA;AAAA,IACV,KAAA,EAAO,EAAA,CAAG,yDAAA,EAA2D,SAAS,CAAA;AAAA,IAC7E,GAAG,IAAA;AAAA,IAEH;AAAA;AACH;ACPK,IAAM,SAAA,GAAY,CAAC,EAAE,KAAA,EAAO,WAAW,QAAA,EAAU,GAAG,IAAA,EAAK,qBAC9DA,GAAAA;AAAA,EAAC,IAAA;AAAA,EAAA;AAAA,IACC,WAAA,EAAU,YAAA;AAAA,IACV,KAAA,EAAO,EAAA;AAAA,MACL,kGAAA;AAAA,MACA;AAAA,KACF;AAAA,IACC,GAAG,IAAA;AAAA,IAEH;AAAA;AACH;ACVK,IAAM,WAAA,GAAc,CAAC,EAAE,KAAA,EAAO,WAAW,QAAA,EAAU,GAAG,MAAK,qBAChEA,IAAC,OAAA,EAAA,EAAM,WAAA,EAAU,gBAAe,KAAA,EAAO,EAAA,CAAG,mBAAmB,SAAS,CAAA,EAAI,GAAG,IAAA,EAC1E,QAAA,EACH;ACHK,IAAM,QAAA,GAAW,CAAC,EAAE,KAAA,EAAO,WAAW,QAAA,EAAU,GAAG,IAAA,EAAK,qBAC7DA,GAAAA;AAAA,EAAC,IAAA;AAAA,EAAA;AAAA,IACC,WAAA,EAAU,WAAA;AAAA,IACV,KAAA,EAAO,EAAA;AAAA,MACL,6EAAA;AAAA,MACA;AAAA,KACF;AAAA,IACC,GAAG,IAAA;AAAA,IAEH;AAAA;AACH","file":"chunk-2KY7P27I.js","sourcesContent":["import type { ComponentChildren, JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\n\nexport type TableBodyProps = JSX.HTMLAttributes<HTMLTableSectionElement> & {\n children?: ComponentChildren;\n};\n\nexport const TableBody = ({ class: className, children, ...rest }: TableBodyProps) => (\n <tbody data-slot=\"table-body\" class={cn(\"[&_tr:last-child]:border-0\", className)} {...rest}>\n {children}\n </tbody>\n);\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\n\nexport type TableCaptionProps = JSX.HTMLAttributes<HTMLTableCaptionElement> & {\n children?: ComponentChildren;\n};\n\nexport const TableCaption = ({ class: className, children, ...rest }: TableCaptionProps) => (\n <caption\n data-slot=\"table-caption\"\n class={cn(\"text-muted-foreground mt-4 text-sm\", className)}\n {...rest}\n >\n {children}\n </caption>\n);\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\n\nexport type TableCellProps = JSX.HTMLAttributes<HTMLTableCellElement> & {\n children?: ComponentChildren;\n /** @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/td#attr-colspan */\n colSpan?: number;\n};\n\nexport const TableCell = ({ class: className, children, colSpan, ...rest }: TableCellProps) => (\n <td\n data-slot=\"table-cell\"\n class={cn(\n \"p-2 align-middle [&:has([data-slot=checkbox])]:pr-0 [&:has([role=checkbox])]:pr-0\",\n className,\n )}\n colSpan={colSpan}\n {...rest}\n >\n {children}\n </td>\n);\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\n\nexport type TableFooterProps = JSX.HTMLAttributes<HTMLTableSectionElement> & {\n children?: ComponentChildren;\n};\n\nexport const TableFooter = ({ class: className, children, ...rest }: TableFooterProps) => (\n <tfoot\n data-slot=\"table-footer\"\n class={cn(\"bg-muted/50 border-t font-medium [&>tr]:last:border-b-0\", className)}\n {...rest}\n >\n {children}\n </tfoot>\n);\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\n\nexport type TableHeadProps = JSX.HTMLAttributes<HTMLTableCellElement> & {\n children?: ComponentChildren;\n};\n\nexport const TableHead = ({ class: className, children, ...rest }: TableHeadProps) => (\n <th\n data-slot=\"table-head\"\n class={cn(\n \"text-muted-foreground h-10 px-2 text-left align-middle font-medium [&:has([role=checkbox])]:pr-0\",\n className,\n )}\n {...rest}\n >\n {children}\n </th>\n);\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\n\nexport type TableHeaderProps = JSX.HTMLAttributes<HTMLTableSectionElement> & {\n children?: ComponentChildren;\n};\n\nexport const TableHeader = ({ class: className, children, ...rest }: TableHeaderProps) => (\n <thead data-slot=\"table-header\" class={cn(\"[&_tr]:border-b\", className)} {...rest}>\n {children}\n </thead>\n);\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\n\nexport type TableRowProps = JSX.HTMLAttributes<HTMLTableRowElement> & {\n children?: ComponentChildren;\n};\n\nexport const TableRow = ({ class: className, children, ...rest }: TableRowProps) => (\n <tr\n data-slot=\"table-row\"\n class={cn(\n \"border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted\",\n className,\n )}\n {...rest}\n >\n {children}\n </tr>\n);\n"]}
1
+ {"version":3,"sources":["../src/components/table/TableBody.tsx","../src/components/table/TableCaption.tsx","../src/components/table/TableCell.tsx","../src/components/table/TableFooter.tsx","../src/components/table/TableHead.tsx","../src/components/table/TableHeader.tsx","../src/components/table/TableRow.tsx"],"names":["jsx"],"mappings":";;;AAOO,IAAM,SAAA,GAAY,CAAC,EAAE,KAAA,EAAO,WAAW,QAAA,EAAU,GAAG,MAAK,qBAC9D,GAAA,CAAC,WAAM,WAAA,EAAU,YAAA,EAAa,OAAO,EAAA,CAAG,4BAAA,EAA8B,SAAS,CAAA,EAAI,GAAG,MACnF,QAAA,EACH;ACHK,IAAM,YAAA,GAAe,CAAC,EAAE,KAAA,EAAO,WAAW,QAAA,EAAU,GAAG,IAAA,EAAK,qBACjEA,GAAAA;AAAA,EAAC,SAAA;AAAA,EAAA;AAAA,IACC,WAAA,EAAU,eAAA;AAAA,IACV,KAAA,EAAO,EAAA,CAAG,oCAAA,EAAsC,SAAS,CAAA;AAAA,IACxD,GAAG,IAAA;AAAA,IAEH;AAAA;AACH;ACLK,IAAM,SAAA,GAAY,CAAC,EAAE,KAAA,EAAO,SAAA,EAAW,UAAU,OAAA,EAAS,GAAG,IAAA,EAAK,qBACvEA,GAAAA;AAAA,EAAC,IAAA;AAAA,EAAA;AAAA,IACC,WAAA,EAAU,YAAA;AAAA,IACV,KAAA,EAAO,EAAA;AAAA,MACL,mFAAA;AAAA,MACA;AAAA,KACF;AAAA,IACA,OAAA;AAAA,IACC,GAAG,IAAA;AAAA,IAEH;AAAA;AACH;ACbK,IAAM,WAAA,GAAc,CAAC,EAAE,KAAA,EAAO,WAAW,QAAA,EAAU,GAAG,IAAA,EAAK,qBAChEA,GAAAA;AAAA,EAAC,OAAA;AAAA,EAAA;AAAA,IACC,WAAA,EAAU,cAAA;AAAA,IACV,KAAA,EAAO,EAAA,CAAG,yDAAA,EAA2D,SAAS,CAAA;AAAA,IAC7E,GAAG,IAAA;AAAA,IAEH;AAAA;AACH;ACPK,IAAM,SAAA,GAAY,CAAC,EAAE,KAAA,EAAO,WAAW,QAAA,EAAU,GAAG,IAAA,EAAK,qBAC9DA,GAAAA;AAAA,EAAC,IAAA;AAAA,EAAA;AAAA,IACC,WAAA,EAAU,YAAA;AAAA,IACV,KAAA,EAAO,EAAA;AAAA,MACL,kGAAA;AAAA,MACA;AAAA,KACF;AAAA,IACC,GAAG,IAAA;AAAA,IAEH;AAAA;AACH;ACVK,IAAM,WAAA,GAAc,CAAC,EAAE,KAAA,EAAO,WAAW,QAAA,EAAU,GAAG,MAAK,qBAChEA,IAAC,OAAA,EAAA,EAAM,WAAA,EAAU,gBAAe,KAAA,EAAO,EAAA,CAAG,mBAAmB,SAAS,CAAA,EAAI,GAAG,IAAA,EAC1E,QAAA,EACH;ACHK,IAAM,QAAA,GAAW,CAAC,EAAE,KAAA,EAAO,WAAW,QAAA,EAAU,GAAG,IAAA,EAAK,qBAC7DA,GAAAA;AAAA,EAAC,IAAA;AAAA,EAAA;AAAA,IACC,WAAA,EAAU,WAAA;AAAA,IACV,KAAA,EAAO,EAAA;AAAA,MACL,6EAAA;AAAA,MACA;AAAA,KACF;AAAA,IACC,GAAG,IAAA;AAAA,IAEH;AAAA;AACH","file":"chunk-G7LTWXRN.js","sourcesContent":["import type { ComponentChildren, JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\n\nexport type TableBodyProps = JSX.HTMLAttributes<HTMLTableSectionElement> & {\n children?: ComponentChildren;\n};\n\nexport const TableBody = ({ class: className, children, ...rest }: TableBodyProps) => (\n <tbody data-slot=\"table-body\" class={cn(\"[&_tr:last-child]:border-0\", className)} {...rest}>\n {children}\n </tbody>\n);\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\n\nexport type TableCaptionProps = JSX.HTMLAttributes<HTMLTableCaptionElement> & {\n children?: ComponentChildren;\n};\n\nexport const TableCaption = ({ class: className, children, ...rest }: TableCaptionProps) => (\n <caption\n data-slot=\"table-caption\"\n class={cn(\"text-muted-foreground mt-4 text-sm\", className)}\n {...rest}\n >\n {children}\n </caption>\n);\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\n\nexport type TableCellProps = JSX.HTMLAttributes<HTMLTableCellElement> & {\n children?: ComponentChildren;\n /** @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/td#attr-colspan */\n colSpan?: number;\n};\n\nexport const TableCell = ({ class: className, children, colSpan, ...rest }: TableCellProps) => (\n <td\n data-slot=\"table-cell\"\n class={cn(\n \"p-2 align-middle [&:has([data-slot=checkbox])]:pr-0 [&:has([role=checkbox])]:pr-0\",\n className,\n )}\n colSpan={colSpan}\n {...rest}\n >\n {children}\n </td>\n);\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\n\nexport type TableFooterProps = JSX.HTMLAttributes<HTMLTableSectionElement> & {\n children?: ComponentChildren;\n};\n\nexport const TableFooter = ({ class: className, children, ...rest }: TableFooterProps) => (\n <tfoot\n data-slot=\"table-footer\"\n class={cn(\"bg-muted/50 border-t font-medium [&>tr]:last:border-b-0\", className)}\n {...rest}\n >\n {children}\n </tfoot>\n);\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\n\nexport type TableHeadProps = JSX.HTMLAttributes<HTMLTableCellElement> & {\n children?: ComponentChildren;\n};\n\nexport const TableHead = ({ class: className, children, ...rest }: TableHeadProps) => (\n <th\n data-slot=\"table-head\"\n class={cn(\n \"text-muted-foreground h-10 px-2 text-left align-middle font-medium [&:has([role=checkbox])]:pr-0\",\n className,\n )}\n {...rest}\n >\n {children}\n </th>\n);\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\n\nexport type TableHeaderProps = JSX.HTMLAttributes<HTMLTableSectionElement> & {\n children?: ComponentChildren;\n};\n\nexport const TableHeader = ({ class: className, children, ...rest }: TableHeaderProps) => (\n <thead data-slot=\"table-header\" class={cn(\"[&_tr]:border-b\", className)} {...rest}>\n {children}\n </thead>\n);\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\n\nexport type TableRowProps = JSX.HTMLAttributes<HTMLTableRowElement> & {\n children?: ComponentChildren;\n};\n\nexport const TableRow = ({ class: className, children, ...rest }: TableRowProps) => (\n <tr\n data-slot=\"table-row\"\n class={cn(\n \"border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted\",\n className,\n )}\n {...rest}\n >\n {children}\n </tr>\n);\n"]}
@@ -1,7 +1,7 @@
1
- import { InputGroup, InputGroupAddon, InputGroupInput } from './chunk-QZX3RFIC.js';
2
- import { FieldGroup, Field, FieldLabel } from './chunk-IJ4ZRIR4.js';
3
- import { Calendar } from './chunk-JNF7FDJO.js';
4
- import { cn } from './chunk-MS2ZNYCJ.js';
1
+ import { InputGroup, InputGroupAddon, InputGroupInput } from './chunk-HJF5AV4L.js';
2
+ import { Calendar } from './chunk-XCYEWILH.js';
3
+ import { FieldGroup, Field, FieldLabel } from './chunk-53FZEAOJ.js';
4
+ import { cn } from './chunk-XIANSPQO.js';
5
5
  import { useId, useState } from 'preact/hooks';
6
6
  import { jsxs, jsx } from 'preact/jsx-runtime';
7
7
 
@@ -147,5 +147,5 @@ var CalendarDateTimePanel = ({
147
147
  var calendar_default = Calendar;
148
148
 
149
149
  export { CalendarDateTimePanel, calendar_default };
150
- //# sourceMappingURL=chunk-6BK3PIRX.js.map
151
- //# sourceMappingURL=chunk-6BK3PIRX.js.map
150
+ //# sourceMappingURL=chunk-GD3VBO44.js.map
151
+ //# sourceMappingURL=chunk-GD3VBO44.js.map