buildgrid-ui 1.14.9 → 1.15.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (370) hide show
  1. package/dist/buildgrid-ui.es.js +17429 -0
  2. package/dist/buildgrid-ui.umd.js +293 -0
  3. package/package.json +14 -1
  4. package/dist/assets/en-US-BUOWLxFp.js +0 -2
  5. package/dist/assets/en-US-BUOWLxFp.js.map +0 -1
  6. package/dist/assets/jsx-runtime-D_zvdyIk.js +0 -10
  7. package/dist/assets/jsx-runtime-D_zvdyIk.js.map +0 -1
  8. package/dist/assets/magic-string.es-CTSuTltI.js +0 -11
  9. package/dist/assets/magic-string.es-CTSuTltI.js.map +0 -1
  10. package/dist/assets/vi.bdSIJ99Y-C6e_ZQS2.js +0 -482
  11. package/dist/assets/vi.bdSIJ99Y-C6e_ZQS2.js.map +0 -1
  12. package/dist/blocks/bento-grid/bento-grid.js +0 -2
  13. package/dist/blocks/bento-grid/bento-grid.js.map +0 -1
  14. package/dist/blocks/bento-grid/bento-grid.stories.js +0 -2
  15. package/dist/blocks/bento-grid/bento-grid.stories.js.map +0 -1
  16. package/dist/blocks/bento-grid/index.js +0 -2
  17. package/dist/blocks/bento-grid/index.js.map +0 -1
  18. package/dist/blocks/data-table/components/active-filters.js +0 -2
  19. package/dist/blocks/data-table/components/active-filters.js.map +0 -1
  20. package/dist/blocks/data-table/components/column-visibility-dropdown.js +0 -2
  21. package/dist/blocks/data-table/components/column-visibility-dropdown.js.map +0 -1
  22. package/dist/blocks/data-table/components/filter-dropdown.js +0 -2
  23. package/dist/blocks/data-table/components/filter-dropdown.js.map +0 -1
  24. package/dist/blocks/data-table/components/search-input.js +0 -2
  25. package/dist/blocks/data-table/components/search-input.js.map +0 -1
  26. package/dist/blocks/data-table/components/selection-info.js +0 -2
  27. package/dist/blocks/data-table/components/selection-info.js.map +0 -1
  28. package/dist/blocks/data-table/components/table-header.js +0 -2
  29. package/dist/blocks/data-table/components/table-header.js.map +0 -1
  30. package/dist/blocks/data-table/components/table-row.js +0 -2
  31. package/dist/blocks/data-table/components/table-row.js.map +0 -1
  32. package/dist/blocks/data-table/components/table-skeleton.js +0 -2
  33. package/dist/blocks/data-table/components/table-skeleton.js.map +0 -1
  34. package/dist/blocks/data-table/data-table.js +0 -2
  35. package/dist/blocks/data-table/data-table.js.map +0 -1
  36. package/dist/blocks/data-table/data-table.stories.js +0 -2
  37. package/dist/blocks/data-table/data-table.stories.js.map +0 -1
  38. package/dist/blocks/data-table/index.js +0 -2
  39. package/dist/blocks/data-table/index.js.map +0 -1
  40. package/dist/blocks/data-table/types/data-table.js +0 -2
  41. package/dist/blocks/data-table/types/data-table.js.map +0 -1
  42. package/dist/blocks/data-table/utils/export.js +0 -3
  43. package/dist/blocks/data-table/utils/export.js.map +0 -1
  44. package/dist/blocks/empty-message/empty-message.js +0 -2
  45. package/dist/blocks/empty-message/empty-message.js.map +0 -1
  46. package/dist/blocks/empty-message/empty-message.stories.js +0 -2
  47. package/dist/blocks/empty-message/empty-message.stories.js.map +0 -1
  48. package/dist/blocks/empty-message/index.js +0 -2
  49. package/dist/blocks/empty-message/index.js.map +0 -1
  50. package/dist/blocks/help-carousel/help-carousel.js +0 -2
  51. package/dist/blocks/help-carousel/help-carousel.js.map +0 -1
  52. package/dist/blocks/help-carousel/help-carousel.stories.js +0 -2
  53. package/dist/blocks/help-carousel/help-carousel.stories.js.map +0 -1
  54. package/dist/blocks/help-carousel/index.js +0 -2
  55. package/dist/blocks/help-carousel/index.js.map +0 -1
  56. package/dist/blocks/html-text-editor/html-text-area.js +0 -2
  57. package/dist/blocks/html-text-editor/html-text-area.js.map +0 -1
  58. package/dist/blocks/html-text-editor/html-text-area.stories.js +0 -8
  59. package/dist/blocks/html-text-editor/html-text-area.stories.js.map +0 -1
  60. package/dist/blocks/html-text-editor/html-text-editor.js +0 -2
  61. package/dist/blocks/html-text-editor/html-text-editor.js.map +0 -1
  62. package/dist/blocks/html-text-editor/html-text-editor.stories.js +0 -2
  63. package/dist/blocks/html-text-editor/html-text-editor.stories.js.map +0 -1
  64. package/dist/blocks/html-text-editor/index.js +0 -2
  65. package/dist/blocks/html-text-editor/index.js.map +0 -1
  66. package/dist/blocks/html-text-editor/options-bar.js +0 -2
  67. package/dist/blocks/html-text-editor/options-bar.js.map +0 -1
  68. package/dist/blocks/index.js +0 -2
  69. package/dist/blocks/index.js.map +0 -1
  70. package/dist/blocks/lazy-image-gallery/index.js +0 -2
  71. package/dist/blocks/lazy-image-gallery/index.js.map +0 -1
  72. package/dist/blocks/lazy-image-gallery/lazy-image-gallery.js +0 -2
  73. package/dist/blocks/lazy-image-gallery/lazy-image-gallery.js.map +0 -1
  74. package/dist/blocks/lazy-image-gallery/lazy-image-gallery.stories.js +0 -2
  75. package/dist/blocks/lazy-image-gallery/lazy-image-gallery.stories.js.map +0 -1
  76. package/dist/blocks/month-navigator/index.js +0 -2
  77. package/dist/blocks/month-navigator/index.js.map +0 -1
  78. package/dist/blocks/month-navigator/month-navigator.js +0 -2
  79. package/dist/blocks/month-navigator/month-navigator.js.map +0 -1
  80. package/dist/blocks/month-navigator/month-navigator.stories.js +0 -2
  81. package/dist/blocks/month-navigator/month-navigator.stories.js.map +0 -1
  82. package/dist/blocks/navigable-list/index.js +0 -2
  83. package/dist/blocks/navigable-list/index.js.map +0 -1
  84. package/dist/blocks/navigable-list/navigable-list.js +0 -2
  85. package/dist/blocks/navigable-list/navigable-list.js.map +0 -1
  86. package/dist/blocks/navigable-list/navigable-list.stories.js +0 -2
  87. package/dist/blocks/navigable-list/navigable-list.stories.js.map +0 -1
  88. package/dist/blocks/paginated-items/index.js +0 -2
  89. package/dist/blocks/paginated-items/index.js.map +0 -1
  90. package/dist/blocks/paginated-items/paginated-items.js +0 -2
  91. package/dist/blocks/paginated-items/paginated-items.js.map +0 -1
  92. package/dist/blocks/paginated-items/paginated-items.stories.js +0 -2
  93. package/dist/blocks/paginated-items/paginated-items.stories.js.map +0 -1
  94. package/dist/blocks/pagination-controls/index.js +0 -2
  95. package/dist/blocks/pagination-controls/index.js.map +0 -1
  96. package/dist/blocks/pagination-controls/pagination-controls.js +0 -2
  97. package/dist/blocks/pagination-controls/pagination-controls.js.map +0 -1
  98. package/dist/blocks/pagination-controls/pagination-controls.stories.js +0 -2
  99. package/dist/blocks/pagination-controls/pagination-controls.stories.js.map +0 -1
  100. package/dist/blocks/sidebar/index.js +0 -2
  101. package/dist/blocks/sidebar/index.js.map +0 -1
  102. package/dist/blocks/sidebar/sidebar.js +0 -2
  103. package/dist/blocks/sidebar/sidebar.js.map +0 -1
  104. package/dist/blocks/sidebar/sidebar.stories.js +0 -2
  105. package/dist/blocks/sidebar/sidebar.stories.js.map +0 -1
  106. package/dist/components/accordion/accordion.js +0 -2
  107. package/dist/components/accordion/accordion.js.map +0 -1
  108. package/dist/components/accordion/accordion.stories.js +0 -2
  109. package/dist/components/accordion/accordion.stories.js.map +0 -1
  110. package/dist/components/accordion/index.js +0 -2
  111. package/dist/components/accordion/index.js.map +0 -1
  112. package/dist/components/adaptive-input/adaptive-input.js +0 -2
  113. package/dist/components/adaptive-input/adaptive-input.js.map +0 -1
  114. package/dist/components/adaptive-input/adaptive-input.stories.js +0 -2
  115. package/dist/components/adaptive-input/adaptive-input.stories.js.map +0 -1
  116. package/dist/components/adaptive-input/index.js +0 -2
  117. package/dist/components/adaptive-input/index.js.map +0 -1
  118. package/dist/components/alert-dialog/alert-dialog.js +0 -2
  119. package/dist/components/alert-dialog/alert-dialog.js.map +0 -1
  120. package/dist/components/alert-dialog/alert-dialog.stories.js +0 -2
  121. package/dist/components/alert-dialog/alert-dialog.stories.js.map +0 -1
  122. package/dist/components/alert-dialog/index.js +0 -2
  123. package/dist/components/alert-dialog/index.js.map +0 -1
  124. package/dist/components/autocomplete/autocomplete.js +0 -2
  125. package/dist/components/autocomplete/autocomplete.js.map +0 -1
  126. package/dist/components/autocomplete/autocomplete.stories.js +0 -2
  127. package/dist/components/autocomplete/autocomplete.stories.js.map +0 -1
  128. package/dist/components/autocomplete/autocomplete.test.js +0 -2
  129. package/dist/components/autocomplete/autocomplete.test.js.map +0 -1
  130. package/dist/components/autocomplete/index.js +0 -2
  131. package/dist/components/autocomplete/index.js.map +0 -1
  132. package/dist/components/avatar/avatar.js +0 -2
  133. package/dist/components/avatar/avatar.js.map +0 -1
  134. package/dist/components/avatar/avatar.stories.js +0 -2
  135. package/dist/components/avatar/avatar.stories.js.map +0 -1
  136. package/dist/components/avatar/index.js +0 -2
  137. package/dist/components/avatar/index.js.map +0 -1
  138. package/dist/components/badge/badge.js +0 -2
  139. package/dist/components/badge/badge.js.map +0 -1
  140. package/dist/components/badge/badge.stories.js +0 -2
  141. package/dist/components/badge/badge.stories.js.map +0 -1
  142. package/dist/components/badge/index.js +0 -2
  143. package/dist/components/badge/index.js.map +0 -1
  144. package/dist/components/button/button.js +0 -2
  145. package/dist/components/button/button.js.map +0 -1
  146. package/dist/components/button/button.stories.js +0 -2
  147. package/dist/components/button/button.stories.js.map +0 -1
  148. package/dist/components/button/button.test.js +0 -2
  149. package/dist/components/button/button.test.js.map +0 -1
  150. package/dist/components/button/button.types.js +0 -2
  151. package/dist/components/button/button.types.js.map +0 -1
  152. package/dist/components/button/index.js +0 -2
  153. package/dist/components/button/index.js.map +0 -1
  154. package/dist/components/calendar/calendar.js +0 -2
  155. package/dist/components/calendar/calendar.js.map +0 -1
  156. package/dist/components/calendar/calendar.stories.js +0 -2
  157. package/dist/components/calendar/calendar.stories.js.map +0 -1
  158. package/dist/components/calendar/index.js +0 -2
  159. package/dist/components/calendar/index.js.map +0 -1
  160. package/dist/components/card/card.js +0 -2
  161. package/dist/components/card/card.js.map +0 -1
  162. package/dist/components/card/card.stories.js +0 -2
  163. package/dist/components/card/card.stories.js.map +0 -1
  164. package/dist/components/card/index.js +0 -2
  165. package/dist/components/card/index.js.map +0 -1
  166. package/dist/components/checkbox/checkbox.js +0 -2
  167. package/dist/components/checkbox/checkbox.js.map +0 -1
  168. package/dist/components/checkbox/checkbox.stories.js +0 -2
  169. package/dist/components/checkbox/checkbox.stories.js.map +0 -1
  170. package/dist/components/checkbox/index.js +0 -2
  171. package/dist/components/checkbox/index.js.map +0 -1
  172. package/dist/components/command/command.js +0 -2
  173. package/dist/components/command/command.js.map +0 -1
  174. package/dist/components/command/command.stories.js +0 -2
  175. package/dist/components/command/command.stories.js.map +0 -1
  176. package/dist/components/command/index.js +0 -2
  177. package/dist/components/command/index.js.map +0 -1
  178. package/dist/components/currency-input/currency-input.js +0 -2
  179. package/dist/components/currency-input/currency-input.js.map +0 -1
  180. package/dist/components/currency-input/currency-input.stories.js +0 -2
  181. package/dist/components/currency-input/currency-input.stories.js.map +0 -1
  182. package/dist/components/currency-input/index.js +0 -2
  183. package/dist/components/currency-input/index.js.map +0 -1
  184. package/dist/components/dialog/dialog.js +0 -2
  185. package/dist/components/dialog/dialog.js.map +0 -1
  186. package/dist/components/dialog/dialog.stories.js +0 -2
  187. package/dist/components/dialog/dialog.stories.js.map +0 -1
  188. package/dist/components/dialog/index.js +0 -2
  189. package/dist/components/dialog/index.js.map +0 -1
  190. package/dist/components/dropdown-menu/dropdown-menu.js +0 -2
  191. package/dist/components/dropdown-menu/dropdown-menu.js.map +0 -1
  192. package/dist/components/dropdown-menu/dropdown-menu.stories.js +0 -2
  193. package/dist/components/dropdown-menu/dropdown-menu.stories.js.map +0 -1
  194. package/dist/components/dropdown-menu/index.js +0 -2
  195. package/dist/components/dropdown-menu/index.js.map +0 -1
  196. package/dist/components/index.js +0 -2
  197. package/dist/components/index.js.map +0 -1
  198. package/dist/components/input/index.js +0 -2
  199. package/dist/components/input/index.js.map +0 -1
  200. package/dist/components/input/input.js +0 -2
  201. package/dist/components/input/input.js.map +0 -1
  202. package/dist/components/input/input.stories.js +0 -2
  203. package/dist/components/input/input.stories.js.map +0 -1
  204. package/dist/components/label/index.js +0 -2
  205. package/dist/components/label/index.js.map +0 -1
  206. package/dist/components/label/label.js +0 -2
  207. package/dist/components/label/label.js.map +0 -1
  208. package/dist/components/label/label.stories.js +0 -2
  209. package/dist/components/label/label.stories.js.map +0 -1
  210. package/dist/components/multi-select/index.js +0 -2
  211. package/dist/components/multi-select/index.js.map +0 -1
  212. package/dist/components/multi-select/multi-select.js +0 -2
  213. package/dist/components/multi-select/multi-select.js.map +0 -1
  214. package/dist/components/multi-select/multi-select.stories.js +0 -2
  215. package/dist/components/multi-select/multi-select.stories.js.map +0 -1
  216. package/dist/components/navigation-menu/index.js +0 -2
  217. package/dist/components/navigation-menu/index.js.map +0 -1
  218. package/dist/components/navigation-menu/navigation-menu.js +0 -2
  219. package/dist/components/navigation-menu/navigation-menu.js.map +0 -1
  220. package/dist/components/navigation-menu/navigation-menu.stories.js +0 -2
  221. package/dist/components/navigation-menu/navigation-menu.stories.js.map +0 -1
  222. package/dist/components/pagination/index.js +0 -2
  223. package/dist/components/pagination/index.js.map +0 -1
  224. package/dist/components/pagination/pagination.js +0 -2
  225. package/dist/components/pagination/pagination.js.map +0 -1
  226. package/dist/components/pagination/pagination.stories.js +0 -2
  227. package/dist/components/pagination/pagination.stories.js.map +0 -1
  228. package/dist/components/password-input/index.js +0 -2
  229. package/dist/components/password-input/index.js.map +0 -1
  230. package/dist/components/password-input/password-input.js +0 -2
  231. package/dist/components/password-input/password-input.js.map +0 -1
  232. package/dist/components/password-input/password-input.stories.js +0 -2
  233. package/dist/components/password-input/password-input.stories.js.map +0 -1
  234. package/dist/components/popover/index.js +0 -2
  235. package/dist/components/popover/index.js.map +0 -1
  236. package/dist/components/popover/popover.js +0 -2
  237. package/dist/components/popover/popover.js.map +0 -1
  238. package/dist/components/popover/popover.stories.js +0 -2
  239. package/dist/components/popover/popover.stories.js.map +0 -1
  240. package/dist/components/progress/index.js +0 -2
  241. package/dist/components/progress/index.js.map +0 -1
  242. package/dist/components/progress/progress.js +0 -2
  243. package/dist/components/progress/progress.js.map +0 -1
  244. package/dist/components/progress/progress.stories.js +0 -2
  245. package/dist/components/progress/progress.stories.js.map +0 -1
  246. package/dist/components/radio-group/index.js +0 -2
  247. package/dist/components/radio-group/index.js.map +0 -1
  248. package/dist/components/radio-group/radio-group.js +0 -2
  249. package/dist/components/radio-group/radio-group.js.map +0 -1
  250. package/dist/components/radio-group/radio-group.stories.js +0 -2
  251. package/dist/components/radio-group/radio-group.stories.js.map +0 -1
  252. package/dist/components/select/index.js +0 -2
  253. package/dist/components/select/index.js.map +0 -1
  254. package/dist/components/select/select.js +0 -2
  255. package/dist/components/select/select.js.map +0 -1
  256. package/dist/components/select/select.stories.js +0 -2
  257. package/dist/components/select/select.stories.js.map +0 -1
  258. package/dist/components/separator/index.js +0 -2
  259. package/dist/components/separator/index.js.map +0 -1
  260. package/dist/components/separator/separator.js +0 -2
  261. package/dist/components/separator/separator.js.map +0 -1
  262. package/dist/components/separator/separator.stories.js +0 -2
  263. package/dist/components/separator/separator.stories.js.map +0 -1
  264. package/dist/components/skeleton/index.js +0 -2
  265. package/dist/components/skeleton/index.js.map +0 -1
  266. package/dist/components/skeleton/skeleton.js +0 -2
  267. package/dist/components/skeleton/skeleton.js.map +0 -1
  268. package/dist/components/skeleton/skeleton.stories.js +0 -2
  269. package/dist/components/skeleton/skeleton.stories.js.map +0 -1
  270. package/dist/components/spinner/index.js +0 -2
  271. package/dist/components/spinner/index.js.map +0 -1
  272. package/dist/components/spinner/spinner.js +0 -2
  273. package/dist/components/spinner/spinner.js.map +0 -1
  274. package/dist/components/spinner/spinner.stories.js +0 -2
  275. package/dist/components/spinner/spinner.stories.js.map +0 -1
  276. package/dist/components/switch/index.js +0 -2
  277. package/dist/components/switch/index.js.map +0 -1
  278. package/dist/components/switch/switch.js +0 -2
  279. package/dist/components/switch/switch.js.map +0 -1
  280. package/dist/components/switch/switch.stories.js +0 -2
  281. package/dist/components/switch/switch.stories.js.map +0 -1
  282. package/dist/components/table/index.js +0 -2
  283. package/dist/components/table/index.js.map +0 -1
  284. package/dist/components/table/table.js +0 -2
  285. package/dist/components/table/table.js.map +0 -1
  286. package/dist/components/table/table.stories.js +0 -2
  287. package/dist/components/table/table.stories.js.map +0 -1
  288. package/dist/components/tabs/index.js +0 -2
  289. package/dist/components/tabs/index.js.map +0 -1
  290. package/dist/components/tabs/tabs.js +0 -2
  291. package/dist/components/tabs/tabs.js.map +0 -1
  292. package/dist/components/tabs/tabs.stories.js +0 -2
  293. package/dist/components/tabs/tabs.stories.js.map +0 -1
  294. package/dist/components/textarea/index.js +0 -2
  295. package/dist/components/textarea/index.js.map +0 -1
  296. package/dist/components/textarea/textarea.js +0 -2
  297. package/dist/components/textarea/textarea.js.map +0 -1
  298. package/dist/components/textarea/textarea.stories.js +0 -2
  299. package/dist/components/textarea/textarea.stories.js.map +0 -1
  300. package/dist/components/toaster/index.js +0 -2
  301. package/dist/components/toaster/index.js.map +0 -1
  302. package/dist/components/toaster/toast.js +0 -2
  303. package/dist/components/toaster/toast.js.map +0 -1
  304. package/dist/components/toaster/toaster.js +0 -2
  305. package/dist/components/toaster/toaster.js.map +0 -1
  306. package/dist/components/toaster/toaster.stories.js +0 -2
  307. package/dist/components/toaster/toaster.stories.js.map +0 -1
  308. package/dist/components/toggle/index.js +0 -2
  309. package/dist/components/toggle/index.js.map +0 -1
  310. package/dist/components/toggle/toggle.js +0 -2
  311. package/dist/components/toggle/toggle.js.map +0 -1
  312. package/dist/components/toggle/toggle.stories.js +0 -2
  313. package/dist/components/toggle/toggle.stories.js.map +0 -1
  314. package/dist/components/toggle-group/index.js +0 -2
  315. package/dist/components/toggle-group/index.js.map +0 -1
  316. package/dist/components/toggle-group/toggle-group.js +0 -2
  317. package/dist/components/toggle-group/toggle-group.js.map +0 -1
  318. package/dist/components/toggle-group/toggle-group.stories.js +0 -2
  319. package/dist/components/toggle-group/toggle-group.stories.js.map +0 -1
  320. package/dist/components/tooltip/index.js +0 -2
  321. package/dist/components/tooltip/index.js.map +0 -1
  322. package/dist/components/tooltip/tooltip.js +0 -2
  323. package/dist/components/tooltip/tooltip.js.map +0 -1
  324. package/dist/components/tooltip/tooltip.stories.js +0 -2
  325. package/dist/components/tooltip/tooltip.stories.js.map +0 -1
  326. package/dist/index.js +0 -2
  327. package/dist/index.js.map +0 -1
  328. package/dist/lib/hooks/index.js +0 -2
  329. package/dist/lib/hooks/index.js.map +0 -1
  330. package/dist/lib/hooks/use-array.js +0 -2
  331. package/dist/lib/hooks/use-array.js.map +0 -1
  332. package/dist/lib/hooks/use-copy-to-clipboard.js +0 -2
  333. package/dist/lib/hooks/use-copy-to-clipboard.js.map +0 -1
  334. package/dist/lib/hooks/use-debounce.js +0 -2
  335. package/dist/lib/hooks/use-debounce.js.map +0 -1
  336. package/dist/lib/hooks/use-dialog.js +0 -2
  337. package/dist/lib/hooks/use-dialog.js.map +0 -1
  338. package/dist/lib/hooks/use-dialog.stories.js +0 -2
  339. package/dist/lib/hooks/use-dialog.stories.js.map +0 -1
  340. package/dist/lib/hooks/use-disclosure-bool.js +0 -2
  341. package/dist/lib/hooks/use-disclosure-bool.js.map +0 -1
  342. package/dist/lib/hooks/use-disclosure.js +0 -2
  343. package/dist/lib/hooks/use-disclosure.js.map +0 -1
  344. package/dist/lib/hooks/use-file-utilities.js +0 -2
  345. package/dist/lib/hooks/use-file-utilities.js.map +0 -1
  346. package/dist/lib/hooks/use-key-press.js +0 -2
  347. package/dist/lib/hooks/use-key-press.js.map +0 -1
  348. package/dist/lib/hooks/use-local-storage.js +0 -2
  349. package/dist/lib/hooks/use-local-storage.js.map +0 -1
  350. package/dist/lib/hooks/use-media-query.js +0 -2
  351. package/dist/lib/hooks/use-media-query.js.map +0 -1
  352. package/dist/lib/hooks/use-mobile.js +0 -2
  353. package/dist/lib/hooks/use-mobile.js.map +0 -1
  354. package/dist/lib/hooks/use-pwa-install.js +0 -2
  355. package/dist/lib/hooks/use-pwa-install.js.map +0 -1
  356. package/dist/lib/types/ts-utilities.js +0 -2
  357. package/dist/lib/types/ts-utilities.js.map +0 -1
  358. package/dist/lib/utils/cn.js +0 -2
  359. package/dist/lib/utils/cn.js.map +0 -1
  360. package/dist/lib/utils/date-formatters.js +0 -2
  361. package/dist/lib/utils/date-formatters.js.map +0 -1
  362. package/dist/lib/utils/formatters.js +0 -2
  363. package/dist/lib/utils/formatters.js.map +0 -1
  364. package/dist/lib/utils/index.js +0 -2
  365. package/dist/lib/utils/index.js.map +0 -1
  366. package/dist/lib/utils/merge-objects.js +0 -2
  367. package/dist/lib/utils/merge-objects.js.map +0 -1
  368. package/dist/lib/utils/string.js +0 -2
  369. package/dist/lib/utils/string.js.map +0 -1
  370. /package/dist/{assets/unreset.css → buildgrid-ui.css} +0 -0
@@ -1,2 +0,0 @@
1
- import{j as s}from"../../assets/jsx-runtime-D_zvdyIk.js";import{c as e}from"../../lib/utils/cn.js";import"date-fns-tz";import"clsx";import"tailwind-merge";const _=({children:r,className:o,...a})=>s.jsx("div",{className:e("grid w-full auto-rows-[22rem] grid-cols-3 gap-4",o),...a,children:r}),f=({children:r,className:o,...a})=>s.jsx("div",{className:e("group relative col-span-3 flex flex-col justify-between overflow-hidden rounded-xl","bg-white [box-shadow:0_0_0_1px_rgba(0,0,0,.03),0_2px_4px_rgba(0,0,0,.05),0_12px_24px_rgba(0,0,0,.05)]","transform-gpu dark:bg-black dark:[border:1px_solid_rgba(255,255,255,.1)] dark:[box-shadow:0_-20px_80px_-20px_#ffffff1f_inset]",o),...a,children:r});export{_ as B,f as a};
2
- //# sourceMappingURL=bento-grid.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"bento-grid.js","sources":["../../../src/blocks/bento-grid/bento-grid.tsx"],"sourcesContent":["// based on https://magicui.design/docs/components/bento-grid\nimport { cn } from '@/lib/utils'\nimport { ComponentPropsWithoutRef, ReactNode } from 'react'\n\ninterface BentoGridProps extends ComponentPropsWithoutRef<'div'> {\n\tchildren: ReactNode\n\tclassName?: string\n}\n\ninterface BentoCardProps extends ComponentPropsWithoutRef<'div'> {\n\tchildren: ReactNode\n}\n\nconst BentoGrid = ({ children, className, ...props }: BentoGridProps) => {\n\treturn (\n\t\t<div\n\t\t\tclassName={cn('grid w-full auto-rows-[22rem] grid-cols-3 gap-4', className)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{children}\n\t\t</div>\n\t)\n}\n\nconst BentoCard = ({ children, className, ...props }: BentoCardProps) => (\n\t<div\n\t\tclassName={cn(\n\t\t\t'group relative col-span-3 flex flex-col justify-between overflow-hidden rounded-xl',\n\t\t\t// light styles\n\t\t\t'bg-white [box-shadow:0_0_0_1px_rgba(0,0,0,.03),0_2px_4px_rgba(0,0,0,.05),0_12px_24px_rgba(0,0,0,.05)]',\n\t\t\t// dark styles\n\t\t\t'transform-gpu dark:bg-black dark:[border:1px_solid_rgba(255,255,255,.1)] dark:[box-shadow:0_-20px_80px_-20px_#ffffff1f_inset]',\n\t\t\tclassName,\n\t\t)}\n\t\t{...props}\n\t>\n\t\t{children}\n\t</div>\n)\n\nexport { BentoCard, BentoGrid }\n"],"names":["BentoGrid","children","className","props","jsx","cn","BentoCard"],"mappings":"2JAaA,MAAMA,EAAY,CAAC,CAAE,SAAAC,EAAU,UAAAC,EAAW,GAAGC,KAE3CC,EAAAA,IAAC,MAAA,CACA,UAAWC,EAAG,kDAAmDH,CAAS,EACzE,GAAGC,EAEH,SAAAF,CAAA,CAAA,EAKEK,EAAY,CAAC,CAAE,SAAAL,EAAU,UAAAC,EAAW,GAAGC,KAC5CC,EAAAA,IAAC,MAAA,CACA,UAAWC,EACV,qFAEA,wGAEA,gIACAH,CAAA,EAEA,GAAGC,EAEH,SAAAF,CAAA,CACF"}
@@ -1,2 +0,0 @@
1
- import{j as e}from"../../assets/jsx-runtime-D_zvdyIk.js";import{B as a,a as s}from"./bento-grid.js";import"../../lib/utils/cn.js";import"clsx";import"tailwind-merge";import"date-fns-tz";const n=[{className:"lg:row-start-1 lg:row-end-4 lg:col-start-2 lg:col-end-3 bg-red-200",element:e.jsx(e.Fragment,{children:"Item 1"})},{element:e.jsx(e.Fragment,{children:"Item 2"}),className:"lg:col-start-1 lg:col-end-2 lg:row-start-1 lg:row-end-3 bg-blue-200"},{element:e.jsx(e.Fragment,{children:"Item 3"}),className:"lg:col-start-1 lg:col-end-2 lg:row-start-3 lg:row-end-4 bg-green-200"},{element:e.jsx(e.Fragment,{children:"Item 4"}),className:"lg:col-start-3 lg:col-end-3 lg:row-start-1 lg:row-end-2 bg-purle-200"},{element:e.jsx(e.Fragment,{children:"Item 5"}),className:"lg:col-start-3 lg:col-end-3 lg:row-start-2 lg:row-end-4 bg-yellow-200"},{element:e.jsx(e.Fragment,{children:"Item 6"}),className:"lg:col-start-1 lg:col-end-3 lg:row-start-4 lg:row-end-6 bg-orange-200"},{element:e.jsx(e.Fragment,{children:"Item 7"}),className:"lg:col-start-3 lg:col-end-4 lg:row-start-4 lg:row-end-5 bg-teal-200"},{element:e.jsx(e.Fragment,{children:"Item 8"}),className:"lg:col-start-3 lg:col-end-4 lg:row-start-5 lg:row-end-6 bg-emerald-200"}],g=()=>e.jsx(a,{className:"lg:grid-rows-5",children:n.map(({className:l,element:r},t)=>e.jsx(s,{className:`${l} p-4 hover:scale-105 transition-transform hover:z-50`,children:r},t))});g.bind({});
2
- //# sourceMappingURL=bento-grid.stories.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"bento-grid.stories.js","sources":["../../../src/blocks/bento-grid/bento-grid.stories.tsx"],"sourcesContent":["// organize-imports-ignore\nimport React from 'react'\nimport type { Meta, StoryObj } from '@storybook/react'\nimport { BentoCard, BentoGrid } from './bento-grid'\n\nconst meta: Meta<typeof BentoGrid> = {\n\tcomponent: BentoGrid,\n}\n\nexport default meta\ntype Story = StoryObj<typeof BentoGrid>\n\nconst features = [\n\t{\n\t\tclassName: 'lg:row-start-1 lg:row-end-4 lg:col-start-2 lg:col-end-3 bg-red-200',\n\t\telement: <>Item 1</>,\n\t},\n\t{\n\t\telement: <>Item 2</>,\n\t\tclassName: 'lg:col-start-1 lg:col-end-2 lg:row-start-1 lg:row-end-3 bg-blue-200',\n\t},\n\t{\n\t\telement: <>Item 3</>,\n\t\tclassName: 'lg:col-start-1 lg:col-end-2 lg:row-start-3 lg:row-end-4 bg-green-200',\n\t},\n\t{\n\t\telement: <>Item 4</>,\n\t\tclassName: 'lg:col-start-3 lg:col-end-3 lg:row-start-1 lg:row-end-2 bg-purle-200',\n\t},\n\t{\n\t\telement: <>Item 5</>,\n\t\tclassName: 'lg:col-start-3 lg:col-end-3 lg:row-start-2 lg:row-end-4 bg-yellow-200',\n\t},\n\t{\n\t\telement: <>Item 6</>,\n\t\tclassName: 'lg:col-start-1 lg:col-end-3 lg:row-start-4 lg:row-end-6 bg-orange-200',\n\t},\n\t{\n\t\telement: <>Item 7</>,\n\t\tclassName: 'lg:col-start-3 lg:col-end-4 lg:row-start-4 lg:row-end-5 bg-teal-200',\n\t},\n\t{\n\t\telement: <>Item 8</>,\n\t\tclassName: 'lg:col-start-3 lg:col-end-4 lg:row-start-5 lg:row-end-6 bg-emerald-200',\n\t},\n]\n\nconst Template = () => (\n\t<BentoGrid className=\"lg:grid-rows-5\">\n\t\t{features.map(({ className, element }, index) => (\n\t\t\t<BentoCard\n\t\t\t\tkey={index}\n\t\t\t\tclassName={`${className} p-4 hover:scale-105 transition-transform hover:z-50`}\n\t\t\t>\n\t\t\t\t{element}\n\t\t\t</BentoCard>\n\t\t))}\n\t</BentoGrid>\n)\n\nexport const Default: Story = {\n\trender: Template.bind({}),\n\targs: {},\n}\n"],"names":["features","Template","jsx","BentoGrid","className","element","index","BentoCard"],"mappings":"0LAYA,MAAMA,EAAW,CAChB,CACC,UAAW,qEACX,0BAAW,SAAA,QAAA,CAAM,CAAA,EAElB,CACC,0BAAW,SAAA,QAAA,CAAM,EACjB,UAAW,qEAAA,EAEZ,CACC,0BAAW,SAAA,QAAA,CAAM,EACjB,UAAW,sEAAA,EAEZ,CACC,0BAAW,SAAA,QAAA,CAAM,EACjB,UAAW,sEAAA,EAEZ,CACC,0BAAW,SAAA,QAAA,CAAM,EACjB,UAAW,uEAAA,EAEZ,CACC,0BAAW,SAAA,QAAA,CAAM,EACjB,UAAW,uEAAA,EAEZ,CACC,0BAAW,SAAA,QAAA,CAAM,EACjB,UAAW,qEAAA,EAEZ,CACC,0BAAW,SAAA,QAAA,CAAM,EACjB,UAAW,wEAAA,CAEb,EAEMC,EAAW,IAChBC,EAAAA,IAACC,EAAA,CAAU,UAAU,iBACnB,SAAAH,EAAS,IAAI,CAAC,CAAE,UAAAI,EAAW,QAAAC,CAAA,EAAWC,IACtCJ,EAAAA,IAACK,EAAA,CAEA,UAAW,GAAGH,CAAS,uDAEtB,SAAAC,CAAA,EAHIC,CAIN,CACA,EACF,EAIQL,EAAS,KAAK,EAAE"}
@@ -1,2 +0,0 @@
1
- import"./bento-grid.js";import"../../assets/jsx-runtime-D_zvdyIk.js";import"../../lib/utils/cn.js";import"clsx";import"tailwind-merge";import"date-fns-tz";
2
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -1,2 +0,0 @@
1
- import{j as e}from"../../../assets/jsx-runtime-D_zvdyIk.js";import{B as c}from"../../../components/badge/badge.js";import{X as o}from"lucide-react";import"class-variance-authority";import"../../../lib/utils/cn.js";import"clsx";import"tailwind-merge";import"date-fns-tz";function C({searchTerm:n,activeFilters:m,sortState:s,filters:p,columns:x,onClearSearch:h,onClearFilter:u,onClearSort:f}){var d;return Object.values(m).filter(r=>r&&r!=="all").length>0||n.trim().length>0||s.field!==null?e.jsxs("div",{className:"flex flex-wrap gap-2",children:[n.trim()&&e.jsxs(c,{variant:"secondary",className:"gap-1",children:["Search: ",n,e.jsx(o,{className:"h-3 w-3 cursor-pointer hover:text-destructive",onClick:h})]}),Object.entries(m).map(([r,t])=>{if(!t||t==="all")return null;const i=p.find(a=>String(a.field)===r),l=i==null?void 0:i.options.find(a=>a.value===t);return e.jsxs(c,{variant:"secondary",className:"gap-1",children:[i==null?void 0:i.label,": ",(l==null?void 0:l.label)||t,e.jsx(o,{className:"h-3 w-3 cursor-pointer hover:text-destructive",onClick:()=>u(r)})]},r)}),s.field&&e.jsxs(c,{variant:"secondary",className:"gap-1",children:["Sort:"," ",((d=x.find(r=>String(r.key)===s.field))==null?void 0:d.title)||s.field," ",s.direction==="asc"?"↑":"↓",e.jsx(o,{className:"h-3 w-3 cursor-pointer hover:text-destructive",onClick:f})]})]}):null}export{C as A};
2
- //# sourceMappingURL=active-filters.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"active-filters.js","sources":["../../../../src/blocks/data-table/components/active-filters.tsx"],"sourcesContent":["'use client'\n\nimport { Badge } from '@/components/badge'\nimport { X } from 'lucide-react'\nimport type { DataTableColumn, DataTableFilter, SortState } from '../types/data-table'\n\ninterface ActiveFiltersProps<T> {\n\tsearchTerm: string\n\tactiveFilters: Record<string, string>\n\tsortState: SortState\n\tfilters: DataTableFilter<T>[]\n\tcolumns: DataTableColumn<T>[]\n\tonClearSearch: () => void\n\tonClearFilter: (field: string) => void\n\tonClearSort: () => void\n}\n\nexport function ActiveFilters<T>({\n\tsearchTerm,\n\tactiveFilters,\n\tsortState,\n\tfilters,\n\tcolumns,\n\tonClearSearch,\n\tonClearFilter,\n\tonClearSort,\n}: ActiveFiltersProps<T>) {\n\tconst hasActiveFilters =\n\t\tObject.values(activeFilters).filter((value) => value && value !== 'all').length > 0 ||\n\t\tsearchTerm.trim().length > 0 ||\n\t\tsortState.field !== null\n\n\tif (!hasActiveFilters) return null\n\n\treturn (\n\t\t<div className=\"flex flex-wrap gap-2\">\n\t\t\t{searchTerm.trim() && (\n\t\t\t\t<Badge variant=\"secondary\" className=\"gap-1\">\n\t\t\t\t\tSearch: {searchTerm}\n\t\t\t\t\t<X\n\t\t\t\t\t\tclassName=\"h-3 w-3 cursor-pointer hover:text-destructive\"\n\t\t\t\t\t\tonClick={onClearSearch}\n\t\t\t\t\t/>\n\t\t\t\t</Badge>\n\t\t\t)}\n\t\t\t{Object.entries(activeFilters).map(([field, value]) => {\n\t\t\t\tif (!value || value === 'all') return null\n\t\t\t\tconst filter = filters.find((f) => String(f.field) === field)\n\t\t\t\tconst option = filter?.options.find((o) => o.value === value)\n\t\t\t\treturn (\n\t\t\t\t\t<Badge key={field} variant=\"secondary\" className=\"gap-1\">\n\t\t\t\t\t\t{filter?.label}: {option?.label || value}\n\t\t\t\t\t\t<X\n\t\t\t\t\t\t\tclassName=\"h-3 w-3 cursor-pointer hover:text-destructive\"\n\t\t\t\t\t\t\tonClick={() => onClearFilter(field)}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</Badge>\n\t\t\t\t)\n\t\t\t})}\n\t\t\t{sortState.field && (\n\t\t\t\t<Badge variant=\"secondary\" className=\"gap-1\">\n\t\t\t\t\tSort:{' '}\n\t\t\t\t\t{columns.find((col) => String(col.key) === sortState.field)?.title ||\n\t\t\t\t\t\tsortState.field}{' '}\n\t\t\t\t\t{sortState.direction === 'asc' ? '↑' : '↓'}\n\t\t\t\t\t<X\n\t\t\t\t\t\tclassName=\"h-3 w-3 cursor-pointer hover:text-destructive\"\n\t\t\t\t\t\tonClick={onClearSort}\n\t\t\t\t\t/>\n\t\t\t\t</Badge>\n\t\t\t)}\n\t\t</div>\n\t)\n}\n"],"names":["ActiveFilters","searchTerm","activeFilters","sortState","filters","columns","onClearSearch","onClearFilter","onClearSort","value","jsxs","Badge","jsx","X","field","filter","f","option","o","_a","col"],"mappings":"8QAiBO,SAASA,EAAiB,CAChC,WAAAC,EACA,cAAAC,EACA,UAAAC,EACA,QAAAC,EACA,QAAAC,EACA,cAAAC,EACA,cAAAC,EACA,YAAAC,CACD,EAA0B,OAMzB,OAJC,OAAO,OAAON,CAAa,EAAE,OAAQO,GAAUA,GAASA,IAAU,KAAK,EAAE,OAAS,GAClFR,EAAW,KAAA,EAAO,OAAS,GAC3BE,EAAU,QAAU,KAKpBO,EAAAA,KAAC,MAAA,CAAI,UAAU,uBACb,SAAA,CAAAT,EAAW,QACXS,EAAAA,KAACC,GAAM,QAAQ,YAAY,UAAU,QAAQ,SAAA,CAAA,WACnCV,EACTW,EAAAA,IAACC,EAAA,CACA,UAAU,gDACV,QAASP,CAAA,CAAA,CACV,EACD,EAEA,OAAO,QAAQJ,CAAa,EAAE,IAAI,CAAC,CAACY,EAAOL,CAAK,IAAM,CACtD,GAAI,CAACA,GAASA,IAAU,MAAO,OAAO,KACtC,MAAMM,EAASX,EAAQ,KAAMY,GAAM,OAAOA,EAAE,KAAK,IAAMF,CAAK,EACtDG,EAASF,GAAA,YAAAA,EAAQ,QAAQ,KAAMG,GAAMA,EAAE,QAAUT,GACvD,OACCC,EAAAA,KAACC,EAAA,CAAkB,QAAQ,YAAY,UAAU,QAC/C,SAAA,CAAAI,GAAA,YAAAA,EAAQ,MAAM,MAAGE,GAAA,YAAAA,EAAQ,QAASR,EACnCG,EAAAA,IAACC,EAAA,CACA,UAAU,gDACV,QAAS,IAAMN,EAAcO,CAAK,CAAA,CAAA,CACnC,CAAA,EALWA,CAMZ,CAAA,CAED,EACAX,EAAU,OACVO,EAAAA,KAACC,GAAM,QAAQ,YAAY,UAAU,QAAQ,SAAA,CAAA,QACtC,MACLQ,EAAAd,EAAQ,KAAMe,GAAQ,OAAOA,EAAI,GAAG,IAAMjB,EAAU,KAAK,IAAzD,YAAAgB,EAA4D,QAC5DhB,EAAU,MAAO,IACjBA,EAAU,YAAc,MAAQ,IAAM,IACvCS,EAAAA,IAACC,EAAA,CACA,UAAU,gDACV,QAASL,CAAA,CAAA,CACV,CAAA,CACD,CAAA,EAEF,EAvC6B,IAyC/B"}
@@ -1,2 +0,0 @@
1
- import{j as r}from"../../../assets/jsx-runtime-D_zvdyIk.js";import{B as e}from"../../../components/button/button.js";import{D as m,a as l,b as p,c as d,d as s,e as c}from"../../../components/dropdown-menu/dropdown-menu.js";import{SlidersHorizontal as u}from"lucide-react";import"../../../lib/utils/cn.js";import"clsx";import"tailwind-merge";import"date-fns-tz";import"../../../lib/utils/merge-objects.js";import"@radix-ui/react-slot";import"cva-extended";import"react";import"../../../components/button/button.types.js";import"@radix-ui/react-dropdown-menu";function v({columns:i,onToggleVisibility:t,onReset:n}){return r.jsxs(m,{children:[r.jsx(l,{asChild:!0,children:r.jsxs(e,{variant:"outline",className:"ml-auto",children:[r.jsx(u,{className:"h-4 w-4 mr-2"}),"Columns"]})}),r.jsxs(p,{align:"end",className:"w-48",children:[r.jsx(d,{children:"Toggle columns"}),r.jsx(s,{}),i.map(o=>r.jsx(c,{checked:!o.hidden,onCheckedChange:a=>t(String(o.key),a),children:o.title},String(o.key))),r.jsx(s,{}),r.jsx(e,{variant:"ghost",size:"sm",className:"w-full justify-start",onClick:n,children:"Reset columns"})]})]})}export{v as C};
2
- //# sourceMappingURL=column-visibility-dropdown.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"column-visibility-dropdown.js","sources":["../../../../src/blocks/data-table/components/column-visibility-dropdown.tsx"],"sourcesContent":["'use client'\n\nimport { Button } from '@/components/button'\nimport {\n\tDropdownMenu,\n\tDropdownMenuCheckboxItem,\n\tDropdownMenuContent,\n\tDropdownMenuLabel,\n\tDropdownMenuSeparator,\n\tDropdownMenuTrigger,\n} from '@/components/dropdown-menu'\nimport { SlidersHorizontal } from 'lucide-react'\nimport type { DataTableColumn } from '../types/data-table'\n\ninterface ColumnVisibilityDropdownProps<T> {\n\tcolumns: DataTableColumn<T>[]\n\tonToggleVisibility: (key: string, visible: boolean) => void\n\tonReset: () => void\n}\n\nexport function ColumnVisibilityDropdown<T>({\n\tcolumns,\n\tonToggleVisibility,\n\tonReset,\n}: ColumnVisibilityDropdownProps<T>) {\n\treturn (\n\t\t<DropdownMenu>\n\t\t\t<DropdownMenuTrigger asChild>\n\t\t\t\t<Button variant=\"outline\" className=\"ml-auto\">\n\t\t\t\t\t<SlidersHorizontal className=\"h-4 w-4 mr-2\" />\n\t\t\t\t\tColumns\n\t\t\t\t</Button>\n\t\t\t</DropdownMenuTrigger>\n\t\t\t<DropdownMenuContent align=\"end\" className=\"w-48\">\n\t\t\t\t<DropdownMenuLabel>Toggle columns</DropdownMenuLabel>\n\t\t\t\t<DropdownMenuSeparator />\n\t\t\t\t{columns.map((column) => (\n\t\t\t\t\t<DropdownMenuCheckboxItem\n\t\t\t\t\t\tkey={String(column.key)}\n\t\t\t\t\t\tchecked={!column.hidden}\n\t\t\t\t\t\tonCheckedChange={(checked) => onToggleVisibility(String(column.key), checked)}\n\t\t\t\t\t>\n\t\t\t\t\t\t{column.title}\n\t\t\t\t\t</DropdownMenuCheckboxItem>\n\t\t\t\t))}\n\t\t\t\t<DropdownMenuSeparator />\n\t\t\t\t<Button\n\t\t\t\t\tvariant=\"ghost\"\n\t\t\t\t\tsize=\"sm\"\n\t\t\t\t\tclassName=\"w-full justify-start\"\n\t\t\t\t\tonClick={onReset}\n\t\t\t\t>\n\t\t\t\t\tReset columns\n\t\t\t\t</Button>\n\t\t\t</DropdownMenuContent>\n\t\t</DropdownMenu>\n\t)\n}\n"],"names":["ColumnVisibilityDropdown","columns","onToggleVisibility","onReset","DropdownMenu","jsx","DropdownMenuTrigger","jsxs","Button","SlidersHorizontal","DropdownMenuContent","DropdownMenuLabel","DropdownMenuSeparator","column","DropdownMenuCheckboxItem","checked"],"mappings":"8iBAoBO,SAASA,EAA4B,CAC3C,QAAAC,EACA,mBAAAC,EACA,QAAAC,CACD,EAAqC,CACpC,cACEC,EAAA,CACA,SAAA,CAAAC,EAAAA,IAACC,EAAA,CAAoB,QAAO,GAC3B,SAAAC,EAAAA,KAACC,GAAO,QAAQ,UAAU,UAAU,UACnC,SAAA,CAAAH,EAAAA,IAACI,EAAA,CAAkB,UAAU,cAAA,CAAe,EAAE,SAAA,CAAA,CAE/C,CAAA,CACD,EACAF,EAAAA,KAACG,EAAA,CAAoB,MAAM,MAAM,UAAU,OAC1C,SAAA,CAAAL,EAAAA,IAACM,GAAkB,SAAA,gBAAA,CAAc,QAChCC,EAAA,EAAsB,EACtBX,EAAQ,IAAKY,GACbR,EAAAA,IAACS,EAAA,CAEA,QAAS,CAACD,EAAO,OACjB,gBAAkBE,GAAYb,EAAmB,OAAOW,EAAO,GAAG,EAAGE,CAAO,EAE3E,SAAAF,EAAO,KAAA,EAJH,OAAOA,EAAO,GAAG,CAAA,CAMvB,QACAD,EAAA,EAAsB,EACvBP,EAAAA,IAACG,EAAA,CACA,QAAQ,QACR,KAAK,KACL,UAAU,uBACV,QAASL,EACT,SAAA,eAAA,CAAA,CAED,CAAA,CACD,CAAA,EACD,CAEF"}
@@ -1,2 +0,0 @@
1
- import{j as e}from"../../../assets/jsx-runtime-D_zvdyIk.js";import{S as i,a as m,b as c,c as o,d as s}from"../../../components/select/select.js";import{Filter as n}from"lucide-react";import"../../../lib/utils/cn.js";import"clsx";import"tailwind-merge";import"date-fns-tz";import"@radix-ui/react-select";import"react";function g({filter:l,value:r,onChange:t}){return e.jsxs(i,{value:r||"all",onValueChange:t,children:[e.jsx(m,{className:"w-40",children:e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(n,{className:"h-4 w-4"}),e.jsx(c,{placeholder:l.label})]})}),e.jsxs(o,{children:[e.jsxs(s,{value:"all",children:["All ",l.label]}),l.options.map(a=>e.jsx(s,{value:a.value,children:a.label},a.value))]})]})}export{g as F};
2
- //# sourceMappingURL=filter-dropdown.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"filter-dropdown.js","sources":["../../../../src/blocks/data-table/components/filter-dropdown.tsx"],"sourcesContent":["'use client'\n\nimport {\n\tSelect,\n\tSelectContent,\n\tSelectItem,\n\tSelectTrigger,\n\tSelectValue,\n} from '@/components/select'\nimport { Filter } from 'lucide-react'\nimport type { DataTableFilter } from '../types/data-table'\n\ninterface FilterDropdownProps<T> {\n\tfilter: DataTableFilter<T>\n\tvalue: string\n\tonChange: (value: string) => void\n}\n\nexport function FilterDropdown<T>({ filter, value, onChange }: FilterDropdownProps<T>) {\n\treturn (\n\t\t<Select value={value || 'all'} onValueChange={onChange}>\n\t\t\t<SelectTrigger className=\"w-40\">\n\t\t\t\t<div className=\"flex items-center gap-2\">\n\t\t\t\t\t<Filter className=\"h-4 w-4\" />\n\t\t\t\t\t<SelectValue placeholder={filter.label} />\n\t\t\t\t</div>\n\t\t\t</SelectTrigger>\n\t\t\t<SelectContent>\n\t\t\t\t<SelectItem value=\"all\">All {filter.label}</SelectItem>\n\t\t\t\t{filter.options.map((option) => (\n\t\t\t\t\t<SelectItem key={option.value} value={option.value}>\n\t\t\t\t\t\t{option.label}\n\t\t\t\t\t</SelectItem>\n\t\t\t\t))}\n\t\t\t</SelectContent>\n\t\t</Select>\n\t)\n}\n"],"names":["FilterDropdown","filter","value","onChange","Select","jsx","SelectTrigger","jsxs","Filter","SelectValue","SelectContent","SelectItem","option"],"mappings":"6TAkBO,SAASA,EAAkB,CAAE,OAAAC,EAAQ,MAAAC,EAAO,SAAAC,GAAoC,CACtF,cACEC,EAAA,CAAO,MAAOF,GAAS,MAAO,cAAeC,EAC7C,SAAA,CAAAE,EAAAA,IAACC,GAAc,UAAU,OACxB,SAAAC,EAAAA,KAAC,MAAA,CAAI,UAAU,0BACd,SAAA,CAAAF,EAAAA,IAACG,EAAA,CAAO,UAAU,SAAA,CAAU,EAC5BH,EAAAA,IAACI,EAAA,CAAY,YAAaR,EAAO,KAAA,CAAO,CAAA,CAAA,CACzC,CAAA,CACD,SACCS,EAAA,CACA,SAAA,CAAAH,EAAAA,KAACI,EAAA,CAAW,MAAM,MAAM,SAAA,CAAA,OAAKV,EAAO,KAAA,EAAM,EACzCA,EAAO,QAAQ,IAAKW,GACpBP,EAAAA,IAACM,EAAA,CAA8B,MAAOC,EAAO,MAC3C,SAAAA,EAAO,KAAA,EADQA,EAAO,KAExB,CACA,CAAA,CAAA,CACF,CAAA,EACD,CAEF"}
@@ -1,2 +0,0 @@
1
- import{j as t}from"../../../assets/jsx-runtime-D_zvdyIk.js";import{I as m}from"../../../components/input/input.js";import{Search as s}from"lucide-react";import"../../../lib/utils/cn.js";import"clsx";import"tailwind-merge";import"class-variance-authority";import"react";function h({value:r,onChange:e,placeholder:a="Search..."}){return t.jsxs("div",{className:"relative flex-1 max-w-sm",children:[t.jsx(s,{className:"absolute left-3 top-1/2 transform -translate-y-1/2 text-muted-foreground h-4 w-4"}),t.jsx(m,{placeholder:a,value:r,onChange:o=>e(o.target.value),className:"pl-10"})]})}export{h as S};
2
- //# sourceMappingURL=search-input.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"search-input.js","sources":["../../../../src/blocks/data-table/components/search-input.tsx"],"sourcesContent":["'use client'\n\nimport { Input } from '@/components/input'\nimport { Search } from 'lucide-react'\n\ninterface SearchInputProps {\n\tvalue: string\n\tonChange: (value: string) => void\n\tplaceholder?: string\n}\n\nexport function SearchInput({\n\tvalue,\n\tonChange,\n\tplaceholder = 'Search...',\n}: SearchInputProps) {\n\treturn (\n\t\t<div className=\"relative flex-1 max-w-sm\">\n\t\t\t<Search className=\"absolute left-3 top-1/2 transform -translate-y-1/2 text-muted-foreground h-4 w-4\" />\n\t\t\t<Input\n\t\t\t\tplaceholder={placeholder}\n\t\t\t\tvalue={value}\n\t\t\t\tonChange={(e) => onChange(e.target.value)}\n\t\t\t\tclassName=\"pl-10\"\n\t\t\t/>\n\t\t</div>\n\t)\n}\n"],"names":["SearchInput","value","onChange","placeholder","jsxs","jsx","Search","Input","e"],"mappings":"6QAWO,SAASA,EAAY,CAC3B,MAAAC,EACA,SAAAC,EACA,YAAAC,EAAc,WACf,EAAqB,CACpB,OACCC,EAAAA,KAAC,MAAA,CAAI,UAAU,2BACd,SAAA,CAAAC,EAAAA,IAACC,EAAA,CAAO,UAAU,kFAAA,CAAmF,EACrGD,EAAAA,IAACE,EAAA,CACA,YAAAJ,EACA,MAAAF,EACA,SAAWO,GAAMN,EAASM,EAAE,OAAO,KAAK,EACxC,UAAU,OAAA,CAAA,CACX,EACD,CAEF"}
@@ -1,2 +0,0 @@
1
- import{j as r}from"../../../assets/jsx-runtime-D_zvdyIk.js";import{B as e}from"../../../components/button/button.js";import"../../../lib/utils/cn.js";import"clsx";import"tailwind-merge";import"date-fns-tz";import"../../../lib/utils/merge-objects.js";import"@radix-ui/react-slot";import"cva-extended";import"react";import"../../../components/button/button.types.js";function u({selectedCount:i,onClearSelection:t}){return i===0?null:r.jsxs("div",{className:"bg-muted/50 p-2 rounded-md flex items-center justify-between",children:[r.jsxs("div",{className:"text-sm",children:[r.jsx("span",{className:"font-medium",children:i})," ",i===1?"row":"rows"," selected"]}),r.jsx(e,{variant:"ghost",size:"sm",onClick:t,children:"Clear selection"})]})}export{u as S};
2
- //# sourceMappingURL=selection-info.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"selection-info.js","sources":["../../../../src/blocks/data-table/components/selection-info.tsx"],"sourcesContent":["'use client'\n\nimport { Button } from '@/components/button'\n\ninterface SelectionInfoProps {\n\tselectedCount: number\n\tonClearSelection: () => void\n}\n\nexport function SelectionInfo({ selectedCount, onClearSelection }: SelectionInfoProps) {\n\tif (selectedCount === 0) return null\n\n\treturn (\n\t\t<div className=\"bg-muted/50 p-2 rounded-md flex items-center justify-between\">\n\t\t\t<div className=\"text-sm\">\n\t\t\t\t<span className=\"font-medium\">{selectedCount}</span>{' '}\n\t\t\t\t{selectedCount === 1 ? 'row' : 'rows'} selected\n\t\t\t</div>\n\t\t\t<Button variant=\"ghost\" size=\"sm\" onClick={onClearSelection}>\n\t\t\t\tClear selection\n\t\t\t</Button>\n\t\t</div>\n\t)\n}\n"],"names":["SelectionInfo","selectedCount","onClearSelection","jsxs","jsx","Button"],"mappings":"6WASO,SAASA,EAAc,CAAE,cAAAC,EAAe,iBAAAC,GAAwC,CACtF,OAAID,IAAkB,EAAU,KAG/BE,EAAAA,KAAC,MAAA,CAAI,UAAU,+DACd,SAAA,CAAAA,EAAAA,KAAC,MAAA,CAAI,UAAU,UACd,SAAA,CAAAC,EAAAA,IAAC,OAAA,CAAK,UAAU,cAAe,SAAAH,EAAc,EAAQ,IACpDA,IAAkB,EAAI,MAAQ,OAAO,WAAA,EACvC,EACAG,EAAAA,IAACC,GAAO,QAAQ,QAAQ,KAAK,KAAK,QAASH,EAAkB,SAAA,iBAAA,CAE7D,CAAA,EACD,CAEF"}
@@ -1,2 +0,0 @@
1
- import{j as r}from"../../../assets/jsx-runtime-D_zvdyIk.js";import{C as n}from"../../../components/checkbox/checkbox.js";import{T as x,a as s}from"../../../components/table/table.js";import{c}from"../../../lib/utils/cn.js";import"date-fns-tz";import{ArrowUp as w,ArrowDown as m,ArrowUpDown as j}from"lucide-react";import"@radix-ui/react-checkbox";import"react";import"clsx";import"tailwind-merge";function D({columns:t,sortState:i,allRowsSelected:a,hasData:o,onSort:d,onToggleAllRows:h,allowSelectAllRows:l}){const p=t.filter(e=>!e.hidden);return r.jsxs(x,{children:[l&&r.jsx(s,{className:"w-12",children:r.jsx(n,{checked:a&&o,onCheckedChange:h,"aria-label":"Select all rows"})}),p.map(e=>r.jsx(s,{className:c(e.sortable?"cursor-pointer select-none":"",e.headerClassName,e.align==="right"?"text-right":"",e.align==="center"?"text-center":""),onClick:e.sortable?()=>d(String(e.key)):void 0,style:{width:e.width?typeof e.width=="number"?`${e.width}px`:e.width:void 0},children:r.jsxs("div",{className:"flex items-center gap-1",children:[e.title,e.sortable&&r.jsx(r.Fragment,{children:i.field===e.key?i.direction==="asc"?r.jsx(w,{className:"h-4 w-4"}):r.jsx(m,{className:"h-4 w-4"}):r.jsx(j,{className:"h-4 w-4 opacity-50"})})]})},String(e.key)))]})}export{D as T};
2
- //# sourceMappingURL=table-header.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"table-header.js","sources":["../../../../src/blocks/data-table/components/table-header.tsx"],"sourcesContent":["'use client'\n\nimport { Checkbox } from '@/components/checkbox'\nimport { TableHead, TableRow } from '@/components/table'\nimport { cn } from '@/lib/utils'\nimport { ArrowDown, ArrowUp, ArrowUpDown } from 'lucide-react'\nimport type { DataTableColumn, SortState } from '../types/data-table'\n\ninterface TableHeaderProps<T> {\n\tcolumns: DataTableColumn<T>[]\n\tsortState: SortState\n\tallRowsSelected: boolean\n\thasData: boolean\n\tallowSelectAllRows: boolean\n\tonSort: (field: string) => void\n\tonToggleAllRows: (checked: boolean) => void\n}\n\nexport function TableHeader<T>({\n\tcolumns,\n\tsortState,\n\tallRowsSelected,\n\thasData,\n\tonSort,\n\tonToggleAllRows,\n\tallowSelectAllRows,\n}: TableHeaderProps<T>) {\n\tconst visibleColumns = columns.filter((col) => !col.hidden)\n\n\treturn (\n\t\t<TableRow>\n\t\t\t{/* Selection Checkbox */}\n\t\t\t{allowSelectAllRows && (\n\t\t\t\t<TableHead className=\"w-12\">\n\t\t\t\t\t<Checkbox\n\t\t\t\t\t\tchecked={allRowsSelected && hasData}\n\t\t\t\t\t\tonCheckedChange={onToggleAllRows}\n\t\t\t\t\t\taria-label=\"Select all rows\"\n\t\t\t\t\t/>\n\t\t\t\t</TableHead>\n\t\t\t)}\n\n\t\t\t{/* Column Headers */}\n\t\t\t{visibleColumns.map((column) => (\n\t\t\t\t<TableHead\n\t\t\t\t\tkey={String(column.key)}\n\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\tcolumn.sortable ? 'cursor-pointer select-none' : '',\n\t\t\t\t\t\tcolumn.headerClassName,\n\t\t\t\t\t\tcolumn.align === 'right' ? 'text-right' : '',\n\t\t\t\t\t\tcolumn.align === 'center' ? 'text-center' : '',\n\t\t\t\t\t)}\n\t\t\t\t\tonClick={column.sortable ? () => onSort(String(column.key)) : undefined}\n\t\t\t\t\tstyle={{\n\t\t\t\t\t\twidth: column.width\n\t\t\t\t\t\t\t? typeof column.width === 'number'\n\t\t\t\t\t\t\t\t? `${column.width}px`\n\t\t\t\t\t\t\t\t: column.width\n\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t<div className=\"flex items-center gap-1\">\n\t\t\t\t\t\t{column.title}\n\t\t\t\t\t\t{column.sortable && (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t{sortState.field === column.key ? (\n\t\t\t\t\t\t\t\t\tsortState.direction === 'asc' ? (\n\t\t\t\t\t\t\t\t\t\t<ArrowUp className=\"h-4 w-4\" />\n\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t<ArrowDown className=\"h-4 w-4\" />\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t<ArrowUpDown className=\"h-4 w-4 opacity-50\" />\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</div>\n\t\t\t\t</TableHead>\n\t\t\t))}\n\t\t</TableRow>\n\t)\n}\n"],"names":["TableHeader","columns","sortState","allRowsSelected","hasData","onSort","onToggleAllRows","allowSelectAllRows","visibleColumns","col","TableRow","jsx","TableHead","Checkbox","column","cn","jsxs","Fragment","ArrowUp","ArrowDown","ArrowUpDown"],"mappings":"6YAkBO,SAASA,EAAe,CAC9B,QAAAC,EACA,UAAAC,EACA,gBAAAC,EACA,QAAAC,EACA,OAAAC,EACA,gBAAAC,EACA,mBAAAC,CACD,EAAwB,CACvB,MAAMC,EAAiBP,EAAQ,OAAQQ,GAAQ,CAACA,EAAI,MAAM,EAE1D,cACEC,EAAA,CAEC,SAAA,CAAAH,GACAI,EAAAA,IAACC,EAAA,CAAU,UAAU,OACpB,SAAAD,EAAAA,IAACE,EAAA,CACA,QAASV,GAAmBC,EAC5B,gBAAiBE,EACjB,aAAW,iBAAA,CAAA,EAEb,EAIAE,EAAe,IAAKM,GACpBH,EAAAA,IAACC,EAAA,CAEA,UAAWG,EACVD,EAAO,SAAW,6BAA+B,GACjDA,EAAO,gBACPA,EAAO,QAAU,QAAU,aAAe,GAC1CA,EAAO,QAAU,SAAW,cAAgB,EAAA,EAE7C,QAASA,EAAO,SAAW,IAAMT,EAAO,OAAOS,EAAO,GAAG,CAAC,EAAI,OAC9D,MAAO,CACN,MAAOA,EAAO,MACX,OAAOA,EAAO,OAAU,SACvB,GAAGA,EAAO,KAAK,KACfA,EAAO,MACR,MAAA,EAGJ,SAAAE,EAAAA,KAAC,MAAA,CAAI,UAAU,0BACb,SAAA,CAAAF,EAAO,MACPA,EAAO,UACPH,EAAAA,IAAAM,EAAAA,SAAA,CACE,SAAAf,EAAU,QAAUY,EAAO,IAC3BZ,EAAU,YAAc,MACvBS,EAAAA,IAACO,EAAA,CAAQ,UAAU,SAAA,CAAU,EAE7BP,EAAAA,IAACQ,EAAA,CAAU,UAAU,SAAA,CAAU,EAGhCR,EAAAA,IAACS,EAAA,CAAY,UAAU,oBAAA,CAAqB,CAAA,CAE9C,CAAA,CAAA,CAEF,CAAA,EA/BK,OAAON,EAAO,GAAG,CAAA,CAiCvB,CAAA,EACF,CAEF"}
@@ -1,2 +0,0 @@
1
- import{j as t}from"../../../assets/jsx-runtime-D_zvdyIk.js";import{B as ie}from"../../../components/button/button.js";import{T as be,e as H,b as ve,c as Ne,d as De}from"../../../components/table/table.js";import{FileDown as Te,X as Pe}from"lucide-react";import L,{useState as w,useMemo as _,useCallback as s}from"react";import{A as Fe}from"./active-filters.js";import{C as Ie}from"./column-visibility-dropdown.js";import{F as Re}from"./filter-dropdown.js";import{S as ye}from"./search-input.js";import{S as ke}from"./selection-info.js";import{T as Ae}from"./table-header.js";import{C as Be}from"../../../components/checkbox/checkbox.js";import{c as Ee}from"../../../lib/utils/cn.js";import"date-fns-tz";import{T as Ve}from"./table-skeleton.js";import{e as Me}from"../utils/export.js";import"../../../components/accordion/accordion.js";import"../../../components/adaptive-input/adaptive-input.js";import"../../../components/alert-dialog/alert-dialog.js";import"../../../components/autocomplete/autocomplete.js";import"../../../components/avatar/avatar.js";import"../../../components/badge/badge.js";import"date-fns";import"../../../components/card/card.js";import"../../../components/command/command.js";import"../../../components/currency-input/currency-input.js";import"../../../components/dialog/dialog.js";import"../../../components/dropdown-menu/dropdown-menu.js";import"../../../components/input/input.js";import"../../../components/label/label.js";import"../../../components/multi-select/multi-select.js";import"../../../components/navigation-menu/navigation-menu.js";import"../../../components/pagination/pagination.js";import"../../../components/progress/progress.js";import"../../../components/popover/popover.js";import"../../../components/radio-group/radio-group.js";import"../../../components/select/select.js";import"../../../components/separator/separator.js";import{S as d}from"../../../components/skeleton/skeleton.js";import"../../../components/spinner/spinner.js";import"../../../components/switch/switch.js";import"../../../components/tabs/tabs.js";import"../../../components/textarea/textarea.js";import"../../../components/toaster/toast.js";import"sonner";import"../../../components/toggle/toggle.js";import"../../../components/toggle-group/toggle-group.js";import"../../../components/tooltip/tooltip.js";import{u as $e}from"../../../lib/hooks/use-debounce.js";import"../../../lib/hooks/use-dialog.js";import"compressorjs";import{P as _e}from"../../pagination-controls/pagination-controls.js";/* empty css */import"../../../lib/utils/merge-objects.js";import"@radix-ui/react-slot";import"cva-extended";import"../../../components/button/button.types.js";import"clsx";import"tailwind-merge";import"class-variance-authority";import"@radix-ui/react-dropdown-menu";import"@radix-ui/react-select";import"@radix-ui/react-checkbox";import"@radix-ui/react-accordion";import"@radix-ui/react-alert-dialog";import"../../../lib/utils/string.js";import"@radix-ui/react-avatar";import"cmdk";import"@radix-ui/react-dialog";import"@radix-ui/react-label";import"@radix-ui/react-popover";import"@radix-ui/react-separator";import"@radix-ui/react-navigation-menu";import"@radix-ui/react-progress";import"@radix-ui/react-radio-group";import"@radix-ui/react-switch";import"@radix-ui/react-tabs";import"@radix-ui/react-toggle";import"@radix-ui/react-toggle-group";import"@radix-ui/react-tooltip";function He({row:b,index:v,columns:D,isSelected:S,rowId:h,onToggleSelection:T,allowSelection:B=!0}){const a=D.filter(l=>!l.hidden);return t.jsxs(be,{className:S?"bg-muted/50":"",children:[B&&t.jsx(H,{className:"w-12",children:t.jsx(Be,{checked:S,onCheckedChange:l=>T(h,!!l),"aria-label":`Select row ${v+1}`})}),a.map(l=>{const P=b[l.key];return t.jsx(H,{className:Ee(l.align==="right"?"text-right":"",l.align==="center"?"text-center":"",l.cellClassName),children:l.customRenderer?l.customRenderer(P,b):String(P??"")},String(l.key))})]})}function Le({data:b,columns:v,searchFields:D,filters:S=[],pageSize:h=40,className:T="",loading:B=!1,tools:a,activeFilters:l={}},P){var W,Y,Z,z,ee,te,re,ne,ae;const[F,E]=w(""),[V,N]=w(1),[j,M]=w(l),[p,$]=w({field:null,direction:null}),[u,C]=w(new Set),[x,K]=w(v),[se,oe]=w(0),I=$e(F,1e3),R=(e,r)=>String(e.id||e._id||`row-${r}`),c=_(()=>{let e=b.slice();if(I.trim()){const r=I.toLowerCase();e=e.filter(n=>D.some(i=>{const m=n[i];return m==null?!1:String(m).toLowerCase().includes(r)}))}if(Object.entries(j).forEach(([r,n])=>{n&&n!=="all"&&(e=e.filter(i=>{const m=i[r];return String(m)===n}))}),p.field&&p.direction){const{field:r,direction:n}=p;e.sort((i,m)=>{const f=i[r],g=m[r];return f==null&&g==null?0:f==null?n==="asc"?-1:1:g==null?n==="asc"?1:-1:typeof f=="string"&&typeof g=="string"?n==="asc"?f.localeCompare(g):g.localeCompare(f):n==="asc"?f-g:g-f})}return e},[b,D,I,j,p,se]),o=_(()=>{const e=c.length,r=Math.ceil(e/h),n=(V-1)*h,i=n+h;return{currentData:c.slice(n,i),totalItems:e,totalPages:r,startIndex:n,endIndex:Math.min(i,e)}},[c,V,h]);L.useEffect(()=>{N(1)},[I,j,p]);const O=s(()=>c.filter((e,r)=>{const n=R(e,r);return u.has(n)}),[c,u]),X=s(()=>u.size,[u]),q=s(e=>{C(new Set(e))},[]),G=s(()=>c,[c]),y=s(()=>{M({}),E(""),$({field:null,direction:null}),N(1)},[]),k=s((e="table-export")=>{Me(c,x,e)},[c,x]),A=s(e=>{e>=1&&e<=o.totalPages&&N(e)},[o.totalPages]),J=s(()=>{oe(e=>e+1)},[]),le=s((e,r)=>{M(n=>({...n,[e]:r}))},[]),ce=s(e=>{M(r=>{const n={...r};return delete n[e],n})},[]),me=s(()=>{y()},[y]),de=s(e=>{$(r=>r.field===e?r.direction==="asc"?{field:e,direction:"desc"}:r.direction==="desc"?{field:null,direction:null}:{field:e,direction:"asc"}:{field:e,direction:"asc"})},[]),pe=s((e,r)=>{K(n=>n.map(i=>String(i.key)===e?{...i,hidden:!r}:i))},[]),ue=s(()=>{K(v)},[v]),he=s(e=>{if(e){const r=new Set;o.currentData.forEach((n,i)=>{const m=R(n,i);r.add(m)}),C(r)}else C(new Set)},[o.currentData]),xe=s((e,r)=>{C(n=>{const i=new Set(n);return r?i.add(e):i.delete(e),i})},[]),fe=s(()=>{k()},[k]),ge=s(()=>{N(e=>Math.max(e-1,1))},[]),we=s(()=>{N(e=>Math.min(e+1,o.totalPages))},[o.totalPages]),Se=s(e=>{A(e)},[A]),Q=Object.values(j).filter(e=>e&&e!=="all").length>0||F.trim().length>0||p.field!==null,U=x.filter(e=>!e.hidden),je=u.size,Ce=_(()=>o.currentData.length>0&&o.currentData.every((e,r)=>{const n=R(e,r);return u.has(n)}),[o.currentData,u]);return L.useImperativeHandle(P,()=>({getSelectedItems:O,clearSelection:()=>C(new Set),getSelectionCount:X,selectItems:q,getFilteredData:G,resetFilters:y,exportData:k,goToPage:A,refresh:J}),[O,X,q,G,y,k,A,J]),B?t.jsxs("div",{className:`space-y-4 ${T}`,children:[t.jsxs("div",{className:"flex flex-wrap items-center gap-4",children:[t.jsx(d,{className:"h-10 w-full max-w-sm"}),S.map((e,r)=>t.jsx(d,{className:"h-10 w-30"},r)),t.jsx(d,{className:"h-10 w-32 ml-auto"})]}),t.jsx(Ve,{columns:U.length+1,rows:h}),t.jsxs("div",{className:"flex items-center justify-between",children:[t.jsx(d,{className:"h-4 w-48"}),t.jsxs("div",{className:"flex items-center space-x-2",children:[t.jsx(d,{className:"h-8 w-20"}),t.jsx(d,{className:"h-8 w-8"}),t.jsx(d,{className:"h-8 w-8"}),t.jsx(d,{className:"h-8 w-8"}),t.jsx(d,{className:"h-8 w-20"})]})]})]}):t.jsxs("div",{className:`space-y-4 ${T}`,children:[t.jsxs("div",{className:"flex flex-wrap items-center gap-4",children:[(W=a==null?void 0:a.search)!=null&&W.hide?null:t.jsx(ye,{placeholder:(Y=a==null?void 0:a.search)==null?void 0:Y.placeholder,value:F,onChange:E}),S.map(e=>t.jsx(Re,{filter:e,value:j[String(e.field)],onChange:r=>le(String(e.field),r)},String(e.field))),(Z=a==null?void 0:a.columnSelector)!=null&&Z.hide?t.jsx(Ie,{columns:x,onToggleVisibility:pe,onReset:ue}):null,(z=a==null?void 0:a.export)!=null&&z.hide?t.jsxs(ie,{variant:"outline",onClick:fe,children:[t.jsx(Te,{className:"h-4 w-4 mr-2"}),((ee=a==null?void 0:a.export)==null?void 0:ee.label)??"Export CSV"]}):null,!((te=a==null?void 0:a.clearFilters)!=null&&te.hide)&&Q&&t.jsxs(ie,{variant:"outline",onClick:me,children:[t.jsx(Pe,{className:"h-4 w-4 mr-2"}),((re=a==null?void 0:a.clearFilters)==null?void 0:re.label)??"Clear All"]})]}),t.jsx(Fe,{searchTerm:F,activeFilters:j,sortState:p,filters:S,columns:x,onClearSearch:()=>E(""),onClearFilter:ce,onClearSort:()=>$({field:null,direction:null})}),t.jsx(ke,{selectedCount:je,onClearSelection:()=>C(new Set)}),t.jsx("div",{className:"rounded-md border",children:t.jsxs(ve,{children:[t.jsx(Ne,{children:t.jsx(Ae,{allowSelectAllRows:!((ne=a==null?void 0:a.rowSelector)!=null&&ne.hide),columns:x,sortState:p,allRowsSelected:Ce,hasData:o.currentData.length>0,onSort:de,onToggleAllRows:he})}),t.jsx(De,{children:o.currentData.length===0?t.jsx("tr",{children:t.jsx(H,{colSpan:U.length+1,className:"h-24 text-center text-muted-foreground",children:Q?"No results found for the current filters.":"No data available."})}):o.currentData.map((e,r)=>{var i;const n=R(e,r);return t.jsx(He,{row:e,index:r,allowSelection:!((i=a==null?void 0:a.rowSelector)!=null&&i.hide),columns:x,isSelected:u.has(n),rowId:n,onToggleSelection:xe},n)})})]})}),t.jsx(_e,{currentPage:V,totalPages:o.totalPages,totalItems:o.totalItems,startIndex:o.startIndex,endIndex:o.endIndex,onPageChange:Se,onPreviousPage:ge,onNextPage:we,counterText:(ae=a==null?void 0:a.pagination)==null?void 0:ae.label})]})}const xr=L.forwardRef(Le);export{xr as D};
2
- //# sourceMappingURL=table-row.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"table-row.js","sources":["../../../../src/blocks/data-table/components/table-row.tsx","../../../../src/blocks/data-table/data-table.tsx"],"sourcesContent":["import { Checkbox } from '@/components/checkbox'\nimport { TableCell, TableRow } from '@/components/table'\nimport { cn } from '@/index'\nimport type { DataTableColumn } from '../types/data-table'\n\ninterface DataTableRowProps<T> {\n\trow: T\n\tindex: number\n\tcolumns: DataTableColumn<T>[]\n\tisSelected: boolean\n\trowId: string\n\tallowSelection?: boolean\n\tonToggleSelection: (id: string, checked: boolean) => void\n}\n\nexport function DataTableRow<T>({\n\trow,\n\tindex,\n\tcolumns,\n\tisSelected,\n\trowId,\n\tonToggleSelection,\n\tallowSelection = true,\n}: DataTableRowProps<T>) {\n\tconst visibleColumns = columns.filter((col) => !col.hidden)\n\n\treturn (\n\t\t<TableRow className={isSelected ? 'bg-muted/50' : ''}>\n\t\t\t{/* Row Selection Checkbox */}\n\t\t\t{allowSelection && (\n\t\t\t\t<TableCell className=\"w-12\">\n\t\t\t\t\t<Checkbox\n\t\t\t\t\t\tchecked={isSelected}\n\t\t\t\t\t\tonCheckedChange={(checked) => onToggleSelection(rowId, !!checked)}\n\t\t\t\t\t\taria-label={`Select row ${index + 1}`}\n\t\t\t\t\t/>\n\t\t\t\t</TableCell>\n\t\t\t)}\n\n\t\t\t{/* Row Data */}\n\t\t\t{visibleColumns.map((column) => {\n\t\t\t\tconst value = row[column.key]\n\t\t\t\treturn (\n\t\t\t\t\t<TableCell\n\t\t\t\t\t\tkey={String(column.key)}\n\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\tcolumn.align === 'right' ? 'text-right' : '',\n\t\t\t\t\t\t\tcolumn.align === 'center' ? 'text-center' : '',\n\t\t\t\t\t\t\tcolumn.cellClassName,\n\t\t\t\t\t\t)}\n\t\t\t\t\t>\n\t\t\t\t\t\t{column.customRenderer\n\t\t\t\t\t\t\t? column.customRenderer(value, row)\n\t\t\t\t\t\t\t: String(value ?? '')}\n\t\t\t\t\t</TableCell>\n\t\t\t\t)\n\t\t\t})}\n\t\t</TableRow>\n\t)\n}\n","'use client'\n\nimport { Button } from '@/components/button'\nimport { Table, TableBody, TableCell, TableHeader } from '@/components/table'\nimport { FileDown, X } from 'lucide-react'\nimport React, { useCallback, useMemo, useState } from 'react'\n\n// Import components\nimport { ActiveFilters } from './components/active-filters'\nimport { ColumnVisibilityDropdown } from './components/column-visibility-dropdown'\nimport { FilterDropdown } from './components/filter-dropdown'\nimport { SearchInput } from './components/search-input'\nimport { SelectionInfo } from './components/selection-info'\nimport { TableHeader as DataTableHeader } from './components/table-header'\nimport { DataTableRow } from './components/table-row'\nimport { TableSkeleton } from './components/table-skeleton'\n\n// Import utilities and hooks\nimport { exportToCSV } from './utils/export'\n\n// Import types\nimport { Skeleton } from '@/components'\nimport { useDebounce } from '@/lib/hooks'\nimport { PaginationControls } from '../pagination-controls'\nimport type { DataTableProps, DataTableRef, SortState } from './types/data-table'\n\nfunction DataTableInner<T extends Record<string, any>>(\n\t{\n\t\tdata,\n\t\tcolumns: initialColumns,\n\t\tsearchFields,\n\t\tfilters = [],\n\t\tpageSize = 40,\n\t\tclassName = '',\n\t\tloading = false,\n\t\ttools,\n\t\tactiveFilters: defaultFilters = {},\n\t}: DataTableProps<T>,\n\tref: React.Ref<DataTableRef<T>>,\n) {\n\tconst [searchTerm, setSearchTerm] = useState('')\n\tconst [currentPage, setCurrentPage] = useState(1)\n\tconst [activeFilters, setActiveFilters] =\n\t\tuseState<Record<string, string>>(defaultFilters)\n\tconst [sortState, setSortState] = useState<SortState>({ field: null, direction: null })\n\tconst [selectedRows, setSelectedRows] = useState<Set<string>>(new Set())\n\tconst [columns, setColumns] = useState(initialColumns)\n\tconst [refreshKey, setRefreshKey] = useState(0)\n\n\t// Debounce search term for performance\n\tconst debouncedSearchTerm = useDebounce(searchTerm, 1000)\n\n\t// Simple row ID function\n\tconst getRowId = (row: T, index: number): string => {\n\t\treturn String(row.id || row._id || `row-${index}`)\n\t}\n\n\t// Memoized filtered and sorted data\n\tconst processedData = useMemo(() => {\n\t\tlet result = data.slice()\n\n\t\t// Apply search filter\n\t\tif (debouncedSearchTerm.trim()) {\n\t\t\tconst searchLower = debouncedSearchTerm.toLowerCase()\n\t\t\tresult = result.filter((item) =>\n\t\t\t\tsearchFields.some((field) => {\n\t\t\t\t\tconst value = item[field]\n\t\t\t\t\tif (value == null) return false\n\t\t\t\t\treturn String(value).toLowerCase().includes(searchLower)\n\t\t\t\t}),\n\t\t\t)\n\t\t}\n\n\t\t// Apply dropdown filters\n\t\tObject.entries(activeFilters).forEach(([field, filterValue]) => {\n\t\t\tif (filterValue && filterValue !== 'all') {\n\t\t\t\tresult = result.filter((item) => {\n\t\t\t\t\tconst value = item[field as keyof T]\n\t\t\t\t\treturn String(value) === filterValue\n\t\t\t\t})\n\t\t\t}\n\t\t})\n\n\t\t// Apply sorting\n\t\tif (sortState.field && sortState.direction) {\n\t\t\tconst { field, direction } = sortState\n\t\t\tresult.sort((a, b) => {\n\t\t\t\tconst aValue = a[field as keyof T]\n\t\t\t\tconst bValue = b[field as keyof T]\n\n\t\t\t\t// Handle null/undefined values\n\t\t\t\tif (aValue == null && bValue == null) return 0\n\t\t\t\tif (aValue == null) return direction === 'asc' ? -1 : 1\n\t\t\t\tif (bValue == null) return direction === 'asc' ? 1 : -1\n\n\t\t\t\t// Compare based on type\n\t\t\t\tif (typeof aValue === 'string' && typeof bValue === 'string') {\n\t\t\t\t\treturn direction === 'asc'\n\t\t\t\t\t\t? aValue.localeCompare(bValue)\n\t\t\t\t\t\t: bValue.localeCompare(aValue)\n\t\t\t\t}\n\n\t\t\t\t// Numeric comparison\n\t\t\t\treturn direction === 'asc'\n\t\t\t\t\t? (aValue as number) - (bValue as number)\n\t\t\t\t\t: (bValue as number) - (aValue as number)\n\t\t\t})\n\t\t}\n\n\t\treturn result\n\t}, [data, searchFields, debouncedSearchTerm, activeFilters, sortState, refreshKey])\n\n\t// Memoized pagination calculations\n\tconst paginationData = useMemo(() => {\n\t\tconst totalItems = processedData.length\n\t\tconst totalPages = Math.ceil(totalItems / pageSize)\n\t\tconst startIndex = (currentPage - 1) * pageSize\n\t\tconst endIndex = startIndex + pageSize\n\t\tconst currentData = processedData.slice(startIndex, endIndex)\n\n\t\treturn {\n\t\t\tcurrentData,\n\t\t\ttotalItems,\n\t\t\ttotalPages,\n\t\t\tstartIndex,\n\t\t\tendIndex: Math.min(endIndex, totalItems),\n\t\t}\n\t}, [processedData, currentPage, pageSize])\n\n\t// Reset to first page when search or filters change\n\tReact.useEffect(() => {\n\t\tsetCurrentPage(1)\n\t}, [debouncedSearchTerm, activeFilters, sortState])\n\n\t// Get selected items for external use\n\tconst getSelectedItems = useCallback(() => {\n\t\treturn processedData.filter((item, index) => {\n\t\t\tconst id = getRowId(item, index)\n\t\t\treturn selectedRows.has(id)\n\t\t})\n\t}, [processedData, selectedRows])\n\n\t// Get selection count\n\tconst getSelectionCount = useCallback(() => {\n\t\treturn selectedRows.size\n\t}, [selectedRows])\n\n\t// Select specific items by IDs\n\tconst selectItems = useCallback((ids: string[]) => {\n\t\tsetSelectedRows(new Set(ids))\n\t}, [])\n\n\t// Get filtered data\n\tconst getFilteredData = useCallback(() => {\n\t\treturn processedData\n\t}, [processedData])\n\n\t// Reset all filters\n\tconst resetFilters = useCallback(() => {\n\t\tsetActiveFilters({})\n\t\tsetSearchTerm('')\n\t\tsetSortState({ field: null, direction: null })\n\t\tsetCurrentPage(1)\n\t}, [])\n\n\t// Export data\n\tconst exportData = useCallback(\n\t\t(filename = 'table-export') => {\n\t\t\texportToCSV(processedData, columns, filename)\n\t\t},\n\t\t[processedData, columns],\n\t)\n\n\t// Go to specific page\n\tconst goToPage = useCallback(\n\t\t(page: number) => {\n\t\t\tif (page >= 1 && page <= paginationData.totalPages) {\n\t\t\t\tsetCurrentPage(page)\n\t\t\t}\n\t\t},\n\t\t[paginationData.totalPages],\n\t)\n\n\t// Refresh table\n\tconst refresh = useCallback(() => {\n\t\tsetRefreshKey((prev) => prev + 1)\n\t}, [])\n\n\t// Filter handlers\n\tconst handleFilterChange = useCallback((field: string, value: string) => {\n\t\tsetActiveFilters((prev) => ({\n\t\t\t...prev,\n\t\t\t[field]: value,\n\t\t}))\n\t}, [])\n\n\tconst clearFilter = useCallback((field: string) => {\n\t\tsetActiveFilters((prev) => {\n\t\t\tconst newFilters = { ...prev }\n\t\t\tdelete newFilters[field]\n\t\t\treturn newFilters\n\t\t})\n\t}, [])\n\n\tconst clearAllFilters = useCallback(() => {\n\t\tresetFilters()\n\t}, [resetFilters])\n\n\t// Sorting handlers\n\tconst handleSort = useCallback((field: string) => {\n\t\tsetSortState((prev) => {\n\t\t\tif (prev.field === field) {\n\t\t\t\t// Cycle through: asc -> desc -> null\n\t\t\t\tif (prev.direction === 'asc') return { field, direction: 'desc' }\n\t\t\t\tif (prev.direction === 'desc') return { field: null, direction: null }\n\t\t\t\treturn { field, direction: 'asc' }\n\t\t\t}\n\t\t\t// New field, start with ascending\n\t\t\treturn { field, direction: 'asc' }\n\t\t})\n\t}, [])\n\n\t// Column visibility handlers\n\tconst toggleColumnVisibility = useCallback((key: string, visible: boolean) => {\n\t\tsetColumns((prev) =>\n\t\t\tprev.map((col) => (String(col.key) === key ? { ...col, hidden: !visible } : col)),\n\t\t)\n\t}, [])\n\n\tconst resetColumnVisibility = useCallback(() => {\n\t\tsetColumns(initialColumns)\n\t}, [initialColumns])\n\n\t// Row selection handlers\n\tconst toggleAllRows = useCallback(\n\t\t(checked: boolean) => {\n\t\t\tif (checked) {\n\t\t\t\tconst newSelected = new Set<string>()\n\t\t\t\tpaginationData.currentData.forEach((row, index) => {\n\t\t\t\t\tconst id = getRowId(row, index)\n\t\t\t\t\tnewSelected.add(id)\n\t\t\t\t})\n\t\t\t\tsetSelectedRows(newSelected)\n\t\t\t} else {\n\t\t\t\tsetSelectedRows(new Set())\n\t\t\t}\n\t\t},\n\t\t[paginationData.currentData],\n\t)\n\n\tconst toggleRowSelection = useCallback((id: string, checked: boolean) => {\n\t\tsetSelectedRows((prev) => {\n\t\t\tconst newSet = new Set(prev)\n\t\t\tif (checked) {\n\t\t\t\tnewSet.add(id)\n\t\t\t} else {\n\t\t\t\tnewSet.delete(id)\n\t\t\t}\n\t\t\treturn newSet\n\t\t})\n\t}, [])\n\n\t// Export handlers\n\tconst handleExport = useCallback(() => {\n\t\texportData()\n\t}, [exportData])\n\n\t// Pagination handlers\n\tconst handlePreviousPage = useCallback(() => {\n\t\tsetCurrentPage((prev) => Math.max(prev - 1, 1))\n\t}, [])\n\n\tconst handleNextPage = useCallback(() => {\n\t\tsetCurrentPage((prev) => Math.min(prev + 1, paginationData.totalPages))\n\t}, [paginationData.totalPages])\n\n\tconst handlePageChange = useCallback(\n\t\t(page: number) => {\n\t\t\tgoToPage(page)\n\t\t},\n\t\t[goToPage],\n\t)\n\n\t// Count active filters\n\tconst activeFilterCount = Object.values(activeFilters).filter(\n\t\t(value) => value && value !== 'all',\n\t).length\n\tconst hasActiveFilters =\n\t\tactiveFilterCount > 0 || searchTerm.trim().length > 0 || sortState.field !== null\n\n\t// Get visible columns\n\tconst visibleColumns = columns.filter((col) => !col.hidden)\n\tconst selectedCount = selectedRows.size\n\n\t// Check if all rows on current page are selected\n\tconst allRowsSelected = useMemo(() => {\n\t\treturn (\n\t\t\tpaginationData.currentData.length > 0 &&\n\t\t\tpaginationData.currentData.every((row, index) => {\n\t\t\t\tconst id = getRowId(row, index)\n\t\t\t\treturn selectedRows.has(id)\n\t\t\t})\n\t\t)\n\t}, [paginationData.currentData, selectedRows])\n\n\t// Expose methods for parent component\n\tReact.useImperativeHandle(\n\t\tref,\n\t\t() => ({\n\t\t\tgetSelectedItems,\n\t\t\tclearSelection: () => setSelectedRows(new Set()),\n\t\t\tgetSelectionCount,\n\t\t\tselectItems,\n\t\t\tgetFilteredData,\n\t\t\tresetFilters,\n\t\t\texportData,\n\t\t\tgoToPage,\n\t\t\trefresh,\n\t\t}),\n\t\t[\n\t\t\tgetSelectedItems,\n\t\t\tgetSelectionCount,\n\t\t\tselectItems,\n\t\t\tgetFilteredData,\n\t\t\tresetFilters,\n\t\t\texportData,\n\t\t\tgoToPage,\n\t\t\trefresh,\n\t\t],\n\t)\n\n\tif (loading) {\n\t\treturn (\n\t\t\t<div className={`space-y-4 ${className}`}>\n\t\t\t\t<div className=\"flex flex-wrap items-center gap-4\">\n\t\t\t\t\t<Skeleton className=\"h-10 w-full max-w-sm\" />\n\t\t\t\t\t{filters.map((_, index) => (\n\t\t\t\t\t\t<Skeleton key={index} className=\"h-10 w-30\" />\n\t\t\t\t\t))}\n\t\t\t\t\t<Skeleton className=\"h-10 w-32 ml-auto\" />\n\t\t\t\t</div>\n\t\t\t\t<TableSkeleton columns={visibleColumns.length + 1} rows={pageSize} />\n\t\t\t\t<div className=\"flex items-center justify-between\">\n\t\t\t\t\t<Skeleton className=\"h-4 w-48\" />\n\t\t\t\t\t<div className=\"flex items-center space-x-2\">\n\t\t\t\t\t\t<Skeleton className=\"h-8 w-20\" />\n\t\t\t\t\t\t<Skeleton className=\"h-8 w-8\" />\n\t\t\t\t\t\t<Skeleton className=\"h-8 w-8\" />\n\t\t\t\t\t\t<Skeleton className=\"h-8 w-8\" />\n\t\t\t\t\t\t<Skeleton className=\"h-8 w-20\" />\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t)\n\t}\n\n\treturn (\n\t\t<div className={`space-y-4 ${className}`}>\n\t\t\t{/* Table Controls */}\n\t\t\t<div className=\"flex flex-wrap items-center gap-4\">\n\t\t\t\t{!Boolean(tools?.search?.hide) ? (\n\t\t\t\t\t<SearchInput\n\t\t\t\t\t\tplaceholder={tools?.search?.placeholder}\n\t\t\t\t\t\tvalue={searchTerm}\n\t\t\t\t\t\tonChange={setSearchTerm}\n\t\t\t\t\t/>\n\t\t\t\t) : null}\n\n\t\t\t\t{filters.map((filter) => (\n\t\t\t\t\t<FilterDropdown\n\t\t\t\t\t\tkey={String(filter.field)}\n\t\t\t\t\t\tfilter={filter}\n\t\t\t\t\t\tvalue={activeFilters[String(filter.field)]}\n\t\t\t\t\t\tonChange={(value) => handleFilterChange(String(filter.field), value)}\n\t\t\t\t\t/>\n\t\t\t\t))}\n\n\t\t\t\t{Boolean(tools?.columnSelector?.hide) ? (\n\t\t\t\t\t<ColumnVisibilityDropdown\n\t\t\t\t\t\tcolumns={columns}\n\t\t\t\t\t\tonToggleVisibility={toggleColumnVisibility}\n\t\t\t\t\t\tonReset={resetColumnVisibility}\n\t\t\t\t\t/>\n\t\t\t\t) : null}\n\n\t\t\t\t{Boolean(tools?.export?.hide) ? (\n\t\t\t\t\t<Button variant=\"outline\" onClick={handleExport}>\n\t\t\t\t\t\t<FileDown className=\"h-4 w-4 mr-2\" />\n\t\t\t\t\t\t{tools?.export?.label ?? 'Export CSV'}\n\t\t\t\t\t</Button>\n\t\t\t\t) : null}\n\n\t\t\t\t{!Boolean(tools?.clearFilters?.hide) && hasActiveFilters && (\n\t\t\t\t\t<Button variant=\"outline\" onClick={clearAllFilters}>\n\t\t\t\t\t\t<X className=\"h-4 w-4 mr-2\" />\n\t\t\t\t\t\t{tools?.clearFilters?.label ?? 'Clear All'}\n\t\t\t\t\t</Button>\n\t\t\t\t)}\n\t\t\t</div>\n\n\t\t\t{/* Active Filters Display */}\n\t\t\t<ActiveFilters\n\t\t\t\tsearchTerm={searchTerm}\n\t\t\t\tactiveFilters={activeFilters}\n\t\t\t\tsortState={sortState}\n\t\t\t\tfilters={filters}\n\t\t\t\tcolumns={columns}\n\t\t\t\tonClearSearch={() => setSearchTerm('')}\n\t\t\t\tonClearFilter={clearFilter}\n\t\t\t\tonClearSort={() => setSortState({ field: null, direction: null })}\n\t\t\t/>\n\n\t\t\t{/* Selected Rows Count */}\n\t\t\t<SelectionInfo\n\t\t\t\tselectedCount={selectedCount}\n\t\t\t\tonClearSelection={() => setSelectedRows(new Set())}\n\t\t\t/>\n\n\t\t\t{/* Table */}\n\t\t\t<div className=\"rounded-md border\">\n\t\t\t\t<Table>\n\t\t\t\t\t<TableHeader>\n\t\t\t\t\t\t<DataTableHeader\n\t\t\t\t\t\t\tallowSelectAllRows={!Boolean(tools?.rowSelector?.hide)}\n\t\t\t\t\t\t\tcolumns={columns}\n\t\t\t\t\t\t\tsortState={sortState}\n\t\t\t\t\t\t\tallRowsSelected={allRowsSelected}\n\t\t\t\t\t\t\thasData={paginationData.currentData.length > 0}\n\t\t\t\t\t\t\tonSort={handleSort}\n\t\t\t\t\t\t\tonToggleAllRows={toggleAllRows}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</TableHeader>\n\t\t\t\t\t<TableBody>\n\t\t\t\t\t\t{paginationData.currentData.length === 0 ? (\n\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t<TableCell\n\t\t\t\t\t\t\t\t\tcolSpan={visibleColumns.length + 1}\n\t\t\t\t\t\t\t\t\tclassName=\"h-24 text-center text-muted-foreground\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{hasActiveFilters\n\t\t\t\t\t\t\t\t\t\t? 'No results found for the current filters.'\n\t\t\t\t\t\t\t\t\t\t: 'No data available.'}\n\t\t\t\t\t\t\t\t</TableCell>\n\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\tpaginationData.currentData.map((row, index) => {\n\t\t\t\t\t\t\t\tconst rowId = getRowId(row, index)\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t<DataTableRow\n\t\t\t\t\t\t\t\t\t\tkey={rowId}\n\t\t\t\t\t\t\t\t\t\trow={row}\n\t\t\t\t\t\t\t\t\t\tindex={index}\n\t\t\t\t\t\t\t\t\t\tallowSelection={!Boolean(tools?.rowSelector?.hide)}\n\t\t\t\t\t\t\t\t\t\tcolumns={columns}\n\t\t\t\t\t\t\t\t\t\tisSelected={selectedRows.has(rowId)}\n\t\t\t\t\t\t\t\t\t\trowId={rowId}\n\t\t\t\t\t\t\t\t\t\tonToggleSelection={toggleRowSelection}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t)}\n\t\t\t\t\t</TableBody>\n\t\t\t\t</Table>\n\t\t\t</div>\n\n\t\t\t{/* Pagination */}\n\t\t\t<PaginationControls\n\t\t\t\tcurrentPage={currentPage}\n\t\t\t\ttotalPages={paginationData.totalPages}\n\t\t\t\ttotalItems={paginationData.totalItems}\n\t\t\t\tstartIndex={paginationData.startIndex}\n\t\t\t\tendIndex={paginationData.endIndex}\n\t\t\t\tonPageChange={handlePageChange}\n\t\t\t\tonPreviousPage={handlePreviousPage}\n\t\t\t\tonNextPage={handleNextPage}\n\t\t\t\tcounterText={tools?.pagination?.label}\n\t\t\t/>\n\t\t</div>\n\t)\n}\n\n// Create the generic DataTable component with proper forwardRef typing\nexport const DataTable = React.forwardRef(DataTableInner) as <\n\tT extends Record<string, any>,\n>(\n\tprops: DataTableProps<T> & { ref?: React.Ref<DataTableRef<T>> },\n) => React.ReactElement\n\n// Re-export types for convenience\nexport type {\n\tDataTableColumn,\n\tDataTableFilter,\n\tDataTableProps,\n\tDataTableRef,\n} from './types/data-table'\n"],"names":["DataTableRow","row","index","columns","isSelected","rowId","onToggleSelection","allowSelection","visibleColumns","col","jsxs","TableRow","jsx","TableCell","Checkbox","checked","column","value","cn","DataTableInner","data","initialColumns","searchFields","filters","pageSize","className","loading","tools","defaultFilters","ref","searchTerm","setSearchTerm","useState","currentPage","setCurrentPage","activeFilters","setActiveFilters","sortState","setSortState","selectedRows","setSelectedRows","setColumns","refreshKey","setRefreshKey","debouncedSearchTerm","useDebounce","getRowId","processedData","useMemo","result","searchLower","item","field","filterValue","direction","a","b","aValue","bValue","paginationData","totalItems","totalPages","startIndex","endIndex","React","getSelectedItems","useCallback","id","getSelectionCount","selectItems","ids","getFilteredData","resetFilters","exportData","filename","exportToCSV","goToPage","page","refresh","prev","handleFilterChange","clearFilter","newFilters","clearAllFilters","handleSort","toggleColumnVisibility","key","visible","resetColumnVisibility","toggleAllRows","newSelected","toggleRowSelection","newSet","handleExport","handlePreviousPage","handleNextPage","handlePageChange","hasActiveFilters","selectedCount","allRowsSelected","Skeleton","_","TableSkeleton","_a","SearchInput","_b","filter","FilterDropdown","_c","ColumnVisibilityDropdown","_d","Button","FileDown","_e","_f","X","_g","ActiveFilters","SelectionInfo","Table","TableHeader","DataTableHeader","_h","TableBody","PaginationControls","_i","DataTable"],"mappings":"81GAeO,SAASA,GAAgB,CAC/B,IAAAC,EACA,MAAAC,EACA,QAAAC,EACA,WAAAC,EACA,MAAAC,EACA,kBAAAC,EACA,eAAAC,EAAiB,EAClB,EAAyB,CACxB,MAAMC,EAAiBL,EAAQ,OAAQM,GAAQ,CAACA,EAAI,MAAM,EAE1D,OACCC,EAAAA,KAACC,GAAA,CAAS,UAAWP,EAAa,cAAgB,GAEhD,SAAA,CAAAG,GACAK,EAAAA,IAACC,EAAA,CAAU,UAAU,OACpB,SAAAD,EAAAA,IAACE,GAAA,CACA,QAASV,EACT,gBAAkBW,GAAYT,EAAkBD,EAAO,CAAC,CAACU,CAAO,EAChE,aAAY,cAAcb,EAAQ,CAAC,EAAA,CAAA,EAErC,EAIAM,EAAe,IAAKQ,GAAW,CAC/B,MAAMC,EAAQhB,EAAIe,EAAO,GAAG,EAC5B,OACCJ,EAAAA,IAACC,EAAA,CAEA,UAAWK,GACVF,EAAO,QAAU,QAAU,aAAe,GAC1CA,EAAO,QAAU,SAAW,cAAgB,GAC5CA,EAAO,aAAA,EAGP,SAAAA,EAAO,eACLA,EAAO,eAAeC,EAAOhB,CAAG,EAChC,OAAOgB,GAAS,EAAE,CAAA,EAThB,OAAOD,EAAO,GAAG,CAAA,CAUvB,CAED,CAAA,EACF,CAEF,CCjCA,SAASG,GACR,CACC,KAAAC,EACA,QAASC,EACT,aAAAC,EACA,QAAAC,EAAU,CAAA,EACV,SAAAC,EAAW,GACX,UAAAC,EAAY,GACZ,QAAAC,EAAU,GACV,MAAAC,EACA,cAAeC,EAAiB,CAAA,CACjC,EACAC,EACC,4BACD,KAAM,CAACC,EAAYC,CAAa,EAAIC,EAAS,EAAE,EACzC,CAACC,EAAaC,CAAc,EAAIF,EAAS,CAAC,EAC1C,CAACG,EAAeC,CAAgB,EACrCJ,EAAiCJ,CAAc,EAC1C,CAACS,EAAWC,CAAY,EAAIN,EAAoB,CAAE,MAAO,KAAM,UAAW,KAAM,EAChF,CAACO,EAAcC,CAAe,EAAIR,EAAsB,IAAI,GAAK,EACjE,CAAC7B,EAASsC,CAAU,EAAIT,EAASX,CAAc,EAC/C,CAACqB,GAAYC,EAAa,EAAIX,EAAS,CAAC,EAGxCY,EAAsBC,GAAYf,EAAY,GAAI,EAGlDgB,EAAW,CAAC7C,EAAQC,IAClB,OAAOD,EAAI,IAAMA,EAAI,KAAO,OAAOC,CAAK,EAAE,EAI5C6C,EAAgBC,EAAQ,IAAM,CACnC,IAAIC,EAAS7B,EAAK,MAAA,EAGlB,GAAIwB,EAAoB,OAAQ,CAC/B,MAAMM,EAAcN,EAAoB,YAAA,EACxCK,EAASA,EAAO,OAAQE,GACvB7B,EAAa,KAAM8B,GAAU,CAC5B,MAAMnC,EAAQkC,EAAKC,CAAK,EACxB,OAAInC,GAAS,KAAa,GACnB,OAAOA,CAAK,EAAE,YAAA,EAAc,SAASiC,CAAW,CAAA,CACvD,CAAA,CACF,CAcD,GAVA,OAAO,QAAQf,CAAa,EAAE,QAAQ,CAAC,CAACiB,EAAOC,CAAW,IAAM,CAC3DA,GAAeA,IAAgB,QAClCJ,EAASA,EAAO,OAAQE,GAAS,CAChC,MAAMlC,EAAQkC,EAAKC,CAAgB,EACnC,OAAO,OAAOnC,CAAK,IAAMoC,CAAA,CACzB,EACF,CACA,EAGGhB,EAAU,OAASA,EAAU,UAAW,CAC3C,KAAM,CAAE,MAAAe,EAAO,UAAAE,CAAA,EAAcjB,EAC7BY,EAAO,KAAK,CAACM,EAAGC,IAAM,CACrB,MAAMC,EAASF,EAAEH,CAAgB,EAC3BM,EAASF,EAAEJ,CAAgB,EAGjC,OAAIK,GAAU,MAAQC,GAAU,KAAa,EACzCD,GAAU,KAAaH,IAAc,MAAQ,GAAK,EAClDI,GAAU,KAAaJ,IAAc,MAAQ,EAAI,GAGjD,OAAOG,GAAW,UAAY,OAAOC,GAAW,SAC5CJ,IAAc,MAClBG,EAAO,cAAcC,CAAM,EAC3BA,EAAO,cAAcD,CAAM,EAIxBH,IAAc,MACjBG,EAAqBC,EACrBA,EAAqBD,CAAA,CACzB,CAAA,CAGF,OAAOR,CAAA,EACL,CAAC7B,EAAME,EAAcsB,EAAqBT,EAAeE,EAAWK,EAAU,CAAC,EAG5EiB,EAAiBX,EAAQ,IAAM,CACpC,MAAMY,EAAab,EAAc,OAC3Bc,EAAa,KAAK,KAAKD,EAAapC,CAAQ,EAC5CsC,GAAc7B,EAAc,GAAKT,EACjCuC,EAAWD,EAAatC,EAG9B,MAAO,CACN,YAHmBuB,EAAc,MAAMe,EAAYC,CAAQ,EAI3D,WAAAH,EACA,WAAAC,EACA,WAAAC,EACA,SAAU,KAAK,IAAIC,EAAUH,CAAU,CAAA,CACxC,EACE,CAACb,EAAed,EAAaT,CAAQ,CAAC,EAGzCwC,EAAM,UAAU,IAAM,CACrB9B,EAAe,CAAC,CAAA,EACd,CAACU,EAAqBT,EAAeE,CAAS,CAAC,EAGlD,MAAM4B,EAAmBC,EAAY,IAC7BnB,EAAc,OAAO,CAACI,EAAMjD,IAAU,CAC5C,MAAMiE,EAAKrB,EAASK,EAAMjD,CAAK,EAC/B,OAAOqC,EAAa,IAAI4B,CAAE,CAAA,CAC1B,EACC,CAACpB,EAAeR,CAAY,CAAC,EAG1B6B,EAAoBF,EAAY,IAC9B3B,EAAa,KAClB,CAACA,CAAY,CAAC,EAGX8B,EAAcH,EAAaI,GAAkB,CAClD9B,EAAgB,IAAI,IAAI8B,CAAG,CAAC,CAAA,EAC1B,EAAE,EAGCC,EAAkBL,EAAY,IAC5BnB,EACL,CAACA,CAAa,CAAC,EAGZyB,EAAeN,EAAY,IAAM,CACtC9B,EAAiB,CAAA,CAAE,EACnBL,EAAc,EAAE,EAChBO,EAAa,CAAE,MAAO,KAAM,UAAW,KAAM,EAC7CJ,EAAe,CAAC,CAAA,EACd,EAAE,EAGCuC,EAAaP,EAClB,CAACQ,EAAW,iBAAmB,CAC9BC,GAAY5B,EAAe5C,EAASuE,CAAQ,CAAA,EAE7C,CAAC3B,EAAe5C,CAAO,CAAA,EAIlByE,EAAWV,EACfW,GAAiB,CACbA,GAAQ,GAAKA,GAAQlB,EAAe,YACvCzB,EAAe2C,CAAI,CACpB,EAED,CAAClB,EAAe,UAAU,CAAA,EAIrBmB,EAAUZ,EAAY,IAAM,CACjCvB,GAAeoC,GAASA,EAAO,CAAC,CAAA,EAC9B,EAAE,EAGCC,GAAqBd,EAAY,CAACd,EAAenC,IAAkB,CACxEmB,EAAkB2C,IAAU,CAC3B,GAAGA,EACH,CAAC3B,CAAK,EAAGnC,CAAA,EACR,CAAA,EACA,EAAE,EAECgE,GAAcf,EAAad,GAAkB,CAClDhB,EAAkB2C,GAAS,CAC1B,MAAMG,EAAa,CAAE,GAAGH,CAAA,EACxB,cAAOG,EAAW9B,CAAK,EAChB8B,CAAA,CACP,CAAA,EACC,EAAE,EAECC,GAAkBjB,EAAY,IAAM,CACzCM,EAAA,CAAa,EACX,CAACA,CAAY,CAAC,EAGXY,GAAalB,EAAad,GAAkB,CACjDd,EAAcyC,GACTA,EAAK,QAAU3B,EAEd2B,EAAK,YAAc,MAAc,CAAE,MAAA3B,EAAO,UAAW,MAAA,EACrD2B,EAAK,YAAc,OAAe,CAAE,MAAO,KAAM,UAAW,IAAA,EACzD,CAAE,MAAA3B,EAAO,UAAW,KAAA,EAGrB,CAAE,MAAAA,EAAO,UAAW,KAAA,CAC3B,CAAA,EACC,EAAE,EAGCiC,GAAyBnB,EAAY,CAACoB,EAAaC,IAAqB,CAC7E9C,EAAYsC,GACXA,EAAK,IAAKtE,GAAS,OAAOA,EAAI,GAAG,IAAM6E,EAAM,CAAE,GAAG7E,EAAK,OAAQ,CAAC8E,CAAA,EAAY9E,CAAI,CAAA,CACjF,EACE,EAAE,EAEC+E,GAAwBtB,EAAY,IAAM,CAC/CzB,EAAWpB,CAAc,CAAA,EACvB,CAACA,CAAc,CAAC,EAGboE,GAAgBvB,EACpBnD,GAAqB,CACrB,GAAIA,EAAS,CACZ,MAAM2E,MAAkB,IACxB/B,EAAe,YAAY,QAAQ,CAAC1D,EAAKC,IAAU,CAClD,MAAMiE,EAAKrB,EAAS7C,EAAKC,CAAK,EAC9BwF,EAAY,IAAIvB,CAAE,CAAA,CAClB,EACD3B,EAAgBkD,CAAW,CAAA,MAE3BlD,EAAgB,IAAI,GAAK,CAC1B,EAED,CAACmB,EAAe,WAAW,CAAA,EAGtBgC,GAAqBzB,EAAY,CAACC,EAAYpD,IAAqB,CACxEyB,EAAiBuC,GAAS,CACzB,MAAMa,EAAS,IAAI,IAAIb,CAAI,EAC3B,OAAIhE,EACH6E,EAAO,IAAIzB,CAAE,EAEbyB,EAAO,OAAOzB,CAAE,EAEVyB,CAAA,CACP,CAAA,EACC,EAAE,EAGCC,GAAe3B,EAAY,IAAM,CACtCO,EAAA,CAAW,EACT,CAACA,CAAU,CAAC,EAGTqB,GAAqB5B,EAAY,IAAM,CAC5ChC,EAAgB6C,GAAS,KAAK,IAAIA,EAAO,EAAG,CAAC,CAAC,CAAA,EAC5C,EAAE,EAECgB,GAAiB7B,EAAY,IAAM,CACxChC,EAAgB6C,GAAS,KAAK,IAAIA,EAAO,EAAGpB,EAAe,UAAU,CAAC,CAAA,EACpE,CAACA,EAAe,UAAU,CAAC,EAExBqC,GAAmB9B,EACvBW,GAAiB,CACjBD,EAASC,CAAI,CAAA,EAEd,CAACD,CAAQ,CAAA,EAOJqB,EAHoB,OAAO,OAAO9D,CAAa,EAAE,OACrDlB,GAAUA,GAASA,IAAU,KAAA,EAC7B,OAEmB,GAAKa,EAAW,OAAO,OAAS,GAAKO,EAAU,QAAU,KAGxE7B,EAAiBL,EAAQ,OAAQM,GAAQ,CAACA,EAAI,MAAM,EACpDyF,GAAgB3D,EAAa,KAG7B4D,GAAkBnD,EAAQ,IAE9BW,EAAe,YAAY,OAAS,GACpCA,EAAe,YAAY,MAAM,CAAC1D,EAAKC,IAAU,CAChD,MAAMiE,EAAKrB,EAAS7C,EAAKC,CAAK,EAC9B,OAAOqC,EAAa,IAAI4B,CAAE,CAAA,CAC1B,EAEA,CAACR,EAAe,YAAapB,CAAY,CAAC,EA4B7C,OAzBAyB,EAAM,oBACLnC,EACA,KAAO,CACN,iBAAAoC,EACA,eAAgB,IAAMzB,EAAgB,IAAI,GAAK,EAC/C,kBAAA4B,EACA,YAAAC,EACA,gBAAAE,EACA,aAAAC,EACA,WAAAC,EACA,SAAAG,EACA,QAAAE,CAAA,GAED,CACCb,EACAG,EACAC,EACAE,EACAC,EACAC,EACAG,EACAE,CAAA,CACD,EAGGpD,EAEFhB,EAAAA,KAAC,MAAA,CAAI,UAAW,aAAae,CAAS,GACrC,SAAA,CAAAf,EAAAA,KAAC,MAAA,CAAI,UAAU,oCACd,SAAA,CAAAE,EAAAA,IAACwF,EAAA,CAAS,UAAU,sBAAA,CAAuB,EAC1C7E,EAAQ,IAAI,CAAC8E,EAAGnG,UACfkG,EAAA,CAAqB,UAAU,WAAA,EAAjBlG,CAA6B,CAC5C,EACDU,EAAAA,IAACwF,EAAA,CAAS,UAAU,mBAAA,CAAoB,CAAA,EACzC,QACCE,GAAA,CAAc,QAAS9F,EAAe,OAAS,EAAG,KAAMgB,EAAU,EACnEd,EAAAA,KAAC,MAAA,CAAI,UAAU,oCACd,SAAA,CAAAE,EAAAA,IAACwF,EAAA,CAAS,UAAU,UAAA,CAAW,EAC/B1F,EAAAA,KAAC,MAAA,CAAI,UAAU,8BACd,SAAA,CAAAE,EAAAA,IAACwF,EAAA,CAAS,UAAU,UAAA,CAAW,EAC/BxF,EAAAA,IAACwF,EAAA,CAAS,UAAU,SAAA,CAAU,EAC9BxF,EAAAA,IAACwF,EAAA,CAAS,UAAU,SAAA,CAAU,EAC9BxF,EAAAA,IAACwF,EAAA,CAAS,UAAU,SAAA,CAAU,EAC9BxF,EAAAA,IAACwF,EAAA,CAAS,UAAU,UAAA,CAAW,CAAA,CAAA,CAChC,CAAA,CAAA,CACD,CAAA,EACD,EAKD1F,EAAAA,KAAC,MAAA,CAAI,UAAW,aAAae,CAAS,GAErC,SAAA,CAAAf,EAAAA,KAAC,MAAA,CAAI,UAAU,oCACb,SAAA,EAAS6F,EAAA5E,GAAA,YAAAA,EAAO,SAAP,MAAA4E,EAAe,KAMrB,KALH3F,EAAAA,IAAC4F,GAAA,CACA,aAAaC,EAAA9E,GAAA,YAAAA,EAAO,SAAP,YAAA8E,EAAe,YAC5B,MAAO3E,EACP,SAAUC,CAAA,CAAA,EAIXR,EAAQ,IAAKmF,GACb9F,EAAAA,IAAC+F,GAAA,CAEA,OAAAD,EACA,MAAOvE,EAAc,OAAOuE,EAAO,KAAK,CAAC,EACzC,SAAWzF,GAAU+D,GAAmB,OAAO0B,EAAO,KAAK,EAAGzF,CAAK,CAAA,EAH9D,OAAOyF,EAAO,KAAK,CAAA,CAKzB,GAEQE,EAAAjF,GAAA,YAAAA,EAAO,iBAAP,MAAAiF,EAAuB,KAC/BhG,EAAAA,IAACiG,GAAA,CACA,QAAA1G,EACA,mBAAoBkF,GACpB,QAASG,EAAA,CAAA,EAEP,MAEKsB,EAAAnF,GAAA,YAAAA,EAAO,SAAP,MAAAmF,EAAe,YACtBC,GAAA,CAAO,QAAQ,UAAU,QAASlB,GAClC,SAAA,CAAAjF,EAAAA,IAACoG,GAAA,CAAS,UAAU,cAAA,CAAe,IAClCC,GAAAtF,GAAA,YAAAA,EAAO,SAAP,YAAAsF,GAAe,QAAS,YAAA,CAAA,CAC1B,EACG,KAEH,GAASC,GAAAvF,GAAA,YAAAA,EAAO,eAAP,MAAAuF,GAAqB,OAASjB,GACvCvF,EAAAA,KAACqG,GAAA,CAAO,QAAQ,UAAU,QAAS5B,GAClC,SAAA,CAAAvE,EAAAA,IAACuG,GAAA,CAAE,UAAU,cAAA,CAAe,IAC3BC,GAAAzF,GAAA,YAAAA,EAAO,eAAP,YAAAyF,GAAqB,QAAS,WAAA,CAAA,CAChC,CAAA,EAEF,EAGAxG,EAAAA,IAACyG,GAAA,CACA,WAAAvF,EACA,cAAAK,EACA,UAAAE,EACA,QAAAd,EACA,QAAApB,EACA,cAAe,IAAM4B,EAAc,EAAE,EACrC,cAAekD,GACf,YAAa,IAAM3C,EAAa,CAAE,MAAO,KAAM,UAAW,KAAM,CAAA,CAAA,EAIjE1B,EAAAA,IAAC0G,GAAA,CACA,cAAApB,GACA,iBAAkB,IAAM1D,EAAgB,IAAI,GAAK,CAAA,CAAA,EAIlD5B,MAAC,MAAA,CAAI,UAAU,oBACd,gBAAC2G,GAAA,CACA,SAAA,CAAA3G,MAAC4G,GAAA,CACA,SAAA5G,EAAAA,IAAC6G,GAAA,CACA,mBAAoB,GAASC,GAAA/F,GAAA,YAAAA,EAAO,cAAP,MAAA+F,GAAoB,MACjD,QAAAvH,EACA,UAAAkC,EACA,gBAAA8D,GACA,QAASxC,EAAe,YAAY,OAAS,EAC7C,OAAQyB,GACR,gBAAiBK,EAAA,CAAA,EAEnB,QACCkC,GAAA,CACC,SAAAhE,EAAe,YAAY,SAAW,QACrC,KAAA,CACA,SAAA/C,EAAAA,IAACC,EAAA,CACA,QAASL,EAAe,OAAS,EACjC,UAAU,yCAET,WACE,4CACA,oBAAA,CAAA,EAEL,EAEAmD,EAAe,YAAY,IAAI,CAAC1D,EAAKC,IAAU,OAC9C,MAAMG,EAAQyC,EAAS7C,EAAKC,CAAK,EACjC,OACCU,EAAAA,IAACZ,GAAA,CAEA,IAAAC,EACA,MAAAC,EACA,eAAgB,GAASqG,EAAA5E,GAAA,YAAAA,EAAO,cAAP,MAAA4E,EAAoB,MAC7C,QAAApG,EACA,WAAYoC,EAAa,IAAIlC,CAAK,EAClC,MAAAA,EACA,kBAAmBsF,EAAA,EAPdtF,CAAA,CAQN,CAED,CAAA,CAEH,CAAA,CAAA,CACD,CAAA,CACD,EAGAO,EAAAA,IAACgH,GAAA,CACA,YAAA3F,EACA,WAAY0B,EAAe,WAC3B,WAAYA,EAAe,WAC3B,WAAYA,EAAe,WAC3B,SAAUA,EAAe,SACzB,aAAcqC,GACd,eAAgBF,GAChB,WAAYC,GACZ,aAAa8B,GAAAlG,GAAA,YAAAA,EAAO,aAAP,YAAAkG,GAAmB,KAAA,CAAA,CACjC,EACD,CAEF,CAGO,MAAMC,GAAY9D,EAAM,WAAW7C,EAAc"}
@@ -1,2 +0,0 @@
1
- import{j as r}from"../../../assets/jsx-runtime-D_zvdyIk.js";import{S as s}from"../../../components/skeleton/skeleton.js";import{b as t,c as d,T as l,a as n,d as h,e as p}from"../../../components/table/table.js";import"../../../lib/utils/cn.js";import"clsx";import"tailwind-merge";import"date-fns-tz";import"react";function w({columns:a,rows:o=5}){return r.jsx("div",{className:"rounded-md border",children:r.jsxs(t,{children:[r.jsx(d,{children:r.jsx(l,{children:Array.from({length:a}).map((m,e)=>r.jsx(n,{children:r.jsx(s,{className:"h-4 w-20"})},e))})}),r.jsx(h,{children:Array.from({length:o}).map((m,e)=>r.jsx(l,{children:Array.from({length:a}).map((x,i)=>r.jsx(p,{children:r.jsx(s,{className:"h-4 w-full"})},i))},e))})]})})}export{w as T};
2
- //# sourceMappingURL=table-skeleton.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"table-skeleton.js","sources":["../../../../src/blocks/data-table/components/table-skeleton.tsx"],"sourcesContent":["import { Skeleton } from '@/components/skeleton'\nimport {\n\tTable,\n\tTableBody,\n\tTableCell,\n\tTableHead,\n\tTableHeader,\n\tTableRow,\n} from '@/components/table'\n\ninterface TableSkeletonProps {\n\tcolumns: number\n\trows?: number\n}\n\nexport function TableSkeleton({ columns, rows = 5 }: TableSkeletonProps) {\n\treturn (\n\t\t<div className=\"rounded-md border\">\n\t\t\t<Table>\n\t\t\t\t<TableHeader>\n\t\t\t\t\t<TableRow>\n\t\t\t\t\t\t{Array.from({ length: columns }).map((_, i) => (\n\t\t\t\t\t\t\t<TableHead key={i}>\n\t\t\t\t\t\t\t\t<Skeleton className=\"h-4 w-20\" />\n\t\t\t\t\t\t\t</TableHead>\n\t\t\t\t\t\t))}\n\t\t\t\t\t</TableRow>\n\t\t\t\t</TableHeader>\n\t\t\t\t<TableBody>\n\t\t\t\t\t{Array.from({ length: rows }).map((_, rowIndex) => (\n\t\t\t\t\t\t<TableRow key={rowIndex}>\n\t\t\t\t\t\t\t{Array.from({ length: columns }).map((_, colIndex) => (\n\t\t\t\t\t\t\t\t<TableCell key={colIndex}>\n\t\t\t\t\t\t\t\t\t<Skeleton className=\"h-4 w-full\" />\n\t\t\t\t\t\t\t\t</TableCell>\n\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t</TableRow>\n\t\t\t\t\t))}\n\t\t\t\t</TableBody>\n\t\t\t</Table>\n\t\t</div>\n\t)\n}\n"],"names":["TableSkeleton","columns","rows","jsx","Table","TableHeader","TableRow","_","i","TableHead","Skeleton","TableBody","rowIndex","colIndex","TableCell"],"mappings":"0TAeO,SAASA,EAAc,CAAE,QAAAC,EAAS,KAAAC,EAAO,GAAyB,CACxE,OACCC,EAAAA,IAAC,MAAA,CAAI,UAAU,oBACd,gBAACC,EAAA,CACA,SAAA,CAAAD,EAAAA,IAACE,EAAA,CACA,SAAAF,EAAAA,IAACG,EAAA,CACC,SAAA,MAAM,KAAK,CAAE,OAAQL,CAAA,CAAS,EAAE,IAAI,CAACM,EAAGC,IACxCL,EAAAA,IAACM,EAAA,CACA,SAAAN,EAAAA,IAACO,EAAA,CAAS,UAAU,WAAW,CAAA,EADhBF,CAEhB,CACA,CAAA,CACF,CAAA,CACD,QACCG,EAAA,CACC,SAAA,MAAM,KAAK,CAAE,OAAQT,EAAM,EAAE,IAAI,CAACK,EAAGK,UACpCN,EAAA,CACC,SAAA,MAAM,KAAK,CAAE,OAAQL,EAAS,EAAE,IAAI,CAACM,EAAGM,UACvCC,EAAA,CACA,SAAAX,EAAAA,IAACO,EAAA,CAAS,UAAU,aAAa,CAAA,EADlBG,CAEhB,CACA,CAAA,EALaD,CAMf,CACA,CAAA,CACF,CAAA,CAAA,CACD,CAAA,CACD,CAEF"}
@@ -1,2 +0,0 @@
1
- import"../../assets/jsx-runtime-D_zvdyIk.js";import"../../components/button/button.js";import"../../components/table/table.js";import"lucide-react";import"react";import"./components/active-filters.js";import"./components/column-visibility-dropdown.js";import"./components/filter-dropdown.js";import"./components/search-input.js";import"./components/selection-info.js";import"./components/table-header.js";import{D as Bo}from"./components/table-row.js";import"./components/table-skeleton.js";import"./utils/export.js";import"../../components/accordion/accordion.js";import"../../components/adaptive-input/adaptive-input.js";import"../../components/alert-dialog/alert-dialog.js";import"../../components/autocomplete/autocomplete.js";import"../../components/avatar/avatar.js";import"../../components/badge/badge.js";import"date-fns";import"../../components/card/card.js";import"../../components/checkbox/checkbox.js";import"../../components/command/command.js";import"../../components/currency-input/currency-input.js";import"../../components/dialog/dialog.js";import"../../components/dropdown-menu/dropdown-menu.js";import"../../components/input/input.js";import"../../components/label/label.js";import"../../components/multi-select/multi-select.js";import"../../components/navigation-menu/navigation-menu.js";import"../../components/pagination/pagination.js";import"../../components/progress/progress.js";import"../../components/popover/popover.js";import"../../components/radio-group/radio-group.js";import"../../components/select/select.js";import"../../components/separator/separator.js";import"../../components/skeleton/skeleton.js";import"../../components/spinner/spinner.js";import"../../components/switch/switch.js";import"../../components/tabs/tabs.js";import"../../components/textarea/textarea.js";import"../../components/toaster/toast.js";import"sonner";import"../../components/toggle/toggle.js";import"../../components/toggle-group/toggle-group.js";import"../../components/tooltip/tooltip.js";import"../../lib/hooks/use-debounce.js";import"../../lib/hooks/use-dialog.js";import"compressorjs";import"../pagination-controls/pagination-controls.js";import"../../lib/utils/cn.js";import"clsx";import"tailwind-merge";import"date-fns-tz";import"../../lib/utils/merge-objects.js";import"@radix-ui/react-slot";import"cva-extended";import"../../components/button/button.types.js";import"class-variance-authority";import"@radix-ui/react-dropdown-menu";import"@radix-ui/react-select";import"@radix-ui/react-checkbox";/* empty css */import"@radix-ui/react-accordion";import"@radix-ui/react-alert-dialog";import"../../lib/utils/string.js";import"@radix-ui/react-avatar";import"cmdk";import"@radix-ui/react-dialog";import"@radix-ui/react-label";import"@radix-ui/react-popover";import"@radix-ui/react-separator";import"@radix-ui/react-navigation-menu";import"@radix-ui/react-progress";import"@radix-ui/react-radio-group";import"@radix-ui/react-switch";import"@radix-ui/react-tabs";import"@radix-ui/react-toggle";import"@radix-ui/react-toggle-group";import"@radix-ui/react-tooltip";export{Bo as DataTable};
2
- //# sourceMappingURL=data-table.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"data-table.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -1,2 +0,0 @@
1
- import{j as e}from"../../assets/jsx-runtime-D_zvdyIk.js";import{useState as d,useRef as S}from"react";import{D as k}from"./components/table-row.js";import{B as R}from"../../components/badge/badge.js";import{B as s}from"../../components/button/button.js";import{Trash2 as p,RefreshCw as w,Mail as y,Phone as D,Edit as C}from"lucide-react";import{t as u}from"../../components/toaster/toast.js";import"sonner";import"../../components/table/table.js";import"../../lib/utils/cn.js";import"clsx";import"tailwind-merge";import"date-fns-tz";import"./components/active-filters.js";import"class-variance-authority";import"./components/column-visibility-dropdown.js";import"../../components/dropdown-menu/dropdown-menu.js";import"@radix-ui/react-dropdown-menu";import"../../lib/utils/merge-objects.js";import"@radix-ui/react-slot";import"cva-extended";import"../../components/button/button.types.js";import"./components/filter-dropdown.js";import"../../components/select/select.js";import"@radix-ui/react-select";import"./components/search-input.js";import"../../components/input/input.js";import"./components/selection-info.js";import"./components/table-header.js";import"../../components/checkbox/checkbox.js";import"@radix-ui/react-checkbox";import"./components/table-skeleton.js";import"../../components/skeleton/skeleton.js";import"./utils/export.js";import"../../components/accordion/accordion.js";import"@radix-ui/react-accordion";import"../../components/adaptive-input/adaptive-input.js";import"../../components/alert-dialog/alert-dialog.js";import"@radix-ui/react-alert-dialog";import"../../components/autocomplete/autocomplete.js";import"../../lib/utils/string.js";import"../../components/avatar/avatar.js";import"@radix-ui/react-avatar";import"date-fns";import"../../components/card/card.js";import"../../components/command/command.js";import"cmdk";import"../../components/dialog/dialog.js";import"@radix-ui/react-dialog";import"../../components/currency-input/currency-input.js";import"../../components/label/label.js";import"@radix-ui/react-label";import"../../components/multi-select/multi-select.js";import"../../components/popover/popover.js";import"@radix-ui/react-popover";import"../../components/separator/separator.js";import"@radix-ui/react-separator";import"../../components/navigation-menu/navigation-menu.js";import"@radix-ui/react-navigation-menu";import"../../components/pagination/pagination.js";import"../../components/progress/progress.js";import"@radix-ui/react-progress";import"../../components/radio-group/radio-group.js";import"@radix-ui/react-radio-group";import"../../components/spinner/spinner.js";import"../../components/switch/switch.js";import"@radix-ui/react-switch";import"../../components/tabs/tabs.js";import"@radix-ui/react-tabs";import"../../components/textarea/textarea.js";import"../../components/toggle/toggle.js";import"@radix-ui/react-toggle";import"../../components/toggle-group/toggle-group.js";import"@radix-ui/react-toggle-group";import"../../components/tooltip/tooltip.js";import"@radix-ui/react-tooltip";import"../../lib/hooks/use-debounce.js";import"../../lib/hooks/use-dialog.js";import"compressorjs";import"../pagination-controls/pagination-controls.js";/* empty css */const h=Array.from({length:150},(l,r)=>({id:r+1,name:`User ${r+1}`,email:`user${r+1}@example.com`,phone:`+1 (555) ${String(Math.floor(Math.random()*900)+100)}-${String(Math.floor(Math.random()*9e3)+1e3)}`,status:["active","inactive","pending"][Math.floor(Math.random()*3)],role:["Admin","User","Manager","Editor"][Math.floor(Math.random()*4)],department:["Engineering","Marketing","Sales","HR","Finance"][Math.floor(Math.random()*5)],joinDate:new Date(2020+Math.floor(Math.random()*4),Math.floor(Math.random()*12),Math.floor(Math.random()*28)+1).toISOString().split("T")[0]})),I=()=>{const[l,r]=d(!1),[f,n]=d(h),[m,x]=d(0),a=S(null),g=()=>{r(!0),setTimeout(()=>{n([...h].sort(()=>Math.random()-.5)),r(!1)},2e3)},v=()=>{if(!a.current)return;const t=a.current.getSelectedItems();if(t.length===0)return;const i=t.map(o=>o.id);n(o=>o.filter(c=>!i.includes(c.id))),a.current.clearSelection(),u.success(`Successfully removed ${t.length} users from the table.`)},b=[{key:"id",title:"ID",sortable:!0},{key:"name",title:"Name",sortable:!0,customRenderer:(t,i)=>e.jsx("div",{className:"font-medium",children:t})},{key:"email",title:"Email",sortable:!0,customRenderer:t=>e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(y,{className:"h-4 w-4 text-muted-foreground"}),e.jsx("span",{className:"text-sm",children:t})]})},{key:"phone",title:"Phone",customRenderer:t=>e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(D,{className:"h-4 w-4 text-muted-foreground"}),e.jsx("span",{className:"text-sm font-mono",children:t})]})},{key:"status",title:"Status",sortable:!0,customRenderer:t=>e.jsx(R,{variant:t==="active"?"default":t==="inactive"?"destructive":"secondary",children:t})},{key:"role",title:"Role",sortable:!0},{key:"department",title:"Department",sortable:!0},{key:"joinDate",title:"Join Date",sortable:!0,align:"right",headerClassName:"bg-muted-foreground/10",customRenderer:t=>e.jsx("span",{className:"text-sm text-muted-foreground",children:new Date(t).toLocaleDateString()})},{key:"id",title:"Actions",width:"100px",customRenderer:(t,i)=>e.jsxs("div",{className:"flex gap-2",children:[e.jsx(s,{variant:"ghost",size:"sm",children:e.jsx(C,{className:"h-4 w-4"})}),e.jsx(s,{variant:"ghost",size:"sm",className:"text-destructive hover:text-destructive",onClick:()=>{n(o=>o.filter(c=>c.id!==i.id)),u.success(`User ${i.name} has been removed.`)},children:e.jsx(p,{className:"h-4 w-4"})})]})}],j=[{field:"status",label:"Status",options:[{label:"Active",value:"active"},{label:"Inactive",value:"inactive"},{label:"Pending",value:"pending"}]},{field:"role",label:"Role",options:[{label:"Admin",value:"Admin"},{label:"User",value:"User"},{label:"Manager",value:"Manager"},{label:"Editor",value:"Editor"}]},{field:"department",label:"Department",options:[{label:"Engineering",value:"Engineering"},{label:"Marketing",value:"Marketing"},{label:"Sales",value:"Sales"},{label:"HR",value:"HR"},{label:"Finance",value:"Finance"}]}],M=["name","email","role","department"],N=()=>{if(a.current){const t=a.current.getSelectedItems();x(t.length)}};return e.jsxs("div",{className:"container mx-auto py-8",children:[e.jsxs("div",{className:"mb-6 flex flex-wrap items-center justify-between gap-4",children:[e.jsxs("div",{children:[e.jsx("h1",{className:"text-3xl font-bold",children:"User Management"}),e.jsx("p",{className:"text-muted-foreground",children:"Manage your users with advanced table features."})]}),e.jsxs("div",{className:"flex gap-2",children:[e.jsxs(s,{onClick:N,variant:"outline",children:["Check Selection (",m,")"]}),m>0&&e.jsxs(s,{variant:"destructive",onClick:v,children:[e.jsx(p,{className:"h-4 w-4 mr-2"}),"Delete Selected (",m,")"]}),e.jsxs(s,{onClick:g,disabled:l,variant:"outline",children:[e.jsx(w,{className:`h-4 w-4 mr-2 ${l?"animate-spin":""}`}),"Refresh"]})]})]}),e.jsx(k,{ref:a,data:f,columns:b,searchFields:M,filters:j,activeFilters:{status:"active",role:"User"},pageSize:10,className:"w-full",loading:l,tools:{rowSelector:{hide:!0},search:{placeholder:"Search something..."},pagination:{label:"Displaying now {{startIndex}} to {{endIndex}} of total {{totalItems}} items"}}})]})};I.bind({});
2
- //# sourceMappingURL=data-table.stories.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"data-table.stories.js","sources":["../../../src/blocks/data-table/data-table.stories.tsx"],"sourcesContent":["// organize-imports-ignore\nimport React from 'react'\nimport type { Meta, StoryObj } from '@storybook/react'\nimport { useState, useRef } from 'react'\nimport { DataTable, type DataTableColumn, type DataTableFilter } from './data-table'\nimport { Badge } from '../../components/badge'\nimport { Button } from '../../components/button'\nimport { Mail, Phone, Edit, RefreshCw, Trash2 } from 'lucide-react'\nimport { toast } from '../../components/toaster'\n\nconst meta: Meta<typeof DataTable> = {\n\tcomponent: DataTable,\n}\n\nexport default meta\ntype Story = StoryObj<typeof DataTable>\n\n// Example data type\ninterface User {\n\tid: number\n\tname: string\n\temail: string\n\tphone: string\n\tstatus: 'active' | 'inactive' | 'pending'\n\trole: string\n\tdepartment: string\n\tjoinDate: string\n}\n\n// Mock data\nconst mockUsers: User[] = Array.from({ length: 150 }, (_, i) => ({\n\tid: i + 1,\n\tname: `User ${i + 1}`,\n\temail: `user${i + 1}@example.com`,\n\tphone: `+1 (555) ${String(Math.floor(Math.random() * 900) + 100)}-${String(Math.floor(Math.random() * 9000) + 1000)}`,\n\tstatus: ['active', 'inactive', 'pending'][Math.floor(Math.random() * 3)] as\n\t\t| 'active'\n\t\t| 'inactive'\n\t\t| 'pending',\n\trole: ['Admin', 'User', 'Manager', 'Editor'][Math.floor(Math.random() * 4)],\n\tdepartment: ['Engineering', 'Marketing', 'Sales', 'HR', 'Finance'][\n\t\tMath.floor(Math.random() * 5)\n\t],\n\tjoinDate: new Date(\n\t\t2020 + Math.floor(Math.random() * 4),\n\t\tMath.floor(Math.random() * 12),\n\t\tMath.floor(Math.random() * 28) + 1,\n\t)\n\t\t.toISOString()\n\t\t.split('T')[0],\n}))\n\nconst Template = () => {\n\tconst [loading, setLoading] = useState(false)\n\tconst [data, setData] = useState(mockUsers)\n\tconst [selectedCount, setSelectedCount] = useState(0)\n\tconst tableRef = useRef<any>(null)\n\n\t// Simulate loading\n\tconst handleRefresh = () => {\n\t\tsetLoading(true)\n\t\tsetTimeout(() => {\n\t\t\tsetData([...mockUsers].sort(() => Math.random() - 0.5)) // Shuffle data\n\t\t\tsetLoading(false)\n\t\t}, 2000)\n\t}\n\n\t// Handle bulk delete - manual approach\n\tconst handleBulkDelete = () => {\n\t\tif (!tableRef.current) return\n\n\t\tconst selectedItems = tableRef.current.getSelectedItems()\n\t\tif (selectedItems.length === 0) return\n\n\t\tconst selectedIds = selectedItems.map((row: User) => row.id)\n\t\tsetData((prev) => prev.filter((user) => !selectedIds.includes(user.id)))\n\n\t\t// Clear selection after delete\n\t\ttableRef.current.clearSelection()\n\n\t\ttoast.success(`Successfully removed ${selectedItems.length} users from the table.`)\n\t}\n\n\t// Define columns with custom renderers\n\tconst columns: DataTableColumn<User>[] = [\n\t\t{\n\t\t\tkey: 'id',\n\t\t\ttitle: 'ID',\n\t\t\tsortable: true,\n\t\t},\n\t\t{\n\t\t\tkey: 'name',\n\t\t\ttitle: 'Name',\n\t\t\tsortable: true,\n\t\t\tcustomRenderer: (value, row) => <div className=\"font-medium\">{value}</div>,\n\t\t},\n\t\t{\n\t\t\tkey: 'email',\n\t\t\ttitle: 'Email',\n\t\t\tsortable: true,\n\t\t\tcustomRenderer: (value) => (\n\t\t\t\t<div className=\"flex items-center gap-2\">\n\t\t\t\t\t<Mail className=\"h-4 w-4 text-muted-foreground\" />\n\t\t\t\t\t<span className=\"text-sm\">{value}</span>\n\t\t\t\t</div>\n\t\t\t),\n\t\t},\n\t\t{\n\t\t\tkey: 'phone',\n\t\t\ttitle: 'Phone',\n\t\t\tcustomRenderer: (value) => (\n\t\t\t\t<div className=\"flex items-center gap-2\">\n\t\t\t\t\t<Phone className=\"h-4 w-4 text-muted-foreground\" />\n\t\t\t\t\t<span className=\"text-sm font-mono\">{value}</span>\n\t\t\t\t</div>\n\t\t\t),\n\t\t},\n\t\t{\n\t\t\tkey: 'status',\n\t\t\ttitle: 'Status',\n\t\t\tsortable: true,\n\t\t\tcustomRenderer: (value) => (\n\t\t\t\t<Badge\n\t\t\t\t\tvariant={\n\t\t\t\t\t\tvalue === 'active'\n\t\t\t\t\t\t\t? 'default'\n\t\t\t\t\t\t\t: value === 'inactive'\n\t\t\t\t\t\t\t\t? 'destructive'\n\t\t\t\t\t\t\t\t: 'secondary'\n\t\t\t\t\t}\n\t\t\t\t>\n\t\t\t\t\t{value}\n\t\t\t\t</Badge>\n\t\t\t),\n\t\t},\n\t\t{\n\t\t\tkey: 'role',\n\t\t\ttitle: 'Role',\n\t\t\tsortable: true,\n\t\t},\n\t\t{\n\t\t\tkey: 'department',\n\t\t\ttitle: 'Department',\n\t\t\tsortable: true,\n\t\t},\n\t\t{\n\t\t\tkey: 'joinDate',\n\t\t\ttitle: 'Join Date',\n\t\t\tsortable: true,\n\t\t\talign: 'right',\n\t\t\theaderClassName: 'bg-muted-foreground/10',\n\t\t\tcustomRenderer: (value) => (\n\t\t\t\t<span className=\"text-sm text-muted-foreground\">\n\t\t\t\t\t{new Date(value).toLocaleDateString()}\n\t\t\t\t</span>\n\t\t\t),\n\t\t},\n\t\t{\n\t\t\tkey: 'id',\n\t\t\ttitle: 'Actions',\n\t\t\twidth: '100px',\n\t\t\tcustomRenderer: (_, row) => (\n\t\t\t\t<div className=\"flex gap-2\">\n\t\t\t\t\t<Button variant=\"ghost\" size=\"sm\">\n\t\t\t\t\t\t<Edit className=\"h-4 w-4\" />\n\t\t\t\t\t</Button>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tvariant=\"ghost\"\n\t\t\t\t\t\tsize=\"sm\"\n\t\t\t\t\t\tclassName=\"text-destructive hover:text-destructive\"\n\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\tsetData((prev) => prev.filter((user) => user.id !== row.id))\n\t\t\t\t\t\t\ttoast.success(`User ${row.name} has been removed.`)\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t<Trash2 className=\"h-4 w-4\" />\n\t\t\t\t\t</Button>\n\t\t\t\t</div>\n\t\t\t),\n\t\t},\n\t]\n\n\t// Define filters\n\tconst filters: DataTableFilter<User>[] = [\n\t\t{\n\t\t\tfield: 'status',\n\t\t\tlabel: 'Status',\n\n\t\t\toptions: [\n\t\t\t\t{ label: 'Active', value: 'active' },\n\t\t\t\t{ label: 'Inactive', value: 'inactive' },\n\t\t\t\t{ label: 'Pending', value: 'pending' },\n\t\t\t],\n\t\t},\n\t\t{\n\t\t\tfield: 'role',\n\t\t\tlabel: 'Role',\n\t\t\toptions: [\n\t\t\t\t{ label: 'Admin', value: 'Admin' },\n\t\t\t\t{ label: 'User', value: 'User' },\n\t\t\t\t{ label: 'Manager', value: 'Manager' },\n\t\t\t\t{ label: 'Editor', value: 'Editor' },\n\t\t\t],\n\t\t},\n\t\t{\n\t\t\tfield: 'department',\n\t\t\tlabel: 'Department',\n\t\t\toptions: [\n\t\t\t\t{ label: 'Engineering', value: 'Engineering' },\n\t\t\t\t{ label: 'Marketing', value: 'Marketing' },\n\t\t\t\t{ label: 'Sales', value: 'Sales' },\n\t\t\t\t{ label: 'HR', value: 'HR' },\n\t\t\t\t{ label: 'Finance', value: 'Finance' },\n\t\t\t],\n\t\t},\n\t]\n\n\t// Define which fields to search\n\tconst searchFields: (keyof User)[] = ['name', 'email', 'role', 'department']\n\n\t// Get selected count manually when needed\n\tconst updateSelectedCount = () => {\n\t\tif (tableRef.current) {\n\t\t\tconst selected = tableRef.current.getSelectedItems()\n\t\t\tsetSelectedCount(selected.length)\n\t\t}\n\t}\n\n\treturn (\n\t\t<div className=\"container mx-auto py-8\">\n\t\t\t<div className=\"mb-6 flex flex-wrap items-center justify-between gap-4\">\n\t\t\t\t<div>\n\t\t\t\t\t<h1 className=\"text-3xl font-bold\">User Management</h1>\n\t\t\t\t\t<p className=\"text-muted-foreground\">\n\t\t\t\t\t\tManage your users with advanced table features.\n\t\t\t\t\t</p>\n\t\t\t\t</div>\n\t\t\t\t<div className=\"flex gap-2\">\n\t\t\t\t\t<Button onClick={updateSelectedCount} variant=\"outline\">\n\t\t\t\t\t\tCheck Selection ({selectedCount})\n\t\t\t\t\t</Button>\n\t\t\t\t\t{selectedCount > 0 && (\n\t\t\t\t\t\t<Button variant=\"destructive\" onClick={handleBulkDelete}>\n\t\t\t\t\t\t\t<Trash2 className=\"h-4 w-4 mr-2\" />\n\t\t\t\t\t\t\tDelete Selected ({selectedCount})\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t)}\n\t\t\t\t\t<Button onClick={handleRefresh} disabled={loading} variant=\"outline\">\n\t\t\t\t\t\t<RefreshCw className={`h-4 w-4 mr-2 ${loading ? 'animate-spin' : ''}`} />\n\t\t\t\t\t\tRefresh\n\t\t\t\t\t</Button>\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t\t<DataTable<User>\n\t\t\t\tref={tableRef}\n\t\t\t\tdata={data}\n\t\t\t\tcolumns={columns}\n\t\t\t\tsearchFields={searchFields}\n\t\t\t\tfilters={filters}\n\t\t\t\tactiveFilters={{ status: 'active', role: 'User' }}\n\t\t\t\tpageSize={10}\n\t\t\t\tclassName=\"w-full\"\n\t\t\t\tloading={loading}\n\t\t\t\ttools={{\n\t\t\t\t\trowSelector: {\n\t\t\t\t\t\thide: true,\n\t\t\t\t\t},\n\t\t\t\t\tsearch: {\n\t\t\t\t\t\tplaceholder: 'Search something...',\n\t\t\t\t\t},\n\t\t\t\t\tpagination: {\n\t\t\t\t\t\tlabel:\n\t\t\t\t\t\t\t'Displaying now {{startIndex}} to {{endIndex}} of total {{totalItems}} items',\n\t\t\t\t\t},\n\t\t\t\t}}\n\t\t\t/>\n\t\t</div>\n\t)\n}\n\nexport const Default: Story = {\n\trender: Template.bind({}),\n\targs: {},\n}\n"],"names":["mockUsers","_","i","Template","loading","setLoading","useState","data","setData","selectedCount","setSelectedCount","tableRef","useRef","handleRefresh","handleBulkDelete","selectedItems","selectedIds","row","prev","user","toast","columns","value","jsxs","jsx","Mail","Phone","Badge","Button","Edit","Trash2","filters","searchFields","updateSelectedCount","selected","RefreshCw","DataTable"],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- import"./components/table-row.js";import"../../assets/jsx-runtime-D_zvdyIk.js";import"../../components/button/button.js";import"../../lib/utils/cn.js";import"clsx";import"tailwind-merge";import"date-fns-tz";import"../../lib/utils/merge-objects.js";import"@radix-ui/react-slot";import"cva-extended";import"react";import"../../components/button/button.types.js";import"../../components/table/table.js";import"lucide-react";import"./components/active-filters.js";import"../../components/badge/badge.js";import"class-variance-authority";import"./components/column-visibility-dropdown.js";import"../../components/dropdown-menu/dropdown-menu.js";import"@radix-ui/react-dropdown-menu";import"./components/filter-dropdown.js";import"../../components/select/select.js";import"@radix-ui/react-select";import"./components/search-input.js";import"../../components/input/input.js";import"./components/selection-info.js";import"./components/table-header.js";import"../../components/checkbox/checkbox.js";import"@radix-ui/react-checkbox";import"./components/table-skeleton.js";import"../../components/skeleton/skeleton.js";import"./utils/export.js";import"../../components/accordion/accordion.js";import"@radix-ui/react-accordion";import"../../components/adaptive-input/adaptive-input.js";import"../../components/alert-dialog/alert-dialog.js";import"@radix-ui/react-alert-dialog";import"../../components/autocomplete/autocomplete.js";import"../../lib/utils/string.js";import"../../components/avatar/avatar.js";import"@radix-ui/react-avatar";import"date-fns";import"../../components/card/card.js";import"../../components/command/command.js";import"cmdk";import"../../components/dialog/dialog.js";import"@radix-ui/react-dialog";import"../../components/currency-input/currency-input.js";import"../../components/label/label.js";import"@radix-ui/react-label";import"../../components/multi-select/multi-select.js";import"../../components/popover/popover.js";import"@radix-ui/react-popover";import"../../components/separator/separator.js";import"@radix-ui/react-separator";import"../../components/navigation-menu/navigation-menu.js";import"@radix-ui/react-navigation-menu";import"../../components/pagination/pagination.js";import"../../components/progress/progress.js";import"@radix-ui/react-progress";import"../../components/radio-group/radio-group.js";import"@radix-ui/react-radio-group";import"../../components/spinner/spinner.js";import"../../components/switch/switch.js";import"@radix-ui/react-switch";import"../../components/tabs/tabs.js";import"@radix-ui/react-tabs";import"../../components/textarea/textarea.js";import"../../components/toaster/toast.js";import"sonner";import"../../components/toggle/toggle.js";import"@radix-ui/react-toggle";import"../../components/toggle-group/toggle-group.js";import"@radix-ui/react-toggle-group";import"../../components/tooltip/tooltip.js";import"@radix-ui/react-tooltip";import"../../lib/hooks/use-debounce.js";import"../../lib/hooks/use-dialog.js";import"compressorjs";import"../pagination-controls/pagination-controls.js";/* empty css */
2
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -1,2 +0,0 @@
1
-
2
- //# sourceMappingURL=data-table.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"data-table.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -1,3 +0,0 @@
1
- function m(i,c,s){const o=c.filter(t=>!t.hidden),l=o.map(t=>t.title),d=i.map(t=>o.map(b=>{const n=t[b.key];return n!=null?String(n):""})),r=[l.join(","),...d.map(t=>t.join(","))].join(`
2
- `),a=new Blob([r],{type:"text/csv;charset=utf-8;"}),u=URL.createObjectURL(a),e=document.createElement("a");e.setAttribute("href",u),e.setAttribute("download",`${s}.csv`),e.style.visibility="hidden",document.body.appendChild(e),e.click(),document.body.removeChild(e)}export{m as e};
3
- //# sourceMappingURL=export.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"export.js","sources":["../../../../src/blocks/data-table/utils/export.ts"],"sourcesContent":["import type { DataTableColumn } from '../types/data-table'\n\nexport function exportToCSV<T>(\n\tdata: T[],\n\tcolumns: DataTableColumn<T>[],\n\tfilename: string,\n) {\n\t// Get visible columns\n\tconst visibleColumns = columns.filter((col) => !col.hidden)\n\n\t// Create header row\n\tconst header = visibleColumns.map((col) => col.title)\n\n\t// Create data rows\n\tconst rows = data.map((item) =>\n\t\tvisibleColumns.map((col) => {\n\t\t\tconst value = item[col.key]\n\t\t\treturn value !== null && value !== undefined ? String(value) : ''\n\t\t}),\n\t)\n\n\t// Combine header and rows\n\tconst csvContent = [header.join(','), ...rows.map((row) => row.join(','))].join('\\n')\n\n\t// Create download link\n\tconst blob = new Blob([csvContent], { type: 'text/csv;charset=utf-8;' })\n\tconst url = URL.createObjectURL(blob)\n\tconst link = document.createElement('a')\n\tlink.setAttribute('href', url)\n\tlink.setAttribute('download', `${filename}.csv`)\n\tlink.style.visibility = 'hidden'\n\tdocument.body.appendChild(link)\n\tlink.click()\n\tdocument.body.removeChild(link)\n}\n"],"names":["exportToCSV","data","columns","filename","visibleColumns","col","header","rows","item","value","csvContent","row","blob","url","link"],"mappings":"AAEO,SAASA,EACfC,EACAC,EACAC,EACC,CAED,MAAMC,EAAiBF,EAAQ,OAAQG,GAAQ,CAACA,EAAI,MAAM,EAGpDC,EAASF,EAAe,IAAKC,GAAQA,EAAI,KAAK,EAG9CE,EAAON,EAAK,IAAKO,GACtBJ,EAAe,IAAKC,GAAQ,CAC3B,MAAMI,EAAQD,EAAKH,EAAI,GAAG,EAC1B,OAAOI,GAAU,KAA8B,OAAOA,CAAK,EAAI,EAAA,CAC/D,CAAA,EAIIC,EAAa,CAACJ,EAAO,KAAK,GAAG,EAAG,GAAGC,EAAK,IAAKI,GAAQA,EAAI,KAAK,GAAG,CAAC,CAAC,EAAE,KAAK;AAAA,CAAI,EAG9EC,EAAO,IAAI,KAAK,CAACF,CAAU,EAAG,CAAE,KAAM,0BAA2B,EACjEG,EAAM,IAAI,gBAAgBD,CAAI,EAC9BE,EAAO,SAAS,cAAc,GAAG,EACvCA,EAAK,aAAa,OAAQD,CAAG,EAC7BC,EAAK,aAAa,WAAY,GAAGX,CAAQ,MAAM,EAC/CW,EAAK,MAAM,WAAa,SACxB,SAAS,KAAK,YAAYA,CAAI,EAC9BA,EAAK,MAAA,EACL,SAAS,KAAK,YAAYA,CAAI,CAC/B"}
@@ -1,2 +0,0 @@
1
- import{j as t}from"../../assets/jsx-runtime-D_zvdyIk.js";import{c as i}from"../../lib/utils/cn.js";import"date-fns-tz";import{CircleOff as n}from"lucide-react";import"clsx";import"tailwind-merge";const f=s=>{const{notFoundText:r,notFoundAction:e,icon:o,className:m}=s;return t.jsxs("div",{className:i("flex flex-col gap-4 items-center bg-gray-200 rounded-lg p-6 justify-center",m),children:[o||t.jsx(n,{size:45}),t.jsxs("div",{className:"text-lg font-medium m-0",children:[r,e||null]})]})};export{f as E};
2
- //# sourceMappingURL=empty-message.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"empty-message.js","sources":["../../../src/blocks/empty-message/empty-message.tsx"],"sourcesContent":["import { cn } from '@/lib/utils'\nimport { CircleOff } from 'lucide-react'\nimport { ReactElement, ReactNode } from 'react'\n\ntype EmptyItemsProps = {\n\tnotFoundText: string\n\tnotFoundAction?: ReactElement\n\ticon?: ReactNode\n\tclassName?: string\n}\n\nexport const EmptyItems = (props: EmptyItemsProps) => {\n\tconst { notFoundText, notFoundAction, icon, className } = props\n\n\treturn (\n\t\t<div\n\t\t\tclassName={cn(\n\t\t\t\t'flex flex-col gap-4 items-center bg-gray-200 rounded-lg p-6 justify-center',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t>\n\t\t\t{icon ? icon : <CircleOff size={45} />}\n\t\t\t<div className=\"text-lg font-medium m-0\">\n\t\t\t\t{notFoundText}\n\t\t\t\t{notFoundAction ? notFoundAction : null}\n\t\t\t</div>\n\t\t</div>\n\t)\n}\n"],"names":["EmptyItems","props","notFoundText","notFoundAction","icon","className","jsxs","cn","jsx","CircleOff"],"mappings":"oMAWO,MAAMA,EAAcC,GAA2B,CACrD,KAAM,CAAE,aAAAC,EAAc,eAAAC,EAAgB,KAAAC,EAAM,UAAAC,GAAcJ,EAE1D,OACCK,EAAAA,KAAC,MAAA,CACA,UAAWC,EACV,6EACAF,CAAA,EAGA,SAAA,CAAAD,GAAcI,EAAAA,IAACC,EAAA,CAAU,KAAM,GAAI,EACpCH,EAAAA,KAAC,MAAA,CAAI,UAAU,0BACb,SAAA,CAAAJ,EACAC,GAAkC,IAAA,CAAA,CACpC,CAAA,CAAA,CAAA,CAGH"}
@@ -1,2 +0,0 @@
1
- import{j as t}from"../../assets/jsx-runtime-D_zvdyIk.js";import{E as o}from"./empty-message.js";import"../../lib/utils/cn.js";import"clsx";import"tailwind-merge";import"date-fns-tz";import"lucide-react";const r=()=>t.jsx(o,{notFoundText:"No item found!",notFoundAction:t.jsx("p",{className:"text-sm italic text-gray-600 text-center",children:"Try again later"})});r.bind({});
2
- //# sourceMappingURL=empty-message.stories.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"empty-message.stories.js","sources":["../../../src/blocks/empty-message/empty-message.stories.tsx"],"sourcesContent":["// organize-imports-ignore\nimport React from 'react'\nimport type { Meta, StoryObj } from '@storybook/react'\nimport { EmptyItems } from './empty-message'\n\nconst meta: Meta<typeof EmptyItems> = {\n\tcomponent: EmptyItems,\n}\n\nexport default meta\ntype Story = StoryObj<typeof EmptyItems>\n\nconst Template = () => (\n\t<EmptyItems\n\t\tnotFoundText=\"No item found!\"\n\t\tnotFoundAction={\n\t\t\t<p className=\"text-sm italic text-gray-600 text-center\">Try again later</p>\n\t\t}\n\t/>\n)\n\nexport const Default: Story = {\n\trender: Template.bind({}),\n\targs: {},\n}\n"],"names":["Template","jsx","EmptyItems"],"mappings":"2MAYA,MAAMA,EAAW,IAChBC,EAAAA,IAACC,EAAA,CACA,aAAa,iBACb,eACCD,EAAAA,IAAC,IAAA,CAAE,UAAU,2CAA2C,SAAA,iBAAA,CAAe,CAAA,CAEzE,EAIQD,EAAS,KAAK,EAAE"}
@@ -1,2 +0,0 @@
1
- import"./empty-message.js";import"../../assets/jsx-runtime-D_zvdyIk.js";import"../../lib/utils/cn.js";import"clsx";import"tailwind-merge";import"date-fns-tz";import"lucide-react";
2
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -1,2 +0,0 @@
1
- import{j as t}from"../../assets/jsx-runtime-D_zvdyIk.js";import"../../components/accordion/accordion.js";import"../../components/adaptive-input/adaptive-input.js";import"../../components/alert-dialog/alert-dialog.js";import"../../components/autocomplete/autocomplete.js";import"../../components/avatar/avatar.js";import"../../components/badge/badge.js";import{B as s}from"../../components/button/button.js";import"date-fns";import{ChevronLeft as g,ChevronRight as j}from"lucide-react";import{useState as e}from"react";import"../../components/card/card.js";import"../../components/checkbox/checkbox.js";import"../../components/command/command.js";import"../../components/currency-input/currency-input.js";import{D as f,a as u,b as C,c as N,d as D,e as b}from"../../components/dialog/dialog.js";import"../../components/dropdown-menu/dropdown-menu.js";import"../../components/input/input.js";import"../../components/label/label.js";import"../../components/multi-select/multi-select.js";import"../../components/navigation-menu/navigation-menu.js";import"../../components/pagination/pagination.js";import"../../components/progress/progress.js";import"../../components/popover/popover.js";import"../../components/radio-group/radio-group.js";import"../../components/select/select.js";import"../../components/separator/separator.js";import{c as a}from"../../lib/utils/cn.js";import"../../components/spinner/spinner.js";import"../../components/switch/switch.js";import"../../components/table/table.js";import"../../components/tabs/tabs.js";import"../../components/textarea/textarea.js";import"../../components/toaster/toast.js";import"sonner";import"../../components/toggle/toggle.js";import"../../components/toggle-group/toggle-group.js";import"../../components/tooltip/tooltip.js";import"date-fns-tz";import"@radix-ui/react-accordion";import"@radix-ui/react-alert-dialog";import"../../components/button/button.types.js";import"cva-extended";import"../../lib/utils/string.js";import"@radix-ui/react-avatar";import"class-variance-authority";import"../../lib/utils/merge-objects.js";import"@radix-ui/react-slot";import"@radix-ui/react-checkbox";import"cmdk";import"@radix-ui/react-dialog";import"@radix-ui/react-dropdown-menu";import"@radix-ui/react-label";import"@radix-ui/react-navigation-menu";import"@radix-ui/react-progress";import"@radix-ui/react-popover";import"@radix-ui/react-radio-group";import"@radix-ui/react-select";import"@radix-ui/react-separator";import"clsx";import"tailwind-merge";import"@radix-ui/react-switch";import"@radix-ui/react-tabs";import"@radix-ui/react-toggle";import"@radix-ui/react-toggle-group";import"@radix-ui/react-tooltip";function Lt(n){const{triggerElement:l,steps:r}=n,[c,d]=e(!1),[o,m]=e(0),h=()=>{m(i=>i<r.length-1?i+1:i)},x=()=>{m(i=>i>0?i-1:i)};return t.jsxs(f,{open:c,onOpenChange:d,children:[t.jsx(u,{asChild:!0,children:l}),t.jsxs(C,{className:"sm:max-w-[425px]",children:[t.jsxs(N,{className:a(r[o].title===""&&"sr-only"),children:[t.jsx(D,{children:r[o].title}),t.jsx(b,{className:"sr-only",children:r[o].title})]}),t.jsx("div",{children:r[o].description}),t.jsxs("div",{className:"flex items-center justify-between mt-4",children:[t.jsx(s,{variant:"ghost",size:"icon",onClick:x,disabled:o===0,children:t.jsx(g,{className:"h-4 w-4"})}),t.jsx("div",{className:"flex justify-center gap-1",children:r.map((i,p)=>t.jsx("div",{className:a("h-3 w-3 rounded-full",p===o?"bg-primary":"bg-gray-200")},p))}),t.jsx(s,{variant:"ghost",size:"icon",onClick:h,disabled:o===r.length-1,children:t.jsx(j,{className:"h-4 w-4"})})]})]})]})}export{Lt as H};
2
- //# sourceMappingURL=help-carousel.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"help-carousel.js","sources":["../../../src/blocks/help-carousel/help-carousel.tsx"],"sourcesContent":["import {\n\tButton,\n\tDialog,\n\tDialogContent,\n\tDialogDescription,\n\tDialogHeader,\n\tDialogTitle,\n\tDialogTrigger,\n} from '@/components'\nimport { cn } from '@/lib/utils'\nimport { ChevronLeft, ChevronRight } from 'lucide-react'\nimport { useState } from 'react'\n\ninterface HelpCarouselProps {\n\ttriggerElement: React.ReactNode\n\tsteps: {\n\t\ttitle: string\n\t\tdescription: string | React.ReactNode\n\t}[]\n}\n\nexport function HelpCarousel(props: HelpCarouselProps) {\n\tconst { triggerElement, steps } = props\n\n\tconst [open, setOpen] = useState(false)\n\tconst [currentStep, setCurrentStep] = useState(0)\n\n\tconst handleNext = () => {\n\t\tsetCurrentStep((prev) => (prev < steps.length - 1 ? prev + 1 : prev))\n\t}\n\n\tconst handlePrevious = () => {\n\t\tsetCurrentStep((prev) => (prev > 0 ? prev - 1 : prev))\n\t}\n\n\treturn (\n\t\t<Dialog open={open} onOpenChange={setOpen}>\n\t\t\t<DialogTrigger asChild>{triggerElement}</DialogTrigger>\n\t\t\t<DialogContent className=\"sm:max-w-[425px]\">\n\t\t\t\t<DialogHeader className={cn(steps[currentStep].title === '' && 'sr-only')}>\n\t\t\t\t\t<DialogTitle>{steps[currentStep].title}</DialogTitle>\n\t\t\t\t\t<DialogDescription className=\"sr-only\">\n\t\t\t\t\t\t{steps[currentStep].title}\n\t\t\t\t\t</DialogDescription>\n\t\t\t\t</DialogHeader>\n\t\t\t\t<div>{steps[currentStep].description}</div>\n\t\t\t\t<div className=\"flex items-center justify-between mt-4\">\n\t\t\t\t\t<Button\n\t\t\t\t\t\tvariant=\"ghost\"\n\t\t\t\t\t\tsize=\"icon\"\n\t\t\t\t\t\tonClick={handlePrevious}\n\t\t\t\t\t\tdisabled={currentStep === 0}\n\t\t\t\t\t>\n\t\t\t\t\t\t<ChevronLeft className=\"h-4 w-4\" />\n\t\t\t\t\t</Button>\n\t\t\t\t\t<div className=\"flex justify-center gap-1\">\n\t\t\t\t\t\t{steps.map((_, index) => (\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tkey={index}\n\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\t'h-3 w-3 rounded-full',\n\t\t\t\t\t\t\t\t\tindex === currentStep ? 'bg-primary' : 'bg-gray-200',\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t))}\n\t\t\t\t\t</div>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tvariant=\"ghost\"\n\t\t\t\t\t\tsize=\"icon\"\n\t\t\t\t\t\tonClick={handleNext}\n\t\t\t\t\t\tdisabled={currentStep === steps.length - 1}\n\t\t\t\t\t>\n\t\t\t\t\t\t<ChevronRight className=\"h-4 w-4\" />\n\t\t\t\t\t</Button>\n\t\t\t\t</div>\n\t\t\t</DialogContent>\n\t\t</Dialog>\n\t)\n}\n"],"names":["HelpCarousel","props","triggerElement","steps","open","setOpen","useState","currentStep","setCurrentStep","handleNext","prev","handlePrevious","jsxs","Dialog","jsx","DialogTrigger","DialogContent","DialogHeader","cn","DialogTitle","DialogDescription","Button","ChevronLeft","_","index","ChevronRight"],"mappings":"ylFAqBO,SAASA,GAAaC,EAA0B,CACtD,KAAM,CAAE,eAAAC,EAAgB,MAAAC,CAAA,EAAUF,EAE5B,CAACG,EAAMC,CAAO,EAAIC,EAAS,EAAK,EAChC,CAACC,EAAaC,CAAc,EAAIF,EAAS,CAAC,EAE1CG,EAAa,IAAM,CACxBD,EAAgBE,GAAUA,EAAOP,EAAM,OAAS,EAAIO,EAAO,EAAIA,CAAK,CAAA,EAG/DC,EAAiB,IAAM,CAC5BH,EAAgBE,GAAUA,EAAO,EAAIA,EAAO,EAAIA,CAAK,CAAA,EAGtD,OACCE,EAAAA,KAACC,EAAA,CAAO,KAAAT,EAAY,aAAcC,EACjC,SAAA,CAAAS,EAAAA,IAACC,EAAA,CAAc,QAAO,GAAE,SAAAb,EAAe,EACvCU,EAAAA,KAACI,EAAA,CAAc,UAAU,mBACxB,SAAA,CAAAJ,EAAAA,KAACK,EAAA,CAAa,UAAWC,EAAGf,EAAMI,CAAW,EAAE,QAAU,IAAM,SAAS,EACvE,SAAA,CAAAO,EAAAA,IAACK,EAAA,CAAa,SAAAhB,EAAMI,CAAW,EAAE,MAAM,QACtCa,EAAA,CAAkB,UAAU,UAC3B,SAAAjB,EAAMI,CAAW,EAAE,KAAA,CACrB,CAAA,EACD,EACAO,EAAAA,IAAC,MAAA,CAAK,SAAAX,EAAMI,CAAW,EAAE,YAAY,EACrCK,EAAAA,KAAC,MAAA,CAAI,UAAU,yCACd,SAAA,CAAAE,EAAAA,IAACO,EAAA,CACA,QAAQ,QACR,KAAK,OACL,QAASV,EACT,SAAUJ,IAAgB,EAE1B,SAAAO,EAAAA,IAACQ,EAAA,CAAY,UAAU,SAAA,CAAU,CAAA,CAAA,EAElCR,EAAAA,IAAC,OAAI,UAAU,4BACb,WAAM,IAAI,CAACS,EAAGC,IACdV,EAAAA,IAAC,MAAA,CAEA,UAAWI,EACV,uBACAM,IAAUjB,EAAc,aAAe,aAAA,CACxC,EAJKiB,CAAA,CAMN,EACF,EACAV,EAAAA,IAACO,EAAA,CACA,QAAQ,QACR,KAAK,OACL,QAASZ,EACT,SAAUF,IAAgBJ,EAAM,OAAS,EAEzC,SAAAW,EAAAA,IAACW,EAAA,CAAa,UAAU,SAAA,CAAU,CAAA,CAAA,CACnC,CAAA,CACD,CAAA,CAAA,CACD,CAAA,EACD,CAEF"}
@@ -1,2 +0,0 @@
1
- import{j as t}from"../../assets/jsx-runtime-D_zvdyIk.js";import{H as o}from"./help-carousel.js";import{BadgeHelp as r}from"lucide-react";import{B as i}from"../../components/button/button.js";import"../../components/accordion/accordion.js";import"@radix-ui/react-accordion";import"react";import"../../lib/utils/cn.js";import"clsx";import"tailwind-merge";import"date-fns-tz";import"../../components/adaptive-input/adaptive-input.js";import"../../components/input/input.js";import"class-variance-authority";import"../../components/alert-dialog/alert-dialog.js";import"@radix-ui/react-alert-dialog";import"../../components/button/button.types.js";import"cva-extended";import"../../lib/utils/merge-objects.js";import"@radix-ui/react-slot";import"../../components/autocomplete/autocomplete.js";import"../../lib/utils/string.js";import"../../components/avatar/avatar.js";import"@radix-ui/react-avatar";import"../../components/badge/badge.js";import"date-fns";import"../../components/card/card.js";import"../../components/checkbox/checkbox.js";import"@radix-ui/react-checkbox";import"../../components/command/command.js";import"cmdk";import"../../components/dialog/dialog.js";import"@radix-ui/react-dialog";import"../../components/currency-input/currency-input.js";import"../../components/dropdown-menu/dropdown-menu.js";import"@radix-ui/react-dropdown-menu";import"../../components/label/label.js";import"@radix-ui/react-label";import"../../components/multi-select/multi-select.js";import"../../components/popover/popover.js";import"@radix-ui/react-popover";import"../../components/separator/separator.js";import"@radix-ui/react-separator";import"../../components/navigation-menu/navigation-menu.js";import"@radix-ui/react-navigation-menu";import"../../components/pagination/pagination.js";import"../../components/progress/progress.js";import"@radix-ui/react-progress";import"../../components/radio-group/radio-group.js";import"@radix-ui/react-radio-group";import"../../components/select/select.js";import"@radix-ui/react-select";import"../../components/spinner/spinner.js";import"../../components/switch/switch.js";import"@radix-ui/react-switch";import"../../components/table/table.js";import"../../components/tabs/tabs.js";import"@radix-ui/react-tabs";import"../../components/textarea/textarea.js";import"../../components/toaster/toast.js";import"sonner";import"../../components/toggle/toggle.js";import"@radix-ui/react-toggle";import"../../components/toggle-group/toggle-group.js";import"@radix-ui/react-toggle-group";import"../../components/tooltip/tooltip.js";import"@radix-ui/react-tooltip";const m=[{title:"Welcome to Our App",description:"Let's walk you through the main features of our application."},{title:"Dashboard Overview",description:"Your dashboard shows you a summary of your recent activity and key metrics."},{title:"Creating a New Project",description:"Click the 'New Project' button to start a new project and fill in the details."},{title:"Inviting Team Members",description:"You can invite team members to collaborate on your projects from the 'Team' tab."}],p=()=>t.jsx(o,{steps:m,triggerElement:t.jsx(i,{variant:"outline",size:"xl",children:t.jsx(r,{})})});p.bind({});
2
- //# sourceMappingURL=help-carousel.stories.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"help-carousel.stories.js","sources":["../../../src/blocks/help-carousel/help-carousel.stories.tsx"],"sourcesContent":["// organize-imports-ignore\nimport React from 'react'\nimport type { Meta, StoryObj } from '@storybook/react'\nimport { HelpCarousel } from './help-carousel'\nimport { BadgeHelp, HelpCircle, Phone, User } from 'lucide-react'\nimport { Button } from '../../components/button'\n\nconst meta: Meta<typeof HelpCarousel> = {\n\tcomponent: HelpCarousel,\n}\n\nexport default meta\ntype Story = StoryObj<typeof HelpCarousel>\n\nconst helpSteps = [\n\t{\n\t\ttitle: 'Welcome to Our App',\n\t\tdescription: \"Let's walk you through the main features of our application.\",\n\t},\n\t{\n\t\ttitle: 'Dashboard Overview',\n\t\tdescription:\n\t\t\t'Your dashboard shows you a summary of your recent activity and key metrics.',\n\t},\n\t{\n\t\ttitle: 'Creating a New Project',\n\t\tdescription:\n\t\t\t\"Click the 'New Project' button to start a new project and fill in the details.\",\n\t},\n\t{\n\t\ttitle: 'Inviting Team Members',\n\t\tdescription:\n\t\t\t\"You can invite team members to collaborate on your projects from the 'Team' tab.\",\n\t},\n]\n\nconst Template = () => {\n\treturn (\n\t\t<HelpCarousel\n\t\t\tsteps={helpSteps}\n\t\t\ttriggerElement={\n\t\t\t\t<Button variant=\"outline\" size=\"xl\">\n\t\t\t\t\t<BadgeHelp />\n\t\t\t\t</Button>\n\t\t\t}\n\t\t/>\n\t)\n}\n\nexport const Default: Story = {\n\trender: Template.bind({}),\n\targs: {},\n}\n"],"names":["helpSteps","Template","jsx","HelpCarousel","Button","BadgeHelp"],"mappings":"8hFAcA,MAAMA,EAAY,CACjB,CACC,MAAO,qBACP,YAAa,8DAAA,EAEd,CACC,MAAO,qBACP,YACC,6EAAA,EAEF,CACC,MAAO,yBACP,YACC,gFAAA,EAEF,CACC,MAAO,wBACP,YACC,kFAAA,CAEH,EAEMC,EAAW,IAEfC,EAAAA,IAACC,EAAA,CACA,MAAOH,EACP,qBACEI,EAAA,CAAO,QAAQ,UAAU,KAAK,KAC9B,SAAAF,EAAAA,IAACG,EAAA,CAAA,CAAU,CAAA,CACZ,CAAA,CAAA,EAOKJ,EAAS,KAAK,EAAE"}
@@ -1,2 +0,0 @@
1
- import"./help-carousel.js";import"../../assets/jsx-runtime-D_zvdyIk.js";import"../../components/accordion/accordion.js";import"@radix-ui/react-accordion";import"lucide-react";import"react";import"../../lib/utils/cn.js";import"clsx";import"tailwind-merge";import"date-fns-tz";import"../../components/adaptive-input/adaptive-input.js";import"../../components/input/input.js";import"class-variance-authority";import"../../components/alert-dialog/alert-dialog.js";import"@radix-ui/react-alert-dialog";import"../../components/button/button.js";import"../../lib/utils/merge-objects.js";import"@radix-ui/react-slot";import"cva-extended";import"../../components/button/button.types.js";import"../../components/autocomplete/autocomplete.js";import"../../lib/utils/string.js";import"../../components/avatar/avatar.js";import"@radix-ui/react-avatar";import"../../components/badge/badge.js";import"date-fns";import"../../components/card/card.js";import"../../components/checkbox/checkbox.js";import"@radix-ui/react-checkbox";import"../../components/command/command.js";import"cmdk";import"../../components/dialog/dialog.js";import"@radix-ui/react-dialog";import"../../components/currency-input/currency-input.js";import"../../components/dropdown-menu/dropdown-menu.js";import"@radix-ui/react-dropdown-menu";import"../../components/label/label.js";import"@radix-ui/react-label";import"../../components/multi-select/multi-select.js";import"../../components/popover/popover.js";import"@radix-ui/react-popover";import"../../components/separator/separator.js";import"@radix-ui/react-separator";import"../../components/navigation-menu/navigation-menu.js";import"@radix-ui/react-navigation-menu";import"../../components/pagination/pagination.js";import"../../components/progress/progress.js";import"@radix-ui/react-progress";import"../../components/radio-group/radio-group.js";import"@radix-ui/react-radio-group";import"../../components/select/select.js";import"@radix-ui/react-select";import"../../components/spinner/spinner.js";import"../../components/switch/switch.js";import"@radix-ui/react-switch";import"../../components/table/table.js";import"../../components/tabs/tabs.js";import"@radix-ui/react-tabs";import"../../components/textarea/textarea.js";import"../../components/toaster/toast.js";import"sonner";import"../../components/toggle/toggle.js";import"@radix-ui/react-toggle";import"../../components/toggle-group/toggle-group.js";import"@radix-ui/react-toggle-group";import"../../components/tooltip/tooltip.js";import"@radix-ui/react-tooltip";
2
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -1,2 +0,0 @@
1
- import{j as r}from"../../assets/jsx-runtime-D_zvdyIk.js";/* empty css */const n=e=>r.jsx("div",{className:"unreset",dangerouslySetInnerHTML:{__html:e.children}});export{n as H};
2
- //# sourceMappingURL=html-text-area.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"html-text-area.js","sources":["../../../src/blocks/html-text-editor/html-text-area.tsx"],"sourcesContent":["import './unreset.css'\n\nexport const HtmlTextArea = (props: { children: string }) => {\n\treturn (\n\t\t<div className=\"unreset\" dangerouslySetInnerHTML={{ __html: props.children }}></div>\n\t)\n}\n"],"names":["HtmlTextArea","props","jsx"],"mappings":"kGAEO,MAAMA,EAAgBC,GAE3BC,MAAC,OAAI,UAAU,UAAU,wBAAyB,CAAE,OAAQD,EAAM,QAAA,EAAY"}
@@ -1,8 +0,0 @@
1
- import{j as l}from"../../assets/jsx-runtime-D_zvdyIk.js";import{H as r}from"./html-text-area.js";/* empty css */const i=()=>l.jsx("div",{className:"h-96 border rounded p-2",children:l.jsx(r,{children:`<p>hello world</p>
2
- <ul>
3
- <li>1</li>
4
- <li>2</li>
5
- <li>3</li>
6
- <li>4</li>
7
- </ul>`})});i.bind({});
8
- //# sourceMappingURL=html-text-area.stories.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"html-text-area.stories.js","sources":["../../../src/blocks/html-text-editor/html-text-area.stories.tsx"],"sourcesContent":["// organize-imports-ignore\nimport React from 'react'\nimport type { Meta, StoryObj } from '@storybook/react'\nimport { HtmlTextArea } from './html-text-area'\n\nconst meta: Meta<typeof HtmlTextArea> = {\n\tcomponent: HtmlTextArea,\n\tparameters: {\n\t\tstatus: {\n\t\t\ttype: 'beta', // 'beta' | 'stable' | 'deprecated' | 'releaseCandidate'\n\t\t},\n\t},\n}\n\nexport default meta\ntype Story = StoryObj<typeof HtmlTextArea>\n\nconst Template = () => {\n\treturn (\n\t\t<div className=\"h-96 border rounded p-2\">\n\t\t\t<HtmlTextArea>\n\t\t\t\t{`<p>hello world</p>\n\t\t\t\t<ul>\n\t\t\t\t\t<li>1</li>\n\t\t\t\t\t<li>2</li>\n\t\t\t\t\t<li>3</li>\n\t\t\t\t\t<li>4</li>\n\t\t\t\t</ul>`}\n\t\t\t</HtmlTextArea>\n\t\t</div>\n\t)\n}\n\nexport const Default: Story = {\n\trender: Template.bind({}),\n\targs: {},\n}\n"],"names":["Template","jsx","HtmlTextArea"],"mappings":"0IAiBA,MAAMA,EAAW,IAEfC,EAAAA,IAAC,MAAA,CAAI,UAAU,0BACd,eAACC,EAAA,CACC,SAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,UAAA,CAOF,CAAA,CACD,EAKOF,EAAS,KAAK,EAAE"}
@@ -1,2 +0,0 @@
1
- import{j as i}from"../../assets/jsx-runtime-D_zvdyIk.js";import{c as n}from"../../lib/utils/cn.js";import"date-fns-tz";import{useRef as d,useEffect as p}from"react";import{O as f}from"./options-bar.js";/* empty css */import"clsx";import"tailwind-merge";import"../../components/accordion/accordion.js";import"@radix-ui/react-accordion";import"lucide-react";import"../../components/adaptive-input/adaptive-input.js";import"../../components/input/input.js";import"class-variance-authority";import"../../components/alert-dialog/alert-dialog.js";import"@radix-ui/react-alert-dialog";import"../../components/button/button.js";import"../../lib/utils/merge-objects.js";import"@radix-ui/react-slot";import"cva-extended";import"../../components/button/button.types.js";import"../../components/autocomplete/autocomplete.js";import"../../lib/utils/string.js";import"../../components/avatar/avatar.js";import"@radix-ui/react-avatar";import"../../components/badge/badge.js";import"date-fns";import"../../components/card/card.js";import"../../components/checkbox/checkbox.js";import"@radix-ui/react-checkbox";import"../../components/command/command.js";import"cmdk";import"../../components/dialog/dialog.js";import"@radix-ui/react-dialog";import"../../components/currency-input/currency-input.js";import"../../components/dropdown-menu/dropdown-menu.js";import"@radix-ui/react-dropdown-menu";import"../../components/label/label.js";import"@radix-ui/react-label";import"../../components/multi-select/multi-select.js";import"../../components/popover/popover.js";import"@radix-ui/react-popover";import"../../components/separator/separator.js";import"@radix-ui/react-separator";import"../../components/navigation-menu/navigation-menu.js";import"@radix-ui/react-navigation-menu";import"../../components/pagination/pagination.js";import"../../components/progress/progress.js";import"@radix-ui/react-progress";import"../../components/radio-group/radio-group.js";import"@radix-ui/react-radio-group";import"../../components/select/select.js";import"@radix-ui/react-select";import"../../components/spinner/spinner.js";import"../../components/switch/switch.js";import"@radix-ui/react-switch";import"../../components/table/table.js";import"../../components/tabs/tabs.js";import"@radix-ui/react-tabs";import"../../components/textarea/textarea.js";import"../../components/toaster/toast.js";import"sonner";import"../../components/toggle/toggle.js";import"@radix-ui/react-toggle";import"../../components/toggle-group/toggle-group.js";import"@radix-ui/react-toggle-group";import"../../components/tooltip/tooltip.js";import"@radix-ui/react-tooltip";const yr=({initialValue:e="",onChange:t,className:s})=>{const r=d(null);p(()=>{const o=new MutationObserver(()=>{t==null||t(r.current?r.current.innerHTML:"")});r.current&&o.observe(r.current,{childList:!0})},[]),p(()=>{r.current&&(r.current.innerHTML=e)},[]);const m=()=>{r.current&&(t==null||t(r.current.innerHTML))},u=(o,c)=>{r.current&&(document.execCommand(o,!1,c),m())};return i.jsxs("div",{className:n("w-full p-4 border rounded-lg shadow-md",s),children:[i.jsx(f,{execCommand:u}),i.jsx("div",{ref:r,contentEditable:!0,className:"w-full h-48 p-2 border rounded overflow-y-auto focus:outline-none min-h-20 resize-y unreset",onInput:m})]})};export{yr as H};
2
- //# sourceMappingURL=html-text-editor.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"html-text-editor.js","sources":["../../../src/blocks/html-text-editor/html-text-editor.tsx"],"sourcesContent":["import { cn } from '@/lib/utils'\nimport React, { useEffect, useRef } from 'react'\nimport { OptionsBar } from './options-bar'\nimport './unreset.css'\n\ninterface TextEditorProps {\n\tinitialValue?: string\n\tonChange?: (value: string) => void\n\tclassName?: string\n}\n\nexport const HtmlTextEditor: React.FC<TextEditorProps> = ({\n\tinitialValue = '',\n\tonChange,\n\tclassName,\n}) => {\n\tconst editorRef = useRef<HTMLDivElement>(null)\n\n\tuseEffect(() => {\n\t\tconst observer = new MutationObserver(() => {\n\t\t\tonChange?.(editorRef.current ? editorRef.current.innerHTML : '')\n\t\t})\n\n\t\tif (editorRef.current) {\n\t\t\tobserver.observe(editorRef.current, { childList: true })\n\t\t}\n\t}, [])\n\n\tuseEffect(() => {\n\t\tif (editorRef.current) {\n\t\t\teditorRef.current.innerHTML = initialValue\n\t\t}\n\t}, [])\n\n\tconst handleInput = () => {\n\t\tif (editorRef.current) {\n\t\t\tonChange?.(editorRef.current.innerHTML)\n\t\t}\n\t}\n\n\tconst execCommand = (command: string, value?: string) => {\n\t\tif (editorRef.current) {\n\t\t\tdocument.execCommand(command, false, value)\n\t\t\thandleInput()\n\t\t}\n\t}\n\n\treturn (\n\t\t<div className={cn('w-full p-4 border rounded-lg shadow-md', className)}>\n\t\t\t<OptionsBar execCommand={execCommand} />\n\n\t\t\t{/* <pre\n\t\t\t\tclassName={cn(\n\t\t\t\t\t'w-full p-2 border rounded overflow-auto bg-gray-900 text-white',\n\t\t\t\t\t!showHtml && 'hidden',\n\t\t\t\t)}\n\t\t\t>\n\t\t\t\t<div\n\t\t\t\t\tref={editorHtmlRef}\n\t\t\t\t\tdangerouslySetInnerHTML={{ __html: formattedHtml }}\n\t\t\t\t\tclassName=\"focus:outline-none\"\n\t\t\t\t/>\n\t\t\t</pre> */}\n\n\t\t\t{/* <textarea\n\t\t\t\tclassName={cn(\n\t\t\t\t\t'w-full h-48 p-2 border rounded overflow-auto bg-gray-900 text-white font-mono',\n\t\t\t\t\t!showHtml && 'hidden',\n\t\t\t\t)}\n\t\t\t\tvalue={htmlContent}\n\t\t\t\tonChange={(e) => {\n\t\t\t\t\tsetHtmlContent(e.target.value)\n\t\t\t\t\tonChange?.(e.target.value)\n\t\t\t\t}}\n\t\t\t/> */}\n\n\t\t\t<div\n\t\t\t\tref={editorRef}\n\t\t\t\tcontentEditable\n\t\t\t\tclassName=\"w-full h-48 p-2 border rounded overflow-y-auto focus:outline-none min-h-20 resize-y unreset\"\n\t\t\t\tonInput={handleInput}\n\t\t\t/>\n\t\t</div>\n\t)\n}\n"],"names":["HtmlTextEditor","initialValue","onChange","className","editorRef","useRef","useEffect","observer","handleInput","execCommand","command","value","cn","jsx","OptionsBar"],"mappings":"ilFAWO,MAAMA,GAA4C,CAAC,CACzD,aAAAC,EAAe,GACf,SAAAC,EACA,UAAAC,CACD,IAAM,CACL,MAAMC,EAAYC,EAAuB,IAAI,EAE7CC,EAAU,IAAM,CACf,MAAMC,EAAW,IAAI,iBAAiB,IAAM,CAC3CL,GAAA,MAAAA,EAAWE,EAAU,QAAUA,EAAU,QAAQ,UAAY,GAAE,CAC/D,EAEGA,EAAU,SACbG,EAAS,QAAQH,EAAU,QAAS,CAAE,UAAW,GAAM,CACxD,EACE,EAAE,EAELE,EAAU,IAAM,CACXF,EAAU,UACbA,EAAU,QAAQ,UAAYH,EAC/B,EACE,EAAE,EAEL,MAAMO,EAAc,IAAM,CACrBJ,EAAU,UACbF,GAAA,MAAAA,EAAWE,EAAU,QAAQ,WAC9B,EAGKK,EAAc,CAACC,EAAiBC,IAAmB,CACpDP,EAAU,UACb,SAAS,YAAYM,EAAS,GAAOC,CAAK,EAC1CH,EAAA,EACD,EAGD,cACE,MAAA,CAAI,UAAWI,EAAG,yCAA0CT,CAAS,EACrE,SAAA,CAAAU,MAACC,GAAW,YAAAL,EAA0B,EA2BtCI,EAAAA,IAAC,MAAA,CACA,IAAKT,EACL,gBAAe,GACf,UAAU,8FACV,QAASI,CAAA,CAAA,CACV,EACD,CAEF"}
@@ -1,2 +0,0 @@
1
- import{j as i}from"../../assets/jsx-runtime-D_zvdyIk.js";import{useState as o}from"react";import{H as p}from"./html-text-editor.js";import"../../lib/utils/cn.js";import"clsx";import"tailwind-merge";import"date-fns-tz";import"./options-bar.js";import"../../components/accordion/accordion.js";import"@radix-ui/react-accordion";import"lucide-react";import"../../components/adaptive-input/adaptive-input.js";import"../../components/input/input.js";import"class-variance-authority";import"../../components/alert-dialog/alert-dialog.js";import"@radix-ui/react-alert-dialog";import"../../components/button/button.js";import"../../lib/utils/merge-objects.js";import"@radix-ui/react-slot";import"cva-extended";import"../../components/button/button.types.js";import"../../components/autocomplete/autocomplete.js";import"../../lib/utils/string.js";import"../../components/avatar/avatar.js";import"@radix-ui/react-avatar";import"../../components/badge/badge.js";import"date-fns";import"../../components/card/card.js";import"../../components/checkbox/checkbox.js";import"@radix-ui/react-checkbox";import"../../components/command/command.js";import"cmdk";import"../../components/dialog/dialog.js";import"@radix-ui/react-dialog";import"../../components/currency-input/currency-input.js";import"../../components/dropdown-menu/dropdown-menu.js";import"@radix-ui/react-dropdown-menu";import"../../components/label/label.js";import"@radix-ui/react-label";import"../../components/multi-select/multi-select.js";import"../../components/popover/popover.js";import"@radix-ui/react-popover";import"../../components/separator/separator.js";import"@radix-ui/react-separator";import"../../components/navigation-menu/navigation-menu.js";import"@radix-ui/react-navigation-menu";import"../../components/pagination/pagination.js";import"../../components/progress/progress.js";import"@radix-ui/react-progress";import"../../components/radio-group/radio-group.js";import"@radix-ui/react-radio-group";import"../../components/select/select.js";import"@radix-ui/react-select";import"../../components/spinner/spinner.js";import"../../components/switch/switch.js";import"@radix-ui/react-switch";import"../../components/table/table.js";import"../../components/tabs/tabs.js";import"@radix-ui/react-tabs";import"../../components/textarea/textarea.js";import"../../components/toaster/toast.js";import"sonner";import"../../components/toggle/toggle.js";import"@radix-ui/react-toggle";import"../../components/toggle-group/toggle-group.js";import"@radix-ui/react-toggle-group";import"../../components/tooltip/tooltip.js";import"@radix-ui/react-tooltip";/* empty css */const e=()=>{const[t,r]=o("This is the <b>initial value</b>");return i.jsxs("div",{className:"h-96 max-w-2xl",children:[i.jsx(p,{initialValue:t,onChange:m=>r(m)}),"Value: ",t]})};e.bind({});
2
- //# sourceMappingURL=html-text-editor.stories.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"html-text-editor.stories.js","sources":["../../../src/blocks/html-text-editor/html-text-editor.stories.tsx"],"sourcesContent":["// organize-imports-ignore\nimport React, { useState } from 'react'\nimport type { Meta, StoryObj } from '@storybook/react'\nimport { HtmlTextEditor } from './html-text-editor'\n\nconst meta: Meta<typeof HtmlTextEditor> = {\n\tcomponent: HtmlTextEditor,\n\tparameters: {\n\t\tstatus: {\n\t\t\ttype: 'beta', // 'beta' | 'stable' | 'deprecated' | 'releaseCandidate'\n\t\t},\n\t},\n}\n\nexport default meta\ntype Story = StoryObj<typeof HtmlTextEditor>\n\nconst Template = () => {\n\tconst [value, setValue] = useState('This is the <b>initial value</b>')\n\treturn (\n\t\t<div className=\"h-96 max-w-2xl\">\n\t\t\t<HtmlTextEditor initialValue={value} onChange={(value) => setValue(value)} />\n\t\t\tValue: {value}\n\t\t</div>\n\t)\n}\n\nexport const Default: Story = {\n\trender: Template.bind({}),\n\targs: {},\n}\n"],"names":["Template","value","setValue","useState","jsxs","jsx","HtmlTextEditor"],"mappings":"slFAiBA,MAAMA,EAAW,IAAM,CACtB,KAAM,CAACC,EAAOC,CAAQ,EAAIC,EAAS,kCAAkC,EACrE,OACCC,EAAAA,KAAC,MAAA,CAAI,UAAU,iBACd,SAAA,CAAAC,MAACC,EAAA,CAAe,aAAcL,EAAO,SAAWA,GAAUC,EAASD,CAAK,EAAG,EAAE,UACrEA,CAAA,EACT,CAEF,EAGSD,EAAS,KAAK,EAAE"}
@@ -1,2 +0,0 @@
1
- import"./html-text-area.js";import"./html-text-editor.js";import"../../assets/jsx-runtime-D_zvdyIk.js";/* empty css */import"../../lib/utils/cn.js";import"clsx";import"tailwind-merge";import"date-fns-tz";import"react";import"./options-bar.js";import"../../components/accordion/accordion.js";import"@radix-ui/react-accordion";import"lucide-react";import"../../components/adaptive-input/adaptive-input.js";import"../../components/input/input.js";import"class-variance-authority";import"../../components/alert-dialog/alert-dialog.js";import"@radix-ui/react-alert-dialog";import"../../components/button/button.js";import"../../lib/utils/merge-objects.js";import"@radix-ui/react-slot";import"cva-extended";import"../../components/button/button.types.js";import"../../components/autocomplete/autocomplete.js";import"../../lib/utils/string.js";import"../../components/avatar/avatar.js";import"@radix-ui/react-avatar";import"../../components/badge/badge.js";import"date-fns";import"../../components/card/card.js";import"../../components/checkbox/checkbox.js";import"@radix-ui/react-checkbox";import"../../components/command/command.js";import"cmdk";import"../../components/dialog/dialog.js";import"@radix-ui/react-dialog";import"../../components/currency-input/currency-input.js";import"../../components/dropdown-menu/dropdown-menu.js";import"@radix-ui/react-dropdown-menu";import"../../components/label/label.js";import"@radix-ui/react-label";import"../../components/multi-select/multi-select.js";import"../../components/popover/popover.js";import"@radix-ui/react-popover";import"../../components/separator/separator.js";import"@radix-ui/react-separator";import"../../components/navigation-menu/navigation-menu.js";import"@radix-ui/react-navigation-menu";import"../../components/pagination/pagination.js";import"../../components/progress/progress.js";import"@radix-ui/react-progress";import"../../components/radio-group/radio-group.js";import"@radix-ui/react-radio-group";import"../../components/select/select.js";import"@radix-ui/react-select";import"../../components/spinner/spinner.js";import"../../components/switch/switch.js";import"@radix-ui/react-switch";import"../../components/table/table.js";import"../../components/tabs/tabs.js";import"@radix-ui/react-tabs";import"../../components/textarea/textarea.js";import"../../components/toaster/toast.js";import"sonner";import"../../components/toggle/toggle.js";import"@radix-ui/react-toggle";import"../../components/toggle-group/toggle-group.js";import"@radix-ui/react-toggle-group";import"../../components/tooltip/tooltip.js";import"@radix-ui/react-tooltip";
2
- //# sourceMappingURL=index.js.map