@plone/volto 18.0.0-alpha.3 → 18.0.0-alpha.4

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 (324) hide show
  1. package/.eslintrc +3 -3
  2. package/.prettierignore +8 -0
  3. package/.prettierrc +12 -0
  4. package/{packages/registry/.release-it.json → .release-it.json} +11 -6
  5. package/CHANGELOG.md +29 -4
  6. package/package.json +57 -127
  7. package/razzle.config.js +4 -7
  8. package/src/components/manage/Controlpanels/Users/UserGroupMembershipControlPanel.jsx +2 -2
  9. package/src/components/manage/Form/Form.jsx +5 -2
  10. package/src/config/index.js +0 -4
  11. package/src/icons/divide-horizontal.svg +0 -0
  12. package/src/icons/divide-vertical.svg +0 -0
  13. package/src/icons/hero.svg +0 -0
  14. package/src/icons/slider.svg +0 -0
  15. package/src/icons/summary.svg +0 -0
  16. package/src/middleware/api.js +1 -1
  17. package/theme/themes/default/elements/icon.overrides +0 -0
  18. package/theme/themes/default/globals/reset.overrides +0 -0
  19. package/theme/themes/default/globals/site.variables +0 -0
  20. package/theme/themes/default/modules/dropdown.overrides +0 -0
  21. package/theme/themes/default/modules/dropdown.variables +0 -0
  22. package/theme/themes/default/modules/modal.variables +0 -0
  23. package/theme/themes/default/modules/video.overrides +0 -0
  24. package/theme/themes/default/modules/video.variables +0 -0
  25. package/theme/themes/pastanaga/assets/fonts/icons.eot +0 -0
  26. package/theme/themes/pastanaga/assets/fonts/icons.svg +0 -0
  27. package/theme/themes/pastanaga/assets/fonts/icons.ttf +0 -0
  28. package/theme/themes/pastanaga/assets/fonts/icons.woff +0 -0
  29. package/theme/themes/pastanaga/globals/reset.overrides +0 -0
  30. package/theme/themes/pastanaga/globals/site.variables +0 -0
  31. package/theme/themes/pastanaga/modules/dropdown.variables +0 -0
  32. package/theme/themes/pastanaga/modules/modal.variables +0 -0
  33. package/theme/themes/pastanaga/modules/video.overrides +0 -0
  34. package/theme/themes/pastanaga/modules/video.variables +0 -0
  35. package/tsconfig.json +1 -4
  36. package/types/config/RichTextEditor/index.d.ts +5 -8
  37. package/types/helpers/AsyncConnect/index.d.ts +2 -2
  38. package/types/helpers/Url/Url.d.ts +3 -3
  39. package/types/icons/load-icons.d.ts +1 -1
  40. package/webpack-plugins/webpack-less-plugin.js +1 -0
  41. package/CODE_OF_CONDUCT.md +0 -13
  42. package/CONTRIBUTING.md +0 -7
  43. package/README.md +0 -154
  44. package/RELEASING.md +0 -73
  45. package/ROADMAP.md +0 -30
  46. package/SECURITY.md +0 -14
  47. package/apps/plone/node_modules/.bin/acorn +0 -17
  48. package/apps/plone/node_modules/.bin/addon +0 -17
  49. package/apps/plone/node_modules/.bin/autoprefixer +0 -17
  50. package/apps/plone/node_modules/.bin/browserslist +0 -17
  51. package/apps/plone/node_modules/.bin/build-storybook +0 -17
  52. package/apps/plone/node_modules/.bin/changelogupdater +0 -17
  53. package/apps/plone/node_modules/.bin/eslint +0 -17
  54. package/apps/plone/node_modules/.bin/eslint-config-prettier +0 -17
  55. package/apps/plone/node_modules/.bin/i18n +0 -17
  56. package/apps/plone/node_modules/.bin/jest +0 -17
  57. package/apps/plone/node_modules/.bin/lessc +0 -17
  58. package/apps/plone/node_modules/.bin/missdev +0 -17
  59. package/apps/plone/node_modules/.bin/prettier +0 -17
  60. package/apps/plone/node_modules/.bin/razzle +0 -17
  61. package/apps/plone/node_modules/.bin/server-test +0 -17
  62. package/apps/plone/node_modules/.bin/start-server-and-test +0 -17
  63. package/apps/plone/node_modules/.bin/start-storybook +0 -17
  64. package/apps/plone/node_modules/.bin/start-test +0 -17
  65. package/apps/plone/node_modules/.bin/storybook-server +0 -17
  66. package/apps/plone/node_modules/.bin/stylelint +0 -17
  67. package/apps/plone/node_modules/.bin/tlds +0 -17
  68. package/apps/plone/node_modules/.bin/ts-jest +0 -17
  69. package/apps/plone/node_modules/.bin/tsc +0 -17
  70. package/apps/plone/node_modules/.bin/tsserver +0 -17
  71. package/apps/plone/node_modules/.bin/uuid +0 -17
  72. package/apps/plone/node_modules/.bin/webpack +0 -17
  73. package/apps/plone/node_modules/.bin/webpack-dev-server +0 -17
  74. package/apps/plone/src/addons/volto-volto-project/node_modules/.bin/acorn +0 -17
  75. package/apps/plone/src/addons/volto-volto-project/node_modules/.bin/addon +0 -17
  76. package/apps/plone/src/addons/volto-volto-project/node_modules/.bin/browserslist +0 -17
  77. package/apps/plone/src/addons/volto-volto-project/node_modules/.bin/changelogupdater +0 -17
  78. package/apps/plone/src/addons/volto-volto-project/node_modules/.bin/eslint +0 -17
  79. package/apps/plone/src/addons/volto-volto-project/node_modules/.bin/eslint-config-prettier +0 -17
  80. package/apps/plone/src/addons/volto-volto-project/node_modules/.bin/i18n +0 -17
  81. package/apps/plone/src/addons/volto-volto-project/node_modules/.bin/prettier +0 -17
  82. package/apps/plone/src/addons/volto-volto-project/node_modules/.bin/release-it +0 -17
  83. package/apps/plone/src/addons/volto-volto-project/node_modules/.bin/stylelint +0 -17
  84. package/apps/plone/src/addons/volto-volto-project/node_modules/.bin/tsc +0 -17
  85. package/apps/plone/src/addons/volto-volto-project/node_modules/.bin/tsserver +0 -17
  86. package/logos/Logo.png +0 -0
  87. package/logos/VoltoLogoEra2-dark-mode.png +0 -0
  88. package/logos/VoltoLogoEra2.png +0 -0
  89. package/logos/volto-colorful.png +0 -0
  90. package/logos/volto-colorful.svg +0 -35
  91. package/logos/volto-guide.png +0 -0
  92. package/logos/volto-h-transparent.svg +0 -6
  93. package/logos/volto-transparent.png +0 -0
  94. package/logos/volto-transparent.svg +0 -19
  95. package/logos/volto-transparent2.svg +0 -5
  96. package/logos/volto-yellow.svg +0 -29
  97. package/logos/volto.sketch +0 -0
  98. package/packages/README.md +0 -7
  99. package/packages/registry/.towncrier/towncrier_template.jinja +0 -10
  100. package/packages/registry/CHANGELOG.md +0 -16
  101. package/packages/registry/README.md +0 -207
  102. package/packages/registry/addon-registry.js +0 -603
  103. package/packages/registry/create-addons-loader.js +0 -116
  104. package/packages/registry/create-theme-addons-loader.js +0 -78
  105. package/packages/registry/news/.gitkeep +0 -0
  106. package/packages/registry/node_modules/.bin/browserslist +0 -17
  107. package/packages/registry/node_modules/.bin/parcel +0 -17
  108. package/packages/registry/node_modules/.bin/release-it +0 -17
  109. package/packages/registry/node_modules/.bin/tsc +0 -17
  110. package/packages/registry/node_modules/.bin/tsserver +0 -17
  111. package/packages/registry/node_modules/.bin/vitest +0 -17
  112. package/packages/registry/package.json +0 -76
  113. package/packages/registry/src/index.ts +0 -174
  114. package/packages/registry/src/registry.test.js +0 -111
  115. package/packages/registry/tsconfig.json +0 -32
  116. package/packages/scripts/CHANGELOG.md +0 -173
  117. package/packages/scripts/README.md +0 -128
  118. package/packages/scripts/addon/consolidate.js +0 -28
  119. package/packages/scripts/addon/generators.js +0 -213
  120. package/packages/scripts/addon/getAddonInfo.js +0 -65
  121. package/packages/scripts/addon/index.js +0 -88
  122. package/packages/scripts/addon/utils.js +0 -44
  123. package/packages/scripts/backportpr.js +0 -75
  124. package/packages/scripts/changelogupdater.cjs +0 -94
  125. package/packages/scripts/corepackagebump.js +0 -20
  126. package/packages/scripts/i18n.cjs +0 -310
  127. package/packages/scripts/package.json +0 -76
  128. package/packages/scripts/templates/towncrier_template.jinja +0 -10
  129. package/packages/types/Blocks/View.ts +0 -11
  130. package/packages/types/actions.ts +0 -15
  131. package/packages/types/breadcrumbs.ts +0 -10
  132. package/packages/types/config/Blocks.ts +0 -153
  133. package/packages/types/config/Content.ts +0 -62
  134. package/packages/types/config/Settings.ts +0 -86
  135. package/packages/types/config/Views.ts +0 -15
  136. package/packages/types/config/Widgets.ts +0 -7
  137. package/packages/types/config/index.ts +0 -21
  138. package/packages/types/content/common.ts +0 -60
  139. package/packages/types/content/get.ts +0 -66
  140. package/packages/types/index.ts +0 -0
  141. package/packages/types/navigation.ts +0 -12
  142. package/packages/types/node_modules/.bin/browserslist +0 -17
  143. package/packages/types/node_modules/.bin/parcel +0 -17
  144. package/packages/types/node_modules/.bin/release-it +0 -17
  145. package/packages/types/node_modules/.bin/tsc +0 -17
  146. package/packages/types/node_modules/.bin/tsserver +0 -17
  147. package/packages/types/package.json +0 -64
  148. package/packages/types/types.ts +0 -61
  149. package/packages/volto-slate/.i18n.babel.config.js +0 -1
  150. package/packages/volto-slate/README.md +0 -4
  151. package/packages/volto-slate/build/messages/src/blocks/Table/TableBlockEdit.json +0 -90
  152. package/packages/volto-slate/build/messages/src/blocks/Text/DefaultTextBlockEditor.json +0 -6
  153. package/packages/volto-slate/build/messages/src/blocks/Text/DetachedTextBlockEditor.json +0 -6
  154. package/packages/volto-slate/build/messages/src/blocks/Text/SlashMenu.json +0 -6
  155. package/packages/volto-slate/build/messages/src/editor/plugins/AdvancedLink/index.json +0 -10
  156. package/packages/volto-slate/build/messages/src/editor/plugins/Link/index.json +0 -10
  157. package/packages/volto-slate/build/messages/src/editor/plugins/Table/index.json +0 -30
  158. package/packages/volto-slate/build/messages/src/elementEditor/messages.json +0 -10
  159. package/packages/volto-slate/build/messages/src/widgets/HtmlSlateWidget.json +0 -6
  160. package/packages/volto-slate/build/messages/src/widgets/RichTextWidgetView.json +0 -6
  161. package/packages/volto-slate/locales/de/LC_MESSAGES/volto.po +0 -148
  162. package/packages/volto-slate/locales/en/LC_MESSAGES/volto.po +0 -148
  163. package/packages/volto-slate/locales/volto.pot +0 -182
  164. package/packages/volto-slate/package.json +0 -43
  165. package/packages/volto-slate/src/actions/content.js +0 -30
  166. package/packages/volto-slate/src/actions/index.js +0 -3
  167. package/packages/volto-slate/src/actions/plugins.js +0 -9
  168. package/packages/volto-slate/src/actions/selection.js +0 -22
  169. package/packages/volto-slate/src/blocks/Table/Cell.jsx +0 -87
  170. package/packages/volto-slate/src/blocks/Table/Cell.test.js +0 -54
  171. package/packages/volto-slate/src/blocks/Table/TableBlockEdit.jsx +0 -694
  172. package/packages/volto-slate/src/blocks/Table/TableBlockEdit.test.js +0 -40
  173. package/packages/volto-slate/src/blocks/Table/TableBlockView.jsx +0 -150
  174. package/packages/volto-slate/src/blocks/Table/TableBlockView.test.js +0 -49
  175. package/packages/volto-slate/src/blocks/Table/deconstruct.js +0 -113
  176. package/packages/volto-slate/src/blocks/Table/extensions/normalizeTable.js +0 -5
  177. package/packages/volto-slate/src/blocks/Table/index.js +0 -60
  178. package/packages/volto-slate/src/blocks/Table/schema.js +0 -122
  179. package/packages/volto-slate/src/blocks/Text/DefaultTextBlockEditor.jsx +0 -304
  180. package/packages/volto-slate/src/blocks/Text/DetachedTextBlockEditor.jsx +0 -77
  181. package/packages/volto-slate/src/blocks/Text/MarkdownIntroduction.jsx +0 -59
  182. package/packages/volto-slate/src/blocks/Text/PluginSidebar.jsx +0 -18
  183. package/packages/volto-slate/src/blocks/Text/ShortcutListing.jsx +0 -28
  184. package/packages/volto-slate/src/blocks/Text/SlashMenu.jsx +0 -203
  185. package/packages/volto-slate/src/blocks/Text/TextBlockEdit.jsx +0 -38
  186. package/packages/volto-slate/src/blocks/Text/TextBlockEdit.test.js +0 -107
  187. package/packages/volto-slate/src/blocks/Text/TextBlockSchema.js +0 -54
  188. package/packages/volto-slate/src/blocks/Text/TextBlockView.jsx +0 -31
  189. package/packages/volto-slate/src/blocks/Text/css/editor.css +0 -18
  190. package/packages/volto-slate/src/blocks/Text/extensions/Readme.md +0 -49
  191. package/packages/volto-slate/src/blocks/Text/extensions/breakList.js +0 -100
  192. package/packages/volto-slate/src/blocks/Text/extensions/index.js +0 -6
  193. package/packages/volto-slate/src/blocks/Text/extensions/insertBreak.js +0 -57
  194. package/packages/volto-slate/src/blocks/Text/extensions/isSelected.js +0 -7
  195. package/packages/volto-slate/src/blocks/Text/extensions/normalizeExternalData.js +0 -7
  196. package/packages/volto-slate/src/blocks/Text/extensions/withDeserializers.js +0 -87
  197. package/packages/volto-slate/src/blocks/Text/extensions/withLists.js +0 -5
  198. package/packages/volto-slate/src/blocks/Text/index.js +0 -171
  199. package/packages/volto-slate/src/blocks/Text/keyboard/backspaceInList.js +0 -58
  200. package/packages/volto-slate/src/blocks/Text/keyboard/breakBlocks.js +0 -3
  201. package/packages/volto-slate/src/blocks/Text/keyboard/cancelEsc.js +0 -7
  202. package/packages/volto-slate/src/blocks/Text/keyboard/indentListItems.js +0 -240
  203. package/packages/volto-slate/src/blocks/Text/keyboard/index.js +0 -52
  204. package/packages/volto-slate/src/blocks/Text/keyboard/joinBlocks.js +0 -180
  205. package/packages/volto-slate/src/blocks/Text/keyboard/moveListItems.js +0 -124
  206. package/packages/volto-slate/src/blocks/Text/keyboard/slashMenu.js +0 -19
  207. package/packages/volto-slate/src/blocks/Text/keyboard/softBreak.js +0 -7
  208. package/packages/volto-slate/src/blocks/Text/keyboard/traverseBlocks.js +0 -81
  209. package/packages/volto-slate/src/blocks/Text/keyboard/unwrapEmptyString.js +0 -26
  210. package/packages/volto-slate/src/blocks/Text/schema.js +0 -39
  211. package/packages/volto-slate/src/constants.js +0 -123
  212. package/packages/volto-slate/src/editor/EditorContext.jsx +0 -5
  213. package/packages/volto-slate/src/editor/EditorReference.jsx +0 -22
  214. package/packages/volto-slate/src/editor/SlateEditor.jsx +0 -375
  215. package/packages/volto-slate/src/editor/config.jsx +0 -344
  216. package/packages/volto-slate/src/editor/decorate.js +0 -68
  217. package/packages/volto-slate/src/editor/deserialize.js +0 -185
  218. package/packages/volto-slate/src/editor/extensions/index.js +0 -6
  219. package/packages/volto-slate/src/editor/extensions/insertBreak.js +0 -15
  220. package/packages/volto-slate/src/editor/extensions/insertData.js +0 -159
  221. package/packages/volto-slate/src/editor/extensions/isInline.js +0 -14
  222. package/packages/volto-slate/src/editor/extensions/normalizeExternalData.js +0 -8
  223. package/packages/volto-slate/src/editor/extensions/normalizeNode.js +0 -48
  224. package/packages/volto-slate/src/editor/extensions/withDeserializers.js +0 -15
  225. package/packages/volto-slate/src/editor/extensions/withTestingFeatures.jsx +0 -84
  226. package/packages/volto-slate/src/editor/index.js +0 -14
  227. package/packages/volto-slate/src/editor/less/editor.less +0 -173
  228. package/packages/volto-slate/src/editor/less/globals.less +0 -18
  229. package/packages/volto-slate/src/editor/less/slate.less +0 -28
  230. package/packages/volto-slate/src/editor/plugins/AdvancedLink/deserialize.js +0 -90
  231. package/packages/volto-slate/src/editor/plugins/AdvancedLink/extensions.js +0 -32
  232. package/packages/volto-slate/src/editor/plugins/AdvancedLink/index.js +0 -50
  233. package/packages/volto-slate/src/editor/plugins/AdvancedLink/render.jsx +0 -37
  234. package/packages/volto-slate/src/editor/plugins/AdvancedLink/schema.js +0 -114
  235. package/packages/volto-slate/src/editor/plugins/AdvancedLink/styles.less +0 -8
  236. package/packages/volto-slate/src/editor/plugins/Blockquote/index.js +0 -30
  237. package/packages/volto-slate/src/editor/plugins/Callout/index.js +0 -34
  238. package/packages/volto-slate/src/editor/plugins/Image/deconstruct.js +0 -30
  239. package/packages/volto-slate/src/editor/plugins/Image/extensions.js +0 -51
  240. package/packages/volto-slate/src/editor/plugins/Image/index.js +0 -11
  241. package/packages/volto-slate/src/editor/plugins/Image/render.jsx +0 -22
  242. package/packages/volto-slate/src/editor/plugins/Link/extensions.js +0 -58
  243. package/packages/volto-slate/src/editor/plugins/Link/index.js +0 -164
  244. package/packages/volto-slate/src/editor/plugins/Link/render.jsx +0 -54
  245. package/packages/volto-slate/src/editor/plugins/Markdown/constants.js +0 -81
  246. package/packages/volto-slate/src/editor/plugins/Markdown/extensions.js +0 -334
  247. package/packages/volto-slate/src/editor/plugins/Markdown/index.js +0 -28
  248. package/packages/volto-slate/src/editor/plugins/Markdown/utils.js +0 -198
  249. package/packages/volto-slate/src/editor/plugins/StyleMenu/StyleMenu.jsx +0 -153
  250. package/packages/volto-slate/src/editor/plugins/StyleMenu/index.js +0 -19
  251. package/packages/volto-slate/src/editor/plugins/StyleMenu/style.less +0 -29
  252. package/packages/volto-slate/src/editor/plugins/StyleMenu/utils.js +0 -168
  253. package/packages/volto-slate/src/editor/plugins/Table/TableButton.jsx +0 -142
  254. package/packages/volto-slate/src/editor/plugins/Table/TableCell.jsx +0 -44
  255. package/packages/volto-slate/src/editor/plugins/Table/TableContainer.jsx +0 -37
  256. package/packages/volto-slate/src/editor/plugins/Table/TableSizePicker.jsx +0 -83
  257. package/packages/volto-slate/src/editor/plugins/Table/extensions.js +0 -87
  258. package/packages/volto-slate/src/editor/plugins/Table/index.js +0 -390
  259. package/packages/volto-slate/src/editor/plugins/Table/less/public.less +0 -29
  260. package/packages/volto-slate/src/editor/plugins/Table/less/table.less +0 -28
  261. package/packages/volto-slate/src/editor/plugins/Table/render.jsx +0 -30
  262. package/packages/volto-slate/src/editor/plugins/index.js +0 -19
  263. package/packages/volto-slate/src/editor/render.jsx +0 -224
  264. package/packages/volto-slate/src/editor/ui/BasicToolbar.jsx +0 -11
  265. package/packages/volto-slate/src/editor/ui/BlockButton.jsx +0 -31
  266. package/packages/volto-slate/src/editor/ui/ClearFormattingButton.jsx +0 -21
  267. package/packages/volto-slate/src/editor/ui/ExpandedToolbar.jsx +0 -18
  268. package/packages/volto-slate/src/editor/ui/Expando.jsx +0 -5
  269. package/packages/volto-slate/src/editor/ui/InlineToolbar.jsx +0 -73
  270. package/packages/volto-slate/src/editor/ui/MarkButton.jsx +0 -23
  271. package/packages/volto-slate/src/editor/ui/MarkElementButton.jsx +0 -30
  272. package/packages/volto-slate/src/editor/ui/Menu.jsx +0 -13
  273. package/packages/volto-slate/src/editor/ui/PositionedToolbar.jsx +0 -32
  274. package/packages/volto-slate/src/editor/ui/Separator.jsx +0 -7
  275. package/packages/volto-slate/src/editor/ui/SlateContextToolbar.jsx +0 -13
  276. package/packages/volto-slate/src/editor/ui/SlateToolbar.jsx +0 -96
  277. package/packages/volto-slate/src/editor/ui/Toolbar.jsx +0 -103
  278. package/packages/volto-slate/src/editor/ui/ToolbarButton.jsx +0 -33
  279. package/packages/volto-slate/src/editor/ui/ToolbarButton.test.js +0 -25
  280. package/packages/volto-slate/src/editor/ui/index.js +0 -15
  281. package/packages/volto-slate/src/editor/utils.js +0 -248
  282. package/packages/volto-slate/src/elementEditor/ContextButtons.jsx +0 -56
  283. package/packages/volto-slate/src/elementEditor/PluginEditor.jsx +0 -124
  284. package/packages/volto-slate/src/elementEditor/Readme.md +0 -6
  285. package/packages/volto-slate/src/elementEditor/SchemaProvider.jsx +0 -3
  286. package/packages/volto-slate/src/elementEditor/SidebarEditor.jsx +0 -46
  287. package/packages/volto-slate/src/elementEditor/ToolbarButton.jsx +0 -44
  288. package/packages/volto-slate/src/elementEditor/index.js +0 -5
  289. package/packages/volto-slate/src/elementEditor/makeInlineElementPlugin.js +0 -100
  290. package/packages/volto-slate/src/elementEditor/messages.js +0 -14
  291. package/packages/volto-slate/src/elementEditor/utils.js +0 -226
  292. package/packages/volto-slate/src/hooks/index.js +0 -3
  293. package/packages/volto-slate/src/hooks/useEditorContext.js +0 -6
  294. package/packages/volto-slate/src/hooks/useIsomorphicLayoutEffect.js +0 -7
  295. package/packages/volto-slate/src/hooks/useSelectionPosition.js +0 -25
  296. package/packages/volto-slate/src/i18n.js +0 -180
  297. package/packages/volto-slate/src/icons/hashlink.svg +0 -57
  298. package/packages/volto-slate/src/index.js +0 -61
  299. package/packages/volto-slate/src/reducers/content.js +0 -74
  300. package/packages/volto-slate/src/reducers/index.js +0 -3
  301. package/packages/volto-slate/src/reducers/plugins.js +0 -17
  302. package/packages/volto-slate/src/reducers/selection.js +0 -16
  303. package/packages/volto-slate/src/utils/blocks.js +0 -375
  304. package/packages/volto-slate/src/utils/blocks.test.js +0 -138
  305. package/packages/volto-slate/src/utils/editor.js +0 -31
  306. package/packages/volto-slate/src/utils/image.js +0 -25
  307. package/packages/volto-slate/src/utils/index.js +0 -11
  308. package/packages/volto-slate/src/utils/internals.js +0 -46
  309. package/packages/volto-slate/src/utils/lists.js +0 -92
  310. package/packages/volto-slate/src/utils/marks.js +0 -104
  311. package/packages/volto-slate/src/utils/mime-types.js +0 -24
  312. package/packages/volto-slate/src/utils/nodes.js +0 -4
  313. package/packages/volto-slate/src/utils/ops.js +0 -20
  314. package/packages/volto-slate/src/utils/random.js +0 -17
  315. package/packages/volto-slate/src/utils/selection.js +0 -236
  316. package/packages/volto-slate/src/utils/slate-string-utils.js +0 -408
  317. package/packages/volto-slate/src/utils/volto-blocks.js +0 -314
  318. package/packages/volto-slate/src/widgets/ErrorBoundary.jsx +0 -27
  319. package/packages/volto-slate/src/widgets/HtmlSlateWidget.jsx +0 -139
  320. package/packages/volto-slate/src/widgets/ObjectByTypeWidget.jsx +0 -49
  321. package/packages/volto-slate/src/widgets/RichTextWidget.jsx +0 -72
  322. package/packages/volto-slate/src/widgets/RichTextWidgetView.jsx +0 -37
  323. package/packages/volto-slate/src/widgets/style.css +0 -21
  324. package/types/components/manage/Blocks/Video/Body.test.d.ts +0 -1
@@ -1,180 +0,0 @@
1
- import ReactDOM from 'react-dom';
2
- import { cloneDeep } from 'lodash';
3
- import { serializeNodesToText } from '@plone/volto-slate/editor/render';
4
- import { Editor } from 'slate';
5
- import {
6
- getPreviousVoltoBlock,
7
- getNextVoltoBlock,
8
- isCursorAtBlockStart,
9
- isCursorAtBlockEnd,
10
- mergeSlateWithBlockBackward,
11
- mergeSlateWithBlockForward,
12
- makeEditor,
13
- } from '@plone/volto-slate/utils';
14
- import {
15
- changeBlock,
16
- deleteBlock,
17
- getBlocksFieldname,
18
- getBlocksLayoutFieldname,
19
- } from '@plone/volto/helpers';
20
- /**
21
- * Joins the current block (which has an active Slate Editor)
22
- * with the previous block, to make a single block.
23
- *
24
- * @param {Editor} editor
25
- * @param {KeyboardEvent} event
26
- */
27
- export function joinWithPreviousBlock({ editor, event }) {
28
- if (!isCursorAtBlockStart(editor)) return;
29
-
30
- const blockProps = editor.getBlockProps();
31
- const {
32
- block,
33
- index,
34
- saveSlateBlockSelection,
35
- onSelectBlock,
36
- data,
37
- properties,
38
- onChangeField,
39
- } = blockProps;
40
-
41
- const blocksFieldname = getBlocksFieldname(properties);
42
- const blocksLayoutFieldname = getBlocksLayoutFieldname(properties);
43
-
44
- const prev = getPreviousVoltoBlock(index, properties);
45
- if (!prev) return;
46
- const [otherBlock = {}, otherBlockId] = prev;
47
-
48
- // Don't join with required blocks
49
- if (data?.required || otherBlock?.required || otherBlock['@type'] !== 'slate')
50
- return;
51
-
52
- event.stopPropagation();
53
- event.preventDefault();
54
-
55
- // If the Editor contains no characters TODO: clarify if this special case
56
- // really needs to be handled or not. In `joinWithNextBlock` it is not
57
- // handled.
58
- const text = Editor.string(editor, []);
59
- if (!text) {
60
- const cursor = getBlockEndAsRange(otherBlock);
61
- const newFormData = deleteBlock(properties, block);
62
-
63
- ReactDOM.unstable_batchedUpdates(() => {
64
- saveSlateBlockSelection(otherBlockId, cursor);
65
-
66
- onChangeField(blocksFieldname, newFormData[blocksFieldname]);
67
- onChangeField(blocksLayoutFieldname, newFormData[blocksLayoutFieldname]);
68
-
69
- onSelectBlock(otherBlockId);
70
- });
71
-
72
- return true;
73
- }
74
-
75
- // Else the editor contains characters, so we merge the current block's
76
- // `editor` with the block before, `otherBlock`.
77
- const cursor = mergeSlateWithBlockBackward(editor, otherBlock);
78
-
79
- const combined = JSON.parse(JSON.stringify(editor.children));
80
-
81
- // // TODO: don't remove undo history, etc Should probably save both undo
82
- // // histories, so that the blocks are split, the undos can be restored??
83
-
84
- // const cursor = getBlockEndAsRange(otherBlock);
85
- const formData = changeBlock(properties, otherBlockId, {
86
- '@type': 'slate', // TODO: use a constant specified in src/constants.js instead of 'slate'
87
- value: combined,
88
- plaintext: serializeNodesToText(combined || []),
89
- });
90
- const newFormData = deleteBlock(formData, block);
91
-
92
- ReactDOM.unstable_batchedUpdates(() => {
93
- saveSlateBlockSelection(otherBlockId, cursor);
94
- onChangeField(blocksFieldname, newFormData[blocksFieldname]);
95
- onChangeField(blocksLayoutFieldname, newFormData[blocksLayoutFieldname]);
96
- onSelectBlock(otherBlockId);
97
- });
98
-
99
- return true;
100
- }
101
-
102
- /**
103
- * Joins the current block (which has the cursor) with the next block to make a
104
- * single block.
105
- * @param {Editor} editor
106
- * @param {KeyboardEvent} event
107
- */
108
- export function joinWithNextBlock({ editor, event }) {
109
- if (!isCursorAtBlockEnd(editor)) return;
110
-
111
- const blockProps = editor.getBlockProps();
112
- const {
113
- block,
114
- index,
115
- // saveSlateBlockSelection,
116
- onSelectBlock,
117
- data,
118
- } = blockProps;
119
-
120
- const { properties, onChangeField } = editor.getBlockProps();
121
- const [otherBlock = {}, otherBlockId] = getNextVoltoBlock(index, properties);
122
-
123
- // Don't join with required blocks
124
- if (data?.required || otherBlock?.required || otherBlock['@type'] !== 'slate')
125
- return;
126
-
127
- event.stopPropagation();
128
- event.preventDefault();
129
-
130
- mergeSlateWithBlockForward(editor, otherBlock);
131
-
132
- // const cursor = JSON.parse(JSON.stringify(editor.selection));
133
- const combined = JSON.parse(JSON.stringify(editor.children));
134
-
135
- // TODO: don't remove undo history, etc Should probably save both undo
136
- // histories, so that the blocks are split, the undos can be restored??
137
-
138
- const blocksFieldname = getBlocksFieldname(properties);
139
- const blocksLayoutFieldname = getBlocksLayoutFieldname(properties);
140
-
141
- const formData = changeBlock(properties, otherBlockId, {
142
- // TODO: use a constant specified in src/constants.js instead of 'slate'
143
- '@type': 'slate',
144
- value: combined,
145
- plaintext: serializeNodesToText(combined || []),
146
- });
147
- const newFormData = deleteBlock(formData, block);
148
-
149
- ReactDOM.unstable_batchedUpdates(() => {
150
- // saveSlateBlockSelection(otherBlockId, cursor);
151
- onChangeField(blocksFieldname, newFormData[blocksFieldname]);
152
- onChangeField(blocksLayoutFieldname, newFormData[blocksLayoutFieldname]);
153
- onSelectBlock(otherBlockId);
154
- });
155
- return true;
156
- }
157
-
158
- /**
159
- * @param {object} block The Volto object representing the configuration and
160
- * contents of a Volto Block of type Slate Text.
161
- * @returns {Range} The collapsed Slate Range that represents the last position
162
- * the text cursor can take inside the given block.
163
- */
164
- function getBlockEndAsRange(block) {
165
- const { value } = block;
166
- const location = [value.length - 1]; // adress of root node
167
- const editor = { children: value };
168
- const newEditor = makeEditor();
169
- newEditor.children = cloneDeep(editor.children);
170
- const path = Editor.last(newEditor, location)[1]; // last Node in the block
171
- // The last Text node (leaf node) entry inside the path computed just above.
172
- const [leaf, leafpath] = Editor.leaf(newEditor, path);
173
- // The offset of the Points in the collapsed Range computed below:
174
- const offset = (leaf.text || '').length;
175
-
176
- return {
177
- anchor: { path: leafpath, offset },
178
- focus: { path: leafpath, offset },
179
- };
180
- }
@@ -1,124 +0,0 @@
1
- import { Editor, Path, Transforms, Node } from 'slate';
2
- import { isCursorInList, getCurrentListItem } from '@plone/volto-slate/utils';
3
- import config from '@plone/volto/registry';
4
-
5
- /**
6
- * Move up a list with with `Ctrl+Up`. (The Up key is supposed here to be
7
- * pressed.)
8
- * @param {Editor} Editor
9
- * @param {KeyboardEvent} event
10
- */
11
- export function moveListItemUp({ editor, event }) {
12
- // If Ctrl is not pressed or the cursor is not in a list, do nothing.
13
- if (!(event.ctrlKey && isCursorInList(editor))) return;
14
-
15
- // Else prevent the default behavior of Slate, React and DOM and stop the
16
- // propagation of this event.
17
- const { anchor } = editor.selection;
18
- const { slate } = config.settings;
19
-
20
- event.preventDefault();
21
- event.stopPropagation();
22
-
23
- // Store the current list item's path.
24
- const [, listItemPath] = getCurrentListItem(editor);
25
-
26
- // Don't allow in first line list item Check if the current list item is first
27
- // in its parent
28
- if (
29
- // If the selection starts at the beginning of a root-level block node
30
- anchor.path.slice(1).reduce((acc, n) => acc + n, 0) === 0 ||
31
- // or the current list item is the first in the list that contains it
32
- listItemPath[listItemPath.length - 1] === 0
33
- ) {
34
- // Mark the event as handled and do nothing.
35
- return true;
36
- }
37
-
38
- // Take the Node in the selection that is LI and is farthest-from-root.
39
- const [match] = Editor.nodes(editor, {
40
- match: (n) => n.type === slate.listItemType,
41
- // Explanation of the three modes:
42
- // * 'all' - take all the nodes from the root Editor node to the selected
43
- // leaf Text node
44
- // * 'highest' - take the root Editor node (if there is a selection, in case
45
- // no `at` option is given)
46
- // * 'lowest' - take the farthest-from-root selected leaf Text node
47
- // (Replace the "leaf Text node" expressions in the above list with
48
- // whatever matching function you use.)
49
- mode: 'lowest',
50
- });
51
-
52
- // Get the Path of the above-found Node.
53
- const [, at] = match;
54
-
55
- // Get the Path that represents the previous sibling node of the Path above.
56
- // TODO: handle the exception that this can throw, when `at` has the last
57
- // number in it a `0`. This case is possible because the condition above that
58
- // uses the Array.prototype.reduce method checks only the sum but the last 2
59
- // items can be [2, 0], their sum is 2 but the last item is 0, so the
60
- // exception is thrown.
61
- const to = Path.previous(at);
62
-
63
- // If the Path does not exist, mark the event as handled and do nothing.
64
- if (!Node.has(editor, to)) return true;
65
-
66
- // Move the Node in the selection that is LI and is farthest-from-root to the
67
- // existing Path just before its current location.
68
- Transforms.moveNodes(editor, { at, to });
69
-
70
- // Mark the event as handled.
71
- return true;
72
- }
73
-
74
- /**
75
- * Move down a list with with `Ctrl+Down`. (The Down key is supposed here to be
76
- * pressed.)
77
- * @param {Editor} Editor
78
- * @param {KeyboardEvent} event
79
- */
80
- export function moveListItemDown({ editor, event }) {
81
- // If Ctrl is not pressed or the cursor is not in a list, do nothing.
82
- if (!event.ctrlKey) return;
83
- if (!isCursorInList(editor)) return false;
84
-
85
- // Else
86
- const { slate } = config.settings;
87
-
88
- // Take the Node in the selection that is LI and is farthest-from-root.
89
- const [match] = Editor.nodes(editor, {
90
- // Explanation of the three modes:
91
- // * 'all' - take all the nodes from the root Editor node to the selected
92
- // leaf Text node
93
- // * 'highest' - take the root Editor node (if there is a selection, in case
94
- // no `at` option is given)
95
- // * 'lowest' - take the farthest-from-root selected leaf Text node
96
- // (Replace the "leaf Text node" expressions in the above list with
97
- // whatever matching function you use.)
98
- match: (n) => n.type === slate.listItemType,
99
- reverse: true,
100
- mode: 'lowest',
101
- });
102
-
103
- // Get the Path of the above-found Node.
104
- const [, at] = match;
105
-
106
- // Get the Path that represents the next sibling node of the Path above.
107
- const to = Path.next(at);
108
-
109
- // Prevent the default behavior of Slate, React and DOM and stop the
110
- // propagation of this event.
111
- event.preventDefault();
112
- event.stopPropagation();
113
-
114
- // If the Path does not exist, mark the event as handled and do nothing.
115
- if (!Node.has(editor, to)) return true;
116
-
117
- // Move the Node in the selection that is LI and is farthest-from-root to the
118
- // existing Path just after its current location, if there is a place for it
119
- // at the same depth.
120
- Transforms.moveNodes(editor, { at, to });
121
-
122
- // Mark the event as handled.
123
- return true;
124
- }
@@ -1,19 +0,0 @@
1
- export const slashMenu = ({ editor, event }) => {
2
- if (!editor.showSlashMenu) return;
3
-
4
- const { slashArrowUp, slashArrowDown, slashEnter } = editor;
5
-
6
- const handlers = {
7
- ArrowUp: slashArrowUp,
8
- ArrowDown: slashArrowDown,
9
- Enter: slashEnter,
10
- };
11
-
12
- const handler = handlers[event.key];
13
- if (handler) {
14
- event.preventDefault();
15
- handler();
16
- }
17
-
18
- return true;
19
- };
@@ -1,7 +0,0 @@
1
- export const softBreak = ({ editor, event }) => {
2
- if (event.key === 'Enter' && event.shiftKey) {
3
- event.preventDefault();
4
- editor.insertText('\n');
5
- return true;
6
- }
7
- };
@@ -1,81 +0,0 @@
1
- import { Node } from 'slate';
2
- import {
3
- isCursorAtBlockStart,
4
- isCursorAtBlockEnd,
5
- getNextVoltoBlock,
6
- getPreviousVoltoBlock,
7
- createDefaultBlock,
8
- } from '@plone/volto-slate/utils';
9
-
10
- /**
11
- * goUp.
12
- *
13
- * @param {}
14
- */
15
- export function goUp({ editor, event }) {
16
- if (isCursorAtBlockStart(editor)) {
17
- const props = editor.getBlockProps();
18
- const { onFocusPreviousBlock, block, blockNode } = props;
19
-
20
- // const { formContext } = editor;
21
- // const properties = formContext.contextData.formData;
22
- const { properties } = editor.getBlockProps();
23
-
24
- const prev = getPreviousVoltoBlock(props.index, properties);
25
- if (!prev || prev[0]?.['@type'] !== 'slate')
26
- return onFocusPreviousBlock(block, blockNode.current);
27
-
28
- const [slateBlock, id] = prev;
29
- const pseudoEditor = {
30
- children: slateBlock.value || [createDefaultBlock()],
31
- };
32
- const match = Node.last(pseudoEditor, []);
33
- if (!match) return onFocusPreviousBlock(block, blockNode.current);
34
-
35
- const [node, path] = match;
36
- const point = { path, offset: (node?.text || '').length };
37
- const selection = { anchor: point, focus: point };
38
- props.saveSlateBlockSelection(id, selection);
39
- return onFocusPreviousBlock(block, blockNode.current);
40
- }
41
- }
42
-
43
- /**
44
- * goDown.
45
- *
46
- * @param {}
47
- */
48
- export function goDown({ editor, event }) {
49
- if (isCursorAtBlockEnd(editor)) {
50
- const props = editor.getBlockProps();
51
- const { onFocusNextBlock, block, blockNode } = props;
52
-
53
- // const { formContext } = editor;
54
- // const properties = formContext.contextData.formData;
55
- const { properties } = editor.getBlockProps();
56
-
57
- const next = getNextVoltoBlock(props.index, properties);
58
- if (!next || next[0]?.['@type'] !== 'slate')
59
- return onFocusNextBlock(block, blockNode.current);
60
-
61
- const [slateBlock, id] = next;
62
- const pseudoEditor = {
63
- children: slateBlock.value || [createDefaultBlock()],
64
- };
65
- const match = Node.first(pseudoEditor, []);
66
- if (!match) return onFocusNextBlock(block, blockNode.current);
67
-
68
- const path = match[1];
69
- const point = { path, offset: 0 };
70
- const selection = { anchor: point, focus: point };
71
- props.saveSlateBlockSelection(id, selection);
72
- return onFocusNextBlock(block, blockNode.current);
73
- }
74
- }
75
-
76
- export function traverseBlocks(opts) {
77
- const { event } = opts;
78
- event.preventDefault();
79
- // return event.shiftKey ? goUp(opts) : goDown(opts);
80
- return true;
81
- }
@@ -1,26 +0,0 @@
1
- import { Node } from 'slate';
2
- import {
3
- _unwrapElement,
4
- _getActiveElement,
5
- } from '@plone/volto-slate/elementEditor/utils';
6
- import config from '@plone/volto/registry';
7
-
8
- /**
9
- * Handles empty string cases in the given `editor`.
10
- * It will unwrap empty strings for any major type (ex: a, mentions, footnote, zotero).
11
- * @param {Editor} editor
12
- * @param {Event} event
13
- */
14
- export function unwrapEmptyString(props) {
15
- const { nodeTypesToHighlight } = config.settings.slate;
16
- const uniqueNodeTypesToHighligh = [...new Set(nodeTypesToHighlight)];
17
- const getActiveElement = _getActiveElement(uniqueNodeTypesToHighligh);
18
- const unwrapElement = _unwrapElement(uniqueNodeTypesToHighligh);
19
-
20
- const { editor } = props;
21
- const actEl = getActiveElement(editor);
22
-
23
- if (actEl && Node.string(actEl[0]).length === 1) {
24
- unwrapElement(editor);
25
- }
26
- }
@@ -1,39 +0,0 @@
1
- const TextBlockSchema = (data) => {
2
- const { override_toc } = data;
3
- return {
4
- title: 'Advanced settings',
5
- fieldsets: [
6
- {
7
- id: 'default',
8
- title: 'Default',
9
- fields: [
10
- 'override_toc',
11
- ...(override_toc ? ['level', 'entry_text'] : []),
12
- ],
13
- },
14
- ],
15
- properties: {
16
- override_toc: {
17
- title: 'Override TOC entry',
18
- type: 'boolean',
19
- },
20
- level: {
21
- title: 'TOC entry level',
22
- choices: [
23
- ['h1', 'h1'],
24
- ['h2', 'h2'],
25
- ['h3', 'h3'],
26
- ['h4', 'h4'],
27
- ['h5', 'h5'],
28
- ['h6', 'h6'],
29
- ],
30
- },
31
- entry_text: {
32
- title: 'Entry text for TOC',
33
- },
34
- },
35
- required: [],
36
- };
37
- };
38
-
39
- export default TextBlockSchema;
@@ -1,123 +0,0 @@
1
- // action types
2
- export const SAVE_SLATE_BLOCK_SELECTION = 'SAVE_SLATE_BLOCK_SELECTION';
3
- export const SLATE_PLUGINS = 'SLATE_PLUGINS';
4
- export const UPLOAD_CONTENT = 'UPLOAD_CONTENT';
5
-
6
- // element 'types'. Useful to identify element types across codebase
7
- export const IMAGE = 'img';
8
- // export const FOOTNOTE = 'footnote';
9
- export const LINK = 'a';
10
- export const SIMPLELINK = 'link';
11
-
12
- export const TABLE = 'table';
13
- export const THEAD = 'thead';
14
- export const TBODY = 'tbody';
15
- export const TFOOT = 'tbody';
16
- export const TR = 'tr';
17
- export const TH = 'th';
18
- export const TD = 'td';
19
-
20
- export const P = 'p';
21
-
22
- export const LI = 'li';
23
- export const UL = 'ul';
24
- export const OL = 'ol';
25
-
26
- // dom parsing node information
27
- export const TEXT_NODE = 3;
28
- export const ELEMENT_NODE = 1;
29
- export const COMMENT = 8;
30
-
31
- export const INLINE_ELEMENTS = [
32
- 'A',
33
- 'ABBR',
34
- 'ACRONYM',
35
- 'AUDIO',
36
- 'B',
37
- 'BDI',
38
- 'BDO',
39
- 'BIG',
40
- 'BR',
41
- 'BUTTON',
42
- 'CANVAS',
43
- 'CITE',
44
- 'CODE',
45
- 'DATA',
46
- 'DATALIST',
47
- 'DEL',
48
- 'DFN',
49
- 'EM',
50
- 'EMBED',
51
- 'I',
52
- 'IFRAME',
53
- 'IMG',
54
- 'INPUT',
55
- 'INS',
56
- 'KBD',
57
- 'LABEL',
58
- 'MAP',
59
- 'MARK',
60
- 'METER',
61
- 'NOSCRIPT',
62
- 'OBJECT',
63
- 'OUTPUT',
64
- 'PICTURE',
65
- 'PROGRESS',
66
- 'Q',
67
- 'RUBY',
68
- 'S',
69
- 'SAMP',
70
- 'SCRIPT',
71
- 'SELECT',
72
- 'SLOT',
73
- 'SMALL',
74
- 'SPAN',
75
- 'STRONG',
76
- 'SUB',
77
- 'SUP',
78
- 'SVG',
79
- 'TEMPLATE',
80
- 'TEXTAREA',
81
- 'TIME',
82
- 'U',
83
- 'TT',
84
- 'VAR',
85
- 'VIDEO',
86
- 'WBR',
87
- ];
88
-
89
- export const BLOCK_ELEMENTS = [
90
- 'ADDRESS',
91
- 'ARTICLE',
92
- 'ASIDE',
93
- 'BLOCKQUOTE',
94
- 'DETAILS',
95
- 'DIALOG',
96
- 'DD',
97
- 'DIV',
98
- 'DL',
99
- 'DT',
100
- 'FIELDSET',
101
- 'FIGCAPTION',
102
- 'FIGURE',
103
- 'FOOTER',
104
- 'FORM',
105
- 'H1',
106
- 'H2',
107
- 'H3',
108
- 'H4',
109
- 'H5',
110
- 'H6',
111
- 'HEADER',
112
- 'HGROUP',
113
- 'HR',
114
- 'LI',
115
- 'MAIN',
116
- 'NAV',
117
- 'OL',
118
- 'P',
119
- 'PRE',
120
- 'SECTION',
121
- 'TABLE',
122
- 'UL',
123
- ];
@@ -1,5 +0,0 @@
1
- import React from 'react';
2
-
3
- const EditorContext = React.createContext();
4
-
5
- export default EditorContext;
@@ -1,22 +0,0 @@
1
- import React from 'react'; // , useState
2
- import { useSlate } from 'slate-react';
3
-
4
- /**
5
- * A component that can lift the editor to higher level
6
- *
7
- * Use like:
8
- * <SlateEditor ...><EditorReference onHasEditor=((editor) =>
9
- * this.setState({editor}) /></SlateEditor>
10
- *
11
- * With this you have access to the Slate editor "out of tree".
12
- */
13
-
14
- const EditorReference = ({ onHasEditor }) => {
15
- const editor = useSlate();
16
- React.useEffect(() => {
17
- onHasEditor(editor);
18
- }, [onHasEditor, editor]);
19
- return null;
20
- };
21
-
22
- export default EditorReference;