@plone/volto 19.0.0-alpha.9 → 19.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (535) hide show
  1. package/.eslintignore +2 -0
  2. package/.eslintrc +26 -15
  3. package/AGENTS.md +47 -0
  4. package/CHANGELOG.md +543 -12
  5. package/README.md +22 -19
  6. package/babel.js +1 -9
  7. package/cypress/support/guillotina.js +1 -0
  8. package/cypress.config.js +1 -0
  9. package/global-test-setup.js +1 -2
  10. package/locales/af/LC_MESSAGES/volto.po +5516 -0
  11. package/locales/af.json +1 -1
  12. package/locales/ar/LC_MESSAGES/volto.po +5516 -0
  13. package/locales/ar.json +1 -1
  14. package/locales/bg/LC_MESSAGES/volto.po +5516 -0
  15. package/locales/bg.json +1 -1
  16. package/locales/bn/LC_MESSAGES/volto.po +5516 -0
  17. package/locales/bn.json +1 -1
  18. package/locales/ca/LC_MESSAGES/volto.po +551 -359
  19. package/locales/ca.json +1 -1
  20. package/locales/cs/LC_MESSAGES/volto.po +5516 -0
  21. package/locales/cs.json +1 -1
  22. package/locales/cy/LC_MESSAGES/volto.po +5516 -0
  23. package/locales/cy.json +1 -1
  24. package/locales/da/LC_MESSAGES/volto.po +5516 -0
  25. package/locales/da.json +1 -1
  26. package/locales/de/LC_MESSAGES/volto.po +222 -29
  27. package/locales/de.json +1 -1
  28. package/locales/el/LC_MESSAGES/volto.po +5516 -0
  29. package/locales/el.json +1 -1
  30. package/locales/en/LC_MESSAGES/volto.po +211 -15
  31. package/locales/en.json +1 -1
  32. package/locales/en_AU/LC_MESSAGES/volto.po +5516 -0
  33. package/locales/en_AU.json +1 -1
  34. package/locales/en_GB/LC_MESSAGES/volto.po +5516 -0
  35. package/locales/en_GB.json +1 -1
  36. package/locales/eo/LC_MESSAGES/volto.po +5516 -0
  37. package/locales/eo.json +1 -1
  38. package/locales/es/LC_MESSAGES/volto.po +336 -145
  39. package/locales/es.json +1 -1
  40. package/locales/et/LC_MESSAGES/volto.po +5516 -0
  41. package/locales/et.json +1 -1
  42. package/locales/eu/LC_MESSAGES/volto.po +413 -222
  43. package/locales/eu.json +1 -1
  44. package/locales/fa/LC_MESSAGES/volto.po +5516 -0
  45. package/locales/fa.json +1 -1
  46. package/locales/fi/LC_MESSAGES/volto.po +212 -20
  47. package/locales/fi.json +1 -1
  48. package/locales/fr/LC_MESSAGES/volto.po +369 -178
  49. package/locales/fr.json +1 -1
  50. package/locales/fu/LC_MESSAGES/volto.po +5516 -0
  51. package/locales/fu.json +1 -1
  52. package/locales/gl/LC_MESSAGES/volto.po +5516 -0
  53. package/locales/gl.json +1 -1
  54. package/locales/he/LC_MESSAGES/volto.po +5516 -0
  55. package/locales/he.json +1 -1
  56. package/locales/hi/LC_MESSAGES/volto.po +220 -23
  57. package/locales/hi.json +1 -1
  58. package/locales/hr/LC_MESSAGES/volto.po +5516 -0
  59. package/locales/hr.json +1 -1
  60. package/locales/hu/LC_MESSAGES/volto.po +5516 -0
  61. package/locales/hu.json +1 -1
  62. package/locales/hy/LC_MESSAGES/volto.po +5516 -0
  63. package/locales/hy.json +1 -1
  64. package/locales/id/LC_MESSAGES/volto.po +5516 -0
  65. package/locales/id.json +1 -1
  66. package/locales/it/LC_MESSAGES/volto.po +236 -39
  67. package/locales/it.json +1 -1
  68. package/locales/ja/LC_MESSAGES/volto.po +254 -61
  69. package/locales/ja.json +1 -1
  70. package/locales/ka/LC_MESSAGES/volto.po +5516 -0
  71. package/locales/ka.json +1 -1
  72. package/locales/kn/LC_MESSAGES/volto.po +5516 -0
  73. package/locales/kn.json +1 -1
  74. package/locales/ko/LC_MESSAGES/volto.po +5516 -0
  75. package/locales/ko.json +1 -1
  76. package/locales/lt/LC_MESSAGES/volto.po +5516 -0
  77. package/locales/lt.json +1 -1
  78. package/locales/lv/LC_MESSAGES/volto.po +5516 -0
  79. package/locales/lv.json +1 -1
  80. package/locales/mi/LC_MESSAGES/volto.po +5516 -0
  81. package/locales/mi.json +1 -1
  82. package/locales/mk/LC_MESSAGES/volto.po +5516 -0
  83. package/locales/mk.json +1 -1
  84. package/locales/my/LC_MESSAGES/volto.po +5516 -0
  85. package/locales/my.json +1 -1
  86. package/locales/nb_NO/LC_MESSAGES/volto.po +5516 -0
  87. package/locales/nb_NO.json +1 -1
  88. package/locales/nl/LC_MESSAGES/volto.po +264 -71
  89. package/locales/nl.json +1 -1
  90. package/locales/nn/LC_MESSAGES/volto.po +5516 -0
  91. package/locales/nn.json +1 -1
  92. package/locales/pl/LC_MESSAGES/volto.po +5516 -0
  93. package/locales/pl.json +1 -1
  94. package/locales/pt/LC_MESSAGES/volto.po +862 -670
  95. package/locales/pt.json +1 -1
  96. package/locales/pt_BR/LC_MESSAGES/volto.po +216 -25
  97. package/locales/pt_BR.json +1 -1
  98. package/locales/rm/LC_MESSAGES/volto.po +5516 -0
  99. package/locales/rm.json +1 -1
  100. package/locales/ro/LC_MESSAGES/volto.po +248 -57
  101. package/locales/ro.json +1 -1
  102. package/locales/ru/LC_MESSAGES/volto.po +211 -19
  103. package/locales/ru.json +1 -1
  104. package/locales/sk/LC_MESSAGES/volto.po +5516 -0
  105. package/locales/sk.json +1 -1
  106. package/locales/sl/LC_MESSAGES/volto.po +5516 -0
  107. package/locales/sl.json +1 -1
  108. package/locales/sm/LC_MESSAGES/volto.po +5516 -0
  109. package/locales/sm.json +1 -1
  110. package/locales/sq/LC_MESSAGES/volto.po +5516 -0
  111. package/locales/sq.json +1 -1
  112. package/locales/sr/LC_MESSAGES/volto.po +5516 -0
  113. package/locales/sr.json +1 -1
  114. package/locales/sr@cyrl/LC_MESSAGES/volto.po +5516 -0
  115. package/locales/sr@cyrl.json +1 -1
  116. package/locales/sr@latn/LC_MESSAGES/volto.po +5516 -0
  117. package/locales/sr@latn.json +1 -1
  118. package/locales/sv/LC_MESSAGES/volto.po +5516 -0
  119. package/locales/sv.json +1 -1
  120. package/locales/ta/LC_MESSAGES/volto.po +5516 -0
  121. package/locales/ta.json +1 -1
  122. package/locales/te/LC_MESSAGES/volto.po +5516 -0
  123. package/locales/te.json +1 -1
  124. package/locales/th/LC_MESSAGES/volto.po +5516 -0
  125. package/locales/th.json +1 -1
  126. package/locales/to/LC_MESSAGES/volto.po +5516 -0
  127. package/locales/to.json +1 -1
  128. package/locales/tr/LC_MESSAGES/volto.po +5516 -0
  129. package/locales/tr.json +1 -1
  130. package/locales/uk/LC_MESSAGES/volto.po +5516 -0
  131. package/locales/uk.json +1 -1
  132. package/locales/vi/LC_MESSAGES/volto.po +5516 -0
  133. package/locales/vi.json +1 -1
  134. package/locales/volto.pot +205 -14
  135. package/locales/zh_CN/LC_MESSAGES/volto.po +211 -19
  136. package/locales/zh_CN.json +1 -1
  137. package/locales/zh_Hant/LC_MESSAGES/volto.po +5516 -0
  138. package/locales/zh_Hant.json +1 -1
  139. package/locales/zh_Hant_HK/LC_MESSAGES/volto.po +5516 -0
  140. package/locales/zh_Hant_HK.json +1 -1
  141. package/package.json +71 -149
  142. package/razzle.config.js +16 -25
  143. package/src/actions/blockTypes/blockTypes.ts +24 -0
  144. package/src/actions/controlpanels/controlpanels.js +7 -12
  145. package/src/actions/controlpanels/controlpanels.test.js +2 -3
  146. package/src/components/manage/Actions/Actions.test.jsx +1 -5
  147. package/src/components/manage/Add/Add.jsx +15 -10
  148. package/src/components/manage/Add/Add.test.jsx +10 -3
  149. package/src/components/manage/Aliases/Aliases.test.jsx +5 -2
  150. package/src/components/manage/BlockChooser/BlockChooser.jsx +8 -10
  151. package/src/components/manage/Blocks/Block/BlocksForm.jsx +10 -7
  152. package/src/components/manage/Blocks/Block/BlocksForm.test.jsx +3 -14
  153. package/src/components/manage/Blocks/Block/Edit.jsx +19 -10
  154. package/src/components/manage/Blocks/Block/Order/Item.jsx +33 -14
  155. package/src/components/manage/Blocks/Block/Order/Item.test.jsx +90 -0
  156. package/src/components/manage/Blocks/Block/Order/Order.jsx +116 -67
  157. package/src/components/manage/Blocks/Block/Order/utilities.js +28 -11
  158. package/src/components/manage/Blocks/Block/Settings.test.jsx +1 -5
  159. package/src/components/manage/Blocks/Grid/View.jsx +14 -11
  160. package/src/components/manage/Blocks/Grid/context.js +3 -0
  161. package/src/components/manage/Blocks/HTML/Edit.test.jsx +1 -5
  162. package/src/components/manage/Blocks/Image/ImageSidebar.test.jsx +2 -5
  163. package/src/components/manage/Blocks/LeadImage/LeadImageSidebar.test.jsx +2 -5
  164. package/src/components/manage/Blocks/Listing/Edit.jsx +1 -0
  165. package/src/components/manage/Blocks/Listing/ListingBody.jsx +4 -0
  166. package/src/components/manage/Blocks/Maps/Body.jsx +37 -0
  167. package/src/components/manage/Blocks/Maps/Edit.jsx +6 -21
  168. package/src/components/manage/Blocks/Maps/MapsSidebar.test.jsx +1 -5
  169. package/src/components/manage/Blocks/Maps/View.jsx +16 -25
  170. package/src/components/manage/Blocks/Search/components/DateRangeFacet.test.jsx +1 -6
  171. package/src/components/manage/Blocks/Search/components/SelectFacet.jsx +22 -1
  172. package/src/components/manage/Blocks/Search/components/SelectFacet.test.jsx +1 -6
  173. package/src/components/manage/Blocks/Search/components/SortOn.jsx +8 -2
  174. package/src/components/manage/Blocks/Search/components/ToggleFacet.jsx +14 -0
  175. package/src/components/manage/Blocks/Teaser/DefaultBody.jsx +10 -2
  176. package/src/components/manage/Blocks/Teaser/View.jsx +0 -1
  177. package/src/components/manage/Blocks/Teaser/utils.js +13 -0
  178. package/src/components/manage/Blocks/Teaser/utils.test.js +34 -0
  179. package/src/components/manage/Blocks/Title/Edit.jsx +5 -0
  180. package/src/components/manage/Blocks/Video/Body.jsx +69 -43
  181. package/src/components/manage/Blocks/Video/Body.test.jsx +122 -5
  182. package/src/components/manage/Blocks/Video/Edit.jsx +20 -2
  183. package/src/components/manage/Blocks/Video/Edit.test.jsx +6 -0
  184. package/src/components/manage/Blocks/Video/VideoSidebar.test.jsx +1 -5
  185. package/src/components/manage/Blocks/Video/View.jsx +1 -0
  186. package/src/components/manage/Blocks/Video/View.test.jsx +29 -15
  187. package/src/components/manage/Blocks/Video/schema.js +14 -1
  188. package/src/components/manage/Contents/Contents.jsx +854 -747
  189. package/src/components/manage/Contents/Contents.test.jsx +9 -10
  190. package/src/components/manage/Contents/ContentsBreadcrumbs.jsx +4 -3
  191. package/src/components/manage/Contents/ContentsIndexHeader.jsx +47 -81
  192. package/src/components/manage/Contents/ContentsIndexHeader.test.jsx +10 -3
  193. package/src/components/manage/Contents/ContentsItem.jsx +226 -278
  194. package/src/components/manage/Contents/ContentsItem.test.jsx +10 -6
  195. package/src/components/manage/Contents/ContentsPropertiesModal.test.jsx +1 -5
  196. package/src/components/manage/Contents/ContentsRenameModal.test.jsx +1 -5
  197. package/src/components/manage/Contents/ContentsTagsModal.test.jsx +1 -5
  198. package/src/components/manage/Contents/ContentsWorkflowModal.test.jsx +1 -5
  199. package/src/components/manage/Contents/DropZoneContent.jsx +339 -0
  200. package/src/components/manage/Contents/__mocks__/index.tsx +2 -18
  201. package/src/components/manage/Controlpanels/AddonsControlpanel.jsx +7 -0
  202. package/src/components/manage/Controlpanels/AddonsControlpanel.test.jsx +7 -4
  203. package/src/components/manage/Controlpanels/Aliases.test.jsx +8 -9
  204. package/src/components/manage/Controlpanels/BlockType.tsx +165 -0
  205. package/src/components/manage/Controlpanels/BlockTypes.tsx +145 -0
  206. package/src/components/manage/Controlpanels/ContentType.jsx +131 -222
  207. package/src/components/manage/Controlpanels/ContentType.test.jsx +13 -14
  208. package/src/components/manage/Controlpanels/ContentTypeLayout.test.jsx +12 -9
  209. package/src/components/manage/Controlpanels/ContentTypeSchema.jsx +1 -1
  210. package/src/components/manage/Controlpanels/ContentTypes.jsx +9 -2
  211. package/src/components/manage/Controlpanels/ContentTypes.test.jsx +7 -4
  212. package/src/components/manage/Controlpanels/Controlpanel.jsx +122 -218
  213. package/src/components/manage/Controlpanels/Controlpanel.test.jsx +8 -33
  214. package/src/components/manage/Controlpanels/Controlpanels.jsx +28 -5
  215. package/src/components/manage/Controlpanels/Controlpanels.test.jsx +23 -8
  216. package/src/components/manage/Controlpanels/DatabaseInformation.jsx +9 -0
  217. package/src/components/manage/Controlpanels/Groups/GroupsControlpanel.test.jsx +7 -4
  218. package/src/components/manage/Controlpanels/ModerateComments.jsx +8 -0
  219. package/src/components/manage/Controlpanels/ModerateComments.test.jsx +7 -4
  220. package/src/components/manage/Controlpanels/Relations/Relations.jsx +1 -1
  221. package/src/components/manage/Controlpanels/Rules/AddRule.test.jsx +8 -9
  222. package/src/components/manage/Controlpanels/Rules/ConfigureRule.test.jsx +9 -6
  223. package/src/components/manage/Controlpanels/Rules/EditRule.test.jsx +8 -9
  224. package/src/components/manage/Controlpanels/Rules/Rules.test.jsx +7 -4
  225. package/src/components/manage/Controlpanels/UndoControlpanel.test.jsx +8 -9
  226. package/src/components/manage/Controlpanels/Users/UserGroupMembershipControlPanel.test.jsx +10 -4
  227. package/src/components/manage/Controlpanels/Users/UsersControlpanel.jsx +628 -631
  228. package/src/components/manage/Controlpanels/Users/UsersControlpanel.ssr.test.jsx +624 -0
  229. package/src/components/manage/Controlpanels/Users/UsersControlpanel.test.jsx +70 -10
  230. package/src/components/manage/Controlpanels/VersionOverview.jsx +19 -6
  231. package/src/components/manage/Delete/Delete.test.jsx +13 -8
  232. package/src/components/manage/Diff/Diff.jsx +201 -298
  233. package/src/components/manage/Diff/Diff.test.jsx +8 -10
  234. package/src/components/manage/Diff/DiffField.test.jsx +1 -6
  235. package/src/components/manage/Display/Display.test.jsx +2 -11
  236. package/src/components/manage/Edit/Edit.test.jsx +12 -11
  237. package/src/components/manage/Form/BlockDataForm.test.jsx +1 -5
  238. package/src/components/manage/Form/Field.jsx +1 -69
  239. package/src/components/manage/Form/Form.jsx +17 -4
  240. package/src/components/manage/Form/Form.test.jsx +130 -5
  241. package/src/components/manage/Form/InlineForm.test.jsx +1 -5
  242. package/src/components/manage/Form/ModalForm.jsx +175 -97
  243. package/src/components/manage/Form/ModalForm.test.jsx +27 -5
  244. package/src/components/manage/Form/__mocks__/index.tsx +9 -27
  245. package/src/components/manage/History/History.jsx +209 -300
  246. package/src/components/manage/History/History.test.jsx +20 -9
  247. package/src/components/manage/LinksToItem/LinksToItem.test.jsx +7 -4
  248. package/src/components/manage/Multilingual/CompareLanguages.jsx +6 -6
  249. package/src/components/manage/Multilingual/CreateTranslation.jsx +16 -13
  250. package/src/components/manage/Multilingual/ManageTranslations.jsx +5 -5
  251. package/src/components/manage/Multilingual/ManageTranslations.test.jsx +15 -12
  252. package/src/components/manage/Multilingual/TranslationObject.jsx +11 -8
  253. package/src/components/manage/Preferences/ChangePassword.test.jsx +8 -9
  254. package/src/components/manage/Preferences/PersonalPreferences.jsx +8 -5
  255. package/src/components/manage/Preferences/PersonalPreferences.test.jsx +10 -23
  256. package/src/components/manage/Rules/Rules.test.jsx +5 -2
  257. package/src/components/manage/Sharing/Sharing.jsx +21 -15
  258. package/src/components/manage/Sharing/Sharing.test.jsx +9 -6
  259. package/src/components/manage/Sidebar/ObjectBrowser.jsx +10 -0
  260. package/src/components/manage/Sidebar/ObjectBrowserBody.jsx +25 -5
  261. package/src/components/manage/Sidebar/ObjectBrowserBody.test.jsx +52 -0
  262. package/src/components/manage/Sidebar/Sidebar.jsx +2 -0
  263. package/src/components/manage/Sidebar/Sidebar.test.jsx +4 -1
  264. package/src/components/manage/Sidebar/SidebarPortal.test.tsx +42 -0
  265. package/src/components/manage/Sidebar/SidebarPortal.tsx +48 -0
  266. package/src/components/manage/TemplateChooser/TemplateChooser.test.jsx +1 -0
  267. package/src/components/manage/Toast/Toast.jsx +32 -0
  268. package/src/components/manage/Toast/Toast.test.jsx +9 -5
  269. package/src/components/manage/Toolbar/PersonalTools.test.jsx +15 -0
  270. package/src/components/manage/Toolbar/Toolbar.jsx +109 -12
  271. package/src/components/manage/Toolbar/Toolbar.test.jsx +15 -10
  272. package/src/components/manage/Toolbar/Types.crash.test.jsx +48 -0
  273. package/src/components/manage/Toolbar/Types.jsx +6 -4
  274. package/src/components/manage/UniversalLink/UniversalLink.test.jsx +16 -0
  275. package/src/components/manage/UniversalLink/UniversalLink.tsx +1 -0
  276. package/src/components/manage/Widgets/AlignWidget.stories.jsx +9 -0
  277. package/src/components/manage/Widgets/AlignWidget.test.tsx +95 -0
  278. package/src/components/manage/Widgets/{AlignWidget.jsx → AlignWidget.tsx} +23 -7
  279. package/src/components/manage/Widgets/ArrayWidget.jsx +111 -88
  280. package/src/components/manage/Widgets/ArrayWidget.test.jsx +1 -12
  281. package/src/components/manage/Widgets/BlockAlignment.stories.tsx +104 -0
  282. package/src/components/manage/Widgets/BlockAlignment.test.tsx +104 -0
  283. package/src/components/manage/Widgets/BlockAlignment.tsx +88 -0
  284. package/src/components/manage/Widgets/BlockWidth.stories.tsx +69 -0
  285. package/src/components/manage/Widgets/BlockWidth.test.tsx +62 -0
  286. package/src/components/manage/Widgets/BlockWidth.tsx +101 -0
  287. package/src/components/manage/Widgets/ButtonsWidget.stories.jsx +61 -0
  288. package/src/components/manage/Widgets/ButtonsWidget.test.tsx +138 -0
  289. package/src/components/manage/Widgets/ButtonsWidget.tsx +195 -0
  290. package/src/components/manage/Widgets/CheckboxGroupWidget.test.jsx +1 -6
  291. package/src/components/manage/Widgets/DatetimeWidget.jsx +98 -54
  292. package/src/components/manage/Widgets/DatetimeWidget.test.jsx +56 -6
  293. package/src/components/manage/Widgets/FileWidget.jsx +7 -0
  294. package/src/components/manage/Widgets/FormFieldWrapper.jsx +143 -163
  295. package/src/components/manage/Widgets/ImageWidget.jsx +18 -5
  296. package/src/components/manage/Widgets/ObjectBrowserWidget.jsx +6 -0
  297. package/src/components/manage/Widgets/ObjectListWidget.test.jsx +2 -11
  298. package/src/components/manage/Widgets/ObjectWidget.test.jsx +1 -5
  299. package/src/components/manage/Widgets/QueryWidget.jsx +137 -9
  300. package/src/components/manage/Widgets/QuerystringWidget.test.jsx +3 -1
  301. package/src/components/manage/Widgets/RadioGroupWidget.test.jsx +1 -6
  302. package/src/components/manage/Widgets/RecurrenceWidget/RecurrenceWidget.test.jsx +1 -6
  303. package/src/components/manage/Widgets/RecurrenceWidget/WeekdayOfTheMonthIndexField.jsx +56 -50
  304. package/src/components/manage/Widgets/RegistryImageWidget.jsx +1 -1
  305. package/src/components/manage/Widgets/RegistryImageWidget.test.jsx +1 -0
  306. package/src/components/manage/Widgets/SchemaWidget.test.jsx +1 -6
  307. package/src/components/manage/Widgets/SchemaWidgetFieldset.test.jsx +1 -6
  308. package/src/components/manage/Widgets/SelectAutoComplete.test.jsx +1 -6
  309. package/src/components/manage/Widgets/SelectStyling.jsx +52 -20
  310. package/src/components/manage/Widgets/SelectWidget.test.jsx +1 -6
  311. package/src/components/manage/Widgets/Size.stories.tsx +69 -0
  312. package/src/components/manage/Widgets/Size.test.tsx +59 -0
  313. package/src/components/manage/Widgets/Size.tsx +78 -0
  314. package/src/components/manage/Widgets/TextWidget.jsx +4 -0
  315. package/src/components/manage/Widgets/TimeWidget.test.jsx +1 -6
  316. package/src/components/manage/Widgets/TokenWidget.jsx +142 -186
  317. package/src/components/manage/Widgets/TokenWidget.test.jsx +1 -6
  318. package/src/components/manage/Widgets/UrlWidget.jsx +47 -18
  319. package/src/components/manage/Widgets/VocabularyTermsWidget.test.jsx +2 -11
  320. package/src/components/manage/Widgets/__mocks__/index.tsx +33 -51
  321. package/src/components/manage/Widgets/index.tsx +21 -0
  322. package/src/components/manage/Workflow/Workflow.test.jsx +2 -11
  323. package/src/components/theme/AlternateHrefLangs/AlternateHrefLangs.jsx +1 -0
  324. package/src/components/theme/AlternateHrefLangs/AlternateHrefLangs.test.jsx +30 -0
  325. package/src/components/theme/App/App.jsx +5 -1
  326. package/src/components/theme/App/App.test.jsx +13 -10
  327. package/src/components/theme/Comments/CommentEditModal.test.jsx +1 -5
  328. package/src/components/theme/Comments/Comments.test.jsx +2 -11
  329. package/src/components/theme/ConnectionRefused/ConnectionRefused.jsx +3 -2
  330. package/src/components/theme/ContactForm/ContactForm.test.jsx +14 -13
  331. package/src/components/theme/Image/Image.jsx +14 -5
  332. package/src/components/theme/Image/Image.test.jsx +247 -146
  333. package/src/components/theme/InjectPloneComponentsCSS/InjectPloneComponentsCSS.tsx +7 -0
  334. package/src/components/theme/LanguageSelector/LanguageSelector.tsx +3 -3
  335. package/src/components/theme/MultilingualRedirector/MultilingualRedirector.jsx +42 -12
  336. package/src/components/theme/MultilingualRedirector/MultilingualRedirector.test.jsx +6 -3
  337. package/src/components/theme/PasswordReset/PasswordReset.jsx +108 -191
  338. package/src/components/theme/PasswordReset/RequestPasswordReset.test.jsx +1 -5
  339. package/src/components/theme/Register/Register.test.jsx +1 -5
  340. package/src/components/theme/Search/Search.jsx +230 -327
  341. package/src/components/theme/Search/Search.test.jsx +14 -14
  342. package/src/components/theme/Sitemap/Sitemap.jsx +22 -30
  343. package/src/components/theme/Sitemap/Sitemap.stories.jsx +82 -0
  344. package/src/components/theme/Sitemap/Sitemap.test.jsx +18 -0
  345. package/src/components/theme/SlotRenderer/SlotRenderer.tsx +12 -6
  346. package/src/components/theme/Unauthorized/Unauthorized.jsx +27 -24
  347. package/src/components/theme/Unauthorized/Unauthorized.test.jsx +31 -2
  348. package/src/components/theme/VideoEmbed/VideoEmbed.jsx +100 -0
  349. package/src/components/theme/View/EventDatesInfo.test.jsx +1 -6
  350. package/src/components/theme/View/EventView.stories.jsx +89 -0
  351. package/src/components/theme/View/EventView.test.jsx +1 -6
  352. package/src/components/theme/View/FileView.stories.jsx +50 -0
  353. package/src/components/theme/View/ImageView.jsx +2 -1
  354. package/src/components/theme/View/ImageView.test.jsx +3 -0
  355. package/src/components/theme/View/LinkView.stories.jsx +57 -0
  356. package/src/components/theme/View/ListingView.stories.jsx +70 -0
  357. package/src/components/theme/View/NewsItemView.stories.jsx +58 -0
  358. package/src/components/theme/View/RenderBlocks.jsx +8 -10
  359. package/src/components/theme/View/RenderBlocks.stories.jsx +112 -0
  360. package/src/components/theme/View/RenderBlocks.test.jsx +14 -4
  361. package/src/components/theme/View/SummaryView.stories.jsx +71 -0
  362. package/src/components/theme/View/TabularView.stories.jsx +66 -0
  363. package/src/components/theme/View/View.jsx +8 -1
  364. package/src/components/theme/View/View.test.jsx +37 -24
  365. package/src/components/theme/Widgets/DateWidget.jsx +4 -5
  366. package/src/components/theme/Widgets/DatetimeWidget.jsx +4 -5
  367. package/src/components/theme/Widgets/ImageWidget.test.jsx +31 -11
  368. package/src/components/theme/Widgets/RichTextWidget.jsx +1 -1
  369. package/src/config/Blocks.jsx +3 -0
  370. package/src/config/ControlPanels.js +2 -0
  371. package/src/config/Loadables.jsx +1 -5
  372. package/src/config/Widgets.jsx +7 -0
  373. package/src/config/index.js +10 -1
  374. package/src/config/slots.js +19 -0
  375. package/src/config/validation.ts +8 -0
  376. package/src/constants/ActionTypes.js +1 -0
  377. package/src/express-middleware/devproxy.js +3 -1
  378. package/src/express-middleware/files.js +1 -0
  379. package/src/express-middleware/files.test.js +59 -0
  380. package/src/express-middleware/images.js +1 -0
  381. package/src/express-middleware/images.test.js +50 -0
  382. package/src/helpers/Api/Api.js +2 -2
  383. package/src/helpers/AuthToken/AuthToken.js +1 -6
  384. package/src/helpers/Blocks/Blocks.js +113 -28
  385. package/src/helpers/Blocks/Blocks.test.js +100 -0
  386. package/src/helpers/Content/Content.js +23 -0
  387. package/src/helpers/Content/Content.test.js +39 -0
  388. package/src/helpers/Extensions/withBlockSchemaEnhancer.jsx +4 -1
  389. package/src/helpers/FormValidation/FormValidation.test.js +31 -0
  390. package/src/helpers/FormValidation/validators.ts +52 -6
  391. package/src/helpers/I18n/I18n.test.ts +44 -0
  392. package/src/helpers/I18n/I18n.ts +31 -0
  393. package/src/helpers/Loadable/__mocks__/Loadable.jsx +7 -22
  394. package/src/helpers/MessageLabels/MessageLabels.js +5 -0
  395. package/src/helpers/Robots/Robots.js +1 -1
  396. package/src/helpers/Robots/Robots.test.js +34 -0
  397. package/src/helpers/Url/Url.js +1 -0
  398. package/src/helpers/Utils/Date.js +26 -1
  399. package/src/helpers/Utils/Date.test.js +237 -0
  400. package/src/helpers/Utils/Utils.jsx +17 -0
  401. package/src/helpers/Utils/Utils.test.jsx +39 -0
  402. package/src/helpers/Utils/withSaveAsDraft.jsx +33 -9
  403. package/src/helpers/index.js +1 -0
  404. package/src/hooks/user/useUser.js +1 -1
  405. package/src/internalChecks.test.ts +11 -0
  406. package/src/middleware/api.js +14 -5
  407. package/src/reducers/blockTypes/blockTypes.js +38 -0
  408. package/src/reducers/content/content.js +3 -18
  409. package/src/reducers/diff/diff.js +5 -1
  410. package/src/reducers/diff/diff.test.js +60 -4
  411. package/src/reducers/index.js +2 -0
  412. package/src/reducers/querystring/querystring.js +8 -1
  413. package/src/reducers/users/users.js +1 -1
  414. package/src/routes.js +10 -0
  415. package/src/server.jsx +14 -6
  416. package/src/start-client.jsx +21 -3
  417. package/test-addons-loader.js +3 -0
  418. package/test-setup-globals.js +56 -2
  419. package/theme/themes/default/elements/segment.variables +9 -16
  420. package/theme/themes/default/globals/site.variables +3 -3
  421. package/theme/themes/pastanaga/collections/form.overrides +22 -1
  422. package/theme/themes/pastanaga/elements/button.overrides +30 -3
  423. package/theme/themes/pastanaga/elements/segment.variables +1 -4
  424. package/theme/themes/pastanaga/extras/block-types.less +17 -0
  425. package/theme/themes/pastanaga/extras/contents.less +63 -4
  426. package/theme/themes/pastanaga/extras/main.less +16 -4
  427. package/theme/themes/pastanaga/extras/toolbar.less +10 -5
  428. package/theme/themes/pastanaga/extras/videoembed.less +22 -0
  429. package/theme/themes/pastanaga/extras/widgets.less +79 -0
  430. package/theme/themes/pastanaga/globals/site.variables +0 -3
  431. package/tsconfig.declarations.json +1 -1
  432. package/tsconfig.json +1 -1
  433. package/types/actions/blockTypes/blockTypes.d.ts +7 -0
  434. package/types/components/index.d.ts +1 -1
  435. package/types/components/manage/Blocks/Block/Order/Item.test.d.ts +1 -0
  436. package/types/components/manage/Blocks/Block/Order/utilities.d.ts +2 -1
  437. package/types/components/manage/Blocks/Grid/context.d.ts +1 -0
  438. package/types/components/manage/Blocks/Maps/Body.d.ts +9 -0
  439. package/types/components/manage/Blocks/Maps/View.d.ts +1 -1
  440. package/types/components/manage/Blocks/Teaser/utils.d.ts +5 -0
  441. package/types/components/manage/Blocks/Video/Body.d.ts +4 -2
  442. package/types/components/manage/Blocks/Video/schema.d.ts +4 -0
  443. package/types/components/manage/Contents/Contents.d.ts +1 -1
  444. package/types/components/manage/Contents/ContentsIndexHeader.d.ts +6 -11
  445. package/types/components/manage/Contents/ContentsItem.d.ts +3 -10
  446. package/types/components/manage/Contents/DropZoneContent.d.ts +2 -0
  447. package/types/components/manage/Contents/__mocks__/index.d.ts +2 -2
  448. package/types/components/manage/Controlpanels/BlockType.d.ts +7 -0
  449. package/types/components/manage/Controlpanels/BlockTypes.d.ts +7 -0
  450. package/types/components/manage/Controlpanels/ContentType.d.ts +2 -2
  451. package/types/components/manage/Controlpanels/Controlpanel.d.ts +2 -5
  452. package/types/components/manage/Controlpanels/Relations/RelationsMatrix.d.ts +1 -1
  453. package/types/components/manage/Controlpanels/Users/UsersControlpanel.ssr.test.d.ts +1 -0
  454. package/types/components/manage/Controlpanels/VersionOverview.d.ts +2 -1
  455. package/types/components/manage/Controlpanels/index.d.ts +3 -2
  456. package/types/components/manage/Diff/Diff.d.ts +7 -2
  457. package/types/components/manage/Form/__mocks__/index.d.ts +8 -8
  458. package/types/components/manage/Multilingual/ManageTranslations.d.ts +1 -1
  459. package/types/components/manage/Sidebar/ObjectBrowser.d.ts +1 -1
  460. package/types/components/manage/Sidebar/ObjectBrowserBody.test.d.ts +1 -0
  461. package/types/components/manage/Sidebar/SidebarPortal.d.ts +7 -15
  462. package/types/components/manage/Toolbar/Types.crash.test.d.ts +1 -0
  463. package/types/components/manage/Widgets/AlignWidget.d.ts +8 -10
  464. package/types/components/manage/Widgets/AlignWidget.stories.d.ts +1 -0
  465. package/types/components/manage/Widgets/BlockAlignment.d.ts +7 -0
  466. package/types/components/manage/Widgets/BlockAlignment.stories.d.ts +8 -0
  467. package/types/components/manage/Widgets/BlockWidth.d.ts +7 -0
  468. package/types/components/manage/Widgets/BlockWidth.stories.d.ts +6 -0
  469. package/types/components/manage/Widgets/ButtonsWidget.d.ts +48 -1
  470. package/types/components/manage/Widgets/ButtonsWidget.stories.d.ts +3 -0
  471. package/types/components/manage/Widgets/FormFieldWrapper.d.ts +28 -5
  472. package/types/components/manage/Widgets/ImageWidget.d.ts +1 -1
  473. package/types/components/manage/Widgets/InternalUrlWidget.d.ts +1 -1
  474. package/types/components/manage/Widgets/ObjectBrowserWidget.d.ts +2 -0
  475. package/types/components/manage/Widgets/QueryWidget.d.ts +5 -2
  476. package/types/components/manage/Widgets/RecurrenceWidget/WeekdayOfTheMonthIndexField.d.ts +22 -5
  477. package/types/components/manage/Widgets/SelectStyling.d.ts +1 -0
  478. package/types/components/manage/Widgets/Size.d.ts +7 -0
  479. package/types/components/manage/Widgets/Size.stories.d.ts +6 -0
  480. package/types/components/manage/Widgets/UrlWidget.d.ts +1 -1
  481. package/types/components/manage/Widgets/__mocks__/index.d.ts +33 -33
  482. package/types/components/manage/Widgets/index.d.ts +11 -6
  483. package/types/components/theme/ConnectionRefused/ConnectionRefused.d.ts +2 -2
  484. package/types/components/theme/InjectPloneComponentsCSS/InjectPloneComponentsCSS.d.ts +3 -0
  485. package/types/components/theme/PasswordReset/PasswordReset.d.ts +6 -2
  486. package/types/components/theme/Search/Search.d.ts +1 -1
  487. package/types/components/theme/Sitemap/Sitemap.stories.d.ts +13 -0
  488. package/types/components/theme/SlotRenderer/SlotRenderer.d.ts +4 -5
  489. package/types/components/theme/Unauthorized/Unauthorized.d.ts +2 -2
  490. package/types/components/theme/VideoEmbed/VideoEmbed.d.ts +2 -0
  491. package/types/components/theme/View/EventView.stories.d.ts +19 -0
  492. package/types/components/theme/View/FileView.stories.d.ts +18 -0
  493. package/types/components/theme/View/LinkView.stories.d.ts +18 -0
  494. package/types/components/theme/View/ListingView.stories.d.ts +24 -0
  495. package/types/components/theme/View/NewsItemView.stories.d.ts +23 -0
  496. package/types/components/theme/View/RenderBlocks.stories.d.ts +23 -0
  497. package/types/components/theme/View/SummaryView.stories.d.ts +23 -0
  498. package/types/components/theme/View/TabularView.stories.d.ts +23 -0
  499. package/types/config/ControlPanels.d.ts +1 -0
  500. package/types/config/Views.d.ts +1 -1
  501. package/types/config/Widgets.d.ts +6 -0
  502. package/types/config/slots.d.ts +7 -0
  503. package/types/constants/ActionTypes.d.ts +1 -0
  504. package/types/helpers/Blocks/Blocks.d.ts +4 -0
  505. package/types/helpers/Content/Content.d.ts +7 -0
  506. package/types/helpers/Extensions/withBlockSchemaEnhancer.d.ts +4 -5
  507. package/types/helpers/FormValidation/validators.d.ts +18 -1
  508. package/types/helpers/I18n/I18n.d.ts +20 -0
  509. package/types/helpers/Loadable/__mocks__/Loadable.d.ts +2 -2
  510. package/types/helpers/MessageLabels/MessageLabels.d.ts +100 -94
  511. package/types/helpers/Utils/Utils.d.ts +1 -0
  512. package/types/helpers/index.d.ts +1 -0
  513. package/types/reducers/blockTypes/blockTypes.d.ts +16 -0
  514. package/types/reducers/index.d.ts +2 -0
  515. package/types/routes.d.ts +7 -5
  516. package/vitest.config.mjs +84 -42
  517. package/webpack-plugins/webpack-less-plugin.js +1 -1
  518. package/webpack-plugins/webpack-scss-plugin.js +172 -0
  519. package/jest-addons-loader.js +0 -3
  520. package/jest-extender-plugin.js +0 -39
  521. package/jest-setup-afterenv.js +0 -2
  522. package/jest-svgsystem-transform.js +0 -10
  523. package/patches/patchit.sh +0 -2
  524. package/patches/razzle-jest.patch +0 -10
  525. package/src/components/manage/Contents/__mocks__/index.vitest.tsx +0 -5
  526. package/src/components/manage/Form/__mocks__/index.vitest.tsx +0 -73
  527. package/src/components/manage/Sidebar/SidebarPortal.jsx +0 -47
  528. package/src/components/manage/Sidebar/SidebarPortal.test.jsx +0 -26
  529. package/src/components/manage/Widgets/AlignWidget.test.jsx +0 -59
  530. package/src/components/manage/Widgets/ButtonsWidget.jsx +0 -41
  531. package/src/components/manage/Widgets/ButtonsWidget.test.jsx +0 -70
  532. package/src/components/manage/Widgets/__mocks__/index.vitest.tsx +0 -41
  533. package/src/helpers/Loadable/__mocks__/Loadable.vitest.jsx +0 -39
  534. package/test-setup-globals-vitest.js +0 -46
  535. package/theme/themes/pastanaga/extras/utils.less +0 -63
package/CHANGELOG.md CHANGED
@@ -17,19 +17,550 @@ myst:
17
17
 
18
18
  <!-- towncrier release notes start -->
19
19
 
20
+ ## 19.1.0 (2026-05-28)
21
+
22
+ ### Feature
23
+
24
+ - Add support for versions in the control panel for different backends. @robgietema [#8263](https://github.com/plone/volto/issues/8263)
25
+ - Split the Maps block into separate View and Body components so wrapper and content customizations can compose. @danalvrz
26
+
27
+ ### Bugfix
28
+
29
+ - Fix clicking in personal tools menu in Safari. @davisagli [#8272](https://github.com/plone/volto/issues/8272)
30
+ - Fix error on Block Types control panel if there was a blockConfig with a missing id. @davisagli
31
+
32
+ ### Internal
33
+
34
+ - Refactored the `History` manage component by converting it from a class-based component to a modern functional component using React hooks. @Manik-Khajuria-5 [#7717](https://github.com/plone/volto/issues/7717)
35
+ - Move packages that are used only in testing to devDependencies: react-test-renderer and redux-mock-store. Remove unnecessary dependency: full-icu. @wesleybl [#8279](https://github.com/plone/volto/issues/8279)
36
+ - Update devDependency: `cypress` 15.16.0. @davisagli
37
+
38
+ ## 19.0.0 (2026-05-19)
39
+
40
+ ### Internal
41
+
42
+ - Release Volto 19.0.0 final. @sneridagh
43
+
44
+ ## 19.0.0-alpha.38 (2026-05-19)
45
+
46
+ ### Breaking
47
+
48
+ - The `RichTextWidget` wraps its value in a `div` instead of a `p`. @nileshgulia1 [#7950](https://github.com/plone/volto/issues/7950)
49
+
50
+ ### Feature
51
+
52
+ - Replace moment.js with native Intl formatting in DateWidget and DatetimeWidget theme display widgets. The `formatDate` helper now accepts moment-style token strings ('ll', 'lll', 'LLLL', 'L', 'LT') for backward compatibility. @avoinea [#6732](https://github.com/plone/volto/issues/6732)
53
+
54
+ ### Bugfix
55
+
56
+ - fixed a11y in search page. @giuliaghisini [#8085](https://github.com/plone/volto/issues/8085)
57
+
58
+ ### Documentation
59
+
60
+ - Add Python 3.14 to Plone 6.2 support for Volto 19. @stevepiercy [#8051](https://github.com/plone/volto/issues/8051)
61
+
62
+ ## 19.0.0-alpha.37 (2026-05-19)
63
+
64
+ ### Feature
65
+
66
+ - Use the navroot expander to render the sitemap. @erral [#5503](https://github.com/plone/volto/issues/5503)
67
+ - Complete fr translation @jimbiscuit [#8197](https://github.com/plone/volto/issues/8197)
68
+ - Update nl translations. @mauritsvanrees
69
+ - Update pt_BR translations. @ericof
70
+
71
+ ### Bugfix
72
+
73
+ - Inside the CMS-UI, when using the keyboard the block becomes active when focused - @Wagner3UB [#5273](https://github.com/plone/volto/issues/5273)
74
+ - Translate block titles displayed in the Order tab of the sidebar. @ericof [#7348](https://github.com/plone/volto/issues/7348)
75
+ - The toolbar panel {guilabel}`Personal tools` now manages focus and announces state changes to screen readers to improve accessibility. @Wagner3UB [#8019](https://github.com/plone/volto/issues/8019)
76
+ - Fixed accessibility issues in `ModalForm` with focus management, `aria-live` announcements, and `aria-modal` support. @Wagner3UB [#8058](https://github.com/plone/volto/issues/8058)
77
+ - Fixed `ObjectBrowserWidget` to honor `frontendOptions.widgetProps.initialPath` when rendered in multiple mode (e.g. `RelationList` of `RelationChoice`). @ericof [#8156](https://github.com/plone/volto/issues/8156)
78
+ - Show Unauthorized page via SSR if an anonymous user accesses the user control panel. @wesleybl [#8184](https://github.com/plone/volto/issues/8184)
79
+ - Use `<button>` elements instead of `<a>` for formtabs menu items to fix accessibility and keyboard navigation. @Wagner3UB [#8219](https://github.com/plone/volto/issues/8219)
80
+ - Prevent browser default behavior on file drop in folder contents dropzone. @jnptk [#8228](https://github.com/plone/volto/issues/8228)
81
+
82
+ ### Internal
83
+
84
+ - Refactored the `TokenWidget` component from a class-based component to a modern functional component using React hooks. @Manik-Khajuria-5 [#7683](https://github.com/plone/volto/issues/7683)
85
+ - Refactored the `Search` component from a class-based component to a modern functional component using React hooks. @Manik-Khajuria-5 [#7686](https://github.com/plone/volto/issues/7686)
86
+ - Remove .nvmrc from Volto's folder. @sneridagh
87
+
88
+ ### Documentation
89
+
90
+ - Add more information about removed drag-and-drop libraries in the upgrade guide. @davisagli
91
+
92
+ ## 19.0.0-alpha.36 (2026-05-12)
93
+
94
+ ### Breaking
95
+
96
+ - Changed the 401 Unauthorized behavior. Now, for anonymous users it redirects to the login page. For authenticated users it still shows an Unauthorized message indicating they don't have permission. @sneridagh [#8164](https://github.com/plone/volto/issues/8164)
97
+ - Updated dependencies: `universal-cookie` 8.1.2, `universal-cookie-express`
98
+ 8.1.2, `react-cookie` 8.1.2. @davisagli
99
+ - Upgraded `superagent` from `3.8.2` to `10.3.0`; projects with custom request wrappers or SSR callbacks must handle missing response objects and stricter redirect/error handling.
100
+
101
+ ### Feature
102
+
103
+ - Complete translations for es, eu, gl and it @erral @cyphra @yurj @xulioxesus [#8169](https://github.com/plone/volto/issues/8169)
104
+
105
+ ### Bugfix
106
+
107
+ - Announce errors via `aria-live` and expose required and invalid states on text inputs to improve accessibility of form fields. @Wagner3UB [#8033](https://github.com/plone/volto/issues/8033)
108
+
109
+ ### Internal
110
+
111
+ - Updated Cypress test for search date sorting to verify newest-first ordering. @aryan7081 [#7489](https://github.com/plone/volto/issues/7489)
112
+ - Update packages in pnpm-lock.yaml. @wesleybl [#8188](https://github.com/plone/volto/issues/8188)
113
+ - Excludes badge links from readme-link-check. @wesleybl [#8189](https://github.com/plone/volto/issues/8189)
114
+ - Fixes an intermittent error in the Cypress tests blocks-slate-backspace.js and blocks-slate-delete.js. @wesleybl [#8190](https://github.com/plone/volto/issues/8190)
115
+
116
+ ## 19.0.0-alpha.35 (2026-05-08)
117
+
118
+ ### Internal
119
+
120
+ - Release for updating needed and conflicting typings. @sneridagh
121
+
122
+ ## 19.0.0-alpha.34 (2026-05-07)
123
+
124
+ ### Bugfix
125
+
126
+ - Replace hard-coded color values with Semantic UI theme variables for input field to improve accessibility. @Wagner3UB [#8044](https://github.com/plone/volto/issues/8044)
127
+
128
+ ## 19.0.0-alpha.33 (2026-05-04)
129
+
130
+ ### Breaking
131
+
132
+ - Removed the `@plone/client` package from the `main` branch. @sneridagh [#8170](https://github.com/plone/volto/issues/8170)
133
+ - Replaced the dependencies `react-dnd`, `react-dnd-html5-backend`, and `react-sortable-hoc` with `dnd-kit`.
134
+ See https://6.docs.plone.org/volto/upgrade-guide/index.html for more information.
135
+ @davisagli
136
+
137
+ ### Bugfix
138
+
139
+ - Force the proper setting of the I18NLANGUAGE cookie for non-multilingual sites too. @sneridagh
140
+
141
+ ### Internal
142
+
143
+ - Refactored the `ContentType` and `ControlPanel` components to be functional components. @Manik-Khajuria-5, @davisagli [#7705](https://github.com/plone/volto/issues/7705)
144
+ - Refactored the `WeekdayOfTheMonthIndexField` component by converting it from a class-based component to a modern functional component. @Manik-Khajuria-5 [#7811](https://github.com/plone/volto/issues/7811)
145
+ - Remove unused devDependency: `react-docgen-typescript-plugin`. @davisagli
146
+ - Standardized the TypeScript validation script name to `check:ts` and added package-specific `AGENTS.md` contributor guidance for `@plone/volto`.
147
+ - Update devDependency: `@vitest/ui` 3.2.4. @davisagli
148
+
149
+ ## 19.0.0-alpha.32 (2026-04-30)
150
+
151
+ ### Breaking
152
+
153
+ - Make form autosave opt-in behind `config.experimental.saveAsDraft.enabled`; enable this flag to preserve the previous save-as-draft behavior. @sneridagh
154
+
155
+ ## 19.0.0-alpha.31 (2026-04-28)
156
+
157
+ ### Feature
158
+
159
+ - Add ReactAriaRouterProvider to enable client-side navigation support for React Aria Link components. @iFlameing
160
+
161
+ ### Internal
162
+
163
+ - DE translation for Search Site. @Tishasoumya-02
164
+
165
+ ### Documentation
166
+
167
+ - Added `{versionchanged}` directive documenting the removal of the `-volto` suffix from the `visually-hidden-volto` CSS class in Volto 19. @Wagner3UB [#8155](https://github.com/plone/volto/issues/8155)
168
+
169
+ ## 19.0.0-alpha.30 (2026-04-27)
170
+
171
+ ### Breaking
172
+
173
+ - Update @plone/components to 4.0.0-alpha.7 codebase. @sneridagh [#8122](https://github.com/plone/volto/issues/8122)
174
+
175
+ ### Bugfix
176
+
177
+ - Respect required and fixed block restrictions in the sidebar Order tab by hiding delete and drag actions when blocked. @avoinea [#6481](https://github.com/plone/volto/issues/6481)
178
+ - Fix crash in `AlternateHrefLangs` when `content.language` is undefined. @avoinea [#7309](https://github.com/plone/volto/issues/7309)
179
+ - - Recreated the `linkInvalid` variable to correctly identify whether a link is valid and to address accessibility issues. @Wagner3UB [#7983](https://github.com/plone/volto/issues/7983)
180
+ - Fix Toast component accessibility by adding a visually hidden, translated type label (Success, Error, Warning, Information) for screen readers. Fix date range validator error messages to display human-readable dates instead of raw ISO strings. @Wagner3UB [#8105](https://github.com/plone/volto/issues/8105)
181
+ - Don't show login link in the `Unauthorized` component if the user is already authenticated. @wesleybl [#8126](https://github.com/plone/volto/issues/8126)
182
+ - Fixed the link to the navigation root in the Contents view breadcrumbs. @TimoBroeskamp [#8140](https://github.com/plone/volto/issues/8140)
183
+ - Completed the missing Romanian translations in the core Volto catalog and aligned a few related UI labels in the touched areas. @avoinea
184
+ - Fixed redirect after logging in when starting from the `Unauthorized` component on a non-content route, such as control panels. @davisagli
185
+
186
+ ### Internal
187
+
188
+ - Add Storybook of View components @Tishasoumya-02 [#5086](https://github.com/plone/volto/issues/5086)
189
+ - storybook of Sitemap @Tishasoumya [#5087](https://github.com/plone/volto/issues/5087)
190
+ - Remove `tsconfig.json` root and remove `tsconfig` package. @wesleybl [#7966](https://github.com/plone/volto/issues/7966)
191
+ - Remove references to the `apps` folder. @wesleybl [#8144](https://github.com/plone/volto/issues/8144)
192
+ - Remove unused devDependency `postcss-overrides`. @davisagli
193
+ - Update dependencies: `@loadable/component` 5.16.7, `@loadable/server`
194
+ 5.16.7, `@loadable/babel-plugin` 5.16.1, `@types/loadable__component`
195
+ 5.13.10, `html-webpack-plugin` 5.6.7, `mini-css-extract-plugin` 2.10.1,
196
+ `react-docgen-typescript-plugin` 1.0.8, `terser-webpack-plugin` 5.4.0.
197
+ @davisagli
198
+ - Update dependency: `lodash` 4.18.1. @davisagli
199
+ - Update dependency: `prismjs` 1.30.0. @davisagli
200
+ - Update dependency: `uuid` 14.0.0. @davisagli
201
+ - Update devDependencies: `postcss` 8.5.10, `postcss-load-config` 6.0.1,
202
+ `postcss-loader` 8.2.1, `postcss-scss` 4.0.9. @davisagli
203
+ - Update devDependency: `@testing-library/jest-dom` 6.9.1. @davisagli
204
+ - Update devDependency: `release-it` 20.0.1. @davisagli
205
+
206
+ ## 19.0.0-alpha.29 (2026-04-09)
207
+
208
+ ### Breaking
209
+
210
+ - Update to webpack-dev-server 5. @davisagli
211
+
212
+ ### Bugfix
213
+
214
+ - Only include the original image in the `Image` component if the image does not have all the scales present. @sneridagh [#7655](https://github.com/plone/volto/issues/7655)
215
+ - Forward Cache-Status header for files and images in Express middleware. @wesleybl [#7962](https://github.com/plone/volto/issues/7962)
216
+ - Added required ARIA attributes to date and time inputs on `DatetimeWidget`. @Wagner3UB [#7980](https://github.com/plone/volto/issues/7980)
217
+ - Improved text contrast and accessibility for help messages across the UI by updating global secondary color scales. @Wagner3UB [#8052](https://github.com/plone/volto/issues/8052)
218
+
219
+ ### Internal
220
+
221
+ - Update dependency: diff 3.5.1. @davisagli
222
+ - Update dependency: express 4.22.1. @davisagli
223
+ - Update devDependency: cypress 15.13.1. @davisagli
224
+ - Update devDependency: release-it 19.2.4. @davisagli
225
+
226
+ ### Documentation
227
+
228
+ - Added missing upgrade step in the docs for 19a28. @sneridagh [#8096](https://github.com/plone/volto/issues/8096)
229
+
230
+ ## 19.0.0-alpha.28 (2026-04-05)
231
+
232
+ ### Breaking
233
+
234
+ - Fork `razzle-dev-utils` into `@plone/razzle-dev-utils`. @wesleybl [#7973](https://github.com/plone/volto/issues/7973)
235
+ - Remove support for importing from the Volto root using paths starting with `~`. @davisagli
236
+
237
+ ### Feature
238
+
239
+ - Add Block Types control panel for admins to see where blocks are used. @jnptk [#7124](https://github.com/plone/volto/issues/7124)
240
+ - Added blocktypes service typings. @sneridagh
241
+ - Update translations from branch 18.x @erral
242
+
243
+ ### Bugfix
244
+
245
+ - Fixed RegistryImageWidget appending stray `}` to base64 data @mpalomacki [#7900](https://github.com/plone/volto/issues/7900)
246
+ - Add file size upload limit validator. @robgietema [#7936](https://github.com/plone/volto/issues/7936)
247
+ - First focus inside the edit page for assistive technologies @Wagner3UB [#7948](https://github.com/plone/volto/issues/7948)
248
+ - Fixed blockTypes components with correct typings. @sneridagh [#8080](https://github.com/plone/volto/issues/8080)
249
+ - Fix null port in virtual hosting path when the devproxy is used on an origin with an implicit port. @davisagli
250
+ - Fixed bug in razzle configuration and webpack-less-plugin that could generate wrong aliases and configurations for building the site. @pnicolli
251
+
252
+ ### Internal
253
+
254
+ - Refactored the `Diff` component by converting it from a class-based component to a modern functional component using React hooks. @Manik-Khajuria-5 [#7714](https://github.com/plone/volto/issues/7714)
255
+ - Run volto-slate test suite as part of the Vitest multi-project setup. @Abhishek-17h [#7892](https://github.com/plone/volto/issues/7892)
256
+ - Add defensive checks for missing languages and locale files. @pratyush07-hub [#7955](https://github.com/plone/volto/issues/7955)
257
+ - Remove the `immutable` dependency, since it is not a direct dependency. @wesleybl [#7974](https://github.com/plone/volto/issues/7974)
258
+ - Ensure unlock wait after saving working copy changes in Cypress tests. @wesleybl [#8024](https://github.com/plone/volto/issues/8024)
259
+ - Update react-dates to version 21.8.0. @wesleybl [#8027](https://github.com/plone/volto/issues/8027)
260
+ - Exclude `https://tanstack.com/` from README link check. @wesleybl [#8040](https://github.com/plone/volto/issues/8040)
261
+ - Remove volta configuration. @wesleybl [#8068](https://github.com/plone/volto/issues/8068)
262
+ - Added CI job for code-analysis workflow for checking if Volto types build cleanly. @sneridagh [#8080](https://github.com/plone/volto/issues/8080)
263
+ - Make "Block Types" control panel wider. @jnptk
264
+ - Remove unused devDependency: bundlewatch. @davisagli
265
+ - Update dependencies: webpack 5.105.4, resolve-url-loader 5.0.0. @davisagli
266
+ - Update dependency packages: http-proxy-middleware. Remove dependency packages: tmp. @davisagli
267
+ - Update dependency: jsdom 28.1.0. @davisagli
268
+ - Update dependency: lodash 4.17.23. @davisagli
269
+ - Update dependency: serialize-javascript 7.0.5. @davisagli
270
+ - Update devDependencies: wait-on 9.0.4 and start-server-and-test 2.1.5. @davisagli
271
+ - Update devDependency: less 3.13.1. @davisagli
272
+ - Use Plone 6.2.0rc1 for development. @davisagli
273
+
274
+ ## 19.0.0-alpha.27 (2026-03-02)
275
+
276
+ ### Bugfix
277
+
278
+ - Avoid storing empty blocks clipboard in localstorage until blocks are cut or copied. @davisagli [#6697](https://github.com/plone/volto/issues/6697)
279
+ - Fix the Moderate Comments control panel to only appear when Discussion support is available from the backend, avoiding incorrect visibility when plone.app.discussion is not installed.
280
+ @Kathrina-dev [#7786](https://github.com/plone/volto/issues/7786)
281
+ - Fixed unauthorized access to control panels by adding proper authorization checks. @Shyam-Raghuwanshi [#7807](https://github.com/plone/volto/issues/7807)
282
+ - Fix subordering order tab. @robgietema [#7937](https://github.com/plone/volto/issues/7937)
283
+ - Fixed searchable types in Object Browser Widget, adding also selectable-types to searchable-types. @giuliaghisini [#7942](https://github.com/plone/volto/issues/7942)
284
+ - Handle create-user 500 responses where body contains 'message' instead of 'error'. @wesleybl [#7946](https://github.com/plone/volto/issues/7946)
285
+ - Enhanced accessibility structure for the drag-and-drop of files in the `FileWidget` component. @Wagner3UB [#7956](https://github.com/plone/volto/issues/7956)
286
+ - Update the users controlpanel to be compatible with the new response format of the users endpoint introduced in https://github.com/plone/plone.restapi/pull/1971. @jnptk
287
+
288
+ ### Internal
289
+
290
+ - Refactored the `PasswordReset` widget by converting it from a class-based component to a modern functional component using React hooks. @Manik-Khajuria-5 [#7697](https://github.com/plone/volto/issues/7697)
291
+ - Exclude `.storybook` from ESLint's default hidden directory ignore list via `.eslintignore` to allow linting of Storybook configuration files. @Shyam-Raghuwanshi [#7894](https://github.com/plone/volto/issues/7894)
292
+ - Fix in-page drag-and-drop issue with the Listing block to ensure proper content reordering. @Manik-Khajuria-5 [#7907](https://github.com/plone/volto/issues/7907)
293
+ - Fix razzle.config.js defaultPlugins missing name property to ensure addon SCSS plugin replacement works correctly. @Manik-Khajuria-5 [#7908](https://github.com/plone/volto/issues/7908)
294
+
295
+ ### Documentation
296
+
297
+ - Remove link to Jobfamilie MEDICE: site is no longer a Volto site (redirects to non-Volto destination). @wesleybl [#7929](https://github.com/plone/volto/issues/7929)
298
+
299
+ ## 19.0.0-alpha.26 (2026-02-20)
300
+
301
+ ### Breaking
302
+
303
+ - Created a new `VideoEmbed` component for usage in a video block, helping to fix accessibility issues with the Semantic UI one. @jackahl @iRohitSingh [#6359](https://github.com/plone/volto/issues/6359)
304
+ - Table block is now responsive and can scroll horizontally for non-fixed tables. @sneridagh [#7916](https://github.com/plone/volto/issues/7916)
305
+
306
+ ### Feature
307
+
308
+ - Allow other sources, including Peertube instances, in the Video block via blocks configuration. @ionlizarazu [#6870](https://github.com/plone/volto/issues/6870)
309
+
310
+ ### Bugfix
311
+
312
+ - Fix ContentTypeSchema error toast to display only error message instead of stringified JSON object. @Shyam-Raghuwanshi [#7692](https://github.com/plone/volto/issues/7692)
313
+ - Fix missing i18n and a11y id for facet widget of Search block. @IFlameing
314
+
315
+ ### Internal
316
+
317
+ - Added Vitest coverage for `.well-known` public asset handling and corrected a test import path in volto-razzle. @Kathrina-dev [#7868](https://github.com/plone/volto/issues/7868)
318
+ - Use `getSlateEditorAndType` in `03-block-slate.js` to make the test more robust. @wesleybl [#7924](https://github.com/plone/volto/issues/7924)
319
+ - Add CI check for volto-razzle changelog. @davisagli
320
+
321
+ ## 19.0.0-alpha.25 (2026-02-13)
322
+
323
+ ### Feature
324
+
325
+ - If a delete operation fails, display the error message returned by the API (if any). @cekk [#7888](https://github.com/plone/volto/issues/7888)
326
+
327
+ ### Bugfix
328
+
329
+ - Fix a11y error `missing aria-label` in search block facets widget. @iFlameing
330
+
331
+ ### Internal
332
+
333
+ - Reinstalled all dependencies to latest compatible versions. @wesleybl [#7871](https://github.com/plone/volto/issues/7871)
334
+
335
+ ## 19.0.0-alpha.24 (2026-02-12)
336
+
337
+ ### Bugfix
338
+
339
+ - Changed the order of the "Save" and "Cancel" buttons on the sharing page to improve accessibility. @Wagner3UB [#7835](https://github.com/plone/volto/issues/7835)
340
+ - Filter invalid block IDs (null, undefined, 'undefined') in getBlocks() to prevent duplicate elements in DOM and test failures. @aryan7081 [#7858](https://github.com/plone/volto/issues/7858)
341
+ - BlocksForm: remove invalid block layout items on save by iterating raw blocks_layout (using isValidBlockId) instead of relying on getBlocks(). @aryan7081 [#7859](https://github.com/plone/volto/issues/7859)
342
+ - Fix href override in UniversalLink component. @iFlameing
343
+
344
+ ### Internal
345
+
346
+ - Continue to prevent editors from automatically reformatting Markdown files by moving this configuration from VSCode to prettier.
347
+ Move the VSCode settings setup from `make install` to a pnpm post-install hook. @wesleybl [#7834](https://github.com/plone/volto/issues/7834)
348
+ - Increase wait time between link check retries with Lychee. @wesleybl [#7872](https://github.com/plone/volto/issues/7872)
349
+ - Update browserlist Feb2026. @sneridagh
350
+ - Upgrade Plone to use 6.2.0a1. @sneridagh
351
+
352
+ ### Documentation
353
+
354
+ - Document known development watcher issues and how to resolve them. @shivaansh0610-LUFFY [#7836](https://github.com/plone/volto/issues/7836)
355
+ - Updated links to old deprecated third-party theme in the documentation. @pnicolli [#7857](https://github.com/plone/volto/issues/7857)
356
+ - Removed add-on packages that no longer exist in the `main` branch from documentation. @wesleybl [#7887](https://github.com/plone/volto/issues/7887)
357
+
358
+ ## 19.0.0-alpha.23 (2026-02-03)
359
+
360
+ ### Bugfix
361
+
362
+ - Language control panel: fix validation of default language. @davisagli [#7720](https://github.com/plone/volto/issues/7720)
363
+ - Set HTTP 503 status code for ConnectionRefused error page. @Shyam-Raghuwanshi [#7754](https://github.com/plone/volto/issues/7754)
364
+ - Fix default case selection in ButtonsWidget. @iFlameing
365
+
366
+ ## 19.0.0-alpha.22 (2026-01-26)
367
+
368
+ ### Feature
369
+
370
+ - Add `aboveListingItems` slot to allow displaying custom listing disclamers. @danalvrz
371
+ - Enhanced `SlotRenderer`'s `GetSlotArgs` typings. @sneridagh
372
+
373
+ ### Bugfix
374
+
375
+ - Remove '__ac' cookie when authtoken expires @Tishasoumya-02 [#7783](https://github.com/plone/volto/issues/7783)
376
+
377
+ ### Internal
378
+
379
+ - Removed apps folder from main branch, and related Plone's modular architecture packages (helpers, blocks, providers, theming, layout).
380
+ These packages are now only in `seven` branch. @sneridagh [#7785](https://github.com/plone/volto/issues/7785)
381
+ - Fixed CI test call. Fixed missing tests fixed since then. @sneridagh [#7795](https://github.com/plone/volto/issues/7795)
382
+
383
+ ## 19.0.0-alpha.21 (2026-01-14)
384
+
385
+ ### Bugfix
386
+
387
+ - Adjusted the opacity of the CMS UI toolbar’s expand/collapse button and enhanced its label to clearly convey to screen readers whether the toolbar is open or closed. @Wagner3UB [#7500](https://github.com/plone/volto/issues/7500)
388
+ - Fixed a bug in Toolbar Types where the "Add Translation…" menu crashed if a language in Plone was not in Volto's language map. Now it shows the language code instead of crashing. @pratyush07-hub [#7637](https://github.com/plone/volto/issues/7637)
389
+ - Fix rearrangement of files in drag-and-drop of folderish content. @Tishasoumya-02 [#7784](https://github.com/plone/volto/issues/7784)
390
+
391
+ ### Internal
392
+
393
+ - Prevent VSCode from mangling the `html_meta` header of documentation files. @stevepiercy [#7758](https://github.com/plone/volto/issues/7758)
394
+ - Corrected the label of a README link that pointed to the React Router v7 docs. @Manik-Khajuria-5 [#7776](https://github.com/plone/volto/issues/7776)
395
+
396
+ ### Documentation
397
+
398
+ - Update configuration documentation to reflect that {file}`src/config.js` is deprecated in Volto 18+ in favor of the {file}`config/` folder structure. @gummybearansh [#7756](https://github.com/plone/volto/issues/7756)
399
+ - Added version requirement for Plone 6.2. @stevepiercy [#7772](https://github.com/plone/volto/issues/7772)
400
+
401
+ ## 19.0.0-alpha.20 (2025-12-21)
402
+
403
+ ### Bugfix
404
+
405
+ - Hide date and time fields when either "Whole Day" or "Open End" is checked in the Event form. @wesleybl [#3243](https://github.com/plone/volto/issues/3243)
406
+ - Fixed a bug in the login form where the user could see a spinner instead of an error message after a failed login, when the login form was loaded via server-side rendering. @aryan7081 [#7397](https://github.com/plone/volto/issues/7397)
407
+ - Fix max filesize upload issue in drag and drop @Tishasoumya-02 [#7695](https://github.com/plone/volto/issues/7695)
408
+ - Fix multilingual redirect for languages using locale-specific formats. @Shyam-Raghuwanshi [#7725](https://github.com/plone/volto/issues/7725)
409
+ - Add German translations for the current and parent paths. @iFlameing
410
+ - Add support for typing and pasting URLs in the ObjectBrowserWidget for location selection in the Listing block. @iFlameing
411
+
412
+ ### Internal
413
+
414
+ - Refactored the `FormFieldWrapper` widget by converting it from a class-based component to a modern functional component using React hooks. @Manik-Khajuria-5 [#7672](https://github.com/plone/volto/issues/7672)
415
+ - Update TypeScript types for Volto. @wesleybl [#7703](https://github.com/plone/volto/issues/7703)
416
+ - Include other *.md files in the repo root for link checking, fix redirecting links, and remove non-responsive server. @stevepiercy [#7712](https://github.com/plone/volto/issues/7712)
417
+ - Update actions/checkout to v5 in all GitHub Actions workflows. @wesleybl [#7724](https://github.com/plone/volto/issues/7724)
418
+ - Update actions/cache from v4 to v5 in GitHub Actions workflow files. @wesleybl [#7731](https://github.com/plone/volto/issues/7731)
419
+ - Sync react-aria-components to 1.14.0 in catalog.json and nextjs package.json. @wesleybl [#7733](https://github.com/plone/volto/issues/7733)
420
+
421
+ ### Documentation
422
+
423
+ - Add Volto 19 add-on development documentation. @Shyam-Raghuwanshi [#7694](https://github.com/plone/volto/issues/7694)
424
+ - Exclude `linkedin.com` from link checker. @davisagli
425
+
426
+ ## 19.0.0-alpha.19 (2025-12-08)
427
+
428
+ ### Feature
429
+
430
+ - cross language support for blocks chooser search @Tishasoumya-02 [#7657](https://github.com/plone/volto/issues/7657)
431
+ - Added support for selecting Path and Depth in the Listing Block’s Location criteria using the ObjectBrowserWidget and NumberWidget. @iFlameing @giuliaghisini [#7661](https://github.com/plone/volto/issues/7661)
432
+ - ModalForm should handle empty schemas, rendering an empty form with just the submit and cancel buttons. @tedw87 [#7677](https://github.com/plone/volto/issues/7677)
433
+ - Add feature of drag and drop files in folder contents. @Tishasoumya-02
434
+
435
+ ### Internal
436
+
437
+ - Add classname for unauthorized page @iRohitSingh
438
+
439
+ ### Documentation
440
+
441
+ - Document environment variables and link the Razzle documentation. @Manas-Kenge [#5319](https://github.com/plone/volto/issues/5319)
442
+
443
+ ## 19.0.0-alpha.18 (2025-11-30)
444
+
445
+ ### Bugfix
446
+
447
+ - Fixed a TypeError in `flattenScales` that occurred when `image.scales` was missing. @pratyush07-hub [#7568](https://github.com/plone/volto/issues/7568)
448
+ - Moved hitorical amendment for the CssMinimizerPlugin to the Razzle fork, removed calc processing. @sneridagh [#7667](https://github.com/plone/volto/issues/7667)
449
+
450
+ ### Internal
451
+
452
+ - Revert #7646 Makefile, removing --prod experiment. @sneridagh
453
+
454
+ ## 19.0.0-alpha.17 (2025-11-21)
455
+
456
+ ### Bugfix
457
+
458
+ - Added `prettier` as a direct dependency of Volto, since is used by HTML block, to prevent the removal from the production build. @sneridagh
459
+
460
+ ## 19.0.0-alpha.16 (2025-11-20)
461
+
462
+ ### Bugfix
463
+
464
+ - Fixed missing deepmerge in prod build and add it as a direct dep in Volto core. @sneridagh
465
+
466
+ ## 19.0.0-alpha.15 (2025-11-19)
467
+
468
+ ### Bugfix
469
+
470
+ - Pin the sass dependency to 1.58.0 @sneridagh
471
+
472
+ ## 19.0.0-alpha.14 (2025-11-19)
473
+
474
+ ### Breaking
475
+
476
+ - Add package `@plone/razzle`. It's a fork of `razzle`. @wesleybl [#7542](https://github.com/plone/volto/issues/7542)
477
+ - Fork `babel-razzle-preset` from Razzle. Update dependencies. @sneridagh [#7619](https://github.com/plone/volto/issues/7619)
478
+ - Removed Jest from build. @sneridagh [#7620](https://github.com/plone/volto/issues/7620)
479
+ - Forked Razzle SCSS plugin, pin the version to one that does not flood the log with useless deprecation warnings. @sneridagh [#7188](https://github.com/plone/volto/issues/7188)
480
+
481
+ ### Bugfix
482
+
483
+ - Replaced `{term}` with `{ref}` to link to headings. @pratyush07-hub [#fix-glossary-terms](https://github.com/plone/volto/issues/fix-glossary-terms)
484
+
485
+ ### Internal
486
+
487
+ - Add Cypress test to cover deleting at end of Slate block when next block is empty. @aryan7081 [#7263](https://github.com/plone/volto/issues/7263)
488
+
489
+ ### Documentation
490
+
491
+ - Added missing steps for `babel-preset-razzle` in the upgrade guide. @sneridagh
492
+ - Added missing upgrade steps for 19 projects. @sneridagh
493
+
494
+ ## 19.0.0-alpha.13 (2025-11-12)
495
+
496
+ ### Internal
497
+
498
+ - Release with `@plone/components` 4a3. @sneridagh
499
+
500
+ ## 19.0.0-alpha.12 (2025-11-10)
501
+
502
+ ### Breaking
503
+
504
+ - `AlignWidget` and `ButtonsWidget` are now Semantic UI-free, and they are now based in `@plone/components`.
505
+ See upgrade guide for more information. @sneridagh [#7555](https://github.com/plone/volto/issues/7555)
506
+
507
+ ### Feature
508
+
509
+ - New `@plone/components`-based widgets: `Size`, `blockWidth`, and `blockAlignment`. All of them are `ButtonsWidget`-based. @sneridagh [#7555](https://github.com/plone/volto/issues/7555)
510
+
511
+ ### Bugfix
512
+
513
+ - Remove container cage on relations control panel. @ksuess [#6633](https://github.com/plone/volto/issues/6633)
514
+
515
+ ### Internal
516
+
517
+ - Add Cypress coverage for Delete-key behavior in text blocks: merge next text block into current and do nothing to non-text (Description) block when pressed at end of a text block. @aryan7081 [#7263](https://github.com/plone/volto/issues/7263)
518
+ - Use 19 as version for cookieplone CI checks. @sneridagh [#7548](https://github.com/plone/volto/issues/7548)
519
+ - Introduce `pnpm` catalog feature in core. @sneridagh [#7562](https://github.com/plone/volto/issues/7562)
520
+
521
+ ## 19.0.0-alpha.11 (2025-11-05)
522
+
523
+ ### Documentation
524
+
525
+ - Converted the structure of the "Settings Reference" page from a glossary to headings for easier navigation. @Abhishek-17h [#7565](https://github.com/plone/volto/issues/7565)
526
+
527
+ ## 19.0.0-alpha.10 (2025-10-31)
528
+
529
+ ### Feature
530
+
531
+ - Added `visually-hidden` utility CSS class that integrators and core developers can use. @JeffersonBledsoe @Wagner3UB [#6356](https://github.com/plone/volto/issues/6356)
532
+ - Enhanced diff reducer to process static behaviors in the result object. @rboixaderg [#7546](https://github.com/plone/volto/issues/7546)
533
+
534
+ ### Bugfix
535
+
536
+ - Get translationObject from the store instead of directly from the response in CreateTranslation component. @rboixaderg [#7543](https://github.com/plone/volto/issues/7543)
537
+ - Move '.visually-hidden' class to 'main.less' and remove unused 'utils.less' and references @Wagner3UB [#7552](https://github.com/plone/volto/issues/7552)
538
+ - Improve some JSDocs for better typing. @sneridagh [#7560](https://github.com/plone/volto/issues/7560)
539
+ - Fix image upload inside `ImageWidget` component when used inside a non-folderish object. [@jnptk] [#7573](https://github.com/plone/volto/issues/7573)
540
+ - Avoid re-rendering a content item view while hydrating server-side rendered components. @reebalazs
541
+ - Fix failing cypress test on updating to Cypress 15 @Tishasoumya-02
542
+ - Fix infinite @users requests caused by anonymous useUser hook. @iFlameing
543
+
544
+ ### Internal
545
+
546
+ - Convert UsersControlpanel component from class to functional with hooks. @wesleybl [#7450](https://github.com/plone/volto/issues/7450)
547
+ - Update to node 24 and cypress to 15 @sneridagh [#7538](https://github.com/plone/volto/issues/7538)
548
+ - Refactor `SidebarPortal` to TypeScript. @sneridagh [#7560](https://github.com/plone/volto/issues/7560)
549
+ - Enable ESlint detection of '.only' in unit and cypress tests. @sneridagh [#7567](https://github.com/plone/volto/issues/7567)
550
+
20
551
  ## 19.0.0-alpha.9 (2025-10-22)
21
552
 
22
553
  ### Feature
23
554
 
24
555
  - Add Cypress for a subpath. @wesleybl [#6976](https://github.com/plone/volto/issues/6976)
25
556
  - Serve API requests from a subpath. @davisagli [#7326](https://github.com/plone/volto/issues/7326)
26
- - Add option to serve a Volto site on a subpath using the `RAZZLE_SUBPATH_PREFIX` environment variable. @nileshgulia1, @wesleybl, @davisagli
557
+ - Add option to serve a Volto site on a subpath using the `RAZZLE_SUBPATH_PREFIX` environment variable. @nileshgulia1, @wesleybl, @davisagli
27
558
 
28
559
  ### Internal
29
560
 
30
561
  - Expires the cache if the root `package.json` is changed. @wesleybl [#7536](https://github.com/plone/volto/issues/7536)
31
- - Move to `dependencies` some bad categorized dependencies in `devDependencies`. @sneridagh
32
- - Run Cookieplone acceptance test with Node 24. @davisagli
562
+ - Move to `dependencies` some bad categorized dependencies in `devDependencies`. @sneridagh
563
+ - Run Cookieplone acceptance test with Node 24. @davisagli
33
564
 
34
565
  ## 19.0.0-alpha.8 (2025-10-22)
35
566
 
@@ -59,8 +590,8 @@ myst:
59
590
  - Fix api middleware possible empty values error. @robgietema [#7433](https://github.com/plone/volto/issues/7433)
60
591
  - Escape double quotes in POT / PO files @erral [#7476](https://github.com/plone/volto/issues/7476)
61
592
  - 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)
62
- - Reset fieldset.invisible class definition in order to prevent clashes with other CSS frameworks that might have `invisible` as utility. @sneridagh
63
- - Set type="button" for more widget buttons to prevent them from triggering when Enter is pressed elsewhere in the form. @davisagli
593
+ - Reset fieldset.invisible class definition in order to prevent clashes with other CSS frameworks that might have `invisible` as utility. @sneridagh
594
+ - Set type="button" for more widget buttons to prevent them from triggering when Enter is pressed elsewhere in the form. @davisagli
64
595
 
65
596
  ### Internal
66
597
 
@@ -69,8 +600,8 @@ myst:
69
600
  - Makes the Cypress commands `getSlateEditorAndType` and `getSlateEditorSelectorAndType` more robust. @wesleybl [#7503](https://github.com/plone/volto/issues/7503)
70
601
  - Enhance Cypress commands to trigger focus before typing in Slate editor. @wesleybl [#7506](https://github.com/plone/volto/issues/7506)
71
602
  - Fix error and rename test to "should save typed content in the Slate editor". @wesleybl [#7507](https://github.com/plone/volto/issues/7507)
72
- - Skip link check for URL which blocks traffic from GitHub. @davisagli
73
- - Use Plone 6.1.3. @sneridagh
603
+ - Skip link check for URL which blocks traffic from GitHub. @davisagli
604
+ - Use Plone 6.1.3. @sneridagh
74
605
 
75
606
  ### Documentation
76
607
 
@@ -98,7 +629,7 @@ myst:
98
629
  - 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)
99
630
  - 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)
100
631
  - Added guard in API REDUX middleware. @sneridagh [#7412](https://github.com/plone/volto/issues/7412)
101
- - Ensure the Refresh Content button correctly loads the preview image when using preview_image_link for Teaser block. @iFlameing
632
+ - Ensure the Refresh Content button correctly loads the preview image when using preview_image_link for Teaser block. @iFlameing
102
633
 
103
634
  ### Internal
104
635
 
@@ -137,7 +668,7 @@ myst:
137
668
  - Fix random failure in 'renders a file widget component with value' test of RegistryImageWidget. @wesleybl [#7292](https://github.com/plone/volto/issues/7292)
138
669
  - Fixes random error in Listing Block tests 2. @wesleybl [#7293](https://github.com/plone/volto/issues/7293)
139
670
  - Fixed random failure in Cypress 'Index Text Block' test. @wesleybl [#7304](https://github.com/plone/volto/issues/7304)
140
- - 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)
671
+ - `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)
141
672
 
142
673
  ## 19.0.0-alpha.4 (2025-08-25)
143
674
 
@@ -161,7 +692,7 @@ myst:
161
692
 
162
693
  - Update eslint-config-prettier past malware versions to "^9.1.2". @kittauri [#7254](https://github.com/plone/volto/issues/7254)
163
694
  - Update @testing-library/react to 14.3.1. @wesleybl [#7260](https://github.com/plone/volto/issues/7260)
164
- - Test with Plone 6.1.2. @davisagli
695
+ - Test with Plone 6.1.2. @davisagli
165
696
 
166
697
  ### Documentation
167
698
 
@@ -186,7 +717,7 @@ myst:
186
717
  - 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)
187
718
  - Synchronizes versions of Volto dependencies with other packages in the monorepo. @wesleybl [#7184](https://github.com/plone/volto/issues/7184)
188
719
  - In the contents view, add a pill to indicate working copies.
189
- This only works with `plone.app.iterate` >= 6.2.0. @davisagli
720
+ This only works with `plone.app.iterate` >= 6.2.0. @davisagli
190
721
 
191
722
  ### Bugfix
192
723
 
@@ -253,7 +784,7 @@ myst:
253
784
 
254
785
  ### Internal
255
786
 
256
- - Fixed types of #6826 in build:types. @sneridagh
787
+ - Fixed types of #6826 in build:types. @sneridagh
257
788
 
258
789
  ### Documentation
259
790