@customafk/lunas-ui 0.0.6 → 0.0.8

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 (621) hide show
  1. package/dist/{add-new-BaABbnol.js → add-new-C--Ee4bj.js} +1 -2
  2. package/dist/{add-new-DUoS_-n2.cjs → add-new-pfLdk0Hp.cjs} +1 -2
  3. package/dist/{alert-dialog-0KwdjY-6.js → alert-dialog-CQa0TLlF.js} +1 -2
  4. package/dist/{alert-dialog-D5ZqgIiC.cjs → alert-dialog-D1DFrl-0.cjs} +1 -2
  5. package/dist/badge-D_qEoSL8.js +1 -2
  6. package/dist/{badge-CRXT2dH_.cjs → badge-DfSj5nwV.cjs} +1 -2
  7. package/dist/button-Bku3bKv9.js +1 -2
  8. package/dist/{button-DN7a1ENd.d.ts → button-CS0x-mYR.d.cts} +5 -6
  9. package/dist/{button-D-ldkdUf.d.cts → button-CxHABSnr.d.ts} +6 -7
  10. package/dist/{button-Dzv_nos1.cjs → button-CycE0WzB.cjs} +1 -2
  11. package/dist/calendar-DaYVxwJx.js +1 -0
  12. package/dist/calendar-DzAxQqFI.cjs +1 -0
  13. package/dist/{card-Dta5eW8u.cjs → card-D7C05tvk.cjs} +1 -2
  14. package/dist/card-D8cxRC5y.js +1 -2
  15. package/dist/cards/simple-card.cjs +1 -2
  16. package/dist/cards/simple-card.d.cts +1 -2
  17. package/dist/cards/simple-card.d.ts +3 -4
  18. package/dist/cards/simple-card.js +1 -2
  19. package/dist/chunk-hhQzssFb.cjs +1 -0
  20. package/dist/{command-DPWCoUcB.d.cts → command-BfYiUikG.d.cts} +12 -13
  21. package/dist/{command-CsntVmEz.cjs → command-CkGJbvFq.cjs} +1 -2
  22. package/dist/{command-DswMfHba.d.ts → command-CycGGWOh.d.ts} +12 -13
  23. package/dist/{command-_L9bD9a-.js → command-Ir_Vqgds.js} +1 -2
  24. package/dist/data-display/country.cjs +1 -2
  25. package/dist/data-display/country.d.cts +1 -2
  26. package/dist/data-display/country.d.ts +2 -3
  27. package/dist/data-display/country.js +1 -2
  28. package/dist/data-display/data-list.cjs +1 -2
  29. package/dist/data-display/data-list.d.cts +1 -2
  30. package/dist/data-display/data-list.d.ts +1 -2
  31. package/dist/data-display/data-list.js +1 -2
  32. package/dist/data-display/date.cjs +1 -1
  33. package/dist/data-display/date.d.cts +1 -2
  34. package/dist/data-display/date.d.ts +1 -2
  35. package/dist/data-display/empty.cjs +1 -2
  36. package/dist/data-display/empty.d.cts +3 -4
  37. package/dist/data-display/empty.d.ts +3 -4
  38. package/dist/data-display/empty.js +1 -2
  39. package/dist/data-display/name.cjs +1 -2
  40. package/dist/data-display/name.d.cts +1 -2
  41. package/dist/data-display/name.d.ts +1 -2
  42. package/dist/data-display/name.js +1 -2
  43. package/dist/data-display/phone-number.cjs +1 -2
  44. package/dist/data-display/phone-number.d.cts +1 -2
  45. package/dist/data-display/phone-number.d.ts +1 -2
  46. package/dist/data-display/phone-number.js +1 -2
  47. package/dist/data-display/role-badge.cjs +1 -2
  48. package/dist/data-display/role-badge.d.cts +1 -2
  49. package/dist/data-display/role-badge.d.ts +2 -3
  50. package/dist/data-display/role-badge.js +1 -2
  51. package/dist/data-display/statistic.cjs +1 -2
  52. package/dist/data-display/statistic.d.cts +3 -4
  53. package/dist/data-display/statistic.d.ts +3 -4
  54. package/dist/data-display/statistic.js +1 -2
  55. package/dist/date-BMq_DNsv.js +1 -2
  56. package/dist/{date-nd8WkPlx.cjs → date-ByLOGsKl.cjs} +1 -2
  57. package/dist/{dialog-CQI6CMkF.d.cts → dialog-B13T--98.d.ts} +12 -13
  58. package/dist/{dialog-W-DmDMEE.cjs → dialog-B3cQOpjg.cjs} +1 -2
  59. package/dist/{dialog-C4hf-Puw.js → dialog-BLDh3Gqw.js} +1 -2
  60. package/dist/{dialog-I7tlD4sO.d.ts → dialog-Dspjpsjh.d.cts} +12 -13
  61. package/dist/dialogs/confirm-dialog.cjs +1 -2
  62. package/dist/dialogs/confirm-dialog.d.cts +1 -2
  63. package/dist/dialogs/confirm-dialog.d.ts +1 -2
  64. package/dist/dialogs/confirm-dialog.js +1 -2
  65. package/dist/dialogs/detail-dialog/index.cjs +1 -2
  66. package/dist/dialogs/detail-dialog/index.d.cts +1 -2
  67. package/dist/dialogs/detail-dialog/index.d.ts +1 -2
  68. package/dist/dialogs/detail-dialog/index.js +1 -2
  69. package/dist/dialogs/error-dialog.cjs +1 -1
  70. package/dist/dialogs/error-dialog.d.cts +1 -2
  71. package/dist/dialogs/error-dialog.d.ts +1 -2
  72. package/dist/dialogs/error-dialog.js +1 -1
  73. package/dist/dialogs/form-dialog.cjs +1 -2
  74. package/dist/dialogs/form-dialog.d.cts +3 -4
  75. package/dist/dialogs/form-dialog.d.ts +3 -4
  76. package/dist/dialogs/form-dialog.js +1 -2
  77. package/dist/dialogs/loading-dialog.cjs +1 -2
  78. package/dist/dialogs/loading-dialog.d.cts +1 -2
  79. package/dist/dialogs/loading-dialog.d.ts +1 -2
  80. package/dist/dialogs/loading-dialog.js +1 -2
  81. package/dist/{dropdown-menu-Bv18S56o.cjs → dropdown-menu-CPvB_jOC.cjs} +1 -2
  82. package/dist/{dropdown-menu-jCQwh2rG.js → dropdown-menu-Cx-Wime0.js} +1 -2
  83. package/dist/{error-dialog-DpQgL5Hy.cjs → error-dialog-BTjeT7x-.cjs} +1 -2
  84. package/dist/{error-dialog-D_4WL-Hj.js → error-dialog-DlhosP10.js} +1 -2
  85. package/dist/flex-ILvQrYMJ.js +1 -2
  86. package/dist/{flex-CNA_SId-.cjs → flex-yTyoLpgH.cjs} +1 -2
  87. package/dist/form-CA4hhSV5.js +1 -2
  88. package/dist/{form-CYZkgobJ.cjs → form-C_PCHrpx.cjs} +1 -2
  89. package/dist/{form-wrapper-BYbwt1zC.cjs → form-wrapper-CCqogufb.cjs} +1 -2
  90. package/dist/{form-wrapper-D-2Uz518.js → form-wrapper-YPIbD8rh.js} +1 -2
  91. package/dist/forms/combobox-field.cjs +41 -0
  92. package/dist/forms/combobox-field.d.cts +27 -0
  93. package/dist/forms/combobox-field.d.ts +27 -0
  94. package/dist/forms/combobox-field.js +41 -0
  95. package/dist/forms/date-field.cjs +1 -0
  96. package/dist/forms/date-field.d.cts +21 -0
  97. package/dist/forms/date-field.d.ts +21 -0
  98. package/dist/forms/date-field.js +1 -0
  99. package/dist/forms/form-wrapper.cjs +1 -1
  100. package/dist/forms/form-wrapper.d.cts +3 -4
  101. package/dist/forms/form-wrapper.d.ts +3 -4
  102. package/dist/forms/form-wrapper.js +1 -1
  103. package/dist/forms/multi-select-field.cjs +1 -0
  104. package/dist/forms/multi-select-field.d.cts +29 -0
  105. package/dist/forms/multi-select-field.d.ts +29 -0
  106. package/dist/forms/multi-select-field.js +1 -0
  107. package/dist/forms/number-field.cjs +1 -0
  108. package/dist/forms/number-field.d.cts +27 -0
  109. package/dist/forms/number-field.d.ts +27 -0
  110. package/dist/forms/number-field.js +1 -0
  111. package/dist/forms/password-field.cjs +1 -0
  112. package/dist/forms/password-field.d.cts +22 -0
  113. package/dist/forms/password-field.d.ts +22 -0
  114. package/dist/forms/password-field.js +1 -0
  115. package/dist/forms/select-field.cjs +1 -0
  116. package/dist/forms/select-field.d.cts +32 -0
  117. package/dist/forms/select-field.d.ts +32 -0
  118. package/dist/forms/select-field.js +1 -0
  119. package/dist/forms/switch-field.cjs +1 -0
  120. package/dist/forms/switch-field.d.cts +18 -0
  121. package/dist/forms/switch-field.d.ts +18 -0
  122. package/dist/forms/switch-field.js +1 -0
  123. package/dist/forms/text-field.cjs +1 -0
  124. package/dist/forms/text-field.d.cts +30 -0
  125. package/dist/forms/text-field.d.ts +30 -0
  126. package/dist/forms/text-field.js +1 -0
  127. package/dist/forms/textarea-field.cjs +1 -0
  128. package/dist/forms/textarea-field.d.cts +26 -0
  129. package/dist/forms/textarea-field.d.ts +26 -0
  130. package/dist/forms/textarea-field.js +1 -0
  131. package/dist/{input-k2bQHeqx.d.ts → input-BcIy0lq8.d.cts} +3 -4
  132. package/dist/{input-DXEBB91E.cjs → input-C8Sebaue.cjs} +1 -2
  133. package/dist/{input-BZ9_HhgL.d.cts → input-Cux9upuQ.d.ts} +3 -4
  134. package/dist/{input-FzKbxUq2.js → input-Dmaq3fzf.js} +1 -2
  135. package/dist/label-Cxbctr6x.js +1 -2
  136. package/dist/{label-CunjD1rx.cjs → label-i858Jr98.cjs} +1 -2
  137. package/dist/layouts/flex.cjs +1 -1
  138. package/dist/layouts/flex.d.cts +6 -7
  139. package/dist/layouts/flex.d.ts +8 -9
  140. package/dist/layouts/main/index.cjs +1 -2
  141. package/dist/layouts/main/index.d.cts +13 -6
  142. package/dist/layouts/main/index.d.ts +13 -6
  143. package/dist/layouts/main/index.js +1 -2
  144. package/dist/multi-select-DZBXSr7F.cjs +1 -0
  145. package/dist/multi-select-LYl29d4h.js +1 -0
  146. package/dist/paragraph-Bey03JkA.js +1 -2
  147. package/dist/{paragraph-ZxI8zxuf.cjs → paragraph-DWQ0PZt_.cjs} +1 -2
  148. package/dist/popover-Ce0OTSQL.cjs +1 -0
  149. package/dist/popover-tDri6Ded.js +1 -0
  150. package/dist/{progress-BnnOfAZN.cjs → progress-CHh9eRZi.cjs} +1 -2
  151. package/dist/{progress-CBccqUUJ.js → progress-CeXKNvJc.js} +1 -2
  152. package/dist/{refresh-BHt_h3N_.js → refresh-BPlmkCzH.js} +1 -2
  153. package/dist/{refresh-DrolZxuC.cjs → refresh-Dtz354hW.cjs} +1 -2
  154. package/dist/{scroll-area-DWWpaz5j.cjs → scroll-area-Ba9RvkDf.cjs} +1 -2
  155. package/dist/{scroll-area-Bdb_LSFF.js → scroll-area-D-IhBWqm.js} +1 -2
  156. package/dist/{search-input-L2sq0eB0.js → search-input-BG4-fO9W.js} +1 -2
  157. package/dist/{search-input-Bf4-FeWu.cjs → search-input-DVMQEBvb.cjs} +1 -2
  158. package/dist/{select-CWUsisI0.js → select-4IO3vAjO.js} +1 -2
  159. package/dist/{select-ZSyt5zCe.cjs → select-UsiicIRo.cjs} +1 -2
  160. package/dist/{separator-DTB3sDNG.cjs → separator-D4iTmsID.cjs} +1 -2
  161. package/dist/{separator-BpsL0PlX.js → separator-DMdqEz29.js} +1 -2
  162. package/dist/{separator-DQ9iJjVc.d.ts → separator-DtZ0fiIK.d.cts} +3 -4
  163. package/dist/{separator-DSY4OI_p.d.cts → separator-J8f9PdbI.d.ts} +3 -4
  164. package/dist/{sheet-C8r2QGpq.js → sheet-2JqHfdYi.js} +1 -2
  165. package/dist/{sheet-CCwbAaA6.cjs → sheet-Dr-a3-o2.cjs} +1 -2
  166. package/dist/{sidebar-C166f_9B.js → sidebar-COBzB7S8.js} +1 -2
  167. package/dist/{sidebar-BLPMNltJ.cjs → sidebar-gXuaHBie.cjs} +1 -2
  168. package/dist/skeleton-BTQm_mtV.cjs +1 -0
  169. package/dist/{skeleton-DYmX0k94.js → skeleton-D1_Brnl9.js} +1 -2
  170. package/dist/switch-BlK-TC1h.js +1 -0
  171. package/dist/switch-CoP3UwNk.cjs +1 -0
  172. package/dist/table/index.cjs +1 -2
  173. package/dist/table/index.d.cts +3 -4
  174. package/dist/table/index.d.ts +3 -4
  175. package/dist/table/index.js +1 -2
  176. package/dist/{table-BSeev7T0.cjs → table-C46bXpzd.cjs} +1 -2
  177. package/dist/{table-BvA64mE8.js → table-nHFRC3DG.js} +1 -2
  178. package/dist/textarea-Dz6npuI4.cjs +1 -0
  179. package/dist/textarea-dM1DYNfF.js +1 -0
  180. package/dist/{title-xsPZpQpb.cjs → title-BlLBscIg.cjs} +1 -2
  181. package/dist/title-DTkABsIG.js +1 -2
  182. package/dist/{toggle-DygwYpUS.d.ts → toggle-3yC7NgOb.d.ts} +4 -5
  183. package/dist/{toggle-B3RSxTKL.d.cts → toggle-8wPArWPq.d.cts} +4 -5
  184. package/dist/{toggle-D_MDMruK.js → toggle-CHJ2edke.js} +1 -2
  185. package/dist/{toggle-CfL3GVe2.cjs → toggle-CzMYdDvC.cjs} +1 -2
  186. package/dist/{tooltip-Ct7VJoYo.d.ts → tooltip-Bo9id3nz.d.ts} +6 -7
  187. package/dist/tooltip-Dzyf5smh.js +1 -2
  188. package/dist/{tooltip-DNtfXZW2.d.cts → tooltip-JbjxxBNd.d.cts} +6 -7
  189. package/dist/{tooltip-Beb-_EPp.cjs → tooltip-MgToVOzy.cjs} +1 -2
  190. package/dist/types-B0V1F4Ml.d.cts +1 -2
  191. package/dist/{types-DLrIc2fL.d.ts → types-CmcNT14g.d.ts} +1 -2
  192. package/dist/types-CrbWxjnp.cjs +1 -2
  193. package/dist/types-DaIHddx7.js +1 -2
  194. package/dist/typography/paragraph.cjs +1 -1
  195. package/dist/typography/paragraph.d.cts +3 -4
  196. package/dist/typography/paragraph.d.ts +3 -4
  197. package/dist/typography/title.cjs +1 -1
  198. package/dist/typography/title.d.cts +3 -4
  199. package/dist/typography/title.d.ts +3 -4
  200. package/dist/ui/alert-dialog.cjs +1 -1
  201. package/dist/ui/alert-dialog.d.cts +13 -14
  202. package/dist/ui/alert-dialog.d.ts +13 -14
  203. package/dist/ui/alert-dialog.js +1 -1
  204. package/dist/ui/alert.cjs +1 -2
  205. package/dist/ui/alert.d.cts +7 -8
  206. package/dist/ui/alert.d.ts +7 -8
  207. package/dist/ui/alert.js +1 -2
  208. package/dist/ui/aspect-ratio.cjs +1 -2
  209. package/dist/ui/aspect-ratio.d.cts +3 -4
  210. package/dist/ui/aspect-ratio.d.ts +3 -4
  211. package/dist/ui/aspect-ratio.js +1 -2
  212. package/dist/ui/avatar.cjs +1 -2
  213. package/dist/ui/avatar.d.cts +5 -6
  214. package/dist/ui/avatar.d.ts +5 -6
  215. package/dist/ui/avatar.js +1 -2
  216. package/dist/ui/badge.cjs +1 -1
  217. package/dist/ui/badge.d.cts +6 -7
  218. package/dist/ui/badge.d.ts +6 -7
  219. package/dist/ui/breadcrumb.cjs +1 -2
  220. package/dist/ui/breadcrumb.d.cts +9 -10
  221. package/dist/ui/breadcrumb.d.ts +9 -10
  222. package/dist/ui/breadcrumb.js +1 -2
  223. package/dist/ui/button.cjs +1 -1
  224. package/dist/ui/button.d.cts +1 -1
  225. package/dist/ui/button.d.ts +1 -1
  226. package/dist/ui/buttons/add-new.cjs +1 -1
  227. package/dist/ui/buttons/add-new.d.cts +1 -2
  228. package/dist/ui/buttons/add-new.d.ts +1 -2
  229. package/dist/ui/buttons/add-new.js +1 -1
  230. package/dist/ui/buttons/refresh.cjs +1 -1
  231. package/dist/ui/buttons/refresh.d.cts +1 -2
  232. package/dist/ui/buttons/refresh.d.ts +1 -2
  233. package/dist/ui/buttons/refresh.js +1 -1
  234. package/dist/ui/calendar.cjs +1 -2
  235. package/dist/ui/calendar.d.cts +5 -6
  236. package/dist/ui/calendar.d.ts +5 -6
  237. package/dist/ui/calendar.js +1 -2
  238. package/dist/ui/card.cjs +1 -1
  239. package/dist/ui/card.d.cts +9 -10
  240. package/dist/ui/card.d.ts +9 -10
  241. package/dist/ui/carousel.cjs +1 -2
  242. package/dist/ui/carousel.d.cts +8 -9
  243. package/dist/ui/carousel.d.ts +8 -9
  244. package/dist/ui/carousel.js +1 -2
  245. package/dist/ui/collapsible.cjs +1 -2
  246. package/dist/ui/collapsible.d.cts +5 -6
  247. package/dist/ui/collapsible.d.ts +5 -6
  248. package/dist/ui/collapsible.js +1 -2
  249. package/dist/ui/command.cjs +1 -1
  250. package/dist/ui/command.d.cts +2 -2
  251. package/dist/ui/command.d.ts +2 -2
  252. package/dist/ui/command.js +1 -1
  253. package/dist/ui/context-menu.cjs +1 -2
  254. package/dist/ui/context-menu.d.cts +17 -18
  255. package/dist/ui/context-menu.d.ts +17 -18
  256. package/dist/ui/context-menu.js +1 -2
  257. package/dist/ui/dialog.cjs +1 -1
  258. package/dist/ui/dialog.d.cts +1 -1
  259. package/dist/ui/dialog.d.ts +1 -1
  260. package/dist/ui/dialog.js +1 -1
  261. package/dist/ui/dropdown-menu.cjs +1 -1
  262. package/dist/ui/dropdown-menu.d.cts +17 -18
  263. package/dist/ui/dropdown-menu.d.ts +17 -18
  264. package/dist/ui/dropdown-menu.js +1 -1
  265. package/dist/ui/file-uploader.cjs +2 -3
  266. package/dist/ui/file-uploader.d.cts +3 -4
  267. package/dist/ui/file-uploader.d.ts +3 -4
  268. package/dist/ui/file-uploader.js +2 -3
  269. package/dist/ui/form.cjs +1 -1
  270. package/dist/ui/form.d.cts +8 -9
  271. package/dist/ui/form.d.ts +8 -9
  272. package/dist/ui/hover-card.cjs +1 -2
  273. package/dist/ui/hover-card.d.cts +5 -6
  274. package/dist/ui/hover-card.d.ts +5 -6
  275. package/dist/ui/hover-card.js +1 -2
  276. package/dist/ui/input-otp.cjs +1 -2
  277. package/dist/ui/input-otp.d.cts +6 -7
  278. package/dist/ui/input-otp.d.ts +6 -7
  279. package/dist/ui/input-otp.js +1 -2
  280. package/dist/ui/input.cjs +1 -1
  281. package/dist/ui/input.d.cts +1 -1
  282. package/dist/ui/input.d.ts +1 -1
  283. package/dist/ui/input.js +1 -1
  284. package/dist/ui/inputs/search-input.cjs +1 -1
  285. package/dist/ui/inputs/search-input.d.cts +4 -5
  286. package/dist/ui/inputs/search-input.d.ts +4 -5
  287. package/dist/ui/inputs/search-input.js +1 -1
  288. package/dist/ui/label.cjs +1 -1
  289. package/dist/ui/label.d.cts +3 -4
  290. package/dist/ui/label.d.ts +3 -4
  291. package/dist/ui/menubar.cjs +1 -2
  292. package/dist/ui/menubar.d.cts +18 -19
  293. package/dist/ui/menubar.d.ts +18 -19
  294. package/dist/ui/menubar.js +1 -2
  295. package/dist/ui/multi-select.cjs +1 -2
  296. package/dist/ui/multi-select.d.cts +3 -4
  297. package/dist/ui/multi-select.d.ts +3 -4
  298. package/dist/ui/multi-select.js +1 -2
  299. package/dist/ui/navigation-menu.cjs +1 -2
  300. package/dist/ui/navigation-menu.d.cts +10 -11
  301. package/dist/ui/navigation-menu.d.ts +12 -13
  302. package/dist/ui/navigation-menu.js +1 -2
  303. package/dist/ui/pagination.cjs +1 -2
  304. package/dist/ui/pagination.d.cts +10 -11
  305. package/dist/ui/pagination.d.ts +10 -11
  306. package/dist/ui/pagination.js +1 -2
  307. package/dist/ui/popover.cjs +1 -2
  308. package/dist/ui/popover.d.cts +6 -7
  309. package/dist/ui/popover.d.ts +6 -7
  310. package/dist/ui/popover.js +1 -2
  311. package/dist/ui/progress.cjs +1 -1
  312. package/dist/ui/progress.d.cts +3 -4
  313. package/dist/ui/progress.d.ts +3 -4
  314. package/dist/ui/progress.js +1 -1
  315. package/dist/ui/radio-group.cjs +1 -2
  316. package/dist/ui/radio-group.d.cts +4 -5
  317. package/dist/ui/radio-group.d.ts +4 -5
  318. package/dist/ui/radio-group.js +1 -2
  319. package/dist/ui/resizable.cjs +1 -2
  320. package/dist/ui/resizable.d.cts +5 -6
  321. package/dist/ui/resizable.d.ts +5 -6
  322. package/dist/ui/resizable.js +1 -2
  323. package/dist/ui/scroll-area.cjs +1 -1
  324. package/dist/ui/scroll-area.d.cts +4 -5
  325. package/dist/ui/scroll-area.d.ts +4 -5
  326. package/dist/ui/scroll-area.js +1 -1
  327. package/dist/ui/select.cjs +1 -1
  328. package/dist/ui/select.d.cts +12 -13
  329. package/dist/ui/select.d.ts +12 -13
  330. package/dist/ui/select.js +1 -1
  331. package/dist/ui/separator.cjs +1 -1
  332. package/dist/ui/separator.d.cts +1 -1
  333. package/dist/ui/separator.d.ts +1 -1
  334. package/dist/ui/separator.js +1 -1
  335. package/dist/ui/sheet.cjs +1 -1
  336. package/dist/ui/sheet.d.cts +10 -11
  337. package/dist/ui/sheet.d.ts +10 -11
  338. package/dist/ui/sheet.js +1 -1
  339. package/dist/ui/sidebar.cjs +1 -1
  340. package/dist/ui/sidebar.d.cts +30 -31
  341. package/dist/ui/sidebar.d.ts +32 -33
  342. package/dist/ui/sidebar.js +1 -1
  343. package/dist/ui/skeleton.cjs +1 -1
  344. package/dist/ui/skeleton.d.cts +3 -4
  345. package/dist/ui/skeleton.d.ts +3 -4
  346. package/dist/ui/skeleton.js +1 -1
  347. package/dist/ui/slider.cjs +1 -2
  348. package/dist/ui/slider.d.cts +3 -4
  349. package/dist/ui/slider.d.ts +3 -4
  350. package/dist/ui/slider.js +1 -2
  351. package/dist/ui/sonner.cjs +1 -2
  352. package/dist/ui/sonner.d.cts +3 -4
  353. package/dist/ui/sonner.d.ts +3 -4
  354. package/dist/ui/sonner.js +1 -2
  355. package/dist/ui/switch.cjs +1 -2
  356. package/dist/ui/switch.d.cts +3 -4
  357. package/dist/ui/switch.d.ts +3 -4
  358. package/dist/ui/switch.js +1 -2
  359. package/dist/ui/table.cjs +1 -1
  360. package/dist/ui/table.d.cts +10 -11
  361. package/dist/ui/table.d.ts +10 -11
  362. package/dist/ui/table.js +1 -1
  363. package/dist/ui/tabs.cjs +1 -2
  364. package/dist/ui/tabs.d.cts +6 -7
  365. package/dist/ui/tabs.d.ts +6 -7
  366. package/dist/ui/tabs.js +1 -2
  367. package/dist/ui/textarea.cjs +1 -2
  368. package/dist/ui/textarea.d.cts +3 -4
  369. package/dist/ui/textarea.d.ts +3 -4
  370. package/dist/ui/textarea.js +1 -2
  371. package/dist/ui/toggle-group.cjs +1 -2
  372. package/dist/ui/toggle-group.d.cts +5 -6
  373. package/dist/ui/toggle-group.d.ts +5 -6
  374. package/dist/ui/toggle-group.js +1 -2
  375. package/dist/ui/toggle.cjs +1 -1
  376. package/dist/ui/toggle.d.cts +1 -1
  377. package/dist/ui/toggle.d.ts +1 -1
  378. package/dist/ui/toggle.js +1 -1
  379. package/dist/ui/tooltip.cjs +1 -1
  380. package/dist/ui/tooltip.d.cts +1 -1
  381. package/dist/ui/tooltip.d.ts +1 -1
  382. package/dist/utils-D9AH0PUV.js +1 -2
  383. package/dist/utils-DaJ1XZgX.cjs +1 -0
  384. package/package.json +54 -9
  385. package/packages/components/cards/simple-card.tsx +37 -0
  386. package/packages/components/data-display/country.tsx +59 -0
  387. package/packages/components/data-display/data-list.tsx +38 -0
  388. package/packages/components/data-display/date.tsx +215 -0
  389. package/packages/components/data-display/empty.tsx +25 -0
  390. package/packages/components/data-display/name.tsx +25 -0
  391. package/packages/components/data-display/phone-number.tsx +22 -0
  392. package/packages/components/data-display/role-badge.tsx +33 -0
  393. package/packages/components/data-display/statistic.tsx +141 -0
  394. package/packages/components/dialogs/confirm-dialog.tsx +51 -0
  395. package/packages/components/dialogs/detail-dialog/component/header.tsx +14 -0
  396. package/packages/components/dialogs/detail-dialog/component/main.tsx +39 -0
  397. package/packages/components/dialogs/detail-dialog/component/sidebar.tsx +747 -0
  398. package/packages/components/dialogs/detail-dialog/component/wrapper.tsx +17 -0
  399. package/packages/components/dialogs/detail-dialog/index.tsx +100 -0
  400. package/packages/components/dialogs/error-dialog.tsx +48 -0
  401. package/packages/components/dialogs/form-dialog.tsx +106 -0
  402. package/packages/components/dialogs/loading-dialog.tsx +23 -0
  403. package/packages/components/forms/combobox-field.tsx +113 -0
  404. package/packages/components/forms/date-field.tsx +65 -0
  405. package/packages/components/forms/form-wrapper.tsx +146 -0
  406. package/packages/components/forms/multi-select-field.tsx +56 -0
  407. package/packages/components/forms/number-field.tsx +56 -0
  408. package/packages/components/forms/password-field.tsx +38 -0
  409. package/packages/components/forms/select-field.tsx +58 -0
  410. package/packages/components/forms/switch-field.tsx +42 -0
  411. package/packages/components/forms/text-field.tsx +80 -0
  412. package/packages/components/forms/textarea-field.tsx +53 -0
  413. package/packages/components/index.tsx +0 -0
  414. package/packages/components/layouts/flex.tsx +110 -0
  415. package/packages/components/layouts/main/content.tsx +11 -0
  416. package/packages/components/layouts/main/header.tsx +53 -0
  417. package/packages/components/layouts/main/index.tsx +3 -0
  418. package/packages/components/layouts/main/wrapper.tsx +5 -0
  419. package/packages/components/table/data-table-pagination.tsx +99 -0
  420. package/packages/components/table/data-table.tsx +328 -0
  421. package/packages/components/table/index.tsx +126 -0
  422. package/packages/components/typography/paragraph.tsx +32 -0
  423. package/packages/components/typography/title.tsx +36 -0
  424. package/packages/components/ui/alert-dialog.tsx +173 -0
  425. package/packages/components/ui/alert.tsx +71 -0
  426. package/packages/components/ui/aspect-ratio.tsx +20 -0
  427. package/packages/components/ui/avatar.tsx +52 -0
  428. package/packages/components/ui/badge.tsx +63 -0
  429. package/packages/components/ui/breadcrumb.tsx +110 -0
  430. package/packages/components/ui/button.tsx +88 -0
  431. package/packages/components/ui/buttons/add-new.tsx +26 -0
  432. package/packages/components/ui/buttons/refresh.tsx +30 -0
  433. package/packages/components/ui/calendar.tsx +209 -0
  434. package/packages/components/ui/card.tsx +95 -0
  435. package/packages/components/ui/carousel.tsx +241 -0
  436. package/packages/components/ui/checkbox.tsx +44 -0
  437. package/packages/components/ui/collapsible.tsx +33 -0
  438. package/packages/components/ui/command.tsx +217 -0
  439. package/packages/components/ui/context-menu.tsx +258 -0
  440. package/packages/components/ui/dialog.tsx +174 -0
  441. package/packages/components/ui/dropdown-menu.tsx +318 -0
  442. package/packages/components/ui/file-uploader.tsx +372 -0
  443. package/packages/components/ui/form.tsx +168 -0
  444. package/packages/components/ui/hover-card.tsx +43 -0
  445. package/packages/components/ui/input-otp.tsx +76 -0
  446. package/packages/components/ui/input.tsx +59 -0
  447. package/packages/components/ui/inputs/number-input.tsx +325 -0
  448. package/packages/components/ui/inputs/password-input.tsx +35 -0
  449. package/packages/components/ui/inputs/search-input.tsx +24 -0
  450. package/packages/components/ui/label.tsx +29 -0
  451. package/packages/components/ui/menubar.tsx +275 -0
  452. package/packages/components/ui/multi-select.tsx +693 -0
  453. package/packages/components/ui/navigation-menu.tsx +170 -0
  454. package/packages/components/ui/pagination.tsx +128 -0
  455. package/packages/components/ui/popover.tsx +64 -0
  456. package/packages/components/ui/progress.tsx +30 -0
  457. package/packages/components/ui/radio-group.tsx +53 -0
  458. package/packages/components/ui/resizable.tsx +55 -0
  459. package/packages/components/ui/scroll-area.tsx +51 -0
  460. package/packages/components/ui/select.tsx +246 -0
  461. package/packages/components/ui/separator.tsx +27 -0
  462. package/packages/components/ui/sheet.tsx +155 -0
  463. package/packages/components/ui/sidebar.tsx +751 -0
  464. package/packages/components/ui/skeleton.tsx +15 -0
  465. package/packages/components/ui/slider.tsx +62 -0
  466. package/packages/components/ui/sonner.tsx +43 -0
  467. package/packages/components/ui/switch.tsx +52 -0
  468. package/packages/components/ui/table.tsx +118 -0
  469. package/packages/components/ui/tabs.tsx +85 -0
  470. package/packages/components/ui/textarea.tsx +47 -0
  471. package/packages/components/ui/toggle-group.tsx +72 -0
  472. package/packages/components/ui/toggle.tsx +47 -0
  473. package/packages/components/ui/tooltip.tsx +71 -0
  474. package/packages/constants.tsx +79 -0
  475. package/packages/hooks/use-callback-ref.ts +27 -0
  476. package/packages/hooks/use-controllable-state.ts +67 -0
  477. package/packages/hooks/use-mobile.ts +21 -0
  478. package/packages/index.css +392 -0
  479. package/packages/lib/utils.ts +28 -0
  480. package/packages/types.ts +50 -0
  481. package/dist/add-new-BaABbnol.js.map +0 -1
  482. package/dist/add-new-DUoS_-n2.cjs.map +0 -1
  483. package/dist/alert-dialog-0KwdjY-6.js.map +0 -1
  484. package/dist/alert-dialog-D5ZqgIiC.cjs.map +0 -1
  485. package/dist/badge-CRXT2dH_.cjs.map +0 -1
  486. package/dist/badge-D_qEoSL8.js.map +0 -1
  487. package/dist/button-Bku3bKv9.js.map +0 -1
  488. package/dist/button-Dzv_nos1.cjs.map +0 -1
  489. package/dist/card-D8cxRC5y.js.map +0 -1
  490. package/dist/card-Dta5eW8u.cjs.map +0 -1
  491. package/dist/cards/simple-card.cjs.map +0 -1
  492. package/dist/cards/simple-card.js.map +0 -1
  493. package/dist/chunk-CUT6urMc.cjs +0 -1
  494. package/dist/command-CsntVmEz.cjs.map +0 -1
  495. package/dist/command-_L9bD9a-.js.map +0 -1
  496. package/dist/data-display/country.cjs.map +0 -1
  497. package/dist/data-display/country.js.map +0 -1
  498. package/dist/data-display/data-list.cjs.map +0 -1
  499. package/dist/data-display/data-list.js.map +0 -1
  500. package/dist/data-display/empty.cjs.map +0 -1
  501. package/dist/data-display/empty.js.map +0 -1
  502. package/dist/data-display/name.cjs.map +0 -1
  503. package/dist/data-display/name.js.map +0 -1
  504. package/dist/data-display/phone-number.cjs.map +0 -1
  505. package/dist/data-display/phone-number.js.map +0 -1
  506. package/dist/data-display/role-badge.cjs.map +0 -1
  507. package/dist/data-display/role-badge.js.map +0 -1
  508. package/dist/data-display/statistic.cjs.map +0 -1
  509. package/dist/data-display/statistic.js.map +0 -1
  510. package/dist/date-BMq_DNsv.js.map +0 -1
  511. package/dist/date-nd8WkPlx.cjs.map +0 -1
  512. package/dist/dialog-C4hf-Puw.js.map +0 -1
  513. package/dist/dialog-W-DmDMEE.cjs.map +0 -1
  514. package/dist/dialogs/confirm-dialog.cjs.map +0 -1
  515. package/dist/dialogs/confirm-dialog.js.map +0 -1
  516. package/dist/dialogs/detail-dialog/index.cjs.map +0 -1
  517. package/dist/dialogs/detail-dialog/index.js.map +0 -1
  518. package/dist/dialogs/form-dialog.cjs.map +0 -1
  519. package/dist/dialogs/form-dialog.js.map +0 -1
  520. package/dist/dialogs/loading-dialog.cjs.map +0 -1
  521. package/dist/dialogs/loading-dialog.js.map +0 -1
  522. package/dist/dropdown-menu-Bv18S56o.cjs.map +0 -1
  523. package/dist/dropdown-menu-jCQwh2rG.js.map +0 -1
  524. package/dist/error-dialog-D_4WL-Hj.js.map +0 -1
  525. package/dist/error-dialog-DpQgL5Hy.cjs.map +0 -1
  526. package/dist/flex-CNA_SId-.cjs.map +0 -1
  527. package/dist/flex-ILvQrYMJ.js.map +0 -1
  528. package/dist/form-CA4hhSV5.js.map +0 -1
  529. package/dist/form-CYZkgobJ.cjs.map +0 -1
  530. package/dist/form-wrapper-BYbwt1zC.cjs.map +0 -1
  531. package/dist/form-wrapper-D-2Uz518.js.map +0 -1
  532. package/dist/input-DXEBB91E.cjs.map +0 -1
  533. package/dist/input-FzKbxUq2.js.map +0 -1
  534. package/dist/label-CunjD1rx.cjs.map +0 -1
  535. package/dist/label-Cxbctr6x.js.map +0 -1
  536. package/dist/layouts/main/index.cjs.map +0 -1
  537. package/dist/layouts/main/index.js.map +0 -1
  538. package/dist/paragraph-Bey03JkA.js.map +0 -1
  539. package/dist/paragraph-ZxI8zxuf.cjs.map +0 -1
  540. package/dist/progress-BnnOfAZN.cjs.map +0 -1
  541. package/dist/progress-CBccqUUJ.js.map +0 -1
  542. package/dist/refresh-BHt_h3N_.js.map +0 -1
  543. package/dist/refresh-DrolZxuC.cjs.map +0 -1
  544. package/dist/scroll-area-Bdb_LSFF.js.map +0 -1
  545. package/dist/scroll-area-DWWpaz5j.cjs.map +0 -1
  546. package/dist/search-input-Bf4-FeWu.cjs.map +0 -1
  547. package/dist/search-input-L2sq0eB0.js.map +0 -1
  548. package/dist/select-CWUsisI0.js.map +0 -1
  549. package/dist/select-ZSyt5zCe.cjs.map +0 -1
  550. package/dist/separator-BpsL0PlX.js.map +0 -1
  551. package/dist/separator-DTB3sDNG.cjs.map +0 -1
  552. package/dist/sheet-C8r2QGpq.js.map +0 -1
  553. package/dist/sheet-CCwbAaA6.cjs.map +0 -1
  554. package/dist/sidebar-BLPMNltJ.cjs.map +0 -1
  555. package/dist/sidebar-C166f_9B.js.map +0 -1
  556. package/dist/skeleton-DYmX0k94.js.map +0 -1
  557. package/dist/skeleton-m3giaF4T.cjs +0 -2
  558. package/dist/skeleton-m3giaF4T.cjs.map +0 -1
  559. package/dist/table/index.cjs.map +0 -1
  560. package/dist/table/index.js.map +0 -1
  561. package/dist/table-BSeev7T0.cjs.map +0 -1
  562. package/dist/table-BvA64mE8.js.map +0 -1
  563. package/dist/title-DTkABsIG.js.map +0 -1
  564. package/dist/title-xsPZpQpb.cjs.map +0 -1
  565. package/dist/toggle-CfL3GVe2.cjs.map +0 -1
  566. package/dist/toggle-D_MDMruK.js.map +0 -1
  567. package/dist/tooltip-Beb-_EPp.cjs.map +0 -1
  568. package/dist/tooltip-Dzyf5smh.js.map +0 -1
  569. package/dist/types-CrbWxjnp.cjs.map +0 -1
  570. package/dist/types-DaIHddx7.js.map +0 -1
  571. package/dist/ui/alert.cjs.map +0 -1
  572. package/dist/ui/alert.js.map +0 -1
  573. package/dist/ui/aspect-ratio.cjs.map +0 -1
  574. package/dist/ui/aspect-ratio.js.map +0 -1
  575. package/dist/ui/avatar.cjs.map +0 -1
  576. package/dist/ui/avatar.js.map +0 -1
  577. package/dist/ui/breadcrumb.cjs.map +0 -1
  578. package/dist/ui/breadcrumb.js.map +0 -1
  579. package/dist/ui/calendar.cjs.map +0 -1
  580. package/dist/ui/calendar.js.map +0 -1
  581. package/dist/ui/carousel.cjs.map +0 -1
  582. package/dist/ui/carousel.js.map +0 -1
  583. package/dist/ui/collapsible.cjs.map +0 -1
  584. package/dist/ui/collapsible.js.map +0 -1
  585. package/dist/ui/context-menu.cjs.map +0 -1
  586. package/dist/ui/context-menu.js.map +0 -1
  587. package/dist/ui/file-uploader.cjs.map +0 -1
  588. package/dist/ui/file-uploader.js.map +0 -1
  589. package/dist/ui/hover-card.cjs.map +0 -1
  590. package/dist/ui/hover-card.js.map +0 -1
  591. package/dist/ui/input-otp.cjs.map +0 -1
  592. package/dist/ui/input-otp.js.map +0 -1
  593. package/dist/ui/menubar.cjs.map +0 -1
  594. package/dist/ui/menubar.js.map +0 -1
  595. package/dist/ui/multi-select.cjs.map +0 -1
  596. package/dist/ui/multi-select.js.map +0 -1
  597. package/dist/ui/navigation-menu.cjs.map +0 -1
  598. package/dist/ui/navigation-menu.js.map +0 -1
  599. package/dist/ui/pagination.cjs.map +0 -1
  600. package/dist/ui/pagination.js.map +0 -1
  601. package/dist/ui/popover.cjs.map +0 -1
  602. package/dist/ui/popover.js.map +0 -1
  603. package/dist/ui/radio-group.cjs.map +0 -1
  604. package/dist/ui/radio-group.js.map +0 -1
  605. package/dist/ui/resizable.cjs.map +0 -1
  606. package/dist/ui/resizable.js.map +0 -1
  607. package/dist/ui/slider.cjs.map +0 -1
  608. package/dist/ui/slider.js.map +0 -1
  609. package/dist/ui/sonner.cjs.map +0 -1
  610. package/dist/ui/sonner.js.map +0 -1
  611. package/dist/ui/switch.cjs.map +0 -1
  612. package/dist/ui/switch.js.map +0 -1
  613. package/dist/ui/tabs.cjs.map +0 -1
  614. package/dist/ui/tabs.js.map +0 -1
  615. package/dist/ui/textarea.cjs.map +0 -1
  616. package/dist/ui/textarea.js.map +0 -1
  617. package/dist/ui/toggle-group.cjs.map +0 -1
  618. package/dist/ui/toggle-group.js.map +0 -1
  619. package/dist/utils-BsjVK5EW.cjs +0 -2
  620. package/dist/utils-BsjVK5EW.cjs.map +0 -1
  621. package/dist/utils-D9AH0PUV.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"sidebar-C166f_9B.js","names":["open","Separator","SlotPrimitive","Tooltip"],"sources":["../packages/hooks/use-mobile.ts","../packages/components/ui/sidebar.tsx"],"sourcesContent":["import React from \"react\";\n\nconst MOBILE_BREAKPOINT = 768;\n\nexport function useIsMobile() {\n const [isMobile, setIsMobile] = React.useState<boolean | undefined>(\n undefined,\n );\n\n React.useEffect(() => {\n const mql = window.matchMedia(`(max-width: ${MOBILE_BREAKPOINT - 1}px)`);\n const onChange = () => {\n setIsMobile(window.innerWidth < MOBILE_BREAKPOINT);\n };\n mql.addEventListener(\"change\", onChange);\n setIsMobile(window.innerWidth < MOBILE_BREAKPOINT);\n return () => mql.removeEventListener(\"change\", onChange);\n }, []);\n\n return !!isMobile;\n}\n","\"use client\";\nimport React from \"react\";\nimport { Slot as SlotPrimitive } from \"radix-ui\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { MenuIcon } from \"lucide-react\";\n\nimport { Button } from \"@/components/ui/button\";\nimport { Input } from \"@/components/ui/input\";\nimport { Separator } from \"@/components/ui/separator\";\nimport {\n Sheet,\n SheetContent,\n SheetDescription,\n SheetHeader,\n SheetTitle,\n} from \"@/components/ui/sheet\";\nimport { Skeleton } from \"@/components/ui/skeleton\";\nimport {\n Tooltip,\n TooltipContent,\n TooltipProvider,\n TooltipTrigger,\n} from \"@/components/ui/tooltip\";\nimport { useIsMobile } from \"@/hooks/use-mobile\";\nimport { cn } from \"@/lib/utils\";\n\nconst SIDEBAR_COOKIE_NAME = \"sidebar_state\";\nconst SIDEBAR_COOKIE_MAX_AGE = 60 * 60 * 24 * 7;\nconst SIDEBAR_WIDTH = \"16rem\";\nconst SIDEBAR_WIDTH_MOBILE = \"18rem\";\nconst SIDEBAR_WIDTH_ICON = \"3rem\";\nconst SIDEBAR_KEYBOARD_SHORTCUT = \"b\";\n\ntype SidebarContextProps = {\n state: \"expanded\" | \"collapsed\";\n open: boolean;\n setOpen: (open: boolean) => void;\n openMobile: boolean;\n setOpenMobile: (open: boolean) => void;\n isMobile: boolean;\n toggleSidebar: () => void;\n};\n\nconst SidebarContext = React.createContext<SidebarContextProps | null>(null);\n\nfunction useSidebar() {\n const context = React.useContext(SidebarContext);\n if (!context) {\n throw new Error(\"useSidebar must be used within a SidebarProvider.\");\n }\n\n return context;\n}\n\nfunction SidebarProvider({\n defaultOpen = true,\n open: openProp,\n onOpenChange: setOpenProp,\n className,\n style,\n children,\n ...props\n}: React.ComponentProps<\"div\"> & {\n defaultOpen?: boolean;\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n}) {\n const isMobile = useIsMobile();\n const [openMobile, setOpenMobile] = React.useState(false);\n\n // This is the internal state of the sidebar.\n // We use openProp and setOpenProp for control from outside the component.\n const [_open, _setOpen] = React.useState(defaultOpen);\n const open = openProp ?? _open;\n const setOpen = React.useCallback(\n (value: boolean | ((value: boolean) => boolean)) => {\n const openState = typeof value === \"function\" ? value(open) : value;\n if (setOpenProp) {\n setOpenProp(openState);\n } else {\n _setOpen(openState);\n }\n\n // This sets the cookie to keep the sidebar state.\n document.cookie = `${SIDEBAR_COOKIE_NAME}=${openState}; path=/; max-age=${SIDEBAR_COOKIE_MAX_AGE}`;\n },\n [setOpenProp, open],\n );\n\n // Helper to toggle the sidebar.\n const toggleSidebar = React.useCallback(() => {\n return isMobile ? setOpenMobile((open) => !open) : setOpen((open) => !open);\n }, [isMobile, setOpen, setOpenMobile]);\n\n // Adds a keyboard shortcut to toggle the sidebar.\n React.useEffect(() => {\n const handleKeyDown = (event: KeyboardEvent) => {\n if (\n event.key === SIDEBAR_KEYBOARD_SHORTCUT &&\n (event.metaKey || event.ctrlKey)\n ) {\n event.preventDefault();\n toggleSidebar();\n }\n };\n\n window.addEventListener(\"keydown\", handleKeyDown);\n return () => window.removeEventListener(\"keydown\", handleKeyDown);\n }, [toggleSidebar]);\n\n // We add a state so that we can do data-state=\"expanded\" or \"collapsed\".\n // This makes it easier to style the sidebar with Tailwind classes.\n const state = open ? \"expanded\" : \"collapsed\";\n\n const contextValue = React.useMemo<SidebarContextProps>(\n () => ({\n state,\n isMobile,\n\n toggleSidebar,\n\n open,\n setOpen,\n\n openMobile,\n setOpenMobile,\n }),\n [state, open, setOpen, isMobile, openMobile, setOpenMobile, toggleSidebar],\n );\n\n return (\n <SidebarContext.Provider value={contextValue}>\n <TooltipProvider delayDuration={0}>\n <div\n data-slot=\"sidebar-wrapper\"\n style={\n {\n \"--sidebar-width\": SIDEBAR_WIDTH,\n \"--sidebar-width-icon\": SIDEBAR_WIDTH_ICON,\n ...style,\n } as React.CSSProperties\n }\n className={cn(\n \"group/sidebar-wrapper\",\n \"has-data-[variant=inset]:bg-sidebar\",\n \"flex min-h-svh w-full\",\n className,\n )}\n {...props}\n >\n {children}\n </div>\n </TooltipProvider>\n </SidebarContext.Provider>\n );\n}\n\nfunction Sidebar({\n side = \"left\",\n variant = \"sidebar\",\n collapsible = \"offcanvas\",\n className,\n children,\n ...props\n}: React.ComponentProps<\"div\"> & {\n side?: \"left\" | \"right\";\n variant?: \"sidebar\" | \"floating\" | \"inset\";\n collapsible?: \"offcanvas\" | \"icon\" | \"none\";\n}) {\n const { isMobile, state, openMobile, setOpenMobile } = useSidebar();\n\n if (collapsible === \"none\") {\n return (\n <aside\n data-slot=\"sidebar\"\n className={cn(\n \"bg-sidebar\",\n \"text-sidebar-foreground\",\n \"flex h-full w-(--sidebar-width) flex-col\",\n \"border-r\",\n className,\n )}\n {...props}\n >\n {children}\n </aside>\n );\n }\n\n if (isMobile) {\n return (\n <Sheet open={openMobile} onOpenChange={setOpenMobile} {...props}>\n <SheetContent\n data-sidebar=\"sidebar\"\n data-slot=\"sidebar\"\n data-mobile=\"true\"\n className=\"bg-sidebar text-sidebar-foreground w-(--sidebar-width) p-0 [&>button]:hidden\"\n style={\n {\n \"--sidebar-width\": SIDEBAR_WIDTH_MOBILE,\n } as React.CSSProperties\n }\n side={side}\n >\n <SheetHeader className=\"sr-only\">\n <SheetTitle>Sidebar</SheetTitle>\n <SheetDescription>Displays the mobile sidebar.</SheetDescription>\n </SheetHeader>\n <div className=\"flex h-full w-full flex-col\">{children}</div>\n </SheetContent>\n </Sheet>\n );\n }\n\n return (\n <aside\n className=\"group peer text-sidebar-foreground bg-card hidden md:block\"\n data-state={state}\n data-collapsible={state === \"collapsed\" ? collapsible : \"\"}\n data-variant={variant}\n data-side={side}\n data-slot=\"sidebar\"\n >\n {/* This is what handles the sidebar gap on desktop */}\n <div\n data-slot=\"sidebar-gap\"\n className={cn(\n \"relative\",\n \"bg-transparent\",\n \"transition-[width] duration-200 ease-linear\",\n \"h-14 w-(--sidebar-width)\",\n \"group-data-[collapsible=offcanvas]:w-0\",\n \"group-data-[side=right]:rotate-180\",\n variant === \"floating\" || variant === \"inset\"\n ? \"group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]\"\n : \"group-data-[collapsible=icon]:w-(--sidebar-width-icon)\",\n )}\n />\n <div\n data-slot=\"sidebar-container\"\n className={cn(\n \"hidden md:flex\",\n \"fixed inset-y-0 top-14 z-10\",\n \"h-[calc(100svh-3.5rem)] w-(--sidebar-width)\",\n \"border-r\",\n \"transition-[left,right,width] duration-200 ease-linear\",\n side === \"left\" &&\n \"left-0 group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]\",\n side === \"right\" &&\n \"right-0 group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)]\",\n // Adjust the padding for floating and inset variants.\n variant === \"floating\" || variant === \"inset\"\n ? \"p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)]\"\n : \"group-data-[collapsible=icon]:w-(--sidebar-width-icon) group-data-[side=left]:border-r group-data-[side=right]:border-l\",\n className,\n )}\n {...props}\n >\n <div\n data-sidebar=\"sidebar\"\n data-slot=\"sidebar-inner\"\n className={cn(\n \"flex size-full flex-col\",\n \"group-data-[variant=floating]:rounded-lg\",\n \"group-data-[variant=floating]:border\",\n \"group-data-[variant=floating]:border-sidebar-border\",\n \"group-data-[variant=floating]:shadow-sm\",\n )}\n >\n {children}\n </div>\n </div>\n </aside>\n );\n}\n\nfunction SidebarTrigger({\n className,\n onClick,\n ...props\n}: React.ComponentProps<typeof Button>) {\n const { toggleSidebar } = useSidebar();\n\n return (\n <Button\n data-sidebar=\"trigger\"\n data-slot=\"sidebar-trigger\"\n variant=\"ghost\"\n size=\"icon\"\n className={cn(\"size-10 rounded-full\", className)}\n onClick={(event) => {\n onClick?.(event);\n toggleSidebar();\n }}\n {...props}\n >\n <MenuIcon className=\"!size-6\" />\n <span className=\"sr-only\">Toggle Sidebar</span>\n </Button>\n );\n}\n\nfunction SidebarRail({ className, ...props }: React.ComponentProps<\"button\">) {\n const { toggleSidebar } = useSidebar();\n\n return (\n <button\n data-sidebar=\"rail\"\n data-slot=\"sidebar-rail\"\n aria-label=\"Toggle Sidebar\"\n tabIndex={-1}\n onClick={toggleSidebar}\n title=\"Toggle Sidebar\"\n className={cn(\n \"hover:after:bg-sidebar-border absolute inset-y-0 z-20 hidden w-4 -translate-x-1/2 transition-all ease-linear group-data-[side=left]:-right-4 group-data-[side=right]:left-0 after:absolute after:inset-y-0 after:left-1/2 after:w-[2px] sm:flex\",\n \"in-data-[side=left]:cursor-w-resize in-data-[side=right]:cursor-e-resize\",\n \"[[data-side=left][data-state=collapsed]_&]:cursor-e-resize [[data-side=right][data-state=collapsed]_&]:cursor-w-resize\",\n \"hover:group-data-[collapsible=offcanvas]:bg-sidebar group-data-[collapsible=offcanvas]:translate-x-0 group-data-[collapsible=offcanvas]:after:left-full\",\n \"[[data-side=left][data-collapsible=offcanvas]_&]:-right-2\",\n \"[[data-side=right][data-collapsible=offcanvas]_&]:-left-2\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction SidebarInset({\n className,\n children,\n ...props\n}: React.ComponentProps<\"main\">) {\n return (\n <main\n data-slot=\"sidebar-inset\"\n className={cn(\"w-full\", \"relative\", \"flex flex-1 flex-col\", className)}\n {...props}\n >\n <div className=\"h-14 w-full\" />\n <div className={cn(\"flex-1 inset-shadow-sm\")}>{children}</div>\n </main>\n );\n}\n\nfunction SidebarInput({\n className,\n ...props\n}: React.ComponentProps<typeof Input>) {\n return (\n <Input\n data-slot=\"sidebar-input\"\n data-sidebar=\"input\"\n className={cn(\"bg-background h-8 w-full shadow-none\", className)}\n {...props}\n />\n );\n}\n\nfunction SidebarHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"sidebar-header\"\n data-sidebar=\"header\"\n className={cn(\"flex flex-col gap-2 p-2\", className)}\n {...props}\n />\n );\n}\n\nfunction SidebarFooter({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"sidebar-footer\"\n data-sidebar=\"footer\"\n className={cn(\"flex flex-col gap-2 p-2\", className)}\n {...props}\n />\n );\n}\n\nfunction SidebarSeparator({\n className,\n ...props\n}: React.ComponentProps<typeof Separator>) {\n return (\n <Separator\n data-slot=\"sidebar-separator\"\n data-sidebar=\"separator\"\n className={cn(\"bg-sidebar-border mx-2 w-auto\", className)}\n {...props}\n />\n );\n}\n\nfunction SidebarContent({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"sidebar-content\"\n data-sidebar=\"content\"\n className={cn(\n \"flex min-h-0 flex-1 flex-col gap-2 overflow-auto group-data-[collapsible=icon]:overflow-hidden\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction SidebarGroup({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"sidebar-group\"\n data-sidebar=\"group\"\n className={cn(\"relative flex w-full min-w-0 flex-col p-2\", className)}\n {...props}\n />\n );\n}\n\nfunction SidebarGroupLabel({\n className,\n asChild = false,\n ...props\n}: React.ComponentProps<\"div\"> & { asChild?: boolean }) {\n const Comp = asChild ? SlotPrimitive.Slot : \"div\";\n\n return (\n <Comp\n data-slot=\"sidebar-group-label\"\n data-sidebar=\"group-label\"\n className={cn(\n \"text-sidebar-foreground/70 ring-sidebar-ring flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium outline-hidden transition-[margin,opacity] duration-200 ease-linear focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0\",\n \"group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction SidebarGroupAction({\n className,\n asChild = false,\n ...props\n}: React.ComponentProps<\"button\"> & { asChild?: boolean }) {\n const Comp = asChild ? SlotPrimitive.Slot : \"button\";\n\n return (\n <Comp\n data-slot=\"sidebar-group-action\"\n data-sidebar=\"group-action\"\n className={cn(\n \"text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground absolute top-3.5 right-3 flex aspect-square w-5 items-center justify-center rounded-md p-0 outline-hidden transition-transform focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0\",\n // Increases the hit area of the button on mobile.\n \"after:absolute after:-inset-2 md:after:hidden\",\n \"group-data-[collapsible=icon]:hidden\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction SidebarGroupContent({\n className,\n ...props\n}: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"sidebar-group-content\"\n data-sidebar=\"group-content\"\n className={cn(\"w-full text-sm\", className)}\n {...props}\n />\n );\n}\n\nfunction SidebarMenu({ className, ...props }: React.ComponentProps<\"ul\">) {\n return (\n <ul\n data-slot=\"sidebar-menu\"\n data-sidebar=\"menu\"\n className={cn(\"flex w-full min-w-0 flex-col gap-1\", className)}\n {...props}\n />\n );\n}\n\nfunction SidebarMenuItem({ className, ...props }: React.ComponentProps<\"li\">) {\n return (\n <li\n data-slot=\"sidebar-menu-item\"\n data-sidebar=\"menu-item\"\n className={cn(\"group/menu-item relative\", className)}\n {...props}\n />\n );\n}\n\nconst sidebarMenuButtonVariants = cva(\n \"peer/menu-button cursor-pointer flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm outline-hidden ring-sidebar-ring transition-[width,height,padding] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 group-has-data-[sidebar=menu-action]/menu-item:pr-8 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-accent data-[active=true]:font-medium data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground group-data-[collapsible=icon]:size-8! group-data-[collapsible=icon]:p-2! [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0\",\n {\n variants: {\n variant: {\n default: \"hover:bg-sidebar-accent hover:text-sidebar-accent-foreground\",\n outline:\n \"bg-background shadow-[0_0_0_1px_hsl(var(--sidebar-border))] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground hover:shadow-[0_0_0_1px_hsl(var(--sidebar-accent))]\",\n },\n size: {\n default: \"h-8 text-sm\",\n sm: \"h-7 text-xs\",\n lg: \"h-12 text-sm group-data-[collapsible=icon]:p-0!\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n },\n);\n\nfunction SidebarMenuButton({\n asChild = false,\n isActive = false,\n variant = \"default\",\n size = \"default\",\n tooltip,\n className,\n ...props\n}: React.ComponentProps<\"button\"> & {\n asChild?: boolean;\n isActive?: boolean;\n tooltip?: string | React.ComponentProps<typeof TooltipContent>;\n} & VariantProps<typeof sidebarMenuButtonVariants>) {\n const Comp = asChild ? SlotPrimitive.Slot : \"button\";\n const { isMobile, state } = useSidebar();\n\n const button = (\n <Comp\n data-slot=\"sidebar-menu-button\"\n data-sidebar=\"menu-button\"\n data-size={size}\n data-active={isActive}\n className={cn(sidebarMenuButtonVariants({ variant, size }), className)}\n {...props}\n />\n );\n\n if (!tooltip) {\n return button;\n }\n\n if (typeof tooltip === \"string\") {\n tooltip = {\n children: tooltip,\n };\n }\n\n return (\n <Tooltip>\n <TooltipTrigger asChild>{button}</TooltipTrigger>\n <TooltipContent\n side=\"right\"\n align=\"center\"\n hidden={state !== \"collapsed\" || isMobile}\n {...tooltip}\n />\n </Tooltip>\n );\n}\n\nfunction SidebarMenuAction({\n className,\n asChild = false,\n showOnHover = false,\n ...props\n}: React.ComponentProps<\"button\"> & {\n asChild?: boolean;\n showOnHover?: boolean;\n}) {\n const Comp = asChild ? SlotPrimitive.Slot : \"button\";\n\n return (\n <Comp\n data-slot=\"sidebar-menu-action\"\n data-sidebar=\"menu-action\"\n className={cn(\n \"text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground peer-hover/menu-button:text-sidebar-accent-foreground absolute top-1.5 right-1 flex aspect-square w-5 items-center justify-center rounded-md p-0 outline-hidden transition-transform focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0\",\n // Increases the hit area of the button on mobile.\n \"after:absolute after:-inset-2 md:after:hidden\",\n \"peer-data-[size=sm]/menu-button:top-1\",\n \"peer-data-[size=default]/menu-button:top-1.5\",\n \"peer-data-[size=lg]/menu-button:top-2.5\",\n \"group-data-[collapsible=icon]:hidden\",\n showOnHover &&\n \"peer-data-[active=true]/menu-button:text-sidebar-accent-foreground group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 data-[state=open]:opacity-100 md:opacity-0\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction SidebarMenuBadge({\n className,\n ...props\n}: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"sidebar-menu-badge\"\n data-sidebar=\"menu-badge\"\n className={cn(\n \"text-sidebar-foreground pointer-events-none absolute right-1 flex h-5 min-w-5 items-center justify-center rounded-md px-1 text-xs font-medium tabular-nums select-none\",\n \"peer-hover/menu-button:text-sidebar-accent-foreground peer-data-[active=true]/menu-button:text-sidebar-accent-foreground\",\n \"peer-data-[size=sm]/menu-button:top-1\",\n \"peer-data-[size=default]/menu-button:top-1.5\",\n \"peer-data-[size=lg]/menu-button:top-2.5\",\n \"group-data-[collapsible=icon]:hidden\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction SidebarMenuSkeleton({\n className,\n showIcon = false,\n ...props\n}: React.ComponentProps<\"div\"> & {\n showIcon?: boolean;\n}) {\n // Random width between 50 to 90%.\n const width = React.useMemo(() => {\n return `${Math.floor(Math.random() * 40) + 50}%`;\n }, []);\n\n return (\n <div\n data-slot=\"sidebar-menu-skeleton\"\n data-sidebar=\"menu-skeleton\"\n className={cn(\"flex h-8 items-center gap-2 rounded-md px-2\", className)}\n {...props}\n >\n {showIcon && (\n <Skeleton\n className=\"size-4 rounded-md\"\n data-sidebar=\"menu-skeleton-icon\"\n />\n )}\n <Skeleton\n className=\"h-4 max-w-(--skeleton-width) flex-1\"\n data-sidebar=\"menu-skeleton-text\"\n style={\n {\n \"--skeleton-width\": width,\n } as React.CSSProperties\n }\n />\n </div>\n );\n}\n\nfunction SidebarMenuSub({ className, ...props }: React.ComponentProps<\"ul\">) {\n return (\n <ul\n data-slot=\"sidebar-menu-sub\"\n data-sidebar=\"menu-sub\"\n className={cn(\n \"border-sidebar-border mx-3.5 flex min-w-0 translate-x-px flex-col gap-1 border-l px-2.5 py-0.5\",\n \"group-data-[collapsible=icon]:hidden\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction SidebarMenuSubItem({\n className,\n ...props\n}: React.ComponentProps<\"li\">) {\n return (\n <li\n data-slot=\"sidebar-menu-sub-item\"\n data-sidebar=\"menu-sub-item\"\n className={cn(\"group/menu-sub-item relative\", className)}\n {...props}\n />\n );\n}\n\nfunction SidebarMenuSubButton({\n asChild = false,\n size = \"md\",\n isActive = false,\n className,\n ...props\n}: React.ComponentProps<\"a\"> & {\n asChild?: boolean;\n size?: \"sm\" | \"md\";\n isActive?: boolean;\n}) {\n const Comp = asChild ? SlotPrimitive.Slot : \"a\";\n\n return (\n <Comp\n data-slot=\"sidebar-menu-sub-button\"\n data-sidebar=\"menu-sub-button\"\n data-size={size}\n data-active={isActive}\n className={cn(\n \"text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground active:bg-sidebar-accent active:text-sidebar-accent-foreground [&>svg]:text-sidebar-accent-foreground flex h-7 min-w-0 -translate-x-px items-center gap-2 overflow-hidden rounded-md px-2 outline-hidden focus-visible:ring-2 disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0\",\n \"data-[active=true]:bg-sidebar-accent data-[active=true]:text-sidebar-accent-foreground\",\n size === \"sm\" && \"text-xs\",\n size === \"md\" && \"text-sm\",\n \"group-data-[collapsible=icon]:hidden\",\n className,\n )}\n {...props}\n />\n );\n}\n\nexport {\n Sidebar,\n SidebarContent,\n SidebarFooter,\n SidebarGroup,\n SidebarGroupAction,\n SidebarGroupContent,\n SidebarGroupLabel,\n SidebarHeader,\n SidebarInput,\n SidebarInset,\n SidebarMenu,\n SidebarMenuAction,\n SidebarMenuBadge,\n SidebarMenuButton,\n SidebarMenuItem,\n SidebarMenuSkeleton,\n SidebarMenuSub,\n SidebarMenuSubButton,\n SidebarMenuSubItem,\n SidebarProvider,\n SidebarRail,\n SidebarSeparator,\n SidebarTrigger,\n // eslint-disable-next-line react-refresh/only-export-components\n useSidebar,\n};\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"skeleton-DYmX0k94.js","names":[],"sources":["../packages/components/ui/skeleton.tsx"],"sourcesContent":["\"use client\";\nimport React from \"react\";\nimport { cn } from \"@/lib/utils\";\n\nfunction Skeleton({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"skeleton\"\n className={cn(\"bg-accent animate-pulse rounded-md\", className)}\n {...props}\n />\n );\n}\n\nexport { Skeleton };\n"],"mappings":"sGAIA,SAAS,EAAS,CAAE,YAAW,GAAG,EAAoC,CAAE,CACtE,OACE,EAAC,MAAA,CACC,YAAU,WACV,UAAW,EAAG,qCAAsC,GACpD,GAAI,GAGT"}
@@ -1,2 +0,0 @@
1
- const e=require(`./chunk-CUT6urMc.cjs`),t=require(`./utils-BsjVK5EW.cjs`),n=e.__toESM(require(`react`)),r=e.__toESM(require(`react/jsx-runtime`));function i({className:e,...n}){return(0,r.jsx)(`div`,{"data-slot":`skeleton`,className:t.cn(`bg-accent animate-pulse rounded-md`,e),...n})}Object.defineProperty(exports,`Skeleton`,{enumerable:!0,get:function(){return i}});
2
- //# sourceMappingURL=skeleton-m3giaF4T.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"skeleton-m3giaF4T.cjs","names":["cn"],"sources":["../packages/components/ui/skeleton.tsx"],"sourcesContent":["\"use client\";\nimport React from \"react\";\nimport { cn } from \"@/lib/utils\";\n\nfunction Skeleton({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"skeleton\"\n className={cn(\"bg-accent animate-pulse rounded-md\", className)}\n {...props}\n />\n );\n}\n\nexport { Skeleton };\n"],"mappings":"kJAIA,SAAS,EAAS,CAAE,YAAW,GAAG,EAAoC,CAAE,CACtE,OACE,EAAA,EAAA,KAAC,MAAA,CACC,YAAU,WACV,UAAWA,EAAAA,GAAG,qCAAsC,GACpD,GAAI,GAGT"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.cjs","names":["ChevronUp","ChevronDown","Button","PinOffIcon","DropdownMenu","DropdownMenuTrigger","EllipsisIcon","DropdownMenuContent","DropdownMenuItem","ArrowLeftToLineIcon","ArrowRightToLineIcon","cn","ScrollArea","Table","TableHeader","TableRow","TableHead","TableBody","TableCell","React","PackagePlusIcon","ScrollBar","Select","SelectTrigger","SelectValue","SelectContent","SelectItem","Button","ChevronsLeft","ChevronLeft","ChevronRight","ChevronsRight","React","Flex","SearchInput","AddNewBtn","RefreshBtn"],"sources":["../../packages/components/table/data-table.tsx","../../packages/components/table/data-table-pagination.tsx","../../packages/components/table/index.tsx"],"sourcesContent":["import React, { type CSSProperties } from \"react\";\nimport {\n type Column,\n flexRender,\n type Header,\n type Table as ReactTable,\n} from \"@tanstack/react-table\";\nimport {\n ArrowLeftToLineIcon,\n ArrowRightToLineIcon,\n ChevronDown,\n ChevronUp,\n EllipsisIcon,\n PackagePlusIcon,\n PinOffIcon,\n} from \"lucide-react\";\n\nimport { cn } from \"@/lib/utils\";\nimport type { AnyEntity } from \"@/types\";\n\nimport { Button } from \"../ui/button\";\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuTrigger,\n} from \"../ui/dropdown-menu\";\nimport { ScrollArea, ScrollBar } from \"../ui/scroll-area\";\nimport {\n Table,\n TableBody,\n TableCell,\n TableHead,\n TableHeader,\n TableRow,\n} from \"../ui/table\";\n\n// Helper function to compute pinning styles for columns\nconst getPinningStyles = (column: Column<AnyEntity>): CSSProperties => {\n const isPinned = column.getIsPinned();\n return {\n left: isPinned === \"left\" ? `${column.getStart(\"left\")}px` : undefined,\n right: isPinned === \"right\" ? `${column.getAfter(\"right\")}px` : undefined,\n position: isPinned ? \"sticky\" : \"relative\",\n width: column.getSize(),\n zIndex: isPinned ? 1 : 0,\n };\n};\n\nconst SortingIndicator = ({ column }: { column: Column<AnyEntity> }) => {\n const sortDirection = column.getIsSorted();\n\n const icons = {\n asc: (\n <ChevronUp\n className=\"shrink-0 opacity-60\"\n size={16}\n strokeWidth={2}\n aria-hidden=\"true\"\n />\n ),\n desc: (\n <ChevronDown\n className=\"shrink-0 opacity-60\"\n size={16}\n strokeWidth={2}\n aria-hidden=\"true\"\n />\n ),\n };\n\n return sortDirection ? icons[sortDirection] : null;\n};\n\nconst PinControls = ({ column }: { column: Column<AnyEntity> }) => {\n const columnHeader = column.columnDef.header as string;\n\n if (!column.getCanPin()) return null;\n\n if (column.getIsPinned()) {\n return (\n <Button\n size=\"icon\"\n variant=\"ghost\"\n className=\"hover:[&_svg]:text-secondary-foreground -mr-1 size-7 shadow-none\"\n aria-label={`Unpin ${columnHeader} column`}\n title={`Unpin ${columnHeader} column`}\n onClick={() => column.pin(false)}\n >\n <PinOffIcon className=\"opacity-60\" size={16} aria-hidden=\"true\" />\n </Button>\n );\n }\n\n return (\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <Button\n size=\"icon\"\n variant=\"ghost\"\n className=\"-mr-1 size-7 shadow-none\"\n aria-label={`Pin options for ${columnHeader} column`}\n title={`Pin options for ${columnHeader} column`}\n >\n <EllipsisIcon className=\"opacity-60\" size={16} aria-hidden=\"true\" />\n </Button>\n </DropdownMenuTrigger>\n <DropdownMenuContent align=\"end\">\n <DropdownMenuItem onClick={() => column.pin(\"left\")}>\n <ArrowLeftToLineIcon\n size={16}\n className=\"opacity-60\"\n aria-hidden=\"true\"\n />\n Stick to left\n </DropdownMenuItem>\n <DropdownMenuItem onClick={() => column.pin(\"right\")}>\n <ArrowRightToLineIcon\n size={16}\n className=\"opacity-60\"\n aria-hidden=\"true\"\n />\n Stick to right\n </DropdownMenuItem>\n </DropdownMenuContent>\n </DropdownMenu>\n );\n};\n\nconst HeaderContent = ({ header }: { header: Header<AnyEntity, unknown> }) => {\n const { column } = header;\n\n const handleSort = (e: React.KeyboardEvent) => {\n if (column.getCanSort() && (e.key === \"Enter\" || e.key === \" \")) {\n e.preventDefault();\n column.getToggleSortingHandler()?.(e);\n }\n };\n\n return (\n <div className=\"flex items-center justify-between gap-2 truncate\">\n {!header.isPlaceholder && (\n <div\n className={cn(\n column.getCanSort() &&\n \"flex h-full cursor-pointer items-center justify-between gap-2 select-none\",\n )}\n onClick={column.getToggleSortingHandler()}\n onKeyDown={handleSort}\n tabIndex={column.getCanSort() ? 0 : undefined}\n >\n <span className=\"truncate\">\n {flexRender(column.columnDef.header, header.getContext())}\n </span>\n <SortingIndicator column={column} />\n </div>\n )}\n {!header.isPlaceholder && <PinControls column={column} />}\n </div>\n );\n};\n\ninterface DataTableProps {\n table: ReactTable<AnyEntity>;\n columnsLength?: number;\n isLoading?: boolean;\n onClickRow?: (id: string) => void;\n}\n\nexport const DataTable = ({ table, isLoading, onClickRow }: DataTableProps) => {\n \"use no memo\";\n return (\n <ScrollArea className=\"border-border bg-background relative w-full overflow-auto rounded-lg border\">\n <Table\n className={cn(\n \"!w-full\",\n \"[&_td]:border-border\",\n \"[&_th]:border-border\",\n \"table-fixed border-separate border-spacing-0\",\n \"[&_tfoot_td]:border-t\",\n \"[&_th]:border-b\",\n \"[&_tr]:border-none\",\n \"[&_tr:not(:last-child)_td]:border-b\",\n )}\n style={{\n width: table.getTotalSize(),\n }}\n >\n <TableHeader className=\"bg-muted/50 sticky top-0 z-10 backdrop-blur-xs\">\n {table.getHeaderGroups().map((headerGroup) => (\n <TableRow key={headerGroup.id} className=\"bg-muted/50\">\n {headerGroup.headers.map((header) => {\n const { column } = header;\n const isPinned = column.getIsPinned();\n const isLastLeftPinned =\n isPinned === \"left\" && column.getIsLastColumn(\"left\");\n const isFirstRightPinned =\n isPinned === \"right\" && column.getIsFirstColumn(\"right\");\n return (\n <TableHead\n key={header.id}\n data-pinned={isPinned || undefined}\n data-last-col={\n isLastLeftPinned\n ? \"left\"\n : isFirstRightPinned\n ? \"right\"\n : undefined\n }\n className={cn(\n \"text-accent-foreground/60 relative h-9 border-r font-semibold select-none\",\n \"data-pinned:backdrop-blur-xs\",\n \"data-pinned:bg-muted/90\",\n \"[&>.cursor-col-resize]:last:opacity-0\",\n \"[&[data-pinned][data-last-col]]:border-border\",\n \"[&:not([data-pinned]):has(+[data-pinned])_div.cursor-col-resize:last-child]:opacity-0\",\n \"[&[data-last-col=left]_div.cursor-col-resize:last-child]:opacity-0\",\n \"[&[data-pinned=left][data-last-col=left]]:border-r\",\n \"[&[data-pinned=right]:last-child_div.cursor-col-resize:last-child]:opacity-0\",\n \"[&[data-pinned=right][data-last-col=right]]:border-l\",\n )}\n {...{\n colSpan: header.colSpan,\n style: {\n width: header.getSize(),\n maxWidth: header.getSize(),\n ...getPinningStyles(header.column),\n },\n }}\n >\n <HeaderContent header={header} />\n </TableHead>\n );\n })}\n </TableRow>\n ))}\n </TableHeader>\n\n <TableBody\n className={cn(\n isLoading && \"h-36\",\n table.getRowModel().rows?.length === 0 && \"h-48\",\n )}\n >\n {isLoading ? (\n <TableRow className=\"absolute top-9 flex h-36 w-full items-center justify-center\">\n <TableCell>loading...</TableCell>\n </TableRow>\n ) : (\n <React.Fragment>\n {table.getRowModel().rows?.length ? (\n table.getRowModel().rows.map((row) => (\n <TableRow\n key={row.id}\n data-state={row.getIsSelected() && \"selected\"}\n className=\"cursor-pointer border-none focus:outline-none\"\n onClick={() =>\n onClickRow?.(\n row?.id ||\n row.original?.id?.toString() ||\n row.original?.uuid ||\n undefined,\n )\n }\n >\n {row.getVisibleCells().map((cell) => {\n const { column } = cell;\n const isPinned = column.getIsPinned();\n const isLastLeftPinned =\n isPinned === \"left\" && column.getIsLastColumn(\"left\");\n const isFirstRightPinned =\n isPinned === \"right\" &&\n column.getIsFirstColumn(\"right\");\n return (\n <TableCell\n key={cell.id}\n style={{\n ...getPinningStyles(column),\n width: cell.column.getSize(),\n maxWidth: cell.column.getSize(),\n }}\n data-pinned={isPinned || undefined}\n data-last-col={\n isLastLeftPinned\n ? \"left\"\n : isFirstRightPinned\n ? \"right\"\n : undefined\n }\n className={cn(\n \"overflow-hidden py-2.5\",\n \"[&[data-pinned][data-last-col]]:border-border\",\n \"[&[data-pinned=left][data-last-col=left]]:border-r\",\n \"[&[data-pinned=right][data-last-col=right]]:border-l\",\n \"data-pinned:bg-background/90\",\n )}\n >\n {flexRender(\n cell.column.columnDef.cell,\n cell.getContext(),\n )}\n </TableCell>\n );\n })}\n </TableRow>\n ))\n ) : (\n <TableRow className=\"absolute top-9 flex h-36 w-full items-center justify-center\">\n <TableCell>\n <div className=\"text-muted-foreground flex size-full flex-col items-center justify-center gap-y-8 text-base\">\n <PackagePlusIcon size={48} strokeWidth={2} />\n <p>Thêm dữ liệu để hiển thị</p>\n </div>\n </TableCell>\n </TableRow>\n )}\n </React.Fragment>\n )}\n </TableBody>\n </Table>\n <ScrollBar orientation=\"vertical\" className=\"z-10 w-2\" />\n <ScrollBar\n orientation=\"horizontal\"\n className=\"absolute right-0 bottom-0 left-0 h-2\"\n />\n </ScrollArea>\n );\n};\n","import { type Table } from \"@tanstack/react-table\";\nimport {\n ChevronLeft,\n ChevronRight,\n ChevronsLeft,\n ChevronsRight,\n} from \"lucide-react\";\n\nimport { Button } from \"@/components/ui/button\";\nimport {\n Select,\n SelectContent,\n SelectItem,\n SelectTrigger,\n SelectValue,\n} from \"@/components/ui/select\";\n\ninterface DataTablePaginationProps<TData> {\n table: Table<TData>;\n}\n\nexport function DataTablePagination<TData>({\n table,\n}: DataTablePaginationProps<TData>) {\n \"use no memo\";\n return (\n <div className=\"mt-4 flex w-full flex-0 flex-wrap items-center justify-between gap-y-4 px-2\">\n <div className=\"text-muted-foreground flex-1 text-sm\">\n {table.getFilteredSelectedRowModel().rows.length} of{\" \"}\n {table.getFilteredRowModel().rows.length} row(s) selected.\n </div>\n <div className=\"flex flex-wrap items-center space-x-6 gap-y-4 lg:space-x-8\">\n <div className=\"flex items-center space-x-2\">\n <p className=\"text-sm font-medium\">Rows per page</p>\n <Select\n value={`${table.getState().pagination.pageSize}`}\n onValueChange={(value) => {\n table.setPageSize(Number(value));\n }}\n >\n <SelectTrigger className=\"h-8 w-[70px]\">\n <SelectValue placeholder={table.getState().pagination.pageSize} />\n </SelectTrigger>\n <SelectContent side=\"top\">\n {[10, 20, 30, 40, 50].map((pageSize) => (\n <SelectItem key={pageSize} value={`${pageSize}`}>\n {pageSize}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n </div>\n <div className=\"flex w-25 items-center justify-center text-sm font-medium\">\n Page {table.getState().pagination.pageIndex + 1} of{\" \"}\n {table.getPageCount()}\n </div>\n <div className=\"flex items-center space-x-2 *:size-9 *:p-0\">\n <Button\n variant=\"outline\"\n className=\"lg:flex\"\n onClick={() => table.setPageIndex(0)}\n disabled={!table.getCanPreviousPage()}\n >\n <span className=\"sr-only\">Go to first page</span>\n <ChevronsLeft />\n </Button>\n <Button\n variant=\"outline\"\n onClick={() => table.previousPage()}\n disabled={!table.getCanPreviousPage()}\n >\n <span className=\"sr-only\">Go to previous page</span>\n <ChevronLeft />\n </Button>\n <Button\n type=\"button\"\n variant=\"outline\"\n onClick={() => table.nextPage()}\n disabled={!table.getCanNextPage()}\n >\n <span className=\"sr-only\">Go to next page</span>\n <ChevronRight />\n </Button>\n <Button\n variant=\"outline\"\n className=\"lg:flex\"\n onClick={() => {\n table.setPageIndex(table.getPageCount() - 1);\n }}\n disabled={!table.getCanNextPage()}\n >\n <span className=\"sr-only\">Go to last page</span>\n <ChevronsRight />\n </Button>\n </div>\n </div>\n </div>\n );\n}\n","import React from \"react\";\nimport {\n type ColumnDef,\n type ColumnFiltersState,\n getCoreRowModel,\n getFacetedRowModel,\n getFacetedUniqueValues,\n getFilteredRowModel,\n getPaginationRowModel,\n getSortedRowModel,\n type PaginationState,\n type RowSelectionState,\n type SortingState,\n useReactTable,\n type VisibilityState,\n} from \"@tanstack/react-table\";\n\nimport { DataTable } from \"./data-table\";\nimport { DataTablePagination } from \"./data-table-pagination\";\nimport { Flex } from \"../layouts/flex\";\nimport { AddNewBtn } from \"../ui/buttons/add-new\";\nimport { RefreshBtn } from \"../ui/buttons/refresh\";\nimport { SearchInput } from \"../ui/inputs/search-input\";\n\ntype Props<T> = {\n data: T[];\n totalCount?: number;\n isLoading?: boolean;\n columns: ColumnDef<T>[];\n pagination?: PaginationState;\n onAdd?: () => void;\n onRefresh?: () => void;\n onClickRow?: (id: string) => void;\n onPaginationChange?: React.Dispatch<React.SetStateAction<PaginationState>>;\n};\nexport function Table<T extends Record<string, unknown>>({\n data,\n totalCount,\n isLoading,\n columns,\n pagination,\n onAdd,\n onRefresh,\n onClickRow,\n onPaginationChange,\n}: Props<T>) {\n \"use no memo\";\n\n const [rowSelection, setRowSelection] = React.useState<RowSelectionState>({});\n const [sorting, setSorting] = React.useState<SortingState>([]);\n const [columnFilters, setColumnFilters] = React.useState<ColumnFiltersState>(\n [],\n );\n const [columnVisibility, setColumnVisibility] =\n React.useState<VisibilityState>({});\n\n const initialState = React.useMemo(\n () => ({\n columnPinning: { right: [\"actions\", \"update\", \"delete\"] },\n pagination: { pageIndex: 0, pageSize: 20 },\n }),\n [],\n );\n\n const table = useReactTable<T>({\n initialState,\n data,\n columns,\n rowCount: totalCount,\n columnResizeMode: \"onChange\",\n manualPagination: true,\n enableColumnResizing: false,\n enableMultiRowSelection: false,\n getCoreRowModel: getCoreRowModel(),\n getPaginationRowModel: getPaginationRowModel(),\n getSortedRowModel: getSortedRowModel(),\n getFilteredRowModel: getFilteredRowModel(),\n getFacetedRowModel: getFacetedRowModel(),\n getFacetedUniqueValues: getFacetedUniqueValues(),\n getRowId: (row) => (row.id as string) || (row.uuid as string),\n state: {\n rowSelection,\n sorting,\n columnVisibility,\n columnFilters,\n ...(pagination ? { pagination } : {}),\n },\n onRowSelectionChange: setRowSelection,\n onSortingChange: setSorting,\n onColumnVisibilityChange: setColumnVisibility,\n onColumnFiltersChange: setColumnFilters,\n ...(onPaginationChange ? { onPaginationChange } : {}),\n });\n\n return (\n <Flex\n vertical\n wrap={false}\n gap=\"sm\"\n align=\"start\"\n className=\"size-full overflow-y-auto pt-1\"\n >\n <Flex justify=\"between\" padding=\"none\" width=\"full\" className=\"flex-0\">\n <SearchInput placeholder=\"Search...\" />\n <Flex className=\"px-0\">\n {onAdd && <AddNewBtn onClick={onAdd} />}\n <RefreshBtn onClick={onRefresh} />\n </Flex>\n </Flex>\n <Flex\n padding=\"none\"\n vertical\n wrap={false}\n width=\"full\"\n className=\"flex-1 overflow-auto\"\n >\n <DataTable\n table={table}\n isLoading={isLoading}\n onClickRow={onClickRow}\n />\n <DataTablePagination<T> table={table} />\n </Flex>\n </Flex>\n );\n}\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","names":["Table"],"sources":["../../packages/components/table/data-table.tsx","../../packages/components/table/data-table-pagination.tsx","../../packages/components/table/index.tsx"],"sourcesContent":["import React, { type CSSProperties } from \"react\";\nimport {\n type Column,\n flexRender,\n type Header,\n type Table as ReactTable,\n} from \"@tanstack/react-table\";\nimport {\n ArrowLeftToLineIcon,\n ArrowRightToLineIcon,\n ChevronDown,\n ChevronUp,\n EllipsisIcon,\n PackagePlusIcon,\n PinOffIcon,\n} from \"lucide-react\";\n\nimport { cn } from \"@/lib/utils\";\nimport type { AnyEntity } from \"@/types\";\n\nimport { Button } from \"../ui/button\";\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuTrigger,\n} from \"../ui/dropdown-menu\";\nimport { ScrollArea, ScrollBar } from \"../ui/scroll-area\";\nimport {\n Table,\n TableBody,\n TableCell,\n TableHead,\n TableHeader,\n TableRow,\n} from \"../ui/table\";\n\n// Helper function to compute pinning styles for columns\nconst getPinningStyles = (column: Column<AnyEntity>): CSSProperties => {\n const isPinned = column.getIsPinned();\n return {\n left: isPinned === \"left\" ? `${column.getStart(\"left\")}px` : undefined,\n right: isPinned === \"right\" ? `${column.getAfter(\"right\")}px` : undefined,\n position: isPinned ? \"sticky\" : \"relative\",\n width: column.getSize(),\n zIndex: isPinned ? 1 : 0,\n };\n};\n\nconst SortingIndicator = ({ column }: { column: Column<AnyEntity> }) => {\n const sortDirection = column.getIsSorted();\n\n const icons = {\n asc: (\n <ChevronUp\n className=\"shrink-0 opacity-60\"\n size={16}\n strokeWidth={2}\n aria-hidden=\"true\"\n />\n ),\n desc: (\n <ChevronDown\n className=\"shrink-0 opacity-60\"\n size={16}\n strokeWidth={2}\n aria-hidden=\"true\"\n />\n ),\n };\n\n return sortDirection ? icons[sortDirection] : null;\n};\n\nconst PinControls = ({ column }: { column: Column<AnyEntity> }) => {\n const columnHeader = column.columnDef.header as string;\n\n if (!column.getCanPin()) return null;\n\n if (column.getIsPinned()) {\n return (\n <Button\n size=\"icon\"\n variant=\"ghost\"\n className=\"hover:[&_svg]:text-secondary-foreground -mr-1 size-7 shadow-none\"\n aria-label={`Unpin ${columnHeader} column`}\n title={`Unpin ${columnHeader} column`}\n onClick={() => column.pin(false)}\n >\n <PinOffIcon className=\"opacity-60\" size={16} aria-hidden=\"true\" />\n </Button>\n );\n }\n\n return (\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <Button\n size=\"icon\"\n variant=\"ghost\"\n className=\"-mr-1 size-7 shadow-none\"\n aria-label={`Pin options for ${columnHeader} column`}\n title={`Pin options for ${columnHeader} column`}\n >\n <EllipsisIcon className=\"opacity-60\" size={16} aria-hidden=\"true\" />\n </Button>\n </DropdownMenuTrigger>\n <DropdownMenuContent align=\"end\">\n <DropdownMenuItem onClick={() => column.pin(\"left\")}>\n <ArrowLeftToLineIcon\n size={16}\n className=\"opacity-60\"\n aria-hidden=\"true\"\n />\n Stick to left\n </DropdownMenuItem>\n <DropdownMenuItem onClick={() => column.pin(\"right\")}>\n <ArrowRightToLineIcon\n size={16}\n className=\"opacity-60\"\n aria-hidden=\"true\"\n />\n Stick to right\n </DropdownMenuItem>\n </DropdownMenuContent>\n </DropdownMenu>\n );\n};\n\nconst HeaderContent = ({ header }: { header: Header<AnyEntity, unknown> }) => {\n const { column } = header;\n\n const handleSort = (e: React.KeyboardEvent) => {\n if (column.getCanSort() && (e.key === \"Enter\" || e.key === \" \")) {\n e.preventDefault();\n column.getToggleSortingHandler()?.(e);\n }\n };\n\n return (\n <div className=\"flex items-center justify-between gap-2 truncate\">\n {!header.isPlaceholder && (\n <div\n className={cn(\n column.getCanSort() &&\n \"flex h-full cursor-pointer items-center justify-between gap-2 select-none\",\n )}\n onClick={column.getToggleSortingHandler()}\n onKeyDown={handleSort}\n tabIndex={column.getCanSort() ? 0 : undefined}\n >\n <span className=\"truncate\">\n {flexRender(column.columnDef.header, header.getContext())}\n </span>\n <SortingIndicator column={column} />\n </div>\n )}\n {!header.isPlaceholder && <PinControls column={column} />}\n </div>\n );\n};\n\ninterface DataTableProps {\n table: ReactTable<AnyEntity>;\n columnsLength?: number;\n isLoading?: boolean;\n onClickRow?: (id: string) => void;\n}\n\nexport const DataTable = ({ table, isLoading, onClickRow }: DataTableProps) => {\n \"use no memo\";\n return (\n <ScrollArea className=\"border-border bg-background relative w-full overflow-auto rounded-lg border\">\n <Table\n className={cn(\n \"!w-full\",\n \"[&_td]:border-border\",\n \"[&_th]:border-border\",\n \"table-fixed border-separate border-spacing-0\",\n \"[&_tfoot_td]:border-t\",\n \"[&_th]:border-b\",\n \"[&_tr]:border-none\",\n \"[&_tr:not(:last-child)_td]:border-b\",\n )}\n style={{\n width: table.getTotalSize(),\n }}\n >\n <TableHeader className=\"bg-muted/50 sticky top-0 z-10 backdrop-blur-xs\">\n {table.getHeaderGroups().map((headerGroup) => (\n <TableRow key={headerGroup.id} className=\"bg-muted/50\">\n {headerGroup.headers.map((header) => {\n const { column } = header;\n const isPinned = column.getIsPinned();\n const isLastLeftPinned =\n isPinned === \"left\" && column.getIsLastColumn(\"left\");\n const isFirstRightPinned =\n isPinned === \"right\" && column.getIsFirstColumn(\"right\");\n return (\n <TableHead\n key={header.id}\n data-pinned={isPinned || undefined}\n data-last-col={\n isLastLeftPinned\n ? \"left\"\n : isFirstRightPinned\n ? \"right\"\n : undefined\n }\n className={cn(\n \"text-accent-foreground/60 relative h-9 border-r font-semibold select-none\",\n \"data-pinned:backdrop-blur-xs\",\n \"data-pinned:bg-muted/90\",\n \"[&>.cursor-col-resize]:last:opacity-0\",\n \"[&[data-pinned][data-last-col]]:border-border\",\n \"[&:not([data-pinned]):has(+[data-pinned])_div.cursor-col-resize:last-child]:opacity-0\",\n \"[&[data-last-col=left]_div.cursor-col-resize:last-child]:opacity-0\",\n \"[&[data-pinned=left][data-last-col=left]]:border-r\",\n \"[&[data-pinned=right]:last-child_div.cursor-col-resize:last-child]:opacity-0\",\n \"[&[data-pinned=right][data-last-col=right]]:border-l\",\n )}\n {...{\n colSpan: header.colSpan,\n style: {\n width: header.getSize(),\n maxWidth: header.getSize(),\n ...getPinningStyles(header.column),\n },\n }}\n >\n <HeaderContent header={header} />\n </TableHead>\n );\n })}\n </TableRow>\n ))}\n </TableHeader>\n\n <TableBody\n className={cn(\n isLoading && \"h-36\",\n table.getRowModel().rows?.length === 0 && \"h-48\",\n )}\n >\n {isLoading ? (\n <TableRow className=\"absolute top-9 flex h-36 w-full items-center justify-center\">\n <TableCell>loading...</TableCell>\n </TableRow>\n ) : (\n <React.Fragment>\n {table.getRowModel().rows?.length ? (\n table.getRowModel().rows.map((row) => (\n <TableRow\n key={row.id}\n data-state={row.getIsSelected() && \"selected\"}\n className=\"cursor-pointer border-none focus:outline-none\"\n onClick={() =>\n onClickRow?.(\n row?.id ||\n row.original?.id?.toString() ||\n row.original?.uuid ||\n undefined,\n )\n }\n >\n {row.getVisibleCells().map((cell) => {\n const { column } = cell;\n const isPinned = column.getIsPinned();\n const isLastLeftPinned =\n isPinned === \"left\" && column.getIsLastColumn(\"left\");\n const isFirstRightPinned =\n isPinned === \"right\" &&\n column.getIsFirstColumn(\"right\");\n return (\n <TableCell\n key={cell.id}\n style={{\n ...getPinningStyles(column),\n width: cell.column.getSize(),\n maxWidth: cell.column.getSize(),\n }}\n data-pinned={isPinned || undefined}\n data-last-col={\n isLastLeftPinned\n ? \"left\"\n : isFirstRightPinned\n ? \"right\"\n : undefined\n }\n className={cn(\n \"overflow-hidden py-2.5\",\n \"[&[data-pinned][data-last-col]]:border-border\",\n \"[&[data-pinned=left][data-last-col=left]]:border-r\",\n \"[&[data-pinned=right][data-last-col=right]]:border-l\",\n \"data-pinned:bg-background/90\",\n )}\n >\n {flexRender(\n cell.column.columnDef.cell,\n cell.getContext(),\n )}\n </TableCell>\n );\n })}\n </TableRow>\n ))\n ) : (\n <TableRow className=\"absolute top-9 flex h-36 w-full items-center justify-center\">\n <TableCell>\n <div className=\"text-muted-foreground flex size-full flex-col items-center justify-center gap-y-8 text-base\">\n <PackagePlusIcon size={48} strokeWidth={2} />\n <p>Thêm dữ liệu để hiển thị</p>\n </div>\n </TableCell>\n </TableRow>\n )}\n </React.Fragment>\n )}\n </TableBody>\n </Table>\n <ScrollBar orientation=\"vertical\" className=\"z-10 w-2\" />\n <ScrollBar\n orientation=\"horizontal\"\n className=\"absolute right-0 bottom-0 left-0 h-2\"\n />\n </ScrollArea>\n );\n};\n","import { type Table } from \"@tanstack/react-table\";\nimport {\n ChevronLeft,\n ChevronRight,\n ChevronsLeft,\n ChevronsRight,\n} from \"lucide-react\";\n\nimport { Button } from \"@/components/ui/button\";\nimport {\n Select,\n SelectContent,\n SelectItem,\n SelectTrigger,\n SelectValue,\n} from \"@/components/ui/select\";\n\ninterface DataTablePaginationProps<TData> {\n table: Table<TData>;\n}\n\nexport function DataTablePagination<TData>({\n table,\n}: DataTablePaginationProps<TData>) {\n \"use no memo\";\n return (\n <div className=\"mt-4 flex w-full flex-0 flex-wrap items-center justify-between gap-y-4 px-2\">\n <div className=\"text-muted-foreground flex-1 text-sm\">\n {table.getFilteredSelectedRowModel().rows.length} of{\" \"}\n {table.getFilteredRowModel().rows.length} row(s) selected.\n </div>\n <div className=\"flex flex-wrap items-center space-x-6 gap-y-4 lg:space-x-8\">\n <div className=\"flex items-center space-x-2\">\n <p className=\"text-sm font-medium\">Rows per page</p>\n <Select\n value={`${table.getState().pagination.pageSize}`}\n onValueChange={(value) => {\n table.setPageSize(Number(value));\n }}\n >\n <SelectTrigger className=\"h-8 w-[70px]\">\n <SelectValue placeholder={table.getState().pagination.pageSize} />\n </SelectTrigger>\n <SelectContent side=\"top\">\n {[10, 20, 30, 40, 50].map((pageSize) => (\n <SelectItem key={pageSize} value={`${pageSize}`}>\n {pageSize}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n </div>\n <div className=\"flex w-25 items-center justify-center text-sm font-medium\">\n Page {table.getState().pagination.pageIndex + 1} of{\" \"}\n {table.getPageCount()}\n </div>\n <div className=\"flex items-center space-x-2 *:size-9 *:p-0\">\n <Button\n variant=\"outline\"\n className=\"lg:flex\"\n onClick={() => table.setPageIndex(0)}\n disabled={!table.getCanPreviousPage()}\n >\n <span className=\"sr-only\">Go to first page</span>\n <ChevronsLeft />\n </Button>\n <Button\n variant=\"outline\"\n onClick={() => table.previousPage()}\n disabled={!table.getCanPreviousPage()}\n >\n <span className=\"sr-only\">Go to previous page</span>\n <ChevronLeft />\n </Button>\n <Button\n type=\"button\"\n variant=\"outline\"\n onClick={() => table.nextPage()}\n disabled={!table.getCanNextPage()}\n >\n <span className=\"sr-only\">Go to next page</span>\n <ChevronRight />\n </Button>\n <Button\n variant=\"outline\"\n className=\"lg:flex\"\n onClick={() => {\n table.setPageIndex(table.getPageCount() - 1);\n }}\n disabled={!table.getCanNextPage()}\n >\n <span className=\"sr-only\">Go to last page</span>\n <ChevronsRight />\n </Button>\n </div>\n </div>\n </div>\n );\n}\n","import React from \"react\";\nimport {\n type ColumnDef,\n type ColumnFiltersState,\n getCoreRowModel,\n getFacetedRowModel,\n getFacetedUniqueValues,\n getFilteredRowModel,\n getPaginationRowModel,\n getSortedRowModel,\n type PaginationState,\n type RowSelectionState,\n type SortingState,\n useReactTable,\n type VisibilityState,\n} from \"@tanstack/react-table\";\n\nimport { DataTable } from \"./data-table\";\nimport { DataTablePagination } from \"./data-table-pagination\";\nimport { Flex } from \"../layouts/flex\";\nimport { AddNewBtn } from \"../ui/buttons/add-new\";\nimport { RefreshBtn } from \"../ui/buttons/refresh\";\nimport { SearchInput } from \"../ui/inputs/search-input\";\n\ntype Props<T> = {\n data: T[];\n totalCount?: number;\n isLoading?: boolean;\n columns: ColumnDef<T>[];\n pagination?: PaginationState;\n onAdd?: () => void;\n onRefresh?: () => void;\n onClickRow?: (id: string) => void;\n onPaginationChange?: React.Dispatch<React.SetStateAction<PaginationState>>;\n};\nexport function Table<T extends Record<string, unknown>>({\n data,\n totalCount,\n isLoading,\n columns,\n pagination,\n onAdd,\n onRefresh,\n onClickRow,\n onPaginationChange,\n}: Props<T>) {\n \"use no memo\";\n\n const [rowSelection, setRowSelection] = React.useState<RowSelectionState>({});\n const [sorting, setSorting] = React.useState<SortingState>([]);\n const [columnFilters, setColumnFilters] = React.useState<ColumnFiltersState>(\n [],\n );\n const [columnVisibility, setColumnVisibility] =\n React.useState<VisibilityState>({});\n\n const initialState = React.useMemo(\n () => ({\n columnPinning: { right: [\"actions\", \"update\", \"delete\"] },\n pagination: { pageIndex: 0, pageSize: 20 },\n }),\n [],\n );\n\n const table = useReactTable<T>({\n initialState,\n data,\n columns,\n rowCount: totalCount,\n columnResizeMode: \"onChange\",\n manualPagination: true,\n enableColumnResizing: false,\n enableMultiRowSelection: false,\n getCoreRowModel: getCoreRowModel(),\n getPaginationRowModel: getPaginationRowModel(),\n getSortedRowModel: getSortedRowModel(),\n getFilteredRowModel: getFilteredRowModel(),\n getFacetedRowModel: getFacetedRowModel(),\n getFacetedUniqueValues: getFacetedUniqueValues(),\n getRowId: (row) => (row.id as string) || (row.uuid as string),\n state: {\n rowSelection,\n sorting,\n columnVisibility,\n columnFilters,\n ...(pagination ? { pagination } : {}),\n },\n onRowSelectionChange: setRowSelection,\n onSortingChange: setSorting,\n onColumnVisibilityChange: setColumnVisibility,\n onColumnFiltersChange: setColumnFilters,\n ...(onPaginationChange ? { onPaginationChange } : {}),\n });\n\n return (\n <Flex\n vertical\n wrap={false}\n gap=\"sm\"\n align=\"start\"\n className=\"size-full overflow-y-auto pt-1\"\n >\n <Flex justify=\"between\" padding=\"none\" width=\"full\" className=\"flex-0\">\n <SearchInput placeholder=\"Search...\" />\n <Flex className=\"px-0\">\n {onAdd && <AddNewBtn onClick={onAdd} />}\n <RefreshBtn onClick={onRefresh} />\n </Flex>\n </Flex>\n <Flex\n padding=\"none\"\n vertical\n wrap={false}\n width=\"full\"\n className=\"flex-1 overflow-auto\"\n >\n <DataTable\n table={table}\n isLoading={isLoading}\n onClickRow={onClickRow}\n />\n <DataTablePagination<T> table={table} />\n </Flex>\n </Flex>\n );\n}\n"],"mappings":"0yCAsCA,MAAM,EAAoB,GAA6C,CACrE,IAAM,EAAW,EAAO,cACxB,MAAO,CACL,KAAM,IAAa,OAAS,GAAG,EAAO,SAAS,QAAQ,IAAM,IAAA,GAC7D,MAAO,IAAa,QAAU,GAAG,EAAO,SAAS,SAAS,IAAM,IAAA,GAChE,SAAU,EAAW,SAAW,WAChC,MAAO,EAAO,UACd,OAAQ,EAAW,EAAI,EACxB,AACF,EAEK,GAAoB,CAAE,SAAuC,GAAK,CACtE,IAAM,EAAgB,EAAO,cAEvB,EAAQ,CACZ,IACE,EAAC,EAAA,CACC,UAAU,sBACV,KAAM,GACN,YAAa,EACb,cAAY,SAGhB,KACE,EAAC,EAAA,CACC,UAAU,sBACV,KAAM,GACN,YAAa,EACb,cAAY,SAGjB,CAED,OAAO,EAAgB,EAAM,GAAiB,IAC/C,EAEK,GAAe,CAAE,SAAuC,GAAK,CACjE,IAAM,EAAe,EAAO,UAAU,OAmBtC,OAjBK,EAAO,YAER,EAAO,cAEP,EAAC,EAAA,CACC,KAAK,OACL,QAAQ,QACR,UAAU,mEACV,aAAY,SAAS,EAAa,SAClC,MAAO,SAAS,EAAa,SAC7B,YAAe,EAAO,IAAI,aAE1B,EAAC,EAAA,CAAW,UAAU,aAAa,KAAM,GAAI,cAAY,WAM7D,EAAC,EAAA,CAAA,SAAA,CACC,EAAC,EAAA,CAAoB,QAAA,YACnB,EAAC,EAAA,CACC,KAAK,OACL,QAAQ,QACR,UAAU,2BACV,aAAY,mBAAmB,EAAa,SAC5C,MAAO,mBAAmB,EAAa,kBAEvC,EAAC,EAAA,CAAa,UAAU,aAAa,KAAM,GAAI,cAAY,aAG/D,EAAC,EAAA,CAAoB,MAAM,gBACzB,EAAC,EAAA,CAAiB,YAAe,EAAO,IAAI,kBAC1C,EAAC,EAAA,CACC,KAAM,GACN,UAAU,aACV,cAAY,SACZ,gBAAA,GAGJ,EAAC,EAAA,CAAiB,YAAe,EAAO,IAAI,mBAC1C,EAAC,EAAA,CACC,KAAM,GACN,UAAU,aACV,cAAY,SACZ,iBAAA,SA5CsB,IAkDjC,EAEK,GAAiB,CAAE,SAAgD,GAAK,CAC5E,GAAM,CAAE,SAAQ,CAAG,EAEb,EAAc,GAA2B,CACzC,EAAO,eAAiB,EAAE,MAAQ,SAAW,EAAE,MAAQ,OACzD,EAAE,iBACF,EAAO,4BAA4B,GAEtC,EAED,OACE,EAAC,MAAA,CAAI,UAAU,6DACZ,CAAC,EAAO,eACP,EAAC,MAAA,CACC,UAAW,EACT,EAAO,cACL,6EAEJ,QAAS,EAAO,0BAChB,UAAW,EACX,SAAU,EAAO,aAAe,EAAI,IAAA,aAEpC,EAAC,OAAA,CAAK,UAAU,oBACb,EAAW,EAAO,UAAU,OAAQ,EAAO,gBAE9C,EAAC,EAAA,CAAyB,SAAA,EAAA,GAG7B,CAAC,EAAO,eAAiB,EAAC,EAAA,CAAoB,SAAA,EAAA,EAGpD,EASY,GAAa,CAAE,QAAO,YAAW,aAA4B,GAAK,CAC7E,cACA,OACE,EAAC,EAAA,CAAW,UAAU,wFACpB,EAACA,EAAAA,CACC,UAAW,EACT,UACA,uBACA,uBACA,+CACA,wBACA,kBACA,qBACA,uCAEF,MAAO,CACL,MAAO,EAAM,eACd,WAED,EAAC,EAAA,CAAY,UAAU,0DACpB,EAAM,kBAAkB,IAAK,GAC5B,EAAC,EAAA,CAA8B,UAAU,uBACtC,EAAY,QAAQ,IAAK,GAAW,CACnC,GAAM,CAAE,SAAQ,CAAG,EACb,EAAW,EAAO,cAClB,EACJ,IAAa,QAAU,EAAO,gBAAgB,QAC1C,EACJ,IAAa,SAAW,EAAO,iBAAiB,SAClD,OACE,EAAC,EAAA,CAEC,cAAa,GAAY,IAAA,GACzB,gBACE,EACI,OACA,EACE,QACA,IAAA,GAER,UAAW,EACT,4EACA,+BACA,0BACA,wCACA,gDACA,wFACA,qEACA,qDACA,+EACA,wDAGA,QAAS,EAAO,QAChB,MAAO,CACL,MAAO,EAAO,UACd,SAAU,EAAO,UACjB,GAAG,EAAiB,EAAO,QAC5B,UAGH,EAAC,EAAA,CAAsB,SAAA,GA9BlB,EAAO,GAiCjB,IA3CY,EAAY,OAgD/B,EAAC,EAAA,CACC,UAAW,EACT,GAAa,OACb,EAAM,cAAc,MAAM,SAAW,GAAK,iBAG3C,EACC,EAAC,EAAA,CAAS,UAAU,uEAClB,EAAC,EAAA,CAAA,SAAU,aAAA,IAGb,EAAC,EAAM,SAAA,CAAA,SACJ,EAAM,cAAc,MAAM,OACzB,EAAM,cAAc,KAAK,IAAK,GAC5B,EAAC,EAAA,CAEC,aAAY,EAAI,iBAAmB,WACnC,UAAU,gDACV,YACE,IACE,GAAK,IACH,EAAI,UAAU,IAAI,YAClB,EAAI,UAAU,MACd,IAAA,aAIL,EAAI,kBAAkB,IAAK,GAAS,CACnC,GAAM,CAAE,SAAQ,CAAG,EACb,EAAW,EAAO,cAClB,EACJ,IAAa,QAAU,EAAO,gBAAgB,QAC1C,EACJ,IAAa,SACb,EAAO,iBAAiB,SAC1B,OACE,EAAC,EAAA,CAEC,MAAO,CACL,GAAG,EAAiB,GACpB,MAAO,EAAK,OAAO,UACnB,SAAU,EAAK,OAAO,UACvB,CACD,cAAa,GAAY,IAAA,GACzB,gBACE,EACI,OACA,EACE,QACA,IAAA,GAER,UAAW,EACT,yBACA,gDACA,qDACA,uDACA,yCAGD,EACC,EAAK,OAAO,UAAU,KACtB,EAAK,eAxBF,EAAK,GA4Bf,IAlDI,EAAI,KAsDb,EAAC,EAAA,CAAS,UAAU,uEAClB,EAAC,EAAA,CAAA,SACC,EAAC,MAAA,CAAI,UAAU,wGACb,EAAC,EAAA,CAAgB,KAAM,GAAI,YAAa,IACxC,EAAC,IAAA,CAAA,SAAE,2BAAA,EAAA,cASnB,EAAC,EAAA,CAAU,YAAY,WAAW,UAAU,aAC5C,EAAC,EAAA,CACC,YAAY,aACZ,UAAU,2CAIjB,EClTD,SAAgB,EAA2B,CACzC,QACgC,CAAE,CAClC,cACA,OACE,EAAC,MAAA,CAAI,UAAU,wFACb,EAAC,MAAA,CAAI,UAAU,iDACZ,EAAM,8BAA8B,KAAK,OAAO,MAAI,IACpD,EAAM,sBAAsB,KAAK,OAAO,uBAE3C,EAAC,MAAA,CAAI,UAAU,uEACb,EAAC,MAAA,CAAI,UAAU,wCACb,EAAC,IAAA,CAAE,UAAU,+BAAsB,kBACnC,EAAC,EAAA,CACC,MAAO,GAAG,EAAM,WAAW,WAAW,WACtC,cAAgB,GAAU,CACxB,EAAM,YAAY,OAAO,GAC1B,YAED,EAAC,EAAA,CAAc,UAAU,wBACvB,EAAC,EAAA,CAAY,YAAa,EAAM,WAAW,WAAW,SAAA,IAExD,EAAC,EAAA,CAAc,KAAK,eACjB,CAAC,GAAI,GAAI,GAAI,GAAI,GAAG,CAAC,IAAK,GACzB,EAAC,EAAA,CAA0B,MAAO,GAAG,aAClC,GADc,YAOzB,EAAC,MAAA,CAAI,UAAU,sEAA4D,QACnE,EAAM,WAAW,WAAW,UAAY,EAAE,MAAI,IACnD,EAAM,kBAET,EAAC,MAAA,CAAI,UAAU,uDACb,EAAC,EAAA,CACC,QAAQ,UACR,UAAU,UACV,YAAe,EAAM,aAAa,GAClC,SAAU,CAAC,EAAM,+BAEjB,EAAC,OAAA,CAAK,UAAU,mBAAU,qBAC1B,EAAC,EAAA,EAAA,EAAA,GAEH,EAAC,EAAA,CACC,QAAQ,UACR,YAAe,EAAM,eACrB,SAAU,CAAC,EAAM,+BAEjB,EAAC,OAAA,CAAK,UAAU,mBAAU,wBAC1B,EAAC,EAAA,EAAA,EAAA,GAEH,EAAC,EAAA,CACC,KAAK,SACL,QAAQ,UACR,YAAe,EAAM,WACrB,SAAU,CAAC,EAAM,2BAEjB,EAAC,OAAA,CAAK,UAAU,mBAAU,oBAC1B,EAAC,EAAA,EAAA,EAAA,GAEH,EAAC,EAAA,CACC,QAAQ,UACR,UAAU,UACV,YAAe,CACb,EAAM,aAAa,EAAM,eAAiB,EAC3C,EACD,SAAU,CAAC,EAAM,2BAEjB,EAAC,OAAA,CAAK,UAAU,mBAAU,oBAC1B,EAAC,EAAA,EAAA,EAAA,WAMZ,CC/DD,SAAgB,EAAyC,CACvD,OACA,aACA,YACA,UACA,aACA,QACA,YACA,aACA,qBACS,CAAE,CACX,cAEA,GAAM,CAAC,EAAc,EAAgB,CAAG,EAAM,SAA4B,EAAE,EACtE,CAAC,EAAS,EAAW,CAAG,EAAM,SAAuB,EAAE,EACvD,CAAC,EAAe,EAAiB,CAAG,EAAM,SAC9C,EAAE,EAEE,CAAC,EAAkB,EAAoB,CAC3C,EAAM,SAA0B,EAAE,EAE9B,EAAe,EAAM,aAClB,CACL,cAAe,CAAE,MAAO,CAAC,UAAW,SAAU,SAAS,CAAE,CACzD,WAAY,CAAE,UAAW,EAAG,SAAU,GAAI,CAC3C,EACD,EAAE,EAGE,EAAQ,EAAiB,CAC7B,eACA,OACA,UACA,SAAU,EACV,iBAAkB,WAClB,iBAAkB,GAClB,qBAAsB,GACtB,wBAAyB,GACzB,gBAAiB,IACjB,sBAAuB,IACvB,kBAAmB,IACnB,oBAAqB,IACrB,mBAAoB,IACpB,uBAAwB,IACxB,SAAW,GAAS,EAAI,IAAkB,EAAI,KAC9C,MAAO,CACL,eACA,UACA,mBACA,gBACA,GAAI,EAAa,CAAE,aAAY,CAAG,EAAE,CACrC,CACD,qBAAsB,EACtB,gBAAiB,EACjB,yBAA0B,EAC1B,sBAAuB,EACvB,GAAI,EAAqB,CAAE,qBAAoB,CAAG,EAAE,CACrD,EAED,OACE,EAAC,EAAA,CACC,SAAA,GACA,KAAM,GACN,IAAI,KACJ,MAAM,QACN,UAAU,2CAEV,EAAC,EAAA,CAAK,QAAQ,UAAU,QAAQ,OAAO,MAAM,OAAO,UAAU,mBAC5D,EAAC,EAAA,CAAY,YAAY,YAAA,EACzB,EAAC,EAAA,CAAK,UAAU,iBACb,GAAS,EAAC,EAAA,CAAU,QAAS,EAAA,EAC9B,EAAC,EAAA,CAAW,QAAS,EAAA,EAAA,MAGzB,EAAC,EAAA,CACC,QAAQ,OACR,SAAA,GACA,KAAM,GACN,MAAM,OACN,UAAU,iCAEV,EAAC,EAAA,CACQ,QACI,YACC,eAEd,EAAC,EAAA,CAA8B,QAAA,EAAA,KAItC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"table-BSeev7T0.cjs","names":["cn"],"sources":["../packages/components/ui/table.tsx"],"sourcesContent":["\"use client\";\nimport React from \"react\";\n\nimport { cn } from \"@/lib/utils\";\n\nfunction Table({ className, ...props }: React.ComponentProps<\"table\">) {\n return (\n <div\n data-slot=\"table-container\"\n className=\"relative w-full overflow-x-auto\"\n >\n <table\n data-slot=\"table\"\n className={cn(\"w-full caption-bottom text-sm\", className)}\n {...props}\n />\n </div>\n );\n}\n\nfunction TableHeader({ className, ...props }: React.ComponentProps<\"thead\">) {\n return (\n <thead\n data-slot=\"table-header\"\n className={cn(\"bg-muted/50 [&_tr]:border-b\", className)}\n {...props}\n />\n );\n}\n\nfunction TableBody({ className, ...props }: React.ComponentProps<\"tbody\">) {\n return (\n <tbody\n data-slot=\"table-body\"\n className={cn(\"[&_tr:last-child]:border-0\", className)}\n {...props}\n />\n );\n}\n\nfunction TableFooter({ className, ...props }: React.ComponentProps<\"tfoot\">) {\n return (\n <tfoot\n data-slot=\"table-footer\"\n className={cn(\n \"bg-muted/50 border-t font-medium [&>tr]:last:border-b-0\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction TableRow({ className, ...props }: React.ComponentProps<\"tr\">) {\n return (\n <tr\n data-slot=\"table-row\"\n className={cn(\n \"hover:bg-muted/50 active:bg-muted/80 data-[state=selected]:bg-muted border-b transition-colors\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction TableHead({ className, ...props }: React.ComponentProps<\"th\">) {\n return (\n <th\n data-slot=\"table-head\"\n className={cn(\n \"text-muted-foreground\",\n \"h-10 px-2 text-left align-middle font-medium whitespace-nowrap\",\n \"[&:has([role=checkbox])]:pr-0\",\n \"[&>[role=checkbox]]:translate-y-[2px]\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction TableCell({ className, ...props }: React.ComponentProps<\"td\">) {\n return (\n <td\n data-slot=\"table-cell\"\n className={cn(\n \"p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction TableCaption({\n className,\n ...props\n}: React.ComponentProps<\"caption\">) {\n return (\n <caption\n data-slot=\"table-caption\"\n className={cn(\"text-muted-foreground mt-4 text-sm\", className)}\n {...props}\n />\n );\n}\n\nexport {\n Table,\n TableBody,\n TableCaption,\n TableCell,\n TableFooter,\n TableHead,\n TableHeader,\n TableRow,\n};\n"],"mappings":"kJAKA,SAAS,EAAM,CAAE,YAAW,GAAG,EAAsC,CAAE,CACrE,OACE,EAAA,EAAA,KAAC,MAAA,CACC,YAAU,kBACV,UAAU,4CAEV,EAAA,EAAA,KAAC,QAAA,CACC,YAAU,QACV,UAAWA,EAAAA,GAAG,gCAAiC,GAC/C,GAAI,KAIX,CAED,SAAS,EAAY,CAAE,YAAW,GAAG,EAAsC,CAAE,CAC3E,OACE,EAAA,EAAA,KAAC,QAAA,CACC,YAAU,eACV,UAAWA,EAAAA,GAAG,8BAA+B,GAC7C,GAAI,GAGT,CAED,SAAS,EAAU,CAAE,YAAW,GAAG,EAAsC,CAAE,CACzE,OACE,EAAA,EAAA,KAAC,QAAA,CACC,YAAU,aACV,UAAWA,EAAAA,GAAG,6BAA8B,GAC5C,GAAI,GAGT,CAED,SAAS,EAAY,CAAE,YAAW,GAAG,EAAsC,CAAE,CAC3E,OACE,EAAA,EAAA,KAAC,QAAA,CACC,YAAU,eACV,UAAWA,EAAAA,GACT,0DACA,GAEF,GAAI,GAGT,CAED,SAAS,EAAS,CAAE,YAAW,GAAG,EAAmC,CAAE,CACrE,OACE,EAAA,EAAA,KAAC,KAAA,CACC,YAAU,YACV,UAAWA,EAAAA,GACT,iGACA,GAEF,GAAI,GAGT,CAED,SAAS,EAAU,CAAE,YAAW,GAAG,EAAmC,CAAE,CACtE,OACE,EAAA,EAAA,KAAC,KAAA,CACC,YAAU,aACV,UAAWA,EAAAA,GACT,wBACA,iEACA,gCACA,wCACA,GAEF,GAAI,GAGT,CAED,SAAS,EAAU,CAAE,YAAW,GAAG,EAAmC,CAAE,CACtE,OACE,EAAA,EAAA,KAAC,KAAA,CACC,YAAU,aACV,UAAWA,EAAAA,GACT,yGACA,GAEF,GAAI,GAGT,CAED,SAAS,EAAa,CACpB,YACA,GAAG,EAC6B,CAAE,CAClC,OACE,EAAA,EAAA,KAAC,UAAA,CACC,YAAU,gBACV,UAAWA,EAAAA,GAAG,qCAAsC,GACpD,GAAI,GAGT"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"table-BvA64mE8.js","names":[],"sources":["../packages/components/ui/table.tsx"],"sourcesContent":["\"use client\";\nimport React from \"react\";\n\nimport { cn } from \"@/lib/utils\";\n\nfunction Table({ className, ...props }: React.ComponentProps<\"table\">) {\n return (\n <div\n data-slot=\"table-container\"\n className=\"relative w-full overflow-x-auto\"\n >\n <table\n data-slot=\"table\"\n className={cn(\"w-full caption-bottom text-sm\", className)}\n {...props}\n />\n </div>\n );\n}\n\nfunction TableHeader({ className, ...props }: React.ComponentProps<\"thead\">) {\n return (\n <thead\n data-slot=\"table-header\"\n className={cn(\"bg-muted/50 [&_tr]:border-b\", className)}\n {...props}\n />\n );\n}\n\nfunction TableBody({ className, ...props }: React.ComponentProps<\"tbody\">) {\n return (\n <tbody\n data-slot=\"table-body\"\n className={cn(\"[&_tr:last-child]:border-0\", className)}\n {...props}\n />\n );\n}\n\nfunction TableFooter({ className, ...props }: React.ComponentProps<\"tfoot\">) {\n return (\n <tfoot\n data-slot=\"table-footer\"\n className={cn(\n \"bg-muted/50 border-t font-medium [&>tr]:last:border-b-0\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction TableRow({ className, ...props }: React.ComponentProps<\"tr\">) {\n return (\n <tr\n data-slot=\"table-row\"\n className={cn(\n \"hover:bg-muted/50 active:bg-muted/80 data-[state=selected]:bg-muted border-b transition-colors\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction TableHead({ className, ...props }: React.ComponentProps<\"th\">) {\n return (\n <th\n data-slot=\"table-head\"\n className={cn(\n \"text-muted-foreground\",\n \"h-10 px-2 text-left align-middle font-medium whitespace-nowrap\",\n \"[&:has([role=checkbox])]:pr-0\",\n \"[&>[role=checkbox]]:translate-y-[2px]\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction TableCell({ className, ...props }: React.ComponentProps<\"td\">) {\n return (\n <td\n data-slot=\"table-cell\"\n className={cn(\n \"p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction TableCaption({\n className,\n ...props\n}: React.ComponentProps<\"caption\">) {\n return (\n <caption\n data-slot=\"table-caption\"\n className={cn(\"text-muted-foreground mt-4 text-sm\", className)}\n {...props}\n />\n );\n}\n\nexport {\n Table,\n TableBody,\n TableCaption,\n TableCell,\n TableFooter,\n TableHead,\n TableHeader,\n TableRow,\n};\n"],"mappings":"sGAKA,SAAS,EAAM,CAAE,YAAW,GAAG,EAAsC,CAAE,CACrE,OACE,EAAC,MAAA,CACC,YAAU,kBACV,UAAU,2CAEV,EAAC,QAAA,CACC,YAAU,QACV,UAAW,EAAG,gCAAiC,GAC/C,GAAI,KAIX,CAED,SAAS,EAAY,CAAE,YAAW,GAAG,EAAsC,CAAE,CAC3E,OACE,EAAC,QAAA,CACC,YAAU,eACV,UAAW,EAAG,8BAA+B,GAC7C,GAAI,GAGT,CAED,SAAS,EAAU,CAAE,YAAW,GAAG,EAAsC,CAAE,CACzE,OACE,EAAC,QAAA,CACC,YAAU,aACV,UAAW,EAAG,6BAA8B,GAC5C,GAAI,GAGT,CAED,SAAS,EAAY,CAAE,YAAW,GAAG,EAAsC,CAAE,CAC3E,OACE,EAAC,QAAA,CACC,YAAU,eACV,UAAW,EACT,0DACA,GAEF,GAAI,GAGT,CAED,SAAS,EAAS,CAAE,YAAW,GAAG,EAAmC,CAAE,CACrE,OACE,EAAC,KAAA,CACC,YAAU,YACV,UAAW,EACT,iGACA,GAEF,GAAI,GAGT,CAED,SAAS,EAAU,CAAE,YAAW,GAAG,EAAmC,CAAE,CACtE,OACE,EAAC,KAAA,CACC,YAAU,aACV,UAAW,EACT,wBACA,iEACA,gCACA,wCACA,GAEF,GAAI,GAGT,CAED,SAAS,EAAU,CAAE,YAAW,GAAG,EAAmC,CAAE,CACtE,OACE,EAAC,KAAA,CACC,YAAU,aACV,UAAW,EACT,yGACA,GAEF,GAAI,GAGT,CAED,SAAS,EAAa,CACpB,YACA,GAAG,EAC6B,CAAE,CAClC,OACE,EAAC,UAAA,CACC,YAAU,gBACV,UAAW,EAAG,qCAAsC,GACpD,GAAI,GAGT"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"title-DTkABsIG.js","names":[],"sources":["../packages/components/typography/title.tsx"],"sourcesContent":["import type { JSX } from \"react\";\nimport { cva } from \"class-variance-authority\";\n\nimport { cn } from \"@/lib/utils\";\n\nconst titleVariants = cva(\n \"scroll-m-20 text-secondary-foreground tracking-tight\",\n {\n variants: {\n level: {\n 1: \"text-center text-4xl font-extrabold text-balance\",\n 2: \"border-b pb-2 text-3xl font-semibold first:mt-0\",\n 3: \"text-2xl font-semibold\",\n 4: \"text-xl font-semibold\",\n 5: \"text-lg font-semibold\",\n 6: \"text-base font-semibold\",\n },\n default: {\n level: 1,\n },\n },\n },\n);\n\ntype Props = {\n level?: 1 | 2 | 3 | 4 | 5 | 6;\n className?: string;\n children?: React.ReactNode;\n};\n\nexport const Title = ({ level = 1, className, children }: Props) => {\n const Comp = `h${level}` as keyof JSX.IntrinsicElements;\n return (\n <Comp className={cn(titleVariants({ level }), className)}>{children}</Comp>\n );\n};\n"],"mappings":"gIAKA,MAAM,EAAgB,EACpB,uDACA,CACE,SAAU,CACR,MAAO,CACL,EAAG,mDACH,EAAG,kDACH,EAAG,yBACH,EAAG,wBACH,EAAG,wBACH,EAAG,0BACJ,CACD,QAAS,CACP,MAAO,EACR,CACF,CACF,EASU,GAAS,CAAE,QAAQ,EAAG,YAAW,WAAiB,GAAK,CAClE,IAAM,EAAO,IAAI,IACjB,OACE,EAAC,EAAA,CAAK,UAAW,EAAG,EAAc,CAAE,QAAO,EAAG,GAAa,YAE9D"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"title-xsPZpQpb.cjs","names":["cn"],"sources":["../packages/components/typography/title.tsx"],"sourcesContent":["import type { JSX } from \"react\";\nimport { cva } from \"class-variance-authority\";\n\nimport { cn } from \"@/lib/utils\";\n\nconst titleVariants = cva(\n \"scroll-m-20 text-secondary-foreground tracking-tight\",\n {\n variants: {\n level: {\n 1: \"text-center text-4xl font-extrabold text-balance\",\n 2: \"border-b pb-2 text-3xl font-semibold first:mt-0\",\n 3: \"text-2xl font-semibold\",\n 4: \"text-xl font-semibold\",\n 5: \"text-lg font-semibold\",\n 6: \"text-base font-semibold\",\n },\n default: {\n level: 1,\n },\n },\n },\n);\n\ntype Props = {\n level?: 1 | 2 | 3 | 4 | 5 | 6;\n className?: string;\n children?: React.ReactNode;\n};\n\nexport const Title = ({ level = 1, className, children }: Props) => {\n const Comp = `h${level}` as keyof JSX.IntrinsicElements;\n return (\n <Comp className={cn(titleVariants({ level }), className)}>{children}</Comp>\n );\n};\n"],"mappings":"qKAKM,GAAA,EAAA,EAAA,KACJ,uDACA,CACE,SAAU,CACR,MAAO,CACL,EAAG,mDACH,EAAG,kDACH,EAAG,yBACH,EAAG,wBACH,EAAG,wBACH,EAAG,0BACJ,CACD,QAAS,CACP,MAAO,EACR,CACF,CACF,EASU,GAAS,CAAE,QAAQ,EAAG,YAAW,WAAiB,GAAK,CAClE,IAAM,EAAO,IAAI,IACjB,OACE,EAAA,EAAA,KAAC,EAAA,CAAK,UAAWA,EAAAA,GAAG,EAAc,CAAE,QAAO,EAAG,GAAa,YAE9D"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"toggle-CfL3GVe2.cjs","names":["TogglePrimitive","cn"],"sources":["../packages/components/ui/toggle.tsx"],"sourcesContent":["\"use client\";\nimport React from \"react\";\nimport { Toggle as TogglePrimitive } from \"radix-ui\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\n\nimport { cn } from \"@/lib/utils\";\n\nconst toggleVariants = cva(\n \"inline-flex items-center justify-center gap-2 rounded-md text-sm font-medium hover:bg-muted hover:text-muted-foreground disabled:pointer-events-none disabled:opacity-50 data-[state=on]:bg-accent data-[state=on]:text-accent-foreground [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 [&_svg]:shrink-0 focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] outline-none transition-[color,box-shadow] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive whitespace-nowrap\",\n {\n variants: {\n variant: {\n default: \"bg-transparent\",\n outline:\n \"border border-input bg-transparent shadow-xs hover:bg-accent hover:text-accent-foreground\",\n },\n size: {\n default: \"h-9 px-2 min-w-9\",\n sm: \"h-8 px-1.5 min-w-8\",\n lg: \"h-10 px-2.5 min-w-10\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n },\n);\n\nfunction Toggle({\n className,\n variant,\n size,\n ...props\n}: React.ComponentProps<typeof TogglePrimitive.Root> &\n VariantProps<typeof toggleVariants>) {\n return (\n <TogglePrimitive.Root\n data-slot=\"toggle\"\n className={cn(toggleVariants({ variant, size, className }))}\n {...props}\n />\n );\n}\n\n// eslint-disable-next-line react-refresh/only-export-components\nexport { Toggle, toggleVariants };\n"],"mappings":"oOAOM,GAAA,EAAA,EAAA,KACJ,gjBACA,CACE,SAAU,CACR,QAAS,CACP,QAAS,iBACT,QACE,4FACH,CACD,KAAM,CACJ,QAAS,mBACT,GAAI,qBACJ,GAAI,uBACL,CACF,CACD,gBAAiB,CACf,QAAS,UACT,KAAM,UACP,CACF,EAGH,SAAS,EAAO,CACd,YACA,UACA,OACA,GAAG,EAEgC,CAAE,CACrC,OACE,EAAA,EAAA,KAACA,EAAAA,OAAgB,KAAA,CACf,YAAU,SACV,UAAWC,EAAAA,GAAG,EAAe,CAAE,UAAS,OAAM,YAAW,GACzD,GAAI,GAGT"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"toggle-D_MDMruK.js","names":["Toggle","TogglePrimitive"],"sources":["../packages/components/ui/toggle.tsx"],"sourcesContent":["\"use client\";\nimport React from \"react\";\nimport { Toggle as TogglePrimitive } from \"radix-ui\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\n\nimport { cn } from \"@/lib/utils\";\n\nconst toggleVariants = cva(\n \"inline-flex items-center justify-center gap-2 rounded-md text-sm font-medium hover:bg-muted hover:text-muted-foreground disabled:pointer-events-none disabled:opacity-50 data-[state=on]:bg-accent data-[state=on]:text-accent-foreground [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 [&_svg]:shrink-0 focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] outline-none transition-[color,box-shadow] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive whitespace-nowrap\",\n {\n variants: {\n variant: {\n default: \"bg-transparent\",\n outline:\n \"border border-input bg-transparent shadow-xs hover:bg-accent hover:text-accent-foreground\",\n },\n size: {\n default: \"h-9 px-2 min-w-9\",\n sm: \"h-8 px-1.5 min-w-8\",\n lg: \"h-10 px-2.5 min-w-10\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n },\n);\n\nfunction Toggle({\n className,\n variant,\n size,\n ...props\n}: React.ComponentProps<typeof TogglePrimitive.Root> &\n VariantProps<typeof toggleVariants>) {\n return (\n <TogglePrimitive.Root\n data-slot=\"toggle\"\n className={cn(toggleVariants({ variant, size, className }))}\n {...props}\n />\n );\n}\n\n// eslint-disable-next-line react-refresh/only-export-components\nexport { Toggle, toggleVariants };\n"],"mappings":"uLAOA,MAAM,EAAiB,EACrB,gjBACA,CACE,SAAU,CACR,QAAS,CACP,QAAS,iBACT,QACE,4FACH,CACD,KAAM,CACJ,QAAS,mBACT,GAAI,qBACJ,GAAI,uBACL,CACF,CACD,gBAAiB,CACf,QAAS,UACT,KAAM,UACP,CACF,EAGH,SAASA,EAAO,CACd,YACA,UACA,OACA,GAAG,EAEgC,CAAE,CACrC,OACE,EAACC,EAAgB,KAAA,CACf,YAAU,SACV,UAAW,EAAG,EAAe,CAAE,UAAS,OAAM,YAAW,GACzD,GAAI,GAGT"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"tooltip-Beb-_EPp.cjs","names":["TooltipPrimitive","cn"],"sources":["../packages/components/ui/tooltip.tsx"],"sourcesContent":["\"use client\";\nimport React from \"react\";\nimport { Tooltip as TooltipPrimitive } from \"radix-ui\";\n\nimport { cn } from \"@/lib/utils\";\n\nfunction TooltipProvider({\n delayDuration = 0,\n ...props\n}: React.ComponentProps<typeof TooltipPrimitive.Provider>) {\n return (\n <TooltipPrimitive.Provider\n data-slot=\"tooltip-provider\"\n delayDuration={delayDuration}\n {...props}\n />\n );\n}\n\nfunction Tooltip({\n ...props\n}: React.ComponentProps<typeof TooltipPrimitive.Root>) {\n return (\n <TooltipProvider>\n <TooltipPrimitive.Root data-slot=\"tooltip\" {...props} />\n </TooltipProvider>\n );\n}\n\nfunction TooltipTrigger({\n ...props\n}: React.ComponentProps<typeof TooltipPrimitive.Trigger>) {\n return <TooltipPrimitive.Trigger data-slot=\"tooltip-trigger\" {...props} />;\n}\n\nfunction TooltipContent({\n className,\n sideOffset = 0,\n children,\n ...props\n}: React.ComponentProps<typeof TooltipPrimitive.Content>) {\n return (\n <TooltipPrimitive.Portal>\n <TooltipPrimitive.Content\n data-slot=\"tooltip-content\"\n sideOffset={sideOffset}\n className={cn(\n \"bg-secondary-foreground text-secondary\",\n \"animate-in fade-in-0 zoom-in-95\",\n \"data-[state=closed]:animate-out\",\n \"data-[state=closed]:fade-out-0\",\n \"data-[state=closed]:zoom-out-95\",\n \"data-[side=bottom]:slide-in-from-top-2\",\n \"data-[side=left]:slide-in-from-right-2\",\n \"data-[side=right]:slide-in-from-left-2\",\n \"data-[side=top]:slide-in-from-bottom-2\",\n \"z-50 w-fit\",\n \"origin-(--radix-tooltip-content-transform-origin)\",\n \"rounded-md px-3 py-1.5 text-xs text-balance\",\n className,\n )}\n {...props}\n >\n {children}\n <TooltipPrimitive.Arrow className=\"bg-secondary-foreground fill-secondary-foreground text-secondary z-50 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px]\" />\n </TooltipPrimitive.Content>\n </TooltipPrimitive.Portal>\n );\n}\n\nexport { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger };\n"],"mappings":"mLAMA,SAAS,EAAgB,CACvB,gBAAgB,EAChB,GAAG,EACoD,CAAE,CACzD,OACE,EAAA,EAAA,KAACA,EAAAA,QAAiB,SAAA,CAChB,YAAU,mBACK,gBACf,GAAI,GAGT,CAED,SAAS,EAAQ,CACf,GAAG,EACgD,CAAE,CACrD,OACE,EAAA,EAAA,KAAC,EAAA,CAAA,UACC,EAAA,EAAA,KAACA,EAAAA,QAAiB,KAAA,CAAK,YAAU,UAAU,GAAI,KAGpD,CAED,SAAS,EAAe,CACtB,GAAG,EACmD,CAAE,CACxD,OAAO,EAAA,EAAA,KAACA,EAAAA,QAAiB,QAAA,CAAQ,YAAU,kBAAkB,GAAI,GAClE,CAED,SAAS,EAAe,CACtB,YACA,aAAa,EACb,WACA,GAAG,EACmD,CAAE,CACxD,OACE,EAAA,EAAA,KAACA,EAAAA,QAAiB,OAAA,CAAA,UAChB,EAAA,EAAA,MAACA,EAAAA,QAAiB,QAAA,CAChB,YAAU,kBACE,aACZ,UAAWC,EAAAA,GACT,yCACA,kCACA,kCACA,iCACA,kCACA,yCACA,yCACA,yCACA,yCACA,aACA,oDACA,8CACA,GAEF,GAAI,YAEH,GACD,EAAA,EAAA,KAACD,EAAAA,QAAiB,MAAA,CAAM,UAAU,wIAAA,EAAA,IAIzC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"tooltip-Dzyf5smh.js","names":["TooltipPrimitive","Tooltip"],"sources":["../packages/components/ui/tooltip.tsx"],"sourcesContent":["\"use client\";\nimport React from \"react\";\nimport { Tooltip as TooltipPrimitive } from \"radix-ui\";\n\nimport { cn } from \"@/lib/utils\";\n\nfunction TooltipProvider({\n delayDuration = 0,\n ...props\n}: React.ComponentProps<typeof TooltipPrimitive.Provider>) {\n return (\n <TooltipPrimitive.Provider\n data-slot=\"tooltip-provider\"\n delayDuration={delayDuration}\n {...props}\n />\n );\n}\n\nfunction Tooltip({\n ...props\n}: React.ComponentProps<typeof TooltipPrimitive.Root>) {\n return (\n <TooltipProvider>\n <TooltipPrimitive.Root data-slot=\"tooltip\" {...props} />\n </TooltipProvider>\n );\n}\n\nfunction TooltipTrigger({\n ...props\n}: React.ComponentProps<typeof TooltipPrimitive.Trigger>) {\n return <TooltipPrimitive.Trigger data-slot=\"tooltip-trigger\" {...props} />;\n}\n\nfunction TooltipContent({\n className,\n sideOffset = 0,\n children,\n ...props\n}: React.ComponentProps<typeof TooltipPrimitive.Content>) {\n return (\n <TooltipPrimitive.Portal>\n <TooltipPrimitive.Content\n data-slot=\"tooltip-content\"\n sideOffset={sideOffset}\n className={cn(\n \"bg-secondary-foreground text-secondary\",\n \"animate-in fade-in-0 zoom-in-95\",\n \"data-[state=closed]:animate-out\",\n \"data-[state=closed]:fade-out-0\",\n \"data-[state=closed]:zoom-out-95\",\n \"data-[side=bottom]:slide-in-from-top-2\",\n \"data-[side=left]:slide-in-from-right-2\",\n \"data-[side=right]:slide-in-from-left-2\",\n \"data-[side=top]:slide-in-from-bottom-2\",\n \"z-50 w-fit\",\n \"origin-(--radix-tooltip-content-transform-origin)\",\n \"rounded-md px-3 py-1.5 text-xs text-balance\",\n className,\n )}\n {...props}\n >\n {children}\n <TooltipPrimitive.Arrow className=\"bg-secondary-foreground fill-secondary-foreground text-secondary z-50 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px]\" />\n </TooltipPrimitive.Content>\n </TooltipPrimitive.Portal>\n );\n}\n\nexport { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger };\n"],"mappings":"mJAMA,SAAS,EAAgB,CACvB,gBAAgB,EAChB,GAAG,EACoD,CAAE,CACzD,OACE,EAACA,EAAiB,SAAA,CAChB,YAAU,mBACK,gBACf,GAAI,GAGT,CAED,SAASC,EAAQ,CACf,GAAG,EACgD,CAAE,CACrD,OACE,EAAC,EAAA,CAAA,SACC,EAACD,EAAiB,KAAA,CAAK,YAAU,UAAU,GAAI,KAGpD,CAED,SAAS,EAAe,CACtB,GAAG,EACmD,CAAE,CACxD,OAAO,EAACA,EAAiB,QAAA,CAAQ,YAAU,kBAAkB,GAAI,GAClE,CAED,SAAS,EAAe,CACtB,YACA,aAAa,EACb,WACA,GAAG,EACmD,CAAE,CACxD,OACE,EAACA,EAAiB,OAAA,CAAA,SAChB,EAACA,EAAiB,QAAA,CAChB,YAAU,kBACE,aACZ,UAAW,EACT,yCACA,kCACA,kCACA,iCACA,kCACA,yCACA,yCACA,yCACA,yCACA,aACA,oDACA,8CACA,GAEF,GAAI,YAEH,EACD,EAACA,EAAiB,MAAA,CAAM,UAAU,wIAAA,EAAA,IAIzC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"types-CrbWxjnp.cjs","names":[],"sources":["../packages/types.ts"],"sourcesContent":["export enum ERole {\n SUPER_ADMIN = \"SUPER_ADMIN\",\n ADMIN = \"ADMIN\",\n MODERATOR = \"MODERATOR\",\n STAFF = \"STAFF\",\n USER = \"USER\",\n}\n\nexport enum ECountry {\n VIETNAM = \"Vietnam\",\n USA = \"USA\",\n JAPAN = \"Japan\",\n KOREA = \"Korea\",\n CHINA = \"China\",\n TAIWAN = \"Taiwan\",\n THAILAND = \"Thailand\",\n MALAYSIA = \"Malaysia\",\n SINGAPORE = \"Singapore\",\n INDONESIA = \"Indonesia\",\n}\n\nexport enum EWeightUnit {\n KG = \"kg\",\n G = \"g\",\n LB = \"lb\",\n OZ = \"oz\",\n}\n\nexport enum EDimensionUnit {\n CM = \"cm\",\n M = \"m\",\n INCH = \"inch\",\n FT = \"ft\",\n}\n\nexport enum EProductStatus {\n DRAFT = \"draft\",\n REVIEW = \"review\",\n ACTIVE = \"active\",\n INACTIVE = \"inactive\",\n CANCELLED = \"cancelled\",\n}\n\nexport enum EProductInventoryStatus {\n IN_STOCK = \"in_stock\",\n OUT_OF_STOCK = \"out_of_stock\",\n PREORDER = \"preorder\",\n}\n\nexport type AnyEntity = any;\n"],"mappings":"AAAA,IAAY,EAAA,SAAA,EAAL,OACL,GAAA,YAAA,cACA,EAAA,MAAA,QACA,EAAA,UAAA,YACA,EAAA,MAAA,QACA,EAAA,KAAA,QACD,EAAA,EAAA,EAEW,EAAA,SAAA,EAAL,OACL,GAAA,QAAA,UACA,EAAA,IAAA,MACA,EAAA,MAAA,QACA,EAAA,MAAA,QACA,EAAA,MAAA,QACA,EAAA,OAAA,SACA,EAAA,SAAA,WACA,EAAA,SAAA,WACA,EAAA,UAAA,YACA,EAAA,UAAA,aACD,EAAA,EAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"types-DaIHddx7.js","names":[],"sources":["../packages/types.ts"],"sourcesContent":["export enum ERole {\n SUPER_ADMIN = \"SUPER_ADMIN\",\n ADMIN = \"ADMIN\",\n MODERATOR = \"MODERATOR\",\n STAFF = \"STAFF\",\n USER = \"USER\",\n}\n\nexport enum ECountry {\n VIETNAM = \"Vietnam\",\n USA = \"USA\",\n JAPAN = \"Japan\",\n KOREA = \"Korea\",\n CHINA = \"China\",\n TAIWAN = \"Taiwan\",\n THAILAND = \"Thailand\",\n MALAYSIA = \"Malaysia\",\n SINGAPORE = \"Singapore\",\n INDONESIA = \"Indonesia\",\n}\n\nexport enum EWeightUnit {\n KG = \"kg\",\n G = \"g\",\n LB = \"lb\",\n OZ = \"oz\",\n}\n\nexport enum EDimensionUnit {\n CM = \"cm\",\n M = \"m\",\n INCH = \"inch\",\n FT = \"ft\",\n}\n\nexport enum EProductStatus {\n DRAFT = \"draft\",\n REVIEW = \"review\",\n ACTIVE = \"active\",\n INACTIVE = \"inactive\",\n CANCELLED = \"cancelled\",\n}\n\nexport enum EProductInventoryStatus {\n IN_STOCK = \"in_stock\",\n OUT_OF_STOCK = \"out_of_stock\",\n PREORDER = \"preorder\",\n}\n\nexport type AnyEntity = any;\n"],"mappings":"AAAA,IAAY,EAAA,SAAA,EAAL,OACL,GAAA,YAAA,cACA,EAAA,MAAA,QACA,EAAA,UAAA,YACA,EAAA,MAAA,QACA,EAAA,KAAA,QACD,EAAA,EAAA,EAEW,EAAA,SAAA,EAAL,OACL,GAAA,QAAA,UACA,EAAA,IAAA,MACA,EAAA,MAAA,QACA,EAAA,MAAA,QACA,EAAA,MAAA,QACA,EAAA,OAAA,SACA,EAAA,SAAA,WACA,EAAA,SAAA,WACA,EAAA,UAAA,YACA,EAAA,UAAA,aACD,EAAA,EAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"alert.cjs","names":["cn"],"sources":["../../packages/components/ui/alert.tsx"],"sourcesContent":["\"use client\";\nimport React from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\n\nimport { cn } from \"@/lib/utils\";\n\nconst alertVariants = cva(\n [\n \"relative grid w-full grid-cols-[0_1fr] items-start gap-y-0.5 rounded-lg border px-4 py-3 text-sm\",\n \"has-[>svg]:grid-cols-[calc(var(--spacing)*4)_1fr] has-[>svg]:gap-x-3 [&>svg]:size-4\",\n \"[&>svg]:translate-y-0.5 [&>svg]:text-current\",\n ],\n {\n variants: {\n variant: {\n default: \"bg-card text-card-foreground\",\n destructive:\n \"text-destructive bg-card [&>svg]:text-current *:data-[slot=alert-description]:text-destructive/90\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n },\n);\n\nfunction Alert({\n className,\n variant,\n ...props\n}: React.ComponentProps<\"div\"> & VariantProps<typeof alertVariants>) {\n return (\n <div\n data-slot=\"alert\"\n role=\"alert\"\n className={cn(alertVariants({ variant }), className)}\n {...props}\n />\n );\n}\n\nfunction AlertTitle({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"alert-title\"\n className={cn(\n \"col-start-2 line-clamp-1 min-h-4 font-medium tracking-tight\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction AlertDescription({\n className,\n ...props\n}: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"alert-description\"\n className={cn(\n \"text-muted-foreground col-start-2 grid justify-items-start gap-1 text-sm [&_p]:leading-relaxed\",\n className,\n )}\n {...props}\n />\n );\n}\n\nexport { Alert, AlertDescription, AlertTitle };\n"],"mappings":"kNAMM,GAAA,EAAA,EAAA,KACJ,CACE,mGACA,sFACA,+CACD,CACD,CACE,SAAU,CACR,QAAS,CACP,QAAS,+BACT,YACE,oGACH,CACF,CACD,gBAAiB,CACf,QAAS,UACV,CACF,EAGH,SAAS,EAAM,CACb,YACA,UACA,GAAG,EAC8D,CAAE,CACnE,OACE,EAAA,EAAA,KAAC,MAAA,CACC,YAAU,QACV,KAAK,QACL,UAAWA,EAAAA,GAAG,EAAc,CAAE,UAAS,EAAG,GAC1C,GAAI,GAGT,CAED,SAAS,EAAW,CAAE,YAAW,GAAG,EAAoC,CAAE,CACxE,OACE,EAAA,EAAA,KAAC,MAAA,CACC,YAAU,cACV,UAAWA,EAAAA,GACT,8DACA,GAEF,GAAI,GAGT,CAED,SAAS,EAAiB,CACxB,YACA,GAAG,EACyB,CAAE,CAC9B,OACE,EAAA,EAAA,KAAC,MAAA,CACC,YAAU,oBACV,UAAWA,EAAAA,GACT,iGACA,GAEF,GAAI,GAGT"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"alert.js","names":[],"sources":["../../packages/components/ui/alert.tsx"],"sourcesContent":["\"use client\";\nimport React from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\n\nimport { cn } from \"@/lib/utils\";\n\nconst alertVariants = cva(\n [\n \"relative grid w-full grid-cols-[0_1fr] items-start gap-y-0.5 rounded-lg border px-4 py-3 text-sm\",\n \"has-[>svg]:grid-cols-[calc(var(--spacing)*4)_1fr] has-[>svg]:gap-x-3 [&>svg]:size-4\",\n \"[&>svg]:translate-y-0.5 [&>svg]:text-current\",\n ],\n {\n variants: {\n variant: {\n default: \"bg-card text-card-foreground\",\n destructive:\n \"text-destructive bg-card [&>svg]:text-current *:data-[slot=alert-description]:text-destructive/90\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n },\n);\n\nfunction Alert({\n className,\n variant,\n ...props\n}: React.ComponentProps<\"div\"> & VariantProps<typeof alertVariants>) {\n return (\n <div\n data-slot=\"alert\"\n role=\"alert\"\n className={cn(alertVariants({ variant }), className)}\n {...props}\n />\n );\n}\n\nfunction AlertTitle({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"alert-title\"\n className={cn(\n \"col-start-2 line-clamp-1 min-h-4 font-medium tracking-tight\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction AlertDescription({\n className,\n ...props\n}: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"alert-description\"\n className={cn(\n \"text-muted-foreground col-start-2 grid justify-items-start gap-1 text-sm [&_p]:leading-relaxed\",\n className,\n )}\n {...props}\n />\n );\n}\n\nexport { Alert, AlertDescription, AlertTitle };\n"],"mappings":"mKAMA,MAAM,EAAgB,EACpB,CACE,mGACA,sFACA,+CACD,CACD,CACE,SAAU,CACR,QAAS,CACP,QAAS,+BACT,YACE,oGACH,CACF,CACD,gBAAiB,CACf,QAAS,UACV,CACF,EAGH,SAAS,EAAM,CACb,YACA,UACA,GAAG,EAC8D,CAAE,CACnE,OACE,EAAC,MAAA,CACC,YAAU,QACV,KAAK,QACL,UAAW,EAAG,EAAc,CAAE,UAAS,EAAG,GAC1C,GAAI,GAGT,CAED,SAAS,EAAW,CAAE,YAAW,GAAG,EAAoC,CAAE,CACxE,OACE,EAAC,MAAA,CACC,YAAU,cACV,UAAW,EACT,8DACA,GAEF,GAAI,GAGT,CAED,SAAS,EAAiB,CACxB,YACA,GAAG,EACyB,CAAE,CAC9B,OACE,EAAC,MAAA,CACC,YAAU,oBACV,UAAW,EACT,iGACA,GAEF,GAAI,GAGT"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"aspect-ratio.cjs","names":["AspectRatioPrimitive","cn"],"sources":["../../packages/components/ui/aspect-ratio.tsx"],"sourcesContent":["\"use client\";\nimport React from \"react\";\nimport { AspectRatio as AspectRatioPrimitive } from \"radix-ui\";\n\nimport { cn } from \"@/lib/utils\";\n\nfunction AspectRatio({\n className,\n ...props\n}: React.ComponentProps<typeof AspectRatioPrimitive.Root>) {\n return (\n <AspectRatioPrimitive.Root\n data-slot=\"aspect-ratio\"\n className={cn(\"bg-accent rounded-md\", className)}\n {...props}\n />\n );\n}\n\nexport { AspectRatio };\n"],"mappings":"kMAMA,SAAS,EAAY,CACnB,YACA,GAAG,EACoD,CAAE,CACzD,OACE,EAAA,EAAA,KAACA,EAAAA,YAAqB,KAAA,CACpB,YAAU,eACV,UAAWC,EAAAA,GAAG,uBAAwB,GACtC,GAAI,GAGT"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"aspect-ratio.js","names":["AspectRatioPrimitive"],"sources":["../../packages/components/ui/aspect-ratio.tsx"],"sourcesContent":["\"use client\";\nimport React from \"react\";\nimport { AspectRatio as AspectRatioPrimitive } from \"radix-ui\";\n\nimport { cn } from \"@/lib/utils\";\n\nfunction AspectRatio({\n className,\n ...props\n}: React.ComponentProps<typeof AspectRatioPrimitive.Root>) {\n return (\n <AspectRatioPrimitive.Root\n data-slot=\"aspect-ratio\"\n className={cn(\"bg-accent rounded-md\", className)}\n {...props}\n />\n );\n}\n\nexport { AspectRatio };\n"],"mappings":"2JAMA,SAAS,EAAY,CACnB,YACA,GAAG,EACoD,CAAE,CACzD,OACE,EAACA,EAAqB,KAAA,CACpB,YAAU,eACV,UAAW,EAAG,uBAAwB,GACtC,GAAI,GAGT"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"avatar.cjs","names":["AvatarPrimitive","cn"],"sources":["../../packages/components/ui/avatar.tsx"],"sourcesContent":["\"use client\";\nimport React from \"react\";\nimport { Avatar as AvatarPrimitive } from \"radix-ui\";\n\nimport { cn } from \"@/lib/utils\";\n\nfunction Avatar({\n className,\n ...props\n}: React.ComponentProps<typeof AvatarPrimitive.Root>) {\n return (\n <AvatarPrimitive.Root\n data-slot=\"avatar\"\n className={cn(\n \"relative flex size-8 shrink-0 overflow-hidden rounded-full\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction AvatarImage({\n className,\n ...props\n}: React.ComponentProps<typeof AvatarPrimitive.Image>) {\n return (\n <AvatarPrimitive.Image\n data-slot=\"avatar-image\"\n className={cn(\"aspect-square size-full\", className)}\n {...props}\n />\n );\n}\n\nfunction AvatarFallback({\n className,\n ...props\n}: React.ComponentProps<typeof AvatarPrimitive.Fallback>) {\n return (\n <AvatarPrimitive.Fallback\n data-slot=\"avatar-fallback\"\n className={cn(\n \"bg-muted flex size-full items-center justify-center rounded-full\",\n className,\n )}\n {...props}\n />\n );\n}\n\nexport { Avatar, AvatarFallback, AvatarImage };\n"],"mappings":"kMAMA,SAAS,EAAO,CACd,YACA,GAAG,EAC+C,CAAE,CACpD,OACE,EAAA,EAAA,KAACA,EAAAA,OAAgB,KAAA,CACf,YAAU,SACV,UAAWC,EAAAA,GACT,6DACA,GAEF,GAAI,GAGT,CAED,SAAS,EAAY,CACnB,YACA,GAAG,EACgD,CAAE,CACrD,OACE,EAAA,EAAA,KAACD,EAAAA,OAAgB,MAAA,CACf,YAAU,eACV,UAAWC,EAAAA,GAAG,0BAA2B,GACzC,GAAI,GAGT,CAED,SAAS,EAAe,CACtB,YACA,GAAG,EACmD,CAAE,CACxD,OACE,EAAA,EAAA,KAACD,EAAAA,OAAgB,SAAA,CACf,YAAU,kBACV,UAAWC,EAAAA,GACT,mEACA,GAEF,GAAI,GAGT"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"avatar.js","names":["AvatarPrimitive"],"sources":["../../packages/components/ui/avatar.tsx"],"sourcesContent":["\"use client\";\nimport React from \"react\";\nimport { Avatar as AvatarPrimitive } from \"radix-ui\";\n\nimport { cn } from \"@/lib/utils\";\n\nfunction Avatar({\n className,\n ...props\n}: React.ComponentProps<typeof AvatarPrimitive.Root>) {\n return (\n <AvatarPrimitive.Root\n data-slot=\"avatar\"\n className={cn(\n \"relative flex size-8 shrink-0 overflow-hidden rounded-full\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction AvatarImage({\n className,\n ...props\n}: React.ComponentProps<typeof AvatarPrimitive.Image>) {\n return (\n <AvatarPrimitive.Image\n data-slot=\"avatar-image\"\n className={cn(\"aspect-square size-full\", className)}\n {...props}\n />\n );\n}\n\nfunction AvatarFallback({\n className,\n ...props\n}: React.ComponentProps<typeof AvatarPrimitive.Fallback>) {\n return (\n <AvatarPrimitive.Fallback\n data-slot=\"avatar-fallback\"\n className={cn(\n \"bg-muted flex size-full items-center justify-center rounded-full\",\n className,\n )}\n {...props}\n />\n );\n}\n\nexport { Avatar, AvatarFallback, AvatarImage };\n"],"mappings":"sJAMA,SAAS,EAAO,CACd,YACA,GAAG,EAC+C,CAAE,CACpD,OACE,EAACA,EAAgB,KAAA,CACf,YAAU,SACV,UAAW,EACT,6DACA,GAEF,GAAI,GAGT,CAED,SAAS,EAAY,CACnB,YACA,GAAG,EACgD,CAAE,CACrD,OACE,EAACA,EAAgB,MAAA,CACf,YAAU,eACV,UAAW,EAAG,0BAA2B,GACzC,GAAI,GAGT,CAED,SAAS,EAAe,CACtB,YACA,GAAG,EACmD,CAAE,CACxD,OACE,EAACA,EAAgB,SAAA,CACf,YAAU,kBACV,UAAW,EACT,mEACA,GAEF,GAAI,GAGT"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"breadcrumb.cjs","names":["cn","SlotPrimitive","ChevronRight","MoreHorizontalIcon"],"sources":["../../packages/components/ui/breadcrumb.tsx"],"sourcesContent":["\"use client\";\nimport React from \"react\";\nimport { Slot as SlotPrimitive } from \"radix-ui\";\nimport { ChevronRight, MoreHorizontalIcon } from \"lucide-react\";\n\nimport { cn } from \"@/lib/utils\";\n\nfunction Breadcrumb({ ...props }: React.ComponentProps<\"nav\">) {\n return <nav aria-label=\"breadcrumb\" data-slot=\"breadcrumb\" {...props} />;\n}\n\nfunction BreadcrumbList({ className, ...props }: React.ComponentProps<\"ol\">) {\n return (\n <ol\n data-slot=\"breadcrumb-list\"\n className={cn(\n \"text-muted-foreground flex flex-wrap items-center gap-1.5 text-sm break-words sm:gap-2.5\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction BreadcrumbItem({ className, ...props }: React.ComponentProps<\"li\">) {\n return (\n <li\n data-slot=\"breadcrumb-item\"\n className={cn(\"inline-flex items-center gap-1.5\", className)}\n {...props}\n />\n );\n}\n\nfunction BreadcrumbLink({\n asChild,\n className,\n ...props\n}: React.ComponentProps<\"a\"> & {\n asChild?: boolean;\n}) {\n const Comp = asChild ? SlotPrimitive.Slot : \"a\";\n\n return (\n <Comp\n data-slot=\"breadcrumb-link\"\n className={cn(\"hover:text-foreground transition-colors\", className)}\n {...props}\n />\n );\n}\n\nfunction BreadcrumbPage({ className, ...props }: React.ComponentProps<\"span\">) {\n return (\n <span\n data-slot=\"breadcrumb-page\"\n role=\"link\"\n aria-disabled=\"true\"\n aria-current=\"page\"\n className={cn(\"text-foreground font-normal\", className)}\n {...props}\n />\n );\n}\n\nfunction BreadcrumbSeparator({\n children,\n className,\n ...props\n}: React.ComponentProps<\"li\">) {\n return (\n <li\n data-slot=\"breadcrumb-separator\"\n role=\"presentation\"\n aria-hidden=\"true\"\n className={cn(\"[&>svg]:size-3.5\", className)}\n {...props}\n >\n {children ?? <ChevronRight />}\n </li>\n );\n}\n\nfunction BreadcrumbEllipsis({\n className,\n ...props\n}: React.ComponentProps<\"span\">) {\n return (\n <span\n data-slot=\"breadcrumb-ellipsis\"\n role=\"presentation\"\n aria-hidden=\"true\"\n className={cn(\"flex size-9 items-center justify-center\", className)}\n {...props}\n >\n <MoreHorizontalIcon size={16} />\n <span className=\"sr-only\">More</span>\n </span>\n );\n}\n\nexport {\n Breadcrumb,\n BreadcrumbEllipsis,\n BreadcrumbItem,\n BreadcrumbLink,\n BreadcrumbList,\n BreadcrumbPage,\n BreadcrumbSeparator,\n};\n"],"mappings":"uOAOA,SAAS,EAAW,CAAE,GAAG,EAAoC,CAAE,CAC7D,OAAO,EAAA,EAAA,KAAC,MAAA,CAAI,aAAW,aAAa,YAAU,aAAa,GAAI,GAChE,CAED,SAAS,EAAe,CAAE,YAAW,GAAG,EAAmC,CAAE,CAC3E,OACE,EAAA,EAAA,KAAC,KAAA,CACC,YAAU,kBACV,UAAWA,EAAAA,GACT,2FACA,GAEF,GAAI,GAGT,CAED,SAAS,EAAe,CAAE,YAAW,GAAG,EAAmC,CAAE,CAC3E,OACE,EAAA,EAAA,KAAC,KAAA,CACC,YAAU,kBACV,UAAWA,EAAAA,GAAG,mCAAoC,GAClD,GAAI,GAGT,CAED,SAAS,EAAe,CACtB,UACA,YACA,GAAG,EAGJ,CAAE,CACD,IAAM,EAAO,EAAUC,EAAAA,KAAc,KAAO,IAE5C,OACE,EAAA,EAAA,KAAC,EAAA,CACC,YAAU,kBACV,UAAWD,EAAAA,GAAG,0CAA2C,GACzD,GAAI,GAGT,CAED,SAAS,EAAe,CAAE,YAAW,GAAG,EAAqC,CAAE,CAC7E,OACE,EAAA,EAAA,KAAC,OAAA,CACC,YAAU,kBACV,KAAK,OACL,gBAAc,OACd,eAAa,OACb,UAAWA,EAAAA,GAAG,8BAA+B,GAC7C,GAAI,GAGT,CAED,SAAS,EAAoB,CAC3B,WACA,YACA,GAAG,EACwB,CAAE,CAC7B,OACE,EAAA,EAAA,KAAC,KAAA,CACC,YAAU,uBACV,KAAK,eACL,cAAY,OACZ,UAAWA,EAAAA,GAAG,mBAAoB,GAClC,GAAI,WAEH,IAAY,EAAA,EAAA,KAACE,EAAAA,aAAAA,EAAAA,GAGnB,CAED,SAAS,EAAmB,CAC1B,YACA,GAAG,EAC0B,CAAE,CAC/B,OACE,EAAA,EAAA,MAAC,OAAA,CACC,YAAU,sBACV,KAAK,eACL,cAAY,OACZ,UAAWF,EAAAA,GAAG,0CAA2C,GACzD,GAAI,aAEJ,EAAA,EAAA,KAACG,EAAAA,mBAAAA,CAAmB,KAAM,GAAA,GAC1B,EAAA,EAAA,KAAC,OAAA,CAAK,UAAU,mBAAU,WAG/B"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"breadcrumb.js","names":["SlotPrimitive"],"sources":["../../packages/components/ui/breadcrumb.tsx"],"sourcesContent":["\"use client\";\nimport React from \"react\";\nimport { Slot as SlotPrimitive } from \"radix-ui\";\nimport { ChevronRight, MoreHorizontalIcon } from \"lucide-react\";\n\nimport { cn } from \"@/lib/utils\";\n\nfunction Breadcrumb({ ...props }: React.ComponentProps<\"nav\">) {\n return <nav aria-label=\"breadcrumb\" data-slot=\"breadcrumb\" {...props} />;\n}\n\nfunction BreadcrumbList({ className, ...props }: React.ComponentProps<\"ol\">) {\n return (\n <ol\n data-slot=\"breadcrumb-list\"\n className={cn(\n \"text-muted-foreground flex flex-wrap items-center gap-1.5 text-sm break-words sm:gap-2.5\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction BreadcrumbItem({ className, ...props }: React.ComponentProps<\"li\">) {\n return (\n <li\n data-slot=\"breadcrumb-item\"\n className={cn(\"inline-flex items-center gap-1.5\", className)}\n {...props}\n />\n );\n}\n\nfunction BreadcrumbLink({\n asChild,\n className,\n ...props\n}: React.ComponentProps<\"a\"> & {\n asChild?: boolean;\n}) {\n const Comp = asChild ? SlotPrimitive.Slot : \"a\";\n\n return (\n <Comp\n data-slot=\"breadcrumb-link\"\n className={cn(\"hover:text-foreground transition-colors\", className)}\n {...props}\n />\n );\n}\n\nfunction BreadcrumbPage({ className, ...props }: React.ComponentProps<\"span\">) {\n return (\n <span\n data-slot=\"breadcrumb-page\"\n role=\"link\"\n aria-disabled=\"true\"\n aria-current=\"page\"\n className={cn(\"text-foreground font-normal\", className)}\n {...props}\n />\n );\n}\n\nfunction BreadcrumbSeparator({\n children,\n className,\n ...props\n}: React.ComponentProps<\"li\">) {\n return (\n <li\n data-slot=\"breadcrumb-separator\"\n role=\"presentation\"\n aria-hidden=\"true\"\n className={cn(\"[&>svg]:size-3.5\", className)}\n {...props}\n >\n {children ?? <ChevronRight />}\n </li>\n );\n}\n\nfunction BreadcrumbEllipsis({\n className,\n ...props\n}: React.ComponentProps<\"span\">) {\n return (\n <span\n data-slot=\"breadcrumb-ellipsis\"\n role=\"presentation\"\n aria-hidden=\"true\"\n className={cn(\"flex size-9 items-center justify-center\", className)}\n {...props}\n >\n <MoreHorizontalIcon size={16} />\n <span className=\"sr-only\">More</span>\n </span>\n );\n}\n\nexport {\n Breadcrumb,\n BreadcrumbEllipsis,\n BreadcrumbItem,\n BreadcrumbLink,\n BreadcrumbList,\n BreadcrumbPage,\n BreadcrumbSeparator,\n};\n"],"mappings":"kOAOA,SAAS,EAAW,CAAE,GAAG,EAAoC,CAAE,CAC7D,OAAO,EAAC,MAAA,CAAI,aAAW,aAAa,YAAU,aAAa,GAAI,GAChE,CAED,SAAS,EAAe,CAAE,YAAW,GAAG,EAAmC,CAAE,CAC3E,OACE,EAAC,KAAA,CACC,YAAU,kBACV,UAAW,EACT,2FACA,GAEF,GAAI,GAGT,CAED,SAAS,EAAe,CAAE,YAAW,GAAG,EAAmC,CAAE,CAC3E,OACE,EAAC,KAAA,CACC,YAAU,kBACV,UAAW,EAAG,mCAAoC,GAClD,GAAI,GAGT,CAED,SAAS,EAAe,CACtB,UACA,YACA,GAAG,EAGJ,CAAE,CACD,IAAM,EAAO,EAAUA,EAAc,KAAO,IAE5C,OACE,EAAC,EAAA,CACC,YAAU,kBACV,UAAW,EAAG,0CAA2C,GACzD,GAAI,GAGT,CAED,SAAS,EAAe,CAAE,YAAW,GAAG,EAAqC,CAAE,CAC7E,OACE,EAAC,OAAA,CACC,YAAU,kBACV,KAAK,OACL,gBAAc,OACd,eAAa,OACb,UAAW,EAAG,8BAA+B,GAC7C,GAAI,GAGT,CAED,SAAS,EAAoB,CAC3B,WACA,YACA,GAAG,EACwB,CAAE,CAC7B,OACE,EAAC,KAAA,CACC,YAAU,uBACV,KAAK,eACL,cAAY,OACZ,UAAW,EAAG,mBAAoB,GAClC,GAAI,WAEH,GAAY,EAAC,EAAA,EAAA,GAGnB,CAED,SAAS,EAAmB,CAC1B,YACA,GAAG,EAC0B,CAAE,CAC/B,OACE,EAAC,OAAA,CACC,YAAU,sBACV,KAAK,eACL,cAAY,OACZ,UAAW,EAAG,0CAA2C,GACzD,GAAI,YAEJ,EAAC,EAAA,CAAmB,KAAM,GAAA,EAC1B,EAAC,OAAA,CAAK,UAAU,mBAAU,WAG/B"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"calendar.cjs","names":["DayPicker","cn","buttonVariants","props","className","ChevronLeftIcon","ChevronRightIcon","ChevronDownIcon","React","Button"],"sources":["../../packages/components/ui/calendar.tsx"],"sourcesContent":["\"use client\";\nimport React from \"react\";\nimport {\n ChevronDownIcon,\n ChevronLeftIcon,\n ChevronRightIcon,\n} from \"lucide-react\";\nimport { DayButton, DayPicker, getDefaultClassNames } from \"react-day-picker\";\n\nimport { Button, buttonVariants } from \"@/components/ui/button\";\nimport { cn } from \"@/lib/utils\";\n\nfunction Calendar({\n className,\n classNames,\n showOutsideDays = true,\n captionLayout = \"label\",\n buttonVariant = \"ghost\",\n formatters,\n components,\n ...props\n}: React.ComponentProps<typeof DayPicker> & {\n buttonVariant?: React.ComponentProps<typeof Button>[\"variant\"];\n}) {\n const defaultClassNames = getDefaultClassNames();\n\n return (\n <DayPicker\n showOutsideDays={showOutsideDays}\n className={cn(\n \"bg-background group/calendar p-3 [--cell-size:--spacing(8)] [[data-slot=card-content]_&]:bg-transparent [[data-slot=popover-content]_&]:bg-transparent\",\n String.raw`rtl:**:[.rdp-button\\_next>svg]:rotate-180`,\n String.raw`rtl:**:[.rdp-button\\_previous>svg]:rotate-180`,\n className,\n )}\n captionLayout={captionLayout}\n formatters={{\n formatMonthDropdown: (date) =>\n date.toLocaleString(\"default\", { month: \"short\" }),\n ...formatters,\n }}\n classNames={{\n root: cn(\"w-fit\", defaultClassNames.root),\n months: cn(\n \"flex gap-4 flex-col md:flex-row relative\",\n defaultClassNames.months,\n ),\n month: cn(\"flex flex-col w-full gap-4\", defaultClassNames.month),\n nav: cn(\n \"flex items-center gap-1 w-full absolute top-0 inset-x-0 justify-between\",\n defaultClassNames.nav,\n ),\n button_previous: cn(\n buttonVariants({ variant: buttonVariant }),\n \"size-(--cell-size) aria-disabled:opacity-50 p-0 select-none\",\n defaultClassNames.button_previous,\n ),\n button_next: cn(\n buttonVariants({ variant: buttonVariant }),\n \"size-(--cell-size) aria-disabled:opacity-50 p-0 select-none\",\n defaultClassNames.button_next,\n ),\n month_caption: cn(\n \"flex items-center justify-center h-(--cell-size) w-full px-(--cell-size)\",\n defaultClassNames.month_caption,\n ),\n dropdowns: cn(\n \"w-full flex items-center text-sm font-medium justify-center h-(--cell-size) gap-1.5\",\n defaultClassNames.dropdowns,\n ),\n dropdown_root: cn(\n \"relative has-focus:border-ring border border-input shadow-xs has-focus:ring-ring/50 has-focus:ring-[3px] rounded-md\",\n defaultClassNames.dropdown_root,\n ),\n dropdown: cn(\"absolute inset-0 opacity-0\", defaultClassNames.dropdown),\n caption_label: cn(\n \"select-none font-medium\",\n captionLayout === \"label\"\n ? \"text-sm\"\n : \"rounded-md pl-2 pr-1 flex items-center gap-1 text-sm h-8 [&>svg]:text-muted-foreground [&>svg]:size-3.5\",\n defaultClassNames.caption_label,\n ),\n table: \"w-full border-collapse\",\n weekdays: cn(\"flex\", defaultClassNames.weekdays),\n weekday: cn(\n \"text-muted-foreground rounded-md flex-1 font-normal text-[0.8rem] select-none\",\n defaultClassNames.weekday,\n ),\n week: cn(\"flex w-full mt-2\", defaultClassNames.week),\n week_number_header: cn(\n \"select-none w-(--cell-size)\",\n defaultClassNames.week_number_header,\n ),\n week_number: cn(\n \"text-[0.8rem] select-none text-muted-foreground\",\n defaultClassNames.week_number,\n ),\n day: cn(\n \"relative w-full h-full p-0 text-center [&:first-child[data-selected=true]_button]:rounded-l-md [&:last-child[data-selected=true]_button]:rounded-r-md group/day aspect-square select-none\",\n defaultClassNames.day,\n ),\n range_start: cn(\n \"rounded-l-md bg-accent\",\n defaultClassNames.range_start,\n ),\n range_middle: cn(\"rounded-none\", defaultClassNames.range_middle),\n range_end: cn(\"rounded-r-md bg-accent\", defaultClassNames.range_end),\n today: cn(\n \"bg-accent text-accent-foreground rounded-md data-[selected=true]:rounded-none\",\n defaultClassNames.today,\n ),\n outside: cn(\n \"text-muted-foreground aria-selected:text-muted-foreground\",\n defaultClassNames.outside,\n ),\n disabled: cn(\n \"text-muted-foreground opacity-50\",\n defaultClassNames.disabled,\n ),\n hidden: cn(\"invisible\", defaultClassNames.hidden),\n ...classNames,\n }}\n components={{\n Root: ({ className, rootRef, ...props }) => {\n return (\n <div\n data-slot=\"calendar\"\n ref={rootRef}\n className={cn(className)}\n {...props}\n />\n );\n },\n Chevron: ({ className, orientation, ...props }) => {\n if (orientation === \"left\") {\n return (\n <ChevronLeftIcon className={cn(\"size-4\", className)} {...props} />\n );\n }\n\n if (orientation === \"right\") {\n return (\n <ChevronRightIcon\n className={cn(\"size-4\", className)}\n {...props}\n />\n );\n }\n\n return (\n <ChevronDownIcon className={cn(\"size-4\", className)} {...props} />\n );\n },\n DayButton: CalendarDayButton,\n WeekNumber: ({ children, ...props }) => {\n return (\n <td {...props}>\n <div className=\"flex size-(--cell-size) items-center justify-center text-center\">\n {children}\n </div>\n </td>\n );\n },\n ...components,\n }}\n {...props}\n />\n );\n}\n\nfunction CalendarDayButton({\n className,\n day,\n modifiers,\n ...props\n}: React.ComponentProps<typeof DayButton>) {\n const defaultClassNames = getDefaultClassNames();\n\n const ref = React.useRef<HTMLButtonElement>(null);\n React.useEffect(() => {\n if (modifiers.focused) ref.current?.focus();\n }, [modifiers.focused]);\n\n return (\n <Button\n ref={ref}\n variant=\"ghost\"\n size=\"icon\"\n data-day={day.date.toLocaleDateString()}\n data-selected-single={\n modifiers.selected &&\n !modifiers.range_start &&\n !modifiers.range_end &&\n !modifiers.range_middle\n }\n data-range-start={modifiers.range_start}\n data-range-end={modifiers.range_end}\n data-range-middle={modifiers.range_middle}\n className={cn(\n \"data-[selected-single=true]:bg-primary data-[selected-single=true]:text-primary-foreground data-[range-middle=true]:bg-accent data-[range-middle=true]:text-accent-foreground data-[range-start=true]:bg-primary data-[range-start=true]:text-primary-foreground data-[range-end=true]:bg-primary data-[range-end=true]:text-primary-foreground group-data-[focused=true]/day:border-ring group-data-[focused=true]/day:ring-ring/50 dark:hover:text-accent-foreground flex aspect-square size-auto w-full min-w-(--cell-size) flex-col gap-1 leading-none font-normal group-data-[focused=true]/day:relative group-data-[focused=true]/day:z-10 group-data-[focused=true]/day:ring-[3px] data-[range-end=true]:rounded-md data-[range-end=true]:rounded-r-md data-[range-middle=true]:rounded-none data-[range-start=true]:rounded-md data-[range-start=true]:rounded-l-md [&>span]:text-xs [&>span]:opacity-70\",\n defaultClassNames.day,\n className,\n )}\n {...props}\n />\n );\n}\n\nexport { Calendar, CalendarDayButton };\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"calendar.js","names":["props","className"],"sources":["../../packages/components/ui/calendar.tsx"],"sourcesContent":["\"use client\";\nimport React from \"react\";\nimport {\n ChevronDownIcon,\n ChevronLeftIcon,\n ChevronRightIcon,\n} from \"lucide-react\";\nimport { DayButton, DayPicker, getDefaultClassNames } from \"react-day-picker\";\n\nimport { Button, buttonVariants } from \"@/components/ui/button\";\nimport { cn } from \"@/lib/utils\";\n\nfunction Calendar({\n className,\n classNames,\n showOutsideDays = true,\n captionLayout = \"label\",\n buttonVariant = \"ghost\",\n formatters,\n components,\n ...props\n}: React.ComponentProps<typeof DayPicker> & {\n buttonVariant?: React.ComponentProps<typeof Button>[\"variant\"];\n}) {\n const defaultClassNames = getDefaultClassNames();\n\n return (\n <DayPicker\n showOutsideDays={showOutsideDays}\n className={cn(\n \"bg-background group/calendar p-3 [--cell-size:--spacing(8)] [[data-slot=card-content]_&]:bg-transparent [[data-slot=popover-content]_&]:bg-transparent\",\n String.raw`rtl:**:[.rdp-button\\_next>svg]:rotate-180`,\n String.raw`rtl:**:[.rdp-button\\_previous>svg]:rotate-180`,\n className,\n )}\n captionLayout={captionLayout}\n formatters={{\n formatMonthDropdown: (date) =>\n date.toLocaleString(\"default\", { month: \"short\" }),\n ...formatters,\n }}\n classNames={{\n root: cn(\"w-fit\", defaultClassNames.root),\n months: cn(\n \"flex gap-4 flex-col md:flex-row relative\",\n defaultClassNames.months,\n ),\n month: cn(\"flex flex-col w-full gap-4\", defaultClassNames.month),\n nav: cn(\n \"flex items-center gap-1 w-full absolute top-0 inset-x-0 justify-between\",\n defaultClassNames.nav,\n ),\n button_previous: cn(\n buttonVariants({ variant: buttonVariant }),\n \"size-(--cell-size) aria-disabled:opacity-50 p-0 select-none\",\n defaultClassNames.button_previous,\n ),\n button_next: cn(\n buttonVariants({ variant: buttonVariant }),\n \"size-(--cell-size) aria-disabled:opacity-50 p-0 select-none\",\n defaultClassNames.button_next,\n ),\n month_caption: cn(\n \"flex items-center justify-center h-(--cell-size) w-full px-(--cell-size)\",\n defaultClassNames.month_caption,\n ),\n dropdowns: cn(\n \"w-full flex items-center text-sm font-medium justify-center h-(--cell-size) gap-1.5\",\n defaultClassNames.dropdowns,\n ),\n dropdown_root: cn(\n \"relative has-focus:border-ring border border-input shadow-xs has-focus:ring-ring/50 has-focus:ring-[3px] rounded-md\",\n defaultClassNames.dropdown_root,\n ),\n dropdown: cn(\"absolute inset-0 opacity-0\", defaultClassNames.dropdown),\n caption_label: cn(\n \"select-none font-medium\",\n captionLayout === \"label\"\n ? \"text-sm\"\n : \"rounded-md pl-2 pr-1 flex items-center gap-1 text-sm h-8 [&>svg]:text-muted-foreground [&>svg]:size-3.5\",\n defaultClassNames.caption_label,\n ),\n table: \"w-full border-collapse\",\n weekdays: cn(\"flex\", defaultClassNames.weekdays),\n weekday: cn(\n \"text-muted-foreground rounded-md flex-1 font-normal text-[0.8rem] select-none\",\n defaultClassNames.weekday,\n ),\n week: cn(\"flex w-full mt-2\", defaultClassNames.week),\n week_number_header: cn(\n \"select-none w-(--cell-size)\",\n defaultClassNames.week_number_header,\n ),\n week_number: cn(\n \"text-[0.8rem] select-none text-muted-foreground\",\n defaultClassNames.week_number,\n ),\n day: cn(\n \"relative w-full h-full p-0 text-center [&:first-child[data-selected=true]_button]:rounded-l-md [&:last-child[data-selected=true]_button]:rounded-r-md group/day aspect-square select-none\",\n defaultClassNames.day,\n ),\n range_start: cn(\n \"rounded-l-md bg-accent\",\n defaultClassNames.range_start,\n ),\n range_middle: cn(\"rounded-none\", defaultClassNames.range_middle),\n range_end: cn(\"rounded-r-md bg-accent\", defaultClassNames.range_end),\n today: cn(\n \"bg-accent text-accent-foreground rounded-md data-[selected=true]:rounded-none\",\n defaultClassNames.today,\n ),\n outside: cn(\n \"text-muted-foreground aria-selected:text-muted-foreground\",\n defaultClassNames.outside,\n ),\n disabled: cn(\n \"text-muted-foreground opacity-50\",\n defaultClassNames.disabled,\n ),\n hidden: cn(\"invisible\", defaultClassNames.hidden),\n ...classNames,\n }}\n components={{\n Root: ({ className, rootRef, ...props }) => {\n return (\n <div\n data-slot=\"calendar\"\n ref={rootRef}\n className={cn(className)}\n {...props}\n />\n );\n },\n Chevron: ({ className, orientation, ...props }) => {\n if (orientation === \"left\") {\n return (\n <ChevronLeftIcon className={cn(\"size-4\", className)} {...props} />\n );\n }\n\n if (orientation === \"right\") {\n return (\n <ChevronRightIcon\n className={cn(\"size-4\", className)}\n {...props}\n />\n );\n }\n\n return (\n <ChevronDownIcon className={cn(\"size-4\", className)} {...props} />\n );\n },\n DayButton: CalendarDayButton,\n WeekNumber: ({ children, ...props }) => {\n return (\n <td {...props}>\n <div className=\"flex size-(--cell-size) items-center justify-center text-center\">\n {children}\n </div>\n </td>\n );\n },\n ...components,\n }}\n {...props}\n />\n );\n}\n\nfunction CalendarDayButton({\n className,\n day,\n modifiers,\n ...props\n}: React.ComponentProps<typeof DayButton>) {\n const defaultClassNames = getDefaultClassNames();\n\n const ref = React.useRef<HTMLButtonElement>(null);\n React.useEffect(() => {\n if (modifiers.focused) ref.current?.focus();\n }, [modifiers.focused]);\n\n return (\n <Button\n ref={ref}\n variant=\"ghost\"\n size=\"icon\"\n data-day={day.date.toLocaleDateString()}\n data-selected-single={\n modifiers.selected &&\n !modifiers.range_start &&\n !modifiers.range_end &&\n !modifiers.range_middle\n }\n data-range-start={modifiers.range_start}\n data-range-end={modifiers.range_end}\n data-range-middle={modifiers.range_middle}\n className={cn(\n \"data-[selected-single=true]:bg-primary data-[selected-single=true]:text-primary-foreground data-[range-middle=true]:bg-accent data-[range-middle=true]:text-accent-foreground data-[range-start=true]:bg-primary data-[range-start=true]:text-primary-foreground data-[range-end=true]:bg-primary data-[range-end=true]:text-primary-foreground group-data-[focused=true]/day:border-ring group-data-[focused=true]/day:ring-ring/50 dark:hover:text-accent-foreground flex aspect-square size-auto w-full min-w-(--cell-size) flex-col gap-1 leading-none font-normal group-data-[focused=true]/day:relative group-data-[focused=true]/day:z-10 group-data-[focused=true]/day:ring-[3px] data-[range-end=true]:rounded-md data-[range-end=true]:rounded-r-md data-[range-middle=true]:rounded-none data-[range-start=true]:rounded-md data-[range-start=true]:rounded-l-md [&>span]:text-xs [&>span]:opacity-70\",\n defaultClassNames.day,\n className,\n )}\n {...props}\n />\n );\n}\n\nexport { Calendar, CalendarDayButton };\n"],"mappings":"uWAYA,SAAS,EAAS,CAChB,YACA,aACA,kBAAkB,GAClB,gBAAgB,QAChB,gBAAgB,QAChB,aACA,aACA,GAAG,EAGJ,CAAE,CACD,IAAM,EAAoB,IAE1B,OACE,EAAC,EAAA,CACkB,kBACjB,UAAW,EACT,yJACA,OAAO,GAAG,4CACV,OAAO,GAAG,gDACV,GAEa,gBACf,WAAY,CACV,oBAAsB,GACpB,EAAK,eAAe,UAAW,CAAE,MAAO,QAAS,EACnD,GAAG,EACJ,CACD,WAAY,CACV,KAAM,EAAG,QAAS,EAAkB,MACpC,OAAQ,EACN,2CACA,EAAkB,QAEpB,MAAO,EAAG,6BAA8B,EAAkB,OAC1D,IAAK,EACH,0EACA,EAAkB,KAEpB,gBAAiB,EACf,EAAe,CAAE,QAAS,EAAe,EACzC,8DACA,EAAkB,iBAEpB,YAAa,EACX,EAAe,CAAE,QAAS,EAAe,EACzC,8DACA,EAAkB,aAEpB,cAAe,EACb,2EACA,EAAkB,eAEpB,UAAW,EACT,sFACA,EAAkB,WAEpB,cAAe,EACb,sHACA,EAAkB,eAEpB,SAAU,EAAG,6BAA8B,EAAkB,UAC7D,cAAe,EACb,0BACA,IAAkB,QACd,UACA,0GACJ,EAAkB,eAEpB,MAAO,yBACP,SAAU,EAAG,OAAQ,EAAkB,UACvC,QAAS,EACP,gFACA,EAAkB,SAEpB,KAAM,EAAG,mBAAoB,EAAkB,MAC/C,mBAAoB,EAClB,8BACA,EAAkB,oBAEpB,YAAa,EACX,kDACA,EAAkB,aAEpB,IAAK,EACH,4LACA,EAAkB,KAEpB,YAAa,EACX,yBACA,EAAkB,aAEpB,aAAc,EAAG,eAAgB,EAAkB,cACnD,UAAW,EAAG,yBAA0B,EAAkB,WAC1D,MAAO,EACL,gFACA,EAAkB,OAEpB,QAAS,EACP,4DACA,EAAkB,SAEpB,SAAU,EACR,mCACA,EAAkB,UAEpB,OAAQ,EAAG,YAAa,EAAkB,QAC1C,GAAG,EACJ,CACD,WAAY,CACV,MAAO,CAAE,UAAA,EAAW,UAAS,GAAGA,EAAO,GAEnC,EAAC,MAAA,CACC,YAAU,WACV,IAAK,EACL,UAAW,EAAGC,GACd,GAAID,IAIV,SAAU,CAAE,UAAA,EAAW,cAAa,GAAGA,EAAO,GAGxC,EAFA,IAAgB,OAEf,EAID,IAAgB,QAEf,EAQF,EAdE,CAAgB,UAAW,EAAG,SAAUC,GAAY,GAAID,IAiB/D,UAAW,EACX,YAAa,CAAE,WAAU,GAAGA,EAAO,GAE/B,EAAC,KAAA,CAAG,GAAIA,WACN,EAAC,MAAA,CAAI,UAAU,kEACZ,eAKT,GAAG,EACJ,CACD,GAAI,GAGT,CAED,SAAS,EAAkB,CACzB,YACA,MACA,YACA,GAAG,EACoC,CAAE,CACzC,IAAM,EAAoB,IAEpB,EAAM,EAAM,OAA0B,MAK5C,OAJA,EAAM,cAAgB,CAChB,EAAU,SAAS,EAAI,SAAS,OACrC,EAAE,CAAC,EAAU,QAAQ,EAGpB,EAAC,EAAA,CACM,MACL,QAAQ,QACR,KAAK,OACL,WAAU,EAAI,KAAK,qBACnB,uBACE,EAAU,UACV,CAAC,EAAU,aACX,CAAC,EAAU,WACX,CAAC,EAAU,aAEb,mBAAkB,EAAU,YAC5B,iBAAgB,EAAU,UAC1B,oBAAmB,EAAU,aAC7B,UAAW,EACT,m3BACA,EAAkB,IAClB,GAEF,GAAI,GAGT"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"carousel.cjs","names":["React","api","cn","Button","ArrowLeft","ArrowRight"],"sources":["../../packages/components/ui/carousel.tsx"],"sourcesContent":["\"use client\";\nimport React from \"react\";\nimport { ArrowLeft, ArrowRight } from \"lucide-react\";\n\nimport { Button } from \"@/components/ui/button\";\nimport { cn } from \"@/lib/utils\";\n\nimport useEmblaCarousel, {\n type UseEmblaCarouselType,\n} from \"embla-carousel-react\";\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 Carousel,\n type CarouselApi,\n CarouselContent,\n CarouselItem,\n CarouselNext,\n CarouselPrevious,\n};\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"carousel.js","names":["api"],"sources":["../../packages/components/ui/carousel.tsx"],"sourcesContent":["\"use client\";\nimport React from \"react\";\nimport { ArrowLeft, ArrowRight } from \"lucide-react\";\n\nimport { Button } from \"@/components/ui/button\";\nimport { cn } from \"@/lib/utils\";\n\nimport useEmblaCarousel, {\n type UseEmblaCarouselType,\n} from \"embla-carousel-react\";\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 Carousel,\n type CarouselApi,\n CarouselContent,\n CarouselItem,\n CarouselNext,\n CarouselPrevious,\n};\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"collapsible.cjs","names":["CollapsiblePrimitive"],"sources":["../../packages/components/ui/collapsible.tsx"],"sourcesContent":["\"use client\";\nimport React from \"react\";\nimport { Collapsible as CollapsiblePrimitive } from \"radix-ui\";\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, CollapsibleContent, CollapsibleTrigger };\n"],"mappings":"+JAIA,SAAS,EAAY,CACnB,GAAG,EACoD,CAAE,CACzD,OAAO,EAAA,EAAA,KAACA,EAAAA,YAAqB,KAAA,CAAK,YAAU,cAAc,GAAI,GAC/D,CAED,SAAS,EAAmB,CAC1B,GAAG,EACkE,CAAE,CACvE,OACE,EAAA,EAAA,KAACA,EAAAA,YAAqB,mBAAA,CACpB,YAAU,sBACV,GAAI,GAGT,CAED,SAAS,EAAmB,CAC1B,GAAG,EACkE,CAAE,CACvE,OACE,EAAA,EAAA,KAACA,EAAAA,YAAqB,mBAAA,CACpB,YAAU,sBACV,GAAI,GAGT"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"collapsible.js","names":["CollapsiblePrimitive"],"sources":["../../packages/components/ui/collapsible.tsx"],"sourcesContent":["\"use client\";\nimport React from \"react\";\nimport { Collapsible as CollapsiblePrimitive } from \"radix-ui\";\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, CollapsibleContent, CollapsibleTrigger };\n"],"mappings":"iHAIA,SAAS,EAAY,CACnB,GAAG,EACoD,CAAE,CACzD,OAAO,EAACA,EAAqB,KAAA,CAAK,YAAU,cAAc,GAAI,GAC/D,CAED,SAAS,EAAmB,CAC1B,GAAG,EACkE,CAAE,CACvE,OACE,EAACA,EAAqB,mBAAA,CACpB,YAAU,sBACV,GAAI,GAGT,CAED,SAAS,EAAmB,CAC1B,GAAG,EACkE,CAAE,CACvE,OACE,EAACA,EAAqB,mBAAA,CACpB,YAAU,sBACV,GAAI,GAGT"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"context-menu.cjs","names":["ContextMenuPrimitive","cn","ChevronRightIcon","CheckIcon","CircleIcon"],"sources":["../../packages/components/ui/context-menu.tsx"],"sourcesContent":["\"use client\";\nimport React from \"react\";\nimport { ContextMenu as ContextMenuPrimitive } from \"radix-ui\";\nimport { CheckIcon, ChevronRightIcon, CircleIcon } from \"lucide-react\";\n\nimport { cn } from \"@/lib/utils\";\n\nfunction ContextMenu({\n ...props\n}: React.ComponentProps<typeof ContextMenuPrimitive.Root>) {\n return <ContextMenuPrimitive.Root data-slot=\"context-menu\" {...props} />;\n}\n\nfunction ContextMenuTrigger({\n ...props\n}: React.ComponentProps<typeof ContextMenuPrimitive.Trigger>) {\n return (\n <ContextMenuPrimitive.Trigger data-slot=\"context-menu-trigger\" {...props} />\n );\n}\n\nfunction ContextMenuGroup({\n ...props\n}: React.ComponentProps<typeof ContextMenuPrimitive.Group>) {\n return (\n <ContextMenuPrimitive.Group data-slot=\"context-menu-group\" {...props} />\n );\n}\n\nfunction ContextMenuPortal({\n ...props\n}: React.ComponentProps<typeof ContextMenuPrimitive.Portal>) {\n return (\n <ContextMenuPrimitive.Portal data-slot=\"context-menu-portal\" {...props} />\n );\n}\n\nfunction ContextMenuSub({\n ...props\n}: React.ComponentProps<typeof ContextMenuPrimitive.Sub>) {\n return <ContextMenuPrimitive.Sub data-slot=\"context-menu-sub\" {...props} />;\n}\n\nfunction ContextMenuRadioGroup({\n ...props\n}: React.ComponentProps<typeof ContextMenuPrimitive.RadioGroup>) {\n return (\n <ContextMenuPrimitive.RadioGroup\n data-slot=\"context-menu-radio-group\"\n {...props}\n />\n );\n}\n\nfunction ContextMenuSubTrigger({\n className,\n inset,\n children,\n ...props\n}: React.ComponentProps<typeof ContextMenuPrimitive.SubTrigger> & {\n inset?: boolean;\n}) {\n return (\n <ContextMenuPrimitive.SubTrigger\n data-slot=\"context-menu-sub-trigger\"\n data-inset={inset}\n className={cn(\n \"focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground flex cursor-default items-center rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[inset]:pl-8 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n {...props}\n >\n {children}\n <ChevronRightIcon className=\"ml-auto\" />\n </ContextMenuPrimitive.SubTrigger>\n );\n}\n\nfunction ContextMenuSubContent({\n className,\n ...props\n}: React.ComponentProps<typeof ContextMenuPrimitive.SubContent>) {\n return (\n <ContextMenuPrimitive.SubContent\n data-slot=\"context-menu-sub-content\"\n className={cn(\n \"bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 min-w-[8rem] origin-(--radix-context-menu-content-transform-origin) overflow-hidden rounded-md border p-1 shadow-lg\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction ContextMenuContent({\n className,\n ...props\n}: React.ComponentProps<typeof ContextMenuPrimitive.Content>) {\n return (\n <ContextMenuPrimitive.Portal>\n <ContextMenuPrimitive.Content\n data-slot=\"context-menu-content\"\n className={cn(\n \"bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 max-h-(--radix-context-menu-content-available-height) min-w-[8rem] origin-(--radix-context-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border p-1 shadow-md\",\n className,\n )}\n {...props}\n />\n </ContextMenuPrimitive.Portal>\n );\n}\n\nfunction ContextMenuItem({\n className,\n inset,\n variant = \"default\",\n ...props\n}: React.ComponentProps<typeof ContextMenuPrimitive.Item> & {\n inset?: boolean;\n variant?: \"default\" | \"destructive\";\n}) {\n return (\n <ContextMenuPrimitive.Item\n data-slot=\"context-menu-item\"\n data-inset={inset}\n data-variant={variant}\n className={cn(\n \"focus:bg-accent focus:text-accent-foreground data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 dark:data-[variant=destructive]:focus:bg-destructive/20 data-[variant=destructive]:focus:text-destructive data-[variant=destructive]:*:[svg]:!text-destructive [&_svg:not([class*='text-'])]:text-muted-foreground relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[inset]:pl-8 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction ContextMenuCheckboxItem({\n className,\n children,\n checked,\n ...props\n}: React.ComponentProps<typeof ContextMenuPrimitive.CheckboxItem>) {\n return (\n <ContextMenuPrimitive.CheckboxItem\n data-slot=\"context-menu-checkbox-item\"\n className={cn(\n \"focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n checked={checked}\n {...props}\n >\n <span className=\"pointer-events-none absolute left-2 flex size-3.5 items-center justify-center\">\n <ContextMenuPrimitive.ItemIndicator>\n <CheckIcon className=\"size-4\" />\n </ContextMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </ContextMenuPrimitive.CheckboxItem>\n );\n}\n\nfunction ContextMenuRadioItem({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof ContextMenuPrimitive.RadioItem>) {\n return (\n <ContextMenuPrimitive.RadioItem\n data-slot=\"context-menu-radio-item\"\n className={cn(\n \"relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pr-2 pl-8 text-sm outline-hidden select-none\",\n \"focus:bg-accent\",\n \"focus:text-accent-foreground\",\n \"data-[disabled]:pointer-events-none\",\n \"data-[disabled]:opacity-50\",\n \"[&_svg]:pointer-events-none\",\n \"[&_svg]:shrink-0\",\n \"[&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n {...props}\n >\n <span className=\"pointer-events-none absolute left-2 flex size-3.5 items-center justify-center\">\n <ContextMenuPrimitive.ItemIndicator>\n <CircleIcon className=\"size-2 fill-current\" />\n </ContextMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </ContextMenuPrimitive.RadioItem>\n );\n}\n\nfunction ContextMenuLabel({\n className,\n inset,\n ...props\n}: React.ComponentProps<typeof ContextMenuPrimitive.Label> & {\n inset?: boolean;\n}) {\n return (\n <ContextMenuPrimitive.Label\n data-slot=\"context-menu-label\"\n data-inset={inset}\n className={cn(\n \"text-foreground px-2 py-1.5 text-sm font-medium data-[inset]:pl-8\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction ContextMenuSeparator({\n className,\n ...props\n}: React.ComponentProps<typeof ContextMenuPrimitive.Separator>) {\n return (\n <ContextMenuPrimitive.Separator\n data-slot=\"context-menu-separator\"\n className={cn(\"bg-border -mx-1 my-1 h-px\", className)}\n {...props}\n />\n );\n}\n\nfunction ContextMenuShortcut({\n className,\n ...props\n}: React.ComponentProps<\"span\">) {\n return (\n <span\n data-slot=\"context-menu-shortcut\"\n className={cn(\n \"text-muted-foreground ml-auto text-xs tracking-widest\",\n className,\n )}\n {...props}\n />\n );\n}\n\nexport {\n ContextMenu,\n ContextMenuCheckboxItem,\n ContextMenuContent,\n ContextMenuGroup,\n ContextMenuItem,\n ContextMenuLabel,\n ContextMenuPortal,\n ContextMenuRadioGroup,\n ContextMenuRadioItem,\n ContextMenuSeparator,\n ContextMenuShortcut,\n ContextMenuSub,\n ContextMenuSubContent,\n ContextMenuSubTrigger,\n ContextMenuTrigger,\n};\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"context-menu.js","names":["ContextMenuPrimitive"],"sources":["../../packages/components/ui/context-menu.tsx"],"sourcesContent":["\"use client\";\nimport React from \"react\";\nimport { ContextMenu as ContextMenuPrimitive } from \"radix-ui\";\nimport { CheckIcon, ChevronRightIcon, CircleIcon } from \"lucide-react\";\n\nimport { cn } from \"@/lib/utils\";\n\nfunction ContextMenu({\n ...props\n}: React.ComponentProps<typeof ContextMenuPrimitive.Root>) {\n return <ContextMenuPrimitive.Root data-slot=\"context-menu\" {...props} />;\n}\n\nfunction ContextMenuTrigger({\n ...props\n}: React.ComponentProps<typeof ContextMenuPrimitive.Trigger>) {\n return (\n <ContextMenuPrimitive.Trigger data-slot=\"context-menu-trigger\" {...props} />\n );\n}\n\nfunction ContextMenuGroup({\n ...props\n}: React.ComponentProps<typeof ContextMenuPrimitive.Group>) {\n return (\n <ContextMenuPrimitive.Group data-slot=\"context-menu-group\" {...props} />\n );\n}\n\nfunction ContextMenuPortal({\n ...props\n}: React.ComponentProps<typeof ContextMenuPrimitive.Portal>) {\n return (\n <ContextMenuPrimitive.Portal data-slot=\"context-menu-portal\" {...props} />\n );\n}\n\nfunction ContextMenuSub({\n ...props\n}: React.ComponentProps<typeof ContextMenuPrimitive.Sub>) {\n return <ContextMenuPrimitive.Sub data-slot=\"context-menu-sub\" {...props} />;\n}\n\nfunction ContextMenuRadioGroup({\n ...props\n}: React.ComponentProps<typeof ContextMenuPrimitive.RadioGroup>) {\n return (\n <ContextMenuPrimitive.RadioGroup\n data-slot=\"context-menu-radio-group\"\n {...props}\n />\n );\n}\n\nfunction ContextMenuSubTrigger({\n className,\n inset,\n children,\n ...props\n}: React.ComponentProps<typeof ContextMenuPrimitive.SubTrigger> & {\n inset?: boolean;\n}) {\n return (\n <ContextMenuPrimitive.SubTrigger\n data-slot=\"context-menu-sub-trigger\"\n data-inset={inset}\n className={cn(\n \"focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground flex cursor-default items-center rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[inset]:pl-8 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n {...props}\n >\n {children}\n <ChevronRightIcon className=\"ml-auto\" />\n </ContextMenuPrimitive.SubTrigger>\n );\n}\n\nfunction ContextMenuSubContent({\n className,\n ...props\n}: React.ComponentProps<typeof ContextMenuPrimitive.SubContent>) {\n return (\n <ContextMenuPrimitive.SubContent\n data-slot=\"context-menu-sub-content\"\n className={cn(\n \"bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 min-w-[8rem] origin-(--radix-context-menu-content-transform-origin) overflow-hidden rounded-md border p-1 shadow-lg\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction ContextMenuContent({\n className,\n ...props\n}: React.ComponentProps<typeof ContextMenuPrimitive.Content>) {\n return (\n <ContextMenuPrimitive.Portal>\n <ContextMenuPrimitive.Content\n data-slot=\"context-menu-content\"\n className={cn(\n \"bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 max-h-(--radix-context-menu-content-available-height) min-w-[8rem] origin-(--radix-context-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border p-1 shadow-md\",\n className,\n )}\n {...props}\n />\n </ContextMenuPrimitive.Portal>\n );\n}\n\nfunction ContextMenuItem({\n className,\n inset,\n variant = \"default\",\n ...props\n}: React.ComponentProps<typeof ContextMenuPrimitive.Item> & {\n inset?: boolean;\n variant?: \"default\" | \"destructive\";\n}) {\n return (\n <ContextMenuPrimitive.Item\n data-slot=\"context-menu-item\"\n data-inset={inset}\n data-variant={variant}\n className={cn(\n \"focus:bg-accent focus:text-accent-foreground data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 dark:data-[variant=destructive]:focus:bg-destructive/20 data-[variant=destructive]:focus:text-destructive data-[variant=destructive]:*:[svg]:!text-destructive [&_svg:not([class*='text-'])]:text-muted-foreground relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[inset]:pl-8 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction ContextMenuCheckboxItem({\n className,\n children,\n checked,\n ...props\n}: React.ComponentProps<typeof ContextMenuPrimitive.CheckboxItem>) {\n return (\n <ContextMenuPrimitive.CheckboxItem\n data-slot=\"context-menu-checkbox-item\"\n className={cn(\n \"focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n checked={checked}\n {...props}\n >\n <span className=\"pointer-events-none absolute left-2 flex size-3.5 items-center justify-center\">\n <ContextMenuPrimitive.ItemIndicator>\n <CheckIcon className=\"size-4\" />\n </ContextMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </ContextMenuPrimitive.CheckboxItem>\n );\n}\n\nfunction ContextMenuRadioItem({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof ContextMenuPrimitive.RadioItem>) {\n return (\n <ContextMenuPrimitive.RadioItem\n data-slot=\"context-menu-radio-item\"\n className={cn(\n \"relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pr-2 pl-8 text-sm outline-hidden select-none\",\n \"focus:bg-accent\",\n \"focus:text-accent-foreground\",\n \"data-[disabled]:pointer-events-none\",\n \"data-[disabled]:opacity-50\",\n \"[&_svg]:pointer-events-none\",\n \"[&_svg]:shrink-0\",\n \"[&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n {...props}\n >\n <span className=\"pointer-events-none absolute left-2 flex size-3.5 items-center justify-center\">\n <ContextMenuPrimitive.ItemIndicator>\n <CircleIcon className=\"size-2 fill-current\" />\n </ContextMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </ContextMenuPrimitive.RadioItem>\n );\n}\n\nfunction ContextMenuLabel({\n className,\n inset,\n ...props\n}: React.ComponentProps<typeof ContextMenuPrimitive.Label> & {\n inset?: boolean;\n}) {\n return (\n <ContextMenuPrimitive.Label\n data-slot=\"context-menu-label\"\n data-inset={inset}\n className={cn(\n \"text-foreground px-2 py-1.5 text-sm font-medium data-[inset]:pl-8\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction ContextMenuSeparator({\n className,\n ...props\n}: React.ComponentProps<typeof ContextMenuPrimitive.Separator>) {\n return (\n <ContextMenuPrimitive.Separator\n data-slot=\"context-menu-separator\"\n className={cn(\"bg-border -mx-1 my-1 h-px\", className)}\n {...props}\n />\n );\n}\n\nfunction ContextMenuShortcut({\n className,\n ...props\n}: React.ComponentProps<\"span\">) {\n return (\n <span\n data-slot=\"context-menu-shortcut\"\n className={cn(\n \"text-muted-foreground ml-auto text-xs tracking-widest\",\n className,\n )}\n {...props}\n />\n );\n}\n\nexport {\n ContextMenu,\n ContextMenuCheckboxItem,\n ContextMenuContent,\n ContextMenuGroup,\n ContextMenuItem,\n ContextMenuLabel,\n ContextMenuPortal,\n ContextMenuRadioGroup,\n ContextMenuRadioItem,\n ContextMenuSeparator,\n ContextMenuShortcut,\n ContextMenuSub,\n ContextMenuSubContent,\n ContextMenuSubTrigger,\n ContextMenuTrigger,\n};\n"],"mappings":"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"}