material-react-table 2.0.0-alpha.6 → 2.0.0-beta.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 (200) hide show
  1. package/dist/cjs/index.js +92 -43
  2. package/dist/cjs/index.js.map +1 -1
  3. package/dist/cjs/types/buttons/MRT_GrabHandleButton.d.ts +2 -1
  4. package/dist/cjs/types/head/MRT_TableHeadCellSortLabel.d.ts +1 -1
  5. package/dist/cjs/types/icons.d.ts +1 -0
  6. package/dist/cjs/types/types.d.ts +6 -1
  7. package/dist/esm/material-react-table.esm.js +89 -41
  8. package/dist/esm/material-react-table.esm.js.map +1 -1
  9. package/dist/esm/types/buttons/MRT_GrabHandleButton.d.ts +2 -1
  10. package/dist/esm/types/head/MRT_TableHeadCellSortLabel.d.ts +1 -1
  11. package/dist/esm/types/icons.d.ts +1 -0
  12. package/dist/esm/types/types.d.ts +6 -1
  13. package/dist/index.d.ts +10 -3
  14. package/locales/ar.esm.js +1 -0
  15. package/locales/ar.esm.js.map +1 -1
  16. package/locales/ar.js +1 -0
  17. package/locales/ar.js.map +1 -1
  18. package/locales/bg.esm.js +1 -0
  19. package/locales/bg.esm.js.map +1 -1
  20. package/locales/bg.js +1 -0
  21. package/locales/bg.js.map +1 -1
  22. package/locales/cs.esm.js +1 -0
  23. package/locales/cs.esm.js.map +1 -1
  24. package/locales/cs.js +1 -0
  25. package/locales/cs.js.map +1 -1
  26. package/locales/da.esm.js +1 -0
  27. package/locales/da.esm.js.map +1 -1
  28. package/locales/da.js +1 -0
  29. package/locales/da.js.map +1 -1
  30. package/locales/de.esm.js +1 -0
  31. package/locales/de.esm.js.map +1 -1
  32. package/locales/de.js +1 -0
  33. package/locales/de.js.map +1 -1
  34. package/locales/es.esm.js +1 -0
  35. package/locales/es.esm.js.map +1 -1
  36. package/locales/es.js +1 -0
  37. package/locales/es.js.map +1 -1
  38. package/locales/et.esm.js +1 -0
  39. package/locales/et.esm.js.map +1 -1
  40. package/locales/et.js +1 -0
  41. package/locales/et.js.map +1 -1
  42. package/locales/fa.esm.js +1 -0
  43. package/locales/fa.esm.js.map +1 -1
  44. package/locales/fa.js +1 -0
  45. package/locales/fa.js.map +1 -1
  46. package/locales/fi.esm.js +1 -0
  47. package/locales/fi.esm.js.map +1 -1
  48. package/locales/fi.js +1 -0
  49. package/locales/fi.js.map +1 -1
  50. package/locales/fr.esm.js +1 -0
  51. package/locales/fr.esm.js.map +1 -1
  52. package/locales/fr.js +1 -0
  53. package/locales/fr.js.map +1 -1
  54. package/locales/hu.esm.js +1 -0
  55. package/locales/hu.esm.js.map +1 -1
  56. package/locales/hu.js +1 -0
  57. package/locales/hu.js.map +1 -1
  58. package/locales/hy.esm.js +1 -0
  59. package/locales/hy.esm.js.map +1 -1
  60. package/locales/hy.js +1 -0
  61. package/locales/hy.js.map +1 -1
  62. package/locales/id.esm.js +1 -0
  63. package/locales/id.esm.js.map +1 -1
  64. package/locales/id.js +1 -0
  65. package/locales/id.js.map +1 -1
  66. package/locales/it.esm.js +1 -0
  67. package/locales/it.esm.js.map +1 -1
  68. package/locales/it.js +1 -0
  69. package/locales/it.js.map +1 -1
  70. package/locales/ja.esm.js +1 -0
  71. package/locales/ja.esm.js.map +1 -1
  72. package/locales/ja.js +1 -0
  73. package/locales/ja.js.map +1 -1
  74. package/locales/ko.esm.js +1 -0
  75. package/locales/ko.esm.js.map +1 -1
  76. package/locales/ko.js +1 -0
  77. package/locales/ko.js.map +1 -1
  78. package/locales/nl.esm.js +1 -0
  79. package/locales/nl.esm.js.map +1 -1
  80. package/locales/nl.js +1 -0
  81. package/locales/nl.js.map +1 -1
  82. package/locales/no.esm.js +1 -0
  83. package/locales/no.esm.js.map +1 -1
  84. package/locales/no.js +1 -0
  85. package/locales/no.js.map +1 -1
  86. package/locales/np.esm.js +1 -1
  87. package/locales/np.esm.js.map +1 -1
  88. package/locales/np.js +1 -1
  89. package/locales/np.js.map +1 -1
  90. package/locales/pl.esm.js +1 -0
  91. package/locales/pl.esm.js.map +1 -1
  92. package/locales/pl.js +1 -0
  93. package/locales/pl.js.map +1 -1
  94. package/locales/pt-BR.esm.js +1 -0
  95. package/locales/pt-BR.esm.js.map +1 -1
  96. package/locales/pt-BR.js +1 -0
  97. package/locales/pt-BR.js.map +1 -1
  98. package/locales/pt.esm.js +1 -0
  99. package/locales/pt.esm.js.map +1 -1
  100. package/locales/pt.js +1 -0
  101. package/locales/pt.js.map +1 -1
  102. package/locales/ro.esm.js +1 -0
  103. package/locales/ro.esm.js.map +1 -1
  104. package/locales/ro.js +1 -0
  105. package/locales/ro.js.map +1 -1
  106. package/locales/ru.esm.js +1 -0
  107. package/locales/ru.esm.js.map +1 -1
  108. package/locales/ru.js +1 -0
  109. package/locales/ru.js.map +1 -1
  110. package/locales/sk.esm.js +1 -0
  111. package/locales/sk.esm.js.map +1 -1
  112. package/locales/sk.js +1 -0
  113. package/locales/sk.js.map +1 -1
  114. package/locales/sr-Cyrl-RS.esm.js +1 -0
  115. package/locales/sr-Cyrl-RS.esm.js.map +1 -1
  116. package/locales/sr-Cyrl-RS.js +1 -0
  117. package/locales/sr-Cyrl-RS.js.map +1 -1
  118. package/locales/sr-Latn-RS.esm.js +1 -0
  119. package/locales/sr-Latn-RS.esm.js.map +1 -1
  120. package/locales/sr-Latn-RS.js +1 -0
  121. package/locales/sr-Latn-RS.js.map +1 -1
  122. package/locales/sv.esm.js +3 -2
  123. package/locales/sv.esm.js.map +1 -1
  124. package/locales/sv.js +3 -2
  125. package/locales/sv.js.map +1 -1
  126. package/locales/tr.esm.js +1 -0
  127. package/locales/tr.esm.js.map +1 -1
  128. package/locales/tr.js +1 -0
  129. package/locales/tr.js.map +1 -1
  130. package/locales/uk.esm.js +1 -0
  131. package/locales/uk.esm.js.map +1 -1
  132. package/locales/uk.js +1 -0
  133. package/locales/uk.js.map +1 -1
  134. package/locales/vi.esm.js +1 -0
  135. package/locales/vi.esm.js.map +1 -1
  136. package/locales/vi.js +1 -0
  137. package/locales/vi.js.map +1 -1
  138. package/locales/zh-Hans.esm.js +1 -0
  139. package/locales/zh-Hans.esm.js.map +1 -1
  140. package/locales/zh-Hans.js +1 -0
  141. package/locales/zh-Hans.js.map +1 -1
  142. package/locales/zh-Hant.esm.js +1 -0
  143. package/locales/zh-Hant.esm.js.map +1 -1
  144. package/locales/zh-Hant.js +1 -0
  145. package/locales/zh-Hant.js.map +1 -1
  146. package/package.json +11 -11
  147. package/src/body/MRT_TableBodyCell.tsx +4 -3
  148. package/src/body/MRT_TableBodyRow.tsx +7 -5
  149. package/src/body/MRT_TableBodyRowGrabHandle.tsx +1 -0
  150. package/src/body/index.ts +1 -1
  151. package/src/buttons/MRT_ExpandButton.tsx +1 -0
  152. package/src/buttons/MRT_GrabHandleButton.tsx +3 -1
  153. package/src/column.utils.ts +20 -19
  154. package/src/footer/MRT_TableFooterCell.tsx +5 -1
  155. package/src/footer/MRT_TableFooterRow.tsx +2 -2
  156. package/src/head/MRT_TableHead.tsx +5 -1
  157. package/src/head/MRT_TableHeadCell.tsx +11 -6
  158. package/src/head/MRT_TableHeadCellColumnActionsButton.tsx +2 -2
  159. package/src/head/MRT_TableHeadCellFilterLabel.tsx +4 -1
  160. package/src/head/MRT_TableHeadCellSortLabel.tsx +18 -12
  161. package/src/head/MRT_TableHeadRow.tsx +2 -2
  162. package/src/hooks/useMRT_DisplayColumns.tsx +20 -0
  163. package/src/icons.ts +3 -0
  164. package/src/locales/ar.ts +1 -1
  165. package/src/locales/bg.ts +1 -0
  166. package/src/locales/cs.ts +1 -0
  167. package/src/locales/da.ts +1 -0
  168. package/src/locales/de.ts +1 -0
  169. package/src/locales/es.ts +1 -0
  170. package/src/locales/et.ts +1 -0
  171. package/src/locales/fa.ts +1 -0
  172. package/src/locales/fi.ts +1 -0
  173. package/src/locales/fr.ts +1 -0
  174. package/src/locales/hu.ts +1 -0
  175. package/src/locales/hy.ts +1 -0
  176. package/src/locales/id.ts +1 -0
  177. package/src/locales/it.ts +1 -0
  178. package/src/locales/ja.ts +1 -0
  179. package/src/locales/ko.ts +1 -0
  180. package/src/locales/nl.ts +1 -0
  181. package/src/locales/no.ts +1 -0
  182. package/src/locales/np.ts +3 -2
  183. package/src/locales/pl.ts +1 -0
  184. package/src/locales/pt-BR.ts +1 -0
  185. package/src/locales/pt.ts +1 -0
  186. package/src/locales/ro.ts +1 -0
  187. package/src/locales/ru.ts +1 -0
  188. package/src/locales/sk.ts +1 -0
  189. package/src/locales/sr-Cyrl-RS.ts +1 -0
  190. package/src/locales/sr-Latn-RS.ts +1 -0
  191. package/src/locales/sv.ts +3 -2
  192. package/src/locales/tr.ts +1 -0
  193. package/src/locales/uk.ts +1 -0
  194. package/src/locales/vi.ts +1 -0
  195. package/src/locales/zh-Hans.ts +1 -0
  196. package/src/locales/zh-Hant.ts +1 -0
  197. package/src/table/MRT_Table.tsx +5 -1
  198. package/src/table/MRT_TableContainer.tsx +50 -1
  199. package/src/toolbar/MRT_LinearProgressBar.tsx +2 -2
  200. package/src/types.ts +6 -1
package/src/locales/ja.ts CHANGED
@@ -59,6 +59,7 @@ export const MRT_Localization_JA: MRT_Localization = {
59
59
  noResultsFound: '結果なし',
60
60
  of: '/',
61
61
  or: 'または',
62
+ pin: '固定',
62
63
  pinToLeft: '左に固定',
63
64
  pinToRight: '右に固定',
64
65
  resetColumnSize: '列のサイズをリセット',
package/src/locales/ko.ts CHANGED
@@ -59,6 +59,7 @@ export const MRT_Localization_KO: MRT_Localization = {
59
59
  noResultsFound: '찾은 결과가 없습니다.',
60
60
  of: '/',
61
61
  or: '또는',
62
+ pin: '고정',
62
63
  pinToLeft: '왼쪽에 고정',
63
64
  pinToRight: '오른쪽에 고정',
64
65
  resetColumnSize: '열 크기 초기화',
package/src/locales/nl.ts CHANGED
@@ -59,6 +59,7 @@ export const MRT_Localization_NL: MRT_Localization = {
59
59
  noResultsFound: 'Geen resultaten gevonden',
60
60
  of: 'van',
61
61
  or: 'of',
62
+ pin: 'Vastzetten',
62
63
  pinToLeft: 'Links vastzetten',
63
64
  pinToRight: 'Rechts vastzetten',
64
65
  resetColumnSize: 'Kolombreedte resetten',
package/src/locales/no.ts CHANGED
@@ -59,6 +59,7 @@ export const MRT_Localization_NO: MRT_Localization = {
59
59
  noRecordsToDisplay: 'Ingen poster å vise',
60
60
  noResultsFound: 'Ingen resultater funnet',
61
61
  of: 'av',
62
+ pin: 'Fest',
62
63
  pinToLeft: 'Fest til venstre',
63
64
  pinToRight: 'Fest til høyre',
64
65
  or: 'eller',
package/src/locales/np.ts CHANGED
@@ -42,7 +42,8 @@ export const MRT_Localization_NP: MRT_Localization = {
42
42
  filterNotEquals: 'असमान',
43
43
  filterStartsWith: 'सुरुमा समावेश गरिएको',
44
44
  filterWeakEquals: 'असमान',
45
- filteringByColumn: '{column} द्वारा फिल्टर गर्दै - {filterType} {filterValue}',
45
+ filteringByColumn:
46
+ '{column} द्वारा फिल्टर गर्दै - {filterType} {filterValue}',
46
47
  goToFirstPage: 'पहिलो पृष्ठमा जानुहोस्',
47
48
  goToLastPage: 'अन्तिम पृष्ठमा जानुहोस्',
48
49
  goToNextPage: 'अर्को पृष्ठमा जानुहोस्',
@@ -90,5 +91,5 @@ export const MRT_Localization_NP: MRT_Localization = {
90
91
  toggleVisibility: 'दृश्यता परिवर्तन गर्नुहोस्',
91
92
  ungroupByColumn: '{column} का आधारमा समूह हटाउनुहोस्',
92
93
  unpin: 'अनपिन गर्नुहोस्',
93
- unpinAll: 'सबै अनपिन गर्नुहोस्'
94
+ unpinAll: 'सबै अनपिन गर्नुहोस्',
94
95
  };
package/src/locales/pl.ts CHANGED
@@ -59,6 +59,7 @@ export const MRT_Localization_PL: MRT_Localization = {
59
59
  noResultsFound: 'Brak wyników',
60
60
  of: 'z',
61
61
  or: 'lub',
62
+ pin: 'Przypnij',
62
63
  pinToLeft: 'Przypnij po lewej',
63
64
  pinToRight: 'Przypnij po prawej',
64
65
  resetColumnSize: 'Resetuj wielkość kolumn',
@@ -59,6 +59,7 @@ export const MRT_Localization_PT_BR: MRT_Localization = {
59
59
  noResultsFound: 'Nenhum resultado encontrado',
60
60
  of: 'de',
61
61
  or: 'ou',
62
+ pin: 'Fixar',
62
63
  pinToLeft: 'Fixar à esquerda',
63
64
  pinToRight: 'Fixar à direita',
64
65
  resetColumnSize: 'Restaurar tamanho da coluna',
package/src/locales/pt.ts CHANGED
@@ -59,6 +59,7 @@ export const MRT_Localization_PT: MRT_Localization = {
59
59
  noResultsFound: 'Nenhum resultado encontrado',
60
60
  of: 'de',
61
61
  or: 'ou',
62
+ pin: 'Fixar',
62
63
  pinToLeft: 'Fixar à esquerda',
63
64
  pinToRight: 'Fixar à direita',
64
65
  resetColumnSize: 'Restaurar tamanho da coluna',
package/src/locales/ro.ts CHANGED
@@ -59,6 +59,7 @@ export const MRT_Localization_RO: MRT_Localization = {
59
59
  noResultsFound: 'Niciun rezultat găsit',
60
60
  of: 'din',
61
61
  or: 'sau',
62
+ pin: 'Fixează',
62
63
  pinToLeft: 'Fixează la stanga',
63
64
  pinToRight: 'Fixează la dreapta',
64
65
  resetColumnSize: 'Resetează dimensiune coloană',
package/src/locales/ru.ts CHANGED
@@ -59,6 +59,7 @@ export const MRT_Localization_RU: MRT_Localization = {
59
59
  noResultsFound: 'Результатов не найдено',
60
60
  of: 'из',
61
61
  or: 'или',
62
+ pin: 'Прикрепить',
62
63
  pinToLeft: 'Прикрепить слева',
63
64
  pinToRight: 'Прикрепить справа',
64
65
  resetColumnSize: 'Сбросить размер колонок',
package/src/locales/sk.ts CHANGED
@@ -60,6 +60,7 @@ export const MRT_Localization_SK: MRT_Localization = {
60
60
  noResultsFound: 'Nenájdené žiadne výsledky',
61
61
  of: 'z',
62
62
  or: 'alebo',
63
+ pin: 'Pripnúť',
63
64
  pinToLeft: 'Pripnúť doľava',
64
65
  pinToRight: 'Pripnúť doprava',
65
66
  resetColumnSize: 'Resetovať šírku stĺpcov',
@@ -59,6 +59,7 @@ export const MRT_Localization_SR_CYRL_RS: MRT_Localization = {
59
59
  noResultsFound: 'Нема резултата',
60
60
  of: 'од',
61
61
  or: 'или',
62
+ pin: 'Закачи',
62
63
  pinToLeft: 'Закачи лево',
63
64
  pinToRight: 'Закачи десно',
64
65
  resetColumnSize: 'Ресетуј ширину колоне',
@@ -59,6 +59,7 @@ export const MRT_Localization_SR_LATN_RS: MRT_Localization = {
59
59
  noResultsFound: 'Nema rezultata',
60
60
  of: 'od',
61
61
  or: 'ili',
62
+ pin: 'Zakači',
62
63
  pinToLeft: 'Zakači levo',
63
64
  pinToRight: 'Zakači desno',
64
65
  resetColumnSize: 'Resetuj širinu kolone',
package/src/locales/sv.ts CHANGED
@@ -44,11 +44,11 @@ export const MRT_Localization_SV: MRT_Localization = {
44
44
  filterWeakEquals: 'Lika med',
45
45
  filteringByColumn: 'Filtrering efter {column} - {filterType} {filterValue}',
46
46
  goToFirstPage: 'Gå till första sidan',
47
- goToLastPage: 'Gå till sista sidan ',
47
+ goToLastPage: 'Gå till sista sidan',
48
48
  goToNextPage: 'Gå till nästa sida',
49
49
  goToPreviousPage: 'Gå till föregående sida',
50
50
  grab: 'Greppa',
51
- groupByColumn: 'Guppera efter {column}',
51
+ groupByColumn: 'Gruppera efter {column}',
52
52
  groupedBy: 'Gruppera efter ',
53
53
  hideAll: 'Göm alla',
54
54
  hideColumn: 'Göm {column} kolumn',
@@ -59,6 +59,7 @@ export const MRT_Localization_SV: MRT_Localization = {
59
59
  noResultsFound: 'Inga resultat funna',
60
60
  of: 'av',
61
61
  or: 'eller',
62
+ pin: 'Fäst',
62
63
  pinToLeft: 'Fäst till vänster',
63
64
  pinToRight: 'Fäst till höger',
64
65
  resetColumnSize: 'Återställ kolumnstorlek',
package/src/locales/tr.ts CHANGED
@@ -59,6 +59,7 @@ export const MRT_Localization_TR: MRT_Localization = {
59
59
  noResultsFound: 'Herhangi Bir Sonuç Bulunamadı',
60
60
  of: 'of',
61
61
  or: 'veya',
62
+ pin: 'Sabitle',
62
63
  pinToLeft: 'Sola Sabitle',
63
64
  pinToRight: 'Sağa Sabitle',
64
65
  resetColumnSize: 'Sütun Boyutunu Sıfırla',
package/src/locales/uk.ts CHANGED
@@ -59,6 +59,7 @@ export const MRT_Localization_UK: MRT_Localization = {
59
59
  noResultsFound: 'Нічого не знайдено',
60
60
  of: 'з',
61
61
  or: 'або',
62
+ pin: 'Закріпити',
62
63
  pinToLeft: 'Закріпити ліворуч',
63
64
  pinToRight: 'Закріпити праворуч',
64
65
  resetColumnSize: 'Скинути розмір стовпця',
package/src/locales/vi.ts CHANGED
@@ -59,6 +59,7 @@ export const MRT_Localization_VI: MRT_Localization = {
59
59
  noResultsFound: 'Không có kết quả nào được tìm thấy',
60
60
  of: 'trên',
61
61
  or: 'hoặc',
62
+ pin: 'Ghim',
62
63
  pinToLeft: 'Ghim sang trái',
63
64
  pinToRight: 'Ghim sang phải',
64
65
  resetColumnSize: 'Đặt lại kích thước cột',
@@ -59,6 +59,7 @@ export const MRT_Localization_ZH_HANS: MRT_Localization = {
59
59
  noResultsFound: '未找到结果',
60
60
  of: '/',
61
61
  or: '或',
62
+ pin: '固定',
62
63
  pinToLeft: '固定至左边',
63
64
  pinToRight: '固定至右边',
64
65
  resetColumnSize: '重置栏位大小',
@@ -59,6 +59,7 @@ export const MRT_Localization_ZH_HANT: MRT_Localization = {
59
59
  noResultsFound: '未找到結果',
60
60
  of: '/',
61
61
  or: '或',
62
+ pin: '固定',
62
63
  pinToLeft: '固定至左邊',
63
64
  pinToRight: '固定至右邊',
64
65
  resetColumnSize: '重置欄位大小',
@@ -6,7 +6,11 @@ import {
6
6
  } from '@tanstack/react-virtual';
7
7
  import Table from '@mui/material/Table';
8
8
  import { MRT_TableBody, Memo_MRT_TableBody } from '../body/MRT_TableBody';
9
- import { extraIndexRangeExtractor, parseCSSVarId, parseFromValuesOrFunc } from '../column.utils';
9
+ import {
10
+ extraIndexRangeExtractor,
11
+ parseCSSVarId,
12
+ parseFromValuesOrFunc,
13
+ } from '../column.utils';
10
14
  import { MRT_TableFooter } from '../footer/MRT_TableFooter';
11
15
  import { MRT_TableHead } from '../head/MRT_TableHead';
12
16
  import { type MRT_TableInstance } from '../types';
@@ -1,5 +1,8 @@
1
1
  import { useEffect, useLayoutEffect, useState } from 'react';
2
+ import Box from '@mui/material/Box';
3
+ import CircularProgress from '@mui/material/CircularProgress';
2
4
  import TableContainer from '@mui/material/TableContainer';
5
+ import { alpha, lighten } from '@mui/material/styles';
3
6
  import { MRT_Table } from './MRT_Table';
4
7
  import { parseFromValuesOrFunc } from '../column.utils';
5
8
  import { MRT_EditRowModal } from '../modals';
@@ -21,11 +24,22 @@ export const MRT_TableContainer = <TData extends Record<string, any>>({
21
24
  createDisplayMode,
22
25
  editDisplayMode,
23
26
  enableStickyHeader,
27
+ localization,
28
+ muiCircularProgressProps,
24
29
  muiTableContainerProps,
25
30
  },
26
31
  refs: { bottomToolbarRef, tableContainerRef, topToolbarRef },
27
32
  } = table;
28
- const { creatingRow, editingRow, isFullScreen } = getState();
33
+ const {
34
+ creatingRow,
35
+ editingRow,
36
+ isFullScreen,
37
+ isLoading,
38
+ showLoadingOverlay,
39
+ } = getState();
40
+
41
+ const loading =
42
+ (isLoading || showLoadingOverlay) && showLoadingOverlay !== false;
29
43
 
30
44
  const [totalToolbarHeight, setTotalToolbarHeight] = useState(0);
31
45
 
@@ -33,6 +47,11 @@ export const MRT_TableContainer = <TData extends Record<string, any>>({
33
47
  table,
34
48
  });
35
49
 
50
+ const circularProgressProps = parseFromValuesOrFunc(
51
+ muiCircularProgressProps,
52
+ { table },
53
+ );
54
+
36
55
  useIsomorphicLayoutEffect(() => {
37
56
  const topToolbarHeight =
38
57
  typeof document !== 'undefined'
@@ -52,6 +71,8 @@ export const MRT_TableContainer = <TData extends Record<string, any>>({
52
71
 
53
72
  return (
54
73
  <TableContainer
74
+ aria-busy={loading}
75
+ aria-describedby="mrt-progress"
55
76
  {...tableContainerProps}
56
77
  ref={(node: HTMLDivElement) => {
57
78
  if (node) {
@@ -74,9 +95,37 @@ export const MRT_TableContainer = <TData extends Record<string, any>>({
74
95
  : undefined,
75
96
  maxWidth: '100%',
76
97
  overflow: 'auto',
98
+ position: 'relative',
77
99
  ...(parseFromValuesOrFunc(tableContainerProps?.sx, theme) as any),
78
100
  })}
79
101
  >
102
+ {loading ? (
103
+ <Box
104
+ sx={(theme) => ({
105
+ alignItems: 'center',
106
+ backgroundColor: alpha(
107
+ lighten(theme.palette.background.paper, 0.05),
108
+ 0.5,
109
+ ),
110
+ bottom: 0,
111
+ display: 'flex',
112
+ justifyContent: 'center',
113
+ left: 0,
114
+ maxHeight: '100vh',
115
+ position: 'absolute',
116
+ right: 0,
117
+ top: 0,
118
+ width: '100%',
119
+ zIndex: 2,
120
+ })}
121
+ >
122
+ <CircularProgress
123
+ aria-label={localization.noRecordsToDisplay}
124
+ id="mrt-progress"
125
+ {...circularProgressProps}
126
+ />
127
+ </Box>
128
+ ) : null}
80
129
  <MRT_Table table={table} />
81
130
  {(createModalOpen || editModalOpen) && (
82
131
  <MRT_EditRowModal open table={table} />
@@ -16,7 +16,7 @@ export const MRT_LinearProgressBar = <TData extends Record<string, any>>({
16
16
  getState,
17
17
  options: { muiLinearProgressProps },
18
18
  } = table;
19
- const { isLoading, showProgressBars } = getState();
19
+ const { showProgressBars } = getState();
20
20
 
21
21
  const linearProgressProps = parseFromValuesOrFunc(muiLinearProgressProps, {
22
22
  isTopToolbar,
@@ -25,7 +25,7 @@ export const MRT_LinearProgressBar = <TData extends Record<string, any>>({
25
25
 
26
26
  return (
27
27
  <Collapse
28
- in={isLoading || showProgressBars}
28
+ in={showProgressBars}
29
29
  mountOnEnter
30
30
  sx={{
31
31
  bottom: isTopToolbar ? 0 : undefined,
package/src/types.ts CHANGED
@@ -43,6 +43,7 @@ import { type AutocompleteProps } from '@mui/material/Autocomplete';
43
43
  import { type ButtonProps } from '@mui/material/Button';
44
44
  import { type CheckboxProps } from '@mui/material/Checkbox';
45
45
  import { type ChipProps } from '@mui/material/Chip';
46
+ import { type CircularProgressProps } from '@mui/material/CircularProgress';
46
47
  import { type DialogProps } from '@mui/material/Dialog';
47
48
  import { type IconButtonProps } from '@mui/material/IconButton';
48
49
  import { type LinearProgressProps } from '@mui/material/LinearProgress';
@@ -158,7 +159,7 @@ export interface MRT_Localization {
158
159
  noResultsFound: string;
159
160
  of: string;
160
161
  or: string;
161
- pin?: string;
162
+ pin: string;
162
163
  pinToLeft: string;
163
164
  pinToRight: string;
164
165
  resetColumnSize: string;
@@ -292,6 +293,7 @@ export type MRT_TableState<TData extends Record<string, any>> = TableState & {
292
293
  showAlertBanner: boolean;
293
294
  showColumnFilters: boolean;
294
295
  showGlobalFilter: boolean;
296
+ showLoadingOverlay: boolean;
295
297
  showProgressBars: boolean;
296
298
  showSkeletons: boolean;
297
299
  showToolbarDropZone: boolean;
@@ -741,6 +743,9 @@ export type MRT_TableOptions<TData extends Record<string, any>> = Omit<
741
743
  muiBottomToolbarProps?:
742
744
  | ((props: { table: MRT_TableInstance<TData> }) => ToolbarProps)
743
745
  | ToolbarProps;
746
+ muiCircularProgressProps?:
747
+ | ((props: { table: MRT_TableInstance<TData> }) => CircularProgressProps)
748
+ | CircularProgressProps;
744
749
  muiColumnActionsButtonProps?:
745
750
  | ((props: {
746
751
  column: MRT_Column<TData>;