@arolariu/components 0.0.2 → 0.0.3

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 (429) hide show
  1. package/dist/_virtual/jsx-runtime.cjs.js +2 -0
  2. package/dist/_virtual/jsx-runtime.cjs.js.map +1 -0
  3. package/dist/_virtual/jsx-runtime.cjs2.js +2 -0
  4. package/dist/_virtual/jsx-runtime.cjs2.js.map +1 -0
  5. package/dist/_virtual/jsx-runtime.es.js +6 -0
  6. package/dist/_virtual/jsx-runtime.es.js.map +1 -0
  7. package/dist/_virtual/jsx-runtime.es2.js +5 -0
  8. package/dist/_virtual/jsx-runtime.es2.js.map +1 -0
  9. package/dist/_virtual/react-jsx-runtime.development.cjs.js +2 -0
  10. package/dist/_virtual/react-jsx-runtime.development.cjs.js.map +1 -0
  11. package/dist/_virtual/react-jsx-runtime.development.es.js +5 -0
  12. package/dist/_virtual/react-jsx-runtime.development.es.js.map +1 -0
  13. package/dist/_virtual/react-jsx-runtime.production.cjs.js +2 -0
  14. package/dist/_virtual/react-jsx-runtime.production.cjs.js.map +1 -0
  15. package/dist/_virtual/react-jsx-runtime.production.es.js +5 -0
  16. package/dist/_virtual/react-jsx-runtime.production.es.js.map +1 -0
  17. package/dist/cjs/components/ui/accordion.js +2 -0
  18. package/dist/cjs/components/ui/accordion.js.map +1 -0
  19. package/dist/cjs/components/ui/alert-dialog.js +2 -0
  20. package/dist/cjs/components/ui/alert-dialog.js.map +1 -0
  21. package/dist/cjs/components/ui/alert.js +2 -0
  22. package/dist/cjs/components/ui/alert.js.map +1 -0
  23. package/dist/cjs/components/ui/aspect-ratio.js +2 -0
  24. package/dist/cjs/components/ui/aspect-ratio.js.map +1 -0
  25. package/dist/cjs/components/ui/avatar.js +2 -0
  26. package/dist/cjs/components/ui/avatar.js.map +1 -0
  27. package/dist/cjs/components/ui/badge.js +2 -0
  28. package/dist/cjs/components/ui/badge.js.map +1 -0
  29. package/dist/cjs/components/ui/breadcrumb.js +2 -0
  30. package/dist/cjs/components/ui/breadcrumb.js.map +1 -0
  31. package/dist/cjs/components/ui/button.js +2 -0
  32. package/dist/cjs/components/ui/button.js.map +1 -0
  33. package/dist/cjs/components/ui/calendar.js +2 -0
  34. package/dist/cjs/components/ui/calendar.js.map +1 -0
  35. package/dist/cjs/components/ui/card.js +2 -0
  36. package/dist/cjs/components/ui/card.js.map +1 -0
  37. package/dist/cjs/components/ui/carousel.js +2 -0
  38. package/dist/cjs/components/ui/carousel.js.map +1 -0
  39. package/dist/cjs/components/ui/chart.js +8 -0
  40. package/dist/cjs/components/ui/chart.js.map +1 -0
  41. package/dist/cjs/components/ui/checkbox.js +2 -0
  42. package/dist/cjs/components/ui/checkbox.js.map +1 -0
  43. package/dist/cjs/components/ui/collapsible.js +2 -0
  44. package/dist/cjs/components/ui/collapsible.js.map +1 -0
  45. package/dist/cjs/components/ui/command.js +2 -0
  46. package/dist/cjs/components/ui/command.js.map +1 -0
  47. package/dist/cjs/components/ui/context-menu.js +2 -0
  48. package/dist/cjs/components/ui/context-menu.js.map +1 -0
  49. package/dist/cjs/components/ui/dialog.js +2 -0
  50. package/dist/cjs/components/ui/dialog.js.map +1 -0
  51. package/dist/cjs/components/ui/drawer.js +2 -0
  52. package/dist/cjs/components/ui/drawer.js.map +1 -0
  53. package/dist/cjs/components/ui/dropdown-menu.js +2 -0
  54. package/dist/cjs/components/ui/dropdown-menu.js.map +1 -0
  55. package/dist/cjs/components/ui/form.js +2 -0
  56. package/dist/cjs/components/ui/form.js.map +1 -0
  57. package/dist/cjs/components/ui/hover-card.js +2 -0
  58. package/dist/cjs/components/ui/hover-card.js.map +1 -0
  59. package/dist/cjs/components/ui/input-otp.js +2 -0
  60. package/dist/cjs/components/ui/input-otp.js.map +1 -0
  61. package/dist/cjs/components/ui/input.js +2 -0
  62. package/dist/cjs/components/ui/input.js.map +1 -0
  63. package/dist/cjs/components/ui/label.js +2 -0
  64. package/dist/cjs/components/ui/label.js.map +1 -0
  65. package/dist/cjs/components/ui/menubar.js +2 -0
  66. package/dist/cjs/components/ui/menubar.js.map +1 -0
  67. package/dist/cjs/components/ui/navigation-menu.js +2 -0
  68. package/dist/cjs/components/ui/navigation-menu.js.map +1 -0
  69. package/dist/cjs/components/ui/pagination.js +2 -0
  70. package/dist/cjs/components/ui/pagination.js.map +1 -0
  71. package/dist/cjs/components/ui/popover.js +2 -0
  72. package/dist/cjs/components/ui/popover.js.map +1 -0
  73. package/dist/cjs/components/ui/progress.js +2 -0
  74. package/dist/cjs/components/ui/progress.js.map +1 -0
  75. package/dist/cjs/components/ui/radio-group.js +2 -0
  76. package/dist/cjs/components/ui/radio-group.js.map +1 -0
  77. package/dist/cjs/components/ui/resizable.js +2 -0
  78. package/dist/cjs/components/ui/resizable.js.map +1 -0
  79. package/dist/cjs/components/ui/scroll-area.js +2 -0
  80. package/dist/cjs/components/ui/scroll-area.js.map +1 -0
  81. package/dist/cjs/components/ui/select.js +2 -0
  82. package/dist/cjs/components/ui/select.js.map +1 -0
  83. package/dist/cjs/components/ui/separator.js +2 -0
  84. package/dist/cjs/components/ui/separator.js.map +1 -0
  85. package/dist/cjs/components/ui/sheet.js +2 -0
  86. package/dist/cjs/components/ui/sheet.js.map +1 -0
  87. package/dist/cjs/components/ui/sidebar.js +2 -0
  88. package/dist/cjs/components/ui/sidebar.js.map +1 -0
  89. package/dist/cjs/components/ui/skeleton.js +2 -0
  90. package/dist/cjs/components/ui/skeleton.js.map +1 -0
  91. package/dist/cjs/components/ui/slider.js +2 -0
  92. package/dist/cjs/components/ui/slider.js.map +1 -0
  93. package/dist/cjs/components/ui/sonner.js +2 -0
  94. package/dist/cjs/components/ui/sonner.js.map +1 -0
  95. package/dist/cjs/components/ui/switch.js +2 -0
  96. package/dist/cjs/components/ui/switch.js.map +1 -0
  97. package/dist/cjs/components/ui/table.js +2 -0
  98. package/dist/cjs/components/ui/table.js.map +1 -0
  99. package/dist/cjs/components/ui/tabs.js +2 -0
  100. package/dist/cjs/components/ui/tabs.js.map +1 -0
  101. package/dist/cjs/components/ui/textarea.js +2 -0
  102. package/dist/cjs/components/ui/textarea.js.map +1 -0
  103. package/dist/cjs/components/ui/toggle-group.js +2 -0
  104. package/dist/cjs/components/ui/toggle-group.js.map +1 -0
  105. package/dist/cjs/components/ui/toggle.js +2 -0
  106. package/dist/cjs/components/ui/toggle.js.map +1 -0
  107. package/dist/cjs/components/ui/tooltip.js +2 -0
  108. package/dist/cjs/components/ui/tooltip.js.map +1 -0
  109. package/dist/cjs/hooks/use-mobile.js +2 -0
  110. package/dist/cjs/hooks/use-mobile.js.map +1 -0
  111. package/dist/cjs/index.js +2 -0
  112. package/dist/cjs/index.js.map +1 -0
  113. package/dist/cjs/lib/utils.js +2 -0
  114. package/dist/cjs/lib/utils.js.map +1 -0
  115. package/dist/components/ui/accordion.cjs.js +2 -0
  116. package/dist/components/ui/accordion.cjs.js.map +1 -0
  117. package/dist/components/ui/accordion.es.js +65 -0
  118. package/dist/components/ui/accordion.es.js.map +1 -0
  119. package/dist/components/ui/alert-dialog.cjs.js +2 -0
  120. package/dist/components/ui/alert-dialog.cjs.js.map +1 -0
  121. package/dist/components/ui/alert-dialog.es.js +147 -0
  122. package/dist/components/ui/alert-dialog.es.js.map +1 -0
  123. package/dist/components/ui/alert.cjs.js +2 -0
  124. package/dist/components/ui/alert.cjs.js.map +1 -0
  125. package/dist/components/ui/alert.es.js +67 -0
  126. package/dist/components/ui/alert.es.js.map +1 -0
  127. package/dist/components/ui/aspect-ratio.cjs.js +2 -0
  128. package/dist/components/ui/aspect-ratio.cjs.js.map +1 -0
  129. package/dist/components/ui/aspect-ratio.es.js +11 -0
  130. package/dist/components/ui/aspect-ratio.es.js.map +1 -0
  131. package/dist/components/ui/avatar.cjs.js +2 -0
  132. package/dist/components/ui/avatar.cjs.js.map +1 -0
  133. package/dist/components/ui/avatar.es.js +54 -0
  134. package/dist/components/ui/avatar.es.js.map +1 -0
  135. package/dist/components/ui/badge.cjs.js +2 -0
  136. package/dist/components/ui/badge.cjs.js.map +1 -0
  137. package/dist/components/ui/badge.es.js +41 -0
  138. package/dist/components/ui/badge.es.js.map +1 -0
  139. package/dist/components/ui/breadcrumb.cjs.js +2 -0
  140. package/dist/components/ui/breadcrumb.cjs.js.map +1 -0
  141. package/dist/components/ui/breadcrumb.es.js +104 -0
  142. package/dist/components/ui/breadcrumb.es.js.map +1 -0
  143. package/dist/components/ui/button.cjs.js +2 -0
  144. package/dist/components/ui/button.cjs.js.map +1 -0
  145. package/dist/components/ui/button.es.js +51 -0
  146. package/dist/components/ui/button.es.js.map +1 -0
  147. package/dist/components/ui/calendar.cjs.js +2 -0
  148. package/dist/components/ui/calendar.cjs.js.map +1 -0
  149. package/dist/components/ui/calendar.es.js +62 -0
  150. package/dist/components/ui/calendar.es.js.map +1 -0
  151. package/dist/components/ui/card.cjs.js +2 -0
  152. package/dist/components/ui/card.cjs.js.map +1 -0
  153. package/dist/components/ui/card.es.js +74 -0
  154. package/dist/components/ui/card.es.js.map +1 -0
  155. package/dist/components/ui/carousel.cjs.js +2 -0
  156. package/dist/components/ui/carousel.cjs.js.map +1 -0
  157. package/dist/components/ui/carousel.es.js +178 -0
  158. package/dist/components/ui/carousel.es.js.map +1 -0
  159. package/dist/components/ui/chart.cjs.js +8 -0
  160. package/dist/components/ui/chart.cjs.js.map +1 -0
  161. package/dist/components/ui/chart.es.js +216 -0
  162. package/dist/components/ui/chart.es.js.map +1 -0
  163. package/dist/components/ui/checkbox.cjs.js +2 -0
  164. package/dist/components/ui/checkbox.cjs.js.map +1 -0
  165. package/dist/components/ui/checkbox.es.js +32 -0
  166. package/dist/components/ui/checkbox.es.js.map +1 -0
  167. package/dist/components/ui/collapsible.cjs.js +2 -0
  168. package/dist/components/ui/collapsible.cjs.js.map +1 -0
  169. package/dist/components/ui/collapsible.es.js +35 -0
  170. package/dist/components/ui/collapsible.es.js.map +1 -0
  171. package/dist/components/ui/command.cjs.js +2 -0
  172. package/dist/components/ui/command.cjs.js.map +1 -0
  173. package/dist/components/ui/command.es.js +162 -0
  174. package/dist/components/ui/command.es.js.map +1 -0
  175. package/dist/components/ui/context-menu.cjs.js +2 -0
  176. package/dist/components/ui/context-menu.cjs.js.map +1 -0
  177. package/dist/components/ui/context-menu.es.js +224 -0
  178. package/dist/components/ui/context-menu.es.js.map +1 -0
  179. package/dist/components/ui/dialog.cjs.js +2 -0
  180. package/dist/components/ui/dialog.cjs.js.map +1 -0
  181. package/dist/components/ui/dialog.es.js +129 -0
  182. package/dist/components/ui/dialog.es.js.map +1 -0
  183. package/dist/components/ui/drawer.cjs.js +2 -0
  184. package/dist/components/ui/drawer.cjs.js.map +1 -0
  185. package/dist/components/ui/drawer.es.js +126 -0
  186. package/dist/components/ui/drawer.es.js.map +1 -0
  187. package/dist/components/ui/dropdown-menu.cjs.js +2 -0
  188. package/dist/components/ui/dropdown-menu.cjs.js.map +1 -0
  189. package/dist/components/ui/dropdown-menu.es.js +232 -0
  190. package/dist/components/ui/dropdown-menu.es.js.map +1 -0
  191. package/dist/components/ui/form.cjs.js +2 -0
  192. package/dist/components/ui/form.cjs.js.map +1 -0
  193. package/dist/components/ui/form.es.js +102 -0
  194. package/dist/components/ui/form.es.js.map +1 -0
  195. package/dist/components/ui/hover-card.cjs.js +2 -0
  196. package/dist/components/ui/hover-card.cjs.js.map +1 -0
  197. package/dist/components/ui/hover-card.es.js +39 -0
  198. package/dist/components/ui/hover-card.es.js.map +1 -0
  199. package/dist/components/ui/input-otp.cjs.js +2 -0
  200. package/dist/components/ui/input-otp.cjs.js.map +1 -0
  201. package/dist/components/ui/input-otp.es.js +66 -0
  202. package/dist/components/ui/input-otp.es.js.map +1 -0
  203. package/dist/components/ui/input.cjs.js +2 -0
  204. package/dist/components/ui/input.cjs.js.map +1 -0
  205. package/dist/components/ui/input.es.js +22 -0
  206. package/dist/components/ui/input.es.js.map +1 -0
  207. package/dist/components/ui/label.cjs.js +2 -0
  208. package/dist/components/ui/label.cjs.js.map +1 -0
  209. package/dist/components/ui/label.es.js +23 -0
  210. package/dist/components/ui/label.es.js.map +1 -0
  211. package/dist/components/ui/menubar.cjs.js +2 -0
  212. package/dist/components/ui/menubar.cjs.js.map +1 -0
  213. package/dist/components/ui/menubar.es.js +252 -0
  214. package/dist/components/ui/menubar.es.js.map +1 -0
  215. package/dist/components/ui/navigation-menu.cjs.js +2 -0
  216. package/dist/components/ui/navigation-menu.cjs.js.map +1 -0
  217. package/dist/components/ui/navigation-menu.es.js +171 -0
  218. package/dist/components/ui/navigation-menu.es.js.map +1 -0
  219. package/dist/components/ui/pagination.cjs.js +2 -0
  220. package/dist/components/ui/pagination.cjs.js.map +1 -0
  221. package/dist/components/ui/pagination.es.js +119 -0
  222. package/dist/components/ui/pagination.es.js.map +1 -0
  223. package/dist/components/ui/popover.cjs.js +2 -0
  224. package/dist/components/ui/popover.cjs.js.map +1 -0
  225. package/dist/components/ui/popover.es.js +45 -0
  226. package/dist/components/ui/popover.es.js.map +1 -0
  227. package/dist/components/ui/progress.cjs.js +2 -0
  228. package/dist/components/ui/progress.cjs.js.map +1 -0
  229. package/dist/components/ui/progress.es.js +32 -0
  230. package/dist/components/ui/progress.es.js.map +1 -0
  231. package/dist/components/ui/radio-group.cjs.js +2 -0
  232. package/dist/components/ui/radio-group.cjs.js.map +1 -0
  233. package/dist/components/ui/radio-group.es.js +46 -0
  234. package/dist/components/ui/radio-group.es.js.map +1 -0
  235. package/dist/components/ui/resizable.cjs.js +2 -0
  236. package/dist/components/ui/resizable.cjs.js.map +1 -0
  237. package/dist/components/ui/resizable.es.js +49 -0
  238. package/dist/components/ui/resizable.es.js.map +1 -0
  239. package/dist/components/ui/scroll-area.cjs.js +2 -0
  240. package/dist/components/ui/scroll-area.cjs.js.map +1 -0
  241. package/dist/components/ui/scroll-area.es.js +61 -0
  242. package/dist/components/ui/scroll-area.es.js.map +1 -0
  243. package/dist/components/ui/select.cjs.js +2 -0
  244. package/dist/components/ui/select.cjs.js.map +1 -0
  245. package/dist/components/ui/select.es.js +168 -0
  246. package/dist/components/ui/select.es.js.map +1 -0
  247. package/dist/components/ui/separator.cjs.js +2 -0
  248. package/dist/components/ui/separator.cjs.js.map +1 -0
  249. package/dist/components/ui/separator.es.js +27 -0
  250. package/dist/components/ui/separator.es.js.map +1 -0
  251. package/dist/components/ui/sheet.cjs.js +2 -0
  252. package/dist/components/ui/sheet.cjs.js.map +1 -0
  253. package/dist/components/ui/sheet.es.js +127 -0
  254. package/dist/components/ui/sheet.es.js.map +1 -0
  255. package/dist/components/ui/sidebar.cjs.js +2 -0
  256. package/dist/components/ui/sidebar.cjs.js.map +1 -0
  257. package/dist/components/ui/sidebar.es.js +595 -0
  258. package/dist/components/ui/sidebar.es.js.map +1 -0
  259. package/dist/components/ui/skeleton.cjs.js +2 -0
  260. package/dist/components/ui/skeleton.cjs.js.map +1 -0
  261. package/dist/components/ui/skeleton.es.js +16 -0
  262. package/dist/components/ui/skeleton.es.js.map +1 -0
  263. package/dist/components/ui/slider.cjs.js +2 -0
  264. package/dist/components/ui/slider.cjs.js.map +1 -0
  265. package/dist/components/ui/slider.es.js +64 -0
  266. package/dist/components/ui/slider.es.js.map +1 -0
  267. package/dist/components/ui/sonner.cjs.js +2 -0
  268. package/dist/components/ui/sonner.cjs.js.map +1 -0
  269. package/dist/components/ui/sonner.es.js +26 -0
  270. package/dist/components/ui/sonner.es.js.map +1 -0
  271. package/dist/components/ui/switch.cjs.js +2 -0
  272. package/dist/components/ui/switch.cjs.js.map +1 -0
  273. package/dist/components/ui/switch.es.js +32 -0
  274. package/dist/components/ui/switch.es.js.map +1 -0
  275. package/dist/components/ui/table.cjs.js +2 -0
  276. package/dist/components/ui/table.cjs.js.map +1 -0
  277. package/dist/components/ui/table.es.js +115 -0
  278. package/dist/components/ui/table.es.js.map +1 -0
  279. package/dist/components/ui/tabs.cjs.js +2 -0
  280. package/dist/components/ui/tabs.cjs.js.map +1 -0
  281. package/dist/components/ui/tabs.es.js +68 -0
  282. package/dist/components/ui/tabs.es.js.map +1 -0
  283. package/dist/components/ui/textarea.cjs.js +2 -0
  284. package/dist/components/ui/textarea.cjs.js.map +1 -0
  285. package/dist/components/ui/textarea.es.js +19 -0
  286. package/dist/components/ui/textarea.es.js.map +1 -0
  287. package/dist/components/ui/toggle-group.cjs.js +2 -0
  288. package/dist/components/ui/toggle-group.cjs.js.map +1 -0
  289. package/dist/components/ui/toggle-group.es.js +63 -0
  290. package/dist/components/ui/toggle-group.es.js.map +1 -0
  291. package/dist/components/ui/toggle.cjs.js +2 -0
  292. package/dist/components/ui/toggle.cjs.js.map +1 -0
  293. package/dist/components/ui/toggle.es.js +44 -0
  294. package/dist/components/ui/toggle.es.js.map +1 -0
  295. package/dist/components/ui/tooltip.cjs.js +2 -0
  296. package/dist/components/ui/tooltip.cjs.js.map +1 -0
  297. package/dist/components/ui/tooltip.es.js +56 -0
  298. package/dist/components/ui/tooltip.es.js.map +1 -0
  299. package/dist/es/components/ui/accordion.js +65 -0
  300. package/dist/es/components/ui/accordion.js.map +1 -0
  301. package/dist/es/components/ui/alert-dialog.js +147 -0
  302. package/dist/es/components/ui/alert-dialog.js.map +1 -0
  303. package/dist/es/components/ui/alert.js +67 -0
  304. package/dist/es/components/ui/alert.js.map +1 -0
  305. package/dist/es/components/ui/aspect-ratio.js +11 -0
  306. package/dist/es/components/ui/aspect-ratio.js.map +1 -0
  307. package/dist/es/components/ui/avatar.js +54 -0
  308. package/dist/es/components/ui/avatar.js.map +1 -0
  309. package/dist/es/components/ui/badge.js +40 -0
  310. package/dist/es/components/ui/badge.js.map +1 -0
  311. package/dist/es/components/ui/breadcrumb.js +103 -0
  312. package/dist/es/components/ui/breadcrumb.js.map +1 -0
  313. package/dist/es/components/ui/button.js +50 -0
  314. package/dist/es/components/ui/button.js.map +1 -0
  315. package/dist/es/components/ui/calendar.js +62 -0
  316. package/dist/es/components/ui/calendar.js.map +1 -0
  317. package/dist/es/components/ui/card.js +74 -0
  318. package/dist/es/components/ui/card.js.map +1 -0
  319. package/dist/es/components/ui/carousel.js +178 -0
  320. package/dist/es/components/ui/carousel.js.map +1 -0
  321. package/dist/es/components/ui/chart.js +216 -0
  322. package/dist/es/components/ui/chart.js.map +1 -0
  323. package/dist/es/components/ui/checkbox.js +32 -0
  324. package/dist/es/components/ui/checkbox.js.map +1 -0
  325. package/dist/es/components/ui/collapsible.js +35 -0
  326. package/dist/es/components/ui/collapsible.js.map +1 -0
  327. package/dist/es/components/ui/command.js +162 -0
  328. package/dist/es/components/ui/command.js.map +1 -0
  329. package/dist/es/components/ui/context-menu.js +224 -0
  330. package/dist/es/components/ui/context-menu.js.map +1 -0
  331. package/dist/es/components/ui/dialog.js +129 -0
  332. package/dist/es/components/ui/dialog.js.map +1 -0
  333. package/dist/es/components/ui/drawer.js +126 -0
  334. package/dist/es/components/ui/drawer.js.map +1 -0
  335. package/dist/es/components/ui/dropdown-menu.js +232 -0
  336. package/dist/es/components/ui/dropdown-menu.js.map +1 -0
  337. package/dist/es/components/ui/form.js +102 -0
  338. package/dist/es/components/ui/form.js.map +1 -0
  339. package/dist/es/components/ui/hover-card.js +39 -0
  340. package/dist/es/components/ui/hover-card.js.map +1 -0
  341. package/dist/es/components/ui/input-otp.js +66 -0
  342. package/dist/es/components/ui/input-otp.js.map +1 -0
  343. package/dist/es/components/ui/input.js +22 -0
  344. package/dist/es/components/ui/input.js.map +1 -0
  345. package/dist/es/components/ui/label.js +23 -0
  346. package/dist/es/components/ui/label.js.map +1 -0
  347. package/dist/es/components/ui/menubar.js +252 -0
  348. package/dist/es/components/ui/menubar.js.map +1 -0
  349. package/dist/es/components/ui/navigation-menu.js +171 -0
  350. package/dist/es/components/ui/navigation-menu.js.map +1 -0
  351. package/dist/es/components/ui/pagination.js +119 -0
  352. package/dist/es/components/ui/pagination.js.map +1 -0
  353. package/dist/es/components/ui/popover.js +45 -0
  354. package/dist/es/components/ui/popover.js.map +1 -0
  355. package/dist/es/components/ui/progress.js +32 -0
  356. package/dist/es/components/ui/progress.js.map +1 -0
  357. package/dist/es/components/ui/radio-group.js +46 -0
  358. package/dist/es/components/ui/radio-group.js.map +1 -0
  359. package/dist/es/components/ui/resizable.js +49 -0
  360. package/dist/es/components/ui/resizable.js.map +1 -0
  361. package/dist/es/components/ui/scroll-area.js +61 -0
  362. package/dist/es/components/ui/scroll-area.js.map +1 -0
  363. package/dist/es/components/ui/select.js +168 -0
  364. package/dist/es/components/ui/select.js.map +1 -0
  365. package/dist/es/components/ui/separator.js +27 -0
  366. package/dist/es/components/ui/separator.js.map +1 -0
  367. package/dist/es/components/ui/sheet.js +127 -0
  368. package/dist/es/components/ui/sheet.js.map +1 -0
  369. package/dist/es/components/ui/sidebar.js +591 -0
  370. package/dist/es/components/ui/sidebar.js.map +1 -0
  371. package/dist/es/components/ui/skeleton.js +16 -0
  372. package/dist/es/components/ui/skeleton.js.map +1 -0
  373. package/dist/es/components/ui/slider.js +64 -0
  374. package/dist/es/components/ui/slider.js.map +1 -0
  375. package/dist/es/components/ui/sonner.js +26 -0
  376. package/dist/es/components/ui/sonner.js.map +1 -0
  377. package/dist/es/components/ui/switch.js +32 -0
  378. package/dist/es/components/ui/switch.js.map +1 -0
  379. package/dist/es/components/ui/table.js +115 -0
  380. package/dist/es/components/ui/table.js.map +1 -0
  381. package/dist/es/components/ui/tabs.js +68 -0
  382. package/dist/es/components/ui/tabs.js.map +1 -0
  383. package/dist/es/components/ui/textarea.js +19 -0
  384. package/dist/es/components/ui/textarea.js.map +1 -0
  385. package/dist/es/components/ui/toggle-group.js +63 -0
  386. package/dist/es/components/ui/toggle-group.js.map +1 -0
  387. package/dist/es/components/ui/toggle.js +44 -0
  388. package/dist/es/components/ui/toggle.js.map +1 -0
  389. package/dist/es/components/ui/tooltip.js +56 -0
  390. package/dist/es/components/ui/tooltip.js.map +1 -0
  391. package/dist/es/hooks/use-mobile.js +15 -0
  392. package/dist/es/hooks/use-mobile.js.map +1 -0
  393. package/dist/es/index.js +292 -0
  394. package/dist/es/index.js.map +1 -0
  395. package/dist/es/lib/utils.js +9 -0
  396. package/dist/es/lib/utils.js.map +1 -0
  397. package/dist/hooks/use-mobile.cjs.js +2 -0
  398. package/dist/hooks/use-mobile.cjs.js.map +1 -0
  399. package/dist/hooks/use-mobile.es.js +15 -0
  400. package/dist/hooks/use-mobile.es.js.map +1 -0
  401. package/dist/index.cjs.js +2 -0
  402. package/dist/index.cjs.js.map +1 -0
  403. package/dist/index.es.js +292 -0
  404. package/dist/index.es.js.map +1 -0
  405. package/dist/lib/utils.cjs.js +2 -0
  406. package/dist/lib/utils.cjs.js.map +1 -0
  407. package/dist/lib/utils.es.js +9 -0
  408. package/dist/lib/utils.es.js.map +1 -0
  409. package/dist/node_modules/react/cjs/react-jsx-runtime.development.cjs.js +24 -0
  410. package/dist/node_modules/react/cjs/react-jsx-runtime.development.cjs.js.map +1 -0
  411. package/dist/node_modules/react/cjs/react-jsx-runtime.development.es.js +409 -0
  412. package/dist/node_modules/react/cjs/react-jsx-runtime.development.es.js.map +1 -0
  413. package/dist/node_modules/react/cjs/react-jsx-runtime.production.cjs.js +10 -0
  414. package/dist/node_modules/react/cjs/react-jsx-runtime.production.cjs.js.map +1 -0
  415. package/dist/node_modules/react/cjs/react-jsx-runtime.production.es.js +36 -0
  416. package/dist/node_modules/react/cjs/react-jsx-runtime.production.es.js.map +1 -0
  417. package/dist/node_modules/react/jsx-runtime.cjs.js +2 -0
  418. package/dist/node_modules/react/jsx-runtime.cjs.js.map +1 -0
  419. package/dist/node_modules/react/jsx-runtime.es.js +11 -0
  420. package/dist/node_modules/react/jsx-runtime.es.js.map +1 -0
  421. package/dist/umd/arolariu-components.umd.js +8 -0
  422. package/dist/umd/arolariu-components.umd.js.map +1 -0
  423. package/package.json +1 -1
  424. package/dist/arolariu-components.cjs.js +0 -38
  425. package/dist/arolariu-components.cjs.js.map +0 -1
  426. package/dist/arolariu-components.es.js +0 -4643
  427. package/dist/arolariu-components.es.js.map +0 -1
  428. package/dist/arolariu-components.umd.js +0 -38
  429. package/dist/arolariu-components.umd.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"carousel.cjs.js","sources":["../../../src/components/ui/carousel.tsx"],"sourcesContent":["\"use client\"\n\nimport * as React from \"react\"\nimport useEmblaCarousel, {\n type UseEmblaCarouselType,\n} from \"embla-carousel-react\"\nimport { ArrowLeft, ArrowRight } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\nimport { Button } from \"@/components/ui/button\"\n\ntype CarouselApi = UseEmblaCarouselType[1]\ntype UseCarouselParameters = Parameters<typeof useEmblaCarousel>\ntype CarouselOptions = UseCarouselParameters[0]\ntype CarouselPlugin = UseCarouselParameters[1]\n\ntype CarouselProps = {\n opts?: CarouselOptions\n plugins?: CarouselPlugin\n orientation?: \"horizontal\" | \"vertical\"\n setApi?: (api: CarouselApi) => void\n}\n\ntype CarouselContextProps = {\n carouselRef: ReturnType<typeof useEmblaCarousel>[0]\n api: ReturnType<typeof useEmblaCarousel>[1]\n scrollPrev: () => void\n scrollNext: () => void\n canScrollPrev: boolean\n canScrollNext: boolean\n} & CarouselProps\n\nconst CarouselContext = React.createContext<CarouselContextProps | null>(null)\n\nfunction useCarousel() {\n const context = React.useContext(CarouselContext)\n\n if (!context) {\n throw new Error(\"useCarousel must be used within a <Carousel />\")\n }\n\n return context\n}\n\nfunction Carousel({\n orientation = \"horizontal\",\n opts,\n setApi,\n plugins,\n className,\n children,\n ...props\n}: React.ComponentProps<\"div\"> & CarouselProps) {\n const [carouselRef, api] = useEmblaCarousel(\n {\n ...opts,\n axis: orientation === \"horizontal\" ? \"x\" : \"y\",\n },\n plugins\n )\n const [canScrollPrev, setCanScrollPrev] = React.useState(false)\n const [canScrollNext, setCanScrollNext] = React.useState(false)\n\n const onSelect = React.useCallback((api: CarouselApi) => {\n if (!api) return\n setCanScrollPrev(api.canScrollPrev())\n setCanScrollNext(api.canScrollNext())\n }, [])\n\n const scrollPrev = React.useCallback(() => {\n api?.scrollPrev()\n }, [api])\n\n const scrollNext = React.useCallback(() => {\n api?.scrollNext()\n }, [api])\n\n const handleKeyDown = React.useCallback(\n (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (event.key === \"ArrowLeft\") {\n event.preventDefault()\n scrollPrev()\n } else if (event.key === \"ArrowRight\") {\n event.preventDefault()\n scrollNext()\n }\n },\n [scrollPrev, scrollNext]\n )\n\n React.useEffect(() => {\n if (!api || !setApi) return\n setApi(api)\n }, [api, setApi])\n\n React.useEffect(() => {\n if (!api) return\n onSelect(api)\n api.on(\"reInit\", onSelect)\n api.on(\"select\", onSelect)\n\n return () => {\n api?.off(\"select\", onSelect)\n }\n }, [api, onSelect])\n\n return (\n <CarouselContext.Provider\n value={{\n carouselRef,\n api: api,\n opts,\n orientation:\n orientation || (opts?.axis === \"y\" ? \"vertical\" : \"horizontal\"),\n scrollPrev,\n scrollNext,\n canScrollPrev,\n canScrollNext,\n }}\n >\n <div\n onKeyDownCapture={handleKeyDown}\n className={cn(\"relative\", className)}\n role=\"region\"\n aria-roledescription=\"carousel\"\n data-slot=\"carousel\"\n {...props}\n >\n {children}\n </div>\n </CarouselContext.Provider>\n )\n}\n\nfunction CarouselContent({ className, ...props }: React.ComponentProps<\"div\">) {\n const { carouselRef, orientation } = useCarousel()\n\n return (\n <div\n ref={carouselRef}\n className=\"overflow-hidden\"\n data-slot=\"carousel-content\"\n >\n <div\n className={cn(\n \"flex\",\n orientation === \"horizontal\" ? \"-ml-4\" : \"-mt-4 flex-col\",\n className\n )}\n {...props}\n />\n </div>\n )\n}\n\nfunction CarouselItem({ className, ...props }: React.ComponentProps<\"div\">) {\n const { orientation } = useCarousel()\n\n return (\n <div\n role=\"group\"\n aria-roledescription=\"slide\"\n data-slot=\"carousel-item\"\n className={cn(\n \"min-w-0 shrink-0 grow-0 basis-full\",\n orientation === \"horizontal\" ? \"pl-4\" : \"pt-4\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction CarouselPrevious({\n className,\n variant = \"outline\",\n size = \"icon\",\n ...props\n}: React.ComponentProps<typeof Button>) {\n const { orientation, scrollPrev, canScrollPrev } = useCarousel()\n\n return (\n <Button\n data-slot=\"carousel-previous\"\n variant={variant}\n size={size}\n className={cn(\n \"absolute size-8 rounded-full\",\n orientation === \"horizontal\"\n ? \"top-1/2 -left-12 -translate-y-1/2\"\n : \"-top-12 left-1/2 -translate-x-1/2 rotate-90\",\n className\n )}\n disabled={!canScrollPrev}\n onClick={scrollPrev}\n {...props}\n >\n <ArrowLeft />\n <span className=\"sr-only\">Previous slide</span>\n </Button>\n )\n}\n\nfunction CarouselNext({\n className,\n variant = \"outline\",\n size = \"icon\",\n ...props\n}: React.ComponentProps<typeof Button>) {\n const { orientation, scrollNext, canScrollNext } = useCarousel()\n\n return (\n <Button\n data-slot=\"carousel-next\"\n variant={variant}\n size={size}\n className={cn(\n \"absolute size-8 rounded-full\",\n orientation === \"horizontal\"\n ? \"top-1/2 -right-12 -translate-y-1/2\"\n : \"-bottom-12 left-1/2 -translate-x-1/2 rotate-90\",\n className\n )}\n disabled={!canScrollNext}\n onClick={scrollNext}\n {...props}\n >\n <ArrowRight />\n <span className=\"sr-only\">Next slide</span>\n </Button>\n )\n}\n\nexport {\n type CarouselApi,\n Carousel,\n CarouselContent,\n CarouselItem,\n CarouselPrevious,\n CarouselNext,\n}\n"],"names":["CarouselContext","React","useCarousel","context","Carousel","orientation","opts","setApi","plugins","className","children","props","carouselRef","api","useEmblaCarousel","canScrollPrev","setCanScrollPrev","canScrollNext","setCanScrollNext","onSelect","scrollPrev","scrollNext","handleKeyDown","event","jsx","cn","CarouselContent","CarouselItem","CarouselPrevious","variant","size","jsxs","Button","ArrowLeft","CarouselNext","ArrowRight"],"mappings":"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"}
@@ -0,0 +1,178 @@
1
+ import { j as l } from "../../_virtual/jsx-runtime.es.js";
2
+ import * as s from "react";
3
+ import P from "embla-carousel-react";
4
+ import { ArrowLeft as k, ArrowRight as z } from "lucide-react";
5
+ import { cn as x } from "../../lib/utils.es.js";
6
+ import { Button as h } from "./button.es.js";
7
+ const v = s.createContext(null);
8
+ function d() {
9
+ const o = s.useContext(v);
10
+ if (!o)
11
+ throw new Error("useCarousel must be used within a <Carousel />");
12
+ return o;
13
+ }
14
+ function A({
15
+ orientation: o = "horizontal",
16
+ opts: r,
17
+ setApi: t,
18
+ plugins: a,
19
+ className: c,
20
+ children: i,
21
+ ...u
22
+ }) {
23
+ const [N, e] = P(
24
+ {
25
+ ...r,
26
+ axis: o === "horizontal" ? "x" : "y"
27
+ },
28
+ a
29
+ ), [j, b] = s.useState(!1), [w, S] = s.useState(!1), f = s.useCallback((n) => {
30
+ n && (b(n.canScrollPrev()), S(n.canScrollNext()));
31
+ }, []), m = s.useCallback(() => {
32
+ e == null || e.scrollPrev();
33
+ }, [e]), C = s.useCallback(() => {
34
+ e == null || e.scrollNext();
35
+ }, [e]), y = s.useCallback(
36
+ (n) => {
37
+ n.key === "ArrowLeft" ? (n.preventDefault(), m()) : n.key === "ArrowRight" && (n.preventDefault(), C());
38
+ },
39
+ [m, C]
40
+ );
41
+ return s.useEffect(() => {
42
+ !e || !t || t(e);
43
+ }, [e, t]), s.useEffect(() => {
44
+ if (e)
45
+ return f(e), e.on("reInit", f), e.on("select", f), () => {
46
+ e == null || e.off("select", f);
47
+ };
48
+ }, [e, f]), /* @__PURE__ */ l.jsx(
49
+ v.Provider,
50
+ {
51
+ value: {
52
+ carouselRef: N,
53
+ api: e,
54
+ opts: r,
55
+ orientation: o || ((r == null ? void 0 : r.axis) === "y" ? "vertical" : "horizontal"),
56
+ scrollPrev: m,
57
+ scrollNext: C,
58
+ canScrollPrev: j,
59
+ canScrollNext: w
60
+ },
61
+ children: /* @__PURE__ */ l.jsx(
62
+ "div",
63
+ {
64
+ onKeyDownCapture: y,
65
+ className: x("relative", c),
66
+ role: "region",
67
+ "aria-roledescription": "carousel",
68
+ "data-slot": "carousel",
69
+ ...u,
70
+ children: i
71
+ }
72
+ )
73
+ }
74
+ );
75
+ }
76
+ function I({ className: o, ...r }) {
77
+ const { carouselRef: t, orientation: a } = d();
78
+ return /* @__PURE__ */ l.jsx(
79
+ "div",
80
+ {
81
+ ref: t,
82
+ className: "overflow-hidden",
83
+ "data-slot": "carousel-content",
84
+ children: /* @__PURE__ */ l.jsx(
85
+ "div",
86
+ {
87
+ className: x(
88
+ "flex",
89
+ a === "horizontal" ? "-ml-4" : "-mt-4 flex-col",
90
+ o
91
+ ),
92
+ ...r
93
+ }
94
+ )
95
+ }
96
+ );
97
+ }
98
+ function K({ className: o, ...r }) {
99
+ const { orientation: t } = d();
100
+ return /* @__PURE__ */ l.jsx(
101
+ "div",
102
+ {
103
+ role: "group",
104
+ "aria-roledescription": "slide",
105
+ "data-slot": "carousel-item",
106
+ className: x(
107
+ "min-w-0 shrink-0 grow-0 basis-full",
108
+ t === "horizontal" ? "pl-4" : "pt-4",
109
+ o
110
+ ),
111
+ ...r
112
+ }
113
+ );
114
+ }
115
+ function L({
116
+ className: o,
117
+ variant: r = "outline",
118
+ size: t = "icon",
119
+ ...a
120
+ }) {
121
+ const { orientation: c, scrollPrev: i, canScrollPrev: u } = d();
122
+ return /* @__PURE__ */ l.jsxs(
123
+ h,
124
+ {
125
+ "data-slot": "carousel-previous",
126
+ variant: r,
127
+ size: t,
128
+ className: x(
129
+ "absolute size-8 rounded-full",
130
+ c === "horizontal" ? "top-1/2 -left-12 -translate-y-1/2" : "-top-12 left-1/2 -translate-x-1/2 rotate-90",
131
+ o
132
+ ),
133
+ disabled: !u,
134
+ onClick: i,
135
+ ...a,
136
+ children: [
137
+ /* @__PURE__ */ l.jsx(k, {}),
138
+ /* @__PURE__ */ l.jsx("span", { className: "sr-only", children: "Previous slide" })
139
+ ]
140
+ }
141
+ );
142
+ }
143
+ function B({
144
+ className: o,
145
+ variant: r = "outline",
146
+ size: t = "icon",
147
+ ...a
148
+ }) {
149
+ const { orientation: c, scrollNext: i, canScrollNext: u } = d();
150
+ return /* @__PURE__ */ l.jsxs(
151
+ h,
152
+ {
153
+ "data-slot": "carousel-next",
154
+ variant: r,
155
+ size: t,
156
+ className: x(
157
+ "absolute size-8 rounded-full",
158
+ c === "horizontal" ? "top-1/2 -right-12 -translate-y-1/2" : "-bottom-12 left-1/2 -translate-x-1/2 rotate-90",
159
+ o
160
+ ),
161
+ disabled: !u,
162
+ onClick: i,
163
+ ...a,
164
+ children: [
165
+ /* @__PURE__ */ l.jsx(z, {}),
166
+ /* @__PURE__ */ l.jsx("span", { className: "sr-only", children: "Next slide" })
167
+ ]
168
+ }
169
+ );
170
+ }
171
+ export {
172
+ A as Carousel,
173
+ I as CarouselContent,
174
+ K as CarouselItem,
175
+ B as CarouselNext,
176
+ L as CarouselPrevious
177
+ };
178
+ //# sourceMappingURL=carousel.es.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"carousel.es.js","sources":["../../../src/components/ui/carousel.tsx"],"sourcesContent":["\"use client\"\n\nimport * as React from \"react\"\nimport useEmblaCarousel, {\n type UseEmblaCarouselType,\n} from \"embla-carousel-react\"\nimport { ArrowLeft, ArrowRight } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\nimport { Button } from \"@/components/ui/button\"\n\ntype CarouselApi = UseEmblaCarouselType[1]\ntype UseCarouselParameters = Parameters<typeof useEmblaCarousel>\ntype CarouselOptions = UseCarouselParameters[0]\ntype CarouselPlugin = UseCarouselParameters[1]\n\ntype CarouselProps = {\n opts?: CarouselOptions\n plugins?: CarouselPlugin\n orientation?: \"horizontal\" | \"vertical\"\n setApi?: (api: CarouselApi) => void\n}\n\ntype CarouselContextProps = {\n carouselRef: ReturnType<typeof useEmblaCarousel>[0]\n api: ReturnType<typeof useEmblaCarousel>[1]\n scrollPrev: () => void\n scrollNext: () => void\n canScrollPrev: boolean\n canScrollNext: boolean\n} & CarouselProps\n\nconst CarouselContext = React.createContext<CarouselContextProps | null>(null)\n\nfunction useCarousel() {\n const context = React.useContext(CarouselContext)\n\n if (!context) {\n throw new Error(\"useCarousel must be used within a <Carousel />\")\n }\n\n return context\n}\n\nfunction Carousel({\n orientation = \"horizontal\",\n opts,\n setApi,\n plugins,\n className,\n children,\n ...props\n}: React.ComponentProps<\"div\"> & CarouselProps) {\n const [carouselRef, api] = useEmblaCarousel(\n {\n ...opts,\n axis: orientation === \"horizontal\" ? \"x\" : \"y\",\n },\n plugins\n )\n const [canScrollPrev, setCanScrollPrev] = React.useState(false)\n const [canScrollNext, setCanScrollNext] = React.useState(false)\n\n const onSelect = React.useCallback((api: CarouselApi) => {\n if (!api) return\n setCanScrollPrev(api.canScrollPrev())\n setCanScrollNext(api.canScrollNext())\n }, [])\n\n const scrollPrev = React.useCallback(() => {\n api?.scrollPrev()\n }, [api])\n\n const scrollNext = React.useCallback(() => {\n api?.scrollNext()\n }, [api])\n\n const handleKeyDown = React.useCallback(\n (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (event.key === \"ArrowLeft\") {\n event.preventDefault()\n scrollPrev()\n } else if (event.key === \"ArrowRight\") {\n event.preventDefault()\n scrollNext()\n }\n },\n [scrollPrev, scrollNext]\n )\n\n React.useEffect(() => {\n if (!api || !setApi) return\n setApi(api)\n }, [api, setApi])\n\n React.useEffect(() => {\n if (!api) return\n onSelect(api)\n api.on(\"reInit\", onSelect)\n api.on(\"select\", onSelect)\n\n return () => {\n api?.off(\"select\", onSelect)\n }\n }, [api, onSelect])\n\n return (\n <CarouselContext.Provider\n value={{\n carouselRef,\n api: api,\n opts,\n orientation:\n orientation || (opts?.axis === \"y\" ? \"vertical\" : \"horizontal\"),\n scrollPrev,\n scrollNext,\n canScrollPrev,\n canScrollNext,\n }}\n >\n <div\n onKeyDownCapture={handleKeyDown}\n className={cn(\"relative\", className)}\n role=\"region\"\n aria-roledescription=\"carousel\"\n data-slot=\"carousel\"\n {...props}\n >\n {children}\n </div>\n </CarouselContext.Provider>\n )\n}\n\nfunction CarouselContent({ className, ...props }: React.ComponentProps<\"div\">) {\n const { carouselRef, orientation } = useCarousel()\n\n return (\n <div\n ref={carouselRef}\n className=\"overflow-hidden\"\n data-slot=\"carousel-content\"\n >\n <div\n className={cn(\n \"flex\",\n orientation === \"horizontal\" ? \"-ml-4\" : \"-mt-4 flex-col\",\n className\n )}\n {...props}\n />\n </div>\n )\n}\n\nfunction CarouselItem({ className, ...props }: React.ComponentProps<\"div\">) {\n const { orientation } = useCarousel()\n\n return (\n <div\n role=\"group\"\n aria-roledescription=\"slide\"\n data-slot=\"carousel-item\"\n className={cn(\n \"min-w-0 shrink-0 grow-0 basis-full\",\n orientation === \"horizontal\" ? \"pl-4\" : \"pt-4\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction CarouselPrevious({\n className,\n variant = \"outline\",\n size = \"icon\",\n ...props\n}: React.ComponentProps<typeof Button>) {\n const { orientation, scrollPrev, canScrollPrev } = useCarousel()\n\n return (\n <Button\n data-slot=\"carousel-previous\"\n variant={variant}\n size={size}\n className={cn(\n \"absolute size-8 rounded-full\",\n orientation === \"horizontal\"\n ? \"top-1/2 -left-12 -translate-y-1/2\"\n : \"-top-12 left-1/2 -translate-x-1/2 rotate-90\",\n className\n )}\n disabled={!canScrollPrev}\n onClick={scrollPrev}\n {...props}\n >\n <ArrowLeft />\n <span className=\"sr-only\">Previous slide</span>\n </Button>\n )\n}\n\nfunction CarouselNext({\n className,\n variant = \"outline\",\n size = \"icon\",\n ...props\n}: React.ComponentProps<typeof Button>) {\n const { orientation, scrollNext, canScrollNext } = useCarousel()\n\n return (\n <Button\n data-slot=\"carousel-next\"\n variant={variant}\n size={size}\n className={cn(\n \"absolute size-8 rounded-full\",\n orientation === \"horizontal\"\n ? \"top-1/2 -right-12 -translate-y-1/2\"\n : \"-bottom-12 left-1/2 -translate-x-1/2 rotate-90\",\n className\n )}\n disabled={!canScrollNext}\n onClick={scrollNext}\n {...props}\n >\n <ArrowRight />\n <span className=\"sr-only\">Next slide</span>\n </Button>\n )\n}\n\nexport {\n type CarouselApi,\n Carousel,\n CarouselContent,\n CarouselItem,\n CarouselPrevious,\n CarouselNext,\n}\n"],"names":["CarouselContext","React","useCarousel","context","Carousel","orientation","opts","setApi","plugins","className","children","props","carouselRef","api","useEmblaCarousel","canScrollPrev","setCanScrollPrev","canScrollNext","setCanScrollNext","onSelect","scrollPrev","scrollNext","handleKeyDown","event","jsx","cn","CarouselContent","CarouselItem","CarouselPrevious","variant","size","jsxs","Button","ArrowLeft","CarouselNext","ArrowRight"],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("../../_virtual/jsx-runtime.cjs.js"),S=require("react"),T=require("recharts"),i=require("../../lib/utils.cjs.js");function k(o){const e=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(o){for(const t in o)if(t!=="default"){const n=Object.getOwnPropertyDescriptor(o,t);Object.defineProperty(e,t,n.get?n:{enumerable:!0,get:()=>o[t]})}}return e.default=o,Object.freeze(e)}const g=k(S),R=k(T),$={light:"",dark:".dark"},C=g.createContext(null);function w(){const o=g.useContext(C);if(!o)throw new Error("useChart must be used within a <ChartContainer />");return o}function O({id:o,className:e,children:t,config:n,...l}){const x=g.useId(),c=`chart-${o||x.replace(/:/g,"")}`;return s.jsxRuntimeExports.jsx(C.Provider,{value:{config:n},children:s.jsxRuntimeExports.jsxs("div",{"data-slot":"chart","data-chart":c,className:i.cn("[&_.recharts-cartesian-axis-tick_text]:fill-muted-foreground [&_.recharts-cartesian-grid_line[stroke='#ccc']]:stroke-border/50 [&_.recharts-curve.recharts-tooltip-cursor]:stroke-border [&_.recharts-polar-grid_[stroke='#ccc']]:stroke-border [&_.recharts-radial-bar-background-sector]:fill-muted [&_.recharts-rectangle.recharts-tooltip-cursor]:fill-muted [&_.recharts-reference-line_[stroke='#ccc']]:stroke-border flex aspect-video justify-center text-xs [&_.recharts-dot[stroke='#fff']]:stroke-transparent [&_.recharts-layer]:outline-hidden [&_.recharts-sector]:outline-hidden [&_.recharts-sector[stroke='#fff']]:stroke-transparent [&_.recharts-surface]:outline-hidden",e),...l,children:[s.jsxRuntimeExports.jsx(N,{id:c,config:n}),s.jsxRuntimeExports.jsx(R.ResponsiveContainer,{children:t})]})})}const N=({id:o,config:e})=>{const t=Object.entries(e).filter(([,n])=>n.theme||n.color);return t.length?s.jsxRuntimeExports.jsx("style",{dangerouslySetInnerHTML:{__html:Object.entries($).map(([n,l])=>`
2
+ ${l} [data-chart=${o}] {
3
+ ${t.map(([x,c])=>{var a;const d=((a=c.theme)==null?void 0:a[n])||c.color;return d?` --color-${x}: ${d};`:null}).join(`
4
+ `)}
5
+ }
6
+ `).join(`
7
+ `)}}):null},q=R.Tooltip;function M({active:o,payload:e,className:t,indicator:n="dot",hideLabel:l=!1,hideIndicator:x=!1,label:c,labelFormatter:d,labelClassName:a,formatter:E,color:L,nameKey:P,labelKey:m}){const{config:f}=w(),_=g.useMemo(()=>{var j;if(l||!(e!=null&&e.length))return null;const[r]=e,v=`${m||(r==null?void 0:r.dataKey)||(r==null?void 0:r.name)||"value"}`,h=b(f,r,v),u=!m&&typeof c=="string"?((j=f[c])==null?void 0:j.label)||c:h==null?void 0:h.label;return d?s.jsxRuntimeExports.jsx("div",{className:i.cn("font-medium",a),children:d(u,e)}):u?s.jsxRuntimeExports.jsx("div",{className:i.cn("font-medium",a),children:u}):null},[c,d,e,l,a,f,m]);if(!o||!(e!=null&&e.length))return null;const p=e.length===1&&n!=="dot";return s.jsxRuntimeExports.jsxs("div",{className:i.cn("border-neutral-200/50 bg-white grid min-w-[8rem] items-start gap-1.5 rounded-lg border border-neutral-200 px-2.5 py-1.5 text-xs shadow-xl dark:border-neutral-800/50 dark:bg-neutral-950 dark:border-neutral-800",t),children:[p?null:_,s.jsxRuntimeExports.jsx("div",{className:"grid gap-1.5",children:e.map((r,v)=>{const h=`${P||r.name||r.dataKey||"value"}`,u=b(f,r,h),j=L||r.payload.fill||r.color;return s.jsxRuntimeExports.jsx("div",{className:i.cn("[&>svg]:text-neutral-500 flex w-full flex-wrap items-stretch gap-2 [&>svg]:h-2.5 [&>svg]:w-2.5 dark:[&>svg]:text-neutral-400",n==="dot"&&"items-center"),children:E&&(r==null?void 0:r.value)!==void 0&&r.name?E(r.value,r.name,r,v,r.payload):s.jsxRuntimeExports.jsxs(s.jsxRuntimeExports.Fragment,{children:[u!=null&&u.icon?s.jsxRuntimeExports.jsx(u.icon,{}):!x&&s.jsxRuntimeExports.jsx("div",{className:i.cn("shrink-0 rounded-[2px] border-(--color-border) bg-(--color-bg)",{"h-2.5 w-2.5":n==="dot","w-1":n==="line","w-0 border-[1.5px] border-dashed bg-transparent":n==="dashed","my-0.5":p&&n==="dashed"}),style:{"--color-bg":j,"--color-border":j}}),s.jsxRuntimeExports.jsxs("div",{className:i.cn("flex flex-1 justify-between leading-none",p?"items-end":"items-center"),children:[s.jsxRuntimeExports.jsxs("div",{className:"grid gap-1.5",children:[p?_:null,s.jsxRuntimeExports.jsx("span",{className:"text-neutral-500 dark:text-neutral-400",children:(u==null?void 0:u.label)||r.name})]}),r.value&&s.jsxRuntimeExports.jsx("span",{className:"text-neutral-950 font-mono font-medium tabular-nums dark:text-neutral-50",children:r.value.toLocaleString()})]})]})},r.dataKey)})})]})}const y=R.Legend;function I({className:o,hideIcon:e=!1,payload:t,verticalAlign:n="bottom",nameKey:l}){const{config:x}=w();return t!=null&&t.length?s.jsxRuntimeExports.jsx("div",{className:i.cn("flex items-center justify-center gap-4",n==="top"?"pb-3":"pt-3",o),children:t.map(c=>{const d=`${l||c.dataKey||"value"}`,a=b(x,c,d);return s.jsxRuntimeExports.jsxs("div",{className:i.cn("[&>svg]:text-neutral-500 flex items-center gap-1.5 [&>svg]:h-3 [&>svg]:w-3 dark:[&>svg]:text-neutral-400"),children:[a!=null&&a.icon&&!e?s.jsxRuntimeExports.jsx(a.icon,{}):s.jsxRuntimeExports.jsx("div",{className:"h-2 w-2 shrink-0 rounded-[2px]",style:{backgroundColor:c.color}}),a==null?void 0:a.label]},c.value)})}):null}function b(o,e,t){if(typeof e!="object"||e===null)return;const n="payload"in e&&typeof e.payload=="object"&&e.payload!==null?e.payload:void 0;let l=t;return t in e&&typeof e[t]=="string"?l=e[t]:n&&t in n&&typeof n[t]=="string"&&(l=n[t]),l in o?o[l]:o[t]}exports.ChartContainer=O;exports.ChartLegend=y;exports.ChartLegendContent=I;exports.ChartStyle=N;exports.ChartTooltip=q;exports.ChartTooltipContent=M;
8
+ //# sourceMappingURL=chart.cjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chart.cjs.js","sources":["../../../src/components/ui/chart.tsx"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport * as RechartsPrimitive from \"recharts\";\n\nimport { cn } from \"@/lib/utils\";\n\n// Format: { THEME_NAME: CSS_SELECTOR }\nconst THEMES = { light: \"\", dark: \".dark\" } as const;\n\nexport type ChartConfig = {\n [k in string]: {\n label?: React.ReactNode;\n icon?: React.ComponentType;\n } & (\n | { color?: string; theme?: never }\n | { color?: never; theme: Record<keyof typeof THEMES, string> }\n );\n};\n\ntype ChartContextProps = {\n config: ChartConfig;\n};\n\nconst ChartContext = React.createContext<ChartContextProps | null>(null);\n\nfunction useChart() {\n const context = React.useContext(ChartContext);\n\n if (!context) {\n throw new Error(\"useChart must be used within a <ChartContainer />\");\n }\n\n return context;\n}\n\nfunction ChartContainer({\n id,\n className,\n children,\n config,\n ...props\n}: React.ComponentProps<\"div\"> & {\n config: ChartConfig;\n children: React.ComponentProps<\n typeof RechartsPrimitive.ResponsiveContainer\n >[\"children\"];\n}) {\n const uniqueId = React.useId();\n const chartId = `chart-${id || uniqueId.replace(/:/g, \"\")}`;\n\n return (\n <ChartContext.Provider value={{ config }}>\n <div\n data-slot=\"chart\"\n data-chart={chartId}\n className={cn(\n \"[&_.recharts-cartesian-axis-tick_text]:fill-muted-foreground [&_.recharts-cartesian-grid_line[stroke='#ccc']]:stroke-border/50 [&_.recharts-curve.recharts-tooltip-cursor]:stroke-border [&_.recharts-polar-grid_[stroke='#ccc']]:stroke-border [&_.recharts-radial-bar-background-sector]:fill-muted [&_.recharts-rectangle.recharts-tooltip-cursor]:fill-muted [&_.recharts-reference-line_[stroke='#ccc']]:stroke-border flex aspect-video justify-center text-xs [&_.recharts-dot[stroke='#fff']]:stroke-transparent [&_.recharts-layer]:outline-hidden [&_.recharts-sector]:outline-hidden [&_.recharts-sector[stroke='#fff']]:stroke-transparent [&_.recharts-surface]:outline-hidden\",\n className\n )}\n {...props}\n >\n <ChartStyle id={chartId} config={config} />\n <RechartsPrimitive.ResponsiveContainer>\n {children}\n </RechartsPrimitive.ResponsiveContainer>\n </div>\n </ChartContext.Provider>\n );\n}\n\nconst ChartStyle = ({ id, config }: { id: string; config: ChartConfig }) => {\n const colorConfig = Object.entries(config).filter(\n ([, config]) => config.theme || config.color\n );\n\n if (!colorConfig.length) {\n return null;\n }\n\n return (\n <style\n dangerouslySetInnerHTML={{\n __html: Object.entries(THEMES)\n .map(\n ([theme, prefix]) => `\n${prefix} [data-chart=${id}] {\n${colorConfig\n .map(([key, itemConfig]) => {\n const color =\n itemConfig.theme?.[theme as keyof typeof itemConfig.theme] ||\n itemConfig.color;\n return color ? ` --color-${key}: ${color};` : null;\n })\n .join(\"\\n\")}\n}\n`\n )\n .join(\"\\n\"),\n }}\n />\n );\n};\n\nconst ChartTooltip = RechartsPrimitive.Tooltip;\n\nfunction ChartTooltipContent({\n active,\n payload,\n className,\n indicator = \"dot\",\n hideLabel = false,\n hideIndicator = false,\n label,\n labelFormatter,\n labelClassName,\n formatter,\n color,\n nameKey,\n labelKey,\n}: React.ComponentProps<typeof RechartsPrimitive.Tooltip> &\n React.ComponentProps<\"div\"> & {\n hideLabel?: boolean;\n hideIndicator?: boolean;\n indicator?: \"line\" | \"dot\" | \"dashed\";\n nameKey?: string;\n labelKey?: string;\n }) {\n const { config } = useChart();\n\n const tooltipLabel = React.useMemo(() => {\n if (hideLabel || !payload?.length) {\n return null;\n }\n\n const [item] = payload;\n const key = `${labelKey || item?.dataKey || item?.name || \"value\"}`;\n const itemConfig = getPayloadConfigFromPayload(config, item, key);\n const value =\n !labelKey && typeof label === \"string\"\n ? config[label as keyof typeof config]?.label || label\n : itemConfig?.label;\n\n if (labelFormatter) {\n return (\n <div className={cn(\"font-medium\", labelClassName)}>\n {labelFormatter(value, payload)}\n </div>\n );\n }\n\n if (!value) {\n return null;\n }\n\n return <div className={cn(\"font-medium\", labelClassName)}>{value}</div>;\n }, [\n label,\n labelFormatter,\n payload,\n hideLabel,\n labelClassName,\n config,\n labelKey,\n ]);\n\n if (!active || !payload?.length) {\n return null;\n }\n\n const nestLabel = payload.length === 1 && indicator !== \"dot\";\n\n return (\n <div\n className={cn(\n \"border-neutral-200/50 bg-white grid min-w-[8rem] items-start gap-1.5 rounded-lg border border-neutral-200 px-2.5 py-1.5 text-xs shadow-xl dark:border-neutral-800/50 dark:bg-neutral-950 dark:border-neutral-800\",\n className\n )}\n >\n {!nestLabel ? tooltipLabel : null}\n <div className=\"grid gap-1.5\">\n {payload.map((item, index) => {\n const key = `${nameKey || item.name || item.dataKey || \"value\"}`;\n const itemConfig = getPayloadConfigFromPayload(config, item, key);\n const indicatorColor = color || item.payload.fill || item.color;\n\n return (\n <div\n key={item.dataKey}\n className={cn(\n \"[&>svg]:text-neutral-500 flex w-full flex-wrap items-stretch gap-2 [&>svg]:h-2.5 [&>svg]:w-2.5 dark:[&>svg]:text-neutral-400\",\n indicator === \"dot\" && \"items-center\"\n )}\n >\n {formatter && item?.value !== undefined && item.name ? (\n formatter(item.value, item.name, item, index, item.payload)\n ) : (\n <>\n {itemConfig?.icon ? (\n <itemConfig.icon />\n ) : (\n !hideIndicator && (\n <div\n className={cn(\n \"shrink-0 rounded-[2px] border-(--color-border) bg-(--color-bg)\",\n {\n \"h-2.5 w-2.5\": indicator === \"dot\",\n \"w-1\": indicator === \"line\",\n \"w-0 border-[1.5px] border-dashed bg-transparent\":\n indicator === \"dashed\",\n \"my-0.5\": nestLabel && indicator === \"dashed\",\n }\n )}\n style={\n {\n \"--color-bg\": indicatorColor,\n \"--color-border\": indicatorColor,\n } as React.CSSProperties\n }\n />\n )\n )}\n <div\n className={cn(\n \"flex flex-1 justify-between leading-none\",\n nestLabel ? \"items-end\" : \"items-center\"\n )}\n >\n <div className=\"grid gap-1.5\">\n {nestLabel ? tooltipLabel : null}\n <span className=\"text-neutral-500 dark:text-neutral-400\">\n {itemConfig?.label || item.name}\n </span>\n </div>\n {item.value && (\n <span className=\"text-neutral-950 font-mono font-medium tabular-nums dark:text-neutral-50\">\n {item.value.toLocaleString()}\n </span>\n )}\n </div>\n </>\n )}\n </div>\n );\n })}\n </div>\n </div>\n );\n}\n\nconst ChartLegend = RechartsPrimitive.Legend;\n\nfunction ChartLegendContent({\n className,\n hideIcon = false,\n payload,\n verticalAlign = \"bottom\",\n nameKey,\n}: React.ComponentProps<\"div\"> &\n Pick<RechartsPrimitive.LegendProps, \"payload\" | \"verticalAlign\"> & {\n hideIcon?: boolean;\n nameKey?: string;\n }) {\n const { config } = useChart();\n\n if (!payload?.length) {\n return null;\n }\n\n return (\n <div\n className={cn(\n \"flex items-center justify-center gap-4\",\n verticalAlign === \"top\" ? \"pb-3\" : \"pt-3\",\n className\n )}\n >\n {payload.map((item) => {\n const key = `${nameKey || item.dataKey || \"value\"}`;\n const itemConfig = getPayloadConfigFromPayload(config, item, key);\n\n return (\n <div\n key={item.value}\n className={cn(\n \"[&>svg]:text-neutral-500 flex items-center gap-1.5 [&>svg]:h-3 [&>svg]:w-3 dark:[&>svg]:text-neutral-400\"\n )}\n >\n {itemConfig?.icon && !hideIcon ? (\n <itemConfig.icon />\n ) : (\n <div\n className=\"h-2 w-2 shrink-0 rounded-[2px]\"\n style={{\n backgroundColor: item.color,\n }}\n />\n )}\n {itemConfig?.label}\n </div>\n );\n })}\n </div>\n );\n}\n\n// Helper to extract item config from a payload.\nfunction getPayloadConfigFromPayload(\n config: ChartConfig,\n payload: unknown,\n key: string\n) {\n if (typeof payload !== \"object\" || payload === null) {\n return undefined;\n }\n\n const payloadPayload =\n \"payload\" in payload &&\n typeof payload.payload === \"object\" &&\n payload.payload !== null\n ? payload.payload\n : undefined;\n\n let configLabelKey: string = key;\n\n if (\n key in payload &&\n typeof payload[key as keyof typeof payload] === \"string\"\n ) {\n configLabelKey = payload[key as keyof typeof payload] as string;\n } else if (\n payloadPayload &&\n key in payloadPayload &&\n typeof payloadPayload[key as keyof typeof payloadPayload] === \"string\"\n ) {\n configLabelKey = payloadPayload[\n key as keyof typeof payloadPayload\n ] as string;\n }\n\n return configLabelKey in config\n ? config[configLabelKey]\n : config[key as keyof typeof config];\n}\n\nexport {\n ChartContainer,\n ChartTooltip,\n ChartTooltipContent,\n ChartLegend,\n ChartLegendContent,\n ChartStyle,\n};\n"],"names":["THEMES","ChartContext","React","useChart","context","ChartContainer","id","className","children","config","props","uniqueId","chartId","jsxs","cn","jsx","ChartStyle","RechartsPrimitive","colorConfig","theme","prefix","key","itemConfig","color","_a","ChartTooltip","ChartTooltipContent","active","payload","indicator","hideLabel","hideIndicator","label","labelFormatter","labelClassName","formatter","nameKey","labelKey","tooltipLabel","item","getPayloadConfigFromPayload","value","nestLabel","index","indicatorColor","Fragment","ChartLegend","ChartLegendContent","hideIcon","verticalAlign","payloadPayload","configLabelKey"],"mappings":"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"}
@@ -0,0 +1,216 @@
1
+ import { j as t } from "../../_virtual/jsx-runtime.es.js";
2
+ import * as j from "react";
3
+ import * as k from "recharts";
4
+ import { cn as d } from "../../lib/utils.es.js";
5
+ const P = { light: "", dark: ".dark" }, C = j.createContext(null);
6
+ function N() {
7
+ const c = j.useContext(C);
8
+ if (!c)
9
+ throw new Error("useChart must be used within a <ChartContainer />");
10
+ return c;
11
+ }
12
+ function R({
13
+ id: c,
14
+ className: r,
15
+ children: s,
16
+ config: n,
17
+ ...l
18
+ }) {
19
+ const h = j.useId(), o = `chart-${c || h.replace(/:/g, "")}`;
20
+ return /* @__PURE__ */ t.jsx(C.Provider, { value: { config: n }, children: /* @__PURE__ */ t.jsxs(
21
+ "div",
22
+ {
23
+ "data-slot": "chart",
24
+ "data-chart": o,
25
+ className: d(
26
+ "[&_.recharts-cartesian-axis-tick_text]:fill-muted-foreground [&_.recharts-cartesian-grid_line[stroke='#ccc']]:stroke-border/50 [&_.recharts-curve.recharts-tooltip-cursor]:stroke-border [&_.recharts-polar-grid_[stroke='#ccc']]:stroke-border [&_.recharts-radial-bar-background-sector]:fill-muted [&_.recharts-rectangle.recharts-tooltip-cursor]:fill-muted [&_.recharts-reference-line_[stroke='#ccc']]:stroke-border flex aspect-video justify-center text-xs [&_.recharts-dot[stroke='#fff']]:stroke-transparent [&_.recharts-layer]:outline-hidden [&_.recharts-sector]:outline-hidden [&_.recharts-sector[stroke='#fff']]:stroke-transparent [&_.recharts-surface]:outline-hidden",
27
+ r
28
+ ),
29
+ ...l,
30
+ children: [
31
+ /* @__PURE__ */ t.jsx(T, { id: o, config: n }),
32
+ /* @__PURE__ */ t.jsx(k.ResponsiveContainer, { children: s })
33
+ ]
34
+ }
35
+ ) });
36
+ }
37
+ const T = ({ id: c, config: r }) => {
38
+ const s = Object.entries(r).filter(
39
+ ([, n]) => n.theme || n.color
40
+ );
41
+ return s.length ? /* @__PURE__ */ t.jsx(
42
+ "style",
43
+ {
44
+ dangerouslySetInnerHTML: {
45
+ __html: Object.entries(P).map(
46
+ ([n, l]) => `
47
+ ${l} [data-chart=${c}] {
48
+ ${s.map(([h, o]) => {
49
+ var a;
50
+ const i = ((a = o.theme) == null ? void 0 : a[n]) || o.color;
51
+ return i ? ` --color-${h}: ${i};` : null;
52
+ }).join(`
53
+ `)}
54
+ }
55
+ `
56
+ ).join(`
57
+ `)
58
+ }
59
+ }
60
+ ) : null;
61
+ }, S = k.Tooltip;
62
+ function K({
63
+ active: c,
64
+ payload: r,
65
+ className: s,
66
+ indicator: n = "dot",
67
+ hideLabel: l = !1,
68
+ hideIndicator: h = !1,
69
+ label: o,
70
+ labelFormatter: i,
71
+ labelClassName: a,
72
+ formatter: _,
73
+ color: $,
74
+ nameKey: L,
75
+ labelKey: b
76
+ }) {
77
+ const { config: g } = N(), w = j.useMemo(() => {
78
+ var f;
79
+ if (l || !(r != null && r.length))
80
+ return null;
81
+ const [e] = r, m = `${b || (e == null ? void 0 : e.dataKey) || (e == null ? void 0 : e.name) || "value"}`, x = p(g, e, m), u = !b && typeof o == "string" ? ((f = g[o]) == null ? void 0 : f.label) || o : x == null ? void 0 : x.label;
82
+ return i ? /* @__PURE__ */ t.jsx("div", { className: d("font-medium", a), children: i(u, r) }) : u ? /* @__PURE__ */ t.jsx("div", { className: d("font-medium", a), children: u }) : null;
83
+ }, [
84
+ o,
85
+ i,
86
+ r,
87
+ l,
88
+ a,
89
+ g,
90
+ b
91
+ ]);
92
+ if (!c || !(r != null && r.length))
93
+ return null;
94
+ const v = r.length === 1 && n !== "dot";
95
+ return /* @__PURE__ */ t.jsxs(
96
+ "div",
97
+ {
98
+ className: d(
99
+ "border-neutral-200/50 bg-white grid min-w-[8rem] items-start gap-1.5 rounded-lg border border-neutral-200 px-2.5 py-1.5 text-xs shadow-xl dark:border-neutral-800/50 dark:bg-neutral-950 dark:border-neutral-800",
100
+ s
101
+ ),
102
+ children: [
103
+ v ? null : w,
104
+ /* @__PURE__ */ t.jsx("div", { className: "grid gap-1.5", children: r.map((e, m) => {
105
+ const x = `${L || e.name || e.dataKey || "value"}`, u = p(g, e, x), f = $ || e.payload.fill || e.color;
106
+ return /* @__PURE__ */ t.jsx(
107
+ "div",
108
+ {
109
+ className: d(
110
+ "[&>svg]:text-neutral-500 flex w-full flex-wrap items-stretch gap-2 [&>svg]:h-2.5 [&>svg]:w-2.5 dark:[&>svg]:text-neutral-400",
111
+ n === "dot" && "items-center"
112
+ ),
113
+ children: _ && (e == null ? void 0 : e.value) !== void 0 && e.name ? _(e.value, e.name, e, m, e.payload) : /* @__PURE__ */ t.jsxs(t.Fragment, { children: [
114
+ u != null && u.icon ? /* @__PURE__ */ t.jsx(u.icon, {}) : !h && /* @__PURE__ */ t.jsx(
115
+ "div",
116
+ {
117
+ className: d(
118
+ "shrink-0 rounded-[2px] border-(--color-border) bg-(--color-bg)",
119
+ {
120
+ "h-2.5 w-2.5": n === "dot",
121
+ "w-1": n === "line",
122
+ "w-0 border-[1.5px] border-dashed bg-transparent": n === "dashed",
123
+ "my-0.5": v && n === "dashed"
124
+ }
125
+ ),
126
+ style: {
127
+ "--color-bg": f,
128
+ "--color-border": f
129
+ }
130
+ }
131
+ ),
132
+ /* @__PURE__ */ t.jsxs(
133
+ "div",
134
+ {
135
+ className: d(
136
+ "flex flex-1 justify-between leading-none",
137
+ v ? "items-end" : "items-center"
138
+ ),
139
+ children: [
140
+ /* @__PURE__ */ t.jsxs("div", { className: "grid gap-1.5", children: [
141
+ v ? w : null,
142
+ /* @__PURE__ */ t.jsx("span", { className: "text-neutral-500 dark:text-neutral-400", children: (u == null ? void 0 : u.label) || e.name })
143
+ ] }),
144
+ e.value && /* @__PURE__ */ t.jsx("span", { className: "text-neutral-950 font-mono font-medium tabular-nums dark:text-neutral-50", children: e.value.toLocaleString() })
145
+ ]
146
+ }
147
+ )
148
+ ] })
149
+ },
150
+ e.dataKey
151
+ );
152
+ }) })
153
+ ]
154
+ }
155
+ );
156
+ }
157
+ const M = k.Legend;
158
+ function H({
159
+ className: c,
160
+ hideIcon: r = !1,
161
+ payload: s,
162
+ verticalAlign: n = "bottom",
163
+ nameKey: l
164
+ }) {
165
+ const { config: h } = N();
166
+ return s != null && s.length ? /* @__PURE__ */ t.jsx(
167
+ "div",
168
+ {
169
+ className: d(
170
+ "flex items-center justify-center gap-4",
171
+ n === "top" ? "pb-3" : "pt-3",
172
+ c
173
+ ),
174
+ children: s.map((o) => {
175
+ const i = `${l || o.dataKey || "value"}`, a = p(h, o, i);
176
+ return /* @__PURE__ */ t.jsxs(
177
+ "div",
178
+ {
179
+ className: d(
180
+ "[&>svg]:text-neutral-500 flex items-center gap-1.5 [&>svg]:h-3 [&>svg]:w-3 dark:[&>svg]:text-neutral-400"
181
+ ),
182
+ children: [
183
+ a != null && a.icon && !r ? /* @__PURE__ */ t.jsx(a.icon, {}) : /* @__PURE__ */ t.jsx(
184
+ "div",
185
+ {
186
+ className: "h-2 w-2 shrink-0 rounded-[2px]",
187
+ style: {
188
+ backgroundColor: o.color
189
+ }
190
+ }
191
+ ),
192
+ a == null ? void 0 : a.label
193
+ ]
194
+ },
195
+ o.value
196
+ );
197
+ })
198
+ }
199
+ ) : null;
200
+ }
201
+ function p(c, r, s) {
202
+ if (typeof r != "object" || r === null)
203
+ return;
204
+ const n = "payload" in r && typeof r.payload == "object" && r.payload !== null ? r.payload : void 0;
205
+ let l = s;
206
+ return s in r && typeof r[s] == "string" ? l = r[s] : n && s in n && typeof n[s] == "string" && (l = n[s]), l in c ? c[l] : c[s];
207
+ }
208
+ export {
209
+ R as ChartContainer,
210
+ M as ChartLegend,
211
+ H as ChartLegendContent,
212
+ T as ChartStyle,
213
+ S as ChartTooltip,
214
+ K as ChartTooltipContent
215
+ };
216
+ //# sourceMappingURL=chart.es.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chart.es.js","sources":["../../../src/components/ui/chart.tsx"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport * as RechartsPrimitive from \"recharts\";\n\nimport { cn } from \"@/lib/utils\";\n\n// Format: { THEME_NAME: CSS_SELECTOR }\nconst THEMES = { light: \"\", dark: \".dark\" } as const;\n\nexport type ChartConfig = {\n [k in string]: {\n label?: React.ReactNode;\n icon?: React.ComponentType;\n } & (\n | { color?: string; theme?: never }\n | { color?: never; theme: Record<keyof typeof THEMES, string> }\n );\n};\n\ntype ChartContextProps = {\n config: ChartConfig;\n};\n\nconst ChartContext = React.createContext<ChartContextProps | null>(null);\n\nfunction useChart() {\n const context = React.useContext(ChartContext);\n\n if (!context) {\n throw new Error(\"useChart must be used within a <ChartContainer />\");\n }\n\n return context;\n}\n\nfunction ChartContainer({\n id,\n className,\n children,\n config,\n ...props\n}: React.ComponentProps<\"div\"> & {\n config: ChartConfig;\n children: React.ComponentProps<\n typeof RechartsPrimitive.ResponsiveContainer\n >[\"children\"];\n}) {\n const uniqueId = React.useId();\n const chartId = `chart-${id || uniqueId.replace(/:/g, \"\")}`;\n\n return (\n <ChartContext.Provider value={{ config }}>\n <div\n data-slot=\"chart\"\n data-chart={chartId}\n className={cn(\n \"[&_.recharts-cartesian-axis-tick_text]:fill-muted-foreground [&_.recharts-cartesian-grid_line[stroke='#ccc']]:stroke-border/50 [&_.recharts-curve.recharts-tooltip-cursor]:stroke-border [&_.recharts-polar-grid_[stroke='#ccc']]:stroke-border [&_.recharts-radial-bar-background-sector]:fill-muted [&_.recharts-rectangle.recharts-tooltip-cursor]:fill-muted [&_.recharts-reference-line_[stroke='#ccc']]:stroke-border flex aspect-video justify-center text-xs [&_.recharts-dot[stroke='#fff']]:stroke-transparent [&_.recharts-layer]:outline-hidden [&_.recharts-sector]:outline-hidden [&_.recharts-sector[stroke='#fff']]:stroke-transparent [&_.recharts-surface]:outline-hidden\",\n className\n )}\n {...props}\n >\n <ChartStyle id={chartId} config={config} />\n <RechartsPrimitive.ResponsiveContainer>\n {children}\n </RechartsPrimitive.ResponsiveContainer>\n </div>\n </ChartContext.Provider>\n );\n}\n\nconst ChartStyle = ({ id, config }: { id: string; config: ChartConfig }) => {\n const colorConfig = Object.entries(config).filter(\n ([, config]) => config.theme || config.color\n );\n\n if (!colorConfig.length) {\n return null;\n }\n\n return (\n <style\n dangerouslySetInnerHTML={{\n __html: Object.entries(THEMES)\n .map(\n ([theme, prefix]) => `\n${prefix} [data-chart=${id}] {\n${colorConfig\n .map(([key, itemConfig]) => {\n const color =\n itemConfig.theme?.[theme as keyof typeof itemConfig.theme] ||\n itemConfig.color;\n return color ? ` --color-${key}: ${color};` : null;\n })\n .join(\"\\n\")}\n}\n`\n )\n .join(\"\\n\"),\n }}\n />\n );\n};\n\nconst ChartTooltip = RechartsPrimitive.Tooltip;\n\nfunction ChartTooltipContent({\n active,\n payload,\n className,\n indicator = \"dot\",\n hideLabel = false,\n hideIndicator = false,\n label,\n labelFormatter,\n labelClassName,\n formatter,\n color,\n nameKey,\n labelKey,\n}: React.ComponentProps<typeof RechartsPrimitive.Tooltip> &\n React.ComponentProps<\"div\"> & {\n hideLabel?: boolean;\n hideIndicator?: boolean;\n indicator?: \"line\" | \"dot\" | \"dashed\";\n nameKey?: string;\n labelKey?: string;\n }) {\n const { config } = useChart();\n\n const tooltipLabel = React.useMemo(() => {\n if (hideLabel || !payload?.length) {\n return null;\n }\n\n const [item] = payload;\n const key = `${labelKey || item?.dataKey || item?.name || \"value\"}`;\n const itemConfig = getPayloadConfigFromPayload(config, item, key);\n const value =\n !labelKey && typeof label === \"string\"\n ? config[label as keyof typeof config]?.label || label\n : itemConfig?.label;\n\n if (labelFormatter) {\n return (\n <div className={cn(\"font-medium\", labelClassName)}>\n {labelFormatter(value, payload)}\n </div>\n );\n }\n\n if (!value) {\n return null;\n }\n\n return <div className={cn(\"font-medium\", labelClassName)}>{value}</div>;\n }, [\n label,\n labelFormatter,\n payload,\n hideLabel,\n labelClassName,\n config,\n labelKey,\n ]);\n\n if (!active || !payload?.length) {\n return null;\n }\n\n const nestLabel = payload.length === 1 && indicator !== \"dot\";\n\n return (\n <div\n className={cn(\n \"border-neutral-200/50 bg-white grid min-w-[8rem] items-start gap-1.5 rounded-lg border border-neutral-200 px-2.5 py-1.5 text-xs shadow-xl dark:border-neutral-800/50 dark:bg-neutral-950 dark:border-neutral-800\",\n className\n )}\n >\n {!nestLabel ? tooltipLabel : null}\n <div className=\"grid gap-1.5\">\n {payload.map((item, index) => {\n const key = `${nameKey || item.name || item.dataKey || \"value\"}`;\n const itemConfig = getPayloadConfigFromPayload(config, item, key);\n const indicatorColor = color || item.payload.fill || item.color;\n\n return (\n <div\n key={item.dataKey}\n className={cn(\n \"[&>svg]:text-neutral-500 flex w-full flex-wrap items-stretch gap-2 [&>svg]:h-2.5 [&>svg]:w-2.5 dark:[&>svg]:text-neutral-400\",\n indicator === \"dot\" && \"items-center\"\n )}\n >\n {formatter && item?.value !== undefined && item.name ? (\n formatter(item.value, item.name, item, index, item.payload)\n ) : (\n <>\n {itemConfig?.icon ? (\n <itemConfig.icon />\n ) : (\n !hideIndicator && (\n <div\n className={cn(\n \"shrink-0 rounded-[2px] border-(--color-border) bg-(--color-bg)\",\n {\n \"h-2.5 w-2.5\": indicator === \"dot\",\n \"w-1\": indicator === \"line\",\n \"w-0 border-[1.5px] border-dashed bg-transparent\":\n indicator === \"dashed\",\n \"my-0.5\": nestLabel && indicator === \"dashed\",\n }\n )}\n style={\n {\n \"--color-bg\": indicatorColor,\n \"--color-border\": indicatorColor,\n } as React.CSSProperties\n }\n />\n )\n )}\n <div\n className={cn(\n \"flex flex-1 justify-between leading-none\",\n nestLabel ? \"items-end\" : \"items-center\"\n )}\n >\n <div className=\"grid gap-1.5\">\n {nestLabel ? tooltipLabel : null}\n <span className=\"text-neutral-500 dark:text-neutral-400\">\n {itemConfig?.label || item.name}\n </span>\n </div>\n {item.value && (\n <span className=\"text-neutral-950 font-mono font-medium tabular-nums dark:text-neutral-50\">\n {item.value.toLocaleString()}\n </span>\n )}\n </div>\n </>\n )}\n </div>\n );\n })}\n </div>\n </div>\n );\n}\n\nconst ChartLegend = RechartsPrimitive.Legend;\n\nfunction ChartLegendContent({\n className,\n hideIcon = false,\n payload,\n verticalAlign = \"bottom\",\n nameKey,\n}: React.ComponentProps<\"div\"> &\n Pick<RechartsPrimitive.LegendProps, \"payload\" | \"verticalAlign\"> & {\n hideIcon?: boolean;\n nameKey?: string;\n }) {\n const { config } = useChart();\n\n if (!payload?.length) {\n return null;\n }\n\n return (\n <div\n className={cn(\n \"flex items-center justify-center gap-4\",\n verticalAlign === \"top\" ? \"pb-3\" : \"pt-3\",\n className\n )}\n >\n {payload.map((item) => {\n const key = `${nameKey || item.dataKey || \"value\"}`;\n const itemConfig = getPayloadConfigFromPayload(config, item, key);\n\n return (\n <div\n key={item.value}\n className={cn(\n \"[&>svg]:text-neutral-500 flex items-center gap-1.5 [&>svg]:h-3 [&>svg]:w-3 dark:[&>svg]:text-neutral-400\"\n )}\n >\n {itemConfig?.icon && !hideIcon ? (\n <itemConfig.icon />\n ) : (\n <div\n className=\"h-2 w-2 shrink-0 rounded-[2px]\"\n style={{\n backgroundColor: item.color,\n }}\n />\n )}\n {itemConfig?.label}\n </div>\n );\n })}\n </div>\n );\n}\n\n// Helper to extract item config from a payload.\nfunction getPayloadConfigFromPayload(\n config: ChartConfig,\n payload: unknown,\n key: string\n) {\n if (typeof payload !== \"object\" || payload === null) {\n return undefined;\n }\n\n const payloadPayload =\n \"payload\" in payload &&\n typeof payload.payload === \"object\" &&\n payload.payload !== null\n ? payload.payload\n : undefined;\n\n let configLabelKey: string = key;\n\n if (\n key in payload &&\n typeof payload[key as keyof typeof payload] === \"string\"\n ) {\n configLabelKey = payload[key as keyof typeof payload] as string;\n } else if (\n payloadPayload &&\n key in payloadPayload &&\n typeof payloadPayload[key as keyof typeof payloadPayload] === \"string\"\n ) {\n configLabelKey = payloadPayload[\n key as keyof typeof payloadPayload\n ] as string;\n }\n\n return configLabelKey in config\n ? config[configLabelKey]\n : config[key as keyof typeof config];\n}\n\nexport {\n ChartContainer,\n ChartTooltip,\n ChartTooltipContent,\n ChartLegend,\n ChartLegendContent,\n ChartStyle,\n};\n"],"names":["THEMES","ChartContext","React","useChart","context","ChartContainer","id","className","children","config","props","uniqueId","chartId","jsxs","cn","jsx","ChartStyle","RechartsPrimitive","colorConfig","theme","prefix","key","itemConfig","color","_a","ChartTooltip","ChartTooltipContent","active","payload","indicator","hideLabel","hideIndicator","label","labelFormatter","labelClassName","formatter","nameKey","labelKey","tooltipLabel","item","getPayloadConfigFromPayload","value","nestLabel","index","indicatorColor","Fragment","ChartLegend","ChartLegendContent","hideIcon","verticalAlign","payloadPayload","configLabelKey"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("../../_virtual/jsx-runtime.cjs.js"),d=require("@radix-ui/react-checkbox"),o=require("lucide-react"),c=require("../../lib/utils.cjs.js");function s(e){const r=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const t in e)if(t!=="default"){const i=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,i.get?i:{enumerable:!0,get:()=>e[t]})}}return r.default=e,Object.freeze(r)}const n=s(d);function l({className:e,...r}){return a.jsxRuntimeExports.jsx(n.Root,{"data-slot":"checkbox",className:c.cn("peer border-neutral-200 data-[state=checked]:bg-neutral-900 data-[state=checked]:text-neutral-50 data-[state=checked]:border-neutral-900 focus-visible:border-neutral-950 focus-visible:ring-neutral-950/50 aria-invalid:ring-red-500/20 dark:aria-invalid:ring-red-500/40 aria-invalid:border-red-500 size-4 shrink-0 rounded-[4px] border shadow-xs transition-shadow outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 dark:border-neutral-800 dark:data-[state=checked]:bg-neutral-50 dark:data-[state=checked]:text-neutral-900 dark:data-[state=checked]:border-neutral-50 dark:focus-visible:border-neutral-300 dark:focus-visible:ring-neutral-300/50 dark:aria-invalid:ring-red-900/20 dark:dark:aria-invalid:ring-red-900/40 dark:aria-invalid:border-red-900",e),...r,children:a.jsxRuntimeExports.jsx(n.Indicator,{"data-slot":"checkbox-indicator",className:"flex items-center justify-center text-current transition-none",children:a.jsxRuntimeExports.jsx(o.CheckIcon,{className:"size-3.5"})})})}exports.Checkbox=l;
2
+ //# sourceMappingURL=checkbox.cjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkbox.cjs.js","sources":["../../../src/components/ui/checkbox.tsx"],"sourcesContent":["\"use client\"\n\nimport * as React from \"react\"\nimport * as CheckboxPrimitive from \"@radix-ui/react-checkbox\"\nimport { CheckIcon } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\n\nfunction Checkbox({\n className,\n ...props\n}: React.ComponentProps<typeof CheckboxPrimitive.Root>) {\n return (\n <CheckboxPrimitive.Root\n data-slot=\"checkbox\"\n className={cn(\n \"peer border-neutral-200 data-[state=checked]:bg-neutral-900 data-[state=checked]:text-neutral-50 data-[state=checked]:border-neutral-900 focus-visible:border-neutral-950 focus-visible:ring-neutral-950/50 aria-invalid:ring-red-500/20 dark:aria-invalid:ring-red-500/40 aria-invalid:border-red-500 size-4 shrink-0 rounded-[4px] border shadow-xs transition-shadow outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 dark:border-neutral-800 dark:data-[state=checked]:bg-neutral-50 dark:data-[state=checked]:text-neutral-900 dark:data-[state=checked]:border-neutral-50 dark:focus-visible:border-neutral-300 dark:focus-visible:ring-neutral-300/50 dark:aria-invalid:ring-red-900/20 dark:dark:aria-invalid:ring-red-900/40 dark:aria-invalid:border-red-900\",\n className\n )}\n {...props}\n >\n <CheckboxPrimitive.Indicator\n data-slot=\"checkbox-indicator\"\n className=\"flex items-center justify-center text-current transition-none\"\n >\n <CheckIcon className=\"size-3.5\" />\n </CheckboxPrimitive.Indicator>\n </CheckboxPrimitive.Root>\n )\n}\n\nexport { Checkbox }\n"],"names":["Checkbox","className","props","jsx","CheckboxPrimitive","cn","CheckIcon"],"mappings":"mgBAQA,SAASA,EAAS,CAChB,UAAAC,EACA,GAAGC,CACL,EAAwD,CAEpD,OAAAC,EAAA,kBAAA,IAACC,EAAkB,KAAlB,CACC,YAAU,WACV,UAAWC,EAAA,GACT,8wBACAJ,CACF,EACC,GAAGC,EAEJ,SAAAC,EAAA,kBAAA,IAACC,EAAkB,UAAlB,CACC,YAAU,qBACV,UAAU,gEAEV,SAAAD,EAAAA,kBAAAA,IAACG,EAAAA,UAAU,CAAA,UAAU,UAAW,CAAA,CAAA,CAAA,CAClC,CACF,CAEJ"}
@@ -0,0 +1,32 @@
1
+ import { j as r } from "../../_virtual/jsx-runtime.es.js";
2
+ import * as e from "@radix-ui/react-checkbox";
3
+ import { CheckIcon as i } from "lucide-react";
4
+ import { cn as d } from "../../lib/utils.es.js";
5
+ function c({
6
+ className: a,
7
+ ...t
8
+ }) {
9
+ return /* @__PURE__ */ r.jsx(
10
+ e.Root,
11
+ {
12
+ "data-slot": "checkbox",
13
+ className: d(
14
+ "peer border-neutral-200 data-[state=checked]:bg-neutral-900 data-[state=checked]:text-neutral-50 data-[state=checked]:border-neutral-900 focus-visible:border-neutral-950 focus-visible:ring-neutral-950/50 aria-invalid:ring-red-500/20 dark:aria-invalid:ring-red-500/40 aria-invalid:border-red-500 size-4 shrink-0 rounded-[4px] border shadow-xs transition-shadow outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 dark:border-neutral-800 dark:data-[state=checked]:bg-neutral-50 dark:data-[state=checked]:text-neutral-900 dark:data-[state=checked]:border-neutral-50 dark:focus-visible:border-neutral-300 dark:focus-visible:ring-neutral-300/50 dark:aria-invalid:ring-red-900/20 dark:dark:aria-invalid:ring-red-900/40 dark:aria-invalid:border-red-900",
15
+ a
16
+ ),
17
+ ...t,
18
+ children: /* @__PURE__ */ r.jsx(
19
+ e.Indicator,
20
+ {
21
+ "data-slot": "checkbox-indicator",
22
+ className: "flex items-center justify-center text-current transition-none",
23
+ children: /* @__PURE__ */ r.jsx(i, { className: "size-3.5" })
24
+ }
25
+ )
26
+ }
27
+ );
28
+ }
29
+ export {
30
+ c as Checkbox
31
+ };
32
+ //# sourceMappingURL=checkbox.es.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkbox.es.js","sources":["../../../src/components/ui/checkbox.tsx"],"sourcesContent":["\"use client\"\n\nimport * as React from \"react\"\nimport * as CheckboxPrimitive from \"@radix-ui/react-checkbox\"\nimport { CheckIcon } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\n\nfunction Checkbox({\n className,\n ...props\n}: React.ComponentProps<typeof CheckboxPrimitive.Root>) {\n return (\n <CheckboxPrimitive.Root\n data-slot=\"checkbox\"\n className={cn(\n \"peer border-neutral-200 data-[state=checked]:bg-neutral-900 data-[state=checked]:text-neutral-50 data-[state=checked]:border-neutral-900 focus-visible:border-neutral-950 focus-visible:ring-neutral-950/50 aria-invalid:ring-red-500/20 dark:aria-invalid:ring-red-500/40 aria-invalid:border-red-500 size-4 shrink-0 rounded-[4px] border shadow-xs transition-shadow outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 dark:border-neutral-800 dark:data-[state=checked]:bg-neutral-50 dark:data-[state=checked]:text-neutral-900 dark:data-[state=checked]:border-neutral-50 dark:focus-visible:border-neutral-300 dark:focus-visible:ring-neutral-300/50 dark:aria-invalid:ring-red-900/20 dark:dark:aria-invalid:ring-red-900/40 dark:aria-invalid:border-red-900\",\n className\n )}\n {...props}\n >\n <CheckboxPrimitive.Indicator\n data-slot=\"checkbox-indicator\"\n className=\"flex items-center justify-center text-current transition-none\"\n >\n <CheckIcon className=\"size-3.5\" />\n </CheckboxPrimitive.Indicator>\n </CheckboxPrimitive.Root>\n )\n}\n\nexport { Checkbox }\n"],"names":["Checkbox","className","props","jsx","CheckboxPrimitive","cn","CheckIcon"],"mappings":";;;;AAQA,SAASA,EAAS;AAAA,EAChB,WAAAC;AAAA,EACA,GAAGC;AACL,GAAwD;AAEpD,SAAAC,gBAAAA,EAAA;AAAA,IAACC,EAAkB;AAAA,IAAlB;AAAA,MACC,aAAU;AAAA,MACV,WAAWC;AAAA,QACT;AAAA,QACAJ;AAAA,MACF;AAAA,MACC,GAAGC;AAAA,MAEJ,UAAAC,gBAAAA,EAAA;AAAA,QAACC,EAAkB;AAAA,QAAlB;AAAA,UACC,aAAU;AAAA,UACV,WAAU;AAAA,UAEV,UAAAD,gBAAAA,EAAAA,IAACG,GAAU,EAAA,WAAU,WAAW,CAAA;AAAA,QAAA;AAAA,MAAA;AAAA,IAClC;AAAA,EACF;AAEJ;"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("../../_virtual/jsx-runtime.cjs.js"),n=require("@radix-ui/react-collapsible");function s(e){const l=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const t in e)if(t!=="default"){const r=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(l,t,r.get?r:{enumerable:!0,get:()=>e[t]})}}return l.default=e,Object.freeze(l)}const i=s(n);function a({...e}){return o.jsxRuntimeExports.jsx(i.Root,{"data-slot":"collapsible",...e})}function u({...e}){return o.jsxRuntimeExports.jsx(i.CollapsibleTrigger,{"data-slot":"collapsible-trigger",...e})}function c({...e}){return o.jsxRuntimeExports.jsx(i.CollapsibleContent,{"data-slot":"collapsible-content",...e})}exports.Collapsible=a;exports.CollapsibleContent=c;exports.CollapsibleTrigger=u;
2
+ //# sourceMappingURL=collapsible.cjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"collapsible.cjs.js","sources":["../../../src/components/ui/collapsible.tsx"],"sourcesContent":["\"use client\"\n\nimport * as CollapsiblePrimitive from \"@radix-ui/react-collapsible\"\n\nfunction Collapsible({\n ...props\n}: React.ComponentProps<typeof CollapsiblePrimitive.Root>) {\n return <CollapsiblePrimitive.Root data-slot=\"collapsible\" {...props} />\n}\n\nfunction CollapsibleTrigger({\n ...props\n}: React.ComponentProps<typeof CollapsiblePrimitive.CollapsibleTrigger>) {\n return (\n <CollapsiblePrimitive.CollapsibleTrigger\n data-slot=\"collapsible-trigger\"\n {...props}\n />\n )\n}\n\nfunction CollapsibleContent({\n ...props\n}: React.ComponentProps<typeof CollapsiblePrimitive.CollapsibleContent>) {\n return (\n <CollapsiblePrimitive.CollapsibleContent\n data-slot=\"collapsible-content\"\n {...props}\n />\n )\n}\n\nexport { Collapsible, CollapsibleTrigger, CollapsibleContent }\n"],"names":["Collapsible","props","CollapsiblePrimitive","CollapsibleTrigger","jsx","CollapsibleContent"],"mappings":"wcAIA,SAASA,EAAY,CACnB,GAAGC,CACL,EAA2D,CACzD,+BAAQC,EAAqB,KAArB,CAA0B,YAAU,cAAe,GAAGD,EAAO,CACvE,CAEA,SAASE,EAAmB,CAC1B,GAAGF,CACL,EAAyE,CAErE,OAAAG,EAAA,kBAAA,IAACF,EAAqB,mBAArB,CACC,YAAU,sBACT,GAAGD,CAAA,CACN,CAEJ,CAEA,SAASI,EAAmB,CAC1B,GAAGJ,CACL,EAAyE,CAErE,OAAAG,EAAA,kBAAA,IAACF,EAAqB,mBAArB,CACC,YAAU,sBACT,GAAGD,CAAA,CACN,CAEJ"}