npm @ckeditor/ckeditor5-upload 47.2.0

latest release: 0.0.0-nightly-20251106.0
one day ago

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:

  • AI Chat: a conversational AI assistant for multi-turn interactions that supports context setting and model selection. All conversations are tracked in a persistent chat history, and suggestions are reviewable before being applied.
  • AI Quick Actions: one-click transformations for selected text, including rewriting, simplifying, expanding, summarizing, or adjusting tone. Changes appear inline with preview capabilities.
  • AI Review: automatic quality assurance that checks grammar, tone, clarity, and style across the document. Suggested changes are presented in a visual review interface where users can accept or reject individual edits or apply all approved suggestions in bulk.

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:

  • View engine stability: Fixed a bug where placeholders could remain visible after view changes, such as moving or replacing elements.
  • Downcast reliability: The elementToStructure helper now handles nested structures and list elements more consistently, ensuring correct reconversion and structure maintenance.

Features

  • ai: Added a new configuration option, config.ai.chat.context.searchInputVisibleFrom, to manage the visibility of the search input in the AI Chat context panel.
  • footnotes: Added a new package @ckeditor/ckeditor5-footnotes that 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.
  • fullscreen: Enabled CKEditor AI support in Fullscreen mode, allowing users to access AI tools while editing in fullscreen. Closes #19234.
  • fullscreen: Sidebars in the fullscreen mode will now automatically collapsed and expanded depending on the available space in the viewport. Closes #19294.
  • restricted-editing: Introduced block editable areas in restricted editing. Closes #9071, #5953.

Bug fixes

  • ai: If the content you were working on in AI Balloon gets 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 hover and active visual states.

  • ai: Fixed various visual issues across the AI feature.

  • ai: Fixed an issue where using DLLs for the AI package together with the TrackChanges plugin could fail due to a DocumentCompare plugin 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.availableReplyActions will 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 elementToStructure downcast helper created elements should work more reliably in various edge cases: Closes #16055, #15919, #11739, #19209.

    • It should properly detect required reconversion on all nesting levels.
    • It should use proper position inside slot to maintain proper view structure.
    • It should refresh child elements when they got renamed, for example paragraph to heading.
    • It should work correctly with lists inside.
    • It should create proper structure with list inside.
  • engine: The model.insertContent() and model.insertObject() should verify the whole Schema context 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:

    • Dropping an image into the editor before an element with a placeholder (the placeholder could remain on the original element).
    • Moving the element that hosts the placeholder to a different place in the view tree (the placeholder could stay attached to the old node).
  • icons: Removed obsolete clip-path attributes 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:none as 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 TableConfig type 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' in config.ai.chat.models.defaultModelId and config.ai.chat.models.displayedModels configurations 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 AISuggestionActionName export, 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 IconDocumentOutlineToggle icon.

  • 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.locale that 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:

Don't miss a new ckeditor5-upload release

NewReleases is sending notifications on new releases.