@applica-software-guru/react-admin 1.4.226 → 1.5.228

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 (877) hide show
  1. package/.eslintrc +216 -0
  2. package/.husky/pre-commit +7 -4
  3. package/.huskyrc +6 -0
  4. package/.nvmrc +1 -1
  5. package/.prettierignore +6 -0
  6. package/.prettierrc +1 -1
  7. package/README.md +8 -38
  8. package/bitbucket-pipelines.yml +3 -3
  9. package/dist/Admin.d.ts +5 -4
  10. package/dist/Admin.d.ts.map +1 -1
  11. package/dist/AdminContext.d.ts +4 -3
  12. package/dist/AdminContext.d.ts.map +1 -1
  13. package/dist/ApplicaAdmin.d.ts +12 -11
  14. package/dist/ApplicaAdmin.d.ts.map +1 -1
  15. package/dist/components/@extended/AnimateButton.d.ts +12 -19
  16. package/dist/components/@extended/AnimateButton.d.ts.map +1 -1
  17. package/dist/components/@extended/Avatar.d.ts +11 -19
  18. package/dist/components/@extended/Avatar.d.ts.map +1 -1
  19. package/dist/components/@extended/Breadcrumbs.d.ts +20 -18
  20. package/dist/components/@extended/Breadcrumbs.d.ts.map +1 -1
  21. package/dist/components/@extended/Dot.d.ts +10 -16
  22. package/dist/components/@extended/Dot.d.ts.map +1 -1
  23. package/dist/components/@extended/IconButton.d.ts +10 -2
  24. package/dist/components/@extended/IconButton.d.ts.map +1 -1
  25. package/dist/components/@extended/LoadingButton.d.ts +12 -2
  26. package/dist/components/@extended/LoadingButton.d.ts.map +1 -1
  27. package/dist/components/@extended/Tooltip.d.ts +10 -16
  28. package/dist/components/@extended/Tooltip.d.ts.map +1 -1
  29. package/dist/components/@extended/Transitions.d.ts +10 -3
  30. package/dist/components/@extended/Transitions.d.ts.map +1 -1
  31. package/dist/components/@extended/index.d.ts +9 -10
  32. package/dist/components/@extended/index.d.ts.map +1 -1
  33. package/dist/components/@extended/progress/CircularWithLabel.d.ts +6 -11
  34. package/dist/components/@extended/progress/CircularWithLabel.d.ts.map +1 -1
  35. package/dist/components/@extended/progress/CircularWithPath.d.ts +12 -23
  36. package/dist/components/@extended/progress/CircularWithPath.d.ts.map +1 -1
  37. package/dist/components/@extended/progress/LinearWithIcon.d.ts +6 -12
  38. package/dist/components/@extended/progress/LinearWithIcon.d.ts.map +1 -1
  39. package/dist/components/@extended/progress/LinearWithLabel.d.ts +6 -11
  40. package/dist/components/@extended/progress/LinearWithLabel.d.ts.map +1 -1
  41. package/dist/components/@extended/progress/index.d.ts +4 -5
  42. package/dist/components/@extended/progress/index.d.ts.map +1 -1
  43. package/dist/components/ActionsMenu.d.ts +4 -3
  44. package/dist/components/ActionsMenu.d.ts.map +1 -1
  45. package/dist/components/AppStateProvider.d.ts +20 -0
  46. package/dist/components/AppStateProvider.d.ts.map +1 -0
  47. package/dist/components/AuthBackground.d.ts +2 -2
  48. package/dist/components/AuthBackground.d.ts.map +1 -1
  49. package/dist/components/AuthCard.d.ts +7 -11
  50. package/dist/components/AuthCard.d.ts.map +1 -1
  51. package/dist/components/AuthWrapper.d.ts +3 -13
  52. package/dist/components/AuthWrapper.d.ts.map +1 -1
  53. package/dist/components/Layout/Content.d.ts.map +1 -1
  54. package/dist/components/Layout/Drawer/Drawer.d.ts +3 -2
  55. package/dist/components/Layout/Drawer/Drawer.d.ts.map +1 -1
  56. package/dist/components/Layout/Drawer/DrawerHeader.d.ts +3 -2
  57. package/dist/components/Layout/Drawer/DrawerHeader.d.ts.map +1 -1
  58. package/dist/components/Layout/Drawer/DrawerHeaderStyled.d.ts +10 -3
  59. package/dist/components/Layout/Drawer/DrawerHeaderStyled.d.ts.map +1 -1
  60. package/dist/components/Layout/Drawer/MiniDrawerStyled.d.ts +8 -2
  61. package/dist/components/Layout/Drawer/MiniDrawerStyled.d.ts.map +1 -1
  62. package/dist/components/Layout/Error.d.ts +5 -13
  63. package/dist/components/Layout/Error.d.ts.map +1 -1
  64. package/dist/components/Layout/Header/AppBarStyled.d.ts +3 -3
  65. package/dist/components/Layout/Header/AppBarStyled.d.ts.map +1 -1
  66. package/dist/components/Layout/Header/Buttons/HeaderButton.d.ts +1 -0
  67. package/dist/components/Layout/Header/Buttons/HeaderButton.d.ts.map +1 -1
  68. package/dist/components/Layout/Header/Buttons/HeaderIconButton.d.ts.map +1 -1
  69. package/dist/components/Layout/Header/Buttons/HeaderToggleButton.d.ts.map +1 -1
  70. package/dist/components/Layout/Header/Buttons/LocaleButton.d.ts +2 -2
  71. package/dist/components/Layout/Header/Buttons/LocaleButton.d.ts.map +1 -1
  72. package/dist/components/Layout/Header/DrawerToggle.d.ts.map +1 -1
  73. package/dist/components/Layout/Header/Header.d.ts.map +1 -1
  74. package/dist/components/Layout/Header/Notification/Notification.d.ts.map +1 -1
  75. package/dist/components/Layout/Header/Notification/NotificationItem.d.ts +1 -1
  76. package/dist/components/Layout/Header/Notification/NotificationItem.d.ts.map +1 -1
  77. package/dist/components/Layout/Header/Profile/HeaderProfile.d.ts +3 -0
  78. package/dist/components/Layout/Header/Profile/HeaderProfile.d.ts.map +1 -0
  79. package/dist/components/Layout/Header/Profile/buttons/ChangePasswordButton.d.ts +3 -2
  80. package/dist/components/Layout/Header/Profile/buttons/ChangePasswordButton.d.ts.map +1 -1
  81. package/dist/components/Layout/Header/Profile/buttons/LogoutButton.d.ts +3 -2
  82. package/dist/components/Layout/Header/Profile/buttons/LogoutButton.d.ts.map +1 -1
  83. package/dist/components/Layout/Header/Profile/buttons/StopImpersonateButton.d.ts +3 -2
  84. package/dist/components/Layout/Header/Profile/buttons/StopImpersonateButton.d.ts.map +1 -1
  85. package/dist/components/Layout/Header/Profile/buttons/index.d.ts +3 -4
  86. package/dist/components/Layout/Header/Profile/buttons/index.d.ts.map +1 -1
  87. package/dist/components/Layout/Header/Profile/index.d.ts +1 -1
  88. package/dist/components/Layout/Header/Profile/index.d.ts.map +1 -1
  89. package/dist/components/Layout/Header/ResponsiveSection.d.ts +1 -1
  90. package/dist/components/Layout/Header/ResponsiveSection.d.ts.map +1 -1
  91. package/dist/components/Layout/Layout.d.ts.map +1 -1
  92. package/dist/components/Layout/MenuProvider.d.ts +58 -0
  93. package/dist/components/Layout/MenuProvider.d.ts.map +1 -0
  94. package/dist/components/Layout/Navigation/NavCollapse.d.ts +3 -3
  95. package/dist/components/Layout/Navigation/NavCollapse.d.ts.map +1 -1
  96. package/dist/components/Layout/Navigation/NavGroup.d.ts +3 -2
  97. package/dist/components/Layout/Navigation/NavGroup.d.ts.map +1 -1
  98. package/dist/components/Layout/Navigation/NavItem.d.ts +3 -3
  99. package/dist/components/Layout/Navigation/NavItem.d.ts.map +1 -1
  100. package/dist/components/Layout/Navigation/NavList.d.ts +3 -3
  101. package/dist/components/Layout/Navigation/NavList.d.ts.map +1 -1
  102. package/dist/components/Layout/Navigation/Navigation.d.ts.map +1 -1
  103. package/dist/components/Layout/Navigation/index.d.ts +2 -2
  104. package/dist/components/Layout/Navigation/index.d.ts.map +1 -1
  105. package/dist/components/Layout/Provider.d.ts +1 -1
  106. package/dist/components/Layout/Provider.d.ts.map +1 -1
  107. package/dist/components/Layout/ThemeProvider.d.ts +42 -0
  108. package/dist/components/Layout/ThemeProvider.d.ts.map +1 -0
  109. package/dist/components/Layout/ThemeToggler.d.ts +2 -1
  110. package/dist/components/Layout/ThemeToggler.d.ts.map +1 -1
  111. package/dist/components/Layout/Wrapper.d.ts.map +1 -1
  112. package/dist/components/Layout/index.d.ts +7 -5
  113. package/dist/components/Layout/index.d.ts.map +1 -1
  114. package/dist/components/Loadable.d.ts +1 -1
  115. package/dist/components/Loadable.d.ts.map +1 -1
  116. package/dist/components/Loader.d.ts +1 -1
  117. package/dist/components/Loader.d.ts.map +1 -1
  118. package/dist/components/Logo.d.ts +12 -19
  119. package/dist/components/Logo.d.ts.map +1 -1
  120. package/dist/components/MainCard.d.ts +3 -2
  121. package/dist/components/MainCard.d.ts.map +1 -1
  122. package/dist/components/MainIcon.d.ts +4 -3
  123. package/dist/components/MainIcon.d.ts.map +1 -1
  124. package/dist/components/MenuPopover/MenuPopover.d.ts +11 -19
  125. package/dist/components/MenuPopover/MenuPopover.d.ts.map +1 -1
  126. package/dist/components/MenuPopover/getPosition.d.ts +11 -45
  127. package/dist/components/MenuPopover/getPosition.d.ts.map +1 -1
  128. package/dist/components/MenuPopover/index.d.ts +3 -3
  129. package/dist/components/MenuPopover/index.d.ts.map +1 -1
  130. package/dist/components/MenuPopover/styles.d.ts +10 -1
  131. package/dist/components/MenuPopover/styles.d.ts.map +1 -1
  132. package/dist/components/MenuPopover/types.d.ts +3 -0
  133. package/dist/components/MenuPopover/types.d.ts.map +1 -0
  134. package/dist/components/Notification.d.ts +2 -2
  135. package/dist/components/Notification.d.ts.map +1 -1
  136. package/dist/components/Onboarding/{onboardingDataProvider.d.ts → DataProvider.d.ts} +1 -1
  137. package/dist/components/Onboarding/DataProvider.d.ts.map +1 -0
  138. package/dist/components/Onboarding/OnboardingTip.d.ts.map +1 -1
  139. package/dist/components/Onboarding/Provider.d.ts +4 -4
  140. package/dist/components/Onboarding/Provider.d.ts.map +1 -1
  141. package/dist/components/Onboarding/hooks.d.ts.map +1 -1
  142. package/dist/components/Onboarding/index.d.ts +3 -3
  143. package/dist/components/Onboarding/index.d.ts.map +1 -1
  144. package/dist/components/Onboarding/schemas.d.ts +3 -2
  145. package/dist/components/Onboarding/schemas.d.ts.map +1 -1
  146. package/dist/components/ScrollTop.d.ts +4 -10
  147. package/dist/components/ScrollTop.d.ts.map +1 -1
  148. package/dist/components/ScrollX.d.ts +2 -1
  149. package/dist/components/ScrollX.d.ts.map +1 -1
  150. package/dist/components/SmallIcon.d.ts +6 -10
  151. package/dist/components/SmallIcon.d.ts.map +1 -1
  152. package/dist/components/index.d.ts +16 -19
  153. package/dist/components/index.d.ts.map +1 -1
  154. package/dist/components/ra-buttons/CreateInDialogButton.d.ts +6 -27
  155. package/dist/components/ra-buttons/CreateInDialogButton.d.ts.map +1 -1
  156. package/dist/components/ra-buttons/EditInDialogButton.d.ts +6 -5
  157. package/dist/components/ra-buttons/EditInDialogButton.d.ts.map +1 -1
  158. package/dist/components/ra-buttons/ImpersonateUserButton.d.ts +4 -3
  159. package/dist/components/ra-buttons/ImpersonateUserButton.d.ts.map +1 -1
  160. package/dist/components/ra-buttons/index.d.ts +1 -1
  161. package/dist/components/ra-buttons/index.d.ts.map +1 -1
  162. package/dist/components/ra-custom/ListItem.d.ts +9 -8
  163. package/dist/components/ra-custom/ListItem.d.ts.map +1 -1
  164. package/dist/components/ra-fields/ActionsField.d.ts +4 -3
  165. package/dist/components/ra-fields/ActionsField.d.ts.map +1 -1
  166. package/dist/components/ra-fields/AttachmentField.d.ts +5 -4
  167. package/dist/components/ra-fields/AttachmentField.d.ts.map +1 -1
  168. package/dist/components/ra-fields/BaseAttachmentField.d.ts +4 -3
  169. package/dist/components/ra-fields/BaseAttachmentField.d.ts.map +1 -1
  170. package/dist/components/ra-fields/CoverField.d.ts +4 -3
  171. package/dist/components/ra-fields/CoverField.d.ts.map +1 -1
  172. package/dist/components/ra-fields/DateAgoField.d.ts +4 -3
  173. package/dist/components/ra-fields/DateAgoField.d.ts.map +1 -1
  174. package/dist/components/ra-fields/DateField.d.ts +3 -2
  175. package/dist/components/ra-fields/DateField.d.ts.map +1 -1
  176. package/dist/components/ra-fields/EmailField.d.ts +3 -2
  177. package/dist/components/ra-fields/EmailField.d.ts.map +1 -1
  178. package/dist/components/ra-fields/FileField.d.ts +4 -3
  179. package/dist/components/ra-fields/FileField.d.ts.map +1 -1
  180. package/dist/components/ra-fields/FunctionField.d.ts +3 -2
  181. package/dist/components/ra-fields/FunctionField.d.ts.map +1 -1
  182. package/dist/components/ra-fields/ImageField.d.ts +3 -2
  183. package/dist/components/ra-fields/ImageField.d.ts.map +1 -1
  184. package/dist/components/ra-fields/LocalizedTextField.d.ts +4 -3
  185. package/dist/components/ra-fields/LocalizedTextField.d.ts.map +1 -1
  186. package/dist/components/ra-fields/ReadonlyField.d.ts +4 -12
  187. package/dist/components/ra-fields/ReadonlyField.d.ts.map +1 -1
  188. package/dist/components/ra-fields/ReferenceManyField.d.ts +10 -9
  189. package/dist/components/ra-fields/ReferenceManyField.d.ts.map +1 -1
  190. package/dist/components/ra-fields/SizeField.d.ts +4 -3
  191. package/dist/components/ra-fields/SizeField.d.ts.map +1 -1
  192. package/dist/components/ra-fields/TextField.d.ts +3 -2
  193. package/dist/components/ra-fields/TextField.d.ts.map +1 -1
  194. package/dist/components/ra-forms/CardForm.d.ts +17 -16
  195. package/dist/components/ra-forms/CardForm.d.ts.map +1 -1
  196. package/dist/components/ra-forms/ChangePasswordForm.d.ts +4 -3
  197. package/dist/components/ra-forms/ChangePasswordForm.d.ts.map +1 -1
  198. package/dist/components/ra-forms/Create.d.ts +15 -5
  199. package/dist/components/ra-forms/Create.d.ts.map +1 -1
  200. package/dist/components/ra-forms/Edit.d.ts +3 -2
  201. package/dist/components/ra-forms/Edit.d.ts.map +1 -1
  202. package/dist/components/ra-forms/FormHeader.d.ts +8 -6
  203. package/dist/components/ra-forms/FormHeader.d.ts.map +1 -1
  204. package/dist/components/ra-forms/LongForm/BaseForm.d.ts +1 -1
  205. package/dist/components/ra-forms/LongForm/BaseForm.d.ts.map +1 -1
  206. package/dist/components/ra-forms/LongForm/Content.d.ts +1 -1
  207. package/dist/components/ra-forms/LongForm/Content.d.ts.map +1 -1
  208. package/dist/components/ra-forms/LongForm/Form.d.ts +3 -3
  209. package/dist/components/ra-forms/LongForm/Form.d.ts.map +1 -1
  210. package/dist/components/ra-forms/LongForm/NavMenu.d.ts +1 -1
  211. package/dist/components/ra-forms/LongForm/NavMenu.d.ts.map +1 -1
  212. package/dist/components/ra-forms/LongForm/Provider.d.ts +2 -2
  213. package/dist/components/ra-forms/LongForm/Provider.d.ts.map +1 -1
  214. package/dist/components/ra-forms/LongForm/Sidebar.d.ts +1 -1
  215. package/dist/components/ra-forms/LongForm/Sidebar.d.ts.map +1 -1
  216. package/dist/components/ra-forms/LongForm/Tab.d.ts +3 -3
  217. package/dist/components/ra-forms/LongForm/Tab.d.ts.map +1 -1
  218. package/dist/components/ra-forms/LongForm/hooks.d.ts +1 -1
  219. package/dist/components/ra-forms/LongForm/hooks.d.ts.map +1 -1
  220. package/dist/components/ra-forms/LongForm/index.d.ts +8 -8
  221. package/dist/components/ra-forms/LongForm/index.d.ts.map +1 -1
  222. package/dist/components/ra-forms/LongForm/utils.d.ts +1 -1
  223. package/dist/components/ra-forms/LongForm/utils.d.ts.map +1 -1
  224. package/dist/components/ra-forms/Show.d.ts +3 -2
  225. package/dist/components/ra-forms/Show.d.ts.map +1 -1
  226. package/dist/components/ra-forms/SimpleForm.d.ts +4 -2
  227. package/dist/components/ra-forms/SimpleForm.d.ts.map +1 -1
  228. package/dist/components/ra-forms/SimpleFormIterator.d.ts +4 -2
  229. package/dist/components/ra-forms/SimpleFormIterator.d.ts.map +1 -1
  230. package/dist/components/ra-forms/TabbedForm.d.ts +17 -16
  231. package/dist/components/ra-forms/TabbedForm.d.ts.map +1 -1
  232. package/dist/components/ra-forms/TableForm/TableFormIterator.d.ts +5 -20
  233. package/dist/components/ra-forms/TableForm/TableFormIterator.d.ts.map +1 -1
  234. package/dist/{contexts → components/ra-forms/TableForm}/TableFormIteratorContext.d.ts +10 -2
  235. package/dist/components/ra-forms/TableForm/TableFormIteratorContext.d.ts.map +1 -0
  236. package/dist/components/ra-forms/TableForm/TableFormIteratorItem.d.ts +1 -1
  237. package/dist/components/ra-forms/TableForm/TableFormIteratorItem.d.ts.map +1 -1
  238. package/dist/components/ra-forms/TableForm/TableFormIteratorItemContext.d.ts +24 -0
  239. package/dist/components/ra-forms/TableForm/TableFormIteratorItemContext.d.ts.map +1 -0
  240. package/dist/components/ra-forms/TableForm/index.d.ts +2 -0
  241. package/dist/components/ra-forms/TableForm/index.d.ts.map +1 -1
  242. package/dist/components/ra-forms/Toolbar.d.ts +3 -2
  243. package/dist/components/ra-forms/Toolbar.d.ts.map +1 -1
  244. package/dist/components/ra-forms/index.d.ts +0 -1
  245. package/dist/components/ra-forms/index.d.ts.map +1 -1
  246. package/dist/components/ra-inputs/ArrayInput.d.ts +7 -6
  247. package/dist/components/ra-inputs/ArrayInput.d.ts.map +1 -1
  248. package/dist/components/ra-inputs/AttachmentInput.d.ts +10 -9
  249. package/dist/components/ra-inputs/AttachmentInput.d.ts.map +1 -1
  250. package/dist/components/ra-inputs/AutocompleteArrayInput.d.ts +3 -2
  251. package/dist/components/ra-inputs/AutocompleteArrayInput.d.ts.map +1 -1
  252. package/dist/components/ra-inputs/AutocompleteInput.d.ts +3 -2
  253. package/dist/components/ra-inputs/AutocompleteInput.d.ts.map +1 -1
  254. package/dist/components/ra-inputs/BooleanInput.d.ts +3 -2
  255. package/dist/components/ra-inputs/BooleanInput.d.ts.map +1 -1
  256. package/dist/components/ra-inputs/DateInput.d.ts +3 -2
  257. package/dist/components/ra-inputs/DateInput.d.ts.map +1 -1
  258. package/dist/components/ra-inputs/DateTimeInput.d.ts +3 -2
  259. package/dist/components/ra-inputs/DateTimeInput.d.ts.map +1 -1
  260. package/dist/components/ra-inputs/FileInput.d.ts +9 -8
  261. package/dist/components/ra-inputs/FileInput.d.ts.map +1 -1
  262. package/dist/components/ra-inputs/ImageInput.d.ts +5 -4
  263. package/dist/components/ra-inputs/ImageInput.d.ts.map +1 -1
  264. package/dist/components/ra-inputs/LabeledArrayInput.d.ts +7 -6
  265. package/dist/components/ra-inputs/LabeledArrayInput.d.ts.map +1 -1
  266. package/dist/components/ra-inputs/LabeledInput.d.ts +5 -4
  267. package/dist/components/ra-inputs/LabeledInput.d.ts.map +1 -1
  268. package/dist/components/ra-inputs/LocalizedTextInput.d.ts +5 -4
  269. package/dist/components/ra-inputs/LocalizedTextInput.d.ts.map +1 -1
  270. package/dist/components/ra-inputs/NumberInput.d.ts +3 -2
  271. package/dist/components/ra-inputs/NumberInput.d.ts.map +1 -1
  272. package/dist/components/ra-inputs/RecordInput.d.ts +4 -3
  273. package/dist/components/ra-inputs/RecordInput.d.ts.map +1 -1
  274. package/dist/components/ra-inputs/ReferenceArrayInput.d.ts +5 -4
  275. package/dist/components/ra-inputs/ReferenceArrayInput.d.ts.map +1 -1
  276. package/dist/components/ra-inputs/ReferenceInput.d.ts +5 -4
  277. package/dist/components/ra-inputs/ReferenceInput.d.ts.map +1 -1
  278. package/dist/components/ra-inputs/ReferenceManyInput.d.ts +4 -4
  279. package/dist/components/ra-inputs/ReferenceManyInput.d.ts.map +1 -1
  280. package/dist/components/ra-inputs/SearchInput.d.ts +3 -2
  281. package/dist/components/ra-inputs/SearchInput.d.ts.map +1 -1
  282. package/dist/components/ra-inputs/SelectArrayInput.d.ts +3 -2
  283. package/dist/components/ra-inputs/SelectArrayInput.d.ts.map +1 -1
  284. package/dist/components/ra-inputs/SelectInput.d.ts +4 -4
  285. package/dist/components/ra-inputs/SelectInput.d.ts.map +1 -1
  286. package/dist/components/ra-inputs/SmartTextInput.d.ts +4 -3
  287. package/dist/components/ra-inputs/SmartTextInput.d.ts.map +1 -1
  288. package/dist/components/ra-inputs/TextInput.d.ts +3 -2
  289. package/dist/components/ra-inputs/TextInput.d.ts.map +1 -1
  290. package/dist/components/ra-inputs/TimeInput.d.ts +3 -2
  291. package/dist/components/ra-inputs/TimeInput.d.ts.map +1 -1
  292. package/dist/components/ra-lists/BulkActionsToolbar.d.ts +5 -12
  293. package/dist/components/ra-lists/BulkActionsToolbar.d.ts.map +1 -1
  294. package/dist/components/ra-lists/BulkFloatingActionsToolbar.d.ts +4 -3
  295. package/dist/components/ra-lists/BulkFloatingActionsToolbar.d.ts.map +1 -1
  296. package/dist/components/ra-lists/Datagrid/Datagrid.d.ts +34 -33
  297. package/dist/components/ra-lists/Datagrid/Datagrid.d.ts.map +1 -1
  298. package/dist/components/ra-lists/Datagrid/DatagridContext.d.ts +3 -2
  299. package/dist/components/ra-lists/Datagrid/DatagridContext.d.ts.map +1 -1
  300. package/dist/components/ra-lists/Datagrid/DatagridContextProvider.d.ts +3 -3
  301. package/dist/components/ra-lists/Datagrid/DatagridContextProvider.d.ts.map +1 -1
  302. package/dist/components/ra-lists/Datagrid/index.d.ts +2 -2
  303. package/dist/components/ra-lists/Datagrid/index.d.ts.map +1 -1
  304. package/dist/components/ra-lists/Empty.d.ts +5 -4
  305. package/dist/components/ra-lists/Empty.d.ts.map +1 -1
  306. package/dist/components/ra-lists/List.d.ts +4 -3
  307. package/dist/components/ra-lists/List.d.ts.map +1 -1
  308. package/dist/components/ra-lists/ListView.d.ts +5 -9
  309. package/dist/components/ra-lists/ListView.d.ts.map +1 -1
  310. package/dist/components/ra-lists/NotificationList/NotificationList.d.ts +2 -2
  311. package/dist/components/ra-lists/NotificationList/NotificationList.d.ts.map +1 -1
  312. package/dist/components/ra-lists/NotificationList/buttons/MarkAsReadedButton.d.ts +2 -2
  313. package/dist/components/ra-lists/NotificationList/buttons/MarkAsReadedButton.d.ts.map +1 -1
  314. package/dist/components/ra-lists/NotificationList/buttons/MarkAsUnreadedButton.d.ts +2 -2
  315. package/dist/components/ra-lists/NotificationList/buttons/MarkAsUnreadedButton.d.ts.map +1 -1
  316. package/dist/components/ra-lists/NotificationList/fields/NotificationField.d.ts +2 -2
  317. package/dist/components/ra-lists/NotificationList/fields/NotificationField.d.ts.map +1 -1
  318. package/dist/components/ra-lists/NotificationList/index.d.ts.map +1 -1
  319. package/dist/components/ra-lists/SimpleList.d.ts +2 -2
  320. package/dist/components/ra-lists/SimpleList.d.ts.map +1 -1
  321. package/dist/components/ra-pages/ActivatePage.d.ts +4 -10
  322. package/dist/components/ra-pages/ActivatePage.d.ts.map +1 -1
  323. package/dist/components/ra-pages/GenericErrorPage.d.ts +1 -1
  324. package/dist/components/ra-pages/GenericErrorPage.d.ts.map +1 -1
  325. package/dist/components/ra-pages/LoginPage.d.ts +4 -3
  326. package/dist/components/ra-pages/LoginPage.d.ts.map +1 -1
  327. package/dist/components/ra-pages/RecoverPage.d.ts +2 -10
  328. package/dist/components/ra-pages/RecoverPage.d.ts.map +1 -1
  329. package/dist/components/ra-pages/RegisterPage.d.ts +2 -9
  330. package/dist/components/ra-pages/RegisterPage.d.ts.map +1 -1
  331. package/dist/components/ra-pages/index.d.ts +5 -5
  332. package/dist/components/ra-pages/index.d.ts.map +1 -1
  333. package/dist/components/ra-pages/types.d.ts +2 -1
  334. package/dist/components/ra-pages/types.d.ts.map +1 -1
  335. package/dist/components/third-party/SimpleBar.d.ts +7 -13
  336. package/dist/components/third-party/SimpleBar.d.ts.map +1 -1
  337. package/dist/components/third-party/index.d.ts +1 -2
  338. package/dist/components/third-party/index.d.ts.map +1 -1
  339. package/dist/dev/CatchResult.d.ts +4 -2
  340. package/dist/dev/CatchResult.d.ts.map +1 -1
  341. package/dist/dev/ErrorEventHandler.d.ts +4 -3
  342. package/dist/dev/ErrorEventHandler.d.ts.map +1 -1
  343. package/dist/dev/index.d.ts +3 -4
  344. package/dist/dev/index.d.ts.map +1 -1
  345. package/dist/dev/useErrorEventCatcher.d.ts +4 -4
  346. package/dist/dev/useErrorEventCatcher.d.ts.map +1 -1
  347. package/dist/hooks/index.d.ts +7 -14
  348. package/dist/hooks/index.d.ts.map +1 -1
  349. package/dist/hooks/mui.d.ts.map +1 -1
  350. package/dist/hooks/useLocalStorage.d.ts +1 -1
  351. package/dist/hooks/useLocalStorage.d.ts.map +1 -1
  352. package/dist/hooks/useLocalizedValue.d.ts +1 -1
  353. package/dist/hooks/useLocalizedValue.d.ts.map +1 -1
  354. package/dist/hooks/usePopoverState.d.ts.map +1 -1
  355. package/dist/hooks/useRefDimensions.d.ts.map +1 -1
  356. package/dist/hooks/useResourceTitle.d.ts +2 -2
  357. package/dist/hooks/useResourceTitle.d.ts.map +1 -1
  358. package/dist/i18n/MissingMessageHandler.d.ts +1 -1
  359. package/dist/i18n/MissingMessageHandler.d.ts.map +1 -1
  360. package/dist/i18n/createI18nProvider.d.ts +1 -1
  361. package/dist/i18n/createI18nProvider.d.ts.map +1 -1
  362. package/dist/i18n/index.d.ts +3 -3
  363. package/dist/i18n/useI18nLanguages.d.ts +7 -10
  364. package/dist/i18n/useI18nLanguages.d.ts.map +1 -1
  365. package/dist/i18n/useI18nProvider.d.ts +1 -1
  366. package/dist/i18n/useI18nProvider.d.ts.map +1 -1
  367. package/dist/index.d.ts +1 -10
  368. package/dist/react-admin.cjs.js +91 -148
  369. package/dist/react-admin.cjs.js.map +1 -1
  370. package/dist/react-admin.es.js +30825 -32544
  371. package/dist/react-admin.es.js.map +1 -1
  372. package/dist/react-admin.umd.js +91 -148
  373. package/dist/react-admin.umd.js.map +1 -1
  374. package/dist/themes/getColors.d.ts +3 -2
  375. package/dist/themes/getColors.d.ts.map +1 -1
  376. package/dist/themes/getShadow.d.ts +3 -9
  377. package/dist/themes/getShadow.d.ts.map +1 -1
  378. package/dist/themes/index.d.ts +14 -13
  379. package/dist/themes/index.d.ts.map +1 -1
  380. package/dist/themes/overrides/Accordion.d.ts +2 -23
  381. package/dist/themes/overrides/Accordion.d.ts.map +1 -1
  382. package/dist/themes/overrides/AccordionDetails.d.ts +2 -10
  383. package/dist/themes/overrides/AccordionDetails.d.ts.map +1 -1
  384. package/dist/themes/overrides/AccordionSummary.d.ts +2 -24
  385. package/dist/themes/overrides/AccordionSummary.d.ts.map +1 -1
  386. package/dist/themes/overrides/Alert.d.ts +2 -88
  387. package/dist/themes/overrides/Alert.d.ts.map +1 -1
  388. package/dist/themes/overrides/AlertTitle.d.ts +2 -11
  389. package/dist/themes/overrides/AlertTitle.d.ts.map +1 -1
  390. package/dist/themes/overrides/Autocomplete.d.ts +2 -22
  391. package/dist/themes/overrides/Autocomplete.d.ts.map +1 -1
  392. package/dist/themes/overrides/Badge.d.ts +2 -39
  393. package/dist/themes/overrides/Badge.d.ts.map +1 -1
  394. package/dist/themes/overrides/Button.d.ts +2 -7558
  395. package/dist/themes/overrides/Button.d.ts.map +1 -1
  396. package/dist/themes/overrides/ButtonBase.d.ts +2 -8
  397. package/dist/themes/overrides/ButtonBase.d.ts.map +1 -1
  398. package/dist/themes/overrides/ButtonGroup.d.ts +2 -7
  399. package/dist/themes/overrides/ButtonGroup.d.ts.map +1 -1
  400. package/dist/themes/overrides/CardContent.d.ts +2 -12
  401. package/dist/themes/overrides/CardContent.d.ts.map +1 -1
  402. package/dist/themes/overrides/Checkbox.d.ts +2 -121
  403. package/dist/themes/overrides/Checkbox.d.ts.map +1 -1
  404. package/dist/themes/overrides/Chip.d.ts +2 -207
  405. package/dist/themes/overrides/Chip.d.ts.map +1 -1
  406. package/dist/themes/overrides/Dialog.d.ts +2 -20
  407. package/dist/themes/overrides/Dialog.d.ts.map +1 -1
  408. package/dist/themes/overrides/DialogContentText.d.ts +2 -10
  409. package/dist/themes/overrides/DialogContentText.d.ts.map +1 -1
  410. package/dist/themes/overrides/DialogTitle.d.ts +2 -10
  411. package/dist/themes/overrides/DialogTitle.d.ts.map +1 -1
  412. package/dist/themes/overrides/Fab.d.ts +2 -158
  413. package/dist/themes/overrides/Fab.d.ts.map +1 -1
  414. package/dist/themes/overrides/IconButton.d.ts +2 -29
  415. package/dist/themes/overrides/IconButton.d.ts.map +1 -1
  416. package/dist/themes/overrides/InputBase.d.ts +2 -5
  417. package/dist/themes/overrides/InputBase.d.ts.map +1 -1
  418. package/dist/themes/overrides/InputLabel.d.ts +2 -21
  419. package/dist/themes/overrides/InputLabel.d.ts.map +1 -1
  420. package/dist/themes/overrides/LinearProgress.d.ts +2 -13
  421. package/dist/themes/overrides/LinearProgress.d.ts.map +1 -1
  422. package/dist/themes/overrides/Link.d.ts +2 -7
  423. package/dist/themes/overrides/Link.d.ts.map +1 -1
  424. package/dist/themes/overrides/ListItemButton.d.ts +2 -14
  425. package/dist/themes/overrides/ListItemButton.d.ts.map +1 -1
  426. package/dist/themes/overrides/ListItemIcon.d.ts +2 -10
  427. package/dist/themes/overrides/ListItemIcon.d.ts.map +1 -1
  428. package/dist/themes/overrides/ListItemText.d.ts +2 -11
  429. package/dist/themes/overrides/ListItemText.d.ts.map +1 -1
  430. package/dist/themes/overrides/LoadingButton.d.ts +2 -13
  431. package/dist/themes/overrides/LoadingButton.d.ts.map +1 -1
  432. package/dist/themes/overrides/OutlinedInput.d.ts +2 -95
  433. package/dist/themes/overrides/OutlinedInput.d.ts.map +1 -1
  434. package/dist/themes/overrides/Pagination.d.ts +2 -7
  435. package/dist/themes/overrides/Pagination.d.ts.map +1 -1
  436. package/dist/themes/overrides/PaginationItem.d.ts +2 -950
  437. package/dist/themes/overrides/PaginationItem.d.ts.map +1 -1
  438. package/dist/themes/overrides/Popover.d.ts +2 -9
  439. package/dist/themes/overrides/Popover.d.ts.map +1 -1
  440. package/dist/themes/overrides/Radio.d.ts +2 -122
  441. package/dist/themes/overrides/Radio.d.ts.map +1 -1
  442. package/dist/themes/overrides/Slider.d.ts +2 -65
  443. package/dist/themes/overrides/Slider.d.ts.map +1 -1
  444. package/dist/themes/overrides/Switch.d.ts +2 -90
  445. package/dist/themes/overrides/Switch.d.ts.map +1 -1
  446. package/dist/themes/overrides/Tab.d.ts +2 -20
  447. package/dist/themes/overrides/Tab.d.ts.map +1 -1
  448. package/dist/themes/overrides/TableBody.d.ts +2 -21
  449. package/dist/themes/overrides/TableBody.d.ts.map +1 -1
  450. package/dist/themes/overrides/TableCell.d.ts +2 -47
  451. package/dist/themes/overrides/TableCell.d.ts.map +1 -1
  452. package/dist/themes/overrides/TableFooter.d.ts +2 -11
  453. package/dist/themes/overrides/TableFooter.d.ts.map +1 -1
  454. package/dist/themes/overrides/TableHead.d.ts +2 -11
  455. package/dist/themes/overrides/TableHead.d.ts.map +1 -1
  456. package/dist/themes/overrides/TablePagination.d.ts +2 -12
  457. package/dist/themes/overrides/TablePagination.d.ts.map +1 -1
  458. package/dist/themes/overrides/TableRow.d.ts +2 -21
  459. package/dist/themes/overrides/TableRow.d.ts.map +1 -1
  460. package/dist/themes/overrides/Tabs.d.ts +2 -9
  461. package/dist/themes/overrides/Tabs.d.ts.map +1 -1
  462. package/dist/themes/overrides/ToggleButton.d.ts +2 -16
  463. package/dist/themes/overrides/ToggleButton.d.ts.map +1 -1
  464. package/dist/themes/overrides/Tooltip.d.ts +2 -9
  465. package/dist/themes/overrides/Tooltip.d.ts.map +1 -1
  466. package/dist/themes/overrides/TreeItem.d.ts +2 -14
  467. package/dist/themes/overrides/TreeItem.d.ts.map +1 -1
  468. package/dist/themes/overrides/Typography.d.ts +2 -9
  469. package/dist/themes/overrides/Typography.d.ts.map +1 -1
  470. package/dist/themes/overrides/index.d.ts +2 -1
  471. package/dist/themes/overrides/index.d.ts.map +1 -1
  472. package/dist/themes/palette.d.ts +2 -2
  473. package/dist/themes/palette.d.ts.map +1 -1
  474. package/dist/themes/shadows.d.ts +3 -2
  475. package/dist/themes/shadows.d.ts.map +1 -1
  476. package/dist/themes/theme/default.d.ts +2 -89
  477. package/dist/themes/theme/default.d.ts.map +1 -1
  478. package/dist/themes/theme/index.d.ts +2 -90
  479. package/dist/themes/theme/index.d.ts.map +1 -1
  480. package/dist/themes/theme/theme1.d.ts +2 -2
  481. package/dist/themes/theme/theme1.d.ts.map +1 -1
  482. package/dist/themes/theme/theme2.d.ts +2 -2
  483. package/dist/themes/theme/theme2.d.ts.map +1 -1
  484. package/dist/themes/theme/theme3.d.ts +2 -2
  485. package/dist/themes/theme/theme3.d.ts.map +1 -1
  486. package/dist/themes/theme/theme4.d.ts +2 -2
  487. package/dist/themes/theme/theme4.d.ts.map +1 -1
  488. package/dist/themes/theme/theme5.d.ts +2 -2
  489. package/dist/themes/theme/theme5.d.ts.map +1 -1
  490. package/dist/themes/theme/theme6.d.ts +2 -2
  491. package/dist/themes/theme/theme6.d.ts.map +1 -1
  492. package/dist/themes/theme/theme7.d.ts +2 -2
  493. package/dist/themes/theme/theme7.d.ts.map +1 -1
  494. package/dist/themes/theme/theme8.d.ts +2 -2
  495. package/dist/themes/theme/theme8.d.ts.map +1 -1
  496. package/dist/themes/types.d.ts +19 -0
  497. package/dist/themes/types.d.ts.map +1 -0
  498. package/dist/themes/typography.d.ts +3 -3
  499. package/dist/themes/typography.d.ts.map +1 -1
  500. package/dist/types.d.ts +2 -54
  501. package/dist/types.d.ts.map +1 -1
  502. package/dist/utils/index.d.ts +2 -2
  503. package/dist/utils/index.d.ts.map +1 -1
  504. package/dist/utils/lang.d.ts +2 -1
  505. package/dist/utils/lang.d.ts.map +1 -1
  506. package/dist/utils/localizedValue.d.ts +2 -2
  507. package/dist/utils/localizedValue.d.ts.map +1 -1
  508. package/dist/utils/time.d.ts +1 -1
  509. package/dist/utils/time.d.ts.map +1 -1
  510. package/jsconfig.json +24 -20
  511. package/jsconfig.node.json +4 -4
  512. package/package.json +73 -64
  513. package/src/Admin.tsx +5 -4
  514. package/src/AdminContext.tsx +5 -4
  515. package/src/ApplicaAdmin.tsx +152 -142
  516. package/src/components/@extended/{AnimateButton.jsx → AnimateButton.tsx} +16 -14
  517. package/src/components/@extended/{Avatar.jsx → Avatar.tsx} +31 -26
  518. package/src/components/@extended/{Breadcrumbs.jsx → Breadcrumbs.tsx} +68 -41
  519. package/src/components/@extended/Dot.tsx +34 -0
  520. package/src/components/@extended/{IconButton.jsx → IconButton.tsx} +41 -30
  521. package/src/components/@extended/{LoadingButton.jsx → LoadingButton.tsx} +58 -39
  522. package/src/components/@extended/{Tooltip.jsx → Tooltip.tsx} +32 -19
  523. package/src/components/@extended/Transitions.tsx +114 -0
  524. package/src/components/@extended/index.ts +9 -0
  525. package/src/components/@extended/progress/{CircularWithLabel.jsx → CircularWithLabel.tsx} +6 -9
  526. package/src/components/@extended/progress/{CircularWithPath.jsx → CircularWithPath.tsx} +24 -17
  527. package/src/components/@extended/progress/{LinearWithIcon.jsx → LinearWithIcon.tsx} +7 -9
  528. package/src/components/@extended/progress/{LinearWithLabel.jsx → LinearWithLabel.tsx} +6 -9
  529. package/src/components/@extended/progress/index.ts +4 -0
  530. package/src/components/ActionsMenu.tsx +27 -24
  531. package/src/components/AppStateProvider.tsx +80 -0
  532. package/src/components/AuthBackground.tsx +10 -4
  533. package/src/components/{AuthCard.jsx → AuthCard.tsx} +9 -9
  534. package/src/components/AuthWrapper.tsx +7 -16
  535. package/src/components/Layout/Content.tsx +21 -14
  536. package/src/components/Layout/Drawer/Drawer.tsx +35 -34
  537. package/src/components/Layout/Drawer/DrawerHeader.tsx +19 -18
  538. package/src/components/Layout/Drawer/DrawerHeaderStyled.tsx +19 -0
  539. package/src/components/Layout/Drawer/MiniDrawerStyled.tsx +59 -0
  540. package/src/components/Layout/Error.tsx +13 -20
  541. package/src/components/Layout/Header/AppBarStyled.tsx +4 -4
  542. package/src/components/Layout/Header/Buttons/HeaderButton.tsx +6 -2
  543. package/src/components/Layout/Header/Buttons/HeaderIconButton.tsx +6 -3
  544. package/src/components/Layout/Header/Buttons/HeaderToggleButton.tsx +5 -2
  545. package/src/components/Layout/Header/Buttons/LocaleButton.tsx +8 -7
  546. package/src/components/Layout/Header/Buttons/index.ts +1 -1
  547. package/src/components/Layout/Header/DrawerToggle.tsx +9 -3
  548. package/src/components/Layout/Header/Header.tsx +23 -22
  549. package/src/components/Layout/Header/Notification/Notification.tsx +42 -33
  550. package/src/components/Layout/Header/Notification/NotificationItem.tsx +40 -40
  551. package/src/components/Layout/Header/Profile/{Profile.tsx → HeaderProfile.tsx} +22 -25
  552. package/src/components/Layout/Header/Profile/buttons/ChangePasswordButton.tsx +8 -9
  553. package/src/components/Layout/Header/Profile/buttons/LogoutButton.tsx +6 -8
  554. package/src/components/Layout/Header/Profile/buttons/StopImpersonateButton.tsx +8 -9
  555. package/src/components/Layout/Header/Profile/buttons/index.ts +3 -0
  556. package/src/components/Layout/Header/Profile/index.ts +1 -1
  557. package/src/components/Layout/Header/ResponsiveSection.tsx +10 -10
  558. package/src/components/Layout/HorizontalBar.tsx +7 -7
  559. package/src/components/Layout/Layout.tsx +10 -13
  560. package/src/components/Layout/MenuProvider.tsx +416 -0
  561. package/src/components/Layout/Navigation/NavCollapse.tsx +48 -39
  562. package/src/components/Layout/Navigation/NavGroup.tsx +59 -41
  563. package/src/components/Layout/Navigation/NavItem.tsx +32 -33
  564. package/src/components/Layout/Navigation/NavList.tsx +6 -6
  565. package/src/components/Layout/Navigation/Navigation.tsx +16 -15
  566. package/src/components/Layout/Navigation/index.ts +2 -2
  567. package/src/components/Layout/Provider.tsx +63 -57
  568. package/src/components/Layout/ThemeProvider.tsx +163 -0
  569. package/src/components/Layout/ThemeToggler.tsx +4 -4
  570. package/src/components/Layout/Wrapper.tsx +2 -1
  571. package/src/components/Layout/index.ts +7 -5
  572. package/src/components/Loadable.tsx +12 -0
  573. package/src/components/{Loader.jsx → Loader.tsx} +9 -7
  574. package/src/components/Logo.tsx +26 -0
  575. package/src/components/MainCard.tsx +17 -34
  576. package/src/components/MainIcon.tsx +17 -14
  577. package/src/components/MenuPopover/{MenuPopover.jsx → MenuPopover.tsx} +15 -28
  578. package/src/components/MenuPopover/{getPosition.jsx → getPosition.tsx} +14 -2
  579. package/src/components/MenuPopover/index.tsx +3 -0
  580. package/src/components/MenuPopover/{styles.jsx → styles.tsx} +10 -2
  581. package/src/components/MenuPopover/types.ts +15 -0
  582. package/src/components/Notification.tsx +3 -3
  583. package/src/components/Onboarding/{onboardingDataProvider.tsx → DataProvider.tsx} +44 -39
  584. package/src/components/Onboarding/OnboardingTip.tsx +11 -10
  585. package/src/components/Onboarding/Provider.tsx +50 -45
  586. package/src/components/Onboarding/hooks.tsx +20 -14
  587. package/src/components/Onboarding/index.ts +3 -3
  588. package/src/components/Onboarding/schemas.ts +4 -3
  589. package/src/components/{ScrollTop.jsx → ScrollTop.tsx} +7 -10
  590. package/src/components/{ScrollX.jsx → ScrollX.tsx} +1 -2
  591. package/src/components/SmallIcon.tsx +16 -0
  592. package/src/components/index.jsx +16 -22
  593. package/src/components/ra-buttons/CreateInDialogButton.tsx +111 -101
  594. package/src/components/ra-buttons/EditInDialogButton.tsx +22 -22
  595. package/src/components/ra-buttons/ImpersonateUserButton.tsx +6 -5
  596. package/src/components/ra-buttons/index.ts +1 -1
  597. package/src/components/ra-custom/ListItem.tsx +48 -45
  598. package/src/components/ra-fields/ActionsField.tsx +13 -12
  599. package/src/components/ra-fields/AttachmentField.tsx +31 -30
  600. package/src/components/ra-fields/BaseAttachmentField.tsx +22 -21
  601. package/src/components/ra-fields/CoverField.tsx +7 -4
  602. package/src/components/ra-fields/DateAgoField.tsx +18 -13
  603. package/src/components/ra-fields/DateField.tsx +4 -3
  604. package/src/components/ra-fields/EmailField.tsx +4 -3
  605. package/src/components/ra-fields/FileField.tsx +8 -7
  606. package/src/components/ra-fields/FunctionField.tsx +3 -2
  607. package/src/components/ra-fields/ImageField.tsx +4 -3
  608. package/src/components/ra-fields/LocalizedTextField.tsx +32 -31
  609. package/src/components/ra-fields/ReadonlyField.tsx +28 -26
  610. package/src/components/ra-fields/ReferenceManyField.tsx +19 -13
  611. package/src/components/ra-fields/SizeField.tsx +7 -6
  612. package/src/components/ra-fields/TextField.tsx +4 -3
  613. package/src/components/ra-forms/CardForm.tsx +37 -35
  614. package/src/components/ra-forms/ChangePasswordForm.tsx +22 -13
  615. package/src/components/ra-forms/Create.tsx +55 -47
  616. package/src/components/ra-forms/Edit.tsx +5 -3
  617. package/src/components/ra-forms/FormHeader.tsx +14 -11
  618. package/src/components/ra-forms/LongForm/BaseForm.tsx +9 -9
  619. package/src/components/ra-forms/LongForm/Content.tsx +4 -4
  620. package/src/components/ra-forms/LongForm/Form.tsx +12 -12
  621. package/src/components/ra-forms/LongForm/NavMenu.tsx +81 -71
  622. package/src/components/ra-forms/LongForm/Provider.tsx +61 -59
  623. package/src/components/ra-forms/LongForm/Sidebar.tsx +29 -29
  624. package/src/components/ra-forms/LongForm/Tab.tsx +31 -31
  625. package/src/components/ra-forms/LongForm/hooks.tsx +14 -14
  626. package/src/components/ra-forms/LongForm/index.ts +23 -8
  627. package/src/components/ra-forms/LongForm/utils.ts +10 -10
  628. package/src/components/ra-forms/Show.tsx +5 -3
  629. package/src/components/ra-forms/SimpleForm.tsx +18 -15
  630. package/src/components/ra-forms/SimpleFormIterator.tsx +5 -3
  631. package/src/components/ra-forms/TabbedForm.tsx +21 -20
  632. package/src/components/ra-forms/TableForm/TableFormIterator.tsx +34 -25
  633. package/src/components/ra-forms/TableForm/TableFormIteratorContext.ts +32 -0
  634. package/src/components/ra-forms/TableForm/TableFormIteratorItem.tsx +10 -7
  635. package/src/components/ra-forms/TableForm/TableFormIteratorItemContext.ts +30 -0
  636. package/src/components/ra-forms/TableForm/index.ts +2 -0
  637. package/src/components/ra-forms/Toolbar.tsx +4 -2
  638. package/src/components/ra-forms/index.ts +0 -1
  639. package/src/components/ra-inputs/ArrayInput.tsx +18 -9
  640. package/src/components/ra-inputs/AttachmentInput.tsx +37 -34
  641. package/src/components/ra-inputs/AutocompleteArrayInput.tsx +5 -4
  642. package/src/components/ra-inputs/AutocompleteInput.tsx +6 -5
  643. package/src/components/ra-inputs/BooleanInput.tsx +6 -5
  644. package/src/components/ra-inputs/DateInput.tsx +5 -4
  645. package/src/components/ra-inputs/DateTimeInput.tsx +5 -4
  646. package/src/components/ra-inputs/FileInput.tsx +14 -13
  647. package/src/components/ra-inputs/ImageInput.tsx +13 -7
  648. package/src/components/ra-inputs/LabeledArrayInput.tsx +23 -22
  649. package/src/components/ra-inputs/LabeledInput.tsx +21 -19
  650. package/src/components/ra-inputs/LocalizedTextInput.tsx +49 -39
  651. package/src/components/ra-inputs/NumberInput.tsx +5 -4
  652. package/src/components/ra-inputs/RecordInput.tsx +6 -5
  653. package/src/components/ra-inputs/ReferenceArrayInput.tsx +11 -7
  654. package/src/components/ra-inputs/ReferenceInput.tsx +5 -4
  655. package/src/components/ra-inputs/ReferenceManyInput.tsx +14 -7
  656. package/src/components/ra-inputs/SearchInput.tsx +4 -3
  657. package/src/components/ra-inputs/SelectArrayInput.tsx +5 -4
  658. package/src/components/ra-inputs/SelectInput.tsx +5 -5
  659. package/src/components/ra-inputs/SmartTextInput.tsx +9 -5
  660. package/src/components/ra-inputs/TextInput.tsx +4 -3
  661. package/src/components/ra-inputs/TimeInput.tsx +5 -4
  662. package/src/components/ra-lists/BulkActionsToolbar.tsx +23 -21
  663. package/src/components/ra-lists/BulkFloatingActionsToolbar.tsx +17 -10
  664. package/src/components/ra-lists/Datagrid/Datagrid.tsx +63 -56
  665. package/src/components/ra-lists/Datagrid/DatagridContext.ts +6 -5
  666. package/src/components/ra-lists/Datagrid/DatagridContextProvider.tsx +12 -7
  667. package/src/components/ra-lists/Datagrid/index.tsx +3 -3
  668. package/src/components/ra-lists/Empty.tsx +10 -9
  669. package/src/components/ra-lists/List.tsx +27 -24
  670. package/src/components/ra-lists/ListView.tsx +54 -44
  671. package/src/components/ra-lists/NotificationList/NotificationList.tsx +14 -10
  672. package/src/components/ra-lists/NotificationList/buttons/MarkAsReadedButton.tsx +10 -6
  673. package/src/components/ra-lists/NotificationList/buttons/MarkAsUnreadedButton.tsx +4 -5
  674. package/src/components/ra-lists/NotificationList/fields/NotificationField.tsx +15 -7
  675. package/src/components/ra-lists/NotificationList/index.ts +1 -1
  676. package/src/components/ra-lists/SimpleList.tsx +3 -3
  677. package/src/components/ra-lists/index.ts +1 -1
  678. package/src/components/ra-pages/ActivatePage.tsx +15 -18
  679. package/src/components/ra-pages/GenericErrorPage.tsx +4 -6
  680. package/src/components/ra-pages/LoginPage.tsx +33 -18
  681. package/src/components/ra-pages/RecoverPage.tsx +15 -20
  682. package/src/components/ra-pages/RegisterPage.tsx +15 -18
  683. package/src/components/ra-pages/index.ts +5 -5
  684. package/src/components/ra-pages/types.ts +2 -1
  685. package/src/components/third-party/{SimpleBar.jsx → SimpleBar.tsx} +12 -18
  686. package/src/components/third-party/index.ts +1 -0
  687. package/src/dev/CatchResult.ts +5 -2
  688. package/src/dev/ErrorEventHandler.ts +6 -4
  689. package/src/dev/index.ts +3 -4
  690. package/src/dev/useErrorEventCatcher.ts +14 -13
  691. package/src/hooks/index.ts +7 -14
  692. package/src/hooks/mui.ts +2 -2
  693. package/src/hooks/useLocalStorage.tsx +7 -7
  694. package/src/hooks/useLocalizedValue.tsx +11 -11
  695. package/src/hooks/usePopoverState.tsx +17 -14
  696. package/src/hooks/useRefDimensions.ts +6 -6
  697. package/src/hooks/useResourceTitle.ts +3 -4
  698. package/src/i18n/MissingMessageHandler.ts +6 -2
  699. package/src/i18n/createI18nProvider.tsx +47 -48
  700. package/src/i18n/index.jsx +3 -3
  701. package/src/i18n/useI18nLanguages.ts +26 -0
  702. package/src/i18n/useI18nProvider.tsx +6 -6
  703. package/src/index.d.ts +1 -0
  704. package/src/index.jsx +18 -19
  705. package/src/main.tsx +1 -1
  706. package/src/playground/App.jsx +13 -17
  707. package/src/playground/components/index.jsx +4 -4
  708. package/src/playground/components/pages/CustomPage.jsx +5 -5
  709. package/src/playground/components/pages/index.jsx +1 -2
  710. package/src/playground/components/ra-fields/UserPictureField.jsx +5 -10
  711. package/src/playground/components/ra-fields/index.jsx +1 -2
  712. package/src/playground/components/ra-forms/DeviceForm.jsx +7 -8
  713. package/src/playground/components/ra-forms/I18nMessageForm.jsx +4 -5
  714. package/src/playground/components/ra-forms/TestModelForm.jsx +15 -13
  715. package/src/playground/components/ra-forms/UserForm.jsx +6 -31
  716. package/src/playground/components/ra-forms/index.jsx +4 -3
  717. package/src/playground/components/ra-inputs/LangSelectInput.jsx +7 -3
  718. package/src/playground/components/ra-inputs/YesOrNoSelectInput.jsx +15 -12
  719. package/src/playground/components/ra-inputs/index.jsx +2 -3
  720. package/src/playground/components/ra-lists/DeviceList.jsx +15 -14
  721. package/src/playground/components/ra-lists/I18nMessageList.jsx +14 -13
  722. package/src/playground/components/ra-lists/UserList.jsx +39 -29
  723. package/src/playground/components/ra-lists/index.jsx +3 -3
  724. package/src/playground/config.jsx +7 -5
  725. package/src/playground/entities/device.jsx +17 -14
  726. package/src/playground/entities/i18n-message.jsx +18 -18
  727. package/src/playground/entities/index.jsx +4 -4
  728. package/src/playground/entities/notification.jsx +8 -9
  729. package/src/playground/entities/user.jsx +19 -20
  730. package/src/playground/index.jsx +0 -1
  731. package/src/playground/menu.jsx +1 -3
  732. package/src/playground/theme.jsx +4 -2
  733. package/src/tests/README.md +0 -0
  734. package/src/tests/example.test.js +11 -0
  735. package/src/themes/{getColors.jsx → getColors.ts} +5 -3
  736. package/src/themes/{getShadow.jsx → getShadow.ts} +19 -9
  737. package/src/themes/{index.jsx → index.tsx} +19 -17
  738. package/src/themes/overrides/{Accordion.jsx → Accordion.ts} +3 -3
  739. package/src/themes/overrides/{AccordionDetails.jsx → AccordionDetails.ts} +3 -3
  740. package/src/themes/overrides/{AccordionSummary.jsx → AccordionSummary.tsx} +3 -4
  741. package/src/themes/overrides/{Alert.jsx → Alert.ts} +12 -7
  742. package/src/themes/overrides/{AlertTitle.jsx → AlertTitle.ts} +3 -3
  743. package/src/themes/overrides/{Autocomplete.jsx → Autocomplete.ts} +3 -3
  744. package/src/themes/overrides/{Badge.jsx → Badge.ts} +12 -3
  745. package/src/themes/overrides/{Button.jsx → Button.ts} +16 -7
  746. package/src/themes/overrides/ButtonBase.ts +12 -0
  747. package/src/themes/overrides/ButtonGroup.ts +11 -0
  748. package/src/themes/overrides/{CardContent.jsx → CardContent.ts} +3 -3
  749. package/src/themes/overrides/{Checkbox.jsx → Checkbox.tsx} +14 -6
  750. package/src/themes/overrides/{Chip.jsx → Chip.ts} +19 -4
  751. package/src/themes/overrides/{Dialog.jsx → Dialog.ts} +3 -4
  752. package/src/themes/overrides/{DialogContentText.jsx → DialogContentText.ts} +3 -3
  753. package/src/themes/overrides/{DialogTitle.jsx → DialogTitle.ts} +3 -3
  754. package/src/themes/overrides/{Fab.jsx → Fab.ts} +13 -7
  755. package/src/themes/overrides/{IconButton.jsx → IconButton.ts} +3 -3
  756. package/src/themes/overrides/{InputBase.jsx → InputBase.ts} +2 -3
  757. package/src/themes/overrides/{InputLabel.jsx → InputLabel.ts} +3 -3
  758. package/src/themes/overrides/{LinearProgress.jsx → LinearProgress.ts} +3 -3
  759. package/src/themes/overrides/Link.ts +11 -0
  760. package/src/themes/overrides/{ListItemButton.jsx → ListItemButton.ts} +3 -3
  761. package/src/themes/overrides/{ListItemIcon.jsx → ListItemIcon.ts} +3 -3
  762. package/src/themes/overrides/{ListItemText.jsx → ListItemText.ts} +3 -3
  763. package/src/themes/overrides/{LoadingButton.jsx → LoadingButton.ts} +3 -3
  764. package/src/themes/overrides/{OutlinedInput.jsx → OutlinedInput.ts} +12 -4
  765. package/src/themes/overrides/Pagination.ts +11 -0
  766. package/src/themes/overrides/{PaginationItem.jsx → PaginationItem.ts} +14 -5
  767. package/src/themes/overrides/{Popover.jsx → Popover.ts} +3 -3
  768. package/src/themes/overrides/{Radio.jsx → Radio.tsx} +14 -7
  769. package/src/themes/overrides/{Slider.jsx → Slider.ts} +11 -3
  770. package/src/themes/overrides/{Switch.jsx → Switch.ts} +5 -7
  771. package/src/themes/overrides/{Tab.jsx → Tab.ts} +3 -3
  772. package/src/themes/overrides/{TableBody.jsx → TableBody.ts} +3 -3
  773. package/src/themes/overrides/{TableCell.jsx → TableCell.ts} +3 -3
  774. package/src/themes/overrides/{TableFooter.jsx → TableFooter.ts} +3 -3
  775. package/src/themes/overrides/{TableHead.jsx → TableHead.ts} +3 -3
  776. package/src/themes/overrides/{TablePagination.jsx → TablePagination.ts} +3 -3
  777. package/src/themes/overrides/{TableRow.jsx → TableRow.ts} +3 -3
  778. package/src/themes/overrides/{Tabs.jsx → Tabs.ts} +3 -3
  779. package/src/themes/overrides/{ToggleButton.jsx → ToggleButton.ts} +3 -3
  780. package/src/themes/overrides/{Tooltip.jsx → Tooltip.ts} +3 -3
  781. package/src/themes/overrides/{TreeItem.jsx → TreeItem.ts} +3 -3
  782. package/src/themes/overrides/{Typography.jsx → Typography.ts} +3 -3
  783. package/src/themes/overrides/index.ts +98 -0
  784. package/src/themes/{palette.jsx → palette.ts} +19 -16
  785. package/src/themes/shadows.ts +29 -0
  786. package/src/themes/theme/{default.jsx → default.ts} +3 -11
  787. package/src/themes/theme/index.ts +37 -0
  788. package/src/themes/theme/{theme1.jsx → theme1.ts} +27 -7
  789. package/src/themes/theme/{theme5.jsx → theme2.ts} +27 -7
  790. package/src/themes/theme/{theme4.jsx → theme3.ts} +27 -7
  791. package/src/themes/theme/{theme3.jsx → theme4.ts} +27 -7
  792. package/src/themes/theme/{theme2.jsx → theme5.ts} +27 -7
  793. package/src/themes/theme/theme6.ts +126 -0
  794. package/src/themes/theme/theme7.ts +126 -0
  795. package/src/themes/theme/theme8.ts +126 -0
  796. package/src/themes/types.ts +20 -0
  797. package/src/themes/typography.ts +70 -0
  798. package/src/types.ts +3 -57
  799. package/src/utils/index.ts +2 -2
  800. package/src/utils/lang.ts +3 -1
  801. package/src/utils/localizedValue.ts +12 -6
  802. package/src/utils/time.ts +2 -2
  803. package/tsconfig.json +24 -15
  804. package/vite-env.d.ts +1 -0
  805. package/vite.config.js +9 -6
  806. package/.eslintrc.json +0 -46
  807. package/build.sh +0 -9
  808. package/dist/components/Layout/Header/Profile/Profile.d.ts +0 -3
  809. package/dist/components/Layout/Header/Profile/Profile.d.ts.map +0 -1
  810. package/dist/components/Onboarding/onboardingDataProvider.d.ts.map +0 -1
  811. package/dist/contexts/AppConfigContext.d.ts +0 -32
  812. package/dist/contexts/AppConfigContext.d.ts.map +0 -1
  813. package/dist/contexts/MenuConfigContext.d.ts +0 -23
  814. package/dist/contexts/MenuConfigContext.d.ts.map +0 -1
  815. package/dist/contexts/TableFormIteratorContext.d.ts.map +0 -1
  816. package/dist/contexts/TableFormIteratorItemContext.d.ts +0 -16
  817. package/dist/contexts/TableFormIteratorItemContext.d.ts.map +0 -1
  818. package/dist/contexts/ThemeConfigContext.d.ts +0 -79
  819. package/dist/contexts/ThemeConfigContext.d.ts.map +0 -1
  820. package/dist/contexts/index.d.ts +0 -6
  821. package/dist/contexts/index.d.ts.map +0 -1
  822. package/dist/hooks/useAppConfig.d.ts +0 -8
  823. package/dist/hooks/useAppConfig.d.ts.map +0 -1
  824. package/dist/hooks/useBreadcrumbs.d.ts +0 -9
  825. package/dist/hooks/useBreadcrumbs.d.ts.map +0 -1
  826. package/dist/hooks/useMenu.d.ts +0 -8
  827. package/dist/hooks/useMenu.d.ts.map +0 -1
  828. package/dist/hooks/useMenuConfig.d.ts +0 -3
  829. package/dist/hooks/useMenuConfig.d.ts.map +0 -1
  830. package/dist/hooks/useTableFormIterator.d.ts +0 -9
  831. package/dist/hooks/useTableFormIterator.d.ts.map +0 -1
  832. package/dist/hooks/useTableFormIteratorItem.d.ts +0 -9
  833. package/dist/hooks/useTableFormIteratorItem.d.ts.map +0 -1
  834. package/dist/hooks/useThemeConfig.d.ts +0 -3
  835. package/dist/hooks/useThemeConfig.d.ts.map +0 -1
  836. package/src/components/@extended/Dot.jsx +0 -35
  837. package/src/components/@extended/Transitions.jsx +0 -116
  838. package/src/components/@extended/index.jsx +0 -11
  839. package/src/components/@extended/progress/index.jsx +0 -6
  840. package/src/components/Layout/Drawer/DrawerHeaderStyled.jsx +0 -12
  841. package/src/components/Layout/Drawer/MiniDrawerStyled.jsx +0 -45
  842. package/src/components/Layout/Header/Profile/buttons/index.jsx +0 -4
  843. package/src/components/Loadable.jsx +0 -11
  844. package/src/components/Logo.jsx +0 -29
  845. package/src/components/MenuPopover/index.jsx +0 -3
  846. package/src/components/SmallIcon.jsx +0 -14
  847. package/src/components/third-party/index.jsx +0 -3
  848. package/src/contexts/AppConfigContext.tsx +0 -67
  849. package/src/contexts/MenuConfigContext.tsx +0 -69
  850. package/src/contexts/TableFormIteratorContext.ts +0 -21
  851. package/src/contexts/TableFormIteratorItemContext.ts +0 -19
  852. package/src/contexts/ThemeConfigContext.tsx +0 -151
  853. package/src/contexts/index.jsx +0 -5
  854. package/src/hooks/useAppConfig.jsx +0 -6
  855. package/src/hooks/useBreadcrumbs.jsx +0 -68
  856. package/src/hooks/useMenu.jsx +0 -217
  857. package/src/hooks/useMenuConfig.ts +0 -6
  858. package/src/hooks/useTableFormIterator.ts +0 -12
  859. package/src/hooks/useTableFormIteratorItem.ts +0 -12
  860. package/src/hooks/useThemeConfig.jsx +0 -6
  861. package/src/i18n/useI18nLanguages.jsx +0 -18
  862. package/src/playground/contexts/index.jsx +0 -1
  863. package/src/playground/entities/order.jsx +0 -24
  864. package/src/playground/hooks/index.jsx +0 -1
  865. package/src/playground/reportWebVitals.jsx +0 -13
  866. package/src/playground/types.ts +0 -92
  867. package/src/themes/overrides/ButtonBase.jsx +0 -12
  868. package/src/themes/overrides/ButtonGroup.jsx +0 -11
  869. package/src/themes/overrides/Link.jsx +0 -11
  870. package/src/themes/overrides/Pagination.jsx +0 -11
  871. package/src/themes/overrides/index.jsx +0 -100
  872. package/src/themes/shadows.jsx +0 -27
  873. package/src/themes/theme/index.jsx +0 -44
  874. package/src/themes/theme/theme6.jsx +0 -106
  875. package/src/themes/theme/theme7.jsx +0 -106
  876. package/src/themes/theme/theme8.jsx +0 -106
  877. package/src/themes/typography.jsx +0 -71
@@ -1,17 +1,16 @@
1
- import { Dialog, ListItemButton, ListItemIcon, ListItemText } from '@mui/material';
2
- import { Fragment, useCallback, useState } from 'react';
3
-
4
- import { ChangePasswordForm } from '../../../../ra-forms';
1
+ import { ChangePasswordForm } from '@/components/ra-forms';
5
2
  import { Key } from '@mui/icons-material';
3
+ import { Dialog, ListItemButton, ListItemIcon, ListItemText } from '@mui/material';
6
4
  import { useTranslate } from 'ra-core';
5
+ import { useCallback, useState } from 'react';
7
6
 
8
- const ChangePasswordButton = () => {
7
+ function ChangePasswordButton(): JSX.Element {
9
8
  const [open, setOpen] = useState(false);
10
9
  const handleSuccess = useCallback(() => setOpen(false), [setOpen]);
11
10
  const handleOpen = useCallback(() => setOpen(true), [setOpen]);
12
11
  const translate = useTranslate();
13
12
  return (
14
- <Fragment>
13
+ <>
15
14
  <ListItemButton onClick={handleOpen}>
16
15
  <ListItemIcon>
17
16
  <Key />
@@ -21,8 +20,8 @@ const ChangePasswordButton = () => {
21
20
  <Dialog open={open} onClose={() => setOpen(false)} maxWidth="xs" fullWidth>
22
21
  <ChangePasswordForm onSuccess={handleSuccess} />
23
22
  </Dialog>
24
- </Fragment>
23
+ </>
25
24
  );
26
- };
25
+ }
27
26
 
28
- export default ChangePasswordButton;
27
+ export { ChangePasswordButton };
@@ -1,23 +1,21 @@
1
+ import { LogoutOutlined } from '@mui/icons-material';
1
2
  import { ListItemButton, ListItemIcon, ListItemText } from '@mui/material';
2
3
  import { useLogout, useTranslate } from 'ra-core';
3
4
 
4
- import { Fragment } from 'react';
5
- import { LogoutOutlined } from '@mui/icons-material';
6
-
7
- const LogoutButton = () => {
5
+ function LogoutButton(): JSX.Element {
8
6
  const logout = useLogout();
9
7
  const translate = useTranslate();
10
8
 
11
9
  return (
12
- <Fragment>
10
+ <>
13
11
  <ListItemButton onClick={logout}>
14
12
  <ListItemIcon>
15
13
  <LogoutOutlined />
16
14
  </ListItemIcon>
17
15
  <ListItemText primary={translate('ra.auth.logout')} />
18
16
  </ListItemButton>
19
- </Fragment>
17
+ </>
20
18
  );
21
- };
19
+ }
22
20
 
23
- export default LogoutButton;
21
+ export { LogoutButton };
@@ -1,15 +1,14 @@
1
- import { Fragment, useCallback, useEffect, useState } from 'react';
1
+ import { LogoutOutlined } from '@mui/icons-material';
2
2
  import { ListItemButton, ListItemIcon, ListItemText } from '@mui/material';
3
3
  import { useAuthProvider, useTranslate } from 'ra-core';
4
+ import { useCallback, useEffect, useState } from 'react';
4
5
 
5
- import { LogoutOutlined } from '@mui/icons-material';
6
-
7
- const StopImpersonateButton = () => {
6
+ function StopImpersonateButton(): JSX.Element | null {
8
7
  const translate = useTranslate();
9
8
  const authProvider = useAuthProvider();
10
9
  const stopImpersonating = useCallback(
11
10
  () => authProvider.stopImpersonate().then(() => (document.location.href = '/')),
12
- [authProvider?.stopImpersonating]
11
+ [authProvider]
13
12
  );
14
13
  const [isImpersonating, setIsImpersonating] = useState(false);
15
14
 
@@ -27,15 +26,15 @@ const StopImpersonateButton = () => {
27
26
  }
28
27
 
29
28
  return (
30
- <Fragment>
29
+ <>
31
30
  <ListItemButton onClick={stopImpersonating}>
32
31
  <ListItemIcon>
33
32
  <LogoutOutlined />
34
33
  </ListItemIcon>
35
34
  <ListItemText primary={translate('ra.auth.stop_impersonate')} />
36
35
  </ListItemButton>
37
- </Fragment>
36
+ </>
38
37
  );
39
- };
38
+ }
40
39
 
41
- export default StopImpersonateButton;
40
+ export { StopImpersonateButton };
@@ -0,0 +1,3 @@
1
+ export * from './ChangePasswordButton';
2
+ export * from './LogoutButton';
3
+ export * from './StopImpersonateButton';
@@ -1 +1 @@
1
- export { default as HeaderProfile } from './Profile';
1
+ export * from './HeaderProfile';
@@ -1,17 +1,17 @@
1
- import { AppBar, ClickAwayListener, Paper, Popper, Toolbar } from '@mui/material';
2
- import { Transitions } from '../../@extended';
1
+ import { HeaderToggleButton } from './Buttons';
2
+ import { Transitions } from '@/components/@extended';
3
+ import { useLayoutMediaState } from '@/components/Layout/Provider';
4
+ import { usePopoverState } from '@/hooks';
3
5
  import { MoreOutlined } from '@ant-design/icons';
6
+ import { AppBar, ClickAwayListener, Paper, Popper, Toolbar } from '@mui/material';
4
7
  import { useTheme } from '@mui/material/styles';
5
- import { useLayoutMediaState } from '../Provider';
6
- import { HeaderToggleButton } from './Buttons';
7
- import { usePopoverState } from '../../../hooks';
8
8
 
9
9
  type IResponsiveSectionProps = React.PropsWithChildren;
10
10
 
11
- const ResponsiveSection = (props: IResponsiveSectionProps) => {
12
- const theme = useTheme(),
13
- { downMd } = useLayoutMediaState(),
14
- { open, anchorEl, handleToggle, handleClose } = usePopoverState();
11
+ function ResponsiveSection(props: IResponsiveSectionProps) {
12
+ const theme = useTheme();
13
+ const { downMd } = useLayoutMediaState();
14
+ const { open, anchorEl, handleToggle, handleClose } = usePopoverState();
15
15
 
16
16
  return !downMd ? (
17
17
  <>{props.children}</>
@@ -63,6 +63,6 @@ const ResponsiveSection = (props: IResponsiveSectionProps) => {
63
63
  </Popper>
64
64
  </>
65
65
  );
66
- };
66
+ }
67
67
 
68
68
  export { ResponsiveSection };
@@ -1,15 +1,15 @@
1
+ import { useThemeConfig } from '@/components/Layout/ThemeProvider';
1
2
  import { AppBar, Box, Container, useScrollTrigger, useTheme } from '@mui/material';
2
- import { useThemeConfig } from '../../hooks';
3
3
 
4
4
  type IHorizontalBarProps = React.PropsWithChildren;
5
5
 
6
6
  function HorizontalBar(props: IHorizontalBarProps) {
7
- const theme = useTheme(),
8
- trigger = useScrollTrigger({
9
- disableHysteresis: true,
10
- threshold: 0
11
- }),
12
- { container } = useThemeConfig();
7
+ const theme = useTheme();
8
+ const trigger = useScrollTrigger({
9
+ disableHysteresis: true,
10
+ threshold: 0
11
+ });
12
+ const { container } = useThemeConfig();
13
13
 
14
14
  //@ts-ignore
15
15
  theme.shadows[4] = theme.customShadows.z1;
@@ -1,16 +1,15 @@
1
- import { Header, HeaderNotification, HeaderProfile, HeaderSpacer, LocaleButton, ResponsiveSection } from './Header';
2
-
3
- import { Breadcrumbs } from '../@extended';
4
- import { Footer } from './Footer';
5
1
  import { LayoutContent } from './Content';
6
- import { LayoutWrapper } from './Wrapper';
7
- import { ErrorProps, LoadingIndicator } from 'ra-ui-materialui';
2
+ import { Footer } from './Footer';
3
+ import { Header, HeaderNotification, HeaderProfile, HeaderSpacer, LocaleButton, ResponsiveSection } from './Header';
8
4
  import { NavMenu } from './NavMenu';
9
5
  import { Navigation } from './Navigation';
10
- import { Outlet } from 'react-router-dom';
11
- import { useBreadcrumbs } from '../../hooks';
12
6
  import { withLayoutProvider } from './Provider';
13
7
  import { ThemeToggler } from './ThemeToggler';
8
+ import { LayoutWrapper } from './Wrapper';
9
+ import { Breadcrumbs } from '@/components/@extended';
10
+ import { useBreadcrumbs } from '@/components/Layout/MenuProvider';
11
+ import { ErrorProps, LoadingIndicator } from 'ra-ui-materialui';
12
+ import { Outlet } from 'react-router-dom';
14
13
 
15
14
  type ILayoutProps = React.PropsWithChildren<{
16
15
  name: string;
@@ -21,15 +20,15 @@ type ILayoutProps = React.PropsWithChildren<{
21
20
  }>;
22
21
 
23
22
  const Layout = withLayoutProvider(function Layout(props: ILayoutProps) {
24
- const { name, version, enableThemeToggler } = props,
25
- { isLoading, navigation, breadcrumbs } = useBreadcrumbs();
23
+ const { name, version, enableThemeToggler } = props;
24
+ const { isLoading, navigation, breadcrumbs } = useBreadcrumbs();
26
25
 
27
26
  return (
28
27
  <LayoutWrapper>
29
28
  <Header>
30
29
  <HeaderSpacer />
31
30
  <LocaleButton />
32
- {enableThemeToggler && <ThemeToggler />}
31
+ {enableThemeToggler ? <ThemeToggler /> : null}
33
32
  <LoadingIndicator />
34
33
  <HeaderNotification />
35
34
  <ResponsiveSection>
@@ -41,7 +40,6 @@ const Layout = withLayoutProvider(function Layout(props: ILayoutProps) {
41
40
  </NavMenu>
42
41
  <LayoutContent error={props.error}>
43
42
  {!isLoading && (
44
- //@ts-ignore
45
43
  <Breadcrumbs
46
44
  titleBottom
47
45
  mode="breadcrumbs"
@@ -62,5 +60,4 @@ const Layout = withLayoutProvider(function Layout(props: ILayoutProps) {
62
60
  });
63
61
 
64
62
  export type { ILayoutProps };
65
-
66
63
  export { Layout };
@@ -0,0 +1,416 @@
1
+ import { AntDesignOutlined } from '@ant-design/icons';
2
+ import _ from 'lodash';
3
+ import {
4
+ ResourceDefinitions,
5
+ ResourceProps,
6
+ Translate,
7
+ useGetIdentity,
8
+ usePermissions,
9
+ useResourceDefinitions,
10
+ useTranslate
11
+ } from 'ra-core';
12
+ import { createContext, useContext, useEffect, useMemo, useState } from 'react';
13
+ import { useLocation } from 'react-router';
14
+
15
+ type MenuItem = {
16
+ id: string;
17
+ title: string;
18
+ icon?: React.ReactNode;
19
+ type: 'item' | 'group' | 'collapse';
20
+ url: string;
21
+ resource?: boolean;
22
+ roles?: string[];
23
+ children?: MenuItem[];
24
+ breadcrumbs?: boolean;
25
+ };
26
+
27
+ type MenuGroup = MenuItem & {
28
+ parent?: MenuGroup;
29
+ children?: MenuGroup[];
30
+ };
31
+ type MenuBreadcrumb = MenuItem & {
32
+ parent?: MenuBreadcrumb;
33
+ last?: boolean;
34
+ };
35
+
36
+ type MenuPermissions = string[] | undefined;
37
+
38
+ const RESOURCE_PREFIXES: string[] = ['e-', 'entities/'];
39
+
40
+ function getResourceName(name: string): string {
41
+ let resourceName = name;
42
+ RESOURCE_PREFIXES.forEach((prefix) => {
43
+ resourceName = resourceName?.startsWith(prefix) ? resourceName?.substring(prefix.length) : resourceName;
44
+ });
45
+ return resourceName;
46
+ }
47
+
48
+ function isInGroup(group: MenuGroup, resource: ResourceProps): boolean {
49
+ return resource.options?.group === group.id || (!resource.options?.group && group.id === 'admin');
50
+ }
51
+
52
+ function hasPermission(resource: ResourceProps, permissions: MenuPermissions): boolean {
53
+ const name = getResourceName(resource.name);
54
+ const hasPermission = permissions?.includes(`${name}:list`) || permissions?.includes(`${name}:find`);
55
+ return hasPermission as boolean;
56
+ }
57
+
58
+ function getItem(menu: MenuItem[], id: string): MenuItem | undefined {
59
+ let item = menu.find((item) => item.id === id);
60
+ if (!item) {
61
+ for (let i = 0; i < menu.length; i++) {
62
+ const element = menu[i];
63
+ if (element.children) {
64
+ item = getItem(element.children, id);
65
+ if (item) {
66
+ return item;
67
+ }
68
+ }
69
+ }
70
+ }
71
+ return item;
72
+ }
73
+
74
+ function getGroup(groups: MenuGroup[], resource: ResourceProps, permissions: MenuPermissions): MenuGroup | undefined {
75
+ let group = groups.find(
76
+ (g) =>
77
+ ['group', 'collapse'].indexOf(g.type) !== -1 &&
78
+ isInGroup(g, resource) /* && hasPermission(resource, permissions)*/
79
+ );
80
+ if (!group) {
81
+ for (let i = 0; i < groups.length; i++) {
82
+ const element = groups[i];
83
+ if (element.children) {
84
+ group = getGroup(element.children, resource, permissions);
85
+ if (group) {
86
+ return group;
87
+ }
88
+ }
89
+ }
90
+ }
91
+ return group;
92
+ }
93
+
94
+ function getGroupById(groups: MenuGroup[], id: string): MenuGroup | undefined {
95
+ let group = groups.find((g) => g.id === id);
96
+ if (!group) {
97
+ for (let i = 0; i < groups.length; i++) {
98
+ const element = groups[i];
99
+ if (element.children) {
100
+ group = getGroupById(element.children, id);
101
+ if (group) {
102
+ return group;
103
+ }
104
+ }
105
+ }
106
+ }
107
+ return group;
108
+ }
109
+ function filterNotEmpty(group: MenuGroup): boolean {
110
+ if (!group) {
111
+ return false;
112
+ }
113
+ if (group.type === 'item') {
114
+ return true;
115
+ }
116
+ if (group.children) {
117
+ group.children = group.children.filter(filterNotEmpty);
118
+ }
119
+ const match = group.children && group.children.length > 0;
120
+ return match as boolean;
121
+ }
122
+
123
+ function mapParent(group: MenuGroup): MenuGroup {
124
+ if (group.children) {
125
+ group.children.forEach((child: MenuGroup) => {
126
+ child.parent = group;
127
+ mapParent(child);
128
+ });
129
+ }
130
+ return group;
131
+ }
132
+
133
+ function build(
134
+ userMenu: MenuItem[],
135
+ resources: ResourceDefinitions<any>,
136
+ permissions: MenuPermissions,
137
+ translate: Translate,
138
+ roles: string[]
139
+ ): MenuGroup[] {
140
+ function translateRecursive(group: MenuGroup) {
141
+ group.title = translate(group.title, { _: group.title });
142
+
143
+ if (group.children) {
144
+ group.children.forEach((child) => translateRecursive(child));
145
+ }
146
+ return group;
147
+ }
148
+ const resourceNames = Object.keys(resources);
149
+
150
+ function removeNotFoundResources(group: MenuGroup, resources: string[]): MenuGroup {
151
+ if (group.children) {
152
+ group.children = group.children.filter((child) => {
153
+ if (child.resource === false) {
154
+ const childRoles = child.roles || [];
155
+ if (childRoles.length === 0 || childRoles.some((role) => roles.includes(role))) {
156
+ return true;
157
+ }
158
+ return false;
159
+ }
160
+ if (child.type === 'item') {
161
+ return resources.includes(child.id);
162
+ }
163
+ removeNotFoundResources(child, resources);
164
+ return child.children && child.children.length > 0;
165
+ });
166
+ }
167
+ return group;
168
+ }
169
+
170
+ const groupsA = _.cloneDeep(userMenu)
171
+ .map((group) => ({
172
+ children: [],
173
+ ...group,
174
+ type: group.type || 'group'
175
+ }))
176
+ .map(translateRecursive)
177
+ .map((group) => removeNotFoundResources(group, resourceNames));
178
+
179
+ const groupsB = Object.values(resources)
180
+ // Detect group of each configured ra resource.
181
+ .map((resource) => resource.options?.group || 'admin')
182
+ // Generate unique list of groups (because a resource can be configured with the same group of another resource)
183
+ .filter((group, index, self) => self.indexOf(group) === index)
184
+ // Remove from the list groups already defined by the user (Applica developer)
185
+ .filter((group) => group !== undefined && getGroupById(userMenu, group) === null)
186
+ .map((group) => ({
187
+ id: group,
188
+ title: translate(`ra.menu.group.${group}`),
189
+ type: 'group',
190
+ icon: AntDesignOutlined,
191
+ children: []
192
+ }));
193
+
194
+ const groups = [...groupsA, ...groupsB] as MenuGroup[];
195
+
196
+ Object.values(resources).forEach((resource: ResourceProps) => {
197
+ const resourceGroup = getGroup(groups, resource, permissions);
198
+ const resourceMenu = resourceGroup?.children?.find((c) => c.id === resource.name);
199
+ const resourceExists = resourceGroup?.children?.some((c) => c.id === resource.name);
200
+ const resourceRoles = resourceMenu?.roles || resource.options?.roles || [];
201
+ const hasRoles =
202
+ !resourceRoles || resourceRoles.length === 0 || resourceRoles.some((role: string) => roles.includes(role));
203
+ const hasPerms = hasPermission(resource, permissions);
204
+ if (!hasPerms || !!resource.list || !hasRoles) {
205
+ if (resourceExists && !!resourceGroup && !!resourceGroup.children && resourceGroup?.children?.length > 0) {
206
+ resourceGroup.children = resourceGroup.children.filter((c) => c.id !== resource.name);
207
+ }
208
+ return;
209
+ }
210
+ if (resourceGroup) {
211
+ if (!resourceGroup.children) {
212
+ resourceGroup.children = [];
213
+ }
214
+ if (resourceExists) {
215
+ return;
216
+ }
217
+ }
218
+ });
219
+
220
+ return groups.filter(filterNotEmpty).map(mapParent);
221
+ }
222
+
223
+ type MenuProviderContextProps = {
224
+ openItem: string[];
225
+ openComponent: string;
226
+ selectedID: string | null;
227
+ drawerOpen: boolean;
228
+ error: any;
229
+ menu: MenuItem[];
230
+ activeItem: (openItem: string[]) => void;
231
+ openDrawer: (drawerOpen: boolean) => void;
232
+ activeID: (selectedID: string | null) => void;
233
+ hasError: (error: any) => void;
234
+ setMenu: (menu: MenuItem[]) => void;
235
+ };
236
+
237
+ function notImplemented() {
238
+ throw new Error('Not implemented');
239
+ }
240
+
241
+ const initialState: MenuProviderContextProps = {
242
+ openItem: [],
243
+ openComponent: 'buttons',
244
+ selectedID: null,
245
+ drawerOpen: false,
246
+ error: null,
247
+ menu: [],
248
+ activeItem: notImplemented,
249
+ openDrawer: notImplemented,
250
+ activeID: notImplemented,
251
+ hasError: notImplemented,
252
+ setMenu: notImplemented
253
+ };
254
+
255
+ type MenuProviderProps = {
256
+ menu: MenuItem[];
257
+ children: React.ReactNode | React.ReactNode[];
258
+ };
259
+ const MenuContext = createContext<MenuProviderContextProps>(initialState);
260
+
261
+ function MenuConfigProvider({ menu, children }: MenuProviderProps): JSX.Element {
262
+ const [menuConfig, setMenuConfig] = useState<MenuProviderContextProps>({ ...initialState, menu }) as any;
263
+ function setMenu(menu: MenuItem[]) {
264
+ setMenuConfig((menuConfig: MenuProviderContextProps) => ({ ...menuConfig, menu }));
265
+ }
266
+ function activeItem(openItem: string) {
267
+ setMenuConfig((menuConfig: MenuProviderContextProps) => ({ ...menuConfig, openItem }));
268
+ }
269
+ function activeID(selectedID: string) {
270
+ setMenuConfig((menuConfig: MenuProviderContextProps) => ({ ...menuConfig, selectedID }));
271
+ }
272
+ function openDrawer(drawerOpen: boolean) {
273
+ setMenuConfig((menuConfig: MenuProviderContextProps) => ({ ...menuConfig, drawerOpen }));
274
+ }
275
+ function hasError(error: any) {
276
+ setMenuConfig((menuConfig: MenuProviderContextProps) => ({ ...menuConfig, error }));
277
+ }
278
+
279
+ useEffect(() => {
280
+ setMenu(menu);
281
+ }, [menu]);
282
+
283
+ return (
284
+ <MenuContext.Provider
285
+ value={{
286
+ ...menuConfig,
287
+ setMenu,
288
+ activeItem,
289
+ openDrawer,
290
+ activeID,
291
+ hasError
292
+ }}
293
+ >
294
+ {children}
295
+ </MenuContext.Provider>
296
+ );
297
+ }
298
+ function useMenuContext(): MenuProviderContextProps {
299
+ return useContext(MenuContext);
300
+ }
301
+
302
+ type UseMenuProps = {
303
+ menu: MenuGroup[] | null;
304
+ isLoading: boolean;
305
+ getItem: (id: string) => MenuItem | undefined;
306
+ findInMenu: (menu: MenuGroup[], id: string) => MenuItem | undefined;
307
+ };
308
+ function useMenu(): UseMenuProps {
309
+ const resources = useResourceDefinitions();
310
+ const { isLoading: loadingIdentity, data: identity } = useGetIdentity();
311
+ const isAuthenticated = !!identity && !!identity.id;
312
+
313
+ const { permissions } = usePermissions(isAuthenticated);
314
+ const { menu: userMenu } = useMenuContext();
315
+ const translate = useTranslate();
316
+ const menu = useMemo(() => {
317
+ if (loadingIdentity || !identity) {
318
+ return null;
319
+ }
320
+ const roles = ((identity?.roles || []) as { id: string }[]).map((role) => role.id);
321
+ const groups = build(userMenu, resources, permissions, translate, roles);
322
+ return groups;
323
+ }, [loadingIdentity, identity, resources, permissions, translate, userMenu]);
324
+
325
+ const isLoading = useMemo(() => loadingIdentity, [loadingIdentity]);
326
+
327
+ function getMenuGroup(id: string): MenuGroup | undefined {
328
+ if (!menu) {
329
+ return undefined;
330
+ }
331
+ return getItem(menu, id);
332
+ }
333
+
334
+ return {
335
+ menu,
336
+ isLoading,
337
+ getItem: getMenuGroup,
338
+ findInMenu: isLoading ? () => undefined : getItem
339
+ };
340
+ }
341
+
342
+ function useBreadcrumbs() {
343
+ const translate = useTranslate();
344
+ const { isLoading, menu: _menu, findInMenu } = useMenu();
345
+ const { pathname } = useLocation();
346
+
347
+ return useMemo(() => {
348
+ const pathArgs = pathname.split('/').filter((x) => x);
349
+ const menu = _.cloneDeep(_menu);
350
+ let id = pathname;
351
+ let menuItem = findInMenu(menu!, pathname);
352
+ if (!menuItem) {
353
+ menuItem = findInMenu(menu!, pathArgs[pathArgs.length - 1]);
354
+ id = menuItem ? menuItem.id : id;
355
+ }
356
+ if (!menuItem) {
357
+ for (let i = pathArgs.length; i >= 0; i--) {
358
+ const path = pathArgs.slice(0, i).join('/');
359
+ menuItem = findInMenu(menu!, path);
360
+ if (menuItem) {
361
+ id = menuItem.id;
362
+ break;
363
+ }
364
+ }
365
+ }
366
+
367
+ const urlParts = menuItem?.url?.split('/');
368
+ const urlPartsLength = urlParts?.length || 0;
369
+ if (pathArgs.length >= urlPartsLength) {
370
+ const data = pathArgs[pathArgs.length - 1];
371
+ if (menuItem) {
372
+ const context = data === 'create' || pathname === menuItem.url ? 'create' : 'edit';
373
+ const title = `resources.${id}.breadcrumbs.${context}`;
374
+ const child: MenuBreadcrumb = {
375
+ id: `${id}-${context}`,
376
+ type: 'item',
377
+ title: translate(title, { _: translate(title, { _: title }) }),
378
+ url: pathname,
379
+ breadcrumbs: true,
380
+ parent: menuItem
381
+ };
382
+ menuItem.type = 'collapse';
383
+ menuItem.breadcrumbs = true;
384
+ menuItem.children = menuItem.children || [];
385
+ menuItem.children.push(child);
386
+ menuItem = child;
387
+ }
388
+ }
389
+
390
+ let breadcrumbs: MenuBreadcrumb[] = [];
391
+ if (menuItem) {
392
+ let current: MenuBreadcrumb = { ...menuItem, last: true };
393
+ while (current) {
394
+ breadcrumbs.push(current);
395
+ current = current.parent as MenuBreadcrumb;
396
+ }
397
+ breadcrumbs = breadcrumbs.reverse();
398
+ }
399
+
400
+ return { isLoading, navigation: { items: menu }, breadcrumbs };
401
+ }, [isLoading, pathname, _menu, findInMenu, translate]);
402
+ }
403
+
404
+ function useMenuConfig(): MenuProviderContextProps {
405
+ return useMenuContext();
406
+ }
407
+ export type {
408
+ MenuBreadcrumb,
409
+ MenuGroup,
410
+ MenuItem,
411
+ MenuPermissions,
412
+ MenuProviderContextProps,
413
+ MenuProviderProps,
414
+ UseMenuProps
415
+ };
416
+ export { MenuConfigProvider, useBreadcrumbs, useMenu, useMenuConfig, useMenuContext };