Browse Source

Merge branch 'master' into i/7956-reconversion-trigger-by

Maciej Gołaszewski 5 years ago
parent
commit
dc85a1e649
82 changed files with 386 additions and 124 deletions
  1. 17 15
      CHANGELOG.md
  2. 1 1
      docs/_snippets/examples/document-editor.html
  3. 0 14
      docs/_snippets/features/mathtype.html
  4. 62 1
      docs/_snippets/features/mathtype.js
  5. 2 2
      docs/builds/guides/migrate.md
  6. 1 1
      package.json
  7. 27 0
      packages/ckeditor5-block-quote/docs/_snippets/features/block-quote.html
  8. 38 0
      packages/ckeditor5-block-quote/docs/_snippets/features/block-quote.js
  9. 6 2
      packages/ckeditor5-block-quote/docs/api/block-quote.md
  10. 69 0
      packages/ckeditor5-block-quote/docs/features/block-quote.md
  11. 0 0
      packages/ckeditor5-build-decoupled-document/build/ckeditor.js
  12. 0 0
      packages/ckeditor5-build-decoupled-document/build/ckeditor.js.map
  13. 0 0
      packages/ckeditor5-build-decoupled-document/build/translations/ar.js
  14. 1 1
      packages/ckeditor5-build-decoupled-document/build/translations/ast.js
  15. 0 0
      packages/ckeditor5-build-decoupled-document/build/translations/az.js
  16. 0 0
      packages/ckeditor5-build-decoupled-document/build/translations/bg.js
  17. 0 0
      packages/ckeditor5-build-decoupled-document/build/translations/cs.js
  18. 0 0
      packages/ckeditor5-build-decoupled-document/build/translations/da.js
  19. 0 0
      packages/ckeditor5-build-decoupled-document/build/translations/de.js
  20. 0 1
      packages/ckeditor5-build-decoupled-document/build/translations/el.js
  21. 0 0
      packages/ckeditor5-build-decoupled-document/build/translations/en-au.js
  22. 0 0
      packages/ckeditor5-build-decoupled-document/build/translations/en-gb.js
  23. 0 1
      packages/ckeditor5-build-decoupled-document/build/translations/eo.js
  24. 0 0
      packages/ckeditor5-build-decoupled-document/build/translations/es.js
  25. 0 0
      packages/ckeditor5-build-decoupled-document/build/translations/et.js
  26. 0 1
      packages/ckeditor5-build-decoupled-document/build/translations/eu.js
  27. 0 0
      packages/ckeditor5-build-decoupled-document/build/translations/fa.js
  28. 0 0
      packages/ckeditor5-build-decoupled-document/build/translations/fi.js
  29. 0 0
      packages/ckeditor5-build-decoupled-document/build/translations/fr.js
  30. 0 0
      packages/ckeditor5-build-decoupled-document/build/translations/gl.js
  31. 0 0
      packages/ckeditor5-build-decoupled-document/build/translations/he.js
  32. 0 0
      packages/ckeditor5-build-decoupled-document/build/translations/hr.js
  33. 0 0
      packages/ckeditor5-build-decoupled-document/build/translations/hu.js
  34. 0 0
      packages/ckeditor5-build-decoupled-document/build/translations/id.js
  35. 0 0
      packages/ckeditor5-build-decoupled-document/build/translations/it.js
  36. 0 0
      packages/ckeditor5-build-decoupled-document/build/translations/ja.js
  37. 0 0
      packages/ckeditor5-build-decoupled-document/build/translations/km.js
  38. 0 0
      packages/ckeditor5-build-decoupled-document/build/translations/kn.js
  39. 0 0
      packages/ckeditor5-build-decoupled-document/build/translations/ko.js
  40. 0 0
      packages/ckeditor5-build-decoupled-document/build/translations/ku.js
  41. 0 0
      packages/ckeditor5-build-decoupled-document/build/translations/lt.js
  42. 0 0
      packages/ckeditor5-build-decoupled-document/build/translations/lv.js
  43. 0 0
      packages/ckeditor5-build-decoupled-document/build/translations/nb.js
  44. 0 0
      packages/ckeditor5-build-decoupled-document/build/translations/ne.js
  45. 0 0
      packages/ckeditor5-build-decoupled-document/build/translations/nl.js
  46. 0 0
      packages/ckeditor5-build-decoupled-document/build/translations/no.js
  47. 0 0
      packages/ckeditor5-build-decoupled-document/build/translations/pl.js
  48. 0 0
      packages/ckeditor5-build-decoupled-document/build/translations/pt-br.js
  49. 0 1
      packages/ckeditor5-build-decoupled-document/build/translations/pt.js
  50. 0 0
      packages/ckeditor5-build-decoupled-document/build/translations/ro.js
  51. 0 0
      packages/ckeditor5-build-decoupled-document/build/translations/ru.js
  52. 1 1
      packages/ckeditor5-build-decoupled-document/build/translations/si.js
  53. 0 0
      packages/ckeditor5-build-decoupled-document/build/translations/sk.js
  54. 0 0
      packages/ckeditor5-build-decoupled-document/build/translations/sq.js
  55. 0 0
      packages/ckeditor5-build-decoupled-document/build/translations/sr-latn.js
  56. 0 0
      packages/ckeditor5-build-decoupled-document/build/translations/sr.js
  57. 0 0
      packages/ckeditor5-build-decoupled-document/build/translations/sv.js
  58. 0 0
      packages/ckeditor5-build-decoupled-document/build/translations/tr.js
  59. 0 0
      packages/ckeditor5-build-decoupled-document/build/translations/ug.js
  60. 0 0
      packages/ckeditor5-build-decoupled-document/build/translations/uk.js
  61. 0 0
      packages/ckeditor5-build-decoupled-document/build/translations/vi.js
  62. 0 0
      packages/ckeditor5-build-decoupled-document/build/translations/zh-cn.js
  63. 0 0
      packages/ckeditor5-build-decoupled-document/build/translations/zh.js
  64. 2 0
      packages/ckeditor5-build-decoupled-document/src/ckeditor.js
  65. 12 0
      packages/ckeditor5-build-decoupled-document/tests/ckeditor.js
  66. 2 2
      packages/ckeditor5-build-decoupled-document/tests/manual/ckeditor.html
  67. 3 1
      packages/ckeditor5-link/src/linkui.js
  68. 15 0
      packages/ckeditor5-link/tests/linkui.js
  69. 1 1
      packages/ckeditor5-list/docs/features/lists.md
  70. 1 1
      packages/ckeditor5-media-embed/src/automediaembed.js
  71. 4 4
      packages/ckeditor5-media-embed/src/mediaembedcommand.js
  72. 11 0
      packages/ckeditor5-media-embed/tests/automediaembed.js
  73. 22 0
      packages/ckeditor5-media-embed/tests/insertmediacommand.js
  74. 8 8
      packages/ckeditor5-page-break/docs/features/page-break.md
  75. 14 14
      packages/ckeditor5-paste-from-office/tests/_data/image/adjacent-groups/model.edge.word2016.html
  76. 8 8
      packages/ckeditor5-paste-from-office/tests/_data/image/adjacent-groups/model.safari.word2016.html
  77. 14 14
      packages/ckeditor5-paste-from-office/tests/_data/image/adjacent-groups/model.word2016.html
  78. 0 25
      packages/ckeditor5-table/src/converters/upcasttable.js
  79. 1 3
      packages/ckeditor5-table/src/tableediting.js
  80. 1 1
      packages/ckeditor5-table/tests/converters/upcasttable.js
  81. 41 0
      packages/ckeditor5-table/tests/tableclipboard-paste.js
  82. 1 0
      packages/ckeditor5-ui/src/panel/balloon/contextualballoon.js

+ 17 - 15
CHANGELOG.md

@@ -7,11 +7,13 @@ Changelog
 
 We are happy to announce the release of CKEditor 5 v23.0.0.
 
-This release was focused on bug fixes and stability improvements. Some highlights are listed below:
+This release brings the new [pagination feature](https://ckeditor.com/blog/How-to-create-ready-to-print-documents-with-page-structure-in-WYSIWYG-editor---CKEditor-5-pagination-feature/).
+
+Other than that, we focused on bug fixes and stability improvements. Some highlights are listed below:
 
 * [Five bug fixes for list and list style plugins](https://github.com/ckeditor/ckeditor5/issues?q=is%3Aissue+milestone%3A%22iteration+36%22+label%3Atype%3Abug+label%3Apackage%3Alist).
-* [Extracted the "Image upload via URL" feature to a separate image insert plugin](https://github.com/ckeditor/ckeditor5/issues/7890).
-* [Improvements for pasting as plain text using <kbd>ctrl/cmd</kbd> + <kbd>shift</kbd> + <kbd>v</kbd>](https://github.com/ckeditor/ckeditor5/issues/7799).
+* [The "upload image via URL" feature was extracted into a separate image insert plugin](https://github.com/ckeditor/ckeditor5/issues/7890).
+* [Improvements for pasting as plain text using <kbd>Ctrl/Cmd</kbd> + <kbd>Shift</kbd> + <kbd>V</kbd>](https://github.com/ckeditor/ckeditor5/issues/7799).
 * Fixed [a case where the link balloon toolbar would be mispositioned](https://github.com/ckeditor/ckeditor5/issues/7926) in some rare cases.
 
 Please note that there are some **major breaking changes**. Be sure to review them before upgrading.
@@ -24,42 +26,42 @@ The CKEditor 5 Collaboration features changelog can be found here: https://ckedi
 
 ### MAJOR BREAKING CHANGES [ℹ️](https://ckeditor.com/docs/ckeditor5/latest/framework/guides/support/versioning-policy.html#major-and-minor-breaking-changes)
 
-* **[image](https://www.npmjs.com/package/@ckeditor/ckeditor5-image)**: In order to use the "insert image via URL" feature you now need to load the `ImageInsert` plugin and use the `imageInsert` button instead of the `imageUpload` button that implemented that functionality previously.
+* **[image](https://www.npmjs.com/package/@ckeditor/ckeditor5-image)**: In order to use the "insert image via URL" feature you now need to load the `ImageInsert` plugin and use the `imageInsert` button instead of the `imageUpload` button that implemented this functionality previously.
 
 ### MINOR BREAKING CHANGES [ℹ️](https://ckeditor.com/docs/ckeditor5/latest/framework/guides/support/versioning-policy.html#major-and-minor-breaking-changes)
 
-* **[clipboard](https://www.npmjs.com/package/@ckeditor/ckeditor5-clipboard)**: When pasting plain text each double line break is now treated as a paragraph separator, while a single line break is converted into a soft break. Formerly every single line break was treated as paragraph separation.
+* **[clipboard](https://www.npmjs.com/package/@ckeditor/ckeditor5-clipboard)**: When pasting plain text, each double line break is now treated as a paragraph separator, while a single line break is converted into a soft break. Formerly, every single line break was treated as paragraph separation.
 
 ### Features
 
 * **[clipboard](https://www.npmjs.com/package/@ckeditor/ckeditor5-clipboard)**: Improved line to paragraph/soft break retention when pasting as plain text. Closes [#7884](https://github.com/ckeditor/ckeditor5/issues/7884). ([commit](https://github.com/ckeditor/ckeditor5/commit/a4b89965e8b156ee4ed67df9d4a634c0e6deac01))
 * **[utils](https://www.npmjs.com/package/@ckeditor/ckeditor5-utils)**: Added a user-agent check for the Blink engine to the [`env`](https://ckeditor.com/docs/ckeditor5/latest/api/module_utils_env-env.html) module. ([commit](https://github.com/ckeditor/ckeditor5/commit/a5a4b933e8ecef2b25ddbf03d371b89f26490025))
-* Introduced the `PastePlainText` feature that detects pasting with <kbd>ctrl/cmd</kbd> + <kbd>shift</kbd> + <kbd>v</kbd> keystroke. Closes [#7799](https://github.com/ckeditor/ckeditor5/issues/7799). ([commit](https://github.com/ckeditor/ckeditor5/commit/ab7bce94ebb7b6d59c5f3ea2d9433f71ddd864d2))
+* Introduced the `PastePlainText` feature that detects pasting with <kbd>Ctrl/cmd</kbd> + <kbd>Shift</kbd> + <kbd>V</kbd> keystroke. Closes [#7799](https://github.com/ckeditor/ckeditor5/issues/7799). ([commit](https://github.com/ckeditor/ckeditor5/commit/ab7bce94ebb7b6d59c5f3ea2d9433f71ddd864d2))
 
 ### Bug fixes
 
-* **[clipboard](https://www.npmjs.com/package/@ckeditor/ckeditor5-clipboard)**: Soft breaks are now properly placed in the plain text clipboard data representation by the editor. Closes [#8045](https://github.com/ckeditor/ckeditor5/issues/8045). ([commit](https://github.com/ckeditor/ckeditor5/commit/92ace8d7f3abe4c8247ca18697984eb538f3f5ec))
-* **[engine](https://www.npmjs.com/package/@ckeditor/ckeditor5-engine)**: `model.History#getOperations` was returning incorrect values if history had operations with negative version numbers or version numbers differing by more than one. Closes [#8143](https://github.com/ckeditor/ckeditor5/issues/8143). ([commit](https://github.com/ckeditor/ckeditor5/commit/3433e9a8ad64cc971cdfa4658a84585b4e23f19e))
+* **[clipboard](https://www.npmjs.com/package/@ckeditor/ckeditor5-clipboard)**: The editor now properly places soft breaks in the plain text clipboard data representation. Closes [#8045](https://github.com/ckeditor/ckeditor5/issues/8045). ([commit](https://github.com/ckeditor/ckeditor5/commit/92ace8d7f3abe4c8247ca18697984eb538f3f5ec))
+* **[engine](https://www.npmjs.com/package/@ckeditor/ckeditor5-engine)**: The `model.History#getOperations()` method was returning incorrect values if history had operations with negative version numbers or version numbers differing by more than one. Closes [#8143](https://github.com/ckeditor/ckeditor5/issues/8143). ([commit](https://github.com/ckeditor/ckeditor5/commit/3433e9a8ad64cc971cdfa4658a84585b4e23f19e))
 * **[image](https://www.npmjs.com/package/@ckeditor/ckeditor5-image)**: Aligned and fixed the styling for the split button in the `ImageInsert` dropdown. Closes [#7986](https://github.com/ckeditor/ckeditor5/issues/7986), [#7927](https://github.com/ckeditor/ckeditor5/issues/7927). ([commit](https://github.com/ckeditor/ckeditor5/commit/4671ed10a4af4c507abd594414771b714ff31cf7))
 * **[link](https://www.npmjs.com/package/@ckeditor/ckeditor5-link)**: Manual decorators will no longer be corrupted by the link image plugin. Closes [#7975](https://github.com/ckeditor/ckeditor5/issues/7975). ([commit](https://github.com/ckeditor/ckeditor5/commit/73eacd641f38ee261cd43ddfdf98df5e22eb2fdd))
 * **[link](https://www.npmjs.com/package/@ckeditor/ckeditor5-link)**: Prevented throwing an error when creating a link from a multi-block selection. Closes [#7907](https://github.com/ckeditor/ckeditor5/issues/7907). ([commit](https://github.com/ckeditor/ckeditor5/commit/eb92cfb7377fa066a4cb08163ade33a73639aab1))
 * **[link](https://www.npmjs.com/package/@ckeditor/ckeditor5-link)**: Pressing the <kbd>Enter</kbd> key should not throw an error when a non-collapsed selection ends with a valid URL. Closes [#7983](https://github.com/ckeditor/ckeditor5/issues/7983). ([commit](https://github.com/ckeditor/ckeditor5/commit/bcf3af6bee1edbd3a6d0c6874e0ad0518f73f518))
 * **[link](https://www.npmjs.com/package/@ckeditor/ckeditor5-link)**: The link balloon positioning should be correct when the selection is collapsed in some rare cases. Closes [#7926](https://github.com/ckeditor/ckeditor5/issues/7926). ([commit](https://github.com/ckeditor/ckeditor5/commit/b532a8ec55e1e1506b6f8030f944559b1cf0761d))
-* **[list](https://www.npmjs.com/package/@ckeditor/ckeditor5-list)**: List styles plugin will no longer cause the editor to crash when indenting a list item that is the last element in the editor. Closes [#8072](https://github.com/ckeditor/ckeditor5/issues/8072). ([commit](https://github.com/ckeditor/ckeditor5/commit/3e6ea99fe28225c52092b621c3593748bb1c168e))
+* **[list](https://www.npmjs.com/package/@ckeditor/ckeditor5-list)**: The list style plugin will no longer cause the editor to crash when indenting a list item that is the last element in the editor. Closes [#8072](https://github.com/ckeditor/ckeditor5/issues/8072). ([commit](https://github.com/ckeditor/ckeditor5/commit/3e6ea99fe28225c52092b621c3593748bb1c168e))
 * **[list](https://www.npmjs.com/package/@ckeditor/ckeditor5-list)**: Undo will restore a proper value of the `list-style-type` attribute in the view element after undoing list merge. Closes [#7930](https://github.com/ckeditor/ckeditor5/issues/7930). ([commit](https://github.com/ckeditor/ckeditor5/commit/3e6ea99fe28225c52092b621c3593748bb1c168e))
 * **[list](https://www.npmjs.com/package/@ckeditor/ckeditor5-list)**: Fixed a bug that prevented using the same list style for nested lists. Closes [#8081](https://github.com/ckeditor/ckeditor5/issues/8081). ([commit](https://github.com/ckeditor/ckeditor5/commit/3e6ea99fe28225c52092b621c3593748bb1c168e))
-* **[list](https://www.npmjs.com/package/@ckeditor/ckeditor5-list)**: The `listStyle` attribute should be inherited when inserting or replacing a `listItem` with the same kind of the list (the `listType` attribute for the inserted/modified item is equal to next/previous sibling list). Closes [#7932](https://github.com/ckeditor/ckeditor5/issues/7932). ([commit](https://github.com/ckeditor/ckeditor5/commit/03bf7211b1efc94ba087750f77006d534fdbaa5d))
-* **[list](https://www.npmjs.com/package/@ckeditor/ckeditor5-list)**: When removing the content between two lists items, the lists will be merged into a single list. The second list should adjust its `listStyle` attribute to the first list. Closes [#7879](https://github.com/ckeditor/ckeditor5/issues/7879). ([commit](https://github.com/ckeditor/ckeditor5/commit/7aa952823a8b182dc41075fa8cf4cc3a452eb78b))
+* **[list](https://www.npmjs.com/package/@ckeditor/ckeditor5-list)**: The `listStyle` attribute should be inherited when inserting or replacing a `listItem` with the same list type (the `listType` attribute for the inserted or modified item is equal to the next or previous sibling list). Closes [#7932](https://github.com/ckeditor/ckeditor5/issues/7932). ([commit](https://github.com/ckeditor/ckeditor5/commit/03bf7211b1efc94ba087750f77006d534fdbaa5d))
+* **[list](https://www.npmjs.com/package/@ckeditor/ckeditor5-list)**: When removing the content between two lists items, these lists will be merged into a single list. The second list should adjust its `listStyle` attribute to the first list. Closes [#7879](https://github.com/ckeditor/ckeditor5/issues/7879). ([commit](https://github.com/ckeditor/ckeditor5/commit/7aa952823a8b182dc41075fa8cf4cc3a452eb78b))
 * **[paste-from-office](https://www.npmjs.com/package/@ckeditor/ckeditor5-paste-from-office)**: Fixed pasting a list with an empty item from Google Docs. Closes [#7958](https://github.com/ckeditor/ckeditor5/issues/7958). ([commit](https://github.com/ckeditor/ckeditor5/commit/ebf6bb798cb274c840df86de073cf511c66d876c))
 
 ### Other changes
 
-* **[cloud-services-core](https://www.npmjs.com/package/@ckeditor/ckeditor-cloud-services-core)**: Change tokens refreshing mechanism to depend on the token expiration time. ([commit](https://github.com/ckeditor/ckeditor5/commit/501490a5729c413ee00311fe3c9a965fab2bb2ad))
-* **[image](https://www.npmjs.com/package/@ckeditor/ckeditor5-image)**: The `config.image.upload.panel.items` does not need to be set anymore in order to show the "insert image via URL form". It is enough to load the new `ImageInsert` plugin and use the new `imageInsert` button. See [#8034](https://github.com/ckeditor/ckeditor5/issues/8034). ([commit](https://github.com/ckeditor/ckeditor5/commit/48a9e943122e4cdd0e2647f03ebc7b17c402710e))
-* **[image](https://www.npmjs.com/package/@ckeditor/ckeditor5-image)**: Introduced `ImageInsert` as a standalone plugin that contains `ImageUpload` functionality. Closes [#7890](https://github.com/ckeditor/ckeditor5/issues/7890). ([commit](https://github.com/ckeditor/ckeditor5/commit/4671ed10a4af4c507abd594414771b714ff31cf7))
+* **[cloud-services-core](https://www.npmjs.com/package/@ckeditor/ckeditor-cloud-services-core)**: Change the token refreshing mechanism to depend on the token expiration time. ([commit](https://github.com/ckeditor/ckeditor5/commit/501490a5729c413ee00311fe3c9a965fab2bb2ad))
+* **[image](https://www.npmjs.com/package/@ckeditor/ckeditor5-image)**: The `config.image.upload.panel.items` option does not need to be set anymore in order to show the "insert image via URL form". It is enough to load the new `ImageInsert` plugin and use the new `imageInsert` button. See [#8034](https://github.com/ckeditor/ckeditor5/issues/8034). ([commit](https://github.com/ckeditor/ckeditor5/commit/48a9e943122e4cdd0e2647f03ebc7b17c402710e))
+* **[image](https://www.npmjs.com/package/@ckeditor/ckeditor5-image)**: Introduced `ImageInsert` as a standalone plugin that contains the `ImageUpload` functionality. Closes [#7890](https://github.com/ckeditor/ckeditor5/issues/7890). ([commit](https://github.com/ckeditor/ckeditor5/commit/4671ed10a4af4c507abd594414771b714ff31cf7))
 * **[image](https://www.npmjs.com/package/@ckeditor/ckeditor5-image)**: The `ImageUploadPanelView` form label should change depending on whether the image is selected or not. Closes [#7878](https://github.com/ckeditor/ckeditor5/issues/7878). ([commit](https://github.com/ckeditor/ckeditor5/commit/288fb97e00181a130dd2833d6e3aa74bdab5b7cc))
 * **[link](https://www.npmjs.com/package/@ckeditor/ckeditor5-link)**: The link plugin now comes with the autolink feature enabled by default. Closes [#7682](https://github.com/ckeditor/ckeditor5/issues/7682). ([commit](https://github.com/ckeditor/ckeditor5/commit/c9533f1752057fd833998a356282f8a625f4e39c))
-* **[theme-lark](https://www.npmjs.com/package/@ckeditor/ckeditor5-theme-lark)**: Balloon panel arrows pointing south should have realistic shadows. Closes [#7928](https://github.com/ckeditor/ckeditor5/issues/7928). ([commit](https://github.com/ckeditor/ckeditor5/commit/1c0b5c978fc23f3ca5cccba7b89711469838c315))
+* **[theme-lark](https://www.npmjs.com/package/@ckeditor/ckeditor5-theme-lark)**: Balloon panel arrows pointing down should have realistic shadows. Closes [#7928](https://github.com/ckeditor/ckeditor5/issues/7928). ([commit](https://github.com/ckeditor/ckeditor5/commit/1c0b5c978fc23f3ca5cccba7b89711469838c315))
 * Updated translations. ([commit](https://github.com/ckeditor/ckeditor5/commit/9256cbee9dc2173e1f1756fa566ba92a2d4bd6bc), [commit](https://github.com/ckeditor/ckeditor5/commit/08fc2a54b8953fe6000c900d8f1270b86edc1590))
 
 ### Released packages

+ 1 - 1
docs/_snippets/examples/document-editor.html

@@ -21,7 +21,7 @@
 							<td>9:30 AM - 11:30 AM</td>
 							<td>
 								<p><strong>Americano vs. Brewed</strong> - “know your coffee” with:&nbsp;</p>
-								<ul>
+								<ul style="list-style-type:circle;">
 									<li>Giulia Bianchi</li>
 									<li>Stefano Garau</li>
 									<li>Giuseppe Russo</li>

+ 0 - 14
docs/_snippets/features/mathtype.html

@@ -3,17 +3,3 @@
 
 	<p><math xmlns="http://www.w3.org/1998/Math/MathML"><mi>x</mi><mo>=</mo><mfrac><mrow><mo>-</mo><mi>b</mi><mo>&#177;</mo><msqrt><msup><mi>b</mi><mn>2</mn></msup><mo>-</mo><mn>4</mn><mi>a</mi><mi>c</mi></msqrt></mrow><mrow><mn>2</mn><mi>a</mi></mrow></mfrac></math></p>
 </div>
-
-<script>
-	(() => {
-		const linkElement = document.createElement( 'link' );
-		linkElement.href = 'https://ckeditor.com/docs/ckeditor5/21.0.0/snippets/features/mathtype/snippet.css';
-		linkElement.type = 'text/css';
-		linkElement.rel = 'stylesheet';
-		linkElement.dataset[ 'cke' ] = 'true';
-
-		document.head.appendChild( linkElement );
-	})()
-</script>
-<script src="https://ckeditor.com/docs/ckeditor5/21.0.0/assets/snippet.js"></script>
-<script src="https://ckeditor.com/docs/ckeditor5/21.0.0/snippets/features/mathtype/snippet.js"></script>

+ 62 - 1
docs/_snippets/features/mathtype.js

@@ -3,4 +3,65 @@
  * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
  */
 
-/* Content removed as a workaround in #7944. Should be restored once the upstream is fixed. */
+/* globals window, document, console */
+
+import ClassicEditor from '@ckeditor/ckeditor5-editor-classic/src/classiceditor';
+import ArticlePluginSet from '@ckeditor/ckeditor5-core/tests/_utils/articlepluginset';
+import EasyImage from '@ckeditor/ckeditor5-easy-image/src/easyimage';
+import MathType from '@wiris/mathtype-ckeditor5';
+import { CS_CONFIG } from '@ckeditor/ckeditor5-cloud-services/tests/_utils/cloud-services-config';
+
+ClassicEditor
+	.create( document.querySelector( '#mathtype-editor' ), {
+		plugins: [
+			ArticlePluginSet,
+			EasyImage,
+			MathType
+		],
+		toolbar: {
+			items: [
+				'heading',
+				'|',
+				'bold',
+				'italic',
+				'bulletedList',
+				'numberedList',
+				'|',
+				'outdent',
+				'indent',
+				'|',
+				'MathType',
+				'ChemType',
+				'|',
+				'blockQuote',
+				'link',
+				'mediaEmbed',
+				'insertTable',
+				'|',
+				'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
+	} )
+	.catch( err => {
+		console.error( err.stack );
+	} );

+ 2 - 2
docs/builds/guides/migrate.md

@@ -175,7 +175,7 @@ Note: The number of options was reduced on purpose. We understood that configuri
 			</td>
 		</tr>
 		<tr>
-			<td><a href="../../../../ckeditor4/latest/api/CKEDITOR_config.html#cfg-colorButton_backStyle">colorButton_backStyle</a> <br> <a href="../../../../ckeditor4/latest/api/CKEDITOR_config.html#cfg-colorButton_colors">colorButton_colors</a> <br> <a href="../../../../ckeditor4/latest/api/CKEDITOR_config.html#cfg-colorButton_colorsPerRow">colorButton_colorsPerRow</a> <br> <a href="../../../../ckeditor4/latest/api/CKEDITOR_config.html#cfg-colorButton_enableAutomatic">colorButton_enableAutomatic</a> <br> <a href="../../../../ckeditor4/latest/api/CKEDITOR_config.html#cfg-colorButton_enableMore">colorButton_enableMore</a> <br> <a href="../../../../ckeditor4/latest/api/CKEDITOR_config.html#cfg-colorButton_foreStyle">colorButton_foreStyle</a> <br> <a href="../../../../ckeditor4/latest/api/CKEDITOR_config.html#cfg-colorButton_historyRowLimit">colorButton_historyRowLimit</a> <br> <a href="../../../../ckeditor4/latest/api/CKEDITOR_config.html#cfg-colorButton_normalizeBackground">colorButton_normalizeBackground</a> <br> <a href="../../../../ckeditor4/latest/api/CKEDITOR_config.html#cfg-config.colorButton_renderContentColors">config.colorButton_renderContentColors</a></td>
+			<td><a href="../../../../ckeditor4/latest/api/CKEDITOR_config.html#cfg-colorButton_backStyle">colorButton_backStyle</a> <br> <a href="../../../../ckeditor4/latest/api/CKEDITOR_config.html#cfg-colorButton_colors">colorButton_colors</a> <br> <a href="../../../../ckeditor4/latest/api/CKEDITOR_config.html#cfg-colorButton_colorsPerRow">colorButton_colorsPerRow</a> <br> <a href="../../../../ckeditor4/latest/api/CKEDITOR_config.html#cfg-colorButton_enableAutomatic">colorButton_enableAutomatic</a> <br> <a href="../../../../ckeditor4/latest/api/CKEDITOR_config.html#cfg-colorButton_enableMore">colorButton_enableMore</a> <br> <a href="../../../../ckeditor4/latest/api/CKEDITOR_config.html#cfg-colorButton_foreStyle">colorButton_foreStyle</a> <br> <a href="../../../../ckeditor4/latest/api/CKEDITOR_config.html#cfg-colorButton_historyRowLimit">colorButton_historyRowLimit</a> <br> <a href="../../../../ckeditor4/latest/api/CKEDITOR_config.html#cfg-colorButton_normalizeBackground">colorButton_normalizeBackground</a> <br> <a href="../../../../ckeditor4/latest/api/CKEDITOR_config.html#cfg-colorButton_renderContentColors">config.colorButton_renderContentColors</a></td>
 			<td>
 				<p>Refer to the {@link features/font#configuring-the-font-color-and-font-background-color-features Font feature} guide to learn more about configuring font and background color in CKEditor 5.</p>
 				<p>At the same time, we also provide a new highlight plugin which allows for highlighting parts of the text with the <code>&lt;mark&gt;</code> element with different CSS classes that can be easily styled. See the {@link features/highlight Highlight feature guide} for more information .</p>
@@ -298,7 +298,7 @@ Note: The number of options was reduced on purpose. We understood that configuri
 			<td>Refer to the {@link features/easy-image Easy Image} and {@link features/image Images} feature guides to learn more about image-related features and Easy Image integration in CKEditor 5.</td>
 		</tr>
 		<tr>
-			<td><a href="../../../../ckeditor4/latest/api/CKEDITOR_config.html##cfg-editorplaceholder">editorplaceholder</a></td>
+			<td><a href="../../../../ckeditor4/latest/api/CKEDITOR_config.html#cfg-editorplaceholder">editorplaceholder</a></td>
 			<td>Refer to the {@link features/editor-placeholder Editor placeholder} feature guide to learn more about configuring this feature in CKEditor 5.</td>
 		</tr>
 		<tr>

+ 1 - 1
package.json

@@ -90,7 +90,7 @@
     "@ckeditor/ckeditor5-real-time-collaboration": "^23.0.0",
     "@ckeditor/ckeditor5-track-changes": "^23.0.0",
     "@webspellchecker/wproofreader-ckeditor5": "^1.0.5",
-    "@wiris/mathtype-ckeditor5": "7.20.0",
+    "@wiris/mathtype-ckeditor5": "^7.24.0",
     "babel-standalone": "^6.26.0",
     "coveralls": "^3.1.0",
     "css-loader": "^3.5.3",

+ 27 - 0
packages/ckeditor5-block-quote/docs/_snippets/features/block-quote.html

@@ -0,0 +1,27 @@
+<div id="snippet-block-quote">
+	<h3>The Famous Einstein Quote that never was</h3>
+
+	<p>All of us &mdash; well, maybe most of us &mdash; have encountered the following quote in the past few years:</p>
+
+	<blockquote>
+		<p>Everybody is a genius. But if you judge a fish by its ability to climb a tree, it will live its whole life believing that it is stupid.</p>
+
+		<p>Albert Einstein</p>
+	</blockquote>
+
+	<p>It is mostly popular on Facebook and other social networks, where people share it aplenty. No wonder, as it sounds great, it sounds smart, it is neat and, well, let&rsquo;s be frank &mdash; Albert is one hell of a figure!</p>
+
+	<p>The truth, however, is not as neat, not as great and people who mindlessly forward the quote are not as smart. Because, in fact, Einstein has never said that. It comes from a 2004 book &ldquo;The Rhythm of Life: Living Every Day with Passion and Purpose&rdquo; by Mathew Kelly, published almost 50 years after Albert&rsquo;s death in 1955.</p>
+
+	<p>He was, most probably, inspired by an essay by Amos E. Dolbear of Tufts titled &ldquo;An Educational Allegory&rdquo;, describing animals educated to work on their weakest features instead of their strongest ones. So an eagle was made to run, a penguin was forced to fly and so on. There is also the 1903 &ldquo;Jungle School Boards&rdquo; fable from an Illinois newspaper in which a monkey, a kangaroo and an elephant cannot agree on the curriculum for their animal school &mdash; should little animals be taught tree-climbing, jumping or looking wise?&nbsp;</p>
+
+	<p>In the late 1940s, something that appears to be an amalgam of the two was published and later reprinted with various changes in the 1960s. The idea evolved for decades and got mixed up with a few other quotes about being a genius originating back to the 1970s. Finally, Kelly wrote in his 2004 book:</p>
+
+	<blockquote>
+		<p>Albert Einstein wrote, &ldquo;Everybody is a genius. But if you judge a fish by its ability to climb a tree, it will live its whole life believing that it is stupid.&rdquo; The question I have for you at this point of our journey together is, &ldquo;What is your genius?&rdquo;</p>
+	</blockquote>
+
+	<p>Why he attributed this to Albert Einstein remains unclear. The fact is, the quote got popular. But apparently not everybody is a genius when it comes to fact-checking and sources...</p>
+
+</div>
+

+ 38 - 0
packages/ckeditor5-block-quote/docs/_snippets/features/block-quote.js

@@ -0,0 +1,38 @@
+/**
+ * @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, console */
+
+import ClassicEditor from '@ckeditor/ckeditor5-build-classic/src/ckeditor';
+
+ClassicEditor
+	.create( document.querySelector( '#snippet-block-quote' ), {
+		toolbar: {
+			items: [
+				'heading',
+				'|',
+				'bold',
+				'italic',
+				'link',
+				'|',
+				'bulletedList',
+				'numberedList',
+				'|',
+				'blockQuote',
+				'outdent',
+				'indent',
+				'|',
+				'undo',
+				'redo'
+			],
+			viewportTopOffset: window.getViewportTopOffsetConfig()
+		}
+	} )
+	.then( editor => {
+		window.editor = editor;
+	} )
+	.catch( err => {
+		console.error( err );
+	} );

+ 6 - 2
packages/ckeditor5-block-quote/docs/api/block-quote.md

@@ -8,13 +8,17 @@ category: api-reference
 
 This package implements block quote support for CKEditor 5.
 
+## Demo
+
+Check out the {@link features/block-quote#demo demo in the Block quote feature} guide.
+
 ## Documentation
 
-See the {@link module:block-quote/blockquote~BlockQuote} plugin documentation.
+See the {@link features/block-quote Block quote feature} guide and the {@link module:block-quote/blockquote~BlockQuote} plugin documentation.
 
 ## Installation
 
-```bash
+```
 npm install --save @ckeditor/ckeditor5-block-quote
 ```
 

+ 69 - 0
packages/ckeditor5-block-quote/docs/features/block-quote.md

@@ -0,0 +1,69 @@
+---
+category: features
+menu-title: Block quote
+---
+
+# Block quote
+
+The {@link module:block-quote/blockquote~BlockQuote} feature allows you to easily include block quotations or pull quotes in the rich-text content. This provides an attractive way to draw the readers' attention to selected parts of text. It also helps organize the content in a structured, elegant way and to manage the flow better.
+
+## Demo
+
+Use the editor below to see the block quote plugin in action.
+
+{@snippet features/block-quote}
+
+## Related features
+
+Here are some other CKEditor 5 features that you can use similarly to the block quote plugin to structure your text better:
+
+* The {@link features/indent block indentation feature} allows you to set indentation for text blocks such as paragraphs or lists.
+* The {@link features/code-blocks code block feature} allows for insertion of various code listings.
+
+## Installation
+
+To add this feature to your rich-text editor, install the [`@ckeditor/ckeditor5-block-quote`](https://www.npmjs.com/package/@ckeditor/ckeditor5-block-quote) package:
+
+```plaintext
+npm install --save @ckeditor/ckeditor5-block-quote
+```
+
+And add it to your plugin list configuration:
+
+```js
+import BlockQuote from '@ckeditor/ckeditor5-block-quote/src/blockquote';
+
+ClassicEditor
+	.create( document.querySelector( '#editor' ), {
+		plugins: [ BlockQuote, ... ],
+		toolbar: [ 'blockQuote', ... ]
+	} )
+	.then( ... )
+	.catch( ... );
+```
+
+<info-box info>
+	Read more about {@link builds/guides/integration/installing-plugins installing plugins}.
+</info-box>
+
+## Common API
+
+The {@link module:block-quote/blockquote~BlockQuote} plugin registers:
+
+* the `'blockQuote'` UI button component implemented by the {@link module:block-quote/blockquoteui~BlockQuoteUI block quote UI feature},
+* the `'blockQuote'` command implemented by the {@link module:block-quote/blockquoteediting~BlockQuoteEditing block quote editing feature}.
+
+The command can be executed using the {@link module:core/editor/editor~Editor#execute `editor.execute()`} method:
+
+```js
+// Applies block quote to the selected content.
+editor.execute( 'blockQuote' );
+```
+
+<info-box>
+	We recommend using the official {@link framework/guides/development-tools#ckeditor-5-inspector CKEditor 5 inspector} for development and debugging. It will give you tons of useful information about the state of the editor such as internal data structures, selection, commands, and many more.
+</info-box>
+
+## Contribute
+
+The source code of the feature is available on GitHub in https://github.com/ckeditor/ckeditor5/tree/master/packages/ckeditor5-block-quote.

File diff suppressed because it is too large
+ 0 - 0
packages/ckeditor5-build-decoupled-document/build/ckeditor.js


File diff suppressed because it is too large
+ 0 - 0
packages/ckeditor5-build-decoupled-document/build/ckeditor.js.map


File diff suppressed because it is too large
+ 0 - 0
packages/ckeditor5-build-decoupled-document/build/translations/ar.js


+ 1 - 1
packages/ckeditor5-build-decoupled-document/build/translations/ast.js

@@ -1 +1 @@
-!function(e){const a=e.ast=e.ast||{};a.dictionary=Object.assign(a.dictionary||{},{"%0 of %1":"",Aquamarine:"",Black:"",Blue:"",Bold:"Negrina","Bulleted List":"Llista con viñetes",Cancel:"Encaboxar","Centered image":"","Change image text alternative":"","Dim grey":"",Downloadable:"","Dropdown toolbar":"","Edit link":"","Editor toolbar":"","Enter image caption":"","Full size image":"Imaxen a tamañu completu",Green:"",Grey:"","Image toolbar":"","image widget":"complementu d'imaxen","Insert image":"",Italic:"Cursiva","Left aligned image":"","Light blue":"","Light green":"","Light grey":"",Link:"Enllazar","Link URL":"URL del enllaz",Next:"","Numbered List":"Llista numberada","Open in a new tab":"","Open link in new tab":"",Orange:"",Previous:"",Purple:"",Red:"",Redo:"Refacer","Remove color":"","Rich Text Editor, %0":"Editor de testu arriquecíu, %0","Right aligned image":"",Save:"Guardar","Show more items":"","Side image":"Imaxen llateral",Strikethrough:"","Text alternative":"","This link has no URL":"",Turquoise:"",Underline:"",Undo:"Desfacer",Unlink:"Desenllazar","Upload failed":"",White:"",Yellow:""}),a.getPluralForm=function(e){return 1!=e}}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
+!function(e){const l=e.ast=e.ast||{};l.dictionary=Object.assign(l.dictionary||{},{"%0 of %1":"",Aquamarine:"",Black:"",Blue:"",Bold:"Negrina","Bulleted List":"Llista con viñetes","Bulleted list styles toolbar":"",Cancel:"Encaboxar","Centered image":"","Change image text alternative":"",Circle:"",Decimal:"","Decimal with leading zero":"","Dim grey":"",Disc:"",Downloadable:"","Dropdown toolbar":"","Edit link":"","Editor toolbar":"","Enter image caption":"","Full size image":"Imaxen a tamañu completu",Green:"",Grey:"","Image toolbar":"","image widget":"complementu d'imaxen","Insert image":"",Italic:"Cursiva","Left aligned image":"","Light blue":"","Light green":"","Light grey":"",Link:"Enllazar","Link URL":"URL del enllaz","Lower-latin":"","Lower–roman":"",Next:"","Numbered List":"Llista numberada","Numbered list styles toolbar":"","Open in a new tab":"","Open link in new tab":"",Orange:"",Previous:"",Purple:"",Red:"",Redo:"Refacer","Remove color":"","Rich Text Editor, %0":"Editor de testu arriquecíu, %0","Right aligned image":"",Save:"Guardar","Show more items":"","Side image":"Imaxen llateral",Square:"",Strikethrough:"","Text alternative":"","This link has no URL":"","Toggle the circle list style":"","Toggle the decimal list style":"","Toggle the decimal with leading zero list style":"","Toggle the disc list style":"","Toggle the lower–latin list style":"","Toggle the lower–roman list style":"","Toggle the square list style":"","Toggle the upper–latin list style":"","Toggle the upper–roman list style":"",Turquoise:"",Underline:"",Undo:"Desfacer",Unlink:"Desenllazar","Upload failed":"","Upper-latin":"","Upper-roman":"",White:"",Yellow:""}),l.getPluralForm=function(e){return 1!=e}}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));

File diff suppressed because it is too large
+ 0 - 0
packages/ckeditor5-build-decoupled-document/build/translations/az.js


File diff suppressed because it is too large
+ 0 - 0
packages/ckeditor5-build-decoupled-document/build/translations/bg.js


File diff suppressed because it is too large
+ 0 - 0
packages/ckeditor5-build-decoupled-document/build/translations/cs.js


File diff suppressed because it is too large
+ 0 - 0
packages/ckeditor5-build-decoupled-document/build/translations/da.js


File diff suppressed because it is too large
+ 0 - 0
packages/ckeditor5-build-decoupled-document/build/translations/de.js


File diff suppressed because it is too large
+ 0 - 1
packages/ckeditor5-build-decoupled-document/build/translations/el.js


File diff suppressed because it is too large
+ 0 - 0
packages/ckeditor5-build-decoupled-document/build/translations/en-au.js


File diff suppressed because it is too large
+ 0 - 0
packages/ckeditor5-build-decoupled-document/build/translations/en-gb.js


File diff suppressed because it is too large
+ 0 - 1
packages/ckeditor5-build-decoupled-document/build/translations/eo.js


File diff suppressed because it is too large
+ 0 - 0
packages/ckeditor5-build-decoupled-document/build/translations/es.js


File diff suppressed because it is too large
+ 0 - 0
packages/ckeditor5-build-decoupled-document/build/translations/et.js


File diff suppressed because it is too large
+ 0 - 1
packages/ckeditor5-build-decoupled-document/build/translations/eu.js


File diff suppressed because it is too large
+ 0 - 0
packages/ckeditor5-build-decoupled-document/build/translations/fa.js


File diff suppressed because it is too large
+ 0 - 0
packages/ckeditor5-build-decoupled-document/build/translations/fi.js


File diff suppressed because it is too large
+ 0 - 0
packages/ckeditor5-build-decoupled-document/build/translations/fr.js


File diff suppressed because it is too large
+ 0 - 0
packages/ckeditor5-build-decoupled-document/build/translations/gl.js


File diff suppressed because it is too large
+ 0 - 0
packages/ckeditor5-build-decoupled-document/build/translations/he.js


File diff suppressed because it is too large
+ 0 - 0
packages/ckeditor5-build-decoupled-document/build/translations/hr.js


File diff suppressed because it is too large
+ 0 - 0
packages/ckeditor5-build-decoupled-document/build/translations/hu.js


File diff suppressed because it is too large
+ 0 - 0
packages/ckeditor5-build-decoupled-document/build/translations/id.js


File diff suppressed because it is too large
+ 0 - 0
packages/ckeditor5-build-decoupled-document/build/translations/it.js


File diff suppressed because it is too large
+ 0 - 0
packages/ckeditor5-build-decoupled-document/build/translations/ja.js


File diff suppressed because it is too large
+ 0 - 0
packages/ckeditor5-build-decoupled-document/build/translations/km.js


File diff suppressed because it is too large
+ 0 - 0
packages/ckeditor5-build-decoupled-document/build/translations/kn.js


File diff suppressed because it is too large
+ 0 - 0
packages/ckeditor5-build-decoupled-document/build/translations/ko.js


File diff suppressed because it is too large
+ 0 - 0
packages/ckeditor5-build-decoupled-document/build/translations/ku.js


File diff suppressed because it is too large
+ 0 - 0
packages/ckeditor5-build-decoupled-document/build/translations/lt.js


File diff suppressed because it is too large
+ 0 - 0
packages/ckeditor5-build-decoupled-document/build/translations/lv.js


File diff suppressed because it is too large
+ 0 - 0
packages/ckeditor5-build-decoupled-document/build/translations/nb.js


File diff suppressed because it is too large
+ 0 - 0
packages/ckeditor5-build-decoupled-document/build/translations/ne.js


File diff suppressed because it is too large
+ 0 - 0
packages/ckeditor5-build-decoupled-document/build/translations/nl.js


File diff suppressed because it is too large
+ 0 - 0
packages/ckeditor5-build-decoupled-document/build/translations/no.js


File diff suppressed because it is too large
+ 0 - 0
packages/ckeditor5-build-decoupled-document/build/translations/pl.js


File diff suppressed because it is too large
+ 0 - 0
packages/ckeditor5-build-decoupled-document/build/translations/pt-br.js


File diff suppressed because it is too large
+ 0 - 1
packages/ckeditor5-build-decoupled-document/build/translations/pt.js


File diff suppressed because it is too large
+ 0 - 0
packages/ckeditor5-build-decoupled-document/build/translations/ro.js


File diff suppressed because it is too large
+ 0 - 0
packages/ckeditor5-build-decoupled-document/build/translations/ru.js


+ 1 - 1
packages/ckeditor5-build-decoupled-document/build/translations/si.js

@@ -1 +1 @@
-!function(e){const i=e.si=e.si||{};i.dictionary=Object.assign(i.dictionary||{},{Bold:"තදකුරු","Bulleted List":"බුලටිත ලැයිස්තුව","Cannot upload file:":"ගොනුව යාවත්කාලීන කළ නොහැක:","Centered image":"","Change image text alternative":"","Enter image caption":"","Full size image":"","Image toolbar":"","image widget":"","Insert image":"පින්තූරය ඇතුල් කරන්න",Italic:"ඇලකුරු","Left aligned image":"","Numbered List":"අංකිත ලැයිස්තුව",Redo:"නැවත කරන්න","Right aligned image":"","Side image":"",Strikethrough:"","Text alternative":"",Underline:"",Undo:"අහෝසි කරන්න","Upload failed":"උඩුගත කිරීම අසාර්ථක විය"}),i.getPluralForm=function(e){return 1!=e}}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
+!function(e){const t=e.si=e.si||{};t.dictionary=Object.assign(t.dictionary||{},{Bold:"තදකුරු","Bulleted List":"බුලටිත ලැයිස්තුව","Bulleted list styles toolbar":"","Cannot upload file:":"ගොනුව යාවත්කාලීන කළ නොහැක:","Centered image":"","Change image text alternative":"",Circle:"",Decimal:"","Decimal with leading zero":"",Disc:"","Enter image caption":"","Full size image":"","Image toolbar":"","image widget":"","Insert image":"පින්තූරය ඇතුල් කරන්න",Italic:"ඇලකුරු","Left aligned image":"","Lower-latin":"","Lower–roman":"","Numbered List":"අංකිත ලැයිස්තුව","Numbered list styles toolbar":"",Redo:"නැවත කරන්න","Right aligned image":"","Side image":"",Square:"",Strikethrough:"","Text alternative":"","Toggle the circle list style":"","Toggle the decimal list style":"","Toggle the decimal with leading zero list style":"","Toggle the disc list style":"","Toggle the lower–latin list style":"","Toggle the lower–roman list style":"","Toggle the square list style":"","Toggle the upper–latin list style":"","Toggle the upper–roman list style":"",Underline:"",Undo:"අහෝසි කරන්න","Upload failed":"උඩුගත කිරීම අසාර්ථක විය","Upper-latin":"","Upper-roman":""}),t.getPluralForm=function(e){return 1!=e}}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));

File diff suppressed because it is too large
+ 0 - 0
packages/ckeditor5-build-decoupled-document/build/translations/sk.js


File diff suppressed because it is too large
+ 0 - 0
packages/ckeditor5-build-decoupled-document/build/translations/sq.js


File diff suppressed because it is too large
+ 0 - 0
packages/ckeditor5-build-decoupled-document/build/translations/sr-latn.js


File diff suppressed because it is too large
+ 0 - 0
packages/ckeditor5-build-decoupled-document/build/translations/sr.js


File diff suppressed because it is too large
+ 0 - 0
packages/ckeditor5-build-decoupled-document/build/translations/sv.js


File diff suppressed because it is too large
+ 0 - 0
packages/ckeditor5-build-decoupled-document/build/translations/tr.js


File diff suppressed because it is too large
+ 0 - 0
packages/ckeditor5-build-decoupled-document/build/translations/ug.js


File diff suppressed because it is too large
+ 0 - 0
packages/ckeditor5-build-decoupled-document/build/translations/uk.js


File diff suppressed because it is too large
+ 0 - 0
packages/ckeditor5-build-decoupled-document/build/translations/vi.js


File diff suppressed because it is too large
+ 0 - 0
packages/ckeditor5-build-decoupled-document/build/translations/zh-cn.js


File diff suppressed because it is too large
+ 0 - 0
packages/ckeditor5-build-decoupled-document/build/translations/zh.js


+ 2 - 0
packages/ckeditor5-build-decoupled-document/src/ckeditor.js

@@ -31,6 +31,7 @@ import Indent from '@ckeditor/ckeditor5-indent/src/indent';
 import IndentBlock from '@ckeditor/ckeditor5-indent/src/indentblock';
 import Link from '@ckeditor/ckeditor5-link/src/link';
 import List from '@ckeditor/ckeditor5-list/src/list';
+import ListStyle from '@ckeditor/ckeditor5-list/src/liststyle';
 import MediaEmbed from '@ckeditor/ckeditor5-media-embed/src/mediaembed';
 import Paragraph from '@ckeditor/ckeditor5-paragraph/src/paragraph';
 import PasteFromOffice from '@ckeditor/ckeditor5-paste-from-office/src/pastefromoffice';
@@ -67,6 +68,7 @@ DecoupledEditor.builtinPlugins = [
 	IndentBlock,
 	Link,
 	List,
+	ListStyle,
 	MediaEmbed,
 	Paragraph,
 	PasteFromOffice,

+ 12 - 0
packages/ckeditor5-build-decoupled-document/tests/ckeditor.js

@@ -180,6 +180,18 @@ describe( 'DecoupledEditor build', () => {
 				expect( editor.getData() ).to.equal( data );
 			} );
 
+			it( 'list style works', () => {
+				const data = [
+					'<ol style="list-style-type:upper-roman;">' +
+					'<li>Item 1.</li>' +
+					'<li>Item 2.</li>' +
+					'</ol>'
+				].join( '' );
+
+				editor.setData( data );
+				expect( editor.getData() ).to.equal( data );
+			} );
+
 			it( 'link works', () => {
 				const data = '<p><a href="//ckeditor.com">CKEditor.com</a></p>';
 

+ 2 - 2
packages/ckeditor5-build-decoupled-document/tests/manual/ckeditor.html

@@ -31,14 +31,14 @@
 		<p><a href="https://ckeditor.com">CKEditor&nbsp;5</a> is <i>under heavy development</i> and this demo
 		is not production-ready software. For example:</p>
 
-		<ul>
+		<ol style="list-style-type:upper-roman;">
 			<li><strong>Only Chrome, Opera and Safari are supported</strong>.</li>
 			<li>Firefox requires enabling the
 			<a href="https://developer.mozilla.org/en-US/docs/Web/API/Document/onselectionchange">
 			&ldquo;dom.select_events.enabled&rdquo;</a> option.</li>
 			<li><a href="https://github.com/ckeditor/ckeditor5/issues/342">Support for pasting</a>
 			is under development (content filtering is unstable).</li>
-		</ul>
+		</ol>
 
 		<p>It has <em>bugs</em> that we are aware of &mdash; and that we will be working on in the next few
 		iterations of the project. Stay tuned for some updates soon!</p>

+ 3 - 1
packages/ckeditor5-link/src/linkui.js

@@ -219,7 +219,9 @@ export default class LinkUI extends Plugin {
 			// Prevent focusing the search bar in FF, Chrome and Edge. See https://github.com/ckeditor/ckeditor5/issues/4811.
 			cancel();
 
-			this._showUI( true );
+			if ( linkCommand.isEnabled ) {
+				this._showUI( true );
+			}
 		} );
 
 		editor.ui.componentFactory.add( 'link', locale => {

+ 15 - 0
packages/ckeditor5-link/tests/linkui.js

@@ -795,6 +795,21 @@ describe( 'LinkUI', () => {
 			sinon.assert.calledWithExactly( spy, true );
 		} );
 
+		it( 'should not show the UI on Ctrl+K keystroke on content with LinkCommand disabled', () => {
+			const spy = testUtils.sinon.stub( linkUIFeature, '_showUI' ).returns( {} );
+			const command = editor.commands.get( 'link' );
+			command.isEnabled = false;
+
+			editor.keystrokes.press( {
+				keyCode: keyCodes.k,
+				ctrlKey: true,
+				preventDefault: sinon.spy(),
+				stopPropagation: sinon.spy()
+			} );
+
+			sinon.assert.notCalled( spy );
+		} );
+
 		it( 'should prevent default action on Ctrl+K keystroke', () => {
 			const preventDefaultSpy = sinon.spy();
 			const stopPropagationSpy = sinon.spy();

+ 1 - 1
packages/ckeditor5-list/docs/features/lists.md

@@ -26,7 +26,7 @@ Use the editor below to see the list feature plugin in action.
 
 ## List styles
 
-The {@link module:list/liststyle~ListStyle list style} feature allows customizing the list item markers. When enabled, it adds 3 styles for unordered lists and 6 styles for ordered lists to choose from. The styles can be changed via the dropdown that opens when you click the arrow next to the appropriate list button in the toolbar.
+The {@link module:list/liststyle~ListStyle list style} feature introduces some more styles for the list item markers. When enabled, it adds 3 styles for unordered lists and 6 styles for ordered lists to choose from. The styles can be changed via the dropdown that opens when you click the arrow next to the appropriate list button in the toolbar.
 
 ### Demo
 

+ 1 - 1
packages/ckeditor5-media-embed/src/automediaembed.js

@@ -16,7 +16,7 @@ import Undo from '@ckeditor/ckeditor5-undo/src/undo';
 import global from '@ckeditor/ckeditor5-utils/src/dom/global';
 import { insertMedia } from './utils';
 
-const URL_REGEXP = /^(?:http(s)?:\/\/)?[\w.-]+(?:\.[\w.-]+)+[\w\-._~:/?#[\]@!$&'()*+,;=]+$/;
+const URL_REGEXP = /^(?:http(s)?:\/\/)?[\w.-]+(?:\.[\w.-]+)+[\w\-._~:/?#[\]@!$&'()*+,;=%]+$/;
 
 /**
  * The auto-media embed plugin. It recognizes media links in the pasted content and embeds

+ 4 - 4
packages/ckeditor5-media-embed/src/mediaembedcommand.js

@@ -30,12 +30,13 @@ export default class MediaEmbedCommand extends Command {
 		const model = this.editor.model;
 		const selection = model.document.selection;
 		const schema = model.schema;
-		const position = selection.getFirstPosition();
+		const insertPosition = findOptimalInsertionPosition( selection, model );
 		const selectedMedia = getSelectedMediaModelWidget( selection );
 
-		let parent = position.parent;
+		let parent = insertPosition.parent;
 
-		if ( parent != parent.root ) {
+		// The model.insertContent() will remove empty parent (unless it is a $root or a limit).
+		if ( parent.isEmpty && !model.schema.isLimit( parent ) ) {
 			parent = parent.parent;
 		}
 
@@ -68,4 +69,3 @@ export default class MediaEmbedCommand extends Command {
 		}
 	}
 }
-

+ 11 - 0
packages/ckeditor5-media-embed/tests/automediaembed.js

@@ -398,6 +398,17 @@ describe( 'AutoMediaEmbed - integration', () => {
 					return newEditor.destroy();
 				} );
 		} );
+
+		it( 'works for URL with %-symbols', () => {
+			setData( editor.model, '<paragraph>[]</paragraph>' );
+			pasteHtml( editor, 'http://youtube.com/watch?v=H08tGjXNHO4%2' );
+
+			clock.tick( 100 );
+
+			expect( getData( editor.model ) ).to.equal(
+				'[<media url="http://youtube.com/watch?v=H08tGjXNHO4%2"></media>]'
+			);
+		} );
 	} );
 
 	describe( 'use real timers', () => {

+ 22 - 0
packages/ckeditor5-media-embed/tests/insertmediacommand.js

@@ -50,6 +50,28 @@ describe( 'MediaEmbedCommand', () => {
 			expect( command.isEnabled ).to.be.true;
 		} );
 
+		it( 'should be true if a media is selected in a table cell', () => {
+			model.schema.register( 'table', { allowIn: '$root', isLimit: true, isObject: true, isBlock: true } );
+			model.schema.register( 'tableRow', { allowIn: 'table', isLimit: true } );
+			model.schema.register( 'tableCell', { allowIn: 'tableRow', isLimit: true, isSelectable: true } );
+			model.schema.extend( 'media', { allowIn: 'tableCell' } );
+
+			setData( model, '<table><tableRow><tableCell>[<media></media>]</tableCell></tableRow></table>' );
+
+			expect( command.isEnabled ).to.be.true;
+		} );
+
+		it( 'should be true if in a table cell', () => {
+			model.schema.register( 'table', { allowIn: '$root', isLimit: true, isObject: true, isBlock: true } );
+			model.schema.register( 'tableRow', { allowIn: 'table', isLimit: true } );
+			model.schema.register( 'tableCell', { allowIn: 'tableRow', isLimit: true, isSelectable: true } );
+			model.schema.extend( '$block', { allowIn: 'tableCell' } );
+
+			setData( model, '<table><tableRow><tableCell><p>foo[]</p></tableCell></tableRow></table>' );
+
+			expect( command.isEnabled ).to.be.true;
+		} );
+
 		it( 'should be true when the selection directly in a block', () => {
 			model.schema.register( 'block', { inheritAllFrom: '$block' } );
 			model.schema.extend( '$text', { allowIn: 'block' } );

+ 8 - 8
packages/ckeditor5-page-break/docs/features/page-break.md

@@ -15,6 +15,14 @@ Use the editor to see the {@link module:page-break/pagebreak~PageBreak} plugin i
 
 {@snippet features/page-break}
 
+## Related features
+
+Here are some useful CKEditor 5 features that you can use together with the page break plugin for an all-around paged editing experience:
+
+* The [pagination feature](https://ckeditor.com/docs/ckeditor5/latest/features/pagination.html) allows you to see where page breaks would be after the document is [exported to PDF](https://ckeditor.com/docs/ckeditor5/latest/features/export-pdf.html) or [to Word](https://ckeditor.com/docs/ckeditor5/latest/features/export-word.html).
+* The [export to Word](https://ckeditor.com/docs/ckeditor5/latest/features/export-word.html) feature will allow you to generate editable, paged `.docx` files out of your editor-created content.
+* The [export to PDF](https://ckeditor.com/docs/ckeditor5/latest/features/export-pdf.html) feature will allow you to generate portable, paged PDF files out of your editor-created content.
+
 ## Installation
 
 To add this feature to your rich-text editor, install the [`@ckeditor/ckeditor5-page-break`](https://www.npmjs.com/package/@ckeditor/ckeditor5-page-break) package:
@@ -41,14 +49,6 @@ ClassicEditor
 	Read more about {@link builds/guides/integration/installing-plugins installing plugins}.
 </info-box>
 
-## Related features
-
-Here are some useful CKEditor 5 features that you can use together with the page break plugin for an all-around paged editing experience:
-
-* The [pagination feature](https://ckeditor.com/docs/ckeditor5/latest/features/pagination.html) allows you to see where page breaks would be after the document is [exported to PDF](https://ckeditor.com/docs/ckeditor5/latest/features/export-pdf.html) or [to Word](https://ckeditor.com/docs/ckeditor5/latest/features/export-word.html).
-* The [export to Word](https://ckeditor.com/docs/ckeditor5/latest/features/export-word.html) feature will allow you to generate editable, paged `.docx` files out of your editor-created content.
-* The [export to PDF](https://ckeditor.com/docs/ckeditor5/latest/features/export-pdf.html) feature will allow you to generate portable, paged PDF files out of your editor-created content.
-
 ## Common API
 
 The {@link module:page-break/pagebreak~PageBreak} plugin registers:

+ 14 - 14
packages/ckeditor5-paste-from-office/tests/_data/image/adjacent-groups/model.edge.word2016.html

@@ -2,30 +2,30 @@
 
 <table>
 	<tableRow>
-		<tableCell><paragraph></paragraph></tableCell>
-		<tableCell><paragraph></paragraph></tableCell>
-		<tableCell><paragraph></paragraph></tableCell>
-		<tableCell><paragraph></paragraph></tableCell>
-		<tableCell><paragraph></paragraph></tableCell>
+		<tableCell></tableCell>
+		<tableCell></tableCell>
+		<tableCell></tableCell>
+		<tableCell></tableCell>
+		<tableCell></tableCell>
 	</tableRow>
 	<tableRow>
-		<tableCell><paragraph></paragraph></tableCell>
-		<tableCell colspan="4"><paragraph></paragraph></tableCell>
+		<tableCell></tableCell>
+		<tableCell colspan="4"></tableCell>
 	</tableRow>
 	<tableRow>
-		<tableCell><paragraph></paragraph></tableCell>
+		<tableCell></tableCell>
 	</tableRow>
 	<tableRow>
-		<tableCell><paragraph></paragraph></tableCell>
-		<tableCell colspan="2"><paragraph></paragraph></tableCell>
-		<tableCell rowspan="2"><paragraph></paragraph></tableCell>
+		<tableCell></tableCell>
+		<tableCell colspan="2"></tableCell>
+		<tableCell rowspan="2"></tableCell>
 	</tableRow>
 	<tableRow>
-		<tableCell><paragraph></paragraph></tableCell>
-		<tableCell rowspan="2"><paragraph></paragraph></tableCell>
+		<tableCell></tableCell>
+		<tableCell rowspan="2"></tableCell>
 	</tableRow>
 	<tableRow>
-		<tableCell><paragraph></paragraph></tableCell>
+		<tableCell></tableCell>
 	</tableRow>
 </table>
 

+ 8 - 8
packages/ckeditor5-paste-from-office/tests/_data/image/adjacent-groups/model.safari.word2016.html

@@ -1,20 +1,20 @@
 <paragraph></paragraph>
 <table>
 	<tableRow>
-		<tableCell><paragraph></paragraph></tableCell>
-		<tableCell><paragraph></paragraph></tableCell>
-		<tableCell><paragraph></paragraph></tableCell>
+		<tableCell></tableCell>
+		<tableCell></tableCell>
+		<tableCell></tableCell>
 	</tableRow>
 	<tableRow>
-		<tableCell><paragraph></paragraph></tableCell>
-		<tableCell colspan="2"><paragraph></paragraph></tableCell>
+		<tableCell></tableCell>
+		<tableCell colspan="2"></tableCell>
 	</tableRow>
 	<tableRow>
-		<tableCell><paragraph></paragraph></tableCell>
+		<tableCell></tableCell>
 	</tableRow>
 	<tableRow>
-		<tableCell><paragraph></paragraph></tableCell>
-		<tableCell><paragraph></paragraph></tableCell>
+		<tableCell></tableCell>
+		<tableCell></tableCell>
 	</tableRow>
 </table>
 

+ 14 - 14
packages/ckeditor5-paste-from-office/tests/_data/image/adjacent-groups/model.word2016.html

@@ -1,29 +1,29 @@
 <table>
 	<tableRow>
-		<tableCell><paragraph></paragraph></tableCell>
-		<tableCell><paragraph></paragraph></tableCell>
-		<tableCell><paragraph></paragraph></tableCell>
-		<tableCell><paragraph></paragraph></tableCell>
-		<tableCell><paragraph></paragraph></tableCell>
+		<tableCell></tableCell>
+		<tableCell></tableCell>
+		<tableCell></tableCell>
+		<tableCell></tableCell>
+		<tableCell></tableCell>
 	</tableRow>
 	<tableRow>
-		<tableCell><paragraph></paragraph></tableCell>
-		<tableCell colspan="4"><paragraph></paragraph></tableCell>
+		<tableCell></tableCell>
+		<tableCell colspan="4"></tableCell>
 	</tableRow>
 	<tableRow>
-		<tableCell><paragraph></paragraph></tableCell>
+		<tableCell></tableCell>
 	</tableRow>
 	<tableRow>
-		<tableCell><paragraph></paragraph></tableCell>
-		<tableCell colspan="2"><paragraph></paragraph></tableCell>
-		<tableCell rowspan="2"><paragraph></paragraph></tableCell>
+		<tableCell></tableCell>
+		<tableCell colspan="2"></tableCell>
+		<tableCell rowspan="2"></tableCell>
 	</tableRow>
 	<tableRow>
-		<tableCell><paragraph></paragraph></tableCell>
-		<tableCell rowspan="2"><paragraph></paragraph></tableCell>
+		<tableCell></tableCell>
+		<tableCell rowspan="2"></tableCell>
 	</tableRow>
 	<tableRow>
-		<tableCell><paragraph></paragraph></tableCell>
+		<tableCell></tableCell>
 	</tableRow>
 </table>
 

+ 0 - 25
packages/ckeditor5-table/src/converters/upcasttable.js

@@ -84,31 +84,6 @@ export function skipEmptyTableRow() {
 	};
 }
 
-/**
- * A converter that ensures an empty paragraph is inserted in a table cell if no other content was converted.
- *
- * @returns {Function} Conversion helper.
- */
-export function ensureParagraphInTableCell( elementName ) {
-	return dispatcher => {
-		dispatcher.on( `element:${ elementName }`, ( evt, data, conversionApi ) => {
-			// The default converter will create a model range on converted table cell.
-			if ( !data.modelRange ) {
-				return;
-			}
-
-			const tableCell = data.modelRange.start.nodeAfter;
-
-			// Ensure a paragraph in the model for empty table cells for converted table cells.
-			if ( !tableCell.childCount ) {
-				const modelCursor = conversionApi.writer.createPositionAt( tableCell, 0 );
-
-				conversionApi.writer.insertElement( 'paragraph', modelCursor );
-			}
-		}, { priority: 'low' } );
-	};
-}
-
 // Scans table rows and extracts required metadata from the table:
 //
 // headingRows    - The number of rows that go as table headers.

+ 1 - 3
packages/ckeditor5-table/src/tableediting.js

@@ -9,7 +9,7 @@
 
 import Plugin from '@ckeditor/ckeditor5-core/src/plugin';
 
-import upcastTable, { ensureParagraphInTableCell, skipEmptyTableRow } from './converters/upcasttable';
+import upcastTable, { skipEmptyTableRow } from './converters/upcasttable';
 import {
 	convertParagraphInTableCell,
 	downcastInsertCell,
@@ -107,8 +107,6 @@ export default class TableEditing extends Plugin {
 		// Table cell conversion.
 		conversion.for( 'upcast' ).elementToElement( { model: 'tableCell', view: 'td' } );
 		conversion.for( 'upcast' ).elementToElement( { model: 'tableCell', view: 'th' } );
-		conversion.for( 'upcast' ).add( ensureParagraphInTableCell( 'td' ) );
-		conversion.for( 'upcast' ).add( ensureParagraphInTableCell( 'th' ) );
 
 		conversion.for( 'editingDowncast' ).add( downcastInsertCell() );
 

+ 1 - 1
packages/ckeditor5-table/tests/converters/upcasttable.js

@@ -285,7 +285,7 @@ describe( 'upcastTable()', () => {
 		);
 
 		expectModel(
-			'<fooTable><fooRow><fooCell><paragraph></paragraph></fooCell></fooRow></fooTable>'
+			'<fooTable><fooRow><fooCell></fooCell></fooRow></fooTable>'
 		);
 	} );
 

+ 41 - 0
packages/ckeditor5-table/tests/tableclipboard-paste.js

@@ -3917,6 +3917,36 @@ describe( 'table clipboard', () => {
 				[ '02', '21', '22' ]
 			] ) );
 		} );
+
+		it( 'should not blow up when pasting unsupported element in table', async () => {
+			await createEditor( [ TableCellPropertiesEditing ] );
+
+			pasteHtml( editor,
+				'<table>' +
+					'<tbody>' +
+						'<tr>' +
+							'<td>' +
+								'<div>' +
+									'<table>' +
+										'<tbody>' +
+											'<tr>' +
+												'<td style="border: 2px solid rgb(242, 242, 242);">' +
+													'<p>Test</p>' +
+												'</td>' +
+											'</tr>' +
+										'</tbody>' +
+									'</table>' +
+								'</div>' +
+							'</td>' +
+						'</tr>' +
+					'</tbody>' +
+				'</table>'
+			);
+
+			assertEqualMarkup( getModelData( model, { withoutSelection: true } ), modelTable( [
+				[ '<paragraph>Test</paragraph><paragraph></paragraph>' ]
+			] ) );
+		} );
 	} );
 
 	async function createEditor( extraPlugins = [] ) {
@@ -3930,6 +3960,17 @@ describe( 'table clipboard', () => {
 		tableSelection = editor.plugins.get( 'TableSelection' );
 	}
 
+	function pasteHtml( editor, html ) {
+		const data = {
+			dataTransfer: createDataTransfer(),
+			stopPropagation() {},
+			preventDefault() {}
+		};
+
+		data.dataTransfer.setData( 'text/html', html );
+		editor.editing.view.document.fire( 'paste', data );
+	}
+
 	function pasteTable( tableData, attributes = {} ) {
 		const data = {
 			dataTransfer: createDataTransfer(),

+ 1 - 0
packages/ckeditor5-ui/src/panel/balloon/contextualballoon.js

@@ -444,6 +444,7 @@ export default class ContextualBalloon extends Plugin {
 	}
 
 	/**
+	 * @private
 	 * @returns {module:ui/view~View}
 	 */
 	_createFakePanelsView() {

Some files were not shown because too many files changed in this diff