@mini_7/material-react-table-mcp 4.0.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 (170) 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.tsx +309 -0
  5. package/data/examples/aggregation-and-grouping.tsx +153 -0
  6. package/data/examples/aggregation-multi.tsx +105 -0
  7. package/data/examples/alternate-column-filtering.tsx +49 -0
  8. package/data/examples/alternate-detail-panel.tsx +81 -0
  9. package/data/examples/alternate-pagination.tsx +23 -0
  10. package/data/examples/basic.tsx +109 -0
  11. package/data/examples/chart-detail-panel.tsx +89 -0
  12. package/data/examples/column-actions-space.tsx +44 -0
  13. package/data/examples/column-alignment.tsx +70 -0
  14. package/data/examples/custom-column-actions.tsx +109 -0
  15. package/data/examples/custom-column-filtering-ui.tsx +89 -0
  16. package/data/examples/custom-headless.tsx +125 -0
  17. package/data/examples/custom-top-toolbar.tsx +88 -0
  18. package/data/examples/customize-display-columns.tsx +85 -0
  19. package/data/examples/customize-filter-components.tsx +101 -0
  20. package/data/examples/customize-filter-modes.tsx +73 -0
  21. package/data/examples/customize-filter-variants.tsx +116 -0
  22. package/data/examples/customize-global-filter-component.tsx +52 -0
  23. package/data/examples/customize-remove-column-grouping.tsx +94 -0
  24. package/data/examples/customize-row-selection.tsx +54 -0
  25. package/data/examples/customize-table-styles.tsx +100 -0
  26. package/data/examples/disable-column-actions.tsx +37 -0
  27. package/data/examples/disable-column-hiding.tsx +90 -0
  28. package/data/examples/disable-density-toggle.tsx +49 -0
  29. package/data/examples/dynamic-columns.tsx +189 -0
  30. package/data/examples/editing-crud-cell.tsx +377 -0
  31. package/data/examples/editing-crud-modal.tsx +370 -0
  32. package/data/examples/editing-crud-row.tsx +333 -0
  33. package/data/examples/editing-crud-table.tsx +369 -0
  34. package/data/examples/editing-crud-tree.tsx +416 -0
  35. package/data/examples/enable-cell-actions.tsx +76 -0
  36. package/data/examples/enable-click-to-copy.tsx +39 -0
  37. package/data/examples/enable-column-grouping.tsx +120 -0
  38. package/data/examples/enable-column-ordering.tsx +48 -0
  39. package/data/examples/enable-column-pinning.tsx +69 -0
  40. package/data/examples/enable-column-resizing.tsx +56 -0
  41. package/data/examples/enable-column-virtualization.tsx +27 -0
  42. package/data/examples/enable-detail-panel-conditionally.tsx +78 -0
  43. package/data/examples/enable-detail-panel-virtualized.tsx +80 -0
  44. package/data/examples/enable-expanding-tree.tsx +110 -0
  45. package/data/examples/enable-filter-facet-values.tsx +65 -0
  46. package/data/examples/enable-row-dragging.tsx +137 -0
  47. package/data/examples/enable-row-numbers-original.tsx +48 -0
  48. package/data/examples/enable-row-numbers-static.tsx +48 -0
  49. package/data/examples/enable-row-ordering.tsx +57 -0
  50. package/data/examples/enable-row-pinning-select.tsx +76 -0
  51. package/data/examples/enable-row-pinning-static.tsx +50 -0
  52. package/data/examples/enable-row-pinning-sticky.tsx +69 -0
  53. package/data/examples/enable-row-selection.tsx +96 -0
  54. package/data/examples/enable-row-virtualization.tsx +101 -0
  55. package/data/examples/enable-sticky-header.tsx +59 -0
  56. package/data/examples/expanding-tree-expanded.tsx +121 -0
  57. package/data/examples/expanding-tree-flat-parse.tsx +125 -0
  58. package/data/examples/expanding-tree-root-expanded.tsx +151 -0
  59. package/data/examples/export-to-csv.tsx +114 -0
  60. package/data/examples/export-to-pdf.tsx +104 -0
  61. package/data/examples/external-toolbar.tsx +108 -0
  62. package/data/examples/font-awesome-icons.tsx +106 -0
  63. package/data/examples/infinite-scrolling.tsx +208 -0
  64. package/data/examples/lazy-detail-panel.tsx +262 -0
  65. package/data/examples/lazy-sub-rows.tsx +190 -0
  66. package/data/examples/linear-progress.tsx +66 -0
  67. package/data/examples/loading.tsx +50 -0
  68. package/data/examples/localization-i18n-ar.tsx +65 -0
  69. package/data/examples/localization-i18n-az.tsx +60 -0
  70. package/data/examples/localization-i18n-bg.tsx +60 -0
  71. package/data/examples/localization-i18n-cs.tsx +60 -0
  72. package/data/examples/localization-i18n-da.tsx +60 -0
  73. package/data/examples/localization-i18n-de.tsx +60 -0
  74. package/data/examples/localization-i18n-el.tsx +60 -0
  75. package/data/examples/localization-i18n-en.tsx +60 -0
  76. package/data/examples/localization-i18n-es.tsx +60 -0
  77. package/data/examples/localization-i18n-et.tsx +60 -0
  78. package/data/examples/localization-i18n-fa.tsx +66 -0
  79. package/data/examples/localization-i18n-fi.tsx +60 -0
  80. package/data/examples/localization-i18n-fr.tsx +60 -0
  81. package/data/examples/localization-i18n-he.tsx +66 -0
  82. package/data/examples/localization-i18n-hr.tsx +60 -0
  83. package/data/examples/localization-i18n-hu.tsx +60 -0
  84. package/data/examples/localization-i18n-hy.tsx +65 -0
  85. package/data/examples/localization-i18n-id.tsx +60 -0
  86. package/data/examples/localization-i18n-it.tsx +60 -0
  87. package/data/examples/localization-i18n-ja.tsx +60 -0
  88. package/data/examples/localization-i18n-ko.tsx +60 -0
  89. package/data/examples/localization-i18n-nl.tsx +60 -0
  90. package/data/examples/localization-i18n-no.tsx +60 -0
  91. package/data/examples/localization-i18n-np.tsx +60 -0
  92. package/data/examples/localization-i18n-pl.tsx +60 -0
  93. package/data/examples/localization-i18n-pt-BR.tsx +60 -0
  94. package/data/examples/localization-i18n-pt.tsx +60 -0
  95. package/data/examples/localization-i18n-ro.tsx +60 -0
  96. package/data/examples/localization-i18n-ru.tsx +60 -0
  97. package/data/examples/localization-i18n-sk.tsx +60 -0
  98. package/data/examples/localization-i18n-sr-Cyrl-RS.tsx +60 -0
  99. package/data/examples/localization-i18n-sr-Latn-RS.tsx +60 -0
  100. package/data/examples/localization-i18n-sv.tsx +60 -0
  101. package/data/examples/localization-i18n-tr.tsx +60 -0
  102. package/data/examples/localization-i18n-uk.tsx +60 -0
  103. package/data/examples/localization-i18n-vi.tsx +60 -0
  104. package/data/examples/localization-i18n-zh-hans.tsx +60 -0
  105. package/data/examples/localization-i18n-zh-hant.tsx +60 -0
  106. package/data/examples/manual-selection.tsx +105 -0
  107. package/data/examples/minimal.tsx +78 -0
  108. package/data/examples/mui-theme.tsx +136 -0
  109. package/data/examples/multi-sorting.tsx +58 -0
  110. package/data/examples/persistent-state.tsx +184 -0
  111. package/data/examples/react-query.tsx +182 -0
  112. package/data/examples/remote.tsx +150 -0
  113. package/data/examples/row-actions-buttons.tsx +89 -0
  114. package/data/examples/row-actions-menu-items.tsx +64 -0
  115. package/data/examples/single-row-selection.tsx +98 -0
  116. package/data/examples/virtualized.tsx +138 -0
  117. package/data/guides/accessibility.md +119 -0
  118. package/data/guides/aggregation.md +210 -0
  119. package/data/guides/async-loading.md +132 -0
  120. package/data/guides/best-practices.md +363 -0
  121. package/data/guides/cell-actions.md +139 -0
  122. package/data/guides/click-to-copy.md +67 -0
  123. package/data/guides/column-actions.md +69 -0
  124. package/data/guides/column-filtering.md +366 -0
  125. package/data/guides/column-grouping.md +192 -0
  126. package/data/guides/column-hiding.md +133 -0
  127. package/data/guides/column-ordering-dnd.md +99 -0
  128. package/data/guides/column-pinning.md +72 -0
  129. package/data/guides/column-resizing.md +157 -0
  130. package/data/guides/column-size.md +162 -0
  131. package/data/guides/customize-components.md +395 -0
  132. package/data/guides/customize-icons.md +35 -0
  133. package/data/guides/data-columns.md +292 -0
  134. package/data/guides/density-toggle.md +46 -0
  135. package/data/guides/detail-panel.md +195 -0
  136. package/data/guides/display-columns.md +135 -0
  137. package/data/guides/editing.md +367 -0
  138. package/data/guides/expanding-sub-rows.md +194 -0
  139. package/data/guides/full-screen-toggle.md +63 -0
  140. package/data/guides/global-filtering.md +237 -0
  141. package/data/guides/localization.md +57 -0
  142. package/data/guides/memoization.md +157 -0
  143. package/data/guides/pagination.md +171 -0
  144. package/data/guides/row-actions.md +116 -0
  145. package/data/guides/row-numbers.md +24 -0
  146. package/data/guides/row-ordering-dnd.md +51 -0
  147. package/data/guides/row-pinning.md +96 -0
  148. package/data/guides/row-selection.md +237 -0
  149. package/data/guides/sorting.md +190 -0
  150. package/data/guides/state-management.md +165 -0
  151. package/data/guides/sticky-header.md +41 -0
  152. package/data/guides/table-event-listeners.md +103 -0
  153. package/data/guides/toolbar-customization.md +251 -0
  154. package/data/guides/virtualization.md +183 -0
  155. package/data/index.json +1930 -0
  156. package/data/reference/mrt-components.md +183 -0
  157. package/data/reference/mrt-hooks.md +125 -0
  158. package/data/skills/composable-components/SKILL.md +189 -0
  159. package/data/skills/customization/SKILL.md +190 -0
  160. package/data/skills/drag-and-drop-ordering/SKILL.md +227 -0
  161. package/data/skills/editing/SKILL.md +243 -0
  162. package/data/skills/filtering/SKILL.md +213 -0
  163. package/data/skills/getting-started/SKILL.md +213 -0
  164. package/data/skills/localization/SKILL.md +182 -0
  165. package/data/skills/migrate-v3-to-v4/SKILL.md +161 -0
  166. package/data/skills/state-and-server-data/SKILL.md +200 -0
  167. package/data/skills/virtualization/SKILL.md +203 -0
  168. package/dist/data.js +137 -0
  169. package/dist/index.js +232 -0
  170. package/package.json +50 -0
@@ -0,0 +1,1930 @@
1
+ {
2
+ "guides": [
3
+ {
4
+ "name": "accessibility",
5
+ "title": "Accessibility / Keyboard Navigation Guide",
6
+ "description": "How to use and customize the accessibility and keyboard navigation features of Material React Table",
7
+ "headings": [
8
+ "Accessibility / Keyboard Navigation Guide",
9
+ "Relevant Table Options",
10
+ "Keyboard Navigation",
11
+ "`enableKeyboardShortcuts`",
12
+ "Custom Keyboard Shortcuts",
13
+ "Custom Focus Styles",
14
+ "Full Screen Mode"
15
+ ]
16
+ },
17
+ {
18
+ "name": "aggregation",
19
+ "title": "Aggregation Guide",
20
+ "description": "How to use and customize the aggregation and grouping features of Material React Table",
21
+ "headings": [
22
+ "Aggregation Feature Guide",
23
+ "Relevant Table Options",
24
+ "Relevant Column Options",
25
+ "Relevant State",
26
+ "Aggregation on Grouped Rows",
27
+ "Built-in Aggregation Functions",
28
+ "Custom Aggregation Functions",
29
+ "Aggregation on All Rows in Footer",
30
+ "Custom Cell Renders for Aggregation and Grouping",
31
+ "AggregatedCell Column Option",
32
+ "GroupedCell Column Option",
33
+ "PlaceholderCell Column Option",
34
+ "Aggregation/Grouping Example",
35
+ "Multiple Aggregations Per column",
36
+ "Manual Grouping"
37
+ ]
38
+ },
39
+ {
40
+ "name": "async-loading",
41
+ "title": "Async Loading UI Guide",
42
+ "description": "How to show loading indicators, skeletons, and progress bars in Material React Table",
43
+ "headings": [
44
+ "Async Loading UI Feature Guide",
45
+ "Relevant Table Options",
46
+ "Relevant State Options",
47
+ "isLoading UI",
48
+ "Customize Loading UI",
49
+ "Custom Loading Spinner component",
50
+ "Only Show Progress Bars or Skeletons",
51
+ "Full Loading and Server-Side Logic Example"
52
+ ]
53
+ },
54
+ {
55
+ "name": "best-practices",
56
+ "title": "Best Practices (TypeScript)",
57
+ "description": "The Best Practices to follow with TypeScript when using Material React Table.",
58
+ "headings": [
59
+ "MRT Best Practices",
60
+ "Stay Up-To-Date",
61
+ "Type-Safety",
62
+ "Is TypeScript Required?",
63
+ "Defining TData Type",
64
+ "Define Your Columns With Type-Safety",
65
+ "MRT_ColumnDef Type",
66
+ "createMRTColumnHelper Utility",
67
+ "Use JSDoc instead of TypeScript",
68
+ "Re-Usable MRT Components",
69
+ "Re-usable Components or Options?",
70
+ "Re-usable Default Options",
71
+ "Re-usable MRT Component",
72
+ "Debugging Material React Table",
73
+ "Console Logging from the Table Instance",
74
+ "Console Log All Internal Table State",
75
+ "Console Log Current Rendering Rows"
76
+ ]
77
+ },
78
+ {
79
+ "name": "cell-actions",
80
+ "title": "Cell Actions Guide",
81
+ "description": "How to add cell action context menus to each cell in Material React Table",
82
+ "headings": [
83
+ "Cell Actions Feature Guide",
84
+ "Relevant Table Options",
85
+ "Relevant Column Options",
86
+ "Enable Cell Actions",
87
+ "Render Cell Action Menu Items",
88
+ "Include Automatic Cell Actions"
89
+ ]
90
+ },
91
+ {
92
+ "name": "click-to-copy",
93
+ "title": "Click to Copy Guide",
94
+ "description": "How to use and customize the click to copy features of Material React Table",
95
+ "headings": [
96
+ "Click to Copy Feature Guide",
97
+ "Relevant Table Options",
98
+ "Relevant Column Options",
99
+ "Enable Click to Copy Per Column",
100
+ "Enable Click to Copy For All Cells",
101
+ "Customize Copy Buttons",
102
+ "Click to Copy Example"
103
+ ]
104
+ },
105
+ {
106
+ "name": "column-actions",
107
+ "title": "Column Actions Guide",
108
+ "description": "How to use, customize, or disable column the action button and menu features of Material React Table",
109
+ "headings": [
110
+ "Column Actions Feature Guide",
111
+ "Relevant Table Options",
112
+ "Relevant Column Options",
113
+ "Disable or Hide Column Actions Buttons",
114
+ "Custom Column Actions Menu",
115
+ "Justify Column Actions Button"
116
+ ]
117
+ },
118
+ {
119
+ "name": "column-filtering",
120
+ "title": "Column Filtering Guide",
121
+ "description": "How to use, customize, or disable filter features, client-side or server side, in Material React Table",
122
+ "headings": [
123
+ "Column Filtering Feature Guide",
124
+ "Relevant Table Options",
125
+ "Relevant Column Options",
126
+ "Relevant State Options",
127
+ "Disable Filtering Features",
128
+ "Filter Variants",
129
+ "Faceted Values for Filter Variants",
130
+ "Custom Faceted Values",
131
+ "Column Filter Display Modes",
132
+ "Custom Filter Functions",
133
+ "Custom Filter Functions Per Column",
134
+ "Pre-built MRT Filter Functions",
135
+ "Pre-built TanStack Table Filter Functions",
136
+ "Add Custom Filter Functions",
137
+ "Filter Modes",
138
+ "Enable Column Filter Modes (Filter Switching)",
139
+ "Customize Filter Modes",
140
+ "Render Custom Filter Mode Menu",
141
+ "Expanded Leaf Row Filtering Options",
142
+ "Manual Server-Side Column Filtering",
143
+ "Customize Material UI Filter components",
144
+ "Custom Filter Components",
145
+ "Filter Match Highlighting",
146
+ "Disable Filter Match Highlighting"
147
+ ]
148
+ },
149
+ {
150
+ "name": "column-grouping",
151
+ "title": "Column Grouping Guide",
152
+ "description": "How to use and customize the column grouping features of Material React Table",
153
+ "headings": [
154
+ "Column Grouping Feature Guide",
155
+ "Relevant Table Options",
156
+ "Relevant Column Options",
157
+ "Relevant State",
158
+ "Enable Grouping",
159
+ "Grouped Column Mode",
160
+ "Disable Grouping Per Column",
161
+ "Hide Drag Buttons for Grouping",
162
+ "Group Columns by Default",
163
+ "Expand Grouped Rows by Default",
164
+ "Customize Expand Column",
165
+ "Manual Grouping"
166
+ ]
167
+ },
168
+ {
169
+ "name": "column-hiding",
170
+ "title": "Column Hiding Guide",
171
+ "description": "How to use, customize, or disable column hiding and visibility features of Material React Table",
172
+ "headings": [
173
+ "Column Hiding Feature Guide",
174
+ "Relevant Table Options",
175
+ "Relevant Column Options",
176
+ "Relevant State",
177
+ "Hide Some Columns by Default",
178
+ "Dynamically Hide Columns",
179
+ "Disable Column Hiding",
180
+ "Enable Column Hiding on Display Columns",
181
+ "Hide Column From Show Hide Menu",
182
+ "Custom Columns Menu"
183
+ ]
184
+ },
185
+ {
186
+ "name": "column-ordering-dnd",
187
+ "title": "Column Ordering/DnD Guide",
188
+ "description": "How to use and customize the column ordering and drag and drop features of Material React Table",
189
+ "headings": [
190
+ "Column Ordering (DnD) Feature Guide",
191
+ "Relevant Table Options",
192
+ "Relevant Column Options",
193
+ "Relevant State",
194
+ "Change the Default Column Order",
195
+ "Manage Column Order State",
196
+ "Enable Column Ordering with Drag and Drop"
197
+ ]
198
+ },
199
+ {
200
+ "name": "column-pinning",
201
+ "title": "Column Pinning Guide",
202
+ "description": "How to use and customize the column pinning features of Material React Table",
203
+ "headings": [
204
+ "Column Pinning Feature Guide",
205
+ "Relevant Table Options",
206
+ "Relevant Column Options",
207
+ "Relevant State",
208
+ "Enable Column Pinning",
209
+ "Pin (Freeze) Columns By Default",
210
+ "Apply Absolute Column Widths",
211
+ "Column Pinning Example"
212
+ ]
213
+ },
214
+ {
215
+ "name": "column-resizing",
216
+ "title": "Column Resizing Guide",
217
+ "description": "How to use and customize the column resizing features of Material React Table",
218
+ "headings": [
219
+ "Column Resizing Feature Guide",
220
+ "Relevant Table Options",
221
+ "Relevant Column Options",
222
+ "Relevant State",
223
+ "Initial Column Sizes",
224
+ "Enable Column Resizing Feature",
225
+ "Column Resize Mode",
226
+ "Column Growing",
227
+ "Column Resize Direction",
228
+ "Enable Resizing on Built-in Display Columns"
229
+ ]
230
+ },
231
+ {
232
+ "name": "column-size",
233
+ "title": "Column Size Guide",
234
+ "description": "How to column width in Material React Table",
235
+ "headings": [
236
+ "Column Size Feature Guide",
237
+ "Relevant Table Options",
238
+ "Relevant Column Options",
239
+ "Relevant State",
240
+ "Layout Modes",
241
+ "Column Size",
242
+ "Column Grow",
243
+ "But I Want My Columns to Have a Percentage Width",
244
+ "Side Note: Just Make Your Scrollbars Prettier",
245
+ "Default Column",
246
+ "Change Sizes of Built-in Display Columns"
247
+ ]
248
+ },
249
+ {
250
+ "name": "customize-components",
251
+ "title": "Customize (Style) Components Guide",
252
+ "description": "How to customize and pass props to Material UI components and set up a Material UI Theme in Material React Table",
253
+ "headings": [
254
+ "Customize (Style) Components Guide",
255
+ "Relevant Table Options",
256
+ "Relevant Column Options",
257
+ "Material UI Props and Types",
258
+ "Static Prop Objects",
259
+ "Callback Functions to Dynamically Set Prop Values",
260
+ "Styling Material UI Components",
261
+ "The SX Prop",
262
+ "Conditional Styling",
263
+ "Style Selected Rows",
264
+ "Style Expanded Rows",
265
+ "Style Pinned Columns",
266
+ "Material UI Theme",
267
+ "Customize Theme Just for your Table",
268
+ "Custom Material UI Theme Example",
269
+ "MRT Theme Values",
270
+ "Customize Table Paper Styling",
271
+ "Customize Table Body, Rows, Columns, and Cells",
272
+ "Stripe Rows Example",
273
+ "Stripe Columns Example",
274
+ "Customize No Rows overlay"
275
+ ]
276
+ },
277
+ {
278
+ "name": "customize-icons",
279
+ "title": "Custom Icons Guide",
280
+ "description": "How to use custom icons such as from Font Awesome in Material React Table",
281
+ "headings": [
282
+ "Custom Icons Feature Guide",
283
+ "Relevant Table Options",
284
+ "Replace with Custom Icons",
285
+ "Font Awesome Example"
286
+ ]
287
+ },
288
+ {
289
+ "name": "data-columns",
290
+ "title": "Data (Accessor) Columns",
291
+ "description": "How to create data columns in Material React Table and use accessKeys and accessorFns the right way",
292
+ "headings": [
293
+ "Data (Accessor) Columns Guide",
294
+ "Accessors (Connect a column to data)",
295
+ "Method 1 - Using an accessorKey (Recommended)",
296
+ "Method 2 - Using an accessorFn and id",
297
+ "Method 3 - Using createMRTColumnHelper",
298
+ "Custom Header Render",
299
+ "Custom Cell Render",
300
+ "Custom Footer Render",
301
+ "Set Column Widths",
302
+ "Set Column Alignment",
303
+ "Enable or Disable Features Per Column"
304
+ ]
305
+ },
306
+ {
307
+ "name": "density-toggle",
308
+ "title": "Density Toggle Guide",
309
+ "description": "How to use, customize, or disable the density toggle button feature of Material React Table",
310
+ "headings": [
311
+ "Density Toggle Feature Guide",
312
+ "Relevant Table Options",
313
+ "Relevant State",
314
+ "Default Density",
315
+ "Change Default Density",
316
+ "Disable or Hide the Density Toggle"
317
+ ]
318
+ },
319
+ {
320
+ "name": "detail-panel",
321
+ "title": "Detail Panel Expanding Guide",
322
+ "description": "How to add expanding detail panels to each row in Material React Table",
323
+ "headings": [
324
+ "Detail Panel Feature Guide",
325
+ "Relevant Table Options",
326
+ "Relevant State",
327
+ "Render Detail Panel",
328
+ "Disable Expand All Button",
329
+ "Enable Detail Panel Conditionally Per Row",
330
+ "Only Allow One Detail Panel Open At A Time",
331
+ "Rotate Expand Icon",
332
+ "Replace Expand Icon",
333
+ "Customize or Style Detail Panel",
334
+ "Expand Detail Panel By Default",
335
+ "Position Expand Column Last",
336
+ "Detail Panel With Charts",
337
+ "Detail Panels with Virtualization",
338
+ "Lazy Detail Panels"
339
+ ]
340
+ },
341
+ {
342
+ "name": "display-columns",
343
+ "title": "Display (Built-in) Columns",
344
+ "description": "How to create or edit display columns in Material React Table",
345
+ "headings": [
346
+ "Display (Built-in) Columns Guide",
347
+ "Relevant Table Options",
348
+ "Built-in MRT Display Columns",
349
+ "Customize Built-in MRT Display Columns",
350
+ "Default Display Column Table Option",
351
+ "Display Column Definition Options Table Option",
352
+ "Create your own Display Columns"
353
+ ]
354
+ },
355
+ {
356
+ "name": "editing",
357
+ "title": "Editing Guide",
358
+ "description": "How to enable data editing features in Material React Table",
359
+ "headings": [
360
+ "Editing Feature Guide",
361
+ "Relevant Table Options",
362
+ "Relevant Column Options",
363
+ "Relevant State Options",
364
+ "Enable Editing",
365
+ "Disable Editing",
366
+ "Edit Display Modes",
367
+ "Modal Edit Display Mode",
368
+ "Row Edit Display Mode",
369
+ "Cell Edit Display Mode",
370
+ "Table Edit Display Mode",
371
+ "Custom Edit Display Mode",
372
+ "Enable Creating",
373
+ "Create Display Modes",
374
+ "Position Creating Row",
375
+ "Trigger Create Mode",
376
+ "CRUD Examples",
377
+ "Customizing Editing Components",
378
+ "Add Validation to Editing Components",
379
+ "Use Custom Editing Components",
380
+ "Customize Actions/Edit Column"
381
+ ]
382
+ },
383
+ {
384
+ "name": "expanding-sub-rows",
385
+ "title": "Expanding Sub-Rows/Tree Data Guide",
386
+ "description": "How to add expanding sub-rows or tree data features in Material React Table",
387
+ "headings": [
388
+ "Expanding Sub-Rows (Tree Data) Feature Guide",
389
+ "Relevant Table Options",
390
+ "Relevant State Options",
391
+ "Enable Expanding Sub-Rows",
392
+ "Expand All Rows Button",
393
+ "Generate Sub Rows with getSubRows",
394
+ "Expanded Rows Pagination Behavior",
395
+ "Expanded Leaf Row Filtering Behavior",
396
+ "Filter From Leaf Rows",
397
+ "Max Leaf Row Filter Depth",
398
+ "Expand All Rows By Default",
399
+ "Expand Root Rows Only By Default",
400
+ "Customize Expand Column",
401
+ "Lazy Load Sub Rows"
402
+ ]
403
+ },
404
+ {
405
+ "name": "full-screen-toggle",
406
+ "title": "Full Screen Toggle Guide",
407
+ "description": "How to use, customize, or disable the full screen toggle button feature of Material React Table",
408
+ "headings": [
409
+ "Full Screen Toggle Feature Guide",
410
+ "Relevant Table Options",
411
+ "Relevant State",
412
+ "Disable Full Screen Toggle",
413
+ "Change Z-Index of Full Screen Table"
414
+ ]
415
+ },
416
+ {
417
+ "name": "global-filtering",
418
+ "title": "Global Filtering/Search Guide",
419
+ "description": "How to use, customize, or disable the global filter and search features in Material React Table",
420
+ "headings": [
421
+ "Global Filtering (Search) Feature Guide",
422
+ "Relevant Table Options",
423
+ "Relevant Column Options",
424
+ "Relevant State Options",
425
+ "Disable Global Filtering",
426
+ "Disable Global Filtering per Column",
427
+ "Disable Global Filter Feature",
428
+ "Client-Side Global Filtering",
429
+ "Global Filter Function",
430
+ "Ranked Results",
431
+ "Global Filter Modes",
432
+ "Show Search Field by Default",
433
+ "Manual Server-Side Global Filtering",
434
+ "Customize Global Filter Position",
435
+ "Customize the Search Text Field",
436
+ "Filter Match Highlighting",
437
+ "Disable Filter Match Highlighting"
438
+ ]
439
+ },
440
+ {
441
+ "name": "localization",
442
+ "title": "Localization/i18n Guide",
443
+ "description": "How to customize localization and translations (i18n) in Material React Table",
444
+ "headings": [
445
+ "Localization (i18n) Guide",
446
+ "Relevant Table Options",
447
+ "Built-in Locales",
448
+ "Built-in Locale Examples",
449
+ "Custom Non-Built-In Translations"
450
+ ]
451
+ },
452
+ {
453
+ "name": "memoization",
454
+ "title": "Memoization Guide",
455
+ "description": "How and what to memoize to improve performance in Material React Table.",
456
+ "headings": [
457
+ "Memoization (Performance) Guide",
458
+ "Relevant Table Options",
459
+ "What to Memoize",
460
+ "Give Data a Stable Reference",
461
+ "_Why does this happen? Is this a bug in MRT or TanStack Table?_",
462
+ "I'm still getting an infinite loop of re-renders, but I'm using useMemo!",
463
+ "Memoize Columns",
464
+ "Other Options to Memoize",
465
+ "Memo Mode",
466
+ "React Forget"
467
+ ]
468
+ },
469
+ {
470
+ "name": "pagination",
471
+ "title": "Pagination Guide",
472
+ "description": "How to use, customize, or disable pagination features in Material React Table",
473
+ "headings": [
474
+ "Pagination Feature Guide",
475
+ "Relevant Table Options",
476
+ "Relevant State Options",
477
+ "Disable Pagination",
478
+ "Customize Pagination",
479
+ "Pagination State",
480
+ "Customize Pagination Behavior",
481
+ "Customize Pagination Components",
482
+ "Alternate Pagination UI",
483
+ "Manual or Server-Side Pagination",
484
+ "Manual Pagination",
485
+ "Override Page Count and Row Count",
486
+ "Manage Pagination State"
487
+ ]
488
+ },
489
+ {
490
+ "name": "row-actions",
491
+ "title": "Row Actions Guide",
492
+ "description": "How to add row action buttons to each row in Material React Table",
493
+ "headings": [
494
+ "Row Actions Feature Guide",
495
+ "Relevant Table Options",
496
+ "Enable Row Actions",
497
+ "Add Row Actions Menu Items",
498
+ "Add Row Action Buttons",
499
+ "Customize Row Actions Column",
500
+ "Change Row Actions Display Column Options",
501
+ "Position Row Actions Column"
502
+ ]
503
+ },
504
+ {
505
+ "name": "row-numbers",
506
+ "title": "Row Numbers Guide",
507
+ "description": "How to use and customize automatic row numbers in Material React Table",
508
+ "headings": [
509
+ "Row Numbers Feature Guide",
510
+ "Relevant Table Options",
511
+ "Enable Row Numbers (Static Mode)",
512
+ "Enable Row Numbers (Original Mode)"
513
+ ]
514
+ },
515
+ {
516
+ "name": "row-ordering-dnd",
517
+ "title": "Row Ordering/DnD Guide",
518
+ "description": "How to use and customize the row drag and drop and row ordering features of Material React Table",
519
+ "headings": [
520
+ "Row Ordering (DnD) Feature Guide",
521
+ "Relevant Table Options",
522
+ "Relevant State",
523
+ "Enable Row Ordering",
524
+ "Drag and Drop Rows to Other UI or Tables"
525
+ ]
526
+ },
527
+ {
528
+ "name": "row-pinning",
529
+ "title": "Row Pinning Guide",
530
+ "description": "How to add and customize row selection checkboxes in Material React Table",
531
+ "headings": [
532
+ "Row Pinning Feature Guide",
533
+ "Relevant Table Options",
534
+ "Relevant State",
535
+ "Row Pinning Display Modes",
536
+ "Sticky Row Pinning",
537
+ "Static Row Pinning",
538
+ "Alternative Selection Row Pinning UI"
539
+ ]
540
+ },
541
+ {
542
+ "name": "row-selection",
543
+ "title": "Row Selection Guide",
544
+ "description": "How to add and customize row selection checkboxes in Material React Table",
545
+ "headings": [
546
+ "Row Selection Guide",
547
+ "Relevant Table Options",
548
+ "Relevant State",
549
+ "Enable Row Selection",
550
+ "Enable Row Selection Conditionally Per Row",
551
+ "Batch Row Selection",
552
+ "Access Row Selection State",
553
+ "Manage Row Selection State",
554
+ "Read Row Selection State from Table Instance",
555
+ "Useful Row IDs",
556
+ "Select Row on Row Click",
557
+ "Disable Select All",
558
+ "Position or Hide Alert Banner Selection Message",
559
+ "Single Row Selection",
560
+ "Customize Select Checkboxes or Radio Buttons",
561
+ "Manual Row Selection Without Checkboxes",
562
+ "Sticky Pinned Row Selection"
563
+ ]
564
+ },
565
+ {
566
+ "name": "sorting",
567
+ "title": "Sorting Guide",
568
+ "description": "How to use, customize, or disable sorting features in Material React Table",
569
+ "headings": [
570
+ "Sorting Feature Guide",
571
+ "Relevant Table Options",
572
+ "Relevant Column Options",
573
+ "Relevant State Options",
574
+ "Disable Sorting",
575
+ "Initial/Default Sorting",
576
+ "Default Sorting Features",
577
+ "Multi-Sorting",
578
+ "Sorting Removal",
579
+ "Sort Direction",
580
+ "Sorting Functions",
581
+ "Add Custom Sorting Functions",
582
+ "Change Sorting Function Per Column",
583
+ "Manual Server-Side Sorting",
584
+ "Remote Sorting Example"
585
+ ]
586
+ },
587
+ {
588
+ "name": "state-management",
589
+ "title": "State Management Guide",
590
+ "description": "How to access and manage internal state in Material React Table",
591
+ "headings": [
592
+ "State Management Guide",
593
+ "Relevant Table Options",
594
+ "Populate Initial State",
595
+ "Manage Individual States as Needed",
596
+ "Add Side Effects in Set State Callbacks",
597
+ "Read From the Table Instance",
598
+ "Persistent State"
599
+ ]
600
+ },
601
+ {
602
+ "name": "sticky-header",
603
+ "title": "Sticky Header/Footer Guide",
604
+ "description": "How to use and customize the sticky header feature in Material React Table",
605
+ "headings": [
606
+ "Sticky Header and Footer Feature Guide",
607
+ "Relevant Table Options",
608
+ "Enable Sticky Header",
609
+ "Enable Sticky Footer",
610
+ "Enable Sticky Header and Footer Demo"
611
+ ]
612
+ },
613
+ {
614
+ "name": "table-event-listeners",
615
+ "title": "Table Event Listeners Guide",
616
+ "description": "How to add event listeners such as onClicks and onChange events to components in Material React Table",
617
+ "headings": [
618
+ "Table Event Listeners Guide",
619
+ "Add Event Listeners to any of the Material UI Components",
620
+ "Add an onClick to a Table Row",
621
+ "Add an onDoubleClick to a Table Cell",
622
+ "Add an onBlur to an Edit TextField",
623
+ "Add an onChange to an Edit TextField"
624
+ ]
625
+ },
626
+ {
627
+ "name": "toolbar-customization",
628
+ "title": "Toolbar Customization Guide",
629
+ "description": "How to customize the Toolbars, add buttons to toolbars, or customize progress bars and alert banners in Material React Table",
630
+ "headings": [
631
+ "Toolbar Customization Guide",
632
+ "Relevant Table Options",
633
+ "Relevant State",
634
+ "Hide or Disable Toolbars",
635
+ "No Toolbars Example",
636
+ "Customize Toolbar buttons",
637
+ "Customize Built-In Internal Toolbar Button Area",
638
+ "Add Custom Toolbar Buttons/Components",
639
+ "Custom Toolbar Actions Example",
640
+ "Position Toolbar Areas",
641
+ "Customize Toolbar Props and Styles",
642
+ "Customize Linear Progress Bars",
643
+ "Customize Toolbar Alert Banner",
644
+ "Override with Custom Toolbar Components",
645
+ "Build Your Own Toolbar"
646
+ ]
647
+ },
648
+ {
649
+ "name": "virtualization",
650
+ "title": "Virtualization Guide",
651
+ "description": "How to virtualize rows and columns in Material React Table to improve performance and user experience when there are a lot of rows or a lot of columns in the table.",
652
+ "headings": [
653
+ "Virtualization Feature Guide",
654
+ "Relevant Table Options",
655
+ "What is Virtualization?",
656
+ "Does Your Table Even Need Virtualization?",
657
+ "Enable Row Virtualization",
658
+ "Enable Column Virtualization",
659
+ "Virtualization Side Effects",
660
+ "`layoutMode` Prop",
661
+ "`enableStickyHeader` Prop",
662
+ "Customize Virtualizer Props",
663
+ "Access Underlying Virtualizer Instances",
664
+ "Full Row and Column Virtualization Example",
665
+ "Headless Virtualization with MRT Hooks"
666
+ ]
667
+ }
668
+ ],
669
+ "reference": [
670
+ {
671
+ "name": "mrt-components",
672
+ "title": "MRT Components",
673
+ "description": "All the internal MRT components that can be used to build your own custom table components",
674
+ "headings": [
675
+ "MRT Components",
676
+ "\\<MaterialReactTable /\\>",
677
+ "MRT\\_\\* Sub Components",
678
+ "Table Components",
679
+ "\\<MRT_TablePaper /\\>",
680
+ "\\<MRT_TableContainer /\\>",
681
+ "\\<MRT_Table /\\>",
682
+ "\\<MRT_TableLoadingOverlay /\\>",
683
+ "TableHead Components",
684
+ "\\<MRT_TableHead /\\>",
685
+ "\\<MRT_TableHeadRow /\\>",
686
+ "\\<MRT_TableHeadCell /\\>",
687
+ "\\<MRT_TableHeadCellColumnActionsButton /\\>",
688
+ "\\<MRT_TableHeadCellSortLabel /\\>",
689
+ "\\<MRT_TableHeadCellFilterLabel /\\>",
690
+ "\\<MRT_TableHeadCellGrabHandle /\\>",
691
+ "\\<MRT_TableHeadCellResizeHandle /\\>",
692
+ "\\<MRT_TableHeadCellFilterContainer /\\>",
693
+ "TableBody Components",
694
+ "\\<MRT_TableBody /\\>",
695
+ "\\<MRT_TableBodyRow /\\>",
696
+ "\\<MRT_TableDetailPanel /\\>",
697
+ "\\<MRT_TableBodyCell /\\>",
698
+ "\\<MRT_TableBodyCellValue /\\>",
699
+ "\\<MRT_TableBodyRowGrabHandle /\\>",
700
+ "\\<MRT_TableBodyRowPinButton /\\>",
701
+ "TableFooter Components",
702
+ "\\<MRT_TableFooter /\\>",
703
+ "\\<MRT_TableFooterRow /\\>",
704
+ "\\<MRT_TableFooterCell /\\>",
705
+ "Input Components",
706
+ "\\<MRT_EditCellTextField /\\>",
707
+ "\\<MRT_GlobalFilterTextField /\\>",
708
+ "\\<MRT_FilterTextField /\\>",
709
+ "\\<MRT_FilterCheckbox /\\>",
710
+ "\\<MRT_FilterRangeSlider /\\>",
711
+ "\\<MRT_FilterFilterRangeFields /\\>",
712
+ "\\<MRT_SelectCheckbox /\\>"
713
+ ]
714
+ },
715
+ {
716
+ "name": "mrt-hooks",
717
+ "title": "MRT Hooks",
718
+ "description": "All the MRT hooks that can be used",
719
+ "headings": [
720
+ "MRT Hooks",
721
+ "useMaterialReactTable",
722
+ "useMRT_TableOptions",
723
+ "useMRT_TableInstance",
724
+ "useMRT_Effects",
725
+ "useMRT_Rows",
726
+ "useMRT_ColumnVirtualizer",
727
+ "useMRT_RowVirtualizer"
728
+ ]
729
+ }
730
+ ],
731
+ "skills": [
732
+ {
733
+ "name": "composable-components",
734
+ "title": "composable-components",
735
+ "description": "Compose a custom Material React Table V4 layout from exported MRT_* components that all take the same table prop: MRT_TablePaper, MRT_TableContainer, MRT_Table, MRT_TopToolbar, MRT_TablePagination, MRT_GlobalFilterTextField, MRT_ToolbarInternalButtons, MRT_ShowHideColumnsButton, and MRT_TableBodyCellValue for fully custom markup. Load for tables inside cards or dialogs, toolbars placed outside the table, split layouts, or headless rendering with MRT state.",
736
+ "headings": [
737
+ "Setup",
738
+ "Core Patterns",
739
+ "Layers of the default component",
740
+ "Toolbar buttons are individual exports",
741
+ "Fully custom markup with MRT_TableBodyCellValue",
742
+ "Row virtualization in custom layouts",
743
+ "Common Mistakes",
744
+ "HIGH Rendering MRT components without the table prop",
745
+ "MEDIUM Duplicating the toolbar",
746
+ "MEDIUM Using a v8 header render",
747
+ "API Discovery"
748
+ ]
749
+ },
750
+ {
751
+ "name": "customization",
752
+ "title": "customization",
753
+ "description": "Style and extend Material React Table V4 through mui*Props objects and callbacks, the sx prop, Material UI V9 slotProps on text fields, render* slots for toolbars, row actions, detail panels and empty states, displayColumnDefOptions, icons, and localization. Load for theming, conditional row or cell styling, custom toolbar buttons, or replacing built-in display columns.",
754
+ "headings": [
755
+ "Setup",
756
+ "Core Patterns",
757
+ "Text field options use Material UI V9 slotProps",
758
+ "Column-level props override table-level props",
759
+ "render* slots add UI without replacing MRT components",
760
+ "Adjust built-in display columns",
761
+ "Icons and localization",
762
+ "Common Mistakes",
763
+ "HIGH Passing removed Material UI text field props",
764
+ "MEDIUM Styling with a class selector instead of the sx prop",
765
+ "MEDIUM Replacing the toolbar when only a button was needed",
766
+ "API Discovery"
767
+ ]
768
+ },
769
+ {
770
+ "name": "drag-and-drop-ordering",
771
+ "title": "drag-and-drop-ordering",
772
+ "description": "Reorder columns and rows by drag and drop in Material React Table V4: enableColumnOrdering with the columnOrder state and mrt-row-* display column ids, enableRowOrdering with muiRowDragHandleProps onDragEnd reading draggingRow and hoveredRow, enableRowDragging for dropping rows onto other tables or UI, enableColumnDragging for column drags without reordering, and the draggingColumn, hoveredColumn, draggingRow, hoveredRow state. Load for user-arranged columns, sortable lists, moving rows between tables, or a drop that never fires.",
773
+ "headings": [
774
+ "Setup",
775
+ "Core Patterns",
776
+ "Set or persist the column order",
777
+ "Move rows between tables",
778
+ "Style the drag interaction",
779
+ "Combine with virtualization",
780
+ "Common Mistakes",
781
+ "HIGH Reordering with the wrong row index",
782
+ "HIGH Expecting a drop callback",
783
+ "MEDIUM Leaving sorting on with row ordering",
784
+ "MEDIUM Column order array that ignores display columns",
785
+ "API Discovery"
786
+ ]
787
+ },
788
+ {
789
+ "name": "editing",
790
+ "title": "editing",
791
+ "description": "Add create, update, and inline editing to Material React Table V4 with enableEditing, editDisplayMode (modal, row, cell, table, custom), createDisplayMode, onEditingRowSave and onCreatingRowSave with exitEditingMode, table.setEditingRow, table.setCreatingRow, muiEditTextFieldProps validation, editVariant select, and the Edit column slot. Load for CRUD tables, editable cells, row forms in a dialog, or when saved values never reach the callback.",
792
+ "headings": [
793
+ "Setup",
794
+ "Core Patterns",
795
+ "Modal and row modes save through onEditingRowSave",
796
+ "Cell and table modes save through the text field events",
797
+ "Select inputs and custom Edit components",
798
+ "Customize the dialog and the create row",
799
+ "Common Mistakes",
800
+ "HIGH Forgetting to exit editing mode after saving",
801
+ "HIGH Expecting the data array to update itself",
802
+ "MEDIUM Passing removed Material UI text field props to the editor",
803
+ "MEDIUM Editing without a stable row id",
804
+ "API Discovery"
805
+ ]
806
+ },
807
+ {
808
+ "name": "filtering",
809
+ "title": "filtering",
810
+ "description": "Configure column and global filtering in Material React Table V4: filterVariant (text, select, multi-select, autocomplete, range, range-slider, checkbox, date, datetime, time and their ranges), enableFacetedValues, filterFn and filterFns, enableColumnFilterModes with columnFilterModeOptions, columnFilterDisplayMode, globalFilterFn and ranked results, filter match highlighting, and the muiFilter*Props. Load for dropdown or date filters, custom filter logic, filter mode menus, or search that matches the wrong rows.",
811
+ "headings": [
812
+ "Setup",
813
+ "Core Patterns",
814
+ "Pick the variant and let it pick the filter function",
815
+ "Date, datetime, and time variants need the pickers provider",
816
+ "Custom filter functions",
817
+ "Let users switch filter modes",
818
+ "Keep match highlighting in custom cells",
819
+ "Common Mistakes",
820
+ "HIGH Filter variant does not match the accessor value type",
821
+ "HIGH Reading the filter value with the wrong shape",
822
+ "MEDIUM Passing removed Material UI text field props to filters",
823
+ "MEDIUM Mode menu offers a function that is not registered",
824
+ "API Discovery"
825
+ ]
826
+ },
827
+ {
828
+ "name": "getting-started",
829
+ "title": "getting-started",
830
+ "description": "Build a Material React Table V4 with useMaterialReactTable and the MaterialReactTable table prop: install @mini_7/material-react-table with Material UI V9 peers, define stable data and MRT_ColumnDef columns, toggle features with enable* options, and read the instance. Load for a first MRT table, a Material UI data grid on TanStack Table V9, or when a TanStack useTable or upstream material-react-table example is producing the wrong setup.",
831
+ "headings": [
832
+ "Setup",
833
+ "Core Patterns",
834
+ "Accessors return primitives, renders return markup",
835
+ "Infer column types with createMRTColumnHelper",
836
+ "Toggle features with enable* options",
837
+ "Read the instance where you need it",
838
+ "Common Mistakes",
839
+ "HIGH Building the table with TanStack hooks",
840
+ "HIGH Unstable data or columns",
841
+ "MEDIUM Mixing the upstream and fork package names",
842
+ "MEDIUM Returning JSX from an accessor",
843
+ "API Discovery"
844
+ ]
845
+ },
846
+ {
847
+ "name": "localization",
848
+ "title": "localization",
849
+ "description": "Translate Material React Table V4 with the localization option: import a built-in locale from @mini_7/material-react-table/locales/<code>, override individual MRT_Localization strings, write a full custom locale with the language BCP 47 tag, keep {column} placeholders, and pair it with Material UI theme locales and the date pickers adapterLocale. Load for i18n, translating toolbar and menu text, number formatting in pagination, or a locale import that fails to resolve.",
850
+ "headings": [
851
+ "Setup",
852
+ "Core Patterns",
853
+ "Override a few strings",
854
+ "Write a custom locale",
855
+ "Pair with Material UI and the date pickers",
856
+ "Switch locales at runtime",
857
+ "Common Mistakes",
858
+ "HIGH Importing a locale from the upstream package name",
859
+ "MEDIUM Custom locale without the language tag",
860
+ "MEDIUM Dropping the {column} placeholder",
861
+ "LOW Passing an unstable localization object",
862
+ "API Discovery"
863
+ ]
864
+ },
865
+ {
866
+ "name": "migrate-v3-to-v4",
867
+ "title": "migrate-v3-to-v4",
868
+ "description": "Migrate an application from material-react-table V3 to @mini_7/material-react-table V4: switch the package and imports, upgrade Material UI and X Date Pickers to V9, move text field props to slotProps, and apply every TanStack Table V9 rename and behaviour change (column pinning start/end, columnResizing, sortFn, getPaginatedRowModel, rowSelection true values, removed getCoreRowModel options and onStateChange). Load for migration plans, implementation, or audits of a V3 codebase.",
869
+ "headings": [
870
+ "Setup",
871
+ "Core Patterns",
872
+ "Renames from TanStack Table V9",
873
+ "Behaviour changes to audit",
874
+ "Material UI V9 changes inside MRT options",
875
+ "Package entry points",
876
+ "Common Mistakes",
877
+ "HIGH Keeping v8 pinning literals",
878
+ "HIGH Passing row model factories",
879
+ "MEDIUM Treating the migration as a TanStack useTable rewrite",
880
+ "LOW Deep-importing a locale file",
881
+ "API Discovery"
882
+ ]
883
+ },
884
+ {
885
+ "name": "state-and-server-data",
886
+ "title": "state-and-server-data",
887
+ "description": "Control Material React Table V4 state with initialState, the state option plus on*Change callbacks, MRT_Updater handlers, table.getState and table.state, and move filtering, sorting, pagination, grouping, or expanding to the server with manual* options and rowCount. Load for controlled tables, persisted state, side effects on state change, TanStack Query integration, or infinite scrolling.",
888
+ "headings": [
889
+ "Setup",
890
+ "Core Patterns",
891
+ "Handle updaters like React setState",
892
+ "Server-side data with manual* options",
893
+ "Read state without controlling it",
894
+ "Persist state",
895
+ "Common Mistakes",
896
+ "HIGH Passing on*Change without state",
897
+ "HIGH Toggling row selection with false",
898
+ "MEDIUM Using onStateChange or table.setState",
899
+ "MEDIUM Forgetting rowCount with manualPagination",
900
+ "API Discovery"
901
+ ]
902
+ },
903
+ {
904
+ "name": "virtualization",
905
+ "title": "virtualization",
906
+ "description": "Render thousands of rows or hundreds of columns in Material React Table V4 with enableRowVirtualization and enableColumnVirtualization, tune rowVirtualizerOptions and columnVirtualizerOptions (overscan, estimateSize), reach the TanStack Virtual instance through rowVirtualizerInstanceRef for scrollToIndex, and understand the automatic layoutMode grid and sticky header. Load for large unpaginated tables, infinite scroll, scroll-to-row, jumpy scrolling, or headless virtualization with useMRT_RowVirtualizer.",
907
+ "headings": [
908
+ "Setup",
909
+ "Core Patterns",
910
+ "Tune the virtualizer",
911
+ "Reach the virtualizer instance",
912
+ "Infinite scroll on the container",
913
+ "Headless virtualization",
914
+ "Common Mistakes",
915
+ "HIGH Enabling virtualization conditionally",
916
+ "HIGH Leaving pagination on",
917
+ "MEDIUM Expecting semantic table CSS to keep working",
918
+ "MEDIUM Detail panels with a fixed row estimate",
919
+ "API Discovery"
920
+ ]
921
+ }
922
+ ],
923
+ "examples": [
924
+ {
925
+ "id": "advanced",
926
+ "guides": [],
927
+ "pages": [
928
+ "advanced",
929
+ "basic",
930
+ "custom-headless",
931
+ "minimal"
932
+ ]
933
+ },
934
+ {
935
+ "id": "aggregation-and-grouping",
936
+ "guides": [
937
+ "aggregation"
938
+ ],
939
+ "pages": [
940
+ "aggregation-and-grouping",
941
+ "chart-detail-panel",
942
+ "column-grouping",
943
+ "customized-grouping",
944
+ "detail-panel",
945
+ "expanding-tree-flat-parse",
946
+ "expanding-tree"
947
+ ]
948
+ },
949
+ {
950
+ "id": "aggregation-multi",
951
+ "guides": [
952
+ "aggregation"
953
+ ],
954
+ "pages": []
955
+ },
956
+ {
957
+ "id": "alternate-column-filtering",
958
+ "guides": [
959
+ "column-filtering"
960
+ ],
961
+ "pages": [
962
+ "custom-filter-ui",
963
+ "faceted-values",
964
+ "filter-switching",
965
+ "filter-variants",
966
+ "popover-filters"
967
+ ]
968
+ },
969
+ {
970
+ "id": "alternate-detail-panel",
971
+ "guides": [
972
+ "detail-panel"
973
+ ],
974
+ "pages": []
975
+ },
976
+ {
977
+ "id": "alternate-pagination",
978
+ "guides": [
979
+ "pagination"
980
+ ],
981
+ "pages": []
982
+ },
983
+ {
984
+ "id": "basic",
985
+ "guides": [],
986
+ "pages": [
987
+ "advanced",
988
+ "basic",
989
+ "custom-headless",
990
+ "minimal"
991
+ ]
992
+ },
993
+ {
994
+ "id": "chart-detail-panel",
995
+ "guides": [
996
+ "detail-panel"
997
+ ],
998
+ "pages": [
999
+ "aggregation-and-grouping",
1000
+ "chart-detail-panel",
1001
+ "column-grouping",
1002
+ "customized-grouping",
1003
+ "detail-panel",
1004
+ "expanding-tree-flat-parse",
1005
+ "expanding-tree"
1006
+ ]
1007
+ },
1008
+ {
1009
+ "id": "column-actions-space",
1010
+ "guides": [
1011
+ "column-actions"
1012
+ ],
1013
+ "pages": []
1014
+ },
1015
+ {
1016
+ "id": "column-alignment",
1017
+ "guides": [
1018
+ "data-columns"
1019
+ ],
1020
+ "pages": []
1021
+ },
1022
+ {
1023
+ "id": "custom-column-actions",
1024
+ "guides": [
1025
+ "column-actions"
1026
+ ],
1027
+ "pages": []
1028
+ },
1029
+ {
1030
+ "id": "custom-column-filtering-ui",
1031
+ "guides": [],
1032
+ "pages": [
1033
+ "custom-filter-ui",
1034
+ "faceted-values",
1035
+ "filter-switching",
1036
+ "filter-variants",
1037
+ "popover-filters"
1038
+ ]
1039
+ },
1040
+ {
1041
+ "id": "custom-headless",
1042
+ "guides": [],
1043
+ "pages": [
1044
+ "advanced",
1045
+ "basic",
1046
+ "custom-headless",
1047
+ "minimal"
1048
+ ]
1049
+ },
1050
+ {
1051
+ "id": "custom-top-toolbar",
1052
+ "guides": [
1053
+ "toolbar-customization"
1054
+ ],
1055
+ "pages": []
1056
+ },
1057
+ {
1058
+ "id": "customize-display-columns",
1059
+ "guides": [
1060
+ "display-columns"
1061
+ ],
1062
+ "pages": []
1063
+ },
1064
+ {
1065
+ "id": "customize-filter-components",
1066
+ "guides": [
1067
+ "column-filtering"
1068
+ ],
1069
+ "pages": []
1070
+ },
1071
+ {
1072
+ "id": "customize-filter-modes",
1073
+ "guides": [
1074
+ "column-filtering"
1075
+ ],
1076
+ "pages": [
1077
+ "custom-filter-ui",
1078
+ "faceted-values",
1079
+ "filter-switching",
1080
+ "filter-variants",
1081
+ "popover-filters"
1082
+ ]
1083
+ },
1084
+ {
1085
+ "id": "customize-filter-variants",
1086
+ "guides": [
1087
+ "column-filtering"
1088
+ ],
1089
+ "pages": [
1090
+ "custom-filter-ui",
1091
+ "faceted-values",
1092
+ "filter-switching",
1093
+ "filter-variants",
1094
+ "popover-filters"
1095
+ ]
1096
+ },
1097
+ {
1098
+ "id": "customize-global-filter-component",
1099
+ "guides": [
1100
+ "global-filtering"
1101
+ ],
1102
+ "pages": []
1103
+ },
1104
+ {
1105
+ "id": "customize-remove-column-grouping",
1106
+ "guides": [
1107
+ "column-grouping"
1108
+ ],
1109
+ "pages": [
1110
+ "aggregation-and-grouping",
1111
+ "chart-detail-panel",
1112
+ "column-grouping",
1113
+ "customized-grouping",
1114
+ "detail-panel",
1115
+ "expanding-tree-flat-parse",
1116
+ "expanding-tree"
1117
+ ]
1118
+ },
1119
+ {
1120
+ "id": "customize-row-selection",
1121
+ "guides": [
1122
+ "row-selection"
1123
+ ],
1124
+ "pages": []
1125
+ },
1126
+ {
1127
+ "id": "customize-table-styles",
1128
+ "guides": [
1129
+ "customize-components"
1130
+ ],
1131
+ "pages": []
1132
+ },
1133
+ {
1134
+ "id": "disable-column-actions",
1135
+ "guides": [
1136
+ "column-actions"
1137
+ ],
1138
+ "pages": []
1139
+ },
1140
+ {
1141
+ "id": "disable-column-hiding",
1142
+ "guides": [
1143
+ "column-hiding"
1144
+ ],
1145
+ "pages": []
1146
+ },
1147
+ {
1148
+ "id": "disable-density-toggle",
1149
+ "guides": [
1150
+ "density-toggle"
1151
+ ],
1152
+ "pages": []
1153
+ },
1154
+ {
1155
+ "id": "dynamic-columns",
1156
+ "guides": [],
1157
+ "pages": [
1158
+ "dynamic-columns",
1159
+ "lazy-detail-panel",
1160
+ "lazy-sub-rows",
1161
+ "react-query",
1162
+ "remote"
1163
+ ]
1164
+ },
1165
+ {
1166
+ "id": "editing-crud-cell",
1167
+ "guides": [
1168
+ "editing"
1169
+ ],
1170
+ "pages": [
1171
+ "editing-crud-inline-cell",
1172
+ "editing-crud-inline-row",
1173
+ "editing-crud-inline-table",
1174
+ "editing-crud-tree",
1175
+ "editing-crud"
1176
+ ]
1177
+ },
1178
+ {
1179
+ "id": "editing-crud-modal",
1180
+ "guides": [
1181
+ "editing"
1182
+ ],
1183
+ "pages": [
1184
+ "editing-crud-inline-cell",
1185
+ "editing-crud-inline-row",
1186
+ "editing-crud-inline-table",
1187
+ "editing-crud-tree",
1188
+ "editing-crud"
1189
+ ]
1190
+ },
1191
+ {
1192
+ "id": "editing-crud-row",
1193
+ "guides": [
1194
+ "editing"
1195
+ ],
1196
+ "pages": [
1197
+ "editing-crud-inline-cell",
1198
+ "editing-crud-inline-row",
1199
+ "editing-crud-inline-table",
1200
+ "editing-crud-tree",
1201
+ "editing-crud"
1202
+ ]
1203
+ },
1204
+ {
1205
+ "id": "editing-crud-table",
1206
+ "guides": [
1207
+ "editing"
1208
+ ],
1209
+ "pages": [
1210
+ "editing-crud-inline-cell",
1211
+ "editing-crud-inline-row",
1212
+ "editing-crud-inline-table",
1213
+ "editing-crud-tree",
1214
+ "editing-crud"
1215
+ ]
1216
+ },
1217
+ {
1218
+ "id": "editing-crud-tree",
1219
+ "guides": [
1220
+ "editing"
1221
+ ],
1222
+ "pages": [
1223
+ "editing-crud-inline-cell",
1224
+ "editing-crud-inline-row",
1225
+ "editing-crud-inline-table",
1226
+ "editing-crud-tree",
1227
+ "editing-crud"
1228
+ ]
1229
+ },
1230
+ {
1231
+ "id": "enable-cell-actions",
1232
+ "guides": [
1233
+ "cell-actions"
1234
+ ],
1235
+ "pages": []
1236
+ },
1237
+ {
1238
+ "id": "enable-click-to-copy",
1239
+ "guides": [
1240
+ "click-to-copy"
1241
+ ],
1242
+ "pages": []
1243
+ },
1244
+ {
1245
+ "id": "enable-column-grouping",
1246
+ "guides": [
1247
+ "column-grouping"
1248
+ ],
1249
+ "pages": [
1250
+ "aggregation-and-grouping",
1251
+ "chart-detail-panel",
1252
+ "column-grouping",
1253
+ "customized-grouping",
1254
+ "detail-panel",
1255
+ "expanding-tree-flat-parse",
1256
+ "expanding-tree"
1257
+ ]
1258
+ },
1259
+ {
1260
+ "id": "enable-column-ordering",
1261
+ "guides": [
1262
+ "column-ordering-dnd"
1263
+ ],
1264
+ "pages": [
1265
+ "column-ordering",
1266
+ "row-dragging",
1267
+ "row-ordering"
1268
+ ]
1269
+ },
1270
+ {
1271
+ "id": "enable-column-pinning",
1272
+ "guides": [
1273
+ "column-pinning"
1274
+ ],
1275
+ "pages": [
1276
+ "column-pinning",
1277
+ "static-row-pinning",
1278
+ "sticky-header",
1279
+ "sticky-row-pinning",
1280
+ "sticky-row-selection"
1281
+ ]
1282
+ },
1283
+ {
1284
+ "id": "enable-column-resizing",
1285
+ "guides": [
1286
+ "column-resizing"
1287
+ ],
1288
+ "pages": []
1289
+ },
1290
+ {
1291
+ "id": "enable-column-virtualization",
1292
+ "guides": [
1293
+ "virtualization"
1294
+ ],
1295
+ "pages": [
1296
+ "column-virtualization",
1297
+ "infinite-scrolling",
1298
+ "row-virtualization",
1299
+ "virtualized"
1300
+ ]
1301
+ },
1302
+ {
1303
+ "id": "enable-detail-panel-conditionally",
1304
+ "guides": [
1305
+ "detail-panel"
1306
+ ],
1307
+ "pages": [
1308
+ "aggregation-and-grouping",
1309
+ "chart-detail-panel",
1310
+ "column-grouping",
1311
+ "customized-grouping",
1312
+ "detail-panel",
1313
+ "expanding-tree-flat-parse",
1314
+ "expanding-tree"
1315
+ ]
1316
+ },
1317
+ {
1318
+ "id": "enable-detail-panel-virtualized",
1319
+ "guides": [
1320
+ "detail-panel"
1321
+ ],
1322
+ "pages": []
1323
+ },
1324
+ {
1325
+ "id": "enable-expanding-tree",
1326
+ "guides": [
1327
+ "expanding-sub-rows"
1328
+ ],
1329
+ "pages": []
1330
+ },
1331
+ {
1332
+ "id": "enable-filter-facet-values",
1333
+ "guides": [
1334
+ "column-filtering"
1335
+ ],
1336
+ "pages": [
1337
+ "custom-filter-ui",
1338
+ "faceted-values",
1339
+ "filter-switching",
1340
+ "filter-variants",
1341
+ "popover-filters"
1342
+ ]
1343
+ },
1344
+ {
1345
+ "id": "enable-row-dragging",
1346
+ "guides": [
1347
+ "row-ordering-dnd"
1348
+ ],
1349
+ "pages": [
1350
+ "column-ordering",
1351
+ "row-dragging",
1352
+ "row-ordering"
1353
+ ]
1354
+ },
1355
+ {
1356
+ "id": "enable-row-numbers-original",
1357
+ "guides": [
1358
+ "row-numbers"
1359
+ ],
1360
+ "pages": []
1361
+ },
1362
+ {
1363
+ "id": "enable-row-numbers-static",
1364
+ "guides": [
1365
+ "row-numbers"
1366
+ ],
1367
+ "pages": []
1368
+ },
1369
+ {
1370
+ "id": "enable-row-ordering",
1371
+ "guides": [
1372
+ "row-ordering-dnd"
1373
+ ],
1374
+ "pages": [
1375
+ "column-ordering",
1376
+ "row-dragging",
1377
+ "row-ordering"
1378
+ ]
1379
+ },
1380
+ {
1381
+ "id": "enable-row-pinning-select",
1382
+ "guides": [
1383
+ "row-pinning",
1384
+ "row-selection"
1385
+ ],
1386
+ "pages": [
1387
+ "column-pinning",
1388
+ "static-row-pinning",
1389
+ "sticky-header",
1390
+ "sticky-row-pinning",
1391
+ "sticky-row-selection"
1392
+ ]
1393
+ },
1394
+ {
1395
+ "id": "enable-row-pinning-static",
1396
+ "guides": [
1397
+ "row-pinning"
1398
+ ],
1399
+ "pages": [
1400
+ "column-pinning",
1401
+ "static-row-pinning",
1402
+ "sticky-header",
1403
+ "sticky-row-pinning",
1404
+ "sticky-row-selection"
1405
+ ]
1406
+ },
1407
+ {
1408
+ "id": "enable-row-pinning-sticky",
1409
+ "guides": [
1410
+ "row-pinning"
1411
+ ],
1412
+ "pages": [
1413
+ "column-pinning",
1414
+ "static-row-pinning",
1415
+ "sticky-header",
1416
+ "sticky-row-pinning",
1417
+ "sticky-row-selection"
1418
+ ]
1419
+ },
1420
+ {
1421
+ "id": "enable-row-selection",
1422
+ "guides": [
1423
+ "row-selection"
1424
+ ],
1425
+ "pages": []
1426
+ },
1427
+ {
1428
+ "id": "enable-row-virtualization",
1429
+ "guides": [
1430
+ "virtualization"
1431
+ ],
1432
+ "pages": [
1433
+ "column-virtualization",
1434
+ "infinite-scrolling",
1435
+ "row-virtualization",
1436
+ "virtualized"
1437
+ ]
1438
+ },
1439
+ {
1440
+ "id": "enable-sticky-header",
1441
+ "guides": [
1442
+ "sticky-header"
1443
+ ],
1444
+ "pages": [
1445
+ "column-pinning",
1446
+ "static-row-pinning",
1447
+ "sticky-header",
1448
+ "sticky-row-pinning",
1449
+ "sticky-row-selection"
1450
+ ]
1451
+ },
1452
+ {
1453
+ "id": "expanding-tree-expanded",
1454
+ "guides": [
1455
+ "expanding-sub-rows"
1456
+ ],
1457
+ "pages": [
1458
+ "aggregation-and-grouping",
1459
+ "chart-detail-panel",
1460
+ "column-grouping",
1461
+ "customized-grouping",
1462
+ "detail-panel",
1463
+ "expanding-tree-flat-parse",
1464
+ "expanding-tree"
1465
+ ]
1466
+ },
1467
+ {
1468
+ "id": "expanding-tree-flat-parse",
1469
+ "guides": [
1470
+ "expanding-sub-rows"
1471
+ ],
1472
+ "pages": [
1473
+ "aggregation-and-grouping",
1474
+ "chart-detail-panel",
1475
+ "column-grouping",
1476
+ "customized-grouping",
1477
+ "detail-panel",
1478
+ "expanding-tree-flat-parse",
1479
+ "expanding-tree"
1480
+ ]
1481
+ },
1482
+ {
1483
+ "id": "expanding-tree-root-expanded",
1484
+ "guides": [
1485
+ "expanding-sub-rows"
1486
+ ],
1487
+ "pages": []
1488
+ },
1489
+ {
1490
+ "id": "export-to-csv",
1491
+ "guides": [],
1492
+ "pages": [
1493
+ "export-csv",
1494
+ "export-pdf"
1495
+ ]
1496
+ },
1497
+ {
1498
+ "id": "export-to-pdf",
1499
+ "guides": [],
1500
+ "pages": [
1501
+ "export-csv",
1502
+ "export-pdf"
1503
+ ]
1504
+ },
1505
+ {
1506
+ "id": "external-toolbar",
1507
+ "guides": [
1508
+ "toolbar-customization"
1509
+ ],
1510
+ "pages": []
1511
+ },
1512
+ {
1513
+ "id": "font-awesome-icons",
1514
+ "guides": [
1515
+ "customize-icons"
1516
+ ],
1517
+ "pages": []
1518
+ },
1519
+ {
1520
+ "id": "infinite-scrolling",
1521
+ "guides": [],
1522
+ "pages": [
1523
+ "column-virtualization",
1524
+ "infinite-scrolling",
1525
+ "row-virtualization",
1526
+ "virtualized"
1527
+ ]
1528
+ },
1529
+ {
1530
+ "id": "lazy-detail-panel",
1531
+ "guides": [
1532
+ "detail-panel"
1533
+ ],
1534
+ "pages": [
1535
+ "dynamic-columns",
1536
+ "lazy-detail-panel",
1537
+ "lazy-sub-rows",
1538
+ "react-query",
1539
+ "remote"
1540
+ ]
1541
+ },
1542
+ {
1543
+ "id": "lazy-sub-rows",
1544
+ "guides": [
1545
+ "expanding-sub-rows"
1546
+ ],
1547
+ "pages": [
1548
+ "dynamic-columns",
1549
+ "lazy-detail-panel",
1550
+ "lazy-sub-rows",
1551
+ "react-query",
1552
+ "remote"
1553
+ ]
1554
+ },
1555
+ {
1556
+ "id": "linear-progress",
1557
+ "guides": [
1558
+ "async-loading"
1559
+ ],
1560
+ "pages": []
1561
+ },
1562
+ {
1563
+ "id": "loading",
1564
+ "guides": [
1565
+ "async-loading"
1566
+ ],
1567
+ "pages": []
1568
+ },
1569
+ {
1570
+ "id": "localization-i18n-ar",
1571
+ "guides": [
1572
+ "localization"
1573
+ ],
1574
+ "pages": []
1575
+ },
1576
+ {
1577
+ "id": "localization-i18n-az",
1578
+ "guides": [
1579
+ "localization"
1580
+ ],
1581
+ "pages": []
1582
+ },
1583
+ {
1584
+ "id": "localization-i18n-bg",
1585
+ "guides": [
1586
+ "localization"
1587
+ ],
1588
+ "pages": []
1589
+ },
1590
+ {
1591
+ "id": "localization-i18n-cs",
1592
+ "guides": [
1593
+ "localization"
1594
+ ],
1595
+ "pages": []
1596
+ },
1597
+ {
1598
+ "id": "localization-i18n-da",
1599
+ "guides": [
1600
+ "localization"
1601
+ ],
1602
+ "pages": []
1603
+ },
1604
+ {
1605
+ "id": "localization-i18n-de",
1606
+ "guides": [
1607
+ "localization"
1608
+ ],
1609
+ "pages": []
1610
+ },
1611
+ {
1612
+ "id": "localization-i18n-el",
1613
+ "guides": [
1614
+ "localization"
1615
+ ],
1616
+ "pages": []
1617
+ },
1618
+ {
1619
+ "id": "localization-i18n-en",
1620
+ "guides": [
1621
+ "localization"
1622
+ ],
1623
+ "pages": []
1624
+ },
1625
+ {
1626
+ "id": "localization-i18n-es",
1627
+ "guides": [
1628
+ "localization"
1629
+ ],
1630
+ "pages": []
1631
+ },
1632
+ {
1633
+ "id": "localization-i18n-et",
1634
+ "guides": [
1635
+ "localization"
1636
+ ],
1637
+ "pages": []
1638
+ },
1639
+ {
1640
+ "id": "localization-i18n-fa",
1641
+ "guides": [
1642
+ "column-resizing",
1643
+ "localization"
1644
+ ],
1645
+ "pages": []
1646
+ },
1647
+ {
1648
+ "id": "localization-i18n-fi",
1649
+ "guides": [
1650
+ "localization"
1651
+ ],
1652
+ "pages": []
1653
+ },
1654
+ {
1655
+ "id": "localization-i18n-fr",
1656
+ "guides": [
1657
+ "localization"
1658
+ ],
1659
+ "pages": []
1660
+ },
1661
+ {
1662
+ "id": "localization-i18n-he",
1663
+ "guides": [
1664
+ "localization"
1665
+ ],
1666
+ "pages": []
1667
+ },
1668
+ {
1669
+ "id": "localization-i18n-hr",
1670
+ "guides": [
1671
+ "localization"
1672
+ ],
1673
+ "pages": []
1674
+ },
1675
+ {
1676
+ "id": "localization-i18n-hu",
1677
+ "guides": [
1678
+ "localization"
1679
+ ],
1680
+ "pages": []
1681
+ },
1682
+ {
1683
+ "id": "localization-i18n-hy",
1684
+ "guides": [
1685
+ "localization"
1686
+ ],
1687
+ "pages": []
1688
+ },
1689
+ {
1690
+ "id": "localization-i18n-id",
1691
+ "guides": [
1692
+ "localization"
1693
+ ],
1694
+ "pages": []
1695
+ },
1696
+ {
1697
+ "id": "localization-i18n-it",
1698
+ "guides": [
1699
+ "localization"
1700
+ ],
1701
+ "pages": []
1702
+ },
1703
+ {
1704
+ "id": "localization-i18n-ja",
1705
+ "guides": [
1706
+ "localization"
1707
+ ],
1708
+ "pages": []
1709
+ },
1710
+ {
1711
+ "id": "localization-i18n-ko",
1712
+ "guides": [
1713
+ "localization"
1714
+ ],
1715
+ "pages": []
1716
+ },
1717
+ {
1718
+ "id": "localization-i18n-nl",
1719
+ "guides": [
1720
+ "localization"
1721
+ ],
1722
+ "pages": []
1723
+ },
1724
+ {
1725
+ "id": "localization-i18n-no",
1726
+ "guides": [
1727
+ "localization"
1728
+ ],
1729
+ "pages": []
1730
+ },
1731
+ {
1732
+ "id": "localization-i18n-np",
1733
+ "guides": [
1734
+ "localization"
1735
+ ],
1736
+ "pages": []
1737
+ },
1738
+ {
1739
+ "id": "localization-i18n-pl",
1740
+ "guides": [
1741
+ "localization"
1742
+ ],
1743
+ "pages": []
1744
+ },
1745
+ {
1746
+ "id": "localization-i18n-pt",
1747
+ "guides": [
1748
+ "localization"
1749
+ ],
1750
+ "pages": []
1751
+ },
1752
+ {
1753
+ "id": "localization-i18n-pt-BR",
1754
+ "guides": [],
1755
+ "pages": []
1756
+ },
1757
+ {
1758
+ "id": "localization-i18n-ro",
1759
+ "guides": [
1760
+ "localization"
1761
+ ],
1762
+ "pages": []
1763
+ },
1764
+ {
1765
+ "id": "localization-i18n-ru",
1766
+ "guides": [
1767
+ "localization"
1768
+ ],
1769
+ "pages": []
1770
+ },
1771
+ {
1772
+ "id": "localization-i18n-sk",
1773
+ "guides": [
1774
+ "localization"
1775
+ ],
1776
+ "pages": []
1777
+ },
1778
+ {
1779
+ "id": "localization-i18n-sr-Cyrl-RS",
1780
+ "guides": [],
1781
+ "pages": []
1782
+ },
1783
+ {
1784
+ "id": "localization-i18n-sr-Latn-RS",
1785
+ "guides": [],
1786
+ "pages": []
1787
+ },
1788
+ {
1789
+ "id": "localization-i18n-sv",
1790
+ "guides": [
1791
+ "localization"
1792
+ ],
1793
+ "pages": []
1794
+ },
1795
+ {
1796
+ "id": "localization-i18n-tr",
1797
+ "guides": [
1798
+ "localization"
1799
+ ],
1800
+ "pages": []
1801
+ },
1802
+ {
1803
+ "id": "localization-i18n-uk",
1804
+ "guides": [
1805
+ "localization"
1806
+ ],
1807
+ "pages": []
1808
+ },
1809
+ {
1810
+ "id": "localization-i18n-vi",
1811
+ "guides": [
1812
+ "localization"
1813
+ ],
1814
+ "pages": []
1815
+ },
1816
+ {
1817
+ "id": "localization-i18n-zh-hans",
1818
+ "guides": [
1819
+ "localization"
1820
+ ],
1821
+ "pages": []
1822
+ },
1823
+ {
1824
+ "id": "localization-i18n-zh-hant",
1825
+ "guides": [
1826
+ "localization"
1827
+ ],
1828
+ "pages": []
1829
+ },
1830
+ {
1831
+ "id": "manual-selection",
1832
+ "guides": [
1833
+ "row-selection"
1834
+ ],
1835
+ "pages": []
1836
+ },
1837
+ {
1838
+ "id": "minimal",
1839
+ "guides": [
1840
+ "toolbar-customization"
1841
+ ],
1842
+ "pages": [
1843
+ "advanced",
1844
+ "basic",
1845
+ "custom-headless",
1846
+ "minimal"
1847
+ ]
1848
+ },
1849
+ {
1850
+ "id": "mui-theme",
1851
+ "guides": [
1852
+ "customize-components"
1853
+ ],
1854
+ "pages": []
1855
+ },
1856
+ {
1857
+ "id": "multi-sorting",
1858
+ "guides": [
1859
+ "sorting"
1860
+ ],
1861
+ "pages": []
1862
+ },
1863
+ {
1864
+ "id": "persistent-state",
1865
+ "guides": [
1866
+ "state-management"
1867
+ ],
1868
+ "pages": []
1869
+ },
1870
+ {
1871
+ "id": "react-query",
1872
+ "guides": [
1873
+ "async-loading"
1874
+ ],
1875
+ "pages": [
1876
+ "dynamic-columns",
1877
+ "lazy-detail-panel",
1878
+ "lazy-sub-rows",
1879
+ "react-query",
1880
+ "remote"
1881
+ ]
1882
+ },
1883
+ {
1884
+ "id": "remote",
1885
+ "guides": [
1886
+ "global-filtering",
1887
+ "pagination",
1888
+ "sorting"
1889
+ ],
1890
+ "pages": [
1891
+ "dynamic-columns",
1892
+ "lazy-detail-panel",
1893
+ "lazy-sub-rows",
1894
+ "react-query",
1895
+ "remote"
1896
+ ]
1897
+ },
1898
+ {
1899
+ "id": "row-actions-buttons",
1900
+ "guides": [
1901
+ "row-actions"
1902
+ ],
1903
+ "pages": []
1904
+ },
1905
+ {
1906
+ "id": "row-actions-menu-items",
1907
+ "guides": [
1908
+ "row-actions"
1909
+ ],
1910
+ "pages": []
1911
+ },
1912
+ {
1913
+ "id": "single-row-selection",
1914
+ "guides": [
1915
+ "row-selection"
1916
+ ],
1917
+ "pages": []
1918
+ },
1919
+ {
1920
+ "id": "virtualized",
1921
+ "guides": [],
1922
+ "pages": [
1923
+ "column-virtualization",
1924
+ "infinite-scrolling",
1925
+ "row-virtualization",
1926
+ "virtualized"
1927
+ ]
1928
+ }
1929
+ ]
1930
+ }