@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,81 +0,0 @@
1
- import { toggleList, unwrapList } from './utils';
2
- import { isBlockActive } from '@plone/volto-slate/utils';
3
- import { UL, OL, LI } from '@plone/volto-slate/constants';
4
-
5
- /**
6
- * Uses the old toggleList function to toggle lists on or off or from a type to another.
7
- * @param {Editor} editor The editor to which to apply the change.
8
- * @param {string} format A list type.
9
- */
10
- export const localToggleList = (editor, format) => {
11
- toggleList(editor, {
12
- typeList: format,
13
- isBulletedActive: !!isBlockActive(editor, UL),
14
- isNumberedActive: !!isBlockActive(editor, OL),
15
- });
16
- };
17
-
18
- /**
19
- * The autoformat rules created by this plugin for the Markdown language.
20
- *
21
- * @todo Use constants instead of the remaining hard-coded types (h2, h3 etc.).
22
- */
23
- export const autoformatRules = [
24
- {
25
- type: 'h2',
26
- markup: '#',
27
- },
28
- {
29
- type: 'h3',
30
- markup: '##',
31
- },
32
- {
33
- type: LI,
34
- markup: ['*', '-', '+'],
35
- format: (editor) => {
36
- localToggleList(editor, 'ul');
37
- },
38
- },
39
- {
40
- type: LI,
41
- markup: ['1.', '1)'],
42
- format: (editor) => {
43
- localToggleList(editor, 'ol');
44
- },
45
- },
46
- {
47
- type: 'blockquote',
48
- markup: ['>'],
49
- // preFormat,
50
- },
51
- {
52
- type: 'bold',
53
- between: ['**', '**'],
54
- mode: 'inline',
55
- insertTrigger: true,
56
- },
57
- {
58
- type: 'bold',
59
- between: ['__', '__'],
60
- mode: 'inline',
61
- insertTrigger: true,
62
- },
63
- {
64
- type: 'italic',
65
- between: ['*', '*'],
66
- mode: 'inline',
67
- insertTrigger: true,
68
- },
69
- {
70
- type: 'italic',
71
- between: ['_', '_'],
72
- mode: 'inline',
73
- insertTrigger: true,
74
- },
75
- {
76
- type: 'strikethrough',
77
- between: ['~~', '~~'],
78
- mode: 'inline',
79
- insertTrigger: true,
80
- },
81
- ];
@@ -1,334 +0,0 @@
1
- import { castArray, map } from 'lodash';
2
- import { Editor, Path, Point, Range, Transforms } from 'slate';
3
-
4
- /**
5
- * Get range from {@link getPointBefore} to the end point of `at`.
6
- */
7
- export const getRangeBefore = (editor, at, options) => {
8
- const anchor = getPointBefore(editor, at, options);
9
- if (!anchor) return;
10
-
11
- const focus = Editor.point(editor, at, { edge: 'end' });
12
-
13
- return {
14
- anchor,
15
- focus,
16
- };
17
- };
18
-
19
- /**
20
- * Autoformat in the middle of a block
21
- */
22
- export const autoformatInlineBlock = (
23
- editor,
24
- { type, markup, preFormat, format },
25
- ) => {
26
- const markupRange = getRangeBefore(editor, editor.selection, {
27
- matchString: markup,
28
- skipInvalid: true,
29
- });
30
-
31
- if (markupRange) {
32
- autoformatBlock(editor, type, markupRange, {
33
- preFormat: () => {
34
- editor.insertBreak();
35
- if (preFormat) {
36
- preFormat(editor);
37
- }
38
- },
39
- format,
40
- });
41
-
42
- return true;
43
- }
44
- };
45
-
46
- /**
47
- * {@link Editor.before} with additional options.
48
- * TODO: support for sequence of any characters.
49
- */
50
- export const getPointBefore = (editor, at, options) => {
51
- if (!options || (!options.match && !options.matchString)) {
52
- return Editor.before(editor, at, options);
53
- }
54
-
55
- let beforeAt = at;
56
- let previousBeforePoint = Editor.point(editor, at, { edge: 'end' });
57
-
58
- const stackLength = (options.matchString?.length || 0) + 1;
59
- const stack = Array(stackLength);
60
-
61
- const unitOffset = !options.unit || options.unit === 'offset';
62
-
63
- let count = 0;
64
- while (true) {
65
- const beforePoint = Editor.before(editor, beforeAt, options);
66
-
67
- // not found
68
- if (!beforePoint) return;
69
-
70
- // different path
71
- if (
72
- !options.multiPaths &&
73
- !Path.equals(beforePoint.path, previousBeforePoint.path)
74
- ) {
75
- return;
76
- }
77
-
78
- const beforeString = Editor.string(editor, {
79
- anchor: beforePoint,
80
- focus: previousBeforePoint,
81
- });
82
-
83
- const matchString = castArray(options.matchString);
84
-
85
- let beforeStringToMatch = beforeString;
86
-
87
- if (unitOffset && stackLength) {
88
- stack.unshift({
89
- point: beforePoint,
90
- text: beforeString,
91
- });
92
- stack.pop();
93
-
94
- beforeStringToMatch = map(stack.slice(0, -1), 'text').join('');
95
- }
96
-
97
- if (
98
- matchString.includes(beforeStringToMatch) ||
99
- options.match?.({ beforeString: beforeStringToMatch, beforePoint, at })
100
- ) {
101
- if (options.afterMatch) {
102
- if (stackLength && unitOffset) {
103
- return stack[stack.length - 1]?.point;
104
- }
105
- return previousBeforePoint;
106
- }
107
- return beforePoint;
108
- }
109
-
110
- previousBeforePoint = beforePoint;
111
- beforeAt = beforePoint;
112
-
113
- count += 1;
114
-
115
- if (!options.skipInvalid) {
116
- if (!matchString || count > matchString.length) return;
117
- }
118
- }
119
- };
120
-
121
- export const autoformatInline = (
122
- editor,
123
- { type, between, markup, ignoreTrim },
124
- ) => {
125
- const selection = editor.selection;
126
-
127
- const startMarkup = between ? between[0] : markup;
128
- const endMarkup = between ? between[1] : '';
129
-
130
- let endMarkupPointBefore = selection.anchor;
131
- if (endMarkup) {
132
- endMarkupPointBefore = getPointBefore(editor, selection, {
133
- matchString: endMarkup,
134
- });
135
- if (!endMarkupPointBefore) return false;
136
- }
137
-
138
- const startMarkupPointAfter = getPointBefore(editor, endMarkupPointBefore, {
139
- matchString: startMarkup,
140
- skipInvalid: true,
141
- afterMatch: true,
142
- });
143
-
144
- if (!startMarkupPointAfter) return false;
145
-
146
- // found
147
-
148
- const markupRange = {
149
- anchor: startMarkupPointAfter,
150
- focus: endMarkupPointBefore,
151
- };
152
-
153
- if (!ignoreTrim) {
154
- const markupText = getText(editor, markupRange);
155
- if (markupText.trim() !== markupText) return false;
156
- }
157
-
158
- // delete end markup
159
- if (endMarkup) {
160
- endMarkupPointBefore = getPointBefore(editor, selection, {
161
- matchString: endMarkup,
162
- });
163
- Transforms.delete(editor, {
164
- at: {
165
- anchor: endMarkupPointBefore,
166
- focus: selection.anchor,
167
- },
168
- });
169
- }
170
-
171
- // add mark to the text between the markups
172
- Transforms.select(editor, markupRange);
173
- editor.addMark(type, true);
174
- Transforms.collapse(editor, { edge: 'end' });
175
- editor.removeMark(type);
176
-
177
- // delete start markup
178
- const startMarkupPointBefore = getPointBefore(editor, selection, {
179
- matchString: startMarkup,
180
- skipInvalid: true,
181
- });
182
- Transforms.delete(editor, {
183
- at: {
184
- anchor: startMarkupPointBefore,
185
- focus: startMarkupPointAfter,
186
- },
187
- });
188
-
189
- return true;
190
- };
191
-
192
- export const autoformatBlock = (editor, type, at, { preFormat, format }) => {
193
- Transforms.delete(editor, { at });
194
-
195
- if (preFormat) {
196
- preFormat(editor);
197
- }
198
-
199
- if (!format) {
200
- Transforms.setNodes(
201
- editor,
202
- { type },
203
- { match: (n) => Editor.isBlock(editor, n) },
204
- );
205
- } else {
206
- format(editor);
207
- }
208
- };
209
-
210
- /**
211
- * See {@link Range.isCollapsed}.
212
- * Return false if `range` is not defined.
213
- */
214
- export const isCollapsed = (range) => !!range && Range.isCollapsed(range);
215
-
216
- /**
217
- * See {@link Editor.string}.
218
- * If `at` is not defined, return an empty string.
219
- */
220
- export const getText = (editor, at) => (at && Editor.string(editor, at)) ?? '';
221
-
222
- /**
223
- * Get the bloc {
224
- * k above a location (default: selection).
225
- * If not found, return the editor entry.
226
- */
227
- export const getBlockAbove = (editor, options = {}) =>
228
- Editor.above(editor, {
229
- match: (n) => Editor.isBlock(editor, n),
230
- ...options,
231
- }) || [editor, []];
232
-
233
- /**
234
- * Get the point from a location (default: selection).
235
- * If the location is a range, get the anchor point.
236
- * If the location is a path, get the point at this path with offset 0.
237
- * If `focus` is true, get the focus point.
238
- */
239
- export const getPointFromLocation = (
240
- editor,
241
- { at = editor.selection, focus } = {},
242
- ) => {
243
- let point;
244
- if (Range.isRange(at)) point = !focus ? at.anchor : at.focus;
245
- if (Point.isPoint(at)) point = at;
246
- if (Path.isPath(at)) point = { path: at, offset: 0 };
247
-
248
- return point;
249
- };
250
-
251
- /**
252
- * Get the range from the start of the block above a location (default: selection) to the location.
253
- */
254
- export const getRangeFromBlockStart = (editor, options = {}) => {
255
- const [, path] = getBlockAbove(editor, options);
256
-
257
- const start = Editor.start(editor, path);
258
-
259
- const focus = getPointFromLocation(editor, options);
260
-
261
- if (!focus) return;
262
-
263
- return { anchor: start, focus };
264
- };
265
-
266
- /**
267
- * Enables support for autoformatting actions.
268
- * Once a markup rule is validated, it does not check the following rules.
269
- */
270
- export const withAutoformat = ({ rules }) => (editor) => {
271
- const { insertText } = editor;
272
-
273
- editor.insertText = (text) => {
274
- if (!isCollapsed(editor.selection)) return insertText(text);
275
-
276
- for (const {
277
- trigger = ' ',
278
- type,
279
- markup,
280
- preFormat,
281
- format,
282
- mode,
283
- between,
284
- ignoreTrim,
285
- insertTrigger,
286
- } of rules) {
287
- const triggers = castArray(trigger);
288
-
289
- // Check trigger
290
- if (!triggers.includes(text)) continue;
291
-
292
- const markups = castArray(markup);
293
-
294
- const rangeFromBlockStart = getRangeFromBlockStart(editor);
295
- const textFromBlockStart = getText(editor, rangeFromBlockStart);
296
-
297
- const valid = () => insertTrigger && insertText(text);
298
-
299
- if (markups.includes(textFromBlockStart)) {
300
- // Start of the block
301
- autoformatBlock(editor, type, rangeFromBlockStart, {
302
- preFormat,
303
- format,
304
- });
305
- return valid();
306
- }
307
-
308
- if (mode === 'inline-block') {
309
- if (
310
- autoformatInlineBlock(editor, { preFormat, markup, format, type })
311
- ) {
312
- return valid();
313
- }
314
- }
315
-
316
- if (mode === 'inline') {
317
- if (
318
- autoformatInline(editor, {
319
- type,
320
- between,
321
- ignoreTrim,
322
- markup: Array.isArray(markup) ? markup[0] : markup,
323
- })
324
- ) {
325
- return valid();
326
- }
327
- }
328
- }
329
-
330
- insertText(text);
331
- };
332
-
333
- return editor;
334
- };
@@ -1,28 +0,0 @@
1
- // import React from 'react';
2
- import { withAutoformat } from './extensions';
3
- import { autoformatRules } from './constants';
4
- // import PluginSidebar from '@plone/volto-slate/blocks/Text/PluginSidebar';
5
-
6
- export default function install(config) {
7
- const { slate } = config.settings;
8
-
9
- slate.extensions = [
10
- ...(slate.extensions || []),
11
- withAutoformat({ rules: autoformatRules }),
12
- ];
13
-
14
- // TODO: this way the markdown shortcuts' explanation appears
15
- // only when one of the toolbars is visible, so I commented this out:
16
- // slate.buttons.markdownSupport = (props) => (
17
- // <PluginSidebar selected={true}>
18
- // <strong>Markdown</strong>
19
- // </PluginSidebar>
20
- // );
21
- // slate.toolbarButtons = [...(slate.toolbarButtons || []), 'markdownSupport'];
22
- // slate.expandedToolbarButtons = [
23
- // ...(slate.expandedToolbarButtons || []),
24
- // 'markdownSupport',
25
- // ];
26
-
27
- return config;
28
- }
@@ -1,198 +0,0 @@
1
- import { Editor, Range, Transforms, Text, Node } from 'slate';
2
- import {
3
- getMaxRange,
4
- selectAll,
5
- getSelectionNodesArrayByType,
6
- } from '@plone/volto-slate/utils';
7
- import { P, LI, UL, OL } from '@plone/volto-slate/constants';
8
-
9
- export function unwrapNodesByType(editor, types, options = {}) {
10
- Transforms.unwrapNodes(editor, {
11
- match: (n) => types.includes(n.type),
12
- ...options,
13
- });
14
- }
15
-
16
- export function unwrapList(
17
- editor,
18
- willWrapAgain,
19
- { typeUl = UL, typeOl = OL, typeLi = LI, unwrapFromList = false } = {},
20
- ) {
21
- // TODO: toggling from one list type to another should keep the structure untouched
22
- if (
23
- editor.selection &&
24
- Range.isExpanded(editor.selection) &&
25
- unwrapFromList
26
- ) {
27
- if (unwrapFromList) {
28
- // unwrapNodesByType(editor, [typeLi]);
29
- // unwrapNodesByType(editor, [typeUl, typeOl], {
30
- // split: true,
31
- // });
32
- // else ...
33
- }
34
- } else {
35
- unwrapNodesByType(editor, [typeLi], { at: getMaxRange(editor) });
36
- unwrapNodesByType(editor, [typeUl, typeOl], {
37
- at: getMaxRange(editor),
38
- });
39
- }
40
-
41
- if (!willWrapAgain) {
42
- convertAllToParagraph(editor);
43
- }
44
- }
45
-
46
- export function convertAllToParagraph(editor) {
47
- // let count = Array.from(Node.children(editor, [])).length;
48
- let result = recursive(editor);
49
- compactAndNormalize(result);
50
-
51
- Editor.withoutNormalizing(editor, () => {
52
- Transforms.removeNodes(editor, { at: [0 /* , i */] });
53
- Transforms.insertNodes(
54
- editor,
55
- { type: P, children: [{ text: '' }] },
56
- { at: [0] },
57
- );
58
- Transforms.insertFragment(editor, [...result], { at: [0] });
59
- });
60
- }
61
-
62
- export function recursive(myNode) {
63
- if (Text.isText(myNode)) return [{ ...myNode }];
64
-
65
- let output = [];
66
- let children = Node.children(myNode, []);
67
-
68
- for (const [node] of children) {
69
- if (Text.isText(node)) {
70
- output.push({ ...node });
71
- } else {
72
- let count = Array.from(node.children).length;
73
- for (let i = 0; i < count; ++i) {
74
- let o = recursive(node.children[i]);
75
- for (let j = 0; j < o.length; ++j) {
76
- output.push(o[j]);
77
- }
78
- }
79
- }
80
- }
81
-
82
- return output;
83
- }
84
-
85
- // TODO: make this add a space between any two Text instances
86
- export function compactAndNormalize(result) {
87
- for (let i = 0; i < result.length - 1; ++i) {
88
- let a = result[i];
89
- let b = result[i + 1];
90
-
91
- let m = textsMatch(a, b);
92
- if (m) {
93
- result[i].text += b.text;
94
- result.splice(i + 1, 1);
95
- }
96
- }
97
-
98
- if (result.length === 0) {
99
- result.push({ text: '' });
100
- }
101
-
102
- return;
103
- }
104
-
105
- // TODO: optimize this:
106
- export function textsMatch(a, b) {
107
- const aKeys = Object.keys(a);
108
- const bKeys = Object.keys(b);
109
-
110
- for (let x in a) {
111
- if (x === 'text') continue;
112
- if (aKeys.includes(x) && bKeys.includes(x)) {
113
- if (a[x] !== b[x]) {
114
- return false;
115
- }
116
- }
117
- }
118
-
119
- for (let x in b) {
120
- if (x === 'text') continue;
121
- if (aKeys.includes(x) && bKeys.includes(x)) {
122
- if (a[x] !== b[x]) {
123
- return false;
124
- }
125
- }
126
- }
127
-
128
- return true;
129
- }
130
-
131
- /**
132
- * @summary Toggles list type.
133
- * @todo need to redo this
134
- * @todo should preserve structure of list if going from a list type to another
135
- * @todo allow nested lists, currently the Markdown plugin uses this function but crashes when making a UL in an OL's LI
136
- * @param {Editor} editor
137
- * @param {object} options
138
- */
139
- export function toggleList(
140
- editor,
141
- {
142
- typeList,
143
- typeUl = UL,
144
- typeOl = OL,
145
- typeLi = LI,
146
- typeP = P,
147
- isBulletedActive = false,
148
- isNumberedActive = false,
149
- },
150
- ) {
151
- // TODO: set previous selection (not this 'select all' command) after toggling list (in all three cases: toggling to numbered, bulleted or none)
152
- selectAll(editor);
153
-
154
- // const isActive = isNodeInSelection(editor, [typeList]);
155
-
156
- // if (the list type/s are unset) {
157
-
158
- const B = typeList === UL;
159
- const N = typeList === OL;
160
-
161
- if (N && !isBulletedActive && !isNumberedActive) {
162
- convertAllToParagraph(editor);
163
- // go on with const willWrapAgain etc.
164
- } else if (N && !isBulletedActive && isNumberedActive) {
165
- convertAllToParagraph(editor);
166
- return;
167
- } else if (N && isBulletedActive && !isNumberedActive) {
168
- // go on with const willWrapAgain etc.
169
- } else if (B && !isBulletedActive && !isNumberedActive) {
170
- convertAllToParagraph(editor);
171
- // go on with const willWrapAgain etc.
172
- } else if (B && !isBulletedActive && isNumberedActive) {
173
- // go on with const willWrapAgain etc.
174
- } else if (B && isBulletedActive && !isNumberedActive) {
175
- convertAllToParagraph(editor);
176
- return;
177
- }
178
-
179
- selectAll(editor);
180
-
181
- const willWrapAgain = !isBulletedActive;
182
- unwrapList(editor, willWrapAgain, { unwrapFromList: isBulletedActive });
183
-
184
- // a new list is created and everything in the editor is put in it;
185
- // `children` property is added automatically as an empty array then
186
- // normalized
187
- const list = { type: typeList };
188
- Transforms.wrapNodes(editor, list);
189
-
190
- // get all the selected paragraphs
191
- const nodes = getSelectionNodesArrayByType(editor, typeP);
192
-
193
- // for each paragraph
194
- for (const [, path] of nodes) {
195
- // convert the paragraph to a list item
196
- Transforms.setNodes(editor, { type: LI }, { at: path });
197
- }
198
- }