@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,87 +0,0 @@
1
- import { blockTagDeserializer } from '@plone/volto-slate/editor/deserialize';
2
- import {
3
- TABLE,
4
- TR,
5
- TD,
6
- TFOOT,
7
- THEAD,
8
- TBODY,
9
- TH,
10
- } from '@plone/volto-slate/constants';
11
- import { Editor, Point, Range } from 'slate';
12
-
13
- export const withTable = (editor) => {
14
- const { deleteBackward, deleteForward, insertBreak } = editor;
15
-
16
- // paste support
17
- editor.htmlTagsToSlate = {
18
- ...editor.htmlTagsToSlate,
19
- TABLE: blockTagDeserializer(TABLE),
20
- THEAD: blockTagDeserializer(THEAD),
21
- TFOOT: blockTagDeserializer(TFOOT),
22
- TBODY: blockTagDeserializer(TBODY),
23
- TR: blockTagDeserializer(TR),
24
- TH: blockTagDeserializer(TH),
25
- TD: blockTagDeserializer(TD),
26
- };
27
-
28
- editor.deleteBackward = (unit) => {
29
- const { selection } = editor;
30
-
31
- if (selection && Range.isCollapsed(selection)) {
32
- const [cell] = Editor.nodes(editor, {
33
- match: (n) => n.type === TD,
34
- });
35
-
36
- if (cell) {
37
- const [, cellPath] = cell;
38
- const start = Editor.start(editor, cellPath);
39
-
40
- if (Point.equals(selection.anchor, start)) {
41
- return;
42
- }
43
- }
44
- }
45
-
46
- deleteBackward(unit);
47
- };
48
-
49
- editor.deleteForward = (unit) => {
50
- const { selection } = editor;
51
-
52
- if (selection && Range.isCollapsed(selection)) {
53
- const [cell] = Editor.nodes(editor, {
54
- match: (n) => n.type === TD,
55
- });
56
-
57
- if (cell) {
58
- const [, cellPath] = cell;
59
- const end = Editor.end(editor, cellPath);
60
-
61
- if (Point.equals(selection.anchor, end)) {
62
- return;
63
- }
64
- }
65
- }
66
-
67
- deleteForward(unit);
68
- };
69
-
70
- editor.insertBreak = () => {
71
- const { selection } = editor;
72
-
73
- if (selection) {
74
- const [table] = Editor.nodes(editor, {
75
- match: (n) => n.type === TABLE,
76
- });
77
-
78
- if (table) {
79
- return;
80
- }
81
- }
82
-
83
- insertBreak();
84
- };
85
-
86
- return editor;
87
- };
@@ -1,390 +0,0 @@
1
- import React from 'react';
2
- import { withTable } from './extensions';
3
- import TableButton from './TableButton';
4
- import { tableElements } from './render';
5
- import './less/public.less';
6
-
7
- import clearSVG from '@plone/volto/icons/delete.svg';
8
- import rowBeforeSVG from '@plone/volto/icons/row-before.svg';
9
- import rowAfterSVG from '@plone/volto/icons/row-after.svg';
10
- import colBeforeSVG from '@plone/volto/icons/column-before.svg';
11
- import colAfterSVG from '@plone/volto/icons/column-after.svg';
12
- import rowDeleteSVG from '@plone/volto/icons/row-delete.svg';
13
- import colDeleteSVG from '@plone/volto/icons/column-delete.svg';
14
-
15
- import { ToolbarButton } from '@plone/volto-slate/editor/ui';
16
- import { Range, Transforms, Editor, Path } from 'slate';
17
- import { defineMessages, useIntl } from 'react-intl';
18
- import { TABLE, TR, P, TD, TH } from '@plone/volto-slate/constants';
19
-
20
- const messages = defineMessages({
21
- deleteTable: {
22
- id: 'Delete table',
23
- defaultMessage: 'Delete table',
24
- },
25
- insertRowBefore: {
26
- id: 'Insert row before',
27
- defaultMessage: 'Insert row before',
28
- },
29
- insertRowAfter: {
30
- id: 'Insert row after',
31
- defaultMessage: 'Insert row after',
32
- },
33
- deleteRow: {
34
- id: 'Delete row',
35
- defaultMessage: 'Delete row',
36
- },
37
- insertColBefore: {
38
- id: 'Insert col before',
39
- defaultMessage: 'Insert col before',
40
- },
41
- insertColAfter: {
42
- id: 'Insert col after',
43
- defaultMessage: 'Insert col after',
44
- },
45
- deleteCol: {
46
- id: 'Delete col',
47
- defaultMessage: 'Delete col',
48
- },
49
- });
50
-
51
- const unhangRange = (editor, options = {}) => {
52
- const { at = editor.selection, voids, unhang = true } = options;
53
-
54
- if (Range.isRange(at) && unhang) {
55
- options.at = Editor.unhangRange(editor, at, { voids });
56
- }
57
- };
58
-
59
- const getNodes = (editor, options = {}) => {
60
- unhangRange(editor, options);
61
-
62
- return Editor.nodes(editor, options);
63
- };
64
-
65
- const findNode = (editor, options = {}) => {
66
- try {
67
- const nodeEntries = getNodes(editor, {
68
- at: editor.selection || editor.getSavedSelection() || [],
69
- });
70
-
71
- for (const [node, path] of nodeEntries) {
72
- return [node, path];
73
- }
74
- } catch (error) {
75
- return undefined;
76
- }
77
- };
78
-
79
- const someNode = (editor, options) => {
80
- return !!findNode(editor, options);
81
- };
82
-
83
- const getEmptyCellNode = (editor, { header }) => {
84
- return {
85
- type: header ? TH : TD,
86
- children: [{ type: P, children: [{ text: '' }] }],
87
- };
88
- };
89
-
90
- const getEmptyRowNode = (editor, { header, colCount }) => {
91
- return {
92
- type: TR,
93
- children: Array(colCount)
94
- .fill(colCount)
95
- .map(() => getEmptyCellNode(editor, { header })),
96
- };
97
- };
98
-
99
- const addRowBefore = (editor, { header } = {}) => {
100
- if (someNode(editor, { match: (n) => n.type === TABLE })) {
101
- const currentRowItem = Editor.above(editor, {
102
- match: (n) => n.type === TR,
103
- });
104
- if (currentRowItem) {
105
- const [currentRowElem, currentRowPath] = currentRowItem;
106
- Transforms.insertNodes(
107
- editor,
108
- getEmptyRowNode(editor, {
109
- header,
110
- colCount: currentRowElem.children.length,
111
- }),
112
- {
113
- at: currentRowPath,
114
- select: true, // TODO: this and similar lines in the Table plugin do nothing currently, why?
115
- },
116
- );
117
- }
118
- }
119
- };
120
-
121
- const addRowAfter = (editor, { header } = {}) => {
122
- if (someNode(editor, { match: (n) => n.type === TABLE })) {
123
- const currentRowItem = Editor.above(editor, {
124
- match: (n) => n.type === TR,
125
- });
126
- if (currentRowItem) {
127
- const [currentRowElem, currentRowPath] = currentRowItem;
128
- Transforms.insertNodes(
129
- editor,
130
- getEmptyRowNode(editor, {
131
- header,
132
- colCount: currentRowElem.children.length,
133
- }),
134
- {
135
- at: Path.next(currentRowPath),
136
- select: true,
137
- },
138
- );
139
- }
140
- }
141
- };
142
-
143
- const deleteRow = (editor) => {
144
- if (someNode(editor, { match: (n) => n.type === TABLE })) {
145
- const currentTableItem = Editor.above(editor, {
146
- match: (n) => n.type === TABLE,
147
- });
148
- const currentRowItem = Editor.above(editor, {
149
- match: (n) => n.type === TR,
150
- });
151
- if (
152
- currentRowItem &&
153
- currentTableItem &&
154
- // Cannot delete the last row
155
- // TODO: handle tfoot and thead Element types here:
156
- currentTableItem[0].children[0].children.length > 1
157
- ) {
158
- Transforms.removeNodes(editor, { at: currentRowItem[1] });
159
- }
160
- }
161
- };
162
-
163
- const addColBefore = (editor, { header } = {}) => {
164
- if (someNode(editor, { match: (n) => n.type === TABLE })) {
165
- const currentCellItem = Editor.above(editor, {
166
- match: (n) => n.type === TH || n.type === TD,
167
- });
168
- const currentTableItem = Editor.above(editor, {
169
- match: (n) => n.type === TABLE,
170
- });
171
-
172
- if (currentCellItem && currentTableItem) {
173
- const nextCellPath = currentCellItem[1];
174
- const newCellPath = nextCellPath.slice();
175
- const replacePathPos = newCellPath.length - 2;
176
- const currentRowIdx = nextCellPath[replacePathPos];
177
-
178
- // TODO: handle tfoot and thead too:
179
- currentTableItem[0].children[0].children.forEach((row, rowIdx) => {
180
- newCellPath[replacePathPos] = rowIdx;
181
- const isHeaderRow =
182
- header === undefined ? row.children[0].type === TH : header;
183
-
184
- Transforms.insertNodes(
185
- editor,
186
- getEmptyCellNode(editor, { header: isHeaderRow }),
187
- {
188
- at: newCellPath,
189
- select: rowIdx === currentRowIdx,
190
- },
191
- );
192
- });
193
- }
194
- }
195
- };
196
-
197
- const addColAfter = (editor, { header } = {}) => {
198
- if (someNode(editor, { match: (n) => n.type === TABLE })) {
199
- const currentCellItem = Editor.above(editor, {
200
- match: (n) => n.type === TH || n.type === TD,
201
- });
202
- const currentTableItem = Editor.above(editor, {
203
- match: (n) => n.type === TABLE,
204
- });
205
-
206
- if (currentCellItem && currentTableItem) {
207
- const nextCellPath = Path.next(currentCellItem[1]);
208
- const newCellPath = nextCellPath.slice();
209
- const replacePathPos = newCellPath.length - 2;
210
- const currentRowIdx = nextCellPath[replacePathPos];
211
-
212
- // TODO: handle tfoot and thead too:
213
- currentTableItem[0].children[0].children.forEach((row, rowIdx) => {
214
- newCellPath[replacePathPos] = rowIdx;
215
- const isHeaderRow =
216
- header === undefined ? row.children[0].type === TH : header;
217
-
218
- Transforms.insertNodes(
219
- editor,
220
- getEmptyCellNode(editor, { header: isHeaderRow }),
221
- {
222
- at: newCellPath,
223
- select: rowIdx === currentRowIdx,
224
- },
225
- );
226
- });
227
- }
228
- }
229
- };
230
-
231
- const deleteCol = (editor) => {
232
- if (someNode(editor, { match: (n) => n.type === TABLE })) {
233
- const currentCellItem = Editor.above(editor, {
234
- match: (n) => n.type === TD || n.type === TH,
235
- });
236
- const currentRowItem = Editor.above(editor, {
237
- match: (n) => n.type === TR,
238
- });
239
- const currentTableItem = Editor.above(editor, {
240
- match: (n) => n.type === TABLE,
241
- });
242
-
243
- if (
244
- currentCellItem &&
245
- currentRowItem &&
246
- currentTableItem &&
247
- // Cannot delete the last cell
248
- currentRowItem[0].children.length > 1
249
- ) {
250
- const currentCellPath = currentCellItem[1];
251
- const pathToDelete = currentCellPath.slice();
252
- const replacePathPos = pathToDelete.length - 2;
253
-
254
- // TODO: handle tfoot and thead too:
255
- currentTableItem[0].children[0].children.forEach((row, rowIdx) => {
256
- pathToDelete[replacePathPos] = rowIdx;
257
-
258
- Transforms.removeNodes(editor, {
259
- at: pathToDelete,
260
- });
261
- });
262
- }
263
- }
264
- };
265
-
266
- export default function install(config) {
267
- const { slate } = config.settings;
268
-
269
- slate.extensions = [...(slate.extensions || []), withTable];
270
- slate.elements = {
271
- ...slate.elements,
272
- ...tableElements,
273
- };
274
- slate.elementToolbarButtons[TABLE] = [
275
- ({ editor }) => {
276
- const intl = useIntl();
277
-
278
- return (
279
- <ToolbarButton
280
- title={intl.formatMessage(messages.deleteTable)}
281
- icon={clearSVG}
282
- aria-label={intl.formatMessage(messages.deleteTable)}
283
- onMouseDown={() => {
284
- Transforms.removeNodes(editor, {
285
- at: editor.selection || editor.getSavedSelection(),
286
- match: (n) => n.type === TABLE,
287
- });
288
- }}
289
- />
290
- );
291
- },
292
- ({ editor }) => {
293
- const intl = useIntl();
294
-
295
- return (
296
- <ToolbarButton
297
- title={intl.formatMessage(messages.insertRowBefore)}
298
- icon={rowBeforeSVG}
299
- aria-label={intl.formatMessage(messages.insertRowBefore)}
300
- onMouseDown={() => {
301
- addRowBefore(editor);
302
- }}
303
- />
304
- );
305
- },
306
- ({ editor }) => {
307
- const intl = useIntl();
308
-
309
- return (
310
- <ToolbarButton
311
- title={intl.formatMessage(messages.insertRowAfter)}
312
- icon={rowAfterSVG}
313
- aria-label={intl.formatMessage(messages.insertRowAfter)}
314
- onMouseDown={() => {
315
- addRowAfter(editor, { header: false });
316
- }}
317
- />
318
- );
319
- },
320
- ({ editor }) => {
321
- const intl = useIntl();
322
-
323
- return (
324
- <ToolbarButton
325
- title={intl.formatMessage(messages.deleteRow)}
326
- icon={rowDeleteSVG}
327
- aria-label={intl.formatMessage(messages.deleteRow)}
328
- onMouseDown={() => {
329
- deleteRow(editor);
330
- }}
331
- />
332
- );
333
- },
334
- ({ editor }) => {
335
- const intl = useIntl();
336
-
337
- return (
338
- <ToolbarButton
339
- title={intl.formatMessage(messages.insertColBefore)}
340
- icon={colBeforeSVG}
341
- aria-label={intl.formatMessage(messages.insertColBefore)}
342
- onMouseDown={() => {
343
- addColBefore(editor);
344
- }}
345
- />
346
- );
347
- },
348
- ({ editor }) => {
349
- const intl = useIntl();
350
-
351
- return (
352
- <ToolbarButton
353
- title={intl.formatMessage(messages.insertColAfter)}
354
- icon={colAfterSVG}
355
- aria-label={intl.formatMessage(messages.insertColAfter)}
356
- onMouseDown={() => {
357
- addColAfter(editor);
358
- }}
359
- />
360
- );
361
- },
362
- ({ editor }) => {
363
- const intl = useIntl();
364
-
365
- return (
366
- <ToolbarButton
367
- title={intl.formatMessage(messages.deleteCol)}
368
- icon={colDeleteSVG}
369
- aria-label={intl.formatMessage(messages.deleteCol)}
370
- onMouseDown={() => {
371
- deleteCol(editor);
372
- }}
373
- />
374
- );
375
- },
376
- ];
377
-
378
- return config;
379
- }
380
-
381
- export const installTableButton = (config) => {
382
- const { slate } = config.settings;
383
- slate.buttons.table = (props) => <TableButton {...props} title="Table" />;
384
- slate.toolbarButtons = [...(slate.toolbarButtons || []), 'table'];
385
- slate.expandedToolbarButtons = [
386
- ...(slate.expandedToolbarButtons || []),
387
- 'table',
388
- ];
389
- return config;
390
- };
@@ -1,29 +0,0 @@
1
- @brown: #826a6a;
2
-
3
- table.slate-table {
4
- width: 100%;
5
- border: 0.025rem solid @brown;
6
- margin-top: 1rem;
7
- margin-bottom: 1rem;
8
- border-collapse: collapse;
9
- border-spacing: 30px;
10
-
11
- th,
12
- td {
13
- padding: 0.5rem;
14
- border: 0.05rem solid @brown;
15
- vertical-align: middle;
16
- }
17
-
18
- th {
19
- border-bottom: 0.15rem solid @brown;
20
- }
21
- }
22
-
23
- table.slate-table-block.sortable {
24
- tr th > * {
25
- // Header will contain both the slate and an icon when sorted
26
- // so this will keep them on the same line.
27
- display: inline-block;
28
- }
29
- }
@@ -1,28 +0,0 @@
1
- @brown: #826a6a;
2
-
3
- .slate-table-dropdown-button {
4
- }
5
-
6
- .slate-table-dropdown-menu {
7
- p {
8
- margin-top: 1rem;
9
- font-size: small;
10
- }
11
-
12
- td {
13
- border: 0.1rem solid #bbbbbb55;
14
- border-radius: 0.1rem;
15
- cursor: pointer;
16
-
17
- & > button {
18
- width: 100%;
19
- height: 100%;
20
- cursor: pointer;
21
- opacity: 0;
22
- }
23
-
24
- &.active {
25
- background-color: @brown;
26
- }
27
- }
28
- }
@@ -1,30 +0,0 @@
1
- import React from 'react';
2
- import {
3
- TABLE,
4
- THEAD,
5
- TFOOT,
6
- TBODY,
7
- TR,
8
- TD,
9
- TH,
10
- } from '@plone/volto-slate/constants';
11
-
12
- export const tableElements = {
13
- [TABLE]: ({ attributes, children }) => (
14
- <table {...attributes} className="slate-table">
15
- {children}
16
- </table>
17
- ),
18
- [THEAD]: ({ attributes, children }) => (
19
- <thead {...attributes}>{children}</thead>
20
- ),
21
- [TFOOT]: ({ attributes, children }) => (
22
- <tfoot {...attributes}>{children}</tfoot>
23
- ),
24
- [TBODY]: ({ attributes, children }) => (
25
- <tbody {...attributes}>{children}</tbody>
26
- ),
27
- [TR]: ({ attributes, children }) => <tr {...attributes}>{children}</tr>,
28
- [TD]: ({ attributes, children }) => <td {...attributes}>{children}</td>,
29
- [TH]: ({ attributes, children }) => <th {...attributes}>{children}</th>,
30
- };
@@ -1,19 +0,0 @@
1
- import installBlockQuotePlugin from './Blockquote';
2
- import installCallout from './Callout';
3
- import installImage from './Image';
4
- import installLinkPlugin from './Link';
5
- import installMarkdown from './Markdown';
6
- import installTable from './Table';
7
- import installStyleMenu from './StyleMenu';
8
-
9
- export default function install(config) {
10
- return [
11
- installBlockQuotePlugin,
12
- installCallout,
13
- installLinkPlugin,
14
- installMarkdown,
15
- installImage,
16
- installTable,
17
- installStyleMenu,
18
- ].reduce((acc, apply) => apply(acc), config);
19
- }