@kissesses/mantine-react-table-open 9.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (362) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +196 -0
  3. package/dist/index.cjs +3769 -0
  4. package/dist/index.cjs.map +1 -0
  5. package/dist/index.d.cts +1488 -0
  6. package/dist/index.esm.d.mts +1488 -0
  7. package/dist/index.esm.mjs +3664 -0
  8. package/dist/index.esm.mjs.map +1 -0
  9. package/locales/ar/index.cjs +97 -0
  10. package/locales/ar/index.d.cts +3 -0
  11. package/locales/ar/index.esm.d.mts +3 -0
  12. package/locales/ar/index.esm.mjs +95 -0
  13. package/locales/ar/package.json +19 -0
  14. package/locales/az/index.cjs +97 -0
  15. package/locales/az/index.d.cts +3 -0
  16. package/locales/az/index.esm.d.mts +3 -0
  17. package/locales/az/index.esm.mjs +95 -0
  18. package/locales/az/package.json +19 -0
  19. package/locales/bg/index.cjs +97 -0
  20. package/locales/bg/index.d.cts +3 -0
  21. package/locales/bg/index.esm.d.mts +3 -0
  22. package/locales/bg/index.esm.mjs +95 -0
  23. package/locales/bg/package.json +19 -0
  24. package/locales/cs/index.cjs +97 -0
  25. package/locales/cs/index.d.cts +3 -0
  26. package/locales/cs/index.esm.d.mts +3 -0
  27. package/locales/cs/index.esm.mjs +95 -0
  28. package/locales/cs/package.json +19 -0
  29. package/locales/da/index.cjs +97 -0
  30. package/locales/da/index.d.cts +3 -0
  31. package/locales/da/index.esm.d.mts +3 -0
  32. package/locales/da/index.esm.mjs +95 -0
  33. package/locales/da/package.json +19 -0
  34. package/locales/de/index.cjs +97 -0
  35. package/locales/de/index.d.cts +3 -0
  36. package/locales/de/index.esm.d.mts +3 -0
  37. package/locales/de/index.esm.mjs +95 -0
  38. package/locales/de/package.json +19 -0
  39. package/locales/el/index.cjs +97 -0
  40. package/locales/el/index.d.cts +3 -0
  41. package/locales/el/index.esm.d.mts +3 -0
  42. package/locales/el/index.esm.mjs +95 -0
  43. package/locales/el/package.json +19 -0
  44. package/locales/en/index.cjs +97 -0
  45. package/locales/en/index.d.cts +3 -0
  46. package/locales/en/index.esm.d.mts +3 -0
  47. package/locales/en/index.esm.mjs +95 -0
  48. package/locales/en/package.json +19 -0
  49. package/locales/es/index.cjs +97 -0
  50. package/locales/es/index.d.cts +3 -0
  51. package/locales/es/index.esm.d.mts +3 -0
  52. package/locales/es/index.esm.mjs +95 -0
  53. package/locales/es/package.json +19 -0
  54. package/locales/et/index.cjs +97 -0
  55. package/locales/et/index.d.cts +3 -0
  56. package/locales/et/index.esm.d.mts +3 -0
  57. package/locales/et/index.esm.mjs +95 -0
  58. package/locales/et/package.json +19 -0
  59. package/locales/fa/index.cjs +97 -0
  60. package/locales/fa/index.d.cts +3 -0
  61. package/locales/fa/index.esm.d.mts +3 -0
  62. package/locales/fa/index.esm.mjs +95 -0
  63. package/locales/fa/package.json +19 -0
  64. package/locales/fi/index.cjs +97 -0
  65. package/locales/fi/index.d.cts +3 -0
  66. package/locales/fi/index.esm.d.mts +3 -0
  67. package/locales/fi/index.esm.mjs +95 -0
  68. package/locales/fi/package.json +19 -0
  69. package/locales/fr/index.cjs +97 -0
  70. package/locales/fr/index.d.cts +3 -0
  71. package/locales/fr/index.esm.d.mts +3 -0
  72. package/locales/fr/index.esm.mjs +95 -0
  73. package/locales/fr/package.json +19 -0
  74. package/locales/he/index.cjs +97 -0
  75. package/locales/he/index.d.cts +3 -0
  76. package/locales/he/index.esm.d.mts +3 -0
  77. package/locales/he/index.esm.mjs +95 -0
  78. package/locales/he/package.json +19 -0
  79. package/locales/hr/index.cjs +97 -0
  80. package/locales/hr/index.d.cts +3 -0
  81. package/locales/hr/index.esm.d.mts +3 -0
  82. package/locales/hr/index.esm.mjs +95 -0
  83. package/locales/hr/package.json +19 -0
  84. package/locales/hu/index.cjs +97 -0
  85. package/locales/hu/index.d.cts +3 -0
  86. package/locales/hu/index.esm.d.mts +3 -0
  87. package/locales/hu/index.esm.mjs +95 -0
  88. package/locales/hu/package.json +19 -0
  89. package/locales/hy/index.cjs +97 -0
  90. package/locales/hy/index.d.cts +3 -0
  91. package/locales/hy/index.esm.d.mts +3 -0
  92. package/locales/hy/index.esm.mjs +95 -0
  93. package/locales/hy/package.json +19 -0
  94. package/locales/id/index.cjs +97 -0
  95. package/locales/id/index.d.cts +3 -0
  96. package/locales/id/index.esm.d.mts +3 -0
  97. package/locales/id/index.esm.mjs +95 -0
  98. package/locales/id/package.json +19 -0
  99. package/locales/it/index.cjs +97 -0
  100. package/locales/it/index.d.cts +3 -0
  101. package/locales/it/index.esm.d.mts +3 -0
  102. package/locales/it/index.esm.mjs +95 -0
  103. package/locales/it/package.json +19 -0
  104. package/locales/ja/index.cjs +97 -0
  105. package/locales/ja/index.d.cts +3 -0
  106. package/locales/ja/index.esm.d.mts +3 -0
  107. package/locales/ja/index.esm.mjs +95 -0
  108. package/locales/ja/package.json +19 -0
  109. package/locales/ko/index.cjs +97 -0
  110. package/locales/ko/index.d.cts +3 -0
  111. package/locales/ko/index.esm.d.mts +3 -0
  112. package/locales/ko/index.esm.mjs +95 -0
  113. package/locales/ko/package.json +19 -0
  114. package/locales/nl/index.cjs +97 -0
  115. package/locales/nl/index.d.cts +3 -0
  116. package/locales/nl/index.esm.d.mts +3 -0
  117. package/locales/nl/index.esm.mjs +95 -0
  118. package/locales/nl/package.json +19 -0
  119. package/locales/no/index.cjs +97 -0
  120. package/locales/no/index.d.cts +3 -0
  121. package/locales/no/index.esm.d.mts +3 -0
  122. package/locales/no/index.esm.mjs +95 -0
  123. package/locales/no/package.json +19 -0
  124. package/locales/np/index.cjs +97 -0
  125. package/locales/np/index.d.cts +3 -0
  126. package/locales/np/index.esm.d.mts +3 -0
  127. package/locales/np/index.esm.mjs +95 -0
  128. package/locales/np/package.json +19 -0
  129. package/locales/pl/index.cjs +97 -0
  130. package/locales/pl/index.d.cts +3 -0
  131. package/locales/pl/index.esm.d.mts +3 -0
  132. package/locales/pl/index.esm.mjs +95 -0
  133. package/locales/pl/package.json +19 -0
  134. package/locales/pt/index.cjs +97 -0
  135. package/locales/pt/index.d.cts +3 -0
  136. package/locales/pt/index.esm.d.mts +3 -0
  137. package/locales/pt/index.esm.mjs +95 -0
  138. package/locales/pt/package.json +19 -0
  139. package/locales/pt-BR/index.cjs +97 -0
  140. package/locales/pt-BR/index.d.cts +3 -0
  141. package/locales/pt-BR/index.esm.d.mts +3 -0
  142. package/locales/pt-BR/index.esm.mjs +95 -0
  143. package/locales/pt-BR/package.json +19 -0
  144. package/locales/ro/index.cjs +97 -0
  145. package/locales/ro/index.d.cts +3 -0
  146. package/locales/ro/index.esm.d.mts +3 -0
  147. package/locales/ro/index.esm.mjs +95 -0
  148. package/locales/ro/package.json +19 -0
  149. package/locales/ru/index.cjs +97 -0
  150. package/locales/ru/index.d.cts +3 -0
  151. package/locales/ru/index.esm.d.mts +3 -0
  152. package/locales/ru/index.esm.mjs +95 -0
  153. package/locales/ru/package.json +19 -0
  154. package/locales/sk/index.cjs +97 -0
  155. package/locales/sk/index.d.cts +3 -0
  156. package/locales/sk/index.esm.d.mts +3 -0
  157. package/locales/sk/index.esm.mjs +95 -0
  158. package/locales/sk/package.json +19 -0
  159. package/locales/sr-Cyrl-RS/index.cjs +97 -0
  160. package/locales/sr-Cyrl-RS/index.d.cts +3 -0
  161. package/locales/sr-Cyrl-RS/index.esm.d.mts +3 -0
  162. package/locales/sr-Cyrl-RS/index.esm.mjs +95 -0
  163. package/locales/sr-Cyrl-RS/package.json +19 -0
  164. package/locales/sr-Latn-RS/index.cjs +97 -0
  165. package/locales/sr-Latn-RS/index.d.cts +3 -0
  166. package/locales/sr-Latn-RS/index.esm.d.mts +3 -0
  167. package/locales/sr-Latn-RS/index.esm.mjs +95 -0
  168. package/locales/sr-Latn-RS/package.json +19 -0
  169. package/locales/sv/index.cjs +97 -0
  170. package/locales/sv/index.d.cts +3 -0
  171. package/locales/sv/index.esm.d.mts +3 -0
  172. package/locales/sv/index.esm.mjs +95 -0
  173. package/locales/sv/package.json +19 -0
  174. package/locales/tr/index.cjs +97 -0
  175. package/locales/tr/index.d.cts +3 -0
  176. package/locales/tr/index.esm.d.mts +3 -0
  177. package/locales/tr/index.esm.mjs +95 -0
  178. package/locales/tr/package.json +19 -0
  179. package/locales/uk/index.cjs +97 -0
  180. package/locales/uk/index.d.cts +3 -0
  181. package/locales/uk/index.esm.d.mts +3 -0
  182. package/locales/uk/index.esm.mjs +95 -0
  183. package/locales/uk/package.json +19 -0
  184. package/locales/vi/index.cjs +97 -0
  185. package/locales/vi/index.d.cts +3 -0
  186. package/locales/vi/index.esm.d.mts +3 -0
  187. package/locales/vi/index.esm.mjs +95 -0
  188. package/locales/vi/package.json +19 -0
  189. package/locales/zh-Hans/index.cjs +97 -0
  190. package/locales/zh-Hans/index.d.cts +3 -0
  191. package/locales/zh-Hans/index.esm.d.mts +3 -0
  192. package/locales/zh-Hans/index.esm.mjs +95 -0
  193. package/locales/zh-Hans/package.json +19 -0
  194. package/locales/zh-Hant/index.cjs +97 -0
  195. package/locales/zh-Hant/index.d.cts +3 -0
  196. package/locales/zh-Hant/index.esm.d.mts +3 -0
  197. package/locales/zh-Hant/index.esm.mjs +95 -0
  198. package/locales/zh-Hant/package.json +19 -0
  199. package/package.json +154 -0
  200. package/src/components/MantineReactTable.tsx +37 -0
  201. package/src/components/body/MRT_TableBody.module.css +42 -0
  202. package/src/components/body/MRT_TableBody.tsx +215 -0
  203. package/src/components/body/MRT_TableBodyCell.module.css +107 -0
  204. package/src/components/body/MRT_TableBodyCell.tsx +351 -0
  205. package/src/components/body/MRT_TableBodyCellValue.tsx +113 -0
  206. package/src/components/body/MRT_TableBodyEmptyRow.tsx +110 -0
  207. package/src/components/body/MRT_TableBodyRow.module.css +252 -0
  208. package/src/components/body/MRT_TableBodyRow.tsx +263 -0
  209. package/src/components/body/MRT_TableBodyRowGrabHandle.tsx +58 -0
  210. package/src/components/body/MRT_TableBodyRowPinButton.tsx +58 -0
  211. package/src/components/body/MRT_TableDetailPanel.module.css +35 -0
  212. package/src/components/body/MRT_TableDetailPanel.tsx +131 -0
  213. package/src/components/buttons/MRT_ColumnPinningButtons.module.css +11 -0
  214. package/src/components/buttons/MRT_ColumnPinningButtons.tsx +68 -0
  215. package/src/components/buttons/MRT_CopyButton.module.css +27 -0
  216. package/src/components/buttons/MRT_CopyButton.tsx +83 -0
  217. package/src/components/buttons/MRT_EditActionButtons.module.css +4 -0
  218. package/src/components/buttons/MRT_EditActionButtons.tsx +128 -0
  219. package/src/components/buttons/MRT_ExpandAllButton.module.css +26 -0
  220. package/src/components/buttons/MRT_ExpandAllButton.tsx +83 -0
  221. package/src/components/buttons/MRT_ExpandButton.module.css +37 -0
  222. package/src/components/buttons/MRT_ExpandButton.tsx +120 -0
  223. package/src/components/buttons/MRT_GrabHandleButton.module.css +6 -0
  224. package/src/components/buttons/MRT_GrabHandleButton.tsx +64 -0
  225. package/src/components/buttons/MRT_RowPinButton.tsx +83 -0
  226. package/src/components/buttons/MRT_ShowHideColumnsButton.tsx +45 -0
  227. package/src/components/buttons/MRT_ToggleDensePaddingButton.tsx +65 -0
  228. package/src/components/buttons/MRT_ToggleFiltersButton.tsx +44 -0
  229. package/src/components/buttons/MRT_ToggleFullScreenButton.tsx +58 -0
  230. package/src/components/buttons/MRT_ToggleGlobalFilterButton.tsx +51 -0
  231. package/src/components/buttons/MRT_ToggleRowActionMenuButton.tsx +86 -0
  232. package/src/components/footer/MRT_TableFooter.module.css +17 -0
  233. package/src/components/footer/MRT_TableFooter.tsx +72 -0
  234. package/src/components/footer/MRT_TableFooterCell.module.css +50 -0
  235. package/src/components/footer/MRT_TableFooterCell.tsx +122 -0
  236. package/src/components/footer/MRT_TableFooterRow.module.css +10 -0
  237. package/src/components/footer/MRT_TableFooterRow.tsx +94 -0
  238. package/src/components/head/MRT_TableHead.module.css +32 -0
  239. package/src/components/head/MRT_TableHead.tsx +108 -0
  240. package/src/components/head/MRT_TableHeadCell.module.css +163 -0
  241. package/src/components/head/MRT_TableHeadCell.tsx +322 -0
  242. package/src/components/head/MRT_TableHeadCellFilterContainer.module.css +5 -0
  243. package/src/components/head/MRT_TableHeadCellFilterContainer.tsx +147 -0
  244. package/src/components/head/MRT_TableHeadCellFilterLabel.module.css +14 -0
  245. package/src/components/head/MRT_TableHeadCellFilterLabel.tsx +171 -0
  246. package/src/components/head/MRT_TableHeadCellGrabHandle.tsx +81 -0
  247. package/src/components/head/MRT_TableHeadCellResizeHandle.module.css +44 -0
  248. package/src/components/head/MRT_TableHeadCellResizeHandle.tsx +67 -0
  249. package/src/components/head/MRT_TableHeadCellSortLabel.module.css +22 -0
  250. package/src/components/head/MRT_TableHeadCellSortLabel.tsx +89 -0
  251. package/src/components/head/MRT_TableHeadRow.module.css +12 -0
  252. package/src/components/head/MRT_TableHeadRow.tsx +87 -0
  253. package/src/components/inputs/MRT_EditCellTextInput.tsx +218 -0
  254. package/src/components/inputs/MRT_FilterCheckBox.module.css +4 -0
  255. package/src/components/inputs/MRT_FilterCheckbox.tsx +79 -0
  256. package/src/components/inputs/MRT_FilterRangeFields.module.css +5 -0
  257. package/src/components/inputs/MRT_FilterRangeFields.tsx +35 -0
  258. package/src/components/inputs/MRT_FilterRangeSlider.module.css +6 -0
  259. package/src/components/inputs/MRT_FilterRangeSlider.tsx +106 -0
  260. package/src/components/inputs/MRT_FilterTextInput.module.css +27 -0
  261. package/src/components/inputs/MRT_FilterTextInput.tsx +417 -0
  262. package/src/components/inputs/MRT_GlobalFilterTextInput.module.css +11 -0
  263. package/src/components/inputs/MRT_GlobalFilterTextInput.tsx +141 -0
  264. package/src/components/inputs/MRT_SelectCheckbox.tsx +137 -0
  265. package/src/components/menus/MRT_ColumnActionMenu.module.css +7 -0
  266. package/src/components/menus/MRT_ColumnActionMenu.tsx +287 -0
  267. package/src/components/menus/MRT_FilterOptionMenu.module.css +6 -0
  268. package/src/components/menus/MRT_FilterOptionMenu.tsx +274 -0
  269. package/src/components/menus/MRT_RowActionMenu.tsx +74 -0
  270. package/src/components/menus/MRT_ShowHideColumnsMenu.module.css +10 -0
  271. package/src/components/menus/MRT_ShowHideColumnsMenu.tsx +135 -0
  272. package/src/components/menus/MRT_ShowHideColumnsMenuItems.module.css +35 -0
  273. package/src/components/menus/MRT_ShowHideColumnsMenuItems.tsx +170 -0
  274. package/src/components/modals/MRT_EditRowModal.tsx +97 -0
  275. package/src/components/table/MRT_Table.module.css +7 -0
  276. package/src/components/table/MRT_Table.tsx +110 -0
  277. package/src/components/table/MRT_TableContainer.module.css +20 -0
  278. package/src/components/table/MRT_TableContainer.tsx +109 -0
  279. package/src/components/table/MRT_TablePaper.module.css +88 -0
  280. package/src/components/table/MRT_TablePaper.tsx +92 -0
  281. package/src/components/toolbar/MRT_BottomToolbar.module.css +40 -0
  282. package/src/components/toolbar/MRT_BottomToolbar.tsx +100 -0
  283. package/src/components/toolbar/MRT_ProgressBar.module.css +10 -0
  284. package/src/components/toolbar/MRT_ProgressBar.tsx +53 -0
  285. package/src/components/toolbar/MRT_TablePagination.module.css +20 -0
  286. package/src/components/toolbar/MRT_TablePagination.tsx +166 -0
  287. package/src/components/toolbar/MRT_ToolbarAlertBanner.module.css +37 -0
  288. package/src/components/toolbar/MRT_ToolbarAlertBanner.tsx +168 -0
  289. package/src/components/toolbar/MRT_ToolbarDropZone.module.css +23 -0
  290. package/src/components/toolbar/MRT_ToolbarDropZone.tsx +67 -0
  291. package/src/components/toolbar/MRT_ToolbarInternalButtons.module.css +6 -0
  292. package/src/components/toolbar/MRT_ToolbarInternalButtons.tsx +73 -0
  293. package/src/components/toolbar/MRT_TopToolbar.module.css +24 -0
  294. package/src/components/toolbar/MRT_TopToolbar.tsx +128 -0
  295. package/src/components/toolbar/common.styles.module.css +10 -0
  296. package/src/fns/aggregationFns.ts +3 -0
  297. package/src/fns/filterFns.ts +272 -0
  298. package/src/fns/sortingFns.ts +34 -0
  299. package/src/hooks/display-columns/getMRT_RowActionsColumnDef.tsx +23 -0
  300. package/src/hooks/display-columns/getMRT_RowDragColumnDef.tsx +30 -0
  301. package/src/hooks/display-columns/getMRT_RowExpandColumnDef.tsx +92 -0
  302. package/src/hooks/display-columns/getMRT_RowNumbersColumnDef.tsx +30 -0
  303. package/src/hooks/display-columns/getMRT_RowPinningColumnDef.tsx +24 -0
  304. package/src/hooks/display-columns/getMRT_RowSelectColumnDef.tsx +34 -0
  305. package/src/hooks/display-columns/getMRT_RowSpacerColumnDef.tsx +34 -0
  306. package/src/hooks/useMRT_ColumnVirtualizer.ts +129 -0
  307. package/src/hooks/useMRT_Effects.ts +105 -0
  308. package/src/hooks/useMRT_RowVirtualizer.ts +95 -0
  309. package/src/hooks/useMRT_Rows.ts +46 -0
  310. package/src/hooks/useMRT_TableInstance.ts +314 -0
  311. package/src/hooks/useMRT_TableOptions.ts +264 -0
  312. package/src/hooks/useMantineReactTable.ts +14 -0
  313. package/src/icons.ts +73 -0
  314. package/src/index.ts +90 -0
  315. package/src/locales/ar.ts +96 -0
  316. package/src/locales/az.ts +96 -0
  317. package/src/locales/bg.ts +96 -0
  318. package/src/locales/cs.ts +97 -0
  319. package/src/locales/da.ts +96 -0
  320. package/src/locales/de.ts +96 -0
  321. package/src/locales/el.ts +96 -0
  322. package/src/locales/en.ts +96 -0
  323. package/src/locales/es.ts +96 -0
  324. package/src/locales/et.ts +97 -0
  325. package/src/locales/fa.ts +96 -0
  326. package/src/locales/fi.ts +97 -0
  327. package/src/locales/fr.ts +96 -0
  328. package/src/locales/he.ts +96 -0
  329. package/src/locales/hr.ts +96 -0
  330. package/src/locales/hu.ts +96 -0
  331. package/src/locales/hy.ts +96 -0
  332. package/src/locales/id.ts +97 -0
  333. package/src/locales/it.ts +96 -0
  334. package/src/locales/ja.ts +96 -0
  335. package/src/locales/ko.ts +96 -0
  336. package/src/locales/nl.ts +96 -0
  337. package/src/locales/no.ts +97 -0
  338. package/src/locales/np.ts +97 -0
  339. package/src/locales/pl.ts +96 -0
  340. package/src/locales/pt-BR.ts +96 -0
  341. package/src/locales/pt.ts +96 -0
  342. package/src/locales/ro.ts +96 -0
  343. package/src/locales/ru.ts +96 -0
  344. package/src/locales/sk.ts +97 -0
  345. package/src/locales/sr-Cyrl-RS.ts +96 -0
  346. package/src/locales/sr-Latn-RS.ts +96 -0
  347. package/src/locales/sv.ts +96 -0
  348. package/src/locales/tr.ts +96 -0
  349. package/src/locales/uk.ts +96 -0
  350. package/src/locales/vi.ts +96 -0
  351. package/src/locales/zh-Hans.ts +95 -0
  352. package/src/locales/zh-Hant.ts +95 -0
  353. package/src/types.ts +1276 -0
  354. package/src/typings.d.ts +1 -0
  355. package/src/utils/column.utils.ts +124 -0
  356. package/src/utils/displayColumn.utils.ts +153 -0
  357. package/src/utils/row.utils.ts +263 -0
  358. package/src/utils/style.utils.ts +32 -0
  359. package/src/utils/tanstack.helpers.ts +66 -0
  360. package/src/utils/utils.ts +4 -0
  361. package/src/utils/virtualization.utils.ts +19 -0
  362. package/styles.css +1320 -0
@@ -0,0 +1,314 @@
1
+ import { useMemo, useRef, useState } from 'react';
2
+
3
+ import { useReactTable } from '@tanstack/react-table';
4
+
5
+ import {
6
+ type MRT_Cell,
7
+ type MRT_Column,
8
+ type MRT_ColumnDef,
9
+ type MRT_ColumnFilterFnsState,
10
+ type MRT_ColumnOrderState,
11
+ type MRT_ColumnSizingInfoState,
12
+ type MRT_DefinedTableOptions,
13
+ type MRT_DensityState,
14
+ type MRT_FilterOption,
15
+ type MRT_GroupingState,
16
+ type MRT_PaginationState,
17
+ type MRT_Row,
18
+ type MRT_RowData,
19
+ type MRT_StatefulTableOptions,
20
+ type MRT_TableInstance,
21
+ type MRT_TableState,
22
+ type MRT_Updater,
23
+ } from '../types';
24
+ import {
25
+ getAllLeafColumnDefs,
26
+ getColumnId,
27
+ getDefaultColumnFilterFn,
28
+ prepareColumns,
29
+ } from '../utils/column.utils';
30
+ import {
31
+ getDefaultColumnOrderIds,
32
+ showRowActionsColumn,
33
+ showRowDragColumn,
34
+ showRowExpandColumn,
35
+ showRowNumbersColumn,
36
+ showRowPinningColumn,
37
+ showRowSelectionColumn,
38
+ showRowSpacerColumn,
39
+ } from '../utils/displayColumn.utils';
40
+ import { createRow } from '../utils/tanstack.helpers';
41
+ import { getMRT_RowActionsColumnDef } from './display-columns/getMRT_RowActionsColumnDef';
42
+ import { getMRT_RowDragColumnDef } from './display-columns/getMRT_RowDragColumnDef';
43
+ import { getMRT_RowExpandColumnDef } from './display-columns/getMRT_RowExpandColumnDef';
44
+ import { getMRT_RowNumbersColumnDef } from './display-columns/getMRT_RowNumbersColumnDef';
45
+ import { getMRT_RowPinningColumnDef } from './display-columns/getMRT_RowPinningColumnDef';
46
+ import { getMRT_RowSelectColumnDef } from './display-columns/getMRT_RowSelectColumnDef';
47
+ import { getMRT_RowSpacerColumnDef } from './display-columns/getMRT_RowSpacerColumnDef';
48
+ import { useMRT_Effects } from './useMRT_Effects';
49
+
50
+ /**
51
+ * The MRT hook that wraps the TanStack useReactTable hook and adds additional functionality
52
+ * @param definedTableOptions - table options with proper defaults set
53
+ * @returns the MRT table instance
54
+ */
55
+ export const useMRT_TableInstance = <TData extends MRT_RowData>(
56
+ definedTableOptions: MRT_DefinedTableOptions<TData>,
57
+ ): MRT_TableInstance<TData> => {
58
+ 'use no memo';
59
+ const lastSelectedRowId = useRef<null | string>(null);
60
+ const bottomToolbarRef = useRef<HTMLDivElement | null>(null);
61
+ const editInputRefs = useRef<Record<string, HTMLInputElement>>({});
62
+ const filterInputRefs = useRef<Record<string, HTMLInputElement>>({});
63
+ const searchInputRef = useRef<HTMLInputElement | null>(null);
64
+ const tableContainerRef = useRef<HTMLDivElement | null>(null);
65
+ const tableHeadCellRefs = useRef<Record<string, HTMLTableCellElement>>({});
66
+ const tablePaperRef = useRef<HTMLDivElement | null>(null);
67
+ const topToolbarRef = useRef<HTMLDivElement | null>(null);
68
+ const tableHeadRef = useRef<HTMLTableSectionElement | null>(null);
69
+ const tableFooterRef = useRef<HTMLTableSectionElement | null>(null);
70
+
71
+ //transform initial state with proper column order
72
+ const initialState: Partial<MRT_TableState<TData>> = useMemo(() => {
73
+ const initState = definedTableOptions.initialState ?? {};
74
+ initState.columnOrder =
75
+ initState.columnOrder ??
76
+ getDefaultColumnOrderIds({
77
+ ...definedTableOptions,
78
+ state: {
79
+ ...definedTableOptions.initialState,
80
+ ...definedTableOptions.state,
81
+ },
82
+ } as MRT_StatefulTableOptions<TData>);
83
+ initState.globalFilterFn = definedTableOptions.globalFilterFn ?? 'fuzzy';
84
+ return initState;
85
+ }, []);
86
+
87
+ definedTableOptions.initialState = initialState;
88
+
89
+ const [creatingRow, _setCreatingRow] = useState<MRT_Row<TData> | null>(
90
+ initialState.creatingRow ?? null,
91
+ );
92
+ const [columnFilterFns, setColumnFilterFns] =
93
+ useState<MRT_ColumnFilterFnsState>(() =>
94
+ Object.assign(
95
+ {},
96
+ ...getAllLeafColumnDefs(
97
+ definedTableOptions.columns as MRT_ColumnDef<TData>[],
98
+ ).map((col) => ({
99
+ [getColumnId(col)]:
100
+ col.filterFn instanceof Function
101
+ ? (col.filterFn.name ?? 'custom')
102
+ : (col.filterFn ??
103
+ initialState?.columnFilterFns?.[getColumnId(col)] ??
104
+ getDefaultColumnFilterFn(col)),
105
+ })),
106
+ ),
107
+ );
108
+ const [columnOrder, onColumnOrderChange] = useState<MRT_ColumnOrderState>(
109
+ initialState.columnOrder ?? [],
110
+ );
111
+ const [columnSizingInfo, onColumnSizingInfoChange] =
112
+ useState<MRT_ColumnSizingInfoState>(
113
+ initialState.columnSizingInfo ?? ({} as MRT_ColumnSizingInfoState),
114
+ );
115
+ const [density, setDensity] = useState<MRT_DensityState>(
116
+ initialState?.density ?? 'md',
117
+ );
118
+ const [draggingColumn, setDraggingColumn] =
119
+ useState<MRT_Column<TData> | null>(initialState.draggingColumn ?? null);
120
+ const [draggingRow, setDraggingRow] = useState<MRT_Row<TData> | null>(
121
+ initialState.draggingRow ?? null,
122
+ );
123
+ const [editingCell, setEditingCell] = useState<MRT_Cell<TData> | null>(
124
+ initialState.editingCell ?? null,
125
+ );
126
+ const [editingRow, setEditingRow] = useState<MRT_Row<TData> | null>(
127
+ initialState.editingRow ?? null,
128
+ );
129
+ const [globalFilterFn, setGlobalFilterFn] = useState<MRT_FilterOption>(
130
+ initialState.globalFilterFn ?? 'fuzzy',
131
+ );
132
+ const [grouping, onGroupingChange] = useState<MRT_GroupingState>(
133
+ initialState.grouping ?? [],
134
+ );
135
+ const [hoveredColumn, setHoveredColumn] = useState<null | Partial<
136
+ MRT_Column<TData>
137
+ >>(initialState.hoveredColumn ?? null);
138
+ const [hoveredRow, setHoveredRow] = useState<null | Partial<MRT_Row<TData>>>(
139
+ initialState.hoveredRow ?? null,
140
+ );
141
+ const [isFullScreen, setIsFullScreen] = useState<boolean>(
142
+ initialState?.isFullScreen ?? false,
143
+ );
144
+ const [pagination, onPaginationChange] = useState<MRT_PaginationState>(
145
+ initialState?.pagination ?? { pageIndex: 0, pageSize: 10 },
146
+ );
147
+ const [showAlertBanner, setShowAlertBanner] = useState<boolean>(
148
+ initialState?.showAlertBanner ?? false,
149
+ );
150
+ const [showColumnFilters, setShowColumnFilters] = useState<boolean>(
151
+ initialState?.showColumnFilters ?? false,
152
+ );
153
+ const [showGlobalFilter, setShowGlobalFilter] = useState<boolean>(
154
+ initialState?.showGlobalFilter ?? false,
155
+ );
156
+ const [showToolbarDropZone, setShowToolbarDropZone] = useState<boolean>(
157
+ initialState?.showToolbarDropZone ?? false,
158
+ );
159
+
160
+ definedTableOptions.state = {
161
+ columnFilterFns,
162
+ columnOrder,
163
+ columnSizingInfo,
164
+ creatingRow,
165
+ density,
166
+ draggingColumn,
167
+ draggingRow,
168
+ editingCell,
169
+ editingRow,
170
+ globalFilterFn,
171
+ grouping,
172
+ hoveredColumn,
173
+ hoveredRow,
174
+ isFullScreen,
175
+ pagination,
176
+ showAlertBanner,
177
+ showColumnFilters,
178
+ showGlobalFilter,
179
+ showToolbarDropZone,
180
+ ...definedTableOptions.state,
181
+ };
182
+
183
+ //The table options now include all state needed to help determine column visibility and order logic
184
+ const statefulTableOptions =
185
+ definedTableOptions as MRT_StatefulTableOptions<TData>;
186
+
187
+ //don't recompute columnDefs while resizing column or dragging column/row
188
+ const columnDefsRef = useRef<MRT_ColumnDef<TData>[]>([]);
189
+ statefulTableOptions.columns =
190
+ statefulTableOptions.state.columnSizingInfo.isResizingColumn ||
191
+ statefulTableOptions.state.draggingColumn ||
192
+ statefulTableOptions.state.draggingRow
193
+ ? columnDefsRef.current
194
+ : prepareColumns({
195
+ columnDefs: [
196
+ ...([
197
+ showRowPinningColumn(statefulTableOptions) &&
198
+ getMRT_RowPinningColumnDef(statefulTableOptions),
199
+ showRowDragColumn(statefulTableOptions) &&
200
+ getMRT_RowDragColumnDef(statefulTableOptions),
201
+ showRowActionsColumn(statefulTableOptions) &&
202
+ getMRT_RowActionsColumnDef(statefulTableOptions),
203
+ showRowExpandColumn(statefulTableOptions) &&
204
+ getMRT_RowExpandColumnDef(statefulTableOptions),
205
+ showRowSelectionColumn(statefulTableOptions) &&
206
+ getMRT_RowSelectColumnDef(statefulTableOptions),
207
+ showRowNumbersColumn(statefulTableOptions) &&
208
+ getMRT_RowNumbersColumnDef(statefulTableOptions),
209
+ ].filter(Boolean) as MRT_ColumnDef<TData>[]),
210
+ ...statefulTableOptions.columns,
211
+ ...([
212
+ showRowSpacerColumn(statefulTableOptions) &&
213
+ getMRT_RowSpacerColumnDef(statefulTableOptions),
214
+ ].filter(Boolean) as MRT_ColumnDef<TData>[]),
215
+ ],
216
+ tableOptions: statefulTableOptions,
217
+ });
218
+ columnDefsRef.current = statefulTableOptions.columns;
219
+
220
+ //if loading, generate blank rows to show skeleton loaders
221
+ statefulTableOptions.data = useMemo(
222
+ () =>
223
+ (statefulTableOptions.state.isLoading ||
224
+ statefulTableOptions.state.showSkeletons) &&
225
+ !statefulTableOptions.data.length
226
+ ? [
227
+ ...Array(
228
+ Math.min(statefulTableOptions.state.pagination.pageSize, 20),
229
+ ).fill(null),
230
+ ].map(() =>
231
+ Object.assign(
232
+ {},
233
+ ...getAllLeafColumnDefs(statefulTableOptions.columns).map(
234
+ (col) => ({
235
+ [getColumnId(col)]: null,
236
+ }),
237
+ ),
238
+ ),
239
+ )
240
+ : statefulTableOptions.data,
241
+ [
242
+ statefulTableOptions.data,
243
+ statefulTableOptions.state.isLoading,
244
+ statefulTableOptions.state.showSkeletons,
245
+ ],
246
+ );
247
+
248
+ //@ts-ignore
249
+ const table = useReactTable({
250
+ onColumnOrderChange,
251
+ onColumnSizingInfoChange,
252
+ onGroupingChange,
253
+ onPaginationChange,
254
+ ...statefulTableOptions,
255
+ globalFilterFn: statefulTableOptions.filterFns?.[globalFilterFn ?? 'fuzzy'],
256
+ }) as MRT_TableInstance<TData>;
257
+
258
+ table.refs = {
259
+ bottomToolbarRef,
260
+ editInputRefs,
261
+ filterInputRefs,
262
+ lastSelectedRowId,
263
+ searchInputRef,
264
+ tableContainerRef,
265
+ tableFooterRef,
266
+ tableHeadCellRefs,
267
+ tableHeadRef,
268
+ tablePaperRef,
269
+ topToolbarRef,
270
+ };
271
+
272
+ table.setCreatingRow = (row: MRT_Updater<MRT_Row<TData> | null | true>) => {
273
+ let _row = row;
274
+ if (row === true) {
275
+ _row = createRow(table);
276
+ }
277
+ if (statefulTableOptions?.onCreatingRowChange) {
278
+ statefulTableOptions.onCreatingRowChange(_row as MRT_Row<TData> | null);
279
+ } else {
280
+ _setCreatingRow(_row as MRT_Row<TData> | null);
281
+ }
282
+ };
283
+ table.setColumnFilterFns =
284
+ statefulTableOptions.onColumnFilterFnsChange ?? setColumnFilterFns;
285
+ table.setDensity = statefulTableOptions.onDensityChange ?? setDensity;
286
+ table.setDraggingColumn =
287
+ statefulTableOptions.onDraggingColumnChange ?? setDraggingColumn;
288
+ table.setDraggingRow =
289
+ statefulTableOptions.onDraggingRowChange ?? setDraggingRow;
290
+ table.setEditingCell =
291
+ statefulTableOptions.onEditingCellChange ?? setEditingCell;
292
+ table.setEditingRow =
293
+ statefulTableOptions.onEditingRowChange ?? setEditingRow;
294
+ table.setGlobalFilterFn =
295
+ statefulTableOptions.onGlobalFilterFnChange ?? setGlobalFilterFn;
296
+ table.setHoveredColumn =
297
+ statefulTableOptions.onHoveredColumnChange ?? setHoveredColumn;
298
+ table.setHoveredRow =
299
+ statefulTableOptions.onHoveredRowChange ?? setHoveredRow;
300
+ table.setIsFullScreen =
301
+ statefulTableOptions.onIsFullScreenChange ?? setIsFullScreen;
302
+ table.setShowAlertBanner =
303
+ statefulTableOptions.onShowAlertBannerChange ?? setShowAlertBanner;
304
+ table.setShowColumnFilters =
305
+ statefulTableOptions.onShowColumnFiltersChange ?? setShowColumnFilters;
306
+ table.setShowGlobalFilter =
307
+ statefulTableOptions.onShowGlobalFilterChange ?? setShowGlobalFilter;
308
+ table.setShowToolbarDropZone =
309
+ statefulTableOptions.onShowToolbarDropZoneChange ?? setShowToolbarDropZone;
310
+
311
+ useMRT_Effects(table);
312
+
313
+ return table;
314
+ };
@@ -0,0 +1,264 @@
1
+ import { useMemo } from 'react';
2
+
3
+ import {
4
+ getCoreRowModel,
5
+ getExpandedRowModel,
6
+ getFacetedMinMaxValues,
7
+ getFacetedRowModel,
8
+ getFacetedUniqueValues,
9
+ getFilteredRowModel,
10
+ getGroupedRowModel,
11
+ getPaginationRowModel,
12
+ getSortedRowModel,
13
+ } from '@tanstack/react-table';
14
+
15
+ import { useDirection } from '@mantine/core';
16
+
17
+ import { MRT_AggregationFns } from '../fns/aggregationFns';
18
+ import { MRT_FilterFns } from '../fns/filterFns';
19
+ import { MRT_SortingFns } from '../fns/sortingFns';
20
+ import { MRT_Default_Icons } from '../icons';
21
+ import { MRT_Localization_EN } from '../locales/en';
22
+ import {
23
+ type MRT_DefinedTableOptions,
24
+ type MRT_RowData,
25
+ type MRT_TableOptions,
26
+ } from '../types';
27
+
28
+ export const MRT_DefaultColumn = {
29
+ filterVariant: 'text',
30
+ maxSize: 1000,
31
+ minSize: 40,
32
+ size: 180,
33
+ } as const;
34
+
35
+ export const MRT_DefaultDisplayColumn = {
36
+ columnDefType: 'display',
37
+ enableClickToCopy: false,
38
+ enableColumnActions: false,
39
+ enableColumnDragging: false,
40
+ enableColumnFilter: false,
41
+ enableColumnOrdering: false,
42
+ enableEditing: false,
43
+ enableGlobalFilter: false,
44
+ enableGrouping: false,
45
+ enableHiding: false,
46
+ enableResizing: false,
47
+ enableSorting: false,
48
+ } as const;
49
+
50
+ export const useMRT_TableOptions: <TData extends MRT_RowData>(
51
+ tableOptions: MRT_TableOptions<TData>,
52
+ ) => MRT_DefinedTableOptions<TData> = <TData extends MRT_RowData>({
53
+ aggregationFns,
54
+ autoResetExpanded = false,
55
+ columnFilterDisplayMode = 'subheader',
56
+ columnResizeDirection,
57
+ columnResizeMode = 'onChange',
58
+ createDisplayMode = 'modal',
59
+ defaultColumn,
60
+ defaultDisplayColumn,
61
+ editDisplayMode = 'modal',
62
+ enableBatchRowSelection = true,
63
+ enableBottomToolbar = true,
64
+ enableColumnActions = true,
65
+ enableColumnFilters = true,
66
+ enableColumnOrdering = false,
67
+ enableColumnPinning = false,
68
+ enableColumnResizing = false,
69
+ enableColumnVirtualization,
70
+ enableDensityToggle = true,
71
+ enableExpandAll = true,
72
+ enableExpanding,
73
+ enableFacetedValues = false,
74
+ enableFilterMatchHighlighting = true,
75
+ enableFilters = true,
76
+ enableFullScreenToggle = true,
77
+ enableGlobalFilter = true,
78
+ enableGlobalFilterRankedResults = true,
79
+ enableGrouping = false,
80
+ enableHeaderActionsHoverReveal = false,
81
+ enableHiding = true,
82
+ enableMultiRowSelection = true,
83
+ enableMultiSort = true,
84
+ enablePagination = true,
85
+ enableRowPinning = false,
86
+ enableRowSelection = false,
87
+ enableRowVirtualization,
88
+ enableSelectAll = true,
89
+ enableSorting = true,
90
+ enableStickyHeader = false,
91
+ enableTableFooter = true,
92
+ enableTableHead = true,
93
+ enableToolbarInternalActions = true,
94
+ enableTopToolbar = true,
95
+ filterFns,
96
+ icons,
97
+ layoutMode,
98
+ localization,
99
+ manualFiltering,
100
+ manualGrouping,
101
+ manualPagination,
102
+ manualSorting,
103
+ paginationDisplayMode = 'default',
104
+ positionActionsColumn = 'first',
105
+ positionCreatingRow = 'top',
106
+ positionExpandColumn = 'first',
107
+ positionGlobalFilter = 'right',
108
+ positionPagination = 'bottom',
109
+ positionToolbarAlertBanner = 'top',
110
+ positionToolbarDropZone = 'top',
111
+ rowNumberDisplayMode = 'static',
112
+ rowPinningDisplayMode = 'sticky',
113
+ selectAllMode = 'page',
114
+ sortingFns,
115
+ ...rest
116
+ }: MRT_TableOptions<TData>) => {
117
+ 'use no memo';
118
+ const direction = useDirection();
119
+
120
+ icons = useMemo(() => ({ ...MRT_Default_Icons, ...icons }), [icons]);
121
+ localization = useMemo(
122
+ () => ({
123
+ ...MRT_Localization_EN,
124
+ ...localization,
125
+ }),
126
+ [localization],
127
+ );
128
+ aggregationFns = useMemo(
129
+ () => ({ ...MRT_AggregationFns, ...aggregationFns }),
130
+ [],
131
+ );
132
+ filterFns = useMemo(() => ({ ...MRT_FilterFns, ...filterFns }), []);
133
+ sortingFns = useMemo(() => ({ ...MRT_SortingFns, ...sortingFns }), []);
134
+ defaultColumn = useMemo(
135
+ () => ({ ...MRT_DefaultColumn, ...defaultColumn }),
136
+ [defaultColumn],
137
+ );
138
+ defaultDisplayColumn = useMemo(
139
+ () => ({
140
+ ...MRT_DefaultDisplayColumn,
141
+ ...defaultDisplayColumn,
142
+ }),
143
+ [defaultDisplayColumn],
144
+ );
145
+ //cannot be changed after initialization
146
+ [enableColumnVirtualization, enableRowVirtualization] = useMemo(
147
+ () => [enableColumnVirtualization, enableRowVirtualization],
148
+ [],
149
+ );
150
+
151
+ if (!columnResizeDirection) {
152
+ columnResizeDirection = direction.dir || 'ltr';
153
+ }
154
+
155
+ layoutMode =
156
+ layoutMode || (enableColumnResizing ? 'grid-no-grow' : 'semantic');
157
+ if (
158
+ layoutMode === 'semantic' &&
159
+ (enableRowVirtualization || enableColumnVirtualization)
160
+ ) {
161
+ layoutMode = 'grid';
162
+ }
163
+
164
+ if (enableRowVirtualization) {
165
+ enableStickyHeader = true;
166
+ }
167
+
168
+ if (enablePagination === false && manualPagination === undefined) {
169
+ manualPagination = true;
170
+ }
171
+
172
+ if (!rest.data?.length) {
173
+ manualFiltering = true;
174
+ manualGrouping = true;
175
+ manualPagination = true;
176
+ manualSorting = true;
177
+ }
178
+
179
+ return {
180
+ aggregationFns,
181
+ autoResetExpanded,
182
+ columnFilterDisplayMode,
183
+ columnResizeDirection,
184
+ columnResizeMode,
185
+ createDisplayMode,
186
+ defaultColumn,
187
+ defaultDisplayColumn,
188
+ editDisplayMode,
189
+ enableBatchRowSelection,
190
+ enableBottomToolbar,
191
+ enableColumnActions,
192
+ enableColumnFilters,
193
+ enableColumnOrdering,
194
+ enableColumnPinning,
195
+ enableColumnResizing,
196
+ enableColumnVirtualization,
197
+ enableDensityToggle,
198
+ enableExpandAll,
199
+ enableExpanding,
200
+ enableFacetedValues,
201
+ enableFilterMatchHighlighting,
202
+ enableFilters,
203
+ enableFullScreenToggle,
204
+ enableGlobalFilter,
205
+ enableGlobalFilterRankedResults,
206
+ enableGrouping,
207
+ enableHeaderActionsHoverReveal,
208
+ enableHiding,
209
+ enableMultiRowSelection,
210
+ enableMultiSort,
211
+ enablePagination,
212
+ enableRowPinning,
213
+ enableRowSelection,
214
+ enableRowVirtualization,
215
+ enableSelectAll,
216
+ enableSorting,
217
+ enableStickyHeader,
218
+ enableTableFooter,
219
+ enableTableHead,
220
+ enableToolbarInternalActions,
221
+ enableTopToolbar,
222
+ filterFns,
223
+ getCoreRowModel: getCoreRowModel(),
224
+ getExpandedRowModel:
225
+ enableExpanding || enableGrouping ? getExpandedRowModel() : undefined,
226
+ getFacetedMinMaxValues: enableFacetedValues
227
+ ? getFacetedMinMaxValues()
228
+ : undefined,
229
+ getFacetedRowModel: enableFacetedValues ? getFacetedRowModel() : undefined,
230
+ getFacetedUniqueValues: enableFacetedValues
231
+ ? getFacetedUniqueValues()
232
+ : undefined,
233
+ getFilteredRowModel:
234
+ enableColumnFilters || enableGlobalFilter || enableFilters
235
+ ? getFilteredRowModel()
236
+ : undefined,
237
+ getGroupedRowModel: enableGrouping ? getGroupedRowModel() : undefined,
238
+ getPaginationRowModel: enablePagination
239
+ ? getPaginationRowModel()
240
+ : undefined,
241
+ getSortedRowModel: enableSorting ? getSortedRowModel() : undefined,
242
+ getSubRows: (row) => row?.subRows,
243
+ icons,
244
+ layoutMode,
245
+ localization,
246
+ manualFiltering,
247
+ manualGrouping,
248
+ manualPagination,
249
+ manualSorting,
250
+ paginationDisplayMode,
251
+ positionActionsColumn,
252
+ positionCreatingRow,
253
+ positionExpandColumn,
254
+ positionGlobalFilter,
255
+ positionPagination,
256
+ positionToolbarAlertBanner,
257
+ positionToolbarDropZone,
258
+ rowNumberDisplayMode,
259
+ rowPinningDisplayMode,
260
+ selectAllMode,
261
+ sortingFns,
262
+ ...rest,
263
+ } as MRT_DefinedTableOptions<TData>;
264
+ };
@@ -0,0 +1,14 @@
1
+ import {
2
+ type MRT_RowData,
3
+ type MRT_TableInstance,
4
+ type MRT_TableOptions,
5
+ } from '../types';
6
+ import { useMRT_TableInstance } from './useMRT_TableInstance';
7
+ import { useMRT_TableOptions } from './useMRT_TableOptions';
8
+
9
+ export const useMantineReactTable = <TData extends MRT_RowData>(
10
+ tableOptions: MRT_TableOptions<TData>,
11
+ ): MRT_TableInstance<TData> => {
12
+ 'use no memo';
13
+ return useMRT_TableInstance(useMRT_TableOptions(tableOptions));
14
+ };
package/src/icons.ts ADDED
@@ -0,0 +1,73 @@
1
+ import {
2
+ IconArrowAutofitContent,
3
+ IconArrowsSort,
4
+ IconBaselineDensityLarge,
5
+ IconBaselineDensityMedium,
6
+ IconBaselineDensitySmall,
7
+ IconBoxMultiple,
8
+ IconChevronDown,
9
+ IconChevronLeft,
10
+ IconChevronLeftPipe,
11
+ IconChevronRight,
12
+ IconChevronRightPipe,
13
+ IconChevronsDown,
14
+ IconCircleX,
15
+ IconClearAll,
16
+ IconColumns,
17
+ IconDeviceFloppy,
18
+ IconDots,
19
+ IconDotsVertical,
20
+ IconEdit,
21
+ IconEyeOff,
22
+ IconFilter,
23
+ IconFilterCog,
24
+ IconFilterOff,
25
+ IconGripHorizontal,
26
+ IconMaximize,
27
+ IconMinimize,
28
+ IconPinned,
29
+ IconPinnedOff,
30
+ IconSearch,
31
+ IconSearchOff,
32
+ IconSortAscending,
33
+ IconSortDescending,
34
+ IconX,
35
+ } from '@tabler/icons-react';
36
+
37
+ export const MRT_Default_Icons = {
38
+ IconArrowAutofitContent,
39
+ IconArrowsSort,
40
+ IconBaselineDensityLarge,
41
+ IconBaselineDensityMedium,
42
+ IconBaselineDensitySmall,
43
+ IconBoxMultiple,
44
+ IconChevronDown,
45
+ IconChevronLeft,
46
+ IconChevronLeftPipe,
47
+ IconChevronRight,
48
+ IconChevronRightPipe,
49
+ IconChevronsDown,
50
+ IconCircleX,
51
+ IconClearAll,
52
+ IconColumns,
53
+ IconDeviceFloppy,
54
+ IconDots,
55
+ IconDotsVertical,
56
+ IconEdit,
57
+ IconEyeOff,
58
+ IconFilter,
59
+ IconFilterCog,
60
+ IconFilterOff,
61
+ IconGripHorizontal,
62
+ IconMaximize,
63
+ IconMinimize,
64
+ IconPinned,
65
+ IconPinnedOff,
66
+ IconSearch,
67
+ IconSearchOff,
68
+ IconSortAscending,
69
+ IconSortDescending,
70
+ IconX,
71
+ } as const;
72
+
73
+ export type MRT_Icons = Record<keyof typeof MRT_Default_Icons, any>;