@lminii/material-react-table-mcp 4.0.1

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 (284) hide show
  1. package/README.md +68 -0
  2. package/data/MIGRATION.md +136 -0
  3. package/data/api.json +5379 -0
  4. package/data/examples/advanced.js +215 -0
  5. package/data/examples/advanced.tsx +309 -0
  6. package/data/examples/aggregation-and-grouping.js +116 -0
  7. package/data/examples/aggregation-and-grouping.tsx +153 -0
  8. package/data/examples/aggregation-multi.js +89 -0
  9. package/data/examples/aggregation-multi.tsx +105 -0
  10. package/data/examples/alternate-column-filtering.js +38 -0
  11. package/data/examples/alternate-column-filtering.tsx +49 -0
  12. package/data/examples/alternate-detail-panel.js +65 -0
  13. package/data/examples/alternate-detail-panel.tsx +81 -0
  14. package/data/examples/alternate-pagination.js +17 -0
  15. package/data/examples/alternate-pagination.tsx +23 -0
  16. package/data/examples/basic.js +86 -0
  17. package/data/examples/basic.tsx +109 -0
  18. package/data/examples/chart-detail-panel.js +69 -0
  19. package/data/examples/chart-detail-panel.tsx +89 -0
  20. package/data/examples/column-actions-space.js +34 -0
  21. package/data/examples/column-actions-space.tsx +44 -0
  22. package/data/examples/column-alignment.js +58 -0
  23. package/data/examples/column-alignment.tsx +70 -0
  24. package/data/examples/custom-column-actions.js +74 -0
  25. package/data/examples/custom-column-actions.tsx +109 -0
  26. package/data/examples/custom-column-filtering-ui.js +59 -0
  27. package/data/examples/custom-column-filtering-ui.tsx +89 -0
  28. package/data/examples/custom-headless.js +85 -0
  29. package/data/examples/custom-headless.tsx +125 -0
  30. package/data/examples/custom-top-toolbar.js +60 -0
  31. package/data/examples/custom-top-toolbar.tsx +88 -0
  32. package/data/examples/customize-display-columns.js +72 -0
  33. package/data/examples/customize-display-columns.tsx +85 -0
  34. package/data/examples/customize-filter-components.js +78 -0
  35. package/data/examples/customize-filter-components.tsx +101 -0
  36. package/data/examples/customize-filter-modes.js +59 -0
  37. package/data/examples/customize-filter-modes.tsx +73 -0
  38. package/data/examples/customize-filter-variants.js +98 -0
  39. package/data/examples/customize-filter-variants.tsx +116 -0
  40. package/data/examples/customize-global-filter-component.js +37 -0
  41. package/data/examples/customize-global-filter-component.tsx +52 -0
  42. package/data/examples/customize-remove-column-grouping.js +75 -0
  43. package/data/examples/customize-remove-column-grouping.tsx +94 -0
  44. package/data/examples/customize-row-selection.js +43 -0
  45. package/data/examples/customize-row-selection.tsx +54 -0
  46. package/data/examples/customize-table-styles.js +81 -0
  47. package/data/examples/customize-table-styles.tsx +100 -0
  48. package/data/examples/disable-column-actions.js +26 -0
  49. package/data/examples/disable-column-actions.tsx +37 -0
  50. package/data/examples/disable-column-hiding.js +74 -0
  51. package/data/examples/disable-column-hiding.tsx +90 -0
  52. package/data/examples/disable-density-toggle.js +37 -0
  53. package/data/examples/disable-density-toggle.tsx +49 -0
  54. package/data/examples/dynamic-columns.js +124 -0
  55. package/data/examples/dynamic-columns.tsx +189 -0
  56. package/data/examples/editing-crud-cell.js +288 -0
  57. package/data/examples/editing-crud-cell.tsx +377 -0
  58. package/data/examples/editing-crud-modal.js +275 -0
  59. package/data/examples/editing-crud-modal.tsx +370 -0
  60. package/data/examples/editing-crud-row.js +255 -0
  61. package/data/examples/editing-crud-row.tsx +333 -0
  62. package/data/examples/editing-crud-table.js +280 -0
  63. package/data/examples/editing-crud-table.tsx +369 -0
  64. package/data/examples/editing-crud-tree.js +328 -0
  65. package/data/examples/editing-crud-tree.tsx +416 -0
  66. package/data/examples/enable-cell-actions.js +52 -0
  67. package/data/examples/enable-cell-actions.tsx +76 -0
  68. package/data/examples/enable-click-to-copy.js +33 -0
  69. package/data/examples/enable-click-to-copy.tsx +39 -0
  70. package/data/examples/enable-column-grouping.js +69 -0
  71. package/data/examples/enable-column-grouping.tsx +120 -0
  72. package/data/examples/enable-column-ordering.js +37 -0
  73. package/data/examples/enable-column-ordering.tsx +48 -0
  74. package/data/examples/enable-column-pinning.js +58 -0
  75. package/data/examples/enable-column-pinning.tsx +69 -0
  76. package/data/examples/enable-column-resizing.js +45 -0
  77. package/data/examples/enable-column-resizing.tsx +56 -0
  78. package/data/examples/enable-column-virtualization.js +19 -0
  79. package/data/examples/enable-column-virtualization.tsx +27 -0
  80. package/data/examples/enable-detail-panel-conditionally.js +61 -0
  81. package/data/examples/enable-detail-panel-conditionally.tsx +78 -0
  82. package/data/examples/enable-detail-panel-virtualized.js +64 -0
  83. package/data/examples/enable-detail-panel-virtualized.tsx +80 -0
  84. package/data/examples/enable-expanding-tree.js +87 -0
  85. package/data/examples/enable-expanding-tree.tsx +110 -0
  86. package/data/examples/enable-filter-facet-values.js +52 -0
  87. package/data/examples/enable-filter-facet-values.tsx +65 -0
  88. package/data/examples/enable-row-dragging.js +102 -0
  89. package/data/examples/enable-row-dragging.tsx +137 -0
  90. package/data/examples/enable-row-numbers-original.js +37 -0
  91. package/data/examples/enable-row-numbers-original.tsx +48 -0
  92. package/data/examples/enable-row-numbers-static.js +37 -0
  93. package/data/examples/enable-row-numbers-static.tsx +48 -0
  94. package/data/examples/enable-row-ordering.js +40 -0
  95. package/data/examples/enable-row-ordering.tsx +57 -0
  96. package/data/examples/enable-row-pinning-select.js +64 -0
  97. package/data/examples/enable-row-pinning-select.tsx +76 -0
  98. package/data/examples/enable-row-pinning-static.js +39 -0
  99. package/data/examples/enable-row-pinning-static.tsx +50 -0
  100. package/data/examples/enable-row-pinning-sticky.js +57 -0
  101. package/data/examples/enable-row-pinning-sticky.tsx +69 -0
  102. package/data/examples/enable-row-selection.js +71 -0
  103. package/data/examples/enable-row-selection.tsx +96 -0
  104. package/data/examples/enable-row-virtualization.js +85 -0
  105. package/data/examples/enable-row-virtualization.tsx +101 -0
  106. package/data/examples/enable-sticky-header.js +47 -0
  107. package/data/examples/enable-sticky-header.tsx +59 -0
  108. package/data/examples/expanding-tree-expanded.js +98 -0
  109. package/data/examples/expanding-tree-expanded.tsx +121 -0
  110. package/data/examples/expanding-tree-flat-parse.js +102 -0
  111. package/data/examples/expanding-tree-flat-parse.tsx +125 -0
  112. package/data/examples/expanding-tree-root-expanded.js +120 -0
  113. package/data/examples/expanding-tree-root-expanded.tsx +151 -0
  114. package/data/examples/export-to-csv.js +84 -0
  115. package/data/examples/export-to-csv.tsx +114 -0
  116. package/data/examples/export-to-pdf.js +76 -0
  117. package/data/examples/export-to-pdf.tsx +104 -0
  118. package/data/examples/external-toolbar.js +82 -0
  119. package/data/examples/external-toolbar.tsx +108 -0
  120. package/data/examples/font-awesome-icons.js +62 -0
  121. package/data/examples/font-awesome-icons.tsx +106 -0
  122. package/data/examples/infinite-scrolling.js +137 -0
  123. package/data/examples/infinite-scrolling.tsx +208 -0
  124. package/data/examples/lazy-detail-panel.js +164 -0
  125. package/data/examples/lazy-detail-panel.tsx +262 -0
  126. package/data/examples/lazy-sub-rows.js +118 -0
  127. package/data/examples/lazy-sub-rows.tsx +190 -0
  128. package/data/examples/linear-progress.js +48 -0
  129. package/data/examples/linear-progress.tsx +66 -0
  130. package/data/examples/loading.js +34 -0
  131. package/data/examples/loading.tsx +50 -0
  132. package/data/examples/localization-i18n-ar.js +40 -0
  133. package/data/examples/localization-i18n-ar.tsx +65 -0
  134. package/data/examples/localization-i18n-az.js +38 -0
  135. package/data/examples/localization-i18n-az.tsx +60 -0
  136. package/data/examples/localization-i18n-bg.js +38 -0
  137. package/data/examples/localization-i18n-bg.tsx +60 -0
  138. package/data/examples/localization-i18n-cs.js +38 -0
  139. package/data/examples/localization-i18n-cs.tsx +60 -0
  140. package/data/examples/localization-i18n-da.js +38 -0
  141. package/data/examples/localization-i18n-da.tsx +60 -0
  142. package/data/examples/localization-i18n-de.js +38 -0
  143. package/data/examples/localization-i18n-de.tsx +60 -0
  144. package/data/examples/localization-i18n-el.js +38 -0
  145. package/data/examples/localization-i18n-el.tsx +60 -0
  146. package/data/examples/localization-i18n-en.js +38 -0
  147. package/data/examples/localization-i18n-en.tsx +60 -0
  148. package/data/examples/localization-i18n-es.js +38 -0
  149. package/data/examples/localization-i18n-es.tsx +60 -0
  150. package/data/examples/localization-i18n-et.js +38 -0
  151. package/data/examples/localization-i18n-et.tsx +60 -0
  152. package/data/examples/localization-i18n-fa.js +40 -0
  153. package/data/examples/localization-i18n-fa.tsx +66 -0
  154. package/data/examples/localization-i18n-fi.js +38 -0
  155. package/data/examples/localization-i18n-fi.tsx +60 -0
  156. package/data/examples/localization-i18n-fr.js +38 -0
  157. package/data/examples/localization-i18n-fr.tsx +60 -0
  158. package/data/examples/localization-i18n-he.js +40 -0
  159. package/data/examples/localization-i18n-he.tsx +66 -0
  160. package/data/examples/localization-i18n-hr.js +38 -0
  161. package/data/examples/localization-i18n-hr.tsx +60 -0
  162. package/data/examples/localization-i18n-hu.js +38 -0
  163. package/data/examples/localization-i18n-hu.tsx +60 -0
  164. package/data/examples/localization-i18n-hy.js +40 -0
  165. package/data/examples/localization-i18n-hy.tsx +65 -0
  166. package/data/examples/localization-i18n-id.js +38 -0
  167. package/data/examples/localization-i18n-id.tsx +60 -0
  168. package/data/examples/localization-i18n-it.js +38 -0
  169. package/data/examples/localization-i18n-it.tsx +60 -0
  170. package/data/examples/localization-i18n-ja.js +38 -0
  171. package/data/examples/localization-i18n-ja.tsx +60 -0
  172. package/data/examples/localization-i18n-ko.js +38 -0
  173. package/data/examples/localization-i18n-ko.tsx +60 -0
  174. package/data/examples/localization-i18n-nl.js +38 -0
  175. package/data/examples/localization-i18n-nl.tsx +60 -0
  176. package/data/examples/localization-i18n-no.js +38 -0
  177. package/data/examples/localization-i18n-no.tsx +60 -0
  178. package/data/examples/localization-i18n-np.js +38 -0
  179. package/data/examples/localization-i18n-np.tsx +60 -0
  180. package/data/examples/localization-i18n-pl.js +38 -0
  181. package/data/examples/localization-i18n-pl.tsx +60 -0
  182. package/data/examples/localization-i18n-pt-BR.js +38 -0
  183. package/data/examples/localization-i18n-pt-BR.tsx +60 -0
  184. package/data/examples/localization-i18n-pt.js +38 -0
  185. package/data/examples/localization-i18n-pt.tsx +60 -0
  186. package/data/examples/localization-i18n-ro.js +38 -0
  187. package/data/examples/localization-i18n-ro.tsx +60 -0
  188. package/data/examples/localization-i18n-ru.js +38 -0
  189. package/data/examples/localization-i18n-ru.tsx +60 -0
  190. package/data/examples/localization-i18n-sk.js +38 -0
  191. package/data/examples/localization-i18n-sk.tsx +60 -0
  192. package/data/examples/localization-i18n-sr-Cyrl-RS.js +38 -0
  193. package/data/examples/localization-i18n-sr-Cyrl-RS.tsx +60 -0
  194. package/data/examples/localization-i18n-sr-Latn-RS.js +38 -0
  195. package/data/examples/localization-i18n-sr-Latn-RS.tsx +60 -0
  196. package/data/examples/localization-i18n-sv.js +38 -0
  197. package/data/examples/localization-i18n-sv.tsx +60 -0
  198. package/data/examples/localization-i18n-tr.js +38 -0
  199. package/data/examples/localization-i18n-tr.tsx +60 -0
  200. package/data/examples/localization-i18n-uk.js +38 -0
  201. package/data/examples/localization-i18n-uk.tsx +60 -0
  202. package/data/examples/localization-i18n-vi.js +38 -0
  203. package/data/examples/localization-i18n-vi.tsx +60 -0
  204. package/data/examples/localization-i18n-zh-hans.js +38 -0
  205. package/data/examples/localization-i18n-zh-hans.tsx +60 -0
  206. package/data/examples/localization-i18n-zh-hant.js +38 -0
  207. package/data/examples/localization-i18n-zh-hant.tsx +60 -0
  208. package/data/examples/manual-selection.js +81 -0
  209. package/data/examples/manual-selection.tsx +105 -0
  210. package/data/examples/minimal.js +66 -0
  211. package/data/examples/minimal.tsx +78 -0
  212. package/data/examples/mui-theme.js +109 -0
  213. package/data/examples/mui-theme.tsx +136 -0
  214. package/data/examples/multi-sorting.js +48 -0
  215. package/data/examples/multi-sorting.tsx +58 -0
  216. package/data/examples/persistent-state.js +126 -0
  217. package/data/examples/persistent-state.tsx +184 -0
  218. package/data/examples/react-query.js +122 -0
  219. package/data/examples/react-query.tsx +182 -0
  220. package/data/examples/remote.js +113 -0
  221. package/data/examples/remote.tsx +150 -0
  222. package/data/examples/row-actions-buttons.js +54 -0
  223. package/data/examples/row-actions-buttons.tsx +89 -0
  224. package/data/examples/row-actions-menu-items.js +36 -0
  225. package/data/examples/row-actions-menu-items.tsx +64 -0
  226. package/data/examples/single-row-selection.js +74 -0
  227. package/data/examples/single-row-selection.tsx +98 -0
  228. package/data/examples/virtualized.js +122 -0
  229. package/data/examples/virtualized.tsx +138 -0
  230. package/data/guides/accessibility.md +119 -0
  231. package/data/guides/aggregation.md +210 -0
  232. package/data/guides/async-loading.md +132 -0
  233. package/data/guides/best-practices.md +363 -0
  234. package/data/guides/cell-actions.md +139 -0
  235. package/data/guides/click-to-copy.md +67 -0
  236. package/data/guides/column-actions.md +69 -0
  237. package/data/guides/column-filtering.md +366 -0
  238. package/data/guides/column-grouping.md +192 -0
  239. package/data/guides/column-hiding.md +133 -0
  240. package/data/guides/column-ordering-dnd.md +99 -0
  241. package/data/guides/column-pinning.md +72 -0
  242. package/data/guides/column-resizing.md +157 -0
  243. package/data/guides/column-size.md +162 -0
  244. package/data/guides/customize-components.md +395 -0
  245. package/data/guides/customize-icons.md +35 -0
  246. package/data/guides/data-columns.md +292 -0
  247. package/data/guides/density-toggle.md +46 -0
  248. package/data/guides/detail-panel.md +195 -0
  249. package/data/guides/display-columns.md +135 -0
  250. package/data/guides/editing.md +367 -0
  251. package/data/guides/expanding-sub-rows.md +194 -0
  252. package/data/guides/full-screen-toggle.md +63 -0
  253. package/data/guides/global-filtering.md +237 -0
  254. package/data/guides/localization.md +57 -0
  255. package/data/guides/memoization.md +157 -0
  256. package/data/guides/pagination.md +171 -0
  257. package/data/guides/row-actions.md +116 -0
  258. package/data/guides/row-numbers.md +24 -0
  259. package/data/guides/row-ordering-dnd.md +51 -0
  260. package/data/guides/row-pinning.md +96 -0
  261. package/data/guides/row-selection.md +237 -0
  262. package/data/guides/sorting.md +190 -0
  263. package/data/guides/state-management.md +165 -0
  264. package/data/guides/sticky-header.md +41 -0
  265. package/data/guides/table-event-listeners.md +103 -0
  266. package/data/guides/toolbar-customization.md +251 -0
  267. package/data/guides/virtualization.md +183 -0
  268. package/data/index.json +1930 -0
  269. package/data/reference/mrt-components.md +183 -0
  270. package/data/reference/mrt-hooks.md +125 -0
  271. package/data/skills/README.md +81 -0
  272. package/data/skills/composable-components/SKILL.md +189 -0
  273. package/data/skills/customization/SKILL.md +190 -0
  274. package/data/skills/drag-and-drop-ordering/SKILL.md +227 -0
  275. package/data/skills/editing/SKILL.md +243 -0
  276. package/data/skills/filtering/SKILL.md +213 -0
  277. package/data/skills/getting-started/SKILL.md +213 -0
  278. package/data/skills/localization/SKILL.md +182 -0
  279. package/data/skills/migrate-v3-to-v4/SKILL.md +161 -0
  280. package/data/skills/state-and-server-data/SKILL.md +200 -0
  281. package/data/skills/virtualization/SKILL.md +203 -0
  282. package/dist/data.js +159 -0
  283. package/dist/index.js +244 -0
  284. package/package.json +50 -0
@@ -0,0 +1,38 @@
1
+ //Import Material React Table and its Types
2
+ import { MaterialReactTable } from 'material-react-table';
3
+ //Import Material React Table Translations
4
+ import { MRT_Localization_UK } from 'material-react-table/locales/uk';
5
+ //mock data
6
+ import { data } from './makeData';
7
+ const columns = [
8
+ //column definitions...
9
+ {
10
+ accessorKey: 'firstName',
11
+ header: "Ім'я",
12
+ },
13
+ {
14
+ accessorKey: 'lastName',
15
+ header: 'Прізвище',
16
+ enableClickToCopy: true,
17
+ },
18
+ {
19
+ accessorKey: 'age',
20
+ header: 'Вік',
21
+ },
22
+ //end
23
+ ];
24
+ const Example = () => {
25
+ return (<MaterialReactTable columns={columns} data={data} enableColumnFilterModes enableColumnOrdering enableEditing enableColumnPinning enableRowActions enableRowSelection enableSelectAll={false} initialState={{ showColumnFilters: true, showGlobalFilter: true }} localization={MRT_Localization_UK}/>);
26
+ };
27
+ //App.tsx or similar
28
+ import { createTheme, ThemeProvider, useTheme } from '@mui/material';
29
+ import { ukUA } from '@mui/material/locale';
30
+ const ExampleWithThemeProvider = () => {
31
+ const theme = useTheme(); //replace with your theme/createTheme
32
+ return (
33
+ //Setting Material UI locale as best practice to result in better accessibility
34
+ <ThemeProvider theme={createTheme(theme, ukUA)}>
35
+ <Example />
36
+ </ThemeProvider>);
37
+ };
38
+ export default ExampleWithThemeProvider;
@@ -0,0 +1,60 @@
1
+ //Import Material React Table and its Types
2
+ import { MaterialReactTable, type MRT_ColumnDef } from 'material-react-table';
3
+
4
+ //Import Material React Table Translations
5
+ import { MRT_Localization_UK } from 'material-react-table/locales/uk';
6
+
7
+ //mock data
8
+ import { data, type Person } from './makeData';
9
+
10
+ const columns: MRT_ColumnDef<Person>[] = [
11
+ //column definitions...
12
+ {
13
+ accessorKey: 'firstName',
14
+ header: "Ім'я",
15
+ },
16
+ {
17
+ accessorKey: 'lastName',
18
+ header: 'Прізвище',
19
+ enableClickToCopy: true,
20
+ },
21
+ {
22
+ accessorKey: 'age',
23
+ header: 'Вік',
24
+ },
25
+ //end
26
+ ];
27
+
28
+ const Example = () => {
29
+ return (
30
+ <MaterialReactTable
31
+ columns={columns}
32
+ data={data}
33
+ enableColumnFilterModes
34
+ enableColumnOrdering
35
+ enableEditing
36
+ enableColumnPinning
37
+ enableRowActions
38
+ enableRowSelection
39
+ enableSelectAll={false}
40
+ initialState={{ showColumnFilters: true, showGlobalFilter: true }}
41
+ localization={MRT_Localization_UK}
42
+ />
43
+ );
44
+ };
45
+
46
+ //App.tsx or similar
47
+ import { createTheme, ThemeProvider, useTheme } from '@mui/material';
48
+ import { ukUA } from '@mui/material/locale';
49
+
50
+ const ExampleWithThemeProvider = () => {
51
+ const theme = useTheme(); //replace with your theme/createTheme
52
+ return (
53
+ //Setting Material UI locale as best practice to result in better accessibility
54
+ <ThemeProvider theme={createTheme(theme, ukUA)}>
55
+ <Example />
56
+ </ThemeProvider>
57
+ );
58
+ };
59
+
60
+ export default ExampleWithThemeProvider;
@@ -0,0 +1,38 @@
1
+ //Import Material React Table and its Types
2
+ import { MaterialReactTable } from 'material-react-table';
3
+ //Import Material React Table Translations
4
+ import { MRT_Localization_VI } from 'material-react-table/locales/vi';
5
+ //mock data
6
+ import { data } from './makeData';
7
+ const columns = [
8
+ //column definitions...
9
+ {
10
+ accessorKey: 'firstName',
11
+ header: 'Họ của người nào',
12
+ },
13
+ {
14
+ accessorKey: 'lastName',
15
+ header: 'Tên họ',
16
+ enableClickToCopy: true,
17
+ },
18
+ {
19
+ accessorKey: 'age',
20
+ header: 'Tuổi tác',
21
+ },
22
+ //end
23
+ ];
24
+ const Example = () => {
25
+ return (<MaterialReactTable columns={columns} data={data} enableColumnFilterModes enableColumnOrdering enableEditing enableColumnPinning enableRowActions enableRowSelection enableSelectAll={false} initialState={{ showColumnFilters: true, showGlobalFilter: true }} localization={MRT_Localization_VI}/>);
26
+ };
27
+ //App.tsx or similar
28
+ import { createTheme, ThemeProvider, useTheme } from '@mui/material';
29
+ import { trTR } from '@mui/material/locale';
30
+ const ExampleWithThemeProvider = () => {
31
+ const theme = useTheme(); //replace with your theme/createTheme
32
+ return (
33
+ //Setting Material UI locale as best practice to result in better accessibility
34
+ <ThemeProvider theme={createTheme(theme, trTR)}>
35
+ <Example />
36
+ </ThemeProvider>);
37
+ };
38
+ export default ExampleWithThemeProvider;
@@ -0,0 +1,60 @@
1
+ //Import Material React Table and its Types
2
+ import { MaterialReactTable, type MRT_ColumnDef } from 'material-react-table';
3
+
4
+ //Import Material React Table Translations
5
+ import { MRT_Localization_VI } from 'material-react-table/locales/vi';
6
+
7
+ //mock data
8
+ import { data, type Person } from './makeData';
9
+
10
+ const columns: MRT_ColumnDef<Person>[] = [
11
+ //column definitions...
12
+ {
13
+ accessorKey: 'firstName',
14
+ header: 'Họ của người nào',
15
+ },
16
+ {
17
+ accessorKey: 'lastName',
18
+ header: 'Tên họ',
19
+ enableClickToCopy: true,
20
+ },
21
+ {
22
+ accessorKey: 'age',
23
+ header: 'Tuổi tác',
24
+ },
25
+ //end
26
+ ];
27
+
28
+ const Example = () => {
29
+ return (
30
+ <MaterialReactTable
31
+ columns={columns}
32
+ data={data}
33
+ enableColumnFilterModes
34
+ enableColumnOrdering
35
+ enableEditing
36
+ enableColumnPinning
37
+ enableRowActions
38
+ enableRowSelection
39
+ enableSelectAll={false}
40
+ initialState={{ showColumnFilters: true, showGlobalFilter: true }}
41
+ localization={MRT_Localization_VI}
42
+ />
43
+ );
44
+ };
45
+
46
+ //App.tsx or similar
47
+ import { createTheme, ThemeProvider, useTheme } from '@mui/material';
48
+ import { trTR } from '@mui/material/locale';
49
+
50
+ const ExampleWithThemeProvider = () => {
51
+ const theme = useTheme(); //replace with your theme/createTheme
52
+ return (
53
+ //Setting Material UI locale as best practice to result in better accessibility
54
+ <ThemeProvider theme={createTheme(theme, trTR)}>
55
+ <Example />
56
+ </ThemeProvider>
57
+ );
58
+ };
59
+
60
+ export default ExampleWithThemeProvider;
@@ -0,0 +1,38 @@
1
+ //Import Material React Table and its Types
2
+ import { MaterialReactTable } from 'material-react-table';
3
+ //Import Material React Table Translations
4
+ import { MRT_Localization_ZH_HANS } from 'material-react-table/locales/zh-Hans';
5
+ //mock data
6
+ import { data } from './makeData';
7
+ const columns = [
8
+ //column definitions...
9
+ {
10
+ accessorKey: 'firstName',
11
+ header: '名',
12
+ },
13
+ {
14
+ accessorKey: 'lastName',
15
+ header: '姓',
16
+ enableClickToCopy: true,
17
+ },
18
+ {
19
+ accessorKey: 'age',
20
+ header: '年龄',
21
+ },
22
+ //end
23
+ ];
24
+ const Example = () => {
25
+ return (<MaterialReactTable columns={columns} data={data} enableColumnFilterModes enableColumnOrdering enableEditing enableColumnPinning enableRowActions enableRowSelection enableSelectAll={false} initialState={{ showColumnFilters: true, showGlobalFilter: true }} localization={MRT_Localization_ZH_HANS}/>);
26
+ };
27
+ //App.tsx or similar
28
+ import { createTheme, ThemeProvider, useTheme } from '@mui/material';
29
+ import { zhCN } from '@mui/material/locale';
30
+ const ExampleWithThemeProvider = () => {
31
+ const theme = useTheme(); //replace with your theme/createTheme
32
+ return (
33
+ //Setting Material UI locale as best practice to result in better accessibility
34
+ <ThemeProvider theme={createTheme(theme, zhCN)}>
35
+ <Example />
36
+ </ThemeProvider>);
37
+ };
38
+ export default ExampleWithThemeProvider;
@@ -0,0 +1,60 @@
1
+ //Import Material React Table and its Types
2
+ import { MaterialReactTable, type MRT_ColumnDef } from 'material-react-table';
3
+
4
+ //Import Material React Table Translations
5
+ import { MRT_Localization_ZH_HANS } from 'material-react-table/locales/zh-Hans';
6
+
7
+ //mock data
8
+ import { data, type Person } from './makeData';
9
+
10
+ const columns: MRT_ColumnDef<Person>[] = [
11
+ //column definitions...
12
+ {
13
+ accessorKey: 'firstName',
14
+ header: '名',
15
+ },
16
+ {
17
+ accessorKey: 'lastName',
18
+ header: '姓',
19
+ enableClickToCopy: true,
20
+ },
21
+ {
22
+ accessorKey: 'age',
23
+ header: '年龄',
24
+ },
25
+ //end
26
+ ];
27
+
28
+ const Example = () => {
29
+ return (
30
+ <MaterialReactTable
31
+ columns={columns}
32
+ data={data}
33
+ enableColumnFilterModes
34
+ enableColumnOrdering
35
+ enableEditing
36
+ enableColumnPinning
37
+ enableRowActions
38
+ enableRowSelection
39
+ enableSelectAll={false}
40
+ initialState={{ showColumnFilters: true, showGlobalFilter: true }}
41
+ localization={MRT_Localization_ZH_HANS}
42
+ />
43
+ );
44
+ };
45
+
46
+ //App.tsx or similar
47
+ import { createTheme, ThemeProvider, useTheme } from '@mui/material';
48
+ import { zhCN } from '@mui/material/locale';
49
+
50
+ const ExampleWithThemeProvider = () => {
51
+ const theme = useTheme(); //replace with your theme/createTheme
52
+ return (
53
+ //Setting Material UI locale as best practice to result in better accessibility
54
+ <ThemeProvider theme={createTheme(theme, zhCN)}>
55
+ <Example />
56
+ </ThemeProvider>
57
+ );
58
+ };
59
+
60
+ export default ExampleWithThemeProvider;
@@ -0,0 +1,38 @@
1
+ //Import Material React Table and its Types
2
+ import { MaterialReactTable } from 'material-react-table';
3
+ //Import Material React Table Translations
4
+ import { MRT_Localization_ZH_HANT } from 'material-react-table/locales/zh-Hant';
5
+ //mock data
6
+ import { data } from './makeData';
7
+ const columns = [
8
+ //column definitions...
9
+ {
10
+ accessorKey: 'firstName',
11
+ header: '名',
12
+ },
13
+ {
14
+ accessorKey: 'lastName',
15
+ header: '姓',
16
+ enableClickToCopy: true,
17
+ },
18
+ {
19
+ accessorKey: 'age',
20
+ header: '年齡',
21
+ },
22
+ //end
23
+ ];
24
+ const Example = () => {
25
+ return (<MaterialReactTable columns={columns} data={data} enableColumnFilterModes enableColumnOrdering enableEditing enableColumnPinning enableRowActions enableRowSelection enableSelectAll={false} initialState={{ showColumnFilters: true, showGlobalFilter: true }} localization={MRT_Localization_ZH_HANT}/>);
26
+ };
27
+ //App.tsx or similar
28
+ import { createTheme, ThemeProvider, useTheme } from '@mui/material';
29
+ import { zhHK } from '@mui/material/locale';
30
+ const ExampleWithThemeProvider = () => {
31
+ const theme = useTheme(); //replace with your theme/createTheme
32
+ return (
33
+ //Setting Material UI locale as best practice to result in better accessibility
34
+ <ThemeProvider theme={createTheme(theme, zhHK)}>
35
+ <Example />
36
+ </ThemeProvider>);
37
+ };
38
+ export default ExampleWithThemeProvider;
@@ -0,0 +1,60 @@
1
+ //Import Material React Table and its Types
2
+ import { MaterialReactTable, type MRT_ColumnDef } from 'material-react-table';
3
+
4
+ //Import Material React Table Translations
5
+ import { MRT_Localization_ZH_HANT } from 'material-react-table/locales/zh-Hant';
6
+
7
+ //mock data
8
+ import { data, type Person } from './makeData';
9
+
10
+ const columns: MRT_ColumnDef<Person>[] = [
11
+ //column definitions...
12
+ {
13
+ accessorKey: 'firstName',
14
+ header: '名',
15
+ },
16
+ {
17
+ accessorKey: 'lastName',
18
+ header: '姓',
19
+ enableClickToCopy: true,
20
+ },
21
+ {
22
+ accessorKey: 'age',
23
+ header: '年齡',
24
+ },
25
+ //end
26
+ ];
27
+
28
+ const Example = () => {
29
+ return (
30
+ <MaterialReactTable
31
+ columns={columns}
32
+ data={data}
33
+ enableColumnFilterModes
34
+ enableColumnOrdering
35
+ enableEditing
36
+ enableColumnPinning
37
+ enableRowActions
38
+ enableRowSelection
39
+ enableSelectAll={false}
40
+ initialState={{ showColumnFilters: true, showGlobalFilter: true }}
41
+ localization={MRT_Localization_ZH_HANT}
42
+ />
43
+ );
44
+ };
45
+
46
+ //App.tsx or similar
47
+ import { createTheme, ThemeProvider, useTheme } from '@mui/material';
48
+ import { zhHK } from '@mui/material/locale';
49
+
50
+ const ExampleWithThemeProvider = () => {
51
+ const theme = useTheme(); //replace with your theme/createTheme
52
+ return (
53
+ //Setting Material UI locale as best practice to result in better accessibility
54
+ <ThemeProvider theme={createTheme(theme, zhHK)}>
55
+ <Example />
56
+ </ThemeProvider>
57
+ );
58
+ };
59
+
60
+ export default ExampleWithThemeProvider;
@@ -0,0 +1,81 @@
1
+ import { useMemo, useState } from 'react';
2
+ import { MaterialReactTable, useMaterialReactTable, } from 'material-react-table';
3
+ //end
4
+ const data = [
5
+ //data definitions...
6
+ {
7
+ userId: '3f25309c-8fa1-470f-811e-cdb082ab9017', //we'll use this as a unique row id
8
+ firstName: 'Dylan',
9
+ lastName: 'Murray',
10
+ age: 22,
11
+ address: '261 Erdman Ford',
12
+ city: 'East Daphne',
13
+ state: 'Kentucky',
14
+ },
15
+ {
16
+ userId: 'be731030-df83-419c-b3d6-9ef04e7f4a9f',
17
+ firstName: 'Raquel',
18
+ lastName: 'Kohler',
19
+ age: 18,
20
+ address: '769 Dominic Grove',
21
+ city: 'Columbus',
22
+ state: 'Ohio',
23
+ },
24
+ //end
25
+ ];
26
+ const Example = () => {
27
+ const columns = useMemo(
28
+ //column definitions...
29
+ () => [
30
+ {
31
+ accessorKey: 'firstName',
32
+ header: 'First Name',
33
+ },
34
+ {
35
+ accessorKey: 'lastName',
36
+ header: 'Last Name',
37
+ },
38
+ {
39
+ accessorKey: 'age',
40
+ header: 'Age',
41
+ },
42
+ {
43
+ accessorKey: 'address',
44
+ header: 'Address',
45
+ },
46
+ {
47
+ accessorKey: 'city',
48
+ header: 'City',
49
+ },
50
+ {
51
+ accessorKey: 'state',
52
+ header: 'State',
53
+ },
54
+ ], []);
55
+ const [rowSelection, setRowSelection] = useState({});
56
+ const table = useMaterialReactTable({
57
+ columns,
58
+ data,
59
+ getRowId: (row) => row.userId,
60
+ muiTableBodyRowProps: ({ row }) => ({
61
+ //implement row selection click events manually
62
+ onClick: () => setRowSelection((prev) => {
63
+ //this is a simple toggle implementation
64
+ const next = { ...prev };
65
+ if (next[row.id])
66
+ delete next[row.id];
67
+ else
68
+ next[row.id] = true;
69
+ return next;
70
+ }),
71
+ selected: rowSelection[row.id],
72
+ sx: {
73
+ cursor: 'pointer',
74
+ },
75
+ }),
76
+ onRowSelectionChange: setRowSelection,
77
+ state: { rowSelection },
78
+ });
79
+ return <MaterialReactTable table={table}/>;
80
+ };
81
+ export default Example;
@@ -0,0 +1,105 @@
1
+ import { useMemo, useState } from 'react';
2
+ import {
3
+ MaterialReactTable,
4
+ useMaterialReactTable,
5
+ type MRT_ColumnDef,
6
+ type MRT_RowSelectionState,
7
+ } from 'material-react-table';
8
+
9
+ //data definitions...
10
+ interface Person {
11
+ userId: string;
12
+ firstName: string;
13
+ lastName: string;
14
+ age: number;
15
+ address: string;
16
+ city: string;
17
+ state: string;
18
+ }
19
+ //end
20
+
21
+ const data = [
22
+ //data definitions...
23
+ {
24
+ userId: '3f25309c-8fa1-470f-811e-cdb082ab9017', //we'll use this as a unique row id
25
+ firstName: 'Dylan',
26
+ lastName: 'Murray',
27
+ age: 22,
28
+ address: '261 Erdman Ford',
29
+ city: 'East Daphne',
30
+ state: 'Kentucky',
31
+ },
32
+ {
33
+ userId: 'be731030-df83-419c-b3d6-9ef04e7f4a9f',
34
+ firstName: 'Raquel',
35
+ lastName: 'Kohler',
36
+ age: 18,
37
+ address: '769 Dominic Grove',
38
+ city: 'Columbus',
39
+ state: 'Ohio',
40
+ },
41
+ //end
42
+ ];
43
+
44
+ const Example = () => {
45
+ const columns = useMemo<MRT_ColumnDef<Person>[]>(
46
+ //column definitions...
47
+ () => [
48
+ {
49
+ accessorKey: 'firstName',
50
+ header: 'First Name',
51
+ },
52
+ {
53
+ accessorKey: 'lastName',
54
+ header: 'Last Name',
55
+ },
56
+ {
57
+ accessorKey: 'age',
58
+ header: 'Age',
59
+ },
60
+ {
61
+ accessorKey: 'address',
62
+ header: 'Address',
63
+ },
64
+ {
65
+ accessorKey: 'city',
66
+ header: 'City',
67
+ },
68
+ {
69
+ accessorKey: 'state',
70
+ header: 'State',
71
+ },
72
+ ],
73
+ [],
74
+ //end
75
+ );
76
+
77
+ const [rowSelection, setRowSelection] = useState<MRT_RowSelectionState>({});
78
+
79
+ const table = useMaterialReactTable({
80
+ columns,
81
+ data,
82
+ getRowId: (row) => row.userId,
83
+ muiTableBodyRowProps: ({ row }) => ({
84
+ //implement row selection click events manually
85
+ onClick: () =>
86
+ setRowSelection((prev) => {
87
+ //this is a simple toggle implementation
88
+ const next = { ...prev };
89
+ if (next[row.id]) delete next[row.id];
90
+ else next[row.id] = true;
91
+ return next;
92
+ }),
93
+ selected: rowSelection[row.id],
94
+ sx: {
95
+ cursor: 'pointer',
96
+ },
97
+ }),
98
+ onRowSelectionChange: setRowSelection,
99
+ state: { rowSelection },
100
+ });
101
+
102
+ return <MaterialReactTable table={table} />;
103
+ };
104
+
105
+ export default Example;
@@ -0,0 +1,66 @@
1
+ import { useMemo } from 'react';
2
+ import { MRT_Table, useMaterialReactTable, } from 'material-react-table';
3
+ import { data } from './makeData';
4
+ export const Example = () => {
5
+ const columns = useMemo(
6
+ //column definitions...
7
+ () => [
8
+ {
9
+ accessorKey: 'firstName',
10
+ header: 'First Name',
11
+ },
12
+ {
13
+ accessorKey: 'lastName',
14
+ header: 'Last Name',
15
+ },
16
+ {
17
+ accessorKey: 'address',
18
+ header: 'Address',
19
+ },
20
+ {
21
+ accessorKey: 'city',
22
+ header: 'City',
23
+ },
24
+ {
25
+ accessorKey: 'state',
26
+ header: 'State',
27
+ },
28
+ ], []);
29
+ const table = useMaterialReactTable({
30
+ columns,
31
+ data, //data must be memoized or stable (useState, useMemo, defined outside of this component, etc.)
32
+ enableKeyboardShortcuts: false,
33
+ enableColumnActions: false,
34
+ enableColumnFilters: false,
35
+ enablePagination: false,
36
+ enableSorting: false,
37
+ mrtTheme: (theme) => ({
38
+ baseBackgroundColor: theme.palette.background.default, //change default background color
39
+ }),
40
+ muiTableBodyRowProps: { hover: false },
41
+ muiTableProps: {
42
+ sx: {
43
+ border: '1px solid rgba(81, 81, 81, .5)',
44
+ caption: {
45
+ captionSide: 'top',
46
+ },
47
+ },
48
+ },
49
+ muiTableHeadCellProps: {
50
+ sx: {
51
+ border: '1px solid rgba(81, 81, 81, .5)',
52
+ fontStyle: 'italic',
53
+ fontWeight: 'normal',
54
+ },
55
+ },
56
+ muiTableBodyCellProps: {
57
+ sx: {
58
+ border: '1px solid rgba(81, 81, 81, .5)',
59
+ },
60
+ },
61
+ renderCaption: ({ table }) => `Here is a table rendered with the lighter weight MRT_Table sub-component, rendering ${table.getRowModel().rows.length} rows.`,
62
+ });
63
+ //using MRT_Table instead of MaterialReactTable if we do not need any of the toolbar components or features
64
+ return <MRT_Table table={table}/>;
65
+ };
66
+ export default Example;