@firecms/core 3.0.0-beta.1 → 3.0.0-beta.11

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 (387) hide show
  1. package/README.md +6 -7
  2. package/dist/app/AppBar.d.ts +12 -0
  3. package/dist/app/Drawer.d.ts +16 -0
  4. package/dist/app/Scaffold.d.ts +30 -0
  5. package/dist/app/index.d.ts +4 -0
  6. package/dist/app/useApp.d.ts +16 -0
  7. package/dist/components/ArrayContainer.d.ts +19 -8
  8. package/dist/components/CircularProgressCenter.d.ts +1 -1
  9. package/dist/components/ClearFilterSortButton.d.ts +5 -0
  10. package/dist/components/{DeleteConfirmationDialog.d.ts → ConfirmationDialog.d.ts} +1 -1
  11. package/dist/components/EntityCollectionTable/EntityCollectionRowActions.d.ts +13 -18
  12. package/dist/components/EntityCollectionTable/EntityCollectionTable.d.ts +2 -5
  13. package/dist/components/EntityCollectionTable/EntityCollectionTableProps.d.ts +9 -15
  14. package/dist/components/EntityCollectionTable/PropertyTableCell.d.ts +3 -2
  15. package/dist/components/EntityCollectionTable/column_utils.d.ts +1 -2
  16. package/dist/components/EntityCollectionTable/fields/TableReferenceField.d.ts +3 -1
  17. package/dist/components/EntityCollectionTable/index.d.ts +2 -4
  18. package/dist/components/EntityCollectionTable/internal/CollectionTableToolbar.d.ts +1 -4
  19. package/dist/components/EntityCollectionTable/internal/EntityTableCell.d.ts +2 -2
  20. package/dist/components/EntityCollectionTable/internal/popup_field/PopupFormField.d.ts +8 -5
  21. package/dist/components/EntityCollectionView/EntityCollectionView.d.ts +13 -4
  22. package/dist/components/EntityCollectionView/EntityCollectionViewStartActions.d.ts +11 -0
  23. package/dist/components/EntityCollectionView/useSelectionController.d.ts +2 -0
  24. package/dist/components/EntityCollectionView/utils.d.ts +3 -0
  25. package/dist/components/EntityPreview.d.ts +26 -7
  26. package/dist/components/EntityView.d.ts +11 -0
  27. package/dist/components/ErrorView.d.ts +1 -1
  28. package/dist/components/FieldCaption.d.ts +5 -0
  29. package/dist/components/HomePage/DefaultHomePage.d.ts +1 -1
  30. package/dist/components/HomePage/NavigationCard.d.ts +8 -0
  31. package/dist/components/HomePage/{NavigationCollectionCard.d.ts → NavigationCardBinding.d.ts} +3 -3
  32. package/dist/components/HomePage/SmallNavigationCard.d.ts +6 -0
  33. package/dist/components/HomePage/index.d.ts +3 -1
  34. package/dist/components/{FieldConfigBadge.d.ts → PropertyConfigBadge.d.ts} +2 -1
  35. package/dist/components/PropertyIdCopyTooltip.d.ts +8 -0
  36. package/dist/components/{ReferenceSelectionInner.d.ts → ReferenceTable/ReferenceSelectionTable.d.ts} +2 -2
  37. package/dist/components/ReferenceWidget.d.ts +6 -4
  38. package/dist/components/{EntityCollectionTable/SimpleEntityCollectionTable.d.ts → SelectableTable/SelectableTable.d.ts} +8 -28
  39. package/dist/components/SelectableTable/SelectableTableContext.d.ts +4 -0
  40. package/dist/components/{EntityCollectionTable → SelectableTable}/filters/ReferenceFilterField.d.ts +2 -1
  41. package/dist/components/VirtualTable/VirtualTableProps.d.ts +16 -13
  42. package/dist/components/VirtualTable/types.d.ts +3 -3
  43. package/dist/components/{EntityCollectionTable/internal → common}/default_entity_actions.d.ts +1 -1
  44. package/dist/components/common/index.d.ts +6 -0
  45. package/dist/components/common/table_height.d.ts +5 -0
  46. package/dist/components/{EntityCollectionTable → common}/types.d.ts +11 -6
  47. package/dist/components/{EntityCollectionView → common}/useColumnsIds.d.ts +2 -1
  48. package/dist/components/{EntityCollectionTable → common}/useDataSourceEntityCollectionTableController.d.ts +5 -2
  49. package/dist/components/common/useTableSearchHelper.d.ts +12 -0
  50. package/dist/components/index.d.ts +14 -8
  51. package/dist/contexts/AuthControllerContext.d.ts +1 -1
  52. package/dist/{components/FireCMSAppBar.d.ts → core/DefaultAppBar.d.ts} +6 -9
  53. package/dist/core/DefaultDrawer.d.ts +19 -0
  54. package/dist/core/DrawerNavigationItem.d.ts +10 -0
  55. package/dist/core/EntityEditView.d.ts +36 -0
  56. package/dist/core/FireCMS.d.ts +2 -2
  57. package/dist/core/NavigationRoutes.d.ts +3 -3
  58. package/dist/core/index.d.ts +3 -6
  59. package/dist/form/PropertyFieldBinding.d.ts +1 -1
  60. package/dist/form/components/CustomIdField.d.ts +2 -1
  61. package/dist/form/components/ErrorFocus.d.ts +1 -1
  62. package/dist/form/components/FieldHelperText.d.ts +3 -3
  63. package/dist/{components → form/components}/LabelWithIcon.d.ts +1 -1
  64. package/dist/form/components/LabelWithIconAndTooltip.d.ts +15 -0
  65. package/dist/form/components/StorageItemPreview.d.ts +4 -3
  66. package/dist/form/components/StorageUploadProgress.d.ts +1 -1
  67. package/dist/form/components/index.d.ts +2 -2
  68. package/dist/form/field_bindings/ArrayCustomShapedFieldBinding.d.ts +1 -1
  69. package/dist/form/field_bindings/ArrayOfReferencesFieldBinding.d.ts +1 -1
  70. package/dist/form/field_bindings/BlockFieldBinding.d.ts +1 -1
  71. package/dist/form/field_bindings/KeyValueFieldBinding.d.ts +1 -1
  72. package/dist/form/field_bindings/MapFieldBinding.d.ts +1 -1
  73. package/dist/form/field_bindings/MarkdownEditorFieldBinding.d.ts +11 -0
  74. package/dist/form/field_bindings/{MultiSelectBinding.d.ts → MultiSelectFieldBinding.d.ts} +1 -1
  75. package/dist/form/field_bindings/ReadOnlyFieldBinding.d.ts +1 -1
  76. package/dist/form/field_bindings/ReferenceFieldBinding.d.ts +2 -2
  77. package/dist/form/field_bindings/RepeatFieldBinding.d.ts +1 -1
  78. package/dist/form/field_bindings/SelectFieldBinding.d.ts +1 -1
  79. package/dist/form/field_bindings/StorageUploadFieldBinding.d.ts +3 -4
  80. package/dist/form/field_bindings/SwitchFieldBinding.d.ts +1 -2
  81. package/dist/form/field_bindings/TextFieldBinding.d.ts +2 -2
  82. package/dist/form/index.d.ts +4 -5
  83. package/dist/form/useClearRestoreValue.d.ts +2 -2
  84. package/dist/form/validation.d.ts +1 -1
  85. package/dist/hooks/data/delete.d.ts +4 -4
  86. package/dist/hooks/data/save.d.ts +4 -5
  87. package/dist/hooks/data/useCollectionFetch.d.ts +1 -1
  88. package/dist/hooks/data/useDataSource.d.ts +2 -2
  89. package/dist/hooks/data/useEntityFetch.d.ts +3 -3
  90. package/dist/hooks/index.d.ts +5 -1
  91. package/dist/hooks/useAuthController.d.ts +1 -1
  92. package/dist/{core → hooks}/useBuildModeController.d.ts +1 -1
  93. package/dist/hooks/useBuildNavigationController.d.ts +23 -0
  94. package/dist/hooks/useFireCMSContext.d.ts +1 -1
  95. package/dist/hooks/useProjectLog.d.ts +14 -0
  96. package/dist/hooks/useResolvedNavigationFrom.d.ts +3 -3
  97. package/dist/hooks/useSnackbarController.d.ts +1 -0
  98. package/dist/hooks/useStorageSource.d.ts +2 -2
  99. package/dist/hooks/useValidateAuthenticator.d.ts +21 -0
  100. package/dist/index.d.ts +1 -0
  101. package/dist/index.es.js +20246 -13863
  102. package/dist/index.es.js.map +1 -1
  103. package/dist/index.umd.js +22772 -588
  104. package/dist/index.umd.js.map +1 -1
  105. package/dist/internal/useBuildDataSource.d.ts +1 -12
  106. package/dist/preview/PropertyPreview.d.ts +1 -1
  107. package/dist/preview/PropertyPreviewProps.d.ts +7 -5
  108. package/dist/preview/components/BooleanPreview.d.ts +5 -1
  109. package/dist/preview/components/EnumValuesChip.d.ts +1 -1
  110. package/dist/preview/components/ReferencePreview.d.ts +4 -9
  111. package/dist/preview/components/StorageThumbnail.d.ts +2 -1
  112. package/dist/preview/components/UrlComponentPreview.d.ts +2 -1
  113. package/dist/preview/util.d.ts +3 -3
  114. package/dist/types/analytics.d.ts +1 -1
  115. package/dist/types/auth.d.ts +37 -3
  116. package/dist/types/collections.d.ts +68 -20
  117. package/dist/types/datasource.d.ts +55 -39
  118. package/dist/types/entities.d.ts +7 -1
  119. package/dist/types/entity_actions.d.ts +18 -4
  120. package/dist/types/entity_callbacks.d.ts +17 -17
  121. package/dist/types/entity_overrides.d.ts +6 -0
  122. package/dist/types/export_import.d.ts +4 -4
  123. package/dist/types/fields.d.ts +63 -42
  124. package/dist/types/firecms.d.ts +10 -25
  125. package/dist/types/firecms_context.d.ts +1 -1
  126. package/dist/types/index.d.ts +2 -1
  127. package/dist/types/navigation.d.ts +18 -16
  128. package/dist/types/permissions.d.ts +8 -4
  129. package/dist/types/plugins.d.ts +39 -39
  130. package/dist/types/properties.d.ts +36 -23
  131. package/dist/types/property_config.d.ts +2 -4
  132. package/dist/types/roles.d.ts +31 -0
  133. package/dist/types/side_dialogs_controller.d.ts +10 -0
  134. package/dist/types/storage.d.ts +86 -3
  135. package/dist/types/user.d.ts +6 -0
  136. package/dist/util/builders.d.ts +2 -2
  137. package/dist/util/collections.d.ts +9 -1
  138. package/dist/util/entities.d.ts +3 -3
  139. package/dist/util/icon_list.d.ts +5 -1
  140. package/dist/util/icon_synonyms.d.ts +1 -98
  141. package/dist/util/icons.d.ts +13 -4
  142. package/dist/util/index.d.ts +3 -1
  143. package/dist/util/navigation_utils.d.ts +2 -2
  144. package/dist/util/objects.d.ts +2 -1
  145. package/dist/util/permissions.d.ts +4 -4
  146. package/dist/util/plurals.d.ts +0 -2
  147. package/dist/util/property_utils.d.ts +3 -3
  148. package/dist/util/references.d.ts +4 -2
  149. package/dist/util/resolutions.d.ts +31 -17
  150. package/dist/util/storage.d.ts +23 -2
  151. package/dist/util/strings.d.ts +1 -1
  152. package/dist/util/useDebouncedCallback.d.ts +1 -0
  153. package/dist/util/useStorageUploadController.d.ts +3 -3
  154. package/dist/util/useTraceUpdate.d.ts +1 -0
  155. package/package.json +70 -47
  156. package/src/app/AppBar.tsx +18 -0
  157. package/src/app/Drawer.tsx +24 -0
  158. package/src/app/Scaffold.tsx +243 -0
  159. package/src/app/index.ts +4 -0
  160. package/src/app/useApp.tsx +32 -0
  161. package/src/components/ArrayContainer.tsx +122 -90
  162. package/src/components/CircularProgressCenter.tsx +2 -2
  163. package/src/components/ClearFilterSortButton.tsx +41 -0
  164. package/src/components/{DeleteConfirmationDialog.tsx → ConfirmationDialog.tsx} +3 -3
  165. package/src/components/DeleteEntityDialog.tsx +13 -22
  166. package/src/components/EntityCollectionTable/EntityCollectionRowActions.tsx +51 -59
  167. package/src/components/EntityCollectionTable/EntityCollectionTable.tsx +258 -453
  168. package/src/components/EntityCollectionTable/EntityCollectionTableProps.tsx +13 -14
  169. package/src/components/EntityCollectionTable/PropertyTableCell.tsx +60 -52
  170. package/src/components/EntityCollectionTable/column_utils.tsx +4 -4
  171. package/src/components/EntityCollectionTable/fields/TableReferenceField.tsx +40 -33
  172. package/src/components/EntityCollectionTable/fields/TableStorageUpload.tsx +22 -20
  173. package/src/components/EntityCollectionTable/index.tsx +1 -9
  174. package/src/components/EntityCollectionTable/internal/CollectionTableToolbar.tsx +44 -46
  175. package/src/components/EntityCollectionTable/internal/EntityTableCell.tsx +36 -34
  176. package/src/components/EntityCollectionTable/internal/EntityTableCellActions.tsx +20 -8
  177. package/src/components/EntityCollectionTable/internal/popup_field/PopupFormField.tsx +191 -178
  178. package/src/components/EntityCollectionView/EntityCollectionView.tsx +187 -175
  179. package/src/components/EntityCollectionView/EntityCollectionViewActions.tsx +5 -6
  180. package/src/components/EntityCollectionView/EntityCollectionViewStartActions.tsx +68 -0
  181. package/src/components/EntityCollectionView/useSelectionController.tsx +43 -0
  182. package/src/components/EntityCollectionView/utils.ts +19 -0
  183. package/src/components/EntityPreview.tsx +218 -72
  184. package/src/components/EntityView.tsx +84 -0
  185. package/src/components/ErrorView.tsx +4 -4
  186. package/src/components/FieldCaption.tsx +14 -0
  187. package/src/components/HomePage/DefaultHomePage.tsx +39 -28
  188. package/src/components/HomePage/FavouritesView.tsx +6 -11
  189. package/src/components/HomePage/NavigationCard.tsx +69 -0
  190. package/src/components/HomePage/NavigationCardBinding.tsx +111 -0
  191. package/src/components/HomePage/NavigationGroup.tsx +2 -2
  192. package/src/components/HomePage/SmallNavigationCard.tsx +44 -0
  193. package/src/components/HomePage/index.tsx +3 -1
  194. package/src/components/PropertyConfigBadge.tsx +23 -0
  195. package/src/components/PropertyIdCopyTooltip.tsx +48 -0
  196. package/src/components/{ReferenceSelectionInner.tsx → ReferenceTable/ReferenceSelectionTable.tsx} +38 -24
  197. package/src/components/ReferenceWidget.tsx +26 -16
  198. package/src/components/SearchIconsView.tsx +10 -7
  199. package/src/components/{EntityCollectionTable/SimpleEntityCollectionTable.tsx → SelectableTable/SelectableTable.tsx} +46 -84
  200. package/src/components/SelectableTable/SelectableTableContext.tsx +6 -0
  201. package/src/components/{EntityCollectionTable → SelectableTable}/filters/BooleanFilterField.tsx +2 -3
  202. package/src/components/{EntityCollectionTable → SelectableTable}/filters/DateTimeFilterField.tsx +25 -8
  203. package/src/components/{EntityCollectionTable → SelectableTable}/filters/ReferenceFilterField.tsx +40 -24
  204. package/src/components/{EntityCollectionTable → SelectableTable}/filters/StringNumberFilterField.tsx +92 -24
  205. package/src/components/VirtualTable/VirtualTable.tsx +77 -46
  206. package/src/components/VirtualTable/VirtualTableCell.tsx +1 -9
  207. package/src/components/VirtualTable/VirtualTableHeader.tsx +19 -13
  208. package/src/components/VirtualTable/VirtualTableHeaderRow.tsx +2 -2
  209. package/src/components/VirtualTable/VirtualTableProps.tsx +19 -15
  210. package/src/components/VirtualTable/VirtualTableRow.tsx +5 -6
  211. package/src/components/VirtualTable/fields/VirtualTableDateField.tsx +5 -5
  212. package/src/components/VirtualTable/fields/VirtualTableInput.tsx +4 -3
  213. package/src/components/VirtualTable/fields/VirtualTableNumberInput.tsx +4 -3
  214. package/src/components/VirtualTable/fields/VirtualTableSelect.tsx +16 -28
  215. package/src/components/VirtualTable/types.tsx +2 -3
  216. package/src/components/{EntityCollectionTable/internal → common}/default_entity_actions.tsx +17 -9
  217. package/src/components/common/index.ts +6 -0
  218. package/src/components/{VirtualTable/common.tsx → common/table_height.tsx} +5 -2
  219. package/src/components/{EntityCollectionTable → common}/types.tsx +9 -6
  220. package/src/components/{EntityCollectionView → common}/useColumnsIds.tsx +23 -2
  221. package/src/components/{EntityCollectionTable → common}/useDataSourceEntityCollectionTableController.tsx +27 -16
  222. package/src/components/common/useTableSearchHelper.ts +88 -0
  223. package/src/components/index.tsx +15 -8
  224. package/src/contexts/AuthControllerContext.tsx +1 -1
  225. package/src/contexts/DialogsProvider.tsx +2 -2
  226. package/src/contexts/SnackbarProvider.tsx +2 -0
  227. package/src/core/DefaultAppBar.tsx +177 -0
  228. package/src/core/DefaultDrawer.tsx +185 -0
  229. package/src/core/DrawerNavigationItem.tsx +66 -0
  230. package/src/core/EntityEditView.tsx +1125 -0
  231. package/src/core/EntitySidePanel.tsx +9 -8
  232. package/src/core/FireCMS.tsx +71 -63
  233. package/src/core/NavigationRoutes.tsx +25 -17
  234. package/src/core/SideDialogs.tsx +2 -1
  235. package/src/core/field_configs.tsx +22 -23
  236. package/src/core/index.tsx +3 -6
  237. package/src/form/PropertyFieldBinding.tsx +79 -45
  238. package/src/form/components/CustomIdField.tsx +53 -36
  239. package/src/form/components/ErrorFocus.tsx +3 -3
  240. package/src/form/components/FieldHelperText.tsx +4 -4
  241. package/src/form/components/LabelWithIcon.tsx +41 -0
  242. package/src/form/components/LabelWithIconAndTooltip.tsx +28 -0
  243. package/src/form/components/StorageItemPreview.tsx +23 -11
  244. package/src/form/components/StorageUploadProgress.tsx +8 -8
  245. package/src/form/components/index.tsx +2 -2
  246. package/src/form/field_bindings/ArrayCustomShapedFieldBinding.tsx +30 -19
  247. package/src/form/field_bindings/ArrayOfReferencesFieldBinding.tsx +52 -46
  248. package/src/form/field_bindings/BlockFieldBinding.tsx +67 -47
  249. package/src/form/field_bindings/DateTimeFieldBinding.tsx +20 -17
  250. package/src/form/field_bindings/KeyValueFieldBinding.tsx +76 -67
  251. package/src/form/field_bindings/MapFieldBinding.tsx +81 -60
  252. package/src/form/field_bindings/MarkdownEditorFieldBinding.tsx +150 -0
  253. package/src/form/field_bindings/{MultiSelectBinding.tsx → MultiSelectFieldBinding.tsx} +26 -22
  254. package/src/form/field_bindings/ReadOnlyFieldBinding.tsx +12 -18
  255. package/src/form/field_bindings/ReferenceFieldBinding.tsx +46 -34
  256. package/src/form/field_bindings/RepeatFieldBinding.tsx +55 -35
  257. package/src/form/field_bindings/SelectFieldBinding.tsx +24 -17
  258. package/src/form/field_bindings/StorageUploadFieldBinding.tsx +42 -43
  259. package/src/form/field_bindings/SwitchFieldBinding.tsx +30 -27
  260. package/src/form/field_bindings/TextFieldBinding.tsx +34 -30
  261. package/src/form/index.tsx +5 -9
  262. package/src/form/useClearRestoreValue.tsx +2 -2
  263. package/src/form/validation.ts +4 -21
  264. package/src/hooks/data/delete.ts +7 -6
  265. package/src/hooks/data/save.ts +12 -8
  266. package/src/hooks/data/useCollectionFetch.tsx +3 -3
  267. package/src/hooks/data/useDataSource.tsx +15 -2
  268. package/src/hooks/data/useEntityFetch.tsx +6 -6
  269. package/src/hooks/index.tsx +7 -1
  270. package/src/hooks/useAuthController.tsx +1 -1
  271. package/src/{core → hooks}/useBuildLocalConfigurationPersistence.tsx +8 -10
  272. package/src/{core → hooks}/useBuildModeController.tsx +12 -6
  273. package/src/{internal → hooks}/useBuildNavigationController.tsx +245 -101
  274. package/src/hooks/useFireCMSContext.tsx +53 -5
  275. package/src/hooks/useLargeLayout.tsx +10 -7
  276. package/src/hooks/useProjectLog.tsx +63 -0
  277. package/src/hooks/useReferenceDialog.tsx +3 -3
  278. package/src/hooks/useResolvedNavigationFrom.tsx +6 -6
  279. package/src/hooks/useSnackbarController.tsx +1 -2
  280. package/src/hooks/useStorageSource.tsx +7 -2
  281. package/src/hooks/useValidateAuthenticator.tsx +115 -0
  282. package/src/index.ts +1 -0
  283. package/src/internal/useBuildDataSource.ts +80 -85
  284. package/src/internal/useBuildSideDialogsController.tsx +1 -0
  285. package/src/internal/useBuildSideEntityController.tsx +103 -23
  286. package/src/internal/useUnsavedChangesDialog.tsx +5 -3
  287. package/src/preview/PropertyPreview.tsx +15 -22
  288. package/src/preview/PropertyPreviewProps.tsx +6 -10
  289. package/src/preview/components/BooleanPreview.tsx +19 -4
  290. package/src/preview/components/EmptyValue.tsx +1 -1
  291. package/src/preview/components/EnumValuesChip.tsx +2 -2
  292. package/src/preview/components/ImagePreview.tsx +25 -36
  293. package/src/preview/components/ReferencePreview.tsx +73 -176
  294. package/src/preview/components/StorageThumbnail.tsx +5 -1
  295. package/src/preview/components/UrlComponentPreview.tsx +44 -11
  296. package/src/preview/property_previews/ArrayOfMapsPreview.tsx +2 -3
  297. package/src/preview/property_previews/ArrayOfReferencesPreview.tsx +4 -3
  298. package/src/preview/property_previews/ArrayOfStorageComponentsPreview.tsx +2 -3
  299. package/src/preview/property_previews/ArrayOfStringsPreview.tsx +1 -2
  300. package/src/preview/property_previews/ArrayOneOfPreview.tsx +4 -5
  301. package/src/preview/property_previews/ArrayPropertyPreview.tsx +4 -5
  302. package/src/preview/property_previews/MapPropertyPreview.tsx +9 -9
  303. package/src/preview/property_previews/SkeletonPropertyComponent.tsx +12 -12
  304. package/src/preview/property_previews/StringPropertyPreview.tsx +8 -7
  305. package/src/preview/util.ts +10 -10
  306. package/src/types/analytics.ts +1 -0
  307. package/src/types/auth.tsx +48 -3
  308. package/src/types/collections.ts +77 -20
  309. package/src/types/customization_controller.tsx +0 -1
  310. package/src/types/datasource.ts +64 -47
  311. package/src/types/entities.ts +15 -1
  312. package/src/types/entity_actions.tsx +21 -4
  313. package/src/types/entity_callbacks.ts +20 -19
  314. package/src/types/entity_overrides.tsx +7 -0
  315. package/src/types/export_import.ts +4 -4
  316. package/src/types/fields.tsx +69 -45
  317. package/src/types/firecms.tsx +11 -28
  318. package/src/types/firecms_context.tsx +1 -1
  319. package/src/types/index.ts +2 -1
  320. package/src/types/navigation.ts +20 -19
  321. package/src/types/permissions.ts +10 -5
  322. package/src/types/plugins.tsx +46 -48
  323. package/src/types/properties.ts +42 -24
  324. package/src/types/property_config.tsx +2 -4
  325. package/src/types/roles.ts +41 -0
  326. package/src/types/side_dialogs_controller.tsx +13 -0
  327. package/src/types/side_entity_controller.tsx +1 -0
  328. package/src/types/storage.ts +94 -3
  329. package/src/types/user.ts +9 -0
  330. package/src/util/builders.ts +6 -6
  331. package/src/util/collections.ts +22 -0
  332. package/src/util/entities.ts +9 -6
  333. package/src/util/enums.ts +1 -1
  334. package/src/util/icon_list.ts +16 -10
  335. package/src/util/icon_synonyms.ts +3 -100
  336. package/src/util/icons.tsx +26 -8
  337. package/src/util/index.ts +3 -1
  338. package/src/util/make_properties_editable.ts +13 -5
  339. package/src/util/navigation_utils.ts +6 -6
  340. package/src/util/objects.ts +45 -28
  341. package/src/util/permissions.ts +20 -16
  342. package/src/util/plurals.ts +0 -2
  343. package/src/util/property_utils.tsx +11 -4
  344. package/src/util/references.ts +45 -5
  345. package/src/util/resolutions.ts +80 -47
  346. package/src/util/storage.ts +79 -21
  347. package/src/util/strings.ts +4 -3
  348. package/src/util/{useDebounce.ts → useDebouncedCallback.ts} +1 -1
  349. package/src/util/useStorageUploadController.tsx +34 -8
  350. package/src/util/useTraceUpdate.tsx +2 -1
  351. package/dist/components/VirtualTable/common.d.ts +0 -2
  352. package/dist/core/Drawer.d.ts +0 -23
  353. package/dist/core/Scaffold.d.ts +0 -52
  354. package/dist/form/EntityForm.d.ts +0 -75
  355. package/dist/form/components/FormikArrayContainer.d.ts +0 -18
  356. package/dist/form/components/SubmitListener.d.ts +0 -1
  357. package/dist/form/components/SwitchControl.d.ts +0 -8
  358. package/dist/form/field_bindings/MarkdownFieldBinding.d.ts +0 -9
  359. package/dist/hooks/useVerifyLicense.d.ts +0 -0
  360. package/dist/internal/EntityView.d.ts +0 -22
  361. package/dist/internal/useBuildCustomizationController.d.ts +0 -2
  362. package/dist/internal/useBuildNavigationController.d.ts +0 -14
  363. package/dist/internal/useLocaleConfig.d.ts +0 -1
  364. package/dist/types/appcheck.d.ts +0 -26
  365. package/dist/util/useDebounce.d.ts +0 -1
  366. package/src/components/FieldConfigBadge.tsx +0 -17
  367. package/src/components/FireCMSAppBar.tsx +0 -157
  368. package/src/components/HomePage/NavigationCollectionCard.tsx +0 -146
  369. package/src/components/LabelWithIcon.tsx +0 -33
  370. package/src/core/Drawer.tsx +0 -162
  371. package/src/core/Scaffold.tsx +0 -278
  372. package/src/form/EntityForm.tsx +0 -657
  373. package/src/form/components/FormikArrayContainer.tsx +0 -44
  374. package/src/form/components/SubmitListener.tsx +0 -32
  375. package/src/form/components/SwitchControl.tsx +0 -39
  376. package/src/form/field_bindings/MarkdownFieldBinding.tsx +0 -696
  377. package/src/hooks/useVerifyLicense.tsx +0 -1
  378. package/src/internal/EntityView.tsx +0 -578
  379. package/src/internal/useBuildCustomizationController.tsx +0 -5
  380. package/src/internal/useLocaleConfig.tsx +0 -18
  381. package/src/types/appcheck.ts +0 -29
  382. /package/dist/components/{EntityCollectionTable → SelectableTable}/filters/BooleanFilterField.d.ts +0 -0
  383. /package/dist/components/{EntityCollectionTable → SelectableTable}/filters/DateTimeFilterField.d.ts +0 -0
  384. /package/dist/components/{EntityCollectionTable → SelectableTable}/filters/StringNumberFilterField.d.ts +0 -0
  385. /package/dist/components/{EntityCollectionTable → common}/useDebouncedData.d.ts +0 -0
  386. /package/dist/{core → hooks}/useBuildLocalConfigurationPersistence.d.ts +0 -0
  387. /package/src/components/{EntityCollectionTable → common}/useDebouncedData.ts +0 -0
@@ -81,17 +81,17 @@ function renderMap<T extends Record<string, any>>(property: ResolvedMapProperty<
81
81
  return <></>;
82
82
 
83
83
  let mapPropertyKeys: string[];
84
- if (size === "medium") {
84
+ if (size === "large") {
85
85
  mapPropertyKeys = Object.keys(property.properties);
86
86
  } else {
87
87
  mapPropertyKeys = (property.previewProperties || Object.keys(property.properties)) as string[];
88
- if (size === "small")
88
+ if (size === "medium")
89
89
  mapPropertyKeys = mapPropertyKeys.slice(0, 3);
90
- else if (size === "tiny")
90
+ else if (size === "small")
91
91
  mapPropertyKeys = mapPropertyKeys.slice(0, 1);
92
92
  }
93
93
 
94
- if (size !== "medium")
94
+ if (size !== "large")
95
95
  return (
96
96
  <div
97
97
  className="w-full flex flex-col space-y-4"
@@ -101,7 +101,7 @@ function renderMap<T extends Record<string, any>>(property: ResolvedMapProperty<
101
101
  {property.properties && property.properties[key] &&
102
102
  <SkeletonPropertyComponent
103
103
  property={property.properties[key]}
104
- size={"small"}/>}
104
+ size={"medium"}/>}
105
105
  </div>
106
106
  ))}
107
107
  </div>
@@ -128,7 +128,7 @@ function renderMap<T extends Record<string, any>>(property: ResolvedMapProperty<
128
128
  {property.properties && property.properties[key] &&
129
129
  <SkeletonPropertyComponent
130
130
  property={property.properties[key]}
131
- size={"small"}/>}
131
+ size={"medium"}/>}
132
132
  </th>
133
133
  </tr>
134
134
  );
@@ -160,7 +160,7 @@ function renderArrayOfMaps<M extends Record<string, any>>(properties: ResolvedPr
160
160
  >
161
161
  <SkeletonPropertyComponent
162
162
  property={(properties)[key]}
163
- size={"small"}/>
163
+ size={"medium"}/>
164
164
  </th>
165
165
  )
166
166
  )}
@@ -210,7 +210,7 @@ function renderGenericArrayCell(
210
210
  <>
211
211
  <SkeletonPropertyComponent key={`i_${index}`}
212
212
  property={property}
213
- size={"small"}/>
213
+ size={"medium"}/>
214
214
  </>
215
215
  )}
216
216
  </div>
@@ -226,7 +226,7 @@ function renderUrlAudioComponent() {
226
226
 
227
227
  export function renderSkeletonImageThumbnail(size: PreviewSize) {
228
228
  // eslint-disable-next-line react-hooks/rules-of-hooks
229
- const imageSize = size === "tiny" ? 40 : size === "small" ? 100 : 200;
229
+ const imageSize = size === "small" ? 40 : size === "medium" ? 100 : 200;
230
230
  return (
231
231
  <Skeleton width={imageSize}
232
232
  height={imageSize}/>
@@ -236,8 +236,8 @@ export function renderSkeletonImageThumbnail(size: PreviewSize) {
236
236
  function renderUrlVideo(size: PreviewSize) {
237
237
 
238
238
  return (
239
- <Skeleton width={size !== "medium" ? 300 : 500}
240
- height={size !== "medium" ? 200 : 250}/>
239
+ <Skeleton width={size !== "large" ? 300 : 500}
240
+ height={size !== "large" ? 200 : 250}/>
241
241
  );
242
242
  }
243
243
 
@@ -245,7 +245,7 @@ function renderReference() {
245
245
  return <Skeleton width={200} height={100}/>;
246
246
  }
247
247
 
248
- function renderUrlComponent(property: ResolvedStringProperty, size: PreviewSize = "medium") {
248
+ function renderUrlComponent(property: ResolvedStringProperty, size: PreviewSize = "large") {
249
249
 
250
250
  if (typeof property.url === "boolean") {
251
251
  return <div style={{
@@ -6,7 +6,7 @@ import { PreviewType } from "../../types";
6
6
  import { UrlComponentPreview } from "../components/UrlComponentPreview";
7
7
  import { PropertyPreviewProps } from "../PropertyPreviewProps";
8
8
  import { ErrorBoundary } from "../../components";
9
- import { Chip, getColorSchemeForSeed } from "@firecms/ui";
9
+ import { Chip, cls, getColorSchemeForSeed } from "@firecms/ui";
10
10
 
11
11
  /**
12
12
  * @group Preview components
@@ -24,14 +24,14 @@ export function StringPropertyPreview({
24
24
  return <EnumValuesChip
25
25
  enumKey={enumKey}
26
26
  enumValues={resolvedProperty.enumValues}
27
- size={size !== "medium" ? "small" : "medium"}/>;
27
+ size={size}/>;
28
28
  } else if (property.previewAsTag) {
29
29
  const colorScheme = getColorSchemeForSeed(propertyKey ?? "");
30
30
  return (
31
31
  <ErrorBoundary>
32
32
  <Chip
33
33
  colorScheme={colorScheme}
34
- size={size !== "medium" ? "small" : "medium"}>
34
+ size={size}>
35
35
  {value}
36
36
  </Chip>
37
37
  </ErrorBoundary>);
@@ -45,15 +45,16 @@ export function StringPropertyPreview({
45
45
  if (!value) return <></>;
46
46
  const lines = value.split("\n");
47
47
  return value && value.includes("\n")
48
- ? <div className={"overflow-x-scroll"}>
48
+ ? <div className={cls("overflow-x-scroll", size === "small" ? "text-sm" : "")}>
49
49
  {lines.map((str, index) =>
50
50
  <React.Fragment key={`string_preview_${index}`}>
51
51
  <span>{str}</span>
52
52
  {index !== lines.length - 1 && <br/>}
53
53
  </React.Fragment>)}
54
54
  </div>
55
- : <>
56
- {value}
57
- </>;
55
+ : (size === "small"
56
+ ? <span className={"text-sm"}>{value}</span>
57
+ : <>{value}</>
58
+ );
58
59
  }
59
60
  }
@@ -1,17 +1,17 @@
1
1
  import { CollectionSize } from "../types";
2
2
  import { PreviewSize } from "./PropertyPreviewProps";
3
3
 
4
- export const TINY_THUMBNAIL = 40;
5
- export const SMALL_THUMBNAIL = 100;
6
- export const REGULAR_THUMBNAIL = 200;
4
+ export const SMALL_THUMBNAIL = 40;
5
+ export const MEDIUM_THUMBNAIL = 100;
6
+ export const LARGE_THUMBNAIL = 200;
7
7
 
8
8
  export function getThumbnailMeasure(size: PreviewSize): number {
9
- if (size === "tiny")
10
- return TINY_THUMBNAIL;
11
- else if (size === "small")
9
+ if (size === "small")
12
10
  return SMALL_THUMBNAIL;
13
11
  else if (size === "medium")
14
- return REGULAR_THUMBNAIL;
12
+ return MEDIUM_THUMBNAIL;
13
+ else if (size === "large")
14
+ return LARGE_THUMBNAIL;
15
15
  else throw Error("Thumbnail size not mapped");
16
16
  }
17
17
 
@@ -19,12 +19,12 @@ export function getPreviewSizeFrom(size: CollectionSize): PreviewSize {
19
19
  switch (size) {
20
20
  case "xs":
21
21
  case "s":
22
- return "tiny";
23
- case "m":
24
22
  return "small";
23
+ case "m":
24
+ return "medium";
25
25
  case "l":
26
26
  case "xl":
27
- return "medium";
27
+ return "large";
28
28
  default:
29
29
  throw Error("Missing mapping value in getPreviewSizeFrom: " + size);
30
30
  }
@@ -26,6 +26,7 @@ export type CMSAnalyticsEvent =
26
26
  | "home_navigate_to_collection"
27
27
  | "home_favorite_navigate_to_collection"
28
28
  | "home_navigate_to_view"
29
+ | "home_navigate_to_admin_view"
29
30
  | "home_favorite_navigate_to_view"
30
31
 
31
32
  | "collection_inline_editing"
@@ -1,4 +1,7 @@
1
1
  import { User } from "./user";
2
+ import { Role } from "./roles";
3
+ import { DataSourceDelegate } from "./datasource";
4
+ import { StorageSource } from "./storage";
2
5
 
3
6
  /**
4
7
  * Controller for retrieving the logged user or performing auth related operations.
@@ -6,13 +9,13 @@ import { User } from "./user";
6
9
  * to do it as the result of a hook.
7
10
  * @group Hooks and utilities
8
11
  */
9
- export type AuthController<UserType extends User = User> = {
12
+ export type AuthController<USER extends User = any, ExtraData = any> = {
10
13
 
11
14
  /**
12
15
  * The user currently logged in
13
16
  * The values can be: the user object, null if they skipped login
14
17
  */
15
- user: UserType | null;
18
+ user: USER | null;
16
19
 
17
20
  /**
18
21
  * Initial loading flag. It is used not to display the login screen
@@ -21,10 +24,16 @@ export type AuthController<UserType extends User = User> = {
21
24
  */
22
25
  initialLoading?: boolean;
23
26
 
27
+ /**
28
+ * Loading flag. It is used to display a loading screen when the user is
29
+ * logging in or out.
30
+ */
31
+ authLoading: boolean;
32
+
24
33
  /**
25
34
  * Sign out
26
35
  */
27
- signOut: () => void;
36
+ signOut: () => Promise<void>;
28
37
 
29
38
  /**
30
39
  * Error initializing the authentication
@@ -46,4 +55,40 @@ export type AuthController<UserType extends User = User> = {
46
55
  */
47
56
  loginSkipped: boolean;
48
57
 
58
+ extra: ExtraData;
59
+
60
+ setExtra: (extra: ExtraData) => void;
61
+
62
+ setUser?: (user: USER | null) => void;
63
+
64
+ setUserRoles?: (roles: Role[]) => void;
65
+
49
66
  };
67
+
68
+ /**
69
+ * Implement this function to allow access to specific users.
70
+ * @group Hooks and utilities
71
+ */
72
+ export type Authenticator<USER extends User = User> = (props: {
73
+
74
+ /**
75
+ * Logged-in user or null
76
+ */
77
+ user: USER | null;
78
+
79
+ /**
80
+ * AuthController
81
+ */
82
+ authController: AuthController<USER>;
83
+
84
+ /**
85
+ * Connector to your database, e.g. your Firestore database
86
+ */
87
+ dataSourceDelegate: DataSourceDelegate;
88
+
89
+ /**
90
+ * Used storage implementation
91
+ */
92
+ storageSource: StorageSource;
93
+
94
+ }) => boolean | Promise<boolean>;
@@ -8,6 +8,7 @@ import { EnumValues, PropertiesOrBuilders } from "./properties";
8
8
  import { FormContext } from "./fields";
9
9
  import { EntityAction } from "./entity_actions";
10
10
  import { ExportConfig } from "./export_import";
11
+ import { EntityOverrides } from "./entity_overrides";
11
12
 
12
13
  /**
13
14
  * This interface represents a view that includes a collection of entities.
@@ -16,7 +17,7 @@ import { ExportConfig } from "./export_import";
16
17
  *
17
18
  * @group Models
18
19
  */
19
- export interface EntityCollection<M extends Record<string, any> = any, UserType extends User = User> {
20
+ export interface EntityCollection<M extends Record<string, any> = any, USER extends User = any> {
20
21
 
21
22
  /**
22
23
  * You can set an alias that will be used internally instead of the `path`.
@@ -50,6 +51,12 @@ export interface EntityCollection<M extends Record<string, any> = any, UserType
50
51
  */
51
52
  path: string;
52
53
 
54
+ /**
55
+ * Optional database id of this collection. If not specified, the default
56
+ * database id will be used.
57
+ */
58
+ databaseId?: string;
59
+
53
60
  /**
54
61
  * If this collection is a top level navigation entry, you can set this
55
62
  * property to `true` to indicate that this collection is a collection group.
@@ -60,7 +67,8 @@ export interface EntityCollection<M extends Record<string, any> = any, UserType
60
67
  * Icon key to use in this collection.
61
68
  * You can use any of the icons in the Material specs:
62
69
  * https://fonts.google.com/icons
63
- * e.g. 'account_tree' or 'person'
70
+ * e.g. 'account_tree' or 'person'.
71
+ * Find all the icons in https://firecms.co/docs/icons
64
72
  */
65
73
  icon?: string;
66
74
 
@@ -76,6 +84,13 @@ export interface EntityCollection<M extends Record<string, any> = any, UserType
76
84
  */
77
85
  properties: PropertiesOrBuilders<M>;
78
86
 
87
+ /**
88
+ * Title property of the entity. This is the property that will be used
89
+ * as the title in entity related views and references.
90
+ * If not specified, the first property simple text property will be used.
91
+ */
92
+ titleProperty?: keyof M;
93
+
79
94
  /**
80
95
  * Can this collection be edited by the end user.
81
96
  * Defaults to `true`.
@@ -99,8 +114,12 @@ export interface EntityCollection<M extends Record<string, any> = any, UserType
99
114
  * `subcollection:`. e.g. `subcollection:orders`.
100
115
  * - If you are using a collection group, you will also have an
101
116
  * additional `collectionGroupParent` column.
117
+ * You can use this prop to hide some properties from the table view.
118
+ * Note that if you set this prop, other ways to hide fields, like
119
+ * `hidden` in the property definition,will be ignored.
120
+ * `propertiesOrder` has precedence over `hidden`.
102
121
  */
103
- propertiesOrder?: Extract<keyof M, string>[];
122
+ propertiesOrder?: (Extract<keyof M, string> | `subcollection:${string}`)[];
104
123
 
105
124
  /**
106
125
  * If enabled, content is loaded in batches. If `false` all entities in the
@@ -120,7 +139,7 @@ export interface EntityCollection<M extends Record<string, any> = any, UserType
120
139
  * Permissions the logged-in user can perform on this collection.
121
140
  * If not specified everything defaults to `true`.
122
141
  */
123
- permissions?: Permissions | PermissionsBuilder<EntityCollection, UserType, M>;
142
+ permissions?: Permissions | PermissionsBuilder<EntityCollection, USER, M>;
124
143
 
125
144
  /**
126
145
  * Are the entities in this collection selectable. Defaults to `true`
@@ -139,7 +158,7 @@ export interface EntityCollection<M extends Record<string, any> = any, UserType
139
158
  * is being created, updated or deleted.
140
159
  * Useful for adding your own logic or blocking the execution of the operation.
141
160
  */
142
- callbacks?: EntityCallbacks<M>;
161
+ callbacks?: EntityCallbacks<M, USER>;
143
162
 
144
163
  /**
145
164
  * Builder for rendering additional components such as buttons in the
@@ -170,7 +189,7 @@ export interface EntityCollection<M extends Record<string, any> = any, UserType
170
189
  * }
171
190
  * ```
172
191
  */
173
- entityActions?: EntityAction<M, UserType>[];
192
+ entityActions?: EntityAction<M, USER>[];
174
193
 
175
194
  /**
176
195
  * Pass your own selection controller if you want to control selected
@@ -222,7 +241,7 @@ export interface EntityCollection<M extends Record<string, any> = any, UserType
222
241
  * You can add additional fields to the collection view by implementing
223
242
  * an additional field delegate.
224
243
  */
225
- additionalFields?: AdditionalFieldDelegate<M, UserType>[];
244
+ additionalFields?: AdditionalFieldDelegate<M, USER>[];
226
245
 
227
246
  /**
228
247
  * Default size of the rendered collection
@@ -275,7 +294,28 @@ export interface EntityCollection<M extends Record<string, any> = any, UserType
275
294
  /**
276
295
  *
277
296
  */
278
- exportable?: boolean | ExportConfig<UserType>;
297
+ exportable?: boolean | ExportConfig<USER>;
298
+
299
+ /**
300
+ * User id of the owner of this collection. This is used only by plugins, or if you
301
+ * are writing custom code
302
+ */
303
+ ownerId?: string;
304
+
305
+ /**
306
+ * Overrides for the entity view, like the data source or the storage source.
307
+ */
308
+ overrides?: EntityOverrides;
309
+
310
+ /**
311
+ * Width of the side dialog (in pixels) when opening an entity in this collection.
312
+ */
313
+ sideDialogWidth?: number | string;
314
+
315
+ /**
316
+ * Default preview properties displayed when this collection is referenced to.
317
+ */
318
+ previewProperties?: string[];
279
319
  }
280
320
 
281
321
  /**
@@ -285,7 +325,7 @@ export interface EntityCollection<M extends Record<string, any> = any, UserType
285
325
  *
286
326
  * @group Models
287
327
  */
288
- export interface CollectionActionsProps<M extends Record<string, any> = any, UserType extends User = User, EC extends EntityCollection<M> = EntityCollection<M>> {
328
+ export interface CollectionActionsProps<M extends Record<string, any> = any, USER extends User = User, EC extends EntityCollection<M> = EntityCollection<M>> {
289
329
  /**
290
330
  * Full collection path of this entity. This is the full path, like
291
331
  * `users/1234/addresses`
@@ -322,7 +362,7 @@ export interface CollectionActionsProps<M extends Record<string, any> = any, Use
322
362
  /**
323
363
  * Context of the app status
324
364
  */
325
- context: FireCMSContext<UserType>;
365
+ context: FireCMSContext<USER>;
326
366
 
327
367
  /**
328
368
  * Count of the entities in this collection
@@ -334,19 +374,18 @@ export interface CollectionActionsProps<M extends Record<string, any> = any, Use
334
374
  /**
335
375
  * Use this controller to retrieve the selected entities or modify them in
336
376
  * an {@link EntityCollection}
337
- * If you want to pass a `SelectionController` to
338
377
  * @group Models
339
378
  */
340
379
  export type SelectionController<M extends Record<string, any> = any> = {
341
380
  selectedEntities: Entity<M>[];
342
381
  setSelectedEntities: Dispatch<SetStateAction<Entity<M>[]>>;
343
382
  isEntitySelected: (entity: Entity<M>) => boolean;
344
- toggleEntitySelection: (entity: Entity<M>) => void;
383
+ toggleEntitySelection: (entity: Entity<M>, newSelectedState?: boolean) => void;
345
384
  }
346
385
 
347
386
  /**
348
387
  * Filter conditions in a `Query.where()` clause are specified using the
349
- * strings '<', '<=', '==', '>=', '>', 'array-contains', 'in', and 'array-contains-any'.
388
+ * strings `<`, `<=`, `==`, `>=`, `>`, `array-contains`, `in`, and `array-contains-any`.
350
389
  * @group Models
351
390
  */
352
391
  export type WhereFilterOp =
@@ -385,9 +424,9 @@ export type FilterCombination<Key extends string> = Partial<Record<Key, "asc" |
385
424
  */
386
425
  export type CollectionSize = "xs" | "s" | "m" | "l" | "xl";
387
426
 
388
- export type AdditionalFieldDelegateProps<M extends Record<string, any> = any, UserType extends User = User> = {
427
+ export type AdditionalFieldDelegateProps<M extends Record<string, any> = any, USER extends User = User> = {
389
428
  entity: Entity<M>,
390
- context: FireCMSContext<UserType>
429
+ context: FireCMSContext<USER>
391
430
  };
392
431
 
393
432
  /**
@@ -396,7 +435,7 @@ export type AdditionalFieldDelegateProps<M extends Record<string, any> = any, Us
396
435
  * @group Models
397
436
  */
398
437
  export interface AdditionalFieldDelegate<M extends Record<string, any> = any,
399
- UserType extends User = User> {
438
+ USER extends User = User> {
400
439
 
401
440
  /**
402
441
  * ID of this column. You can use this id in the `properties` field of the
@@ -417,7 +456,7 @@ export interface AdditionalFieldDelegate<M extends Record<string, any> = any,
417
456
  /**
418
457
  * Builder for the content of the cell for this column
419
458
  */
420
- Builder?: React.ComponentType<AdditionalFieldDelegateProps<M, UserType>>;
459
+ Builder?: React.ComponentType<AdditionalFieldDelegateProps<M, USER>>;
421
460
 
422
461
  /**
423
462
  * If this column needs to update dynamically based on other properties,
@@ -436,7 +475,10 @@ export interface AdditionalFieldDelegate<M extends Record<string, any> = any,
436
475
  * view.
437
476
  * @param entity
438
477
  */
439
- value?: (props: { entity: Entity<M>, context: FireCMSContext }) => string | number | Promise<string | number> | undefined;
478
+ value?: (props: {
479
+ entity: Entity<M>,
480
+ context: FireCMSContext<any>
481
+ }) => string | number | Promise<string | number> | undefined;
440
482
  }
441
483
 
442
484
  /**
@@ -446,8 +488,22 @@ export interface AdditionalFieldDelegate<M extends Record<string, any> = any,
446
488
  */
447
489
  export type EntityCustomView<M extends Record<string, any> = any> =
448
490
  {
491
+ /**
492
+ * Key of this custom view.
493
+ */
449
494
  key: string,
495
+ /**
496
+ * Name of this custom view.
497
+ */
450
498
  name: string,
499
+ /**
500
+ * If set to true, the actions of the entity will be included in the
501
+ * bottom of the panel (save buttons, delete buttons, etc.)
502
+ */
503
+ includeActions?: boolean;
504
+ /**
505
+ * Builder for rendering the custom view
506
+ */
451
507
  Builder?: React.ComponentType<EntityCustomViewParams<M>>;
452
508
  }
453
509
 
@@ -508,7 +564,7 @@ export type EntityTableController<M extends Record<string, any> = any> = {
508
564
  filterValues?: FilterValues<Extract<keyof M, string>>;
509
565
  setFilterValues?: (filterValues: FilterValues<Extract<keyof M, string>>) => void;
510
566
  sortBy?: [Extract<keyof M, string>, "asc" | "desc"];
511
- setSortBy?: (sortBy: [Extract<keyof M, string>, "asc" | "desc"]) => void;
567
+ setSortBy?: (sortBy?: [Extract<keyof M, string>, "asc" | "desc"]) => void;
512
568
  searchString?: string;
513
569
  setSearchString?: (searchString?: string) => void;
514
570
  clearFilter?: () => void;
@@ -529,5 +585,6 @@ export type SelectedCellProps<M extends Record<string, any>> = {
529
585
  cellRect: DOMRect;
530
586
  width: number;
531
587
  height: number;
532
- entity: Entity<M>;
588
+ entityPath: string;
589
+ entityId: string;
533
590
  };
@@ -24,7 +24,6 @@ export type CustomizationController = {
24
24
  *
25
25
  * You can also define an entity view from the UI.
26
26
  */
27
-
28
27
  entityViews?: EntityCustomView[];
29
28
 
30
29
  /**