@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 @@
1
+ {"version":3,"sources":["../src/components/combobox/combobox-utils.ts","../src/components/combobox/combobox-context.tsx","../src/components/combobox/ComboboxTrigger.tsx","../src/components/combobox/ComboboxValue.tsx","../src/components/combobox/ComboboxContent.tsx","../src/components/combobox/ComboboxCommand.tsx","../src/components/combobox/ComboboxInput.tsx","../src/components/combobox/ComboboxList.tsx","../src/components/combobox/ComboboxItem.tsx","../src/components/combobox/ComboboxChip.tsx","../src/components/combobox/ComboboxChips.tsx","../src/components/combobox/ComboboxChipsInput.tsx","../src/components/combobox/ComboboxClear.tsx","../src/components/combobox/ComboboxInlineInput.tsx","../src/components/combobox/ComboboxSelect.tsx"],"names":["jsx","useLayoutEffect","jsxs","Fragment"],"mappings":"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","file":"chunk-QJT5UAL2.js","sourcesContent":["/** Flatten grouped `{ items: T[] }[]` shapes into leaf rows for selection lookup. */\nexport function flattenComboboxItems(items: readonly unknown[]): unknown[] {\n const out: unknown[] = [];\n for (const el of items) {\n if (el !== null && typeof el === \"object\" && \"items\" in el) {\n const sub = (el as { items: unknown }).items;\n if (Array.isArray(sub)) {\n out.push(...sub);\n continue;\n }\n }\n out.push(el);\n }\n return out;\n}\n\nexport function defaultComboboxItemKey(item: unknown): string {\n if (typeof item === \"string\" || typeof item === \"number\") return String(item);\n if (item && typeof item === \"object\" && \"value\" in item) {\n const v = (item as { value: unknown }).value;\n return v === undefined || v === null ? \"\" : String(v);\n }\n return JSON.stringify(item);\n}\n\nexport function defaultComboboxItemString(item: unknown, custom?: (item: unknown) => string): string {\n if (custom) return custom(item);\n if (typeof item === \"string\") return item;\n if (item && typeof item === \"object\" && \"label\" in item) {\n const l = (item as { label: unknown }).label;\n return l === undefined || l === null ? \"\" : String(l);\n }\n return String(item);\n}\n","import { signal, type Signal } from \"@preact/signals\";\nimport { createContext } from \"preact\";\nimport { useCallback, useContext, useLayoutEffect, useMemo, useRef, useState } from \"preact/hooks\";\nimport type { ComponentChildren, JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\nimport { Popover } from \"../popover/Popover\";\nimport {\n defaultComboboxItemKey,\n defaultComboboxItemString,\n flattenComboboxItems\n} from \"./combobox-utils\";\n\nexport type ComboboxCommandNav = {\n moveHighlight: (delta: number) => void;\n activateHighlighted: () => void;\n};\n\nfunction normalizeInitialKeys(multiple: boolean, defaultValue: string | string[] | undefined): string[] {\n if (defaultValue === undefined || defaultValue === \"\") return [];\n if (multiple) return Array.isArray(defaultValue) ? [...defaultValue] : [defaultValue];\n return typeof defaultValue === \"string\" ? [defaultValue] : [];\n}\n\nfunction keysFromValueProp(multiple: boolean, valueProp: string | string[] | undefined): string[] {\n if (valueProp === undefined) return [];\n if (multiple) return Array.isArray(valueProp) ? [...valueProp] : [];\n return typeof valueProp === \"string\" && valueProp ? [valueProp] : [];\n}\n\nexport type ComboboxContextValue = {\n items: readonly unknown[];\n leafItems: unknown[];\n itemToString: (item: unknown) => string;\n itemKey: (item: unknown) => string;\n selectedKeys: string[];\n /** First selected key; empty string if none (single-select ergonomics). */\n selectedKey: string;\n multiple: boolean;\n isSelected: (key: string) => boolean;\n selectByItem: (item: unknown) => void;\n toggleByItem: (item: unknown) => void;\n removeKey: (key: string) => void;\n clearSelection: () => void;\n placeholder: string;\n disabled: boolean;\n liftedFilter: boolean;\n filterQuery: Signal<string> | null;\n hasVisibleItems: Signal<boolean> | null;\n autoHighlight: boolean;\n showClear: boolean;\n closeOnSelect: boolean;\n comboboxListRef: { current: HTMLDivElement | null };\n commandNavRef: { current: ComboboxCommandNav | null };\n};\n\nconst ComboboxContext = createContext<ComboboxContextValue | null>(null);\n\nexport const useCombobox = () => {\n const ctx = useContext(ComboboxContext);\n if (!ctx) throw new Error(\"Combobox components must be used within Combobox\");\n return ctx;\n};\n\nexport function comboboxSelectionLabel(ctx: ComboboxContextValue): string {\n if (ctx.selectedKeys.length === 0) return \"\";\n const labels = ctx.selectedKeys.map((k) => {\n const it = ctx.leafItems.find((i) => ctx.itemKey(i) === k);\n return it !== undefined ? ctx.itemToString(it) : k;\n });\n return labels.join(\", \");\n}\n\nexport type ComboboxProps = Omit<JSX.HTMLAttributes<HTMLDivElement>, \"children\"> & {\n items?: readonly unknown[];\n itemToStringValue?: (item: unknown) => string;\n itemKey?: (item: unknown) => string;\n value?: string | string[];\n defaultValue?: string | string[];\n /** Emits `string` when `multiple` is false, else `string[]`. */\n onValueChange?: (value: string | string[]) => void;\n placeholder?: string;\n disabled?: boolean;\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n multiple?: boolean;\n /** Share filter text between trigger input and `Command` (Base UI–style single input + list in popover). */\n liftedFilter?: boolean;\n /** Highlight first match and enable ArrowUp/Down + Enter in filter inputs (requires `ComboboxCommand autoHighlight` or preset). */\n autoHighlight?: boolean;\n showClear?: boolean;\n /** When `multiple`, defaults to `false`; when single, defaults to `true`. */\n closeOnSelect?: boolean;\n children?: ComponentChildren;\n};\n\nexport const Combobox = ({\n items = [],\n itemToStringValue,\n itemKey: itemKeyProp,\n value: valueProp,\n defaultValue,\n onValueChange,\n placeholder = \"Select…\",\n disabled = false,\n open: openProp,\n defaultOpen = false,\n onOpenChange,\n multiple: multipleProp = false,\n liftedFilter = false,\n autoHighlight = false,\n showClear = false,\n closeOnSelect: closeOnSelectProp,\n class: className,\n children,\n ...rest\n}: ComboboxProps) => {\n const multiple = Boolean(multipleProp);\n const closeOnSelect = closeOnSelectProp ?? !multiple;\n\n const itemToString = useMemo(\n () => (item: unknown) => defaultComboboxItemString(item, itemToStringValue),\n [itemToStringValue]\n );\n const itemKey = useMemo(\n () => (item: unknown) => (itemKeyProp ? itemKeyProp(item) : defaultComboboxItemKey(item)),\n [itemKeyProp]\n );\n const leafItems = useMemo(() => flattenComboboxItems(items), [items]);\n\n const isValueControlled = valueProp !== undefined;\n const [internalKeys, setInternalKeys] = useState<string[]>(() => normalizeInitialKeys(multiple, defaultValue));\n\n const selectedKeys = isValueControlled ? keysFromValueProp(multiple, valueProp) : internalKeys;\n const selectedKey = selectedKeys[0] ?? \"\";\n\n const filterQuery = useMemo(() => (liftedFilter ? signal(\"\") : null), [liftedFilter]);\n const hasVisibleItemsSig = useMemo(() => (liftedFilter ? signal(true) : null), [liftedFilter]);\n const comboboxListRef = useMemo(() => ({ current: null as HTMLDivElement | null }), []);\n const commandNavRef = useMemo(() => ({ current: null as ComboboxCommandNav | null }), []);\n\n const isOpenRef = useRef(false);\n const selectedKeysRef = useRef(selectedKeys);\n selectedKeysRef.current = selectedKeys;\n\n const emitKeys = useCallback(\n (next: string[]) => {\n if (!isValueControlled) setInternalKeys(next);\n if (multiple) onValueChange?.(next);\n else onValueChange?.(next[0] ?? \"\");\n },\n [isValueControlled, multiple, onValueChange]\n );\n\n const selectByItem = useCallback(\n (item: unknown) => {\n const key = itemKey(item);\n emitKeys(key ? [key] : []);\n },\n [itemKey, emitKeys]\n );\n\n const toggleByItem = useCallback(\n (item: unknown) => {\n const key = itemKey(item);\n const exists = selectedKeysRef.current.includes(key);\n const next = exists ? selectedKeysRef.current.filter((k) => k !== key) : [...selectedKeysRef.current, key];\n emitKeys(next);\n },\n [itemKey, emitKeys]\n );\n\n const removeKey = useCallback(\n (key: string) => {\n emitKeys(selectedKeysRef.current.filter((k) => k !== key));\n },\n [emitKeys]\n );\n\n const clearSelection = useCallback(() => {\n emitKeys([]);\n }, [emitKeys]);\n\n const isSelected = useCallback(\n (key: string) => {\n return selectedKeys.includes(key);\n },\n [selectedKeys]\n );\n\n const handleOpenChange = useCallback(\n (open: boolean) => {\n isOpenRef.current = open;\n onOpenChange?.(open);\n if (!liftedFilter || !filterQuery) return;\n if (open) {\n filterQuery.value = \"\";\n } else if (multiple) {\n filterQuery.value = \"\";\n } else {\n const k = selectedKeysRef.current[0];\n if (!k) filterQuery.value = \"\";\n else {\n const it = leafItems.find((i) => itemKey(i) === k);\n filterQuery.value = it !== undefined ? itemToString(it) : k;\n }\n }\n },\n [liftedFilter, filterQuery, onOpenChange, multiple, leafItems, itemKey, itemToString]\n );\n\n useLayoutEffect(() => {\n if (!liftedFilter || !filterQuery || multiple || isOpenRef.current) return;\n const k = selectedKeys[0];\n if (!k) {\n filterQuery.value = \"\";\n return;\n }\n const it = leafItems.find((i) => itemKey(i) === k);\n filterQuery.value = it !== undefined ? itemToString(it) : k;\n }, [liftedFilter, filterQuery, multiple, selectedKeys, leafItems, itemKey, itemToString]);\n\n const contextValue = useMemo<ComboboxContextValue>(\n () => ({\n items,\n leafItems,\n itemToString,\n itemKey,\n selectedKeys,\n selectedKey,\n multiple,\n isSelected,\n selectByItem,\n toggleByItem,\n removeKey,\n clearSelection,\n placeholder,\n disabled,\n liftedFilter,\n filterQuery,\n hasVisibleItems: hasVisibleItemsSig,\n autoHighlight,\n showClear,\n closeOnSelect,\n comboboxListRef,\n commandNavRef\n }),\n [\n items,\n leafItems,\n itemToString,\n itemKey,\n selectedKeys,\n selectedKey,\n multiple,\n isSelected,\n selectByItem,\n toggleByItem,\n removeKey,\n clearSelection,\n placeholder,\n disabled,\n liftedFilter,\n filterQuery,\n hasVisibleItemsSig,\n autoHighlight,\n showClear,\n closeOnSelect,\n comboboxListRef,\n commandNavRef\n ]\n );\n\n return (\n <ComboboxContext.Provider value={contextValue}>\n <div data-slot=\"combobox\" class={cn(\"relative\", className)} {...rest}>\n <Popover open={openProp} defaultOpen={defaultOpen} onOpenChange={handleOpenChange}>\n {children}\n </Popover>\n </div>\n </ComboboxContext.Provider>\n );\n};\n","import { cn } from \"../../lib/utils\";\nimport { PopoverTrigger, type PopoverTriggerProps } from \"../popover/PopoverTrigger\";\nimport { useCombobox } from \"./combobox-context\";\n\nexport const ComboboxTrigger = ({ class: className, disabled, ...rest }: PopoverTriggerProps) => {\n const ctx = useCombobox();\n return (\n <PopoverTrigger\n class={cn(\n \"border-input bg-background hover:bg-muted/50 flex h-8 w-full min-w-44 items-center justify-between gap-2 rounded-md border px-3 py-1 text-start text-sm font-normal shadow-xs outline-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50\",\n className\n )}\n disabled={disabled ?? ctx.disabled}\n {...rest}\n />\n );\n};\n\nexport type { PopoverTriggerProps as ComboboxTriggerProps };\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\nimport { comboboxSelectionLabel, useCombobox } from \"./combobox-context\";\n\nexport type ComboboxValueProps = Omit<JSX.HTMLAttributes<HTMLSpanElement>, \"children\"> & {\n placeholder?: string;\n children?:\n | ((state: { label: string; empty: boolean; keys: string[] }) => ComponentChildren)\n | ComponentChildren;\n};\n\nexport const ComboboxValue = ({ placeholder: placeholderProp, children, class: className, ...rest }: ComboboxValueProps) => {\n const ctx = useCombobox();\n const label = comboboxSelectionLabel(ctx);\n const empty = ctx.selectedKeys.length === 0;\n\n if (typeof children === \"function\") {\n return <>{children({ label, empty, keys: ctx.selectedKeys })}</>;\n }\n\n return (\n <span\n data-slot=\"combobox-value\"\n class={cn(\"truncate\", empty && \"text-muted-foreground\", className)}\n {...rest}\n >\n {empty ? placeholderProp ?? ctx.placeholder : label}\n </span>\n );\n};\n","import { PopoverContent, type PopoverContentProps } from \"../popover/PopoverContent\";\nimport { usePopover } from \"../popover/Popover\";\nimport { cn } from \"../../lib/utils\";\nimport { useCombobox } from \"./combobox-context\";\n\nexport const ComboboxContent = ({\n forceMount: forceMountProp,\n class: className,\n ...rest\n}: PopoverContentProps) => {\n const popover = usePopover();\n const ctx = useCombobox();\n const forceMount = forceMountProp ?? ctx.liftedFilter;\n return (\n <PopoverContent\n forceMount={forceMount}\n class={cn(\n \"w-64 max-w-[calc(100vw-1.5rem)] gap-0 overflow-hidden p-0\",\n ctx.liftedFilter &&\n !popover.open.value &&\n \"pointer-events-none invisible max-h-0 min-h-0 border-0 p-0 opacity-0 shadow-none\",\n className\n )}\n {...rest}\n />\n );\n};\n\nexport type { PopoverContentProps as ComboboxContentProps };\n","import { useLayoutEffect } from \"preact/hooks\";\nimport { Command, type CommandProps, useCommand } from \"../command/Command\";\nimport { cn } from \"../../lib/utils\";\nimport { useCombobox } from \"./combobox-context\";\n\nfunction CommandNavBridge() {\n const cmd = useCommand();\n const combo = useCombobox();\n const navRef = combo.commandNavRef;\n useLayoutEffect(() => {\n navRef.current = {\n moveHighlight: cmd.moveHighlight,\n activateHighlighted: cmd.activateHighlighted\n };\n return () => {\n navRef.current = null;\n };\n }, [cmd.moveHighlight, cmd.activateHighlighted, navRef]);\n return null;\n}\n\nexport const ComboboxCommand = ({\n autoHighlight: autoHighlightProp,\n class: className,\n children,\n ...rest\n}: CommandProps) => {\n const ctx = useCombobox();\n const query = ctx.liftedFilter && ctx.filterQuery ? ctx.filterQuery : undefined;\n const hasVis = ctx.liftedFilter && ctx.hasVisibleItems ? ctx.hasVisibleItems : undefined;\n const autoHighlight = autoHighlightProp ?? ctx.autoHighlight;\n return (\n <Command\n {...rest}\n class={cn(\"rounded-lg border-0 bg-transparent shadow-none\", className)}\n autoHighlight={autoHighlight}\n query={query}\n hasVisibleItems={hasVis}\n >\n <CommandNavBridge />\n {children}\n </Command>\n );\n};\n\nexport type { CommandProps as ComboboxCommandProps };\n","import { CommandInput, type CommandInputProps } from \"../command/CommandInput\";\nimport { cn } from \"../../lib/utils\";\n\nexport const ComboboxInput = ({ class: className, ...rest }: CommandInputProps) => (\n <CommandInput class={cn(className)} {...rest} />\n);\n\nexport type { CommandInputProps as ComboboxInputProps };\n","import type { ComponentChildren } from \"preact\";\nimport { CommandList, type CommandListProps } from \"../command/CommandList\";\nimport { useCombobox } from \"./combobox-context\";\n\nexport type ComboboxListProps = Omit<CommandListProps, \"children\"> & {\n items?: readonly unknown[];\n children: ComponentChildren | ((item: unknown, index: number) => ComponentChildren);\n};\n\nexport const ComboboxList = ({ items: itemsProp, children, onMount, ...rest }: ComboboxListProps) => {\n const ctx = useCombobox();\n const list = itemsProp !== undefined ? itemsProp : ctx.items;\n const body =\n typeof children === \"function\"\n ? list.map((item, index) => (children as (i: unknown, idx: number) => ComponentChildren)(item, index))\n : children;\n return (\n <CommandList\n {...rest}\n onMount={(el) => {\n ctx.comboboxListRef.current = el;\n onMount?.(el);\n }}\n >\n {body}\n </CommandList>\n );\n};\n","import { cn } from \"../../lib/utils\";\nimport { CommandItem, type CommandItemProps } from \"../command/CommandItem\";\nimport { usePopover } from \"../popover/Popover\";\nimport { useCombobox } from \"./combobox-context\";\n\nexport type ComboboxItemProps = Omit<CommandItemProps, \"value\" | \"onSelect\"> & {\n item: unknown;\n};\n\nexport const ComboboxItem = ({\n item,\n class: className,\n children,\n disabled,\n onClick,\n ...rest\n}: ComboboxItemProps) => {\n const ctx = useCombobox();\n const popover = usePopover();\n const filterValue = ctx.itemToString(item);\n const key = ctx.itemKey(item);\n const selected = ctx.multiple ? ctx.selectedKeys.includes(key) : ctx.selectedKey === key;\n\n return (\n <CommandItem\n value={filterValue}\n disabled={disabled}\n class={cn(selected && \"bg-accent/60\", className)}\n onSelect={() => {\n if (ctx.multiple) {\n ctx.toggleByItem(item);\n if (ctx.closeOnSelect) popover.setOpen(false);\n } else {\n ctx.selectByItem(item);\n popover.setOpen(false);\n }\n }}\n onClick={onClick}\n {...rest}\n >\n {children}\n </CommandItem>\n );\n};\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\nimport { useCombobox } from \"./combobox-context\";\n\nexport type ComboboxChipProps = Omit<JSX.HTMLAttributes<HTMLSpanElement>, \"children\"> & {\n itemKey: string;\n children?: ComponentChildren;\n};\n\nexport const ComboboxChip = ({ itemKey: chipKey, children, class: className, ...rest }: ComboboxChipProps) => {\n const ctx = useCombobox();\n return (\n <span\n data-slot=\"combobox-chip\"\n class={cn(\n \"bg-secondary text-secondary-foreground inline-flex max-w-full items-center gap-0.5 rounded-md px-2 py-0.5 text-xs\",\n className\n )}\n {...rest}\n >\n <span class=\"min-w-0 truncate\">{children}</span>\n <button\n type=\"button\"\n class=\"text-muted-foreground hover:text-foreground shrink-0 rounded p-0.5 outline-none focus-visible:ring-2 focus-visible:ring-ring/50\"\n aria-label=\"Remove\"\n onClick={(event) => {\n event.stopPropagation();\n ctx.removeKey(chipKey);\n }}\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"12\"\n height=\"12\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n aria-hidden\n >\n <path d=\"M18 6 6 18M6 6l12 12\" />\n </svg>\n </button>\n </span>\n );\n};\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\nimport { PopoverTrigger } from \"../popover/PopoverTrigger\";\n\nexport type ComboboxChipsProps = JSX.HTMLAttributes<HTMLDivElement> & {\n children?: ComponentChildren;\n};\n\n/** Multi-select trigger row: wrap chips + `ComboboxChipsInput` (with `liftedFilter`). */\nexport const ComboboxChips = ({ class: className, children, ...rest }: ComboboxChipsProps) => (\n <PopoverTrigger asChild>\n <div\n data-slot=\"combobox-chips\"\n class={cn(\n \"border-input bg-background flex min-h-8 w-full min-w-44 flex-wrap items-center gap-1 rounded-md border px-2 py-1 shadow-xs outline-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50\",\n className\n )}\n {...rest}\n >\n {children}\n </div>\n </PopoverTrigger>\n);\n","import type { JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\nimport { usePopover } from \"../popover/Popover\";\nimport { useCombobox } from \"./combobox-context\";\n\nexport type ComboboxChipsInputProps = JSX.InputHTMLAttributes<HTMLInputElement>;\n\n/** Filter field at the end of the chip row; requires `Combobox liftedFilter`. */\nexport const ComboboxChipsInput = ({\n class: className,\n onKeyDown,\n onInput,\n onFocus,\n ...rest\n}: ComboboxChipsInputProps) => {\n const ctx = useCombobox();\n const popover = usePopover();\n if (!ctx.filterQuery) {\n throw new Error(\"ComboboxChipsInput must be used with Combobox liftedFilter={true}\");\n }\n\n void ctx.filterQuery.value;\n void popover.open.value;\n\n return (\n <input\n {...rest}\n data-slot=\"combobox-chips-input\"\n class={cn(\n \"placeholder:text-muted-foreground min-w-[6rem] flex-1 border-0 bg-transparent px-1 py-1 text-sm outline-none\",\n className\n )}\n value={ctx.filterQuery.value}\n onInput={(event) => {\n ctx.filterQuery!.value = event.currentTarget.value;\n popover.setOpen(true);\n onInput?.(event);\n }}\n onFocus={(event) => {\n onFocus?.(event);\n popover.setOpen(true);\n }}\n onKeyDown={(event) => {\n const nav = ctx.commandNavRef.current;\n if (ctx.autoHighlight && nav) {\n if (event.key === \"ArrowDown\") {\n event.preventDefault();\n popover.setOpen(true);\n nav.moveHighlight(1);\n return;\n }\n if (event.key === \"ArrowUp\") {\n event.preventDefault();\n popover.setOpen(true);\n nav.moveHighlight(-1);\n return;\n }\n if (event.key === \"Enter\") {\n event.preventDefault();\n if (popover.open.value) nav.activateHighlighted();\n return;\n }\n }\n onKeyDown?.(event);\n }}\n />\n );\n};\n","import type { JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\nimport { useCombobox } from \"./combobox-context\";\n\nexport type ComboboxClearProps = JSX.ButtonHTMLAttributes<HTMLButtonElement>;\n\nexport const ComboboxClear = ({ class: className, onClick, ...rest }: ComboboxClearProps) => {\n const ctx = useCombobox();\n const has = ctx.selectedKeys.length > 0;\n if (!has || !ctx.showClear) return null;\n\n return (\n <button\n type=\"button\"\n data-slot=\"combobox-clear\"\n aria-label=\"Clear selection\"\n class={cn(\n \"text-muted-foreground hover:text-foreground inline-flex size-7 shrink-0 items-center justify-center rounded-md outline-none focus-visible:ring-2 focus-visible:ring-ring/50\",\n className\n )}\n onClick={(event) => {\n onClick?.(event);\n if (event.defaultPrevented) return;\n ctx.clearSelection();\n if (ctx.filterQuery) ctx.filterQuery.value = \"\";\n }}\n {...rest}\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"14\"\n height=\"14\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n aria-hidden\n >\n <path d=\"M18 6 6 18M6 6l12 12\" />\n </svg>\n </button>\n );\n};\n","import type { JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\nimport { usePopover } from \"../popover/Popover\";\nimport { useCombobox } from \"./combobox-context\";\n\nexport type ComboboxInlineInputProps = JSX.InputHTMLAttributes<HTMLInputElement>;\n\n/**\n * Base UI–style trigger: the visible field is the filter input; the list opens in `ComboboxContent`.\n * Requires `Combobox liftedFilter` (and usually `ComboboxTrigger asChild` wrapping a positioned container).\n */\nexport const ComboboxInlineInput = ({\n class: className,\n onKeyDown,\n onInput,\n onFocus,\n ...rest\n}: ComboboxInlineInputProps) => {\n const ctx = useCombobox();\n const popover = usePopover();\n if (!ctx.filterQuery) {\n throw new Error(\"ComboboxInlineInput must be used with Combobox liftedFilter={true}\");\n }\n\n void ctx.filterQuery.value;\n void popover.open.value;\n\n return (\n <input\n {...rest}\n data-slot=\"combobox-inline-input\"\n class={cn(\n \"border-input bg-background placeholder:text-muted-foreground flex h-10 w-full min-w-0 rounded-md border px-3 py-2 text-sm shadow-xs outline-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50\",\n className\n )}\n value={ctx.filterQuery.value}\n onInput={(event) => {\n ctx.filterQuery!.value = event.currentTarget.value;\n popover.setOpen(true);\n onInput?.(event);\n }}\n onFocus={(event) => {\n onFocus?.(event);\n popover.setOpen(true);\n }}\n onKeyDown={(event) => {\n const nav = ctx.commandNavRef.current;\n if (ctx.autoHighlight && nav) {\n if (event.key === \"ArrowDown\") {\n event.preventDefault();\n popover.setOpen(true);\n nav.moveHighlight(1);\n return;\n }\n if (event.key === \"ArrowUp\") {\n event.preventDefault();\n popover.setOpen(true);\n nav.moveHighlight(-1);\n return;\n }\n if (event.key === \"Enter\") {\n event.preventDefault();\n if (popover.open.value) nav.activateHighlighted();\n return;\n }\n }\n onKeyDown?.(event);\n }}\n />\n );\n};\n\n","import { cn } from \"../../lib/utils\";\nimport { Combobox, type ComboboxProps } from \"./combobox-context\";\nimport { ComboboxChip } from \"./ComboboxChip\";\nimport { ComboboxChips } from \"./ComboboxChips\";\nimport { ComboboxChipsInput } from \"./ComboboxChipsInput\";\nimport { ComboboxClear } from \"./ComboboxClear\";\nimport { ComboboxCommand } from \"./ComboboxCommand\";\nimport { ComboboxContent } from \"./ComboboxContent\";\nimport { ComboboxEmpty } from \"./ComboboxEmpty\";\nimport { ComboboxInlineInput } from \"./ComboboxInlineInput\";\nimport { ComboboxInput } from \"./ComboboxInput\";\nimport { ComboboxItem } from \"./ComboboxItem\";\nimport { ComboboxList } from \"./ComboboxList\";\nimport { ComboboxTrigger } from \"./ComboboxTrigger\";\nimport { ComboboxValue } from \"./ComboboxValue\";\n\nexport type ComboboxOption = { label: string; value: string };\n\nconst ChevronDownIcon = () => (\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 aria-hidden\n class=\"shrink-0 opacity-50\"\n >\n <path d=\"m6 9 6 6 6-6\" />\n </svg>\n);\n\nexport type ComboboxSelectProps = Omit<ComboboxProps, \"items\" | \"children\" | \"itemKey\" | \"itemToStringValue\"> & {\n options: ComboboxOption[];\n searchPlaceholder?: string;\n emptyText?: string;\n triggerClass?: string;\n};\n\n/** Preset around `{ label, value }[]`: button trigger, inline input trigger, multi chips, clear, and auto-highlight. */\nexport const ComboboxSelect = ({\n options,\n searchPlaceholder = \"Search…\",\n emptyText = \"No results found.\",\n triggerClass,\n showClear = false,\n autoHighlight = false,\n liftedFilter = false,\n multiple = false,\n class: className,\n placeholder,\n ...rest\n}: ComboboxSelectProps) => {\n const useLifted = Boolean(liftedFilter || multiple);\n\n if (multiple) {\n return (\n <Combobox\n class={className}\n items={options}\n itemKey={(o) => (o as ComboboxOption).value}\n itemToStringValue={(o) => (o as ComboboxOption).label}\n multiple\n liftedFilter\n autoHighlight={autoHighlight}\n showClear={showClear}\n placeholder={placeholder}\n {...rest}\n >\n <ComboboxChips class={triggerClass}>\n <ComboboxValue placeholder={placeholder ?? \"Select…\"}>\n {({ keys, empty }) => (\n <>\n {keys.map((k) => {\n const o = options.find((x) => x.value === k);\n if (!o) return null;\n return (\n <ComboboxChip key={k} itemKey={k}>\n {o.label}\n </ComboboxChip>\n );\n })}\n {empty ? (\n <span class=\"text-muted-foreground px-1 py-0.5 text-sm\">{placeholder ?? \"Select…\"}</span>\n ) : null}\n </>\n )}\n </ComboboxValue>\n {showClear ? <ComboboxClear class=\"shrink-0\" /> : null}\n <ComboboxChipsInput placeholder={searchPlaceholder} />\n </ComboboxChips>\n <ComboboxContent>\n <ComboboxCommand>\n <ComboboxEmpty>{emptyText}</ComboboxEmpty>\n <ComboboxList>\n {(opt) => {\n const o = opt as ComboboxOption;\n return (\n <ComboboxItem key={o.value} item={o}>\n {o.label}\n </ComboboxItem>\n );\n }}\n </ComboboxList>\n </ComboboxCommand>\n </ComboboxContent>\n </Combobox>\n );\n }\n\n if (useLifted) {\n return (\n <Combobox\n class={className}\n items={options}\n itemKey={(o) => (o as ComboboxOption).value}\n itemToStringValue={(o) => (o as ComboboxOption).label}\n liftedFilter\n autoHighlight={autoHighlight}\n showClear={showClear}\n placeholder={placeholder}\n {...rest}\n >\n <ComboboxTrigger asChild>\n <div class={cn(\"relative flex w-full min-w-44 items-center\", triggerClass)}>\n <ComboboxInlineInput placeholder={searchPlaceholder} class=\"pe-16\" />\n {showClear ? <ComboboxClear class=\"absolute end-9 top-1/2 z-10 -translate-y-1/2\" /> : null}\n <span class=\"pointer-events-none absolute end-3 top-1/2 -translate-y-1/2\">\n <ChevronDownIcon />\n </span>\n </div>\n </ComboboxTrigger>\n <ComboboxContent>\n <ComboboxCommand>\n <ComboboxEmpty>{emptyText}</ComboboxEmpty>\n <ComboboxList>\n {(opt) => {\n const o = opt as ComboboxOption;\n return (\n <ComboboxItem key={o.value} item={o}>\n {o.label}\n </ComboboxItem>\n );\n }}\n </ComboboxList>\n </ComboboxCommand>\n </ComboboxContent>\n </Combobox>\n );\n }\n\n return (\n <Combobox\n class={className}\n items={options}\n itemKey={(o) => (o as ComboboxOption).value}\n itemToStringValue={(o) => (o as ComboboxOption).label}\n autoHighlight={autoHighlight}\n showClear={showClear}\n placeholder={placeholder}\n {...rest}\n >\n <ComboboxTrigger class={cn(triggerClass)}>\n <ComboboxValue />\n <span class=\"ms-auto flex shrink-0 items-center gap-0.5\">\n {showClear ? <ComboboxClear /> : null}\n <ChevronDownIcon />\n </span>\n </ComboboxTrigger>\n <ComboboxContent>\n <ComboboxCommand>\n <ComboboxInput placeholder={searchPlaceholder} />\n <ComboboxEmpty>{emptyText}</ComboboxEmpty>\n <ComboboxList>\n {(opt) => {\n const o = opt as ComboboxOption;\n return (\n <ComboboxItem key={o.value} item={o}>\n {o.label}\n </ComboboxItem>\n );\n }}\n </ComboboxList>\n </ComboboxCommand>\n </ComboboxContent>\n </Combobox>\n );\n};\n"]}
@@ -0,0 +1,83 @@
1
+ import { Button } from './chunk-UGQ756Z6.js';
2
+ import { cn } from './chunk-OMXWBB67.js';
3
+ import { useState, useEffect } from 'preact/hooks';
4
+ import { jsx, jsxs } from 'preact/jsx-runtime';
5
+
6
+ var SunIcon = ({ class: className }) => /* @__PURE__ */ jsxs(
7
+ "svg",
8
+ {
9
+ class: cn("size-4 shrink-0", className),
10
+ viewBox: "0 0 24 24",
11
+ fill: "none",
12
+ stroke: "currentColor",
13
+ "stroke-width": "2",
14
+ "stroke-linecap": "round",
15
+ "stroke-linejoin": "round",
16
+ "aria-hidden": "true",
17
+ children: [
18
+ /* @__PURE__ */ jsx("circle", { cx: "12", cy: "12", r: "4" }),
19
+ /* @__PURE__ */ jsx("path", { d: "M12 2v2" }),
20
+ /* @__PURE__ */ jsx("path", { d: "M12 20v2" }),
21
+ /* @__PURE__ */ jsx("path", { d: "m4.93 4.93 1.41 1.41" }),
22
+ /* @__PURE__ */ jsx("path", { d: "m17.66 17.66 1.41 1.41" }),
23
+ /* @__PURE__ */ jsx("path", { d: "M2 12h2" }),
24
+ /* @__PURE__ */ jsx("path", { d: "M20 12h2" }),
25
+ /* @__PURE__ */ jsx("path", { d: "m6.34 17.66-1.41 1.41" }),
26
+ /* @__PURE__ */ jsx("path", { d: "m19.07 4.93-1.41 1.41" })
27
+ ]
28
+ }
29
+ );
30
+ var MoonIcon = ({ class: className }) => /* @__PURE__ */ jsx(
31
+ "svg",
32
+ {
33
+ class: cn("size-4 shrink-0", className),
34
+ viewBox: "0 0 24 24",
35
+ fill: "none",
36
+ stroke: "currentColor",
37
+ "stroke-width": "2",
38
+ "stroke-linecap": "round",
39
+ "stroke-linejoin": "round",
40
+ "aria-hidden": "true",
41
+ children: /* @__PURE__ */ jsx("path", { d: "M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9Z" })
42
+ }
43
+ );
44
+ var resolveInitialDarkMode = () => {
45
+ if (typeof window === "undefined") return false;
46
+ const stored = window.localStorage.getItem("theme");
47
+ if (stored === "dark") return true;
48
+ if (stored === "light") return false;
49
+ return window.matchMedia("(prefers-color-scheme: dark)").matches;
50
+ };
51
+ var ThemeToggle = ({ children, onClick, ...rest }) => {
52
+ const [darkMode, setDarkMode] = useState(resolveInitialDarkMode);
53
+ useEffect(() => {
54
+ document.documentElement.classList.toggle("dark", darkMode);
55
+ if (typeof window !== "undefined") {
56
+ window.localStorage.setItem("theme", darkMode ? "dark" : "light");
57
+ }
58
+ }, [darkMode]);
59
+ return /* @__PURE__ */ jsx(
60
+ Button,
61
+ {
62
+ type: "button",
63
+ variant: "outline",
64
+ size: "icon",
65
+ "data-slot": "theme-toggle",
66
+ "data-state": darkMode ? "dark" : "light",
67
+ "aria-label": children == null ? darkMode ? "Light mode" : "Dark mode" : void 0,
68
+ onClick: (event) => {
69
+ setDarkMode((current) => !current);
70
+ onClick?.(event);
71
+ },
72
+ ...rest,
73
+ children: children ?? (darkMode ? /* @__PURE__ */ jsx(SunIcon, {}) : /* @__PURE__ */ jsx(MoonIcon, {}))
74
+ }
75
+ );
76
+ };
77
+
78
+ // src/components/theme-toggle/index.ts
79
+ var theme_toggle_default = ThemeToggle;
80
+
81
+ export { ThemeToggle, theme_toggle_default };
82
+ //# sourceMappingURL=chunk-QRLVOM3E.js.map
83
+ //# sourceMappingURL=chunk-QRLVOM3E.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/theme-toggle/ThemeToggle.tsx","../src/components/theme-toggle/index.ts"],"names":[],"mappings":"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","file":"chunk-QRLVOM3E.js","sourcesContent":["import { useEffect, useState } from \"preact/hooks\";\nimport type { ComponentChildren, JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\nimport { Button } from \"../button\";\n\nexport type ThemeToggleProps = Omit<JSX.ButtonHTMLAttributes<HTMLButtonElement>, \"class\"> & {\n class?: string;\n children?: ComponentChildren;\n};\n\nconst SunIcon = ({ class: className }: { class?: string }) => (\n <svg\n class={cn(\"size-4 shrink-0\", className)}\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 >\n <circle cx=\"12\" cy=\"12\" r=\"4\" />\n <path d=\"M12 2v2\" />\n <path d=\"M12 20v2\" />\n <path d=\"m4.93 4.93 1.41 1.41\" />\n <path d=\"m17.66 17.66 1.41 1.41\" />\n <path d=\"M2 12h2\" />\n <path d=\"M20 12h2\" />\n <path d=\"m6.34 17.66-1.41 1.41\" />\n <path d=\"m19.07 4.93-1.41 1.41\" />\n </svg>\n);\n\nconst MoonIcon = ({ class: className }: { class?: string }) => (\n <svg\n class={cn(\"size-4 shrink-0\", className)}\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 >\n <path d=\"M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9Z\" />\n </svg>\n);\n\nconst resolveInitialDarkMode = () => {\n if (typeof window === \"undefined\") return false;\n const stored = window.localStorage.getItem(\"theme\");\n if (stored === \"dark\") return true;\n if (stored === \"light\") return false;\n return window.matchMedia(\"(prefers-color-scheme: dark)\").matches;\n};\n\nexport const ThemeToggle = ({ children, onClick, ...rest }: ThemeToggleProps) => {\n const [darkMode, setDarkMode] = useState<boolean>(resolveInitialDarkMode);\n\n useEffect(() => {\n document.documentElement.classList.toggle(\"dark\", darkMode);\n if (typeof window !== \"undefined\") {\n window.localStorage.setItem(\"theme\", darkMode ? \"dark\" : \"light\");\n }\n }, [darkMode]);\n\n return (\n <Button\n type=\"button\"\n variant=\"outline\"\n size=\"icon\"\n data-slot=\"theme-toggle\"\n data-state={darkMode ? \"dark\" : \"light\"}\n aria-label={children == null ? (darkMode ? \"Light mode\" : \"Dark mode\") : undefined}\n onClick={(event) => {\n setDarkMode((current) => !current);\n onClick?.(event);\n }}\n {...rest}\n >\n {children ?? (darkMode ? <SunIcon /> : <MoonIcon />)}\n </Button>\n );\n};\n\n","import { ThemeToggle } from \"./ThemeToggle\";\n\nexport { ThemeToggle };\n\nexport default ThemeToggle;\n"]}
@@ -0,0 +1,26 @@
1
+ import { signal } from '@preact/signals';
2
+ import { jsx, jsxs } from 'preact/jsx-runtime';
3
+
4
+ // src/components/sonner/sonner-store.ts
5
+ var sonnerToasts = signal([]);
6
+ var nextId = () => `sonner-${Math.random().toString(36).slice(2, 10)}`;
7
+ var sonner = (args) => {
8
+ const toast = { id: nextId(), title: args.title, description: args.description };
9
+ sonnerToasts.value = [...sonnerToasts.value, toast];
10
+ return toast.id;
11
+ };
12
+ var dismissSonner = (id) => {
13
+ sonnerToasts.value = sonnerToasts.value.filter((toast) => toast.id !== id);
14
+ };
15
+ var Sonner = () => /* @__PURE__ */ jsx("div", { "data-slot": "sonner", class: "fixed right-4 bottom-4 z-[100] grid gap-2", children: sonnerToasts.value.map((toast) => /* @__PURE__ */ jsxs("div", { class: "min-w-64 rounded-md border bg-popover p-3 shadow-md", children: [
16
+ /* @__PURE__ */ jsx("div", { class: "text-sm font-medium", children: toast.title }),
17
+ toast.description ? /* @__PURE__ */ jsx("div", { class: "mt-1 text-xs text-muted-foreground", children: toast.description }) : null,
18
+ /* @__PURE__ */ jsx("button", { type: "button", class: "mt-2 text-xs underline", onClick: () => dismissSonner(toast.id), children: "Dismiss" })
19
+ ] }, toast.id)) });
20
+
21
+ // src/components/sonner/index.ts
22
+ var sonner_default = Sonner;
23
+
24
+ export { Sonner, dismissSonner, sonner, sonner_default };
25
+ //# sourceMappingURL=chunk-RBVGV7VO.js.map
26
+ //# sourceMappingURL=chunk-RBVGV7VO.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/sonner/sonner-store.ts","../src/components/sonner/Sonner.tsx","../src/components/sonner/index.ts"],"names":[],"mappings":";;;;AAQO,IAAM,YAAA,GAAe,MAAA,CAAsB,EAAE,CAAA;AAEpD,IAAM,MAAA,GAAS,MAAM,CAAA,OAAA,EAAU,IAAA,CAAK,MAAA,EAAO,CAAE,QAAA,CAAS,EAAE,CAAA,CAAE,KAAA,CAAM,CAAA,EAAG,EAAE,CAAC,CAAA,CAAA;AAE/D,IAAM,MAAA,GAAS,CAAC,IAAA,KAAkD;AACvE,EAAA,MAAM,KAAA,GAAQ,EAAE,EAAA,EAAI,MAAA,EAAO,EAAG,OAAO,IAAA,CAAK,KAAA,EAAO,WAAA,EAAa,IAAA,CAAK,WAAA,EAAY;AAC/E,EAAA,YAAA,CAAa,KAAA,GAAQ,CAAC,GAAG,YAAA,CAAa,OAAO,KAAK,CAAA;AAClD,EAAA,OAAO,KAAA,CAAM,EAAA;AACf;AAEO,IAAM,aAAA,GAAgB,CAAC,EAAA,KAAe;AAC3C,EAAA,YAAA,CAAa,KAAA,GAAQ,aAAa,KAAA,CAAM,MAAA,CAAO,CAAC,KAAA,KAAU,KAAA,CAAM,OAAO,EAAE,CAAA;AAC3E;AClBO,IAAM,SAAS,sBACpB,GAAA,CAAC,KAAA,EAAA,EAAI,WAAA,EAAU,UAAS,KAAA,EAAM,2CAAA,EAC3B,QAAA,EAAA,YAAA,CAAa,KAAA,CAAM,IAAI,CAAC,KAAA,qBACvB,IAAA,CAAC,KAAA,EAAA,EAAmB,OAAM,qDAAA,EACxB,QAAA,EAAA;AAAA,kBAAA,GAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAM,qBAAA,EAAuB,QAAA,EAAA,KAAA,CAAM,KAAA,EAAM,CAAA;AAAA,EAC7C,KAAA,CAAM,8BAAc,GAAA,CAAC,KAAA,EAAA,EAAI,OAAM,oCAAA,EAAsC,QAAA,EAAA,KAAA,CAAM,aAAY,CAAA,GAAS,IAAA;AAAA,kBACjG,GAAA,CAAC,QAAA,EAAA,EAAO,IAAA,EAAK,QAAA,EAAS,KAAA,EAAM,wBAAA,EAAyB,OAAA,EAAS,MAAM,aAAA,CAAc,KAAA,CAAM,EAAE,CAAA,EAAG,QAAA,EAAA,SAAA,EAE7F;AAAA,CAAA,EAAA,EALQ,KAAA,CAAM,EAMhB,CACD,CAAA,EACH;;;ACRF,IAAO,cAAA,GAAQ","file":"chunk-RBVGV7VO.js","sourcesContent":["import { signal } from \"@preact/signals\";\n\nexport type SonnerToast = {\n id: string;\n title: string;\n description?: string;\n};\n\nexport const sonnerToasts = signal<SonnerToast[]>([]);\n\nconst nextId = () => `sonner-${Math.random().toString(36).slice(2, 10)}`;\n\nexport const sonner = (args: { title: string; description?: string }) => {\n const toast = { id: nextId(), title: args.title, description: args.description };\n sonnerToasts.value = [...sonnerToasts.value, toast];\n return toast.id;\n};\n\nexport const dismissSonner = (id: string) => {\n sonnerToasts.value = sonnerToasts.value.filter((toast) => toast.id !== id);\n};\n\n","import { dismissSonner, sonnerToasts } from \"./sonner-store\";\n\nexport const Sonner = () => (\n <div data-slot=\"sonner\" class=\"fixed right-4 bottom-4 z-[100] grid gap-2\">\n {sonnerToasts.value.map((toast) => (\n <div key={toast.id} class=\"min-w-64 rounded-md border bg-popover p-3 shadow-md\">\n <div class=\"text-sm font-medium\">{toast.title}</div>\n {toast.description ? <div class=\"mt-1 text-xs text-muted-foreground\">{toast.description}</div> : null}\n <button type=\"button\" class=\"mt-2 text-xs underline\" onClick={() => dismissSonner(toast.id)}>\n Dismiss\n </button>\n </div>\n ))}\n </div>\n);\n\n","import { Sonner } from \"./Sonner\";\nimport { dismissSonner, sonner } from \"./sonner-store\";\n\nexport { Sonner, dismissSonner, sonner };\n\nexport default Sonner;\n\n"]}
@@ -0,0 +1,340 @@
1
+ import { cn } from './chunk-OMXWBB67.js';
2
+ import { createContext, toChildArray, isValidElement } from 'preact';
3
+ import { useState, useLayoutEffect, useRef, useMemo, useContext } from 'preact/hooks';
4
+ import { jsx, jsxs } from 'preact/jsx-runtime';
5
+
6
+ var ScrollAreaContext = createContext(null);
7
+ var useScrollAreaContext = () => {
8
+ const ctx = useContext(ScrollAreaContext);
9
+ if (!ctx) {
10
+ throw new Error("ScrollBar and ScrollAreaCorner must be used within ScrollArea");
11
+ }
12
+ return ctx;
13
+ };
14
+ var ScrollAreaCorner = ({ class: className, ...rest }) => {
15
+ const { viewportRef } = useScrollAreaContext();
16
+ const [visible, setVisible] = useState(false);
17
+ useLayoutEffect(() => {
18
+ const el = viewportRef.current;
19
+ if (!el) return;
20
+ const check = () => {
21
+ const eps = 0.5;
22
+ const hasX = el.scrollWidth > el.clientWidth + eps;
23
+ const hasY = el.scrollHeight > el.clientHeight + eps;
24
+ setVisible(hasX && hasY);
25
+ };
26
+ check();
27
+ el.addEventListener("scroll", check, { passive: true });
28
+ const resizeObserver = new ResizeObserver(check);
29
+ resizeObserver.observe(el);
30
+ const mutationObserver = new MutationObserver(check);
31
+ mutationObserver.observe(el, { childList: true, subtree: true, characterData: true });
32
+ return () => {
33
+ el.removeEventListener("scroll", check);
34
+ resizeObserver.disconnect();
35
+ mutationObserver.disconnect();
36
+ };
37
+ }, [viewportRef]);
38
+ if (!visible) return null;
39
+ return /* @__PURE__ */ jsx(
40
+ "div",
41
+ {
42
+ "data-slot": "scroll-area-corner",
43
+ "aria-hidden": "true",
44
+ class: cn(
45
+ "pointer-events-none absolute bottom-1 right-1 z-[1] size-2.5 rounded-sm bg-border/45",
46
+ className
47
+ ),
48
+ ...rest
49
+ }
50
+ );
51
+ };
52
+ var MIN_THUMB_SIZE = 18;
53
+ var TRACK_PADDING = 2;
54
+ var ScrollBar = ({
55
+ class: className,
56
+ orientation = "vertical",
57
+ onPointerDown: onPointerDownProp,
58
+ ...rest
59
+ }) => {
60
+ const { viewportRef } = useScrollAreaContext();
61
+ const trackRef = useRef(null);
62
+ const thumbRef = useRef(null);
63
+ const metricsRef = useRef({
64
+ thumbSize: 0,
65
+ maxScroll: 0,
66
+ maxThumbTravel: 0,
67
+ viewportSize: 0,
68
+ scrollSize: 0
69
+ });
70
+ const dragRef = useRef(null);
71
+ const [thumb, setThumb] = useState({ size: 0, offset: 0, hidden: true });
72
+ useLayoutEffect(() => {
73
+ const scrollEl = viewportRef.current;
74
+ const track = trackRef.current;
75
+ if (!scrollEl || !track) return;
76
+ const compute = () => {
77
+ const isVertical2 = orientation === "vertical";
78
+ const viewportSize = isVertical2 ? scrollEl.clientHeight : scrollEl.clientWidth;
79
+ const scrollSize = isVertical2 ? scrollEl.scrollHeight : scrollEl.scrollWidth;
80
+ const scrollOffset = isVertical2 ? scrollEl.scrollTop : scrollEl.scrollLeft;
81
+ const trackSize = (isVertical2 ? track.clientHeight : track.clientWidth) - TRACK_PADDING * 2;
82
+ const maxScroll = scrollSize - viewportSize;
83
+ if (trackSize <= 0 || maxScroll <= 0) {
84
+ metricsRef.current = {
85
+ thumbSize: 0,
86
+ maxScroll: 0,
87
+ maxThumbTravel: 0,
88
+ viewportSize,
89
+ scrollSize
90
+ };
91
+ setThumb({ size: 0, offset: 0, hidden: true });
92
+ return;
93
+ }
94
+ const rawSize = viewportSize / scrollSize * trackSize;
95
+ const size = Math.min(trackSize, Math.max(MIN_THUMB_SIZE, rawSize));
96
+ const maxThumbTravel = trackSize - size;
97
+ const ratio = maxScroll > 0 ? scrollOffset / maxScroll : 0;
98
+ const offset = maxThumbTravel * ratio;
99
+ metricsRef.current = {
100
+ thumbSize: size,
101
+ maxScroll,
102
+ maxThumbTravel,
103
+ viewportSize,
104
+ scrollSize
105
+ };
106
+ setThumb({ size, offset, hidden: false });
107
+ };
108
+ compute();
109
+ scrollEl.addEventListener("scroll", compute, { passive: true });
110
+ const resizeObserver = new ResizeObserver(compute);
111
+ resizeObserver.observe(scrollEl);
112
+ resizeObserver.observe(track);
113
+ const mutationObserver = new MutationObserver(compute);
114
+ mutationObserver.observe(scrollEl, { childList: true, subtree: true, characterData: true });
115
+ return () => {
116
+ scrollEl.removeEventListener("scroll", compute);
117
+ resizeObserver.disconnect();
118
+ mutationObserver.disconnect();
119
+ };
120
+ }, [orientation, viewportRef]);
121
+ const isVertical = orientation === "vertical";
122
+ const onThumbPointerDown = (e) => {
123
+ if (thumb.hidden) return;
124
+ e.preventDefault();
125
+ e.stopPropagation();
126
+ const scrollEl = viewportRef.current;
127
+ if (!scrollEl || !e.isPrimary) return;
128
+ const m = metricsRef.current;
129
+ if (m.maxThumbTravel <= 0) return;
130
+ dragRef.current = {
131
+ startPointer: isVertical ? e.clientY : e.clientX,
132
+ startScroll: isVertical ? scrollEl.scrollTop : scrollEl.scrollLeft
133
+ };
134
+ e.currentTarget.setPointerCapture(e.pointerId);
135
+ const onMove = (ev) => {
136
+ if (!dragRef.current) return;
137
+ const el = viewportRef.current;
138
+ if (!el) return;
139
+ const mm = metricsRef.current;
140
+ if (mm.maxThumbTravel <= 0) return;
141
+ const pointer = isVertical ? ev.clientY : ev.clientX;
142
+ const delta = pointer - dragRef.current.startPointer;
143
+ const scrollDelta = delta / mm.maxThumbTravel * mm.maxScroll;
144
+ const next = dragRef.current.startScroll + scrollDelta;
145
+ const clamped = Math.max(0, Math.min(mm.maxScroll, next));
146
+ if (isVertical) {
147
+ el.scrollTop = clamped;
148
+ } else {
149
+ el.scrollLeft = clamped;
150
+ }
151
+ };
152
+ const onUp = (ev) => {
153
+ e.currentTarget.releasePointerCapture(ev.pointerId);
154
+ dragRef.current = null;
155
+ window.removeEventListener("pointermove", onMove);
156
+ window.removeEventListener("pointerup", onUp);
157
+ window.removeEventListener("pointercancel", onUp);
158
+ };
159
+ window.addEventListener("pointermove", onMove);
160
+ window.addEventListener("pointerup", onUp);
161
+ window.addEventListener("pointercancel", onUp);
162
+ };
163
+ const onTrackPointerDown = (e) => {
164
+ if (thumb.hidden || e.button !== 0) return;
165
+ const t = thumbRef.current;
166
+ if (t && (e.target === t || t.contains(e.target))) return;
167
+ const scrollEl = viewportRef.current;
168
+ const track = trackRef.current;
169
+ if (!scrollEl || !track) return;
170
+ const m = metricsRef.current;
171
+ if (m.maxThumbTravel <= 0 || m.maxScroll <= 0) return;
172
+ const rect = track.getBoundingClientRect();
173
+ const clickAlong = isVertical ? e.clientY - rect.top - TRACK_PADDING : e.clientX - rect.left - TRACK_PADDING;
174
+ const page = thumb.size + 4;
175
+ let nextOffset = thumb.offset;
176
+ if (clickAlong < thumb.offset) {
177
+ nextOffset = Math.max(0, thumb.offset - page);
178
+ } else if (clickAlong > thumb.offset + thumb.size) {
179
+ nextOffset = Math.min(m.maxThumbTravel, thumb.offset + page);
180
+ } else {
181
+ return;
182
+ }
183
+ const nextScroll = nextOffset / m.maxThumbTravel * m.maxScroll;
184
+ if (isVertical) {
185
+ scrollEl.scrollTop = nextScroll;
186
+ } else {
187
+ scrollEl.scrollLeft = nextScroll;
188
+ }
189
+ };
190
+ return /* @__PURE__ */ jsx(
191
+ "div",
192
+ {
193
+ ref: trackRef,
194
+ "data-slot": "scroll-bar",
195
+ "data-orientation": orientation,
196
+ "aria-hidden": "true",
197
+ class: cn(
198
+ "absolute z-[1] rounded-full bg-border/45 p-0.5 transition-opacity select-none",
199
+ orientation === "vertical" ? "right-1 top-1 bottom-1 w-2" : "right-1 left-1 bottom-1 h-2",
200
+ thumb.hidden ? "pointer-events-none opacity-0" : "opacity-100",
201
+ className
202
+ ),
203
+ ...rest,
204
+ onPointerDown: (e) => {
205
+ onPointerDownProp?.(e);
206
+ onTrackPointerDown(e);
207
+ },
208
+ children: /* @__PURE__ */ jsx(
209
+ "div",
210
+ {
211
+ ref: thumbRef,
212
+ "data-slot": "scroll-bar-thumb",
213
+ class: cn(
214
+ "absolute touch-none rounded-full bg-foreground/35 ring-1 ring-border/40",
215
+ orientation === "vertical" ? "left-0 right-0 top-0 cursor-grab active:cursor-grabbing" : "bottom-0 left-0 top-0 h-full cursor-grab active:cursor-grabbing"
216
+ ),
217
+ style: orientation === "vertical" ? { height: `${thumb.size}px`, transform: `translateY(${thumb.offset}px)` } : { width: `${thumb.size}px`, transform: `translateX(${thumb.offset}px)` },
218
+ onPointerDown: onThumbPointerDown
219
+ }
220
+ )
221
+ }
222
+ );
223
+ };
224
+ var hideNativeScrollbar = "[scrollbar-width:none] [-ms-overflow-style:none] [&::-webkit-scrollbar]:hidden";
225
+ function partitionScrollAreaChildren(children) {
226
+ const content = [];
227
+ const chrome = [];
228
+ for (const node of toChildArray(children)) {
229
+ if (isValidElement(node) && (node.type === ScrollBar || node.type === ScrollAreaCorner)) {
230
+ chrome.push(node);
231
+ } else {
232
+ content.push(node);
233
+ }
234
+ }
235
+ return { content, chrome };
236
+ }
237
+ function syncViewportOverflowState(el) {
238
+ const { scrollLeft, scrollTop, clientWidth, clientHeight, scrollWidth, scrollHeight } = el;
239
+ const maxX = scrollWidth - clientWidth;
240
+ const maxY = scrollHeight - clientHeight;
241
+ const eps = 0.5;
242
+ const hasX = maxX > eps;
243
+ const hasY = maxY > eps;
244
+ const setEdge = (name, on) => {
245
+ if (on) el.setAttribute(name, "");
246
+ else el.removeAttribute(name);
247
+ };
248
+ if (hasX) {
249
+ setEdge("data-has-overflow-x", true);
250
+ setEdge("data-overflow-x-start", scrollLeft > eps);
251
+ setEdge("data-overflow-x-end", scrollLeft < maxX - eps);
252
+ } else {
253
+ el.removeAttribute("data-has-overflow-x");
254
+ el.removeAttribute("data-overflow-x-start");
255
+ el.removeAttribute("data-overflow-x-end");
256
+ }
257
+ if (hasY) {
258
+ setEdge("data-has-overflow-y", true);
259
+ setEdge("data-overflow-y-start", scrollTop > eps);
260
+ setEdge("data-overflow-y-end", scrollTop < maxY - eps);
261
+ } else {
262
+ el.removeAttribute("data-has-overflow-y");
263
+ el.removeAttribute("data-overflow-y-start");
264
+ el.removeAttribute("data-overflow-y-end");
265
+ }
266
+ el.style.setProperty("--scroll-area-overflow-x-start", `${scrollLeft}px`);
267
+ el.style.setProperty("--scroll-area-overflow-x-end", `${Math.max(0, maxX - scrollLeft)}px`);
268
+ el.style.setProperty("--scroll-area-overflow-y-start", `${scrollTop}px`);
269
+ el.style.setProperty("--scroll-area-overflow-y-end", `${Math.max(0, maxY - scrollTop)}px`);
270
+ }
271
+ var ScrollArea = ({ class: className, children, ...rest }) => {
272
+ const viewportRef = useRef(null);
273
+ const scrollEndTimerRef = useRef(void 0);
274
+ const { content, chrome } = partitionScrollAreaChildren(children);
275
+ const contextValue = useMemo(() => ({ viewportRef }), []);
276
+ useLayoutEffect(() => {
277
+ const el = viewportRef.current;
278
+ if (!el) return;
279
+ const update = () => {
280
+ syncViewportOverflowState(el);
281
+ };
282
+ const onScroll = () => {
283
+ syncViewportOverflowState(el);
284
+ el.setAttribute("data-scrolling", "");
285
+ if (scrollEndTimerRef.current !== void 0) {
286
+ clearTimeout(scrollEndTimerRef.current);
287
+ }
288
+ scrollEndTimerRef.current = setTimeout(() => {
289
+ el.removeAttribute("data-scrolling");
290
+ scrollEndTimerRef.current = void 0;
291
+ }, 150);
292
+ };
293
+ update();
294
+ el.addEventListener("scroll", onScroll, { passive: true });
295
+ const resizeObserver = new ResizeObserver(update);
296
+ resizeObserver.observe(el);
297
+ const mutationObserver = new MutationObserver(update);
298
+ mutationObserver.observe(el, { childList: true, subtree: true, characterData: true });
299
+ return () => {
300
+ el.removeEventListener("scroll", onScroll);
301
+ resizeObserver.disconnect();
302
+ mutationObserver.disconnect();
303
+ if (scrollEndTimerRef.current !== void 0) {
304
+ clearTimeout(scrollEndTimerRef.current);
305
+ }
306
+ el.removeAttribute("data-scrolling");
307
+ };
308
+ }, []);
309
+ return /* @__PURE__ */ jsx(ScrollAreaContext.Provider, { value: contextValue, children: /* @__PURE__ */ jsxs(
310
+ "div",
311
+ {
312
+ "data-slot": "scroll-area",
313
+ class: cn("relative min-h-0 min-w-0 overflow-hidden", className),
314
+ ...rest,
315
+ children: [
316
+ /* @__PURE__ */ jsx(
317
+ "div",
318
+ {
319
+ ref: viewportRef,
320
+ "data-slot": "scroll-area-viewport",
321
+ class: cn("size-full overflow-auto", hideNativeScrollbar),
322
+ children: /* @__PURE__ */ jsx("div", { "data-slot": "scroll-area-content", class: "min-w-0", children: content })
323
+ }
324
+ ),
325
+ chrome
326
+ ]
327
+ }
328
+ ) });
329
+ };
330
+
331
+ // src/components/scroll-area/index.ts
332
+ var scroll_area_default = {
333
+ Root: ScrollArea,
334
+ Bar: ScrollBar,
335
+ Corner: ScrollAreaCorner
336
+ };
337
+
338
+ export { ScrollArea, ScrollAreaCorner, ScrollBar, scroll_area_default };
339
+ //# sourceMappingURL=chunk-RD6VXGVY.js.map
340
+ //# sourceMappingURL=chunk-RD6VXGVY.js.map