Răsfoiți Sursa

Merge branch 'master' into i/7548

Piotrek Koszuliński 5 ani în urmă
părinte
comite
8c133a662f
100 a modificat fișierele cu 1115 adăugiri și 438 ștergeri
  1. 139 0
      CHANGELOG.md
  2. 12 0
      README.md
  3. 1 1
      docs/_snippets/framework/tutorials/block-widget.js
  4. 1 1
      docs/_snippets/framework/tutorials/inline-widget.js
  5. 1 1
      docs/_snippets/framework/tutorials/using-react-in-widget.html
  6. 9 0
      docs/builds/guides/frameworks/angular.md
  7. 96 9
      docs/builds/guides/frameworks/react.md
  8. 1 1
      docs/builds/guides/integration/advanced-setup.md
  9. 77 72
      docs/builds/guides/integration/content-styles.md
  10. 2 0
      docs/features/image-upload.md
  11. 2 2
      docs/features/index.md
  12. 2 2
      docs/framework/guides/architecture/ui-library.md
  13. 9 5
      docs/framework/guides/contributing/development-environment.md
  14. 1 1
      docs/framework/guides/deep-dive/localization.md
  15. 4 0
      docs/framework/guides/tutorials/implementing-a-block-widget.md
  16. 2 2
      docs/framework/guides/tutorials/implementing-an-inline-widget.md
  17. 6 2
      docs/framework/guides/tutorials/using-react-in-a-widget.md
  18. 1 1
      docs/index.md
  19. 56 54
      package.json
  20. 2 2
      packages/ckeditor-cloud-services-core/package.json
  21. 21 0
      packages/ckeditor5-adapter-ckfinder/lang/translations/hi.po
  22. 1 1
      packages/ckeditor5-adapter-ckfinder/lang/translations/ug.po
  23. 13 13
      packages/ckeditor5-adapter-ckfinder/package.json
  24. 9 0
      packages/ckeditor5-alignment/docs/features/text-alignment.md
  25. 1 1
      packages/ckeditor5-alignment/lang/translations/fa.po
  26. 41 0
      packages/ckeditor5-alignment/lang/translations/hi.po
  27. 13 13
      packages/ckeditor5-alignment/package.json
  28. 1 1
      packages/ckeditor5-alignment/src/alignmentui.js
  29. 14 14
      packages/ckeditor5-autoformat/package.json
  30. 21 0
      packages/ckeditor5-autosave/lang/translations/hi.po
  31. 5 5
      packages/ckeditor5-autosave/package.json
  32. 6 6
      packages/ckeditor5-basic-styles/docs/_snippets/features/basic-styles.html
  33. 10 1
      packages/ckeditor5-basic-styles/docs/features/basic-styles.md
  34. 45 0
      packages/ckeditor5-basic-styles/lang/translations/hi.po
  35. 10 10
      packages/ckeditor5-basic-styles/package.json
  36. 1 1
      packages/ckeditor5-basic-styles/src/bold/boldui.js
  37. 1 1
      packages/ckeditor5-basic-styles/src/code/codeui.js
  38. 1 1
      packages/ckeditor5-basic-styles/src/italic/italicui.js
  39. 1 1
      packages/ckeditor5-basic-styles/src/strikethrough/strikethroughui.js
  40. 1 1
      packages/ckeditor5-basic-styles/src/subscript/subscriptui.js
  41. 1 1
      packages/ckeditor5-basic-styles/src/superscript/superscriptui.js
  42. 1 1
      packages/ckeditor5-basic-styles/src/underline/underlineui.js
  43. 3 2
      packages/ckeditor5-block-quote/docs/features/block-quote.md
  44. 21 0
      packages/ckeditor5-block-quote/lang/translations/hi.po
  45. 14 14
      packages/ckeditor5-block-quote/package.json
  46. 1 1
      packages/ckeditor5-block-quote/src/blockquoteui.js
  47. 0 0
      packages/ckeditor5-build-balloon-block/build/ckeditor.js
  48. 0 0
      packages/ckeditor5-build-balloon-block/build/ckeditor.js.map
  49. 0 0
      packages/ckeditor5-build-balloon-block/build/translations/fa.js
  50. 0 0
      packages/ckeditor5-build-balloon-block/build/translations/fr.js
  51. 0 0
      packages/ckeditor5-build-balloon-block/build/translations/ug.js
  52. 0 0
      packages/ckeditor5-build-balloon-block/build/translations/zh-cn.js
  53. 22 22
      packages/ckeditor5-build-balloon-block/package.json
  54. 0 0
      packages/ckeditor5-build-balloon/build/ckeditor.js
  55. 0 0
      packages/ckeditor5-build-balloon/build/ckeditor.js.map
  56. 0 0
      packages/ckeditor5-build-balloon/build/translations/fa.js
  57. 0 0
      packages/ckeditor5-build-balloon/build/translations/fr.js
  58. 0 0
      packages/ckeditor5-build-balloon/build/translations/ug.js
  59. 0 0
      packages/ckeditor5-build-balloon/build/translations/zh-cn.js
  60. 21 21
      packages/ckeditor5-build-balloon/package.json
  61. 0 0
      packages/ckeditor5-build-classic/build/ckeditor.js
  62. 0 0
      packages/ckeditor5-build-classic/build/ckeditor.js.map
  63. 0 0
      packages/ckeditor5-build-classic/build/translations/fa.js
  64. 0 0
      packages/ckeditor5-build-classic/build/translations/fr.js
  65. 0 0
      packages/ckeditor5-build-classic/build/translations/ug.js
  66. 0 0
      packages/ckeditor5-build-classic/build/translations/zh-cn.js
  67. 21 21
      packages/ckeditor5-build-classic/package.json
  68. 0 0
      packages/ckeditor5-build-decoupled-document/build/ckeditor.js
  69. 0 0
      packages/ckeditor5-build-decoupled-document/build/ckeditor.js.map
  70. 0 0
      packages/ckeditor5-build-decoupled-document/build/translations/fa.js
  71. 0 0
      packages/ckeditor5-build-decoupled-document/build/translations/fr.js
  72. 0 0
      packages/ckeditor5-build-decoupled-document/build/translations/it.js
  73. 0 0
      packages/ckeditor5-build-decoupled-document/build/translations/ug.js
  74. 0 0
      packages/ckeditor5-build-decoupled-document/build/translations/zh-cn.js
  75. 24 24
      packages/ckeditor5-build-decoupled-document/package.json
  76. 0 0
      packages/ckeditor5-build-inline/build/ckeditor.js
  77. 0 0
      packages/ckeditor5-build-inline/build/ckeditor.js.map
  78. 0 0
      packages/ckeditor5-build-inline/build/translations/fa.js
  79. 0 0
      packages/ckeditor5-build-inline/build/translations/fr.js
  80. 0 0
      packages/ckeditor5-build-inline/build/translations/ug.js
  81. 0 0
      packages/ckeditor5-build-inline/build/translations/zh-cn.js
  82. 21 21
      packages/ckeditor5-build-inline/package.json
  83. 37 0
      packages/ckeditor5-ckfinder/lang/translations/hi.po
  84. 11 11
      packages/ckeditor5-ckfinder/package.json
  85. 1 1
      packages/ckeditor5-ckfinder/src/ckfinderui.js
  86. 0 0
      packages/ckeditor5-clipboard/docs/_snippets/features/build-paste-source.html
  87. 19 0
      packages/ckeditor5-clipboard/docs/_snippets/features/build-paste-source.js
  88. 14 0
      packages/ckeditor5-clipboard/docs/_snippets/features/paste-plain-text.html
  89. 48 0
      packages/ckeditor5-clipboard/docs/_snippets/features/paste-plain-text.js
  90. 66 0
      packages/ckeditor5-clipboard/docs/features/paste-plain-text.md
  91. 9 9
      packages/ckeditor5-clipboard/package.json
  92. 35 35
      packages/ckeditor5-clipboard/src/clipboardobserver.js
  93. 1 1
      packages/ckeditor5-clipboard/src/pasteplaintext.js
  94. 4 4
      packages/ckeditor5-cloud-services/package.json
  95. 6 6
      packages/ckeditor5-code-block/docs/_snippets/features/code-block-custom-languages.html
  96. 7 0
      packages/ckeditor5-code-block/docs/features/code-blocks.md
  97. 25 0
      packages/ckeditor5-code-block/lang/translations/fa.po
  98. 25 0
      packages/ckeditor5-code-block/lang/translations/hi.po
  99. 15 15
      packages/ckeditor5-code-block/package.json
  100. 2 2
      packages/ckeditor5-code-block/src/codeblockui.js

+ 139 - 0
CHANGELOG.md

@@ -1,6 +1,145 @@
 Changelog
 =========
 
+## [23.1.0](https://github.com/ckeditor/ckeditor5/compare/v23.0.0...v23.1.0) (2020-10-29)
+
+### Release highlights
+
+We are happy to announce the release of CKEditor 5 v23.1.0.
+
+This release introduces a new HTML embed feature and adds the list style feature to the document editor build.
+
+It also comes with new API features:
+
+* [The `data-cke-ignore-events` attribute in view element](https://github.com/ckeditor/ckeditor5/issues/4600) that prevents CKEditor from handling events fired in this element.
+* [The `triggerBy` option](https://github.com/ckeditor/ckeditor5/issues/7956) that triggers element re-render.
+
+Other than that, this release brings several bug fixes, to name a few:
+
+* [Unsupported element causes a JavaScript error instead of being filtered out](https://github.com/ckeditor/ckeditor5/issues/8098).
+* [<kbd>Backspace</kbd> does not remove all blocks in rare cases](https://github.com/ckeditor/ckeditor5/issues/8145).
+* [List conversion throws an error if the list element is surrounded by raw text nodes](https://github.com/ckeditor/ckeditor5/issues/8262).
+* [Opening the upload panel should focus the URL input](https://github.com/ckeditor/ckeditor5/issues/7896).
+* [Validation for empty URL in the "Insert image via URL" dropdown](https://github.com/ckeditor/ckeditor5/issues/7917).
+* [URLs with a `%` character are not transformed into media embeds](https://github.com/ckeditor/ckeditor5/issues/7488).
+
+Please note that there are some **minor breaking changes**. Be sure to review them before upgrading.
+
+<!-- TODO: Add a link to the blog post. -->
+
+### Collaboration features
+
+The CKEditor 5 Collaboration features changelog can be found here: https://ckeditor.com/collaboration/changelog.
+
+### MINOR BREAKING CHANGES [ℹ️](https://ckeditor.com/docs/ckeditor5/latest/framework/guides/support/versioning-policy.html#major-and-minor-breaking-changes)
+
+* **[table](https://www.npmjs.com/package/@ckeditor/ckeditor5-table)**: Removed the `ensureParagraphInTableCell()` converter that corrected the model state after the conversion process. Now the model will be fixed (if needed) by the post-fixer (`injectTableCellParagraphPostFixer()`).
+* **[utils](https://www.npmjs.com/package/@ckeditor/ckeditor5-utils)**: The `attachLinkToDocumentation()` helper was removed. To log errors with an attached documentation link to the console, use `logWarning()` and `logError()`.
+
+### Features
+
+* **[build-decoupled-document](https://www.npmjs.com/package/@ckeditor/ckeditor5-build-decoupled-document)**: Added the list style feature to the document editor build. Closes [#7941](https://github.com/ckeditor/ckeditor5/issues/7941). ([commit](https://github.com/ckeditor/ckeditor5/commit/606a44b1575a5ba6c7be7b0e2c89907d151c2742))
+* **[engine](https://www.npmjs.com/package/@ckeditor/ckeditor5-engine)**: Elements with the `data-cke-ignore-events` attribute will not propagate their events to the CKEditor 5 API. Closes [#4600](https://github.com/ckeditor/ckeditor5/issues/4600). ([commit](https://github.com/ckeditor/ckeditor5/commit/04207f93f00a668bbe031d70ae7230f892428115))
+* **[engine](https://www.npmjs.com/package/@ckeditor/ckeditor5-engine)**: Introduced an automatic model-to-view reconversion by defining the `triggerBy` option for the `elementToElement()` conversion helper. Closes [#7956](https://github.com/ckeditor/ckeditor5/issues/7956). ([commit](https://github.com/ckeditor/ckeditor5/commit/a7c99732fd63008ada4f13c187df552a989291e1))
+* **[html-embed](https://www.npmjs.com/package/@ckeditor/ckeditor5-html-embed)**: Introduced the HTML embed feature. Closes [#8204](https://github.com/ckeditor/ckeditor5/issues/8204). ([commit](https://github.com/ckeditor/ckeditor5/commit/b529537086966ac908a163bf9373d67d43383586))
+
+### Bug fixes
+
+* **[engine](https://www.npmjs.com/package/@ckeditor/ckeditor5-engine)**: `Model#deleteContent()` should properly remove content with multiple blocks selected. Closes [#8145](https://github.com/ckeditor/ckeditor5/issues/8145). ([commit](https://github.com/ckeditor/ckeditor5/commit/c4b3182722a8eea68d00b0250c8ac9388723a1b5))
+* **[image](https://www.npmjs.com/package/@ckeditor/ckeditor5-image)**: Removed focus outline in the "insert image via URL" form. Closes [#7973](https://github.com/ckeditor/ckeditor5/issues/7973). ([commit](https://github.com/ckeditor/ckeditor5/commit/d3975f8436cee3f0e4c4cd39b4ee8c7816f15784))
+* **[image](https://www.npmjs.com/package/@ckeditor/ckeditor5-image)**: The insert button in the insert image dropdown is now disabled when the URL input is empty. Closes [#7917](https://github.com/ckeditor/ckeditor5/issues/7917). ([commit](https://github.com/ckeditor/ckeditor5/commit/608baa9be5a1c8ae5600e8df9627c4f5b2cecef7))
+* **[image](https://www.npmjs.com/package/@ckeditor/ckeditor5-image)**: The URL input field is now focused when the image dropdown is opened. Closes [#7896](https://github.com/ckeditor/ckeditor5/issues/7896). ([commit](https://github.com/ckeditor/ckeditor5/commit/25b3aec03dae39cfd68b039b6704ef2670ccbfda))
+* **[link](https://www.npmjs.com/package/@ckeditor/ckeditor5-link)**: Improved the look of link balloon button separators on mobiles. Closes [#7704](https://github.com/ckeditor/ckeditor5/issues/7704). ([commit](https://github.com/ckeditor/ckeditor5/commit/6aecaf89c656f2fff126185833b8030618109f7d))
+* **[link](https://www.npmjs.com/package/@ckeditor/ckeditor5-link)**: Pressing <kbd>Ctrl/Cmd</kbd>+<kbd>K</kbd> when `LinkCommand` is disabled no longer shows the link UI. Closes [#7919](https://github.com/ckeditor/ckeditor5/issues/7919). ([commit](https://github.com/ckeditor/ckeditor5/commit/242d21c67ecf71781beae4494472538d78c9636d))
+* **[link](https://www.npmjs.com/package/@ckeditor/ckeditor5-link)**: The autolink feature now uses `link.defaultProtocol` if set. Closes [#8079](https://github.com/ckeditor/ckeditor5/issues/8079). ([commit](https://github.com/ckeditor/ckeditor5/commit/9a9f9c3671f1427c0c32784e43a3b1e5c0a5e6b7))
+* **[list](https://www.npmjs.com/package/@ckeditor/ckeditor5-list)**: List conversion does not throw an error if the list element is being surrounded by raw text nodes. Closes [#8262](https://github.com/ckeditor/ckeditor5/issues/8262). ([commit](https://github.com/ckeditor/ckeditor5/commit/e8b6f519d40bb0f18de988c82e72f023fba2ddfe))
+* **[media-embed](https://www.npmjs.com/package/@ckeditor/ckeditor5-media-embed)**: Disabled the save button in the insert media dropdown when the input is empty. See [#7917](https://github.com/ckeditor/ckeditor5/issues/7917). ([commit](https://github.com/ckeditor/ckeditor5/commit/608baa9be5a1c8ae5600e8df9627c4f5b2cecef7))
+* **[media-embed](https://www.npmjs.com/package/@ckeditor/ckeditor5-media-embed)**: URLs with the `%` character are now allowed for embedding media. Closes [#7488](https://github.com/ckeditor/ckeditor5/issues/7488). ([commit](https://github.com/ckeditor/ckeditor5/commit/5f4c9b581c36bbe0c47782039f6d9376e408d638))
+* **[media-embed](https://www.npmjs.com/package/@ckeditor/ckeditor5-media-embed)**: Enabled the media embed command when the selected media is in a table cell. Closes [#7604](https://github.com/ckeditor/ckeditor5/issues/7604). ([commit](https://github.com/ckeditor/ckeditor5/commit/f36fcba2cfde0d97c481bbedbbfe6b3d49f0b74a))
+* **[table](https://www.npmjs.com/package/@ckeditor/ckeditor5-table)**: Pasting nested tables with content unsupported by the editor elements no longer throws an exception. Closes [#8098](https://github.com/ckeditor/ckeditor5/issues/8098). ([commit](https://github.com/ckeditor/ckeditor5/commit/c8e3a9480fbe2d638ac986f8d723aa89e62a82bc))
+
+### Other changes
+
+* **[table](https://www.npmjs.com/package/@ckeditor/ckeditor5-table)**: Table cell's content refreshing for the editing view now makes fewer view updates. ([commit](https://github.com/ckeditor/ckeditor5/commit/a7c99732fd63008ada4f13c187df552a989291e1))
+* **[utils](https://www.npmjs.com/package/@ckeditor/ckeditor5-utils)**: Improved the readability of custom errors in the console. Closes [#8140](https://github.com/ckeditor/ckeditor5/issues/8140). ([commit](https://github.com/ckeditor/ckeditor5/commit/40801bae032916b99e3ea838543ef95045a481a6))
+* Optimized icons. ([commit](https://github.com/ckeditor/ckeditor5/commit/dfc73c9875768d09ad1a64d68ec14ec15f9b0f66))
+* Updated translations. ([commit](https://github.com/ckeditor/ckeditor5/commit/6ec37b150ba09c3ad50a8e52fa1b594d58ae6d0d), [commit](https://github.com/ckeditor/ckeditor5/commit/445944d9b084c38a7366ce714017af8bea0ae70d))
+
+### Released packages
+
+Check out the [Versioning policy](https://ckeditor.com/docs/ckeditor5/latest/framework/guides/support/versioning-policy.html) guide for more information.
+
+<details>
+<summary>Released packages (summary)</summary>
+
+New packages:
+
+* [@ckeditor/ckeditor5-html-embed](https://www.npmjs.com/package/@ckeditor/ckeditor5-html-embed): v23.1.0
+
+Minor releases (contain minor breaking changes):
+
+* [@ckeditor/ckeditor5-table](https://www.npmjs.com/package/@ckeditor/ckeditor5-table): v23.0.0 => v23.1.0
+* [@ckeditor/ckeditor5-utils](https://www.npmjs.com/package/@ckeditor/ckeditor5-utils): v23.0.0 => v23.1.0
+
+Releases containing new features:
+
+* [@ckeditor/ckeditor5-engine](https://www.npmjs.com/package/@ckeditor/ckeditor5-engine): v23.0.0 => v23.1.0
+* [@ckeditor/ckeditor5-image](https://www.npmjs.com/package/@ckeditor/ckeditor5-image): v23.0.0 => v23.1.0
+* [@ckeditor/ckeditor5-theme-lark](https://www.npmjs.com/package/@ckeditor/ckeditor5-theme-lark): v23.0.0 => v23.1.0
+* [@ckeditor/ckeditor5-widget](https://www.npmjs.com/package/@ckeditor/ckeditor5-widget): v23.0.0 => v23.1.0
+
+Other releases:
+
+* [@ckeditor/ckeditor-cloud-services-core](https://www.npmjs.com/package/@ckeditor/ckeditor-cloud-services-core): v23.0.0 => v23.1.0
+* [@ckeditor/ckeditor5-adapter-ckfinder](https://www.npmjs.com/package/@ckeditor/ckeditor5-adapter-ckfinder): v23.0.0 => v23.1.0
+* [@ckeditor/ckeditor5-alignment](https://www.npmjs.com/package/@ckeditor/ckeditor5-alignment): v23.0.0 => v23.1.0
+* [@ckeditor/ckeditor5-autoformat](https://www.npmjs.com/package/@ckeditor/ckeditor5-autoformat): v23.0.0 => v23.1.0
+* [@ckeditor/ckeditor5-autosave](https://www.npmjs.com/package/@ckeditor/ckeditor5-autosave): v23.0.0 => v23.1.0
+* [@ckeditor/ckeditor5-basic-styles](https://www.npmjs.com/package/@ckeditor/ckeditor5-basic-styles): v23.0.0 => v23.1.0
+* [@ckeditor/ckeditor5-block-quote](https://www.npmjs.com/package/@ckeditor/ckeditor5-block-quote): v23.0.0 => v23.1.0
+* [@ckeditor/ckeditor5-build-balloon](https://www.npmjs.com/package/@ckeditor/ckeditor5-build-balloon): v23.0.0 => v23.1.0
+* [@ckeditor/ckeditor5-build-balloon-block](https://www.npmjs.com/package/@ckeditor/ckeditor5-build-balloon-block): v23.0.0 => v23.1.0
+* [@ckeditor/ckeditor5-build-classic](https://www.npmjs.com/package/@ckeditor/ckeditor5-build-classic): v23.0.0 => v23.1.0
+* [@ckeditor/ckeditor5-build-decoupled-document](https://www.npmjs.com/package/@ckeditor/ckeditor5-build-decoupled-document): v23.0.0 => v23.1.0
+* [@ckeditor/ckeditor5-build-inline](https://www.npmjs.com/package/@ckeditor/ckeditor5-build-inline): v23.0.0 => v23.1.0
+* [@ckeditor/ckeditor5-ckfinder](https://www.npmjs.com/package/@ckeditor/ckeditor5-ckfinder): v23.0.0 => v23.1.0
+* [@ckeditor/ckeditor5-clipboard](https://www.npmjs.com/package/@ckeditor/ckeditor5-clipboard): v23.0.0 => v23.1.0
+* [@ckeditor/ckeditor5-cloud-services](https://www.npmjs.com/package/@ckeditor/ckeditor5-cloud-services): v23.0.0 => v23.1.0
+* [@ckeditor/ckeditor5-code-block](https://www.npmjs.com/package/@ckeditor/ckeditor5-code-block): v23.0.0 => v23.1.0
+* [@ckeditor/ckeditor5-core](https://www.npmjs.com/package/@ckeditor/ckeditor5-core): v23.0.0 => v23.1.0
+* [@ckeditor/ckeditor5-easy-image](https://www.npmjs.com/package/@ckeditor/ckeditor5-easy-image): v23.0.0 => v23.1.0
+* [@ckeditor/ckeditor5-editor-balloon](https://www.npmjs.com/package/@ckeditor/ckeditor5-editor-balloon): v23.0.0 => v23.1.0
+* [@ckeditor/ckeditor5-editor-classic](https://www.npmjs.com/package/@ckeditor/ckeditor5-editor-classic): v23.0.0 => v23.1.0
+* [@ckeditor/ckeditor5-editor-decoupled](https://www.npmjs.com/package/@ckeditor/ckeditor5-editor-decoupled): v23.0.0 => v23.1.0
+* [@ckeditor/ckeditor5-editor-inline](https://www.npmjs.com/package/@ckeditor/ckeditor5-editor-inline): v23.0.0 => v23.1.0
+* [@ckeditor/ckeditor5-enter](https://www.npmjs.com/package/@ckeditor/ckeditor5-enter): v23.0.0 => v23.1.0
+* [@ckeditor/ckeditor5-essentials](https://www.npmjs.com/package/@ckeditor/ckeditor5-essentials): v23.0.0 => v23.1.0
+* [@ckeditor/ckeditor5-font](https://www.npmjs.com/package/@ckeditor/ckeditor5-font): v23.0.0 => v23.1.0
+* [@ckeditor/ckeditor5-heading](https://www.npmjs.com/package/@ckeditor/ckeditor5-heading): v23.0.0 => v23.1.0
+* [@ckeditor/ckeditor5-highlight](https://www.npmjs.com/package/@ckeditor/ckeditor5-highlight): v23.0.0 => v23.1.0
+* [@ckeditor/ckeditor5-horizontal-line](https://www.npmjs.com/package/@ckeditor/ckeditor5-horizontal-line): v23.0.0 => v23.1.0
+* [@ckeditor/ckeditor5-indent](https://www.npmjs.com/package/@ckeditor/ckeditor5-indent): v23.0.0 => v23.1.0
+* [@ckeditor/ckeditor5-link](https://www.npmjs.com/package/@ckeditor/ckeditor5-link): v23.0.0 => v23.1.0
+* [@ckeditor/ckeditor5-list](https://www.npmjs.com/package/@ckeditor/ckeditor5-list): v23.0.0 => v23.1.0
+* [@ckeditor/ckeditor5-markdown-gfm](https://www.npmjs.com/package/@ckeditor/ckeditor5-markdown-gfm): v23.0.0 => v23.1.0
+* [@ckeditor/ckeditor5-media-embed](https://www.npmjs.com/package/@ckeditor/ckeditor5-media-embed): v23.0.0 => v23.1.0
+* [@ckeditor/ckeditor5-mention](https://www.npmjs.com/package/@ckeditor/ckeditor5-mention): v23.0.0 => v23.1.0
+* [@ckeditor/ckeditor5-page-break](https://www.npmjs.com/package/@ckeditor/ckeditor5-page-break): v23.0.0 => v23.1.0
+* [@ckeditor/ckeditor5-paragraph](https://www.npmjs.com/package/@ckeditor/ckeditor5-paragraph): v23.0.0 => v23.1.0
+* [@ckeditor/ckeditor5-paste-from-office](https://www.npmjs.com/package/@ckeditor/ckeditor5-paste-from-office): v23.0.0 => v23.1.0
+* [@ckeditor/ckeditor5-remove-format](https://www.npmjs.com/package/@ckeditor/ckeditor5-remove-format): v23.0.0 => v23.1.0
+* [@ckeditor/ckeditor5-restricted-editing](https://www.npmjs.com/package/@ckeditor/ckeditor5-restricted-editing): v23.0.0 => v23.1.0
+* [@ckeditor/ckeditor5-select-all](https://www.npmjs.com/package/@ckeditor/ckeditor5-select-all): v23.0.0 => v23.1.0
+* [@ckeditor/ckeditor5-special-characters](https://www.npmjs.com/package/@ckeditor/ckeditor5-special-characters): v23.0.0 => v23.1.0
+* [@ckeditor/ckeditor5-typing](https://www.npmjs.com/package/@ckeditor/ckeditor5-typing): v23.0.0 => v23.1.0
+* [@ckeditor/ckeditor5-ui](https://www.npmjs.com/package/@ckeditor/ckeditor5-ui): v23.0.0 => v23.1.0
+* [@ckeditor/ckeditor5-undo](https://www.npmjs.com/package/@ckeditor/ckeditor5-undo): v23.0.0 => v23.1.0
+* [@ckeditor/ckeditor5-upload](https://www.npmjs.com/package/@ckeditor/ckeditor5-upload): v23.0.0 => v23.1.0
+* [@ckeditor/ckeditor5-watchdog](https://www.npmjs.com/package/@ckeditor/ckeditor5-watchdog): v23.0.0 => v23.1.0
+* [@ckeditor/ckeditor5-word-count](https://www.npmjs.com/package/@ckeditor/ckeditor5-word-count): v23.0.0 => v23.1.0
+</details>
+
+
 ## [23.0.0](https://github.com/ckeditor/ckeditor5/compare/v22.0.0...v23.0.0) (2020-09-29)
 
 ### Release highlights

+ 12 - 0
README.md

@@ -519,6 +519,18 @@ See CKEditor 5 release blog posts [on the CKEditor blog](https://ckeditor.com/bl
 	</td>
 </tr>
 
+<tr>
+	<td>
+		<a href="https://github.com/ckeditor/ckeditor5/tree/master/packages/ckeditor5-html-embed"><code>@ckeditor/ckeditor5-html-embed</code></a>
+	</td>
+	<td>
+		<a href="https://www.npmjs.com/package/@ckeditor/ckeditor5-html-embed"><img src="https://img.shields.io/npm/v/@ckeditor/ckeditor5-html-embed.svg" alt="@ckeditor/ckeditor5-html-embed npm package badge"></a>
+	</td>
+	<td>
+		The HTML embed feature.
+	</td>
+</tr>
+
 <tr>
 	<td>
 		<a href="https://github.com/ckeditor/ckeditor5/tree/master/packages/ckeditor5-image"><code>@ckeditor/ckeditor5-image</code></a>

+ 1 - 1
docs/_snippets/framework/tutorials/block-widget.js

@@ -54,7 +54,7 @@ class SimpleBoxUI extends Plugin {
 			// Execute the command when the button is clicked (executed).
 			this.listenTo( buttonView, 'execute', () => {
 				editor.execute( 'insertSimpleBox' );
-				editor.editing.view.focus();
+				editor.focus();
 			} );
 
 			return buttonView;

+ 1 - 1
docs/_snippets/framework/tutorials/inline-widget.js

@@ -82,7 +82,7 @@ class PlaceholderUI extends Plugin {
 			// Execute the command when the dropdown item is clicked (executed).
 			this.listenTo( dropdownView, 'execute', evt => {
 				editor.execute( 'placeholder', { value: evt.source.commandParam } );
-				editor.editing.view.focus();
+				editor.focus();
 			} );
 
 			return dropdownView;

+ 1 - 1
docs/_snippets/framework/tutorials/using-react-in-widget.html

@@ -311,7 +311,7 @@ class App extends React.Component {
 				products={this.props.products}
 				onClick={( id ) => {
 					this.editor.execute( 'insertProduct', id );
-					this.editor.editing.view.focus();
+					this.editor.focus();
 				}}
 			/>
 		];

+ 9 - 0
docs/builds/guides/frameworks/angular.md

@@ -16,6 +16,15 @@ Currently, the CKEditor 5 component for Angular supports integrating CKEditor 5
 	While there is no support to integrate CKEditor 5 from source yet, you can still {@link builds/guides/development/custom-builds create a custom build of CKEditor 5} and include it in your Angular application.
 </info-box>
 
+## Supported Angular versions
+
+Because of the breaking changes in the Angular library output format, the `ckeditor5-angular` package is released in the following versions to support various Angular ecosystems:
+
+* Versions `1.x.x` &ndash; For **Angular 5-8** applications. Support for this version will end when the official support for Angular 8 is dropped (planned date: November 2020),
+* Versions `2.x.x` &ndash; For **Angular 9.1+** applications. This version is currently actively supported.
+
+All available versions are [listed on npm](https://www.npmjs.com/package/@ckeditor/ckeditor5-angular), where they can be pulled from.
+
 ## Quick start
 
 In your existing Angular project, install the [CKEditor 5 WYSIWYG editor component for Angular](https://www.npmjs.com/package/@ckeditor/ckeditor5-angular):

+ 96 - 9
docs/builds/guides/frameworks/react.md

@@ -26,7 +26,7 @@ Use the `<CKEditor>` component inside your project:
 
 ```jsx
 import React, { Component } from 'react';
-import CKEditor from '@ckeditor/ckeditor5-react';
+import { CKEditor } from '@ckeditor/ckeditor5-react';
 import ClassicEditor from '@ckeditor/ckeditor5-build-classic';
 
 class App extends Component {
@@ -37,7 +37,7 @@ class App extends Component {
 				<CKEditor
 					editor={ ClassicEditor }
 					data="<p>Hello from CKEditor 5!</p>"
-					onInit={ editor => {
+					onReady={ editor => {
 						// You can store the "editor" and use when it is needed.
 						console.log( 'Editor is ready to use!', editor );
 					} }
@@ -67,18 +67,92 @@ The `<CKEditor>` component supports the following properties:
 * `editor` (required) &ndash; The {@link module:core/editor/editor~Editor `Editor`} constructor to use.
 * `data` &ndash; The initial data for the created editor. See the {@link builds/guides/integration/basic-api#interacting-with-the-editor Basic API} guide.
 * `config` &ndash; The editor configuration. See the {@link builds/guides/integration/configuration Configuration} guide.
-* `onInit` &ndash; A function called when the editor was initialized. It receives the initialized {@link module:core/editor/editor~Editor `editor`} as a parameter.
+* `id` &ndash; The editor ID. When this property changes, the component restarts the editor with new data instead of setting it on an initialized editor.
+* `onReady` &ndash; A function called when the editor is ready with an {@link module:core/editor/editor~Editor `editor`} instance. This callback is also called after the reinitialization of the component if an error occurred.
 * `disabled` &ndash; A Boolean value. The {@link module:core/editor/editor~Editor `editor`} is being switched to read-only mode if the property is set to `true`.
 * `onChange` &ndash; A function called when the editor data has changed. See the {@link module:engine/model/document~Document#event:change:data `editor.model.document#change:data`} event.
 * `onBlur` &ndash; A function called when the editor was blurred. See the {@link module:engine/view/document~Document#event:blur `editor.editing.view.document#blur`} event.
 * `onFocus` &ndash; A function called when the editor was focused. See the {@link module:engine/view/document~Document#event:focus `editor.editing.view.document#focus`} event.
-* `onError` &ndash; A function called when the editor has crashed during the initialization. It receives the error object as a parameter.
+* `onError` &ndash; A function called when the editor has crashed during the initialization or during the runtime. It receives two arguments: the error instance and the error details.
+    Error details is an object that contains two properties:
+    * `{String} phase`: `'initialization'|'runtime'` &ndash; Informs when the error has occurred (during the editor or context initialization, or after the initialization).
+     * `{Boolean} willEditorRestart` &ndash; When `true`, it means that the editor component will restart itself.
 
-The editor events callbacks (`onChange`, `onBlur`, `onFocus`) receive two parameters:
+The editor event callbacks (`onChange`, `onBlur`, `onFocus`) receive two arguments:
 
 1. An {@link module:utils/eventinfo~EventInfo `EventInfo`} object.
 2. An {@link module:core/editor/editor~Editor `Editor`} instance.
 
+### Context feature
+
+The [`@ckeditor/ckeditor5-react`](https://www.npmjs.com/package/@ckeditor/ckeditor5-react) package provides a ready-to-use component for the [context feature](https://ckeditor.com/docs/ckeditor5/latest/features/collaboration/context-and-collaboration-features.html) that is useful when used together with some [CKEditor 5 collaboration features](https://ckeditor.com/docs/ckeditor5/latest/features/collaboration/collaboration.html).
+
+```jsx
+// This sample assumes that the application is using a CKEditor editor built from source.
+import React, { Component } from 'react';
+import { CKEditor, CKEditorContext } from '@ckeditor/ckeditor5-react';
+
+import Context from '@ckeditor/ckeditor5-core/src/context';
+import ClassicEditor from '@ckeditor/ckeditor5-editor-classic/src/classiceditor';
+import Bold from '@ckeditor/ckeditor5-basic-styles/src/bold';
+import Italic from '@ckeditor/ckeditor5-basic-styles/src/italic';
+import Essentials from '@ckeditor/ckeditor5-essentials/src/essentials';
+import Paragraph from '@ckeditor/ckeditor5-paragraph/src/paragraph';
+
+class App extends Component {
+	render() {
+		return (
+			<div className="App">
+				<CKEditorContext context={ Context }>
+					<h2>Using CKeditor 5 context feature in React</h2>
+					<CKEditor
+						editor={ ClassicEditor }
+						config={ {
+							plugins: [ Paragraph, Bold, Italic, Essentials ],
+							toolbar: [ 'bold', 'italic' ]
+						} }
+						data="<p>Hello from the first editor working with the context!</p>"
+						onReady={ editor => {
+							// You can store the "editor" and use when it is needed.
+							console.log( 'Editor1 is ready to use!', editor );
+						} }
+					/>
+
+					<CKEditor
+						editor={ ClassicEditor }
+						config={ {
+							plugins: [ Paragraph, Bold, Italic, Essentials ],
+							toolbar: [ 'bold', 'italic' ]
+						} }
+						data="<p>Hello from the first editor working with the context!</p>"
+						onReady={ editor => {
+							// You can store the "editor" and use when it is needed.
+							console.log( 'Editor1 is ready to use!', editor );
+						} }
+					/>
+				</CKEditorContext>
+			</div>
+		);
+	}
+}
+```
+
+The `CKEditorContext` component supports the following properties:
+
+* `context` (required) &ndash; {@link module:core/context~Context The CKEditor 5 context class}.
+* `config` &ndash; The CKEditor 5 context configuration.
+* `isLayoutReady` &ndash; A property that delays the context creation when set to `false`. It creates the context and the editor children once it is `true` or unset. Useful when the CKEditor 5 annotations or a presence list is used.
+* `id` &ndash; The context ID. When this property changes, the component restarts the context with its editor and reinitializes it based on the current configuration.
+* `onReady` &ndash; A function called when the context is ready and all editors inside were initialized with the `context` instance. This callback is also called after the reinitialization of the component if an error has occurred.
+* `onError` &ndash; A function called when the context has crashed during the initialization or during the runtime. It receives two arguments: the error instance and the error details.
+    Error details is an object that contains two properties:
+    * `{String} phase`: `'initialization'|'runtime'` &ndash; Informs when the error has occurred (during the editor or context initialization, or after the initialization).
+     * `{Boolean} willContextRestart` &ndash; When `true`, it means that the context component will restart itself.
+
+<info-box>
+	A build that exposes both context and classic editor can be found in the [CKEditor 5 collaboration sample](https://github.com/ckeditor/ckeditor5-collaboration-samples/blob/master/comments-outside-of-editor).
+</info-box>
+
 ### Customizing the builds
 
 {@link builds/guides/overview CKEditor 5 builds} come ready to use, with a set of built-in plugins and a predefined configuration. While you can change the configuration easily by using the `config` property of the `<CKEditor>` component which allows you to change the {@link builds/guides/integration/configuration#toolbar-setup toolbar} or {@link builds/guides/integration/configuration#removing-features remove some plugins}, in order to add plugins you need to rebuild the editor.
@@ -94,6 +168,10 @@ There are two main ways to do that.
 
 	Read more about this option in [Integrating CKEditor 5 from source](#integrating-ckeditor-5-built-from-source).
 
+<info-box>
+	If you want to use the [CKEditor 5 online builder](https://ckeditor.com/ckeditor-5/online-builder/), make sure that the watchdog feature is not selected. The React integration comes with the watchdog feature already integrated into the core.
+</info-box>
+
 ### Building for production
 
 If you still work with `create-react-app@1` or use a custom configuration for you application that still uses `webpack@3`, you will need to adjust the `UglifyJsPlugin` option to make CKEditor 5 compatible with this setup. CKEditor 5 builds use ES6 so the default JavaScript minifier of `webpack@3` and `create-react-app@1` is not able to digest them.
@@ -114,12 +192,14 @@ If you use the {@link framework/guides/document-editor Document editor}, you nee
 import DecoupledEditor from '@ckeditor/ckeditor5-build-decoupled-document';
 
 class App extends Component {
+	editor = null;
+
 	render() {
 		return (
 			<div className="App">
 				<h2>CKEditor 5 using a custom build - DecoupledEditor</h2>
 				<CKEditor
-					onInit={ editor => {
+					onReady={ editor => {
 						console.log( 'Editor is ready to use!', editor );
 
 						// Insert the toolbar before the editable area.
@@ -127,6 +207,13 @@ class App extends Component {
 							editor.ui.view.toolbar.element,
 							editor.ui.getEditableElement()
 						);
+
+						this.editor = editor;
+					} }
+					onError={ ( { willEditorRestart } ) => {
+						if ( willEditorRestart ) {
+							this.editor.ui.view.toolbar.element.remove();
+						}
 					} }
 					onChange={ ( event, editor ) => console.log( { event, editor } ) }
 					editor={ DecoupledEditor }
@@ -326,7 +413,7 @@ class App extends Component {
 					editor={ ClassicEditor }
 					config={ editorConfiguration }
 					data="<p>Hello from CKEditor 5!</p>"
-					onInit={ editor => {
+					onReady={ editor => {
 						// You can store the "editor" and use when it is needed.
 						console.log( 'Editor is ready to use!', editor );
 					} }
@@ -567,7 +654,7 @@ class App extends Component {
 			<div className="App">
 				<h2>Using CKEditor 5 Framework in React</h2>
 				<CKEditor
-					onInit={ editor => console.log( 'Editor is ready to use!', editor ) }
+					onReady={ editor => console.log( 'Editor is ready to use!', editor ) }
 					onChange={ ( event, editor ) => console.log( { event, editor } ) }
 					config={ {
 						plugins: [ Essentials, Paragraph, Bold, Italic, Heading ],
@@ -659,7 +746,7 @@ module.exports = {
 
 After building the application, CKEditor 5 will run with the UI translated to the specified language.
 
-For more information, please refer to the {@link features/ui-language "Setting UI language"} guide.
+For more information, please refer to the {@link features/ui-language Setting UI language} guide.
 
 ## Contributing and reporting issues
 

+ 1 - 1
docs/builds/guides/integration/advanced-setup.md

@@ -602,7 +602,7 @@ index c57e371..04fc9fe 100644
 Once you changed the `src/ckeditor.js` and `webpack.config.js` files it is time to rebuild the build:
 
 ```bash
-yarn run build
+npm run build
 ```
 
 Finally, when webpack finishes compiling your super build, you can change the `samples/index.html` file to test both editors:

+ 77 - 72
docs/builds/guides/integration/content-styles.md

@@ -48,8 +48,8 @@ Below there is a full list of content styles used by the editor features. You ca
 
 ```css
 /*
- * CKEditor 5 (v23.0.0) content styles.
- * Generated on Wed, 30 Sep 2020 10:17:57 GMT.
+ * CKEditor 5 (v23.1.0) content styles.
+ * Generated on Thu, 29 Oct 2020 12:17:48 GMT.
  * For more information, check out https://ckeditor.com/docs/ckeditor5/latest/builds/guides/integration/content-styles.html
  */
 
@@ -66,32 +66,6 @@ Below there is a full list of content styles used by the editor features. You ca
 	--ck-todo-list-checkmark-size: 16px;
 }
 
-/* ckeditor5-highlight/theme/highlight.css */
-.ck-content .marker-yellow {
-	background-color: var(--ck-highlight-marker-yellow);
-}
-/* ckeditor5-highlight/theme/highlight.css */
-.ck-content .marker-green {
-	background-color: var(--ck-highlight-marker-green);
-}
-/* ckeditor5-highlight/theme/highlight.css */
-.ck-content .marker-pink {
-	background-color: var(--ck-highlight-marker-pink);
-}
-/* ckeditor5-highlight/theme/highlight.css */
-.ck-content .marker-blue {
-	background-color: var(--ck-highlight-marker-blue);
-}
-/* ckeditor5-highlight/theme/highlight.css */
-.ck-content .pen-red {
-	color: var(--ck-highlight-pen-red);
-	background-color: transparent;
-}
-/* ckeditor5-highlight/theme/highlight.css */
-.ck-content .pen-green {
-	color: var(--ck-highlight-pen-green);
-	background-color: transparent;
-}
 /* ckeditor5-image/theme/imagestyle.css */
 .ck-content .image-style-side {
 	float: right;
@@ -113,28 +87,6 @@ Below there is a full list of content styles used by the editor features. You ca
 	float: right;
 	margin-left: var(--ck-image-style-spacing);
 }
-/* ckeditor5-block-quote/theme/blockquote.css */
-.ck-content blockquote {
-	overflow: hidden;
-	padding-right: 1.5em;
-	padding-left: 1.5em;
-	margin-left: 0;
-	margin-right: 0;
-	font-style: italic;
-	border-left: solid 5px hsl(0, 0%, 80%);
-}
-/* ckeditor5-block-quote/theme/blockquote.css */
-.ck-content[dir="rtl"] blockquote {
-	border-left: 0;
-	border-right: solid 5px hsl(0, 0%, 80%);
-}
-/* ckeditor5-horizontal-line/theme/horizontalline.css */
-.ck-content hr {
-	margin: 15px 0;
-	height: 4px;
-	background: hsl(0, 0%, 87%);
-	border: 0;
-}
 /* ckeditor5-image/theme/image.css */
 .ck-content .image {
 	display: table;
@@ -149,6 +101,17 @@ Below there is a full list of content styles used by the editor features. You ca
 	max-width: 100%;
 	min-width: 50px;
 }
+/* ckeditor5-image/theme/imagecaption.css */
+.ck-content .image > figcaption {
+	display: table-caption;
+	caption-side: bottom;
+	word-break: break-word;
+	color: hsl(0, 0%, 20%);
+	background-color: hsl(0, 0%, 97%);
+	padding: .6em;
+	font-size: .75em;
+	outline-offset: -1px;
+}
 /* ckeditor5-image/theme/imageresize.css */
 .ck-content .image.image_resized {
 	max-width: 100%;
@@ -163,22 +126,31 @@ Below there is a full list of content styles used by the editor features. You ca
 .ck-content .image.image_resized > figcaption {
 	display: block;
 }
-/* ckeditor5-image/theme/imagecaption.css */
-.ck-content .image > figcaption {
-	display: table-caption;
-	caption-side: bottom;
-	word-break: break-word;
-	color: hsl(0, 0%, 20%);
-	background-color: hsl(0, 0%, 97%);
-	padding: .6em;
-	font-size: .75em;
-	outline-offset: -1px;
+/* ckeditor5-highlight/theme/highlight.css */
+.ck-content .marker-yellow {
+	background-color: var(--ck-highlight-marker-yellow);
 }
-/* ckeditor5-basic-styles/theme/code.css */
-.ck-content code {
-	background-color: hsla(0, 0%, 78%, 0.3);
-	padding: .15em;
-	border-radius: 2px;
+/* ckeditor5-highlight/theme/highlight.css */
+.ck-content .marker-green {
+	background-color: var(--ck-highlight-marker-green);
+}
+/* ckeditor5-highlight/theme/highlight.css */
+.ck-content .marker-pink {
+	background-color: var(--ck-highlight-marker-pink);
+}
+/* ckeditor5-highlight/theme/highlight.css */
+.ck-content .marker-blue {
+	background-color: var(--ck-highlight-marker-blue);
+}
+/* ckeditor5-highlight/theme/highlight.css */
+.ck-content .pen-red {
+	color: var(--ck-highlight-pen-red);
+	background-color: transparent;
+}
+/* ckeditor5-highlight/theme/highlight.css */
+.ck-content .pen-green {
+	color: var(--ck-highlight-pen-green);
+	background-color: transparent;
 }
 /* ckeditor5-font/theme/fontsize.css */
 .ck-content .text-tiny {
@@ -196,6 +168,27 @@ Below there is a full list of content styles used by the editor features. You ca
 .ck-content .text-huge {
 	font-size: 1.8em;
 }
+/* ckeditor5-block-quote/theme/blockquote.css */
+.ck-content blockquote {
+	overflow: hidden;
+	padding-right: 1.5em;
+	padding-left: 1.5em;
+	margin-left: 0;
+	margin-right: 0;
+	font-style: italic;
+	border-left: solid 5px hsl(0, 0%, 80%);
+}
+/* ckeditor5-block-quote/theme/blockquote.css */
+.ck-content[dir="rtl"] blockquote {
+	border-left: 0;
+	border-right: solid 5px hsl(0, 0%, 80%);
+}
+/* ckeditor5-basic-styles/theme/code.css */
+.ck-content code {
+	background-color: hsla(0, 0%, 78%, 0.3);
+	padding: .15em;
+	border-radius: 2px;
+}
 /* ckeditor5-table/theme/table.css */
 .ck-content .table {
 	margin: 1em auto;
@@ -265,13 +258,6 @@ Below there is a full list of content styles used by the editor features. You ca
 	-ms-user-select: none;
 	user-select: none;
 }
-/* ckeditor5-media-embed/theme/mediaembed.css */
-.ck-content .media {
-	clear: both;
-	margin: 1em 0;
-	display: block;
-	min-width: 15em;
-}
 /* ckeditor5-list/theme/todolist.css */
 .ck-content .todo-list {
 	list-style: none;
@@ -339,6 +325,25 @@ Below there is a full list of content styles used by the editor features. You ca
 .ck-content .todo-list .todo-list__label .todo-list__label__description {
 	vertical-align: middle;
 }
+/* ckeditor5-media-embed/theme/mediaembed.css */
+.ck-content .media {
+	clear: both;
+	margin: 1em 0;
+	display: block;
+	min-width: 15em;
+}
+/* ckeditor5-html-embed/theme/htmlembed.css */
+.ck-content .raw-html-embed {
+	margin: 1em auto;
+	min-width: 15em;
+}
+/* ckeditor5-horizontal-line/theme/horizontalline.css */
+.ck-content hr {
+	margin: 15px 0;
+	height: 4px;
+	background: hsl(0, 0%, 87%);
+	border: 0;
+}
 /* ckeditor5-code-block/theme/codeblock.css */
 .ck-content pre {
 	padding: 1em;

+ 2 - 0
docs/features/image-upload.md

@@ -22,6 +22,8 @@ The software that makes the image upload possible is called an **upload adapter*
 * [**Official upload adapters**](#official-upload-adapters) &ndash; There are several features providing upload adapters developed and maintained by the CKEditor team. Pick the best one for your integration and let it handle the image upload in your project.
 * [**Custom upload adapters**](#implementing-your-own-upload-adapter) &ndash; Create your own upload adapter from scratch using the open API architecture of CKEditor 5.
 
+Read our comprehensive blog post about [Managing images with CKEditor 5](https://ckeditor.com/blog/managing-images-with-ckeditor-5/) to find out more details about image upload and management and to compare the available options.
+
 <info-box>
 	If you want to get a better look under the hood and learn more about the upload process, you can check out the {@link framework/guides/deep-dive/upload-adapter "Custom image upload adapter" deep dive guide} covering that topic.
 </info-box>

+ 2 - 2
docs/features/index.md

@@ -20,8 +20,8 @@ The number of features available for CKEditor 5 is constantly growing. Plenty of
 Each rich-text editor feature is presented on a separate page, with one or more working demos showcasing a feature along with some customization ideas that you can use in your implementation.
 
 <info-box>
-	**In most demos the number of features enabled is limited** to make the currently highlighted piece of functionality stand out more. However, in your CKEditor 5 WYSIWYG editor implementation you are free to choose and combine any features you like from those available.
-</info-box> 
+	**In most demos the number of features enabled is limited** to make the currently highlighted piece of functionality stand out more. However, in your CKEditor 5 WYSIWYG editor implementation you are free to choose and combine any features you like from those available. This can be easily and conveniently done in the [CKEditor 5 online builder](https://ckeditor.com/ckeditor-5/online-builder/).
+</info-box>
 
 ## Looking for more?
 

+ 2 - 2
docs/framework/guides/architecture/ui-library.md

@@ -443,13 +443,13 @@ dropdownView.bind( 'isEnabled' ).toMany( buttons, 'isEnabled',
 
 ### Best practices
 
-It is advised that for the best user experience the editing view gets {@link module:engine/view/view~View#focus focused} upon any user action (e.g. executing a command) to make sure the editor retains focus:
+It is advised that for the best user experience the editor gets {@link module:core/editor/editor~Editor#focus focused} upon any user action (e.g. executing a command):
 
 ```js
 // Execute some action on dropdown#execute event.
 dropdownView.buttonView.on( 'execute', () => {
 	editor.execute( 'command', { value: ... } );
-	editor.editing.view.focus();
+	editor.focus();
 } );
 ```
 

+ 9 - 5
docs/framework/guides/contributing/development-environment.md

@@ -95,16 +95,20 @@ This task accepts the following arguments:
 
 * `--skip-api` &ndash; Skips building the API documentation (which takes the majority of the total time).
 * `--skip-snippets` &ndash; Skips building live snippets.
-* `--snippets=snippet-name` &ndash; Snippets to build (accepts glob patterns). If a snippet that you want to build uses another snippet as a source that provides an editor instance, you need to specify both snippets. See examples:
-    - `--snippets=features/*` - all snippets that starts with `features/` in their names will be built,
-    - `--snippets=classic-editor,build-classic-source` - all snippets that contains the specified strings in their names will be built.
+* `--snippets=snippet-name` &ndash; Snippets to build. Accepts glob patterns that are matched against snippet names used in `{@snippet ...}` tags. Examples:
+
+	```
+	--snippets=image         // matches roughly {@snippet *image*}
+	--snippets="features/*"  // matches roughly {@snippet *features/*}
+	--snippets=classic-editor,build-classic-source
+	```
+
+	Note: If a snippet that you want to build uses another snippet as a source that provides an editor instance, you need to specify both snippets (e.g. `--files=features/default-headings,build-classic-source`).
 * `--skip-validation` &ndash; Skips the final link validation.
 * `--watch` &ndash; Runs the documentation generator in a watch mode. It covers guides but it does not cover API docs.
 * `--production` &ndash; Minifies the assets and performs other actions which are unnecessary during CKEditor 5 development.
 * `--verbose` &ndash; Prints out more information.
 
-Note: These arguments must be passed after additional `--`:
-
 ```
 yarn run docs --skip-api
 ```

+ 1 - 1
docs/framework/guides/deep-dive/localization.md

@@ -103,7 +103,7 @@ editor.ui.componentFactory.add( 'smilingFaceEmoji', locale => {
 
 	buttonView.on( 'execute', () => {
 		editor.execute( 'insertSmilingFaceEmoji' );
-		editor.editing.view.focus();
+		editor.focus();
 	} );
 } );
 // ...

+ 4 - 0
docs/framework/guides/tutorials/implementing-a-block-widget.md

@@ -21,6 +21,10 @@ While it is not strictly necessary to read the {@link framework/guides/quick-sta
 
 The tutorial will also reference various parts of the {@link framework/guides/architecture/intro CKEditor 5 architecture} section as you go. While reading them is not necessary to finish this tutorial, it is recommended to read these guides at some point to get a better understanding of the mechanisms used in this tutorial.
 
+<info-box>
+	If you want to use own event handler for events triggered by your widget then you must wrap it by a container that has a `data-cke-ignore-events` attribute to exclude it from editor's default handlers. Refer to {@link framework/guides/deep-dive/widget-internals#exclude-dom-events-from-default-handlers Exclude DOM events from default handlers} for more details.
+</info-box>
+
 ## Let's start
 
 This guide assumes that you are familiar with npm and your project uses npm already. If not, see the [npm documentation](https://docs.npmjs.com/getting-started/what-is-npm) or call `npm init` in an empty directory and keep your fingers crossed.

+ 2 - 2
docs/framework/guides/tutorials/implementing-an-inline-widget.md

@@ -591,7 +591,7 @@ export default class PlaceholderUI extends Plugin {
 			// Execute the command when the dropdown item is clicked (executed).
 			this.listenTo( dropdownView, 'execute', evt => {
 				editor.execute( 'placeholder', { value: evt.source.commandParam } );
-				editor.editing.view.focus();
+				editor.focus();
 			} );
 
 			return dropdownView;
@@ -819,7 +819,7 @@ class PlaceholderUI extends Plugin {
 			// Execute the command when the dropdown item is clicked (executed).
 			this.listenTo( dropdownView, 'execute', evt => {
 				editor.execute( 'placeholder', { value: evt.source.commandParam } );
-				editor.editing.view.focus();
+				editor.focus();
 			} );
 
 			return dropdownView;

+ 6 - 2
docs/framework/guides/tutorials/using-react-in-a-widget.md

@@ -25,6 +25,10 @@ There are a couple of things you should know before you start:
 * Also, while it is not strictly necessary to read the {@link framework/guides/quick-start Quick start} guide before going through this tutorial, it may help you to get more comfortable with CKEditor 5 Framework before you dive into this tutorial.
 * Various parts of the {@link framework/guides/architecture/intro CKEditor 5 architecture} section will be referenced as you go. While reading them is not necessary to finish this tutorial, it is recommended to read those guides at some point to get a better understanding of the mechanisms used in this tutorial.
 
+<info-box>
+	If you want to use own event handler for events triggered by your React component then you must wrap it by a container that has a `data-cke-ignore-events` attribute to exclude it from editor's default handlers. Refer to {@link framework/guides/deep-dive/widget-internals#exclude-dom-events-from-default-handlers Exclude DOM events from default handlers} for more details.
+</info-box>
+
 ## Let's start
 
 This guide assumes that you are familiar with [yarn](https://yarnpkg.com) and your project uses yarn already. If not, see the [yarn documentation](https://yarnpkg.com/en/docs/getting-started). If you are using [npm](https://www.npmjs.com/get-npm) you do not have to worry — you can perform the same installation tasks just as easily using [corresponding npm commands](https://docs.npmjs.com/getting-packages-from-the-registry).
@@ -632,7 +636,7 @@ class App extends React.Component {
 				products={this.props.products}
 				onClick={( id ) => {
 					this.editor.execute( 'insertProduct', id );
-					this.editor.editing.view.focus();
+					this.editor.focus();
 				}}
 			/>
 		];
@@ -1043,7 +1047,7 @@ class App extends React.Component {
 				products={this.props.products}
 				onClick={( id ) => {
 					this.editor.execute( 'insertProduct', id );
-					this.editor.editing.view.focus();
+					this.editor.focus();
 				}}
 			/>
 		];

+ 1 - 1
docs/index.md

@@ -11,7 +11,7 @@ meta-description: Learn how to install, integrate, configure and develop CKEdito
 <dl><dt>{@link builds/guides/overview CKEditor 5 Builds documentation}</dt><dd>Learn how to install, integrate and configure CKEditor 5 Builds. More complex aspects, like creating custom builds, are explained here, too.</dd>
 <dt>{@link framework/guides/overview CKEditor 5 Framework documentation}</dt><dd>Learn how to work with CKEditor 5 Framework, customize it, create your own plugins and custom editors, change the UI or even bring your own UI to the editor.</dd>
 <dt>{@link examples/index CKEditor 5 Examples}</dt><dd>Try out all CKEditor 5 Builds. See some of the possible customizations of CKEditor.</dd>
-<dt>{@link features/index CKEditor 5 Features}</dt><dd>Learn about selected features included in CKEditor 5 Builds.</dd>
+<dt>{@link features/index CKEditor 5 Features}</dt><dd>Learn about the features available for CKEditor 5 &mdash; both the ones included in Builds and a plethora of others.</dd>
 <dt>{@link api/index CKEditor 5 API Reference}</dt><dd>A complete API documentation.</dd></dl>
 
 ## Contribute

+ 56 - 54
package.json

@@ -1,6 +1,6 @@
 {
   "name": "ckeditor5",
-  "version": "23.0.0",
+  "version": "23.1.0",
   "description": "The development environment of CKEditor 5 – the best browser-based rich text editor.",
   "private": true,
   "keywords": [
@@ -21,59 +21,60 @@
     "framework"
   ],
   "dependencies": {
-    "@ckeditor/ckeditor-cloud-services-core": "^23.0.0",
-    "@ckeditor/ckeditor5-adapter-ckfinder": "^23.0.0",
-    "@ckeditor/ckeditor5-alignment": "^23.0.0",
-    "@ckeditor/ckeditor5-autoformat": "^23.0.0",
-    "@ckeditor/ckeditor5-autosave": "^23.0.0",
-    "@ckeditor/ckeditor5-basic-styles": "^23.0.0",
-    "@ckeditor/ckeditor5-block-quote": "^23.0.0",
-    "@ckeditor/ckeditor5-build-balloon": "^23.0.0",
-    "@ckeditor/ckeditor5-build-balloon-block": "^23.0.0",
-    "@ckeditor/ckeditor5-build-classic": "^23.0.0",
-    "@ckeditor/ckeditor5-build-decoupled-document": "^23.0.0",
-    "@ckeditor/ckeditor5-build-inline": "^23.0.0",
-    "@ckeditor/ckeditor5-ckfinder": "^23.0.0",
-    "@ckeditor/ckeditor5-clipboard": "^23.0.0",
-    "@ckeditor/ckeditor5-cloud-services": "^23.0.0",
-    "@ckeditor/ckeditor5-code-block": "^23.0.0",
-    "@ckeditor/ckeditor5-core": "^23.0.0",
-    "@ckeditor/ckeditor5-easy-image": "^23.0.0",
-    "@ckeditor/ckeditor5-editor-balloon": "^23.0.0",
-    "@ckeditor/ckeditor5-editor-classic": "^23.0.0",
-    "@ckeditor/ckeditor5-editor-decoupled": "^23.0.0",
-    "@ckeditor/ckeditor5-editor-inline": "^23.0.0",
-    "@ckeditor/ckeditor5-engine": "^23.0.0",
-    "@ckeditor/ckeditor5-enter": "^23.0.0",
-    "@ckeditor/ckeditor5-essentials": "^23.0.0",
-    "@ckeditor/ckeditor5-font": "^23.0.0",
-    "@ckeditor/ckeditor5-heading": "^23.0.0",
-    "@ckeditor/ckeditor5-highlight": "^23.0.0",
-    "@ckeditor/ckeditor5-horizontal-line": "^23.0.0",
-    "@ckeditor/ckeditor5-image": "^23.0.0",
-    "@ckeditor/ckeditor5-indent": "^23.0.0",
-    "@ckeditor/ckeditor5-link": "^23.0.0",
-    "@ckeditor/ckeditor5-list": "^23.0.0",
-    "@ckeditor/ckeditor5-markdown-gfm": "^23.0.0",
-    "@ckeditor/ckeditor5-media-embed": "^23.0.0",
-    "@ckeditor/ckeditor5-mention": "^23.0.0",
-    "@ckeditor/ckeditor5-page-break": "^23.0.0",
-    "@ckeditor/ckeditor5-paragraph": "^23.0.0",
-    "@ckeditor/ckeditor5-paste-from-office": "^23.0.0",
-    "@ckeditor/ckeditor5-remove-format": "^23.0.0",
-    "@ckeditor/ckeditor5-restricted-editing": "^23.0.0",
-    "@ckeditor/ckeditor5-select-all": "^23.0.0",
-    "@ckeditor/ckeditor5-special-characters": "^23.0.0",
-    "@ckeditor/ckeditor5-table": "^23.0.0",
-    "@ckeditor/ckeditor5-theme-lark": "^23.0.0",
-    "@ckeditor/ckeditor5-typing": "^23.0.0",
-    "@ckeditor/ckeditor5-ui": "^23.0.0",
-    "@ckeditor/ckeditor5-undo": "^23.0.0",
-    "@ckeditor/ckeditor5-upload": "^23.0.0",
-    "@ckeditor/ckeditor5-utils": "^23.0.0",
-    "@ckeditor/ckeditor5-watchdog": "^23.0.0",
-    "@ckeditor/ckeditor5-widget": "^23.0.0",
-    "@ckeditor/ckeditor5-word-count": "^23.0.0"
+    "@ckeditor/ckeditor-cloud-services-core": "^23.1.0",
+    "@ckeditor/ckeditor5-adapter-ckfinder": "^23.1.0",
+    "@ckeditor/ckeditor5-alignment": "^23.1.0",
+    "@ckeditor/ckeditor5-autoformat": "^23.1.0",
+    "@ckeditor/ckeditor5-autosave": "^23.1.0",
+    "@ckeditor/ckeditor5-basic-styles": "^23.1.0",
+    "@ckeditor/ckeditor5-block-quote": "^23.1.0",
+    "@ckeditor/ckeditor5-build-balloon": "^23.1.0",
+    "@ckeditor/ckeditor5-build-balloon-block": "^23.1.0",
+    "@ckeditor/ckeditor5-build-classic": "^23.1.0",
+    "@ckeditor/ckeditor5-build-decoupled-document": "^23.1.0",
+    "@ckeditor/ckeditor5-build-inline": "^23.1.0",
+    "@ckeditor/ckeditor5-ckfinder": "^23.1.0",
+    "@ckeditor/ckeditor5-clipboard": "^23.1.0",
+    "@ckeditor/ckeditor5-cloud-services": "^23.1.0",
+    "@ckeditor/ckeditor5-code-block": "^23.1.0",
+    "@ckeditor/ckeditor5-core": "^23.1.0",
+    "@ckeditor/ckeditor5-easy-image": "^23.1.0",
+    "@ckeditor/ckeditor5-editor-balloon": "^23.1.0",
+    "@ckeditor/ckeditor5-editor-classic": "^23.1.0",
+    "@ckeditor/ckeditor5-editor-decoupled": "^23.1.0",
+    "@ckeditor/ckeditor5-editor-inline": "^23.1.0",
+    "@ckeditor/ckeditor5-engine": "^23.1.0",
+    "@ckeditor/ckeditor5-enter": "^23.1.0",
+    "@ckeditor/ckeditor5-essentials": "^23.1.0",
+    "@ckeditor/ckeditor5-font": "^23.1.0",
+    "@ckeditor/ckeditor5-heading": "^23.1.0",
+    "@ckeditor/ckeditor5-highlight": "^23.1.0",
+    "@ckeditor/ckeditor5-horizontal-line": "^23.1.0",
+    "@ckeditor/ckeditor5-html-embed": "^23.1.0",
+    "@ckeditor/ckeditor5-image": "^23.1.0",
+    "@ckeditor/ckeditor5-indent": "^23.1.0",
+    "@ckeditor/ckeditor5-link": "^23.1.0",
+    "@ckeditor/ckeditor5-list": "^23.1.0",
+    "@ckeditor/ckeditor5-markdown-gfm": "^23.1.0",
+    "@ckeditor/ckeditor5-media-embed": "^23.1.0",
+    "@ckeditor/ckeditor5-mention": "^23.1.0",
+    "@ckeditor/ckeditor5-page-break": "^23.1.0",
+    "@ckeditor/ckeditor5-paragraph": "^23.1.0",
+    "@ckeditor/ckeditor5-paste-from-office": "^23.1.0",
+    "@ckeditor/ckeditor5-remove-format": "^23.1.0",
+    "@ckeditor/ckeditor5-restricted-editing": "^23.1.0",
+    "@ckeditor/ckeditor5-select-all": "^23.1.0",
+    "@ckeditor/ckeditor5-special-characters": "^23.1.0",
+    "@ckeditor/ckeditor5-table": "^23.1.0",
+    "@ckeditor/ckeditor5-theme-lark": "^23.1.0",
+    "@ckeditor/ckeditor5-typing": "^23.1.0",
+    "@ckeditor/ckeditor5-ui": "^23.1.0",
+    "@ckeditor/ckeditor5-undo": "^23.1.0",
+    "@ckeditor/ckeditor5-upload": "^23.1.0",
+    "@ckeditor/ckeditor5-utils": "^23.1.0",
+    "@ckeditor/ckeditor5-watchdog": "^23.1.0",
+    "@ckeditor/ckeditor5-widget": "^23.1.0",
+    "@ckeditor/ckeditor5-word-count": "^23.1.0"
   },
   "devDependencies": {
     "@ckeditor/ckeditor5-comments": "^23.0.0",
@@ -92,6 +93,7 @@
     "@webspellchecker/wproofreader-ckeditor5": "^1.0.5",
     "@wiris/mathtype-ckeditor5": "^7.24.0",
     "babel-standalone": "^6.26.0",
+    "cli-table": "^0.3.1",
     "coveralls": "^3.1.0",
     "css-loader": "^3.5.3",
     "eslint": "^7.1.0",

+ 2 - 2
packages/ckeditor-cloud-services-core/package.json

@@ -1,13 +1,13 @@
 {
   "name": "@ckeditor/ckeditor-cloud-services-core",
-  "version": "23.0.0",
+  "version": "23.1.0",
   "description": "CKEditor Cloud Services Core API.",
   "keywords": [
     "ckeditor5",
     "ckeditor5-lib"
   ],
   "dependencies": {
-    "@ckeditor/ckeditor5-utils": "^23.0.0"
+    "@ckeditor/ckeditor5-utils": "^23.1.0"
   },
   "engines": {
     "node": ">=12.0.0",

+ 21 - 0
packages/ckeditor5-adapter-ckfinder/lang/translations/hi.po

@@ -0,0 +1,21 @@
+# Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved.
+#
+#                                     !!! IMPORTANT !!!
+#
+#         Before you edit this file, please keep in mind that contributing to the project
+#                translations is possible ONLY via the Transifex online service.
+#
+#         To submit your translations, visit https://www.transifex.com/ckeditor/ckeditor5.
+#
+#                   To learn more, check out the official contributor's guide:
+#     https://ckeditor.com/docs/ckeditor5/latest/framework/guides/contributing/contributing.html
+#
+msgid ""
+msgstr ""
+"Language-Team: Hindi (https://www.transifex.com/ckeditor/teams/11143/hi/)\n"
+"Language: hi\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+msgctxt "A generic error message displayed on upload failure. The file name is concatenated to this text."
+msgid "Cannot upload file:"
+msgstr "Cannot upload file:"

+ 1 - 1
packages/ckeditor5-adapter-ckfinder/lang/translations/ug.po

@@ -18,4 +18,4 @@ msgstr ""
 
 msgctxt "A generic error message displayed on upload failure. The file name is concatenated to this text."
 msgid "Cannot upload file:"
-msgstr "چىقىرىشقا بولمايدىغان ھۆججەت :"
+msgstr "يۈكلەشكە بولمايدىغان ھۆججەت:"

+ 13 - 13
packages/ckeditor5-adapter-ckfinder/package.json

@@ -1,6 +1,6 @@
 {
   "name": "@ckeditor/ckeditor5-adapter-ckfinder",
-  "version": "23.0.0",
+  "version": "23.1.0",
   "description": "CKFinder adapter for CKEditor 5.",
   "keywords": [
     "ckeditor",
@@ -10,20 +10,20 @@
     "ckeditor5-plugin"
   ],
   "dependencies": {
-    "@ckeditor/ckeditor5-core": "^23.0.0",
-    "@ckeditor/ckeditor5-upload": "^23.0.0"
+    "@ckeditor/ckeditor5-core": "^23.1.0",
+    "@ckeditor/ckeditor5-upload": "^23.1.0"
   },
   "devDependencies": {
-    "@ckeditor/ckeditor5-basic-styles": "^23.0.0",
-    "@ckeditor/ckeditor5-clipboard": "^23.0.0",
-    "@ckeditor/ckeditor5-editor-classic": "^23.0.0",
-    "@ckeditor/ckeditor5-enter": "^23.0.0",
-    "@ckeditor/ckeditor5-heading": "^23.0.0",
-    "@ckeditor/ckeditor5-image": "^23.0.0",
-    "@ckeditor/ckeditor5-list": "^23.0.0",
-    "@ckeditor/ckeditor5-paragraph": "^23.0.0",
-    "@ckeditor/ckeditor5-typing": "^23.0.0",
-    "@ckeditor/ckeditor5-undo": "^23.0.0"
+    "@ckeditor/ckeditor5-basic-styles": "^23.1.0",
+    "@ckeditor/ckeditor5-clipboard": "^23.1.0",
+    "@ckeditor/ckeditor5-editor-classic": "^23.1.0",
+    "@ckeditor/ckeditor5-enter": "^23.1.0",
+    "@ckeditor/ckeditor5-heading": "^23.1.0",
+    "@ckeditor/ckeditor5-image": "^23.1.0",
+    "@ckeditor/ckeditor5-list": "^23.1.0",
+    "@ckeditor/ckeditor5-paragraph": "^23.1.0",
+    "@ckeditor/ckeditor5-typing": "^23.1.0",
+    "@ckeditor/ckeditor5-undo": "^23.1.0"
   },
   "engines": {
     "node": ">=12.0.0",

+ 9 - 0
packages/ckeditor5-alignment/docs/features/text-alignment.md

@@ -11,6 +11,15 @@ The {@link module:alignment/alignment~Alignment} feature enables support for tex
 
 {@snippet features/text-alignment}
 
+## Related features
+
+There are more CKEditor 5 features that can help you organize your content:
+* {@link features/title Document title} &ndash; Clearly divide your content into a title and body.
+* {@link features/headings Headings} &ndash; Split your content into logical sections.
+* {@link features/indent Block indentation} &ndash; Organize your content into visually separated blocks, indent crucial paragraphs, etc.
+* {@link features/block-quote Block quote} &ndash; Include block quotations or pull quotes in the rich-text content.
+* {@link features/remove-format Remove format} &ndash; Easily clean basic text formatting.
+
 ## Configuring alignment options
 
 It is possible to configure which alignment options are available in the editor by setting the {@link module:alignment/alignment~AlignmentConfig#options `alignment.options`} configuration option. You can choose from `'left'`, `'right'`, `'center'` and `'justify'`.

+ 1 - 1
packages/ckeditor5-alignment/lang/translations/fa.po

@@ -38,4 +38,4 @@ msgstr "تراز متن"
 
 msgctxt "Label used by assistive technologies describing the text alignment feature toolbar."
 msgid "Text alignment toolbar"
-msgstr "نوارابزار تراز متن"
+msgstr "نوار ابزار ترازبندی متن"

+ 41 - 0
packages/ckeditor5-alignment/lang/translations/hi.po

@@ -0,0 +1,41 @@
+# Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved.
+#
+#                                     !!! IMPORTANT !!!
+#
+#         Before you edit this file, please keep in mind that contributing to the project
+#                translations is possible ONLY via the Transifex online service.
+#
+#         To submit your translations, visit https://www.transifex.com/ckeditor/ckeditor5.
+#
+#                   To learn more, check out the official contributor's guide:
+#     https://ckeditor.com/docs/ckeditor5/latest/framework/guides/contributing/contributing.html
+#
+msgid ""
+msgstr ""
+"Language-Team: Hindi (https://www.transifex.com/ckeditor/teams/11143/hi/)\n"
+"Language: hi\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+msgctxt "Toolbar button tooltip for aligning the text to the left."
+msgid "Align left"
+msgstr "Align left"
+
+msgctxt "Toolbar button tooltip for aligning the text to the right."
+msgid "Align right"
+msgstr "Align right"
+
+msgctxt "Toolbar button tooltip for aligning the text to center."
+msgid "Align center"
+msgstr "Align center"
+
+msgctxt "Toolbar button tooltip for making the text justified."
+msgid "Justify"
+msgstr "Justify"
+
+msgctxt "Dropdown button tooltip for the text alignment feature."
+msgid "Text alignment"
+msgstr "Text alignment"
+
+msgctxt "Label used by assistive technologies describing the text alignment feature toolbar."
+msgid "Text alignment toolbar"
+msgstr "Text alignment toolbar"

+ 13 - 13
packages/ckeditor5-alignment/package.json

@@ -1,6 +1,6 @@
 {
   "name": "@ckeditor/ckeditor5-alignment",
-  "version": "23.0.0",
+  "version": "23.1.0",
   "description": "Text alignment feature for CKEditor 5.",
   "keywords": [
     "ckeditor",
@@ -10,20 +10,20 @@
     "ckeditor5-plugin"
   ],
   "dependencies": {
-    "@ckeditor/ckeditor5-core": "^23.0.0",
-    "@ckeditor/ckeditor5-ui": "^23.0.0"
+    "@ckeditor/ckeditor5-core": "^23.1.0",
+    "@ckeditor/ckeditor5-ui": "^23.1.0"
   },
   "devDependencies": {
-    "@ckeditor/ckeditor5-block-quote": "^23.0.0",
-    "@ckeditor/ckeditor5-editor-classic": "^23.0.0",
-    "@ckeditor/ckeditor5-engine": "^23.0.0",
-    "@ckeditor/ckeditor5-enter": "^23.0.0",
-    "@ckeditor/ckeditor5-heading": "^23.0.0",
-    "@ckeditor/ckeditor5-image": "^23.0.0",
-    "@ckeditor/ckeditor5-list": "^23.0.0",
-    "@ckeditor/ckeditor5-paragraph": "^23.0.0",
-    "@ckeditor/ckeditor5-typing": "^23.0.0",
-    "@ckeditor/ckeditor5-utils": "^23.0.0"
+    "@ckeditor/ckeditor5-block-quote": "^23.1.0",
+    "@ckeditor/ckeditor5-editor-classic": "^23.1.0",
+    "@ckeditor/ckeditor5-engine": "^23.1.0",
+    "@ckeditor/ckeditor5-enter": "^23.1.0",
+    "@ckeditor/ckeditor5-heading": "^23.1.0",
+    "@ckeditor/ckeditor5-image": "^23.1.0",
+    "@ckeditor/ckeditor5-list": "^23.1.0",
+    "@ckeditor/ckeditor5-paragraph": "^23.1.0",
+    "@ckeditor/ckeditor5-typing": "^23.1.0",
+    "@ckeditor/ckeditor5-utils": "^23.1.0"
   },
   "engines": {
     "node": ">=12.0.0",

+ 1 - 1
packages/ckeditor5-alignment/src/alignmentui.js

@@ -152,7 +152,7 @@ export default class AlignmentUI extends Plugin {
 			// Execute command.
 			this.listenTo( buttonView, 'execute', () => {
 				editor.execute( 'alignment', { value: option } );
-				editor.editing.view.focus();
+				editor.focus();
 			} );
 
 			return buttonView;

+ 14 - 14
packages/ckeditor5-autoformat/package.json

@@ -1,6 +1,6 @@
 {
   "name": "@ckeditor/ckeditor5-autoformat",
-  "version": "23.0.0",
+  "version": "23.1.0",
   "description": "Autoformatting feature for CKEditor 5.",
   "keywords": [
     "ckeditor",
@@ -10,21 +10,21 @@
     "ckeditor5-plugin"
   ],
   "dependencies": {
-    "@ckeditor/ckeditor5-core": "^23.0.0",
-    "@ckeditor/ckeditor5-typing": "^23.0.0"
+    "@ckeditor/ckeditor5-core": "^23.1.0",
+    "@ckeditor/ckeditor5-typing": "^23.1.0"
   },
   "devDependencies": {
-    "@ckeditor/ckeditor5-basic-styles": "^23.0.0",
-    "@ckeditor/ckeditor5-block-quote": "^23.0.0",
-    "@ckeditor/ckeditor5-code-block": "^23.0.0",
-    "@ckeditor/ckeditor5-editor-classic": "^23.0.0",
-    "@ckeditor/ckeditor5-engine": "^23.0.0",
-    "@ckeditor/ckeditor5-enter": "^23.0.0",
-    "@ckeditor/ckeditor5-heading": "^23.0.0",
-    "@ckeditor/ckeditor5-list": "^23.0.0",
-    "@ckeditor/ckeditor5-paragraph": "^23.0.0",
-    "@ckeditor/ckeditor5-undo": "^23.0.0",
-    "@ckeditor/ckeditor5-utils": "^23.0.0"
+    "@ckeditor/ckeditor5-basic-styles": "^23.1.0",
+    "@ckeditor/ckeditor5-block-quote": "^23.1.0",
+    "@ckeditor/ckeditor5-code-block": "^23.1.0",
+    "@ckeditor/ckeditor5-editor-classic": "^23.1.0",
+    "@ckeditor/ckeditor5-engine": "^23.1.0",
+    "@ckeditor/ckeditor5-enter": "^23.1.0",
+    "@ckeditor/ckeditor5-heading": "^23.1.0",
+    "@ckeditor/ckeditor5-list": "^23.1.0",
+    "@ckeditor/ckeditor5-paragraph": "^23.1.0",
+    "@ckeditor/ckeditor5-undo": "^23.1.0",
+    "@ckeditor/ckeditor5-utils": "^23.1.0"
   },
   "engines": {
     "node": ">=12.0.0",

+ 21 - 0
packages/ckeditor5-autosave/lang/translations/hi.po

@@ -0,0 +1,21 @@
+# Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved.
+#
+#                                     !!! IMPORTANT !!!
+#
+#         Before you edit this file, please keep in mind that contributing to the project
+#                translations is possible ONLY via the Transifex online service.
+#
+#         To submit your translations, visit https://www.transifex.com/ckeditor/ckeditor5.
+#
+#                   To learn more, check out the official contributor's guide:
+#     https://ckeditor.com/docs/ckeditor5/latest/framework/guides/contributing/contributing.html
+#
+msgid ""
+msgstr ""
+"Language-Team: Hindi (https://www.transifex.com/ckeditor/teams/11143/hi/)\n"
+"Language: hi\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+msgctxt "A message that the data is being saved."
+msgid "Saving changes"
+msgstr "Saving changes"

+ 5 - 5
packages/ckeditor5-autosave/package.json

@@ -1,6 +1,6 @@
 {
   "name": "@ckeditor/ckeditor5-autosave",
-  "version": "23.0.0",
+  "version": "23.1.0",
   "description": "Autosave feature for CKEditor 5.",
   "keywords": [
     "ckeditor",
@@ -10,13 +10,13 @@
     "ckeditor5-plugin"
   ],
   "dependencies": {
-    "@ckeditor/ckeditor5-core": "^23.0.0",
-    "@ckeditor/ckeditor5-utils": "^23.0.0",
+    "@ckeditor/ckeditor5-core": "^23.1.0",
+    "@ckeditor/ckeditor5-utils": "^23.1.0",
     "lodash-es": "^4.17.15"
   },
   "devDependencies": {
-    "@ckeditor/ckeditor5-editor-classic": "^23.0.0",
-    "@ckeditor/ckeditor5-paragraph": "^23.0.0"
+    "@ckeditor/ckeditor5-editor-classic": "^23.1.0",
+    "@ckeditor/ckeditor5-paragraph": "^23.1.0"
   },
   "engines": {
     "node": ">=12.0.0",

+ 6 - 6
packages/ckeditor5-basic-styles/docs/_snippets/features/basic-styles.html

@@ -1,8 +1,8 @@
 <div id="snippet-basic-styles">
-	<p><strong>This text is bold</strong>.</p>
-	<p><i>This text is italic</i>.</p>
-	<p><u>This text is underlined</u>.</p>
-	<p><s>This is a strikethrough text</s>.</p>
-	<p><code>This is an inline code</code>.</p>
-	<p>These are <sub>a subscript</sub> and <sup>a superscript</sup>.</p>
+	<p>When you&nbsp;need to make something seem very important, <strong>bold seems to be the right choice</strong>.</p>
+	<p>Italics can be used for foreign words like the Greek&nbsp;<em>t&yacute;pos</em> &mdash; &bdquo;reflection, form&rdquo; and&nbsp;<em>gr&aacute;phō</em> &mdash; &bdquo;I am writing&rdquo;, which form &bdquo;typography&rdquo;.</p>
+	<p>It is rather rare to use underlined text <u>as this stands out very much and should be used with extreme caution</u>.</p>
+	<p>There are also situations when you need to remove something, for example during collaborative editing.&nbsp;<s>The&nbsp;strikethrough is a right&nbsp;choice then</s>.</p>
+	<p>If you are dealing with software development, having the option to mark inline code like <code>printf("hello, world\n");</code> is also very useful.</p>
+	<p>These are also&nbsp;<sub>subscript</sub> and&nbsp;<sup>superscript&nbsp;</sup>types that you may utilize in chemistry or in math related texts where you have things like H<sub>2</sub>O or x<sup>2</sup>.</p>
 </div>

+ 10 - 1
packages/ckeditor5-basic-styles/docs/features/basic-styles.md

@@ -5,7 +5,7 @@ category: features
 
 {@snippet features/build-basic-styles-source}
 
-The {@link api/basic-styles basic styles} package provides text formatting features such as bold, italic, underline, strikethrough, subscript, superscript, and code.
+The {@link api/basic-styles basic styles} feature allows you to apply the most frequently used formatting indispensable for content creation. This package provides essential text styling features such as bold, italic, underline, strikethrough, subscript, superscript, and code. Coupled with more [formatting features](#related-features), these serve as a base for any WYSIWYG editor toolset.
 
 <info-box info>
 	All basic text styles can be removed with the {@link features/remove-format remove format} feature.
@@ -15,6 +15,15 @@ The {@link api/basic-styles basic styles} package provides text formatting featu
 
 {@snippet features/basic-styles}
 
+## Related features
+
+Check out also these CKEditor 5 features to gain better control over your content style and format:
+* {@link features/font Font styles} &ndash; Easily and efficiently control the font {@link features/font#configuring-the-font-family-feature family}, {@link features/font#configuring-the-font-size-feature size}, {@link features/font#configuring-the-font-color-and-font-background-color-features text or background color}.
+* {@link features/text-alignment Text alignment} &ndash; Because it does matter whether the content is left, right, centered or justified.
+* {@link features/code-blocks Code blocks}  &ndash; Insert longer, multiline code listings, expanding the inline code style greatly.
+* {@link features/highlight Highlight} &ndash; Mark important words and passages, aiding a review or drawing attention to specific parts of content.
+* {@link features/remove-format Remove format} &ndash; Easily clean basic text formatting.
+
 ## Available text styles
 
 | Style feature | {@link framework/guides/architecture/core-editor-architecture#commands Command} name | {@link builds/guides/integration/configuration#toolbar-setup Toolbar} component name | Output element |

+ 45 - 0
packages/ckeditor5-basic-styles/lang/translations/hi.po

@@ -0,0 +1,45 @@
+# Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved.
+#
+#                                     !!! IMPORTANT !!!
+#
+#         Before you edit this file, please keep in mind that contributing to the project
+#                translations is possible ONLY via the Transifex online service.
+#
+#         To submit your translations, visit https://www.transifex.com/ckeditor/ckeditor5.
+#
+#                   To learn more, check out the official contributor's guide:
+#     https://ckeditor.com/docs/ckeditor5/latest/framework/guides/contributing/contributing.html
+#
+msgid ""
+msgstr ""
+"Language-Team: Hindi (https://www.transifex.com/ckeditor/teams/11143/hi/)\n"
+"Language: hi\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+msgctxt "Toolbar button tooltip for the Bold feature."
+msgid "Bold"
+msgstr "Bold"
+
+msgctxt "Toolbar button tooltip for the Italic feature."
+msgid "Italic"
+msgstr "Italic"
+
+msgctxt "Toolbar button tooltip for the Underline feature."
+msgid "Underline"
+msgstr "Underline"
+
+msgctxt "Toolbar button tooltip for the Code feature."
+msgid "Code"
+msgstr "Code"
+
+msgctxt "Toolbar button tooltip for the Strikethrough feature."
+msgid "Strikethrough"
+msgstr "Strikethrough"
+
+msgctxt "Toolbar button tooltip for the Subscript feature."
+msgid "Subscript"
+msgstr "Subscript"
+
+msgctxt "Toolbar button tooltip for the Superscript feature."
+msgid "Superscript"
+msgstr "Superscript"

+ 10 - 10
packages/ckeditor5-basic-styles/package.json

@@ -1,6 +1,6 @@
 {
   "name": "@ckeditor/ckeditor5-basic-styles",
-  "version": "23.0.0",
+  "version": "23.1.0",
   "description": "Basic styles feature for CKEditor 5.",
   "keywords": [
     "ckeditor",
@@ -10,17 +10,17 @@
     "ckeditor5-plugin"
   ],
   "dependencies": {
-    "@ckeditor/ckeditor5-core": "^23.0.0",
-    "@ckeditor/ckeditor5-typing": "^23.0.0",
-    "@ckeditor/ckeditor5-ui": "^23.0.0"
+    "@ckeditor/ckeditor5-core": "^23.1.0",
+    "@ckeditor/ckeditor5-typing": "^23.1.0",
+    "@ckeditor/ckeditor5-ui": "^23.1.0"
   },
   "devDependencies": {
-    "@ckeditor/ckeditor5-editor-classic": "^23.0.0",
-    "@ckeditor/ckeditor5-engine": "^23.0.0",
-    "@ckeditor/ckeditor5-essentials": "^23.0.0",
-    "@ckeditor/ckeditor5-paragraph": "^23.0.0",
-    "@ckeditor/ckeditor5-remove-format": "^23.0.0",
-    "@ckeditor/ckeditor5-utils": "^23.0.0"
+    "@ckeditor/ckeditor5-editor-classic": "^23.1.0",
+    "@ckeditor/ckeditor5-engine": "^23.1.0",
+    "@ckeditor/ckeditor5-essentials": "^23.1.0",
+    "@ckeditor/ckeditor5-paragraph": "^23.1.0",
+    "@ckeditor/ckeditor5-remove-format": "^23.1.0",
+    "@ckeditor/ckeditor5-utils": "^23.1.0"
   },
   "engines": {
     "node": ">=12.0.0",

+ 1 - 1
packages/ckeditor5-basic-styles/src/bold/boldui.js

@@ -45,7 +45,7 @@ export default class BoldUI extends Plugin {
 			// Execute command.
 			this.listenTo( view, 'execute', () => {
 				editor.execute( BOLD );
-				editor.editing.view.focus();
+				editor.focus();
 			} );
 
 			return view;

+ 1 - 1
packages/ckeditor5-basic-styles/src/code/codeui.js

@@ -46,7 +46,7 @@ export default class CodeUI extends Plugin {
 			// Execute command.
 			this.listenTo( view, 'execute', () => {
 				editor.execute( CODE );
-				editor.editing.view.focus();
+				editor.focus();
 			} );
 
 			return view;

+ 1 - 1
packages/ckeditor5-basic-styles/src/italic/italicui.js

@@ -45,7 +45,7 @@ export default class ItalicUI extends Plugin {
 			// Execute command.
 			this.listenTo( view, 'execute', () => {
 				editor.execute( ITALIC );
-				editor.editing.view.focus();
+				editor.focus();
 			} );
 
 			return view;

+ 1 - 1
packages/ckeditor5-basic-styles/src/strikethrough/strikethroughui.js

@@ -45,7 +45,7 @@ export default class StrikethroughUI extends Plugin {
 			// Execute command.
 			this.listenTo( view, 'execute', () => {
 				editor.execute( STRIKETHROUGH );
-				editor.editing.view.focus();
+				editor.focus();
 			} );
 
 			return view;

+ 1 - 1
packages/ckeditor5-basic-styles/src/subscript/subscriptui.js

@@ -44,7 +44,7 @@ export default class SubscriptUI extends Plugin {
 			// Execute command.
 			this.listenTo( view, 'execute', () => {
 				editor.execute( SUBSCRIPT );
-				editor.editing.view.focus();
+				editor.focus();
 			} );
 
 			return view;

+ 1 - 1
packages/ckeditor5-basic-styles/src/superscript/superscriptui.js

@@ -44,7 +44,7 @@ export default class SuperscriptUI extends Plugin {
 			// Execute command.
 			this.listenTo( view, 'execute', () => {
 				editor.execute( SUPERSCRIPT );
-				editor.editing.view.focus();
+				editor.focus();
 			} );
 
 			return view;

+ 1 - 1
packages/ckeditor5-basic-styles/src/underline/underlineui.js

@@ -45,7 +45,7 @@ export default class UnderlineUI extends Plugin {
 			// Execute command.
 			this.listenTo( view, 'execute', () => {
 				editor.execute( UNDERLINE );
-				editor.editing.view.focus();
+				editor.focus();
 			} );
 
 			return view;

+ 3 - 2
packages/ckeditor5-block-quote/docs/features/block-quote.md

@@ -17,8 +17,9 @@ Use the editor below to see the block quote plugin in action.
 
 Here are some other CKEditor 5 features that you can use similarly to the block quote plugin to structure your text better:
 
-* The {@link features/indent block indentation feature} allows you to set indentation for text blocks such as paragraphs or lists.
-* The {@link features/code-blocks code block feature} allows for insertion of various code listings.
+* {@link features/indent Block indentation}  &ndash; Set indentation for text blocks such as paragraphs or lists.
+* {@link features/code-blocks Code block}  &ndash; Insert longer, multiline code listings.
+* {@link features/text-alignment Text alignment} &ndash; Align your content left, right, center it or justify.
 
 ## Installation
 

+ 21 - 0
packages/ckeditor5-block-quote/lang/translations/hi.po

@@ -0,0 +1,21 @@
+# Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved.
+#
+#                                     !!! IMPORTANT !!!
+#
+#         Before you edit this file, please keep in mind that contributing to the project
+#                translations is possible ONLY via the Transifex online service.
+#
+#         To submit your translations, visit https://www.transifex.com/ckeditor/ckeditor5.
+#
+#                   To learn more, check out the official contributor's guide:
+#     https://ckeditor.com/docs/ckeditor5/latest/framework/guides/contributing/contributing.html
+#
+msgid ""
+msgstr ""
+"Language-Team: Hindi (https://www.transifex.com/ckeditor/teams/11143/hi/)\n"
+"Language: hi\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+msgctxt "Toolbar button tooltip for the Block quote feature."
+msgid "Block quote"
+msgstr "Block quote"

+ 14 - 14
packages/ckeditor5-block-quote/package.json

@@ -1,6 +1,6 @@
 {
   "name": "@ckeditor/ckeditor5-block-quote",
-  "version": "23.0.0",
+  "version": "23.1.0",
   "description": "Block quote feature for CKEditor 5.",
   "keywords": [
     "ckeditor",
@@ -10,21 +10,21 @@
     "ckeditor5-plugin"
   ],
   "dependencies": {
-    "@ckeditor/ckeditor5-core": "^23.0.0",
-    "@ckeditor/ckeditor5-ui": "^23.0.0",
-    "@ckeditor/ckeditor5-utils": "^23.0.0"
+    "@ckeditor/ckeditor5-core": "^23.1.0",
+    "@ckeditor/ckeditor5-ui": "^23.1.0",
+    "@ckeditor/ckeditor5-utils": "^23.1.0"
   },
   "devDependencies": {
-    "@ckeditor/ckeditor5-basic-styles": "^23.0.0",
-    "@ckeditor/ckeditor5-editor-classic": "^23.0.0",
-    "@ckeditor/ckeditor5-engine": "^23.0.0",
-    "@ckeditor/ckeditor5-enter": "^23.0.0",
-    "@ckeditor/ckeditor5-heading": "^23.0.0",
-    "@ckeditor/ckeditor5-image": "^23.0.0",
-    "@ckeditor/ckeditor5-list": "^23.0.0",
-    "@ckeditor/ckeditor5-paragraph": "^23.0.0",
-    "@ckeditor/ckeditor5-table": "^23.0.0",
-    "@ckeditor/ckeditor5-typing": "^23.0.0"
+    "@ckeditor/ckeditor5-basic-styles": "^23.1.0",
+    "@ckeditor/ckeditor5-editor-classic": "^23.1.0",
+    "@ckeditor/ckeditor5-engine": "^23.1.0",
+    "@ckeditor/ckeditor5-enter": "^23.1.0",
+    "@ckeditor/ckeditor5-heading": "^23.1.0",
+    "@ckeditor/ckeditor5-image": "^23.1.0",
+    "@ckeditor/ckeditor5-list": "^23.1.0",
+    "@ckeditor/ckeditor5-paragraph": "^23.1.0",
+    "@ckeditor/ckeditor5-table": "^23.1.0",
+    "@ckeditor/ckeditor5-typing": "^23.1.0"
   },
   "engines": {
     "node": ">=12.0.0",

+ 1 - 1
packages/ckeditor5-block-quote/src/blockquoteui.js

@@ -45,7 +45,7 @@ export default class BlockQuoteUI extends Plugin {
 			// Execute command.
 			this.listenTo( buttonView, 'execute', () => {
 				editor.execute( 'blockQuote' );
-				editor.editing.view.focus();
+				editor.focus();
 			} );
 
 			return buttonView;

Fișier diff suprimat deoarece este prea mare
+ 0 - 0
packages/ckeditor5-build-balloon-block/build/ckeditor.js


Fișier diff suprimat deoarece este prea mare
+ 0 - 0
packages/ckeditor5-build-balloon-block/build/ckeditor.js.map


Fișier diff suprimat deoarece este prea mare
+ 0 - 0
packages/ckeditor5-build-balloon-block/build/translations/fa.js


Fișier diff suprimat deoarece este prea mare
+ 0 - 0
packages/ckeditor5-build-balloon-block/build/translations/fr.js


Fișier diff suprimat deoarece este prea mare
+ 0 - 0
packages/ckeditor5-build-balloon-block/build/translations/ug.js


Fișier diff suprimat deoarece este prea mare
+ 0 - 0
packages/ckeditor5-build-balloon-block/build/translations/zh-cn.js


+ 22 - 22
packages/ckeditor5-build-balloon-block/package.json

@@ -1,6 +1,6 @@
 {
   "name": "@ckeditor/ckeditor5-build-balloon-block",
-  "version": "23.0.0",
+  "version": "23.1.0",
   "description": "The balloon editor build of CKEditor 5 with a block toolbar – the best browser-based rich text editor.",
   "keywords": [
     "wysiwyg",
@@ -25,29 +25,29 @@
     "build"
   ],
   "devDependencies": {
-    "@ckeditor/ckeditor5-adapter-ckfinder": "^23.0.0",
-    "@ckeditor/ckeditor5-autoformat": "^23.0.0",
-    "@ckeditor/ckeditor5-basic-styles": "^23.0.0",
-    "@ckeditor/ckeditor5-block-quote": "^23.0.0",
-    "@ckeditor/ckeditor5-ckfinder": "^23.0.0",
-    "@ckeditor/ckeditor5-core": "^23.0.0",
+    "@ckeditor/ckeditor5-adapter-ckfinder": "^23.1.0",
+    "@ckeditor/ckeditor5-autoformat": "^23.1.0",
+    "@ckeditor/ckeditor5-basic-styles": "^23.1.0",
+    "@ckeditor/ckeditor5-block-quote": "^23.1.0",
+    "@ckeditor/ckeditor5-ckfinder": "^23.1.0",
+    "@ckeditor/ckeditor5-core": "^23.1.0",
     "@ckeditor/ckeditor5-dev-utils": "^20.0.0",
     "@ckeditor/ckeditor5-dev-webpack-plugin": "^20.0.0",
-    "@ckeditor/ckeditor5-easy-image": "^23.0.0",
-    "@ckeditor/ckeditor5-editor-balloon": "^23.0.0",
-    "@ckeditor/ckeditor5-essentials": "^23.0.0",
-    "@ckeditor/ckeditor5-heading": "^23.0.0",
-    "@ckeditor/ckeditor5-image": "^23.0.0",
-    "@ckeditor/ckeditor5-indent": "^23.0.0",
-    "@ckeditor/ckeditor5-link": "^23.0.0",
-    "@ckeditor/ckeditor5-list": "^23.0.0",
-    "@ckeditor/ckeditor5-media-embed": "^23.0.0",
-    "@ckeditor/ckeditor5-paragraph": "^23.0.0",
-    "@ckeditor/ckeditor5-paste-from-office": "^23.0.0",
-    "@ckeditor/ckeditor5-table": "^23.0.0",
-    "@ckeditor/ckeditor5-typing": "^23.0.0",
-    "@ckeditor/ckeditor5-theme-lark": "^23.0.0",
-    "@ckeditor/ckeditor5-ui": "^23.0.0",
+    "@ckeditor/ckeditor5-easy-image": "^23.1.0",
+    "@ckeditor/ckeditor5-editor-balloon": "^23.1.0",
+    "@ckeditor/ckeditor5-essentials": "^23.1.0",
+    "@ckeditor/ckeditor5-heading": "^23.1.0",
+    "@ckeditor/ckeditor5-image": "^23.1.0",
+    "@ckeditor/ckeditor5-indent": "^23.1.0",
+    "@ckeditor/ckeditor5-link": "^23.1.0",
+    "@ckeditor/ckeditor5-list": "^23.1.0",
+    "@ckeditor/ckeditor5-media-embed": "^23.1.0",
+    "@ckeditor/ckeditor5-paragraph": "^23.1.0",
+    "@ckeditor/ckeditor5-paste-from-office": "^23.1.0",
+    "@ckeditor/ckeditor5-table": "^23.1.0",
+    "@ckeditor/ckeditor5-typing": "^23.1.0",
+    "@ckeditor/ckeditor5-theme-lark": "^23.1.0",
+    "@ckeditor/ckeditor5-ui": "^23.1.0",
     "postcss-loader": "^3.0.0",
     "raw-loader": "^4.0.1",
     "style-loader": "^1.2.1",

Fișier diff suprimat deoarece este prea mare
+ 0 - 0
packages/ckeditor5-build-balloon/build/ckeditor.js


Fișier diff suprimat deoarece este prea mare
+ 0 - 0
packages/ckeditor5-build-balloon/build/ckeditor.js.map


Fișier diff suprimat deoarece este prea mare
+ 0 - 0
packages/ckeditor5-build-balloon/build/translations/fa.js


Fișier diff suprimat deoarece este prea mare
+ 0 - 0
packages/ckeditor5-build-balloon/build/translations/fr.js


Fișier diff suprimat deoarece este prea mare
+ 0 - 0
packages/ckeditor5-build-balloon/build/translations/ug.js


Fișier diff suprimat deoarece este prea mare
+ 0 - 0
packages/ckeditor5-build-balloon/build/translations/zh-cn.js


+ 21 - 21
packages/ckeditor5-build-balloon/package.json

@@ -1,6 +1,6 @@
 {
   "name": "@ckeditor/ckeditor5-build-balloon",
-  "version": "23.0.0",
+  "version": "23.1.0",
   "description": "The balloon editor build of CKEditor 5 – the best browser-based rich text editor.",
   "keywords": [
     "wysiwyg",
@@ -25,28 +25,28 @@
     "build"
   ],
   "devDependencies": {
-    "@ckeditor/ckeditor5-adapter-ckfinder": "^23.0.0",
-    "@ckeditor/ckeditor5-autoformat": "^23.0.0",
-    "@ckeditor/ckeditor5-basic-styles": "^23.0.0",
-    "@ckeditor/ckeditor5-block-quote": "^23.0.0",
-    "@ckeditor/ckeditor5-ckfinder": "^23.0.0",
-    "@ckeditor/ckeditor5-core": "^23.0.0",
+    "@ckeditor/ckeditor5-adapter-ckfinder": "^23.1.0",
+    "@ckeditor/ckeditor5-autoformat": "^23.1.0",
+    "@ckeditor/ckeditor5-basic-styles": "^23.1.0",
+    "@ckeditor/ckeditor5-block-quote": "^23.1.0",
+    "@ckeditor/ckeditor5-ckfinder": "^23.1.0",
+    "@ckeditor/ckeditor5-core": "^23.1.0",
     "@ckeditor/ckeditor5-dev-utils": "^20.0.0",
     "@ckeditor/ckeditor5-dev-webpack-plugin": "^20.0.0",
-    "@ckeditor/ckeditor5-easy-image": "^23.0.0",
-    "@ckeditor/ckeditor5-editor-balloon": "^23.0.0",
-    "@ckeditor/ckeditor5-essentials": "^23.0.0",
-    "@ckeditor/ckeditor5-heading": "^23.0.0",
-    "@ckeditor/ckeditor5-image": "^23.0.0",
-    "@ckeditor/ckeditor5-indent": "^23.0.0",
-    "@ckeditor/ckeditor5-link": "^23.0.0",
-    "@ckeditor/ckeditor5-list": "^23.0.0",
-    "@ckeditor/ckeditor5-media-embed": "^23.0.0",
-    "@ckeditor/ckeditor5-paragraph": "^23.0.0",
-    "@ckeditor/ckeditor5-paste-from-office": "^23.0.0",
-    "@ckeditor/ckeditor5-table": "^23.0.0",
-    "@ckeditor/ckeditor5-typing": "^23.0.0",
-    "@ckeditor/ckeditor5-theme-lark": "^23.0.0",
+    "@ckeditor/ckeditor5-easy-image": "^23.1.0",
+    "@ckeditor/ckeditor5-editor-balloon": "^23.1.0",
+    "@ckeditor/ckeditor5-essentials": "^23.1.0",
+    "@ckeditor/ckeditor5-heading": "^23.1.0",
+    "@ckeditor/ckeditor5-image": "^23.1.0",
+    "@ckeditor/ckeditor5-indent": "^23.1.0",
+    "@ckeditor/ckeditor5-link": "^23.1.0",
+    "@ckeditor/ckeditor5-list": "^23.1.0",
+    "@ckeditor/ckeditor5-media-embed": "^23.1.0",
+    "@ckeditor/ckeditor5-paragraph": "^23.1.0",
+    "@ckeditor/ckeditor5-paste-from-office": "^23.1.0",
+    "@ckeditor/ckeditor5-table": "^23.1.0",
+    "@ckeditor/ckeditor5-typing": "^23.1.0",
+    "@ckeditor/ckeditor5-theme-lark": "^23.1.0",
     "postcss-loader": "^3.0.0",
     "raw-loader": "^4.0.1",
     "style-loader": "^1.2.1",

Fișier diff suprimat deoarece este prea mare
+ 0 - 0
packages/ckeditor5-build-classic/build/ckeditor.js


Fișier diff suprimat deoarece este prea mare
+ 0 - 0
packages/ckeditor5-build-classic/build/ckeditor.js.map


Fișier diff suprimat deoarece este prea mare
+ 0 - 0
packages/ckeditor5-build-classic/build/translations/fa.js


Fișier diff suprimat deoarece este prea mare
+ 0 - 0
packages/ckeditor5-build-classic/build/translations/fr.js


Fișier diff suprimat deoarece este prea mare
+ 0 - 0
packages/ckeditor5-build-classic/build/translations/ug.js


Fișier diff suprimat deoarece este prea mare
+ 0 - 0
packages/ckeditor5-build-classic/build/translations/zh-cn.js


+ 21 - 21
packages/ckeditor5-build-classic/package.json

@@ -1,6 +1,6 @@
 {
   "name": "@ckeditor/ckeditor5-build-classic",
-  "version": "23.0.0",
+  "version": "23.1.0",
   "description": "The classic editor build of CKEditor 5 – the best browser-based rich text editor.",
   "keywords": [
     "ckeditor5-build",
@@ -25,28 +25,28 @@
     "build"
   ],
   "devDependencies": {
-    "@ckeditor/ckeditor5-adapter-ckfinder": "^23.0.0",
-    "@ckeditor/ckeditor5-autoformat": "^23.0.0",
-    "@ckeditor/ckeditor5-basic-styles": "^23.0.0",
-    "@ckeditor/ckeditor5-block-quote": "^23.0.0",
-    "@ckeditor/ckeditor5-ckfinder": "^23.0.0",
-    "@ckeditor/ckeditor5-core": "^23.0.0",
+    "@ckeditor/ckeditor5-adapter-ckfinder": "^23.1.0",
+    "@ckeditor/ckeditor5-autoformat": "^23.1.0",
+    "@ckeditor/ckeditor5-basic-styles": "^23.1.0",
+    "@ckeditor/ckeditor5-block-quote": "^23.1.0",
+    "@ckeditor/ckeditor5-ckfinder": "^23.1.0",
+    "@ckeditor/ckeditor5-core": "^23.1.0",
     "@ckeditor/ckeditor5-dev-utils": "^20.0.0",
     "@ckeditor/ckeditor5-dev-webpack-plugin": "^20.0.0",
-    "@ckeditor/ckeditor5-easy-image": "^23.0.0",
-    "@ckeditor/ckeditor5-editor-classic": "^23.0.0",
-    "@ckeditor/ckeditor5-essentials": "^23.0.0",
-    "@ckeditor/ckeditor5-heading": "^23.0.0",
-    "@ckeditor/ckeditor5-image": "^23.0.0",
-    "@ckeditor/ckeditor5-indent": "^23.0.0",
-    "@ckeditor/ckeditor5-link": "^23.0.0",
-    "@ckeditor/ckeditor5-list": "^23.0.0",
-    "@ckeditor/ckeditor5-media-embed": "^23.0.0",
-    "@ckeditor/ckeditor5-paragraph": "^23.0.0",
-    "@ckeditor/ckeditor5-paste-from-office": "^23.0.0",
-    "@ckeditor/ckeditor5-table": "^23.0.0",
-    "@ckeditor/ckeditor5-typing": "^23.0.0",
-    "@ckeditor/ckeditor5-theme-lark": "^23.0.0",
+    "@ckeditor/ckeditor5-easy-image": "^23.1.0",
+    "@ckeditor/ckeditor5-editor-classic": "^23.1.0",
+    "@ckeditor/ckeditor5-essentials": "^23.1.0",
+    "@ckeditor/ckeditor5-heading": "^23.1.0",
+    "@ckeditor/ckeditor5-image": "^23.1.0",
+    "@ckeditor/ckeditor5-indent": "^23.1.0",
+    "@ckeditor/ckeditor5-link": "^23.1.0",
+    "@ckeditor/ckeditor5-list": "^23.1.0",
+    "@ckeditor/ckeditor5-media-embed": "^23.1.0",
+    "@ckeditor/ckeditor5-paragraph": "^23.1.0",
+    "@ckeditor/ckeditor5-paste-from-office": "^23.1.0",
+    "@ckeditor/ckeditor5-table": "^23.1.0",
+    "@ckeditor/ckeditor5-typing": "^23.1.0",
+    "@ckeditor/ckeditor5-theme-lark": "^23.1.0",
     "postcss-loader": "^3.0.0",
     "raw-loader": "^4.0.1",
     "style-loader": "^1.2.1",

Fișier diff suprimat deoarece este prea mare
+ 0 - 0
packages/ckeditor5-build-decoupled-document/build/ckeditor.js


Fișier diff suprimat deoarece este prea mare
+ 0 - 0
packages/ckeditor5-build-decoupled-document/build/ckeditor.js.map


Fișier diff suprimat deoarece este prea mare
+ 0 - 0
packages/ckeditor5-build-decoupled-document/build/translations/fa.js


Fișier diff suprimat deoarece este prea mare
+ 0 - 0
packages/ckeditor5-build-decoupled-document/build/translations/fr.js


Fișier diff suprimat deoarece este prea mare
+ 0 - 0
packages/ckeditor5-build-decoupled-document/build/translations/it.js


Fișier diff suprimat deoarece este prea mare
+ 0 - 0
packages/ckeditor5-build-decoupled-document/build/translations/ug.js


Fișier diff suprimat deoarece este prea mare
+ 0 - 0
packages/ckeditor5-build-decoupled-document/build/translations/zh-cn.js


+ 24 - 24
packages/ckeditor5-build-decoupled-document/package.json

@@ -1,6 +1,6 @@
 {
   "name": "@ckeditor/ckeditor5-build-decoupled-document",
-  "version": "23.0.0",
+  "version": "23.1.0",
   "description": "The document editor build of CKEditor 5 – the best browser-based rich text editor.",
   "keywords": [
     "ckeditor5-build",
@@ -25,31 +25,31 @@
     "build"
   ],
   "devDependencies": {
-    "@ckeditor/ckeditor5-adapter-ckfinder": "^23.0.0",
-    "@ckeditor/ckeditor5-alignment": "^23.0.0",
-    "@ckeditor/ckeditor5-autoformat": "^23.0.0",
-    "@ckeditor/ckeditor5-basic-styles": "^23.0.0",
-    "@ckeditor/ckeditor5-block-quote": "^23.0.0",
-    "@ckeditor/ckeditor5-ckfinder": "^23.0.0",
-    "@ckeditor/ckeditor5-core": "^23.0.0",
+    "@ckeditor/ckeditor5-adapter-ckfinder": "^23.1.0",
+    "@ckeditor/ckeditor5-alignment": "^23.1.0",
+    "@ckeditor/ckeditor5-autoformat": "^23.1.0",
+    "@ckeditor/ckeditor5-basic-styles": "^23.1.0",
+    "@ckeditor/ckeditor5-block-quote": "^23.1.0",
+    "@ckeditor/ckeditor5-ckfinder": "^23.1.0",
+    "@ckeditor/ckeditor5-core": "^23.1.0",
     "@ckeditor/ckeditor5-dev-utils": "^20.0.0",
     "@ckeditor/ckeditor5-dev-webpack-plugin": "^20.0.0",
-    "@ckeditor/ckeditor5-easy-image": "^23.0.0",
-    "@ckeditor/ckeditor5-editor-decoupled": "^23.0.0",
-    "@ckeditor/ckeditor5-essentials": "^23.0.0",
-    "@ckeditor/ckeditor5-font": "^23.0.0",
-    "@ckeditor/ckeditor5-heading": "^23.0.0",
-    "@ckeditor/ckeditor5-highlight": "^23.0.0",
-    "@ckeditor/ckeditor5-image": "^23.0.0",
-    "@ckeditor/ckeditor5-indent": "^23.0.0",
-    "@ckeditor/ckeditor5-link": "^23.0.0",
-    "@ckeditor/ckeditor5-list": "^23.0.0",
-    "@ckeditor/ckeditor5-media-embed": "^23.0.0",
-    "@ckeditor/ckeditor5-paragraph": "^23.0.0",
-    "@ckeditor/ckeditor5-paste-from-office": "^23.0.0",
-    "@ckeditor/ckeditor5-table": "^23.0.0",
-    "@ckeditor/ckeditor5-typing": "^23.0.0",
-    "@ckeditor/ckeditor5-theme-lark": "^23.0.0",
+    "@ckeditor/ckeditor5-easy-image": "^23.1.0",
+    "@ckeditor/ckeditor5-editor-decoupled": "^23.1.0",
+    "@ckeditor/ckeditor5-essentials": "^23.1.0",
+    "@ckeditor/ckeditor5-font": "^23.1.0",
+    "@ckeditor/ckeditor5-heading": "^23.1.0",
+    "@ckeditor/ckeditor5-highlight": "^23.1.0",
+    "@ckeditor/ckeditor5-image": "^23.1.0",
+    "@ckeditor/ckeditor5-indent": "^23.1.0",
+    "@ckeditor/ckeditor5-link": "^23.1.0",
+    "@ckeditor/ckeditor5-list": "^23.1.0",
+    "@ckeditor/ckeditor5-media-embed": "^23.1.0",
+    "@ckeditor/ckeditor5-paragraph": "^23.1.0",
+    "@ckeditor/ckeditor5-paste-from-office": "^23.1.0",
+    "@ckeditor/ckeditor5-table": "^23.1.0",
+    "@ckeditor/ckeditor5-typing": "^23.1.0",
+    "@ckeditor/ckeditor5-theme-lark": "^23.1.0",
     "postcss-loader": "^3.0.0",
     "raw-loader": "^4.0.1",
     "style-loader": "^1.2.1",

Fișier diff suprimat deoarece este prea mare
+ 0 - 0
packages/ckeditor5-build-inline/build/ckeditor.js


Fișier diff suprimat deoarece este prea mare
+ 0 - 0
packages/ckeditor5-build-inline/build/ckeditor.js.map


Fișier diff suprimat deoarece este prea mare
+ 0 - 0
packages/ckeditor5-build-inline/build/translations/fa.js


Fișier diff suprimat deoarece este prea mare
+ 0 - 0
packages/ckeditor5-build-inline/build/translations/fr.js


Fișier diff suprimat deoarece este prea mare
+ 0 - 0
packages/ckeditor5-build-inline/build/translations/ug.js


Fișier diff suprimat deoarece este prea mare
+ 0 - 0
packages/ckeditor5-build-inline/build/translations/zh-cn.js


+ 21 - 21
packages/ckeditor5-build-inline/package.json

@@ -1,6 +1,6 @@
 {
   "name": "@ckeditor/ckeditor5-build-inline",
-  "version": "23.0.0",
+  "version": "23.1.0",
   "description": "The inline editor build of CKEditor 5 – the best browser-based rich text editor.",
   "keywords": [
     "ckeditor5-build",
@@ -25,28 +25,28 @@
     "build"
   ],
   "devDependencies": {
-    "@ckeditor/ckeditor5-adapter-ckfinder": "^23.0.0",
-    "@ckeditor/ckeditor5-autoformat": "^23.0.0",
-    "@ckeditor/ckeditor5-basic-styles": "^23.0.0",
-    "@ckeditor/ckeditor5-block-quote": "^23.0.0",
-    "@ckeditor/ckeditor5-ckfinder": "^23.0.0",
-    "@ckeditor/ckeditor5-core": "^23.0.0",
+    "@ckeditor/ckeditor5-adapter-ckfinder": "^23.1.0",
+    "@ckeditor/ckeditor5-autoformat": "^23.1.0",
+    "@ckeditor/ckeditor5-basic-styles": "^23.1.0",
+    "@ckeditor/ckeditor5-block-quote": "^23.1.0",
+    "@ckeditor/ckeditor5-ckfinder": "^23.1.0",
+    "@ckeditor/ckeditor5-core": "^23.1.0",
     "@ckeditor/ckeditor5-dev-utils": "^20.0.0",
     "@ckeditor/ckeditor5-dev-webpack-plugin": "^20.0.0",
-    "@ckeditor/ckeditor5-easy-image": "^23.0.0",
-    "@ckeditor/ckeditor5-editor-inline": "^23.0.0",
-    "@ckeditor/ckeditor5-essentials": "^23.0.0",
-    "@ckeditor/ckeditor5-heading": "^23.0.0",
-    "@ckeditor/ckeditor5-image": "^23.0.0",
-    "@ckeditor/ckeditor5-indent": "^23.0.0",
-    "@ckeditor/ckeditor5-link": "^23.0.0",
-    "@ckeditor/ckeditor5-list": "^23.0.0",
-    "@ckeditor/ckeditor5-media-embed": "^23.0.0",
-    "@ckeditor/ckeditor5-paragraph": "^23.0.0",
-    "@ckeditor/ckeditor5-paste-from-office": "^23.0.0",
-    "@ckeditor/ckeditor5-table": "^23.0.0",
-    "@ckeditor/ckeditor5-typing": "^23.0.0",
-    "@ckeditor/ckeditor5-theme-lark": "^23.0.0",
+    "@ckeditor/ckeditor5-easy-image": "^23.1.0",
+    "@ckeditor/ckeditor5-editor-inline": "^23.1.0",
+    "@ckeditor/ckeditor5-essentials": "^23.1.0",
+    "@ckeditor/ckeditor5-heading": "^23.1.0",
+    "@ckeditor/ckeditor5-image": "^23.1.0",
+    "@ckeditor/ckeditor5-indent": "^23.1.0",
+    "@ckeditor/ckeditor5-link": "^23.1.0",
+    "@ckeditor/ckeditor5-list": "^23.1.0",
+    "@ckeditor/ckeditor5-media-embed": "^23.1.0",
+    "@ckeditor/ckeditor5-paragraph": "^23.1.0",
+    "@ckeditor/ckeditor5-paste-from-office": "^23.1.0",
+    "@ckeditor/ckeditor5-table": "^23.1.0",
+    "@ckeditor/ckeditor5-typing": "^23.1.0",
+    "@ckeditor/ckeditor5-theme-lark": "^23.1.0",
     "postcss-loader": "^3.0.0",
     "raw-loader": "^4.0.1",
     "style-loader": "^1.2.1",

+ 37 - 0
packages/ckeditor5-ckfinder/lang/translations/hi.po

@@ -0,0 +1,37 @@
+# Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved.
+#
+#                                     !!! IMPORTANT !!!
+#
+#         Before you edit this file, please keep in mind that contributing to the project
+#                translations is possible ONLY via the Transifex online service.
+#
+#         To submit your translations, visit https://www.transifex.com/ckeditor/ckeditor5.
+#
+#                   To learn more, check out the official contributor's guide:
+#     https://ckeditor.com/docs/ckeditor5/latest/framework/guides/contributing/contributing.html
+#
+msgid ""
+msgstr ""
+"Language-Team: Hindi (https://www.transifex.com/ckeditor/teams/11143/hi/)\n"
+"Language: hi\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+msgctxt "Toolbar button tooltip for inserting an image or file via a CKFinder file browser."
+msgid "Insert image or file"
+msgstr "Insert image or file"
+
+msgctxt "Error message displayed when inserting a resized version of an image failed."
+msgid "Could not obtain resized image URL."
+msgstr "Could not obtain resized image URL."
+
+msgctxt "Title of a notification displayed when inserting a resized version of an image failed."
+msgid "Selecting resized image failed"
+msgstr "Selecting resized image failed"
+
+msgctxt "Error message displayed when an image cannot be inserted at the current position."
+msgid "Could not insert image at the current position."
+msgstr "Could not insert image at the current position."
+
+msgctxt "Title of a notification displayed when an image cannot be inserted at the current position."
+msgid "Inserting image failed"
+msgstr "Inserting image failed"

+ 11 - 11
packages/ckeditor5-ckfinder/package.json

@@ -1,6 +1,6 @@
 {
   "name": "@ckeditor/ckeditor5-ckfinder",
-  "version": "23.0.0",
+  "version": "23.1.0",
   "description": "CKFinder integration for CKEditor 5.",
   "keywords": [
     "ckeditor",
@@ -10,18 +10,18 @@
     "ckeditor5-plugin"
   ],
   "dependencies": {
-    "@ckeditor/ckeditor5-adapter-ckfinder": "^23.0.0",
-    "@ckeditor/ckeditor5-core": "^23.0.0",
-    "@ckeditor/ckeditor5-image": "^23.0.0",
-    "@ckeditor/ckeditor5-link": "^23.0.0",
-    "@ckeditor/ckeditor5-ui": "^23.0.0"
+    "@ckeditor/ckeditor5-adapter-ckfinder": "^23.1.0",
+    "@ckeditor/ckeditor5-core": "^23.1.0",
+    "@ckeditor/ckeditor5-image": "^23.1.0",
+    "@ckeditor/ckeditor5-link": "^23.1.0",
+    "@ckeditor/ckeditor5-ui": "^23.1.0"
   },
   "devDependencies": {
-    "@ckeditor/ckeditor5-editor-classic": "^23.0.0",
-    "@ckeditor/ckeditor5-clipboard": "^23.0.0",
-    "@ckeditor/ckeditor5-engine": "^23.0.0",
-    "@ckeditor/ckeditor5-paragraph": "^23.0.0",
-    "@ckeditor/ckeditor5-utils": "^23.0.0"
+    "@ckeditor/ckeditor5-editor-classic": "^23.1.0",
+    "@ckeditor/ckeditor5-clipboard": "^23.1.0",
+    "@ckeditor/ckeditor5-engine": "^23.1.0",
+    "@ckeditor/ckeditor5-paragraph": "^23.1.0",
+    "@ckeditor/ckeditor5-utils": "^23.1.0"
   },
   "engines": {
     "node": ">=12.0.0",

+ 1 - 1
packages/ckeditor5-ckfinder/src/ckfinderui.js

@@ -48,7 +48,7 @@ export default class CKFinderUI extends Plugin {
 
 			button.on( 'execute', () => {
 				editor.execute( 'ckfinder' );
-				editor.editing.view.focus();
+				editor.focus();
 			} );
 
 			return button;

+ 0 - 0
packages/ckeditor5-clipboard/docs/_snippets/features/build-paste-source.html


+ 19 - 0
packages/ckeditor5-clipboard/docs/_snippets/features/build-paste-source.js

@@ -0,0 +1,19 @@
+/**
+ * @license Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
+ */
+
+/* globals window */
+
+import ClassicEditor from '@ckeditor/ckeditor5-build-classic/src/ckeditor';
+import Strikethrough from '@ckeditor/ckeditor5-basic-styles/src/strikethrough';
+import Underline from '@ckeditor/ckeditor5-basic-styles/src/underline';
+import Font from '@ckeditor/ckeditor5-font/src/font';
+
+ClassicEditor.builtinPlugins.push(
+	Strikethrough,
+	Underline,
+	Font
+);
+
+window.ClassicEditor = ClassicEditor;

+ 14 - 0
packages/ckeditor5-clipboard/docs/_snippets/features/paste-plain-text.html

@@ -0,0 +1,14 @@
+<div id="snippet-paste-plain-text">
+	<h2>On emphasis</h2>
+	<p>In typography, emphasis is the strengthening of words in a text with a font in a different style from the rest of the text, to highlight them. This may include text in <em>italics</em>, <strong>bold</strong>, <u>underlined</u> or <s>strikethrough</s> words or whole paragraphs.</p>
+	<h3>Italic type</h3>
+	<p><em>Italic type is a cursive font based on a stylized form of calligraphic handwriting. Owing to the influence from calligraphy, italics normally slant slightly to the right. One manual of English usage described italics as &quot;the print equivalent of underlining&quot;; in other words, underscore in a manuscript directs a typesetter to use italic.</em></p>
+	<p><em>Italics are a way to emphasize key points in a printed text, to identify many types of creative works, to cite foreign words or phrases, or, when quoting a speaker, a way to show which words they stressed.</em></p>
+	<h3>Bold type</h3>
+	<p><strong>A bold font weight makes the letters thicker than the surrounding text. It adds certain blackness to the type. Bold strongly stands out from the regular text, and is often used to highlight keywords important to the text content.</strong></p>
+	<p><strong>For example, printed dictionaries often use boldface for their keywords, and the names of entries can conventionally be marked in bold.</strong></p>
+	<h3>Underlined type</h3>
+	<p><u>Professional Western typesetting usually does not employ lines under letters for emphasis within running text because it is considered too distracting.</u></p>
+
+	<p><u>Underlining is, however, often used with typewriters, in handwriting, and with some non-alphabetic scripts. It is also used for secondary emphasis, i.e. marks added by the reader and not the author.</u></p>
+</div>

+ 48 - 0
packages/ckeditor5-clipboard/docs/_snippets/features/paste-plain-text.js

@@ -0,0 +1,48 @@
+/**
+ * @license Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
+ */
+
+/* globals ClassicEditor, console, window, document */
+
+import { CS_CONFIG } from '@ckeditor/ckeditor5-cloud-services/tests/_utils/cloud-services-config';
+
+ClassicEditor
+	.create( document.querySelector( '#snippet-paste-plain-text' ), {
+		toolbar: {
+			items: [
+				'heading',
+				'|',
+				'fontSize',
+				'fontFamily',
+				'fontColor',
+				'fontBackgroundColor',
+				'|',
+				'bold',
+				'italic',
+				'underline',
+				'strikethrough',
+				'|',
+				'undo',
+				'redo'
+			],
+			viewportTopOffset: window.getViewportTopOffsetConfig()
+		},
+		fontFamily: {
+			supportAllValues: true
+		},
+		fontSize: {
+			options: [ 10, 12, 14, 'default', 18, 20, 22 ],
+			supportAllValues: true
+		},
+		placeholder: 'Paste the content here to test the feature.',
+		cloudServices: CS_CONFIG
+	} )
+	.then( editor => {
+		window.editor = editor;
+		// Prevent showing a warning notification when user is pasting a content from MS Word or Google Docs.
+		window.preventPasteFromOfficeNotification = false;
+	} )
+	.catch( err => {
+		console.error( err.stack );
+	} );

+ 66 - 0
packages/ckeditor5-clipboard/docs/features/paste-plain-text.md

@@ -0,0 +1,66 @@
+---
+menu-title: Paste plain text
+category: features-pasting
+order: 30
+---
+
+{@snippet features/build-paste-source}
+
+# Pasting plain text
+
+The plain text pasting feature is implemented by the {@link module:clipboard/clipboard~PastePlainText} plugin which is a part of the {@link module:clipboard/clipboard~Clipboard} plugin.
+
+It detects the <kbd>Ctrl</kbd>/<kbd>Cmd</kbd> + <kbd>Shift</kbd> + <kbd>V</kbd> keystroke during the paste and causes the pasted text to inherit the styles of the content it was pasted into. In this sense, the feature can also be described as "pasting without formatting" &mdash; the source formatting of the pasted text gets replaced with the target formatting of the text it was pasted into.
+
+Pasting plain text with a double line break will turn the break into a paragraph. A single line break will instead be turned into a soft break upon pasting.
+
+## Demo
+
+Paste plain text between the styled paragraphs below using the <kbd>Ctrl</kbd>/<kbd>Cmd</kbd> + <kbd>Shift</kbd> + <kbd>V</kbd> to test the style inheritance. Paste without the <kbd>Shift</kbd> modifier to retain unstyled text. You can copy this very paragraph or one from the demo for convenience.
+
+{@snippet features/paste-plain-text}
+
+## Related features
+
+CKEditor 5 supports a wider range of paste features, including:
+* {@link features/paste-from-word Paste from Word} &ndash; Paste content from Microsoft Word and maintain the original structure and formatting.
+* {@link features/paste-from-google-docs Paste from Google Docs} &ndash; Paste content from Google Docs, maintaining the original formatting and structure.
+
+## Installation
+
+<info-box info>
+	This feature is required by the clipboard plugin and is enabled by default in all official builds. The installation instructions are for developers interested in building their own custom rich-text editor.
+</info-box>
+
+To add this feature to your rich-text editor, install the [`@ckeditor/ckeditor5-clipboard`](https://www.npmjs.com/package/@ckeditor/ckeditor5-clipboard) package:
+
+```
+npm install --save @ckeditor/ckeditor5-clipboard
+```
+
+Then add the {@link module:clipboard/clipboard~Clipboard `Clipboard`} plugin to your plugin list:
+
+```js
+import Clipboard from '@ckeditor/ckeditor5-clipboard/src/clipboard';
+
+ClassicEditor
+	.create( document.querySelector( '#editor' ), {
+		plugins: [ Clipboard, Bold, ... ]
+	} )
+	.then( ... )
+	.catch( ... );
+```
+
+The {@link module:clipboard/clipboard~PastePlainText `PastePlainText`} plugin will activate along with the clipboard plugin.
+
+## Support for other applications
+
+You can find more information regarding compatibility with other applications in [this ticket](https://github.com/ckeditor/ckeditor5/issues/1184#issuecomment-409828069).
+
+If you think that support for any of the applications needs improvements, please add 👍  and comments in the following issues:
+
+* [Support pasting from Excel](https://github.com/ckeditor/ckeditor5/issues/2513).
+* [Support pasting from Libre Office](https://github.com/ckeditor/ckeditor5/issues/2520).
+* [Support pasting from Pages](https://github.com/ckeditor/ckeditor5/issues/2527).
+
+Feel free to open a [new feature request](https://github.com/ckeditor/ckeditor5/issues/new/choose) for other similar applications, too!

+ 9 - 9
packages/ckeditor5-clipboard/package.json

@@ -1,6 +1,6 @@
 {
   "name": "@ckeditor/ckeditor5-clipboard",
-  "version": "23.0.0",
+  "version": "23.1.0",
   "description": "Clipboard integration for CKEditor 5.",
   "keywords": [
     "ckeditor",
@@ -10,16 +10,16 @@
     "ckeditor5-plugin"
   ],
   "dependencies": {
-    "@ckeditor/ckeditor5-core": "^23.0.0",
-    "@ckeditor/ckeditor5-engine": "^23.0.0",
-    "@ckeditor/ckeditor5-utils": "^23.0.0"
+    "@ckeditor/ckeditor5-core": "^23.1.0",
+    "@ckeditor/ckeditor5-engine": "^23.1.0",
+    "@ckeditor/ckeditor5-utils": "^23.1.0"
   },
   "devDependencies": {
-    "@ckeditor/ckeditor5-basic-styles": "^23.0.0",
-    "@ckeditor/ckeditor5-block-quote": "^23.0.0",
-    "@ckeditor/ckeditor5-editor-classic": "^23.0.0",
-    "@ckeditor/ckeditor5-link": "^23.0.0",
-    "@ckeditor/ckeditor5-paragraph": "^23.0.0"
+    "@ckeditor/ckeditor5-basic-styles": "^23.1.0",
+    "@ckeditor/ckeditor5-block-quote": "^23.1.0",
+    "@ckeditor/ckeditor5-editor-classic": "^23.1.0",
+    "@ckeditor/ckeditor5-link": "^23.1.0",
+    "@ckeditor/ckeditor5-paragraph": "^23.1.0"
   },
   "engines": {
     "node": ">=12.0.0",

+ 35 - 35
packages/ckeditor5-clipboard/src/clipboardobserver.js

@@ -24,7 +24,7 @@ import DataTransfer from './datatransfer';
  * * {@link module:engine/view/document~Document#event:cut}
  *
  * Note that this observer is not available by default (it is not added by the engine).
- * To make it available it needs to be added to {@link module:engine/view/document~Document} by
+ * To make it available, it needs to be added to {@link module:engine/view/document~Document} by
  * the {@link module:engine/view/view~View#addObserver `View#addObserver()`} method. You can also load the
  * {@link module:clipboard/clipboard~Clipboard} plugin which adds this observer automatically (because it uses it).
  *
@@ -100,111 +100,111 @@ function getDropViewRange( view, domEvent ) {
 }
 
 /**
- * Fired as a continuation of {@link #event:paste} and {@link #event:drop} events.
+ * Fired as a continuation of the {@link #event:paste} and {@link #event:drop} events.
  *
  * It is a part of the {@glink framework/guides/deep-dive/clipboard#input-pipeline "clipboard input pipeline"}.
  *
- * Fired with a `dataTransfer` which comes from the clipboard and which content should be processed
+ * Fired with a `dataTransfer` which comes from the clipboard and whose content should be processed
  * and inserted into the editor.
  *
- * Note that this event is not available by default. To make it available {@link module:clipboard/clipboardobserver~ClipboardObserver}
- * needs to be added to {@link module:engine/view/document~Document} by the {@link module:engine/view/view~View#addObserver} method.
- * It's done by the {@link module:clipboard/clipboard~Clipboard} feature. If it's not loaded, it must be done manually.
+ * Note that this event is not available by default. To make it available, {@link module:clipboard/clipboardobserver~ClipboardObserver}
+ * needs to be added to the {@link module:engine/view/document~Document} by the {@link module:engine/view/view~View#addObserver} method.
+ * This is done by the {@link module:clipboard/clipboard~Clipboard} feature. If it is not loaded, it must be done manually.
  *
  * @see module:clipboard/clipboardobserver~ClipboardObserver
  * @see module:clipboard/clipboard~Clipboard
  * @event module:engine/view/document~Document#event:clipboardInput
  * @param {Object} data Event data.
- * @param {module:clipboard/datatransfer~DataTransfer} data.dataTransfer Data transfer instance.
+ * @param {module:clipboard/datatransfer~DataTransfer} data.dataTransfer The data transfer instance.
  * @param {Array.<module:engine/view/range~Range>} data.targetRanges Ranges which are the target of the operation
  * (usually – into which the content should be inserted).
  * If clipboard input was triggered by a paste operation, then these are the selection ranges. If by a drop operation,
- * then it's the drop position (which can be different than the selection at the moment of drop).
+ * then it is the drop position (which can be different than the selection at the moment of drop).
  */
 
 /**
- * Fired when user drags content over one of the editables.
+ * Fired when the user drags the content over one of the editables.
  *
  * Introduced by {@link module:clipboard/clipboardobserver~ClipboardObserver}.
  *
- * Note that this event is not available by default. To make it available {@link module:clipboard/clipboardobserver~ClipboardObserver}
- * needs to be added to {@link module:engine/view/document~Document} by the {@link module:engine/view/view~View#addObserver} method.
- * It's done by the {@link module:clipboard/clipboard~Clipboard} feature. If it's not loaded, it must be done manually.
+ * Note that this event is not available by default. To make it available, {@link module:clipboard/clipboardobserver~ClipboardObserver}
+ * needs to be added to the {@link module:engine/view/document~Document} by the {@link module:engine/view/view~View#addObserver} method.
+ * This is done by the {@link module:clipboard/clipboard~Clipboard} feature. If it is not loaded, it must be done manually.
  *
  * @see module:engine/view/document~Document#event:clipboardInput
  * @event module:engine/view/document~Document#event:dragover
- * @param {module:clipboard/clipboardobserver~ClipboardEventData} data Event data.
+ * @param {module:clipboard/clipboardobserver~ClipboardEventData} data The event data.
  */
 
 /**
- * Fired when user dropped content into one of the editables.
+ * Fired when the user dropped the content into one of the editables.
  *
  * Introduced by {@link module:clipboard/clipboardobserver~ClipboardObserver}.
  *
- * Note that this event is not available by default. To make it available {@link module:clipboard/clipboardobserver~ClipboardObserver}
- * needs to be added to {@link module:engine/view/document~Document} by the {@link module:engine/view/view~View#addObserver} method.
- * It's done by the {@link module:clipboard/clipboard~Clipboard} feature. If it's not loaded, it must be done manually.
+ * Note that this event is not available by default. To make it available, {@link module:clipboard/clipboardobserver~ClipboardObserver}
+ * needs to be added to the {@link module:engine/view/document~Document} by the {@link module:engine/view/view~View#addObserver} method.
+ * This is done by the {@link module:clipboard/clipboard~Clipboard} feature. If it is not loaded, it must be done manually.
  *
  * @see module:engine/view/document~Document#event:clipboardInput
  * @event module:engine/view/document~Document#event:drop
- * @param {module:clipboard/clipboardobserver~ClipboardEventData} data Event data.
+ * @param {module:clipboard/clipboardobserver~ClipboardEventData} data The event data.
  * @param {module:engine/view/range~Range} dropRange The position into which the content is dropped.
  */
 
 /**
- * Fired when user pasted content into one of the editables.
+ * Fired when the user pasted the content into one of the editables.
  *
  * Introduced by {@link module:clipboard/clipboardobserver~ClipboardObserver}.
  *
- * Note that this event is not available by default. To make it available {@link module:clipboard/clipboardobserver~ClipboardObserver}
- * needs to be added to {@link module:engine/view/document~Document} by the {@link module:engine/view/view~View#addObserver} method.
- * It's done by the {@link module:clipboard/clipboard~Clipboard} feature. If it's not loaded, it must be done manually.
+ * Note that this event is not available by default. To make it available, {@link module:clipboard/clipboardobserver~ClipboardObserver}
+ * needs to be added to the {@link module:engine/view/document~Document} by the {@link module:engine/view/view~View#addObserver} method.
+ * This is done by the {@link module:clipboard/clipboard~Clipboard} feature. If it is not loaded, it must be done manually.
  *
  * @see module:engine/view/document~Document#event:clipboardInput
  * @event module:engine/view/document~Document#event:paste
- * @param {module:clipboard/clipboardobserver~ClipboardEventData} data Event data.
+ * @param {module:clipboard/clipboardobserver~ClipboardEventData} data The event data.
  */
 
 /**
- * Fired when user copied content from one of the editables.
+ * Fired when the user copied the content from one of the editables.
  *
  * Introduced by {@link module:clipboard/clipboardobserver~ClipboardObserver}.
  *
- * Note that this event is not available by default. To make it available {@link module:clipboard/clipboardobserver~ClipboardObserver}
- * needs to be added to {@link module:engine/view/document~Document} by the {@link module:engine/view/view~View#addObserver} method.
- * It's done by the {@link module:clipboard/clipboard~Clipboard} feature. If it's not loaded, it must be done manually.
+ * Note that this event is not available by default. To make it available, {@link module:clipboard/clipboardobserver~ClipboardObserver}
+ * needs to be added to the {@link module:engine/view/document~Document} by the {@link module:engine/view/view~View#addObserver} method.
+ * This is done by the {@link module:clipboard/clipboard~Clipboard} feature. If it is not loaded, it must be done manually.
  *
  * @see module:clipboard/clipboardobserver~ClipboardObserver
  * @event module:engine/view/document~Document#event:copy
- * @param {module:clipboard/clipboardobserver~ClipboardEventData} data Event data.
+ * @param {module:clipboard/clipboardobserver~ClipboardEventData} data The event data.
  */
 
 /**
- * Fired when user cut content from one of the editables.
+ * Fired when the user cut the content from one of the editables.
  *
  * Introduced by {@link module:clipboard/clipboardobserver~ClipboardObserver}.
  *
- * Note that this event is not available by default. To make it available {@link module:clipboard/clipboardobserver~ClipboardObserver}
- * needs to be added to {@link module:engine/view/document~Document} by the {@link module:engine/view/view~View#addObserver} method.
- * It's done by the {@link module:clipboard/clipboard~Clipboard} feature. If it's not loaded, it must be done manually.
+ * Note that this event is not available by default. To make it available, {@link module:clipboard/clipboardobserver~ClipboardObserver}
+ * needs to be added to the {@link module:engine/view/document~Document} by the {@link module:engine/view/view~View#addObserver} method.
+ * This is done by the {@link module:clipboard/clipboard~Clipboard} feature. If it is not loaded, it must be done manually.
  *
  * @see module:clipboard/clipboardobserver~ClipboardObserver
  * @event module:engine/view/document~Document#event:cut
- * @param {module:clipboard/clipboardobserver~ClipboardEventData} data Event data.
+ * @param {module:clipboard/clipboardobserver~ClipboardEventData} data The event data.
  */
 
 /**
  * The value of the {@link module:engine/view/document~Document#event:paste},
  * {@link module:engine/view/document~Document#event:copy} and {@link module:engine/view/document~Document#event:cut} events.
  *
- * In order to access clipboard data use `dataTransfer` property.
+ * In order to access the clipboard data, use the `dataTransfer` property.
  *
  * @class module:clipboard/clipboardobserver~ClipboardEventData
  * @extends module:engine/view/observer/domeventdata~DomEventData
  */
 
 /**
- * Data transfer instance.
+ * The data transfer instance.
  *
  * @readonly
  * @member {module:clipboard/datatransfer~DataTransfer} module:clipboard/clipboardobserver~ClipboardEventData#dataTransfer

+ 1 - 1
packages/ckeditor5-clipboard/src/pasteplaintext.js

@@ -14,7 +14,7 @@ import ClipboardObserver from './clipboardobserver';
 /**
  * The plugin detects user intentions for pasting plain text.
  *
- * For example, it detects <kbd>ctrl/cmd</kbd> + <kbd>shift</kbd> + <kbd>ctrl/v</kbd> keystroke.
+ * For example, it detects <kbd>Ctrl/Cmd</kbd> + <kbd>Shift</kbd> + <kbd>V</kbd> keystroke.
  *
  * @extends module:core/plugin~Plugin
  */

+ 4 - 4
packages/ckeditor5-cloud-services/package.json

@@ -1,6 +1,6 @@
 {
   "name": "@ckeditor/ckeditor5-cloud-services",
-  "version": "23.0.0",
+  "version": "23.1.0",
   "description": "CKEditor 5's Cloud Services integration layer.",
   "keywords": [
     "ckeditor",
@@ -9,11 +9,11 @@
     "ckeditor5-lib"
   ],
   "dependencies": {
-    "@ckeditor/ckeditor-cloud-services-core": "^23.0.0",
-    "@ckeditor/ckeditor5-core": "^23.0.0"
+    "@ckeditor/ckeditor-cloud-services-core": "^23.1.0",
+    "@ckeditor/ckeditor5-core": "^23.1.0"
   },
   "devDependencies": {
-    "@ckeditor/ckeditor5-editor-classic": "^23.0.0"
+    "@ckeditor/ckeditor5-editor-classic": "^23.1.0"
   },
   "engines": {
     "node": ">=12.0.0",

+ 6 - 6
packages/ckeditor5-code-block/docs/_snippets/features/code-block-custom-languages.html

@@ -1,6 +1,6 @@
-<div id="snippet-custom-languages">
-	<p>Put some text in the <code>&lt;body&gt;</code>:</p>
-<pre><code class="language-html"><body>Hello world!</body></code></pre>
-	<p>Then set the font color:</p>
-<pre><code class="language-css">body { color: red }</code></pre>
-</div>
+<textarea id="snippet-custom-languages">
+	&lt;p>Put some text in the &lt;code>&lt;body&gt;&lt;/code>:&lt;/p>
+&lt;pre>&lt;code class="language-html">&lt;body>Hello world!&lt;/body>&lt;/code>&lt;/pre>
+	&lt;p>Then set the font color:&lt;/p>
+&lt;pre>&lt;code class="language-css">body { color: red }&lt;/code>&lt;/pre>
+</textarea>

+ 7 - 0
packages/ckeditor5-code-block/docs/features/code-blocks.md

@@ -16,6 +16,13 @@ The {@link module:code-block/codeblock~CodeBlock} feature allows inserting and e
 
 {@snippet features/code-block}
 
+## Related features
+
+Here are some CKEditor 5 features that you may find helpfully similar:
+* {@link features/basic-styles Basic text styles} &ndash; Use the `code` formatting for short inline code chunks.
+* {@link features/block-quote Block quote} &ndash; Include block quotations or pull quotes in your rich-text content.
+* {@link features/indent Block indentation} &ndash; Set indentation for text blocks such as paragraphs or lists.
+
 ## Configuring code block languages
 
 Each code block can be assigned a programming language. The language of the code block is represented as a CSS class of the `<code>` element, both when editing and in the editor data:

+ 25 - 0
packages/ckeditor5-code-block/lang/translations/fa.po

@@ -0,0 +1,25 @@
+# Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved.
+#
+#                                     !!! IMPORTANT !!!
+#
+#         Before you edit this file, please keep in mind that contributing to the project
+#                translations is possible ONLY via the Transifex online service.
+#
+#         To submit your translations, visit https://www.transifex.com/ckeditor/ckeditor5.
+#
+#                   To learn more, check out the official contributor's guide:
+#     https://ckeditor.com/docs/ckeditor5/latest/framework/guides/contributing/contributing.html
+#
+msgid ""
+msgstr ""
+"Language-Team: Persian (https://www.transifex.com/ckeditor/teams/11143/fa/)\n"
+"Language: fa\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+
+msgctxt "A label of the button that allows inserting a new code block into the editor content."
+msgid "Insert code block"
+msgstr "درج بلوک کد"
+
+msgctxt "A language of the code block in the editor content when no specific programming language is associated with it."
+msgid "Plain text"
+msgstr "متن ساده"

+ 25 - 0
packages/ckeditor5-code-block/lang/translations/hi.po

@@ -0,0 +1,25 @@
+# Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved.
+#
+#                                     !!! IMPORTANT !!!
+#
+#         Before you edit this file, please keep in mind that contributing to the project
+#                translations is possible ONLY via the Transifex online service.
+#
+#         To submit your translations, visit https://www.transifex.com/ckeditor/ckeditor5.
+#
+#                   To learn more, check out the official contributor's guide:
+#     https://ckeditor.com/docs/ckeditor5/latest/framework/guides/contributing/contributing.html
+#
+msgid ""
+msgstr ""
+"Language-Team: Hindi (https://www.transifex.com/ckeditor/teams/11143/hi/)\n"
+"Language: hi\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+msgctxt "A label of the button that allows inserting a new code block into the editor content."
+msgid "Insert code block"
+msgstr "Insert code block"
+
+msgctxt "A language of the code block in the editor content when no specific programming language is associated with it."
+msgid "Plain text"
+msgstr "Plain text"

+ 15 - 15
packages/ckeditor5-code-block/package.json

@@ -1,6 +1,6 @@
 {
   "name": "@ckeditor/ckeditor5-code-block",
-  "version": "23.0.0",
+  "version": "23.1.0",
   "description": "Code Block feature for CKEditor 5.",
   "keywords": [
     "ckeditor",
@@ -10,23 +10,23 @@
     "ckeditor5-plugin"
   ],
   "dependencies": {
-    "@ckeditor/ckeditor5-core": "^23.0.0",
-    "@ckeditor/ckeditor5-enter": "^23.0.0",
-    "@ckeditor/ckeditor5-ui": "^23.0.0",
-    "@ckeditor/ckeditor5-utils": "^23.0.0",
+    "@ckeditor/ckeditor5-core": "^23.1.0",
+    "@ckeditor/ckeditor5-enter": "^23.1.0",
+    "@ckeditor/ckeditor5-ui": "^23.1.0",
+    "@ckeditor/ckeditor5-utils": "^23.1.0",
     "lodash-es": "^4.17.15"
   },
   "devDependencies": {
-    "@ckeditor/ckeditor5-alignment": "^23.0.0",
-    "@ckeditor/ckeditor5-autoformat": "^23.0.0",
-    "@ckeditor/ckeditor5-basic-styles": "^23.0.0",
-    "@ckeditor/ckeditor5-block-quote": "^23.0.0",
-    "@ckeditor/ckeditor5-editor-classic": "^23.0.0",
-    "@ckeditor/ckeditor5-engine": "^23.0.0",
-    "@ckeditor/ckeditor5-indent": "^23.0.0",
-    "@ckeditor/ckeditor5-markdown-gfm": "^23.0.0",
-    "@ckeditor/ckeditor5-paragraph": "^23.0.0",
-    "@ckeditor/ckeditor5-undo": "^23.0.0"
+    "@ckeditor/ckeditor5-alignment": "^23.1.0",
+    "@ckeditor/ckeditor5-autoformat": "^23.1.0",
+    "@ckeditor/ckeditor5-basic-styles": "^23.1.0",
+    "@ckeditor/ckeditor5-block-quote": "^23.1.0",
+    "@ckeditor/ckeditor5-editor-classic": "^23.1.0",
+    "@ckeditor/ckeditor5-engine": "^23.1.0",
+    "@ckeditor/ckeditor5-indent": "^23.1.0",
+    "@ckeditor/ckeditor5-markdown-gfm": "^23.1.0",
+    "@ckeditor/ckeditor5-paragraph": "^23.1.0",
+    "@ckeditor/ckeditor5-undo": "^23.1.0"
   },
   "engines": {
     "node": ">=12.0.0",

+ 2 - 2
packages/ckeditor5-code-block/src/codeblockui.js

@@ -54,7 +54,7 @@ export default class CodeBlockUI extends Plugin {
 					language: defaultLanguageDefinition.language
 				} );
 
-				editor.editing.view.focus();
+				editor.focus();
 			} );
 
 			dropdownView.on( 'execute', evt => {
@@ -63,7 +63,7 @@ export default class CodeBlockUI extends Plugin {
 					forceValue: true
 				} );
 
-				editor.editing.view.focus();
+				editor.focus();
 			} );
 
 			dropdownView.class = 'ck-code-block-dropdown';

Unele fișiere nu au fost afișate deoarece prea multe fișiere au fost modificate în acest diff