@plone/volto 19.0.0-alpha.0 → 19.0.0-alpha.10
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/.eslintignore +2 -0
- package/.eslintrc +37 -0
- package/CHANGELOG.md +274 -2
- package/README.md +3 -6
- package/cypress/docker/prefixed-rules.yml +26 -0
- package/cypress/docker/prefixed.yml +24 -0
- package/cypress/support/commands.js +12 -6
- package/cypress/support/guillotina.js +1 -0
- package/cypress.config.js +1 -0
- package/locales/af.json +1 -0
- package/locales/ar.json +1 -0
- package/locales/bg.json +1 -0
- package/locales/bn.json +1 -0
- package/locales/ca/LC_MESSAGES/volto.po +96 -17
- package/locales/ca.json +1 -1
- package/locales/cs.json +1 -0
- package/locales/cy.json +1 -0
- package/locales/da.json +1 -0
- package/locales/de/LC_MESSAGES/volto.po +104 -25
- package/locales/de.json +1 -1
- package/locales/el.json +1 -0
- package/locales/en/LC_MESSAGES/volto.po +97 -18
- package/locales/en.json +1 -1
- package/locales/en_AU.json +1 -0
- package/locales/en_GB.json +1 -0
- package/locales/eo.json +1 -0
- package/locales/es/LC_MESSAGES/volto.po +97 -18
- package/locales/es.json +1 -1
- package/locales/et.json +1 -0
- package/locales/eu/LC_MESSAGES/volto.po +96 -17
- package/locales/eu.json +1 -1
- package/locales/fa.json +1 -0
- package/locales/fi/LC_MESSAGES/volto.po +96 -17
- package/locales/fi.json +1 -1
- package/locales/fr/LC_MESSAGES/volto.po +97 -18
- package/locales/fr.json +1 -1
- package/locales/fu.json +1 -0
- package/locales/gl.json +1 -0
- package/locales/he.json +1 -0
- package/locales/hi/LC_MESSAGES/volto.po +100 -21
- package/locales/hi.json +1 -1
- package/locales/hr.json +1 -0
- package/locales/hu.json +1 -0
- package/locales/hy.json +1 -0
- package/locales/id.json +1 -0
- package/locales/it/LC_MESSAGES/volto.po +101 -22
- package/locales/it.json +1 -1
- package/locales/ja/LC_MESSAGES/volto.po +96 -17
- package/locales/ja.json +1 -1
- package/locales/ka.json +1 -0
- package/locales/kn.json +1 -0
- package/locales/ko.json +1 -0
- package/locales/lt.json +1 -0
- package/locales/lv.json +1 -0
- package/locales/mi.json +1 -0
- package/locales/mk.json +1 -0
- package/locales/my.json +1 -0
- package/locales/nb_NO.json +1 -0
- package/locales/nl/LC_MESSAGES/volto.po +100 -21
- package/locales/nl.json +1 -1
- package/locales/nn.json +1 -0
- package/locales/pl.json +1 -0
- package/locales/pt/LC_MESSAGES/volto.po +96 -17
- package/locales/pt.json +1 -1
- package/locales/pt_BR/LC_MESSAGES/volto.po +116 -37
- package/locales/pt_BR.json +1 -1
- package/locales/rm.json +1 -0
- package/locales/ro/LC_MESSAGES/volto.po +100 -21
- package/locales/ro.json +1 -1
- package/locales/ru/LC_MESSAGES/volto.po +100 -21
- package/locales/ru.json +1 -1
- package/locales/sk.json +1 -0
- package/locales/sl.json +1 -0
- package/locales/sm.json +1 -0
- package/locales/sq.json +1 -0
- package/locales/sr.json +1 -0
- package/locales/sr@cyrl.json +1 -0
- package/locales/sr@latn.json +1 -0
- package/locales/sv.json +1 -1
- package/locales/ta.json +1 -0
- package/locales/te.json +1 -0
- package/locales/th.json +1 -0
- package/locales/to.json +1 -0
- package/locales/tr.json +1 -0
- package/locales/uk.json +1 -0
- package/locales/vi.json +1 -0
- package/locales/volto.pot +97 -18
- package/locales/zh_CN/LC_MESSAGES/volto.po +96 -17
- package/locales/zh_CN.json +1 -1
- package/locales/zh_Hant.json +1 -0
- package/locales/zh_Hant_HK.json +1 -0
- package/package.json +36 -27
- package/razzle.config.js +16 -0
- package/src/actions/actions/actions.test.js +3 -3
- package/src/actions/addons/addons.test.js +15 -12
- package/src/actions/aliases/aliases.test.js +1 -1
- package/src/actions/content/content.js +0 -1
- package/src/actions/controlpanels/controlpanels.js +13 -7
- package/src/actions/controlpanels/controlpanels.test.js +11 -5
- package/src/actions/querystring/querystring.test.js +2 -2
- package/src/actions/types/types.test.js +1 -1
- package/src/actions/users/users.js +2 -2
- package/src/components/manage/Actions/Actions.test.jsx +5 -1
- package/src/components/manage/Add/Add.jsx +27 -26
- package/src/components/manage/Add/Add.test.jsx +6 -3
- package/src/components/manage/Aliases/Aliases.test.jsx +7 -7
- package/src/components/manage/Blocks/Block/BlocksForm.jsx +1 -0
- package/src/components/manage/Blocks/Block/BlocksForm.test.jsx +48 -16
- package/src/components/manage/Blocks/Block/Edit.jsx +3 -1
- package/src/components/manage/Blocks/Block/EditBlockWrapper.jsx +9 -4
- package/src/components/manage/Blocks/Block/Settings.test.jsx +5 -1
- package/src/components/manage/Blocks/Block/StyleWrapper.jsx +11 -3
- package/src/components/manage/Blocks/Description/View.test.jsx +1 -1
- package/src/components/manage/Blocks/HTML/Edit.test.jsx +12 -5
- package/src/components/manage/Blocks/HTML/View.test.jsx +1 -1
- package/src/components/manage/Blocks/Image/Edit.jsx +5 -1
- package/src/components/manage/Blocks/Image/ImageSidebar.test.jsx +6 -2
- package/src/components/manage/Blocks/LeadImage/Edit.jsx +2 -2
- package/src/components/manage/Blocks/LeadImage/LeadImageSidebar.jsx +1 -1
- package/src/components/manage/Blocks/LeadImage/LeadImageSidebar.test.jsx +8 -1
- package/src/components/manage/Blocks/Listing/ImageGallery.jsx +6 -4
- package/src/components/manage/Blocks/Listing/View.test.jsx +3 -1
- package/src/components/manage/Blocks/Maps/Edit.jsx +2 -1
- package/src/components/manage/Blocks/Maps/MapsSidebar.test.jsx +5 -1
- package/src/components/manage/Blocks/Search/SearchBlockView.jsx +21 -4
- package/src/components/manage/Blocks/Search/components/DateRangeFacet.test.jsx +13 -7
- package/src/components/manage/Blocks/Search/components/SelectFacet.test.jsx +12 -6
- package/src/components/manage/Blocks/Teaser/Data.jsx +21 -7
- package/src/components/manage/Blocks/Teaser/DefaultBody.jsx +1 -1
- package/src/components/manage/Blocks/Teaser/schema.js +8 -3
- package/src/components/manage/Blocks/Title/Edit.jsx +8 -2
- package/src/components/manage/Blocks/ToC/variations/DefaultTocRenderer.test.jsx +11 -1
- package/src/components/manage/Blocks/Video/Edit.jsx +2 -1
- package/src/components/manage/Blocks/Video/VideoSidebar.test.jsx +5 -1
- package/src/components/manage/ConditionalLink/ConditionalLink.test.tsx +109 -0
- package/src/components/manage/ConditionalLink/ConditionalLink.tsx +36 -0
- package/src/components/manage/Contents/Contents.jsx +23 -2
- package/src/components/manage/Contents/Contents.test.jsx +36 -13
- package/src/components/manage/Contents/ContentsBreadcrumbs.Multilingual.test.jsx +18 -5
- package/src/components/manage/Contents/ContentsBreadcrumbs.jsx +20 -26
- package/src/components/manage/Contents/ContentsBreadcrumbs.test.jsx +14 -0
- package/src/components/manage/Contents/ContentsDeleteModal.jsx +258 -206
- package/src/components/manage/Contents/ContentsDeleteModal.stories.jsx +26 -8
- package/src/components/manage/Contents/ContentsItem.jsx +10 -2
- package/src/components/manage/Contents/ContentsPropertiesModal.test.jsx +5 -1
- package/src/components/manage/Contents/ContentsRenameModal.test.jsx +5 -1
- package/src/components/manage/Contents/ContentsTagsModal.test.jsx +5 -1
- package/src/components/manage/Contents/ContentsUploadModal.test.jsx +13 -22
- package/src/components/manage/Contents/ContentsWorkflowModal.test.jsx +5 -1
- package/src/components/manage/Contents/__mocks__/index.tsx +16 -0
- package/src/components/manage/Contents/__mocks__/index.vitest.tsx +5 -0
- package/src/components/manage/Controlpanels/AddonsControlpanel.test.jsx +28 -3
- package/src/components/manage/Controlpanels/Aliases.test.jsx +35 -3
- package/src/components/manage/Controlpanels/ContentType.jsx +1 -1
- package/src/components/manage/Controlpanels/ContentType.test.jsx +29 -3
- package/src/components/manage/Controlpanels/ContentTypeLayout.test.jsx +4 -2
- package/src/components/manage/Controlpanels/ContentTypes.test.jsx +25 -2
- package/src/components/manage/Controlpanels/Controlpanel.test.jsx +37 -6
- package/src/components/manage/Controlpanels/Controlpanels.test.jsx +47 -3
- package/src/components/manage/Controlpanels/Groups/GroupsControlpanel.jsx +3 -2
- package/src/components/manage/Controlpanels/Groups/GroupsControlpanel.test.jsx +15 -9
- package/src/components/manage/Controlpanels/ModerateComments.test.jsx +31 -5
- package/src/components/manage/Controlpanels/Rules/AddRule.test.jsx +13 -4
- package/src/components/manage/Controlpanels/Rules/ConfigureRule.test.jsx +9 -5
- package/src/components/manage/Controlpanels/Rules/EditRule.test.jsx +12 -4
- package/src/components/manage/Controlpanels/Rules/Rules.test.jsx +7 -3
- package/src/components/manage/Controlpanels/UndoControlpanel.test.jsx +33 -4
- package/src/components/manage/Controlpanels/Users/RenderUsers.jsx +156 -175
- package/src/components/manage/Controlpanels/Users/UserGroupMembershipControlPanel.test.jsx +3 -1
- package/src/components/manage/Controlpanels/Users/UsersControlpanel.jsx +575 -630
- package/src/components/manage/Controlpanels/Users/UsersControlpanel.test.jsx +16 -9
- package/src/components/manage/Delete/Delete.test.jsx +45 -4
- package/src/components/manage/Diff/Diff.test.jsx +15 -6
- package/src/components/manage/Diff/DiffField.test.jsx +12 -6
- package/src/components/manage/Display/Display.test.jsx +17 -6
- package/src/components/manage/Edit/Edit.jsx +2 -3
- package/src/components/manage/Edit/Edit.test.jsx +11 -3
- package/src/components/manage/Form/BlockDataForm.test.jsx +5 -1
- package/src/components/manage/Form/Form.jsx +32 -0
- package/src/components/manage/Form/Form.test.jsx +27 -19
- package/src/components/manage/Form/InlineForm.jsx +2 -2
- package/src/components/manage/Form/InlineForm.test.jsx +5 -1
- package/src/components/manage/Form/ModalForm.test.jsx +5 -1
- package/src/components/manage/Form/__mocks__/index.tsx +17 -0
- package/src/components/manage/Form/__mocks__/index.vitest.tsx +73 -0
- package/src/components/manage/History/History.test.jsx +3 -1
- package/src/components/manage/LinksToItem/LinksToItem.test.jsx +6 -4
- package/src/components/manage/MaybeWrap/MaybeWrap.tsx +15 -0
- package/src/components/manage/Multilingual/CompareLanguages.jsx +2 -5
- package/src/components/manage/Multilingual/CreateTranslation.jsx +8 -8
- package/src/components/manage/Multilingual/ManageTranslations.jsx +4 -2
- package/src/components/manage/Multilingual/ManageTranslations.test.jsx +8 -3
- package/src/components/manage/Multilingual/TranslationObject.jsx +1 -1
- package/src/components/manage/Preferences/ChangePassword.test.jsx +9 -2
- package/src/components/manage/Preferences/PersonalInformation.test.jsx +3 -1
- package/src/components/manage/Preferences/PersonalPreferences.test.jsx +20 -7
- package/src/components/manage/Rules/Rules.test.jsx +6 -3
- package/src/components/manage/Sharing/Sharing.test.jsx +3 -1
- package/src/components/manage/Sidebar/ObjectBrowserNav.jsx +2 -1
- package/src/components/manage/Sidebar/ObjectBrowserNav.test.jsx +3 -3
- package/src/components/manage/Sidebar/SidebarPortal.test.tsx +42 -0
- package/src/components/manage/Sidebar/SidebarPortal.tsx +48 -0
- package/src/components/manage/TemplateChooser/TemplateChooser.jsx +2 -1
- package/src/components/manage/Toolbar/More.jsx +4 -1
- package/src/components/manage/Toolbar/More.test.jsx +9 -7
- package/src/components/manage/Toolbar/PersonalTools.jsx +2 -1
- package/src/components/manage/Toolbar/Toolbar.jsx +3 -4
- package/src/components/manage/Toolbar/Types.jsx +7 -7
- package/src/components/manage/UniversalLink/UniversalLink.test.jsx +196 -14
- package/src/components/manage/UniversalLink/UniversalLink.tsx +215 -0
- package/src/components/manage/Widgets/ArrayWidget.test.jsx +22 -5
- package/src/components/manage/Widgets/CheckboxGroupWidget.test.jsx +12 -5
- package/src/components/manage/Widgets/DatetimeWidget.jsx +5 -0
- package/src/components/manage/Widgets/DatetimeWidget.test.jsx +21 -6
- package/src/components/manage/Widgets/FileWidget.jsx +14 -8
- package/src/components/manage/Widgets/ImageWidget.jsx +176 -40
- package/src/components/manage/Widgets/InternalUrlWidget.jsx +2 -0
- package/src/components/manage/Widgets/NumberWidget.test.jsx +8 -7
- package/src/components/manage/Widgets/ObjectBrowserWidget.jsx +3 -0
- package/src/components/manage/Widgets/ObjectListWidget.jsx +11 -1
- package/src/components/manage/Widgets/ObjectListWidget.test.jsx +18 -8
- package/src/components/manage/Widgets/ObjectWidget.test.jsx +5 -1
- package/src/components/manage/Widgets/RadioGroupWidget.test.jsx +12 -5
- package/src/components/manage/Widgets/RecurrenceWidget/RecurrenceWidget.test.jsx +12 -6
- package/src/components/manage/Widgets/RegistryImageWidget.test.jsx +44 -41
- package/src/components/manage/Widgets/SchemaWidget.test.jsx +12 -5
- package/src/components/manage/Widgets/SchemaWidgetFieldset.test.jsx +12 -5
- package/src/components/manage/Widgets/SelectAutoComplete.jsx +29 -12
- package/src/components/manage/Widgets/SelectAutoComplete.test.jsx +12 -6
- package/src/components/manage/Widgets/SelectWidget.jsx +3 -1
- package/src/components/manage/Widgets/SelectWidget.test.jsx +12 -6
- package/src/components/manage/Widgets/TimeWidget.test.jsx +13 -5
- package/src/components/manage/Widgets/TokenWidget.test.jsx +12 -6
- package/src/components/manage/Widgets/UrlWidget.jsx +2 -0
- package/src/components/manage/Widgets/VocabularyTermsWidget.test.jsx +18 -9
- package/src/components/manage/Widgets/__mocks__/index.tsx +16 -0
- package/src/components/manage/Widgets/__mocks__/index.vitest.tsx +41 -0
- package/src/components/manage/Workflow/Workflow.test.jsx +17 -7
- package/src/components/theme/AlternateHrefLangs/AlternateHrefLangs.jsx +1 -3
- package/src/components/theme/AlternateHrefLangs/AlternateHrefLangs.test.jsx +0 -4
- package/src/components/theme/App/App.jsx +3 -1
- package/src/components/theme/App/App.test.jsx +22 -17
- package/src/components/theme/AppExtras/AppExtras.test.jsx +6 -6
- package/src/components/theme/Avatar/Avatar.jsx +2 -1
- package/src/components/theme/Comments/CommentEditModal.test.jsx +5 -1
- package/src/components/theme/Comments/Comments.test.jsx +29 -12
- package/src/components/theme/ContactForm/ContactForm.test.jsx +8 -4
- package/src/components/theme/FormattedDate/FormattedDate.stories.jsx +20 -2
- package/src/components/theme/Header/Header.test.jsx +19 -13
- package/src/components/theme/Image/Image.jsx +11 -8
- package/src/components/theme/LanguageSelector/{LanguageSelector.test.jsx → LanguageSelector.test.tsx} +6 -6
- package/src/components/theme/LanguageSelector/LanguageSelector.tsx +89 -0
- package/src/components/theme/Logo/Logo.Multilingual.test.jsx +0 -5
- package/src/components/theme/Logout/Logout.test.jsx +1 -1
- package/src/components/theme/MultilingualRedirector/MultilingualRedirector.jsx +8 -12
- package/src/components/theme/MultilingualRedirector/MultilingualRedirector.test.jsx +3 -5
- package/src/components/theme/Navigation/NavItem.jsx +1 -5
- package/src/components/theme/Navigation/Navigation.Multilingual.test.jsx +0 -5
- package/src/components/theme/NotFound/NotFound.jsx +5 -2
- package/src/components/theme/NotFound/NotFound.test.jsx +3 -0
- package/src/components/theme/PasswordReset/PasswordReset.test.jsx +10 -1
- package/src/components/theme/PasswordReset/RequestPasswordReset.test.jsx +5 -1
- package/src/components/theme/PreviewImage/PreviewImage.jsx +1 -1
- package/src/components/theme/Register/Register.test.jsx +5 -1
- package/src/components/theme/RequestTimeout/RequestTimeout.jsx +1 -1
- package/src/components/theme/Search/Search.test.jsx +6 -4
- package/src/components/theme/Sitemap/Sitemap.jsx +6 -5
- package/src/components/theme/Sitemap/Sitemap.test.jsx +0 -1
- package/src/components/theme/TsTest/TsTest.test.tsx +0 -1
- package/src/components/theme/View/EventDatesInfo.test.jsx +12 -5
- package/src/components/theme/View/EventView.test.jsx +12 -5
- package/src/components/theme/View/FileView.jsx +9 -1
- package/src/components/theme/View/ListingView.test.jsx +2 -0
- package/src/components/theme/View/SummaryView.test.jsx +10 -0
- package/src/components/theme/View/TabularView.test.jsx +1 -0
- package/src/components/theme/View/View.jsx +1 -1
- package/src/components/theme/View/View.test.jsx +42 -23
- package/src/components/theme/Widgets/ImageWidget.jsx +2 -1
- package/src/config/ControlPanels.js +1 -0
- package/src/config/index.js +18 -25
- package/src/config/server.js +0 -2
- package/src/express-middleware/devproxy.js +20 -5
- package/src/helpers/Api/APIResourceWithAuth.js +8 -3
- package/src/helpers/Api/Api.js +7 -4
- package/src/helpers/Api/Api.plone.rest.test.js +11 -9
- package/src/helpers/Api/Api.test.js +11 -14
- package/src/helpers/AsyncConnect/AsyncConnect.test.jsx +145 -189
- package/src/helpers/AsyncConnect/ssr.js +4 -1
- package/src/helpers/AuthToken/AuthToken.test.js +60 -22
- package/src/helpers/Blocks/Blocks.test.js +1 -1
- package/src/helpers/Content/Content.js +23 -0
- package/src/helpers/Content/Content.test.js +39 -0
- package/src/helpers/Content/withClientSideContent.jsx +35 -0
- package/src/helpers/Extensions/withBlockSchemaEnhancer.jsx +4 -1
- package/src/helpers/Html/Html.jsx +13 -7
- package/src/helpers/Html/Html.test.jsx +32 -28
- package/src/helpers/LanguageMap/LanguageMap.js +115 -8
- package/src/helpers/Loadable/__mocks__/Loadable.jsx +16 -1
- package/src/helpers/Loadable/__mocks__/Loadable.vitest.jsx +39 -0
- package/src/helpers/MessageLabels/MessageLabels.js +5 -0
- package/src/helpers/Sitemap/Sitemap.js +4 -4
- package/src/helpers/Url/Url.js +32 -2
- package/src/helpers/Url/Url.test.js +62 -0
- package/src/helpers/Utils/withSaveAsDraft.jsx +241 -0
- package/src/hooks/user/useUser.js +1 -1
- package/src/middleware/Api.test.js +51 -0
- package/src/middleware/api.js +78 -29
- package/src/middleware/storeProtectLoadUtils.test.js +93 -81
- package/src/reducers/content/content.js +3 -18
- package/src/reducers/diff/diff.js +5 -1
- package/src/reducers/diff/diff.test.js +60 -4
- package/src/routes.js +4 -2
- package/src/server.jsx +45 -14
- package/src/start-client.jsx +9 -6
- package/src/start-server.js +9 -3
- package/test-setup-config.jsx +0 -2
- package/test-setup-globals-vitest.js +46 -0
- package/theme/themes/pastanaga/collections/table.overrides +9 -0
- package/theme/themes/pastanaga/extras/blocks.less +26 -0
- package/theme/themes/pastanaga/extras/contents.less +17 -5
- package/theme/themes/pastanaga/extras/main.less +32 -2
- package/tsconfig.declarations.json +12 -1
- package/tsconfig.json +5 -5
- package/types/components/manage/Blocks/Teaser/schema.d.ts +1 -0
- package/types/components/manage/ConditionalLink/ConditionalLink.d.ts +11 -15
- package/types/components/manage/Contents/__mocks__/index.vitest.d.ts +2 -0
- package/types/components/manage/Controlpanels/Users/RenderUsers.d.ts +18 -2
- package/types/components/manage/Controlpanels/Users/UsersControlpanel.d.ts +6 -2
- package/types/components/manage/Controlpanels/index.d.ts +2 -2
- package/types/components/manage/Form/__mocks__/index.vitest.d.ts +8 -0
- package/types/components/manage/MaybeWrap/MaybeWrap.d.ts +7 -5
- package/types/components/manage/Sidebar/SidebarPortal.d.ts +7 -15
- package/types/components/manage/UniversalLink/UniversalLink.d.ts +54 -20
- package/types/components/manage/Widgets/ImageWidget.d.ts +41 -1
- package/types/components/manage/Widgets/RecurrenceWidget/Utils.d.ts +12 -18
- package/types/components/manage/Widgets/__mocks__/index.vitest.d.ts +33 -0
- package/types/components/theme/FormattedDate/FormattedDate.stories.d.ts +1 -1
- package/types/components/theme/LanguageSelector/LanguageSelector.d.ts +3 -10
- package/types/helpers/Content/Content.d.ts +7 -0
- package/types/helpers/Content/withClientSideContent.d.ts +1 -0
- package/types/helpers/Extensions/withBlockSchemaEnhancer.d.ts +4 -5
- package/types/helpers/Helmet/Helmet.d.ts +1 -1
- package/types/helpers/LanguageMap/LanguageMap.d.ts +428 -4
- package/types/helpers/Loadable/__mocks__/Loadable.vitest.d.ts +3 -0
- package/types/helpers/MessageLabels/MessageLabels.d.ts +68 -62
- package/types/helpers/Url/Url.d.ts +14 -0
- package/types/helpers/Url/bulkFlattenToAppURL.d.ts +5 -0
- package/types/helpers/Utils/withSaveAsDraft.d.ts +1 -0
- package/types/middleware/api.d.ts +6 -9
- package/types/react-router-hash-link.d.ts +12 -0
- package/types/reducers/index.d.ts +1 -0
- package/types/routes.d.ts +4 -0
- package/types/server.d.ts +1 -1
- package/types/start-client.d.ts +0 -1
- package/vite-plugins/svg.mjs +81 -0
- package/vitest.config.mjs +77 -0
- package/package-why.json +0 -34
- package/src/actions/content/content.multilingual.test.js +0 -17
- package/src/components/manage/ConditionalLink/ConditionalLink.jsx +0 -27
- package/src/components/manage/ConditionalLink/ConditionalLink.test.jsx +0 -30
- package/src/components/manage/MaybeWrap/MaybeWrap.jsx +0 -9
- package/src/components/manage/Sidebar/SidebarPortal.jsx +0 -47
- package/src/components/manage/Sidebar/SidebarPortal.test.jsx +0 -26
- package/src/components/manage/UniversalLink/UniversalLink.jsx +0 -154
- package/src/components/manage/Widgets/FileWidget.test.jsx +0 -91
- package/src/components/theme/LanguageSelector/LanguageSelector.jsx +0 -77
- package/theme/themes/pastanaga/extras/utils.less +0 -63
package/.eslintignore
CHANGED
package/.eslintrc
CHANGED
|
@@ -37,6 +37,13 @@
|
|
|
37
37
|
"react-hooks/exhaustive-deps": "warn",
|
|
38
38
|
"react/react-in-jsx-scope": "off",
|
|
39
39
|
"jsx-a11y/label-has-associated-control": "off",
|
|
40
|
+
"no-restricted-syntax": [
|
|
41
|
+
"error",
|
|
42
|
+
{
|
|
43
|
+
"selector": "JSXElement[openingElement.name.name='img']",
|
|
44
|
+
"message": "Use the Image component from '@plone/volto/components/theme/Image/Image' instead of <img> tag.",
|
|
45
|
+
},
|
|
46
|
+
],
|
|
40
47
|
},
|
|
41
48
|
"settings": {
|
|
42
49
|
"import/resolver": {
|
|
@@ -50,6 +57,7 @@
|
|
|
50
57
|
],
|
|
51
58
|
"extensions": [".js", ".jsx", ".ts", ".tsx", ".json"],
|
|
52
59
|
},
|
|
60
|
+
"node": { "extensions": [".js", ".jsx", ".ts", ".tsx", ".json"] },
|
|
53
61
|
"babel-plugin-root-import": {
|
|
54
62
|
"rootPathSuffix": "src",
|
|
55
63
|
},
|
|
@@ -69,12 +77,39 @@
|
|
|
69
77
|
"plugins": ["prettier", "react-hooks", "jsx-a11y"],
|
|
70
78
|
"parser": "@typescript-eslint/parser",
|
|
71
79
|
},
|
|
80
|
+
{
|
|
81
|
+
"files": [
|
|
82
|
+
"**/*.test.js",
|
|
83
|
+
"**/*.test.jsx",
|
|
84
|
+
"**/*.test.ts",
|
|
85
|
+
"**/*.test.tsx",
|
|
86
|
+
"**/cypress/**/*.js",
|
|
87
|
+
"**/cypress/**/*.ts",
|
|
88
|
+
],
|
|
89
|
+
"plugins": ["no-only-tests"],
|
|
90
|
+
"rules": {
|
|
91
|
+
"no-only-tests/no-only-tests": "error",
|
|
92
|
+
},
|
|
93
|
+
},
|
|
72
94
|
{
|
|
73
95
|
"files": ["**/*.stories.js", "**/*.stories.jsx"],
|
|
74
96
|
"rules": {
|
|
75
97
|
"import/no-anonymous-default-export": "off",
|
|
76
98
|
},
|
|
77
99
|
},
|
|
100
|
+
{
|
|
101
|
+
"files": [
|
|
102
|
+
"**/Image/Image.jsx",
|
|
103
|
+
"**/Image/Image.js",
|
|
104
|
+
"**/*.stories.js",
|
|
105
|
+
"**/*.stories.jsx",
|
|
106
|
+
"**/*.test.js",
|
|
107
|
+
"**/*.test.jsx",
|
|
108
|
+
],
|
|
109
|
+
"rules": {
|
|
110
|
+
"no-restricted-syntax": "off",
|
|
111
|
+
},
|
|
112
|
+
},
|
|
78
113
|
],
|
|
79
114
|
"globals": {
|
|
80
115
|
"root": true,
|
|
@@ -91,5 +126,7 @@
|
|
|
91
126
|
"jest": true,
|
|
92
127
|
"socket": true,
|
|
93
128
|
"webpackIsomorphicTools": true,
|
|
129
|
+
"vitest": true,
|
|
130
|
+
"vi": true,
|
|
94
131
|
},
|
|
95
132
|
}
|
package/CHANGELOG.md
CHANGED
|
@@ -17,6 +17,278 @@ myst:
|
|
|
17
17
|
|
|
18
18
|
<!-- towncrier release notes start -->
|
|
19
19
|
|
|
20
|
+
## 19.0.0-alpha.10 (2025-10-31)
|
|
21
|
+
|
|
22
|
+
### Feature
|
|
23
|
+
|
|
24
|
+
- Added `visually-hidden` utility CSS class that integrators and core developers can use. @JeffersonBledsoe @Wagner3UB [#6356](https://github.com/plone/volto/issues/6356)
|
|
25
|
+
- Enhanced diff reducer to process static behaviors in the result object. @rboixaderg [#7546](https://github.com/plone/volto/issues/7546)
|
|
26
|
+
|
|
27
|
+
### Bugfix
|
|
28
|
+
|
|
29
|
+
- Get translationObject from the store instead of directly from the response in CreateTranslation component. @rboixaderg [#7543](https://github.com/plone/volto/issues/7543)
|
|
30
|
+
- Move '.visually-hidden' class to 'main.less' and remove unused 'utils.less' and references @Wagner3UB [#7552](https://github.com/plone/volto/issues/7552)
|
|
31
|
+
- Improve some JSDocs for better typing. @sneridagh [#7560](https://github.com/plone/volto/issues/7560)
|
|
32
|
+
- Fix image upload inside `ImageWidget` component when used inside a non-folderish object. [@jnptk] [#7573](https://github.com/plone/volto/issues/7573)
|
|
33
|
+
- Avoid re-rendering a content item view while hydrating server-side rendered components. @reebalazs
|
|
34
|
+
- Fix failing cypress test on updating to Cypress 15 @Tishasoumya-02
|
|
35
|
+
- Fix infinite @users requests caused by anonymous useUser hook. @iFlameing
|
|
36
|
+
|
|
37
|
+
### Internal
|
|
38
|
+
|
|
39
|
+
- Convert UsersControlpanel component from class to functional with hooks. @wesleybl [#7450](https://github.com/plone/volto/issues/7450)
|
|
40
|
+
- Update to node 24 and cypress to 15 @sneridagh [#7538](https://github.com/plone/volto/issues/7538)
|
|
41
|
+
- Refactor `SidebarPortal` to TypeScript. @sneridagh [#7560](https://github.com/plone/volto/issues/7560)
|
|
42
|
+
- Enable ESlint detection of '.only' in unit and cypress tests. @sneridagh [#7567](https://github.com/plone/volto/issues/7567)
|
|
43
|
+
|
|
44
|
+
## 19.0.0-alpha.9 (2025-10-22)
|
|
45
|
+
|
|
46
|
+
### Feature
|
|
47
|
+
|
|
48
|
+
- Add Cypress for a subpath. @wesleybl [#6976](https://github.com/plone/volto/issues/6976)
|
|
49
|
+
- Serve API requests from a subpath. @davisagli [#7326](https://github.com/plone/volto/issues/7326)
|
|
50
|
+
- Add option to serve a Volto site on a subpath using the `RAZZLE_SUBPATH_PREFIX` environment variable. @nileshgulia1, @wesleybl, @davisagli
|
|
51
|
+
|
|
52
|
+
### Internal
|
|
53
|
+
|
|
54
|
+
- Expires the cache if the root `package.json` is changed. @wesleybl [#7536](https://github.com/plone/volto/issues/7536)
|
|
55
|
+
- Move to `dependencies` some bad categorized dependencies in `devDependencies`. @sneridagh
|
|
56
|
+
- Run Cookieplone acceptance test with Node 24. @davisagli
|
|
57
|
+
|
|
58
|
+
## 19.0.0-alpha.8 (2025-10-22)
|
|
59
|
+
|
|
60
|
+
### Internal
|
|
61
|
+
|
|
62
|
+
- Modernize and update `tsconfig.json` settings for core. @sneridagh [#7531.1](https://github.com/plone/volto/issues/7531.1)
|
|
63
|
+
- Refactor `LanguageSelector` into TypeScript. @sneridagh [#7531.2](https://github.com/plone/volto/issues/7531.2)
|
|
64
|
+
- Re-enable scripts pnpm build. Remove why. @sneridagh [#7532](https://github.com/plone/volto/issues/7532)
|
|
65
|
+
|
|
66
|
+
## 19.0.0-alpha.7 (2025-10-21)
|
|
67
|
+
|
|
68
|
+
### Breaking
|
|
69
|
+
|
|
70
|
+
- Update pnpm to 10.18.3. @wesleybl [#7239](https://github.com/plone/volto/issues/7239)
|
|
71
|
+
- Drop support of Node.js 20. @wesleybl [#7509](https://github.com/plone/volto/issues/7509)
|
|
72
|
+
|
|
73
|
+
### Feature
|
|
74
|
+
|
|
75
|
+
- Internationalizes help for the `Group Name` field. @wesleybl [#7481](https://github.com/plone/volto/issues/7481)
|
|
76
|
+
- Add support to Node.js 24. @wesleybl [#7508](https://github.com/plone/volto/issues/7508)
|
|
77
|
+
|
|
78
|
+
### Bugfix
|
|
79
|
+
|
|
80
|
+
- Refactored the fix for #7238: corner case when coming from SSR in edit route, where the teasers where overwriten with bogus URLs after save if INTERNAL_API_PATH is set. @sneridagh [#7317](https://github.com/plone/volto/issues/7317)
|
|
81
|
+
- The cancel/clear "X" button inside the DatetimeWidget now includes an accessible label when active. @Wagner3UB [#7414](https://github.com/plone/volto/issues/7414)
|
|
82
|
+
- The delete and drag buttons for blocks in edit mode now have an accessible aria-label for screen readers. @sabrina-bongiovanni [#7424](https://github.com/plone/volto/issues/7424)
|
|
83
|
+
- Fix api middleware possible empty values error. @robgietema [#7433](https://github.com/plone/volto/issues/7433)
|
|
84
|
+
- Escape double quotes in POT / PO files @erral [#7476](https://github.com/plone/volto/issues/7476)
|
|
85
|
+
- Fixed corner case where RAZZLE_INTERNAL_API_PATH is set and id is still undefined on first SSR load. @sneridagh [#7478](https://github.com/plone/volto/issues/7478)
|
|
86
|
+
- Reset fieldset.invisible class definition in order to prevent clashes with other CSS frameworks that might have `invisible` as utility. @sneridagh
|
|
87
|
+
- Set type="button" for more widget buttons to prevent them from triggering when Enter is pressed elsewhere in the form. @davisagli
|
|
88
|
+
|
|
89
|
+
### Internal
|
|
90
|
+
|
|
91
|
+
- Added Cypress test for backspace behavior in slate blocks. @aryan7081 [#7373](https://github.com/plone/volto/issues/7373)
|
|
92
|
+
- Update slate libraries in volto package. @sneridagh [#7482](https://github.com/plone/volto/issues/7482)
|
|
93
|
+
- Makes the Cypress commands `getSlateEditorAndType` and `getSlateEditorSelectorAndType` more robust. @wesleybl [#7503](https://github.com/plone/volto/issues/7503)
|
|
94
|
+
- Enhance Cypress commands to trigger focus before typing in Slate editor. @wesleybl [#7506](https://github.com/plone/volto/issues/7506)
|
|
95
|
+
- Fix error and rename test to "should save typed content in the Slate editor". @wesleybl [#7507](https://github.com/plone/volto/issues/7507)
|
|
96
|
+
- Skip link check for URL which blocks traffic from GitHub. @davisagli
|
|
97
|
+
- Use Plone 6.1.3. @sneridagh
|
|
98
|
+
|
|
99
|
+
### Documentation
|
|
100
|
+
|
|
101
|
+
- Add a note to the upgrade guide about related items being shown by default. @davisagli [#7430](https://github.com/plone/volto/issues/7430)
|
|
102
|
+
- Fix images path in Volto README. @wesleybl [#7446](https://github.com/plone/volto/issues/7446)
|
|
103
|
+
|
|
104
|
+
## 19.0.0-alpha.6 (2025-09-29)
|
|
105
|
+
|
|
106
|
+
### Breaking
|
|
107
|
+
|
|
108
|
+
- Now add-ons need to replace `<img>` tags with the `Image` component. There is an ESLint rule to check this. @wesleybl [#7402](https://github.com/plone/volto/issues/7402)
|
|
109
|
+
- `@plone/components` and `@plone/client` has been updated with the latest alphas developed for Seven.
|
|
110
|
+
Please see the [upgrade guide](https://6.docs.plone.org/volto/upgrade-guide/index.html) @sneridagh [#7407](https://github.com/plone/volto/issues/7407)
|
|
111
|
+
|
|
112
|
+
### Feature
|
|
113
|
+
|
|
114
|
+
- Convert RenderUsers component from class to functional with hooks. @wesleybl [#7313](https://github.com/plone/volto/issues/7313)
|
|
115
|
+
- Update Portuguese Brazilian translations @ericof [#7362](https://github.com/plone/volto/issues/7362)
|
|
116
|
+
- Replace img tags with Image component. @wesleybl [#7363](https://github.com/plone/volto/issues/7363)
|
|
117
|
+
|
|
118
|
+
### Bugfix
|
|
119
|
+
|
|
120
|
+
- Search block: fix 'Clear filters' overriding the base query. @mauritsvanrees [#7271](https://github.com/plone/volto/issues/7271)
|
|
121
|
+
- Fixes image rerender on page edit from https://github.com/plone/volto/issues/6839 @calinvladth [#7347](https://github.com/plone/volto/issues/7347)
|
|
122
|
+
- Update folder content search input to announce result count for screen readers on search or input change. @Wagner3UB [#7364](https://github.com/plone/volto/issues/7364)
|
|
123
|
+
- Check if we are editing a content type before rendering the Content Type control panel form. @ericof [#7396](https://github.com/plone/volto/issues/7396)
|
|
124
|
+
- Added guard in API REDUX middleware. @sneridagh [#7412](https://github.com/plone/volto/issues/7412)
|
|
125
|
+
- Ensure the Refresh Content button correctly loads the preview image when using preview_image_link for Teaser block. @iFlameing
|
|
126
|
+
|
|
127
|
+
### Internal
|
|
128
|
+
|
|
129
|
+
- Update `immer` to 10.1.3. @wesleybl [#7359](https://github.com/plone/volto/issues/7359)
|
|
130
|
+
- Add `sphinx-reredirects` to docs `requirements-docs.txt` and to sync with `seven` to avoid missing requirement when building docs locally on both branches. @stevepiercy [#7376](https://github.com/plone/volto/issues/7376)
|
|
131
|
+
- Replace `README.md` link checker of `awesome_bot` with Lychee. @stevepiercy [#7378](https://github.com/plone/volto/issues/7378)
|
|
132
|
+
|
|
133
|
+
### Documentation
|
|
134
|
+
|
|
135
|
+
- Improved component shadowing documentation. @sneridagh [#7357](https://github.com/plone/volto/issues/7357)
|
|
136
|
+
- Enhance and complete the block style wrapper docs. @sneridagh [#7405](https://github.com/plone/volto/issues/7405)
|
|
137
|
+
- Enhance theming documentation. @sneridagh [#7406](https://github.com/plone/volto/issues/7406)
|
|
138
|
+
|
|
139
|
+
## 19.0.0-alpha.5 (2025-09-14)
|
|
140
|
+
|
|
141
|
+
### Feature
|
|
142
|
+
|
|
143
|
+
- Make Jest maxWorkers configurable via MAX_WORKERS env var. @wesleybl [#7251](https://github.com/plone/volto/issues/7251)
|
|
144
|
+
|
|
145
|
+
### Bugfix
|
|
146
|
+
|
|
147
|
+
- Fix ImageWidget to support DX fields and Relation Choice images (preview_image_link). @sneridagh [#7099](https://github.com/plone/volto/issues/7099)
|
|
148
|
+
- Fix `InlineForm` to always pass the error prop as an array, preventing prop type errors in widgets that use `InlineForm`. @alexandreIFB [#7267](https://github.com/plone/volto/issues/7267)
|
|
149
|
+
- Search block: fix 'Clear filters' overriding the base query. @mauritsvanrees [#7271](https://github.com/plone/volto/issues/7271)
|
|
150
|
+
- Teaser block: Clarify "Refresh source content" button by changing the default text to "Reset to target". @davisagli [#7329](https://github.com/plone/volto/issues/7329)
|
|
151
|
+
- Fix German translation of "Order" from "Reihung" to "Reihenfolge" @iRohitSingh [#7331](https://github.com/plone/volto/issues/7331)
|
|
152
|
+
|
|
153
|
+
### Internal
|
|
154
|
+
|
|
155
|
+
- Remove vitest dependencies from root to prevent confusion. @wesleybl [#7274](https://github.com/plone/volto/issues/7274)
|
|
156
|
+
- Remove MEDICE website entry from `Volto in production`. @wesleybl [#7283](https://github.com/plone/volto/issues/7283)
|
|
157
|
+
- Fix random error in Listing Block tests. @wesleybl [#7286](https://github.com/plone/volto/issues/7286)
|
|
158
|
+
- Fix test storeProtectLoadUtils.test.js > storeProtectLoadUtils > loadProtector store > pass when not counting. @wesleybl [#7287](https://github.com/plone/volto/issues/7287)
|
|
159
|
+
- Fixed a random failure in Cypress tests when using `getSlateEditorAndType` or `getSlateEditorSelectorAndType`. @wesleybl [#7290](https://github.com/plone/volto/issues/7290)
|
|
160
|
+
- Update package versions in pnpm-lock.yaml. @wesleybl [#7291](https://github.com/plone/volto/issues/7291)
|
|
161
|
+
- Fix random failure in 'renders a file widget component with value' test of RegistryImageWidget. @wesleybl [#7292](https://github.com/plone/volto/issues/7292)
|
|
162
|
+
- Fixes random error in Listing Block tests 2. @wesleybl [#7293](https://github.com/plone/volto/issues/7293)
|
|
163
|
+
- Fixed random failure in Cypress 'Index Text Block' test. @wesleybl [#7304](https://github.com/plone/volto/issues/7304)
|
|
164
|
+
- 2021.ploneconf.org is no longer a Volto site, but just a redirect to YouTube. Also reverts #6627 and replaces code examples with `2022.ploneconf.org`. @stevepiercy [#7314](https://github.com/plone/volto/issues/7314)
|
|
165
|
+
|
|
166
|
+
## 19.0.0-alpha.4 (2025-08-25)
|
|
167
|
+
|
|
168
|
+
### Breaking
|
|
169
|
+
|
|
170
|
+
- Enable the `showRelatedItems` by default. @davisagli [#6549](https://github.com/plone/volto/issues/6549)
|
|
171
|
+
|
|
172
|
+
### Feature
|
|
173
|
+
|
|
174
|
+
- Add support for single selection in SelectAutoComplete widget. @iFlameing [#7270](https://github.com/plone/volto/issues/7270)
|
|
175
|
+
|
|
176
|
+
### Bugfix
|
|
177
|
+
|
|
178
|
+
- Contents view: Label 'None' for deselecting needs to be different from 'None' of a not available value in the table. @ksuess [#7233](https://github.com/plone/volto/issues/7233)
|
|
179
|
+
- Fixed corner case when coming from SSR in edit route, where the teasers where overwriten with bogus URLs after save if INTERNAL_API_PATH is set. @sneridagh [#7238](https://github.com/plone/volto/issues/7238)
|
|
180
|
+
- UniversalLink: regression, pass on onClick to Link component. @fredvd [#7240](https://github.com/plone/volto/issues/7240)
|
|
181
|
+
- Hide the `webstats_head_js` field in the site control panel form @erral [#7244](https://github.com/plone/volto/issues/7244)
|
|
182
|
+
- Fix corner case in devproxy when pathname is null. @sneridagh [#7276](https://github.com/plone/volto/issues/7276)
|
|
183
|
+
|
|
184
|
+
### Internal
|
|
185
|
+
|
|
186
|
+
- Update eslint-config-prettier past malware versions to "^9.1.2". @kittauri [#7254](https://github.com/plone/volto/issues/7254)
|
|
187
|
+
- Update @testing-library/react to 14.3.1. @wesleybl [#7260](https://github.com/plone/volto/issues/7260)
|
|
188
|
+
- Test with Plone 6.1.2. @davisagli
|
|
189
|
+
|
|
190
|
+
### Documentation
|
|
191
|
+
|
|
192
|
+
- Fix reference for the widget named `toggle_widget` for boolean fields in a schema. @ksuess [#7261](https://github.com/plone/volto/issues/7261)
|
|
193
|
+
|
|
194
|
+
## 19.0.0-alpha.3 (2025-06-25)
|
|
195
|
+
|
|
196
|
+
### Breaking
|
|
197
|
+
|
|
198
|
+
- The default language and list of available languages are now loaded from the backend API.
|
|
199
|
+
The default language can no longer be set using the `SITE_DEFAULT_LANGUAGE` environment variable.
|
|
200
|
+
The `supportedLanguages` setting remains but is only used to limit which locales are included in the build.
|
|
201
|
+
@davisagli [#7125](https://github.com/plone/volto/issues/7125)
|
|
202
|
+
- Renamed literal "Head title" to "Kicker" in Teaser block. @sneridagh [#7191](https://github.com/plone/volto/issues/7191)
|
|
203
|
+
|
|
204
|
+
### Feature
|
|
205
|
+
|
|
206
|
+
- Complete missing German translations. @ksuess [#6005](https://github.com/plone/volto/issues/6005)
|
|
207
|
+
- Use translated schema title in Helmet for `Add` component page. @alexandreIFB [#7048](https://github.com/plone/volto/issues/7048)
|
|
208
|
+
- Improved the component `ContentsDeleteModal` by displaying a detailed list of selected items with clickable links for better clarity and usability. @alexandreIFB [#7054](https://github.com/plone/volto/issues/7054)
|
|
209
|
+
- Show link integrity breaches in contents delete modal. @ksuess [#7100](https://github.com/plone/volto/issues/7100)
|
|
210
|
+
- Added the `.error` class to blocks with errors, highlighting them with a red border in edit mode. @alexandreIFB [#7138](https://github.com/plone/volto/issues/7138)
|
|
211
|
+
- Synchronizes versions of Volto dependencies with other packages in the monorepo. @wesleybl [#7184](https://github.com/plone/volto/issues/7184)
|
|
212
|
+
- In the contents view, add a pill to indicate working copies.
|
|
213
|
+
This only works with `plone.app.iterate` >= 6.2.0. @davisagli
|
|
214
|
+
|
|
215
|
+
### Bugfix
|
|
216
|
+
|
|
217
|
+
- fix(fetchContent): correctly handle undefined blocksType in async fetchContent @nileshgulia1 [#7096](https://github.com/plone/volto/issues/7096)
|
|
218
|
+
- Make sure the server-side rendered content is still shown if there is an error while hydrating a page that did not have a server-side error. @davisagli [#7132](https://github.com/plone/volto/issues/7132)
|
|
219
|
+
- Added missing languages in `packages/volto/src/helpers/LanguageMap/LanguageMap.js`. @JeffersonBledsoe [#7146](https://github.com/plone/volto/issues/7146)
|
|
220
|
+
- Add default if no filename is supplied in FileView @kittauri [#7174](https://github.com/plone/volto/issues/7174)
|
|
221
|
+
|
|
222
|
+
### Internal
|
|
223
|
+
|
|
224
|
+
- Remove trailing ` ` space character in a script in `package.json`. @silviubogan [#7166](https://github.com/plone/volto/issues/7166)
|
|
225
|
+
|
|
226
|
+
### Documentation
|
|
227
|
+
|
|
228
|
+
- Updated "Configuring a new block". @ksuess [#3272](https://github.com/plone/volto/issues/3272)
|
|
229
|
+
- Create a custom widget @ksuess, @silviubogan [#7075](https://github.com/plone/volto/issues/7075)
|
|
230
|
+
|
|
231
|
+
## 19.0.0-alpha.2 (2025-05-20)
|
|
232
|
+
|
|
233
|
+
### Feature
|
|
234
|
+
|
|
235
|
+
- Add autosave option.
|
|
236
|
+
It will save a copy of content of the block being edited in local storage.
|
|
237
|
+
If the editor cancels their edits or closes the browser window, then returns to the block, they will be presented with the option to restore or delete their autosaved content.
|
|
238
|
+
It also detects whether the autosaved content is older than the server content, and if so, presents the editor with the option to restore or delete their autosaved content.
|
|
239
|
+
Finally, saving the block will delete its local storage data.
|
|
240
|
+
@tiberiuichim @rexalex @stevepiercy @dobri1408 [#6864](https://github.com/plone/volto/issues/6864)
|
|
241
|
+
- Add `isClearable` prop to `SelectWidget`, allowing configuration of whether the select input can be cleared by the user. @alexandreIFB [#7083](https://github.com/plone/volto/issues/7083)
|
|
242
|
+
|
|
243
|
+
### Bugfix
|
|
244
|
+
|
|
245
|
+
- Use table sorting icons from pastanaga `icons.woff` instead of assuming we have Font Awesome icons. @ichim-david [#6359](https://github.com/plone/volto/issues/6359)
|
|
246
|
+
- The title block should be focused all the subsequent times you edit a content. @ana-oprea [#6880](https://github.com/plone/volto/issues/6880)
|
|
247
|
+
|
|
248
|
+
## 19.0.0-alpha.1 (2025-05-16)
|
|
249
|
+
|
|
250
|
+
### Feature
|
|
251
|
+
|
|
252
|
+
- Volto core has migrated from Jest to Vitest as its unit test runner. @Abhishek-17h [#6326](https://github.com/plone/volto/issues/6326)
|
|
253
|
+
- Refactor the UniversalLink component using typescript.
|
|
254
|
+
Use union types for deciding between href or item.
|
|
255
|
+
Modify tsconfig, include types located in `types` folder, otherwise d.ts files will noch be recognized in .tsx files, e.g. inside components. I need this for the `react-router-hash-link` package, that we use in the UniversalLink component. The specific file is `/types/react-router-hash-link.d.ts`.
|
|
256
|
+
Modify lint-staged.config.js to exclude d.ts files.
|
|
257
|
+
Use newest version of classnames (with types).
|
|
258
|
+
Create tests and negative tests for optimization with React.memo (add render counter for testing this behavior)
|
|
259
|
+
|
|
260
|
+
@tomschall [#6826](https://github.com/plone/volto/issues/6826)
|
|
261
|
+
- `ConditionalLink` in TypeScript. @sneridagh [#6959](https://github.com/plone/volto/issues/6959)
|
|
262
|
+
- Allow `object_list` widget to receive a `schemaName` prop, mapped to an utility. @sneridagh [#7007](https://github.com/plone/volto/issues/7007)
|
|
263
|
+
- Added current evaluated `querystring` as a parameter in expander's `querystring` key when it's a function. @sneridagh [#7012](https://github.com/plone/volto/issues/7012)
|
|
264
|
+
- Move `MaybeWrap` to TypeScript. @sneridagh [#7029](https://github.com/plone/volto/issues/7029)
|
|
265
|
+
- Rename `vitest.config.ts` to `vitest.config.mjs` for allowing it to be loaded from add-ons. @sneridagh [#7035](https://github.com/plone/volto/issues/7035)
|
|
266
|
+
- Added `contained` class if `isContainer` prop is passed (from containers). @sneridagh [#7043](https://github.com/plone/volto/issues/7043)
|
|
267
|
+
- The `Add` component can now optionally receive `initialFormData` from the `CreateTranslation` component. This makes it possible for a custom `CreateTranslation` implementation to fully control the initial translation. @Tishasoumya-02 [#7073](https://github.com/plone/volto/issues/7073)
|
|
268
|
+
|
|
269
|
+
### Bugfix
|
|
270
|
+
|
|
271
|
+
- Fixed broken tests in add-ons in Volto 18.12.0. @Abhishek-17h [#6989](https://github.com/plone/volto/issues/6989)
|
|
272
|
+
- Add support for both Vitest and Jest in `__mocks__` folders of Volto core. Add-on tests using Jest relies on them. @Abhishek-17h [#7000](https://github.com/plone/volto/issues/7000)
|
|
273
|
+
- Added missing dependency for `sgvo`. Fixed `svgo` library loading in `./vite-plugins/svg.js`. @sneridagh [#7035](https://github.com/plone/volto/issues/7035)
|
|
274
|
+
- Rename `./vite-plugins/svg.js` to proper extension `vite-plugins/svg.mjs`. @sneridagh [#7035](https://github.com/plone/volto/issues/7035)
|
|
275
|
+
- Fixed stuck states in the Image Upload Widget by resetting uploading after failed size validation and dragging after image deletion or drag events, ensuring proper functionality and user feedback. [#7045](https://github.com/plone/volto/issues/7045)
|
|
276
|
+
- Improve typings in ConditionalLink component, add TS tests to catch the bad typings. @sneridagh [#7057](https://github.com/plone/volto/issues/7057)
|
|
277
|
+
|
|
278
|
+
### Internal
|
|
279
|
+
|
|
280
|
+
- Fixed types of #6826 in build:types. @sneridagh
|
|
281
|
+
|
|
282
|
+
### Documentation
|
|
283
|
+
|
|
284
|
+
- Pin plone-sphinx-theme to prepare for PLIP 4097. See https://github.com/plone/Products.CMFPlone/issues/4097. @stevepiercy [#7015](https://github.com/plone/volto/issues/7015)
|
|
285
|
+
- Corrected Redux-related docs.
|
|
286
|
+
Better word wrapping in Redux-related docs.
|
|
287
|
+
Added link to Redux development add-on for Firefox.
|
|
288
|
+
@silviubogan [#7023](https://github.com/plone/volto/issues/7023)
|
|
289
|
+
- Updated documentation code example from Jest to Vitest in the "Bundle size optimization" chapter. @Abhishek-17h [#7024](https://github.com/plone/volto/issues/7024)
|
|
290
|
+
- Add version added admonition to Upgrade Guide for migrating grid blocks, and link from Upgrade Guide to Grid Block documentation. @ionlizarazu [#7027](https://github.com/plone/volto/issues/7027)
|
|
291
|
+
|
|
20
292
|
## 19.0.0-alpha.0 (2025-04-12)
|
|
21
293
|
|
|
22
294
|
### Breaking
|
|
@@ -67,7 +339,7 @@ myst:
|
|
|
67
339
|
- Add Russian translation in Volto. @toropok [#6874](https://github.com/plone/volto/issues/6874)
|
|
68
340
|
- Enhance the `ImageInput` component to only accept image files. [@jnptk] [#6926](https://github.com/plone/volto/issues/6926)
|
|
69
341
|
- Fix translations default of ContentsDeleteModal: 'linkintegrity: delete' -> 'delete' if no link to break. @ksuess [#6964](https://github.com/plone/volto/issues/6964)
|
|
70
|
-
- Use Plone 6.1.1 final. @sneridagh
|
|
342
|
+
- Use Plone 6.1.1 final. @sneridagh
|
|
71
343
|
|
|
72
344
|
### Bugfix
|
|
73
345
|
|
|
@@ -1946,7 +2218,7 @@ myst:
|
|
|
1946
2218
|
- (FIX): put padding so the text is not clipped #5305 @dobri1408 [#5305](https://github.com/plone/volto/issues/5305)
|
|
1947
2219
|
- Fix compare translations view @sneridagh [#5327](https://github.com/plone/volto/issues/5327)
|
|
1948
2220
|
- Fix DatetimeWidget on FF, the button default if no type is set is sending the form. @sneridagh
|
|
1949
|
-
See https://developer.mozilla.org/en-US/docs/Web/HTML/
|
|
2221
|
+
See https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/button#formmethod [#5343](https://github.com/plone/volto/issues/5343)
|
|
1950
2222
|
|
|
1951
2223
|
### Internal
|
|
1952
2224
|
|
package/README.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# Volto - the default Plone 6 frontend
|
|
2
2
|
|
|
3
|
-
<img align="right" width="300" alt="Volto logo png" src="
|
|
4
|
-
<img align="right" width="300" alt="Volto logo png" src="
|
|
3
|
+
<img align="right" width="300" alt="Volto logo png" src="https://raw.githubusercontent.com/plone/volto/HEAD/logos/VoltoLogoEra2.png#gh-light-mode-only" />
|
|
4
|
+
<img align="right" width="300" alt="Volto logo png" src="https://raw.githubusercontent.com/plone/volto/HEAD/logos/VoltoLogoEra2-dark-mode.png#gh-dark-mode-only" />
|
|
5
5
|
|
|
6
6
|
[](https://www.npmjs.com/package/@plone/volto)
|
|
7
7
|
[](https://github.com/plone/volto/actions/workflows/unit.yml)
|
|
@@ -138,7 +138,6 @@ To ensure your website gets the greatest exposure, add it both to [Awesome Volto
|
|
|
138
138
|
- [Debabarreneko mankomunitatea](https://debabarrena.eus/eu) (Website of the Commonwealth of Debabarrena, community of municipalities to centralize waste handling services, developed by [CodeSyntax](https://www.codesyntax.com/en), 2022)
|
|
139
139
|
- [Debako Udala / Ayuntamiento de Deba](https://www.deba.eus/eu) (Website of the municipality of Deba, developed by [CodeSyntax](https://www.codesyntax.com/en), 2022)
|
|
140
140
|
- [European Environment Agency](https://www.eea.europa.eu/en) (Website of the European Environment Agency. Developed by [Eau de Web](https://eaudeweb.ro), 2023)
|
|
141
|
-
- [Energy Climate Union portal for Europe](https://climate-energy.eea.europa.eu/) (Thematic website focusing on European strides towards mitigating climate change, developed by [Eau de Web](https://eaudeweb.ro/), 2020)
|
|
142
141
|
- Excellence at Humboldt-Universität zu Berlin (Website for the excellence initiative of the [Humboldt University Berlin](https://www.hu-berlin.de/de), developed by [kitconcept GmbH](https://kitconcept.com/en), 2019)
|
|
143
142
|
- [Film Basque Country](https://www.filmbasquecountry.eus/en) (Website to attract, guide, and support international productions, making it easier for them to film in the Basque Country, developed by [CodeSyntax](https://www.codesyntax.com/en), 2025)
|
|
144
143
|
- [Forest Information System for Europe](https://forest.eea.europa.eu) (Thematic website focusing on European forests, developed by [Eau de Web](https://eaudeweb.ro/), 2019)
|
|
@@ -149,11 +148,11 @@ To ensure your website gets the greatest exposure, add it both to [Awesome Volto
|
|
|
149
148
|
- [Humboldt Labor](https://www.humboldtforum.org/de/programm/dauerangebot/ausstellung/nach-der-natur-14144/) (The Humboldt Lab is a website where the Humboldt University Berlin presents its latest research projects and findings. Developed by [WLDX](https://wldx.de/) and [kitconcept GmbH](https://kitconcept.com/en), 2020)
|
|
150
149
|
- [ILPO](https://ilpo.jyu.fi/) (the registration portal of continuous learning at the University of Jyväskylä. Developed by University of Jyväskylä, 2022)
|
|
151
150
|
- [Industrial Emissions portal for Europe](https://industry.eea.europa.eu) (Thematic website focusing on European industrial emissions, developed by [Eau de Web](https://eaudeweb.ro/), 2020)
|
|
151
|
+
- [Interpretare.ro](https://www.interpretare.ro) (Romanian medical imaging interpretation service allowing patients to submit MRI, CT, and other diagnostic imaging for professional evaluation by medical specialists, 2022)
|
|
152
152
|
- [iTlent - Basque Institute of Talent in VET](https://www.itlent.eus/en) (developed by [CodeSyntax](https://www.codesyntax.com/en), 2024)
|
|
153
153
|
- [Jobfamilie MEDICE](https://jobfamilie.medice.de/de) (Carrer website for MEDICE Arzneimittel Pütter GmbH & Co. KG), developed by [Werkbank GmbH](https://werkbank.de/), 2020)
|
|
154
154
|
- [Lanku](https://www.lanku.eus) (Website for Lanku Kultur Zerbitzuak, a company offering cultural services and improvised Basque verse singing sessions across the Basque Country, developed by [CodeSyntax](https://www.codesyntax.com/en), 2023)
|
|
155
155
|
- [Leibniz Institute for Science and Mathematics Education (IPN)](https://www.leibniz-ipn.de/de) (Website of the IPN, a research institute dedicated to issues related to learning and teaching of science, mathematics and computer science in and outside of schools, developed by [Starzel](https://www.starzel.de), 2023)
|
|
156
|
-
- [MEDICE Webseite](https://medice.com/de-de) (Website for MEDICE Arzneimittel Pütter GmbH & Co. KG), developed by [Werkbank GmbH](https://werkbank.de/), 2020)
|
|
157
156
|
- [Nuova Voce Ecologista](https://nuovavoceecologista.it) (Website of Nuova Voce Ecologista, an Italian green Party, 2020)
|
|
158
157
|
- [Osaka University](https://www.osaka-u.ac.jp/en) (Osaka University is considered one of the most prestigious universities in Japan. Developed by [CMScom](https://www.cmscom.jp), 2021)
|
|
159
158
|
- [ResOU](https://resou.osaka-u.ac.jp/ja) (ResOU is introducing official researched releases by the University of Osaka, Japan. Developed by [CMScom](https://www.cmscom.jp), 2020)
|
|
@@ -180,10 +179,8 @@ You should check the dependencies in their `package.json` for more details.
|
|
|
180
179
|
- [European Industrial Emissions Portal](https://github.com/eea/industry-frontend ) - Volto project for [European Industrial Emissions Portal website](https://industry.eea.europa.eu)
|
|
181
180
|
- [Biodiversity Information System for Europe](https://github.com/eea/bise-frontend) - Volto project for [Biodiversity Information System for Europe website](https://biodiversity.europa.eu)
|
|
182
181
|
- [EEA Main Website frontend](https://github.com/eea/eea-website-frontend) - Plone 6 Volto frontend for [European Environment Agency](https://www.eea.europa.eu/en)
|
|
183
|
-
- [Climate and energy in the EU](https://github.com/eea/climate-energy-frontend) - Volto project for [Climate and energy in the EU website](https://climate-energy.eea.europa.eu)
|
|
184
182
|
- [volto-bise](https://github.com/eea/volto-bise) - A Volto project packaged as an addon. It provides Theming using a razzle.extend.js provided alias.
|
|
185
183
|
- [design-volto-theme](https://github.com/RedTurtle/design-volto-theme) Volto theme for Italian Public Administration
|
|
186
|
-
- [2021.ploneconf.org](https://github.com/plone/ploneconf.org/tree/2021) - Volto project for [Plone Conference 2021 site](https://2021.ploneconf.org)
|
|
187
184
|
- [2022.ploneconf.org](https://github.com/plone/ploneconf.org/tree/2022) - Volto project for [Plone Conference 2022 site](https://2022.ploneconf.org)
|
|
188
185
|
- [2023.ploneconf.org](https://github.com/plone/ploneconf.org/tree/2023) - Volto project for [Plone Conference 2023 site](https://2023.ploneconf.org)
|
|
189
186
|
- [plone.org.br](https://github.com/plonegovbr/plone.org.br) - Volto project for the [Brazilian Plone Community](https://plone.org.br)
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
http:
|
|
2
|
+
routers:
|
|
3
|
+
frontend:
|
|
4
|
+
rule: "Host(`localhost`) && PathPrefix(`/foo`)"
|
|
5
|
+
service: frontend
|
|
6
|
+
backend:
|
|
7
|
+
rule: "Host(`localhost`) && PathPrefix(`/foo/++api++`)"
|
|
8
|
+
service: backend
|
|
9
|
+
middlewares:
|
|
10
|
+
- backend
|
|
11
|
+
|
|
12
|
+
middlewares:
|
|
13
|
+
backend:
|
|
14
|
+
replacePathRegex:
|
|
15
|
+
regex: "^/foo/\\+\\+api\\+\\+($|/.*)"
|
|
16
|
+
replacement: "/VirtualHostBase/http/localhost/plone/++api++/VirtualHostRoot/_vh_foo$1"
|
|
17
|
+
|
|
18
|
+
services:
|
|
19
|
+
frontend:
|
|
20
|
+
loadBalancer:
|
|
21
|
+
servers:
|
|
22
|
+
- url: "http://host.docker.internal:3000"
|
|
23
|
+
backend:
|
|
24
|
+
loadBalancer:
|
|
25
|
+
servers:
|
|
26
|
+
- url: "http://host.docker.internal:55001"
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
version: "3.7"
|
|
2
|
+
|
|
3
|
+
services:
|
|
4
|
+
|
|
5
|
+
proxy:
|
|
6
|
+
image: traefik:v2.8
|
|
7
|
+
command:
|
|
8
|
+
- "--api.insecure=true"
|
|
9
|
+
- "--providers.docker=true"
|
|
10
|
+
# - "--providers.docker.exposedbydefault=false"
|
|
11
|
+
- "--providers.file=true"
|
|
12
|
+
- "--providers.file.filename=/etc/traefik/rules.yml"
|
|
13
|
+
- "--entrypoints.web.address=:80"
|
|
14
|
+
- "--api.insecure=true"
|
|
15
|
+
# - "--accesslog=true"
|
|
16
|
+
# - "--log.level=DEBUG"
|
|
17
|
+
ports:
|
|
18
|
+
- 80:80
|
|
19
|
+
- "8888:8080"
|
|
20
|
+
volumes:
|
|
21
|
+
- /var/run/docker.sock:/var/run/docker.sock
|
|
22
|
+
- ./prefixed-rules.yml:/etc/traefik/rules.yml
|
|
23
|
+
extra_hosts:
|
|
24
|
+
- host.docker.internal:host-gateway
|
|
@@ -99,6 +99,7 @@ Cypress.Commands.add(
|
|
|
99
99
|
transition = '',
|
|
100
100
|
bodyModifier = (body) => body,
|
|
101
101
|
image = false,
|
|
102
|
+
preview_image_link = null,
|
|
102
103
|
}) => {
|
|
103
104
|
let api_url, auth;
|
|
104
105
|
if (Cypress.env('API') === 'guillotina') {
|
|
@@ -128,6 +129,10 @@ Cypress.Commands.add(
|
|
|
128
129
|
},
|
|
129
130
|
};
|
|
130
131
|
|
|
132
|
+
if (preview_image_link) {
|
|
133
|
+
defaultParams.body.preview_image_link = preview_image_link;
|
|
134
|
+
}
|
|
135
|
+
|
|
131
136
|
if (contentType === 'File') {
|
|
132
137
|
const params = {
|
|
133
138
|
...defaultParams,
|
|
@@ -828,23 +833,24 @@ function shouldVerifyContent(type) {
|
|
|
828
833
|
}
|
|
829
834
|
|
|
830
835
|
Cypress.Commands.add('getSlateEditorAndType', (type) => {
|
|
831
|
-
|
|
836
|
+
cy.getSlate().click().trigger('focus').type(type);
|
|
832
837
|
|
|
833
838
|
if (shouldVerifyContent(type)) {
|
|
834
|
-
return
|
|
839
|
+
return cy.getSlate().should('contain', type);
|
|
835
840
|
}
|
|
836
841
|
|
|
837
|
-
return
|
|
842
|
+
return cy.getSlate();
|
|
838
843
|
});
|
|
839
844
|
|
|
840
845
|
Cypress.Commands.add('getSlateEditorSelectorAndType', (selector, type) => {
|
|
841
|
-
|
|
846
|
+
cy.wait(100);
|
|
847
|
+
cy.getSlateSelector(selector).click().trigger('focus').type(type);
|
|
842
848
|
|
|
843
849
|
if (shouldVerifyContent(type)) {
|
|
844
|
-
return
|
|
850
|
+
return cy.getSlateSelector(selector).should('contain', type);
|
|
845
851
|
}
|
|
846
852
|
|
|
847
|
-
return
|
|
853
|
+
return cy.getSlateSelector(selector);
|
|
848
854
|
});
|
|
849
855
|
|
|
850
856
|
Cypress.Commands.add('setSlateCursor', (subject, query, endQuery) => {
|