@kamod-ui/core 0.1.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 (415) hide show
  1. package/LICENSE.md +9 -0
  2. package/dist/Accordion-D1PiNspd.d.ts +39 -0
  3. package/dist/AlertDialog-CpnCfDdN.d.ts +64 -0
  4. package/dist/Button-tRKMr8-H.d.ts +84 -0
  5. package/dist/CalendarDateTimePanel-B3J8OlSc.d.ts +79 -0
  6. package/dist/Carousel-DvlcMPpB.d.ts +41 -0
  7. package/dist/Chart-Ax22S5_N.d.ts +10 -0
  8. package/dist/Checkbox-DBbLYq6Q.d.ts +12 -0
  9. package/dist/Collapsible-DSZCp0tm.d.ts +34 -0
  10. package/dist/ComboboxInlineInput-CB7CEXzy.d.ts +135 -0
  11. package/dist/CommandSeparator-pJQnB9Lu.d.ts +47 -0
  12. package/dist/DataTable-zNTTdYVU.d.ts +13 -0
  13. package/dist/DatePicker-AFAYh5Ca.d.ts +20 -0
  14. package/dist/Dialog-CqCI4s9U.d.ts +28 -0
  15. package/dist/DialogContent-9VJGDt5l.d.ts +24 -0
  16. package/dist/DialogHeader-CYT7iUDq.d.ts +13 -0
  17. package/dist/DialogTitle-CvcRlZ_Z.d.ts +13 -0
  18. package/dist/Direction-25ZOt0gW.d.ts +24 -0
  19. package/dist/Drawer-BOPihYBJ.d.ts +41 -0
  20. package/dist/Dropdown-uPFaMqkB.d.ts +143 -0
  21. package/dist/EmptyTitle-J8rVLcJ3.d.ts +59 -0
  22. package/dist/FieldTitle-aSgThW-B.d.ts +100 -0
  23. package/dist/HoverCard-OSnOE6pE.d.ts +52 -0
  24. package/dist/Input-Cem05el9.d.ts +27 -0
  25. package/dist/Menubar-DwYDW4w2.d.ts +88 -0
  26. package/dist/PopoverTrigger-B6kK73gh.d.ts +43 -0
  27. package/dist/Progress-BGij8Hob.d.ts +13 -0
  28. package/dist/RadioGroup-BaElzLwa.d.ts +40 -0
  29. package/dist/ScrollArea-B-vILe3g.d.ts +16 -0
  30. package/dist/Select-B_mNVh70.d.ts +51 -0
  31. package/dist/Separator-DCQYrnpB.d.ts +9 -0
  32. package/dist/Sheet-B41Emmis.d.ts +29 -0
  33. package/dist/SidebarProvider-IAihmyD7.d.ts +46 -0
  34. package/dist/Slider-BQLMBpYs.d.ts +16 -0
  35. package/dist/Switch-CTTkNdqF.d.ts +31 -0
  36. package/dist/Tabs-DFJR_P2D.d.ts +47 -0
  37. package/dist/Textarea-DbKkduOG.d.ts +27 -0
  38. package/dist/ThemeToggle-DfiEM1dZ.d.ts +9 -0
  39. package/dist/Toggle-CseZl7XN.d.ts +49 -0
  40. package/dist/ToggleGroup-UeYHzQe7.d.ts +137 -0
  41. package/dist/Tooltip-BtRWVyCA.d.ts +40 -0
  42. package/dist/Typography-ccTtE182.d.ts +64 -0
  43. package/dist/chunk-2UHCXHAX.js +119 -0
  44. package/dist/chunk-2UHCXHAX.js.map +1 -0
  45. package/dist/chunk-2XNWLXG2.js +12 -0
  46. package/dist/chunk-2XNWLXG2.js.map +1 -0
  47. package/dist/chunk-3EHH62ZA.js +175 -0
  48. package/dist/chunk-3EHH62ZA.js.map +1 -0
  49. package/dist/chunk-3GKUUTSA.js +586 -0
  50. package/dist/chunk-3GKUUTSA.js.map +1 -0
  51. package/dist/chunk-3IT2RVO6.js +151 -0
  52. package/dist/chunk-3IT2RVO6.js.map +1 -0
  53. package/dist/chunk-3WAPI4KR.js +36 -0
  54. package/dist/chunk-3WAPI4KR.js.map +1 -0
  55. package/dist/chunk-44YLIQIS.js +15 -0
  56. package/dist/chunk-44YLIQIS.js.map +1 -0
  57. package/dist/chunk-4AJM7IA4.js +9 -0
  58. package/dist/chunk-4AJM7IA4.js.map +1 -0
  59. package/dist/chunk-4HX6SEWP.js +24 -0
  60. package/dist/chunk-4HX6SEWP.js.map +1 -0
  61. package/dist/chunk-6FTWMOHU.js +478 -0
  62. package/dist/chunk-6FTWMOHU.js.map +1 -0
  63. package/dist/chunk-6ZXYDBPR.js +304 -0
  64. package/dist/chunk-6ZXYDBPR.js.map +1 -0
  65. package/dist/chunk-7E2ZPDVI.js +224 -0
  66. package/dist/chunk-7E2ZPDVI.js.map +1 -0
  67. package/dist/chunk-7HZUM5ZQ.js +85 -0
  68. package/dist/chunk-7HZUM5ZQ.js.map +1 -0
  69. package/dist/chunk-7MECYLKS.js +375 -0
  70. package/dist/chunk-7MECYLKS.js.map +1 -0
  71. package/dist/chunk-7TDS7TC6.js +49 -0
  72. package/dist/chunk-7TDS7TC6.js.map +1 -0
  73. package/dist/chunk-7ZXJRNJO.js +26 -0
  74. package/dist/chunk-7ZXJRNJO.js.map +1 -0
  75. package/dist/chunk-AVCG4W6D.js +122 -0
  76. package/dist/chunk-AVCG4W6D.js.map +1 -0
  77. package/dist/chunk-BF3F5SJX.js +89 -0
  78. package/dist/chunk-BF3F5SJX.js.map +1 -0
  79. package/dist/chunk-BHMKSFES.js +195 -0
  80. package/dist/chunk-BHMKSFES.js.map +1 -0
  81. package/dist/chunk-BMF5SGYP.js +45 -0
  82. package/dist/chunk-BMF5SGYP.js.map +1 -0
  83. package/dist/chunk-D25ZQ36E.js +273 -0
  84. package/dist/chunk-D25ZQ36E.js.map +1 -0
  85. package/dist/chunk-D5W5YHJZ.js +426 -0
  86. package/dist/chunk-D5W5YHJZ.js.map +1 -0
  87. package/dist/chunk-DHBILREV.js +70 -0
  88. package/dist/chunk-DHBILREV.js.map +1 -0
  89. package/dist/chunk-DJ4PFETN.js +17 -0
  90. package/dist/chunk-DJ4PFETN.js.map +1 -0
  91. package/dist/chunk-DKXUKLZT.js +342 -0
  92. package/dist/chunk-DKXUKLZT.js.map +1 -0
  93. package/dist/chunk-EL2HT25C.js +9 -0
  94. package/dist/chunk-EL2HT25C.js.map +1 -0
  95. package/dist/chunk-FDNPBI2Z.js +26 -0
  96. package/dist/chunk-FDNPBI2Z.js.map +1 -0
  97. package/dist/chunk-FWCN47RC.js +65 -0
  98. package/dist/chunk-FWCN47RC.js.map +1 -0
  99. package/dist/chunk-G6PBJZYF.js +114 -0
  100. package/dist/chunk-G6PBJZYF.js.map +1 -0
  101. package/dist/chunk-GFF5OT46.js +80 -0
  102. package/dist/chunk-GFF5OT46.js.map +1 -0
  103. package/dist/chunk-GLWYIUE5.js +242 -0
  104. package/dist/chunk-GLWYIUE5.js.map +1 -0
  105. package/dist/chunk-HEQRODRF.js +110 -0
  106. package/dist/chunk-HEQRODRF.js.map +1 -0
  107. package/dist/chunk-HGTFOOUL.js +61 -0
  108. package/dist/chunk-HGTFOOUL.js.map +1 -0
  109. package/dist/chunk-HNESOMVN.js +18 -0
  110. package/dist/chunk-HNESOMVN.js.map +1 -0
  111. package/dist/chunk-I2PR3HXC.js +51 -0
  112. package/dist/chunk-I2PR3HXC.js.map +1 -0
  113. package/dist/chunk-IGGEBO7K.js +8 -0
  114. package/dist/chunk-IGGEBO7K.js.map +1 -0
  115. package/dist/chunk-J2Z2LSXM.js +26 -0
  116. package/dist/chunk-J2Z2LSXM.js.map +1 -0
  117. package/dist/chunk-JC7JMWSH.js +109 -0
  118. package/dist/chunk-JC7JMWSH.js.map +1 -0
  119. package/dist/chunk-JZRMLE4X.js +77 -0
  120. package/dist/chunk-JZRMLE4X.js.map +1 -0
  121. package/dist/chunk-KBXDU3G4.js +382 -0
  122. package/dist/chunk-KBXDU3G4.js.map +1 -0
  123. package/dist/chunk-KF34SFFZ.js +18 -0
  124. package/dist/chunk-KF34SFFZ.js.map +1 -0
  125. package/dist/chunk-L42B6QZS.js +524 -0
  126. package/dist/chunk-L42B6QZS.js.map +1 -0
  127. package/dist/chunk-LGO5HXMG.js +592 -0
  128. package/dist/chunk-LGO5HXMG.js.map +1 -0
  129. package/dist/chunk-LVK44RMS.js +78 -0
  130. package/dist/chunk-LVK44RMS.js.map +1 -0
  131. package/dist/chunk-N2LRB6TA.js +8 -0
  132. package/dist/chunk-N2LRB6TA.js.map +1 -0
  133. package/dist/chunk-NHTY2HD2.js +8 -0
  134. package/dist/chunk-NHTY2HD2.js.map +1 -0
  135. package/dist/chunk-NJUXP5FM.js +392 -0
  136. package/dist/chunk-NJUXP5FM.js.map +1 -0
  137. package/dist/chunk-NPHECLV5.js +94 -0
  138. package/dist/chunk-NPHECLV5.js.map +1 -0
  139. package/dist/chunk-NXVAR6P2.js +79 -0
  140. package/dist/chunk-NXVAR6P2.js.map +1 -0
  141. package/dist/chunk-OMXWBB67.js +9 -0
  142. package/dist/chunk-OMXWBB67.js.map +1 -0
  143. package/dist/chunk-PE5QQIV5.js +69 -0
  144. package/dist/chunk-PE5QQIV5.js.map +1 -0
  145. package/dist/chunk-QAUGWXGJ.js +158 -0
  146. package/dist/chunk-QAUGWXGJ.js.map +1 -0
  147. package/dist/chunk-QCYFSBZ7.js +81 -0
  148. package/dist/chunk-QCYFSBZ7.js.map +1 -0
  149. package/dist/chunk-QJT5UAL2.js +714 -0
  150. package/dist/chunk-QJT5UAL2.js.map +1 -0
  151. package/dist/chunk-QRLVOM3E.js +83 -0
  152. package/dist/chunk-QRLVOM3E.js.map +1 -0
  153. package/dist/chunk-RBVGV7VO.js +26 -0
  154. package/dist/chunk-RBVGV7VO.js.map +1 -0
  155. package/dist/chunk-RD6VXGVY.js +340 -0
  156. package/dist/chunk-RD6VXGVY.js.map +1 -0
  157. package/dist/chunk-RSPI2A4W.js +106 -0
  158. package/dist/chunk-RSPI2A4W.js.map +1 -0
  159. package/dist/chunk-RT26RZ7W.js +79 -0
  160. package/dist/chunk-RT26RZ7W.js.map +1 -0
  161. package/dist/chunk-RXAIDZ33.js +522 -0
  162. package/dist/chunk-RXAIDZ33.js.map +1 -0
  163. package/dist/chunk-S6TO62GJ.js +53 -0
  164. package/dist/chunk-S6TO62GJ.js.map +1 -0
  165. package/dist/chunk-SJ5MYJ7L.js +283 -0
  166. package/dist/chunk-SJ5MYJ7L.js.map +1 -0
  167. package/dist/chunk-SZ2I2SRP.js +156 -0
  168. package/dist/chunk-SZ2I2SRP.js.map +1 -0
  169. package/dist/chunk-UGOQKTHL.js +23 -0
  170. package/dist/chunk-UGOQKTHL.js.map +1 -0
  171. package/dist/chunk-UGQ756Z6.js +92 -0
  172. package/dist/chunk-UGQ756Z6.js.map +1 -0
  173. package/dist/chunk-UNPCAFLS.js +22 -0
  174. package/dist/chunk-UNPCAFLS.js.map +1 -0
  175. package/dist/chunk-V27UIXBD.js +36 -0
  176. package/dist/chunk-V27UIXBD.js.map +1 -0
  177. package/dist/chunk-VB5LDR7C.js +97 -0
  178. package/dist/chunk-VB5LDR7C.js.map +1 -0
  179. package/dist/chunk-VJ26PA3U.js +9 -0
  180. package/dist/chunk-VJ26PA3U.js.map +1 -0
  181. package/dist/chunk-VKB4VUN7.js +164 -0
  182. package/dist/chunk-VKB4VUN7.js.map +1 -0
  183. package/dist/chunk-Y37OHTAO.js +208 -0
  184. package/dist/chunk-Y37OHTAO.js.map +1 -0
  185. package/dist/chunk-Y4OW24IS.js +18 -0
  186. package/dist/chunk-Y4OW24IS.js.map +1 -0
  187. package/dist/chunk-YDMMDO2W.js +141 -0
  188. package/dist/chunk-YDMMDO2W.js.map +1 -0
  189. package/dist/chunk-YENXORWK.js +9 -0
  190. package/dist/chunk-YENXORWK.js.map +1 -0
  191. package/dist/chunk-YLTIB224.js +76 -0
  192. package/dist/chunk-YLTIB224.js.map +1 -0
  193. package/dist/chunk-YVA6PAML.js +63 -0
  194. package/dist/chunk-YVA6PAML.js.map +1 -0
  195. package/dist/chunk-YWUMX4JR.js +9 -0
  196. package/dist/chunk-YWUMX4JR.js.map +1 -0
  197. package/dist/chunk-ZDXR2SWG.js +32 -0
  198. package/dist/chunk-ZDXR2SWG.js.map +1 -0
  199. package/dist/chunk-ZIFL6GXH.js +187 -0
  200. package/dist/chunk-ZIFL6GXH.js.map +1 -0
  201. package/dist/chunk-ZM4VJOGF.js +40 -0
  202. package/dist/chunk-ZM4VJOGF.js.map +1 -0
  203. package/dist/chunk-ZVKIJLNO.js +9 -0
  204. package/dist/chunk-ZVKIJLNO.js.map +1 -0
  205. package/dist/components/accordion/index.d.ts +12 -0
  206. package/dist/components/accordion/index.js +4 -0
  207. package/dist/components/accordion/index.js.map +1 -0
  208. package/dist/components/alert/index.d.ts +64 -0
  209. package/dist/components/alert/index.js +4 -0
  210. package/dist/components/alert/index.js.map +1 -0
  211. package/dist/components/alert-dialog/index.d.ts +22 -0
  212. package/dist/components/alert-dialog/index.js +9 -0
  213. package/dist/components/alert-dialog/index.js.map +1 -0
  214. package/dist/components/aspect-ratio/index.d.ts +11 -0
  215. package/dist/components/aspect-ratio/index.js +4 -0
  216. package/dist/components/aspect-ratio/index.js.map +1 -0
  217. package/dist/components/avatar/index.d.ts +53 -0
  218. package/dist/components/avatar/index.js +4 -0
  219. package/dist/components/avatar/index.js.map +1 -0
  220. package/dist/components/badge/index.d.ts +175 -0
  221. package/dist/components/badge/index.js +4 -0
  222. package/dist/components/badge/index.js.map +1 -0
  223. package/dist/components/breadcrumb/index.d.ts +38 -0
  224. package/dist/components/breadcrumb/index.js +4 -0
  225. package/dist/components/breadcrumb/index.js.map +1 -0
  226. package/dist/components/button/index.d.ts +72 -0
  227. package/dist/components/button/index.js +5 -0
  228. package/dist/components/button/index.js.map +1 -0
  229. package/dist/components/button-group/index.d.ts +21 -0
  230. package/dist/components/button-group/index.js +4 -0
  231. package/dist/components/button-group/index.js.map +1 -0
  232. package/dist/components/calendar/index.d.ts +7 -0
  233. package/dist/components/calendar/index.js +12 -0
  234. package/dist/components/calendar/index.js.map +1 -0
  235. package/dist/components/card/index.d.ts +80 -0
  236. package/dist/components/card/index.js +3 -0
  237. package/dist/components/card/index.js.map +1 -0
  238. package/dist/components/carousel/index.d.ts +14 -0
  239. package/dist/components/carousel/index.js +5 -0
  240. package/dist/components/carousel/index.js.map +1 -0
  241. package/dist/components/chart/index.d.ts +6 -0
  242. package/dist/components/chart/index.js +4 -0
  243. package/dist/components/chart/index.js.map +1 -0
  244. package/dist/components/checkbox/index.d.ts +7 -0
  245. package/dist/components/checkbox/index.js +4 -0
  246. package/dist/components/checkbox/index.js.map +1 -0
  247. package/dist/components/collapsible/index.d.ts +11 -0
  248. package/dist/components/collapsible/index.js +4 -0
  249. package/dist/components/collapsible/index.js.map +1 -0
  250. package/dist/components/combobox/index.d.ts +13 -0
  251. package/dist/components/combobox/index.js +7 -0
  252. package/dist/components/combobox/index.js.map +1 -0
  253. package/dist/components/command/index.d.ts +21 -0
  254. package/dist/components/command/index.js +10 -0
  255. package/dist/components/command/index.js.map +1 -0
  256. package/dist/components/context-menu/index.d.ts +114 -0
  257. package/dist/components/context-menu/index.js +5 -0
  258. package/dist/components/context-menu/index.js.map +1 -0
  259. package/dist/components/data-table/index.d.ts +6 -0
  260. package/dist/components/data-table/index.js +5 -0
  261. package/dist/components/data-table/index.js.map +1 -0
  262. package/dist/components/date-picker/index.d.ts +7 -0
  263. package/dist/components/date-picker/index.js +8 -0
  264. package/dist/components/date-picker/index.js.map +1 -0
  265. package/dist/components/dialog/index.d.ts +22 -0
  266. package/dist/components/dialog/index.js +8 -0
  267. package/dist/components/dialog/index.js.map +1 -0
  268. package/dist/components/direction/index.d.ts +7 -0
  269. package/dist/components/direction/index.js +4 -0
  270. package/dist/components/direction/index.js.map +1 -0
  271. package/dist/components/drawer/index.d.ts +19 -0
  272. package/dist/components/drawer/index.js +8 -0
  273. package/dist/components/drawer/index.js.map +1 -0
  274. package/dist/components/dropdown/index.d.ts +24 -0
  275. package/dist/components/dropdown/index.js +5 -0
  276. package/dist/components/dropdown/index.js.map +1 -0
  277. package/dist/components/dropzone/index.d.ts +26 -0
  278. package/dist/components/dropzone/index.js +5 -0
  279. package/dist/components/dropzone/index.js.map +1 -0
  280. package/dist/components/empty/index.d.ts +8 -0
  281. package/dist/components/empty/index.js +4 -0
  282. package/dist/components/empty/index.js.map +1 -0
  283. package/dist/components/field/index.d.ts +8 -0
  284. package/dist/components/field/index.js +6 -0
  285. package/dist/components/field/index.js.map +1 -0
  286. package/dist/components/hover-card/index.d.ts +12 -0
  287. package/dist/components/hover-card/index.js +3 -0
  288. package/dist/components/hover-card/index.js.map +1 -0
  289. package/dist/components/image/index.d.ts +6 -0
  290. package/dist/components/image/index.js +4 -0
  291. package/dist/components/image/index.js.map +1 -0
  292. package/dist/components/input/index.d.ts +27 -0
  293. package/dist/components/input/index.js +4 -0
  294. package/dist/components/input/index.js.map +1 -0
  295. package/dist/components/input-group/index.d.ts +132 -0
  296. package/dist/components/input-group/index.js +7 -0
  297. package/dist/components/input-group/index.js.map +1 -0
  298. package/dist/components/input-otp/index.d.ts +39 -0
  299. package/dist/components/input-otp/index.js +4 -0
  300. package/dist/components/input-otp/index.js.map +1 -0
  301. package/dist/components/item/index.d.ts +108 -0
  302. package/dist/components/item/index.js +5 -0
  303. package/dist/components/item/index.js.map +1 -0
  304. package/dist/components/kbd/index.d.ts +31 -0
  305. package/dist/components/kbd/index.js +4 -0
  306. package/dist/components/kbd/index.js.map +1 -0
  307. package/dist/components/label/index.d.ts +49 -0
  308. package/dist/components/label/index.js +4 -0
  309. package/dist/components/label/index.js.map +1 -0
  310. package/dist/components/locale-segment-group/index.d.ts +15 -0
  311. package/dist/components/locale-segment-group/index.js +4 -0
  312. package/dist/components/locale-segment-group/index.js.map +1 -0
  313. package/dist/components/menubar/index.d.ts +23 -0
  314. package/dist/components/menubar/index.js +5 -0
  315. package/dist/components/menubar/index.js.map +1 -0
  316. package/dist/components/native-select/index.d.ts +89 -0
  317. package/dist/components/native-select/index.js +3 -0
  318. package/dist/components/native-select/index.js.map +1 -0
  319. package/dist/components/navigation-menu/index.d.ts +15 -0
  320. package/dist/components/navigation-menu/index.js +5 -0
  321. package/dist/components/navigation-menu/index.js.map +1 -0
  322. package/dist/components/pagination/index.d.ts +44 -0
  323. package/dist/components/pagination/index.js +5 -0
  324. package/dist/components/pagination/index.js.map +1 -0
  325. package/dist/components/popover/index.d.ts +76 -0
  326. package/dist/components/popover/index.js +5 -0
  327. package/dist/components/popover/index.js.map +1 -0
  328. package/dist/components/progress/index.d.ts +6 -0
  329. package/dist/components/progress/index.js +4 -0
  330. package/dist/components/progress/index.js.map +1 -0
  331. package/dist/components/prose/index.d.ts +8 -0
  332. package/dist/components/prose/index.js +4 -0
  333. package/dist/components/prose/index.js.map +1 -0
  334. package/dist/components/radio-group/index.d.ts +11 -0
  335. package/dist/components/radio-group/index.js +5 -0
  336. package/dist/components/radio-group/index.js.map +1 -0
  337. package/dist/components/scroll-area/index.d.ts +11 -0
  338. package/dist/components/scroll-area/index.js +4 -0
  339. package/dist/components/scroll-area/index.js.map +1 -0
  340. package/dist/components/select/index.d.ts +17 -0
  341. package/dist/components/select/index.js +5 -0
  342. package/dist/components/select/index.js.map +1 -0
  343. package/dist/components/selectable-card/index.d.ts +11 -0
  344. package/dist/components/selectable-card/index.js +5 -0
  345. package/dist/components/selectable-card/index.js.map +1 -0
  346. package/dist/components/separator/index.d.ts +24 -0
  347. package/dist/components/separator/index.js +4 -0
  348. package/dist/components/separator/index.js.map +1 -0
  349. package/dist/components/sheet/index.d.ts +20 -0
  350. package/dist/components/sheet/index.js +8 -0
  351. package/dist/components/sheet/index.js.map +1 -0
  352. package/dist/components/sidebar/index.d.ts +16 -0
  353. package/dist/components/sidebar/index.js +3 -0
  354. package/dist/components/sidebar/index.js.map +1 -0
  355. package/dist/components/skeleton/index.d.ts +52 -0
  356. package/dist/components/skeleton/index.js +3 -0
  357. package/dist/components/skeleton/index.js.map +1 -0
  358. package/dist/components/slider/index.d.ts +7 -0
  359. package/dist/components/slider/index.js +4 -0
  360. package/dist/components/slider/index.js.map +1 -0
  361. package/dist/components/sonner/index.d.ts +7 -0
  362. package/dist/components/sonner/index.js +3 -0
  363. package/dist/components/sonner/index.js.map +1 -0
  364. package/dist/components/spinner/index.d.ts +10 -0
  365. package/dist/components/spinner/index.js +4 -0
  366. package/dist/components/spinner/index.js.map +1 -0
  367. package/dist/components/switch/index.d.ts +7 -0
  368. package/dist/components/switch/index.js +4 -0
  369. package/dist/components/switch/index.js.map +1 -0
  370. package/dist/components/table/index.d.ts +45 -0
  371. package/dist/components/table/index.js +5 -0
  372. package/dist/components/table/index.js.map +1 -0
  373. package/dist/components/tabs/index.d.ts +13 -0
  374. package/dist/components/tabs/index.js +4 -0
  375. package/dist/components/tabs/index.js.map +1 -0
  376. package/dist/components/textarea/index.d.ts +27 -0
  377. package/dist/components/textarea/index.js +4 -0
  378. package/dist/components/textarea/index.js.map +1 -0
  379. package/dist/components/theme-toggle/index.d.ts +6 -0
  380. package/dist/components/theme-toggle/index.js +6 -0
  381. package/dist/components/theme-toggle/index.js.map +1 -0
  382. package/dist/components/toast/index.d.ts +27 -0
  383. package/dist/components/toast/index.js +3 -0
  384. package/dist/components/toast/index.js.map +1 -0
  385. package/dist/components/toggle/index.d.ts +7 -0
  386. package/dist/components/toggle/index.js +4 -0
  387. package/dist/components/toggle/index.js.map +1 -0
  388. package/dist/components/toggle-group/index.d.ts +11 -0
  389. package/dist/components/toggle-group/index.js +4 -0
  390. package/dist/components/toggle-group/index.js.map +1 -0
  391. package/dist/components/tooltip/index.d.ts +12 -0
  392. package/dist/components/tooltip/index.js +3 -0
  393. package/dist/components/tooltip/index.js.map +1 -0
  394. package/dist/components/typography/index.d.ts +8 -0
  395. package/dist/components/typography/index.js +4 -0
  396. package/dist/components/typography/index.js.map +1 -0
  397. package/dist/components/video/index.d.ts +8 -0
  398. package/dist/components/video/index.js +4 -0
  399. package/dist/components/video/index.js.map +1 -0
  400. package/dist/index.d.ts +82 -0
  401. package/dist/index.js +83 -0
  402. package/dist/index.js.map +1 -0
  403. package/dist/lib/interactive/index.d.ts +34 -0
  404. package/dist/lib/interactive/index.js +3 -0
  405. package/dist/lib/interactive/index.js.map +1 -0
  406. package/dist/lib/signals/index.d.ts +15 -0
  407. package/dist/lib/signals/index.js +3 -0
  408. package/dist/lib/signals/index.js.map +1 -0
  409. package/dist/lib/utils.d.ts +5 -0
  410. package/dist/lib/utils.js +3 -0
  411. package/dist/lib/utils.js.map +1 -0
  412. package/dist/navigationMenuTriggerStyle-MrMOOgmr.d.ts +48 -0
  413. package/dist/sonner-store-Dfdxy8ba.d.ts +11 -0
  414. package/dist/theme.css +81 -0
  415. package/package.json +360 -0
@@ -0,0 +1,522 @@
1
+ import { createDismissableLayer } from './chunk-HEQRODRF.js';
2
+ import { cn } from './chunk-OMXWBB67.js';
3
+ import { signal } from '@preact/signals';
4
+ import { createContext } from 'preact';
5
+ import { useMemo, useRef, useEffect, useState, useLayoutEffect, useContext } from 'preact/hooks';
6
+ import { jsx, jsxs } from 'preact/jsx-runtime';
7
+ import { createPortal } from 'preact/compat';
8
+ import { tv } from 'tailwind-variants';
9
+
10
+ var ContextMenuContext = createContext(null);
11
+ var useContextMenu = () => {
12
+ const ctx = useContext(ContextMenuContext);
13
+ if (!ctx) throw new Error("ContextMenu subcomponents must be used within ContextMenu");
14
+ return ctx;
15
+ };
16
+ var ContextMenu = ({
17
+ open: openProp,
18
+ defaultOpen = false,
19
+ onOpenChange,
20
+ class: className,
21
+ children,
22
+ ...rest
23
+ }) => {
24
+ const isControlled = openProp !== void 0;
25
+ const open = useMemo(() => signal(isControlled ? Boolean(openProp) : defaultOpen), []);
26
+ const position = useMemo(() => signal({ x: 0, y: 0 }), []);
27
+ const contentWrapperRef = useRef(null);
28
+ useEffect(() => {
29
+ if (isControlled && openProp !== void 0) {
30
+ open.value = openProp;
31
+ }
32
+ }, [openProp, isControlled, open]);
33
+ const setOpen = (next) => {
34
+ onOpenChange?.(next);
35
+ if (!isControlled) {
36
+ open.value = next;
37
+ }
38
+ };
39
+ const setOpenRef = useRef(setOpen);
40
+ setOpenRef.current = setOpen;
41
+ return /* @__PURE__ */ jsx(
42
+ ContextMenuContext.Provider,
43
+ {
44
+ value: {
45
+ open,
46
+ setOpen: (next) => setOpenRef.current(next),
47
+ position,
48
+ setPosition: (p) => {
49
+ position.value = p;
50
+ },
51
+ contentWrapperRef
52
+ },
53
+ children: /* @__PURE__ */ jsx(
54
+ "div",
55
+ {
56
+ "data-slot": "context-menu",
57
+ "data-state": open.value ? "open" : "closed",
58
+ class: cn("relative inline-flex", className),
59
+ ...rest,
60
+ children
61
+ }
62
+ )
63
+ }
64
+ );
65
+ };
66
+ var ContextMenuCheckboxItem = ({
67
+ checked: checkedProp,
68
+ defaultChecked = false,
69
+ onCheckedChange,
70
+ class: className,
71
+ children,
72
+ onClick,
73
+ ...rest
74
+ }) => {
75
+ const internal = useMemo(() => signal(defaultChecked), []);
76
+ const isControlled = checkedProp !== void 0;
77
+ useEffect(() => {
78
+ if (checkedProp !== void 0) {
79
+ internal.value = checkedProp;
80
+ }
81
+ }, [checkedProp, internal]);
82
+ const checked = isControlled ? Boolean(checkedProp) : internal.value;
83
+ return /* @__PURE__ */ jsxs(
84
+ "button",
85
+ {
86
+ type: "button",
87
+ role: "menuitemcheckbox",
88
+ "data-slot": "context-menu-checkbox-item",
89
+ "aria-checked": checked,
90
+ class: cn(
91
+ "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",
92
+ "focus:bg-accent focus:text-accent-foreground",
93
+ "data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
94
+ className
95
+ ),
96
+ onClick: (event) => {
97
+ onClick?.(event);
98
+ if (event.defaultPrevented) return;
99
+ const next = !checked;
100
+ if (!isControlled) {
101
+ internal.value = next;
102
+ }
103
+ onCheckedChange?.(next);
104
+ },
105
+ ...rest,
106
+ children: [
107
+ /* @__PURE__ */ jsx("span", { class: "pointer-events-none absolute start-2 flex size-3.5 items-center justify-center", "aria-hidden": true, children: checked ? /* @__PURE__ */ jsx(
108
+ "svg",
109
+ {
110
+ xmlns: "http://www.w3.org/2000/svg",
111
+ width: "24",
112
+ height: "24",
113
+ viewBox: "0 0 24 24",
114
+ fill: "none",
115
+ stroke: "currentColor",
116
+ "stroke-width": "2",
117
+ "stroke-linecap": "round",
118
+ "stroke-linejoin": "round",
119
+ class: "size-4",
120
+ children: /* @__PURE__ */ jsx("path", { d: "M20 6 9 17l-5-5" })
121
+ }
122
+ ) : null }),
123
+ children
124
+ ]
125
+ }
126
+ );
127
+ };
128
+ var clamp = (v, min, max) => Math.min(Math.max(v, min), max);
129
+ var ContextMenuContent = ({ class: className, children, style, ...rest }) => {
130
+ const { open, setOpen, position, contentWrapperRef } = useContextMenu();
131
+ const innerRef = useRef(null);
132
+ const pt = position.value ?? { x: 0, y: 0 };
133
+ const [fixedPos, setFixedPos] = useState(() => ({ left: pt.x, top: pt.y }));
134
+ const isOpen = Boolean(open.value);
135
+ const px = pt.x;
136
+ const py = pt.y;
137
+ const assignRef = (node) => {
138
+ innerRef.current = node;
139
+ contentWrapperRef.current = node;
140
+ };
141
+ useLayoutEffect(() => {
142
+ if (!isOpen) return;
143
+ const el = innerRef.current;
144
+ if (!el) return;
145
+ const rect = el.getBoundingClientRect();
146
+ const margin = 8;
147
+ const maxX = window.innerWidth - rect.width - margin;
148
+ const maxY = window.innerHeight - rect.height - margin;
149
+ setFixedPos({
150
+ left: clamp(px, margin, Math.max(margin, maxX)),
151
+ top: clamp(py, margin, Math.max(margin, maxY))
152
+ });
153
+ }, [isOpen, px, py]);
154
+ useEffect(() => {
155
+ const setOpenRef = { current: setOpen };
156
+ setOpenRef.current = setOpen;
157
+ const layer = createDismissableLayer({
158
+ root: () => contentWrapperRef.current,
159
+ open: () => Boolean(open.value),
160
+ onDismiss: () => setOpenRef.current(false)
161
+ });
162
+ return () => layer.dispose();
163
+ }, [open, setOpen, contentWrapperRef]);
164
+ if (!isOpen) return null;
165
+ const inlineStyle = typeof style === "object" && style !== null ? { position: "fixed", left: fixedPos.left, top: fixedPos.top, zIndex: 50, ...style } : { position: "fixed", left: fixedPos.left, top: fixedPos.top, zIndex: 50 };
166
+ return createPortal(
167
+ /* @__PURE__ */ jsx(
168
+ "div",
169
+ {
170
+ ref: assignRef,
171
+ "data-slot": "context-menu-content",
172
+ role: "presentation",
173
+ class: cn("min-w-40 outline-none", className),
174
+ style: inlineStyle,
175
+ ...rest,
176
+ children: /* @__PURE__ */ jsx(
177
+ "div",
178
+ {
179
+ role: "menu",
180
+ class: "text-popover-foreground max-h-[min(24rem,calc(100dvh-2rem))] overflow-y-auto rounded-md border bg-popover p-1 shadow-md",
181
+ children
182
+ }
183
+ )
184
+ }
185
+ ),
186
+ document.body
187
+ );
188
+ };
189
+ var ContextMenuGroup = ({ class: className, children, ...rest }) => /* @__PURE__ */ jsx("div", { "data-slot": "context-menu-group", role: "group", class: cn(className), ...rest, children });
190
+ var contextMenuItem = tv({
191
+ base: [
192
+ "relative flex w-full cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none",
193
+ "focus:bg-accent focus:text-accent-foreground",
194
+ "data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
195
+ "[&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4"
196
+ ],
197
+ variants: {
198
+ variant: {
199
+ default: "",
200
+ destructive: "text-destructive focus:bg-destructive/10 focus:text-destructive dark:focus:bg-destructive/20"
201
+ },
202
+ inset: {
203
+ true: "ps-8"
204
+ }
205
+ },
206
+ defaultVariants: {
207
+ variant: "default",
208
+ inset: false
209
+ }
210
+ });
211
+ var ContextMenuItem = ({
212
+ inset = false,
213
+ variant = "default",
214
+ class: className,
215
+ children,
216
+ onClick,
217
+ ...rest
218
+ }) => {
219
+ const { setOpen } = useContextMenu();
220
+ return /* @__PURE__ */ jsx(
221
+ "button",
222
+ {
223
+ type: "button",
224
+ role: "menuitem",
225
+ "data-slot": "context-menu-item",
226
+ "data-inset": inset ? "true" : void 0,
227
+ "data-variant": variant,
228
+ class: contextMenuItem({ inset, variant, class: className }),
229
+ onClick: (event) => {
230
+ onClick?.(event);
231
+ if (event.defaultPrevented) return;
232
+ setOpen(false);
233
+ },
234
+ ...rest,
235
+ children
236
+ }
237
+ );
238
+ };
239
+ var ContextMenuLabel = ({
240
+ inset = false,
241
+ class: className,
242
+ children,
243
+ ...rest
244
+ }) => /* @__PURE__ */ jsx(
245
+ "div",
246
+ {
247
+ "data-slot": "context-menu-label",
248
+ "data-inset": inset ? "true" : void 0,
249
+ class: cn(
250
+ "text-muted-foreground px-2 py-1.5 text-xs font-medium",
251
+ inset && "ps-8",
252
+ className
253
+ ),
254
+ ...rest,
255
+ children
256
+ }
257
+ );
258
+ var ContextMenuRadioContext = createContext(null);
259
+ var ContextMenuRadioProvider = ({
260
+ children,
261
+ value
262
+ }) => /* @__PURE__ */ jsx(ContextMenuRadioContext.Provider, { value, children });
263
+ var useContextMenuRadio = () => {
264
+ const ctx = useContext(ContextMenuRadioContext);
265
+ if (!ctx) throw new Error("ContextMenuRadioItem must be used within ContextMenuRadioGroup");
266
+ return ctx;
267
+ };
268
+ var ContextMenuRadioGroup = ({
269
+ value: valueProp,
270
+ defaultValue,
271
+ onValueChange,
272
+ class: className,
273
+ children,
274
+ ...rest
275
+ }) => {
276
+ const [inner, setInner] = useState(() => defaultValue ?? "");
277
+ const isControlled = valueProp !== void 0;
278
+ const current = isControlled ? valueProp : inner;
279
+ const setValue = (next) => {
280
+ onValueChange?.(next);
281
+ if (!isControlled) setInner(next);
282
+ };
283
+ return /* @__PURE__ */ jsx(ContextMenuRadioProvider, { value: { value: current, setValue }, children: /* @__PURE__ */ jsx("div", { role: "radiogroup", "data-slot": "context-menu-radio-group", class: cn(className), ...rest, children }) });
284
+ };
285
+ var ContextMenuRadioItem = ({
286
+ value,
287
+ class: className,
288
+ children,
289
+ onClick,
290
+ ...rest
291
+ }) => {
292
+ const radio = useContextMenuRadio();
293
+ const selected = radio.value === value;
294
+ return /* @__PURE__ */ jsxs(
295
+ "button",
296
+ {
297
+ type: "button",
298
+ role: "menuitemradio",
299
+ "data-slot": "context-menu-radio-item",
300
+ "aria-checked": selected,
301
+ class: cn(
302
+ "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",
303
+ "focus:bg-accent focus:text-accent-foreground",
304
+ "data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
305
+ className
306
+ ),
307
+ onClick: (event) => {
308
+ onClick?.(event);
309
+ if (event.defaultPrevented) return;
310
+ radio.setValue(value);
311
+ },
312
+ ...rest,
313
+ children: [
314
+ /* @__PURE__ */ jsx("span", { class: "pointer-events-none absolute start-2 flex size-3.5 items-center justify-center", "aria-hidden": true, children: selected ? /* @__PURE__ */ jsx("span", { class: "size-2 rounded-full bg-current" }) : null }),
315
+ children
316
+ ]
317
+ }
318
+ );
319
+ };
320
+ var ContextMenuSeparator = ({ class: className, ...rest }) => /* @__PURE__ */ jsx(
321
+ "hr",
322
+ {
323
+ "data-slot": "context-menu-separator",
324
+ class: cn("bg-border -mx-1 my-1 h-px border-0", className),
325
+ ...rest
326
+ }
327
+ );
328
+ var ContextMenuShortcut = ({ class: className, children, ...rest }) => /* @__PURE__ */ jsx(
329
+ "span",
330
+ {
331
+ "data-slot": "context-menu-shortcut",
332
+ class: cn("text-muted-foreground ms-auto text-xs tracking-widest", className),
333
+ ...rest,
334
+ children
335
+ }
336
+ );
337
+ var ContextMenuSubContext = createContext(null);
338
+ var ContextMenuSubProvider = ({
339
+ children,
340
+ value
341
+ }) => /* @__PURE__ */ jsx(ContextMenuSubContext.Provider, { value, children });
342
+ var useContextMenuSub = () => {
343
+ const ctx = useContext(ContextMenuSubContext);
344
+ if (!ctx) throw new Error("ContextMenu subcomponents must be used within ContextMenuSub");
345
+ return ctx;
346
+ };
347
+ var useMemoContextMenuSub = () => useMemo(() => {
348
+ const open = signal(false);
349
+ return {
350
+ open,
351
+ setOpen: (next) => {
352
+ open.value = next;
353
+ }
354
+ };
355
+ }, []);
356
+ var ContextMenuSub = ({ class: className, children, ...rest }) => {
357
+ const ctx = useMemoContextMenuSub();
358
+ return /* @__PURE__ */ jsx(ContextMenuSubProvider, { value: ctx, children: /* @__PURE__ */ jsx(
359
+ "div",
360
+ {
361
+ "data-slot": "context-menu-sub",
362
+ class: cn("relative", className),
363
+ onPointerLeave: () => {
364
+ ctx.setOpen(false);
365
+ },
366
+ ...rest,
367
+ children
368
+ }
369
+ ) });
370
+ };
371
+ var ContextMenuSubContent = ({
372
+ class: className,
373
+ children,
374
+ onPointerEnter,
375
+ ...rest
376
+ }) => {
377
+ const sub = useContextMenuSub();
378
+ if (!sub.open.value) return null;
379
+ return /* @__PURE__ */ jsx(
380
+ "div",
381
+ {
382
+ role: "menu",
383
+ "data-slot": "context-menu-sub-content",
384
+ "data-state": "open",
385
+ class: cn(
386
+ "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",
387
+ className
388
+ ),
389
+ onPointerEnter: (e) => {
390
+ onPointerEnter?.(e);
391
+ sub.setOpen(true);
392
+ },
393
+ ...rest,
394
+ children
395
+ }
396
+ );
397
+ };
398
+ var ChevronRight = ({ class: className }) => /* @__PURE__ */ jsx(
399
+ "svg",
400
+ {
401
+ xmlns: "http://www.w3.org/2000/svg",
402
+ width: "16",
403
+ height: "16",
404
+ viewBox: "0 0 24 24",
405
+ fill: "none",
406
+ stroke: "currentColor",
407
+ "stroke-width": "2",
408
+ "stroke-linecap": "round",
409
+ "stroke-linejoin": "round",
410
+ class: cn("size-4 shrink-0 rtl:rotate-180", className),
411
+ "aria-hidden": true,
412
+ children: /* @__PURE__ */ jsx("path", { d: "m9 18 6-6-6-6" })
413
+ }
414
+ );
415
+ var ContextMenuSubTrigger = ({
416
+ class: className,
417
+ children,
418
+ onClick,
419
+ onPointerEnter,
420
+ ...rest
421
+ }) => {
422
+ const sub = useContextMenuSub();
423
+ const open = sub.open.value;
424
+ return /* @__PURE__ */ jsxs(
425
+ "button",
426
+ {
427
+ type: "button",
428
+ role: "menuitem",
429
+ "data-slot": "context-menu-sub-trigger",
430
+ "data-state": open ? "open" : "closed",
431
+ "aria-expanded": open,
432
+ "aria-haspopup": "menu",
433
+ class: cn(
434
+ "flex w-full cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-start text-sm outline-none",
435
+ "focus:bg-accent focus:text-accent-foreground",
436
+ "data-[state=open]:bg-accent data-[state=open]:text-accent-foreground",
437
+ "[&_svg]:shrink-0",
438
+ className
439
+ ),
440
+ onPointerEnter: (e) => {
441
+ onPointerEnter?.(e);
442
+ if (e.defaultPrevented) return;
443
+ sub.setOpen(true);
444
+ },
445
+ onClick: (e) => {
446
+ onClick?.(e);
447
+ if (e.defaultPrevented) return;
448
+ sub.setOpen(!open);
449
+ },
450
+ ...rest,
451
+ children: [
452
+ children,
453
+ /* @__PURE__ */ jsx(ChevronRight, { class: "ms-auto" })
454
+ ]
455
+ }
456
+ );
457
+ };
458
+ var LONG_PRESS_MS = 500;
459
+ var ContextMenuTrigger = ({
460
+ children,
461
+ class: className,
462
+ onContextMenu,
463
+ onPointerDown,
464
+ onPointerUp,
465
+ onPointerCancel,
466
+ onPointerLeave,
467
+ ...rest
468
+ }) => {
469
+ const { setOpen, setPosition } = useContextMenu();
470
+ const longPressTimer = useRef(null);
471
+ const lastPointer = useRef({ x: 0, y: 0 });
472
+ const clearLongPress = () => {
473
+ if (longPressTimer.current !== null) {
474
+ clearTimeout(longPressTimer.current);
475
+ longPressTimer.current = null;
476
+ }
477
+ };
478
+ return /* @__PURE__ */ jsx(
479
+ "div",
480
+ {
481
+ "data-slot": "context-menu-trigger",
482
+ class: cn(className),
483
+ onContextMenu: (event) => {
484
+ event.preventDefault();
485
+ setPosition({ x: event.clientX, y: event.clientY });
486
+ setOpen(true);
487
+ onContextMenu?.(event);
488
+ },
489
+ onPointerDown: (e) => {
490
+ onPointerDown?.(e);
491
+ if (e.defaultPrevented) return;
492
+ if (e.pointerType === "touch") {
493
+ lastPointer.current = { x: e.clientX, y: e.clientY };
494
+ clearLongPress();
495
+ longPressTimer.current = setTimeout(() => {
496
+ longPressTimer.current = null;
497
+ setPosition(lastPointer.current);
498
+ setOpen(true);
499
+ }, LONG_PRESS_MS);
500
+ }
501
+ },
502
+ onPointerUp: (e) => {
503
+ onPointerUp?.(e);
504
+ clearLongPress();
505
+ },
506
+ onPointerCancel: (e) => {
507
+ onPointerCancel?.(e);
508
+ clearLongPress();
509
+ },
510
+ onPointerLeave: (e) => {
511
+ onPointerLeave?.(e);
512
+ if (e.pointerType === "touch") clearLongPress();
513
+ },
514
+ ...rest,
515
+ children
516
+ }
517
+ );
518
+ };
519
+
520
+ export { ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger };
521
+ //# sourceMappingURL=chunk-RXAIDZ33.js.map
522
+ //# sourceMappingURL=chunk-RXAIDZ33.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-RXAIDZ33.js","sourcesContent":["import { signal } from \"@preact/signals\";\nimport { createContext } from \"preact\";\nimport { useContext, useEffect, useMemo, useRef } from \"preact/hooks\";\nimport type { ComponentChildren, JSX } from \"preact\";\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 { useEffect, useMemo } from \"preact/hooks\";\nimport type { ComponentChildren, JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\n\nexport type ContextMenuCheckboxItemProps = Omit<JSX.ButtonHTMLAttributes<HTMLButtonElement>, \"children\"> & {\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 class=\"pointer-events-none absolute start-2 flex size-3.5 items-center justify-center\" aria-hidden>\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 { createPortal } from \"preact/compat\";\nimport { useEffect, useLayoutEffect, useRef, useState } from \"preact/hooks\";\nimport type { ComponentChildren, JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\nimport { createDismissableLayer } from \"../../lib/interactive\";\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 = ({ class: className, children, style, ...rest }: 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 : ({ position: \"fixed\" as const, left: fixedPos.left, top: fixedPos.top, zIndex: 50 } 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 = ({ class: className, children, ...rest }: ContextMenuGroupProps) => (\n <div data-slot=\"context-menu-group\" role=\"group\" class={cn(className)} {...rest}>\n {children}\n </div>\n);\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { tv, type VariantProps } from \"tailwind-variants\";\nimport { useContextMenu } from \"./ContextMenu\";\n\nexport const contextMenuItem = tv({\n base: [\n \"relative flex w-full cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none\",\n \"focus:bg-accent focus:text-accent-foreground\",\n \"data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n \"[&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\"\n ],\n variants: {\n variant: {\n default: \"\",\n destructive:\n \"text-destructive focus:bg-destructive/10 focus:text-destructive dark:focus:bg-destructive/20\"\n },\n inset: {\n true: \"ps-8\"\n }\n },\n defaultVariants: {\n variant: \"default\",\n inset: false\n }\n});\n\nexport type ContextMenuItemProps = JSX.ButtonHTMLAttributes<HTMLButtonElement> &\n VariantProps<typeof contextMenuItem> & {\n children?: ComponentChildren;\n };\n\nexport const ContextMenuItem = ({\n inset = false,\n variant = \"default\",\n class: className,\n children,\n onClick,\n ...rest\n}: ContextMenuItemProps) => {\n const { setOpen } = useContextMenu();\n return (\n <button\n type=\"button\"\n role=\"menuitem\"\n data-slot=\"context-menu-item\"\n data-inset={inset ? \"true\" : undefined}\n data-variant={variant}\n class={contextMenuItem({ inset, variant, class: className as string | undefined })}\n onClick={(event) => {\n onClick?.(event);\n if (event.defaultPrevented) return;\n setOpen(false);\n }}\n {...rest}\n >\n {children}\n </button>\n );\n};\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\n\nexport type ContextMenuLabelProps = JSX.HTMLAttributes<HTMLDivElement> & {\n children?: ComponentChildren;\n inset?: boolean;\n};\n\nexport const ContextMenuLabel = ({\n inset = false,\n class: className,\n children,\n ...rest\n}: ContextMenuLabelProps) => (\n <div\n data-slot=\"context-menu-label\"\n data-inset={inset ? \"true\" : undefined}\n class={cn(\n \"text-muted-foreground px-2 py-1.5 text-xs font-medium\",\n inset && \"ps-8\",\n className\n )}\n {...rest}\n >\n {children}\n </div>\n);\n","import { createContext } from \"preact\";\nimport { useContext } from \"preact/hooks\";\nimport type { ComponentChildren } from \"preact\";\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 { useState } from \"preact/hooks\";\nimport type { ComponentChildren, JSX } from \"preact\";\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 class=\"pointer-events-none absolute start-2 flex size-3.5 items-center justify-center\" aria-hidden>\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 = ({ class: className, children, ...rest }: 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 { createContext } from \"preact\";\nimport { useContext, useMemo } from \"preact/hooks\";\nimport type { ComponentChildren } from \"preact\";\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 { useRef } from \"preact/hooks\";\nimport type { ComponentChildren, JSX } from \"preact\";\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"]}
@@ -0,0 +1,53 @@
1
+ import { cn } from './chunk-OMXWBB67.js';
2
+ import { jsx } from 'preact/jsx-runtime';
3
+
4
+ var TableHeader = ({ class: className, children, ...rest }) => /* @__PURE__ */ jsx("thead", { "data-slot": "table-header", class: cn("[&_tr]:border-b", className), ...rest, children });
5
+ var TableBody = ({ class: className, children, ...rest }) => /* @__PURE__ */ jsx("tbody", { "data-slot": "table-body", class: cn("[&_tr:last-child]:border-0", className), ...rest, children });
6
+ var TableFooter = ({ class: className, children, ...rest }) => /* @__PURE__ */ jsx(
7
+ "tfoot",
8
+ {
9
+ "data-slot": "table-footer",
10
+ class: cn("bg-muted/50 border-t font-medium [&>tr]:last:border-b-0", className),
11
+ ...rest,
12
+ children
13
+ }
14
+ );
15
+ var TableRow = ({ class: className, children, ...rest }) => /* @__PURE__ */ jsx(
16
+ "tr",
17
+ {
18
+ "data-slot": "table-row",
19
+ class: cn("border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted", className),
20
+ ...rest,
21
+ children
22
+ }
23
+ );
24
+ var TableHead = ({ class: className, children, ...rest }) => /* @__PURE__ */ jsx(
25
+ "th",
26
+ {
27
+ "data-slot": "table-head",
28
+ class: cn(
29
+ "text-muted-foreground h-10 px-2 text-left align-middle font-medium [&:has([role=checkbox])]:pr-0",
30
+ className
31
+ ),
32
+ ...rest,
33
+ children
34
+ }
35
+ );
36
+ var TableCell = ({ class: className, children, colSpan, ...rest }) => /* @__PURE__ */ jsx(
37
+ "td",
38
+ {
39
+ "data-slot": "table-cell",
40
+ class: cn(
41
+ "p-2 align-middle [&:has([data-slot=checkbox])]:pr-0 [&:has([role=checkbox])]:pr-0",
42
+ className
43
+ ),
44
+ colSpan,
45
+ ...rest,
46
+ children
47
+ }
48
+ );
49
+ var TableCaption = ({ class: className, children, ...rest }) => /* @__PURE__ */ jsx("caption", { "data-slot": "table-caption", class: cn("text-muted-foreground mt-4 text-sm", className), ...rest, children });
50
+
51
+ export { TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow };
52
+ //# sourceMappingURL=chunk-S6TO62GJ.js.map
53
+ //# sourceMappingURL=chunk-S6TO62GJ.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/table/TableHeader.tsx","../src/components/table/TableBody.tsx","../src/components/table/TableFooter.tsx","../src/components/table/TableRow.tsx","../src/components/table/TableHead.tsx","../src/components/table/TableCell.tsx","../src/components/table/TableCaption.tsx"],"names":["jsx"],"mappings":";;;AAOO,IAAM,WAAA,GAAc,CAAC,EAAE,KAAA,EAAO,WAAW,QAAA,EAAU,GAAG,MAAK,qBAChE,GAAA,CAAC,WAAM,WAAA,EAAU,cAAA,EAAe,OAAO,EAAA,CAAG,iBAAA,EAAmB,SAAS,CAAA,EAAI,GAAG,MAC1E,QAAA,EACH;ACHK,IAAM,SAAA,GAAY,CAAC,EAAE,KAAA,EAAO,WAAW,QAAA,EAAU,GAAG,MAAK,qBAC9DA,IAAC,OAAA,EAAA,EAAM,WAAA,EAAU,cAAa,KAAA,EAAO,EAAA,CAAG,8BAA8B,SAAS,CAAA,EAAI,GAAG,IAAA,EACnF,QAAA,EACH;ACHK,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,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,CAAG,6EAAA,EAA+E,SAAS,CAAA;AAAA,IACjG,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;ACRK,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,YAAA,GAAe,CAAC,EAAE,KAAA,EAAO,WAAW,QAAA,EAAU,GAAG,MAAK,qBACjEA,IAAC,SAAA,EAAA,EAAQ,WAAA,EAAU,iBAAgB,KAAA,EAAO,EAAA,CAAG,sCAAsC,SAAS,CAAA,EAAI,GAAG,IAAA,EAChG,QAAA,EACH","file":"chunk-S6TO62GJ.js","sourcesContent":["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\n","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\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\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(\"border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted\", className)}\n {...rest}\n >\n {children}\n </tr>\n);\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\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\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 data-slot=\"table-caption\" class={cn(\"text-muted-foreground mt-4 text-sm\", className)} {...rest}>\n {children}\n </caption>\n);\n\n"]}