@plone/volto 18.0.0-alpha.12 → 18.0.0-alpha.14
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/CHANGELOG.md +33 -0
- package/locales/ca/LC_MESSAGES/volto.po +6 -0
- package/locales/ca.json +1 -1
- package/locales/de/LC_MESSAGES/volto.po +6 -0
- package/locales/de.json +1 -1
- package/locales/en/LC_MESSAGES/volto.po +6 -0
- package/locales/en.json +1 -1
- package/locales/es/LC_MESSAGES/volto.po +6 -0
- package/locales/es.json +1 -1
- package/locales/eu/LC_MESSAGES/volto.po +6 -0
- package/locales/eu.json +1 -1
- package/locales/fi/LC_MESSAGES/volto.po +6 -0
- package/locales/fi.json +1 -1
- package/locales/fr/LC_MESSAGES/volto.po +6 -0
- package/locales/fr.json +1 -1
- package/locales/it/LC_MESSAGES/volto.po +6 -0
- package/locales/it.json +1 -1
- package/locales/ja/LC_MESSAGES/volto.po +6 -0
- package/locales/ja.json +1 -1
- package/locales/nl/LC_MESSAGES/volto.po +6 -0
- package/locales/nl.json +1 -1
- package/locales/pt/LC_MESSAGES/volto.po +6 -0
- package/locales/pt.json +1 -1
- package/locales/pt_BR/LC_MESSAGES/volto.po +6 -0
- package/locales/pt_BR.json +1 -1
- package/locales/ro/LC_MESSAGES/volto.po +6 -0
- package/locales/ro.json +1 -1
- package/locales/volto.pot +7 -1
- package/locales/zh_CN/LC_MESSAGES/volto.po +6 -0
- package/locales/zh_CN.json +1 -1
- package/package.json +8 -7
- package/src/components/manage/Form/Form.jsx +139 -121
- package/src/components/manage/Form/Form.test.jsx +7 -0
- package/src/components/manage/Preferences/ChangePassword.test.jsx +7 -0
- package/src/components/manage/Preferences/PersonalInformation.test.jsx +14 -0
- package/src/components/manage/Preferences/PersonalPreferences.test.jsx +7 -0
- package/src/components/manage/Toolbar/Toolbar.jsx +35 -2
- package/src/components/manage/Widgets/ArrayWidget.jsx +3 -1
- package/src/components/theme/Comments/Comments.test.jsx +7 -0
- package/src/components/theme/Logo/Logo.Multilingual.test.jsx +3 -1
- package/src/components/theme/Logo/Logo.jsx +18 -12
- package/src/components/theme/Logo/Logo.test.jsx +4 -1
- package/src/components/theme/PasswordReset/PasswordReset.test.jsx +7 -0
- package/src/components/theme/PasswordReset/RequestPasswordReset.test.jsx +7 -0
- package/src/components/theme/Register/Register.test.jsx +7 -0
- package/src/components/theme/SlotRenderer/SlotRenderer.test.jsx +56 -0
- package/src/components/theme/SlotRenderer/SlotRenderer.tsx +54 -0
- package/src/components/theme/View/View.jsx +3 -0
- package/src/components/theme/View/View.test.jsx +3 -0
- package/src/config/index.js +3 -1
- package/src/helpers/Blocks/Blocks.js +5 -2
- package/src/helpers/Slots/index.tsx +12 -0
- package/src/helpers/index.js +1 -0
- package/test-setup-config.js +1 -0
- package/theme/themes/pastanaga/extras/toolbar.less +4 -4
- package/tsconfig.declarations.json +1 -0
- package/types/components/manage/Actions/Actions.d.ts +1 -1
- package/types/components/manage/AnchorPlugin/components/Link/index.d.ts +1 -1
- package/types/components/manage/BlockChooser/BlockChooserButton.d.ts +2 -2
- package/types/components/manage/BlockChooser/BlockChooserSearch.d.ts +1 -1
- package/types/components/manage/Blocks/Block/BlocksForm.d.ts +1 -1
- package/types/components/manage/Blocks/Block/DefaultEdit.d.ts +1 -1
- package/types/components/manage/Blocks/Block/DefaultView.d.ts +1 -1
- package/types/components/manage/Blocks/Block/Style.d.ts +1 -1
- package/types/components/manage/Blocks/Container/Data.d.ts +1 -1
- package/types/components/manage/Blocks/Container/Edit.d.ts +1 -1
- package/types/components/manage/Blocks/Container/EditBlockWrapper.d.ts +1 -1
- package/types/components/manage/Blocks/Container/NewBlockAddButton.d.ts +1 -1
- package/types/components/manage/Blocks/Container/SimpleContainerToolbar.d.ts +1 -1
- package/types/components/manage/Blocks/Description/Edit.d.ts +1 -1
- package/types/components/manage/Blocks/Description/View.d.ts +1 -1
- package/types/components/manage/Blocks/Grid/Edit.d.ts +1 -1
- package/types/components/manage/Blocks/Grid/View.d.ts +1 -1
- package/types/components/manage/Blocks/HTML/View.d.ts +1 -1
- package/types/components/manage/Blocks/HeroImageLeft/Data.d.ts +1 -1
- package/types/components/manage/Blocks/HeroImageLeft/View.d.ts +1 -1
- package/types/components/manage/Blocks/Image/ImageSidebar.d.ts +1 -1
- package/types/components/manage/Blocks/Image/View.d.ts +2 -2
- package/types/components/manage/Blocks/Image/schema.d.ts +1 -1
- package/types/components/manage/Blocks/LeadImage/View.d.ts +1 -1
- package/types/components/manage/Blocks/Listing/DefaultNoResultsComponent.d.ts +1 -1
- package/types/components/manage/Blocks/Listing/DefaultTemplate.d.ts +1 -1
- package/types/components/manage/Blocks/Listing/Edit.d.ts +1 -1
- package/types/components/manage/Blocks/Listing/GalleryNoResultsComponent.d.ts +1 -1
- package/types/components/manage/Blocks/Listing/ImageGallery.d.ts +1 -1
- package/types/components/manage/Blocks/Listing/ListingData.d.ts +1 -1
- package/types/components/manage/Blocks/Listing/SummaryTemplate.d.ts +1 -1
- package/types/components/manage/Blocks/Listing/View.d.ts +1 -1
- package/types/components/manage/Blocks/Maps/Edit.d.ts +1 -1
- package/types/components/manage/Blocks/Maps/MapsSidebar.d.ts +1 -1
- package/types/components/manage/Blocks/Search/SearchBlockEdit.d.ts +1 -1
- package/types/components/manage/Blocks/Search/SearchBlockView.d.ts +2 -2
- package/types/components/manage/Blocks/Search/components/CheckboxFacet.d.ts +1 -1
- package/types/components/manage/Blocks/Search/components/DateRangeFacetFilterListEntry.d.ts +1 -1
- package/types/components/manage/Blocks/Search/components/Facets.d.ts +1 -1
- package/types/components/manage/Blocks/Search/components/FilterList.d.ts +1 -1
- package/types/components/manage/Blocks/Search/components/SearchDetails.d.ts +1 -1
- package/types/components/manage/Blocks/Search/components/SearchInput.d.ts +1 -1
- package/types/components/manage/Blocks/Search/components/SelectFacetFilterListEntry.d.ts +1 -1
- package/types/components/manage/Blocks/Search/components/ToggleFacet.d.ts +1 -1
- package/types/components/manage/Blocks/Search/components/ToggleFacetFilterListEntry.d.ts +1 -1
- package/types/components/manage/Blocks/Search/hocs/withQueryString.d.ts +1 -1
- package/types/components/manage/Blocks/Search/hocs/withSearch.d.ts +1 -1
- package/types/components/manage/Blocks/Search/layout/LeftColumnFacets.d.ts +1 -1
- package/types/components/manage/Blocks/Search/layout/RightColumnFacets.d.ts +1 -1
- package/types/components/manage/Blocks/Search/layout/TopSideFacets.d.ts +1 -1
- package/types/components/manage/Blocks/Search/utils.d.ts +2 -2
- package/types/components/manage/Blocks/Search/widgets/SelectMetadataField.d.ts +1 -1
- package/types/components/manage/Blocks/Table/Cell.d.ts +1 -1
- package/types/components/manage/Blocks/Table/View.d.ts +1 -1
- package/types/components/manage/Blocks/Teaser/Body.d.ts +1 -1
- package/types/components/manage/Blocks/Teaser/Data.d.ts +1 -1
- package/types/components/manage/Blocks/Teaser/DefaultBody.d.ts +1 -1
- package/types/components/manage/Blocks/Teaser/Edit.d.ts +1 -1
- package/types/components/manage/Blocks/Teaser/View.d.ts +1 -1
- package/types/components/manage/Blocks/Text/Edit.d.ts +1 -1
- package/types/components/manage/Blocks/Title/Edit.d.ts +1 -1
- package/types/components/manage/Blocks/Title/View.d.ts +1 -1
- package/types/components/manage/Blocks/ToC/Edit.d.ts +1 -1
- package/types/components/manage/Blocks/Video/Body.d.ts +1 -1
- package/types/components/manage/Blocks/Video/VideoSidebar.d.ts +1 -1
- package/types/components/manage/Blocks/Video/View.d.ts +1 -1
- package/types/components/manage/Contents/ContentsBreadcrumbs.d.ts +1 -1
- package/types/components/manage/Contents/ContentsBreadcrumbsHomeItem.d.ts +1 -1
- package/types/components/manage/Contents/ContentsBreadcrumbsRootItem.d.ts +1 -1
- package/types/components/manage/Contents/ContentsPropertiesModal.d.ts +1 -1
- package/types/components/manage/Contents/ContentsRenameModal.d.ts +1 -1
- package/types/components/manage/Contents/ContentsRenameModal.stories.d.ts +1 -1
- package/types/components/manage/Contents/ContentsTagsModal.d.ts +1 -1
- package/types/components/manage/Contents/ContentsTagsModal.stories.d.ts +1 -1
- package/types/components/manage/Contents/ContentsWorkflowModal.d.ts +1 -1
- package/types/components/manage/Contents/circle.d.ts +1 -1
- package/types/components/manage/Controlpanels/Relations/BrokenRelations.d.ts +1 -1
- package/types/components/manage/Controlpanels/Relations/Relations.d.ts +1 -1
- package/types/components/manage/Controlpanels/Relations/RelationsListing.d.ts +1 -1
- package/types/components/manage/Controlpanels/Relations/RelationsMatrix.d.ts +3 -5
- package/types/components/manage/Controlpanels/Users/UserGroupMembershipControlPanel.d.ts +1 -1
- package/types/components/manage/Controlpanels/Users/UserGroupMembershipListing.d.ts +1 -1
- package/types/components/manage/Controlpanels/Users/UserGroupMembershipMatrix.d.ts +1 -1
- package/types/components/manage/Controlpanels/VersionOverview.d.ts +1 -1
- package/types/components/manage/Delete/Delete.d.ts +1 -1
- package/types/components/manage/Form/BlockDataForm.d.ts +1 -1
- package/types/components/manage/Form/BlocksToolbar.d.ts +1 -1
- package/types/components/manage/Form/UndoToolbar.d.ts +1 -1
- package/types/components/manage/LinkDetectionPlugin/link-detection-plugin.d.ts +1 -1
- package/types/components/manage/LinkMore/LinkMore.d.ts +1 -1
- package/types/components/manage/LinksToItem/LinksToItem.d.ts +1 -1
- package/types/components/manage/Messages/Messages.d.ts +1 -1
- package/types/components/manage/Multilingual/CreateTranslation.d.ts +1 -1
- package/types/components/manage/Multilingual/ManageTranslations.d.ts +3 -5
- package/types/components/manage/Multilingual/TranslationObject.d.ts +1 -1
- package/types/components/manage/Pluggable/Pluggable.stories.d.ts +4 -4
- package/types/components/manage/Pluggable/index.d.ts +21 -3
- package/types/components/manage/Sidebar/AlignBlock.d.ts +1 -1
- package/types/components/manage/Sidebar/ObjectBrowser.d.ts +3 -5
- package/types/components/manage/Sidebar/ObjectBrowserNav.d.ts +1 -1
- package/types/components/manage/Sidebar/SidebarPopup.d.ts +1 -1
- package/types/components/manage/Sidebar/SidebarPortal.d.ts +2 -1
- package/types/components/manage/TemplateChooser/TemplateChooser.d.ts +1 -1
- package/types/components/manage/TextLineEdit/TextLineEdit.d.ts +1 -1
- package/types/components/manage/TextLineEdit/TextLineEdit.stories.d.ts +1 -1
- package/types/components/manage/Toast/Toast.d.ts +1 -1
- package/types/components/manage/Toolbar/PersonalTools.d.ts +1 -1
- package/types/components/manage/Toolbar/StandardWrapper.d.ts +1 -1
- package/types/components/manage/Toolbar/Stats.d.ts +1 -1
- package/types/components/manage/UniversalLink/UniversalLink.d.ts +1 -1
- package/types/components/manage/Widgets/AlignWidget.d.ts +1 -1
- package/types/components/manage/Widgets/AlignWidget.stories.d.ts +1 -1
- package/types/components/manage/Widgets/ArrayWidget.stories.d.ts +1 -1
- package/types/components/manage/Widgets/ButtonsWidget.d.ts +1 -1
- package/types/components/manage/Widgets/ButtonsWidget.stories.d.ts +1 -1
- package/types/components/manage/Widgets/CheckboxWidget.stories.d.ts +1 -1
- package/types/components/manage/Widgets/ColorPickerWidget.d.ts +1 -2
- package/types/components/manage/Widgets/DatetimeWidget.d.ts +1 -1
- package/types/components/manage/Widgets/DatetimeWidget.stories.d.ts +1 -1
- package/types/components/manage/Widgets/EmailWidget.d.ts +1 -1
- package/types/components/manage/Widgets/EmailWidget.stories.d.ts +1 -1
- package/types/components/manage/Widgets/FileWidget.stories.d.ts +1 -1
- package/types/components/manage/Widgets/FormFieldWrapper.stories.d.ts +1 -1
- package/types/components/manage/Widgets/IdWidget.stories.d.ts +1 -1
- package/types/components/manage/Widgets/ImageSizeWidget.stories.d.ts +1 -1
- package/types/components/manage/Widgets/InternalUrlWidget.d.ts +4 -6
- package/types/components/manage/Widgets/InternalUrlWidget.stories.d.ts +1 -1
- package/types/components/manage/Widgets/NumberWidget.stories.d.ts +1 -1
- package/types/components/manage/Widgets/ObjectBrowserWidget.d.ts +1 -1
- package/types/components/manage/Widgets/ObjectBrowserWidget.stories.d.ts +7 -7
- package/types/components/manage/Widgets/ObjectListWidget.d.ts +1 -1
- package/types/components/manage/Widgets/ObjectListWidget.stories.d.ts +2 -2
- package/types/components/manage/Widgets/ObjectWidget.d.ts +1 -1
- package/types/components/manage/Widgets/ObjectWidget.stories.d.ts +1 -1
- package/types/components/manage/Widgets/PasswordWidget.stories.d.ts +1 -1
- package/types/components/manage/Widgets/QueryWidget.stories.d.ts +1 -1
- package/types/components/manage/Widgets/QuerystringWidget.d.ts +1 -1
- package/types/components/manage/Widgets/RecurrenceWidget/ByMonthDayField.d.ts +16 -2
- package/types/components/manage/Widgets/RecurrenceWidget/ByMonthField.d.ts +20 -2
- package/types/components/manage/Widgets/RecurrenceWidget/ByYearField.d.ts +22 -2
- package/types/components/manage/Widgets/RecurrenceWidget/EndField.d.ts +16 -2
- package/types/components/manage/Widgets/SelectAutocompleteWidget.stories.d.ts +1 -1
- package/types/components/manage/Widgets/SelectStyling.d.ts +1 -1
- package/types/components/manage/Widgets/SelectWidget.stories.d.ts +1 -1
- package/types/components/manage/Widgets/TextWidget.stories.d.ts +1 -1
- package/types/components/manage/Widgets/TextareaWidget.stories.d.ts +1 -1
- package/types/components/manage/Widgets/TokenWidget.stories.d.ts +1 -1
- package/types/components/manage/Widgets/UrlWidget.d.ts +4 -6
- package/types/components/manage/Widgets/UrlWidget.stories.d.ts +1 -1
- package/types/components/manage/Widgets/VocabularyTermsWidget.d.ts +1 -1
- package/types/components/manage/Widgets/VocabularyTermsWidget.stories.d.ts +1 -1
- package/types/components/manage/Widgets/WysiwygWidget.d.ts +1 -1
- package/types/components/manage/Widgets/WysiwygWidget.stories.d.ts +1 -1
- package/types/components/manage/Widgets/story.d.ts +1 -1
- package/types/components/theme/Anontools/Anontools.d.ts +1 -1
- package/types/components/theme/AppExtras/AppExtras.d.ts +1 -1
- package/types/components/theme/Avatar/Avatar.d.ts +1 -1
- package/types/components/theme/Breadcrumbs/Breadcrumbs.d.ts +1 -1
- package/types/components/theme/Comments/Comment.stories.d.ts +1 -1
- package/types/components/theme/Comments/CommentEditModal.d.ts +1 -1
- package/types/components/theme/Comments/CommentEditModal.stories.d.ts +1 -1
- package/types/components/theme/Component/Component.d.ts +1 -1
- package/types/components/theme/ConnectionRefused/ConnectionRefused.d.ts +1 -1
- package/types/components/theme/ContactForm/ContactForm.d.ts +1 -1
- package/types/components/theme/ContactForm/ContactForm.stories.d.ts +1 -1
- package/types/components/theme/ContentMetadataTags/ContentMetadataTags.d.ts +1 -1
- package/types/components/theme/Error/ErrorBoundary.d.ts +1 -0
- package/types/components/theme/Error/ServerError.d.ts +1 -1
- package/types/components/theme/EventDetails/EventDetails.d.ts +1 -1
- package/types/components/theme/EventDetails/EventDetails.stories.d.ts +1 -1
- package/types/components/theme/Forbidden/Forbidden.d.ts +1 -1
- package/types/components/theme/FormattedDate/FormattedDate.d.ts +1 -1
- package/types/components/theme/FormattedDate/FormattedDate.stories.d.ts +1 -1
- package/types/components/theme/FormattedDate/FormattedRelativeDate.d.ts +1 -1
- package/types/components/theme/FormattedDate/FormattedRelativeDate.stories.d.ts +1 -1
- package/types/components/theme/Header/Header.d.ts +1 -1
- package/types/components/theme/Header/Header.stories.d.ts +1 -1
- package/types/components/theme/Image/Image.d.ts +1 -1
- package/types/components/theme/LanguageSelector/LanguageSelector.d.ts +1 -1
- package/types/components/theme/Login/Login.d.ts +1 -1
- package/types/components/theme/Login/Login.stories.d.ts +1 -1
- package/types/components/theme/Logo/Logo.stories.d.ts +1 -1
- package/types/components/theme/Logout/Logout.d.ts +1 -1
- package/types/components/theme/MultilingualRedirector/MultilingualRedirector.d.ts +1 -1
- package/types/components/theme/Navigation/ContextNavigation.d.ts +1 -1
- package/types/components/theme/Navigation/ContextNavigation.stories.d.ts +2 -2
- package/types/components/theme/Navigation/NavItem.d.ts +1 -1
- package/types/components/theme/Navigation/NavItems.d.ts +1 -1
- package/types/components/theme/Navigation/Navigation.d.ts +1 -1
- package/types/components/theme/Navigation/withContentNavigation.d.ts +1 -1
- package/types/components/theme/NotFound/NotFound.d.ts +1 -1
- package/types/components/theme/OutdatedBrowser/OutdatedBrowser.d.ts +1 -1
- package/types/components/theme/PasswordReset/RequestPasswordReset.d.ts +1 -1
- package/types/components/theme/Popup/Popup.d.ts +1 -1
- package/types/components/theme/PreviewImage/PreviewImage.d.ts +1 -1
- package/types/components/theme/Search/SearchTags.d.ts +1 -1
- package/types/components/theme/SearchWidget/SearchWidget.d.ts +1 -1
- package/types/components/theme/SearchWidget/SearchWidget.stories.d.ts +1 -1
- package/types/components/theme/SkipLinks/SkipLinks.d.ts +1 -1
- package/types/components/theme/SlotRenderer/SlotRenderer.d.ts +7 -0
- package/types/components/theme/SlotRenderer/SlotRenderer.test.d.ts +1 -0
- package/types/components/theme/TsTest/TsTest.d.ts +1 -2
- package/types/components/theme/Unauthorized/Unauthorized.d.ts +1 -1
- package/types/components/theme/View/AlbumView.d.ts +1 -1
- package/types/components/theme/View/EventDatesInfo.d.ts +1 -1
- package/types/components/theme/View/LinkView.d.ts +1 -1
- package/types/components/theme/View/RenderBlocks.d.ts +1 -1
- package/types/components/theme/Widgets/ArrayWidget.d.ts +1 -1
- package/types/components/theme/Widgets/BooleanWidget.d.ts +14 -2
- package/types/components/theme/Widgets/DateWidget.d.ts +1 -1
- package/types/components/theme/Widgets/DatetimeWidget.d.ts +1 -1
- package/types/components/theme/Widgets/DescriptionWidget.d.ts +1 -1
- package/types/components/theme/Widgets/EmailWidget.d.ts +1 -1
- package/types/components/theme/Widgets/FileWidget.d.ts +1 -1
- package/types/components/theme/Widgets/ImageWidget.d.ts +1 -1
- package/types/components/theme/Widgets/PasswordWidget.d.ts +1 -1
- package/types/components/theme/Widgets/RelationWidget.d.ts +1 -1
- package/types/components/theme/Widgets/RelationsWidget.d.ts +1 -1
- package/types/components/theme/Widgets/RichTextWidget.d.ts +1 -1
- package/types/components/theme/Widgets/SelectWidget.d.ts +1 -1
- package/types/components/theme/Widgets/TextWidget.d.ts +1 -1
- package/types/components/theme/Widgets/TitleWidget.d.ts +1 -1
- package/types/components/theme/Widgets/TokenWidget.d.ts +1 -1
- package/types/components/theme/Widgets/UrlWidget.d.ts +1 -1
- package/types/config/Blocks.d.ts +1 -1
- package/types/config/RichTextEditor/ToHTML.d.ts +10 -10
- package/types/config/Views.d.ts +5 -5
- package/types/helpers/AsyncConnect/AsyncConnect.d.ts +2 -2
- package/types/helpers/Extensions/withBlockExtensions.d.ts +1 -1
- package/types/helpers/Extensions/withBlockSchemaEnhancer.d.ts +3 -3
- package/types/helpers/Helmet/Helmet.d.ts +6 -10
- package/types/helpers/LanguageMap/LanguageMap.d.ts +878 -1
- package/types/helpers/Slots/index.d.ts +7 -0
- package/types/helpers/Utils/Date.d.ts +2 -2
- package/types/helpers/Utils/UseDetectClickOutside.stories.d.ts +2 -2
- package/types/helpers/Utils/Utils.d.ts +1 -1
- package/types/helpers/index.d.ts +1 -0
- package/types/reducers/blocksClipboard/blocksClipboard.d.ts +1 -1
- package/types/routes.d.ts +3 -3
- package/types/storybook.d.ts +3 -3
|
@@ -42,6 +42,13 @@ describe('PersonalInformation', () => {
|
|
|
42
42
|
locale: 'en',
|
|
43
43
|
messages: {},
|
|
44
44
|
},
|
|
45
|
+
content: {
|
|
46
|
+
data: {},
|
|
47
|
+
create: {
|
|
48
|
+
loading: false,
|
|
49
|
+
loaded: true,
|
|
50
|
+
},
|
|
51
|
+
},
|
|
45
52
|
});
|
|
46
53
|
const component = renderer.create(
|
|
47
54
|
<Provider store={store}>
|
|
@@ -76,6 +83,13 @@ describe('PersonalInformation', () => {
|
|
|
76
83
|
locale: 'en',
|
|
77
84
|
messages: {},
|
|
78
85
|
},
|
|
86
|
+
content: {
|
|
87
|
+
data: {},
|
|
88
|
+
create: {
|
|
89
|
+
loading: false,
|
|
90
|
+
loaded: true,
|
|
91
|
+
},
|
|
92
|
+
},
|
|
79
93
|
});
|
|
80
94
|
const component = renderer.create(
|
|
81
95
|
<Provider store={store}>
|
|
@@ -181,7 +181,9 @@ class Toolbar extends Component {
|
|
|
181
181
|
types: [],
|
|
182
182
|
};
|
|
183
183
|
|
|
184
|
+
toolbarRef = React.createRef();
|
|
184
185
|
toolbarWindow = React.createRef();
|
|
186
|
+
buttonRef = React.createRef();
|
|
185
187
|
|
|
186
188
|
constructor(props) {
|
|
187
189
|
super(props);
|
|
@@ -262,8 +264,9 @@ class Toolbar extends Component {
|
|
|
262
264
|
);
|
|
263
265
|
};
|
|
264
266
|
|
|
265
|
-
closeMenu = () =>
|
|
267
|
+
closeMenu = () => {
|
|
266
268
|
this.setState(() => ({ showMenu: false, loadedComponents: [] }));
|
|
269
|
+
};
|
|
267
270
|
|
|
268
271
|
loadComponent = (type) => {
|
|
269
272
|
const { loadedComponents } = this.state;
|
|
@@ -285,6 +288,15 @@ class Toolbar extends Component {
|
|
|
285
288
|
}));
|
|
286
289
|
};
|
|
287
290
|
|
|
291
|
+
toggleButtonPressed = (e) => {
|
|
292
|
+
const target = e.target;
|
|
293
|
+
const button =
|
|
294
|
+
target.tagName === 'BUTTON'
|
|
295
|
+
? target
|
|
296
|
+
: this.findAncestor(e.target, 'button');
|
|
297
|
+
this.buttonRef.current = button;
|
|
298
|
+
};
|
|
299
|
+
|
|
288
300
|
toggleMenu = (e, selector) => {
|
|
289
301
|
if (this.state.showMenu) {
|
|
290
302
|
this.closeMenu();
|
|
@@ -310,11 +322,29 @@ class Toolbar extends Component {
|
|
|
310
322
|
menuStyle: { top: 0 },
|
|
311
323
|
}));
|
|
312
324
|
}
|
|
325
|
+
this.toggleButtonPressed(e);
|
|
313
326
|
this.loadComponent(selector);
|
|
314
327
|
};
|
|
315
328
|
|
|
329
|
+
findAncestor = (el, sel) => {
|
|
330
|
+
while (
|
|
331
|
+
(el = el.parentElement) &&
|
|
332
|
+
!(el.matches || el.matchesSelector).call(el, sel)
|
|
333
|
+
);
|
|
334
|
+
return el;
|
|
335
|
+
};
|
|
336
|
+
|
|
316
337
|
handleClickOutside = (e) => {
|
|
338
|
+
const target = e.target;
|
|
317
339
|
if (this.pusher && doesNodeContainClick(this.pusher, e)) return;
|
|
340
|
+
|
|
341
|
+
// if the click is on the same button, do not close the menu as it
|
|
342
|
+
// may be handled by the toggleMenu action
|
|
343
|
+
const button =
|
|
344
|
+
doesNodeContainClick(this.toolbarRef.current, e) &&
|
|
345
|
+
this.findAncestor(target, 'button');
|
|
346
|
+
if (button && button === this.buttonRef.current) return;
|
|
347
|
+
|
|
318
348
|
this.closeMenu();
|
|
319
349
|
};
|
|
320
350
|
|
|
@@ -427,7 +457,10 @@ class Toolbar extends Component {
|
|
|
427
457
|
)}
|
|
428
458
|
</div>
|
|
429
459
|
</div>
|
|
430
|
-
<div
|
|
460
|
+
<div
|
|
461
|
+
className={this.state.expanded ? 'toolbar expanded' : 'toolbar'}
|
|
462
|
+
ref={this.toolbarRef}
|
|
463
|
+
>
|
|
431
464
|
<div className="toolbar-body">
|
|
432
465
|
<div className="toolbar-actions">
|
|
433
466
|
{this.props.hideDefaultViewButtons && this.props.inner && (
|
|
@@ -306,7 +306,9 @@ class ArrayWidget extends Component {
|
|
|
306
306
|
useDragHandle
|
|
307
307
|
// react-sortable-hoc props:
|
|
308
308
|
axis="xy"
|
|
309
|
-
onSortEnd={
|
|
309
|
+
onSortEnd={(sortProp) => {
|
|
310
|
+
this.onSortEnd(selectedOption, sortProp);
|
|
311
|
+
}}
|
|
310
312
|
menuShouldScrollIntoView={false}
|
|
311
313
|
distance={4}
|
|
312
314
|
// small fix for https://github.com/clauderic/react-sortable-hoc/pull/352:
|
|
@@ -30,7 +30,7 @@ describe('Multilingual Logo', () => {
|
|
|
30
30
|
},
|
|
31
31
|
},
|
|
32
32
|
site: {
|
|
33
|
-
data: {},
|
|
33
|
+
data: { 'plone.site_title': 'Plone Site' },
|
|
34
34
|
},
|
|
35
35
|
});
|
|
36
36
|
const component = renderer.create(
|
|
@@ -95,6 +95,7 @@ describe('Multilingual Logo', () => {
|
|
|
95
95
|
data: {
|
|
96
96
|
'plone.site_logo':
|
|
97
97
|
'http://localhost:3000/@@site-logo/logo.cab945d8.svg',
|
|
98
|
+
'plone.site_title': 'Plone Site',
|
|
98
99
|
},
|
|
99
100
|
},
|
|
100
101
|
});
|
|
@@ -128,6 +129,7 @@ describe('Multilingual Logo', () => {
|
|
|
128
129
|
data: {
|
|
129
130
|
'plone.site_logo':
|
|
130
131
|
'http://localhost:3000/@@site-logo/logo.cab945d8.svg',
|
|
132
|
+
'plone.site_title': 'Plone Site',
|
|
131
133
|
},
|
|
132
134
|
},
|
|
133
135
|
});
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
* Logo component.
|
|
3
3
|
* @module components/theme/Logo/Logo
|
|
4
4
|
*/
|
|
5
|
+
import { defineMessages, useIntl } from 'react-intl';
|
|
5
6
|
import { useEffect } from 'react';
|
|
6
7
|
import { Image } from 'semantic-ui-react';
|
|
7
|
-
import { ConditionalLink } from '@plone/volto/components';
|
|
8
8
|
import LogoImage from '@plone/volto/components/theme/Logo/Logo.svg';
|
|
9
9
|
import { useSelector, useDispatch } from 'react-redux';
|
|
10
10
|
import { useLocation } from 'react-router-dom';
|
|
@@ -26,6 +26,18 @@ const Logo = () => {
|
|
|
26
26
|
const site = useSelector((state) => state.site.data);
|
|
27
27
|
const navroot = useSelector((state) => state.navroot.data);
|
|
28
28
|
const dispatch = useDispatch();
|
|
29
|
+
const intl = useIntl();
|
|
30
|
+
|
|
31
|
+
const messages = defineMessages({
|
|
32
|
+
home: {
|
|
33
|
+
id: 'Home',
|
|
34
|
+
defaultMessage: 'Home',
|
|
35
|
+
},
|
|
36
|
+
logoOf: {
|
|
37
|
+
id: 'Logo of',
|
|
38
|
+
defaultMessage: 'Logo of',
|
|
39
|
+
},
|
|
40
|
+
});
|
|
29
41
|
|
|
30
42
|
useEffect(() => {
|
|
31
43
|
if (pathname && !hasApiExpander('navroot', getBaseUrl(pathname))) {
|
|
@@ -34,26 +46,20 @@ const Logo = () => {
|
|
|
34
46
|
}, [dispatch, pathname]);
|
|
35
47
|
|
|
36
48
|
const navRootPath = flattenToAppURL(navroot?.navroot?.['@id']) || '/';
|
|
37
|
-
const currentURLIsNavRoot = pathname !== navRootPath;
|
|
38
49
|
|
|
39
50
|
return (
|
|
40
|
-
<
|
|
41
|
-
href={navRootPath}
|
|
42
|
-
title={navroot?.navroot?.title}
|
|
43
|
-
// In case that the content returns 404, there is no information about the portal
|
|
44
|
-
// then render the link anyways to get out of the Unauthorized page
|
|
45
|
-
condition={!navroot || currentURLIsNavRoot}
|
|
46
|
-
>
|
|
51
|
+
<a href={navRootPath} aria-label={intl.formatMessage(messages.home)}>
|
|
47
52
|
<Image
|
|
48
53
|
src={
|
|
49
54
|
site['plone.site_logo']
|
|
50
55
|
? flattenToAppURL(site['plone.site_logo'])
|
|
51
56
|
: LogoImage
|
|
52
57
|
}
|
|
53
|
-
alt={
|
|
54
|
-
|
|
58
|
+
alt={
|
|
59
|
+
intl.formatMessage(messages.logoOf) + ' ' + site['plone.site_title']
|
|
60
|
+
}
|
|
55
61
|
/>
|
|
56
|
-
</
|
|
62
|
+
</a>
|
|
57
63
|
);
|
|
58
64
|
};
|
|
59
65
|
|
|
@@ -31,7 +31,7 @@ describe('Logo', () => {
|
|
|
31
31
|
},
|
|
32
32
|
},
|
|
33
33
|
site: {
|
|
34
|
-
data: {},
|
|
34
|
+
data: { 'plone.site_title': 'Plone Site' },
|
|
35
35
|
},
|
|
36
36
|
});
|
|
37
37
|
const component = renderer.create(
|
|
@@ -63,6 +63,7 @@ describe('Logo', () => {
|
|
|
63
63
|
data: {
|
|
64
64
|
'plone.site_logo':
|
|
65
65
|
'http://localhost:3000/@@site-logo/logo.cab945d8.svg',
|
|
66
|
+
'plone.site_title': 'Plone Site',
|
|
66
67
|
},
|
|
67
68
|
},
|
|
68
69
|
});
|
|
@@ -101,6 +102,7 @@ describe('Logo', () => {
|
|
|
101
102
|
data: {
|
|
102
103
|
'plone.site_logo':
|
|
103
104
|
'http://localhost:3000/@@site-logo/logo.cab945d8.svg',
|
|
105
|
+
'plone.site_title': 'Plone Site',
|
|
104
106
|
},
|
|
105
107
|
},
|
|
106
108
|
});
|
|
@@ -134,6 +136,7 @@ describe('Logo', () => {
|
|
|
134
136
|
data: {
|
|
135
137
|
'plone.site_logo':
|
|
136
138
|
'http://localhost:3000/@@site-logo/logo.cab945d8.svg',
|
|
139
|
+
'plone.site_title': 'Plone Site',
|
|
137
140
|
},
|
|
138
141
|
},
|
|
139
142
|
});
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import '@testing-library/jest-dom/extend-expect';
|
|
3
|
+
import { render } from '@testing-library/react';
|
|
4
|
+
import { MemoryRouter } from 'react-router-dom';
|
|
5
|
+
import SlotRenderer from './SlotRenderer';
|
|
6
|
+
import config from '@plone/volto/registry';
|
|
7
|
+
|
|
8
|
+
describe('SlotRenderer Component', () => {
|
|
9
|
+
const RouteConditionTrue = () => () => true;
|
|
10
|
+
const RouteConditionFalse = () => () => false;
|
|
11
|
+
const ContentTypeConditionTrue = () => () => true;
|
|
12
|
+
const ContentTypeConditionFalse = () => () => false;
|
|
13
|
+
|
|
14
|
+
test('renders a SlotRenderer component for the aboveContentTitle with two slots in the root', () => {
|
|
15
|
+
config.registerSlotComponent({
|
|
16
|
+
slot: 'toolbar',
|
|
17
|
+
name: 'save',
|
|
18
|
+
component: (props) => <div className="slot-component-true" />,
|
|
19
|
+
predicates: [RouteConditionTrue()],
|
|
20
|
+
});
|
|
21
|
+
|
|
22
|
+
config.registerSlotComponent({
|
|
23
|
+
slot: 'toolbar',
|
|
24
|
+
name: 'save',
|
|
25
|
+
component: (props) => <div className="slot-component-false" />,
|
|
26
|
+
predicates: [RouteConditionFalse(), ContentTypeConditionFalse()],
|
|
27
|
+
});
|
|
28
|
+
|
|
29
|
+
config.registerSlotComponent({
|
|
30
|
+
slot: 'toolbar',
|
|
31
|
+
name: 'edit',
|
|
32
|
+
component: (props) => <div className="slot-component-false" />,
|
|
33
|
+
predicates: [RouteConditionFalse()],
|
|
34
|
+
});
|
|
35
|
+
|
|
36
|
+
config.registerSlotComponent({
|
|
37
|
+
slot: 'toolbar',
|
|
38
|
+
name: 'edit',
|
|
39
|
+
component: (props) => (
|
|
40
|
+
<aside className="slot-component-true-predicates" />
|
|
41
|
+
),
|
|
42
|
+
predicates: [RouteConditionTrue(), ContentTypeConditionTrue()],
|
|
43
|
+
});
|
|
44
|
+
|
|
45
|
+
const { container } = render(
|
|
46
|
+
<MemoryRouter initialEntries={[{ pathname: '/' }]}>
|
|
47
|
+
<SlotRenderer name="toolbar" content={{}} />
|
|
48
|
+
</MemoryRouter>,
|
|
49
|
+
);
|
|
50
|
+
|
|
51
|
+
const divSlot = container.querySelector('div');
|
|
52
|
+
expect(divSlot).toHaveClass('slot-component-true');
|
|
53
|
+
const asideSlot = container.querySelector('aside');
|
|
54
|
+
expect(asideSlot).toHaveClass('slot-component-true-predicates');
|
|
55
|
+
});
|
|
56
|
+
});
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { useLocation } from 'react-router-dom';
|
|
2
|
+
import config from '@plone/volto/registry';
|
|
3
|
+
|
|
4
|
+
import type { Content } from '@plone/types';
|
|
5
|
+
|
|
6
|
+
/*
|
|
7
|
+
Usage:
|
|
8
|
+
<SlotRenderer name="aboveContent" content={content} route={} />
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
const SlotRenderer = ({
|
|
12
|
+
name,
|
|
13
|
+
content,
|
|
14
|
+
navRoot,
|
|
15
|
+
}: {
|
|
16
|
+
name: string;
|
|
17
|
+
content: Content;
|
|
18
|
+
navRoot?: Content;
|
|
19
|
+
}) => {
|
|
20
|
+
const pathname = useLocation().pathname;
|
|
21
|
+
|
|
22
|
+
let slots = config.getSlot(name, {
|
|
23
|
+
content,
|
|
24
|
+
pathname,
|
|
25
|
+
// This is to cover the use case while adding a new content and we don't have
|
|
26
|
+
// have the navRoot information in the initial content. This will be
|
|
27
|
+
// useful for SlotRenderers rendered in the `Add` route.
|
|
28
|
+
navRoot: content?.['@components']?.navroot?.navroot || navRoot,
|
|
29
|
+
});
|
|
30
|
+
|
|
31
|
+
if (!slots) {
|
|
32
|
+
return null;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
return (
|
|
36
|
+
<>
|
|
37
|
+
{slots.map(
|
|
38
|
+
({
|
|
39
|
+
component,
|
|
40
|
+
name,
|
|
41
|
+
}: {
|
|
42
|
+
component: React.ComponentType<any>;
|
|
43
|
+
name: string;
|
|
44
|
+
}) => {
|
|
45
|
+
// ^^ Weird compilation issue for Jest tests, that forced to re-declare the type above
|
|
46
|
+
const SlotComponent = component;
|
|
47
|
+
return <SlotComponent key={name} />;
|
|
48
|
+
},
|
|
49
|
+
)}
|
|
50
|
+
</>
|
|
51
|
+
);
|
|
52
|
+
};
|
|
53
|
+
|
|
54
|
+
export default SlotRenderer;
|
|
@@ -28,6 +28,7 @@ import {
|
|
|
28
28
|
} from '@plone/volto/helpers';
|
|
29
29
|
|
|
30
30
|
import config from '@plone/volto/registry';
|
|
31
|
+
import SlotRenderer from '../SlotRenderer/SlotRenderer';
|
|
31
32
|
|
|
32
33
|
/**
|
|
33
34
|
* View container class.
|
|
@@ -244,6 +245,7 @@ class View extends Component {
|
|
|
244
245
|
: null
|
|
245
246
|
}
|
|
246
247
|
/>
|
|
248
|
+
<SlotRenderer name="aboveContent" content={this.props.content} />
|
|
247
249
|
<RenderedView
|
|
248
250
|
key={this.props.content['@id']}
|
|
249
251
|
content={this.props.content}
|
|
@@ -251,6 +253,7 @@ class View extends Component {
|
|
|
251
253
|
token={this.props.token}
|
|
252
254
|
history={this.props.history}
|
|
253
255
|
/>
|
|
256
|
+
<SlotRenderer name="belowContent" content={this.props.content} />
|
|
254
257
|
{config.settings.showTags &&
|
|
255
258
|
this.props.content.subjects &&
|
|
256
259
|
this.props.content.subjects.length > 0 && (
|
|
@@ -33,6 +33,9 @@ jest.mock('../SocialSharing/SocialSharing', () =>
|
|
|
33
33
|
);
|
|
34
34
|
jest.mock('../Comments/Comments', () => jest.fn(() => <div id="Comments" />));
|
|
35
35
|
jest.mock('../Tags/Tags', () => jest.fn(() => <div id="Tags" />));
|
|
36
|
+
jest.mock('../SlotRenderer/SlotRenderer', () =>
|
|
37
|
+
jest.fn(() => <div id="SlotRenderer" />),
|
|
38
|
+
);
|
|
36
39
|
jest.mock('../ContentMetadataTags/ContentMetadataTags', () =>
|
|
37
40
|
jest.fn(() => <div id="ContentMetadataTags" />),
|
|
38
41
|
);
|
package/src/config/index.js
CHANGED
|
@@ -75,7 +75,7 @@ let config = {
|
|
|
75
75
|
okRoute: '/ok',
|
|
76
76
|
apiPath,
|
|
77
77
|
apiExpanders: [
|
|
78
|
-
// Added here for documentation purposes,
|
|
78
|
+
// Added here for documentation purposes, added at the end because it
|
|
79
79
|
// depends on a value of this object.
|
|
80
80
|
// Add the following expanders for only issuing a single request.
|
|
81
81
|
// https://6.docs.plone.org/volto/configuration/settings-reference.html#term-apiExpanders
|
|
@@ -223,6 +223,7 @@ let config = {
|
|
|
223
223
|
},
|
|
224
224
|
addonRoutes: [],
|
|
225
225
|
addonReducers: {},
|
|
226
|
+
slots: {},
|
|
226
227
|
components,
|
|
227
228
|
};
|
|
228
229
|
|
|
@@ -250,5 +251,6 @@ ConfigRegistry.widgets = config.widgets;
|
|
|
250
251
|
ConfigRegistry.addonRoutes = config.addonRoutes;
|
|
251
252
|
ConfigRegistry.addonReducers = config.addonReducers;
|
|
252
253
|
ConfigRegistry.components = config.components;
|
|
254
|
+
ConfigRegistry.slots = config.slots;
|
|
253
255
|
|
|
254
256
|
applyAddonConfiguration(ConfigRegistry);
|
|
@@ -701,10 +701,13 @@ export function findBlocks(blocks, types, result = []) {
|
|
|
701
701
|
|
|
702
702
|
Object.keys(blocks).forEach((blockId) => {
|
|
703
703
|
const block = blocks[blockId];
|
|
704
|
+
// check blocks from data as well since some add-ons use that
|
|
705
|
+
// such as @eeacms/volto-tabs-block
|
|
706
|
+
const child_blocks = block.blocks || block.data?.blocks;
|
|
704
707
|
if (types.includes(block['@type'])) {
|
|
705
708
|
result.push(blockId);
|
|
706
|
-
} else if (containerBlockTypes.includes(block['@type']) ||
|
|
707
|
-
findBlocks(
|
|
709
|
+
} else if (containerBlockTypes.includes(block['@type']) || child_blocks) {
|
|
710
|
+
findBlocks(child_blocks, types, result);
|
|
708
711
|
}
|
|
709
712
|
});
|
|
710
713
|
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { Content } from '@plone/types';
|
|
2
|
+
import { matchPath } from 'react-router-dom';
|
|
3
|
+
|
|
4
|
+
export function RouteCondition(path: string, exact?: boolean) {
|
|
5
|
+
return ({ pathname }: { pathname: string }) =>
|
|
6
|
+
Boolean(matchPath(pathname, { path, exact }));
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
export function ContentTypeCondition(contentType: string[]) {
|
|
10
|
+
return ({ content }: { content: Content }) =>
|
|
11
|
+
contentType.includes(content?.['@type']);
|
|
12
|
+
}
|
package/src/helpers/index.js
CHANGED
package/test-setup-config.js
CHANGED
|
@@ -184,8 +184,8 @@ body:not(.has-sidebar):not(.has-sidebar-collapsed) {
|
|
|
184
184
|
background: transparent;
|
|
185
185
|
text-align: initial;
|
|
186
186
|
|
|
187
|
-
&:focus {
|
|
188
|
-
outline:
|
|
187
|
+
&:focus-visible {
|
|
188
|
+
outline: 1px auto;
|
|
189
189
|
}
|
|
190
190
|
|
|
191
191
|
&.ui {
|
|
@@ -291,8 +291,8 @@ body:not(.has-sidebar):not(.has-sidebar-collapsed) {
|
|
|
291
291
|
cursor: pointer;
|
|
292
292
|
text-align: initial;
|
|
293
293
|
|
|
294
|
-
&:focus {
|
|
295
|
-
outline:
|
|
294
|
+
&:focus-visible {
|
|
295
|
+
outline: 1px auto;
|
|
296
296
|
}
|
|
297
297
|
}
|
|
298
298
|
}
|
|
@@ -5,7 +5,7 @@ declare function Link({ children, className, entityKey, getEditorState, target }
|
|
|
5
5
|
entityKey: any;
|
|
6
6
|
getEditorState: any;
|
|
7
7
|
target: any;
|
|
8
|
-
}): JSX.Element;
|
|
8
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
9
9
|
declare namespace Link {
|
|
10
10
|
export { propTypes };
|
|
11
11
|
export namespace defaultProps {
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export function ButtonComponent(props: any): JSX.Element;
|
|
1
|
+
export function ButtonComponent(props: any): import("react/jsx-runtime").JSX.Element;
|
|
2
2
|
export default BlockChooserButton;
|
|
3
|
-
declare function BlockChooserButton(props: any): JSX.Element;
|
|
3
|
+
declare function BlockChooserButton(props: any): import("react/jsx-runtime").JSX.Element;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export default BlocksForm;
|
|
2
|
-
declare function BlocksForm(props: any): JSX.Element;
|
|
2
|
+
declare function BlocksForm(props: any): import("react/jsx-runtime").JSX.Element;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export default DefaultBlockEdit;
|
|
2
|
-
declare function DefaultBlockEdit(props: any): JSX.Element;
|
|
2
|
+
declare function DefaultBlockEdit(props: any): import("react/jsx-runtime").JSX.Element;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export default DefaultBlockView;
|
|
2
|
-
declare function DefaultBlockView(props: any): JSX.Element;
|
|
2
|
+
declare function DefaultBlockView(props: any): import("react/jsx-runtime").JSX.Element;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export default ContainerData;
|
|
2
|
-
declare function ContainerData(props: any): JSX.Element;
|
|
2
|
+
declare function ContainerData(props: any): import("react/jsx-runtime").JSX.Element;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export default ContainerBlockEdit;
|
|
2
|
-
declare function ContainerBlockEdit(props: any): JSX.Element;
|
|
2
|
+
declare function ContainerBlockEdit(props: any): import("react/jsx-runtime").JSX.Element;
|
|
3
3
|
declare namespace ContainerBlockEdit {
|
|
4
4
|
namespace propTypes {
|
|
5
5
|
let block: any;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export default EditBlockWrapper;
|
|
2
|
-
declare function EditBlockWrapper(props: any): JSX.Element;
|
|
2
|
+
declare function EditBlockWrapper(props: any): import("react/jsx-runtime").JSX.Element;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export default NewBlockAddButton;
|
|
2
|
-
declare function NewBlockAddButton(props: any): JSX.Element;
|
|
2
|
+
declare function NewBlockAddButton(props: any): import("react/jsx-runtime").JSX.Element;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export default SimpleContainerToolbar;
|
|
2
|
-
declare function SimpleContainerToolbar(props: any): JSX.Element;
|
|
2
|
+
declare function SimpleContainerToolbar(props: any): import("react/jsx-runtime").JSX.Element;
|