浏览代码

Merge branch 'master' into i/1098-accessible-input-labels

Piotrek Koszuliński 5 年之前
父节点
当前提交
99021363ac
共有 100 个文件被更改,包括 1644 次插入591 次删除
  1. 139 0
      CHANGELOG.md
  2. 12 0
      README.md
  3. 96 9
      docs/builds/guides/frameworks/react.md
  4. 77 72
      docs/builds/guides/integration/content-styles.md
  5. 0 2
      docs/framework/guides/contributing/development-environment.md
  6. 56 54
      package.json
  7. 2 2
      packages/ckeditor-cloud-services-core/package.json
  8. 21 0
      packages/ckeditor5-adapter-ckfinder/lang/translations/hi.po
  9. 1 1
      packages/ckeditor5-adapter-ckfinder/lang/translations/ug.po
  10. 13 13
      packages/ckeditor5-adapter-ckfinder/package.json
  11. 1 1
      packages/ckeditor5-alignment/lang/translations/fa.po
  12. 41 0
      packages/ckeditor5-alignment/lang/translations/hi.po
  13. 13 13
      packages/ckeditor5-alignment/package.json
  14. 14 14
      packages/ckeditor5-autoformat/package.json
  15. 21 0
      packages/ckeditor5-autosave/lang/translations/hi.po
  16. 5 5
      packages/ckeditor5-autosave/package.json
  17. 6 6
      packages/ckeditor5-basic-styles/docs/_snippets/features/basic-styles.html
  18. 45 0
      packages/ckeditor5-basic-styles/lang/translations/hi.po
  19. 10 10
      packages/ckeditor5-basic-styles/package.json
  20. 21 0
      packages/ckeditor5-block-quote/lang/translations/hi.po
  21. 14 14
      packages/ckeditor5-block-quote/package.json
  22. 0 0
      packages/ckeditor5-build-balloon-block/build/ckeditor.js
  23. 0 0
      packages/ckeditor5-build-balloon-block/build/ckeditor.js.map
  24. 0 0
      packages/ckeditor5-build-balloon-block/build/translations/fa.js
  25. 0 0
      packages/ckeditor5-build-balloon-block/build/translations/fr.js
  26. 0 0
      packages/ckeditor5-build-balloon-block/build/translations/ug.js
  27. 0 0
      packages/ckeditor5-build-balloon-block/build/translations/zh-cn.js
  28. 22 22
      packages/ckeditor5-build-balloon-block/package.json
  29. 0 0
      packages/ckeditor5-build-balloon/build/ckeditor.js
  30. 0 0
      packages/ckeditor5-build-balloon/build/ckeditor.js.map
  31. 0 0
      packages/ckeditor5-build-balloon/build/translations/fa.js
  32. 0 0
      packages/ckeditor5-build-balloon/build/translations/fr.js
  33. 0 0
      packages/ckeditor5-build-balloon/build/translations/ug.js
  34. 0 0
      packages/ckeditor5-build-balloon/build/translations/zh-cn.js
  35. 21 21
      packages/ckeditor5-build-balloon/package.json
  36. 0 0
      packages/ckeditor5-build-classic/build/ckeditor.js
  37. 0 0
      packages/ckeditor5-build-classic/build/ckeditor.js.map
  38. 0 0
      packages/ckeditor5-build-classic/build/translations/fa.js
  39. 0 0
      packages/ckeditor5-build-classic/build/translations/fr.js
  40. 0 0
      packages/ckeditor5-build-classic/build/translations/ug.js
  41. 0 0
      packages/ckeditor5-build-classic/build/translations/zh-cn.js
  42. 21 21
      packages/ckeditor5-build-classic/package.json
  43. 0 0
      packages/ckeditor5-build-decoupled-document/build/ckeditor.js
  44. 0 0
      packages/ckeditor5-build-decoupled-document/build/ckeditor.js.map
  45. 0 0
      packages/ckeditor5-build-decoupled-document/build/translations/fa.js
  46. 0 0
      packages/ckeditor5-build-decoupled-document/build/translations/fr.js
  47. 0 0
      packages/ckeditor5-build-decoupled-document/build/translations/it.js
  48. 0 0
      packages/ckeditor5-build-decoupled-document/build/translations/ug.js
  49. 0 0
      packages/ckeditor5-build-decoupled-document/build/translations/zh-cn.js
  50. 24 24
      packages/ckeditor5-build-decoupled-document/package.json
  51. 0 0
      packages/ckeditor5-build-inline/build/ckeditor.js
  52. 0 0
      packages/ckeditor5-build-inline/build/ckeditor.js.map
  53. 0 0
      packages/ckeditor5-build-inline/build/translations/fa.js
  54. 0 0
      packages/ckeditor5-build-inline/build/translations/fr.js
  55. 0 0
      packages/ckeditor5-build-inline/build/translations/ug.js
  56. 0 0
      packages/ckeditor5-build-inline/build/translations/zh-cn.js
  57. 21 21
      packages/ckeditor5-build-inline/package.json
  58. 37 0
      packages/ckeditor5-ckfinder/lang/translations/hi.po
  59. 11 11
      packages/ckeditor5-ckfinder/package.json
  60. 9 9
      packages/ckeditor5-clipboard/package.json
  61. 4 4
      packages/ckeditor5-cloud-services/package.json
  62. 6 6
      packages/ckeditor5-code-block/docs/_snippets/features/code-block-custom-languages.html
  63. 25 0
      packages/ckeditor5-code-block/lang/translations/fa.po
  64. 25 0
      packages/ckeditor5-code-block/lang/translations/hi.po
  65. 15 15
      packages/ckeditor5-code-block/package.json
  66. 29 0
      packages/ckeditor5-core/lang/translations/hi.po
  67. 17 17
      packages/ckeditor5-core/package.json
  68. 10 10
      packages/ckeditor5-easy-image/package.json
  69. 11 11
      packages/ckeditor5-editor-balloon/package.json
  70. 11 11
      packages/ckeditor5-editor-classic/package.json
  71. 11 11
      packages/ckeditor5-editor-decoupled/package.json
  72. 11 11
      packages/ckeditor5-editor-inline/package.json
  73. 20 18
      packages/ckeditor5-engine/package.json
  74. 3 0
      packages/ckeditor5-engine/src/conversion/downcastdispatcher.js
  75. 22 0
      packages/ckeditor5-engine/tests/common.js
  76. 49 0
      packages/ckeditor5-engine/tests/conversion/downcasthelpers.js
  77. 18 13
      packages/ckeditor5-engine/tests/manual/tickets/4600/1.html
  78. 21 30
      packages/ckeditor5-engine/tests/manual/tickets/4600/1.js
  79. 44 13
      packages/ckeditor5-engine/tests/manual/tickets/4600/1.md
  80. 3 3
      packages/ckeditor5-engine/tests/view/observer/domeventobserver.js
  81. 11 11
      packages/ckeditor5-enter/package.json
  82. 9 9
      packages/ckeditor5-essentials/package.json
  83. 57 0
      packages/ckeditor5-font/lang/translations/hi.po
  84. 8 8
      packages/ckeditor5-font/package.json
  85. 0 2
      packages/ckeditor5-heading/docs/_snippets/features/title.html
  86. 1 1
      packages/ckeditor5-heading/docs/features/title.md
  87. 2 2
      packages/ckeditor5-heading/lang/translations/fa.po
  88. 61 0
      packages/ckeditor5-heading/lang/translations/hi.po
  89. 16 16
      packages/ckeditor5-heading/package.json
  90. 53 0
      packages/ckeditor5-highlight/lang/translations/hi.po
  91. 13 13
      packages/ckeditor5-highlight/package.json
  92. 21 0
      packages/ckeditor5-horizontal-line/lang/translations/fa.po
  93. 21 0
      packages/ckeditor5-horizontal-line/lang/translations/hi.po
  94. 11 11
      packages/ckeditor5-horizontal-line/package.json
  95. 4 0
      packages/ckeditor5-html-embed/CHANGELOG.md
  96. 4 0
      packages/ckeditor5-html-embed/CONTRIBUTING.md
  97. 17 0
      packages/ckeditor5-html-embed/LICENSE.md
  98. 20 0
      packages/ckeditor5-html-embed/README.md
  99. 17 0
      packages/ckeditor5-html-embed/docs/_snippets/features/html-embed.html
  100. 169 0
      packages/ckeditor5-html-embed/docs/_snippets/features/html-embed.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>

+ 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
 

+ 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;

+ 0 - 2
docs/framework/guides/contributing/development-environment.md

@@ -109,8 +109,6 @@ This task accepts the following arguments:
 * `--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
 ```

+ 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",

+ 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",

+ 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>

+ 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",

+ 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",

文件差异内容过多而无法显示
+ 0 - 0
packages/ckeditor5-build-balloon-block/build/ckeditor.js


文件差异内容过多而无法显示
+ 0 - 0
packages/ckeditor5-build-balloon-block/build/ckeditor.js.map


文件差异内容过多而无法显示
+ 0 - 0
packages/ckeditor5-build-balloon-block/build/translations/fa.js


文件差异内容过多而无法显示
+ 0 - 0
packages/ckeditor5-build-balloon-block/build/translations/fr.js


文件差异内容过多而无法显示
+ 0 - 0
packages/ckeditor5-build-balloon-block/build/translations/ug.js


文件差异内容过多而无法显示
+ 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",

文件差异内容过多而无法显示
+ 0 - 0
packages/ckeditor5-build-balloon/build/ckeditor.js


文件差异内容过多而无法显示
+ 0 - 0
packages/ckeditor5-build-balloon/build/ckeditor.js.map


文件差异内容过多而无法显示
+ 0 - 0
packages/ckeditor5-build-balloon/build/translations/fa.js


文件差异内容过多而无法显示
+ 0 - 0
packages/ckeditor5-build-balloon/build/translations/fr.js


文件差异内容过多而无法显示
+ 0 - 0
packages/ckeditor5-build-balloon/build/translations/ug.js


文件差异内容过多而无法显示
+ 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",

文件差异内容过多而无法显示
+ 0 - 0
packages/ckeditor5-build-classic/build/ckeditor.js


文件差异内容过多而无法显示
+ 0 - 0
packages/ckeditor5-build-classic/build/ckeditor.js.map


文件差异内容过多而无法显示
+ 0 - 0
packages/ckeditor5-build-classic/build/translations/fa.js


文件差异内容过多而无法显示
+ 0 - 0
packages/ckeditor5-build-classic/build/translations/fr.js


文件差异内容过多而无法显示
+ 0 - 0
packages/ckeditor5-build-classic/build/translations/ug.js


文件差异内容过多而无法显示
+ 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",

文件差异内容过多而无法显示
+ 0 - 0
packages/ckeditor5-build-decoupled-document/build/ckeditor.js


文件差异内容过多而无法显示
+ 0 - 0
packages/ckeditor5-build-decoupled-document/build/ckeditor.js.map


文件差异内容过多而无法显示
+ 0 - 0
packages/ckeditor5-build-decoupled-document/build/translations/fa.js


文件差异内容过多而无法显示
+ 0 - 0
packages/ckeditor5-build-decoupled-document/build/translations/fr.js


文件差异内容过多而无法显示
+ 0 - 0
packages/ckeditor5-build-decoupled-document/build/translations/it.js


文件差异内容过多而无法显示
+ 0 - 0
packages/ckeditor5-build-decoupled-document/build/translations/ug.js


文件差异内容过多而无法显示
+ 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",

文件差异内容过多而无法显示
+ 0 - 0
packages/ckeditor5-build-inline/build/ckeditor.js


文件差异内容过多而无法显示
+ 0 - 0
packages/ckeditor5-build-inline/build/ckeditor.js.map


文件差异内容过多而无法显示
+ 0 - 0
packages/ckeditor5-build-inline/build/translations/fa.js


文件差异内容过多而无法显示
+ 0 - 0
packages/ckeditor5-build-inline/build/translations/fr.js


文件差异内容过多而无法显示
+ 0 - 0
packages/ckeditor5-build-inline/build/translations/ug.js


文件差异内容过多而无法显示
+ 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",

+ 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",

+ 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>

+ 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",

+ 29 - 0
packages/ckeditor5-core/lang/translations/hi.po

@@ -0,0 +1,29 @@
+# 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 "Label for the Save button."
+msgid "Save"
+msgstr "Save"
+
+msgctxt "Label for the Cancel button."
+msgid "Cancel"
+msgstr "Cancel"
+
+msgctxt "The label used by a button next to the color palette in the color picker that removes the color (resets it to an empty value, example usages in font color or table properties)."
+msgid "Remove color"
+msgstr "Remove color"

+ 17 - 17
packages/ckeditor5-core/package.json

@@ -1,6 +1,6 @@
 {
   "name": "@ckeditor/ckeditor5-core",
-  "version": "23.0.0",
+  "version": "23.1.0",
   "description": "The core architecture of CKEditor 5 – the best browser-based rich text editor.",
   "keywords": [
     "ckeditor5-lib",
@@ -21,25 +21,25 @@
     "framework"
   ],
   "dependencies": {
-    "@ckeditor/ckeditor5-engine": "^23.0.0",
-    "@ckeditor/ckeditor5-utils": "^23.0.0",
+    "@ckeditor/ckeditor5-engine": "^23.1.0",
+    "@ckeditor/ckeditor5-utils": "^23.1.0",
     "lodash-es": "^4.17.15"
   },
   "devDependencies": {
-    "@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-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-table": "^23.0.0",
-    "@ckeditor/ckeditor5-ui": "^23.0.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-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-table": "^23.1.0",
+    "@ckeditor/ckeditor5-ui": "^23.1.0"
   },
   "engines": {
     "node": ">=12.0.0",

+ 10 - 10
packages/ckeditor5-easy-image/package.json

@@ -1,6 +1,6 @@
 {
   "name": "@ckeditor/ckeditor5-easy-image",
-  "version": "23.0.0",
+  "version": "23.1.0",
   "description": "Easy Image feature for CKEditor 5.",
   "keywords": [
     "ckeditor",
@@ -10,17 +10,17 @@
     "ckeditor5-plugin"
   ],
   "dependencies": {
-    "@ckeditor/ckeditor-cloud-services-core": "^23.0.0",
-    "@ckeditor/ckeditor5-cloud-services": "^23.0.0",
-    "@ckeditor/ckeditor5-core": "^23.0.0",
-    "@ckeditor/ckeditor5-image": "^23.0.0",
-    "@ckeditor/ckeditor5-upload": "^23.0.0"
+    "@ckeditor/ckeditor-cloud-services-core": "^23.1.0",
+    "@ckeditor/ckeditor5-cloud-services": "^23.1.0",
+    "@ckeditor/ckeditor5-core": "^23.1.0",
+    "@ckeditor/ckeditor5-image": "^23.1.0",
+    "@ckeditor/ckeditor5-upload": "^23.1.0"
   },
   "devDependencies": {
-    "@ckeditor/ckeditor5-clipboard": "^23.0.0",
-    "@ckeditor/ckeditor5-editor-classic": "^23.0.0",
-    "@ckeditor/ckeditor5-paragraph": "^23.0.0",
-    "@ckeditor/ckeditor5-utils": "^23.0.0"
+    "@ckeditor/ckeditor5-clipboard": "^23.1.0",
+    "@ckeditor/ckeditor5-editor-classic": "^23.1.0",
+    "@ckeditor/ckeditor5-paragraph": "^23.1.0",
+    "@ckeditor/ckeditor5-utils": "^23.1.0"
   },
   "engines": {
     "node": ">=12.0.0",

+ 11 - 11
packages/ckeditor5-editor-balloon/package.json

@@ -1,6 +1,6 @@
 {
   "name": "@ckeditor/ckeditor5-editor-balloon",
-  "version": "23.0.0",
+  "version": "23.1.0",
   "description": "Balloon editor implementation for CKEditor 5.",
   "keywords": [
     "ckeditor",
@@ -9,19 +9,19 @@
     "ckeditor5-editor"
   ],
   "dependencies": {
-    "@ckeditor/ckeditor5-core": "^23.0.0",
-    "@ckeditor/ckeditor5-engine": "^23.0.0",
-    "@ckeditor/ckeditor5-ui": "^23.0.0",
-    "@ckeditor/ckeditor5-utils": "^23.0.0",
+    "@ckeditor/ckeditor5-core": "^23.1.0",
+    "@ckeditor/ckeditor5-engine": "^23.1.0",
+    "@ckeditor/ckeditor5-ui": "^23.1.0",
+    "@ckeditor/ckeditor5-utils": "^23.1.0",
     "lodash-es": "^4.17.15"
   },
   "devDependencies": {
-    "@ckeditor/ckeditor5-basic-styles": "^23.0.0",
-    "@ckeditor/ckeditor5-enter": "^23.0.0",
-    "@ckeditor/ckeditor5-heading": "^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-enter": "^23.1.0",
+    "@ckeditor/ckeditor5-heading": "^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",

+ 11 - 11
packages/ckeditor5-editor-classic/package.json

@@ -1,6 +1,6 @@
 {
   "name": "@ckeditor/ckeditor5-editor-classic",
-  "version": "23.0.0",
+  "version": "23.1.0",
   "description": "Classic editor implementation for CKEditor 5.",
   "keywords": [
     "ckeditor",
@@ -9,19 +9,19 @@
     "ckeditor5-editor"
   ],
   "dependencies": {
-    "@ckeditor/ckeditor5-core": "^23.0.0",
-    "@ckeditor/ckeditor5-engine": "^23.0.0",
-    "@ckeditor/ckeditor5-ui": "^23.0.0",
-    "@ckeditor/ckeditor5-utils": "^23.0.0",
+    "@ckeditor/ckeditor5-core": "^23.1.0",
+    "@ckeditor/ckeditor5-engine": "^23.1.0",
+    "@ckeditor/ckeditor5-ui": "^23.1.0",
+    "@ckeditor/ckeditor5-utils": "^23.1.0",
     "lodash-es": "^4.17.15"
   },
   "devDependencies": {
-    "@ckeditor/ckeditor5-basic-styles": "^23.0.0",
-    "@ckeditor/ckeditor5-enter": "^23.0.0",
-    "@ckeditor/ckeditor5-heading": "^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-enter": "^23.1.0",
+    "@ckeditor/ckeditor5-heading": "^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",

+ 11 - 11
packages/ckeditor5-editor-decoupled/package.json

@@ -1,6 +1,6 @@
 {
   "name": "@ckeditor/ckeditor5-editor-decoupled",
-  "version": "23.0.0",
+  "version": "23.1.0",
   "description": "Decoupled editor implementation for CKEditor 5.",
   "keywords": [
     "ckeditor",
@@ -9,19 +9,19 @@
     "ckeditor5-editor"
   ],
   "dependencies": {
-    "@ckeditor/ckeditor5-core": "^23.0.0",
-    "@ckeditor/ckeditor5-engine": "^23.0.0",
-    "@ckeditor/ckeditor5-ui": "^23.0.0",
-    "@ckeditor/ckeditor5-utils": "^23.0.0",
+    "@ckeditor/ckeditor5-core": "^23.1.0",
+    "@ckeditor/ckeditor5-engine": "^23.1.0",
+    "@ckeditor/ckeditor5-ui": "^23.1.0",
+    "@ckeditor/ckeditor5-utils": "^23.1.0",
     "lodash-es": "^4.17.15"
   },
   "devDependencies": {
-    "@ckeditor/ckeditor5-basic-styles": "^23.0.0",
-    "@ckeditor/ckeditor5-enter": "^23.0.0",
-    "@ckeditor/ckeditor5-heading": "^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-enter": "^23.1.0",
+    "@ckeditor/ckeditor5-heading": "^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",

+ 11 - 11
packages/ckeditor5-editor-inline/package.json

@@ -1,6 +1,6 @@
 {
   "name": "@ckeditor/ckeditor5-editor-inline",
-  "version": "23.0.0",
+  "version": "23.1.0",
   "description": "Inline editor implementation for CKEditor 5.",
   "keywords": [
     "ckeditor",
@@ -9,19 +9,19 @@
     "ckeditor5-editor"
   ],
   "dependencies": {
-    "@ckeditor/ckeditor5-core": "^23.0.0",
-    "@ckeditor/ckeditor5-engine": "^23.0.0",
-    "@ckeditor/ckeditor5-ui": "^23.0.0",
-    "@ckeditor/ckeditor5-utils": "^23.0.0",
+    "@ckeditor/ckeditor5-core": "^23.1.0",
+    "@ckeditor/ckeditor5-engine": "^23.1.0",
+    "@ckeditor/ckeditor5-ui": "^23.1.0",
+    "@ckeditor/ckeditor5-utils": "^23.1.0",
     "lodash-es": "^4.17.15"
   },
   "devDependencies": {
-    "@ckeditor/ckeditor5-basic-styles": "^23.0.0",
-    "@ckeditor/ckeditor5-enter": "^23.0.0",
-    "@ckeditor/ckeditor5-heading": "^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-enter": "^23.1.0",
+    "@ckeditor/ckeditor5-heading": "^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",

+ 20 - 18
packages/ckeditor5-engine/package.json

@@ -1,6 +1,6 @@
 {
   "name": "@ckeditor/ckeditor5-engine",
-  "version": "23.0.0",
+  "version": "23.1.0",
   "description": "The editing engine of CKEditor 5 – the best browser-based rich text editor.",
   "keywords": [
     "wysiwyg",
@@ -21,26 +21,28 @@
     "ckeditor 5"
   ],
   "dependencies": {
-    "@ckeditor/ckeditor5-utils": "^23.0.0",
+    "@ckeditor/ckeditor5-utils": "^23.1.0",
     "lodash-es": "^4.17.15"
   },
   "devDependencies": {
-    "@ckeditor/ckeditor5-basic-styles": "^23.0.0",
-    "@ckeditor/ckeditor5-block-quote": "^23.0.0",
-    "@ckeditor/ckeditor5-core": "^23.0.0",
-    "@ckeditor/ckeditor5-editor-classic": "^23.0.0",
-    "@ckeditor/ckeditor5-enter": "^23.0.0",
-    "@ckeditor/ckeditor5-essentials": "^23.0.0",
-    "@ckeditor/ckeditor5-heading": "^23.0.0",
-    "@ckeditor/ckeditor5-link": "^23.0.0",
-    "@ckeditor/ckeditor5-list": "^23.0.0",
-    "@ckeditor/ckeditor5-paragraph": "^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-widget": "^23.0.0"
+    "@ckeditor/ckeditor5-basic-styles": "^23.1.0",
+    "@ckeditor/ckeditor5-block-quote": "^23.1.0",
+    "@ckeditor/ckeditor5-clipboard": "^23.1.0",
+    "@ckeditor/ckeditor5-core": "^23.1.0",
+    "@ckeditor/ckeditor5-editor-classic": "^23.1.0",
+    "@ckeditor/ckeditor5-enter": "^23.1.0",
+    "@ckeditor/ckeditor5-essentials": "^23.1.0",
+    "@ckeditor/ckeditor5-heading": "^23.1.0",
+    "@ckeditor/ckeditor5-image": "^23.1.0",
+    "@ckeditor/ckeditor5-link": "^23.1.0",
+    "@ckeditor/ckeditor5-list": "^23.1.0",
+    "@ckeditor/ckeditor5-paragraph": "^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-widget": "^23.1.0"
   },
   "engines": {
     "node": ">=12.0.0",

+ 3 - 0
packages/ckeditor5-engine/src/conversion/downcastdispatcher.js

@@ -314,6 +314,9 @@ export default class DowncastDispatcher {
 			}
 		}
 
+		// After reconversion is done we can unbind the old view.
+		mapper.unbindViewElement( currentView );
+
 		this._clearConversionApi();
 	}
 

+ 22 - 0
packages/ckeditor5-engine/tests/common.js

@@ -0,0 +1,22 @@
+/**
+ * @license Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
+ */
+
+/* global console */
+
+// eslint-disable-next-line mocha/no-top-level-hooks
+before( () => {
+	// This is a temporary special handling for https://github.com/ckeditor/ckeditor5/issues/8263
+	// The goal is to show which test case(s) exactly causes the "Selection change observer detected an infinite rendering loop." warn
+	// and reduced engine code coverage.
+	const originalWarn = console.warn;
+
+	console.warn = function( ...args ) {
+		if ( args[ 0 ] == 'Selection change observer detected an infinite rendering loop.' ) {
+			throw new Error( 'Detected unwelcome "Selection change observer detected an infinite rendering loop." warning.' );
+		}
+
+		return originalWarn.apply( args );
+	};
+} );

+ 49 - 0
packages/ckeditor5-engine/tests/conversion/downcasthelpers.js

@@ -38,6 +38,8 @@ import { expectToThrowCKEditorError } from '@ckeditor/ckeditor5-utils/tests/_uti
 import { StylesProcessor } from '../../src/view/stylesmap';
 import DowncastWriter from '../../src/view/downcastwriter';
 
+import { toWidget } from '@ckeditor/ckeditor5-widget/src/utils';
+
 describe( 'DowncastHelpers', () => {
 	let model, modelRoot, viewRoot, downcastHelpers, controller, modelRootStart;
 
@@ -192,6 +194,53 @@ describe( 'DowncastHelpers', () => {
 					expectResult( '<div class="is-classy"></div>' );
 				} );
 
+				it( 'should properly re-bind mapper mappings and retain markers', () => {
+					downcastHelpers.elementToElement( {
+						model: 'simpleBlock',
+						view: ( modelElement, { writer } ) => {
+							const viewElement = writer.createContainerElement( 'div', getViewAttributes( modelElement ) );
+
+							return toWidget( viewElement, writer );
+						},
+						triggerBy: {
+							attributes: [ 'toStyle', 'toClass' ]
+						},
+						converterPriority: 'high'
+					} );
+
+					const mapper = controller.mapper;
+
+					downcastHelpers.markerToHighlight( {
+						model: 'myMarker',
+						view: { classes: 'foo' }
+					} );
+
+					setModelData( model, '<simpleBlock></simpleBlock>' );
+
+					const modelElement = modelRoot.getChild( 0 );
+					const [ viewBefore ] = getNodes();
+
+					model.change( writer => {
+						writer.addMarker( 'myMarker', { range: writer.createRangeOn( modelElement ), usingOperation: false } );
+					} );
+
+					expect( mapper.toViewElement( modelElement ) ).to.equal( viewBefore );
+					expect( mapper.toModelElement( viewBefore ) ).to.equal( modelElement );
+					expect( mapper.markerNameToElements( 'myMarker' ).has( viewBefore ) ).to.be.true;
+
+					model.change( writer => {
+						writer.setAttribute( 'toStyle', 'display:block', modelElement );
+					} );
+
+					const [ viewAfter ] = getNodes();
+
+					expect( mapper.toViewElement( modelElement ) ).to.equal( viewAfter );
+					expect( mapper.toModelElement( viewBefore ) ).to.be.undefined;
+					expect( mapper.toModelElement( viewAfter ) ).to.equal( modelElement );
+					expect( mapper.markerNameToElements( 'myMarker' ).has( viewAfter ) ).to.be.true;
+					expect( mapper.markerNameToElements( 'myMarker' ).has( viewBefore ) ).to.be.false;
+				} );
+
 				it( 'should do nothing if non-triggerBy attribute has changed', () => {
 					setModelData( model, '<simpleBlock></simpleBlock>' );
 

+ 18 - 13
packages/ckeditor5-engine/tests/manual/tickets/4600/1.html

@@ -1,41 +1,46 @@
 <style>
 	.simple-widget-container {
-		margin: 1em 0;
+		margin: 10px 0;
 		font-family: sans-serif;
 	}
 
 	.simple-widget-element {
 		display: flex;
-		height: 14em;
 	}
 
 	.simple-widget-element>fieldset {
-		display: flex;
-		align-items: center;
-		margin: 3em;
+		margin: 18px;
 		width: 50%;
-		border: 1px solid #ddd;
+		border: 1px solid #ccc;
 		border-radius: 4px;
 	}
 
+	.simple-widget-element>fieldset>* {
+		margin: 8px 0;
+	}
+
 	.simple-widget-element>fieldset>legend {
-		font-size: 0.85em;
-		padding: .2em 2em;
-		border: 1px solid #ddd;
+		font-size: 13px;
+		padding: 4px 16px;
+		border: 1px solid #ccc;
 		border-radius: 4px;
 		background: #fff;
 	}
 
 	.simple-widget-element>fieldset>input {
-		flex: 1;
-		margin: 1em 1em 1em 0;
+		width: 100%;
+		box-sizing: border-box;
 	}
 
 	.simple-widget-element>fieldset>button {
-		padding: .2em 3em;
+		padding: 4px 18px;
+	}
+
+	.simple-widget-element>fieldset>img {
+		display: block;
 	}
 </style>
 
 <div id="editor">
-	<section class="simple-widget-container" />
+	<section class="simple-widget-container"></section>
 </div>

+ 21 - 30
packages/ckeditor5-engine/tests/manual/tickets/4600/1.js

@@ -3,9 +3,10 @@
  * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
  */
 
-/* globals console, document, window, Event */
+/* globals console, document, window */
 
 import ClassicEditor from '@ckeditor/ckeditor5-editor-classic/src/classiceditor';
+import Paragraph from '@ckeditor/ckeditor5-paragraph/src/paragraph';
 import Essentials from '@ckeditor/ckeditor5-essentials/src/essentials';
 
 import Plugin from '@ckeditor/ckeditor5-core/src/plugin';
@@ -19,6 +20,10 @@ import InputObserver from '../../../../src/view/observer/inputobserver';
 import KeyObserver from '../../../../src/view/observer/keyobserver';
 import MouseObserver from '../../../../src/view/observer/mouseobserver';
 import MouseEventsObserver from '@ckeditor/ckeditor5-table/src/tablemouse/mouseeventsobserver';
+import DeleteObserver from '@ckeditor/ckeditor5-typing/src/deleteobserver';
+import ClipboardObserver from '@ckeditor/ckeditor5-clipboard/src/clipboardobserver';
+import EnterObserver from '@ckeditor/ckeditor5-enter/src/enterobserver';
+import ImageLoadObserver from '@ckeditor/ckeditor5-image/src/image/imageloadobserver';
 
 class SimpleWidgetEditing extends Plugin {
 	static get requires() {
@@ -73,11 +78,13 @@ class SimpleWidgetEditing extends Plugin {
 						<legend>Ignored container with <strong>data-cke-ignore-events="true"</strong></legend>
 						<input>
 						<button>Click!</button>
+						<img src="https://placekitten.com/30/30" height="30">
 					</fieldset>
 					<fieldset>
 						<legend>Regular container</legend>
 						<input>
 						<button>Click!</button>
+						<img src="https://placekitten.com/30/30" height="30">
 					</fieldset>
 				`;
 			} );
@@ -98,58 +105,42 @@ class SimpleWidgetEditing extends Plugin {
 			[ InputObserver, [ 'beforeinput' ] ],
 			[ KeyObserver, [ 'keydown', 'keyup' ] ],
 			[ MouseEventsObserver, [ 'mousemove', 'mouseup', 'mouseleave' ] ],
-			[ MouseObserver, [ 'mousedown' ] ]
+			[ MouseObserver, [ 'mousedown' ] ],
+			[ ClipboardObserver, [ 'paste', 'copy', 'cut', 'drop', 'dragover' ] ], // It's inheriting domEventObserver
+			[ DeleteObserver, [ 'delete' ] ], // Is ignored for some reason, even though there's no explicit support.
+			[ EnterObserver, [ 'enter' ] ], // Is ignored for some reason, even though there's no explicit support.
+			[ ImageLoadObserver, [ 'imageLoaded' ] ]
 		] );
 
 		observers.forEach( ( events, observer ) => {
 			view.addObserver( observer );
 
 			events.forEach( eventName => {
-				this.listenTo( view.document, eventName, () => {
-					console.log( `Received ${ eventName } event.` );
+				this.listenTo( view.document, eventName, ( event, eventData ) => {
+					if ( eventName.startsWith( 'mouse' ) ) {
+						console.log( `Received ${ eventName } event.` );
+					} else {
+						console.log( `Received ${ eventName } event. Target: `, eventData.domTarget || eventData.target );
+					}
 				} );
 			} );
 		} );
 	}
 }
 
-class SimpleWidgetUI extends Plugin {}
-
 class SimpleWidget extends Plugin {
 	static get requires() {
-		return [ SimpleWidgetEditing, SimpleWidgetUI ];
+		return [ SimpleWidgetEditing ];
 	}
 }
 
 ClassicEditor
 	.create( document.querySelector( '#editor' ), {
-		plugins: [ Essentials, SimpleWidget ]
+		plugins: [ Essentials, Paragraph, SimpleWidget ]
 	} )
 	.then( editor => {
 		window.editor = editor;
-		addEventDispatcherForButtons( editor, 'click' );
 	} )
 	.catch( error => {
 		console.error( error.stack );
 	} );
-
-function addEventDispatcherForButtons( editor, eventName ) {
-	const view = editor.editing.view;
-	const container = Array
-		.from( view.document.getRoot().getChildren() )
-		.find( element => element.hasClass( 'simple-widget-container' ) );
-
-	view.domConverter
-		.viewToDom( container )
-		.querySelectorAll( 'button' )
-		.forEach( button => {
-			button.addEventListener( 'click', event => {
-				if ( !event.isTrusted ) {
-					return;
-				}
-
-				console.log( `Dispatched ${ eventName } event.` );
-				button.dispatchEvent( new Event( eventName, { bubbles: true } ) );
-			} );
-		} );
-}

+ 44 - 13
packages/ckeditor5-engine/tests/manual/tickets/4600/1.md

@@ -1,19 +1,50 @@
-### Ignoring events fired by certain elements [#4600](https://github.com/ckeditor/ckeditor5/issues/4600)
+## Ignoring events propagation
 
-Events are logged in console.
+It's a test for ignoring events fired in elements with a `data-cke-ignore-events` attribute ([#4600](https://github.com/ckeditor/ckeditor5/issues/4600)).
 
-### Case 1: Events are ignored and they are not handled by default listeners.
-1. Move mouse cursor over a left container named `Ignored container with data-cke-ignore-events="true"`.
-2. When it is already there, start moving it around within container boundaries, start typing in text field and start clicking on text field and button.
-3. Click on the button.
+Events are logged in the browser's console.
 
-**Expected results**: Only then, when the mouse cursor is over the left container, new logs will stop appearing in the console. Clicking inside it, typing in text field and moving mouse cursor inside the container boundaries should not be logged in console. Clicking on a button dispatches the `click` event (the `Dispatched click event` message should be logged), but `Received click event` shouldn't be present in console.
+### Case 1: Events ignoring
 
-One note for `focus` nad `blur` events: they will be logged in console, but only when container lost focus or gets it back, respectively.
+1. Focus the widget by clicking it.
+1. Move mouse cursor over the left container (`Ignored container with data-cke-ignore-events="true"`).
+1. Keep moving the cursor over the container.
 
-### Case 2: Events are not ignored and they are handled by default listeners.
-1. Move mouse cursor over a right container named `Regular container`.
-2. When it is already there, start moving it around within container boundaries, start typing in text field and start clicking on text field and button.
-3. Click on the button.
+	**Expected:** no further "Received mousemove event." logs are added.
 
-**Expected results**: Events should be logged in console. It shouldn't be possible to focus the text field and type anything there. Clicking on a button dispatches the `click` event (the `Dispatched click event` message should be logged) and doubled `Received click event` should be present in console: one from "real" user mouse click and second one from script-generated `click` event.
+1. Click on a "Click!" button in the container.
+
+	**Expected:** No "Received click event." gets logged.
+
+1. Click on the text input in the container.
+
+	**Expected:** Text input gets focused.
+
+1. Type few characters into the focused input.
+
+	**Expected:** Text is inserted. No keyboard events are logged.
+
+Note: you might get unexpected `focus` nad `blur` events in the process, it's a [known issue](https://github.com/ckeditor/ckeditor5/issues/8309).
+
+### Case 2: Container without event ignoring
+
+1. Focus the widget by clicking it.
+1. Move mouse cursor over the right container (`Regular container`).
+1. Keep moving the cursor over the container.
+
+	**Expected:** "Received mousemove event." logs are added.
+
+1. Click on a "Click!" button in the container.
+
+	**Expected:** "Received click event." is logged.
+
+1. Click on the text input in the container.
+
+	**Expected:** Click events are logged. Editor decides what to do with the selection.
+
+### Case 3: `imageLoaded` event
+
+1. Reload the page (test).
+1. Check the console.
+
+	**Expected:** There's only **one** `Received imageLoaded event.` log.

+ 3 - 3
packages/ckeditor5-engine/tests/view/observer/domeventobserver.js

@@ -122,7 +122,7 @@ describe( 'DomEventObserver', () => {
 		expect( evtSpy.called ).to.be.false;
 	} );
 
-	it( 'should not fire event if target is ignored', () => {
+	it( 'should not fire event if the target is ignored', () => {
 		const domElement = document.createElement( 'p' );
 		const domEvent = new MouseEvent( 'click' );
 		const evtSpy = sinon.spy();
@@ -138,10 +138,10 @@ describe( 'DomEventObserver', () => {
 
 		domElement.dispatchEvent( domEvent );
 
+		ignoreEventFromTargetStub.restore();
+
 		expect( ignoreEventFromTargetStub.called ).to.be.true;
 		expect( evtSpy.called ).to.be.false;
-
-		ignoreEventFromTargetStub.restore();
 	} );
 
 	it( 'should fire event if observer is disabled and re-enabled', () => {

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

@@ -1,6 +1,6 @@
 {
   "name": "@ckeditor/ckeditor5-enter",
-  "version": "23.0.0",
+  "version": "23.1.0",
   "description": "Enter feature for CKEditor 5.",
   "keywords": [
     "ckeditor",
@@ -10,18 +10,18 @@
     "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-editor-classic": "^23.0.0",
-    "@ckeditor/ckeditor5-heading": "^23.0.0",
-    "@ckeditor/ckeditor5-link": "^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-editor-classic": "^23.1.0",
+    "@ckeditor/ckeditor5-heading": "^23.1.0",
+    "@ckeditor/ckeditor5-link": "^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 - 9
packages/ckeditor5-essentials/package.json

@@ -1,6 +1,6 @@
 {
   "name": "@ckeditor/ckeditor5-essentials",
-  "version": "23.0.0",
+  "version": "23.1.0",
   "description": "Essential editing features for CKEditor 5.",
   "keywords": [
     "ckeditor",
@@ -10,16 +10,16 @@
     "ckeditor5-plugin"
   ],
   "dependencies": {
-    "@ckeditor/ckeditor5-clipboard": "^23.0.0",
-    "@ckeditor/ckeditor5-core": "^23.0.0",
-    "@ckeditor/ckeditor5-enter": "^23.0.0",
-    "@ckeditor/ckeditor5-select-all": "^23.0.0",
-    "@ckeditor/ckeditor5-typing": "^23.0.0",
-    "@ckeditor/ckeditor5-undo": "^23.0.0"
+    "@ckeditor/ckeditor5-clipboard": "^23.1.0",
+    "@ckeditor/ckeditor5-core": "^23.1.0",
+    "@ckeditor/ckeditor5-enter": "^23.1.0",
+    "@ckeditor/ckeditor5-select-all": "^23.1.0",
+    "@ckeditor/ckeditor5-typing": "^23.1.0",
+    "@ckeditor/ckeditor5-undo": "^23.1.0"
   },
   "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",

+ 57 - 0
packages/ckeditor5-font/lang/translations/hi.po

@@ -0,0 +1,57 @@
+# 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 "Tooltip for the font size dropdown."
+msgid "Font Size"
+msgstr "Font Size"
+
+msgctxt "Dropdown option label for the 'tiny' font size preset."
+msgid "Tiny"
+msgstr "Tiny"
+
+msgctxt "Dropdown option label for the 'small' font size preset."
+msgid "Small"
+msgstr "Small"
+
+msgctxt "Dropdown option label for the 'big' font size preset."
+msgid "Big"
+msgstr "Big"
+
+msgctxt "Dropdown option label for the 'huge' font size preset."
+msgid "Huge"
+msgstr "Huge"
+
+msgctxt "Tooltip for the font family dropdown."
+msgid "Font Family"
+msgstr "Font Family"
+
+msgctxt "Dropdown option label for the default font family."
+msgid "Default"
+msgstr "Default"
+
+msgctxt "Label of a button that allows selecting a font color."
+msgid "Font Color"
+msgstr "Font Color"
+
+msgctxt "Label of a button that allows selecting a font background color."
+msgid "Font Background Color"
+msgstr "Font Background Color"
+
+msgctxt "Title of a color picker section containing the colors currently used in the document."
+msgid "Document colors"
+msgstr "Document colors"

+ 8 - 8
packages/ckeditor5-font/package.json

@@ -1,6 +1,6 @@
 {
   "name": "@ckeditor/ckeditor5-font",
-  "version": "23.0.0",
+  "version": "23.1.0",
   "description": "Font feature for CKEditor 5.",
   "keywords": [
     "ckeditor",
@@ -10,15 +10,15 @@
     "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-editor-classic": "^23.0.0",
-    "@ckeditor/ckeditor5-engine": "^23.0.0",
-    "@ckeditor/ckeditor5-highlight": "^23.0.0",
-    "@ckeditor/ckeditor5-paragraph": "^23.0.0"
+    "@ckeditor/ckeditor5-editor-classic": "^23.1.0",
+    "@ckeditor/ckeditor5-engine": "^23.1.0",
+    "@ckeditor/ckeditor5-highlight": "^23.1.0",
+    "@ckeditor/ckeditor5-paragraph": "^23.1.0"
   },
   "engines": {
     "node": ">=12.0.0",

+ 0 - 2
packages/ckeditor5-heading/docs/_snippets/features/title.html

@@ -5,8 +5,6 @@
 
 <h3>Console</h3>
 
-<p>You can check the content of the title and body elements below.</p>
-
 <pre><code class="plaintext title-console title-console__title">''</code></pre>
 <pre><code class="plaintext title-console title-console__body">'&lt;p>&amp;nbsp;&lt;/p>'</code></pre>
 <pre><code class="plaintext title-console title-console__data">''</code></pre>

+ 1 - 1
packages/ckeditor5-heading/docs/features/title.md

@@ -11,7 +11,7 @@ This feature can be used to implement a rich-text editor with a clear division o
 
 ## Demo
 
-Use the editor below to create a document with clearly separated title and body sections.
+Use the editor to create a document with clearly separated title and body sections. You can check the content of the title and body elements in the console below.
 
 {@snippet features/title}
 

+ 2 - 2
packages/ckeditor5-heading/lang/translations/fa.po

@@ -54,8 +54,8 @@ msgstr "عنوان 6"
 
 msgctxt "A default value of the placeholder for the content title."
 msgid "Type your title"
-msgstr ""
+msgstr "عنوان خود را تایپ کنید"
 
 msgctxt "A default value of the placeholder for the content body."
 msgid "Type or paste your content here."
-msgstr ""
+msgstr "محتوای خود را در اینجا تایپ یا پیست کنید."

+ 61 - 0
packages/ckeditor5-heading/lang/translations/hi.po

@@ -0,0 +1,61 @@
+# 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 "Dropdown option label for the paragraph format."
+msgid "Paragraph"
+msgstr "Paragraph"
+
+msgctxt "Tooltip for the heading dropdown."
+msgid "Heading"
+msgstr "Heading"
+
+msgctxt "Default label for the heading dropdown."
+msgid "Choose heading"
+msgstr "Choose heading"
+
+msgctxt "Dropdown option label for the heading level 1 format."
+msgid "Heading 1"
+msgstr "Heading 1"
+
+msgctxt "Dropdown option label for the heading level 2 format."
+msgid "Heading 2"
+msgstr "Heading 2"
+
+msgctxt "Dropdown option label for the heading level 3 format."
+msgid "Heading 3"
+msgstr "Heading 3"
+
+msgctxt "Dropdown option label for the heading level 4 format."
+msgid "Heading 4"
+msgstr "Heading 4"
+
+msgctxt "Dropdown option label for the heading level 5 format."
+msgid "Heading 5"
+msgstr "Heading 5"
+
+msgctxt "Dropdown option label for the heading level 6 format."
+msgid "Heading 6"
+msgstr "Heading 6"
+
+msgctxt "A default value of the placeholder for the content title."
+msgid "Type your title"
+msgstr "Type your title"
+
+msgctxt "A default value of the placeholder for the content body."
+msgid "Type or paste your content here."
+msgstr "Type or paste your content here."

+ 16 - 16
packages/ckeditor5-heading/package.json

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

+ 53 - 0
packages/ckeditor5-highlight/lang/translations/hi.po

@@ -0,0 +1,53 @@
+# 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 applying yellow marker (text highlight)."
+msgid "Yellow marker"
+msgstr "Yellow marker"
+
+msgctxt "Toolbar button tooltip for applying green marker (text highlight)."
+msgid "Green marker"
+msgstr "Green marker"
+
+msgctxt "Toolbar button tooltip for applying pink marker (text highlight)."
+msgid "Pink marker"
+msgstr "Pink marker"
+
+msgctxt "Toolbar button tooltip for applying blue marker (text highlight)."
+msgid "Blue marker"
+msgstr "Blue marker"
+
+msgctxt "Toolbar button tooltip for applying red pen (text color)."
+msgid "Red pen"
+msgstr "Red pen"
+
+msgctxt "Toolbar button tooltip for applying green pen (text color)."
+msgid "Green pen"
+msgstr "Green pen"
+
+msgctxt "Toolbar button tooltip for removing text highlight."
+msgid "Remove highlight"
+msgstr "Remove highlight"
+
+msgctxt "Toolbar button tooltip for the text highlight feature."
+msgid "Highlight"
+msgstr "Highlight"
+
+msgctxt "Label used by assistive technologies describing the highlight feature toolbar."
+msgid "Text highlight toolbar"
+msgstr "Text highlight toolbar"

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

@@ -1,6 +1,6 @@
 {
   "name": "@ckeditor/ckeditor5-highlight",
-  "version": "23.0.0",
+  "version": "23.1.0",
   "description": "Highlight 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",

+ 21 - 0
packages/ckeditor5-horizontal-line/lang/translations/fa.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: Persian (https://www.transifex.com/ckeditor/teams/11143/fa/)\n"
+"Language: fa\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+
+msgctxt "Horizontal line"
+msgid "Horizontal line"
+msgstr "خط افقی"

+ 21 - 0
packages/ckeditor5-horizontal-line/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 "Horizontal line"
+msgid "Horizontal line"
+msgstr "Horizontal line"

+ 11 - 11
packages/ckeditor5-horizontal-line/package.json

@@ -1,6 +1,6 @@
 {
   "name": "@ckeditor/ckeditor5-horizontal-line",
-  "version": "23.0.0",
+  "version": "23.1.0",
   "description": "Horizontal line feature for CKEditor 5.",
   "keywords": [
     "ckeditor",
@@ -10,18 +10,18 @@
     "ckeditor5-plugin"
   ],
   "dependencies": {
-    "@ckeditor/ckeditor5-core": "^23.0.0",
-    "@ckeditor/ckeditor5-ui": "^23.0.0",
-    "@ckeditor/ckeditor5-widget": "^23.0.0"
+    "@ckeditor/ckeditor5-core": "^23.1.0",
+    "@ckeditor/ckeditor5-ui": "^23.1.0",
+    "@ckeditor/ckeditor5-widget": "^23.1.0"
   },
   "devDependencies": {
-    "@ckeditor/ckeditor5-cloud-services": "^23.0.0",
-    "@ckeditor/ckeditor5-engine": "^23.0.0",
-    "@ckeditor/ckeditor5-editor-classic": "^23.0.0",
-    "@ckeditor/ckeditor5-easy-image": "^23.0.0",
-    "@ckeditor/ckeditor5-image": "^23.0.0",
-    "@ckeditor/ckeditor5-paragraph": "^23.0.0",
-    "@ckeditor/ckeditor5-utils": "^23.0.0"
+    "@ckeditor/ckeditor5-cloud-services": "^23.1.0",
+    "@ckeditor/ckeditor5-engine": "^23.1.0",
+    "@ckeditor/ckeditor5-editor-classic": "^23.1.0",
+    "@ckeditor/ckeditor5-easy-image": "^23.1.0",
+    "@ckeditor/ckeditor5-image": "^23.1.0",
+    "@ckeditor/ckeditor5-paragraph": "^23.1.0",
+    "@ckeditor/ckeditor5-utils": "^23.1.0"
   },
   "engines": {
     "node": ">=12.0.0",

+ 4 - 0
packages/ckeditor5-html-embed/CHANGELOG.md

@@ -0,0 +1,4 @@
+Changelog
+=========
+
+All changes in the package are documented in the main repository. See: https://github.com/ckeditor/ckeditor5/blob/master/CHANGELOG.md.

+ 4 - 0
packages/ckeditor5-html-embed/CONTRIBUTING.md

@@ -0,0 +1,4 @@
+Contributing
+========================================
+
+See the [official contributors' guide to CKEditor 5](https://ckeditor.com/docs/ckeditor5/latest/framework/guides/contributing/contributing.html) to learn more.

+ 17 - 0
packages/ckeditor5-html-embed/LICENSE.md

@@ -0,0 +1,17 @@
+Software License Agreement
+==========================
+
+**CKEditor 5 HTML embed feature**  – https://github.com/ckeditor/ckeditor5-html-embed <br>
+Copyright (c) 2003-2020, [CKSource](http://cksource.com) Frederico Knabben. All rights reserved.
+
+Licensed under the terms of [GNU General Public License Version 2 or later](http://www.gnu.org/licenses/gpl.html).
+
+Sources of Intellectual Property Included in CKEditor
+-----------------------------------------------------
+
+Where not otherwise indicated, all CKEditor content is authored by CKSource engineers and consists of CKSource-owned intellectual property. In some specific instances, CKEditor will incorporate work done by developers outside of CKSource with their express permission.
+
+Trademarks
+----------
+
+**CKEditor** is a trademark of [CKSource](http://cksource.com) Frederico Knabben. All other brand and product names are trademarks, registered trademarks or service marks of their respective holders.

+ 20 - 0
packages/ckeditor5-html-embed/README.md

@@ -0,0 +1,20 @@
+CKEditor 5 HTML embed feature
+=============================
+
+[![npm version](https://badge.fury.io/js/%40ckeditor%2Fckeditor5-html-embed.svg)](https://www.npmjs.com/package/@ckeditor/ckeditor5-html-embed)
+[![Dependency Status](https://david-dm.org/ckeditor/ckeditor5-html-embed/status.svg)](https://david-dm.org/ckeditor/ckeditor5-html-embed)
+[![devDependency Status](https://david-dm.org/ckeditor/ckeditor5-html-embed/dev-status.svg)](https://david-dm.org/ckeditor/ckeditor5-html-embed?type=dev)
+
+This package implements the HTML embed feature for CKEditor 5.
+
+## Demo
+
+Check out the demo in the [HTML embed feature](https://ckeditor.com/docs/ckeditor5/latest/features/html-embed.html) guide.
+
+## Documentation
+
+See the [`@ckeditor/ckeditor5-html-embed` package](https://ckeditor.com/docs/ckeditor5/latest/api/html-embed.html) page as well as the [HTML embed feature guide](https://ckeditor.com/docs/ckeditor5/latest/features/html-embed.html) in [CKEditor 5 documentation](https://ckeditor.com/docs/ckeditor5/latest/).
+
+## License
+
+Licensed under the terms of [GNU General Public License Version 2 or later](http://www.gnu.org/licenses/gpl.html). For full details about the license, please check the `LICENSE.md` file or [https://ckeditor.com/legal/ckeditor-oss-license](https://ckeditor.com/legal/ckeditor-oss-license).

+ 17 - 0
packages/ckeditor5-html-embed/docs/_snippets/features/html-embed.html

@@ -0,0 +1,17 @@
+<div id="snippet-html-embed"></div>
+
+<button type="button" id="preview-data-action">Preview editor data</button>
+<iframe id="preview-data-container" aria-hidden="true" tabindex="-1"></iframe>
+
+<style>
+	#preview-data-container {
+		width: 100%;
+		height: 500px;
+		border: solid 2px #333;
+	}
+
+	.ck-editor__editable_inline {
+		max-height: 500px;
+		overflow: auto;
+	}
+</style>

+ 169 - 0
packages/ckeditor5-html-embed/docs/_snippets/features/html-embed.js

@@ -0,0 +1,169 @@
+/**
+ * @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, document, location, console */
+
+import ClassicEditor from '@ckeditor/ckeditor5-build-classic/src/ckeditor';
+import { CS_CONFIG } from '@ckeditor/ckeditor5-cloud-services/tests/_utils/cloud-services-config';
+import HtmlEmbed from '@ckeditor/ckeditor5-html-embed/src/htmlembed';
+import CodeBlock from '@ckeditor/ckeditor5-code-block/src/codeblock';
+
+ClassicEditor.builtinPlugins.push( HtmlEmbed );
+ClassicEditor.builtinPlugins.push( CodeBlock );
+
+/* eslint-disable max-len */
+const initialData =
+`
+<h2>CKEditor 5 classic editor build</h2>
+<div class="raw-html-embed">
+	<p><a href="https://www.npmjs.com/package/@ckeditor/ckeditor5-build-classic"><img alt="npm version" src="https://badge.fury.io/js/%40ckeditor%2Fckeditor5-build-classic.svg" /></a></p>
+
+	<p><a href="https://travis-ci.org/ckeditor/ckeditor5"><img alt="Build Status" src="https://travis-ci.org/ckeditor/ckeditor5.svg?branch=master" /></a>&nbsp;<a href="https://david-dm.org/ckeditor/ckeditor5"><img alt="Dependency Status" src="https://img.shields.io/david/ckeditor/ckeditor5.svg" /></a>&nbsp;<a href="https://david-dm.org/ckeditor/ckeditor5?type=dev"><img alt="devDependency Status" src="https://img.shields.io/david/dev/ckeditor/ckeditor5.svg" /></a></p>
+
+	<p><a href="http://eepurl.com/c3zRPr"><img alt="Join newsletter" src="https://img.shields.io/badge/join-newsletter-00cc99.svg" /></a>&nbsp;<a href="https://twitter.com/ckeditor"><img alt="Follow twitter" src="https://img.shields.io/badge/follow-twitter-00cc99.svg" /></a></p>
+</div>
+
+<p>The classic editor build for CKEditor 5. Read more about the <a href="https://ckeditor.com/docs/ckeditor5/latest/builds/guides/overview.html#classic-editor"><strong>classic editor build</strong></a> and see the <a href="https://ckeditor.com/docs/ckeditor5/latest/examples/builds/classic-editor.html"><strong>demo</strong></a>.</p>
+
+<figure class="image"><img src="https://c.cksource.com/a/1/img/npm/ckeditor5-build-classic.png" alt="CKEditor 5 classic editor build screenshot"></figure>
+
+<h2>Documentation</h2>
+<p>See:</p>
+<ul>
+	<li><a href="https://ckeditor.com/docs/ckeditor5/latest/builds/guides/integration/installation.html">Installation</a> for how to install this package and what it contains.</li>
+	<li><a href="https://ckeditor.com/docs/ckeditor5/latest/builds/guides/integration/basic-api.html">Basic API</a> for how to create an editor and interact with it.</li>
+	<li><a href="https://ckeditor.com/docs/ckeditor5/latest/builds/guides/integration/configuration.html">Configuration</a> for how to configure the editor.</li>
+</ul>
+
+<h2>Quick start</h2>
+<p>First, install the build from npm:</p>
+<pre><code class="language-plaintext">npm&nbsp;install&nbsp;--save&nbsp;@ckeditor/ckeditor5-build-classic</code></pre>
+<p>And use it in your website:</p>
+<pre><code class="language-html">&lt;div id="editor">
+	&lt;p>This is the editor content.&lt;/p>
+&lt;/div>
+&lt;script src="./node_modules/@ckeditor/ckeditor5-build-classic/build/ckeditor.js">&lt;/script>
+&lt;script>
+	ClassicEditor
+		.create( document.querySelector( '#editor' ) )
+		.then( editor => {
+			window.editor = editor;
+		} )
+		.catch( error => {
+			console.error( 'There was a problem initializing the editor.', error );
+		} );
+&lt;/script></code></pre>
+
+<h2>License</h2>
+<p>Licensed under the terms of <a href="http://www.gnu.org/licenses/gpl.html" rel="nofollow">GNU General Public License Version 2 or later</a>. For full details about the license, please check the <code>LICENSE.md</code> file or <a href="https://ckeditor.com/legal/ckeditor-oss-license" rel="nofollow">https://ckeditor.com/legal/ckeditor-oss-license</a>.</p>
+
+<div class="raw-html-embed"><script>
+	window.emojicsOpts = {
+		widget: '50c7737f072dfd100f3dad0411f02e',
+		position: 'inline'
+	};
+	( function( d, s, id ) {
+		var js, fjs = d.getElementsByTagName( s )[ 0 ];
+		js = d.createElement( s );
+		js.id = id;
+		js.src = '//connect.emojics.com/dist/sdk.js';
+		fjs.parentNode.insertBefore( js, fjs );
+	} )( document, 'script', 'emojics-js' );
+</script>
+<div id="emojics-root"></div>
+</script></div>
+`;
+
+ClassicEditor
+	.create( document.querySelector( '#snippet-html-embed' ), {
+		initialData,
+		toolbar: {
+			items: [
+				'heading',
+				'|',
+				'bold',
+				'italic',
+				'bulletedList',
+				'numberedList',
+				'|',
+				'outdent',
+				'indent',
+				'|',
+				'blockQuote',
+				'link',
+				'imageUpload',
+				'mediaEmbed',
+				'insertTable',
+				'codeBlock',
+				'htmlEmbed',
+				'|',
+				'undo',
+				'redo'
+			],
+			viewportTopOffset: window.getViewportTopOffsetConfig()
+		},
+		image: {
+			styles: [
+				'full',
+				'alignLeft',
+				'alignRight'
+			],
+			toolbar: [
+				'imageStyle:alignLeft',
+				'imageStyle:full',
+				'imageStyle:alignRight',
+				'|',
+				'imageTextAlternative'
+			]
+		},
+		table: {
+			contentToolbar: [ 'tableColumn', 'tableRow', 'mergeTableCells' ]
+		},
+		cloudServices: CS_CONFIG
+	} )
+	.then( editor => {
+		window.editor = editor;
+
+		// The "Preview editor data" button logic.
+		document.querySelector( '#preview-data-action' ).addEventListener( 'click', () => {
+			const mainCSSElement = [ ...document.querySelectorAll( 'link' ) ]
+				.find( linkElement => linkElement.href.endsWith( 'css/styles.css' ) );
+			const snippetCSSElement = [ ...document.querySelectorAll( 'link' ) ]
+				.find( linkElement => linkElement.href.endsWith( 'snippet.css' ) );
+
+			const iframeElement = document.querySelector( '#preview-data-container' );
+
+			// We create the iframe in a careful way and set the base URL to make emojics widget work.
+			// NOTE: the emojics widget works only when hosted on ckeditor.com.
+			const html = '<!DOCTYPE html><html>' +
+				'<head>' +
+					'<meta charset="utf-8">' +
+					`<base href="${ location.href }">` +
+					`<title>${ document.title }</title>` +
+					`<link rel="stylesheet" href="${ mainCSSElement.href }" type="text/css">` +
+					`<link rel="stylesheet" href="${ snippetCSSElement.href }" type="text/css">` +
+					`<style>
+						body {
+							padding: 20px;
+						}
+						.formatted p img {
+							display: inline;
+							margin: 0;
+						}
+					</style>` +
+				'</head>' +
+				'<body class="formatted ck-content">' +
+					editor.getData() +
+				'</body>' +
+				'</html>';
+
+			iframeElement.contentWindow.document.open();
+			iframeElement.contentWindow.document.write( html );
+			iframeElement.contentWindow.document.close();
+		} );
+	} )
+	.catch( err => {
+		console.error( err.stack );
+	} );

部分文件因为文件数量过多而无法显示