@rebasepro/cms 0.17.3 → 0.18.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (449) hide show
  1. package/README.md +4 -0
  2. package/dist/{CollectionEditorDialog-B-akreOU.js → CollectionEditorDialog-BeX4b92r.js} +13 -7
  3. package/dist/{CollectionEditorDialog-B-akreOU.js.map → CollectionEditorDialog-BeX4b92r.js.map} +1 -1
  4. package/dist/{PropertyEditView-CiY84wkR.js → PropertyEditView-C7thfj4L.js} +3 -3
  5. package/dist/{PropertyEditView-CiY84wkR.js.map → PropertyEditView-C7thfj4L.js.map} +1 -1
  6. package/dist/{RouterCollectionsStudioView-DkAWda4N.js → RouterCollectionsStudioView-BtjzvB6E.js} +4 -4
  7. package/dist/{RouterCollectionsStudioView-DkAWda4N.js.map → RouterCollectionsStudioView-BtjzvB6E.js.map} +1 -1
  8. package/dist/{SchemaChangeDialog-DceT8QFX.js → SchemaChangeDialog-CkqK6KOC.js} +4 -2
  9. package/dist/{SchemaChangeDialog-DceT8QFX.js.map → SchemaChangeDialog-CkqK6KOC.js.map} +1 -1
  10. package/dist/collection_editor/api/generateCollectionApi.d.ts +1 -2
  11. package/dist/collection_editor_ui.d.ts +2 -0
  12. package/dist/collection_editor_ui.js +6 -5
  13. package/dist/collection_editor_ui.js.map +1 -1
  14. package/dist/components/DeleteEntityDialog.d.ts +2 -3
  15. package/dist/components/RebaseLayout.d.ts +11 -4
  16. package/dist/components/field_configs.d.ts +1 -1
  17. package/dist/editor/sanitize-html.d.ts +15 -0
  18. package/dist/editor.js +195 -10
  19. package/dist/editor.js.map +1 -1
  20. package/dist/{export-Ben8E355.js → export--arni_VY.js} +2 -2
  21. package/dist/{export-Ben8E355.js.map → export--arni_VY.js.map} +1 -1
  22. package/dist/form/components/LabelWithIcon.d.ts +10 -0
  23. package/dist/{history-DIEVd26f.js → history-C2TpoQwi.js} +2 -2
  24. package/dist/{history-DIEVd26f.js.map → history-C2TpoQwi.js.map} +1 -1
  25. package/dist/hooks/navigation/useBuildNavigationStateController.d.ts +1 -1
  26. package/dist/hooks/navigation/useResolvedViews.d.ts +1 -1
  27. package/dist/hooks/navigation/useTopLevelNavigation.d.ts +1 -1
  28. package/dist/{import-D25x7ko-.js → import-DTkXNoBg.js} +2 -2
  29. package/dist/{import-D25x7ko-.js.map → import-DTkXNoBg.js.map} +1 -1
  30. package/dist/index.js +78 -33
  31. package/dist/index.js.map +1 -1
  32. package/dist/util/propertyConfigMapper.d.ts +1 -1
  33. package/dist/util-CfLFggP7.js +57 -0
  34. package/dist/util-CfLFggP7.js.map +1 -0
  35. package/dist/{util-DVqnqlLn.js → util-DE1WQW6h.js} +134 -112
  36. package/dist/util-DE1WQW6h.js.map +1 -0
  37. package/package.json +42 -34
  38. package/dist/util-DVqnqlLn.js.map +0 -1
  39. package/src/collection_editor/CollectionEditorDialogsContext.tsx +0 -25
  40. package/src/collection_editor/ConfigControllerProvider.tsx +0 -395
  41. package/src/collection_editor/_cms_internals.ts +0 -41
  42. package/src/collection_editor/api/generateCollectionApi.ts +0 -126
  43. package/src/collection_editor/api/index.ts +0 -1
  44. package/src/collection_editor/extensibility_types.ts +0 -168
  45. package/src/collection_editor/index.ts +0 -108
  46. package/src/collection_editor/liveSchemaClient.ts +0 -285
  47. package/src/collection_editor/relation_kinds.ts +0 -44
  48. package/src/collection_editor/serializable_types.ts +0 -535
  49. package/src/collection_editor/serializable_utils.ts +0 -729
  50. package/src/collection_editor/types/collection_editor_controller.tsx +0 -62
  51. package/src/collection_editor/types/collection_inference.ts +0 -18
  52. package/src/collection_editor/types/config_controller.tsx +0 -121
  53. package/src/collection_editor/ui/AddKanbanColumnAction.tsx +0 -199
  54. package/src/collection_editor/ui/CollectionViewHeaderAction.tsx +0 -51
  55. package/src/collection_editor/ui/EditorCollectionAction.tsx +0 -54
  56. package/src/collection_editor/ui/EditorCollectionActionStart.tsx +0 -90
  57. package/src/collection_editor/ui/EditorEntityAction.tsx +0 -50
  58. package/src/collection_editor/ui/HomePageEditorCollectionAction.tsx +0 -114
  59. package/src/collection_editor/ui/KanbanSetupAction.tsx +0 -43
  60. package/src/collection_editor/ui/MissingReferenceWidget.tsx +0 -35
  61. package/src/collection_editor/ui/NewCollectionButton.tsx +0 -27
  62. package/src/collection_editor/ui/NewCollectionCard.tsx +0 -48
  63. package/src/collection_editor/ui/PropertyAddColumnComponent.tsx +0 -49
  64. package/src/collection_editor/ui/collection_editor/AICollectionGeneratorPopover.tsx +0 -260
  65. package/src/collection_editor/ui/collection_editor/AIModifiedPathsContext.tsx +0 -90
  66. package/src/collection_editor/ui/collection_editor/CollectionDetailsForm.tsx +0 -388
  67. package/src/collection_editor/ui/collection_editor/CollectionEditorDialog.tsx +0 -1098
  68. package/src/collection_editor/ui/collection_editor/CollectionEditorWelcomeView.tsx +0 -301
  69. package/src/collection_editor/ui/collection_editor/CollectionJsonImportDialog.tsx +0 -172
  70. package/src/collection_editor/ui/collection_editor/CollectionPropertiesEditorForm.tsx +0 -620
  71. package/src/collection_editor/ui/collection_editor/CollectionRLSTab.tsx +0 -530
  72. package/src/collection_editor/ui/collection_editor/CollectionRelationsTab.tsx +0 -462
  73. package/src/collection_editor/ui/collection_editor/CollectionStudioView.tsx +0 -104
  74. package/src/collection_editor/ui/collection_editor/CollectionYupValidation.tsx +0 -9
  75. package/src/collection_editor/ui/collection_editor/CollectionsStudioView.tsx +0 -199
  76. package/src/collection_editor/ui/collection_editor/DisplaySettingsForm.tsx +0 -315
  77. package/src/collection_editor/ui/collection_editor/EntityActionsEditTab.tsx +0 -164
  78. package/src/collection_editor/ui/collection_editor/EntityActionsSelectDialog.tsx +0 -40
  79. package/src/collection_editor/ui/collection_editor/EntityCustomViewsSelectDialog.tsx +0 -39
  80. package/src/collection_editor/ui/collection_editor/EnumForm.tsx +0 -373
  81. package/src/collection_editor/ui/collection_editor/GeneralSettingsForm.tsx +0 -288
  82. package/src/collection_editor/ui/collection_editor/GetCodeDialog.tsx +0 -141
  83. package/src/collection_editor/ui/collection_editor/KanbanConfigSection.tsx +0 -194
  84. package/src/collection_editor/ui/collection_editor/LayoutModeSwitch.tsx +0 -53
  85. package/src/collection_editor/ui/collection_editor/PropertyEditView.tsx +0 -980
  86. package/src/collection_editor/ui/collection_editor/PropertyFieldPreview.tsx +0 -164
  87. package/src/collection_editor/ui/collection_editor/PropertyTree.tsx +0 -364
  88. package/src/collection_editor/ui/collection_editor/RouterCollectionStudioView.tsx +0 -44
  89. package/src/collection_editor/ui/collection_editor/RouterCollectionsStudioView.tsx +0 -41
  90. package/src/collection_editor/ui/collection_editor/SchemaChangeDialog.tsx +0 -470
  91. package/src/collection_editor/ui/collection_editor/SubcollectionsEditTab.tsx +0 -256
  92. package/src/collection_editor/ui/collection_editor/SwitchControl.tsx +0 -39
  93. package/src/collection_editor/ui/collection_editor/ViewModeSwitch.tsx +0 -68
  94. package/src/collection_editor/ui/collection_editor/import/CollectionEditorImportDataPreview.tsx +0 -67
  95. package/src/collection_editor/ui/collection_editor/import/CollectionEditorImportMapping.tsx +0 -296
  96. package/src/collection_editor/ui/collection_editor/import/clean_import_data.ts +0 -57
  97. package/src/collection_editor/ui/collection_editor/properties/BlockPropertyField.tsx +0 -147
  98. package/src/collection_editor/ui/collection_editor/properties/BooleanPropertyField.tsx +0 -41
  99. package/src/collection_editor/ui/collection_editor/properties/CommonPropertyFields.tsx +0 -113
  100. package/src/collection_editor/ui/collection_editor/properties/DateTimePropertyField.tsx +0 -250
  101. package/src/collection_editor/ui/collection_editor/properties/EnumPropertyField.tsx +0 -126
  102. package/src/collection_editor/ui/collection_editor/properties/KeyValuePropertyField.tsx +0 -20
  103. package/src/collection_editor/ui/collection_editor/properties/MapPropertyField.tsx +0 -153
  104. package/src/collection_editor/ui/collection_editor/properties/MarkdownPropertyField.tsx +0 -217
  105. package/src/collection_editor/ui/collection_editor/properties/NumberPropertyField.tsx +0 -117
  106. package/src/collection_editor/ui/collection_editor/properties/ReferencePropertyField.tsx +0 -129
  107. package/src/collection_editor/ui/collection_editor/properties/RelationPropertyField.tsx +0 -335
  108. package/src/collection_editor/ui/collection_editor/properties/RepeatPropertyField.tsx +0 -107
  109. package/src/collection_editor/ui/collection_editor/properties/StoragePropertyField.tsx +0 -403
  110. package/src/collection_editor/ui/collection_editor/properties/StringPropertyField.tsx +0 -148
  111. package/src/collection_editor/ui/collection_editor/properties/UrlPropertyField.tsx +0 -91
  112. package/src/collection_editor/ui/collection_editor/properties/VectorPropertyField.tsx +0 -34
  113. package/src/collection_editor/ui/collection_editor/properties/advanced/AdvancedPropertyValidation.tsx +0 -49
  114. package/src/collection_editor/ui/collection_editor/properties/conditions/ConditionsEditor.tsx +0 -925
  115. package/src/collection_editor/ui/collection_editor/properties/conditions/ConditionsPanel.tsx +0 -28
  116. package/src/collection_editor/ui/collection_editor/properties/conditions/EnumConditionsEditor.tsx +0 -626
  117. package/src/collection_editor/ui/collection_editor/properties/conditions/index.ts +0 -6
  118. package/src/collection_editor/ui/collection_editor/properties/conditions/property_paths.ts +0 -93
  119. package/src/collection_editor/ui/collection_editor/properties/validation/ArrayPropertyValidation.tsx +0 -52
  120. package/src/collection_editor/ui/collection_editor/properties/validation/GeneralPropertyValidation.tsx +0 -63
  121. package/src/collection_editor/ui/collection_editor/properties/validation/NumberPropertyValidation.tsx +0 -114
  122. package/src/collection_editor/ui/collection_editor/properties/validation/StringPropertyValidation.tsx +0 -154
  123. package/src/collection_editor/ui/collection_editor/properties/validation/ValidationPanel.tsx +0 -28
  124. package/src/collection_editor/ui/collection_editor/templates/blog_template.ts +0 -112
  125. package/src/collection_editor/ui/collection_editor/templates/pages_template.ts +0 -183
  126. package/src/collection_editor/ui/collection_editor/templates/products_template.ts +0 -88
  127. package/src/collection_editor/ui/collection_editor/templates/users_template.ts +0 -42
  128. package/src/collection_editor/ui/collection_editor/util.ts +0 -28
  129. package/src/collection_editor/ui/collection_editor/utils/strings.ts +0 -1
  130. package/src/collection_editor/ui/collection_editor/utils/supported_fields.tsx +0 -39
  131. package/src/collection_editor/ui/collection_editor/utils/update_property_for_widget.ts +0 -276
  132. package/src/collection_editor/useCollectionEditorController.tsx +0 -9
  133. package/src/collection_editor/useCollectionsConfigController.tsx +0 -9
  134. package/src/collection_editor/useJsonCollectionsConfigController.tsx +0 -297
  135. package/src/collection_editor/useLiveSchemaEditing.tsx +0 -315
  136. package/src/collection_editor/useLocalCollectionsConfigController.tsx +0 -341
  137. package/src/collection_editor/useSafeSnackbarController.ts +0 -9
  138. package/src/collection_editor/validateCollectionJson.ts +0 -440
  139. package/src/collection_editor_ui.ts +0 -21
  140. package/src/components/AdditionalFieldValue.tsx +0 -68
  141. package/src/components/AdminModeSyncer.tsx +0 -56
  142. package/src/components/ArrayContainer.tsx +0 -542
  143. package/src/components/ClearFilterSortButton.tsx +0 -56
  144. package/src/components/CollectionEditorDialogs.tsx +0 -69
  145. package/src/components/CollectionPanel.tsx +0 -179
  146. package/src/components/CollectionTableBinding/CollectionRowActions.tsx +0 -244
  147. package/src/components/CollectionTableBinding/CollectionTableBinding.tsx +0 -394
  148. package/src/components/CollectionTableBinding/CollectionTableBindingProps.tsx +0 -172
  149. package/src/components/CollectionTableBinding/PropertyTableCell.tsx +0 -350
  150. package/src/components/CollectionTableBinding/column_utils.tsx +0 -155
  151. package/src/components/CollectionTableBinding/fields/TableMultipleRelationField.tsx +0 -131
  152. package/src/components/CollectionTableBinding/fields/TableReferenceField.tsx +0 -193
  153. package/src/components/CollectionTableBinding/fields/TableRelationField.tsx +0 -192
  154. package/src/components/CollectionTableBinding/fields/TableRelationSelectorField.tsx +0 -42
  155. package/src/components/CollectionTableBinding/fields/TableStorageUpload.tsx +0 -324
  156. package/src/components/CollectionTableBinding/fields/VirtualTableSelect.tsx +0 -132
  157. package/src/components/CollectionTableBinding/fields/VirtualTableUserSelect.tsx +0 -41
  158. package/src/components/CollectionTableBinding/index.tsx +0 -14
  159. package/src/components/CollectionTableBinding/internal/CollectionTableToolbar.tsx +0 -96
  160. package/src/components/CollectionTableBinding/internal/EntityTableCell.tsx +0 -309
  161. package/src/components/CollectionTableBinding/internal/EntityTableCellActions.tsx +0 -80
  162. package/src/components/CollectionTableBinding/internal/common.tsx +0 -74
  163. package/src/components/CollectionTableBinding/internal/popup_field/PopupFormField.tsx +0 -422
  164. package/src/components/CollectionTableBinding/internal/popup_field/useDraggable.tsx +0 -99
  165. package/src/components/CollectionTableBinding/internal/popup_field/useWindowSize.tsx +0 -22
  166. package/src/components/CollectionTableBinding/table_bindings.tsx +0 -350
  167. package/src/components/CollectionViewBinding/BoardCardBinding.tsx +0 -263
  168. package/src/components/CollectionViewBinding/CollectionBoardViewBinding.tsx +0 -662
  169. package/src/components/CollectionViewBinding/CollectionCardViewBinding.tsx +0 -159
  170. package/src/components/CollectionViewBinding/CollectionListViewBinding.tsx +0 -1430
  171. package/src/components/CollectionViewBinding/CollectionViewActions.tsx +0 -227
  172. package/src/components/CollectionViewBinding/CollectionViewBinding.tsx +0 -1603
  173. package/src/components/CollectionViewBinding/CollectionViewStartActions.tsx +0 -240
  174. package/src/components/CollectionViewBinding/EntityCardBinding.tsx +0 -239
  175. package/src/components/CollectionViewBinding/FilterPresetsButton.tsx +0 -298
  176. package/src/components/CollectionViewBinding/FiltersDialog.tsx +0 -218
  177. package/src/components/CollectionViewBinding/SearchExplanation.tsx +0 -106
  178. package/src/components/CollectionViewBinding/SearchHighlight.tsx +0 -311
  179. package/src/components/CollectionViewBinding/SlotValue.tsx +0 -156
  180. package/src/components/CollectionViewBinding/SortButton.tsx +0 -354
  181. package/src/components/CollectionViewBinding/SplitListCloseButton.tsx +0 -49
  182. package/src/components/CollectionViewBinding/SplitListShowButton.tsx +0 -28
  183. package/src/components/CollectionViewBinding/SplitListView.tsx +0 -488
  184. package/src/components/CollectionViewBinding/SplitViewContext.tsx +0 -34
  185. package/src/components/CollectionViewBinding/ViewModeToggle.tsx +0 -250
  186. package/src/components/CollectionViewBinding/hooks/useCollectionInlineEditor.ts +0 -81
  187. package/src/components/CollectionViewBinding/hooks/useKanbanDragAndDrop.ts +0 -181
  188. package/src/components/CollectionViewBinding/useBoardDataController.tsx +0 -802
  189. package/src/components/CollectionViewBinding/usePreviewSlots.ts +0 -703
  190. package/src/components/CollectionViewBinding/useSelectionController.tsx +0 -40
  191. package/src/components/CollectionViewBinding/utils.ts +0 -22
  192. package/src/components/DefaultAppBar.tsx +0 -264
  193. package/src/components/DefaultDrawer.tsx +0 -593
  194. package/src/components/DeleteEntityDialog.tsx +0 -205
  195. package/src/components/DetailViewBinding.tsx +0 -731
  196. package/src/components/DrawerNavigationGroup.tsx +0 -141
  197. package/src/components/DrawerNavigationItem.tsx +0 -115
  198. package/src/components/EditFormActions.tsx +0 -303
  199. package/src/components/EditViewBinding.tsx +0 -1069
  200. package/src/components/EntityDisplayHeader.tsx +0 -170
  201. package/src/components/EntityIdentityBar.tsx +0 -428
  202. package/src/components/EntityInspector.tsx +0 -156
  203. package/src/components/EntityPreviewBinding.tsx +0 -432
  204. package/src/components/EntityPreviewNesting.tsx +0 -50
  205. package/src/components/EntityViewBinding.tsx +0 -374
  206. package/src/components/FieldCaption.tsx +0 -14
  207. package/src/components/HomePage/ContentHomePage.tsx +0 -586
  208. package/src/components/HomePage/FavouritesView.tsx +0 -60
  209. package/src/components/HomePage/HomePageDnD.tsx +0 -704
  210. package/src/components/HomePage/NavigationCard.tsx +0 -81
  211. package/src/components/HomePage/NavigationCardBinding.tsx +0 -107
  212. package/src/components/HomePage/NavigationGroup.tsx +0 -156
  213. package/src/components/HomePage/RenameGroupDialog.tsx +0 -123
  214. package/src/components/HomePage/SmallNavigationCard.tsx +0 -41
  215. package/src/components/HomePage/index.tsx +0 -5
  216. package/src/components/InlineEntityPreview.tsx +0 -149
  217. package/src/components/JsonPreviewBinding.tsx +0 -66
  218. package/src/components/PropertyCollectionView.tsx +0 -336
  219. package/src/components/PropertyConfigBadge.tsx +0 -28
  220. package/src/components/PropertyIdCopyTooltip.tsx +0 -47
  221. package/src/components/RebaseAuthGate.tsx +0 -44
  222. package/src/components/RebaseCMS.tsx +0 -30
  223. package/src/components/RebaseLayout.tsx +0 -80
  224. package/src/components/RebaseNavigation.tsx +0 -369
  225. package/src/components/RebaseRouteDefs.tsx +0 -127
  226. package/src/components/RebaseShell.tsx +0 -83
  227. package/src/components/ReferenceTable/SelectionTableBinding.tsx +0 -389
  228. package/src/components/ReferenceWidget.tsx +0 -156
  229. package/src/components/RelationSelector.tsx +0 -926
  230. package/src/components/SearchIconsView.tsx +0 -78
  231. package/src/components/SelectableTable/SelectableTable.tsx +0 -309
  232. package/src/components/SelectableTable/SelectableTableContext.tsx +0 -7
  233. package/src/components/SelectableTable/SelectionStore.ts +0 -43
  234. package/src/components/SelectableTable/filters/BooleanFilterField.tsx +0 -59
  235. package/src/components/SelectableTable/filters/DateTimeFilterField.tsx +0 -146
  236. package/src/components/SelectableTable/filters/FilterFieldBinding.tsx +0 -190
  237. package/src/components/SelectableTable/filters/ReferenceFilterField.tsx +0 -250
  238. package/src/components/SelectableTable/filters/RelationFilterField.tsx +0 -238
  239. package/src/components/SelectableTable/filters/StringNumberFilterField.tsx +0 -282
  240. package/src/components/SelectableTable/filters/null_filter.ts +0 -63
  241. package/src/components/SideDialogs.tsx +0 -238
  242. package/src/components/SidePanelBinding.tsx +0 -361
  243. package/src/components/SidePanelProvider.tsx +0 -80
  244. package/src/components/UserSelector.tsx +0 -513
  245. package/src/components/admin/CreationResultDialog.tsx +0 -138
  246. package/src/components/admin/index.ts +0 -1
  247. package/src/components/app/AppBar.tsx +0 -17
  248. package/src/components/app/Drawer.tsx +0 -38
  249. package/src/components/app/Scaffold.tsx +0 -366
  250. package/src/components/app/index.ts +0 -4
  251. package/src/components/app/useApp.tsx +0 -36
  252. package/src/components/common/default_entity_actions.tsx +0 -440
  253. package/src/components/common/index.ts +0 -1
  254. package/src/components/field_configs.tsx +0 -506
  255. package/src/components/history/EntityHistoryEntry.tsx +0 -203
  256. package/src/components/history/EntityHistoryView.tsx +0 -206
  257. package/src/components/history/LastEditedByFormAction.tsx +0 -24
  258. package/src/components/history/LastEditedByIndicator.tsx +0 -95
  259. package/src/components/history/UserChip.tsx +0 -15
  260. package/src/components/history/index.tsx +0 -5
  261. package/src/components/index.ts +0 -63
  262. package/src/contexts/BreacrumbsContext.tsx +0 -45
  263. package/src/contexts/SideDialogsControllerContext.tsx +0 -5
  264. package/src/contexts/SidePanelControllerContext.tsx +0 -5
  265. package/src/data_export/export/BasicExportAction.tsx +0 -142
  266. package/src/data_export/export/ExportCollectionAction.tsx +0 -321
  267. package/src/data_export/export/export.ts +0 -295
  268. package/src/data_export/export/fetch_export_data.ts +0 -90
  269. package/src/data_export/export/index.ts +0 -4
  270. package/src/data_export/index.ts +0 -1
  271. package/src/data_import/components/DataNewPropertiesMapping.tsx +0 -261
  272. package/src/data_import/components/ImportFileUpload.tsx +0 -42
  273. package/src/data_import/components/ImportNewPropertyFieldPreview.tsx +0 -58
  274. package/src/data_import/components/ImportSaveInProgress.tsx +0 -121
  275. package/src/data_import/components/index.ts +0 -4
  276. package/src/data_import/hooks/index.ts +0 -1
  277. package/src/data_import/hooks/useImportConfig.tsx +0 -34
  278. package/src/data_import/import/ImportCollectionAction.tsx +0 -461
  279. package/src/data_import/import/index.ts +0 -1
  280. package/src/data_import/index.ts +0 -5
  281. package/src/data_import/types/column_mapping.ts +0 -32
  282. package/src/data_import/types/index.ts +0 -1
  283. package/src/data_import/utils/csv.ts +0 -153
  284. package/src/data_import/utils/data.ts +0 -181
  285. package/src/data_import/utils/file_headers.ts +0 -14
  286. package/src/data_import/utils/file_to_json.ts +0 -149
  287. package/src/data_import/utils/get_import_inference_type.ts +0 -33
  288. package/src/data_import/utils/get_properties_mapping.ts +0 -67
  289. package/src/data_import/utils/index.ts +0 -5
  290. package/src/data_import/utils/save_entities.ts +0 -138
  291. package/src/data_import/utils/transforms.ts +0 -70
  292. package/src/editor/components/SlashCommandMenu.tsx +0 -532
  293. package/src/editor/components/editor-bubble-item.tsx +0 -32
  294. package/src/editor/components/editor-bubble.tsx +0 -143
  295. package/src/editor/components/image-bubble.tsx +0 -183
  296. package/src/editor/components/index.ts +0 -14
  297. package/src/editor/components/table-bubble.tsx +0 -233
  298. package/src/editor/editor.tsx +0 -529
  299. package/src/editor/extensions/HighlightDecorationExtension.ts +0 -115
  300. package/src/editor/extensions/Image.ts +0 -159
  301. package/src/editor/extensions/TextLoadingDecorationExtension.tsx +0 -107
  302. package/src/editor/extensions/clipboard.ts +0 -72
  303. package/src/editor/extensions/custom-keymap.ts +0 -25
  304. package/src/editor/extensions/drag-and-drop.tsx +0 -508
  305. package/src/editor/hooks/useProseMirror.ts +0 -126
  306. package/src/editor/hooks/useProseMirrorContext.ts +0 -15
  307. package/src/editor/index.ts +0 -2
  308. package/src/editor/markdown-it-plugins.d.ts +0 -24
  309. package/src/editor/markdown.ts +0 -204
  310. package/src/editor/nodeViews/ImageComponent.tsx +0 -20
  311. package/src/editor/nodeViews/ReactNodeView.tsx +0 -89
  312. package/src/editor/nodeViews/TaskItemComponent.tsx +0 -30
  313. package/src/editor/nodeViews/index.ts +0 -35
  314. package/src/editor/plugins/index.ts +0 -58
  315. package/src/editor/plugins/inputrules.ts +0 -82
  316. package/src/editor/plugins/placeholderPlugin.ts +0 -55
  317. package/src/editor/plugins/slashCommandPlugin.ts +0 -65
  318. package/src/editor/schema.ts +0 -339
  319. package/src/editor/selectors/ai-selector.tsx +0 -110
  320. package/src/editor/selectors/color-selector.tsx +0 -199
  321. package/src/editor/selectors/link-selector.tsx +0 -122
  322. package/src/editor/selectors/node-selector.tsx +0 -159
  323. package/src/editor/selectors/text-buttons.tsx +0 -79
  324. package/src/editor/types.ts +0 -6
  325. package/src/editor/useProseMirror.ts +0 -125
  326. package/src/editor/utils/prosemirror-utils.ts +0 -113
  327. package/src/editor/utils/remove_classes.ts +0 -18
  328. package/src/editor/utils/useDebouncedCallback.ts +0 -25
  329. package/src/form/EntityForm.tsx +0 -761
  330. package/src/form/EntityFormActions.tsx +0 -160
  331. package/src/form/EntityFormBinding.tsx +0 -342
  332. package/src/form/PropertyFieldBinding.tsx +0 -348
  333. package/src/form/components/ErrorFocus.tsx +0 -44
  334. package/src/form/components/FieldBlock.tsx +0 -189
  335. package/src/form/components/FieldHelperText.tsx +0 -84
  336. package/src/form/components/FormRail.tsx +0 -153
  337. package/src/form/components/FormSections.tsx +0 -145
  338. package/src/form/components/LabelWithIcon.tsx +0 -43
  339. package/src/form/components/LabelWithIconAndTooltip.tsx +0 -28
  340. package/src/form/components/LocalChangesMenu.tsx +0 -147
  341. package/src/form/components/StorageItemPreview.tsx +0 -81
  342. package/src/form/components/StorageUploadProgress.tsx +0 -118
  343. package/src/form/components/index.tsx +0 -6
  344. package/src/form/components/useRailVisible.tsx +0 -47
  345. package/src/form/field_bindings/ArrayCustomShapedFieldBinding.tsx +0 -109
  346. package/src/form/field_bindings/ArrayOfReferencesFieldBinding.tsx +0 -172
  347. package/src/form/field_bindings/BinaryFieldBinding.tsx +0 -177
  348. package/src/form/field_bindings/BlockFieldBinding.tsx +0 -282
  349. package/src/form/field_bindings/DateTimeFieldBinding.tsx +0 -78
  350. package/src/form/field_bindings/GeopointFieldBinding.tsx +0 -200
  351. package/src/form/field_bindings/KeyValueFieldBinding.tsx +0 -574
  352. package/src/form/field_bindings/MapFieldBinding.tsx +0 -120
  353. package/src/form/field_bindings/MarkdownEditorFieldBinding.tsx +0 -259
  354. package/src/form/field_bindings/MultiSelectFieldBinding.tsx +0 -130
  355. package/src/form/field_bindings/MultipleRelationFieldBinding.tsx +0 -168
  356. package/src/form/field_bindings/ReadOnlyFieldBinding.tsx +0 -94
  357. package/src/form/field_bindings/ReferenceFieldBinding.tsx +0 -146
  358. package/src/form/field_bindings/RelationFieldBinding.tsx +0 -202
  359. package/src/form/field_bindings/RepeatFieldBinding.tsx +0 -143
  360. package/src/form/field_bindings/SelectFieldBinding.tsx +0 -111
  361. package/src/form/field_bindings/StorageUploadFieldBinding.tsx +0 -521
  362. package/src/form/field_bindings/SwitchFieldBinding.tsx +0 -70
  363. package/src/form/field_bindings/TextFieldBinding.tsx +0 -189
  364. package/src/form/field_bindings/UserSelectFieldBinding.tsx +0 -71
  365. package/src/form/field_bindings/VectorFieldBinding.tsx +0 -209
  366. package/src/form/form_utils.ts +0 -243
  367. package/src/form/index.tsx +0 -36
  368. package/src/form/useClearRestoreValue.tsx +0 -36
  369. package/src/form/useUndoableDiscard.ts +0 -39
  370. package/src/form/validation.ts +0 -583
  371. package/src/hooks/index.ts +0 -16
  372. package/src/hooks/navigation/contexts/CollectionRegistryContext.tsx +0 -22
  373. package/src/hooks/navigation/contexts/NavigationStateContext.tsx +0 -16
  374. package/src/hooks/navigation/contexts/UrlContext.tsx +0 -24
  375. package/src/hooks/navigation/contexts/index.ts +0 -14
  376. package/src/hooks/navigation/useAsyncResolver.ts +0 -100
  377. package/src/hooks/navigation/useBuildCollectionRegistryController.tsx +0 -218
  378. package/src/hooks/navigation/useBuildNavigationStateController.tsx +0 -134
  379. package/src/hooks/navigation/useBuildUrlController.tsx +0 -66
  380. package/src/hooks/navigation/useNavigationResolution.ts +0 -271
  381. package/src/hooks/navigation/useResolvedCollections.ts +0 -102
  382. package/src/hooks/navigation/useResolvedViews.tsx +0 -139
  383. package/src/hooks/navigation/useTopLevelNavigation.ts +0 -273
  384. package/src/hooks/navigation/utils.ts +0 -200
  385. package/src/hooks/useAdminContext.tsx +0 -83
  386. package/src/hooks/useBreadcrumbsController.tsx +0 -17
  387. package/src/hooks/useBuildSideDialogsController.tsx +0 -145
  388. package/src/hooks/useBuildSidePanel.tsx +0 -315
  389. package/src/hooks/useChildViewSource.ts +0 -46
  390. package/src/hooks/useEntityDisplay.tsx +0 -262
  391. package/src/hooks/useEntityDisplayTitle.tsx +0 -49
  392. package/src/hooks/useHistory.ts +0 -178
  393. package/src/hooks/useRecordActions.tsx +0 -69
  394. package/src/hooks/useResolvedNavigationFrom.tsx +0 -167
  395. package/src/hooks/useResolvedUsers.ts +0 -148
  396. package/src/hooks/useSelectionDialog.tsx +0 -58
  397. package/src/hooks/useSideDialogsController.tsx +0 -25
  398. package/src/hooks/useSidePanel.tsx +0 -13
  399. package/src/index.ts +0 -124
  400. package/src/preview/PropertyPreview.tsx +0 -331
  401. package/src/preview/compact_text.ts +0 -68
  402. package/src/preview/components/ArrayEnumPreview.tsx +0 -39
  403. package/src/preview/components/BooleanPreview.tsx +0 -28
  404. package/src/preview/components/DatePreview.tsx +0 -106
  405. package/src/preview/components/EmptyValue.tsx +0 -10
  406. package/src/preview/components/EnumValuesChip.tsx +0 -39
  407. package/src/preview/components/ImagePreview.tsx +0 -144
  408. package/src/preview/components/InlineEntityListPreview.tsx +0 -42
  409. package/src/preview/components/ReferencePreview.tsx +0 -235
  410. package/src/preview/components/RelationPreview.tsx +0 -271
  411. package/src/preview/components/StorageThumbnail.tsx +0 -147
  412. package/src/preview/components/UrlComponentPreview.tsx +0 -116
  413. package/src/preview/components/UserPreview.tsx +0 -30
  414. package/src/preview/components/date_fns_locales.ts +0 -125
  415. package/src/preview/index.ts +0 -26
  416. package/src/preview/property_previews/ArrayOfMapsPreview.tsx +0 -73
  417. package/src/preview/property_previews/ArrayOfReferencesPreview.tsx +0 -67
  418. package/src/preview/property_previews/ArrayOfRelationsPreview.tsx +0 -77
  419. package/src/preview/property_previews/ArrayOfStorageComponentsPreview.tsx +0 -49
  420. package/src/preview/property_previews/ArrayOfStringsPreview.tsx +0 -70
  421. package/src/preview/property_previews/ArrayOneOfPreview.tsx +0 -79
  422. package/src/preview/property_previews/ArrayPropertyEnumPreview.tsx +0 -35
  423. package/src/preview/property_previews/ArrayPropertyPreview.tsx +0 -79
  424. package/src/preview/property_previews/MapPropertyPreview.tsx +0 -198
  425. package/src/preview/property_previews/NumberPropertyPreview.tsx +0 -39
  426. package/src/preview/property_previews/SkeletonPropertyComponent.tsx +0 -276
  427. package/src/preview/property_previews/StringPropertyPreview.tsx +0 -70
  428. package/src/preview/util.ts +0 -39
  429. package/src/routes/CustomViewRoute.tsx +0 -33
  430. package/src/routes/RebaseRoute.tsx +0 -467
  431. package/src/routes/index.ts +0 -2
  432. package/src/types/components/EntityFormActionsProps.tsx +0 -20
  433. package/src/types/components/EntityFormProps.tsx +0 -119
  434. package/src/types/components/PropertyPreviewProps.tsx +0 -85
  435. package/src/types/components/formex.tsx +0 -2
  436. package/src/types/components/index.ts +0 -3
  437. package/src/types/fields.tsx +0 -340
  438. package/src/types/index.ts +0 -4
  439. package/src/util/dataControllerAdapter.ts +0 -88
  440. package/src/util/entity_actions.ts +0 -28
  441. package/src/util/index.ts +0 -5
  442. package/src/util/navigation_utils.ts +0 -89
  443. package/src/util/number_format.ts +0 -46
  444. package/src/util/previews.ts +0 -131
  445. package/src/util/propertyConfigMapper.ts +0 -134
  446. package/src/util/property_utils.tsx +0 -236
  447. package/src/util/resolutions.ts +0 -96
  448. package/src/util/view_constants.ts +0 -33
  449. package/src/util/view_mode.ts +0 -176
@@ -1,354 +0,0 @@
1
- import type { OrderByTuple, Properties } from "@rebasepro/types";
2
-
3
- import React, { useCallback, useMemo, useState } from "react";
4
- import { EntityTableController } from "@rebasepro/cms-types";
5
- import {
6
- ArrowDownIcon,
7
- ArrowUpDownIcon,
8
- ArrowUpIcon,
9
- Button,
10
- ChevronDownIcon,
11
- ChevronUpIcon,
12
- cls,
13
- defaultBorderMixin,
14
- iconSize,
15
- IconButton,
16
- Popover,
17
- Typography,
18
- XIcon
19
- } from "@rebasepro/ui";
20
- import { useTranslation } from "@rebasepro/app";
21
- import { getSortablePropertyOptions } from "../CollectionTableBinding/column_utils";
22
- import { getIconForProperty } from "../../util/property_utils";
23
-
24
- export type SortButtonProps<M extends Record<string, unknown>> = {
25
- tableController: EntityTableController<M>;
26
- /**
27
- * Resolved properties of the collection. The sortable ones among them are
28
- * the options offered.
29
- */
30
- properties: Properties;
31
- /**
32
- * Toolbar showing icon-only controls (split view, or a layout too narrow
33
- * for the filters button's label). Only decides the icon size, which
34
- * follows that button — see `CollectionViewStartActions`.
35
- */
36
- compact?: boolean;
37
- };
38
-
39
- /**
40
- * Toolbar control that orders the collection.
41
- *
42
- * The table orders by clicking a column header, which leaves every other view
43
- * mode — list, cards, and either of them inside a split view — with no way to
44
- * order at all, even though the controller has always carried `sortBy` and the
45
- * query has always honoured it. This binds a control to it.
46
- *
47
- * It edits the *whole* order rather than a single key. A sort can have several
48
- * keys, applied in the order shown: the second decides between rows the first
49
- * calls equal, the third between rows the first two do. So the active keys sit
50
- * at the top, numbered and movable, and the properties below them are the ones
51
- * that can still be added under the last. Shift-clicking a column header does
52
- * the same thing from the table; this is the view for the modes that have no
53
- * headers, and the only place the order between keys can be changed.
54
- *
55
- * Clicking an active key flips its direction, so ascending → descending is one
56
- * click rather than a trip through a direction selector; clicking an inactive
57
- * one appends it ascending. The popover stays open through all of it — building
58
- * a two-key order out of a control that closes on every click is four round
59
- * trips through a button.
60
- */
61
- export function SortButton<M extends Record<string, unknown>>({
62
- tableController,
63
- properties,
64
- compact
65
- }: SortButtonProps<M>) {
66
-
67
- const { t } = useTranslation();
68
- const [open, setOpen] = useState(false);
69
-
70
- const options = useMemo(() => getSortablePropertyOptions(properties), [properties]);
71
-
72
- const {
73
- sortBy,
74
- setSortBy,
75
- setItemCount,
76
- pageSize,
77
- filterValues,
78
- checkFilterCombination
79
- } = tableController;
80
-
81
- const keys = useMemo(() => (sortBy ?? []) as OrderByTuple[], [sortBy]);
82
- const activeIndex = useMemo(() => {
83
- const index = new Map<string, { direction: "asc" | "desc"; position: number }>();
84
- keys.forEach(([key, direction], position) => {
85
- if (!index.has(key)) index.set(key, { direction,
86
- position });
87
- });
88
- return index;
89
- }, [keys]);
90
-
91
- const applySort = useCallback((next?: OrderByTuple[]) => {
92
- setSortBy?.((next && next.length > 0 ? next : undefined) as Parameters<NonNullable<typeof setSortBy>>[0]);
93
- // Re-ordering a partially loaded collection is the same event as
94
- // clicking a table header: the rows already fetched are no longer the
95
- // ones the query answers with, so pagination starts over rather than
96
- // holding on to a page of the previous order (`SelectableTable` resets
97
- // it for the same reason).
98
- if (pageSize !== undefined)
99
- setItemCount?.(pageSize);
100
- }, [setSortBy, setItemCount, pageSize]);
101
-
102
- /** Flip an active key's direction, or append an inactive one ascending. */
103
- const onOptionClick = useCallback((key: string) => {
104
- const active = activeIndex.get(key);
105
- if (!active) {
106
- applySort([...keys, [key, "asc"]]);
107
- return;
108
- }
109
- applySort(keys.map(entry => entry[0] === key
110
- ? [key, active.direction === "asc" ? "desc" : "asc"] as OrderByTuple
111
- : entry));
112
- }, [activeIndex, applySort, keys]);
113
-
114
- const removeKey = useCallback((key: string) => {
115
- applySort(keys.filter(([existing]) => existing !== key));
116
- }, [applySort, keys]);
117
-
118
- /** What a click on an active key will do to it, for the tooltip and the label. */
119
- const flipLabel = useCallback(
120
- (direction: "asc" | "desc") => direction === "asc" ? t("sort_descending") : t("sort_ascending"),
121
- [t]
122
- );
123
-
124
- /** Swap a key with its neighbour, which is what changes which one decides. */
125
- const moveKey = useCallback((position: number, delta: -1 | 1) => {
126
- const target = position + delta;
127
- if (target < 0 || target >= keys.length) return;
128
- const next = [...keys];
129
- [next[position], next[target]] = [next[target], next[position]];
130
- applySort(next);
131
- }, [applySort, keys]);
132
-
133
- if (!setSortBy || options.length === 0) {
134
- return null;
135
- }
136
-
137
- const primary = keys[0];
138
- // The key's own name when it has no option to be titled by — a sort can
139
- // outlive the column it names (a property hidden since, a `collection.sort`
140
- // on something the panel does not render). Falling back to "Sort" there
141
- // showed the neutral icon and the inactive label over a collection that
142
- // *was* sorted, which is the one thing this control exists to report.
143
- const primaryTitle = primary
144
- ? options.find(option => option.key === primary[0])?.title ?? primary[0]
145
- : undefined;
146
- const label = primaryTitle
147
- ? keys.length > 1
148
- ? `${t("sort_by")}: ${primaryTitle} +${keys.length - 1}`
149
- : `${t("sort_by")}: ${primaryTitle}`
150
- : t("sort");
151
-
152
- // Icon only, at every width. The arrow says which way the order runs; which
153
- // property it runs on is in the popover, and in the tooltip for anyone who
154
- // wants it without opening one.
155
- //
156
- // No `onClick` here and no `Tooltip` wrapper: the popover is controlled in
157
- // this component, and Radix's trigger — which reaches the button through
158
- // `asChild` — is what toggles it. A handler of our own would toggle it a
159
- // second time in the same click and the popover would never open; a
160
- // `Tooltip` in between would swallow the trigger's ref.
161
- const arrowSize = compact ? iconSize.smallest : iconSize.small;
162
- const primaryDirection = primary?.[1];
163
-
164
- const trigger = (
165
- <IconButton
166
- size={"small"}
167
- aria-label={label}
168
- title={label}
169
- className={cls(primaryTitle && "text-primary")}
170
- >
171
- {/* Same icon size as the filter controls it sits between: 16 in the
172
- split view's narrow toolbar, 20 everywhere else. It was a flat
173
- 16, which read as a smaller button next to them. */}
174
- {primaryDirection === "desc"
175
- ? <ArrowDownIcon size={arrowSize}/>
176
- : primaryDirection === "asc"
177
- ? <ArrowUpIcon size={arrowSize}/>
178
- : <ArrowUpDownIcon size={arrowSize}/>}
179
- </IconButton>
180
- );
181
-
182
- const inactiveOptions = options.filter(option => !activeIndex.has(option.key));
183
-
184
- return (
185
- <Popover
186
- open={open}
187
- onOpenChange={setOpen}
188
- modal={false}
189
- side="bottom"
190
- align="start"
191
- trigger={trigger}
192
- >
193
- <div className="py-2 min-w-[280px] max-w-[360px] flex flex-col">
194
- <Typography
195
- variant="caption"
196
- color="secondary"
197
- className="font-medium uppercase tracking-wider px-3 pb-1"
198
- >
199
- {t("sort_by")}
200
- </Typography>
201
-
202
- {keys.length > 0 && (
203
- // Bounded for the same reason the option list below is: the
204
- // active keys are as many as the collection has sortable
205
- // columns, and an unbounded column pushed "Clear sort" off
206
- // the bottom of the screen on a wide collection.
207
- <div className="flex flex-col max-h-[200px] overflow-y-auto">
208
- {keys.map(([key, direction], position) => {
209
- const option = options.find(o => o.key === key);
210
- return (
211
- <div
212
- key={key}
213
- className="flex items-center gap-1 pl-3 pr-2 py-1 text-sm text-primary"
214
- >
215
- {/* The rank, not decoration: it is the only
216
- thing on screen saying which key wins. */}
217
- <span className="flex-shrink-0 w-4 text-xs tabular-nums text-text-secondary dark:text-text-secondary-dark">
218
- {position + 1}
219
- </span>
220
- <button
221
- type="button"
222
- onClick={() => onOptionClick(key)}
223
- title={flipLabel(direction)}
224
- aria-label={`${option?.title ?? key} — ${t("sort_key_position", { position: position + 1 })}. ${flipLabel(direction)}`}
225
- className="flex items-center gap-2 flex-grow min-w-0 text-left cursor-pointer"
226
- >
227
- {option && (
228
- <span className="flex-shrink-0 flex items-center">
229
- {getIconForProperty(option.property, "smallest")}
230
- </span>
231
- )}
232
- <span className="flex-grow truncate">{option?.title ?? key}</span>
233
- <span className="flex-shrink-0 flex items-center">
234
- {direction === "desc"
235
- ? <ArrowDownIcon size={iconSize.smallest}/>
236
- : <ArrowUpIcon size={iconSize.smallest}/>}
237
- </span>
238
- </button>
239
- {/* Ruled off from the key itself. The row
240
- carries two arrows that mean different
241
- things — the direction this key runs, and
242
- which key outranks which — and side by
243
- side at 14px they read as one control
244
- with a stutter. The rule says where the
245
- key ends and the controls on it begin. */}
246
- <div className={cls(
247
- "flex-shrink-0 flex items-center gap-0.5 ml-1 pl-1 border-l",
248
- defaultBorderMixin
249
- )}>
250
- {keys.length > 1 && (
251
- <>
252
- <IconButton
253
- size="smallest"
254
- aria-label={t("sort_move_up")}
255
- title={t("sort_move_up")}
256
- disabled={position === 0}
257
- onClick={() => moveKey(position, -1)}
258
- >
259
- <ChevronUpIcon size={iconSize.smallest}/>
260
- </IconButton>
261
- <IconButton
262
- size="smallest"
263
- aria-label={t("sort_move_down")}
264
- title={t("sort_move_down")}
265
- disabled={position === keys.length - 1}
266
- onClick={() => moveKey(position, 1)}
267
- >
268
- <ChevronDownIcon size={iconSize.smallest}/>
269
- </IconButton>
270
- </>
271
- )}
272
- <IconButton
273
- size="smallest"
274
- aria-label={t("sort_remove_key")}
275
- title={t("sort_remove_key")}
276
- onClick={() => removeKey(key)}
277
- >
278
- <XIcon size={iconSize.smallest}/>
279
- </IconButton>
280
- </div>
281
- </div>
282
- );
283
- })}
284
- </div>
285
- )}
286
-
287
- {/* Only once there is a key to come *after*. With none, the
288
- "Sort by" heading above already names the list, and an empty
289
- caption here left a band of padding that read as a divider
290
- between two groups where there was only one. */}
291
- {keys.length > 0 && inactiveOptions.length > 0 && (
292
- <Typography
293
- variant="caption"
294
- color="secondary"
295
- className="font-medium uppercase tracking-wider px-3 pt-2 pb-1"
296
- >
297
- {t("sort_then_by")}
298
- </Typography>
299
- )}
300
-
301
- <div className="max-h-[280px] overflow-y-auto flex flex-col">
302
- {inactiveOptions.map(({ key, title, property }) => {
303
- // A driver may refuse a sort next to the filter that is
304
- // already applied. Offering it would turn the click
305
- // into a failed request, so it is disabled with the
306
- // same authority the table headers ask.
307
- const disabled = checkFilterCombination
308
- ? !checkFilterCombination(filterValues ?? {}, [...keys, [key, "asc"]])
309
- : false;
310
- return (
311
- <button
312
- key={key}
313
- type="button"
314
- // Not `menuitemradio`: a sort is a *list* of
315
- // keys, so picking one does not unpick another,
316
- // and the role announced the opposite. There is
317
- // no `role="menu"` around this either, which
318
- // left the radio orphaned as well as wrong.
319
- aria-label={keys.length > 0
320
- ? `${t("sort_then_by")} ${title}`
321
- : `${t("sort_by")} ${title}`}
322
- disabled={disabled}
323
- onClick={() => onOptionClick(key)}
324
- className={cls(
325
- "flex items-center gap-2 px-3 py-1.5 text-sm text-left w-full",
326
- disabled
327
- ? "opacity-50 cursor-not-allowed"
328
- : "cursor-pointer hover:bg-surface-accent-100 dark:hover:bg-surface-accent-900"
329
- )}
330
- >
331
- <span className="flex-shrink-0 flex items-center">
332
- {getIconForProperty(property, "smallest")}
333
- </span>
334
- <span className="flex-grow truncate">{title}</span>
335
- </button>
336
- );
337
- })}
338
- </div>
339
-
340
- <div className="px-3 pt-2">
341
- <Button
342
- variant="text"
343
- size="small"
344
- className="w-full"
345
- disabled={keys.length === 0}
346
- onClick={() => applySort(undefined)}
347
- >
348
- {t("clear_sort")}
349
- </Button>
350
- </div>
351
- </div>
352
- </Popover>
353
- );
354
- }
@@ -1,49 +0,0 @@
1
- import React from "react";
2
-
3
- import { IconButton, iconSize, PanelLeftCloseIcon, Tooltip } from "@rebasepro/ui";
4
- import { useTranslation } from "@rebasepro/app";
5
-
6
- import { useSplitView } from "./SplitViewContext";
7
-
8
- /**
9
- * Closes the list of a split view, leaving the open record on its own.
10
- *
11
- * It leads the record's own app bar, where the breadcrumb starts — this is the
12
- * entity pane's old "Open full screen" button, moved to that edge: closing the
13
- * list and opening the record full screen are the same thing, so there is one
14
- * control and one route (`#full`) rather than two. Full screen carries the
15
- * mirrored icon to bring the list back.
16
- *
17
- * A pane glyph rather than the double chevron it wore first. Now that the bar
18
- * ends in a ✕ that dismisses the record, an arrow pointing off the left edge of
19
- * the record's own bar was the other thing on it that read as "close me" — and
20
- * it is the one control here that does not act on the record at all.
21
- */
22
- export function SplitListCloseButton({ onBeforeHide }: {
23
- /**
24
- * Run before the layout changes, while this form is still mounted: the edit
25
- * view uses it to hand its edit in progress to the full-screen form that is
26
- * about to show the same record.
27
- */
28
- onBeforeHide?: () => void;
29
- } = {}) {
30
-
31
- const { t } = useTranslation();
32
- const splitView = useSplitView();
33
-
34
- if (!splitView?.detailOpen) return null;
35
-
36
- return (
37
- <Tooltip title={t("hide_list")}>
38
- <IconButton
39
- size="small"
40
- onClick={() => {
41
- onBeforeHide?.();
42
- splitView.openFullScreen();
43
- }}
44
- aria-label={t("hide_list")}>
45
- <PanelLeftCloseIcon size={iconSize.smallest}/>
46
- </IconButton>
47
- </Tooltip>
48
- );
49
- }
@@ -1,28 +0,0 @@
1
- import React from "react";
2
-
3
- import { IconButton, iconSize, PanelLeftOpenIcon, Tooltip } from "@rebasepro/ui";
4
- import { useTranslation } from "@rebasepro/app";
5
-
6
- /**
7
- * Brings the list back beside a record that was opened full screen.
8
- *
9
- * The mirror of {@link SplitListCloseButton}: the same edge of the same bar,
10
- * the same pane glyph opening rather than closing, and the same single route —
11
- * showing the list is dropping the `#full` hash. It replaces the back arrow
12
- * where it applies, because the list it unfolds already holds the record.
13
- */
14
- export function SplitListShowButton({ onClick }: { onClick: () => void }) {
15
-
16
- const { t } = useTranslation();
17
-
18
- return (
19
- <Tooltip title={t("show_list")}>
20
- <IconButton
21
- size="small"
22
- onClick={onClick}
23
- aria-label={t("show_list")}>
24
- <PanelLeftOpenIcon size={iconSize.smallest}/>
25
- </IconButton>
26
- </Tooltip>
27
- );
28
- }