[frontend] Update dependency ckeditor5 to v47 (release/current) - abandoned #4245
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
45.2.2->47.2.0Warning
Some dependencies could not be looked up. Check the Dependency Dashboard for more information.
Release Notes
ckeditor/ckeditor5 (ckeditor5)
v47.2.0Compare Source
Release highlights
CKEditor AI
We are introducing CKEditor AI, a powerful writing assistant that brings AI-powered content creation directly into CKEditor 5. It helps users create, review, and refine content without switching between tools, making the editing experience faster and more productive.
CKEditor AI includes three core capabilities:
Power users can select their preferred model during sessions (GPT-5, Claude 3.5, Gemini 2.5, and more), while integrators maintain control over access rules and usage tiers.
Built as a plugin for CKEditor 5, it integrates quickly into existing applications with minimal configuration, and all AI interactions are fully observable via audit logs and optional APIs.
CKEditor AI is available as a premium add-on to all paid CKEditor 5 plans with a transparent subscription-plus-usage pricing model. A 14-day trial is available with access to all premium features.
Footnotes (⭐)
A brand-new Footnotes feature is here! It lets users insert and manage footnotes directly in their content, keeping references organized and readable. Footnotes stay linked to their source text and update automatically when edited, ideal for academic, legal, or technical writing. You can also customize the numbering, including the starting number and numbering style, to match your document’s formatting needs.
Restricted editing for blocks (⭐)
Restricted editing now supports block-level restrictions, not just inline ones. This makes it easier to protect the entire content while still allowing controlled edits where required. A common use case is unlocking for editing template sections like paragraphs, tables, or structured document parts, and protecting the rest of the content.
Old installation methods sunset timelines
We are extending the sunset period for old installation methods (#17779) to the end of Q1 2026. It is a good moment to consider switching to the LTS edition for long-term stability and an additional 3 years of support for the old installation methods.
Other improvements and fixes
This release also brings several smaller but important enhancements and fixes:
elementToStructurehelper now handles nested structures and list elements more consistently, ensuring correct reconversion and structure maintenance.Features
config.ai.chat.context.searchInputVisibleFrom, to manage the visibility of the search input in the AI Chat context panel.@ckeditor/ckeditor5-footnotesthat provides the footnotes feature. This feature allows users to add and manage footnotes in their documents, enhancing the document's readability and providing additional context where necessary.Bug fixes
ai: If the content you were working on in
AI Balloongets removed (for example, by another user), a proper message will appear with the information and prevent further actions that could lead to errors.ai: Conversations loaded from AI Chat History are now correctly scrolled to the last message.
ai: Fixed visual inconsistencies of hover state in AI Chat.
ai: Fixed visual inconsistencies in AI Chat context section.
ai: Fixed AI Chat resize button
hoverandactivevisual states.ai: Fixed various visual issues across the AI feature.
ai: Fixed an issue where using DLLs for the
AIpackage together with theTrackChangesplugin could fail due to aDocumentCompareplugin conflict.ai: Removed doubled border at the bottom of review mode suggestions list.
ai: The styles in the AI feature operate independently from one another.
ai: Prevent editor crash on exiting pending AI review check.
ai: Configuration option
ai.availableReplyActionswill now also impact visibility of buttons displayed next to "Change X" header, which are displayed in AI Chat feed when AI returns multiple changes.ai: Fixed handling inline objects (such as inline images) by AI Review. Inline objects were incorrectly presented in the AI Review sidebar, and often were removed from the editor content upon accepting a change next to it.
ai: When a user applied and then undone an AI-proposed change, which has affected existing markers, these markers were incorrectly removed instead of being restored.
ai: Improved AI Review content processing mechanism preventing some errors originating from unexpected LLM responses.
ai: Improved the positioning of the model selection dropdown in the AI Chat feature to ensure it remains visible when space is limited.
ai: Navigation across changes proposed in AI Chat should not break if unsupported changes (which cannot be displayed) were returned by the agent.
ai: Fixed crash happening when an AI-proposed change, that included an existing suggestion, was itself inserted as a suggestion.
ai: The CKEditor AI balloon displaying content changes should remain within the viewport boundaries when used with long content selections in the editor.
ai: The AI balloon with suggested content changes should always position itself next to the relevant piece of content in the editor during navigation across multiple changes.
clipboard: The drop marker is now shown only when the target range is editable. Dropping content into non-editable is now prevented. Closes #19028.
engine: The
elementToStructuredowncast helper created elements should work more reliably in various edge cases: Closes #16055, #15919, #11739, #19209.engine: The
model.insertContent()andmodel.insertObject()should verify the wholeSchemacontext before checking auto-paragraphing. Closes #19210.engine: Fixed a bug where placeholders could become stuck and remain visible on elements when the view changed. Closes #14354, #18149.
This resolves two scenarios:
icons: Removed obsolete
clip-pathattributes from various SVG icons (IconAIHistory,IconShowChangesOff,IconShowChangesOn,IconUploadcareImageUpload) that cause rendering issues in some corner cases. Closes #19291.pagination: Fixed an issue where the pagination feature incorrectly displayed redundant page break indicators in editing mode when a page break was inserted between two tables.
paste-from-office: No longer treat elements with
mso-list:noneas list items.restricted-editing: Empty editable regions created with Restricted Editing should not get dropped when reloading the editor's data. Closes #16376.
restricted-editing: Backspace should remove content in restricted editing mode when the entire section is selected. Closes #18892.
table: The editor should not crash when trying to load data with a table inside an image caption. Closes #19211.
table: The
TableConfigtype is no longer exported as internal.widget: Fixed changing (expanding and shrinking) the selection with the keyboard while widgets are involved. Closes #19212.
Other changes
ai, track-changes: CKEditor AI no longer requires the Track Changes feature, and can be used without it. In such setup, CKEditor AI will not be able to insert AI-proposed changes as suggestions and all related buttons will be hidden.
ai: Renamed the automatically selected AI model to "Auto" (previously "Agent"). Allowed for using
'auto'inconfig.ai.chat.models.defaultModelIdandconfig.ai.chat.models.displayedModelsconfigurations to make integration easier.ai: Improved real-time collaboration support in AI Review. Changes adjacent or within review suggestions in the editor content, made by remote users, will correctly invalidate/restore review suggestions.
ai: Added missing
AISuggestionActionNameexport, which is used in the CKEditor AI feature configuration.ai: AI Review suggestions now remain visible after being accepted or rejected, also can be marked as outdated if they are affected by RTC changes.
clipboard: Loosened rules for drop target position lookup so it is possible to drop in-text when there is anything droppable into in-text context.
icons: Added
IconDocumentOutlineToggleicon.icons: Introducing an icon that represents an outdated state. Closes #19282.
paste-from-office: Added normalization of footnotes while pasting content from Word.
table: Fixed incorrect Japanese translations for table layout feature. Closes #19255.
Thanks to @ponyoxa.
uploadcare: Added a configuration option
config.uploadcare.localethat allows providing custom translations for Uploadcare components or using predefined CDN URLs for other languages, enabling full localization beyond the default English version.utils: Exposed a utility function
getConstrainedViewportRect(), which returns the bounds of the visible viewport. Closes #19222.widget: The Esc key handling in widgets is registered in the editable element context. This allows easier customization of handlers for Esc keypress inside widgets and nested editable elements.
Updated translations.
Released packages
Check out the Versioning policy guide for more information.
Released packages (summary)
New packages:
Minor releases (contain minor breaking changes):
Releases containing new features:
Other releases:
v47.1.0Compare Source
We are happy to announce the release of CKEditor 5 v47.1.0.
Release highlights
This release introduces a minor stability update, featuring focused fixes and UX improvements.
MINOR BREAKING CHANGES ℹ️
ai: Simplified CSS for the CKEditor AI integration in a sidebar mode (
config.ai.container.type: 'sidebar') by removing default layout constraints:min-heightfrom.ck-ai-chat,heightfrom.ck-tabs,widthfrom.ck-ai-tabs.Also, the
--ck-tabs-panels-container-widthcustom property has been removed from the codebase.Features
config.ai.container.visibleByDefaultconfiguration option to allow for hiding the AI component on the editor initialization.Bug fixes
AIChatplugin caused by incompatibleconstructor()signatures.Other changes
config.ai.chat.modelsconfiguration property optional because a default configuration is always provided by the plugin anyway.AIQuickActionsnow addsAIActionsplugin as its dependency. This is to ensure that the AI Quick Actions dropdown is populated by the default set of actions, without the need to addAIActionsplugin manually.Released packages
Check out the Versioning policy guide for more information.
Released packages (summary)
Minor releases (contain minor breaking changes):
Other releases:
v47.0.0Compare Source
We are happy to announce the release of CKEditor 5 v47.0.0.
Release highlights
CKEditor AI (early access)
We are introducing CKEditor AI, a set of versatile AI-powered features that integrate directly into CKEditor 5. It brings generation, summarization, correction, contextual chat help, reviews, and many other capabilities, right into the editor. With CKEditor AI, users will no longer need to switch between the editor and AI tools.
Three features are available in this early access phase:
Each feature is powered by our state-of-the-art AI service, available in the Cloud today and coming soon for on-premises deployments. This makes CKEditor AI a true plug-and-play solution that works out of the box, eliminating the need for months of custom development.
CKEditor AI is available as part of our free trial in early access.
Long-term Support (⭐)
We are introducing the CKEditor 5 LTS (Long-term Support) Edition, giving teams up to 3 years of stability with guaranteed updates.
The first LTS release is v47.0.0 (October 2025). It will receive 6 months of active development with new features and fixes, then 2.5 years of maintenance with security and critical compatibility updates.
For v47.x, the Maintenance phase starts in April 2026. From then, the next versions in the v47.x line will be available only under a commercial LTS Edition license. Therefore, starting in April, integrators without an LTS license should migrate to v48.x (the next regular release).
If you need long-term stability, contact sales or read more about CKEditor 5 LTS Edition.
Other improvements and fixes
This release also brings several smaller but important enhancements and fixes:
Tab/Shift+Tabnavigation now works better inside nested editables, improving usability. This change is also reflected in the editor’s current widgets (like tables), leading to more intuitive keyboard navigation.Dialog#show())..ck-confirm-view). You may need to adjust custom styles accordingly.Please refer to the update guide to learn more about these changes.
MAJOR BREAKING CHANGES ℹ️
ai.*configuration structure has changed. Until now, the configuration object was used for the formerAIAssistantfeature. Now, this configuration space is used for all AI related features. Configuration for theAIAssistantwas moved. The changes are:ai.aiAssistant->ai.assistant,ai.useTheme->ai.assistant.useTheme,ai.aws->ai.assistant.adapter.aws,ai.openAI->ai.assistant.adapter.openAI.MINOR BREAKING CHANGES ℹ️
Tab/Shift+Tabto navigate nested editable elements in the editor content. Closes #19083. The listeners are registered on thelowpriority bubbling event in the context of widgets and editable elements. Please verify if your customTab/Shift+Tabhandling does not collide with the default one.AIAssistantfrom the source should be done via@ckeditor/ckeditor5-ai/src/aiassistant/aiassistant.jspath instead of the previous@ckeditor/ckeditor5-ai/src/aiassistant.js..ck-confirm-viewinstead of.ck-thread__remove-confirm. If you override styles for these components, you will need to update the selectors.UndoCommandRevertEventtype was renamed toUndoRedoBaseCommandRevertEventand moved to thebasecommand.tsfile. Adjust your code if you have used this type in your custom integration. See #19168.Features
positionparameter inDialog#show()now can be a function that takesdialogRectanddomRootRectparameters and should return an object withtopandleftproperties ornull. It can be used to specify a custom positioning for the dialog. Closes #19167.Bug fixes
engine: The
markerToHighlight()converter did not clone theviewconfiguration if passed as plain object leading to incorrect behavior. This affects only custom plugins that used this converter in the described way. Closes #19105.engine: The bubbling events now trigger event callbacks according to the registered priorities even if multiple custom contexts are provided. See #19083.
export-inline-styles: Fix specificity calculation to handle
:where()selectors correctly.link: The link manual decorators are no longer lost when caption is added to an image. Closes #19024.
pagination: Pagination lines should calculate properly for pages with larger horizontal margins.
revision-history: Fixed a crash which happened under specific circumstances when a revision was created when document was exported using the Cloud Services REST API (
GET /documents/endpoint).Although the fix was necessary in Revision History feature code, it was only reproducible in scenarios involving using the mentioned export endpoint.
Other changes
resolvedByparameter inCommentThread#resolve. It was previously typed asundefined | null, and is now properly typed asundefined | string.RedoCommandwill now fire'revert'event when executed, similarly toUndoCommand. TypeUndoCommandRevertEventwas renamed toUndoRedoBaseCommandRevertEventand moved tobasecommand.tsfile. Closes [#19168](https://redirect.github.com/ckeditor/ckeditor5/issues/1916Configuration
📅 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.
This PR was generated by Mend Renovate. View the repository job log.