v35.3.0
Release highlights
We are happy to announce the release of CKEditor 5 v35.3.0.
This release introduces the following new features:
- Typing and text composition (IME) support has been refactored to use
beforeInput
DOM events instead of DOM mutations and keystrokes. - Track changes integration has been added for the document lists and table caption features.
- Improvements to the
IconView
component now allow rich colorful icons. Several other changes has also been added to improve the way the icons are handled. - External annotations in comments and track changes have gotten additional visual information to emphasize that the author name comes from an external source.
- Several key packages were rewritten into TypeScript (listed below).
There were also bug fixes:
- External comments are no longer assigned to the user who imported them. Im means these are not editable by them and do not behave like they were created by that user (e.g. they do not join with other suggestions created by them).
- Tooltips handling has been improved to better follow user interface events.
- Fixed incorrect annotations order in the sidebar when a comment or a suggestion was set on a multi-line text (and in similar cases).
Read about release highlights in a dedicated blog post: https://ckeditor.com/blog/ckeditor-5-v35.3.0-with-a-revamped-typing-and-ime-handling-better-external-annotations-handling/
MINOR BREAKING CHANGES ℹ️
- clipboard: The
DataTransfer
class has been moved to the@ckeditor/ckeditor5-engine
package. - track-changes: The
SuggestionDescriptionFactory#getItemLabel()
method now takes element object instead of an element name. - track-changes: The
SuggestionDescriptionFactory#registerElementLabel()
method now requires a second parameter to be a function (before, strings were also accepted). This may affect you if you provide custom plugins and use the track changes feature. - The
input
command is now deprecated, you should use theinsertText
command instead. See #11438.
Features
- engine: Typing and text composition (IME) support has been refactored to use
beforeInput
DOM events instead of DOM mutations and keystrokes. Closes #11438. (commit) - enter: Typing and text composition (IME) support has been refactored to use
beforeInput
DOM events instead of DOM mutations and keystrokes. Closes #11438. (commit) - track-changes: Added track changes integration for document lists feature.
- track-changes: Added track changes integration for table caption feature.
- typing: Typing and text composition (IME) support has been refactored to use
beforeInput
DOM events instead of DOM mutations and keystrokes. Closes #11438. (commit)
Bug fixes
- comments: Fixed incorrect annotations order in the sidebar when a comment or a suggestion was set on a multi-line text (and in similar cases).
- comments: External comments (e.g., imported from a Word file) should not be editable by the user who imported them.
- engine: The
ModifySelection
class with word unit should not stop at the attribute boundary. Closes #12673, #12657. (commit) - engine: Fixed conversion of the non-collapsed selection anchored between the
<br>
elements (in Safari). (commit) - table: The selection should not change when a table caption is turned off. (commit)
- theme-lark: The
SwitchButtonView
's text and background color should stay the same regardless of the state because the toggle switch carries all the necessary information. Closes #12519. (commit) - track-changes: Fixed incorrect annotations order in the sidebar when a comment or a suggestion was set on a multi-line text (and in similar cases).
- track-changes: External suggestions (e.g., imported from a Word file) should not behave like suggestions created by the user who imported them (e.g., should not join with other suggestions created by the user, etc.).
- ui: A tooltip should also hide when the element it is attached to hides. Closes #12492. (commit)
- ui: Improvements to the
IconView
component now allow rich colorful icons. Closes #12597, #12599. (commit) - ui: Preserved presentational attributes from the icon source on the
<svg>
element (#12597). (commit) - ui: It is possible to opt out from the icon color inheritance (#12599). (commit)
- ui: Excluded icon internals from the CSS reset (#12599). (commit)
- ui: UI tooltips should continue showing up until the last editor gets destroyed. Closes #12602. (commit)
Other changes
-
comments: Added additional visual information in comments and track changes annotations to emphasize that the author name comes from an external source.
-
comments: Introduced
@external.source
attribute for comments and suggestions to better inform what is the source of the external data. Improved related labels. -
enter: The
enter
event is now mapped from a subset ofbeforeInput
events. See #11438. (commit) -
export-pdf: Support has been added for executing an asynchronous callback passed via the
config.exportPdf.dataCallback
configuration. -
export-word: Support has been added for executing an asynchronous callback passed via the
config.exportWord.dataCallback
configuration. -
track-changes: Introduced performance improvements for a scenario when undo is used after accepting or discarding a huge number of suggestions. Accepting or discarding many suggestions at once may now result in multiple undo steps.
-
track-changes: The
SuggestionDescriptionFactory#registerElementLabel()
method now accepts a callback function as the first parameter. This allows for setting labels for elements based on attributes or other factors. -
track-changes: Added an additional visual information in comments and track changes annotations to emphasize that the author name comes from an external source.
-
track-changes: Introduced the
@external.source
attribute for comments and suggestions to better inform what is the source of the external data. Improved related labels. -
typing: Introduced a new
insertText
event mapped from a subset ofbeforeInput
events. See #11438. (commit) -
typing: The
delete
event is now mapped from a subset ofbeforeInput
events. See #11438. (commit) -
ui: Allowed inserting extra children next to the field inside
LabeledFieldView
. Closes #12598. (commit) -
utils: Added types to
Config
and merged thenumber
type intoPriorityString
. Closes #12218. (commit) -
Several packages have been rewritten to TypeScript:
@ckeditor/ckeditor5-clipboard
: closes #12615. (commit)@ckeditor/ckeditor5-core
: closes #11727. (commit)@ckeditor/ckeditor5-enter
: closes #12608. (commit)@ckeditor/ckeditor5-paragraph
: closes #12609. (commit)@ckeditor/ckeditor5-select-all
: closes #12610. (commit)@ckeditor/ckeditor5-typing
: closes #12611. (commit)@ckeditor/ckeditor5-ui
: closes #11726. (commit)@ckeditor/ckeditor5-undo
: closes #12612. (commit)@ckeditor/ckeditor5-upload
: closes #12613. (commit)@ckeditor/ckeditor5-widget
: closes #12614. (commit)
-
Adds types for the
CommandCollection.execute()
andEditor.execute()
methods. Closes #12678. (commit)
Released packages
Check out the Versioning policy guide for more information.
Released packages (summary)
Minor releases (contain minor breaking changes):
- @ckeditor/ckeditor5-clipboard: v35.2.1 => v35.3.0
- @ckeditor/ckeditor5-track-changes: v35.2.1 => v35.3.0
Releases containing new features:
- @ckeditor/ckeditor5-block-quote: v35.2.1 => v35.3.0
- @ckeditor/ckeditor5-engine: v35.2.1 => v35.3.0
- @ckeditor/ckeditor5-enter: v35.2.1 => v35.3.0
- @ckeditor/ckeditor5-image: v35.2.1 => v35.3.0
- @ckeditor/ckeditor5-link: v35.2.1 => v35.3.0
- @ckeditor/ckeditor5-list: v35.2.1 => v35.3.0
- @ckeditor/ckeditor5-media-embed: v35.2.1 => v35.3.0
- @ckeditor/ckeditor5-restricted-editing: v35.2.1 => v35.3.0
- @ckeditor/ckeditor5-special-characters: v35.2.1 => v35.3.0
- @ckeditor/ckeditor5-table: v35.2.1 => v35.3.0
- @ckeditor/ckeditor5-typing: v35.2.1 => v35.3.0
- @ckeditor/ckeditor5-undo: v35.2.1 => v35.3.0
- @ckeditor/ckeditor5-widget: v35.2.1 => v35.3.0
Other releases:
- @ckeditor/ckeditor5-adapter-ckfinder: v35.2.1 => v35.3.0
- @ckeditor/ckeditor5-alignment: v35.2.1 => v35.3.0
- @ckeditor/ckeditor5-autoformat: v35.2.1 => v35.3.0
- @ckeditor/ckeditor5-autosave: v35.2.1 => v35.3.0
- @ckeditor/ckeditor5-basic-styles: v35.2.1 => v35.3.0
- @ckeditor/ckeditor5-build-balloon: v35.2.1 => v35.3.0
- @ckeditor/ckeditor5-build-balloon-block: v35.2.1 => v35.3.0
- @ckeditor/ckeditor5-build-classic: v35.2.1 => v35.3.0
- @ckeditor/ckeditor5-build-decoupled-document: v35.2.1 => v35.3.0
- @ckeditor/ckeditor5-build-inline: v35.2.1 => v35.3.0
- @ckeditor/ckeditor5-ckbox: v35.2.1 => v35.3.0
- @ckeditor/ckeditor5-ckfinder: v35.2.1 => v35.3.0
- @ckeditor/ckeditor5-cloud-services: v35.2.1 => v35.3.0
- @ckeditor/ckeditor5-code-block: v35.2.1 => v35.3.0
- @ckeditor/ckeditor5-collaboration-core: v35.2.1 => v35.3.0
- @ckeditor/ckeditor5-comments: v35.2.1 => v35.3.0
- @ckeditor/ckeditor5-core: v35.2.1 => v35.3.0
- @ckeditor/ckeditor5-easy-image: v35.2.1 => v35.3.0
- @ckeditor/ckeditor5-editor-balloon: v35.2.1 => v35.3.0
- @ckeditor/ckeditor5-editor-classic: v35.2.1 => v35.3.0
- @ckeditor/ckeditor5-editor-decoupled: v35.2.1 => v35.3.0
- @ckeditor/ckeditor5-editor-inline: v35.2.1 => v35.3.0
- @ckeditor/ckeditor5-essentials: v35.2.1 => v35.3.0
- @ckeditor/ckeditor5-export-pdf: v35.2.1 => v35.3.0
- @ckeditor/ckeditor5-export-word: v35.2.1 => v35.3.0
- @ckeditor/ckeditor5-find-and-replace: v35.2.1 => v35.3.0
- @ckeditor/ckeditor5-font: v35.2.1 => v35.3.0
- @ckeditor/ckeditor5-heading: v35.2.1 => v35.3.0
- @ckeditor/ckeditor5-highlight: v35.2.1 => v35.3.0
- @ckeditor/ckeditor5-horizontal-line: v35.2.1 => v35.3.0
- @ckeditor/ckeditor5-html-embed: v35.2.1 => v35.3.0
- @ckeditor/ckeditor5-html-support: v35.2.1 => v35.3.0
- @ckeditor/ckeditor5-import-word: v35.2.1 => v35.3.0
- @ckeditor/ckeditor5-indent: v35.2.1 => v35.3.0
- @ckeditor/ckeditor5-language: v35.2.1 => v35.3.0
- @ckeditor/ckeditor5-markdown-gfm: v35.2.1 => v35.3.0
- @ckeditor/ckeditor5-mention: v35.2.1 => v35.3.0
- @ckeditor/ckeditor5-minimap: v35.2.1 => v35.3.0
- @ckeditor/ckeditor5-operations-compressor: v35.2.1 => v35.3.0
- @ckeditor/ckeditor5-page-break: v35.2.1 => v35.3.0
- @ckeditor/ckeditor5-pagination: v35.2.1 => v35.3.0
- @ckeditor/ckeditor5-paragraph: v35.2.1 => v35.3.0
- @ckeditor/ckeditor5-paste-from-office: v35.2.1 => v35.3.0
- @ckeditor/ckeditor5-real-time-collaboration: v35.2.1 => v35.3.0
- @ckeditor/ckeditor5-remove-format: v35.2.1 => v35.3.0
- @ckeditor/ckeditor5-revision-history: v35.2.1 => v35.3.0
- @ckeditor/ckeditor5-select-all: v35.2.1 => v35.3.0
- @ckeditor/ckeditor5-source-editing: v35.2.1 => v35.3.0
- @ckeditor/ckeditor5-style: v35.2.1 => v35.3.0
- @ckeditor/ckeditor5-theme-lark: v35.2.1 => v35.3.0
- @ckeditor/ckeditor5-ui: v35.2.1 => v35.3.0
- @ckeditor/ckeditor5-upload: v35.2.1 => v35.3.0
- @ckeditor/ckeditor5-utils: v35.2.1 => v35.3.0
- @ckeditor/ckeditor5-watchdog: v35.2.1 => v35.3.0
- @ckeditor/ckeditor5-word-count: v35.2.1 => v35.3.0
- @ckeditor/letters: v35.2.1 => v35.3.0
- ckeditor5-collaboration: v35.2.1 => v35.3.0