@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,375 +0,0 @@
1
- import ReactDOM from 'react-dom';
2
- import cx from 'classnames';
3
- import { isEqual } from 'lodash';
4
- import { Transforms, Editor } from 'slate'; // , Transforms
5
- import { Slate, Editable, ReactEditor } from 'slate-react';
6
- import React, { Component } from 'react'; // , useState
7
- import { v4 as uuid } from 'uuid';
8
-
9
- import config from '@plone/volto/registry';
10
-
11
- import { Element, Leaf } from './render';
12
-
13
- import withTestingFeatures from './extensions/withTestingFeatures';
14
- import {
15
- makeEditor,
16
- toggleInlineFormat,
17
- toggleMark,
18
- parseDefaultSelection,
19
- } from '@plone/volto-slate/utils';
20
- import { InlineToolbar } from './ui';
21
- import EditorContext from './EditorContext';
22
-
23
- import isHotkey from 'is-hotkey';
24
-
25
- import './less/editor.less';
26
-
27
- import Toolbar from './ui/Toolbar';
28
-
29
- const handleHotKeys = (editor, event, config) => {
30
- let wasHotkey = false;
31
-
32
- for (const hk of Object.entries(config.hotkeys)) {
33
- const [shortcut, { format, type }] = hk;
34
- if (isHotkey(shortcut, event)) {
35
- event.preventDefault();
36
-
37
- if (type === 'inline') {
38
- toggleInlineFormat(editor, format);
39
- } else {
40
- // type === 'mark'
41
- toggleMark(editor, format);
42
- }
43
-
44
- wasHotkey = true;
45
- }
46
- }
47
-
48
- return wasHotkey;
49
- };
50
-
51
- // TODO: implement onFocus
52
- class SlateEditor extends Component {
53
- constructor(props) {
54
- super(props);
55
-
56
- this.createEditor = this.createEditor.bind(this);
57
- this.multiDecorator = this.multiDecorator.bind(this);
58
- this.handleChange = this.handleChange.bind(this);
59
- this.getSavedSelection = this.getSavedSelection.bind(this);
60
- this.setSavedSelection = this.setSavedSelection.bind(this);
61
-
62
- this.savedSelection = null;
63
-
64
- const uid = uuid(); // used to namespace the editor's plugins
65
-
66
- this.slateSettings = props.slateSettings || config.settings.slate;
67
-
68
- this.state = {
69
- editor: this.createEditor(uid),
70
- showExpandedToolbar: config.settings.slate.showExpandedToolbar,
71
- internalValue: this.props.value || this.slateSettings.defaultValue(),
72
- uid,
73
- };
74
-
75
- this.editor = null;
76
- this.selectionTimeout = null;
77
- }
78
-
79
- getSavedSelection() {
80
- return this.savedSelection;
81
- }
82
- setSavedSelection(selection) {
83
- this.savedSelection = selection;
84
- }
85
-
86
- createEditor(uid) {
87
- // extensions are "editor plugins" or "editor wrappers". It's a similar
88
- // similar to OOP inheritance, where a callable creates a new copy of the
89
- // editor, while replacing or adding new capabilities to that editor.
90
- // Extensions are purely JS, no React components.
91
- const editor = makeEditor({ extensions: this.props.extensions });
92
-
93
- // When the editor loses focus it no longer has a valid selections. This
94
- // makes it impossible to have complex types of interactions (like filling
95
- // in another text box, operating a select menu, etc). For this reason we
96
- // save the active selection
97
-
98
- editor.getSavedSelection = this.getSavedSelection;
99
- editor.setSavedSelection = this.setSavedSelection;
100
- editor.uid = uid || this.state.uid;
101
-
102
- return editor;
103
- }
104
-
105
- handleChange(value) {
106
- ReactDOM.unstable_batchedUpdates(() => {
107
- this.setState({ internalValue: value });
108
- if (this.props.onChange && !isEqual(value, this.props.value)) {
109
- this.props.onChange(value, this.editor);
110
- }
111
- });
112
- }
113
-
114
- multiDecorator([node, path]) {
115
- // Decorations (such as higlighting node types, selection, etc).
116
- const { runtimeDecorators = [] } = this.slateSettings;
117
- return runtimeDecorators.reduce(
118
- (acc, deco) => deco(this.state.editor, [node, path], acc),
119
- [],
120
- );
121
- }
122
-
123
- componentDidMount() {
124
- // watch the dom change
125
-
126
- if (this.props.selected) {
127
- let focused = true;
128
- try {
129
- focused = ReactEditor.isFocused(this.state.editor);
130
- } catch {}
131
- if (!focused) {
132
- setTimeout(() => {
133
- try {
134
- ReactEditor.focus(this.state.editor);
135
- } catch {}
136
- }, 100); // flush
137
- }
138
-
139
- this.state.editor.normalize({ force: true });
140
- }
141
- }
142
-
143
- componentWillUnmount() {
144
- this.isUnmounted = true;
145
- }
146
-
147
- componentDidUpdate(prevProps) {
148
- if (!isEqual(prevProps.extensions, this.props.extensions)) {
149
- this.setState({ editor: this.createEditor() });
150
- return;
151
- }
152
-
153
- if (
154
- this.props.value &&
155
- !isEqual(this.props.value, this.state.internalValue)
156
- ) {
157
- const { editor } = this.state;
158
- editor.children = this.props.value;
159
-
160
- if (this.props.defaultSelection) {
161
- const selection = parseDefaultSelection(
162
- editor,
163
- this.props.defaultSelection,
164
- );
165
-
166
- ReactEditor.focus(editor);
167
- Transforms.select(editor, selection);
168
- } else {
169
- Transforms.select(editor, Editor.end(editor, []));
170
- }
171
-
172
- this.setState({
173
- internalValue: this.props.value,
174
- });
175
- return;
176
- }
177
-
178
- const { editor } = this.state;
179
-
180
- if (!prevProps.selected && this.props.selected) {
181
- // if the SlateEditor becomes selected from unselected
182
-
183
- if (window.getSelection().type === 'None') {
184
- // TODO: why is this condition checked?
185
- Transforms.select(
186
- this.state.editor,
187
- Editor.range(this.state.editor, Editor.start(this.state.editor, [])),
188
- );
189
- }
190
-
191
- ReactEditor.focus(this.state.editor);
192
- }
193
-
194
- if (this.props.selected && this.props.onUpdate) {
195
- this.props.onUpdate(editor);
196
- }
197
- }
198
-
199
- shouldComponentUpdate(nextProps, nextState) {
200
- const { selected = true, value, readOnly } = nextProps;
201
- const res =
202
- selected ||
203
- this.props.selected !== selected ||
204
- this.props.readOnly !== readOnly ||
205
- !isEqual(value, this.props.value);
206
- return res;
207
- }
208
-
209
- render() {
210
- const {
211
- selected,
212
- placeholder,
213
- onKeyDown,
214
- testingEditorRef,
215
- readOnly,
216
- className,
217
- renderExtensions = [],
218
- editableProps = {},
219
- } = this.props;
220
- const slateSettings = this.slateSettings;
221
-
222
- // renderExtensions is needed because the editor is memoized, so if these
223
- // extensions need an updated state (for example to insert updated
224
- // blockProps) then we need to always wrap the editor with them
225
- const editor = renderExtensions.reduce(
226
- (acc, apply) => apply(acc),
227
- this.state.editor,
228
- );
229
-
230
- // Reset selection if field is reset
231
- if (
232
- editor.selection &&
233
- this.props.value?.length === 1 &&
234
- this.props.value[0].children.length === 1 &&
235
- this.props.value[0].children[0].text === ''
236
- ) {
237
- Transforms.select(editor, {
238
- anchor: { path: [0, 0], offset: 0 },
239
- focus: { path: [0, 0], offset: 0 },
240
- });
241
- }
242
- this.editor = editor;
243
-
244
- if (testingEditorRef) {
245
- testingEditorRef.current = editor;
246
- }
247
-
248
- // debug-values are `data-` HTML attributes in withTestingFeatures HOC
249
-
250
- return (
251
- <div
252
- {...this.props['debug-values']}
253
- className={cx('slate-editor', {
254
- 'show-toolbar': this.state.showExpandedToolbar,
255
- selected,
256
- })}
257
- tabIndex={-1}
258
- >
259
- <EditorContext.Provider value={editor}>
260
- <Slate
261
- editor={editor}
262
- initialValue={this.props.value || slateSettings.defaultValue()}
263
- onChange={this.handleChange}
264
- >
265
- {selected ? (
266
- <>
267
- <InlineToolbar
268
- editor={editor}
269
- className={className}
270
- slateSettings={this.props.slateSettings}
271
- />
272
- {Object.keys(slateSettings.elementToolbarButtons).map(
273
- (t, i) => {
274
- return (
275
- <Toolbar elementType={t} key={i}>
276
- {slateSettings.elementToolbarButtons[t].map(
277
- (Btn, b) => {
278
- return <Btn editor={editor} key={b} />;
279
- },
280
- )}
281
- </Toolbar>
282
- );
283
- },
284
- )}
285
- </>
286
- ) : (
287
- ''
288
- )}
289
- <Editable
290
- tabIndex={this.props.tabIndex || 0}
291
- readOnly={readOnly}
292
- placeholder={placeholder}
293
- renderElement={(props) => <Element {...props} />}
294
- renderLeaf={(props) => <Leaf {...props} />}
295
- decorate={this.multiDecorator}
296
- spellCheck={false}
297
- scrollSelectionIntoView={
298
- slateSettings.scrollIntoView ? undefined : () => null
299
- }
300
- onBlur={() => {
301
- this.props.onBlur && this.props.onBlur();
302
- return null;
303
- }}
304
- onClick={this.props.onClick}
305
- onSelect={(e) => {
306
- if (!selected && this.props.onFocus) {
307
- // we can't overwrite the onFocus of Editable, as the onFocus
308
- // in Slate has too much builtin behaviour that's not
309
- // accessible otherwise. Instead we try to detect such an
310
- // event based on observing selected state
311
- if (!editor.selection) {
312
- setTimeout(() => {
313
- this.props.onFocus();
314
- }, 100); // TODO: why 100 is chosen here?
315
- }
316
- }
317
-
318
- if (this.selectionTimeout) clearTimeout(this.selectionTimeout);
319
- this.selectionTimeout = setTimeout(() => {
320
- if (
321
- editor.selection &&
322
- !isEqual(editor.selection, this.savedSelection) &&
323
- !this.isUnmounted
324
- ) {
325
- this.setState((state) => ({ update: !this.state.update }));
326
- this.setSavedSelection(
327
- JSON.parse(JSON.stringify(editor.selection)),
328
- );
329
- }
330
- }, 200);
331
- }}
332
- onKeyDown={(event) => {
333
- const handled = handleHotKeys(editor, event, slateSettings);
334
- if (handled) return;
335
- onKeyDown && onKeyDown({ editor, event });
336
- }}
337
- {...editableProps}
338
- />
339
- {selected &&
340
- slateSettings.persistentHelpers.map((Helper, i) => {
341
- return <Helper key={i} editor={editor} />;
342
- })}
343
- {this.props.debug ? (
344
- <ul>
345
- <li>{selected ? 'selected' : 'no-selected'}</li>
346
- <li>
347
- savedSelection: {JSON.stringify(editor.getSavedSelection())}
348
- </li>
349
- <li>live selection: {JSON.stringify(editor.selection)}</li>
350
- <li>children: {JSON.stringify(editor.children)}</li>
351
- <li> {selected ? 'selected' : 'notselected'}</li>
352
- <li>
353
- {ReactEditor.isFocused(editor) ? 'focused' : 'unfocused'}
354
- </li>
355
- </ul>
356
- ) : (
357
- ''
358
- )}
359
- {this.props.children}
360
- </Slate>
361
- </EditorContext.Provider>
362
- </div>
363
- );
364
- }
365
- }
366
-
367
- SlateEditor.defaultProps = {
368
- extensions: [],
369
- className: '',
370
- };
371
-
372
- // May be needed to wrap in React.memo(), it used to be wrapped in connect()
373
- export default __CLIENT__ && window?.Cypress
374
- ? withTestingFeatures(SlateEditor)
375
- : SlateEditor;