npm ckeditor5 27.0.0

latest releases: 0.0.0-nightly-20240918.0, 0.0.0-nightly-20240917.0, 0.0.0-nightly-20240916.1...
3 years ago

Release highlights

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

Starting from this version, collaboration features release notes will be included in the CKEditor 5 changelog. Changes for the previous releases are available on https://ckeditor.com/collaboration/changelog/.

This release introduces some new features:

MAJOR BREAKING CHANGES ℹ️

Note: Check out the Migration to CKEditor 5 v27.0.0 guide for more detailed information on how to upgrade to this version.

  • clipboard: The inputTransformation event is no longer fired by the Clipboard plugin. Now the ClipboardPipeline plugin is responsible for firing this event (see #9128).
  • clipboard: The clipboardInput and inputTransformation events should not be fired or stopped in the feature code. The data.content property should be assigned to override the default content instead. You can stop this event only if you want to completely disable pasting or dropping of some content. Read more about the clipboard pipeline in the migration to v27.0.0 guide. See #9128.
  • Introduced bubbling of the view.Document events, similar to how bubbling works in the DOM. This allowed us to re-prioritize many listeners that previously had to rely on the priority property. However, it means that existing listeners that use priorities may now be executed at a wrong time. The listeners to such events should be reviewed in terms of when they should be executed (in what context/element/phase). Read more about event bubbling in the migration to v27.0.0 guide. See #8640.

Features

  • alignment: Introduced an option to use classes instead of inline styles. Closes #8516. (commit)
  • autoformat: Typing [x] will insert a checked to-do list item. Closes #8877. (commit)
  • clipboard: Implemented basic support for content drag and drop. Closes #9128. (commit)
  • clipboard: The contentInsertion event is fired from ClipboardPipeline to enable customization of content insertion (see #9128). (commit)
  • core: Created the universal caption icon. Closes #9196. (commit)
  • engine: Introduced bubbling of the view.Document events, similar to how bubbling works in the DOM. Bubbling allows listening on a view event on a specific kind of element, hence simplifying code that needs to handle a specific event for only that element (e.g. enter in blockquote elements only). Read more in the Event system deep-dive guide. Closes #8640. (commit)
  • engine: Introduced ArrowKeysObserver. See #8640. (commit)
  • language: Added support for setting the text part language. Closes #8989.

Bug fixes

  • engine: DataController#toView() should have a default value for the options parameter. Closes #9293. (commit)
  • highlight The remove highlight button now also gets disabled along with the main highlight command. Closes #9174. (commit)
  • utils: The EmitterMixin#listenTo() method is split into listener and emitter parts. The ObservableMixin decorated methods reverted to the original method while destroying an observable. (commit)

Other changes

  • clipboard: The paste as plain text feature was extracted to the dedicated PastePlainText plugin (see #9128). (commit)
  • engine: The mouseup event is fired by the MouseObserver (see #9128). (commit)
  • table: The mouseup event is no longer fired by the MouseEventsObserver from the @ckeditor/ckeditor5-table package (now handled by MouseObserver) (see #9128). (commit)
  • typing: The TwoStepCaretMovement feature is now using bubbling events. Closes #7437. (commit)
  • utils: Added the language.getLanguageDirection helper function allowing to determine the text direction based on the language code. (commit)
  • Optimized icons. (commit)
  • Updated English translations for the text part language feature. (commit)

Released packages

Check out the Versioning policy guide for more information.

Released packages (summary)

New packages:

Major releases (contain major breaking changes):

Releases containing new features:

Other releases:

Don't miss a new ckeditor5 release

NewReleases is sending notifications on new releases.