@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,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
- }