Skip to content

[frontend] Update dependency ckeditor5 to v46 (release/current) #3638

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: release/current
Choose a base branch
from

Conversation

renovate[bot]
Copy link
Contributor

@renovate renovate bot commented Jul 16, 2025

This PR contains the following updates:

Package Change Age Confidence
ckeditor5 (source) 45.2.1 -> 46.0.0 age confidence

Warning

Some dependencies could not be looked up. Check the Dependency Dashboard for more information.


Release Notes

ckeditor/ckeditor5 (ckeditor5)

v46.0.0

Compare Source

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

Release highlights

[!IMPORTANT]
This is a major release with significant amount of changes that may affect your CKEditor 5 integration. We strongly encourage you to read the entire update guide to understand all the changes.
Pay special attention to:

Line Height (⭐)

The new Line Height feature allows you to adjust the vertical spacing between lines of text, improving readability and visual harmony in your documents. This premium feature lets you set consistent line spacing across paragraphs and text blocks to enhance document accessibility and maintain visual hierarchy in your content.

Remove Format improvements

Unneeded styles on block elements, such as tables and images, and General HTML Support nodes and attributes are finally eliminated when you hit the remove format button. The feature now cleans what it should, leaving the document structure untouched.

List markers styling

Working with styled lists becomes more intuitive as list markers (bullets and numbers) now automatically inherit text styling properties such as font size adjustments, text color changes, and font weight modifications (bold, italic).

This improvement makes it easier to create visually consistent and professional-looking lists without additional configuration. This improvement also supports Multi-level lists.

Important! This behavior is enabled by default, which means you may experience content change when you load the content to the editor 's new version (for the better in our opinion). But if this is not something you expect, you can opt out.

Markdown processor dependency refresh

The Markdown feature dependencies have been modernized with a switch to the unified ecosystem, replacing the previous marked / turndown implementation. This change brings more consistent and symmetrical HTML ↔ Markdown conversion. By adopting remark and rehype from the same family of tools, we have created a more reliable and maintainable implementation that will better serve your document processing needs.

Manual token refreshing

We have added the config.cloudServices.autoRefresh configuration property to disable the automatic token refresh mechanism. When it 's set to false, the token must be refreshed manually. This property opens up the ability to implement custom token handling if a certain use case requires this.

Comment threads improvements
New thread command changes

We have also introduced improvements to the addCommandThread command, which now supports creating comment threads on specified ranges. Additionally, it allows for creating a comment thread with an initial comment with the provided comment content.

Minor breaking change
The AddCommandThreadCommand#isEnabled property is no longer false when the current document selection is empty, as the command now allows for creating comment threads on custom ranges. If you previously used this property (for example, to provide a custom UI element), you should now use the observable AddCommentThreadCommand#hasContent property instead.

Comments and suggestions annotations

We have introduced dedicated methods for an easier way to get specific annotations related to a comment or a suggestion and vice versa.

Unified exports and renames in the editor API

After the big New Installation Method release (v42.0.0+), some developers upgrading from v41-x to v42-x were greeted by the does not provide an export named ... error. We addressed issues immediately as they were reported, but we knew it required a deeper are more comprehensive approach long-term.

With this release, we introduced a new, clear set of rules about internal imports, and also added re-exports if they were missing, changed the names of items to be more descriptive and avoid collisions, took care of internal methods that were already exported but not tagged, and cleaned up @deprecated code that was stale for some time.

If your build throws errors after the update, search and replace the old names with the new ones from the update guide. We have not changed the behavior of these APIs, just the names.

Last but not least, this release put us on the clean and straight path towards the deprecation of old installation methods. Please let us know if you have any questions on GitHub or support channels.

Opinionated default content styles and CSS renames

To improve the out-of-the-box experience and accessibility, we are introducing opinionated defaults for content styling. From this version, we ship a small defaults layer applied to .ck-content. These content styles are easily replaceable via CSS variable override. You may have already styled those things with more specific selectors.

While working on this initiative, we decided to standardize the CSS naming, too. All older variables that applied to the content styles now share the consistent --ck-content-* prefix. Read about the details in the update guide.

MAJOR BREAKING CHANGES ℹ️
  • ai: The AI Assistant now uses the more advanced gpt-4o model by default, replacing the previous gpt-3.5-turbo. This update improves response quality and overall capabilities. Additionally, the default limit set by max_tokens parameter has been removed, allowing for better and more detailed responses. If you relied on the previous default settings and wish to continue using them, be sure to explicitly define the editor configuration entry ai.openAi.requestParameters to { model: 'gpt-3.5-turbo', max_tokens: 2000, stream: true }.

  • document-outline: Content area CSS variables have been renamed to use the --ck-content-* prefix for better consistency in the Table of Contents feature. This requires action if you have overridden the variables. See the update guide for details.

  • list: Removed vertical spacing in list items by resetting margins for <p> elements that are the child of a <li> element.

  • table: Removed vertical spacing in table cells by collapsing margins of

    elements that are the only child of a <td> or <th> element.

  • The editor now enforces default browser styles for text content in both the editing view and rendered output. This change may affect existing styling and layout, so any custom CSS overrides should be reviewed. See #​18710 for details. The following CSS variables and their default values are now applied:

    • --ck-content-font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif
    • --ck-content-font-size: medium
    • --ck-content-font-color: #000 (HEX instead of hsl() to ensure compatibility with email clients)
    • --ck-content-line-height: 1.5
    • --ck-content-word-break: break-word
  • The default styles for comment annotations have changed to provide better consistency with the editor UI. A new set of CSS variables is now used to control the appearance of the comment content and input fields. These changes may affect the current appearance of comments in your integration, so please review them after updating. The following CSS variables are now applied:

    • --ck-comment-content-font-family
    • --ck-comment-content-font-size
    • --ck-comment-content-font-color (default changed from hsl(0, 0%, 0%) to hsl(0, 0%, 20%))

    These variables default to values derived from the editor 's UI styles, and they may differ from your current settings. Customize these variables as needed to match your desired appearance.

  • Content area CSS variables have been renamed to use the --ck-content-* prefix for better consistency in the Highlight, Image, List, and Table features. This requires action if you have overridden the variables. See the update guide for details.

  • Table-related CSS variables with improper *-selector-* naming have been renamed to use *-table-* for better clarity. This requires action if you have overridden the variables. See the update guide for details.

MINOR BREAKING CHANGES ℹ️
  • comments: The AddCommandThreadCommand#isEnabled property is no longer false when the current document selection is empty, as the command now allows for creating comment threads on custom ranges. If you previously used this property (for example, to provide a custom UI element), you should now use the observable AddCommentThreadCommand#hasContent property instead.
  • core: Removed the deprecated DataApiMixin function and DataApi interface. Their functionality is the part of the Editor class.
  • engine: Removed Batch#type deprecated property.
  • list: Removed DocumentList, DocumentListProperties and TodoDocumentList plugins. They were aliases for plugins List, ListProperties and DocumentList respectively.
  • markdown-gfm: Migrated from marked and turndown to remark and rehype for improved extensibility and alignment with the modern Markdown ecosystem.
  • markdown-gfm: Enabled the autolinking feature in Markdown when loading Markdown content into the editor.
  • ui: Removed the deprecated buttonView property from buttons created with FileDialogViewMixin. Use the button object itself.
  • utils: Removed the deprecated mix function.
  • utils: Removed the deprecated Locale#language property. Use Locale#uiLanguage instead.
Features
  • cloud-services: Added the config.cloudServices.autoRefresh configuration property that allows disabling the automatic token refresh mechanism. When set to false, the token must be refreshed manually, enabling custom token handling. (commit)
  • comments: Extended the options argument passed to the AddCommentThreadCommand#execute() method. The command now supports creating comment threads on specified ranges. Additionally, it allows for creating a comment thread with an initial comment, using the provided comment content.
  • html-support: Added the integration with the remove format command for block elements. Closes #​13983. (commit)
  • image: Image style and resized size can now be removed by the remove format command. See #​13983. (commit)
  • line-height: Introduced the Line height feature that lets you adjust the vertical spacing between lines of text. Closes ckeditor/ckeditor5#11360.
  • list: Introduced list item marker formatting for consistently styled content (supports Bold, Italic, Font Size, Font Family, and Font Color). Closes #​18537. (commit)
  • list-multi-level: Introduced list item marker formatting for consistently styled content (supports Bold, Italic, Font Size, Font Family, and Font Color).
  • table: Table properties and cell properties can now be removed by the remove format command. See #​13983. (commit)
Bug fixes
  • autoformat: Block autoformat should restore the allowed selection attributes. Closes #​17365. (commit)
  • clipboard: Added z-index to the clipboard drop target line. Closes #​18380. (commit)
  • code-block: The feature-related HTML classes should not leak to the General HTML Support feature. See #​13983. (commit)
  • comments: Activating a comment marker nested inside another marker will no longer result in an error.
  • engine: StylesMap should properly remove styles while accessing them by border-left property. See #​13983. (commit)
  • font: The font dropdown correctly reflects the applied font, even if the font-style CSS property includes excessive spaces. Closes #​18558. (commit)
  • html-support: The custom link styling is now removed with the remove format command. Closes #​15318. (commit)
  • list: No longer merge separate lists pasted from Microsoft Office into a single list. Closes #​18015. (commit)
  • list: Improved rendering of the

    element when it is an only child of a list item (<li>) or a table cell (<td> or <th>). Closes #​17440. (commit)

  • list: Improved the paragraphs' spacing in lists and tables. Closes: #​11347. (commit)
  • merge-fields: The Merge Fields feature no longer throws an error when processing image elements without the [src] attribute in specific cases.
  • page-break: The feature-related HTML classes should not leak to the General HTML Support feature. See #​13983. (commit)
  • table: Improved rendering of the

    element when it is an only child of a list item (<li>) or a table cell (<td> or <th>). Closes #​17440. (commit)

  • table: Improved the paragraphs' spacing in lists and tables. Closes: #​11347. (commit)
  • track-changes: Fixed an error thrown when the discardAllSuggestions command or TrackChangesData plugin were used, if there was an element with split suggestion, and the second part of the element had an attribute or rename suggestion.
  • undo: The Undo feature incorrectly restored content in scenario when a block quote (or other similar container) was unwrapped, then its former first or last element were merged, and then undo was used to restore block quote. Closes #​18740, #​18415. (commit)
Other changes
  • ai: Improve tree-shaking of external dependencies by marking the package as side-effect-free.
  • ai: The default config for the AI Assistant has changed. The feature now uses gpt-4o model by default and does not set max_tokens parameter.
  • comments: The AddCommandThreadCommand#isEnabled property is no longer false when the current document selection is empty, as the command now allows for creating comment threads on custom ranges.
  • comments: Added a public API to get an annotation for a comment thread using CommentsRepository#getAnnotationForCommentThread() and to get a comment thread for an annotation using CommentsRepository#getCommentThreadForAnnotation().
  • comments: Implemented --ck-comment-content-font-family, --ck-comment-content-font-size and --ck-comment-content-font-color CSS variables to standardize font family, size and color styling in comments content. These variables apply to both the submitted comment content and the comment input field.
  • core: Implemented the --ck-content-font-family, --ck-content-font-size and --ck-content-font-color CSS variables to standardize font family, size, and color styling in CKEditor 5 content. Closes #​18710. (commit)
  • core: Implemented the --ck-content-line-height CSS variable to standardize line-height styling in CKEditor 5 content. See #​18710. (commit)
  • document-outline: Align Table of Contents content area CSS variables to the --ck-content-* prefix.
  • engine: The atributeToAtribute() and elementToAtribute() upcast helpers should not consume anything if a conversion callback returns undefined value. See #​18575. (commit)
  • highlight: Align content area CSS variables to the --ck-content-* prefix. Closes #​18735. (commit)
  • image: Align content area CSS variables to the --ck-content-* prefix. Closes #​18735. (commit)
  • list: Align content area CSS variables to the --ck-content-* prefix. Closes #​18735. (commit)
  • list: The [data-list-item-id] attribute is now added on <li> elements in editor data to improve integration between lists feature and other editor features. Closes #​18407. (commit)
  • markdown-gfm: Migrate to remark / rehype packages. Closes #​18684. (commit)
  • table: Align content area CSS variables to the --ck-content-* prefix. Closes #​18735. (commit)
  • table: Fix the table's CSS variables, which had -selector- string in their name. (commit)
  • table: The legacy HTML table attributes are now normalized to editor features (width, height, bgcolor). Closes #​18575. (commit)
  • theme: Align content area CSS variables to the --ck-content-* prefix. Closes #​18735. (commit)
  • track-changes: The TrackChangesEditing#recordAttributeChanges() method has been made public to support custom integrations that require direct attribute modifications via the writer. Previously, attribute suggestions could only be generated through command execution, limiting flexibility for script-based scenarios.
  • track-changes: Added a public API to get an annotation for a suggestion using TrackChangesUI#getAnnotationForSuggestion() and to get a suggestion for an annotation using TrackChangesUI#getSuggestionForAnnotation().
  • ui: CssTransitionDisablerMixin should allow late initialization. Closes #​18626. (commit)
  • utils: The error re-throw mechanism should not provide an invalid documentation link. Closes #​18176. (commit)
  • Commands are now exported as a value instead of a type. Closes #​18588. (commit)
  • Updated several dependencies used in CKEditor 5 packages:
    • ui: color-convert, color-parse
    • uploadcare: @uploadcare/file-uploader, @uploadcare/upload-client
    • ai: @aws-sdk/client-bedrock-runtime
    • source-editing-enhanced: @codemirror/commands
    • Multiple packages: es-toolkit, luxon.
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):

Releases containing new features:

Other releases:


Configuration

📅 Schedule: Branch creation - "after 10pm every weekday,every weekend,before 5am every weekday" (UTC), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate renovate bot added dependencies use for pull requests that update a dependency file filigran team use to identify PR from the Filigran team labels Jul 16, 2025
@renovate renovate bot force-pushed the renovate/release/current-major-ckeditor-monorepo branch from b3a0357 to 1e44765 Compare July 17, 2025 03:54
Copy link

codecov bot commented Jul 17, 2025

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 44.40%. Comparing base (35d2624) to head (1e44765).

Additional details and impacted files
@@                Coverage Diff                 @@
##             release/current    #3638   +/-   ##
==================================================
  Coverage              44.40%   44.40%           
  Complexity              2799     2799           
==================================================
  Files                    762      762           
  Lines                  23138    23138           
  Branches                1610     1610           
==================================================
  Hits                   10274    10274           
  Misses                 12289    12289           
  Partials                 575      575           

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
dependencies use for pull requests that update a dependency file filigran team use to identify PR from the Filigran team
Projects
None yet
Development

Successfully merging this pull request may close these issues.

0 participants