@plone/volto 18.0.0-alpha.20 → 18.0.0-alpha.21

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.
package/CHANGELOG.md CHANGED
@@ -17,6 +17,26 @@ myst:
17
17
 
18
18
  <!-- towncrier release notes start -->
19
19
 
20
+ ## 18.0.0-alpha.21 (2024-03-18)
21
+
22
+ ### Breaking
23
+
24
+ - Moved `devDependencies` and `dependencies` to where they belong. @sneridagh [#5879](https://github.com/plone/volto/issues/5879)
25
+
26
+ ### Feature
27
+
28
+ - Match props passed to the BlockView if reused from the BlockEdit @sneridagh [#5876](https://github.com/plone/volto/issues/5876)
29
+ - Added download link to filename in file widget @sabrina-bongiovanni [#5880](https://github.com/plone/volto/issues/5880)
30
+
31
+ ### Internal
32
+
33
+ - Bump all the versions in GitHub workflows. @stevepiercy [#5873](https://github.com/plone/volto/issues/5873)
34
+
35
+ ### Documentation
36
+
37
+ - Update `volto-slate` configuration documentation to indicate it is now part of Volto core. @MostafaMagdyy [#5342](https://github.com/plone/volto/issues/5342)
38
+ - Modified `slate.useLinkedHeadings` documentation to mention feature is disabled for authenticated users after #5225 changes. @ichim-david [#5885](https://github.com/plone/volto/issues/5885)
39
+
20
40
  ## 18.0.0-alpha.20 (2024-03-14)
21
41
 
22
42
  ### Bugfix
package/package.json CHANGED
@@ -9,7 +9,7 @@
9
9
  }
10
10
  ],
11
11
  "license": "MIT",
12
- "version": "18.0.0-alpha.20",
12
+ "version": "18.0.0-alpha.21",
13
13
  "repository": {
14
14
  "type": "git",
15
15
  "url": "git@github.com:plone/volto.git"
@@ -145,99 +145,41 @@
145
145
  "node": "^16 || ^18 || ^20"
146
146
  },
147
147
  "dependencies": {
148
- "@babel/core": "^7.0.0",
149
- "@babel/eslint-parser": "7.22.15",
150
- "@babel/plugin-proposal-export-default-from": "7.18.10",
151
- "@babel/plugin-proposal-export-namespace-from": "7.18.9",
152
- "@babel/plugin-proposal-json-strings": "7.18.6",
153
- "@babel/plugin-proposal-nullish-coalescing-operator": "7.18.6",
154
- "@babel/plugin-proposal-throw-expressions": "7.18.6",
155
- "@babel/plugin-syntax-export-namespace-from": "7.8.3",
156
- "@babel/runtime": "7.20.6",
157
- "@babel/types": "7.20.5",
158
- "@loadable/babel-plugin": "5.13.2",
159
148
  "@loadable/component": "5.14.1",
160
149
  "@loadable/server": "5.14.0",
161
- "@loadable/webpack-plugin": "5.15.2",
162
150
  "@redux-devtools/extension": "^3.3.0",
163
- "@types/react": "^18.2.57",
164
- "@types/react-dom": "^18.2.19",
165
- "autoprefixer": "10.4.8",
166
- "axe-core": "4.4.2",
167
- "babel-plugin-add-module-exports": "0.2.1",
168
- "babel-plugin-lodash": "3.3.4",
169
- "babel-plugin-react-intl": "5.1.17",
170
- "babel-plugin-root-import": "6.1.0",
171
- "babel-preset-razzle": "4.2.18",
172
- "circular-dependency-plugin": "5.2.2",
173
151
  "classnames": "2.2.6",
174
- "commander": "8.2.0",
175
152
  "connected-react-router": "6.8.0",
176
- "crypto-random-string": "3.2.0",
177
- "css-loader": "5.2.7",
178
153
  "debug": "4.3.2",
179
154
  "decorate-component-with-props": "1.2.1",
180
- "deep-freeze": "0.0.1",
181
155
  "dependency-graph": "0.10.0",
182
156
  "detect-browser": "5.1.0",
183
157
  "diff": "3.5.0",
184
- "eslint": "8.49.0",
185
- "eslint-config-prettier": "9.1.0",
186
- "eslint-config-react-app": "7.0.1",
187
- "eslint-import-resolver-alias": "1.1.2",
188
- "eslint-import-resolver-babel-plugin-root-import": "1.1.1",
189
- "eslint-plugin-import": "2.29.1",
190
- "eslint-plugin-jsx-a11y": "^6.7.1",
191
- "eslint-plugin-prettier": "5.1.3",
192
- "eslint-plugin-react": "7.33.2",
193
- "eslint-plugin-react-hooks": "4.6.0",
194
158
  "express": "4.17.3",
195
159
  "filesize": "6",
196
160
  "github-slugger": "1.4.0",
197
- "glob": "7.1.6",
198
161
  "history": "4.10.1",
199
162
  "hoist-non-react-statics": "3.3.2",
200
- "html-webpack-plugin": "5.5.0",
201
163
  "http-proxy-middleware": "2.0.1",
202
- "identity-obj-proxy": "3.0.0",
203
164
  "image-extensions": "1.1.0",
204
165
  "immutable": "3",
205
166
  "is-hotkey": "0.2.0",
206
167
  "is-url": "1.2.4",
207
- "jest-file": "1.0.0",
208
168
  "jotai": "2.0.3",
209
169
  "jwt-decode": "2.2.0",
210
- "less": "3.11.1",
211
- "less-loader": "11.1.0",
212
170
  "linkify-it": "3.0.2",
213
- "lint-staged": "10.2.2",
214
171
  "locale": "0.1.0",
215
172
  "lodash": "4.17.21",
216
173
  "lodash-move": "1.1.1",
217
- "lodash-webpack-plugin": "0.11.6",
218
- "mini-css-extract-plugin": "2.7.2",
219
174
  "moment": "2.29.4",
220
- "moment-locales-webpack-plugin": "1.2.0",
221
175
  "object-assign": "4.1.1",
222
- "pofile": "1.0.10",
223
- "postcss": "8.4.31",
224
- "postcss-flexbugs-fixes": "5.0.2",
225
- "postcss-less": "6.0.0",
226
- "postcss-load-config": "3.1.4",
227
- "postcss-loader": "7.0.2",
228
- "postcss-overrides": "3.1.4",
229
- "postcss-scss": "4.0.6",
230
176
  "prepend-http": "2",
231
- "prettier": "3.2.5",
232
177
  "pretty-bytes": "5.3.0",
233
178
  "prismjs": "1.27.0",
234
179
  "process": "^0.11.10",
235
180
  "promise-file-reader": "1.0.2",
236
181
  "prop-types": "15.7.2",
237
182
  "query-string": "7.1.0",
238
- "razzle": "4.2.18",
239
- "razzle-dev-utils": "4.2.18",
240
- "razzle-plugin-scss": "4.2.18",
241
183
  "rc-time-picker": "3.7.3",
242
184
  "react": "18.2.0",
243
185
  "react-anchor-link-smooth-scroll": "1.0.12",
@@ -285,15 +227,7 @@
285
227
  "slate": "0.100.0",
286
228
  "slate-hyperscript": "0.100.0",
287
229
  "slate-react": "0.98.4",
288
- "start-server-and-test": "1.14.0",
289
- "style-loader": "3.3.1",
290
- "stylelint": "16.2.1",
291
- "stylelint-config-idiomatic-order": "10.0.0",
292
- "stylelint-prettier": "5.0.0",
293
230
  "superagent": "3.8.2",
294
- "svg-loader": "0.0.2",
295
- "svgo-loader": "3.0.3",
296
- "terser-webpack-plugin": "5.3.6",
297
231
  "tlds": "1.203.1",
298
232
  "undoo": "0.5.0",
299
233
  "universal-cookie": "4.0.4",
@@ -301,15 +235,23 @@
301
235
  "url": "^0.11.3",
302
236
  "use-deep-compare-effect": "1.8.1",
303
237
  "uuid": "^8.3.2",
304
- "webpack": "5.76.1",
305
- "webpack-bundle-analyzer": "4.10.1",
306
- "webpack-dev-server": "4.11.1",
307
- "webpack-node-externals": "3.0.0",
308
238
  "@plone/registry": "1.5.2",
309
239
  "@plone/volto-slate": "18.0.0-alpha.10",
310
- "@plone/scripts": "3.5.0"
240
+ "@plone/scripts": "3.6.0"
311
241
  },
312
242
  "devDependencies": {
243
+ "@babel/core": "^7.0.0",
244
+ "@babel/eslint-parser": "7.22.15",
245
+ "@babel/plugin-proposal-export-default-from": "7.18.10",
246
+ "@babel/plugin-proposal-export-namespace-from": "7.18.9",
247
+ "@babel/plugin-proposal-json-strings": "7.18.6",
248
+ "@babel/plugin-proposal-nullish-coalescing-operator": "7.18.6",
249
+ "@babel/plugin-proposal-throw-expressions": "7.18.6",
250
+ "@babel/plugin-syntax-export-namespace-from": "7.8.3",
251
+ "@babel/runtime": "7.20.6",
252
+ "@babel/types": "7.20.5",
253
+ "@loadable/babel-plugin": "5.13.2",
254
+ "@loadable/webpack-plugin": "5.15.2",
313
255
  "@jest/globals": "^29.7.0",
314
256
  "@sinonjs/fake-timers": "^6.0.1",
315
257
  "@storybook/addon-actions": "^6.5.15",
@@ -333,30 +275,80 @@
333
275
  "@types/uuid": "^9.0.2",
334
276
  "@typescript-eslint/eslint-plugin": "7.1.1",
335
277
  "@typescript-eslint/parser": "7.1.1",
278
+ "autoprefixer": "10.4.8",
279
+ "axe-core": "4.4.2",
336
280
  "babel-loader": "9.1.0",
281
+ "babel-plugin-add-module-exports": "0.2.1",
282
+ "babel-plugin-lodash": "3.3.4",
283
+ "babel-plugin-react-intl": "5.1.17",
284
+ "babel-plugin-root-import": "6.1.0",
285
+ "babel-preset-razzle": "4.2.18",
337
286
  "bundlewatch": "0.3.3",
287
+ "circular-dependency-plugin": "5.2.2",
288
+ "css-loader": "5.2.7",
338
289
  "cypress": "13.6.6",
339
290
  "cypress-axe": "1.5.0",
340
291
  "cypress-file-upload": "5.0.8",
292
+ "deep-freeze": "0.0.1",
293
+ "eslint": "8.49.0",
294
+ "eslint-config-prettier": "9.1.0",
295
+ "eslint-config-react-app": "7.0.1",
296
+ "eslint-import-resolver-alias": "1.1.2",
297
+ "eslint-import-resolver-babel-plugin-root-import": "1.1.1",
298
+ "eslint-plugin-import": "2.29.1",
299
+ "eslint-plugin-jsx-a11y": "^6.7.1",
300
+ "eslint-plugin-prettier": "5.1.3",
301
+ "eslint-plugin-react": "7.33.2",
302
+ "eslint-plugin-react-hooks": "4.6.0",
341
303
  "full-icu": "1.4.0",
304
+ "html-webpack-plugin": "5.5.0",
342
305
  "identity-obj-proxy": "3.0.0",
343
306
  "jest": "26.6.3",
344
307
  "jest-environment-jsdom": "^26",
345
308
  "jsdom": "^16.7.0",
309
+ "jest-file": "1.0.0",
346
310
  "jsonwebtoken": "9.0.0",
311
+ "less": "3.11.1",
312
+ "less-loader": "11.1.0",
313
+ "lodash-webpack-plugin": "0.11.6",
314
+ "mini-css-extract-plugin": "2.7.2",
315
+ "moment-locales-webpack-plugin": "1.2.0",
316
+ "postcss": "8.4.31",
317
+ "postcss-flexbugs-fixes": "5.0.2",
318
+ "postcss-less": "6.0.0",
319
+ "postcss-load-config": "3.1.4",
320
+ "postcss-loader": "7.0.2",
321
+ "postcss-overrides": "3.1.4",
322
+ "postcss-scss": "4.0.6",
323
+ "prettier": "3.2.5",
324
+ "razzle": "4.2.18",
325
+ "razzle-dev-utils": "4.2.18",
326
+ "razzle-plugin-scss": "4.2.18",
347
327
  "react-docgen-typescript-plugin": "^1.0.5",
348
328
  "react-error-overlay": "6.0.9",
349
329
  "react-is": "^18.2.0",
350
330
  "release-it": "^17.1.1",
351
331
  "semver": "^7.5.4",
332
+ "start-server-and-test": "1.14.0",
333
+ "style-loader": "3.3.1",
334
+ "stylelint": "16.2.1",
335
+ "stylelint-config-idiomatic-order": "10.0.0",
336
+ "stylelint-prettier": "5.0.0",
337
+ "svg-loader": "0.0.2",
338
+ "svgo-loader": "3.0.3",
339
+ "terser-webpack-plugin": "5.3.6",
352
340
  "tmp": "0.2.1",
353
341
  "ts-jest": "^26.4.2",
354
342
  "ts-loader": "9.4.4",
355
343
  "typescript": "5.2.2",
356
344
  "use-trace-update": "1.3.2",
357
345
  "wait-on": "6.0.0",
346
+ "webpack": "5.76.1",
347
+ "webpack-bundle-analyzer": "4.10.1",
348
+ "webpack-dev-server": "4.11.1",
349
+ "webpack-node-externals": "3.0.0",
358
350
  "why": "0.6.2",
359
- "@plone/types": "1.0.0-alpha.6",
351
+ "@plone/types": "1.0.0-alpha.7",
360
352
  "@plone/volto-coresandbox": "1.0.0"
361
353
  },
362
354
  "volta": {
@@ -394,6 +394,10 @@ class Add extends Component {
394
394
  this.setState({ formSelected: 'addForm' });
395
395
  }}
396
396
  global
397
+ // Properties to pass to the BlocksForm to match the View ones
398
+ history={this.props.history}
399
+ location={this.props.location}
400
+ token={this.props.token}
397
401
  />
398
402
  {this.state.isClient &&
399
403
  createPortal(
@@ -48,6 +48,9 @@ const BlocksForm = (props) => {
48
48
  blocksConfig = config.blocks.blocksConfig,
49
49
  editable = true,
50
50
  direction = 'vertical',
51
+ history,
52
+ location,
53
+ token,
51
54
  } = props;
52
55
 
53
56
  const blockList = getBlocks(properties);
@@ -271,6 +274,11 @@ const BlocksForm = (props) => {
271
274
  editable,
272
275
  showBlockChooser: selectedBlock === childId,
273
276
  detached: isContainer,
277
+ // Properties to pass to the BlocksForm to match the View ones
278
+ content: properties,
279
+ history,
280
+ location,
281
+ token,
274
282
  };
275
283
  return editBlockWrapper(
276
284
  dragProps,
@@ -333,6 +333,10 @@ class Edit extends Component {
333
333
  this.setState({ formSelected: 'editForm' });
334
334
  }}
335
335
  global
336
+ // Properties to pass to the BlocksForm to match the View ones
337
+ history={this.props.history}
338
+ location={this.props.location}
339
+ token={this.props.token}
336
340
  />
337
341
  );
338
342
 
@@ -719,6 +719,10 @@ class Form extends Component {
719
719
  showRestricted={this.props.showRestricted}
720
720
  editable={this.props.editable}
721
721
  isMainForm={this.props.editable}
722
+ // Properties to pass to the BlocksForm to match the View ones
723
+ history={this.props.history}
724
+ location={this.props.location}
725
+ token={this.props.token}
722
726
  />
723
727
  {this.state.isClient &&
724
728
  this.state.sidebarMetadataIsAvailable &&
@@ -9,7 +9,7 @@ import { Button, Image, Dimmer } from 'semantic-ui-react';
9
9
  import { readAsDataURL } from 'promise-file-reader';
10
10
  import { injectIntl } from 'react-intl';
11
11
  import deleteSVG from '@plone/volto/icons/delete.svg';
12
- import { Icon, FormFieldWrapper } from '@plone/volto/components';
12
+ import { Icon, FormFieldWrapper, UniversalLink } from '@plone/volto/components';
13
13
  import loadable from '@loadable/component';
14
14
  import { flattenToAppURL, validateFileUploadSize } from '@plone/volto/helpers';
15
15
  import { defineMessages, useIntl } from 'react-intl';
@@ -170,7 +170,11 @@ const FileWidget = (props) => {
170
170
  )}
171
171
  </Dropzone>
172
172
  <div className="field-file-name">
173
- {value && value.filename}
173
+ {value && (
174
+ <UniversalLink href={value.download} download={true}>
175
+ {value.filename}
176
+ </UniversalLink>
177
+ )}
174
178
  {value && (
175
179
  <Button
176
180
  icon