@rebasepro/admin 0.0.1-canary.09e5ec5

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 (780) hide show
  1. package/LICENSE +6 -0
  2. package/dist/CollectionEditorDialog-B2M9lCyL.js +4720 -0
  3. package/dist/CollectionEditorDialog-B2M9lCyL.js.map +1 -0
  4. package/dist/CollectionsStudioView-WG6soyfs.js +218 -0
  5. package/dist/CollectionsStudioView-WG6soyfs.js.map +1 -0
  6. package/dist/ContentHomePage-CDF_a6Lp.js +1786 -0
  7. package/dist/ContentHomePage-CDF_a6Lp.js.map +1 -0
  8. package/dist/ExportCollectionAction-Dc0VOWMN.js +439 -0
  9. package/dist/ExportCollectionAction-Dc0VOWMN.js.map +1 -0
  10. package/dist/ImportCollectionAction-DpCagAOy.js +686 -0
  11. package/dist/ImportCollectionAction-DpCagAOy.js.map +1 -0
  12. package/dist/PropertyEditView-DS67DxoT.js +8138 -0
  13. package/dist/PropertyEditView-DS67DxoT.js.map +1 -0
  14. package/dist/RoleChip-QtUFXeTp.js +67 -0
  15. package/dist/RoleChip-QtUFXeTp.js.map +1 -0
  16. package/dist/RolesView-CIuYBimF.js +424 -0
  17. package/dist/RolesView-CIuYBimF.js.map +1 -0
  18. package/dist/UsersView-B5zelXnH.js +493 -0
  19. package/dist/UsersView-B5zelXnH.js.map +1 -0
  20. package/dist/collection_editor/CollectionEditorDialogsContext.d.ts +19 -0
  21. package/dist/collection_editor/ConfigControllerProvider.d.ts +45 -0
  22. package/dist/collection_editor/_cms_internals.d.ts +29 -0
  23. package/dist/collection_editor/api/generateCollectionApi.d.ts +77 -0
  24. package/dist/collection_editor/api/index.d.ts +1 -0
  25. package/dist/collection_editor/index.d.ts +16 -0
  26. package/dist/collection_editor/pgColumnToProperty.d.ts +6 -0
  27. package/dist/collection_editor/types/collection_editor_controller.d.ts +56 -0
  28. package/dist/collection_editor/types/collection_inference.d.ts +10 -0
  29. package/dist/collection_editor/types/config_controller.d.ts +91 -0
  30. package/dist/collection_editor/types/config_permissions.d.ts +19 -0
  31. package/dist/collection_editor/ui/AddKanbanColumnAction.d.ts +11 -0
  32. package/dist/collection_editor/ui/CollectionViewHeaderAction.d.ts +10 -0
  33. package/dist/collection_editor/ui/EditorCollectionAction.d.ts +2 -0
  34. package/dist/collection_editor/ui/EditorCollectionActionStart.d.ts +2 -0
  35. package/dist/collection_editor/ui/EditorEntityAction.d.ts +2 -0
  36. package/dist/collection_editor/ui/HomePageEditorCollectionAction.d.ts +2 -0
  37. package/dist/collection_editor/ui/KanbanSetupAction.d.ts +10 -0
  38. package/dist/collection_editor/ui/MissingReferenceWidget.d.ts +3 -0
  39. package/dist/collection_editor/ui/NewCollectionButton.d.ts +1 -0
  40. package/dist/collection_editor/ui/NewCollectionCard.d.ts +2 -0
  41. package/dist/collection_editor/ui/PropertyAddColumnComponent.d.ts +7 -0
  42. package/dist/collection_editor/ui/collection_editor/AICollectionGeneratorPopover.d.ts +36 -0
  43. package/dist/collection_editor/ui/collection_editor/AIModifiedPathsContext.d.ts +20 -0
  44. package/dist/collection_editor/ui/collection_editor/CollectionDetailsForm.d.ts +11 -0
  45. package/dist/collection_editor/ui/collection_editor/CollectionEditorDialog.d.ts +72 -0
  46. package/dist/collection_editor/ui/collection_editor/CollectionEditorWelcomeView.d.ts +19 -0
  47. package/dist/collection_editor/ui/collection_editor/CollectionJsonImportDialog.d.ts +7 -0
  48. package/dist/collection_editor/ui/collection_editor/CollectionPropertiesEditorForm.d.ts +17 -0
  49. package/dist/collection_editor/ui/collection_editor/CollectionRLSTab.d.ts +12 -0
  50. package/dist/collection_editor/ui/collection_editor/CollectionRelationsTab.d.ts +1 -0
  51. package/dist/collection_editor/ui/collection_editor/CollectionStudioView.d.ts +5 -0
  52. package/dist/collection_editor/ui/collection_editor/CollectionYupValidation.d.ts +14 -0
  53. package/dist/collection_editor/ui/collection_editor/CollectionsStudioView.d.ts +5 -0
  54. package/dist/collection_editor/ui/collection_editor/DisplaySettingsForm.d.ts +3 -0
  55. package/dist/collection_editor/ui/collection_editor/EntityActionsEditTab.d.ts +5 -0
  56. package/dist/collection_editor/ui/collection_editor/EntityActionsSelectDialog.d.ts +4 -0
  57. package/dist/collection_editor/ui/collection_editor/EntityCustomViewsSelectDialog.d.ts +4 -0
  58. package/dist/collection_editor/ui/collection_editor/EnumForm.d.ts +12 -0
  59. package/dist/collection_editor/ui/collection_editor/GeneralSettingsForm.d.ts +7 -0
  60. package/dist/collection_editor/ui/collection_editor/GetCodeDialog.d.ts +6 -0
  61. package/dist/collection_editor/ui/collection_editor/KanbanConfigSection.d.ts +4 -0
  62. package/dist/collection_editor/ui/collection_editor/LayoutModeSwitch.d.ts +5 -0
  63. package/dist/collection_editor/ui/collection_editor/PropertyEditView.d.ts +47 -0
  64. package/dist/collection_editor/ui/collection_editor/PropertyFieldPreview.d.ts +16 -0
  65. package/dist/collection_editor/ui/collection_editor/PropertyTree.d.ts +31 -0
  66. package/dist/collection_editor/ui/collection_editor/SubcollectionsEditTab.d.ts +11 -0
  67. package/dist/collection_editor/ui/collection_editor/SwitchControl.d.ts +8 -0
  68. package/dist/collection_editor/ui/collection_editor/ViewModeSwitch.d.ts +6 -0
  69. package/dist/collection_editor/ui/collection_editor/import/CollectionEditorImportDataPreview.d.ts +7 -0
  70. package/dist/collection_editor/ui/collection_editor/import/CollectionEditorImportMapping.d.ts +13 -0
  71. package/dist/collection_editor/ui/collection_editor/import/clean_import_data.d.ts +7 -0
  72. package/dist/collection_editor/ui/collection_editor/properties/BlockPropertyField.d.ts +7 -0
  73. package/dist/collection_editor/ui/collection_editor/properties/BooleanPropertyField.d.ts +3 -0
  74. package/dist/collection_editor/ui/collection_editor/properties/CommonPropertyFields.d.ts +10 -0
  75. package/dist/collection_editor/ui/collection_editor/properties/DateTimePropertyField.d.ts +3 -0
  76. package/dist/collection_editor/ui/collection_editor/properties/EnumPropertyField.d.ts +9 -0
  77. package/dist/collection_editor/ui/collection_editor/properties/KeyValuePropertyField.d.ts +3 -0
  78. package/dist/collection_editor/ui/collection_editor/properties/MapPropertyField.d.ts +7 -0
  79. package/dist/collection_editor/ui/collection_editor/properties/MarkdownPropertyField.d.ts +4 -0
  80. package/dist/collection_editor/ui/collection_editor/properties/NumberPropertyField.d.ts +3 -0
  81. package/dist/collection_editor/ui/collection_editor/properties/ReferencePropertyField.d.ts +14 -0
  82. package/dist/collection_editor/ui/collection_editor/properties/RelationPropertyField.d.ts +15 -0
  83. package/dist/collection_editor/ui/collection_editor/properties/RepeatPropertyField.d.ts +9 -0
  84. package/dist/collection_editor/ui/collection_editor/properties/StoragePropertyField.d.ts +5 -0
  85. package/dist/collection_editor/ui/collection_editor/properties/StringPropertyField.d.ts +5 -0
  86. package/dist/collection_editor/ui/collection_editor/properties/UrlPropertyField.d.ts +4 -0
  87. package/dist/collection_editor/ui/collection_editor/properties/advanced/AdvancedPropertyValidation.d.ts +3 -0
  88. package/dist/collection_editor/ui/collection_editor/properties/conditions/ConditionsEditor.d.ts +10 -0
  89. package/dist/collection_editor/ui/collection_editor/properties/conditions/ConditionsPanel.d.ts +3 -0
  90. package/dist/collection_editor/ui/collection_editor/properties/conditions/EnumConditionsEditor.d.ts +6 -0
  91. package/dist/collection_editor/ui/collection_editor/properties/conditions/index.d.ts +6 -0
  92. package/dist/collection_editor/ui/collection_editor/properties/conditions/property_paths.d.ts +19 -0
  93. package/dist/collection_editor/ui/collection_editor/properties/validation/ArrayPropertyValidation.d.ts +5 -0
  94. package/dist/collection_editor/ui/collection_editor/properties/validation/GeneralPropertyValidation.d.ts +4 -0
  95. package/dist/collection_editor/ui/collection_editor/properties/validation/NumberPropertyValidation.d.ts +3 -0
  96. package/dist/collection_editor/ui/collection_editor/properties/validation/StringPropertyValidation.d.ts +11 -0
  97. package/dist/collection_editor/ui/collection_editor/properties/validation/ValidationPanel.d.ts +3 -0
  98. package/dist/collection_editor/ui/collection_editor/templates/blog_template.d.ts +2 -0
  99. package/dist/collection_editor/ui/collection_editor/templates/pages_template.d.ts +2 -0
  100. package/dist/collection_editor/ui/collection_editor/templates/products_template.d.ts +2 -0
  101. package/dist/collection_editor/ui/collection_editor/templates/users_template.d.ts +2 -0
  102. package/dist/collection_editor/ui/collection_editor/util.d.ts +5 -0
  103. package/dist/collection_editor/ui/collection_editor/utils/strings.d.ts +1 -0
  104. package/dist/collection_editor/ui/collection_editor/utils/supported_fields.d.ts +3 -0
  105. package/dist/collection_editor/ui/collection_editor/utils/update_property_for_widget.d.ts +2 -0
  106. package/dist/collection_editor/useCollectionEditorController.d.ts +6 -0
  107. package/dist/collection_editor/useCollectionsConfigController.d.ts +6 -0
  108. package/dist/collection_editor/useLocalCollectionsConfigController.d.ts +6 -0
  109. package/dist/collection_editor/validateCollectionJson.d.ts +22 -0
  110. package/dist/collection_editor_ui.d.ts +8 -0
  111. package/dist/collection_editor_ui.js +11 -0
  112. package/dist/collection_editor_ui.js.map +1 -0
  113. package/dist/components/AdminModeSyncer.d.ts +17 -0
  114. package/dist/components/ArrayContainer.d.ts +58 -0
  115. package/dist/components/ClearFilterSortButton.d.ts +5 -0
  116. package/dist/components/CollectionEditorDialogs.d.ts +15 -0
  117. package/dist/components/DefaultAppBar.d.ts +29 -0
  118. package/dist/components/DefaultDrawer.d.ts +29 -0
  119. package/dist/components/DeleteEntityDialog.d.ts +13 -0
  120. package/dist/components/DrawerNavigationGroup.d.ts +49 -0
  121. package/dist/components/DrawerNavigationItem.d.ts +10 -0
  122. package/dist/components/EntityCollectionTable/EntityCollectionRowActions.d.ts +39 -0
  123. package/dist/components/EntityCollectionTable/EntityCollectionTable.d.ts +27 -0
  124. package/dist/components/EntityCollectionTable/EntityCollectionTableProps.d.ts +129 -0
  125. package/dist/components/EntityCollectionTable/PropertyTableCell.d.ts +26 -0
  126. package/dist/components/EntityCollectionTable/column_utils.d.ts +16 -0
  127. package/dist/components/EntityCollectionTable/fields/TableMultipleRelationField.d.ts +21 -0
  128. package/dist/components/EntityCollectionTable/fields/TableReferenceField.d.ts +22 -0
  129. package/dist/components/EntityCollectionTable/fields/TableRelationField.d.ts +22 -0
  130. package/dist/components/EntityCollectionTable/fields/TableRelationSelectorField.d.ts +20 -0
  131. package/dist/components/EntityCollectionTable/fields/TableStorageUpload.d.ts +35 -0
  132. package/dist/components/EntityCollectionTable/fields/VirtualTableDateField.d.ts +12 -0
  133. package/dist/components/EntityCollectionTable/fields/VirtualTableInput.d.ts +9 -0
  134. package/dist/components/EntityCollectionTable/fields/VirtualTableNumberInput.d.ts +8 -0
  135. package/dist/components/EntityCollectionTable/fields/VirtualTableSelect.d.ts +15 -0
  136. package/dist/components/EntityCollectionTable/fields/VirtualTableSwitch.d.ts +7 -0
  137. package/dist/components/EntityCollectionTable/fields/VirtualTableUserSelect.d.ts +12 -0
  138. package/dist/components/EntityCollectionTable/index.d.ts +6 -0
  139. package/dist/components/EntityCollectionTable/internal/CollectionTableToolbar.d.ts +21 -0
  140. package/dist/components/EntityCollectionTable/internal/EntityTableCell.d.ts +32 -0
  141. package/dist/components/EntityCollectionTable/internal/EntityTableCellActions.d.ts +9 -0
  142. package/dist/components/EntityCollectionTable/internal/common.d.ts +5 -0
  143. package/dist/components/EntityCollectionTable/internal/popup_field/PopupFormField.d.ts +27 -0
  144. package/dist/components/EntityCollectionTable/internal/popup_field/useDraggable.d.ts +13 -0
  145. package/dist/components/EntityCollectionTable/internal/popup_field/useWindowSize.d.ts +6 -0
  146. package/dist/components/EntityCollectionTable/table_bindings.d.ts +28 -0
  147. package/dist/components/EntityCollectionView/Board.d.ts +2 -0
  148. package/dist/components/EntityCollectionView/BoardColumn.d.ts +42 -0
  149. package/dist/components/EntityCollectionView/BoardColumnTitle.d.ts +9 -0
  150. package/dist/components/EntityCollectionView/BoardSortableList.d.ts +14 -0
  151. package/dist/components/EntityCollectionView/EntityBoardCard.d.ts +31 -0
  152. package/dist/components/EntityCollectionView/EntityCard.d.ts +20 -0
  153. package/dist/components/EntityCollectionView/EntityCollectionBoardView.d.ts +21 -0
  154. package/dist/components/EntityCollectionView/EntityCollectionCardView.d.ts +32 -0
  155. package/dist/components/EntityCollectionView/EntityCollectionListView.d.ts +34 -0
  156. package/dist/components/EntityCollectionView/EntityCollectionView.d.ts +64 -0
  157. package/dist/components/EntityCollectionView/EntityCollectionViewActions.d.ts +18 -0
  158. package/dist/components/EntityCollectionView/EntityCollectionViewStartActions.d.ts +18 -0
  159. package/dist/components/EntityCollectionView/FiltersDialog.d.ts +15 -0
  160. package/dist/components/EntityCollectionView/SplitListView.d.ts +57 -0
  161. package/dist/components/EntityCollectionView/ViewModeToggle.d.ts +44 -0
  162. package/dist/components/EntityCollectionView/board_types.d.ts +105 -0
  163. package/dist/components/EntityCollectionView/hooks/useCollectionInlineEditor.d.ts +12 -0
  164. package/dist/components/EntityCollectionView/hooks/useKanbanDragAndDrop.d.ts +19 -0
  165. package/dist/components/EntityCollectionView/useBoardDataController.d.ts +61 -0
  166. package/dist/components/EntityCollectionView/useEntityPreviewSlots.d.ts +101 -0
  167. package/dist/components/EntityCollectionView/useSelectionController.d.ts +2 -0
  168. package/dist/components/EntityCollectionView/utils.d.ts +3 -0
  169. package/dist/components/EntityEditView.d.ts +49 -0
  170. package/dist/components/EntityEditViewFormActions.d.ts +2 -0
  171. package/dist/components/EntityJsonPreview.d.ts +3 -0
  172. package/dist/components/EntityPreview.d.ts +56 -0
  173. package/dist/components/EntitySidePanel.d.ts +10 -0
  174. package/dist/components/EntityView.d.ts +12 -0
  175. package/dist/components/FieldCaption.d.ts +5 -0
  176. package/dist/components/HomePage/ContentHomePage.d.ts +11 -0
  177. package/dist/components/HomePage/FavouritesView.d.ts +3 -0
  178. package/dist/components/HomePage/HomePageDnD.d.ts +77 -0
  179. package/dist/components/HomePage/NavigationCard.d.ts +11 -0
  180. package/dist/components/HomePage/NavigationCardBinding.d.ts +18 -0
  181. package/dist/components/HomePage/NavigationGroup.d.ts +11 -0
  182. package/dist/components/HomePage/RenameGroupDialog.d.ts +9 -0
  183. package/dist/components/HomePage/SmallNavigationCard.d.ts +6 -0
  184. package/dist/components/HomePage/index.d.ts +4 -0
  185. package/dist/components/PropertyCollectionView.d.ts +24 -0
  186. package/dist/components/PropertyConfigBadge.d.ts +6 -0
  187. package/dist/components/PropertyIdCopyTooltip.d.ts +8 -0
  188. package/dist/components/RebaseAuthGate.d.ts +21 -0
  189. package/dist/components/RebaseCMS.d.ts +10 -0
  190. package/dist/components/RebaseLayout.d.ts +32 -0
  191. package/dist/components/RebaseNavigation.d.ts +24 -0
  192. package/dist/components/RebaseRouteDefs.d.ts +30 -0
  193. package/dist/components/RebaseShell.d.ts +25 -0
  194. package/dist/components/ReferenceTable/EntitySelectionTable.d.ts +59 -0
  195. package/dist/components/ReferenceWidget.d.ts +30 -0
  196. package/dist/components/RelationSelector.d.ts +32 -0
  197. package/dist/components/SearchIconsView.d.ts +5 -0
  198. package/dist/components/SelectableTable/SelectableTable.d.ts +95 -0
  199. package/dist/components/SelectableTable/SelectableTableContext.d.ts +4 -0
  200. package/dist/components/SelectableTable/SelectionStore.d.ts +26 -0
  201. package/dist/components/SelectableTable/filters/BooleanFilterField.d.ts +9 -0
  202. package/dist/components/SelectableTable/filters/DateTimeFilterField.d.ts +12 -0
  203. package/dist/components/SelectableTable/filters/ReferenceFilterField.d.ts +15 -0
  204. package/dist/components/SelectableTable/filters/RelationFilterField.d.ts +12 -0
  205. package/dist/components/SelectableTable/filters/StringNumberFilterField.d.ts +13 -0
  206. package/dist/components/SideDialogs.d.ts +25 -0
  207. package/dist/components/SideEntityProvider.d.ts +32 -0
  208. package/dist/components/UserSelector.d.ts +18 -0
  209. package/dist/components/admin/RoleChip.d.ts +4 -0
  210. package/dist/components/admin/RolesView.d.ts +4 -0
  211. package/dist/components/admin/UsersView.d.ts +4 -0
  212. package/dist/components/admin/index.d.ts +3 -0
  213. package/dist/components/app/AppBar.d.ts +12 -0
  214. package/dist/components/app/Drawer.d.ts +19 -0
  215. package/dist/components/app/Scaffold.d.ts +34 -0
  216. package/dist/components/app/index.d.ts +4 -0
  217. package/dist/components/app/useApp.d.ts +17 -0
  218. package/dist/components/common/default_entity_actions.d.ts +4 -0
  219. package/dist/components/common/index.d.ts +1 -0
  220. package/dist/components/field_configs.d.ts +7 -0
  221. package/dist/components/history/EntityHistoryEntry.d.ts +17 -0
  222. package/dist/components/history/EntityHistoryView.d.ts +6 -0
  223. package/dist/components/history/LastEditedByFormAction.d.ts +6 -0
  224. package/dist/components/history/LastEditedByIndicator.d.ts +10 -0
  225. package/dist/components/history/UserChip.d.ts +4 -0
  226. package/dist/components/history/index.d.ts +5 -0
  227. package/dist/components/index.d.ts +38 -0
  228. package/dist/contexts/BreacrumbsContext.d.ts +8 -0
  229. package/dist/contexts/SideDialogsControllerContext.d.ts +3 -0
  230. package/dist/contexts/SideEntityControllerContext.d.ts +3 -0
  231. package/dist/data_export/export/BasicExportAction.d.ts +7 -0
  232. package/dist/data_export/export/ExportCollectionAction.d.ts +11 -0
  233. package/dist/data_export/export/export.d.ts +22 -0
  234. package/dist/data_export/export/index.d.ts +3 -0
  235. package/dist/data_export/index.d.ts +1 -0
  236. package/dist/data_import/components/DataNewPropertiesMapping.d.ts +13 -0
  237. package/dist/data_import/components/ImportFileUpload.d.ts +3 -0
  238. package/dist/data_import/components/ImportNewPropertyFieldPreview.d.ts +9 -0
  239. package/dist/data_import/components/ImportSaveInProgress.d.ts +8 -0
  240. package/dist/data_import/components/index.d.ts +4 -0
  241. package/dist/data_import/hooks/index.d.ts +1 -0
  242. package/dist/data_import/hooks/useImportConfig.d.ts +2 -0
  243. package/dist/data_import/import/ImportCollectionAction.d.ts +15 -0
  244. package/dist/data_import/import/index.d.ts +1 -0
  245. package/dist/data_import/index.d.ts +5 -0
  246. package/dist/data_import/types/column_mapping.d.ts +20 -0
  247. package/dist/data_import/types/index.d.ts +1 -0
  248. package/dist/data_import/utils/data.d.ts +4 -0
  249. package/dist/data_import/utils/file_headers.d.ts +1 -0
  250. package/dist/data_import/utils/file_to_json.d.ts +16 -0
  251. package/dist/data_import/utils/get_import_inference_type.d.ts +2 -0
  252. package/dist/data_import/utils/get_properties_mapping.d.ts +1 -0
  253. package/dist/data_import/utils/index.d.ts +3 -0
  254. package/dist/editor/components/SlashCommandMenu.d.ts +6 -0
  255. package/dist/editor/components/editor-bubble-item.d.ts +8 -0
  256. package/dist/editor/components/editor-bubble.d.ts +8 -0
  257. package/dist/editor/components/image-bubble.d.ts +5 -0
  258. package/dist/editor/components/index.d.ts +16 -0
  259. package/dist/editor/components/table-bubble.d.ts +5 -0
  260. package/dist/editor/editor.d.ts +30 -0
  261. package/dist/editor/extensions/HighlightDecorationExtension.d.ts +24 -0
  262. package/dist/editor/extensions/Image/index.d.ts +6 -0
  263. package/dist/editor/extensions/Image.d.ts +6 -0
  264. package/dist/editor/extensions/TextLoadingDecorationExtension.d.ts +16 -0
  265. package/dist/editor/extensions/clipboard.d.ts +7 -0
  266. package/dist/editor/extensions/custom-keymap.d.ts +1 -0
  267. package/dist/editor/extensions/drag-and-drop.d.ts +9 -0
  268. package/dist/editor/hooks/useProseMirror.d.ts +13 -0
  269. package/dist/editor/hooks/useProseMirrorContext.d.ts +9 -0
  270. package/dist/editor/index.d.ts +2 -0
  271. package/dist/editor/markdown.d.ts +5 -0
  272. package/dist/editor/nodeViews/ImageComponent.d.ts +3 -0
  273. package/dist/editor/nodeViews/ReactNodeView.d.ts +29 -0
  274. package/dist/editor/nodeViews/TaskItemComponent.d.ts +3 -0
  275. package/dist/editor/nodeViews/index.d.ts +6 -0
  276. package/dist/editor/plugins/index.d.ts +2 -0
  277. package/dist/editor/plugins/inputrules.d.ts +6 -0
  278. package/dist/editor/plugins/placeholderPlugin.d.ts +3 -0
  279. package/dist/editor/plugins/slashCommandPlugin.d.ts +12 -0
  280. package/dist/editor/schema.d.ts +2 -0
  281. package/dist/editor/selectors/ai-selector.d.ts +0 -0
  282. package/dist/editor/selectors/color-selector.d.ts +10 -0
  283. package/dist/editor/selectors/link-selector.d.ts +8 -0
  284. package/dist/editor/selectors/node-selector.d.ts +15 -0
  285. package/dist/editor/selectors/text-buttons.d.ts +1 -0
  286. package/dist/editor/types.d.ts +5 -0
  287. package/dist/editor/useProseMirror.d.ts +16 -0
  288. package/dist/editor/utils/prosemirror-utils.d.ts +7 -0
  289. package/dist/editor/utils/remove_classes.d.ts +1 -0
  290. package/dist/editor/utils/useDebouncedCallback.d.ts +1 -0
  291. package/dist/editor.js +3834 -0
  292. package/dist/editor.js.map +1 -0
  293. package/dist/form/EntityForm.d.ts +10 -0
  294. package/dist/form/EntityFormActions.d.ts +2 -0
  295. package/dist/form/PropertyFieldBinding.d.ts +30 -0
  296. package/dist/form/components/ErrorFocus.d.ts +4 -0
  297. package/dist/form/components/FieldHelperText.d.ts +12 -0
  298. package/dist/form/components/FormEntry.d.ts +6 -0
  299. package/dist/form/components/FormLayout.d.ts +5 -0
  300. package/dist/form/components/LabelWithIcon.d.ts +14 -0
  301. package/dist/form/components/LabelWithIconAndTooltip.d.ts +15 -0
  302. package/dist/form/components/LocalChangesMenu.d.ts +11 -0
  303. package/dist/form/components/StorageItemPreview.d.ts +14 -0
  304. package/dist/form/components/StorageUploadProgress.d.ts +10 -0
  305. package/dist/form/components/index.d.ts +5 -0
  306. package/dist/form/field_bindings/ArrayCustomShapedFieldBinding.d.ts +10 -0
  307. package/dist/form/field_bindings/ArrayOfReferencesFieldBinding.d.ts +13 -0
  308. package/dist/form/field_bindings/BlockFieldBinding.d.ts +11 -0
  309. package/dist/form/field_bindings/DateTimeFieldBinding.d.ts +12 -0
  310. package/dist/form/field_bindings/KeyValueFieldBinding.d.ts +8 -0
  311. package/dist/form/field_bindings/MapFieldBinding.d.ts +10 -0
  312. package/dist/form/field_bindings/MarkdownEditorFieldBinding.d.ts +12 -0
  313. package/dist/form/field_bindings/MultiSelectFieldBinding.d.ts +10 -0
  314. package/dist/form/field_bindings/MultipleRelationFieldBinding.d.ts +10 -0
  315. package/dist/form/field_bindings/ReadOnlyFieldBinding.d.ts +11 -0
  316. package/dist/form/field_bindings/ReferenceAsStringFieldBinding.d.ts +10 -0
  317. package/dist/form/field_bindings/ReferenceFieldBinding.d.ts +10 -0
  318. package/dist/form/field_bindings/RelationFieldBinding.d.ts +3 -0
  319. package/dist/form/field_bindings/RepeatFieldBinding.d.ts +11 -0
  320. package/dist/form/field_bindings/SelectFieldBinding.d.ts +11 -0
  321. package/dist/form/field_bindings/StorageUploadFieldBinding.d.ts +21 -0
  322. package/dist/form/field_bindings/SwitchFieldBinding.d.ts +10 -0
  323. package/dist/form/field_bindings/TextFieldBinding.d.ts +9 -0
  324. package/dist/form/field_bindings/UserSelectFieldBinding.d.ts +14 -0
  325. package/dist/form/index.d.ts +20 -0
  326. package/dist/form/useClearRestoreValue.d.ts +13 -0
  327. package/dist/form/validation.d.ts +21 -0
  328. package/dist/hooks/index.d.ts +15 -0
  329. package/dist/hooks/navigation/contexts/CollectionRegistryContext.d.ts +5 -0
  330. package/dist/hooks/navigation/contexts/NavigationStateContext.d.ts +4 -0
  331. package/dist/hooks/navigation/contexts/UrlContext.d.ts +4 -0
  332. package/dist/hooks/navigation/contexts/index.d.ts +3 -0
  333. package/dist/hooks/navigation/useBuildCollectionRegistryController.d.ts +7 -0
  334. package/dist/hooks/navigation/useBuildNavigationStateController.d.ts +34 -0
  335. package/dist/hooks/navigation/useBuildUrlController.d.ts +7 -0
  336. package/dist/hooks/navigation/useNavigationRegistry.d.ts +11 -0
  337. package/dist/hooks/navigation/useNavigationResolution.d.ts +7 -0
  338. package/dist/hooks/navigation/useNavigationURLs.d.ts +11 -0
  339. package/dist/hooks/navigation/useResolvedCollections.d.ts +28 -0
  340. package/dist/hooks/navigation/useResolvedViews.d.ts +29 -0
  341. package/dist/hooks/navigation/useTopLevelNavigation.d.ts +27 -0
  342. package/dist/hooks/navigation/utils.d.ts +12 -0
  343. package/dist/hooks/useBreadcrumbsController.d.ts +42 -0
  344. package/dist/hooks/useBuildSideDialogsController.d.ts +2 -0
  345. package/dist/hooks/useBuildSideEntityController.d.ts +6 -0
  346. package/dist/hooks/useCMSContext.d.ts +27 -0
  347. package/dist/hooks/useEntityHistory.d.ts +30 -0
  348. package/dist/hooks/useEntitySelectionDialog.d.ts +18 -0
  349. package/dist/hooks/useResolvedNavigationFrom.d.ts +73 -0
  350. package/dist/hooks/useSideDialogsController.d.ts +19 -0
  351. package/dist/hooks/useSideEntityController.d.ts +11 -0
  352. package/dist/index-CBhrgpR7.js +12 -0
  353. package/dist/index-CBhrgpR7.js.map +1 -0
  354. package/dist/index-CHxgwt6E.js +456 -0
  355. package/dist/index-CHxgwt6E.js.map +1 -0
  356. package/dist/index-Dey5WJpO.js +8 -0
  357. package/dist/index-Dey5WJpO.js.map +1 -0
  358. package/dist/index.d.ts +12 -0
  359. package/dist/index.js +799 -0
  360. package/dist/index.js.map +1 -0
  361. package/dist/markdown-z2Ir7Cgo.js +618 -0
  362. package/dist/markdown-z2Ir7Cgo.js.map +1 -0
  363. package/dist/preview/PropertyPreview.d.ts +7 -0
  364. package/dist/preview/components/ArrayEnumPreview.d.ts +11 -0
  365. package/dist/preview/components/BooleanPreview.d.ts +11 -0
  366. package/dist/preview/components/DatePreview.d.ts +17 -0
  367. package/dist/preview/components/EmptyValue.d.ts +6 -0
  368. package/dist/preview/components/EnumValuesChip.d.ts +13 -0
  369. package/dist/preview/components/ImagePreview.d.ts +16 -0
  370. package/dist/preview/components/ReferencePreview.d.ts +17 -0
  371. package/dist/preview/components/RelationPreview.d.ts +17 -0
  372. package/dist/preview/components/StorageThumbnail.d.ts +15 -0
  373. package/dist/preview/components/UrlComponentPreview.d.ts +14 -0
  374. package/dist/preview/components/UserPreview.d.ts +9 -0
  375. package/dist/preview/index.d.ts +23 -0
  376. package/dist/preview/property_previews/ArrayOfMapsPreview.d.ts +6 -0
  377. package/dist/preview/property_previews/ArrayOfReferencesPreview.d.ts +6 -0
  378. package/dist/preview/property_previews/ArrayOfRelationsPreview.d.ts +6 -0
  379. package/dist/preview/property_previews/ArrayOfStorageComponentsPreview.d.ts +6 -0
  380. package/dist/preview/property_previews/ArrayOfStringsPreview.d.ts +6 -0
  381. package/dist/preview/property_previews/ArrayOneOfPreview.d.ts +6 -0
  382. package/dist/preview/property_previews/ArrayPropertyEnumPreview.d.ts +6 -0
  383. package/dist/preview/property_previews/ArrayPropertyPreview.d.ts +6 -0
  384. package/dist/preview/property_previews/MapPropertyPreview.d.ts +9 -0
  385. package/dist/preview/property_previews/NumberPropertyPreview.d.ts +7 -0
  386. package/dist/preview/property_previews/SkeletonPropertyComponent.d.ts +14 -0
  387. package/dist/preview/property_previews/StringPropertyPreview.d.ts +7 -0
  388. package/dist/preview/util.d.ts +7 -0
  389. package/dist/routes/CustomViewRoute.d.ts +4 -0
  390. package/dist/routes/RebaseRoute.d.ts +1 -0
  391. package/dist/routes/index.d.ts +2 -0
  392. package/dist/types/components/EntityFormActionsProps.d.ts +19 -0
  393. package/dist/types/components/EntityFormProps.d.ts +48 -0
  394. package/dist/types/components/PropertyPreviewProps.d.ts +47 -0
  395. package/dist/types/components/formex.d.ts +40 -0
  396. package/dist/types/components/index.d.ts +3 -0
  397. package/dist/types/fields.d.ts +221 -0
  398. package/dist/types/index.d.ts +2 -0
  399. package/dist/useEntityHistory-Dcj4zhGj.js +121 -0
  400. package/dist/useEntityHistory-Dcj4zhGj.js.map +1 -0
  401. package/dist/util/entity_actions.d.ts +2 -0
  402. package/dist/util/index.d.ts +5 -0
  403. package/dist/util/navigation_utils.d.ts +17 -0
  404. package/dist/util/previews.d.ts +4 -0
  405. package/dist/util/property_utils.d.ts +25 -0
  406. package/dist/util/resolutions.d.ts +9 -0
  407. package/dist/util-BQ82ySL3.js +27720 -0
  408. package/dist/util-BQ82ySL3.js.map +1 -0
  409. package/package.json +171 -0
  410. package/src/collection_editor/CollectionEditorDialogsContext.tsx +25 -0
  411. package/src/collection_editor/ConfigControllerProvider.tsx +407 -0
  412. package/src/collection_editor/_cms_internals.ts +41 -0
  413. package/src/collection_editor/api/generateCollectionApi.ts +125 -0
  414. package/src/collection_editor/api/index.ts +1 -0
  415. package/src/collection_editor/index.ts +63 -0
  416. package/src/collection_editor/pgColumnToProperty.ts +273 -0
  417. package/src/collection_editor/types/collection_editor_controller.tsx +64 -0
  418. package/src/collection_editor/types/collection_inference.ts +17 -0
  419. package/src/collection_editor/types/config_controller.tsx +109 -0
  420. package/src/collection_editor/types/config_permissions.ts +20 -0
  421. package/src/collection_editor/ui/AddKanbanColumnAction.tsx +186 -0
  422. package/src/collection_editor/ui/CollectionViewHeaderAction.tsx +50 -0
  423. package/src/collection_editor/ui/EditorCollectionAction.tsx +58 -0
  424. package/src/collection_editor/ui/EditorCollectionActionStart.tsx +93 -0
  425. package/src/collection_editor/ui/EditorEntityAction.tsx +54 -0
  426. package/src/collection_editor/ui/HomePageEditorCollectionAction.tsx +120 -0
  427. package/src/collection_editor/ui/KanbanSetupAction.tsx +40 -0
  428. package/src/collection_editor/ui/MissingReferenceWidget.tsx +33 -0
  429. package/src/collection_editor/ui/NewCollectionButton.tsx +27 -0
  430. package/src/collection_editor/ui/NewCollectionCard.tsx +53 -0
  431. package/src/collection_editor/ui/PropertyAddColumnComponent.tsx +53 -0
  432. package/src/collection_editor/ui/collection_editor/AICollectionGeneratorPopover.tsx +246 -0
  433. package/src/collection_editor/ui/collection_editor/AIModifiedPathsContext.tsx +90 -0
  434. package/src/collection_editor/ui/collection_editor/CollectionDetailsForm.tsx +417 -0
  435. package/src/collection_editor/ui/collection_editor/CollectionEditorDialog.tsx +977 -0
  436. package/src/collection_editor/ui/collection_editor/CollectionEditorWelcomeView.tsx +286 -0
  437. package/src/collection_editor/ui/collection_editor/CollectionJsonImportDialog.tsx +164 -0
  438. package/src/collection_editor/ui/collection_editor/CollectionPropertiesEditorForm.tsx +589 -0
  439. package/src/collection_editor/ui/collection_editor/CollectionRLSTab.tsx +332 -0
  440. package/src/collection_editor/ui/collection_editor/CollectionRelationsTab.tsx +242 -0
  441. package/src/collection_editor/ui/collection_editor/CollectionStudioView.tsx +101 -0
  442. package/src/collection_editor/ui/collection_editor/CollectionYupValidation.tsx +9 -0
  443. package/src/collection_editor/ui/collection_editor/CollectionsStudioView.tsx +133 -0
  444. package/src/collection_editor/ui/collection_editor/DisplaySettingsForm.tsx +302 -0
  445. package/src/collection_editor/ui/collection_editor/EntityActionsEditTab.tsx +151 -0
  446. package/src/collection_editor/ui/collection_editor/EntityActionsSelectDialog.tsx +40 -0
  447. package/src/collection_editor/ui/collection_editor/EntityCustomViewsSelectDialog.tsx +39 -0
  448. package/src/collection_editor/ui/collection_editor/EnumForm.tsx +358 -0
  449. package/src/collection_editor/ui/collection_editor/GeneralSettingsForm.tsx +252 -0
  450. package/src/collection_editor/ui/collection_editor/GetCodeDialog.tsx +142 -0
  451. package/src/collection_editor/ui/collection_editor/KanbanConfigSection.tsx +194 -0
  452. package/src/collection_editor/ui/collection_editor/LayoutModeSwitch.tsx +41 -0
  453. package/src/collection_editor/ui/collection_editor/PropertyEditView.tsx +777 -0
  454. package/src/collection_editor/ui/collection_editor/PropertyFieldPreview.tsx +155 -0
  455. package/src/collection_editor/ui/collection_editor/PropertyTree.tsx +350 -0
  456. package/src/collection_editor/ui/collection_editor/SubcollectionsEditTab.tsx +241 -0
  457. package/src/collection_editor/ui/collection_editor/SwitchControl.tsx +39 -0
  458. package/src/collection_editor/ui/collection_editor/ViewModeSwitch.tsx +47 -0
  459. package/src/collection_editor/ui/collection_editor/import/CollectionEditorImportDataPreview.tsx +67 -0
  460. package/src/collection_editor/ui/collection_editor/import/CollectionEditorImportMapping.tsx +295 -0
  461. package/src/collection_editor/ui/collection_editor/import/clean_import_data.ts +57 -0
  462. package/src/collection_editor/ui/collection_editor/properties/BlockPropertyField.tsx +147 -0
  463. package/src/collection_editor/ui/collection_editor/properties/BooleanPropertyField.tsx +41 -0
  464. package/src/collection_editor/ui/collection_editor/properties/CommonPropertyFields.tsx +113 -0
  465. package/src/collection_editor/ui/collection_editor/properties/DateTimePropertyField.tsx +250 -0
  466. package/src/collection_editor/ui/collection_editor/properties/EnumPropertyField.tsx +125 -0
  467. package/src/collection_editor/ui/collection_editor/properties/KeyValuePropertyField.tsx +20 -0
  468. package/src/collection_editor/ui/collection_editor/properties/MapPropertyField.tsx +153 -0
  469. package/src/collection_editor/ui/collection_editor/properties/MarkdownPropertyField.tsx +210 -0
  470. package/src/collection_editor/ui/collection_editor/properties/NumberPropertyField.tsx +117 -0
  471. package/src/collection_editor/ui/collection_editor/properties/ReferencePropertyField.tsx +163 -0
  472. package/src/collection_editor/ui/collection_editor/properties/RelationPropertyField.tsx +346 -0
  473. package/src/collection_editor/ui/collection_editor/properties/RepeatPropertyField.tsx +106 -0
  474. package/src/collection_editor/ui/collection_editor/properties/StoragePropertyField.tsx +360 -0
  475. package/src/collection_editor/ui/collection_editor/properties/StringPropertyField.tsx +148 -0
  476. package/src/collection_editor/ui/collection_editor/properties/UrlPropertyField.tsx +90 -0
  477. package/src/collection_editor/ui/collection_editor/properties/advanced/AdvancedPropertyValidation.tsx +47 -0
  478. package/src/collection_editor/ui/collection_editor/properties/conditions/ConditionsEditor.tsx +915 -0
  479. package/src/collection_editor/ui/collection_editor/properties/conditions/ConditionsPanel.tsx +29 -0
  480. package/src/collection_editor/ui/collection_editor/properties/conditions/EnumConditionsEditor.tsx +614 -0
  481. package/src/collection_editor/ui/collection_editor/properties/conditions/index.ts +6 -0
  482. package/src/collection_editor/ui/collection_editor/properties/conditions/property_paths.ts +93 -0
  483. package/src/collection_editor/ui/collection_editor/properties/validation/ArrayPropertyValidation.tsx +52 -0
  484. package/src/collection_editor/ui/collection_editor/properties/validation/GeneralPropertyValidation.tsx +63 -0
  485. package/src/collection_editor/ui/collection_editor/properties/validation/NumberPropertyValidation.tsx +117 -0
  486. package/src/collection_editor/ui/collection_editor/properties/validation/StringPropertyValidation.tsx +154 -0
  487. package/src/collection_editor/ui/collection_editor/properties/validation/ValidationPanel.tsx +29 -0
  488. package/src/collection_editor/ui/collection_editor/templates/blog_template.ts +112 -0
  489. package/src/collection_editor/ui/collection_editor/templates/pages_template.ts +183 -0
  490. package/src/collection_editor/ui/collection_editor/templates/products_template.ts +88 -0
  491. package/src/collection_editor/ui/collection_editor/templates/users_template.ts +42 -0
  492. package/src/collection_editor/ui/collection_editor/util.ts +28 -0
  493. package/src/collection_editor/ui/collection_editor/utils/strings.ts +1 -0
  494. package/src/collection_editor/ui/collection_editor/utils/supported_fields.tsx +34 -0
  495. package/src/collection_editor/ui/collection_editor/utils/update_property_for_widget.ts +281 -0
  496. package/src/collection_editor/useCollectionEditorController.tsx +9 -0
  497. package/src/collection_editor/useCollectionsConfigController.tsx +9 -0
  498. package/src/collection_editor/useLocalCollectionsConfigController.tsx +120 -0
  499. package/src/collection_editor/validateCollectionJson.ts +379 -0
  500. package/src/collection_editor_ui.ts +15 -0
  501. package/src/components/AdminModeSyncer.tsx +56 -0
  502. package/src/components/ArrayContainer.tsx +538 -0
  503. package/src/components/ClearFilterSortButton.tsx +48 -0
  504. package/src/components/CollectionEditorDialogs.tsx +68 -0
  505. package/src/components/DefaultAppBar.tsx +242 -0
  506. package/src/components/DefaultDrawer.tsx +347 -0
  507. package/src/components/DeleteEntityDialog.tsx +182 -0
  508. package/src/components/DrawerNavigationGroup.tsx +130 -0
  509. package/src/components/DrawerNavigationItem.tsx +65 -0
  510. package/src/components/EntityCollectionTable/EntityCollectionRowActions.tsx +233 -0
  511. package/src/components/EntityCollectionTable/EntityCollectionTable.tsx +385 -0
  512. package/src/components/EntityCollectionTable/EntityCollectionTableProps.tsx +171 -0
  513. package/src/components/EntityCollectionTable/PropertyTableCell.tsx +340 -0
  514. package/src/components/EntityCollectionTable/column_utils.tsx +75 -0
  515. package/src/components/EntityCollectionTable/fields/TableMultipleRelationField.tsx +130 -0
  516. package/src/components/EntityCollectionTable/fields/TableReferenceField.tsx +172 -0
  517. package/src/components/EntityCollectionTable/fields/TableRelationField.tsx +181 -0
  518. package/src/components/EntityCollectionTable/fields/TableRelationSelectorField.tsx +42 -0
  519. package/src/components/EntityCollectionTable/fields/TableStorageUpload.tsx +322 -0
  520. package/src/components/EntityCollectionTable/fields/VirtualTableDateField.tsx +39 -0
  521. package/src/components/EntityCollectionTable/fields/VirtualTableInput.tsx +90 -0
  522. package/src/components/EntityCollectionTable/fields/VirtualTableNumberInput.tsx +80 -0
  523. package/src/components/EntityCollectionTable/fields/VirtualTableSelect.tsx +133 -0
  524. package/src/components/EntityCollectionTable/fields/VirtualTableSwitch.tsx +32 -0
  525. package/src/components/EntityCollectionTable/fields/VirtualTableUserSelect.tsx +41 -0
  526. package/src/components/EntityCollectionTable/index.tsx +14 -0
  527. package/src/components/EntityCollectionTable/internal/CollectionTableToolbar.tsx +102 -0
  528. package/src/components/EntityCollectionTable/internal/EntityTableCell.tsx +310 -0
  529. package/src/components/EntityCollectionTable/internal/EntityTableCellActions.tsx +81 -0
  530. package/src/components/EntityCollectionTable/internal/common.tsx +73 -0
  531. package/src/components/EntityCollectionTable/internal/popup_field/PopupFormField.tsx +418 -0
  532. package/src/components/EntityCollectionTable/internal/popup_field/useDraggable.tsx +96 -0
  533. package/src/components/EntityCollectionTable/internal/popup_field/useWindowSize.tsx +22 -0
  534. package/src/components/EntityCollectionTable/table_bindings.tsx +346 -0
  535. package/src/components/EntityCollectionView/Board.tsx +474 -0
  536. package/src/components/EntityCollectionView/BoardColumn.tsx +158 -0
  537. package/src/components/EntityCollectionView/BoardColumnTitle.tsx +45 -0
  538. package/src/components/EntityCollectionView/BoardSortableList.tsx +177 -0
  539. package/src/components/EntityCollectionView/EntityBoardCard.tsx +264 -0
  540. package/src/components/EntityCollectionView/EntityCard.tsx +224 -0
  541. package/src/components/EntityCollectionView/EntityCollectionBoardView.tsx +614 -0
  542. package/src/components/EntityCollectionView/EntityCollectionCardView.tsx +267 -0
  543. package/src/components/EntityCollectionView/EntityCollectionListView.tsx +816 -0
  544. package/src/components/EntityCollectionView/EntityCollectionView.tsx +1277 -0
  545. package/src/components/EntityCollectionView/EntityCollectionViewActions.tsx +179 -0
  546. package/src/components/EntityCollectionView/EntityCollectionViewStartActions.tsx +148 -0
  547. package/src/components/EntityCollectionView/FiltersDialog.tsx +242 -0
  548. package/src/components/EntityCollectionView/SplitListView.tsx +314 -0
  549. package/src/components/EntityCollectionView/ViewModeToggle.tsx +199 -0
  550. package/src/components/EntityCollectionView/board_types.ts +113 -0
  551. package/src/components/EntityCollectionView/hooks/useCollectionInlineEditor.ts +79 -0
  552. package/src/components/EntityCollectionView/hooks/useKanbanDragAndDrop.ts +140 -0
  553. package/src/components/EntityCollectionView/useBoardDataController.tsx +675 -0
  554. package/src/components/EntityCollectionView/useEntityPreviewSlots.ts +442 -0
  555. package/src/components/EntityCollectionView/useSelectionController.tsx +39 -0
  556. package/src/components/EntityCollectionView/utils.ts +19 -0
  557. package/src/components/EntityEditView.tsx +632 -0
  558. package/src/components/EntityEditViewFormActions.tsx +352 -0
  559. package/src/components/EntityJsonPreview.tsx +66 -0
  560. package/src/components/EntityPreview.tsx +372 -0
  561. package/src/components/EntitySidePanel.tsx +160 -0
  562. package/src/components/EntityView.tsx +69 -0
  563. package/src/components/FieldCaption.tsx +14 -0
  564. package/src/components/HomePage/ContentHomePage.tsx +567 -0
  565. package/src/components/HomePage/FavouritesView.tsx +61 -0
  566. package/src/components/HomePage/HomePageDnD.tsx +703 -0
  567. package/src/components/HomePage/NavigationCard.tsx +88 -0
  568. package/src/components/HomePage/NavigationCardBinding.tsx +108 -0
  569. package/src/components/HomePage/NavigationGroup.tsx +157 -0
  570. package/src/components/HomePage/RenameGroupDialog.tsx +123 -0
  571. package/src/components/HomePage/SmallNavigationCard.tsx +46 -0
  572. package/src/components/HomePage/index.tsx +5 -0
  573. package/src/components/PropertyCollectionView.tsx +335 -0
  574. package/src/components/PropertyConfigBadge.tsx +27 -0
  575. package/src/components/PropertyIdCopyTooltip.tsx +48 -0
  576. package/src/components/RebaseAuthGate.tsx +42 -0
  577. package/src/components/RebaseCMS.tsx +27 -0
  578. package/src/components/RebaseLayout.tsx +73 -0
  579. package/src/components/RebaseNavigation.tsx +230 -0
  580. package/src/components/RebaseRouteDefs.tsx +130 -0
  581. package/src/components/RebaseShell.tsx +70 -0
  582. package/src/components/ReferenceTable/EntitySelectionTable.tsx +363 -0
  583. package/src/components/ReferenceWidget.tsx +155 -0
  584. package/src/components/RelationSelector.tsx +672 -0
  585. package/src/components/SearchIconsView.tsx +96 -0
  586. package/src/components/SelectableTable/SelectableTable.tsx +356 -0
  587. package/src/components/SelectableTable/SelectableTableContext.tsx +6 -0
  588. package/src/components/SelectableTable/SelectionStore.ts +67 -0
  589. package/src/components/SelectableTable/filters/BooleanFilterField.tsx +51 -0
  590. package/src/components/SelectableTable/filters/DateTimeFilterField.tsx +125 -0
  591. package/src/components/SelectableTable/filters/ReferenceFilterField.tsx +208 -0
  592. package/src/components/SelectableTable/filters/RelationFilterField.tsx +138 -0
  593. package/src/components/SelectableTable/filters/StringNumberFilterField.tsx +221 -0
  594. package/src/components/SideDialogs.tsx +208 -0
  595. package/src/components/SideEntityProvider.tsx +76 -0
  596. package/src/components/UserSelector.tsx +339 -0
  597. package/src/components/admin/RoleChip.tsx +23 -0
  598. package/src/components/admin/RolesView.tsx +419 -0
  599. package/src/components/admin/UsersView.tsx +782 -0
  600. package/src/components/admin/index.ts +3 -0
  601. package/src/components/app/AppBar.tsx +17 -0
  602. package/src/components/app/Drawer.tsx +30 -0
  603. package/src/components/app/Scaffold.tsx +242 -0
  604. package/src/components/app/index.ts +4 -0
  605. package/src/components/app/useApp.tsx +36 -0
  606. package/src/components/common/default_entity_actions.tsx +156 -0
  607. package/src/components/common/index.ts +1 -0
  608. package/src/components/field_configs.tsx +423 -0
  609. package/src/components/history/EntityHistoryEntry.tsx +182 -0
  610. package/src/components/history/EntityHistoryView.tsx +191 -0
  611. package/src/components/history/LastEditedByFormAction.tsx +24 -0
  612. package/src/components/history/LastEditedByIndicator.tsx +98 -0
  613. package/src/components/history/UserChip.tsx +15 -0
  614. package/src/components/history/index.tsx +5 -0
  615. package/src/components/index.ts +55 -0
  616. package/src/contexts/BreacrumbsContext.tsx +53 -0
  617. package/src/contexts/SideDialogsControllerContext.tsx +5 -0
  618. package/src/contexts/SideEntityControllerContext.tsx +5 -0
  619. package/src/data_export/export/BasicExportAction.tsx +143 -0
  620. package/src/data_export/export/ExportCollectionAction.tsx +266 -0
  621. package/src/data_export/export/export.ts +248 -0
  622. package/src/data_export/export/index.ts +3 -0
  623. package/src/data_export/index.ts +1 -0
  624. package/src/data_import/components/DataNewPropertiesMapping.tsx +231 -0
  625. package/src/data_import/components/ImportFileUpload.tsx +43 -0
  626. package/src/data_import/components/ImportNewPropertyFieldPreview.tsx +60 -0
  627. package/src/data_import/components/ImportSaveInProgress.tsx +121 -0
  628. package/src/data_import/components/index.ts +4 -0
  629. package/src/data_import/hooks/index.ts +1 -0
  630. package/src/data_import/hooks/useImportConfig.tsx +34 -0
  631. package/src/data_import/import/ImportCollectionAction.tsx +436 -0
  632. package/src/data_import/import/index.ts +1 -0
  633. package/src/data_import/index.ts +5 -0
  634. package/src/data_import/types/column_mapping.ts +32 -0
  635. package/src/data_import/types/index.ts +1 -0
  636. package/src/data_import/utils/data.ts +148 -0
  637. package/src/data_import/utils/file_headers.ts +90 -0
  638. package/src/data_import/utils/file_to_json.ts +106 -0
  639. package/src/data_import/utils/get_import_inference_type.ts +27 -0
  640. package/src/data_import/utils/get_properties_mapping.ts +67 -0
  641. package/src/data_import/utils/index.ts +3 -0
  642. package/src/editor/components/SlashCommandMenu.tsx +517 -0
  643. package/src/editor/components/editor-bubble-item.tsx +32 -0
  644. package/src/editor/components/editor-bubble.tsx +120 -0
  645. package/src/editor/components/image-bubble.tsx +165 -0
  646. package/src/editor/components/index.ts +14 -0
  647. package/src/editor/components/table-bubble.tsx +171 -0
  648. package/src/editor/editor.tsx +510 -0
  649. package/src/editor/extensions/HighlightDecorationExtension.ts +114 -0
  650. package/src/editor/extensions/Image/index.ts +133 -0
  651. package/src/editor/extensions/Image.ts +159 -0
  652. package/src/editor/extensions/TextLoadingDecorationExtension.tsx +107 -0
  653. package/src/editor/extensions/clipboard.ts +72 -0
  654. package/src/editor/extensions/custom-keymap.ts +25 -0
  655. package/src/editor/extensions/drag-and-drop.tsx +508 -0
  656. package/src/editor/hooks/useProseMirror.ts +126 -0
  657. package/src/editor/hooks/useProseMirrorContext.ts +15 -0
  658. package/src/editor/index.ts +2 -0
  659. package/src/editor/markdown.ts +205 -0
  660. package/src/editor/nodeViews/ImageComponent.tsx +20 -0
  661. package/src/editor/nodeViews/ReactNodeView.tsx +89 -0
  662. package/src/editor/nodeViews/TaskItemComponent.tsx +29 -0
  663. package/src/editor/nodeViews/index.ts +35 -0
  664. package/src/editor/plugins/index.ts +58 -0
  665. package/src/editor/plugins/inputrules.ts +82 -0
  666. package/src/editor/plugins/placeholderPlugin.ts +55 -0
  667. package/src/editor/plugins/slashCommandPlugin.ts +65 -0
  668. package/src/editor/schema.ts +263 -0
  669. package/src/editor/selectors/ai-selector.tsx +111 -0
  670. package/src/editor/selectors/color-selector.tsx +200 -0
  671. package/src/editor/selectors/link-selector.tsx +119 -0
  672. package/src/editor/selectors/node-selector.tsx +145 -0
  673. package/src/editor/selectors/text-buttons.tsx +80 -0
  674. package/src/editor/types.ts +6 -0
  675. package/src/editor/useProseMirror.ts +125 -0
  676. package/src/editor/utils/prosemirror-utils.ts +113 -0
  677. package/src/editor/utils/remove_classes.ts +17 -0
  678. package/src/editor/utils/useDebouncedCallback.ts +25 -0
  679. package/src/form/EntityForm.tsx +855 -0
  680. package/src/form/EntityFormActions.tsx +214 -0
  681. package/src/form/PropertyFieldBinding.tsx +344 -0
  682. package/src/form/components/ErrorFocus.tsx +44 -0
  683. package/src/form/components/FieldHelperText.tsx +85 -0
  684. package/src/form/components/FormEntry.tsx +22 -0
  685. package/src/form/components/FormLayout.tsx +16 -0
  686. package/src/form/components/LabelWithIcon.tsx +43 -0
  687. package/src/form/components/LabelWithIconAndTooltip.tsx +28 -0
  688. package/src/form/components/LocalChangesMenu.tsx +132 -0
  689. package/src/form/components/StorageItemPreview.tsx +82 -0
  690. package/src/form/components/StorageUploadProgress.tsx +105 -0
  691. package/src/form/components/index.tsx +5 -0
  692. package/src/form/field_bindings/ArrayCustomShapedFieldBinding.tsx +107 -0
  693. package/src/form/field_bindings/ArrayOfReferencesFieldBinding.tsx +171 -0
  694. package/src/form/field_bindings/BlockFieldBinding.tsx +280 -0
  695. package/src/form/field_bindings/DateTimeFieldBinding.tsx +72 -0
  696. package/src/form/field_bindings/KeyValueFieldBinding.tsx +554 -0
  697. package/src/form/field_bindings/MapFieldBinding.tsx +162 -0
  698. package/src/form/field_bindings/MarkdownEditorFieldBinding.tsx +232 -0
  699. package/src/form/field_bindings/MultiSelectFieldBinding.tsx +123 -0
  700. package/src/form/field_bindings/MultipleRelationFieldBinding.tsx +157 -0
  701. package/src/form/field_bindings/ReadOnlyFieldBinding.tsx +66 -0
  702. package/src/form/field_bindings/ReferenceAsStringFieldBinding.tsx +141 -0
  703. package/src/form/field_bindings/ReferenceFieldBinding.tsx +141 -0
  704. package/src/form/field_bindings/RelationFieldBinding.tsx +184 -0
  705. package/src/form/field_bindings/RepeatFieldBinding.tsx +139 -0
  706. package/src/form/field_bindings/SelectFieldBinding.tsx +110 -0
  707. package/src/form/field_bindings/StorageUploadFieldBinding.tsx +493 -0
  708. package/src/form/field_bindings/SwitchFieldBinding.tsx +65 -0
  709. package/src/form/field_bindings/TextFieldBinding.tsx +156 -0
  710. package/src/form/field_bindings/UserSelectFieldBinding.tsx +66 -0
  711. package/src/form/index.tsx +27 -0
  712. package/src/form/useClearRestoreValue.tsx +36 -0
  713. package/src/form/validation.ts +519 -0
  714. package/src/hooks/index.ts +15 -0
  715. package/src/hooks/navigation/contexts/CollectionRegistryContext.tsx +20 -0
  716. package/src/hooks/navigation/contexts/NavigationStateContext.tsx +16 -0
  717. package/src/hooks/navigation/contexts/UrlContext.tsx +25 -0
  718. package/src/hooks/navigation/contexts/index.ts +14 -0
  719. package/src/hooks/navigation/useBuildCollectionRegistryController.tsx +171 -0
  720. package/src/hooks/navigation/useBuildNavigationStateController.tsx +133 -0
  721. package/src/hooks/navigation/useBuildUrlController.tsx +66 -0
  722. package/src/hooks/navigation/useNavigationRegistry.ts +153 -0
  723. package/src/hooks/navigation/useNavigationResolution.ts +91 -0
  724. package/src/hooks/navigation/useNavigationURLs.ts +56 -0
  725. package/src/hooks/navigation/useResolvedCollections.ts +133 -0
  726. package/src/hooks/navigation/useResolvedViews.tsx +216 -0
  727. package/src/hooks/navigation/useTopLevelNavigation.ts +257 -0
  728. package/src/hooks/navigation/utils.ts +176 -0
  729. package/src/hooks/useBreadcrumbsController.tsx +49 -0
  730. package/src/hooks/useBuildSideDialogsController.tsx +145 -0
  731. package/src/hooks/useBuildSideEntityController.tsx +310 -0
  732. package/src/hooks/useCMSContext.tsx +79 -0
  733. package/src/hooks/useEntityHistory.ts +167 -0
  734. package/src/hooks/useEntitySelectionDialog.tsx +57 -0
  735. package/src/hooks/useResolvedNavigationFrom.tsx +160 -0
  736. package/src/hooks/useSideDialogsController.tsx +25 -0
  737. package/src/hooks/useSideEntityController.tsx +13 -0
  738. package/src/index.ts +95 -0
  739. package/src/preview/PropertyPreview.tsx +292 -0
  740. package/src/preview/components/ArrayEnumPreview.tsx +39 -0
  741. package/src/preview/components/BooleanPreview.tsx +25 -0
  742. package/src/preview/components/DatePreview.tsx +93 -0
  743. package/src/preview/components/EmptyValue.tsx +10 -0
  744. package/src/preview/components/EnumValuesChip.tsx +39 -0
  745. package/src/preview/components/ImagePreview.tsx +143 -0
  746. package/src/preview/components/ReferencePreview.tsx +166 -0
  747. package/src/preview/components/RelationPreview.tsx +160 -0
  748. package/src/preview/components/StorageThumbnail.tsx +90 -0
  749. package/src/preview/components/UrlComponentPreview.tsx +115 -0
  750. package/src/preview/components/UserPreview.tsx +30 -0
  751. package/src/preview/index.ts +25 -0
  752. package/src/preview/property_previews/ArrayOfMapsPreview.tsx +73 -0
  753. package/src/preview/property_previews/ArrayOfReferencesPreview.tsx +44 -0
  754. package/src/preview/property_previews/ArrayOfRelationsPreview.tsx +50 -0
  755. package/src/preview/property_previews/ArrayOfStorageComponentsPreview.tsx +49 -0
  756. package/src/preview/property_previews/ArrayOfStringsPreview.tsx +44 -0
  757. package/src/preview/property_previews/ArrayOneOfPreview.tsx +72 -0
  758. package/src/preview/property_previews/ArrayPropertyEnumPreview.tsx +35 -0
  759. package/src/preview/property_previews/ArrayPropertyPreview.tsx +70 -0
  760. package/src/preview/property_previews/MapPropertyPreview.tsx +146 -0
  761. package/src/preview/property_previews/NumberPropertyPreview.tsx +29 -0
  762. package/src/preview/property_previews/SkeletonPropertyComponent.tsx +277 -0
  763. package/src/preview/property_previews/StringPropertyPreview.tsx +59 -0
  764. package/src/preview/util.ts +30 -0
  765. package/src/routes/CustomViewRoute.tsx +24 -0
  766. package/src/routes/RebaseRoute.tsx +344 -0
  767. package/src/routes/index.ts +2 -0
  768. package/src/types/components/EntityFormActionsProps.tsx +20 -0
  769. package/src/types/components/EntityFormProps.tsx +54 -0
  770. package/src/types/components/PropertyPreviewProps.tsx +59 -0
  771. package/src/types/components/formex.tsx +46 -0
  772. package/src/types/components/index.ts +3 -0
  773. package/src/types/fields.tsx +299 -0
  774. package/src/types/index.ts +4 -0
  775. package/src/util/entity_actions.ts +28 -0
  776. package/src/util/index.ts +5 -0
  777. package/src/util/navigation_utils.ts +69 -0
  778. package/src/util/previews.ts +50 -0
  779. package/src/util/property_utils.tsx +215 -0
  780. package/src/util/resolutions.ts +71 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ContentHomePage-CDF_a6Lp.js","sources":["../src/components/HomePage/FavouritesView.tsx","../src/components/HomePage/NavigationGroup.tsx","../src/components/HomePage/NavigationCard.tsx","../src/components/HomePage/NavigationCardBinding.tsx","../src/components/HomePage/HomePageDnD.tsx","../src/components/HomePage/RenameGroupDialog.tsx","../src/components/HomePage/ContentHomePage.tsx"],"sourcesContent":["import type { NavigationEntry } from \"@rebasepro/types\";\nimport { useNavigate } from \"react-router-dom\";\n;\nimport { Chip, Collapse } from \"@rebasepro/ui\";\nimport { StarIcon } from \"lucide-react\";\nimport { useUserConfigurationPersistence } from \"@rebasepro/core\";\nimport { useNavigationStateController } from \"../../index\";\n\nfunction NavigationChip({ entry }: { entry: NavigationEntry }) {\n\n const navigate = useNavigate();\n const userConfigurationPersistence = useUserConfigurationPersistence();\n\n if (!userConfigurationPersistence)\n return null;\n\n const favourite = userConfigurationPersistence.favouritePaths.includes(entry.slug);\n const onIconClick = (e: React.SyntheticEvent) => {\n e.preventDefault();\n e.stopPropagation();\n if (favourite) {\n userConfigurationPersistence.setFavouritePaths(\n userConfigurationPersistence.favouritePaths.filter(p => p !== entry.slug)\n );\n } else {\n userConfigurationPersistence.setFavouritePaths(\n [...userConfigurationPersistence.favouritePaths, entry.slug]\n );\n }\n };\n return <Chip\n key={entry.slug}\n onClick={() => navigate(entry.url)}\n icon={<StarIcon\n onClick={onIconClick}\n size={\"small\"}\n className={favourite ? \"text-secondary\" : \"text-surface-400 dark:text-surface-500\"}/>\n }>\n {entry.name}\n </Chip>;\n}\n\nexport function FavouritesView({ hidden }: { hidden: boolean }) {\n\n const navigationStateController = useNavigationStateController();\n const userConfigurationPersistence = useUserConfigurationPersistence();\n\n if (!userConfigurationPersistence)\n return null;\n\n const favouriteCollections = (userConfigurationPersistence?.favouritePaths ?? [])\n .map((path) => navigationStateController.topLevelNavigation?.navigationEntries.find((entry) => entry.slug === path))\n .filter(Boolean) as NavigationEntry[];\n\n return <Collapse in={favouriteCollections.length > 0}>\n <div className=\"flex flex-row flex-wrap gap-2 pb-2 min-h-[32px]\">\n {favouriteCollections.map((entry) => <NavigationChip key={entry.slug}\n entry={entry}/>)}\n </div>\n </Collapse>;\n}\n","import React, { PropsWithChildren, useState } from \"react\";\nimport { cls, IconButton, Typography, ExpandablePanel , iconSize } from \"@rebasepro/ui\";\nimport { PencilIcon } from \"lucide-react\";\nimport { useTranslation } from \"@rebasepro/core\";\n\nexport function NavigationGroup({\n children,\n group,\n minimised,\n isPreview,\n isPotentialCardDropTarget,\n onEditGroup,\n dndDisabled,\n collapsed,\n onToggleCollapsed\n}: PropsWithChildren<{\n group: string | undefined,\n minimised?: boolean,\n isPreview?: boolean,\n isPotentialCardDropTarget?: boolean,\n onEditGroup?: (groupName: string) => void;\n dndDisabled?: boolean;\n collapsed?: boolean;\n onToggleCollapsed?: () => void;\n}>) {\n\n const { t } = useTranslation();\n const [isHovered, setIsHovered] = useState(false);\n const currentGroupName = group ?? t(\"views_group\");\n\n // Show caret only when not in preview and there is a toggle handler\n const showCaret = !isPreview && !!onToggleCollapsed;\n\n // Helper for the title content (left side)\n const TitleContent = (\n <div className={cls(\"flex items-center\", isPreview ? \"px-1 py-0.5\" : \"\")}\n >\n <Typography\n variant={isPreview ? \"body2\" : \"caption\"}\n component={\"h2\"}\n color=\"secondary\"\n className={cls(\n \"p-4 py-2 rounded\",\n \"font-medium text-sm text-surface-600 dark:text-surface-400\"\n )}\n >\n {currentGroupName}\n </Typography>\n {!isPreview && onEditGroup && !dndDisabled && (\n <IconButton\n size=\"smallest\"\n onClick={(e) => {\n e.stopPropagation(); // Prevent toggle on click\n onEditGroup(currentGroupName);\n }}\n className={cls(\"ml-2 \", isHovered ? \"opacity-100\" : \"opacity-0\", \"transition-opacity duration-100\")}\n >\n <PencilIcon size={iconSize.smallest}/>\n </IconButton>\n )}\n </div>\n );\n\n return (\n <div className={cls(\n !isPotentialCardDropTarget ? \"my-10\" : \"my-6\",\n \"transition-all duration-200 ease-in-out\"\n )}\n >\n {/* Preview: static header + content (no caret / no collapse) */}\n {isPreview && (\n <>\n <div\n className={cls(\n \"flex items-center justify-between w-full\",\n \"p-4 py-2\"\n )}\n onMouseEnter={() => setIsHovered(true)}\n onMouseLeave={() => setIsHovered(false)}\n >\n {TitleContent}\n </div>\n {children}\n </>\n )}\n\n {/* Interactive collapsible version when a toggle handler is provided */}\n {!isPreview && showCaret && (\n <ExpandablePanel\n invisible\n expanded={!collapsed}\n onExpandedChange={(open) => {\n if (open !== !collapsed) {\n onToggleCollapsed?.();\n }\n }}\n className={cls(\"mt-6\")}\n titleClassName={cls(\n \"min-h-0 p-0 border-none\",\n \"rounded flex items-center justify-between w-full\",\n \"hover:bg-transparent\",\n \"cursor-pointer select-none\",\n collapsed && \"bg-surface-100 dark:bg-surface-900/50\"\n )}\n innerClassName={cls(\"mt-4\", !minimised ? \"pt-0\" : \"\")}\n title={\n <div\n onMouseEnter={() => setIsHovered(true)}\n onMouseLeave={() => setIsHovered(false)}\n className=\"flex items-center\"\n >\n {TitleContent}\n </div>\n }\n >\n {minimised ? (\n <div className={cls(\"mt-4 p-8 bg-surface-accent-200 dark:bg-surface-accent-800 rounded-lg\")}\n style={{ minHeight: \"50px\" }}>\n </div>\n ) : (\n <div className={cls(\"mt-4\", !minimised ? \"pt-0\" : \"\")}>\n {children}\n </div>\n )}\n </ExpandablePanel>\n )}\n\n {/* Non-collapsible (no caret) runtime, keep old behavior */}\n {!isPreview && !showCaret && (\n <>\n <div\n className={cls(\n \"flex items-center justify-between w-full\",\n \"mt-6\"\n )}\n onMouseEnter={() => setIsHovered(true)}\n onMouseLeave={() => setIsHovered(false)}\n >\n {TitleContent}\n </div>\n\n {!collapsed && (\n minimised ? (\n <div className={cls(\"mt-4 p-8 bg-surface-accent-200 dark:bg-surface-accent-800 rounded-lg\")}\n style={{ minHeight: \"50px\" }}>\n </div>\n ) : (\n <div className={cls(\"mt-4\", !minimised ? \"pt-0\" : \"\")}>\n {children}\n </div>\n )\n )}\n </>\n )}\n </div>\n );\n}\n","import { Card, cls, Markdown, Typography } from \"@rebasepro/ui\";\nimport { ArrowRightIcon } from \"lucide-react\";\nimport React from \"react\";\n\nexport type NavigationCardProps = {\n name: string,\n description?: string;\n actions: React.ReactNode;\n icon: React.ReactNode;\n additionalContent?: React.ReactNode;\n onClick?: () => void,\n shrink?: boolean\n};\n\n// Wrap the component with React.memo\nexport const NavigationCard = React.memo(function NavigationCard({\n name,\n description,\n icon,\n actions,\n additionalContent,\n onClick,\n shrink\n}: NavigationCardProps) {\n\n return (\n <Card\n className={cls(\n \"group h-full p-5 cursor-pointer transition-all duration-200 ease-in-out\",\n \"border-surface-200/40 dark:border-surface-700/40\",\n \"hover:-translate-y-0.5 hover:shadow-md hover:shadow-primary/5\",\n \"hover:border-primary/30 dark:hover:border-primary/20\",\n shrink && \"w-full max-w-full min-h-0 scale-75\"\n )}\n onClick={() => {\n onClick?.();\n }}\n >\n\n <div className=\"flex flex-col h-full\">\n {/* Header: title + icon left, actions right */}\n <div className=\"flex items-center w-full justify-between mb-1\">\n <div className=\"flex items-center gap-4\">\n <div className=\"flex items-center justify-center w-7 h-7 rounded-lg bg-primary/8 dark:bg-primary/10 text-primary/70 dark:text-primary/60 transition-colors duration-200 group-hover:bg-primary/12 dark:group-hover:bg-primary/15 group-hover:text-primary dark:group-hover:text-primary/80\">\n {icon}\n </div>\n <Typography variant=\"subtitle1\"\n component=\"h2\">\n {name}\n </Typography>\n </div>\n\n <div\n className=\"flex items-center gap-0.5\"\n onClick={(event: React.MouseEvent) => {\n event.preventDefault();\n event.stopPropagation();\n }}>\n {actions}\n </div>\n </div>\n\n {/* Description */}\n <div className=\"grow pl-[44px]\">\n {description && <Typography variant=\"caption\"\n color=\"secondary\"\n component=\"div\">\n <Markdown source={description} size={\"small\"}/>\n </Typography>}\n </div>\n\n {additionalContent && (\n <div className=\"pl-[44px] pointer-events-none\">\n {additionalContent}\n </div>\n )}\n\n {/* Arrow */}\n <div className=\"self-end mt-1\">\n <div className={\"transition-transform duration-200 group-hover:translate-x-0.5\"}>\n <ArrowRightIcon className=\"text-primary\"/>\n </div>\n </div>\n\n </div>\n\n </Card>)\n});\n","import type { NavigationEntry, EntityCollection } from \"@rebasepro/types\";\nimport { useNavigate } from \"react-router-dom\";\n;\nimport { IconButton, Tooltip } from \"@rebasepro/ui\";\nimport { StarIcon } from \"lucide-react\";\nimport { NavigationCard } from \"./NavigationCard\";\nimport { SmallNavigationCard } from \"./SmallNavigationCard\";\nimport React from \"react\";\nimport { useRebaseContext, useSlot } from \"@rebasepro/core\";\nimport { IconForView } from \"@rebasepro/core\";\nimport { useUserConfigurationPersistence } from \"@rebasepro/core\";\n\n/**\n * This is the component used in the home page to render a card for each\n * collection or view.\n * @group Components\n * @param view\n * @param path\n * @param collection\n * @param url\n * @param name\n * @param description\n * @param onClick\n\n */\nexport function NavigationCardBinding({\n slug,\n collection,\n view,\n url,\n name,\n description,\n onClick,\n type,\n shrink\n}: NavigationEntry & {\n onClick?: () => void,\n shrink?: boolean // <-- add shrink prop type\n}) {\n\n const userConfigurationPersistence = useUserConfigurationPersistence();\n const collectionIcon = <IconForView collectionOrView={collection ?? view}/>;\n\n const navigate = useNavigate();\n const context = useRebaseContext();\n\n const favourite = (userConfigurationPersistence?.favouritePaths ?? []).includes(slug);\n\n const actionsArray: React.ReactNode[] = userConfigurationPersistence\n ? [\n <IconButton\n key={\"favourite\"}\n size={\"small\"}\n onClick={(e) => {\n e.preventDefault();\n e.stopPropagation();\n if (favourite) {\n userConfigurationPersistence.setFavouritePaths(\n userConfigurationPersistence.favouritePaths.filter(p => p !== slug)\n );\n } else {\n userConfigurationPersistence.setFavouritePaths(\n [...userConfigurationPersistence.favouritePaths, slug]\n );\n }\n }}>\n <StarIcon\n className={favourite ? \"text-secondary\" : \"text-surface-400 dark:text-surface-500\"}/>\n </IconButton>\n ]\n : [];\n\n const pluginCardActions = useSlot(\"home.collection.actions\", {\n slug: slug,\n collection: collection!,\n context\n });\n\n const pluginCardInsights = useSlot(\"home.card.insight\", {\n slug: slug,\n collection: collection!,\n context\n });\n\n\n const actions: React.ReactNode | undefined = <>\n {actionsArray}\n {pluginCardActions}\n </>\n\n return <NavigationCard\n icon={collectionIcon}\n name={name}\n description={description}\n actions={actions}\n additionalContent={pluginCardInsights.length > 0 ? <>{pluginCardInsights}</> : undefined}\n onClick={() => {\n onClick?.();\n navigate(url);\n if (userConfigurationPersistence) {\n userConfigurationPersistence.setRecentlyVisitedPaths(\n [slug, ...(userConfigurationPersistence.recentlyVisitedPaths ?? []).filter(p => p !== slug)]\n );\n }\n }}\n shrink={shrink}\n />;\n}\n","import type { NavigationEntry } from \"@rebasepro/types\";\nimport React, { useCallback, useEffect, useRef, useState } from \"react\";\nimport {\n Active,\n closestCenter,\n closestCorners,\n CollisionDetection,\n DropAnimation,\n getFirstCollision,\n KeyboardSensor,\n MouseSensor,\n pointerWithin,\n rectIntersection,\n TouchSensor,\n UniqueIdentifier,\n useDndMonitor,\n useDroppable,\n useSensor,\n useSensors\n} from \"@dnd-kit/core\";\nimport {\n AnimateLayoutChanges,\n arrayMove,\n defaultAnimateLayoutChanges,\n rectSortingStrategy,\n SortableContext,\n useSortable\n} from \"@dnd-kit/sortable\";\nimport { CSS } from \"@dnd-kit/utilities\";\n\nimport { NavigationCardBinding } from \"./NavigationCardBinding\";\n;\nimport { cls } from \"@rebasepro/ui\";\n\nconst animateLayoutChanges: AnimateLayoutChanges = (args) =>\n defaultAnimateLayoutChanges({\n ...args,\n wasDragging: true\n });\n\nconst dropAnimationConfig: DropAnimation = {};\n\nconst cloneSerializableNavigationEntry = (entry: NavigationEntry): NavigationEntry => {\n const clonedEntry: Partial<NavigationEntry> = {\n id: entry.id,\n slug: entry.slug,\n url: entry.url,\n name: entry.name,\n type: entry.type,\n collection: entry.collection ? { ...entry.collection } : undefined,\n view: entry.view ? { ...entry.view } : undefined,\n ...(entry.group && { group: entry.group }),\n ...(entry.description && { description: entry.description })\n };\n return clonedEntry as NavigationEntry;\n};\n\nconst cloneItemsForDnd = (items: { name: string; entries: NavigationEntry[] }[]) =>\n items.map((g) => ({\n name: g.name,\n entries: g.entries.map(cloneSerializableNavigationEntry)\n }));\n\n/* ─────────────────────────────────────────────────────────── */\n/* Sortable card & group */\n\n/* ─────────────────────────────────────────────────────────── */\nexport function SortableNavigationCard({\n entry,\n onClick\n}: {\n entry: NavigationEntry;\n onClick?: () => void;\n}) {\n const {\n setNodeRef,\n listeners,\n attributes,\n transform,\n transition,\n isDragging\n } =\n useSortable({\n id: entry.url,\n animateLayoutChanges\n });\n\n const style = {\n transform: transform ? CSS.Transform.toString(transform) : undefined,\n transition,\n opacity: isDragging ? 0 : 1\n };\n\n return (\n <div ref={setNodeRef} style={style} {...attributes} {...listeners}>\n <NavigationCardBinding {...entry} onClick={onClick}/>\n </div>\n );\n}\n\nexport function NavigationGroupDroppable({\n id,\n itemIds,\n children,\n isPotentialCardDropTarget = false\n}: {\n id: UniqueIdentifier;\n itemIds: UniqueIdentifier[];\n children: React.ReactNode;\n isPotentialCardDropTarget?: boolean;\n}) {\n const { setNodeRef } = useDroppable({ id });\n\n return (\n <div\n ref={setNodeRef}\n className={cls(\n isPotentialCardDropTarget\n ? \"p-2 bg-surface-accent-200 dark:bg-surface-accent-800 rounded-lg\"\n : undefined,\n \"transition-all duration-200 ease-in-out\"\n )}\n >\n <SortableContext items={itemIds} strategy={rectSortingStrategy}>\n {children}\n </SortableContext>\n </div>\n );\n}\n\nexport function SortableNavigationGroup({\n groupName,\n children,\n disabled\n}: {\n groupName: string;\n children: React.ReactNode;\n disabled?: boolean;\n}) {\n const {\n attributes,\n listeners,\n setNodeRef,\n transform,\n transition,\n isDragging\n } =\n useSortable({\n id: groupName,\n animateLayoutChanges,\n disabled\n });\n\n const style = {\n transform: transform ? CSS.Transform.toString(transform) : undefined,\n transition,\n opacity: isDragging ? 0 : 1\n };\n\n return (\n <div ref={setNodeRef} style={style} {...attributes} {...listeners}>\n {children}\n </div>\n );\n}\n\nexport function useHomePageDnd({\n items,\n setItems,\n disabled,\n onCardMovedBetweenGroups,\n onGroupMoved,\n onNewGroupDrop,\n onPersist\n}: {\n items: { name: string; entries: NavigationEntry[] }[];\n setItems: (\n newItemsOrUpdater:\n | { name: string; entries: NavigationEntry[] }[]\n | ((\n currentItems: { name: string; entries: NavigationEntry[] }[]\n ) => { name: string; entries: NavigationEntry[] }[])\n ) => void;\n disabled: boolean;\n onCardMovedBetweenGroups?: (card: NavigationEntry) => void;\n onGroupMoved?: (groupName: string, oldIndex: number, newIndex: number) => void;\n onNewGroupDrop?: () => void;\n onPersist?: (latest: { name: string; entries: NavigationEntry[] }[]) => void;\n}) {\n /* ---------------- local state ---------------- */\n const dndItems = items;\n const setDndItems = setItems;\n\n const [activeId, setActiveId] = useState<UniqueIdentifier | null>(null);\n const [activeIsGroup, setActiveIsGroup] = useState(false);\n const [currentDraggingGroupId, setCurrentDraggingGroupId] =\n useState<UniqueIdentifier | null>(null);\n const [dndKitActiveNode, setDndKitActiveNode] = useState<Active | null>(null);\n const [isDraggingCardOnly, setIsDraggingCardOnly] = useState(false);\n const [dialogOpenForGroup, setDialogOpenForGroup] = useState<string | null>(null);\n const [isHoveringNewGroupDropZone, setIsHoveringNewGroupDropZone] =\n useState(false);\n const [pendingNewGroupName, setPendingNewGroupName] = useState<string | null>(null);\n const [stateBeforeNewGroup, setStateBeforeNewGroup] = useState<\n { name: string; entries: NavigationEntry[] }[] | null\n >(null);\n\n /* store the original state before any drag modifications */\n const preDragItemsRef = useRef<\n { name: string; entries: NavigationEntry[] }[] | null\n >(null);\n\n /* store interim state for cross-group moves */\n const interimItemsRef = useRef<\n { name: string; entries: NavigationEntry[] }[] | null\n >(null);\n useEffect(() => {\n interimItemsRef.current = dndItems;\n }, [dndItems]);\n\n /* ---------------- sensors ---------------- */\n const mouseSensor = useSensor(MouseSensor, { activationConstraint: { distance: 10 } });\n const touchSensor = useSensor(TouchSensor, {\n activationConstraint: {\n delay: 150,\n tolerance: 5\n }\n });\n const keyboardSensor = useSensor(KeyboardSensor);\n const sensors = useSensors(mouseSensor, touchSensor, keyboardSensor);\n\n /* ---------------- helpers ---------------- */\n const dndContainers = dndItems.map((g) => g.name);\n\n const findDndContainer = useCallback(\n (id: UniqueIdentifier): string | undefined => {\n if (!id) return undefined;\n const group = dndItems.find((g) => g.name === id);\n if (group) return group.name;\n for (const g of dndItems) {\n if (g.entries.some((e) => e.url === id)) return g.name;\n }\n return undefined;\n },\n [dndItems]\n );\n\n /* ---------------- collision detection ---------------- */\n const lastOverId = useRef<UniqueIdentifier | null>(null);\n const recentlyMovedToNewContainer = useRef(false);\n\n const collisionDetection: CollisionDetection = useCallback(\n (args) => {\n if (disabled || !activeId) return [];\n if (activeIsGroup) {\n const groups = args.droppableContainers.filter((c) =>\n dndItems.some((g) => g.name === c.id)\n );\n if (!groups.length) return [];\n return closestCenter({\n ...args,\n droppableContainers: groups\n });\n }\n\n const pointer = pointerWithin(args);\n if (pointer.length) {\n const zone = pointer.find((c) => c.id === \"new-group-drop-zone\");\n if (zone) return [zone];\n\n const container = pointer.find((c) =>\n dndItems.some((g) => g.name === c.id)\n );\n if (container) {\n const itemsIn = dndItems.find((g) => g.name === container.id)\n ?.entries;\n if (itemsIn?.length) {\n const closest = closestCorners({\n ...args,\n droppableContainers: args.droppableContainers.filter(\n (c) => itemsIn.some((e) => e.url === c.id)\n )\n });\n if (closest.length) return closest;\n }\n return [container];\n }\n const first = getFirstCollision(pointer, \"id\");\n if (first) return [{ id: first }];\n }\n\n const rects = rectIntersection(args);\n const zoneRect = rects.find((c) => c.id === \"new-group-drop-zone\");\n if (zoneRect) return [zoneRect];\n\n let overId = getFirstCollision(rects, \"id\");\n if (overId != null) {\n const overIsContainer = dndItems.some((g) => g.name === overId);\n if (overIsContainer) {\n const itemsIn = dndItems.find((g) => g.name === overId)\n ?.entries;\n if (itemsIn?.length) {\n const closestItem = closestCorners({\n ...args,\n droppableContainers: args.droppableContainers.filter(\n (c) => itemsIn.some((e) => e.url === c.id)\n )\n })[0]?.id;\n if (closestItem) overId = closestItem;\n }\n }\n lastOverId.current = overId;\n return [{ id: overId }];\n }\n\n if (\n recentlyMovedToNewContainer.current &&\n lastOverId.current &&\n !activeIsGroup\n )\n return [{ id: lastOverId.current }];\n\n return [];\n },\n [activeId, dndItems, disabled, activeIsGroup]\n );\n\n /* ---------------- drag handlers ---------------- */\n const handleDragStart = ({ active }: { active: Active }) => {\n setDndKitActiveNode(active);\n if (disabled) return;\n\n // Capture the original state before any drag modifications\n preDragItemsRef.current = cloneItemsForDnd(dndItems);\n\n const isGroup = dndItems.some((g) => g.name === active.id);\n if (!active.data.current) active.data.current = {};\n active.data.current.type = isGroup ? \"group\" : \"item\";\n\n setActiveId(active.id);\n setActiveIsGroup(isGroup);\n setIsDraggingCardOnly(!isGroup);\n if (isGroup) setCurrentDraggingGroupId(active.id);\n recentlyMovedToNewContainer.current = false;\n };\n\n const handleDragOver = ({\n active,\n over\n }: { active: Active; over: any }) => {\n if (disabled || !over) return;\n\n const activeIdNow = active.id;\n const overIdNow = over.id;\n if (activeIdNow === overIdNow) return;\n if (activeIsGroup) return;\n\n const activeCont = findDndContainer(activeIdNow);\n const overCont = findDndContainer(overIdNow);\n if (!activeCont) return;\n\n if (overCont && activeCont !== overCont) {\n recentlyMovedToNewContainer.current = true;\n lastOverId.current = overIdNow;\n\n // Update state for visual feedback during drag\n setDndItems((current) => {\n const newState = cloneItemsForDnd(current);\n const srcIdx = newState.findIndex((g) => g.name === activeCont);\n const tgtIdx = newState.findIndex((g) => g.name === overCont);\n if (srcIdx === -1 || tgtIdx === -1) return current;\n const src = newState[srcIdx];\n const tgt = newState[tgtIdx];\n const idxInSrc = src.entries.findIndex((e) => e.url === activeIdNow);\n if (idxInSrc === -1) return current;\n const [moved] = src.entries.splice(idxInSrc, 1);\n\n // Calculate insertion position - SAME logic as handleDragEnd\n const overIsContainer = overIdNow === overCont;\n if (overIsContainer) {\n tgt.entries.push(moved);\n } else {\n const overIdx = tgt.entries.findIndex((e) => e.url === overIdNow);\n if (overIdx !== -1) {\n tgt.entries.splice(overIdx, 0, moved);\n } else {\n tgt.entries.push(moved);\n }\n }\n\n return newState;\n });\n } else if (activeCont === overCont) {\n recentlyMovedToNewContainer.current = false;\n }\n };\n\n const handleDragEnd = ({\n active,\n over\n }: { active: Active; over: any }) => {\n if (disabled || !over) {\n resetDragState();\n return;\n }\n\n const activeIdNow = active.id;\n const overIdNow = over.id;\n\n /* ─── group reorder ─── */\n if (activeIsGroup) {\n if (\n activeIdNow !== overIdNow &&\n dndItems.some((g) => g.name === overIdNow)\n ) {\n const from = dndItems.findIndex((g) => g.name === activeIdNow);\n const to = dndItems.findIndex((g) => g.name === overIdNow);\n if (from !== -1 && to !== -1) {\n const newState = arrayMove(dndItems, from, to);\n setDndItems(newState);\n onPersist?.(newState);\n onGroupMoved?.(activeIdNow as string, from, to);\n }\n }\n }\n /* ─── card move ─── */\n else {\n // CRITICAL: Find source container from ORIGINAL pre-drag state, not current (potentially stale) dndItems\n const findContainerInState = (id: string, state: { name: string; entries: NavigationEntry[] }[]): string | undefined => {\n const group = state.find((g) => g.name === id);\n if (group) return group.name;\n for (const g of state) {\n if (g.entries.some((e) => e.url === id)) return g.name;\n }\n return undefined;\n };\n\n const sourceState = preDragItemsRef.current || dndItems;\n const activeCont = findContainerInState(activeIdNow as string, sourceState);\n const overCont = findDndContainer(overIdNow);\n\n /* drop on new-group zone */\n if (overIdNow === \"new-group-drop-zone\") {\n if (activeCont) {\n // Save current state before making changes\n setStateBeforeNewGroup(cloneItemsForDnd(dndItems));\n\n const newState = cloneItemsForDnd(dndItems);\n const srcIdx = newState.findIndex((g) => g.name === activeCont);\n if (srcIdx !== -1) {\n const src = newState[srcIdx];\n const idxInSrc = src.entries.findIndex(\n (e) => e.url === activeIdNow\n );\n if (idxInSrc !== -1) {\n const [dragged] = src.entries.splice(idxInSrc, 1);\n if (src.entries.length === 0) newState.splice(srcIdx, 1);\n\n let tentative = \"New Group\";\n let counter = 1;\n while (newState.some((g) => g.name === tentative))\n tentative = `New Group ${counter++}`;\n\n newState.push({\n name: tentative,\n entries: [dragged]\n });\n\n // Update local state but DON'T persist yet\n setDndItems(newState);\n setPendingNewGroupName(tentative);\n setDialogOpenForGroup(tentative);\n onNewGroupDrop?.();\n }\n }\n }\n }\n /* reorder inside same container */\n else {\n const overCont = findDndContainer(overIdNow);\n if (activeCont === overCont) {\n const grpIdx = dndItems.findIndex((g) => g.name === activeCont);\n if (grpIdx !== -1) {\n const group = dndItems[grpIdx];\n const oldIdx = group.entries.findIndex(\n (e) => e.url === activeIdNow\n );\n let newIdx = group.entries.findIndex(\n (e) => e.url === overIdNow\n );\n if (newIdx === -1 && overIdNow === activeCont)\n newIdx = group.entries.length - 1;\n if (\n oldIdx !== -1 &&\n newIdx !== -1 &&\n oldIdx !== newIdx\n ) {\n const reordered = arrayMove(group.entries, oldIdx, newIdx);\n const newState = [...dndItems];\n newState[grpIdx] = {\n ...group,\n entries: reordered\n };\n setDndItems(newState);\n onPersist?.(newState);\n }\n }\n } else if (overCont && activeCont !== overCont) {\n // Card moved between different groups - use CLEAN pre-drag state\n const finalState = cloneItemsForDnd(sourceState);\n\n // Find target container from clean state too\n const finalOverId = lastOverId.current || overIdNow;\n const cleanOverCont = findContainerInState(finalOverId as string, sourceState) || overCont;\n\n const srcIdx = finalState.findIndex((g) => g.name === activeCont);\n const tgtIdx = finalState.findIndex((g) => g.name === cleanOverCont);\n\n if (srcIdx !== -1 && tgtIdx !== -1) {\n const src = finalState[srcIdx];\n const tgt = finalState[tgtIdx];\n const idxInSrc = src.entries.findIndex((e) => e.url === activeIdNow);\n\n if (idxInSrc !== -1) {\n // Remove from source\n const [moved] = src.entries.splice(idxInSrc, 1);\n\n // Calculate insertion position in target\n const overIsContainer = finalOverId === cleanOverCont;\n if (overIsContainer) {\n tgt.entries.push(moved);\n } else {\n const overIdx = tgt.entries.findIndex((e) => e.url === finalOverId);\n if (overIdx !== -1) {\n tgt.entries.splice(overIdx, 0, moved);\n } else {\n tgt.entries.push(moved);\n }\n }\n\n // Remove empty source group if needed\n if (src.entries.length === 0) {\n finalState.splice(srcIdx, 1);\n }\n\n setDndItems(finalState);\n onPersist?.(finalState);\n\n onCardMovedBetweenGroups?.(moved);\n }\n }\n } else if (recentlyMovedToNewContainer.current) {\n // This shouldn't happen but log it for debugging\n console.error(\"Move between containers detected but conditions not met\", {\n activeCont,\n overCont,\n activeIdNow,\n overIdNow\n });\n }\n }\n }\n\n resetDragState();\n };\n\n const resetDragState = () => {\n setDndKitActiveNode(null);\n setActiveId(null);\n setActiveIsGroup(false);\n setCurrentDraggingGroupId(null);\n setIsDraggingCardOnly(false);\n recentlyMovedToNewContainer.current = false;\n };\n\n const handleDragCancel = () => resetDragState();\n\n /* ---------------- group rename ---------------- */\n const handleRenameGroup = (oldName: string, newName: string) => {\n setDndItems((current) => {\n const idx = current.findIndex((g) => g.name === oldName);\n if (idx === -1) return current;\n if (current.some((g) => g.name === newName && g.name !== oldName))\n return current;\n\n const updated = [...current];\n updated[idx] = {\n ...updated[idx],\n name: newName\n };\n\n // Persist after successful rename\n onPersist?.(updated);\n return updated;\n });\n\n // Clear all pending state\n setPendingNewGroupName(null);\n setStateBeforeNewGroup(null);\n setDialogOpenForGroup(null);\n };\n\n /* Handle dialog close without renaming */\n const handleDialogClose = () => {\n // If there's a pending new group that wasn't renamed, restore previous state\n if (pendingNewGroupName && dialogOpenForGroup === pendingNewGroupName && stateBeforeNewGroup) {\n // Restore the state from before the new group was created\n setDndItems(stateBeforeNewGroup);\n }\n\n // Clear all pending state\n setPendingNewGroupName(null);\n setStateBeforeNewGroup(null);\n setDialogOpenForGroup(null);\n };\n\n /* ---------------- public API ---------------- */\n const activeItemForOverlay =\n disabled || !activeId || activeIsGroup\n ? null\n : dndItems.flatMap((g) => g.entries).find((e) => e.url === activeId) || null;\n\n const activeGroupData =\n disabled || !activeId || !activeIsGroup\n ? null\n : dndItems.find((g) => g.name === activeId) || null;\n\n return {\n sensors,\n collisionDetection,\n onDragStart: handleDragStart,\n onDragOver: handleDragOver,\n onDragEnd: handleDragEnd,\n onDragCancel: handleDragCancel,\n dropAnimation: dropAnimationConfig,\n activeItemForOverlay,\n activeGroupData,\n draggingGroupId: currentDraggingGroupId,\n containers: dndContainers,\n dndKitActiveNode,\n isDraggingCardOnly,\n dialogOpenForGroup,\n setDialogOpenForGroup,\n handleRenameGroup,\n handleDialogClose,\n isHoveringNewGroupDropZone,\n setIsHoveringNewGroupDropZone\n };\n}\n\nexport function NewGroupDropZone({\n disabled,\n setIsHovering\n}: {\n disabled: boolean;\n setIsHovering: (v: boolean) => void;\n}) {\n const {\n setNodeRef,\n isOver\n } = useDroppable({\n id: \"new-group-drop-zone\",\n disabled\n });\n const [isVisible, setIsVisible] = useState(false);\n\n useDndMonitor({\n onDragStart({ active }) {\n if (disabled) return;\n const tp = active.data.current?.type;\n setIsVisible(tp === \"item\");\n },\n onDragEnd() {\n setIsVisible(false);\n },\n onDragCancel() {\n setIsVisible(false);\n }\n });\n\n useEffect(() => {\n setIsHovering(isOver && isVisible);\n }, [isOver, isVisible, setIsHovering]);\n\n if (!isVisible || disabled) return null;\n\n return (\n <div\n ref={setNodeRef}\n className={cls(\n \"fixed right-8 top-1/2 -translate-y-1/2 w-[200px] h-[120px] border border-dashed rounded-lg flex items-center justify-center transition-all\",\n isOver\n ? \"bg-surface-accent-100 dark:bg-surface-accent-800 border-surface-300 dark:border-surface-600\"\n : \"bg-surface-50 dark:bg-surface-900 border-surface-200 dark:border-surface-700\"\n )}>\n <div className=\"text-center p-4\">\n <span className=\"block font-medium text-sm\">\n Drop here to create a new group\n </span>\n </div>\n </div>\n );\n}\n","import React, { useEffect, useRef, useState } from \"react\";\nimport { Button, Dialog, DialogActions, DialogContent, DialogTitle, TextField } from \"@rebasepro/ui\";\nimport { useTranslation } from \"@rebasepro/core\";\n\ninterface RenameGroupDialogProps {\n open: boolean;\n initialName: string;\n existingGroupNames: string[]; // Names of other existing groups to check for duplicates\n onClose: () => void;\n onRename: (newName: string) => void;\n}\n\nexport function RenameGroupDialog({\n open,\n initialName,\n existingGroupNames,\n onClose,\n onRename\n}: RenameGroupDialogProps) {\n const { t } = useTranslation();\n const [name, setName] = useState(initialName);\n const [error, setError] = useState<string | null>(null);\n const inputRef = useRef<HTMLInputElement | HTMLTextAreaElement | null>(null); // Create a ref for the input\n\n useEffect(() => {\n if (open) {\n setName(initialName);\n setError(null);\n // Focus and select text when dialog opens\n setTimeout(() => { // setTimeout to ensure the input is rendered and focusable\n if (inputRef.current) {\n inputRef.current.focus();\n inputRef.current.select();\n }\n }, 100);\n }\n }, [initialName, open]);\n\n const handleNameChange = (event: React.ChangeEvent<HTMLInputElement | HTMLTextAreaElement>) => {\n const newName = event.target.value;\n setName(newName);\n if (!newName.trim()) {\n setError(t(\"group_name_empty_error\"));\n } else if (existingGroupNames.includes(newName.trim())) {\n setError(t(\"group_name_exists_error\"));\n } else {\n setError(null);\n }\n };\n\n const handleSave = () => {\n const trimmedName = name.trim();\n if (!trimmedName) {\n setError(t(\"group_name_empty_error\"));\n return;\n }\n if (existingGroupNames.includes(trimmedName)) {\n setError(t(\"group_name_exists_error\"));\n return;\n }\n if (!error) {\n onRename(trimmedName);\n onClose();\n }\n };\n\n const handleKeyDown = (event: React.KeyboardEvent<HTMLInputElement | HTMLTextAreaElement>) => {\n if (event.key === \"Enter\") {\n event.preventDefault(); // Prevent default form submission behavior\n const trimmedName = name.trim();\n // We need to check the error state directly as well,\n // because the error state might not have updated if the user types and immediately hits enter.\n let currentError = null;\n if (!trimmedName) {\n currentError = t(\"group_name_empty_error\");\n } else if (existingGroupNames.includes(trimmedName)) {\n currentError = t(\"group_name_exists_error\");\n }\n\n if (!currentError && trimmedName) {\n handleSave();\n } else if (currentError) {\n setError(currentError); // Ensure error is displayed if trying to submit with Enter\n }\n }\n };\n\n const handleClose = () => {\n setName(initialName);\n setError(null);\n onClose();\n };\n\n if (!open) return null;\n\n return (\n <Dialog open={open}>\n <DialogTitle>{t(\"rename_group\")}</DialogTitle>\n <DialogContent>\n <TextField\n inputRef={inputRef} // Pass the ref to the TextField\n label={t(\"group_name_label\")}\n value={name}\n onChange={handleNameChange}\n onKeyDown={handleKeyDown} // Added onKeyDown handler\n error={!!error}\n aria-describedby={error ? \"group-name-error\" : undefined}\n />\n {error && <p id=\"group-name-error\" style={{ display: \"none\" }}>{error}</p>}\n </DialogContent>\n <DialogActions>\n <Button onClick={onClose}\n variant=\"text\">\n {t(\"cancel\")}\n </Button>\n <Button onClick={handleSave}\n disabled={!!error || !name.trim()}>\n {t(\"save\")}\n </Button>\n </DialogActions>\n </Dialog>\n );\n}\n","import type { HomePageSection, NavigationEntry, NavigationGroupMapping, PluginGenericProps } from \"@rebasepro/types\";\nimport React, { useCallback, useEffect, useMemo, useRef, useState } from \"react\";\nimport Fuse from \"fuse.js\";\nimport { Container, SearchBar } from \"@rebasepro/ui\";\nimport { AnalyticsEvent } from \"@rebasepro/types\";\nimport { FavouritesView } from \"./FavouritesView\";\nimport { ErrorBoundary } from \"@rebasepro/ui\";\nimport { NavigationGroup } from \"./NavigationGroup\";\nimport {\n NavigationGroupDroppable,\n NewGroupDropZone,\n SortableNavigationCard,\n SortableNavigationGroup,\n useHomePageDnd\n} from \"./HomePageDnD\";\nimport { DndContext, DragOverlay, MeasuringStrategy } from \"@dnd-kit/core\";\nimport { NavigationCardBinding } from \"./NavigationCardBinding\";\nimport { SortableContext, verticalListSortingStrategy } from \"@dnd-kit/sortable\";\nimport { restrictToVerticalAxis, restrictToWindowEdges } from \"@dnd-kit/modifiers\";\nimport { RenameGroupDialog } from \"./RenameGroupDialog\";\nimport { toArray } from \"@rebasepro/utils\";\nimport { useCollapsedGroups, useCustomizationController, useTranslation, useSlot, useAdminModeController } from \"@rebasepro/core\";\nimport { useRestoreScroll } from \"@rebasepro/core\";\nimport { STUDIO_NAVIGATION_GROUPS } from \"@rebasepro/core\";\nimport { useBreadcrumbsController, useCMSContext } from \"../../index\";\n\nexport const DEFAULT_GROUP_NAME = \"Views\";\nexport const ADMIN_GROUP_NAME = \"Admin\";\n\nexport function ContentHomePage({\n additionalActions,\n additionalChildrenStart,\n additionalChildrenEnd,\n sections,\n hiddenGroups\n}: {\n additionalActions?: React.ReactNode;\n additionalChildrenStart?: React.ReactNode;\n additionalChildrenEnd?: React.ReactNode;\n sections?: HomePageSection[];\n hiddenGroups?: string[];\n}) {\n\n const context = useCMSContext();\n const { navigationStateController } = context;\n const customizationController = useCustomizationController();\n const adminModeController = useAdminModeController();\n const isStudioMode = adminModeController.mode === \"studio\";\n const { resolvedSlots } = customizationController;\n const breadcrumbs = useBreadcrumbsController();\n const { t } = useTranslation();\n\n useEffect(() => {\n breadcrumbs.set({ breadcrumbs: [] });\n }, [breadcrumbs.set]);\n\n const {\n allowDragAndDrop = false,\n navigationEntries: unFilteredNavigationEntries = [],\n groups: unFilteredGroupOrder = [],\n onNavigationEntriesUpdate = () => {}\n } = navigationStateController.topLevelNavigation || {};\n\n const rawNavigationEntries = useMemo(() => {\n return unFilteredNavigationEntries.filter(e => {\n const isStudioGroup = e.group ? STUDIO_NAVIGATION_GROUPS.includes(e.group) : false;\n return isStudioMode ? isStudioGroup : !isStudioGroup;\n });\n }, [unFilteredNavigationEntries, isStudioMode]);\n\n const groupOrderFromNavController = useMemo(() => {\n return unFilteredGroupOrder.filter(g => {\n const isStudioGroup = STUDIO_NAVIGATION_GROUPS.includes(g);\n return isStudioMode ? isStudioGroup : !isStudioGroup;\n });\n }, [unFilteredGroupOrder, isStudioMode]);\n\n const fuse = useRef<Fuse<NavigationEntry> | null>(null);\n const [filteredUrls, setFilteredUrls] = useState<string[] | null>(null);\n const performingSearch = Boolean(filteredUrls);\n\n // Memoize filtered navigation entries to prevent unnecessary recalculations\n const filteredNavigationEntries = useMemo(() => {\n return filteredUrls\n ? rawNavigationEntries.filter((e) => filteredUrls.includes(e.url))\n : rawNavigationEntries;\n }, [filteredUrls, rawNavigationEntries]);\n\n useEffect(() => {\n fuse.current = new Fuse(rawNavigationEntries, {\n keys: [\"name\", \"description\", \"group\", \"path\"]\n });\n }, [rawNavigationEntries]);\n\n const updateSearch = useCallback((v?: string) => {\n if (!v?.trim()) {\n setFilteredUrls(null);\n return;\n }\n const results = fuse.current?.search(v.trim());\n setFilteredUrls(results ? results.map((x) => x.item.url) : []);\n }, []);\n\n /* ───────────────────────────────────────────────────────────────\n Build groups (all items) + isolate Admin\n ─────────────────────────────────────────────────────────────── */\n const [items, setItems] = useState<\n { name: string; entries: NavigationEntry[] }[]\n >([]);\n const [adminGroupData, setAdminGroupData] = useState<{\n name: string;\n entries: NavigationEntry[];\n } | null>(null);\n\n // Flag to prevent useEffect from overwriting local DnD state\n const isDndDirtyRef = useRef(false);\n const dndDirtyTimeoutRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n\n // Memoize the processed groups to avoid unnecessary recalculations\n const processedGroups = useMemo(() => {\n const src = filteredNavigationEntries;\n const entriesByGroup: Record<string, NavigationEntry[]> = {};\n\n src.forEach((e) => {\n const g =\n e.type === \"admin\"\n ? ADMIN_GROUP_NAME\n : e.group ?? DEFAULT_GROUP_NAME;\n (entriesByGroup[g] ??= []).push(e);\n });\n\n // Check if there are custom additional card components from plugins\n const hasPluginAdditionalCards = customizationController.resolvedSlots.some(s => s.slot === \"home.cards\");\n\n let allProcessed: { name: string; entries: NavigationEntry[] }[];\n\n if (performingSearch) {\n const ordered = [\n ...new Set(src.map((e) => e.group ?? DEFAULT_GROUP_NAME))\n ];\n allProcessed = ordered\n .map((name) => ({\n name,\n entries: entriesByGroup[name] || []\n }))\n .filter((g) => g.entries.length);\n } else {\n allProcessed = groupOrderFromNavController.map((g) => ({\n name: g,\n entries: entriesByGroup[g] || []\n }));\n Object.keys(entriesByGroup).forEach((g) => {\n if (!groupOrderFromNavController.includes(g))\n allProcessed.push({\n name: g,\n entries: entriesByGroup[g]\n });\n });\n\n // Ensure default group exists if there are plugin additional cards but no collections\n if (hasPluginAdditionalCards && !allProcessed.some(g => g.name === DEFAULT_GROUP_NAME)) {\n allProcessed.push({\n name: DEFAULT_GROUP_NAME,\n entries: []\n });\n }\n\n allProcessed = allProcessed.filter(\n (g) =>\n g.entries.length ||\n (g.name === DEFAULT_GROUP_NAME && hasPluginAdditionalCards)\n );\n }\n\n const admin = allProcessed.find((g) => g.name === ADMIN_GROUP_NAME);\n return {\n adminGroupData: admin || null,\n items: allProcessed.filter((g) => g.name !== ADMIN_GROUP_NAME && !hiddenGroups?.includes(g.name))\n };\n }, [filteredNavigationEntries, performingSearch, groupOrderFromNavController, customizationController.resolvedSlots, hiddenGroups]);\n\n // Update state only when processedGroups actually changes\n // Skip update if DnD just made a local change (dirty flag is set)\n useEffect(() => {\n if (isDndDirtyRef.current) {\n // DnD just updated the state, skip this sync\n return;\n }\n setAdminGroupData(processedGroups.adminGroupData);\n setItems(processedGroups.items);\n }, [processedGroups]);\n\n /* ───────────────────────────────────────────────────────────────\n Local update vs. persistence helpers\n ─────────────────────────────────────────────────────────────── */\n const updateItems = (\n updater:\n | { name: string; entries: NavigationEntry[] }[]\n | ((\n prev: { name: string; entries: NavigationEntry[] }[]\n ) => { name: string; entries: NavigationEntry[] }[])\n ) => {\n setItems(updater); // local only\n };\n\n const persistNavigationGroups = (\n latest: { name: string; entries: NavigationEntry[] }[]\n ) => {\n // Set dirty flag to prevent useEffect from overwriting local state\n isDndDirtyRef.current = true;\n\n // Clear any existing timeout\n if (dndDirtyTimeoutRef.current) {\n clearTimeout(dndDirtyTimeoutRef.current);\n }\n\n // Clear dirty flag after a delay to allow navigation to update\n dndDirtyTimeoutRef.current = setTimeout(() => {\n isDndDirtyRef.current = false;\n }, 1000);\n\n // Map ALL groups including \"Views\"\n const draggable: NavigationGroupMapping[] = latest.map((g) => ({\n name: g.name,\n entries: g.entries.map((e) => e.slug)\n }));\n\n const all: NavigationGroupMapping[] = adminGroupData\n ? [\n ...draggable,\n {\n name: adminGroupData.name,\n entries: adminGroupData.entries.map((e) => e.slug)\n }\n ]\n : draggable;\n\n onNavigationEntriesUpdate(all);\n };\n\n // Use custom hook for collapsed groups with localStorage persistence\n const groupNames = useMemo(() => [\n ...items.map(item => item.name),\n ...(adminGroupData ? [adminGroupData.name] : [])\n ], [items, adminGroupData]);\n\n const { isGroupCollapsed, toggleGroupCollapsed } = useCollapsedGroups(groupNames, \"home\");\n\n const {\n sensors,\n collisionDetection,\n onDragStart,\n onDragOver,\n onDragEnd,\n dropAnimation,\n activeItemForOverlay,\n activeGroupData,\n draggingGroupId,\n containers,\n dndKitActiveNode,\n onDragCancel,\n isDraggingCardOnly,\n dialogOpenForGroup,\n setDialogOpenForGroup,\n handleRenameGroup,\n handleDialogClose,\n isHoveringNewGroupDropZone,\n setIsHoveringNewGroupDropZone\n } = useHomePageDnd({\n items,\n setItems: updateItems,\n disabled: !allowDragAndDrop || performingSearch,\n onPersist: persistNavigationGroups,\n onGroupMoved: (g) =>\n context.analyticsController?.onAnalyticsEvent?.(\"home_move_group\", {\n name: g\n }),\n onCardMovedBetweenGroups: (card) =>\n context.analyticsController?.onAnalyticsEvent?.(\"home_move_card\", {\n id: card.id\n }),\n onNewGroupDrop: () =>\n context.analyticsController?.onAnalyticsEvent?.(\n \"home_drop_new_group\"\n )\n });\n\n const {\n containerRef,\n direction\n } = useRestoreScroll();\n\n const dndDisabled = !allowDragAndDrop || performingSearch;\n\n const dndModifiers = dndKitActiveNode?.data.current?.type === \"group\"\n ? [restrictToVerticalAxis, restrictToWindowEdges]\n : [restrictToWindowEdges];\n\n const sectionProps: PluginGenericProps = { context };\n const additionalPluginChildrenStart = useSlot(\"home.children.start\", sectionProps);\n const additionalPluginChildrenEnd = useSlot(\"home.children.end\", sectionProps);\n const additionalPluginActions = useSlot(\"home.actions\", sectionProps);\n\n // Pre-compute home.cards slot contributions (cannot call useSlot inside .map loop)\n const homeCardContributions = useMemo(() => {\n return resolvedSlots\n .filter(s => s.slot === \"home.cards\")\n .sort((a, b) => (a.order ?? 50) - (b.order ?? 50));\n }, [resolvedSlots]);\n\n /* ───────────────────────────────────────────────────────────────\n Render\n ─────────────────────────────────────────────────────────────── */\n return (\n <div ref={containerRef} className=\"py-2 overflow-auto h-full w-full dark:bg-surface-800\">\n <Container maxWidth=\"6xl\">\n {/* search & actions */}\n <div\n className=\"w-full sticky py-4 transition-all duration-400 ease-in-out top-0 z-10 flex flex-row gap-4\"\n style={{ top: direction === \"down\" ? -84 : 0 }}\n >\n <SearchBar\n onTextSearch={updateSearch}\n placeholder={t(\"search_collections\")}\n autoFocus\n size=\"small\"\n innerClassName=\"w-full\"\n className=\"w-full grow\"\n />\n {additionalActions}\n {additionalPluginActions}\n </div>\n\n <FavouritesView hidden={performingSearch}/>\n\n {additionalChildrenStart}\n {additionalPluginChildrenStart}\n\n {/* ─────── DND context ─────── */}\n <DndContext\n sensors={sensors}\n collisionDetection={collisionDetection}\n measuring={{\n droppable: {\n strategy: MeasuringStrategy.Always,\n frequency: 500\n }\n }}\n onDragStart={onDragStart}\n onDragOver={onDragOver}\n onDragEnd={onDragEnd}\n onDragCancel={onDragCancel}\n modifiers={dndModifiers}\n >\n <SortableContext\n key={JSON.stringify(containers)}\n items={containers}\n strategy={verticalListSortingStrategy}\n >\n {items.map((groupData, groupIndex) => {\n const groupKey = groupData.name;\n const entriesInGroup = groupData.entries;\n\n const homeCardsProps = {\n group:\n groupKey === DEFAULT_GROUP_NAME\n ? undefined\n : groupKey,\n context\n };\n // Render home.cards contributions inline (no hook call inside loop)\n const additionalCards = homeCardContributions.map((s, i) => (\n <ErrorBoundary key={`home_cards_${groupKey}_${i}`}>\n <s.Component {...homeCardsProps} {...(s.props ?? {})}/>\n </ErrorBoundary>\n ));\n\n if (\n entriesInGroup.length === 0 &&\n (additionalCards.length === 0 || performingSearch)\n )\n return null;\n\n return (\n <SortableNavigationGroup\n key={`group-${groupIndex}`}\n groupName={groupKey}\n disabled={dndDisabled}\n >\n <NavigationGroup\n group={\n groupKey === DEFAULT_GROUP_NAME\n ? undefined\n : groupKey\n }\n minimised={\n draggingGroupId === groupKey &&\n !isDraggingCardOnly\n }\n isPotentialCardDropTarget={\n isDraggingCardOnly\n }\n dndDisabled={dndDisabled}\n onEditGroup={() => {\n if (dndDisabled) return;\n setDialogOpenForGroup(groupKey);\n }}\n collapsed={isGroupCollapsed(groupKey)}\n onToggleCollapsed={() => toggleGroupCollapsed(groupKey)}\n >\n <NavigationGroupDroppable\n id={groupKey}\n itemIds={entriesInGroup.map(\n (e) => e.url\n )}\n isPotentialCardDropTarget={\n isDraggingCardOnly\n }\n >\n <div className=\"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4 \">\n {entriesInGroup.map(\n (entry) => (\n <SortableNavigationCard\n key={entry.url}\n entry={entry}\n onClick={() => {\n let event: AnalyticsEvent =\n \"unmapped_event\";\n if (\n entry.type ===\n \"collection\"\n )\n event =\n \"home_navigate_to_collection\";\n else if (\n entry.type ===\n \"view\"\n )\n event =\n \"home_navigate_to_view\";\n else if (\n entry.type ===\n \"admin\"\n )\n event =\n \"home_navigate_to_admin_view\";\n\n context.analyticsController?.onAnalyticsEvent?.(\n event,\n {\n path: entry.slug\n }\n );\n }}\n />\n )\n )}\n {!performingSearch &&\n groupKey.toLowerCase() !==\n ADMIN_GROUP_NAME.toLowerCase() &&\n additionalCards}\n </div>\n </NavigationGroupDroppable>\n </NavigationGroup>\n </SortableNavigationGroup>\n );\n })}\n </SortableContext>\n\n <NewGroupDropZone\n disabled={dndDisabled}\n setIsHovering={setIsHoveringNewGroupDropZone}\n />\n\n <DragOverlay adjustScale={false} dropAnimation={dropAnimation}>\n {activeGroupData &&\n draggingGroupId === activeGroupData.name ? (\n <div\n className=\"rounded-lg bg-transparent\"\n style={{\n padding: 0,\n margin: 0\n }}\n >\n <NavigationGroup\n group={\n activeGroupData.name ===\n DEFAULT_GROUP_NAME\n ? undefined\n : activeGroupData.name\n }\n isPreview={false}\n minimised\n />\n </div>\n ) : activeItemForOverlay ? (\n <NavigationCardBinding\n {...activeItemForOverlay}\n shrink={isHoveringNewGroupDropZone}\n />\n ) : null}\n </DragOverlay>\n </DndContext>\n\n {!performingSearch && adminGroupData && (\n <NavigationGroup\n group={adminGroupData.name}\n collapsed={isGroupCollapsed(adminGroupData.name)}\n onToggleCollapsed={() => toggleGroupCollapsed(adminGroupData.name)}\n >\n <div className=\"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4 \">\n {adminGroupData.entries.map((entry) => (\n <NavigationCardBinding\n key={entry.url}\n {...entry}\n onClick={() => {\n let event: AnalyticsEvent =\n \"unmapped_event\";\n if (entry.type === \"collection\")\n event =\n \"home_navigate_to_collection\";\n else if (entry.type === \"view\")\n event = \"home_navigate_to_view\";\n else if (entry.type === \"admin\")\n event =\n \"home_navigate_to_admin_view\";\n\n context.analyticsController?.onAnalyticsEvent?.(\n event,\n { path: entry.slug }\n );\n }}\n />\n ))}\n </div>\n </NavigationGroup>\n )}\n\n {sections && sections.map((section) => (\n <NavigationGroup\n key={section.key}\n group={section.title}\n >\n {section.children}\n </NavigationGroup>\n ))}\n\n {additionalPluginChildrenEnd}\n {additionalChildrenEnd}\n </Container>\n\n {dialogOpenForGroup && (\n <RenameGroupDialog\n open\n initialName={dialogOpenForGroup}\n existingGroupNames={items\n .map((g) => g.name)\n .filter((n) => n !== dialogOpenForGroup)}\n onClose={handleDialogClose}\n onRename={(newName) => {\n handleRenameGroup(dialogOpenForGroup, newName);\n }}\n />\n )}\n </div>\n );\n}\n"],"names":["NavigationChip","t0","$","_c","entry","navigate","useNavigate","userConfigurationPersistence","useUserConfigurationPersistence","t1","slug","favouritePaths","includes","favourite","t2","e","preventDefault","stopPropagation","setFavouritePaths","filter","p","onIconClick","t3","url","t4","t5","t6","name","FavouritesView","navigationStateController","useNavigationStateController","T0","path","topLevelNavigation","navigationEntries","find","favouriteCollections","map","Boolean","Collapse","length","_temp","entry_0","NavigationGroup","children","group","minimised","isPreview","isPotentialCardDropTarget","onEditGroup","dndDisabled","collapsed","onToggleCollapsed","t","useTranslation","isHovered","setIsHovered","useState","currentGroupName","showCaret","cls","Symbol","for","t7","iconSize","smallest","t8","TitleContent","t9","t10","t11","t12","open","minHeight","t13","t14","NavigationCard","React","memo","description","icon","actions","additionalContent","onClick","shrink","event","NavigationCardBinding","collection","view","collectionIcon","context","useRebaseContext","actionsArray","pluginCardActions","useSlot","pluginCardInsights","undefined","setRecentlyVisitedPaths","recentlyVisitedPaths","p_0","animateLayoutChanges","args","defaultAnimateLayoutChanges","wasDragging","dropAnimationConfig","cloneSerializableNavigationEntry","clonedEntry","id","type","cloneItemsForDnd","items","g","entries","SortableNavigationCard","setNodeRef","listeners","attributes","transform","transition","isDragging","useSortable","CSS","Transform","toString","opacity","style","NavigationGroupDroppable","itemIds","useDroppable","rectSortingStrategy","SortableNavigationGroup","groupName","disabled","useHomePageDnd","setItems","onCardMovedBetweenGroups","onGroupMoved","onNewGroupDrop","onPersist","dndItems","setDndItems","activeId","setActiveId","activeIsGroup","setActiveIsGroup","currentDraggingGroupId","setCurrentDraggingGroupId","dndKitActiveNode","setDndKitActiveNode","isDraggingCardOnly","setIsDraggingCardOnly","dialogOpenForGroup","setDialogOpenForGroup","isHoveringNewGroupDropZone","setIsHoveringNewGroupDropZone","pendingNewGroupName","setPendingNewGroupName","stateBeforeNewGroup","setStateBeforeNewGroup","preDragItemsRef","useRef","interimItemsRef","useEffect","current","mouseSensor","useSensor","MouseSensor","activationConstraint","distance","touchSensor","TouchSensor","delay","tolerance","keyboardSensor","KeyboardSensor","sensors","useSensors","dndContainers","findDndContainer","useCallback","some","lastOverId","recentlyMovedToNewContainer","collisionDetection","groups","droppableContainers","c","closestCenter","pointer","pointerWithin","zone","container","itemsIn","closest","closestCorners","first","getFirstCollision","rects","rectIntersection","zoneRect","overId","overIsContainer","closestItem","handleDragStart","active","isGroup","data","handleDragOver","over","activeIdNow","overIdNow","activeCont","overCont","newState","srcIdx","findIndex","tgtIdx","src","tgt","idxInSrc","moved","splice","push","overIdx","handleDragEnd","resetDragState","from","to","arrayMove","findContainerInState","state","sourceState","dragged","tentative","counter","grpIdx","oldIdx","newIdx","reordered","finalState","finalOverId","cleanOverCont","console","error","handleDragCancel","handleRenameGroup","oldName","newName","idx","updated","handleDialogClose","activeItemForOverlay","flatMap","activeGroupData","onDragStart","onDragOver","onDragEnd","onDragCancel","dropAnimation","draggingGroupId","containers","NewGroupDropZone","setIsHovering","isOver","isVisible","setIsVisible","tp","useDndMonitor","RenameGroupDialog","initialName","existingGroupNames","onClose","onRename","setName","setError","inputRef","setTimeout","focus","select","target","value","trim","handleNameChange","trimmedName","handleSave","event_0","key","trimmedName_0","currentError","handleKeyDown","display","t15","t16","t17","t18","t19","t20","DEFAULT_GROUP_NAME","ADMIN_GROUP_NAME","ContentHomePage","additionalActions","additionalChildrenStart","additionalChildrenEnd","sections","hiddenGroups","useCMSContext","customizationController","useCustomizationController","adminModeController","useAdminModeController","isStudioMode","mode","resolvedSlots","breadcrumbs","useBreadcrumbsController","set","allowDragAndDrop","unFilteredNavigationEntries","unFilteredGroupOrder","onNavigationEntriesUpdate","rawNavigationEntries","useMemo","isStudioGroup","STUDIO_NAVIGATION_GROUPS","groupOrderFromNavController","fuse","filteredUrls","setFilteredUrls","performingSearch","filteredNavigationEntries","Fuse","keys","updateSearch","v","results","search","x","item","adminGroupData","setAdminGroupData","isDndDirtyRef","dndDirtyTimeoutRef","processedGroups","entriesByGroup","forEach","hasPluginAdditionalCards","s","slot","allProcessed","ordered","Set","Object","admin","updateItems","updater","persistNavigationGroups","latest","clearTimeout","draggable","all","groupNames","isGroupCollapsed","toggleGroupCollapsed","useCollapsedGroups","analyticsController","onAnalyticsEvent","card","containerRef","direction","useRestoreScroll","dndModifiers","restrictToVerticalAxis","restrictToWindowEdges","sectionProps","additionalPluginChildrenStart","additionalPluginChildrenEnd","additionalPluginActions","homeCardContributions","sort","a","b","order","top","droppable","strategy","MeasuringStrategy","Always","frequency","verticalListSortingStrategy","groupData","groupIndex","groupKey","entriesInGroup","homeCardsProps","additionalCards","i","props","toLowerCase","JSON","stringify","padding","margin","section","title","n"],"mappings":"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"}