@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,224 +0,0 @@
1
- import React from 'react';
2
- import { renderToStaticMarkup } from 'react-dom/server';
3
- import { useLocation } from 'react-router-dom';
4
- import { toast } from 'react-toastify';
5
- import { useIntl } from 'react-intl';
6
- import { useSelector } from 'react-redux';
7
- import { Node, Text } from 'slate';
8
- import cx from 'classnames';
9
- import { isEmpty, omit } from 'lodash';
10
- import { UniversalLink, Toast } from '@plone/volto/components';
11
- import { messages, addAppURL } from '@plone/volto/helpers';
12
- import useClipboard from '@plone/volto/hooks/clipboard/useClipboard';
13
- import config from '@plone/volto/registry';
14
- import linkSVG from '@plone/volto/icons/link.svg';
15
-
16
- import './less/slate.less';
17
-
18
- const OMITTED = ['editor', 'path'];
19
-
20
- // TODO: read, see if relevant
21
- // https://reactjs.org/docs/higher-order-components.html#dont-use-hocs-inside-the-render-method
22
- export const Element = ({ element, attributes = {}, extras, ...rest }) => {
23
- const { slate } = config.settings;
24
- const { elements } = slate;
25
- const El = elements[element.type] || elements['default'];
26
-
27
- const attrs = Object.assign(
28
- element.styleName ? { className: element.styleName } : {},
29
- ...Object.keys(attributes || {}).map((k) =>
30
- !isEmpty(attributes[k]) ? { [k]: attributes[k] } : {},
31
- ),
32
- );
33
- attrs.ref = attributes?.ref; // never remove the ref
34
-
35
- return (
36
- <El
37
- element={element}
38
- {...omit(rest, OMITTED)}
39
- attributes={attrs}
40
- extras={extras}
41
- />
42
- );
43
- };
44
-
45
- export const Leaf = ({ children, ...rest }) => {
46
- const { attributes, leaf, mode } = rest;
47
- let { leafs } = config.settings.slate;
48
-
49
- children = Object.keys(leafs).reduce((acc, name) => {
50
- return Object.keys(leaf).includes(name)
51
- ? leafs[name]({ children: acc })
52
- : acc;
53
- }, children);
54
-
55
- const classNames = {
56
- [`highlight-${leaf.highlightType}`]: mode !== 'view' && leaf.highlightType,
57
- 'highlight-selection': mode !== 'view' && leaf.isSelection,
58
- };
59
-
60
- // stylemenu support
61
- for (const prop in leaf) {
62
- if (prop.startsWith('style-')) {
63
- classNames[prop.substring(6)] = true;
64
- }
65
- }
66
-
67
- const klass = cx(classNames);
68
-
69
- return mode === 'view' ? (
70
- typeof children === 'string' ? (
71
- children.split('\n').map((t, i) => {
72
- // Softbreak support. Should do a plugin?
73
- return (
74
- <React.Fragment key={`${i}`}>
75
- {children.indexOf('\n') > -1 &&
76
- children.split('\n').length - 1 > i ? (
77
- <>
78
- {klass ? <span className={klass}>{t}</span> : t}
79
- <br />
80
- </>
81
- ) : klass ? (
82
- <span className={klass}>{t}</span>
83
- ) : (
84
- t
85
- )}
86
- </React.Fragment>
87
- );
88
- })
89
- ) : (
90
- <span className={klass}>{children}</span>
91
- )
92
- ) : (
93
- <span {...attributes} className={klass}>
94
- {children}
95
- </span>
96
- );
97
- };
98
-
99
- const serializeData = (node) => {
100
- return JSON.stringify({ type: node.type, data: node.data });
101
- };
102
-
103
- export const serializeNodes = (nodes, getAttributes, extras = {}) => {
104
- const editor = { children: nodes || [] };
105
-
106
- const _serializeNodes = (nodes) => {
107
- return (nodes || []).map(([node, path], i) => {
108
- return Text.isText(node) ? (
109
- <Leaf path={path} leaf={node} text={node} mode="view" key={path}>
110
- {node.text}
111
- </Leaf>
112
- ) : (
113
- <Element
114
- path={path}
115
- element={node}
116
- mode="view"
117
- key={path}
118
- data-slate-data={node.data ? serializeData(node) : null}
119
- attributes={getAttributes ? getAttributes(node, path) : null}
120
- extras={extras}
121
- >
122
- {_serializeNodes(Array.from(Node.children(editor, path)))}
123
- </Element>
124
- );
125
- });
126
- };
127
-
128
- return _serializeNodes(Array.from(Node.children(editor, [])));
129
- };
130
-
131
- /**
132
- * Get the concatenated text string of a node's content.
133
- *
134
- * Note that this WILL include spaces between block node leafs in contrary to
135
- * the original slate method. This function joins text of nodes with
136
- * separating spaces to produce a string for indexing purposes.
137
- *
138
- */
139
- const ConcatenatedString = (node) => {
140
- if (Text.isText(node)) {
141
- return node.text.trim();
142
- } else {
143
- return node.children.map(ConcatenatedString).join(' ');
144
- }
145
- };
146
-
147
- /**
148
- * @function serializeNodesToText
149
- *
150
- * @param {Array[Node]} nodes
151
- *
152
- * @returns {string}
153
- */
154
- export const serializeNodesToText = (nodes) => {
155
- return nodes.map(ConcatenatedString).join('\n');
156
- };
157
-
158
- export const serializeNodesToHtml = (nodes) =>
159
- renderToStaticMarkup(serializeNodes(nodes));
160
-
161
- export const renderLinkElement = (tagName) => {
162
- function LinkElement({
163
- attributes,
164
- children,
165
- mode = 'edit',
166
- className = null,
167
- }) {
168
- const { slate = {} } = config.settings;
169
- const Tag = tagName;
170
- const slug = attributes.id || '';
171
- const location = useLocation();
172
- const token = useSelector((state) => state.userSession.token);
173
- const appPathname = addAppURL(location.pathname);
174
- // eslint-disable-next-line no-unused-vars
175
- const [copied, copy, setCopied] = useClipboard(
176
- appPathname.concat(`#${slug}`),
177
- );
178
- const intl = useIntl();
179
- return !token || slate.useLinkedHeadings === false ? (
180
- <Tag {...attributes} className={className} tabIndex={0}>
181
- {children}
182
- </Tag>
183
- ) : (
184
- <Tag {...attributes} className={className} tabIndex={0}>
185
- {children}
186
- {mode === 'view' && slug && (
187
- <UniversalLink
188
- className="anchor"
189
- aria-hidden="true"
190
- tabIndex={-1}
191
- href={`#${slug}`}
192
- >
193
- <style>
194
- {/* Prettify the unstyled flash of the link icon on development */}
195
- {`
196
- a.anchor svg {
197
- height: var(--anchor-svg-height, 24px);
198
- }
199
- `}
200
- </style>
201
- <svg
202
- {...linkSVG.attributes}
203
- dangerouslySetInnerHTML={{ __html: linkSVG.content }}
204
- height={null}
205
- onClick={() => {
206
- copy();
207
-
208
- toast.info(
209
- <Toast
210
- info
211
- title={intl.formatMessage(messages.success)}
212
- content={intl.formatMessage(messages.urlClipboardCopy)}
213
- />,
214
- );
215
- }}
216
- ></svg>
217
- </UniversalLink>
218
- )}
219
- </Tag>
220
- );
221
- }
222
- LinkElement.displayName = `${tagName}LinkElement`;
223
- return LinkElement;
224
- };
@@ -1,11 +0,0 @@
1
- import cx from 'classnames';
2
- import React from 'react';
3
- import Menu from './Menu';
4
-
5
- const BasicToolbar = React.forwardRef(({ className, ...props }, ref) => {
6
- return (
7
- <Menu {...props} ref={ref} className={cx(className, 'slate-toolbar')} />
8
- );
9
- });
10
-
11
- export default BasicToolbar;
@@ -1,31 +0,0 @@
1
- import React from 'react';
2
- import { useSlate } from 'slate-react';
3
- import { isBlockActive, toggleBlock } from '@plone/volto-slate/utils';
4
-
5
- import ToolbarButton from './ToolbarButton';
6
-
7
- const BlockButton = ({ format, icon, allowedChildren, ...props }) => {
8
- const editor = useSlate();
9
-
10
- const isActive = isBlockActive(editor, format);
11
-
12
- const handleMouseDown = React.useCallback(
13
- (event) => {
14
- event.preventDefault();
15
- toggleBlock(editor, format, allowedChildren);
16
- // console.log('toggled', format, editor);
17
- },
18
- [editor, format, allowedChildren], // , isActive
19
- );
20
-
21
- return (
22
- <ToolbarButton
23
- {...props}
24
- active={isActive}
25
- onMouseDown={handleMouseDown}
26
- icon={icon}
27
- />
28
- );
29
- };
30
-
31
- export default BlockButton;
@@ -1,21 +0,0 @@
1
- import React from 'react';
2
- import { useSlate } from 'slate-react';
3
- import { clearFormatting } from '@plone/volto-slate/utils';
4
-
5
- import ToolbarButton from './ToolbarButton';
6
-
7
- const ClearFormattingButton = ({ icon, ...props }) => {
8
- const editor = useSlate();
9
-
10
- const handleMouseDown = React.useCallback(
11
- (event) => {
12
- event.preventDefault();
13
- clearFormatting(editor);
14
- },
15
- [editor],
16
- );
17
-
18
- return <ToolbarButton {...props} onMouseDown={handleMouseDown} icon={icon} />;
19
- };
20
-
21
- export default ClearFormattingButton;
@@ -1,18 +0,0 @@
1
- import React from 'react';
2
-
3
- import BasicToolbar from './BasicToolbar';
4
- import Expando from './Expando';
5
-
6
- const ExpandedToolbar = React.forwardRef(
7
- ({ className, toggleButton, children, ...props }, ref) => {
8
- return (
9
- <BasicToolbar {...props} className={className} ref={ref}>
10
- {children}
11
- <Expando />
12
- {toggleButton}
13
- </BasicToolbar>
14
- );
15
- },
16
- );
17
-
18
- export default ExpandedToolbar;
@@ -1,5 +0,0 @@
1
- import React from 'react';
2
-
3
- const Expando = (props) => <div className="expando"> </div>;
4
-
5
- export default Expando;
@@ -1,73 +0,0 @@
1
- import React from 'react'; // , useState
2
- import SlateToolbar from './SlateToolbar';
3
- import SlateContextToolbar from './SlateContextToolbar';
4
- import config from '@plone/volto/registry';
5
- import { hasRangeSelection } from '@plone/volto-slate/utils';
6
- import { ReactEditor } from 'slate-react';
7
- import cx from 'classnames';
8
-
9
- /**
10
- * The main Slate toolbar. All the others are just wrappers, UI or used here
11
- */
12
- const InlineToolbar = (props) => {
13
- const {
14
- editor,
15
- className,
16
- showExpandedToolbar,
17
- setShowExpandedToolbar,
18
- } = props;
19
-
20
- const slate = props.slateSettings || config.settings.slate;
21
-
22
- const [showMainToolbar, setShowMainToolbar] = React.useState(
23
- !!(editor.selection && hasRangeSelection(editor)),
24
- );
25
-
26
- React.useEffect(() => {
27
- let el;
28
- try {
29
- el = ReactEditor.toDOMNode(editor, editor);
30
- } catch {
31
- return;
32
- }
33
- const toggleToolbar = () => {
34
- const selection = window.getSelection();
35
- const { activeElement } = window.document;
36
- if (activeElement !== el) return;
37
- if (!selection.isCollapsed && !showMainToolbar) {
38
- setShowMainToolbar(true);
39
- } else if (selection.isCollapsed && showMainToolbar) {
40
- setShowMainToolbar(false);
41
- }
42
- };
43
- window.document.addEventListener('selectionchange', toggleToolbar);
44
- return () => document.removeEventListener('selectionchange', toggleToolbar);
45
- }, [editor, showMainToolbar]);
46
-
47
- const showContextToolbar =
48
- slate.contextToolbarButtons.map((plug) => plug(editor)).filter((c) => !!c)
49
- .length > 0;
50
-
51
- return (
52
- <>
53
- <SlateToolbar
54
- className={cx(className, {
55
- upper: showContextToolbar,
56
- })}
57
- selected={true}
58
- enableExpando={slate.enableExpandedToolbar}
59
- showExpandedToolbar={showExpandedToolbar}
60
- setShowExpandedToolbar={setShowExpandedToolbar}
61
- show={showMainToolbar}
62
- slateSettings={slate}
63
- />
64
- <SlateContextToolbar
65
- editor={editor}
66
- plugins={slate.contextToolbarButtons}
67
- show={showContextToolbar}
68
- />
69
- </>
70
- );
71
- };
72
-
73
- export default InlineToolbar;
@@ -1,23 +0,0 @@
1
- import React from 'react';
2
- import { useSlate } from 'slate-react';
3
-
4
- import { isMarkActive, toggleMark } from '@plone/volto-slate/utils';
5
- import ToolbarButton from './ToolbarButton';
6
-
7
- const MarkButton = ({ format, icon, ...props }) => {
8
- const editor = useSlate();
9
-
10
- return (
11
- <ToolbarButton
12
- {...props}
13
- active={isMarkActive(editor, format)}
14
- onMouseDown={(event) => {
15
- event.preventDefault();
16
- toggleMark(editor, format);
17
- }}
18
- icon={icon}
19
- />
20
- );
21
- };
22
-
23
- export default MarkButton;
@@ -1,30 +0,0 @@
1
- import React from 'react';
2
- import { useSlate } from 'slate-react';
3
- import { isBlockActive, toggleInlineFormat } from '@plone/volto-slate/utils';
4
-
5
- import ToolbarButton from './ToolbarButton';
6
-
7
- const MarkElementButton = ({ format, icon, ...props }) => {
8
- const editor = useSlate();
9
-
10
- const isActive = isBlockActive(editor, format);
11
-
12
- const handleMouseDown = React.useCallback(
13
- (event) => {
14
- event.preventDefault();
15
- toggleInlineFormat(editor, format);
16
- },
17
- [editor, format], // , isActive
18
- );
19
-
20
- return (
21
- <ToolbarButton
22
- {...props}
23
- active={isActive}
24
- onMouseDown={handleMouseDown}
25
- icon={icon}
26
- />
27
- );
28
- };
29
-
30
- export default MarkElementButton;
@@ -1,13 +0,0 @@
1
- import cx from 'classnames';
2
- import React from 'react';
3
- import { Button } from 'semantic-ui-react';
4
-
5
- const Menu = React.forwardRef(({ className, ...props }, ref) => {
6
- return (
7
- <div className={cx(className, 'slate-menu')} ref={ref}>
8
- <Button.Group {...props} />
9
- </div>
10
- );
11
- });
12
-
13
- export default Menu;
@@ -1,32 +0,0 @@
1
- import React from 'react';
2
- import { Portal } from 'react-portal';
3
-
4
- import BasicToolbar from './BasicToolbar';
5
-
6
- const PositionedToolbar = ({ toggleButton, className, children, position }) => {
7
- // TODO: "position" is actually an object like `{ style: {} }`
8
- // To be renamed as "attributes" or "attrs"
9
- const ref = React.useRef();
10
-
11
- React.useEffect(() => {
12
- const el = ref.current;
13
-
14
- const { style } = position || {};
15
- const left = `${Math.max(style.left - el.offsetWidth / 2, 0)}px`;
16
- const top = `${style.top - el.offsetHeight}px`;
17
-
18
- el.style.opacity = style.opacity;
19
- el.style.top = top;
20
- el.style.left = left;
21
- });
22
-
23
- return (
24
- <Portal>
25
- <BasicToolbar className={`slate-inline-toolbar ${className}`} ref={ref}>
26
- {children}
27
- </BasicToolbar>
28
- </Portal>
29
- );
30
- };
31
-
32
- export default PositionedToolbar;
@@ -1,7 +0,0 @@
1
- import React from 'react';
2
-
3
- const Separator = () => {
4
- return <div className="toolbar-separator" />;
5
- };
6
-
7
- export default Separator;
@@ -1,13 +0,0 @@
1
- import React from 'react';
2
- import Toolbar from './Toolbar';
3
-
4
- // A toolbar that conditionally renders itself based on the presense of
5
- // children
6
- export default function SlateContextToolbar({ editor, plugins, show }) {
7
- if (!show) {
8
- return null;
9
- }
10
-
11
- const components = plugins.map((plug) => plug(editor)).filter((c) => !!c);
12
- return components.length ? <Toolbar>{components}</Toolbar> : '';
13
- }
@@ -1,96 +0,0 @@
1
- /**
2
- * This is the main toolbar, which:
3
- *
4
- * - appears only when a range selection exists
5
- * - can be toggled between expanded and hovering state
6
- *
7
- */
8
-
9
- import React from 'react';
10
- import cx from 'classnames';
11
-
12
- import toggleIcon from '@plone/volto/icons/more.svg';
13
-
14
- import Toolbar from './Toolbar';
15
- import ExpandedToolbar from './ExpandedToolbar';
16
- import ToolbarButton from './ToolbarButton';
17
-
18
- import config from '@plone/volto/registry';
19
-
20
- const SlateToolbar = (props) => {
21
- const {
22
- selected,
23
- showExpandedToolbar,
24
- setShowExpandedToolbar,
25
- className,
26
- enableExpando = false,
27
- show,
28
- } = props;
29
-
30
- const slate = props.slateSettings || config.settings.slate;
31
-
32
- const { toolbarButtons, expandedToolbarButtons, buttons } = slate;
33
-
34
- function renderButton(name, index) {
35
- const Btn = buttons[name];
36
- if (!Btn) {
37
- // eslint-disable-next-line
38
- console.warn('Button not found:', name);
39
- return null;
40
- }
41
- // using also name because some buttons can be like "Separator"
42
- return <Btn key={`${name}-${index}`} />;
43
- }
44
-
45
- return (
46
- <>
47
- {!showExpandedToolbar && (
48
- <Toolbar
49
- show={show}
50
- toggleButton={
51
- enableExpando && (
52
- <ToolbarButton
53
- title="More..."
54
- onMouseDown={(event) => {
55
- setShowExpandedToolbar(!showExpandedToolbar);
56
- event.preventDefault();
57
- }}
58
- icon={toggleIcon}
59
- active={showExpandedToolbar}
60
- />
61
- )
62
- }
63
- className={className}
64
- >
65
- {toolbarButtons?.map(renderButton)}
66
- </Toolbar>
67
- )}
68
- <div
69
- className={cx('toolbar-wrapper', {
70
- active: showExpandedToolbar && selected,
71
- })}
72
- >
73
- {selected && showExpandedToolbar && (
74
- <ExpandedToolbar
75
- show={show}
76
- toggleButton={
77
- <ToolbarButton
78
- title="Less..."
79
- onMouseDown={(event) => {
80
- setShowExpandedToolbar(!showExpandedToolbar);
81
- event.preventDefault();
82
- }}
83
- icon={toggleIcon}
84
- active={showExpandedToolbar}
85
- />
86
- }
87
- >
88
- {expandedToolbarButtons?.map(renderButton)}
89
- </ExpandedToolbar>
90
- )}
91
- </div>
92
- </>
93
- );
94
- };
95
-
96
- export default SlateToolbar;