@rebasepro/admin 0.9.0 → 0.9.1-canary.0de22e0
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.
- package/README.md +7 -7
- package/dist/{CollectionEditorDialog-B-7uW3iJ.js → CollectionEditorDialog-D7odTn0N.js} +150 -36
- package/dist/CollectionEditorDialog-D7odTn0N.js.map +1 -0
- package/dist/{PropertyEditView-7KMTcrqi.js → PropertyEditView-i51tFOfM.js} +6 -6
- package/dist/PropertyEditView-i51tFOfM.js.map +1 -0
- package/dist/{RouterCollectionsStudioView-epqIbZrJ.js → RouterCollectionsStudioView-B9AjTCjT.js} +5 -5
- package/dist/RouterCollectionsStudioView-B9AjTCjT.js.map +1 -0
- package/dist/collection_editor/api/generateCollectionApi.d.ts +4 -4
- package/dist/collection_editor/ui/collection_editor/PropertyEditView.d.ts +1 -1
- package/dist/collection_editor/ui/collection_editor/SwitchControl.d.ts +1 -1
- package/dist/collection_editor/useSafeSnackbarController.d.ts +1 -1
- package/dist/collection_editor_ui.js +5 -5
- package/dist/collection_editor_ui.js.map +1 -1
- package/dist/components/CollectionTableBinding/CollectionTableBindingProps.d.ts +1 -1
- package/dist/components/CollectionTableBinding/internal/EntityTableCell.d.ts +1 -1
- package/dist/components/CollectionTableBinding/internal/popup_field/PopupFormField.d.ts +1 -1
- package/dist/components/CollectionTableBinding/table_bindings.d.ts +1 -1
- package/dist/components/CollectionViewBinding/hooks/useCollectionInlineEditor.d.ts +1 -1
- package/dist/components/{RebaseCMS.d.ts → RebaseAdmin.d.ts} +2 -2
- package/dist/components/RebaseLayout.d.ts +5 -4
- package/dist/components/RebaseShell.d.ts +1 -0
- package/dist/components/SelectableTable/SelectableTable.d.ts +1 -1
- package/dist/components/SelectableTable/SelectableTableContext.d.ts +1 -1
- package/dist/components/SidePanelProvider.d.ts +1 -1
- package/dist/components/field_configs.d.ts +17 -0
- package/dist/components/index.d.ts +1 -1
- package/dist/contexts/BreacrumbsContext.d.ts +1 -1
- package/dist/editor.js +1 -1
- package/dist/editor.js.map +1 -1
- package/dist/export-BM6HPujv.js +518 -0
- package/dist/export-BM6HPujv.js.map +1 -0
- package/dist/form/components/LocalChangesMenu.d.ts +1 -1
- package/dist/form/components/StorageUploadProgress.d.ts +1 -1
- package/dist/form/field_bindings/StorageUploadFieldBinding.d.ts +1 -1
- package/dist/{history-7X5bON_n.js → history-CtIPJxvQ.js} +6 -6
- package/dist/history-CtIPJxvQ.js.map +1 -0
- package/dist/hooks/useSelectionDialog.d.ts +1 -1
- package/dist/import-DzQnT03v.js +328 -0
- package/dist/import-DzQnT03v.js.map +1 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.js +3300 -2
- package/dist/index.js.map +1 -0
- package/dist/preview/components/UrlComponentPreview.d.ts +2 -1
- package/dist/preview/util.d.ts +1 -0
- package/dist/types/components/formex.d.ts +1 -1
- package/dist/util/view_mode.d.ts +54 -0
- package/dist/{src-sUZfe29F.js → util-XFwQ9FEc.js} +17554 -21391
- package/dist/util-XFwQ9FEc.js.map +1 -0
- package/package.json +12 -17
- package/src/collection_editor/ConfigControllerProvider.tsx +1 -1
- package/src/collection_editor/api/generateCollectionApi.ts +4 -4
- package/src/collection_editor/ui/AddKanbanColumnAction.tsx +1 -1
- package/src/collection_editor/ui/CollectionViewHeaderAction.tsx +1 -1
- package/src/collection_editor/ui/EditorCollectionAction.tsx +1 -1
- package/src/collection_editor/ui/EditorCollectionActionStart.tsx +1 -1
- package/src/collection_editor/ui/EditorEntityAction.tsx +1 -1
- package/src/collection_editor/ui/HomePageEditorCollectionAction.tsx +1 -1
- package/src/collection_editor/ui/KanbanSetupAction.tsx +1 -1
- package/src/collection_editor/ui/MissingReferenceWidget.tsx +1 -1
- package/src/collection_editor/ui/NewCollectionButton.tsx +1 -1
- package/src/collection_editor/ui/NewCollectionCard.tsx +1 -1
- package/src/collection_editor/ui/PropertyAddColumnComponent.tsx +1 -1
- package/src/collection_editor/ui/collection_editor/AICollectionGeneratorPopover.tsx +1 -1
- package/src/collection_editor/ui/collection_editor/CollectionDetailsForm.tsx +3 -3
- package/src/collection_editor/ui/collection_editor/CollectionEditorDialog.tsx +3 -3
- package/src/collection_editor/ui/collection_editor/CollectionEditorWelcomeView.tsx +2 -2
- package/src/collection_editor/ui/collection_editor/CollectionPropertiesEditorForm.tsx +2 -2
- package/src/collection_editor/ui/collection_editor/CollectionRLSTab.tsx +139 -13
- package/src/collection_editor/ui/collection_editor/CollectionRelationsTab.tsx +1 -1
- package/src/collection_editor/ui/collection_editor/CollectionStudioView.tsx +1 -1
- package/src/collection_editor/ui/collection_editor/CollectionsStudioView.tsx +1 -1
- package/src/collection_editor/ui/collection_editor/DisplaySettingsForm.tsx +2 -2
- package/src/collection_editor/ui/collection_editor/EntityActionsEditTab.tsx +2 -2
- package/src/collection_editor/ui/collection_editor/EntityActionsSelectDialog.tsx +1 -1
- package/src/collection_editor/ui/collection_editor/EntityCustomViewsSelectDialog.tsx +1 -1
- package/src/collection_editor/ui/collection_editor/EnumForm.tsx +2 -2
- package/src/collection_editor/ui/collection_editor/GeneralSettingsForm.tsx +2 -2
- package/src/collection_editor/ui/collection_editor/GetCodeDialog.tsx +2 -2
- package/src/collection_editor/ui/collection_editor/KanbanConfigSection.tsx +2 -2
- package/src/collection_editor/ui/collection_editor/PropertyEditView.tsx +2 -2
- package/src/collection_editor/ui/collection_editor/PropertyFieldPreview.tsx +1 -1
- package/src/collection_editor/ui/collection_editor/PropertyTree.tsx +1 -1
- package/src/collection_editor/ui/collection_editor/RouterCollectionStudioView.tsx +1 -1
- package/src/collection_editor/ui/collection_editor/SubcollectionsEditTab.tsx +2 -2
- package/src/collection_editor/ui/collection_editor/SwitchControl.tsx +1 -1
- package/src/collection_editor/ui/collection_editor/import/CollectionEditorImportDataPreview.tsx +1 -1
- package/src/collection_editor/ui/collection_editor/import/CollectionEditorImportMapping.tsx +2 -2
- package/src/collection_editor/ui/collection_editor/properties/BlockPropertyField.tsx +1 -1
- package/src/collection_editor/ui/collection_editor/properties/BooleanPropertyField.tsx +1 -1
- package/src/collection_editor/ui/collection_editor/properties/CommonPropertyFields.tsx +3 -3
- package/src/collection_editor/ui/collection_editor/properties/DateTimePropertyField.tsx +2 -2
- package/src/collection_editor/ui/collection_editor/properties/EnumPropertyField.tsx +3 -3
- package/src/collection_editor/ui/collection_editor/properties/MapPropertyField.tsx +2 -2
- package/src/collection_editor/ui/collection_editor/properties/MarkdownPropertyField.tsx +2 -2
- package/src/collection_editor/ui/collection_editor/properties/NumberPropertyField.tsx +2 -2
- package/src/collection_editor/ui/collection_editor/properties/ReferencePropertyField.tsx +2 -2
- package/src/collection_editor/ui/collection_editor/properties/RelationPropertyField.tsx +1 -1
- package/src/collection_editor/ui/collection_editor/properties/RepeatPropertyField.tsx +1 -1
- package/src/collection_editor/ui/collection_editor/properties/StoragePropertyField.tsx +2 -2
- package/src/collection_editor/ui/collection_editor/properties/StringPropertyField.tsx +2 -2
- package/src/collection_editor/ui/collection_editor/properties/UrlPropertyField.tsx +1 -1
- package/src/collection_editor/ui/collection_editor/properties/VectorPropertyField.tsx +1 -1
- package/src/collection_editor/ui/collection_editor/properties/advanced/AdvancedPropertyValidation.tsx +1 -1
- package/src/collection_editor/ui/collection_editor/properties/conditions/ConditionsEditor.tsx +1 -1
- package/src/collection_editor/ui/collection_editor/properties/conditions/EnumConditionsEditor.tsx +1 -1
- package/src/collection_editor/ui/collection_editor/properties/validation/ArrayPropertyValidation.tsx +2 -2
- package/src/collection_editor/ui/collection_editor/properties/validation/GeneralPropertyValidation.tsx +2 -2
- package/src/collection_editor/ui/collection_editor/properties/validation/NumberPropertyValidation.tsx +2 -2
- package/src/collection_editor/ui/collection_editor/properties/validation/StringPropertyValidation.tsx +2 -2
- package/src/collection_editor/useSafeSnackbarController.ts +1 -1
- package/src/components/AdminModeSyncer.tsx +1 -1
- package/src/components/ArrayContainer.tsx +1 -1
- package/src/components/ClearFilterSortButton.tsx +1 -1
- package/src/components/CollectionPanel.tsx +1 -1
- package/src/components/CollectionTableBinding/CollectionRowActions.tsx +3 -3
- package/src/components/CollectionTableBinding/CollectionTableBinding.tsx +3 -3
- package/src/components/CollectionTableBinding/CollectionTableBindingProps.tsx +1 -1
- package/src/components/CollectionTableBinding/PropertyTableCell.tsx +1 -1
- package/src/components/CollectionTableBinding/column_utils.tsx +1 -1
- package/src/components/CollectionTableBinding/fields/TableMultipleRelationField.tsx +2 -2
- package/src/components/CollectionTableBinding/fields/TableReferenceField.tsx +2 -2
- package/src/components/CollectionTableBinding/fields/TableRelationField.tsx +2 -2
- package/src/components/CollectionTableBinding/fields/TableStorageUpload.tsx +1 -1
- package/src/components/CollectionTableBinding/internal/CollectionTableToolbar.tsx +1 -1
- package/src/components/CollectionTableBinding/internal/EntityTableCell.tsx +2 -2
- package/src/components/CollectionTableBinding/internal/EntityTableCellActions.tsx +1 -1
- package/src/components/CollectionTableBinding/internal/popup_field/PopupFormField.tsx +4 -4
- package/src/components/CollectionTableBinding/table_bindings.tsx +1 -1
- package/src/components/CollectionViewBinding/BoardCardBinding.tsx +2 -2
- package/src/components/CollectionViewBinding/CollectionBoardViewBinding.tsx +4 -4
- package/src/components/CollectionViewBinding/CollectionCardViewBinding.tsx +1 -1
- package/src/components/CollectionViewBinding/CollectionListViewBinding.tsx +3 -3
- package/src/components/CollectionViewBinding/CollectionViewActions.tsx +3 -3
- package/src/components/CollectionViewBinding/CollectionViewBinding.tsx +77 -127
- package/src/components/CollectionViewBinding/CollectionViewStartActions.tsx +5 -9
- package/src/components/CollectionViewBinding/EntityCardBinding.tsx +3 -3
- package/src/components/CollectionViewBinding/FiltersDialog.tsx +19 -1
- package/src/components/CollectionViewBinding/SplitListView.tsx +114 -63
- package/src/components/CollectionViewBinding/ViewModeToggle.tsx +1 -1
- package/src/components/CollectionViewBinding/hooks/useCollectionInlineEditor.ts +2 -2
- package/src/components/CollectionViewBinding/hooks/useKanbanDragAndDrop.ts +2 -2
- package/src/components/CollectionViewBinding/useBoardDataController.tsx +9 -3
- package/src/components/CollectionViewBinding/usePreviewSlots.ts +1 -1
- package/src/components/DefaultAppBar.tsx +3 -3
- package/src/components/DefaultDrawer.tsx +3 -3
- package/src/components/DeleteEntityDialog.tsx +1 -1
- package/src/components/DetailViewBinding.tsx +7 -5
- package/src/components/DrawerNavigationGroup.tsx +2 -2
- package/src/components/EditFormActions.tsx +6 -6
- package/src/components/EditViewBinding.tsx +9 -8
- package/src/components/EntityPreviewBinding.tsx +5 -4
- package/src/components/EntityViewBinding.tsx +2 -2
- package/src/components/HomePage/ContentHomePage.tsx +6 -5
- package/src/components/HomePage/FavouritesView.tsx +2 -2
- package/src/components/HomePage/NavigationCardBinding.tsx +3 -3
- package/src/components/HomePage/NavigationGroup.tsx +1 -1
- package/src/components/HomePage/RenameGroupDialog.tsx +1 -1
- package/src/components/JsonPreviewBinding.tsx +1 -1
- package/src/components/{RebaseCMS.tsx → RebaseAdmin.tsx} +3 -3
- package/src/components/RebaseAuthGate.tsx +2 -2
- package/src/components/RebaseLayout.tsx +7 -13
- package/src/components/RebaseNavigation.tsx +18 -3
- package/src/components/RebaseRouteDefs.tsx +3 -3
- package/src/components/RebaseShell.tsx +2 -1
- package/src/components/ReferenceTable/SelectionTableBinding.tsx +7 -6
- package/src/components/ReferenceWidget.tsx +1 -1
- package/src/components/RelationSelector.tsx +1 -1
- package/src/components/SearchIconsView.tsx +2 -2
- package/src/components/SelectableTable/SelectableTable.tsx +2 -2
- package/src/components/SelectableTable/SelectableTableContext.tsx +1 -1
- package/src/components/SelectableTable/filters/BooleanFilterField.tsx +1 -1
- package/src/components/SelectableTable/filters/DateTimeFilterField.tsx +1 -1
- package/src/components/SelectableTable/filters/FilterFieldBinding.tsx +1 -1
- package/src/components/SelectableTable/filters/ReferenceFilterField.tsx +2 -2
- package/src/components/SelectableTable/filters/StringNumberFilterField.tsx +1 -1
- package/src/components/SideDialogs.tsx +1 -1
- package/src/components/SidePanelBinding.tsx +47 -9
- package/src/components/SidePanelProvider.tsx +15 -12
- package/src/components/UserSelector.tsx +1 -1
- package/src/components/admin/CreationResultDialog.tsx +6 -3
- package/src/components/app/Scaffold.tsx +6 -2
- package/src/components/common/default_entity_actions.tsx +123 -25
- package/src/components/field_configs.tsx +42 -25
- package/src/components/history/EntityHistoryEntry.tsx +1 -1
- package/src/components/history/EntityHistoryView.tsx +5 -5
- package/src/components/history/LastEditedByIndicator.tsx +2 -2
- package/src/components/index.ts +1 -1
- package/src/contexts/BreacrumbsContext.tsx +1 -1
- package/src/data_export/export/BasicExportAction.tsx +1 -1
- package/src/data_export/export/ExportCollectionAction.tsx +1 -1
- package/src/data_import/components/DataNewPropertiesMapping.tsx +1 -1
- package/src/data_import/components/ImportFileUpload.tsx +1 -1
- package/src/data_import/components/ImportNewPropertyFieldPreview.tsx +3 -5
- package/src/data_import/components/ImportSaveInProgress.tsx +1 -1
- package/src/data_import/import/ImportCollectionAction.tsx +8 -8
- package/src/data_import/utils/data.ts +2 -2
- package/src/data_import/utils/get_properties_mapping.ts +1 -1
- package/src/editor/components/image-bubble.tsx +1 -1
- package/src/editor/components/table-bubble.tsx +1 -1
- package/src/editor/editor.tsx +1 -1
- package/src/editor/selectors/color-selector.tsx +1 -1
- package/src/editor/selectors/link-selector.tsx +1 -1
- package/src/editor/selectors/node-selector.tsx +2 -2
- package/src/editor/selectors/text-buttons.tsx +1 -1
- package/src/form/EntityForm.tsx +8 -5
- package/src/form/EntityFormActions.tsx +1 -1
- package/src/form/EntityFormBinding.tsx +7 -5
- package/src/form/PropertyFieldBinding.tsx +3 -3
- package/src/form/components/ErrorFocus.tsx +1 -1
- package/src/form/components/LocalChangesMenu.tsx +3 -3
- package/src/form/components/StorageItemPreview.tsx +1 -1
- package/src/form/components/StorageUploadProgress.tsx +3 -3
- package/src/form/field_bindings/ArrayCustomShapedFieldBinding.tsx +3 -2
- package/src/form/field_bindings/ArrayOfReferencesFieldBinding.tsx +4 -3
- package/src/form/field_bindings/BlockFieldBinding.tsx +4 -3
- package/src/form/field_bindings/DateTimeFieldBinding.tsx +3 -2
- package/src/form/field_bindings/KeyValueFieldBinding.tsx +4 -3
- package/src/form/field_bindings/MapFieldBinding.tsx +3 -2
- package/src/form/field_bindings/MarkdownEditorFieldBinding.tsx +4 -3
- package/src/form/field_bindings/MultiSelectFieldBinding.tsx +2 -1
- package/src/form/field_bindings/MultipleRelationFieldBinding.tsx +3 -2
- package/src/form/field_bindings/ReadOnlyFieldBinding.tsx +2 -1
- package/src/form/field_bindings/ReferenceFieldBinding.tsx +5 -4
- package/src/form/field_bindings/RelationFieldBinding.tsx +3 -2
- package/src/form/field_bindings/RepeatFieldBinding.tsx +3 -2
- package/src/form/field_bindings/SelectFieldBinding.tsx +2 -1
- package/src/form/field_bindings/StorageUploadFieldBinding.tsx +5 -4
- package/src/form/field_bindings/SwitchFieldBinding.tsx +2 -1
- package/src/form/field_bindings/TextFieldBinding.tsx +2 -1
- package/src/form/field_bindings/UserSelectFieldBinding.tsx +2 -1
- package/src/form/field_bindings/VectorFieldBinding.tsx +2 -1
- package/src/form/form_utils.ts +1 -1
- package/src/hooks/navigation/useNavigationResolution.ts +19 -4
- package/src/hooks/useBuildSidePanel.tsx +10 -2
- package/src/hooks/useCMSContext.tsx +1 -1
- package/src/hooks/useHistory.ts +1 -1
- package/src/hooks/useResolvedNavigationFrom.tsx +4 -2
- package/src/hooks/useSelectionDialog.tsx +3 -3
- package/src/index.ts +3 -3
- package/src/preview/PropertyPreview.tsx +2 -2
- package/src/preview/components/DatePreview.tsx +1 -1
- package/src/preview/components/EnumValuesChip.tsx +1 -1
- package/src/preview/components/ImagePreview.tsx +2 -2
- package/src/preview/components/ReferencePreview.tsx +3 -3
- package/src/preview/components/RelationPreview.tsx +3 -3
- package/src/preview/components/StorageThumbnail.tsx +1 -1
- package/src/preview/components/UrlComponentPreview.tsx +2 -9
- package/src/preview/property_previews/ArrayOfStorageComponentsPreview.tsx +1 -1
- package/src/preview/property_previews/ArrayOfStringsPreview.tsx +1 -1
- package/src/preview/property_previews/ArrayOneOfPreview.tsx +1 -1
- package/src/preview/property_previews/ArrayPropertyPreview.tsx +1 -1
- package/src/preview/property_previews/NumberPropertyPreview.tsx +1 -1
- package/src/preview/util.ts +9 -0
- package/src/routes/CustomViewRoute.tsx +2 -1
- package/src/routes/RebaseRoute.tsx +21 -26
- package/src/types/components/formex.tsx +1 -1
- package/src/util/navigation_utils.ts +2 -5
- package/src/util/previews.ts +4 -2
- package/src/util/view_mode.ts +102 -0
- package/dist/CollectionEditorDialog-B-7uW3iJ.js.map +0 -1
- package/dist/PropertyEditView-7KMTcrqi.js.map +0 -1
- package/dist/RouterCollectionsStudioView-epqIbZrJ.js.map +0 -1
- package/dist/history-7X5bON_n.js.map +0 -1
- package/dist/src-sUZfe29F.js.map +0 -1
|
@@ -1,12 +1,29 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import {
|
|
2
|
+
Alert,
|
|
3
|
+
Button,
|
|
4
|
+
CopyIcon,
|
|
5
|
+
Dialog,
|
|
6
|
+
DialogActions,
|
|
7
|
+
DialogContent,
|
|
8
|
+
DialogTitle,
|
|
9
|
+
iconSize,
|
|
10
|
+
KeyRoundIcon,
|
|
11
|
+
Label,
|
|
12
|
+
LoadingButton,
|
|
13
|
+
PencilIcon,
|
|
14
|
+
RadioGroup,
|
|
15
|
+
RadioGroupItem,
|
|
16
|
+
TextField,
|
|
17
|
+
Trash2Icon,
|
|
18
|
+
Typography
|
|
19
|
+
} from "@rebasepro/ui";
|
|
2
20
|
import type { EntityAction, User, UserCreationResult } from "@rebasepro/types";
|
|
3
21
|
import {
|
|
4
|
-
ConfirmationDialog,
|
|
5
22
|
useAuthController,
|
|
6
23
|
useRebaseClient,
|
|
7
24
|
useSnackbarController,
|
|
8
25
|
useTranslation
|
|
9
|
-
} from "@rebasepro/
|
|
26
|
+
} from "@rebasepro/app";
|
|
10
27
|
import { DeleteEntityDialog } from "../DeleteEntityDialog";
|
|
11
28
|
import { addRecentId } from "../CollectionViewBinding/utils";
|
|
12
29
|
import { navigateToEntity } from "../../util/navigation_utils";
|
|
@@ -193,9 +210,23 @@ export function ResetPasswordActionDialog({
|
|
|
193
210
|
const { t } = useTranslation();
|
|
194
211
|
const [loading, setLoading] = useState(false);
|
|
195
212
|
const [creationResult, setCreationResult] = useState<UserCreationResult | null>(null);
|
|
213
|
+
const [mode, setMode] = useState<"email" | "manual">("email");
|
|
214
|
+
const [password, setPassword] = useState("");
|
|
215
|
+
const [confirmPassword, setConfirmPassword] = useState("");
|
|
216
|
+
const [error, setError] = useState<string | null>(null);
|
|
217
|
+
|
|
218
|
+
// Strength rules are enforced server side, and are overridable through auth
|
|
219
|
+
// hooks, so only the match is checked here; the server's message is surfaced.
|
|
220
|
+
const passwordsMatch = password === confirmPassword;
|
|
221
|
+
const canSubmit = mode === "email" || (password.length > 0 && passwordsMatch);
|
|
196
222
|
|
|
197
223
|
const handleConfirm = async () => {
|
|
224
|
+
if (mode === "manual" && !passwordsMatch) {
|
|
225
|
+
setError(t("passwords_dont_match") || "Passwords don't match");
|
|
226
|
+
return;
|
|
227
|
+
}
|
|
198
228
|
setLoading(true);
|
|
229
|
+
setError(null);
|
|
199
230
|
try {
|
|
200
231
|
const baseUrl = client?.baseUrl || "";
|
|
201
232
|
const token = await getAuthToken?.();
|
|
@@ -204,28 +235,32 @@ export function ResetPasswordActionDialog({
|
|
|
204
235
|
headers: {
|
|
205
236
|
"Content-Type": "application/json",
|
|
206
237
|
...(token ? { "Authorization": `Bearer ${token}` } : {})
|
|
207
|
-
}
|
|
238
|
+
},
|
|
239
|
+
body: JSON.stringify(mode === "manual" ? { password } : {})
|
|
208
240
|
});
|
|
209
241
|
if (!response.ok) {
|
|
210
|
-
const
|
|
211
|
-
throw new Error(error.message || "Failed to reset password");
|
|
242
|
+
const errorBody = await response.json().catch(() => ({}));
|
|
243
|
+
throw new Error(errorBody.error?.message || errorBody.message || "Failed to reset password");
|
|
212
244
|
}
|
|
213
245
|
const data = await response.json();
|
|
214
|
-
setCreationResult({
|
|
215
|
-
user,
|
|
216
|
-
invitationSent: data.invitationSent ?? false,
|
|
217
|
-
temporaryPassword: data.temporaryPassword
|
|
218
|
-
});
|
|
219
246
|
snackbarController.open({
|
|
220
247
|
type: "success",
|
|
221
248
|
message: t("reset_password_success") || "Password reset successfully"
|
|
222
249
|
});
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
250
|
+
// Setting a password directly returns neither an invitation nor a
|
|
251
|
+
// temporary password, so there is no result to show.
|
|
252
|
+
if (data.invitationSent || data.temporaryPassword) {
|
|
253
|
+
setCreationResult({
|
|
254
|
+
user,
|
|
255
|
+
invitationSent: data.invitationSent ?? false,
|
|
256
|
+
temporaryPassword: data.temporaryPassword,
|
|
257
|
+
emailDeliveryFailed: data.emailDeliveryFailed ?? false
|
|
258
|
+
});
|
|
259
|
+
} else {
|
|
260
|
+
onClose();
|
|
261
|
+
}
|
|
262
|
+
} catch (e: unknown) {
|
|
263
|
+
setError(e instanceof Error ? e.message : (t("error_resetting_password") || "Error resetting password"));
|
|
229
264
|
} finally {
|
|
230
265
|
setLoading(false);
|
|
231
266
|
}
|
|
@@ -244,14 +279,77 @@ export function ResetPasswordActionDialog({
|
|
|
244
279
|
}
|
|
245
280
|
|
|
246
281
|
return (
|
|
247
|
-
<
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
282
|
+
<Dialog open={open} onOpenChange={(o) => !o ? onClose() : undefined} maxWidth="xl">
|
|
283
|
+
<DialogTitle variant="h5" gutterBottom={false}>
|
|
284
|
+
{t("reset_password") || "Reset Password"}
|
|
285
|
+
</DialogTitle>
|
|
286
|
+
<DialogContent>
|
|
287
|
+
<div className="flex flex-col gap-4 py-2">
|
|
288
|
+
<Typography variant="body2" color="secondary">
|
|
289
|
+
{user.email}
|
|
290
|
+
</Typography>
|
|
291
|
+
|
|
292
|
+
<RadioGroup value={mode} onValueChange={(v) => {
|
|
293
|
+
setMode(v as "email" | "manual");
|
|
294
|
+
setError(null);
|
|
295
|
+
}}>
|
|
296
|
+
<div className="flex items-center gap-2">
|
|
297
|
+
<RadioGroupItem value="email" id="reset-password-mode-email"/>
|
|
298
|
+
<Label htmlFor="reset-password-mode-email">
|
|
299
|
+
{t("reset_password_send_email") || "Send a password reset email"}
|
|
300
|
+
</Label>
|
|
301
|
+
</div>
|
|
302
|
+
<div className="flex items-center gap-2">
|
|
303
|
+
<RadioGroupItem value="manual" id="reset-password-mode-manual"/>
|
|
304
|
+
<Label htmlFor="reset-password-mode-manual">
|
|
305
|
+
{t("reset_password_set_manually") || "Set a password manually"}
|
|
306
|
+
</Label>
|
|
307
|
+
</div>
|
|
308
|
+
</RadioGroup>
|
|
309
|
+
|
|
310
|
+
{mode === "manual" && <>
|
|
311
|
+
<TextField
|
|
312
|
+
type="password"
|
|
313
|
+
value={password}
|
|
314
|
+
autoFocus
|
|
315
|
+
autoComplete="new-password"
|
|
316
|
+
label={t("new_password") || "New password"}
|
|
317
|
+
onChange={(e) => {
|
|
318
|
+
setPassword(e.target.value);
|
|
319
|
+
setError(null);
|
|
320
|
+
}}
|
|
321
|
+
/>
|
|
322
|
+
<TextField
|
|
323
|
+
type="password"
|
|
324
|
+
value={confirmPassword}
|
|
325
|
+
autoComplete="new-password"
|
|
326
|
+
error={confirmPassword.length > 0 && !passwordsMatch}
|
|
327
|
+
label={t("confirm_password") || "Confirm password"}
|
|
328
|
+
onChange={(e) => {
|
|
329
|
+
setConfirmPassword(e.target.value);
|
|
330
|
+
setError(null);
|
|
331
|
+
}}
|
|
332
|
+
/>
|
|
333
|
+
<Typography variant="caption" color="secondary">
|
|
334
|
+
{t("reset_password_set_manually_description") ||
|
|
335
|
+
"The password is updated immediately and no email is sent. Share it with the user securely."}
|
|
336
|
+
</Typography>
|
|
337
|
+
</>}
|
|
338
|
+
|
|
339
|
+
{error && <Alert color="error">
|
|
340
|
+
<Typography variant="body2">{error}</Typography>
|
|
341
|
+
</Alert>}
|
|
342
|
+
</div>
|
|
343
|
+
</DialogContent>
|
|
344
|
+
<DialogActions>
|
|
345
|
+
<Button variant="text" onClick={onClose} disabled={loading}>
|
|
346
|
+
{t("cancel")}
|
|
347
|
+
</Button>
|
|
348
|
+
<LoadingButton variant="filled" onClick={handleConfirm} loading={loading} disabled={!canSubmit}>
|
|
349
|
+
{t("reset_password") || "Reset Password"}
|
|
350
|
+
</LoadingButton>
|
|
351
|
+
</DialogActions>
|
|
352
|
+
</Dialog>
|
|
255
353
|
);
|
|
256
354
|
}
|
|
257
355
|
|
|
@@ -42,6 +42,23 @@ import { RelationFieldBinding } from "../form/field_bindings/RelationFieldBindin
|
|
|
42
42
|
import { UserSelectFieldBinding } from "../form/field_bindings/UserSelectFieldBinding";
|
|
43
43
|
import { mergeDeep } from "@rebasepro/utils";
|
|
44
44
|
|
|
45
|
+
/**
|
|
46
|
+
* Every `Field` below is a getter on purpose — do not inline it back to
|
|
47
|
+
* `Field: SomeBinding`.
|
|
48
|
+
*
|
|
49
|
+
* This module and the field bindings form an import cycle: we import the
|
|
50
|
+
* bindings, the container bindings (map, repeat, block, custom-shaped array)
|
|
51
|
+
* import `PropertyFieldBinding` to render their children, and that imports
|
|
52
|
+
* `getFieldConfig` from here. Enter the cycle at a binding rather than here and
|
|
53
|
+
* this object is built while that binding's module is still initialising.
|
|
54
|
+
*
|
|
55
|
+
* As a plain value the binding would be read at that moment. It happens to
|
|
56
|
+
* survive today only because every binding is declared `export function`, which
|
|
57
|
+
* hoists; rewriting a single one as `export const` would make the read a
|
|
58
|
+
* temporal dead zone ReferenceError at import time, surfacing as a blank screen
|
|
59
|
+
* far from its cause. The getter defers the read to first access, long after
|
|
60
|
+
* every module has initialised, so declaration style stops mattering.
|
|
61
|
+
*/
|
|
45
62
|
export const DEFAULT_FIELD_CONFIGS: Record<DefaultFieldConfig, PropertyConfig> = {
|
|
46
63
|
text_field: {
|
|
47
64
|
key: "text_field",
|
|
@@ -51,7 +68,7 @@ export const DEFAULT_FIELD_CONFIGS: Record<DefaultFieldConfig, PropertyConfig> =
|
|
|
51
68
|
color: "#2d7ff9",
|
|
52
69
|
property: {
|
|
53
70
|
type: "string",
|
|
54
|
-
ui: { Field
|
|
71
|
+
ui: { get Field() { return TextFieldBinding; } }
|
|
55
72
|
}
|
|
56
73
|
},
|
|
57
74
|
multiline: {
|
|
@@ -63,7 +80,7 @@ export const DEFAULT_FIELD_CONFIGS: Record<DefaultFieldConfig, PropertyConfig> =
|
|
|
63
80
|
property: {
|
|
64
81
|
type: "string",
|
|
65
82
|
ui: { multiline: true,
|
|
66
|
-
Field
|
|
83
|
+
get Field() { return TextFieldBinding; } }
|
|
67
84
|
}
|
|
68
85
|
},
|
|
69
86
|
markdown: {
|
|
@@ -75,7 +92,7 @@ Field: TextFieldBinding }
|
|
|
75
92
|
property: {
|
|
76
93
|
type: "string",
|
|
77
94
|
ui: { markdown: true,
|
|
78
|
-
Field
|
|
95
|
+
get Field() { return MarkdownEditorFieldBinding; } }
|
|
79
96
|
}
|
|
80
97
|
},
|
|
81
98
|
url: {
|
|
@@ -87,7 +104,7 @@ Field: MarkdownEditorFieldBinding }
|
|
|
87
104
|
property: {
|
|
88
105
|
type: "string",
|
|
89
106
|
ui: { url: true,
|
|
90
|
-
Field
|
|
107
|
+
get Field() { return TextFieldBinding; } }
|
|
91
108
|
}
|
|
92
109
|
},
|
|
93
110
|
email: {
|
|
@@ -99,7 +116,7 @@ Field: TextFieldBinding }
|
|
|
99
116
|
property: {
|
|
100
117
|
type: "string",
|
|
101
118
|
email: true,
|
|
102
|
-
ui: { Field
|
|
119
|
+
ui: { get Field() { return TextFieldBinding; } }
|
|
103
120
|
}
|
|
104
121
|
},
|
|
105
122
|
switch: {
|
|
@@ -110,7 +127,7 @@ Field: TextFieldBinding }
|
|
|
110
127
|
color: "#20d9d2",
|
|
111
128
|
property: {
|
|
112
129
|
type: "boolean",
|
|
113
|
-
ui: { Field
|
|
130
|
+
ui: { get Field() { return SwitchFieldBinding; } }
|
|
114
131
|
}
|
|
115
132
|
},
|
|
116
133
|
select: {
|
|
@@ -122,7 +139,7 @@ Field: TextFieldBinding }
|
|
|
122
139
|
property: {
|
|
123
140
|
type: "string",
|
|
124
141
|
enum: [],
|
|
125
|
-
ui: { Field
|
|
142
|
+
ui: { get Field() { return SelectFieldBinding; } }
|
|
126
143
|
}
|
|
127
144
|
},
|
|
128
145
|
multi_select: {
|
|
@@ -137,17 +154,17 @@ Field: TextFieldBinding }
|
|
|
137
154
|
type: "string",
|
|
138
155
|
enum: []
|
|
139
156
|
},
|
|
140
|
-
ui: { Field
|
|
157
|
+
ui: { get Field() { return MultiSelectFieldBinding; } }
|
|
141
158
|
}
|
|
142
159
|
},
|
|
143
160
|
user_select: {
|
|
144
161
|
key: "user_select",
|
|
145
|
-
name: "
|
|
162
|
+
name: "User select",
|
|
146
163
|
description: "Select a user from the user management system. Store the user ID.",
|
|
147
164
|
Icon: UserIcon,
|
|
148
165
|
property: {
|
|
149
166
|
type: "string",
|
|
150
|
-
ui: { Field
|
|
167
|
+
ui: { get Field() { return UserSelectFieldBinding; } }
|
|
151
168
|
}
|
|
152
169
|
},
|
|
153
170
|
number_input: {
|
|
@@ -158,7 +175,7 @@ Field: TextFieldBinding }
|
|
|
158
175
|
color: "#bec920",
|
|
159
176
|
property: {
|
|
160
177
|
type: "number",
|
|
161
|
-
ui: { Field
|
|
178
|
+
ui: { get Field() { return TextFieldBinding; } }
|
|
162
179
|
}
|
|
163
180
|
},
|
|
164
181
|
number_select: {
|
|
@@ -170,7 +187,7 @@ Field: TextFieldBinding }
|
|
|
170
187
|
property: {
|
|
171
188
|
type: "number",
|
|
172
189
|
enum: [],
|
|
173
|
-
ui: { Field
|
|
190
|
+
ui: { get Field() { return SelectFieldBinding; } }
|
|
174
191
|
}
|
|
175
192
|
},
|
|
176
193
|
multi_number_select: {
|
|
@@ -185,7 +202,7 @@ Field: TextFieldBinding }
|
|
|
185
202
|
type: "number",
|
|
186
203
|
enum: []
|
|
187
204
|
},
|
|
188
|
-
ui: { Field
|
|
205
|
+
ui: { get Field() { return MultiSelectFieldBinding; } }
|
|
189
206
|
}
|
|
190
207
|
},
|
|
191
208
|
file_upload: {
|
|
@@ -199,7 +216,7 @@ Field: TextFieldBinding }
|
|
|
199
216
|
storage: {
|
|
200
217
|
storagePath: "{path}"
|
|
201
218
|
},
|
|
202
|
-
ui: { Field
|
|
219
|
+
ui: { get Field() { return StorageUploadFieldBinding; } }
|
|
203
220
|
}
|
|
204
221
|
},
|
|
205
222
|
multi_file_upload: {
|
|
@@ -216,7 +233,7 @@ Field: TextFieldBinding }
|
|
|
216
233
|
storagePath: "{path}"
|
|
217
234
|
}
|
|
218
235
|
},
|
|
219
|
-
ui: { Field
|
|
236
|
+
ui: { get Field() { return StorageUploadFieldBinding; } }
|
|
220
237
|
}
|
|
221
238
|
},
|
|
222
239
|
reference: {
|
|
@@ -227,7 +244,7 @@ Field: TextFieldBinding }
|
|
|
227
244
|
color: "#ff0042",
|
|
228
245
|
property: {
|
|
229
246
|
type: "reference",
|
|
230
|
-
ui: { Field
|
|
247
|
+
ui: { get Field() { return ReferenceFieldBinding; } }
|
|
231
248
|
}
|
|
232
249
|
},
|
|
233
250
|
multi_references: {
|
|
@@ -241,7 +258,7 @@ Field: TextFieldBinding }
|
|
|
241
258
|
of: {
|
|
242
259
|
type: "reference"
|
|
243
260
|
},
|
|
244
|
-
ui: { Field
|
|
261
|
+
ui: { get Field() { return ArrayOfReferencesFieldBinding; } }
|
|
245
262
|
}
|
|
246
263
|
},
|
|
247
264
|
relation: {
|
|
@@ -253,7 +270,7 @@ Field: TextFieldBinding }
|
|
|
253
270
|
property: {
|
|
254
271
|
relationName: "",
|
|
255
272
|
type: "relation",
|
|
256
|
-
ui: { Field
|
|
273
|
+
ui: { get Field() { return RelationFieldBinding; } }
|
|
257
274
|
}
|
|
258
275
|
},
|
|
259
276
|
date_time: {
|
|
@@ -264,7 +281,7 @@ Field: TextFieldBinding }
|
|
|
264
281
|
color: "#8b46ff",
|
|
265
282
|
property: {
|
|
266
283
|
type: "date",
|
|
267
|
-
ui: { Field
|
|
284
|
+
ui: { get Field() { return DateTimeFieldBinding; } }
|
|
268
285
|
}
|
|
269
286
|
},
|
|
270
287
|
group: {
|
|
@@ -276,7 +293,7 @@ Field: TextFieldBinding }
|
|
|
276
293
|
property: {
|
|
277
294
|
type: "map",
|
|
278
295
|
properties: {},
|
|
279
|
-
ui: { Field
|
|
296
|
+
ui: { get Field() { return MapFieldBinding; } }
|
|
280
297
|
}
|
|
281
298
|
},
|
|
282
299
|
key_value: {
|
|
@@ -288,7 +305,7 @@ Field: TextFieldBinding }
|
|
|
288
305
|
property: {
|
|
289
306
|
type: "map",
|
|
290
307
|
keyValue: true,
|
|
291
|
-
ui: { Field
|
|
308
|
+
ui: { get Field() { return KeyValueFieldBinding; } }
|
|
292
309
|
}
|
|
293
310
|
},
|
|
294
311
|
repeat: {
|
|
@@ -302,7 +319,7 @@ Field: TextFieldBinding }
|
|
|
302
319
|
of: {
|
|
303
320
|
type: "string"
|
|
304
321
|
},
|
|
305
|
-
ui: { Field
|
|
322
|
+
ui: { get Field() { return RepeatFieldBinding; } }
|
|
306
323
|
}
|
|
307
324
|
},
|
|
308
325
|
custom_array: {
|
|
@@ -313,7 +330,7 @@ Field: TextFieldBinding }
|
|
|
313
330
|
color: "#ff9408",
|
|
314
331
|
property: {
|
|
315
332
|
type: "array",
|
|
316
|
-
ui: { Field
|
|
333
|
+
ui: { get Field() { return ArrayCustomShapedFieldBinding; } }
|
|
317
334
|
}
|
|
318
335
|
},
|
|
319
336
|
block: {
|
|
@@ -327,7 +344,7 @@ Field: TextFieldBinding }
|
|
|
327
344
|
oneOf: {
|
|
328
345
|
properties: {}
|
|
329
346
|
},
|
|
330
|
-
ui: { Field
|
|
347
|
+
ui: { get Field() { return BlockFieldBinding; } }
|
|
331
348
|
}
|
|
332
349
|
},
|
|
333
350
|
vector_input: {
|
|
@@ -339,7 +356,7 @@ Field: TextFieldBinding }
|
|
|
339
356
|
property: {
|
|
340
357
|
type: "vector",
|
|
341
358
|
dimensions: 1536,
|
|
342
|
-
ui: { Field
|
|
359
|
+
ui: { get Field() { return VectorFieldBinding; } }
|
|
343
360
|
}
|
|
344
361
|
}
|
|
345
362
|
};
|
|
@@ -7,7 +7,7 @@ import { PreviewSize } from "../../types/components/PropertyPreviewProps";
|
|
|
7
7
|
import { getPropertyInPath } from "../../util/property_utils";
|
|
8
8
|
import { PropertyPreview } from "../../preview/PropertyPreview";
|
|
9
9
|
import { SkeletonPropertyComponent } from "../../preview/property_previews/SkeletonPropertyComponent";
|
|
10
|
-
import { useAuthController } from "@rebasepro/
|
|
10
|
+
import { useAuthController } from "@rebasepro/app";
|
|
11
11
|
import { UserChip } from "./UserChip";
|
|
12
12
|
import { HistoryEntryData } from "../../hooks";
|
|
13
13
|
import { getValueInPath } from "@rebasepro/utils";
|
|
@@ -4,10 +4,10 @@ import { useRef, useEffect } from "react";
|
|
|
4
4
|
import { cls, IconButton, Label, Tooltip, Typography } from "@rebasepro/ui";
|
|
5
5
|
import { ErrorBoundary, HistoryIcon } from "@rebasepro/ui";
|
|
6
6
|
import { EntityHistoryEntry } from "./EntityHistoryEntry";
|
|
7
|
-
import { useSnackbarController, useAuthController } from "@rebasepro/
|
|
8
|
-
import { ConfirmationDialog } from "@rebasepro/
|
|
7
|
+
import { useSnackbarController, useAuthController } from "@rebasepro/app";
|
|
8
|
+
import { ConfirmationDialog } from "@rebasepro/app";
|
|
9
9
|
import { useState } from "react";
|
|
10
|
-
import { useHistory } from "../../
|
|
10
|
+
import { useHistory } from "../../hooks/useHistory";
|
|
11
11
|
|
|
12
12
|
/**
|
|
13
13
|
* Entity history tab view. Shows a paginated list of entity revisions
|
|
@@ -72,7 +72,7 @@ export function EntityHistoryView<M extends Record<string, unknown>>({
|
|
|
72
72
|
|
|
73
73
|
if (!entity) {
|
|
74
74
|
return <div className="flex items-center justify-center h-full">
|
|
75
|
-
<Label>
|
|
75
|
+
<Label>History is only available for existing entities</Label>
|
|
76
76
|
</div>;
|
|
77
77
|
}
|
|
78
78
|
|
|
@@ -117,7 +117,7 @@ export function EntityHistoryView<M extends Record<string, unknown>>({
|
|
|
117
117
|
<div className="flex flex-col gap-2 max-w-6xl mx-auto w-full">
|
|
118
118
|
|
|
119
119
|
<Typography variant={"h5"} className={"mt-24 ml-4"}>
|
|
120
|
-
|
|
120
|
+
History
|
|
121
121
|
</Typography>
|
|
122
122
|
|
|
123
123
|
{isLoading && entries.length === 0 && (
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import type { CollectionConfig } from "@rebasepro/types";
|
|
2
2
|
import React, { useEffect, useState, useCallback } from "react";
|
|
3
3
|
;
|
|
4
|
-
import { useApiConfig } from "@rebasepro/
|
|
5
|
-
import { useAuthController } from "@rebasepro/
|
|
4
|
+
import { useApiConfig } from "@rebasepro/app";
|
|
5
|
+
import { useAuthController } from "@rebasepro/app";
|
|
6
6
|
import { HistoryEntryData } from "../../hooks";
|
|
7
7
|
|
|
8
8
|
function getRelativeTimeString(date: Date): string {
|
package/src/components/index.ts
CHANGED
|
@@ -46,7 +46,7 @@ export * from "./DrawerNavigationGroup";
|
|
|
46
46
|
export * from "./SideDialogs";
|
|
47
47
|
|
|
48
48
|
export * from "./app/useApp";
|
|
49
|
-
export * from "./
|
|
49
|
+
export * from "./RebaseAdmin";
|
|
50
50
|
export * from "./RebaseShell";
|
|
51
51
|
|
|
52
52
|
// Composable shell layers — each independently usable
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React, { useCallback, useMemo, useState } from "react";
|
|
2
|
-
import { BreadcrumbEntry, BreadcrumbsController } from "
|
|
2
|
+
import type { BreadcrumbEntry, BreadcrumbsController } from "@rebasepro/types";
|
|
3
3
|
|
|
4
4
|
const DEFAULT_BREADCRUMBS_CONTROLLER: BreadcrumbsController = {
|
|
5
5
|
breadcrumbs: [],
|
|
@@ -6,7 +6,7 @@ import {
|
|
|
6
6
|
useCustomizationController,
|
|
7
7
|
useData,
|
|
8
8
|
useTranslation
|
|
9
|
-
} from "@rebasepro/
|
|
9
|
+
} from "@rebasepro/app";
|
|
10
10
|
import { useCMSContext } from "../../hooks";
|
|
11
11
|
import { CollectionActionsProps, Entity, CollectionConfig, ExportConfig, RebaseContext, User } from "@rebasepro/types";
|
|
12
12
|
import { getDefaultValuesFor } from "@rebasepro/common";
|
|
@@ -16,7 +16,7 @@ import {
|
|
|
16
16
|
TextField,
|
|
17
17
|
Typography
|
|
18
18
|
} from "@rebasepro/ui";
|
|
19
|
-
import { getIn, setIn } from "@rebasepro/
|
|
19
|
+
import { getIn, setIn } from "@rebasepro/forms";
|
|
20
20
|
import { ImportConfig } from "../types";
|
|
21
21
|
|
|
22
22
|
export interface DataPropertyMappingProps {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { FileUpload, UploadIcon } from "@rebasepro/ui";
|
|
2
2
|
import { convertFileToJson } from "../utils/file_to_json";
|
|
3
|
-
import { useSnackbarController } from "@rebasepro/
|
|
3
|
+
import { useSnackbarController } from "@rebasepro/app";
|
|
4
4
|
|
|
5
5
|
export function ImportFileUpload({ onDataAdded }: {
|
|
6
6
|
onDataAdded: (data: object[], propertiesOrder?: string[]) => void
|
|
@@ -1,10 +1,8 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
import { useCustomizationController } from "@rebasepro/
|
|
2
|
+
import { useCustomizationController } from "@rebasepro/app";
|
|
3
3
|
import { Property } from "@rebasepro/types";
|
|
4
|
-
import {
|
|
5
|
-
|
|
6
|
-
PropertyConfigBadge
|
|
7
|
-
} from "../../components";
|
|
4
|
+
import { getFieldConfig } from "../../components/field_configs";
|
|
5
|
+
import { PropertyConfigBadge } from "../../components/PropertyConfigBadge";
|
|
8
6
|
import { ErrorBoundary, IconButton, PencilIcon, TextField } from "@rebasepro/ui";
|
|
9
7
|
|
|
10
8
|
export function ImportNewPropertyFieldPreview({
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { useData } from "@rebasepro/
|
|
1
|
+
import { useData } from "@rebasepro/app";
|
|
2
2
|
import { Entity, CollectionConfig } from "@rebasepro/types";
|
|
3
3
|
import { RebaseData } from "@rebasepro/types";
|
|
4
4
|
import { Button, CenteredView, CircularProgress, Typography } from "@rebasepro/ui";
|
|
@@ -3,14 +3,12 @@ import {
|
|
|
3
3
|
useAuthController,
|
|
4
4
|
useCustomizationController,
|
|
5
5
|
useSnackbarController
|
|
6
|
-
} from "@rebasepro/
|
|
6
|
+
} from "@rebasepro/app";
|
|
7
7
|
import { getPropertiesWithPropertiesOrder, getPropertyInPath } from "../../util";
|
|
8
8
|
import { CollectionActionsProps, Properties, Property, User, CollectionConfig } from "@rebasepro/types";
|
|
9
|
-
import {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
useSelectionController
|
|
13
|
-
} from "../../components";
|
|
9
|
+
import { getFieldConfig } from "../../components/field_configs";
|
|
10
|
+
import { PropertyConfigBadge } from "../../components/PropertyConfigBadge";
|
|
11
|
+
import { useSelectionController } from "../../components/CollectionViewBinding/useSelectionController";
|
|
14
12
|
import { CollectionTableBinding } from "../../components/CollectionTableBinding/CollectionTableBinding";
|
|
15
13
|
import { useCollectionRegistryController } from "../../hooks";
|
|
16
14
|
import {
|
|
@@ -29,10 +27,12 @@ import {
|
|
|
29
27
|
Typography,
|
|
30
28
|
UploadIcon
|
|
31
29
|
} from "@rebasepro/ui";
|
|
32
|
-
import { buildEntityPropertiesFromData } from "@rebasepro/
|
|
30
|
+
import { buildEntityPropertiesFromData } from "@rebasepro/inference";
|
|
33
31
|
import { useImportConfig } from "../hooks";
|
|
34
32
|
import { convertDataToEntity, getInferenceType } from "../utils";
|
|
35
|
-
import { DataNewPropertiesMapping
|
|
33
|
+
import { DataNewPropertiesMapping } from "../components/DataNewPropertiesMapping";
|
|
34
|
+
import { ImportFileUpload } from "../components/ImportFileUpload";
|
|
35
|
+
import { ImportSaveInProgress } from "../components/ImportSaveInProgress";
|
|
36
36
|
import { ImportConfig } from "../types";
|
|
37
37
|
import { slugify } from "@rebasepro/utils";
|
|
38
38
|
|
|
@@ -2,8 +2,8 @@ import { getPropertyInPath } from "../../util";
|
|
|
2
2
|
import { AuthController, Entity, CollectionConfig, EntityReference, CollectionRegistryController, Properties, Property, Vector } from "@rebasepro/types";
|
|
3
3
|
import { isPropertyBuilder } from "@rebasepro/common";
|
|
4
4
|
import { unflattenObject } from "./file_to_json";
|
|
5
|
-
import { getIn } from "@rebasepro/
|
|
6
|
-
import { inferTypeFromValue } from "@rebasepro/
|
|
5
|
+
import { getIn } from "@rebasepro/forms";
|
|
6
|
+
import { inferTypeFromValue } from "@rebasepro/inference";
|
|
7
7
|
import { mergeDeep } from "@rebasepro/utils";
|
|
8
8
|
|
|
9
9
|
export function convertDataToEntity(authController: AuthController,
|
|
@@ -3,7 +3,7 @@ import { useProseMirrorContext } from "../hooks/useProseMirrorContext";
|
|
|
3
3
|
import { autoUpdate, computePosition, flip, offset, shift, type VirtualElement, type Placement } from "@floating-ui/dom";
|
|
4
4
|
import { NodeSelection } from "prosemirror-state";
|
|
5
5
|
import { TextField, defaultBorderMixin, Typography, cls } from "@rebasepro/ui";
|
|
6
|
-
import { useTranslation } from "@rebasepro/
|
|
6
|
+
import { useTranslation } from "@rebasepro/app";
|
|
7
7
|
|
|
8
8
|
export interface ImageBubbleProps {
|
|
9
9
|
options?: { placement?: Placement; offset?: number };
|
|
@@ -10,7 +10,7 @@ import {
|
|
|
10
10
|
type Placement
|
|
11
11
|
} from "@floating-ui/dom";
|
|
12
12
|
import { IconButton, Tooltip, defaultBorderMixin, cls } from "@rebasepro/ui";
|
|
13
|
-
import { useTranslation } from "@rebasepro/
|
|
13
|
+
import { useTranslation } from "@rebasepro/app";
|
|
14
14
|
import {
|
|
15
15
|
addColumnBefore,
|
|
16
16
|
addColumnAfter,
|
package/src/editor/editor.tsx
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import React, { useEffect, useState, useRef, useMemo } from "react";
|
|
3
3
|
import { EditorState, Selection } from "prosemirror-state";
|
|
4
4
|
import { cls, defaultBorderMixin, Separator, TextareaAutosize, useInjectStyles } from "@rebasepro/ui";
|
|
5
|
-
import { useTranslation } from "@rebasepro/
|
|
5
|
+
import { useTranslation } from "@rebasepro/app";
|
|
6
6
|
import { EditorBubble, ImageBubble, SlashCommandMenu, TableBubble, type JSONContent } from "./components";
|
|
7
7
|
import { NodeSelector } from "./selectors/node-selector";
|
|
8
8
|
import { LinkSelector } from "./selectors/link-selector";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Dispatch, SetStateAction } from "react";
|
|
2
|
-
import { EditorBubbleItem } from "../components";
|
|
2
|
+
import { EditorBubbleItem } from "../components/editor-bubble-item";
|
|
3
3
|
import { Button, CheckIcon, ChevronDownIcon, Popover } from "@rebasepro/ui";
|
|
4
4
|
import { useProseMirrorContext } from "../hooks/useProseMirrorContext";
|
|
5
5
|
import { isMarkActive, getMarkAttributes, setMark, unsetMark } from "../utils/prosemirror-utils";
|