@firecms/core 3.0.0-canary.99 → 3.0.0-rc.2
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 +2 -2
- package/dist/app/Drawer.d.ts +0 -1
- package/dist/app/Scaffold.d.ts +4 -0
- package/dist/components/ArrayContainer.d.ts +31 -12
- package/dist/components/{DeleteConfirmationDialog.d.ts → ConfirmationDialog.d.ts} +1 -1
- package/dist/components/EntityCollectionTable/EntityCollectionRowActions.d.ts +3 -1
- package/dist/components/EntityCollectionTable/EntityCollectionTable.d.ts +2 -2
- package/dist/components/EntityCollectionTable/EntityCollectionTableProps.d.ts +17 -3
- package/dist/components/EntityCollectionTable/fields/TableReferenceField.d.ts +1 -1
- package/dist/components/EntityCollectionTable/index.d.ts +1 -1
- package/dist/components/EntityCollectionTable/internal/popup_field/PopupFormField.d.ts +6 -3
- package/dist/components/EntityCollectionView/EntityCollectionView.d.ts +8 -0
- package/dist/components/EntityCollectionView/utils.d.ts +3 -0
- package/dist/components/EntityJsonPreview.d.ts +3 -0
- package/dist/components/EntityPreview.d.ts +8 -6
- package/dist/components/HomePage/DefaultHomePage.d.ts +2 -15
- package/dist/components/HomePage/HomePageDnD.d.ts +76 -0
- package/dist/components/HomePage/NavigationCard.d.ts +3 -1
- package/dist/components/HomePage/NavigationCardBinding.d.ts +3 -2
- package/dist/components/HomePage/NavigationGroup.d.ts +8 -1
- package/dist/components/HomePage/RenameGroupDialog.d.ts +9 -0
- package/dist/components/PropertyConfigBadge.d.ts +2 -1
- package/dist/components/PropertyIdCopyTooltip.d.ts +8 -0
- package/dist/components/SelectableTable/SelectableTable.d.ts +13 -3
- package/dist/components/SelectableTable/filters/ReferenceFilterField.d.ts +1 -1
- package/dist/components/UnsavedChangesDialog.d.ts +8 -0
- package/dist/components/UserDisplay.d.ts +7 -0
- package/dist/components/VirtualTable/VirtualTableProps.d.ts +11 -2
- package/dist/components/VirtualTable/fields/VirtualTableUserSelect.d.ts +12 -0
- package/dist/components/common/default_entity_actions.d.ts +0 -2
- package/dist/components/common/index.d.ts +1 -1
- package/dist/components/common/useColumnsIds.d.ts +1 -0
- package/dist/components/common/{useDataSourceEntityCollectionTableController.d.ts → useDataSourceTableController.d.ts} +10 -2
- package/dist/components/common/useDebouncedCallback.d.ts +1 -0
- package/dist/components/common/useScrollRestoration.d.ts +14 -0
- package/dist/components/index.d.ts +3 -1
- package/dist/contexts/BreacrumbsContext.d.ts +8 -0
- package/dist/contexts/InternalUserManagementContext.d.ts +3 -0
- package/dist/core/DefaultAppBar.d.ts +8 -2
- package/dist/core/DrawerNavigationItem.d.ts +2 -1
- package/dist/core/EntityEditView.d.ts +40 -22
- package/dist/core/EntityEditViewFormActions.d.ts +2 -0
- package/dist/core/FireCMS.d.ts +2 -3
- package/dist/core/FireCMSRouter.d.ts +4 -0
- package/dist/core/NavigationRoutes.d.ts +0 -1
- package/dist/core/SideDialogs.d.ts +4 -2
- package/dist/core/field_configs.d.ts +1 -1
- package/dist/core/index.d.ts +2 -1
- package/dist/form/EntityForm.d.ts +50 -0
- package/dist/form/EntityFormActions.d.ts +21 -0
- package/dist/form/PropertyFieldBinding.d.ts +1 -1
- package/dist/form/components/FormEntry.d.ts +6 -0
- package/dist/form/components/FormLayout.d.ts +5 -0
- package/dist/form/components/LabelWithIcon.d.ts +1 -1
- package/dist/form/components/LabelWithIconAndTooltip.d.ts +15 -0
- package/dist/form/components/index.d.ts +3 -1
- package/dist/form/field_bindings/ArrayCustomShapedFieldBinding.d.ts +1 -1
- package/dist/form/field_bindings/ArrayOfReferencesFieldBinding.d.ts +1 -1
- package/dist/form/field_bindings/BlockFieldBinding.d.ts +1 -1
- package/dist/form/field_bindings/KeyValueFieldBinding.d.ts +1 -1
- package/dist/form/field_bindings/MapFieldBinding.d.ts +1 -1
- package/dist/form/field_bindings/MarkdownEditorFieldBinding.d.ts +11 -0
- package/dist/form/field_bindings/{MultiSelectBinding.d.ts → MultiSelectFieldBinding.d.ts} +1 -1
- package/dist/form/field_bindings/ReadOnlyFieldBinding.d.ts +1 -1
- package/dist/form/field_bindings/ReferenceAsStringFieldBinding.d.ts +9 -0
- package/dist/form/field_bindings/ReferenceFieldBinding.d.ts +2 -2
- package/dist/form/field_bindings/RepeatFieldBinding.d.ts +1 -1
- package/dist/form/field_bindings/SelectFieldBinding.d.ts +1 -1
- package/dist/form/field_bindings/StorageUploadFieldBinding.d.ts +4 -10
- package/dist/form/field_bindings/SwitchFieldBinding.d.ts +1 -2
- package/dist/form/field_bindings/TextFieldBinding.d.ts +1 -1
- package/dist/form/field_bindings/UserSelectFieldBinding.d.ts +12 -0
- package/dist/form/index.d.ts +17 -16
- package/dist/form/useClearRestoreValue.d.ts +2 -2
- package/dist/hooks/data/delete.d.ts +4 -4
- package/dist/hooks/data/save.d.ts +3 -3
- package/dist/hooks/data/useCollectionFetch.d.ts +1 -1
- package/dist/hooks/data/useEntityFetch.d.ts +4 -3
- package/dist/hooks/index.d.ts +2 -0
- package/dist/hooks/useAuthController.d.ts +1 -1
- package/dist/hooks/useBreadcrumbsController.d.ts +26 -0
- package/dist/hooks/useBuildNavigationController.d.ts +57 -12
- package/dist/hooks/useCollapsedGroups.d.ts +9 -0
- package/dist/hooks/useFireCMSContext.d.ts +1 -1
- package/dist/hooks/useInternalUserManagementController.d.ts +12 -0
- package/dist/hooks/useModeController.d.ts +1 -2
- package/dist/hooks/useProjectLog.d.ts +7 -1
- package/dist/hooks/useResolvedNavigationFrom.d.ts +3 -3
- package/dist/hooks/useValidateAuthenticator.d.ts +3 -3
- package/dist/index.es.js +20480 -14434
- package/dist/index.es.js.map +1 -1
- package/dist/index.umd.js +20250 -14209
- package/dist/index.umd.js.map +1 -1
- package/dist/internal/useBuildDataSource.d.ts +3 -2
- package/dist/internal/useBuildSideEntityController.d.ts +3 -3
- package/dist/internal/useUnsavedChangesDialog.d.ts +7 -9
- package/dist/preview/PropertyPreviewProps.d.ts +1 -1
- package/dist/preview/components/EnumValuesChip.d.ts +1 -1
- package/dist/preview/components/ReferencePreview.d.ts +2 -2
- package/dist/preview/components/UserPreview.d.ts +8 -0
- package/dist/preview/index.d.ts +1 -0
- package/dist/preview/util.d.ts +3 -3
- package/dist/routes/CustomCMSRoute.d.ts +4 -0
- package/dist/routes/FireCMSRoute.d.ts +1 -0
- package/dist/routes/HomePageRoute.d.ts +3 -0
- package/dist/types/analytics.d.ts +1 -1
- package/dist/types/auth.d.ts +7 -9
- package/dist/types/collections.d.ts +88 -25
- package/dist/types/customization_controller.d.ts +8 -0
- package/dist/types/datasource.d.ts +19 -17
- package/dist/types/dialogs_controller.d.ts +7 -3
- package/dist/types/entities.d.ts +7 -2
- package/dist/types/entity_actions.d.ts +58 -8
- package/dist/types/entity_callbacks.d.ts +16 -16
- package/dist/types/entity_overrides.d.ts +2 -2
- package/dist/types/export_import.d.ts +4 -4
- package/dist/types/fields.d.ts +43 -17
- package/dist/types/firecms.d.ts +31 -3
- package/dist/types/firecms_context.d.ts +17 -1
- package/dist/types/index.d.ts +1 -0
- package/dist/types/internal_user_management.d.ts +20 -0
- package/dist/types/navigation.d.ts +60 -17
- package/dist/types/permissions.d.ts +4 -4
- package/dist/types/plugins.d.ts +44 -9
- package/dist/types/properties.d.ts +74 -22
- package/dist/types/property_config.d.ts +1 -3
- package/dist/types/roles.d.ts +3 -0
- package/dist/types/side_dialogs_controller.d.ts +10 -0
- package/dist/types/side_entity_controller.d.ts +14 -1
- package/dist/types/storage.d.ts +75 -0
- package/dist/types/user.d.ts +2 -1
- package/dist/util/builders.d.ts +3 -3
- package/dist/util/callbacks.d.ts +2 -0
- package/dist/util/createFormexStub.d.ts +2 -0
- package/dist/util/entities.d.ts +2 -2
- package/dist/util/entity_actions.d.ts +2 -0
- package/dist/util/entity_cache.d.ts +23 -0
- package/dist/util/icon_synonyms.d.ts +0 -1
- package/dist/util/icons.d.ts +5 -2
- package/dist/util/index.d.ts +3 -0
- package/dist/util/navigation_from_path.d.ts +10 -1
- package/dist/util/navigation_utils.d.ts +13 -1
- package/dist/util/objects.d.ts +2 -1
- package/dist/util/permissions.d.ts +4 -4
- package/dist/util/property_utils.d.ts +4 -4
- package/dist/util/references.d.ts +2 -2
- package/dist/util/resolutions.d.ts +30 -6
- package/dist/util/storage.d.ts +1 -1
- package/dist/util/useStorageUploadController.d.ts +2 -2
- package/package.json +133 -125
- package/src/app/Drawer.tsx +0 -1
- package/src/app/Scaffold.tsx +33 -29
- package/src/components/ArrayContainer.tsx +447 -229
- package/src/components/CircularProgressCenter.tsx +1 -1
- package/src/components/ClearFilterSortButton.tsx +1 -1
- package/src/components/{DeleteConfirmationDialog.tsx → ConfirmationDialog.tsx} +12 -11
- package/src/components/DeleteEntityDialog.tsx +13 -20
- package/src/components/EntityCollectionTable/EntityCollectionRowActions.tsx +59 -25
- package/src/components/EntityCollectionTable/EntityCollectionTable.tsx +23 -17
- package/src/components/EntityCollectionTable/EntityCollectionTableProps.tsx +20 -3
- package/src/components/EntityCollectionTable/PropertyTableCell.tsx +47 -9
- package/src/components/EntityCollectionTable/fields/TableReferenceField.tsx +21 -16
- package/src/components/EntityCollectionTable/fields/TableStorageUpload.tsx +6 -12
- package/src/components/EntityCollectionTable/index.tsx +1 -1
- package/src/components/EntityCollectionTable/internal/CollectionTableToolbar.tsx +6 -6
- package/src/components/EntityCollectionTable/internal/EntityTableCell.tsx +35 -26
- package/src/components/EntityCollectionTable/internal/EntityTableCellActions.tsx +20 -8
- package/src/components/EntityCollectionTable/internal/popup_field/PopupFormField.tsx +132 -101
- package/src/components/EntityCollectionTable/internal/popup_field/useDraggable.tsx +9 -9
- package/src/components/EntityCollectionView/EntityCollectionView.tsx +178 -85
- package/src/components/EntityCollectionView/EntityCollectionViewActions.tsx +7 -4
- package/src/components/EntityCollectionView/useSelectionController.tsx +5 -4
- package/src/components/EntityCollectionView/utils.ts +19 -0
- package/src/components/EntityJsonPreview.tsx +66 -0
- package/src/components/EntityPreview.tsx +75 -57
- package/src/components/EntityView.tsx +8 -5
- package/src/components/ErrorView.tsx +3 -3
- package/src/components/FireCMSLogo.tsx +7 -51
- package/src/components/HomePage/DefaultHomePage.tsx +506 -161
- package/src/components/HomePage/FavouritesView.tsx +9 -14
- package/src/components/HomePage/HomePageDnD.tsx +600 -0
- package/src/components/HomePage/NavigationCard.tsx +47 -38
- package/src/components/HomePage/NavigationCardBinding.tsx +16 -15
- package/src/components/HomePage/NavigationGroup.tsx +144 -30
- package/src/components/HomePage/RenameGroupDialog.tsx +123 -0
- package/src/components/HomePage/SmallNavigationCard.tsx +1 -2
- package/src/components/NotFoundPage.tsx +2 -2
- package/src/components/PropertyConfigBadge.tsx +10 -4
- package/src/components/PropertyIdCopyTooltip.tsx +47 -0
- package/src/components/ReferenceTable/ReferenceSelectionTable.tsx +22 -13
- package/src/components/SearchIconsView.tsx +2 -2
- package/src/components/SelectableTable/SelectableTable.tsx +154 -142
- package/src/components/SelectableTable/filters/DateTimeFilterField.tsx +4 -2
- package/src/components/SelectableTable/filters/ReferenceFilterField.tsx +10 -8
- package/src/components/SelectableTable/filters/StringNumberFilterField.tsx +60 -11
- package/src/components/UnsavedChangesDialog.tsx +46 -0
- package/src/components/UserDisplay.tsx +55 -0
- package/src/components/VirtualTable/VirtualTable.tsx +65 -44
- package/src/components/VirtualTable/VirtualTableCell.tsx +0 -8
- package/src/components/VirtualTable/VirtualTableHeader.tsx +8 -8
- package/src/components/VirtualTable/VirtualTableHeaderRow.tsx +1 -1
- package/src/components/VirtualTable/VirtualTableProps.tsx +12 -2
- package/src/components/VirtualTable/VirtualTableRow.tsx +1 -1
- package/src/components/VirtualTable/fields/VirtualTableDateField.tsx +4 -4
- package/src/components/VirtualTable/fields/VirtualTableInput.tsx +2 -2
- package/src/components/VirtualTable/fields/VirtualTableNumberInput.tsx +2 -1
- package/src/components/VirtualTable/fields/VirtualTableSelect.tsx +16 -28
- package/src/components/VirtualTable/fields/VirtualTableUserSelect.tsx +99 -0
- package/src/components/common/default_entity_actions.tsx +62 -42
- package/src/components/common/index.ts +1 -1
- package/src/components/common/useColumnsIds.tsx +2 -9
- package/src/components/common/useDataSourceTableController.tsx +420 -0
- package/src/components/common/useDebouncedCallback.tsx +20 -0
- package/src/components/common/useScrollRestoration.tsx +68 -0
- package/src/components/common/useTableSearchHelper.ts +1 -0
- package/src/components/index.tsx +4 -1
- package/src/contexts/BreacrumbsContext.tsx +38 -0
- package/src/contexts/DialogsProvider.tsx +3 -2
- package/src/contexts/InternalUserManagementContext.tsx +4 -0
- package/src/contexts/ModeController.tsx +1 -3
- package/src/contexts/SnackbarProvider.tsx +2 -0
- package/src/core/DefaultAppBar.tsx +124 -85
- package/src/core/DefaultDrawer.tsx +30 -22
- package/src/core/DrawerNavigationItem.tsx +32 -28
- package/src/core/EntityEditView.tsx +388 -995
- package/src/core/EntityEditViewFormActions.tsx +329 -0
- package/src/core/EntitySidePanel.tsx +88 -20
- package/src/core/FireCMS.tsx +58 -28
- package/src/core/FireCMSRouter.tsx +17 -0
- package/src/core/NavigationRoutes.tsx +23 -32
- package/src/core/SideDialogs.tsx +22 -12
- package/src/core/field_configs.tsx +39 -11
- package/src/core/index.tsx +4 -2
- package/src/form/EntityForm.tsx +814 -0
- package/src/form/EntityFormActions.tsx +211 -0
- package/src/form/PropertyFieldBinding.tsx +59 -41
- package/src/form/components/CustomIdField.tsx +9 -3
- package/src/form/components/FieldHelperText.tsx +1 -1
- package/src/form/components/FormEntry.tsx +22 -0
- package/src/form/components/FormLayout.tsx +16 -0
- package/src/form/components/LabelWithIcon.tsx +30 -19
- package/src/form/components/LabelWithIconAndTooltip.tsx +28 -0
- package/src/form/components/StorageItemPreview.tsx +5 -4
- package/src/form/components/StorageUploadProgress.tsx +2 -3
- package/src/form/components/index.tsx +3 -1
- package/src/form/field_bindings/ArrayCustomShapedFieldBinding.tsx +30 -18
- package/src/form/field_bindings/ArrayOfReferencesFieldBinding.tsx +47 -36
- package/src/form/field_bindings/BlockFieldBinding.tsx +55 -33
- package/src/form/field_bindings/DateTimeFieldBinding.tsx +18 -14
- package/src/form/field_bindings/KeyValueFieldBinding.tsx +19 -15
- package/src/form/field_bindings/MapFieldBinding.tsx +72 -62
- package/src/form/field_bindings/MarkdownEditorFieldBinding.tsx +159 -0
- package/src/form/field_bindings/{MultiSelectBinding.tsx → MultiSelectFieldBinding.tsx} +26 -21
- package/src/form/field_bindings/ReadOnlyFieldBinding.tsx +10 -8
- package/src/form/field_bindings/ReferenceAsStringFieldBinding.tsx +135 -0
- package/src/form/field_bindings/ReferenceFieldBinding.tsx +28 -19
- package/src/form/field_bindings/RepeatFieldBinding.tsx +56 -32
- package/src/form/field_bindings/SelectFieldBinding.tsx +22 -13
- package/src/form/field_bindings/StorageUploadFieldBinding.tsx +247 -168
- package/src/form/field_bindings/SwitchFieldBinding.tsx +29 -24
- package/src/form/field_bindings/TextFieldBinding.tsx +28 -24
- package/src/form/field_bindings/UserSelectFieldBinding.tsx +94 -0
- package/src/form/index.tsx +17 -37
- package/src/form/useClearRestoreValue.tsx +2 -2
- package/src/form/validation.ts +12 -6
- package/src/hooks/data/delete.ts +6 -5
- package/src/hooks/data/save.ts +26 -35
- package/src/hooks/data/useCollectionFetch.tsx +3 -3
- package/src/hooks/data/useDataSource.tsx +10 -2
- package/src/hooks/data/useEntityFetch.tsx +10 -6
- package/src/hooks/index.tsx +3 -0
- package/src/hooks/useAuthController.tsx +1 -1
- package/src/hooks/useBreadcrumbsController.tsx +31 -0
- package/src/hooks/useBrowserTitleAndIcon.tsx +1 -1
- package/src/hooks/useBuildModeController.tsx +15 -28
- package/src/hooks/useBuildNavigationController.tsx +386 -124
- package/src/hooks/useCollapsedGroups.ts +64 -0
- package/src/hooks/useFireCMSContext.tsx +9 -35
- package/src/hooks/useInternalUserManagementController.tsx +16 -0
- package/src/hooks/useLargeLayout.tsx +0 -35
- package/src/hooks/useModeController.tsx +1 -2
- package/src/hooks/useProjectLog.tsx +16 -5
- package/src/hooks/useResolvedNavigationFrom.tsx +9 -11
- package/src/hooks/useValidateAuthenticator.tsx +3 -3
- package/src/internal/useBuildDataSource.ts +67 -80
- package/src/internal/useBuildSideDialogsController.tsx +4 -2
- package/src/internal/useBuildSideEntityController.tsx +149 -86
- package/src/internal/useUnsavedChangesDialog.tsx +127 -91
- package/src/preview/PropertyPreview.tsx +36 -12
- package/src/preview/PropertyPreviewProps.tsx +1 -1
- package/src/preview/components/BooleanPreview.tsx +1 -1
- package/src/preview/components/EmptyValue.tsx +1 -1
- package/src/preview/components/EnumValuesChip.tsx +1 -1
- package/src/preview/components/ImagePreview.tsx +10 -9
- package/src/preview/components/ReferencePreview.tsx +10 -18
- package/src/preview/components/UrlComponentPreview.tsx +20 -21
- package/src/preview/components/UserPreview.tsx +27 -0
- package/src/preview/index.ts +1 -0
- package/src/preview/property_previews/ArrayOfMapsPreview.tsx +6 -5
- package/src/preview/property_previews/ArrayOfReferencesPreview.tsx +5 -4
- package/src/preview/property_previews/ArrayOfStorageComponentsPreview.tsx +5 -3
- package/src/preview/property_previews/ArrayOfStringsPreview.tsx +4 -3
- package/src/preview/property_previews/ArrayOneOfPreview.tsx +6 -4
- package/src/preview/property_previews/ArrayPropertyPreview.tsx +6 -4
- package/src/preview/property_previews/MapPropertyPreview.tsx +7 -6
- package/src/preview/property_previews/SkeletonPropertyComponent.tsx +13 -13
- package/src/preview/property_previews/StringPropertyPreview.tsx +2 -2
- package/src/preview/util.ts +10 -10
- package/src/routes/CustomCMSRoute.tsx +21 -0
- package/src/routes/FireCMSRoute.tsx +246 -0
- package/src/routes/HomePageRoute.tsx +17 -0
- package/src/types/analytics.ts +3 -0
- package/src/types/auth.tsx +8 -12
- package/src/types/collections.ts +103 -28
- package/src/types/customization_controller.tsx +9 -0
- package/src/types/datasource.ts +21 -20
- package/src/types/dialogs_controller.tsx +7 -3
- package/src/types/entities.ts +10 -2
- package/src/types/entity_actions.tsx +71 -8
- package/src/types/entity_callbacks.ts +18 -18
- package/src/types/entity_overrides.tsx +2 -2
- package/src/types/export_import.ts +4 -4
- package/src/types/fields.tsx +52 -19
- package/src/types/firecms.tsx +34 -4
- package/src/types/firecms_context.tsx +18 -1
- package/src/types/index.ts +1 -0
- package/src/types/internal_user_management.ts +24 -0
- package/src/types/navigation.ts +76 -22
- package/src/types/permissions.ts +5 -5
- package/src/types/plugins.tsx +53 -9
- package/src/types/properties.ts +84 -22
- package/src/types/property_config.tsx +2 -2
- package/src/types/roles.ts +3 -0
- package/src/types/side_dialogs_controller.tsx +15 -0
- package/src/types/side_entity_controller.tsx +16 -1
- package/src/types/storage.ts +82 -0
- package/src/types/user.ts +3 -1
- package/src/util/builders.ts +10 -8
- package/src/util/callbacks.ts +119 -0
- package/src/util/createFormexStub.tsx +62 -0
- package/src/util/entities.ts +6 -4
- package/src/util/entity_actions.ts +28 -0
- package/src/util/entity_cache.ts +204 -0
- package/src/util/icon_list.ts +1 -1
- package/src/util/icon_synonyms.ts +0 -1
- package/src/util/icons.tsx +36 -11
- package/src/util/index.ts +3 -0
- package/src/util/join_collections.ts +9 -2
- package/src/util/make_properties_editable.ts +13 -5
- package/src/util/navigation_from_path.ts +33 -12
- package/src/util/navigation_utils.ts +135 -19
- package/src/util/objects.ts +74 -14
- package/src/util/parent_references_from_path.ts +3 -3
- package/src/util/permissions.ts +8 -8
- package/src/util/property_utils.tsx +17 -6
- package/src/util/references.ts +19 -8
- package/src/util/resolutions.ts +93 -24
- package/src/util/storage.ts +6 -2
- package/src/util/useStorageUploadController.tsx +74 -29
- package/dist/components/EntityCollectionTable/internal/popup_field/ElementResizeListener.d.ts +0 -5
- package/dist/components/PropertyIdCopyTooltipContent.d.ts +0 -3
- package/dist/form/PropertiesForm.d.ts +0 -8
- package/dist/form/components/FormikArrayContainer.d.ts +0 -18
- package/dist/form/field_bindings/MarkdownFieldBinding.d.ts +0 -9
- package/src/components/EntityCollectionTable/internal/popup_field/ElementResizeListener.tsx +0 -59
- package/src/components/PropertyIdCopyTooltipContent.tsx +0 -27
- package/src/components/common/useDataSourceEntityCollectionTableController.tsx +0 -236
- package/src/form/PropertiesForm.tsx +0 -81
- package/src/form/components/FormikArrayContainer.tsx +0 -44
- package/src/form/field_bindings/MarkdownFieldBinding.tsx +0 -695
- /package/src/util/{common.tsx → common.ts} +0 -0
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import React, { useRef } from "react";
|
|
2
|
+
import { Highlight, themes } from "prism-react-renderer";
|
|
3
|
+
import { useModeController } from "../hooks";
|
|
4
|
+
|
|
5
|
+
export function EntityJsonPreview({ values }: { values: object }) {
|
|
6
|
+
const code = JSON.stringify(values, null, "\t");
|
|
7
|
+
const { mode } = useModeController();
|
|
8
|
+
const preRef = useRef<HTMLPreElement>(null);
|
|
9
|
+
|
|
10
|
+
// Global keydown handler
|
|
11
|
+
// const handleGlobalKeyDown = useCallback((e: KeyboardEvent) => {
|
|
12
|
+
// // Check for Control (Windows/Linux) or Command (macOS) + "a":
|
|
13
|
+
// if ((e.ctrlKey || e.metaKey) && e.key.toLowerCase() === "a") {
|
|
14
|
+
// // If our code view is mounted, perform selection
|
|
15
|
+
// if (preRef.current) {
|
|
16
|
+
// e.preventDefault();
|
|
17
|
+
// e.stopPropagation();
|
|
18
|
+
//
|
|
19
|
+
// const selection = window.getSelection();
|
|
20
|
+
// const range = document.createRange();
|
|
21
|
+
// range.selectNodeContents(preRef.current);
|
|
22
|
+
// if (selection) {
|
|
23
|
+
// selection.removeAllRanges();
|
|
24
|
+
// selection.addRange(range);
|
|
25
|
+
// }
|
|
26
|
+
// }
|
|
27
|
+
// }
|
|
28
|
+
// }, []);
|
|
29
|
+
|
|
30
|
+
// // Attach the global keydown listener when component mounts,
|
|
31
|
+
// // and remove it when it unmounts.
|
|
32
|
+
// useEffect(() => {
|
|
33
|
+
// document.addEventListener("keydown", handleGlobalKeyDown);
|
|
34
|
+
// return () => {
|
|
35
|
+
// document.removeEventListener("keydown", handleGlobalKeyDown);
|
|
36
|
+
// };
|
|
37
|
+
// }, [handleGlobalKeyDown]);
|
|
38
|
+
|
|
39
|
+
return (
|
|
40
|
+
<Highlight
|
|
41
|
+
theme={mode === "dark" ? themes.vsDark : themes.github}
|
|
42
|
+
code={code}
|
|
43
|
+
language="json"
|
|
44
|
+
>
|
|
45
|
+
{({ style, tokens, getLineProps, getTokenProps }) => (
|
|
46
|
+
<pre
|
|
47
|
+
// Bind the ref to our pre element so we can select its contents.
|
|
48
|
+
ref={preRef}
|
|
49
|
+
style={{
|
|
50
|
+
...style,
|
|
51
|
+
backgroundColor: "inherit"
|
|
52
|
+
}}
|
|
53
|
+
className="max-w-6xl mx-auto p-8 rounded text-sm"
|
|
54
|
+
>
|
|
55
|
+
{tokens.map((line, i) => (
|
|
56
|
+
<div key={i} {...getLineProps({ line })} className="text-wrap">
|
|
57
|
+
{line.map((token, key) => (
|
|
58
|
+
<span key={key} {...getTokenProps({ token })} className="word-break" />
|
|
59
|
+
))}
|
|
60
|
+
</div>
|
|
61
|
+
))}
|
|
62
|
+
</pre>
|
|
63
|
+
)}
|
|
64
|
+
</Highlight>
|
|
65
|
+
);
|
|
66
|
+
}
|
|
@@ -7,24 +7,33 @@ import {
|
|
|
7
7
|
getEntityImagePreviewPropertyKey,
|
|
8
8
|
getEntityPreviewKeys,
|
|
9
9
|
getEntityTitlePropertyKey,
|
|
10
|
+
getPropertyInPath,
|
|
10
11
|
getValueInPath,
|
|
12
|
+
IconForView,
|
|
11
13
|
resolveCollection
|
|
12
14
|
} from "../util";
|
|
13
15
|
import { cls, defaultBorderMixin, IconButton, KeyboardTabIcon, Skeleton, Tooltip, Typography } from "@firecms/ui";
|
|
14
16
|
import { PreviewSize, PropertyPreview, SkeletonPropertyComponent } from "../preview";
|
|
15
|
-
import {
|
|
17
|
+
import {
|
|
18
|
+
useAuthController,
|
|
19
|
+
useCustomizationController,
|
|
20
|
+
useNavigationController,
|
|
21
|
+
useSideEntityController
|
|
22
|
+
} from "../hooks";
|
|
16
23
|
import { useAnalyticsController } from "../hooks/useAnalyticsController";
|
|
17
24
|
|
|
18
25
|
export type EntityPreviewProps = {
|
|
19
|
-
size
|
|
26
|
+
size?: PreviewSize,
|
|
20
27
|
actions?: React.ReactNode,
|
|
21
28
|
collection?: EntityCollection,
|
|
22
29
|
hover?: boolean;
|
|
23
|
-
|
|
24
|
-
disabled
|
|
30
|
+
previewKeys?: string[],
|
|
31
|
+
disabled?: boolean,
|
|
25
32
|
entity: Entity<any>,
|
|
26
33
|
includeId?: boolean,
|
|
34
|
+
includeTitle?: boolean,
|
|
27
35
|
includeEntityLink?: boolean,
|
|
36
|
+
includeImage?: boolean,
|
|
28
37
|
onClick?: (e: React.SyntheticEvent) => void;
|
|
29
38
|
};
|
|
30
39
|
|
|
@@ -37,14 +46,17 @@ export function EntityPreview({
|
|
|
37
46
|
disabled,
|
|
38
47
|
hover,
|
|
39
48
|
collection: collectionProp,
|
|
40
|
-
|
|
49
|
+
previewKeys,
|
|
41
50
|
onClick,
|
|
42
|
-
size,
|
|
51
|
+
size = "medium",
|
|
43
52
|
includeId = true,
|
|
53
|
+
includeTitle = true,
|
|
44
54
|
includeEntityLink = true,
|
|
45
|
-
|
|
55
|
+
includeImage = true,
|
|
56
|
+
entity,
|
|
46
57
|
}: EntityPreviewProps) {
|
|
47
58
|
|
|
59
|
+
const authController = useAuthController();
|
|
48
60
|
const analyticsController = useAnalyticsController();
|
|
49
61
|
const sideEntityController = useSideEntityController();
|
|
50
62
|
const customizationController = useCustomizationController();
|
|
@@ -61,39 +73,46 @@ export function EntityPreview({
|
|
|
61
73
|
collection,
|
|
62
74
|
path: entity.path,
|
|
63
75
|
values: entity.values,
|
|
64
|
-
|
|
76
|
+
propertyConfigs: customizationController.propertyConfigs,
|
|
77
|
+
authController
|
|
65
78
|
}), [collection]);
|
|
66
79
|
|
|
67
|
-
const listProperties = useMemo(() => getEntityPreviewKeys(resolvedCollection, customizationController.propertyConfigs,
|
|
68
|
-
[
|
|
80
|
+
const listProperties = useMemo(() => previewKeys ?? getEntityPreviewKeys(authController, resolvedCollection, customizationController.propertyConfigs, previewKeys, size === "medium" || size === "large" ? 3 : 1),
|
|
81
|
+
[previewKeys, resolvedCollection, size]);
|
|
69
82
|
|
|
70
|
-
const titleProperty = getEntityTitlePropertyKey(resolvedCollection, customizationController.propertyConfigs);
|
|
71
|
-
const imagePropertyKey = getEntityImagePreviewPropertyKey(resolvedCollection);
|
|
83
|
+
const titleProperty = includeTitle ? getEntityTitlePropertyKey(resolvedCollection, customizationController.propertyConfigs) : undefined;
|
|
84
|
+
const imagePropertyKey = includeImage ? getEntityImagePreviewPropertyKey(resolvedCollection) : undefined;
|
|
72
85
|
const imageProperty = imagePropertyKey ? resolvedCollection.properties[imagePropertyKey] : undefined;
|
|
73
|
-
|
|
86
|
+
const usedImageProperty = imageProperty && "of" in imageProperty ? imageProperty.of : imageProperty;
|
|
74
87
|
const restProperties = listProperties.filter(p => p !== titleProperty && p !== imagePropertyKey);
|
|
75
88
|
|
|
89
|
+
const imageValue = imagePropertyKey ? getValueInPath(entity.values, imagePropertyKey) : undefined;
|
|
90
|
+
const usedImageValue = imageProperty !== undefined ? ("of" in imageProperty
|
|
91
|
+
? ((imageValue ?? []).length > 0
|
|
92
|
+
? imageValue[0] : undefined)
|
|
93
|
+
: imageValue)
|
|
94
|
+
: undefined;
|
|
95
|
+
|
|
76
96
|
return <EntityPreviewContainer onClick={disabled ? undefined : onClick}
|
|
77
97
|
hover={disabled ? undefined : hover}
|
|
78
98
|
size={size}>
|
|
79
|
-
{
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
99
|
+
<div className={cls("flex w-10 h-10 ml-1 mr-2 shrink-0", size === "small" ? "my-0.5" : "m-2 self-start")}>
|
|
100
|
+
{usedImageProperty && usedImageValue && <PropertyPreview property={usedImageProperty}
|
|
101
|
+
propertyKey={imagePropertyKey as string}
|
|
102
|
+
size={"small"}
|
|
103
|
+
value={usedImageValue}/>}
|
|
104
|
+
{(!usedImageProperty || !usedImageValue) && <IconForView collectionOrView={collection}
|
|
105
|
+
color={"primary"}
|
|
106
|
+
size={size}
|
|
107
|
+
className={"m-auto p-1"}/>}
|
|
108
|
+
</div>
|
|
109
|
+
|
|
110
|
+
|
|
111
|
+
<div className={"flex flex-col grow w-full m-1 shrink min-w-0"}>
|
|
112
|
+
|
|
113
|
+
{size !== "small" && includeId && (
|
|
91
114
|
entity
|
|
92
|
-
? <div className={
|
|
93
|
-
size !== "medium"
|
|
94
|
-
? "block whitespace-nowrap overflow-hidden truncate"
|
|
95
|
-
: ""
|
|
96
|
-
}`}>
|
|
115
|
+
? <div className={"block whitespace-nowrap overflow-hidden truncate"}>
|
|
97
116
|
<Typography variant={"caption"}
|
|
98
117
|
color={"disabled"}
|
|
99
118
|
className={"font-mono"}>
|
|
@@ -103,38 +122,39 @@ export function EntityPreview({
|
|
|
103
122
|
: <Skeleton/>)}
|
|
104
123
|
|
|
105
124
|
{titleProperty && (
|
|
106
|
-
<div className={"my-0.5 text-sm font-medium"}>
|
|
125
|
+
<div className={"truncate my-0.5 text-sm font-medium"}>
|
|
107
126
|
{
|
|
108
127
|
entity
|
|
109
128
|
? <PropertyPreview
|
|
110
129
|
propertyKey={titleProperty as string}
|
|
111
130
|
value={getValueInPath(entity.values, titleProperty)}
|
|
112
131
|
property={resolvedCollection.properties[titleProperty as string] as ResolvedProperty}
|
|
113
|
-
size={"
|
|
132
|
+
size={"large"}/>
|
|
114
133
|
: <SkeletonPropertyComponent
|
|
115
134
|
property={resolvedCollection.properties[titleProperty as string] as ResolvedProperty}
|
|
116
|
-
size={"
|
|
135
|
+
size={"large"}/>
|
|
117
136
|
}
|
|
118
137
|
</div>
|
|
119
138
|
)}
|
|
120
139
|
|
|
121
140
|
{restProperties && restProperties.map((key) => {
|
|
122
|
-
const childProperty = resolvedCollection.properties
|
|
141
|
+
const childProperty = getPropertyInPath(resolvedCollection.properties, key);
|
|
123
142
|
if (!childProperty) return null;
|
|
124
143
|
|
|
144
|
+
const valueInPath = getValueInPath(entity.values, key);
|
|
125
145
|
return (
|
|
126
146
|
<div key={"ref_prev_" + key}
|
|
127
|
-
className={restProperties.length > 1 ? "my-0.5" : "my-0"}>
|
|
147
|
+
className={cls("truncate", restProperties.length > 1 ? "my-0.5" : "my-0")}>
|
|
128
148
|
{
|
|
129
149
|
entity
|
|
130
150
|
? <PropertyPreview
|
|
131
151
|
propertyKey={key as string}
|
|
132
|
-
value={
|
|
152
|
+
value={valueInPath}
|
|
133
153
|
property={childProperty as ResolvedProperty}
|
|
134
|
-
size={"
|
|
154
|
+
size={"small"}/>
|
|
135
155
|
: <SkeletonPropertyComponent
|
|
136
156
|
property={childProperty as ResolvedProperty}
|
|
137
|
-
size={"
|
|
157
|
+
size={"small"}/>
|
|
138
158
|
}
|
|
139
159
|
</div>
|
|
140
160
|
);
|
|
@@ -143,11 +163,11 @@ export function EntityPreview({
|
|
|
143
163
|
</div>
|
|
144
164
|
|
|
145
165
|
{entity && includeEntityLink &&
|
|
146
|
-
<Tooltip title={`See details for ${entity.id}`}
|
|
147
|
-
className={size !== "tiny" ? "self-start" : ""}>
|
|
166
|
+
<Tooltip title={`See details for ${entity.id}`} className={"shrink-0"}>
|
|
148
167
|
<IconButton
|
|
149
168
|
color={"inherit"}
|
|
150
169
|
size={"small"}
|
|
170
|
+
className={size !== "small" ? "self-start" : ""}
|
|
151
171
|
onClick={(e) => {
|
|
152
172
|
e.stopPropagation();
|
|
153
173
|
analyticsController.onAnalyticsEvent?.("entity_click_from_reference", {
|
|
@@ -174,22 +194,22 @@ export type EntityPreviewContainerProps = {
|
|
|
174
194
|
children: React.ReactNode;
|
|
175
195
|
hover?: boolean;
|
|
176
196
|
fullwidth?: boolean;
|
|
177
|
-
size
|
|
197
|
+
size?: PreviewSize;
|
|
178
198
|
className?: string;
|
|
179
199
|
style?: React.CSSProperties;
|
|
180
200
|
onClick?: (e: React.SyntheticEvent) => void;
|
|
181
201
|
};
|
|
182
202
|
|
|
183
|
-
const
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
203
|
+
export const EntityPreviewContainer = React.forwardRef<HTMLDivElement, EntityPreviewContainerProps>(({
|
|
204
|
+
children,
|
|
205
|
+
hover,
|
|
206
|
+
onClick,
|
|
207
|
+
size = "medium",
|
|
208
|
+
style,
|
|
209
|
+
className,
|
|
210
|
+
fullwidth = true,
|
|
211
|
+
...props
|
|
212
|
+
}, ref) => {
|
|
193
213
|
return <div
|
|
194
214
|
ref={ref}
|
|
195
215
|
style={{
|
|
@@ -198,12 +218,12 @@ const EntityPreviewContainerInner = React.forwardRef<HTMLDivElement, EntityPrevi
|
|
|
198
218
|
tabindex: 0
|
|
199
219
|
}}
|
|
200
220
|
className={cls(
|
|
201
|
-
"bg-white dark:bg-
|
|
221
|
+
"bg-white dark:bg-surface-900",
|
|
202
222
|
"min-h-[42px]",
|
|
203
223
|
fullwidth ? "w-full" : "",
|
|
204
224
|
"items-center",
|
|
205
|
-
hover ? "hover:bg-
|
|
206
|
-
size === "
|
|
225
|
+
hover ? "hover:bg-surface-accent-50 dark:hover:bg-surface-800 group-hover:bg-surface-accent-50 dark:group-hover:bg-surface-800" : "",
|
|
226
|
+
size === "small" ? "p-1" : "px-2 py-1",
|
|
207
227
|
"flex border rounded-lg",
|
|
208
228
|
onClick ? "cursor-pointer" : "",
|
|
209
229
|
defaultBorderMixin,
|
|
@@ -219,6 +239,4 @@ const EntityPreviewContainerInner = React.forwardRef<HTMLDivElement, EntityPrevi
|
|
|
219
239
|
</div>;
|
|
220
240
|
});
|
|
221
241
|
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
export const EntityPreviewContainer = React.memo(EntityPreviewContainerInner) as React.FC<EntityPreviewContainerProps>;
|
|
242
|
+
EntityPreviewContainer.displayName = "EntityPreviewContainer";
|
|
@@ -5,6 +5,7 @@ import { resolveCollection } from "../util";
|
|
|
5
5
|
import { cls, defaultBorderMixin, IconButton, OpenInNewIcon } from "@firecms/ui";
|
|
6
6
|
import { CustomizationController } from "../types/customization_controller";
|
|
7
7
|
import { useCustomizationController } from "../hooks/useCustomizationController";
|
|
8
|
+
import { useAuthController } from "../hooks";
|
|
8
9
|
|
|
9
10
|
/**
|
|
10
11
|
* @group Components
|
|
@@ -24,13 +25,15 @@ export function EntityView<M extends Record<string, any>>(
|
|
|
24
25
|
className
|
|
25
26
|
}: EntityViewProps<M>) {
|
|
26
27
|
|
|
28
|
+
const authController = useAuthController();
|
|
27
29
|
const customizationController: CustomizationController = useCustomizationController();
|
|
28
30
|
const resolvedCollection: ResolvedEntityCollection<M> = useMemo(() => resolveCollection<M>({
|
|
29
31
|
collection,
|
|
30
32
|
path,
|
|
31
33
|
entityId: entity.id,
|
|
32
34
|
values: entity.values,
|
|
33
|
-
|
|
35
|
+
propertyConfigs: customizationController.propertyConfigs,
|
|
36
|
+
authController
|
|
34
37
|
}), [collection, path, entity, customizationController.propertyConfigs]);
|
|
35
38
|
|
|
36
39
|
const properties: ResolvedProperties = resolvedCollection.properties;
|
|
@@ -40,10 +43,10 @@ export function EntityView<M extends Record<string, any>>(
|
|
|
40
43
|
<div className={"w-full mb-4"}>
|
|
41
44
|
<div className={cls(defaultBorderMixin, "flex justify-between py-2 border-b last:border-b-0")}>
|
|
42
45
|
<div className="flex items-center w-1/4">
|
|
43
|
-
<span className="pl-2 text-sm text-
|
|
46
|
+
<span className="pl-2 text-sm text-surface-600">Id</span>
|
|
44
47
|
</div>
|
|
45
48
|
<div
|
|
46
|
-
className="flex-grow p-2 ml-2 w-3/4 text-
|
|
49
|
+
className="flex-grow p-2 ml-2 w-3/4 text-surface-900 dark:text-white min-h-[56px] flex items-center">
|
|
47
50
|
<span className="flex-grow mr-2">{entity.id}</span>
|
|
48
51
|
{customizationController?.entityLinkBuilder &&
|
|
49
52
|
<a href={customizationController.entityLinkBuilder({ entity })}
|
|
@@ -64,10 +67,10 @@ export function EntityView<M extends Record<string, any>>(
|
|
|
64
67
|
key={`reference_previews_${key}`}
|
|
65
68
|
className={cls(defaultBorderMixin, "flex justify-between py-2 border-b last:border-b-0")}>
|
|
66
69
|
<div className="flex items-center w-1/4">
|
|
67
|
-
<span className="pl-2 text-sm text-
|
|
70
|
+
<span className="pl-2 text-sm text-surface-600">{property.name}</span>
|
|
68
71
|
</div>
|
|
69
72
|
<div
|
|
70
|
-
className="flex-grow p-2 ml-2 w-3/4 text-
|
|
73
|
+
className="flex-grow p-2 ml-2 w-3/4 text-surface-900 dark:text-white min-h-[56px] flex items-center">
|
|
71
74
|
<PropertyPreview
|
|
72
75
|
propertyKey={key}
|
|
73
76
|
value={value}
|
|
@@ -26,13 +26,13 @@ export function ErrorView({
|
|
|
26
26
|
tooltip
|
|
27
27
|
}: ErrorViewProps): React.ReactElement {
|
|
28
28
|
const component = error instanceof Error ? error.message : error;
|
|
29
|
-
console.
|
|
29
|
+
console.warn("ErrorView", JSON.stringify(error))
|
|
30
30
|
|
|
31
31
|
const body = (
|
|
32
32
|
<div
|
|
33
33
|
className="flex items-center m-2">
|
|
34
|
-
<ErrorIcon size={"small"} color={"error"}/>
|
|
35
|
-
<div className="pl-
|
|
34
|
+
<ErrorIcon className={"mx-2"} size={"small"} color={"error"}/>
|
|
35
|
+
<div className="pl-4">
|
|
36
36
|
{title && <Typography
|
|
37
37
|
variant={"body2"}
|
|
38
38
|
className="font-medium">{title}</Typography>}
|
|
@@ -14,59 +14,15 @@ export function FireCMSLogo({
|
|
|
14
14
|
return (
|
|
15
15
|
<svg
|
|
16
16
|
width={width ?? "100%"} height={height ?? "100%"}
|
|
17
|
-
|
|
17
|
+
version="1.1"
|
|
18
18
|
style={style}
|
|
19
19
|
className={className}
|
|
20
|
-
xmlns="http://www.w3.org/2000/svg">
|
|
21
|
-
<
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
id="radialGradient-1">
|
|
27
|
-
<stop stopColor="#FF5B79" offset="0%"/>
|
|
28
|
-
<stop stopColor="#FA5574" offset="28.0930803%"/>
|
|
29
|
-
<stop stopColor="#EC4C51" offset="44.7242531%"/>
|
|
30
|
-
<stop stopColor="#9543C1" offset="71.4578165%"/>
|
|
31
|
-
<stop stopColor="#3857B3" offset="100%"/>
|
|
32
|
-
</radialGradient>
|
|
33
|
-
<radialGradient cx="53.6205516%" cy="47.2473036%"
|
|
34
|
-
fx="53.6205516%"
|
|
35
|
-
fy="47.2473036%" r="50.8229649%"
|
|
36
|
-
gradientTransform="translate(0.536206,0.472473),rotate(90.000000),scale(1.000000,1.206631),translate(-0.536206,-0.472473)"
|
|
37
|
-
id="radialGradient-2">
|
|
38
|
-
<stop stopColor="#68294F" stopOpacity="0" offset="0%"/>
|
|
39
|
-
<stop stopColor="#5E2548" stopOpacity="0.04641108"
|
|
40
|
-
offset="75.3503173%"/>
|
|
41
|
-
<stop stopColor="#0D060B" stopOpacity="0.437431709"
|
|
42
|
-
offset="100%"/>
|
|
43
|
-
</radialGradient>
|
|
44
|
-
<radialGradient cx="53.8605015%" cy="48.1990423%"
|
|
45
|
-
fx="53.8605015%"
|
|
46
|
-
fy="48.1990423%" r="59.9151549%"
|
|
47
|
-
gradientTransform="translate(0.538605,0.481990),rotate(180.000000),scale(1.000000,0.925027),translate(-0.538605,-0.481990)"
|
|
48
|
-
id="radialGradient-3">
|
|
49
|
-
<stop stopColor="#68294F" stopOpacity="0" offset="0%"/>
|
|
50
|
-
<stop stopColor="#5E2548" stopOpacity="0.04641108"
|
|
51
|
-
offset="84.0867343%"/>
|
|
52
|
-
<stop stopColor="#FF0000" stopOpacity="0.567324765"
|
|
53
|
-
offset="100%"/>
|
|
54
|
-
</radialGradient>
|
|
55
|
-
</defs>
|
|
56
|
-
<g id="Page-1" stroke="none" strokeWidth="1" fill="none"
|
|
57
|
-
fillRule="evenodd">
|
|
58
|
-
<g id="firecms_logo">
|
|
59
|
-
<circle fill="url(#radialGradient-1)" cx="299.5"
|
|
60
|
-
cy="299.5"
|
|
61
|
-
r="299.5"/>
|
|
62
|
-
<circle fill="url(#radialGradient-2)" cx="299.5"
|
|
63
|
-
cy="299.5"
|
|
64
|
-
r="299.5"/>
|
|
65
|
-
<circle fill="url(#radialGradient-3)" cx="299.5"
|
|
66
|
-
cy="299.5"
|
|
67
|
-
r="299.5"/>
|
|
68
|
-
</g>
|
|
69
|
-
</g>
|
|
20
|
+
viewBox="0 0 583 583" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
21
|
+
<circle cx="291.5" cy="291.5" r="291.5" fill="#0070F4"/>
|
|
22
|
+
<ellipse cx="292" cy="291.5" rx="173" ry="173.5" fill="#FF3773"/>
|
|
23
|
+
<path
|
|
24
|
+
d="M465 291.5C465 268.847 460.525 246.416 451.831 225.487C443.137 204.558 430.394 185.542 414.329 169.524C398.265 153.506 379.194 140.8 358.204 132.131C337.215 123.462 314.719 119 292 119C269.281 119 246.785 123.462 225.796 132.131C204.806 140.8 185.735 153.506 169.671 169.524C153.606 185.542 140.863 204.558 132.169 225.487C123.475 246.416 119 268.847 119 291.5L292 291.5H465Z"
|
|
25
|
+
fill="#FFA400"/>
|
|
70
26
|
</svg>
|
|
71
27
|
);
|
|
72
28
|
|