github ckeditor/ckeditor5 v40.1.0

latest releases: v43.3.1, v43.3.0, v41.3.2...
12 months ago

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

Release highlights

Styling suggestions reflected in the content

This release introduces an important user experience improvement for the track changes feature. From now on, styling changes made in the track changes mode will be also reflected in the editor content, instead of just being marked with a blue suggestion highlight.

Below is a summary of the important changes related to this improvement:

  • A new suggestion type 'attribute' was introduced. All integrated features will now create 'attribute' suggestions.
  • Formatting suggestions in existing documents are still supported, and will work as they used to.
  • With the new suggestions, multiple changes are put into a single suggestion if possible, to avoid bloating sidebar with too many annotations.
  • For asynchronous collaboration integrations, make sure that you save and provide the SuggestionData#attributes property, as it is used by the new suggestions.

We will continue further work on this improvement, including integrating the new solution with the list feature.

Azure OpenAI service support

We have introduced necessary changes to make sure that the AI Assistant can be used with the Azure OpenAI service. Please refer to the AI Assistant documentation for details.

Other notable improvements

  • Fixed triple click before widgets: the beloved triple click to select content works correctly before tables, images, and other widgets.
  • Several CKBox integration improvements include a significantly enhanced image insertion mechanism from CKBox, offering a less jumpy experience. The release also addresses key issues, such as including the proper replacement of images when URLs are edited, better focus management post-image insertion, and a fixed tokenUrl configuration for more seamless integration.
  • Paste from Office enhanced: our advanced format preserver for Office kept too many unnecessary attributes, styles, etc., in combination with General HTML support plugin. Now we fully clean up the markup before pasting.
  • Accessibility Enhancements for markers: users aided by assistive technologies will now be notified when the selection enters or leaves a comment or a suggestion in the editor content.
  • AI Assistant: the predefined commands can now be used when no content is selected (previously it was disabled). When used like this, the whole focused block (paragraph, list item, etc.) is passed as the context for the command.
  • AI Assistant: the response streaming is now configurable and can be turned off.

MINOR BREAKING CHANGES ℹ️

  • ai: The config.aiAssistant.uiCssClass configuration has been replaced by config.aiAssistant.useTheme and changed its function. A new complementary .ck-ai-assistant-ui_theme CSS class has also been introduced to the AI Assistant's UI elements. Please refer to the API documentation and the UI customization guide to learn more.
  • editor-multi-root: If you have a custom plugin that uses roots attributes, it is highly recommended to use the newly added MultiRootEditor#registerRootAttribute() method to register a custom root attribute.
  • image: By default, images are inserted as block images (not inline). To switch to the previous behavior (determining image type by insertion context), set the editor configuration image.insert.type to 'auto'.
  • import-word: Introduced the new config.importWord.formatting configuration property which is an object accepting the following properties: resets, defaults, styles, and comments. The old properties: config.importWord.defaultStyles and config.importWord.commentsStyles were removed. Use formatting.defaults and formatting.comments instead.

Features

  • ai: Enabled AI Assistant integration with the Azure OpenAI service.
  • ai: Allowed executing pre-defined AI commands on a collapsed selection.
  • ai: Allowed for ordering groups and commands in the AI Assistant's dropdown configuration through the order property. See the AIAssistantConfig API documentation for details.
  • ai: Introduced config.aiAssistant.requestParameters.stream to configure whether the AI Assistant should use streaming or not.
  • ckbox: Images inserted by CKBox should set the provided dimensions and use the blurhash to indicate image loading. Closes #15090. (commit)
  • editor-multi-root: Added MultiRootEditor#registerRootAttribute(). All roots attributes used by features should now be registered. Roots attributes passed in editor configuration are now automatically registered. Closes #15246. (commit)
  • image: Images inserted by CKBox should set the provided dimensions and use the blurhash to indicate image loading. Closes #15090. (commit)
  • import-word: Introduced a new config.importWord.formatting configuration property in place of config.importWord.defaultStyles and config.importWord.commentsStyles.
  • track-changes: Styling changes made while in track changes mode will now be immediately reflected in the editor content in addition to creating a suggestion. This applies only to newly created suggestions.
  • track-changes: Introduced new suggestion type 'attribute' which indicates that an attribute on a model node has changed and allows to show the change immediately in the content.
  • ui: Introduced the AriaLiveAnnouncer class that allows for using aria-live regions to inform screen readers about changes in editor state. AriaLiveAnnouncer instance is available under EditorUI#ariaLiveAnnouncer. (commit)

Bug fixes

  • ai: The pre-defined command label should be displayed in the AI Assistant's prompt field.
  • ai: The AI content area should stop auto-scrolling once the user interacts with it.
  • ai: The AI Assistant balloon should be closed when user presses the Esc key.
  • ai: The AI pre-defined commands dropdown should reset its scroll when reopened.
  • ai: The AI Assistant should not log unnecessary warnings when detached from the DOM.
  • ai: The AI Assistant's balloon anchor point should stay at a correct position when the balloon grows.
  • ai: The AI Assistant's copy to clipboard button did not work correctly on Firefox when general HTML support plugin was loaded.
  • clipboard: Pasting a link address should not convert its parts that look like HTML entities. Closes #15036. (commit)
  • clipboard: Improved drop marker visibility to only display in permissible drop locations. Closes #14709. (commit)
  • comments: Prevented a crash happening when importing Word file when comments plugin is loaded.
  • core: Fixed typings in ToolbarConfig by adding an optional icon parameter. Closes #15151. (commit)
  • html-support: Additional attributes for the link element (e.g., CSS class) should not be applied after pressing Enter. Closes #14683. (commit)
  • image: The aspect ratio should be updated on the image replace. Closes #15179. (commit)
  • image: Remove outdated image attributes when an image is replaced by a URL. Closes #15093. (commit)
  • list: Pasting plain text content should not break the lists. Closes #13826. (commit)
  • list: Pasting one list into another should preserve the target list type. See #13826. (commit)
  • paste-from-office: Tables pasted from Word should not lose styles when GHS is enabled. (commit)
  • table: Table properties should be enabled if a table is selected from the outside. Closes #15040, #15041, #10983. (commit)
  • track-changes: Editor commands will now return a proper value when executed in track changes mode.
  • ui: The AutocompleteView should not capture the Esc key press event if its result pane is hidden. (commit)
  • ui: TextareaView will no longer update its height (and log warnings) when the element is detached from DOM. (commit)
  • ui: Fixed the usage of aria-checked attribute in dropdowns. Closes #14823. (commit)
  • utils: The Config#get() method should be able to return a function. Closes #14804, #12835. (commit)
  • widget: Triple-click in a paragraph should select the whole paragraph even if a block widget follows (table, block image). Closes #11130. (commit)
  • Plugins specified in config.removePlugins should be now properly filtered out when revision history and track changes data plugins are used.

Other changes

  • ai: Simplified CSS customization in the AI Assistant's UI.
  • ai: Pre-defined commands dropdown search filter will now also include group names.
  • ai: The AI Assistant's Replace button should be labeled Insert if the selection is collapsed.
  • ai: Improved the layout of the AI Assistant in the editor using a right-to-left UI language.
  • ckbox: Should focus the editor after choosing an asset or closing CKBox. Closes #15091. (commit)
  • ckbox: When multiple files are selected, adds each one of them in a separate paragraph. Closes #15094. (commit)
  • ckbox: Sets the default CKBox theme to lark. Closes #15096. (commit)
  • comments: Users using assistive technologies will be now notified when their selection enters or leaves a comment or a suggestion in the editor content.
  • core: Made the PluginInterface.destroy() method optional. (commit)
  • format-painter: Users using assistive technologies will be now notified when the formatting is being copied or pasted.
  • image: Changed the icon of the alternative text to be more accurate and describe its purposes. Closes #12410. (commit)
  • image: Changed the default image.insert.type configuration to "block" and added the "auto" option. Closes #15158. (commit)
  • theme-lark: Created a custom property for a shared light red color. Closes #15217. (commit)
  • theme-lark: Improved RTL layout support in some of the UI components (FormHeaderView, ButtonView, and ListItemView). (commit)
  • track-changes: Migrated features integrations to use the 'attribute' suggestions: alignment, basic styles, font, format painter, heading, highlight, html embed, image (except for image styles), indent block, link, remove format, styles, table headings.
  • track-changes: Due to substantial changes in how new styling suggestions are presented in the editor content, numerous interactions and labels displayed in the suggestions annotations has been changed compared to the old suggestions.
  • track-changes: Users using assistive technologies will be now notified when their selection enters or leaves a comment or suggestion in the editor content.
  • ui: The ListItemGroupView should allow using a custom label. (commit)
  • ui: Improved RTL layout support in some of the UI components (FormHeaderView, ButtonView, and ListItemView). (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:

Don't miss a new ckeditor5 release

NewReleases is sending notifications on new releases.