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

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 (349) hide show
  1. package/.eslintignore +1 -0
  2. package/.eslintrc +3 -3
  3. package/.prettierignore +8 -0
  4. package/.prettierrc +12 -0
  5. package/{packages/registry/.release-it.json → .release-it.json} +12 -6
  6. package/CHANGELOG.md +50 -4
  7. package/package.json +60 -127
  8. package/razzle.config.js +4 -7
  9. package/src/components/manage/Add/Add.jsx +6 -0
  10. package/src/components/manage/BlockChooser/BlockChooser.jsx +3 -1
  11. package/src/components/manage/BlockChooser/BlockChooserButton.jsx +5 -0
  12. package/src/components/manage/Blocks/Block/BlocksForm.jsx +4 -0
  13. package/src/components/manage/Blocks/Block/DefaultEdit.jsx +3 -1
  14. package/src/components/manage/Blocks/Block/EditBlockWrapper.jsx +5 -0
  15. package/src/components/manage/Blocks/Block/Settings.jsx +10 -1
  16. package/src/components/manage/Blocks/Container/Data.jsx +4 -1
  17. package/src/components/manage/Blocks/HeroImageLeft/Data.jsx +3 -1
  18. package/src/components/manage/Blocks/Image/ImageSidebar.jsx +4 -1
  19. package/src/components/manage/Blocks/Listing/ListingData.jsx +4 -1
  20. package/src/components/manage/Blocks/Maps/MapsSidebar.jsx +3 -1
  21. package/src/components/manage/Blocks/Search/SearchBlockEdit.jsx +4 -0
  22. package/src/components/manage/Blocks/Teaser/Data.jsx +4 -1
  23. package/src/components/manage/Blocks/ToC/Edit.jsx +2 -0
  24. package/src/components/manage/Blocks/Video/VideoSidebar.jsx +3 -1
  25. package/src/components/manage/Controlpanels/Users/UserGroupMembershipControlPanel.jsx +2 -2
  26. package/src/components/manage/Edit/Edit.jsx +1 -0
  27. package/src/components/manage/Form/Form.jsx +14 -3
  28. package/src/components/theme/Image/Image.jsx +4 -2
  29. package/src/components/theme/Image/Image.test.jsx +32 -0
  30. package/src/config/index.js +0 -4
  31. package/src/helpers/Blocks/Blocks.js +11 -2
  32. package/src/helpers/Extensions/withBlockSchemaEnhancer.js +20 -9
  33. package/src/helpers/Url/Url.js +5 -4
  34. package/src/helpers/Url/Url.test.js +52 -0
  35. package/src/icons/divide-horizontal.svg +0 -0
  36. package/src/icons/divide-vertical.svg +0 -0
  37. package/src/icons/hero.svg +0 -0
  38. package/src/icons/slider.svg +0 -0
  39. package/src/icons/summary.svg +0 -0
  40. package/src/middleware/api.js +1 -1
  41. package/theme/themes/default/elements/icon.overrides +0 -0
  42. package/theme/themes/default/globals/reset.overrides +0 -0
  43. package/theme/themes/default/globals/site.variables +0 -0
  44. package/theme/themes/default/modules/dropdown.overrides +0 -0
  45. package/theme/themes/default/modules/dropdown.variables +0 -0
  46. package/theme/themes/default/modules/modal.variables +0 -0
  47. package/theme/themes/default/modules/video.overrides +0 -0
  48. package/theme/themes/default/modules/video.variables +0 -0
  49. package/theme/themes/pastanaga/assets/fonts/icons.eot +0 -0
  50. package/theme/themes/pastanaga/assets/fonts/icons.svg +0 -0
  51. package/theme/themes/pastanaga/assets/fonts/icons.ttf +0 -0
  52. package/theme/themes/pastanaga/assets/fonts/icons.woff +0 -0
  53. package/theme/themes/pastanaga/globals/reset.overrides +0 -0
  54. package/theme/themes/pastanaga/globals/site.variables +0 -0
  55. package/theme/themes/pastanaga/modules/dropdown.variables +0 -0
  56. package/theme/themes/pastanaga/modules/modal.variables +0 -0
  57. package/theme/themes/pastanaga/modules/video.overrides +0 -0
  58. package/theme/themes/pastanaga/modules/video.variables +0 -0
  59. package/tsconfig.json +1 -4
  60. package/types/config/RichTextEditor/index.d.ts +5 -8
  61. package/types/helpers/AsyncConnect/index.d.ts +2 -2
  62. package/types/helpers/Extensions/withBlockSchemaEnhancer.d.ts +3 -1
  63. package/types/helpers/Url/Url.d.ts +3 -3
  64. package/types/icons/load-icons.d.ts +1 -1
  65. package/webpack-plugins/webpack-less-plugin.js +1 -0
  66. package/CODE_OF_CONDUCT.md +0 -13
  67. package/CONTRIBUTING.md +0 -7
  68. package/README.md +0 -154
  69. package/RELEASING.md +0 -73
  70. package/ROADMAP.md +0 -30
  71. package/SECURITY.md +0 -14
  72. package/apps/plone/node_modules/.bin/acorn +0 -17
  73. package/apps/plone/node_modules/.bin/addon +0 -17
  74. package/apps/plone/node_modules/.bin/autoprefixer +0 -17
  75. package/apps/plone/node_modules/.bin/browserslist +0 -17
  76. package/apps/plone/node_modules/.bin/build-storybook +0 -17
  77. package/apps/plone/node_modules/.bin/changelogupdater +0 -17
  78. package/apps/plone/node_modules/.bin/eslint +0 -17
  79. package/apps/plone/node_modules/.bin/eslint-config-prettier +0 -17
  80. package/apps/plone/node_modules/.bin/i18n +0 -17
  81. package/apps/plone/node_modules/.bin/jest +0 -17
  82. package/apps/plone/node_modules/.bin/lessc +0 -17
  83. package/apps/plone/node_modules/.bin/missdev +0 -17
  84. package/apps/plone/node_modules/.bin/prettier +0 -17
  85. package/apps/plone/node_modules/.bin/razzle +0 -17
  86. package/apps/plone/node_modules/.bin/server-test +0 -17
  87. package/apps/plone/node_modules/.bin/start-server-and-test +0 -17
  88. package/apps/plone/node_modules/.bin/start-storybook +0 -17
  89. package/apps/plone/node_modules/.bin/start-test +0 -17
  90. package/apps/plone/node_modules/.bin/storybook-server +0 -17
  91. package/apps/plone/node_modules/.bin/stylelint +0 -17
  92. package/apps/plone/node_modules/.bin/tlds +0 -17
  93. package/apps/plone/node_modules/.bin/ts-jest +0 -17
  94. package/apps/plone/node_modules/.bin/tsc +0 -17
  95. package/apps/plone/node_modules/.bin/tsserver +0 -17
  96. package/apps/plone/node_modules/.bin/uuid +0 -17
  97. package/apps/plone/node_modules/.bin/webpack +0 -17
  98. package/apps/plone/node_modules/.bin/webpack-dev-server +0 -17
  99. package/apps/plone/src/addons/volto-volto-project/node_modules/.bin/acorn +0 -17
  100. package/apps/plone/src/addons/volto-volto-project/node_modules/.bin/addon +0 -17
  101. package/apps/plone/src/addons/volto-volto-project/node_modules/.bin/browserslist +0 -17
  102. package/apps/plone/src/addons/volto-volto-project/node_modules/.bin/changelogupdater +0 -17
  103. package/apps/plone/src/addons/volto-volto-project/node_modules/.bin/eslint +0 -17
  104. package/apps/plone/src/addons/volto-volto-project/node_modules/.bin/eslint-config-prettier +0 -17
  105. package/apps/plone/src/addons/volto-volto-project/node_modules/.bin/i18n +0 -17
  106. package/apps/plone/src/addons/volto-volto-project/node_modules/.bin/prettier +0 -17
  107. package/apps/plone/src/addons/volto-volto-project/node_modules/.bin/release-it +0 -17
  108. package/apps/plone/src/addons/volto-volto-project/node_modules/.bin/stylelint +0 -17
  109. package/apps/plone/src/addons/volto-volto-project/node_modules/.bin/tsc +0 -17
  110. package/apps/plone/src/addons/volto-volto-project/node_modules/.bin/tsserver +0 -17
  111. package/logos/Logo.png +0 -0
  112. package/logos/VoltoLogoEra2-dark-mode.png +0 -0
  113. package/logos/VoltoLogoEra2.png +0 -0
  114. package/logos/volto-colorful.png +0 -0
  115. package/logos/volto-colorful.svg +0 -35
  116. package/logos/volto-guide.png +0 -0
  117. package/logos/volto-h-transparent.svg +0 -6
  118. package/logos/volto-transparent.png +0 -0
  119. package/logos/volto-transparent.svg +0 -19
  120. package/logos/volto-transparent2.svg +0 -5
  121. package/logos/volto-yellow.svg +0 -29
  122. package/logos/volto.sketch +0 -0
  123. package/packages/README.md +0 -7
  124. package/packages/registry/.towncrier/towncrier_template.jinja +0 -10
  125. package/packages/registry/CHANGELOG.md +0 -16
  126. package/packages/registry/README.md +0 -207
  127. package/packages/registry/addon-registry.js +0 -603
  128. package/packages/registry/create-addons-loader.js +0 -116
  129. package/packages/registry/create-theme-addons-loader.js +0 -78
  130. package/packages/registry/news/.gitkeep +0 -0
  131. package/packages/registry/node_modules/.bin/browserslist +0 -17
  132. package/packages/registry/node_modules/.bin/parcel +0 -17
  133. package/packages/registry/node_modules/.bin/release-it +0 -17
  134. package/packages/registry/node_modules/.bin/tsc +0 -17
  135. package/packages/registry/node_modules/.bin/tsserver +0 -17
  136. package/packages/registry/node_modules/.bin/vitest +0 -17
  137. package/packages/registry/package.json +0 -76
  138. package/packages/registry/src/index.ts +0 -174
  139. package/packages/registry/src/registry.test.js +0 -111
  140. package/packages/registry/tsconfig.json +0 -32
  141. package/packages/scripts/CHANGELOG.md +0 -173
  142. package/packages/scripts/README.md +0 -128
  143. package/packages/scripts/addon/consolidate.js +0 -28
  144. package/packages/scripts/addon/generators.js +0 -213
  145. package/packages/scripts/addon/getAddonInfo.js +0 -65
  146. package/packages/scripts/addon/index.js +0 -88
  147. package/packages/scripts/addon/utils.js +0 -44
  148. package/packages/scripts/backportpr.js +0 -75
  149. package/packages/scripts/changelogupdater.cjs +0 -94
  150. package/packages/scripts/corepackagebump.js +0 -20
  151. package/packages/scripts/i18n.cjs +0 -310
  152. package/packages/scripts/package.json +0 -76
  153. package/packages/scripts/templates/towncrier_template.jinja +0 -10
  154. package/packages/types/Blocks/View.ts +0 -11
  155. package/packages/types/actions.ts +0 -15
  156. package/packages/types/breadcrumbs.ts +0 -10
  157. package/packages/types/config/Blocks.ts +0 -153
  158. package/packages/types/config/Content.ts +0 -62
  159. package/packages/types/config/Settings.ts +0 -86
  160. package/packages/types/config/Views.ts +0 -15
  161. package/packages/types/config/Widgets.ts +0 -7
  162. package/packages/types/config/index.ts +0 -21
  163. package/packages/types/content/common.ts +0 -60
  164. package/packages/types/content/get.ts +0 -66
  165. package/packages/types/index.ts +0 -0
  166. package/packages/types/navigation.ts +0 -12
  167. package/packages/types/node_modules/.bin/browserslist +0 -17
  168. package/packages/types/node_modules/.bin/parcel +0 -17
  169. package/packages/types/node_modules/.bin/release-it +0 -17
  170. package/packages/types/node_modules/.bin/tsc +0 -17
  171. package/packages/types/node_modules/.bin/tsserver +0 -17
  172. package/packages/types/package.json +0 -64
  173. package/packages/types/types.ts +0 -61
  174. package/packages/volto-slate/.i18n.babel.config.js +0 -1
  175. package/packages/volto-slate/README.md +0 -4
  176. package/packages/volto-slate/build/messages/src/blocks/Table/TableBlockEdit.json +0 -90
  177. package/packages/volto-slate/build/messages/src/blocks/Text/DefaultTextBlockEditor.json +0 -6
  178. package/packages/volto-slate/build/messages/src/blocks/Text/DetachedTextBlockEditor.json +0 -6
  179. package/packages/volto-slate/build/messages/src/blocks/Text/SlashMenu.json +0 -6
  180. package/packages/volto-slate/build/messages/src/editor/plugins/AdvancedLink/index.json +0 -10
  181. package/packages/volto-slate/build/messages/src/editor/plugins/Link/index.json +0 -10
  182. package/packages/volto-slate/build/messages/src/editor/plugins/Table/index.json +0 -30
  183. package/packages/volto-slate/build/messages/src/elementEditor/messages.json +0 -10
  184. package/packages/volto-slate/build/messages/src/widgets/HtmlSlateWidget.json +0 -6
  185. package/packages/volto-slate/build/messages/src/widgets/RichTextWidgetView.json +0 -6
  186. package/packages/volto-slate/locales/de/LC_MESSAGES/volto.po +0 -148
  187. package/packages/volto-slate/locales/en/LC_MESSAGES/volto.po +0 -148
  188. package/packages/volto-slate/locales/volto.pot +0 -182
  189. package/packages/volto-slate/package.json +0 -43
  190. package/packages/volto-slate/src/actions/content.js +0 -30
  191. package/packages/volto-slate/src/actions/index.js +0 -3
  192. package/packages/volto-slate/src/actions/plugins.js +0 -9
  193. package/packages/volto-slate/src/actions/selection.js +0 -22
  194. package/packages/volto-slate/src/blocks/Table/Cell.jsx +0 -87
  195. package/packages/volto-slate/src/blocks/Table/Cell.test.js +0 -54
  196. package/packages/volto-slate/src/blocks/Table/TableBlockEdit.jsx +0 -694
  197. package/packages/volto-slate/src/blocks/Table/TableBlockEdit.test.js +0 -40
  198. package/packages/volto-slate/src/blocks/Table/TableBlockView.jsx +0 -150
  199. package/packages/volto-slate/src/blocks/Table/TableBlockView.test.js +0 -49
  200. package/packages/volto-slate/src/blocks/Table/deconstruct.js +0 -113
  201. package/packages/volto-slate/src/blocks/Table/extensions/normalizeTable.js +0 -5
  202. package/packages/volto-slate/src/blocks/Table/index.js +0 -60
  203. package/packages/volto-slate/src/blocks/Table/schema.js +0 -122
  204. package/packages/volto-slate/src/blocks/Text/DefaultTextBlockEditor.jsx +0 -304
  205. package/packages/volto-slate/src/blocks/Text/DetachedTextBlockEditor.jsx +0 -77
  206. package/packages/volto-slate/src/blocks/Text/MarkdownIntroduction.jsx +0 -59
  207. package/packages/volto-slate/src/blocks/Text/PluginSidebar.jsx +0 -18
  208. package/packages/volto-slate/src/blocks/Text/ShortcutListing.jsx +0 -28
  209. package/packages/volto-slate/src/blocks/Text/SlashMenu.jsx +0 -203
  210. package/packages/volto-slate/src/blocks/Text/TextBlockEdit.jsx +0 -38
  211. package/packages/volto-slate/src/blocks/Text/TextBlockEdit.test.js +0 -107
  212. package/packages/volto-slate/src/blocks/Text/TextBlockSchema.js +0 -54
  213. package/packages/volto-slate/src/blocks/Text/TextBlockView.jsx +0 -31
  214. package/packages/volto-slate/src/blocks/Text/css/editor.css +0 -18
  215. package/packages/volto-slate/src/blocks/Text/extensions/Readme.md +0 -49
  216. package/packages/volto-slate/src/blocks/Text/extensions/breakList.js +0 -100
  217. package/packages/volto-slate/src/blocks/Text/extensions/index.js +0 -6
  218. package/packages/volto-slate/src/blocks/Text/extensions/insertBreak.js +0 -57
  219. package/packages/volto-slate/src/blocks/Text/extensions/isSelected.js +0 -7
  220. package/packages/volto-slate/src/blocks/Text/extensions/normalizeExternalData.js +0 -7
  221. package/packages/volto-slate/src/blocks/Text/extensions/withDeserializers.js +0 -87
  222. package/packages/volto-slate/src/blocks/Text/extensions/withLists.js +0 -5
  223. package/packages/volto-slate/src/blocks/Text/index.js +0 -171
  224. package/packages/volto-slate/src/blocks/Text/keyboard/backspaceInList.js +0 -58
  225. package/packages/volto-slate/src/blocks/Text/keyboard/breakBlocks.js +0 -3
  226. package/packages/volto-slate/src/blocks/Text/keyboard/cancelEsc.js +0 -7
  227. package/packages/volto-slate/src/blocks/Text/keyboard/indentListItems.js +0 -240
  228. package/packages/volto-slate/src/blocks/Text/keyboard/index.js +0 -52
  229. package/packages/volto-slate/src/blocks/Text/keyboard/joinBlocks.js +0 -180
  230. package/packages/volto-slate/src/blocks/Text/keyboard/moveListItems.js +0 -124
  231. package/packages/volto-slate/src/blocks/Text/keyboard/slashMenu.js +0 -19
  232. package/packages/volto-slate/src/blocks/Text/keyboard/softBreak.js +0 -7
  233. package/packages/volto-slate/src/blocks/Text/keyboard/traverseBlocks.js +0 -81
  234. package/packages/volto-slate/src/blocks/Text/keyboard/unwrapEmptyString.js +0 -26
  235. package/packages/volto-slate/src/blocks/Text/schema.js +0 -39
  236. package/packages/volto-slate/src/constants.js +0 -123
  237. package/packages/volto-slate/src/editor/EditorContext.jsx +0 -5
  238. package/packages/volto-slate/src/editor/EditorReference.jsx +0 -22
  239. package/packages/volto-slate/src/editor/SlateEditor.jsx +0 -375
  240. package/packages/volto-slate/src/editor/config.jsx +0 -344
  241. package/packages/volto-slate/src/editor/decorate.js +0 -68
  242. package/packages/volto-slate/src/editor/deserialize.js +0 -185
  243. package/packages/volto-slate/src/editor/extensions/index.js +0 -6
  244. package/packages/volto-slate/src/editor/extensions/insertBreak.js +0 -15
  245. package/packages/volto-slate/src/editor/extensions/insertData.js +0 -159
  246. package/packages/volto-slate/src/editor/extensions/isInline.js +0 -14
  247. package/packages/volto-slate/src/editor/extensions/normalizeExternalData.js +0 -8
  248. package/packages/volto-slate/src/editor/extensions/normalizeNode.js +0 -48
  249. package/packages/volto-slate/src/editor/extensions/withDeserializers.js +0 -15
  250. package/packages/volto-slate/src/editor/extensions/withTestingFeatures.jsx +0 -84
  251. package/packages/volto-slate/src/editor/index.js +0 -14
  252. package/packages/volto-slate/src/editor/less/editor.less +0 -173
  253. package/packages/volto-slate/src/editor/less/globals.less +0 -18
  254. package/packages/volto-slate/src/editor/less/slate.less +0 -28
  255. package/packages/volto-slate/src/editor/plugins/AdvancedLink/deserialize.js +0 -90
  256. package/packages/volto-slate/src/editor/plugins/AdvancedLink/extensions.js +0 -32
  257. package/packages/volto-slate/src/editor/plugins/AdvancedLink/index.js +0 -50
  258. package/packages/volto-slate/src/editor/plugins/AdvancedLink/render.jsx +0 -37
  259. package/packages/volto-slate/src/editor/plugins/AdvancedLink/schema.js +0 -114
  260. package/packages/volto-slate/src/editor/plugins/AdvancedLink/styles.less +0 -8
  261. package/packages/volto-slate/src/editor/plugins/Blockquote/index.js +0 -30
  262. package/packages/volto-slate/src/editor/plugins/Callout/index.js +0 -34
  263. package/packages/volto-slate/src/editor/plugins/Image/deconstruct.js +0 -30
  264. package/packages/volto-slate/src/editor/plugins/Image/extensions.js +0 -51
  265. package/packages/volto-slate/src/editor/plugins/Image/index.js +0 -11
  266. package/packages/volto-slate/src/editor/plugins/Image/render.jsx +0 -22
  267. package/packages/volto-slate/src/editor/plugins/Link/extensions.js +0 -58
  268. package/packages/volto-slate/src/editor/plugins/Link/index.js +0 -164
  269. package/packages/volto-slate/src/editor/plugins/Link/render.jsx +0 -54
  270. package/packages/volto-slate/src/editor/plugins/Markdown/constants.js +0 -81
  271. package/packages/volto-slate/src/editor/plugins/Markdown/extensions.js +0 -334
  272. package/packages/volto-slate/src/editor/plugins/Markdown/index.js +0 -28
  273. package/packages/volto-slate/src/editor/plugins/Markdown/utils.js +0 -198
  274. package/packages/volto-slate/src/editor/plugins/StyleMenu/StyleMenu.jsx +0 -153
  275. package/packages/volto-slate/src/editor/plugins/StyleMenu/index.js +0 -19
  276. package/packages/volto-slate/src/editor/plugins/StyleMenu/style.less +0 -29
  277. package/packages/volto-slate/src/editor/plugins/StyleMenu/utils.js +0 -168
  278. package/packages/volto-slate/src/editor/plugins/Table/TableButton.jsx +0 -142
  279. package/packages/volto-slate/src/editor/plugins/Table/TableCell.jsx +0 -44
  280. package/packages/volto-slate/src/editor/plugins/Table/TableContainer.jsx +0 -37
  281. package/packages/volto-slate/src/editor/plugins/Table/TableSizePicker.jsx +0 -83
  282. package/packages/volto-slate/src/editor/plugins/Table/extensions.js +0 -87
  283. package/packages/volto-slate/src/editor/plugins/Table/index.js +0 -390
  284. package/packages/volto-slate/src/editor/plugins/Table/less/public.less +0 -29
  285. package/packages/volto-slate/src/editor/plugins/Table/less/table.less +0 -28
  286. package/packages/volto-slate/src/editor/plugins/Table/render.jsx +0 -30
  287. package/packages/volto-slate/src/editor/plugins/index.js +0 -19
  288. package/packages/volto-slate/src/editor/render.jsx +0 -224
  289. package/packages/volto-slate/src/editor/ui/BasicToolbar.jsx +0 -11
  290. package/packages/volto-slate/src/editor/ui/BlockButton.jsx +0 -31
  291. package/packages/volto-slate/src/editor/ui/ClearFormattingButton.jsx +0 -21
  292. package/packages/volto-slate/src/editor/ui/ExpandedToolbar.jsx +0 -18
  293. package/packages/volto-slate/src/editor/ui/Expando.jsx +0 -5
  294. package/packages/volto-slate/src/editor/ui/InlineToolbar.jsx +0 -73
  295. package/packages/volto-slate/src/editor/ui/MarkButton.jsx +0 -23
  296. package/packages/volto-slate/src/editor/ui/MarkElementButton.jsx +0 -30
  297. package/packages/volto-slate/src/editor/ui/Menu.jsx +0 -13
  298. package/packages/volto-slate/src/editor/ui/PositionedToolbar.jsx +0 -32
  299. package/packages/volto-slate/src/editor/ui/Separator.jsx +0 -7
  300. package/packages/volto-slate/src/editor/ui/SlateContextToolbar.jsx +0 -13
  301. package/packages/volto-slate/src/editor/ui/SlateToolbar.jsx +0 -96
  302. package/packages/volto-slate/src/editor/ui/Toolbar.jsx +0 -103
  303. package/packages/volto-slate/src/editor/ui/ToolbarButton.jsx +0 -33
  304. package/packages/volto-slate/src/editor/ui/ToolbarButton.test.js +0 -25
  305. package/packages/volto-slate/src/editor/ui/index.js +0 -15
  306. package/packages/volto-slate/src/editor/utils.js +0 -248
  307. package/packages/volto-slate/src/elementEditor/ContextButtons.jsx +0 -56
  308. package/packages/volto-slate/src/elementEditor/PluginEditor.jsx +0 -124
  309. package/packages/volto-slate/src/elementEditor/Readme.md +0 -6
  310. package/packages/volto-slate/src/elementEditor/SchemaProvider.jsx +0 -3
  311. package/packages/volto-slate/src/elementEditor/SidebarEditor.jsx +0 -46
  312. package/packages/volto-slate/src/elementEditor/ToolbarButton.jsx +0 -44
  313. package/packages/volto-slate/src/elementEditor/index.js +0 -5
  314. package/packages/volto-slate/src/elementEditor/makeInlineElementPlugin.js +0 -100
  315. package/packages/volto-slate/src/elementEditor/messages.js +0 -14
  316. package/packages/volto-slate/src/elementEditor/utils.js +0 -226
  317. package/packages/volto-slate/src/hooks/index.js +0 -3
  318. package/packages/volto-slate/src/hooks/useEditorContext.js +0 -6
  319. package/packages/volto-slate/src/hooks/useIsomorphicLayoutEffect.js +0 -7
  320. package/packages/volto-slate/src/hooks/useSelectionPosition.js +0 -25
  321. package/packages/volto-slate/src/i18n.js +0 -180
  322. package/packages/volto-slate/src/icons/hashlink.svg +0 -57
  323. package/packages/volto-slate/src/index.js +0 -61
  324. package/packages/volto-slate/src/reducers/content.js +0 -74
  325. package/packages/volto-slate/src/reducers/index.js +0 -3
  326. package/packages/volto-slate/src/reducers/plugins.js +0 -17
  327. package/packages/volto-slate/src/reducers/selection.js +0 -16
  328. package/packages/volto-slate/src/utils/blocks.js +0 -375
  329. package/packages/volto-slate/src/utils/blocks.test.js +0 -138
  330. package/packages/volto-slate/src/utils/editor.js +0 -31
  331. package/packages/volto-slate/src/utils/image.js +0 -25
  332. package/packages/volto-slate/src/utils/index.js +0 -11
  333. package/packages/volto-slate/src/utils/internals.js +0 -46
  334. package/packages/volto-slate/src/utils/lists.js +0 -92
  335. package/packages/volto-slate/src/utils/marks.js +0 -104
  336. package/packages/volto-slate/src/utils/mime-types.js +0 -24
  337. package/packages/volto-slate/src/utils/nodes.js +0 -4
  338. package/packages/volto-slate/src/utils/ops.js +0 -20
  339. package/packages/volto-slate/src/utils/random.js +0 -17
  340. package/packages/volto-slate/src/utils/selection.js +0 -236
  341. package/packages/volto-slate/src/utils/slate-string-utils.js +0 -408
  342. package/packages/volto-slate/src/utils/volto-blocks.js +0 -314
  343. package/packages/volto-slate/src/widgets/ErrorBoundary.jsx +0 -27
  344. package/packages/volto-slate/src/widgets/HtmlSlateWidget.jsx +0 -139
  345. package/packages/volto-slate/src/widgets/ObjectByTypeWidget.jsx +0 -49
  346. package/packages/volto-slate/src/widgets/RichTextWidget.jsx +0 -72
  347. package/packages/volto-slate/src/widgets/RichTextWidgetView.jsx +0 -37
  348. package/packages/volto-slate/src/widgets/style.css +0 -21
  349. 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;