Skip to content

Latest commit

 

History

History
833 lines (706 loc) · 111 KB

CHANGELOG.md

File metadata and controls

833 lines (706 loc) · 111 KB

Changelog

43.3.0 (October 29, 2024)

We are happy to announce the release of CKEditor 5 v43.3.0.

Release highlights

Performance improvements

We have improved how the editor handles the document structure by making it more reliable and efficient to access specific elements and verify their positions.

  • Node index and offset caching: The Node and NodeList elements now cache index and offset values, reducing the need for recalculations and significantly boosting overall performance during model operations.
  • Selection range validation: The newly implemented Position#isValid() method is also utilized to better validate selection ranges, ensuring more consistent behavior in various editing scenarios.
  • Performance improvements in numbers: The editor now loads content between 3x and, in some cases, up to 6x faster, depending on the type and size of the content. For instance, where a specific 200-page document previously took almost 25 seconds to load, the time has now been reduced to just 3.5 seconds.

We’re committed to ongoing performance enhancements, so you can expect even faster, smoother experience in future updates.

Export to Word watermark support

A new configuration option has been added to include a watermark when exporting documents to Word, providing additional flexibility in document branding and protection.

Notable bug fixes and improvements

  • Suggestions retention on revision restore: Suggestions are no longer lost in specific cases when restoring revisions with changes from multiple users. The revision tracking process has been improved to ensure that all operations, including markers, are handled and saved correctly during synchronization. This fix resolves issues where markers were previously not retained, ensuring consistent data handling in collaborative editing scenarios.
  • Action dropdown visibility fix: Resolved an issue where the action dropdown remained hidden after permission changes on comments. The dropdown now properly reflects updated permissions, allowing users to interact with the available actions seamlessly.
  • AI command enhancements:
    • Custom AI Commands are now correctly applied to individual dropdowns when only one group of comments is present, instead of the entire group.
    • Empty comment groups no longer render, improving UI clarity.
    • Fixed an issue where nested AI command menus would close unexpectedly when used within a balloon toolbar, preventing unintended behavior during selection.

Features

  • engine: Introduced the getChildAtOffset() method for model.Element and model.DocumentFragment. (commit)
  • engine: Introduced the Position#isValid() method to check whether the position exists in the current model tree. (commit)
  • export-word: Added a configuration setting for adding a watermark to generated documents.
  • revision-history: Introduced the RevisionTracker#getRevisionDocumentData() and RevisionTracker#getRevisionRootsAttributes() methods to the public scope of the editor API. You can use them to retrieve document data saved with the revision.
  • utils: Made FocusTracker extendable with other FocusTracker instances to allow logical focus tracking across separate DOM sub-trees (see #17277). (commit)

Bug fixes

  • ai: Empty AI Assistant command groups should not render in the UI.
  • ai: The AI Assistant command list should be flat when only one command group is available.
  • comments: Fixed an issue where the action dropdown remained hidden when permissions allowing actions on a comment changed.
  • engine: The content of an inline object should be handled as a flow root so whitespaces should be trimmed as the content of an inline object element is inside a block element. Closes #17199. (commit)
  • image: Handle existing picture element correctly on sources downcast. (commit)
  • link: No longer crash editor after removing link from image when LinkConfig#addTargetToExternalLinks: true is set. Closes #17252. (commit)
  • list-multi-level: Multi-level lists should display correctly in RTL mode for Decoupled Editor.
  • pagination: Improved pagination of large tables that are followed by block elements.
  • revision-history: Suggestions are no longer lost in some scenarios when restoring revisions in real-time collaboration.
  • ui: The dropdown menu component should not cause editor blur if used in a BalloonToolbar while the user hovers a nested menu. Closes #17277. (commit)
  • ui: Made the page unscrollable while the modal is visible. Closes #17093. (commit)

Other changes

  • engine: Node index and offset related values are now cached in model Node and NodeList to improve performance. (commit)
  • link: Exported link and unlink icons from the ckeditor5-link package. Closes #17304. (commit)
  • ui: Disabled dragging support for modal windows in the Dialog plugin. Closes #17290. (commit)
  • ui: Disabled positioning restrictions for modal windows caused by config.ui.viewportOffset. Closes #17290. (commit)

Released packages

Check out the Versioning policy guide for more information.

Released packages (summary)

Releases containing new features:

Other releases:

43.2.0 (October 2, 2024)

We are happy to announce the release of CKEditor 5 v43.2.0.

Release highlights

Notable improvements

  • Operational Transformation Stability: Significant changes have been made to the OT system, enhancing the undo functionality and real-time collaboration, especially in conflict resolution scenarios. These improvements ensure smoother editor operations during complex interactions.
  • Performance Improvements: We have merged several community-driven performance enhancements (thanks @sunesimonsen), that optimize the editor’s core engine. While no changes to the editor’s logic were made, these updates improve overall efficiency and responsiveness.

More imports available via ckeditor5 and ckeditor5-premium-features indexes

As users transition to new installation methods (v42.0.0+) with ckeditor5 and ckeditor5-premium-features as the main packages, we are continuously addressing missing imports for less common classes, functions, types, and utilities, broadening their availability. Since our TypeScript rewrite (v37.0.0), imports can now be made directly through the package indexes, simplifying integration. As many users historically imported from src, we encourage you to try the new version and report any missing imports. In the future, we are considering removing src from published packages to reduce package size, so the more feedback we receive, the better and more stable API we will provide.

Features

  • engine: Added the usePassive option to DomEventObserver that enables listening to passive events. Closes #16412. (commit)
  • media-embed: It is now possible to embed YouTube shorts. Closes #17090. (commit)
  • ui: Updated the "Powered by" link. (commit)

Bug fixes

  • ckbox: Editing inline images using CKBox no longer changes and reinserts them simultaneously. Closes #17056. (commit)
  • engine: Fixed incorrect marker handling in some scenarios involving undo and real-time collaboration, which earlier led to a model-nodelist-offset-out-of-bounds error. See #9296. (commit)
  • engine: Fixed incorrect handling of merge changes during undo in some scenarios involving real-time collaboration, which earlier led to a model-nodelist-offset-out-of-bounds error. See #9296. (commit)
  • engine: Fixed conflict resolution error, which led to editor crash in some scenarios where two users removed larger intersecting part of the content and used undo. See #9296. (commit)
  • engine: Fixed incorrect undo behavior leading to an editor crash when a user pressed Enter key multiple times, then pressed backspace that many times, then undid all the changes. Closes #9296. (commit)
  • theme-lark: Increased the specificity of the dropdown menu panel styles to address issues with incorrect z-index ordering. (commit)
  • ui: Fixed scrolling in dropdowns when a block toolbar button is active. Closes #17067. (commit)
  • ui: Increased the specificity of the dropdown menu panel styles to address issues with incorrect z-index ordering. (commit)

Other changes

Released packages

Check out the Versioning policy guide for more information.

Released packages (summary)

Releases containing new features:

Other releases:

43.1.1 (September 25, 2024)

We are happy to announce the release of CKEditor 5 v43.1.1.

During a recent internal audit, we identified a Cross-Site Scripting (XSS) vulnerability in the CKEditor 5 clipboard package (CVE-2024-45613). This vulnerability could be triggered by a specific user action, leading to unauthorized JavaScript code execution, if the attacker managed to insert malicious content into the editor, which might happen with a very specific editor configuration.

This vulnerability affects only installations where the editor configuration meets the following criteria:

  1. The Block Toolbar plugin is enabled.
  2. One of the following plugins is also enabled:

You can read more details in the relevant security advisory and contact us if you have more questions.

Taking the occasion, we decided to introduce additional hardening to some parts of our codebase that introduce theoretical and unexploitable issues. Our security team confirmed that none of these issues were exploitable in a real scenario, however, we decided to fix them, in order to increase the overall security posture of our software.

Released packages

Check out the Versioning policy guide for more information.

Released packages (summary)

Other releases:

43.1.0 (September 5, 2024)

We are happy to announce the release of CKEditor 5 v43.1.0.

Release highlights

This release includes important bug fixes and enhancements for the editor:

  • Block merge fields: In contrast to regular, inline merge fields, the block merge fields are designed to represent complex, block-level structures, such as a dynamically generated table, a row of products, or a personalized call-to-action segment. Block merge fields are supposed to be replaced by arbitrary HTML data when the document template is post-processed or exported to a PDF or Word file.

  • Nested dropdown menus: this release introduces a new UI component: nested dropdown menus. They can be used by feature developers to easily provide an advanced user interface where UI elements are organized into a nested menu structure.

  • Customizable accessible label: You can now configure the label for the accessible editable area through the editor settings, ensuring it fits your system’s needs.

  • Improved table and cell border controls: It is now easier to manage both table and cell borders. The table user interface now clearly indicates the default border settings, allowing you to set “no borders” (None) for tables and cells without any additional configuration.

    ⚠️ In some cases this update may lead to data changes in the tables’ HTML markup when the editor loads them. However, visually nothing will change, and the experience will be the same.

The full list of enhancements can be found below.

MINOR BREAKING CHANGES ℹ️

  • Reverted config.sanitizeHtml. In v43.0.0 we made a decision to move config.htmlEmbed.sanitizeHtml to a top-level property config.sanitizeHtml. However, we realized that it was a wrong decision to expose such a sensitive property in a top-level configuration property. Starting with v43.1.0 you should again use config.htmlEmbed.sanitizeHtml and/or config.mergeFields.sanitizeHtml. The editor will throw an error if config.sanitizeHtml is used. See the migration guide for additional context behind this decision.
  • ai: The structure and presentation of the list of AI commands in the toolbar have changed (a flat filtered list is now a nested menu). Additionally, if your integration customizes this user interface, please ensure your integration code is up-to-date.
  • ui: The default [aria-label] provided by InlineEditableUIView is now 'Rich Text Editor. Editing area: [root name]' (previously: 'Editor editing area: [root name]'). You can use the options.label constructor property to adjust the label.

Features

  • comments: Added [data-author-id] to suggestion and comment markers in editing for easier integration and styling.
  • media-embed: Added support for new Twitter domain (x.com) and Instagram Reels. Closes #16435. (commit)
  • merge-fields: Introduced block merge fields. They are a new type of merge fields which are treated as block content in the editor editing area.
  • track-changes: Added [data-author-id] to suggestion and comment markers in editing for easier integration and styling.
  • ui: Introduced nested menu component for dropdowns. Closes #6399. (commit)
  • ui: Added support for the balloon toolbar in the multi-root editor. Closes #14803. (commit)
  • Allowed to configure the accessible editable area label via the config.label property. Closes #15208, #11863, #9731. (commit)

Bug fixes

  • cloud-services: The refreshing mechanism (from the Token class) should retry after a failure to limit the chance of the user getting disconnected and data loss in real-time collaboration. (commit)
  • comments: The TrackChangesData#getDataWithAcceptedSuggestions() method will no longer throw errors when there are suggestions containing multi-range comments in tables.
  • document-outline: Editor no longer crashes during initialization when the TableOfContents and ImageBlock plugins are enabled. Closes ckeditor/ckeditor5#16915.
  • editor-classic: The widget toolbar no longer covers editor's sticky toolbar when scrolling. Closes #15744. (commit)
  • editor-multi-root: The selection is no longer lost while clicking an editable containing only one block element. Closes #16806. (commit)
  • engine: Prevent from editor crashes when trying to style a long paragraph. Closes #16819. (commit)
  • html-support: The <hgroup> and <summary> elements should work with the source editing feature. Closes #16947. (commit)
  • list: A to-do list should preserve the state of the checked items on the data load. Closes #15602. (commit)
  • table: Changed default table and table cell properties to match the content styles. It fixes a problem with setting [border=none] on the table. Closes #6841. (commit)
  • table: Larger tables are no longer truncated in print mode. Closes #16856. (commit)
  • track-changes: The TrackChangesData#getDataWithAcceptedSuggestions() and TrackChangesData#getDataWithDiscardedSuggestions() methods will no longer throw errors when used in asynchronous load and save integration type.
  • ui: Nested menus in the menu bar and dropdowns should not get their panels focused when the main button is clicked. Closes #16857. (commit)
  • ui: Restored the ability to pin balloons to text nodes in the DOM tree. Closes #16958 #16889. (commit)
  • ui: The focus outline should remain visible upon closing a menu bar using the Esc key during keyboard navigation. Closes #16719. (commit)
  • ui: Balloon Editor toolbar no longer sticks out of the limiter element while scrolling. Closes #17002. (commit)

Other changes

  • ai: The AI Assistant pre-defined commands toolbar dropdown will now use a new nested menu component instead of the flat list component.
  • comments: Moved Ctrl+Shift+E and Esc key handling code from individual features to the Annotations plugin to simplify the logic.
  • core: Reverted recent change to move config.htmlEmbed.sanitizeHtml to a top-level config property (config.sanitizeHtml). config.sanitizeHtml is no longer available and using it will throw an error.
  • html-embed: Reverted recent change to move config.htmlEmbed.sanitizeHtml to a top-level config property (config.sanitizeHtml). Starting from v43.1.0 config.htmlEmbed.sanitizeHtml is no longer deprecated.
  • merge-fields: Introduced config.mergeFields.sanitizeHtml config property. Use it instead of config.sanitizeHtml. config.sanitizeHtml is no longer available and using it will throw an error.
  • track-changes: Moved Ctrl+Shift+E and Esc key handling code from individual features to the Annotations plugin to simplify the logic.
  • typing: The package exports now the TextTransformationConfig type. (commit)
  • Updated translations. (commit)

Released packages

Check out the Versioning policy guide for more information.

Released packages (summary)

Minor releases (contain minor breaking changes):

Releases containing new features:

Other releases:

43.0.0 (August 7, 2024)

We are happy to announce the release of CKEditor 5 v43.0.0.

Release highlights

Merge fields

The new merge fields feature is a game-changer for creating document templates and other kinds of personalized or dynamic content. Thanks to this feature, you can insert placeholders into your content, indicating where actual values should go. These places are marked in the final content in a distinctive way, making it easy to later process the template and fill it with the actual values. The feature supports a preview mode too - you can define preview data sets, and see how the content will look like when real values are used directly in the editor. The plugin is highly customizable to fit various applications and scenarios. Finally, merge fields are fully integrated with our Export to Word, Export to PDF, and Import from Word features, both when they are used from the editor and via REST API.

We are extremely happy to share with you this highly demanded feature, and we cannot wait to listen to your feedback!

Make sure to visit our builder or documentation to learn more about the feature.

Export to Word V2 as the default version

The V2 version of the export to Word feature introduced significant improvements, optimizations, and fixes. This update enhances the overall performance, making the export process faster and more reliable, especially for large documents. Key improvements include better handling of table borders, automatic detection of Word styles from CSS, and support for more text-related CSS properties, ensuring your documents maintain their intended formatting.

Starting this version, the V2 configuration becomes the default in the ExportWord plugin. Make sure to migrate your configuration if you are using it.

Improved sidebar accessibility and navigation

We have introduced multiple enhancements to make the sidebar more accessible. Among other improvements, you can now use the Shift+Ctrl+E keystroke to move focus from the editor marker to the active annotation. When your comment reply is ready, you can quickly submit it using the new Ctrl+Enter shortcut. Also, navigation from one annotation to another is now possible by using arrow keys.

The full lists of keyboard supported actions can be reviewed in our Accessibility support guide.

Important bug fixes and improvements

This release brings notable bug fixes and improvements to enhance your editing experience.

  • Several improvements have been made to typing in the editor, especially for Android IME and Safari. On Android, issues like duplicated characters and reverse writing effects have been resolved. In Safari, the reverse typing effect after focus change has been fixed.
  • A couple of UI improvements:
    • We replaced the visual indication of the selected option in dropdowns (blue background) with the checkbox marks to better indicate selected options, aligning visual cues across the toolbar and menu bar.
    • All editor types now support the menu bar.
    • Additionally, the special characters UI has been moved from a dropdown to a dialog. This unifies the action between the menu bar and toolbar, and also gives content creators quicker access to the always-on-top dialog.
  • We have improved the drawing of page break line algorithm to address the pagination feature issues. We also improved the performance of the plugin.

React and Vue integrations updates

We have released new major versions of the React and Vue integrations. In both of them, we have migrated to JavaScript modules (ESM) and rewritten large parts of the codebases to support the latest versions of these frameworks and to follow the latest recommendations for writing the components.

We strongly recommend that you follow the release highlights to update to the latest versions:

MAJOR BREAKING CHANGES ℹ️

  • ckeditor5: Global name for the ckeditor5 package in the UMD builds has been changed to CKEDITOR.
  • ckeditor5-premium-features: Global name for the ckeditor5-premium-features package in the UMD builds has been changed to CKEDITOR_PREMIUM_FEATURES.
  • export-word: Export to Word V1 configuration format is deprecated, V2 is set as default. The exportWord.converterOptions configuration should be adjusted to new API. See the migration guide.
  • export-word: The auto_pagination configuration option in exportWord.converterOptions is set to false by default.

MINOR BREAKING CHANGES ℹ️

  • ckbox: The CKBoxUtils#getWorkspaceId() and CKBoxUtils#getToken() methods now return a promise instead of a resolved value.
  • comments: AnnotationView#focus() will focus the first view in the content collection instead of the view DOM element.
  • comments: Sidebar#addAnnotation() will expect the annotation view to meet the FocusableView interface (previously any UI View).
  • engine: Schema callbacks added through addChildCheck() will no longer add event listeners with high priority and will no longer stop checkChild event. Instead, these callbacks are now handled on normal priority, as a part of the default checkChild() call. This also means that listeners added to checkChild event on high priority will fire before any callbacks added by checkChild(). Earlier they would fire in registration order. This may impact you if you implemented custom schema callback using both addChildCheck() and direct listener to checkChild event. All above is also true for addAttributeCheck() and checkAttribute event and callbacks.
  • html-embed: HTML Embed plugin configuration value sanitizeHtml was moved from the htmlEmbed space to top-level configuration space. config.htmlEmbed.sanitizeHtml is now deprecated. It will still be used if it set, however we recommend updating the configuration as this property may be removed in upcoming releases.
  • real-time-collaboration: The size of avatars in the user presence list has been changed, which may affect integrations that depend on their dimensions. In addition, a focus border has been added to these avatars, which extends beyond the editor container. Please refer to the styling guide to learn how to change the look of the list.
  • real-time-collaboration: The collaboration user presence list dropdown now has a conditional overflow: scroll style (previously the style was permanent).
  • special-characters: Special characters plugin now uses a dialog (instead of a toolbar dropdown).
  • theme-lark: The --ck-list-button-padding custom property has been removed from the codebase.
  • track-changes: A substantial part of the SuggestionThreadView template was moved to a new view SuggestionView. It may affect you if you provided customization for suggestions annotations through an extended SuggestionThreadView or BaseSuggestionThreadView class. Please review updated API documentation for SuggestionThreadView#getTemplate() and SuggestionView#getTemplate(). You can extend SuggestionView the same way as SuggestionThreadView and BaseSuggestionThreadView, and provide the extended class through the newly added configuration property TrackChangesConfig#SuggestionView.
  • ui: We changed styles for "active" items inside menu bar and dropdowns lists. Previously, an active (chosen, enabled, opened, etc.) item was highlighted with a blue background. Now, the active element has a checkmark icon on the left.

Features

  • ckbox: The image upload and edit buttons are now disabled if the user has no permission to upload an asset. (commit)
  • ckbox: Added more configuration options passed down to the CKBox. Closes #3695. (commit)
  • collaboration-core: Introduced the AriaDescriptionView class that brings aria-describedby functionality to any view.
  • collaboration-core: Introduced the LateFocusButtonView and LateFocusDropdownButtonView classes that are specific buttons, for which focus event is fired after mouseup instead of mousedown. This delays all focus-related actions until the button action is performed.
  • comments: Introduced keyboard navigation and screen reader support to the annotations sidebar.
  • editor-balloon: Added support for the menu bar. Closes #16571. (commit)
  • editor-inline: Added support for the menu bar. Closes #16571. (commit)
  • engine: Schema#addChildCheck() and Schema#addAttributeCheck() can now register a callback for a specific item or attribute, which should improve performance when using custom callback checks. Callback checks should be added only for specific item or attribute if possible. See the API reference. Closes #15834. (commit)
  • export-word: Added config.exportWord.converterOptions.language configuration property to set the language of the exported Word document. The editor's content language will be used by default.
  • heading: Simplify TypeScript types of the Heading plugin configuration. (commit)
  • image: The image upload and edit buttons are disabled if the user has no permission to upload any asset. (commit)
  • import-word: The comments and suggestions imported from Word documents will preserve the original dates respecting the local timezone.
  • List: The list styles can be enabled for selected list types. Closes #15554. (commit)
  • merge-fields: Introduced the merge fields feature.
  • real-time-collaboration: Made the real-time collaboration user presence list accessible to screen reader users.
  • special-characters: Added menu bar integration for special characters. New component menuBar:specialCharacters is now by default added in "Insert" menu. Closes #16501. (commit)
  • track-changes: Introduced keyboard navigation and screen reader support to the annotations sidebar.
  • ui: Introduced keystroke handler options in FocusCycler#constructor() to allow for fine-tuning of the class behavior. (commit)
  • ui: Implemented a new FocusCycler#chain() method to connect multiple focus cyclers and provide seamless keyboard navigation across complex user interfaces. (commit)
  • ui: Redesigned "active state" style for menu bar dropdown items. Closes #16572. (commit)
  • utils: Introduced events filtering in KeystrokeHandler#set() to allow for fine-tuning of the helper's behavior. (commit)

Bug fixes

  • ai: Opening AI Assistant with a selection containing an empty line will no longer cause a crash.
  • ai: AI Assistant will now correctly handle selected content containing empty lines.
  • ckbox: Use a safer way to convert numbers to strings to avoid issues with some bundlers. Closes #16040. (commit)
  • comments: The user had to click the annotation button twice to execute an action as the first click focused the annotation and caused it to move away, which prevented the click.
  • engine: Schema#checkChild() will now correctly check custom callback checks for each item in the context. (commit)
  • engine: insertcontent-invalid-insertion-position exception is no longer thrown after pasting content containing block element + non-paragraph + block element elements. Closes #16321. (commit)
  • engine: Predictive text should not get doubled while typing. Closes #16106. (commit)
  • engine: The reverse typing effect should not happen after the focus change. Closes #14702.Thanks, @urbanspr1nter!. (commit)
  • engine: Typing on Android should avoid modifying DOM while composing. Closes #13994, #14707, #13850, #13693, #14567. Closes: #11569. (commit)
  • engine: Formatting should not get lost on a text with a marker in a table cell during upcast. (commit)
  • export-word: The author name of suggestions from an imported Word document will be correctly persisted after exporting and importing this document again.
  • find-and-replace: Allow to pass searchTerm when using findCallback in find command. (commit)
  • link: Creating a link in sentences containing an empty line will no longer cause a crash. Closes #16660. (commit)
  • list: Text nodes directly inside <ul> or <ol> should not be removed while loading editor data. Closes #16450. (commit)
  • mention: Escape mentions markers when building regular expression to prevent crashes when markers like '' are used. Closes #16818. (commit)
  • pagination: No longer generate an extra empty page after placing a page break after an element with a margin.
  • pagination: Should not apply additional styles on pageBreak element.
  • pagination: The pagination feature no longer skips pages when handling large tables. Closes #14426.
  • pagination: The pagination renders pages differently depending on user selection.
  • real-time-collaboration: The deleted comment thread will no longer be brought back after restoring a revision in which it existed.
  • table: Horizontal split button no longer splits larger table cell spans into more than two parts. Closes #14658. (commit)
  • theme-lark: Addressed a regression in the height of buttons displayed inside lists (such as buttons in annotation menus). (commit)
  • track-changes: The user had to click the annotation button twice to execute an action as the first click focused the annotation and caused it to move away, which prevented the click.
  • track-changes: Fixed editor crash when accepting or discarding a replace suggestion with multiple parts including adding or merging a block element (paragraph, etc.).
  • typing: Predictive text should not get doubled while typing. Closes #16106. (commit)
  • typing: Typing on Android should avoid modifying DOM while composing. Closes #13994, #14707, #13850, #13693, #14567. Closes: #11569. (commit)
  • ui: Hide the pinned balloon panel view when the pin target is no longer visible. Closes #16739. (commit)
  • ui: Block toolbar button no longer remains fixed in the same position while scrolling the editable content. Closes #5460. (commit)
  • ui: The user should be able to move the focus back to where it came from upon Esc key press while navigating the menu bar. Closes #16683. (commit)
  • ui: Add /* #__PURE__ */ comments before mixin calls to properly tree-shake unused classes. Closes #16651. (commit)
  • ui: Improve accessibility of toggleable menu bar items by marking them as menucheckbox aria roles. (commit)
  • ui: Fixed element tag name from <label> to <span> in the color picker component to improve the accessibility. (commit)
  • ui: Changed the place of restricted editing buttons in the menu bar to correct ones. Closes #16609. (commit)
  • UI: The aria-live views will no longer violate the a11y aXe rule: landmarks should be unique. Closes #16544. (commit)

Other changes

  • autoformat: The blockAutoformatEditing and the inlineAutoformatEditing are now exported from the package index. Closes #16815. (commit)
  • ckbox: The plugin no longer slows down the editor startup because it fetches the token in the background instead of during the editor’s initialization. Closes #16760. (commit)
  • ckeditor5: Global name for the ckeditor5 package in the UMD builds have been changed to CKEDITOR. Closes #16798. (commit)
  • ckeditor5-premium-features: Global name for the ckeditor5-premium-features package in the UMD builds have been changed to CKEDITOR_PREMIUM_FEATURES.
  • engine: Introduced Schema#trimLast(). (commit)
  • engine: The Model#insertContent() method should keep inline objects in the same auto paragraph as text nodes and other inline objects. See #16321. (commit)
  • engine: The Schema#checkMerge() method should return false if one of the elements is a limit element. See #16321. (commit)
  • export-word: Set export word v2 as default.
  • html-embed: HTML Embed plugin configuration value sanitizeHtml was moved from the htmlEmbed space to top-level configuration space. config.htmlEmbed.sanitizeHtml is now deprecated.
  • page-break: No longer generate an extra empty page after placing a page break after an element with a margin. (commit)
  • pagination: Enhance the performance of rendering large documents when the pagination plugin is enabled.
  • special-characters: Special characters plugin now uses a dialog (instead of a toolbar dropdown). (commit)
  • track-changes: Part of the SuggestionThreadView template was moved to a new view SuggestionView.
  • track-changes: Configuration property SuggestionView was added to enable the SuggestionView class customization.
  • track-changes: Made the track changes icon more in line with other icons in the icon set.
  • ui: Added the LabelWithHighlightView and ButtonLabelWithHighlightView components to the UI library. (commit)
  • ui: Added the filterGroupAndItemNames() helper to the UI library. (commit)
  • ui: The SearchTextView#reset() method will also reset the scroll of its filteredView to the top. (commit)
  • Updated translations. (commit, commit, commit, commit)

Released packages

Check out the Versioning policy guide for more information.

Released packages (summary)

New packages:

Major releases (contain major breaking changes):

Minor releases (contain minor breaking changes):

Other releases:


To see all releases, visit the release page.