Skip to content

Comments

Update ckeditor monorepo to v47 (major)#74

Open
renovate[bot] wants to merge 1 commit intomasterfrom
renovate/major-ckeditor-monorepo
Open

Update ckeditor monorepo to v47 (major)#74
renovate[bot] wants to merge 1 commit intomasterfrom
renovate/major-ckeditor-monorepo

Conversation

@renovate
Copy link

@renovate renovate bot commented Apr 14, 2024

ℹ️ Note

This PR body was truncated due to platform limits.

This PR contains the following updates:

Package Change Age Confidence
@ckeditor/ckeditor5-core (source) 32.0.047.5.0 age confidence
@ckeditor/ckeditor5-engine (source) 32.0.047.5.0 age confidence
@ckeditor/ckeditor5-highlight (source) 32.0.047.5.0 age confidence
@ckeditor/ckeditor5-ui (source) 32.0.047.5.0 age confidence
@ckeditor/ckeditor5-upload (source) 32.0.047.5.0 age confidence
@ckeditor/ckeditor5-utils (source) 32.0.047.5.0 age confidence

Release Notes

ckeditor/ckeditor5 (@​ckeditor/ckeditor5-core)

v47.5.0

Compare Source

We are happy to announce the release of CKEditor 5 v47.5.0.

Release highlights

CKEditor 5 v47.5.0 is a minor update that improves AI-assisted editing workflows and provides access to the new version of the Export to PDF feature.

AI Translate

The AI Translate feature of CKEditor AI allows users to translate entire documents on the go. It provides a user interface similar to AI Review, but with translation-specific actions to streamline the process. The translation view displays the final translated document, with original snippets shown on the side for review and comparison.

Multiple Changes revamp and other AI improvements

We improved how multiple changes proposed by the AI Chat feature are presented. Suggested changes now appear as cards that can be previewed in the content and applied consistently in both single-change and multi-change scenarios. This release also includes several under-the-hood improvements.

Export to PDF v2

The export to PDF feature now supports version 2 of the HTML to PDF converter API, bringing several powerful enhancements to document generation.

Advanced header and footer configurations allow for different content on first, odd, and even pages, with support for images. Page sizes can now be set using predefined formats or custom width and height values. The new converter API also enables editing of PDF metadata fields such as title, subject, and author.

Security capabilities have been expanded with owner password protection for controlling permissions and digital signature support using PKCS#12 certificates for authenticity verification. Additional improvements include compression control for specific use cases, more precise rendering options, and experimental automatic outline generation for creating a table of contents.

Incoming old installation methods sunset reminder

Please note that the old installation methods will no longer be available with CKEditor 5 v48.0.0, which is planned for release at the beginning of Q2 2026. For more timeline details, refer to the dedicated GitHub issue.

In CKEditor 5 v42.0.0 in June 2024, we introduced new installation methods designed to improve and simplify the developer workflow. Soon, they will be the only available paths to install and use CKEditor 5.

If your project still relies on old installation methods, now is a good time to plan your next steps. We recommend choosing between these two options:

  1. Migrate to the new installation methods, which are the recommended path for most users. The new installation methods provide a cleaner setup, easier upgrades, and better alignment with future CKEditor 5 releases.
  2. Consider CKEditor 5 Long Term Support (LTS). If migrating in the near term is not feasible, you can extend support for legacy installation methods.

Please refer to the update guide to learn more about these changes.

MINOR BREAKING CHANGES ℹ️
  • ai: The ai.reviewMode.translations configuration option has been moved to ai.translate.languages. The ai.reviewMode configuration namespace has been removed.

    Together with the introduction of AI Translate feature and a separate translation tab, the configuration option to define a custom language list
    has been moved to a related ai.translate namespace.

  • ai: The AIEditorIntegration plugin is now required to preview the changes suggested by the AI Chat feature in a dialog window. Previously, this functionality was enabled by just loading the main AIChat plugin. Please make sure your integration loads the AIEditorIntegration plugin in order to use this functionality.

  • ai: The DOM structure of the AI Chat suggestions in conversation has been changed, which may affect integrations that customized the UI and/or rely on specific CSS selectors.

    Please make sure to update your integrations to use the new DOM structure. Learn more about the changes in the migration guide provided in the project documentation.

  • ai: The DOM structure of the AI Chat suggestion preview dialog window has been changed which may affect integrations that customized the UI and/or rely on specific CSS selectors.

    Please make sure to update your integrations to use the new DOM structure. Learn more about the changes in the migration guide provided in the project documentation.

  • ai: AIChat#sendMessage() takes attributes: Record<string, unknown> as one of its parameters now, in place of former quickActionData. This affects you only if you provided some customizations for the CKEditor AI chat feature.

  • ai: Already existing chat conversations, which were created through AI Quick Action (e.g. "Explain" or "Summarize"), when loaded from chat history, will now display a full prompt instead of the short version. This affects only already created conversations.

  • ai: Replaced ai.chat.models.modelSelectorAlwaysVisible configuration option with ai.chat.models.showModelSelector. The behavior has also been slightly updated. When set to true (default), the model selector dropdown is shown (when multiple models are available), or the model name is displayed (when only one model is available). When set to false, the selector is hidden, regardless of the number of available models.

  • ai: The model's configuration options have been moved from config.ai.chat.models to config.ai.models to ensure consistent model configuration across all AI features. The model configuration is now applied uniformly in both AI Chat and AI Review Mode.

Features
  • ai: Introduced the AI Translation tab.

    A new tab dedicated to translating content has been introduced to CKEditor 5 AI. It focuses on working with translated content, streamlining
    the process of applying translation and making the whole process easier and faster for end users.

  • ai: Introduced a new look and improved operation of the AI Chat sidebar.

    • The list of changes proposed by the AI now features a sleeker design and includes a button to apply individual changes.
    • You can now preview suggested changes in a dialog window by clicking on a change in the sidebar.
    • The AI suggestion preview dialog window has been made more compact for enhanced usability.
    • Various bug fixes and other improvements.
  • ai: Introduced AIChat#registerToolDataCallback(). It allows for handling custom data generated by your AI tools connected to CKEditor AI backend.

  • ai: Introduced an API to allow inserting arbitrary HTML into the AI Chat feed, during AI response streaming.

    The API is passed as one of the parameters to the callback registered using AIChat#registerToolDataCallback().

  • ai: Introduced configuration option ai.chat.initialConversation that manages whether a new, or an existing past conversation is initially loaded in the AI Chat.

  • ai: Added a new configuration option, ai.chat.context.customItems, that allows using external context providers and custom context items (for example, IDs instead of actual files).

  • export-pdf: Add support for version 2 of the HTML to PDF converter API.

Bug fixes
  • image, paste-from-office: Images aligned left or right with wrapped text around them should now be correctly pasted and imported from Word into the editor. Previously, such images were incorrectly aligned using block left or block right styles. Closes #​19636.

  • ai: The AI Review active suggestion highlight in the editor content no longer disappears due to content changes made by other users in RTC.

  • ai: The AI Review suggestions content in the sidebar is styled the same way as the editor content, giving it a uniform look.

  • ai: Fixed an issue where web search sources were not displayed correctly when loading conversations from chat history.

  • ai: The "Add context" button in AI chat will no longer be disabled if the only available context are external resources.

  • ai: Fixed an error when custom AI Quick Actions used a model that was not available in AI Chat.

  • ai: Accepting suggestions from conversations loaded via chat history no longer throws errors in the console.

  • ai: Fixed an issue where messages loaded from chat history could be incorrectly duplicated in a conversation.

  • ai: AIQuickActionsUI now requires AIConnector to prevent authentication bugs when run standalone.

  • comments: Fixed an issue where inline annotations were not displayed correctly when the editor was initialized in a hidden container.

  • email: Table block alignment now behaves as expected in Microsoft Outlook, preventing text from wrapping around the table when it shouldn't.

  • html-support: An inline content (<img>) should not be stripped out of <div> inside of <dd> tag. Closes #​19709.

  • table: Resizing the last column of a layout table no longer increases the column size more than expected. Closes #​19644.

  • table: Fixed parsing units of deprecated table width attribute. Closes #​19665.

  • ui: BalloonToolbar will no longer reposition itself when invisible in the ContextualBalloon stack. Closes #​19696.

    This prevents interfering with other features that might be using the ContextualBalloon stack.

  • utils: Rect#getDomRangeRects() now sets the DOM Range as a source for each returned Rect, improving visibility and positioning of floating UIs that depend on Rect#getVisible(). Closes #​19705.

  • utils: Rect#getVisible() should better discover relationships between positioned and clipping parents. Closes #​19707.

    This avoids issues with floating UIs that depend on Rect#isVisible() and do not hide when they should.

Other changes
  • basic-styles, engine, font, highlight, language: Fixed a discrepancy where applying a text attribute (such as bold) to a selection that included empty paragraphs did not set stored selection attributes on those paragraphs. See #​19664. Closes #​18430.

  • ai: Suggestions shown in AI Review sidebar now include all formatting (bold, italics, etc.) and non-plain text elements (for example, links).

  • ai: AIChat#sendMessage() now allows passing attributes (arbitrary custom metadata) together with the submitted user message. You can also pass attributes.displayedPrompt to display a different prompt instead of the one used to query the AI model (userMessage).

  • ai: If there is only one source of AI chat context available, it will be automatically selected when the "Add context" button is pressed instead of showing a dropdown with only one option.

  • ai: As more models are supported by the AI feature, only a set of recommended models will be displayed in the AI chat models dropdown. You can configure the list of displayed models via ai.chat.models.displayedModels in the config.

  • ai: Conversations loaded from chat history are no longer blocked for models that are not recommended or not displayed, as long as the provider supports the model.

  • ai: Replaced ai.chat.models.modelSelectorAlwaysVisible configuration option with ai.chat.models.showModelSelector. When set to true (default), the model selector dropdown is shown (when multiple models are available), or the model name is displayed (when only one model is available). When set to false, the selector is hidden, regardless of the number of available models.

  • ai: Added a clear explanation in AI Chat for conversations loaded from history, explaining why AI proposals (document modifications) for past conversations cannot be applied or added as suggestions.

  • ai: The model's configuration options have been moved from config.ai.chat.models to config.ai.models to ensure consistent model configuration across all AI features. The model configuration is now applied uniformly in both AI Chat and AI Review Mode.

  • ai: Upgrade fast-xml-parser to version 5.3.4 to address security advisories reported by automated scanners. CKEditor 5 does not rely on the affected code paths and is not impacted.

  • icons: Added new icons: IconBoxWithCheck, IconBoxWithCross, IconBoxWithPin.

  • import-word: Added the undoStepBatch property to the dataInsert event. It allows including custom model changes (side effects) in the same undo step as the import operation.

  • Optimized compression and decompression mechanisms used in real-time collaboration to avoid delays when a user joins a document that was heavily edited.

  • Update diff dependency to address security advisories reported by automated scanners.

    The affected functions (parsePatch(), applyPatch()) are not used in this project (we only rely on diffArrays()), so this change is released primarily to reduce false-positive security alerts.

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:

v47.4.0

Compare Source

We are happy to announce the release of CKEditor 5 v47.4.0.

Release highlights

This is a minor update focused on improving content editing workflows and data compatibility. We are introducing better visualization for table borders, enhanced image alignment handling, and several improvements to AI and email features.

Experimental table cell type support

We are introducing an experimental tableCellTypeSupport flag that enables changing table cell types between data and header cells (th). This feature provides more flexibility when working with complex table structures. Read more about how to enable it in the update guide.

Hidden table borders visualization

We are introducing a new config.table.showHiddenBorders configuration option (enabled by default) that helps editors work with tables that have hidden borders. When the editor detects inline border:none or border-style:none declarations on table and cell elements, it renders dashed helper borders in the editing view. This makes it easier to see the table structure while editing without affecting the output data. For strict WYSIWYG scenarios where you want the editing view to match the output exactly, this visualization can be disabled.

Email compatibility improvements

We improved the email styles transformation with better appearance of resized inline images in classic Outlook clients. Additionally, the new optional useFigureToTableFallback flag in the email styles transformers can replace figure (block images) with tables to improve alignment and width handling in older email clients with limited CSS support.

Other improvements and fixes
  • Fixed multiple issues in the AI features, including improved tooltips for web search sources in AI Chat, proper handling of Quick Actions when opening the AI Chat panel, resolved loading state issues in the AI Review sidebar, and others.
  • The editor now recognizes CSS float style on images (e.g., style="float: left" or style="float: right") and automatically maps it to left/right image alignment. This works for both inline and block images, improving compatibility when pasting content from external sources or loading legacy content. If custom image styles are configured, they take precedence over the float style.
  • The Emoji plugin can now be used with the Emoji v17.0 dataset, which has been uploaded to the CKEditor CDN. This update does not change the default emoji version used by CKEditor.
Incoming old installation methods sunset reminder

Please note that the old installation methods will only remain available up to CKEditor 5 v48.0.0, which is planned for release at the beginning of Q2 2026. For more timeline details, refer to the dedicated GitHub issue.

In CKEditor 5 v42.0.0 in June 2024, we introduced new installation methods designed to improve and simplify the developer workflow. Soon, they will be the only available paths to install and use CKEditor 5.

If your project still relies on old installation methods, now is a good time to plan your next steps. We recommend choosing between these two options:

  1. Migrate to the new installation methods, which are the recommended path for most users. The new installation methods provide a cleaner setup, easier upgrades, and better alignment with future CKEditor 5 releases.
  2. Consider CKEditor 5 Long Term Support (LTS). If migrating in the near term is not feasible, you can extend support for legacy installation methods.
Features
  • table, theme-lark: Added support for visualizing hidden table and table cell borders through a new configuration option: table.showHiddenBorders (enabled by default). The editor now detects inline border:none and border-style:none declarations on table and cell elements and renders dashed helper borders in the editing view. This visualization can be disabled for strict WYSIWYG scenarios. Closes #​19039.

  • ai: Added a new tooltip for web search sources in the AI Chat.

    The tooltip now displays the full link, favicon, and link title.

  • email: Added an inline-styles transformation that improves the appearance of resized inline images in classic Outlook clients.

    Additionally, introduced an optional useFigureToTableFallback flag in the email inline-styles transformers. When enabled, figures (block images) are replaced with tables to improve alignment and width handling in older email clients that have limited CSS support. This enhances compatibility but adds extra markup, which may affect layout in some cases.

  • emoji: The Emoji plugin can now be used together with the Emoji v17.0 dataset, which has been uploaded to the CKEditor CDN. This update does not change the default emoji version used by CKEditor. Closes #​19394.

Bug fixes
  • basic-styles, icons: Fixed the superscript and footnote icons to properly inherit colors from CSS instead of using hardcoded fill values. Closes #​19464.

  • email, export-inline-styles: Fixed incorrect table alignment in Classic Outlook when exporting inline styles with getEmailInlineStylesTransformations.

  • paste-from-office, table: The editor no longer crashes when calling getData() on content containing a table with custom styling, provided that the TablePropertiesEditing and PlainTableOutput plugins are loaded without the TableProperties plugin. Closes #​19512.

  • code-block, typing: Fixed an error thrown when creating a code block via backticks on some keyboard layouts (e.g. US International). Closes #​18926.

  • engine, undo: Fixed a bug where undoing changes to root attributes (e.g. the order attribute) would not restore the correct value. Closes #​19483.

  • ai: AI Review sidebar is no longer stuck in loading state for specific AI API responses with no real changes in the content.

  • ai: AI Chat related Quick Actions now open the AI Chat if it is closed or if another tab is currently active.

  • ai: The AI feature now functions correctly when used with the Title plugin.

  • ai: The document will no longer be added to the context automatically when it is disabled via the ai.chat.context.document.enabled config.

  • ai: Quick Actions that use AI Chat are now hidden when the document context is disabled via the ai.chat.context.document.enabled config, as they require the document to function properly.

  • ai: Editor toolbar is now always visible when AI Review suggestion is accepted or dismissed.

  • footnotes: The footnotes' definitions are no longer lost when pasting content that lacks the application/ckeditor5-footnotes data but contains footnote references and definitions. The plugin now extracts and merges footnote definitions from the pasted content, ensuring that existing footnotes are preserved and new ones are added correctly.

  • image: The editor and its UI now recognize the CSS float style on images (e.g. style="float: left" or style="float: right") and map it to left/right image alignment. This applies to both inline and block images. If custom image styles are configured, then the float style is ignored. Closes #​19521.

  • link: Fixed an issue where setting editor data with multiple images or images mixed with text inside a single link would result in only the first image being preserved and the rest of the content being removed. Closes #​18961.

  • media-embed: Added a strict-origin-when-cross-origin attribute to the iframe tag when embedding YouTube videos. It corresponds with the YouTube documentation and resolves occurrences of error 153 when embedding YouTube videos.

    Thanks to @​ampaze.

  • pagination: Fixed a crash in pagination that occurred when a to-do list item was the first element in the editor.

  • pagination: Fixed an issue with the incorrect order of page breaks for tables containing specific data.

  • revision-history: Stopped the revision history loading overlay spinner from animating while hidden. Closes ckeditor/ckeditor5#19558.

  • table: Fixed incorrect table rows moving as header row when preceding rows are not header rows. Closes #​19431.

  • table: The default alignment for table headers in the output has been set to left to match the editing view and ensure consistent rendering across all browsers. Closes #​19454.

  • typing: Disable text transformations inside inline code so automatic text transformation does not convert typed text. Closes #​19557.

  • ui: Guarded dropdown panel selection handling against non-element targets to avoid errors when selecting text. Closes #​19565.

Other changes
  • ai: The Track Changes suggestion markers are always grayed out in AI review, even if active.

    This makes it easier to navigate when review check is active in content with many Track Changes suggestions and keeps full focus on changes created by AI.

  • ai: AI models displayed in Review and Chat are now sorted by their model family.

  • core: The Editor class constructor now detects if the provided EditorConfig is not an object. Closes #​18072.

    The common source of this error is when an editor class (e.g., ClassicEditor) is mistakenly included in the plugins list when initializing Editor.

  • table: Introduced the experimental tableCellTypeSupport flag to enable changing table cell types between data and header. To use this change, besides the flag, the TablePropertiesUIExperimental and TableCellPropertiesUIExperimental plugins must be used. See #​16730.

  • Removes operation and time limits from trial license.

Released packages

Check out the Versioning policy guide for more information.

Released packages (summary)

Releases containing new features:

Other releases:


Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), 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 these updates 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 force-pushed the renovate/major-ckeditor-monorepo branch from db5e16c to f2f7604 Compare April 16, 2024 09:27
@renovate renovate bot force-pushed the renovate/major-ckeditor-monorepo branch 2 times, most recently from 752e808 to 86c2496 Compare May 17, 2024 15:35
@renovate renovate bot force-pushed the renovate/major-ckeditor-monorepo branch from 86c2496 to 1f66e25 Compare June 26, 2024 10:15
@renovate renovate bot changed the title Update ckeditor monorepo to v41 (major) Update ckeditor monorepo to v42 (major) Jun 26, 2024
@renovate renovate bot force-pushed the renovate/major-ckeditor-monorepo branch 2 times, most recently from c4ecd61 to ec16090 Compare July 11, 2024 10:24
@renovate renovate bot force-pushed the renovate/major-ckeditor-monorepo branch from ec16090 to 41b2077 Compare July 25, 2024 11:24
@renovate renovate bot force-pushed the renovate/major-ckeditor-monorepo branch from 41b2077 to f82dc40 Compare August 7, 2024 10:17
@renovate renovate bot changed the title Update ckeditor monorepo to v42 (major) Update ckeditor monorepo to v43 (major) Aug 7, 2024
@renovate renovate bot force-pushed the renovate/major-ckeditor-monorepo branch from f82dc40 to 3533a74 Compare September 5, 2024 11:18
@renovate renovate bot force-pushed the renovate/major-ckeditor-monorepo branch from 3533a74 to 01c2b2d Compare September 25, 2024 09:46
@renovate renovate bot force-pushed the renovate/major-ckeditor-monorepo branch from 01c2b2d to 4a6eb38 Compare October 2, 2024 10:45
@renovate renovate bot force-pushed the renovate/major-ckeditor-monorepo branch from 4a6eb38 to 9458b24 Compare October 29, 2024 11:05
@renovate renovate bot force-pushed the renovate/major-ckeditor-monorepo branch from 9458b24 to 7956f7d Compare November 6, 2024 11:24
@renovate renovate bot force-pushed the renovate/major-ckeditor-monorepo branch from 7956f7d to 41984bc Compare December 2, 2024 12:27
@renovate renovate bot changed the title Update ckeditor monorepo to v43 (major) Update ckeditor monorepo to v44 (major) Dec 2, 2024
@renovate renovate bot force-pushed the renovate/major-ckeditor-monorepo branch from 41984bc to 4db3cb3 Compare December 16, 2024 10:04
@renovate renovate bot force-pushed the renovate/major-ckeditor-monorepo branch from 4db3cb3 to 5713a35 Compare February 12, 2025 11:25
@renovate renovate bot force-pushed the renovate/major-ckeditor-monorepo branch from 5713a35 to 45232f4 Compare February 20, 2025 12:12
@renovate renovate bot force-pushed the renovate/major-ckeditor-monorepo branch from 45232f4 to a908756 Compare March 5, 2025 09:49
@renovate renovate bot force-pushed the renovate/major-ckeditor-monorepo branch from a908756 to 8978b8b Compare April 7, 2025 12:37
@renovate renovate bot changed the title Update ckeditor monorepo to v44 (major) Update ckeditor monorepo to v45 (major) Apr 7, 2025
@renovate renovate bot force-pushed the renovate/major-ckeditor-monorepo branch from 8978b8b to 492b502 Compare May 14, 2025 13:07
@renovate renovate bot force-pushed the renovate/major-ckeditor-monorepo branch from 492b502 to eb000fe Compare June 4, 2025 10:29
@renovate renovate bot force-pushed the renovate/major-ckeditor-monorepo branch from eb000fe to 2842421 Compare June 24, 2025 10:45
@renovate renovate bot force-pushed the renovate/major-ckeditor-monorepo branch from 2842421 to 50e62ba Compare July 9, 2025 11:52
@renovate renovate bot changed the title Update ckeditor monorepo to v45 (major) Update ckeditor monorepo to v46 (major) Jul 9, 2025
@renovate renovate bot force-pushed the renovate/major-ckeditor-monorepo branch from 50e62ba to a722331 Compare August 11, 2025 13:41
@renovate renovate bot force-pushed the renovate/major-ckeditor-monorepo branch from a722331 to 9a58160 Compare August 19, 2025 10:33
@renovate renovate bot force-pushed the renovate/major-ckeditor-monorepo branch from 9a58160 to 2ce2bc5 Compare September 3, 2025 08:52
@renovate renovate bot force-pushed the renovate/major-ckeditor-monorepo branch 2 times, most recently from 4d62a09 to f435dfe Compare September 15, 2025 17:59
@renovate renovate bot force-pushed the renovate/major-ckeditor-monorepo branch from f435dfe to b34fa8f Compare October 1, 2025 22:02
@renovate renovate bot changed the title Update ckeditor monorepo to v46 (major) Update ckeditor monorepo to v47 (major) Oct 1, 2025
@renovate renovate bot force-pushed the renovate/major-ckeditor-monorepo branch from b34fa8f to f3a8fbd Compare October 16, 2025 10:35
@renovate renovate bot force-pushed the renovate/major-ckeditor-monorepo branch from f3a8fbd to de1d0b6 Compare November 5, 2025 11:04
@renovate renovate bot force-pushed the renovate/major-ckeditor-monorepo branch from de1d0b6 to c73d4ae Compare December 3, 2025 10:39
@renovate renovate bot force-pushed the renovate/major-ckeditor-monorepo branch from c73d4ae to 888723f Compare January 14, 2026 13:39
@renovate renovate bot force-pushed the renovate/major-ckeditor-monorepo branch from 888723f to 7806bcb Compare February 11, 2026 09:08
@renovate renovate bot force-pushed the renovate/major-ckeditor-monorepo branch from 7806bcb to c98b4ee Compare February 11, 2026 14:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants