@plone/volto 16.26.0 → 16.27.0

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 (59) hide show
  1. package/.changelog.draft +2 -15
  2. package/.yarn/install-state.gz +0 -0
  3. package/.yarn/releases/yarn-4.0.2.cjs +893 -0
  4. package/CHANGELOG.md +17 -0
  5. package/apps/plone/node_modules/.bin/acorn +17 -0
  6. package/apps/plone/node_modules/.bin/addon +17 -0
  7. package/apps/plone/node_modules/.bin/autoprefixer +17 -0
  8. package/apps/plone/node_modules/.bin/browserslist +17 -0
  9. package/apps/plone/node_modules/.bin/build-storybook +17 -0
  10. package/apps/plone/node_modules/.bin/changelogupdater +17 -0
  11. package/apps/plone/node_modules/.bin/eslint +17 -0
  12. package/apps/plone/node_modules/.bin/eslint-config-prettier +17 -0
  13. package/apps/plone/node_modules/.bin/i18n +17 -0
  14. package/apps/plone/node_modules/.bin/jest +17 -0
  15. package/apps/plone/node_modules/.bin/lessc +17 -0
  16. package/apps/plone/node_modules/.bin/missdev +17 -0
  17. package/apps/plone/node_modules/.bin/prettier +17 -0
  18. package/apps/plone/node_modules/.bin/razzle +17 -0
  19. package/apps/plone/node_modules/.bin/server-test +17 -0
  20. package/apps/plone/node_modules/.bin/start-server-and-test +17 -0
  21. package/apps/plone/node_modules/.bin/start-storybook +17 -0
  22. package/apps/plone/node_modules/.bin/start-test +17 -0
  23. package/apps/plone/node_modules/.bin/storybook-server +17 -0
  24. package/apps/plone/node_modules/.bin/stylelint +17 -0
  25. package/apps/plone/node_modules/.bin/tlds +17 -0
  26. package/apps/plone/node_modules/.bin/ts-jest +17 -0
  27. package/apps/plone/node_modules/.bin/tsc +17 -0
  28. package/apps/plone/node_modules/.bin/tsserver +17 -0
  29. package/apps/plone/node_modules/.bin/uuid +17 -0
  30. package/apps/plone/node_modules/.bin/webpack +17 -0
  31. package/apps/plone/node_modules/.bin/webpack-dev-server +17 -0
  32. package/apps/plone/src/addons/volto-volto-project/node_modules/.bin/acorn +17 -0
  33. package/apps/plone/src/addons/volto-volto-project/node_modules/.bin/addon +17 -0
  34. package/apps/plone/src/addons/volto-volto-project/node_modules/.bin/browserslist +17 -0
  35. package/apps/plone/src/addons/volto-volto-project/node_modules/.bin/changelogupdater +17 -0
  36. package/apps/plone/src/addons/volto-volto-project/node_modules/.bin/eslint +17 -0
  37. package/apps/plone/src/addons/volto-volto-project/node_modules/.bin/eslint-config-prettier +17 -0
  38. package/apps/plone/src/addons/volto-volto-project/node_modules/.bin/i18n +17 -0
  39. package/apps/plone/src/addons/volto-volto-project/node_modules/.bin/prettier +17 -0
  40. package/apps/plone/src/addons/volto-volto-project/node_modules/.bin/release-it +17 -0
  41. package/apps/plone/src/addons/volto-volto-project/node_modules/.bin/stylelint +17 -0
  42. package/apps/plone/src/addons/volto-volto-project/node_modules/.bin/tsc +17 -0
  43. package/apps/plone/src/addons/volto-volto-project/node_modules/.bin/tsserver +17 -0
  44. package/package.json +4 -4
  45. package/packages/volto-slate/package.json +5 -5
  46. package/packages/volto-slate/src/blocks/Text/keyboard/joinBlocks.js +6 -3
  47. package/packages/volto-slate/src/editor/SlateEditor.jsx +3 -1
  48. package/packages/volto-slate/src/editor/plugins/Link/extensions.js +25 -20
  49. package/packages/volto-slate/src/slate-react.js +26 -0
  50. package/packages/volto-slate/src/utils/selection.js +7 -4
  51. package/pyvenv.cfg +4 -2
  52. package/razzle.config.js +3 -0
  53. package/src/components/manage/Blocks/Description/Edit.jsx +1 -1
  54. package/src/components/manage/Blocks/Title/Edit.jsx +1 -1
  55. package/src/components/manage/TextLineEdit/TextLineEdit.jsx +1 -1
  56. package/src/components/theme/ContentMetadataTags/ContentMetadataTags.jsx +37 -6
  57. package/theme/themes/pastanaga/extras/blocks.less +9 -0
  58. package/.yarn/plugins/@yarnpkg/plugin-interactive-tools.cjs +0 -541
  59. package/.yarn/releases/yarn-3.6.3.cjs +0 -874
@@ -0,0 +1,17 @@
1
+ #!/bin/sh
2
+ basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
3
+
4
+ case `uname` in
5
+ *CYGWIN*) basedir=`cygpath -w "$basedir"`;;
6
+ esac
7
+
8
+ if [ -z "$NODE_PATH" ]; then
9
+ export NODE_PATH="/Users/sneridagh/Development/plone/volto/packages/scripts/addon/node_modules:/Users/sneridagh/Development/plone/volto/packages/scripts/node_modules:/Users/sneridagh/Development/plone/volto/packages/node_modules:/Users/sneridagh/Development/plone/volto/node_modules:/Users/sneridagh/Development/plone/node_modules:/Users/sneridagh/Development/node_modules:/Users/sneridagh/node_modules:/Users/node_modules:/node_modules:/Users/sneridagh/Development/plone/volto/node_modules/.pnpm/node_modules"
10
+ else
11
+ export NODE_PATH="/Users/sneridagh/Development/plone/volto/packages/scripts/addon/node_modules:/Users/sneridagh/Development/plone/volto/packages/scripts/node_modules:/Users/sneridagh/Development/plone/volto/packages/node_modules:/Users/sneridagh/Development/plone/volto/node_modules:/Users/sneridagh/Development/plone/node_modules:/Users/sneridagh/Development/node_modules:/Users/sneridagh/node_modules:/Users/node_modules:/node_modules:/Users/sneridagh/Development/plone/volto/node_modules/.pnpm/node_modules:$NODE_PATH"
12
+ fi
13
+ if [ -x "$basedir/node" ]; then
14
+ exec "$basedir/node" "$basedir/../@plone/scripts/addon/index.js" "$@"
15
+ else
16
+ exec node "$basedir/../@plone/scripts/addon/index.js" "$@"
17
+ fi
@@ -0,0 +1,17 @@
1
+ #!/bin/sh
2
+ basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
3
+
4
+ case `uname` in
5
+ *CYGWIN*) basedir=`cygpath -w "$basedir"`;;
6
+ esac
7
+
8
+ if [ -z "$NODE_PATH" ]; then
9
+ export NODE_PATH="/Users/sneridagh/Development/plone/volto/node_modules/.pnpm/browserslist@4.22.1/node_modules/browserslist/node_modules:/Users/sneridagh/Development/plone/volto/node_modules/.pnpm/browserslist@4.22.1/node_modules:/Users/sneridagh/Development/plone/volto/node_modules/.pnpm/node_modules"
10
+ else
11
+ export NODE_PATH="/Users/sneridagh/Development/plone/volto/node_modules/.pnpm/browserslist@4.22.1/node_modules/browserslist/node_modules:/Users/sneridagh/Development/plone/volto/node_modules/.pnpm/browserslist@4.22.1/node_modules:/Users/sneridagh/Development/plone/volto/node_modules/.pnpm/node_modules:$NODE_PATH"
12
+ fi
13
+ if [ -x "$basedir/node" ]; then
14
+ exec "$basedir/node" "$basedir/../../../../../../../node_modules/.pnpm/browserslist@4.22.1/node_modules/browserslist/cli.js" "$@"
15
+ else
16
+ exec node "$basedir/../../../../../../../node_modules/.pnpm/browserslist@4.22.1/node_modules/browserslist/cli.js" "$@"
17
+ fi
@@ -0,0 +1,17 @@
1
+ #!/bin/sh
2
+ basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
3
+
4
+ case `uname` in
5
+ *CYGWIN*) basedir=`cygpath -w "$basedir"`;;
6
+ esac
7
+
8
+ if [ -z "$NODE_PATH" ]; then
9
+ export NODE_PATH="/Users/sneridagh/Development/plone/volto/packages/scripts/node_modules:/Users/sneridagh/Development/plone/volto/packages/node_modules:/Users/sneridagh/Development/plone/volto/node_modules:/Users/sneridagh/Development/plone/node_modules:/Users/sneridagh/Development/node_modules:/Users/sneridagh/node_modules:/Users/node_modules:/node_modules:/Users/sneridagh/Development/plone/volto/node_modules/.pnpm/node_modules"
10
+ else
11
+ export NODE_PATH="/Users/sneridagh/Development/plone/volto/packages/scripts/node_modules:/Users/sneridagh/Development/plone/volto/packages/node_modules:/Users/sneridagh/Development/plone/volto/node_modules:/Users/sneridagh/Development/plone/node_modules:/Users/sneridagh/Development/node_modules:/Users/sneridagh/node_modules:/Users/node_modules:/node_modules:/Users/sneridagh/Development/plone/volto/node_modules/.pnpm/node_modules:$NODE_PATH"
12
+ fi
13
+ if [ -x "$basedir/node" ]; then
14
+ exec "$basedir/node" "$basedir/../@plone/scripts/changelogupdater.cjs" "$@"
15
+ else
16
+ exec node "$basedir/../@plone/scripts/changelogupdater.cjs" "$@"
17
+ fi
@@ -0,0 +1,17 @@
1
+ #!/bin/sh
2
+ basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
3
+
4
+ case `uname` in
5
+ *CYGWIN*) basedir=`cygpath -w "$basedir"`;;
6
+ esac
7
+
8
+ if [ -z "$NODE_PATH" ]; then
9
+ export NODE_PATH="/Users/sneridagh/Development/plone/volto/node_modules/.pnpm/eslint@8.49.0/node_modules/eslint/bin/node_modules:/Users/sneridagh/Development/plone/volto/node_modules/.pnpm/eslint@8.49.0/node_modules/eslint/node_modules:/Users/sneridagh/Development/plone/volto/node_modules/.pnpm/eslint@8.49.0/node_modules:/Users/sneridagh/Development/plone/volto/node_modules/.pnpm/node_modules"
10
+ else
11
+ export NODE_PATH="/Users/sneridagh/Development/plone/volto/node_modules/.pnpm/eslint@8.49.0/node_modules/eslint/bin/node_modules:/Users/sneridagh/Development/plone/volto/node_modules/.pnpm/eslint@8.49.0/node_modules/eslint/node_modules:/Users/sneridagh/Development/plone/volto/node_modules/.pnpm/eslint@8.49.0/node_modules:/Users/sneridagh/Development/plone/volto/node_modules/.pnpm/node_modules:$NODE_PATH"
12
+ fi
13
+ if [ -x "$basedir/node" ]; then
14
+ exec "$basedir/node" "$basedir/../eslint/bin/eslint.js" "$@"
15
+ else
16
+ exec node "$basedir/../eslint/bin/eslint.js" "$@"
17
+ fi
@@ -0,0 +1,17 @@
1
+ #!/bin/sh
2
+ basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
3
+
4
+ case `uname` in
5
+ *CYGWIN*) basedir=`cygpath -w "$basedir"`;;
6
+ esac
7
+
8
+ if [ -z "$NODE_PATH" ]; then
9
+ export NODE_PATH="/Users/sneridagh/Development/plone/volto/node_modules/.pnpm/eslint-config-prettier@9.0.0_eslint@8.49.0/node_modules/eslint-config-prettier/bin/node_modules:/Users/sneridagh/Development/plone/volto/node_modules/.pnpm/eslint-config-prettier@9.0.0_eslint@8.49.0/node_modules/eslint-config-prettier/node_modules:/Users/sneridagh/Development/plone/volto/node_modules/.pnpm/eslint-config-prettier@9.0.0_eslint@8.49.0/node_modules:/Users/sneridagh/Development/plone/volto/node_modules/.pnpm/node_modules"
10
+ else
11
+ export NODE_PATH="/Users/sneridagh/Development/plone/volto/node_modules/.pnpm/eslint-config-prettier@9.0.0_eslint@8.49.0/node_modules/eslint-config-prettier/bin/node_modules:/Users/sneridagh/Development/plone/volto/node_modules/.pnpm/eslint-config-prettier@9.0.0_eslint@8.49.0/node_modules/eslint-config-prettier/node_modules:/Users/sneridagh/Development/plone/volto/node_modules/.pnpm/eslint-config-prettier@9.0.0_eslint@8.49.0/node_modules:/Users/sneridagh/Development/plone/volto/node_modules/.pnpm/node_modules:$NODE_PATH"
12
+ fi
13
+ if [ -x "$basedir/node" ]; then
14
+ exec "$basedir/node" "$basedir/../eslint-config-prettier/bin/cli.js" "$@"
15
+ else
16
+ exec node "$basedir/../eslint-config-prettier/bin/cli.js" "$@"
17
+ fi
@@ -0,0 +1,17 @@
1
+ #!/bin/sh
2
+ basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
3
+
4
+ case `uname` in
5
+ *CYGWIN*) basedir=`cygpath -w "$basedir"`;;
6
+ esac
7
+
8
+ if [ -z "$NODE_PATH" ]; then
9
+ export NODE_PATH="/Users/sneridagh/Development/plone/volto/packages/scripts/node_modules:/Users/sneridagh/Development/plone/volto/packages/node_modules:/Users/sneridagh/Development/plone/volto/node_modules:/Users/sneridagh/Development/plone/node_modules:/Users/sneridagh/Development/node_modules:/Users/sneridagh/node_modules:/Users/node_modules:/node_modules:/Users/sneridagh/Development/plone/volto/node_modules/.pnpm/node_modules"
10
+ else
11
+ export NODE_PATH="/Users/sneridagh/Development/plone/volto/packages/scripts/node_modules:/Users/sneridagh/Development/plone/volto/packages/node_modules:/Users/sneridagh/Development/plone/volto/node_modules:/Users/sneridagh/Development/plone/node_modules:/Users/sneridagh/Development/node_modules:/Users/sneridagh/node_modules:/Users/node_modules:/node_modules:/Users/sneridagh/Development/plone/volto/node_modules/.pnpm/node_modules:$NODE_PATH"
12
+ fi
13
+ if [ -x "$basedir/node" ]; then
14
+ exec "$basedir/node" "$basedir/../@plone/scripts/i18n.cjs" "$@"
15
+ else
16
+ exec node "$basedir/../@plone/scripts/i18n.cjs" "$@"
17
+ fi
@@ -0,0 +1,17 @@
1
+ #!/bin/sh
2
+ basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
3
+
4
+ case `uname` in
5
+ *CYGWIN*) basedir=`cygpath -w "$basedir"`;;
6
+ esac
7
+
8
+ if [ -z "$NODE_PATH" ]; then
9
+ export NODE_PATH="/Users/sneridagh/Development/plone/volto/node_modules/.pnpm/prettier@3.0.3/node_modules/prettier/bin/node_modules:/Users/sneridagh/Development/plone/volto/node_modules/.pnpm/prettier@3.0.3/node_modules/prettier/node_modules:/Users/sneridagh/Development/plone/volto/node_modules/.pnpm/prettier@3.0.3/node_modules:/Users/sneridagh/Development/plone/volto/node_modules/.pnpm/node_modules"
10
+ else
11
+ export NODE_PATH="/Users/sneridagh/Development/plone/volto/node_modules/.pnpm/prettier@3.0.3/node_modules/prettier/bin/node_modules:/Users/sneridagh/Development/plone/volto/node_modules/.pnpm/prettier@3.0.3/node_modules/prettier/node_modules:/Users/sneridagh/Development/plone/volto/node_modules/.pnpm/prettier@3.0.3/node_modules:/Users/sneridagh/Development/plone/volto/node_modules/.pnpm/node_modules:$NODE_PATH"
12
+ fi
13
+ if [ -x "$basedir/node" ]; then
14
+ exec "$basedir/node" "$basedir/../prettier/bin/prettier.cjs" "$@"
15
+ else
16
+ exec node "$basedir/../prettier/bin/prettier.cjs" "$@"
17
+ fi
@@ -0,0 +1,17 @@
1
+ #!/bin/sh
2
+ basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
3
+
4
+ case `uname` in
5
+ *CYGWIN*) basedir=`cygpath -w "$basedir"`;;
6
+ esac
7
+
8
+ if [ -z "$NODE_PATH" ]; then
9
+ export NODE_PATH="/Users/sneridagh/Development/plone/volto/node_modules/.pnpm/release-it@16.2.1_typescript@5.2.2/node_modules/release-it/bin/node_modules:/Users/sneridagh/Development/plone/volto/node_modules/.pnpm/release-it@16.2.1_typescript@5.2.2/node_modules/release-it/node_modules:/Users/sneridagh/Development/plone/volto/node_modules/.pnpm/release-it@16.2.1_typescript@5.2.2/node_modules:/Users/sneridagh/Development/plone/volto/node_modules/.pnpm/node_modules"
10
+ else
11
+ export NODE_PATH="/Users/sneridagh/Development/plone/volto/node_modules/.pnpm/release-it@16.2.1_typescript@5.2.2/node_modules/release-it/bin/node_modules:/Users/sneridagh/Development/plone/volto/node_modules/.pnpm/release-it@16.2.1_typescript@5.2.2/node_modules/release-it/node_modules:/Users/sneridagh/Development/plone/volto/node_modules/.pnpm/release-it@16.2.1_typescript@5.2.2/node_modules:/Users/sneridagh/Development/plone/volto/node_modules/.pnpm/node_modules:$NODE_PATH"
12
+ fi
13
+ if [ -x "$basedir/node" ]; then
14
+ exec "$basedir/node" "$basedir/../release-it/bin/release-it.js" "$@"
15
+ else
16
+ exec node "$basedir/../release-it/bin/release-it.js" "$@"
17
+ fi
@@ -0,0 +1,17 @@
1
+ #!/bin/sh
2
+ basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
3
+
4
+ case `uname` in
5
+ *CYGWIN*) basedir=`cygpath -w "$basedir"`;;
6
+ esac
7
+
8
+ if [ -z "$NODE_PATH" ]; then
9
+ export NODE_PATH="/Users/sneridagh/Development/plone/volto/node_modules/.pnpm/stylelint@15.10.3_typescript@5.2.2/node_modules/stylelint/bin/node_modules:/Users/sneridagh/Development/plone/volto/node_modules/.pnpm/stylelint@15.10.3_typescript@5.2.2/node_modules/stylelint/node_modules:/Users/sneridagh/Development/plone/volto/node_modules/.pnpm/stylelint@15.10.3_typescript@5.2.2/node_modules:/Users/sneridagh/Development/plone/volto/node_modules/.pnpm/node_modules"
10
+ else
11
+ export NODE_PATH="/Users/sneridagh/Development/plone/volto/node_modules/.pnpm/stylelint@15.10.3_typescript@5.2.2/node_modules/stylelint/bin/node_modules:/Users/sneridagh/Development/plone/volto/node_modules/.pnpm/stylelint@15.10.3_typescript@5.2.2/node_modules/stylelint/node_modules:/Users/sneridagh/Development/plone/volto/node_modules/.pnpm/stylelint@15.10.3_typescript@5.2.2/node_modules:/Users/sneridagh/Development/plone/volto/node_modules/.pnpm/node_modules:$NODE_PATH"
12
+ fi
13
+ if [ -x "$basedir/node" ]; then
14
+ exec "$basedir/node" "$basedir/../stylelint/bin/stylelint.mjs" "$@"
15
+ else
16
+ exec node "$basedir/../stylelint/bin/stylelint.mjs" "$@"
17
+ fi
@@ -0,0 +1,17 @@
1
+ #!/bin/sh
2
+ basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
3
+
4
+ case `uname` in
5
+ *CYGWIN*) basedir=`cygpath -w "$basedir"`;;
6
+ esac
7
+
8
+ if [ -z "$NODE_PATH" ]; then
9
+ export NODE_PATH="/Users/sneridagh/Development/plone/volto/node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/bin/node_modules:/Users/sneridagh/Development/plone/volto/node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/node_modules:/Users/sneridagh/Development/plone/volto/node_modules/.pnpm/typescript@5.2.2/node_modules:/Users/sneridagh/Development/plone/volto/node_modules/.pnpm/node_modules"
10
+ else
11
+ export NODE_PATH="/Users/sneridagh/Development/plone/volto/node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/bin/node_modules:/Users/sneridagh/Development/plone/volto/node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/node_modules:/Users/sneridagh/Development/plone/volto/node_modules/.pnpm/typescript@5.2.2/node_modules:/Users/sneridagh/Development/plone/volto/node_modules/.pnpm/node_modules:$NODE_PATH"
12
+ fi
13
+ if [ -x "$basedir/node" ]; then
14
+ exec "$basedir/node" "$basedir/../../../../../../../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/bin/tsc" "$@"
15
+ else
16
+ exec node "$basedir/../../../../../../../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/bin/tsc" "$@"
17
+ fi
@@ -0,0 +1,17 @@
1
+ #!/bin/sh
2
+ basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
3
+
4
+ case `uname` in
5
+ *CYGWIN*) basedir=`cygpath -w "$basedir"`;;
6
+ esac
7
+
8
+ if [ -z "$NODE_PATH" ]; then
9
+ export NODE_PATH="/Users/sneridagh/Development/plone/volto/node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/bin/node_modules:/Users/sneridagh/Development/plone/volto/node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/node_modules:/Users/sneridagh/Development/plone/volto/node_modules/.pnpm/typescript@5.2.2/node_modules:/Users/sneridagh/Development/plone/volto/node_modules/.pnpm/node_modules"
10
+ else
11
+ export NODE_PATH="/Users/sneridagh/Development/plone/volto/node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/bin/node_modules:/Users/sneridagh/Development/plone/volto/node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/node_modules:/Users/sneridagh/Development/plone/volto/node_modules/.pnpm/typescript@5.2.2/node_modules:/Users/sneridagh/Development/plone/volto/node_modules/.pnpm/node_modules:$NODE_PATH"
12
+ fi
13
+ if [ -x "$basedir/node" ]; then
14
+ exec "$basedir/node" "$basedir/../../../../../../../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/bin/tsserver" "$@"
15
+ else
16
+ exec node "$basedir/../../../../../../../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/bin/tsserver" "$@"
17
+ fi
package/package.json CHANGED
@@ -9,7 +9,7 @@
9
9
  }
10
10
  ],
11
11
  "license": "MIT",
12
- "version": "16.26.0",
12
+ "version": "16.27.0",
13
13
  "repository": {
14
14
  "type": "git",
15
15
  "url": "git@github.com:plone/volto.git"
@@ -384,9 +384,9 @@
384
384
  "semantic-ui-react": "2.0.3",
385
385
  "semver": "5.6.0",
386
386
  "serialize-javascript": "3.1.0",
387
- "slate": "0.84.0",
388
- "slate-hyperscript": "0.81.3",
389
- "slate-react": "0.83.2",
387
+ "slate": "0.100.0",
388
+ "slate-hyperscript": "0.100.0",
389
+ "slate-react": "0.98.4",
390
390
  "start-server-and-test": "1.14.0",
391
391
  "style-loader": "2",
392
392
  "stylelint": "14.0.1",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@plone/volto-slate",
3
- "version": "16.26.0",
3
+ "version": "16.27.0",
4
4
  "description": "Slate.js integration with Volto",
5
5
  "main": "src/index.js",
6
6
  "author": "European Environment Agency: IDM2 A-Team",
@@ -18,10 +18,10 @@
18
18
  "is-url": "1.2.4",
19
19
  "jsdom": "^16.6.0",
20
20
  "react-intersection-observer": "^8.32.0",
21
- "slate": "^0.71.0",
22
- "slate-history": "^0.66.0",
23
- "slate-hyperscript": "^0.67.0",
24
- "slate-react": "^0.71.0",
21
+ "slate": "0.100.0",
22
+ "slate-history": "0.100.0",
23
+ "slate-hyperscript": "0.100.0",
24
+ "slate-react": "0.98.4",
25
25
  "weak-key": "^1.0.2"
26
26
  },
27
27
  "devDependencies": {
@@ -1,4 +1,5 @@
1
1
  import ReactDOM from 'react-dom';
2
+ import { cloneDeep } from 'lodash';
2
3
  import { serializeNodesToText } from '@plone/volto-slate/editor/render';
3
4
  import { Editor } from 'slate';
4
5
  import {
@@ -8,6 +9,7 @@ import {
8
9
  isCursorAtBlockEnd,
9
10
  mergeSlateWithBlockBackward,
10
11
  mergeSlateWithBlockForward,
12
+ makeEditor,
11
13
  } from '@plone/volto-slate/utils';
12
14
  import {
13
15
  changeBlock,
@@ -15,7 +17,6 @@ import {
15
17
  getBlocksFieldname,
16
18
  getBlocksLayoutFieldname,
17
19
  } from '@plone/volto/helpers';
18
-
19
20
  /**
20
21
  * Joins the current block (which has an active Slate Editor)
21
22
  * with the previous block, to make a single block.
@@ -164,9 +165,11 @@ function getBlockEndAsRange(block) {
164
165
  const { value } = block;
165
166
  const location = [value.length - 1]; // adress of root node
166
167
  const editor = { children: value };
167
- const path = Editor.last(editor, location)[1]; // last Node in the block
168
+ const newEditor = makeEditor();
169
+ newEditor.children = cloneDeep(editor.children);
170
+ const path = Editor.last(newEditor, location)[1]; // last Node in the block
168
171
  // The last Text node (leaf node) entry inside the path computed just above.
169
- const [leaf, leafpath] = Editor.leaf(editor, path);
172
+ const [leaf, leafpath] = Editor.leaf(newEditor, path);
170
173
  // The offset of the Points in the collapsed Range computed below:
171
174
  const offset = (leaf.text || '').length;
172
175
 
@@ -135,6 +135,8 @@ class SlateEditor extends Component {
135
135
  } catch {}
136
136
  }, 100); // flush
137
137
  }
138
+
139
+ this.state.editor.normalize({ force: true });
138
140
  }
139
141
  }
140
142
 
@@ -257,7 +259,7 @@ class SlateEditor extends Component {
257
259
  <EditorContext.Provider value={editor}>
258
260
  <Slate
259
261
  editor={editor}
260
- value={this.props.value || slateSettings.defaultValue()}
262
+ initialValue={this.props.value || slateSettings.defaultValue()}
261
263
  onChange={this.handleChange}
262
264
  >
263
265
  {selected ? (
@@ -1,33 +1,38 @@
1
+ import { Text, Transforms, Element } from 'slate'; // Editor,
1
2
  import { SIMPLELINK } from '@plone/volto-slate/constants';
2
3
  import { jsx } from 'slate-hyperscript';
3
4
  import { deserialize } from '@plone/volto-slate/editor/deserialize';
4
5
 
5
- export const withSimpleLink = (editor) => {
6
- // const { insertData, insertText, isInline } = editor;
6
+ const nodeToText = (node) => {
7
+ if (Text.isText(node)) {
8
+ return node.text.trim();
9
+ } else {
10
+ return node.children.map(nodeToText).join('');
11
+ }
12
+ };
7
13
 
8
- const { isInline } = editor;
14
+ export const withSimpleLink = (editor) => {
15
+ const { isInline, normalizeNode } = editor;
9
16
 
10
17
  editor.isInline = (element) => {
11
18
  return element && element.type === SIMPLELINK ? true : isInline(element);
12
19
  };
13
20
 
14
- // editor.insertText = (text) => {
15
- // if (text && isUrl(text)) {
16
- // wrapLink(editor, text);
17
- // } else {
18
- // insertText(text);
19
- // }
20
- // };
21
- //
22
- // editor.insertData = (data) => {
23
- // const text = data.getData('text/plain');
24
- //
25
- // if (text && isUrl(text)) {
26
- // wrapLink(editor, text);
27
- // } else {
28
- // insertData(data);
29
- // }
30
- // };
21
+ editor.normalizeNode = (entry) => {
22
+ const [node, path] = entry;
23
+ const isTextNode = Text.isText(node);
24
+ const isElementNode = Element.isElement(node);
25
+ const isLinkTypeNode = node.type === SIMPLELINK;
26
+
27
+ // delete childless link nodes
28
+ if (!isTextNode && isElementNode && isLinkTypeNode && !nodeToText(node)) {
29
+ Transforms.removeNodes(editor, { at: path });
30
+ return;
31
+ }
32
+
33
+ return normalizeNode(entry);
34
+ };
35
+
31
36
  return editor;
32
37
  };
33
38
 
@@ -0,0 +1,26 @@
1
+ import { Slate as OrigSlate } from '@slate-react';
2
+
3
+ // Components
4
+ export { Editable, DefaultPlaceholder } from '@slate-react';
5
+
6
+ export { DefaultElement } from '@slate-react';
7
+ export { DefaultLeaf } from '@slate-react';
8
+
9
+ // Hooks
10
+ export { useEditor } from '@slate-react';
11
+ export { useSlateStatic } from '@slate-react';
12
+ export { useFocused } from '@slate-react';
13
+ export { useReadOnly } from '@slate-react';
14
+ export { useSelected } from '@slate-react';
15
+ export { useSlate, useSlateWithV } from '@slate-react';
16
+ export { useSlateSelector } from '@slate-react';
17
+ export { useSlateSelection } from '@slate-react';
18
+
19
+ // Plugin
20
+ export { ReactEditor } from '@slate-react';
21
+ export { withReact } from '@slate-react';
22
+
23
+ export const Slate = (props) => {
24
+ const initialValue = props.initialValue || props.value;
25
+ return OrigSlate({ ...props, initialValue });
26
+ };
@@ -1,7 +1,7 @@
1
- import { castArray } from 'lodash';
1
+ import { castArray, cloneDeep } from 'lodash';
2
2
  import { Editor, Transforms, Range, Node } from 'slate';
3
3
  import { ReactEditor } from 'slate-react';
4
- import { isCursorInList } from '@plone/volto-slate/utils';
4
+ import { isCursorInList, makeEditor } from '@plone/volto-slate/utils';
5
5
  import { LI } from '@plone/volto-slate/constants';
6
6
  import config from '@plone/volto/registry';
7
7
 
@@ -155,7 +155,8 @@ export function getFragmentFromStartOfSelectionToEndOfEditor(
155
155
  }
156
156
 
157
157
  // immer doesn't like editor.savedSelection
158
- const newEditor = { children: editor.children };
158
+ const newEditor = makeEditor();
159
+ newEditor.children = cloneDeep(editor.children);
159
160
  return Editor.fragment(newEditor, range);
160
161
  }
161
162
 
@@ -174,7 +175,9 @@ export function getFragmentFromBeginningOfEditorToStartOfSelection(
174
175
 
175
176
  // immer doesn't like editor.savedSelection
176
177
  // TODO: there's a bug here related to splitting lists
177
- const newEditor = { children: editor.children };
178
+ const newEditor = makeEditor();
179
+ newEditor.children = cloneDeep(editor.children);
180
+
178
181
  return Editor.fragment(
179
182
  newEditor,
180
183
  Editor.range(
package/pyvenv.cfg CHANGED
@@ -1,3 +1,5 @@
1
- home = /opt/homebrew/opt/python@3.9/bin
1
+ home = /opt/homebrew/opt/python@3.11/bin
2
2
  include-system-site-packages = false
3
- version = 3.9.16
3
+ version = 3.11.6
4
+ executable = /opt/homebrew/Cellar/python@3.11/3.11.6_1/Frameworks/Python.framework/Versions/3.11/bin/python3.11
5
+ command = /opt/homebrew/opt/python@3.11/bin/python3.11 -m venv /Users/sneridagh/Development/plone/volto
package/razzle.config.js CHANGED
@@ -251,6 +251,9 @@ const defaultModify = ({
251
251
  // avoids including lodash multiple times.
252
252
  // semantic-ui-react uses lodash-es, everything else uses lodash
253
253
  'lodash-es': path.dirname(require.resolve('lodash')),
254
+ // workaround for backwards-incompatible change in slate-react
255
+ '@slate-react': path.dirname(require.resolve('slate-react')),
256
+ 'slate-react$': `${registry.voltoPath}/packages/volto-slate/src/slate-react`,
254
257
  };
255
258
 
256
259
  const [
@@ -170,7 +170,7 @@ export const TitleBlockEdit = (props) => {
170
170
  <Slate
171
171
  editor={editor}
172
172
  onChange={handleChange}
173
- value={initialValue}
173
+ initialValue={initialValue}
174
174
  className={cx('block description', {
175
175
  selected: selected,
176
176
  })}
@@ -155,7 +155,7 @@ export const TitleBlockEdit = (props) => {
155
155
  return <div />;
156
156
  }
157
157
  return (
158
- <Slate editor={editor} onChange={handleChange} value={initialValue}>
158
+ <Slate editor={editor} onChange={handleChange} initialValue={initialValue}>
159
159
  <Editable
160
160
  readOnly={!editable}
161
161
  onKeyDown={handleKeyDown}
@@ -174,7 +174,7 @@ export const TextLineEdit = (props) => {
174
174
  return <div />;
175
175
  }
176
176
  return (
177
- <Slate editor={editor} onChange={handleChange} value={initialValue}>
177
+ <Slate editor={editor} onChange={handleChange} initialValue={initialValue}>
178
178
  <Editable
179
179
  readOnly={!editable}
180
180
  onKeyDown={handleKeyDown}
@@ -1,4 +1,3 @@
1
- import React from 'react';
2
1
  import { toPublicURL, Helmet } from '@plone/volto/helpers';
3
2
  import config from '@plone/volto/registry';
4
3
 
@@ -16,8 +15,21 @@ const ContentMetadataTags = (props) => {
16
15
 
17
16
  const getContentImageInfo = () => {
18
17
  const { contentMetadataTagsImageField } = config.settings;
19
- const image = props.content[contentMetadataTagsImageField];
18
+ const image_field = props.content[contentMetadataTagsImageField];
19
+ const preview_image = props.content.preview_image;
20
+ const preview_image_link = props.content.preview_image_link;
20
21
  const { opengraph_image } = props.content;
22
+ let image = undefined;
23
+
24
+ if (opengraph_image !== undefined && opengraph_image) {
25
+ image = opengraph_image;
26
+ } else if (preview_image_link !== undefined && preview_image_link) {
27
+ image = preview_image_link[contentMetadataTagsImageField];
28
+ } else if (preview_image !== undefined && preview_image) {
29
+ image = preview_image;
30
+ } else if (image_field !== undefined && image_field) {
31
+ image = image_field;
32
+ }
21
33
 
22
34
  const contentImageInfo = {
23
35
  contentHasImage: false,
@@ -25,10 +37,7 @@ const ContentMetadataTags = (props) => {
25
37
  height: null,
26
38
  width: null,
27
39
  };
28
- contentImageInfo.contentHasImage =
29
- opengraph_image?.scales?.large?.download ||
30
- image?.scales?.large?.download ||
31
- false;
40
+ contentImageInfo.contentHasImage = image?.scales?.large?.download || false;
32
41
 
33
42
  if (contentImageInfo.contentHasImage && opengraph_image?.scales?.large) {
34
43
  contentImageInfo.url = opengraph_image.scales.large.download;
@@ -54,6 +63,7 @@ const ContentMetadataTags = (props) => {
54
63
  property="og:title"
55
64
  content={opengraph_title || seo_title || title}
56
65
  />
66
+ <meta property="og:type" content={'website'} />
57
67
  <meta
58
68
  property="og:url"
59
69
  content={seo_canonical_url || toPublicURL(props.content['@id'])}
@@ -65,6 +75,12 @@ const ContentMetadataTags = (props) => {
65
75
  content={toPublicURL(contentImageInfo.url)}
66
76
  />
67
77
  )}
78
+ {contentImageInfo.contentHasImage && (
79
+ <meta
80
+ property="twitter:image"
81
+ content={toPublicURL(contentImageInfo.url)}
82
+ />
83
+ )}
68
84
  {contentImageInfo.contentHasImage && (
69
85
  <meta property="og:image:width" content={contentImageInfo.width} />
70
86
  )}
@@ -78,6 +94,21 @@ const ContentMetadataTags = (props) => {
78
94
  />
79
95
  )}
80
96
  <meta name="twitter:card" content="summary_large_image" />
97
+ <meta
98
+ property="twitter:url"
99
+ content={seo_canonical_url || toPublicURL(props.content['@id'])}
100
+ />
101
+ {/* TODO: Improve SEO backend metadata providers by adding the twitter handler */}
102
+ {/* <meta property="twitter:site" content={'@my_twitter_handler'} /> */}
103
+ <meta
104
+ property="twitter:title"
105
+ content={opengraph_title || seo_title || title}
106
+ />
107
+ <meta
108
+ property="twitter:description"
109
+ content={seo_description || description}
110
+ />
111
+ <meta property="twitter:domain" content={config.settings.publicURL} />
81
112
  </Helmet>
82
113
  </>
83
114
  );
@@ -42,6 +42,15 @@
42
42
  border-color: rgba(120, 192, 215, 0.75);
43
43
  }
44
44
 
45
+ .block-editor-title,
46
+ .block-editor-slate,
47
+ .block-editor-slateTable,
48
+ .slate-editor.selected {
49
+ :focus-visible {
50
+ outline: none;
51
+ }
52
+ }
53
+
45
54
  .block .block:hover::before {
46
55
  border-color: rgba(120, 192, 215, 0.375);
47
56
  }